@meistrari/chat-nuxt 1.0.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 (479) hide show
  1. package/README.md +274 -0
  2. package/dist/module.d.mts +3 -0
  3. package/dist/module.json +9 -0
  4. package/dist/module.mjs +250 -0
  5. package/dist/runtime/assets/css/code-theme.css +1 -0
  6. package/dist/runtime/assets/css/markstream.css +1 -0
  7. package/dist/runtime/components/AppStatusToast.d.vue.ts +3 -0
  8. package/dist/runtime/components/AppStatusToast.vue +42 -0
  9. package/dist/runtime/components/AppStatusToast.vue.d.ts +3 -0
  10. package/dist/runtime/components/TelaChat.d.vue.ts +19 -0
  11. package/dist/runtime/components/TelaChat.vue +25 -0
  12. package/dist/runtime/components/TelaChat.vue.d.ts +19 -0
  13. package/dist/runtime/components/app-markdown-render.d.vue.ts +15 -0
  14. package/dist/runtime/components/app-markdown-render.vue +45 -0
  15. package/dist/runtime/components/app-markdown-render.vue.d.ts +15 -0
  16. package/dist/runtime/components/application-card.d.vue.ts +9 -0
  17. package/dist/runtime/components/application-card.vue +52 -0
  18. package/dist/runtime/components/application-card.vue.d.ts +9 -0
  19. package/dist/runtime/components/audio-preview.d.vue.ts +14 -0
  20. package/dist/runtime/components/audio-preview.vue +52 -0
  21. package/dist/runtime/components/audio-preview.vue.d.ts +14 -0
  22. package/dist/runtime/components/chat/bash-widget.d.vue.ts +9 -0
  23. package/dist/runtime/components/chat/bash-widget.vue +86 -0
  24. package/dist/runtime/components/chat/bash-widget.vue.d.ts +9 -0
  25. package/dist/runtime/components/chat/canvas-selector-modal.d.vue.ts +14 -0
  26. package/dist/runtime/components/chat/canvas-selector-modal.vue +290 -0
  27. package/dist/runtime/components/chat/canvas-selector-modal.vue.d.ts +14 -0
  28. package/dist/runtime/components/chat/context-config.d.vue.ts +30 -0
  29. package/dist/runtime/components/chat/context-config.vue +423 -0
  30. package/dist/runtime/components/chat/context-config.vue.d.ts +30 -0
  31. package/dist/runtime/components/chat/conversation-item.d.vue.ts +20 -0
  32. package/dist/runtime/components/chat/conversation-item.vue +184 -0
  33. package/dist/runtime/components/chat/conversation-item.vue.d.ts +20 -0
  34. package/dist/runtime/components/chat/conversation-list.d.vue.ts +10 -0
  35. package/dist/runtime/components/chat/conversation-list.vue +78 -0
  36. package/dist/runtime/components/chat/conversation-list.vue.d.ts +10 -0
  37. package/dist/runtime/components/chat/doc-sdk-widget.d.vue.ts +9 -0
  38. package/dist/runtime/components/chat/doc-sdk-widget.vue +74 -0
  39. package/dist/runtime/components/chat/doc-sdk-widget.vue.d.ts +9 -0
  40. package/dist/runtime/components/chat/file-preview.d.vue.ts +7 -0
  41. package/dist/runtime/components/chat/file-preview.vue +313 -0
  42. package/dist/runtime/components/chat/file-preview.vue.d.ts +7 -0
  43. package/dist/runtime/components/chat/files-view.d.vue.ts +6 -0
  44. package/dist/runtime/components/chat/files-view.vue +399 -0
  45. package/dist/runtime/components/chat/files-view.vue.d.ts +6 -0
  46. package/dist/runtime/components/chat/generic-tool-widget.d.vue.ts +9 -0
  47. package/dist/runtime/components/chat/generic-tool-widget.vue +334 -0
  48. package/dist/runtime/components/chat/generic-tool-widget.vue.d.ts +9 -0
  49. package/dist/runtime/components/chat/grep-widget.d.vue.ts +9 -0
  50. package/dist/runtime/components/chat/grep-widget.vue +259 -0
  51. package/dist/runtime/components/chat/grep-widget.vue.d.ts +9 -0
  52. package/dist/runtime/components/chat/mention-dropdown.d.vue.ts +14 -0
  53. package/dist/runtime/components/chat/mention-dropdown.vue +90 -0
  54. package/dist/runtime/components/chat/mention-dropdown.vue.d.ts +14 -0
  55. package/dist/runtime/components/chat/message-bubble.d.vue.ts +11 -0
  56. package/dist/runtime/components/chat/message-bubble.vue +288 -0
  57. package/dist/runtime/components/chat/message-bubble.vue.d.ts +11 -0
  58. package/dist/runtime/components/chat/message-input.d.vue.ts +34 -0
  59. package/dist/runtime/components/chat/message-input.vue +428 -0
  60. package/dist/runtime/components/chat/message-input.vue.d.ts +34 -0
  61. package/dist/runtime/components/chat/message-list.d.vue.ts +11 -0
  62. package/dist/runtime/components/chat/message-list.vue +36 -0
  63. package/dist/runtime/components/chat/message-list.vue.d.ts +11 -0
  64. package/dist/runtime/components/chat/model-selector.d.vue.ts +15 -0
  65. package/dist/runtime/components/chat/model-selector.vue +35 -0
  66. package/dist/runtime/components/chat/model-selector.vue.d.ts +15 -0
  67. package/dist/runtime/components/chat/new-conversation-modal.d.vue.ts +14 -0
  68. package/dist/runtime/components/chat/new-conversation-modal.vue +271 -0
  69. package/dist/runtime/components/chat/new-conversation-modal.vue.d.ts +14 -0
  70. package/dist/runtime/components/chat/read-widget.d.vue.ts +9 -0
  71. package/dist/runtime/components/chat/read-widget.vue +195 -0
  72. package/dist/runtime/components/chat/read-widget.vue.d.ts +9 -0
  73. package/dist/runtime/components/chat/reasoning-message.d.vue.ts +13 -0
  74. package/dist/runtime/components/chat/reasoning-message.vue +341 -0
  75. package/dist/runtime/components/chat/reasoning-message.vue.d.ts +13 -0
  76. package/dist/runtime/components/chat/reasoning-step-item.d.vue.ts +37 -0
  77. package/dist/runtime/components/chat/reasoning-step-item.vue +125 -0
  78. package/dist/runtime/components/chat/reasoning-step-item.vue.d.ts +37 -0
  79. package/dist/runtime/components/chat/reasoning-steps.d.vue.ts +12 -0
  80. package/dist/runtime/components/chat/reasoning-steps.vue +47 -0
  81. package/dist/runtime/components/chat/reasoning-steps.vue.d.ts +12 -0
  82. package/dist/runtime/components/chat/reasoning-thought.d.vue.ts +11 -0
  83. package/dist/runtime/components/chat/reasoning-thought.vue +287 -0
  84. package/dist/runtime/components/chat/reasoning-thought.vue.d.ts +11 -0
  85. package/dist/runtime/components/chat/tela-skill-widget.d.vue.ts +9 -0
  86. package/dist/runtime/components/chat/tela-skill-widget.vue +94 -0
  87. package/dist/runtime/components/chat/tela-skill-widget.vue.d.ts +9 -0
  88. package/dist/runtime/components/chat/thinking-indicator.d.vue.ts +3 -0
  89. package/dist/runtime/components/chat/thinking-indicator.vue +52 -0
  90. package/dist/runtime/components/chat/thinking-indicator.vue.d.ts +3 -0
  91. package/dist/runtime/components/chat/thinking-widget.d.vue.ts +8 -0
  92. package/dist/runtime/components/chat/thinking-widget.vue +53 -0
  93. package/dist/runtime/components/chat/thinking-widget.vue.d.ts +8 -0
  94. package/dist/runtime/components/chat/topbar.d.vue.ts +43 -0
  95. package/dist/runtime/components/chat/topbar.vue +223 -0
  96. package/dist/runtime/components/chat/topbar.vue.d.ts +43 -0
  97. package/dist/runtime/components/chat/usage-view.d.vue.ts +8 -0
  98. package/dist/runtime/components/chat/usage-view.vue +393 -0
  99. package/dist/runtime/components/chat/usage-view.vue.d.ts +8 -0
  100. package/dist/runtime/components/chat/vault-link.d.vue.ts +20 -0
  101. package/dist/runtime/components/chat/vault-link.vue +34 -0
  102. package/dist/runtime/components/chat/vault-link.vue.d.ts +20 -0
  103. package/dist/runtime/components/chat/web-search-widget.d.vue.ts +9 -0
  104. package/dist/runtime/components/chat/web-search-widget.vue +121 -0
  105. package/dist/runtime/components/chat/web-search-widget.vue.d.ts +9 -0
  106. package/dist/runtime/components/chat/workstation-query-widget.d.vue.ts +10 -0
  107. package/dist/runtime/components/chat/workstation-query-widget.vue +552 -0
  108. package/dist/runtime/components/chat/workstation-query-widget.vue.d.ts +10 -0
  109. package/dist/runtime/components/chat/workstation-selector-modal.d.vue.ts +14 -0
  110. package/dist/runtime/components/chat/workstation-selector-modal.vue +272 -0
  111. package/dist/runtime/components/chat/workstation-selector-modal.vue.d.ts +14 -0
  112. package/dist/runtime/components/chat/write-widget.d.vue.ts +9 -0
  113. package/dist/runtime/components/chat/write-widget.vue +165 -0
  114. package/dist/runtime/components/chat/write-widget.vue.d.ts +9 -0
  115. package/dist/runtime/components/conversation-files-panel.d.vue.ts +3 -0
  116. package/dist/runtime/components/conversation-files-panel.vue +252 -0
  117. package/dist/runtime/components/conversation-files-panel.vue.d.ts +3 -0
  118. package/dist/runtime/components/csv-preview.d.vue.ts +20 -0
  119. package/dist/runtime/components/csv-preview.vue +157 -0
  120. package/dist/runtime/components/csv-preview.vue.d.ts +20 -0
  121. package/dist/runtime/components/file-preview-panel.d.vue.ts +3 -0
  122. package/dist/runtime/components/file-preview-panel.vue +185 -0
  123. package/dist/runtime/components/file-preview-panel.vue.d.ts +3 -0
  124. package/dist/runtime/components/file-uploader.d.vue.ts +16 -0
  125. package/dist/runtime/components/file-uploader.vue +136 -0
  126. package/dist/runtime/components/file-uploader.vue.d.ts +16 -0
  127. package/dist/runtime/components/icons/anthropic.d.vue.ts +3 -0
  128. package/dist/runtime/components/icons/anthropic.vue +5 -0
  129. package/dist/runtime/components/icons/anthropic.vue.d.ts +3 -0
  130. package/dist/runtime/components/image-preview.d.vue.ts +14 -0
  131. package/dist/runtime/components/image-preview.vue +54 -0
  132. package/dist/runtime/components/image-preview.vue.d.ts +14 -0
  133. package/dist/runtime/components/json-tree-node.d.vue.ts +9 -0
  134. package/dist/runtime/components/json-tree-node.vue +109 -0
  135. package/dist/runtime/components/json-tree-node.vue.d.ts +9 -0
  136. package/dist/runtime/components/json-viewer.d.vue.ts +6 -0
  137. package/dist/runtime/components/json-viewer.vue +88 -0
  138. package/dist/runtime/components/json-viewer.vue.d.ts +6 -0
  139. package/dist/runtime/components/pdf-preview.d.vue.ts +20 -0
  140. package/dist/runtime/components/pdf-preview.vue +89 -0
  141. package/dist/runtime/components/pdf-preview.vue.d.ts +20 -0
  142. package/dist/runtime/components/pdf-viewer.d.vue.ts +10 -0
  143. package/dist/runtime/components/pdf-viewer.vue +265 -0
  144. package/dist/runtime/components/pdf-viewer.vue.d.ts +10 -0
  145. package/dist/runtime/components/powered-by-tela.d.vue.ts +3 -0
  146. package/dist/runtime/components/powered-by-tela.vue +14 -0
  147. package/dist/runtime/components/powered-by-tela.vue.d.ts +3 -0
  148. package/dist/runtime/components/renderers/artifact-display.d.vue.ts +15 -0
  149. package/dist/runtime/components/renderers/artifact-display.vue +105 -0
  150. package/dist/runtime/components/renderers/artifact-display.vue.d.ts +15 -0
  151. package/dist/runtime/components/renderers/audio-renderer.d.vue.ts +7 -0
  152. package/dist/runtime/components/renderers/audio-renderer.vue +52 -0
  153. package/dist/runtime/components/renderers/audio-renderer.vue.d.ts +7 -0
  154. package/dist/runtime/components/renderers/csv-renderer.d.vue.ts +6 -0
  155. package/dist/runtime/components/renderers/csv-renderer.vue +203 -0
  156. package/dist/runtime/components/renderers/csv-renderer.vue.d.ts +6 -0
  157. package/dist/runtime/components/renderers/image-renderer.d.vue.ts +7 -0
  158. package/dist/runtime/components/renderers/image-renderer.vue +44 -0
  159. package/dist/runtime/components/renderers/image-renderer.vue.d.ts +7 -0
  160. package/dist/runtime/components/renderers/markdown-renderer.d.vue.ts +6 -0
  161. package/dist/runtime/components/renderers/markdown-renderer.vue +66 -0
  162. package/dist/runtime/components/renderers/markdown-renderer.vue.d.ts +6 -0
  163. package/dist/runtime/components/renderers/mermaid-diagram.d.vue.ts +7 -0
  164. package/dist/runtime/components/renderers/mermaid-diagram.vue +165 -0
  165. package/dist/runtime/components/renderers/mermaid-diagram.vue.d.ts +7 -0
  166. package/dist/runtime/components/renderers/text-renderer.d.vue.ts +7 -0
  167. package/dist/runtime/components/renderers/text-renderer.vue +70 -0
  168. package/dist/runtime/components/renderers/text-renderer.vue.d.ts +7 -0
  169. package/dist/runtime/components/renderers/video-renderer.d.vue.ts +6 -0
  170. package/dist/runtime/components/renderers/video-renderer.vue +43 -0
  171. package/dist/runtime/components/renderers/video-renderer.vue.d.ts +6 -0
  172. package/dist/runtime/components/text-preview.d.vue.ts +19 -0
  173. package/dist/runtime/components/text-preview.vue +105 -0
  174. package/dist/runtime/components/text-preview.vue.d.ts +19 -0
  175. package/dist/runtime/components/video-preview.d.vue.ts +14 -0
  176. package/dist/runtime/components/video-preview.vue +55 -0
  177. package/dist/runtime/components/video-preview.vue.d.ts +14 -0
  178. package/dist/runtime/composables/PageNavigation.d.ts +13 -0
  179. package/dist/runtime/composables/PageNavigation.js +18 -0
  180. package/dist/runtime/composables/useChat.d.ts +25 -0
  181. package/dist/runtime/composables/useChat.js +512 -0
  182. package/dist/runtime/composables/useChatApi.d.ts +6 -0
  183. package/dist/runtime/composables/useChatApi.js +28 -0
  184. package/dist/runtime/composables/useConversationFiles.d.ts +13 -0
  185. package/dist/runtime/composables/useConversationFiles.js +98 -0
  186. package/dist/runtime/composables/useConversationFilesPanel.d.ts +11 -0
  187. package/dist/runtime/composables/useConversationFilesPanel.js +35 -0
  188. package/dist/runtime/composables/useConversations.d.ts +15 -0
  189. package/dist/runtime/composables/useConversations.js +191 -0
  190. package/dist/runtime/composables/useDiagramExport.d.ts +11 -0
  191. package/dist/runtime/composables/useDiagramExport.js +186 -0
  192. package/dist/runtime/composables/useEmbedConfig.d.ts +13 -0
  193. package/dist/runtime/composables/useEmbedConfig.js +11 -0
  194. package/dist/runtime/composables/useFeatureFlags.d.ts +19 -0
  195. package/dist/runtime/composables/useFeatureFlags.js +67 -0
  196. package/dist/runtime/composables/useFileDrop.d.ts +17 -0
  197. package/dist/runtime/composables/useFileDrop.js +89 -0
  198. package/dist/runtime/composables/useFilePreviewPanel.d.ts +30 -0
  199. package/dist/runtime/composables/useFilePreviewPanel.js +42 -0
  200. package/dist/runtime/composables/useFileUpload.d.ts +7 -0
  201. package/dist/runtime/composables/useFileUpload.js +39 -0
  202. package/dist/runtime/composables/useGitHubSkills.d.ts +6 -0
  203. package/dist/runtime/composables/useGitHubSkills.js +68 -0
  204. package/dist/runtime/composables/useGitHubSkillsCallback.d.ts +5 -0
  205. package/dist/runtime/composables/useGitHubSkillsCallback.js +42 -0
  206. package/dist/runtime/composables/useIDB.d.ts +11 -0
  207. package/dist/runtime/composables/useIDB.js +57 -0
  208. package/dist/runtime/composables/useInputHistory.d.ts +7 -0
  209. package/dist/runtime/composables/useInputHistory.js +36 -0
  210. package/dist/runtime/composables/useKnowledgeSources.d.ts +6 -0
  211. package/dist/runtime/composables/useKnowledgeSources.js +15 -0
  212. package/dist/runtime/composables/useMediaCache.d.ts +13 -0
  213. package/dist/runtime/composables/useMediaCache.js +92 -0
  214. package/dist/runtime/composables/useMentionAutocomplete.d.ts +10 -0
  215. package/dist/runtime/composables/useMentionAutocomplete.js +272 -0
  216. package/dist/runtime/composables/useMermaidRenderer.d.ts +5 -0
  217. package/dist/runtime/composables/useMermaidRenderer.js +121 -0
  218. package/dist/runtime/composables/usePdf.d.ts +21 -0
  219. package/dist/runtime/composables/usePdf.js +138 -0
  220. package/dist/runtime/composables/usePolling.d.ts +12 -0
  221. package/dist/runtime/composables/usePolling.js +55 -0
  222. package/dist/runtime/composables/useSelectedModel.d.ts +4 -0
  223. package/dist/runtime/composables/useSelectedModel.js +46 -0
  224. package/dist/runtime/composables/useSplashScreen.d.ts +3 -0
  225. package/dist/runtime/composables/useSplashScreen.js +4 -0
  226. package/dist/runtime/composables/useStatusToast.d.ts +22 -0
  227. package/dist/runtime/composables/useStatusToast.js +40 -0
  228. package/dist/runtime/composables/useTela.d.ts +12 -0
  229. package/dist/runtime/composables/useTela.js +47 -0
  230. package/dist/runtime/composables/useToolFormatting.d.ts +5 -0
  231. package/dist/runtime/composables/useToolFormatting.js +61 -0
  232. package/dist/runtime/composables/useVault.d.ts +13 -0
  233. package/dist/runtime/composables/useVault.js +35 -0
  234. package/dist/runtime/composables/useVerbConjugation.d.ts +6 -0
  235. package/dist/runtime/composables/useVerbConjugation.js +256 -0
  236. package/dist/runtime/composables/useWorkspaceContextFiles.d.ts +19 -0
  237. package/dist/runtime/composables/useWorkspaceContextFiles.js +74 -0
  238. package/dist/runtime/composables/useWorkspaceCredentials.d.ts +34 -0
  239. package/dist/runtime/composables/useWorkspaceCredentials.js +175 -0
  240. package/dist/runtime/composables/useWorkspaceExternalSkills.d.ts +22 -0
  241. package/dist/runtime/composables/useWorkspaceExternalSkills.js +135 -0
  242. package/dist/runtime/composables/useWorkspaceKnowledgeSources.d.ts +11 -0
  243. package/dist/runtime/composables/useWorkspaceKnowledgeSources.js +88 -0
  244. package/dist/runtime/composables/useWorkspaceMembers.d.ts +13 -0
  245. package/dist/runtime/composables/useWorkspaceMembers.js +37 -0
  246. package/dist/runtime/composables/useWorkspacePersonalization.d.ts +6 -0
  247. package/dist/runtime/composables/useWorkspacePersonalization.js +19 -0
  248. package/dist/runtime/composables/useWorkspaceSettings.d.ts +30 -0
  249. package/dist/runtime/composables/useWorkspaceSettings.js +135 -0
  250. package/dist/runtime/composables/useWorkspaceTelaTools.d.ts +13 -0
  251. package/dist/runtime/composables/useWorkspaceTelaTools.js +91 -0
  252. package/dist/runtime/composables/useWorkspaces.d.ts +5 -0
  253. package/dist/runtime/composables/useWorkspaces.js +14 -0
  254. package/dist/runtime/composables/useZoomPan.d.ts +18 -0
  255. package/dist/runtime/composables/useZoomPan.js +130 -0
  256. package/dist/runtime/embed/components/ChatEmbed.d.vue.ts +23 -0
  257. package/dist/runtime/embed/components/ChatEmbed.vue +27 -0
  258. package/dist/runtime/embed/components/ChatEmbed.vue.d.ts +23 -0
  259. package/dist/runtime/embed/components/ChatEmbedInner.d.vue.ts +19 -0
  260. package/dist/runtime/embed/components/ChatEmbedInner.vue +604 -0
  261. package/dist/runtime/embed/components/ChatEmbedInner.vue.d.ts +19 -0
  262. package/dist/runtime/public/favicon.svg +4 -0
  263. package/dist/runtime/public/files/archive.svg +9 -0
  264. package/dist/runtime/public/files/audio.svg +4 -0
  265. package/dist/runtime/public/files/c.svg +4 -0
  266. package/dist/runtime/public/files/cpp.svg +6 -0
  267. package/dist/runtime/public/files/css.svg +4 -0
  268. package/dist/runtime/public/files/doc.svg +5 -0
  269. package/dist/runtime/public/files/generic.svg +7 -0
  270. package/dist/runtime/public/files/go.svg +6 -0
  271. package/dist/runtime/public/files/html.svg +4 -0
  272. package/dist/runtime/public/files/image.svg +3 -0
  273. package/dist/runtime/public/files/java.svg +7 -0
  274. package/dist/runtime/public/files/javascript.svg +4 -0
  275. package/dist/runtime/public/files/json.svg +5 -0
  276. package/dist/runtime/public/files/markdown.svg +5 -0
  277. package/dist/runtime/public/files/pdf.svg +5 -0
  278. package/dist/runtime/public/files/presentation.svg +5 -0
  279. package/dist/runtime/public/files/python.svg +5 -0
  280. package/dist/runtime/public/files/ruby.svg +5 -0
  281. package/dist/runtime/public/files/rust.svg +13 -0
  282. package/dist/runtime/public/files/sheet.svg +9 -0
  283. package/dist/runtime/public/files/shell.svg +5 -0
  284. package/dist/runtime/public/files/sql.svg +6 -0
  285. package/dist/runtime/public/files/typescript.svg +5 -0
  286. package/dist/runtime/public/files/video.svg +5 -0
  287. package/dist/runtime/public/files/yaml.svg +7 -0
  288. package/dist/runtime/public/github.svg +3 -0
  289. package/dist/runtime/public/robots.txt +1 -0
  290. package/dist/runtime/server/api/admin/trigger-usage-report.post.d.ts +2 -0
  291. package/dist/runtime/server/api/admin/trigger-usage-report.post.js +15 -0
  292. package/dist/runtime/server/api/chat/conversations/[id]/cancel.post.d.ts +1 -0
  293. package/dist/runtime/server/api/chat/conversations/[id]/cancel.post.js +1 -0
  294. package/dist/runtime/server/api/chat/conversations/[id]/clear.post.d.ts +1 -0
  295. package/dist/runtime/server/api/chat/conversations/[id]/clear.post.js +1 -0
  296. package/dist/runtime/server/api/chat/conversations/[id]/duplicate.post.d.ts +1 -0
  297. package/dist/runtime/server/api/chat/conversations/[id]/duplicate.post.js +1 -0
  298. package/dist/runtime/server/api/chat/conversations/[id]/files.get.d.ts +1 -0
  299. package/dist/runtime/server/api/chat/conversations/[id]/files.get.js +1 -0
  300. package/dist/runtime/server/api/chat/conversations/[id]/index.delete.d.ts +1 -0
  301. package/dist/runtime/server/api/chat/conversations/[id]/index.delete.js +1 -0
  302. package/dist/runtime/server/api/chat/conversations/[id]/index.get.d.ts +1 -0
  303. package/dist/runtime/server/api/chat/conversations/[id]/index.get.js +1 -0
  304. package/dist/runtime/server/api/chat/conversations/[id]/index.patch.d.ts +1 -0
  305. package/dist/runtime/server/api/chat/conversations/[id]/index.patch.js +1 -0
  306. package/dist/runtime/server/api/chat/conversations/[id]/messages/[messageId]/retry.post.d.ts +1 -0
  307. package/dist/runtime/server/api/chat/conversations/[id]/messages/[messageId]/retry.post.js +1 -0
  308. package/dist/runtime/server/api/chat/conversations/[id]/messages/index.get.d.ts +1 -0
  309. package/dist/runtime/server/api/chat/conversations/[id]/messages/index.get.js +1 -0
  310. package/dist/runtime/server/api/chat/conversations/[id]/messages/index.post.d.ts +1 -0
  311. package/dist/runtime/server/api/chat/conversations/[id]/messages/index.post.js +1 -0
  312. package/dist/runtime/server/api/chat/conversations/[id]/usage.get.d.ts +1 -0
  313. package/dist/runtime/server/api/chat/conversations/[id]/usage.get.js +1 -0
  314. package/dist/runtime/server/api/chat/conversations/generate-title.post.d.ts +1 -0
  315. package/dist/runtime/server/api/chat/conversations/generate-title.post.js +1 -0
  316. package/dist/runtime/server/api/chat/conversations/index.get.d.ts +1 -0
  317. package/dist/runtime/server/api/chat/conversations/index.get.js +1 -0
  318. package/dist/runtime/server/api/chat/conversations/index.post.d.ts +1 -0
  319. package/dist/runtime/server/api/chat/conversations/index.post.js +1 -0
  320. package/dist/runtime/server/api/chat/workspace/settings.get.d.ts +2 -0
  321. package/dist/runtime/server/api/chat/workspace/settings.get.js +14 -0
  322. package/dist/runtime/server/api/conversations/[id]/cancel.post.d.ts +2 -0
  323. package/dist/runtime/server/api/conversations/[id]/cancel.post.js +58 -0
  324. package/dist/runtime/server/api/conversations/[id]/clear.post.d.ts +2 -0
  325. package/dist/runtime/server/api/conversations/[id]/clear.post.js +38 -0
  326. package/dist/runtime/server/api/conversations/[id]/duplicate.post.d.ts +2 -0
  327. package/dist/runtime/server/api/conversations/[id]/duplicate.post.js +41 -0
  328. package/dist/runtime/server/api/conversations/[id]/files.get.d.ts +2 -0
  329. package/dist/runtime/server/api/conversations/[id]/files.get.js +131 -0
  330. package/dist/runtime/server/api/conversations/[id]/index.delete.d.ts +2 -0
  331. package/dist/runtime/server/api/conversations/[id]/index.delete.js +35 -0
  332. package/dist/runtime/server/api/conversations/[id]/index.get.d.ts +2 -0
  333. package/dist/runtime/server/api/conversations/[id]/index.get.js +34 -0
  334. package/dist/runtime/server/api/conversations/[id]/index.patch.d.ts +2 -0
  335. package/dist/runtime/server/api/conversations/[id]/index.patch.js +54 -0
  336. package/dist/runtime/server/api/conversations/[id]/messages/[messageId]/retry.post.d.ts +2 -0
  337. package/dist/runtime/server/api/conversations/[id]/messages/[messageId]/retry.post.js +168 -0
  338. package/dist/runtime/server/api/conversations/[id]/messages/index.get.d.ts +2 -0
  339. package/dist/runtime/server/api/conversations/[id]/messages/index.get.js +220 -0
  340. package/dist/runtime/server/api/conversations/[id]/messages/index.post.d.ts +2 -0
  341. package/dist/runtime/server/api/conversations/[id]/messages/index.post.js +181 -0
  342. package/dist/runtime/server/api/conversations/[id]/usage.get.d.ts +8 -0
  343. package/dist/runtime/server/api/conversations/[id]/usage.get.js +96 -0
  344. package/dist/runtime/server/api/conversations/generate-title.post.d.ts +2 -0
  345. package/dist/runtime/server/api/conversations/generate-title.post.js +49 -0
  346. package/dist/runtime/server/api/conversations/index.get.d.ts +2 -0
  347. package/dist/runtime/server/api/conversations/index.get.js +11 -0
  348. package/dist/runtime/server/api/conversations/index.post.d.ts +2 -0
  349. package/dist/runtime/server/api/conversations/index.post.js +41 -0
  350. package/dist/runtime/server/api/external-skills/discover.post.d.ts +2 -0
  351. package/dist/runtime/server/api/external-skills/discover.post.js +65 -0
  352. package/dist/runtime/server/api/github/disconnect.post.d.ts +2 -0
  353. package/dist/runtime/server/api/github/disconnect.post.js +21 -0
  354. package/dist/runtime/server/api/github/status.get.d.ts +2 -0
  355. package/dist/runtime/server/api/github/status.get.js +23 -0
  356. package/dist/runtime/server/api/tela/canvas.get.d.ts +2 -0
  357. package/dist/runtime/server/api/tela/canvas.get.js +18 -0
  358. package/dist/runtime/server/api/tela/projects.get.d.ts +2 -0
  359. package/dist/runtime/server/api/tela/projects.get.js +9 -0
  360. package/dist/runtime/server/api/tela/workspaces.get.d.ts +2 -0
  361. package/dist/runtime/server/api/tela/workspaces.get.js +9 -0
  362. package/dist/runtime/server/api/tela/workstations.get.d.ts +2 -0
  363. package/dist/runtime/server/api/tela/workstations.get.js +24 -0
  364. package/dist/runtime/server/api/vault/permalink-metadata.post.d.ts +2 -0
  365. package/dist/runtime/server/api/vault/permalink-metadata.post.js +77 -0
  366. package/dist/runtime/server/api/vault/resolve.post.d.ts +2 -0
  367. package/dist/runtime/server/api/vault/resolve.post.js +82 -0
  368. package/dist/runtime/server/api/vault/upload.post.d.ts +2 -0
  369. package/dist/runtime/server/api/vault/upload.post.js +55 -0
  370. package/dist/runtime/server/api/workspace/credentials/[id].delete.d.ts +2 -0
  371. package/dist/runtime/server/api/workspace/credentials/[id].delete.js +18 -0
  372. package/dist/runtime/server/api/workspace/credentials/[id].put.d.ts +2 -0
  373. package/dist/runtime/server/api/workspace/credentials/[id].put.js +28 -0
  374. package/dist/runtime/server/api/workspace/credentials/index.get.d.ts +2 -0
  375. package/dist/runtime/server/api/workspace/credentials/index.get.js +10 -0
  376. package/dist/runtime/server/api/workspace/credentials/index.post.d.ts +2 -0
  377. package/dist/runtime/server/api/workspace/credentials/index.post.js +33 -0
  378. package/dist/runtime/server/api/workspace/settings.get.d.ts +2 -0
  379. package/dist/runtime/server/api/workspace/settings.get.js +27 -0
  380. package/dist/runtime/server/api/workspace/settings.patch.d.ts +2 -0
  381. package/dist/runtime/server/api/workspace/settings.patch.js +86 -0
  382. package/dist/runtime/server/api/workspace/usage.get.d.ts +48 -0
  383. package/dist/runtime/server/api/workspace/usage.get.js +186 -0
  384. package/dist/runtime/server/db/index.d.ts +6 -0
  385. package/dist/runtime/server/db/index.js +19 -0
  386. package/dist/runtime/server/db/schema/conversation-usage.d.ts +438 -0
  387. package/dist/runtime/server/db/schema/conversation-usage.js +34 -0
  388. package/dist/runtime/server/db/schema/conversations.d.ts +197 -0
  389. package/dist/runtime/server/db/schema/conversations.js +18 -0
  390. package/dist/runtime/server/db/schema/external-skills.d.ts +235 -0
  391. package/dist/runtime/server/db/schema/external-skills.js +26 -0
  392. package/dist/runtime/server/db/schema/index.d.ts +5 -0
  393. package/dist/runtime/server/db/schema/index.js +5 -0
  394. package/dist/runtime/server/db/schema/messages.d.ts +221 -0
  395. package/dist/runtime/server/db/schema/messages.js +19 -0
  396. package/dist/runtime/server/db/schema/workspace-settings.d.ts +164 -0
  397. package/dist/runtime/server/db/schema/workspace-settings.js +15 -0
  398. package/dist/runtime/server/db/schema.d.ts +1 -0
  399. package/dist/runtime/server/db/schema.js +1 -0
  400. package/dist/runtime/server/middleware/domain-validation.d.ts +2 -0
  401. package/dist/runtime/server/middleware/domain-validation.js +22 -0
  402. package/dist/runtime/server/middleware/request-logger.d.ts +2 -0
  403. package/dist/runtime/server/middleware/request-logger.js +15 -0
  404. package/dist/runtime/server/prompts/base-system.d.ts +2 -0
  405. package/dist/runtime/server/prompts/base-system.js +100 -0
  406. package/dist/runtime/server/prompts/base-system.md +99 -0
  407. package/dist/runtime/server/prompts/knowledge-sources.d.ts +2 -0
  408. package/dist/runtime/server/prompts/knowledge-sources.js +37 -0
  409. package/dist/runtime/server/prompts/knowledge-sources.md +36 -0
  410. package/dist/runtime/server/tasks/send-daily-usage-report.d.ts +2 -0
  411. package/dist/runtime/server/tasks/send-daily-usage-report.js +73 -0
  412. package/dist/runtime/server/tsconfig.json +21 -0
  413. package/dist/runtime/server/utils/agent-api.d.ts +39 -0
  414. package/dist/runtime/server/utils/agent-api.js +169 -0
  415. package/dist/runtime/server/utils/auth-api.d.ts +1 -0
  416. package/dist/runtime/server/utils/auth-api.js +25 -0
  417. package/dist/runtime/server/utils/auth.d.ts +17 -0
  418. package/dist/runtime/server/utils/auth.js +28 -0
  419. package/dist/runtime/server/utils/billing.d.ts +37 -0
  420. package/dist/runtime/server/utils/billing.js +68 -0
  421. package/dist/runtime/server/utils/chat-context.d.ts +9 -0
  422. package/dist/runtime/server/utils/chat-context.js +24 -0
  423. package/dist/runtime/server/utils/chat-message-builder.d.ts +4 -0
  424. package/dist/runtime/server/utils/chat-message-builder.js +39 -0
  425. package/dist/runtime/server/utils/chat-prompts.d.ts +7 -0
  426. package/dist/runtime/server/utils/chat-prompts.js +9 -0
  427. package/dist/runtime/server/utils/chat-workspace-settings.d.ts +16 -0
  428. package/dist/runtime/server/utils/chat-workspace-settings.js +115 -0
  429. package/dist/runtime/server/utils/external-skills.d.ts +2 -0
  430. package/dist/runtime/server/utils/external-skills.js +15 -0
  431. package/dist/runtime/server/utils/logger.d.ts +2 -0
  432. package/dist/runtime/server/utils/logger.js +12 -0
  433. package/dist/runtime/server/utils/slack.d.ts +32 -0
  434. package/dist/runtime/server/utils/slack.js +102 -0
  435. package/dist/runtime/server/utils/tela-api.d.ts +2 -0
  436. package/dist/runtime/server/utils/tela-api.js +29 -0
  437. package/dist/runtime/server/utils/vault.d.ts +3 -0
  438. package/dist/runtime/server/utils/vault.js +52 -0
  439. package/dist/runtime/server/utils/workspace-settings-resolver.stub.d.ts +2 -0
  440. package/dist/runtime/server/utils/workspace-settings-resolver.stub.js +1 -0
  441. package/dist/runtime/server/utils/workspace.d.ts +4 -0
  442. package/dist/runtime/server/utils/workspace.js +21 -0
  443. package/dist/runtime/types/agent.d.ts +168 -0
  444. package/dist/runtime/types/agent.js +95 -0
  445. package/dist/runtime/types/chat-workspace-settings-resolver.d.ts +4 -0
  446. package/dist/runtime/types/chat.d.ts +81 -0
  447. package/dist/runtime/types/chat.js +12 -0
  448. package/dist/runtime/types/credential.d.ts +8 -0
  449. package/dist/runtime/types/credential.js +0 -0
  450. package/dist/runtime/types/csv.d.ts +4 -0
  451. package/dist/runtime/types/csv.js +0 -0
  452. package/dist/runtime/types/external-skills.d.ts +8 -0
  453. package/dist/runtime/types/external-skills.js +0 -0
  454. package/dist/runtime/types/feature-flags.d.ts +7 -0
  455. package/dist/runtime/types/feature-flags.js +6 -0
  456. package/dist/runtime/types/reasoning.d.ts +17 -0
  457. package/dist/runtime/types/reasoning.js +0 -0
  458. package/dist/runtime/types/tela.d.ts +46 -0
  459. package/dist/runtime/types/tela.js +0 -0
  460. package/dist/runtime/types/workspace.d.ts +20 -0
  461. package/dist/runtime/types/workspace.js +0 -0
  462. package/dist/runtime/utils/calculate-usage.d.ts +48 -0
  463. package/dist/runtime/utils/calculate-usage.js +63 -0
  464. package/dist/runtime/utils/code-detection.d.ts +1 -0
  465. package/dist/runtime/utils/code-detection.js +24 -0
  466. package/dist/runtime/utils/export-conversation.d.ts +2 -0
  467. package/dist/runtime/utils/export-conversation.js +43 -0
  468. package/dist/runtime/utils/file.d.ts +46 -0
  469. package/dist/runtime/utils/file.js +500 -0
  470. package/dist/runtime/utils/format-time.d.ts +22 -0
  471. package/dist/runtime/utils/format-time.js +96 -0
  472. package/dist/runtime/utils/markdown-nodes.d.ts +22 -0
  473. package/dist/runtime/utils/markdown-nodes.js +40 -0
  474. package/dist/runtime/utils/string.d.ts +4 -0
  475. package/dist/runtime/utils/string.js +5 -0
  476. package/dist/runtime/utils/tela-chat.d.ts +19 -0
  477. package/dist/runtime/utils/tela-chat.js +20 -0
  478. package/dist/types.d.mts +7 -0
  479. package/package.json +72 -0
@@ -0,0 +1,30 @@
1
+ import type { ContextFile, KnowledgeSource } from '../../types/chat.js';
2
+ import type { CanvasTool } from '../../types/agent.js';
3
+ type __VLS_Props = {
4
+ systemMessage: string | null;
5
+ contextFiles: readonly ContextFile[] | null;
6
+ canvasTools: readonly CanvasTool[] | null;
7
+ knowledgeSources: readonly KnowledgeSource[] | null;
8
+ hasMessages?: boolean;
9
+ disabled?: boolean;
10
+ };
11
+ declare function addFiles(files: File[]): void;
12
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
13
+ addFiles: typeof addFiles;
14
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
15
+ "update:systemMessage": (value: string) => any;
16
+ "update:contextFiles": (value: SchemaContextFile[]) => any;
17
+ "update:canvasTools": (value: CanvasTool[]) => any;
18
+ "update:knowledgeSources": (value: KnowledgeSource[]) => any;
19
+ clearThread: () => any;
20
+ saved: () => any;
21
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
22
+ "onUpdate:systemMessage"?: ((value: string) => any) | undefined;
23
+ "onUpdate:contextFiles"?: ((value: SchemaContextFile[]) => any) | undefined;
24
+ "onUpdate:canvasTools"?: ((value: CanvasTool[]) => any) | undefined;
25
+ "onUpdate:knowledgeSources"?: ((value: KnowledgeSource[]) => any) | undefined;
26
+ onClearThread?: (() => any) | undefined;
27
+ onSaved?: (() => any) | undefined;
28
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
29
+ declare const _default: typeof __VLS_export;
30
+ export default _default;
@@ -0,0 +1,423 @@
1
+ <script setup>
2
+ import { MAX_FILES, MAX_FILE_SIZE } from "../../composables/useWorkspaceContextFiles";
3
+ import { formatFileSize } from "../../utils/file";
4
+ const props = defineProps({
5
+ systemMessage: { type: [String, null], required: true },
6
+ contextFiles: { type: [Array, null], required: true },
7
+ canvasTools: { type: [Array, null], required: true },
8
+ knowledgeSources: { type: [Array, null], required: true },
9
+ hasMessages: { type: Boolean, required: false },
10
+ disabled: { type: Boolean, required: false }
11
+ });
12
+ const emit = defineEmits(["update:systemMessage", "update:contextFiles", "update:canvasTools", "update:knowledgeSources", "clearThread", "saved"]);
13
+ const { uploadFiles, uploading } = useFileUpload();
14
+ const { canvas, workstations } = useTela();
15
+ const localSystemMessage = ref(props.systemMessage ?? "");
16
+ const fileInputRef = ref(null);
17
+ const pendingFiles = ref([]);
18
+ const pendingCanvasTools = ref(null);
19
+ const pendingKnowledgeSources = ref(null);
20
+ const isSaving = ref(false);
21
+ const isCanvasModalOpen = ref(false);
22
+ const isWorkstationModalOpen = ref(false);
23
+ const showClearThreadDialog = ref(false);
24
+ const hasCanvasChanges = computed(() => {
25
+ if (pendingCanvasTools.value === null)
26
+ return false;
27
+ const currentIds = new Set(props.canvasTools?.map((t) => t.canvasId) ?? []);
28
+ const pendingIds = new Set(pendingCanvasTools.value.map((t) => t.canvasId));
29
+ if (currentIds.size !== pendingIds.size)
30
+ return true;
31
+ for (const id of currentIds) {
32
+ if (!pendingIds.has(id))
33
+ return true;
34
+ const currentTool = props.canvasTools?.find((t) => t.canvasId === id);
35
+ const pendingTool = pendingCanvasTools.value.find((t) => t.canvasId === id);
36
+ if (currentTool?.description !== pendingTool?.description)
37
+ return true;
38
+ }
39
+ return false;
40
+ });
41
+ const hasKnowledgeSourcesChanges = computed(() => {
42
+ if (pendingKnowledgeSources.value === null)
43
+ return false;
44
+ const currentIds = new Set(props.knowledgeSources?.map((s) => s.id) ?? []);
45
+ const pendingIds = new Set(pendingKnowledgeSources.value.map((s) => s.id));
46
+ if (currentIds.size !== pendingIds.size)
47
+ return true;
48
+ for (const id of currentIds) {
49
+ if (!pendingIds.has(id))
50
+ return true;
51
+ }
52
+ return false;
53
+ });
54
+ const hasSystemMessageChanges = computed(
55
+ () => localSystemMessage.value !== (props.systemMessage ?? "")
56
+ );
57
+ const hasContextFilesChanges = computed(
58
+ () => pendingFiles.value.length > 0
59
+ );
60
+ const hasChanges = computed(
61
+ () => hasSystemMessageChanges.value || hasContextFilesChanges.value || hasCanvasChanges.value || hasKnowledgeSourcesChanges.value
62
+ );
63
+ const hasThreadBreakingChanges = computed(
64
+ () => hasSystemMessageChanges.value || hasContextFilesChanges.value
65
+ );
66
+ const displayCanvasTools = computed(
67
+ () => pendingCanvasTools.value !== null ? pendingCanvasTools.value : props.canvasTools
68
+ );
69
+ const displayKnowledgeSources = computed(
70
+ () => pendingKnowledgeSources.value !== null ? pendingKnowledgeSources.value : props.knowledgeSources
71
+ );
72
+ const currentFileCount = computed(
73
+ () => (props.contextFiles?.length ?? 0) + pendingFiles.value.length
74
+ );
75
+ watch(() => props.systemMessage, (newValue) => {
76
+ localSystemMessage.value = newValue ?? "";
77
+ });
78
+ function addFiles(files) {
79
+ const validFiles = files.filter((file) => file.size <= MAX_FILE_SIZE);
80
+ const availableSlots = MAX_FILES - currentFileCount.value;
81
+ pendingFiles.value = [...pendingFiles.value, ...validFiles.slice(0, availableSlots)];
82
+ }
83
+ defineExpose({ addFiles });
84
+ function openFileDialog() {
85
+ fileInputRef.value?.click();
86
+ }
87
+ function handleFileSelect(event) {
88
+ const target = event.target;
89
+ if (!target.files)
90
+ return;
91
+ const newFiles = Array.from(target.files).filter((file) => {
92
+ if (file.size > MAX_FILE_SIZE) {
93
+ return false;
94
+ }
95
+ return true;
96
+ });
97
+ const availableSlots = MAX_FILES - currentFileCount.value;
98
+ pendingFiles.value = [...pendingFiles.value, ...newFiles.slice(0, availableSlots)];
99
+ target.value = "";
100
+ }
101
+ function removePendingFile(index) {
102
+ pendingFiles.value = pendingFiles.value.filter((_, i) => i !== index);
103
+ }
104
+ function removeContextFile(index) {
105
+ const newFiles = [...props.contextFiles ?? []];
106
+ newFiles.splice(index, 1);
107
+ emit("update:contextFiles", newFiles);
108
+ }
109
+ function removeCanvasTool(canvasId) {
110
+ const currentTools = pendingCanvasTools.value ?? props.canvasTools ?? [];
111
+ pendingCanvasTools.value = currentTools.filter((t) => t.canvasId !== canvasId);
112
+ }
113
+ function handleCanvasSave(tools) {
114
+ pendingCanvasTools.value = tools;
115
+ }
116
+ function removeKnowledgeSource(sourceId) {
117
+ const currentSources = pendingKnowledgeSources.value ?? props.knowledgeSources ?? [];
118
+ pendingKnowledgeSources.value = currentSources.filter((s) => s.id !== sourceId);
119
+ }
120
+ function handleKnowledgeSourcesSave(sources) {
121
+ pendingKnowledgeSources.value = sources;
122
+ }
123
+ function handleSave() {
124
+ if (!hasChanges.value || isSaving.value)
125
+ return;
126
+ if (props.hasMessages && hasThreadBreakingChanges.value) {
127
+ showClearThreadDialog.value = true;
128
+ return;
129
+ }
130
+ performSave();
131
+ }
132
+ async function performSave(clearThread = false) {
133
+ isSaving.value = true;
134
+ try {
135
+ if (clearThread) {
136
+ emit("clearThread");
137
+ }
138
+ if (hasSystemMessageChanges.value) {
139
+ emit("update:systemMessage", localSystemMessage.value);
140
+ }
141
+ if (hasContextFilesChanges.value) {
142
+ const uploadedFiles = await uploadFiles(pendingFiles.value);
143
+ const newContextFiles = [
144
+ ...props.contextFiles ?? [],
145
+ ...uploadedFiles.map((f) => ({ url: f.url, vaultReference: f.vaultReference, name: f.name, mimeType: f.mimeType }))
146
+ ];
147
+ emit("update:contextFiles", newContextFiles);
148
+ pendingFiles.value = [];
149
+ }
150
+ if (hasCanvasChanges.value && pendingCanvasTools.value !== null) {
151
+ emit("update:canvasTools", pendingCanvasTools.value);
152
+ pendingCanvasTools.value = null;
153
+ }
154
+ if (hasKnowledgeSourcesChanges.value && pendingKnowledgeSources.value !== null) {
155
+ emit("update:knowledgeSources", pendingKnowledgeSources.value);
156
+ pendingKnowledgeSources.value = null;
157
+ }
158
+ emit("saved");
159
+ } finally {
160
+ isSaving.value = false;
161
+ showClearThreadDialog.value = false;
162
+ }
163
+ }
164
+ function handleConfirmClearThread() {
165
+ performSave(true);
166
+ }
167
+ function handleCancelClearThread() {
168
+ showClearThreadDialog.value = false;
169
+ }
170
+ </script>
171
+
172
+ <template>
173
+ <div class="h-full flex flex-col">
174
+ <div class="flex-1 overflow-auto px-24px py-20px">
175
+ <div class="max-w-640px mx-auto flex flex-col gap-24px">
176
+ <!-- System Message -->
177
+ <div flex="~ col" gap-8px>
178
+ <label text-13px font-semibold text-gray-700>
179
+ Instrução inicial (System Message)
180
+ </label>
181
+ <textarea
182
+ v-model="localSystemMessage"
183
+ placeholder="Ex: Você é um assistente especializado em..."
184
+ rows="8"
185
+ w-full px-14px py-12px rounded-12px b="1px gray-200" text-14px
186
+ bg-white leading-relaxed
187
+ focus:outline-none focus:b-blue-400 focus:ring-2 focus:ring-blue-100
188
+ :disabled="disabled"
189
+ />
190
+ <p text-12px text-gray-400>
191
+ Esta instrução será aplicada a todas as mensagens da conversa
192
+ </p>
193
+ </div>
194
+
195
+ <!-- Context Files -->
196
+ <div flex="~ col" gap-8px>
197
+ <label text-13px font-semibold text-gray-700>
198
+ Arquivos de contexto
199
+ </label>
200
+
201
+ <input ref="fileInputRef" type="file" multiple hidden @change="handleFileSelect">
202
+
203
+ <div v-if="contextFiles && contextFiles.length > 0 || pendingFiles.length > 0" flex flex-wrap gap-8px mb-4px>
204
+ <div
205
+ v-for="(file, index) in contextFiles" :key="`existing-${file.url}`" flex items-center gap-8px
206
+ px-12px py-8px rounded-8px bg-gray-50 b="1px gray-200"
207
+ >
208
+ <div i-ph-file text-gray-500 text-16px />
209
+ <span text-13px text-gray-700 max-w-160px truncate>{{ file.name }}</span>
210
+ <button
211
+ p-4px rounded-6px hover:bg-gray-200 transition cursor-pointer :disabled="disabled"
212
+ @click="removeContextFile(index)"
213
+ >
214
+ <div i-ph-x text-gray-400 text-12px />
215
+ </button>
216
+ </div>
217
+
218
+ <div
219
+ v-for="(file, index) in pendingFiles" :key="`pending-${file.name}${index}`" flex items-center
220
+ gap-8px px-12px py-8px rounded-8px bg-blue-50 b="1px blue-200"
221
+ >
222
+ <div i-ph-file text-blue-500 text-16px />
223
+ <div flex="~ col" gap-1px>
224
+ <span text-13px text-blue-700 max-w-140px truncate>{{ file.name }}</span>
225
+ <span text-11px text-blue-500>{{ formatFileSize(file.size) }}</span>
226
+ </div>
227
+ <button p-4px rounded-6px hover:bg-blue-100 transition cursor-pointer @click="removePendingFile(index)">
228
+ <div i-ph-x text-blue-400 text-12px />
229
+ </button>
230
+ </div>
231
+ </div>
232
+
233
+ <button
234
+ flex items-center gap-8px px-14px py-10px rounded-10px b="1px dashed gray-300" text-14px
235
+ text-gray-500 hover:bg-gray-50 hover:b-gray-400 transition cursor-pointer
236
+ :disabled="disabled || currentFileCount >= MAX_FILES"
237
+ :class="{ 'opacity-50 cursor-not-allowed': currentFileCount >= MAX_FILES }" @click="openFileDialog"
238
+ >
239
+ <div i-ph-plus text-16px />
240
+ <span>Adicionar arquivo</span>
241
+ </button>
242
+ <p text-12px text-gray-400>
243
+ Estes arquivos serão incluídos como contexto em todas as mensagens
244
+ </p>
245
+ </div>
246
+
247
+ <!-- Knowledge Sources -->
248
+ <div flex="~ col" gap-8px>
249
+ <label text-13px font-semibold text-gray-700>
250
+ Fontes de Conhecimento
251
+ </label>
252
+
253
+ <!-- Selected Knowledge Sources Pills -->
254
+ <div v-if="displayKnowledgeSources && displayKnowledgeSources.length > 0" flex flex-wrap gap-8px mb-4px>
255
+ <div
256
+ v-for="source in displayKnowledgeSources" :key="source.id"
257
+ flex items-center gap-8px px-12px py-8px rounded-8px
258
+ :class="hasKnowledgeSourcesChanges ? 'bg-emerald-50 b-1px b-emerald-200' : 'bg-gray-50 b-1px b-gray-200'"
259
+ >
260
+ <div i-ph-database text-16px :class="hasKnowledgeSourcesChanges ? 'text-emerald-500' : 'text-gray-500'" />
261
+ <div flex="~ col" gap-1px>
262
+ <span text-13px max-w-160px truncate :class="hasKnowledgeSourcesChanges ? 'text-emerald-700' : 'text-gray-700'">
263
+ {{ workstations.find((w) => w.id === source.id)?.name ?? source.name }}
264
+ </span>
265
+ <span v-if="source.taskCount" text-11px :class="hasKnowledgeSourcesChanges ? 'text-emerald-500' : 'text-gray-400'">
266
+ {{ source.taskCount }} tarefas
267
+ </span>
268
+ </div>
269
+ <button
270
+ p-4px rounded-6px transition cursor-pointer
271
+ :class="hasKnowledgeSourcesChanges ? 'hover:bg-emerald-100' : 'hover:bg-gray-200'"
272
+ :disabled="disabled"
273
+ @click="removeKnowledgeSource(source.id)"
274
+ >
275
+ <div i-ph-x text-12px :class="hasKnowledgeSourcesChanges ? 'text-emerald-400' : 'text-gray-400'" />
276
+ </button>
277
+ </div>
278
+ </div>
279
+
280
+ <!-- Add Knowledge Source Button -->
281
+ <button
282
+ flex items-center gap-8px px-14px py-10px rounded-10px b="1px dashed gray-300" text-14px
283
+ text-gray-500 hover:bg-gray-50 hover:b-gray-400 transition cursor-pointer
284
+ :disabled="disabled"
285
+ @click="isWorkstationModalOpen = true"
286
+ >
287
+ <div i-ph-database text-16px />
288
+ <span>{{ displayKnowledgeSources && displayKnowledgeSources.length > 0 ? "Editar fontes" : "Adicionar fonte" }}</span>
289
+ </button>
290
+
291
+ <p text-12px text-gray-400>
292
+ Workstations do Tela com dados extraídos para consulta pelo assistente
293
+ </p>
294
+ </div>
295
+
296
+ <!-- Tela Canvas Tools -->
297
+ <div flex="~ col" gap-8px>
298
+ <label text-13px font-semibold text-gray-700>
299
+ Tela Canvas / Workflows
300
+ </label>
301
+
302
+ <!-- Selected Canvas Pills -->
303
+ <div v-if="displayCanvasTools && displayCanvasTools.length > 0" flex flex-wrap gap-8px mb-4px>
304
+ <div
305
+ v-for="tool in displayCanvasTools" :key="tool.canvasId"
306
+ flex items-center gap-8px px-12px py-8px rounded-8px
307
+ :class="hasCanvasChanges ? 'bg-blue-50 b-1px b-blue-200' : 'bg-gray-50 b-1px b-gray-200'"
308
+ >
309
+ <div i-ph-puzzle-piece text-16px :class="hasCanvasChanges ? 'text-blue-500' : 'text-gray-500'" />
310
+ <span text-13px max-w-160px truncate :class="hasCanvasChanges ? 'text-blue-700' : 'text-gray-700'">
311
+ {{ canvas.find((c) => c.id === tool.canvasId)?.title ?? tool.name }}
312
+ </span>
313
+ <button
314
+ p-4px rounded-6px transition cursor-pointer
315
+ :class="hasCanvasChanges ? 'hover:bg-blue-100' : 'hover:bg-gray-200'"
316
+ :disabled="disabled"
317
+ @click="removeCanvasTool(tool.canvasId)"
318
+ >
319
+ <div i-ph-x text-12px :class="hasCanvasChanges ? 'text-blue-400' : 'text-gray-400'" />
320
+ </button>
321
+ </div>
322
+ </div>
323
+
324
+ <!-- Add Canvas Button -->
325
+ <button
326
+ flex items-center gap-8px px-14px py-10px rounded-10px b="1px dashed gray-300" text-14px
327
+ text-gray-500 hover:bg-gray-50 hover:b-gray-400 transition cursor-pointer
328
+ :disabled="disabled"
329
+ @click="isCanvasModalOpen = true"
330
+ >
331
+ <div i-ph-puzzle-piece text-16px />
332
+ <span>{{ displayCanvasTools && displayCanvasTools.length > 0 ? "Editar canvas" : "Adicionar canvas" }}</span>
333
+ </button>
334
+
335
+ <p text-12px text-gray-400>
336
+ Canvas e workflows do Tela disponíveis como ferramentas para o assistente
337
+ </p>
338
+ </div>
339
+ </div>
340
+ </div>
341
+
342
+ <!-- Fixed Save Bar -->
343
+ <div
344
+ v-if="hasChanges"
345
+ class="flex-shrink-0 px-24px py-16px border-t border-gray-200 bg-white"
346
+ >
347
+ <div class="max-w-640px mx-auto flex justify-end">
348
+ <TelaButton :disabled="isSaving || uploading" @click="handleSave">
349
+ <div v-if="isSaving || uploading" i-ph-spinner animate-spin mr-6px />
350
+ {{ isSaving || uploading ? "Salvando..." : "Salvar altera\xE7\xF5es" }}
351
+ </TelaButton>
352
+ </div>
353
+ </div>
354
+
355
+ <!-- Canvas Selector Modal -->
356
+ <ChatCanvasSelectorModal
357
+ :open="isCanvasModalOpen"
358
+ :canvas-tools="displayCanvasTools"
359
+ @close="isCanvasModalOpen = false"
360
+ @save="handleCanvasSave"
361
+ />
362
+
363
+ <!-- Workstation Selector Modal -->
364
+ <ChatWorkstationSelectorModal
365
+ :open="isWorkstationModalOpen"
366
+ :knowledge-sources="displayKnowledgeSources"
367
+ @close="isWorkstationModalOpen = false"
368
+ @save="handleKnowledgeSourcesSave"
369
+ />
370
+
371
+ <!-- Clear Thread Confirmation Dialog -->
372
+ <Teleport to="body">
373
+ <div
374
+ v-if="showClearThreadDialog"
375
+ fixed inset-0 z-50 flex items-center justify-center
376
+ @click.self="handleCancelClearThread"
377
+ >
378
+ <div absolute inset-0 bg-black op-40 />
379
+ <div
380
+ relative w-full max-w-400px mx-16px
381
+ bg-white rounded-16px shadow-xl
382
+ p-24px
383
+ >
384
+ <div flex items-start gap-16px>
385
+ <div
386
+ w-40px h-40px rounded-full
387
+ bg-amber-100 flex items-center justify-center
388
+ flex-shrink-0
389
+ >
390
+ <div i-ph-warning text-20px text-amber-600 />
391
+ </div>
392
+ <div flex="~ col" gap-8px flex-1>
393
+ <h3 text-16px font-semibold text-gray-900>
394
+ Limpar histórico da conversa?
395
+ </h3>
396
+ <p text-14px text-gray-600 leading-relaxed>
397
+ Alterar a instrução inicial ou os arquivos de contexto requer iniciar uma nova conversa.
398
+ O histórico atual será apagado permanentemente.
399
+ </p>
400
+ </div>
401
+ </div>
402
+
403
+ <div flex justify-end gap-12px mt-24px>
404
+ <TelaButton
405
+ variant="ghost"
406
+ @click="handleCancelClearThread"
407
+ >
408
+ Cancelar
409
+ </TelaButton>
410
+ <TelaButton
411
+ variant="danger"
412
+ :disabled="isSaving"
413
+ @click="handleConfirmClearThread"
414
+ >
415
+ <div v-if="isSaving" i-ph-spinner animate-spin mr-6px />
416
+ {{ isSaving ? "Salvando..." : "Limpar e salvar" }}
417
+ </TelaButton>
418
+ </div>
419
+ </div>
420
+ </div>
421
+ </Teleport>
422
+ </div>
423
+ </template>
@@ -0,0 +1,30 @@
1
+ import type { ContextFile, KnowledgeSource } from '../../types/chat.js';
2
+ import type { CanvasTool } from '../../types/agent.js';
3
+ type __VLS_Props = {
4
+ systemMessage: string | null;
5
+ contextFiles: readonly ContextFile[] | null;
6
+ canvasTools: readonly CanvasTool[] | null;
7
+ knowledgeSources: readonly KnowledgeSource[] | null;
8
+ hasMessages?: boolean;
9
+ disabled?: boolean;
10
+ };
11
+ declare function addFiles(files: File[]): void;
12
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
13
+ addFiles: typeof addFiles;
14
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
15
+ "update:systemMessage": (value: string) => any;
16
+ "update:contextFiles": (value: SchemaContextFile[]) => any;
17
+ "update:canvasTools": (value: CanvasTool[]) => any;
18
+ "update:knowledgeSources": (value: KnowledgeSource[]) => any;
19
+ clearThread: () => any;
20
+ saved: () => any;
21
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
22
+ "onUpdate:systemMessage"?: ((value: string) => any) | undefined;
23
+ "onUpdate:contextFiles"?: ((value: SchemaContextFile[]) => any) | undefined;
24
+ "onUpdate:canvasTools"?: ((value: CanvasTool[]) => any) | undefined;
25
+ "onUpdate:knowledgeSources"?: ((value: KnowledgeSource[]) => any) | undefined;
26
+ onClearThread?: (() => any) | undefined;
27
+ onSaved?: (() => any) | undefined;
28
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
29
+ declare const _default: typeof __VLS_export;
30
+ export default _default;
@@ -0,0 +1,20 @@
1
+ import type { Conversation } from '../../types/chat.js';
2
+ import type { DeepReadonly } from 'vue';
3
+ type __VLS_Props = {
4
+ conversation: DeepReadonly<Conversation>;
5
+ active: boolean;
6
+ userImage?: string;
7
+ };
8
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
9
+ rename: (id: string, title: string) => any;
10
+ duplicate: (id: string) => any;
11
+ export: (id: string) => any;
12
+ delete: (id: string) => any;
13
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
14
+ onRename?: ((id: string, title: string) => any) | undefined;
15
+ onDuplicate?: ((id: string) => any) | undefined;
16
+ onExport?: ((id: string) => any) | undefined;
17
+ onDelete?: ((id: string) => any) | undefined;
18
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
19
+ declare const _default: typeof __VLS_export;
20
+ export default _default;