drizzle-cube 0.4.5 → 0.4.8

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.
Files changed (140) hide show
  1. package/dist/adapters/express/index.cjs +8 -4
  2. package/dist/adapters/express/index.d.ts +7 -0
  3. package/dist/adapters/express/index.js +189 -139
  4. package/dist/adapters/fastify/index.cjs +8 -4
  5. package/dist/adapters/fastify/index.d.ts +7 -0
  6. package/dist/adapters/fastify/index.js +209 -150
  7. package/dist/adapters/handler-BLcxTuwi.cjs +23 -0
  8. package/dist/adapters/handler-odjn7MIB.js +1880 -0
  9. package/dist/adapters/hono/index.cjs +8 -4
  10. package/dist/adapters/hono/index.d.ts +7 -0
  11. package/dist/adapters/hono/index.js +202 -144
  12. package/dist/adapters/{mcp-transport-YHDZWKOi.js → mcp-transport-CU5g9bxj.js} +7 -3
  13. package/dist/adapters/{mcp-transport-BqLo4hKi.cjs → mcp-transport-KX92EgkF.cjs} +21 -21
  14. package/dist/adapters/nextjs/index.cjs +7 -3
  15. package/dist/adapters/nextjs/index.d.ts +14 -0
  16. package/dist/adapters/nextjs/index.js +220 -144
  17. package/dist/client/charts/chartConfigs.d.ts +2 -9
  18. package/dist/client/charts.js +72 -70
  19. package/dist/client/charts.js.map +1 -1
  20. package/dist/client/chunks/{RetentionCombinedChart.config-C-ILIaEb.js → RetentionCombinedChart.config-Bbp2ghim.js} +2 -1
  21. package/dist/client/chunks/RetentionCombinedChart.config-Bbp2ghim.js.map +1 -0
  22. package/dist/client/chunks/{RetentionHeatmap.config-CIvhc-GT.js → RetentionHeatmap.config-BWf_-vdj.js} +2 -1
  23. package/dist/client/chunks/RetentionHeatmap.config-BWf_-vdj.js.map +1 -0
  24. package/dist/client/chunks/{analysis-builder-CG5VIMYB.js → analysis-builder-Bov_gLsf.js} +1408 -1393
  25. package/dist/client/chunks/analysis-builder-Bov_gLsf.js.map +1 -0
  26. package/dist/client/chunks/{analysis-builder-shared-CjlKJgyA.js → analysis-builder-shared-NBk6y0md.js} +3 -3
  27. package/dist/client/chunks/{analysis-builder-shared-CjlKJgyA.js.map → analysis-builder-shared-NBk6y0md.js.map} +1 -1
  28. package/dist/client/chunks/{chart-activity-grid-DStNr34n.js → chart-activity-grid-CE7xGFQo.js} +2 -2
  29. package/dist/client/chunks/{chart-activity-grid-DStNr34n.js.map → chart-activity-grid-CE7xGFQo.js.map} +1 -1
  30. package/dist/client/chunks/chart-box-plot-Dja4LS3O.js +313 -0
  31. package/dist/client/chunks/chart-box-plot-Dja4LS3O.js.map +1 -0
  32. package/dist/client/chunks/{chart-config-activity-grid-CAlo1cHA.js → chart-config-activity-grid-CmOqDuOT.js} +4 -5
  33. package/dist/client/chunks/chart-config-activity-grid-CmOqDuOT.js.map +1 -0
  34. package/dist/client/chunks/{chart-config-area-CyyJOO2T.js → chart-config-area-CK_GVApT.js} +4 -5
  35. package/dist/client/chunks/chart-config-area-CK_GVApT.js.map +1 -0
  36. package/dist/client/chunks/{chart-config-bar-soxw6m2o.js → chart-config-bar-C8uzktxl.js} +4 -5
  37. package/dist/client/chunks/chart-config-bar-C8uzktxl.js.map +1 -0
  38. package/dist/client/chunks/chart-config-box-plot-D3DA7_pr.js +85 -0
  39. package/dist/client/chunks/chart-config-box-plot-D3DA7_pr.js.map +1 -0
  40. package/dist/client/chunks/{chart-config-bubble-CuSsCHZ4.js → chart-config-bubble-q3DoQX5F.js} +4 -5
  41. package/dist/client/chunks/chart-config-bubble-q3DoQX5F.js.map +1 -0
  42. package/dist/client/chunks/{chart-config-data-table-BhgqwoqT.js → chart-config-data-table-B20Y5JCm.js} +4 -5
  43. package/dist/client/chunks/chart-config-data-table-B20Y5JCm.js.map +1 -0
  44. package/dist/client/chunks/{chart-config-funnel-BlSQYng0.js → chart-config-funnel-3eYnGg8M.js} +4 -5
  45. package/dist/client/chunks/chart-config-funnel-3eYnGg8M.js.map +1 -0
  46. package/dist/client/chunks/{chart-config-heat-map-DHQGFZhX.js → chart-config-heat-map-_wEnTnRA.js} +4 -5
  47. package/dist/client/chunks/chart-config-heat-map-_wEnTnRA.js.map +1 -0
  48. package/dist/client/chunks/{chart-config-kpi-delta-yTA5ug_l.js → chart-config-kpi-delta-DLGZ2A3X.js} +4 -5
  49. package/dist/client/chunks/chart-config-kpi-delta-DLGZ2A3X.js.map +1 -0
  50. package/dist/client/chunks/{chart-config-kpi-number-nVAwDXzq.js → chart-config-kpi-number-K-wzviXF.js} +4 -5
  51. package/dist/client/chunks/chart-config-kpi-number-K-wzviXF.js.map +1 -0
  52. package/dist/client/chunks/{chart-config-kpi-text-DZjqsx-b.js → chart-config-kpi-text-BjYqwqaJ.js} +4 -5
  53. package/dist/client/chunks/chart-config-kpi-text-BjYqwqaJ.js.map +1 -0
  54. package/dist/client/chunks/{chart-config-line-D5ME6w0v.js → chart-config-line-JNagi9tf.js} +4 -5
  55. package/dist/client/chunks/chart-config-line-JNagi9tf.js.map +1 -0
  56. package/dist/client/chunks/{chart-config-markdown-BXKL5TbQ.js → chart-config-markdown-BWQSjJpy.js} +4 -5
  57. package/dist/client/chunks/chart-config-markdown-BWQSjJpy.js.map +1 -0
  58. package/dist/client/chunks/{chart-config-pie-DlHa2jTy.js → chart-config-pie-CNLXb-fr.js} +4 -5
  59. package/dist/client/chunks/chart-config-pie-CNLXb-fr.js.map +1 -0
  60. package/dist/client/chunks/{chart-config-radar-BBAVIF0S.js → chart-config-radar-oxHfRAa3.js} +4 -5
  61. package/dist/client/chunks/chart-config-radar-oxHfRAa3.js.map +1 -0
  62. package/dist/client/chunks/{chart-config-radial-bar-CTwjDRnB.js → chart-config-radial-bar-_Aw3jAEm.js} +4 -5
  63. package/dist/client/chunks/chart-config-radial-bar-_Aw3jAEm.js.map +1 -0
  64. package/dist/client/chunks/{chart-config-sankey-CNAgsMQ4.js → chart-config-sankey-C8FX9hGF.js} +4 -5
  65. package/dist/client/chunks/chart-config-sankey-C8FX9hGF.js.map +1 -0
  66. package/dist/client/chunks/{chart-config-scatter-CWvN2E-X.js → chart-config-scatter-DFKM80eO.js} +4 -5
  67. package/dist/client/chunks/chart-config-scatter-DFKM80eO.js.map +1 -0
  68. package/dist/client/chunks/{chart-config-sunburst-W_SKwaj0.js → chart-config-sunburst-BmC0NLTU.js} +4 -5
  69. package/dist/client/chunks/chart-config-sunburst-BmC0NLTU.js.map +1 -0
  70. package/dist/client/chunks/{chart-config-tree-map-IRAYf9YM.js → chart-config-tree-map-DGMbNTaa.js} +4 -5
  71. package/dist/client/chunks/chart-config-tree-map-DGMbNTaa.js.map +1 -0
  72. package/dist/client/chunks/{chart-data-table-Ch_1c1Zo.js → chart-data-table-Ba_6tuJw.js} +2 -2
  73. package/dist/client/chunks/{chart-data-table-Ch_1c1Zo.js.map → chart-data-table-Ba_6tuJw.js.map} +1 -1
  74. package/dist/client/chunks/{chart-kpi-delta-CWCmi8vL.js → chart-kpi-delta-D9XJoKuA.js} +3 -3
  75. package/dist/client/chunks/{chart-kpi-delta-CWCmi8vL.js.map → chart-kpi-delta-D9XJoKuA.js.map} +1 -1
  76. package/dist/client/chunks/{chart-kpi-number-C-5m3qt5.js → chart-kpi-number-C29Vj2g8.js} +2 -2
  77. package/dist/client/chunks/{chart-kpi-number-C-5m3qt5.js.map → chart-kpi-number-C29Vj2g8.js.map} +1 -1
  78. package/dist/client/chunks/{chart-kpi-text--t4ibPmx.js → chart-kpi-text-CgjjrurK.js} +2 -2
  79. package/dist/client/chunks/{chart-kpi-text--t4ibPmx.js.map → chart-kpi-text-CgjjrurK.js.map} +1 -1
  80. package/dist/client/chunks/chart-markdown-Du4Z2iqK.js +2695 -0
  81. package/dist/client/chunks/chart-markdown-Du4Z2iqK.js.map +1 -0
  82. package/dist/client/chunks/{charts-loader-m5Ussksz.js → charts-loader-HYQFVOo4.js} +14 -13
  83. package/dist/client/chunks/charts-loader-HYQFVOo4.js.map +1 -0
  84. package/dist/client/chunks/{components-D-5p1LVQ.js → components-O0hh7ooo.js} +6 -6
  85. package/dist/client/chunks/components-O0hh7ooo.js.map +1 -0
  86. package/dist/client/chunks/{icons-DRreo6m8.js → icons-DAeqv1iX.js} +7 -7
  87. package/dist/client/chunks/{icons-DRreo6m8.js.map → icons-DAeqv1iX.js.map} +1 -1
  88. package/dist/client/components/AgenticNotebook/AgentChatPanel.d.ts +8 -0
  89. package/dist/client/components/AgenticNotebook/ChatInput.d.ts +14 -0
  90. package/dist/client/components/AgenticNotebook/ChatMessage.d.ts +7 -0
  91. package/dist/client/components/AgenticNotebook/NotebookCanvas.d.ts +3 -0
  92. package/dist/client/components/AgenticNotebook/NotebookMarkdownBlock.d.ts +12 -0
  93. package/dist/client/components/AgenticNotebook/NotebookPortletBlock.d.ts +12 -0
  94. package/dist/client/components/AgenticNotebook/index.d.ts +34 -0
  95. package/dist/client/components/charts/BoxPlotChart.config.d.ts +11 -0
  96. package/dist/client/components/charts/BoxPlotChart.d.ts +4 -0
  97. package/dist/client/components/charts/index.d.ts +1 -0
  98. package/dist/client/components.js +1 -1
  99. package/dist/client/hooks/useAgentChat.d.ts +36 -0
  100. package/dist/client/icons.js +1 -1
  101. package/dist/client/index.d.ts +6 -0
  102. package/dist/client/index.js +923 -187
  103. package/dist/client/index.js.map +1 -1
  104. package/dist/client/stores/notebookStore.d.ts +152 -0
  105. package/dist/client/styles.css +1 -1
  106. package/dist/client/types.d.ts +1 -1
  107. package/dist/client/utils.js +3 -3
  108. package/dist/client-bundle-stats.html +4 -4
  109. package/dist/server/index.cjs +116 -90
  110. package/dist/server/index.d.ts +155 -0
  111. package/dist/server/index.js +7088 -4852
  112. package/package.json +12 -6
  113. package/dist/client/chunks/RetentionCombinedChart.config-C-ILIaEb.js.map +0 -1
  114. package/dist/client/chunks/RetentionHeatmap.config-CIvhc-GT.js.map +0 -1
  115. package/dist/client/chunks/analysis-builder-CG5VIMYB.js.map +0 -1
  116. package/dist/client/chunks/chart-config-activity-grid-CAlo1cHA.js.map +0 -1
  117. package/dist/client/chunks/chart-config-area-CyyJOO2T.js.map +0 -1
  118. package/dist/client/chunks/chart-config-bar-soxw6m2o.js.map +0 -1
  119. package/dist/client/chunks/chart-config-bubble-CuSsCHZ4.js.map +0 -1
  120. package/dist/client/chunks/chart-config-data-table-BhgqwoqT.js.map +0 -1
  121. package/dist/client/chunks/chart-config-funnel-BlSQYng0.js.map +0 -1
  122. package/dist/client/chunks/chart-config-heat-map-DHQGFZhX.js.map +0 -1
  123. package/dist/client/chunks/chart-config-kpi-delta-yTA5ug_l.js.map +0 -1
  124. package/dist/client/chunks/chart-config-kpi-number-nVAwDXzq.js.map +0 -1
  125. package/dist/client/chunks/chart-config-kpi-text-DZjqsx-b.js.map +0 -1
  126. package/dist/client/chunks/chart-config-line-D5ME6w0v.js.map +0 -1
  127. package/dist/client/chunks/chart-config-markdown-BXKL5TbQ.js.map +0 -1
  128. package/dist/client/chunks/chart-config-pie-DlHa2jTy.js.map +0 -1
  129. package/dist/client/chunks/chart-config-radar-BBAVIF0S.js.map +0 -1
  130. package/dist/client/chunks/chart-config-radial-bar-CTwjDRnB.js.map +0 -1
  131. package/dist/client/chunks/chart-config-sankey-CNAgsMQ4.js.map +0 -1
  132. package/dist/client/chunks/chart-config-scatter-CWvN2E-X.js.map +0 -1
  133. package/dist/client/chunks/chart-config-sunburst-W_SKwaj0.js.map +0 -1
  134. package/dist/client/chunks/chart-config-tree-map-IRAYf9YM.js.map +0 -1
  135. package/dist/client/chunks/chart-markdown-Rq6ORisB.js +0 -276
  136. package/dist/client/chunks/chart-markdown-Rq6ORisB.js.map +0 -1
  137. package/dist/client/chunks/chartConfigRegistry-C5dZm-ZK.js +0 -44
  138. package/dist/client/chunks/chartConfigRegistry-C5dZm-ZK.js.map +0 -1
  139. package/dist/client/chunks/charts-loader-m5Ussksz.js.map +0 -1
  140. package/dist/client/chunks/components-D-5p1LVQ.js.map +0 -1
@@ -1,5 +1,8 @@
1
1
  import { AnyColumn } from 'drizzle-orm';
2
2
  import { BetterSQLite3Database } from 'drizzle-orm/better-sqlite3';
3
+ import { ChartAxisConfig } from '../../client/types';
4
+ import { ChartDisplayConfig } from '../../client/types';
5
+ import { ChartType } from '../../client/types';
3
6
  import { MySql2Database } from 'drizzle-orm/mysql2';
4
7
  import { PostgresJsDatabase } from 'drizzle-orm/postgres-js';
5
8
  import { SQL } from 'drizzle-orm';
@@ -7,6 +10,75 @@ import { Subquery } from 'drizzle-orm';
7
10
  import { Table } from 'drizzle-orm';
8
11
  import { View } from 'drizzle-orm';
9
12
 
13
+ /**
14
+ * Request body for the agent chat endpoint
15
+ */
16
+ export declare interface AgentChatRequest {
17
+ /** User message to send to the agent */
18
+ message: string;
19
+ /** Session ID for multi-turn conversations */
20
+ sessionId?: string;
21
+ }
22
+
23
+ /**
24
+ * Agent configuration options (provided in adapter options).
25
+ * Uses `@anthropic-ai/sdk` (the standard Anthropic API client) for direct
26
+ * HTTP API calls — no subprocess spawning, fully edge-runtime compatible.
27
+ */
28
+ export declare interface AgentConfig {
29
+ /** Server-side Anthropic API key */
30
+ apiKey?: string;
31
+ /** Model to use (default: 'claude-sonnet-4-6') */
32
+ model?: string;
33
+ /** Maximum agentic turns per request (default: 25) */
34
+ maxTurns?: number;
35
+ /** Maximum tokens per response (default: 4096) */
36
+ maxTokens?: number;
37
+ /** Allow X-Agent-Api-Key header to override server apiKey */
38
+ allowClientApiKey?: boolean;
39
+ }
40
+
41
+ /**
42
+ * SSE events emitted by the agent handler
43
+ */
44
+ export declare type AgentSSEEvent = {
45
+ type: 'text_delta';
46
+ data: string;
47
+ } | {
48
+ type: 'tool_use_start';
49
+ data: {
50
+ id: string;
51
+ name: string;
52
+ input?: unknown;
53
+ };
54
+ } | {
55
+ type: 'tool_use_result';
56
+ data: {
57
+ id: string;
58
+ name: string;
59
+ result?: unknown;
60
+ };
61
+ } | {
62
+ type: 'add_portlet';
63
+ data: PortletBlockData;
64
+ } | {
65
+ type: 'add_markdown';
66
+ data: MarkdownBlockData;
67
+ } | {
68
+ type: 'turn_complete';
69
+ data: Record<string, never>;
70
+ } | {
71
+ type: 'done';
72
+ data: {
73
+ sessionId: string;
74
+ };
75
+ } | {
76
+ type: 'error';
77
+ data: {
78
+ message: string;
79
+ };
80
+ };
81
+
10
82
  /**
11
83
  * AI-generated analysis of an execution plan
12
84
  */
@@ -92,6 +164,11 @@ export declare interface BaseQueryDefinition {
92
164
  where?: SQL;
93
165
  }
94
166
 
167
+ /**
168
+ * Build the full system prompt for the agent
169
+ */
170
+ export declare function buildAgentSystemPrompt(metadata: CubeMetadata[]): string;
171
+
95
172
  /**
96
173
  * Build the complete EXPLAIN analysis prompt with all context
97
174
  *
@@ -473,6 +550,15 @@ export declare function createPostgresExecutor(db: DrizzleDatabase, schema?: any
473
550
  */
474
551
  export declare function createSQLiteExecutor(db: DrizzleDatabase, schema?: any): SQLiteExecutor;
475
552
 
553
+ /**
554
+ * Create a tool executor map that closes over the semantic layer and security context.
555
+ * Returns a Map<toolName, handler> where each handler takes parsed input and returns a result.
556
+ */
557
+ export declare function createToolExecutor(options: {
558
+ semanticLayer: SemanticLayerCompiler;
559
+ securityContext: SecurityContext;
560
+ }): Map<string, (input: Record<string, unknown>) => Promise<ToolExecutionResult>>;
561
+
476
562
  /**
477
563
  * CTEBuilder handles the construction of Common Table Expressions
478
564
  * for pre-aggregation in hasMany relationship queries.
@@ -2050,6 +2136,29 @@ export declare function getCubeInvalidationPattern(cubeName: string, keyPrefix?:
2050
2136
  */
2051
2137
  export declare function getJoinType(relationship: string, override?: string): string;
2052
2138
 
2139
+ /**
2140
+ * Returns the array of tool definitions for the Anthropic Messages API.
2141
+ * Plain JSON schema — no Zod dependency.
2142
+ */
2143
+ export declare function getToolDefinitions(): ToolDefinition[];
2144
+
2145
+ /**
2146
+ * Handle an agent chat request, yielding SSE events as the agent works.
2147
+ *
2148
+ * Uses the Anthropic Messages API (`@anthropic-ai/sdk`) with `stream: true`
2149
+ * (raw async iterable) for Cloudflare Workers / edge-runtime compatibility.
2150
+ * Implements a manual agentic loop: send messages → stream response → execute
2151
+ * tool calls → append results → repeat until stop_reason !== 'tool_use'.
2152
+ */
2153
+ export declare function handleAgentChat(options: {
2154
+ message: string;
2155
+ sessionId?: string;
2156
+ semanticLayer: SemanticLayerCompiler;
2157
+ securityContext: SecurityContext;
2158
+ agentConfig: AgentConfig;
2159
+ apiKey: string;
2160
+ }): AsyncGenerator<AgentSSEEvent>;
2161
+
2053
2162
  /**
2054
2163
  * Hierarchy definition for grouped drill-down paths
2055
2164
  * Groups dimensions into ordered levels for structured navigation
@@ -2743,6 +2852,15 @@ declare interface LogicalSchema {
2743
2852
  timeDimensions: TimeDimensionRef[];
2744
2853
  }
2745
2854
 
2855
+ /**
2856
+ * Data for an add_markdown tool call
2857
+ */
2858
+ export declare interface MarkdownBlockData {
2859
+ id: string;
2860
+ title?: string;
2861
+ content: string;
2862
+ }
2863
+
2746
2864
  /**
2747
2865
  * Measure definition
2748
2866
  */
@@ -3210,6 +3328,18 @@ export declare interface PlanOptimiser {
3210
3328
  optimise(plan: LogicalNode, context: OptimiserContext): LogicalNode;
3211
3329
  }
3212
3330
 
3331
+ /**
3332
+ * Data for an add_portlet tool call
3333
+ */
3334
+ export declare interface PortletBlockData {
3335
+ id: string;
3336
+ title: string;
3337
+ query: string;
3338
+ chartType: ChartType;
3339
+ chartConfig?: ChartAxisConfig;
3340
+ displayConfig?: ChartDisplayConfig;
3341
+ }
3342
+
3213
3343
  /**
3214
3344
  * Type helpers for specific database types
3215
3345
  */
@@ -4600,6 +4730,31 @@ declare interface TimeDimensionRef {
4600
4730
 
4601
4731
  export declare type TimeGranularity = 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'quarter' | 'year';
4602
4732
 
4733
+ /**
4734
+ * Anthropic API tool definition (JSON schema format)
4735
+ */
4736
+ declare interface ToolDefinition {
4737
+ name: string;
4738
+ description: string;
4739
+ input_schema: {
4740
+ type: 'object';
4741
+ properties: Record<string, unknown>;
4742
+ required?: string[];
4743
+ };
4744
+ }
4745
+
4746
+ /**
4747
+ * Result of executing a tool call
4748
+ */
4749
+ export declare interface ToolExecutionResult {
4750
+ /** String content to return as tool_result */
4751
+ result: string;
4752
+ /** Whether the tool call errored */
4753
+ isError?: boolean;
4754
+ /** Optional SSE event to emit as a side effect (add_portlet, add_markdown) */
4755
+ sideEffect?: AgentSSEEvent;
4756
+ }
4757
+
4603
4758
  /**
4604
4759
  * Window function configuration
4605
4760
  */