@voxagent/bridge 0.3.6 → 0.4.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 +27 -0
- package/dist/cli.js +22 -2
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +26 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +46 -1
- package/dist/config.js.map +1 -1
- package/dist/drivers/claude.d.ts.map +1 -1
- package/dist/drivers/claude.js +6 -1
- package/dist/drivers/claude.js.map +1 -1
- package/dist/drivers/codex.d.ts.map +1 -1
- package/dist/drivers/codex.js +5 -1
- package/dist/drivers/codex.js.map +1 -1
- package/dist/drivers/types.d.ts +9 -0
- package/dist/drivers/types.d.ts.map +1 -1
- package/dist/protocol.d.ts +103 -2
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js.map +1 -1
- package/dist/room.d.ts +20 -0
- package/dist/room.d.ts.map +1 -1
- package/dist/room.js +220 -8
- package/dist/room.js.map +1 -1
- package/dist/trigger/addressing.d.ts +40 -0
- package/dist/trigger/addressing.d.ts.map +1 -0
- package/dist/trigger/addressing.js +90 -0
- package/dist/trigger/addressing.js.map +1 -0
- package/dist/trigger/decide.d.ts +33 -0
- package/dist/trigger/decide.d.ts.map +1 -0
- package/dist/trigger/decide.js +133 -0
- package/dist/trigger/decide.js.map +1 -0
- package/dist/trigger/effort.d.ts +26 -0
- package/dist/trigger/effort.d.ts.map +1 -0
- package/dist/trigger/effort.js +66 -0
- package/dist/trigger/effort.js.map +1 -0
- package/dist/trigger/engine.d.ts +120 -0
- package/dist/trigger/engine.d.ts.map +1 -0
- package/dist/trigger/engine.js +515 -0
- package/dist/trigger/engine.js.map +1 -0
- package/dist/trigger/jev.d.ts +52 -0
- package/dist/trigger/jev.d.ts.map +1 -0
- package/dist/trigger/jev.js +204 -0
- package/dist/trigger/jev.js.map +1 -0
- package/dist/trigger/questions.d.ts +43 -0
- package/dist/trigger/questions.d.ts.map +1 -0
- package/dist/trigger/questions.js +243 -0
- package/dist/trigger/questions.js.map +1 -0
- package/dist/trigger/types.d.ts +175 -0
- package/dist/trigger/types.d.ts.map +1 -0
- package/dist/trigger/types.js +29 -0
- package/dist/trigger/types.js.map +1 -0
- package/package.json +11 -10
package/dist/protocol.d.ts
CHANGED
|
@@ -53,7 +53,20 @@ export interface CapabilitiesInfo {
|
|
|
53
53
|
* bridges < 0.3.2.
|
|
54
54
|
*/
|
|
55
55
|
ttsProvider?: TtsProviderHint;
|
|
56
|
+
/**
|
|
57
|
+
* Present when the bridge owns the "should the agent act?" decision
|
|
58
|
+
* (bridges >= 0.4.0). Browsers then publish every local final as
|
|
59
|
+
* `transcript.final` instead of running the wake regex themselves.
|
|
60
|
+
* `jev` = TypeSafe classifier, `regex` = ported wake-phrase fallback
|
|
61
|
+
* (no TypeSafe key on the host), `shadow` = regex decides, jev is logged.
|
|
62
|
+
* Absent on older bridges — the browser keeps the legacy
|
|
63
|
+
* `prompt.user_turn` path.
|
|
64
|
+
*/
|
|
65
|
+
trigger?: {
|
|
66
|
+
mode: TriggerMode;
|
|
67
|
+
};
|
|
56
68
|
}
|
|
69
|
+
export type TriggerMode = 'jev' | 'regex' | 'shadow';
|
|
57
70
|
export interface BridgeHelloEvent {
|
|
58
71
|
type: 'bridge.hello';
|
|
59
72
|
protocolVersion: typeof PROTOCOL_VERSION;
|
|
@@ -85,6 +98,10 @@ export interface AgentRunStartEvent {
|
|
|
85
98
|
runId: string;
|
|
86
99
|
promptId: string;
|
|
87
100
|
startedAtMs: number;
|
|
101
|
+
/** Model this run was routed to. Set when the bridge runs `--llm-model auto`. */
|
|
102
|
+
model?: string;
|
|
103
|
+
/** Effort level (0-3) the trigger classifier assigned to this turn. */
|
|
104
|
+
effort?: number;
|
|
88
105
|
}
|
|
89
106
|
export interface AgentTextDeltaEvent {
|
|
90
107
|
type: 'agent.text_delta';
|
|
@@ -170,7 +187,50 @@ export interface AgentPermissionResolvedEvent {
|
|
|
170
187
|
requestId: string;
|
|
171
188
|
decision: 'allow' | 'deny' | 'expired';
|
|
172
189
|
}
|
|
173
|
-
export type
|
|
190
|
+
export type AgentAttentionState = 'idle' | 'listening' | 'nudge';
|
|
191
|
+
/**
|
|
192
|
+
* What the agent's "ear" is doing between runs. `listening` = an
|
|
193
|
+
* utterance addressed to the agent is being held until the thought
|
|
194
|
+
* completes. `nudge` = the bridge isn't sure enough to speak, so it
|
|
195
|
+
* offers instead; any participant can accept or dismiss.
|
|
196
|
+
*/
|
|
197
|
+
export interface AgentAttentionEvent {
|
|
198
|
+
type: 'agent.attention';
|
|
199
|
+
state: AgentAttentionState;
|
|
200
|
+
/** Display name of the speaker whose utterance caused this state. */
|
|
201
|
+
speaker?: string;
|
|
202
|
+
/** Present for `nudge`. Echo it back in `nudge.response`. */
|
|
203
|
+
nudgeId?: string;
|
|
204
|
+
/** `unsure` = "was that for me?", `offer` = "I can help with that". */
|
|
205
|
+
nudgeKind?: 'unsure' | 'offer';
|
|
206
|
+
/** The utterance being held or offered on. */
|
|
207
|
+
text?: string;
|
|
208
|
+
expiresAtMs?: number;
|
|
209
|
+
}
|
|
210
|
+
export type TriggerActionKind = 'ignore' | 'hold' | 'run' | 'nudge' | 'append' | 'supersede' | 'queue' | 'stop_talking' | 'abort';
|
|
211
|
+
/**
|
|
212
|
+
* Debug/telemetry record of one trigger decision. Rendered in the
|
|
213
|
+
* Agent panel's Activity tab so a host can see why the agent did or
|
|
214
|
+
* didn't react. Probabilities are rounded; never used for control flow
|
|
215
|
+
* on the web side.
|
|
216
|
+
*/
|
|
217
|
+
export interface AgentTriggerDecisionEvent {
|
|
218
|
+
type: 'agent.trigger_decision';
|
|
219
|
+
entryId: string;
|
|
220
|
+
speaker: string;
|
|
221
|
+
text: string;
|
|
222
|
+
action: TriggerActionKind;
|
|
223
|
+
/** Which layer decided: jev answers, the regex fallback, or a hard rule. */
|
|
224
|
+
source: 'jev' | 'regex' | 'rule';
|
|
225
|
+
/** Short human-readable reason, e.g. "addressee agent 0.93 >= 0.80". */
|
|
226
|
+
reason: string;
|
|
227
|
+
latencyMs?: number;
|
|
228
|
+
/** Flattened jev answers, e.g. `{ "addressee.agent": 0.93, "effort": 1.4 }`. */
|
|
229
|
+
signals?: Record<string, number>;
|
|
230
|
+
/** In shadow mode: what jev would have done while the regex decided. */
|
|
231
|
+
shadowAction?: TriggerActionKind;
|
|
232
|
+
}
|
|
233
|
+
export type BridgeOutboundEvent = BridgeHelloEvent | BridgeByeEvent | AgentRunStartEvent | AgentTextDeltaEvent | AgentTextDoneEvent | AgentToolUseStartEvent | AgentToolUseProgressEvent | AgentToolUseEndEvent | AgentThinkingDeltaEvent | AgentRunEndEvent | AgentUsageEvent | AgentPermissionRequestEvent | AgentPermissionResolvedEvent | AgentAttentionEvent | AgentTriggerDecisionEvent;
|
|
174
234
|
export interface PromptUserTurnEvent {
|
|
175
235
|
type: 'prompt.user_turn';
|
|
176
236
|
promptId: string;
|
|
@@ -188,6 +248,47 @@ export interface PromptUserTurnEvent {
|
|
|
188
248
|
name: string;
|
|
189
249
|
participants: string[];
|
|
190
250
|
};
|
|
251
|
+
/**
|
|
252
|
+
* How this prompt relates to a run already in flight. Omitted =
|
|
253
|
+
* `supersede`, the pre-0.4.0 behaviour.
|
|
254
|
+
*/
|
|
255
|
+
disposition?: PromptDisposition;
|
|
256
|
+
}
|
|
257
|
+
export type PromptDisposition = 'supersede' | 'queue' | 'append';
|
|
258
|
+
/**
|
|
259
|
+
* One finalized transcript line from the speaker's own browser. Sent
|
|
260
|
+
* for EVERY local final (not only addressed ones) when the bridge
|
|
261
|
+
* advertises `capabilities.trigger`; the bridge decides what to do.
|
|
262
|
+
*/
|
|
263
|
+
export interface TranscriptFinalEvent {
|
|
264
|
+
type: 'transcript.final';
|
|
265
|
+
entryId: string;
|
|
266
|
+
speaker: string;
|
|
267
|
+
speakerIdentity: string;
|
|
268
|
+
text: string;
|
|
269
|
+
timestampMs: number;
|
|
270
|
+
/** Deepgram confidence for the line, 0-1. */
|
|
271
|
+
confidence?: number;
|
|
272
|
+
room: {
|
|
273
|
+
id: string;
|
|
274
|
+
name: string;
|
|
275
|
+
participants: string[];
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* "This speaker is mid-utterance" heartbeat, driven by interim STT results.
|
|
280
|
+
* Lossy + throttled. Keeps a held utterance open while the speaker is still
|
|
281
|
+
* talking — a final only lands once they pause, which can be long after the
|
|
282
|
+
* hold timer would otherwise fire.
|
|
283
|
+
*/
|
|
284
|
+
export interface TranscriptActivityEvent {
|
|
285
|
+
type: 'transcript.activity';
|
|
286
|
+
speakerIdentity: string;
|
|
287
|
+
}
|
|
288
|
+
export interface NudgeResponseEvent {
|
|
289
|
+
type: 'nudge.response';
|
|
290
|
+
nudgeId: string;
|
|
291
|
+
decision: 'accept' | 'dismiss';
|
|
191
292
|
}
|
|
192
293
|
export interface TranscriptWindowEntry {
|
|
193
294
|
speaker: string;
|
|
@@ -207,7 +308,7 @@ export interface PermissionResponseEvent {
|
|
|
207
308
|
requestId: string;
|
|
208
309
|
decision: 'allow' | 'deny';
|
|
209
310
|
}
|
|
210
|
-
export type BridgeInboundEvent = PromptUserTurnEvent | PromptInterruptEvent | PromptCancelPendingEvent | PermissionResponseEvent;
|
|
311
|
+
export type BridgeInboundEvent = PromptUserTurnEvent | PromptInterruptEvent | PromptCancelPendingEvent | PermissionResponseEvent | TranscriptFinalEvent | TranscriptActivityEvent | NudgeResponseEvent;
|
|
211
312
|
export type BridgeEvent = BridgeOutboundEvent | BridgeInboundEvent;
|
|
212
313
|
/**
|
|
213
314
|
* 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;
|
|
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;AAwVD;;;;;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
|
@@ -43,7 +43,17 @@ export declare class BridgeRoomRuntime {
|
|
|
43
43
|
* restart-from-beginning UX.
|
|
44
44
|
*/
|
|
45
45
|
private recentlySeenPromptIds;
|
|
46
|
+
/** Per-prompt routing from the trigger layer, keyed by promptId. */
|
|
47
|
+
private plans;
|
|
48
|
+
/**
|
|
49
|
+
* Bridge-side "should the agent act?" decision. `null` under
|
|
50
|
+
* `--trigger legacy`, where browsers keep running the wake regex and only
|
|
51
|
+
* ever send `prompt.user_turn`.
|
|
52
|
+
*/
|
|
53
|
+
private trigger;
|
|
54
|
+
private jev;
|
|
46
55
|
constructor(options: RoomRuntimeOptions);
|
|
56
|
+
private createTriggerEngine;
|
|
47
57
|
start(): Promise<void>;
|
|
48
58
|
shutdown(reason?: 'shutdown' | 'error'): Promise<void>;
|
|
49
59
|
private handleDisconnect;
|
|
@@ -53,6 +63,16 @@ export declare class BridgeRoomRuntime {
|
|
|
53
63
|
* the ID was new, `false` when it was a duplicate.
|
|
54
64
|
*/
|
|
55
65
|
private rememberPromptId;
|
|
66
|
+
private getRunSnapshot;
|
|
67
|
+
private startTriggeredRun;
|
|
68
|
+
/**
|
|
69
|
+
* "Okay, got it" — silence the agent without throwing away its work.
|
|
70
|
+
* Same first three steps as `interruptActiveRun` minus the abort: the
|
|
71
|
+
* driver keeps running and its text keeps streaming to captions.
|
|
72
|
+
*/
|
|
73
|
+
private stopTalking;
|
|
74
|
+
/** Spoken "stop": cancel the run AND whatever was queued behind it. */
|
|
75
|
+
private abortAll;
|
|
56
76
|
private enqueuePrompt;
|
|
57
77
|
private drainPrompts;
|
|
58
78
|
/**
|
package/dist/room.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"room.d.ts","sourceRoot":"","sources":["../src/room.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"room.d.ts","sourceRoot":"","sources":["../src/room.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAWH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,oBAAoB,CAAC;AAEnE,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;AA6BD,qBAAa,iBAAiB;IA6BhB,OAAO,CAAC,QAAQ,CAAC,OAAO;IA5BpC,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;gBAEZ,OAAO,EAAE,kBAAkB;IAKxD,OAAO,CAAC,mBAAmB;IA0CrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAkEtB,QAAQ,CAAC,MAAM,GAAE,UAAU,GAAG,OAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmCxE,OAAO,CAAC,gBAAgB,CAKtB;IAEF,OAAO,CAAC,kBAAkB,CAgCxB;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;YAoIT,SAAS;YAcT,iBAAiB;YAwIjB,YAAY;YAgBZ,iBAAiB;YASjB,eAAe;YASf,UAAU;CAuBzB"}
|
package/dist/room.js
CHANGED
|
@@ -12,11 +12,17 @@
|
|
|
12
12
|
* - cloud action ingest (tool start/end) for the persisted timeline
|
|
13
13
|
*/
|
|
14
14
|
import { Room, RoomEvent, } from '@livekit/rtc-node';
|
|
15
|
+
import { basename } from 'node:path';
|
|
15
16
|
import { request } from 'undici';
|
|
16
17
|
import { AgentAudioPublisher } from './audio/source.js';
|
|
17
18
|
import { log } from './logging.js';
|
|
18
19
|
import { BRIDGE_TOPIC, PROTOCOL_VERSION, decodeBridgeEvent, encodeBridgeEvent, } from './protocol.js';
|
|
20
|
+
import { TriggerEngine } from './trigger/engine.js';
|
|
21
|
+
import { JevClassifier } from './trigger/jev.js';
|
|
19
22
|
import { createTtsEngine } from './tts/index.js';
|
|
23
|
+
/** How much of the agent's in-flight speech the trigger layer gets to see. */
|
|
24
|
+
const SPOKEN_TAIL_CHARS = 600;
|
|
25
|
+
const AGENT_NAMES = ['Vox', 'VoxAgent'];
|
|
20
26
|
/**
|
|
21
27
|
* Capacity of the recently-seen-promptId LRU. Sized for "rapid-fire user
|
|
22
28
|
* mashes the talk button + cloud re-sends" worst case. 32 is more than
|
|
@@ -43,9 +49,60 @@ export class BridgeRoomRuntime {
|
|
|
43
49
|
* restart-from-beginning UX.
|
|
44
50
|
*/
|
|
45
51
|
recentlySeenPromptIds = new Set();
|
|
52
|
+
/** Per-prompt routing from the trigger layer, keyed by promptId. */
|
|
53
|
+
plans = new Map();
|
|
54
|
+
/**
|
|
55
|
+
* Bridge-side "should the agent act?" decision. `null` under
|
|
56
|
+
* `--trigger legacy`, where browsers keep running the wake regex and only
|
|
57
|
+
* ever send `prompt.user_turn`.
|
|
58
|
+
*/
|
|
59
|
+
trigger = null;
|
|
60
|
+
jev = null;
|
|
46
61
|
constructor(options) {
|
|
47
62
|
this.options = options;
|
|
48
63
|
this.room = new Room();
|
|
64
|
+
this.trigger = this.createTriggerEngine();
|
|
65
|
+
}
|
|
66
|
+
createTriggerEngine() {
|
|
67
|
+
const { config, pair, capabilities } = this.options;
|
|
68
|
+
if (!config.triggerMode)
|
|
69
|
+
return null;
|
|
70
|
+
if (config.triggerMode !== 'regex' && config.typesafeApiKey) {
|
|
71
|
+
this.jev = new JevClassifier({
|
|
72
|
+
apiKey: config.typesafeApiKey,
|
|
73
|
+
model: config.jevModel,
|
|
74
|
+
timeoutMs: config.jevTimeoutMs,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
return new TriggerEngine({
|
|
78
|
+
mode: config.triggerMode,
|
|
79
|
+
classifier: this.jev,
|
|
80
|
+
agent: {
|
|
81
|
+
names: AGENT_NAMES,
|
|
82
|
+
backend: config.backend,
|
|
83
|
+
// Basename only — the full path says more about the host's disk
|
|
84
|
+
// than a third-party classifier needs to know.
|
|
85
|
+
workspace: basename(config.cwd) || 'workspace',
|
|
86
|
+
tools: [...capabilities.mcpServers, ...capabilities.skills],
|
|
87
|
+
hostName: pair.hostName,
|
|
88
|
+
},
|
|
89
|
+
// LiveKit identities are Clerk user IDs, so this matches the host's
|
|
90
|
+
// `speakerIdentity` on their transcript lines.
|
|
91
|
+
hostIdentity: pair.hostClerkId,
|
|
92
|
+
backend: config.backend,
|
|
93
|
+
autoModel: config.autoModel,
|
|
94
|
+
modelOverrides: config.autoModels,
|
|
95
|
+
ack: config.triggerAck,
|
|
96
|
+
settings: { proactive: config.proactive },
|
|
97
|
+
host: {
|
|
98
|
+
getRunSnapshot: () => this.getRunSnapshot(),
|
|
99
|
+
startRun: (prompt) => this.startTriggeredRun(prompt),
|
|
100
|
+
stopTalking: () => this.stopTalking(),
|
|
101
|
+
abort: () => void this.abortAll(),
|
|
102
|
+
publishAttention: (event) => void this.publishEvent({ type: 'agent.attention', ...event }),
|
|
103
|
+
publishDecision: (event) => void this.publishEvent({ type: 'agent.trigger_decision', ...event }),
|
|
104
|
+
},
|
|
105
|
+
});
|
|
49
106
|
}
|
|
50
107
|
async start() {
|
|
51
108
|
const { config, pair, capabilities } = this.options;
|
|
@@ -91,6 +148,8 @@ export class BridgeRoomRuntime {
|
|
|
91
148
|
this.audio = new AgentAudioPublisher(this.tts.sampleRate, this.tts.numChannels);
|
|
92
149
|
await this.audio.publish(this.room);
|
|
93
150
|
}
|
|
151
|
+
// Not awaited: a slow or unreachable TypeSafe must not delay pairing.
|
|
152
|
+
void this.jev?.warmUp();
|
|
94
153
|
// Attach the permission broker now that the data channel is connected.
|
|
95
154
|
this.options.permissionBroker.attachPublisher((event) => {
|
|
96
155
|
void this.publishEvent(event);
|
|
@@ -107,6 +166,7 @@ export class BridgeRoomRuntime {
|
|
|
107
166
|
if (this.shuttingDown)
|
|
108
167
|
return;
|
|
109
168
|
this.shuttingDown = true;
|
|
169
|
+
this.trigger?.dispose();
|
|
110
170
|
if (this.activeRun) {
|
|
111
171
|
this.activeRun.abort.abort();
|
|
112
172
|
this.activeRun.utterance?.cancel();
|
|
@@ -159,6 +219,15 @@ export class BridgeRoomRuntime {
|
|
|
159
219
|
else if (event.type === 'prompt.cancel_pending') {
|
|
160
220
|
this.pendingPrompts = [];
|
|
161
221
|
}
|
|
222
|
+
else if (event.type === 'transcript.final') {
|
|
223
|
+
void this.trigger?.onFinal(event);
|
|
224
|
+
}
|
|
225
|
+
else if (event.type === 'transcript.activity') {
|
|
226
|
+
this.trigger?.onSpeechActivity(event.speakerIdentity);
|
|
227
|
+
}
|
|
228
|
+
else if (event.type === 'nudge.response') {
|
|
229
|
+
this.trigger?.onNudgeResponse(event.nudgeId, event.decision);
|
|
230
|
+
}
|
|
162
231
|
else if (event.type === 'permission.response') {
|
|
163
232
|
const handled = this.options.permissionBroker.resolve(event.requestId, event.decision);
|
|
164
233
|
if (handled) {
|
|
@@ -187,7 +256,66 @@ export class BridgeRoomRuntime {
|
|
|
187
256
|
}
|
|
188
257
|
return true;
|
|
189
258
|
}
|
|
190
|
-
|
|
259
|
+
getRunSnapshot() {
|
|
260
|
+
const run = this.activeRun;
|
|
261
|
+
if (run) {
|
|
262
|
+
return {
|
|
263
|
+
status: run.status,
|
|
264
|
+
activePromptText: run.prompt.text,
|
|
265
|
+
spokenSoFar: run.spokenText.slice(-SPOKEN_TAIL_CHARS),
|
|
266
|
+
activeToolName: run.activeToolName,
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
// Between an interrupt and the next run starting there's no activeRun,
|
|
270
|
+
// but the agent is not idle — a prompt is about to run.
|
|
271
|
+
const next = this.pendingPrompts[0];
|
|
272
|
+
return {
|
|
273
|
+
status: next ? 'thinking' : 'idle',
|
|
274
|
+
activePromptText: next?.text ?? null,
|
|
275
|
+
spokenSoFar: '',
|
|
276
|
+
activeToolName: null,
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
startTriggeredRun(prompt) {
|
|
280
|
+
void this.enqueuePrompt({
|
|
281
|
+
type: 'prompt.user_turn',
|
|
282
|
+
promptId: prompt.promptId,
|
|
283
|
+
speaker: prompt.speaker,
|
|
284
|
+
speakerIdentity: prompt.speakerIdentity,
|
|
285
|
+
text: prompt.text,
|
|
286
|
+
transcriptWindow: prompt.window.map((line) => ({
|
|
287
|
+
speaker: line.speaker,
|
|
288
|
+
text: line.text,
|
|
289
|
+
timestampMs: line.timestampMs,
|
|
290
|
+
})),
|
|
291
|
+
room: prompt.room,
|
|
292
|
+
disposition: prompt.disposition,
|
|
293
|
+
}, prompt.plan);
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* "Okay, got it" — silence the agent without throwing away its work.
|
|
297
|
+
* Same first three steps as `interruptActiveRun` minus the abort: the
|
|
298
|
+
* driver keeps running and its text keeps streaming to captions.
|
|
299
|
+
*/
|
|
300
|
+
stopTalking() {
|
|
301
|
+
const run = this.activeRun;
|
|
302
|
+
if (!run || run.ttsMuted)
|
|
303
|
+
return;
|
|
304
|
+
log.info('bridge_run_stop_talking', { runId: run.runId });
|
|
305
|
+
run.ttsMuted = true;
|
|
306
|
+
run.utterance?.cancel();
|
|
307
|
+
this.audio?.clearQueue();
|
|
308
|
+
if (run.status === 'speaking')
|
|
309
|
+
run.status = 'thinking';
|
|
310
|
+
}
|
|
311
|
+
/** Spoken "stop": cancel the run AND whatever was queued behind it. */
|
|
312
|
+
async abortAll() {
|
|
313
|
+
for (const pending of this.pendingPrompts)
|
|
314
|
+
this.plans.delete(pending.promptId);
|
|
315
|
+
this.pendingPrompts = [];
|
|
316
|
+
await this.interruptActiveRun();
|
|
317
|
+
}
|
|
318
|
+
async enqueuePrompt(event, plan) {
|
|
191
319
|
// Dedup happens BEFORE interrupt. If we let a duplicate run through
|
|
192
320
|
// `interruptActiveRun`, we'd kill the legit in-flight run AND
|
|
193
321
|
// re-enqueue the same content, producing the restart-from-the-top
|
|
@@ -198,12 +326,32 @@ export class BridgeRoomRuntime {
|
|
|
198
326
|
return;
|
|
199
327
|
if (!this.rememberPromptId(event.promptId))
|
|
200
328
|
return;
|
|
201
|
-
|
|
329
|
+
const disposition = event.disposition ?? 'supersede';
|
|
330
|
+
let next = event;
|
|
331
|
+
let nextPlan = plan;
|
|
332
|
+
if (disposition === 'queue') {
|
|
333
|
+
// Separate request — let the current run finish first.
|
|
334
|
+
}
|
|
335
|
+
else if (this.activeRun) {
|
|
336
|
+
if (disposition === 'append') {
|
|
337
|
+
// Ride-along, v1: restart the SAME task with the detail folded in.
|
|
338
|
+
// The driver session resumes, so work already done isn't lost. The
|
|
339
|
+
// original plan is kept — "oh, and use TypeScript" scores as trivial
|
|
340
|
+
// on its own and must not downgrade the model mid-task.
|
|
341
|
+
const active = this.activeRun;
|
|
342
|
+
next = {
|
|
343
|
+
...event,
|
|
344
|
+
text: `${active.prompt.text}\n\n${event.speaker} added while you were working on that: ${event.text}`,
|
|
345
|
+
};
|
|
346
|
+
nextPlan = active.plan ? { ...active.plan, ack: undefined } : plan;
|
|
347
|
+
}
|
|
202
348
|
// Interrupt the active run for the new (distinct) prompt — matches
|
|
203
349
|
// "interrupt by speaking" UX.
|
|
204
350
|
await this.interruptActiveRun();
|
|
205
351
|
}
|
|
206
|
-
|
|
352
|
+
if (nextPlan)
|
|
353
|
+
this.plans.set(next.promptId, nextPlan);
|
|
354
|
+
this.pendingPrompts.push(next);
|
|
207
355
|
void this.drainPrompts();
|
|
208
356
|
}
|
|
209
357
|
async drainPrompts() {
|
|
@@ -258,11 +406,18 @@ export class BridgeRoomRuntime {
|
|
|
258
406
|
const abort = new AbortController();
|
|
259
407
|
this.deltaSeq = 0;
|
|
260
408
|
const utterance = this.tts ? this.tts.beginUtterance(prompt.promptId) : null;
|
|
261
|
-
const
|
|
409
|
+
const plan = this.plans.get(prompt.promptId) ?? null;
|
|
410
|
+
this.plans.delete(prompt.promptId);
|
|
411
|
+
const systemPromptAddendum = buildRoomContextAddendum(prompt, plan);
|
|
262
412
|
const driverIter = this.options.driver.run({
|
|
263
413
|
prompt: prompt.text,
|
|
264
414
|
cwd: this.options.config.cwd,
|
|
265
415
|
systemPromptAddendum,
|
|
416
|
+
...(plan?.model ? { model: plan.model } : {}),
|
|
417
|
+
...(plan?.maxThinkingTokens !== undefined
|
|
418
|
+
? { maxThinkingTokens: plan.maxThinkingTokens }
|
|
419
|
+
: {}),
|
|
420
|
+
...(plan?.reasoningEffort ? { reasoningEffort: plan.reasoningEffort } : {}),
|
|
266
421
|
}, abort.signal);
|
|
267
422
|
let runId = '';
|
|
268
423
|
let runStarted = false;
|
|
@@ -332,7 +487,19 @@ export class BridgeRoomRuntime {
|
|
|
332
487
|
utterance?.finish();
|
|
333
488
|
}
|
|
334
489
|
})();
|
|
335
|
-
|
|
490
|
+
const run = {
|
|
491
|
+
runId: prompt.promptId,
|
|
492
|
+
abort,
|
|
493
|
+
utterance,
|
|
494
|
+
pumpPromise,
|
|
495
|
+
prompt,
|
|
496
|
+
plan,
|
|
497
|
+
status: 'thinking',
|
|
498
|
+
spokenText: '',
|
|
499
|
+
activeToolName: null,
|
|
500
|
+
ttsMuted: false,
|
|
501
|
+
};
|
|
502
|
+
this.activeRun = run;
|
|
336
503
|
try {
|
|
337
504
|
await pumpPromise;
|
|
338
505
|
await audioPump;
|
|
@@ -353,6 +520,10 @@ export class BridgeRoomRuntime {
|
|
|
353
520
|
}
|
|
354
521
|
finally {
|
|
355
522
|
this.activeRun = null;
|
|
523
|
+
// Keep the agent's own words in the trigger layer's transcript so
|
|
524
|
+
// "yeah, the second one" reads as a reply to it, not as small talk.
|
|
525
|
+
this.trigger?.noteAgentSaid(run.spokenText);
|
|
526
|
+
this.trigger?.noteRunEnded();
|
|
356
527
|
}
|
|
357
528
|
}
|
|
358
529
|
async pumpAudio(utterance) {
|
|
@@ -371,17 +542,43 @@ export class BridgeRoomRuntime {
|
|
|
371
542
|
}
|
|
372
543
|
}
|
|
373
544
|
async handleDriverEvent(event, prompt, utterance) {
|
|
545
|
+
const run = this.activeRun?.runId === prompt.promptId ? this.activeRun : null;
|
|
374
546
|
switch (event.type) {
|
|
375
|
-
case 'run_start':
|
|
547
|
+
case 'run_start': {
|
|
548
|
+
const plan = run?.plan ?? null;
|
|
376
549
|
await this.publishEvent({
|
|
377
550
|
type: 'agent.run_start',
|
|
378
551
|
runId: event.runId,
|
|
379
552
|
promptId: prompt.promptId,
|
|
380
553
|
startedAtMs: event.startedAtMs,
|
|
554
|
+
...(plan?.model ? { model: plan.model } : {}),
|
|
555
|
+
...(plan ? { effort: plan.effortLevel } : {}),
|
|
381
556
|
});
|
|
557
|
+
if (plan?.ack) {
|
|
558
|
+
// Canned acknowledgement for heavy turns: the room hears something
|
|
559
|
+
// inside TTS latency instead of waiting on the LLM's first token.
|
|
560
|
+
const ack = `${plan.ack} `;
|
|
561
|
+
if (run) {
|
|
562
|
+
run.spokenText += ack;
|
|
563
|
+
run.status = 'speaking';
|
|
564
|
+
}
|
|
565
|
+
utterance?.pushText(ack);
|
|
566
|
+
await this.publishEvent({
|
|
567
|
+
type: 'agent.text_delta',
|
|
568
|
+
runId: event.runId,
|
|
569
|
+
delta: ack,
|
|
570
|
+
seq: this.deltaSeq++,
|
|
571
|
+
});
|
|
572
|
+
}
|
|
382
573
|
return;
|
|
574
|
+
}
|
|
383
575
|
case 'text_delta': {
|
|
384
|
-
|
|
576
|
+
if (run) {
|
|
577
|
+
run.spokenText += event.delta;
|
|
578
|
+
run.status = run.ttsMuted ? 'thinking' : 'speaking';
|
|
579
|
+
}
|
|
580
|
+
if (!run?.ttsMuted)
|
|
581
|
+
utterance?.pushText(event.delta);
|
|
385
582
|
await this.publishEvent({
|
|
386
583
|
type: 'agent.text_delta',
|
|
387
584
|
runId: event.runId,
|
|
@@ -394,6 +591,10 @@ export class BridgeRoomRuntime {
|
|
|
394
591
|
await this.publishEvent({ type: 'agent.text_done', runId: event.runId, text: event.text });
|
|
395
592
|
return;
|
|
396
593
|
case 'tool_use_start': {
|
|
594
|
+
if (run) {
|
|
595
|
+
run.status = 'acting';
|
|
596
|
+
run.activeToolName = event.name;
|
|
597
|
+
}
|
|
397
598
|
await this.publishEvent({
|
|
398
599
|
type: 'agent.tool_use_start',
|
|
399
600
|
runId: event.runId,
|
|
@@ -418,6 +619,10 @@ export class BridgeRoomRuntime {
|
|
|
418
619
|
});
|
|
419
620
|
return;
|
|
420
621
|
case 'tool_use_end': {
|
|
622
|
+
if (run) {
|
|
623
|
+
run.status = 'thinking';
|
|
624
|
+
run.activeToolName = null;
|
|
625
|
+
}
|
|
421
626
|
await this.publishEvent({
|
|
422
627
|
type: 'agent.tool_use_end',
|
|
423
628
|
runId: event.runId,
|
|
@@ -516,7 +721,13 @@ export class BridgeRoomRuntime {
|
|
|
516
721
|
}
|
|
517
722
|
}
|
|
518
723
|
}
|
|
519
|
-
function buildRoomContextAddendum(prompt) {
|
|
724
|
+
function buildRoomContextAddendum(prompt, plan) {
|
|
725
|
+
const planLines = [
|
|
726
|
+
...(plan?.addendum ?? []),
|
|
727
|
+
...(plan?.ack
|
|
728
|
+
? [`You have already said "${plan.ack}" out loud. Do not open with another acknowledgement.`]
|
|
729
|
+
: []),
|
|
730
|
+
];
|
|
520
731
|
const transcriptLines = prompt.transcriptWindow
|
|
521
732
|
.slice(-8)
|
|
522
733
|
.map((entry) => `${entry.speaker}: ${entry.text}`)
|
|
@@ -534,6 +745,7 @@ function buildRoomContextAddendum(prompt) {
|
|
|
534
745
|
'- Keep replies to 1-3 short sentences when answering.',
|
|
535
746
|
'- When you take an action, narrate it briefly so the room hears progress (e.g. "Reading the file now.").',
|
|
536
747
|
'- Use short code blocks only when the user explicitly asks to see code.',
|
|
748
|
+
...(planLines.length > 0 ? ['', ...planLines] : []),
|
|
537
749
|
].join('\n');
|
|
538
750
|
}
|
|
539
751
|
//# sourceMappingURL=room.js.map
|
package/dist/room.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"room.js","sourceRoot":"","sources":["../src/room.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"room.js","sourceRoot":"","sources":["../src/room.ts"],"names":[],"mappings":"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"}
|