diff --git a/CHANGELOG.md b/CHANGELOG.md index d64c8eb1f25..8e55a0c25ad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ Docs: https://docs.openclaw.ai ### Changes +- Pi/models: update the bundled pi packages to `0.68.1` and let the OpenCode Go catalog come from pi instead of plugin-maintained model aliases, adding the refreshed `opencode-go/kimi-k2.6`, Qwen, GLM, MiMo, and MiniMax entries. - CLI/doctor plugins: lazy-load doctor plugin paths and prefer installed plugin `dist/*` runtime entries over source-adjacent JavaScript fallbacks, reducing the measured `doctor --non-interactive` runtime by about 74% while keeping cold doctor startup on built plugin artifacts. (#69840) Thanks @gumadeiras. - WhatsApp/groups+direct: forward per-group and per-direct `systemPrompt` config into inbound context `GroupSystemPrompt` so configured per-chat behavioral instructions are injected on every turn. Supports `"*"` wildcard fallback and account-scoped overrides under `channels.whatsapp.accounts..{groups,direct}`; account maps fully replace root maps (no deep merge), matching the existing `requireMention` pattern. Closes #7011. (#59553) Thanks @Bluetegu. - Plugins/startup: prefer native Jiti loading for built bundled plugin dist modules on supported runtimes, cutting measured bundled plugin load time by 82-90% while keeping source TypeScript on the transform path. (#69925) Thanks @aauren. diff --git a/docs/pi.md b/docs/pi.md index f7194c19c78..daa2709d181 100644 --- a/docs/pi.md +++ b/docs/pi.md @@ -25,10 +25,10 @@ OpenClaw uses the pi SDK to embed an AI coding agent into its messaging gateway ```json { - "@mariozechner/pi-agent-core": "0.64.0", - "@mariozechner/pi-ai": "0.64.0", - "@mariozechner/pi-coding-agent": "0.64.0", - "@mariozechner/pi-tui": "0.64.0" + "@mariozechner/pi-agent-core": "0.68.1", + "@mariozechner/pi-ai": "0.68.1", + "@mariozechner/pi-coding-agent": "0.68.1", + "@mariozechner/pi-tui": "0.68.1" } ``` diff --git a/docs/providers/opencode-go.md b/docs/providers/opencode-go.md index fa2de5f7a22..c68c0512d98 100644 --- a/docs/providers/opencode-go.md +++ b/docs/providers/opencode-go.md @@ -20,11 +20,23 @@ provider id `opencode-go` so upstream per-model routing stays correct. ## Supported models -| Model ref | Name | -| -------------------------- | ------------ | -| `opencode-go/kimi-k2.5` | Kimi K2.5 | -| `opencode-go/glm-5` | GLM 5 | -| `opencode-go/minimax-m2.5` | MiniMax M2.5 | +OpenClaw sources the Go catalog from the bundled pi model registry. Run +`openclaw models list --provider opencode-go` for the current model list. + +As of the bundled pi catalog, the provider includes: + +| Model ref | Name | +| -------------------------- | --------------------- | +| `opencode-go/glm-5` | GLM-5 | +| `opencode-go/glm-5.1` | GLM-5.1 | +| `opencode-go/kimi-k2.5` | Kimi K2.5 | +| `opencode-go/kimi-k2.6` | Kimi K2.6 (3x limits) | +| `opencode-go/mimo-v2-omni` | MiMo V2 Omni | +| `opencode-go/mimo-v2-pro` | MiMo V2 Pro | +| `opencode-go/minimax-m2.5` | MiniMax M2.5 | +| `opencode-go/minimax-m2.7` | MiniMax M2.7 | +| `opencode-go/qwen3.5-plus` | Qwen3.5 Plus | +| `opencode-go/qwen3.6-plus` | Qwen3.6 Plus | ## Getting started diff --git a/extensions/anthropic/package.json b/extensions/anthropic/package.json index 1185d48f8ec..33a4c557bb5 100644 --- a/extensions/anthropic/package.json +++ b/extensions/anthropic/package.json @@ -5,7 +5,7 @@ "description": "OpenClaw Anthropic provider plugin", "type": "module", "dependencies": { - "@mariozechner/pi-ai": "0.67.68" + "@mariozechner/pi-ai": "0.68.1" }, "devDependencies": { "@openclaw/plugin-sdk": "workspace:*" diff --git a/extensions/codex/package.json b/extensions/codex/package.json index 914bfbd4382..781990c0d32 100644 --- a/extensions/codex/package.json +++ b/extensions/codex/package.json @@ -4,7 +4,7 @@ "description": "OpenClaw Codex harness and model provider plugin", "type": "module", "dependencies": { - "@mariozechner/pi-coding-agent": "0.67.68", + "@mariozechner/pi-coding-agent": "0.68.1", "ws": "^8.20.0", "zod": "^4.3.6" }, diff --git a/extensions/fireworks/package.json b/extensions/fireworks/package.json index 29ea87a7662..1bdc5619fc6 100644 --- a/extensions/fireworks/package.json +++ b/extensions/fireworks/package.json @@ -5,7 +5,7 @@ "description": "OpenClaw Fireworks provider plugin", "type": "module", "dependencies": { - "@mariozechner/pi-ai": "0.67.68" + "@mariozechner/pi-ai": "0.68.1" }, "devDependencies": { "@openclaw/plugin-sdk": "workspace:*" diff --git a/extensions/github-copilot/package.json b/extensions/github-copilot/package.json index e31f2cbf5c4..92e43560aa7 100644 --- a/extensions/github-copilot/package.json +++ b/extensions/github-copilot/package.json @@ -6,7 +6,7 @@ "type": "module", "dependencies": { "@clack/prompts": "^1.2.0", - "@mariozechner/pi-ai": "0.67.68" + "@mariozechner/pi-ai": "0.68.1" }, "devDependencies": { "@openclaw/plugin-sdk": "workspace:*" diff --git a/extensions/google/package.json b/extensions/google/package.json index de97cf8cf4f..a059b54958c 100644 --- a/extensions/google/package.json +++ b/extensions/google/package.json @@ -6,7 +6,7 @@ "type": "module", "dependencies": { "@google/genai": "^1.50.1", - "@mariozechner/pi-ai": "0.67.68" + "@mariozechner/pi-ai": "0.68.1" }, "devDependencies": { "@openclaw/plugin-sdk": "workspace:*" diff --git a/extensions/kimi-coding/package.json b/extensions/kimi-coding/package.json index db8dae8abfc..4260ff0ecec 100644 --- a/extensions/kimi-coding/package.json +++ b/extensions/kimi-coding/package.json @@ -5,7 +5,7 @@ "description": "OpenClaw Kimi provider plugin", "type": "module", "dependencies": { - "@mariozechner/pi-ai": "0.67.68" + "@mariozechner/pi-ai": "0.68.1" }, "devDependencies": { "@openclaw/plugin-sdk": "workspace:*" diff --git a/extensions/lmstudio/package.json b/extensions/lmstudio/package.json index 2463cfb4a39..6c2fb5ff254 100644 --- a/extensions/lmstudio/package.json +++ b/extensions/lmstudio/package.json @@ -5,7 +5,7 @@ "description": "OpenClaw LM Studio provider plugin", "type": "module", "dependencies": { - "@mariozechner/pi-ai": "0.67.68" + "@mariozechner/pi-ai": "0.68.1" }, "openclaw": { "extensions": [ diff --git a/extensions/ollama/package.json b/extensions/ollama/package.json index 2f2f61b8203..49f1b2e119e 100644 --- a/extensions/ollama/package.json +++ b/extensions/ollama/package.json @@ -5,7 +5,7 @@ "description": "OpenClaw Ollama provider plugin", "type": "module", "dependencies": { - "@mariozechner/pi-ai": "0.67.68", + "@mariozechner/pi-ai": "0.68.1", "@sinclair/typebox": "0.34.49" }, "devDependencies": { diff --git a/extensions/openai/package.json b/extensions/openai/package.json index 337cfdcc75a..c3a83bb81ca 100644 --- a/extensions/openai/package.json +++ b/extensions/openai/package.json @@ -5,7 +5,7 @@ "description": "OpenClaw OpenAI provider plugins", "type": "module", "dependencies": { - "@mariozechner/pi-ai": "0.67.68", + "@mariozechner/pi-ai": "0.68.1", "ws": "^8.20.0" }, "devDependencies": { diff --git a/extensions/opencode-go/onboard.test.ts b/extensions/opencode-go/onboard.test.ts index be82cf2a1fe..40316cfccdc 100644 --- a/extensions/opencode-go/onboard.test.ts +++ b/extensions/opencode-go/onboard.test.ts @@ -1,19 +1,22 @@ -import { describe, it } from "vitest"; -import { - expectProviderOnboardAllowlistAlias, - expectProviderOnboardPrimaryAndFallbacks, -} from "../../test/helpers/plugins/provider-onboard.js"; +import { describe, expect, it } from "vitest"; +import { expectProviderOnboardPrimaryAndFallbacks } from "../../test/helpers/plugins/provider-onboard.js"; import { applyOpencodeGoConfig, applyOpencodeGoProviderConfig } from "./onboard.js"; const MODEL_REF = "opencode-go/kimi-k2.5"; describe("opencode-go onboard", () => { - it("adds allowlist entry and preserves alias", () => { - expectProviderOnboardAllowlistAlias({ - applyProviderConfig: applyOpencodeGoProviderConfig, - modelRef: MODEL_REF, - alias: "Kimi", - }); + it("leaves model aliases to the pi catalog", () => { + const cfg = { + agents: { + defaults: { + models: { + [MODEL_REF]: { alias: "Kimi" }, + }, + }, + }, + }; + + expect(applyOpencodeGoProviderConfig(cfg)).toBe(cfg); }); it("sets primary model and preserves existing model fallbacks", () => { diff --git a/extensions/opencode-go/onboard.ts b/extensions/opencode-go/onboard.ts index 0cf0275f737..c54eaedbe39 100644 --- a/extensions/opencode-go/onboard.ts +++ b/extensions/opencode-go/onboard.ts @@ -1,34 +1,12 @@ import { applyAgentDefaultModelPrimary, - withAgentModelAliases, type OpenClawConfig, } from "openclaw/plugin-sdk/provider-onboard"; export const OPENCODE_GO_DEFAULT_MODEL_REF = "opencode-go/kimi-k2.5"; -const OPENCODE_GO_ALIAS_DEFAULTS: Record = { - "opencode-go/kimi-k2.5": "Kimi", - "opencode-go/glm-5": "GLM", - "opencode-go/minimax-m2.5": "MiniMax", -}; - export function applyOpencodeGoProviderConfig(cfg: OpenClawConfig): OpenClawConfig { - return { - ...cfg, - agents: { - ...cfg.agents, - defaults: { - ...cfg.agents?.defaults, - models: withAgentModelAliases( - cfg.agents?.defaults?.models, - Object.entries(OPENCODE_GO_ALIAS_DEFAULTS).map(([modelRef, alias]) => ({ - modelRef, - alias, - })), - ), - }, - }, - }; + return cfg; } export function applyOpencodeGoConfig(cfg: OpenClawConfig): OpenClawConfig { diff --git a/extensions/xai/package.json b/extensions/xai/package.json index c47340e290e..f5cc49ee56a 100644 --- a/extensions/xai/package.json +++ b/extensions/xai/package.json @@ -5,7 +5,7 @@ "description": "OpenClaw xAI plugin", "type": "module", "dependencies": { - "@mariozechner/pi-ai": "0.67.68", + "@mariozechner/pi-ai": "0.68.1", "@sinclair/typebox": "0.34.49" }, "devDependencies": { diff --git a/package.json b/package.json index 58de869270d..2d9bdb29159 100644 --- a/package.json +++ b/package.json @@ -1531,10 +1531,10 @@ "@clack/prompts": "^1.2.0", "@homebridge/ciao": "^1.3.6", "@lydell/node-pty": "1.2.0-beta.12", - "@mariozechner/pi-agent-core": "0.67.68", - "@mariozechner/pi-ai": "0.67.68", - "@mariozechner/pi-coding-agent": "0.67.68", - "@mariozechner/pi-tui": "0.67.68", + "@mariozechner/pi-agent-core": "0.68.1", + "@mariozechner/pi-ai": "0.68.1", + "@mariozechner/pi-coding-agent": "0.68.1", + "@mariozechner/pi-tui": "0.68.1", "@modelcontextprotocol/sdk": "1.29.0", "@mozilla/readability": "^0.6.0", "@sinclair/typebox": "0.34.49", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d533303b28f..9dbd3b5c73a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -54,17 +54,17 @@ importers: specifier: 1.2.0-beta.12 version: 1.2.0-beta.12 '@mariozechner/pi-agent-core': - specifier: 0.67.68 - version: 0.67.68(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) + specifier: 0.68.1 + version: 0.68.1(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) '@mariozechner/pi-ai': - specifier: 0.67.68 - version: 0.67.68(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) + specifier: 0.68.1 + version: 0.68.1(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) '@mariozechner/pi-coding-agent': - specifier: 0.67.68 - version: 0.67.68(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) + specifier: 0.68.1 + version: 0.68.1(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) '@mariozechner/pi-tui': - specifier: 0.67.68 - version: 0.67.68 + specifier: 0.68.1 + version: 0.68.1 '@modelcontextprotocol/sdk': specifier: 1.29.0 version: 1.29.0(zod@4.3.6) @@ -286,8 +286,8 @@ importers: extensions/anthropic: dependencies: '@mariozechner/pi-ai': - specifier: 0.67.68 - version: 0.67.68(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) + specifier: 0.68.1 + version: 0.68.1(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) devDependencies: '@openclaw/plugin-sdk': specifier: workspace:* @@ -373,8 +373,8 @@ importers: extensions/codex: dependencies: '@mariozechner/pi-coding-agent': - specifier: 0.67.68 - version: 0.67.68(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) + specifier: 0.68.1 + version: 0.68.1(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) ws: specifier: ^8.20.0 version: 8.20.0 @@ -559,8 +559,8 @@ importers: extensions/fireworks: dependencies: '@mariozechner/pi-ai': - specifier: 0.67.68 - version: 0.67.68(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) + specifier: 0.68.1 + version: 0.68.1(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) devDependencies: '@openclaw/plugin-sdk': specifier: workspace:* @@ -572,8 +572,8 @@ importers: specifier: ^1.2.0 version: 1.2.0 '@mariozechner/pi-ai': - specifier: 0.67.68 - version: 0.67.68(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) + specifier: 0.68.1 + version: 0.68.1(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) devDependencies: '@openclaw/plugin-sdk': specifier: workspace:* @@ -585,8 +585,8 @@ importers: specifier: ^1.50.1 version: 1.50.1(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6)) '@mariozechner/pi-ai': - specifier: 0.67.68 - version: 0.67.68(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) + specifier: 0.68.1 + version: 0.68.1(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) devDependencies: '@openclaw/plugin-sdk': specifier: workspace:* @@ -647,8 +647,8 @@ importers: extensions/kimi-coding: dependencies: '@mariozechner/pi-ai': - specifier: 0.67.68 - version: 0.67.68(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) + specifier: 0.68.1 + version: 0.68.1(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) devDependencies: '@openclaw/plugin-sdk': specifier: workspace:* @@ -689,8 +689,8 @@ importers: extensions/lmstudio: dependencies: '@mariozechner/pi-ai': - specifier: 0.67.68 - version: 0.67.68(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) + specifier: 0.68.1 + version: 0.68.1(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) extensions/lobster: dependencies: @@ -912,8 +912,8 @@ importers: extensions/ollama: dependencies: '@mariozechner/pi-ai': - specifier: 0.67.68 - version: 0.67.68(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) + specifier: 0.68.1 + version: 0.68.1(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) '@sinclair/typebox': specifier: 0.34.49 version: 0.34.49 @@ -931,8 +931,8 @@ importers: extensions/openai: dependencies: '@mariozechner/pi-ai': - specifier: 0.67.68 - version: 0.67.68(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) + specifier: 0.68.1 + version: 0.68.1(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) ws: specifier: ^8.20.0 version: 8.20.0 @@ -1325,8 +1325,8 @@ importers: extensions/xai: dependencies: '@mariozechner/pi-ai': - specifier: 0.67.68 - version: 0.67.68(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) + specifier: 0.68.1 + version: 0.68.1(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) '@sinclair/typebox': specifier: 0.34.49 version: 0.34.49 @@ -2630,22 +2630,22 @@ packages: resolution: {integrity: sha512-faGUlTcXka5l7rv0lP3K3vGW/ejRuOS24RR2aSFWREUQqzjgdsuWNo/IiPqL3kWRGt6Ahl2+qcDAwtdeWeuGUw==} hasBin: true - '@mariozechner/pi-agent-core@0.67.68': - resolution: {integrity: sha512-anwFuzeUL7Qjbyih4DWY7w1zrOTrBxaz1L6+duLUuuzpHOun0EiP4KWIGTXPT5oJA7ZaeRNTyXJ7PlWfGQG33g==} + '@mariozechner/pi-agent-core@0.68.1': + resolution: {integrity: sha512-7q0vHSc6IIlNNdfP5+4ktv/9Bidfo6dCFRRJVz96K9qjN+5rYJ+4V28quvcw/Vf0pfDgRMBRR0Yhjx51lb60tg==} engines: {node: '>=20.0.0'} - '@mariozechner/pi-ai@0.67.68': - resolution: {integrity: sha512-DWWQmcb3IV3mbGXmzYBScfKA6kA52n/stY029eiBikrIxVT7DGLG6n7KSvTA2R4qBSgi1iFL3nGHtwxmtIn6Lg==} + '@mariozechner/pi-ai@0.68.1': + resolution: {integrity: sha512-z52kMOZK1/fxzKu7nTwdfOCHhOE/G5GwGsxzR98X6LX7yAz384iqwG4DoXn7nI05ETH7jXLET6wUrYIHMo91Qw==} engines: {node: '>=20.0.0'} hasBin: true - '@mariozechner/pi-coding-agent@0.67.68': - resolution: {integrity: sha512-Bai2yUBpgjftqGvg3GNV9pxcMAatqJwQYsqM+7j39+tm+IpoW7hbMBnzXZQvykAwXIrTXpZFF5yp5ajeDI5Atg==} + '@mariozechner/pi-coding-agent@0.68.1': + resolution: {integrity: sha512-EqNZrce9b1cjsxDJlIjPHhT44tUtGax5EvzYO9oPTnSBybWwjGddW9WmdhL0Gz1ulSekgNTa2zrlo4uoD7ecDg==} engines: {node: '>=20.6.0'} hasBin: true - '@mariozechner/pi-tui@0.67.68': - resolution: {integrity: sha512-RhcMaGz88lNOm5+9yx+YCIfXZALLbMxB2cwsoHzyOzs+OZAItw8tz6xJZPAnX0RHY+ENQEGMMDY9TF6pxxnkbA==} + '@mariozechner/pi-tui@0.68.1': + resolution: {integrity: sha512-j+XI22ehKo4c1gEAzohoSBcgA4X5+vVinTn8a9Osb7h9N8B/rvF23GArJpiMsmE001U47rsLw0mrPop5Kmta+w==} engines: {node: '>=20.0.0'} '@matrix-org/matrix-sdk-crypto-nodejs@0.4.0': @@ -9327,9 +9327,9 @@ snapshots: std-env: 3.10.0 yoctocolors: 2.1.2 - '@mariozechner/pi-agent-core@0.67.68(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)': + '@mariozechner/pi-agent-core@0.68.1(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)': dependencies: - '@mariozechner/pi-ai': 0.67.68(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) + '@mariozechner/pi-ai': 0.68.1(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) transitivePeerDependencies: - '@modelcontextprotocol/sdk' - aws-crt @@ -9339,7 +9339,7 @@ snapshots: - ws - zod - '@mariozechner/pi-ai@0.67.68(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)': + '@mariozechner/pi-ai@0.68.1(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)': dependencies: '@anthropic-ai/sdk': 0.81.0(zod@4.3.6) '@aws-sdk/client-bedrock-runtime': 3.1032.0 @@ -9363,13 +9363,14 @@ snapshots: - ws - zod - '@mariozechner/pi-coding-agent@0.67.68(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)': + '@mariozechner/pi-coding-agent@0.68.1(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)': dependencies: '@mariozechner/jiti': 2.6.5 - '@mariozechner/pi-agent-core': 0.67.68(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) - '@mariozechner/pi-ai': 0.67.68(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) - '@mariozechner/pi-tui': 0.67.68 + '@mariozechner/pi-agent-core': 0.68.1(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) + '@mariozechner/pi-ai': 0.68.1(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) + '@mariozechner/pi-tui': 0.68.1 '@silvia-odwyer/photon-node': 0.3.4 + '@sinclair/typebox': 0.34.49 ajv: 8.18.0 chalk: 5.6.2 cli-highlight: 2.1.11 @@ -9397,7 +9398,7 @@ snapshots: - ws - zod - '@mariozechner/pi-tui@0.67.68': + '@mariozechner/pi-tui@0.68.1': dependencies: '@types/mime-types': 2.1.4 chalk: 5.6.2 diff --git a/src/agents/pi-embedded-runner/tool-split.ts b/src/agents/pi-embedded-runner/tool-split.ts index 26eb08667da..4b82ffdbf6b 100644 --- a/src/agents/pi-embedded-runner/tool-split.ts +++ b/src/agents/pi-embedded-runner/tool-split.ts @@ -6,7 +6,7 @@ import { toToolDefinitions } from "../pi-tool-definition-adapter.js"; type AnyAgentTool = AgentTool; export function splitSdkTools(options: { tools: AnyAgentTool[]; sandboxEnabled: boolean }): { - builtInTools: AnyAgentTool[]; + builtInTools: string[]; customTools: ReturnType; } { const { tools } = options; diff --git a/src/agents/pi-tools.safe-bins.test.ts b/src/agents/pi-tools.safe-bins.test.ts index d4cdeeca4f1..a9f40eb0b25 100644 --- a/src/agents/pi-tools.safe-bins.test.ts +++ b/src/agents/pi-tools.safe-bins.test.ts @@ -143,13 +143,12 @@ vi.mock("@mariozechner/pi-coding-agent", () => ({ ModelRegistry: vi.fn(), SessionManager: vi.fn(), SettingsManager: vi.fn(), - codingTools: [], + createCodingTools: vi.fn(() => []), createEditTool: vi.fn(), createReadTool: vi.fn(), createWriteTool: vi.fn(), estimateTokens: vi.fn(() => 0), formatSkillsForPrompt: vi.fn(() => ""), - readTool: undefined, })); vi.mock("../infra/exec-approvals.js", async () => { diff --git a/src/agents/pi-tools.ts b/src/agents/pi-tools.ts index 6898af6e9f9..a8b5db88dbe 100644 --- a/src/agents/pi-tools.ts +++ b/src/agents/pi-tools.ts @@ -1,4 +1,4 @@ -import { codingTools, createReadTool, readTool } from "@mariozechner/pi-coding-agent"; +import { createCodingTools, createReadTool } from "@mariozechner/pi-coding-agent"; import type { ModelCompatConfig } from "../config/types.models.js"; import type { OpenClawConfig } from "../config/types.openclaw.js"; import type { ToolLoopDetectionConfig } from "../config/types.tools.js"; @@ -450,8 +450,8 @@ export function createOpenClawCodingTools(options?: { } const imageSanitization = resolveImageSanitizationLimits(options?.config); - const base = (codingTools as unknown as AnyAgentTool[]).flatMap((tool) => { - if (tool.name === readTool.name) { + const base = (createCodingTools(workspaceRoot) as unknown as AnyAgentTool[]).flatMap((tool) => { + if (tool.name === "read") { if (sandboxRoot) { const sandboxed = createSandboxedReadTool({ root: sandboxRoot, diff --git a/src/plugins/bundled-runtime-deps.test.ts b/src/plugins/bundled-runtime-deps.test.ts index 5bf8cd819ac..6fbc43358af 100644 --- a/src/plugins/bundled-runtime-deps.test.ts +++ b/src/plugins/bundled-runtime-deps.test.ts @@ -371,13 +371,13 @@ describe("ensureBundledPluginRuntimeDeps", () => { path.join(pluginRoot, "package.json"), JSON.stringify({ dependencies: { - "@mariozechner/pi-ai": "0.67.68", + "@mariozechner/pi-ai": "0.68.1", }, }), ); fs.writeFileSync( path.join(packageRoot, "node_modules", "@mariozechner", "pi-ai", "package.json"), - JSON.stringify({ name: "@mariozechner/pi-ai", version: "0.67.68" }), + JSON.stringify({ name: "@mariozechner/pi-ai", version: "0.68.1" }), ); const result = ensureBundledPluginRuntimeDeps({