From 11c66b36fd76d98b9fcf5c45eca0182c46f85f97 Mon Sep 17 00:00:00 2001 From: Jacob Tomlinson Date: Sun, 22 Mar 2026 20:48:56 +0000 Subject: [PATCH] docs: add irc/googlechat/line channels, fix hook os field, cron add, BOOTSTRAP.md --- docs/automation/cron-jobs.md | 2 +- docs/automation/hooks.md | 10 ++++++++-- docs/automation/standing-orders.md | 4 ++-- docs/automation/webhook.md | 2 +- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/docs/automation/cron-jobs.md b/docs/automation/cron-jobs.md index d58683aedea..eccc0b8b945 100644 --- a/docs/automation/cron-jobs.md +++ b/docs/automation/cron-jobs.md @@ -261,7 +261,7 @@ Isolated jobs (`agentTurn`) can set `lightContext: true` to run with lightweight Isolated jobs can deliver output to a channel via the top-level `delivery` config: - `delivery.mode`: `announce` (channel delivery), `webhook` (HTTP POST), or `none`. -- `delivery.channel`: `whatsapp` / `telegram` / `discord` / `slack` / `mattermost` (plugin) / `signal` / `imessage` / `last`. +- `delivery.channel`: `whatsapp` / `telegram` / `discord` / `slack` / `signal` / `imessage` / `irc` / `googlechat` / `line` / `last`, plus extension channels like `msteams` / `mattermost` (plugins). - `delivery.to`: channel-specific recipient target. `announce` delivery is only valid for isolated jobs (`sessionTarget: "isolated"`). diff --git a/docs/automation/hooks.md b/docs/automation/hooks.md index e21caec4a6b..f7e3a60a138 100644 --- a/docs/automation/hooks.md +++ b/docs/automation/hooks.md @@ -181,12 +181,12 @@ The `metadata.openclaw` object supports: - **`events`**: Array of events to listen for (e.g., `["command:new", "command:reset"]`) - **`export`**: Named export to use (defaults to `"default"`) - **`homepage`**: Documentation URL +- **`os`**: Required platforms (e.g., `["darwin", "linux"]`) - **`requires`**: Optional requirements - **`bins`**: Required binaries on PATH (e.g., `["git", "node"]`) - **`anyBins`**: At least one of these binaries must be present - **`env`**: Required environment variables - **`config`**: Required config paths (e.g., `["workspace.dir"]`) - - **`os`**: Required platforms (e.g., `["darwin", "linux"]`) - **`always`**: Bypass eligibility checks (boolean) - **`install`**: Installation methods (for bundled hooks: `[{"id":"bundled","kind":"bundled"}]`) @@ -671,6 +671,12 @@ Injects additional bootstrap files (for example monorepo-local `AGENTS.md` / `TO } ``` +**Config options**: + +- `paths` (string[]): glob/path patterns to resolve from the workspace. +- `patterns` (string[]): alias of `paths`. +- `files` (string[]): alias of `paths`. + **Notes**: - Paths are resolved relative to workspace. @@ -909,7 +915,7 @@ test("my handler works", async () => { ``` Gateway startup ↓ -Scan directories (workspace → managed → bundled) +Scan directories (bundled → plugin → managed → workspace) ↓ Parse HOOK.md files ↓ diff --git a/docs/automation/standing-orders.md b/docs/automation/standing-orders.md index b0d52494fdb..a6593f9f48d 100644 --- a/docs/automation/standing-orders.md +++ b/docs/automation/standing-orders.md @@ -43,7 +43,7 @@ Each program specifies: The agent loads these instructions every session via the workspace bootstrap files (see [Agent Workspace](/concepts/agent-workspace) for the full list of auto-injected files) and executes against them, combined with [cron jobs](/automation/cron-jobs) for time-based enforcement. -Put standing orders in `AGENTS.md` to guarantee they're loaded every session. The workspace bootstrap automatically injects `AGENTS.md`, `SOUL.md`, `TOOLS.md`, `IDENTITY.md`, `USER.md`, `HEARTBEAT.md`, and `MEMORY.md` — but not arbitrary files in subdirectories. +Put standing orders in `AGENTS.md` to guarantee they're loaded every session. The workspace bootstrap automatically injects `AGENTS.md`, `SOUL.md`, `TOOLS.md`, `IDENTITY.md`, `USER.md`, `HEARTBEAT.md`, `BOOTSTRAP.md`, and `MEMORY.md` — but not arbitrary files in subdirectories. ## Anatomy of a Standing Order @@ -86,7 +86,7 @@ Agent: Reads standing orders → executes steps → reports results The cron job prompt should reference the standing order rather than duplicating it: ```bash -openclaw cron create \ +openclaw cron add \ --name daily-inbox-triage \ --cron "0 8 * * 1-5" \ --tz America/New_York \ diff --git a/docs/automation/webhook.md b/docs/automation/webhook.md index 1d9bd550414..99050eb3fed 100644 --- a/docs/automation/webhook.md +++ b/docs/automation/webhook.md @@ -84,7 +84,7 @@ Payload: - `sessionKey` optional (string): The key used to identify the agent's session. By default this field is rejected unless `hooks.allowRequestSessionKey=true`. - `wakeMode` optional (`now` | `next-heartbeat`): Whether to trigger an immediate heartbeat (default `now`) or wait for the next periodic check. - `deliver` optional (boolean): If `true`, the agent's response will be sent to the messaging channel. Defaults to `true`. Responses that are only heartbeat acknowledgments are automatically skipped. -- `channel` optional (string): The messaging channel for delivery. One of: `last`, `whatsapp`, `telegram`, `discord`, `slack`, `mattermost` (plugin), `signal`, `imessage`, `msteams`. Defaults to `last`. +- `channel` optional (string): The messaging channel for delivery. Core channels: `last`, `whatsapp`, `telegram`, `discord`, `slack`, `signal`, `imessage`, `irc`, `googlechat`, `line`. Extension channels (plugins): `msteams`, `mattermost`, and others. Defaults to `last`. - `to` optional (string): The recipient identifier for the channel (e.g., phone number for WhatsApp/Signal, chat ID for Telegram, channel ID for Discord/Slack/Mattermost (plugin), conversation ID for Microsoft Teams). Defaults to the last recipient in the main session. - `model` optional (string): Model override (e.g., `anthropic/claude-3-5-sonnet` or an alias). Must be in the allowed model list if restricted. - `thinking` optional (string): Thinking level override (e.g., `low`, `medium`, `high`).