@gooddata/sdk-ui-gen-ai 11.42.0-alpha.0 → 11.42.0-alpha.1

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 (115) hide show
  1. package/esm/components/Messages.d.ts.map +1 -1
  2. package/esm/components/Messages.js +4 -4
  3. package/esm/components/completion/plugins/rehype-references.d.ts.map +1 -1
  4. package/esm/components/completion/plugins/rehype-references.js +1 -0
  5. package/esm/components/completion/useToolsReferences.d.ts +4 -0
  6. package/esm/components/completion/useToolsReferences.d.ts.map +1 -0
  7. package/esm/components/completion/useToolsReferences.js +69 -0
  8. package/esm/components/completion/utils.d.ts +1 -1
  9. package/esm/components/completion/utils.d.ts.map +1 -1
  10. package/esm/components/completion/utils.js +1 -1
  11. package/esm/components/messages/AssistantItem.d.ts +2 -2
  12. package/esm/components/messages/AssistantItem.d.ts.map +1 -1
  13. package/esm/components/messages/AssistantItem.js +5 -2
  14. package/esm/components/messages/ConversationItemContents.d.ts +3 -2
  15. package/esm/components/messages/ConversationItemContents.d.ts.map +1 -1
  16. package/esm/components/messages/ConversationItemContents.js +4 -4
  17. package/esm/components/messages/ItemsGroup.js +1 -1
  18. package/esm/components/messages/SystemItem.d.ts +2 -0
  19. package/esm/components/messages/SystemItem.d.ts.map +1 -1
  20. package/esm/components/messages/ToolItem.d.ts +3 -1
  21. package/esm/components/messages/ToolItem.d.ts.map +1 -1
  22. package/esm/components/messages/ToolItem.js +4 -2
  23. package/esm/components/messages/UserItem.d.ts +3 -1
  24. package/esm/components/messages/UserItem.d.ts.map +1 -1
  25. package/esm/components/messages/UserItem.js +4 -2
  26. package/esm/components/messages/components/SemanticSearchTreeView.d.ts.map +1 -1
  27. package/esm/components/messages/components/SemanticSearchTreeView.js +2 -0
  28. package/esm/components/messages/contents/CustomHyperlink.d.ts.map +1 -1
  29. package/esm/components/messages/contents/CustomHyperlink.js +12 -4
  30. package/esm/components/messages/conversationContents/ConversationToolResultContent.d.ts +1 -1
  31. package/esm/components/messages/conversationContents/ConversationToolResultContent.d.ts.map +1 -1
  32. package/esm/localization/bundles/de-DE.localization-bundle.d.ts +6 -0
  33. package/esm/localization/bundles/de-DE.localization-bundle.d.ts.map +1 -1
  34. package/esm/localization/bundles/de-DE.localization-bundle.js +6 -0
  35. package/esm/localization/bundles/en-AU.localization-bundle.d.ts +6 -0
  36. package/esm/localization/bundles/en-AU.localization-bundle.d.ts.map +1 -1
  37. package/esm/localization/bundles/en-AU.localization-bundle.js +6 -0
  38. package/esm/localization/bundles/en-GB.localization-bundle.d.ts +6 -0
  39. package/esm/localization/bundles/en-GB.localization-bundle.d.ts.map +1 -1
  40. package/esm/localization/bundles/en-GB.localization-bundle.js +6 -0
  41. package/esm/localization/bundles/es-419.localization-bundle.d.ts +6 -0
  42. package/esm/localization/bundles/es-419.localization-bundle.d.ts.map +1 -1
  43. package/esm/localization/bundles/es-419.localization-bundle.js +6 -0
  44. package/esm/localization/bundles/es-ES.localization-bundle.d.ts +6 -0
  45. package/esm/localization/bundles/es-ES.localization-bundle.d.ts.map +1 -1
  46. package/esm/localization/bundles/es-ES.localization-bundle.js +6 -0
  47. package/esm/localization/bundles/fi-FI.localization-bundle.d.ts +6 -0
  48. package/esm/localization/bundles/fi-FI.localization-bundle.d.ts.map +1 -1
  49. package/esm/localization/bundles/fi-FI.localization-bundle.js +6 -0
  50. package/esm/localization/bundles/fr-CA.localization-bundle.d.ts +6 -0
  51. package/esm/localization/bundles/fr-CA.localization-bundle.d.ts.map +1 -1
  52. package/esm/localization/bundles/fr-CA.localization-bundle.js +6 -0
  53. package/esm/localization/bundles/fr-FR.localization-bundle.d.ts +6 -0
  54. package/esm/localization/bundles/fr-FR.localization-bundle.d.ts.map +1 -1
  55. package/esm/localization/bundles/fr-FR.localization-bundle.js +6 -0
  56. package/esm/localization/bundles/id-ID.localization-bundle.d.ts +6 -0
  57. package/esm/localization/bundles/id-ID.localization-bundle.d.ts.map +1 -1
  58. package/esm/localization/bundles/id-ID.localization-bundle.js +6 -0
  59. package/esm/localization/bundles/it-IT.localization-bundle.d.ts +6 -0
  60. package/esm/localization/bundles/it-IT.localization-bundle.d.ts.map +1 -1
  61. package/esm/localization/bundles/it-IT.localization-bundle.js +6 -0
  62. package/esm/localization/bundles/ja-JP.localization-bundle.d.ts +6 -0
  63. package/esm/localization/bundles/ja-JP.localization-bundle.d.ts.map +1 -1
  64. package/esm/localization/bundles/ja-JP.localization-bundle.js +6 -0
  65. package/esm/localization/bundles/ko-KR.localization-bundle.d.ts +6 -0
  66. package/esm/localization/bundles/ko-KR.localization-bundle.d.ts.map +1 -1
  67. package/esm/localization/bundles/ko-KR.localization-bundle.js +6 -0
  68. package/esm/localization/bundles/nl-NL.localization-bundle.d.ts +6 -0
  69. package/esm/localization/bundles/nl-NL.localization-bundle.d.ts.map +1 -1
  70. package/esm/localization/bundles/nl-NL.localization-bundle.js +6 -0
  71. package/esm/localization/bundles/pl-PL.localization-bundle.d.ts +6 -0
  72. package/esm/localization/bundles/pl-PL.localization-bundle.d.ts.map +1 -1
  73. package/esm/localization/bundles/pl-PL.localization-bundle.js +6 -0
  74. package/esm/localization/bundles/pt-BR.localization-bundle.d.ts +6 -0
  75. package/esm/localization/bundles/pt-BR.localization-bundle.d.ts.map +1 -1
  76. package/esm/localization/bundles/pt-BR.localization-bundle.js +6 -0
  77. package/esm/localization/bundles/pt-PT.localization-bundle.d.ts +6 -0
  78. package/esm/localization/bundles/pt-PT.localization-bundle.d.ts.map +1 -1
  79. package/esm/localization/bundles/pt-PT.localization-bundle.js +6 -0
  80. package/esm/localization/bundles/ru-RU.localization-bundle.d.ts +6 -0
  81. package/esm/localization/bundles/ru-RU.localization-bundle.d.ts.map +1 -1
  82. package/esm/localization/bundles/ru-RU.localization-bundle.js +6 -0
  83. package/esm/localization/bundles/sl-SI.localization-bundle.d.ts +6 -0
  84. package/esm/localization/bundles/sl-SI.localization-bundle.d.ts.map +1 -1
  85. package/esm/localization/bundles/sl-SI.localization-bundle.js +6 -0
  86. package/esm/localization/bundles/th-TH.localization-bundle.d.ts +6 -0
  87. package/esm/localization/bundles/th-TH.localization-bundle.d.ts.map +1 -1
  88. package/esm/localization/bundles/th-TH.localization-bundle.js +6 -0
  89. package/esm/localization/bundles/tr-TR.localization-bundle.d.ts +6 -0
  90. package/esm/localization/bundles/tr-TR.localization-bundle.d.ts.map +1 -1
  91. package/esm/localization/bundles/tr-TR.localization-bundle.js +6 -0
  92. package/esm/localization/bundles/uk-UA.localization-bundle.d.ts +6 -0
  93. package/esm/localization/bundles/uk-UA.localization-bundle.d.ts.map +1 -1
  94. package/esm/localization/bundles/uk-UA.localization-bundle.js +6 -0
  95. package/esm/localization/bundles/vi-VN.localization-bundle.d.ts +6 -0
  96. package/esm/localization/bundles/vi-VN.localization-bundle.d.ts.map +1 -1
  97. package/esm/localization/bundles/vi-VN.localization-bundle.js +6 -0
  98. package/esm/localization/bundles/zh-HK.localization-bundle.d.ts +6 -0
  99. package/esm/localization/bundles/zh-HK.localization-bundle.d.ts.map +1 -1
  100. package/esm/localization/bundles/zh-HK.localization-bundle.js +6 -0
  101. package/esm/localization/bundles/zh-Hans.localization-bundle.d.ts +6 -0
  102. package/esm/localization/bundles/zh-Hans.localization-bundle.d.ts.map +1 -1
  103. package/esm/localization/bundles/zh-Hans.localization-bundle.js +6 -0
  104. package/esm/localization/bundles/zh-Hant.localization-bundle.d.ts +6 -0
  105. package/esm/localization/bundles/zh-Hant.localization-bundle.d.ts.map +1 -1
  106. package/esm/localization/bundles/zh-Hant.localization-bundle.js +6 -0
  107. package/esm/model.d.ts +1 -1
  108. package/esm/model.d.ts.map +1 -1
  109. package/esm/sdk-ui-gen-ai.d.ts +1 -1
  110. package/package.json +20 -20
  111. package/styles/css/main.css +60 -1
  112. package/styles/css/main.css.map +1 -1
  113. package/styles/css/messages.css +54 -0
  114. package/styles/css/messages.css.map +1 -1
  115. package/styles/scss/messages.scss +16 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Messages.d.ts","sourceRoot":"","sources":["../../src/components/Messages.tsx"],"names":[],"mappings":"AA8MA,eAAO,MAAM,QAAQ,EAAE,GAAiD,CAAC"}
1
+ {"version":3,"file":"Messages.d.ts","sourceRoot":"","sources":["../../src/components/Messages.tsx"],"names":[],"mappings":"AAsNA,eAAO,MAAM,QAAQ,EAAE,GAAiD,CAAC"}
@@ -64,13 +64,13 @@ function ConversationMessages({ messages, catalogItems }) {
64
64
  const isLast = isLastGroup && mi === group.messages.length - 1;
65
65
  switch (message.role) {
66
66
  case "user":
67
- return (_jsx(UserItemComponent, { message: message, isLast: isLast }, message.localId));
67
+ return (_jsx(UserItemComponent, { groups: [previousGroup, group], message: message, isLast: isLast }, message.localId));
68
68
  case "assistant":
69
- return (_jsx(AssistantItemComponent, { group: group, message: message, isLast: isLast }, message.localId));
69
+ return (_jsx(AssistantItemComponent, { groups: [previousGroup, group], message: message, isLast: isLast }, message.localId));
70
70
  case "tool":
71
- return (_jsx(ToolItemComponent, { message: message, isLast: isLast }, message.localId));
71
+ return (_jsx(ToolItemComponent, { groups: [previousGroup, group], message: message, isLast: isLast }, message.localId));
72
72
  case "system":
73
- return _jsx(SystemItemComponent, { message: message }, message.localId);
73
+ return (_jsx(SystemItemComponent, { groups: [previousGroup, group], message: message }, message.localId));
74
74
  default:
75
75
  return assertNever(message.role);
76
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rehype-references.d.ts","sourceRoot":"","sources":["../../../../src/components/completion/plugins/rehype-references.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,OAAO,CAAC;AAGlC,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAK3D,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,iBAAiB,EAAE,8BAuC/D"}
1
+ {"version":3,"file":"rehype-references.d.ts","sourceRoot":"","sources":["../../../../src/components/completion/plugins/rehype-references.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,OAAO,CAAC;AAGlC,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAK3D,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,iBAAiB,EAAE,8BAwC/D"}
@@ -17,6 +17,7 @@ export function rehypeReferences(references) {
17
17
  label: obj.type === "label",
18
18
  fact: obj.type === "fact",
19
19
  date: obj.type === "date",
20
+ dashboard: obj.type === "dashboard",
20
21
  }),
21
22
  style: {},
22
23
  },
@@ -0,0 +1,4 @@
1
+ import { type TextContentObject } from "../../model.js";
2
+ import { type IChatMessagesGroup } from "../utils/groupUtility.js";
3
+ export declare function useToolsReferences(g: [IChatMessagesGroup | undefined, IChatMessagesGroup]): TextContentObject[];
4
+ //# sourceMappingURL=useToolsReferences.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useToolsReferences.d.ts","sourceRoot":"","sources":["../../../src/components/completion/useToolsReferences.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,wBAAgB,kBAAkB,CAC9B,CAAC,EAAE,CAAC,kBAAkB,GAAG,SAAS,EAAE,kBAAkB,CAAC,GACxD,iBAAiB,EAAE,CAsBrB"}
@@ -0,0 +1,69 @@
1
+ // (C) 2026 GoodData Corporation
2
+ import { useMemo } from "react";
3
+ import { isChatConversationToolResultContent, } from "@gooddata/sdk-backend-spi";
4
+ export function useToolsReferences(g) {
5
+ const [group1, group2] = g;
6
+ return useMemo(() => {
7
+ const groups = [group1, group2].filter((g) => g);
8
+ const references = [];
9
+ groups.forEach((group) => {
10
+ group.messages.forEach((message) => {
11
+ const cont = message.content;
12
+ // Skip system and error messages
13
+ if (cont.type === "error" || cont.type === "system") {
14
+ return;
15
+ }
16
+ if (isChatConversationToolResultContent(cont)) {
17
+ parseToolResults(references, cont);
18
+ }
19
+ });
20
+ });
21
+ return references;
22
+ }, [group1, group2]);
23
+ }
24
+ function parseToolResults(references, cont) {
25
+ // Is not an objects, skip it
26
+ if (typeof cont.result === "string") {
27
+ return;
28
+ }
29
+ //NOTE: There can be basically anything
30
+ const res = (cont.result ?? {});
31
+ //.parsed_objects
32
+ if (Array.isArray(res.parsed_objects)) {
33
+ const created = res.parsed_objects.map((obj) => ({
34
+ type: obj.object_type,
35
+ id: obj.object_id,
36
+ title: "",
37
+ }));
38
+ mergeReferenceObjectInfos(references, created);
39
+ }
40
+ //.objects
41
+ if (Array.isArray(res.objects)) {
42
+ const created = res.objects.map((obj) => ({
43
+ type: (obj.final_type ?? obj.type),
44
+ id: obj.id,
45
+ title: obj.title,
46
+ }));
47
+ mergeReferenceObjectInfos(references, created);
48
+ }
49
+ //.objects
50
+ if (Array.isArray(res.data?.metrics)) {
51
+ const created = res.data.metrics.map((obj) => ({
52
+ type: obj.type,
53
+ id: obj.id,
54
+ title: obj.attributes?.title ?? "",
55
+ }));
56
+ mergeReferenceObjectInfos(references, created);
57
+ }
58
+ }
59
+ function mergeReferenceObjectInfos(objects, created) {
60
+ created.forEach((obj) => {
61
+ const existing = objects.find((o) => o.id === obj.id && o.type === obj.type);
62
+ if (existing) {
63
+ existing.title = existing.title || obj.title;
64
+ }
65
+ else {
66
+ objects.push(obj);
67
+ }
68
+ });
69
+ }
@@ -12,7 +12,7 @@ export declare function getOptions(intl: IntlShape, { items, search, canManage,
12
12
  canAnalyze?: boolean;
13
13
  onCompletionSelected?: (completion: ICompletionItem) => void;
14
14
  }): ICompletionItem[];
15
- declare const SupportedReferenceTypes: readonly ["fact", "metric", "date", "attribute", "label"];
15
+ declare const SupportedReferenceTypes: readonly ["fact", "metric", "date", "attribute", "label", "dashboard"];
16
16
  export declare function getReferenceRegex(split?: boolean): RegExp;
17
17
  export declare function getItems(intl: IntlShape, item: CatalogItem, { canManage, canAnalyze, onCompletionSelected }: {
18
18
  canManage?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/completion/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EACH,KAAK,WAAW,EAChB,KAAK,mCAAmC,EACxC,KAAK,qBAAqB,EAO7B,MAAM,qBAAqB,CAAC;AAI7B,MAAM,WAAW,eAAgB,SAAQ,UAAU;IAC/C,IAAI,EAAE,WAAW,GAAG,qBAAqB,CAAC;CAC7C;AAGD,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,iBAW7C;AAGD,wBAAgB,UAAU,CACtB,IAAI,EAAE,SAAS,EACf,EACI,KAAK,EACL,MAAM,EACN,SAAS,EACT,UAAU,EACV,oBAA+B,EAClC,EAAE;IACC,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oBAAoB,CAAC,EAAE,CAAC,UAAU,EAAE,eAAe,KAAK,IAAI,CAAC;CAChE,GACF,eAAe,EAAE,CAanB;AAED,QAAA,MAAM,uBAAuB,2DAA4D,CAAC;AAG1F,wBAAgB,iBAAiB,CAAC,KAAK,CAAC,EAAE,OAAO,UAKhD;AAGD,wBAAgB,QAAQ,CACpB,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,WAAW,EACjB,EACI,SAAS,EACT,UAAU,EACV,oBAAoB,EACvB,EAAE;IACC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oBAAoB,CAAC,EAAE,CAAC,UAAU,EAAE,eAAe,KAAK,IAAI,CAAC;CAChE,GACF,eAAe,EAAE,CAqGnB;AAUD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,eAAe,iBAExD;AAGD,wBAAgB,gBAAgB,CAC5B,IAAI,EAAE,WAAW,GAAG,qBAAqB,GAAG,mCAAmC,GAChF,MAAM,GAAG,IAAI,CAoBf;AAGD,wBAAgB,mBAAmB,CAC/B,IAAI,EAAE,WAAW,GAAG,qBAAqB,GAAG,mCAAmC,UAqBlF;AAGD,wBAAgB,kBAAkB,CAC9B,IAAI,EAAE,WAAW,GAAG,qBAAqB,GAAG,mCAAmC,GAChF,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAoBjD"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/completion/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EACH,KAAK,WAAW,EAChB,KAAK,mCAAmC,EACxC,KAAK,qBAAqB,EAO7B,MAAM,qBAAqB,CAAC;AAI7B,MAAM,WAAW,eAAgB,SAAQ,UAAU;IAC/C,IAAI,EAAE,WAAW,GAAG,qBAAqB,CAAC;CAC7C;AAGD,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,iBAW7C;AAGD,wBAAgB,UAAU,CACtB,IAAI,EAAE,SAAS,EACf,EACI,KAAK,EACL,MAAM,EACN,SAAS,EACT,UAAU,EACV,oBAA+B,EAClC,EAAE;IACC,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oBAAoB,CAAC,EAAE,CAAC,UAAU,EAAE,eAAe,KAAK,IAAI,CAAC;CAChE,GACF,eAAe,EAAE,CAanB;AAED,QAAA,MAAM,uBAAuB,wEAAyE,CAAC;AAGvG,wBAAgB,iBAAiB,CAAC,KAAK,CAAC,EAAE,OAAO,UAKhD;AAGD,wBAAgB,QAAQ,CACpB,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,WAAW,EACjB,EACI,SAAS,EACT,UAAU,EACV,oBAAoB,EACvB,EAAE;IACC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oBAAoB,CAAC,EAAE,CAAC,UAAU,EAAE,eAAe,KAAK,IAAI,CAAC;CAChE,GACF,eAAe,EAAE,CAqGnB;AAUD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,eAAe,iBAExD;AAGD,wBAAgB,gBAAgB,CAC5B,IAAI,EAAE,WAAW,GAAG,qBAAqB,GAAG,mCAAmC,GAChF,MAAM,GAAG,IAAI,CAoBf;AAGD,wBAAgB,mBAAmB,CAC/B,IAAI,EAAE,WAAW,GAAG,qBAAqB,GAAG,mCAAmC,UAqBlF;AAGD,wBAAgB,kBAAkB,CAC9B,IAAI,EAAE,WAAW,GAAG,qBAAqB,GAAG,mCAAmC,GAChF,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAoBjD"}
@@ -28,7 +28,7 @@ export function getOptions(intl, { items, search, canManage, canAnalyze, onCompl
28
28
  return search ? label.includes(search.toLowerCase()) || apply.includes(search.toLowerCase()) : true;
29
29
  });
30
30
  }
31
- const SupportedReferenceTypes = ["fact", "metric", "date", "attribute", "label"];
31
+ const SupportedReferenceTypes = ["fact", "metric", "date", "attribute", "label", "dashboard"];
32
32
  // Utility: Get regex for references
33
33
  export function getReferenceRegex(split) {
34
34
  if (split) {
@@ -1,10 +1,10 @@
1
1
  import { type IChatConversationLocalItem } from "../../model.js";
2
2
  import { type IChatMessagesGroup } from "../utils/groupUtility.js";
3
3
  type AssistantItemProps = {
4
- group: IChatMessagesGroup;
4
+ groups: [IChatMessagesGroup | undefined, IChatMessagesGroup];
5
5
  message: IChatConversationLocalItem;
6
6
  isLast?: boolean;
7
7
  };
8
- export declare function AssistantItemComponent({ message, group, isLast }: AssistantItemProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare function AssistantItemComponent({ message, groups, isLast }: AssistantItemProps): import("react/jsx-runtime").JSX.Element;
9
9
  export {};
10
10
  //# sourceMappingURL=AssistantItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantItem.d.ts","sourceRoot":"","sources":["../../../src/components/messages/AssistantItem.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAQnE,KAAK,kBAAkB,GAAG;IACtB,KAAK,EAAE,kBAAkB,CAAC;IAC1B,OAAO,EAAE,0BAA0B,CAAC;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,kBAAkB,2CAkCpF"}
1
+ {"version":3,"file":"AssistantItem.d.ts","sourceRoot":"","sources":["../../../src/components/messages/AssistantItem.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAEjE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAQnE,KAAK,kBAAkB,GAAG;IACtB,MAAM,EAAE,CAAC,kBAAkB,GAAG,SAAS,EAAE,kBAAkB,CAAC,CAAC;IAC7D,OAAO,EAAE,0BAA0B,CAAC;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,kBAAkB,2CAqCrF"}
@@ -2,16 +2,19 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  // (C) 2024-2026 GoodData Corporation
3
3
  import cx from "classnames";
4
4
  import { useIntl } from "react-intl";
5
+ import { useToolsReferences } from "../completion/useToolsReferences.js";
5
6
  import { AssistantItemFeedback } from "./AssistantItemFeedback.js";
6
7
  import { AssistantItemSuggestions } from "./AssistantItemSuggestions.js";
7
8
  import { ReasoningIcon } from "./contents/ReasoningIcon.js";
8
9
  import { ConversationItemContents } from "./ConversationItemContents.js";
9
10
  import { getItemState } from "./itemState.js";
10
- export function AssistantItemComponent({ message, group, isLast }) {
11
+ export function AssistantItemComponent({ message, groups, isLast }) {
11
12
  const intl = useIntl();
13
+ const [, group] = groups;
12
14
  const messageState = getItemState(message);
15
+ const references = useToolsReferences(groups);
13
16
  const classNames = cx("gd-gen-ai-chat__messages__conversation", "gd-gen-ai-chat__messages__conversation--assistant", `gd-gen-ai-chat__messages__conversation--${message.content.type}`, messageState === "cancelled" && "gd-gen-ai-chat__messages__conversation--cancelled", isLast && "gd-gen-ai-chat__messages__conversation--isLast");
14
17
  return (_jsxs("div", { className: classNames, "data-state": messageState, "data-testid": "gen-ai-conversation-assistant-message", children: [
15
- _jsx("span", { className: "gd-gen-ai-chat__visually__hidden", children: intl.formatMessage({ id: "gd.gen-ai.message.label.assistant" }) }), _jsx(ReasoningIcon, { content: message.content }), _jsx(ConversationItemContents, { role: "assistant", message: message, isLoading: messageState === "loading", isLast: isLast }), _jsx(AssistantItemSuggestions, { type: "followUp", content: message.content, showSuggestions: true }), _jsx(AssistantItemFeedback, { group: group, message: message, isLast: isLast }), _jsx(AssistantItemSuggestions, { type: "actions", content: message.content, showSuggestions: isLast })
18
+ _jsx("span", { className: "gd-gen-ai-chat__visually__hidden", children: intl.formatMessage({ id: "gd.gen-ai.message.label.assistant" }) }), _jsx(ReasoningIcon, { content: message.content }), _jsx(ConversationItemContents, { role: "assistant", message: message, references: references, isLoading: messageState === "loading", isLast: isLast }), _jsx(AssistantItemSuggestions, { type: "followUp", content: message.content, showSuggestions: true }), _jsx(AssistantItemFeedback, { group: group, message: message, isLast: isLast }), _jsx(AssistantItemSuggestions, { type: "actions", content: message.content, showSuggestions: isLast })
16
19
  ] }));
17
20
  }
@@ -1,10 +1,11 @@
1
- import { type IChatConversationLocalItem } from "../../model.js";
1
+ import { type IChatConversationLocalItem, type TextContentObject } from "../../model.js";
2
2
  type ConversationItemContentsProps = {
3
3
  message: IChatConversationLocalItem;
4
+ references: TextContentObject[];
4
5
  role: "user" | "assistant" | "tool";
5
6
  isLoading: boolean;
6
7
  isLast?: boolean;
7
8
  };
8
- export declare function ConversationItemContents({ message, isLoading }: ConversationItemContentsProps): import("react/jsx-runtime").JSX.Element | null;
9
+ export declare function ConversationItemContents({ message, references, isLoading }: ConversationItemContentsProps): import("react/jsx-runtime").JSX.Element | null;
9
10
  export {};
10
11
  //# sourceMappingURL=ConversationItemContents.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConversationItemContents.d.ts","sourceRoot":"","sources":["../../../src/components/messages/ConversationItemContents.tsx"],"names":[],"mappings":"AAEA,OAAO,EAGH,KAAK,0BAA0B,EAElC,MAAM,gBAAgB,CAAC;AAaxB,KAAK,6BAA6B,GAAG;IACjC,OAAO,EAAE,0BAA0B,CAAC;IACpC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,6BAA6B,kDA6G7F"}
1
+ {"version":3,"file":"ConversationItemContents.d.ts","sourceRoot":"","sources":["../../../src/components/messages/ConversationItemContents.tsx"],"names":[],"mappings":"AAEA,OAAO,EAGH,KAAK,0BAA0B,EAE/B,KAAK,iBAAiB,EACzB,MAAM,gBAAgB,CAAC;AAaxB,KAAK,6BAA6B,GAAG;IACjC,OAAO,EAAE,0BAA0B,CAAC;IACpC,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,6BAA6B,kDA6GzG"}
@@ -9,22 +9,22 @@ import { ConversationToolCallContent } from "./conversationContents/Conversation
9
9
  import { ConversationToolResultContent } from "./conversationContents/ConversationToolResultContent.js";
10
10
  import { ConversationVisualizationContent } from "./conversationContents/ConversationVisualizationContent.js";
11
11
  import { ConversationWhatIfContent } from "./conversationContents/ConversationWhatIfContent.js";
12
- export function ConversationItemContents({ message, isLoading }) {
12
+ export function ConversationItemContents({ message, references, isLoading }) {
13
13
  const content = message.content;
14
14
  if (content.type === "error") {
15
15
  return (_jsx(ConversationErrorContent, { useMarkdown: true, message: content.message, traceId: content.traceId, code: content.code, reason: content.reason, isLoading: isLoading }));
16
16
  }
17
17
  if (content.type === "text") {
18
- return (_jsx(ConversationTextContent, { useMarkdown: true, text: content.text, objects: content.objects ?? [], isLoading: isLoading }));
18
+ return (_jsx(ConversationTextContent, { useMarkdown: true, text: content.text, objects: [...(content.objects ?? []), ...references], isLoading: isLoading }));
19
19
  }
20
20
  if (content.type === "reasoning") {
21
- return (_jsx(ConversationReasoningContent, { useMarkdown: true, summary: content.summary, objects: content.objects ?? [], isLoading: isLoading }));
21
+ return (_jsx(ConversationReasoningContent, { useMarkdown: true, summary: content.summary, objects: [...(content.objects ?? []), ...references], isLoading: isLoading }));
22
22
  }
23
23
  if (content.type === "multipart") {
24
24
  const whatIf = loadWhatIfScenarios(content);
25
25
  return (_jsx(_Fragment, { children: content.parts?.map((part, index) => {
26
26
  if (part.type === "text") {
27
- return (_jsx(ConversationTextContent, { useMarkdown: true, text: part.text, objects: part.objects }, index));
27
+ return (_jsx(ConversationTextContent, { useMarkdown: true, text: part.text, objects: [...(part.objects ?? []), ...references] }, index));
28
28
  }
29
29
  if (part.type === "visualization" && !whatIf) {
30
30
  return (_jsx(ConversationVisualizationContent, { message: message, part: part, visualization: part.visualization }, index));
@@ -12,7 +12,7 @@ export function ItemsGroup({ group, previousGroup, children }) {
12
12
  if (group.type === "reasoning") {
13
13
  return (_jsx(ReasoningItemsGroup, { classNames: classNames, previousGroup: previousGroup, group: group, children: children }));
14
14
  }
15
- return (_jsx(DefaultItemsGroup, { classNames: classNames, group: group, children: children }));
15
+ return (_jsx(DefaultItemsGroup, { classNames: classNames, previousGroup: previousGroup, group: group, children: children }));
16
16
  }
17
17
  function ReasoningItemsGroup({ classNames, group, previousGroup, children }) {
18
18
  const { lastMessage, isExpanded, setIsExpanded, isCompleted, isEmpty, duration } = useReasoningGroup(previousGroup, group);
@@ -1,5 +1,7 @@
1
1
  import { type IChatConversationLocalItem } from "../../model.js";
2
+ import { type IChatMessagesGroup } from "../utils/groupUtility.js";
2
3
  type SystemItemProps = {
4
+ groups: [IChatMessagesGroup | undefined, IChatMessagesGroup];
3
5
  message: IChatConversationLocalItem;
4
6
  };
5
7
  export declare function SystemItemComponent({ message }: SystemItemProps): import("react/jsx-runtime").JSX.Element | null;
@@ -1 +1 @@
1
- {"version":3,"file":"SystemItem.d.ts","sourceRoot":"","sources":["../../../src/components/messages/SystemItem.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAMjE,KAAK,eAAe,GAAG;IACnB,OAAO,EAAE,0BAA0B,CAAC;CACvC,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAAE,OAAO,EAAE,EAAE,eAAe,kDAQ/D"}
1
+ {"version":3,"file":"SystemItem.d.ts","sourceRoot":"","sources":["../../../src/components/messages/SystemItem.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAGjE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAInE,KAAK,eAAe,GAAG;IACnB,MAAM,EAAE,CAAC,kBAAkB,GAAG,SAAS,EAAE,kBAAkB,CAAC,CAAC;IAC7D,OAAO,EAAE,0BAA0B,CAAC;CACvC,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAAE,OAAO,EAAE,EAAE,eAAe,kDAQ/D"}
@@ -1,8 +1,10 @@
1
1
  import { type IChatConversationLocalItem } from "../../model.js";
2
+ import { type IChatMessagesGroup } from "../utils/groupUtility.js";
2
3
  type ToolItemProps = {
3
4
  message: IChatConversationLocalItem;
5
+ groups: [IChatMessagesGroup | undefined, IChatMessagesGroup];
4
6
  isLast?: boolean;
5
7
  };
6
- export declare function ToolItemComponent({ message, isLast }: ToolItemProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare function ToolItemComponent({ message, groups, isLast }: ToolItemProps): import("react/jsx-runtime").JSX.Element;
7
9
  export {};
8
10
  //# sourceMappingURL=ToolItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToolItem.d.ts","sourceRoot":"","sources":["../../../src/components/messages/ToolItem.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAKjE,KAAK,aAAa,GAAG;IACjB,OAAO,EAAE,0BAA0B,CAAC;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,aAAa,2CAwBnE"}
1
+ {"version":3,"file":"ToolItem.d.ts","sourceRoot":"","sources":["../../../src/components/messages/ToolItem.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAEjE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAKnE,KAAK,aAAa,GAAG;IACjB,OAAO,EAAE,0BAA0B,CAAC;IACpC,MAAM,EAAE,CAAC,kBAAkB,GAAG,SAAS,EAAE,kBAAkB,CAAC,CAAC;IAC7D,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,aAAa,2CA0B3E"}
@@ -2,13 +2,15 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  // (C) 2024-2026 GoodData Corporation
3
3
  import cx from "classnames";
4
4
  import { useIntl } from "react-intl";
5
+ import { useToolsReferences } from "../completion/useToolsReferences.js";
5
6
  import { ConversationItemContents } from "./ConversationItemContents.js";
6
7
  import { getItemState } from "./itemState.js";
7
- export function ToolItemComponent({ message, isLast }) {
8
+ export function ToolItemComponent({ message, groups, isLast }) {
8
9
  const intl = useIntl();
9
10
  const messageState = getItemState(message);
11
+ const references = useToolsReferences(groups);
10
12
  const classNames = cx("gd-gen-ai-chat__messages__conversation", "gd-gen-ai-chat__messages__conversation--tool", messageState === "cancelled" && "gd-gen-ai-chat__messages__conversation--cancelled");
11
13
  return (_jsxs("div", { className: classNames, "data-state": messageState, children: [
12
- _jsx("span", { className: "gd-gen-ai-chat__visually__hidden", children: intl.formatMessage({ id: "gd.gen-ai.message.label.tool" }) }), _jsx(ConversationItemContents, { role: "tool", isLast: isLast, message: message, isLoading: messageState === "loading" })
14
+ _jsx("span", { className: "gd-gen-ai-chat__visually__hidden", children: intl.formatMessage({ id: "gd.gen-ai.message.label.tool" }) }), _jsx(ConversationItemContents, { role: "tool", isLast: isLast, message: message, references: references, isLoading: messageState === "loading" })
13
15
  ] }));
14
16
  }
@@ -1,8 +1,10 @@
1
1
  import { type IChatConversationLocalItem } from "../../model.js";
2
+ import { type IChatMessagesGroup } from "../utils/groupUtility.js";
2
3
  type UserItemProps = {
3
4
  message: IChatConversationLocalItem;
5
+ groups: [IChatMessagesGroup | undefined, IChatMessagesGroup];
4
6
  isLast?: boolean;
5
7
  };
6
- export declare function UserItemComponent({ message, isLast }: UserItemProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare function UserItemComponent({ message, isLast, groups }: UserItemProps): import("react/jsx-runtime").JSX.Element;
7
9
  export {};
8
10
  //# sourceMappingURL=UserItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserItem.d.ts","sourceRoot":"","sources":["../../../src/components/messages/UserItem.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAKjE,KAAK,aAAa,GAAG;IACjB,OAAO,EAAE,0BAA0B,CAAC;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,aAAa,2CAwBnE"}
1
+ {"version":3,"file":"UserItem.d.ts","sourceRoot":"","sources":["../../../src/components/messages/UserItem.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAEjE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAKnE,KAAK,aAAa,GAAG;IACjB,OAAO,EAAE,0BAA0B,CAAC;IACpC,MAAM,EAAE,CAAC,kBAAkB,GAAG,SAAS,EAAE,kBAAkB,CAAC,CAAC;IAC7D,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,aAAa,2CA0B3E"}
@@ -2,13 +2,15 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  // (C) 2024-2026 GoodData Corporation
3
3
  import cx from "classnames";
4
4
  import { useIntl } from "react-intl";
5
+ import { useToolsReferences } from "../completion/useToolsReferences.js";
5
6
  import { ConversationItemContents } from "./ConversationItemContents.js";
6
7
  import { getItemState } from "./itemState.js";
7
- export function UserItemComponent({ message, isLast }) {
8
+ export function UserItemComponent({ message, isLast, groups }) {
8
9
  const intl = useIntl();
9
10
  const messageState = getItemState(message);
11
+ const references = useToolsReferences(groups);
10
12
  const classNames = cx("gd-gen-ai-chat__messages__conversation", "gd-gen-ai-chat__messages__conversation--user", messageState === "cancelled" && "gd-gen-ai-chat__messages__conversation--cancelled");
11
13
  return (_jsxs("div", { className: classNames, "data-state": messageState, children: [
12
- _jsx("span", { className: "gd-gen-ai-chat__visually__hidden", children: intl.formatMessage({ id: "gd.gen-ai.message.label.user" }) }), _jsx(ConversationItemContents, { role: "user", message: message, isLoading: messageState === "loading", isLast: isLast })
14
+ _jsx("span", { className: "gd-gen-ai-chat__visually__hidden", children: intl.formatMessage({ id: "gd.gen-ai.message.label.user" }) }), _jsx(ConversationItemContents, { role: "user", message: message, references: references, isLoading: messageState === "loading", isLast: isLast })
13
15
  ] }));
14
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SemanticSearchTreeView.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/components/SemanticSearchTreeView.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAIhE,KAAK,2BAA2B,GAAG;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,sBAAsB,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,2CAQxE;AAED,wBAAgB,0BAA0B,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,2BAA2B,kDAsExG"}
1
+ {"version":3,"file":"SemanticSearchTreeView.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/components/SemanticSearchTreeView.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAIhE,KAAK,2BAA2B,GAAG;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,sBAAsB,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,2CAQxE;AAED,wBAAgB,0BAA0B,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,2BAA2B,kDAwExG"}
@@ -18,6 +18,7 @@ export function SemanticSearchTreeViewImpl({ workspace, content, maxHeight }) {
18
18
  const canEdit = canFullControl || canManage || canAnalyze;
19
19
  const useHostMetricEditor = Boolean(settings?.enableShellApplication_metricEditor);
20
20
  const useHostAnalyticalDesigner = Boolean(settings?.enableShellApplication_analyticalDesigner);
21
+ const useHostDashboards = Boolean(settings?.enableShellApplication_dashboards);
21
22
  const items = buildSemanticSearchTreeViewItems({
22
23
  intl,
23
24
  workspace,
@@ -28,6 +29,7 @@ export function SemanticSearchTreeViewImpl({ workspace, content, maxHeight }) {
28
29
  uiPathOptions: {
29
30
  useHostedMetricEditor: useHostMetricEditor,
30
31
  useHostedAnalyticalDesigner: useHostAnalyticalDesigner,
32
+ useHostedDashboards: useHostDashboards,
31
33
  },
32
34
  });
33
35
  const id = useId();
@@ -1 +1 @@
1
- {"version":3,"file":"CustomHyperlink.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/contents/CustomHyperlink.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAMxE,MAAM,MAAM,uBAAuB,GAAG;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,oBAAoB,GAAG,uBAAuB,GAAG;IAClD,QAAQ,CAAC,EAAE,sBAAsB,CAAC;CACrC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,oBAAoB,oDA2FtF;AAyBD,eAAO,MAAM,eAAe;;;;;EAEC,CAAC"}
1
+ {"version":3,"file":"CustomHyperlink.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/contents/CustomHyperlink.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAMxE,MAAM,MAAM,uBAAuB,GAAG;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,oBAAoB,GAAG,uBAAuB,GAAG;IAClD,QAAQ,CAAC,EAAE,sBAAsB,CAAC;CACrC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,oBAAoB,oDAkGtF;AA4BD,eAAO,MAAM,eAAe;;;;;EAEC,CAAC"}
@@ -12,6 +12,7 @@ export function CustomHyperlinkComponent({ href, text, settings }) {
12
12
  const { linkHandler, allowNativeLinks, canManage, canAnalyze } = useConfig();
13
13
  const enableShellApplication_metricEditor = Boolean(settings?.enableShellApplication_metricEditor);
14
14
  const enableShellApplication_analyticalDesigner = Boolean(settings?.enableShellApplication_analyticalDesigner);
15
+ const enableShellApplication_dashboards = Boolean(settings?.enableShellApplication_dashboards);
15
16
  const canManageMetrics = canManage || canAnalyze;
16
17
  const canManageVisualisations = canManage || canAnalyze;
17
18
  const parsedRef = useMemo(() => {
@@ -28,7 +29,7 @@ export function CustomHyperlinkComponent({ href, text, settings }) {
28
29
  if (!workspaceId || !id) {
29
30
  return null;
30
31
  }
31
- const itemUrl = getItemUrl(workspaceId, id, type, enableShellApplication_metricEditor, enableShellApplication_analyticalDesigner);
32
+ const itemUrl = getItemUrl(workspaceId, id, type, enableShellApplication_metricEditor, enableShellApplication_analyticalDesigner, enableShellApplication_dashboards);
32
33
  if (!itemUrl) {
33
34
  return null;
34
35
  }
@@ -38,7 +39,12 @@ export function CustomHyperlinkComponent({ href, text, settings }) {
38
39
  id,
39
40
  itemUrl,
40
41
  };
41
- }, [href, enableShellApplication_metricEditor, enableShellApplication_analyticalDesigner]);
42
+ }, [
43
+ href,
44
+ enableShellApplication_metricEditor,
45
+ enableShellApplication_analyticalDesigner,
46
+ enableShellApplication_dashboards,
47
+ ]);
42
48
  if (!parsedRef) {
43
49
  return text;
44
50
  }
@@ -70,14 +76,16 @@ export function CustomHyperlinkComponent({ href, text, settings }) {
70
76
  }
71
77
  return (_jsx("span", { className: "gd-hyperlink", onClick: handleLinkClick, children: _jsx("span", { className: "gd-hyperlink-text", children: text }) }));
72
78
  }
73
- const getItemUrl = (workspaceId, id, objectType, enableShellApplication_metricEditor, enableShellApplication_analyticalDesigner) => {
79
+ const getItemUrl = (workspaceId, id, objectType, enableShellApplication_metricEditor, enableShellApplication_analyticalDesigner, enableShellApplication_dashboards) => {
74
80
  switch (objectType) {
75
81
  case "visualization":
76
82
  return enableShellApplication_analyticalDesigner
77
83
  ? `/workspace/${workspaceId}/analyze/#/${id}/edit`
78
84
  : `/analyze/#/${workspaceId}/${id}/edit`;
79
85
  case "dashboard":
80
- return `/dashboards/#/workspace/${workspaceId}/dashboard/${id}`;
86
+ return enableShellApplication_dashboards
87
+ ? `/workspace/${workspaceId}/dashboards/#/dashboard/${id}`
88
+ : `/dashboards/#/workspace/${workspaceId}/dashboard/${id}`;
81
89
  case "metric":
82
90
  return enableShellApplication_metricEditor
83
91
  ? `/workspace/${workspaceId}/metrics/metric/${id}`
@@ -1,5 +1,5 @@
1
1
  export type ConversationToolResultContentProps = {
2
- result: string;
2
+ result: string | object;
3
3
  className?: string;
4
4
  isLoading?: boolean;
5
5
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ConversationToolResultContent.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/conversationContents/ConversationToolResultContent.tsx"],"names":[],"mappings":"AAKA,MAAM,MAAM,kCAAkC,GAAG;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAWF,wBAAgB,6BAA6B,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,kCAAkC,2CAmBzG"}
1
+ {"version":3,"file":"ConversationToolResultContent.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/conversationContents/ConversationToolResultContent.tsx"],"names":[],"mappings":"AAKA,MAAM,MAAM,kCAAkC,GAAG;IAC7C,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAWF,wBAAgB,6BAA6B,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,kCAAkC,2CAmBzG"}
@@ -28,6 +28,12 @@ export declare const de_DE: {
28
28
  "gd.gen-ai.input-placeholder": string;
29
29
  "gd.gen-ai.input-label.mac": string;
30
30
  "gd.gen-ai.input-label.win": string;
31
+ "gd.gen-ai.agents": string;
32
+ "gd.gen-ai.agents.loading": string;
33
+ "gd.gen-ai.agent.unavailable": string;
34
+ "gd.gen-ai.agent.unavailable.disabled-tooltip": string;
35
+ "gd.gen-ai.agent.switched": string;
36
+ "gd.gen-ai.agent.unknown": string;
31
37
  "gd.gen-ai.feedback.like": string;
32
38
  "gd.gen-ai.feedback.dislike": string;
33
39
  "gd.gen-ai.feedback.popup.title": string;
@@ -1 +1 @@
1
- {"version":3,"file":"de-DE.localization-bundle.d.ts","sourceRoot":"","sources":["../../../src/localization/bundles/de-DE.localization-bundle.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyIjB,CAAC"}
1
+ {"version":3,"file":"de-DE.localization-bundle.d.ts","sourceRoot":"","sources":["../../../src/localization/bundles/de-DE.localization-bundle.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+IjB,CAAC"}
@@ -30,6 +30,12 @@ export const de_DE = {
30
30
  "gd.gen-ai.input-placeholder": "Fragen Sie hier…",
31
31
  "gd.gen-ai.input-label.mac": "Stellen Sie Ihre Frage. Verwenden Sie Strg+Leerzeichen oder cmd+I für Vorschläge.",
32
32
  "gd.gen-ai.input-label.win": "Stellen Sie Ihre Frage. Verwenden Sie Strg+Leerzeichen oder Strg+I für Vorschläge.",
33
+ "gd.gen-ai.agents": "Agenten",
34
+ "gd.gen-ai.agents.loading": "Wird geladen",
35
+ "gd.gen-ai.agent.unavailable": "Kein Agent verfügbar",
36
+ "gd.gen-ai.agent.unavailable.disabled-tooltip": "Deaktiviert — keine Agenten verfügbar.",
37
+ "gd.gen-ai.agent.switched": "Zu Agent {title} gewechselt",
38
+ "gd.gen-ai.agent.unknown": "unbekannt",
33
39
  "gd.gen-ai.feedback.like": "Diese Nachricht als hilfreich markieren",
34
40
  "gd.gen-ai.feedback.dislike": "Diese Nachricht als nicht hilfreich markieren",
35
41
  "gd.gen-ai.feedback.popup.title": "Wir haben Ihr Feedback",
@@ -28,6 +28,12 @@ export declare const en_AU: {
28
28
  "gd.gen-ai.input-placeholder": string;
29
29
  "gd.gen-ai.input-label.mac": string;
30
30
  "gd.gen-ai.input-label.win": string;
31
+ "gd.gen-ai.agents": string;
32
+ "gd.gen-ai.agents.loading": string;
33
+ "gd.gen-ai.agent.unavailable": string;
34
+ "gd.gen-ai.agent.unavailable.disabled-tooltip": string;
35
+ "gd.gen-ai.agent.switched": string;
36
+ "gd.gen-ai.agent.unknown": string;
31
37
  "gd.gen-ai.feedback.like": string;
32
38
  "gd.gen-ai.feedback.dislike": string;
33
39
  "gd.gen-ai.feedback.popup.title": string;
@@ -1 +1 @@
1
- {"version":3,"file":"en-AU.localization-bundle.d.ts","sourceRoot":"","sources":["../../../src/localization/bundles/en-AU.localization-bundle.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyIjB,CAAC"}
1
+ {"version":3,"file":"en-AU.localization-bundle.d.ts","sourceRoot":"","sources":["../../../src/localization/bundles/en-AU.localization-bundle.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+IjB,CAAC"}
@@ -30,6 +30,12 @@ export const en_AU = {
30
30
  "gd.gen-ai.input-placeholder": "Ask here…",
31
31
  "gd.gen-ai.input-label.mac": "Ask your question. Use control+space or cmd+I for suggestions",
32
32
  "gd.gen-ai.input-label.win": "Ask your question. Use control+space or control+I for suggestions",
33
+ "gd.gen-ai.agents": "Agents",
34
+ "gd.gen-ai.agents.loading": "Loading",
35
+ "gd.gen-ai.agent.unavailable": "No agent available",
36
+ "gd.gen-ai.agent.unavailable.disabled-tooltip": "Disabled — no agents available.",
37
+ "gd.gen-ai.agent.switched": "Switched to {title} agent",
38
+ "gd.gen-ai.agent.unknown": "unknown",
33
39
  "gd.gen-ai.feedback.like": "Mark this message as useful",
34
40
  "gd.gen-ai.feedback.dislike": "Mark this message as unhelpful",
35
41
  "gd.gen-ai.feedback.popup.title": "We've received your feedback",
@@ -28,6 +28,12 @@ export declare const en_GB: {
28
28
  "gd.gen-ai.input-placeholder": string;
29
29
  "gd.gen-ai.input-label.mac": string;
30
30
  "gd.gen-ai.input-label.win": string;
31
+ "gd.gen-ai.agents": string;
32
+ "gd.gen-ai.agents.loading": string;
33
+ "gd.gen-ai.agent.unavailable": string;
34
+ "gd.gen-ai.agent.unavailable.disabled-tooltip": string;
35
+ "gd.gen-ai.agent.switched": string;
36
+ "gd.gen-ai.agent.unknown": string;
31
37
  "gd.gen-ai.feedback.like": string;
32
38
  "gd.gen-ai.feedback.dislike": string;
33
39
  "gd.gen-ai.feedback.popup.title": string;
@@ -1 +1 @@
1
- {"version":3,"file":"en-GB.localization-bundle.d.ts","sourceRoot":"","sources":["../../../src/localization/bundles/en-GB.localization-bundle.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyIjB,CAAC"}
1
+ {"version":3,"file":"en-GB.localization-bundle.d.ts","sourceRoot":"","sources":["../../../src/localization/bundles/en-GB.localization-bundle.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+IjB,CAAC"}
@@ -30,6 +30,12 @@ export const en_GB = {
30
30
  "gd.gen-ai.input-placeholder": "Ask here…",
31
31
  "gd.gen-ai.input-label.mac": "Ask your question. Use control+space or cmd+I for suggestions.",
32
32
  "gd.gen-ai.input-label.win": "Ask your question. Use Ctrl+Space or Ctrl+I for suggestions.",
33
+ "gd.gen-ai.agents": "Agents",
34
+ "gd.gen-ai.agents.loading": "Loading",
35
+ "gd.gen-ai.agent.unavailable": "No agent available",
36
+ "gd.gen-ai.agent.unavailable.disabled-tooltip": "Disabled — no agents available.",
37
+ "gd.gen-ai.agent.switched": "Switched to {title} agent",
38
+ "gd.gen-ai.agent.unknown": "unknown",
33
39
  "gd.gen-ai.feedback.like": "Mark this message as useful",
34
40
  "gd.gen-ai.feedback.dislike": "Mark this message as unhelpful",
35
41
  "gd.gen-ai.feedback.popup.title": "We have received your feedback",
@@ -28,6 +28,12 @@ export declare const es_419: {
28
28
  "gd.gen-ai.input-placeholder": string;
29
29
  "gd.gen-ai.input-label.mac": string;
30
30
  "gd.gen-ai.input-label.win": string;
31
+ "gd.gen-ai.agents": string;
32
+ "gd.gen-ai.agents.loading": string;
33
+ "gd.gen-ai.agent.unavailable": string;
34
+ "gd.gen-ai.agent.unavailable.disabled-tooltip": string;
35
+ "gd.gen-ai.agent.switched": string;
36
+ "gd.gen-ai.agent.unknown": string;
31
37
  "gd.gen-ai.feedback.like": string;
32
38
  "gd.gen-ai.feedback.dislike": string;
33
39
  "gd.gen-ai.feedback.popup.title": string;
@@ -1 +1 @@
1
- {"version":3,"file":"es-419.localization-bundle.d.ts","sourceRoot":"","sources":["../../../src/localization/bundles/es-419.localization-bundle.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyIlB,CAAC"}
1
+ {"version":3,"file":"es-419.localization-bundle.d.ts","sourceRoot":"","sources":["../../../src/localization/bundles/es-419.localization-bundle.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+IlB,CAAC"}
@@ -30,6 +30,12 @@ export const es_419 = {
30
30
  "gd.gen-ai.input-placeholder": "Pregunte aquí…",
31
31
  "gd.gen-ai.input-label.mac": "Formule su pregunta. Utilice control+espacio o cmd+I para obtener sugerencias.",
32
32
  "gd.gen-ai.input-label.win": "Haz tu pregunta. Utilice control+espacio o control+I para sugerencias.",
33
+ "gd.gen-ai.agents": "Agentes",
34
+ "gd.gen-ai.agents.loading": "Cargando",
35
+ "gd.gen-ai.agent.unavailable": "No hay agentes disponibles",
36
+ "gd.gen-ai.agent.unavailable.disabled-tooltip": "Deshabilitado — no hay agentes disponibles.",
37
+ "gd.gen-ai.agent.switched": "Se cambió al agente {title}",
38
+ "gd.gen-ai.agent.unknown": "desconocido",
33
39
  "gd.gen-ai.feedback.like": "Marcar este mensaje como útil",
34
40
  "gd.gen-ai.feedback.dislike": "Marcar este mensaje como no útil",
35
41
  "gd.gen-ai.feedback.popup.title": "Tenemos su opinión",
@@ -28,6 +28,12 @@ export declare const es_ES: {
28
28
  "gd.gen-ai.input-placeholder": string;
29
29
  "gd.gen-ai.input-label.mac": string;
30
30
  "gd.gen-ai.input-label.win": string;
31
+ "gd.gen-ai.agents": string;
32
+ "gd.gen-ai.agents.loading": string;
33
+ "gd.gen-ai.agent.unavailable": string;
34
+ "gd.gen-ai.agent.unavailable.disabled-tooltip": string;
35
+ "gd.gen-ai.agent.switched": string;
36
+ "gd.gen-ai.agent.unknown": string;
31
37
  "gd.gen-ai.feedback.like": string;
32
38
  "gd.gen-ai.feedback.dislike": string;
33
39
  "gd.gen-ai.feedback.popup.title": string;
@@ -1 +1 @@
1
- {"version":3,"file":"es-ES.localization-bundle.d.ts","sourceRoot":"","sources":["../../../src/localization/bundles/es-ES.localization-bundle.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyIjB,CAAC"}
1
+ {"version":3,"file":"es-ES.localization-bundle.d.ts","sourceRoot":"","sources":["../../../src/localization/bundles/es-ES.localization-bundle.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+IjB,CAAC"}