@infilectai/aira 0.0.0-stage → 0.1.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 (57) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +74 -2
  3. package/bin/aira-capture +0 -0
  4. package/dist/attribution.d.ts +118 -0
  5. package/dist/attribution.d.ts.map +1 -0
  6. package/dist/attribution.js +626 -0
  7. package/dist/attribution.js.map +1 -0
  8. package/dist/audio.d.ts +26 -0
  9. package/dist/audio.d.ts.map +1 -0
  10. package/dist/audio.js +172 -0
  11. package/dist/audio.js.map +1 -0
  12. package/dist/brain.d.ts +11 -0
  13. package/dist/brain.d.ts.map +1 -0
  14. package/dist/brain.js +70 -0
  15. package/dist/brain.js.map +1 -0
  16. package/dist/capture.d.ts +48 -0
  17. package/dist/capture.d.ts.map +1 -0
  18. package/dist/capture.js +195 -0
  19. package/dist/capture.js.map +1 -0
  20. package/dist/engine.d.ts +61 -0
  21. package/dist/engine.d.ts.map +1 -0
  22. package/dist/engine.js +471 -0
  23. package/dist/engine.js.map +1 -0
  24. package/dist/eyes.d.ts +60 -0
  25. package/dist/eyes.d.ts.map +1 -0
  26. package/dist/eyes.js +173 -0
  27. package/dist/eyes.js.map +1 -0
  28. package/dist/index.d.ts +11 -0
  29. package/dist/index.d.ts.map +1 -0
  30. package/dist/index.js +9 -0
  31. package/dist/index.js.map +1 -0
  32. package/dist/lockfile.d.ts +14 -0
  33. package/dist/lockfile.d.ts.map +1 -0
  34. package/dist/lockfile.js +38 -0
  35. package/dist/lockfile.js.map +1 -0
  36. package/dist/providers.d.ts +162 -0
  37. package/dist/providers.d.ts.map +1 -0
  38. package/dist/providers.js +374 -0
  39. package/dist/providers.js.map +1 -0
  40. package/dist/transport.d.ts +14 -0
  41. package/dist/transport.d.ts.map +1 -0
  42. package/dist/transport.js +44 -0
  43. package/dist/transport.js.map +1 -0
  44. package/dist/types.d.ts +175 -0
  45. package/dist/types.d.ts.map +1 -0
  46. package/dist/types.js +2 -0
  47. package/dist/types.js.map +1 -0
  48. package/dist/vectors.d.ts +10 -0
  49. package/dist/vectors.d.ts.map +1 -0
  50. package/dist/vectors.js +66 -0
  51. package/dist/vectors.js.map +1 -0
  52. package/native/AiraCapture.swift +1142 -0
  53. package/native/Info.plist +26 -0
  54. package/native/NativeMeetingScraper.swift +1277 -0
  55. package/package.json +84 -4
  56. package/scripts/build-capture.cjs +57 -0
  57. package/scripts/postinstall.cjs +29 -0
@@ -0,0 +1,374 @@
1
+ import { WebSocket } from 'ws';
2
+ import { HttpClient } from './transport.js';
3
+ /**
4
+ * Pluggable HTTP STT provider that works with any OpenAI-compatible
5
+ * `/v1/audio/transcriptions` endpoint (OpenAI, Groq, local whisper.cpp, FastAPI, AiraEngine, etc.).
6
+ */
7
+ export class HttpSTTProvider {
8
+ opts;
9
+ endpointUrl;
10
+ constructor(opts) {
11
+ this.opts = opts;
12
+ const u = new URL(opts.url);
13
+ if (u.pathname === '/' || u.pathname === '') {
14
+ u.pathname = '/v1/audio/transcriptions';
15
+ }
16
+ this.endpointUrl = u.toString();
17
+ }
18
+ async transcribe(audio, callOpts = {}) {
19
+ const form = new FormData();
20
+ form.set('file', new Blob([toBlobPart(audio)], { type: 'audio/wav' }), 'audio.wav');
21
+ const model = callOpts.model ?? this.opts.model;
22
+ if (model)
23
+ form.set('model', model);
24
+ const language = callOpts.language ?? this.opts.language;
25
+ if (language)
26
+ form.set('language', language);
27
+ if (callOpts.prompt)
28
+ form.set('prompt', callOpts.prompt);
29
+ const responseFormat = this.opts.responseFormat ?? (model ? 'verbose_json' : undefined);
30
+ if (responseFormat)
31
+ form.set('response_format', responseFormat);
32
+ const headers = { ...this.opts.headers };
33
+ if (this.opts.apiKey) {
34
+ headers['Authorization'] = `Bearer ${this.opts.apiKey}`;
35
+ }
36
+ const res = await fetch(this.endpointUrl, {
37
+ method: 'POST',
38
+ headers,
39
+ body: form,
40
+ });
41
+ if (!res.ok) {
42
+ const errText = await res.text().catch(() => '');
43
+ throw new Error(`STT HTTP ${res.status}: ${errText || res.statusText}`);
44
+ }
45
+ const raw = (await res.json());
46
+ const text = typeof raw.text === 'string' ? raw.text : '';
47
+ const duration = typeof raw.duration === 'number' ? raw.duration : estimateWavDurationSeconds(audio);
48
+ const rawSegs = Array.isArray(raw.segments) ? raw.segments : [];
49
+ const segments = rawSegs.length > 0
50
+ ? rawSegs.map((s, i) => ({
51
+ id: typeof s.id === 'number' ? s.id : i,
52
+ start: typeof s.start === 'number' ? s.start : 0,
53
+ end: typeof s.end === 'number' ? s.end : duration,
54
+ text: typeof s.text === 'string' ? s.text : '',
55
+ }))
56
+ : text.trim()
57
+ ? [{ id: 0, start: 0, end: duration, text: text.trim() }]
58
+ : [];
59
+ return {
60
+ text,
61
+ language: typeof raw.language === 'string' ? raw.language : (language ?? 'en'),
62
+ duration,
63
+ segments,
64
+ };
65
+ }
66
+ }
67
+ /**
68
+ * Pluggable WebSocket streaming STT provider.
69
+ * Streams 16 kHz mono Int16 PCM binary frames and parses `{ type: 'partial' | 'final', text, t0, t1 }`.
70
+ */
71
+ export class WebSocketSTTProvider {
72
+ opts;
73
+ wsEndpointUrl;
74
+ constructor(opts) {
75
+ this.opts = opts;
76
+ let url = opts.wsUrl.replace(/^http/, 'ws');
77
+ const parsed = new URL(url);
78
+ if (parsed.pathname === '/' || parsed.pathname === '') {
79
+ parsed.pathname = '/v1/audio/stream';
80
+ }
81
+ this.wsEndpointUrl = parsed.toString();
82
+ }
83
+ async transcribe(audio, opts) {
84
+ if (this.opts.httpFallback?.transcribe) {
85
+ return this.opts.httpFallback.transcribe(audio, opts);
86
+ }
87
+ // Fallback: stream the WAV's PCM body through the WebSocket and collect final text
88
+ const pcm = extractPcmFromWavOrRaw(audio);
89
+ const duration = pcm.byteLength / (16000 * 2);
90
+ const session = this.startStream(opts);
91
+ await session.ready();
92
+ const finals = [];
93
+ const reader = (async () => {
94
+ for await (const f of session.frames) {
95
+ if (f.type === 'final')
96
+ finals.push(f);
97
+ }
98
+ })();
99
+ const FRAME = 3200;
100
+ for (let i = 0; i < pcm.byteLength; i += FRAME) {
101
+ session.feed(pcm.subarray(i, Math.min(i + FRAME, pcm.byteLength)));
102
+ }
103
+ await session.close();
104
+ await reader;
105
+ const text = finals[finals.length - 1]?.text ?? '';
106
+ return {
107
+ text,
108
+ language: opts?.language ?? 'en',
109
+ duration,
110
+ segments: text ? [{ id: 0, start: 0, end: duration, text }] : [],
111
+ };
112
+ }
113
+ startStream(_opts) {
114
+ return new WebSocketStreamSession(this.wsEndpointUrl, this.opts.headers);
115
+ }
116
+ }
117
+ export class WebSocketStreamSession {
118
+ ws;
119
+ queue = [];
120
+ waiters = [];
121
+ closed = false;
122
+ constructor(url, headers) {
123
+ this.ws = new WebSocket(url, headers ? { headers } : undefined);
124
+ this.ws.on('message', (data, isBinary) => {
125
+ if (isBinary)
126
+ return;
127
+ try {
128
+ const frame = JSON.parse(data.toString());
129
+ const w = this.waiters.shift();
130
+ if (w)
131
+ w({ value: frame, done: false });
132
+ else
133
+ this.queue.push(frame);
134
+ }
135
+ catch {
136
+ /* ignore malformed frames */
137
+ }
138
+ });
139
+ this.ws.on('close', () => {
140
+ this.closed = true;
141
+ while (this.waiters.length) {
142
+ const w = this.waiters.shift();
143
+ w({ value: undefined, done: true });
144
+ }
145
+ });
146
+ }
147
+ feed(pcm) {
148
+ if (this.closed)
149
+ throw new Error('STTStreamSession is closed');
150
+ const bytes = pcm instanceof Int16Array ? Buffer.from(pcm.buffer, pcm.byteOffset, pcm.byteLength) : pcm;
151
+ if (this.ws.readyState === WebSocket.OPEN) {
152
+ this.ws.send(bytes);
153
+ }
154
+ }
155
+ get frames() {
156
+ const queue = this.queue;
157
+ const waiters = this.waiters;
158
+ const isClosed = () => this.closed;
159
+ return {
160
+ [Symbol.asyncIterator]() {
161
+ return {
162
+ next() {
163
+ if (queue.length) {
164
+ return Promise.resolve({ value: queue.shift(), done: false });
165
+ }
166
+ if (isClosed()) {
167
+ return Promise.resolve({ value: undefined, done: true });
168
+ }
169
+ return new Promise((resolve) => waiters.push(resolve));
170
+ },
171
+ };
172
+ },
173
+ };
174
+ }
175
+ async ready() {
176
+ if (this.ws.readyState === WebSocket.OPEN)
177
+ return;
178
+ await new Promise((resolve, reject) => {
179
+ this.ws.once('open', () => resolve());
180
+ this.ws.once('error', reject);
181
+ });
182
+ }
183
+ async close() {
184
+ if (this.closed)
185
+ return;
186
+ if (this.ws.readyState === WebSocket.OPEN) {
187
+ this.ws.send(JSON.stringify({ type: 'end' }));
188
+ }
189
+ await new Promise((resolve) => this.ws.once('close', () => resolve()));
190
+ }
191
+ }
192
+ /**
193
+ * Pluggable callback STT provider — wrap any third-party SDK (Deepgram, ElevenLabs, AssemblyAI, etc.)
194
+ * with a simple async function.
195
+ */
196
+ export class CallbackSTTProvider {
197
+ fn;
198
+ streamFactory;
199
+ constructor(fn, streamFactory) {
200
+ this.fn = fn;
201
+ this.streamFactory = streamFactory;
202
+ }
203
+ async transcribe(audio, opts) {
204
+ const buf = Buffer.isBuffer(audio) ? audio : Buffer.from(audio.buffer, audio.byteOffset, audio.byteLength);
205
+ const duration = estimateWavDurationSeconds(buf);
206
+ const out = await this.fn(buf, opts);
207
+ if (typeof out === 'string') {
208
+ return {
209
+ text: out,
210
+ language: opts?.language ?? 'en',
211
+ duration,
212
+ segments: out.trim() ? [{ id: 0, start: 0, end: duration, text: out.trim() }] : [],
213
+ };
214
+ }
215
+ if ('language' in out && 'duration' in out && Array.isArray(out.segments)) {
216
+ return out;
217
+ }
218
+ const text = out.text ?? '';
219
+ return {
220
+ text,
221
+ language: opts?.language ?? 'en',
222
+ duration,
223
+ segments: out.segments && out.segments.length > 0
224
+ ? out.segments
225
+ : text.trim()
226
+ ? [{ id: 0, start: 0, end: duration, text: text.trim() }]
227
+ : [],
228
+ };
229
+ }
230
+ startStream(opts) {
231
+ return this.streamFactory?.(opts);
232
+ }
233
+ }
234
+ /**
235
+ * Pluggable HTTP Diarization provider that works with any `/v1/audio/diarize`
236
+ * endpoint (AiraEngine, pyannote HTTP microservice, etc.).
237
+ */
238
+ export class HttpDiarizationProvider {
239
+ opts;
240
+ endpointUrl;
241
+ constructor(opts) {
242
+ this.opts = opts;
243
+ const u = new URL(opts.url);
244
+ if (u.pathname === '/' || u.pathname === '') {
245
+ u.pathname = '/v1/audio/diarize';
246
+ }
247
+ this.endpointUrl = u.toString();
248
+ }
249
+ async diarize(audio, opts = {}) {
250
+ const form = new FormData();
251
+ form.set('file', new Blob([toBlobPart(audio)], { type: 'audio/wav' }), 'audio.wav');
252
+ if (opts.numSpeakers)
253
+ form.set('num_speakers', String(opts.numSpeakers));
254
+ const headers = { ...this.opts.headers };
255
+ if (this.opts.apiKey) {
256
+ headers['Authorization'] = `Bearer ${this.opts.apiKey}`;
257
+ }
258
+ const res = await fetch(this.endpointUrl, {
259
+ method: 'POST',
260
+ headers,
261
+ body: form,
262
+ });
263
+ if (!res.ok) {
264
+ const errText = await res.text().catch(() => '');
265
+ throw new Error(`Diarize HTTP ${res.status}: ${errText || res.statusText}`);
266
+ }
267
+ const raw = (await res.json());
268
+ const segments = Array.isArray(raw.segments) ? raw.segments : [];
269
+ const numSpeakers = raw.numSpeakers ?? raw.num_speakers ?? new Set(segments.map((s) => s.speaker)).size;
270
+ return {
271
+ numSpeakers,
272
+ scores: Array.isArray(raw.scores) ? raw.scores : [],
273
+ segments,
274
+ };
275
+ }
276
+ }
277
+ /**
278
+ * Pluggable callback Diarization provider.
279
+ */
280
+ export class CallbackDiarizationProvider {
281
+ fn;
282
+ constructor(fn) {
283
+ this.fn = fn;
284
+ }
285
+ async diarize(audio, opts) {
286
+ const buf = Buffer.isBuffer(audio) ? audio : Buffer.from(audio.buffer, audio.byteOffset, audio.byteLength);
287
+ const out = await this.fn(buf, opts);
288
+ if (Array.isArray(out)) {
289
+ return {
290
+ numSpeakers: new Set(out.map((s) => s.speaker)).size,
291
+ scores: [],
292
+ segments: out,
293
+ };
294
+ }
295
+ return out;
296
+ }
297
+ }
298
+ /**
299
+ * Connects `AiraSDK` to an `AiraEngine` compute instance (WhisperKit STT + SpeakerKit Diarization).
300
+ * Can be passed to `AiraEngine.create({ stt: provider, diarize: provider })` or `new AiraClient(...)`.
301
+ */
302
+ export class AiraEngineProvider {
303
+ baseUrl;
304
+ http;
305
+ httpSTT;
306
+ wsSTT;
307
+ httpDiarize;
308
+ preferBatchSTT;
309
+ constructor(opts) {
310
+ const baseUrl = typeof opts === 'string' ? opts : opts.baseUrl;
311
+ this.baseUrl = baseUrl.replace(/\/+$/, '');
312
+ this.preferBatchSTT = typeof opts === 'object' && Boolean(opts.preferBatchSTT);
313
+ this.http = new HttpClient(this.baseUrl);
314
+ this.httpSTT = new HttpSTTProvider({ url: `${this.baseUrl}/v1/audio/transcriptions` });
315
+ this.wsSTT = new WebSocketSTTProvider({
316
+ wsUrl: `${this.baseUrl.replace(/^http/, 'ws')}/v1/audio/stream`,
317
+ httpFallback: this.httpSTT,
318
+ });
319
+ this.httpDiarize = new HttpDiarizationProvider({ url: `${this.baseUrl}/v1/audio/diarize` });
320
+ }
321
+ async transcribe(audio, opts) {
322
+ return this.httpSTT.transcribe(audio, opts);
323
+ }
324
+ startStream() {
325
+ if (this.preferBatchSTT)
326
+ return undefined;
327
+ return this.wsSTT.startStream();
328
+ }
329
+ async diarize(audio, opts) {
330
+ return this.httpDiarize.diarize(audio, opts);
331
+ }
332
+ }
333
+ // ─────────────────── Audio / WAV Helpers ───────────────────
334
+ export function toBlobPart(bytes) {
335
+ return new Uint8Array(bytes.buffer, bytes.byteOffset, bytes.byteLength);
336
+ }
337
+ /** Wraps raw 16 kHz 16-bit mono little-endian PCM bytes in a 44-byte RIFF WAVE header. */
338
+ export function encodeWavFromInt16PCM(pcmBytes, sampleRate = 16000) {
339
+ const header = Buffer.alloc(44);
340
+ header.write('RIFF', 0);
341
+ header.writeUInt32LE(36 + pcmBytes.length, 4);
342
+ header.write('WAVE', 8);
343
+ header.write('fmt ', 12);
344
+ header.writeUInt32LE(16, 16);
345
+ header.writeUInt16LE(1, 20);
346
+ header.writeUInt16LE(1, 22);
347
+ header.writeUInt32LE(sampleRate, 24);
348
+ header.writeUInt32LE(sampleRate * 2, 28);
349
+ header.writeUInt16LE(2, 32);
350
+ header.writeUInt16LE(16, 34);
351
+ header.write('data', 36);
352
+ header.writeUInt32LE(pcmBytes.length, 40);
353
+ return Buffer.concat([header, pcmBytes]);
354
+ }
355
+ export function extractPcmFromWavOrRaw(audio) {
356
+ const buf = Buffer.isBuffer(audio) ? audio : Buffer.from(audio.buffer, audio.byteOffset, audio.byteLength);
357
+ if (buf.length >= 44 && buf.toString('ascii', 0, 4) === 'RIFF' && buf.toString('ascii', 8, 12) === 'WAVE') {
358
+ let offset = 12;
359
+ while (offset + 8 <= buf.length) {
360
+ const id = buf.toString('ascii', offset, offset + 4);
361
+ const size = buf.readUInt32LE(offset + 4);
362
+ if (id === 'data') {
363
+ return buf.subarray(offset + 8, Math.min(buf.length, offset + 8 + size));
364
+ }
365
+ offset += 8 + size + (size % 2);
366
+ }
367
+ }
368
+ return buf;
369
+ }
370
+ export function estimateWavDurationSeconds(audio) {
371
+ const pcm = extractPcmFromWavOrRaw(audio);
372
+ return pcm.byteLength / (16000 * 2);
373
+ }
374
+ //# sourceMappingURL=providers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export declare class HttpClient {
2
+ readonly baseUrl: string;
3
+ constructor(baseUrl: string);
4
+ json<T>(path: string, init?: RequestInit): Promise<T>;
5
+ post<T>(path: string, body: unknown, init?: RequestInit): Promise<T>;
6
+ raw(path: string, init?: RequestInit): Promise<Response>;
7
+ }
8
+ export declare class EngineHttpError extends Error {
9
+ readonly status: number;
10
+ readonly body: string;
11
+ constructor(status: number, body: string, message: string);
12
+ static fromResponse(res: Response): Promise<EngineHttpError>;
13
+ }
14
+ //# sourceMappingURL=transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAU;aACO,OAAO,EAAE,MAAM;gBAAf,OAAO,EAAE,MAAM;IAErC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;IAQrD,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;IASpE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;CAK/D;AAED,qBAAa,eAAgB,SAAQ,KAAK;aAEtB,MAAM,EAAE,MAAM;aACd,IAAI,EAAE,MAAM;gBADZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EAC5B,OAAO,EAAE,MAAM;WAMJ,YAAY,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,eAAe,CAAC;CAInE"}
@@ -0,0 +1,44 @@
1
+ export class HttpClient {
2
+ baseUrl;
3
+ constructor(baseUrl) {
4
+ this.baseUrl = baseUrl;
5
+ }
6
+ async json(path, init) {
7
+ const res = await fetch(this.baseUrl + path, init);
8
+ if (!res.ok)
9
+ throw await EngineHttpError.fromResponse(res);
10
+ const text = await res.text();
11
+ if (!text)
12
+ return undefined;
13
+ return JSON.parse(text);
14
+ }
15
+ async post(path, body, init) {
16
+ return this.json(path, {
17
+ method: 'POST',
18
+ headers: { 'content-type': 'application/json' },
19
+ body: JSON.stringify(body),
20
+ ...init,
21
+ });
22
+ }
23
+ async raw(path, init) {
24
+ const res = await fetch(this.baseUrl + path, init);
25
+ if (!res.ok)
26
+ throw await EngineHttpError.fromResponse(res);
27
+ return res;
28
+ }
29
+ }
30
+ export class EngineHttpError extends Error {
31
+ status;
32
+ body;
33
+ constructor(status, body, message) {
34
+ super(message);
35
+ this.status = status;
36
+ this.body = body;
37
+ this.name = 'EngineHttpError';
38
+ }
39
+ static async fromResponse(res) {
40
+ const body = await res.text().catch(() => '');
41
+ return new EngineHttpError(res.status, body, `engine ${res.status}: ${body || res.statusText}`);
42
+ }
43
+ }
44
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,UAAU;IACO;IAA5B,YAA4B,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;IAAG,CAAC;IAE/C,KAAK,CAAC,IAAI,CAAI,IAAY,EAAE,IAAkB;QAC5C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,IAAI,CAAC,CAAA;QAClD,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;QAC1D,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;QAC7B,IAAI,CAAC,IAAI;YAAE,OAAO,SAAc,CAAA;QAChC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,IAAI,CAAI,IAAY,EAAE,IAAa,EAAE,IAAkB;QAC3D,OAAO,IAAI,CAAC,IAAI,CAAI,IAAI,EAAE;YACxB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1B,GAAG,IAAI;SACR,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAY,EAAE,IAAkB;QACxC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,IAAI,CAAC,CAAA;QAClD,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;QAC1D,OAAO,GAAG,CAAA;IACZ,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAEtB;IACA;IAFlB,YACkB,MAAc,EACd,IAAY,EAC5B,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAA;QAJE,WAAM,GAAN,MAAM,CAAQ;QACd,SAAI,GAAJ,IAAI,CAAQ;QAI5B,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAA;IAC/B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,GAAa;QACrC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;QAC7C,OAAO,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,CAAC,MAAM,KAAK,IAAI,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAA;IACjG,CAAC;CACF"}
@@ -0,0 +1,175 @@
1
+ import type { CustomDiarizeFn, CustomTranscribeFn, DiarizationProvider, HttpDiarizationProviderOptions, HttpSTTProviderOptions, STTProvider, WebSocketSTTProviderOptions } from './providers.js';
2
+ export type STTProviderInput = STTProvider | HttpSTTProviderOptions | WebSocketSTTProviderOptions | CustomTranscribeFn | string;
3
+ export type DiarizationProviderInput = DiarizationProvider | HttpDiarizationProviderOptions | CustomDiarizeFn | string;
4
+ export interface StartMeetingOptions {
5
+ /** Override STT provider or endpoint for this meeting session. */
6
+ stt?: STTProviderInput;
7
+ /** Override Diarization provider or endpoint for this meeting session. */
8
+ diarize?: DiarizationProviderInput;
9
+ /** Options forwarded to the STT provider (`language`, `prompt`, `model`). */
10
+ transcribeOptions?: TranscribeOptions;
11
+ /** Speech chunk duration in seconds when using a batch HTTP STT endpoint (default: 3.5s). */
12
+ batchChunkSeconds?: number;
13
+ }
14
+ export interface AiraEngineOptions {
15
+ /** Pluggable STT provider, HTTP/WebSocket endpoint config, URL string, or callback. */
16
+ stt?: STTProviderInput;
17
+ /** Pluggable Diarization provider, HTTP endpoint config, URL string, or callback. */
18
+ diarize?: DiarizationProviderInput;
19
+ /** Path to the lightweight `aira-capture` binary (defaults to bundled `bin/aira-capture`). */
20
+ capturePath?: string;
21
+ /** Optional AiraEngine provider base URL (e.g. `http://127.0.0.1:50060`). */
22
+ baseUrl?: string;
23
+ /** Optional path to an `aira-engine` binary if spawning local AiraEngine compute. */
24
+ enginePath?: string;
25
+ modelsDir?: string;
26
+ port?: number;
27
+ startupTimeoutMs?: number;
28
+ onModelDownload?: (model: {
29
+ name: string;
30
+ }, progress: {
31
+ percent: number;
32
+ }) => void;
33
+ }
34
+ export interface TranscribeOptions {
35
+ language?: string;
36
+ prompt?: string;
37
+ model?: string;
38
+ }
39
+ export interface TranscribeSegment {
40
+ id: number;
41
+ start: number;
42
+ end: number;
43
+ text: string;
44
+ }
45
+ export interface TranscribeResult {
46
+ text: string;
47
+ language: string;
48
+ duration: number;
49
+ segments: TranscribeSegment[];
50
+ }
51
+ export interface DiarizeOptions {
52
+ numSpeakers?: number;
53
+ }
54
+ export interface DiarizeSegment {
55
+ start: number;
56
+ end: number;
57
+ speaker: string;
58
+ }
59
+ export interface DiarizeResult {
60
+ numSpeakers: number;
61
+ scores: number[];
62
+ segments: DiarizeSegment[];
63
+ }
64
+ export type SpeakVoice = 'ryan' | 'aiden' | 'ono-anna' | 'sohee' | 'eric' | 'dylan' | 'serena' | 'vivian' | 'uncle-fu' | (string & {});
65
+ export type SpeakLanguage = 'english' | 'chinese' | 'japanese' | 'korean' | 'german' | 'french' | 'russian' | 'portuguese' | 'spanish' | 'italian' | (string & {});
66
+ export interface SpeakOptions {
67
+ voice?: SpeakVoice;
68
+ language?: SpeakLanguage;
69
+ temperature?: number;
70
+ topK?: number;
71
+ instruction?: string;
72
+ signal?: AbortSignal;
73
+ }
74
+ export interface ChatMessage {
75
+ role: 'system' | 'user' | 'assistant';
76
+ content: string;
77
+ }
78
+ export interface ChatOptions {
79
+ model?: string;
80
+ temperature?: number;
81
+ topP?: number;
82
+ topK?: number;
83
+ maxTokens?: number;
84
+ signal?: AbortSignal;
85
+ }
86
+ export interface ChatResult {
87
+ id: string;
88
+ model: string;
89
+ content: string;
90
+ }
91
+ export interface ChatChunk {
92
+ id: string;
93
+ delta: string;
94
+ done: boolean;
95
+ }
96
+ export interface VectorRecord {
97
+ /** Stable user-supplied identifier. Unique per Vectors store. */
98
+ id: string;
99
+ /** Length must match the `dim` configured on the Vectors instance. */
100
+ embedding: Float32Array | number[];
101
+ /** Arbitrary JSON-serialisable payload, returned alongside search hits. */
102
+ metadata?: Record<string, unknown>;
103
+ }
104
+ export interface VectorHit {
105
+ id: string;
106
+ /** L2 distance to the query (sqlite-vec default metric). Smaller = closer. */
107
+ distance: number;
108
+ metadata?: Record<string, unknown>;
109
+ }
110
+ export interface VectorsOptions {
111
+ /** Filesystem path to the SQLite database backing this store. */
112
+ path: string;
113
+ /** Embedding dimensionality. Defaults to 768 (matches EmbeddingGemma). */
114
+ dim?: number;
115
+ }
116
+ export interface LiveTranscriptFrame {
117
+ type: 'partial' | 'final' | 'error';
118
+ text: string;
119
+ t0: number;
120
+ t1: number;
121
+ }
122
+ export type PrimitiveStatus = 'unloaded' | 'loading' | 'loaded' | 'error';
123
+ export interface HealthResponse {
124
+ status: string;
125
+ /** Per-primitive status. Stable keys: stt, diarize, tts, chat, embed. */
126
+ primitives: Record<string, PrimitiveStatus>;
127
+ }
128
+ export interface MeetingTarget {
129
+ pid: number;
130
+ browser: 'chrome' | 'edge' | 'brave' | 'arc' | 'vivaldi' | 'safari' | 'Zoom' | 'Microsoft Teams' | (string & {});
131
+ platform: 'google-meet' | 'zoom' | 'teams' | (string & {});
132
+ url: string;
133
+ title: string;
134
+ }
135
+ export interface Participant {
136
+ /** Stable per-meeting id; collisions only on duplicate display names (rare in Meet). */
137
+ id: string;
138
+ name: string;
139
+ }
140
+ export interface ChromeParticipant {
141
+ pid: string;
142
+ name: string;
143
+ muted?: boolean;
144
+ }
145
+ export interface ChromeEvent {
146
+ type: 'speaker_change' | 'roster' | (string & {});
147
+ speaker?: string;
148
+ method?: string;
149
+ participants?: ChromeParticipant[];
150
+ }
151
+ export type EyesEvent = {
152
+ type: 'roster';
153
+ participants: Participant[];
154
+ } | {
155
+ type: 'speaker_change';
156
+ participantId: string;
157
+ name: string;
158
+ t: number;
159
+ } | {
160
+ type: 'transcript';
161
+ participantId: string;
162
+ name: string;
163
+ text: string;
164
+ t0: number;
165
+ t1: number;
166
+ partial: boolean;
167
+ } | {
168
+ type: 'warning';
169
+ reason: string;
170
+ message: string;
171
+ } | {
172
+ type: 'error';
173
+ message: string;
174
+ };
175
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}