@marimo-team/frontend 0.23.9-dev20 → 0.23.9-dev22
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/dist/assets/{CellStatus-cST_KROR.js → CellStatus-BqCsCfF0.js} +1 -1
- package/dist/assets/{JsonOutput-BwgMLuPn.js → JsonOutput-7sNcAFVa.js} +1 -1
- package/dist/assets/{MarimoErrorOutput-DIbgMg0T.js → MarimoErrorOutput-BOi3ico3.js} +1 -1
- package/dist/assets/{RenderHTML-CH8QrLVl.js → RenderHTML-CUf8D25v.js} +1 -1
- package/dist/assets/{add-cell-with-ai-DDmHtapY.js → add-cell-with-ai-XU2qpbrH.js} +1 -1
- package/dist/assets/{add-connection-dialog-CRbrpdQu.js → add-connection-dialog-C9ehEIhe.js} +1 -1
- package/dist/assets/{agent-panel-Ci6kmMWq.js → agent-panel-CteWNnTE.js} +1 -1
- package/dist/assets/ai-model-dropdown-tspiiyaT.js +5 -0
- package/dist/assets/{app-config-button-DrlCOjyd.js → app-config-button-Co0iUAmT.js} +1 -1
- package/dist/assets/{cell-editor-Bhvnqdc-.js → cell-editor-SWzZ01Xy.js} +1 -1
- package/dist/assets/{cell-link-rh-JpkCu.js → cell-link-DLb_k4Kf.js} +1 -1
- package/dist/assets/{cells-Cwex_Zk1.js → cells-yL2qMkYn.js} +41 -41
- package/dist/assets/{chat-display-DzBxD2g1.js → chat-display-CHd7vgqs.js} +1 -1
- package/dist/assets/{chat-panel-ipOkNc7y.js → chat-panel-DeHm9U27.js} +1 -1
- package/dist/assets/{chat-ui-DqHdyg0V.js → chat-ui-cSu2PBtp.js} +1 -1
- package/dist/assets/{column-preview-WtwlsutV.js → column-preview-D1138kdA.js} +1 -1
- package/dist/assets/{command-palette-C5YuwxOo.js → command-palette-DdhU05vN.js} +1 -1
- package/dist/assets/{common-B3E9c-gU.js → common-DqZ15mGE.js} +1 -1
- package/dist/assets/{components-DFkvRpxg.js → components-BK3xAU_5.js} +1 -1
- package/dist/assets/{components-wm4TXPI6.js → components-DXfCmhfc.js} +1 -1
- package/dist/assets/{datasource-rDrNZEmo.js → datasource-CJC51Mx7.js} +1 -1
- package/dist/assets/{dependency-graph-panel-BWe9yDlP.js → dependency-graph-panel-avUgiyMA.js} +1 -1
- package/dist/assets/{documentation-panel-BAxMFFrB.js → documentation-panel-BX7dDKRB.js} +1 -1
- package/dist/assets/{download-NRqwJhRT.js → download-DucsG72p.js} +1 -1
- package/dist/assets/{edit-page-CNuf6Bpw.js → edit-page-D-PmFfK7.js} +3 -3
- package/dist/assets/{error-panel-CByNONxp.js → error-panel-BqoOUjfw.js} +1 -1
- package/dist/assets/{file-explorer-panel-DcCFx-Mu.js → file-explorer-panel-8hhN0YIE.js} +1 -1
- package/dist/assets/{file-icons-CV0odlbf.js → file-icons-CNUmy2Dl.js} +1 -1
- package/dist/assets/{floating-outline-DmddQK6b.js → floating-outline-B_uWfcys.js} +1 -1
- package/dist/assets/{focus-DLnEejrn.js → focus-Cyz1EKwA.js} +1 -1
- package/dist/assets/{form-Dnx_5kyZ.js → form-Dyt6aN_7.js} +1 -1
- package/dist/assets/{home-page-ffvNN1h7.js → home-page-ahZaXEAO.js} +1 -1
- package/dist/assets/{hooks-DuHQuYPv.js → hooks-BmREojM6.js} +1 -1
- package/dist/assets/{html-to-image-CzpeYelq.js → html-to-image-CKzwKb6F.js} +1 -1
- package/dist/assets/{index-BN0lrf4C.js → index-CWMGYIgw.js} +3 -3
- package/dist/assets/{kiosk-mode-C6QWFFID.js → kiosk-mode-z2bbZ6_w.js} +1 -1
- package/dist/assets/{layout-dxaLq-eR.js → layout-i6tKZqCw.js} +3 -3
- package/dist/assets/{logs-panel-9W91k1zJ.js → logs-panel-CNV8j7by.js} +1 -1
- package/dist/assets/{markdown-renderer-B-iPeXPA.js → markdown-renderer-3mlKZ6Wa.js} +1 -1
- package/dist/assets/{name-cell-input-uFfmqWYT.js → name-cell-input-BnL86ka3.js} +1 -1
- package/dist/assets/{outline-panel-BAWIWb20.js → outline-panel-k7h8ZSSH.js} +1 -1
- package/dist/assets/{packages-panel-DncGPBWC.js → packages-panel-B60rK-z4.js} +1 -1
- package/dist/assets/{panels-ByGgkdwq.js → panels-DHCVX_8o.js} +1 -1
- package/dist/assets/{process-output-D06o1mmH.js → process-output-Bi7Z_Agd.js} +1 -1
- package/dist/assets/{radio-group-DUTOVun5.js → radio-group-CdBpUP4h.js} +1 -1
- package/dist/assets/{readonly-python-code-BnaYQo0K.js → readonly-python-code-beWODwjc.js} +1 -1
- package/dist/assets/{reveal-component-BXfhZjrl.js → reveal-component-fENoSU2O.js} +1 -1
- package/dist/assets/{run-page-Um3pVJx9.js → run-page-CxA8m2Pc.js} +1 -1
- package/dist/assets/{scratchpad-panel-D8kI0OKl.js → scratchpad-panel-Doe-hDIO.js} +1 -1
- package/dist/assets/{session-panel-07dCccS4.js → session-panel-C5xz5D-N.js} +1 -1
- package/dist/assets/{snippets-panel-s3hpmPTY.js → snippets-panel-rCxyqna5.js} +1 -1
- package/dist/assets/{state-DIFGjBXT.js → state-B6DTPcu0.js} +1 -1
- package/dist/assets/{state-B5L8iIIr.js → state-vUGPvNzI.js} +1 -1
- package/dist/assets/{textarea-D0VOSGcU.js → textarea-DRcRrFRn.js} +1 -1
- package/dist/assets/{tracing-CSRhEdtZ.js → tracing-DKMmxWD9.js} +1 -1
- package/dist/assets/{tracing-panel-DuaSjEhP.js → tracing-panel-KG023vH2.js} +2 -2
- package/dist/assets/{useCellActionButton-CtygwcqH.js → useCellActionButton-ZXUUkx8s.js} +1 -1
- package/dist/assets/{useDeleteCell-DeZ7T5A3.js → useDeleteCell-wNHy5lEM.js} +1 -1
- package/dist/assets/{useDependencyPanelTab-Bpa86UXQ.js → useDependencyPanelTab-B7Qj36AL.js} +1 -1
- package/dist/assets/{useNotebookActions-DuMI8tMy.js → useNotebookActions-67xj2Dr_.js} +1 -1
- package/dist/assets/{useRunCells-CScbBaxj.js → useRunCells-CJadPmdw.js} +1 -1
- package/dist/assets/{useSplitCell-CBlrUeHM.js → useSplitCell-C04l3e__.js} +1 -1
- package/dist/index.html +22 -22
- package/package.json +1 -1
- package/src/components/ai/__tests__/ai-utils.test.ts +43 -38
- package/src/components/ai/ai-model-dropdown.tsx +2 -2
- package/src/components/app-config/ai-config.tsx +1 -1
- package/src/components/databases/display.tsx +2 -0
- package/src/components/datasources/__tests__/utils.test.ts +82 -0
- package/src/components/datasources/utils.ts +16 -15
- package/src/core/ai/__tests__/model-registry.test.ts +72 -60
- package/src/core/ai/model-registry.ts +33 -28
- package/src/core/codemirror/format.ts +1 -0
- package/src/core/codemirror/language/languages/sql/sql.ts +1 -0
- package/src/core/codemirror/language/languages/sql/utils.ts +2 -0
- package/dist/assets/ai-model-dropdown-CNobct-x.js +0 -5
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
/* Copyright 2026 Marimo. All rights reserved. */
|
|
2
2
|
|
|
3
|
-
import type {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
Role,
|
|
7
|
-
} from "@marimo-team/llm-info";
|
|
8
|
-
import { models } from "@marimo-team/llm-info/models.json";
|
|
9
|
-
import { providers } from "@marimo-team/llm-info/providers.json";
|
|
3
|
+
import type { AiModel as AiModelType, AiProvider } from "@marimo-team/llm-info";
|
|
4
|
+
import { models as modelsJson } from "@marimo-team/llm-info/models.json";
|
|
5
|
+
import { providers as providersJson } from "@marimo-team/llm-info/providers.json";
|
|
10
6
|
import { Logger } from "@/utils/Logger";
|
|
11
7
|
import { MultiMap } from "@/utils/multi-map";
|
|
12
8
|
import { once } from "@/utils/once";
|
|
@@ -14,13 +10,19 @@ import type { ProviderId } from "./ids/ids";
|
|
|
14
10
|
import { AiModelId, type QualifiedModelId, type ShortModelId } from "./ids/ids";
|
|
15
11
|
|
|
16
12
|
export interface AiModel extends AiModelType {
|
|
17
|
-
roles: Role[];
|
|
18
13
|
model: ShortModelId;
|
|
19
|
-
|
|
14
|
+
/** The provider this entry belongs to. */
|
|
15
|
+
provider: ProviderId;
|
|
20
16
|
/** Whether this is a custom model. */
|
|
21
17
|
custom: boolean;
|
|
22
18
|
}
|
|
23
19
|
|
|
20
|
+
// JSON shape matches the `AiModel` schema (Zod-validated at codegen time).
|
|
21
|
+
const models = modelsJson as unknown as Partial<
|
|
22
|
+
Record<ProviderId, AiModelType[]>
|
|
23
|
+
>;
|
|
24
|
+
const providers = providersJson as unknown as readonly AiProvider[];
|
|
25
|
+
|
|
24
26
|
interface KnownModelMaps {
|
|
25
27
|
/** Map of qualified model ID to model info */
|
|
26
28
|
modelMap: ReadonlyMap<QualifiedModelId, AiModel>;
|
|
@@ -32,24 +34,25 @@ export const getKnownModelMaps = once((): KnownModelMaps => {
|
|
|
32
34
|
const modelMap = new Map<QualifiedModelId, AiModel>();
|
|
33
35
|
const defaultModelByProvider = new Map<ProviderId, QualifiedModelId>();
|
|
34
36
|
|
|
35
|
-
for (const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
37
|
+
for (const [providerKey, providerModels] of Object.entries(models)) {
|
|
38
|
+
if (!providerModels) {
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
const provider = providerKey as ProviderId;
|
|
42
|
+
for (const raw of providerModels) {
|
|
43
|
+
const modelId = raw.model as ShortModelId;
|
|
44
|
+
const modelInfo: AiModel = {
|
|
45
|
+
...raw,
|
|
46
|
+
model: modelId,
|
|
47
|
+
provider,
|
|
48
|
+
custom: false,
|
|
49
|
+
};
|
|
47
50
|
|
|
48
|
-
for (const provider of modelInfo.providers) {
|
|
49
51
|
const qualifiedModelId: QualifiedModelId = `${provider}/${modelId}`;
|
|
50
52
|
modelMap.set(qualifiedModelId, modelInfo);
|
|
51
53
|
|
|
52
|
-
|
|
54
|
+
const supportsChatOrEdit =
|
|
55
|
+
modelInfo.roles.includes("chat") || modelInfo.roles.includes("edit");
|
|
53
56
|
if (supportsChatOrEdit && !defaultModelByProvider.has(provider)) {
|
|
54
57
|
defaultModelByProvider.set(provider, qualifiedModelId);
|
|
55
58
|
}
|
|
@@ -67,9 +70,8 @@ const getProviderMap = once(
|
|
|
67
70
|
const providerMap = new Map<ProviderId, AiProvider>();
|
|
68
71
|
const providerToOrderIdx = new Map<ProviderId, number>();
|
|
69
72
|
providers.forEach((provider, idx) => {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
providerToOrderIdx.set(providerId, idx);
|
|
73
|
+
providerMap.set(provider.id, provider);
|
|
74
|
+
providerToOrderIdx.set(provider.id, idx);
|
|
73
75
|
});
|
|
74
76
|
return { providerMap, providerToOrderIdx };
|
|
75
77
|
},
|
|
@@ -158,9 +160,12 @@ export class AiModelRegistry {
|
|
|
158
160
|
name: modelId.shortModelId,
|
|
159
161
|
model: modelId.shortModelId,
|
|
160
162
|
description: "Custom model",
|
|
161
|
-
|
|
163
|
+
provider: modelId.providerId,
|
|
162
164
|
roles: [],
|
|
163
|
-
|
|
165
|
+
capabilities: [],
|
|
166
|
+
input_types: [],
|
|
167
|
+
output_types: [],
|
|
168
|
+
release_date: "1970-01-01",
|
|
164
169
|
custom: true,
|
|
165
170
|
};
|
|
166
171
|
customModelsMap.set(model, modelInfo);
|
|
@@ -52,6 +52,7 @@ const KNOWN_DIALECTS_ARRAY = [
|
|
|
52
52
|
"databricks",
|
|
53
53
|
"datafusion",
|
|
54
54
|
"microsoft sql server",
|
|
55
|
+
"dremio",
|
|
55
56
|
] as const;
|
|
56
57
|
const KNOWN_DIALECTS: ReadonlySet<string> = new Set(KNOWN_DIALECTS_ARRAY);
|
|
57
58
|
type KnownDialect = (typeof KNOWN_DIALECTS_ARRAY)[number];
|
|
@@ -115,6 +116,7 @@ export function guessDialect(
|
|
|
115
116
|
case "spark":
|
|
116
117
|
case "databricks":
|
|
117
118
|
case "datafusion":
|
|
119
|
+
case "dremio":
|
|
118
120
|
Logger.debug("Unsupported dialect", { dialect });
|
|
119
121
|
return ModifiedStandardSQL;
|
|
120
122
|
default:
|