@fugood/bricks-project 2.23.4 → 2.23.5-1

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 (90) hide show
  1. package/compile/action-name-map.ts +14 -0
  2. package/compile/index.ts +29 -0
  3. package/package.json +2 -2
  4. package/skills/bricks-project/rules/architecture-patterns.md +7 -0
  5. package/skills/bricks-project/rules/buttress.md +9 -6
  6. package/tools/mcp-tools/huggingface.ts +113 -3
  7. package/tools/postinstall.ts +113 -28
  8. package/types/animation.ts +4 -0
  9. package/types/automation.ts +3 -0
  10. package/types/bricks/Camera.ts +33 -6
  11. package/types/bricks/GenerativeMedia.ts +5 -5
  12. package/types/bricks/Icon.ts +2 -2
  13. package/types/bricks/Image.ts +3 -3
  14. package/types/bricks/Items.ts +6 -6
  15. package/types/bricks/Lottie.ts +3 -3
  16. package/types/bricks/Maps.ts +3 -3
  17. package/types/bricks/QrCode.ts +3 -3
  18. package/types/bricks/Rect.ts +3 -3
  19. package/types/bricks/RichText.ts +2 -2
  20. package/types/bricks/Slideshow.ts +1 -1
  21. package/types/bricks/Svg.ts +2 -2
  22. package/types/bricks/Text.ts +3 -3
  23. package/types/bricks/TextInput.ts +10 -6
  24. package/types/bricks/Video.ts +3 -3
  25. package/types/bricks/VideoStreaming.ts +2 -2
  26. package/types/bricks/WebView.ts +3 -3
  27. package/types/canvas.ts +2 -0
  28. package/types/common.ts +5 -0
  29. package/types/data-calc-command.ts +2 -0
  30. package/types/data-calc.ts +1 -0
  31. package/types/data.ts +2 -0
  32. package/types/generators/AlarmClock.ts +4 -4
  33. package/types/generators/Assistant.ts +53 -8
  34. package/types/generators/BleCentral.ts +11 -3
  35. package/types/generators/BlePeripheral.ts +3 -3
  36. package/types/generators/CanvasMap.ts +3 -3
  37. package/types/generators/CastlesPay.ts +2 -2
  38. package/types/generators/DataBank.ts +29 -2
  39. package/types/generators/File.ts +62 -13
  40. package/types/generators/GraphQl.ts +2 -2
  41. package/types/generators/Http.ts +25 -6
  42. package/types/generators/HttpServer.ts +4 -4
  43. package/types/generators/Information.ts +1 -1
  44. package/types/generators/Intent.ts +7 -1
  45. package/types/generators/Iterator.ts +5 -5
  46. package/types/generators/Keyboard.ts +15 -5
  47. package/types/generators/LlmAnthropicCompat.ts +9 -3
  48. package/types/generators/LlmAppleBuiltin.ts +4 -4
  49. package/types/generators/LlmGgml.ts +63 -13
  50. package/types/generators/LlmMlx.ts +210 -0
  51. package/types/generators/LlmOnnx.ts +13 -4
  52. package/types/generators/LlmOpenAiCompat.ts +19 -3
  53. package/types/generators/LlmQualcommAiEngine.ts +29 -5
  54. package/types/generators/Mcp.ts +331 -16
  55. package/types/generators/McpServer.ts +34 -7
  56. package/types/generators/MediaFlow.ts +24 -6
  57. package/types/generators/MqttBroker.ts +9 -3
  58. package/types/generators/MqttClient.ts +10 -4
  59. package/types/generators/Question.ts +4 -4
  60. package/types/generators/RealtimeTranscription.ts +81 -10
  61. package/types/generators/RerankerGgml.ts +19 -5
  62. package/types/generators/SerialPort.ts +5 -5
  63. package/types/generators/SoundPlayer.ts +1 -1
  64. package/types/generators/SoundRecorder.ts +16 -5
  65. package/types/generators/SpeechToTextGgml.ts +27 -7
  66. package/types/generators/SpeechToTextOnnx.ts +3 -3
  67. package/types/generators/SpeechToTextPlatform.ts +3 -3
  68. package/types/generators/SqLite.ts +9 -5
  69. package/types/generators/Step.ts +2 -2
  70. package/types/generators/SttAppleBuiltin.ts +4 -4
  71. package/types/generators/Tcp.ts +3 -3
  72. package/types/generators/TcpServer.ts +5 -5
  73. package/types/generators/TextToSpeechAppleBuiltin.ts +3 -3
  74. package/types/generators/TextToSpeechGgml.ts +3 -3
  75. package/types/generators/TextToSpeechOnnx.ts +3 -3
  76. package/types/generators/TextToSpeechOpenAiLike.ts +3 -3
  77. package/types/generators/ThermalPrinter.ts +4 -4
  78. package/types/generators/Tick.ts +2 -2
  79. package/types/generators/Udp.ts +8 -3
  80. package/types/generators/VadGgml.ts +34 -5
  81. package/types/generators/VadOnnx.ts +27 -4
  82. package/types/generators/VadTraditional.ts +13 -7
  83. package/types/generators/VectorStore.ts +22 -5
  84. package/types/generators/Watchdog.ts +10 -5
  85. package/types/generators/WebCrawler.ts +3 -3
  86. package/types/generators/WebRtc.ts +14 -8
  87. package/types/generators/WebSocket.ts +4 -4
  88. package/types/generators/index.ts +1 -0
  89. package/types/subspace.ts +1 -0
  90. package/utils/event-props.ts +104 -87
@@ -175,15 +175,39 @@ Default property:
175
175
  }
176
176
  outlets?: {
177
177
  /* Context state */
178
- contextState?: () => Data
178
+ contextState?: () => Data<string>
179
179
  /* Generation result */
180
- result?: () => Data
180
+ result?: () => Data<string>
181
181
  /* Full context (Prompt + Generation Result) */
182
- fullContext?: () => Data
182
+ fullContext?: () => Data<string>
183
183
  /* Last function call details */
184
- lastFunctionCall?: () => Data
184
+ lastFunctionCall?: () => Data<{
185
+ id?: string
186
+ type?: string
187
+ function?: {
188
+ name?: string
189
+ arguments?: string
190
+ [key: string]: any
191
+ }
192
+ [key: string]: any
193
+ }>
185
194
  /* Completion details */
186
- completionDetails?: () => Data
195
+ completionDetails?: () => Data<{
196
+ text?: string
197
+ content?: string
198
+ reasoning_content?: string
199
+ tool_calls?: Array<{
200
+ id?: string
201
+ type?: string
202
+ function?: {
203
+ name?: string
204
+ arguments?: string
205
+ [key: string]: any
206
+ }
207
+ [key: string]: any
208
+ }>
209
+ [key: string]: any
210
+ }>
187
211
  }
188
212
  }
189
213
 
@@ -223,37 +223,352 @@ Default property:
223
223
  }
224
224
  outlets?: {
225
225
  /* Connection state */
226
- connectionState?: () => Data
226
+ connectionState?: () => Data<string>
227
227
  /* List resources response */
228
- listResourcesResponse?: () => Data
228
+ listResourcesResponse?: () => Data<{
229
+ id?: string
230
+ response?: {
231
+ resources?: Array<{
232
+ name?: string
233
+ [key: string]: any
234
+ }>
235
+ resourceTemplates?: Array<{
236
+ name?: string
237
+ [key: string]: any
238
+ }>
239
+ contents?: Array<{
240
+ uri?: string
241
+ text?: string
242
+ blob?: string
243
+ mimeType?: string
244
+ [key: string]: any
245
+ }>
246
+ tools?: Array<{
247
+ name?: string
248
+ description?: string
249
+ inputSchema?: { [key: string]: any }
250
+ [key: string]: any
251
+ }>
252
+ content?: Array<{
253
+ type?: string
254
+ text?: string
255
+ [key: string]: any
256
+ }>
257
+ prompts?: Array<{
258
+ name?: string
259
+ [key: string]: any
260
+ }>
261
+ messages?: Array<{
262
+ role?: string
263
+ content?: any
264
+ [key: string]: any
265
+ }>
266
+ [key: string]: any
267
+ }
268
+ [key: string]: any
269
+ }>
229
270
  /* List resources error */
230
- listResourcesError?: () => Data
271
+ listResourcesError?: () => Data<{
272
+ id?: string
273
+ error?: string
274
+ [key: string]: any
275
+ }>
231
276
  /* List resource templates response */
232
- listResourceTemplatesResponse?: () => Data
277
+ listResourceTemplatesResponse?: () => Data<{
278
+ id?: string
279
+ response?: {
280
+ resources?: Array<{
281
+ name?: string
282
+ [key: string]: any
283
+ }>
284
+ resourceTemplates?: Array<{
285
+ name?: string
286
+ [key: string]: any
287
+ }>
288
+ contents?: Array<{
289
+ uri?: string
290
+ text?: string
291
+ blob?: string
292
+ mimeType?: string
293
+ [key: string]: any
294
+ }>
295
+ tools?: Array<{
296
+ name?: string
297
+ description?: string
298
+ inputSchema?: { [key: string]: any }
299
+ [key: string]: any
300
+ }>
301
+ content?: Array<{
302
+ type?: string
303
+ text?: string
304
+ [key: string]: any
305
+ }>
306
+ prompts?: Array<{
307
+ name?: string
308
+ [key: string]: any
309
+ }>
310
+ messages?: Array<{
311
+ role?: string
312
+ content?: any
313
+ [key: string]: any
314
+ }>
315
+ [key: string]: any
316
+ }
317
+ [key: string]: any
318
+ }>
233
319
  /* List resource templates error */
234
- listResourceTemplatesError?: () => Data
320
+ listResourceTemplatesError?: () => Data<{
321
+ id?: string
322
+ error?: string
323
+ [key: string]: any
324
+ }>
235
325
  /* Read resource response */
236
- readResourceResponse?: () => Data
326
+ readResourceResponse?: () => Data<{
327
+ id?: string
328
+ response?: {
329
+ resources?: Array<{
330
+ name?: string
331
+ [key: string]: any
332
+ }>
333
+ resourceTemplates?: Array<{
334
+ name?: string
335
+ [key: string]: any
336
+ }>
337
+ contents?: Array<{
338
+ uri?: string
339
+ text?: string
340
+ blob?: string
341
+ mimeType?: string
342
+ [key: string]: any
343
+ }>
344
+ tools?: Array<{
345
+ name?: string
346
+ description?: string
347
+ inputSchema?: { [key: string]: any }
348
+ [key: string]: any
349
+ }>
350
+ content?: Array<{
351
+ type?: string
352
+ text?: string
353
+ [key: string]: any
354
+ }>
355
+ prompts?: Array<{
356
+ name?: string
357
+ [key: string]: any
358
+ }>
359
+ messages?: Array<{
360
+ role?: string
361
+ content?: any
362
+ [key: string]: any
363
+ }>
364
+ [key: string]: any
365
+ }
366
+ [key: string]: any
367
+ }>
237
368
  /* Read resource error */
238
- readResourceError?: () => Data
369
+ readResourceError?: () => Data<{
370
+ id?: string
371
+ error?: string
372
+ [key: string]: any
373
+ }>
239
374
  /* List tools response */
240
- listToolsResponse?: () => Data
375
+ listToolsResponse?: () => Data<{
376
+ id?: string
377
+ response?: {
378
+ resources?: Array<{
379
+ name?: string
380
+ [key: string]: any
381
+ }>
382
+ resourceTemplates?: Array<{
383
+ name?: string
384
+ [key: string]: any
385
+ }>
386
+ contents?: Array<{
387
+ uri?: string
388
+ text?: string
389
+ blob?: string
390
+ mimeType?: string
391
+ [key: string]: any
392
+ }>
393
+ tools?: Array<{
394
+ name?: string
395
+ description?: string
396
+ inputSchema?: { [key: string]: any }
397
+ [key: string]: any
398
+ }>
399
+ content?: Array<{
400
+ type?: string
401
+ text?: string
402
+ [key: string]: any
403
+ }>
404
+ prompts?: Array<{
405
+ name?: string
406
+ [key: string]: any
407
+ }>
408
+ messages?: Array<{
409
+ role?: string
410
+ content?: any
411
+ [key: string]: any
412
+ }>
413
+ [key: string]: any
414
+ }
415
+ [key: string]: any
416
+ }>
241
417
  /* List tools error */
242
- listToolsError?: () => Data
418
+ listToolsError?: () => Data<{
419
+ id?: string
420
+ error?: string
421
+ [key: string]: any
422
+ }>
243
423
  /* Call tool response */
244
- callToolResponse?: () => Data
424
+ callToolResponse?: () => Data<{
425
+ id?: string
426
+ response?: {
427
+ resources?: Array<{
428
+ name?: string
429
+ [key: string]: any
430
+ }>
431
+ resourceTemplates?: Array<{
432
+ name?: string
433
+ [key: string]: any
434
+ }>
435
+ contents?: Array<{
436
+ uri?: string
437
+ text?: string
438
+ blob?: string
439
+ mimeType?: string
440
+ [key: string]: any
441
+ }>
442
+ tools?: Array<{
443
+ name?: string
444
+ description?: string
445
+ inputSchema?: { [key: string]: any }
446
+ [key: string]: any
447
+ }>
448
+ content?: Array<{
449
+ type?: string
450
+ text?: string
451
+ [key: string]: any
452
+ }>
453
+ prompts?: Array<{
454
+ name?: string
455
+ [key: string]: any
456
+ }>
457
+ messages?: Array<{
458
+ role?: string
459
+ content?: any
460
+ [key: string]: any
461
+ }>
462
+ [key: string]: any
463
+ }
464
+ [key: string]: any
465
+ }>
245
466
  /* Call tool error */
246
- callToolError?: () => Data
467
+ callToolError?: () => Data<{
468
+ id?: string
469
+ error?: string
470
+ [key: string]: any
471
+ }>
247
472
  /* List prompts response */
248
- listPromptsResponse?: () => Data
473
+ listPromptsResponse?: () => Data<{
474
+ id?: string
475
+ response?: {
476
+ resources?: Array<{
477
+ name?: string
478
+ [key: string]: any
479
+ }>
480
+ resourceTemplates?: Array<{
481
+ name?: string
482
+ [key: string]: any
483
+ }>
484
+ contents?: Array<{
485
+ uri?: string
486
+ text?: string
487
+ blob?: string
488
+ mimeType?: string
489
+ [key: string]: any
490
+ }>
491
+ tools?: Array<{
492
+ name?: string
493
+ description?: string
494
+ inputSchema?: { [key: string]: any }
495
+ [key: string]: any
496
+ }>
497
+ content?: Array<{
498
+ type?: string
499
+ text?: string
500
+ [key: string]: any
501
+ }>
502
+ prompts?: Array<{
503
+ name?: string
504
+ [key: string]: any
505
+ }>
506
+ messages?: Array<{
507
+ role?: string
508
+ content?: any
509
+ [key: string]: any
510
+ }>
511
+ [key: string]: any
512
+ }
513
+ [key: string]: any
514
+ }>
249
515
  /* List prompts error */
250
- listPromptsError?: () => Data
516
+ listPromptsError?: () => Data<{
517
+ id?: string
518
+ error?: string
519
+ [key: string]: any
520
+ }>
251
521
  /* Get prompt response */
252
- getPromptResponse?: () => Data
522
+ getPromptResponse?: () => Data<{
523
+ id?: string
524
+ response?: {
525
+ resources?: Array<{
526
+ name?: string
527
+ [key: string]: any
528
+ }>
529
+ resourceTemplates?: Array<{
530
+ name?: string
531
+ [key: string]: any
532
+ }>
533
+ contents?: Array<{
534
+ uri?: string
535
+ text?: string
536
+ blob?: string
537
+ mimeType?: string
538
+ [key: string]: any
539
+ }>
540
+ tools?: Array<{
541
+ name?: string
542
+ description?: string
543
+ inputSchema?: { [key: string]: any }
544
+ [key: string]: any
545
+ }>
546
+ content?: Array<{
547
+ type?: string
548
+ text?: string
549
+ [key: string]: any
550
+ }>
551
+ prompts?: Array<{
552
+ name?: string
553
+ [key: string]: any
554
+ }>
555
+ messages?: Array<{
556
+ role?: string
557
+ content?: any
558
+ [key: string]: any
559
+ }>
560
+ [key: string]: any
561
+ }
562
+ [key: string]: any
563
+ }>
253
564
  /* Request prompt error */
254
- getPromptError?: () => Data
565
+ getPromptError?: () => Data<{
566
+ id?: string
567
+ error?: string
568
+ [key: string]: any
569
+ }>
255
570
  /* Last error */
256
- lastError?: () => Data
571
+ lastError?: () => Data<string>
257
572
  }
258
573
  }
259
574
 
@@ -204,19 +204,46 @@ Default property:
204
204
  }
205
205
  outlets?: {
206
206
  /* Whether the HTTP server is listening */
207
- isListening?: () => Data
207
+ isListening?: () => Data<boolean>
208
208
  /* Last error of HTTP server */
209
- lastError?: () => Data
209
+ lastError?: () => Data<string>
210
210
  /* MCP server endpoint URL */
211
- endpoint?: () => Data
211
+ endpoint?: () => Data<string>
212
212
  /* Connected remotes (Session ID) */
213
- connectedRemotes?: () => Data
213
+ connectedRemotes?: () => Data<Array<string>>
214
214
  /* Last resource request ({ name: string, uri: string, params: object }) */
215
- lastResourceRequest?: () => Data
215
+ lastResourceRequest?: () => Data<{
216
+ type?: string
217
+ id?: string
218
+ name?: string
219
+ uri?: string
220
+ params?: { [key: string]: any }
221
+ arguments?: { [key: string]: any }
222
+ timeout?: number
223
+ [key: string]: any
224
+ }>
216
225
  /* Last tool call ({ name: string, params: object }) */
217
- lastToolCall?: () => Data
226
+ lastToolCall?: () => Data<{
227
+ type?: string
228
+ id?: string
229
+ name?: string
230
+ uri?: string
231
+ params?: { [key: string]: any }
232
+ arguments?: { [key: string]: any }
233
+ timeout?: number
234
+ [key: string]: any
235
+ }>
218
236
  /* Last prompt get ({ name: string, arguments: object }) */
219
- lastPromptGet?: () => Data
237
+ lastPromptGet?: () => Data<{
238
+ type?: string
239
+ id?: string
240
+ name?: string
241
+ uri?: string
242
+ params?: { [key: string]: any }
243
+ arguments?: { [key: string]: any }
244
+ timeout?: number
245
+ [key: string]: any
246
+ }>
220
247
  }
221
248
  }
222
249
 
@@ -101,17 +101,35 @@ Default property:
101
101
  }
102
102
  outlets?: {
103
103
  /* File sync status */
104
- downloadStatus?: () => Data
104
+ downloadStatus?: () => Data<string>
105
105
  /* File sync progress */
106
- downloadProgress?: () => Data
106
+ downloadProgress?: () => Data<
107
+ Array<{
108
+ key?: string
109
+ progress?: number
110
+ finished?: boolean
111
+ [key: string]: any
112
+ }>
113
+ >
107
114
  /* File sync download errors */
108
- downloadErrors?: () => Data
115
+ downloadErrors?: () => Data<Array<string>>
109
116
  /* Media box info */
110
- box?: () => Data
117
+ box?: () => Data<{ [key: string]: any }>
111
118
  /* Save Media Flow fetch result [ { "url": "https://d1kk0369g9vrck.cloudfront.net/box/5b431e29efd40c01e8b2019c/photo5b431e37efd40c01e8b201d1" "extension": "", // enum("jpg", "png", "mp4") "id": "5b431e37efd40c01e8b201d1", "md5": "6134ab412351651324" // md5 came from media resource api } ] */
112
- result?: () => Data
119
+ result?: () => Data<
120
+ Array<{
121
+ id?: string
122
+ key?: string
123
+ mediaType?: string
124
+ extension?: string
125
+ original?: string
126
+ url?: string
127
+ metadata?: { [key: string]: any }
128
+ [key: string]: any
129
+ }>
130
+ >
113
131
  /* File sync result [ { "url": "/storage/emulated/0/Download/SyncFolder/Asset/1.png", "mediaType": "photo" // enum("photo", "video"), used to distingiush "id": "", } ] */
114
- downloadFileUrls?: () => Data
132
+ downloadFileUrls?: () => Data<Array<string>>
115
133
  }
116
134
  }
117
135
 
@@ -92,11 +92,17 @@ Default property:
92
92
  }
93
93
  outlets?: {
94
94
  /* Is server started */
95
- started?: () => Data
95
+ started?: () => Data<boolean>
96
96
  /* Last received message */
97
- lastMessage?: () => Data
97
+ lastMessage?: () => Data<{
98
+ topic?: string
99
+ payload?: any
100
+ qos?: number
101
+ retain?: boolean
102
+ [key: string]: any
103
+ }>
98
104
  /* Error message */
99
- errorMessage?: () => Data
105
+ errorMessage?: () => Data<string>
100
106
  }
101
107
  }
102
108
 
@@ -98,13 +98,19 @@ Default property:
98
98
  }
99
99
  outlets?: {
100
100
  /* Connected or not */
101
- connected?: () => Data
101
+ connected?: () => Data<boolean>
102
102
  /* Error Message */
103
- error?: () => Data
103
+ error?: () => Data<string>
104
104
  /* The receive message */
105
- message?: () => Data
105
+ message?: () => Data<{
106
+ topic?: string
107
+ payload?: any
108
+ qos?: number
109
+ retain?: boolean
110
+ [key: string]: any
111
+ }>
106
112
  /* The receive message (payload only) */
107
- messagePayload?: () => Data
113
+ messagePayload?: () => Data<any>
108
114
  }
109
115
  }
110
116
 
@@ -371,13 +371,13 @@ Default property:
371
371
  }
372
372
  outlets?: {
373
373
  /* Result data */
374
- data?: () => Data
374
+ data?: () => Data<{ [key: string]: any }>
375
375
  /* Currnet question */
376
- currectKey?: () => Data
376
+ currectKey?: () => Data<string>
377
377
  /* Currnet input value */
378
- currectValue?: () => Data
378
+ currectValue?: () => Data<any>
379
379
  /* Error message */
380
- errorMessage?: () => Data
380
+ errorMessage?: () => Data<string>
381
381
  }
382
382
  }
383
383
 
@@ -31,6 +31,11 @@ export type GeneratorRealtimeTranscriptionActionReset = Action & {
31
31
  __actionName: 'GENERATOR_REALTIME_TRANSCRIPTION_RESET'
32
32
  }
33
33
 
34
+ /* List available microphone devices (Web / Desktop only) */
35
+ export type GeneratorRealtimeTranscriptionActionListDevices = Action & {
36
+ __actionName: 'GENERATOR_REALTIME_TRANSCRIPTION_LIST_DEVICES'
37
+ }
38
+
34
39
  interface GeneratorRealtimeTranscriptionDef {
35
40
  /*
36
41
  Default property:
@@ -57,6 +62,10 @@ Default property:
57
62
  }
58
63
  */
59
64
  property?: {
65
+ /* Specifies the device ID to use for audio input.
66
+ Web / Desktop: device ID string from enumerateDevices
67
+ Android: audio source name - DEFAULT, MIC, VOICE_UPLINK, VOICE_DOWNLINK, VOICE_CALL, CAMCORDER, VOICE_RECOGNITION, VOICE_COMMUNICATION, UNPROCESSED */
68
+ deviceId?: string | DataLink
60
69
  /* STT Generator for Whisper context */
61
70
  sttGeneratorId?: string | DataLink | (() => Generator)
62
71
  /* STT Live Policy. If the policy is `only-in-use`, the STT context will be released when not in use. */
@@ -135,25 +144,86 @@ Default property:
135
144
  }
136
145
  outlets?: {
137
146
  /* Is realtime transcription currently active */
138
- isActive?: () => Data
147
+ isActive?: () => Data<boolean>
139
148
  /* Is currently transcribing audio */
140
- isTranscribing?: () => Data
149
+ isTranscribing?: () => Data<boolean>
141
150
  /* Current transcription results */
142
- results?: () => Data
151
+ results?: () => Data<
152
+ Array<{
153
+ transcribeEvent?: {
154
+ type?: string
155
+ sliceIndex?: number
156
+ isCapturing?: boolean
157
+ data?: {
158
+ result?: string
159
+ [key: string]: any
160
+ }
161
+ vadEvent?: {
162
+ type?: string
163
+ confidence?: number
164
+ duration?: number
165
+ sliceIndex?: number
166
+ timestamp?: number
167
+ [key: string]: any
168
+ }
169
+ [key: string]: any
170
+ }
171
+ vadEvent?: {
172
+ type?: string
173
+ confidence?: number
174
+ duration?: number
175
+ sliceIndex?: number
176
+ timestamp?: number
177
+ [key: string]: any
178
+ }
179
+ [key: string]: any
180
+ }>
181
+ >
143
182
  /* Current transcription result text */
144
- resultText?: () => Data
183
+ resultText?: () => Data<string>
145
184
  /* Last stabilized transcription result segment */
146
- lastStabilizedSegment?: () => Data
185
+ lastStabilizedSegment?: () => Data<string>
147
186
  /* Current statistics */
148
- statistics?: () => Data
187
+ statistics?: () => Data<{
188
+ type?: string
189
+ timestamp?: number
190
+ data?: { [key: string]: any }
191
+ [key: string]: any
192
+ }>
149
193
  /* Latest transcribe event */
150
- lastTranscribeEvent?: () => Data
194
+ lastTranscribeEvent?: () => Data<{
195
+ type?: string
196
+ sliceIndex?: number
197
+ isCapturing?: boolean
198
+ data?: {
199
+ result?: string
200
+ [key: string]: any
201
+ }
202
+ vadEvent?: {
203
+ type?: string
204
+ confidence?: number
205
+ duration?: number
206
+ sliceIndex?: number
207
+ timestamp?: number
208
+ [key: string]: any
209
+ }
210
+ [key: string]: any
211
+ }>
151
212
  /* Latest VAD event */
152
- lastVadEvent?: () => Data
213
+ lastVadEvent?: () => Data<{
214
+ type?: string
215
+ confidence?: number
216
+ duration?: number
217
+ sliceIndex?: number
218
+ timestamp?: number
219
+ [key: string]: any
220
+ }>
153
221
  /* Stabilized transcription text from completed slices */
154
- stabilizedText?: () => Data
222
+ stabilizedText?: () => Data<string>
155
223
  /* Audio output file path (auto-generated when saving audio) */
156
- audioOutputPath?: () => Data
224
+ audioOutputPath?: () => Data<string>
225
+ /* Available microphone devices (Web / Desktop only) */
226
+ devices?: () => Data<Array<any>>
157
227
  }
158
228
  }
159
229
 
@@ -182,6 +252,7 @@ export type GeneratorRealtimeTranscription = Generator &
182
252
  | 'lastVadEvent'
183
253
  | 'stabilizedText'
184
254
  | 'audioOutputPath'
255
+ | 'devices'
185
256
  value: any
186
257
  }
187
258
  }>