@voxagent/bridge 0.4.1 → 0.6.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 +32 -0
- package/dist/cli.js +44 -7
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +15 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +15 -1
- package/dist/config.js.map +1 -1
- package/dist/drivers/claude.d.ts +8 -0
- package/dist/drivers/claude.d.ts.map +1 -1
- package/dist/drivers/claude.js +105 -32
- package/dist/drivers/claude.js.map +1 -1
- package/dist/drivers/codex.js +1 -1
- package/dist/drivers/codex.js.map +1 -1
- package/dist/drivers/inbox.d.ts +26 -0
- package/dist/drivers/inbox.d.ts.map +1 -0
- package/dist/drivers/inbox.js +53 -0
- package/dist/drivers/inbox.js.map +1 -0
- package/dist/drivers/types.d.ts +9 -0
- package/dist/drivers/types.d.ts.map +1 -1
- package/dist/history.d.ts +31 -0
- package/dist/history.d.ts.map +1 -0
- package/dist/history.js +170 -0
- package/dist/history.js.map +1 -0
- package/dist/live/frontend.d.ts +136 -0
- package/dist/live/frontend.d.ts.map +1 -0
- package/dist/live/frontend.js +529 -0
- package/dist/live/frontend.js.map +1 -0
- package/dist/live/mixer.d.ts +38 -0
- package/dist/live/mixer.d.ts.map +1 -0
- package/dist/live/mixer.js +113 -0
- package/dist/live/mixer.js.map +1 -0
- package/dist/live/pcm.d.ts +34 -0
- package/dist/live/pcm.d.ts.map +1 -0
- package/dist/live/pcm.js +66 -0
- package/dist/live/pcm.js.map +1 -0
- package/dist/live/prompts.d.ts +65 -0
- package/dist/live/prompts.d.ts.map +1 -0
- package/dist/live/prompts.js +148 -0
- package/dist/live/prompts.js.map +1 -0
- package/dist/live/session.d.ts +132 -0
- package/dist/live/session.d.ts.map +1 -0
- package/dist/live/session.js +300 -0
- package/dist/live/session.js.map +1 -0
- package/dist/live/speakers.d.ts +54 -0
- package/dist/live/speakers.d.ts.map +1 -0
- package/dist/live/speakers.js +138 -0
- package/dist/live/speakers.js.map +1 -0
- package/dist/live/transcript.d.ts +40 -0
- package/dist/live/transcript.d.ts.map +1 -0
- package/dist/live/transcript.js +72 -0
- package/dist/live/transcript.js.map +1 -0
- package/dist/protocol.d.ts +63 -4
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js.map +1 -1
- package/dist/room.d.ts +25 -0
- package/dist/room.d.ts.map +1 -1
- package/dist/room.js +218 -5
- package/dist/room.js.map +1 -1
- package/dist/version.d.ts +8 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +19 -0
- package/dist/version.js.map +1 -0
- package/package.json +5 -2
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file What GPT-Live heard and said, grouped into speaker-labelled lines.
|
|
3
|
+
*
|
|
4
|
+
* GPT-Live's `session.delegation.created` carries an ID and a timestamp but
|
|
5
|
+
* no task text — the app is expected to work out the request from the
|
|
6
|
+
* transcript. This keeps GPT-Live's own input/output transcript fragments
|
|
7
|
+
* (session-timeline timestamps, no speaker labels), labels input fragments
|
|
8
|
+
* with the speaker tracker's best guess, and renders them as lines for the
|
|
9
|
+
* backend prompt and for reseeding a replacement session.
|
|
10
|
+
*/
|
|
11
|
+
export type LiveLineRole = 'room' | 'assistant';
|
|
12
|
+
export interface LiveTranscriptLine {
|
|
13
|
+
role: LiveLineRole;
|
|
14
|
+
/** Display name for room lines; null when nobody could be identified. */
|
|
15
|
+
speaker: string | null;
|
|
16
|
+
text: string;
|
|
17
|
+
startMs: number;
|
|
18
|
+
endMs: number;
|
|
19
|
+
}
|
|
20
|
+
export declare class LiveTranscript {
|
|
21
|
+
private lines;
|
|
22
|
+
addFragment(role: LiveLineRole, speaker: string | null, delta: string, startMs: number, endMs: number): void;
|
|
23
|
+
/** Lines that ended after `sinceMs`, oldest first. */
|
|
24
|
+
linesSince(sinceMs: number): LiveTranscriptLine[];
|
|
25
|
+
recent(count: number): LiveTranscriptLine[];
|
|
26
|
+
get size(): number;
|
|
27
|
+
clear(): void;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* The slice of the conversation a delegation is about: everything since
|
|
31
|
+
* shortly before the previous hand-off (at least a few lines), and the
|
|
32
|
+
* last identified room speaker as the likely requester.
|
|
33
|
+
*/
|
|
34
|
+
export declare function pickDelegationContext(transcript: LiveTranscript, previousDelegationMs: number, offsetMs: number): {
|
|
35
|
+
heard: LiveTranscriptLine[];
|
|
36
|
+
requester: string | null;
|
|
37
|
+
};
|
|
38
|
+
/** One line as plain text, e.g. `Kay: can you check the build`. */
|
|
39
|
+
export declare function formatLine(line: LiveTranscriptLine, assistantName: string): string;
|
|
40
|
+
//# sourceMappingURL=transcript.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transcript.d.ts","sourceRoot":"","sources":["../../src/live/transcript.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,WAAW,CAAC;AAEhD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,YAAY,CAAC;IACnB,yEAAyE;IACzE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAMD,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAA4B;IAEzC,WAAW,CACT,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GACZ,IAAI;IAmBP,sDAAsD;IACtD,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,EAAE;IAIjD,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,EAAE;IAI3C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,KAAK,IAAI,IAAI;CAGd;AAMD;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,cAAc,EAC1B,oBAAoB,EAAE,MAAM,EAC5B,QAAQ,EAAE,MAAM,GACf;IAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAM3D;AAED,mEAAmE;AACnE,wBAAgB,UAAU,CAAC,IAAI,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAGlF"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file What GPT-Live heard and said, grouped into speaker-labelled lines.
|
|
3
|
+
*
|
|
4
|
+
* GPT-Live's `session.delegation.created` carries an ID and a timestamp but
|
|
5
|
+
* no task text — the app is expected to work out the request from the
|
|
6
|
+
* transcript. This keeps GPT-Live's own input/output transcript fragments
|
|
7
|
+
* (session-timeline timestamps, no speaker labels), labels input fragments
|
|
8
|
+
* with the speaker tracker's best guess, and renders them as lines for the
|
|
9
|
+
* backend prompt and for reseeding a replacement session.
|
|
10
|
+
*/
|
|
11
|
+
/** A pause this long between fragments starts a new line. */
|
|
12
|
+
const LINE_GAP_MS = 1500;
|
|
13
|
+
const MAX_LINES = 400;
|
|
14
|
+
export class LiveTranscript {
|
|
15
|
+
lines = [];
|
|
16
|
+
addFragment(role, speaker, delta, startMs, endMs) {
|
|
17
|
+
if (!delta)
|
|
18
|
+
return;
|
|
19
|
+
// Continue the latest line from the same source unless there was a
|
|
20
|
+
// pause. Fragments from the other role may interleave (full duplex),
|
|
21
|
+
// so look back for this role's newest line rather than only the last.
|
|
22
|
+
for (let i = this.lines.length - 1; i >= 0; i--) {
|
|
23
|
+
const line = this.lines[i];
|
|
24
|
+
if (line.role !== role)
|
|
25
|
+
continue;
|
|
26
|
+
if (line.speaker === speaker && startMs - line.endMs < LINE_GAP_MS) {
|
|
27
|
+
line.text += delta;
|
|
28
|
+
line.endMs = Math.max(line.endMs, endMs);
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
break;
|
|
32
|
+
}
|
|
33
|
+
this.lines.push({ role, speaker, text: delta, startMs, endMs });
|
|
34
|
+
if (this.lines.length > MAX_LINES)
|
|
35
|
+
this.lines.splice(0, this.lines.length - MAX_LINES);
|
|
36
|
+
}
|
|
37
|
+
/** Lines that ended after `sinceMs`, oldest first. */
|
|
38
|
+
linesSince(sinceMs) {
|
|
39
|
+
return this.lines.filter((line) => line.endMs > sinceMs);
|
|
40
|
+
}
|
|
41
|
+
recent(count) {
|
|
42
|
+
return this.lines.slice(-count);
|
|
43
|
+
}
|
|
44
|
+
get size() {
|
|
45
|
+
return this.lines.length;
|
|
46
|
+
}
|
|
47
|
+
clear() {
|
|
48
|
+
this.lines = [];
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/** Overlap with the previous hand-off, so a correction keeps its context. */
|
|
52
|
+
const DELEGATION_OVERLAP_MS = 8_000;
|
|
53
|
+
const MIN_HEARD_LINES = 6;
|
|
54
|
+
/**
|
|
55
|
+
* The slice of the conversation a delegation is about: everything since
|
|
56
|
+
* shortly before the previous hand-off (at least a few lines), and the
|
|
57
|
+
* last identified room speaker as the likely requester.
|
|
58
|
+
*/
|
|
59
|
+
export function pickDelegationContext(transcript, previousDelegationMs, offsetMs) {
|
|
60
|
+
const since = Math.max(0, Math.min(previousDelegationMs, offsetMs) - DELEGATION_OVERLAP_MS);
|
|
61
|
+
let heard = transcript.linesSince(since);
|
|
62
|
+
if (heard.length < MIN_HEARD_LINES)
|
|
63
|
+
heard = transcript.recent(MIN_HEARD_LINES);
|
|
64
|
+
const lastRoomLine = [...heard].reverse().find((line) => line.role === 'room' && line.speaker);
|
|
65
|
+
return { heard, requester: lastRoomLine?.speaker ?? null };
|
|
66
|
+
}
|
|
67
|
+
/** One line as plain text, e.g. `Kay: can you check the build`. */
|
|
68
|
+
export function formatLine(line, assistantName) {
|
|
69
|
+
const who = line.role === 'assistant' ? `${assistantName} (voice assistant)` : line.speaker ?? 'Someone';
|
|
70
|
+
return `${who}: ${line.text.trim()}`;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=transcript.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transcript.js","sourceRoot":"","sources":["../../src/live/transcript.ts"],"names":[],"mappings":"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"}
|
package/dist/protocol.d.ts
CHANGED
|
@@ -58,7 +58,9 @@ export interface CapabilitiesInfo {
|
|
|
58
58
|
* (bridges >= 0.4.0). Browsers then publish every local final as
|
|
59
59
|
* `transcript.final` instead of running the wake regex themselves.
|
|
60
60
|
* `jev` = TypeSafe classifier, `regex` = ported wake-phrase fallback
|
|
61
|
-
* (no TypeSafe key on the host), `shadow` = regex decides, jev is logged
|
|
61
|
+
* (no TypeSafe key on the host), `shadow` = regex decides, jev is logged,
|
|
62
|
+
* `live` = GPT-Live hears the room itself and decides (`--voice-mode
|
|
63
|
+
* live`); browsers still forward finals as speaker-labelled context.
|
|
62
64
|
* Absent on older bridges — the browser keeps the legacy
|
|
63
65
|
* `prompt.user_turn` path.
|
|
64
66
|
*/
|
|
@@ -66,7 +68,7 @@ export interface CapabilitiesInfo {
|
|
|
66
68
|
mode: TriggerMode;
|
|
67
69
|
};
|
|
68
70
|
}
|
|
69
|
-
export type TriggerMode = 'jev' | 'regex' | 'shadow';
|
|
71
|
+
export type TriggerMode = 'jev' | 'regex' | 'shadow' | 'live';
|
|
70
72
|
export interface BridgeHelloEvent {
|
|
71
73
|
type: 'bridge.hello';
|
|
72
74
|
protocolVersion: typeof PROTOCOL_VERSION;
|
|
@@ -230,7 +232,60 @@ export interface AgentTriggerDecisionEvent {
|
|
|
230
232
|
/** In shadow mode: what jev would have done while the regex decided. */
|
|
231
233
|
shadowAction?: TriggerActionKind;
|
|
232
234
|
}
|
|
233
|
-
|
|
235
|
+
/** A tool call as the agent panel's Activity tab shows it. */
|
|
236
|
+
export interface SnapshotTool {
|
|
237
|
+
runId: string;
|
|
238
|
+
toolUseId: string;
|
|
239
|
+
name: string;
|
|
240
|
+
/** Large values arrive truncated to a string. */
|
|
241
|
+
input: unknown;
|
|
242
|
+
status: 'running' | 'success' | 'error';
|
|
243
|
+
output: unknown;
|
|
244
|
+
latencyMs?: number;
|
|
245
|
+
startedAtMs: number;
|
|
246
|
+
}
|
|
247
|
+
/** The run in flight when the snapshot was taken. */
|
|
248
|
+
export interface SnapshotRun {
|
|
249
|
+
runId: string;
|
|
250
|
+
promptId: string;
|
|
251
|
+
startedAtMs: number;
|
|
252
|
+
/** Text the agent has written so far in this run. */
|
|
253
|
+
text: string;
|
|
254
|
+
/** `speaking` = writing text (spoken aloud under TTS, not under GPT-Live). */
|
|
255
|
+
status: 'thinking' | 'speaking' | 'acting';
|
|
256
|
+
model?: string;
|
|
257
|
+
effort?: number;
|
|
258
|
+
}
|
|
259
|
+
export interface SnapshotPermission extends Omit<AgentPermissionRequestEvent, 'type'> {
|
|
260
|
+
createdAtMs: number;
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Everything the agent panel shows, sent to one browser that asked for it
|
|
264
|
+
* with `bridge.snapshot_request` — after a refresh or a late join, when it
|
|
265
|
+
* missed the live events. Budgeted to fit one data-channel message.
|
|
266
|
+
*/
|
|
267
|
+
export interface BridgeSnapshotEvent {
|
|
268
|
+
type: 'bridge.snapshot';
|
|
269
|
+
/** The requester's identity; any other browser ignores the snapshot. */
|
|
270
|
+
forIdentity: string;
|
|
271
|
+
/** Finished replies, oldest first. */
|
|
272
|
+
responses: {
|
|
273
|
+
runId: string;
|
|
274
|
+
text: string;
|
|
275
|
+
createdAtMs: number;
|
|
276
|
+
}[];
|
|
277
|
+
activeRun: SnapshotRun | null;
|
|
278
|
+
/** Tool calls, oldest first. */
|
|
279
|
+
tools: SnapshotTool[];
|
|
280
|
+
usage: {
|
|
281
|
+
inputTokens: number;
|
|
282
|
+
outputTokens: number;
|
|
283
|
+
cachedInputTokens: number;
|
|
284
|
+
runs: number;
|
|
285
|
+
};
|
|
286
|
+
pendingPermissions: SnapshotPermission[];
|
|
287
|
+
}
|
|
288
|
+
export type BridgeOutboundEvent = BridgeHelloEvent | BridgeByeEvent | AgentRunStartEvent | AgentTextDeltaEvent | AgentTextDoneEvent | AgentToolUseStartEvent | AgentToolUseProgressEvent | AgentToolUseEndEvent | AgentThinkingDeltaEvent | AgentRunEndEvent | AgentUsageEvent | AgentPermissionRequestEvent | AgentPermissionResolvedEvent | AgentAttentionEvent | AgentTriggerDecisionEvent | BridgeSnapshotEvent;
|
|
234
289
|
export interface PromptUserTurnEvent {
|
|
235
290
|
type: 'prompt.user_turn';
|
|
236
291
|
promptId: string;
|
|
@@ -308,7 +363,11 @@ export interface PermissionResponseEvent {
|
|
|
308
363
|
requestId: string;
|
|
309
364
|
decision: 'allow' | 'deny';
|
|
310
365
|
}
|
|
311
|
-
|
|
366
|
+
/** A browser that just (re)joined asks the bridge for `bridge.snapshot`. Bridges >= 0.6.0. */
|
|
367
|
+
export interface BridgeSnapshotRequestEvent {
|
|
368
|
+
type: 'bridge.snapshot_request';
|
|
369
|
+
}
|
|
370
|
+
export type BridgeInboundEvent = BridgeSnapshotRequestEvent | PromptUserTurnEvent | PromptInterruptEvent | PromptCancelPendingEvent | PermissionResponseEvent | TranscriptFinalEvent | TranscriptActivityEvent | NudgeResponseEvent;
|
|
312
371
|
export type BridgeEvent = BridgeOutboundEvent | BridgeInboundEvent;
|
|
313
372
|
/**
|
|
314
373
|
* Encodes an event for transmission over the LiveKit data channel.
|
package/dist/protocol.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,gBAAgB,EAAG,CAAU,CAAC;AAE3C;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAG,iBAA0B,CAAC;AAEvD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAG,QAAiB,CAAC;AAEvD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAC;AAC9C,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,QAAQ,CAAC;AAEtD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,YAAY,CAAC;IACtB,0CAA0C;IAC1C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,2CAA2C;IAC3C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,wEAAwE;IACxE,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,0DAA0D;IAC1D,GAAG,EAAE,MAAM,CAAC;IACZ,8BAA8B;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
|
package/dist/protocol.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAU,CAAC;AAE3C;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,iBAA0B,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,QAAiB,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,OAAO,GAAG,qBAAqB,GAAG,MAAM,EAAE,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,OAAO,QAAQ,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;AACpD,CAAC;
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAU,CAAC;AAE3C;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,iBAA0B,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,QAAiB,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,OAAO,GAAG,qBAAqB,GAAG,MAAM,EAAE,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,OAAO,QAAQ,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;AACpD,CAAC;AAiZD;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAkB;IAClD,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AACzD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAmB;IACnD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAuB,CAAC;QACtD,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACjD,OAAO,MAAqB,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/room.d.ts
CHANGED
|
@@ -10,6 +10,10 @@
|
|
|
10
10
|
* - data channel (text deltas, tool events) for UI
|
|
11
11
|
* - TTS engine (text deltas) → AudioSource (PCM frames) for voice
|
|
12
12
|
* - cloud action ingest (tool start/end) for the persisted timeline
|
|
13
|
+
*
|
|
14
|
+
* `--voice-mode live` swaps steps 2 and 4: GPT-Live (live/frontend.ts)
|
|
15
|
+
* hears the room and speaks, and its delegations become the prompts. Run
|
|
16
|
+
* text then goes back to GPT-Live as context instead of into TTS.
|
|
13
17
|
*/
|
|
14
18
|
import type { BridgeConfig } from './config.js';
|
|
15
19
|
import type { AgentDriver } from './drivers/index.js';
|
|
@@ -52,10 +56,29 @@ export declare class BridgeRoomRuntime {
|
|
|
52
56
|
*/
|
|
53
57
|
private trigger;
|
|
54
58
|
private jev;
|
|
59
|
+
/** GPT-Live voice front end under `--voice-mode live`; replaces TTS + trigger. */
|
|
60
|
+
private live;
|
|
61
|
+
/** promptId → GPT-Live delegation ID, for runs a delegation started. */
|
|
62
|
+
private delegationByPrompt;
|
|
63
|
+
/** What the agent panel has shown, replayed to browsers that refresh or join late. */
|
|
64
|
+
private readonly history;
|
|
55
65
|
constructor(options: RoomRuntimeOptions);
|
|
56
66
|
private createTriggerEngine;
|
|
57
67
|
start(): Promise<void>;
|
|
58
68
|
shutdown(reason?: 'shutdown' | 'error'): Promise<void>;
|
|
69
|
+
private startLiveVoice;
|
|
70
|
+
private handleMetadataChanged;
|
|
71
|
+
private applyMuteFromMetadata;
|
|
72
|
+
/**
|
|
73
|
+
* GPT-Live handed off a task. Idle agent: a new run. Agent already
|
|
74
|
+
* working: the hand-off goes into that run as a new message and the agent
|
|
75
|
+
* decides what it means (a correction, a separate request to do next, or
|
|
76
|
+
* "stop") — nothing is cancelled. Backends that can't take mid-run input
|
|
77
|
+
* (Codex), or a run that is already wrapping up, queue it instead.
|
|
78
|
+
*/
|
|
79
|
+
private startDelegatedRun;
|
|
80
|
+
/** Live mode: hand the settled run's reply back to GPT-Live to speak. */
|
|
81
|
+
private reportLiveOutcome;
|
|
59
82
|
private handleDisconnect;
|
|
60
83
|
private handleDataReceived;
|
|
61
84
|
/**
|
|
@@ -99,6 +122,8 @@ export declare class BridgeRoomRuntime {
|
|
|
99
122
|
private runPrompt;
|
|
100
123
|
private pumpAudio;
|
|
101
124
|
private handleDriverEvent;
|
|
125
|
+
/** Replays the panel's state to one browser (refresh / late join). */
|
|
126
|
+
private sendSnapshot;
|
|
102
127
|
private publishEvent;
|
|
103
128
|
private ingestActionStart;
|
|
104
129
|
private ingestActionEnd;
|
package/dist/room.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"room.d.ts","sourceRoot":"","sources":["../src/room.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"room.d.ts","sourceRoot":"","sources":["../src/room.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAWH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,oBAAoB,CAAC;AAKnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAML,KAAK,gBAAgB,EAEtB,MAAM,eAAe,CAAC;AAMvB,UAAU,kBAAkB;IAC1B,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,EAAE,gBAAgB,CAAC;IAC/B,gBAAgB,EAAE,gBAAgB,CAAC;CACpC;AA8BD,qBAAa,iBAAiB;IAmChB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAlCpC,OAAO,CAAC,IAAI,CAAO;IACnB,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,GAAG,CAA0B;IACrC,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,cAAc,CAA6B;IACnD;;;;;;;;;OASG;IACH,OAAO,CAAC,qBAAqB,CAA0B;IACvD,oEAAoE;IACpE,OAAO,CAAC,KAAK,CAAmC;IAChD;;;;OAIG;IACH,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,GAAG,CAA8B;IACzC,kFAAkF;IAClF,OAAO,CAAC,IAAI,CAAkC;IAC9C,wEAAwE;IACxE,OAAO,CAAC,kBAAkB,CAAkC;IAC5D,sFAAsF;IACtF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;gBAEnB,OAAO,EAAE,kBAAkB;IAKxD,OAAO,CAAC,mBAAmB;IA0CrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA2EtB,QAAQ,CAAC,MAAM,GAAE,UAAU,GAAG,OAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;YAwC1D,cAAc;IAoC5B,OAAO,CAAC,qBAAqB,CAM3B;IAEF,OAAO,CAAC,qBAAqB;IAU7B;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IA+BzB,yEAAyE;IACzE,OAAO,CAAC,iBAAiB;IAiBzB,OAAO,CAAC,gBAAgB,CAKtB;IAEF,OAAO,CAAC,kBAAkB,CAoCxB;IAEF;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,cAAc;IAqBtB,OAAO,CAAC,iBAAiB;IAoBzB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAUnB,uEAAuE;YACzD,QAAQ;YAMR,aAAa;YAqCb,YAAY;IAU1B;;;;;;;;;;;;;;;;;;;OAmBG;YACW,kBAAkB;YAgBlB,SAAS;YAmJT,SAAS;YAcT,iBAAiB;IA4I/B,sEAAsE;YACxD,YAAY;YAyBZ,YAAY;YAiBZ,iBAAiB;YASjB,eAAe;YASf,UAAU;CAuBzB"}
|