ns-kiro-core 0.2.3 → 0.3.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.
- package/dist/blocks.d.ts +4 -0
- package/dist/blocks.js +4 -0
- package/dist/blocks.js.map +1 -1
- package/dist/cache-estimator.d.ts +11 -0
- package/dist/cache-estimator.js +61 -0
- package/dist/cache-estimator.js.map +1 -0
- package/dist/endpoints.d.ts +8 -0
- package/dist/endpoints.js +14 -0
- package/dist/endpoints.js.map +1 -1
- package/dist/errors.d.ts +39 -0
- package/dist/errors.js +82 -0
- package/dist/errors.js.map +1 -0
- package/dist/event-parser.d.ts +127 -26
- package/dist/event-parser.js +256 -48
- package/dist/event-parser.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/models.js +4 -1
- package/dist/models.js.map +1 -1
- package/dist/response-assembler.d.ts +29 -3
- package/dist/response-assembler.js +125 -37
- package/dist/response-assembler.js.map +1 -1
- package/dist/response-stream.d.ts +16 -1
- package/dist/response-stream.js +116 -17
- package/dist/response-stream.js.map +1 -1
- package/dist/stream.d.ts +7 -0
- package/dist/stream.js +249 -19
- package/dist/stream.js.map +1 -1
- package/dist/types.d.ts +13 -0
- package/dist/usage-tracking.d.ts +34 -0
- package/dist/usage-tracking.js +88 -0
- package/dist/usage-tracking.js.map +1 -0
- package/package.json +1 -1
|
@@ -13,8 +13,9 @@ const ECHO_NOISE_PATTERN = /^\s*(continue|\.+)\s*$/i;
|
|
|
13
13
|
* Accumulates one response.
|
|
14
14
|
*
|
|
15
15
|
* Block indexes are monotonic across the whole call, including across an
|
|
16
|
-
* internal retry, so the buffer
|
|
17
|
-
*
|
|
16
|
+
* internal retry, so the buffer outlives a single attempt while everything
|
|
17
|
+
* else — including the usage figures — is reset by {@link beginAttempt}:
|
|
18
|
+
* a discarded attempt must not bill the turn that replaced it.
|
|
18
19
|
*/
|
|
19
20
|
export class KiroResponseAssembler {
|
|
20
21
|
model;
|
|
@@ -30,6 +31,7 @@ export class KiroResponseAssembler {
|
|
|
30
31
|
totalContent = "";
|
|
31
32
|
lastContentData = "";
|
|
32
33
|
usageEvent = null;
|
|
34
|
+
meteringEvent = null;
|
|
33
35
|
receivedContextUsage = false;
|
|
34
36
|
thinkingParser = null;
|
|
35
37
|
nativeThinkingBlockIndex = null;
|
|
@@ -37,16 +39,19 @@ export class KiroResponseAssembler {
|
|
|
37
39
|
textBlockIndex = null;
|
|
38
40
|
emittedToolCalls = 0;
|
|
39
41
|
sawAnyToolCalls = false;
|
|
42
|
+
droppedToolCalls = [];
|
|
40
43
|
currentToolCall = null;
|
|
44
|
+
stopReason = "stop";
|
|
41
45
|
constructor(model, thinkingEnabled) {
|
|
42
46
|
this.model = model;
|
|
43
47
|
this.thinkingEnabled = thinkingEnabled;
|
|
44
48
|
}
|
|
45
|
-
/** Clear per-attempt state.
|
|
49
|
+
/** Clear per-attempt state. Only block indexes are kept. */
|
|
46
50
|
beginAttempt() {
|
|
47
51
|
this.totalContent = "";
|
|
48
52
|
this.lastContentData = "";
|
|
49
53
|
this.usageEvent = null;
|
|
54
|
+
this.meteringEvent = null;
|
|
50
55
|
this.receivedContextUsage = false;
|
|
51
56
|
this.thinkingParser = this.thinkingEnabled ? new ThinkingTagParser(this.blocks) : null;
|
|
52
57
|
this.nativeThinkingBlockIndex = null;
|
|
@@ -54,7 +59,23 @@ export class KiroResponseAssembler {
|
|
|
54
59
|
this.textBlockIndex = null;
|
|
55
60
|
this.emittedToolCalls = 0;
|
|
56
61
|
this.sawAnyToolCalls = false;
|
|
62
|
+
this.droppedToolCalls = [];
|
|
57
63
|
this.currentToolCall = null;
|
|
64
|
+
// Every wire-derived usage figure lives on `usage`, which outlives the
|
|
65
|
+
// retry loop, so an abandoned attempt's accounting would otherwise be
|
|
66
|
+
// billed to the turn that replaced it.
|
|
67
|
+
this.usage.input = 0;
|
|
68
|
+
this.usage.output = 0;
|
|
69
|
+
this.usage.totalTokens = 0;
|
|
70
|
+
this.usage.cost = { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 };
|
|
71
|
+
// Optional fields stay absent rather than 0: absent means "the service did
|
|
72
|
+
// not report it", which a retried turn must not overwrite with a stale or
|
|
73
|
+
// invented figure.
|
|
74
|
+
delete this.usage.cacheRead;
|
|
75
|
+
delete this.usage.cacheWrite;
|
|
76
|
+
delete this.usage.contextPercent;
|
|
77
|
+
delete this.usage.credits;
|
|
78
|
+
delete this.usage.creditUnit;
|
|
58
79
|
}
|
|
59
80
|
/** Hand over the events buffered so far. */
|
|
60
81
|
takeEvents() {
|
|
@@ -134,7 +155,10 @@ export class KiroResponseAssembler {
|
|
|
134
155
|
break;
|
|
135
156
|
}
|
|
136
157
|
case "usage": {
|
|
137
|
-
|
|
158
|
+
// Every metadataEvent field is optional, so the service may split
|
|
159
|
+
// tokenUsage and stopReason/stopDetails across frames. Merge so a
|
|
160
|
+
// later partial frame cannot erase counts already received.
|
|
161
|
+
this.usageEvent = { ...(this.usageEvent ?? {}), ...event.data };
|
|
138
162
|
// The parsed event keeps only the fields this package understands.
|
|
139
163
|
// Log the frame verbatim so a field Kiro adds — cache counters above
|
|
140
164
|
// all — is visible without having to guess its name first.
|
|
@@ -142,6 +166,12 @@ export class KiroResponseAssembler {
|
|
|
142
166
|
debugLog("response.usageRaw", payload);
|
|
143
167
|
break;
|
|
144
168
|
}
|
|
169
|
+
case "metering": {
|
|
170
|
+
this.meteringEvent = event.data;
|
|
171
|
+
if (debugEnabled())
|
|
172
|
+
debugLog("stream.metering", [event.data]);
|
|
173
|
+
break;
|
|
174
|
+
}
|
|
145
175
|
// followupPrompt events are intentionally ignored
|
|
146
176
|
}
|
|
147
177
|
}
|
|
@@ -150,18 +180,45 @@ export class KiroResponseAssembler {
|
|
|
150
180
|
* text-dialect recovery and echo-stripping passes.
|
|
151
181
|
*/
|
|
152
182
|
endTurn() {
|
|
153
|
-
if (this.currentToolCall
|
|
154
|
-
this.
|
|
183
|
+
if (this.currentToolCall) {
|
|
184
|
+
if (this.emitToolCall(this.currentToolCall))
|
|
185
|
+
this.emittedToolCalls++;
|
|
186
|
+
else
|
|
187
|
+
this.droppedToolCalls.push(this.currentToolCall.name);
|
|
188
|
+
}
|
|
155
189
|
this.currentToolCall = null;
|
|
156
190
|
this.endNativeThinking();
|
|
157
191
|
if (this.thinkingParser) {
|
|
158
192
|
this.thinkingParser.finalize();
|
|
159
193
|
this.textBlockIndex = this.thinkingParser.getTextBlockIndex();
|
|
160
194
|
}
|
|
195
|
+
// Deliberately still gated on `sawAnyToolCalls`, so it does NOT run when a
|
|
196
|
+
// native call arrived and was dropped for unparseable arguments. Widening it
|
|
197
|
+
// to `emittedToolCalls === 0` would enable text recovery on exactly the path
|
|
198
|
+
// where `KiroModel.recoverTextToolCalls === false` says not to (Claude). The
|
|
199
|
+
// drop is reported instead via `droppedToolCalls`.
|
|
161
200
|
this.recoverTextToolCalls();
|
|
162
201
|
this.stripEchoNoise();
|
|
163
202
|
const responseText = this.textBlockIndex === null ? "" : this.blocks.getText(this.textBlockIndex);
|
|
164
203
|
const hasText = responseText.length > 0;
|
|
204
|
+
// Resolved here — before the caller's retry-exhaustion warnings — so those
|
|
205
|
+
// diagnostics can report the value actually assigned. It reads only
|
|
206
|
+
// `receivedContextUsage` and `emittedToolCalls`, both final at this point.
|
|
207
|
+
//
|
|
208
|
+
// Use `emittedToolCalls`, not the count seen on the wire: a turn whose calls
|
|
209
|
+
// were all dropped for unparseable input must not report `toolUse`, because
|
|
210
|
+
// an empty turn with a tool-use stop stalls an agent loop waiting for
|
|
211
|
+
// results that will never arrive.
|
|
212
|
+
//
|
|
213
|
+
// `length` is inferred, not reported: Kiro sends no stop reason, so a turn
|
|
214
|
+
// that produced no tool call and never carried a contextUsage frame is
|
|
215
|
+
// treated as cut short.
|
|
216
|
+
this.stopReason =
|
|
217
|
+
!this.receivedContextUsage && this.emittedToolCalls === 0
|
|
218
|
+
? "length"
|
|
219
|
+
: this.emittedToolCalls > 0
|
|
220
|
+
? "toolUse"
|
|
221
|
+
: "stop";
|
|
165
222
|
return {
|
|
166
223
|
responseText,
|
|
167
224
|
hasText,
|
|
@@ -169,6 +226,8 @@ export class KiroResponseAssembler {
|
|
|
169
226
|
emittedToolCalls: this.emittedToolCalls,
|
|
170
227
|
isEchoLoop: hasText && !this.sawAnyToolCalls && ECHO_NOISE_PATTERN.test(responseText),
|
|
171
228
|
isEmpty: !hasText && !this.sawAnyToolCalls,
|
|
229
|
+
stopReason: this.stopReason,
|
|
230
|
+
droppedToolCalls: this.droppedToolCalls,
|
|
172
231
|
};
|
|
173
232
|
}
|
|
174
233
|
/** Drop an echo the caller decided not to retry, so it is not read as a continuation signal. */
|
|
@@ -176,6 +235,10 @@ export class KiroResponseAssembler {
|
|
|
176
235
|
if (this.textBlockIndex !== null)
|
|
177
236
|
this.blocks.setText(this.textBlockIndex, "");
|
|
178
237
|
}
|
|
238
|
+
/** Kinds of the blocks this attempt produced, for the exhaustion diagnostic. */
|
|
239
|
+
contentKinds() {
|
|
240
|
+
return this.blocks.kinds();
|
|
241
|
+
}
|
|
179
242
|
/** Close the text block and settle usage and the stop reason. */
|
|
180
243
|
complete() {
|
|
181
244
|
if (this.textBlockIndex !== null)
|
|
@@ -185,43 +248,46 @@ export class KiroResponseAssembler {
|
|
|
185
248
|
// tiktoken estimate over everything the assistant emitted — text plus
|
|
186
249
|
// tool-call input JSON. Otherwise tool-call-only turns report 0 output
|
|
187
250
|
// tokens and break consumers that watch it.
|
|
251
|
+
// `KiroWireUsage.inputTokens` is `TokenUsage.uncachedInputTokens` — the
|
|
252
|
+
// input billed at full rate, NOT total input — with the cache counts as
|
|
253
|
+
// siblings, so the cache counts must land whenever `input` is taken from
|
|
254
|
+
// the wire; otherwise a cached turn reports a fraction of its real input.
|
|
188
255
|
if (this.usageEvent?.inputTokens !== undefined)
|
|
189
256
|
this.usage.input = this.usageEvent.inputTokens;
|
|
190
257
|
this.usage.output = this.usageEvent?.outputTokens ?? countTokens(this.totalContent);
|
|
191
|
-
|
|
258
|
+
// `TokenUsage.totalTokens` is required on the wire while the cache counts
|
|
259
|
+
// are optional, so the service's own total is the authoritative figure —
|
|
260
|
+
// recomputing from components silently under-reports whenever a component
|
|
261
|
+
// is omitted. Prefer it and fall back to the sum.
|
|
262
|
+
this.usage.totalTokens =
|
|
263
|
+
this.usageEvent?.totalTokens ??
|
|
264
|
+
this.usage.input +
|
|
265
|
+
(this.usageEvent?.cacheReadInputTokens ?? 0) +
|
|
266
|
+
(this.usageEvent?.cacheWriteInputTokens ?? 0) +
|
|
267
|
+
this.usage.output;
|
|
192
268
|
// Only set when reported: leaving these absent is what tells a host that
|
|
193
269
|
// Kiro said nothing about caching, rather than that nothing was cached.
|
|
194
|
-
if (this.usageEvent?.
|
|
195
|
-
this.usage.cacheRead = this.usageEvent.
|
|
196
|
-
if (this.usageEvent?.
|
|
197
|
-
this.usage.cacheWrite = this.usageEvent.
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
if (this.
|
|
201
|
-
this.usage.
|
|
270
|
+
if (this.usageEvent?.cacheReadInputTokens !== undefined)
|
|
271
|
+
this.usage.cacheRead = this.usageEvent.cacheReadInputTokens;
|
|
272
|
+
if (this.usageEvent?.cacheWriteInputTokens !== undefined)
|
|
273
|
+
this.usage.cacheWrite = this.usageEvent.cacheWriteInputTokens;
|
|
274
|
+
// The metering frame is the only usage figure Kiro actually sends: a
|
|
275
|
+
// credit count, not tokens.
|
|
276
|
+
if (this.meteringEvent?.credits !== undefined)
|
|
277
|
+
this.usage.credits = this.meteringEvent.credits;
|
|
278
|
+
if (this.meteringEvent?.unit !== undefined)
|
|
279
|
+
this.usage.creditUnit = this.meteringEvent.unit;
|
|
202
280
|
this.usage.cost = calculateKiroCost(this.model.cost, this.usage);
|
|
203
|
-
|
|
204
|
-
// were all dropped for unparseable input must not report `toolUse`, because
|
|
205
|
-
// an empty turn with a tool-use stop stalls an agent loop waiting for
|
|
206
|
-
// results that will never arrive.
|
|
207
|
-
//
|
|
208
|
-
// `length` is inferred, not reported: Kiro sends no stop reason, so a turn
|
|
209
|
-
// that produced no tool call and never carried a contextUsage frame is
|
|
210
|
-
// treated as cut short.
|
|
281
|
+
const stopReason = this.stopReason;
|
|
211
282
|
//
|
|
212
|
-
//
|
|
213
|
-
// 2026-09-06 across a short reply, a ~5000-character one,
|
|
214
|
-
// a model with no effort schema (claude-haiku-4.5) and a
|
|
215
|
-
// (glm-5): the frame arrived in all five, so its absence
|
|
216
|
-
// abnormal turn. `response.done` logs
|
|
217
|
-
// Kiro stops sending it — a false
|
|
218
|
-
//
|
|
219
|
-
// already finished.
|
|
220
|
-
const stopReason = !this.receivedContextUsage && this.emittedToolCalls === 0
|
|
221
|
-
? "length"
|
|
222
|
-
: this.emittedToolCalls > 0
|
|
223
|
-
? "toolUse"
|
|
224
|
-
: "stop";
|
|
283
|
+
// The `length` heuristic rests on contextUsage closing every complete
|
|
284
|
+
// response. Checked 2026-09-06 across a short reply, a ~5000-character one,
|
|
285
|
+
// a tool-call turn, a model with no effort schema (claude-haiku-4.5) and a
|
|
286
|
+
// non-Claude model (glm-5): the frame arrived in all five, so its absence
|
|
287
|
+
// really does mark an abnormal turn. `response.done` logs
|
|
288
|
+
// `receivedContextUsage` in case a later Kiro stops sending it — a false
|
|
289
|
+
// `length` is read by hosts as truncation and prepends TRUNCATION_NOTICE,
|
|
290
|
+
// asking the model to continue work it already finished.
|
|
225
291
|
debugLog("response.done", {
|
|
226
292
|
stopReason,
|
|
227
293
|
receivedContextUsage: this.receivedContextUsage,
|
|
@@ -230,7 +296,12 @@ export class KiroResponseAssembler {
|
|
|
230
296
|
textLen: this.textBlockIndex === null ? 0 : this.blocks.getText(this.textBlockIndex).length,
|
|
231
297
|
usage: this.usage,
|
|
232
298
|
});
|
|
233
|
-
return {
|
|
299
|
+
return {
|
|
300
|
+
stopReason,
|
|
301
|
+
usage: this.usage,
|
|
302
|
+
wireUsage: this.usageEvent,
|
|
303
|
+
metering: this.meteringEvent,
|
|
304
|
+
};
|
|
234
305
|
}
|
|
235
306
|
ensureNativeThinkingBlock() {
|
|
236
307
|
if (this.nativeThinkingBlockIndex === null)
|
|
@@ -255,6 +326,10 @@ export class KiroResponseAssembler {
|
|
|
255
326
|
args = JSON.parse(state.input);
|
|
256
327
|
}
|
|
257
328
|
catch (e) {
|
|
329
|
+
// Returning false drops the call: nothing is emitted for it, so the call
|
|
330
|
+
// the model made never reaches the agent. Callers record the name in
|
|
331
|
+
// `droppedToolCalls` so the turn can carry a diagnostic about it — a
|
|
332
|
+
// console warning is invisible to whoever reads the transcript.
|
|
258
333
|
console.warn(`[kiro-core] Failed to parse tool input for "${state.name}" (toolUseId: ${state.toolUseId}): ${formatSafeError(e)}. Raw input (${state.input.length} chars): ${redactSensitiveText(state.input.substring(0, 200))}`);
|
|
259
334
|
return false;
|
|
260
335
|
}
|
|
@@ -269,6 +344,8 @@ export class KiroResponseAssembler {
|
|
|
269
344
|
return;
|
|
270
345
|
if (this.emitToolCall(this.currentToolCall))
|
|
271
346
|
this.emittedToolCalls++;
|
|
347
|
+
else
|
|
348
|
+
this.droppedToolCalls.push(this.currentToolCall.name);
|
|
272
349
|
this.currentToolCall = null;
|
|
273
350
|
}
|
|
274
351
|
/**
|
|
@@ -311,6 +388,17 @@ export class KiroResponseAssembler {
|
|
|
311
388
|
if (this.emitToolCall({ toolUseId: call.toolUseId, name: call.name, input: JSON.stringify(call.arguments) })) {
|
|
312
389
|
this.emittedToolCalls++;
|
|
313
390
|
}
|
|
391
|
+
else {
|
|
392
|
+
// Unreachable as written, and kept deliberately. Both dialects hand
|
|
393
|
+
// over an in-memory object — bracket-tool-parser's is itself a
|
|
394
|
+
// successful `JSON.parse` result, invoke-tool-parser's is a record of
|
|
395
|
+
// raw parameter strings — so `JSON.stringify` of either always
|
|
396
|
+
// round-trips and `emitToolCall`'s only `false` return, a
|
|
397
|
+
// `JSON.parse` throw, cannot fire here. It stays so that a future
|
|
398
|
+
// parser change passing raw text through cannot silently reintroduce
|
|
399
|
+
// the very dropped-call blindness this change exists to remove.
|
|
400
|
+
this.droppedToolCalls.push(call.name);
|
|
401
|
+
}
|
|
314
402
|
}
|
|
315
403
|
}
|
|
316
404
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response-assembler.js","sourceRoot":"","sources":["../src/response-assembler.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,oFAAoF;AAEpF,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE1F,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,yEAAyE;AACzE,MAAM,kBAAkB,GAAG,yBAAyB,CAAC;AAyBrD;;;;;;GAMG;AACH,MAAM,OAAO,qBAAqB;IAuBb;IACA;IAvBF,OAAO,GAAsB,EAAE,CAAC;IAChC,MAAM,GAAG,IAAI,eAAe,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAClE,KAAK,GAAc;QAClC,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC;QACT,WAAW,EAAE,CAAC;QACd,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;KACrE,CAAC;IAEM,YAAY,GAAG,EAAE,CAAC;IAClB,eAAe,GAAG,EAAE,CAAC;IACrB,UAAU,GAAyB,IAAI,CAAC;IACxC,oBAAoB,GAAG,KAAK,CAAC;IAC7B,cAAc,GAA6B,IAAI,CAAC;IAChD,wBAAwB,GAAkB,IAAI,CAAC;IAC/C,mBAAmB,GAAG,KAAK,CAAC;IAC5B,cAAc,GAAkB,IAAI,CAAC;IACrC,gBAAgB,GAAG,CAAC,CAAC;IACrB,eAAe,GAAG,KAAK,CAAC;IACxB,eAAe,GAA6B,IAAI,CAAC;IAEzD,YACmB,KAAgB,EAChB,eAAwB;QADxB,UAAK,GAAL,KAAK,CAAW;QAChB,oBAAe,GAAf,eAAe,CAAS;IACxC,CAAC;IAEJ,6EAA6E;IAC7E,YAAY;QACV,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAClC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACvF,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;QACrC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED,4CAA4C;IAC5C,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;IAED,iEAAiE;IACjE,OAAO;QACL,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,KAAyB;QAC9B,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QACjC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC;gBAC9C,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBACtE,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,GAAG,CAAC;gBAChC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;gBACjC,MAAM;YACR,CAAC;YACD,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,IAAI,CAAC,eAAe;oBAAE,MAAM;gBACjC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzE,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,IAAI,CAAC;gBAChC,MAAM;YACR,CAAC;YACD,KAAK,mBAAmB,CAAC,CAAC,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,eAAe;oBAAE,MAAM;gBACjC,IAAI,CAAC,yBAAyB,EAAE,CAAC;gBACjC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACnC,MAAM;YACR,CAAC;YACD,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,yEAAyE;gBACzE,2CAA2C;gBAC3C,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,eAAe;oBAAE,MAAM;gBAC/C,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC;gBAClC,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,IAAI,CAAC;gBAChC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;oBACxB,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC/C,CAAC;qBAAM,CAAC;oBACN,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI;wBAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAC/E,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC1D,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;gBACtB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;gBAC5B,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,SAAS,KAAK,EAAE,CAAC,SAAS,EAAE,CAAC;oBAC7E,IAAI,CAAC,aAAa,EAAE,CAAC;oBACrB,IAAI,CAAC,eAAe,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;gBAC/E,CAAC;gBACD,IAAI,CAAC,eAAe,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC7C,IAAI,EAAE,CAAC,KAAK;oBAAE,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,KAAK,CAAC;gBAC5C,IAAI,EAAE,CAAC,IAAI;oBAAE,IAAI,CAAC,aAAa,EAAE,CAAC;gBAClC,MAAM;YACR,CAAC;YACD,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,IAAI,IAAI,CAAC,eAAe;oBAAE,IAAI,CAAC,eAAe,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC/E,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK;oBAAE,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC5D,MAAM;YACR,CAAC;YACD,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI;oBAAE,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC1C,MAAM;YACR,CAAC;YACD,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC;gBAC7B,mEAAmE;gBACnE,qEAAqE;gBACrE,2DAA2D;gBAC3D,IAAI,YAAY,EAAE;oBAAE,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;gBAC3D,MAAM;YACR,CAAC;YACD,kDAAkD;QACpD,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC;YAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC7F,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC;QAChE,CAAC;QAED,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAClG,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;QACxC,OAAO;YACL,YAAY;YACZ,OAAO;YACP,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,UAAU,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC;YACrF,OAAO,EAAE,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe;SAC3C,CAAC;IACJ,CAAC;IAED,gGAAgG;IAChG,SAAS;QACP,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI;YAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,iEAAiE;IACjE,QAAQ;QACN,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI;YAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAE3E,yEAAyE;QACzE,yEAAyE;QACzE,sEAAsE;QACtE,uEAAuE;QACvE,4CAA4C;QAC5C,IAAI,IAAI,CAAC,UAAU,EAAE,WAAW,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAC/F,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,IAAI,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpF,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAC9D,yEAAyE;QACzE,wEAAwE;QACxE,IAAI,IAAI,CAAC,UAAU,EAAE,eAAe,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;QAC3G,IAAI,IAAI,CAAC,UAAU,EAAE,gBAAgB,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC;QAC9G,IAAI,IAAI,CAAC,UAAU,EAAE,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QACzF,IAAI,IAAI,CAAC,UAAU,EAAE,UAAU,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAClG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAEjE,6EAA6E;QAC7E,4EAA4E;QAC5E,sEAAsE;QACtE,kCAAkC;QAClC,EAAE;QACF,2EAA2E;QAC3E,uEAAuE;QACvE,wBAAwB;QACxB,EAAE;QACF,sEAAsE;QACtE,4EAA4E;QAC5E,0EAA0E;QAC1E,6EAA6E;QAC7E,6EAA6E;QAC7E,0EAA0E;QAC1E,uEAAuE;QACvE,oBAAoB;QACpB,MAAM,UAAU,GACd,CAAC,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,gBAAgB,KAAK,CAAC;YACvD,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC;gBACzB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,MAAM,CAAC;QAEf,QAAQ,CAAC,eAAe,EAAE;YACxB,UAAU;YACV,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,OAAO,EAAE,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM;YAC3F,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;QAEH,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3C,CAAC;IAEO,yBAAyB;QAC/B,IAAI,IAAI,CAAC,wBAAwB,KAAK,IAAI;YAAE,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QACvG,OAAO,IAAI,CAAC,wBAAwB,CAAC;IACvC,CAAC;IAEO,iBAAiB,CAAC,SAAkB;QAC1C,IAAI,IAAI,CAAC,wBAAwB,KAAK,IAAI,IAAI,IAAI,CAAC,mBAAmB;YAAE,OAAO;QAC/E,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC;IACpE,CAAC;IAEO,YAAY,CAAC,KAAwB;QAC3C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YACxB,mEAAmE;YACnE,mEAAmE;YACnE,0EAA0E;YAC1E,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;QACrB,CAAC;QACD,IAAI,IAA6B,CAAC;QAClC,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAA4B,CAAC;QAC5D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CACV,+CAA+C,KAAK,CAAC,IAAI,iBAAiB,KAAK,CAAC,SAAS,MAAM,eAAe,CAAC,CAAC,CAAC,gBAAgB,KAAK,CAAC,KAAK,CAAC,MAAM,YAAY,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CACpN,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7F,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QACxG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5G,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO;QAClC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC;YAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACrE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACK,oBAAoB;QAC1B,IAAI,IAAI,CAAC,KAAK,CAAC,oBAAoB,KAAK,KAAK,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI;YAAE,OAAO;QAE9G,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACpD,MAAM,SAAS,GAAmF,EAAE,CAAC;QACrG,MAAM,aAAa,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,aAAa,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvC,IAAI,GAAG,aAAa,CAAC,WAAW,CAAC;YACjC,SAAS,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,YAAY,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,YAAY,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtC,IAAI,GAAG,YAAY,CAAC,WAAW,CAAC;YAChC,SAAS,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEnC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC7G,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,cAAc;QACpB,IAAI,IAAI,CAAC,gBAAgB,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI;YAAE,OAAO;QACxE,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC;YACtE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"response-assembler.js","sourceRoot":"","sources":["../src/response-assembler.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,oFAAoF;AAEpF,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE1F,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,yEAAyE;AACzE,MAAM,kBAAkB,GAAG,yBAAyB,CAAC;AAwCrD;;;;;;;GAOG;AACH,MAAM,OAAO,qBAAqB;IA0Bb;IACA;IA1BF,OAAO,GAAsB,EAAE,CAAC;IAChC,MAAM,GAAG,IAAI,eAAe,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAClE,KAAK,GAAc;QAClC,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC;QACT,WAAW,EAAE,CAAC;QACd,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;KACrE,CAAC;IAEM,YAAY,GAAG,EAAE,CAAC;IAClB,eAAe,GAAG,EAAE,CAAC;IACrB,UAAU,GAAyB,IAAI,CAAC;IACxC,aAAa,GAAoE,IAAI,CAAC;IACtF,oBAAoB,GAAG,KAAK,CAAC;IAC7B,cAAc,GAA6B,IAAI,CAAC;IAChD,wBAAwB,GAAkB,IAAI,CAAC;IAC/C,mBAAmB,GAAG,KAAK,CAAC;IAC5B,cAAc,GAAkB,IAAI,CAAC;IACrC,gBAAgB,GAAG,CAAC,CAAC;IACrB,eAAe,GAAG,KAAK,CAAC;IACxB,gBAAgB,GAAc,EAAE,CAAC;IACjC,eAAe,GAA6B,IAAI,CAAC;IACjD,UAAU,GAAkC,MAAM,CAAC;IAE3D,YACmB,KAAgB,EAChB,eAAwB;QADxB,UAAK,GAAL,KAAK,CAAW;QAChB,oBAAe,GAAf,eAAe,CAAS;IACxC,CAAC;IAEJ,4DAA4D;IAC5D,YAAY;QACV,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAClC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACvF,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;QACrC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,uEAAuE;QACvE,sEAAsE;QACtE,uCAAuC;QACvC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACjF,2EAA2E;QAC3E,0EAA0E;QAC1E,mBAAmB;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;QAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;QACjC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;IAC/B,CAAC;IAED,4CAA4C;IAC5C,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;IAED,iEAAiE;IACjE,OAAO;QACL,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,KAAyB;QAC9B,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QACjC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC;gBAC9C,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBACtE,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,GAAG,CAAC;gBAChC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;gBACjC,MAAM;YACR,CAAC;YACD,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,IAAI,CAAC,eAAe;oBAAE,MAAM;gBACjC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzE,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,IAAI,CAAC;gBAChC,MAAM;YACR,CAAC;YACD,KAAK,mBAAmB,CAAC,CAAC,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,eAAe;oBAAE,MAAM;gBACjC,IAAI,CAAC,yBAAyB,EAAE,CAAC;gBACjC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACnC,MAAM;YACR,CAAC;YACD,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,yEAAyE;gBACzE,2CAA2C;gBAC3C,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,eAAe;oBAAE,MAAM;gBAC/C,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC;gBAClC,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,IAAI,CAAC;gBAChC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;oBACxB,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC/C,CAAC;qBAAM,CAAC;oBACN,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI;wBAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAC/E,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC1D,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;gBACtB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;gBAC5B,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,SAAS,KAAK,EAAE,CAAC,SAAS,EAAE,CAAC;oBAC7E,IAAI,CAAC,aAAa,EAAE,CAAC;oBACrB,IAAI,CAAC,eAAe,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;gBAC/E,CAAC;gBACD,IAAI,CAAC,eAAe,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC7C,IAAI,EAAE,CAAC,KAAK;oBAAE,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,KAAK,CAAC;gBAC5C,IAAI,EAAE,CAAC,IAAI;oBAAE,IAAI,CAAC,aAAa,EAAE,CAAC;gBAClC,MAAM;YACR,CAAC;YACD,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,IAAI,IAAI,CAAC,eAAe;oBAAE,IAAI,CAAC,eAAe,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC/E,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK;oBAAE,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC5D,MAAM;YACR,CAAC;YACD,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI;oBAAE,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC1C,MAAM;YACR,CAAC;YACD,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,kEAAkE;gBAClE,kEAAkE;gBAClE,4DAA4D;gBAC5D,IAAI,CAAC,UAAU,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;gBAChE,mEAAmE;gBACnE,qEAAqE;gBACrE,2DAA2D;gBAC3D,IAAI,YAAY,EAAE;oBAAE,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;gBAC3D,MAAM;YACR,CAAC;YACD,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC;gBAChC,IAAI,YAAY,EAAE;oBAAE,QAAQ,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC9D,MAAM;YACR,CAAC;YACD,kDAAkD;QACpD,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC;gBAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;;gBAChE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC;QAChE,CAAC;QAED,2EAA2E;QAC3E,6EAA6E;QAC7E,6EAA6E;QAC7E,6EAA6E;QAC7E,mDAAmD;QACnD,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAClG,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;QACxC,2EAA2E;QAC3E,oEAAoE;QACpE,2EAA2E;QAC3E,EAAE;QACF,6EAA6E;QAC7E,4EAA4E;QAC5E,sEAAsE;QACtE,kCAAkC;QAClC,EAAE;QACF,2EAA2E;QAC3E,uEAAuE;QACvE,wBAAwB;QACxB,IAAI,CAAC,UAAU;YACb,CAAC,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,gBAAgB,KAAK,CAAC;gBACvD,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC;oBACzB,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,MAAM,CAAC;QACf,OAAO;YACL,YAAY;YACZ,OAAO;YACP,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,UAAU,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC;YACrF,OAAO,EAAE,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe;YAC1C,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;SACxC,CAAC;IACJ,CAAC;IAED,gGAAgG;IAChG,SAAS;QACP,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI;YAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,gFAAgF;IAChF,YAAY;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED,iEAAiE;IACjE,QAAQ;QACN,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI;YAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAE3E,yEAAyE;QACzE,yEAAyE;QACzE,sEAAsE;QACtE,uEAAuE;QACvE,4CAA4C;QAC5C,wEAAwE;QACxE,wEAAwE;QACxE,yEAAyE;QACzE,0EAA0E;QAC1E,IAAI,IAAI,CAAC,UAAU,EAAE,WAAW,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAC/F,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,IAAI,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpF,0EAA0E;QAC1E,yEAAyE;QACzE,0EAA0E;QAC1E,kDAAkD;QAClD,IAAI,CAAC,KAAK,CAAC,WAAW;YACpB,IAAI,CAAC,UAAU,EAAE,WAAW;gBAC5B,IAAI,CAAC,KAAK,CAAC,KAAK;oBACd,CAAC,IAAI,CAAC,UAAU,EAAE,oBAAoB,IAAI,CAAC,CAAC;oBAC5C,CAAC,IAAI,CAAC,UAAU,EAAE,qBAAqB,IAAI,CAAC,CAAC;oBAC7C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACtB,yEAAyE;QACzE,wEAAwE;QACxE,IAAI,IAAI,CAAC,UAAU,EAAE,oBAAoB,KAAK,SAAS;YACrD,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC;QAC9D,IAAI,IAAI,CAAC,UAAU,EAAE,qBAAqB,KAAK,SAAS;YACtD,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC;QAChE,qEAAqE;QACrE,4BAA4B;QAC5B,IAAI,IAAI,CAAC,aAAa,EAAE,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;QAC/F,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;QAC5F,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAEjE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,EAAE;QACF,sEAAsE;QACtE,4EAA4E;QAC5E,2EAA2E;QAC3E,0EAA0E;QAC1E,0DAA0D;QAC1D,yEAAyE;QACzE,0EAA0E;QAC1E,yDAAyD;QAEzD,QAAQ,CAAC,eAAe,EAAE;YACxB,UAAU;YACV,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,OAAO,EAAE,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM;YAC3F,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;QAEH,OAAO;YACL,UAAU;YACV,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,QAAQ,EAAE,IAAI,CAAC,aAAa;SAC7B,CAAC;IACJ,CAAC;IAEO,yBAAyB;QAC/B,IAAI,IAAI,CAAC,wBAAwB,KAAK,IAAI;YAAE,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QACvG,OAAO,IAAI,CAAC,wBAAwB,CAAC;IACvC,CAAC;IAEO,iBAAiB,CAAC,SAAkB;QAC1C,IAAI,IAAI,CAAC,wBAAwB,KAAK,IAAI,IAAI,IAAI,CAAC,mBAAmB;YAAE,OAAO;QAC/E,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC;IACpE,CAAC;IAEO,YAAY,CAAC,KAAwB;QAC3C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YACxB,mEAAmE;YACnE,mEAAmE;YACnE,0EAA0E;YAC1E,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;QACrB,CAAC;QACD,IAAI,IAA6B,CAAC;QAClC,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAA4B,CAAC;QAC5D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,yEAAyE;YACzE,qEAAqE;YACrE,qEAAqE;YACrE,gEAAgE;YAChE,OAAO,CAAC,IAAI,CACV,+CAA+C,KAAK,CAAC,IAAI,iBAAiB,KAAK,CAAC,SAAS,MAAM,eAAe,CAAC,CAAC,CAAC,gBAAgB,KAAK,CAAC,KAAK,CAAC,MAAM,YAAY,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CACpN,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7F,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QACxG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5G,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO;QAClC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC;YAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;;YAChE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACK,oBAAoB;QAC1B,IAAI,IAAI,CAAC,KAAK,CAAC,oBAAoB,KAAK,KAAK,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI;YAAE,OAAO;QAE9G,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACpD,MAAM,SAAS,GAAmF,EAAE,CAAC;QACrG,MAAM,aAAa,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,aAAa,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvC,IAAI,GAAG,aAAa,CAAC,WAAW,CAAC;YACjC,SAAS,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,YAAY,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,YAAY,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtC,IAAI,GAAG,YAAY,CAAC,WAAW,CAAC;YAChC,SAAS,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEnC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC7G,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,oEAAoE;gBACpE,+DAA+D;gBAC/D,sEAAsE;gBACtE,+DAA+D;gBAC/D,0DAA0D;gBAC1D,kEAAkE;gBAClE,qEAAqE;gBACrE,gEAAgE;gBAChE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,cAAc;QACpB,IAAI,IAAI,CAAC,gBAAgB,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI;YAAE,OAAO;QACxE,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC;YACtE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type KiroWireEvent } from "./event-parser.js";
|
|
1
|
+
import { type KiroErrorData, type KiroWireEvent } from "./event-parser.js";
|
|
2
2
|
/** Longest gap between two frames before the response is treated as stalled. */
|
|
3
3
|
export declare const IDLE_TIMEOUT = 300000;
|
|
4
4
|
/**
|
|
@@ -10,6 +10,13 @@ export interface KiroEventStreamOutcome {
|
|
|
10
10
|
idleTimedOut: boolean;
|
|
11
11
|
/** Message from a Smithy protocol error or a Kiro `error` frame. */
|
|
12
12
|
error: string | null;
|
|
13
|
+
/**
|
|
14
|
+
* Structured detail for the last modeled exception frame. The `error` string
|
|
15
|
+
* stays the retry/throw contract; this keeps `kind`, `reason`, and
|
|
16
|
+
* `retryAfterMilliseconds` addressable instead of only readable as prose
|
|
17
|
+
* inside that string.
|
|
18
|
+
*/
|
|
19
|
+
errorData?: KiroErrorData;
|
|
13
20
|
}
|
|
14
21
|
export interface KiroWireEventFrame {
|
|
15
22
|
event: KiroWireEvent;
|
|
@@ -19,6 +26,8 @@ export interface KiroWireEventFrame {
|
|
|
19
26
|
export interface KiroEventStreamOptions {
|
|
20
27
|
firstTokenTimeoutMs: number;
|
|
21
28
|
idleTimeoutMs?: number;
|
|
29
|
+
/** Caller abort — cancels the body read instead of waiting out the response. */
|
|
30
|
+
signal?: AbortSignal;
|
|
22
31
|
}
|
|
23
32
|
export interface KiroEventStreamReader {
|
|
24
33
|
frames: AsyncGenerator<KiroWireEventFrame>;
|
|
@@ -35,5 +44,11 @@ export interface KiroEventStreamReader {
|
|
|
35
44
|
* A Kiro `error` frame ends the stream and is not yielded — it carries no
|
|
36
45
|
* content, and every caller treats it as the same retryable failure as a
|
|
37
46
|
* protocol error.
|
|
47
|
+
*
|
|
48
|
+
* A caller abort throws out of `frames` instead of reporting through
|
|
49
|
+
* `outcome`: the interrupt is not a retryable stream condition, and surfacing
|
|
50
|
+
* it as one would burn the retry budget on a cancelled turn. The throw
|
|
51
|
+
* propagates through the consuming generator to the host adapter, which maps
|
|
52
|
+
* it to an `aborted` stop reason.
|
|
38
53
|
*/
|
|
39
54
|
export declare function readKiroEventStream(body: ReadableStream<Uint8Array>, options: KiroEventStreamOptions): KiroEventStreamReader;
|
package/dist/response-stream.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// ABOUTME: Owns framing and the stall timeouts; block assembly lives elsewhere.
|
|
3
3
|
import { UniversalEventStreamMarshaller } from "@smithy/core/event-streams";
|
|
4
4
|
import { debugEnabled, debugLog } from "./debug.js";
|
|
5
|
-
import { parseKiroEvent } from "./event-parser.js";
|
|
5
|
+
import { parseKiroEvent, parseKiroExceptionFrame } from "./event-parser.js";
|
|
6
6
|
/** Longest gap between two frames before the response is treated as stalled. */
|
|
7
7
|
export const IDLE_TIMEOUT = 300_000;
|
|
8
8
|
const eventStreamMarshaller = new UniversalEventStreamMarshaller({
|
|
@@ -19,11 +19,18 @@ const eventStreamMarshaller = new UniversalEventStreamMarshaller({
|
|
|
19
19
|
* A Kiro `error` frame ends the stream and is not yielded — it carries no
|
|
20
20
|
* content, and every caller treats it as the same retryable failure as a
|
|
21
21
|
* protocol error.
|
|
22
|
+
*
|
|
23
|
+
* A caller abort throws out of `frames` instead of reporting through
|
|
24
|
+
* `outcome`: the interrupt is not a retryable stream condition, and surfacing
|
|
25
|
+
* it as one would burn the retry budget on a cancelled turn. The throw
|
|
26
|
+
* propagates through the consuming generator to the host adapter, which maps
|
|
27
|
+
* it to an `aborted` stop reason.
|
|
22
28
|
*/
|
|
23
29
|
export function readKiroEventStream(body, options) {
|
|
24
30
|
const outcome = { firstTokenTimedOut: false, idleTimedOut: false, error: null };
|
|
25
31
|
const idleTimeoutMs = options.idleTimeoutMs ?? IDLE_TIMEOUT;
|
|
26
32
|
const bodyReader = body.getReader();
|
|
33
|
+
const callerSignal = options.signal;
|
|
27
34
|
async function* frames() {
|
|
28
35
|
let idleTimer = null;
|
|
29
36
|
const resetIdle = () => {
|
|
@@ -34,6 +41,17 @@ export function readKiroEventStream(body, options) {
|
|
|
34
41
|
void bodyReader.cancel().catch(() => { });
|
|
35
42
|
}, idleTimeoutMs);
|
|
36
43
|
};
|
|
44
|
+
// Cancel the body read as soon as the caller aborts (e.g. user presses
|
|
45
|
+
// Esc mid-stream). Without this, the read loop below keeps consuming the
|
|
46
|
+
// event stream until the server finishes the response, which makes an
|
|
47
|
+
// interrupt appear to hang for the remainder of the generation.
|
|
48
|
+
const onCallerStreamAbort = () => {
|
|
49
|
+
void bodyReader.cancel().catch(() => { });
|
|
50
|
+
};
|
|
51
|
+
if (callerSignal?.aborted)
|
|
52
|
+
onCallerStreamAbort();
|
|
53
|
+
else
|
|
54
|
+
callerSignal?.addEventListener("abort", onCallerStreamAbort, { once: true });
|
|
37
55
|
// Smithy's marshaller handles chunk reassembly, CRC validation, protocol
|
|
38
56
|
// error/exception detection, and payload deserialization.
|
|
39
57
|
const bodyIterable = {
|
|
@@ -57,6 +75,50 @@ export function readKiroEventStream(body, options) {
|
|
|
57
75
|
if (!entry)
|
|
58
76
|
throw new Error("Received an empty event stream message");
|
|
59
77
|
const [key, msg] = entry;
|
|
78
|
+
// The four error members of ChatResponseStream target `@error` shapes,
|
|
79
|
+
// so the service frames them as `:message-type: exception`. The
|
|
80
|
+
// marshaller keys those by `:exception-type` and throws whatever this
|
|
81
|
+
// callback returns, so returning the bare payload would discard the
|
|
82
|
+
// modeled class. Return an Error carrying the parsed detail instead.
|
|
83
|
+
if (msg.headers[":message-type"]?.value === "exception") {
|
|
84
|
+
// Parsed defensively, and BEFORE the shared parse below: an exception
|
|
85
|
+
// body that is empty or not JSON would otherwise throw a SyntaxError
|
|
86
|
+
// out of this deserializer, and the caller would report
|
|
87
|
+
// "Unexpected end of JSON input" with the modeled class gone — the
|
|
88
|
+
// exact loss this routing removes. The class lives in the header, so
|
|
89
|
+
// it survives a body we cannot read. The same-service client's own
|
|
90
|
+
// bridge takes this position too (sse-middleware.ts: "Non-JSON body:
|
|
91
|
+
// still throw a typed exception with a fallback message").
|
|
92
|
+
let parsedException = {};
|
|
93
|
+
try {
|
|
94
|
+
const decoded = JSON.parse(utf8Decoder.decode(msg.body));
|
|
95
|
+
if (decoded && typeof decoded === "object")
|
|
96
|
+
parsedException = decoded;
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
// Header-only classification below.
|
|
100
|
+
}
|
|
101
|
+
// An unmodeled member (a fifth error added server-side, or `$unknown`)
|
|
102
|
+
// still arrives keyed by `:exception-type`. Smithy's own fail-open path
|
|
103
|
+
// is unreachable here — it only triggers when the deserializer returns
|
|
104
|
+
// a `$unknown` property, which this one never does — so without a
|
|
105
|
+
// fallback the marshaller would throw the bare parsed body and the
|
|
106
|
+
// member name would be lost in exactly the way this routing exists to
|
|
107
|
+
// prevent. Synthesize the same typed shape with `kind: "unknown"`.
|
|
108
|
+
const data = parseKiroExceptionFrame(key, parsedException) ?? {
|
|
109
|
+
error: key,
|
|
110
|
+
kind: "unknown",
|
|
111
|
+
...(typeof parsedException.message === "string" ? { message: parsedException.message } : {}),
|
|
112
|
+
...(typeof parsedException.reason === "string" ? { reason: parsedException.reason } : {}),
|
|
113
|
+
...(typeof parsedException.retryAfterMilliseconds === "number"
|
|
114
|
+
? { retryAfterMilliseconds: parsedException.retryAfterMilliseconds }
|
|
115
|
+
: {}),
|
|
116
|
+
};
|
|
117
|
+
const error = new Error(data.message ? `${data.error}: ${data.message}` : data.error);
|
|
118
|
+
error.name = data.error;
|
|
119
|
+
error.kiroError = data;
|
|
120
|
+
return { [key]: error };
|
|
121
|
+
}
|
|
60
122
|
const parsed = JSON.parse(utf8Decoder.decode(msg.body));
|
|
61
123
|
return { [key]: parsed };
|
|
62
124
|
});
|
|
@@ -65,30 +127,54 @@ export function readKiroEventStream(body, options) {
|
|
|
65
127
|
const FIRST_TOKEN_SENTINEL = Symbol("firstTokenTimeout");
|
|
66
128
|
try {
|
|
67
129
|
while (true) {
|
|
130
|
+
if (callerSignal?.aborted) {
|
|
131
|
+
// Surface the abort instead of treating the cancelled read as a
|
|
132
|
+
// retryable stream error; the adapter maps this to a stopReason of
|
|
133
|
+
// "aborted".
|
|
134
|
+
throw callerSignal.reason ?? new Error("Request aborted");
|
|
135
|
+
}
|
|
68
136
|
let iterResult;
|
|
69
137
|
try {
|
|
70
138
|
if (!gotFirstToken) {
|
|
71
139
|
const readPromise = iterator.next();
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
140
|
+
let firstTokenTimer;
|
|
141
|
+
try {
|
|
142
|
+
const result = await Promise.race([
|
|
143
|
+
readPromise,
|
|
144
|
+
new Promise((resolve) => {
|
|
145
|
+
firstTokenTimer = setTimeout(() => resolve(FIRST_TOKEN_SENTINEL), options.firstTokenTimeoutMs);
|
|
146
|
+
}),
|
|
147
|
+
]);
|
|
148
|
+
if (result === FIRST_TOKEN_SENTINEL) {
|
|
149
|
+
readPromise.catch(() => { }); // suppress dangling rejection
|
|
150
|
+
void bodyReader.cancel().catch(() => { });
|
|
151
|
+
outcome.firstTokenTimedOut = true;
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
iterResult = result;
|
|
155
|
+
gotFirstToken = true;
|
|
156
|
+
resetIdle();
|
|
157
|
+
}
|
|
158
|
+
finally {
|
|
159
|
+
// The losing timeout branch of the race must not keep a ref'd
|
|
160
|
+
// timer alive until it fires: an uncleared 90 s handle holds the
|
|
161
|
+
// Node event loop open long after a print-mode caller has
|
|
162
|
+
// finished its turn (upstream #154).
|
|
163
|
+
if (firstTokenTimer !== undefined)
|
|
164
|
+
clearTimeout(firstTokenTimer);
|
|
81
165
|
}
|
|
82
|
-
iterResult = result;
|
|
83
|
-
gotFirstToken = true;
|
|
84
|
-
resetIdle();
|
|
85
166
|
}
|
|
86
167
|
else {
|
|
87
168
|
iterResult = await iterator.next();
|
|
88
169
|
}
|
|
89
170
|
}
|
|
90
171
|
catch (e) {
|
|
91
|
-
// Smithy throws on `:message-type` error/exception headers.
|
|
172
|
+
// Smithy throws on `:message-type` error/exception headers. A modeled
|
|
173
|
+
// exception frame arrives here as the Error built in the
|
|
174
|
+
// deserializer above, with its parsed detail attached.
|
|
175
|
+
const kiroError = e?.kiroError;
|
|
176
|
+
if (kiroError)
|
|
177
|
+
outcome.errorData = kiroError;
|
|
92
178
|
outcome.error =
|
|
93
179
|
e instanceof Error
|
|
94
180
|
? e.message
|
|
@@ -99,23 +185,36 @@ export function readKiroEventStream(body, options) {
|
|
|
99
185
|
if (done)
|
|
100
186
|
return;
|
|
101
187
|
resetIdle();
|
|
102
|
-
|
|
103
|
-
|
|
188
|
+
// The marshaller keys each frame by its modeled `ChatResponseStream`
|
|
189
|
+
// union member (from the `:event-type` header). Route on that key
|
|
190
|
+
// instead of guessing the member from which fields are populated.
|
|
191
|
+
const frameEntry = Object.entries(value)[0];
|
|
192
|
+
if (!frameEntry)
|
|
193
|
+
continue;
|
|
194
|
+
const [frameKey, framePayload] = frameEntry;
|
|
195
|
+
const event = parseKiroEvent(frameKey, (framePayload ?? {}));
|
|
104
196
|
if (!event)
|
|
105
197
|
continue;
|
|
198
|
+
if (event.type === "ignored") {
|
|
199
|
+
if (debugEnabled())
|
|
200
|
+
debugLog("stream.events.ignored", [event.data.key]);
|
|
201
|
+
continue;
|
|
202
|
+
}
|
|
106
203
|
if (debugEnabled())
|
|
107
204
|
debugLog("stream.events", [event]);
|
|
108
205
|
if (event.type === "error") {
|
|
109
206
|
outcome.error = event.data.message ? `${event.data.error}: ${event.data.message}` : event.data.error;
|
|
207
|
+
outcome.errorData = event.data;
|
|
110
208
|
void bodyReader.cancel().catch(() => { });
|
|
111
209
|
return;
|
|
112
210
|
}
|
|
113
|
-
yield { event, payload };
|
|
211
|
+
yield { event, payload: framePayload };
|
|
114
212
|
}
|
|
115
213
|
}
|
|
116
214
|
finally {
|
|
117
215
|
if (idleTimer)
|
|
118
216
|
clearTimeout(idleTimer);
|
|
217
|
+
callerSignal?.removeEventListener("abort", onCallerStreamAbort);
|
|
119
218
|
}
|
|
120
219
|
}
|
|
121
220
|
return { frames: frames(), outcome };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response-stream.js","sourceRoot":"","sources":["../src/response-stream.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,gFAAgF;AAEhF,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAE5E,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,
|
|
1
|
+
{"version":3,"file":"response-stream.js","sourceRoot":"","sources":["../src/response-stream.ts"],"names":[],"mappings":"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"}
|
package/dist/stream.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type KiroModel } from "./models.js";
|
|
2
2
|
import type { KiroEffort, KiroMessage, KiroStreamEvent, KiroTool } from "./types.js";
|
|
3
|
+
import { type KiroUsageTracking } from "./usage-tracking.js";
|
|
3
4
|
/** One model call, fully assembled by the host adapter. */
|
|
4
5
|
export interface KiroStreamRequest {
|
|
5
6
|
model: KiroModel;
|
|
@@ -21,6 +22,12 @@ export interface KiroStreamRequest {
|
|
|
21
22
|
* behaviour instead of retrying mid-response.
|
|
22
23
|
*/
|
|
23
24
|
canDiscardEmittedBlocks?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Opt-in usage estimates (credit→USD value, cache-read estimation). Absent
|
|
27
|
+
* means disabled; the core never reads a settings file on its own — the host
|
|
28
|
+
* resolves the policy and passes it here.
|
|
29
|
+
*/
|
|
30
|
+
usageTracking?: KiroUsageTracking;
|
|
24
31
|
}
|
|
25
32
|
/** Reset profile resolution state — exported for stream tests. */
|
|
26
33
|
export declare function resetProfileArnCache(resolved?: boolean): void;
|