osborn 0.9.83 → 0.9.84
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/recall-client.d.ts +1 -1
- package/dist/recall-client.js +16 -1
- package/package.json +1 -1
package/dist/recall-client.d.ts
CHANGED
|
@@ -79,7 +79,7 @@ export declare class RecallClient extends EventEmitter {
|
|
|
79
79
|
* room as the osborn agent (no separate WebSocket+WAV pipe).
|
|
80
80
|
* @param opts.botName Display name of the bot in the meeting
|
|
81
81
|
*/
|
|
82
|
-
joinMeeting(meetingUrl: string,
|
|
82
|
+
joinMeeting(meetingUrl: string, webhookBaseUrl: string, opts?: {
|
|
83
83
|
botName?: string;
|
|
84
84
|
}): Promise<string>;
|
|
85
85
|
/**
|
package/dist/recall-client.js
CHANGED
|
@@ -21,8 +21,22 @@ export class RecallClient extends EventEmitter {
|
|
|
21
21
|
* room as the osborn agent (no separate WebSocket+WAV pipe).
|
|
22
22
|
* @param opts.botName Display name of the bot in the meeting
|
|
23
23
|
*/
|
|
24
|
-
async joinMeeting(meetingUrl,
|
|
24
|
+
async joinMeeting(meetingUrl, webhookBaseUrl, opts) {
|
|
25
25
|
const botName = opts?.botName ?? 'Osborn';
|
|
26
|
+
// 0.9.84: LIVE transcript via realtime_endpoints. The v0.9.44 rewrite
|
|
27
|
+
// removed this and left only 30s polling of the batch download_url — but
|
|
28
|
+
// that URL is a POST-PROCESSING artifact (empty until the meeting ends),
|
|
29
|
+
// so mid-call there was nothing to fetch (confirmed live 2026-07-29:
|
|
30
|
+
// transcript stayed `processing` during the call, downloaded only after
|
|
31
|
+
// the bot left). Registering a realtime webhook makes Recall stream each
|
|
32
|
+
// transcript turn to /webhook/recall as it's spoken — the receiver
|
|
33
|
+
// (handleWebhook) already exists. Polling stays as the after-the-fact
|
|
34
|
+
// backstop. Only wire the webhook when we have a public URL to receive on.
|
|
35
|
+
const realtime = /^https:\/\//.test(webhookBaseUrl)
|
|
36
|
+
? [{ type: 'webhook', url: `${webhookBaseUrl}/webhook/recall`, events: ['transcript.data', 'transcript.partial_data'] }]
|
|
37
|
+
: [];
|
|
38
|
+
if (!realtime.length)
|
|
39
|
+
console.log('⚠️ Recall realtime webhook skipped (no public https URL) — polling only');
|
|
26
40
|
// ARCHITECTURE (post-2026-05-22 polling redesign):
|
|
27
41
|
// The bot joins by name only — visible in the meeting participant list as
|
|
28
42
|
// "Osborn" but with no audio output and no avatar. We do NOT configure any
|
|
@@ -53,6 +67,7 @@ export class RecallClient extends EventEmitter {
|
|
|
53
67
|
},
|
|
54
68
|
},
|
|
55
69
|
},
|
|
70
|
+
...(realtime.length ? { realtime_endpoints: realtime } : {}),
|
|
56
71
|
},
|
|
57
72
|
}),
|
|
58
73
|
});
|