circle-ir-ai 2.28.3 → 2.28.4
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/CHANGELOG.md +71 -0
- package/dist/cache/backends/r2.d.ts.map +1 -1
- package/dist/cache/backends/r2.js +39 -8
- package/dist/cache/backends/r2.js.map +1 -1
- package/dist/llm/call-logger.d.ts +56 -1
- package/dist/llm/call-logger.d.ts.map +1 -1
- package/dist/llm/call-logger.js +93 -0
- package/dist/llm/call-logger.js.map +1 -1
- package/dist/llm/discovery.d.ts +9 -0
- package/dist/llm/discovery.d.ts.map +1 -1
- package/dist/llm/discovery.js +24 -12
- package/dist/llm/discovery.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,77 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [2.28.4] - 2026-07-01
|
|
9
|
+
|
|
10
|
+
### Added — observability + guardrails (cognium-ai#163 B3 + B4 + B5)
|
|
11
|
+
|
|
12
|
+
Three low-risk hardening items from the #163 umbrella, landed together
|
|
13
|
+
as one PATCH. All are additive-optional: no runtime behavior changes
|
|
14
|
+
for callers who don't consume the new signals.
|
|
15
|
+
|
|
16
|
+
**B3 (MED) — categorized R2 cache-backend errors.** The R2 backend
|
|
17
|
+
previously swallowed every AWS-SDK error into a silent miss / write-noop
|
|
18
|
+
(`src/cache/backends/r2.ts` get/set/has/delete). A persistent misconfig
|
|
19
|
+
(`NoSuchBucket`, `AccessDenied`) or network outage was indistinguishable
|
|
20
|
+
from cold-cache behavior — a full sweep could run against a dead bucket
|
|
21
|
+
with no visible signal beyond wall-clock cost.
|
|
22
|
+
|
|
23
|
+
Fix:
|
|
24
|
+
- `categorizeR2Error(err)` coalesces AWS SDK error shapes (name / Code /
|
|
25
|
+
`$metadata.httpStatusCode` / `cause.code`) into 7 stable buckets:
|
|
26
|
+
`no_such_bucket`, `access_denied`, `not_found`, `network_error`,
|
|
27
|
+
`throttled`, `server_error`, `unknown_error`. Never throws.
|
|
28
|
+
- `llmCallLogger.logR2Error({ op, category, error })` emits a synthetic
|
|
29
|
+
JSONL row (`r2Error: true`, `r2Op`, `errorCategory`, trimmed `error`)
|
|
30
|
+
and surfaces the first occurrence to stderr with the category so
|
|
31
|
+
misconfig failures are loud on the first scan.
|
|
32
|
+
- Deduped per-process by `(op × category)`: a persistent outage
|
|
33
|
+
produces one row per failure mode, not one per cache lookup.
|
|
34
|
+
- `not_found` is skipped for get / has / delete (semantically expected
|
|
35
|
+
cache miss); still emitted for `set` where it would be anomalous.
|
|
36
|
+
- Extended `LLMCallEntry` with `r2Error?: boolean` and
|
|
37
|
+
`r2Op?: 'get' | 'set' | 'has' | 'delete'`; widened `errorCategory`
|
|
38
|
+
to `LLMErrorCategory | R2ErrorCategory`.
|
|
39
|
+
- Coverage: `tests/r2-error-logging.test.ts` pins the SDK-error → bucket
|
|
40
|
+
mapping (all 7 buckets), dedup semantics per (op, category), JSONL
|
|
41
|
+
row shape, error-string trimming, and first-time stderr surfacing.
|
|
42
|
+
|
|
43
|
+
**B4 (LOW) — prompt-template snapshot hashes.** The `disc-v1 → disc-v2`
|
|
44
|
+
bump in 2.28.3 shipped because a prompt change and a sentinel bump got
|
|
45
|
+
split across commits during the earlier discovery-cache refactor,
|
|
46
|
+
poisoning warm entries silently. This test makes the failure mode
|
|
47
|
+
loud at CI time.
|
|
48
|
+
|
|
49
|
+
Fix:
|
|
50
|
+
- `src/llm/discovery.ts:378` — extracted the inline `systemPrompt` to
|
|
51
|
+
the exported constant `DISCOVERY_SYSTEM_PROMPT_TEMPLATE` so it can
|
|
52
|
+
be hashed from tests without duplicating string content.
|
|
53
|
+
- `tests/prompt-template-hashes.test.ts` — pins SHA-256 snapshots of
|
|
54
|
+
all 5 `javaPrompts.*` templates, all 5 `rustPrompts.*` templates,
|
|
55
|
+
and `DISCOVERY_SYSTEM_PROMPT_TEMPLATE`. A change flips the test red
|
|
56
|
+
with the message: revert, or bump the matching sentinel (`tree-v1` /
|
|
57
|
+
`verify-v1` / `disc-v2`) in the same commit as the prompt edit.
|
|
58
|
+
|
|
59
|
+
**B5 (LOW) — CI-enforced circle-ir pin uniformity.** The 4 packages in
|
|
60
|
+
this workspace (`circle-ir-ai`, `cognium-ai`, `circle-pack`,
|
|
61
|
+
`mcp-server`) all depend on `circle-ir` at the same exact version by
|
|
62
|
+
convention. Drift causes the exact silent-collision failure #163 B1
|
|
63
|
+
exists to prevent: one package resolves an older circle-ir, its cache
|
|
64
|
+
rows key against a different tree / verify prompt bytes, results go
|
|
65
|
+
stale without warning.
|
|
66
|
+
|
|
67
|
+
Fix:
|
|
68
|
+
- New `circle-ir-pin-check` job in `.github/workflows/ci.yml` reads
|
|
69
|
+
`dependencies.circle-ir` from all 4 `package.json` files and asserts
|
|
70
|
+
every value is byte-identical. Fails CI with an actionable message
|
|
71
|
+
pointing at #163 B5 on drift.
|
|
72
|
+
|
|
73
|
+
### Notes
|
|
74
|
+
|
|
75
|
+
No API breaking changes. `R2ErrorCategory` and `categorizeR2Error()`
|
|
76
|
+
are additive exports; existing callers of `llmCallLogger.log()` and
|
|
77
|
+
`logLLMCall()` see no behavior change.
|
|
78
|
+
|
|
8
79
|
## [2.28.3] - 2026-06-30
|
|
9
80
|
|
|
10
81
|
### Fixed — discovery cache-key coverage (cognium-ai#163 B1 + B2)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"r2.d.ts","sourceRoot":"","sources":["../../../src/cache/backends/r2.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AASH,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"r2.d.ts","sourceRoot":"","sources":["../../../src/cache/backends/r2.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AASH,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAI5D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,SAAU,YAAW,YAAY;IAC5C,QAAQ,CAAC,IAAI,QAAQ;IACrB,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;gBAEX,IAAI,EAAE,gBAAgB;IAelC,OAAO,CAAC,SAAS;IAIX,GAAG,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAwB1C,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBhD,GAAG,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAqBpC,MAAM,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAmB3C"}
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
*/
|
|
28
28
|
import { S3Client, GetObjectCommand, PutObjectCommand, HeadObjectCommand, DeleteObjectCommand, } from '@aws-sdk/client-s3';
|
|
29
29
|
import { renderObjectPath } from './layout.js';
|
|
30
|
+
import { llmCallLogger, categorizeR2Error } from '../../llm/call-logger.js';
|
|
30
31
|
export class R2Backend {
|
|
31
32
|
kind = 'r2';
|
|
32
33
|
client;
|
|
@@ -61,9 +62,16 @@ export class R2Backend {
|
|
|
61
62
|
return await streamToString(stream);
|
|
62
63
|
}
|
|
63
64
|
catch (err) {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
// cognium-ai#163 B3: categorize + log-once. `not_found` is benign
|
|
66
|
+
// (regular miss) — surface it as `null` without a log row.
|
|
67
|
+
const category = categorizeR2Error(err);
|
|
68
|
+
if (category !== 'not_found') {
|
|
69
|
+
llmCallLogger.logR2Error({
|
|
70
|
+
op: 'get',
|
|
71
|
+
category,
|
|
72
|
+
error: err instanceof Error ? err.message : String(err),
|
|
73
|
+
});
|
|
74
|
+
}
|
|
67
75
|
return null;
|
|
68
76
|
}
|
|
69
77
|
}
|
|
@@ -76,8 +84,13 @@ export class R2Backend {
|
|
|
76
84
|
ContentType: 'application/json',
|
|
77
85
|
}));
|
|
78
86
|
}
|
|
79
|
-
catch {
|
|
80
|
-
|
|
87
|
+
catch (err) {
|
|
88
|
+
// cognium-ai#163 B3: cache write failure is non-fatal but observable.
|
|
89
|
+
llmCallLogger.logR2Error({
|
|
90
|
+
op: 'set',
|
|
91
|
+
category: categorizeR2Error(err),
|
|
92
|
+
error: err instanceof Error ? err.message : String(err),
|
|
93
|
+
});
|
|
81
94
|
}
|
|
82
95
|
}
|
|
83
96
|
async has(key) {
|
|
@@ -88,7 +101,16 @@ export class R2Backend {
|
|
|
88
101
|
}));
|
|
89
102
|
return true;
|
|
90
103
|
}
|
|
91
|
-
catch {
|
|
104
|
+
catch (err) {
|
|
105
|
+
// cognium-ai#163 B3: `not_found` is a legitimate `false` — no log row.
|
|
106
|
+
const category = categorizeR2Error(err);
|
|
107
|
+
if (category !== 'not_found') {
|
|
108
|
+
llmCallLogger.logR2Error({
|
|
109
|
+
op: 'has',
|
|
110
|
+
category,
|
|
111
|
+
error: err instanceof Error ? err.message : String(err),
|
|
112
|
+
});
|
|
113
|
+
}
|
|
92
114
|
return false;
|
|
93
115
|
}
|
|
94
116
|
}
|
|
@@ -99,8 +121,17 @@ export class R2Backend {
|
|
|
99
121
|
Key: this.objectKey(key),
|
|
100
122
|
}));
|
|
101
123
|
}
|
|
102
|
-
catch {
|
|
103
|
-
|
|
124
|
+
catch (err) {
|
|
125
|
+
// cognium-ai#163 B3: delete failure is non-fatal but observable.
|
|
126
|
+
// `not_found` on delete is idempotent — no log row.
|
|
127
|
+
const category = categorizeR2Error(err);
|
|
128
|
+
if (category !== 'not_found') {
|
|
129
|
+
llmCallLogger.logR2Error({
|
|
130
|
+
op: 'delete',
|
|
131
|
+
category,
|
|
132
|
+
error: err instanceof Error ? err.message : String(err),
|
|
133
|
+
});
|
|
134
|
+
}
|
|
104
135
|
}
|
|
105
136
|
}
|
|
106
137
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"r2.js","sourceRoot":"","sources":["../../../src/cache/backends/r2.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"r2.js","sourceRoot":"","sources":["../../../src/cache/backends/r2.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,7 +48,7 @@ export interface LLMCallEntry {
|
|
|
48
48
|
error?: string;
|
|
49
49
|
parseError?: boolean;
|
|
50
50
|
retryCount?: number;
|
|
51
|
-
errorCategory?: LLMErrorCategory;
|
|
51
|
+
errorCategory?: LLMErrorCategory | R2ErrorCategory;
|
|
52
52
|
/** Per-attempt extras (cognium-ai#87). All optional, set when kind='attempt'. */
|
|
53
53
|
attempt?: number;
|
|
54
54
|
maxAttempts?: number;
|
|
@@ -83,10 +83,36 @@ export interface LLMCallEntry {
|
|
|
83
83
|
* as a near-100% hit rate here).
|
|
84
84
|
*/
|
|
85
85
|
discoveryCacheHit?: boolean;
|
|
86
|
+
/**
|
|
87
|
+
* cognium-ai#163 B3 — set on synthetic "no-call" entries emitted when an
|
|
88
|
+
* R2 cache backend operation (get / set / has / delete) failed. Lets the
|
|
89
|
+
* JSONL analyzer distinguish transient network blips from misconfig
|
|
90
|
+
* (`bucket_not_found`, `access_denied`) without string-matching. Emitted
|
|
91
|
+
* at most once per (operation × errorCategory) pair per process to avoid
|
|
92
|
+
* flooding the log on a persistent outage.
|
|
93
|
+
*/
|
|
94
|
+
r2Error?: boolean;
|
|
95
|
+
/**
|
|
96
|
+
* cognium-ai#163 B3 — R2 operation that failed. Used together with
|
|
97
|
+
* `errorCategory` for `r2Error` rows.
|
|
98
|
+
*/
|
|
99
|
+
r2Op?: 'get' | 'set' | 'has' | 'delete';
|
|
86
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* cognium-ai#163 B3 — categorical bucket for an R2 error. Kept separate
|
|
103
|
+
* from `LLMErrorCategory` because R2 errors are cache-backend errors, not
|
|
104
|
+
* LLM-call errors, and the analyzer should treat them independently.
|
|
105
|
+
*/
|
|
106
|
+
export type R2ErrorCategory = 'no_such_bucket' | 'access_denied' | 'not_found' | 'network_error' | 'throttled' | 'server_error' | 'unknown_error';
|
|
87
107
|
declare class LLMCallLogger {
|
|
88
108
|
private path;
|
|
89
109
|
private inited;
|
|
110
|
+
/**
|
|
111
|
+
* cognium-ai#163 B3 — dedupe per-process R2 error rows so a persistent
|
|
112
|
+
* outage doesn't flood the JSONL with thousands of identical entries.
|
|
113
|
+
* Key: `${r2Op}:${errorCategory}`. Reset by `resetForTesting()`.
|
|
114
|
+
*/
|
|
115
|
+
private r2ErrorSeen;
|
|
90
116
|
/** Test-only: clear cached state so init() re-reads the env var. */
|
|
91
117
|
resetForTesting(): void;
|
|
92
118
|
private init;
|
|
@@ -124,6 +150,22 @@ declare class LLMCallLogger {
|
|
|
124
150
|
model?: string;
|
|
125
151
|
context?: LLMCallEntry['context'];
|
|
126
152
|
}): void;
|
|
153
|
+
/**
|
|
154
|
+
* cognium-ai#163 B3 — record a synthetic "no-call" entry when an R2
|
|
155
|
+
* cache-backend op failed. Deduped per-process by
|
|
156
|
+
* `(r2Op × errorCategory)` so a persistent outage produces one row per
|
|
157
|
+
* failure mode instead of one per key. Also mirrors a single stderr
|
|
158
|
+
* line on the first occurrence (regardless of `LLM_DEEP`) so misconfig
|
|
159
|
+
* errors surface loudly on the first scan attempt. Subsequent
|
|
160
|
+
* occurrences are silent.
|
|
161
|
+
*
|
|
162
|
+
* The `error` string is trimmed to 200 chars to keep JSONL rows small.
|
|
163
|
+
*/
|
|
164
|
+
logR2Error(meta: {
|
|
165
|
+
op: NonNullable<LLMCallEntry['r2Op']>;
|
|
166
|
+
category: R2ErrorCategory;
|
|
167
|
+
error: string;
|
|
168
|
+
}): void;
|
|
127
169
|
/**
|
|
128
170
|
* Log a per-attempt entry (cognium-ai#87). Tagged `kind:'attempt'`. Writes
|
|
129
171
|
* to the same JSONL stream as `log()` so the analyzer can correlate. Also
|
|
@@ -131,6 +173,19 @@ declare class LLMCallLogger {
|
|
|
131
173
|
*/
|
|
132
174
|
logAttempt(entry: Omit<LLMCallEntry, 'ts' | 'kind'>): void;
|
|
133
175
|
}
|
|
176
|
+
/**
|
|
177
|
+
* cognium-ai#163 B3 — categorize an error thrown by the AWS SDK S3 client
|
|
178
|
+
* into a stable `R2ErrorCategory` for JSONL logging + stderr surfacing.
|
|
179
|
+
*
|
|
180
|
+
* The AWS SDK exposes an `err.name` code (e.g. `NoSuchBucket`,
|
|
181
|
+
* `AccessDenied`, `NotFound`), an `err.$metadata.httpStatusCode`
|
|
182
|
+
* (numeric), and, on lower-level network failures, a nested
|
|
183
|
+
* `err.cause?.code` like `ENOTFOUND` / `ECONNREFUSED`.
|
|
184
|
+
*
|
|
185
|
+
* This function coalesces those signals into 7 buckets. It never throws
|
|
186
|
+
* — falls through to `'unknown_error'` on shapes it doesn't recognize.
|
|
187
|
+
*/
|
|
188
|
+
export declare function categorizeR2Error(err: unknown): R2ErrorCategory;
|
|
134
189
|
/** Emit a human-readable line to stderr when `LLM_DEEP=1`. No-op otherwise. */
|
|
135
190
|
export declare function deepStderr(line: string): void;
|
|
136
191
|
export declare const llmCallLogger: LLMCallLogger;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call-logger.d.ts","sourceRoot":"","sources":["../../src/llm/call-logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GACxB,gBAAgB,GAChB,aAAa,GACb,SAAS,GACT,YAAY,GACZ,cAAc,GACd,kBAAkB,GAClB,wBAAwB,CAAC;AAE7B,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,iFAAiF;IACjF,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"call-logger.d.ts","sourceRoot":"","sources":["../../src/llm/call-logger.ts"],"names":[],"mappings":"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"}
|
package/dist/llm/call-logger.js
CHANGED
|
@@ -26,10 +26,17 @@ const SNIPPET_MAX = 300;
|
|
|
26
26
|
class LLMCallLogger {
|
|
27
27
|
path = null;
|
|
28
28
|
inited = false;
|
|
29
|
+
/**
|
|
30
|
+
* cognium-ai#163 B3 — dedupe per-process R2 error rows so a persistent
|
|
31
|
+
* outage doesn't flood the JSONL with thousands of identical entries.
|
|
32
|
+
* Key: `${r2Op}:${errorCategory}`. Reset by `resetForTesting()`.
|
|
33
|
+
*/
|
|
34
|
+
r2ErrorSeen = new Set();
|
|
29
35
|
/** Test-only: clear cached state so init() re-reads the env var. */
|
|
30
36
|
resetForTesting() {
|
|
31
37
|
this.path = null;
|
|
32
38
|
this.inited = false;
|
|
39
|
+
this.r2ErrorSeen.clear();
|
|
33
40
|
}
|
|
34
41
|
init() {
|
|
35
42
|
if (this.inited)
|
|
@@ -123,6 +130,49 @@ class LLMCallLogger {
|
|
|
123
130
|
context: meta.context,
|
|
124
131
|
});
|
|
125
132
|
}
|
|
133
|
+
/**
|
|
134
|
+
* cognium-ai#163 B3 — record a synthetic "no-call" entry when an R2
|
|
135
|
+
* cache-backend op failed. Deduped per-process by
|
|
136
|
+
* `(r2Op × errorCategory)` so a persistent outage produces one row per
|
|
137
|
+
* failure mode instead of one per key. Also mirrors a single stderr
|
|
138
|
+
* line on the first occurrence (regardless of `LLM_DEEP`) so misconfig
|
|
139
|
+
* errors surface loudly on the first scan attempt. Subsequent
|
|
140
|
+
* occurrences are silent.
|
|
141
|
+
*
|
|
142
|
+
* The `error` string is trimmed to 200 chars to keep JSONL rows small.
|
|
143
|
+
*/
|
|
144
|
+
logR2Error(meta) {
|
|
145
|
+
const dedupeKey = `${meta.op}:${meta.category}`;
|
|
146
|
+
const firstTime = !this.r2ErrorSeen.has(dedupeKey);
|
|
147
|
+
if (firstTime) {
|
|
148
|
+
this.r2ErrorSeen.add(dedupeKey);
|
|
149
|
+
// Surface misconfig loudly on first occurrence. Silent on subsequent
|
|
150
|
+
// errors to avoid flooding stderr on a persistent outage.
|
|
151
|
+
try {
|
|
152
|
+
process.stderr.write(`[cache-r2] first ${meta.op} error (${meta.category}): ${trimForLog(meta.error)}\n`);
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
// swallow — logging failure must not affect scan
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
// De-duped: no JSONL row, no stderr line. Callers still swallow
|
|
160
|
+
// the underlying error (cache miss / write-noop).
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
this.log({
|
|
164
|
+
signature: `r2:${meta.op}`,
|
|
165
|
+
phase: 'cache',
|
|
166
|
+
promptChars: 0,
|
|
167
|
+
responseChars: 0,
|
|
168
|
+
durationMs: 0,
|
|
169
|
+
success: false,
|
|
170
|
+
r2Error: true,
|
|
171
|
+
r2Op: meta.op,
|
|
172
|
+
errorCategory: meta.category,
|
|
173
|
+
error: trimForLog(meta.error),
|
|
174
|
+
});
|
|
175
|
+
}
|
|
126
176
|
/**
|
|
127
177
|
* Log a per-attempt entry (cognium-ai#87). Tagged `kind:'attempt'`. Writes
|
|
128
178
|
* to the same JSONL stream as `log()` so the analyzer can correlate. Also
|
|
@@ -163,6 +213,49 @@ function formatAttemptForStderr(e) {
|
|
|
163
213
|
const duration = e.durationMs ? ` duration=${e.durationMs}ms` : '';
|
|
164
214
|
return `[LLM-deep] ${e.signature} ${loc} ${attemptStr} ${outcome}${status}${backoff}${duration}`;
|
|
165
215
|
}
|
|
216
|
+
/** Trim a string to a max length for JSONL / stderr rows. */
|
|
217
|
+
function trimForLog(s, max = 200) {
|
|
218
|
+
return s.length > max ? s.slice(0, max) + '…' : s;
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* cognium-ai#163 B3 — categorize an error thrown by the AWS SDK S3 client
|
|
222
|
+
* into a stable `R2ErrorCategory` for JSONL logging + stderr surfacing.
|
|
223
|
+
*
|
|
224
|
+
* The AWS SDK exposes an `err.name` code (e.g. `NoSuchBucket`,
|
|
225
|
+
* `AccessDenied`, `NotFound`), an `err.$metadata.httpStatusCode`
|
|
226
|
+
* (numeric), and, on lower-level network failures, a nested
|
|
227
|
+
* `err.cause?.code` like `ENOTFOUND` / `ECONNREFUSED`.
|
|
228
|
+
*
|
|
229
|
+
* This function coalesces those signals into 7 buckets. It never throws
|
|
230
|
+
* — falls through to `'unknown_error'` on shapes it doesn't recognize.
|
|
231
|
+
*/
|
|
232
|
+
export function categorizeR2Error(err) {
|
|
233
|
+
if (!err || typeof err !== 'object')
|
|
234
|
+
return 'unknown_error';
|
|
235
|
+
const e = err;
|
|
236
|
+
const name = e.name ?? e.Code ?? '';
|
|
237
|
+
const code = e.cause?.code ?? '';
|
|
238
|
+
const status = e.$metadata?.httpStatusCode;
|
|
239
|
+
if (name === 'NoSuchBucket')
|
|
240
|
+
return 'no_such_bucket';
|
|
241
|
+
if (name === 'AccessDenied' || status === 403)
|
|
242
|
+
return 'access_denied';
|
|
243
|
+
if (name === 'NoSuchKey' || name === 'NotFound' || status === 404)
|
|
244
|
+
return 'not_found';
|
|
245
|
+
if (code === 'ENOTFOUND'
|
|
246
|
+
|| code === 'ECONNREFUSED'
|
|
247
|
+
|| code === 'ECONNRESET'
|
|
248
|
+
|| code === 'ETIMEDOUT'
|
|
249
|
+
|| name === 'TimeoutError') {
|
|
250
|
+
return 'network_error';
|
|
251
|
+
}
|
|
252
|
+
if (status === 503 || name === 'SlowDown' || name === 'TooManyRequestsException') {
|
|
253
|
+
return 'throttled';
|
|
254
|
+
}
|
|
255
|
+
if (status !== undefined && status >= 500)
|
|
256
|
+
return 'server_error';
|
|
257
|
+
return 'unknown_error';
|
|
258
|
+
}
|
|
166
259
|
/** Emit a human-readable line to stderr when `LLM_DEEP=1`. No-op otherwise. */
|
|
167
260
|
export function deepStderr(line) {
|
|
168
261
|
if (process.env[DEEP_ENV_VAR] !== '1')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call-logger.js","sourceRoot":"","sources":["../../src/llm/call-logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"call-logger.js","sourceRoot":"","sources":["../../src/llm/call-logger.ts"],"names":[],"mappings":"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"}
|
package/dist/llm/discovery.d.ts
CHANGED
|
@@ -73,6 +73,15 @@ export interface DiscoveryOptions {
|
|
|
73
73
|
/** Enable verbose logging */
|
|
74
74
|
verbose?: boolean;
|
|
75
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* System prompt template for LLM discovery calls. The `{cweGuidance}`
|
|
78
|
+
* placeholder is substituted with the concatenated per-CWE guidance blocks
|
|
79
|
+
* built at call time. Exported so the prompt-template snapshot test
|
|
80
|
+
* (`tests/prompt-template-hashes.test.ts`, cognium-ai#163 B4) can pin its
|
|
81
|
+
* hash — a change here means either revert or bump the `disc-v2` sentinel
|
|
82
|
+
* in `src/cache/discovery-cache.ts` and regenerate the snapshot.
|
|
83
|
+
*/
|
|
84
|
+
export declare const DISCOVERY_SYSTEM_PROMPT_TEMPLATE = "You are a security expert performing deep code analysis to find vulnerabilities that automated tools miss.\n\n{cweGuidance}\n\nANALYSIS APPROACH:\n1. Identify all potential sources of untrusted data\n2. Trace data flow manually through the code\n3. Check for ALL the subtle patterns described above\n4. Consider what an attacker could control and how they could exploit it\n\nIMPORTANT: Only report vulnerabilities you are confident about. False positives waste time.\nBe specific about the vulnerability type and how it could be exploited.";
|
|
76
85
|
export declare class DiscoveryEngine {
|
|
77
86
|
private client;
|
|
78
87
|
private verbose;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/llm/discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAA0B,QAAQ,EAAc,MAAM,WAAW,CAAC;AAcjG;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,kBAAkB,EAAE,OAAO,CAAC;IAC5B,uCAAuC;IACvC,aAAa,CAAC,EAAE,uBAAuB,CAAC;IACxC,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,wDAAwD;IACxD,IAAI,EAAE,QAAQ,CAAC;IACf,qBAAqB;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,qBAAqB;IACrB,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,MAAM,CAAC,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,kDAAkD;IAClD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,wDAAwD;IACxD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,2EAA2E;IAC3E,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,gDAAgD;IAChD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,6BAA6B;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAmJD,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,OAAO,CAAU;gBAEb,MAAM,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC;IAK7D;;OAEG;IACG,cAAc,CAClB,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,EAAE,CAAC;IA8D7B;;OAEG;YACW,aAAa;
|
|
1
|
+
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/llm/discovery.ts"],"names":[],"mappings":"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"}
|
package/dist/llm/discovery.js
CHANGED
|
@@ -139,6 +139,29 @@ COMMON FALSE NEGATIVES TO FIND:
|
|
|
139
139
|
- Expression languages in unexpected places`,
|
|
140
140
|
};
|
|
141
141
|
// ============================================================================
|
|
142
|
+
// System Prompt Template
|
|
143
|
+
// ============================================================================
|
|
144
|
+
/**
|
|
145
|
+
* System prompt template for LLM discovery calls. The `{cweGuidance}`
|
|
146
|
+
* placeholder is substituted with the concatenated per-CWE guidance blocks
|
|
147
|
+
* built at call time. Exported so the prompt-template snapshot test
|
|
148
|
+
* (`tests/prompt-template-hashes.test.ts`, cognium-ai#163 B4) can pin its
|
|
149
|
+
* hash — a change here means either revert or bump the `disc-v2` sentinel
|
|
150
|
+
* in `src/cache/discovery-cache.ts` and regenerate the snapshot.
|
|
151
|
+
*/
|
|
152
|
+
export const DISCOVERY_SYSTEM_PROMPT_TEMPLATE = `You are a security expert performing deep code analysis to find vulnerabilities that automated tools miss.
|
|
153
|
+
|
|
154
|
+
{cweGuidance}
|
|
155
|
+
|
|
156
|
+
ANALYSIS APPROACH:
|
|
157
|
+
1. Identify all potential sources of untrusted data
|
|
158
|
+
2. Trace data flow manually through the code
|
|
159
|
+
3. Check for ALL the subtle patterns described above
|
|
160
|
+
4. Consider what an attacker could control and how they could exploit it
|
|
161
|
+
|
|
162
|
+
IMPORTANT: Only report vulnerabilities you are confident about. False positives waste time.
|
|
163
|
+
Be specific about the vulnerability type and how it could be exploited.`;
|
|
164
|
+
// ============================================================================
|
|
142
165
|
// Discovery Engine
|
|
143
166
|
// ============================================================================
|
|
144
167
|
export class DiscoveryEngine {
|
|
@@ -249,18 +272,7 @@ export class DiscoveryEngine {
|
|
|
249
272
|
.map(cwe => CWE_DISCOVERY_PROMPTS[cwe] || '')
|
|
250
273
|
.filter(p => p)
|
|
251
274
|
.join('\n\n---\n\n');
|
|
252
|
-
const systemPrompt =
|
|
253
|
-
|
|
254
|
-
${cweGuidance}
|
|
255
|
-
|
|
256
|
-
ANALYSIS APPROACH:
|
|
257
|
-
1. Identify all potential sources of untrusted data
|
|
258
|
-
2. Trace data flow manually through the code
|
|
259
|
-
3. Check for ALL the subtle patterns described above
|
|
260
|
-
4. Consider what an attacker could control and how they could exploit it
|
|
261
|
-
|
|
262
|
-
IMPORTANT: Only report vulnerabilities you are confident about. False positives waste time.
|
|
263
|
-
Be specific about the vulnerability type and how it could be exploited.`;
|
|
275
|
+
const systemPrompt = DISCOVERY_SYSTEM_PROMPT_TEMPLATE.replace('{cweGuidance}', cweGuidance);
|
|
264
276
|
// #163 B1: reuse the canonical (sorted, dedup'd, top-20) views so
|
|
265
277
|
// what the LLM sees matches what the cache key hashed. Order-of-
|
|
266
278
|
// arrival from upstream engine graphs no longer flips the prompt.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/llm/discovery.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/llm/discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAoB,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAkB,MAAM,aAAa,CAAC;AAElE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAoFjD,+EAA+E;AAC/E,iCAAiC;AACjC,+EAA+E;AAE/E,MAAM,qBAAqB,GAA2B;IACpD,SAAS,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0EA6B6D;IAExE,SAAS,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0CA8B6B;IAExC,SAAS,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;4CA4B+B;IAE1C,SAAS,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;4CA0B+B;CAC3C,CAAC;AAEF,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAE/E;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG;;;;;;;;;;;wEAWwB,CAAC;AAEzE,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,MAAM,OAAO,eAAe;IAClB,MAAM,CAAc;IACpB,OAAO,CAAU;IAEzB,YAAY,MAAoB,EAAE,MAA2B;QAC3D,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAClB,EAAY,EACZ,IAAY,EACZ,QAAgB,EAChB,UAA4B,EAAE;QAE9B,MAAM,OAAO,GAAsB,EAAE,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC;QAExC,0BAA0B;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAEvD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CAAC,yBAAyB,OAAO,CAAC,MAAM,eAAe,QAAQ,EAAE,CAAC,CAAC;QAClF,CAAC;QAED,mCAAmC;QACnC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACtF,MAAM,OAAO,GAAG,OAAO,CAAC,gBAAgB,IAAI,KAAK,CAAC;QAElD,kEAAkE;QAClE,2DAA2D;QAC3D,MAAM,QAAQ,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAEhD,sBAAsB;QACtB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,OAAO,CAAC,KAAK,CAAC,yBAAyB,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YAClF,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAE7B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,cAAc,CACjC;oBACE,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE;oBAClD,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;oBACzB,KAAK,EAAE,WAAW;iBACnB,EACD,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;oBACjB,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC;oBACzE,IAAI,OAAO,CAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CACzC,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,EAAE,OAAO,CAAC,CAClE;iBACF,CAAC,CACH,CAAC;gBAEF,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBAChD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjB,OAAO,CAAC,KAAK,CAAC,0BAA0B,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC,CAAC;gBAC7F,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC;oBACX,QAAQ,EAAE,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE;oBACpD,kBAAkB,EAAE,KAAK;oBACzB,SAAS,EAAE,qBAAqB,KAAK,EAAE;oBACvC,UAAU,EAAE,CAAC;oBACb,eAAe,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;iBACxC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa,CACzB,MAAqB,EACrB,UAAoB,EACpB,OAAyB,EACzB,UAAoC,EAAE,EACtC,WAAmB,MAAM;QAEzB,MAAM,QAAQ,GAAG,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QAC5D,MAAM,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,IAAI,GAAG,CAAC;QAE/D,mEAAmE;QACnE,mEAAmE;QACnE,8DAA8D;QAC9D,8DAA8D;QAC9D,4BAA4B;QAC5B,MAAM,oBAAoB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACrE,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEnE,gEAAgE;QAChE,mEAAmE;QACnE,oEAAoE;QACpE,gEAAgE;QAChE,aAAa;QACb,MAAM,sBAAsB,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,GAAG,CAAC;QACvE,IAAI,MAAM,GAAgD,IAAI,CAAC;QAC/D,IAAI,IAAI,GAAmD,IAAI,CAAC;QAChE,IAAI,sBAAsB,EAAE,CAAC;YAC3B,MAAM,GAAG,iBAAiB,CAAC,mBAAmB,EAAE,CAAC,CAAC;YAClD,iEAAiE;YACjE,mEAAmE;YACnE,iEAAiE;YACjE,4DAA4D;YAC5D,oCAAoC;YACpC,IAAI,GAAG,wBAAwB,CAAC;gBAC9B,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,UAAU;gBACV,QAAQ;gBACR,WAAW,EAAE,oBAAoB;gBACjC,OAAO,EAAE,gBAAgB;aAC1B,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/D,IAAI,MAAM,EAAE,CAAC;gBACX,aAAa,CAAC,oBAAoB,CAAC;oBACjC,SAAS,EAAE,kBAAkB;oBAC7B,KAAK,EAAE,WAAW;oBAClB,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;iBACzD,CAAC,CAAC;gBACH,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QAED,6BAA6B;QAC7B,MAAM,WAAW,GAAG,UAAU;aAC3B,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;aAC5C,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACd,IAAI,CAAC,aAAa,CAAC,CAAC;QAEvB,MAAM,YAAY,GAAG,gCAAgC,CAAC,OAAO,CAC3D,eAAe,EACf,WAAW,CACZ,CAAC;QAEF,kEAAkE;QAClE,iEAAiE;QACjE,kEAAkE;QAClE,MAAM,UAAU,GAAG;;SAEd,MAAM,CAAC,SAAS;UACf,MAAM,CAAC,UAAU;eACZ,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM;WAC7C,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;;;EAGpC,MAAM,CAAC,UAAU;;;yDAGsC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6B5E,CAAC;QAEC,IAAI,CAAC;YACH,+CAA+C;YAC/C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;YAE1E,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO;oBACL,QAAQ;oBACR,kBAAkB,EAAE,KAAK;oBACzB,SAAS,EAAE,iBAAiB;oBAC5B,UAAU,EAAE,CAAC;oBACb,eAAe,EAAE,CAAC;iBACnB,CAAC;YACJ,CAAC;YAED,uBAAuB;YACvB,MAAM,kBAAkB,GAAG,QAAQ,CAAC,kBAAkB,KAAK,IAAI,CAAC;YAChE,MAAM,UAAU,GAAG,OAAO,QAAQ,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC;YAEvF,iCAAiC;YACjC,IAAI,kBAAkB,IAAI,UAAU,GAAG,mBAAmB,EAAE,CAAC;gBAC3D,OAAO;oBACL,QAAQ;oBACR,kBAAkB,EAAE,KAAK;oBACzB,SAAS,EAAE,uDAAuD,UAAU,MAAM,mBAAmB,MAAM,QAAQ,CAAC,SAAS,EAAE;oBAC/H,UAAU;oBACV,eAAe,EAAE,CAAC;iBACnB,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAoB;gBAC9B,QAAQ;gBACR,kBAAkB;gBAClB,SAAS,EAAE,QAAQ,CAAC,SAAS,IAAI,EAAE;gBACnC,UAAU;gBACV,eAAe,EAAE,CAAC;aACnB,CAAC;YAEF,IAAI,kBAAkB,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;gBACjD,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBAC3E,mEAAmE;gBACnE,8DAA8D;gBAC9D,MAAM,YAAY,GAAG,kBAAkB,CACrC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAC3B,OAAO,EACP,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,OAAO,EACd,cAAc,CACf,CAAC;gBACF,MAAM,CAAC,aAAa,GAAG;oBACrB,IAAI,EAAE,cAAc;oBACpB,GAAG,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,IAAI,aAAa;oBAChD,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;oBACjE,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,QAAQ,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE;oBACvC,WAAW,EAAE,QAAQ,CAAC,aAAa,CAAC,WAAW,IAAI,EAAE;oBACrD,YAAY,EAAE,QAAQ,CAAC,aAAa,CAAC,YAAY;oBACjD,WAAW,EAAE,QAAQ,CAAC,aAAa,CAAC,WAAW,IAAI,kCAAkC;oBACrF,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,MAAM;iBACtC,CAAC;YACJ,CAAC;YAED,qEAAqE;YACrE,oEAAoE;YACpE,mEAAmE;YACnE,kEAAkE;YAClE,oEAAoE;YACpE,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBACnB,IAAI,CAAC;oBAAC,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YAC3E,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,QAAQ;gBACR,kBAAkB,EAAE,KAAK;gBACzB,SAAS,EAAE,mBAAmB,KAAK,EAAE;gBACrC,UAAU,EAAE,CAAC;gBACb,eAAe,EAAE,CAAC;aACnB,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,mBAAmB,CAC/B,YAAoB,EACpB,UAAkB;QAElB,OAAO,cAAc,CACnB,EAAE,SAAS,EAAE,gBAAgB,EAAE,EAC/B,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAM,YAAY,EAAE,UAAU,EAAE,cAAc,CAAC,CAC1E,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,cAAc,CACpB,EAAY,EACZ,IAAY,EACZ,OAAyB;QAEzB,MAAM,OAAO,GAAoB,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,UAAU,GAAG,OAAO,CAAC,iBAAiB,IAAI,EAAE,CAAC;QACnD,MAAM,mBAAmB,GAAG,OAAO,CAAC,0BAA0B,IAAI,KAAK,CAAC;QAExE,0BAA0B;QAC1B,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC5C,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,KAAK,MAAM,MAAM,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBACtC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACrC,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBAClC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;QAED,6BAA6B;QAC7B,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;gBAAE,SAAS;YAEpC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;YAC5B,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YACnE,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YAErD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClC,wCAAwC;gBACxC,MAAM,mBAAmB,GACvB,CAAC,mBAAmB;oBACpB,MAAM,CAAC,UAAU,KAAK,SAAS;oBAC/B,MAAM,CAAC,QAAQ,KAAK,SAAS;oBAC7B,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAChC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAC7D,CAAC;gBAEJ,kEAAkE;gBAClE,IAAI,mBAAmB,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBAChD,SAAS;gBACX,CAAC;gBAED,sBAAsB;gBACtB,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC;gBACpC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,IAAI,SAAS,GAAG,EAAE,CAAC;gBAClD,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAElE,mDAAmD;gBACnD,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtC,SAAS;gBACX,CAAC;gBAED,4BAA4B;gBAC5B,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC;oBACrD,SAAS;gBACX,CAAC;gBAED,OAAO,CAAC,IAAI,CAAC;oBACX,SAAS;oBACT,UAAU,EAAE,MAAM,CAAC,IAAI;oBACvB,UAAU;oBACV,SAAS;oBACT,OAAO;oBACP,WAAW,EAAE;wBACX,GAAG,gBAAgB;wBACnB,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;qBACjD;oBACD,OAAO;oBACP,mBAAmB;iBACpB,CAAC,CAAC;gBAEH,IAAI,OAAO,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC;oBACjC,MAAM;gBACR,CAAC;YACH,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC;gBACjC,MAAM;YACR,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,UAAkB,EAAE,UAAkB;QAC/D,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;QAE3C,4BAA4B;QAC5B,IAAI,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YACvE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAChG,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,SAAS,KAAK,UAAU,IAAI,SAAS,KAAK,UAAU,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YACnF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,IAAY;QACpC,MAAM,KAAK,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC/D,MAAM,OAAO,GAA6B;YACxC,mBAAmB,EAAE,mBAAmB;YACxC,eAAe,EAAE,mBAAmB;YACpC,YAAY,EAAE,mBAAmB;YACjC,KAAK,EAAE,KAAK;YACZ,sBAAsB,EAAE,KAAK;YAC7B,gBAAgB,EAAE,gBAAgB;YAClC,qBAAqB,EAAE,gBAAgB;YACvC,KAAK,EAAE,gBAAgB;YACvB,gBAAgB,EAAE,gBAAgB;YAClC,uBAAuB,EAAE,gBAAgB;YACzC,KAAK,EAAE,gBAAgB;YACvB,eAAe,EAAE,eAAe;YAChC,MAAM,EAAE,eAAe;YACvB,iBAAiB,EAAE,iBAAiB;YACpC,0BAA0B,EAAE,iBAAiB;YAC7C,KAAK,EAAE,KAAK;YACZ,qBAAqB,EAAE,KAAK;YAC5B,MAAM,EAAE,MAAM;YACd,6BAA6B,EAAE,MAAM;SACtC,CAAC;QACF,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC;IAC5C,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,QAAgB;QACxC,MAAM,KAAK,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7C,IAAI,KAAK,KAAK,UAAU;YAAE,OAAO,UAAU,CAAC;QAC5C,IAAI,KAAK,KAAK,MAAM;YAAE,OAAO,MAAM,CAAC;QACpC,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,UAAU;YAAE,OAAO,QAAQ,CAAC;QAChE,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAA2B,EAAE,MAAoB;IAClF,OAAO,IAAI,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC;AAsCD,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAsB,CAAC;AAE3D,SAAS,gBAAgB,CAAC,QAAgB,EAAE,IAAY;IACtD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1E,OAAO,GAAG,QAAQ,KAAK,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB;IACtC,oBAAoB,CAAC,KAAK,EAAE,CAAC;AAC/B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnE,GAAG;QACH,IAAI,EAAE,CAAC,CAAC,IAAI;KACb,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,EAAY,EACZ,IAAY,EACZ,QAAgB,EAChB,OAA0B;IAE1B,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,GAAG,EAAE,CAAC;QAC5C,OAAO,kBAAkB,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,GAAG,GAAG,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/C,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChB,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,GAAG,EAAE,CAAC;YACtC,OAAO,CAAC,KAAK,CACX,oBAAoB,QAAQ,UAAU,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAC1D,CAAC;YACF,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC;YAC9C,IAAI,KAAK;gBAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC1B,CAAC;IAED,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjF,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IAEpD,uEAAuE;IACvE,4EAA4E;IAC5E,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;QACjB,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,oBAAoB,CAAC,QAAgB;IAC5C,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC3E,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAC;IAChD,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,QAAQ,CAAC;IAClD,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC3E,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAC5C,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QACrD,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,YAAY,CAAC;IAChF,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QACrD,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,YAAY,CAAC;IAChF,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC;IACnE,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;QACrD,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACzE,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,MAAM,CAAC;IAC1E,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC3E,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CACxC,OAA0B,EAC1B,QAAgB;IAEhB,MAAM,QAAQ,GAAc,EAAE,CAAC;IAE/B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,kBAAkB,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACtD,MAAM,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC;YAElC,QAAQ,CAAC,IAAI,CAAC;gBACZ,EAAE,EAAE,aAAa,QAAQ,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;gBACrD,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;oBACjB,CAAC,CAAC;wBACE,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;wBACtB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;qBAC3B;oBACH,CAAC,CAAC;wBACE,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,IAAI,EAAE,YAAY;qBACnB;gBACL,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,IAAI,EAAE,IAAI,CAAC,IAAI;iBAChB;gBACD,IAAI,EAAE,EAAE;gBACR,WAAW,EAAE,IAAI,CAAC,QAAQ,KAAK,UAAU,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM;gBACrE,WAAW,EAAE,mBAAmB,IAAI,CAAC,WAAW,kBAAkB,MAAM,CAAC,SAAS,EAAE;gBACpF,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,YAAY,EAAE;oBACZ,iBAAiB,EAAE,IAAI;oBACvB,YAAY,EAAE,IAAI;oBAClB,cAAc,EAAE,MAAM,CAAC,UAAU;iBAClC;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|