slopus--happy
98e40dac97
CLI Smoke Test / smoke-test-linux (20) (push) Has been cancelled
CLI Smoke Test / smoke-test-linux (24) (push) Has been cancelled
CLI Smoke Test / smoke-test-windows (20) (push) Has been cancelled
CLI Smoke Test / smoke-test-windows (24) (push) Has been cancelled
Expo App TypeScript typecheck / typecheck (push) Has been cancelled
37 行
1.3 KiB
TypeScript
37 行
1.3 KiB
TypeScript
import type { Session } from './storageTypes';
|
|
import type { Settings } from './settings';
|
|
import { getAgentDefaultOverride } from './agentDefaults';
|
|
import type { PermissionModeKey } from '@/components/PermissionModeSelector';
|
|
|
|
export type MessageModeMeta = {
|
|
permissionMode?: PermissionModeKey;
|
|
model?: string | null;
|
|
effort?: string | null;
|
|
};
|
|
|
|
export function resolveMessageModeMeta(
|
|
session: Pick<Session, 'permissionMode' | 'modelMode' | 'metadata' | 'effortLevel'>,
|
|
settings?: Pick<Settings, 'agentDefaultOverrides'>,
|
|
): MessageModeMeta {
|
|
const agentOverrides = getAgentDefaultOverride(settings?.agentDefaultOverrides, session.metadata?.flavor);
|
|
const meta: MessageModeMeta = {};
|
|
|
|
if (session.permissionMode !== null && session.permissionMode !== undefined) {
|
|
meta.permissionMode = session.permissionMode;
|
|
} else if (agentOverrides.permissionMode !== undefined) {
|
|
meta.permissionMode = agentOverrides.permissionMode;
|
|
}
|
|
|
|
const modelMode = session.modelMode ?? agentOverrides.modelMode;
|
|
if (modelMode !== undefined) {
|
|
meta.model = modelMode === 'default' ? null : modelMode;
|
|
}
|
|
|
|
const effort = session.effortLevel ?? agentOverrides.effortLevel;
|
|
if (effort !== undefined) {
|
|
meta.effort = effort;
|
|
}
|
|
|
|
return meta;
|
|
}
|