diff --git a/docs/agent.md b/docs/agent.md index ef5ba3722..f477ca257 100644 --- a/docs/agent.md +++ b/docs/agent.md @@ -3,7 +3,6 @@ summary: "Agent runtime (embedded p-mono), workspace contract, and session boots read_when: - Changing agent runtime, workspace bootstrap, or session behavior --- - # Agent Runtime 🤖 CLAWDBOT runs a single embedded agent runtime derived from **p-mono** (internal name: **p**). @@ -101,4 +100,3 @@ At minimum, set: --- *Next: [Group Chats](./group-messages.md)* 🦞 - diff --git a/docs/audio.md b/docs/audio.md index 1cc29b906..db0507b71 100644 --- a/docs/audio.md +++ b/docs/audio.md @@ -3,7 +3,6 @@ summary: "How inbound audio/voice notes are downloaded, transcribed, and injecte read_when: - Changing audio transcription or media handling --- - # Audio / Voice Notes — 2025-12-05 ## What works @@ -47,4 +46,3 @@ Requires `OPENAI_API_KEY` in env and `openai` CLI installed: ## Gotchas - Ensure your CLI exits 0 and prints plain text; JSON needs to be massaged via `jq -r .text`. - Keep timeouts reasonable (`timeoutSeconds`, default 45s) to avoid blocking the reply queue. - diff --git a/docs/clawd.md b/docs/clawd.md index 68239152b..7bbadfaad 100644 --- a/docs/clawd.md +++ b/docs/clawd.md @@ -4,7 +4,6 @@ read_when: - Onboarding a new assistant instance - Reviewing safety/permission implications --- - # Building a personal assistant with CLAWDBOT (Clawd-style) CLAWDBOT is a WhatsApp + Telegram + Discord gateway for **Pi** agents. This guide is the “personal assistant” setup: one dedicated WhatsApp number that behaves like your always-on agent. @@ -196,4 +195,3 @@ Logs live under `/tmp/clawdbot/` (default: `clawdbot-YYYY-MM-DD.log`). - Cron + wakeups: [Cron + wakeups](./cron.md) - macOS menu bar companion: [Clawdbot macOS app](./clawdbot-mac.md) - Security: [Security](./security.md) - diff --git a/docs/configuration.md b/docs/configuration.md index fd27ea821..0485c4506 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -3,7 +3,6 @@ summary: "All configuration options for ~/.clawdbot/clawdbot.json with examples" read_when: - Adding or modifying config fields --- - # Configuration 🔧 CLAWDBOT reads an optional **JSON5** config from `~/.clawdbot/clawdbot.json` (comments + trailing commas allowed). @@ -1229,4 +1228,3 @@ Cron is a Gateway-owned scheduler for wakeups and scheduled jobs. See [Cron + wa --- *Next: [Agent Runtime](./agent.md)* 🦞 - diff --git a/docs/images.md b/docs/images.md index 76621ee44..467b28df7 100644 --- a/docs/images.md +++ b/docs/images.md @@ -3,7 +3,6 @@ summary: "Image and media handling rules for send, gateway, and agent replies" read_when: - Modifying media pipeline or attachments --- - # Image & Media Support — 2025-12-05 CLAWDBOT is now **web-only** (Baileys). This document captures the current media handling rules for send, gateway, and agent replies. @@ -49,4 +48,3 @@ CLAWDBOT is now **web-only** (Baileys). This document captures the current media - Cover send + reply flows for image/audio/document cases. - Validate recompression for images (size bound) and voice-note flag for audio. - Ensure multi-media replies fan out as sequential sends. - diff --git a/docs/index.md b/docs/index.md index 68992ee98..e84286df1 100644 --- a/docs/index.md +++ b/docs/index.md @@ -3,17 +3,16 @@ summary: "Top-level overview of Clawdbot, features, and purpose" read_when: - Introducing Clawdbot to newcomers --- - # CLAWDBOT 🦞 > *"EXFOLIATE! EXFOLIATE!"* — A space lobster, probably

- CLAWDBOT + CLAWDBOT

- WhatsApp + Telegram + Discord + iMessage gateway for AI agents (Pi).
+ WhatsApp + Telegram + Discord + iMessage gateway for AI agents (Pi).
Send a message, get an agent response — from your pocket.

@@ -161,7 +160,6 @@ Example: --- *"We're all just playing with our own prompts."* — an AI, probably high on tokens - ## Credits diff --git a/docs/mac/icon.md b/docs/mac/icon.md index a11fdd625..520cbae0b 100644 --- a/docs/mac/icon.md +++ b/docs/mac/icon.md @@ -23,4 +23,4 @@ Shapes & sizes Behavioral notes - No external CLI/broker toggle for ears/working; keep it internal to the app’s own signals to avoid accidental flapping. -- Keep TTLs short (<10s) so the icon returns to baseline quickly if a job hangs. +- Keep TTLs short (<10s) so the icon returns to baseline quickly if a job hangs. diff --git a/docs/onboarding.md b/docs/onboarding.md index 1950b7e35..85caf4612 100644 --- a/docs/onboarding.md +++ b/docs/onboarding.md @@ -4,7 +4,6 @@ read_when: - Designing the macOS onboarding assistant - Implementing Anthropic auth or identity setup --- - # Onboarding (macOS app) This doc describes the intended **first-run onboarding** for Clawdbot. The goal is a good “day 0” experience: pick where the Gateway runs, bind Claude (Anthropic) auth for the embedded agent runtime, and then let the **agent bootstrap itself** via a first-run ritual in the workspace. @@ -182,4 +181,3 @@ chmod 600 ~/.clawdbot/credentials/oauth.json | `accessToken` | `access` | | `refreshToken` | `refresh` | | `expiresAt` | `expires` | - diff --git a/docs/refactor/webagent-session.md b/docs/refactor/webagent-session.md index 3a75255ac..ad769c193 100644 --- a/docs/refactor/webagent-session.md +++ b/docs/refactor/webagent-session.md @@ -3,7 +3,6 @@ summary: "WebChat session migration notes (Gateway WS-only)" read_when: - Changing WebChat Gateway methods/events --- - # WebAgent session migration (WS-only) Context: web chat currently lives in a WKWebView that loads the pi-web bundle. Sends go over HTTP `/rpc` to the webchat server, and updates come from `/socket` snapshots based on session JSONL file changes. The Gateway itself already speaks WebSocket to the webchat server, and Pi writes the session JSONL files. This doc tracks the plan to move WebChat to a single Gateway WebSocket and drop the HTTP shim/file-watching. @@ -43,4 +42,3 @@ Context: web chat currently lives in a WKWebView that loads the pi-web bundle. S - Streaming granularity: start with `state:"final"` only, or include token/tool deltas immediately? - Attachments over WS: text-only initially is OK; confirm before wiring binary/upload path. - Error shape: use `res ok:false` for validation/timeout, `chat state:"error"` for model/runtime failures. - diff --git a/docs/research/memory.md b/docs/research/memory.md index a9d07bf3c..5376f85dc 100644 --- a/docs/research/memory.md +++ b/docs/research/memory.md @@ -111,7 +111,7 @@ Example: ## Retain - W @Peter: Currently in Marrakech (Nov 27–Dec 1, 2025) for Andy’s birthday. - B @warelay: I fixed the Baileys WS crash by wrapping connection.update handlers in try/catch (see memory/2025-11-27.md). -- O(c=0.95) @Peter: Prefers concise replies (<1500 chars) on WhatsApp; long content goes into files. +- O(c=0.95) @Peter: Prefers concise replies (<1500 chars) on WhatsApp; long content goes into files. ``` Minimal parsing: diff --git a/docs/skills.md b/docs/skills.md index 5a939f859..0dadb6a10 100644 --- a/docs/skills.md +++ b/docs/skills.md @@ -4,7 +4,6 @@ read_when: - Adding or modifying skills - Changing skill gating or load rules --- - # Skills (Clawdbot) Clawdbot uses **AgentSkills-compatible** skill folders to teach the agent how to use tools. Each skill is a directory containing a `SKILL.md` with YAML frontmatter and instructions. Clawdbot loads **bundled skills** plus optional local overrides, and filters them at load time based on environment, config, and binary presence. @@ -146,4 +145,3 @@ copy). Workspace skills are user-owned and override both on name conflicts. See `docs/skills-config.md` for the full configuration schema. --- - diff --git a/docs/templates/AGENTS.md b/docs/templates/AGENTS.md index 4b0379c28..121756b8f 100644 --- a/docs/templates/AGENTS.md +++ b/docs/templates/AGENTS.md @@ -103,7 +103,7 @@ When you receive a `HEARTBEAT` message, don't just reply `HEARTBEAT_OK` every ti **When to reach out:** - Important email arrived -- Calendar event coming up (<2h) +- Calendar event coming up (<2h) - Something interesting you found - It's been >8h since you said anything @@ -111,7 +111,7 @@ When you receive a `HEARTBEAT` message, don't just reply `HEARTBEAT_OK` every ti - Late night (23:00-08:00) unless urgent - Human is clearly busy - Nothing new since last check -- You just checked <30 minutes ago +- You just checked <30 minutes ago **Proactive work you can do without asking:** - Read and organize memory files diff --git a/package.json b/package.json index cc07f7454..cdbaae71d 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "dev": "tsx src/index.ts", "docs:list": "tsx scripts/docs-list.ts", "docs:dev": "cd docs && mint dev", - "docs:build": "cd docs && mint broken-links", + "docs:build": "cd docs && pnpm dlx mint broken-links", "build": "tsc -p tsconfig.json && tsx scripts/canvas-a2ui-copy.ts", "release:check": "tsx scripts/release-check.ts", "ui:install": "pnpm -C ui install", diff --git a/src/canvas-host/a2ui/.bundle.hash b/src/canvas-host/a2ui/.bundle.hash index a1c6a37d5..d7d0f8adb 100644 --- a/src/canvas-host/a2ui/.bundle.hash +++ b/src/canvas-host/a2ui/.bundle.hash @@ -1 +1 @@ -7daf1cbf58ef395b74c2690c439ac7b3cb536e8eb124baf72ad41da4f542204d +68f18193053997f3dee16de6b0be0bcd97dc70ff8200c77f687479e8b19b78e1 diff --git a/src/gateway/server-methods/chat.ts b/src/gateway/server-methods/chat.ts index 7f0e151c9..bed2ff0e5 100644 --- a/src/gateway/server-methods/chat.ts +++ b/src/gateway/server-methods/chat.ts @@ -127,13 +127,7 @@ export const chatHandlers: GatewayRequestHandlers = { context.bridgeSendToSession(sessionKey, "chat", payload); respond(true, { ok: true, aborted: true }); }, - "chat.send": async ({ - params, - respond, - context, - client: _client, - isWebchatConnect: _isWebchatConnect, - }) => { + "chat.send": async ({ params, respond, context }) => { if (!validateChatSendParams(params)) { respond( false,