feat(ai): unify model discovery and effort handling
This commit is contained in:
1 parent
c54b95e274
commit
c7e7b7c9d9
41 files changed
+3291
-634
No files matched your search
@@ -251,6 +251,9 @@ export const aiAgentStream = forward("aiAgentStream");
|
||||
export const aiCancelStream = forward("aiCancelStream");
|
||||
export const aiTestConnection = forward("aiTestConnection");
|
||||
export const aiListModels = forward("aiListModels");
|
||||
export const aiResolveModelEffort = forward("aiResolveModelEffort");
|
||||
export const saveAiChatSelection = forward("saveAiChatSelection");
|
||||
export const loadAiChatSelection = forward("loadAiChatSelection");
|
||||
export const saveAiConfig = forward("saveAiConfig");
|
||||
export const loadAiConfig = forward("loadAiConfig");
|
||||
export const saveAiConfigs = forward("saveAiConfigs");
|
||||
|
||||
@@ -48,6 +48,7 @@ import type { CollectionInfo } from "@/types/database";
|
||||
import type { SchemaDiffPreparation, SchemaDiffPreparationOptions, TableDiff, FunctionDiff, SequenceDiff, RuleDiff, OwnerDiff } from "@/lib/schema/schemaDiff";
|
||||
import type { SidebarObjectKind } from "@/lib/database/databaseObjectCapabilities";
|
||||
import type { AiConfig, AiTestConnectionResult } from "@/stores/settingsStore";
|
||||
import type { AiChatSelectionState, AiEffortCapability } from "@/types/ai";
|
||||
import type {
|
||||
AgentDriverInfo,
|
||||
AiCompletionRequest,
|
||||
@@ -1136,6 +1137,18 @@ export async function aiListModels(config: AiConfig): Promise<AiModelInfo[]> {
|
||||
return post("/api/ai/models", { config });
|
||||
}
|
||||
|
||||
export async function aiResolveModelEffort(config: AiConfig, modelId: string): Promise<AiEffortCapability> {
|
||||
return post("/api/ai/model-effort", { config, modelId });
|
||||
}
|
||||
|
||||
export async function saveAiChatSelection(selection: AiChatSelectionState): Promise<void> {
|
||||
return post("/api/ai/chat-selection", { selection });
|
||||
}
|
||||
|
||||
export async function loadAiChatSelection(): Promise<AiChatSelectionState | null> {
|
||||
return get("/api/ai/chat-selection");
|
||||
}
|
||||
|
||||
export type { AgentEvent } from "@/lib/backend/tauri";
|
||||
|
||||
function isAgentEvent(v: unknown): v is import("@/lib/backend/tauri").AgentEvent {
|
||||
|
||||
@@ -47,7 +47,7 @@ import type {
|
||||
import { isTauriCommandUnavailable, normalizeConnectionTestResult } from "@/lib/connection/connectionDatabaseInfo";
|
||||
import type { CollectionInfo } from "@/types/database";
|
||||
import type { SidebarObjectKind } from "@/lib/database/databaseObjectCapabilities";
|
||||
import type { AiConfig, AiConfigItem, AiEffortLevel, AiTestConnectionResult } from "@/types/ai";
|
||||
import type { AiChatSelectionState, AiConfig, AiConfigItem, AiEffortCapability, AiEffortLevel, AiTestConnectionResult } from "@/types/ai";
|
||||
import type { QueryEditability } from "@/lib/sql/sqlAnalysis";
|
||||
import { isTerminalTransferProgress } from "@/lib/backend/transferProgress";
|
||||
import type {
|
||||
@@ -358,6 +358,7 @@ export interface AiModelInfo {
|
||||
id: string;
|
||||
displayName?: string;
|
||||
supportedEffortLevels?: AiEffortLevel[];
|
||||
effortCapability?: AiEffortCapability;
|
||||
}
|
||||
|
||||
export async function aiComplete(request: AiCompletionRequest): Promise<string> {
|
||||
@@ -445,6 +446,18 @@ export async function aiListModels(config: AiConfig): Promise<AiModelInfo[]> {
|
||||
return invoke("ai_list_models", { config });
|
||||
}
|
||||
|
||||
export async function aiResolveModelEffort(config: AiConfig, modelId: string): Promise<AiEffortCapability> {
|
||||
return invoke("ai_resolve_model_effort", { config, modelId });
|
||||
}
|
||||
|
||||
export async function saveAiChatSelection(selection: AiChatSelectionState): Promise<void> {
|
||||
return invoke("save_ai_chat_selection", { selection });
|
||||
}
|
||||
|
||||
export async function loadAiChatSelection(): Promise<AiChatSelectionState | null> {
|
||||
return invoke("load_ai_chat_selection");
|
||||
}
|
||||
|
||||
export async function aiCancelStream(sessionId: string): Promise<boolean> {
|
||||
return invoke("ai_cancel_stream", { sessionId });
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user