@stack-spot/ai-chat-widget 1.24.3 → 1.25.0

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 (108) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/app-metadata.json +3 -3
  3. package/dist/chat-interceptors/send-message.js +3 -3
  4. package/dist/chat-interceptors/send-message.js.map +1 -1
  5. package/dist/components/FileDescription.d.ts +10 -0
  6. package/dist/components/FileDescription.d.ts.map +1 -0
  7. package/dist/components/FileDescription.js +85 -0
  8. package/dist/components/FileDescription.js.map +1 -0
  9. package/dist/state/ChatEntry.d.ts +9 -0
  10. package/dist/state/ChatEntry.d.ts.map +1 -1
  11. package/dist/state/ChatEntry.js.map +1 -1
  12. package/dist/state/ChatState.d.ts +5 -0
  13. package/dist/state/ChatState.d.ts.map +1 -1
  14. package/dist/state/ChatState.js +6 -0
  15. package/dist/state/ChatState.js.map +1 -1
  16. package/dist/state/constants.d.ts +5 -0
  17. package/dist/state/constants.d.ts.map +1 -0
  18. package/dist/state/constants.js +9 -0
  19. package/dist/state/constants.js.map +1 -0
  20. package/dist/state/types.d.ts +4 -0
  21. package/dist/state/types.d.ts.map +1 -1
  22. package/dist/utils/chat.d.ts +2 -1
  23. package/dist/utils/chat.d.ts.map +1 -1
  24. package/dist/utils/chat.js +2 -1
  25. package/dist/utils/chat.js.map +1 -1
  26. package/dist/utils/upload/FileUpload.d.ts +21 -0
  27. package/dist/utils/upload/FileUpload.d.ts.map +1 -0
  28. package/dist/utils/upload/FileUpload.js +55 -0
  29. package/dist/utils/upload/FileUpload.js.map +1 -0
  30. package/dist/utils/upload/UploadManager.d.ts +40 -0
  31. package/dist/utils/upload/UploadManager.d.ts.map +1 -0
  32. package/dist/utils/upload/UploadManager.js +131 -0
  33. package/dist/utils/upload/UploadManager.js.map +1 -0
  34. package/dist/utils/upload/context.d.ts +15 -0
  35. package/dist/utils/upload/context.d.ts.map +1 -0
  36. package/dist/utils/upload/context.js +37 -0
  37. package/dist/utils/upload/context.js.map +1 -0
  38. package/dist/utils/upload/errors.d.ts +17 -0
  39. package/dist/utils/upload/errors.d.ts.map +1 -0
  40. package/dist/utils/upload/errors.js +27 -0
  41. package/dist/utils/upload/errors.js.map +1 -0
  42. package/dist/utils/upload/types.d.ts +7 -0
  43. package/dist/utils/upload/types.d.ts.map +1 -0
  44. package/dist/utils/upload/types.js +2 -0
  45. package/dist/utils/upload/types.js.map +1 -0
  46. package/dist/utils/upload/utils.d.ts +4 -0
  47. package/dist/utils/upload/utils.d.ts.map +1 -0
  48. package/dist/utils/upload/utils.js +10 -0
  49. package/dist/utils/upload/utils.js.map +1 -0
  50. package/dist/views/Chat/AgentInfo.d.ts +2 -1
  51. package/dist/views/Chat/AgentInfo.d.ts.map +1 -1
  52. package/dist/views/Chat/AgentInfo.js +2 -2
  53. package/dist/views/Chat/AgentInfo.js.map +1 -1
  54. package/dist/views/Chat/ChatMessage.d.ts +1 -1
  55. package/dist/views/Chat/ChatMessage.d.ts.map +1 -1
  56. package/dist/views/Chat/ChatMessage.js +26 -7
  57. package/dist/views/Chat/ChatMessage.js.map +1 -1
  58. package/dist/views/Chat/styled.d.ts.map +1 -1
  59. package/dist/views/Chat/styled.js +23 -1
  60. package/dist/views/Chat/styled.js.map +1 -1
  61. package/dist/views/MessageInput/{InfoBar.d.ts → ContextBar.d.ts} +2 -2
  62. package/dist/views/MessageInput/ContextBar.d.ts.map +1 -0
  63. package/dist/views/MessageInput/{InfoBar.js → ContextBar.js} +5 -5
  64. package/dist/views/MessageInput/ContextBar.js.map +1 -0
  65. package/dist/views/MessageInput/SelectContent.d.ts.map +1 -1
  66. package/dist/views/MessageInput/SelectContent.js +14 -17
  67. package/dist/views/MessageInput/SelectContent.js.map +1 -1
  68. package/dist/views/MessageInput/UploadBar.d.ts +2 -0
  69. package/dist/views/MessageInput/UploadBar.d.ts.map +1 -0
  70. package/dist/views/MessageInput/UploadBar.js +47 -0
  71. package/dist/views/MessageInput/UploadBar.js.map +1 -0
  72. package/dist/views/MessageInput/dictionary.d.ts +1 -1
  73. package/dist/views/MessageInput/dictionary.d.ts.map +1 -1
  74. package/dist/views/MessageInput/dictionary.js +18 -4
  75. package/dist/views/MessageInput/dictionary.js.map +1 -1
  76. package/dist/views/MessageInput/index.d.ts.map +1 -1
  77. package/dist/views/MessageInput/index.js +46 -5
  78. package/dist/views/MessageInput/index.js.map +1 -1
  79. package/dist/views/MessageInput/styled.d.ts.map +1 -1
  80. package/dist/views/MessageInput/styled.js +56 -27
  81. package/dist/views/MessageInput/styled.js.map +1 -1
  82. package/dist/views/Steps/dictionary.d.ts +1 -1
  83. package/package.json +2 -2
  84. package/src/app-metadata.json +3 -3
  85. package/src/chat-interceptors/send-message.ts +3 -3
  86. package/src/components/FileDescription.tsx +114 -0
  87. package/src/state/ChatEntry.ts +10 -0
  88. package/src/state/ChatState.ts +6 -0
  89. package/src/state/constants.ts +12 -0
  90. package/src/state/types.ts +5 -0
  91. package/src/utils/chat.ts +3 -1
  92. package/src/utils/upload/FileUpload.ts +64 -0
  93. package/src/utils/upload/UploadManager.ts +147 -0
  94. package/src/utils/upload/context.tsx +44 -0
  95. package/src/utils/upload/errors.ts +34 -0
  96. package/src/utils/upload/types.ts +7 -0
  97. package/src/utils/upload/utils.ts +12 -0
  98. package/src/views/Chat/AgentInfo.tsx +3 -2
  99. package/src/views/Chat/ChatMessage.tsx +139 -113
  100. package/src/views/Chat/styled.ts +23 -1
  101. package/src/views/MessageInput/{InfoBar.tsx → ContextBar.tsx} +9 -9
  102. package/src/views/MessageInput/SelectContent.tsx +17 -21
  103. package/src/views/MessageInput/UploadBar.tsx +69 -0
  104. package/src/views/MessageInput/dictionary.ts +18 -4
  105. package/src/views/MessageInput/index.tsx +77 -32
  106. package/src/views/MessageInput/styled.ts +56 -27
  107. package/dist/views/MessageInput/InfoBar.d.ts.map +0 -1
  108. package/dist/views/MessageInput/InfoBar.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.25.0](https://github.com/stack-spot/portal-ai-chat-widget/compare/ai-chat-widget@v1.24.4...ai-chat-widget@v1.25.0) (2025-06-10)
4
+
5
+
6
+ ### Features
7
+
8
+ * file upload ([#174](https://github.com/stack-spot/portal-ai-chat-widget/issues/174)) ([48e665a](https://github.com/stack-spot/portal-ai-chat-widget/commit/48e665a5cb503d6f90e6cbee3ac64bc78357dca3))
9
+
10
+ ## [1.24.4](https://github.com/stack-spot/portal-ai-chat-widget/compare/ai-chat-widget@v1.24.3...ai-chat-widget@v1.24.4) (2025-06-06)
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * 918 Copy button and Message MD validator ([#166](https://github.com/stack-spot/portal-ai-chat-widget/issues/166)) ([2120f4c](https://github.com/stack-spot/portal-ai-chat-widget/commit/2120f4c94a853568a0b22830972473047867af0b))
16
+
3
17
  ## [1.24.3](https://github.com/stack-spot/portal-ai-chat-widget/compare/ai-chat-widget@v1.24.2...ai-chat-widget@v1.24.3) (2025-06-06)
4
18
 
5
19
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stack-spot/ai-chat-widget",
3
- "version": "1.24.3",
4
- "date": "Fri Jun 06 2025 13:42:23 GMT+0000 (Coordinated Universal Time)",
3
+ "version": "1.25.0",
4
+ "date": "Tue Jun 10 2025 19:45:00 GMT+0000 (Coordinated Universal Time)",
5
5
  "dependencies": [
6
6
  {
7
7
  "name": "@stack-spot/app-metadata",
@@ -113,7 +113,7 @@
113
113
  },
114
114
  {
115
115
  "name": "@stack-spot/portal-network",
116
- "version": "0.128.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)"
116
+ "version": "0.139.0(@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)"
117
117
  },
118
118
  {
119
119
  "name": "@stack-spot/portal-theme",
@@ -27,7 +27,7 @@ function createEntryValueFromChatResponse(response, knowledgeSources, agent, inc
27
27
  }
28
28
  function buildPrompt(content, data) {
29
29
  if (data === undefined || data === '' || data === null)
30
- return content;
30
+ return content || '.'; // prevents empty strings
31
31
  return typeof data === 'string' ? data : JSON.stringify(data);
32
32
  }
33
33
  /**
@@ -44,12 +44,12 @@ export async function sendMessageInterceptor(entry, chat, signal) {
44
44
  const { agentType, content, data } = entry.getValue();
45
45
  if (agentType !== 'user')
46
46
  return;
47
- const context = buildConversationContext(chat);
47
+ const context = buildConversationContext(chat, entry);
48
48
  chat.set('isLoading', true);
49
49
  const untitled = chat.untitled;
50
50
  const isFirstMessage = chat.getMessages().length === 1;
51
51
  if (untitled) {
52
- chat.set('label', content);
52
+ chat.set('label', content || entry.getValue().upload?.[0]?.name || 'Chat');
53
53
  chat.untitled = false;
54
54
  }
55
55
  const stream = aiClient.sendChatMessage({ context, user_prompt: buildPrompt(content, data) });
@@ -1 +1 @@
1
- {"version":3,"file":"send-message.js","sourceRoot":"","sources":["../../src/chat-interceptors/send-message.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"send-message.js","sourceRoot":"","sources":["../../src/chat-interceptors/send-message.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { FileUploadStatus } from '../utils/upload/types.js';
2
+ export interface FileDescriptionProps {
3
+ fileName: string;
4
+ icon?: React.ReactNode;
5
+ status?: FileUploadStatus;
6
+ onRemove?: () => void;
7
+ onRetry?: () => void;
8
+ }
9
+ export declare const FileDescription: ({ fileName, icon, status, onRemove, onRetry }: FileDescriptionProps) => import("react/jsx-runtime").JSX.Element;
10
+ //# sourceMappingURL=FileDescription.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileDescription.d.ts","sourceRoot":"","sources":["../../src/components/FileDescription.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AA6DD,eAAO,MAAM,eAAe,kDAAmD,oBAAoB,4CAuBlG,CAAA"}
@@ -0,0 +1,85 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { IconBox, Text } from '@citric/core';
3
+ import { Document, Sync, TimesMini } from '@citric/icons';
4
+ import { IconButton, LoadingCircular } from '@citric/ui';
5
+ import { theme } from '@stack-spot/portal-theme';
6
+ import { useTranslate } from '@stack-spot/portal-translate';
7
+ import { styled } from 'styled-components';
8
+ const Styled = styled.div `
9
+ padding: 4px;
10
+ border-radius: 4px;
11
+ display: flex;
12
+ gap: 8px;
13
+ background-color: ${theme.color.light[600]};
14
+ box-sizing: border-box;
15
+ &.error {
16
+ border: 1px solid ${theme.color.danger[500]};
17
+ }
18
+ &.pending .status {
19
+ cursor: progress;
20
+ }
21
+ .image {
22
+ border-radius: 4px;
23
+ overflow: hidden;
24
+ background-color: ${theme.color.light[500]};
25
+ width: 28px;
26
+ aspect-ratio: 1;
27
+ display: flex;
28
+ align-items: center;
29
+ justify-content: center;
30
+ position: relative;
31
+ img {
32
+ width: 100%;
33
+ }
34
+ .status {
35
+ position: absolute;
36
+ background-color: rgba(0, 0, 0, 0.3);
37
+ top: 0;
38
+ left: 0;
39
+ bottom: 0;
40
+ right: 0;
41
+ display: flex;
42
+ align-items: center;
43
+ justify-content: center;
44
+ button {
45
+ padding: 2px;
46
+ }
47
+ }
48
+ }
49
+ .details {
50
+ display: flex;
51
+ flex-direction: column;
52
+ justify-content: space-between;
53
+ small {
54
+ max-width: 100px;
55
+ white-space: nowrap;
56
+ text-overflow: ellipsis;
57
+ overflow: hidden;
58
+ line-height: 1;
59
+ }
60
+ }
61
+ button {
62
+ padding: 0;
63
+ margin: -2px -2px 0 0;
64
+ }
65
+ `;
66
+ export const FileDescription = ({ fileName, icon, status, onRemove, onRetry }) => {
67
+ const t = useTranslate(dictionary);
68
+ const [, name, extension] = fileName.match(/(.+)\.([^.]+)$/) ?? ['', 'Unknown', 'Unknown'];
69
+ return (_jsxs(Styled, { className: status, "aria-busy": status === 'pending', children: [_jsxs("div", { className: "image", children: [icon ?? _jsx(IconBox, { children: _jsx(Document, {}) }), status === 'pending' && _jsx("div", { className: "status", "aria-label": t.loading, children: _jsx(LoadingCircular, { size: "xs" }) }), status === 'error' && _jsx("div", { className: "status", "aria-label": t.error, children: _jsx(IconButton, { onClick: onRetry, children: _jsx(Sync, {}) }) })] }), _jsxs("div", { className: "details", children: [_jsx(Text, { appearance: "microtext1", className: "name", title: name, children: name }), _jsx(Text, { appearance: "microtext1", colorScheme: "light.700", children: extension.toUpperCase() })] }), onRemove && _jsx(IconButton, { onClick: onRemove, title: t.remove, "arial-label": `${t.remove} ${name}`, children: _jsx(TimesMini, {}) })] }));
70
+ };
71
+ const dictionary = {
72
+ en: {
73
+ loading: 'Uploading file',
74
+ retry: 'Retry',
75
+ remove: 'Remove',
76
+ error: 'Error while uploading file',
77
+ },
78
+ pt: {
79
+ loading: 'Carregando arquivo',
80
+ retry: 'Tentar novamente',
81
+ remove: 'Remover',
82
+ error: 'Erro ao carregar o arquivo',
83
+ },
84
+ };
85
+ //# sourceMappingURL=FileDescription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileDescription.js","sourceRoot":"","sources":["../../src/components/FileDescription.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAChD,OAAO,EAAc,YAAY,EAAE,MAAM,8BAA8B,CAAA;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAW1C,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;sBAKH,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;wBAGpB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;;;;;;;;wBAQvB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyC7C,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAwB,EAAE,EAAE;IACrG,MAAM,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAA;IAClC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;IAC1F,OAAO,CACL,MAAC,MAAM,IAAC,SAAS,EAAE,MAAM,eAAa,MAAM,KAAK,SAAS,aACxD,eAAK,SAAS,EAAC,OAAO,aACnB,IAAI,IAAI,KAAC,OAAO,cAAC,KAAC,QAAQ,KAAG,GAAU,EACvC,MAAM,KAAK,SAAS,IAAI,cAAK,SAAS,EAAC,QAAQ,gBAAa,CAAC,CAAC,OAAO,YACpE,KAAC,eAAe,IAAC,IAAI,EAAC,IAAI,GAAG,GACzB,EACL,MAAM,KAAK,OAAO,IAAI,cAAK,SAAS,EAAC,QAAQ,gBAAa,CAAC,CAAC,KAAK,YAChE,KAAC,UAAU,IAAC,OAAO,EAAE,OAAO,YAAE,KAAC,IAAI,KAAG,GAAa,GAC/C,IACF,EACN,eAAK,SAAS,EAAC,SAAS,aACtB,KAAC,IAAI,IAAC,UAAU,EAAC,YAAY,EAAC,SAAS,EAAC,MAAM,EAAC,KAAK,EAAE,IAAI,YAAG,IAAI,GAAQ,EACzE,KAAC,IAAI,IAAC,UAAU,EAAC,YAAY,EAAC,WAAW,EAAC,WAAW,YAAE,SAAS,CAAC,WAAW,EAAE,GAAQ,IAClF,EACL,QAAQ,IAAI,KAAC,UAAU,IAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,iBAAe,GAAG,CAAC,CAAC,MAAM,IAAI,IAAI,EAAE,YAC7F,KAAC,SAAS,KAAG,GACF,IACN,CACV,CAAA;AACH,CAAC,CAAA;AAED,MAAM,UAAU,GAAG;IACjB,EAAE,EAAE;QACF,OAAO,EAAE,gBAAgB;QACzB,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,4BAA4B;KACpC;IACD,EAAE,EAAE;QACF,OAAO,EAAE,oBAAoB;QAC7B,KAAK,EAAE,kBAAkB;QACzB,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,4BAA4B;KACpC;CACmB,CAAA"}
@@ -58,6 +58,11 @@ export interface ChatTool {
58
58
  name: string;
59
59
  description: string;
60
60
  }
61
+ export interface UploadedFile {
62
+ id: string;
63
+ name: string;
64
+ image?: string;
65
+ }
61
66
  export interface TextChatEntry {
62
67
  /**
63
68
  * "text" for simple unformatted paragraphs. "md" for markdown.
@@ -163,6 +168,10 @@ export interface TextChatEntry {
163
168
  * Valid for input types.
164
169
  */
165
170
  initialValue?: string[];
171
+ /**
172
+ * If this chat entry contains any uploaded file, these are the files being uploaded along the message.
173
+ */
174
+ upload?: UploadedFile[];
166
175
  }
167
176
  type ChatEntryListener = (value: TextChatEntry) => void;
168
177
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ChatEntry.d.ts","sourceRoot":"","sources":["../../src/state/ChatEntry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChatEntry.d.ts","sourceRoot":"","sources":["../../src/state/ChatEntry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAE3D,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEtC,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAW,SAAQ,kBAAkB;IACpD;;OAEG;IACH,UAAU,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;IACrC;;OAEG;IACH,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,UAAU,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAChC;;MAEE;IACH,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,YAAY,GAAG,aAAa,GAAG,aAAa,GAAG,gBAAgB,GAAG,aAAa,CAAC;IACtG;;OAEG;IACH,SAAS,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;IACrC;;OAEG;IACH,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,GAAG,CAAC;IACX;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB;;OAEG;IACH,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,gBAAgB,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACvD;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAIjB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,iBAAiB,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAC,EAAE,CAAC;IAC5F;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,WAAW,CAAC,EAAE;QACZ,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;CACzB;AAED,KAAK,iBAAiB,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAA;AAMvD;;GAEG;AACH,qBAAa,SAAS;IACpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,SAAS,CAA0B;IAE3C;;OAEG;gBACS,KAAK,EAAE,aAAa;IAKhC;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,UAAQ,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE;IAWlG;;;OAGG;IACH,MAAM,CAAC,sBAAsB;IAI7B,QAAQ,CAAC,KAAK,EAAE,aAAa;IAK7B,QAAQ;IAIR;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,iBAAiB;CAMrC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChatEntry.js","sourceRoot":"","sources":["../../src/state/ChatEntry.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAwK7B,0IAA0I;AAC1I,6CAA6C;AAC7C,IAAI,MAAM,GAAG,CAAC,CAAA;AAEd;;GAEG;AACH,MAAM,OAAO,SAAS;IACX,EAAE,CAAQ;IACX,KAAK,CAAe;IACpB,SAAS,GAAwB,EAAE,CAAA;IAE3C;;OAEG;IACH,YAAY,KAAoB;QAC9B,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,CAAA;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,OAAe,EAAE,IAAI,GAAG,KAAK,EAAE,SAAkB,EAAE,aAAwB;QAChG,OAAO,IAAI,SAAS,CAAC;YACnB,SAAS,EAAE,MAAM;YACjB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;YAC1B,OAAO;YACP,IAAI,EAAE,SAAS;YACf,aAAa;YACb,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SAClC,CAAC,CAAA;IACJ,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,sBAAsB;QAC3B,OAAO,IAAI,SAAS,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAA;IACrE,CAAC;IAED,QAAQ,CAAC,KAAoB;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAC5C,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,QAA2B;QAClC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC7B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QAChC,CAAC,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"ChatEntry.js","sourceRoot":"","sources":["../../src/state/ChatEntry.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAkL7B,0IAA0I;AAC1I,6CAA6C;AAC7C,IAAI,MAAM,GAAG,CAAC,CAAA;AAEd;;GAEG;AACH,MAAM,OAAO,SAAS;IACX,EAAE,CAAQ;IACX,KAAK,CAAe;IACpB,SAAS,GAAwB,EAAE,CAAA;IAE3C;;OAEG;IACH,YAAY,KAAoB;QAC9B,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,CAAA;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,OAAe,EAAE,IAAI,GAAG,KAAK,EAAE,SAAkB,EAAE,aAAwB;QAChG,OAAO,IAAI,SAAS,CAAC;YACnB,SAAS,EAAE,MAAM;YACjB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;YAC1B,OAAO;YACP,IAAI,EAAE,SAAS;YACf,aAAa;YACb,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SAClC,CAAC,CAAA;IACJ,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,sBAAsB;QAC3B,OAAO,IAAI,SAAS,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAA;IACrE,CAAC;IAED,QAAQ,CAAC,KAAoB;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAC5C,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,QAA2B;QAClC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC7B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QAChC,CAAC,CAAA;IACH,CAAC;CACF"}
@@ -1,4 +1,5 @@
1
1
  import { ChatFeatures } from '../features.js';
2
+ import { UploadManager } from '../utils/upload/UploadManager.js';
2
3
  import { ChatEntry } from './ChatEntry.js';
3
4
  import { ObservableState } from './ObservableState.js';
4
5
  import { Labeled, LabeledAgent } from './types.js';
@@ -113,6 +114,10 @@ export declare class ChatState extends ObservableState<ChatProperties> {
113
114
  * Abort signals currently active.
114
115
  */
115
116
  private abortions;
117
+ /**
118
+ * Used to manage uploads for this Chat.
119
+ */
120
+ readonly uploadManager: UploadManager;
116
121
  untitled: boolean;
117
122
  constructor({ id, initial, entries, interceptors, untitled }: Options);
118
123
  private runMessagesListeners;
@@ -1 +1 @@
1
- {"version":3,"file":"ChatState.d.ts","sourceRoot":"","sources":["../../src/state/ChatState.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAA2B,MAAM,aAAa,CAAA;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAE/C,MAAM,WAAW,kCAAkC;IACjD;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,cAAe,SAAQ,kCAAkC;IACxE;;OAEG;IACH,QAAQ,EAAE,YAAY,CAAC;CACxB;AAED,KAAK,oBAAoB,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,IAAI,CAAA;AAEvD,MAAM,MAAM,kBAAkB,GAAG,CAC/B,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,KACnD,OAAO,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,CAAA;AAErE,UAAU,OAAO;IACf;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,OAAO,EAAE,kCAAkC,CAAC;IAC5C;;;;;;;;;;;;;;;;;OAiBG;IACH,YAAY,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACpC;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,SAAU,SAAQ,eAAe,CAAC,cAAc,CAAC;IAC5D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;IACnD;;OAEG;IACH,iBAAiB,mBAAyB;IAC1C;;OAEG;IACH,OAAO,CAAC,SAAS,CAAwB;IACzC,QAAQ,EAAE,OAAO,CAAA;gBAEL,EAAE,EAAE,EAAE,OAAO,EAAE,OAAY,EAAE,YAAiB,EAAE,QAAgB,EAAE,EAAE,OAAO;IAQvF,OAAO,CAAC,oBAAoB;YAId,eAAe;IAe7B;;;OAGG;IACH,WAAW,CAAC,GAAG,OAAO,EAAE,SAAS,EAAE;IAOnC;;;OAGG;IACH,UAAU,CAAC,QAAQ,SAAI;IAKvB;;OAEG;IACH,WAAW;IAIX;;;;OAIG;IACH,gBAAgB,CAAC,QAAQ,EAAE,oBAAoB;IAO/C;;OAEG;IACH,KAAK;IAKL;;;;OAIG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM;CAUhC"}
1
+ {"version":3,"file":"ChatState.d.ts","sourceRoot":"","sources":["../../src/state/ChatState.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAA2B,MAAM,aAAa,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAE/C,MAAM,WAAW,kCAAkC;IACjD;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,cAAe,SAAQ,kCAAkC;IACxE;;OAEG;IACH,QAAQ,EAAE,YAAY,CAAC;CACxB;AAED,KAAK,oBAAoB,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,IAAI,CAAA;AAEvD,MAAM,MAAM,kBAAkB,GAAG,CAC/B,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,KACnD,OAAO,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,CAAA;AAErE,UAAU,OAAO;IACf;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,OAAO,EAAE,kCAAkC,CAAC;IAC5C;;;;;;;;;;;;;;;;;OAiBG;IACH,YAAY,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACpC;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,SAAU,SAAQ,eAAe,CAAC,cAAc,CAAC;IAC5D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;IACnD;;OAEG;IACH,iBAAiB,mBAAyB;IAC1C;;OAEG;IACH,OAAO,CAAC,SAAS,CAAwB;IACzC;;OAEG;IACH,QAAQ,CAAC,aAAa,gBAAmG;IACzH,QAAQ,EAAE,OAAO,CAAA;gBAEL,EAAE,EAAE,EAAE,OAAO,EAAE,OAAY,EAAE,YAAiB,EAAE,QAAgB,EAAE,EAAE,OAAO;IAQvF,OAAO,CAAC,oBAAoB;YAId,eAAe;IAe7B;;;OAGG;IACH,WAAW,CAAC,GAAG,OAAO,EAAE,SAAS,EAAE;IAOnC;;;OAGG;IACH,UAAU,CAAC,QAAQ,SAAI;IAKvB;;OAEG;IACH,WAAW;IAIX;;;;OAIG;IACH,gBAAgB,CAAC,QAAQ,EAAE,oBAAoB;IAO/C;;OAEG;IACH,KAAK;IAKL;;;;OAIG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM;CAUhC"}
@@ -2,6 +2,8 @@ import { dropRight, last, pull } from 'lodash';
2
2
  import { ulid } from 'ulid';
3
3
  import { AbortedError } from '../AbortedError.js';
4
4
  import { getFeaturesWithDefaults } from '../features.js';
5
+ import { UploadManager } from '../utils/upload/UploadManager.js';
6
+ import { acceptedFileTypes, maxFileSize, maxUploadItems } from './constants.js';
5
7
  import { ObservableState } from './ObservableState.js';
6
8
  /**
7
9
  * A chat. Each chat tab is a different ChatState.
@@ -19,6 +21,10 @@ export class ChatState extends ObservableState {
19
21
  * Abort signals currently active.
20
22
  */
21
23
  abortions = [];
24
+ /**
25
+ * Used to manage uploads for this Chat.
26
+ */
27
+ uploadManager = new UploadManager({ maxSize: maxFileSize, accept: acceptedFileTypes, maxItems: maxUploadItems });
22
28
  untitled;
23
29
  constructor({ id, initial, entries = [], interceptors = [], untitled = false }) {
24
30
  super({ ...initial, features: getFeaturesWithDefaults(initial.features) });
@@ -1 +1 @@
1
- {"version":3,"file":"ChatState.js","sourceRoot":"","sources":["../../src/state/ChatState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChatState.js","sourceRoot":"","sources":["../../src/state/ChatState.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { FileSize } from './types.js';
2
+ export declare const acceptedFileTypes: string[];
3
+ export declare const maxFileSize: FileSize;
4
+ export declare const maxUploadItems = 5;
5
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/state/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAElC,eAAO,MAAM,iBAAiB,UAK7B,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,QAAoC,CAAA;AAE9D,eAAO,MAAM,cAAc,IAAI,CAAA"}
@@ -0,0 +1,9 @@
1
+ export const acceptedFileTypes = [
2
+ 'json', 'yaml', 'txt', 'md', 'json', 'yaml', 'pdf', 'xls', 'xlsx', 'csv', 'cbl', 'cpp', 'cxx', 'cc', 'c', 'hpp', 'hxx', 'hh', 'h', 'cs',
3
+ 'go', 'html', 'htm', 'kt', 'kts', 'md', 'php', 'proto', 'py', 'java', 'js', 'jsx', 'ts', 'tsx', 'rst', 'rb', 'rs', 'scala', 'swift',
4
+ 'sql', 'yaml', 'yml', 'tf', 'sh', 'ps1', 'psd1', 'psm1', 'bat', 'cmd', 'rego', 'f', 'for', 'r', 'pl', 'vb', 'dart', 'hs', 'lua',
5
+ 'asm', 'groovy', 'gvy', 'gy', 'mat', 'clj', 'lisp', 'm', 'cls', 'css', 'scss', 'json', 'jpg', 'jpeg', 'png',
6
+ ];
7
+ export const maxFileSize = { value: 10, unit: 'MB' };
8
+ export const maxUploadItems = 5;
9
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/state/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI;IACvI,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;IACnI,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK;IAC/H,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK;CAC5G,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAa,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;AAE9D,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAA"}
@@ -10,4 +10,8 @@ export interface LabeledAgent extends LabeledWithImage {
10
10
  slug?: string;
11
11
  visibility_level?: string;
12
12
  }
13
+ export interface FileSize {
14
+ value: number;
15
+ unit: 'B' | 'KB' | 'MB' | 'GB';
16
+ }
13
17
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/state/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAiB,SAAQ,OAAO;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAa,SAAQ,gBAAgB;IACpD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/state/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAiB,SAAQ,OAAO;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAa,SAAQ,gBAAgB;IACpD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAChC"}
@@ -1,4 +1,5 @@
1
1
  import { FixedChatRequest } from '@stack-spot/portal-network';
2
+ import { ChatEntry } from '../state/ChatEntry.js';
2
3
  import { ChatState } from '../state/ChatState.js';
3
4
  /**
4
5
  * Builds a conversation context from a ChatState.
@@ -8,5 +9,5 @@ import { ChatState } from '../state/ChatState.js';
8
9
  * @param state the ChatState to build the context from.
9
10
  * @returns the conversation context ready to be sent to the backend.
10
11
  */
11
- export declare function buildConversationContext(state: ChatState): FixedChatRequest['context'];
12
+ export declare function buildConversationContext(state: ChatState, message?: ChatEntry): FixedChatRequest['context'];
12
13
  //# sourceMappingURL=chat.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/utils/chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAE7D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAG9C;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,CActF"}
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/utils/chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAE7D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAG9C;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAe3G"}
@@ -8,13 +8,14 @@ import { defaultLanguage } from './programming-languages.js';
8
8
  * @param state the ChatState to build the context from.
9
9
  * @returns the conversation context ready to be sent to the backend.
10
10
  */
11
- export function buildConversationContext(state) {
11
+ export function buildConversationContext(state, message) {
12
12
  return {
13
13
  workspace: state.get('workspace')?.id,
14
14
  conversation_id: state.id,
15
15
  stack_id: state.get('stack')?.id,
16
16
  language: state.get('codeLanguage') || (state.get('codeSelection') ? defaultLanguage : undefined),
17
17
  knowledge_sources: state.get('knowledgeSources')?.map(ks => ks.id),
18
+ upload_ids: message?.getValue().upload?.map(f => f.id),
18
19
  agent_id: state.get('agent')?.id,
19
20
  agent_built_in: state.get('agent')?.builtIn,
20
21
  os: navigator.userAgent,
@@ -1 +1 @@
1
- {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/utils/chat.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,sBAAsB,CAAA;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAEzD;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAgB;IACvD,OAAO;QACL,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,EAAE;QACrC,eAAe,EAAE,KAAK,CAAC,EAAE;QACzB,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE;QAChC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;QACjG,iBAAiB,EAAE,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QAClE,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE;QAChC,cAAc,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,OAAO;QAC3C,EAAE,EAAE,SAAS,CAAC,SAAS;QACvB,QAAQ,EAAE,YAAY;QACtB,gBAAgB,EAAE,SAAS,CAAC,SAAS;QACrC,oBAAoB,EAAE,OAAO,CAAC,OAAO;KACtC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/utils/chat.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,sBAAsB,CAAA;AAG1C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAEzD;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAgB,EAAE,OAAmB;IAC5E,OAAO;QACL,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,EAAE;QACrC,eAAe,EAAE,KAAK,CAAC,EAAE;QACzB,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE;QAChC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;QACjG,iBAAiB,EAAE,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QAClE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE;QAChC,cAAc,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,OAAO;QAC3C,EAAE,EAAE,SAAS,CAAC,SAAS;QACvB,QAAQ,EAAE,YAAY;QACtB,gBAAgB,EAAE,SAAS,CAAC,SAAS;QACrC,oBAAoB,EAAE,OAAO,CAAC,OAAO;KACtC,CAAA;AACH,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { FileUploadType } from '@stack-spot/portal-network/api/dataIntegration';
2
+ import { FileUploadStatus } from './types.js';
3
+ export type FileUploadChangeListener = (status: FileUploadStatus) => void;
4
+ export declare class FileUpload {
5
+ readonly file: File;
6
+ status: FileUploadStatus;
7
+ readonly id: string;
8
+ readonly type: FileUploadType;
9
+ error?: any;
10
+ uploadId?: string;
11
+ private listeners;
12
+ private abortController;
13
+ constructor(file: File, type?: FileUploadType);
14
+ private runListeners;
15
+ private upload;
16
+ stop(): void;
17
+ retry(): void;
18
+ onChange(listener: FileUploadChangeListener): () => void;
19
+ destroy(): void;
20
+ }
21
+ //# sourceMappingURL=FileUpload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileUpload.d.ts","sourceRoot":"","sources":["../../../src/utils/upload/FileUpload.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAA;AAE/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAG1C,MAAM,MAAM,wBAAwB,GAAG,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAA;AAEzE,qBAAa,UAAU;IACrB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,MAAM,EAAE,gBAAgB,CAAY;IACpC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;IAC7B,KAAK,CAAC,EAAE,GAAG,CAAA;IACX,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,SAAS,CAAiC;IAClD,OAAO,CAAC,eAAe,CAAwB;gBAEnC,IAAI,EAAE,IAAI,EAAE,IAAI,GAAE,cAA0B;IAOxD,OAAO,CAAC,YAAY;YAIN,MAAM;IAYpB,IAAI;IAIJ,KAAK;IAOL,QAAQ,CAAC,QAAQ,EAAE,wBAAwB;IAO3C,OAAO;CAIR"}
@@ -0,0 +1,55 @@
1
+ import { dataIntegrationClient } from '@stack-spot/portal-network';
2
+ import { pull } from 'lodash';
3
+ import { getFileId } from './utils.js';
4
+ export class FileUpload {
5
+ file;
6
+ status = 'pending';
7
+ id;
8
+ type;
9
+ error;
10
+ uploadId;
11
+ listeners = [];
12
+ abortController = new AbortController();
13
+ constructor(file, type = 'CONTEXT') {
14
+ this.file = file;
15
+ this.id = getFileId(file);
16
+ this.type = type;
17
+ this.upload();
18
+ }
19
+ runListeners() {
20
+ this.listeners.forEach(l => l(this.status));
21
+ }
22
+ async upload() {
23
+ try {
24
+ const [id] = await dataIntegrationClient.uploadFiles.mutate({ files: [this.file], type: this.type }, this.abortController.signal);
25
+ this.uploadId = id;
26
+ this.status = 'success';
27
+ }
28
+ catch (error) {
29
+ this.error = error;
30
+ this.status = 'error';
31
+ }
32
+ this.runListeners();
33
+ }
34
+ stop() {
35
+ this.abortController.abort();
36
+ }
37
+ retry() {
38
+ if (this.status != 'error')
39
+ return;
40
+ this.status = 'pending';
41
+ this.runListeners();
42
+ this.upload();
43
+ }
44
+ onChange(listener) {
45
+ this.listeners.push(listener);
46
+ return () => {
47
+ pull(this.listeners, listener);
48
+ };
49
+ }
50
+ destroy() {
51
+ this.listeners = [];
52
+ this.stop();
53
+ }
54
+ }
55
+ //# sourceMappingURL=FileUpload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileUpload.js","sourceRoot":"","sources":["../../../src/utils/upload/FileUpload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAElE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAE7B,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAInC,MAAM,OAAO,UAAU;IACZ,IAAI,CAAM;IACnB,MAAM,GAAqB,SAAS,CAAA;IAC3B,EAAE,CAAQ;IACV,IAAI,CAAgB;IAC7B,KAAK,CAAM;IACX,QAAQ,CAAS;IACT,SAAS,GAA+B,EAAE,CAAA;IAC1C,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;IAE/C,YAAY,IAAU,EAAE,OAAuB,SAAS;QACtD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,MAAM,EAAE,CAAA;IACf,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IAC7C,CAAC;IAEO,KAAK,CAAC,MAAM;QAClB,IAAI,CAAC;YACH,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,qBAAqB,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;YACjI,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;YAClB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;YAClB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAA;QACvB,CAAC;QACD,IAAI,CAAC,YAAY,EAAE,CAAA;IACrB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAA;IAC9B,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO;YAAE,OAAM;QAClC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;QACvB,IAAI,CAAC,YAAY,EAAE,CAAA;QACnB,IAAI,CAAC,MAAM,EAAE,CAAA;IACf,CAAC;IAED,QAAQ,CAAC,QAAkC;QACzC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC7B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QAChC,CAAC,CAAA;IACH,CAAC;IAED,OAAO;QACL,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;QACnB,IAAI,CAAC,IAAI,EAAE,CAAA;IACb,CAAC;CACF"}
@@ -0,0 +1,40 @@
1
+ import { FileSize } from '../../state/types.js';
2
+ import { UploadError } from './errors.js';
3
+ import { FileUpload } from './FileUpload.js';
4
+ export type UploadChangeListener = (files: FileUpload[]) => void;
5
+ export type UploadStatusChangeListener = (status: UploadManagerStatus) => void;
6
+ export type UploadErrorListener = (errors: UploadError[]) => void;
7
+ export type UploadManagerStatus = 'idle' | 'uploading' | 'error';
8
+ export declare class UploadManager {
9
+ private changeListeners;
10
+ private statusListeners;
11
+ private errorListeners;
12
+ private input;
13
+ private value;
14
+ private maxSize?;
15
+ private maxItems;
16
+ private accept;
17
+ private onDestroy;
18
+ status: UploadManagerStatus;
19
+ constructor(options?: {
20
+ maxSize?: FileSize;
21
+ accept?: string[];
22
+ maxItems?: number;
23
+ });
24
+ private runChangeListeners;
25
+ private runStatusListeners;
26
+ private hasEquivalentFile;
27
+ private attachEventListeners;
28
+ private createInput;
29
+ private computeStatus;
30
+ open(): void;
31
+ get(): FileUpload[];
32
+ reset(): void;
33
+ remove(file: FileUpload): void;
34
+ onChange(listener: UploadChangeListener): () => void;
35
+ onChangeStatus(listener: UploadStatusChangeListener): () => void;
36
+ onError(listener: UploadErrorListener): () => void;
37
+ isFull(): boolean;
38
+ destroy(): void;
39
+ }
40
+ //# sourceMappingURL=UploadManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UploadManager.d.ts","sourceRoot":"","sources":["../../../src/utils/upload/UploadManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAsD,WAAW,EAAE,MAAM,UAAU,CAAA;AAC1F,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAGzC,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,IAAI,CAAA;AAChE,MAAM,MAAM,0BAA0B,GAAG,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAA;AAC9E,MAAM,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,IAAI,CAAA;AACjE,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO,CAAA;AAEhE,qBAAa,aAAa;IACxB,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,eAAe,CAAmC;IAC1D,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,OAAO,CAAC,CAAU;IAC1B,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,SAAS,CAAuB;IACxC,MAAM,EAAE,mBAAmB,CAAS;gBAExB,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,QAAQ,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IAMlF,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,oBAAoB;IA+B5B,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,aAAa;IASrB,IAAI;IAKJ,GAAG,IAAI,UAAU,EAAE;IAInB,KAAK;IAML,MAAM,CAAC,IAAI,EAAE,UAAU;IAOvB,QAAQ,CAAC,QAAQ,EAAE,oBAAoB;IAOvC,cAAc,CAAC,QAAQ,EAAE,0BAA0B;IAOnD,OAAO,CAAC,QAAQ,EAAE,mBAAmB;IAOrC,MAAM;IAIN,OAAO;CAIR"}