vue-agent-start 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +30 -0
- package/pnpm-workspace.yaml +3 -0
- package/src/agent-flow/adapter/backend.ts +99 -0
- package/src/agent-flow/components/ChatIframePanel.vue +773 -0
- package/src/agent-flow/components/DatasetItemCard.vue +313 -0
- package/src/agent-flow/components/MemoryWindow.vue +104 -0
- package/src/agent-flow/components/PromptEditor.vue +804 -0
- package/src/agent-flow/components/PromptEditorTagPanel.vue +460 -0
- package/src/agent-flow/components/SvgIcon.vue +32 -0
- package/src/agent-flow/components/ToolItemCard.vue +169 -0
- package/src/agent-flow/components/VariableCard.vue +161 -0
- package/src/agent-flow/components/VariableSelector.vue +162 -0
- package/src/agent-flow/components/chat-iframe-types.ts +35 -0
- package/src/agent-flow/components/stubs/DatasetChooser.vue +70 -0
- package/src/agent-flow/components/stubs/Embedding.vue +22 -0
- package/src/agent-flow/components/stubs/ModelSelect.vue +24 -0
- package/src/agent-flow/components/stubs/RestfulSelectCard.vue +24 -0
- package/src/agent-flow/components/stubs/ToolChooser.vue +96 -0
- package/src/agent-flow/components/stubs/TriggersItemCard.vue +126 -0
- package/src/agent-flow/components/stubs/VariableModal.vue +115 -0
- package/src/agent-flow/index.ts +73 -0
- package/src/agent-flow/stores/workflow.ts +72 -0
- package/src/agent-flow/utils/langUtils.ts +173 -0
- package/src/agent-flow/workflow/Ability.vue +65 -0
- package/src/agent-flow/workflow/AuthorizationItem.vue +101 -0
- package/src/agent-flow/workflow/ConversationVar.vue +42 -0
- package/src/agent-flow/workflow/CustomEdge.vue +94 -0
- package/src/agent-flow/workflow/EnvironmentVar.vue +40 -0
- package/src/agent-flow/workflow/FlowDesigner.vue +2802 -0
- package/src/agent-flow/workflow/Icon.vue +179 -0
- package/src/agent-flow/workflow/NodeConfig.vue +509 -0
- package/src/agent-flow/workflow/NodeConfigCard.vue +460 -0
- package/src/agent-flow/workflow/NodeHandle.vue +147 -0
- package/src/agent-flow/workflow/NodeHeaderToolbar.vue +77 -0
- package/src/agent-flow/workflow/NodeHoverToolbar.vue +176 -0
- package/src/agent-flow/workflow/OutputItemCard.vue +668 -0
- package/src/agent-flow/workflow/ParamTableItem.vue +200 -0
- package/src/agent-flow/workflow/StructTable.vue +202 -0
- package/src/agent-flow/workflow/VarInsertField.vue +517 -0
- package/src/agent-flow/workflow/VarSelectField.vue +223 -0
- package/src/agent-flow/workflow/VariableSelectorItem.vue +48 -0
- package/src/agent-flow/workflow/WfField.vue +206 -0
- package/src/agent-flow/workflow/_config-base.css +470 -0
- package/src/agent-flow/workflow/composables/useNode.js +55 -0
- package/src/agent-flow/workflow/index.vue +53 -0
- package/src/agent-flow/workflow/nodeCard/AgentNodeCard.vue +180 -0
- package/src/agent-flow/workflow/nodeCard/AnswerNodeCard.vue +65 -0
- package/src/agent-flow/workflow/nodeCard/ClassifierCard.vue +152 -0
- package/src/agent-flow/workflow/nodeCard/CodeNodeCard.vue +139 -0
- package/src/agent-flow/workflow/nodeCard/ConditionNodeCard.vue +323 -0
- package/src/agent-flow/workflow/nodeCard/DocumentExtractorCard.vue +83 -0
- package/src/agent-flow/workflow/nodeCard/EndNodeCard.vue +123 -0
- package/src/agent-flow/workflow/nodeCard/HttpNodeCard.vue +451 -0
- package/src/agent-flow/workflow/nodeCard/HumanInputCard.vue +152 -0
- package/src/agent-flow/workflow/nodeCard/IterationCard.vue +66 -0
- package/src/agent-flow/workflow/nodeCard/KnowledgeRetrievalCard.vue +48 -0
- package/src/agent-flow/workflow/nodeCard/LLMNodeCard.vue +206 -0
- package/src/agent-flow/workflow/nodeCard/ListOperatorCard.vue +188 -0
- package/src/agent-flow/workflow/nodeCard/ParameterExtractorCard.vue +352 -0
- package/src/agent-flow/workflow/nodeCard/ServiceApiNodeCard.vue +188 -0
- package/src/agent-flow/workflow/nodeCard/StartNodeCard.vue +216 -0
- package/src/agent-flow/workflow/nodeCard/VariableAssignerCard.vue +125 -0
- package/src/agent-flow/workflow/nodeCard/VariableNodeCard.vue +121 -0
- package/src/agent-flow/workflow/nodes/AgentNode.vue +122 -0
- package/src/agent-flow/workflow/nodes/AnswerNode.vue +99 -0
- package/src/agent-flow/workflow/nodes/ClassifierNode.vue +199 -0
- package/src/agent-flow/workflow/nodes/CodeNode.vue +152 -0
- package/src/agent-flow/workflow/nodes/ConditionNode.vue +232 -0
- package/src/agent-flow/workflow/nodes/DocumentExtractorNode.vue +96 -0
- package/src/agent-flow/workflow/nodes/EndNode.vue +119 -0
- package/src/agent-flow/workflow/nodes/FileUploadNode.vue +97 -0
- package/src/agent-flow/workflow/nodes/HttpNode.vue +204 -0
- package/src/agent-flow/workflow/nodes/HumanInputNode.vue +110 -0
- package/src/agent-flow/workflow/nodes/IterationNode.vue +98 -0
- package/src/agent-flow/workflow/nodes/KnowledgeRetrievalNode.vue +253 -0
- package/src/agent-flow/workflow/nodes/LLMNode.vue +134 -0
- package/src/agent-flow/workflow/nodes/ListOperatorNode.vue +111 -0
- package/src/agent-flow/workflow/nodes/LoopNode.vue +94 -0
- package/src/agent-flow/workflow/nodes/ParameterExtractorNode.vue +147 -0
- package/src/agent-flow/workflow/nodes/ServiceApiNode.vue +161 -0
- package/src/agent-flow/workflow/nodes/StartNode.vue +199 -0
- package/src/agent-flow/workflow/nodes/TemplateNode.vue +103 -0
- package/src/agent-flow/workflow/nodes/UserInputNode.vue +92 -0
- package/src/agent-flow/workflow/nodes/VariableAssignerNode.vue +145 -0
- package/src/agent-flow/workflow/nodes/VariableNode.vue +130 -0
- package/src/agent-flow/workflow/nodes/_node-base.css +338 -0
- package/src/agent-flow/workflow/utils/node_card_form.ts +335 -0
- package/src/agent-flow/workflow/utils/node_config.ts +63 -0
- package/src/agent-flow/workflow/utils/workflow_utils.ts +151 -0
- package/src/agent-studio/adapters/springAgentStart.ts +390 -0
- package/src/agent-studio/api/index.ts +1 -0
- package/src/agent-studio/api/types.ts +173 -0
- package/src/agent-studio/components/AgentApiDocs.vue +500 -0
- package/src/agent-studio/components/AgentAppsPage.vue +1601 -0
- package/src/agent-studio/components/AgentCardGrid.vue +259 -0
- package/src/agent-studio/components/AgentChatPage.vue +553 -0
- package/src/agent-studio/components/AgentDebugPanel.vue +350 -0
- package/src/agent-studio/components/AgentLogsPanel.vue +391 -0
- package/src/agent-studio/components/AgentMonitorPanel.vue +204 -0
- package/src/agent-studio/components/AgentOrchestrate.vue +505 -0
- package/src/agent-studio/components/AgentPromptEditor.vue +237 -0
- package/src/agent-studio/components/AgentStudioShell.vue +227 -0
- package/src/agent-studio/components/AgentToolsPanel.vue +394 -0
- package/src/agent-studio/components/AgentVariablesPanel.vue +205 -0
- package/src/agent-studio/components/ApiKeyManager.vue +251 -0
- package/src/agent-studio/components/AppDesignDrawer.vue +3391 -0
- package/src/agent-studio/components/CreateAppModal.vue +737 -0
- package/src/agent-studio/components/SparkChart.vue +200 -0
- package/src/agent-studio/components/VariableEditorModal.vue +499 -0
- package/src/agent-studio/composables/useAgentStudio.ts +347 -0
- package/src/agent-studio/index.ts +60 -0
- package/src/agent-studio/panels/DrawerFlowDesigner.vue +203 -0
- package/src/agent-studio/panels/LogAnnotationPanel.vue +490 -0
- package/src/agent-studio/panels/MonitorPanel.vue +535 -0
- package/src/agent-studio/types.ts +242 -0
- package/src/index.ts +155 -0
- package/src/knowledge-hub/adapters/springAgentStart.ts +472 -0
- package/src/knowledge-hub/components/AddDocumentsWizard.vue +1452 -0
- package/src/knowledge-hub/components/CreateDatasetWizard.vue +1723 -0
- package/src/knowledge-hub/components/DatasetCardGrid.vue +467 -0
- package/src/knowledge-hub/components/DatasetDetailDrawer.vue +888 -0
- package/src/knowledge-hub/components/DatasetPicker.vue +65 -0
- package/src/knowledge-hub/components/DatasetPickerModal.vue +526 -0
- package/src/knowledge-hub/components/DatasetSettingsPanel.vue +908 -0
- package/src/knowledge-hub/components/DatasetSidebar.vue +781 -0
- package/src/knowledge-hub/components/DocumentChunksView.vue +802 -0
- package/src/knowledge-hub/components/DocumentTable.vue +552 -0
- package/src/knowledge-hub/components/HitTestingPanel.vue +74 -0
- package/src/knowledge-hub/components/KnowledgeApp.vue +66 -0
- package/src/knowledge-hub/components/KnowledgeHubApp.vue +504 -0
- package/src/knowledge-hub/components/RecallTestingPanelV2.vue +515 -0
- package/src/knowledge-hub/components/RetrievalConfigPopover.vue +270 -0
- package/src/knowledge-hub/components/RetrievalMethodPicker.vue +547 -0
- package/src/knowledge-hub/components/RetrievedList.vue +24 -0
- package/src/knowledge-hub/components/internal/KhDialog.vue +195 -0
- package/src/knowledge-hub/composables/useKnowledge.ts +89 -0
- package/src/knowledge-hub/i18n/index.ts +2 -0
- package/src/knowledge-hub/i18n/messages.ts +422 -0
- package/src/knowledge-hub/i18n/useKhI18n.ts +107 -0
- package/src/knowledge-hub/index.ts +46 -0
- package/src/knowledge-hub/styles/index.css +4 -0
- package/src/knowledge-hub/styles/tokens.css +138 -0
- package/src/knowledge-hub/types/api.ts +213 -0
- package/src/knowledge-hub/types/dataset.ts +88 -0
- package/src/knowledge-hub/types/document.ts +45 -0
- package/src/knowledge-hub/types/index.ts +9 -0
- package/src/knowledge-hub/types/retrieval.ts +46 -0
- package/src/provider-hub/components/CredentialForm.vue +103 -0
- package/src/provider-hub/components/DefaultModelsPanel.vue +270 -0
- package/src/provider-hub/components/GroupedModelSelect.vue +445 -0
- package/src/provider-hub/components/ModelCardGrid.vue +332 -0
- package/src/provider-hub/components/ModelParameterDrawer.vue +739 -0
- package/src/provider-hub/components/ModelPickerPopover.vue +1282 -0
- package/src/provider-hub/components/ProviderApp.vue +159 -0
- package/src/provider-hub/components/ProviderCredentialModal.vue +321 -0
- package/src/provider-hub/components/ProviderGallery.vue +131 -0
- package/src/provider-hub/components/ProviderHubShell.vue +1992 -0
- package/src/provider-hub/components/ProviderIcon.vue +130 -0
- package/src/provider-hub/composables/useProviderHub.ts +358 -0
- package/src/provider-hub/index.ts +43 -0
- package/src/provider-hub/svg/MiniMax.svg +1 -0
- package/src/provider-hub/svg/Volcengine.svg +1 -0
- package/src/provider-hub/svg/Zhipu.svg +1 -0
- package/src/provider-hub/svg/deepseek.svg +1 -0
- package/src/provider-hub/svg/moonshot.svg +1 -0
- package/src/provider-hub/svg/openai.svg +1 -0
- package/src/provider-hub/svg/qwen.svg +1 -0
- package/src/provider-hub/svg/siliconflow.svg +1 -0
- package/src/provider-hub/types.ts +256 -0
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types mirror the backend REST payloads (see spring-agent-web ModelController).
|
|
3
|
+
* Kept minimal so consumers don't have to re-declare shapes.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
export type ModelType =
|
|
7
|
+
| 'IMAGE'
|
|
8
|
+
| 'LLM'
|
|
9
|
+
| 'MODERATION'
|
|
10
|
+
| 'RERANK'
|
|
11
|
+
| 'SPEECH2TEXT'
|
|
12
|
+
| 'TEXT_EMBEDDING'
|
|
13
|
+
| 'TTS';
|
|
14
|
+
|
|
15
|
+
export interface CredentialField {
|
|
16
|
+
name: string;
|
|
17
|
+
label: string;
|
|
18
|
+
type: string;
|
|
19
|
+
required: boolean;
|
|
20
|
+
secret: boolean;
|
|
21
|
+
defaultValue?: string;
|
|
22
|
+
placeholder?: string;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export interface PredefinedModel {
|
|
26
|
+
model: string;
|
|
27
|
+
label: string;
|
|
28
|
+
modelType: string;
|
|
29
|
+
features?: string[];
|
|
30
|
+
contextLength?: number;
|
|
31
|
+
dimensions?: number;
|
|
32
|
+
/** Rule overrides for this specific model, when it differs from the provider default. */
|
|
33
|
+
parameterRules?: ModelParameterRule[];
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Declarative parameter rule (Dify-parity). Mirrors ModelParameterRule.java. The UI
|
|
38
|
+
* uses this to render sliders / number inputs in the parameter drawer without
|
|
39
|
+
* hard-coding what any specific model exposes.
|
|
40
|
+
*/
|
|
41
|
+
export interface ModelParameterRule {
|
|
42
|
+
name: string;
|
|
43
|
+
label: string;
|
|
44
|
+
type: 'BOOLEAN' | 'FLOAT' | 'INT' | 'STRING';
|
|
45
|
+
min?: number;
|
|
46
|
+
max?: number;
|
|
47
|
+
step?: number;
|
|
48
|
+
precision?: number;
|
|
49
|
+
defaultValue?: boolean | number | string;
|
|
50
|
+
placeholder?: string;
|
|
51
|
+
help?: string;
|
|
52
|
+
required?: boolean;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/** GET /models/{id}/parameters response. */
|
|
56
|
+
export interface ModelParameters {
|
|
57
|
+
rules: ModelParameterRule[];
|
|
58
|
+
parameters: Record<string, boolean | number | string>;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Dify-parity provider definition row (agent_model_provider). Read by
|
|
63
|
+
* GET /model-providers now via the new DB-driven path; also the payload for
|
|
64
|
+
* POST /model-provider-definitions when adding an external / custom provider.
|
|
65
|
+
*/
|
|
66
|
+
export interface ProviderDefinition {
|
|
67
|
+
id?: string;
|
|
68
|
+
tenantId?: string;
|
|
69
|
+
name: string;
|
|
70
|
+
label: string;
|
|
71
|
+
description?: string;
|
|
72
|
+
icon?: string;
|
|
73
|
+
supportedModelTypes: ModelType[];
|
|
74
|
+
credentialSchema: CredentialField[];
|
|
75
|
+
defaultParameterRules?: Record<string, ModelParameterRule[]>;
|
|
76
|
+
implementationKey: string;
|
|
77
|
+
defaultBaseUrl?: string;
|
|
78
|
+
source?: 'builtin' | 'external' | 'custom';
|
|
79
|
+
sortOrder?: number;
|
|
80
|
+
enabled?: boolean;
|
|
81
|
+
supportsRemoteModelListing?: boolean;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* One row of a provider catalog view (predefined + custom merged). Enabled /
|
|
86
|
+
* isDefault flags come from the tenant's settings tables. `source` tells the
|
|
87
|
+
* UI whether this row lives in the shared predefined catalog (edit-only for
|
|
88
|
+
* admins) or as a tenant custom model (delete-able).
|
|
89
|
+
*/
|
|
90
|
+
export interface CatalogRow {
|
|
91
|
+
id: string;
|
|
92
|
+
model: string;
|
|
93
|
+
label: string;
|
|
94
|
+
modelType: ModelType;
|
|
95
|
+
contextLength?: number;
|
|
96
|
+
dimensions?: number;
|
|
97
|
+
features?: string[];
|
|
98
|
+
parameterRules?: ModelParameterRule[];
|
|
99
|
+
/**
|
|
100
|
+
* Where this row comes from:
|
|
101
|
+
* predefined — DB-seeded shipped model (from agent_predefined_model).
|
|
102
|
+
* custom — tenant-registered custom model (agent_model row).
|
|
103
|
+
* remote — transient live-fetched from vendor `/models`; not persisted
|
|
104
|
+
* until user explicitly enables it (then a setting row is
|
|
105
|
+
* inserted; no agent_predefined_model row is created).
|
|
106
|
+
*/
|
|
107
|
+
source: 'custom' | 'predefined' | 'remote';
|
|
108
|
+
enabled: boolean;
|
|
109
|
+
loadBalancingEnabled?: boolean;
|
|
110
|
+
isDefault: boolean;
|
|
111
|
+
credentialId?: string;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* One entry from a vendor's live catalog (GET /model-providers/{name}/remote-models).
|
|
116
|
+
* `typeInferred` = we guessed by keyword and the UI should let the user confirm.
|
|
117
|
+
*/
|
|
118
|
+
export interface RemoteModel {
|
|
119
|
+
modelId: string;
|
|
120
|
+
label: string;
|
|
121
|
+
modelType: ModelType;
|
|
122
|
+
contextLength?: number;
|
|
123
|
+
dimensions?: number;
|
|
124
|
+
features?: string[];
|
|
125
|
+
ownedBy?: string;
|
|
126
|
+
typeInferred?: boolean;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Provider descriptor returned by /model-providers. The trailing four fields are
|
|
131
|
+
* tenant-scoped state added by the backend so a single request feeds the whole
|
|
132
|
+
* "configured / pending / installable" three-section layout.
|
|
133
|
+
*/
|
|
134
|
+
export interface ProviderView {
|
|
135
|
+
name: string;
|
|
136
|
+
label: string;
|
|
137
|
+
supportedModelTypes: string[];
|
|
138
|
+
credentialSchema: CredentialField[];
|
|
139
|
+
predefinedModels: PredefinedModel[];
|
|
140
|
+
/** Provider-wide fallback rules keyed by model type name (e.g. "LLM", "TEXT_EMBEDDING"). */
|
|
141
|
+
defaultParameterRules?: Record<string, ModelParameterRule[]>;
|
|
142
|
+
supportsRemoteModelListing: boolean;
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Legacy single-slot icon column on {@code agent_model_provider.icon}. May
|
|
146
|
+
* carry inline SVG markup, an absolute URL, or a bare key — the
|
|
147
|
+
* {@link providerIconProps} helper in ProviderHubShell disambiguates.
|
|
148
|
+
*/
|
|
149
|
+
icon?: string;
|
|
150
|
+
/** Raw SVG markup for user-defined providers stored in the DB. */
|
|
151
|
+
svgIcon?: string;
|
|
152
|
+
/** CDN or backend URL that serves the icon (e.g. {@code /api/agent-start/providers/{name}/icon}). */
|
|
153
|
+
iconUrl?: string;
|
|
154
|
+
|
|
155
|
+
credentialConfigured: boolean;
|
|
156
|
+
credentialId?: string;
|
|
157
|
+
credentialMasked?: Record<string, unknown>;
|
|
158
|
+
installedModelCount: number;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
export interface ProviderCredentialInfo {
|
|
162
|
+
providerName: string;
|
|
163
|
+
configured: boolean;
|
|
164
|
+
credentialId?: string;
|
|
165
|
+
credentialName?: string;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
export interface ModelEntity {
|
|
169
|
+
id: string;
|
|
170
|
+
tenantId: string;
|
|
171
|
+
providerName: string;
|
|
172
|
+
modelName: string;
|
|
173
|
+
modelType: ModelType;
|
|
174
|
+
enabled: boolean;
|
|
175
|
+
isDefault: boolean;
|
|
176
|
+
credentialId?: string;
|
|
177
|
+
createdAt?: string;
|
|
178
|
+
updatedAt?: string;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
export interface ModelRegistration {
|
|
182
|
+
tenantId?: string;
|
|
183
|
+
providerName: string;
|
|
184
|
+
modelName: string;
|
|
185
|
+
modelType: ModelType;
|
|
186
|
+
credentials?: Record<string, unknown>;
|
|
187
|
+
credentialId?: string;
|
|
188
|
+
asDefault?: boolean;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* One provider entry inside a "grouped-by-type" bucket, mirroring the reference
|
|
193
|
+
* project's a-select-opt-group binding: provider + description drive the group
|
|
194
|
+
* header, declaration carries icon hints, modelList feeds the option rows.
|
|
195
|
+
*/
|
|
196
|
+
export interface GroupedProviderView {
|
|
197
|
+
id: string;
|
|
198
|
+
provider: string;
|
|
199
|
+
label?: string;
|
|
200
|
+
description?: string;
|
|
201
|
+
declaration?: {
|
|
202
|
+
icon?: string;
|
|
203
|
+
svg_icon?: string;
|
|
204
|
+
icon_url?: string;
|
|
205
|
+
};
|
|
206
|
+
modelList: GroupedModelView[];
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* A single option inside {@link GroupedProviderView.modelList}. `id` is the
|
|
211
|
+
* composite `${providerName}::${modelName}::${modelType}` — sent back verbatim
|
|
212
|
+
* to identify the target of the set-default call.
|
|
213
|
+
*/
|
|
214
|
+
export interface GroupedModelView {
|
|
215
|
+
id: string;
|
|
216
|
+
providerName: string;
|
|
217
|
+
modelName: string;
|
|
218
|
+
modelType: ModelType;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* v-model payload for {@link ModelPickerPopover}. Three-tuple keys any model
|
|
223
|
+
* row uniquely and is the same shape the backend uses in default-model and
|
|
224
|
+
* enable-toggle endpoints, so callers can persist it without adaptation.
|
|
225
|
+
*
|
|
226
|
+
* The trailing fields are optional carry-throughs: {@code completionParams}
|
|
227
|
+
* is the parameter-tuning payload (temperature / top_p / max_tokens / …) that
|
|
228
|
+
* the popover now surfaces inline, while {@code provider}/{@code modelProvider}/
|
|
229
|
+
* {@code modelId}/{@code mode} are legacy aliases used by workflow nodes'
|
|
230
|
+
* `formState.model` so they can bind the same picker without a shape adapter.
|
|
231
|
+
* {@code modelId} is only read (never written) — the picker now emits pairs of
|
|
232
|
+
* {@code modelProvider}+{@code modelName} instead of a composite id.
|
|
233
|
+
*/
|
|
234
|
+
export interface SelectedModel {
|
|
235
|
+
providerName?: string;
|
|
236
|
+
modelName?: string;
|
|
237
|
+
modelType?: ModelType;
|
|
238
|
+
completionParams?: Record<string, boolean | number | string>;
|
|
239
|
+
provider?: string;
|
|
240
|
+
/** Provider key alias — matches the backend column name. */
|
|
241
|
+
modelProvider?: string;
|
|
242
|
+
/** @deprecated Legacy composite id; the picker no longer writes it. */
|
|
243
|
+
modelId?: string;
|
|
244
|
+
mode?: string;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
export interface ModelTestResult {
|
|
248
|
+
ok: boolean;
|
|
249
|
+
latencyMs: number;
|
|
250
|
+
kind?: string;
|
|
251
|
+
snippet?: string;
|
|
252
|
+
dimensions?: number;
|
|
253
|
+
error?: string;
|
|
254
|
+
message?: string;
|
|
255
|
+
}
|
|
256
|
+
|