fix(ci): resolve lint and docs build failures

This commit is contained in:
Peter Steinberger
2026-01-04 18:04:23 +00:00
parent 16ce76307e
commit bcdfe461d4
15 changed files with 9 additions and 33 deletions

View File

@@ -3,7 +3,6 @@ summary: "Agent runtime (embedded p-mono), workspace contract, and session boots
read_when: read_when:
- Changing agent runtime, workspace bootstrap, or session behavior - Changing agent runtime, workspace bootstrap, or session behavior
--- ---
<!-- {% raw %} -->
# Agent Runtime 🤖 # Agent Runtime 🤖
CLAWDBOT runs a single embedded agent runtime derived from **p-mono** (internal name: **p**). 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)* 🦞 *Next: [Group Chats](./group-messages.md)* 🦞
<!-- {% endraw %} -->

View File

@@ -3,7 +3,6 @@ summary: "How inbound audio/voice notes are downloaded, transcribed, and injecte
read_when: read_when:
- Changing audio transcription or media handling - Changing audio transcription or media handling
--- ---
<!-- {% raw %} -->
# Audio / Voice Notes — 2025-12-05 # Audio / Voice Notes — 2025-12-05
## What works ## What works
@@ -47,4 +46,3 @@ Requires `OPENAI_API_KEY` in env and `openai` CLI installed:
## Gotchas ## Gotchas
- Ensure your CLI exits 0 and prints plain text; JSON needs to be massaged via `jq -r .text`. - 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. - Keep timeouts reasonable (`timeoutSeconds`, default 45s) to avoid blocking the reply queue.
<!-- {% endraw %} -->

View File

@@ -4,7 +4,6 @@ read_when:
- Onboarding a new assistant instance - Onboarding a new assistant instance
- Reviewing safety/permission implications - Reviewing safety/permission implications
--- ---
<!-- {% raw %} -->
# Building a personal assistant with CLAWDBOT (Clawd-style) # 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. 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) - Cron + wakeups: [Cron + wakeups](./cron.md)
- macOS menu bar companion: [Clawdbot macOS app](./clawdbot-mac.md) - macOS menu bar companion: [Clawdbot macOS app](./clawdbot-mac.md)
- Security: [Security](./security.md) - Security: [Security](./security.md)
<!-- {% endraw %} -->

View File

@@ -3,7 +3,6 @@ summary: "All configuration options for ~/.clawdbot/clawdbot.json with examples"
read_when: read_when:
- Adding or modifying config fields - Adding or modifying config fields
--- ---
<!-- {% raw %} -->
# Configuration 🔧 # Configuration 🔧
CLAWDBOT reads an optional **JSON5** config from `~/.clawdbot/clawdbot.json` (comments + trailing commas allowed). 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)* 🦞 *Next: [Agent Runtime](./agent.md)* 🦞
<!-- {% endraw %} -->

View File

@@ -3,7 +3,6 @@ summary: "Image and media handling rules for send, gateway, and agent replies"
read_when: read_when:
- Modifying media pipeline or attachments - Modifying media pipeline or attachments
--- ---
<!-- {% raw %} -->
# Image & Media Support — 2025-12-05 # 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. 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. - Cover send + reply flows for image/audio/document cases.
- Validate recompression for images (size bound) and voice-note flag for audio. - Validate recompression for images (size bound) and voice-note flag for audio.
- Ensure multi-media replies fan out as sequential sends. - Ensure multi-media replies fan out as sequential sends.
<!-- {% endraw %} -->

View File

@@ -3,17 +3,16 @@ summary: "Top-level overview of Clawdbot, features, and purpose"
read_when: read_when:
- Introducing Clawdbot to newcomers - Introducing Clawdbot to newcomers
--- ---
<!-- {% raw %} -->
# CLAWDBOT 🦞 # CLAWDBOT 🦞
> *"EXFOLIATE! EXFOLIATE!"* — A space lobster, probably > *"EXFOLIATE! EXFOLIATE!"* — A space lobster, probably
<p align="center"> <p align="center">
<img src="whatsapp-clawd.jpg" alt="CLAWDBOT" width="420"> <img src="whatsapp-clawd.jpg" alt="CLAWDBOT" width="420" />
</p> </p>
<p align="center"> <p align="center">
<strong>WhatsApp + Telegram + Discord + iMessage gateway for AI agents (Pi).</strong><br> <strong>WhatsApp + Telegram + Discord + iMessage gateway for AI agents (Pi).</strong><br />
Send a message, get an agent response — from your pocket. Send a message, get an agent response — from your pocket.
</p> </p>
@@ -161,7 +160,6 @@ Example:
--- ---
*"We're all just playing with our own prompts."* — an AI, probably high on tokens *"We're all just playing with our own prompts."* — an AI, probably high on tokens
<!-- {% endraw %} -->
## Credits ## Credits

View File

@@ -23,4 +23,4 @@ Shapes & sizes
Behavioral notes Behavioral notes
- No external CLI/broker toggle for ears/working; keep it internal to the apps own signals to avoid accidental flapping. - No external CLI/broker toggle for ears/working; keep it internal to the apps own signals to avoid accidental flapping.
- Keep TTLs short (<10s) so the icon returns to baseline quickly if a job hangs. - Keep TTLs short (&lt;10s) so the icon returns to baseline quickly if a job hangs.

View File

@@ -4,7 +4,6 @@ read_when:
- Designing the macOS onboarding assistant - Designing the macOS onboarding assistant
- Implementing Anthropic auth or identity setup - Implementing Anthropic auth or identity setup
--- ---
<!-- {% raw %} -->
# Onboarding (macOS app) # 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. 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` | | `accessToken` | `access` |
| `refreshToken` | `refresh` | | `refreshToken` | `refresh` |
| `expiresAt` | `expires` | | `expiresAt` | `expires` |
<!-- {% endraw %} -->

View File

@@ -3,7 +3,6 @@ summary: "WebChat session migration notes (Gateway WS-only)"
read_when: read_when:
- Changing WebChat Gateway methods/events - Changing WebChat Gateway methods/events
--- ---
<!-- {% raw %} -->
# WebAgent session migration (WS-only) # 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. 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? - 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. - 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. - Error shape: use `res ok:false` for validation/timeout, `chat state:"error"` for model/runtime failures.
<!-- {% endraw %} -->

View File

@@ -111,7 +111,7 @@ Example:
## Retain ## Retain
- W @Peter: Currently in Marrakech (Nov 27Dec 1, 2025) for Andys birthday. - W @Peter: Currently in Marrakech (Nov 27Dec 1, 2025) for Andys birthday.
- B @warelay: I fixed the Baileys WS crash by wrapping connection.update handlers in try/catch (see memory/2025-11-27.md). - 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 (&lt;1500 chars) on WhatsApp; long content goes into files.
``` ```
Minimal parsing: Minimal parsing:

View File

@@ -4,7 +4,6 @@ read_when:
- Adding or modifying skills - Adding or modifying skills
- Changing skill gating or load rules - Changing skill gating or load rules
--- ---
<!-- {% raw %} -->
# Skills (Clawdbot) # 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. 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. See `docs/skills-config.md` for the full configuration schema.
--- ---
<!-- {% endraw %} -->

View File

@@ -103,7 +103,7 @@ When you receive a `HEARTBEAT` message, don't just reply `HEARTBEAT_OK` every ti
**When to reach out:** **When to reach out:**
- Important email arrived - Important email arrived
- Calendar event coming up (<2h) - Calendar event coming up (&lt;2h)
- Something interesting you found - Something interesting you found
- It's been >8h since you said anything - 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 - Late night (23:00-08:00) unless urgent
- Human is clearly busy - Human is clearly busy
- Nothing new since last check - Nothing new since last check
- You just checked <30 minutes ago - You just checked &lt;30 minutes ago
**Proactive work you can do without asking:** **Proactive work you can do without asking:**
- Read and organize memory files - Read and organize memory files

View File

@@ -39,7 +39,7 @@
"dev": "tsx src/index.ts", "dev": "tsx src/index.ts",
"docs:list": "tsx scripts/docs-list.ts", "docs:list": "tsx scripts/docs-list.ts",
"docs:dev": "cd docs && mint dev", "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", "build": "tsc -p tsconfig.json && tsx scripts/canvas-a2ui-copy.ts",
"release:check": "tsx scripts/release-check.ts", "release:check": "tsx scripts/release-check.ts",
"ui:install": "pnpm -C ui install", "ui:install": "pnpm -C ui install",

View File

@@ -1 +1 @@
7daf1cbf58ef395b74c2690c439ac7b3cb536e8eb124baf72ad41da4f542204d 68f18193053997f3dee16de6b0be0bcd97dc70ff8200c77f687479e8b19b78e1

View File

@@ -127,13 +127,7 @@ export const chatHandlers: GatewayRequestHandlers = {
context.bridgeSendToSession(sessionKey, "chat", payload); context.bridgeSendToSession(sessionKey, "chat", payload);
respond(true, { ok: true, aborted: true }); respond(true, { ok: true, aborted: true });
}, },
"chat.send": async ({ "chat.send": async ({ params, respond, context }) => {
params,
respond,
context,
client: _client,
isWebchatConnect: _isWebchatConnect,
}) => {
if (!validateChatSendParams(params)) { if (!validateChatSendParams(params)) {
respond( respond(
false, false,