@animalabs/membrane 0.5.80 → 0.5.81
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 +1 -1
- package/dist/context/index.d.ts.map +1 -1
- package/dist/context/index.js +1 -1
- package/dist/context/index.js.map +1 -1
- package/dist/context/process.d.ts +3 -1
- package/dist/context/process.d.ts.map +1 -1
- package/dist/context/process.js +230 -49
- package/dist/context/process.js.map +1 -1
- package/dist/context/types.d.ts +30 -0
- package/dist/context/types.d.ts.map +1 -1
- package/dist/context/types.js +16 -0
- package/dist/context/types.js.map +1 -1
- package/dist/floating-cache-marker.test.js +21 -0
- package/dist/floating-cache-marker.test.js.map +1 -1
- package/dist/formatters/anthropic-xml.d.ts +2 -0
- package/dist/formatters/anthropic-xml.d.ts.map +1 -1
- package/dist/formatters/anthropic-xml.js +57 -19
- package/dist/formatters/anthropic-xml.js.map +1 -1
- package/dist/formatters/normalize-tool-pairs.d.ts +7 -0
- package/dist/formatters/normalize-tool-pairs.d.ts.map +1 -1
- package/dist/formatters/normalize-tool-pairs.js +45 -0
- package/dist/formatters/normalize-tool-pairs.js.map +1 -1
- package/dist/formatters/types.d.ts +29 -0
- package/dist/formatters/types.d.ts.map +1 -1
- package/dist/membrane.d.ts +137 -8
- package/dist/membrane.d.ts.map +1 -1
- package/dist/membrane.js +812 -310
- package/dist/membrane.js.map +1 -1
- package/dist/providers/anthropic.d.ts +26 -0
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +142 -25
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/bedrock.d.ts +8 -0
- package/dist/providers/bedrock.d.ts.map +1 -1
- package/dist/providers/bedrock.js +24 -1
- package/dist/providers/bedrock.js.map +1 -1
- package/dist/providers/gemini.d.ts +11 -0
- package/dist/providers/gemini.d.ts.map +1 -1
- package/dist/providers/gemini.js +104 -82
- package/dist/providers/gemini.js.map +1 -1
- package/dist/providers/mock.d.ts +2 -0
- package/dist/providers/mock.d.ts.map +1 -1
- package/dist/providers/mock.js +2 -0
- package/dist/providers/mock.js.map +1 -1
- package/dist/providers/openai-compatible.d.ts +7 -0
- package/dist/providers/openai-compatible.d.ts.map +1 -1
- package/dist/providers/openai-compatible.js +99 -48
- package/dist/providers/openai-compatible.js.map +1 -1
- package/dist/providers/openai-completions.d.ts +5 -0
- package/dist/providers/openai-completions.d.ts.map +1 -1
- package/dist/providers/openai-completions.js +107 -44
- package/dist/providers/openai-completions.js.map +1 -1
- package/dist/providers/openai-responses-api.d.ts +16 -0
- package/dist/providers/openai-responses-api.d.ts.map +1 -1
- package/dist/providers/openai-responses-api.js +38 -10
- package/dist/providers/openai-responses-api.js.map +1 -1
- package/dist/providers/openai-responses.d.ts +2 -0
- package/dist/providers/openai-responses.d.ts.map +1 -1
- package/dist/providers/openai-responses.js +8 -1
- package/dist/providers/openai-responses.js.map +1 -1
- package/dist/providers/openai.d.ts +7 -0
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +92 -44
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/openrouter.d.ts +9 -0
- package/dist/providers/openrouter.d.ts.map +1 -1
- package/dist/providers/openrouter.js +118 -62
- package/dist/providers/openrouter.js.map +1 -1
- package/dist/providers/utils.d.ts +74 -2
- package/dist/providers/utils.d.ts.map +1 -1
- package/dist/providers/utils.js +184 -3
- package/dist/providers/utils.js.map +1 -1
- package/dist/registry/default-pricing.d.ts +22 -0
- package/dist/registry/default-pricing.d.ts.map +1 -1
- package/dist/registry/default-pricing.js +162 -28
- package/dist/registry/default-pricing.js.map +1 -1
- package/dist/types/content.d.ts +13 -0
- package/dist/types/content.d.ts.map +1 -1
- package/dist/types/content.js.map +1 -1
- package/dist/types/errors.d.ts +15 -0
- package/dist/types/errors.d.ts.map +1 -1
- package/dist/types/errors.js +26 -0
- package/dist/types/errors.js.map +1 -1
- package/dist/types/index.d.ts +3 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/provider.d.ts +50 -0
- package/dist/types/provider.d.ts.map +1 -1
- package/dist/types/response.d.ts +85 -4
- package/dist/types/response.d.ts.map +1 -1
- package/dist/types/response.js.map +1 -1
- package/dist/types/streaming.d.ts +6 -1
- package/dist/types/streaming.d.ts.map +1 -1
- package/dist/utils/cache-marker-budget.d.ts +82 -0
- package/dist/utils/cache-marker-budget.d.ts.map +1 -0
- package/dist/utils/cache-marker-budget.js +189 -0
- package/dist/utils/cache-marker-budget.js.map +1 -0
- package/dist/utils/cost.d.ts +22 -0
- package/dist/utils/cost.d.ts.map +1 -1
- package/dist/utils/cost.js +55 -0
- package/dist/utils/cost.js.map +1 -1
- package/dist/utils/thinking-carriers.d.ts +80 -0
- package/dist/utils/thinking-carriers.d.ts.map +1 -0
- package/dist/utils/thinking-carriers.js +115 -0
- package/dist/utils/thinking-carriers.js.map +1 -0
- package/dist/utils/tool-parser.d.ts +24 -0
- package/dist/utils/tool-parser.d.ts.map +1 -1
- package/dist/utils/tool-parser.js +367 -161
- package/dist/utils/tool-parser.js.map +1 -1
- package/dist/utils/usage.d.ts +71 -0
- package/dist/utils/usage.d.ts.map +1 -0
- package/dist/utils/usage.js +161 -0
- package/dist/utils/usage.js.map +1 -0
- package/dist/yielding-stream.d.ts +8 -0
- package/dist/yielding-stream.d.ts.map +1 -1
- package/dist/yielding-stream.js +49 -3
- package/dist/yielding-stream.js.map +1 -1
- package/package.json +1 -1
- package/src/context/index.ts +1 -0
- package/src/context/process.ts +305 -59
- package/src/context/types.ts +38 -0
- package/src/floating-cache-marker.test.ts +24 -0
- package/src/formatters/anthropic-xml.ts +62 -20
- package/src/formatters/normalize-tool-pairs.ts +49 -0
- package/src/formatters/types.ts +32 -0
- package/src/membrane.ts +963 -313
- package/src/providers/anthropic.ts +161 -19
- package/src/providers/bedrock.ts +25 -1
- package/src/providers/gemini.ts +125 -87
- package/src/providers/mock.ts +3 -0
- package/src/providers/openai-compatible.ts +102 -45
- package/src/providers/openai-completions.ts +112 -46
- package/src/providers/openai-responses-api.ts +45 -15
- package/src/providers/openai-responses.ts +8 -1
- package/src/providers/openai.ts +95 -42
- package/src/providers/openrouter.ts +125 -63
- package/src/providers/utils.ts +227 -6
- package/src/registry/default-pricing.ts +165 -28
- package/src/types/content.ts +14 -0
- package/src/types/errors.ts +28 -0
- package/src/types/index.ts +6 -0
- package/src/types/provider.ts +55 -0
- package/src/types/response.ts +109 -8
- package/src/types/streaming.ts +8 -2
- package/src/utils/cache-marker-budget.ts +208 -0
- package/src/utils/cost.ts +64 -0
- package/src/utils/thinking-carriers.ts +125 -0
- package/src/utils/tool-parser.ts +473 -174
- package/src/utils/usage.ts +184 -0
- package/src/yielding-stream.ts +54 -3
package/dist/context/index.d.ts
CHANGED
|
@@ -7,6 +7,6 @@
|
|
|
7
7
|
export { processContext } from './process.js';
|
|
8
8
|
export { shouldRoll, truncateMessages, placeCacheMarkers, applyCacheMarkers, calculateCharacters, } from './process.js';
|
|
9
9
|
export type { RollDecision, MessageWithTokens, } from './process.js';
|
|
10
|
-
export { createInitialState, defaultTokenEstimator, DEFAULT_CONTEXT_CONFIG, } from './types.js';
|
|
10
|
+
export { createInitialState, defaultTokenEstimator, DEFAULT_CONTEXT_CONFIG, MembraneContextIdentityError, } from './types.js';
|
|
11
11
|
export type { ContextInput, ContextOutput, ContextState, ContextConfig, ContextInfo, ContextStreamOptions, ContextToolCallback, ContextPreToolCallback, CacheMarker, } from './types.js';
|
|
12
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;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,
|
|
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,EACtB,4BAA4B,GAC7B,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
|
@@ -7,5 +7,5 @@
|
|
|
7
7
|
export { processContext } from './process.js';
|
|
8
8
|
// Rolling helpers - can be used standalone by callers doing their own transforms
|
|
9
9
|
export { shouldRoll, truncateMessages, placeCacheMarkers, applyCacheMarkers, calculateCharacters, } from './process.js';
|
|
10
|
-
export { createInitialState, defaultTokenEstimator, DEFAULT_CONTEXT_CONFIG, } from './types.js';
|
|
10
|
+
export { createInitialState, defaultTokenEstimator, DEFAULT_CONTEXT_CONFIG, MembraneContextIdentityError, } from './types.js';
|
|
11
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,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,
|
|
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,EACtB,4BAA4B,GAC7B,MAAM,YAAY,CAAC"}
|
|
@@ -26,6 +26,8 @@ export interface RollDecision {
|
|
|
26
26
|
reason?: 'threshold' | 'grace_exceeded' | 'hard_limit';
|
|
27
27
|
targetTokens?: number;
|
|
28
28
|
targetMessages?: number;
|
|
29
|
+
/** Character budget the kept window must fit (set by the maxCharacters limit). */
|
|
30
|
+
targetCharacters?: number;
|
|
29
31
|
enteredGrace: boolean;
|
|
30
32
|
}
|
|
31
33
|
export declare function shouldRoll(state: ContextState, messageCount: number, totalTokens: number, totalCharacters: number, config: ContextConfig): RollDecision;
|
|
@@ -34,7 +36,7 @@ export interface MessageWithTokens {
|
|
|
34
36
|
tokens: number;
|
|
35
37
|
id: string;
|
|
36
38
|
}
|
|
37
|
-
export declare function truncateMessages(messages: MessageWithTokens[], targetTokens?: number, targetMessages?: number, config?: ContextConfig): {
|
|
39
|
+
export declare function truncateMessages(messages: MessageWithTokens[], targetTokens?: number, targetMessages?: number, config?: ContextConfig, targetCharacters?: number): {
|
|
38
40
|
kept: MessageWithTokens[];
|
|
39
41
|
dropped: number;
|
|
40
42
|
};
|
|
@@ -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;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;
|
|
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;AA6BpB;;;;;;;;;;;;;;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,CAkJxB;AAuGD,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,kFAAkF;IAClF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,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,CAuEd;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,EACtB,gBAAgB,CAAC,EAAE,MAAM,GACxB;IAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAkDhD;AA0GD,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,CAqHf;AA0CD,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,YAAY,EAAE,WAAW,EAAE,GAC1B,iBAAiB,EAAE,CAuBrB"}
|
package/dist/context/process.js
CHANGED
|
@@ -1,7 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Context processing - main entry point
|
|
3
3
|
*/
|
|
4
|
-
import { createInitialState, defaultTokenEstimator, DEFAULT_CONTEXT_CONFIG, } from './types.js';
|
|
4
|
+
import { createInitialState, defaultTokenEstimator, DEFAULT_CONTEXT_CONFIG, MembraneContextIdentityError, } from './types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Ceiling on markers this module places, regardless of `cache.points`.
|
|
7
|
+
*
|
|
8
|
+
* Anthropic accepts at most 4 `cache_control` blocks per request, and the
|
|
9
|
+
* request builders spend from that same budget (a system/tools fallback
|
|
10
|
+
* block, a `contextPrefix` block when that option is set, the floating
|
|
11
|
+
* tool-loop marker). Nothing reconciles those spends against
|
|
12
|
+
* `cache.points`, so the module keeps one slot free rather than risk a 400
|
|
13
|
+
* on the default XML path, which always marks the system block. A caller
|
|
14
|
+
* combining this module with MORE than one formatter spend (e.g. system
|
|
15
|
+
* prompt AND `contextPrefix`) can still exceed the provider budget: the
|
|
16
|
+
* module cannot see the formatter's choices from here, which is why the
|
|
17
|
+
* request-side wire clamp (the cache-marker budget PR) is the layer that
|
|
18
|
+
* makes the ceiling safe by construction rather than by convention.
|
|
19
|
+
*/
|
|
20
|
+
const MAX_MODULE_CACHE_POINTS = 3;
|
|
5
21
|
// ============================================================================
|
|
6
22
|
// Main Entry Point
|
|
7
23
|
// ============================================================================
|
|
@@ -24,6 +40,9 @@ export async function processContext(membrane, input, state, options) {
|
|
|
24
40
|
// Merge config with defaults
|
|
25
41
|
const contextConfig = mergeConfig(input.context);
|
|
26
42
|
const tokenEstimator = contextConfig.tokenEstimator ?? defaultTokenEstimator;
|
|
43
|
+
// Stable identity is a precondition, not a nicety: without it every call
|
|
44
|
+
// looks like a new conversation and rolling/caching silently stop working.
|
|
45
|
+
assertStableMessageIds(input.messages);
|
|
27
46
|
// Initialize or continue state
|
|
28
47
|
let currentState = state ?? createInitialState();
|
|
29
48
|
// Detect discontinuity (new conversation or branch switch)
|
|
@@ -47,10 +66,13 @@ export async function processContext(membrane, input, state, options) {
|
|
|
47
66
|
let didRoll = false;
|
|
48
67
|
let hardLimitHit = false;
|
|
49
68
|
if (rollDecision.shouldRoll) {
|
|
50
|
-
const truncateResult = truncateMessages(messageTokens, rollDecision.targetTokens, rollDecision.targetMessages, contextConfig);
|
|
69
|
+
const truncateResult = truncateMessages(messageTokens, rollDecision.targetTokens, rollDecision.targetMessages, contextConfig, rollDecision.targetCharacters);
|
|
51
70
|
keptMessages = truncateResult.kept.map(m => m.message);
|
|
52
71
|
messagesDropped = truncateResult.dropped;
|
|
53
|
-
|
|
72
|
+
// A roll that dropped nothing is not a roll: reporting it as one both
|
|
73
|
+
// lies to the caller and resets the roll counters every call, which is
|
|
74
|
+
// exactly when threshold rolling is needed most.
|
|
75
|
+
didRoll = messagesDropped > 0;
|
|
54
76
|
hardLimitHit = rollDecision.reason === 'hard_limit';
|
|
55
77
|
}
|
|
56
78
|
// Recalculate tokens after truncation
|
|
@@ -60,6 +82,10 @@ export async function processContext(membrane, input, state, options) {
|
|
|
60
82
|
id: getMessageId(m),
|
|
61
83
|
}));
|
|
62
84
|
const keptTotalTokens = keptTokens.reduce((sum, m) => sum + m.tokens, 0);
|
|
85
|
+
// Re-assert the hard limits against the truncated window. The window is
|
|
86
|
+
// floored at one message, so a single oversize message survives every
|
|
87
|
+
// truncation - the caller is told rather than handed an empty array.
|
|
88
|
+
const residualOverflow = measureResidualOverflow(keptMessages, keptTotalTokens, contextConfig);
|
|
63
89
|
// Place cache markers
|
|
64
90
|
const cacheMarkers = placeCacheMarkers(keptMessages, keptTokens, currentState, didRoll, contextConfig);
|
|
65
91
|
// Apply cache markers to messages
|
|
@@ -111,6 +137,7 @@ export async function processContext(membrane, input, state, options) {
|
|
|
111
137
|
totalTokens: keptTotalTokens,
|
|
112
138
|
hardLimitHit,
|
|
113
139
|
cachedStartMessageId,
|
|
140
|
+
...(residualOverflow ? { residualOverflow } : {}),
|
|
114
141
|
};
|
|
115
142
|
return { response, state: newState, info };
|
|
116
143
|
}
|
|
@@ -118,7 +145,13 @@ export async function processContext(membrane, input, state, options) {
|
|
|
118
145
|
// Helper Functions
|
|
119
146
|
// ============================================================================
|
|
120
147
|
function mergeConfig(config) {
|
|
148
|
+
// The caller's config is the base, so a top-level field is carried through
|
|
149
|
+
// by default and only the three sub-objects that have defaults are merged.
|
|
150
|
+
// Enumerating the survivors instead silently dropped assistantParticipant:
|
|
151
|
+
// every helper test passed a config straight in, so the loss was invisible
|
|
152
|
+
// until an end-to-end call classified the configured assistant as a user.
|
|
121
153
|
return {
|
|
154
|
+
...config,
|
|
122
155
|
rolling: {
|
|
123
156
|
...DEFAULT_CONTEXT_CONFIG.rolling,
|
|
124
157
|
...config.rolling,
|
|
@@ -131,12 +164,50 @@ function mergeConfig(config) {
|
|
|
131
164
|
...DEFAULT_CONTEXT_CONFIG.cache,
|
|
132
165
|
...config.cache,
|
|
133
166
|
},
|
|
134
|
-
tokenEstimator: config.tokenEstimator,
|
|
135
167
|
};
|
|
136
168
|
}
|
|
137
169
|
function getMessageId(message) {
|
|
138
170
|
return message.metadata?.sourceId ?? `msg-${Math.random().toString(36).slice(2)}`;
|
|
139
171
|
}
|
|
172
|
+
function assertStableMessageIds(messages) {
|
|
173
|
+
const messageIndicesWithoutSourceId = [];
|
|
174
|
+
messages.forEach((message, index) => {
|
|
175
|
+
const sourceId = message.metadata?.sourceId;
|
|
176
|
+
if (typeof sourceId !== 'string' || sourceId.length === 0) {
|
|
177
|
+
messageIndicesWithoutSourceId.push(index);
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
if (messageIndicesWithoutSourceId.length === 0) {
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
const shown = messageIndicesWithoutSourceId.slice(0, 10).join(', ');
|
|
184
|
+
const ellipsis = messageIndicesWithoutSourceId.length > 10 ? ', ...' : '';
|
|
185
|
+
throw new MembraneContextIdentityError(`processContext requires stable message identity: ` +
|
|
186
|
+
`${messageIndicesWithoutSourceId.length} of ${messages.length} messages carry no ` +
|
|
187
|
+
`metadata.sourceId (indices ${shown}${ellipsis}). Without it every call is detected ` +
|
|
188
|
+
`as a new conversation, so the roll threshold never accumulates, cache markers never ` +
|
|
189
|
+
`stay stable, and cachedStartMessageId is meaningless. Populate metadata.sourceId ` +
|
|
190
|
+
`with the originating system's message id.`, messageIndicesWithoutSourceId);
|
|
191
|
+
}
|
|
192
|
+
function measureResidualOverflow(keptMessages, keptTotalTokens, config) {
|
|
193
|
+
const limits = config.limits;
|
|
194
|
+
if (!limits) {
|
|
195
|
+
return undefined;
|
|
196
|
+
}
|
|
197
|
+
if (limits.maxCharacters) {
|
|
198
|
+
const keptCharacters = calculateCharacters(keptMessages);
|
|
199
|
+
if (keptCharacters > limits.maxCharacters) {
|
|
200
|
+
return { unit: 'characters', limit: limits.maxCharacters, actual: keptCharacters };
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
if (limits.maxTokens && keptTotalTokens > limits.maxTokens) {
|
|
204
|
+
return { unit: 'tokens', limit: limits.maxTokens, actual: keptTotalTokens };
|
|
205
|
+
}
|
|
206
|
+
if (limits.maxMessages && keptMessages.length > limits.maxMessages) {
|
|
207
|
+
return { unit: 'messages', limit: limits.maxMessages, actual: keptMessages.length };
|
|
208
|
+
}
|
|
209
|
+
return undefined;
|
|
210
|
+
}
|
|
140
211
|
function detectDiscontinuity(messages, state) {
|
|
141
212
|
if (state.windowMessageIds.length === 0) {
|
|
142
213
|
return false; // First call, not a discontinuity
|
|
@@ -177,6 +248,7 @@ export function shouldRoll(state, messageCount, totalTokens, totalCharacters, co
|
|
|
177
248
|
reason: 'hard_limit',
|
|
178
249
|
targetTokens: limits.maxTokens,
|
|
179
250
|
targetMessages: limits.maxMessages,
|
|
251
|
+
targetCharacters: limits.maxCharacters,
|
|
180
252
|
enteredGrace: false,
|
|
181
253
|
};
|
|
182
254
|
}
|
|
@@ -186,6 +258,7 @@ export function shouldRoll(state, messageCount, totalTokens, totalCharacters, co
|
|
|
186
258
|
reason: 'hard_limit',
|
|
187
259
|
targetTokens: limits.maxTokens,
|
|
188
260
|
targetMessages: limits.maxMessages,
|
|
261
|
+
targetCharacters: limits.maxCharacters,
|
|
189
262
|
enteredGrace: false,
|
|
190
263
|
};
|
|
191
264
|
}
|
|
@@ -195,11 +268,15 @@ export function shouldRoll(state, messageCount, totalTokens, totalCharacters, co
|
|
|
195
268
|
reason: 'hard_limit',
|
|
196
269
|
targetTokens: limits.maxTokens,
|
|
197
270
|
targetMessages: limits.maxMessages,
|
|
271
|
+
targetCharacters: limits.maxCharacters,
|
|
198
272
|
enteredGrace: false,
|
|
199
273
|
};
|
|
200
274
|
}
|
|
201
|
-
// Check rolling threshold
|
|
202
|
-
|
|
275
|
+
// Check rolling threshold against the MEASURED window. state.messagesSinceRoll
|
|
276
|
+
// counts calls (not messages) and state.tokensSinceRoll re-adds the whole
|
|
277
|
+
// window every call, so both cross any threshold as a function of call count
|
|
278
|
+
// alone; they stay as telemetry and no longer decide the roll.
|
|
279
|
+
const current = unit === 'messages' ? messageCount : totalTokens;
|
|
203
280
|
if (current >= maxThreshold) {
|
|
204
281
|
// Exceeded grace, must roll
|
|
205
282
|
return {
|
|
@@ -222,53 +299,132 @@ export function shouldRoll(state, messageCount, totalTokens, totalCharacters, co
|
|
|
222
299
|
enteredGrace: false,
|
|
223
300
|
};
|
|
224
301
|
}
|
|
225
|
-
export function truncateMessages(messages, targetTokens, targetMessages, config) {
|
|
226
|
-
// Truncate from the beginning, keeping most recent
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
302
|
+
export function truncateMessages(messages, targetTokens, targetMessages, config, targetCharacters) {
|
|
303
|
+
// Truncate from the beginning, keeping most recent.
|
|
304
|
+
// Every supplied target contributes a candidate start index; the window has
|
|
305
|
+
// to satisfy all of them, so the deepest cut wins.
|
|
306
|
+
if (messages.length === 0) {
|
|
307
|
+
return { kept: messages, dropped: 0 };
|
|
308
|
+
}
|
|
309
|
+
const candidateStartIndices = [];
|
|
310
|
+
if (targetMessages !== undefined && messages.length > targetMessages) {
|
|
311
|
+
candidateStartIndices.push(messages.length - targetMessages);
|
|
312
|
+
}
|
|
313
|
+
if (targetTokens !== undefined) {
|
|
314
|
+
candidateStartIndices.push(startIndexForBudget(messages, targetTokens, m => m.tokens));
|
|
315
|
+
}
|
|
316
|
+
if (targetCharacters !== undefined) {
|
|
317
|
+
candidateStartIndices.push(startIndexForBudget(messages, targetCharacters, m => calculateCharacters([m.message])));
|
|
233
318
|
}
|
|
234
|
-
if (
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
if (
|
|
241
|
-
|
|
242
|
-
break;
|
|
319
|
+
if (candidateStartIndices.length === 0) {
|
|
320
|
+
// Default: use buffer from config
|
|
321
|
+
const buffer = config?.rolling.buffer ?? 20;
|
|
322
|
+
const unit = config?.rolling.unit ?? 'messages';
|
|
323
|
+
if (unit === 'messages') {
|
|
324
|
+
const targetCount = Math.max(buffer * 2, messages.length - buffer);
|
|
325
|
+
if (messages.length > targetCount) {
|
|
326
|
+
candidateStartIndices.push(messages.length - targetCount);
|
|
243
327
|
}
|
|
244
|
-
startIdx = i;
|
|
245
328
|
}
|
|
246
|
-
return {
|
|
247
|
-
kept: messages.slice(startIdx),
|
|
248
|
-
dropped: startIdx,
|
|
249
|
-
};
|
|
250
329
|
}
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
330
|
+
if (candidateStartIndices.length === 0) {
|
|
331
|
+
return { kept: messages, dropped: 0 };
|
|
332
|
+
}
|
|
333
|
+
const startIdx = resolveWindowStart(messages, Math.max(0, ...candidateStartIndices));
|
|
334
|
+
return {
|
|
335
|
+
kept: messages.slice(startIdx),
|
|
336
|
+
dropped: startIdx,
|
|
337
|
+
};
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* Walk backwards from the newest message, accumulating cost, and return the
|
|
341
|
+
* first index whose window fits the budget. Mirrors the original token walk:
|
|
342
|
+
* the message that tips the sum past the budget is excluded.
|
|
343
|
+
*/
|
|
344
|
+
function startIndexForBudget(messages, budget, costOf) {
|
|
345
|
+
let sum = 0;
|
|
346
|
+
let startIdx = messages.length;
|
|
347
|
+
for (let i = messages.length - 1; i >= 0; i--) {
|
|
348
|
+
sum += costOf(messages[i]);
|
|
349
|
+
if (sum > budget) {
|
|
350
|
+
return i + 1;
|
|
351
|
+
}
|
|
352
|
+
startIdx = i;
|
|
353
|
+
}
|
|
354
|
+
return startIdx;
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Resolve the index the kept window actually starts at: the deepest cut at or
|
|
358
|
+
* after the requested one whose window is both non-empty and free of
|
|
359
|
+
* tool_results whose tool_use was dropped.
|
|
360
|
+
*
|
|
361
|
+
* Snapping forward and flooring at one message used to be two independent
|
|
362
|
+
* steps that could undo each other. When the newest message is a tool_result,
|
|
363
|
+
* the forward snap runs off the end of the array and the floor pulls the index
|
|
364
|
+
* back onto that same orphan - so truncating a final tool cycle to one message
|
|
365
|
+
* kept exactly the result, which is what the snap exists to prevent. A cut that
|
|
366
|
+
* cannot go forward now walks BACKWARD to the call that opens the final cycle:
|
|
367
|
+
* the window overshoots the requested size (reported through
|
|
368
|
+
* ContextInfo.residualOverflow) rather than shipping a corrupt transcript.
|
|
369
|
+
*/
|
|
370
|
+
function resolveWindowStart(messages, desiredStartIdx) {
|
|
371
|
+
const lastIdx = messages.length - 1;
|
|
372
|
+
if (desiredStartIdx <= 0) {
|
|
373
|
+
return 0;
|
|
374
|
+
}
|
|
375
|
+
const windowIsCleanAt = markCleanWindowStarts(messages);
|
|
376
|
+
const cappedStartIdx = Math.min(desiredStartIdx, lastIdx);
|
|
377
|
+
for (let idx = cappedStartIdx; idx <= lastIdx; idx++) {
|
|
378
|
+
if (windowIsCleanAt[idx]) {
|
|
379
|
+
return idx;
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
for (let idx = cappedStartIdx - 1; idx >= 0; idx--) {
|
|
383
|
+
if (windowIsCleanAt[idx]) {
|
|
384
|
+
return idx;
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
// No clean boundary exists anywhere: the supplied history itself carries a
|
|
388
|
+
// tool_result whose tool_use is not in it. Dropping messages cannot repair
|
|
389
|
+
// that, so the requested cut stands, floored at one message.
|
|
390
|
+
return cappedStartIdx;
|
|
391
|
+
}
|
|
392
|
+
/**
|
|
393
|
+
* For every index, whether the window starting there contains no tool_result
|
|
394
|
+
* whose tool_use is missing from it. A result is matched by a tool_use in an
|
|
395
|
+
* earlier message or earlier in its own message, so one backward pass carrying
|
|
396
|
+
* the still-unmatched result ids answers every index in linear time.
|
|
397
|
+
*/
|
|
398
|
+
function markCleanWindowStarts(messages) {
|
|
399
|
+
const windowIsCleanAt = new Array(messages.length).fill(false);
|
|
400
|
+
const resultIdsAwaitingTheirCall = new Set();
|
|
401
|
+
for (let idx = messages.length - 1; idx >= 0; idx--) {
|
|
402
|
+
const callIdsInMessage = new Set();
|
|
403
|
+
const resultIdsNeedingAnEarlierCall = [];
|
|
404
|
+
for (const block of messages[idx].message.content) {
|
|
405
|
+
if (block.type === 'tool_use') {
|
|
406
|
+
callIdsInMessage.add(block.id);
|
|
407
|
+
}
|
|
408
|
+
else if (block.type === 'tool_result' && !callIdsInMessage.has(block.toolUseId)) {
|
|
409
|
+
resultIdsNeedingAnEarlierCall.push(block.toolUseId);
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
for (const callId of callIdsInMessage) {
|
|
413
|
+
resultIdsAwaitingTheirCall.delete(callId);
|
|
414
|
+
}
|
|
415
|
+
for (const resultId of resultIdsNeedingAnEarlierCall) {
|
|
416
|
+
resultIdsAwaitingTheirCall.add(resultId);
|
|
262
417
|
}
|
|
418
|
+
windowIsCleanAt[idx] = resultIdsAwaitingTheirCall.size === 0;
|
|
263
419
|
}
|
|
264
|
-
return
|
|
420
|
+
return windowIsCleanAt;
|
|
265
421
|
}
|
|
266
422
|
export function placeCacheMarkers(messages, messageTokens, state, didRoll, config) {
|
|
267
423
|
const cacheConfig = config.cache ?? {};
|
|
268
424
|
if (cacheConfig.enabled === false) {
|
|
269
425
|
return [];
|
|
270
426
|
}
|
|
271
|
-
const numPoints = cacheConfig.points ?? 1;
|
|
427
|
+
const numPoints = Math.min(cacheConfig.points ?? 1, MAX_MODULE_CACHE_POINTS);
|
|
272
428
|
const minTokens = cacheConfig.minTokens ?? 1024;
|
|
273
429
|
const preferUser = cacheConfig.preferUserMessages ?? true;
|
|
274
430
|
const totalTokens = messageTokens.reduce((sum, m) => sum + m.tokens, 0);
|
|
@@ -281,8 +437,16 @@ export function placeCacheMarkers(messages, messageTokens, state, didRoll, confi
|
|
|
281
437
|
const currentIds = new Set(messages.map(m => getMessageId(m)));
|
|
282
438
|
const validMarkers = state.cacheMarkers.filter(m => currentIds.has(m.messageId));
|
|
283
439
|
if (validMarkers.length > 0) {
|
|
284
|
-
// Recalculate token estimates for valid markers
|
|
285
|
-
|
|
440
|
+
// Recalculate token estimates for valid markers, then apply the same cap
|
|
441
|
+
// fresh placement obeys. The cap is a property of the REQUEST (Anthropic
|
|
442
|
+
// accepts four cache_control blocks and the builders spend from the same
|
|
443
|
+
// budget), so honouring it only on the fresh path let a state written
|
|
444
|
+
// before the cap existed - or by a caller that asked for four points -
|
|
445
|
+
// keep re-spending four slots on every subsequent call, which is where
|
|
446
|
+
// the builders' own marker turns the request into a 400. The deepest
|
|
447
|
+
// markers cover the longest prefixes, so those are the ones kept.
|
|
448
|
+
const retainedMarkers = validMarkers
|
|
449
|
+
.map(marker => {
|
|
286
450
|
const idx = messages.findIndex(m => getMessageId(m) === marker.messageId);
|
|
287
451
|
const tokenEstimate = messageTokens
|
|
288
452
|
.slice(0, idx + 1)
|
|
@@ -292,7 +456,9 @@ export function placeCacheMarkers(messages, messageTokens, state, didRoll, confi
|
|
|
292
456
|
messageIndex: idx,
|
|
293
457
|
tokenEstimate,
|
|
294
458
|
};
|
|
295
|
-
})
|
|
459
|
+
})
|
|
460
|
+
.sort((a, b) => a.messageIndex - b.messageIndex);
|
|
461
|
+
return retainedMarkers.slice(-MAX_MODULE_CACHE_POINTS);
|
|
296
462
|
}
|
|
297
463
|
}
|
|
298
464
|
// Place new markers using arithmetic positioning
|
|
@@ -322,7 +488,7 @@ export function placeCacheMarkers(messages, messageTokens, state, didRoll, confi
|
|
|
322
488
|
let markerTokens = runningTokens;
|
|
323
489
|
// Adjust to user message if preferred
|
|
324
490
|
if (preferUser) {
|
|
325
|
-
const adjusted = findNearestUserMessage(messages, markerIdx, messageTokens);
|
|
491
|
+
const adjusted = findNearestUserMessage(messages, markerIdx, messageTokens, config.assistantParticipant);
|
|
326
492
|
if (adjusted) {
|
|
327
493
|
markerIdx = adjusted.index;
|
|
328
494
|
markerTokens = adjusted.tokens;
|
|
@@ -344,15 +510,26 @@ export function placeCacheMarkers(messages, messageTokens, state, didRoll, confi
|
|
|
344
510
|
}
|
|
345
511
|
return markers;
|
|
346
512
|
}
|
|
347
|
-
|
|
513
|
+
/** Assistant names assumed when the deployment configures none. */
|
|
514
|
+
const LEGACY_ASSISTANT_PARTICIPANTS = ['claude', 'assistant', 'bot', 'ai'];
|
|
515
|
+
function findNearestUserMessage(messages, startIdx, messageTokens, assistantParticipant) {
|
|
348
516
|
// Search backwards for a user message (non-assistant participant)
|
|
349
517
|
const maxSearch = 5;
|
|
518
|
+
// A deployment whose assistant is named anything else (Sol, a persona name)
|
|
519
|
+
// had every assistant turn classified as a user turn by the legacy list.
|
|
520
|
+
const assistantNames = assistantParticipant
|
|
521
|
+
? [assistantParticipant.toLowerCase()]
|
|
522
|
+
: LEGACY_ASSISTANT_PARTICIPANTS;
|
|
350
523
|
let tokens = messageTokens.slice(0, startIdx + 1).reduce((sum, m) => sum + m.tokens, 0);
|
|
351
524
|
for (let i = startIdx; i >= Math.max(0, startIdx - maxSearch); i--) {
|
|
352
525
|
const msg = messages[i];
|
|
353
|
-
// Heuristic: if participant isn't a
|
|
354
|
-
|
|
355
|
-
|
|
526
|
+
// Heuristic: if participant isn't a known assistant name, it's probably a
|
|
527
|
+
// user. A message with no participant at all (role-shaped producers) falls
|
|
528
|
+
// through the same way rather than crashing the whole call.
|
|
529
|
+
const participant = typeof msg.participant === 'string'
|
|
530
|
+
? msg.participant.toLowerCase()
|
|
531
|
+
: '';
|
|
532
|
+
const isUser = !assistantNames.includes(participant);
|
|
356
533
|
if (isUser) {
|
|
357
534
|
return { index: i, tokens };
|
|
358
535
|
}
|
|
@@ -369,6 +546,10 @@ export function applyCacheMarkers(messages, cacheMarkers) {
|
|
|
369
546
|
if (markerIndices.has(idx)) {
|
|
370
547
|
return {
|
|
371
548
|
...msg,
|
|
549
|
+
// cacheBreakpoint is the field every request builder reads; the
|
|
550
|
+
// metadata.cacheControl write has no reader inside membrane and is
|
|
551
|
+
// kept only for external consumers that may already read it.
|
|
552
|
+
cacheBreakpoint: true,
|
|
372
553
|
metadata: {
|
|
373
554
|
...msg.metadata,
|
|
374
555
|
cacheControl: { type: 'ephemeral' },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/context/process.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAEpB,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAkB,EAClB,KAAmB,EACnB,KAA0B,EAC1B,OAA8B;IAE9B,6BAA6B;IAC7B,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,cAAc,GAAG,aAAa,CAAC,cAAc,IAAI,qBAAqB,CAAC;IAE7E,+BAA+B;IAC/B,IAAI,YAAY,GAAG,KAAK,IAAI,kBAAkB,EAAE,CAAC;IAEjD,2DAA2D;IAC3D,MAAM,eAAe,GAAG,mBAAmB,CAAC,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC1E,IAAI,eAAe,EAAE,CAAC;QACpB,YAAY,GAAG,kBAAkB,EAAE,CAAC;IACtC,CAAC;IAED,oCAAoC;IACpC,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7C,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;QACzB,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;KACpB,CAAC,CAAC,CAAC;IAEJ,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACxE,MAAM,eAAe,GAAG,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAE5D,8BAA8B;IAC9B,MAAM,YAAY,GAAG,UAAU,CAC7B,YAAY,EACZ,KAAK,CAAC,QAAQ,CAAC,MAAM,EACrB,WAAW,EACX,eAAe,EACf,aAAa,CACd,CAAC;IAEF,qCAAqC;IACrC,IAAI,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC;IAClC,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,YAAY,GAAG,KAAK,CAAC;IAEzB,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;QAC5B,MAAM,cAAc,GAAG,gBAAgB,CACrC,aAAa,EACb,YAAY,CAAC,YAAY,EACzB,YAAY,CAAC,cAAc,EAC3B,aAAa,CACd,CAAC;QAEF,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACvD,eAAe,GAAG,cAAc,CAAC,OAAO,CAAC;QACzC,OAAO,GAAG,IAAI,CAAC;QACf,YAAY,GAAG,YAAY,CAAC,MAAM,KAAK,YAAY,CAAC;IACtD,CAAC;IAED,sCAAsC;IACtC,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxC,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;QACzB,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;KACpB,CAAC,CAAC,CAAC;IACJ,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAEzE,sBAAsB;IACtB,MAAM,YAAY,GAAG,iBAAiB,CACpC,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,OAAO,EACP,aAAa,CACd,CAAC;IAEF,kCAAkC;IAClC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAExE,mCAAmC;IACnC,MAAM,UAAU,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,UAAU,EAAE,aAAa,IAAI,CAAC,CAAC;IACpD,MAAM,cAAc,GAAG,eAAe,GAAG,YAAY,CAAC;IAEtD,gBAAgB;IAChB,MAAM,OAAO,GAAsB;QACjC,QAAQ,EAAE,iBAAiB;QAC3B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,MAAM,EAAE,KAAK,CAAC,MAAM;KACrB,CAAC;IAEF,6CAA6C;IAC7C,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE;QAC9C,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,MAAM,EAAE,OAAO,EAAE,MAAM;QACvB,WAAW,EAAE,OAAO,EAAE,WAAW;QACjC,gBAAgB,EAAE,OAAO,EAAE,gBAAgB;QAC3C,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,YAAY,EAAE,OAAO,EAAE,YAAY;KACpC,CAAC,CAAC;IAEH,iCAAiC;IACjC,+EAA+E;IAC/E,8DAA8D;IAC9D,MAAM,oBAAoB,GAAG,OAAO;QAClC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACxE,CAAC,CAAC,YAAY,CAAC,oBAAoB,CAAC;IAEtC,eAAe;IACf,MAAM,QAAQ,GAAiB;QAC7B,YAAY;QACZ,gBAAgB,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACxD,iBAAiB,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,iBAAiB,GAAG,CAAC;QACnE,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,eAAe,GAAG,eAAe;QAC3F,aAAa,EAAE,YAAY,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,aAAa,IAAI,CAAC,OAAO,CAAC;QACpF,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY;QAC5E,oBAAoB;KACrB,CAAC;IAEF,aAAa;IACb,MAAM,IAAI,GAAgB;QACxB,OAAO;QACP,eAAe;QACf,YAAY,EAAE,YAAY,CAAC,MAAM;QACjC,YAAY;QACZ,YAAY;QACZ,cAAc;QACd,WAAW,EAAE,eAAe;QAC5B,YAAY;QACZ,oBAAoB;KACrB,CAAC;IAEF,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC7C,CAAC;AAED,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,SAAS,WAAW,CAAC,MAAqB;IACxC,OAAO;QACL,OAAO,EAAE;YACP,GAAG,sBAAsB,CAAC,OAAO;YACjC,GAAG,MAAM,CAAC,OAAO;SAClB;QACD,MAAM,EAAE;YACN,GAAG,sBAAsB,CAAC,MAAM;YAChC,GAAG,MAAM,CAAC,MAAM;SACjB;QACD,KAAK,EAAE;YACL,GAAG,sBAAsB,CAAC,KAAK;YAC/B,GAAG,MAAM,CAAC,KAAK;SAChB;QACD,cAAc,EAAE,MAAM,CAAC,cAAc;KACtC,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,OAA0B;IAC9C,OAAO,OAAO,CAAC,QAAQ,EAAE,QAAQ,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACpF,CAAC;AAED,SAAS,mBAAmB,CAC1B,QAA6B,EAC7B,KAAmB;IAEnB,IAAI,KAAK,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC,CAAC,kCAAkC;IAClD,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAExE,2DAA2D;IAC3D,OAAO,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,gBAAgB,CAAC,MAAM,GAAG,GAAG,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAA6B;IAC/D,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC1B,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;YAC7B,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBACxC,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;oBAC/C,CAAC,CAAC,KAAK,CAAC,OAAO;oBACf,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAClC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;YAC1B,CAAC;YACD,0CAA0C;QAC5C,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAUD,MAAM,UAAU,UAAU,CACxB,KAAmB,EACnB,YAAoB,EACpB,WAAmB,EACnB,eAAuB,EACvB,MAAqB;IAErB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACnC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,UAAU,CAAC;IAExC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACpC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;IACjC,MAAM,YAAY,GAAG,SAAS,GAAG,KAAK,CAAC;IAEvC,4CAA4C;IAC5C,IAAI,MAAM,EAAE,aAAa,IAAI,eAAe,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;QACpE,OAAO;YACL,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,YAAY;YACpB,YAAY,EAAE,MAAM,CAAC,SAAS;YAC9B,cAAc,EAAE,MAAM,CAAC,WAAW;YAClC,YAAY,EAAE,KAAK;SACpB,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,EAAE,SAAS,IAAI,WAAW,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QACxD,OAAO;YACL,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,YAAY;YACpB,YAAY,EAAE,MAAM,CAAC,SAAS;YAC9B,cAAc,EAAE,MAAM,CAAC,WAAW;YAClC,YAAY,EAAE,KAAK;SACpB,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,EAAE,WAAW,IAAI,YAAY,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QAC7D,OAAO;YACL,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,YAAY;YACpB,YAAY,EAAE,MAAM,CAAC,SAAS;YAC9B,cAAc,EAAE,MAAM,CAAC,WAAW;YAClC,YAAY,EAAE,KAAK;SACpB,CAAC;IACJ,CAAC;IAED,0BAA0B;IAC1B,MAAM,OAAO,GAAG,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;IAEtF,IAAI,OAAO,IAAI,YAAY,EAAE,CAAC;QAC5B,4BAA4B;QAC5B,OAAO;YACL,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,gBAAgB;YACxB,YAAY,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YACvD,cAAc,EAAE,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YAC3D,YAAY,EAAE,KAAK;SACpB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;QACjD,4BAA4B;QAC5B,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,IAAI;SACnB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,UAAU,EAAE,KAAK;QACjB,YAAY,EAAE,KAAK;KACpB,CAAC;AACJ,CAAC;AAQD,MAAM,UAAU,gBAAgB,CAC9B,QAA6B,EAC7B,YAAqB,EACrB,cAAuB,EACvB,MAAsB;IAEtB,mDAAmD;IAEnD,IAAI,cAAc,IAAI,QAAQ,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;QACvD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,GAAG,cAAc,CAAC;QAClD,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;YAC9B,OAAO,EAAE,QAAQ;SAClB,CAAC;IACJ,CAAC;IAED,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;QAE/B,2BAA2B;QAC3B,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC;YAChC,IAAI,QAAQ,GAAG,YAAY,EAAE,CAAC;gBAC5B,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC;gBACjB,MAAM;YACR,CAAC;YACD,QAAQ,GAAG,CAAC,CAAC;QACf,CAAC;QAED,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;YAC9B,OAAO,EAAE,QAAQ;SAClB,CAAC;IACJ,CAAC;IAED,kCAAkC;IAClC,MAAM,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;IAC5C,MAAM,IAAI,GAAG,MAAM,EAAE,OAAO,CAAC,IAAI,IAAI,UAAU,CAAC;IAEhD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;QACnE,IAAI,QAAQ,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,GAAG,WAAW,CAAC;YAC/C,OAAO;gBACL,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;gBAC9B,OAAO,EAAE,QAAQ;aAClB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,QAA6B,EAC7B,aAAkC,EAClC,KAAmB,EACnB,OAAgB,EAChB,MAAqB;IAErB,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;IAEvC,IAAI,WAAW,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QAClC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,IAAI,IAAI,CAAC;IAChD,MAAM,UAAU,GAAG,WAAW,CAAC,kBAAkB,IAAI,IAAI,CAAC;IAE1D,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAExE,gCAAgC;IAChC,IAAI,WAAW,GAAG,SAAS,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,yDAAyD;IACzD,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAEjF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,gDAAgD;YAChD,OAAO,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBAC/B,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC1E,MAAM,aAAa,GAAG,aAAa;qBAChC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;qBACjB,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBAEzC,OAAO;oBACL,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,YAAY,EAAE,GAAG;oBACjB,aAAa;iBACd,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;IAE3C,+CAA+C;IAC/C,8DAA8D;IAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAE3D,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC,CAAC,mBAAmB;IAChC,CAAC;IAED,gDAAgD;IAChD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;IAElD,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QACf,OAAO,EAAE,CAAC,CAAC,iDAAiD;IAC9D,CAAC;IAED,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;QAE/D,iCAAiC;QACjC,OAAO,UAAU,IAAI,SAAS,IAAI,UAAU,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;YACpE,aAAa,IAAI,aAAa,CAAC,UAAU,CAAE,CAAC,MAAM,CAAC;YACnD,UAAU,EAAE,CAAC;QACf,CAAC;QAED,IAAI,SAAS,GAAG,SAAS,CAAC;QAC1B,IAAI,YAAY,GAAG,aAAa,CAAC;QAEjC,sCAAsC;QACtC,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,sBAAsB,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;YAC5E,IAAI,QAAQ,EAAE,CAAC;gBACb,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC;gBAC3B,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC;YACjC,CAAC;QACH,CAAC;QAED,wBAAwB;QACxB,IAAI,YAAY,GAAG,SAAS,EAAE,CAAC;YAC7B,SAAS;QACX,CAAC;QAED,oBAAoB;QACpB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,SAAS,CAAC,EAAE,CAAC;YACpD,SAAS;QACX,CAAC;QAED,OAAO,CAAC,IAAI,CAAC;YACX,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAE,CAAC;YAC7C,YAAY,EAAE,SAAS;YACvB,aAAa,EAAE,YAAY;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,sBAAsB,CAC7B,QAA6B,EAC7B,QAAgB,EAChB,aAAkC;IAElC,kEAAkE;IAClE,MAAM,SAAS,GAAG,CAAC,CAAC;IAEpB,IAAI,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAExF,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACnE,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;QACzB,gFAAgF;QAChF,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAE3E,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;QAC9B,CAAC;QAED,MAAM,IAAI,aAAa,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC;IACrC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,QAA6B,EAC7B,YAA2B;IAE3B,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;IAErE,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC/B,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO;gBACL,GAAG,GAAG;gBACN,QAAQ,EAAE;oBACR,GAAG,GAAG,CAAC,QAAQ;oBACf,YAAY,EAAE,EAAE,IAAI,EAAE,WAAoB,EAAE;iBAC7C;aACF,CAAC;QACJ,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
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
|
@@ -42,9 +42,28 @@ export interface ContextConfig {
|
|
|
42
42
|
/** Prefer user messages for cache markers (OpenRouter workaround) */
|
|
43
43
|
preferUserMessages?: boolean;
|
|
44
44
|
};
|
|
45
|
+
/**
|
|
46
|
+
* Participant name this deployment's assistant speaks as (membrane's own
|
|
47
|
+
* `assistantParticipant`). Used by the `preferUserMessages` adjustment to
|
|
48
|
+
* tell an assistant turn from a user turn. When unset, the legacy name
|
|
49
|
+
* list (`claude`/`assistant`/`bot`/`ai`) is used.
|
|
50
|
+
*/
|
|
51
|
+
assistantParticipant?: string;
|
|
45
52
|
/** Custom token estimator (default: chars / 4) */
|
|
46
53
|
tokenEstimator?: (message: NormalizedMessage) => number;
|
|
47
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* Thrown by `processContext` when messages do not carry stable identity.
|
|
57
|
+
*
|
|
58
|
+
* The module keys continuity detection, marker stability and the
|
|
59
|
+
* `cachedStartMessageId` fetch anchor off `metadata.sourceId`. Without it
|
|
60
|
+
* every call sees a brand-new conversation, so rolling and caching are
|
|
61
|
+
* silently disabled — the module refuses rather than degrade invisibly.
|
|
62
|
+
*/
|
|
63
|
+
export declare class MembraneContextIdentityError extends Error {
|
|
64
|
+
readonly messageIndices: readonly number[];
|
|
65
|
+
constructor(message: string, messageIndices: readonly number[]);
|
|
66
|
+
}
|
|
48
67
|
export interface ContextState {
|
|
49
68
|
/** Current cache markers */
|
|
50
69
|
cacheMarkers: CacheMarker[];
|
|
@@ -99,6 +118,17 @@ export interface ContextInfo {
|
|
|
99
118
|
totalTokens: number;
|
|
100
119
|
/** Whether hard limit was hit */
|
|
101
120
|
hardLimitHit: boolean;
|
|
121
|
+
/**
|
|
122
|
+
* Set when the window still exceeds a limit after truncation. The kept
|
|
123
|
+
* window is floored at one message, so a single oversize message cannot
|
|
124
|
+
* be truncated away — it is reported here instead of shipping an empty
|
|
125
|
+
* `messages` array.
|
|
126
|
+
*/
|
|
127
|
+
residualOverflow?: {
|
|
128
|
+
unit: 'characters' | 'tokens' | 'messages';
|
|
129
|
+
limit: number;
|
|
130
|
+
actual: number;
|
|
131
|
+
};
|
|
102
132
|
/**
|
|
103
133
|
* First message ID of the cached window.
|
|
104
134
|
* Useful for callers to anchor their message fetch window.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/context/types.ts"],"names":[],"mappings":"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"}
|
|
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,6 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Context management types
|
|
3
3
|
*/
|
|
4
|
+
/**
|
|
5
|
+
* Thrown by `processContext` when messages do not carry stable identity.
|
|
6
|
+
*
|
|
7
|
+
* The module keys continuity detection, marker stability and the
|
|
8
|
+
* `cachedStartMessageId` fetch anchor off `metadata.sourceId`. Without it
|
|
9
|
+
* every call sees a brand-new conversation, so rolling and caching are
|
|
10
|
+
* silently disabled — the module refuses rather than degrade invisibly.
|
|
11
|
+
*/
|
|
12
|
+
export class MembraneContextIdentityError extends Error {
|
|
13
|
+
messageIndices;
|
|
14
|
+
constructor(message, messageIndices) {
|
|
15
|
+
super(message);
|
|
16
|
+
this.messageIndices = messageIndices;
|
|
17
|
+
this.name = 'MembraneContextIdentityError';
|
|
18
|
+
}
|
|
19
|
+
}
|
|
4
20
|
// ============================================================================
|
|
5
21
|
// Helpers
|
|
6
22
|
// ============================================================================
|