@meistrari/chat-nuxt 4.6.1 → 4.7.0-rc.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.
package/README.md CHANGED
@@ -109,7 +109,7 @@ Declared in `src/runtime/embed/types.ts`; prop, feature-flag, and event payload
109
109
  | `telaAgentInputs` | `TelaAgentExecutionInput[] \| null` | `undefined` | Inputs sent with each Tela agent run; hides the variables panel when non-null |
110
110
  | `workspaceSettings` | `WorkspaceSettings \| null` | `null` | Override settings from host app; not accepted in Tela agent mode |
111
111
  | `user` | `ChatActor \| null` | `null` | Override current user display info; not accepted in Tela agent mode |
112
- | `features` | `Partial<ChatFeatureConfig>` | `{}` | Toggle `showUsageTab`, `showDebugOption`, `showCancelButton`, `showTtft`, and `chatOutboundQueue`; all released features default to `true` |
112
+ | `features` | `Partial<ChatFeatureConfig>` | `{}` | Toggle `showUsageTab`, `showDebugOption`, `showCancelButton`, `showTtft`, `chatOutboundQueue`, `showPromptInputHints`, `showModelSelector`, and `showReasoningEffortSelector`; all released features default to `true` |
113
113
  | `loadingMessages` | `readonly string[] \| null` | Default chat messages | Override pending-response messages |
114
114
  | `loadingMessagesMode` | `'ordered' \| 'random' \| null` | `'ordered'` | Rotate custom messages in order or at random; only applies when `loadingMessages` has a non-empty message |
115
115
  | `labels` | `Partial<ChatLabels>` | Portuguese defaults | Override conversation-search text; see [UI labels](docs/guides/embedding.md#ui-labels) for supported keys and surfaces |
package/dist/module.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@meistrari/chat-nuxt",
3
3
  "configKey": "chatNuxt",
4
- "version": "4.6.1-rc.1",
4
+ "version": "4.7.0-rc.1",
5
5
  "builder": {
6
6
  "@nuxt/module-builder": "1.0.2",
7
7
  "unbuild": "unknown"
@@ -1003,6 +1003,8 @@ async function handleDelete() {
1003
1003
  :agent-skills="agentSkills"
1004
1004
  :agent-context-files="agentContextFiles"
1005
1005
  :show-cancel-button="resolvedFeatures.showCancelButton"
1006
+ :hide-model-selector="!resolvedFeatures.showModelSelector"
1007
+ :hide-reasoning-effort-selector="!resolvedFeatures.showReasoningEffortSelector"
1006
1008
  :show-debug-option="resolvedFeatures.showDebugOption"
1007
1009
  :show-outdated-badge="showOutdatedBadge"
1008
1010
  :show-outdated-banner="showOutdatedBanner"
@@ -1044,6 +1046,8 @@ async function handleDelete() {
1044
1046
  :agent-input-schema="visibleTelaAgentInputSchema"
1045
1047
  :agent-input-schema-loading="visibleTelaAgentInputSchemaLoading"
1046
1048
  :show-cancel-button="resolvedFeatures.showCancelButton"
1049
+ :hide-model-selector="!resolvedFeatures.showModelSelector"
1050
+ :hide-reasoning-effort-selector="!resolvedFeatures.showReasoningEffortSelector"
1047
1051
  />
1048
1052
  </template>
1049
1053
 
@@ -1087,6 +1091,8 @@ async function handleDelete() {
1087
1091
  :agent-skills="agentSkills"
1088
1092
  :agent-context-files="agentContextFiles"
1089
1093
  :show-cancel-button="resolvedFeatures.showCancelButton"
1094
+ :hide-model-selector="!resolvedFeatures.showModelSelector"
1095
+ :hide-reasoning-effort-selector="!resolvedFeatures.showReasoningEffortSelector"
1090
1096
  centered
1091
1097
  @send="handleSend"
1092
1098
  @cancel="handleCancel"
@@ -1139,6 +1145,8 @@ async function handleDelete() {
1139
1145
  :agent-skills="agentSkills"
1140
1146
  :agent-context-files="agentContextFiles"
1141
1147
  :show-cancel-button="resolvedFeatures.showCancelButton"
1148
+ :hide-model-selector="!resolvedFeatures.showModelSelector"
1149
+ :hide-reasoning-effort-selector="!resolvedFeatures.showReasoningEffortSelector"
1142
1150
  has-disclaimer
1143
1151
  @send="handleSend"
1144
1152
  @cancel="handleCancel"
@@ -1236,6 +1244,8 @@ async function handleDelete() {
1236
1244
  :agent-input-schema="visibleTelaAgentInputSchema"
1237
1245
  :agent-input-schema-loading="visibleTelaAgentInputSchemaLoading"
1238
1246
  :show-cancel-button="resolvedFeatures.showCancelButton"
1247
+ :hide-model-selector="!resolvedFeatures.showModelSelector"
1248
+ :hide-reasoning-effort-selector="!resolvedFeatures.showReasoningEffortSelector"
1239
1249
  />
1240
1250
  </TelaChatBody>
1241
1251
 
@@ -1285,6 +1295,8 @@ async function handleDelete() {
1285
1295
  :agent-skills="agentSkills"
1286
1296
  :agent-context-files="agentContextFiles"
1287
1297
  :show-cancel-button="resolvedFeatures.showCancelButton"
1298
+ :hide-model-selector="!resolvedFeatures.showModelSelector"
1299
+ :hide-reasoning-effort-selector="!resolvedFeatures.showReasoningEffortSelector"
1288
1300
  centered
1289
1301
  @send="handleSend"
1290
1302
  @cancel="handleCancel"
@@ -1340,6 +1352,8 @@ async function handleDelete() {
1340
1352
  :agent-skills="agentSkills"
1341
1353
  :agent-context-files="agentContextFiles"
1342
1354
  :show-cancel-button="resolvedFeatures.showCancelButton"
1355
+ :hide-model-selector="!resolvedFeatures.showModelSelector"
1356
+ :hide-reasoning-effort-selector="!resolvedFeatures.showReasoningEffortSelector"
1343
1357
  has-disclaimer
1344
1358
  @send="handleSend"
1345
1359
  @cancel="handleCancel"
@@ -33,6 +33,8 @@ type __VLS_Props = {
33
33
  loading?: boolean;
34
34
  messages: Message[];
35
35
  showCancelButton?: boolean;
36
+ hideModelSelector?: boolean;
37
+ hideReasoningEffortSelector?: boolean;
36
38
  showDebugOption?: boolean;
37
39
  showOutdatedBadge?: boolean;
38
40
  showOutdatedBanner?: boolean;
@@ -67,8 +69,8 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {
67
69
  copyLink: () => any;
68
70
  debug: () => any;
69
71
  selectConversation: (id: string) => any;
70
- send: (content: string, files: FileUploadInput[], agentInputs?: TelaAgentExecutionInput[] | undefined) => any;
71
72
  settings: () => any;
73
+ send: (content: string, files: FileUploadInput[], agentInputs?: TelaAgentExecutionInput[] | undefined) => any;
72
74
  tabChange: (tab: TopbarTab) => any;
73
75
  newConversation: (groupId?: string | null | undefined) => any;
74
76
  switchWorkspace: () => any;
@@ -88,8 +90,8 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {
88
90
  onCopyLink?: (() => any) | undefined;
89
91
  onDebug?: (() => any) | undefined;
90
92
  onSelectConversation?: ((id: string) => any) | undefined;
91
- onSend?: ((content: string, files: FileUploadInput[], agentInputs?: TelaAgentExecutionInput[] | undefined) => any) | undefined;
92
93
  onSettings?: (() => any) | undefined;
94
+ onSend?: ((content: string, files: FileUploadInput[], agentInputs?: TelaAgentExecutionInput[] | undefined) => any) | undefined;
93
95
  "onUpdate:selectedModel"?: ((value: string | null) => any) | undefined;
94
96
  "onUpdate:selectedReasoningEffort"?: ((value: any) => any) | undefined;
95
97
  onTabChange?: ((tab: TopbarTab) => any) | undefined;
@@ -39,6 +39,8 @@ const props = defineProps({
39
39
  loading: { type: Boolean, required: false },
40
40
  messages: { type: Array, required: true },
41
41
  showCancelButton: { type: Boolean, required: false },
42
+ hideModelSelector: { type: Boolean, required: false },
43
+ hideReasoningEffortSelector: { type: Boolean, required: false },
42
44
  showDebugOption: { type: Boolean, required: false },
43
45
  showOutdatedBadge: { type: Boolean, required: false },
44
46
  showOutdatedBanner: { type: Boolean, required: false },
@@ -243,6 +245,8 @@ function startNewConversationFromOutdatedSettings() {
243
245
  :agent-skills="agentSkills"
244
246
  :agent-context-files="agentContextFiles"
245
247
  :show-cancel-button="showCancelButton"
248
+ :hide-model-selector="hideModelSelector"
249
+ :hide-reasoning-effort-selector="hideReasoningEffortSelector"
246
250
  centered
247
251
  @send="(content, files, agentInputs) => emit('send', content, files, agentInputs)"
248
252
  @cancel="emit('cancel')"
@@ -33,6 +33,8 @@ type __VLS_Props = {
33
33
  loading?: boolean;
34
34
  messages: Message[];
35
35
  showCancelButton?: boolean;
36
+ hideModelSelector?: boolean;
37
+ hideReasoningEffortSelector?: boolean;
36
38
  showDebugOption?: boolean;
37
39
  showOutdatedBadge?: boolean;
38
40
  showOutdatedBanner?: boolean;
@@ -67,8 +69,8 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {
67
69
  copyLink: () => any;
68
70
  debug: () => any;
69
71
  selectConversation: (id: string) => any;
70
- send: (content: string, files: FileUploadInput[], agentInputs?: TelaAgentExecutionInput[] | undefined) => any;
71
72
  settings: () => any;
73
+ send: (content: string, files: FileUploadInput[], agentInputs?: TelaAgentExecutionInput[] | undefined) => any;
72
74
  tabChange: (tab: TopbarTab) => any;
73
75
  newConversation: (groupId?: string | null | undefined) => any;
74
76
  switchWorkspace: () => any;
@@ -88,8 +90,8 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {
88
90
  onCopyLink?: (() => any) | undefined;
89
91
  onDebug?: (() => any) | undefined;
90
92
  onSelectConversation?: ((id: string) => any) | undefined;
91
- onSend?: ((content: string, files: FileUploadInput[], agentInputs?: TelaAgentExecutionInput[] | undefined) => any) | undefined;
92
93
  onSettings?: (() => any) | undefined;
94
+ onSend?: ((content: string, files: FileUploadInput[], agentInputs?: TelaAgentExecutionInput[] | undefined) => any) | undefined;
93
95
  "onUpdate:selectedModel"?: ((value: string | null) => any) | undefined;
94
96
  "onUpdate:selectedReasoningEffort"?: ((value: any) => any) | undefined;
95
97
  onTabChange?: ((tab: TopbarTab) => any) | undefined;
@@ -12,6 +12,17 @@ export type ChatFeatureConfig = {
12
12
  chatOutboundQueue?: boolean;
13
13
  /** `@` / `/` shortcut hints below the empty-state composer. Defaults to true. */
14
14
  showPromptInputHints?: boolean;
15
+ /**
16
+ * Model picker in the composer toolbar. Defaults to true. Hiding it keeps model
17
+ * resolution unchanged: `defaultModel`, the conversation's saved model, or the agent default.
18
+ */
19
+ showModelSelector?: boolean;
20
+ /**
21
+ * Reasoning effort picker in the composer toolbar. Defaults to true. Hiding it keeps
22
+ * effort resolution unchanged: `defaultReasoningEffort`, the conversation's saved effort,
23
+ * or the agent default.
24
+ */
25
+ showReasoningEffortSelector?: boolean;
15
26
  };
16
27
  export type ResolvedChatFeatureConfig = {
17
28
  showUsageTab: boolean;
@@ -20,5 +31,7 @@ export type ResolvedChatFeatureConfig = {
20
31
  showTtft: boolean;
21
32
  chatOutboundQueue: boolean;
22
33
  showPromptInputHints: boolean;
34
+ showModelSelector: boolean;
35
+ showReasoningEffortSelector: boolean;
23
36
  };
24
37
  export declare function resolveChatFeatures(features?: Partial<ChatFeatureConfig>): ResolvedChatFeatureConfig;
@@ -5,6 +5,8 @@ export function resolveChatFeatures(features) {
5
5
  showCancelButton: features?.showCancelButton ?? true,
6
6
  showTtft: features?.showTtft ?? true,
7
7
  chatOutboundQueue: features?.chatOutboundQueue ?? true,
8
- showPromptInputHints: features?.showPromptInputHints ?? true
8
+ showPromptInputHints: features?.showPromptInputHints ?? true,
9
+ showModelSelector: features?.showModelSelector ?? true,
10
+ showReasoningEffortSelector: features?.showReasoningEffortSelector ?? true
9
11
  };
10
12
  }
@@ -20,6 +20,9 @@ type __VLS_Props = {
20
20
  agentSkills?: readonly TelaAgentSkill[] | null;
21
21
  agentContextFiles?: readonly TelaAgentContextFile[] | null;
22
22
  showCancelButton?: boolean;
23
+ /** Absent means shown, so internal callers keep the picker unless they opt out. */
24
+ hideModelSelector?: boolean;
25
+ hideReasoningEffortSelector?: boolean;
23
26
  sendBlocked?: boolean;
24
27
  };
25
28
  declare function addFiles(files: File[], inputName?: string): void;
@@ -26,6 +26,8 @@ const props = defineProps({
26
26
  agentSkills: { type: [Array, null], required: false },
27
27
  agentContextFiles: { type: [Array, null], required: false },
28
28
  showCancelButton: { type: Boolean, required: false },
29
+ hideModelSelector: { type: Boolean, required: false },
30
+ hideReasoningEffortSelector: { type: Boolean, required: false },
29
31
  sendBlocked: { type: Boolean, required: false }
30
32
  });
31
33
  const emit = defineEmits(["send", "cancel"]);
@@ -785,11 +787,13 @@ defineExpose({
785
787
 
786
788
  <TelaChatPromptInputActions>
787
789
  <ChatReasoningEffortSelector
790
+ v-if="!hideReasoningEffortSelector"
788
791
  v-model="selectedReasoningEffort"
789
792
  :disabled="isLocked"
790
793
  @click.stop
791
794
  />
792
795
  <ChatModelSelector
796
+ v-if="!hideModelSelector"
793
797
  v-model="selectedModel"
794
798
  :disabled="isLocked"
795
799
  mr-4px
@@ -20,6 +20,9 @@ type __VLS_Props = {
20
20
  agentSkills?: readonly TelaAgentSkill[] | null;
21
21
  agentContextFiles?: readonly TelaAgentContextFile[] | null;
22
22
  showCancelButton?: boolean;
23
+ /** Absent means shown, so internal callers keep the picker unless they opt out. */
24
+ hideModelSelector?: boolean;
25
+ hideReasoningEffortSelector?: boolean;
23
26
  sendBlocked?: boolean;
24
27
  };
25
28
  declare function addFiles(files: File[], inputName?: string): void;
@@ -185,12 +185,13 @@ export declare const dailyUsageRowSchema: z.ZodObject<{
185
185
  workspaceId: z.ZodString;
186
186
  source: z.ZodNullable<z.ZodString>;
187
187
  totalTokens: z.ZodNumber;
188
- totalCost: z.ZodNumber;
188
+ billingMode: z.ZodEnum<{
189
+ plan: "plan";
190
+ credits: "credits";
191
+ }>;
192
+ billedAmount: z.ZodNumber;
189
193
  promptTokens: z.ZodNumber;
190
194
  completionTokens: z.ZodNumber;
191
- promptCost: z.ZodNumber;
192
- completionCost: z.ZodNumber;
193
195
  conversationCount: z.ZodNumber;
194
- userCount: z.ZodNumber;
195
196
  }, z.core.$strip>;
196
197
  export type DailyUsageRow = z.infer<typeof dailyUsageRowSchema>;
@@ -88,11 +88,9 @@ export const dailyUsageRowSchema = z.object({
88
88
  workspaceId: z.string(),
89
89
  source: z.string().nullable(),
90
90
  totalTokens: z.number(),
91
- totalCost: z.number(),
91
+ billingMode: z.enum(['plan', 'credits']),
92
+ billedAmount: z.number(),
92
93
  promptTokens: z.number(),
93
94
  completionTokens: z.number(),
94
- promptCost: z.number(),
95
- completionCost: z.number(),
96
95
  conversationCount: z.number(),
97
- userCount: z.number(),
98
96
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meistrari/chat-nuxt",
3
- "version": "4.6.1",
3
+ "version": "4.7.0-rc.1",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {