drizzle-cube 0.5.6 → 0.5.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 (405) hide show
  1. package/dist/{server/dist-DxegvyZF.cjs → adapters/dist-BOdf-GQO.cjs} +1 -1
  2. package/dist/adapters/express/index.cjs +1 -1
  3. package/dist/adapters/express/index.js +4 -4
  4. package/dist/adapters/fastify/index.cjs +2 -2
  5. package/dist/adapters/fastify/index.js +4 -4
  6. package/dist/{server/google-BXwMolCu.js → adapters/google-CFYljAOF.js} +1 -1
  7. package/dist/adapters/{google-Dgo9-Kb5.cjs → google-DUlXeeDA.cjs} +1 -1
  8. package/dist/adapters/{handler-Odsi9_Rd.js → handler-Cx8QYLk6.js} +20 -6
  9. package/dist/adapters/{handler-C0nUppAK.cjs → handler-CzbCuS6_.cjs} +4 -4
  10. package/dist/adapters/hono/index.cjs +1 -1
  11. package/dist/adapters/hono/index.js +7 -7
  12. package/dist/adapters/{locale-Dy3LcTwN.js → locale-BPB7flIG.js} +16 -1
  13. package/dist/adapters/{locale-Dv6bl_eU.cjs → locale-tIMrNcCr.cjs} +6 -6
  14. package/dist/adapters/mcp-tools.cjs +1 -1
  15. package/dist/adapters/mcp-tools.js +2 -2
  16. package/dist/adapters/mcp-transport-C2QzXm6h.cjs +40 -0
  17. package/dist/adapters/mcp-transport-D0B3S1tB.js +579 -0
  18. package/dist/adapters/nextjs/index.cjs +1 -1
  19. package/dist/adapters/nextjs/index.js +4 -4
  20. package/dist/{server/openai-zpXlGbbF.js → adapters/openai-B5jEiqiB.js} +2139 -948
  21. package/dist/{server/openai-CLWSwD-D.js → adapters/openai-BZdAA7Ji.js} +1 -1
  22. package/dist/adapters/openai-D0musiYP.cjs +17 -0
  23. package/dist/adapters/{openai-BjLV_Wjx.cjs → openai-D_U4V0kT.cjs} +1 -1
  24. package/dist/adapters/{utils-Bd5mzZfk.js → utils-D9JPLmfl.js} +24 -10
  25. package/dist/adapters/{utils-DklqMBHn.cjs → utils-KV37IBIv.cjs} +4 -4
  26. package/dist/adapters/utils.cjs +1 -1
  27. package/dist/adapters/utils.js +1 -1
  28. package/dist/client/charts/ChartLoader.d.ts +1 -1
  29. package/dist/client/charts.js +13 -13
  30. package/dist/client/chunks/DashboardEditModal-CjCIAT-J.js +9682 -0
  31. package/dist/client/chunks/DashboardEditModal-CjCIAT-J.js.map +1 -0
  32. package/dist/client/chunks/{RetentionCombinedChart-CivIny9P.js → RetentionCombinedChart-BPkfcTa8.js} +4 -4
  33. package/dist/client/chunks/{RetentionCombinedChart-CivIny9P.js.map → RetentionCombinedChart-BPkfcTa8.js.map} +1 -1
  34. package/dist/client/chunks/{RetentionHeatmap-BHCgwZmB.js → RetentionHeatmap-DGzLzr7h.js} +3 -3
  35. package/dist/client/chunks/{RetentionHeatmap-BHCgwZmB.js.map → RetentionHeatmap-DGzLzr7h.js.map} +1 -1
  36. package/dist/client/chunks/{af-ZA-BdL6DOWy.js → af-ZA-BTaChuqI.js} +1 -1
  37. package/dist/client/chunks/{af-ZA-BdL6DOWy.js.map → af-ZA-BTaChuqI.js.map} +1 -1
  38. package/dist/client/chunks/{analysis-builder-MoGvbMRe.js → analysis-builder-MuMIzoRq.js} +244 -244
  39. package/dist/client/chunks/{analysis-builder-MoGvbMRe.js.map → analysis-builder-MuMIzoRq.js.map} +1 -1
  40. package/dist/client/chunks/{analysis-builder-shared-DmyRh2O3.js → analysis-builder-shared-CYVwSPqt.js} +289 -289
  41. package/dist/client/chunks/{analysis-builder-shared-DmyRh2O3.js.map → analysis-builder-shared-CYVwSPqt.js.map} +1 -1
  42. package/dist/client/chunks/{chart-activity-grid-Bdb8U_NC.js → chart-activity-grid-DmruKPab.js} +13 -8
  43. package/dist/client/chunks/{chart-activity-grid-Bdb8U_NC.js.map → chart-activity-grid-DmruKPab.js.map} +1 -1
  44. package/dist/client/chunks/{chart-area-BZEnT-tf.js → chart-area-DHCPM4Em.js} +3 -3
  45. package/dist/client/chunks/{chart-area-BZEnT-tf.js.map → chart-area-DHCPM4Em.js.map} +1 -1
  46. package/dist/client/chunks/{chart-bar-CTmdv_v0.js → chart-bar-KddciGDv.js} +4 -4
  47. package/dist/client/chunks/{chart-bar-CTmdv_v0.js.map → chart-bar-KddciGDv.js.map} +1 -1
  48. package/dist/client/chunks/{chart-box-plot-CYObdFtp.js → chart-box-plot-DYKfyOI8.js} +3 -3
  49. package/dist/client/chunks/{chart-box-plot-CYObdFtp.js.map → chart-box-plot-DYKfyOI8.js.map} +1 -1
  50. package/dist/client/chunks/{chart-bubble-CjFprySz.js → chart-bubble-CfqiB538.js} +3 -3
  51. package/dist/client/chunks/{chart-bubble-CjFprySz.js.map → chart-bubble-CfqiB538.js.map} +1 -1
  52. package/dist/client/chunks/{chart-candlestick-D2HoM3B5.js → chart-candlestick-Dwc92Mrj.js} +3 -3
  53. package/dist/client/chunks/{chart-candlestick-D2HoM3B5.js.map → chart-candlestick-Dwc92Mrj.js.map} +1 -1
  54. package/dist/client/chunks/{chart-config-activity-grid-Bom99j9m.js → chart-config-activity-grid-D_UX4NHC.js} +2 -2
  55. package/dist/client/chunks/{chart-config-activity-grid-Bom99j9m.js.map → chart-config-activity-grid-D_UX4NHC.js.map} +1 -1
  56. package/dist/client/chunks/{chart-config-area-DtYTKZxS.js → chart-config-area-Bq_UsW3x.js} +2 -2
  57. package/dist/client/chunks/{chart-config-area-DtYTKZxS.js.map → chart-config-area-Bq_UsW3x.js.map} +1 -1
  58. package/dist/client/chunks/{chart-config-bar-7v5JVY2y.js → chart-config-bar-_JEGZnAu.js} +2 -2
  59. package/dist/client/chunks/{chart-config-bar-7v5JVY2y.js.map → chart-config-bar-_JEGZnAu.js.map} +1 -1
  60. package/dist/client/chunks/{chart-config-box-plot-BHGv-wqu.js → chart-config-box-plot-DJ-dWWXA.js} +2 -2
  61. package/dist/client/chunks/{chart-config-box-plot-BHGv-wqu.js.map → chart-config-box-plot-DJ-dWWXA.js.map} +1 -1
  62. package/dist/client/chunks/{chart-config-bubble-BkHm-mfu.js → chart-config-bubble-gIoqVyjZ.js} +2 -2
  63. package/dist/client/chunks/{chart-config-bubble-BkHm-mfu.js.map → chart-config-bubble-gIoqVyjZ.js.map} +1 -1
  64. package/dist/client/chunks/{chart-config-candlestick-D1aaHvTe.js → chart-config-candlestick-N6DchAA3.js} +2 -2
  65. package/dist/client/chunks/{chart-config-candlestick-D1aaHvTe.js.map → chart-config-candlestick-N6DchAA3.js.map} +1 -1
  66. package/dist/client/chunks/{chart-config-data-table-B_Hw8w2J.js → chart-config-data-table-d7VBY-y_.js} +2 -2
  67. package/dist/client/chunks/{chart-config-data-table-B_Hw8w2J.js.map → chart-config-data-table-d7VBY-y_.js.map} +1 -1
  68. package/dist/client/chunks/{chart-config-funnel-DL8PSGuL.js → chart-config-funnel-DEYMcxsD.js} +2 -2
  69. package/dist/client/chunks/{chart-config-funnel-DL8PSGuL.js.map → chart-config-funnel-DEYMcxsD.js.map} +1 -1
  70. package/dist/client/chunks/{chart-config-gauge-BVLxuA3f.js → chart-config-gauge-DSwC04l0.js} +2 -2
  71. package/dist/client/chunks/{chart-config-gauge-BVLxuA3f.js.map → chart-config-gauge-DSwC04l0.js.map} +1 -1
  72. package/dist/client/chunks/{chart-config-heat-map-CjudGdui.js → chart-config-heat-map-CfRnRNcw.js} +2 -2
  73. package/dist/client/chunks/{chart-config-heat-map-CjudGdui.js.map → chart-config-heat-map-CfRnRNcw.js.map} +1 -1
  74. package/dist/client/chunks/{chart-config-kpi-delta-Bf47hGqD.js → chart-config-kpi-delta-D6BIkHL3.js} +2 -2
  75. package/dist/client/chunks/{chart-config-kpi-delta-Bf47hGqD.js.map → chart-config-kpi-delta-D6BIkHL3.js.map} +1 -1
  76. package/dist/client/chunks/{chart-config-kpi-number-QTQRNgOi.js → chart-config-kpi-number-Bx-V9a62.js} +2 -2
  77. package/dist/client/chunks/{chart-config-kpi-number-QTQRNgOi.js.map → chart-config-kpi-number-Bx-V9a62.js.map} +1 -1
  78. package/dist/client/chunks/{chart-config-kpi-text-BRze2eyh.js → chart-config-kpi-text-CcqC1u-8.js} +2 -2
  79. package/dist/client/chunks/{chart-config-kpi-text-BRze2eyh.js.map → chart-config-kpi-text-CcqC1u-8.js.map} +1 -1
  80. package/dist/client/chunks/{chart-config-line-BFeCqmKH.js → chart-config-line-Db3jDsWc.js} +2 -2
  81. package/dist/client/chunks/{chart-config-line-BFeCqmKH.js.map → chart-config-line-Db3jDsWc.js.map} +1 -1
  82. package/dist/client/chunks/{chart-config-markdown-EWYckwXv.js → chart-config-markdown-BtRIe8JN.js} +2 -2
  83. package/dist/client/chunks/{chart-config-markdown-EWYckwXv.js.map → chart-config-markdown-BtRIe8JN.js.map} +1 -1
  84. package/dist/client/chunks/{chart-config-measure-profile-B9nIhqKR.js → chart-config-measure-profile-DxRGa-zf.js} +2 -2
  85. package/dist/client/chunks/{chart-config-measure-profile-B9nIhqKR.js.map → chart-config-measure-profile-DxRGa-zf.js.map} +1 -1
  86. package/dist/client/chunks/{chart-config-pie-6LHtEyMM.js → chart-config-pie-DD4SmRTF.js} +2 -2
  87. package/dist/client/chunks/{chart-config-pie-6LHtEyMM.js.map → chart-config-pie-DD4SmRTF.js.map} +1 -1
  88. package/dist/client/chunks/{chart-config-radar-BuLS6Inn.js → chart-config-radar-CC2XAaGr.js} +2 -2
  89. package/dist/client/chunks/{chart-config-radar-BuLS6Inn.js.map → chart-config-radar-CC2XAaGr.js.map} +1 -1
  90. package/dist/client/chunks/{chart-config-radial-bar-BP0eMohx.js → chart-config-radial-bar-DmxKx1R0.js} +2 -2
  91. package/dist/client/chunks/{chart-config-radial-bar-BP0eMohx.js.map → chart-config-radial-bar-DmxKx1R0.js.map} +1 -1
  92. package/dist/client/chunks/{chart-config-sankey-CT8oGIGP.js → chart-config-sankey-BTnWA7EW.js} +2 -2
  93. package/dist/client/chunks/{chart-config-sankey-CT8oGIGP.js.map → chart-config-sankey-BTnWA7EW.js.map} +1 -1
  94. package/dist/client/chunks/{chart-config-scatter-DOSpN07Z.js → chart-config-scatter-DSYTjwRb.js} +2 -2
  95. package/dist/client/chunks/{chart-config-scatter-DOSpN07Z.js.map → chart-config-scatter-DSYTjwRb.js.map} +1 -1
  96. package/dist/client/chunks/{chart-config-sunburst-BSUX_YoB.js → chart-config-sunburst-Bwjtdf7X.js} +2 -2
  97. package/dist/client/chunks/{chart-config-sunburst-BSUX_YoB.js.map → chart-config-sunburst-Bwjtdf7X.js.map} +1 -1
  98. package/dist/client/chunks/{chart-config-tree-map-D8GuAgVB.js → chart-config-tree-map-BI-oQStO.js} +2 -2
  99. package/dist/client/chunks/{chart-config-tree-map-D8GuAgVB.js.map → chart-config-tree-map-BI-oQStO.js.map} +1 -1
  100. package/dist/client/chunks/{chart-config-waterfall-BDi7BoJP.js → chart-config-waterfall-DSnyixbI.js} +2 -2
  101. package/dist/client/chunks/{chart-config-waterfall-BDi7BoJP.js.map → chart-config-waterfall-DSnyixbI.js.map} +1 -1
  102. package/dist/client/chunks/{chart-data-table-DT4uBZaq.js → chart-data-table-BO4sXsim.js} +842 -834
  103. package/dist/client/chunks/chart-data-table-BO4sXsim.js.map +1 -0
  104. package/dist/client/chunks/{chart-funnel-B9crR3b3.js → chart-funnel-DnWRsmnS.js} +3 -3
  105. package/dist/client/chunks/{chart-funnel-B9crR3b3.js.map → chart-funnel-DnWRsmnS.js.map} +1 -1
  106. package/dist/client/chunks/{chart-gauge-DAMFsicz.js → chart-gauge-CgMeqeGb.js} +3 -3
  107. package/dist/client/chunks/{chart-gauge-DAMFsicz.js.map → chart-gauge-CgMeqeGb.js.map} +1 -1
  108. package/dist/client/chunks/{chart-heat-map-BxgM_X1G.js → chart-heat-map-DcGm9SWK.js} +3 -3
  109. package/dist/client/chunks/{chart-heat-map-BxgM_X1G.js.map → chart-heat-map-DcGm9SWK.js.map} +1 -1
  110. package/dist/client/chunks/{chart-kpi-delta-DJKL02Ut.js → chart-kpi-delta-C2wKPqCb.js} +6 -6
  111. package/dist/client/chunks/{chart-kpi-delta-DJKL02Ut.js.map → chart-kpi-delta-C2wKPqCb.js.map} +1 -1
  112. package/dist/client/chunks/{chart-kpi-number-CuNEYbRx.js → chart-kpi-number-gWYF44ol.js} +8 -8
  113. package/dist/client/chunks/{chart-kpi-number-CuNEYbRx.js.map → chart-kpi-number-gWYF44ol.js.map} +1 -1
  114. package/dist/client/chunks/{chart-kpi-text-u8FJaZDQ.js → chart-kpi-text-DIYtJtk4.js} +4 -4
  115. package/dist/client/chunks/{chart-kpi-text-u8FJaZDQ.js.map → chart-kpi-text-DIYtJtk4.js.map} +1 -1
  116. package/dist/client/chunks/{chart-line-BZhzOjRl.js → chart-line-9BEGN5Ti.js} +4 -4
  117. package/dist/client/chunks/{chart-line-BZhzOjRl.js.map → chart-line-9BEGN5Ti.js.map} +1 -1
  118. package/dist/client/chunks/chart-markdown-dgUetjyM.js +3654 -0
  119. package/dist/client/chunks/chart-markdown-dgUetjyM.js.map +1 -0
  120. package/dist/client/chunks/{chart-measure-profile-BnpIOS4Q.js → chart-measure-profile-ClfpLs4q.js} +4 -4
  121. package/dist/client/chunks/{chart-measure-profile-BnpIOS4Q.js.map → chart-measure-profile-ClfpLs4q.js.map} +1 -1
  122. package/dist/client/chunks/{chart-pie-CsdzxmSK.js → chart-pie-BjAIhyOi.js} +4 -4
  123. package/dist/client/chunks/{chart-pie-CsdzxmSK.js.map → chart-pie-BjAIhyOi.js.map} +1 -1
  124. package/dist/client/chunks/{chart-radar-C_9RwMKw.js → chart-radar-Dgkcl2bN.js} +4 -4
  125. package/dist/client/chunks/{chart-radar-C_9RwMKw.js.map → chart-radar-Dgkcl2bN.js.map} +1 -1
  126. package/dist/client/chunks/{chart-radial-bar-CewRelyQ.js → chart-radial-bar-DdWJjAhK.js} +4 -4
  127. package/dist/client/chunks/{chart-radial-bar-CewRelyQ.js.map → chart-radial-bar-DdWJjAhK.js.map} +1 -1
  128. package/dist/client/chunks/{chart-sankey-ItraHWH1.js → chart-sankey-M3XpO_ah.js} +3 -3
  129. package/dist/client/chunks/{chart-sankey-ItraHWH1.js.map → chart-sankey-M3XpO_ah.js.map} +1 -1
  130. package/dist/client/chunks/{chart-scatter-k2IJbO2Y.js → chart-scatter-DaHYP_OL.js} +4 -4
  131. package/dist/client/chunks/{chart-scatter-k2IJbO2Y.js.map → chart-scatter-DaHYP_OL.js.map} +1 -1
  132. package/dist/client/chunks/{chart-sunburst-NsFRuqi9.js → chart-sunburst-A_u6lqlS.js} +4 -4
  133. package/dist/client/chunks/{chart-sunburst-NsFRuqi9.js.map → chart-sunburst-A_u6lqlS.js.map} +1 -1
  134. package/dist/client/chunks/{chart-tree-map-Cj_ewpwJ.js → chart-tree-map-uiwUU4nb.js} +4 -4
  135. package/dist/client/chunks/{chart-tree-map-Cj_ewpwJ.js.map → chart-tree-map-uiwUU4nb.js.map} +1 -1
  136. package/dist/client/chunks/{chart-waterfall-C-MTFcOz.js → chart-waterfall-BuhMoagf.js} +4 -4
  137. package/dist/client/chunks/{chart-waterfall-C-MTFcOz.js.map → chart-waterfall-BuhMoagf.js.map} +1 -1
  138. package/dist/client/chunks/{charts-core-vZA3zPKb.js → charts-core-jRtb0S2M.js} +2 -2
  139. package/dist/client/chunks/{charts-core-vZA3zPKb.js.map → charts-core-jRtb0S2M.js.map} +1 -1
  140. package/dist/client/chunks/{core-Su6tIYhp.js → core-D7vPfUIe.js} +84 -84
  141. package/dist/client/chunks/{core-Su6tIYhp.js.map → core-D7vPfUIe.js.map} +1 -1
  142. package/dist/client/chunks/{dist-BTq3NoG3.js → dist-zPWyTBdU.js} +1 -1
  143. package/dist/client/chunks/{dist-BTq3NoG3.js.map → dist-zPWyTBdU.js.map} +1 -1
  144. package/dist/client/chunks/{en-US-D-1JPTPv.js → en-US-BE6VoG0o.js} +1 -1
  145. package/dist/client/chunks/{en-US-D-1JPTPv.js.map → en-US-BE6VoG0o.js.map} +1 -1
  146. package/dist/client/chunks/{exceljs.min-Dc1cBQ5l.js → exceljs.min-CIqBqwTW.js} +2 -2
  147. package/dist/client/chunks/{exceljs.min-Dc1cBQ5l.js.map → exceljs.min-CIqBqwTW.js.map} +1 -1
  148. package/dist/client/chunks/{javascript-YXkoOgWa.js → javascript-DFnKaHmQ.js} +3 -3
  149. package/dist/client/chunks/{javascript-YXkoOgWa.js.map → javascript-DFnKaHmQ.js.map} +1 -1
  150. package/dist/client/chunks/{json-O7MKB_4V.js → json-Cu6rbgWf.js} +1 -1
  151. package/dist/client/chunks/{json-O7MKB_4V.js.map → json-Cu6rbgWf.js.map} +1 -1
  152. package/dist/client/chunks/{nl-NL-BErZMygi.js → nl-NL-CpVs7ox3.js} +7 -2
  153. package/dist/client/chunks/{nl-NL-BErZMygi.js.map → nl-NL-CpVs7ox3.js.map} +1 -1
  154. package/dist/client/chunks/{providers-DX3Vw5kc.js → providers-DwQCKdGW.js} +1 -1
  155. package/dist/client/chunks/{providers-DX3Vw5kc.js.map → providers-DwQCKdGW.js.map} +1 -1
  156. package/dist/client/chunks/{retention-YhT1Oohi.js → retention-ChW9jYdy.js} +1 -1
  157. package/dist/client/chunks/{retention-YhT1Oohi.js.map → retention-ChW9jYdy.js.map} +1 -1
  158. package/dist/client/chunks/{schema-visualization-BY9L2nBQ.js → schema-visualization-DE09kQE3.js} +5 -5
  159. package/dist/client/chunks/{schema-visualization-BY9L2nBQ.js.map → schema-visualization-DE09kQE3.js.map} +1 -1
  160. package/dist/client/chunks/{sql-r2a-9CCK.js → sql-CmVzGP4w.js} +1 -1
  161. package/dist/client/chunks/{sql-r2a-9CCK.js.map → sql-CmVzGP4w.js.map} +1 -1
  162. package/dist/client/chunks/{useDebounce-DGfYXtkm.js → useDirtyStateTracking-CoeQbprt.js} +99 -37
  163. package/dist/client/chunks/useDirtyStateTracking-CoeQbprt.js.map +1 -0
  164. package/dist/client/chunks/{useExplainAI-CD0KuKwY.js → useExplainAI-DlnXWdmz.js} +19 -19
  165. package/dist/client/chunks/{useExplainAI-CD0KuKwY.js.map → useExplainAI-DlnXWdmz.js.map} +1 -1
  166. package/dist/client/chunks/{useNotebookLayout-DKkMenhj.js → useNotebookLayout-Ck3Z3uzg.js} +2 -2
  167. package/dist/client/chunks/{useNotebookLayout-DKkMenhj.js.map → useNotebookLayout-Ck3Z3uzg.js.map} +1 -1
  168. package/dist/client/chunks/{utils-D2SCtAkZ.js → utils-CTKNaXS8.js} +40 -13
  169. package/dist/client/chunks/utils-CTKNaXS8.js.map +1 -0
  170. package/dist/client/chunks/{vendor-CfR5hJGc.js → vendor-CPIYyeuD.js} +102 -97
  171. package/dist/client/chunks/vendor-CPIYyeuD.js.map +1 -0
  172. package/dist/client/components/AnalysisBuilder/AnalysisAIPanel.d.ts +1 -1
  173. package/dist/client/components/AnalysisBuilder/AnalysisAxisDropZone.d.ts +1 -1
  174. package/dist/client/components/AnalysisBuilder/AnalysisChartConfigPanel.d.ts +1 -1
  175. package/dist/client/components/AnalysisBuilder/AnalysisDisplayConfigPanel.d.ts +1 -1
  176. package/dist/client/components/AnalysisBuilder/AnalysisFilterGroup.d.ts +1 -1
  177. package/dist/client/components/AnalysisBuilder/AnalysisFilterItem.d.ts +1 -1
  178. package/dist/client/components/AnalysisBuilder/AnalysisFilterSection.d.ts +1 -1
  179. package/dist/client/components/AnalysisBuilder/AnalysisModeErrorBoundary.d.ts +1 -1
  180. package/dist/client/components/AnalysisBuilder/ExplainAIPanel.d.ts +2 -1
  181. package/dist/client/components/AnalysisBuilder/FieldDetailPanel.d.ts +1 -1
  182. package/dist/client/components/AnalysisBuilder/FieldSearchItem.d.ts +1 -1
  183. package/dist/client/components/AnalysisBuilder/FieldSearchModal.d.ts +1 -1
  184. package/dist/client/components/AnalysisBuilder/FilterConfigModal.d.ts +2 -1
  185. package/dist/client/components/AnalysisBuilder/LimitSection.d.ts +1 -1
  186. package/dist/client/components/AnalysisBuilder/SectionHeading.d.ts +1 -1
  187. package/dist/client/components/AnalyticsDashboard.d.ts +1 -1
  188. package/dist/client/components/AnalyticsPage.d.ts +1 -1
  189. package/dist/client/components/ChartErrorBoundary.d.ts +1 -1
  190. package/dist/client/components/ChartTypeSelector.d.ts +1 -1
  191. package/dist/client/components/ColorPaletteSelector.d.ts +1 -1
  192. package/dist/client/components/DashboardEditModal.d.ts +2 -1
  193. package/dist/client/components/DashboardFilters/DashboardFilterConfigModal.d.ts +1 -1
  194. package/dist/client/components/DashboardFilters/DashboardFilterItem.d.ts +1 -1
  195. package/dist/client/components/DashboardGrid.d.ts +3 -1
  196. package/dist/client/components/DashboardThumbnailPlaceholder.d.ts +1 -1
  197. package/dist/client/components/DataBrowser/DataBrowserSidebar.d.ts +1 -1
  198. package/dist/client/components/DataBrowser/DataBrowserToolbar.d.ts +1 -1
  199. package/dist/client/components/DataBrowser/index.d.ts +1 -1
  200. package/dist/client/components/DataHistogram.d.ts +1 -1
  201. package/dist/client/components/DebugModal.d.ts +1 -1
  202. package/dist/client/components/DrillBreadcrumb.d.ts +2 -1
  203. package/dist/client/components/LoadingIndicator.d.ts +1 -1
  204. package/dist/client/components/MobileStackedLayout.d.ts +1 -1
  205. package/dist/client/components/PortletAnalysisModal.d.ts +1 -1
  206. package/dist/client/components/PortletContainer.d.ts +1 -1
  207. package/dist/client/components/PortletFilterConfigModal.d.ts +6 -4
  208. package/dist/client/components/RowManagedLayout.d.ts +1 -1
  209. package/dist/client/components/ScaledGridWrapper.d.ts +1 -1
  210. package/dist/client/components/SchemaVisualization/CubeNode.d.ts +1 -1
  211. package/dist/client/components/SchemaVisualization/FieldDetailPanel.d.ts +1 -1
  212. package/dist/client/components/SchemaVisualization/RelationshipEdge.d.ts +1 -1
  213. package/dist/client/components/SchemaVisualization/SchemaVisualizationLazy.d.ts +1 -1
  214. package/dist/client/components/SchemaVisualization/index.d.ts +1 -1
  215. package/dist/client/components/TextPortletModal.d.ts +1 -1
  216. package/dist/client/components/charts/AxisFormatControls.d.ts +2 -2
  217. package/dist/client/components/charts/ChartContainer.d.ts +1 -1
  218. package/dist/client/components/charts/ChartLegend.d.ts +1 -1
  219. package/dist/client/components/charts/ChartTooltip.d.ts +1 -1
  220. package/dist/client/components/charts/MissingDependencyFallback.d.ts +1 -1
  221. package/dist/client/components/dashboard/DashboardContext.d.ts +113 -0
  222. package/dist/client/components/dashboard/DashboardCoordinator.d.ts +2 -0
  223. package/dist/client/components/dashboard/DashboardFilterBar.d.ts +8 -0
  224. package/dist/client/components/dashboard/DashboardGridSurface.d.ts +8 -0
  225. package/dist/client/components/dashboard/DashboardModals.d.ts +8 -0
  226. package/dist/client/components/dashboard/DashboardProvider.d.ts +2 -0
  227. package/dist/client/components/dashboard/DashboardToolbar.d.ts +11 -0
  228. package/dist/client/components/dashboard/dashboardGridUtils.d.ts +17 -0
  229. package/dist/client/components/dashboard/index.d.ts +13 -0
  230. package/dist/client/components.d.ts +2 -0
  231. package/dist/client/components.js +3 -4
  232. package/dist/client/hooks/dashboard/useDashboardController.d.ts +2 -2
  233. package/dist/client/hooks/useDashboardHook.d.ts +2 -2
  234. package/dist/client/hooks.js +5 -6
  235. package/dist/client/icons.d.ts +1 -1
  236. package/dist/client/icons.js +2 -2
  237. package/dist/client/index.d.ts +2 -0
  238. package/dist/client/index.js +161 -163
  239. package/dist/client/index.js.map +1 -1
  240. package/dist/client/providers/CubeApiProvider.d.ts +1 -1
  241. package/dist/client/providers/CubeFeaturesProvider.d.ts +1 -1
  242. package/dist/client/providers/CubeMetaProvider.d.ts +1 -1
  243. package/dist/client/providers/CubeProvider.d.ts +1 -1
  244. package/dist/client/providers/I18nProvider.d.ts +1 -1
  245. package/dist/client/providers.js +3 -3
  246. package/dist/client/schema.js +1 -1
  247. package/dist/client/stores/analysisBuilderStore.d.ts +1 -1
  248. package/dist/client/stores/dashboardStore.d.ts +1 -1
  249. package/dist/client/stores/dataBrowserStore.d.ts +1 -1
  250. package/dist/client/stores/notebookStore.d.ts +1 -1
  251. package/dist/client/styles.css +1 -1
  252. package/dist/client/types/drill.d.ts +1 -1
  253. package/dist/client/types.d.ts +7 -2
  254. package/dist/client/utils/drillQueryBuilder.d.ts +2 -2
  255. package/dist/client/utils/filterUtils.d.ts +33 -5
  256. package/dist/client/utils/joinReachability.d.ts +27 -0
  257. package/dist/client/utils.js +6 -7
  258. package/dist/client-bundle-stats.html +1 -1
  259. package/dist/mcp-app/mcp-app.html +78 -52
  260. package/dist/{adapters/dist-Boc63-1q.cjs → server/dist-BOdf-GQO.cjs} +1 -1
  261. package/dist/{adapters/google-CT4kgmBf.js → server/google-CFYljAOF.js} +1 -1
  262. package/dist/server/{google-DzQWXFwF.cjs → google-DUlXeeDA.cjs} +1 -1
  263. package/dist/server/index.cjs +11 -11
  264. package/dist/server/index.d.ts +2 -5050
  265. package/dist/server/index.js +58 -15
  266. package/dist/{adapters/openai-CuUGrKaK.js → server/openai-B5jEiqiB.js} +2139 -948
  267. package/dist/{adapters/openai-DQawCWQb.js → server/openai-BZdAA7Ji.js} +1 -1
  268. package/dist/server/openai-D0musiYP.cjs +17 -0
  269. package/dist/server/{openai-BfiZU0rG.cjs → openai-D_U4V0kT.cjs} +1 -1
  270. package/dist/server/server/adapters/base-adapter.d.ts +287 -0
  271. package/dist/server/server/adapters/databend-adapter.d.ts +114 -0
  272. package/dist/server/server/adapters/duckdb-adapter.d.ts +122 -0
  273. package/dist/server/server/adapters/mysql-adapter.d.ts +122 -0
  274. package/dist/server/server/adapters/postgres-adapter.d.ts +119 -0
  275. package/dist/server/server/adapters/singlestore-adapter.d.ts +4 -0
  276. package/dist/server/server/adapters/snowflake-adapter.d.ts +116 -0
  277. package/dist/server/server/adapters/sqlite-adapter.d.ts +140 -0
  278. package/dist/server/server/agent/chart-validation.d.ts +27 -0
  279. package/dist/server/server/agent/handler.d.ts +25 -0
  280. package/dist/server/server/agent/index.d.ts +11 -0
  281. package/dist/server/server/agent/providers/anthropic.d.ts +24 -0
  282. package/dist/server/server/agent/providers/factory.d.ts +12 -0
  283. package/dist/server/server/agent/providers/google.d.ts +23 -0
  284. package/dist/server/server/agent/providers/index.d.ts +6 -0
  285. package/dist/server/server/agent/providers/openai.d.ts +26 -0
  286. package/dist/server/server/agent/providers/types.d.ts +95 -0
  287. package/dist/server/server/agent/system-prompt.d.ts +5 -0
  288. package/dist/server/server/agent/tools.d.ts +28 -0
  289. package/dist/server/server/agent/types.d.ts +192 -0
  290. package/dist/server/server/ai/discovery.d.ts +62 -0
  291. package/dist/server/server/ai/index.d.ts +10 -0
  292. package/dist/server/server/ai/mcp-prompts.d.ts +83 -0
  293. package/dist/server/server/ai/query-schema.d.ts +258 -0
  294. package/dist/server/server/ai/schemas.d.ts +63 -0
  295. package/dist/server/server/ai/suggestion.d.ts +19 -0
  296. package/dist/server/server/ai/validation.d.ts +34 -0
  297. package/dist/server/server/builders/comparison-query-builder.d.ts +70 -0
  298. package/dist/server/server/builders/cte-builder.d.ts +62 -0
  299. package/dist/server/server/builders/date-time-builder.d.ts +29 -0
  300. package/dist/server/server/builders/filter-builder.d.ts +23 -0
  301. package/dist/server/server/builders/flow-query-builder.d.ts +109 -0
  302. package/dist/server/server/builders/funnel-query-builder.d.ts +134 -0
  303. package/dist/server/server/builders/group-by-builder.d.ts +27 -0
  304. package/dist/server/server/builders/index.d.ts +13 -0
  305. package/dist/server/server/builders/measure-builder.d.ts +142 -0
  306. package/dist/server/server/builders/retention-query-builder.d.ts +100 -0
  307. package/dist/server/server/cache-providers/index.d.ts +5 -0
  308. package/dist/server/server/cache-providers/memory.d.ts +105 -0
  309. package/dist/server/server/cache-utils.d.ts +65 -0
  310. package/dist/server/server/compiler.d.ts +218 -0
  311. package/dist/server/server/cube-utils.d.ts +133 -0
  312. package/dist/server/server/database-utils.d.ts +18 -0
  313. package/dist/server/server/executor.d.ts +183 -0
  314. package/dist/server/server/executors/base-executor.d.ts +16 -0
  315. package/dist/server/server/executors/databend-executor.d.ts +33 -0
  316. package/dist/server/server/executors/duckdb-executor.d.ts +33 -0
  317. package/dist/server/server/executors/index.d.ts +21 -0
  318. package/dist/server/server/executors/mysql-executor.d.ts +27 -0
  319. package/dist/server/server/executors/postgres-executor.d.ts +27 -0
  320. package/dist/server/server/executors/singlestore-executor.d.ts +9 -0
  321. package/dist/server/server/executors/snowflake-executor.d.ts +33 -0
  322. package/dist/server/server/executors/sqlite-executor.d.ts +28 -0
  323. package/dist/server/server/explain/databend-parser.d.ts +16 -0
  324. package/dist/server/server/explain/duckdb-parser.d.ts +28 -0
  325. package/dist/server/server/explain/index.d.ts +9 -0
  326. package/dist/server/server/explain/mysql-parser.d.ts +38 -0
  327. package/dist/server/server/explain/postgres-parser.d.ts +18 -0
  328. package/dist/server/server/explain/snowflake-parser.d.ts +17 -0
  329. package/dist/server/server/explain/sqlite-parser.d.ts +23 -0
  330. package/dist/server/server/filter-cache.d.ts +73 -0
  331. package/dist/server/server/gap-filler.d.ts +42 -0
  332. package/dist/server/server/index.d.ts +36 -0
  333. package/dist/server/server/logical-plan/index.d.ts +14 -0
  334. package/dist/server/server/logical-plan/logical-plan-builder.d.ts +58 -0
  335. package/dist/server/server/logical-plan/logical-planner.d.ts +232 -0
  336. package/dist/server/server/logical-plan/optimiser.d.ts +32 -0
  337. package/dist/server/server/logical-plan/types.d.ts +191 -0
  338. package/dist/server/server/physical-plan/drizzle-plan-builder.d.ts +50 -0
  339. package/dist/server/server/physical-plan/drizzle-sql-builder.d.ts +107 -0
  340. package/dist/server/server/physical-plan/index.d.ts +2 -0
  341. package/dist/server/server/physical-plan/processors/cte-processor.d.ts +6 -0
  342. package/dist/server/server/physical-plan/processors/index.d.ts +6 -0
  343. package/dist/server/server/physical-plan/processors/joins-processor.d.ts +6 -0
  344. package/dist/server/server/physical-plan/processors/predicates-processor.d.ts +6 -0
  345. package/dist/server/server/physical-plan/processors/selection-processor.d.ts +6 -0
  346. package/dist/server/server/physical-plan/processors/shared.d.ts +33 -0
  347. package/dist/server/server/physical-plan/processors/window-processor.d.ts +6 -0
  348. package/dist/server/server/prompts/explain-analysis-prompt.d.ts +47 -0
  349. package/dist/server/server/prompts/index.d.ts +27 -0
  350. package/dist/server/server/prompts/single-step-prompt.d.ts +31 -0
  351. package/dist/server/server/prompts/step0-validation-prompt.d.ts +39 -0
  352. package/dist/server/server/prompts/step1-shape-prompt.d.ts +29 -0
  353. package/dist/server/server/prompts/step2-complete-prompt.d.ts +19 -0
  354. package/dist/server/server/prompts/types.d.ts +37 -0
  355. package/dist/server/server/resolvers/calculated-measure-resolver.d.ts +93 -0
  356. package/dist/server/server/resolvers/index.d.ts +6 -0
  357. package/dist/server/server/resolvers/join-path-resolver.d.ts +152 -0
  358. package/dist/server/server/template-substitution.d.ts +57 -0
  359. package/dist/server/server/types/analysis.d.ts +189 -0
  360. package/dist/server/server/types/cache.d.ts +132 -0
  361. package/dist/server/server/types/core.d.ts +164 -0
  362. package/dist/server/server/types/cube.d.ts +530 -0
  363. package/dist/server/server/types/executor.d.ts +156 -0
  364. package/dist/server/server/types/flow.d.ts +143 -0
  365. package/dist/server/server/types/funnel.d.ts +118 -0
  366. package/dist/server/server/types/index.d.ts +11 -0
  367. package/dist/server/server/types/metadata.d.ts +113 -0
  368. package/dist/server/server/types/query.d.ts +153 -0
  369. package/dist/server/server/types/retention.d.ts +141 -0
  370. package/dist/server/server/types/utils.d.ts +11 -0
  371. package/package.json +6 -6
  372. package/dist/adapters/mcp-transport-BCtjU0lC.cjs +0 -40
  373. package/dist/adapters/mcp-transport-DW_Uks-O.js +0 -579
  374. package/dist/adapters/openai-Bgri5TJc.cjs +0 -16
  375. package/dist/client/chunks/DashboardEditModal-BiJwVv0b.js +0 -6696
  376. package/dist/client/chunks/DashboardEditModal-BiJwVv0b.js.map +0 -1
  377. package/dist/client/chunks/FieldSearchModal-DdcbCwAi.js +0 -2660
  378. package/dist/client/chunks/FieldSearchModal-DdcbCwAi.js.map +0 -1
  379. package/dist/client/chunks/chart-data-table-DT4uBZaq.js.map +0 -1
  380. package/dist/client/chunks/chart-markdown-DEtjn8gx.js +0 -3539
  381. package/dist/client/chunks/chart-markdown-DEtjn8gx.js.map +0 -1
  382. package/dist/client/chunks/syntaxHighlighting-5zHcjn27.js +0 -30
  383. package/dist/client/chunks/syntaxHighlighting-5zHcjn27.js.map +0 -1
  384. package/dist/client/chunks/useDebounce-DGfYXtkm.js.map +0 -1
  385. package/dist/client/chunks/useDirtyStateTracking-KAjwj1Ht.js +0 -66
  386. package/dist/client/chunks/useDirtyStateTracking-KAjwj1Ht.js.map +0 -1
  387. package/dist/client/chunks/utils-D2SCtAkZ.js.map +0 -1
  388. package/dist/client/chunks/vendor-CfR5hJGc.js.map +0 -1
  389. package/dist/server/openai-BwsBio1K.cjs +0 -16
  390. /package/dist/adapters/{express → adapters/express}/index.d.ts +0 -0
  391. /package/dist/adapters/{fastify → adapters/fastify}/index.d.ts +0 -0
  392. /package/dist/adapters/{hono → adapters/hono}/index.d.ts +0 -0
  393. /package/dist/adapters/{locale.d.ts → adapters/locale.d.ts} +0 -0
  394. /package/dist/adapters/{mcp-tools.d.ts → adapters/mcp-tools.d.ts} +0 -0
  395. /package/dist/adapters/{mcp-transport.d.ts → adapters/mcp-transport.d.ts} +0 -0
  396. /package/dist/adapters/{nextjs → adapters/nextjs}/index.d.ts +0 -0
  397. /package/dist/adapters/{types.d.ts → adapters/types.d.ts} +0 -0
  398. /package/dist/adapters/{utils.d.ts → adapters/utils.d.ts} +0 -0
  399. /package/dist/adapters/{anthropic-B_rg0BhK.js → anthropic-CZh4hB-m.js} +0 -0
  400. /package/dist/adapters/{anthropic-BIva8k1r.cjs → anthropic-DG4r1LSm.cjs} +0 -0
  401. /package/dist/adapters/{dist-De5fzUEM.js → dist-CH3hwAUk.js} +0 -0
  402. /package/dist/client/chunks/{rolldown-runtime-CKnJJeip.js → rolldown-runtime-CWhphoD1.js} +0 -0
  403. /package/dist/server/{anthropic-BsNspi1r.js → anthropic-CZh4hB-m.js} +0 -0
  404. /package/dist/server/{anthropic-DsCEX6Fm.cjs → anthropic-DG4r1LSm.cjs} +0 -0
  405. /package/dist/server/{dist-CMWZC51B.js → dist-CH3hwAUk.js} +0 -0
@@ -0,0 +1,119 @@
1
+ import { SQL, AnyColumn } from 'drizzle-orm';
2
+ import { TimeGranularity } from '../types';
3
+ import { BaseDatabaseAdapter, DatabaseCapabilities, WindowFunctionType, WindowFunctionConfig } from './base-adapter';
4
+ export declare class PostgresAdapter extends BaseDatabaseAdapter {
5
+ getEngineType(): 'postgres';
6
+ /**
7
+ * PostgreSQL supports LATERAL joins since version 9.3
8
+ */
9
+ supportsLateralJoins(): boolean;
10
+ /**
11
+ * Build PostgreSQL INTERVAL from ISO 8601 duration
12
+ * PostgreSQL supports INTERVAL literal syntax: INTERVAL '7 days'
13
+ */
14
+ buildIntervalFromISO(duration: string): SQL;
15
+ /**
16
+ * Build PostgreSQL time difference in seconds using EXTRACT(EPOCH FROM ...)
17
+ * Returns (end - start) as seconds
18
+ */
19
+ buildTimeDifferenceSeconds(end: SQL, start: SQL): SQL;
20
+ /**
21
+ * Build PostgreSQL timestamp + interval expression
22
+ */
23
+ buildDateAddInterval(timestamp: SQL, duration: string): SQL;
24
+ /**
25
+ * Build PostgreSQL conditional aggregation using FILTER clause
26
+ * PostgreSQL supports the standard SQL FILTER clause for efficient conditional aggregation
27
+ * Example: AVG(time_diff) FILTER (WHERE step_1_time IS NOT NULL)
28
+ */
29
+ buildConditionalAggregation(aggFn: 'count' | 'avg' | 'min' | 'max' | 'sum', expr: SQL | null, condition: SQL): SQL;
30
+ /**
31
+ * Build PostgreSQL date difference in periods using AGE and EXTRACT
32
+ * For retention analysis period calculations
33
+ */
34
+ buildDateDiffPeriods(startDate: SQL, endDate: SQL, unit: 'day' | 'week' | 'month'): SQL;
35
+ /**
36
+ * Build PostgreSQL period series using generate_series
37
+ * PostgreSQL's generate_series returns a set directly usable as a table
38
+ */
39
+ buildPeriodSeriesSubquery(maxPeriod: number): SQL;
40
+ /**
41
+ * Build PostgreSQL time dimension using DATE_TRUNC function
42
+ * Extracted from executor.ts:649-670 and multi-cube-builder.ts:306-320
43
+ */
44
+ buildTimeDimension(granularity: TimeGranularity, fieldExpr: AnyColumn | SQL): SQL;
45
+ /**
46
+ * Build PostgreSQL string matching conditions using ILIKE (case-insensitive)
47
+ * Extracted from executor.ts:807-813 and multi-cube-builder.ts:468-474
48
+ */
49
+ buildStringCondition(fieldExpr: AnyColumn | SQL, operator: 'contains' | 'notContains' | 'startsWith' | 'endsWith' | 'like' | 'notLike' | 'ilike' | 'regex' | 'notRegex', value: string): SQL;
50
+ /**
51
+ * Build PostgreSQL type casting using :: syntax
52
+ * Extracted from various locations where ::timestamp was used
53
+ */
54
+ castToType(fieldExpr: AnyColumn | SQL, targetType: 'timestamp' | 'decimal' | 'integer'): SQL;
55
+ /**
56
+ * Build PostgreSQL AVG aggregation with COALESCE for NULL handling
57
+ * PostgreSQL AVG returns NULL for empty sets, so we use COALESCE for consistent behavior
58
+ * Extracted from multi-cube-builder.ts:284
59
+ */
60
+ buildAvg(fieldExpr: AnyColumn | SQL): SQL;
61
+ /**
62
+ * Build PostgreSQL CASE WHEN conditional expression
63
+ */
64
+ buildCaseWhen(conditions: Array<{
65
+ when: SQL;
66
+ then: any;
67
+ }>, elseValue?: any): SQL;
68
+ /**
69
+ * Build PostgreSQL boolean literal
70
+ * PostgreSQL uses TRUE/FALSE keywords
71
+ */
72
+ buildBooleanLiteral(value: boolean): SQL;
73
+ /**
74
+ * Convert filter values - PostgreSQL uses native types
75
+ * No conversion needed for PostgreSQL
76
+ */
77
+ convertFilterValue(value: any): any;
78
+ /**
79
+ * Prepare date value for PostgreSQL
80
+ * PostgreSQL accepts Date objects directly
81
+ */
82
+ prepareDateValue(date: Date): any;
83
+ /**
84
+ * PostgreSQL stores timestamps as native timestamp types
85
+ */
86
+ isTimestampInteger(): boolean;
87
+ /**
88
+ * PostgreSQL time dimensions already return proper values
89
+ * No conversion needed
90
+ */
91
+ convertTimeDimensionResult(value: any): any;
92
+ /**
93
+ * PostgreSQL has full support for statistical and window functions
94
+ */
95
+ getCapabilities(): DatabaseCapabilities;
96
+ /**
97
+ * Build PostgreSQL STDDEV aggregation
98
+ * Uses STDDEV_POP for population, STDDEV_SAMP for sample
99
+ */
100
+ buildStddev(fieldExpr: AnyColumn | SQL, useSample?: boolean): SQL;
101
+ /**
102
+ * Build PostgreSQL VARIANCE aggregation
103
+ * Uses VAR_POP for population, VAR_SAMP for sample
104
+ */
105
+ buildVariance(fieldExpr: AnyColumn | SQL, useSample?: boolean): SQL;
106
+ /**
107
+ * Build PostgreSQL PERCENTILE_CONT aggregation
108
+ * Uses ordered-set aggregate function
109
+ */
110
+ buildPercentile(fieldExpr: AnyColumn | SQL, percentile: number): SQL;
111
+ /**
112
+ * Build PostgreSQL window function expression
113
+ * PostgreSQL has full window function support
114
+ */
115
+ buildWindowFunction(type: WindowFunctionType, fieldExpr: AnyColumn | SQL | null, partitionBy?: (AnyColumn | SQL)[], orderBy?: Array<{
116
+ field: AnyColumn | SQL;
117
+ direction: 'asc' | 'desc';
118
+ }>, config?: WindowFunctionConfig): SQL;
119
+ }
@@ -0,0 +1,4 @@
1
+ import { MySQLAdapter } from './mysql-adapter';
2
+ export declare class SingleStoreAdapter extends MySQLAdapter {
3
+ getEngineType(): 'singlestore';
4
+ }
@@ -0,0 +1,116 @@
1
+ import { SQL, AnyColumn } from 'drizzle-orm';
2
+ import { TimeGranularity } from '../types';
3
+ import { BaseDatabaseAdapter, DatabaseCapabilities, WindowFunctionType, WindowFunctionConfig } from './base-adapter';
4
+ export declare class SnowflakeAdapter extends BaseDatabaseAdapter {
5
+ getEngineType(): 'snowflake';
6
+ /**
7
+ * Snowflake supports LATERAL joins
8
+ */
9
+ supportsLateralJoins(): boolean;
10
+ /**
11
+ * Build Snowflake INTERVAL from ISO 8601 duration
12
+ * Snowflake doesn't support INTERVAL literal syntax directly in all contexts,
13
+ * so we chain DATEADD calls. For standalone interval expressions, we return
14
+ * a DATEADD chain applied to TIMESTAMP '1970-01-01' and subtract it back.
15
+ * However, buildIntervalFromISO is typically used with buildDateAddInterval,
16
+ * so we return a structured representation.
17
+ */
18
+ buildIntervalFromISO(duration: string): SQL;
19
+ /**
20
+ * Build Snowflake time difference in seconds
21
+ * Uses DATEDIFF('SECOND', start, end)
22
+ */
23
+ buildTimeDifferenceSeconds(end: SQL, start: SQL): SQL;
24
+ /**
25
+ * Build Snowflake timestamp + interval expression
26
+ * Uses chained DATEADD(unit, amount, timestamp) calls
27
+ */
28
+ buildDateAddInterval(timestamp: SQL, duration: string): SQL;
29
+ /**
30
+ * Build Snowflake conditional aggregation using CASE WHEN
31
+ * Snowflake supports FILTER clause but CASE WHEN is more portable
32
+ */
33
+ buildConditionalAggregation(aggFn: 'count' | 'avg' | 'min' | 'max' | 'sum', expr: SQL | null, condition: SQL): SQL;
34
+ /**
35
+ * Build Snowflake date difference in periods using DATEDIFF
36
+ */
37
+ buildDateDiffPeriods(startDate: SQL, endDate: SQL, unit: 'day' | 'week' | 'month'): SQL;
38
+ /**
39
+ * Build Snowflake period series using TABLE(GENERATOR(ROWCOUNT => n)) + ROW_NUMBER()
40
+ */
41
+ buildPeriodSeriesSubquery(maxPeriod: number): SQL;
42
+ /**
43
+ * Build Snowflake time dimension using DATE_TRUNC function
44
+ * Snowflake supports DATE_TRUNC with quoted granularity like PostgreSQL
45
+ */
46
+ buildTimeDimension(granularity: TimeGranularity, fieldExpr: AnyColumn | SQL): SQL;
47
+ /**
48
+ * Build Snowflake string matching conditions using native ILIKE
49
+ * Snowflake supports ILIKE natively
50
+ */
51
+ buildStringCondition(fieldExpr: AnyColumn | SQL, operator: 'contains' | 'notContains' | 'startsWith' | 'endsWith' | 'like' | 'notLike' | 'ilike' | 'regex' | 'notRegex', value: string): SQL;
52
+ /**
53
+ * Build Snowflake type casting using :: syntax
54
+ * Snowflake supports both :: syntax and CAST() function
55
+ */
56
+ castToType(fieldExpr: AnyColumn | SQL, targetType: 'timestamp' | 'decimal' | 'integer'): SQL;
57
+ /**
58
+ * Build Snowflake AVG aggregation with COALESCE for NULL handling
59
+ */
60
+ buildAvg(fieldExpr: AnyColumn | SQL): SQL;
61
+ /**
62
+ * Build Snowflake CASE WHEN conditional expression
63
+ */
64
+ buildCaseWhen(conditions: Array<{
65
+ when: SQL;
66
+ then: any;
67
+ }>, elseValue?: any): SQL;
68
+ /**
69
+ * Build Snowflake boolean literal
70
+ * Snowflake uses TRUE/FALSE keywords
71
+ */
72
+ buildBooleanLiteral(value: boolean): SQL;
73
+ /**
74
+ * Convert filter values - Snowflake uses native types
75
+ */
76
+ convertFilterValue(value: any): any;
77
+ /**
78
+ * Prepare date value for Snowflake
79
+ * Snowflake accepts Date objects directly
80
+ */
81
+ prepareDateValue(date: Date): any;
82
+ /**
83
+ * Snowflake stores timestamps as native timestamp types
84
+ */
85
+ isTimestampInteger(): boolean;
86
+ /**
87
+ * Snowflake time dimensions already return proper values
88
+ */
89
+ convertTimeDimensionResult(value: any): any;
90
+ /**
91
+ * Snowflake capabilities - full SQL support
92
+ */
93
+ getCapabilities(): DatabaseCapabilities;
94
+ /**
95
+ * Build Snowflake STDDEV aggregation
96
+ */
97
+ buildStddev(fieldExpr: AnyColumn | SQL, useSample?: boolean): SQL;
98
+ /**
99
+ * Build Snowflake VARIANCE aggregation
100
+ * Snowflake supports native VAR_POP/VAR_SAMP
101
+ */
102
+ buildVariance(fieldExpr: AnyColumn | SQL, useSample?: boolean): SQL;
103
+ /**
104
+ * Build Snowflake PERCENTILE_CONT aggregation
105
+ * Uses ordered-set aggregate function
106
+ */
107
+ buildPercentile(fieldExpr: AnyColumn | SQL, percentile: number): SQL;
108
+ /**
109
+ * Build Snowflake window function expression
110
+ * Snowflake has full window function support
111
+ */
112
+ buildWindowFunction(type: WindowFunctionType, fieldExpr: AnyColumn | SQL | null, partitionBy?: (AnyColumn | SQL)[], orderBy?: Array<{
113
+ field: AnyColumn | SQL;
114
+ direction: 'asc' | 'desc';
115
+ }>, config?: WindowFunctionConfig): SQL;
116
+ }
@@ -0,0 +1,140 @@
1
+ import { SQL, AnyColumn } from 'drizzle-orm';
2
+ import { TimeGranularity } from '../types';
3
+ import { BaseDatabaseAdapter, DatabaseCapabilities, WindowFunctionType, WindowFunctionConfig } from './base-adapter';
4
+ export declare class SQLiteAdapter extends BaseDatabaseAdapter {
5
+ getEngineType(): 'sqlite';
6
+ /**
7
+ * SQLite does not support LATERAL joins
8
+ * Flow queries require LATERAL for efficient execution and are not supported on SQLite
9
+ */
10
+ supportsLateralJoins(): boolean;
11
+ /**
12
+ * Build SQLite INTERVAL from ISO 8601 duration
13
+ * SQLite doesn't have native interval types, so we convert to seconds
14
+ * for arithmetic operations on Unix timestamps
15
+ */
16
+ buildIntervalFromISO(duration: string): SQL;
17
+ /**
18
+ * Build SQLite time difference in seconds
19
+ * SQLite timestamps are stored as Unix seconds, so simple subtraction works
20
+ * Returns (end - start) as seconds
21
+ */
22
+ buildTimeDifferenceSeconds(end: SQL, start: SQL): SQL;
23
+ /**
24
+ * Build SQLite timestamp + interval expression
25
+ * Since SQLite stores timestamps as Unix seconds, just add the seconds
26
+ */
27
+ buildDateAddInterval(timestamp: SQL, duration: string): SQL;
28
+ /**
29
+ * Build SQLite conditional aggregation using CASE WHEN
30
+ * SQLite doesn't support FILTER clause, so we use CASE WHEN pattern
31
+ * Example: AVG(CASE WHEN step_1_time IS NOT NULL THEN time_diff END)
32
+ */
33
+ buildConditionalAggregation(aggFn: 'count' | 'avg' | 'min' | 'max' | 'sum', expr: SQL | null, condition: SQL): SQL;
34
+ /**
35
+ * Build SQLite date difference in periods
36
+ * SQLite uses Julian day calculations for date arithmetic
37
+ * Note: SQLite timestamps are stored as Unix seconds
38
+ */
39
+ buildDateDiffPeriods(startDate: SQL, endDate: SQL, unit: 'day' | 'week' | 'month'): SQL;
40
+ /**
41
+ * Build SQLite period series using recursive CTE
42
+ * SQLite 3.8.3+ supports recursive CTEs for generating sequences
43
+ */
44
+ buildPeriodSeriesSubquery(maxPeriod: number): SQL;
45
+ /**
46
+ * Build SQLite time dimension using date/datetime functions with modifiers
47
+ * For integer timestamp columns (milliseconds), first convert to datetime
48
+ * SQLite doesn't have DATE_TRUNC like PostgreSQL, so we use strftime and date modifiers
49
+ * Returns datetime strings for consistency with other databases
50
+ */
51
+ buildTimeDimension(granularity: TimeGranularity, fieldExpr: AnyColumn | SQL): SQL;
52
+ /**
53
+ * Build SQLite string matching conditions using LOWER() + LIKE for case-insensitive matching
54
+ * SQLite LIKE is case-insensitive by default, but LOWER() ensures consistency
55
+ */
56
+ buildStringCondition(fieldExpr: AnyColumn | SQL, operator: 'contains' | 'notContains' | 'startsWith' | 'endsWith' | 'like' | 'notLike' | 'ilike' | 'regex' | 'notRegex', value: string): SQL;
57
+ /**
58
+ * Build SQLite type casting using CAST() function
59
+ * SQLite has dynamic typing but supports CAST for consistency
60
+ */
61
+ castToType(fieldExpr: AnyColumn | SQL, targetType: 'timestamp' | 'decimal' | 'integer'): SQL;
62
+ /**
63
+ * Build SQLite AVG aggregation with IFNULL for NULL handling
64
+ * SQLite AVG returns NULL for empty sets, using IFNULL for consistency
65
+ */
66
+ buildAvg(fieldExpr: AnyColumn | SQL): SQL;
67
+ /**
68
+ * Build SQLite CASE WHEN conditional expression
69
+ */
70
+ buildCaseWhen(conditions: Array<{
71
+ when: SQL;
72
+ then: any;
73
+ }>, elseValue?: any): SQL;
74
+ /**
75
+ * Build SQLite boolean literal
76
+ * SQLite uses 1/0 for true/false
77
+ */
78
+ buildBooleanLiteral(value: boolean): SQL;
79
+ /**
80
+ * Preprocess calculated measure templates for SQLite-specific handling
81
+ *
82
+ * SQLite performs integer division by default (5/2 = 2 instead of 2.5).
83
+ * This method wraps division operands with CAST to REAL to ensure float division.
84
+ *
85
+ * Pattern matched: {measure1} / {measure2} or {measure1} / NULLIF({measure2}, 0)
86
+ * Transforms to: CAST({measure1} AS REAL) / ...
87
+ *
88
+ * @param calculatedSql - Template string with {member} references
89
+ * @returns Preprocessed template with CAST for division operations
90
+ */
91
+ preprocessCalculatedTemplate(calculatedSql: string): string;
92
+ /**
93
+ * Convert filter values to SQLite-compatible types
94
+ * SQLite doesn't support boolean types - convert boolean to integer (1/0)
95
+ * Convert Date objects to milliseconds for integer timestamp columns
96
+ */
97
+ convertFilterValue(value: any): any;
98
+ /**
99
+ * Prepare date value for SQLite integer timestamp storage
100
+ * Convert Date objects to milliseconds (Unix timestamp * 1000)
101
+ */
102
+ prepareDateValue(date: Date): any;
103
+ /**
104
+ * SQLite stores timestamps as integers (milliseconds)
105
+ */
106
+ isTimestampInteger(): boolean;
107
+ /**
108
+ * Convert SQLite time dimension results back to Date objects
109
+ * SQLite time dimensions return datetime strings, but clients expect Date objects
110
+ */
111
+ convertTimeDimensionResult(value: any): any;
112
+ /**
113
+ * SQLite has limited statistical support (no native STDDEV/VARIANCE/PERCENTILE)
114
+ * but supports window functions since SQLite 3.25
115
+ */
116
+ getCapabilities(): DatabaseCapabilities;
117
+ /**
118
+ * SQLite does not have native STDDEV
119
+ * Returns null for graceful degradation
120
+ */
121
+ buildStddev(_fieldExpr: AnyColumn | SQL, _useSample?: boolean): SQL | null;
122
+ /**
123
+ * SQLite does not have native VARIANCE
124
+ * Returns null for graceful degradation
125
+ */
126
+ buildVariance(_fieldExpr: AnyColumn | SQL, _useSample?: boolean): SQL | null;
127
+ /**
128
+ * SQLite does not have native PERCENTILE
129
+ * Returns null for graceful degradation
130
+ */
131
+ buildPercentile(_fieldExpr: AnyColumn | SQL, _percentile: number): SQL | null;
132
+ /**
133
+ * Build SQLite window function expression
134
+ * SQLite 3.25+ supports window functions
135
+ */
136
+ buildWindowFunction(type: WindowFunctionType, fieldExpr: AnyColumn | SQL | null, partitionBy?: (AnyColumn | SQL)[], orderBy?: Array<{
137
+ field: AnyColumn | SQL;
138
+ direction: 'asc' | 'desc';
139
+ }>, config?: WindowFunctionConfig): SQL;
140
+ }
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Chart Config Validation for Agent Tool
3
+ *
4
+ * Validates chartConfig against drop zone requirements defined in the chart config registry.
5
+ * Auto-infers missing fields from the query structure.
6
+ * Builds per-chart-type guidance for the tool description.
7
+ */
8
+ interface ValidationResult {
9
+ isValid: boolean;
10
+ errors: string[];
11
+ }
12
+ /**
13
+ * Validate chartConfig against the chart type's drop zone requirements.
14
+ */
15
+ export declare function validateChartConfig(chartType: string, chartConfig: Record<string, unknown> | undefined, _query: Record<string, unknown>): ValidationResult;
16
+ /**
17
+ * Auto-infer missing chartConfig fields from the query structure.
18
+ * Fills in xAxis, yAxis, series, sizeField, etc. based on query measures/dimensions
19
+ * and the chart type's drop zone acceptTypes.
20
+ */
21
+ export declare function inferChartConfig(chartType: string, chartConfig: Record<string, unknown> | undefined, query: Record<string, unknown>): Record<string, unknown>;
22
+ /**
23
+ * Build per-chart-type requirements text for the agent tool description.
24
+ * Includes description, useCase, and drop zone requirements for each chart type.
25
+ */
26
+ export declare function buildChartRequirementsDescription(allowedChartTypes: string[]): string;
27
+ export {};
@@ -0,0 +1,25 @@
1
+ import { SemanticLayerCompiler } from '../compiler';
2
+ import { SecurityContext } from '../types';
3
+ import { AgentConfig, AgentSSEEvent, AgentHistoryMessage } from './types';
4
+ /**
5
+ * Handle an agent chat request, yielding SSE events as the agent works.
6
+ *
7
+ * Uses the configured LLM provider with streaming for edge-runtime compatibility.
8
+ * Implements a manual agentic loop: send messages → stream response → execute
9
+ * tool calls → append results → repeat until the model stops requesting tools.
10
+ */
11
+ export declare function handleAgentChat(options: {
12
+ message: string;
13
+ sessionId?: string;
14
+ history?: AgentHistoryMessage[];
15
+ semanticLayer: SemanticLayerCompiler;
16
+ securityContext: SecurityContext;
17
+ agentConfig: AgentConfig;
18
+ apiKey: string;
19
+ /** Per-request context appended to the system prompt (e.g. user info, tenant context) */
20
+ systemContext?: string;
21
+ /** Per-request overrides from client headers (take precedence over agentConfig) */
22
+ providerOverride?: string;
23
+ modelOverride?: string;
24
+ baseURLOverride?: string;
25
+ }): AsyncGenerator<AgentSSEEvent>;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Agent Module - Public Exports
3
+ * Agentic AI notebook handler for drizzle-cube
4
+ */
5
+ export { handleAgentChat } from './handler';
6
+ export { getToolDefinitions, createToolExecutor } from './tools';
7
+ export type { ToolExecutionResult } from './tools';
8
+ export { buildAgentSystemPrompt } from './system-prompt';
9
+ export { createProvider } from './providers';
10
+ export type { LLMProvider, ProviderName } from './providers';
11
+ export type { AgentChatRequest, AgentConfig, AgentObservabilityHooks, AgentSSEEvent, AgentHistoryMessage, AgentHistoryToolCall, PortletBlockData, MarkdownBlockData, DashboardSavedData } from './types';
@@ -0,0 +1,24 @@
1
+ import { LLMProvider, ToolDefinition, InternalMessage, ToolResult, NormalizedEvent } from './types';
2
+ export declare class AnthropicProvider implements LLMProvider {
3
+ private client;
4
+ constructor(apiKey: string);
5
+ private apiKey;
6
+ private initialized;
7
+ private ensureClient;
8
+ createStream(params: {
9
+ model: string;
10
+ maxTokens: number;
11
+ system: string;
12
+ tools: ToolDefinition[];
13
+ messages: InternalMessage[];
14
+ }): Promise<AsyncIterable<unknown>>;
15
+ parseStreamEvents(stream: AsyncIterable<unknown>): AsyncGenerator<NormalizedEvent>;
16
+ formatTools(tools: ToolDefinition[]): unknown[];
17
+ formatMessages(messages: InternalMessage[], system: string): {
18
+ messages: unknown[];
19
+ system?: string;
20
+ };
21
+ formatToolResults(results: ToolResult[]): unknown;
22
+ shouldContinue(stopReason: string): boolean;
23
+ formatError(error: unknown): string;
24
+ }
@@ -0,0 +1,12 @@
1
+ import { LLMProvider } from './types';
2
+ export type ProviderName = 'anthropic' | 'openai' | 'google';
3
+ /**
4
+ * Create an LLM provider instance.
5
+ *
6
+ * @param provider - Provider name ('anthropic', 'openai', 'google')
7
+ * @param apiKey - API key for the provider
8
+ * @param options - Optional configuration (e.g. baseURL for OpenAI-compatible services)
9
+ */
10
+ export declare function createProvider(provider: ProviderName, apiKey: string, options?: {
11
+ baseURL?: string;
12
+ }): Promise<LLMProvider>;
@@ -0,0 +1,23 @@
1
+ import { LLMProvider, ToolDefinition, InternalMessage, ToolResult, NormalizedEvent } from './types';
2
+ export declare class GoogleProvider implements LLMProvider {
3
+ private apiKey;
4
+ private sdk;
5
+ private initialized;
6
+ constructor(apiKey: string);
7
+ private ensureSDK;
8
+ createStream(params: {
9
+ model: string;
10
+ maxTokens: number;
11
+ system: string;
12
+ tools: ToolDefinition[];
13
+ messages: InternalMessage[];
14
+ }): Promise<AsyncIterable<unknown>>;
15
+ parseStreamEvents(stream: AsyncIterable<unknown>): AsyncGenerator<NormalizedEvent>;
16
+ formatTools(tools: ToolDefinition[]): unknown[];
17
+ formatMessages(messages: InternalMessage[], _system: string): {
18
+ messages: unknown[];
19
+ };
20
+ formatToolResults(results: ToolResult[]): unknown;
21
+ shouldContinue(stopReason: string): boolean;
22
+ formatError(error: unknown): string;
23
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * LLM Provider exports
3
+ */
4
+ export type { LLMProvider, ToolDefinition, InternalMessage, ContentBlock, ToolResult, NormalizedEvent } from './types';
5
+ export type { ProviderName } from './factory';
6
+ export { createProvider } from './factory';
@@ -0,0 +1,26 @@
1
+ import { LLMProvider, ToolDefinition, InternalMessage, ToolResult, NormalizedEvent } from './types';
2
+ export declare class OpenAIProvider implements LLMProvider {
3
+ private client;
4
+ private apiKey;
5
+ private baseURL?;
6
+ private initialized;
7
+ constructor(apiKey: string, options?: {
8
+ baseURL?: string;
9
+ });
10
+ private ensureClient;
11
+ createStream(params: {
12
+ model: string;
13
+ maxTokens: number;
14
+ system: string;
15
+ tools: ToolDefinition[];
16
+ messages: InternalMessage[];
17
+ }): Promise<AsyncIterable<unknown>>;
18
+ parseStreamEvents(stream: AsyncIterable<unknown>): AsyncGenerator<NormalizedEvent>;
19
+ formatTools(tools: ToolDefinition[]): unknown[];
20
+ formatMessages(messages: InternalMessage[], system: string): {
21
+ messages: unknown[];
22
+ };
23
+ formatToolResults(results: ToolResult[]): unknown[];
24
+ shouldContinue(stopReason: string): boolean;
25
+ formatError(error: unknown): string;
26
+ }
@@ -0,0 +1,95 @@
1
+ /**
2
+ * LLM Provider Abstraction Types
3
+ * Provider-agnostic interfaces for multi-provider LLM support in the agentic notebook.
4
+ */
5
+ /**
6
+ * Generic tool definition (provider-agnostic).
7
+ * Each provider's formatTools() wraps this in its own format.
8
+ */
9
+ export interface ToolDefinition {
10
+ name: string;
11
+ description: string;
12
+ parameters: {
13
+ type: 'object';
14
+ properties: Record<string, unknown>;
15
+ required?: string[];
16
+ };
17
+ }
18
+ /**
19
+ * Provider-agnostic internal message format.
20
+ * The handler uses this for the conversation history; providers convert on the way in/out.
21
+ */
22
+ export interface InternalMessage {
23
+ role: 'user' | 'assistant' | 'tool_result';
24
+ content: string | ContentBlock[];
25
+ }
26
+ export interface ContentBlock {
27
+ type: 'text' | 'tool_use';
28
+ text?: string;
29
+ id?: string;
30
+ name?: string;
31
+ input?: Record<string, unknown>;
32
+ /** Provider-specific metadata (e.g. Gemini thoughtSignature) */
33
+ metadata?: Record<string, unknown>;
34
+ }
35
+ export interface ToolResult {
36
+ toolUseId: string;
37
+ /** Tool name — needed by some providers (e.g. Gemini's functionResponse) */
38
+ toolName?: string;
39
+ content: string;
40
+ isError?: boolean;
41
+ }
42
+ /**
43
+ * Normalized stream events consumed by the handler's agentic loop.
44
+ * Every provider must emit these — the handler never sees raw provider events.
45
+ */
46
+ export type NormalizedEvent = {
47
+ type: 'text_delta';
48
+ text: string;
49
+ } | {
50
+ type: 'tool_use_start';
51
+ id: string;
52
+ name: string;
53
+ metadata?: Record<string, unknown>;
54
+ } | {
55
+ type: 'tool_input_delta';
56
+ json: string;
57
+ } | {
58
+ type: 'tool_use_end';
59
+ id?: string;
60
+ input?: Record<string, unknown>;
61
+ } | {
62
+ type: 'message_meta';
63
+ inputTokens?: number;
64
+ outputTokens?: number;
65
+ stopReason: string;
66
+ };
67
+ /**
68
+ * The core provider interface.
69
+ * Each LLM provider implements these 7 methods to integrate with the agentic loop.
70
+ */
71
+ export interface LLMProvider {
72
+ /** Create a streaming API call and return the raw iterable. */
73
+ createStream(params: {
74
+ model: string;
75
+ maxTokens: number;
76
+ system: string;
77
+ tools: ToolDefinition[];
78
+ messages: InternalMessage[];
79
+ }): Promise<AsyncIterable<unknown>>;
80
+ /** Parse the raw stream into normalized events the handler understands. */
81
+ parseStreamEvents(stream: AsyncIterable<unknown>): AsyncGenerator<NormalizedEvent>;
82
+ /** Convert generic tool definitions to provider-specific format. */
83
+ formatTools(tools: ToolDefinition[]): unknown[];
84
+ /** Convert internal messages + system prompt to provider-specific format. */
85
+ formatMessages(messages: InternalMessage[], system: string): {
86
+ messages: unknown[];
87
+ system?: string;
88
+ };
89
+ /** Convert tool results to provider-specific format for appending as a user message. */
90
+ formatToolResults(results: ToolResult[]): unknown;
91
+ /** Return true if the stop reason means the model wants to continue (tool use). */
92
+ shouldContinue(stopReason: string): boolean;
93
+ /** Format a provider-specific error into a user-friendly message. */
94
+ formatError(error: unknown): string;
95
+ }
@@ -0,0 +1,5 @@
1
+ import { CubeMetadata } from '../types';
2
+ /**
3
+ * Build the full system prompt for the agent
4
+ */
5
+ export declare function buildAgentSystemPrompt(metadata: CubeMetadata[]): string;