@happyvertical/smrt-chat 0.55.6 → 0.55.8
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/AGENTS.md +38 -7
- package/README.md +10 -0
- package/agents/recipes.md +38 -0
- package/agents/token-streaming.md +12 -0
- package/dist/chunks/{chat-stream-Dq-tb26i.js → chat-stream-8MpyKbQ9.js} +455 -4
- package/dist/chunks/chat-stream-8MpyKbQ9.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +53 -4
- package/dist/index.js.map +1 -1
- package/dist/manifest.json +100 -1
- package/dist/recipes.d.ts +48 -0
- package/dist/recipes.d.ts.map +1 -0
- package/dist/runtime-report-tools.d.ts +132 -0
- package/dist/runtime-report-tools.d.ts.map +1 -0
- package/dist/smrt-knowledge.json +119 -5
- package/dist/svelte/components/assistant/AssistantComposer.svelte +183 -27
- package/dist/svelte/components/assistant/AssistantComposer.svelte.d.ts +41 -2
- package/dist/svelte/components/assistant/AssistantComposer.svelte.d.ts.map +1 -1
- package/dist/svelte/components/assistant/AssistantDock.svelte +231 -12
- package/dist/svelte/components/assistant/AssistantDock.svelte.d.ts +26 -1
- package/dist/svelte/components/assistant/AssistantDock.svelte.d.ts.map +1 -1
- package/dist/svelte/i18n.d.ts +3 -0
- package/dist/svelte/i18n.d.ts.map +1 -1
- package/dist/svelte/i18n.js +4 -0
- package/dist/sveltekit.js +1 -1
- package/dist/tool-loop.d.ts.map +1 -1
- package/package.json +17 -15
- package/dist/chunks/chat-stream-Dq-tb26i.js.map +0 -1
|
@@ -18,6 +18,8 @@ import type {
|
|
|
18
18
|
import type {
|
|
19
19
|
DictationSourceProvider,
|
|
20
20
|
DictationTranscribe,
|
|
21
|
+
HandsFreeCaptureFactory,
|
|
22
|
+
HandsFreeVadOptions,
|
|
21
23
|
} from '@happyvertical/smrt-ui/forms';
|
|
22
24
|
import { useI18n } from '@happyvertical/smrt-ui/i18n';
|
|
23
25
|
import { Button } from '@happyvertical/smrt-ui/ui';
|
|
@@ -103,6 +105,16 @@ export interface Props {
|
|
|
103
105
|
surfaces?: DataSurfaceIdentity[];
|
|
104
106
|
/** Whether the dock is currently visible; polling pauses while false. */
|
|
105
107
|
visible?: boolean;
|
|
108
|
+
/** How the dock presents conversations. `multiple` (default) shows the
|
|
109
|
+
* conversation list and lets the person start new ones. `single` is for
|
|
110
|
+
* hosts where the person never needs to know about separate conversations:
|
|
111
|
+
* no list, no toggle, no choose/empty screens. On mount the dock reuses the
|
|
112
|
+
* transport's most recent thread, or creates one silently when there is
|
|
113
|
+
* none, and opens straight into the composer (focused while `visible`). A
|
|
114
|
+
* failure shows inline with a retry; a small icon-only "Clear
|
|
115
|
+
* conversation" action starts fresh when the transport can create
|
|
116
|
+
* threads. */
|
|
117
|
+
conversations?: 'multiple' | 'single';
|
|
106
118
|
/** Whether the dock shows its "Conversations" toggle and thread list
|
|
107
119
|
* (#3405). Default `true`. With `false` the dock is a single running
|
|
108
120
|
* conversation: the message thread and the composer fill the full width, in
|
|
@@ -181,6 +193,21 @@ export interface Props {
|
|
|
181
193
|
* speech (Firefox, Brave), e.g. smrt-ui's `createHttpTranscriber()`;
|
|
182
194
|
* see `AssistantComposer`. */
|
|
183
195
|
transcribe?: DictationTranscribe | null;
|
|
196
|
+
/** `'hands-free'` keeps the microphone on and writes each sentence down
|
|
197
|
+
* when the speaker pauses; see `AssistantComposer`. */
|
|
198
|
+
dictationMode?: 'push' | 'hands-free';
|
|
199
|
+
/** The hands-free microphone (`createHandsFreeCapture` from
|
|
200
|
+
* `@happyvertical/smrt-ui/forms/hands-free`); see `AssistantComposer`. */
|
|
201
|
+
handsFreeCapture?: HandsFreeCaptureFactory | null;
|
|
202
|
+
/** Pause length and sensitivity for hands-free; see `AssistantComposer`. */
|
|
203
|
+
handsFreeVad?: HandsFreeVadOptions;
|
|
204
|
+
/** Hands-free: send once the speaker stops talking; see `AssistantComposer`. */
|
|
205
|
+
sendOnPause?: boolean;
|
|
206
|
+
/** Quiet time before `sendOnPause` sends, in ms (default 1200). */
|
|
207
|
+
sendOnPauseMs?: number;
|
|
208
|
+
/** The reply is being read aloud: hands-free listening pauses meanwhile;
|
|
209
|
+
* see `AssistantComposer`. */
|
|
210
|
+
speaking?: boolean;
|
|
184
211
|
}
|
|
185
212
|
|
|
186
213
|
const {
|
|
@@ -190,6 +217,7 @@ const {
|
|
|
190
217
|
actionClient,
|
|
191
218
|
surfaces,
|
|
192
219
|
visible = true,
|
|
220
|
+
conversations = 'multiple',
|
|
193
221
|
threadList = true,
|
|
194
222
|
toolCall,
|
|
195
223
|
oncontroller,
|
|
@@ -207,6 +235,12 @@ const {
|
|
|
207
235
|
choiceSources,
|
|
208
236
|
dictation,
|
|
209
237
|
transcribe,
|
|
238
|
+
dictationMode,
|
|
239
|
+
handsFreeCapture,
|
|
240
|
+
handsFreeVad,
|
|
241
|
+
sendOnPause = false,
|
|
242
|
+
sendOnPauseMs,
|
|
243
|
+
speaking = false,
|
|
210
244
|
}: Props = $props();
|
|
211
245
|
const { t } = useI18n();
|
|
212
246
|
|
|
@@ -372,6 +406,95 @@ async function openThreads() {
|
|
|
372
406
|
threadsEl?.querySelector<HTMLElement>('.assistant-thread-list-item')?.focus();
|
|
373
407
|
}
|
|
374
408
|
|
|
409
|
+
// Single-conversation mode: open straight into one conversation. Runs once
|
|
410
|
+
// per context (transport) after its thread list settles: reuse the most
|
|
411
|
+
// recent thread, else create one silently. Any failure is recorded on
|
|
412
|
+
// `controller.error`, shown inline in the conversation area with a retry.
|
|
413
|
+
let composerRef: { focus(): void } | undefined = $state();
|
|
414
|
+
let bootstrapTransport: AssistantTransport | null = null;
|
|
415
|
+
const SINGLE_THREAD_TITLE = 'Conversation';
|
|
416
|
+
|
|
417
|
+
function threadRecency(thread: {
|
|
418
|
+
lastMessageAt?: string | Date | null;
|
|
419
|
+
messageCount: number;
|
|
420
|
+
}) {
|
|
421
|
+
// A thread nobody has written to yet (just created, e.g. by "Clear
|
|
422
|
+
// conversation") is the newest; an undated thread with messages is oldest.
|
|
423
|
+
if (!thread.lastMessageAt) {
|
|
424
|
+
return thread.messageCount === 0
|
|
425
|
+
? Number.POSITIVE_INFINITY
|
|
426
|
+
: Number.NEGATIVE_INFINITY;
|
|
427
|
+
}
|
|
428
|
+
const time = new Date(thread.lastMessageAt).getTime();
|
|
429
|
+
return Number.isNaN(time) ? Number.NEGATIVE_INFINITY : time;
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
function mostRecentThreadId(): string | undefined {
|
|
433
|
+
let best: { id: string; at: number } | undefined;
|
|
434
|
+
for (const thread of controller.threads) {
|
|
435
|
+
const at = threadRecency(thread);
|
|
436
|
+
// `>=` so that, among equals, the later-listed thread wins (transports
|
|
437
|
+
// list oldest first).
|
|
438
|
+
if (!best || at >= best.at) best = { id: thread.id, at };
|
|
439
|
+
}
|
|
440
|
+
return best?.id;
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
async function startConversation(fresh = false) {
|
|
444
|
+
const current = transport;
|
|
445
|
+
bootstrapTransport = current;
|
|
446
|
+
try {
|
|
447
|
+
let threadId = fresh ? undefined : mostRecentThreadId();
|
|
448
|
+
if (!threadId) {
|
|
449
|
+
if (!current.createThread) {
|
|
450
|
+
controller.setError(t(M['chat.assistant_dock.no_conversations']));
|
|
451
|
+
return;
|
|
452
|
+
}
|
|
453
|
+
threadId = (await controller.createThread(SINGLE_THREAD_TITLE)).id;
|
|
454
|
+
}
|
|
455
|
+
if (transport !== current) return;
|
|
456
|
+
await controller.openThread(threadId);
|
|
457
|
+
} catch {
|
|
458
|
+
// createThread already recorded the failure on controller.error.
|
|
459
|
+
} finally {
|
|
460
|
+
if (bootstrapTransport === current) bootstrapTransport = null;
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
async function retryConversation() {
|
|
465
|
+
controller.setError(null);
|
|
466
|
+
// Reload first: a failed list must not be mistaken for "no thread yet".
|
|
467
|
+
await controller.loadThreads();
|
|
468
|
+
// A successful load re-arms the effect below.
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
$effect(() => {
|
|
472
|
+
if (conversations !== 'single') return;
|
|
473
|
+
if (
|
|
474
|
+
controller.threadsLoading ||
|
|
475
|
+
controller.activeThreadId ||
|
|
476
|
+
controller.error
|
|
477
|
+
) {
|
|
478
|
+
return;
|
|
479
|
+
}
|
|
480
|
+
if (bootstrapTransport === transport) return;
|
|
481
|
+
void untrack(() => startConversation());
|
|
482
|
+
});
|
|
483
|
+
|
|
484
|
+
// Focus the composer once the conversation is open and the dock is shown.
|
|
485
|
+
$effect(() => {
|
|
486
|
+
if (conversations !== 'single' || !visible || !controller.activeThreadId) {
|
|
487
|
+
return;
|
|
488
|
+
}
|
|
489
|
+
void tick().then(() => composerRef?.focus());
|
|
490
|
+
});
|
|
491
|
+
|
|
492
|
+
async function handleClearConversation() {
|
|
493
|
+
closeThreads();
|
|
494
|
+
controller.setError(null);
|
|
495
|
+
await startConversation(true);
|
|
496
|
+
}
|
|
497
|
+
|
|
375
498
|
async function handleSelectThread(threadId: string) {
|
|
376
499
|
closeThreads();
|
|
377
500
|
// openThread() catches internally and records any failure on
|
|
@@ -462,7 +585,7 @@ async function handleConfirmAction(requestId: string) {
|
|
|
462
585
|
class="assistant-dock-layout"
|
|
463
586
|
data-threads-open={threadsOpen || undefined}
|
|
464
587
|
>
|
|
465
|
-
{#if threadList}
|
|
588
|
+
{#if conversations !== 'single' && threadList}
|
|
466
589
|
<Button
|
|
467
590
|
type="button"
|
|
468
591
|
variant="ghost"
|
|
@@ -493,17 +616,41 @@ async function handleConfirmAction(requestId: string) {
|
|
|
493
616
|
{#if controller.error}
|
|
494
617
|
<p class="assistant-dock-error" role="alert">
|
|
495
618
|
{t(M['chat.assistant_dock.error'], { message: controller.error })}
|
|
619
|
+
{#if conversations === 'single' && !controller.activeThreadId}
|
|
620
|
+
<Button
|
|
621
|
+
type="button"
|
|
622
|
+
size="sm"
|
|
623
|
+
variant="ghost"
|
|
624
|
+
onclick={retryConversation}
|
|
625
|
+
>
|
|
626
|
+
{t(M['chat.assistant_dock.retry_conversation'])}
|
|
627
|
+
</Button>
|
|
628
|
+
{/if}
|
|
496
629
|
</p>
|
|
497
630
|
{/if}
|
|
498
631
|
|
|
499
|
-
{#if controller.
|
|
500
|
-
<div class="assistant-dock-
|
|
501
|
-
<
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
632
|
+
{#if conversations === 'single' && controller.activeThreadId && transport.createThread && controller.messages.length > 0}
|
|
633
|
+
<div class="assistant-dock-single-actions">
|
|
634
|
+
<Button
|
|
635
|
+
type="button"
|
|
636
|
+
size="sm"
|
|
637
|
+
variant="ghost"
|
|
638
|
+
class="assistant-dock-clear"
|
|
639
|
+
onclick={handleClearConversation}
|
|
640
|
+
aria-label={t(M['chat.assistant_dock.clear_conversation'])}
|
|
641
|
+
title={t(M['chat.assistant_dock.clear_conversation'])}
|
|
642
|
+
>
|
|
643
|
+
<svg viewBox="0 0 20 20" width="18" height="18" aria-hidden="true">
|
|
644
|
+
<path
|
|
645
|
+
d="M4 6h12M8 6V4.5h4V6m-6.5 0l.7 9.5h7.6L15 6M8.5 9v4m3-4v4"
|
|
646
|
+
fill="none"
|
|
647
|
+
stroke="currentColor"
|
|
648
|
+
stroke-width="1.4"
|
|
649
|
+
stroke-linecap="round"
|
|
650
|
+
stroke-linejoin="round"
|
|
651
|
+
/>
|
|
652
|
+
</svg>
|
|
653
|
+
</Button>
|
|
507
654
|
</div>
|
|
508
655
|
{/if}
|
|
509
656
|
|
|
@@ -514,7 +661,17 @@ async function handleConfirmAction(requestId: string) {
|
|
|
514
661
|
{/if}
|
|
515
662
|
|
|
516
663
|
<div class="assistant-dock-scroll">
|
|
517
|
-
{#if
|
|
664
|
+
{#if conversations === 'single'}
|
|
665
|
+
{#if !controller.activeThreadId && !controller.error}
|
|
666
|
+
<div
|
|
667
|
+
class="assistant-dock-thread-state assistant-dock-thread-loading"
|
|
668
|
+
role="status"
|
|
669
|
+
aria-label={t(M['chat.assistant_dock.opening_conversation'])}
|
|
670
|
+
>
|
|
671
|
+
<p>{t(M['chat.assistant_dock.opening_conversation'])}</p>
|
|
672
|
+
</div>
|
|
673
|
+
{/if}
|
|
674
|
+
{:else if !controller.activeThreadId && controller.threadsLoading}
|
|
518
675
|
<div
|
|
519
676
|
class="assistant-dock-thread-state assistant-dock-thread-loading"
|
|
520
677
|
role="status"
|
|
@@ -565,7 +722,7 @@ async function handleConfirmAction(requestId: string) {
|
|
|
565
722
|
|
|
566
723
|
<ul class="assistant-dock-messages">
|
|
567
724
|
{#each controller.messages as message (message.id)}
|
|
568
|
-
<li>
|
|
725
|
+
<li data-role={message.role}>
|
|
569
726
|
<MessageBubble
|
|
570
727
|
variant={bubbleVariant(message.role)}
|
|
571
728
|
own={message.role === 'user'}
|
|
@@ -745,6 +902,17 @@ async function handleConfirmAction(requestId: string) {
|
|
|
745
902
|
{/if}
|
|
746
903
|
</div>
|
|
747
904
|
|
|
905
|
+
{#if controller.status.state === 'working'}
|
|
906
|
+
<div class="assistant-dock-status" role="status" aria-live="polite">
|
|
907
|
+
<span class="assistant-dock-status-label">{controller.status.label}</span>
|
|
908
|
+
{#if controller.status.cancellable}
|
|
909
|
+
<Button type="button" size="sm" variant="ghost" onclick={() => controller.cancel()}>
|
|
910
|
+
{t(M['chat.assistant_dock.stop'])}
|
|
911
|
+
</Button>
|
|
912
|
+
{/if}
|
|
913
|
+
</div>
|
|
914
|
+
{/if}
|
|
915
|
+
|
|
748
916
|
<div class="assistant-dock-composer">
|
|
749
917
|
{#if controller.models.length > 0}
|
|
750
918
|
<div class="assistant-dock-composer-header">
|
|
@@ -757,6 +925,7 @@ async function handleConfirmAction(requestId: string) {
|
|
|
757
925
|
{/if}
|
|
758
926
|
{#key uploadContextEpoch}
|
|
759
927
|
<AssistantComposer
|
|
928
|
+
bind:this={composerRef}
|
|
760
929
|
bind:value={
|
|
761
930
|
() => controller.draft, (text) => controller.setDraft(text)
|
|
762
931
|
}
|
|
@@ -766,6 +935,12 @@ async function handleConfirmAction(requestId: string) {
|
|
|
766
935
|
placeholder={composerPlaceholder}
|
|
767
936
|
{dictation}
|
|
768
937
|
{transcribe}
|
|
938
|
+
{dictationMode}
|
|
939
|
+
{handsFreeCapture}
|
|
940
|
+
{handsFreeVad}
|
|
941
|
+
{sendOnPause}
|
|
942
|
+
{sendOnPauseMs}
|
|
943
|
+
{speaking}
|
|
769
944
|
/>
|
|
770
945
|
{/key}
|
|
771
946
|
</div>
|
|
@@ -798,7 +973,7 @@ async function handleConfirmAction(requestId: string) {
|
|
|
798
973
|
justify-content: space-between;
|
|
799
974
|
gap: 0.5rem;
|
|
800
975
|
padding: 0.35rem 0.75rem;
|
|
801
|
-
border-
|
|
976
|
+
border-top: 1px solid var(--smrt-color-outline-variant, #c4c7c5);
|
|
802
977
|
font-size: var(--smrt-typography-body-medium-size, 0.85rem);
|
|
803
978
|
color: var(--smrt-color-on-surface-variant, #44474e);
|
|
804
979
|
}
|
|
@@ -945,6 +1120,44 @@ async function handleConfirmAction(requestId: string) {
|
|
|
945
1120
|
gap: var(--smrt-spacing-2, 8px);
|
|
946
1121
|
}
|
|
947
1122
|
|
|
1123
|
+
/* Narrow-dock friendly bubbles: the user's message sits right, the
|
|
1124
|
+
* assistant's left, each at most ~85% of the thread width in calm tokens. */
|
|
1125
|
+
.assistant-dock-messages > li {
|
|
1126
|
+
display: flex;
|
|
1127
|
+
flex-direction: column;
|
|
1128
|
+
min-width: 0;
|
|
1129
|
+
}
|
|
1130
|
+
|
|
1131
|
+
.assistant-dock-messages > li :global(.bubble),
|
|
1132
|
+
.assistant-dock-streaming :global(.bubble) {
|
|
1133
|
+
max-width: 85%;
|
|
1134
|
+
padding: var(--smrt-spacing-2, 8px) var(--smrt-spacing-3, 12px);
|
|
1135
|
+
border-radius: var(--smrt-radius-large, 12px);
|
|
1136
|
+
overflow-wrap: anywhere;
|
|
1137
|
+
}
|
|
1138
|
+
|
|
1139
|
+
.assistant-dock-messages > li[data-role='user'] :global(.bubble),
|
|
1140
|
+
.assistant-dock-messages > li[data-role='user'] :global(.bubble--own) {
|
|
1141
|
+
align-self: flex-end;
|
|
1142
|
+
background: var(--smrt-color-primary-container, #d8e2ff);
|
|
1143
|
+
color: var(--smrt-color-on-primary-container, #001a41);
|
|
1144
|
+
border-radius: var(--smrt-radius-large, 12px);
|
|
1145
|
+
}
|
|
1146
|
+
|
|
1147
|
+
.assistant-dock-messages > li:not([data-role='user']) :global(.bubble--agent),
|
|
1148
|
+
.assistant-dock-streaming :global(.bubble--agent) {
|
|
1149
|
+
align-self: flex-start;
|
|
1150
|
+
background: var(--smrt-color-surface-container, #f0f0f4);
|
|
1151
|
+
color: var(--smrt-color-on-surface, #1a1c1e);
|
|
1152
|
+
border-left: none;
|
|
1153
|
+
border-radius: var(--smrt-radius-large, 12px);
|
|
1154
|
+
}
|
|
1155
|
+
|
|
1156
|
+
.assistant-dock-streaming {
|
|
1157
|
+
display: flex;
|
|
1158
|
+
flex-direction: column;
|
|
1159
|
+
}
|
|
1160
|
+
|
|
948
1161
|
.assistant-dock-thread-state {
|
|
949
1162
|
flex: 1;
|
|
950
1163
|
min-height: 10rem;
|
|
@@ -1081,6 +1294,12 @@ async function handleConfirmAction(requestId: string) {
|
|
|
1081
1294
|
border-bottom: 1px solid var(--smrt-color-outline-variant, #c4c6cf);
|
|
1082
1295
|
}
|
|
1083
1296
|
|
|
1297
|
+
.assistant-dock-single-actions {
|
|
1298
|
+
display: flex;
|
|
1299
|
+
justify-content: flex-end;
|
|
1300
|
+
padding: var(--smrt-spacing-1, 4px) var(--smrt-spacing-2, 8px) 0;
|
|
1301
|
+
}
|
|
1302
|
+
|
|
1084
1303
|
.assistant-dock-composer-header {
|
|
1085
1304
|
padding: 0 var(--smrt-spacing-2, 8px);
|
|
1086
1305
|
padding-top: var(--smrt-spacing-2, 8px);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { DataSurfaceActionRequest, DataSurfaceActionResult, DataSurfaceIdentity, DataSurfaceRegistry } from '@happyvertical/smrt-ui/data-surface';
|
|
2
|
-
import type { DictationSourceProvider, DictationTranscribe } from '@happyvertical/smrt-ui/forms';
|
|
2
|
+
import type { DictationSourceProvider, DictationTranscribe, HandsFreeCaptureFactory, HandsFreeVadOptions } from '@happyvertical/smrt-ui/forms';
|
|
3
3
|
import { type Snippet } from 'svelte';
|
|
4
4
|
import type { AssistantStatus } from '../../../assistant-turn-events.js';
|
|
5
5
|
import type { AssistantChoiceSourceRegistry } from './assistant-choices.svelte.js';
|
|
@@ -32,6 +32,16 @@ export interface Props {
|
|
|
32
32
|
surfaces?: DataSurfaceIdentity[];
|
|
33
33
|
/** Whether the dock is currently visible; polling pauses while false. */
|
|
34
34
|
visible?: boolean;
|
|
35
|
+
/** How the dock presents conversations. `multiple` (default) shows the
|
|
36
|
+
* conversation list and lets the person start new ones. `single` is for
|
|
37
|
+
* hosts where the person never needs to know about separate conversations:
|
|
38
|
+
* no list, no toggle, no choose/empty screens. On mount the dock reuses the
|
|
39
|
+
* transport's most recent thread, or creates one silently when there is
|
|
40
|
+
* none, and opens straight into the composer (focused while `visible`). A
|
|
41
|
+
* failure shows inline with a retry; a small icon-only "Clear
|
|
42
|
+
* conversation" action starts fresh when the transport can create
|
|
43
|
+
* threads. */
|
|
44
|
+
conversations?: 'multiple' | 'single';
|
|
35
45
|
/** Whether the dock shows its "Conversations" toggle and thread list
|
|
36
46
|
* (#3405). Default `true`. With `false` the dock is a single running
|
|
37
47
|
* conversation: the message thread and the composer fill the full width, in
|
|
@@ -104,6 +114,21 @@ export interface Props {
|
|
|
104
114
|
* speech (Firefox, Brave), e.g. smrt-ui's `createHttpTranscriber()`;
|
|
105
115
|
* see `AssistantComposer`. */
|
|
106
116
|
transcribe?: DictationTranscribe | null;
|
|
117
|
+
/** `'hands-free'` keeps the microphone on and writes each sentence down
|
|
118
|
+
* when the speaker pauses; see `AssistantComposer`. */
|
|
119
|
+
dictationMode?: 'push' | 'hands-free';
|
|
120
|
+
/** The hands-free microphone (`createHandsFreeCapture` from
|
|
121
|
+
* `@happyvertical/smrt-ui/forms/hands-free`); see `AssistantComposer`. */
|
|
122
|
+
handsFreeCapture?: HandsFreeCaptureFactory | null;
|
|
123
|
+
/** Pause length and sensitivity for hands-free; see `AssistantComposer`. */
|
|
124
|
+
handsFreeVad?: HandsFreeVadOptions;
|
|
125
|
+
/** Hands-free: send once the speaker stops talking; see `AssistantComposer`. */
|
|
126
|
+
sendOnPause?: boolean;
|
|
127
|
+
/** Quiet time before `sendOnPause` sends, in ms (default 1200). */
|
|
128
|
+
sendOnPauseMs?: number;
|
|
129
|
+
/** The reply is being read aloud: hands-free listening pauses meanwhile;
|
|
130
|
+
* see `AssistantComposer`. */
|
|
131
|
+
speaking?: boolean;
|
|
107
132
|
}
|
|
108
133
|
declare const AssistantDock: import("svelte").Component<Props, {}, "">;
|
|
109
134
|
type AssistantDock = ReturnType<typeof AssistantDock>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantDock.svelte.d.ts","sourceRoot":"","sources":["../../../../src/svelte/components/assistant/AssistantDock.svelte.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACV,wBAAwB,EACxB,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EACV,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,KAAK,OAAO,EAAiB,MAAM,QAAQ,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAQzE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AACnF,OAAO,KAAK,EAEV,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,EAE/B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EAElB,MAAM,8CAA8C,CAAC;AAGtD,MAAM,WAAW,KAAK;IACpB,kEAAkE;IAClE,SAAS,EAAE,kBAAkB,CAAC;IAC9B;;qBAEiB;IACjB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B;;2EAEuE;IACvE,WAAW,CAAC,EAAE,eAAe,GAAG,QAAQ,CAAC;IACzC;qEACiE;IACjE,YAAY,CAAC,EAAE,qBAAqB,CAAC;IACrC;;;;;;;;gEAQ4D;IAC5D,QAAQ,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACjC,yEAAyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;;;;qCAWiC;IACjC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;0EAIsE;IACtE,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACvC;;;yEAGqE;IACrE,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,uBAAuB,KAAK,IAAI,CAAC;IAC7D;2DACuD;IACvD,eAAe,CAAC,EAAE,CAChB,OAAO,EAAE,wBAAwB,EACjC,MAAM,EAAE,uBAAuB,KAC5B,IAAI,CAAC;IACV;;2DAEuD;IACvD,eAAe,CAAC,EAAE,CAChB,OAAO,EAAE,wBAAwB,EACjC,OAAO,EAAE,sBAAsB,KAC5B,IAAI,CAAC;IACV;;;0DAGsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;qCACiC;IACjC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;2EAGuE;IACvE,SAAS,CAAC,EAAE,yBAAyB,CAAC;IACtC;wCACoC;IACpC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,yBAAyB,CAAC;IAC5E;0EACsE;IACtE,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IAC7C;wEACoE;IACpE,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACpC;0EACsE;IACtE,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,OAAO,CAAC;IAC1D,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;uCACmC;IACnC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI,KAAK,IAAI,CAAC;IAC3C;;yCAEqC;IACrC,aAAa,CAAC,EAAE,6BAA6B,CAAC;IAC9C;+EAC2E;IAC3E,SAAS,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAC3C;;kCAE8B;IAC9B,UAAU,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"AssistantDock.svelte.d.ts","sourceRoot":"","sources":["../../../../src/svelte/components/assistant/AssistantDock.svelte.ts"],"names":[],"mappings":"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"}
|
package/dist/svelte/i18n.d.ts
CHANGED
|
@@ -64,6 +64,9 @@ export declare const M: {
|
|
|
64
64
|
readonly 'chat.assistant_dock.send_failed': "chat.assistant_dock.send_failed";
|
|
65
65
|
readonly 'chat.assistant_dock.attachments': "chat.assistant_dock.attachments";
|
|
66
66
|
readonly 'chat.assistant_dock.conversations_toggle': "chat.assistant_dock.conversations_toggle";
|
|
67
|
+
readonly 'chat.assistant_dock.opening_conversation': "chat.assistant_dock.opening_conversation";
|
|
68
|
+
readonly 'chat.assistant_dock.retry_conversation': "chat.assistant_dock.retry_conversation";
|
|
69
|
+
readonly 'chat.assistant_dock.clear_conversation': "chat.assistant_dock.clear_conversation";
|
|
67
70
|
readonly 'chat.assistant_dock.action_outcome_unknown': "chat.assistant_dock.action_outcome_unknown";
|
|
68
71
|
readonly 'chat.assistant_dock.action_check_again': "chat.assistant_dock.action_check_again";
|
|
69
72
|
readonly 'chat.room_create_dialog.close': "chat.room_create_dialog.close";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/svelte/i18n.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,CAAC
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/svelte/i18n.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2IZ,CAAC"}
|
package/dist/svelte/i18n.js
CHANGED
|
@@ -85,6 +85,10 @@ export const M = defineMessages({
|
|
|
85
85
|
'chat.assistant_dock.send_failed': 'A message failed to send. You can retry it below.',
|
|
86
86
|
'chat.assistant_dock.attachments': 'Attachments',
|
|
87
87
|
'chat.assistant_dock.conversations_toggle': 'Conversations',
|
|
88
|
+
// Single-conversation mode
|
|
89
|
+
'chat.assistant_dock.opening_conversation': 'Opening the assistant…',
|
|
90
|
+
'chat.assistant_dock.retry_conversation': 'Try again',
|
|
91
|
+
'chat.assistant_dock.clear_conversation': 'Clear conversation',
|
|
88
92
|
'chat.assistant_dock.action_outcome_unknown': "We couldn't confirm whether this change was applied. Checking again is safe: it resends the same request, so the change can't be applied twice.",
|
|
89
93
|
'chat.assistant_dock.action_check_again': 'Check again',
|
|
90
94
|
// RoomCreateDialog
|
package/dist/sveltekit.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { i as clientRequestMessageId, n as ChatService, t as ChatClientRequestConflictError } from "./chunks/ChatService-C9UxuJaw.js";
|
|
2
|
-
import { D as runAssistantTurn, E as createSessionContinuationStore, P as buildManifestToolCatalog, j as MAX_CLIENT_TOOL_RESULT_CHARS, v as ASSISTANT_TURN_GENERIC_ERROR, w as createAssistantTurnResponse, z as sanitizeClientToolDeclarations } from "./chunks/chat-stream-
|
|
2
|
+
import { D as runAssistantTurn, E as createSessionContinuationStore, P as buildManifestToolCatalog, j as MAX_CLIENT_TOOL_RESULT_CHARS, v as ASSISTANT_TURN_GENERIC_ERROR, w as createAssistantTurnResponse, z as sanitizeClientToolDeclarations } from "./chunks/chat-stream-8MpyKbQ9.js";
|
|
3
3
|
import { getCurrentSessionPermissionContext, getRequestScopedDatabase } from "@happyvertical/smrt-users";
|
|
4
4
|
import { getConfig, loadConfig, resolveConfiguredAIProvider, toAIClientOptions } from "@happyvertical/smrt-config";
|
|
5
5
|
//#region src/sveltekit.ts
|
package/dist/tool-loop.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-loop.d.ts","sourceRoot":"","sources":["../src/tool-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EAET,MAAM,EACN,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,aAAa,EAEnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEL,KAAK,gBAAgB,EAEtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-loop.d.ts","sourceRoot":"","sources":["../src/tool-loop.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@happyvertical/smrt-chat",
|
|
3
|
-
"version": "0.55.
|
|
3
|
+
"version": "0.55.8",
|
|
4
4
|
"smrtJsdoc": "strict",
|
|
5
5
|
"description": "Chat rooms, DMs, threads, and agent conversations for the SMRT framework",
|
|
6
6
|
"type": "module",
|
|
@@ -78,17 +78,18 @@
|
|
|
78
78
|
"access": "public"
|
|
79
79
|
},
|
|
80
80
|
"dependencies": {
|
|
81
|
-
"@happyvertical/ai": "^0.
|
|
82
|
-
"@happyvertical/smrt-agents": "0.55.
|
|
83
|
-
"@happyvertical/smrt-config": "0.55.
|
|
84
|
-
"@happyvertical/smrt-core": "0.55.
|
|
85
|
-
"@happyvertical/smrt-personas": "0.55.
|
|
86
|
-
"@happyvertical/smrt-profiles": "0.55.
|
|
87
|
-
"@happyvertical/smrt-
|
|
88
|
-
"@happyvertical/smrt-
|
|
89
|
-
"@happyvertical/smrt-
|
|
90
|
-
"@happyvertical/smrt-
|
|
91
|
-
"@happyvertical/
|
|
81
|
+
"@happyvertical/ai": "^0.103.1",
|
|
82
|
+
"@happyvertical/smrt-agents": "0.55.8",
|
|
83
|
+
"@happyvertical/smrt-config": "0.55.8",
|
|
84
|
+
"@happyvertical/smrt-core": "0.55.8",
|
|
85
|
+
"@happyvertical/smrt-personas": "0.55.8",
|
|
86
|
+
"@happyvertical/smrt-profiles": "0.55.8",
|
|
87
|
+
"@happyvertical/smrt-reports": "0.55.8",
|
|
88
|
+
"@happyvertical/smrt-tenancy": "0.55.8",
|
|
89
|
+
"@happyvertical/smrt-types": "0.55.8",
|
|
90
|
+
"@happyvertical/smrt-ui": "0.55.8",
|
|
91
|
+
"@happyvertical/smrt-users": "0.55.8",
|
|
92
|
+
"@happyvertical/sql": "^0.103.1"
|
|
92
93
|
},
|
|
93
94
|
"peerDependencies": {
|
|
94
95
|
"svelte": "^5.57.0"
|
|
@@ -99,9 +100,10 @@
|
|
|
99
100
|
}
|
|
100
101
|
},
|
|
101
102
|
"devDependencies": {
|
|
102
|
-
"@happyvertical/smrt-playground": "0.55.
|
|
103
|
-
"@happyvertical/smrt-
|
|
104
|
-
"@happyvertical/smrt-
|
|
103
|
+
"@happyvertical/smrt-playground": "0.55.8",
|
|
104
|
+
"@happyvertical/smrt-scanner": "0.55.8",
|
|
105
|
+
"@happyvertical/smrt-vitest": "0.55.8",
|
|
106
|
+
"@happyvertical/smrt-web": "0.55.8",
|
|
105
107
|
"@mlc-ai/web-llm": "^0.2.85",
|
|
106
108
|
"bitgpu": "0.19.1",
|
|
107
109
|
"@sveltejs/kit": "2.69.1",
|