@holostaff/sdk 0.9.2 → 0.9.4

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.
@@ -8,10 +8,19 @@
8
8
  * BYO-audio path is deleted). This is the de-Vue-ified port of tutorLM's
9
9
  * anamSessionManager.
10
10
  *
11
+ * Feed model (mirrors tutorLM's proven queue):
12
+ * - Sentences are QUEUED and spoken ONE AT A TIME.
13
+ * - Each sentence opens a FRESH talkStream (unique correlation id) and
14
+ * sends a single chunk with endOfSpeech=true. Reusing one stream for
15
+ * the whole turn makes Anam fall many turns behind ("pipeline stalled"
16
+ * / "throughput dropped") and become un-interruptible.
17
+ * - We pace the next sentence on a spoken-duration estimate so the queue
18
+ * stays short — which is what makes barge-in feel instant.
19
+ * - interrupt() clears the queue AND calls interruptPersona() so the
20
+ * avatar stops mid-utterance the moment the user speaks.
21
+ *
11
22
  * @anam-ai/js-sdk is an OPTIONAL dependency, lazy-loaded only when a
12
- * Stage opens (keeps the base SDK lean — like rrweb). The specifier is a
13
- * variable so the base build doesn't require it installed; if it's
14
- * absent, voice is gracefully unavailable.
23
+ * Stage opens (keeps the base SDK lean — like rrweb).
15
24
  */
16
25
  export interface AnamFace {
17
26
  /** Speak a sentence (the model's text → Anam TTS + lip-sync). */
@@ -1 +1 @@
1
- {"version":3,"file":"anamFace.d.ts","sourceRoot":"","sources":["../../src/stage/anamFace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,WAAW,QAAQ;IACvB,iEAAiE;IACjE,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,kEAAkE;IAClE,SAAS,IAAI,IAAI,CAAA;IACjB,IAAI,IAAI,IAAI,CAAA;CACb;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE;IACxC,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,gBAAgB,CAAA;IACzB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAA;CAC/B,GAAG,OAAO,CAAC,QAAQ,CAAC,CA+DpB"}
1
+ {"version":3,"file":"anamFace.d.ts","sourceRoot":"","sources":["../../src/stage/anamFace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,MAAM,WAAW,QAAQ;IACvB,iEAAiE;IACjE,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,kEAAkE;IAClE,SAAS,IAAI,IAAI,CAAA;IACjB,IAAI,IAAI,IAAI,CAAA;CACb;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE;IACxC,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,gBAAgB,CAAA;IACzB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAA;CAC/B,GAAG,OAAO,CAAC,QAAQ,CAAC,CA6HpB"}
@@ -8,10 +8,19 @@
8
8
  * BYO-audio path is deleted). This is the de-Vue-ified port of tutorLM's
9
9
  * anamSessionManager.
10
10
  *
11
+ * Feed model (mirrors tutorLM's proven queue):
12
+ * - Sentences are QUEUED and spoken ONE AT A TIME.
13
+ * - Each sentence opens a FRESH talkStream (unique correlation id) and
14
+ * sends a single chunk with endOfSpeech=true. Reusing one stream for
15
+ * the whole turn makes Anam fall many turns behind ("pipeline stalled"
16
+ * / "throughput dropped") and become un-interruptible.
17
+ * - We pace the next sentence on a spoken-duration estimate so the queue
18
+ * stays short — which is what makes barge-in feel instant.
19
+ * - interrupt() clears the queue AND calls interruptPersona() so the
20
+ * avatar stops mid-utterance the moment the user speaks.
21
+ *
11
22
  * @anam-ai/js-sdk is an OPTIONAL dependency, lazy-loaded only when a
12
- * Stage opens (keeps the base SDK lean — like rrweb). The specifier is a
13
- * variable so the base build doesn't require it installed; if it's
14
- * absent, voice is gracefully unavailable.
23
+ * Stage opens (keeps the base SDK lean — like rrweb).
15
24
  */
16
25
  /**
17
26
  * Connect Anam to a <video> element and return the text sink. Anam owns
@@ -29,6 +38,24 @@ export async function startAnamFace(opts) {
29
38
  throw new Error('@anam-ai/js-sdk: createClient not found (version mismatch)');
30
39
  }
31
40
  const client = createClient(opts.sessionToken, { disableInputAudio: true });
41
+ // TEMP diagnostic — log every Anam event so we can see SESSION_READY /
42
+ // CONNECTION_CLOSED / video lifecycle.
43
+ try {
44
+ const AnamEvent = mod.AnamEvent
45
+ ?? mod.default?.AnamEvent;
46
+ const addListener = client.addListener;
47
+ if (AnamEvent && typeof addListener === 'function') {
48
+ for (const name of Object.keys(AnamEvent)) {
49
+ addListener.call(client, AnamEvent[name], (...a) => {
50
+ try {
51
+ console.log('[holostaff:anam] event', name, a?.[0] ?? '');
52
+ }
53
+ catch { /* */ }
54
+ });
55
+ }
56
+ }
57
+ }
58
+ catch { /* best-effort */ }
32
59
  // Bind the avatar to the video element (API name varies by version).
33
60
  const videoId = ensureId(opts.videoEl);
34
61
  if (typeof client.streamToVideoElement === 'function') {
@@ -37,51 +64,105 @@ export async function startAnamFace(opts) {
37
64
  else if (typeof client.startSession === 'function') {
38
65
  await client.startSession();
39
66
  }
40
- let stream = null;
41
- const ensureStream = () => {
42
- if (stream)
43
- return stream;
44
- if (typeof client.createTalkMessageStream === 'function') {
45
- // 4.13 expects a correlation id (tutorLM's proven pattern).
46
- const correlationId = `hs-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`;
47
- stream = client.createTalkMessageStream(correlationId);
67
+ // ── Sequential speak queue (tutorLM's pattern) ───────────────────────
68
+ const queue = [];
69
+ let pumping = false;
70
+ // Bumped on every interrupt/stop; the pump drops any work whose epoch
71
+ // is stale so a cancelled turn can't resume after barge-in.
72
+ let epoch = 0;
73
+ let activeStream = null;
74
+ const endActiveStream = async () => {
75
+ const s = activeStream;
76
+ activeStream = null;
77
+ if (s?.endMessage) {
78
+ try {
79
+ await s.endMessage();
80
+ }
81
+ catch { /* */ }
82
+ }
83
+ };
84
+ const pump = async () => {
85
+ if (pumping)
86
+ return;
87
+ pumping = true;
88
+ try {
89
+ while (queue.length) {
90
+ const myEpoch = epoch;
91
+ const text = queue.shift();
92
+ if (!text)
93
+ continue;
94
+ // Fresh stream per sentence — Anam closes a stream once the
95
+ // persona finishes; reusing it silently drops chunks.
96
+ await endActiveStream();
97
+ if (myEpoch !== epoch)
98
+ break;
99
+ let stream = null;
100
+ const correlationId = `hs-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`;
101
+ try {
102
+ if (typeof client.createTalkMessageStream === 'function') {
103
+ stream = client.createTalkMessageStream(correlationId);
104
+ }
105
+ }
106
+ catch { /* */ }
107
+ if (!stream) {
108
+ // No streaming API — fall back to one-shot talk().
109
+ if (typeof client.talk === 'function') {
110
+ try {
111
+ await client.talk(text);
112
+ }
113
+ catch { /* */ }
114
+ }
115
+ continue;
116
+ }
117
+ activeStream = stream;
118
+ const chunk = text + ' ';
119
+ try {
120
+ // true = end of this utterance; Anam plays it, then closes.
121
+ if (stream.streamMessageChunk)
122
+ await stream.streamMessageChunk(chunk, true);
123
+ }
124
+ catch (err) {
125
+ opts.onError?.(err instanceof Error ? err : new Error(String(err)));
126
+ }
127
+ // Pace the next sentence on a spoken-duration estimate (~70ms/char,
128
+ // floor 1.2s) so the queue tracks playback instead of racing ahead.
129
+ // A short poll lets barge-in cut the wait the instant epoch changes.
130
+ await waitPaced(Math.max(1200, Math.ceil(chunk.length * 70)), () => myEpoch !== epoch);
131
+ if (myEpoch !== epoch)
132
+ break;
133
+ await endActiveStream();
134
+ }
135
+ }
136
+ finally {
137
+ pumping = false;
48
138
  }
49
- return stream;
50
139
  };
51
140
  return {
52
141
  enqueueSentence(text) {
53
142
  const t = text.trim();
54
143
  if (!t)
55
144
  return;
56
- try {
57
- const s = ensureStream();
58
- if (s?.streamMessageChunk)
59
- s.streamMessageChunk(t, false);
60
- else if (typeof client.talk === 'function')
61
- void client.talk(t);
62
- }
63
- catch (err) {
64
- opts.onError?.(err instanceof Error ? err : new Error(String(err)));
65
- }
145
+ queue.push(t);
146
+ void pump();
66
147
  },
67
148
  interrupt() {
149
+ // Barge-in: drop everything queued and stop the avatar NOW.
150
+ epoch++;
151
+ queue.length = 0;
68
152
  try {
69
- // End the current utterance + drop the stream so the next
70
- // sentence starts a fresh turn (stale chunks are abandoned).
71
- if (stream?.endMessage)
72
- stream.endMessage();
73
- else if (typeof client.interruptPersona === 'function')
74
- client.interruptPersona();
153
+ client.interruptPersona?.();
75
154
  }
76
- catch { /* best-effort */ }
77
- stream = null;
155
+ catch { /* */ }
156
+ void endActiveStream();
78
157
  },
79
158
  stop() {
159
+ epoch++;
160
+ queue.length = 0;
80
161
  try {
81
- stream?.endMessage?.();
162
+ client.interruptPersona?.();
82
163
  }
83
164
  catch { /* */ }
84
- stream = null;
165
+ void endActiveStream();
85
166
  try {
86
167
  if (typeof client.stopStreaming === 'function')
87
168
  void client.stopStreaming();
@@ -92,6 +173,20 @@ export async function startAnamFace(opts) {
92
173
  },
93
174
  };
94
175
  }
176
+ /** Resolve after `ms`, polling so a cancel (`cancelled()`) returns early. */
177
+ function waitPaced(ms, cancelled) {
178
+ return new Promise(resolve => {
179
+ const start = Date.now();
180
+ const tick = () => {
181
+ if (cancelled() || Date.now() - start >= ms) {
182
+ resolve();
183
+ return;
184
+ }
185
+ setTimeout(tick, 100);
186
+ };
187
+ tick();
188
+ });
189
+ }
95
190
  function ensureId(el) {
96
191
  if (!el.id)
97
192
  el.id = `holostaff-anam-${Math.random().toString(36).slice(2, 9)}`;
@@ -1 +1 @@
1
- {"version":3,"file":"anamFace.js","sourceRoot":"","sources":["../../src/stage/anamFace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"anamFace.js","sourceRoot":"","sources":["../../src/stage/anamFace.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/stage/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAKzD,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,eAAe,CAAA;IACpB,YAAY,EAAE,MAAM,MAAM,CAAA;IAC1B,SAAS,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACxC,QAAQ,EAAE,eAAe,CAAA;IACzB,uEAAuE;IACvE,OAAO,EAAE,cAAc,GAAG,IAAI,CAAA;IAC9B,IAAI,EAAE,UAAU,CAAA;IAChB,iEAAiE;IACjE,wBAAwB,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;CACpD;AAED,MAAM,WAAW,SAAS;IACxB,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;IAC5B,KAAK,IAAI,IAAI,CAAA;IACb,MAAM,IAAI,OAAO,CAAA;IACjB,OAAO,IAAI,IAAI,CAAA;CAChB;AAyBD,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,YAAY,CA+IxD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/stage/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAKzD,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,eAAe,CAAA;IACpB,YAAY,EAAE,MAAM,MAAM,CAAA;IAC1B,SAAS,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACxC,QAAQ,EAAE,eAAe,CAAA;IACzB,uEAAuE;IACvE,OAAO,EAAE,cAAc,GAAG,IAAI,CAAA;IAC9B,IAAI,EAAE,UAAU,CAAA;IAChB,iEAAiE;IACjE,wBAAwB,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;CACpD;AAED,MAAM,WAAW,SAAS;IACxB,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;IAC5B,KAAK,IAAI,IAAI,CAAA;IACb,MAAM,IAAI,OAAO,CAAA;IACjB,OAAO,IAAI,IAAI,CAAA;CAChB;AAyBD,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,YAAY,CA4JxD"}
@@ -36,6 +36,11 @@ export function startStage(deps) {
36
36
  let realtime = null;
37
37
  let micStream = null;
38
38
  let sentenceBuf = '';
39
+ // Barge-in bookkeeping: the turn the user interrupted. Trailing deltas
40
+ // from a cancelled response share its turnId and must be dropped, or
41
+ // they'd refill the buffer and the avatar would resume the old answer.
42
+ let lastTurnId = '';
43
+ let mutedTurnId = null;
39
44
  const reportErr = (err) => {
40
45
  deps.cfg.onError?.(err, { method: 'STAGE', path: '(voice)' });
41
46
  };
@@ -127,18 +132,30 @@ export function startStage(deps) {
127
132
  ? `The visitor tapped "Talk" on your suggestion: "${seed.intent}". Open the conversation on that.`
128
133
  : undefined,
129
134
  }, {
130
- onTextDelta: (delta) => {
135
+ onTextDelta: (delta, turnId) => {
136
+ lastTurnId = turnId;
137
+ // Drop trailing deltas from a turn the user barged in on.
138
+ if (turnId === mutedTurnId)
139
+ return;
131
140
  ui?.setState('speaking');
132
141
  sentenceBuf += delta;
133
142
  ui?.appendCaption(delta);
134
143
  flushSentences(false);
135
144
  },
136
- onTurnDone: () => {
145
+ onTurnDone: (turnId) => {
146
+ if (turnId === mutedTurnId) {
147
+ mutedTurnId = null;
148
+ return;
149
+ }
137
150
  flushSentences(true);
138
151
  ui?.setState('listening');
139
152
  },
140
153
  onUserSpeechStarted: () => {
154
+ // Barge-in: mute the in-flight turn, stop generation, stop the
155
+ // avatar, drop the half-formed sentence.
156
+ mutedTurnId = lastTurnId;
141
157
  sentenceBuf = '';
158
+ realtime?.cancelResponse();
142
159
  face?.interrupt();
143
160
  ui?.setState('listening');
144
161
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/stage/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/stage/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,cAAc,EAAwB,MAAM,iBAAiB,CAAA;AAItE,OAAO,EAAE,eAAe,EAA2C,MAAM,eAAe,CAAA;AACxF,OAAO,EAAE,aAAa,EAAiB,MAAM,eAAe,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAgB,MAAM,SAAS,CAAA;AAoCpD,MAAM,YAAY,GAAiB;IACjC,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,mGAAmG;IAChH,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2CAA2C,EAAE;YACpF,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sCAAsC,EAAE;SACjF;QACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;KACrB;CACF,CAAA;AAED,MAAM,UAAU,UAAU,CAAC,IAAe;IACxC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAA;IACpF,CAAC;IAED,IAAI,IAAI,GAAG,KAAK,CAAA;IAChB,IAAI,EAAE,GAAmB,IAAI,CAAA;IAC7B,IAAI,IAAI,GAAoB,IAAI,CAAA;IAChC,IAAI,QAAQ,GAA2B,IAAI,CAAA;IAC3C,IAAI,SAAS,GAAuB,IAAI,CAAA;IACxC,IAAI,WAAW,GAAG,EAAE,CAAA;IACpB,uEAAuE;IACvE,qEAAqE;IACrE,uEAAuE;IACvE,IAAI,UAAU,GAAG,EAAE,CAAA;IACnB,IAAI,WAAW,GAAkB,IAAI,CAAA;IAErC,MAAM,SAAS,GAAG,CAAC,GAAU,EAAQ,EAAE;QACrC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;IAC/D,CAAC,CAAA;IAED,MAAM,QAAQ,GAAG,GAAS,EAAE;QAC1B,IAAI,GAAG,KAAK,CAAA;QACZ,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAA;QACpC,IAAI,CAAC;YAAC,QAAQ,EAAE,KAAK,EAAE,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC;YAAC,IAAI,EAAE,IAAI,EAAE,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC;YAAC,SAAS,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;QACrE,IAAI,CAAC;YAAC,EAAE,EAAE,OAAO,EAAE,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;QACrC,QAAQ,GAAG,IAAI,CAAC;QAAC,IAAI,GAAG,IAAI,CAAC;QAAC,SAAS,GAAG,IAAI,CAAC;QAAC,EAAE,GAAG,IAAI,CAAC;QAAC,WAAW,GAAG,EAAE,CAAA;IAC7E,CAAC,CAAA;IAED,MAAM,cAAc,GAAG,CAAC,KAAc,EAAQ,EAAE;QAC9C,qEAAqE;QACrE,0BAA0B;QAC1B,MAAM,EAAE,GAAG,sBAAsB,CAAA;QACjC,IAAI,CAAyB,CAAA;QAC7B,IAAI,OAAO,GAAG,CAAC,CAAA;QACf,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC3C,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAC3B,OAAO,GAAG,EAAE,CAAC,SAAS,CAAA;QACxB,CAAC;QACD,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACxC,IAAI,KAAK,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;YAChC,IAAI,EAAE,eAAe,CAAC,WAAW,CAAC,CAAA;YAClC,WAAW,GAAG,EAAE,CAAA;QAClB,CAAC;IACH,CAAC,CAAA;IAED,MAAM,OAAO,GAAG,KAAK,EAAE,IAAgB,EAAiB,EAAE;QACxD,qEAAqE;QACrE,mEAAmE;QACnE,IAAI,CAAC;YACH,SAAS,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QACxE,CAAC;QAAC,MAAM,CAAC;YACP,SAAS,CAAC,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC,CAAA;YAC3F,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,MAAM;gBAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;YAC/E,QAAQ,EAAE,CAAA;YACV,OAAM;QACR,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,cAAc,CAC/B,IAAI,CAAC,GAAG,EAAE,yBAAyB,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,CACjF,CAAA;QACD,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1D,SAAS,CAAC,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC,CAAA;YACxE,QAAQ,EAAE,CAAA;YACV,OAAM;QACR,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAA;QAC1C,EAAE,GAAG,YAAY,CAAC;YAChB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,OAAO,EAAE,IAAI,IAAI,SAAS;YAC3D,SAAS,EAAE,OAAO,EAAE,SAAS;YAC7B,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE;SACvB,CAAC,CAAA;QACF,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;QAEzB,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,aAAa,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAA;QAC5G,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAA;YACxE,QAAQ,EAAE,CAAA;YACV,OAAM;QACR,CAAC;QAED,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,eAAe,CAC9B;gBACE,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,KAAK,EAAE,CAAC,YAAY,CAAC;gBACrB,SAAS;gBACT,WAAW,EAAE,IAAI,EAAE,MAAM;oBACvB,CAAC,CAAC,kDAAkD,IAAI,CAAC,MAAM,mCAAmC;oBAClG,CAAC,CAAC,SAAS;aACd,EACD;gBACE,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;oBAC7B,UAAU,GAAG,MAAM,CAAA;oBACnB,0DAA0D;oBAC1D,IAAI,MAAM,KAAK,WAAW;wBAAE,OAAM;oBAClC,EAAE,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAA;oBACxB,WAAW,IAAI,KAAK,CAAA;oBACpB,EAAE,EAAE,aAAa,CAAC,KAAK,CAAC,CAAA;oBACxB,cAAc,CAAC,KAAK,CAAC,CAAA;gBACvB,CAAC;gBACD,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;oBACrB,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;wBAAC,WAAW,GAAG,IAAI,CAAC;wBAAC,OAAM;oBAAC,CAAC;oBAC1D,cAAc,CAAC,IAAI,CAAC,CAAA;oBACpB,EAAE,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAA;gBAC3B,CAAC;gBACD,mBAAmB,EAAE,GAAG,EAAE;oBACxB,+DAA+D;oBAC/D,yCAAyC;oBACzC,WAAW,GAAG,UAAU,CAAA;oBACxB,WAAW,GAAG,EAAE,CAAA;oBAChB,QAAQ,EAAE,cAAc,EAAE,CAAA;oBAC1B,IAAI,EAAE,SAAS,EAAE,CAAA;oBACjB,EAAE,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAA;gBAC3B,CAAC;gBACD,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;oBACrC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;wBACvC,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;wBACjE,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;wBAC3E,IAAI,MAAM;4BAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;wBACrD,QAAQ,EAAE,cAAc,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;oBAChD,CAAC;yBAAM,CAAC;wBACN,QAAQ,EAAE,cAAc,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,gBAAgB,IAAI,EAAE,EAAE,CAAC,CAAA;oBACrE,CAAC;gBACH,CAAC;gBACD,OAAO,EAAE,SAAS;aACnB,CACF,CAAA;YACD,EAAE,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAA;QAC3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAA;YAC5E,QAAQ,EAAE,CAAA;QACZ,CAAC;IACH,CAAC,CAAA;IAED,MAAM,KAAK,GAAG,GAAS,EAAE,GAAG,IAAI,IAAI;QAAE,QAAQ,EAAE,CAAA,CAAC,CAAC,CAAA;IAElD,OAAO;QACL,IAAI,CAAC,IAAI;YACP,IAAI,IAAI;gBAAE,OAAM;YAChB,IAAI,GAAG,IAAI,CAAA;YACX,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAA;YACnC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;QACpB,CAAC;QACD,KAAK;QACL,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI;QAClB,OAAO,KAAK,IAAI,IAAI;YAAE,QAAQ,EAAE,CAAA,CAAC,CAAC;KACnC,CAAA;AACH,CAAC"}
@@ -44,6 +44,8 @@ export interface RealtimeCallbacks {
44
44
  export interface RealtimeSession {
45
45
  /** Return a tool result + ask the model to continue. */
46
46
  sendToolResult(callId: string, output: unknown): void;
47
+ /** Barge-in: cancel the in-flight response so it stops emitting text. */
48
+ cancelResponse(): void;
47
49
  close(): void;
48
50
  }
49
51
  export declare function connectRealtime(opts: RealtimeConnectOptions, cb: RealtimeCallbacks): Promise<RealtimeSession>;
@@ -1 +1 @@
1
- {"version":3,"file":"realtime.d.ts","sourceRoot":"","sources":["../../src/stage/realtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACpC;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,MAAM,CAAA;IACpB,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,YAAY,EAAE,CAAA;IACrB,SAAS,EAAE,WAAW,CAAA;IACtB;2DACuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,2DAA2D;IAC3D,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IAChD,6DAA6D;IAC7D,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,gEAAgE;IAChE,mBAAmB,IAAI,IAAI,CAAA;IAC3B,gCAAgC;IAChC,UAAU,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IACvF,OAAO,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,CAAA;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,wDAAwD;IACxD,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAAA;IACrD,KAAK,IAAI,IAAI,CAAA;CACd;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,sBAAsB,EAC5B,EAAE,EAAE,iBAAiB,GACpB,OAAO,CAAC,eAAe,CAAC,CAyH1B"}
1
+ {"version":3,"file":"realtime.d.ts","sourceRoot":"","sources":["../../src/stage/realtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACpC;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,MAAM,CAAA;IACpB,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,YAAY,EAAE,CAAA;IACrB,SAAS,EAAE,WAAW,CAAA;IACtB;2DACuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,2DAA2D;IAC3D,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IAChD,6DAA6D;IAC7D,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,gEAAgE;IAChE,mBAAmB,IAAI,IAAI,CAAA;IAC3B,gCAAgC;IAChC,UAAU,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IACvF,OAAO,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,CAAA;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,wDAAwD;IACxD,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAAA;IACrD,yEAAyE;IACzE,cAAc,IAAI,IAAI,CAAA;IACtB,KAAK,IAAI,IAAI,CAAA;CACd;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,sBAAsB,EAC5B,EAAE,EAAE,iBAAiB,GACpB,OAAO,CAAC,eAAe,CAAC,CAwI1B"}
@@ -54,6 +54,10 @@ export async function connectRealtime(opts, cb) {
54
54
  }
55
55
  // Greet first — the copilot opens by speaking (instructions say how).
56
56
  send({ type: 'response.create' });
57
+ try {
58
+ console.log('[holostaff:rt] dc open → sent session.update + response.create');
59
+ }
60
+ catch { /* */ }
57
61
  });
58
62
  dc.addEventListener('message', (ev) => {
59
63
  let msg;
@@ -63,8 +67,22 @@ export async function connectRealtime(opts, cb) {
63
67
  catch {
64
68
  return;
65
69
  }
70
+ // TEMP diagnostic — surface every Realtime event type so we can see
71
+ // what the provider actually emits (event names vary by version).
72
+ try {
73
+ console.log('[holostaff:rt] event', msg.type, msg.delta ? `delta="${String(msg.delta).slice(0, 40)}"` : '');
74
+ }
75
+ catch { /* */ }
66
76
  handleServerEvent(msg);
67
77
  });
78
+ dc.addEventListener('error', (e) => { try {
79
+ console.warn('[holostaff:rt] dc error', e);
80
+ }
81
+ catch { /* */ } });
82
+ dc.addEventListener('close', () => { try {
83
+ console.log('[holostaff:rt] dc closed');
84
+ }
85
+ catch { /* */ } });
68
86
  const handleServerEvent = (msg) => {
69
87
  switch (msg.type) {
70
88
  // Text deltas — naming varies across Realtime versions.
@@ -119,6 +137,11 @@ export async function connectRealtime(opts, cb) {
119
137
  }
120
138
  const answer = await sdpRes.text();
121
139
  await pc.setRemoteDescription({ type: 'answer', sdp: answer });
140
+ try {
141
+ console.log('[holostaff:rt] SDP answer applied; ice/conn state:', pc.iceConnectionState, pc.connectionState);
142
+ pc.addEventListener('connectionstatechange', () => console.log('[holostaff:rt] pc state', pc.connectionState));
143
+ }
144
+ catch { /* */ }
122
145
  return {
123
146
  sendToolResult(callId, output) {
124
147
  send({
@@ -131,6 +154,11 @@ export async function connectRealtime(opts, cb) {
131
154
  });
132
155
  send({ type: 'response.create' });
133
156
  },
157
+ cancelResponse() {
158
+ // Stop the current generation. Harmless if none is active (the
159
+ // server may emit a benign error event, which we swallow).
160
+ send({ type: 'response.cancel' });
161
+ },
134
162
  close() {
135
163
  try {
136
164
  dc.close();
@@ -1 +1 @@
1
- {"version":3,"file":"realtime.js","sourceRoot":"","sources":["../../src/stage/realtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"realtime.js","sourceRoot":"","sources":["../../src/stage/realtime.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@holostaff/sdk",
3
- "version": "0.9.2",
3
+ "version": "0.9.4",
4
4
  "description": "Holostaff SDK — lifetime identity, stage detection, custom signal probes, and the living-portrait presence layer (chip, note, Theater, voice Stage) for the Holostaff runtime.",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://docs.holostaff.ai",
@@ -46,6 +46,8 @@
46
46
  "@anam-ai/js-sdk": ">=3"
47
47
  },
48
48
  "peerDependenciesMeta": {
49
- "@anam-ai/js-sdk": { "optional": true }
49
+ "@anam-ai/js-sdk": {
50
+ "optional": true
51
+ }
50
52
  }
51
53
  }