Files
oh-my-pi/packages/coding-agent/src/config/append-only-context-mode.ts
T
roboomp 15d4d7fcf9 fix(providers): enabled append-only auto for xiaomi
Centralized append-only context auto-mode resolution so SDK sessions, interactive sessions, and the status display use the same provider checks. Auto mode now enables for Xiaomi/SGLang hosts and explicit stored-request compat signals while preserving DeepSeek behavior.

Added focused regression coverage for Xiaomi Token Plan SGLang HiCache endpoints and explicit on/off behavior.

Fixes #1851
2026-06-04 11:59:47 +00:00

38 lines
1.1 KiB
TypeScript

/** Provider metadata needed to resolve append-only context mode. */
export interface AppendOnlyContextModel {
provider: string;
baseUrl: string;
compat?: object;
}
function isXiaomiHost(baseUrl: string): boolean {
try {
const host = new URL(baseUrl).hostname;
return host === "xiaomimimo.com" || host.endsWith(".xiaomimimo.com");
} catch {
return false;
}
}
function shouldAutoEnableAppendOnlyContext(model: AppendOnlyContextModel | null | undefined): boolean {
if (!model) return false;
if (model.provider === "deepseek") return true;
if (isXiaomiHost(model.baseUrl)) return true;
return !!model.compat && "supportsStore" in model.compat && model.compat.supportsStore === true;
}
/** Resolves whether append-only context should be active for a model and setting. */
export function shouldEnableAppendOnlyContext(
setting: "auto" | "on" | "off" | undefined,
model: AppendOnlyContextModel | null | undefined,
): boolean {
switch (setting ?? "auto") {
case "on":
return true;
case "off":
return false;
default:
return shouldAutoEnableAppendOnlyContext(model);
}
}