diff --git a/.openclaw-sync/source.json b/.openclaw-sync/source.json index 2671feed7..3f0467145 100644 --- a/.openclaw-sync/source.json +++ b/.openclaw-sync/source.json @@ -1,5 +1,5 @@ { "repository": "openclaw/openclaw", - "sha": "8226a3f8fed5b3f244e25d7cab8c3cfdafff8f29", - "syncedAt": "2026-04-24T19:43:02.634Z" + "sha": "d43b3b3b708e70b1eaa92c5fe4d551889f13ee72", + "syncedAt": "2026-04-24T19:45:49.609Z" } diff --git a/docs/.generated/plugin-sdk-api-baseline.sha256 b/docs/.generated/plugin-sdk-api-baseline.sha256 index 4542180de..66a2a0979 100644 --- a/docs/.generated/plugin-sdk-api-baseline.sha256 +++ b/docs/.generated/plugin-sdk-api-baseline.sha256 @@ -1,2 +1,2 @@ -b758a1c5503c08325113e0d6c9f1ac2db5a5fd9992a3902706ebe0f0dbbc1213 plugin-sdk-api-baseline.json -2c9d0a00e526dcd47d131261b8ceddd8e59faa8530b129d108a3721a4cbcbea7 plugin-sdk-api-baseline.jsonl +b86e6785acbd0f8f0f012691ce823c2e8d52bfd2507c2258408503162abb9adf plugin-sdk-api-baseline.json +e10acbed6c7c1b21700e358411c73877bdc0cb59ce102bafe680e210a2ac741b plugin-sdk-api-baseline.jsonl diff --git a/docs/cli/infer.md b/docs/cli/infer.md index be1a460cc..99716fa6f 100644 --- a/docs/cli/infer.md +++ b/docs/cli/infer.md @@ -47,6 +47,11 @@ Benefits: - Prefer a first-party OpenClaw surface when the task is fundamentally "run inference." - Use the normal local path without requiring the gateway for most infer commands. +For end-to-end provider checks, prefer `openclaw infer ...` once lower-level +provider tests are green. It exercises the shipped CLI, config loading, +default-agent resolution, bundled plugin activation, runtime-dependency repair, +and the shared capability runtime before the provider request is made. + ## Command tree ```text @@ -157,6 +162,25 @@ openclaw infer image describe --file ./photo.jpg --model ollama/qwen2.5vl:7b --j Notes: - Use `image edit` when starting from existing input files. +- Use `image providers --json` to verify which bundled image providers are + discoverable, configured, selected, and which generation/edit capabilities + each provider exposes. +- Use `image generate --model --json` as the narrowest live + CLI smoke for image generation changes. Example: + + ```bash + openclaw infer image providers --json + openclaw infer image generate \ + --model google/gemini-3.1-flash-image-preview \ + --prompt "Minimal flat test image: one blue square on a white background, no text." \ + --output ./openclaw-infer-image-smoke.png \ + --json + ``` + + The JSON response reports `ok`, `provider`, `model`, `attempts`, and written + output paths. When `--output` is set, the final extension may follow the + provider's returned MIME type. + - For `image describe`, `--model` must be an image-capable ``. - For local Ollama vision models, pull the model first and set `OLLAMA_API_KEY` to any placeholder value, for example `ollama-local`. See [Ollama](/providers/ollama#vision-and-image-description). @@ -258,6 +282,10 @@ Top-level fields are stable: - `outputs` - `error` +For generated media commands, `outputs` contains files written by OpenClaw. Use +the `path`, `mimeType`, `size`, and any media-specific dimensions in that array +for automation instead of parsing human-readable stdout. + ## Common pitfalls ```bash diff --git a/docs/gateway/doctor.md b/docs/gateway/doctor.md index 456826cad..20dd0f112 100644 --- a/docs/gateway/doctor.md +++ b/docs/gateway/doctor.md @@ -387,6 +387,12 @@ are missing, doctor reports the packages and installs them in use `openclaw plugins install` / `openclaw plugins update`; doctor does not install dependencies for arbitrary plugin paths. +The Gateway and local CLI can also repair active bundled plugin runtime +dependencies on demand before importing a bundled plugin. These installs are +scoped to the plugin runtime install root, run with scripts disabled, do not +write a package lock, and are guarded by an install-root lock so concurrent CLI +or Gateway starts do not mutate the same `node_modules` tree at the same time. + ### 8) Gateway service migrations and cleanup hints Doctor detects legacy gateway services (launchd/systemd/schtasks) and diff --git a/docs/help/testing-live.md b/docs/help/testing-live.md index f8fb22f8c..4a08263d3 100644 --- a/docs/help/testing-live.md +++ b/docs/help/testing-live.md @@ -402,11 +402,9 @@ If you want to rely on env keys (e.g. exported in your `~/.profile`), run local - Loads missing provider env vars from your login shell (`~/.profile`) before probing - Uses live/env API keys ahead of stored auth profiles by default, so stale test keys in `auth-profiles.json` do not mask real shell credentials - Skips providers with no usable auth/profile/model - - Runs the stock image-generation variants through the shared runtime capability: - - `google:flash-generate` - - `google:pro-generate` - - `google:pro-edit` - - `openai:default-generate` + - Runs each configured provider through the shared image-generation runtime: + - `:generate` + - `:edit` when the provider declares edit support - Current bundled providers covered: - `fal` - `google` @@ -422,6 +420,23 @@ If you want to rely on env keys (e.g. exported in your `~/.profile`), run local - Optional auth behavior: - `OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1` to force profile-store auth and ignore env-only overrides +For the shipped CLI path, add an `infer` smoke after the provider/runtime live +test passes: + +```bash +OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_INFER_CLI_TEST=1 pnpm test:live -- test/image-generation.infer-cli.live.test.ts +openclaw infer image providers --json +openclaw infer image generate \ + --model google/gemini-3.1-flash-image-preview \ + --prompt "Minimal flat test image: one blue square on a white background, no text." \ + --output ./openclaw-infer-image-smoke.png \ + --json +``` + +This covers CLI argument parsing, config/default-agent resolution, bundled +plugin activation, on-demand bundled runtime-dependency repair, the shared +image-generation runtime, and the live provider request. + ## Music generation live - Test: `extensions/music-generation-providers.live.test.ts`