@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.
Files changed (51) hide show
  1. package/README.md +27 -0
  2. package/dist/cli.js +22 -2
  3. package/dist/cli.js.map +1 -1
  4. package/dist/config.d.ts +26 -2
  5. package/dist/config.d.ts.map +1 -1
  6. package/dist/config.js +46 -1
  7. package/dist/config.js.map +1 -1
  8. package/dist/drivers/claude.d.ts.map +1 -1
  9. package/dist/drivers/claude.js +6 -1
  10. package/dist/drivers/claude.js.map +1 -1
  11. package/dist/drivers/codex.d.ts.map +1 -1
  12. package/dist/drivers/codex.js +5 -1
  13. package/dist/drivers/codex.js.map +1 -1
  14. package/dist/drivers/types.d.ts +9 -0
  15. package/dist/drivers/types.d.ts.map +1 -1
  16. package/dist/protocol.d.ts +103 -2
  17. package/dist/protocol.d.ts.map +1 -1
  18. package/dist/protocol.js.map +1 -1
  19. package/dist/room.d.ts +20 -0
  20. package/dist/room.d.ts.map +1 -1
  21. package/dist/room.js +220 -8
  22. package/dist/room.js.map +1 -1
  23. package/dist/trigger/addressing.d.ts +40 -0
  24. package/dist/trigger/addressing.d.ts.map +1 -0
  25. package/dist/trigger/addressing.js +90 -0
  26. package/dist/trigger/addressing.js.map +1 -0
  27. package/dist/trigger/decide.d.ts +33 -0
  28. package/dist/trigger/decide.d.ts.map +1 -0
  29. package/dist/trigger/decide.js +133 -0
  30. package/dist/trigger/decide.js.map +1 -0
  31. package/dist/trigger/effort.d.ts +26 -0
  32. package/dist/trigger/effort.d.ts.map +1 -0
  33. package/dist/trigger/effort.js +66 -0
  34. package/dist/trigger/effort.js.map +1 -0
  35. package/dist/trigger/engine.d.ts +120 -0
  36. package/dist/trigger/engine.d.ts.map +1 -0
  37. package/dist/trigger/engine.js +515 -0
  38. package/dist/trigger/engine.js.map +1 -0
  39. package/dist/trigger/jev.d.ts +52 -0
  40. package/dist/trigger/jev.d.ts.map +1 -0
  41. package/dist/trigger/jev.js +204 -0
  42. package/dist/trigger/jev.js.map +1 -0
  43. package/dist/trigger/questions.d.ts +43 -0
  44. package/dist/trigger/questions.d.ts.map +1 -0
  45. package/dist/trigger/questions.js +243 -0
  46. package/dist/trigger/questions.js.map +1 -0
  47. package/dist/trigger/types.d.ts +175 -0
  48. package/dist/trigger/types.d.ts.map +1 -0
  49. package/dist/trigger/types.js +29 -0
  50. package/dist/trigger/types.js.map +1 -0
  51. package/package.json +11 -10
@@ -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 BridgeOutboundEvent = BridgeHelloEvent | BridgeByeEvent | AgentRunStartEvent | AgentTextDeltaEvent | AgentTextDoneEvent | AgentToolUseStartEvent | AgentToolUseProgressEvent | AgentToolUseEndEvent | AgentThinkingDeltaEvent | AgentRunEndEvent | AgentUsageEvent | AgentPermissionRequestEvent | AgentPermissionResolvedEvent;
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.
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
@@ -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;AA8ND;;;;;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"}
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
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"room.d.ts","sourceRoot":"","sources":["../src/room.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAUH,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;AAGvB,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;AAgBD,qBAAa,iBAAiB;IAoBhB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAnBpC,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;gBAE1B,OAAO,EAAE,kBAAkB;IAIlD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA+DtB,QAAQ,CAAC,MAAM,GAAE,UAAU,GAAG,OAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkCxE,OAAO,CAAC,gBAAgB,CAKtB;IAEF,OAAO,CAAC,kBAAkB,CA0BxB;IAEF;;;OAGG;IACH,OAAO,CAAC,gBAAgB;YAYV,aAAa;YAkBb,YAAY;IAU1B;;;;;;;;;;;;;;;;;;;OAmBG;YACW,kBAAkB;YAgBlB,SAAS;YA6GT,SAAS;YAcT,iBAAiB;YAuGjB,YAAY;YAgBZ,iBAAiB;YASjB,eAAe;YASf,UAAU;CAuBzB"}
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
- async enqueuePrompt(event) {
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
- if (this.activeRun) {
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
- this.pendingPrompts.push(event);
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 systemPromptAddendum = buildRoomContextAddendum(prompt);
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
- this.activeRun = { runId: prompt.promptId, abort, utterance, pumpPromise };
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
- utterance?.pushText(event.delta);
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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"}