diff --git a/src/agents/pi-embedded-runner/compact.ts b/src/agents/pi-embedded-runner/compact.ts index 2dc4c5325..0665f87df 100644 --- a/src/agents/pi-embedded-runner/compact.ts +++ b/src/agents/pi-embedded-runner/compact.ts @@ -28,6 +28,7 @@ import { makeBootstrapWarn, resolveBootstrapContextForRun } from "../bootstrap-f import { resolveOpenClawDocsPath } from "../docs-path.js"; import type { ExecElevatedDefaults } from "../bash-tools.js"; import { DEFAULT_MODEL, DEFAULT_PROVIDER } from "../defaults.js"; +import { isCliProvider } from "../model-selection.js"; import { getApiKeyForModel, resolveModelAuthMode } from "../model-auth.js"; import { ensureOpenClawModelsJson } from "../models-config.js"; import { @@ -114,6 +115,15 @@ export async function compactEmbeddedPiSessionDirect( const provider = (params.provider ?? DEFAULT_PROVIDER).trim() || DEFAULT_PROVIDER; const modelId = (params.model ?? DEFAULT_MODEL).trim() || DEFAULT_MODEL; + + if (isCliProvider(provider, params.config)) { + return { + ok: false, + compacted: false, + reason: `Compaction is not supported for CLI providers (${provider}/${modelId}). Switch to an API-based model to use /compact.`, + }; + } + const agentDir = params.agentDir ?? resolveOpenClawAgentDir(); await ensureOpenClawModelsJson(params.config, agentDir); const { model, error, authStorage, modelRegistry } = resolveModel(