drizzle-cube 0.5.0 → 0.5.3
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/README.md +4 -0
- package/dist/adapters/express/index.cjs +2 -2
- package/dist/adapters/express/index.js +106 -102
- package/dist/adapters/fastify/index.cjs +2 -2
- package/dist/adapters/fastify/index.js +109 -105
- package/dist/adapters/{handler-3LGcjLtr.js → handler-BC3nFNxV.js} +2 -2
- package/dist/adapters/{handler-BzzbVpcl.cjs → handler-Cqf-CqAS.cjs} +2 -2
- package/dist/adapters/hono/index.cjs +1 -1
- package/dist/adapters/hono/index.js +41 -45
- package/dist/adapters/locale-BoiA6WiV.cjs +198 -0
- package/dist/adapters/{locale-DTnJrxm1.js → locale-D9VQkLXt.js} +442 -404
- package/dist/adapters/mcp-tools.cjs +1 -1
- package/dist/adapters/mcp-tools.d.ts +7 -3
- package/dist/adapters/mcp-tools.js +28 -28
- package/dist/adapters/mcp-transport-B0mgxRnJ.js +579 -0
- package/dist/adapters/mcp-transport-irsahKmD.cjs +39 -0
- package/dist/adapters/mcp-transport.d.ts +14 -2
- package/dist/adapters/nextjs/index.cjs +1 -1
- package/dist/adapters/nextjs/index.js +140 -136
- package/dist/adapters/{openai-C4BD8xnN.cjs → openai-B4N3KfTG.cjs} +1 -1
- package/dist/adapters/{openai-CaSQEduB.js → openai-BWdm0JvG.js} +1 -1
- package/dist/adapters/openai-CoqT_FM5.cjs +16 -0
- package/dist/{server/openai-CqZg6zYL.js → adapters/openai-D0Nsvc9L.js} +824 -720
- package/dist/adapters/{utils-DOg9oGdt.js → utils-CTYvfZ3I.js} +711 -713
- package/dist/adapters/{utils-DNrj-ryp.cjs → utils-XPOzzMdY.cjs} +5 -5
- package/dist/adapters/utils.cjs +1 -1
- package/dist/adapters/utils.d.ts +38 -2
- package/dist/adapters/utils.js +1 -1
- package/dist/cli/index.cjs +2 -2
- package/dist/client/charts.js +10 -10
- package/dist/client/chunks/{DashboardEditModal-cSSIAZGy.js → DashboardEditModal-IU_0dgfC.js} +12 -12
- package/dist/client/chunks/{DashboardEditModal-cSSIAZGy.js.map → DashboardEditModal-IU_0dgfC.js.map} +1 -1
- package/dist/client/chunks/{FieldSearchModal-CZNo4pNK.js → FieldSearchModal-BCWanpPX.js} +3 -3
- package/dist/client/chunks/{FieldSearchModal-CZNo4pNK.js.map → FieldSearchModal-BCWanpPX.js.map} +1 -1
- package/dist/client/chunks/KpiDelta-_igN6cJa.js +2 -0
- package/dist/client/chunks/KpiNumber-t5n8PtRU.js +2 -0
- package/dist/client/chunks/KpiText-BCZJJ6a0.js +2 -0
- package/dist/client/chunks/{RetentionCombinedChart-BD8tGeM_.js → RetentionCombinedChart-CQMBODsK.js} +2 -2
- package/dist/client/chunks/{RetentionCombinedChart-BD8tGeM_.js.map → RetentionCombinedChart-CQMBODsK.js.map} +1 -1
- package/dist/client/chunks/SchemaVisualization-BUUhlOvG.js +2 -0
- package/dist/client/chunks/SchemaVisualizationLazy-CwaPCUL0.js +2 -0
- package/dist/client/chunks/{analysis-builder-BeVZhiQ5.js → analysis-builder-Dm6eD_AX.js} +6 -6
- package/dist/client/chunks/{analysis-builder-BeVZhiQ5.js.map → analysis-builder-Dm6eD_AX.js.map} +1 -1
- package/dist/client/chunks/{analysis-builder-shared-BWc7ZZnG.js → analysis-builder-shared-DT5bXwCA.js} +6 -6
- package/dist/client/chunks/{analysis-builder-shared-BWc7ZZnG.js.map → analysis-builder-shared-DT5bXwCA.js.map} +1 -1
- package/dist/client/chunks/{chart-area-D63kG8OT.js → chart-area-DDti9Qtp.js} +2 -2
- package/dist/client/chunks/{chart-area-D63kG8OT.js.map → chart-area-DDti9Qtp.js.map} +1 -1
- package/dist/client/chunks/{chart-bar-BEfsCLjl.js → chart-bar-B3s9qDlh.js} +2 -2
- package/dist/client/chunks/{chart-bar-BEfsCLjl.js.map → chart-bar-B3s9qDlh.js.map} +1 -1
- package/dist/client/chunks/{chart-data-table-C3Xh9jwL.js → chart-data-table-Qrt6EAno.js} +17 -17
- package/dist/client/chunks/{chart-data-table-C3Xh9jwL.js.map → chart-data-table-Qrt6EAno.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-delta-CYE0S1x_.js → chart-kpi-delta-CgldZ7zO.js} +3 -3
- package/dist/client/chunks/{chart-kpi-delta-CYE0S1x_.js.map → chart-kpi-delta-CgldZ7zO.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-number-BlZ79xHW.js → chart-kpi-number-ByfuX1ki.js} +5 -5
- package/dist/client/chunks/{chart-kpi-number-BlZ79xHW.js.map → chart-kpi-number-ByfuX1ki.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-text-DY1BnxPe.js → chart-kpi-text-DeNuDraJ.js} +2 -2
- package/dist/client/chunks/{chart-kpi-text-DY1BnxPe.js.map → chart-kpi-text-DeNuDraJ.js.map} +1 -1
- package/dist/client/chunks/{chart-line-CBsTThTv.js → chart-line-RdZwtk27.js} +2 -2
- package/dist/client/chunks/{chart-line-CBsTThTv.js.map → chart-line-RdZwtk27.js.map} +1 -1
- package/dist/client/chunks/{chart-markdown-BWaWVkuz.js → chart-markdown-CiGRZdJj.js} +1203 -1139
- package/dist/client/chunks/chart-markdown-CiGRZdJj.js.map +1 -0
- package/dist/client/chunks/{chart-measure-profile-B41qCTBG.js → chart-measure-profile-Ckjw9bX6.js} +2 -2
- package/dist/client/chunks/{chart-measure-profile-B41qCTBG.js.map → chart-measure-profile-Ckjw9bX6.js.map} +1 -1
- package/dist/client/chunks/{chart-pie-Djbu8x2v.js → chart-pie-BvY4FY__.js} +2 -2
- package/dist/client/chunks/{chart-pie-Djbu8x2v.js.map → chart-pie-BvY4FY__.js.map} +1 -1
- package/dist/client/chunks/{chart-radar-BsTcKV0K.js → chart-radar-DjiiEAmc.js} +2 -2
- package/dist/client/chunks/{chart-radar-BsTcKV0K.js.map → chart-radar-DjiiEAmc.js.map} +1 -1
- package/dist/client/chunks/{chart-radial-bar-Du7XNnwE.js → chart-radial-bar-lla_JEYu.js} +2 -2
- package/dist/client/chunks/{chart-radial-bar-Du7XNnwE.js.map → chart-radial-bar-lla_JEYu.js.map} +1 -1
- package/dist/client/chunks/{chart-scatter-D8krEYsA.js → chart-scatter-DwXnI0rr.js} +2 -2
- package/dist/client/chunks/{chart-scatter-D8krEYsA.js.map → chart-scatter-DwXnI0rr.js.map} +1 -1
- package/dist/client/chunks/{chart-tree-map-C5C2iaWM.js → chart-tree-map-DJHoA26f.js} +2 -2
- package/dist/client/chunks/{chart-tree-map-C5C2iaWM.js.map → chart-tree-map-DJHoA26f.js.map} +1 -1
- package/dist/client/chunks/{chart-waterfall-BGdPrJ5Y.js → chart-waterfall-Y7c8csO5.js} +2 -2
- package/dist/client/chunks/{chart-waterfall-BGdPrJ5Y.js.map → chart-waterfall-Y7c8csO5.js.map} +1 -1
- package/dist/client/chunks/{core-DcfMGTVa.js → core-Dk6z6kC0.js} +2 -2
- package/dist/client/chunks/{core-DcfMGTVa.js.map → core-Dk6z6kC0.js.map} +1 -1
- package/dist/client/chunks/{exceljs.min-CcjgM-qg.js → exceljs.min-DaJsLlWM.js} +24 -24
- package/dist/client/chunks/{exceljs.min-CcjgM-qg.js.map → exceljs.min-DaJsLlWM.js.map} +1 -1
- package/dist/client/chunks/{schema-visualization-Xp60Ff2W.js → schema-visualization-DWwJukK7.js} +8 -8
- package/dist/client/chunks/{schema-visualization-Xp60Ff2W.js.map → schema-visualization-DWwJukK7.js.map} +1 -1
- package/dist/client/chunks/{syntaxHighlighting-CnDujqwg.js → syntaxHighlighting-D8J6Yt9j.js} +2 -2
- package/dist/client/chunks/{syntaxHighlighting-CnDujqwg.js.map → syntaxHighlighting-D8J6Yt9j.js.map} +1 -1
- package/dist/client/chunks/{useDebounce-CfmUMFau.js → useDebounce-DyJVREop.js} +2 -2
- package/dist/client/chunks/{useDebounce-CfmUMFau.js.map → useDebounce-DyJVREop.js.map} +1 -1
- package/dist/client/chunks/{useExplainAI-BKGmejIj.js → useExplainAI-CxSkjocM.js} +4 -4
- package/dist/client/chunks/{useExplainAI-BKGmejIj.js.map → useExplainAI-CxSkjocM.js.map} +1 -1
- package/dist/client/chunks/{utils-BldkcRHv.js → utils-BHZdKxua.js} +2 -2
- package/dist/client/chunks/{utils-BldkcRHv.js.map → utils-BHZdKxua.js.map} +1 -1
- package/dist/client/chunks/{vendor-ClXpIiea.js → vendor-CBD_Olr0.js} +8 -8
- package/dist/client/chunks/{vendor-ClXpIiea.js.map → vendor-CBD_Olr0.js.map} +1 -1
- package/dist/client/components.js +3 -3
- package/dist/client/hooks.js +3 -3
- package/dist/client/icons.js +1 -1
- package/dist/client/index.js +11 -11
- package/dist/client/providers.js +1 -1
- package/dist/client/schema.js +1 -1
- package/dist/client/utils.js +5 -5
- package/dist/client-bundle-stats.html +1 -1
- package/dist/mcp-app/mcp-app.html +39 -37
- package/dist/server/index.cjs +42 -42
- package/dist/server/index.js +1009 -971
- package/dist/server/{openai-D9Zjuby1.cjs → openai-BfiZU0rG.cjs} +1 -1
- package/dist/server/openai-BwsBio1K.cjs +16 -0
- package/dist/server/{openai-rwauPzCT.js → openai-CLWSwD-D.js} +1 -1
- package/dist/{adapters/openai-BAnEZgKZ.js → server/openai-zpXlGbbF.js} +824 -720
- package/package.json +2 -2
- package/dist/adapters/locale-DueXjqMh.cjs +0 -198
- package/dist/adapters/mcp-transport-45SiFcCH.cjs +0 -39
- package/dist/adapters/mcp-transport-Bxpc4mRy.js +0 -553
- package/dist/adapters/openai-4JP2B6pB.cjs +0 -16
- package/dist/client/chunks/KpiDelta-Dll_eCV1.js +0 -2
- package/dist/client/chunks/KpiNumber-BPlR92hI.js +0 -2
- package/dist/client/chunks/KpiText-BIxq7Jso.js +0 -2
- package/dist/client/chunks/SchemaVisualization-CCICjhvv.js +0 -2
- package/dist/client/chunks/SchemaVisualizationLazy-DraGsMx6.js +0 -2
- package/dist/client/chunks/chart-markdown-BWaWVkuz.js.map +0 -1
- package/dist/server/openai-DmuEbFd6.cjs +0 -16
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./utils-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./utils-XPOzzMdY.cjs`),t=require(`./mcp-transport-irsahKmD.cjs`);function n(e){return{content:[{type:`text`,text:typeof e==`string`?e:JSON.stringify(e)}],isError:!1}}function r(e){return{content:[{type:`text`,text:e instanceof Error?e.message:String(e)}],isError:!0}}function i(i){let{semanticLayer:o,getSecurityContext:s,toolPrefix:c=`drizzle_cube_`,tools:l=[`discover`,`validate`,`load`,`chart`],prompts:u=t.d(),resources:d,app:f=!1}=i,p=!!f,m=typeof f==`object`?f:void 0,h=d??t.f(),g=p?[...h,...a(m)]:h,_=t.s({appEnabled:p}),v=new Map(_.map(e=>[e.name,e])),y=l.filter(e=>v.has(e)).map(e=>{let t=v.get(e),n={name:`${c}${e}`,description:t.description,inputSchema:t.inputSchema},r=t._meta;return r&&(n._meta=r),n}),b=y.map(e=>e.name),x=new Set;for(let e of l)x.add(e),x.add(`${c}${e}`);function S(e){return x.has(e)}async function C(t,i,a){let u=t.startsWith(c)?t.slice(c.length):t;if(!l.includes(u))return r(`Unknown tool: ${t}`);try{switch(u){case`discover`:return n(await e.d(o,i||{}));case`validate`:{let t=i||{};return t.query?n(await e.h(o,t)):r(`query is required`)}case`load`:{let t=i||{};return t.query?n(await e.p(o,await s(a),t)):r(`query is required`)}case`chart`:{let t=i||{};return t.query?n(await e.p(o,await s(a),t)):r(`query is required`)}default:return r(`Unknown tool: ${t}`)}}catch(e){return r(e)}}return{definitions:y,handle:C,handles:S,prompts:u,resources:g,toolNames:b}}function a(e){let n=t.p(e);return n?[{uri:t.n,name:`Drizzle Cube Visualization`,description:`Interactive chart visualization for query results`,mimeType:t.t,text:n}]:[]}exports.getCubeTools=i;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { SemanticLayerCompiler, SecurityContext } from '../server';
|
|
2
2
|
import { DiscoverRequest, ValidateRequest, LoadRequest } from './utils';
|
|
3
3
|
import { MCPPrompt } from '../server/ai/mcp-prompts';
|
|
4
|
-
import { MCPResource } from './mcp-transport';
|
|
4
|
+
import { MCPResource, McpAppConfig } from './mcp-transport';
|
|
5
5
|
export type { MCPPrompt, MCPResource, DiscoverRequest, ValidateRequest, LoadRequest };
|
|
6
6
|
export type { SecurityContext } from '../server';
|
|
7
7
|
/**
|
|
@@ -55,8 +55,12 @@ export interface GetCubeToolsOptions {
|
|
|
55
55
|
prompts?: MCPPrompt[];
|
|
56
56
|
/** Custom MCP resources (defaults to built-in drizzle-cube resources) */
|
|
57
57
|
resources?: MCPResource[];
|
|
58
|
-
/**
|
|
59
|
-
|
|
58
|
+
/**
|
|
59
|
+
* Enable MCP App visualization for the load tool.
|
|
60
|
+
* Pass `true` to enable with defaults, or a config object to set locale options.
|
|
61
|
+
* @example app: { defaultLocale: 'nl-NL', detectBrowserLocale: false }
|
|
62
|
+
*/
|
|
63
|
+
app?: boolean | McpAppConfig;
|
|
60
64
|
}
|
|
61
65
|
/**
|
|
62
66
|
* The composable tools object returned by getCubeTools()
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { d as e, h as t, p as n } from "./utils-
|
|
2
|
-
import { d as r, f as i, n as a, o,
|
|
1
|
+
import { d as e, h as t, p as n } from "./utils-CTYvfZ3I.js";
|
|
2
|
+
import { d as r, f as i, n as a, p as o, s, t as c } from "./mcp-transport-B0mgxRnJ.js";
|
|
3
3
|
//#region src/adapters/mcp-tools.ts
|
|
4
4
|
function l(e) {
|
|
5
5
|
return {
|
|
@@ -19,41 +19,41 @@ function u(e) {
|
|
|
19
19
|
isError: !0
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
|
-
function d(
|
|
23
|
-
let { semanticLayer:
|
|
22
|
+
function d(a) {
|
|
23
|
+
let { semanticLayer: o, getSecurityContext: c, toolPrefix: d = "drizzle_cube_", tools: p = [
|
|
24
24
|
"discover",
|
|
25
25
|
"validate",
|
|
26
26
|
"load",
|
|
27
27
|
"chart"
|
|
28
|
-
], prompts: m =
|
|
29
|
-
let t =
|
|
28
|
+
], prompts: m = r(), resources: h, app: g = !1 } = a, _ = !!g, v = typeof g == "object" ? g : void 0, y = h ?? i(), b = _ ? [...y, ...f(v)] : y, x = s({ appEnabled: _ }), S = new Map(x.map((e) => [e.name, e])), C = p.filter((e) => S.has(e)).map((e) => {
|
|
29
|
+
let t = S.get(e), n = {
|
|
30
30
|
name: `${d}${e}`,
|
|
31
31
|
description: t.description,
|
|
32
32
|
inputSchema: t.inputSchema
|
|
33
33
|
}, r = t._meta;
|
|
34
34
|
return r && (n._meta = r), n;
|
|
35
|
-
}),
|
|
36
|
-
for (let e of p)
|
|
37
|
-
function
|
|
38
|
-
return
|
|
35
|
+
}), w = C.map((e) => e.name), T = /* @__PURE__ */ new Set();
|
|
36
|
+
for (let e of p) T.add(e), T.add(`${d}${e}`);
|
|
37
|
+
function E(e) {
|
|
38
|
+
return T.has(e);
|
|
39
39
|
}
|
|
40
|
-
async function
|
|
41
|
-
let
|
|
42
|
-
if (!p.includes(
|
|
40
|
+
async function D(r, i, a) {
|
|
41
|
+
let s = r.startsWith(d) ? r.slice(d.length) : r;
|
|
42
|
+
if (!p.includes(s)) return u(`Unknown tool: ${r}`);
|
|
43
43
|
try {
|
|
44
|
-
switch (
|
|
45
|
-
case "discover": return l(await e(
|
|
44
|
+
switch (s) {
|
|
45
|
+
case "discover": return l(await e(o, i || {}));
|
|
46
46
|
case "validate": {
|
|
47
47
|
let e = i || {};
|
|
48
|
-
return e.query ? l(await t(
|
|
48
|
+
return e.query ? l(await t(o, e)) : u("query is required");
|
|
49
49
|
}
|
|
50
50
|
case "load": {
|
|
51
51
|
let e = i || {};
|
|
52
|
-
return e.query ? l(await n(
|
|
52
|
+
return e.query ? l(await n(o, await c(a), e)) : u("query is required");
|
|
53
53
|
}
|
|
54
54
|
case "chart": {
|
|
55
55
|
let e = i || {};
|
|
56
|
-
return e.query ? l(await n(
|
|
56
|
+
return e.query ? l(await n(o, await c(a), e)) : u("query is required");
|
|
57
57
|
}
|
|
58
58
|
default: return u(`Unknown tool: ${r}`);
|
|
59
59
|
}
|
|
@@ -62,22 +62,22 @@ function d(i) {
|
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
64
|
return {
|
|
65
|
-
definitions:
|
|
66
|
-
handle:
|
|
67
|
-
handles:
|
|
65
|
+
definitions: C,
|
|
66
|
+
handle: D,
|
|
67
|
+
handles: E,
|
|
68
68
|
prompts: m,
|
|
69
|
-
resources:
|
|
70
|
-
toolNames:
|
|
69
|
+
resources: b,
|
|
70
|
+
toolNames: w
|
|
71
71
|
};
|
|
72
72
|
}
|
|
73
|
-
function f() {
|
|
74
|
-
let
|
|
75
|
-
return
|
|
73
|
+
function f(e) {
|
|
74
|
+
let t = o(e);
|
|
75
|
+
return t ? [{
|
|
76
76
|
uri: a,
|
|
77
77
|
name: "Drizzle Cube Visualization",
|
|
78
78
|
description: "Interactive chart visualization for query results",
|
|
79
|
-
mimeType:
|
|
80
|
-
text:
|
|
79
|
+
mimeType: c,
|
|
80
|
+
text: t
|
|
81
81
|
}] : [];
|
|
82
82
|
}
|
|
83
83
|
//#endregion
|