mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-09 14:44:32 +00:00
refactor(pi): dedupe compaction failure
This commit is contained in:
@@ -252,16 +252,7 @@ export async function compactEmbeddedPiSessionDirect(
|
|||||||
|
|
||||||
const provider = (params.provider ?? DEFAULT_PROVIDER).trim() || DEFAULT_PROVIDER;
|
const provider = (params.provider ?? DEFAULT_PROVIDER).trim() || DEFAULT_PROVIDER;
|
||||||
const modelId = (params.model ?? DEFAULT_MODEL).trim() || DEFAULT_MODEL;
|
const modelId = (params.model ?? DEFAULT_MODEL).trim() || DEFAULT_MODEL;
|
||||||
const agentDir = params.agentDir ?? resolveOpenClawAgentDir();
|
const fail = (reason: string): EmbeddedPiCompactResult => {
|
||||||
await ensureOpenClawModelsJson(params.config, agentDir);
|
|
||||||
const { model, error, authStorage, modelRegistry } = resolveModel(
|
|
||||||
provider,
|
|
||||||
modelId,
|
|
||||||
agentDir,
|
|
||||||
params.config,
|
|
||||||
);
|
|
||||||
if (!model) {
|
|
||||||
const reason = error ?? `Unknown model: ${provider}/${modelId}`;
|
|
||||||
log.warn(
|
log.warn(
|
||||||
`[compaction-diag] end runId=${runId} sessionKey=${params.sessionKey ?? params.sessionId} ` +
|
`[compaction-diag] end runId=${runId} sessionKey=${params.sessionKey ?? params.sessionId} ` +
|
||||||
`diagId=${diagId} trigger=${trigger} provider=${provider}/${modelId} ` +
|
`diagId=${diagId} trigger=${trigger} provider=${provider}/${modelId} ` +
|
||||||
@@ -273,6 +264,18 @@ export async function compactEmbeddedPiSessionDirect(
|
|||||||
compacted: false,
|
compacted: false,
|
||||||
reason,
|
reason,
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
const agentDir = params.agentDir ?? resolveOpenClawAgentDir();
|
||||||
|
await ensureOpenClawModelsJson(params.config, agentDir);
|
||||||
|
const { model, error, authStorage, modelRegistry } = resolveModel(
|
||||||
|
provider,
|
||||||
|
modelId,
|
||||||
|
agentDir,
|
||||||
|
params.config,
|
||||||
|
);
|
||||||
|
if (!model) {
|
||||||
|
const reason = error ?? `Unknown model: ${provider}/${modelId}`;
|
||||||
|
return fail(reason);
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
const apiKeyInfo = await getApiKeyForModel({
|
const apiKeyInfo = await getApiKeyForModel({
|
||||||
@@ -299,17 +302,7 @@ export async function compactEmbeddedPiSessionDirect(
|
|||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
const reason = describeUnknownError(err);
|
const reason = describeUnknownError(err);
|
||||||
log.warn(
|
return fail(reason);
|
||||||
`[compaction-diag] end runId=${runId} sessionKey=${params.sessionKey ?? params.sessionId} ` +
|
|
||||||
`diagId=${diagId} trigger=${trigger} provider=${provider}/${modelId} ` +
|
|
||||||
`attempt=${attempt} maxAttempts=${maxAttempts} outcome=failed reason=${classifyCompactionReason(reason)} ` +
|
|
||||||
`durationMs=${Date.now() - startedAt}`,
|
|
||||||
);
|
|
||||||
return {
|
|
||||||
ok: false,
|
|
||||||
compacted: false,
|
|
||||||
reason,
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
await fs.mkdir(resolvedWorkspace, { recursive: true });
|
await fs.mkdir(resolvedWorkspace, { recursive: true });
|
||||||
@@ -711,17 +704,7 @@ export async function compactEmbeddedPiSessionDirect(
|
|||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
const reason = describeUnknownError(err);
|
const reason = describeUnknownError(err);
|
||||||
log.warn(
|
return fail(reason);
|
||||||
`[compaction-diag] end runId=${runId} sessionKey=${params.sessionKey ?? params.sessionId} ` +
|
|
||||||
`diagId=${diagId} trigger=${trigger} provider=${provider}/${modelId} ` +
|
|
||||||
`attempt=${attempt} maxAttempts=${maxAttempts} outcome=failed reason=${classifyCompactionReason(reason)} ` +
|
|
||||||
`durationMs=${Date.now() - startedAt}`,
|
|
||||||
);
|
|
||||||
return {
|
|
||||||
ok: false,
|
|
||||||
compacted: false,
|
|
||||||
reason,
|
|
||||||
};
|
|
||||||
} finally {
|
} finally {
|
||||||
restoreSkillEnv?.();
|
restoreSkillEnv?.();
|
||||||
process.chdir(prevCwd);
|
process.chdir(prevCwd);
|
||||||
|
|||||||
Reference in New Issue
Block a user