@animalabs/membrane 0.1.17 → 0.1.19
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/context/index.d.ts +3 -1
- package/dist/context/index.d.ts.map +1 -1
- package/dist/context/index.js +2 -0
- package/dist/context/index.js.map +1 -1
- package/dist/context/process.d.ts +22 -1
- package/dist/context/process.d.ts.map +1 -1
- package/dist/context/process.js +18 -6
- package/dist/context/process.js.map +1 -1
- package/dist/context/types.d.ts +46 -0
- package/dist/context/types.d.ts.map +1 -1
- package/dist/context/types.js +1 -0
- package/dist/context/types.js.map +1 -1
- package/dist/membrane.d.ts.map +1 -1
- package/dist/membrane.js +29 -21
- package/dist/membrane.js.map +1 -1
- package/package.json +1 -1
- package/src/context/index.ts +16 -0
- package/src/context/process.ts +21 -8
- package/src/context/types.ts +61 -0
- package/src/membrane.ts +29 -21
package/dist/context/index.d.ts
CHANGED
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
* for efficient prompt caching with LLMs.
|
|
6
6
|
*/
|
|
7
7
|
export { processContext } from './process.js';
|
|
8
|
+
export { shouldRoll, truncateMessages, placeCacheMarkers, applyCacheMarkers, calculateCharacters, } from './process.js';
|
|
9
|
+
export type { RollDecision, MessageWithTokens, } from './process.js';
|
|
8
10
|
export { createInitialState, defaultTokenEstimator, DEFAULT_CONTEXT_CONFIG, } from './types.js';
|
|
9
|
-
export type { ContextInput, ContextOutput, ContextState, ContextConfig, ContextInfo, ContextStreamOptions, CacheMarker, } from './types.js';
|
|
11
|
+
export type { ContextInput, ContextOutput, ContextState, ContextConfig, ContextInfo, ContextStreamOptions, ContextToolCallback, ContextPreToolCallback, CacheMarker, } from './types.js';
|
|
10
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,YAAY,EACZ,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,aAAa,EACb,WAAW,EACX,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,WAAW,GACZ,MAAM,YAAY,CAAC"}
|
package/dist/context/index.js
CHANGED
|
@@ -5,5 +5,7 @@
|
|
|
5
5
|
* for efficient prompt caching with LLMs.
|
|
6
6
|
*/
|
|
7
7
|
export { processContext } from './process.js';
|
|
8
|
+
// Rolling helpers - can be used standalone by callers doing their own transforms
|
|
9
|
+
export { shouldRoll, truncateMessages, placeCacheMarkers, applyCacheMarkers, calculateCharacters, } from './process.js';
|
|
8
10
|
export { createInitialState, defaultTokenEstimator, DEFAULT_CONTEXT_CONFIG, } from './types.js';
|
|
9
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,iFAAiF;AACjF,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAOtB,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,YAAY,CAAC"}
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
* Context processing - main entry point
|
|
3
3
|
*/
|
|
4
4
|
import type { Membrane } from '../membrane.js';
|
|
5
|
-
import type {
|
|
5
|
+
import type { NormalizedMessage } from '../types/index.js';
|
|
6
|
+
import type { ContextInput, ContextState, ContextOutput, ContextConfig, ContextStreamOptions, CacheMarker } from './types.js';
|
|
6
7
|
/**
|
|
7
8
|
* Process context and stream LLM response.
|
|
8
9
|
*
|
|
@@ -19,4 +20,24 @@ import type { ContextInput, ContextState, ContextOutput, ContextStreamOptions }
|
|
|
19
20
|
* @returns Response, updated state, and context info
|
|
20
21
|
*/
|
|
21
22
|
export declare function processContext(membrane: Membrane, input: ContextInput, state: ContextState | null, options?: ContextStreamOptions): Promise<ContextOutput>;
|
|
23
|
+
export declare function calculateCharacters(messages: NormalizedMessage[]): number;
|
|
24
|
+
export interface RollDecision {
|
|
25
|
+
shouldRoll: boolean;
|
|
26
|
+
reason?: 'threshold' | 'grace_exceeded' | 'hard_limit';
|
|
27
|
+
targetTokens?: number;
|
|
28
|
+
targetMessages?: number;
|
|
29
|
+
enteredGrace: boolean;
|
|
30
|
+
}
|
|
31
|
+
export declare function shouldRoll(state: ContextState, messageCount: number, totalTokens: number, totalCharacters: number, config: ContextConfig): RollDecision;
|
|
32
|
+
export interface MessageWithTokens {
|
|
33
|
+
message: NormalizedMessage;
|
|
34
|
+
tokens: number;
|
|
35
|
+
id: string;
|
|
36
|
+
}
|
|
37
|
+
export declare function truncateMessages(messages: MessageWithTokens[], targetTokens?: number, targetMessages?: number, config?: ContextConfig): {
|
|
38
|
+
kept: MessageWithTokens[];
|
|
39
|
+
dropped: number;
|
|
40
|
+
};
|
|
41
|
+
export declare function placeCacheMarkers(messages: NormalizedMessage[], messageTokens: MessageWithTokens[], state: ContextState, didRoll: boolean, config: ContextConfig): CacheMarker[];
|
|
42
|
+
export declare function applyCacheMarkers(messages: NormalizedMessage[], cacheMarkers: CacheMarker[]): NormalizedMessage[];
|
|
22
43
|
//# sourceMappingURL=process.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../src/context/process.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../src/context/process.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAqB,MAAM,mBAAmB,CAAC;AAC9E,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,EAEb,aAAa,EACb,oBAAoB,EACpB,WAAW,EACZ,MAAM,YAAY,CAAC;AAWpB;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,YAAY,GAAG,IAAI,EAC1B,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,aAAa,CAAC,CAgIxB;AA2CD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAgBzE;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,WAAW,GAAG,gBAAgB,GAAG,YAAY,CAAC;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,UAAU,CACxB,KAAK,EAAE,YAAY,EACnB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,aAAa,GACpB,YAAY,CAiEd;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,YAAY,CAAC,EAAE,MAAM,EACrB,cAAc,CAAC,EAAE,MAAM,EACvB,MAAM,CAAC,EAAE,aAAa,GACrB;IAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CA+ChD;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,aAAa,EAAE,iBAAiB,EAAE,EAClC,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,aAAa,GACpB,WAAW,EAAE,CAqGf;AA4BD,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,YAAY,EAAE,WAAW,EAAE,GAC1B,iBAAiB,EAAE,CAmBrB"}
|
package/dist/context/process.js
CHANGED
|
@@ -75,11 +75,21 @@ export async function processContext(membrane, input, state, options) {
|
|
|
75
75
|
tools: input.tools,
|
|
76
76
|
config: input.config,
|
|
77
77
|
};
|
|
78
|
-
// Stream response
|
|
78
|
+
// Stream response - pass through all options
|
|
79
79
|
const response = await membrane.stream(request, {
|
|
80
80
|
onChunk: options?.onChunk,
|
|
81
81
|
signal: options?.signal,
|
|
82
|
+
onToolCalls: options?.onToolCalls,
|
|
83
|
+
onPreToolContent: options?.onPreToolContent,
|
|
84
|
+
onUsage: options?.onUsage,
|
|
85
|
+
maxToolDepth: options?.maxToolDepth,
|
|
82
86
|
});
|
|
87
|
+
// Determine cachedStartMessageId
|
|
88
|
+
// - On roll: use first message ID after truncation (anchor for stable fetches)
|
|
89
|
+
// - No roll: keep existing (maintains fetch window stability)
|
|
90
|
+
const cachedStartMessageId = didRoll
|
|
91
|
+
? (keptMessages.length > 0 ? getMessageId(keptMessages[0]) : undefined)
|
|
92
|
+
: currentState.cachedStartMessageId;
|
|
83
93
|
// Update state
|
|
84
94
|
const newState = {
|
|
85
95
|
cacheMarkers,
|
|
@@ -88,6 +98,7 @@ export async function processContext(membrane, input, state, options) {
|
|
|
88
98
|
tokensSinceRoll: didRoll ? keptTotalTokens : currentState.tokensSinceRoll + keptTotalTokens,
|
|
89
99
|
inGracePeriod: rollDecision.enteredGrace || (currentState.inGracePeriod && !didRoll),
|
|
90
100
|
lastRollTime: didRoll ? new Date().toISOString() : currentState.lastRollTime,
|
|
101
|
+
cachedStartMessageId,
|
|
91
102
|
};
|
|
92
103
|
// Build info
|
|
93
104
|
const info = {
|
|
@@ -99,6 +110,7 @@ export async function processContext(membrane, input, state, options) {
|
|
|
99
110
|
uncachedTokens,
|
|
100
111
|
totalTokens: keptTotalTokens,
|
|
101
112
|
hardLimitHit,
|
|
113
|
+
cachedStartMessageId,
|
|
102
114
|
};
|
|
103
115
|
return { response, state: newState, info };
|
|
104
116
|
}
|
|
@@ -134,7 +146,7 @@ function detectDiscontinuity(messages, state) {
|
|
|
134
146
|
// If less than 50% overlap, consider it a new conversation
|
|
135
147
|
return overlap.length < state.windowMessageIds.length * 0.5;
|
|
136
148
|
}
|
|
137
|
-
function calculateCharacters(messages) {
|
|
149
|
+
export function calculateCharacters(messages) {
|
|
138
150
|
let chars = 0;
|
|
139
151
|
for (const msg of messages) {
|
|
140
152
|
for (const block of msg.content) {
|
|
@@ -152,7 +164,7 @@ function calculateCharacters(messages) {
|
|
|
152
164
|
}
|
|
153
165
|
return chars;
|
|
154
166
|
}
|
|
155
|
-
function shouldRoll(state, messageCount, totalTokens, totalCharacters, config) {
|
|
167
|
+
export function shouldRoll(state, messageCount, totalTokens, totalCharacters, config) {
|
|
156
168
|
const { rolling, limits } = config;
|
|
157
169
|
const unit = rolling.unit ?? 'messages';
|
|
158
170
|
const threshold = rolling.threshold;
|
|
@@ -210,7 +222,7 @@ function shouldRoll(state, messageCount, totalTokens, totalCharacters, config) {
|
|
|
210
222
|
enteredGrace: false,
|
|
211
223
|
};
|
|
212
224
|
}
|
|
213
|
-
function truncateMessages(messages, targetTokens, targetMessages, config) {
|
|
225
|
+
export function truncateMessages(messages, targetTokens, targetMessages, config) {
|
|
214
226
|
// Truncate from the beginning, keeping most recent
|
|
215
227
|
if (targetMessages && messages.length > targetMessages) {
|
|
216
228
|
const startIdx = messages.length - targetMessages;
|
|
@@ -251,7 +263,7 @@ function truncateMessages(messages, targetTokens, targetMessages, config) {
|
|
|
251
263
|
}
|
|
252
264
|
return { kept: messages, dropped: 0 };
|
|
253
265
|
}
|
|
254
|
-
function placeCacheMarkers(messages, messageTokens, state, didRoll, config) {
|
|
266
|
+
export function placeCacheMarkers(messages, messageTokens, state, didRoll, config) {
|
|
255
267
|
const cacheConfig = config.cache ?? {};
|
|
256
268
|
if (cacheConfig.enabled === false) {
|
|
257
269
|
return [];
|
|
@@ -348,7 +360,7 @@ function findNearestUserMessage(messages, startIdx, messageTokens) {
|
|
|
348
360
|
}
|
|
349
361
|
return null;
|
|
350
362
|
}
|
|
351
|
-
function applyCacheMarkers(messages, cacheMarkers) {
|
|
363
|
+
export function applyCacheMarkers(messages, cacheMarkers) {
|
|
352
364
|
if (cacheMarkers.length === 0) {
|
|
353
365
|
return messages;
|
|
354
366
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/context/process.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/context/process.ts"],"names":[],"mappings":"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"}
|
package/dist/context/types.d.ts
CHANGED
|
@@ -58,6 +58,17 @@ export interface ContextState {
|
|
|
58
58
|
inGracePeriod: boolean;
|
|
59
59
|
/** Last roll timestamp (ISO string) */
|
|
60
60
|
lastRollTime?: string;
|
|
61
|
+
/**
|
|
62
|
+
* First message ID of the cached window.
|
|
63
|
+
*
|
|
64
|
+
* Use this to anchor your message fetch window - fetch from this message ID
|
|
65
|
+
* onwards to ensure cache stability. Only changes when a roll occurs.
|
|
66
|
+
*
|
|
67
|
+
* This helps callers maintain stable fetch windows:
|
|
68
|
+
* - Discord bots can use this as the `after` parameter when fetching messages
|
|
69
|
+
* - Other message sources can use it as a pagination cursor
|
|
70
|
+
*/
|
|
71
|
+
cachedStartMessageId?: string;
|
|
61
72
|
}
|
|
62
73
|
export interface ContextInput {
|
|
63
74
|
/** Conversation messages */
|
|
@@ -88,6 +99,11 @@ export interface ContextInfo {
|
|
|
88
99
|
totalTokens: number;
|
|
89
100
|
/** Whether hard limit was hit */
|
|
90
101
|
hardLimitHit: boolean;
|
|
102
|
+
/**
|
|
103
|
+
* First message ID of the cached window.
|
|
104
|
+
* Useful for callers to anchor their message fetch window.
|
|
105
|
+
*/
|
|
106
|
+
cachedStartMessageId?: string;
|
|
91
107
|
}
|
|
92
108
|
export interface ContextOutput {
|
|
93
109
|
/** The LLM response (may be aborted) */
|
|
@@ -97,11 +113,41 @@ export interface ContextOutput {
|
|
|
97
113
|
/** Info about what happened */
|
|
98
114
|
info: ContextInfo;
|
|
99
115
|
}
|
|
116
|
+
import type { ToolCall, ToolResult, ToolContext } from '../types/tools.js';
|
|
117
|
+
import type { BasicUsage } from '../types/response.js';
|
|
118
|
+
/**
|
|
119
|
+
* Callback for tool execution within processContext.
|
|
120
|
+
* Return tool results to continue the stream; throw to abort.
|
|
121
|
+
*/
|
|
122
|
+
export type ContextToolCallback = (calls: ToolCall[], context: ToolContext) => Promise<ToolResult[]>;
|
|
123
|
+
/**
|
|
124
|
+
* Callback for pre-tool content notification.
|
|
125
|
+
* Called with content that appeared before tool calls (useful for UI preview).
|
|
126
|
+
*/
|
|
127
|
+
export type ContextPreToolCallback = (content: string) => Promise<void> | void;
|
|
100
128
|
export interface ContextStreamOptions {
|
|
101
129
|
/** Callback for streaming chunks */
|
|
102
130
|
onChunk?: (chunk: string) => void;
|
|
103
131
|
/** Abort signal */
|
|
104
132
|
signal?: AbortSignal;
|
|
133
|
+
/**
|
|
134
|
+
* Called when tool calls are detected; return results to continue.
|
|
135
|
+
* If not provided, tool calls are not executed (stream stops at tool_use).
|
|
136
|
+
*/
|
|
137
|
+
onToolCalls?: ContextToolCallback;
|
|
138
|
+
/**
|
|
139
|
+
* Called with content before tool calls (for UI preview / progressive display).
|
|
140
|
+
*/
|
|
141
|
+
onPreToolContent?: ContextPreToolCallback;
|
|
142
|
+
/**
|
|
143
|
+
* Called with usage updates during streaming.
|
|
144
|
+
*/
|
|
145
|
+
onUsage?: (usage: BasicUsage) => void;
|
|
146
|
+
/**
|
|
147
|
+
* Maximum tool execution depth (default: 10).
|
|
148
|
+
* Prevents infinite tool loops.
|
|
149
|
+
*/
|
|
150
|
+
maxToolDepth?: number;
|
|
105
151
|
}
|
|
106
152
|
/**
|
|
107
153
|
* Create initial empty state
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/context/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAMlI,MAAM,WAAW,WAAW;IAC1B,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAElB,iCAAiC;IACjC,YAAY,EAAE,MAAM,CAAC;IAErB,wCAAwC;IACxC,aAAa,EAAE,MAAM,CAAC;CACvB;AAMD,MAAM,WAAW,aAAa;IAC5B,4BAA4B;IAC5B,OAAO,EAAE;QACP,qCAAqC;QACrC,SAAS,EAAE,MAAM,CAAC;QAElB,0CAA0C;QAC1C,MAAM,EAAE,MAAM,CAAC;QAEf,iDAAiD;QACjD,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf,4DAA4D;QAC5D,IAAI,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;KAC9B,CAAC;IAEF,oCAAoC;IACpC,MAAM,CAAC,EAAE;QACP,2CAA2C;QAC3C,aAAa,CAAC,EAAE,MAAM,CAAC;QAEvB,qBAAqB;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB,uBAAuB;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IAEF,qBAAqB;IACrB,KAAK,CAAC,EAAE;QACN,qCAAqC;QACrC,OAAO,CAAC,EAAE,OAAO,CAAC;QAElB,gEAAgE;QAChE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEvB,oDAAoD;QACpD,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB,qEAAqE;QACrE,kBAAkB,CAAC,EAAE,OAAO,CAAC;KAC9B,CAAC;IAEF,kDAAkD;IAClD,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,MAAM,CAAC;CACzD;AAMD,MAAM,WAAW,YAAY;IAC3B,4BAA4B;IAC5B,YAAY,EAAE,WAAW,EAAE,CAAC;IAE5B,+DAA+D;IAC/D,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAE3B,+BAA+B;IAC/B,iBAAiB,EAAE,MAAM,CAAC;IAE1B,6BAA6B;IAC7B,eAAe,EAAE,MAAM,CAAC;IAExB,oCAAoC;IACpC,aAAa,EAAE,OAAO,CAAC;IAEvB,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/context/types.ts"],"names":[],"mappings":"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"}
|
package/dist/context/types.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/context/types.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/context/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAwOH,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO;QACL,YAAY,EAAE,EAAE;QAChB,gBAAgB,EAAE,EAAE;QACpB,iBAAiB,EAAE,CAAC;QACpB,eAAe,EAAE,CAAC;QAClB,aAAa,EAAE,KAAK;QACpB,oBAAoB,EAAE,SAAS;KAChC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAA0B;IAC9D,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1B,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;QAC7B,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACxC,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;gBAC/C,CAAC,CAAC,KAAK,CAAC,OAAO;gBACf,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAClC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;QAC1B,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAClC,sDAAsD;YACtD,KAAK,IAAI,IAAI,CAAC,CAAC,WAAW;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAkB;IACnD,OAAO,EAAE;QACP,SAAS,EAAE,EAAE;QACb,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,UAAU;KACjB;IACD,MAAM,EAAE;QACN,aAAa,EAAE,MAAM;KACtB;IACD,KAAK,EAAE;QACL,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,CAAC;QACT,SAAS,EAAE,IAAI;QACf,kBAAkB,EAAE,IAAI;KACzB;CACF,CAAC"}
|
package/dist/membrane.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"membrane.d.ts","sourceRoot":"","sources":["../src/membrane.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EAEf,eAAe,EAEf,cAAc,EACd,aAAa,EACb,eAAe,EAYhB,MAAM,kBAAkB,CAAC;AA2B1B,qBAAa,QAAQ;IACnB,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,QAAQ,CAAC,CAAgB;IACjC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,MAAM,CAAiB;gBAG7B,OAAO,EAAE,eAAe,EACxB,MAAM,GAAE,cAAmB;IAY7B;;OAEG;IACG,QAAQ,CACZ,OAAO,EAAE,iBAAiB,EAC1B,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,kBAAkB,CAAC;IAuE9B;;;;;;;;;;;;;;;;;OAiBG;IACG,MAAM,CACV,OAAO,EAAE,iBAAiB,EAC1B,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,kBAAkB,GAAG,eAAe,CAAC;IAWhD;;OAEG;IACH,OAAO,CAAC,eAAe;IAiBvB;;;;;;OAMG;YACW,kBAAkB;
|
|
1
|
+
{"version":3,"file":"membrane.d.ts","sourceRoot":"","sources":["../src/membrane.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EAEf,eAAe,EAEf,cAAc,EACd,aAAa,EACb,eAAe,EAYhB,MAAM,kBAAkB,CAAC;AA2B1B,qBAAa,QAAQ;IACnB,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,QAAQ,CAAC,CAAgB;IACjC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,MAAM,CAAiB;gBAG7B,OAAO,EAAE,eAAe,EACxB,MAAM,GAAE,cAAmB;IAY7B;;OAEG;IACG,QAAQ,CACZ,OAAO,EAAE,iBAAiB,EAC1B,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,kBAAkB,CAAC;IAuE9B;;;;;;;;;;;;;;;;;OAiBG;IACG,MAAM,CACV,OAAO,EAAE,iBAAiB,EAC1B,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,kBAAkB,GAAG,eAAe,CAAC;IAWhD;;OAEG;IACH,OAAO,CAAC,eAAe;IAiBvB;;;;;;OAMG;YACW,kBAAkB;IAgahC;;OAEG;YACW,qBAAqB;IAyNnC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA+D9B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAqC5B,OAAO,CAAC,gBAAgB;YA4CV,UAAU;IAQxB,OAAO,CAAC,wBAAwB;IAuChC;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,kCAAkC;IAuD1C,OAAO,CAAC,iBAAiB;IA8FzB,OAAO,CAAC,kBAAkB;IA6E1B,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,KAAK;IAIb;;OAEG;IACH,OAAO,CAAC,YAAY;IAcpB;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAuB7B"}
|
package/dist/membrane.js
CHANGED
|
@@ -304,23 +304,27 @@ export class Membrane {
|
|
|
304
304
|
index: toolResultBlockIndex,
|
|
305
305
|
block: { type: 'tool_result' },
|
|
306
306
|
});
|
|
307
|
-
//
|
|
307
|
+
// Push XML to parser for prefill (internal)
|
|
308
308
|
parser.push(splitContent.beforeImageXml);
|
|
309
|
-
|
|
310
|
-
type: 'tool_result',
|
|
311
|
-
visible: false,
|
|
312
|
-
blockIndex: toolResultBlockIndex,
|
|
313
|
-
};
|
|
314
|
-
onChunk?.(splitContent.beforeImageXml, toolResultMeta);
|
|
315
|
-
// Emit block complete for each tool result
|
|
309
|
+
// Emit chunk and block complete for each tool result (without XML wrapper)
|
|
316
310
|
for (const result of results) {
|
|
311
|
+
const resultContent = typeof result.content === 'string'
|
|
312
|
+
? result.content
|
|
313
|
+
: JSON.stringify(result.content);
|
|
314
|
+
const toolResultMeta = {
|
|
315
|
+
type: 'tool_result',
|
|
316
|
+
visible: false,
|
|
317
|
+
blockIndex: parser.getBlockIndex(),
|
|
318
|
+
toolId: result.toolUseId,
|
|
319
|
+
};
|
|
320
|
+
onChunk?.(resultContent, toolResultMeta);
|
|
317
321
|
onBlock?.({
|
|
318
322
|
event: 'block_complete',
|
|
319
|
-
index:
|
|
323
|
+
index: parser.getBlockIndex(),
|
|
320
324
|
block: {
|
|
321
325
|
type: 'tool_result',
|
|
322
326
|
toolId: result.toolUseId,
|
|
323
|
-
content:
|
|
327
|
+
content: resultContent,
|
|
324
328
|
isError: result.isError,
|
|
325
329
|
},
|
|
326
330
|
});
|
|
@@ -334,9 +338,8 @@ export class Membrane {
|
|
|
334
338
|
// Build continuation with image injection
|
|
335
339
|
providerRequest = this.buildContinuationRequestWithImages(request, prefillResult, parser.getAccumulated(), splitContent.images, afterImageXml);
|
|
336
340
|
// Also add afterImageXml to accumulated for complete rawAssistantText
|
|
337
|
-
//
|
|
341
|
+
// Note: afterImageXml is internal prefill (closing tags), not emitted via onChunk
|
|
338
342
|
parser.push(afterImageXml);
|
|
339
|
-
onChunk?.(afterImageXml, toolResultMeta);
|
|
340
343
|
prefillResult.assistantPrefill = parser.getAccumulated();
|
|
341
344
|
// Reset parser state for new streaming iteration
|
|
342
345
|
parser.resetForNewIteration();
|
|
@@ -351,22 +354,27 @@ export class Membrane {
|
|
|
351
354
|
index: toolResultBlockIndex,
|
|
352
355
|
block: { type: 'tool_result' },
|
|
353
356
|
});
|
|
357
|
+
// Push XML to parser for prefill (internal), but emit clean content via onChunk
|
|
354
358
|
parser.push(resultsXml);
|
|
355
|
-
|
|
356
|
-
type: 'tool_result',
|
|
357
|
-
visible: false,
|
|
358
|
-
blockIndex: toolResultBlockIndex,
|
|
359
|
-
};
|
|
360
|
-
onChunk?.(resultsXml, toolResultMeta);
|
|
361
|
-
// Emit block complete for each tool result
|
|
359
|
+
// Emit chunk and block complete for each tool result (without XML wrapper)
|
|
362
360
|
for (const result of results) {
|
|
361
|
+
const resultContent = typeof result.content === 'string'
|
|
362
|
+
? result.content
|
|
363
|
+
: JSON.stringify(result.content);
|
|
364
|
+
const toolResultMeta = {
|
|
365
|
+
type: 'tool_result',
|
|
366
|
+
visible: false,
|
|
367
|
+
blockIndex: parser.getBlockIndex(),
|
|
368
|
+
toolId: result.toolUseId,
|
|
369
|
+
};
|
|
370
|
+
onChunk?.(resultContent, toolResultMeta);
|
|
363
371
|
onBlock?.({
|
|
364
372
|
event: 'block_complete',
|
|
365
|
-
index:
|
|
373
|
+
index: parser.getBlockIndex(),
|
|
366
374
|
block: {
|
|
367
375
|
type: 'tool_result',
|
|
368
376
|
toolId: result.toolUseId,
|
|
369
|
-
content:
|
|
377
|
+
content: resultContent,
|
|
370
378
|
isError: result.isError,
|
|
371
379
|
},
|
|
372
380
|
});
|
package/dist/membrane.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"membrane.js","sourceRoot":"","sources":["../src/membrane.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAwBH,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,aAAa,GAGd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,kBAAkB,GAEnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,0BAA0B,EAC1B,qBAAqB,EACrB,6BAA6B,GAE9B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAA2B,MAAM,0BAA0B,CAAC;AAGzF,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E,MAAM,OAAO,QAAQ;IACX,OAAO,CAAkB;IACzB,QAAQ,CAAiB;IACzB,WAAW,CAAc;IACzB,MAAM,CAAiB;IAE/B,YACE,OAAwB,EACxB,SAAyB,EAAE;QAE3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,oBAAoB,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAChE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,6EAA6E;IAC7E,WAAW;IACX,6EAA6E;IAE7E;;OAEG;IACH,KAAK,CAAC,QAAQ,CACZ,OAA0B,EAC1B,UAA2B,EAAE;QAE7B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,UAAmB,CAAC;QAExB,OAAO,IAAI,EAAE,CAAC;YACZ,QAAQ,EAAE,CAAC;YAEX,IAAI,CAAC;gBACH,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAE1E,0BAA0B;gBAC1B,IAAI,YAAY,GAAG,eAAe,CAAC;gBACnC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,EAAE,CAAC;oBACrC,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,eAAe,CAAC,IAAI,eAAe,CAAC;gBACpG,CAAC;gBAED,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE;oBACjE,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,SAAS,EAAE,OAAO,CAAC,SAAS;iBAC7B,CAAC,CAAC;gBAEH,+EAA+E;gBAC/E,UAAU,GAAG,gBAAgB,CAAC,UAAU,CAAC;gBAEzC,0DAA0D;gBAC1D,OAAO,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,CAAC;gBAEhC,sDAAsD;gBACtD,OAAO,CAAC,UAAU,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBAE3C,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CACrC,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,SAAS,EACT,QAAQ,EACR,UAAU,CACX,CAAC;gBAEF,0BAA0B;gBAC1B,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,EAAE,CAAC;oBACrC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBAC/E,CAAC;gBAED,OAAO,QAAQ,CAAC;YAElB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;gBACvC,SAAS,CAAC,UAAU,GAAG,UAAU,CAAC;gBAElC,IAAI,SAAS,CAAC,SAAS,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;oBAClE,gCAAgC;oBAChC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;wBAC/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;wBACtE,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;4BACzB,MAAM,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;wBACrC,CAAC;oBACH,CAAC;oBAED,oBAAoB;oBACpB,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;oBACjD,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBACxB,SAAS;gBACX,CAAC;gBAED,MAAM,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,MAAM,CACV,OAA0B,EAC1B,UAAyB,EAAE;QAE3B,sBAAsB;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAE/C,IAAI,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvE,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,OAA0B;QAChD,iCAAiC;QACjC,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YACpD,OAAO,OAAO,CAAC,QAAQ,CAAC;QAC1B,CAAC;QAED,sCAAsC;QACtC,yDAAyD;QACzD,oDAAoD;QACpD,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACvC,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,2CAA2C;QAC3C,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,kBAAkB,CAC9B,OAA0B,EAC1B,OAAsB;QAEtB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,EACJ,OAAO,EACP,oBAAoB,EACpB,WAAW,EACX,gBAAgB,EAChB,OAAO,EACP,OAAO,EACP,SAAS,EACT,UAAU,EACV,YAAY,GAAG,EAAE,EACjB,MAAM,GACP,GAAG,OAAO,CAAC;QAEZ,iDAAiD;QACjD,MAAM,MAAM,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC1C,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,UAAU,GAAe,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;QACjE,MAAM,aAAa,GAAmB,EAAE,CAAC;QACzC,IAAI,cAAc,GAAe,UAAU,CAAC;QAC5C,IAAI,UAAmB,CAAC;QACxB,IAAI,WAAoB,CAAC;QAEzB,wCAAwC;QACxC,MAAM,iBAAiB,GAAe,EAAE,CAAC;QACzC,MAAM,mBAAmB,GAAiB,EAAE,CAAC;QAE7C,wEAAwE;QACxE,IAAI,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAExE,yEAAyE;QACzE,iFAAiF;QACjF,mFAAmF;QACnF,gEAAgE;QAChE,IAAI,oBAAoB,GAAG,CAAC,CAAC;QAC7B,IAAI,gBAAgB,GAAoD,IAAI,CAAC;QAC7E,IAAI,aAAa,CAAC,gBAAgB,EAAE,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;YAC5C,oBAAoB,GAAG,aAAa,CAAC,gBAAgB,CAAC,MAAM,CAAC;YAC7D,8DAA8D;YAC9D,IAAI,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC;gBAC3B,MAAM,SAAS,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC;gBAC/C,IAAI,SAAS,KAAK,UAAU,IAAI,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,aAAa,EAAE,CAAC;oBACzF,gBAAgB,GAAG,SAAS,CAAC;gBAC/B,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,sBAAsB;YACtB,OAAO,SAAS,IAAI,YAAY,EAAE,CAAC;gBAEjC,0EAA0E;gBAC1E,IAAI,oBAAoB,GAAkB,IAAI,CAAC;gBAC/C,IAAI,oBAAoB,GAAkB,IAAI,CAAC;gBAE/C,oFAAoF;gBACpF,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC;gBAEtD,uBAAuB;gBACvB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CACxC,eAAe,EACf;oBACE,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;wBACjB,kEAAkE;wBAClE,IAAI,oBAAoB,EAAE,CAAC;4BACzB,OAAO;wBACT,CAAC;wBAED,4CAA4C;wBAC5C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;wBAEjD,uEAAuE;wBACvE,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;wBAC5C,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;wBAErD,KAAK,MAAM,OAAO,IAAI,aAAa,CAAC,aAAa,EAAE,CAAC;4BAClD,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;4BACxC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;gCACf,6CAA6C;gCAC7C,MAAM,WAAW,GAAG,cAAc,GAAG,GAAG,CAAC;gCACzC,oBAAoB,GAAG,OAAO,CAAC;gCAC/B,oBAAoB,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;gCAEzD,0DAA0D;gCAC1D,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;gCACzD,IAAI,WAAW,GAAG,cAAc,EAAE,CAAC;oCACjC,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;oCACtE,MAAM,IAAI,GAAc;wCACtB,IAAI,EAAE,MAAM,CAAC,mBAAmB,EAAE;wCAClC,OAAO,EAAE,MAAM,CAAC,mBAAmB,EAAE,KAAK,MAAM;wCAChD,UAAU,EAAE,CAAC,EAAE,cAAc;qCAC9B,CAAC;oCACF,OAAO,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;gCAClC,CAAC;gCACD,OAAO;4BACT,CAAC;wBACH,CAAC;wBAED,0DAA0D;wBAC1D,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;4BACjC,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gCACnC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;4BAC5B,CAAC;iCAAM,CAAC;gCACN,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;4BAC1C,CAAC;wBACH,CAAC;oBACH,CAAC;oBACD,cAAc,EAAE,oBAAoB;wBAClC,CAAC,CAAC,CAAC,KAAa,EAAE,KAAc,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,EAAE,KAAqB,CAAC;wBACvF,CAAC,CAAC,SAAS;iBACd,EACD,EAAE,MAAM,EAAE,CACX,CAAC;gBAEF,sEAAsE;gBACtE,IAAI,oBAAoB,IAAI,oBAAoB,KAAK,IAAI,EAAE,CAAC;oBAC1D,MAAM,CAAC,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;oBAClC,YAAY,CAAC,UAAU,GAAG,eAAe,CAAC;oBAC1C,YAAY,CAAC,YAAY,GAAG,oBAAoB,CAAC;gBACnD,CAAC;gBAED,2EAA2E;gBAC3E,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;gBAErC,0DAA0D;gBAC1D,SAAS,EAAE,CAAC,UAAU,CAAC,CAAC;gBAExB,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC;gBAE/B,sDAAsD;gBACtD,UAAU,EAAE,CAAC,WAAW,CAAC,CAAC;gBAE1B,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;gBAE7D,mBAAmB;gBACnB,UAAU,CAAC,WAAW,IAAI,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC;gBACzD,UAAU,CAAC,YAAY,IAAI,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC;gBAC3D,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC;gBAEtB,+DAA+D;gBAC/D,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;gBACnC,KAAK,MAAM,QAAQ,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;oBAC7C,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;wBACnC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAC5B,CAAC;gBACH,CAAC;gBAED,mCAAmC;gBACnC,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;gBAE5C,6CAA6C;gBAC7C,IAAI,WAAW,IAAI,YAAY,CAAC,YAAY,KAAK,mBAAmB,EAAE,CAAC;oBACrE,4EAA4E;oBAC5E,MAAM,QAAQ,GAAG,mBAAmB,CAAC;oBACrC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACtB,2EAA2E;oBAE3E,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;oBAEvD,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACtC,gCAAgC;wBAChC,IAAI,gBAAgB,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;4BACjD,MAAM,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;wBAC5C,CAAC;wBAED,uCAAuC;wBACvC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;4BAChC,MAAM,kBAAkB,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;4BAClD,OAAO,EAAE,CAAC;gCACR,KAAK,EAAE,aAAa;gCACpB,KAAK,EAAE,kBAAkB;gCACzB,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;6BAC7B,CAAC,CAAC;4BACH,OAAO,EAAE,CAAC;gCACR,KAAK,EAAE,gBAAgB;gCACvB,KAAK,EAAE,kBAAkB;gCACzB,KAAK,EAAE;oCACL,IAAI,EAAE,WAAW;oCACjB,MAAM,EAAE,IAAI,CAAC,EAAE;oCACf,QAAQ,EAAE,IAAI,CAAC,IAAI;oCACnB,KAAK,EAAE,IAAI,CAAC,KAAK;iCAClB;6BACF,CAAC,CAAC;4BACH,MAAM,CAAC,mBAAmB,EAAE,CAAC;wBAC/B,CAAC;wBAED,uBAAuB;wBACvB,iBAAiB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;wBAExC,gBAAgB;wBAChB,MAAM,OAAO,GAAgB;4BAC3B,OAAO,EAAE,MAAM,CAAC,SAAS;4BACzB,QAAQ,EAAE,MAAM,CAAC,UAAU;4BAC3B,KAAK,EAAE,SAAS;4BAChB,eAAe,EAAE,mBAAmB;4BACpC,WAAW,EAAE,MAAM,CAAC,cAAc,EAAE;yBACrC,CAAC;wBAEF,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;wBACzD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;4BAC5B,MAAM,IAAI,KAAK,CACb,uDAAuD,OAAO,OAAO,EAAE,CACxE,CAAC;wBACJ,CAAC;wBAED,yBAAyB;wBACzB,mBAAmB,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;wBAErC,kEAAkE;wBAClE,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;4BACnC,sCAAsC;4BACtC,MAAM,YAAY,GAAG,6BAA6B,CAAC,OAAO,CAAC,CAAC;4BAE5D,kDAAkD;4BAClD,MAAM,oBAAoB,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;4BACpD,OAAO,EAAE,CAAC;gCACR,KAAK,EAAE,aAAa;gCACpB,KAAK,EAAE,oBAAoB;gCAC3B,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;6BAC/B,CAAC,CAAC;4BAEH,wDAAwD;4BACxD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;4BACzC,MAAM,cAAc,GAAc;gCAChC,IAAI,EAAE,aAAa;gCACnB,OAAO,EAAE,KAAK;gCACd,UAAU,EAAE,oBAAoB;6BACjC,CAAC;4BACF,OAAO,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;4BAEvD,2CAA2C;4BAC3C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gCAC7B,OAAO,EAAE,CAAC;oCACR,KAAK,EAAE,gBAAgB;oCACvB,KAAK,EAAE,oBAAoB;oCAC3B,KAAK,EAAE;wCACL,IAAI,EAAE,aAAa;wCACnB,MAAM,EAAE,MAAM,CAAC,SAAS;wCACxB,OAAO,EAAE,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;wCAC7F,OAAO,EAAE,MAAM,CAAC,OAAO;qCACxB;iCACF,CAAC,CAAC;gCACH,MAAM,CAAC,mBAAmB,EAAE,CAAC;4BAC/B,CAAC;4BAED,gEAAgE;4BAChE,IAAI,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC;4BAC/C,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;gCACrC,aAAa,IAAI,cAAc,CAAC;4BAClC,CAAC;4BAED,0CAA0C;4BAC1C,eAAe,GAAG,IAAI,CAAC,kCAAkC,CACvD,OAAO,EACP,aAAa,EACb,MAAM,CAAC,cAAc,EAAE,EACvB,YAAY,CAAC,MAAM,EACnB,aAAa,CACd,CAAC;4BAEF,sEAAsE;4BACtE,8DAA8D;4BAC9D,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;4BAC3B,OAAO,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;4BACzC,aAAa,CAAC,gBAAgB,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;4BAEzD,iDAAiD;4BACjD,MAAM,CAAC,oBAAoB,EAAE,CAAC;wBAChC,CAAC;6BAAM,CAAC;4BACN,qDAAqD;4BACrD,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;4BAE9C,qCAAqC;4BACrC,MAAM,oBAAoB,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;4BACpD,OAAO,EAAE,CAAC;gCACR,KAAK,EAAE,aAAa;gCACpB,KAAK,EAAE,oBAAoB;gCAC3B,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;6BAC/B,CAAC,CAAC;4BAEH,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;4BACxB,MAAM,cAAc,GAAc;gCAChC,IAAI,EAAE,aAAa;gCACnB,OAAO,EAAE,KAAK;gCACd,UAAU,EAAE,oBAAoB;6BACjC,CAAC;4BACF,OAAO,EAAE,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;4BAEtC,2CAA2C;4BAC3C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gCAC7B,OAAO,EAAE,CAAC;oCACR,KAAK,EAAE,gBAAgB;oCACvB,KAAK,EAAE,oBAAoB;oCAC3B,KAAK,EAAE;wCACL,IAAI,EAAE,aAAa;wCACnB,MAAM,EAAE,MAAM,CAAC,SAAS;wCACxB,OAAO,EAAE,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;wCAC7F,OAAO,EAAE,MAAM,CAAC,OAAO;qCACxB;iCACF,CAAC,CAAC;gCACH,MAAM,CAAC,mBAAmB,EAAE,CAAC;4BAC/B,CAAC;4BAED,gEAAgE;4BAChE,iDAAiD;4BACjD,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;gCACrC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;4BAC9B,CAAC;4BAED,8BAA8B;4BAC9B,aAAa,CAAC,gBAAgB,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;4BACzD,eAAe,GAAG,IAAI,CAAC,wBAAwB,CAC7C,OAAO,EACP,aAAa,EACb,MAAM,CAAC,cAAc,EAAE,CACxB,CAAC;wBACJ,CAAC;wBAED,iDAAiD;wBACjD,MAAM,CAAC,oBAAoB,EAAE,CAAC;wBAC9B,SAAS,EAAE,CAAC;wBACZ,SAAS;oBACX,CAAC;gBACH,CAAC;gBAED,iDAAiD;gBACjD,4EAA4E;gBAC5E,6EAA6E;gBAC7E,IAAI,cAAc,KAAK,eAAe,IAAI,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC;oBACjE,kFAAkF;oBAClF,yDAAyD;oBACzD,IAAI,YAAY,CAAC,YAAY,EAAE,CAAC;wBAC9B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;wBACvC,MAAM,IAAI,GAAc;4BACtB,IAAI,EAAE,MAAM,CAAC,mBAAmB,EAAE;4BAClC,OAAO,EAAE,MAAM,CAAC,mBAAmB,EAAE,KAAK,MAAM;4BAChD,UAAU,EAAE,CAAC;yBACd,CAAC;wBACF,OAAO,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;oBAC7C,CAAC;oBAED,qEAAqE;oBACrE,SAAS,EAAE,CAAC,CAAC,8CAA8C;oBAC3D,IAAI,SAAS,GAAG,YAAY,EAAE,CAAC;wBAC7B,MAAM;oBACR,CAAC;oBACD,aAAa,CAAC,gBAAgB,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;oBACzD,eAAe,GAAG,IAAI,CAAC,wBAAwB,CAC7C,OAAO,EACP,aAAa,EACb,MAAM,CAAC,cAAc,EAAE,CACxB,CAAC;oBACF,iDAAiD;oBACjD,MAAM,CAAC,oBAAoB,EAAE,CAAC;oBAC9B,SAAS;gBACX,CAAC;gBAED,sDAAsD;gBACtD,MAAM;YACR,CAAC;YAED,0FAA0F;YAC1F,+DAA+D;YAC/D,MAAM,eAAe,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;YAChD,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YAE/D,OAAO,IAAI,CAAC,kBAAkB,CAC5B,UAAU,EACV,aAAa,EACb,cAAc,EACd,UAAU,EACV,OAAO,EACP,aAAa,EACb,SAAS,EACT,CAAC,EAAE,WAAW;YACd,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,CACjB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,kCAAkC;YAClC,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7B,mEAAmE;gBACnE,MAAM,eAAe,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;gBAChD,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;gBAE/D,OAAO,IAAI,CAAC,oBAAoB,CAC9B,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,mBAAmB,EACnB,MAAM,EACN,gBAAgB,CACjB,CAAC;YACJ,CAAC;YACD,gDAAgD;YAChD,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,qBAAqB,CACjC,OAA0B,EAC1B,OAAsB;QAEtB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,EACJ,OAAO,EACP,oBAAoB,EACpB,WAAW,EACX,gBAAgB,EAChB,OAAO,EACP,SAAS,EACT,UAAU,EACV,YAAY,GAAG,EAAE,EACjB,MAAM,GACP,GAAG,OAAO,CAAC;QAEZ,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,UAAU,GAAe,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;QACjE,IAAI,cAAc,GAAe,UAAU,CAAC;QAC5C,IAAI,UAAmB,CAAC;QACxB,IAAI,WAAoB,CAAC;QAEzB,sCAAsC;QACtC,IAAI,kBAAkB,GAAG,EAAE,CAAC;QAE5B,wCAAwC;QACxC,MAAM,iBAAiB,GAAe,EAAE,CAAC;QACzC,MAAM,mBAAmB,GAAiB,EAAE,CAAC;QAE7C,2DAA2D;QAC3D,IAAI,QAAQ,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,gBAAgB,GAAmB,EAAE,CAAC;QAE1C,IAAI,CAAC;YACH,sBAAsB;YACtB,OAAO,SAAS,IAAI,YAAY,EAAE,CAAC;gBACjC,2CAA2C;gBAC3C,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAEvE,uBAAuB;gBACvB,IAAI,eAAe,GAAG,EAAE,CAAC;gBACzB,IAAI,UAAU,GAAG,CAAC,CAAC;gBACnB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CACxC,eAAe,EACf;oBACE,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;wBACjB,eAAe,IAAI,KAAK,CAAC;wBACzB,kBAAkB,IAAI,KAAK,CAAC;wBAC5B,wDAAwD;wBACxD,gEAAgE;wBAChE,MAAM,IAAI,GAAc;4BACtB,IAAI,EAAE,MAAM;4BACZ,OAAO,EAAE,IAAI;4BACb,UAAU;yBACX,CAAC;wBACF,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBACzB,CAAC;oBACD,cAAc,EAAE,oBAAoB;wBAClC,CAAC,CAAC,CAAC,KAAa,EAAE,KAAc,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,EAAE,KAAqB,CAAC;wBACvF,CAAC,CAAC,SAAS;iBACd,EACD,EAAE,MAAM,EAAE,CACX,CAAC;gBAEF,2EAA2E;gBAC3E,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;gBAErC,0DAA0D;gBAC1D,SAAS,EAAE,CAAC,UAAU,CAAC,CAAC;gBAExB,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC;gBAE/B,sDAAsD;gBACtD,UAAU,EAAE,CAAC,WAAW,CAAC,CAAC;gBAE1B,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;gBAE7D,mBAAmB;gBACnB,UAAU,CAAC,WAAW,IAAI,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC;gBACzD,UAAU,CAAC,YAAY,IAAI,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC;gBAC3D,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC;gBAEtB,qCAAqC;gBACrC,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBACvE,gBAAgB,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;gBAEzC,4BAA4B;gBAC5B,MAAM,aAAa,GAAG,cAAc,CAAC,MAAM,CACzC,CAAC,CAAC,EAA4C,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CACvE,CAAC;gBAEF,IAAI,WAAW,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,KAAK,UAAU,EAAE,CAAC;oBAC7E,gCAAgC;oBAChC,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;oBACjE,IAAI,gBAAgB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC9C,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBAClE,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;4BACvB,MAAM,gBAAgB,CAAC,WAAW,CAAC,CAAC;wBACtC,CAAC;oBACH,CAAC;oBAED,mCAAmC;oBACnC,MAAM,SAAS,GAAe,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;wBACxD,EAAE,EAAE,KAAK,CAAC,EAAE;wBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,KAAK,EAAE,KAAK,CAAC,KAAgC;qBAC9C,CAAC,CAAC,CAAC;oBAEJ,mBAAmB;oBACnB,iBAAiB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;oBAErC,gBAAgB;oBAChB,MAAM,OAAO,GAAgB;wBAC3B,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;wBACtC,QAAQ,EAAE,eAAe;wBACzB,KAAK,EAAE,SAAS;wBAChB,eAAe,EAAE,mBAAmB;wBACpC,WAAW,EAAE,kBAAkB;qBAChC,CAAC;oBAEF,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;oBACtD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;wBAC5B,MAAM,IAAI,KAAK,CACb,uDAAuD,OAAO,OAAO,EAAE,CACxE,CAAC;oBACJ,CAAC;oBAED,qBAAqB;oBACrB,mBAAmB,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;oBAErC,qCAAqC;oBACrC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;wBAC7B,gBAAgB,CAAC,IAAI,CAAC;4BACpB,IAAI,EAAE,aAAa;4BACnB,SAAS,EAAE,MAAM,CAAC,SAAS;4BAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;4BACvB,OAAO,EAAE,MAAM,CAAC,OAAO;yBACxB,CAAC,CAAC;oBACL,CAAC;oBAED,yEAAyE;oBACzE,QAAQ,CAAC,IAAI,CAAC;wBACZ,WAAW,EAAE,QAAQ;wBACrB,OAAO,EAAE,cAAc;qBACxB,CAAC,CAAC;oBAEH,QAAQ,CAAC,IAAI,CAAC;wBACZ,WAAW,EAAE,MAAM;wBACnB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;4BACzB,IAAI,EAAE,aAAsB;4BAC5B,SAAS,EAAE,CAAC,CAAC,SAAS;4BACtB,OAAO,EAAE,CAAC,CAAC,OAAO;4BAClB,OAAO,EAAE,CAAC,CAAC,OAAO;yBACnB,CAAC,CAAC;qBACJ,CAAC,CAAC;oBAEH,SAAS,EAAE,CAAC;oBACZ,SAAS;gBACX,CAAC;gBAED,4BAA4B;gBAC5B,MAAM;YACR,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAE1C,OAAO;gBACL,OAAO,EAAE,gBAAgB;gBACzB,gBAAgB,EAAE,kBAAkB;gBACpC,SAAS,EAAE,iBAAiB;gBAC5B,WAAW,EAAE,mBAAmB;gBAChC,UAAU,EAAE,cAAc;gBAC1B,KAAK,EAAE,UAAU;gBACjB,OAAO,EAAE;oBACP,IAAI,EAAE;wBACJ,MAAM,EAAE,cAAc;wBACtB,YAAY,EAAE,cAAc,KAAK,YAAY;qBAC9C;oBACD,KAAK,EAAE,EAAE,GAAG,UAAU,EAAE;oBACxB,MAAM,EAAE;wBACN,eAAe,EAAE,UAAU;wBAC3B,QAAQ,EAAE,CAAC;qBACZ;oBACD,KAAK,EAAE;wBACL,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK;wBAC/B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK;wBAC5B,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;qBAC5B;oBACD,KAAK,EAAE;wBACL,gBAAgB,EAAE,CAAC;wBACnB,aAAa,EAAE,CAAC;wBAChB,UAAU,EAAE,CAAC;wBACb,QAAQ,EAAE,CAAC;qBACZ;iBACF;gBACD,GAAG,EAAE;oBACH,OAAO,EAAE,UAAU;oBACnB,QAAQ,EAAE,WAAW;iBACtB;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,kCAAkC;YAClC,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7B,OAAO,IAAI,CAAC,oBAAoB,CAC9B,kBAAkB,EAClB,UAAU,EACV,iBAAiB,EACjB,mBAAmB,EACnB,MAAM,CACP,CAAC;YACJ,CAAC;YACD,gDAAgD;YAChD,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,sBAAsB,CAC5B,OAA0B,EAC1B,QAAiC;QAEjC,sCAAsC;QACtC,MAAM,gBAAgB,GAAU,EAAE,CAAC;QAEnC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,KAAK,QAAQ,CAAC;YACjD,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;YAEhD,yBAAyB;YACzB,MAAM,OAAO,GAAU,EAAE,CAAC;YAC1B,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBAChC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC1B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBACnD,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACrC,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,UAAU;wBAChB,EAAE,EAAE,KAAK,CAAC,EAAE;wBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;qBACnB,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;oBACxC,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,aAAa;wBACnB,WAAW,EAAE,KAAK,CAAC,SAAS;wBAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;wBACtB,QAAQ,EAAE,KAAK,CAAC,OAAO;qBACxB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC3C,CAAC;QAED,mCAAmC;QACnC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,WAAW;SAC/B,CAAC,CAAC,CAAC;QAEJ,qDAAqD;QACrD,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO;YAC/C,CAAC,CAAC;gBACE,IAAI,EAAE,SAAkB;gBACxB,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,IAAI,IAAI;aAC5D;YACH,CAAC,CAAC,SAAS,CAAC;QAEd,OAAO;YACL,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK;YAC3B,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS;YACnC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW;YACvC,QAAQ,EAAE,gBAAgB;YAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK;YACL,QAAQ;YACR,KAAK,EAAE,OAAO,CAAC,cAAc;SAC9B,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,OAAgB;QAC3C,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAExB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAmB,EAAE,CAAC;YAClC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;gBAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACzB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBACjD,CAAC;qBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACpC,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,UAAU;wBAChB,EAAE,EAAE,IAAI,CAAC,EAAE;wBACX,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,KAAK,EAAE,IAAI,CAAC,KAAK;qBAClB,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACpC,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,UAAU;wBAChB,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,SAAS,EAAE,IAAI,CAAC,SAAS;qBAC1B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,6EAA6E;IAC7E,mBAAmB;IACnB,6EAA6E;IAErE,gBAAgB,CAAC,OAA0B;QAIjD,iCAAiC;QACjC,wEAAwE;QAExE,oEAAoE;QACpE,MAAM,uBAAuB,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;YAClE,CAAC,CAAC,OAAO,CAAC,aAAa;YACvB,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,IAAI,EAAE,CAAC;QAE3C,6EAA6E;QAC7E,MAAM,sBAAsB,GAAG,OAAO,CAAC,sBAAsB;eACxD,IAAI,CAAC,MAAM,CAAC,sBAAsB;eAClC,EAAE,CAAC;QAER,MAAM,aAAa,GAAG,kBAAkB,CAAC,OAAO,EAAE;YAChD,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,oBAAoB,IAAI,QAAQ;YAC3D,aAAa,EAAE,IAAI,EAAE,kCAAkC;YACvD,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,IAAI,KAAK;YAC1D,uBAAuB;YACvB,sBAAsB;SACvB,CAAC,CAAC;QAEH,oDAAoD;QACpD,oEAAoE;QACpE,MAAM,eAAe,GAAG;YACtB,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK;YAC3B,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS;YACnC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW;YACvC,QAAQ,EAAE,aAAa,CAAC,QAAQ;YAChC,oDAAoD;YACpD,6DAA6D;YAC7D,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;gBAC5C,CAAC,CAAC,aAAa,CAAC,aAAa;gBAC7B,CAAC,CAAC,SAAS;YACb,aAAa,EAAE,aAAa,CAAC,aAAa;YAC1C,KAAK,EAAE,OAAO,CAAC,cAAc;SAC9B,CAAC;QAEF,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC;IAC5C,CAAC;IAEO,KAAK,CAAC,UAAU,CACtB,OAAY,EACZ,SAAyG,EACzG,OAAiC;QAEjC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;IAEO,wBAAwB,CAC9B,eAAkC,EAClC,aAAqC,EACrC,WAAmB;QAEnB,yEAAyE;QACzE,MAAM,kBAAkB,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;QAEjD,uEAAuE;QACvE,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QAE7C,yDAAyD;QACzD,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;gBACtC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC;gBACjE,cAAc,GAAG,IAAI,CAAC;gBACtB,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,OAAO;YACL,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,KAAK;YACnC,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,SAAS;YAC3C,WAAW,EAAE,eAAe,CAAC,MAAM,CAAC,WAAW;YAC/C,QAAQ;YACR,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;gBAC5C,CAAC,CAAC,aAAa,CAAC,aAAa;gBAC7B,CAAC,CAAC,SAAS;YACb,aAAa,EAAE,aAAa,CAAC,aAAa;YAC1C,KAAK,EAAE,eAAe,CAAC,cAAc;SACtC,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACK,kCAAkC,CACxC,eAAkC,EAClC,aAAqC,EACrC,WAAmB,EACnB,MAA4B,EAC5B,aAAqB;QAErB,yEAAyE;QACzE,MAAM,kBAAkB,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;QAEjD,gEAAgE;QAChE,MAAM,QAAQ,GAAU,EAAE,CAAC;QAE3B,sDAAsD;QACtD,KAAK,MAAM,GAAG,IAAI,aAAa,CAAC,QAAQ,EAAE,CAAC;YACzC,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC7B,8CAA8C;gBAC9C,SAAS;YACX,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;QAC5B,CAAC;QAED,gEAAgE;QAChE,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,kBAAkB;SAC5B,CAAC,CAAC;QAEH,wCAAwC;QACxC,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;QAEH,8CAA8C;QAC9C,yEAAyE;QACzE,MAAM,eAAe,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC;QAChD,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,eAAe;SACzB,CAAC,CAAC;QAEH,OAAO;YACL,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,KAAK;YACnC,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,SAAS;YAC3C,WAAW,EAAE,eAAe,CAAC,MAAM,CAAC,WAAW;YAC/C,QAAQ;YACR,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;gBAC5C,CAAC,CAAC,aAAa,CAAC,aAAa;gBAC7B,CAAC,CAAC,SAAS;YACb,aAAa,EAAE,aAAa,CAAC,aAAa;YAC1C,KAAK,EAAE,eAAe,CAAC,cAAc;SACtC,CAAC;IACJ,CAAC;IAEO,iBAAiB,CACvB,gBAAqB,EACrB,OAA0B,EAC1B,aAAqC,EACrC,SAAiB,EACjB,QAAgB,EAChB,UAAoB;QAEpB,6BAA6B;QAC7B,MAAM,OAAO,GAAmB,EAAE,CAAC;QACnC,MAAM,SAAS,GAAe,EAAE,CAAC;QAEjC,sCAAsC;QACtC,IAAI,gBAAgB,GAAG,EAAE,CAAC;QAE1B,IAAI,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5C,KAAK,MAAM,KAAK,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC;gBAC7C,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC1B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;oBACjD,gBAAgB,IAAI,KAAK,CAAC,IAAI,CAAC;gBACjC,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACrC,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,UAAU;wBAChB,EAAE,EAAE,KAAK,CAAC,EAAE;wBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;qBACnB,CAAC,CAAC;oBACH,SAAS,CAAC,IAAI,CAAC;wBACb,EAAE,EAAE,KAAK,CAAC,EAAE;wBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;qBACnB,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACrC,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,UAAU;wBAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;wBACxB,SAAS,EAAE,KAAK,CAAC,SAAS;qBAC3B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,gBAAgB,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACxD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/D,gBAAgB,GAAG,gBAAgB,CAAC,OAAO,CAAC;QAC9C,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAC1C,MAAM,KAAK,GAAG;YACZ,WAAW,EAAE,gBAAgB,CAAC,KAAK,CAAC,WAAW;YAC/C,YAAY,EAAE,gBAAgB,CAAC,KAAK,CAAC,YAAY;SAClD,CAAC;QAEF,OAAO;YACL,OAAO;YACP,gBAAgB;YAChB,SAAS;YACT,WAAW,EAAE,EAAE,EAAE,mCAAmC;YACpD,UAAU;YACV,KAAK;YACL,OAAO,EAAE;gBACP,IAAI,EAAE;oBACJ,MAAM,EAAE,UAAU;oBAClB,iBAAiB,EAAE,gBAAgB,CAAC,YAAY;oBAChD,YAAY,EAAE,UAAU,KAAK,YAAY;iBAC1C;gBACD,KAAK,EAAE;oBACL,WAAW,EAAE,gBAAgB,CAAC,KAAK,CAAC,WAAW;oBAC/C,YAAY,EAAE,gBAAgB,CAAC,KAAK,CAAC,YAAY;oBACjD,mBAAmB,EAAE,gBAAgB,CAAC,KAAK,CAAC,mBAAmB;oBAC/D,eAAe,EAAE,gBAAgB,CAAC,KAAK,CAAC,eAAe;iBACxD;gBACD,MAAM,EAAE;oBACN,eAAe,EAAE,UAAU;oBAC3B,QAAQ;iBACT;gBACD,KAAK,EAAE;oBACL,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK;oBAC/B,MAAM,EAAE,gBAAgB,CAAC,KAAK;oBAC9B,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;iBAC5B;gBACD,KAAK,EAAE;oBACL,gBAAgB,EAAE,aAAa,CAAC,mBAAmB;oBACnD,aAAa,EAAE,gBAAgB,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC;oBAC9D,UAAU,EAAE,gBAAgB,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC;oBACvD,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,KAAK,CAAC;iBAC9D;aACF;YACD,GAAG,EAAE;gBACH,OAAO,EAAE,UAAU,IAAI,IAAI;gBAC3B,QAAQ,EAAE,gBAAgB,CAAC,GAAG;aAC/B;SACF,CAAC;IACJ,CAAC;IAEO,kBAAkB,CACxB,WAAmB,EACnB,aAA6B,EAC7B,UAAsB,EACtB,KAAiB,EACjB,OAA0B,EAC1B,aAAqC,EACrC,SAAiB,EACjB,QAAgB,EAChB,UAAmB,EACnB,WAAoB,EACpB,oBAAgC,EAAE,EAClC,sBAAoC,EAAE,EACtC,mBAAoE,IAAI;QAExE,wDAAwD;QACxD,iEAAiE;QACjE,IAAI,YAA4B,CAAC;QACjC,IAAI,SAAqB,CAAC;QAC1B,IAAI,WAAyB,CAAC;QAE9B,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,kDAAkD;YAClD,YAAY,GAAG,aAAa,CAAC;YAC7B,SAAS,GAAG,iBAAiB,CAAC;YAC9B,WAAW,GAAG,mBAAmB,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,gDAAgD;YAChD,+EAA+E;YAC/E,uEAAuE;YACvE,MAAM,YAAY,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YACzE,MAAM,MAAM,GAAG,0BAA0B,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;YACrE,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;YAC7B,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC;YAC/E,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,mBAAmB,CAAC;QACzF,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAE1C,OAAO;YACL,OAAO,EAAE,YAAY;YACrB,gBAAgB,EAAE,WAAW;YAC7B,SAAS;YACT,WAAW;YACX,UAAU;YACV,KAAK;YACL,OAAO,EAAE;gBACP,IAAI,EAAE;oBACJ,MAAM,EAAE,UAAU;oBAClB,YAAY,EAAE,UAAU,KAAK,YAAY;iBAC1C;gBACD,KAAK,EAAE;oBACL,GAAG,KAAK;iBACT;gBACD,MAAM,EAAE;oBACN,eAAe,EAAE,UAAU;oBAC3B,QAAQ;iBACT;gBACD,KAAK,EAAE;oBACL,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK;oBAC/B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,0BAA0B;oBACxD,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;iBAC5B;gBACD,KAAK,EAAE;oBACL,gBAAgB,EAAE,CAAC;oBACnB,aAAa,EAAE,CAAC;oBAChB,UAAU,EAAE,CAAC;oBACb,QAAQ,EAAE,CAAC;iBACZ;aACF;YACD,GAAG,EAAE;gBACH,OAAO,EAAE,UAAU;gBACnB,QAAQ,EAAE,WAAW;aACtB;SACF,CAAC;IACJ,CAAC;IAEO,aAAa,CAAC,cAAsB;QAC1C,QAAQ,cAAc,EAAE,CAAC;YACvB,KAAK,UAAU;gBACb,OAAO,UAAU,CAAC;YACpB,KAAK,YAAY;gBACf,OAAO,YAAY,CAAC;YACtB,KAAK,eAAe;gBAClB,OAAO,eAAe,CAAC;YACzB,KAAK,UAAU;gBACb,OAAO,UAAU,CAAC;YACpB;gBACE,OAAO,UAAU,CAAC;QACtB,CAAC;IACH,CAAC;IAEO,sBAAsB,CAAC,KAAU;QACvC,MAAM,SAAS,GAAG,KAAK,CAAC,eAAe,IAAI,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;QACrC,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAC1B,OAAO,SAAS,GAAG,KAAK,CAAC;IAC3B,CAAC;IAEO,mBAAmB,CAAC,OAAe;QACzC,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;QAC9E,MAAM,KAAK,GAAG,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;IAC1C,CAAC;IAEO,gBAAgB,CAAC,KAAc,EAAE,UAAmB;QAC1D,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACvC,SAAS,CAAC,UAAU,GAAG,UAAU,CAAC;QAClC,OAAO,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAEO,KAAK,CAAC,EAAU;QACtB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,KAAc;QACjC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,sBAAsB;YACtB,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;gBAAE,OAAO,IAAI,CAAC;YAC7C,sBAAsB;YACtB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAAE,OAAO,IAAI,CAAC;QACxF,CAAC;QACD,wCAAwC;QACxC,IAAI,OAAO,YAAY,KAAK,WAAW,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;YACzE,OAAO,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC;QACrC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,oBAAoB,CAC1B,WAAmB,EACnB,KAAiB,EACjB,SAAqB,EACrB,WAAyB,EACzB,MAAoC,EACpC,mBAAoE,IAAI;QAExE,iEAAiE;QACjE,iEAAiE;QACjE,MAAM,YAAY,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACzE,MAAM,EAAE,MAAM,EAAE,GAAG,0BAA0B,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAEzE,OAAO;YACL,OAAO,EAAE,IAAI;YACb,cAAc,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YACtD,YAAY,EAAE,KAAK;YACnB,MAAM;YACN,gBAAgB,EAAE,WAAW,IAAI,SAAS;YAC1C,SAAS,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YACvD,WAAW,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;SAC9D,CAAC;IACJ,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"membrane.js","sourceRoot":"","sources":["../src/membrane.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/context/index.ts
CHANGED
|
@@ -7,6 +7,20 @@
|
|
|
7
7
|
|
|
8
8
|
export { processContext } from './process.js';
|
|
9
9
|
|
|
10
|
+
// Rolling helpers - can be used standalone by callers doing their own transforms
|
|
11
|
+
export {
|
|
12
|
+
shouldRoll,
|
|
13
|
+
truncateMessages,
|
|
14
|
+
placeCacheMarkers,
|
|
15
|
+
applyCacheMarkers,
|
|
16
|
+
calculateCharacters,
|
|
17
|
+
} from './process.js';
|
|
18
|
+
|
|
19
|
+
export type {
|
|
20
|
+
RollDecision,
|
|
21
|
+
MessageWithTokens,
|
|
22
|
+
} from './process.js';
|
|
23
|
+
|
|
10
24
|
export {
|
|
11
25
|
createInitialState,
|
|
12
26
|
defaultTokenEstimator,
|
|
@@ -20,5 +34,7 @@ export type {
|
|
|
20
34
|
ContextConfig,
|
|
21
35
|
ContextInfo,
|
|
22
36
|
ContextStreamOptions,
|
|
37
|
+
ContextToolCallback,
|
|
38
|
+
ContextPreToolCallback,
|
|
23
39
|
CacheMarker,
|
|
24
40
|
} from './types.js';
|
package/src/context/process.ts
CHANGED
|
@@ -129,12 +129,23 @@ export async function processContext(
|
|
|
129
129
|
config: input.config,
|
|
130
130
|
};
|
|
131
131
|
|
|
132
|
-
// Stream response
|
|
132
|
+
// Stream response - pass through all options
|
|
133
133
|
const response = await membrane.stream(request, {
|
|
134
134
|
onChunk: options?.onChunk,
|
|
135
135
|
signal: options?.signal,
|
|
136
|
+
onToolCalls: options?.onToolCalls,
|
|
137
|
+
onPreToolContent: options?.onPreToolContent,
|
|
138
|
+
onUsage: options?.onUsage,
|
|
139
|
+
maxToolDepth: options?.maxToolDepth,
|
|
136
140
|
});
|
|
137
141
|
|
|
142
|
+
// Determine cachedStartMessageId
|
|
143
|
+
// - On roll: use first message ID after truncation (anchor for stable fetches)
|
|
144
|
+
// - No roll: keep existing (maintains fetch window stability)
|
|
145
|
+
const cachedStartMessageId = didRoll
|
|
146
|
+
? (keptMessages.length > 0 ? getMessageId(keptMessages[0]!) : undefined)
|
|
147
|
+
: currentState.cachedStartMessageId;
|
|
148
|
+
|
|
138
149
|
// Update state
|
|
139
150
|
const newState: ContextState = {
|
|
140
151
|
cacheMarkers,
|
|
@@ -143,6 +154,7 @@ export async function processContext(
|
|
|
143
154
|
tokensSinceRoll: didRoll ? keptTotalTokens : currentState.tokensSinceRoll + keptTotalTokens,
|
|
144
155
|
inGracePeriod: rollDecision.enteredGrace || (currentState.inGracePeriod && !didRoll),
|
|
145
156
|
lastRollTime: didRoll ? new Date().toISOString() : currentState.lastRollTime,
|
|
157
|
+
cachedStartMessageId,
|
|
146
158
|
};
|
|
147
159
|
|
|
148
160
|
// Build info
|
|
@@ -155,6 +167,7 @@ export async function processContext(
|
|
|
155
167
|
uncachedTokens,
|
|
156
168
|
totalTokens: keptTotalTokens,
|
|
157
169
|
hardLimitHit,
|
|
170
|
+
cachedStartMessageId,
|
|
158
171
|
};
|
|
159
172
|
|
|
160
173
|
return { response, state: newState, info };
|
|
@@ -201,7 +214,7 @@ function detectDiscontinuity(
|
|
|
201
214
|
return overlap.length < state.windowMessageIds.length * 0.5;
|
|
202
215
|
}
|
|
203
216
|
|
|
204
|
-
function calculateCharacters(messages: NormalizedMessage[]): number {
|
|
217
|
+
export function calculateCharacters(messages: NormalizedMessage[]): number {
|
|
205
218
|
let chars = 0;
|
|
206
219
|
for (const msg of messages) {
|
|
207
220
|
for (const block of msg.content) {
|
|
@@ -219,7 +232,7 @@ function calculateCharacters(messages: NormalizedMessage[]): number {
|
|
|
219
232
|
return chars;
|
|
220
233
|
}
|
|
221
234
|
|
|
222
|
-
interface RollDecision {
|
|
235
|
+
export interface RollDecision {
|
|
223
236
|
shouldRoll: boolean;
|
|
224
237
|
reason?: 'threshold' | 'grace_exceeded' | 'hard_limit';
|
|
225
238
|
targetTokens?: number;
|
|
@@ -227,7 +240,7 @@ interface RollDecision {
|
|
|
227
240
|
enteredGrace: boolean;
|
|
228
241
|
}
|
|
229
242
|
|
|
230
|
-
function shouldRoll(
|
|
243
|
+
export function shouldRoll(
|
|
231
244
|
state: ContextState,
|
|
232
245
|
messageCount: number,
|
|
233
246
|
totalTokens: number,
|
|
@@ -300,13 +313,13 @@ function shouldRoll(
|
|
|
300
313
|
};
|
|
301
314
|
}
|
|
302
315
|
|
|
303
|
-
interface MessageWithTokens {
|
|
316
|
+
export interface MessageWithTokens {
|
|
304
317
|
message: NormalizedMessage;
|
|
305
318
|
tokens: number;
|
|
306
319
|
id: string;
|
|
307
320
|
}
|
|
308
321
|
|
|
309
|
-
function truncateMessages(
|
|
322
|
+
export function truncateMessages(
|
|
310
323
|
messages: MessageWithTokens[],
|
|
311
324
|
targetTokens?: number,
|
|
312
325
|
targetMessages?: number,
|
|
@@ -360,7 +373,7 @@ function truncateMessages(
|
|
|
360
373
|
return { kept: messages, dropped: 0 };
|
|
361
374
|
}
|
|
362
375
|
|
|
363
|
-
function placeCacheMarkers(
|
|
376
|
+
export function placeCacheMarkers(
|
|
364
377
|
messages: NormalizedMessage[],
|
|
365
378
|
messageTokens: MessageWithTokens[],
|
|
366
379
|
state: ContextState,
|
|
@@ -495,7 +508,7 @@ function findNearestUserMessage(
|
|
|
495
508
|
return null;
|
|
496
509
|
}
|
|
497
510
|
|
|
498
|
-
function applyCacheMarkers(
|
|
511
|
+
export function applyCacheMarkers(
|
|
499
512
|
messages: NormalizedMessage[],
|
|
500
513
|
cacheMarkers: CacheMarker[]
|
|
501
514
|
): NormalizedMessage[] {
|
package/src/context/types.ts
CHANGED
|
@@ -92,6 +92,18 @@ export interface ContextState {
|
|
|
92
92
|
|
|
93
93
|
/** Last roll timestamp (ISO string) */
|
|
94
94
|
lastRollTime?: string;
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* First message ID of the cached window.
|
|
98
|
+
*
|
|
99
|
+
* Use this to anchor your message fetch window - fetch from this message ID
|
|
100
|
+
* onwards to ensure cache stability. Only changes when a roll occurs.
|
|
101
|
+
*
|
|
102
|
+
* This helps callers maintain stable fetch windows:
|
|
103
|
+
* - Discord bots can use this as the `after` parameter when fetching messages
|
|
104
|
+
* - Other message sources can use it as a pagination cursor
|
|
105
|
+
*/
|
|
106
|
+
cachedStartMessageId?: string;
|
|
95
107
|
}
|
|
96
108
|
|
|
97
109
|
// ============================================================================
|
|
@@ -143,6 +155,12 @@ export interface ContextInfo {
|
|
|
143
155
|
|
|
144
156
|
/** Whether hard limit was hit */
|
|
145
157
|
hardLimitHit: boolean;
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* First message ID of the cached window.
|
|
161
|
+
* Useful for callers to anchor their message fetch window.
|
|
162
|
+
*/
|
|
163
|
+
cachedStartMessageId?: string;
|
|
146
164
|
}
|
|
147
165
|
|
|
148
166
|
// ============================================================================
|
|
@@ -164,12 +182,54 @@ export interface ContextOutput {
|
|
|
164
182
|
// Stream Options
|
|
165
183
|
// ============================================================================
|
|
166
184
|
|
|
185
|
+
import type { ToolCall, ToolResult, ToolContext } from '../types/tools.js';
|
|
186
|
+
import type { BasicUsage } from '../types/response.js';
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* Callback for tool execution within processContext.
|
|
190
|
+
* Return tool results to continue the stream; throw to abort.
|
|
191
|
+
*/
|
|
192
|
+
export type ContextToolCallback = (
|
|
193
|
+
calls: ToolCall[],
|
|
194
|
+
context: ToolContext
|
|
195
|
+
) => Promise<ToolResult[]>;
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* Callback for pre-tool content notification.
|
|
199
|
+
* Called with content that appeared before tool calls (useful for UI preview).
|
|
200
|
+
*/
|
|
201
|
+
export type ContextPreToolCallback = (content: string) => Promise<void> | void;
|
|
202
|
+
|
|
167
203
|
export interface ContextStreamOptions {
|
|
168
204
|
/** Callback for streaming chunks */
|
|
169
205
|
onChunk?: (chunk: string) => void;
|
|
170
206
|
|
|
171
207
|
/** Abort signal */
|
|
172
208
|
signal?: AbortSignal;
|
|
209
|
+
|
|
210
|
+
// ---- Tool Support ----
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* Called when tool calls are detected; return results to continue.
|
|
214
|
+
* If not provided, tool calls are not executed (stream stops at tool_use).
|
|
215
|
+
*/
|
|
216
|
+
onToolCalls?: ContextToolCallback;
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
* Called with content before tool calls (for UI preview / progressive display).
|
|
220
|
+
*/
|
|
221
|
+
onPreToolContent?: ContextPreToolCallback;
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* Called with usage updates during streaming.
|
|
225
|
+
*/
|
|
226
|
+
onUsage?: (usage: BasicUsage) => void;
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* Maximum tool execution depth (default: 10).
|
|
230
|
+
* Prevents infinite tool loops.
|
|
231
|
+
*/
|
|
232
|
+
maxToolDepth?: number;
|
|
173
233
|
}
|
|
174
234
|
|
|
175
235
|
// ============================================================================
|
|
@@ -186,6 +246,7 @@ export function createInitialState(): ContextState {
|
|
|
186
246
|
messagesSinceRoll: 0,
|
|
187
247
|
tokensSinceRoll: 0,
|
|
188
248
|
inGracePeriod: false,
|
|
249
|
+
cachedStartMessageId: undefined,
|
|
189
250
|
};
|
|
190
251
|
}
|
|
191
252
|
|
package/src/membrane.ts
CHANGED
|
@@ -435,24 +435,28 @@ export class Membrane {
|
|
|
435
435
|
block: { type: 'tool_result' },
|
|
436
436
|
});
|
|
437
437
|
|
|
438
|
-
//
|
|
438
|
+
// Push XML to parser for prefill (internal)
|
|
439
439
|
parser.push(splitContent.beforeImageXml);
|
|
440
|
-
const toolResultMeta: ChunkMeta = {
|
|
441
|
-
type: 'tool_result',
|
|
442
|
-
visible: false,
|
|
443
|
-
blockIndex: toolResultBlockIndex,
|
|
444
|
-
};
|
|
445
|
-
onChunk?.(splitContent.beforeImageXml, toolResultMeta);
|
|
446
440
|
|
|
447
|
-
// Emit block complete for each tool result
|
|
441
|
+
// Emit chunk and block complete for each tool result (without XML wrapper)
|
|
448
442
|
for (const result of results) {
|
|
443
|
+
const resultContent = typeof result.content === 'string'
|
|
444
|
+
? result.content
|
|
445
|
+
: JSON.stringify(result.content);
|
|
446
|
+
const toolResultMeta: ChunkMeta = {
|
|
447
|
+
type: 'tool_result',
|
|
448
|
+
visible: false,
|
|
449
|
+
blockIndex: parser.getBlockIndex(),
|
|
450
|
+
toolId: result.toolUseId,
|
|
451
|
+
};
|
|
452
|
+
onChunk?.(resultContent, toolResultMeta);
|
|
449
453
|
onBlock?.({
|
|
450
454
|
event: 'block_complete',
|
|
451
|
-
index:
|
|
455
|
+
index: parser.getBlockIndex(),
|
|
452
456
|
block: {
|
|
453
457
|
type: 'tool_result',
|
|
454
458
|
toolId: result.toolUseId,
|
|
455
|
-
content:
|
|
459
|
+
content: resultContent,
|
|
456
460
|
isError: result.isError,
|
|
457
461
|
},
|
|
458
462
|
});
|
|
@@ -475,9 +479,8 @@ export class Membrane {
|
|
|
475
479
|
);
|
|
476
480
|
|
|
477
481
|
// Also add afterImageXml to accumulated for complete rawAssistantText
|
|
478
|
-
//
|
|
482
|
+
// Note: afterImageXml is internal prefill (closing tags), not emitted via onChunk
|
|
479
483
|
parser.push(afterImageXml);
|
|
480
|
-
onChunk?.(afterImageXml, toolResultMeta);
|
|
481
484
|
prefillResult.assistantPrefill = parser.getAccumulated();
|
|
482
485
|
|
|
483
486
|
// Reset parser state for new streaming iteration
|
|
@@ -494,23 +497,28 @@ export class Membrane {
|
|
|
494
497
|
block: { type: 'tool_result' },
|
|
495
498
|
});
|
|
496
499
|
|
|
500
|
+
// Push XML to parser for prefill (internal), but emit clean content via onChunk
|
|
497
501
|
parser.push(resultsXml);
|
|
498
|
-
const toolResultMeta: ChunkMeta = {
|
|
499
|
-
type: 'tool_result',
|
|
500
|
-
visible: false,
|
|
501
|
-
blockIndex: toolResultBlockIndex,
|
|
502
|
-
};
|
|
503
|
-
onChunk?.(resultsXml, toolResultMeta);
|
|
504
502
|
|
|
505
|
-
// Emit block complete for each tool result
|
|
503
|
+
// Emit chunk and block complete for each tool result (without XML wrapper)
|
|
506
504
|
for (const result of results) {
|
|
505
|
+
const resultContent = typeof result.content === 'string'
|
|
506
|
+
? result.content
|
|
507
|
+
: JSON.stringify(result.content);
|
|
508
|
+
const toolResultMeta: ChunkMeta = {
|
|
509
|
+
type: 'tool_result',
|
|
510
|
+
visible: false,
|
|
511
|
+
blockIndex: parser.getBlockIndex(),
|
|
512
|
+
toolId: result.toolUseId,
|
|
513
|
+
};
|
|
514
|
+
onChunk?.(resultContent, toolResultMeta);
|
|
507
515
|
onBlock?.({
|
|
508
516
|
event: 'block_complete',
|
|
509
|
-
index:
|
|
517
|
+
index: parser.getBlockIndex(),
|
|
510
518
|
block: {
|
|
511
519
|
type: 'tool_result',
|
|
512
520
|
toolId: result.toolUseId,
|
|
513
|
-
content:
|
|
521
|
+
content: resultContent,
|
|
514
522
|
isError: result.isError,
|
|
515
523
|
},
|
|
516
524
|
});
|