react-native-ai-core 0.2.0 → 0.3.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.
- package/README.md +88 -8
- package/android/src/main/java/com/aicore/AiCoreModule.kt +53 -9
- package/lib/module/NativeAiCore.js.map +1 -1
- package/lib/module/index.js +17 -7
- package/lib/module/index.js.map +1 -1
- package/lib/module/structured.js +53 -30
- package/lib/module/structured.js.map +1 -1
- package/lib/typescript/src/NativeAiCore.d.ts +6 -0
- package/lib/typescript/src/NativeAiCore.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +10 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/structured.d.ts +5 -0
- package/lib/typescript/src/structured.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/NativeAiCore.ts +7 -0
- package/src/index.tsx +23 -5
- package/src/structured.ts +80 -28
package/README.md
CHANGED
|
@@ -47,7 +47,14 @@ Add to `android/gradle.properties`:
|
|
|
47
47
|
minSdkVersion=26
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
-
No
|
|
50
|
+
The native module is auto-linked. No manual permission declarations are needed — the library's `AndroidManifest.xml` is merged automatically into your app and includes:
|
|
51
|
+
|
|
52
|
+
- `FOREGROUND_SERVICE` — keeps the process alive during background generation
|
|
53
|
+
- `FOREGROUND_SERVICE_DATA_SYNC` — required foreground service type (Android 14+)
|
|
54
|
+
|
|
55
|
+
These permissions will appear in your compiled app manifest and may be visible in Play Store security reviews.
|
|
56
|
+
|
|
57
|
+
> **Note:** Testing requires a physical Android device. The Android emulator does not support NPU hardware or the AICore system service, so the ML Kit AICore backend will not function on it. The MediaPipe backend may run in an emulator but is not officially supported or tested in that environment.
|
|
51
58
|
|
|
52
59
|
---
|
|
53
60
|
|
|
@@ -109,6 +116,7 @@ For app-internal AI features such as extraction, classification, routing, or too
|
|
|
109
116
|
- Validates the final payload with `zod`
|
|
110
117
|
- Retries automatically with a repair prompt when validation fails
|
|
111
118
|
- Uses a stateless native request so it does not pollute chat conversation history
|
|
119
|
+
- Supports an `AbortSignal` to cancel mid-generation
|
|
112
120
|
|
|
113
121
|
```tsx
|
|
114
122
|
import { z } from 'zod';
|
|
@@ -121,13 +129,19 @@ const TicketSchema = z.object({
|
|
|
121
129
|
needsHuman: z.boolean(),
|
|
122
130
|
});
|
|
123
131
|
|
|
132
|
+
const ctrl = new AbortController();
|
|
133
|
+
|
|
124
134
|
const result = await generateStructuredResponse({
|
|
125
135
|
prompt: 'Classify this support request and summarize it.',
|
|
126
136
|
input: {
|
|
127
137
|
message: 'The app crashes when I try to export a PDF invoice.',
|
|
128
138
|
},
|
|
129
139
|
output: TicketSchema,
|
|
140
|
+
signal: ctrl.signal,
|
|
130
141
|
});
|
|
142
|
+
|
|
143
|
+
// Cancel mid-way
|
|
144
|
+
ctrl.abort();
|
|
131
145
|
```
|
|
132
146
|
|
|
133
147
|
Recommended for reliability on-device:
|
|
@@ -139,6 +153,43 @@ Recommended for reliability on-device:
|
|
|
139
153
|
|
|
140
154
|
There is also a concrete demo helper in [example/src/examples/structuredOutputExample.ts](example/src/examples/structuredOutputExample.ts).
|
|
141
155
|
|
|
156
|
+
### Cancelling generation
|
|
157
|
+
|
|
158
|
+
Both chat and structured generation can be stopped at any point.
|
|
159
|
+
|
|
160
|
+
**Chat / streaming:**
|
|
161
|
+
|
|
162
|
+
```tsx
|
|
163
|
+
import { cancelGeneration } from 'react-native-ai-core';
|
|
164
|
+
|
|
165
|
+
// Stop an ongoing generateResponse or generateResponseStream call
|
|
166
|
+
await cancelGeneration();
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
For streaming, the `onComplete` callback fires normally after cancellation — `onError` is not called.
|
|
170
|
+
|
|
171
|
+
**Structured output:**
|
|
172
|
+
|
|
173
|
+
Pass an `AbortSignal` from an `AbortController` to `generateStructuredResponse`. When you call `ctrl.abort()` the tree-walker stops at the next field boundary and rejects with an `Error` whose `name` is `'AbortError'`.
|
|
174
|
+
|
|
175
|
+
```tsx
|
|
176
|
+
const ctrl = new AbortController();
|
|
177
|
+
|
|
178
|
+
// Start generation
|
|
179
|
+
const promise = generateStructuredResponse({ ..., signal: ctrl.signal });
|
|
180
|
+
|
|
181
|
+
// Cancel from a button handler
|
|
182
|
+
ctrl.abort();
|
|
183
|
+
|
|
184
|
+
try {
|
|
185
|
+
await promise;
|
|
186
|
+
} catch (err) {
|
|
187
|
+
if (err.name === 'AbortError') {
|
|
188
|
+
console.log('Cancelled by user');
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
```
|
|
192
|
+
|
|
142
193
|
---
|
|
143
194
|
|
|
144
195
|
## API Reference
|
|
@@ -160,6 +211,23 @@ Returns `true` on success. Throws on failure.
|
|
|
160
211
|
|
|
161
212
|
---
|
|
162
213
|
|
|
214
|
+
### `cancelGeneration(): Promise<void>`
|
|
215
|
+
|
|
216
|
+
Cancels the in-progress generation immediately.
|
|
217
|
+
|
|
218
|
+
- For **streaming** (`generateResponseStream`): stops the token stream and fires `onComplete` (not `onError`).
|
|
219
|
+
- For **blocking** (`generateResponse`): rejects the pending promise with code `CANCELLED`.
|
|
220
|
+
- Safe to call even when no generation is running.
|
|
221
|
+
|
|
222
|
+
```tsx
|
|
223
|
+
await AICore.cancelGeneration();
|
|
224
|
+
// or named export:
|
|
225
|
+
import { cancelGeneration } from 'react-native-ai-core';
|
|
226
|
+
await cancelGeneration();
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
163
231
|
### `generateResponse(prompt: string): Promise<string>`
|
|
164
232
|
|
|
165
233
|
Generates a complete response synchronously (waits for the full output).
|
|
@@ -186,19 +254,30 @@ const OutputSchema = z.object({
|
|
|
186
254
|
confidence: z.number(),
|
|
187
255
|
});
|
|
188
256
|
|
|
257
|
+
const ctrl = new AbortController();
|
|
258
|
+
|
|
189
259
|
const output = await generateStructuredResponse({
|
|
190
260
|
prompt: 'Determine the next action for this message.',
|
|
191
261
|
input: { message: 'Can you send me the invoice again?' },
|
|
192
262
|
output: OutputSchema,
|
|
263
|
+
signal: ctrl.signal,
|
|
193
264
|
});
|
|
194
265
|
```
|
|
195
266
|
|
|
196
267
|
Options:
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
268
|
+
|
|
269
|
+
| Option | Type | Description |
|
|
270
|
+
|---|---|---|
|
|
271
|
+
| `prompt` | `string` | Natural language instruction |
|
|
272
|
+
| `input` | `unknown` | Optional structured input object |
|
|
273
|
+
| `inputSchema` | `ZodType` | Optional schema to validate `input` before generation |
|
|
274
|
+
| `output` | `ZodType` | Required schema to validate the model output |
|
|
275
|
+
| `strategy` | `'single' \| 'chunked'` | `'single'` (default) generates the whole JSON in one call. `'chunked'` walks the schema field-by-field — use for large or complex schemas |
|
|
276
|
+
| `maxRetries` | `number` | Repair attempts when validation fails (default `2`) |
|
|
277
|
+
| `maxContinuations` | `number` | Max continuation calls when JSON is truncated (default `8`) |
|
|
278
|
+
| `timeoutMs` | `number` | Per-call timeout in ms (default `300000`) |
|
|
279
|
+
| `onProgress` | `(field, done) => void` | Called for each field during `'chunked'` generation |
|
|
280
|
+
| `signal` | `AbortSignal` | Pass a signal to cancel mid-generation. Rejects with `Error { name: 'AbortError' }` |
|
|
202
281
|
|
|
203
282
|
Throws `StructuredOutputError` if valid JSON matching the schema cannot be produced after retries.
|
|
204
283
|
|
|
@@ -287,6 +366,7 @@ A ready-to-use React hook is available in the example app as a reference impleme
|
|
|
287
366
|
- Streaming with incremental message updates
|
|
288
367
|
- Conversation history reset on clear
|
|
289
368
|
- Error state management
|
|
369
|
+
- `stopGeneration()` — calls `cancelGeneration()` to abort the in-progress response
|
|
290
370
|
|
|
291
371
|
See [`example/src/hooks/useAICore.ts`](example/src/hooks/useAICore.ts).
|
|
292
372
|
|
|
@@ -319,7 +399,7 @@ Dependency: `com.google.mediapipe:tasks-genai:0.10.22`
|
|
|
319
399
|
- [ ] Model quantization options
|
|
320
400
|
- [ ] System prompt / persona configuration
|
|
321
401
|
- [ ] Token count estimation
|
|
322
|
-
- [
|
|
402
|
+
- [x] Abort/cancel streaming mid-generation
|
|
323
403
|
- [ ] Web support (WebGPU / WASM)
|
|
324
404
|
|
|
325
405
|
---
|
|
@@ -336,7 +416,7 @@ Contributions, issues and feature requests are welcome.
|
|
|
336
416
|
|
|
337
417
|
## License
|
|
338
418
|
|
|
339
|
-
MIT © [Alberto Fernandez](https://github.com/
|
|
419
|
+
MIT © [Alberto Fernandez](https://github.com/albertoroda)
|
|
340
420
|
|
|
341
421
|
---
|
|
342
422
|
|
|
@@ -19,6 +19,7 @@ import com.google.mlkit.genai.prompt.TextPart
|
|
|
19
19
|
import com.google.mlkit.genai.prompt.generateContentRequest
|
|
20
20
|
import kotlinx.coroutines.CoroutineScope
|
|
21
21
|
import kotlinx.coroutines.Dispatchers
|
|
22
|
+
import kotlinx.coroutines.Job
|
|
22
23
|
import kotlinx.coroutines.SupervisorJob
|
|
23
24
|
import kotlinx.coroutines.cancel
|
|
24
25
|
import kotlinx.coroutines.delay
|
|
@@ -39,6 +40,8 @@ class AiCoreModule(reactContext: ReactApplicationContext) :
|
|
|
39
40
|
private val coroutineScope = CoroutineScope(Dispatchers.IO + SupervisorJob())
|
|
40
41
|
|
|
41
42
|
private val conversationHistory = mutableListOf<Pair<String, String>>()
|
|
43
|
+
@Volatile private var cancelRequested = false
|
|
44
|
+
@Volatile private var activeGenerationJob: Job? = null
|
|
42
45
|
|
|
43
46
|
companion object {
|
|
44
47
|
const val NAME = NativeAiCoreSpec.NAME
|
|
@@ -439,6 +442,7 @@ class AiCoreModule(reactContext: ReactApplicationContext) :
|
|
|
439
442
|
val mlkit = mlkitModel
|
|
440
443
|
val mediapipe = llmInference
|
|
441
444
|
startInferenceService()
|
|
445
|
+
cancelRequested = false
|
|
442
446
|
when {
|
|
443
447
|
mlkit != null -> coroutineScope.launch {
|
|
444
448
|
try {
|
|
@@ -449,6 +453,11 @@ class AiCoreModule(reactContext: ReactApplicationContext) :
|
|
|
449
453
|
var continuationJoinPending = false
|
|
450
454
|
var quotaRetries = 0
|
|
451
455
|
while (true) {
|
|
456
|
+
if (cancelRequested) {
|
|
457
|
+
stopInferenceService()
|
|
458
|
+
promise.reject("CANCELLED", "Generation cancelled.")
|
|
459
|
+
return@launch
|
|
460
|
+
}
|
|
452
461
|
val part = try {
|
|
453
462
|
generateMlKitChunk(mlkit, currentPrompt)
|
|
454
463
|
} catch (e: GenAiException) {
|
|
@@ -495,10 +504,15 @@ class AiCoreModule(reactContext: ReactApplicationContext) :
|
|
|
495
504
|
stopInferenceService()
|
|
496
505
|
promise.resolve(full)
|
|
497
506
|
} catch (e: Exception) {
|
|
498
|
-
|
|
499
|
-
|
|
507
|
+
if (cancelRequested) {
|
|
508
|
+
stopInferenceService()
|
|
509
|
+
promise.reject("CANCELLED", "Generation cancelled.")
|
|
510
|
+
} else {
|
|
511
|
+
stopInferenceService()
|
|
512
|
+
promise.reject("GENERATION_ERROR", e.message, e)
|
|
513
|
+
}
|
|
500
514
|
}
|
|
501
|
-
}
|
|
515
|
+
}.also { activeGenerationJob = it }
|
|
502
516
|
mediapipe != null -> executor.execute {
|
|
503
517
|
var session: LlmInferenceSession? = null
|
|
504
518
|
try {
|
|
@@ -508,6 +522,11 @@ class AiCoreModule(reactContext: ReactApplicationContext) :
|
|
|
508
522
|
var continuations = 0
|
|
509
523
|
var continuationJoinPending = false
|
|
510
524
|
while (true) {
|
|
525
|
+
if (cancelRequested) {
|
|
526
|
+
stopInferenceService()
|
|
527
|
+
promise.reject("CANCELLED", "Generation cancelled.")
|
|
528
|
+
return@execute
|
|
529
|
+
}
|
|
511
530
|
session = createMediaPipeSession()
|
|
512
531
|
session.addQueryChunk(currentPrompt)
|
|
513
532
|
val part = session.generateResponse()
|
|
@@ -558,6 +577,7 @@ class AiCoreModule(reactContext: ReactApplicationContext) :
|
|
|
558
577
|
val mlkit = mlkitModel
|
|
559
578
|
val mediapipe = llmInference
|
|
560
579
|
startInferenceService()
|
|
580
|
+
cancelRequested = false
|
|
561
581
|
when {
|
|
562
582
|
mlkit != null -> coroutineScope.launch {
|
|
563
583
|
val total = StringBuilder()
|
|
@@ -571,6 +591,7 @@ class AiCoreModule(reactContext: ReactApplicationContext) :
|
|
|
571
591
|
var markerReached = false
|
|
572
592
|
try {
|
|
573
593
|
while (true) {
|
|
594
|
+
if (cancelRequested) break
|
|
574
595
|
val beforeLength = total.length
|
|
575
596
|
firstDeltaInPass = true
|
|
576
597
|
var quotaHit = false
|
|
@@ -605,6 +626,7 @@ class AiCoreModule(reactContext: ReactApplicationContext) :
|
|
|
605
626
|
throw e
|
|
606
627
|
}
|
|
607
628
|
} catch (e: Exception) {
|
|
629
|
+
if (cancelRequested) break
|
|
608
630
|
streamError = true
|
|
609
631
|
stopInferenceService()
|
|
610
632
|
sendEvent(EVENT_STREAM_ERROR, createErrorMap("STREAM_ERROR", e.message ?: "Error"))
|
|
@@ -630,17 +652,21 @@ class AiCoreModule(reactContext: ReactApplicationContext) :
|
|
|
630
652
|
delay(if (quotaHit) QUOTA_RETRY_DELAY_MS else CONTINUATION_DELAY_MS)
|
|
631
653
|
} else break
|
|
632
654
|
}
|
|
633
|
-
saveToHistory(prompt, sanitizeVisibleText(total.toString()))
|
|
655
|
+
if (!cancelRequested) saveToHistory(prompt, sanitizeVisibleText(total.toString()))
|
|
634
656
|
emitStreamToken("", true)
|
|
635
657
|
stopInferenceService()
|
|
636
658
|
sendEvent(EVENT_STREAM_COMPLETE, Arguments.createMap())
|
|
637
659
|
} catch (e: Exception) {
|
|
638
|
-
if (
|
|
660
|
+
if (cancelRequested) {
|
|
661
|
+
emitStreamToken("", true)
|
|
662
|
+
stopInferenceService()
|
|
663
|
+
sendEvent(EVENT_STREAM_COMPLETE, Arguments.createMap())
|
|
664
|
+
} else if (!streamError) {
|
|
639
665
|
stopInferenceService()
|
|
640
666
|
sendEvent(EVENT_STREAM_ERROR, createErrorMap("STREAM_ERROR", e.message ?: "Error"))
|
|
641
667
|
}
|
|
642
668
|
}
|
|
643
|
-
}
|
|
669
|
+
}.also { activeGenerationJob = it }
|
|
644
670
|
mediapipe != null -> executor.execute {
|
|
645
671
|
val total = StringBuilder()
|
|
646
672
|
val rawTotal = StringBuilder()
|
|
@@ -652,12 +678,18 @@ class AiCoreModule(reactContext: ReactApplicationContext) :
|
|
|
652
678
|
var markerReached = false
|
|
653
679
|
try {
|
|
654
680
|
while (true) {
|
|
681
|
+
if (cancelRequested) break
|
|
655
682
|
val latch = CountDownLatch(1)
|
|
656
683
|
firstDeltaInPass = true
|
|
657
684
|
session = createMediaPipeSession()
|
|
658
685
|
val capturedSession = session
|
|
659
686
|
session.addQueryChunk(currentPrompt)
|
|
660
687
|
session.generateResponseAsync(ProgressListener<String> { partial, done ->
|
|
688
|
+
if (cancelRequested) {
|
|
689
|
+
capturedSession.close()
|
|
690
|
+
latch.countDown()
|
|
691
|
+
return@ProgressListener
|
|
692
|
+
}
|
|
661
693
|
val token = partial ?: ""
|
|
662
694
|
rawTotal.append(token)
|
|
663
695
|
if (containsEndMarker(rawTotal.toString())) {
|
|
@@ -694,14 +726,20 @@ class AiCoreModule(reactContext: ReactApplicationContext) :
|
|
|
694
726
|
continuationJoinPending = true
|
|
695
727
|
} else break
|
|
696
728
|
}
|
|
697
|
-
saveToHistory(prompt, sanitizeVisibleText(total.toString()))
|
|
729
|
+
if (!cancelRequested) saveToHistory(prompt, sanitizeVisibleText(total.toString()))
|
|
698
730
|
emitStreamToken("", true)
|
|
699
731
|
stopInferenceService()
|
|
700
732
|
sendEvent(EVENT_STREAM_COMPLETE, Arguments.createMap())
|
|
701
733
|
} catch (e: Exception) {
|
|
702
734
|
session?.close()
|
|
703
|
-
|
|
704
|
-
|
|
735
|
+
if (cancelRequested) {
|
|
736
|
+
emitStreamToken("", true)
|
|
737
|
+
stopInferenceService()
|
|
738
|
+
sendEvent(EVENT_STREAM_COMPLETE, Arguments.createMap())
|
|
739
|
+
} else {
|
|
740
|
+
stopInferenceService()
|
|
741
|
+
sendEvent(EVENT_STREAM_ERROR, createErrorMap("STREAM_ERROR", e.message ?: "Error"))
|
|
742
|
+
}
|
|
705
743
|
}
|
|
706
744
|
}
|
|
707
745
|
else -> sendEvent(EVENT_STREAM_ERROR, createErrorMap("NOT_INITIALIZED", "LLM not initialized."))
|
|
@@ -752,6 +790,12 @@ class AiCoreModule(reactContext: ReactApplicationContext) :
|
|
|
752
790
|
promise.resolve(null)
|
|
753
791
|
}
|
|
754
792
|
|
|
793
|
+
override fun cancelGeneration(promise: Promise) {
|
|
794
|
+
cancelRequested = true
|
|
795
|
+
activeGenerationJob?.cancel()
|
|
796
|
+
promise.resolve(null)
|
|
797
|
+
}
|
|
798
|
+
|
|
755
799
|
override fun addListener(eventName: String) {}
|
|
756
800
|
override fun removeListeners(count: Double) {}
|
|
757
801
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeAiCore.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,mBAAmB,QAA0B,cAAc;
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeAiCore.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,mBAAmB,QAA0B,cAAc;AA2DpE,eAAeA,mBAAmB,CAACC,YAAY,CAAO,QAAQ,CAAC","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -102,17 +102,13 @@ export function generateResponseStream(prompt, callbacks) {
|
|
|
102
102
|
});
|
|
103
103
|
return () => {};
|
|
104
104
|
}
|
|
105
|
-
const tokenSub = emitter.addListener(EVENT_STREAM_TOKEN,
|
|
106
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
107
|
-
event => {
|
|
105
|
+
const tokenSub = emitter.addListener(EVENT_STREAM_TOKEN, event => {
|
|
108
106
|
callbacks.onToken(event.token, event.done);
|
|
109
107
|
});
|
|
110
108
|
const completeSub = emitter.addListener(EVENT_STREAM_COMPLETE, () => {
|
|
111
109
|
callbacks.onComplete();
|
|
112
110
|
});
|
|
113
|
-
const errorSub = emitter.addListener(EVENT_STREAM_ERROR,
|
|
114
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
115
|
-
error => {
|
|
111
|
+
const errorSub = emitter.addListener(EVENT_STREAM_ERROR, error => {
|
|
116
112
|
callbacks.onError(error);
|
|
117
113
|
});
|
|
118
114
|
NativeAiCore.generateResponseStream(prompt);
|
|
@@ -169,6 +165,19 @@ export async function resetConversation() {
|
|
|
169
165
|
return NativeAiCore.resetConversation();
|
|
170
166
|
}
|
|
171
167
|
|
|
168
|
+
/**
|
|
169
|
+
* Cancels any generation currently in progress.
|
|
170
|
+
*
|
|
171
|
+
* - **Streaming**: the stream ends immediately with tokens generated so far.
|
|
172
|
+
* - **Non-streaming**: the pending `generateResponse` promise rejects with code `'CANCELLED'`.
|
|
173
|
+
*
|
|
174
|
+
* Safe to call when no generation is running.
|
|
175
|
+
*/
|
|
176
|
+
export async function cancelGeneration() {
|
|
177
|
+
if (!NativeAiCore) return;
|
|
178
|
+
return NativeAiCore.cancelGeneration();
|
|
179
|
+
}
|
|
180
|
+
|
|
172
181
|
// ── Default export (API object) ───────────────────────────────────────────────
|
|
173
182
|
|
|
174
183
|
const AICore = {
|
|
@@ -178,7 +187,8 @@ const AICore = {
|
|
|
178
187
|
generateStructuredResponse,
|
|
179
188
|
checkAvailability,
|
|
180
189
|
release,
|
|
181
|
-
resetConversation
|
|
190
|
+
resetConversation,
|
|
191
|
+
cancelGeneration
|
|
182
192
|
};
|
|
183
193
|
export default AICore;
|
|
184
194
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeEventEmitter","Platform","NativeAiCore","generateStructuredResponse","StructuredOutputError","EVENT_STREAM_TOKEN","EVENT_STREAM_COMPLETE","EVENT_STREAM_ERROR","emitter","assertAvailable","Error","OS","initialize","modelPath","generateResponse","prompt","generateResponseStream","callbacks","onError","code","message","tokenSub","addListener","event","onToken","token","done","completeSub","onComplete","errorSub","error","remove","checkAvailability","release","resetConversation","AICore"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,kBAAkB,EAAEC,QAAQ,QAAQ,cAAc;AAC3D,OAAOC,YAAY,MAAM,mBAAgB;AACzC,SAASC,0BAA0B,QAAQ,iBAAc;AACzD,SACEA,0BAA0B,EAC1BC,qBAAqB,QAIhB,iBAAc;;AAErB;;AAEA;;
|
|
1
|
+
{"version":3,"names":["NativeEventEmitter","Platform","NativeAiCore","generateStructuredResponse","StructuredOutputError","EVENT_STREAM_TOKEN","EVENT_STREAM_COMPLETE","EVENT_STREAM_ERROR","emitter","assertAvailable","Error","OS","initialize","modelPath","generateResponse","prompt","generateResponseStream","callbacks","onError","code","message","tokenSub","addListener","event","onToken","token","done","completeSub","onComplete","errorSub","error","remove","checkAvailability","release","resetConversation","cancelGeneration","AICore"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
package/lib/module/structured.js
CHANGED
|
@@ -21,8 +21,25 @@ const DEFAULT_STRUCTURED_TIMEOUT_MS = 300000; // 5 min default
|
|
|
21
21
|
const QUOTA_ERROR_CODE = 9;
|
|
22
22
|
const QUOTA_RETRY_DELAY_MS = 1800;
|
|
23
23
|
const MAX_QUOTA_RETRIES = 2;
|
|
24
|
-
function
|
|
25
|
-
return new
|
|
24
|
+
function makeAbortError() {
|
|
25
|
+
return Object.assign(new Error('Generation cancelled.'), {
|
|
26
|
+
name: 'AbortError'
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
function sleep(ms, signal) {
|
|
30
|
+
return new Promise((resolve, reject) => {
|
|
31
|
+
if (signal?.aborted) {
|
|
32
|
+
reject(makeAbortError());
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const timer = setTimeout(resolve, ms);
|
|
36
|
+
signal?.addEventListener('abort', () => {
|
|
37
|
+
clearTimeout(timer);
|
|
38
|
+
reject(makeAbortError());
|
|
39
|
+
}, {
|
|
40
|
+
once: true
|
|
41
|
+
});
|
|
42
|
+
});
|
|
26
43
|
}
|
|
27
44
|
function toErrorMessage(error) {
|
|
28
45
|
if (error instanceof Error) return error.message;
|
|
@@ -269,18 +286,19 @@ function buildRepairPrompt(prompt, outputSchema, invalidResponse, issues) {
|
|
|
269
286
|
const normalizedInvalidResponse = truncateStart(compactWhitespace(extractJsonPayload(invalidResponse)), STRUCTURED_REPAIR_RESPONSE_BUDGET);
|
|
270
287
|
return fitStructuredPrompt([buildStructuredPrompt(prompt, outputSchema), 'Your previous response was invalid.', 'Fix it and return only corrected JSON.', 'Validation errors:', normalizedIssues, 'Previous response:', normalizedInvalidResponse]);
|
|
271
288
|
}
|
|
272
|
-
async function generateStateless(prompt) {
|
|
289
|
+
async function generateStateless(prompt, signal) {
|
|
273
290
|
if (!NativeAiCore) {
|
|
274
291
|
throw new Error(`react-native-ai-core: native module unavailable on ${Platform.OS}. This feature requires Android.`);
|
|
275
292
|
}
|
|
293
|
+
if (signal?.aborted) throw makeAbortError();
|
|
276
294
|
if (NativeAiCore?.generateResponseStateless) {
|
|
277
295
|
return NativeAiCore.generateResponseStateless(prompt);
|
|
278
296
|
}
|
|
279
297
|
return NativeAiCore.generateResponse(prompt);
|
|
280
298
|
}
|
|
281
|
-
async function generateStatelessWithTimeout(prompt, timeoutMs) {
|
|
299
|
+
async function generateStatelessWithTimeout(prompt, timeoutMs, signal) {
|
|
282
300
|
if (timeoutMs <= 0) {
|
|
283
|
-
return generateStateless(prompt);
|
|
301
|
+
return generateStateless(prompt, signal);
|
|
284
302
|
}
|
|
285
303
|
let timer;
|
|
286
304
|
const timeout = new Promise((_, reject) => {
|
|
@@ -289,29 +307,31 @@ async function generateStatelessWithTimeout(prompt, timeoutMs) {
|
|
|
289
307
|
}, timeoutMs);
|
|
290
308
|
});
|
|
291
309
|
try {
|
|
292
|
-
return await Promise.race([generateStateless(prompt), timeout]);
|
|
310
|
+
return await Promise.race([generateStateless(prompt, signal), timeout]);
|
|
293
311
|
} finally {
|
|
294
312
|
if (timer) clearTimeout(timer);
|
|
295
313
|
}
|
|
296
314
|
}
|
|
297
|
-
async function generateStatelessWithQuotaRetry(prompt, timeoutMs) {
|
|
315
|
+
async function generateStatelessWithQuotaRetry(prompt, timeoutMs, signal) {
|
|
298
316
|
let quotaRetries = 0;
|
|
299
317
|
while (true) {
|
|
300
318
|
try {
|
|
301
|
-
return await generateStatelessWithTimeout(prompt, timeoutMs);
|
|
319
|
+
return await generateStatelessWithTimeout(prompt, timeoutMs, signal);
|
|
302
320
|
} catch (error) {
|
|
321
|
+
if (error.name === 'AbortError') throw error;
|
|
303
322
|
if (!isQuotaError(error) || quotaRetries >= MAX_QUOTA_RETRIES) {
|
|
304
323
|
throw error;
|
|
305
324
|
}
|
|
306
325
|
quotaRetries += 1;
|
|
307
|
-
await sleep(QUOTA_RETRY_DELAY_MS);
|
|
326
|
+
await sleep(QUOTA_RETRY_DELAY_MS, signal);
|
|
308
327
|
}
|
|
309
328
|
}
|
|
310
329
|
}
|
|
311
|
-
async function tryGenerateWithQuotaTolerance(prompt, timeoutMs) {
|
|
330
|
+
async function tryGenerateWithQuotaTolerance(prompt, timeoutMs, signal) {
|
|
312
331
|
try {
|
|
313
|
-
return await generateStatelessWithQuotaRetry(prompt, timeoutMs);
|
|
332
|
+
return await generateStatelessWithQuotaRetry(prompt, timeoutMs, signal);
|
|
314
333
|
} catch (error) {
|
|
334
|
+
if (error.name === 'AbortError') throw error;
|
|
315
335
|
if (isQuotaError(error)) {
|
|
316
336
|
return null;
|
|
317
337
|
}
|
|
@@ -534,9 +554,9 @@ async function walkLeaf(schema, ctx) {
|
|
|
534
554
|
let lastRaw = '';
|
|
535
555
|
let lastErrorMessage = '';
|
|
536
556
|
for (let attempt = 0; attempt <= leafMaxRetries; attempt++) {
|
|
537
|
-
if (attempt > 0) await sleep(INTER_CALL_DELAY_MS);
|
|
557
|
+
if (attempt > 0) await sleep(INTER_CALL_DELAY_MS, ctx.signal);
|
|
538
558
|
try {
|
|
539
|
-
lastRaw = await generateStatelessWithQuotaRetry(prompt, leafTimeoutMs);
|
|
559
|
+
lastRaw = await generateStatelessWithQuotaRetry(prompt, leafTimeoutMs, ctx.signal);
|
|
540
560
|
const coerced = coercePrimitiveField(lastRaw, schema);
|
|
541
561
|
const validated = schema.safeParse(coerced);
|
|
542
562
|
if (validated.success) {
|
|
@@ -568,7 +588,7 @@ async function walkCompact(schema, ctx) {
|
|
|
568
588
|
const itemCtx = ctx.itemHint ? `Context: ${ctx.itemHint}.` : '';
|
|
569
589
|
const prompt = fitStructuredPrompt([`"${fieldName}" (${typeDesc}): return JSON value only — no key, no markdown.`, `Task: ${truncateEnd(compactWhitespace(ctx.taskPrompt), 250)}`, ctx.input !== undefined ? `Input: ${stringifyInput(ctx.input, 150)}` : '', itemCtx]);
|
|
570
590
|
const compactTimeoutMs = Math.min(ctx.timeoutMs, COMPACT_TIMEOUT_CAP_MS);
|
|
571
|
-
let combined = await generateStatelessWithQuotaRetry(prompt, compactTimeoutMs);
|
|
591
|
+
let combined = await generateStatelessWithQuotaRetry(prompt, compactTimeoutMs, ctx.signal);
|
|
572
592
|
for (let cont = 0; cont < 6; cont++) {
|
|
573
593
|
try {
|
|
574
594
|
const result = JSON.parse(extractJsonPayload(combined));
|
|
@@ -577,8 +597,8 @@ async function walkCompact(schema, ctx) {
|
|
|
577
597
|
} catch {
|
|
578
598
|
if (!looksLikeIncompleteJson(combined)) break;
|
|
579
599
|
}
|
|
580
|
-
await sleep(INTER_CALL_DELAY_MS);
|
|
581
|
-
const extra = await tryGenerateWithQuotaTolerance(buildStructuredContinuationPrompt(ctx.taskPrompt, schema, combined, ctx.input), compactTimeoutMs);
|
|
600
|
+
await sleep(INTER_CALL_DELAY_MS, ctx.signal);
|
|
601
|
+
const extra = await tryGenerateWithQuotaTolerance(buildStructuredContinuationPrompt(ctx.taskPrompt, schema, combined, ctx.input), compactTimeoutMs, ctx.signal);
|
|
582
602
|
if (!extra) break;
|
|
583
603
|
const merged = mergeStructuredFragments(combined, extra);
|
|
584
604
|
if (merged === combined) break;
|
|
@@ -592,9 +612,9 @@ async function askArrayCount(arraySchema, fieldName, ctx) {
|
|
|
592
612
|
const bounds = getArrayBounds(arraySchema, fieldName);
|
|
593
613
|
const prompt = fitContinuationPrompt([`"${fieldName}" array count (${bounds.min}-${bounds.max}). Reply: single integer only.`, `Task: ${truncateEnd(compactWhitespace(ctx.taskPrompt), 150)}`]);
|
|
594
614
|
try {
|
|
595
|
-
await sleep(INTER_CALL_DELAY_MS);
|
|
615
|
+
await sleep(INTER_CALL_DELAY_MS, ctx.signal);
|
|
596
616
|
const countTimeoutMs = Math.min(ctx.timeoutMs, ARRAY_COUNT_TIMEOUT_CAP_MS);
|
|
597
|
-
const raw = await generateStatelessWithQuotaRetry(prompt, countTimeoutMs);
|
|
617
|
+
const raw = await generateStatelessWithQuotaRetry(prompt, countTimeoutMs, ctx.signal);
|
|
598
618
|
const n = parseInt(raw.trim().replace(/\D/g, ''), 10);
|
|
599
619
|
if (Number.isFinite(n) && n >= bounds.min && n <= bounds.max) return n;
|
|
600
620
|
} catch {
|
|
@@ -605,7 +625,7 @@ async function askArrayCount(arraySchema, fieldName, ctx) {
|
|
|
605
625
|
async function walkSchema(schema, ctx) {
|
|
606
626
|
const inner = unwrapModifiers(schema);
|
|
607
627
|
if (isLeafSchema(inner)) {
|
|
608
|
-
await sleep(INTER_CALL_DELAY_MS);
|
|
628
|
+
await sleep(INTER_CALL_DELAY_MS, ctx.signal);
|
|
609
629
|
return walkLeaf(inner, ctx);
|
|
610
630
|
}
|
|
611
631
|
if (inner instanceof z.ZodArray) {
|
|
@@ -618,7 +638,7 @@ async function walkSchema(schema, ctx) {
|
|
|
618
638
|
// generate the entire array in one walkCompact call instead of per-element.
|
|
619
639
|
if (isCompactElement(elementSchema) && count <= MAX_WHOLE_ARRAY_COMPACT_ITEMS) {
|
|
620
640
|
ctx.onProgress?.(arrayLabel, false);
|
|
621
|
-
await sleep(INTER_CALL_DELAY_MS);
|
|
641
|
+
await sleep(INTER_CALL_DELAY_MS, ctx.signal);
|
|
622
642
|
const result = await walkCompact(inner, {
|
|
623
643
|
...ctx,
|
|
624
644
|
progressLabel: arrayLabel
|
|
@@ -631,7 +651,7 @@ async function walkSchema(schema, ctx) {
|
|
|
631
651
|
ctx.onProgress?.(arrayLabel, false);
|
|
632
652
|
const items = [];
|
|
633
653
|
for (let i = 0; i < count; i++) {
|
|
634
|
-
await sleep(INTER_CALL_DELAY_MS);
|
|
654
|
+
await sleep(INTER_CALL_DELAY_MS, ctx.signal);
|
|
635
655
|
const elemLabel = `${arrayLabel}[${i + 1}/${count}]`;
|
|
636
656
|
const elemCtx = {
|
|
637
657
|
...ctx,
|
|
@@ -647,7 +667,7 @@ async function walkSchema(schema, ctx) {
|
|
|
647
667
|
|
|
648
668
|
// Compact object: single call (except at root where per-field gives better progress).
|
|
649
669
|
if (isCompactSchema(inner) && ctx.path.length > 0) {
|
|
650
|
-
await sleep(INTER_CALL_DELAY_MS);
|
|
670
|
+
await sleep(INTER_CALL_DELAY_MS, ctx.signal);
|
|
651
671
|
return walkCompact(inner, ctx);
|
|
652
672
|
}
|
|
653
673
|
if (inner instanceof z.ZodObject) {
|
|
@@ -664,10 +684,10 @@ async function walkSchema(schema, ctx) {
|
|
|
664
684
|
progressLabel: [...ctx.path, key].join('.')
|
|
665
685
|
};
|
|
666
686
|
if (isLeafSchema(unwrapModifiers(fieldSchema))) {
|
|
667
|
-
await sleep(INTER_CALL_DELAY_MS);
|
|
687
|
+
await sleep(INTER_CALL_DELAY_MS, ctx.signal);
|
|
668
688
|
result[key] = await walkLeaf(fieldSchema, fieldCtx);
|
|
669
689
|
} else {
|
|
670
|
-
await sleep(INTER_CALL_DELAY_MS);
|
|
690
|
+
await sleep(INTER_CALL_DELAY_MS, ctx.signal);
|
|
671
691
|
result[key] = await walkCompact(fieldSchema, fieldCtx);
|
|
672
692
|
}
|
|
673
693
|
}
|
|
@@ -680,17 +700,18 @@ async function walkSchema(schema, ctx) {
|
|
|
680
700
|
}
|
|
681
701
|
return result;
|
|
682
702
|
}
|
|
683
|
-
await sleep(INTER_CALL_DELAY_MS);
|
|
703
|
+
await sleep(INTER_CALL_DELAY_MS, ctx.signal);
|
|
684
704
|
return walkLeaf(inner, ctx);
|
|
685
705
|
}
|
|
686
|
-
async function generateChunked(prompt, schema, input, timeoutMs, maxRetries, onProgress) {
|
|
706
|
+
async function generateChunked(prompt, schema, input, timeoutMs, maxRetries, onProgress, signal) {
|
|
687
707
|
return walkSchema(schema, {
|
|
688
708
|
taskPrompt: prompt,
|
|
689
709
|
input,
|
|
690
710
|
timeoutMs,
|
|
691
711
|
maxRetries,
|
|
692
712
|
path: [],
|
|
693
|
-
onProgress
|
|
713
|
+
onProgress,
|
|
714
|
+
signal
|
|
694
715
|
});
|
|
695
716
|
}
|
|
696
717
|
export async function generateStructuredResponse(options) {
|
|
@@ -703,19 +724,21 @@ export async function generateStructuredResponse(options) {
|
|
|
703
724
|
maxContinuations = DEFAULT_MAX_STRUCTURED_CONTINUATIONS,
|
|
704
725
|
timeoutMs = DEFAULT_STRUCTURED_TIMEOUT_MS,
|
|
705
726
|
strategy = 'single',
|
|
706
|
-
onProgress
|
|
727
|
+
onProgress,
|
|
728
|
+
signal
|
|
707
729
|
} = options;
|
|
708
730
|
if (inputSchema && input !== undefined) {
|
|
709
731
|
inputSchema.parse(input);
|
|
710
732
|
}
|
|
711
733
|
if (strategy === 'chunked') {
|
|
712
|
-
const assembled = await generateChunked(prompt, output, input, timeoutMs, maxRetries, onProgress);
|
|
734
|
+
const assembled = await generateChunked(prompt, output, input, timeoutMs, maxRetries, onProgress, signal);
|
|
713
735
|
return output.parse(assembled);
|
|
714
736
|
}
|
|
715
737
|
let lastRawResponse = '';
|
|
716
738
|
let lastIssues = [];
|
|
717
739
|
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
718
|
-
|
|
740
|
+
if (signal?.aborted) throw makeAbortError();
|
|
741
|
+
lastRawResponse = attempt === 0 ? await generateStructuredRawResponse(prompt, output, input, maxContinuations, timeoutMs) : await generateStatelessWithQuotaRetry(buildRepairPrompt(prompt, output, lastRawResponse, lastIssues), timeoutMs, signal);
|
|
719
742
|
try {
|
|
720
743
|
const parsed = JSON.parse(extractJsonPayload(lastRawResponse));
|
|
721
744
|
return output.parse(parsed);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","z","NativeAiCore","StructuredOutputError","Error","constructor","message","rawResponse","issues","name","STRUCTURED_PROMPT_BUDGET","STRUCTURED_REPAIR_RESPONSE_BUDGET","STRUCTURED_ISSUES_BUDGET","STRUCTURED_CONTINUATION_BUDGET","DEFAULT_MAX_STRUCTURED_CONTINUATIONS","CONTINUATION_OVERLAP_WINDOW","DEFAULT_STRUCTURED_TIMEOUT_MS","QUOTA_ERROR_CODE","QUOTA_RETRY_DELAY_MS","MAX_QUOTA_RETRIES","sleep","ms","Promise","resolve","setTimeout","toErrorMessage","error","JSON","stringify","String","readNumericErrorCode","directCode","errorCode","code","parsed","Number","parseInt","isFinite","match","capturedCode","isQuotaError","toLowerCase","includes","truncateStart","text","maxChars","length","slice","truncateEnd","compactWhitespace","replace","trim","stringifyInput","value","fitStructuredPrompt","parts","filter","Boolean","join","fitContinuationPrompt","zodTypeToDescription","schema","ZodString","ZodNumber","ZodBoolean","ZodNull","ZodEnum","options","map","ZodLiteral","ZodArray","element","ZodOptional","unwrap","ZodNullable","ZodUnion","option","ZodObject","shape","entries","Object","key","formatIssues","issue","path","extractFencedJson","extractBalancedJson","start","depth","inString","escaped","index","char","extractJsonPayload","raw","trimmed","fenced","balanced","stripCodeFences","mergeStructuredFragments","existing","incoming","normalizedIncoming","trimStart","maxOverlap","Math","min","size","endsWith","looksLikeIncompleteJson","candidate","max","lastChar","buildStructuredContinuationPrompt","prompt","outputSchema","partialResponse","input","schemaDescription","normalizedPrompt","serializedInput","undefined","partialTail","buildJsonParseIssues","ZodError","generateStructuredRawResponse","output","maxContinuations","timeoutMs","combined","generateStatelessWithQuotaRetry","buildStructuredPrompt","attempt","parse","continuationPrompt","continuation","tryGenerateWithQuotaTolerance","merged","buildRepairPrompt","invalidResponse","issueText","normalizedIssues","normalizedInvalidResponse","generateStateless","OS","generateResponseStateless","generateResponse","generateStatelessWithTimeout","timer","timeout","_","reject","race","clearTimeout","quotaRetries","INTER_CALL_DELAY_MS","DEFAULT_ARRAY_COUNT","MAX_ARRAY_COUNT","MAX_WHOLE_ARRAY_COMPACT_ITEMS","LEAF_TIMEOUT_CAP_MS","COMPACT_TIMEOUT_CAP_MS","ARRAY_COUNT_TIMEOUT_CAP_MS","LEAF_MAX_RETRIES_CAP","MAX_COMPACT_SCHEMA_CHARS","readZodLengthValue","maybe","getArrayBounds","arraySchema","fieldName","def","_def","exact","exactLength","minLen","minLength","maxLen","maxLength","fixed","round","preferred","unwrapModifiers","isLeafSchema","inner","isCompactSchema","hasNestedArray","isCompactElement","values","some","isStringSchema","isNumberSchema","isBooleanSchema","getEnumOptions","getLiteralValue","synthesizeLeafFallback","field","maybeIndex","idx","coercePrimitiveField","n","isNaN","test","enumOptions","normalized","direct","find","opt","ci","literalValue","walkLeaf","ctx","fieldPath","progressLabel","onProgress","fieldType","itemCtx","itemHint","isStr","valueInstruction","taskPrompt","leafTimeoutMs","leafMaxRetries","maxRetries","lastRaw","lastErrorMessage","coerced","validated","safeParse","success","data","fallbackFromRaw","fallbackSynth","fallback","fallbackValidated","walkCompact","typeDesc","compactTimeoutMs","cont","result","extra","finalResult","askArrayCount","bounds","countTimeoutMs","walkSchema","elementSchema","arrayLabel","count","items","i","elemLabel","elemCtx","push","compactEntries","s","complexEntries","fieldSchema","fieldCtx","generateChunked","generateStructuredResponse","inputSchema","strategy","assembled","lastRawResponse","lastIssues"],"sourceRoot":"../../src","sources":["structured.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["Platform","z","NativeAiCore","StructuredOutputError","Error","constructor","message","rawResponse","issues","name","STRUCTURED_PROMPT_BUDGET","STRUCTURED_REPAIR_RESPONSE_BUDGET","STRUCTURED_ISSUES_BUDGET","STRUCTURED_CONTINUATION_BUDGET","DEFAULT_MAX_STRUCTURED_CONTINUATIONS","CONTINUATION_OVERLAP_WINDOW","DEFAULT_STRUCTURED_TIMEOUT_MS","QUOTA_ERROR_CODE","QUOTA_RETRY_DELAY_MS","MAX_QUOTA_RETRIES","makeAbortError","Object","assign","sleep","ms","signal","Promise","resolve","reject","aborted","timer","setTimeout","addEventListener","clearTimeout","once","toErrorMessage","error","JSON","stringify","String","readNumericErrorCode","directCode","errorCode","code","parsed","Number","parseInt","isFinite","match","capturedCode","isQuotaError","toLowerCase","includes","truncateStart","text","maxChars","length","slice","truncateEnd","compactWhitespace","replace","trim","stringifyInput","value","fitStructuredPrompt","parts","filter","Boolean","join","fitContinuationPrompt","zodTypeToDescription","schema","ZodString","ZodNumber","ZodBoolean","ZodNull","ZodEnum","options","map","ZodLiteral","ZodArray","element","ZodOptional","unwrap","ZodNullable","ZodUnion","option","ZodObject","shape","entries","key","formatIssues","issue","path","extractFencedJson","extractBalancedJson","start","depth","inString","escaped","index","char","extractJsonPayload","raw","trimmed","fenced","balanced","stripCodeFences","mergeStructuredFragments","existing","incoming","normalizedIncoming","trimStart","maxOverlap","Math","min","size","endsWith","looksLikeIncompleteJson","candidate","max","lastChar","buildStructuredContinuationPrompt","prompt","outputSchema","partialResponse","input","schemaDescription","normalizedPrompt","serializedInput","undefined","partialTail","buildJsonParseIssues","ZodError","generateStructuredRawResponse","output","maxContinuations","timeoutMs","combined","generateStatelessWithQuotaRetry","buildStructuredPrompt","attempt","parse","continuationPrompt","continuation","tryGenerateWithQuotaTolerance","merged","buildRepairPrompt","invalidResponse","issueText","normalizedIssues","normalizedInvalidResponse","generateStateless","OS","generateResponseStateless","generateResponse","generateStatelessWithTimeout","timeout","_","race","quotaRetries","INTER_CALL_DELAY_MS","DEFAULT_ARRAY_COUNT","MAX_ARRAY_COUNT","MAX_WHOLE_ARRAY_COMPACT_ITEMS","LEAF_TIMEOUT_CAP_MS","COMPACT_TIMEOUT_CAP_MS","ARRAY_COUNT_TIMEOUT_CAP_MS","LEAF_MAX_RETRIES_CAP","MAX_COMPACT_SCHEMA_CHARS","readZodLengthValue","maybe","getArrayBounds","arraySchema","fieldName","def","_def","exact","exactLength","minLen","minLength","maxLen","maxLength","fixed","round","preferred","unwrapModifiers","isLeafSchema","inner","isCompactSchema","hasNestedArray","isCompactElement","values","some","isStringSchema","isNumberSchema","isBooleanSchema","getEnumOptions","getLiteralValue","synthesizeLeafFallback","field","maybeIndex","idx","coercePrimitiveField","n","isNaN","test","enumOptions","normalized","direct","find","opt","ci","literalValue","walkLeaf","ctx","fieldPath","progressLabel","onProgress","fieldType","itemCtx","itemHint","isStr","valueInstruction","taskPrompt","leafTimeoutMs","leafMaxRetries","maxRetries","lastRaw","lastErrorMessage","coerced","validated","safeParse","success","data","fallbackFromRaw","fallbackSynth","fallback","fallbackValidated","walkCompact","typeDesc","compactTimeoutMs","cont","result","extra","finalResult","askArrayCount","bounds","countTimeoutMs","walkSchema","elementSchema","arrayLabel","count","items","i","elemLabel","elemCtx","push","compactEntries","s","complexEntries","fieldSchema","fieldCtx","generateChunked","generateStructuredResponse","inputSchema","strategy","assembled","lastRawResponse","lastIssues"],"sourceRoot":"../../src","sources":["structured.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -43,6 +43,12 @@ export interface Spec extends TurboModule {
|
|
|
43
43
|
* The next message will start a fresh conversation.
|
|
44
44
|
*/
|
|
45
45
|
resetConversation(): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Cancels any generation currently in progress.
|
|
48
|
+
* For streaming: the stream ends with the tokens generated so far.
|
|
49
|
+
* For non-streaming: the pending promise rejects with code 'CANCELLED'.
|
|
50
|
+
*/
|
|
51
|
+
cancelGeneration(): Promise<void>;
|
|
46
52
|
addListener(eventName: string): void;
|
|
47
53
|
removeListeners(count: number): void;
|
|
48
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeAiCore.d.ts","sourceRoot":"","sources":["../../../src/NativeAiCore.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAErE,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC;;;OAGG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEhD;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAElD;;;OAGG;IACH,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE3D;;;;;;OAMG;IACH,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7C;;;OAGG;IACH,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAErC;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;;OAGG;IACH,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"NativeAiCore.d.ts","sourceRoot":"","sources":["../../../src/NativeAiCore.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAErE,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC;;;OAGG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEhD;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAElD;;;OAGG;IACH,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE3D;;;;;;OAMG;IACH,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7C;;;OAGG;IACH,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAErC;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;;OAGG;IACH,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnC;;;;OAIG;IACH,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAGlC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;;AAED,wBAAgE"}
|
|
@@ -114,6 +114,15 @@ export declare function release(): Promise<void>;
|
|
|
114
114
|
* await resetConversation(); // new conversation, same engine
|
|
115
115
|
*/
|
|
116
116
|
export declare function resetConversation(): Promise<void>;
|
|
117
|
+
/**
|
|
118
|
+
* Cancels any generation currently in progress.
|
|
119
|
+
*
|
|
120
|
+
* - **Streaming**: the stream ends immediately with tokens generated so far.
|
|
121
|
+
* - **Non-streaming**: the pending `generateResponse` promise rejects with code `'CANCELLED'`.
|
|
122
|
+
*
|
|
123
|
+
* Safe to call when no generation is running.
|
|
124
|
+
*/
|
|
125
|
+
export declare function cancelGeneration(): Promise<void>;
|
|
117
126
|
declare const AICore: {
|
|
118
127
|
initialize: typeof initialize;
|
|
119
128
|
generateResponse: typeof generateResponse;
|
|
@@ -122,6 +131,7 @@ declare const AICore: {
|
|
|
122
131
|
checkAvailability: typeof checkAvailability;
|
|
123
132
|
release: typeof release;
|
|
124
133
|
resetConversation: typeof resetConversation;
|
|
134
|
+
cancelGeneration: typeof cancelGeneration;
|
|
125
135
|
};
|
|
126
136
|
export default AICore;
|
|
127
137
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,KAAK,yBAAyB,EAC9B,KAAK,gBAAgB,EACrB,KAAK,yBAAyB,GAC/B,MAAM,cAAc,CAAC;AAItB,uDAAuD;AACvD,MAAM,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,KAAK,yBAAyB,EAC9B,KAAK,gBAAgB,EACrB,KAAK,yBAAyB,GAC/B,MAAM,cAAc,CAAC;AAItB,uDAAuD;AACvD,MAAM,MAAM,kBAAkB,GAC1B,WAAW,GACX,eAAe,GACf,eAAe,GACf,aAAa,CAAC;AAElB,mCAAmC;AACnC,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,qDAAqD;IACrD,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,kDAAkD;IAClD,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACnC;AAED,iCAAiC;AACjC,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAqBD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGpE;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGtE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,eAAe,GACzB,MAAM,IAAI,CAuCZ;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAGrE;AAED;;;;;;;;;GASG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAG7C;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAGvD;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAGtD;AAID,QAAA,MAAM,MAAM;;;;;;;;;CASX,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -20,6 +20,11 @@ export interface StructuredGenerateOptions<TOutputSchema extends ZodTypeAny, TIn
|
|
|
20
20
|
* @param done true when the field has just been completed
|
|
21
21
|
*/
|
|
22
22
|
onProgress?: (field: string, done: boolean) => void;
|
|
23
|
+
/**
|
|
24
|
+
* Optional AbortSignal to cancel the generation mid-way.
|
|
25
|
+
* When aborted, the promise rejects with an Error whose `name` is `'AbortError'`.
|
|
26
|
+
*/
|
|
27
|
+
signal?: AbortSignal;
|
|
23
28
|
}
|
|
24
29
|
export interface StructuredValidationIssue {
|
|
25
30
|
path: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structured.d.ts","sourceRoot":"","sources":["../../../src/structured.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,KAAK,UAAU,EAAE,MAAM,KAAK,CAAC;AAGzC,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAE/C,MAAM,WAAW,yBAAyB,CACxC,aAAa,SAAS,UAAU,EAChC,MAAM,GAAG,OAAO;IAEhB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAChC;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"structured.d.ts","sourceRoot":"","sources":["../../../src/structured.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,KAAK,UAAU,EAAE,MAAM,KAAK,CAAC;AAGzC,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAE/C,MAAM,WAAW,yBAAyB,CACxC,aAAa,SAAS,UAAU,EAChC,MAAM,GAAG,OAAO;IAEhB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAChC;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACpD;;;OAGG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,MAAM,EAAE,yBAAyB,EAAE,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;gBAGlB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,MAAM,GAAE,yBAAyB,EAAO;CAO3C;AAmhCD,wBAAsB,0BAA0B,CAC9C,aAAa,SAAS,UAAU,EAChC,MAAM,GAAG,OAAO,EAEhB,OAAO,EAAE,yBAAyB,CAAC,aAAa,EAAE,MAAM,CAAC,GACxD,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAkEjC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-ai-core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "High-performance AI bridge for React Native using Google AI Edge MediaPipe and Gemini Nano",
|
|
5
5
|
"main": "./lib/module/index.js",
|
|
6
6
|
"types": "./lib/typescript/src/index.d.ts",
|
package/src/NativeAiCore.ts
CHANGED
|
@@ -51,6 +51,13 @@ export interface Spec extends TurboModule {
|
|
|
51
51
|
*/
|
|
52
52
|
resetConversation(): Promise<void>;
|
|
53
53
|
|
|
54
|
+
/**
|
|
55
|
+
* Cancels any generation currently in progress.
|
|
56
|
+
* For streaming: the stream ends with the tokens generated so far.
|
|
57
|
+
* For non-streaming: the pending promise rejects with code 'CANCELLED'.
|
|
58
|
+
*/
|
|
59
|
+
cancelGeneration(): Promise<void>;
|
|
60
|
+
|
|
54
61
|
// Required by NativeEventEmitter
|
|
55
62
|
addListener(eventName: string): void;
|
|
56
63
|
removeListeners(count: number): void;
|
package/src/index.tsx
CHANGED
|
@@ -26,7 +26,11 @@ export {
|
|
|
26
26
|
// ── Public types ────────────────────────────────────────────────────────────────
|
|
27
27
|
|
|
28
28
|
/** Availability status of Gemini Nano on the device */
|
|
29
|
-
export type AvailabilityStatus =
|
|
29
|
+
export type AvailabilityStatus =
|
|
30
|
+
| 'AVAILABLE'
|
|
31
|
+
| 'AVAILABLE_NPU'
|
|
32
|
+
| 'NEED_DOWNLOAD'
|
|
33
|
+
| 'UNSUPPORTED';
|
|
30
34
|
|
|
31
35
|
/** Streaming response callbacks */
|
|
32
36
|
export interface StreamCallbacks {
|
|
@@ -49,9 +53,9 @@ export interface AIError {
|
|
|
49
53
|
}
|
|
50
54
|
|
|
51
55
|
// ── Event names (must match the Kotlin module constants) ───────────────────────
|
|
52
|
-
const EVENT_STREAM_TOKEN
|
|
56
|
+
const EVENT_STREAM_TOKEN = 'AICore_streamToken';
|
|
53
57
|
const EVENT_STREAM_COMPLETE = 'AICore_streamComplete';
|
|
54
|
-
const EVENT_STREAM_ERROR
|
|
58
|
+
const EVENT_STREAM_ERROR = 'AICore_streamError';
|
|
55
59
|
|
|
56
60
|
const emitter =
|
|
57
61
|
NativeAiCore != null ? new NativeEventEmitter(NativeAiCore) : null;
|
|
@@ -135,7 +139,7 @@ export function generateResponseStream(
|
|
|
135
139
|
|
|
136
140
|
const tokenSub = emitter.addListener(
|
|
137
141
|
EVENT_STREAM_TOKEN,
|
|
138
|
-
|
|
142
|
+
|
|
139
143
|
(event: any) => {
|
|
140
144
|
callbacks.onToken(
|
|
141
145
|
(event as { token: string; done: boolean }).token,
|
|
@@ -150,7 +154,7 @@ export function generateResponseStream(
|
|
|
150
154
|
|
|
151
155
|
const errorSub = emitter.addListener(
|
|
152
156
|
EVENT_STREAM_ERROR,
|
|
153
|
-
|
|
157
|
+
|
|
154
158
|
(error: any) => {
|
|
155
159
|
callbacks.onError(error as AIError);
|
|
156
160
|
}
|
|
@@ -211,6 +215,19 @@ export async function resetConversation(): Promise<void> {
|
|
|
211
215
|
return NativeAiCore.resetConversation();
|
|
212
216
|
}
|
|
213
217
|
|
|
218
|
+
/**
|
|
219
|
+
* Cancels any generation currently in progress.
|
|
220
|
+
*
|
|
221
|
+
* - **Streaming**: the stream ends immediately with tokens generated so far.
|
|
222
|
+
* - **Non-streaming**: the pending `generateResponse` promise rejects with code `'CANCELLED'`.
|
|
223
|
+
*
|
|
224
|
+
* Safe to call when no generation is running.
|
|
225
|
+
*/
|
|
226
|
+
export async function cancelGeneration(): Promise<void> {
|
|
227
|
+
if (!NativeAiCore) return;
|
|
228
|
+
return NativeAiCore.cancelGeneration();
|
|
229
|
+
}
|
|
230
|
+
|
|
214
231
|
// ── Default export (API object) ───────────────────────────────────────────────
|
|
215
232
|
|
|
216
233
|
const AICore = {
|
|
@@ -221,6 +238,7 @@ const AICore = {
|
|
|
221
238
|
checkAvailability,
|
|
222
239
|
release,
|
|
223
240
|
resetConversation,
|
|
241
|
+
cancelGeneration,
|
|
224
242
|
};
|
|
225
243
|
|
|
226
244
|
export default AICore;
|
package/src/structured.ts
CHANGED
|
@@ -27,6 +27,11 @@ export interface StructuredGenerateOptions<
|
|
|
27
27
|
* @param done true when the field has just been completed
|
|
28
28
|
*/
|
|
29
29
|
onProgress?: (field: string, done: boolean) => void;
|
|
30
|
+
/**
|
|
31
|
+
* Optional AbortSignal to cancel the generation mid-way.
|
|
32
|
+
* When aborted, the promise rejects with an Error whose `name` is `'AbortError'`.
|
|
33
|
+
*/
|
|
34
|
+
signal?: AbortSignal;
|
|
30
35
|
}
|
|
31
36
|
|
|
32
37
|
export interface StructuredValidationIssue {
|
|
@@ -61,8 +66,28 @@ const QUOTA_ERROR_CODE = 9;
|
|
|
61
66
|
const QUOTA_RETRY_DELAY_MS = 1800;
|
|
62
67
|
const MAX_QUOTA_RETRIES = 2;
|
|
63
68
|
|
|
64
|
-
function
|
|
65
|
-
return new
|
|
69
|
+
function makeAbortError(): Error {
|
|
70
|
+
return Object.assign(new Error('Generation cancelled.'), {
|
|
71
|
+
name: 'AbortError',
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
function sleep(ms: number, signal?: AbortSignal): Promise<void> {
|
|
76
|
+
return new Promise((resolve, reject) => {
|
|
77
|
+
if (signal?.aborted) {
|
|
78
|
+
reject(makeAbortError());
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
const timer = setTimeout(resolve, ms);
|
|
82
|
+
signal?.addEventListener(
|
|
83
|
+
'abort',
|
|
84
|
+
() => {
|
|
85
|
+
clearTimeout(timer);
|
|
86
|
+
reject(makeAbortError());
|
|
87
|
+
},
|
|
88
|
+
{ once: true }
|
|
89
|
+
);
|
|
90
|
+
});
|
|
66
91
|
}
|
|
67
92
|
|
|
68
93
|
function toErrorMessage(error: unknown): string {
|
|
@@ -445,13 +470,18 @@ function buildRepairPrompt(
|
|
|
445
470
|
]);
|
|
446
471
|
}
|
|
447
472
|
|
|
448
|
-
async function generateStateless(
|
|
473
|
+
async function generateStateless(
|
|
474
|
+
prompt: string,
|
|
475
|
+
signal?: AbortSignal
|
|
476
|
+
): Promise<string> {
|
|
449
477
|
if (!NativeAiCore) {
|
|
450
478
|
throw new Error(
|
|
451
479
|
`react-native-ai-core: native module unavailable on ${Platform.OS}. This feature requires Android.`
|
|
452
480
|
);
|
|
453
481
|
}
|
|
454
482
|
|
|
483
|
+
if (signal?.aborted) throw makeAbortError();
|
|
484
|
+
|
|
455
485
|
if (NativeAiCore?.generateResponseStateless) {
|
|
456
486
|
return NativeAiCore.generateResponseStateless(prompt);
|
|
457
487
|
}
|
|
@@ -461,10 +491,11 @@ async function generateStateless(prompt: string): Promise<string> {
|
|
|
461
491
|
|
|
462
492
|
async function generateStatelessWithTimeout(
|
|
463
493
|
prompt: string,
|
|
464
|
-
timeoutMs: number
|
|
494
|
+
timeoutMs: number,
|
|
495
|
+
signal?: AbortSignal
|
|
465
496
|
): Promise<string> {
|
|
466
497
|
if (timeoutMs <= 0) {
|
|
467
|
-
return generateStateless(prompt);
|
|
498
|
+
return generateStateless(prompt, signal);
|
|
468
499
|
}
|
|
469
500
|
|
|
470
501
|
let timer: ReturnType<typeof setTimeout> | undefined;
|
|
@@ -475,7 +506,7 @@ async function generateStatelessWithTimeout(
|
|
|
475
506
|
});
|
|
476
507
|
|
|
477
508
|
try {
|
|
478
|
-
return await Promise.race([generateStateless(prompt), timeout]);
|
|
509
|
+
return await Promise.race([generateStateless(prompt, signal), timeout]);
|
|
479
510
|
} finally {
|
|
480
511
|
if (timer) clearTimeout(timer);
|
|
481
512
|
}
|
|
@@ -483,29 +514,33 @@ async function generateStatelessWithTimeout(
|
|
|
483
514
|
|
|
484
515
|
async function generateStatelessWithQuotaRetry(
|
|
485
516
|
prompt: string,
|
|
486
|
-
timeoutMs: number
|
|
517
|
+
timeoutMs: number,
|
|
518
|
+
signal?: AbortSignal
|
|
487
519
|
): Promise<string> {
|
|
488
520
|
let quotaRetries = 0;
|
|
489
521
|
while (true) {
|
|
490
522
|
try {
|
|
491
|
-
return await generateStatelessWithTimeout(prompt, timeoutMs);
|
|
523
|
+
return await generateStatelessWithTimeout(prompt, timeoutMs, signal);
|
|
492
524
|
} catch (error) {
|
|
525
|
+
if ((error as { name?: string }).name === 'AbortError') throw error;
|
|
493
526
|
if (!isQuotaError(error) || quotaRetries >= MAX_QUOTA_RETRIES) {
|
|
494
527
|
throw error;
|
|
495
528
|
}
|
|
496
529
|
quotaRetries += 1;
|
|
497
|
-
await sleep(QUOTA_RETRY_DELAY_MS);
|
|
530
|
+
await sleep(QUOTA_RETRY_DELAY_MS, signal);
|
|
498
531
|
}
|
|
499
532
|
}
|
|
500
533
|
}
|
|
501
534
|
|
|
502
535
|
async function tryGenerateWithQuotaTolerance(
|
|
503
536
|
prompt: string,
|
|
504
|
-
timeoutMs: number
|
|
537
|
+
timeoutMs: number,
|
|
538
|
+
signal?: AbortSignal
|
|
505
539
|
): Promise<string | null> {
|
|
506
540
|
try {
|
|
507
|
-
return await generateStatelessWithQuotaRetry(prompt, timeoutMs);
|
|
541
|
+
return await generateStatelessWithQuotaRetry(prompt, timeoutMs, signal);
|
|
508
542
|
} catch (error) {
|
|
543
|
+
if ((error as { name?: string }).name === 'AbortError') throw error;
|
|
509
544
|
if (isQuotaError(error)) {
|
|
510
545
|
return null;
|
|
511
546
|
}
|
|
@@ -548,6 +583,7 @@ interface WalkContext {
|
|
|
548
583
|
/** Label for onProgress — overrides the computed path when set */
|
|
549
584
|
progressLabel?: string;
|
|
550
585
|
onProgress?: (field: string, done: boolean) => void;
|
|
586
|
+
signal?: AbortSignal;
|
|
551
587
|
}
|
|
552
588
|
|
|
553
589
|
interface ArrayCountBounds {
|
|
@@ -811,9 +847,13 @@ async function walkLeaf(
|
|
|
811
847
|
let lastRaw = '';
|
|
812
848
|
let lastErrorMessage = '';
|
|
813
849
|
for (let attempt = 0; attempt <= leafMaxRetries; attempt++) {
|
|
814
|
-
if (attempt > 0) await sleep(INTER_CALL_DELAY_MS);
|
|
850
|
+
if (attempt > 0) await sleep(INTER_CALL_DELAY_MS, ctx.signal);
|
|
815
851
|
try {
|
|
816
|
-
lastRaw = await generateStatelessWithQuotaRetry(
|
|
852
|
+
lastRaw = await generateStatelessWithQuotaRetry(
|
|
853
|
+
prompt,
|
|
854
|
+
leafTimeoutMs,
|
|
855
|
+
ctx.signal
|
|
856
|
+
);
|
|
817
857
|
const coerced = coercePrimitiveField(lastRaw, schema);
|
|
818
858
|
const validated = schema.safeParse(coerced);
|
|
819
859
|
if (validated.success) {
|
|
@@ -869,7 +909,8 @@ async function walkCompact(
|
|
|
869
909
|
const compactTimeoutMs = Math.min(ctx.timeoutMs, COMPACT_TIMEOUT_CAP_MS);
|
|
870
910
|
let combined = await generateStatelessWithQuotaRetry(
|
|
871
911
|
prompt,
|
|
872
|
-
compactTimeoutMs
|
|
912
|
+
compactTimeoutMs,
|
|
913
|
+
ctx.signal
|
|
873
914
|
);
|
|
874
915
|
|
|
875
916
|
for (let cont = 0; cont < 6; cont++) {
|
|
@@ -880,7 +921,7 @@ async function walkCompact(
|
|
|
880
921
|
} catch {
|
|
881
922
|
if (!looksLikeIncompleteJson(combined)) break;
|
|
882
923
|
}
|
|
883
|
-
await sleep(INTER_CALL_DELAY_MS);
|
|
924
|
+
await sleep(INTER_CALL_DELAY_MS, ctx.signal);
|
|
884
925
|
const extra = await tryGenerateWithQuotaTolerance(
|
|
885
926
|
buildStructuredContinuationPrompt(
|
|
886
927
|
ctx.taskPrompt,
|
|
@@ -888,7 +929,8 @@ async function walkCompact(
|
|
|
888
929
|
combined,
|
|
889
930
|
ctx.input
|
|
890
931
|
),
|
|
891
|
-
compactTimeoutMs
|
|
932
|
+
compactTimeoutMs,
|
|
933
|
+
ctx.signal
|
|
892
934
|
);
|
|
893
935
|
if (!extra) break;
|
|
894
936
|
const merged = mergeStructuredFragments(combined, extra);
|
|
@@ -913,9 +955,13 @@ async function askArrayCount(
|
|
|
913
955
|
]);
|
|
914
956
|
|
|
915
957
|
try {
|
|
916
|
-
await sleep(INTER_CALL_DELAY_MS);
|
|
958
|
+
await sleep(INTER_CALL_DELAY_MS, ctx.signal);
|
|
917
959
|
const countTimeoutMs = Math.min(ctx.timeoutMs, ARRAY_COUNT_TIMEOUT_CAP_MS);
|
|
918
|
-
const raw = await generateStatelessWithQuotaRetry(
|
|
960
|
+
const raw = await generateStatelessWithQuotaRetry(
|
|
961
|
+
prompt,
|
|
962
|
+
countTimeoutMs,
|
|
963
|
+
ctx.signal
|
|
964
|
+
);
|
|
919
965
|
const n = parseInt(raw.trim().replace(/\D/g, ''), 10);
|
|
920
966
|
if (Number.isFinite(n) && n >= bounds.min && n <= bounds.max) return n;
|
|
921
967
|
} catch {
|
|
@@ -931,7 +977,7 @@ async function walkSchema(
|
|
|
931
977
|
const inner = unwrapModifiers(schema);
|
|
932
978
|
|
|
933
979
|
if (isLeafSchema(inner)) {
|
|
934
|
-
await sleep(INTER_CALL_DELAY_MS);
|
|
980
|
+
await sleep(INTER_CALL_DELAY_MS, ctx.signal);
|
|
935
981
|
return walkLeaf(inner, ctx);
|
|
936
982
|
}
|
|
937
983
|
|
|
@@ -952,7 +998,7 @@ async function walkSchema(
|
|
|
952
998
|
count <= MAX_WHOLE_ARRAY_COMPACT_ITEMS
|
|
953
999
|
) {
|
|
954
1000
|
ctx.onProgress?.(arrayLabel, false);
|
|
955
|
-
await sleep(INTER_CALL_DELAY_MS);
|
|
1001
|
+
await sleep(INTER_CALL_DELAY_MS, ctx.signal);
|
|
956
1002
|
const result = await walkCompact(inner, {
|
|
957
1003
|
...ctx,
|
|
958
1004
|
progressLabel: arrayLabel,
|
|
@@ -966,7 +1012,7 @@ async function walkSchema(
|
|
|
966
1012
|
const items: unknown[] = [];
|
|
967
1013
|
|
|
968
1014
|
for (let i = 0; i < count; i++) {
|
|
969
|
-
await sleep(INTER_CALL_DELAY_MS);
|
|
1015
|
+
await sleep(INTER_CALL_DELAY_MS, ctx.signal);
|
|
970
1016
|
const elemLabel = `${arrayLabel}[${i + 1}/${count}]`;
|
|
971
1017
|
const elemCtx: WalkContext = {
|
|
972
1018
|
...ctx,
|
|
@@ -983,7 +1029,7 @@ async function walkSchema(
|
|
|
983
1029
|
|
|
984
1030
|
// Compact object: single call (except at root where per-field gives better progress).
|
|
985
1031
|
if (isCompactSchema(inner) && ctx.path.length > 0) {
|
|
986
|
-
await sleep(INTER_CALL_DELAY_MS);
|
|
1032
|
+
await sleep(INTER_CALL_DELAY_MS, ctx.signal);
|
|
987
1033
|
return walkCompact(inner, ctx);
|
|
988
1034
|
}
|
|
989
1035
|
|
|
@@ -1007,10 +1053,10 @@ async function walkSchema(
|
|
|
1007
1053
|
progressLabel: [...ctx.path, key].join('.'),
|
|
1008
1054
|
};
|
|
1009
1055
|
if (isLeafSchema(unwrapModifiers(fieldSchema as ZodTypeAny))) {
|
|
1010
|
-
await sleep(INTER_CALL_DELAY_MS);
|
|
1056
|
+
await sleep(INTER_CALL_DELAY_MS, ctx.signal);
|
|
1011
1057
|
result[key] = await walkLeaf(fieldSchema as ZodTypeAny, fieldCtx);
|
|
1012
1058
|
} else {
|
|
1013
|
-
await sleep(INTER_CALL_DELAY_MS);
|
|
1059
|
+
await sleep(INTER_CALL_DELAY_MS, ctx.signal);
|
|
1014
1060
|
result[key] = await walkCompact(fieldSchema as ZodTypeAny, fieldCtx);
|
|
1015
1061
|
}
|
|
1016
1062
|
}
|
|
@@ -1026,7 +1072,7 @@ async function walkSchema(
|
|
|
1026
1072
|
return result;
|
|
1027
1073
|
}
|
|
1028
1074
|
|
|
1029
|
-
await sleep(INTER_CALL_DELAY_MS);
|
|
1075
|
+
await sleep(INTER_CALL_DELAY_MS, ctx.signal);
|
|
1030
1076
|
return walkLeaf(inner, ctx);
|
|
1031
1077
|
}
|
|
1032
1078
|
|
|
@@ -1036,7 +1082,8 @@ async function generateChunked<TOutputSchema extends ZodTypeAny, TInput>(
|
|
|
1036
1082
|
input: TInput | undefined,
|
|
1037
1083
|
timeoutMs: number,
|
|
1038
1084
|
maxRetries: number,
|
|
1039
|
-
onProgress?: (field: string, done: boolean) => void
|
|
1085
|
+
onProgress?: (field: string, done: boolean) => void,
|
|
1086
|
+
signal?: AbortSignal
|
|
1040
1087
|
): Promise<unknown> {
|
|
1041
1088
|
return walkSchema(schema, {
|
|
1042
1089
|
taskPrompt: prompt,
|
|
@@ -1045,6 +1092,7 @@ async function generateChunked<TOutputSchema extends ZodTypeAny, TInput>(
|
|
|
1045
1092
|
maxRetries,
|
|
1046
1093
|
path: [],
|
|
1047
1094
|
onProgress,
|
|
1095
|
+
signal,
|
|
1048
1096
|
});
|
|
1049
1097
|
}
|
|
1050
1098
|
|
|
@@ -1064,6 +1112,7 @@ export async function generateStructuredResponse<
|
|
|
1064
1112
|
timeoutMs = DEFAULT_STRUCTURED_TIMEOUT_MS,
|
|
1065
1113
|
strategy = 'single',
|
|
1066
1114
|
onProgress,
|
|
1115
|
+
signal,
|
|
1067
1116
|
} = options;
|
|
1068
1117
|
|
|
1069
1118
|
if (inputSchema && input !== undefined) {
|
|
@@ -1077,7 +1126,8 @@ export async function generateStructuredResponse<
|
|
|
1077
1126
|
input,
|
|
1078
1127
|
timeoutMs,
|
|
1079
1128
|
maxRetries,
|
|
1080
|
-
onProgress
|
|
1129
|
+
onProgress,
|
|
1130
|
+
signal
|
|
1081
1131
|
);
|
|
1082
1132
|
return output.parse(assembled);
|
|
1083
1133
|
}
|
|
@@ -1086,6 +1136,7 @@ export async function generateStructuredResponse<
|
|
|
1086
1136
|
let lastIssues: StructuredValidationIssue[] = [];
|
|
1087
1137
|
|
|
1088
1138
|
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
1139
|
+
if (signal?.aborted) throw makeAbortError();
|
|
1089
1140
|
lastRawResponse =
|
|
1090
1141
|
attempt === 0
|
|
1091
1142
|
? await generateStructuredRawResponse(
|
|
@@ -1097,7 +1148,8 @@ export async function generateStructuredResponse<
|
|
|
1097
1148
|
)
|
|
1098
1149
|
: await generateStatelessWithQuotaRetry(
|
|
1099
1150
|
buildRepairPrompt(prompt, output, lastRawResponse, lastIssues),
|
|
1100
|
-
timeoutMs
|
|
1151
|
+
timeoutMs,
|
|
1152
|
+
signal
|
|
1101
1153
|
);
|
|
1102
1154
|
|
|
1103
1155
|
try {
|