Files
openclaw/src/gateway/cli-session-history.ts
2026-03-26 22:12:16 +00:00

46 lines
1.3 KiB
TypeScript

import { normalizeProviderId } from "../agents/model-selection.js";
import type { SessionEntry } from "../config/sessions.js";
import {
CLAUDE_CLI_PROVIDER,
readClaudeCliSessionMessages,
resolveClaudeCliBindingSessionId,
resolveClaudeCliSessionFilePath,
} from "./cli-session-history.claude.js";
import { mergeImportedChatHistoryMessages } from "./cli-session-history.merge.js";
export {
mergeImportedChatHistoryMessages,
readClaudeCliSessionMessages,
resolveClaudeCliSessionFilePath,
};
export function augmentChatHistoryWithCliSessionImports(params: {
entry: SessionEntry | undefined;
provider?: string;
localMessages: unknown[];
homeDir?: string;
}): unknown[] {
const cliSessionId = resolveClaudeCliBindingSessionId(params.entry);
if (!cliSessionId) {
return params.localMessages;
}
const normalizedProvider = normalizeProviderId(params.provider ?? "");
if (
normalizedProvider &&
normalizedProvider !== CLAUDE_CLI_PROVIDER &&
params.localMessages.length > 0
) {
return params.localMessages;
}
const importedMessages = readClaudeCliSessionMessages({
cliSessionId,
homeDir: params.homeDir,
});
return mergeImportedChatHistoryMessages({
localMessages: params.localMessages,
importedMessages,
});
}