@meistrari/chat-nuxt 3.1.0 → 3.2.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 (173) hide show
  1. package/README.md +99 -14
  2. package/dist/module.d.mts +2 -3
  3. package/dist/module.json +1 -1
  4. package/dist/runtime/conversations/components/chat-conversation-creator-filter.d.vue.ts +1 -1
  5. package/dist/runtime/conversations/components/chat-conversation-creator-filter.vue.d.ts +1 -1
  6. package/dist/runtime/conversations/components/chat-conversation-item.d.vue.ts +3 -3
  7. package/dist/runtime/conversations/components/chat-conversation-item.vue.d.ts +3 -3
  8. package/dist/runtime/conversations/components/chat-conversation-list.d.vue.ts +1 -1
  9. package/dist/runtime/conversations/components/chat-conversation-list.vue.d.ts +1 -1
  10. package/dist/runtime/conversations/components/chat-conversation-new-group-button.d.vue.ts +1 -1
  11. package/dist/runtime/conversations/components/chat-conversation-new-group-button.vue.d.ts +1 -1
  12. package/dist/runtime/conversations/components/chat-conversation-new-group-popover-content.d.vue.ts +4 -4
  13. package/dist/runtime/conversations/components/chat-conversation-new-group-popover-content.vue.d.ts +4 -4
  14. package/dist/runtime/conversations/components/chat-conversation-search.d.vue.ts +3 -3
  15. package/dist/runtime/conversations/components/chat-conversation-search.vue.d.ts +3 -3
  16. package/dist/runtime/conversations/components/chat-new-conversation-modal.d.vue.ts +5 -23
  17. package/dist/runtime/conversations/components/chat-new-conversation-modal.vue.d.ts +5 -23
  18. package/dist/runtime/conversations/composables/conversation-list.d.ts +1 -58
  19. package/dist/runtime/embed/components/chat-configuration-modal.d.vue.ts +3 -3
  20. package/dist/runtime/embed/components/chat-configuration-modal.vue.d.ts +3 -3
  21. package/dist/runtime/embed/components/chat-embed-inner.d.vue.ts +15 -4
  22. package/dist/runtime/embed/components/chat-embed-inner.vue +22 -3
  23. package/dist/runtime/embed/components/chat-embed-inner.vue.d.ts +15 -4
  24. package/dist/runtime/embed/components/chat-embed.d.vue.ts +13 -3
  25. package/dist/runtime/embed/components/chat-embed.vue +7 -1
  26. package/dist/runtime/embed/components/chat-embed.vue.d.ts +13 -3
  27. package/dist/runtime/embed/components/chat-topbar.d.vue.ts +5 -5
  28. package/dist/runtime/embed/components/chat-topbar.vue.d.ts +5 -5
  29. package/dist/runtime/embed/components/configuration/chat-configuration-agent-tab.d.vue.ts +3 -3
  30. package/dist/runtime/embed/components/configuration/chat-configuration-agent-tab.vue.d.ts +3 -3
  31. package/dist/runtime/embed/components/configuration/chat-configuration-credentials-tab.d.vue.ts +3 -3
  32. package/dist/runtime/embed/components/configuration/chat-configuration-credentials-tab.vue.d.ts +3 -3
  33. package/dist/runtime/embed/components/configuration/chat-configuration-knowledge-sources-tab.d.vue.ts +5 -5
  34. package/dist/runtime/embed/components/configuration/chat-configuration-knowledge-sources-tab.vue.d.ts +5 -5
  35. package/dist/runtime/embed/components/configuration/chat-configuration-mobile-shell.d.vue.ts +3 -3
  36. package/dist/runtime/embed/components/configuration/chat-configuration-mobile-shell.vue.d.ts +3 -3
  37. package/dist/runtime/embed/components/meistrari-chat-embed.d.vue.ts +9 -4
  38. package/dist/runtime/embed/components/meistrari-chat-embed.vue +14 -2
  39. package/dist/runtime/embed/components/meistrari-chat-embed.vue.d.ts +9 -4
  40. package/dist/runtime/embed/components/mobile/chat-mobile-bottom-sheet.d.vue.ts +3 -3
  41. package/dist/runtime/embed/components/mobile/chat-mobile-bottom-sheet.vue.d.ts +3 -3
  42. package/dist/runtime/embed/components/mobile/chat-mobile-drawer.d.vue.ts +3 -3
  43. package/dist/runtime/embed/components/mobile/chat-mobile-drawer.vue.d.ts +3 -3
  44. package/dist/runtime/embed/components/mobile/chat-mobile-file-preview.d.vue.ts +3 -3
  45. package/dist/runtime/embed/components/mobile/chat-mobile-file-preview.vue.d.ts +3 -3
  46. package/dist/runtime/embed/components/mobile/chat-mobile-files-view.d.vue.ts +3 -3
  47. package/dist/runtime/embed/components/mobile/chat-mobile-files-view.vue.d.ts +3 -3
  48. package/dist/runtime/embed/components/mobile/chat-mobile-header.d.vue.ts +5 -5
  49. package/dist/runtime/embed/components/mobile/chat-mobile-header.vue.d.ts +5 -5
  50. package/dist/runtime/embed/components/mobile/chat-mobile-home-header.d.vue.ts +3 -3
  51. package/dist/runtime/embed/components/mobile/chat-mobile-home-header.vue.d.ts +3 -3
  52. package/dist/runtime/embed/components/mobile/chat-mobile-home-recents.d.vue.ts +3 -3
  53. package/dist/runtime/embed/components/mobile/chat-mobile-home-recents.vue.d.ts +3 -3
  54. package/dist/runtime/embed/components/mobile/chat-mobile-home-suggestions.d.vue.ts +3 -3
  55. package/dist/runtime/embed/components/mobile/chat-mobile-home-suggestions.vue.d.ts +3 -3
  56. package/dist/runtime/embed/components/mobile/chat-mobile-info-bubble.d.vue.ts +1 -1
  57. package/dist/runtime/embed/components/mobile/chat-mobile-info-bubble.vue.d.ts +1 -1
  58. package/dist/runtime/embed/components/mobile/chat-mobile-outdated-settings-sheet.d.vue.ts +3 -3
  59. package/dist/runtime/embed/components/mobile/chat-mobile-outdated-settings-sheet.vue.d.ts +3 -3
  60. package/dist/runtime/embed/components/mobile/chat-mobile-shell.d.vue.ts +9 -41
  61. package/dist/runtime/embed/components/mobile/chat-mobile-shell.vue.d.ts +9 -41
  62. package/dist/runtime/embed/components/mobile/chat-mobile-usage-view.d.vue.ts +1 -1
  63. package/dist/runtime/embed/components/mobile/chat-mobile-usage-view.vue.d.ts +1 -1
  64. package/dist/runtime/embed/components/mobile/chat-mobile-workspace-sheet.d.vue.ts +3 -3
  65. package/dist/runtime/embed/components/mobile/chat-mobile-workspace-sheet.vue.d.ts +3 -3
  66. package/dist/runtime/embed/components/powered-by-tela.d.vue.ts +1 -1
  67. package/dist/runtime/embed/components/powered-by-tela.vue.d.ts +1 -1
  68. package/dist/runtime/embed/types.d.ts +14 -0
  69. package/dist/runtime/files/components/audio-preview.d.vue.ts +3 -3
  70. package/dist/runtime/files/components/audio-preview.vue.d.ts +3 -3
  71. package/dist/runtime/files/components/chat-file-preview.d.vue.ts +1 -1
  72. package/dist/runtime/files/components/chat-file-preview.vue.d.ts +1 -1
  73. package/dist/runtime/files/components/chat-files-view.d.vue.ts +1 -1
  74. package/dist/runtime/files/components/chat-files-view.vue.d.ts +1 -1
  75. package/dist/runtime/files/components/chat-vault-link.d.vue.ts +1 -1
  76. package/dist/runtime/files/components/chat-vault-link.vue.d.ts +1 -1
  77. package/dist/runtime/files/components/conversation-files-panel.d.vue.ts +1 -1
  78. package/dist/runtime/files/components/conversation-files-panel.vue.d.ts +1 -1
  79. package/dist/runtime/files/components/csv-preview.d.vue.ts +3 -3
  80. package/dist/runtime/files/components/csv-preview.vue.d.ts +3 -3
  81. package/dist/runtime/files/components/file-preview-panel.d.vue.ts +1 -1
  82. package/dist/runtime/files/components/file-preview-panel.vue.d.ts +1 -1
  83. package/dist/runtime/files/components/file-uploader.d.vue.ts +3 -3
  84. package/dist/runtime/files/components/file-uploader.vue.d.ts +3 -3
  85. package/dist/runtime/files/components/image-preview.d.vue.ts +3 -3
  86. package/dist/runtime/files/components/image-preview.vue.d.ts +3 -3
  87. package/dist/runtime/files/components/pdf-preview.client.d.vue.ts +3 -3
  88. package/dist/runtime/files/components/pdf-preview.client.vue.d.ts +3 -3
  89. package/dist/runtime/files/components/pdf-viewer.client.d.vue.ts +1 -1
  90. package/dist/runtime/files/components/pdf-viewer.client.vue.d.ts +1 -1
  91. package/dist/runtime/files/components/text-preview.d.vue.ts +3 -3
  92. package/dist/runtime/files/components/text-preview.vue.d.ts +3 -3
  93. package/dist/runtime/files/components/video-preview.d.vue.ts +3 -3
  94. package/dist/runtime/files/components/video-preview.vue.d.ts +3 -3
  95. package/dist/runtime/files/composables/pdf.d.ts +27 -248
  96. package/dist/runtime/messages/components/chat-canvas-selector-modal.d.vue.ts +5 -23
  97. package/dist/runtime/messages/components/chat-canvas-selector-modal.vue.d.ts +5 -23
  98. package/dist/runtime/messages/components/chat-context-config.d.vue.ts +10 -52
  99. package/dist/runtime/messages/components/chat-context-config.vue.d.ts +10 -52
  100. package/dist/runtime/messages/components/chat-mention-dropdown.d.vue.ts +5 -27
  101. package/dist/runtime/messages/components/chat-mention-dropdown.vue.d.ts +5 -27
  102. package/dist/runtime/messages/components/chat-message-bubble.d.vue.ts +3 -3
  103. package/dist/runtime/messages/components/chat-message-bubble.vue.d.ts +3 -3
  104. package/dist/runtime/messages/components/chat-message-feedback.d.vue.ts +1 -1
  105. package/dist/runtime/messages/components/chat-message-feedback.vue.d.ts +1 -1
  106. package/dist/runtime/messages/components/chat-message-input.d.vue.ts +6 -38
  107. package/dist/runtime/messages/components/chat-message-input.vue.d.ts +6 -38
  108. package/dist/runtime/messages/components/chat-message-list.d.vue.ts +3 -3
  109. package/dist/runtime/messages/components/chat-message-list.vue.d.ts +3 -3
  110. package/dist/runtime/messages/components/chat-workstation-selector-modal.d.vue.ts +5 -19
  111. package/dist/runtime/messages/components/chat-workstation-selector-modal.vue.d.ts +5 -19
  112. package/dist/runtime/messages/components/reasoning/chat-reasoning-message.d.vue.ts +1 -1
  113. package/dist/runtime/messages/components/reasoning/chat-reasoning-message.vue.d.ts +1 -1
  114. package/dist/runtime/messages/components/reasoning/chat-reasoning-step-item.d.vue.ts +4 -4
  115. package/dist/runtime/messages/components/reasoning/chat-reasoning-step-item.vue.d.ts +4 -4
  116. package/dist/runtime/messages/components/reasoning/chat-reasoning-steps.d.vue.ts +2 -2
  117. package/dist/runtime/messages/components/reasoning/chat-reasoning-steps.vue.d.ts +2 -2
  118. package/dist/runtime/messages/components/reasoning/chat-reasoning-thought.d.vue.ts +1 -1
  119. package/dist/runtime/messages/components/reasoning/chat-reasoning-thought.vue.d.ts +1 -1
  120. package/dist/runtime/messages/components/reasoning/chat-thinking-indicator.d.vue.ts +1 -1
  121. package/dist/runtime/messages/components/reasoning/chat-thinking-indicator.vue.d.ts +1 -1
  122. package/dist/runtime/messages/components/widgets/chat-bash-widget.d.vue.ts +1 -1
  123. package/dist/runtime/messages/components/widgets/chat-bash-widget.vue.d.ts +1 -1
  124. package/dist/runtime/messages/components/widgets/chat-doc-sdk-widget.d.vue.ts +1 -1
  125. package/dist/runtime/messages/components/widgets/chat-doc-sdk-widget.vue.d.ts +1 -1
  126. package/dist/runtime/messages/components/widgets/chat-generic-tool-widget.d.vue.ts +1 -1
  127. package/dist/runtime/messages/components/widgets/chat-generic-tool-widget.vue.d.ts +1 -1
  128. package/dist/runtime/messages/components/widgets/chat-grep-widget.d.vue.ts +1 -1
  129. package/dist/runtime/messages/components/widgets/chat-grep-widget.vue.d.ts +1 -1
  130. package/dist/runtime/messages/components/widgets/chat-read-widget.d.vue.ts +1 -1
  131. package/dist/runtime/messages/components/widgets/chat-read-widget.vue.d.ts +1 -1
  132. package/dist/runtime/messages/components/widgets/chat-tela-skill-widget.d.vue.ts +1 -1
  133. package/dist/runtime/messages/components/widgets/chat-tela-skill-widget.vue.d.ts +1 -1
  134. package/dist/runtime/messages/components/widgets/chat-thinking-widget.d.vue.ts +1 -1
  135. package/dist/runtime/messages/components/widgets/chat-thinking-widget.vue.d.ts +1 -1
  136. package/dist/runtime/messages/components/widgets/chat-web-search-widget.d.vue.ts +1 -1
  137. package/dist/runtime/messages/components/widgets/chat-web-search-widget.vue.d.ts +1 -1
  138. package/dist/runtime/messages/components/widgets/chat-workstation-query-widget.d.vue.ts +1 -1
  139. package/dist/runtime/messages/components/widgets/chat-workstation-query-widget.vue.d.ts +1 -1
  140. package/dist/runtime/messages/components/widgets/chat-write-widget.d.vue.ts +1 -1
  141. package/dist/runtime/messages/components/widgets/chat-write-widget.vue.d.ts +1 -1
  142. package/dist/runtime/rendering/components/app-markdown-render.d.vue.ts +2 -2
  143. package/dist/runtime/rendering/components/app-markdown-render.vue.d.ts +2 -2
  144. package/dist/runtime/rendering/components/renderers/artifact-display.d.vue.ts +3 -3
  145. package/dist/runtime/rendering/components/renderers/artifact-display.vue.d.ts +3 -3
  146. package/dist/runtime/rendering/components/renderers/audio-renderer.d.vue.ts +1 -1
  147. package/dist/runtime/rendering/components/renderers/audio-renderer.vue.d.ts +1 -1
  148. package/dist/runtime/rendering/components/renderers/csv-renderer.d.vue.ts +1 -1
  149. package/dist/runtime/rendering/components/renderers/csv-renderer.vue.d.ts +1 -1
  150. package/dist/runtime/rendering/components/renderers/image-renderer.d.vue.ts +1 -1
  151. package/dist/runtime/rendering/components/renderers/image-renderer.vue.d.ts +1 -1
  152. package/dist/runtime/rendering/components/renderers/markdown-renderer.d.vue.ts +1 -1
  153. package/dist/runtime/rendering/components/renderers/markdown-renderer.vue.d.ts +1 -1
  154. package/dist/runtime/rendering/components/renderers/mermaid-diagram.d.vue.ts +1 -1
  155. package/dist/runtime/rendering/components/renderers/mermaid-diagram.vue.d.ts +1 -1
  156. package/dist/runtime/rendering/components/renderers/text-renderer.d.vue.ts +1 -1
  157. package/dist/runtime/rendering/components/renderers/text-renderer.vue.d.ts +1 -1
  158. package/dist/runtime/rendering/components/renderers/video-renderer.d.vue.ts +1 -1
  159. package/dist/runtime/rendering/components/renderers/video-renderer.vue.d.ts +1 -1
  160. package/dist/runtime/shared/components/app-status-toast.d.vue.ts +1 -1
  161. package/dist/runtime/shared/components/app-status-toast.vue.d.ts +1 -1
  162. package/dist/runtime/shared/components/icons/anthropic.d.vue.ts +1 -1
  163. package/dist/runtime/shared/components/icons/anthropic.vue.d.ts +1 -1
  164. package/dist/runtime/shared/components/icons/tela-chat.d.vue.ts +1 -1
  165. package/dist/runtime/shared/components/icons/tela-chat.vue.d.ts +1 -1
  166. package/dist/runtime/shared/components/icons/tela-wordmark.d.vue.ts +1 -1
  167. package/dist/runtime/shared/components/icons/tela-wordmark.vue.d.ts +1 -1
  168. package/dist/runtime/types/embed.d.ts +1 -1
  169. package/dist/runtime/usage/components/chat-usage-view.d.vue.ts +1 -1
  170. package/dist/runtime/usage/components/chat-usage-view.vue.d.ts +1 -1
  171. package/dist/runtime/workspace/composables/workspace-settings.d.ts +1 -42
  172. package/dist/types.d.mts +1 -1
  173. package/package.json +15 -15
package/README.md CHANGED
@@ -82,7 +82,7 @@ Set `chatNuxt.validateConfig` to `'warn'` to log a warning when `chatApiUrl` is
82
82
 
83
83
  UI features are configured per component instance, not at the module level: the embed takes a `:features` prop (`ChatFeatureConfig`) and `<ChatConfigurationModal>` takes `show-credentials-tab`.
84
84
 
85
- ### Auth modes
85
+ ### 3. Auth modes
86
86
 
87
87
  `@meistrari/chat-nuxt` can run with either auth mode exposed by `@meistrari/auth-nuxt`:
88
88
 
@@ -120,7 +120,7 @@ The chat workspace is resolved from the authenticated `activeOrganization` provi
120
120
 
121
121
  `<MeistrariChatEmbed />` has two mutually exclusive runtimes:
122
122
 
123
- - **Default chat mode** uses the Chat API and the workspace's configured Tela agent. Runtime configuration, entitlements, and workspace-specific agent selection are owned by `@meistrari/chat-api`.
123
+ - **Default chat mode** uses the Chat API and the workspace's configured Tela agent. Runtime configuration, entitlements, and workspace-specific agent selection are owned by `@meistrari/chat-api`. Workspaces whose legacy customization has not been migrated to a Tela agent are not ready to chat: sends fail with `workspace_agent_not_ready` and the embed surfaces guidance pointing to the settings modal, where the **Agente** tab offers a one-click agent creation.
124
124
  - **Tela agent mode** uses a configured Tela agent directly. Pass `telaAgentId`; the embed sends user messages to `POST /agent/:id/run`, polls `GET /agent/sessions/:sessionId`, and ends sessions with `DELETE /agent/sessions/:sessionId`.
125
125
 
126
126
  ```vue
@@ -183,12 +183,21 @@ Key props for embedding:
183
183
  All prop, feature-flag, and event payload types are importable from the package root (or the `types/embed` subpath):
184
184
 
185
185
  ```ts
186
- import type { ChatActionPayload, ChatFeatureConfig, MeistrariChatEmbedProps } from '@meistrari/chat-nuxt'
186
+ import type {
187
+ ChatActionPayload,
188
+ ChatFeatureConfig,
189
+ MeistrariChatEmbedProps,
190
+ MessageFeedbackConfig,
191
+ MessageFeedbackPayload,
192
+ MessageFeedbackRating,
193
+ } from '@meistrari/chat-nuxt'
187
194
  ```
188
195
 
189
196
  | Prop | Type | Default | Description |
190
197
  |------|------|---------|-------------|
191
198
  | `hideSidebar` | `boolean` | `false` | Hide conversation list sidebar |
199
+ | `sidebar` | `ChatSidebarConfig` | `undefined` | Sidebar layout: `{ position?: 'left' \| 'right', width?: number, bottomHeight?: number }`. `position` picks the edge (default `'left'`); `width` is the sidebar width in pixels (default `240`); `bottomHeight` is the `sidebar-bottom` pane height as a percentage 0–100 of the conversation area (default `50`) |
200
+ | `hideSettings` | `boolean` | `false` | Hide workspace settings actions while keeping the chat header and content unchanged |
192
201
  | `conversationId` | `string \| null` | `null` | Controlled conversation (supports v-model) |
193
202
  | `initialConversationId` | `string \| null` | `null` | Open this conversation on mount |
194
203
  | `conversationScope` | `string \| null` | `null` | Isolate conversation history by technical scope within the current workspace and runtime |
@@ -198,8 +207,12 @@ import type { ChatActionPayload, ChatFeatureConfig, MeistrariChatEmbedProps } fr
198
207
  | `workspaceSettings` | `WorkspaceSettings \| null` | `null` | Override settings from host app |
199
208
  | `user` | `ChatActor \| null` | `null` | Override current user display info |
200
209
  | `features` | `Partial<ChatFeatureConfig>` | `{}` | Toggle optional features |
201
- | `loadingMessages` | `string[] \| null` | Default chat messages | Override pending-response messages |
210
+ | `loadingMessages` | `readonly string[] \| null` | Default chat messages | Override pending-response messages |
202
211
  | `loadingMessagesMode` | `'ordered' \| 'random' \| null` | `'ordered'` | Show custom messages sequentially or randomly |
212
+ | `customComponents` | `Record<string, Component>` | `undefined` | Custom markdown renderers keyed by markdown node or tag name |
213
+ | `customHtmlTags` | `readonly string[]` | `undefined` | Extra HTML tags allowed by the markdown renderer |
214
+ | `feedbackConfig` | `MessageFeedbackConfig \| null` | `undefined` | Enables 👍/👎 feedback on assistant messages; providing the prop (even `{}`) shows the controls |
215
+ | `messageFeedback` | `Record<string, MessageFeedbackRating> \| null` | `undefined` | Host-persisted votes keyed by message id; when provided, it is the single source of truth for the selected thumbs |
203
216
 
204
217
  `loadingMessagesMode` only applies when `loadingMessages` has at least one non-empty message.
205
218
 
@@ -224,6 +237,22 @@ Scoped embeds only see conversations created with the same scope. Unscoped embed
224
237
  | Event | Payload | Description |
225
238
  |-------|---------|-------------|
226
239
  | `update:conversationId` | `string \| null` | Active conversation changed |
240
+ | `action` | `ChatActionPayload` | Custom action triggered from chat content (`{ name, data, messageId? }`) |
241
+ | `messageFeedback` | `MessageFeedbackPayload` | User voted on an assistant message (see [Message Feedback](#optional-message-feedback)) |
242
+
243
+ **Slots:**
244
+
245
+ | Slot | Description |
246
+ |------|-------------|
247
+ | `sidebar-bottom` | Splits the desktop sidebar into two panes and renders your content in the bottom one, below the conversation list. Each pane scrolls independently. Size it with `sidebar.bottomHeight` (percentage, default `50`). Not rendered on mobile or when `hideSidebar` is set. |
248
+
249
+ ```vue
250
+ <MeistrariChatEmbed :sidebar="{ position: 'right', width: 300, bottomHeight: 30 }">
251
+ <template #sidebar-bottom>
252
+ <MyPinnedDocuments />
253
+ </template>
254
+ </MeistrariChatEmbed>
255
+ ```
227
256
 
228
257
  ## Optional: Feature Flags
229
258
 
@@ -300,11 +329,55 @@ const features = computed(() => ({
300
329
  </template>
301
330
  ```
302
331
 
332
+ ## Optional: Message Feedback
333
+
334
+ Assistant messages can carry 👍/👎 controls. The package renders the controls and collects the vote; **persistence is owned by the host** — nothing is stored by `chat-nuxt`.
335
+
336
+ Passing `feedbackConfig` (even `{}`) enables the controls:
337
+
338
+ ```vue
339
+ <script setup lang="ts">
340
+ import type { MessageFeedbackPayload, MessageFeedbackRating } from '@meistrari/chat-nuxt'
341
+
342
+ const votes = ref<Record<string, MessageFeedbackRating>>({})
343
+
344
+ async function onFeedback(payload: MessageFeedbackPayload) {
345
+ // payload: { conversationId, messageId, rating, reasons, comment }
346
+ await saveVoteToMyBackend(payload)
347
+ votes.value = { ...votes.value, [payload.messageId]: payload.rating }
348
+ }
349
+ </script>
350
+
351
+ <template>
352
+ <MeistrariChatEmbed
353
+ :feedback-config="{
354
+ negativeReasons: ['Resposta incorreta', 'Fora do tema', 'Incompleta'],
355
+ requireReason: true,
356
+ }"
357
+ :message-feedback="votes"
358
+ @message-feedback="onFeedback"
359
+ />
360
+ </template>
361
+ ```
362
+
363
+ `MessageFeedbackConfig` fields:
364
+
365
+ | Field | Effect |
366
+ |-------|--------|
367
+ | `positiveReasons` | Reason chips offered on a positive vote. Empty or omitted: 👍 submits directly |
368
+ | `negativeReasons` | Reason chips offered on a negative vote |
369
+ | `requireReason` | Blocks a bare negative vote: requires at least one reason chip when `negativeReasons` are configured, otherwise a non-empty comment |
370
+
371
+ `messageFeedback` controls which thumb renders selected:
372
+
373
+ - **Provided** (controlled): only host-persisted votes render. Update the map as `message-feedback` events are saved — optimistically or after persistence.
374
+ - **Omitted**: votes are kept in component-local state only.
375
+
303
376
  ## Optional: Custom Workspace Settings
304
377
 
305
- By default, workspace settings (system prompt, context files, tools) are managed via the module's built-in UI and persisted by the Chat API service.
378
+ Agent-level configuration (system prompt, context files, tools, skills) lives in the workspace's Tela agent and is edited in the Tela app. The module's built-in settings UI manages knowledge sources (Tela workstations) and workspace credentials, persisted by the Chat API service.
306
379
 
307
- To override them, pass settings directly from your host app:
380
+ To override the settings the embed reads, pass them directly from your host app:
308
381
 
309
382
  ```vue
310
383
  <MeistrariChatEmbed
@@ -315,7 +388,6 @@ To override them, pass settings directly from your host app:
315
388
  canvasTools: null,
316
389
  knowledgeSources: null,
317
390
  externalSkills: null,
318
- createdAt: new Date(),
319
391
  updatedAt: new Date(),
320
392
  }"
321
393
  />
@@ -331,16 +403,22 @@ A skill that calls a host backend must implement its own callback contract with
331
403
 
332
404
  ## `<ChatConfigurationModal>`
333
405
 
334
- A reusable settings modal (system prompt, context files, Tela workstations, Tela skills, external skills, credentials) that any host app can open from any button. By default, the modal uses `useWorkspaceSettings()` to fetch and persist settings. If the host passes the `settings` prop, the host owns workspace settings state and persistence.
406
+ A reusable workspace settings modal that any host app can open from any button. It has three tabs:
407
+
408
+ - **`agent`** (Agente) — the workspace's Tela agent status. Shows the generic-chat state, the dedicated agent (id, copy, open in Tela), or — for workspaces whose legacy customization has not been migrated — a setup-required warning with a create-agent action. Agent configuration itself (system prompt, context files, tools, skills) is edited in the Tela app, not here.
409
+ - **`knowledge-sources`** (Tela workstations) — the workstations injected as knowledge sources into new chat sessions.
410
+ - **`credentials`** (Credenciais) — workspace credentials, shown when `showCredentialsTab` is set.
411
+
412
+ By default, the modal uses `useWorkspaceSettings()` to fetch and persist settings. If the host passes the `settings` prop, the host owns workspace settings state and persistence.
335
413
 
336
414
  ```vue
337
415
  <script setup lang="ts">
338
416
  import type { ChatConfigurationTab } from '@meistrari/chat-nuxt/types/workspace-settings'
339
417
 
340
418
  const open = ref(false)
341
- const initialTab = ref<ChatConfigurationTab>('personalization')
419
+ const initialTab = ref<ChatConfigurationTab>('agent')
342
420
 
343
- function openSettings(tab: ChatConfigurationTab = 'personalization') {
421
+ function openSettings(tab: ChatConfigurationTab = 'agent') {
344
422
  initialTab.value = tab
345
423
  open.value = true
346
424
  }
@@ -362,16 +440,16 @@ function openSettings(tab: ChatConfigurationTab = 'personalization') {
362
440
  |------|------|---------|-------------|
363
441
  | `open` | `boolean` | — | Modal visibility (supports `v-model:open`) |
364
442
  | `settings` | `WorkspaceSettings \| null` | `undefined` | Optional host-controlled settings. Omit this prop to let the modal fetch and persist via `useWorkspaceSettings()`; pass `null` or a settings object to make the host own state and persistence |
365
- | `initialTab` | `ChatConfigurationTab` | `'personalization'` | Tab to open on |
443
+ | `initialTab` | `ChatConfigurationTab` | `'agent'` | Tab to open on: `'agent' \| 'knowledge-sources' \| 'credentials'` |
366
444
  | `saving` | `boolean` | `false` | Host-controlled spinner/disable while persistence is in flight |
367
445
  | `showCredentialsTab` | `boolean` | `false` | Show the workspace credentials tab |
368
446
 
369
447
  | Event | Payload | Description |
370
448
  |-------|---------|-------------|
371
449
  | `update:open` | `boolean` | Modal open state changed |
372
- | `save` | `ChatConfigurationSavePayload` | Emitted only when the host passes `settings`; diff of the changed fields plus `onSaved`; host persists (e.g. via `useWorkspaceSettings().updateSettings()`), calls `onSaved` after persistence succeeds, and closes the modal |
450
+ | `save` | `ChatConfigurationSavePayload` | Emitted only when the host passes `settings`; carries the knowledge-source updates plus `onSaved`; host persists (e.g. via `useWorkspaceSettings().updateSettings()`), calls `onSaved` after persistence succeeds, and closes the modal |
373
451
 
374
- The `credentials` tab manages its own data via the module's `/api/workspace/credentials` endpoints and is never part of the `save` payload.
452
+ Only the knowledge-sources tab produces a `save` payload. The `agent` tab acts immediately through the module's `/api/workspace/agent` endpoints, and the `credentials` tab manages its own data via `/api/workspace/credentials` neither is part of the `save` payload.
375
453
 
376
454
  ## What's Included
377
455
 
@@ -388,17 +466,24 @@ Installing `@meistrari/chat-nuxt` installs the runtime packages used by the laye
388
466
  | Package | Version | Purpose |
389
467
  |---------|---------|---------|
390
468
  | `@meistrari/auth-nuxt` | `3.5.0` | Authentication (required) |
469
+ | `@meistrari/logger` | `^2.1.3` | Structured logging for the server proxy routes |
391
470
  | `@meistrari/tela-build` | `^1.30.0` | UI component library (Nuxt layer) |
392
471
  | `@sentry/nuxt` | `^10.0.0` | Client-side error capture used by chat composables |
393
- | `@iconify/vue` | `^5.0.0` | Icon rendering support |
472
+ | `@iconify/vue` + `@iconify-json/ph` | `^5.0.0` / `^1.2.2` | Icon rendering support (Phosphor set) |
394
473
  | `@vueuse/core` | `^12.8.0` | Runtime composables used by chat UI |
395
474
  | `@vueuse/components` | `^12.8.0` | VueUse component peer expected by the shared runtime |
475
+ | `beautiful-mermaid` + `mermaid` | `^1.1.3` / `^11.13.0` | Mermaid diagram rendering in markdown |
476
+ | `dompurify` | `^3.3.2` | HTML sanitization for rendered markdown |
396
477
  | `h3` | `^1.15.0` | Server route utilities provided by Nuxt/Nitro |
397
478
  | `markstream-vue` | `0.0.3-beta.6` | Markdown streaming renderer |
398
479
  | `motion` | `^11.13.0` | Animation component runtime |
399
480
  | `nitropack` | `^2.10.0` | Runtime config and task utilities provided by Nuxt/Nitro |
481
+ | `pdfjs-dist` | `^5.4.530` | PDF file previews |
482
+ | `posthog-js` | `^1.364.2` | Optional PostHog feature-flag helper |
400
483
  | `virtua` | `^0.42.0` | Virtualized list runtime expected by shared UI |
401
484
  | `vue-i18n` | `^11.0.0` | Internationalization runtime expected by shared UI |
485
+ | `xlsx` | `^0.18.5` | Spreadsheet file previews |
486
+ | `zod` | `^4.1.13` | Schema validation for API payloads |
402
487
 
403
488
  Peer dependencies:
404
489
 
package/dist/module.d.mts CHANGED
@@ -1,5 +1,4 @@
1
- import * as _nuxt_schema from '@nuxt/schema';
2
- export { ChatActionPayload, ChatActor, ChatEmbedSharedProps, ChatFeatureConfig, DefaultChatEmbedProps, MeistrariChatEmbedProps, MessageFeedbackConfig, MessageFeedbackPayload, MessageFeedbackRating, TelaAgentChatEmbedProps, TelaAgentExecutionInput } from '../dist/runtime/types/embed.js';
1
+ export { ChatActionPayload, ChatActor, ChatEmbedSharedProps, ChatFeatureConfig, ChatSidebarConfig, DefaultChatEmbedProps, MeistrariChatEmbedProps, MessageFeedbackConfig, MessageFeedbackPayload, MessageFeedbackRating, TelaAgentChatEmbedProps, TelaAgentExecutionInput } from '../dist/runtime/types/embed.js';
3
2
 
4
3
  type ChatNuxtConfigValidationMode = false | 'warn' | 'error';
5
4
 
@@ -12,7 +11,7 @@ interface ChatNuxtModuleOptions {
12
11
  */
13
12
  validateConfig?: ChatNuxtConfigValidationMode;
14
13
  }
15
- declare const _default: _nuxt_schema.NuxtModule<ChatNuxtModuleOptions, ChatNuxtModuleOptions, false>;
14
+ declare const _default: any;
16
15
 
17
16
  export { _default as default };
18
17
  export type { ChatNuxtModuleOptions };
package/dist/module.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@meistrari/chat-nuxt",
3
3
  "configKey": "chatNuxt",
4
- "version": "3.1.0",
4
+ "version": "3.2.0",
5
5
  "builder": {
6
6
  "@nuxt/module-builder": "1.0.2",
7
7
  "unbuild": "unknown"
@@ -1,3 +1,3 @@
1
- declare const __VLS_export: import("@vue/runtime-core").DefineComponent<{}, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {}, string, import("@vue/runtime-core").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, true, {}, any>;
1
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
2
  declare const _default: typeof __VLS_export;
3
3
  export default _default;
@@ -1,3 +1,3 @@
1
- declare const __VLS_export: import("@vue/runtime-core").DefineComponent<{}, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {}, string, import("@vue/runtime-core").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, true, {}, any>;
1
+ declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
2
  declare const _default: typeof __VLS_export;
3
3
  export default _default;
@@ -7,20 +7,20 @@ type __VLS_Props = {
7
7
  userImage?: string;
8
8
  selectConversation?: (id: string) => void | Promise<void>;
9
9
  };
10
- declare const __VLS_export: import("@vue/runtime-core").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {} & {
10
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
11
11
  delete: (id: string) => any;
12
12
  rename: (id: string, title: string) => any;
13
13
  duplicate: (id: string) => any;
14
14
  export: (id: string) => any;
15
15
  dragStart: (id: string) => any;
16
16
  dragEnd: () => any;
17
- }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props> & Readonly<{
17
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
18
18
  onDelete?: ((id: string) => any) | undefined;
19
19
  onRename?: ((id: string, title: string) => any) | undefined;
20
20
  onDuplicate?: ((id: string) => any) | undefined;
21
21
  onExport?: ((id: string) => any) | undefined;
22
22
  onDragStart?: ((id: string) => any) | undefined;
23
23
  onDragEnd?: (() => any) | undefined;
24
- }>, {}, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
24
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
25
25
  declare const _default: typeof __VLS_export;
26
26
  export default _default;
@@ -7,20 +7,20 @@ type __VLS_Props = {
7
7
  userImage?: string;
8
8
  selectConversation?: (id: string) => void | Promise<void>;
9
9
  };
10
- declare const __VLS_export: import("@vue/runtime-core").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {} & {
10
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
11
11
  delete: (id: string) => any;
12
12
  rename: (id: string, title: string) => any;
13
13
  duplicate: (id: string) => any;
14
14
  export: (id: string) => any;
15
15
  dragStart: (id: string) => any;
16
16
  dragEnd: () => any;
17
- }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props> & Readonly<{
17
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
18
18
  onDelete?: ((id: string) => any) | undefined;
19
19
  onRename?: ((id: string, title: string) => any) | undefined;
20
20
  onDuplicate?: ((id: string) => any) | undefined;
21
21
  onExport?: ((id: string) => any) | undefined;
22
22
  onDragStart?: ((id: string) => any) | undefined;
23
23
  onDragEnd?: (() => any) | undefined;
24
- }>, {}, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
24
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
25
25
  declare const _default: typeof __VLS_export;
26
26
  export default _default;
@@ -9,6 +9,6 @@ type __VLS_Props = {
9
9
  startConversation?: (groupId?: string | null) => void | Promise<void>;
10
10
  loading?: boolean;
11
11
  };
12
- declare const __VLS_export: import("@vue/runtime-core").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {}, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
12
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
13
13
  declare const _default: typeof __VLS_export;
14
14
  export default _default;
@@ -9,6 +9,6 @@ type __VLS_Props = {
9
9
  startConversation?: (groupId?: string | null) => void | Promise<void>;
10
10
  loading?: boolean;
11
11
  };
12
- declare const __VLS_export: import("@vue/runtime-core").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {}, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
12
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
13
13
  declare const _default: typeof __VLS_export;
14
14
  export default _default;
@@ -2,6 +2,6 @@ type __VLS_Props = {
2
2
  label?: string;
3
3
  variant?: 'empty-state';
4
4
  };
5
- declare const __VLS_export: import("@vue/runtime-core").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {}, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
5
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
6
  declare const _default: typeof __VLS_export;
7
7
  export default _default;
@@ -2,6 +2,6 @@ type __VLS_Props = {
2
2
  label?: string;
3
3
  variant?: 'empty-state';
4
4
  };
5
- declare const __VLS_export: import("@vue/runtime-core").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {}, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
5
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
6
  declare const _default: typeof __VLS_export;
7
7
  export default _default;
@@ -7,17 +7,17 @@ type __VLS_ModelProps = {
7
7
  modelValue: string;
8
8
  };
9
9
  type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
10
- declare const __VLS_export: import("@vue/runtime-core").DefineComponent<__VLS_PublicProps, {
10
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {
11
11
  focusInput: typeof focusInput;
12
- }, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
12
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
13
13
  "update:modelValue": (value: string) => any;
14
14
  } & {
15
15
  submit: () => any;
16
16
  cancel: () => any;
17
- }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
17
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
18
18
  onSubmit?: (() => any) | undefined;
19
19
  onCancel?: (() => any) | undefined;
20
20
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
21
- }>, {}, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
21
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
22
22
  declare const _default: typeof __VLS_export;
23
23
  export default _default;
@@ -7,17 +7,17 @@ type __VLS_ModelProps = {
7
7
  modelValue: string;
8
8
  };
9
9
  type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
10
- declare const __VLS_export: import("@vue/runtime-core").DefineComponent<__VLS_PublicProps, {
10
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {
11
11
  focusInput: typeof focusInput;
12
- }, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
12
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
13
13
  "update:modelValue": (value: string) => any;
14
14
  } & {
15
15
  submit: () => any;
16
16
  cancel: () => any;
17
- }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
17
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
18
18
  onSubmit?: (() => any) | undefined;
19
19
  onCancel?: (() => any) | undefined;
20
20
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
21
- }>, {}, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
21
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
22
22
  declare const _default: typeof __VLS_export;
23
23
  export default _default;
@@ -5,12 +5,12 @@ type __VLS_ModelProps = {
5
5
  modelValue: string;
6
6
  };
7
7
  type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
8
- declare const __VLS_export: import("@vue/runtime-core").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
8
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
9
9
  "update:modelValue": (value: string) => any;
10
- }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
10
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
11
11
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
12
12
  }>, {
13
13
  placeholder: string;
14
- }, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
14
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
15
15
  declare const _default: typeof __VLS_export;
16
16
  export default _default;
@@ -5,12 +5,12 @@ type __VLS_ModelProps = {
5
5
  modelValue: string;
6
6
  };
7
7
  type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
8
- declare const __VLS_export: import("@vue/runtime-core").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
8
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
9
9
  "update:modelValue": (value: string) => any;
10
- }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
10
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
11
11
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
12
12
  }>, {
13
13
  placeholder: string;
14
- }, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
14
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
15
15
  declare const _default: typeof __VLS_export;
16
16
  export default _default;
@@ -1,31 +1,13 @@
1
1
  type __VLS_ModelProps = {
2
2
  modelValue?: boolean;
3
3
  };
4
- declare const __VLS_export: import("@vue/runtime-core").DefineComponent<__VLS_ModelProps, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
4
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
5
5
  "update:modelValue": (value: boolean | undefined) => any;
6
6
  } & {
7
- create: (canvasTools: {
8
- canvasId: string;
9
- name: string;
10
- description: string;
11
- variables?: Record<string, {
12
- name: string;
13
- description: string;
14
- type: "file" | "text";
15
- }> | undefined;
16
- }[]) => any;
17
- }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
7
+ create: (canvasTools: CanvasTool[]) => any;
8
+ }, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
18
9
  "onUpdate:modelValue"?: ((value: boolean | undefined) => any) | undefined;
19
- onCreate?: ((canvasTools: {
20
- canvasId: string;
21
- name: string;
22
- description: string;
23
- variables?: Record<string, {
24
- name: string;
25
- description: string;
26
- type: "file" | "text";
27
- }> | undefined;
28
- }[]) => any) | undefined;
29
- }>, {}, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
10
+ onCreate?: ((canvasTools: CanvasTool[]) => any) | undefined;
11
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
30
12
  declare const _default: typeof __VLS_export;
31
13
  export default _default;
@@ -1,31 +1,13 @@
1
1
  type __VLS_ModelProps = {
2
2
  modelValue?: boolean;
3
3
  };
4
- declare const __VLS_export: import("@vue/runtime-core").DefineComponent<__VLS_ModelProps, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {
4
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
5
5
  "update:modelValue": (value: boolean | undefined) => any;
6
6
  } & {
7
- create: (canvasTools: {
8
- canvasId: string;
9
- name: string;
10
- description: string;
11
- variables?: Record<string, {
12
- name: string;
13
- description: string;
14
- type: "file" | "text";
15
- }> | undefined;
16
- }[]) => any;
17
- }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
7
+ create: (canvasTools: CanvasTool[]) => any;
8
+ }, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
18
9
  "onUpdate:modelValue"?: ((value: boolean | undefined) => any) | undefined;
19
- onCreate?: ((canvasTools: {
20
- canvasId: string;
21
- name: string;
22
- description: string;
23
- variables?: Record<string, {
24
- name: string;
25
- description: string;
26
- type: "file" | "text";
27
- }> | undefined;
28
- }[]) => any) | undefined;
29
- }>, {}, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
10
+ onCreate?: ((canvasTools: CanvasTool[]) => any) | undefined;
11
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
30
12
  declare const _default: typeof __VLS_export;
31
13
  export default _default;
@@ -115,64 +115,7 @@ export declare function useConversationList(options: ConversationListOptions): {
115
115
  handleDragLeave: (event: DragEvent, groupId: string | null) => void;
116
116
  isDropTarget: (groupId: string | null) => boolean;
117
117
  getConversationItemProps: (conversation: DeepReadonly<Conversation>) => {
118
- conversation: {
119
- readonly id: string;
120
- readonly workspaceId: string;
121
- readonly groupId: string | null;
122
- readonly userId: string;
123
- readonly title: string;
124
- readonly threadSessionId: string | null;
125
- readonly telaAgentId: string | null;
126
- readonly conversationScope: string | null;
127
- readonly model: string | null;
128
- readonly appliedSettingsAt: Date | null;
129
- readonly appliedSettingsSnapshot: {
130
- readonly systemMessage: string | null;
131
- readonly contextFiles: readonly {
132
- readonly url: string;
133
- readonly name: string;
134
- readonly vaultReference?: string | undefined;
135
- readonly mimeType?: string | undefined;
136
- }[] | null;
137
- readonly canvasTools: readonly {
138
- readonly canvasId: string;
139
- readonly name: string;
140
- readonly description: string;
141
- readonly variables?: {
142
- readonly [x: string]: {
143
- readonly name: string;
144
- readonly description: string;
145
- readonly type: "file" | "text";
146
- };
147
- } | undefined;
148
- }[] | null;
149
- readonly knowledgeSources: readonly {
150
- readonly type: "workstation";
151
- readonly id: string;
152
- readonly name: string;
153
- readonly projectId: string;
154
- readonly description?: string | undefined;
155
- readonly taskCount?: number | undefined;
156
- }[] | null;
157
- readonly externalSkills: readonly {
158
- readonly ref: string;
159
- readonly name: string;
160
- readonly description: string;
161
- readonly runtime: string;
162
- readonly allowedTools: readonly string[];
163
- readonly isPublic: boolean;
164
- readonly addedBy: {
165
- readonly userId: string;
166
- readonly username: string;
167
- };
168
- readonly addedAt: string;
169
- }[] | null;
170
- readonly updatedAt: string | Date;
171
- } | null;
172
- readonly createdBy: string | null;
173
- readonly createdAt: Date;
174
- readonly updatedAt: Date;
175
- };
118
+ conversation: any;
176
119
  active: boolean;
177
120
  draggable: boolean;
178
121
  userImage: string | undefined;
@@ -8,16 +8,16 @@ type __VLS_Props = {
8
8
  saving?: boolean;
9
9
  showCredentialsTab?: boolean;
10
10
  };
11
- declare const __VLS_export: import("@vue/runtime-core").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {} & {
11
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
12
12
  save: (payload: ChatConfigurationSavePayload) => any;
13
13
  "update:open": (value: boolean) => any;
14
- }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props> & Readonly<{
14
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
15
15
  onSave?: ((payload: ChatConfigurationSavePayload) => any) | undefined;
16
16
  "onUpdate:open"?: ((value: boolean) => any) | undefined;
17
17
  }>, {
18
18
  saving: boolean;
19
19
  initialTab: ChatConfigurationTab;
20
20
  showCredentialsTab: boolean;
21
- }, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
21
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
22
22
  declare const _default: typeof __VLS_export;
23
23
  export default _default;
@@ -8,16 +8,16 @@ type __VLS_Props = {
8
8
  saving?: boolean;
9
9
  showCredentialsTab?: boolean;
10
10
  };
11
- declare const __VLS_export: import("@vue/runtime-core").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("@vue/runtime-core").ComponentOptionsMixin, import("@vue/runtime-core").ComponentOptionsMixin, {} & {
11
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
12
12
  save: (payload: ChatConfigurationSavePayload) => any;
13
13
  "update:open": (value: boolean) => any;
14
- }, string, import("@vue/runtime-core").PublicProps, Readonly<__VLS_Props> & Readonly<{
14
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
15
15
  onSave?: ((payload: ChatConfigurationSavePayload) => any) | undefined;
16
16
  "onUpdate:open"?: ((value: boolean) => any) | undefined;
17
17
  }>, {
18
18
  saving: boolean;
19
19
  initialTab: ChatConfigurationTab;
20
20
  showCredentialsTab: boolean;
21
- }, {}, {}, {}, string, import("@vue/runtime-core").ComponentProvideOptions, false, {}, any>;
21
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
22
22
  declare const _default: typeof __VLS_export;
23
23
  export default _default;