SurfSense/surfsense_web/lib/onboarding.ts
Anish Sarkar a8c1fb660d feat(rename): complete searchSpace to workspace transition across frontend and backend
- Introduced a comprehensive specification for renaming `searchSpace` to `workspace` in `surfsense_web` and `surfsense_desktop`, ensuring all TypeScript identifiers, React props, and local data structures are updated.
- Implemented migration shims for persisted local state to prevent data loss during the transition.
- Updated observability metrics and IPC channels to reflect the new naming convention.
- Removed legacy `active-search-space` module and replaced it with `active-workspace` to maintain consistency.
- Ensured no behavioral changes or data loss for users during the renaming process.
2026-07-06 15:12:40 +05:30

28 lines
865 B
TypeScript

import type { ConnectionRead } from "@/contracts/types/model-connections.types";
export function hasEnabledChatModel(connections: ConnectionRead[]): boolean {
return connections.some(
(connection) =>
connection.enabled &&
connection.models.some((model) => model.enabled && Boolean(model.supports_chat))
);
}
export function isLlmOnboardingComplete(
chatModelId: number | null | undefined,
globalConnections: ConnectionRead[],
workspaceConnections: ConnectionRead[]
): boolean {
const connections = [...globalConnections, ...workspaceConnections];
const resolvedChatModelId = chatModelId ?? 0;
if (resolvedChatModelId === 0) {
return hasEnabledChatModel(connections);
}
return connections.some((connection) =>
connection.models.some(
(model) => model.id === resolvedChatModelId && model.enabled && Boolean(model.supports_chat)
)
);
}