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:
- Changing agent runtime, workspace bootstrap, or session behavior
---
<!-- {% raw %} -->
# 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)* 🦞
<!-- {% endraw %} -->

View File

@@ -3,7 +3,6 @@ summary: "How inbound audio/voice notes are downloaded, transcribed, and injecte
read_when:
- Changing audio transcription or media handling
---
<!-- {% raw %} -->
# 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.
<!-- {% endraw %} -->

View File

@@ -4,7 +4,6 @@ read_when:
- Onboarding a new assistant instance
- Reviewing safety/permission implications
---
<!-- {% raw %} -->
# 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)
<!-- {% endraw %} -->

View File

@@ -3,7 +3,6 @@ summary: "All configuration options for ~/.clawdbot/clawdbot.json with examples"
read_when:
- Adding or modifying config fields
---
<!-- {% raw %} -->
# 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)* 🦞
<!-- {% endraw %} -->

View File

@@ -3,7 +3,6 @@ summary: "Image and media handling rules for send, gateway, and agent replies"
read_when:
- Modifying media pipeline or attachments
---
<!-- {% raw %} -->
# 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.
<!-- {% endraw %} -->

View File

@@ -3,17 +3,16 @@ summary: "Top-level overview of Clawdbot, features, and purpose"
read_when:
- Introducing Clawdbot to newcomers
---
<!-- {% raw %} -->
# CLAWDBOT 🦞
> *"EXFOLIATE! EXFOLIATE!"* — A space lobster, probably
<p align="center">
<img src="whatsapp-clawd.jpg" alt="CLAWDBOT" width="420">
<img src="whatsapp-clawd.jpg" alt="CLAWDBOT" width="420" />
</p>
<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.
</p>
@@ -161,7 +160,6 @@ Example:
---
*"We're all just playing with our own prompts."* — an AI, probably high on tokens
<!-- {% endraw %} -->
## Credits

View File

@@ -23,4 +23,4 @@ Shapes & sizes
Behavioral notes
- 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
- Implementing Anthropic auth or identity setup
---
<!-- {% raw %} -->
# 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` |
<!-- {% endraw %} -->

View File

@@ -3,7 +3,6 @@ summary: "WebChat session migration notes (Gateway WS-only)"
read_when:
- Changing WebChat Gateway methods/events
---
<!-- {% raw %} -->
# 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.
<!-- {% endraw %} -->

View File

@@ -111,7 +111,7 @@ Example:
## Retain
- 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).
- 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:

View File

@@ -4,7 +4,6 @@ read_when:
- Adding or modifying skills
- Changing skill gating or load rules
---
<!-- {% raw %} -->
# 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.
---
<!-- {% 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:**
- Important email arrived
- Calendar event coming up (<2h)
- Calendar event coming up (&lt;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 &lt;30 minutes ago
**Proactive work you can do without asking:**
- Read and organize memory files

View File

@@ -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",

View File

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

View File

@@ -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,