@bitbaum/chatkit 0.2.1 → 0.7.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.
- package/README.md +104 -8
- package/bin/chatkit-check-file-inputs.mjs +87 -0
- package/dist/attachments.d.ts +37 -0
- package/dist/attachments.d.ts.map +1 -1
- package/dist/attachments.js +75 -1
- package/dist/attachments.js.map +1 -1
- package/dist/composer.d.ts +4 -1
- package/dist/composer.d.ts.map +1 -1
- package/dist/composer.js +4 -2
- package/dist/composer.js.map +1 -1
- package/dist/dictation.d.ts +62 -2
- package/dist/dictation.d.ts.map +1 -1
- package/dist/dictation.js +103 -0
- package/dist/dictation.js.map +1 -1
- package/dist/image.d.ts +7 -0
- package/dist/image.d.ts.map +1 -0
- package/dist/image.js +41 -0
- package/dist/image.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/react/AttachMenu.d.ts +37 -0
- package/dist/react/AttachMenu.d.ts.map +1 -0
- package/dist/react/AttachMenu.js +70 -0
- package/dist/react/AttachMenu.js.map +1 -0
- package/dist/react/Composer.d.ts +24 -2
- package/dist/react/Composer.d.ts.map +1 -1
- package/dist/react/Composer.js +59 -10
- package/dist/react/Composer.js.map +1 -1
- package/dist/react/Thread.d.ts +27 -2
- package/dist/react/Thread.d.ts.map +1 -1
- package/dist/react/Thread.js +17 -4
- package/dist/react/Thread.js.map +1 -1
- package/dist/react/attach.d.ts +17 -0
- package/dist/react/attach.d.ts.map +1 -0
- package/dist/react/attach.js +16 -0
- package/dist/react/attach.js.map +1 -0
- package/dist/react/hooks.d.ts +8 -1
- package/dist/react/hooks.d.ts.map +1 -1
- package/dist/react/hooks.js +27 -3
- package/dist/react/hooks.js.map +1 -1
- package/dist/react/icons.d.ts +3 -0
- package/dist/react/icons.d.ts.map +1 -1
- package/dist/react/icons.js +3 -0
- package/dist/react/icons.js.map +1 -1
- package/dist/react/index.d.ts +3 -1
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +2 -1
- package/dist/react/index.js.map +1 -1
- package/dist/react/use-attachments.d.ts.map +1 -1
- package/dist/react/use-attachments.js +6 -34
- package/dist/react/use-attachments.js.map +1 -1
- package/dist/react/use-dictation.d.ts +23 -0
- package/dist/react/use-dictation.d.ts.map +1 -1
- package/dist/react/use-dictation.js +175 -13
- package/dist/react/use-dictation.js.map +1 -1
- package/dist/replies.d.ts +41 -0
- package/dist/replies.d.ts.map +1 -0
- package/dist/replies.js +84 -0
- package/dist/replies.js.map +1 -0
- package/package.json +9 -1
- package/styles.css +179 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-dictation.d.ts","sourceRoot":"","sources":["../../src/react/use-dictation.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"use-dictation.d.ts","sourceRoot":"","sources":["../../src/react/use-dictation.ts"],"names":[],"mappings":"AAGA,OAAO,EAeL,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACtB,MAAM,iBAAiB,CAAC;AAwCzB,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,WAAW,GAAG,cAAc,CAAC;AAEpE,MAAM,MAAM,mBAAmB,GAAG;IAChC,wDAAwD;IACxD,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B;;0DAEsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;8EAC0E;IAC1E,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uEAAuE;IACvE,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sDAAsD;IACtD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;wCACoC;IACpC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,2EAA2E;IAC3E,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,eAAe,CAAC;IACxB,6DAA6D;IAC7D,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACjC;+EAC2E;IAC3E,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B;gEAC4D;IAC5D,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,8CAA8C;IAC9C,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,sCAAsC;IACtC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB;oEACgE;IAChE,iBAAiB,EAAE,OAAO,CAAC;IAC3B;;6EAEyE;IACzE,cAAc,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD,CAAC;AA8CF;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,mBAAmB,CA8b3E"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useCallback, useEffect, useRef, useState, useSyncExternalStore } from "react";
|
|
3
|
-
import { MAX_RECORDING_MS, PERMISSION_WAIT_MS, RECORDING_MIME_CANDIDATES, START_TIMEOUT_MS, deadRecogniserStillTrusted, fallbackCanRescue, problemFor, problemForRecording, } from "../dictation.js";
|
|
3
|
+
import { MAX_AUDIO_FILE_BYTES, MAX_RECORDING_MS, PERMISSION_WAIT_MS, RECORDING_MIME_CANDIDATES, START_TIMEOUT_MS, audioFileName, deadRecogniserStillTrusted, fallbackCanRescue, liveWords, problemFor, problemForRecording, reasonFromBody, reasonOf, TranscriptionError, } from "../dictation.js";
|
|
4
4
|
function recogniser() {
|
|
5
5
|
if (typeof window === "undefined")
|
|
6
6
|
return undefined;
|
|
@@ -46,12 +46,14 @@ async function awaitingPermission() {
|
|
|
46
46
|
}
|
|
47
47
|
async function postAudio(url, audio, locale) {
|
|
48
48
|
const body = new FormData();
|
|
49
|
-
const
|
|
50
|
-
body.append("audio", new File([audio],
|
|
49
|
+
const name = audioFileName(audio);
|
|
50
|
+
body.append("audio", new File([audio], name, { type: audio.type || "audio/webm" }));
|
|
51
51
|
body.append("locale", locale);
|
|
52
52
|
const res = await fetch(url, { method: "POST", body });
|
|
53
|
-
if (!res.ok)
|
|
54
|
-
|
|
53
|
+
if (!res.ok) {
|
|
54
|
+
const said = reasonFromBody(await res.json().catch(() => null));
|
|
55
|
+
throw new TranscriptionError(said, res.status);
|
|
56
|
+
}
|
|
55
57
|
const data = (await res.json().catch(() => ({})));
|
|
56
58
|
return typeof data.text === "string" ? data.text.trim() : "";
|
|
57
59
|
}
|
|
@@ -67,13 +69,33 @@ async function postAudio(url, audio, locale) {
|
|
|
67
69
|
* someone's device because a request failed is the worst bug a chat can have.
|
|
68
70
|
*/
|
|
69
71
|
export function useDictation(opts) {
|
|
70
|
-
const { prefer = "browser", maxRecordingMs = MAX_RECORDING_MS } = opts;
|
|
72
|
+
const { prefer = "browser", maxRecordingMs = MAX_RECORDING_MS, maxAudioFileBytes = MAX_AUDIO_FILE_BYTES, } = opts;
|
|
71
73
|
const rememberKey = opts.rememberKey === undefined ? DEFAULT_REMEMBER_KEY : opts.rememberKey;
|
|
72
74
|
const hasServer = Boolean(opts.transcribe || opts.transcribeUrl);
|
|
73
75
|
const supported = useSyncExternalStore(noSubscribe, () => Boolean(recogniser()) || (hasServer && canRecord()), () => false);
|
|
74
76
|
const [status, setStatus] = useState("idle");
|
|
75
77
|
const [startedAt, setStartedAt] = useState(null);
|
|
76
|
-
const [
|
|
78
|
+
const [liveText, setLiveText] = useState("");
|
|
79
|
+
const [problem, setProblemState] = useState(null);
|
|
80
|
+
const [problemDetail, setProblemDetail] = useState(null);
|
|
81
|
+
// The last take the server failed on — kept so a retry costs a tap, not a
|
|
82
|
+
// repeat of everything that was said. Cleared by anything that moves on.
|
|
83
|
+
const failedTake = useRef(null);
|
|
84
|
+
const [canRetry, setCanRetry] = useState(false);
|
|
85
|
+
const setProblem = useCallback((next) => {
|
|
86
|
+
setProblemState(next);
|
|
87
|
+
setProblemDetail(null);
|
|
88
|
+
if (next === null || next !== "unavailable") {
|
|
89
|
+
failedTake.current = null;
|
|
90
|
+
setCanRetry(false);
|
|
91
|
+
}
|
|
92
|
+
}, []);
|
|
93
|
+
const failTake = useCallback((audio, error) => {
|
|
94
|
+
setProblemState("unavailable");
|
|
95
|
+
setProblemDetail(reasonOf(error));
|
|
96
|
+
failedTake.current = audio;
|
|
97
|
+
setCanRetry(true);
|
|
98
|
+
}, []);
|
|
77
99
|
// Latest options in refs, assigned in an effect (never during render), so a
|
|
78
100
|
// take that outlives a re-render calls the current callbacks.
|
|
79
101
|
const optsRef = useRef(opts);
|
|
@@ -81,6 +103,8 @@ export function useDictation(opts) {
|
|
|
81
103
|
optsRef.current = opts;
|
|
82
104
|
});
|
|
83
105
|
const recRef = useRef(null);
|
|
106
|
+
/** The recogniser that only PREVIEWS while the server leg records. */
|
|
107
|
+
const previewRef = useRef(null);
|
|
84
108
|
const recorderRef = useRef(null);
|
|
85
109
|
const streamRef = useRef(null);
|
|
86
110
|
const cancelledRef = useRef(false);
|
|
@@ -91,14 +115,78 @@ export function useDictation(opts) {
|
|
|
91
115
|
"";
|
|
92
116
|
return l || (typeof navigator !== "undefined" ? navigator.language : "en") || "en";
|
|
93
117
|
}, []);
|
|
118
|
+
const stopPreview = useCallback(() => {
|
|
119
|
+
const p = previewRef.current;
|
|
120
|
+
previewRef.current = null;
|
|
121
|
+
try {
|
|
122
|
+
p?.abort();
|
|
123
|
+
}
|
|
124
|
+
catch {
|
|
125
|
+
/* already gone */
|
|
126
|
+
}
|
|
127
|
+
}, []);
|
|
128
|
+
/**
|
|
129
|
+
* Live words beside a server-leg recording. Best effort and never load-
|
|
130
|
+
* bearing: a recogniser that is missing, refuses, or says nothing leaves
|
|
131
|
+
* the wave on screen, and the take — the recording — is untouched. Its
|
|
132
|
+
* failures are deliberately not fed to the problem line: the person is
|
|
133
|
+
* being recorded fine, and "mic" or "unavailable" would be a lie about that.
|
|
134
|
+
*/
|
|
135
|
+
const startPreview = useCallback(() => {
|
|
136
|
+
const Ctor = recogniser();
|
|
137
|
+
if (!Ctor)
|
|
138
|
+
return;
|
|
139
|
+
let rec;
|
|
140
|
+
try {
|
|
141
|
+
rec = new Ctor();
|
|
142
|
+
rec.lang = locale();
|
|
143
|
+
rec.continuous = true;
|
|
144
|
+
rec.interimResults = true;
|
|
145
|
+
}
|
|
146
|
+
catch {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
const finals = [];
|
|
150
|
+
rec.onstart = null;
|
|
151
|
+
rec.onresult = (event) => {
|
|
152
|
+
if (previewRef.current !== rec)
|
|
153
|
+
return;
|
|
154
|
+
let interim = "";
|
|
155
|
+
for (let i = event.resultIndex; i < event.results.length; i++) {
|
|
156
|
+
const r = event.results[i];
|
|
157
|
+
const t = r?.[0]?.transcript ?? "";
|
|
158
|
+
if (r && r.isFinal)
|
|
159
|
+
finals.push(t);
|
|
160
|
+
else
|
|
161
|
+
interim += t;
|
|
162
|
+
}
|
|
163
|
+
setLiveText(liveWords(finals, interim));
|
|
164
|
+
};
|
|
165
|
+
rec.onerror = () => {
|
|
166
|
+
if (previewRef.current === rec)
|
|
167
|
+
previewRef.current = null;
|
|
168
|
+
};
|
|
169
|
+
rec.onend = () => {
|
|
170
|
+
if (previewRef.current === rec)
|
|
171
|
+
previewRef.current = null;
|
|
172
|
+
};
|
|
173
|
+
try {
|
|
174
|
+
rec.start();
|
|
175
|
+
previewRef.current = rec;
|
|
176
|
+
}
|
|
177
|
+
catch {
|
|
178
|
+
/* no preview, still a take */
|
|
179
|
+
}
|
|
180
|
+
}, [locale]);
|
|
94
181
|
const releaseMic = useCallback(() => {
|
|
182
|
+
stopPreview();
|
|
95
183
|
streamRef.current?.getTracks().forEach((t) => t.stop());
|
|
96
184
|
streamRef.current = null;
|
|
97
185
|
if (capTimer.current) {
|
|
98
186
|
clearTimeout(capTimer.current);
|
|
99
187
|
capTimer.current = null;
|
|
100
188
|
}
|
|
101
|
-
}, []);
|
|
189
|
+
}, [stopPreview]);
|
|
102
190
|
const deliver = useCallback((said) => {
|
|
103
191
|
const t = said.trim();
|
|
104
192
|
if (t)
|
|
@@ -155,35 +243,42 @@ export function useDictation(opts) {
|
|
|
155
243
|
recorderRef.current = null;
|
|
156
244
|
setStartedAt(null);
|
|
157
245
|
if (cancelledRef.current) {
|
|
246
|
+
setLiveText("");
|
|
158
247
|
setStatus("idle");
|
|
159
248
|
return;
|
|
160
249
|
}
|
|
161
250
|
const audio = new Blob(chunks, { type: rec.mimeType || "audio/webm" });
|
|
162
251
|
if (audio.size === 0) {
|
|
252
|
+
setLiveText("");
|
|
163
253
|
setProblem("silence");
|
|
164
254
|
setStatus("idle");
|
|
165
255
|
return;
|
|
166
256
|
}
|
|
257
|
+
// The live words stay on screen, dimmed, while the server transcribes:
|
|
258
|
+
// the person keeps seeing what they said until the real words land.
|
|
167
259
|
setStatus("transcribing");
|
|
168
260
|
try {
|
|
169
261
|
deliver(await transcribe(audio));
|
|
170
262
|
}
|
|
171
|
-
catch {
|
|
172
|
-
|
|
263
|
+
catch (e) {
|
|
264
|
+
failTake(audio, e);
|
|
173
265
|
}
|
|
174
266
|
finally {
|
|
267
|
+
setLiveText("");
|
|
175
268
|
setStatus("idle");
|
|
176
269
|
}
|
|
177
270
|
};
|
|
178
271
|
recorderRef.current = rec;
|
|
179
272
|
rec.start();
|
|
273
|
+
setLiveText("");
|
|
274
|
+
startPreview();
|
|
180
275
|
setStatus("listening");
|
|
181
276
|
setStartedAt(Date.now());
|
|
182
277
|
capTimer.current = setTimeout(() => {
|
|
183
278
|
if (recorderRef.current?.state === "recording")
|
|
184
279
|
recorderRef.current.stop();
|
|
185
280
|
}, maxRecordingMs);
|
|
186
|
-
}, [deliver, maxRecordingMs, releaseMic, transcribe]);
|
|
281
|
+
}, [deliver, failTake, maxRecordingMs, releaseMic, setProblem, startPreview, transcribe]);
|
|
187
282
|
/** The browser leg, with the silent-recogniser watchdog. */
|
|
188
283
|
const listen = useCallback((Ctor) => {
|
|
189
284
|
setProblem(null);
|
|
@@ -193,7 +288,9 @@ export function useDictation(opts) {
|
|
|
193
288
|
// Whole thoughts, not one breath: a take ends when the person presses
|
|
194
289
|
// confirm (or the cap), not at the first pause.
|
|
195
290
|
rec.continuous = true;
|
|
196
|
-
|
|
291
|
+
// Interim results are what make the words appear as they are spoken;
|
|
292
|
+
// only the final ones are delivered.
|
|
293
|
+
rec.interimResults = true;
|
|
197
294
|
const current = () => recRef.current === rec;
|
|
198
295
|
const heard = [];
|
|
199
296
|
let started = false;
|
|
@@ -208,6 +305,7 @@ export function useDictation(opts) {
|
|
|
208
305
|
}
|
|
209
306
|
setStatus("idle");
|
|
210
307
|
setStartedAt(null);
|
|
308
|
+
setLiveText("");
|
|
211
309
|
if (next)
|
|
212
310
|
setProblem(next);
|
|
213
311
|
};
|
|
@@ -229,11 +327,17 @@ export function useDictation(opts) {
|
|
|
229
327
|
started = true;
|
|
230
328
|
};
|
|
231
329
|
rec.onresult = (event) => {
|
|
330
|
+
let interim = "";
|
|
232
331
|
for (let i = event.resultIndex; i < event.results.length; i++) {
|
|
233
332
|
const r = event.results[i];
|
|
333
|
+
const t = r?.[0]?.transcript ?? "";
|
|
234
334
|
if (r && r.isFinal !== false)
|
|
235
|
-
heard.push(
|
|
335
|
+
heard.push(t);
|
|
336
|
+
else
|
|
337
|
+
interim += t;
|
|
236
338
|
}
|
|
339
|
+
if (current())
|
|
340
|
+
setLiveText(liveWords(heard, interim));
|
|
237
341
|
};
|
|
238
342
|
rec.onerror = (event) => {
|
|
239
343
|
const why = problemFor(event?.error);
|
|
@@ -262,6 +366,7 @@ export function useDictation(opts) {
|
|
|
262
366
|
finish("unavailable");
|
|
263
367
|
return;
|
|
264
368
|
}
|
|
369
|
+
setLiveText("");
|
|
265
370
|
setStatus("listening");
|
|
266
371
|
setStartedAt(Date.now());
|
|
267
372
|
capTimer.current = setTimeout(() => {
|
|
@@ -323,9 +428,54 @@ export function useDictation(opts) {
|
|
|
323
428
|
if (rc && rc.state !== "inactive")
|
|
324
429
|
rc.stop();
|
|
325
430
|
releaseMic();
|
|
431
|
+
setLiveText("");
|
|
326
432
|
setStatus("idle");
|
|
327
433
|
setStartedAt(null);
|
|
328
434
|
}, [releaseMic]);
|
|
435
|
+
// A promise, not fire-and-forget: a composer handed three memos at once
|
|
436
|
+
// transcribes them in order, so the words arrive in the order they were
|
|
437
|
+
// picked. The status is the mic's — one spinner, one meaning.
|
|
438
|
+
const transcribeFile = useCallback(async (audio) => {
|
|
439
|
+
if (!hasServer) {
|
|
440
|
+
setProblem("unavailable");
|
|
441
|
+
return;
|
|
442
|
+
}
|
|
443
|
+
if (audio.size > maxAudioFileBytes) {
|
|
444
|
+
setProblem("fileTooLarge");
|
|
445
|
+
return;
|
|
446
|
+
}
|
|
447
|
+
if (audio.size === 0) {
|
|
448
|
+
setProblem("silence");
|
|
449
|
+
return;
|
|
450
|
+
}
|
|
451
|
+
setProblem(null);
|
|
452
|
+
setStatus("transcribing");
|
|
453
|
+
try {
|
|
454
|
+
deliver(await transcribe(audio));
|
|
455
|
+
}
|
|
456
|
+
catch (e) {
|
|
457
|
+
failTake(audio, e);
|
|
458
|
+
}
|
|
459
|
+
finally {
|
|
460
|
+
setStatus("idle");
|
|
461
|
+
}
|
|
462
|
+
}, [deliver, failTake, hasServer, maxAudioFileBytes, setProblem, transcribe]);
|
|
463
|
+
const retry = useCallback(async () => {
|
|
464
|
+
const audio = failedTake.current;
|
|
465
|
+
if (!audio || status !== "idle")
|
|
466
|
+
return;
|
|
467
|
+
setProblem(null);
|
|
468
|
+
setStatus("transcribing");
|
|
469
|
+
try {
|
|
470
|
+
deliver(await transcribe(audio));
|
|
471
|
+
}
|
|
472
|
+
catch (e) {
|
|
473
|
+
failTake(audio, e);
|
|
474
|
+
}
|
|
475
|
+
finally {
|
|
476
|
+
setStatus("idle");
|
|
477
|
+
}
|
|
478
|
+
}, [deliver, failTake, setProblem, status, transcribe]);
|
|
329
479
|
const toggle = useCallback(() => {
|
|
330
480
|
// A press while the server is answering is ignored: a second take would
|
|
331
481
|
// race the first one's words into the box.
|
|
@@ -345,6 +495,12 @@ export function useDictation(opts) {
|
|
|
345
495
|
catch {
|
|
346
496
|
/* gone */
|
|
347
497
|
}
|
|
498
|
+
try {
|
|
499
|
+
previewRef.current?.abort();
|
|
500
|
+
}
|
|
501
|
+
catch {
|
|
502
|
+
/* gone */
|
|
503
|
+
}
|
|
348
504
|
const rc = recorderRef.current;
|
|
349
505
|
if (rc && rc.state !== "inactive")
|
|
350
506
|
rc.stop();
|
|
@@ -354,12 +510,18 @@ export function useDictation(opts) {
|
|
|
354
510
|
supported,
|
|
355
511
|
status,
|
|
356
512
|
startedAt,
|
|
513
|
+
liveText,
|
|
357
514
|
problem,
|
|
515
|
+
problemDetail,
|
|
516
|
+
canRetry,
|
|
517
|
+
retry,
|
|
358
518
|
clearProblem: () => setProblem(null),
|
|
359
519
|
start,
|
|
360
520
|
stop,
|
|
361
521
|
cancel,
|
|
362
522
|
toggle,
|
|
523
|
+
canTranscribeFile: hasServer,
|
|
524
|
+
transcribeFile,
|
|
363
525
|
};
|
|
364
526
|
}
|
|
365
527
|
//# sourceMappingURL=use-dictation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-dictation.js","sourceRoot":"","sources":["../../src/react/use-dictation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-dictation.js","sourceRoot":"","sources":["../../src/react/use-dictation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Suggested replies: the two to four things the person is most likely to say
|
|
3
|
+
* next, as buttons under the answer. One tap sends it.
|
|
4
|
+
*
|
|
5
|
+
* From OrangeCat's Cat, where it was the most-used control in the chat and
|
|
6
|
+
* existed nowhere else in the fleet. The model writes the replies itself, at
|
|
7
|
+
* the end of its answer, in a fenced block:
|
|
8
|
+
*
|
|
9
|
+
* ```quick_replies
|
|
10
|
+
* ["Yes, set it up", "Show me the numbers first", "Not now"]
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* Asking the model in the same turn costs no second call and no latency, and
|
|
14
|
+
* the replies are written by the thing that knows what it just asked. This
|
|
15
|
+
* file is the one place the format lives: the instruction that asks for it,
|
|
16
|
+
* and the parser that takes it back out — including while it is still
|
|
17
|
+
* streaming, so a reader never watches raw JSON appear under an answer.
|
|
18
|
+
*/
|
|
19
|
+
export declare const REPLIES_FENCE = "quick_replies";
|
|
20
|
+
export type RepliesOptions = {
|
|
21
|
+
/** At most this many buttons. Default 4. */
|
|
22
|
+
max?: number;
|
|
23
|
+
/** Longer than this is a sentence, not a button. Default 48. */
|
|
24
|
+
maxLength?: number;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Append to a system prompt. Written so a model leaves the block off when no
|
|
28
|
+
* reply is likely — a button row on every answer is noise, and noise is what
|
|
29
|
+
* makes people stop reading buttons.
|
|
30
|
+
*/
|
|
31
|
+
export declare const REPLIES_INSTRUCTION: string;
|
|
32
|
+
/**
|
|
33
|
+
* Split an answer into the text to show and its suggested replies. Safe on a
|
|
34
|
+
* partial, streaming answer: an unfinished block is hidden, never shown.
|
|
35
|
+
* Text with no block comes back unchanged with `replies: []`.
|
|
36
|
+
*/
|
|
37
|
+
export declare function extractReplies(text: string, options?: RepliesOptions): {
|
|
38
|
+
text: string;
|
|
39
|
+
replies: string[];
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=replies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replies.d.ts","sourceRoot":"","sources":["../src/replies.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAE7C,MAAM,MAAM,cAAc,GAAG;IAC3B,4CAA4C;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,QAOpB,CAAC;AA+Bb;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,cAAmB,GAC3B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAarC"}
|
package/dist/replies.js
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Suggested replies: the two to four things the person is most likely to say
|
|
3
|
+
* next, as buttons under the answer. One tap sends it.
|
|
4
|
+
*
|
|
5
|
+
* From OrangeCat's Cat, where it was the most-used control in the chat and
|
|
6
|
+
* existed nowhere else in the fleet. The model writes the replies itself, at
|
|
7
|
+
* the end of its answer, in a fenced block:
|
|
8
|
+
*
|
|
9
|
+
* ```quick_replies
|
|
10
|
+
* ["Yes, set it up", "Show me the numbers first", "Not now"]
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* Asking the model in the same turn costs no second call and no latency, and
|
|
14
|
+
* the replies are written by the thing that knows what it just asked. This
|
|
15
|
+
* file is the one place the format lives: the instruction that asks for it,
|
|
16
|
+
* and the parser that takes it back out — including while it is still
|
|
17
|
+
* streaming, so a reader never watches raw JSON appear under an answer.
|
|
18
|
+
*/
|
|
19
|
+
export const REPLIES_FENCE = "quick_replies";
|
|
20
|
+
/**
|
|
21
|
+
* Append to a system prompt. Written so a model leaves the block off when no
|
|
22
|
+
* reply is likely — a button row on every answer is noise, and noise is what
|
|
23
|
+
* makes people stop reading buttons.
|
|
24
|
+
*/
|
|
25
|
+
export const REPLIES_INSTRUCTION = [
|
|
26
|
+
"## Suggested replies",
|
|
27
|
+
"When the person's next message is predictable — you asked a question, offered a choice, or there is an obvious next step — end your answer with a fenced block of 2–4 short replies they could tap instead of typing:",
|
|
28
|
+
"```" + REPLIES_FENCE,
|
|
29
|
+
'["Yes, do it", "Show me first", "Not now"]',
|
|
30
|
+
"```",
|
|
31
|
+
"Rules: write them in the person's language, in their voice (what THEY would say, not what you would). Each under 40 characters. Each must make sense sent on its own. Never repeat what they already said. Put the block last, after everything else. Leave it out entirely when no reply is likely, or when the conversation is over.",
|
|
32
|
+
].join("\n");
|
|
33
|
+
const COMPLETE = new RegExp("\\n?```" + REPLIES_FENCE + "\\s*([\\s\\S]*?)```", "i");
|
|
34
|
+
// Still streaming: the fence has opened (or is opening) and not yet closed.
|
|
35
|
+
const OPEN_TAIL = new RegExp("\\n?```(?:" + REPLIES_FENCE + "[\\s\\S]*|q[a-z_]*)?$", "i");
|
|
36
|
+
function clean(raw, { max = 4, maxLength = 48 }) {
|
|
37
|
+
let parsed;
|
|
38
|
+
try {
|
|
39
|
+
parsed = JSON.parse(raw.trim());
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
// A model sometimes writes one reply per line instead of a JSON array.
|
|
43
|
+
parsed = raw
|
|
44
|
+
.split(/\r?\n/)
|
|
45
|
+
.map((l) => l.replace(/^\s*(?:[-*•]|\d+[.)])\s*/, "").replace(/^["']|["'],?$/g, ""));
|
|
46
|
+
}
|
|
47
|
+
if (!Array.isArray(parsed))
|
|
48
|
+
return [];
|
|
49
|
+
const seen = new Set();
|
|
50
|
+
const out = [];
|
|
51
|
+
for (const item of parsed) {
|
|
52
|
+
if (typeof item !== "string")
|
|
53
|
+
continue;
|
|
54
|
+
const reply = item.trim();
|
|
55
|
+
const key = reply.toLowerCase();
|
|
56
|
+
if (!reply || reply.length > maxLength || seen.has(key))
|
|
57
|
+
continue;
|
|
58
|
+
seen.add(key);
|
|
59
|
+
out.push(reply);
|
|
60
|
+
if (out.length >= max)
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
return out;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Split an answer into the text to show and its suggested replies. Safe on a
|
|
67
|
+
* partial, streaming answer: an unfinished block is hidden, never shown.
|
|
68
|
+
* Text with no block comes back unchanged with `replies: []`.
|
|
69
|
+
*/
|
|
70
|
+
export function extractReplies(text, options = {}) {
|
|
71
|
+
const match = COMPLETE.exec(text);
|
|
72
|
+
if (match) {
|
|
73
|
+
const rest = (text.slice(0, match.index) + text.slice(match.index + match[0].length)).trimEnd();
|
|
74
|
+
return { text: rest, replies: clean(match[1] ?? "", options) };
|
|
75
|
+
}
|
|
76
|
+
const tail = OPEN_TAIL.exec(text);
|
|
77
|
+
// A bare ``` at the end may be the start of an ordinary code block; only
|
|
78
|
+
// hide it while it could still become ours.
|
|
79
|
+
if (tail && tail[0].trim() !== "```") {
|
|
80
|
+
return { text: text.slice(0, tail.index).trimEnd(), replies: [] };
|
|
81
|
+
}
|
|
82
|
+
return { text, replies: [] };
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=replies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replies.js","sourceRoot":"","sources":["../src/replies.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitbaum/chatkit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "One chat for every product: a composer with a microphone that always works, a thread that does not fight the reader, messages with copy and retry, and LLM markdown \u2014 the fleet's chat standard as a package.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Cato",
|
|
@@ -36,8 +36,12 @@
|
|
|
36
36
|
},
|
|
37
37
|
"files": [
|
|
38
38
|
"dist",
|
|
39
|
+
"bin",
|
|
39
40
|
"styles.css"
|
|
40
41
|
],
|
|
42
|
+
"bin": {
|
|
43
|
+
"chatkit-check-file-inputs": "./bin/chatkit-check-file-inputs.mjs"
|
|
44
|
+
},
|
|
41
45
|
"exports": {
|
|
42
46
|
".": {
|
|
43
47
|
"types": "./dist/index.d.ts",
|
|
@@ -47,6 +51,10 @@
|
|
|
47
51
|
"types": "./dist/react/index.d.ts",
|
|
48
52
|
"default": "./dist/react/index.js"
|
|
49
53
|
},
|
|
54
|
+
"./attach": {
|
|
55
|
+
"types": "./dist/react/attach.d.ts",
|
|
56
|
+
"default": "./dist/react/attach.js"
|
|
57
|
+
},
|
|
50
58
|
"./styles.css": "./styles.css"
|
|
51
59
|
},
|
|
52
60
|
"scripts": {
|