@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,175 @@
1
+ import * as Sentry from "@sentry/nuxt";
2
+ import { formatAbsoluteDate } from "../utils/format-time.js";
3
+ export function useWorkspaceCredentials(searchQuery) {
4
+ const credentials = useState("workspace-credentials", () => []);
5
+ const loading = useState("workspace-credentials-loading", () => false);
6
+ const showCreateModal = ref(false);
7
+ const editingCredential = ref(null);
8
+ const deletingCredential = ref(null);
9
+ const credentialForm = ref({ key: "", value: "" });
10
+ const credentialSaving = ref(false);
11
+ const credentialError = ref("");
12
+ const credentialDeleting = ref(false);
13
+ async function fetchCredentials() {
14
+ loading.value = true;
15
+ try {
16
+ const data = await $fetch("/api/workspace/credentials");
17
+ credentials.value = data ?? [];
18
+ return data;
19
+ } catch (e) {
20
+ Sentry.captureException(e);
21
+ throw e;
22
+ } finally {
23
+ loading.value = false;
24
+ }
25
+ }
26
+ async function createCredential(payload) {
27
+ try {
28
+ const data = await $fetch("/api/workspace/credentials", {
29
+ method: "POST",
30
+ body: payload
31
+ });
32
+ credentials.value = [...credentials.value, data].sort((a, b) => a.key.localeCompare(b.key));
33
+ return data;
34
+ } catch (e) {
35
+ Sentry.captureException(e);
36
+ throw e;
37
+ }
38
+ }
39
+ async function updateCredential(id, payload) {
40
+ try {
41
+ const data = await $fetch(`/api/workspace/credentials/${id}`, {
42
+ method: "PUT",
43
+ body: payload
44
+ });
45
+ credentials.value = credentials.value.map((s) => s.id === id ? data : s);
46
+ return data;
47
+ } catch (e) {
48
+ Sentry.captureException(e);
49
+ throw e;
50
+ }
51
+ }
52
+ async function deleteCredential(id) {
53
+ try {
54
+ await $fetch(`/api/workspace/credentials/${id}`, { method: "DELETE" });
55
+ credentials.value = credentials.value.filter((s) => s.id !== id);
56
+ } catch (e) {
57
+ Sentry.captureException(e);
58
+ throw e;
59
+ }
60
+ }
61
+ const filteredCredentials = computed(() => {
62
+ const query = searchQuery?.value?.trim().toLowerCase();
63
+ if (!query)
64
+ return credentials.value;
65
+ return credentials.value.filter(
66
+ (s) => s.key.toLowerCase().includes(query)
67
+ );
68
+ });
69
+ const credentialModalOpen = computed({
70
+ get: () => showCreateModal.value || !!editingCredential.value,
71
+ set: (val) => {
72
+ if (!val) {
73
+ showCreateModal.value = false;
74
+ editingCredential.value = null;
75
+ }
76
+ }
77
+ });
78
+ const deleteModalOpen = computed({
79
+ get: () => !!deletingCredential.value,
80
+ set: (val) => {
81
+ if (!val)
82
+ deletingCredential.value = null;
83
+ }
84
+ });
85
+ function openCreateModal() {
86
+ credentialForm.value = { key: "", value: "" };
87
+ credentialError.value = "";
88
+ showCreateModal.value = true;
89
+ }
90
+ function openEditModal(credential) {
91
+ editingCredential.value = credential;
92
+ credentialForm.value = { key: credential.key, value: "" };
93
+ credentialError.value = "";
94
+ }
95
+ function closeModal() {
96
+ showCreateModal.value = false;
97
+ editingCredential.value = null;
98
+ }
99
+ async function handleSave() {
100
+ credentialError.value = "";
101
+ if (editingCredential.value && !credentialForm.value.value) {
102
+ closeModal();
103
+ return;
104
+ }
105
+ credentialSaving.value = true;
106
+ const statusToast = useStatusToast();
107
+ try {
108
+ if (editingCredential.value) {
109
+ await updateCredential(editingCredential.value.id, { value: credentialForm.value.value });
110
+ statusToast.update({ text: "Credencial atualizada", icon: "i-ph-check" });
111
+ } else {
112
+ await createCredential(credentialForm.value);
113
+ statusToast.update({ text: "Credencial criada", icon: "i-ph-check" });
114
+ }
115
+ closeModal();
116
+ } catch (error) {
117
+ credentialError.value = error?.data?.statusMessage ?? "Erro ao salvar credencial";
118
+ } finally {
119
+ credentialSaving.value = false;
120
+ }
121
+ }
122
+ async function handleDelete() {
123
+ if (!deletingCredential.value)
124
+ return;
125
+ credentialDeleting.value = true;
126
+ const statusToast = useStatusToast();
127
+ try {
128
+ await deleteCredential(deletingCredential.value.id);
129
+ statusToast.update({ text: "Credencial exclu\xEDda", icon: "i-ph-check" });
130
+ deletingCredential.value = null;
131
+ } catch (e) {
132
+ Sentry.captureException(e);
133
+ statusToast.update({ text: "Erro ao excluir credencial", icon: "i-ph-warning" });
134
+ } finally {
135
+ credentialDeleting.value = false;
136
+ }
137
+ }
138
+ function getMenuItems(credential) {
139
+ return [
140
+ { label: "Editar", icon: "i-ph-pencil-simple", click: () => openEditModal(credential) },
141
+ { label: "Excluir", icon: "i-ph-trash", click: () => {
142
+ deletingCredential.value = credential;
143
+ } }
144
+ ];
145
+ }
146
+ function formatLastRotated(updatedAt, createdAt) {
147
+ if (updatedAt === createdAt)
148
+ return "Nunca";
149
+ return formatAbsoluteDate(updatedAt);
150
+ }
151
+ return {
152
+ credentials: readonly(credentials),
153
+ loading: readonly(loading),
154
+ fetchCredentials,
155
+ createCredential,
156
+ updateCredential,
157
+ deleteCredential,
158
+ filteredCredentials,
159
+ credentialModalOpen,
160
+ deleteModalOpen,
161
+ credentialForm,
162
+ credentialSaving,
163
+ credentialDeleting,
164
+ credentialError,
165
+ editingCredential: readonly(editingCredential),
166
+ deletingCredential: readonly(deletingCredential),
167
+ openCreateModal,
168
+ openEditModal,
169
+ closeModal,
170
+ handleSave,
171
+ handleDelete,
172
+ getMenuItems,
173
+ formatLastRotated
174
+ };
175
+ }
@@ -0,0 +1,22 @@
1
+ import type { ExternalSkill } from '../server/db/schema.js';
2
+ export declare function useWorkspaceExternalSkills(searchQuery?: Ref<string>): {
3
+ displayedSkills: any;
4
+ filteredSkills: any;
5
+ hasChanges: any;
6
+ isPending: (ref: string) => boolean;
7
+ addSkill: (skill: ExternalSkill) => void;
8
+ removeSkill: (ref: string) => void;
9
+ buildExternalSkills: () => ExternalSkill[] | null;
10
+ initialize: () => void;
11
+ skillModalOpen: any;
12
+ skillRefInput: any;
13
+ skillError: any;
14
+ discoveringSkills: any;
15
+ handleAddSkill: () => Promise<void>;
16
+ closeSkillModal: () => void;
17
+ handleAddSkillAndClose: () => Promise<void>;
18
+ getGitHubButtonText: () => string;
19
+ skillsConnection: any;
20
+ fetchGitHubConnection: any;
21
+ connectGitHub: any;
22
+ };
@@ -0,0 +1,135 @@
1
+ export function useWorkspaceExternalSkills(searchQuery) {
2
+ const { settings } = useWorkspaceSettings();
3
+ const { user } = useTelaApplicationAuth();
4
+ const { connection: skillsConnection, fetchConnection: fetchGitHubConnection, connect: connectGitHub } = useGitHubSkills();
5
+ const pendingSkills = useState("workspace-external-skills-pending", () => []);
6
+ const removedRefs = useState("workspace-external-skills-removed", () => []);
7
+ const skillModalOpen = ref(false);
8
+ const skillRefInput = ref("");
9
+ const skillError = ref("");
10
+ const discoveringSkills = ref(false);
11
+ const displayedSkills = computed(() => {
12
+ const current = (settings.value?.externalSkills ?? []).filter((s) => !removedRefs.value.includes(s.ref));
13
+ return [...current, ...pendingSkills.value];
14
+ });
15
+ const filteredSkills = computed(() => {
16
+ const query = searchQuery?.value?.trim().toLowerCase();
17
+ if (!query)
18
+ return displayedSkills.value;
19
+ return displayedSkills.value.filter(
20
+ (skill) => skill.name.toLowerCase().includes(query) || skill.ref.toLowerCase().includes(query)
21
+ );
22
+ });
23
+ const hasChanges = computed(() => {
24
+ return pendingSkills.value.length > 0 || removedRefs.value.length > 0;
25
+ });
26
+ function isPending(ref2) {
27
+ return pendingSkills.value.some((s) => s.ref === ref2);
28
+ }
29
+ function addSkill(skill) {
30
+ pendingSkills.value = [...pendingSkills.value, skill];
31
+ }
32
+ function removeSkill(ref2) {
33
+ const pendingIndex = pendingSkills.value.findIndex((s) => s.ref === ref2);
34
+ if (pendingIndex !== -1) {
35
+ pendingSkills.value = pendingSkills.value.filter((_, i) => i !== pendingIndex);
36
+ return;
37
+ }
38
+ removedRefs.value = [...removedRefs.value, ref2];
39
+ }
40
+ function buildExternalSkills() {
41
+ const currentSkills = (settings.value?.externalSkills ?? []).filter((s) => !removedRefs.value.includes(s.ref)).map((s) => ({
42
+ ...s,
43
+ allowedTools: [...s.allowedTools],
44
+ addedBy: { ...s.addedBy }
45
+ }));
46
+ const finalSkills = [...currentSkills, ...pendingSkills.value];
47
+ return finalSkills.length > 0 ? finalSkills : null;
48
+ }
49
+ async function handleAddSkill() {
50
+ const inputRef = skillRefInput.value.trim();
51
+ if (!inputRef || discoveringSkills.value)
52
+ return;
53
+ skillError.value = "";
54
+ discoveringSkills.value = true;
55
+ try {
56
+ const metadata = await $fetch("/api/external-skills/discover", {
57
+ method: "POST",
58
+ body: { ref: inputRef }
59
+ });
60
+ const canonicalRef = metadata.ref;
61
+ if (displayedSkills.value.some((s) => s.ref === canonicalRef)) {
62
+ skillError.value = "Esta skill j\xE1 foi adicionada";
63
+ return;
64
+ }
65
+ const newSkill = {
66
+ ref: canonicalRef,
67
+ name: metadata.name,
68
+ description: metadata.description || "",
69
+ runtime: metadata.runtime || "unknown",
70
+ allowedTools: metadata.allowedTools || [],
71
+ isPublic: metadata.isPublic,
72
+ addedBy: {
73
+ userId: user.value?.id || "",
74
+ username: user.value?.name || skillsConnection.value.accountName || ""
75
+ },
76
+ addedAt: (/* @__PURE__ */ new Date()).toISOString()
77
+ };
78
+ addSkill(newSkill);
79
+ skillRefInput.value = "";
80
+ } catch (error) {
81
+ if (error.statusCode === 401)
82
+ skillError.value = "Reposit\xF3rio privado. Conecte um provedor para acessar.";
83
+ else if (error.statusCode === 404)
84
+ skillError.value = "Skill n\xE3o encontrada. Verifique se o caminho cont\xE9m um arquivo SKILL.md";
85
+ else
86
+ skillError.value = error.statusMessage || "Erro ao buscar skill";
87
+ } finally {
88
+ discoveringSkills.value = false;
89
+ }
90
+ }
91
+ function closeSkillModal() {
92
+ skillModalOpen.value = false;
93
+ skillRefInput.value = "";
94
+ skillError.value = "";
95
+ }
96
+ async function handleAddSkillAndClose() {
97
+ await handleAddSkill();
98
+ if (!skillError.value)
99
+ closeSkillModal();
100
+ }
101
+ function getGitHubButtonText() {
102
+ if (skillsConnection.value.connected)
103
+ return "Gerenciar GitHub";
104
+ return "Conectar GitHub";
105
+ }
106
+ function initialize() {
107
+ pendingSkills.value = [];
108
+ removedRefs.value = [];
109
+ skillModalOpen.value = false;
110
+ skillRefInput.value = "";
111
+ skillError.value = "";
112
+ discoveringSkills.value = false;
113
+ }
114
+ return {
115
+ displayedSkills,
116
+ filteredSkills,
117
+ hasChanges,
118
+ isPending,
119
+ addSkill,
120
+ removeSkill,
121
+ buildExternalSkills,
122
+ initialize,
123
+ skillModalOpen,
124
+ skillRefInput,
125
+ skillError,
126
+ discoveringSkills,
127
+ handleAddSkill,
128
+ closeSkillModal,
129
+ handleAddSkillAndClose,
130
+ getGitHubButtonText,
131
+ skillsConnection,
132
+ fetchGitHubConnection,
133
+ connectGitHub
134
+ };
135
+ }
@@ -0,0 +1,11 @@
1
+ import type { KnowledgeSource } from '../types/chat.js';
2
+ import type { TelaCanvas, TelaProject, TelaWorkstation } from '../types/tela.js';
3
+ export declare function useWorkspaceKnowledgeSources(workstations: Ref<TelaWorkstation[]> | ComputedRef<TelaWorkstation[]>, canvas: Ref<TelaCanvas[]> | ComputedRef<TelaCanvas[]>, projects: Ref<TelaProject[]> | ComputedRef<TelaProject[]>, searchQuery: Ref<string>, currentKnowledgeSources: Ref<readonly KnowledgeSource[] | null | undefined> | ComputedRef<readonly KnowledgeSource[] | null | undefined>): {
4
+ selectedKnowledgeSourceIds: any;
5
+ filteredWorkstations: any;
6
+ hasChanges: any;
7
+ toggleKnowledgeSource: (sourceId: string) => void;
8
+ getProjectNameForWorkstation: (workstation: TelaWorkstation) => string;
9
+ buildKnowledgeSources: () => KnowledgeSource[];
10
+ initialize: () => void;
11
+ };
@@ -0,0 +1,88 @@
1
+ export function useWorkspaceKnowledgeSources(workstations, canvas, projects, searchQuery, currentKnowledgeSources) {
2
+ const selectedKnowledgeSourceIds = ref(/* @__PURE__ */ new Set());
3
+ function getProjectIdForWorkstation(workstation) {
4
+ const prompt = canvas.value.find((c) => c.id === workstation.promptId);
5
+ return prompt?.projectId;
6
+ }
7
+ function getProjectNameForWorkstation(workstation) {
8
+ const projectId = getProjectIdForWorkstation(workstation);
9
+ if (!projectId)
10
+ return "Sem projeto";
11
+ const project = projects.value.find((p) => p.id === projectId);
12
+ return project?.title ?? "Sem projeto";
13
+ }
14
+ function sortWithSelectedFirst(list) {
15
+ return [...list].sort((a, b) => {
16
+ const aSelected = selectedKnowledgeSourceIds.value.has(a.id);
17
+ const bSelected = selectedKnowledgeSourceIds.value.has(b.id);
18
+ if (aSelected && !bSelected)
19
+ return -1;
20
+ if (!aSelected && bSelected)
21
+ return 1;
22
+ return a.name.localeCompare(b.name);
23
+ });
24
+ }
25
+ const filteredWorkstations = computed(() => {
26
+ if (!searchQuery.value.trim())
27
+ return sortWithSelectedFirst(workstations.value);
28
+ const query = searchQuery.value.toLowerCase();
29
+ const matchingProjectIds = new Set(
30
+ projects.value.filter((p) => p.title.toLowerCase().includes(query)).map((p) => p.id)
31
+ );
32
+ const filtered = workstations.value.filter((w) => {
33
+ const projectId = getProjectIdForWorkstation(w);
34
+ return w.name.toLowerCase().includes(query) || w.description?.toLowerCase().includes(query) || projectId && matchingProjectIds.has(projectId);
35
+ });
36
+ return sortWithSelectedFirst(filtered);
37
+ });
38
+ const hasChanges = computed(() => {
39
+ const currentIds = new Set(currentKnowledgeSources.value?.map((s) => s.id) ?? []);
40
+ if (currentIds.size !== selectedKnowledgeSourceIds.value.size)
41
+ return true;
42
+ for (const id of currentIds) {
43
+ if (!selectedKnowledgeSourceIds.value.has(id))
44
+ return true;
45
+ }
46
+ return false;
47
+ });
48
+ function toggleKnowledgeSource(sourceId) {
49
+ const newSet = new Set(selectedKnowledgeSourceIds.value);
50
+ if (newSet.has(sourceId))
51
+ newSet.delete(sourceId);
52
+ else
53
+ newSet.add(sourceId);
54
+ selectedKnowledgeSourceIds.value = newSet;
55
+ }
56
+ function buildKnowledgeSources() {
57
+ const sources = [];
58
+ for (const sourceId of selectedKnowledgeSourceIds.value) {
59
+ const item = workstations.value.find((w) => w.id === sourceId);
60
+ if (!item)
61
+ continue;
62
+ const projectId = getProjectIdForWorkstation(item);
63
+ if (!projectId)
64
+ continue;
65
+ sources.push({
66
+ type: "workstation",
67
+ id: sourceId,
68
+ name: item.name,
69
+ projectId,
70
+ description: item.description,
71
+ taskCount: item.taskCount
72
+ });
73
+ }
74
+ return sources;
75
+ }
76
+ function initialize() {
77
+ selectedKnowledgeSourceIds.value = new Set(currentKnowledgeSources.value?.map((s) => s.id) ?? []);
78
+ }
79
+ return {
80
+ selectedKnowledgeSourceIds,
81
+ filteredWorkstations,
82
+ hasChanges,
83
+ toggleKnowledgeSource,
84
+ getProjectNameForWorkstation,
85
+ buildKnowledgeSources,
86
+ initialize
87
+ };
88
+ }
@@ -0,0 +1,13 @@
1
+ type MemberUser = {
2
+ name: string;
3
+ email: string;
4
+ image?: string;
5
+ };
6
+ export declare function useWorkspaceMembers(): {
7
+ members: any;
8
+ membersMap: any;
9
+ getMemberImage: (userId: string) => string | undefined;
10
+ getMember: (userId: string) => MemberUser | undefined;
11
+ getMemberByEmail: (email: string) => MemberUser | undefined;
12
+ };
13
+ export {};
@@ -0,0 +1,37 @@
1
+ export function useWorkspaceMembers() {
2
+ const { activeOrganization } = useTelaApplicationAuth();
3
+ const members = computed(() => activeOrganization.value?.members ?? []);
4
+ const membersMap = computed(() => {
5
+ const map = /* @__PURE__ */ new Map();
6
+ for (const member of members.value) {
7
+ map.set(member.userId, member.user);
8
+ }
9
+ return map;
10
+ });
11
+ const membersEmailMap = computed(() => {
12
+ const map = /* @__PURE__ */ new Map();
13
+ for (const member of members.value) {
14
+ const email = member.user.email?.toLowerCase();
15
+ if (email) {
16
+ map.set(email, member.user);
17
+ }
18
+ }
19
+ return map;
20
+ });
21
+ function getMemberImage(userId) {
22
+ return membersMap.value.get(userId)?.image ?? void 0;
23
+ }
24
+ function getMember(userId) {
25
+ return membersMap.value.get(userId);
26
+ }
27
+ function getMemberByEmail(email) {
28
+ return membersEmailMap.value.get(email.toLowerCase());
29
+ }
30
+ return {
31
+ members,
32
+ membersMap,
33
+ getMemberImage,
34
+ getMember,
35
+ getMemberByEmail
36
+ };
37
+ }
@@ -0,0 +1,6 @@
1
+ export declare function useWorkspacePersonalization(): {
2
+ localSystemMessage: any;
3
+ hasChanges: any;
4
+ getSystemMessage: () => string | null;
5
+ initialize: () => void;
6
+ };
@@ -0,0 +1,19 @@
1
+ export function useWorkspacePersonalization() {
2
+ const { settings } = useWorkspaceSettings();
3
+ const localSystemMessage = useState("workspace-personalization-system-message", () => "");
4
+ const hasChanges = computed(
5
+ () => localSystemMessage.value !== (settings.value?.systemMessage ?? "")
6
+ );
7
+ function getSystemMessage() {
8
+ return localSystemMessage.value.trim() || null;
9
+ }
10
+ function initialize() {
11
+ localSystemMessage.value = settings.value?.systemMessage ?? "";
12
+ }
13
+ return {
14
+ localSystemMessage,
15
+ hasChanges,
16
+ getSystemMessage,
17
+ initialize
18
+ };
19
+ }
@@ -0,0 +1,30 @@
1
+ import type { ContextFile, ExternalSkill } from '../server/db/schema.js';
2
+ import type { CanvasTool } from '../types/agent.js';
3
+ import type { KnowledgeSource } from '../types/chat.js';
4
+ export type WorkspaceSettings = {
5
+ workspaceId: string;
6
+ systemMessage: string | null;
7
+ contextFiles: ContextFile[] | null;
8
+ canvasTools: CanvasTool[] | null;
9
+ knowledgeSources: KnowledgeSource[] | null;
10
+ externalSkills: ExternalSkill[] | null;
11
+ updatedAt: Date;
12
+ };
13
+ export type WorkspaceSettingsUpdate = {
14
+ systemMessage?: string | null;
15
+ contextFiles?: ContextFile[] | null;
16
+ canvasTools?: CanvasTool[] | null;
17
+ knowledgeSources?: KnowledgeSource[] | null;
18
+ externalSkills?: ExternalSkill[] | null;
19
+ };
20
+ export declare function useWorkspaceSettings(): {
21
+ settings: any;
22
+ loading: any;
23
+ error: any;
24
+ fetchSettings: () => Promise<WorkspaceSettings>;
25
+ updateSettings: (updates: WorkspaceSettingsUpdate) => Promise<WorkspaceSettings>;
26
+ isModalOpen: any;
27
+ initialTab: any;
28
+ openModal: (tab?: string) => void;
29
+ closeModal: () => void;
30
+ };
@@ -0,0 +1,135 @@
1
+ import * as Sentry from "@sentry/nuxt";
2
+ export function useWorkspaceSettings() {
3
+ const chatApi = useChatApi();
4
+ const embedConfig = useEmbedConfig();
5
+ const workspaceScope = computed(() => embedConfig?.workspaceId.value.trim() || "default");
6
+ const settingsBuckets = useState("workspace-settings", () => ({}));
7
+ const loadingBuckets = useState("workspace-settings-loading", () => ({}));
8
+ const errorBuckets = useState("workspace-settings-error", () => ({}));
9
+ const settings = computed({
10
+ get: () => settingsBuckets.value[workspaceScope.value] ?? null,
11
+ set: (value) => {
12
+ settingsBuckets.value = {
13
+ ...settingsBuckets.value,
14
+ [workspaceScope.value]: value
15
+ };
16
+ }
17
+ });
18
+ const loading = computed({
19
+ get: () => loadingBuckets.value[workspaceScope.value] ?? false,
20
+ set: (value) => {
21
+ loadingBuckets.value = {
22
+ ...loadingBuckets.value,
23
+ [workspaceScope.value]: value
24
+ };
25
+ }
26
+ });
27
+ const error = computed({
28
+ get: () => errorBuckets.value[workspaceScope.value] ?? null,
29
+ set: (value) => {
30
+ errorBuckets.value = {
31
+ ...errorBuckets.value,
32
+ [workspaceScope.value]: value
33
+ };
34
+ }
35
+ });
36
+ const isModalOpen = useState("workspace-settings-modal-open", () => false);
37
+ const initialTab = useState("workspace-settings-initial-tab", () => null);
38
+ if (embedConfig !== null && embedConfig.workspaceSettings.value !== void 0) {
39
+ settings.value = embedConfig.workspaceSettings.value;
40
+ }
41
+ if (embedConfig !== null) {
42
+ watch(() => embedConfig.workspaceSettings.value, (newSettings) => {
43
+ if (newSettings !== void 0) {
44
+ settings.value = newSettings;
45
+ }
46
+ });
47
+ }
48
+ function openModal(tab) {
49
+ if (embedConfig !== null)
50
+ return;
51
+ if (tab)
52
+ initialTab.value = tab;
53
+ isModalOpen.value = true;
54
+ }
55
+ function closeModal() {
56
+ if (embedConfig !== null)
57
+ return;
58
+ isModalOpen.value = false;
59
+ initialTab.value = null;
60
+ }
61
+ async function fetchSettings() {
62
+ loading.value = true;
63
+ error.value = null;
64
+ try {
65
+ const currentSettings = settings.value;
66
+ let data;
67
+ if (embedConfig !== null) {
68
+ data = await $fetch(
69
+ chatApi.path("/workspace/settings"),
70
+ chatApi.withChatHeaders()
71
+ );
72
+ } else {
73
+ data = await $fetch("/api/workspace/settings");
74
+ }
75
+ if (import.meta.dev && embedConfig !== null && currentSettings) {
76
+ const hydratedSettings = {
77
+ systemMessage: currentSettings.systemMessage,
78
+ contextFiles: currentSettings.contextFiles,
79
+ canvasTools: currentSettings.canvasTools,
80
+ knowledgeSources: currentSettings.knowledgeSources,
81
+ externalSkills: currentSettings.externalSkills
82
+ };
83
+ const trustedSettings = {
84
+ systemMessage: data.systemMessage,
85
+ contextFiles: data.contextFiles,
86
+ canvasTools: data.canvasTools,
87
+ knowledgeSources: data.knowledgeSources,
88
+ externalSkills: data.externalSkills
89
+ };
90
+ if (JSON.stringify(hydratedSettings) !== JSON.stringify(trustedSettings)) {
91
+ console.warn("[TelaChat] Hydrated workspace settings differ from trusted server settings");
92
+ }
93
+ }
94
+ settings.value = data;
95
+ return data;
96
+ } catch (e) {
97
+ Sentry.captureException(e);
98
+ error.value = "Falha ao carregar configura\xE7\xF5es";
99
+ throw e;
100
+ } finally {
101
+ loading.value = false;
102
+ }
103
+ }
104
+ async function updateSettings(updates) {
105
+ if (embedConfig !== null)
106
+ return settings.value;
107
+ loading.value = true;
108
+ error.value = null;
109
+ try {
110
+ const data = await $fetch("/api/workspace/settings", {
111
+ method: "PATCH",
112
+ body: updates
113
+ });
114
+ settings.value = data;
115
+ return data;
116
+ } catch (e) {
117
+ Sentry.captureException(e);
118
+ error.value = "Falha ao salvar configura\xE7\xF5es";
119
+ throw e;
120
+ } finally {
121
+ loading.value = false;
122
+ }
123
+ }
124
+ return {
125
+ settings: readonly(settings),
126
+ loading: readonly(loading),
127
+ error: readonly(error),
128
+ fetchSettings,
129
+ updateSettings,
130
+ isModalOpen: readonly(isModalOpen),
131
+ initialTab: readonly(initialTab),
132
+ openModal,
133
+ closeModal
134
+ };
135
+ }
@@ -0,0 +1,13 @@
1
+ import type { CanvasTool } from '../types/agent.js';
2
+ import type { TelaCanvas, TelaProject } from '../types/tela.js';
3
+ export declare function useWorkspaceTelaTools(canvas: Ref<TelaCanvas[]> | ComputedRef<TelaCanvas[]>, projects: Ref<TelaProject[]> | ComputedRef<TelaProject[]>, searchQuery: Ref<string>, currentCanvasTools: Ref<readonly CanvasTool[] | null | undefined> | ComputedRef<readonly CanvasTool[] | null | undefined>): {
4
+ selectedToolIds: any;
5
+ filteredCanvasTools: any;
6
+ allToolsSelected: any;
7
+ hasChanges: any;
8
+ toggleCanvasTool: (canvasId: string) => void;
9
+ toggleAllTools: (selected: boolean | "indeterminate") => void;
10
+ getProjectName: (projectId: string) => string;
11
+ buildCanvasTools: () => CanvasTool[];
12
+ initialize: () => void;
13
+ };