@meistrari/chat-nuxt 1.4.0 → 1.5.1

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 (90) hide show
  1. package/README.md +51 -16
  2. package/dist/module.json +1 -1
  3. package/dist/module.mjs +24 -9
  4. package/dist/runtime/components/MeistrariChatEmbed.d.vue.ts +2 -18
  5. package/dist/runtime/components/MeistrariChatEmbed.vue +22 -4
  6. package/dist/runtime/components/MeistrariChatEmbed.vue.d.ts +2 -18
  7. package/dist/runtime/components/chat/message-input.d.vue.ts +30 -4
  8. package/dist/runtime/components/chat/message-input.vue +268 -24
  9. package/dist/runtime/components/chat/message-input.vue.d.ts +30 -4
  10. package/dist/runtime/composables/useChat.d.ts +3 -5
  11. package/dist/runtime/composables/useChat.js +18 -4
  12. package/dist/runtime/composables/useChatApi.js +4 -0
  13. package/dist/runtime/composables/useConversations.js +8 -2
  14. package/dist/runtime/composables/useEmbedConfig.d.ts +7 -1
  15. package/dist/runtime/composables/useEmbedConfig.js +8 -0
  16. package/dist/runtime/composables/useFeatureFlags.d.ts +1 -2
  17. package/dist/runtime/composables/useTelaAgentMetadata.d.ts +8 -0
  18. package/dist/runtime/composables/useTelaAgentMetadata.js +65 -0
  19. package/dist/runtime/composables/useWorkspaceSettings.d.ts +1 -19
  20. package/dist/runtime/composables/useWorkspaceSettings.js +24 -5
  21. package/dist/runtime/embed/components/ChatConfigurationModal.d.vue.ts +1 -1
  22. package/dist/runtime/embed/components/ChatConfigurationModal.vue.d.ts +1 -1
  23. package/dist/runtime/embed/components/ChatEmbed.d.vue.ts +3 -23
  24. package/dist/runtime/embed/components/ChatEmbed.vue +34 -9
  25. package/dist/runtime/embed/components/ChatEmbed.vue.d.ts +3 -23
  26. package/dist/runtime/embed/components/ChatEmbedInner.vue +50 -12
  27. package/dist/runtime/plugins/markstream.d.ts +1 -1
  28. package/dist/runtime/plugins/markstream.js +1 -1
  29. package/dist/runtime/server/api/chat/workspace/settings.patch.d.ts +2 -0
  30. package/dist/runtime/server/api/chat/workspace/settings.patch.js +8 -0
  31. package/dist/runtime/server/api/conversations/[id]/cancel.post.d.ts +1 -1
  32. package/dist/runtime/server/api/conversations/[id]/cancel.post.js +37 -17
  33. package/dist/runtime/server/api/conversations/[id]/clear.post.js +28 -13
  34. package/dist/runtime/server/api/conversations/[id]/duplicate.post.js +11 -13
  35. package/dist/runtime/server/api/conversations/[id]/files.get.js +5 -7
  36. package/dist/runtime/server/api/conversations/[id]/index.delete.js +13 -12
  37. package/dist/runtime/server/api/conversations/[id]/index.get.js +6 -13
  38. package/dist/runtime/server/api/conversations/[id]/index.patch.js +11 -10
  39. package/dist/runtime/server/api/conversations/[id]/messages/[messageId]/retry.post.js +46 -80
  40. package/dist/runtime/server/api/conversations/[id]/messages/index.get.d.ts +1 -14
  41. package/dist/runtime/server/api/conversations/[id]/messages/index.get.js +81 -187
  42. package/dist/runtime/server/api/conversations/[id]/messages/index.post.js +68 -86
  43. package/dist/runtime/server/api/conversations/[id]/usage.get.js +4 -8
  44. package/dist/runtime/server/api/conversations/generate-title.post.js +4 -3
  45. package/dist/runtime/server/api/conversations/index.get.js +5 -4
  46. package/dist/runtime/server/api/conversations/index.post.js +5 -4
  47. package/dist/runtime/server/api/tela/agents/[id].get.d.ts +6 -0
  48. package/dist/runtime/server/api/tela/agents/[id].get.js +25 -0
  49. package/dist/runtime/server/api/workspace/settings.patch.js +3 -82
  50. package/dist/runtime/server/db/schema/conversations.d.ts +17 -0
  51. package/dist/runtime/server/db/schema/conversations.js +3 -1
  52. package/dist/runtime/server/db/schema/workspace-settings.d.ts +1 -1
  53. package/dist/runtime/server/utils/chat-context.d.ts +5 -0
  54. package/dist/runtime/server/utils/chat-context.js +20 -0
  55. package/dist/runtime/server/utils/conversation-agent-turn.d.ts +39 -0
  56. package/dist/runtime/server/utils/conversation-agent-turn.js +170 -0
  57. package/dist/runtime/server/utils/conversation-message-files.d.ts +10 -0
  58. package/dist/runtime/server/utils/conversation-message-files.js +77 -0
  59. package/dist/runtime/server/utils/conversation-message-sync.d.ts +31 -0
  60. package/dist/runtime/server/utils/conversation-message-sync.js +132 -0
  61. package/dist/runtime/server/utils/conversation-scope.d.ts +2 -0
  62. package/dist/runtime/server/utils/conversation-scope.js +12 -0
  63. package/dist/runtime/server/utils/tela-agent-api.d.ts +29 -0
  64. package/dist/runtime/server/utils/tela-agent-api.js +107 -0
  65. package/dist/runtime/server/utils/tela-agent-session.d.ts +48 -0
  66. package/dist/runtime/server/utils/tela-agent-session.js +350 -0
  67. package/dist/runtime/server/utils/workspace-settings-update.d.ts +16 -0
  68. package/dist/runtime/server/utils/workspace-settings-update.js +84 -0
  69. package/dist/runtime/types/embed.d.ts +29 -0
  70. package/dist/runtime/types/embed.js +0 -0
  71. package/dist/runtime/types/tela-agent.d.ts +243 -0
  72. package/dist/runtime/types/tela-agent.js +98 -0
  73. package/dist/runtime/types/workspace-settings-data.d.ts +19 -0
  74. package/dist/runtime/types/workspace-settings-data.js +0 -0
  75. package/dist/runtime/types/workspace-settings.d.ts +1 -1
  76. package/dist/runtime/utils/agent-input-readiness.d.ts +14 -0
  77. package/dist/runtime/utils/agent-input-readiness.js +15 -0
  78. package/dist/runtime/utils/features.d.ts +9 -0
  79. package/dist/runtime/utils/features.js +5 -4
  80. package/dist/runtime/utils/file.js +46 -7
  81. package/dist/runtime/utils/markdown-nodes.d.ts +1 -0
  82. package/dist/runtime/utils/markdown-nodes.js +6 -0
  83. package/dist/runtime/utils/tela-chat.d.ts +6 -0
  84. package/dist/runtime/utils/tela-chat.js +12 -1
  85. package/drizzle/0014_faulty_lake.sql +2 -0
  86. package/drizzle/meta/0014_snapshot.json +732 -0
  87. package/drizzle/meta/_journal.json +7 -0
  88. package/package.json +1 -1
  89. package/dist/runtime/types/feature-flags.d.ts +0 -7
  90. package/dist/runtime/types/feature-flags.js +0 -6
package/README.md CHANGED
@@ -141,6 +141,30 @@ To explicitly opt into pglite at a custom path: `databaseUrl: 'pglite:/var/data/
141
141
 
142
142
  The chat workspace is resolved from the authenticated `activeOrganization` provided by `@meistrari/auth-nuxt`.
143
143
 
144
+ ### Chat runtime modes
145
+
146
+ `<MeistrariChatEmbed />` has two mutually exclusive runtimes:
147
+
148
+ - **Default chat mode** uses the Agent API, workspace settings, model selection, optional feature flags, and the authenticated workspace.
149
+ - **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`.
150
+
151
+ ```vue
152
+ <MeistrariChatEmbed tela-agent-id="agent_123" />
153
+ ```
154
+
155
+ Host apps can also provide Tela agent inputs directly. When `telaAgentInputs` is non-null, the chat sends those inputs with each agent run and does not render the agent variables panel.
156
+
157
+ ```vue
158
+ <MeistrariChatEmbed
159
+ tela-agent-id="agent_123"
160
+ :tela-agent-inputs="[
161
+ { type: 'text', name: 'customer_id', content: customerId },
162
+ ]"
163
+ />
164
+ ```
165
+
166
+ In Tela agent mode, `workspaceSettings`, `features`, and `user` are not accepted by the public prop contract. The Tela agent owns runtime configuration and identity for execution. Model selection and the usage/debug UI surfaces are also hidden.
167
+
144
168
  ## Embedding in Your Layout
145
169
 
146
170
  The main use case: drop the chat inside your existing app UI.
@@ -178,6 +202,8 @@ Key props for embedding:
178
202
  | `hideSidebar` | `boolean` | `false` | Hide conversation list sidebar |
179
203
  | `conversationId` | `string \| null` | `null` | Controlled conversation (supports v-model) |
180
204
  | `initialConversationId` | `string \| null` | `null` | Open this conversation on mount |
205
+ | `telaAgentId` | `string` | — | Use Tela agent mode for this embed |
206
+ | `telaAgentInputs` | `TelaAgentExecutionInput[] \| null` | `undefined` | Inputs sent with each Tela agent run; hides the variables panel when non-null |
181
207
  | `workspaceSettings` | `WorkspaceSettings \| null` | `null` | Override settings from host app |
182
208
  | `user` | `ChatActor \| null` | `null` | Override current user display info |
183
209
  | `features` | `Partial<ChatFeatureConfig>` | `{}` | Toggle optional features |
@@ -192,11 +218,28 @@ Key props for embedding:
192
218
  |-------|---------|-------------|
193
219
  | `update:conversationId` | `string \| null` | Active conversation changed |
194
220
 
195
- ## Optional: Feature Flags (PostHog)
221
+ ## Optional: Feature Flags
196
222
 
197
- Some features are behind PostHog flags (debug modal, usage tab, model selector). To enable them:
223
+ `<MeistrariChatEmbed>` accepts a `:features` prop with four optional toggles. All default to `false`. The host owns the policy — hardcode them, gate by user role, or wire them through a feature-flag provider of your choice.
198
224
 
199
- 1. Add to your `nuxt.config.ts`:
225
+ | Flag | Effect |
226
+ |------|--------|
227
+ | `showUsageTab` | Usage tab in the chat topbar (per-conversation token/cost stats) |
228
+ | `showDebugOption` | Debug entry in the topbar overflow menu |
229
+ | `showModelSelector` | Model picker inside the message input |
230
+ | `showCancelButton` | "Stop generation" button while a response streams |
231
+
232
+ Static example:
233
+
234
+ ```vue
235
+ <MeistrariChatEmbed :features="{ showUsageTab: true, showCancelButton: true }" />
236
+ ```
237
+
238
+ ### With PostHog
239
+
240
+ `chat-nuxt` ships a small PostHog helper for hosts that want to gate flags dynamically. The flag names live in your app — `chat-nuxt` has no opinion about them.
241
+
242
+ 1. Add to `nuxt.config.ts`:
200
243
 
201
244
  ```typescript
202
245
  runtimeConfig: {
@@ -212,8 +255,6 @@ runtimeConfig: {
212
255
 
213
256
  ```vue
214
257
  <script setup lang="ts">
215
- // ... existing imports ...
216
-
217
258
  const { posthogPublicKey, posthogHost, posthogDefaults } = useRuntimeConfig().public
218
259
  const { user, activeOrganization } = useTelaApplicationAuth()
219
260
 
@@ -226,17 +267,17 @@ onMounted(async () => {
226
267
  </script>
227
268
  ```
228
269
 
229
- 3. Pass flags to `<MeistrariChatEmbed>`:
270
+ 3. Thread the flags into the embed:
230
271
 
231
272
  ```vue
232
273
  <script setup lang="ts">
233
- import { FEATURE_FLAGS } from '@meistrari/chat-nuxt/types/feature-flags'
234
-
235
274
  const { isFeatureEnabled } = useFeatureFlags()
236
275
 
237
276
  const features = computed(() => ({
238
- showUsageTab: isFeatureEnabled(FEATURE_FLAGS.ENABLE_USAGE_TAB),
239
- showDebugOption: isFeatureEnabled(FEATURE_FLAGS.ENABLE_DEBUG_MODE),
277
+ showUsageTab: isFeatureEnabled('enable-usage-tab'),
278
+ showDebugOption: isFeatureEnabled('enable-debug-mode'),
279
+ showModelSelector: isFeatureEnabled('enable-model-selector'),
280
+ showCancelButton: isFeatureEnabled('enable-cancel-generation'),
240
281
  }))
241
282
  </script>
242
283
 
@@ -245,12 +286,6 @@ const features = computed(() => ({
245
286
  </template>
246
287
  ```
247
288
 
248
- Without PostHog, you can pass features statically:
249
-
250
- ```vue
251
- <MeistrariChatEmbed :features="{ showUsageTab: true }" />
252
- ```
253
-
254
289
  ## Optional: Custom Workspace Settings
255
290
 
256
291
  By default, workspace settings (system prompt, context files, tools) are managed via the module's built-in UI and stored in PostgreSQL.
package/dist/module.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@meistrari/chat-nuxt",
3
3
  "configKey": "chatNuxt",
4
- "version": "1.4.0",
4
+ "version": "1.5.1",
5
5
  "builder": {
6
6
  "@nuxt/module-builder": "1.0.2",
7
7
  "unbuild": "unknown"
package/dist/module.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import { existsSync, readFileSync, mkdirSync, symlinkSync } from 'node:fs';
2
2
  import { createRequire } from 'node:module';
3
3
  import { join, dirname } from 'node:path';
4
- import { defineNuxtModule, createResolver, addImportsDir, addComponent, addComponentsDir } from 'nuxt/kit';
4
+ import { defineNuxtModule, createResolver, addPlugin, addImportsDir, addComponent, addComponentsDir } from 'nuxt/kit';
5
5
 
6
6
  const localRequire = createRequire(import.meta.url);
7
7
  const runtimeAliasPackages = [
@@ -249,12 +249,14 @@ const module$1 = defineNuxtModule({
249
249
  "#chat-runtime": runtimeDir,
250
250
  "@iconify-json/ph": resolvePackageRoot("@iconify-json/ph")
251
251
  };
252
- if (nuxt.options.imports !== false) {
253
- nuxt.options.imports = nuxt.options.imports || {};
254
- nuxt.options.imports.transform = nuxt.options.imports.transform || {};
255
- nuxt.options.imports.transform.include = nuxt.options.imports.transform.include || [];
252
+ const importsOptions = nuxt.options.imports;
253
+ if (importsOptions !== false) {
254
+ const normalizedImports = importsOptions || {};
255
+ nuxt.options.imports = normalizedImports;
256
+ normalizedImports.transform = normalizedImports.transform || {};
257
+ normalizedImports.transform.include = normalizedImports.transform.include || [];
256
258
  const runtimeDirRegExp = new RegExp(runtimeDir.replace(/\\/g, "/").replace(/[.*+?^${}()|[\]\\]/g, "\\$&"));
257
- nuxt.options.imports.transform.include.push(runtimeDirRegExp);
259
+ normalizedImports.transform.include.push(runtimeDirRegExp);
258
260
  }
259
261
  const features = { ...DEFAULT_FEATURES, ...options.features ?? {} };
260
262
  const migrationsDir = resolver.resolve("../drizzle");
@@ -269,10 +271,23 @@ const module$1 = defineNuxtModule({
269
271
  rc.public = rc.public || {};
270
272
  rc.public.agentApiUrl = rc.agentApiUrl || rc.public.agentApiUrl || process.env.AGENT_API_URL || "";
271
273
  rc.public.chatNuxtFeatures = features;
272
- rc.chatNuxt = rc.chatNuxt || {};
273
- rc.chatNuxt.migrationsDir = rc.chatNuxt.migrationsDir || migrationsDir;
274
- rc.chatNuxt.features = features;
274
+ const existingChatNuxtRuntimeConfig = rc.chatNuxt;
275
+ rc.chatNuxt = {
276
+ migrationsDir: existingChatNuxtRuntimeConfig?.migrationsDir || migrationsDir,
277
+ features
278
+ };
275
279
  validateRuntimeConfig(rc, options.validateConfig ?? false, features);
280
+ nuxt.options.css = nuxt.options.css || [];
281
+ for (const css of [
282
+ "markstream-vue/index.css",
283
+ join(runtimeDir, "assets/css/markstream.css"),
284
+ join(runtimeDir, "assets/css/code-theme.css")
285
+ ]) {
286
+ if (!nuxt.options.css.includes(css)) {
287
+ nuxt.options.css.push(css);
288
+ }
289
+ }
290
+ addPlugin(join(runtimeDir, "plugins/markstream"));
276
291
  addImportsDir(join(runtimeDir, "composables"));
277
292
  addImportsDir(join(runtimeDir, "utils"));
278
293
  addComponent({
@@ -1,24 +1,8 @@
1
- import type { Component, DeepReadonly } from 'vue';
2
- import type { WorkspaceSettings } from '../composables/useWorkspaceSettings.js';
3
1
  import type { ChatActionPayload } from '../composables/useChatAction.js';
4
- import type { ChatLoadingMessageMode } from '../utils/chat-loading-messages.js';
5
- import type { ChatActor, ChatFeatureConfig } from '../utils/tela-chat.js';
6
- type __VLS_Props = {
7
- workspaceSettings?: DeepReadonly<WorkspaceSettings> | WorkspaceSettings | null;
8
- user?: ChatActor | null;
9
- conversationId?: string | null;
10
- initialConversationId?: string | null;
11
- hideSidebar?: boolean;
12
- features?: Partial<ChatFeatureConfig>;
13
- loadingMessages?: readonly string[] | null;
14
- loadingMessagesMode?: ChatLoadingMessageMode | null;
15
- customComponents?: Record<string, Component>;
16
- customHtmlTags?: readonly string[];
17
- };
18
- declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
2
+ declare const __VLS_export: import("vue").DefineComponent<import("../types/embed.js").DefaultChatEmbedProps | import("../types/embed.js").TelaAgentChatEmbedProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
19
3
  "update:conversationId": (value: string | null) => any;
20
4
  action: (payload: ChatActionPayload) => any;
21
- }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
5
+ }, string, import("vue").PublicProps, Readonly<import("../types/embed.js").DefaultChatEmbedProps | import("../types/embed.js").TelaAgentChatEmbedProps> & Readonly<{
22
6
  "onUpdate:conversationId"?: ((value: string | null) => any) | undefined;
23
7
  onAction?: ((payload: ChatActionPayload) => any) | undefined;
24
8
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -1,21 +1,39 @@
1
1
  <script setup>
2
2
  defineProps({
3
- workspaceSettings: { type: null, required: false },
4
- user: { type: [Object, null], required: false },
5
3
  conversationId: { type: [String, null], required: false },
6
4
  initialConversationId: { type: [String, null], required: false },
7
5
  hideSidebar: { type: Boolean, required: false },
8
- features: { type: Object, required: false },
9
6
  loadingMessages: { type: [Array, null], required: false },
10
7
  loadingMessagesMode: { type: [String, null], required: false },
11
8
  customComponents: { type: Object, required: false },
12
- customHtmlTags: { type: Array, required: false }
9
+ customHtmlTags: { type: Array, required: false },
10
+ telaAgentId: { type: null, required: false },
11
+ telaAgentInputs: { type: null, required: false },
12
+ workspaceSettings: { type: null, required: false },
13
+ user: { type: null, required: false },
14
+ features: { type: Object, required: false }
13
15
  });
14
16
  defineEmits(["update:conversationId", "action"]);
15
17
  </script>
16
18
 
17
19
  <template>
18
20
  <ChatEmbed
21
+ v-if="telaAgentId"
22
+ :tela-agent-id="telaAgentId"
23
+ :tela-agent-inputs="telaAgentInputs"
24
+ :conversation-id="conversationId"
25
+ :initial-conversation-id="initialConversationId"
26
+ :hide-sidebar="hideSidebar"
27
+ :features="features"
28
+ :loading-messages="loadingMessages"
29
+ :loading-messages-mode="loadingMessagesMode"
30
+ :custom-components="customComponents"
31
+ :custom-html-tags="customHtmlTags"
32
+ @update:conversation-id="$emit('update:conversationId', $event)"
33
+ @action="$emit('action', $event)"
34
+ />
35
+ <ChatEmbed
36
+ v-else
19
37
  :workspace-settings="workspaceSettings"
20
38
  :user="user"
21
39
  :conversation-id="conversationId"
@@ -1,24 +1,8 @@
1
- import type { Component, DeepReadonly } from 'vue';
2
- import type { WorkspaceSettings } from '../composables/useWorkspaceSettings.js';
3
1
  import type { ChatActionPayload } from '../composables/useChatAction.js';
4
- import type { ChatLoadingMessageMode } from '../utils/chat-loading-messages.js';
5
- import type { ChatActor, ChatFeatureConfig } from '../utils/tela-chat.js';
6
- type __VLS_Props = {
7
- workspaceSettings?: DeepReadonly<WorkspaceSettings> | WorkspaceSettings | null;
8
- user?: ChatActor | null;
9
- conversationId?: string | null;
10
- initialConversationId?: string | null;
11
- hideSidebar?: boolean;
12
- features?: Partial<ChatFeatureConfig>;
13
- loadingMessages?: readonly string[] | null;
14
- loadingMessagesMode?: ChatLoadingMessageMode | null;
15
- customComponents?: Record<string, Component>;
16
- customHtmlTags?: readonly string[];
17
- };
18
- declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
2
+ declare const __VLS_export: import("vue").DefineComponent<import("../types/embed.js").DefaultChatEmbedProps | import("../types/embed.js").TelaAgentChatEmbedProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
19
3
  "update:conversationId": (value: string | null) => any;
20
4
  action: (payload: ChatActionPayload) => any;
21
- }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
5
+ }, string, import("vue").PublicProps, Readonly<import("../types/embed.js").DefaultChatEmbedProps | import("../types/embed.js").TelaAgentChatEmbedProps> & Readonly<{
22
6
  "onUpdate:conversationId"?: ((value: string | null) => any) | undefined;
23
7
  onAction?: ((payload: ChatActionPayload) => any) | undefined;
24
8
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -1,6 +1,7 @@
1
1
  import type { ConversationFile, FileUploadInput, Message, ModelOption } from '../../types/chat.js';
2
2
  import type { DeepReadonly } from 'vue';
3
- import type { WorkspaceSettings } from '../../composables/useWorkspaceSettings.js';
3
+ import type { WorkspaceSettings } from '../../types/workspace-settings-data.js';
4
+ import type { TelaAgentInputVariable } from '../../types/tela-agent.js';
4
5
  type __VLS_Props = {
5
6
  disabled?: boolean;
6
7
  loading?: boolean;
@@ -12,8 +13,13 @@ type __VLS_Props = {
12
13
  messages?: Message[];
13
14
  conversationFiles?: ConversationFile[];
14
15
  workspaceSettings?: DeepReadonly<WorkspaceSettings> | null;
16
+ allowModelSelection?: boolean;
17
+ agentInputSchema?: readonly TelaAgentInputVariable[] | null;
18
+ agentInputSchemaLoading?: boolean;
19
+ showModelSelector?: boolean;
20
+ showCancelButton?: boolean;
15
21
  };
16
- declare function addFiles(files: File[]): void;
22
+ declare function addFiles(files: File[], inputName?: string): void;
17
23
  type __VLS_ModelProps = {
18
24
  'model'?: ModelOption;
19
25
  };
@@ -24,10 +30,30 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {
24
30
  "update:model": (value: "claude-sonnet-4-5" | "claude-sonnet-4-6" | "claude-haiku-4-5" | "claude-opus-4-5" | "claude-opus-4-6") => any;
25
31
  } & {
26
32
  cancel: () => any;
27
- send: (content: string, files: FileUploadInput[], model: "claude-sonnet-4-5" | "claude-sonnet-4-6" | "claude-haiku-4-5" | "claude-opus-4-5" | "claude-opus-4-6") => any;
33
+ send: (content: string, files: FileUploadInput[], model?: "claude-sonnet-4-5" | "claude-sonnet-4-6" | "claude-haiku-4-5" | "claude-opus-4-5" | "claude-opus-4-6" | undefined, agentInputs?: ({
34
+ type: "file";
35
+ name: string;
36
+ vaultRef: string;
37
+ filename: string;
38
+ metadata?: string | undefined;
39
+ } | {
40
+ type: "text";
41
+ name: string;
42
+ content: string;
43
+ })[] | undefined) => any;
28
44
  }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
29
45
  onCancel?: (() => any) | undefined;
30
- onSend?: ((content: string, files: FileUploadInput[], model: "claude-sonnet-4-5" | "claude-sonnet-4-6" | "claude-haiku-4-5" | "claude-opus-4-5" | "claude-opus-4-6") => any) | undefined;
46
+ onSend?: ((content: string, files: FileUploadInput[], model?: "claude-sonnet-4-5" | "claude-sonnet-4-6" | "claude-haiku-4-5" | "claude-opus-4-5" | "claude-opus-4-6" | undefined, agentInputs?: ({
47
+ type: "file";
48
+ name: string;
49
+ vaultRef: string;
50
+ filename: string;
51
+ metadata?: string | undefined;
52
+ } | {
53
+ type: "text";
54
+ name: string;
55
+ content: string;
56
+ })[] | undefined) => any) | undefined;
31
57
  "onUpdate:model"?: ((value: "claude-sonnet-4-5" | "claude-sonnet-4-6" | "claude-haiku-4-5" | "claude-opus-4-5" | "claude-opus-4-6") => any) | undefined;
32
58
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
33
59
  declare const _default: typeof __VLS_export;