orquesta-agent 0.2.259 → 0.2.261
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/dist/call-fillers.d.ts +11 -0
- package/dist/call-fillers.d.ts.map +1 -0
- package/dist/call-fillers.js +47 -0
- package/dist/call-fillers.js.map +1 -0
- package/dist/call-presence.d.ts +20 -0
- package/dist/call-presence.d.ts.map +1 -0
- package/dist/call-presence.js +37 -0
- package/dist/call-presence.js.map +1 -0
- package/dist/coordination.d.ts +2 -0
- package/dist/coordination.d.ts.map +1 -1
- package/dist/coordination.js +94 -39
- package/dist/coordination.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const QUICK_FILLER_AFTER_MS = 1800;
|
|
2
|
+
export declare const QUICK_FILLERS: string[];
|
|
3
|
+
/** Next filler index, never the one said last (-1 = none said yet). */
|
|
4
|
+
export declare function pickQuickFiller(lastIdx: number, rand?: () => number): number;
|
|
5
|
+
/**
|
|
6
|
+
* Awaits `work`; if it is still pending after `afterMs`, calls `fill` once
|
|
7
|
+
* (without cancelling the work). The fill is awaited before returning so the
|
|
8
|
+
* filler never overlaps the real answer that follows it.
|
|
9
|
+
*/
|
|
10
|
+
export declare function withQuickFiller<T>(work: Promise<T>, fill: () => Promise<void>, afterMs?: number): Promise<T>;
|
|
11
|
+
//# sourceMappingURL=call-fillers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"call-fillers.d.ts","sourceRoot":"","sources":["../src/call-fillers.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,qBAAqB,OAAQ,CAAA;AAE1C,eAAO,MAAM,aAAa,UAOzB,CAAA;AAED,uEAAuE;AACvE,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,MAAoB,GAAG,MAAM,CAKzF;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,SAAwB,GAAG,OAAO,CAAC,CAAC,CAAC,CAajI"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
// Short spoken fillers for the gap between the caller finishing a sentence and
|
|
2
|
+
// the brain's answer. A silent second or two on a voice call reads as a dropped
|
|
3
|
+
// line, so once the answer is late the agent says one of these.
|
|
4
|
+
//
|
|
5
|
+
// They are not added to the call transcript: the brain should answer what the
|
|
6
|
+
// caller said, not react to its own "un momento".
|
|
7
|
+
export const QUICK_FILLER_AFTER_MS = 1_800;
|
|
8
|
+
export const QUICK_FILLERS = [
|
|
9
|
+
'Un momento, por favor.',
|
|
10
|
+
'Déjame ver…',
|
|
11
|
+
'Mmm, dame un segundo.',
|
|
12
|
+
'A ver, un momento.',
|
|
13
|
+
'Ya te digo.',
|
|
14
|
+
'Déjame revisar.',
|
|
15
|
+
];
|
|
16
|
+
/** Next filler index, never the one said last (-1 = none said yet). */
|
|
17
|
+
export function pickQuickFiller(lastIdx, rand = Math.random) {
|
|
18
|
+
const n = QUICK_FILLERS.length;
|
|
19
|
+
if (lastIdx < 0 || lastIdx >= n)
|
|
20
|
+
return Math.floor(rand() * n) % n;
|
|
21
|
+
const step = 1 + (Math.floor(rand() * (n - 1)) % (n - 1));
|
|
22
|
+
return (lastIdx + step) % n;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Awaits `work`; if it is still pending after `afterMs`, calls `fill` once
|
|
26
|
+
* (without cancelling the work). The fill is awaited before returning so the
|
|
27
|
+
* filler never overlaps the real answer that follows it.
|
|
28
|
+
*/
|
|
29
|
+
export async function withQuickFiller(work, fill, afterMs = QUICK_FILLER_AFTER_MS) {
|
|
30
|
+
let timer;
|
|
31
|
+
let filling = null;
|
|
32
|
+
const tick = new Promise(resolve => { timer = setTimeout(() => resolve('late'), afterMs); });
|
|
33
|
+
try {
|
|
34
|
+
const first = await Promise.race([work.then(() => 'done', () => 'done'), tick]);
|
|
35
|
+
if (first === 'late')
|
|
36
|
+
filling = fill().catch(() => undefined);
|
|
37
|
+
const result = await work;
|
|
38
|
+
if (filling)
|
|
39
|
+
await filling;
|
|
40
|
+
return result;
|
|
41
|
+
}
|
|
42
|
+
finally {
|
|
43
|
+
if (timer)
|
|
44
|
+
clearTimeout(timer);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=call-fillers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"call-fillers.js","sourceRoot":"","sources":["../src/call-fillers.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,gFAAgF;AAChF,gEAAgE;AAChE,EAAE;AACF,8EAA8E;AAC9E,kDAAkD;AAElD,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAA;AAE1C,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,wBAAwB;IACxB,aAAa;IACb,uBAAuB;IACvB,oBAAoB;IACpB,aAAa;IACb,iBAAiB;CAClB,CAAA;AAED,uEAAuE;AACvE,MAAM,UAAU,eAAe,CAAC,OAAe,EAAE,OAAqB,IAAI,CAAC,MAAM;IAC/E,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAA;IAC9B,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;IAClE,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACzD,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;AAC7B,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAI,IAAgB,EAAE,IAAyB,EAAE,OAAO,GAAG,qBAAqB;IACnH,IAAI,KAAgD,CAAA;IACpD,IAAI,OAAO,GAAyB,IAAI,CAAA;IACxC,MAAM,IAAI,GAAG,IAAI,OAAO,CAAS,OAAO,CAAC,EAAE,GAAG,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;IACnG,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAe,EAAE,GAAG,EAAE,CAAC,MAAe,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;QACjG,IAAI,KAAK,KAAK,MAAM;YAAE,OAAO,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QAC7D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAA;QACzB,IAAI,OAAO;YAAE,MAAM,OAAO,CAAA;QAC1B,OAAO,MAAM,CAAA;IACf,CAAC;YAAS,CAAC;QACT,IAAI,KAAK;YAAE,YAAY,CAAC,KAAK,CAAC,CAAA;IAChC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface CallMessage {
|
|
2
|
+
from?: string;
|
|
3
|
+
text?: string;
|
|
4
|
+
at?: number;
|
|
5
|
+
}
|
|
6
|
+
export declare function msAt(at: number | undefined): number;
|
|
7
|
+
export declare function isSpeech(m: CallMessage): boolean;
|
|
8
|
+
/**
|
|
9
|
+
* What the caller said before we joined and nobody answered — on a ring, the
|
|
10
|
+
* very phrase that woke us. Everything after our own last line, not older than
|
|
11
|
+
* `maxAgeMs` (a sentence from yesterday's call is not a question for today).
|
|
12
|
+
*/
|
|
13
|
+
export declare function unansweredBeforeJoin(callsign: string, history: CallMessage[], now: number, maxAgeMs?: number): CallMessage[];
|
|
14
|
+
/**
|
|
15
|
+
* Whether anyone but us is still on the call. `null` roster = could not read
|
|
16
|
+
* it; that counts as present, so a flaky roster never makes the agent walk out
|
|
17
|
+
* on someone mid-conversation (CALL_MAX_MS still bounds the call).
|
|
18
|
+
*/
|
|
19
|
+
export declare function othersPresent(callsign: string, roster: string[] | null): boolean;
|
|
20
|
+
//# sourceMappingURL=call-presence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"call-presence.d.ts","sourceRoot":"","sources":["../src/call-presence.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAAG,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE;AAO1E,wBAAgB,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAGnD;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO,CAEhD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,WAAW,EAAE,EACtB,GAAG,EAAE,MAAM,EACX,QAAQ,SAAa,GACpB,WAAW,EAAE,CASf;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,OAAO,CAGhF"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// Pure decisions for the video-call relay (coordination.ts runVideoCall), kept
|
|
2
|
+
// apart so they can be unit-tested without a channel.
|
|
3
|
+
// Lines that are plumbing between the browser and the agent, never speech.
|
|
4
|
+
const PLUMBING = /^\[(rtc|screen-share|avatar|scene|via)\b/;
|
|
5
|
+
// Channel timestamps are ms; accept seconds too so a server change cannot make
|
|
6
|
+
// every line look like it was said in 1970.
|
|
7
|
+
export function msAt(at) {
|
|
8
|
+
const n = at ?? 0;
|
|
9
|
+
return n > 0 && n < 1e12 ? n * 1000 : n;
|
|
10
|
+
}
|
|
11
|
+
export function isSpeech(m) {
|
|
12
|
+
return !!m.from && !!(m.text || '').trim() && !PLUMBING.test(m.text || '');
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* What the caller said before we joined and nobody answered — on a ring, the
|
|
16
|
+
* very phrase that woke us. Everything after our own last line, not older than
|
|
17
|
+
* `maxAgeMs` (a sentence from yesterday's call is not a question for today).
|
|
18
|
+
*/
|
|
19
|
+
export function unansweredBeforeJoin(callsign, history, now, maxAgeMs = 2 * 60_000) {
|
|
20
|
+
const mine = history.filter(m => m.from === callsign).map(m => msAt(m.at));
|
|
21
|
+
const lastMine = mine.length ? Math.max(...mine) : 0;
|
|
22
|
+
return history.filter(m => isSpeech(m) &&
|
|
23
|
+
m.from !== callsign &&
|
|
24
|
+
msAt(m.at) > lastMine &&
|
|
25
|
+
now - msAt(m.at) <= maxAgeMs);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Whether anyone but us is still on the call. `null` roster = could not read
|
|
29
|
+
* it; that counts as present, so a flaky roster never makes the agent walk out
|
|
30
|
+
* on someone mid-conversation (CALL_MAX_MS still bounds the call).
|
|
31
|
+
*/
|
|
32
|
+
export function othersPresent(callsign, roster) {
|
|
33
|
+
if (roster === null)
|
|
34
|
+
return true;
|
|
35
|
+
return roster.some(c => c && c !== callsign);
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=call-presence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"call-presence.js","sourceRoot":"","sources":["../src/call-presence.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,sDAAsD;AAItD,2EAA2E;AAC3E,MAAM,QAAQ,GAAG,0CAA0C,CAAA;AAE3D,+EAA+E;AAC/E,4CAA4C;AAC5C,MAAM,UAAU,IAAI,CAAC,EAAsB;IACzC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;AACzC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,CAAc;IACrC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;AAC5E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,QAAgB,EAChB,OAAsB,EACtB,GAAW,EACX,QAAQ,GAAG,CAAC,GAAG,MAAM;IAErB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACpD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACxB,QAAQ,CAAC,CAAC,CAAC;QACX,CAAC,CAAC,IAAI,KAAK,QAAQ;QACnB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ;QACrB,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,QAAQ,CAC7B,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,MAAuB;IACrE,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAChC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAA;AAC9C,CAAC"}
|
package/dist/coordination.d.ts
CHANGED
|
@@ -18,6 +18,8 @@ export interface CoordSpec {
|
|
|
18
18
|
mode?: 'chat' | 'call';
|
|
19
19
|
/** Call mode: the human's callsign in the room, for the greeting copy. */
|
|
20
20
|
humanCallsign?: string;
|
|
21
|
+
/** Call mode: the meet avatar the agent wears (project setting, default a formal human). */
|
|
22
|
+
avatar?: string;
|
|
21
23
|
}
|
|
22
24
|
/** Extract the coordination spec from a dispatch prompt, or null if absent. */
|
|
23
25
|
export declare function parseCoordSpec(content: string): CoordSpec | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coordination.d.ts","sourceRoot":"","sources":["../src/coordination.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"coordination.d.ts","sourceRoot":"","sources":["../src/coordination.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAA;IAC3C;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,0EAA0E;IAC1E,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,4FAA4F;IAC5F,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAID,+EAA+E;AAC/E,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAUhE;AAkFD;;;GAGG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CA0F1H;AAsHD;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAsL9I"}
|
package/dist/coordination.js
CHANGED
|
@@ -16,6 +16,8 @@
|
|
|
16
16
|
* this module just run the prompt's curl steps as before (graceful fallback).
|
|
17
17
|
*/
|
|
18
18
|
import * as logger from './logger.js';
|
|
19
|
+
import { QUICK_FILLERS, pickQuickFiller, withQuickFiller } from './call-fillers.js';
|
|
20
|
+
import { isSpeech, othersPresent, unansweredBeforeJoin } from './call-presence.js';
|
|
19
21
|
const MARKER_RE = /<<ORQ_COORD>>([\s\S]*?)<<\/ORQ_COORD>>/;
|
|
20
22
|
/** Extract the coordination spec from a dispatch prompt, or null if absent. */
|
|
21
23
|
export function parseCoordSpec(content) {
|
|
@@ -286,7 +288,8 @@ function spokenReplyIsOwed(spec, history, lastMineAt) {
|
|
|
286
288
|
// (a cheap model there answers from the project context Orquesta holds, and
|
|
287
289
|
// turns a request for real work into a prompt on this project), speaks the
|
|
288
290
|
// answer, and speaks each task's result when it lands. It stays while the
|
|
289
|
-
// conversation is alive
|
|
291
|
+
// conversation is alive; after CALL_IDLE_MS of silence it checks the roster
|
|
292
|
+
// and leaves only once nobody else is on the call.
|
|
290
293
|
const CALL_IDLE_MS = 3 * 60_000;
|
|
291
294
|
const CALL_MAX_MS = 30 * 60_000;
|
|
292
295
|
const CALL_LISTEN_S = 20;
|
|
@@ -395,25 +398,106 @@ export async function runVideoCall(spec, orquestaToken, log, callPromptId) {
|
|
|
395
398
|
openTasks = tasks.filter(isOpen);
|
|
396
399
|
return said;
|
|
397
400
|
};
|
|
401
|
+
// What was said before we joined — on a ring, the phrase that woke us. Read
|
|
402
|
+
// BEFORE the hello: answering it is the whole point of being rung, and the
|
|
403
|
+
// listen loop only sees what arrives after we joined.
|
|
404
|
+
let before = [];
|
|
405
|
+
try {
|
|
406
|
+
const hr = await rr(spec, `/api/channels/${spec.channelId}/history?limit=20`);
|
|
407
|
+
before = (await hr.json().catch(() => ({}))).history || [];
|
|
408
|
+
}
|
|
409
|
+
catch { /* best-effort: without it we just greet */ }
|
|
410
|
+
for (const m of before.filter(isSpeech).slice(-12)) {
|
|
411
|
+
transcript.push({ role: m.from === spec.callsign ? 'agent' : 'caller', text: m.text || '' });
|
|
412
|
+
}
|
|
413
|
+
const owedOnJoin = unansweredBeforeJoin(spec.callsign, before, Date.now());
|
|
414
|
+
// Who else is on the call. null = unreadable (counted as present).
|
|
415
|
+
const roster = async () => {
|
|
416
|
+
try {
|
|
417
|
+
const r = await rr(spec, `/api/channels/${spec.channelId}/roster`, { headers: sid() });
|
|
418
|
+
if (!r.ok)
|
|
419
|
+
return null;
|
|
420
|
+
const j = await r.json();
|
|
421
|
+
return Array.isArray(j.roster) ? j.roster : null;
|
|
422
|
+
}
|
|
423
|
+
catch {
|
|
424
|
+
return null;
|
|
425
|
+
}
|
|
426
|
+
};
|
|
398
427
|
try {
|
|
399
428
|
// 2. STATUS PING — tells the browser this participant is an agent and gives
|
|
400
429
|
// it a face + a spoken voice. Without it nothing the agent says is spoken.
|
|
401
430
|
await send('joining the call', 'status');
|
|
402
431
|
// 3. AVATAR — sticks for the whole call.
|
|
403
|
-
await send(
|
|
404
|
-
// 4. SPOKEN HELLO
|
|
405
|
-
await say(`Hola, soy el agente de ${spec.projectName}. ¿En qué te ayudo?`);
|
|
406
|
-
log('In the call — announced myself');
|
|
407
|
-
// 5. RELAY loop. Stays while there is conversation or work in flight.
|
|
432
|
+
await send(`[avatar]${/^[a-z]{2,20}$/.test(spec.avatar || '') ? spec.avatar : 'kenji'}`);
|
|
408
433
|
const startedAt = Date.now();
|
|
409
434
|
let lastActivity = Date.now();
|
|
410
435
|
let lastFiller = Date.now();
|
|
411
436
|
let lastMineAt = Date.now();
|
|
437
|
+
let lastRosterCheck = 0;
|
|
412
438
|
let fillerIdx = 0;
|
|
413
|
-
|
|
439
|
+
let quickIdx = -1;
|
|
440
|
+
// Spoken while the answer is late; sent, not said, so it stays out of the transcript.
|
|
441
|
+
const quickFiller = async () => {
|
|
442
|
+
quickIdx = pickQuickFiller(quickIdx);
|
|
443
|
+
await send(QUICK_FILLERS[quickIdx]);
|
|
444
|
+
};
|
|
445
|
+
// One spoken turn for `fresh` caller lines (already in the transcript).
|
|
446
|
+
// Returns true when the brain says the call is over.
|
|
447
|
+
const answer = async (fresh) => {
|
|
448
|
+
let reply = '';
|
|
449
|
+
let end = false;
|
|
450
|
+
if (useServer) {
|
|
451
|
+
const turn = await withQuickFiller(callTurn(orquestaToken, callPromptId, transcript), quickFiller);
|
|
452
|
+
if (turn === 'unsupported') {
|
|
453
|
+
useServer = false;
|
|
454
|
+
log('Server call brain unavailable — answering locally');
|
|
455
|
+
}
|
|
456
|
+
else if (turn) {
|
|
457
|
+
reply = turn.say;
|
|
458
|
+
end = turn.end;
|
|
459
|
+
// A turn can also report a task that finished meanwhile.
|
|
460
|
+
await speakFinished(turn.tasks);
|
|
461
|
+
openTasks = turn.tasks.filter(isOpen);
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
if (!useServer)
|
|
465
|
+
reply = (await withQuickFiller(draftSpokenReply(spec, fresh, orquestaToken), quickFiller)) || '';
|
|
466
|
+
// Never leave the caller in silence: an empty answer is a real failure
|
|
467
|
+
// (logged), but they still hear something and can say it again.
|
|
468
|
+
if (!reply) {
|
|
469
|
+
logger.warn('[coordination] empty call reply — asking the caller to repeat');
|
|
470
|
+
reply = 'Perdón, no te escuché bien. ¿Me lo repites?';
|
|
471
|
+
}
|
|
472
|
+
await say(reply);
|
|
473
|
+
turns++;
|
|
474
|
+
lastMineAt = Date.now();
|
|
475
|
+
lastFiller = Date.now();
|
|
476
|
+
lastActivity = Date.now();
|
|
477
|
+
return end;
|
|
478
|
+
};
|
|
479
|
+
// 4. OPENING — answer what woke us; greet only when nothing is waiting.
|
|
480
|
+
let endedOnJoin = false;
|
|
481
|
+
if (owedOnJoin.length > 0) {
|
|
482
|
+
log(`Answering what was said before joining (${owedOnJoin.length} line${owedOnJoin.length === 1 ? '' : 's'})`);
|
|
483
|
+
endedOnJoin = await answer(owedOnJoin);
|
|
484
|
+
}
|
|
485
|
+
else {
|
|
486
|
+
await say(`Hola, soy el agente de ${spec.projectName}. ¿En qué te ayudo?`);
|
|
487
|
+
lastMineAt = Date.now();
|
|
488
|
+
}
|
|
489
|
+
log('In the call');
|
|
490
|
+
// 5. RELAY loop. Stays while someone is on the call or work is in flight;
|
|
491
|
+
// silence alone never ends it (people think, share screens, talk to each other).
|
|
492
|
+
while (!endedOnJoin && Date.now() - startedAt < CALL_MAX_MS) {
|
|
414
493
|
const idleFor = Date.now() - lastActivity;
|
|
415
|
-
if (openTasks.length === 0 && idleFor > CALL_IDLE_MS)
|
|
416
|
-
|
|
494
|
+
if (openTasks.length === 0 && idleFor > CALL_IDLE_MS && Date.now() - lastRosterCheck > 60_000) {
|
|
495
|
+
lastRosterCheck = Date.now();
|
|
496
|
+
if (!othersPresent(spec.callsign, await roster())) {
|
|
497
|
+
log('Nobody left on the call');
|
|
498
|
+
break;
|
|
499
|
+
}
|
|
500
|
+
}
|
|
417
501
|
const lr = await rr(spec, `/api/channels/${spec.channelId}/listen?timeout=${CALL_LISTEN_S}`, { headers: sid() }).catch(() => null);
|
|
418
502
|
if (!lr) {
|
|
419
503
|
await new Promise(r => setTimeout(r, 3000));
|
|
@@ -422,38 +506,9 @@ export async function runVideoCall(spec, orquestaToken, log, callPromptId) {
|
|
|
422
506
|
const data = (await lr.json().catch(() => ({})));
|
|
423
507
|
const fresh = spokenReplyIsOwed(spec, data.messages || [], lastMineAt);
|
|
424
508
|
if (fresh.length > 0) {
|
|
425
|
-
lastActivity = Date.now();
|
|
426
509
|
for (const m of fresh)
|
|
427
510
|
transcript.push({ role: 'caller', text: m.text || '' });
|
|
428
|
-
|
|
429
|
-
let end = false;
|
|
430
|
-
if (useServer) {
|
|
431
|
-
const turn = await callTurn(orquestaToken, callPromptId, transcript);
|
|
432
|
-
if (turn === 'unsupported') {
|
|
433
|
-
useServer = false;
|
|
434
|
-
log('Server call brain unavailable — answering locally');
|
|
435
|
-
}
|
|
436
|
-
else if (turn) {
|
|
437
|
-
reply = turn.say;
|
|
438
|
-
end = turn.end;
|
|
439
|
-
// A turn can also report a task that finished meanwhile.
|
|
440
|
-
await speakFinished(turn.tasks);
|
|
441
|
-
openTasks = turn.tasks.filter(isOpen);
|
|
442
|
-
}
|
|
443
|
-
}
|
|
444
|
-
if (!useServer)
|
|
445
|
-
reply = (await draftSpokenReply(spec, fresh, orquestaToken)) || '';
|
|
446
|
-
// Never leave the caller in silence: an empty answer is a real failure
|
|
447
|
-
// (logged), but they still hear something and can say it again.
|
|
448
|
-
if (!reply) {
|
|
449
|
-
logger.warn('[coordination] empty call reply — asking the caller to repeat');
|
|
450
|
-
reply = 'Perdón, no te escuché bien. ¿Me lo repites?';
|
|
451
|
-
}
|
|
452
|
-
await say(reply);
|
|
453
|
-
turns++;
|
|
454
|
-
lastMineAt = Date.now();
|
|
455
|
-
lastFiller = Date.now();
|
|
456
|
-
if (end)
|
|
511
|
+
if (await answer(fresh))
|
|
457
512
|
break;
|
|
458
513
|
continue;
|
|
459
514
|
}
|
package/dist/coordination.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coordination.js","sourceRoot":"","sources":["../src/coordination.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"coordination.js","sourceRoot":"","sources":["../src/coordination.ts"],"names":[],"mappings":"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"}
|