Some checks failed
ClawSweeper Dispatch / dispatch (push) Has been cancelled
CodeQL / Security High (actions) (push) Has been cancelled
CodeQL / Security High (channel-runtime-boundary) (push) Has been cancelled
CodeQL / Security High (core-auth-secrets) (push) Has been cancelled
CodeQL / Security High (mcp-process-tool-boundary) (push) Has been cancelled
CodeQL / Security High (network-ssrf-boundary) (push) Has been cancelled
CodeQL / Security High (plugin-trust-boundary) (push) Has been cancelled
CodeQL / Security High (process-exec-boundary) (push) Has been cancelled
Docs Sync Publish Repo / sync-publish-repo (push) Has been cancelled
Docs / docs (push) Has been cancelled
OpenClaw Stable Main Closeout / Resolve stable release closeout inputs (push) Has been cancelled
OpenClaw Stable Main Closeout / Verify stable main closeout (push) Has been cancelled
Workflow Sanity / no-tabs (push) Has been cancelled
Workflow Sanity / actionlint (push) Has been cancelled
Workflow Sanity / generated-doc-baselines (push) Has been cancelled
CI / runner-admission (push) Has been cancelled
CI / preflight (push) Has been cancelled
CI / security-fast (push) Has been cancelled
CI / pnpm-store-warmup (push) Has been cancelled
CI / build-artifacts (push) Has been cancelled
CI / native-i18n (push) Has been cancelled
CI / ${{ matrix.check_name }} (push) Has been cancelled
CI / ${{ matrix.checkName }} (push) Has been cancelled
CI / checks-node-compat-node22 (push) Has been cancelled
CI / check-bundled-channel-config-metadata (push) Has been cancelled
CI / check-dependencies (push) Has been cancelled
CI / check-guards (push) Has been cancelled
CI / check-lint (push) Has been cancelled
CI / check-prod-types (push) Has been cancelled
CI / check-shrinkwrap (push) Has been cancelled
CI / check-test-types (push) Has been cancelled
CI / check-additional-boundaries-a (push) Has been cancelled
CI / check-additional-boundaries-bcd (push) Has been cancelled
CI / check-additional-extension-bundled (push) Has been cancelled
CI / check-additional-extension-channels (push) Has been cancelled
CI / check-additional-extension-package-boundary (push) Has been cancelled
CI / check-additional-runtime-topology-architecture (push) Has been cancelled
CI / check-session-accessor-boundary (push) Has been cancelled
CI / check-session-transcript-reader-boundary (push) Has been cancelled
CI / check-docs (push) Has been cancelled
CI / skills-python (push) Has been cancelled
CI / macos-swift (push) Has been cancelled
CI / ios-build (push) Has been cancelled
CI / ci-timings-summary (push) Has been cancelled
Native App Locale Refresh / Refresh native fa (push) Has been cancelled
Native App Locale Refresh / Refresh native fr (push) Has been cancelled
Native App Locale Refresh / Refresh native hi (push) Has been cancelled
Native App Locale Refresh / Refresh native id (push) Has been cancelled
Native App Locale Refresh / Refresh native it (push) Has been cancelled
Native App Locale Refresh / Refresh native ja-JP (push) Has been cancelled
Control UI Locale Refresh / plan (push) Has been cancelled
Control UI Locale Refresh / Refresh ${{ matrix.locale }} (push) Has been cancelled
Control UI Locale Refresh / Commit control UI locale refresh (push) Has been cancelled
Live Media Runner Image / Build live media runner image (push) Has been cancelled
Native App Locale Refresh / Refresh native ar (push) Has been cancelled
Native App Locale Refresh / Refresh native de (push) Has been cancelled
Native App Locale Refresh / Refresh native es (push) Has been cancelled
Native App Locale Refresh / Refresh native ko (push) Has been cancelled
Native App Locale Refresh / Refresh native nl (push) Has been cancelled
Native App Locale Refresh / Refresh native pl (push) Has been cancelled
Native App Locale Refresh / Refresh native pt-BR (push) Has been cancelled
Native App Locale Refresh / Refresh native ru (push) Has been cancelled
Native App Locale Refresh / Refresh native sv (push) Has been cancelled
Native App Locale Refresh / Refresh native th (push) Has been cancelled
Native App Locale Refresh / Refresh native tr (push) Has been cancelled
Native App Locale Refresh / Refresh native uk (push) Has been cancelled
Native App Locale Refresh / Refresh native vi (push) Has been cancelled
Native App Locale Refresh / Refresh native zh-CN (push) Has been cancelled
Native App Locale Refresh / Refresh native zh-TW (push) Has been cancelled
Native App Locale Refresh / Commit native locale refresh (push) Has been cancelled
Plugin Init Scaffold Validation / Validate provider scaffold (push) Has been cancelled
Plugin NPM Release / preview_plugins_npm (push) Has been cancelled
Plugin NPM Release / Validate release publish approval (push) Has been cancelled
Plugin NPM Release / preview_plugin_pack (push) Has been cancelled
Plugin NPM Release / publish_plugins_npm (push) Has been cancelled
Sandbox Common Smoke / sandbox-common-smoke (push) Has been cancelled
Website Installer Sync / static (push) Has been cancelled
Website Installer Sync / linux-docker (push) Has been cancelled
Website Installer Sync / macos-installer (push) Has been cancelled
Website Installer Sync / windows-installer (push) Has been cancelled
Website Installer Sync / sync-website (push) Has been cancelled
Adolf is a fork/vendored clone of github.com/openclaw/openclaw (v2026.6.11), free to diverge. Tree copied sans upstream .git; upstream remote added for future syncs. Node pinned to 24 (.nvmrc); engines already require >=22.19. Preserves docs/ARCHITECTURE.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LeqyaxJF2nbRXJtae2kNB2
1350 lines
47 KiB
JSON
1350 lines
47 KiB
JSON
[
|
|
{
|
|
"description": "Send/delete/manage channel messages. Supports actions: send.",
|
|
"inputSchema": {
|
|
"properties": {
|
|
"accountId": {
|
|
"type": "string"
|
|
},
|
|
"action": {
|
|
"enum": ["send"],
|
|
"type": "string"
|
|
},
|
|
"asDocument": {
|
|
"description": "Alias for forceDocument.",
|
|
"type": "boolean"
|
|
},
|
|
"asVoice": {
|
|
"type": "boolean"
|
|
},
|
|
"attachments": {
|
|
"description": "Structured attachments; each entry uses media.",
|
|
"items": {
|
|
"properties": {
|
|
"media": {
|
|
"type": "string"
|
|
},
|
|
"mimeType": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"enum": ["image", "audio", "video", "file"],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"buffer": {
|
|
"description": "Base64 attachment payload; data URL ok.",
|
|
"type": "string"
|
|
},
|
|
"caption": {
|
|
"type": "string"
|
|
},
|
|
"channel": {
|
|
"type": "string"
|
|
},
|
|
"contentType": {
|
|
"type": "string"
|
|
},
|
|
"dryRun": {
|
|
"type": "boolean"
|
|
},
|
|
"effect": {
|
|
"description": "Alias for effectId.",
|
|
"type": "string"
|
|
},
|
|
"effectId": {
|
|
"description": "Effect id/name for sendWithEffect.",
|
|
"type": "string"
|
|
},
|
|
"filename": {
|
|
"type": "string"
|
|
},
|
|
"forceDocument": {
|
|
"description": "Send image/GIF/video as document; avoids compression.",
|
|
"type": "boolean"
|
|
},
|
|
"gatewayToken": {
|
|
"type": "string"
|
|
},
|
|
"gatewayUrl": {
|
|
"type": "string"
|
|
},
|
|
"gifPlayback": {
|
|
"type": "boolean"
|
|
},
|
|
"media": {
|
|
"description": "Media URL/path. data: use buffer.",
|
|
"type": "string"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
},
|
|
"mimeType": {
|
|
"type": "string"
|
|
},
|
|
"quoteText": {
|
|
"description": "Telegram reply quote text.",
|
|
"type": "string"
|
|
},
|
|
"replyTo": {
|
|
"type": "string"
|
|
},
|
|
"silent": {
|
|
"type": "boolean"
|
|
},
|
|
"target": {
|
|
"description": "Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack/Mattermost <channelId|user:ID|channel:ID>, or iMessage handle/chat_id",
|
|
"type": "string"
|
|
},
|
|
"targets": {
|
|
"items": {
|
|
"description": "Recipient/channel targets (same format as --target); accepts ids or names when the directory is available.",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"threadId": {
|
|
"type": "string"
|
|
},
|
|
"timeoutMs": {
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": ["action"],
|
|
"type": "object"
|
|
},
|
|
"name": "message",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"description": "List agent ids allowed for `sessions_spawn runtime=\"subagent\"`.",
|
|
"inputSchema": {
|
|
"properties": {},
|
|
"type": "object"
|
|
},
|
|
"name": "agents_list",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"description": "Spawn clean child session; default `runtime=\"subagent\"`. `mode=\"run\"` one-shot; `mode=\"session\"` persistent/thread-bound, only when requester channel supports thread bindings. Subagents inherit parent workspace. Native subagents get task in first visible `[Subagent Task]` message. Native only: `context=\"fork\"` only when child needs current transcript; else omit or `isolated`. Use for fresh child-session work. Delegate sidecar/parallel tasks: batch file reads, multi-step searches, data collection. Avoid delegating quick lookups or single-file reads unless policy prefers delegation. After spawning, do non-overlapping work; run-mode results return, session-mode output stays in thread.",
|
|
"inputSchema": {
|
|
"properties": {
|
|
"agentId": {
|
|
"type": "string"
|
|
},
|
|
"attachAs": {
|
|
"properties": {
|
|
"mountPath": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"attachments": {
|
|
"items": {
|
|
"properties": {
|
|
"content": {
|
|
"type": "string"
|
|
},
|
|
"encoding": {
|
|
"enum": ["utf8", "base64"],
|
|
"type": "string"
|
|
},
|
|
"mimeType": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": ["name", "content"],
|
|
"type": "object"
|
|
},
|
|
"maxItems": 50,
|
|
"type": "array"
|
|
},
|
|
"cleanup": {
|
|
"enum": ["delete", "keep"],
|
|
"type": "string"
|
|
},
|
|
"context": {
|
|
"description": "Native context. Omit/\"isolated\" for clean child; \"fork\" only when child needs requester transcript.",
|
|
"enum": ["isolated", "fork"],
|
|
"type": "string"
|
|
},
|
|
"cwd": {
|
|
"type": "string"
|
|
},
|
|
"label": {
|
|
"type": "string"
|
|
},
|
|
"lightContext": {
|
|
"description": "Light bootstrap context; runtime=\"subagent\" only.",
|
|
"type": "boolean"
|
|
},
|
|
"mode": {
|
|
"enum": ["run", "session"],
|
|
"type": "string"
|
|
},
|
|
"model": {
|
|
"type": "string"
|
|
},
|
|
"runtime": {
|
|
"enum": ["subagent"],
|
|
"type": "string"
|
|
},
|
|
"sandbox": {
|
|
"enum": ["inherit", "require"],
|
|
"type": "string"
|
|
},
|
|
"task": {
|
|
"type": "string"
|
|
},
|
|
"taskName": {
|
|
"description": "Stable alias for later targeting; lowercase letters/digits/underscores/hyphens, starts letter.",
|
|
"type": "string"
|
|
},
|
|
"thinking": {
|
|
"type": "string"
|
|
},
|
|
"thread": {
|
|
"description": "Bind spawn to new chat thread when supported. `thread=true` defaults mode=\"session\".",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": ["task"],
|
|
"type": "object"
|
|
},
|
|
"name": "sessions_spawn",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"description": "End current turn. Use after spawning subagents; results arrive as next message.",
|
|
"inputSchema": {
|
|
"properties": {
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"name": "sessions_yield",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"description": "",
|
|
"name": "openclaw",
|
|
"tools": [
|
|
{
|
|
"deferLoading": true,
|
|
"description": "Discover/control paired nodes: status, describe, pairing, notify, camera/photos/screen/location/notifications/invoke. Use file_fetch for files.",
|
|
"inputSchema": {
|
|
"properties": {
|
|
"action": {
|
|
"enum": [
|
|
"status",
|
|
"describe",
|
|
"pending",
|
|
"approve",
|
|
"reject",
|
|
"notify",
|
|
"camera_snap",
|
|
"camera_list",
|
|
"camera_clip",
|
|
"photos_latest",
|
|
"screen_record",
|
|
"screen_snapshot",
|
|
"location_get",
|
|
"notifications_list",
|
|
"notifications_action",
|
|
"device_status",
|
|
"device_info",
|
|
"device_permissions",
|
|
"device_health",
|
|
"invoke"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"body": {
|
|
"type": "string"
|
|
},
|
|
"delayMs": {
|
|
"minimum": 0,
|
|
"type": "integer"
|
|
},
|
|
"delivery": {
|
|
"enum": ["system", "overlay", "auto"],
|
|
"type": "string"
|
|
},
|
|
"desiredAccuracy": {
|
|
"enum": ["coarse", "balanced", "precise"],
|
|
"type": "string"
|
|
},
|
|
"deviceId": {
|
|
"type": "string"
|
|
},
|
|
"duration": {
|
|
"type": "string"
|
|
},
|
|
"durationMs": {
|
|
"maximum": 300000,
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
},
|
|
"facing": {
|
|
"description": "camera_snap: front/back/both; camera_clip: front/back only.",
|
|
"enum": ["front", "back", "both"],
|
|
"type": "string"
|
|
},
|
|
"fps": {
|
|
"exclusiveMinimum": 0,
|
|
"type": "number"
|
|
},
|
|
"gatewayToken": {
|
|
"type": "string"
|
|
},
|
|
"gatewayUrl": {
|
|
"type": "string"
|
|
},
|
|
"includeAudio": {
|
|
"type": "boolean"
|
|
},
|
|
"invokeCommand": {
|
|
"type": "string"
|
|
},
|
|
"invokeParamsJson": {
|
|
"type": "string"
|
|
},
|
|
"invokeTimeoutMs": {
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
},
|
|
"limit": {
|
|
"maximum": 20,
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
},
|
|
"locationTimeoutMs": {
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
},
|
|
"maxAgeMs": {
|
|
"minimum": 0,
|
|
"type": "integer"
|
|
},
|
|
"maxWidth": {
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
},
|
|
"node": {
|
|
"type": "string"
|
|
},
|
|
"notificationAction": {
|
|
"enum": ["open", "dismiss", "reply"],
|
|
"type": "string"
|
|
},
|
|
"notificationKey": {
|
|
"type": "string"
|
|
},
|
|
"notificationReplyText": {
|
|
"type": "string"
|
|
},
|
|
"outPath": {
|
|
"type": "string"
|
|
},
|
|
"priority": {
|
|
"enum": ["passive", "active", "timeSensitive"],
|
|
"type": "string"
|
|
},
|
|
"quality": {
|
|
"maximum": 1,
|
|
"minimum": 0,
|
|
"type": "number"
|
|
},
|
|
"requestId": {
|
|
"type": "string"
|
|
},
|
|
"screenIndex": {
|
|
"minimum": 0,
|
|
"type": "integer"
|
|
},
|
|
"sound": {
|
|
"type": "string"
|
|
},
|
|
"timeoutMs": {
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": ["action"],
|
|
"type": "object"
|
|
},
|
|
"name": "nodes",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"deferLoading": true,
|
|
"description": "Manage Gateway cron jobs and wake events: reminders, check-back-later, delayed follow-ups, recurring work. Do not emulate scheduling with exec sleep/process polling.\n\nMain cron => system events for heartbeat. Isolated cron => background task in `openclaw tasks`.\n\nACTIONS:\n- status: scheduler status\n- list: compact job summaries; includeDisabled true includes disabled; use get for full job details; agentId filter auto-filled from session\n- get: one job; needs jobId\n- add: create job; needs job object\n- update: patch job; needs jobId + patch\n- remove: delete job; needs jobId\n- run: run only if due by default; needs jobId; pass runMode=\"force\" to trigger now\n- runs: run history; needs jobId\n- wake: send wake event; needs text, optional mode; defaults the target to the calling session/agent. Pass top-level sessionKey/agentId to wake a different lane owned by the calling agent.\n\nJOB SCHEMA (for add action):\n{\n \"name\": \"string\",\n \"schedule\": { ... }, // required\n \"payload\": { ... }, // required\n \"delivery\": { ... }, // optional announce for isolated/current/session, webhook for any target\n \"sessionTarget\": \"main\" | \"isolated\" | \"current\" | \"session:<id>\",\n \"enabled\": true | false // default true\n}\n\nSESSION TARGET OPTIONS:\n- \"main\": main session; requires payload.kind=\"systemEvent\"\n- \"isolated\": ephemeral isolated session; requires payload.kind=\"agentTurn\"\n- \"current\": bind current session at creation\n- \"session:<id>\": persistent named session\n\nDEFAULTS:\n- payload.kind=\"systemEvent\" → defaults to \"main\"\n- payload.kind=\"agentTurn\" → defaults to \"isolated\"\nCurrent binding needs sessionTarget=\"current\".\n\nSCHEDULE TYPES (schedule.kind):\n- \"at\": one-shot absolute time\n { \"kind\": \"at\", \"at\": \"<ISO-8601 timestamp>\" }\n- \"every\": recurring interval\n { \"kind\": \"every\", \"everyMs\": <ms>, \"anchorMs\": <optional-ms> }\n- \"cron\": expr in supplied timezone, or Gateway host local timezone when tz omitted\n { \"kind\": \"cron\", \"expr\": \"<cron-expression>\", \"tz\": \"<optional-IANA-timezone>\" }\n Write expr in local wall-clock time; do not convert the requested local time to UTC first.\n tz omitted => Gateway host local timezone, not UTC.\n Example 6pm Shanghai daily: { \"kind\": \"cron\", \"expr\": \"0 18 * * *\", \"tz\": \"Asia/Shanghai\" }\n\nFor \"at\", ISO timestamps without timezone are UTC.\n\nPAYLOAD TYPES (payload.kind):\n- \"systemEvent\": inject text as system event\n { \"kind\": \"systemEvent\", \"text\": \"<message>\" }\n- \"agentTurn\": run agent with prompt; isolated/current/session only\n { \"kind\": \"agentTurn\", \"message\": \"<prompt>\", \"model\": \"<optional>\", \"thinking\": \"<optional>\", \"timeoutSeconds\": <optional, 0=no timeout> }\n\nDELIVERY (top-level):\n { \"mode\": \"none|announce|webhook\", \"channel\": \"<optional>\", \"to\": \"<optional>\", \"threadId\": \"<optional>\", \"bestEffort\": <optional-bool> }\n - isolated agentTurn default when omitted: \"announce\"\n - announce: send to chat channel; isolated/current/session only; optional channel/to\n - threadId: chat thread/topic id\n - webhook: POST finished-run event to delivery.to URL\n - Specific chat/recipient: set announce delivery.channel/to; do not call messaging tools inside run.\n\nCRITICAL CONSTRAINTS:\n- sessionTarget=\"main\" REQUIRES payload.kind=\"systemEvent\"\n- sessionTarget=\"isolated\" | \"current\" | \"session:xxx\" REQUIRES payload.kind=\"agentTurn\"\n- Webhook: delivery.mode=\"webhook\" and delivery.to URL.\nDefault: prefer isolated agentTurn jobs unless the user explicitly wants current-session binding.\n\nRESTRICTED CRON RUNS:\n- Some isolated cron runs get narrow self-cleanup grant: status/list self-only, get/runs current job only, mutation only remove current job.\n\nWAKE MODES (for wake action):\n- \"next-heartbeat\" default: wake next heartbeat\n- \"now\": wake immediately\n\nUse jobId canonical; id accepted compat. contextMessages (0-10) adds previous messages as job context.",
|
|
"inputSchema": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"action": {
|
|
"enum": ["status", "list", "get", "add", "update", "remove", "run", "runs", "wake"],
|
|
"type": "string"
|
|
},
|
|
"agentId": {
|
|
"description": "List filter for `action: \"list\"`; wake target override for `action: \"wake\"` (defaults to the calling agent when omitted on wake)",
|
|
"type": "string"
|
|
},
|
|
"contextMessages": {
|
|
"maximum": 10,
|
|
"minimum": 0,
|
|
"type": "integer"
|
|
},
|
|
"gatewayToken": {
|
|
"type": "string"
|
|
},
|
|
"gatewayUrl": {
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"includeDisabled": {
|
|
"type": "boolean"
|
|
},
|
|
"job": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"agentId": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Agent id, or null to keep it unset"
|
|
},
|
|
"deleteAfterRun": {
|
|
"description": "Delete after first run",
|
|
"type": "boolean"
|
|
},
|
|
"delivery": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"accountId": {
|
|
"description": "Delivery account",
|
|
"type": "string"
|
|
},
|
|
"bestEffort": {
|
|
"type": "boolean"
|
|
},
|
|
"channel": {
|
|
"description": "Delivery channel",
|
|
"type": "string"
|
|
},
|
|
"failureDestination": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"accountId": {
|
|
"description": "Failure delivery account",
|
|
"type": "string"
|
|
},
|
|
"channel": {
|
|
"description": "Failure delivery channel",
|
|
"type": "string"
|
|
},
|
|
"mode": {
|
|
"anyOf": [
|
|
{
|
|
"const": "announce",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"const": "webhook",
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"to": {
|
|
"description": "Failure delivery target",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"mode": {
|
|
"description": "Delivery mode",
|
|
"enum": ["none", "announce", "webhook"],
|
|
"type": "string"
|
|
},
|
|
"threadId": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "number"
|
|
}
|
|
],
|
|
"description": "Thread/topic id"
|
|
},
|
|
"to": {
|
|
"description": "Delivery target",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"description": {
|
|
"description": "Human description",
|
|
"type": "string"
|
|
},
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"failureAlert": {
|
|
"additionalProperties": true,
|
|
"description": "Failure alert object; false disables alerts",
|
|
"properties": {
|
|
"accountId": {
|
|
"type": "string"
|
|
},
|
|
"after": {
|
|
"description": "Failures before alert",
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
},
|
|
"channel": {
|
|
"description": "Alert channel",
|
|
"type": "string"
|
|
},
|
|
"cooldownMs": {
|
|
"description": "Alert cooldown ms",
|
|
"minimum": 0,
|
|
"type": "integer"
|
|
},
|
|
"includeSkipped": {
|
|
"description": "Skipped runs count toward alert",
|
|
"type": "boolean"
|
|
},
|
|
"mode": {
|
|
"enum": ["announce", "webhook"],
|
|
"type": "string"
|
|
},
|
|
"to": {
|
|
"description": "Alert target",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"name": {
|
|
"description": "Job name",
|
|
"type": "string"
|
|
},
|
|
"payload": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"allowUnsafeExternalContent": {
|
|
"type": "boolean"
|
|
},
|
|
"fallbacks": {
|
|
"description": "Fallback models",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"kind": {
|
|
"description": "Payload kind",
|
|
"enum": ["systemEvent", "agentTurn"],
|
|
"type": "string"
|
|
},
|
|
"lightContext": {
|
|
"type": "boolean"
|
|
},
|
|
"message": {
|
|
"description": "agentTurn prompt",
|
|
"type": "string"
|
|
},
|
|
"model": {
|
|
"description": "Model override",
|
|
"type": "string"
|
|
},
|
|
"text": {
|
|
"description": "systemEvent text",
|
|
"type": "string"
|
|
},
|
|
"thinking": {
|
|
"description": "Thinking override",
|
|
"type": "string"
|
|
},
|
|
"timeoutSeconds": {
|
|
"minimum": 0,
|
|
"type": "number"
|
|
},
|
|
"toolsAllow": {
|
|
"description": "Allowed tools",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"schedule": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"anchorMs": {
|
|
"description": "Start anchor ms (kind=every)",
|
|
"minimum": 0,
|
|
"type": "integer"
|
|
},
|
|
"at": {
|
|
"description": "ISO-8601 time (kind=at)",
|
|
"type": "string"
|
|
},
|
|
"everyMs": {
|
|
"description": "Interval ms (kind=every)",
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
},
|
|
"expr": {
|
|
"description": "Cron expr in tz wall-clock time; do not convert to UTC. Omitted tz => Gateway host local timezone. Example 6pm Shanghai daily: expr \"0 18 * * *\", tz \"Asia/Shanghai\".",
|
|
"type": "string"
|
|
},
|
|
"kind": {
|
|
"description": "Schedule kind",
|
|
"enum": ["at", "every", "cron"],
|
|
"type": "string"
|
|
},
|
|
"staggerMs": {
|
|
"description": "Jitter ms (kind=cron)",
|
|
"minimum": 0,
|
|
"type": "integer"
|
|
},
|
|
"tz": {
|
|
"description": "IANA timezone for cron wall-clock fields, e.g. \"Asia/Shanghai\"; omitted => Gateway host local timezone.",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"sessionKey": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Explicit session key, or null to clear it"
|
|
},
|
|
"sessionTarget": {
|
|
"description": "main | isolated | current | session:<id>",
|
|
"type": "string"
|
|
},
|
|
"wakeMode": {
|
|
"description": "Wake timing",
|
|
"enum": ["now", "next-heartbeat"],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"jobId": {
|
|
"type": "string"
|
|
},
|
|
"mode": {
|
|
"enum": ["now", "next-heartbeat"],
|
|
"type": "string"
|
|
},
|
|
"patch": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"agentId": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Agent id, or null to clear it"
|
|
},
|
|
"deleteAfterRun": {
|
|
"type": "boolean"
|
|
},
|
|
"delivery": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"accountId": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Delivery account, or null to clear"
|
|
},
|
|
"bestEffort": {
|
|
"type": "boolean"
|
|
},
|
|
"channel": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Delivery channel, or null to clear"
|
|
},
|
|
"failureDestination": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"accountId": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Failure delivery account, or null to clear"
|
|
},
|
|
"channel": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Failure delivery channel, or null to clear"
|
|
},
|
|
"mode": {
|
|
"anyOf": [
|
|
{
|
|
"const": "announce",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"const": "webhook",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"to": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Failure delivery target, or null to clear"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Failure destination, or null to clear"
|
|
},
|
|
"mode": {
|
|
"description": "Delivery mode",
|
|
"enum": ["none", "announce", "webhook"],
|
|
"type": "string"
|
|
},
|
|
"threadId": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Thread/topic id"
|
|
},
|
|
"to": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Delivery target, or null to clear"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"failureAlert": {
|
|
"additionalProperties": true,
|
|
"description": "Failure alert object; false disables alerts",
|
|
"properties": {
|
|
"accountId": {
|
|
"type": "string"
|
|
},
|
|
"after": {
|
|
"description": "Failures before alert",
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
},
|
|
"channel": {
|
|
"description": "Alert channel",
|
|
"type": "string"
|
|
},
|
|
"cooldownMs": {
|
|
"description": "Alert cooldown ms",
|
|
"minimum": 0,
|
|
"type": "integer"
|
|
},
|
|
"includeSkipped": {
|
|
"description": "Skipped runs count toward alert",
|
|
"type": "boolean"
|
|
},
|
|
"mode": {
|
|
"enum": ["announce", "webhook"],
|
|
"type": "string"
|
|
},
|
|
"to": {
|
|
"description": "Alert target",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"name": {
|
|
"description": "Job name",
|
|
"type": "string"
|
|
},
|
|
"payload": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"allowUnsafeExternalContent": {
|
|
"type": "boolean"
|
|
},
|
|
"fallbacks": {
|
|
"description": "Fallback models",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"kind": {
|
|
"description": "Payload kind",
|
|
"enum": ["systemEvent", "agentTurn"],
|
|
"type": "string"
|
|
},
|
|
"lightContext": {
|
|
"type": "boolean"
|
|
},
|
|
"message": {
|
|
"description": "agentTurn prompt",
|
|
"type": "string"
|
|
},
|
|
"model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Model override, or null to clear"
|
|
},
|
|
"text": {
|
|
"description": "systemEvent text",
|
|
"type": "string"
|
|
},
|
|
"thinking": {
|
|
"description": "Thinking override",
|
|
"type": "string"
|
|
},
|
|
"timeoutSeconds": {
|
|
"minimum": 0,
|
|
"type": "number"
|
|
},
|
|
"toolsAllow": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Allowed tool ids, or null to clear"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"schedule": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"anchorMs": {
|
|
"description": "Start anchor ms (kind=every)",
|
|
"minimum": 0,
|
|
"type": "integer"
|
|
},
|
|
"at": {
|
|
"description": "ISO-8601 time (kind=at)",
|
|
"type": "string"
|
|
},
|
|
"everyMs": {
|
|
"description": "Interval ms (kind=every)",
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
},
|
|
"expr": {
|
|
"description": "Cron expr in tz wall-clock time; do not convert to UTC. Omitted tz => Gateway host local timezone. Example 6pm Shanghai daily: expr \"0 18 * * *\", tz \"Asia/Shanghai\".",
|
|
"type": "string"
|
|
},
|
|
"kind": {
|
|
"description": "Schedule kind",
|
|
"enum": ["at", "every", "cron"],
|
|
"type": "string"
|
|
},
|
|
"staggerMs": {
|
|
"description": "Jitter ms (kind=cron)",
|
|
"minimum": 0,
|
|
"type": "integer"
|
|
},
|
|
"tz": {
|
|
"description": "IANA timezone for cron wall-clock fields, e.g. \"Asia/Shanghai\"; omitted => Gateway host local timezone.",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"sessionKey": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Explicit session key, or null to clear it"
|
|
},
|
|
"sessionTarget": {
|
|
"description": "Session target",
|
|
"type": "string"
|
|
},
|
|
"wakeMode": {
|
|
"enum": ["now", "next-heartbeat"],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"runMode": {
|
|
"description": "Run mode for action=\"run\": omitted defaults to \"due\"; use \"force\" to trigger now.",
|
|
"enum": ["due", "force"],
|
|
"type": "string"
|
|
},
|
|
"sessionKey": {
|
|
"description": "Wake target override for `action: \"wake\"`: route the event to another session owned by the calling agent. Defaults to the resolved calling-session key when omitted.",
|
|
"type": "string"
|
|
},
|
|
"text": {
|
|
"type": "string"
|
|
},
|
|
"timeoutMs": {
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": ["action"],
|
|
"type": "object"
|
|
},
|
|
"name": "cron",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"deferLoading": true,
|
|
"description": "Use only for explicit audio intent (voice/speech/TTS) or active TTS config. Never use for ordinary text replies. Audio auto-delivered from tool result; after success follow reply instructions, no duplicate text/audio.",
|
|
"inputSchema": {
|
|
"properties": {
|
|
"channel": {
|
|
"description": "Channel id; output-format hint.",
|
|
"type": "string"
|
|
},
|
|
"text": {
|
|
"description": "Text to speak.",
|
|
"type": "string"
|
|
},
|
|
"timeoutMs": {
|
|
"description": "Provider timeout ms.",
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": ["text"],
|
|
"type": "object"
|
|
},
|
|
"name": "tts",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"deferLoading": true,
|
|
"description": "Gateway restart/config/update. Before config edits, use config.schema.lookup with targeted dot path. Prefer config.patch for partial merge; config.apply only full replace. For config.patch that intentionally removes array entries, pass replacePaths with the exact affected array path. Writes hot-reload or restart as needed. Always pass human `note` for post-restart delivery. If post-restart work must continue internally, pass one-shot `continuationMessage`; visible follow-up from that turn must use the message tool. Do not write restart sentinel files directly.",
|
|
"inputSchema": {
|
|
"properties": {
|
|
"action": {
|
|
"enum": [
|
|
"restart",
|
|
"config.get",
|
|
"config.schema.lookup",
|
|
"config.apply",
|
|
"config.patch",
|
|
"update.run"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"baseHash": {
|
|
"type": "string"
|
|
},
|
|
"continuationMessage": {
|
|
"type": "string"
|
|
},
|
|
"delayMs": {
|
|
"minimum": 0,
|
|
"type": "integer"
|
|
},
|
|
"gatewayToken": {
|
|
"type": "string"
|
|
},
|
|
"gatewayUrl": {
|
|
"type": "string"
|
|
},
|
|
"note": {
|
|
"type": "string"
|
|
},
|
|
"path": {
|
|
"type": "string"
|
|
},
|
|
"raw": {
|
|
"type": "string"
|
|
},
|
|
"reason": {
|
|
"type": "string"
|
|
},
|
|
"replacePaths": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"maxItems": 256,
|
|
"type": "array"
|
|
},
|
|
"restartDelayMs": {
|
|
"minimum": 0,
|
|
"type": "integer"
|
|
},
|
|
"sessionKey": {
|
|
"type": "string"
|
|
},
|
|
"timeoutMs": {
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": ["action"],
|
|
"type": "object"
|
|
},
|
|
"name": "gateway",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"deferLoading": true,
|
|
"description": "List visible sessions; filter by kind, label, agentId, search, activity, archive state. Use before sessions_history or sessions_send target selection.",
|
|
"inputSchema": {
|
|
"properties": {
|
|
"activeMinutes": {
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
},
|
|
"agentId": {
|
|
"maxLength": 64,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"archived": {
|
|
"type": "boolean"
|
|
},
|
|
"includeDerivedTitles": {
|
|
"type": "boolean"
|
|
},
|
|
"includeLastMessage": {
|
|
"type": "boolean"
|
|
},
|
|
"kinds": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"label": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"limit": {
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
},
|
|
"messageLimit": {
|
|
"minimum": 0,
|
|
"type": "integer"
|
|
},
|
|
"search": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"name": "sessions_list",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"deferLoading": true,
|
|
"description": "Fetch sanitized history for visible session. Use before replying, debugging, resuming; supports limit, offset pagination, and tool-message inclusion.",
|
|
"inputSchema": {
|
|
"properties": {
|
|
"includeTools": {
|
|
"type": "boolean"
|
|
},
|
|
"limit": {
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
},
|
|
"offset": {
|
|
"minimum": 0,
|
|
"type": "integer"
|
|
},
|
|
"sessionKey": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": ["sessionKey"],
|
|
"type": "object"
|
|
},
|
|
"name": "sessions_history",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"deferLoading": true,
|
|
"description": "Send message to visible session by sessionKey/label, or configured agent by agentId; sessionKey wins when redundant label metadata is present. Thread-scoped chats rejected; target parent channel session. Creates missing configured-agent main session; waits for reply when available.",
|
|
"inputSchema": {
|
|
"properties": {
|
|
"agentId": {
|
|
"maxLength": 64,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"label": {
|
|
"maxLength": 512,
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
},
|
|
"sessionKey": {
|
|
"type": "string"
|
|
},
|
|
"timeoutSeconds": {
|
|
"minimum": 0,
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": ["message"],
|
|
"type": "object"
|
|
},
|
|
"name": "sessions_send",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"deferLoading": true,
|
|
"description": "List active and recent subagents for the requester session. If sessions_yield exists, use it for completion; do not poll wait loops.",
|
|
"inputSchema": {
|
|
"properties": {
|
|
"action": {
|
|
"enum": ["list"],
|
|
"type": "string"
|
|
},
|
|
"recentMinutes": {
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"name": "subagents",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"deferLoading": true,
|
|
"description": "Show /status-like card for current/visible session: model, usage, time, cost, tasks. Use `sessionKey=\"current\"` for current session; UI labels like `openclaw-tui` are not keys. `model` sets session override; `model=default` resets. Use for active model/session config questions.",
|
|
"inputSchema": {
|
|
"properties": {
|
|
"model": {
|
|
"type": "string"
|
|
},
|
|
"sessionKey": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"name": "session_status",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"deferLoading": true,
|
|
"description": "Search web for current info; returns normalized provider results.",
|
|
"inputSchema": {
|
|
"properties": {
|
|
"count": {
|
|
"description": "Result count.",
|
|
"maximum": 10,
|
|
"minimum": 1,
|
|
"type": "number"
|
|
},
|
|
"country": {
|
|
"description": "2-letter country code.",
|
|
"type": "string"
|
|
},
|
|
"date_after": {
|
|
"description": "Published after YYYY-MM-DD.",
|
|
"type": "string"
|
|
},
|
|
"date_before": {
|
|
"description": "Published before YYYY-MM-DD.",
|
|
"type": "string"
|
|
},
|
|
"domain_filter": {
|
|
"description": "Perplexity domain filter.",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"freshness": {
|
|
"description": "Time filter: day/week/month/year.",
|
|
"type": "string"
|
|
},
|
|
"language": {
|
|
"description": "ISO 639-1 language.",
|
|
"type": "string"
|
|
},
|
|
"max_tokens": {
|
|
"description": "Perplexity total token budget.",
|
|
"maximum": 1000000,
|
|
"minimum": 1,
|
|
"type": "number"
|
|
},
|
|
"max_tokens_per_page": {
|
|
"description": "Perplexity tokens per page.",
|
|
"minimum": 1,
|
|
"type": "number"
|
|
},
|
|
"query": {
|
|
"description": "Search query.",
|
|
"type": "string"
|
|
},
|
|
"search_lang": {
|
|
"description": "Brave result language.",
|
|
"type": "string"
|
|
},
|
|
"ui_lang": {
|
|
"description": "Brave UI locale.",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": ["query"],
|
|
"type": "object"
|
|
},
|
|
"name": "web_search",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"deferLoading": true,
|
|
"description": "Fetch URL and extract readable markdown/text. Lightweight page access; no browser automation.",
|
|
"inputSchema": {
|
|
"properties": {
|
|
"extractMode": {
|
|
"default": "markdown",
|
|
"description": "Extract as markdown/text.",
|
|
"enum": ["markdown", "text"],
|
|
"type": "string"
|
|
},
|
|
"maxChars": {
|
|
"description": "Max chars returned; truncates.",
|
|
"minimum": 100,
|
|
"type": "integer"
|
|
},
|
|
"url": {
|
|
"description": "HTTP(S) URL.",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": ["url"],
|
|
"type": "object"
|
|
},
|
|
"name": "web_fetch",
|
|
"type": "function"
|
|
}
|
|
],
|
|
"type": "namespace"
|
|
}
|
|
]
|