@trilogy-data/trilogy-studio-components 0.1.1 → 0.1.2

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 (36) hide show
  1. package/dist/{ChatCreatorModal-DRiWsXTa.js → ChatCreatorModal-DEIQqlH5.js} +1 -1
  2. package/dist/{Dashboard-FrQXncwr.js → Dashboard-COEl1k7Y.js} +3 -3
  3. package/dist/{DashboardCreatorInline-BWPueAsC.js → DashboardCreatorInline-D7CZh6BG.js} +1 -1
  4. package/dist/{DashboardMobile-CrdSxf_b.js → DashboardMobile-_bZjOVC8.js} +3 -3
  5. package/dist/{LLMConnectionList-Bi_k_QnZ.js → LLMConnectionList-DZvKkpQE.js} +1 -1
  6. package/dist/{LLMView-Cd0xUG9K.js → LLMView-DgFsUcqM.js} +1 -1
  7. package/dist/Manager-CbzY5giU.js +4 -0
  8. package/dist/{ResultComponent-DCc6jQZ8.js → ResultComponent-Dp63EUZN.js} +1 -1
  9. package/dist/{Sidebar-Bsh1hBHw.js → Sidebar-BMFjTHUe.js} +3 -3
  10. package/dist/{TutorialPage-xAEiXplm.js → TutorialPage-epP01l2F.js} +4 -4
  11. package/dist/{WelcomePage-DwDN7wi8.js → WelcomePage-CHjPSGJ_.js} +1 -1
  12. package/dist/{cssMode-C0Z7SxAo.js → cssMode-vs4Bla_T.js} +1 -1
  13. package/dist/{freemarker2-sj87rhhC.js → freemarker2-CLA7F-Ej.js} +1 -1
  14. package/dist/{handlebars-BwQH2pI9.js → handlebars-B0vRliRe.js} +1 -1
  15. package/dist/{html-CMSP8uvN.js → html-EGGGp83W.js} +1 -1
  16. package/dist/{htmlMode-gjbGipi0.js → htmlMode-DTwdBKSj.js} +1 -1
  17. package/dist/{javascript-B-sxKV8D.js → javascript-r3XwW1JQ.js} +1 -1
  18. package/dist/{jsonMode-PqleooUl.js → jsonMode-BDjjqtDz.js} +1 -1
  19. package/dist/{liquid-sr0Xhq4p.js → liquid-jNJYEqqA.js} +1 -1
  20. package/dist/llm/chatAgentPrompt.d.ts +12 -0
  21. package/dist/llm/chatAgentPrompt.d.ts.map +1 -1
  22. package/dist/llm/data/constants.d.ts +1 -1
  23. package/dist/llm/data/constants.d.ts.map +1 -1
  24. package/dist/{main-CH8RRJ81.js → main-BWpUmrP_.js} +56 -32
  25. package/dist/main.js +1 -1
  26. package/dist/main.umd.cjs +6 -4
  27. package/dist/{mdx-CBgOlXzI.js → mdx-BIzsK1om.js} +1 -1
  28. package/dist/{python-D3q4ZmgV.js → python-D4HwobRf.js} +1 -1
  29. package/dist/{razor-Bj0eJO1J.js → razor-C5i_D5W4.js} +1 -1
  30. package/dist/{tsMode-ChlNE32b.js → tsMode-CbiwrPvK.js} +1 -1
  31. package/dist/{typescript-SL61Fuvv.js → typescript-V_YGjV-S.js} +1 -1
  32. package/dist/{useDashboard-DX8XhUDo.js → useDashboard-BheieH9x.js} +1 -1
  33. package/dist/{xml-W8dpjYyI.js → xml-BUNQI2ek.js} +1 -1
  34. package/dist/{yaml-BAWn9f4V.js → yaml-5tRm_vln.js} +1 -1
  35. package/package.json +1 -1
  36. package/dist/Manager-C0e_Cv_E.js +0 -4
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as B, inject as L, ref as S, watch as b, computed as c, resolveComponent as U, createElementBlock as d, createCommentVNode as m, openBlock as l, createElementVNode as a, withModifiers as j, createTextVNode as O, withDirectives as h, createBlock as D, Fragment as M, renderList as N, toDisplayString as C, vModelSelect as k, normalizeClass as R, vModelText as E } from "vue";
2
- import { h as I, K, a as T } from "./main-CH8RRJ81.js";
2
+ import { h as I, K, a as T } from "./main-BWpUmrP_.js";
3
3
  const z = B({
4
4
  name: "ChatCreatorModal",
5
5
  components: {
@@ -1,7 +1,7 @@
1
1
  import { defineComponent as sn, ref as k, provide as Bo, onBeforeUnmount as Vn, onBeforeMount as Lo, onMounted as Kn, nextTick as yt, watch as G, createElementBlock as Pt, openBlock as vt, normalizeStyle as Te, renderSlot as Qn, withDirectives as Ho, createVNode as Bt, vShow as Wo, inject as jo, computed as Lt, useSlots as $o, normalizeClass as yn, createCommentVNode as Ye, getCurrentInstance as Uo, createBlock as xe, unref as _, createElementVNode as He, withCtx as bn, Fragment as xn, renderList as Xo, Teleport as wn, toDisplayString as qo } from "vue";
2
- import { u as Yo, D as Go, _ as Vo, a as Ko, b as Qo, C as Jo, M as Zo } from "./useDashboard-DX8XhUDo.js";
3
- import { D as ti } from "./DashboardCreatorInline-BWPueAsC.js";
4
- import { r as ei, a as ni } from "./main-CH8RRJ81.js";
2
+ import { u as Yo, D as Go, _ as Vo, a as Ko, b as Qo, C as Jo, M as Zo } from "./useDashboard-BheieH9x.js";
3
+ import { D as ti } from "./DashboardCreatorInline-D7CZh6BG.js";
4
+ import { r as ei, a as ni } from "./main-BWpUmrP_.js";
5
5
  var oi = Object.defineProperty, ii = (e, t, n) => t in e ? oi(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n, f = (e, t, n) => (ii(e, typeof t != "symbol" ? t + "" : t, n), n);
6
6
  function ri(e) {
7
7
  let t = 0, n;
@@ -1,5 +1,5 @@
1
1
  import { inject as m, ref as p, computed as D, createElementBlock as l, createCommentVNode as C, openBlock as i, createElementVNode as r, withDirectives as y, withKeys as E, vModelText as _, Fragment as k, renderList as I, toDisplayString as N, vModelSelect as P } from "vue";
2
- import { a as V } from "./main-CH8RRJ81.js";
2
+ import { a as V } from "./main-BWpUmrP_.js";
3
3
  const F = {
4
4
  name: "DashboardCreatorInline",
5
5
  props: {
@@ -1,7 +1,7 @@
1
1
  import { defineComponent as he, computed as pe, createElementBlock as u, openBlock as d, createVNode as h, createCommentVNode as I, createBlock as R, unref as e, Fragment as k, renderList as be, normalizeStyle as fe, createElementVNode as r, Teleport as x, toDisplayString as ge, createTextVNode as A, nextTick as ve } from "vue";
2
- import { u as Ce, D as ye, _ as Ie, a as ke, b as we, C as Te, M as Me } from "./useDashboard-DX8XhUDo.js";
3
- import { D as De } from "./DashboardCreatorInline-BWPueAsC.js";
4
- import { r as Ee, J as g, a as Se } from "./main-CH8RRJ81.js";
2
+ import { u as Ce, D as ye, _ as Ie, a as ke, b as we, C as Te, M as Me } from "./useDashboard-BheieH9x.js";
3
+ import { D as De } from "./DashboardCreatorInline-D7CZh6BG.js";
4
+ import { r as Ee, J as g, a as Se } from "./main-BWpUmrP_.js";
5
5
  const Fe = {
6
6
  key: 0,
7
7
  class: "dashboard-mobile-container"
@@ -2,7 +2,7 @@ var _e = Object.defineProperty;
2
2
  var Ne = (t, e, o) => e in t ? _e(t, e, { enumerable: !0, configurable: !0, writable: !0, value: o }) : t[e] = o;
3
3
  var ne = (t, e, o) => Ne(t, typeof e != "symbol" ? e + "" : e, o);
4
4
  import { defineComponent as ae, ref as C, inject as Y, createElementBlock as l, createCommentVNode as I, openBlock as r, createElementVNode as s, withModifiers as A, withDirectives as _, vModelText as G, vModelSelect as ve, vModelCheckbox as Ie, Fragment as pe, computed as $, createBlock as z, withCtx as q, unref as qe, normalizeClass as me, toDisplayString as j, createTextVNode as de, renderList as fe, resolveComponent as U, createVNode as x, Transition as be, onMounted as Ae, onUnmounted as Ue, normalizeStyle as Oe, watch as ke, vModelDynamic as xe } from "vue";
5
- import { K as N, a as X, T as Ee, L as Se, l as Be, m as Ye, n as Fe, o as Pe, S as Re, h as Me, e as Le, A as Ge, O as je, p as Ke, G as Qe, g as Ve } from "./main-CH8RRJ81.js";
5
+ import { K as N, a as X, T as Ee, L as Se, l as Be, m as Ye, n as Fe, o as Pe, S as Re, h as Me, e as Le, A as Ge, O as je, p as Ke, G as Qe, g as Ve } from "./main-BWpUmrP_.js";
6
6
  function He(t, e, o, i) {
7
7
  const c = [];
8
8
  return Object.values(t).sort((a, d) => a.connected && !d.connected ? -1 : !a.connected && d.connected ? 1 : a.name.localeCompare(d.name)).forEach((a) => {
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as q, inject as R, ref as y, computed as D, watch as M, nextTick as X, onMounted as Z, createElementBlock as u, openBlock as d, createElementVNode as a, createCommentVNode as b, createTextVNode as N, withDirectives as B, Fragment as U, renderList as V, toDisplayString as h, vModelSelect as x, normalizeClass as T, withKeys as ee, withModifiers as te, vModelText as ne, resolveComponent as O, createBlock as j, createVNode as se, withCtx as G } from "vue";
2
- import { y as A, z as oe, a as Q, B as ae, F as ie, I as re } from "./main-CH8RRJ81.js";
2
+ import { y as A, z as oe, a as Q, B as ae, F as ie, I as re } from "./main-BWpUmrP_.js";
3
3
  const P = [
4
4
  { name: "id", type: "int" },
5
5
  { name: "quantity", type: "float" },
@@ -0,0 +1,4 @@
1
+ import { _ as f } from "./main-BWpUmrP_.js";
2
+ export {
3
+ f as default
4
+ };
@@ -1,4 +1,4 @@
1
- import { a as g, v as D, H as v, R as y, L as k, w as _, x as w } from "./main-CH8RRJ81.js";
1
+ import { a as g, v as D, H as v, R as y, L as k, w as _, x as w } from "./main-BWpUmrP_.js";
2
2
  import { resolveComponent as d, createElementBlock as s, openBlock as i, createElementVNode as a, createCommentVNode as L, Fragment as h, renderList as p, normalizeClass as F, createVNode as R, toDisplayString as I, withDirectives as M, vModelText as E, inject as H, createBlock as l } from "vue";
3
3
  const S = {
4
4
  class: "chat-refinement-container",
@@ -1,7 +1,7 @@
1
1
  import { inject as A, ref as g, onMounted as x, computed as G, resolveComponent as D, createBlock as L, openBlock as r, withCtx as k, createElementBlock as y, Fragment as V, renderList as J, createElementVNode as o, createCommentVNode as S, createVNode as N, normalizeClass as U, toDisplayString as K, createTextVNode as H, defineComponent as X, withDirectives as T, vModelText as P, unref as ie, vModelSelect as te, withModifiers as B, watch as le, normalizeStyle as de, vShow as W } from "vue";
2
- import { S as Y, e as Z, g as q, K as E, a as F, T as Q, L as oe, f as re, u as ne, t as ce, D as ue, h as se, i as ae, j as me, d as ve, k as pe } from "./main-CH8RRJ81.js";
3
- import { d as ee, a as be, L as ye, C as he } from "./LLMConnectionList-Bi_k_QnZ.js";
4
- import { D as fe } from "./DashboardCreatorInline-BWPueAsC.js";
2
+ import { S as Y, e as Z, g as q, K as E, a as F, T as Q, L as oe, f as re, u as ne, t as ce, D as ue, h as se, i as ae, j as me, d as ve, k as pe } from "./main-BWpUmrP_.js";
3
+ import { d as ee, a as be, L as ye, C as he } from "./LLMConnectionList-DZvKkpQE.js";
4
+ import { D as fe } from "./DashboardCreatorInline-D7CZh6BG.js";
5
5
  const ge = {
6
6
  name: "DocumentationSidebar",
7
7
  props: {
@@ -1,8 +1,8 @@
1
1
  import { defineComponent as Q, ref as E, computed as R, createElementBlock as r, openBlock as i, createElementVNode as n, createCommentVNode as S, toDisplayString as a, Fragment as D, renderList as H, normalizeClass as g, renderSlot as W, inject as f, watch as K, resolveComponent as l, createTextVNode as x, createVNode as C, createBlock as h, withCtx as N } from "vue";
2
- import { a as T, C as q, E as F, M as z, b as J, c as X, d as Y, L as Z, s as $, K as V } from "./main-CH8RRJ81.js";
3
- import { L as tt, C as et, d as A } from "./LLMConnectionList-Bi_k_QnZ.js";
4
- import B from "./ResultComponent-DCc6jQZ8.js";
5
- import ot from "./Dashboard-FrQXncwr.js";
2
+ import { a as T, C as q, E as F, M as z, b as J, c as X, d as Y, L as Z, s as $, K as V } from "./main-BWpUmrP_.js";
3
+ import { L as tt, C as et, d as A } from "./LLMConnectionList-DZvKkpQE.js";
4
+ import B from "./ResultComponent-Dp63EUZN.js";
5
+ import ot from "./Dashboard-COEl1k7Y.js";
6
6
  const nt = Q({
7
7
  name: "FunctionDoc",
8
8
  props: {
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as k, inject as g, ref as m, computed as f, createElementBlock as o, openBlock as n, createElementVNode as t, unref as _, Fragment as v, createCommentVNode as c, createTextVNode as l, createVNode as C } from "vue";
2
- import { k as x, q as T, a as W } from "./main-CH8RRJ81.js";
2
+ import { k as x, q as T, a as W } from "./main-BWpUmrP_.js";
3
3
  const E = { class: "container" }, N = { class: "content" }, S = { class: "logo" }, V = ["src"], $ = { key: 1 }, D = { class: "buttons" }, I = { key: 0 }, L = { key: 1 }, j = { key: 1 }, q = /* @__PURE__ */ k({
4
4
  __name: "WelcomePage",
5
5
  emits: [
@@ -1,4 +1,4 @@
1
- import { a8 as et } from "./main-CH8RRJ81.js";
1
+ import { a8 as et } from "./main-BWpUmrP_.js";
2
2
  /*!-----------------------------------------------------------------------------
3
3
  * Copyright (c) Microsoft Corporation. All rights reserved.
4
4
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
@@ -1,4 +1,4 @@
1
- import { a8 as f } from "./main-CH8RRJ81.js";
1
+ import { a8 as f } from "./main-BWpUmrP_.js";
2
2
  /*!-----------------------------------------------------------------------------
3
3
  * Copyright (c) Microsoft Corporation. All rights reserved.
4
4
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
@@ -1,4 +1,4 @@
1
- import { a8 as l } from "./main-CH8RRJ81.js";
1
+ import { a8 as l } from "./main-BWpUmrP_.js";
2
2
  /*!-----------------------------------------------------------------------------
3
3
  * Copyright (c) Microsoft Corporation. All rights reserved.
4
4
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
@@ -1,4 +1,4 @@
1
- import { a8 as s } from "./main-CH8RRJ81.js";
1
+ import { a8 as s } from "./main-BWpUmrP_.js";
2
2
  /*!-----------------------------------------------------------------------------
3
3
  * Copyright (c) Microsoft Corporation. All rights reserved.
4
4
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
@@ -1,4 +1,4 @@
1
- import { a8 as lt } from "./main-CH8RRJ81.js";
1
+ import { a8 as lt } from "./main-BWpUmrP_.js";
2
2
  /*!-----------------------------------------------------------------------------
3
3
  * Copyright (c) Microsoft Corporation. All rights reserved.
4
4
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
@@ -1,4 +1,4 @@
1
- import { conf as t, language as e } from "./typescript-SL61Fuvv.js";
1
+ import { conf as t, language as e } from "./typescript-V_YGjV-S.js";
2
2
  /*!-----------------------------------------------------------------------------
3
3
  * Copyright (c) Microsoft Corporation. All rights reserved.
4
4
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
@@ -1,4 +1,4 @@
1
- import { a8 as Et } from "./main-CH8RRJ81.js";
1
+ import { a8 as Et } from "./main-BWpUmrP_.js";
2
2
  /*!-----------------------------------------------------------------------------
3
3
  * Copyright (c) Microsoft Corporation. All rights reserved.
4
4
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
@@ -1,4 +1,4 @@
1
- import { a8 as l } from "./main-CH8RRJ81.js";
1
+ import { a8 as l } from "./main-BWpUmrP_.js";
2
2
  /*!-----------------------------------------------------------------------------
3
3
  * Copyright (c) Microsoft Corporation. All rights reserved.
4
4
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
@@ -70,10 +70,18 @@ export declare const CHAT_TOOLS: ({
70
70
  type: string;
71
71
  description: string;
72
72
  };
73
+ trellisRowField: {
74
+ type: string;
75
+ description: string;
76
+ };
73
77
  geoField: {
74
78
  type: string;
75
79
  description: string;
76
80
  };
81
+ annotationField: {
82
+ type: string;
83
+ description: string;
84
+ };
77
85
  hideLegend: {
78
86
  type: string;
79
87
  description: string;
@@ -92,6 +100,10 @@ export declare const CHAT_TOOLS: ({
92
100
  enum: string[];
93
101
  description: string;
94
102
  };
103
+ linkY2: {
104
+ type: string;
105
+ description: string;
106
+ };
95
107
  };
96
108
  };
97
109
  import_name?: undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"chatAgentPrompt.d.ts","sourceRoot":"","sources":["../../llm/chatAgentPrompt.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAEtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAa/C,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+JtB,CAAA;AAED,MAAM,WAAW,sBAAsB;IACrC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,oBAAoB,EAAE,MAAM,EAAE,CAAA;IAC9B,iBAAiB,CAAC,EAAE,iBAAiB,EAAE,CAAA;IACvC,aAAa,CAAC,EAAE,UAAU,EAAE,CAAA;IAC5B,6BAA6B,CAAC,EAAE,UAAU,EAAE,CAAA;IAC5C,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACjC;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM,CA+DlF;AAGD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAC3B;AAID,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,EAAE,CA8CjE;AAGD,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACnE,MAAM,CAMR"}
1
+ {"version":3,"file":"chatAgentPrompt.d.ts","sourceRoot":"","sources":["../../llm/chatAgentPrompt.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAEtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAuB/C,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2KtB,CAAA;AAED,MAAM,WAAW,sBAAsB;IACrC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,oBAAoB,EAAE,MAAM,EAAE,CAAA;IAC9B,iBAAiB,CAAC,EAAE,iBAAiB,EAAE,CAAA;IACvC,aAAa,CAAC,EAAE,UAAU,EAAE,CAAA;IAC5B,6BAA6B,CAAC,EAAE,UAAU,EAAE,CAAA;IAC5C,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACjC;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM,CA+DlF;AAGD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAC3B;AAID,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,EAAE,CA8CjE;AAGD,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACnE,MAAM,CAMR"}
@@ -1,4 +1,4 @@
1
- export declare const rulesInput = "\nTrilogy statements define a semantic model or query. If a user is asking for data, they want a SELECT.\nSemantic model statements:\n- import <> imports a model to reuse. The output of imports will be visible in fields available to use.\n- key|property|auto|metric defines fields locally. The output will also be visible in fields available to use, so you generally don't need to edit these unless requested.\n- datasource statements define a datasource, which is a mapping of fields to a SQL database table. The left side is the SQL column name, the right side is the field name.\n\nSELECT RULES:\n- No FROM, JOIN, GROUP BY, SUB SELECTS, DISTINCT, UNION, or SELECT *.\n- All fields exist in a global namespace; field paths look like `order.product.id`. Always use the full path. NEVER include a from clause.\n- If a field has a grain defined, and that grain is not in the query output, aggregate it to get desired result. \n- If a field has a 'alias_for' defined, it is shorthand for that calculation. Use the field name instead of the calculation in your query to be concise. \n- Newly created fields at the output of the select must be aliased with as (e.g. `sum(births) as all_births`). \n- Aliases cannot happen inside calculations or in the where/having/order clause. Never alias fields with existing names. 'sum(revenue) as total_revenue' is valid, but '(sum(births) as total_revenue) +1 as revenue_plus_one' is not.\n- Implicit grouping: NEVER include a group by clause. Grouping is by non-aggregated fields in the SELECT clause.\n- You can dynamically group inline to get groups at different grains - ex: `sum(metric) by dim1, dim2 as sum_by_dim1_dm2` for alternate grouping. If you are grouping a defined aggregate\n- Count must specify a field (no `count(*)`) Counts are automatically deduplicated. Do not ever use DISTINCT.\n- Since there are no underlying tables, sum/count of a constant should always specify a grain field (e.g. `sum(1) by x as count`). \n- Aggregates in SELECT must be filtered via HAVING. Use WHERE for pre-aggregation filters.\n- Use `field ? condition` for inline filters (e.g. `sum(x ? x > 0)`).\n- Always use a reasonable `LIMIT` for final queries unless the request is for a time series or line chart.\n- Window functions: `rank entity [optional over group] by field desc` (e.g. `rank name over state by sum(births) desc as top_name`) Do not use parentheses for over.\n- Functions. All function names have parenthese (e.g. `sum(births)`, `date_part('year', dep_time)`). For no arguments, use empty parentheses (e.g. `current_date()`).\n- For lag/lead, offset is first: lag/lead offset field order by expr asc/desc.\n- For lag/lead with a window clause: lag/lead offset field by window_clause order by expr asc/desc.\n- Use `::type` casting, e.g., `\"2020-01-01\"::date`.\n- Date_parts have no quotes; use `date_part(order_date, year)` instead of `date_part(order_date, 'year')`.\n- Comments use `#` only, per line.\n- Use `--` before a field in a select to hide it from output. This is useful for having a field available for filtering without returning it when making charts, for example. Hidden fields are still available for use in WHERE, HAVING, ORDER BY, and calculations.\n- Two example queries: \"where year between 1940 and 1950\n select\n name,\n state,\n sum(births) AS all_births,\n sum(births ? state = 'VT') AS vermont_births,\n rank name over state by all_births desc AS state_rank,\n rank name by sum(births) by name desc AS all_rank,\n -- sum(births ? state = 'MA') as hidden_mass_births\n having \n all_rank<11\n and state = 'ID'\n order by \n all_rank asc\n limit 5;\", \"where dep_time between '2002-01-01'::datetime and '2010-01-31'::datetime\n select\n carrier.name,\n count(id2) AS total_flights,\n total_flights / date_diff(min(dep_time.date), max(dep_time.date), DAY) AS average_daily_flights\n order by \n total_flights desc;\n \"";
1
+ export declare const rulesInput = "\nTrilogy statements define a semantic model or query. If a user is asking for data, they want a SELECT.\nSemantic model statements:\n- import <> imports a model to reuse. The output of imports will be visible in fields available to use.\n- key|property|auto|metric defines fields locally. The output will also be visible in fields available to use, so you generally don't need to edit these unless requested.\n- datasource statements define a datasource, which is a mapping of fields to a SQL database table. The left side is the SQL column name, the right side is the field name.\n\nSELECT RULES:\n- No FROM, JOIN, GROUP BY, SUB SELECTS, DISTINCT, UNION, or SELECT *.\n- All fields exist in a global namespace; field paths look like `order.product.id`. Always use the full path. NEVER include a from clause.\n- If a field has a grain defined, and that grain is not in the query output, aggregate it to get desired result. \n- If a field has a 'alias_for' defined, it is shorthand for that calculation. Use the field name instead of the calculation in your query to be concise. \n- Newly created fields at the output of the select must be aliased with as (e.g. `sum(births) as all_births`). \n- Aliases cannot happen inside calculations or in the where/having/order clause. Never alias fields with existing names. 'sum(revenue) as total_revenue' is valid, but '(sum(births) as total_revenue) +1 as revenue_plus_one' is not.\n- Implicit grouping: NEVER include a group by clause. Grouping is by non-aggregated fields in the SELECT clause.\n- You can dynamically group inline to get groups at different grains - ex: `sum(metric) by dim1, dim2 as sum_by_dim1_dm2` for grouping different from inferred by dimension fields. Aggregate by `*` to get the total regardless of select dimensions.\n- Count must specify a field (no `count(*)`) Counts are automatically deduplicated. Do not ever use DISTINCT.\n- Use a sum/count/avg/max/min over a field to get aggregates at different grains (e.g. `sum(births) over state as state_births`).\n- Since there are no underlying tables, sum/count of a constant should always specify a grain field (e.g. `sum(1) by x as count`). \n- Aggregates in SELECT must be filtered via HAVING. Use WHERE for pre-aggregation filters.\n- Use `field ? condition` for inline filters (e.g. `sum(x ? x > 0)`).\n- Always use a reasonable `LIMIT` for final queries unless the request is for a time series or line chart.\n- Window functions: `rank entity [optional over group] by field desc` (e.g. `rank name over state by sum(births) desc as top_name`) Do not use parentheses for over.\n- Functions. All function names have parenthese (e.g. `sum(births)`, `date_part('year', dep_time)`). For no arguments, use empty parentheses (e.g. `current_date()`).\n- For lag/lead, offset is first: lag/lead offset field order by expr asc/desc.\n- For lag/lead with a window clause: lag/lead offset field by window_clause order by expr asc/desc.\n- Use `::type` casting, e.g., `\"2020-01-01\"::date`.\n- Date_parts have no quotes; use `date_part(order_date, year)` instead of `date_part(order_date, 'year')`.\n- Comments use `#` only, per line.\n- Use `--` before a field in a select to hide it from output. This is useful for having a field available for filtering without returning it when making charts, for example. Hidden fields are still available for use in WHERE, HAVING, ORDER BY, and calculations.\n- Two example queries: \"where year between 1940 and 1950\n select\n name,\n state,\n sum(births) by * as all_births_no_dims,\n sum(births) AS births_by_name_state,\n sum(births ? state = 'VT') AS vermont_births,\n rank name over state by all_births desc AS state_rank,\n rank name by sum(births) by name desc AS all_rank,\n -- sum(births ? state = 'MA') as hidden_mass_births\n having \n all_rank<11\n and state = 'ID'\n order by \n all_rank asc\n limit 5;\", \"where dep_time between '2002-01-01'::datetime and '2010-01-31'::datetime\n select\n carrier.name,\n count(id2) AS total_flights,\n total_flights / date_diff(min(dep_time.date), max(dep_time.date), DAY) AS average_daily_flights\n order by \n total_flights desc;\n \"";
2
2
  export declare const aggFunctions: string[];
3
3
  export declare const functions: string[];
4
4
  export declare const datatypes: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../llm/data/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,u4HAkDnB,CAAA;AAEJ,eAAO,MAAM,YAAY,UASxB,CAAA;AACD,eAAO,MAAM,SAAS,UAqFrB,CAAA;AAED,eAAO,MAAM,SAAS,UAoBrB,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../llm/data/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,goIAoDnB,CAAA;AAEJ,eAAO,MAAM,YAAY,UASxB,CAAA;AACD,eAAO,MAAM,SAAS,UAqFrB,CAAA;AAED,eAAO,MAAM,SAAS,UAoBrB,CAAA"}
@@ -31107,8 +31107,9 @@ SELECT RULES:
31107
31107
  - Newly created fields at the output of the select must be aliased with as (e.g. \`sum(births) as all_births\`).
31108
31108
  - Aliases cannot happen inside calculations or in the where/having/order clause. Never alias fields with existing names. 'sum(revenue) as total_revenue' is valid, but '(sum(births) as total_revenue) +1 as revenue_plus_one' is not.
31109
31109
  - Implicit grouping: NEVER include a group by clause. Grouping is by non-aggregated fields in the SELECT clause.
31110
- - You can dynamically group inline to get groups at different grains - ex: \`sum(metric) by dim1, dim2 as sum_by_dim1_dm2\` for alternate grouping. If you are grouping a defined aggregate
31110
+ - You can dynamically group inline to get groups at different grains - ex: \`sum(metric) by dim1, dim2 as sum_by_dim1_dm2\` for grouping different from inferred by dimension fields. Aggregate by \`*\` to get the total regardless of select dimensions.
31111
31111
  - Count must specify a field (no \`count(*)\`) Counts are automatically deduplicated. Do not ever use DISTINCT.
31112
+ - Use a sum/count/avg/max/min over a field to get aggregates at different grains (e.g. \`sum(births) over state as state_births\`).
31112
31113
  - Since there are no underlying tables, sum/count of a constant should always specify a grain field (e.g. \`sum(1) by x as count\`).
31113
31114
  - Aggregates in SELECT must be filtered via HAVING. Use WHERE for pre-aggregation filters.
31114
31115
  - Use \`field ? condition\` for inline filters (e.g. \`sum(x ? x > 0)\`).
@@ -31125,7 +31126,8 @@ SELECT RULES:
31125
31126
  select
31126
31127
  name,
31127
31128
  state,
31128
- sum(births) AS all_births,
31129
+ sum(births) by * as all_births_no_dims,
31130
+ sum(births) AS births_by_name_state,
31129
31131
  sum(births ? state = 'VT') AS vermont_births,
31130
31132
  rank name over state by all_births desc AS state_rank,
31131
31133
  rank name by sum(births) by name desc AS all_rank,
@@ -33844,9 +33846,19 @@ const kct = {
33844
33846
  chartType: "bar",
33845
33847
  xField: "category",
33846
33848
  yField: "revenue",
33849
+ yField2: "cost",
33847
33850
  colorField: "region",
33851
+ sizeField: "quantity",
33852
+ groupField: "year",
33853
+ trellisField: "department",
33854
+ trellisRowField: "quarter",
33855
+ geoField: "state_code",
33856
+ annotationField: "notes",
33848
33857
  hideLegend: !1,
33849
- showTitle: !0
33858
+ showTitle: !0,
33859
+ scaleX: "linear",
33860
+ scaleY: "linear",
33861
+ linkY2: !1
33850
33862
  }, Dct = [
33851
33863
  {
33852
33864
  name: "run_trilogy_query",
@@ -33933,12 +33945,20 @@ Available chartTypes: 'line', 'bar', 'barh', 'point', 'area', 'donut', 'heatmap'
33933
33945
  },
33934
33946
  trellisField: {
33935
33947
  type: "string",
33936
- description: "Field for small multiples/faceting (optional)"
33948
+ description: "Field for small multiples/faceting columns (optional)"
33949
+ },
33950
+ trellisRowField: {
33951
+ type: "string",
33952
+ description: "Field for small multiples/faceting rows (optional)"
33937
33953
  },
33938
33954
  geoField: {
33939
33955
  type: "string",
33940
33956
  description: "Field for geographic data (optional)"
33941
33957
  },
33958
+ annotationField: {
33959
+ type: "string",
33960
+ description: "Field for data point annotations/labels (optional)"
33961
+ },
33942
33962
  hideLegend: {
33943
33963
  type: "boolean",
33944
33964
  description: "Whether to hide the legend"
@@ -33956,6 +33976,10 @@ Available chartTypes: 'line', 'bar', 'barh', 'point', 'area', 'donut', 'heatmap'
33956
33976
  type: "string",
33957
33977
  enum: ["linear", "log", "sqrt"],
33958
33978
  description: "Scale type for y-axis"
33979
+ },
33980
+ linkY2: {
33981
+ type: "boolean",
33982
+ description: "Whether to link the secondary y-axis scale to the primary y-axis"
33959
33983
  }
33960
33984
  }
33961
33985
  }
@@ -114090,37 +114114,37 @@ ht({
114090
114114
  id: "freemarker2",
114091
114115
  extensions: [".ftl", ".ftlh", ".ftlx"],
114092
114116
  aliases: ["FreeMarker2", "Apache FreeMarker2"],
114093
- loader: () => import("./freemarker2-sj87rhhC.js").then((i) => i.TagAutoInterpolationDollar)
114117
+ loader: () => import("./freemarker2-CLA7F-Ej.js").then((i) => i.TagAutoInterpolationDollar)
114094
114118
  });
114095
114119
  ht({
114096
114120
  id: "freemarker2.tag-angle.interpolation-dollar",
114097
114121
  aliases: ["FreeMarker2 (Angle/Dollar)", "Apache FreeMarker2 (Angle/Dollar)"],
114098
- loader: () => import("./freemarker2-sj87rhhC.js").then((i) => i.TagAngleInterpolationDollar)
114122
+ loader: () => import("./freemarker2-CLA7F-Ej.js").then((i) => i.TagAngleInterpolationDollar)
114099
114123
  });
114100
114124
  ht({
114101
114125
  id: "freemarker2.tag-bracket.interpolation-dollar",
114102
114126
  aliases: ["FreeMarker2 (Bracket/Dollar)", "Apache FreeMarker2 (Bracket/Dollar)"],
114103
- loader: () => import("./freemarker2-sj87rhhC.js").then((i) => i.TagBracketInterpolationDollar)
114127
+ loader: () => import("./freemarker2-CLA7F-Ej.js").then((i) => i.TagBracketInterpolationDollar)
114104
114128
  });
114105
114129
  ht({
114106
114130
  id: "freemarker2.tag-angle.interpolation-bracket",
114107
114131
  aliases: ["FreeMarker2 (Angle/Bracket)", "Apache FreeMarker2 (Angle/Bracket)"],
114108
- loader: () => import("./freemarker2-sj87rhhC.js").then((i) => i.TagAngleInterpolationBracket)
114132
+ loader: () => import("./freemarker2-CLA7F-Ej.js").then((i) => i.TagAngleInterpolationBracket)
114109
114133
  });
114110
114134
  ht({
114111
114135
  id: "freemarker2.tag-bracket.interpolation-bracket",
114112
114136
  aliases: ["FreeMarker2 (Bracket/Bracket)", "Apache FreeMarker2 (Bracket/Bracket)"],
114113
- loader: () => import("./freemarker2-sj87rhhC.js").then((i) => i.TagBracketInterpolationBracket)
114137
+ loader: () => import("./freemarker2-CLA7F-Ej.js").then((i) => i.TagBracketInterpolationBracket)
114114
114138
  });
114115
114139
  ht({
114116
114140
  id: "freemarker2.tag-auto.interpolation-dollar",
114117
114141
  aliases: ["FreeMarker2 (Auto/Dollar)", "Apache FreeMarker2 (Auto/Dollar)"],
114118
- loader: () => import("./freemarker2-sj87rhhC.js").then((i) => i.TagAutoInterpolationDollar)
114142
+ loader: () => import("./freemarker2-CLA7F-Ej.js").then((i) => i.TagAutoInterpolationDollar)
114119
114143
  });
114120
114144
  ht({
114121
114145
  id: "freemarker2.tag-auto.interpolation-bracket",
114122
114146
  aliases: ["FreeMarker2 (Auto/Bracket)", "Apache FreeMarker2 (Auto/Bracket)"],
114123
- loader: () => import("./freemarker2-sj87rhhC.js").then((i) => i.TagAutoInterpolationBracket)
114147
+ loader: () => import("./freemarker2-CLA7F-Ej.js").then((i) => i.TagAutoInterpolationBracket)
114124
114148
  });
114125
114149
  /*!-----------------------------------------------------------------------------
114126
114150
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -114158,7 +114182,7 @@ ht({
114158
114182
  extensions: [".handlebars", ".hbs"],
114159
114183
  aliases: ["Handlebars", "handlebars", "hbs"],
114160
114184
  mimetypes: ["text/x-handlebars-template"],
114161
- loader: () => import("./handlebars-BwQH2pI9.js")
114185
+ loader: () => import("./handlebars-B0vRliRe.js")
114162
114186
  });
114163
114187
  /*!-----------------------------------------------------------------------------
114164
114188
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -114183,7 +114207,7 @@ ht({
114183
114207
  extensions: [".html", ".htm", ".shtml", ".xhtml", ".mdoc", ".jsp", ".asp", ".aspx", ".jshtm"],
114184
114208
  aliases: ["HTML", "htm", "html", "xhtml"],
114185
114209
  mimetypes: ["text/html", "text/x-jshtm", "text/template", "text/ng-template"],
114186
- loader: () => import("./html-CMSP8uvN.js")
114210
+ loader: () => import("./html-EGGGp83W.js")
114187
114211
  });
114188
114212
  /*!-----------------------------------------------------------------------------
114189
114213
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -114224,7 +114248,7 @@ ht({
114224
114248
  filenames: ["jakefile"],
114225
114249
  aliases: ["JavaScript", "javascript", "js"],
114226
114250
  mimetypes: ["text/javascript"],
114227
- loader: () => import("./javascript-B-sxKV8D.js")
114251
+ loader: () => import("./javascript-r3XwW1JQ.js")
114228
114252
  });
114229
114253
  /*!-----------------------------------------------------------------------------
114230
114254
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -114299,7 +114323,7 @@ ht({
114299
114323
  extensions: [".liquid", ".html.liquid"],
114300
114324
  aliases: ["Liquid", "liquid"],
114301
114325
  mimetypes: ["application/liquid"],
114302
- loader: () => import("./liquid-sr0Xhq4p.js")
114326
+ loader: () => import("./liquid-jNJYEqqA.js")
114303
114327
  });
114304
114328
  /*!-----------------------------------------------------------------------------
114305
114329
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -114335,7 +114359,7 @@ ht({
114335
114359
  id: "mdx",
114336
114360
  extensions: [".mdx"],
114337
114361
  aliases: ["MDX", "mdx"],
114338
- loader: () => import("./mdx-CBgOlXzI.js")
114362
+ loader: () => import("./mdx-BIzsK1om.js")
114339
114363
  });
114340
114364
  /*!-----------------------------------------------------------------------------
114341
114365
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -114530,7 +114554,7 @@ ht({
114530
114554
  extensions: [".py", ".rpy", ".pyw", ".cpy", ".gyp", ".gypi"],
114531
114555
  aliases: ["Python", "py"],
114532
114556
  firstLine: "^#!/.*\\bpython[0-9.-]*\\b",
114533
- loader: () => import("./python-D3q4ZmgV.js")
114557
+ loader: () => import("./python-D4HwobRf.js")
114534
114558
  });
114535
114559
  /*!-----------------------------------------------------------------------------
114536
114560
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -114567,7 +114591,7 @@ ht({
114567
114591
  extensions: [".cshtml"],
114568
114592
  aliases: ["Razor", "razor"],
114569
114593
  mimetypes: ["text/x-cshtml"],
114570
- loader: () => import("./razor-Bj0eJO1J.js")
114594
+ loader: () => import("./razor-C5i_D5W4.js")
114571
114595
  });
114572
114596
  /*!-----------------------------------------------------------------------------
114573
114597
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -114819,7 +114843,7 @@ ht({
114819
114843
  extensions: [".ts", ".tsx", ".cts", ".mts"],
114820
114844
  aliases: ["TypeScript", "ts", "typescript"],
114821
114845
  mimetypes: ["text/typescript"],
114822
- loader: () => import("./typescript-SL61Fuvv.js")
114846
+ loader: () => import("./typescript-V_YGjV-S.js")
114823
114847
  });
114824
114848
  /*!-----------------------------------------------------------------------------
114825
114849
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -114887,7 +114911,7 @@ ht({
114887
114911
  firstLine: "(\\<\\?xml.*)|(\\<svg)|(\\<\\!doctype\\s+svg)",
114888
114912
  aliases: ["XML", "xml"],
114889
114913
  mimetypes: ["text/xml", "application/xml", "application/xaml+xml", "application/xml-dtd"],
114890
- loader: () => import("./xml-W8dpjYyI.js")
114914
+ loader: () => import("./xml-BUNQI2ek.js")
114891
114915
  });
114892
114916
  /*!-----------------------------------------------------------------------------
114893
114917
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -114900,7 +114924,7 @@ ht({
114900
114924
  extensions: [".yaml", ".yml"],
114901
114925
  aliases: ["YAML", "yaml", "YML", "yml"],
114902
114926
  mimetypes: ["application/x-yaml", "text/x-yaml"],
114903
- loader: () => import("./yaml-BAWn9f4V.js")
114927
+ loader: () => import("./yaml-5tRm_vln.js")
114904
114928
  });
114905
114929
  /*!-----------------------------------------------------------------------------
114906
114930
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -115003,7 +115027,7 @@ var Ghe = class {
115003
115027
  );
115004
115028
  iN.languages.css = { cssDefaults: OBe, lessDefaults: BBe, scssDefaults: FBe };
115005
115029
  function Qhe() {
115006
- return import("./cssMode-C0Z7SxAo.js");
115030
+ return import("./cssMode-vs4Bla_T.js");
115007
115031
  }
115008
115032
  iN.languages.onLanguage("less", () => {
115009
115033
  Qhe().then((i) => i.setupMode(BBe));
@@ -115109,7 +115133,7 @@ VU.languages.html = {
115109
115133
  registerHTMLLanguageService: qU
115110
115134
  };
115111
115135
  function wMt() {
115112
- return import("./htmlMode-gjbGipi0.js");
115136
+ return import("./htmlMode-DTwdBKSj.js");
115113
115137
  }
115114
115138
  function qU(i, e = zU, t = UU(i)) {
115115
115139
  const n = new mMt(i, e, t);
@@ -115186,7 +115210,7 @@ var DMt = class {
115186
115210
  ), NMt = () => zBe().then((i) => i.getWorker());
115187
115211
  GF.languages.json = { jsonDefaults: VBe, getWorker: NMt };
115188
115212
  function zBe() {
115189
- return import("./jsonMode-PqleooUl.js");
115213
+ return import("./jsonMode-BDjjqtDz.js");
115190
115214
  }
115191
115215
  GF.languages.register({
115192
115216
  id: "json",
@@ -115350,7 +115374,7 @@ IT.languages.typescript = {
115350
115374
  getJavaScriptWorker: HMt
115351
115375
  };
115352
115376
  function jU() {
115353
- return import("./tsMode-ChlNE32b.js");
115377
+ return import("./tsMode-CbiwrPvK.js");
115354
115378
  }
115355
115379
  IT.languages.onLanguage("typescript", () => jU().then((i) => i.setupTypeScript(XBe)));
115356
115380
  IT.languages.onLanguage("javascript", () => jU().then((i) => i.setupJavaScript(ZBe)));
@@ -151113,7 +151137,7 @@ const F$t = { class: "main" }, B$t = /* @__PURE__ */ Wi({
151113
151137
  setup(i) {
151114
151138
  let e = "https://trilogy-service.fly.dev", t = Cce();
151115
151139
  t.loadSettings();
151116
- const n = gr(() => import("./Manager-C0e_Cv_E.js")), s = e, r = window.matchMedia("(prefers-color-scheme: dark)").matches;
151140
+ const n = gr(() => import("./Manager-CbzY5giU.js")), s = e, r = window.matchMedia("(prefers-color-scheme: dark)").matches;
151117
151141
  t.settings.theme || t.updateSetting("theme", r ? "dark" : "light"), t.settings.trilogyResolver === "" && t.updateSetting("trilogyResolver", s), t.toggleTheme();
151118
151142
  let o = new Sce(t), l = [new O$t()], c = lF(), u = O6(), d = P6(), h = BPe(), f = WPe(), g = $Pe(), p = iue();
151119
151143
  return (m, _) => (H(), G("div", F$t, [
@@ -151922,10 +151946,10 @@ function N7t(i, e, t, n, s, r) {
151922
151946
  ])
151923
151947
  ]);
151924
151948
  }
151925
- const OWe = /* @__PURE__ */ Ht(x7t, [["render", N7t], ["__scopeId", "data-v-7aa6f0d3"]]), A7t = gr(() => import("./TutorialPage-xAEiXplm.js")), M7t = gr(() => import("./Sidebar-Bsh1hBHw.js")), R7t = gr(() => Promise.resolve().then(() => NWe)), P7t = gr(() => import("./WelcomePage-DwDN7wi8.js")), O7t = gr(() => import("./Dashboard-FrQXncwr.js")), F7t = gr(() => import("./ResultComponent-DCc6jQZ8.js")), B7t = gr(() => Promise.resolve().then(() => RGt)), W7t = gr(
151949
+ const OWe = /* @__PURE__ */ Ht(x7t, [["render", N7t], ["__scopeId", "data-v-7aa6f0d3"]]), A7t = gr(() => import("./TutorialPage-epP01l2F.js")), M7t = gr(() => import("./Sidebar-BMFjTHUe.js")), R7t = gr(() => Promise.resolve().then(() => NWe)), P7t = gr(() => import("./WelcomePage-CHjPSGJ_.js")), O7t = gr(() => import("./Dashboard-COEl1k7Y.js")), F7t = gr(() => import("./ResultComponent-Dp63EUZN.js")), B7t = gr(() => Promise.resolve().then(() => RGt)), W7t = gr(
151926
151950
  () => Promise.resolve().then(() => vVt)
151927
- ), $7t = gr(() => Promise.resolve().then(() => wqt)), H7t = gr(() => import("./LLMView-Cd0xUG9K.js")), NLe = gr(() => Promise.resolve().then(() => ujt)), V7t = gr(
151928
- () => import("./ChatCreatorModal-DRiWsXTa.js")
151951
+ ), $7t = gr(() => Promise.resolve().then(() => wqt)), H7t = gr(() => import("./LLMView-DgFsUcqM.js")), NLe = gr(() => Promise.resolve().then(() => ujt)), V7t = gr(
151952
+ () => import("./ChatCreatorModal-DEIQqlH5.js")
151929
151953
  ), z7t = gr(() => Promise.resolve().then(() => ret)), U7t = gr(() => Promise.resolve().then(() => JJe)), q7t = gr(() => Promise.resolve().then(() => JMe)), j7t = {
151930
151954
  name: "IDEComponent",
151931
151955
  data() {
@@ -157984,9 +158008,9 @@ function VGt(i, e, t, n, s, r) {
157984
158008
  ])
157985
158009
  ]);
157986
158010
  }
157987
- const zGt = /* @__PURE__ */ Ht(OGt, [["render", VGt], ["__scopeId", "data-v-974c1c27"]]), UGt = gr(() => import("./TutorialPage-xAEiXplm.js")), qGt = gr(() => import("./Sidebar-Bsh1hBHw.js")), jGt = gr(() => Promise.resolve().then(() => NWe)), GGt = gr(() => Promise.resolve().then(() => JMe)), KGt = gr(() => import("./WelcomePage-DwDN7wi8.js")), YGt = gr(
157988
- () => import("./DashboardMobile-CrdSxf_b.js")
157989
- ), QGt = gr(() => import("./ResultComponent-DCc6jQZ8.js")), XGt = gr(() => import("./LLMView-Cd0xUG9K.js")), ZGt = {
158011
+ const zGt = /* @__PURE__ */ Ht(OGt, [["render", VGt], ["__scopeId", "data-v-974c1c27"]]), UGt = gr(() => import("./TutorialPage-epP01l2F.js")), qGt = gr(() => import("./Sidebar-BMFjTHUe.js")), jGt = gr(() => Promise.resolve().then(() => NWe)), GGt = gr(() => Promise.resolve().then(() => JMe)), KGt = gr(() => import("./WelcomePage-CHjPSGJ_.js")), YGt = gr(
158012
+ () => import("./DashboardMobile-_bZjOVC8.js")
158013
+ ), QGt = gr(() => import("./ResultComponent-Dp63EUZN.js")), XGt = gr(() => import("./LLMView-DgFsUcqM.js")), ZGt = {
157990
158014
  name: "MobileIDEComponent",
157991
158015
  data() {
157992
158016
  },
package/dist/main.js CHANGED
@@ -1,4 +1,4 @@
1
- import { ag as e, X as o, E as i, d as r, a2 as l, ad as L, af as d, F as h, _ as u, ae as C, ac as E, aa as n, ab as M, I as S, N as g, aj as p, ai as b, ah as c } from "./main-CH8RRJ81.js";
1
+ import { ag as e, X as o, E as i, d as r, a2 as l, ad as L, af as d, F as h, _ as u, ae as C, ac as E, aa as n, ab as M, I as S, N as g, aj as p, ai as b, ah as c } from "./main-BWpUmrP_.js";
2
2
  import "vue";
3
3
  export {
4
4
  e as ChatArtifact,
package/dist/main.umd.cjs CHANGED
@@ -143,8 +143,9 @@ SELECT RULES:
143
143
  - Newly created fields at the output of the select must be aliased with as (e.g. \`sum(births) as all_births\`).
144
144
  - Aliases cannot happen inside calculations or in the where/having/order clause. Never alias fields with existing names. 'sum(revenue) as total_revenue' is valid, but '(sum(births) as total_revenue) +1 as revenue_plus_one' is not.
145
145
  - Implicit grouping: NEVER include a group by clause. Grouping is by non-aggregated fields in the SELECT clause.
146
- - You can dynamically group inline to get groups at different grains - ex: \`sum(metric) by dim1, dim2 as sum_by_dim1_dm2\` for alternate grouping. If you are grouping a defined aggregate
146
+ - You can dynamically group inline to get groups at different grains - ex: \`sum(metric) by dim1, dim2 as sum_by_dim1_dm2\` for grouping different from inferred by dimension fields. Aggregate by \`*\` to get the total regardless of select dimensions.
147
147
  - Count must specify a field (no \`count(*)\`) Counts are automatically deduplicated. Do not ever use DISTINCT.
148
+ - Use a sum/count/avg/max/min over a field to get aggregates at different grains (e.g. \`sum(births) over state as state_births\`).
148
149
  - Since there are no underlying tables, sum/count of a constant should always specify a grain field (e.g. \`sum(1) by x as count\`).
149
150
  - Aggregates in SELECT must be filtered via HAVING. Use WHERE for pre-aggregation filters.
150
151
  - Use \`field ? condition\` for inline filters (e.g. \`sum(x ? x > 0)\`).
@@ -161,7 +162,8 @@ SELECT RULES:
161
162
  select
162
163
  name,
163
164
  state,
164
- sum(births) AS all_births,
165
+ sum(births) by * as all_births_no_dims,
166
+ sum(births) AS births_by_name_state,
165
167
  sum(births ? state = 'VT') AS vermont_births,
166
168
  rank name over state by all_births desc AS state_rank,
167
169
  rank name by sum(births) by name desc AS all_rank,
@@ -306,9 +308,9 @@ ${t.map(o=>`- ${o.name}${(i==null?void 0:i.id)===o.id?" (active)":""}`).join(`
306
308
 
307
309
  Use select_active_import to select a data source.`}}getAvailableImports(e){return this.editorStore?Object.values(this.editorStore.editors).filter(t=>t.connection===e).sort((t,i)=>t.name.localeCompare(i.name)).map(t=>({id:t.id,name:t.name.replace(/\//g,"."),alias:""})):[]}async connectDataConnection(e){var i,s;if(!e||typeof e!="string")return{success:!1,error:`Connection name is required. Available connections: ${Object.keys(this.connectionStore.connections).join(", ")||"None"}`};const t=this.connectionStore.connections[e];if(!t)return{success:!1,error:`Connection "${e}" not found. Available connections: ${Object.keys(this.connectionStore.connections).join(", ")||"None"}`};if(t.connected){if((i=this.chatStore)!=null&&i.activeChatId){const r=this.chatStore.activeChat;r&&r.dataConnectionName!==e&&this.chatStore.updateChatDataConnection(this.chatStore.activeChatId,e)}return{success:!0,message:`Connection "${e}" is already active and set as the data connection for this chat.`}}try{return await this.connectionStore.connectConnection(e),(s=this.chatStore)!=null&&s.activeChatId&&this.chatStore.updateChatDataConnection(this.chatStore.activeChatId,e),{success:!0,message:`Successfully connected to "${e}" and set as the data connection for this chat. You can now run queries against this connection.`,triggersSymbolRefresh:!0}}catch(r){return{success:!1,error:`Failed to connect to "${e}": ${r instanceof Error?r.message:"Unknown error"}`}}}}const Zvt=[{name:"run_trilogy_query",description:"Execute a Trilogy query and return tabular results. Use this for data exploration, aggregations, and when the user wants to see raw data in a table format.",input_schema:{type:"object",properties:{query:{type:"string",description:"The Trilogy query to execute"},connection:{type:"string",description:"Data connection name to run the query against"}},required:["query","connection"]}},{name:"chart_trilogy_query",description:`Execute a Trilogy query and display results as a chart. The chart type is auto-detected based on data shape unless you specify a chartConfig. Only provide chartConfig if the user specifically requests a chart type or configuration; otherwise let auto-detection handle it. Hiding fields used only for filtering/query structure from output with -- syntax may be useful to get the right auto-formatting.
308
310
 
309
- Example chartConfig: ${JSON.stringify({chartType:"bar",xField:"category",yField:"revenue",colorField:"region",hideLegend:!1,showTitle:!0})}
311
+ Example chartConfig: ${JSON.stringify({chartType:"bar",xField:"category",yField:"revenue",yField2:"cost",colorField:"region",sizeField:"quantity",groupField:"year",trellisField:"department",trellisRowField:"quarter",geoField:"state_code",annotationField:"notes",hideLegend:!1,showTitle:!0,scaleX:"linear",scaleY:"linear",linkY2:!1})}
310
312
 
311
- Available chartTypes: 'line', 'bar', 'barh', 'point', 'area', 'donut', 'heatmap', 'treemap', 'boxplot', 'beeswarm', 'headline', 'usa-map', 'tree'`,input_schema:{type:"object",properties:{query:{type:"string",description:"The Trilogy query to execute"},connection:{type:"string",description:"Data connection name to run the query against"},chartConfig:{type:"object",description:"Optional chart configuration. Only provide if user specifically requests a chart type or configuration.",properties:{chartType:{type:"string",enum:["line","bar","barh","point","usa-map","tree","area","headline","donut","heatmap","boxplot","treemap","beeswarm"],description:"Type of chart to render"},xField:{type:"string",description:"Field name for x-axis"},yField:{type:"string",description:"Field name for y-axis"},yField2:{type:"string",description:"Secondary y-axis field (optional)"},colorField:{type:"string",description:"Field for color encoding (optional)"},sizeField:{type:"string",description:"Field for size encoding (optional)"},groupField:{type:"string",description:"Field for grouping data (optional)"},trellisField:{type:"string",description:"Field for small multiples/faceting (optional)"},geoField:{type:"string",description:"Field for geographic data (optional)"},hideLegend:{type:"boolean",description:"Whether to hide the legend"},showTitle:{type:"boolean",description:"Whether to show the chart title"},scaleX:{type:"string",enum:["linear","log","sqrt"],description:"Scale type for x-axis"},scaleY:{type:"string",enum:["linear","log","sqrt"],description:"Scale type for y-axis"}}}},required:["query","connection"]}},{name:"select_active_import",description:"Select a single data source import to use for queries. This replaces any previously selected import. Only one import can be active at a time. After selecting an import, the tool will return the full list of available fields/concepts from that data source including their descriptions. Use list_available_imports first to see what data sources are available.",input_schema:{type:"object",properties:{import_name:{type:"string",description:'The name of the import to select (e.g., "sales.orders" or "finance.revenue"). Use list_available_imports to see available options. Pass an empty string or null to clear the current selection.'}},required:["import_name"]}},{name:"list_available_imports",description:"List all available data source imports for the current connection. Use this to discover what data models are available before adding an import.",input_schema:{type:"object",properties:{},required:[]}},{name:"connect_data_connection",description:"Connect or reconnect a data connection that is not currently active. Use this when a query fails because the connection is not active, or when you need to establish a connection before running queries.",input_schema:{type:"object",properties:{connection:{type:"string",description:"The name of the data connection to connect"}},required:["connection"]}}];function CDe(n){const{dataConnectionName:e,availableConnections:t,availableConcepts:i,activeImports:s=[],availableImportsForConnection:r=[],isDataConnectionActive:o=!0}=n,a=i&&i.length>0?`
313
+ Available chartTypes: 'line', 'bar', 'barh', 'point', 'area', 'donut', 'heatmap', 'treemap', 'boxplot', 'beeswarm', 'headline', 'usa-map', 'tree'`,input_schema:{type:"object",properties:{query:{type:"string",description:"The Trilogy query to execute"},connection:{type:"string",description:"Data connection name to run the query against"},chartConfig:{type:"object",description:"Optional chart configuration. Only provide if user specifically requests a chart type or configuration.",properties:{chartType:{type:"string",enum:["line","bar","barh","point","usa-map","tree","area","headline","donut","heatmap","boxplot","treemap","beeswarm"],description:"Type of chart to render"},xField:{type:"string",description:"Field name for x-axis"},yField:{type:"string",description:"Field name for y-axis"},yField2:{type:"string",description:"Secondary y-axis field (optional)"},colorField:{type:"string",description:"Field for color encoding (optional)"},sizeField:{type:"string",description:"Field for size encoding (optional)"},groupField:{type:"string",description:"Field for grouping data (optional)"},trellisField:{type:"string",description:"Field for small multiples/faceting columns (optional)"},trellisRowField:{type:"string",description:"Field for small multiples/faceting rows (optional)"},geoField:{type:"string",description:"Field for geographic data (optional)"},annotationField:{type:"string",description:"Field for data point annotations/labels (optional)"},hideLegend:{type:"boolean",description:"Whether to hide the legend"},showTitle:{type:"boolean",description:"Whether to show the chart title"},scaleX:{type:"string",enum:["linear","log","sqrt"],description:"Scale type for x-axis"},scaleY:{type:"string",enum:["linear","log","sqrt"],description:"Scale type for y-axis"},linkY2:{type:"boolean",description:"Whether to link the secondary y-axis scale to the primary y-axis"}}}},required:["query","connection"]}},{name:"select_active_import",description:"Select a single data source import to use for queries. This replaces any previously selected import. Only one import can be active at a time. After selecting an import, the tool will return the full list of available fields/concepts from that data source including their descriptions. Use list_available_imports first to see what data sources are available.",input_schema:{type:"object",properties:{import_name:{type:"string",description:'The name of the import to select (e.g., "sales.orders" or "finance.revenue"). Use list_available_imports to see available options. Pass an empty string or null to clear the current selection.'}},required:["import_name"]}},{name:"list_available_imports",description:"List all available data source imports for the current connection. Use this to discover what data models are available before adding an import.",input_schema:{type:"object",properties:{},required:[]}},{name:"connect_data_connection",description:"Connect or reconnect a data connection that is not currently active. Use this when a query fails because the connection is not active, or when you need to establish a connection before running queries.",input_schema:{type:"object",properties:{connection:{type:"string",description:"The name of the data connection to connect"}},required:["connection"]}}];function CDe(n){const{dataConnectionName:e,availableConnections:t,availableConcepts:i,activeImports:s=[],availableImportsForConnection:r=[],isDataConnectionActive:o=!0}=n,a=i&&i.length>0?`
312
314
 
313
315
  AVAILABLE FIELDS FOR QUERIES:
314
316
  ${PM(i)}`:"",c=e?`ACTIVE DATA CONNECTION: ${e}${e&&!o?" (NOT CONNECTED - use connect_data_connection tool to connect before running queries)":""}`:"No data connection currently selected. Ask the user which connection to use.",d=s.length>0?`
@@ -1,4 +1,4 @@
1
- import { a8 as s } from "./main-CH8RRJ81.js";
1
+ import { a8 as s } from "./main-BWpUmrP_.js";
2
2
  /*!-----------------------------------------------------------------------------
3
3
  * Copyright (c) Microsoft Corporation. All rights reserved.
4
4
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
@@ -1,4 +1,4 @@
1
- import { a8 as o } from "./main-CH8RRJ81.js";
1
+ import { a8 as o } from "./main-BWpUmrP_.js";
2
2
  /*!-----------------------------------------------------------------------------
3
3
  * Copyright (c) Microsoft Corporation. All rights reserved.
4
4
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
@@ -1,4 +1,4 @@
1
- import { a8 as m } from "./main-CH8RRJ81.js";
1
+ import { a8 as m } from "./main-BWpUmrP_.js";
2
2
  /*!-----------------------------------------------------------------------------
3
3
  * Copyright (c) Microsoft Corporation. All rights reserved.
4
4
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
@@ -1,4 +1,4 @@
1
- import { a9 as O, a8 as I } from "./main-CH8RRJ81.js";
1
+ import { a9 as O, a8 as I } from "./main-BWpUmrP_.js";
2
2
  /*!-----------------------------------------------------------------------------
3
3
  * Copyright (c) Microsoft Corporation. All rights reserved.
4
4
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
@@ -1,4 +1,4 @@
1
- import { a8 as s } from "./main-CH8RRJ81.js";
1
+ import { a8 as s } from "./main-BWpUmrP_.js";
2
2
  /*!-----------------------------------------------------------------------------
3
3
  * Copyright (c) Microsoft Corporation. All rights reserved.
4
4
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as X, ref as b, watch as ne, createElementBlock as p, createCommentVNode as R, openBlock as m, createElementVNode as t, toDisplayString as N, computed as C, onMounted as pe, onBeforeUnmount as We, normalizeStyle as Ie, Fragment as ce, renderList as we, normalizeClass as H, createTextVNode as G, createBlock as Z, unref as Y, createVNode as z, withCtx as ie, withDirectives as te, withKeys as Ce, vModelText as ye, onUnmounted as $e, inject as j, resolveComponent as J, Teleport as Ue, withModifiers as Pe, createStaticVNode as rt, resolveDynamicComponent as lt, nextTick as Ae, vModelRadio as Te, vShow as at } from "vue";
2
- import { a as ee, N as st, T as ke, P as je, Q as ze, u as Ge, B as ut, L as dt, U as ct, x as De, w as Le, V as mt, W as ht, M as ft, X as vt, Y as de, J as $, Z as Ee, $ as ae, a0 as ve, a1 as yt, a2 as pt, a3 as Ne, a4 as gt, a5 as Ye, a6 as Je, r as bt, a7 as Ke } from "./main-CH8RRJ81.js";
2
+ import { a as ee, N as st, T as ke, P as je, Q as ze, u as Ge, B as ut, L as dt, U as ct, x as De, w as Le, V as mt, W as ht, M as ft, X as vt, Y as de, J as $, Z as Ee, $ as ae, a0 as ve, a1 as yt, a2 as pt, a3 as Ne, a4 as gt, a5 as Ye, a6 as Je, r as bt, a7 as Ke } from "./main-BWpUmrP_.js";
3
3
  const Ct = { class: "popup-header" }, wt = { class: "popup-body" }, kt = { class: "json-container" }, It = { "data-testid": "dashboard-json" }, Dt = { class: "popup-footer" }, St = /* @__PURE__ */ X({
4
4
  __name: "DashboardSharePopup",
5
5
  props: {
@@ -1,4 +1,4 @@
1
- import { a8 as r } from "./main-CH8RRJ81.js";
1
+ import { a8 as r } from "./main-BWpUmrP_.js";
2
2
  /*!-----------------------------------------------------------------------------
3
3
  * Copyright (c) Microsoft Corporation. All rights reserved.
4
4
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
@@ -1,4 +1,4 @@
1
- import { a8 as l } from "./main-CH8RRJ81.js";
1
+ import { a8 as l } from "./main-BWpUmrP_.js";
2
2
  /*!-----------------------------------------------------------------------------
3
3
  * Copyright (c) Microsoft Corporation. All rights reserved.
4
4
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trilogy-data/trilogy-studio-components",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "private": false,
5
5
  "publishConfig": { "access": "public" },
6
6
  "type": "module",
@@ -1,4 +0,0 @@
1
- import { _ as f } from "./main-CH8RRJ81.js";
2
- export {
3
- f as default
4
- };