@stack-spot/ai-chat-widget 2.0.0-betacitric.7 → 2.0.0-betacitric.9

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 (110) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/dist/StackspotAIWidget.d.ts.map +1 -1
  3. package/dist/StackspotAIWidget.js +2 -1
  4. package/dist/StackspotAIWidget.js.map +1 -1
  5. package/dist/app-metadata.json +17 -5
  6. package/dist/chat-interceptors/quick-commands.d.ts.map +1 -1
  7. package/dist/chat-interceptors/quick-commands.js +10 -4
  8. package/dist/chat-interceptors/quick-commands.js.map +1 -1
  9. package/dist/components/HistoryList.d.ts.map +1 -1
  10. package/dist/components/HistoryList.js +2 -0
  11. package/dist/components/HistoryList.js.map +1 -1
  12. package/dist/components/ToolBadge.d.ts.map +1 -1
  13. package/dist/components/ToolBadge.js +3 -1
  14. package/dist/components/ToolBadge.js.map +1 -1
  15. package/dist/components/form/DescribedRadioGroup.d.ts.map +1 -1
  16. package/dist/components/form/DescribedRadioGroup.js +1 -1
  17. package/dist/components/form/DescribedRadioGroup.js.map +1 -1
  18. package/dist/context/hooks.d.ts +5 -0
  19. package/dist/context/hooks.d.ts.map +1 -1
  20. package/dist/context/hooks.js +4 -1
  21. package/dist/context/hooks.js.map +1 -1
  22. package/dist/hooks/midnight-update-view.d.ts +5 -0
  23. package/dist/hooks/midnight-update-view.d.ts.map +1 -0
  24. package/dist/hooks/midnight-update-view.js +30 -0
  25. package/dist/hooks/midnight-update-view.js.map +1 -0
  26. package/dist/index.d.ts +3 -3
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js.map +1 -1
  29. package/dist/layout.css +1 -1
  30. package/dist/state/WidgetState.d.ts +1 -1
  31. package/dist/state/WidgetState.d.ts.map +1 -1
  32. package/dist/state/constants.d.ts.map +1 -1
  33. package/dist/state/constants.js +3 -2
  34. package/dist/state/constants.js.map +1 -1
  35. package/dist/utils/tools.d.ts +9 -2
  36. package/dist/utils/tools.d.ts.map +1 -1
  37. package/dist/utils/tools.js +7 -1
  38. package/dist/utils/tools.js.map +1 -1
  39. package/dist/utils/upload/FileUpload.d.ts.map +1 -1
  40. package/dist/utils/upload/FileUpload.js +1 -2
  41. package/dist/utils/upload/FileUpload.js.map +1 -1
  42. package/dist/views/Agents/AgentDescription.d.ts.map +1 -1
  43. package/dist/views/Agents/AgentDescription.js +21 -13
  44. package/dist/views/Agents/AgentDescription.js.map +1 -1
  45. package/dist/views/Agents/dictionary.d.ts +1 -1
  46. package/dist/views/Agents/dictionary.d.ts.map +1 -1
  47. package/dist/views/Agents/dictionary.js +2 -0
  48. package/dist/views/Agents/dictionary.js.map +1 -1
  49. package/dist/views/Agents/styled.d.ts.map +1 -1
  50. package/dist/views/Agents/styled.js +14 -3
  51. package/dist/views/Agents/styled.js.map +1 -1
  52. package/dist/views/Agents/useAgentFavorites.js +3 -3
  53. package/dist/views/Agents/useAgentFavorites.js.map +1 -1
  54. package/dist/views/Chat/ChatMessage.d.ts.map +1 -1
  55. package/dist/views/Chat/ChatMessage.js +12 -8
  56. package/dist/views/Chat/ChatMessage.js.map +1 -1
  57. package/dist/views/Chat/styled.d.ts.map +1 -1
  58. package/dist/views/Chat/styled.js +24 -0
  59. package/dist/views/Chat/styled.js.map +1 -1
  60. package/dist/views/MessageInput/ContextBar.d.ts.map +1 -1
  61. package/dist/views/MessageInput/ContextBar.js +1 -1
  62. package/dist/views/MessageInput/ContextBar.js.map +1 -1
  63. package/dist/views/MessageInput/SelectContent.d.ts.map +1 -1
  64. package/dist/views/MessageInput/SelectContent.js +6 -0
  65. package/dist/views/MessageInput/SelectContent.js.map +1 -1
  66. package/dist/views/MessageInput/UploadBar.d.ts.map +1 -1
  67. package/dist/views/MessageInput/UploadBar.js +29 -2
  68. package/dist/views/MessageInput/UploadBar.js.map +1 -1
  69. package/dist/views/MessageInput/dictionary.d.ts +1 -1
  70. package/dist/views/MessageInput/dictionary.d.ts.map +1 -1
  71. package/dist/views/MessageInput/dictionary.js +4 -0
  72. package/dist/views/MessageInput/dictionary.js.map +1 -1
  73. package/dist/views/MessageInput/styled.d.ts.map +1 -1
  74. package/dist/views/MessageInput/styled.js +12 -0
  75. package/dist/views/MessageInput/styled.js.map +1 -1
  76. package/dist/views/Resources.d.ts +2 -0
  77. package/dist/views/Resources.d.ts.map +1 -0
  78. package/dist/views/Resources.js +59 -0
  79. package/dist/views/Resources.js.map +1 -0
  80. package/dist/views/Steps/dictionary.d.ts +1 -1
  81. package/dist/views/Tools.js +4 -2
  82. package/dist/views/Tools.js.map +1 -1
  83. package/package.json +7 -4
  84. package/src/StackspotAIWidget.tsx +2 -0
  85. package/src/app-metadata.json +17 -5
  86. package/src/chat-interceptors/quick-commands.ts +12 -6
  87. package/src/components/HistoryList.tsx +3 -0
  88. package/src/components/ToolBadge.tsx +10 -1
  89. package/src/components/form/DescribedRadioGroup.tsx +0 -1
  90. package/src/context/hooks.ts +4 -1
  91. package/src/hooks/midnight-update-view.ts +36 -0
  92. package/src/index.ts +4 -3
  93. package/src/layout.css +1 -1
  94. package/src/state/WidgetState.ts +1 -1
  95. package/src/state/constants.ts +3 -2
  96. package/src/utils/tools.ts +15 -3
  97. package/src/utils/upload/FileUpload.ts +1 -2
  98. package/src/views/Agents/AgentDescription.tsx +50 -23
  99. package/src/views/Agents/dictionary.ts +2 -0
  100. package/src/views/Agents/styled.ts +14 -3
  101. package/src/views/Agents/useAgentFavorites.ts +3 -3
  102. package/src/views/Chat/ChatMessage.tsx +41 -7
  103. package/src/views/Chat/styled.ts +24 -0
  104. package/src/views/MessageInput/ContextBar.tsx +1 -2
  105. package/src/views/MessageInput/SelectContent.tsx +6 -0
  106. package/src/views/MessageInput/UploadBar.tsx +40 -2
  107. package/src/views/MessageInput/dictionary.ts +4 -0
  108. package/src/views/MessageInput/styled.ts +12 -0
  109. package/src/views/Resources.tsx +99 -0
  110. package/src/views/Tools.tsx +18 -12
@@ -1 +1 @@
1
- {"version":3,"file":"SelectContent.js","sourceRoot":"","sources":["../../../src/views/MessageInput/SelectContent.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SelectContent.js","sourceRoot":"","sources":["../../../src/views/MessageInput/SelectContent.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAc,WAAW,EAAe,MAAM,0BAA0B,CAAA;AACxG,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AAExD,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE;IAChC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,QAAQ,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAA;IAChD,MAAM,CAAC,GAAG,yBAAyB,EAAE,CAAA;IACrC,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;IACxC,MAAM,iBAAiB,GAAG,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,eAAe,IAAI,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAA;IAC7G,MAAM,IAAI,GAAG,cAAc,EAAE,CAAA;IAE7B,MAAM,WAAW,GAAG,OAAO,CAAkE,GAAG,EAAE,CAAE;QAClG;YACE,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,OAAO;YACZ,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,CAAC,CAAC,SAAS;YAClB,IAAI,EAAE,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,GAAG;YAC3B,OAAO,EAAE,CAAC,KAAwB,EAAE,EAAE;gBACpC,KAAK,EAAE,eAAe,EAAE,CAAA;gBACxB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,CAAA;YAC9B,CAAC;SACF;QACD;YACE,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,eAAe;YACpB,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,gBAAgB;YACvB,IAAI,EAAE,KAAC,IAAI,IAAC,IAAI,EAAC,cAAc,GAAG;YAClC,OAAO,EAAE,CAAC,KAAwB,EAAE,EAAE;gBACpC,KAAK,EAAE,eAAe,EAAE,CAAA;gBACxB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,CAAA;YAC9B,CAAC;SACF;QACD;YACE,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,iBAAiB;YACtB,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,mBAAmB;YAC1B,IAAI,EAAE,KAAC,IAAI,IAAC,IAAI,EAAC,iBAAiB,GAAG;YACrC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;SACzC;QACD;YACE,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,OAAO;YACZ,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,WAAW;YAClB,IAAI,EAAE,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,GAAG;YAC3B,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC;SAC5C;QACD;YACE,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,WAAW;YAChB,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,KAAC,IAAI,IAAC,IAAI,EAAC,QAAQ,GAAG;YAC5B,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC;SAChD;QACD;YACE,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,QAAQ;YACb,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,CAAC,CAAC,MAAM;YACf,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE;YACnC,SAAS,EAAE,aAAa;YACxB,IAAI,EAAE,KAAC,IAAI,IAAC,IAAI,EAAC,gBAAgB,GAAG;SACrC;KACQ,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAA;IAEnE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE;QAC7B,MAAM,QAAQ,GAA+B;YAC3C,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;YACjC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;SAClC,CAAA;QACD,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QACvE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAClD,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAA;IAEjB,IAAI,CAAC,iBAAiB;QAAE,OAAO,IAAI,CAAA;IAEnC,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAC9B,KAAC,WAAW,IAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAC,KAAK,EAAC,OAAO,EAAE,GAAG,EAAE,MAAM,QAAC,YAAY,kBAC7E,KAAC,UAAU,IAAC,IAAI,EAAC,MAAM,GAAG,GACd,CACf,CAAC,CAAC,CAAC,CACF,KAAC,WAAW,IACV,UAAU,EAAC,QAAQ,EACnB,KAAK,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,gBACpB,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EACrC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,YAE9B,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,GACR,CACf,CAAA;AACH,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"UploadBar.d.ts","sourceRoot":"","sources":["../../../src/views/MessageInput/UploadBar.tsx"],"names":[],"mappings":"AAiCA,eAAO,MAAM,SAAS,+CAmCrB,CAAA"}
1
+ {"version":3,"file":"UploadBar.d.ts","sourceRoot":"","sources":["../../../src/views/MessageInput/UploadBar.tsx"],"names":[],"mappings":"AAkCA,eAAO,MAAM,SAAS,+CAwErB,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { listToClass } from '@stack-spot/portal-theme';
3
3
  import { interpolate } from '@stack-spot/portal-translate';
4
- import { useMemo } from 'react';
4
+ import { useEffect, useMemo, useRef, useState } from 'react';
5
5
  import { FadingOverflow } from '../../components/FadingOverflow.js';
6
6
  import { FileDescription } from '../../components/FileDescription.js';
7
7
  import { useCurrentChat } from '../../context/hooks.js';
@@ -24,6 +24,26 @@ export const UploadBar = () => {
24
24
  const t = useMessageInputDictionary();
25
25
  const chat = useCurrentChat();
26
26
  const visible = !!uploads.length;
27
+ const [ariaMessage, setAriaMessage] = useState('');
28
+ const prevUploadsRef = useRef([]);
29
+ const announcedUploadsRef = useRef(new Set());
30
+ useEffect(() => {
31
+ const prevUploads = prevUploadsRef.current;
32
+ const newUploads = uploads.filter(up => !prevUploads.some(prev => prev.id === up.id));
33
+ newUploads.forEach((up) => {
34
+ if (!announcedUploadsRef.current.has(up.id)) {
35
+ setAriaMessage('');
36
+ setTimeout(() => {
37
+ setAriaMessage(`${t.uploadSuccessStatus}: ${up.file.name}`);
38
+ setTimeout(() => setAriaMessage(''), 2500);
39
+ }, 100);
40
+ announcedUploadsRef.current.add(up.id);
41
+ }
42
+ });
43
+ if (uploads.some(up => up.status === 'error')) {
44
+ setTimeout(() => setAriaMessage(''), 2000);
45
+ }
46
+ }, [uploads]);
27
47
  useUploadErrorEffect((errors) => {
28
48
  const sizeErrors = errors.filter(e => e instanceof FileIsTooLarge);
29
49
  const maxItemsErrors = errors.filter(e => e instanceof MaxFilesReached);
@@ -40,8 +60,15 @@ export const UploadBar = () => {
40
60
  }
41
61
  if (!lines.length)
42
62
  return;
63
+ setAriaMessage(lines.join(' '));
64
+ setTimeout(() => setAriaMessage(''), 2000);
43
65
  chat.pushMessage(new ChatEntry({ agentType: 'system', type: 'md', content: lines.join('\n\n') }));
66
+ if (lines.length) {
67
+ setAriaMessage(lines.join(' '));
68
+ setTimeout(() => setAriaMessage(''), 2000);
69
+ chat.pushMessage(new ChatEntry({ agentType: 'system', type: 'md', content: lines.join('\n\n') }));
70
+ }
44
71
  });
45
- return (_jsxs("div", { className: listToClass(['info-bar', 'upload-bar', visible && 'visible']), children: [_jsx("div", { className: "space" }), _jsx("div", { className: "content", children: _jsx(FadingOverflow, { className: "list-overflow", scroll: "arrows", enableHorizontalScrollWithVerticalWheel: true, children: _jsx("ul", { children: listItems }) }) })] }));
72
+ return (_jsxs("div", { className: listToClass(['info-bar', 'upload-bar', visible && 'visible']), children: [_jsx("div", { className: "aria-live", "aria-live": "polite", "aria-atomic": "true", children: ariaMessage }), _jsx("div", { className: "space" }), _jsx("div", { className: "content", children: _jsx(FadingOverflow, { className: "list-overflow", scroll: "arrows", enableHorizontalScrollWithVerticalWheel: true, children: _jsx("ul", { children: listItems }) }) })] }));
46
73
  };
47
74
  //# sourceMappingURL=UploadBar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UploadBar.js","sourceRoot":"","sources":["../../../src/views/MessageInput/UploadBar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UploadBar.js","sourceRoot":"","sources":["../../../src/views/MessageInput/UploadBar.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const useMessageInputDictionary: () => Record<"stack" | "knowledgeSource" | "agent" | "upload" | "cancel" | "code" | "placeholder" | "remove" | "selected" | "send" | "collapse" | "spot" | "typing" | "removeConfig" | "removeStack" | "removeWorkspace" | "removeKS" | "removeSelection" | "expand" | "uploadSizeError" | "uploadItemLimitError" | "uploadError" | "uploadDragging" | "uploadDragDropTitle" | "uploadDragDropDescription" | "unknownUploadError" | "cantSendBecauseOfUploadError" | "cantSendBecauseOfUploadProgress" | "cantSendBecauseOfEmptyContent" | "cantSendBecausePromptMaxLength" | "chatAgent", string>;
1
+ export declare const useMessageInputDictionary: () => Record<"stack" | "knowledgeSource" | "agent" | "upload" | "cancel" | "code" | "placeholder" | "remove" | "selected" | "send" | "collapse" | "spot" | "typing" | "removeConfig" | "removeStack" | "removeWorkspace" | "removeKS" | "removeSelection" | "expand" | "uploadSizeError" | "uploadItemLimitError" | "uploadError" | "uploadDragging" | "uploadDragDropTitle" | "uploadDragDropDescription" | "unknownUploadError" | "cantSendBecauseOfUploadError" | "cantSendBecauseOfUploadProgress" | "cantSendBecauseOfEmptyContent" | "cantSendBecausePromptMaxLength" | "chatAgent" | "uploadSuccessStatus" | "chatViewMenu", string>;
2
2
  //# sourceMappingURL=dictionary.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dictionary.d.ts","sourceRoot":"","sources":["../../../src/views/MessageInput/dictionary.ts"],"names":[],"mappings":"AAuEA,eAAO,MAAM,yBAAyB,okBAAiC,CAAA"}
1
+ {"version":3,"file":"dictionary.d.ts","sourceRoot":"","sources":["../../../src/views/MessageInput/dictionary.ts"],"names":[],"mappings":"AA2EA,eAAO,MAAM,yBAAyB,6mBAAiC,CAAA"}
@@ -32,6 +32,8 @@ const dictionary = {
32
32
  cantSendBecauseOfEmptyContent: 'You can\'t send empty messages. Please write some text or upload a file.',
33
33
  cantSendBecausePromptMaxLength: 'You can\'t send messages longer than $0 characters. Please, shorten your message.',
34
34
  chatAgent: 'Agents',
35
+ uploadSuccessStatus: 'File sent successfully',
36
+ chatViewMenu: 'Chat options menu',
35
37
  },
36
38
  pt: {
37
39
  stack: 'Selecionar stack',
@@ -65,6 +67,8 @@ const dictionary = {
65
67
  cantSendBecauseOfEmptyContent: 'Não é possível enviar mensagens vazias. Por favor, escreva algum texto ou envie um arquivo.',
66
68
  cantSendBecausePromptMaxLength: 'Você não pode enviar mensagens com mais de $0 caracteres. Por favor, reduza sua mensagem.',
67
69
  chatAgent: 'Agentes',
70
+ uploadSuccessStatus: 'Arquivo anexado com sucesso',
71
+ chatViewMenu: 'Menu de opções do chat',
68
72
  },
69
73
  };
70
74
  export const useMessageInputDictionary = () => useTranslate(dictionary);
@@ -1 +1 @@
1
- {"version":3,"file":"dictionary.js","sourceRoot":"","sources":["../../../src/views/MessageInput/dictionary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAEvE,MAAM,UAAU,GAAG;IACjB,EAAE,EAAE;QACF,KAAK,EAAE,cAAc;QACrB,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,aAAa;QACnB,eAAe,EAAE,0BAA0B;QAC3C,KAAK,EAAE,cAAc;QACrB,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,gDAAgD;QAC7D,MAAM,EAAE,sBAAsB;QAC9B,MAAM,EAAE,QAAQ;QAChB,YAAY,EAAE,8BAA8B;QAC5C,WAAW,EAAE,8BAA8B;QAC3C,eAAe,EAAE,6BAA6B;QAC9C,QAAQ,EAAE,kCAAkC;QAC5C,QAAQ,EAAE,UAAU;QACpB,eAAe,EAAE,+BAA+B;QAChD,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,aAAa;QACrB,MAAM,EAAE,gBAAgB;QACxB,QAAQ,EAAE,kBAAkB;QAC5B,eAAe,EAAE,wFAAwF;QACzG,oBAAoB,EAAE,6FAA6F;QACnH,WAAW,EAAE,kDAAkD;QAC/D,cAAc,EAAE,8BAA8B;QAC9C,mBAAmB,EAAE,sBAAsB;QAC3C,yBAAyB,EAAE,iDAAiD;QAC5E,kBAAkB,EAAE,8CAA8C;QAClE,4BAA4B,EAAE,yIAAyI;QACvK,+BAA+B,EAAE,8IAA8I;QAC/K,6BAA6B,EAAE,0EAA0E;QACzG,8BAA8B,EAAE,mFAAmF;QACnH,SAAS,EAAE,QAAQ;KACpB;IACD,EAAE,EAAE;QACF,KAAK,EAAE,kBAAkB;QACzB,IAAI,EAAE,wBAAwB;QAC9B,IAAI,EAAE,iBAAiB;QACvB,eAAe,EAAE,8BAA8B;QAC/C,KAAK,EAAE,mBAAmB;QAC1B,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,uDAAuD;QACpE,MAAM,EAAE,wBAAwB;QAChC,MAAM,EAAE,UAAU;QAClB,YAAY,EAAE,gCAAgC;QAC9C,WAAW,EAAE,6BAA6B;QAC1C,eAAe,EAAE,4BAA4B;QAC7C,QAAQ,EAAE,qCAAqC;QAC/C,QAAQ,EAAE,aAAa;QACvB,eAAe,EAAE,4BAA4B;QAC7C,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,gBAAgB;QACxB,MAAM,EAAE,gBAAgB;QACxB,QAAQ,EAAE,iBAAiB;QAC3B,eAAe,EAAE,+FAA+F;QAChH,oBAAoB,EAAE,wHAAwH;QAC9I,WAAW,EAAE,2CAA2C;QACxD,cAAc,EAAE,wCAAwC;QACxD,mBAAmB,EAAE,0BAA0B;QAC/C,yBAAyB,EAAE,yDAAyD;QACpF,kBAAkB,EAAE,wCAAwC;QAC5D,4BAA4B,EAAE,4JAA4J;QAC1L,+BAA+B,EAAE,iJAAiJ;QAClL,6BAA6B,EAAE,6FAA6F;QAC5H,8BAA8B,EAAE,2FAA2F;QAC3H,SAAS,EAAE,SAAS;KACrB;CACmB,CAAA;AAEtB,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA"}
1
+ {"version":3,"file":"dictionary.js","sourceRoot":"","sources":["../../../src/views/MessageInput/dictionary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAEvE,MAAM,UAAU,GAAG;IACjB,EAAE,EAAE;QACF,KAAK,EAAE,cAAc;QACrB,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,aAAa;QACnB,eAAe,EAAE,0BAA0B;QAC3C,KAAK,EAAE,cAAc;QACrB,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,gDAAgD;QAC7D,MAAM,EAAE,sBAAsB;QAC9B,MAAM,EAAE,QAAQ;QAChB,YAAY,EAAE,8BAA8B;QAC5C,WAAW,EAAE,8BAA8B;QAC3C,eAAe,EAAE,6BAA6B;QAC9C,QAAQ,EAAE,kCAAkC;QAC5C,QAAQ,EAAE,UAAU;QACpB,eAAe,EAAE,+BAA+B;QAChD,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,aAAa;QACrB,MAAM,EAAE,gBAAgB;QACxB,QAAQ,EAAE,kBAAkB;QAC5B,eAAe,EAAE,wFAAwF;QACzG,oBAAoB,EAAE,6FAA6F;QACnH,WAAW,EAAE,kDAAkD;QAC/D,cAAc,EAAE,8BAA8B;QAC9C,mBAAmB,EAAE,sBAAsB;QAC3C,yBAAyB,EAAE,iDAAiD;QAC5E,kBAAkB,EAAE,8CAA8C;QAClE,4BAA4B,EAAE,yIAAyI;QACvK,+BAA+B,EAAE,8IAA8I;QAC/K,6BAA6B,EAAE,0EAA0E;QACzG,8BAA8B,EAAE,mFAAmF;QACnH,SAAS,EAAE,QAAQ;QACnB,mBAAmB,EAAE,wBAAwB;QAC7C,YAAY,EAAE,mBAAmB;KAClC;IACD,EAAE,EAAE;QACF,KAAK,EAAE,kBAAkB;QACzB,IAAI,EAAE,wBAAwB;QAC9B,IAAI,EAAE,iBAAiB;QACvB,eAAe,EAAE,8BAA8B;QAC/C,KAAK,EAAE,mBAAmB;QAC1B,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,uDAAuD;QACpE,MAAM,EAAE,wBAAwB;QAChC,MAAM,EAAE,UAAU;QAClB,YAAY,EAAE,gCAAgC;QAC9C,WAAW,EAAE,6BAA6B;QAC1C,eAAe,EAAE,4BAA4B;QAC7C,QAAQ,EAAE,qCAAqC;QAC/C,QAAQ,EAAE,aAAa;QACvB,eAAe,EAAE,4BAA4B;QAC7C,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,gBAAgB;QACxB,MAAM,EAAE,gBAAgB;QACxB,QAAQ,EAAE,iBAAiB;QAC3B,eAAe,EAAE,+FAA+F;QAChH,oBAAoB,EAAE,wHAAwH;QAC9I,WAAW,EAAE,2CAA2C;QACxD,cAAc,EAAE,wCAAwC;QACxD,mBAAmB,EAAE,0BAA0B;QAC/C,yBAAyB,EAAE,yDAAyD;QACpF,kBAAkB,EAAE,wCAAwC;QAC5D,4BAA4B,EAAE,4JAA4J;QAC1L,+BAA+B,EAAE,iJAAiJ;QAClL,6BAA6B,EAAE,6FAA6F;QAC5H,8BAA8B,EAAE,2FAA2F;QAC3H,SAAS,EAAE,SAAS;QACpB,mBAAmB,EAAE,6BAA6B;QAClD,YAAY,EAAE,wBAAwB;KACvC;CACmB,CAAA;AAEtB,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"styled.d.ts","sourceRoot":"","sources":["../../../src/views/MessageInput/styled.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,gBAAgB,KAAK,CAAA;AAElC,eAAO,MAAM,mBAAmB,wOAyC/B,CAAA;AAED,eAAO,MAAM,eAAe,wOA+O3B,CAAA"}
1
+ {"version":3,"file":"styled.d.ts","sourceRoot":"","sources":["../../../src/views/MessageInput/styled.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,gBAAgB,KAAK,CAAA;AAElC,eAAO,MAAM,mBAAmB,wOAyC/B,CAAA;AAED,eAAO,MAAM,eAAe,wOA2P3B,CAAA"}
@@ -61,6 +61,18 @@ export const MessageInputBox = styled.div `
61
61
  }
62
62
  }
63
63
 
64
+ > .aria-live {
65
+ position: absolute;
66
+ width: 1px;
67
+ height: 1px;
68
+ margin: -1px;
69
+ padding: 0;
70
+ overflow: hidden;
71
+ clip: rect(0 0 0 0);
72
+ white-space: nowrap;
73
+ border: 0;
74
+ }
75
+
64
76
  > .space {
65
77
  height: 0;
66
78
  transition: height 0.4s;
@@ -1 +1 @@
1
- {"version":3,"file":"styled.js","sourceRoot":"","sources":["../../../src/views/MessageInput/styled.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,MAAM,kBAAkB,GAAG,EAAE,CAAA;AAC7B,MAAM,wBAAwB,GAAG,CAAC,CAAA;AAClC,MAAM,iBAAiB,GAAG,EAAE,CAAA;AAC5B,MAAM,uBAAuB,GAAG,CAAC,CAAA;AACjC,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAA;AAElC,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;sBAKvB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;;;;;;;;;;;;wBAcpB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;0BAgBpB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;0BAGtB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;CAG/C,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;0BA0Bf,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;sBA0B1B,kBAAkB,GAAG,wBAAwB;wBAC3C,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;sBA2BpB,iBAAiB,GAAG,uBAAuB;wBACzC,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;0BA0Bf,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;0BAEtB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;;;;;wBAOxB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAuEhB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;8BACtB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;;;;;;gCAQpB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;;;;;oBAOlC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY;;;;;;;;;;;;;;;;;;;8BAmBpB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;;;;;;;cAStC,gBAAgB;;;;;;;;CAQ7B,CAAA"}
1
+ {"version":3,"file":"styled.js","sourceRoot":"","sources":["../../../src/views/MessageInput/styled.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,MAAM,kBAAkB,GAAG,EAAE,CAAA;AAC7B,MAAM,wBAAwB,GAAG,CAAC,CAAA;AAClC,MAAM,iBAAiB,GAAG,EAAE,CAAA;AAC5B,MAAM,uBAAuB,GAAG,CAAC,CAAA;AACjC,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAA;AAElC,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;sBAKvB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;;;;;;;;;;;;wBAcpB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;0BAgBpB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;0BAGtB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;CAG/C,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAsCf,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;sBA0B1B,kBAAkB,GAAG,wBAAwB;wBAC3C,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;sBA2BpB,iBAAiB,GAAG,uBAAuB;wBACzC,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;0BA0Bf,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;0BAEtB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;;;;;wBAOxB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAuEhB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;8BACtB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;;;;;;gCAQpB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;;;;;oBAOlC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY;;;;;;;;;;;;;;;;;;;8BAmBpB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;;;;;;;cAStC,gBAAgB;;;;;;;;CAQ7B,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const Resources: () => null;
2
+ //# sourceMappingURL=Resources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Resources.d.ts","sourceRoot":"","sources":["../../src/views/Resources.tsx"],"names":[],"mappings":"AAWA,eAAO,MAAM,SAAS,YAerB,CAAA"}
@@ -0,0 +1,59 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { Accordion, Icon, ImageBox, ImageWithFallback, Row, Text } from '@stack-spot/citric-react';
3
+ import { agentToolsClient } from '@stack-spot/portal-network';
4
+ import { theme } from '@stack-spot/portal-theme';
5
+ import { useTranslate } from '@stack-spot/portal-translate';
6
+ import { useEffect, useMemo } from 'react';
7
+ import { styled } from 'styled-components';
8
+ import { useWidget, useWidgetState } from '../context/hooks.js';
9
+ import { useRightPanel } from '../right-panel/hooks.js';
10
+ import { toolById } from '../utils/tools.js';
11
+ import { AgentDescription } from './Agents/AgentDescription.js';
12
+ export const Resources = () => {
13
+ const t = useTranslate(dictionary);
14
+ const panel = useWidgetState('panel');
15
+ const message = useWidgetState('currentMessageInPanel');
16
+ const { open } = useRightPanel();
17
+ const widget = useWidget();
18
+ useEffect(() => {
19
+ if (panel === 'resources' && message)
20
+ open(_jsx(ResourcesPanel, {}, message.messageId), { title: t.title, description: t.description, onClose: () => widget.set('panel', undefined) });
21
+ }, [panel, t]);
22
+ return null;
23
+ };
24
+ const StyledAccordion = styled(Accordion) `
25
+ &[data-citric="accordion"] {
26
+ background-color: ${theme.color.light[400]};
27
+ }
28
+ `;
29
+ const ResourcesPanel = () => {
30
+ const { chatId, messageId } = useWidgetState('currentMessageInPanel') ?? {};
31
+ const widget = useWidget();
32
+ const message = useMemo(() => {
33
+ const chat = widget.chatTabs.getAll().find(c => c.id === chatId);
34
+ return chat?.getMessages().find(m => m.id === messageId)?.getValue();
35
+ }, [messageId]);
36
+ const [toolKits] = agentToolsClient.tools.useStatefulQuery({}, { enabled: !!message?.agent?.id });
37
+ const [agent] = agentToolsClient.agent.useStatefulQuery({ agentId: message?.agent?.id || '' }, { enabled: !!message?.agent?.id });
38
+ const tools = useMemo(() => message?.tools?.map(id => toolById(id, toolKits)), [messageId, toolKits]);
39
+ const customTools = useMemo(() => message?.tools?.map(id => toolById(id, agent?.toolkits?.custom_toolkits)), [messageId, agent?.toolkits?.custom_toolkits]);
40
+ const [agentsTools] = agentToolsClient.agentsByIds.useStatefulQuery({ searchAgentsRequest: { ids: message?.tools || [] } });
41
+ const hasAgentTool = useMemo(() => message?.tools?.some(id => agentsTools?.find((agent) => agent.id === id)), [messageId, toolKits]);
42
+ const header = (image, label) => (_jsxs(Row, { gap: "10px", children: [_jsx(ImageBox, { children: _jsx(ImageWithFallback, { src: image, fallback: _jsx(Icon, { icon: "Agent" }), "aria-label": label, title: label }) }), _jsx(Text, { children: label })] }));
43
+ return !!(tools?.length || customTools?.length) && (_jsxs(_Fragment, { children: [_jsx(_Fragment, { children: [...(tools || []), ...(customTools || [])].map((tool) => tool && (_jsx(StyledAccordion, { header: header(tool?.image, tool?.name), appearance: "card", children: tool?.description }, tool.id))) }), hasAgentTool &&
44
+ _jsx(_Fragment, { children: message?.tools?.map((id) => {
45
+ const agentTool = agentsTools?.find((agent) => agent.id === id);
46
+ return (_jsx(StyledAccordion, { header: header(agentTool?.avatar || undefined, agentTool?.name), children: _jsx(AgentDescription, { agentId: id }) }, id));
47
+ }) })] }));
48
+ };
49
+ const dictionary = {
50
+ en: {
51
+ title: 'Resources',
52
+ description: 'These are the resources used to generate this answer.',
53
+ },
54
+ pt: {
55
+ title: 'Recursos',
56
+ description: 'Esses são os recursos usados pra gerar essa resposta.',
57
+ },
58
+ };
59
+ //# sourceMappingURL=Resources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Resources.js","sourceRoot":"","sources":["../../src/views/Resources.tsx"],"names":[],"mappings":"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"}
@@ -34,6 +34,6 @@ export declare const dictionary: {
34
34
  input: string;
35
35
  };
36
36
  };
37
- export declare function useStepsDictionary(): Record<"pending" | "input" | "step" | "steps" | "tools" | "answer" | "running" | "planning" | "unknown" | "stepsPanelDescription" | "response" | "executionTime" | "nextAttempt" | "previousAttempt", string>;
37
+ export declare function useStepsDictionary(): Record<"pending" | "input" | "step" | "steps" | "tools" | "answer" | "running" | "unknown" | "planning" | "stepsPanelDescription" | "response" | "executionTime" | "nextAttempt" | "previousAttempt", string>;
38
38
  export type ToolsDictionary = typeof dictionary['en'];
39
39
  //# sourceMappingURL=dictionary.d.ts.map
@@ -35,8 +35,10 @@ const ToolsPanel = () => {
35
35
  return chat?.getMessages().find(m => m.id === messageId)?.getValue();
36
36
  }, [messageId]);
37
37
  const [toolKits] = agentToolsClient.tools.useStatefulQuery({}, { enabled: !!message?.agent?.id });
38
- const tools = useMemo(() => message?.tools?.map(id => toolById(id, toolKits) ?? { id }), [messageId, toolKits]);
39
- return !!tools?.length && (_jsx(ToolList, { children: tools.map((tool) => (_jsx("li", { children: _jsx(ToolBadge, { name: tool.name || tool.id, image: tool.image, description: tool.description }) }, tool.id))) }));
38
+ const [agent] = agentToolsClient.agent.useStatefulQuery({ agentId: message?.agent?.id || '' }, { enabled: !!message?.agent?.id });
39
+ const tools = useMemo(() => message?.tools?.map(id => toolById(id, toolKits)), [messageId, toolKits]);
40
+ const customTools = useMemo(() => message?.tools?.map(id => toolById(id, agent?.toolkits?.custom_toolkits)), [messageId, agent?.toolkits?.custom_toolkits]);
41
+ return !!(tools?.length || customTools?.length) && (_jsx(ToolList, { children: [...(tools || []), ...(customTools || [])].map((tool) => tool && (_jsx("li", { children: _jsx(ToolBadge, { name: tool.name || tool.id, image: tool.image ?? '', description: tool.description ?? '' }) }, tool.id))) }));
40
42
  };
41
43
  const dictionary = {
42
44
  en: {
@@ -1 +1 @@
1
- {"version":3,"file":"Tools.js","sourceRoot":"","sources":["../../src/views/Tools.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Tools.js","sourceRoot":"","sources":["../../src/views/Tools.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,15 +1,18 @@
1
1
  {
2
2
  "name": "@stack-spot/ai-chat-widget",
3
- "version": "2.0.0-betacitric.7",
3
+ "version": "2.0.0-betacitric.9",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "peerDependencies": {
8
- "@stack-spot/citric-react": "^0.24.0",
8
+ "@stack-spot/citric-react": "^0.35.0",
9
9
  "@stack-spot/citric-icons": "^0.2.2",
10
- "@stack-spot/portal-components": "2.24.3",
11
- "@stack-spot/portal-network": "^0.165.1",
12
10
  "@stack-spot/portal-theme": "^1.2.1",
11
+ "@citric/core": "^6.4.0",
12
+ "@stack-spot/portal-components": "^2.25.5",
13
+ "@citric/icons": "^5.13.0",
14
+ "@stack-spot/portal-network": "0.173.1",
15
+ "@citric/ui": "^6.10.2",
13
16
  "@stack-spot/portal-translate": "^1.1.0",
14
17
  "lodash": "^4.17.0",
15
18
  "react": "^18.2.0",
@@ -19,6 +19,7 @@ import { KnowledgeSources } from './views/KnowledgeSources'
19
19
  import { KSDocument } from './views/KSDocument'
20
20
  import { MessageInput } from './views/MessageInput'
21
21
  import { MinimizedHeader } from './views/MinimizedHeader'
22
+ import { Resources } from './views/Resources'
22
23
  import { Stacks } from './views/Stacks'
23
24
  import { Steps } from './views/Steps'
24
25
  import { Tools } from './views/Tools'
@@ -132,6 +133,7 @@ export const StackspotAIWidget = (
132
133
  <ChatHistory />
133
134
  <Steps />
134
135
  <Tools />
136
+ <Resources />
135
137
  <div className="chat-right-panel" ref={rightPanelRef}><RightPanel /></div>
136
138
  </div>
137
139
  </RightPanelProvider>
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stack-spot/ai-chat-widget",
3
- "version": "2.0.0-betacitric.7",
4
- "date": "Fri Sep 05 2025 11:46:30 GMT-0300 (Horário Padrão de Brasília)",
3
+ "version": "2.0.0-betacitric.9",
4
+ "date": "Tue Sep 09 2025 10:13:25 GMT-0300 (Horário Padrão de Brasília)",
5
5
  "dependencies": [
6
6
  {
7
7
  "name": "@stack-spot/app-metadata",
@@ -87,6 +87,18 @@
87
87
  "name": "typescript",
88
88
  "version": "5.6.2"
89
89
  },
90
+ {
91
+ "name": "@citric/core",
92
+ "version": "6.4.0(lodash@4.17.21)(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0))"
93
+ },
94
+ {
95
+ "name": "@citric/icons",
96
+ "version": "5.13.0(react@18.2.0)"
97
+ },
98
+ {
99
+ "name": "@citric/ui",
100
+ "version": "6.10.2(@citric/core@6.4.0(lodash@4.17.21)(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(@citric/icons@5.13.0(react@18.2.0))(lodash@4.17.21)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0))"
101
+ },
90
102
  {
91
103
  "name": "@dagrejs/dagre",
92
104
  "version": "1.1.4"
@@ -101,15 +113,15 @@
101
113
  },
102
114
  {
103
115
  "name": "@stack-spot/citric-react",
104
- "version": "0.24.0(@stack-spot/citric-icons@0.2.2)(@stack-spot/portal-theme@1.2.1(@citric/core@6.4.0(lodash@4.17.21)(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(@stack-spot/portal-translate@1.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(lodash@4.17.21)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)"
116
+ "version": "0.35.0(@stack-spot/citric-icons@0.2.2)(@stack-spot/portal-theme@1.2.1(@citric/core@6.4.0(lodash@4.17.21)(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(@stack-spot/portal-translate@1.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(lodash@4.17.21)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)"
105
117
  },
106
118
  {
107
119
  "name": "@stack-spot/portal-components",
108
- "version": "2.24.3(@citric/core@6.4.0(lodash@4.17.21)(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(@citric/icons@5.13.0(react@18.2.0))(@citric/ui@6.10.2(@citric/core@6.4.0(lodash@4.17.21)(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(@citric/icons@5.13.0(react@18.2.0))(lodash@4.17.21)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(@stack-spot/portal-theme@1.2.1(@citric/core@6.4.0(lodash@4.17.21)(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(@stack-spot/portal-translate@1.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.3.11)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)"
120
+ "version": "2.25.5(@citric/core@6.4.0(lodash@4.17.21)(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(@citric/icons@5.13.0(react@18.2.0))(@citric/ui@6.10.2(@citric/core@6.4.0(lodash@4.17.21)(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(@citric/icons@5.13.0(react@18.2.0))(lodash@4.17.21)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(@stack-spot/portal-theme@1.2.1(@citric/core@6.4.0(lodash@4.17.21)(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(styled-components@6.1.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)))(@stack-spot/portal-translate@1.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.3.11)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)"
109
121
  },
110
122
  {
111
123
  "name": "@stack-spot/portal-network",
112
- "version": "0.165.1(@stack-spot/auth@5.3.2)(@stack-spot/opa@2.5.0(@stack-spot/auth@5.3.2)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@stack-spot/portal-translate@1.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@tanstack/react-query@5.59.16(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)"
124
+ "version": "0.173.1(@stack-spot/auth@5.3.2)(@stack-spot/opa@2.5.0(@stack-spot/auth@5.3.2)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@stack-spot/portal-translate@1.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@tanstack/react-query@5.59.16(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)"
113
125
  },
114
126
  {
115
127
  "name": "@stack-spot/portal-theme",
@@ -74,25 +74,31 @@ export function createQuickCommandInterceptor(widget: WidgetState, getEditor: ()
74
74
  */
75
75
  async function runRouterStep(
76
76
  ctx: QCContext,
77
- stepIndex: number, iteration: number,
77
+ stepIndex: number, iteration: Record<string, number>,
78
78
  progress: { update: (index: number) => void, remove: () => void },
79
79
  ) {
80
80
  const { qc: { slug, steps }, code, resultMap, customInputs } = ctx
81
81
  const step = steps![stepIndex]
82
82
  const inputData = Object.keys(customInputs).length > 0 && code ? { ...customInputs, [code]: code } : code ?? customInputs
83
83
  try {
84
+ if (step.slug in iteration) {
85
+ iteration[step.slug] = iteration[step.slug] + 1
86
+ } else {
87
+ iteration[step.slug] = 1
88
+ }
89
+
84
90
  const { next_step_slug } = await aiClient.calculateNextStep.mutate({
85
91
  stepSlug: step.slug,
86
92
  slug: slug,
87
93
  quickCommandEvaluateStepRouterRequest: {
88
- executions_count: iteration++,
94
+ executions_count: iteration[step.slug],
89
95
  input_data: inputData,
90
96
  slugs_executions: resultMap,
91
97
  },
92
98
  })
93
99
 
94
100
  if (next_step_slug === step.slug) {
95
- return runStepsRecursively(stepIndex, progress, ctx, iteration + 1)
101
+ return runStepsRecursively(stepIndex, progress, ctx, iteration)
96
102
  }
97
103
  const nextStepIndex = steps?.findIndex((step) => step.slug === next_step_slug)
98
104
 
@@ -222,7 +228,7 @@ export function createQuickCommandInterceptor(widget: WidgetState, getEditor: ()
222
228
  }
223
229
 
224
230
  async function runStepsRecursively(currentIndex: number, progress: { update: (index: number) => void, remove: () => void },
225
- ctx: QCContext, iteration: number) {
231
+ ctx: QCContext, iteration: Record<string, number>) {
226
232
  const { qc } = ctx
227
233
  if (!qc.steps || currentIndex >= qc.steps?.length) return
228
234
  progress.update(currentIndex)
@@ -245,7 +251,7 @@ export function createQuickCommandInterceptor(widget: WidgetState, getEditor: ()
245
251
  async function runSteps(ctx: QCContext) {
246
252
  const progress = showProgressMessage(ctx)
247
253
  try {
248
- await runStepsRecursively(0, progress, ctx, 0)
254
+ await runStepsRecursively(0, progress, ctx, {})
249
255
  } finally {
250
256
  progress.remove()
251
257
  }
@@ -275,7 +281,7 @@ export function createQuickCommandInterceptor(widget: WidgetState, getEditor: ()
275
281
  widget.chatTabs.select(ctx.chat.id)
276
282
  ctx.context.conversation_id = ctx.chat.id
277
283
  } else {
278
- // if we're running a command in teh editor, we don't need to open a new tab, we just need to run it in a new conversation context.
284
+ // if we're running a command in the editor, we don't need to open a new tab, we just need to run it in a new conversation context.
279
285
  ctx.context.conversation_id = ulid()
280
286
  }
281
287
  }
@@ -4,6 +4,7 @@ import { Dictionary, useTranslate } from '@stack-spot/portal-translate'
4
4
  import { groupBy, map } from 'lodash'
5
5
  import { useMemo } from 'react'
6
6
  import { styled } from 'styled-components'
7
+ import { useMidnightUpdateView } from '../hooks/midnight-update-view'
7
8
  import { subtractDays } from '../utils/date'
8
9
 
9
10
  type HistorySectionName = 'today' | 'yesterday' | 'last7' | 'last30' | 'older'
@@ -69,6 +70,8 @@ function dateToSectionName(date: Date): HistorySectionName {
69
70
  */
70
71
  export function HistoryList<T>({ getDate, items, keygen, className, style, renderItem }: Props<T>) {
71
72
  const t = useTranslate(dictionary)
73
+ useMidnightUpdateView()
74
+
72
75
  const sections = useMemo(() => {
73
76
  const byDate = groupBy(items, item => dateToSectionName(getDate(item)))
74
77
  return map(byDate, (value: T[], key: HistorySectionName) => (
@@ -2,6 +2,7 @@ import { Icon } from '@stack-spot/citric-icons'
2
2
  import { Accordion, Card, ImageBox, ImageWithFallback, Text } from '@stack-spot/citric-react'
3
3
  import { theme } from '@stack-spot/portal-theme'
4
4
  import { styled } from 'styled-components'
5
+ import { useCurrentChatState } from '../context/hooks'
5
6
  import { toPrecision } from '../views/Steps/utils'
6
7
 
7
8
  type Props = Omit<React.JSX.IntrinsicElements['div'], 'onChange'> & {
@@ -36,8 +37,16 @@ const Styled = styled.div`
36
37
  export const ToolBadge = (
37
38
  { name, duration, image, description, ...props }: Props,
38
39
  ) => {
40
+ const currentAgent = useCurrentChatState('agent')
41
+
39
42
  const header = <>
40
- <ImageBox><ImageWithFallback src={image} fallback={<Icon icon="Cog" className="tool-image" />} /></ImageBox>
43
+ <ImageBox><ImageWithFallback src={image} fallback={
44
+ <ImageWithFallback
45
+ src={currentAgent?.image ?? ''}
46
+ className="image"
47
+ fallback={<Icon icon="Cog" className="tool-image" />}
48
+ />
49
+ } /></ImageBox>
41
50
  <Text color="light.700" className="name" style={{ flex: 1 }}>{name}</Text>
42
51
  {duration !== undefined && <Text color="light.700" className="duration">
43
52
  {toPrecision(duration)}s
@@ -59,7 +59,6 @@ export function DescribedRadioGroup<T>({ initialValue, options: opt, data, empty
59
59
  <Text>{name}</Text>{btn}</>
60
60
  }
61
61
  appearance="card"
62
- maxHeight={100}
63
62
  >
64
63
  {typeof description === 'string' ? <Text appearance="microtext1" color="light.700">{description}</Text> : description}
65
64
  </Accordion>
@@ -17,7 +17,10 @@ export function useWidget(): WidgetState {
17
17
  return globalWidgetState
18
18
  }
19
19
 
20
- function useObservableState<T, K extends keyof T>(state: ObservableState<T>, key: K): T[K] {
20
+ /**
21
+ * Watches an ObservableState.
22
+ */
23
+ export function useObservableState<T, K extends keyof T>(state: ObservableState<T>, key: K): T[K] {
21
24
  const [value, setValue] = useState(state.get(key))
22
25
  useEffect(() => {
23
26
  setValue(state.get(key))
@@ -0,0 +1,36 @@
1
+ import { useManualRender } from '@stack-spot/portal-components'
2
+ import { useEffect } from 'react'
3
+
4
+ /**
5
+ * Returns the number of milliseconds remaining until the next midnight.
6
+ */
7
+ function getTimeUntilMidnight() {
8
+ const now = new Date()
9
+ const midnight = new Date(now)
10
+ midnight.setHours(24, 0, 0, 0)
11
+ return midnight.getTime() - now.getTime()
12
+ }
13
+
14
+ /**
15
+ * Hook that triggers a component re-render at midnight every day.
16
+ */
17
+ export function useMidnightUpdateView() {
18
+ const { repaint } = useManualRender()
19
+
20
+ useEffect(() => {
21
+ let timer: ReturnType<typeof setTimeout> | undefined
22
+
23
+ const scheduleUpdate = () => {
24
+ const timeUntilMidnight = getTimeUntilMidnight()
25
+
26
+ timer = setTimeout(() => {
27
+ repaint()
28
+ scheduleUpdate()
29
+ }, timeUntilMidnight)
30
+ }
31
+
32
+ scheduleUpdate()
33
+
34
+ return () => { timer && clearTimeout(timer) }
35
+ }, [])
36
+ }
package/src/index.ts CHANGED
@@ -6,8 +6,8 @@ export * from './context/hooks'
6
6
  export { getFeaturesWithDefaults } from './features'
7
7
  export type { AIWidgetFeatures, ChatFeatures } from './features'
8
8
  export { StackspotAIWidget } from './StackspotAIWidget'
9
- export { ChatEntry, TextChatEntry } from './state/ChatEntry'
10
- export type { ChatAction } from './state/ChatEntry'
9
+ export { ChatEntry } from './state/ChatEntry'
10
+ export type { ChatAction, TextChatEntry } from './state/ChatEntry'
11
11
  export { ChatState } from './state/ChatState'
12
12
  export type { MessageInterceptor } from './state/ChatState'
13
13
  export { ChatTabsController } from './state/ChatTabsController'
@@ -17,5 +17,6 @@ export type { Labeled, LabeledAgent, LabeledWithImage } from './state/types'
17
17
  export { WidgetState } from './state/WidgetState'
18
18
  export type { ButtonAction } from './types'
19
19
  export { defaultLanguage, languages } from './utils/programming-languages'
20
- export { CustomRenderResult } from './views/Chat/ChatMessage'
20
+ export type { CustomRenderResult } from './views/Chat/ChatMessage'
21
21
  export { loadChat } from './views/ChatHistory/utils'
22
+
package/src/layout.css CHANGED
@@ -183,4 +183,4 @@
183
183
  z-index: 9999;
184
184
  pointer-events: auto;
185
185
  color: var(--light-contrastText)
186
- }
186
+ }
@@ -13,7 +13,7 @@ export interface WidgetProperties {
13
13
  /**
14
14
  * Current content of the right panel. Undefined for closed right panel.
15
15
  */
16
- panel?: 'stack' | 'workspace' | 'agent' | 'ks' | 'editor' | 'history' | 'ks-details' | 'steps' | 'tools',
16
+ panel?: 'stack' | 'workspace' | 'agent' | 'ks' | 'editor' | 'history' | 'ks-details' | 'steps' | 'tools' | 'resources',
17
17
  /**
18
18
  * KS to use when the right panel "ks-details" is open.
19
19
  */
@@ -1,10 +1,11 @@
1
1
  import { FileSize } from './types'
2
2
 
3
3
  export const acceptedFileTypes = [
4
- 'json', 'yaml', 'txt', 'md', 'json', 'yaml', 'pdf', /*'xls', 'xlsx',*/ 'csv', 'cbl', 'cpp', 'cxx', 'cc', 'c', 'hpp', 'hxx', 'hh', 'h',
4
+ 'json', 'yaml', 'txt', 'md', 'json', 'yaml', 'pdf', /*'xls',*/ 'xlsx', 'csv', 'cbl', 'cpp', 'cxx', 'cc', 'c', 'hpp', 'hxx', 'hh', 'h',
5
5
  'cs', 'go', 'html', 'htm', 'kt', 'kts', 'md', 'php', 'proto', 'py', 'java', 'js', 'jsx', 'ts', 'tsx', 'rst', 'rb', 'rs', 'scala', 'swift',
6
6
  'sql', 'yaml', 'yml', 'tf', 'sh', 'ps1', 'psd1', 'psm1', 'bat', 'cmd', 'rego', 'f', 'for', 'r', 'pl', 'vb', 'dart', 'hs', 'lua',
7
- 'asm', 'groovy', 'gvy', 'gy', 'mat', 'clj', 'lisp', 'm', 'cls', 'css', 'scss', 'json', 'jpg', 'jpeg', 'png',
7
+ 'asm', 'groovy', 'gvy', 'gy', 'mat', 'clj', 'lisp', 'm', 'cls', 'css', 'scss', 'json', 'jpg', 'jpeg', 'png', 'docx', 'pptx',
8
+ 'tiff', 'tif', 'bmp',
8
9
  ]
9
10
 
10
11
  export const maxFileSize: FileSize = { value: 10, unit: 'MB' }