@meistrari/chat-nuxt 4.10.0 → 4.11.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
@@ -110,7 +110,7 @@ Declared in `src/runtime/embed/types.ts`; prop, feature-flag, and event payload
110
110
  | `telaAgentInputs` | `TelaAgentExecutionInput[] \| null` | `undefined` | Inputs sent with each Tela agent run; hides the variables panel when non-null |
111
111
  | `workspaceSettings` | `WorkspaceSettings \| null` | `null` | Override settings from host app; not accepted in Tela agent mode |
112
112
  | `user` | `ChatActor \| null` | `null` | Override current user display info; not accepted in Tela agent mode |
113
- | `features` | `Partial<ChatFeatureConfig>` | `{}` | Toggle `showUsageTab`, `showDebugOption`, `showCancelButton`, `showTtft`, `chatOutboundQueue`, `showPromptInputHints`, `showModelSelector`, and `showReasoningEffortSelector`; all released features default to `true`. The two picker flags are deprecated in favor of `executionControls` |
113
+ | `features` | `Partial<ChatFeatureConfig>` | `{}` | Toggle `showUsageTab`, `showDebugOption`, `showCancelButton`, `showTtft`, `showMessageTimestamps`, `showAiMistakesDisclaimer`, `chatOutboundQueue`, `showPromptInputHints`, `showModelSelector`, and `showReasoningEffortSelector`; all released features default to `true`. The two picker flags are deprecated in favor of `executionControls` |
114
114
  | `loadingMessages` | `readonly string[] \| null` | Default chat messages | Override pending-response messages |
115
115
  | `loadingMessagesMode` | `'ordered' \| 'random' \| null` | `'ordered'` | Rotate custom messages in order or at random; only applies when `loadingMessages` has a non-empty message |
116
116
  | `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.10.0-rc.27",
4
+ "version": "4.11.0-rc.1",
5
5
  "builder": {
6
6
  "@nuxt/module-builder": "1.0.2",
7
7
  "unbuild": "unknown"
@@ -1070,6 +1070,8 @@ async function handleDelete() {
1070
1070
  :streaming-active-message-id="streamingActiveMessageId"
1071
1071
  :preparing-steps="preparingSteps"
1072
1072
  :show-ttft="resolvedFeatures.showTtft"
1073
+ :show-timestamps="resolvedFeatures.showMessageTimestamps"
1074
+ :show-ai-mistakes-disclaimer="resolvedFeatures.showAiMistakesDisclaimer"
1073
1075
  loading
1074
1076
  variant="mobile"
1075
1077
  />
@@ -1151,6 +1153,8 @@ async function handleDelete() {
1151
1153
  :streaming-active-message-id="streamingActiveMessageId"
1152
1154
  :preparing-steps="preparingSteps"
1153
1155
  :show-ttft="resolvedFeatures.showTtft"
1156
+ :show-timestamps="resolvedFeatures.showMessageTimestamps"
1157
+ :show-ai-mistakes-disclaimer="resolvedFeatures.showAiMistakesDisclaimer"
1154
1158
  variant="mobile"
1155
1159
  :fork-enabled="chatApi.conversationV2Enabled"
1156
1160
  :fork-disabled="forking"
@@ -1277,6 +1281,8 @@ async function handleDelete() {
1277
1281
  :streaming-active-message-id="streamingActiveMessageId"
1278
1282
  :preparing-steps="preparingSteps"
1279
1283
  :show-ttft="resolvedFeatures.showTtft"
1284
+ :show-timestamps="resolvedFeatures.showMessageTimestamps"
1285
+ :show-ai-mistakes-disclaimer="resolvedFeatures.showAiMistakesDisclaimer"
1280
1286
  loading
1281
1287
  :variant="compact ? 'widget' : 'page'"
1282
1288
  />
@@ -1367,6 +1373,8 @@ async function handleDelete() {
1367
1373
  :streaming-active-message-id="streamingActiveMessageId"
1368
1374
  :preparing-steps="preparingSteps"
1369
1375
  :show-ttft="resolvedFeatures.showTtft"
1376
+ :show-timestamps="resolvedFeatures.showMessageTimestamps"
1377
+ :show-ai-mistakes-disclaimer="resolvedFeatures.showAiMistakesDisclaimer"
1370
1378
  :variant="compact ? 'widget' : 'page'"
1371
1379
  :fork-enabled="chatApi.conversationV2Enabled"
1372
1380
  :fork-disabled="forking"
@@ -9,6 +9,10 @@ export type ChatFeatureConfig = {
9
9
  showCancelButton?: boolean;
10
10
  /** Time to first token shown in assistant message metadata. Defaults to true. */
11
11
  showTtft?: boolean;
12
+ /** Send time shown on user and assistant messages. Defaults to true. */
13
+ showMessageTimestamps?: boolean;
14
+ /** "As respostas podem conter erros" notice below the conversation. Defaults to true. */
15
+ showAiMistakesDisclaimer?: boolean;
12
16
  /** Reliable outbound delivery and sandbox readiness handling. Defaults to true. */
13
17
  chatOutboundQueue?: boolean;
14
18
  /** `@` / `/` shortcut hints below the empty-state composer. Defaults to true. */
@@ -32,6 +36,8 @@ export type ResolvedChatFeatureConfig = {
32
36
  showDebugOption: boolean;
33
37
  showCancelButton: boolean;
34
38
  showTtft: boolean;
39
+ showMessageTimestamps: boolean;
40
+ showAiMistakesDisclaimer: boolean;
35
41
  chatOutboundQueue: boolean;
36
42
  showPromptInputHints: boolean;
37
43
  showModelSelector: boolean;
@@ -6,6 +6,8 @@ export function resolveChatFeatures(features, executionControls) {
6
6
  showDebugOption: features?.showDebugOption ?? true,
7
7
  showCancelButton: features?.showCancelButton ?? true,
8
8
  showTtft: features?.showTtft ?? true,
9
+ showMessageTimestamps: features?.showMessageTimestamps ?? true,
10
+ showAiMistakesDisclaimer: features?.showAiMistakesDisclaimer ?? true,
9
11
  chatOutboundQueue: features?.chatOutboundQueue ?? true,
10
12
  showPromptInputHints: features?.showPromptInputHints ?? true,
11
13
  showModelSelector: controls.mode === "advanced" && controls.showModelSelector === true,
@@ -10,6 +10,7 @@ type __VLS_Props = {
10
10
  */
11
11
  preparingSteps?: readonly string[] | null;
12
12
  showTtft?: boolean;
13
+ showTimestamps?: boolean;
13
14
  forkEnabled?: boolean;
14
15
  forkDisabled?: boolean;
15
16
  };
@@ -27,6 +28,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
27
28
  onFork?: ((messageId: string) => any) | undefined;
28
29
  }>, {
29
30
  showTtft: boolean;
31
+ showTimestamps: boolean;
30
32
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
31
33
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
32
34
  declare const _default: typeof __VLS_export;
@@ -19,6 +19,7 @@ const props = defineProps({
19
19
  isLatestMessage: { type: Boolean, required: false },
20
20
  preparingSteps: { type: [Array, null], required: false },
21
21
  showTtft: { type: Boolean, required: false, default: true },
22
+ showTimestamps: { type: Boolean, required: false, default: true },
22
23
  forkEnabled: { type: Boolean, required: false },
23
24
  forkDisabled: { type: Boolean, required: false }
24
25
  });
@@ -197,6 +198,7 @@ const attachedFiles = computed(() => {
197
198
  </TelaChatMessageContent>
198
199
 
199
200
  <div
201
+ v-if="showTimestamps"
200
202
  mt-8px
201
203
  body-10-regular
202
204
  text-tertiary
@@ -235,7 +237,7 @@ const attachedFiles = computed(() => {
235
237
  <div flex flex-col gap-4px grow>
236
238
  <div flex items-center gap-4px>
237
239
  <span heading-h5-semibold text-primary>{{ isPromptTooLong ? "Limite de contexto atingido" : "Erro" }}</span>
238
- <span body-10-regular text-secondary>{{ formatTime(message.createdAt) }}</span>
240
+ <span v-if="showTimestamps" body-10-regular text-secondary>{{ formatTime(message.createdAt) }}</span>
239
241
  </div>
240
242
  <template v-if="isPromptTooLong">
241
243
  <div body-12-regular text-secondary whitespace-pre-wrap>
@@ -332,8 +334,8 @@ const attachedFiles = computed(() => {
332
334
  body-11-regular
333
335
  text-tertiary
334
336
  >
335
- <span>{{ formatTime(message.updatedAt || message.createdAt) }}</span>
336
- <TelaDotSeparator v-if="showTtft && formattedTtft || hasMessageFeedback" />
337
+ <span v-if="showTimestamps">{{ formatTime(message.updatedAt || message.createdAt) }}</span>
338
+ <TelaDotSeparator v-if="showTimestamps && (showTtft && formattedTtft || hasMessageFeedback)" />
337
339
  <div flex items-center gap-8px>
338
340
  <span v-if="showTtft && formattedTtft" flex items-center gap-4px>
339
341
  {{ formattedTtft }}
@@ -10,6 +10,7 @@ type __VLS_Props = {
10
10
  */
11
11
  preparingSteps?: readonly string[] | null;
12
12
  showTtft?: boolean;
13
+ showTimestamps?: boolean;
13
14
  forkEnabled?: boolean;
14
15
  forkDisabled?: boolean;
15
16
  };
@@ -27,6 +28,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
27
28
  onFork?: ((messageId: string) => any) | undefined;
28
29
  }>, {
29
30
  showTtft: boolean;
31
+ showTimestamps: boolean;
30
32
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
31
33
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
32
34
  declare const _default: typeof __VLS_export;
@@ -12,6 +12,8 @@ type __VLS_Props = {
12
12
  streamingActiveMessageId?: string | null;
13
13
  preparingSteps?: readonly string[] | null;
14
14
  showTtft?: boolean;
15
+ showTimestamps?: boolean;
16
+ showAiMistakesDisclaimer?: boolean;
15
17
  forkEnabled?: boolean;
16
18
  forkDisabled?: boolean;
17
19
  };
@@ -35,6 +37,8 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
35
37
  onOpenConversation?: ((conversationId: string) => any) | undefined;
36
38
  }>, {
37
39
  showTtft: boolean;
40
+ showAiMistakesDisclaimer: boolean;
41
+ showTimestamps: boolean;
38
42
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
39
43
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
40
44
  declare const _default: typeof __VLS_export;
@@ -13,6 +13,8 @@ const props = defineProps({
13
13
  streamingActiveMessageId: { type: [String, null], required: false },
14
14
  preparingSteps: { type: [Array, null], required: false },
15
15
  showTtft: { type: Boolean, required: false, default: true },
16
+ showTimestamps: { type: Boolean, required: false, default: true },
17
+ showAiMistakesDisclaimer: { type: Boolean, required: false, default: true },
16
18
  forkEnabled: { type: Boolean, required: false },
17
19
  forkDisabled: { type: Boolean, required: false }
18
20
  });
@@ -140,6 +142,7 @@ defineExpose({
140
142
  :is-latest-message="item.id === latestMessageId"
141
143
  :preparing-steps="item.value.role === 'assistant' && item.value.status === 'pending' ? preparingSteps : null"
142
144
  :show-ttft="showTtft"
145
+ :show-timestamps="showTimestamps"
143
146
  :fork-enabled="forkEnabled"
144
147
  :fork-disabled="forkDisabled"
145
148
  @fork="emit('fork', $event)"
@@ -151,7 +154,7 @@ defineExpose({
151
154
  </ChatMessageBubble>
152
155
  </template>
153
156
  <p
154
- v-if="messages.length > 0"
157
+ v-if="showAiMistakesDisclaimer && messages.length > 0"
155
158
  mt-auto mb--6px
156
159
  text-center body-11-regular text-tertiary
157
160
  >
@@ -12,6 +12,8 @@ type __VLS_Props = {
12
12
  streamingActiveMessageId?: string | null;
13
13
  preparingSteps?: readonly string[] | null;
14
14
  showTtft?: boolean;
15
+ showTimestamps?: boolean;
16
+ showAiMistakesDisclaimer?: boolean;
15
17
  forkEnabled?: boolean;
16
18
  forkDisabled?: boolean;
17
19
  };
@@ -35,6 +37,8 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
35
37
  onOpenConversation?: ((conversationId: string) => any) | undefined;
36
38
  }>, {
37
39
  showTtft: boolean;
40
+ showAiMistakesDisclaimer: boolean;
41
+ showTimestamps: boolean;
38
42
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
39
43
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
40
44
  declare const _default: typeof __VLS_export;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meistrari/chat-nuxt",
3
- "version": "4.10.0",
3
+ "version": "4.11.0-rc.1",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {