tryassay 0.23.0 → 0.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/cli.js +31 -6
  2. package/dist/cli.js.map +1 -1
  3. package/dist/commands/assess.d.ts +1 -0
  4. package/dist/commands/assess.js +143 -8
  5. package/dist/commands/assess.js.map +1 -1
  6. package/dist/commands/config-cmd.d.ts +5 -0
  7. package/dist/commands/config-cmd.js +35 -0
  8. package/dist/commands/config-cmd.js.map +1 -0
  9. package/dist/commands/suppress.d.ts +7 -0
  10. package/dist/commands/suppress.js +66 -1
  11. package/dist/commands/suppress.js.map +1 -1
  12. package/dist/lib/__tests__/gap-matcher.test.d.ts +1 -0
  13. package/dist/lib/__tests__/gap-matcher.test.js +291 -0
  14. package/dist/lib/__tests__/gap-matcher.test.js.map +1 -0
  15. package/dist/lib/__tests__/gap-suppression.test.d.ts +1 -0
  16. package/dist/lib/__tests__/gap-suppression.test.js +168 -0
  17. package/dist/lib/__tests__/gap-suppression.test.js.map +1 -0
  18. package/dist/lib/gap-matcher.d.ts +63 -0
  19. package/dist/lib/gap-matcher.js +268 -0
  20. package/dist/lib/gap-matcher.js.map +1 -0
  21. package/dist/lib/intent-extractor.d.ts +5 -0
  22. package/dist/lib/intent-extractor.js +18 -3
  23. package/dist/lib/intent-extractor.js.map +1 -1
  24. package/dist/lib/intent-types.d.ts +11 -0
  25. package/dist/lib/overrides.d.ts +18 -0
  26. package/dist/lib/overrides.js +49 -0
  27. package/dist/lib/overrides.js.map +1 -1
  28. package/dist/lib/publisher.d.ts +19 -1
  29. package/dist/lib/publisher.js +62 -8
  30. package/dist/lib/publisher.js.map +1 -1
  31. package/dist/lib/telemetry.d.ts +39 -0
  32. package/dist/lib/telemetry.js +69 -0
  33. package/dist/lib/telemetry.js.map +1 -0
  34. package/dist/lib/user-config.d.ts +17 -0
  35. package/dist/lib/user-config.js +34 -0
  36. package/dist/lib/user-config.js.map +1 -0
  37. package/dist/types.d.ts +1 -0
  38. package/package.json +1 -1
@@ -0,0 +1,268 @@
1
+ /**
2
+ * Pattern-based gap matching for persistent suppression across LLM rephrases.
3
+ *
4
+ * Gap IDs are SHA256(type + "::" + description), so when the LLM rephrases
5
+ * a gap description between runs, the ID changes. This module provides a
6
+ * deterministic fallback matcher that uses structural anchors (file paths,
7
+ * routes, code identifiers) and normalized token overlap to match
8
+ * conceptually identical gaps even when their descriptions differ.
9
+ *
10
+ * Pure functions only — no I/O, no LLM calls.
11
+ */
12
+ // ── Constants ────────────────────────────────────────────────────────
13
+ export const MATCH_THRESHOLD = 0.55;
14
+ export const MIN_SHARED_EVIDENCE = 2;
15
+ const GENERAL_STOP_WORDS = new Set([
16
+ 'a', 'an', 'the', 'is', 'are', 'was', 'were', 'be', 'been', 'being',
17
+ 'have', 'has', 'had', 'do', 'does', 'did', 'will', 'would', 'could',
18
+ 'should', 'may', 'might', 'shall', 'can', 'need', 'must',
19
+ 'and', 'but', 'or', 'nor', 'not', 'no', 'so', 'yet',
20
+ 'in', 'on', 'at', 'to', 'for', 'of', 'with', 'by', 'from', 'as',
21
+ 'into', 'about', 'between', 'through', 'during', 'before', 'after',
22
+ 'above', 'below', 'up', 'down', 'out', 'off', 'over', 'under',
23
+ 'that', 'this', 'these', 'those', 'it', 'its',
24
+ 'if', 'then', 'else', 'when', 'where', 'how', 'what', 'which', 'who',
25
+ 'all', 'each', 'every', 'both', 'any', 'some', 'such',
26
+ 'more', 'most', 'other', 'only', 'same', 'than',
27
+ 'very', 'just', 'also', 'still',
28
+ ]);
29
+ // Domain-specific stop stems — appear in nearly every gap description
30
+ // and carry no discriminating signal. Stored as stems (post-simpleStem).
31
+ const DOMAIN_STOP_STEMS = new Set([
32
+ 'miss', 'file', 'implement', 'document', 'sourc', 'code',
33
+ 'handler', 'function', 'modul', 'exist', 'dedic',
34
+ 'describ', 'referenc', 'mention', 'configur', 'defin',
35
+ 'provid', 'specif', 'requir', 'expect', 'contain',
36
+ 'current', 'found', 'creat', 'includ', 'appear',
37
+ 'project', 'applic', 'system',
38
+ ]);
39
+ // ── Anchor Extraction ────────────────────────────────────────────────
40
+ /** Regex for file paths: patterns like `src/foo/bar.ts`, `./lib/index.js` */
41
+ const FILE_PATH_RE = /(?:\.{0,2}\/)?(?:[\w.-]+\/)+[\w.-]+\.\w{1,6}/g;
42
+ /** Regex for API routes: patterns like `POST /api/users`, `/api/v2/auth` */
43
+ const ROUTE_RE = /(?:GET|POST|PUT|PATCH|DELETE|HEAD|OPTIONS)\s+\/[\w/.:-]+|\/(?:api|v\d)\/[\w/.:-]+/gi;
44
+ /** Regex for code identifiers: camelCase or snake_case, 6+ chars */
45
+ const CODE_IDENT_RE = /\b(?:[a-z][a-zA-Z0-9]*[A-Z][a-zA-Z0-9]*|[a-z][a-z0-9]*(?:_[a-z0-9]+)+)\b/g;
46
+ /**
47
+ * Extract structural anchors from text: file paths, route patterns, code identifiers.
48
+ * Anchors are concrete code artifacts that survive rephrasing.
49
+ */
50
+ export function extractAnchors(text) {
51
+ if (!text)
52
+ return [];
53
+ const anchors = new Set();
54
+ // File paths
55
+ for (const m of text.matchAll(FILE_PATH_RE)) {
56
+ anchors.add(m[0].toLowerCase());
57
+ }
58
+ // Routes
59
+ for (const m of text.matchAll(ROUTE_RE)) {
60
+ // Normalize: strip HTTP method prefix, lowercase
61
+ const route = m[0].replace(/^(?:GET|POST|PUT|PATCH|DELETE|HEAD|OPTIONS)\s+/i, '').toLowerCase();
62
+ anchors.add(route);
63
+ }
64
+ // Code identifiers (6+ chars only)
65
+ for (const m of text.matchAll(CODE_IDENT_RE)) {
66
+ if (m[0].length >= 6) {
67
+ anchors.add(m[0].toLowerCase());
68
+ }
69
+ }
70
+ return [...anchors];
71
+ }
72
+ // ── Simple Stemming ──────────────────────────────────────────────────
73
+ /**
74
+ * Very simple English stemmer. Strips common suffixes.
75
+ * No external deps. Good enough for overlap comparison.
76
+ */
77
+ export function simpleStem(word) {
78
+ const w = word.toLowerCase();
79
+ // Protect short words from over-stemming
80
+ if (w.length <= 4)
81
+ return w;
82
+ // Order matters: try longest suffixes first
83
+ if (w.endsWith('ation'))
84
+ return w.slice(0, -5);
85
+ if (w.endsWith('tion'))
86
+ return w.slice(0, -4);
87
+ if (w.endsWith('sion'))
88
+ return w.slice(0, -4);
89
+ if (w.endsWith('ment'))
90
+ return w.slice(0, -4);
91
+ if (w.endsWith('ness'))
92
+ return w.slice(0, -4);
93
+ if (w.endsWith('ible'))
94
+ return w.slice(0, -4);
95
+ if (w.endsWith('able'))
96
+ return w.slice(0, -4);
97
+ if (w.endsWith('ious'))
98
+ return w.slice(0, -4);
99
+ if (w.endsWith('ical'))
100
+ return w.slice(0, -4);
101
+ if (w.endsWith('ally'))
102
+ return w.slice(0, -4);
103
+ if (w.endsWith('ful'))
104
+ return w.slice(0, -3);
105
+ if (w.endsWith('ing'))
106
+ return w.slice(0, -3);
107
+ if (w.endsWith('ity'))
108
+ return w.slice(0, -3);
109
+ if (w.endsWith('ive'))
110
+ return w.slice(0, -3);
111
+ if (w.endsWith('ous'))
112
+ return w.slice(0, -3);
113
+ if (w.endsWith('ize'))
114
+ return w.slice(0, -3);
115
+ if (w.endsWith('ise'))
116
+ return w.slice(0, -3);
117
+ if (w.endsWith('ion'))
118
+ return w.slice(0, -3);
119
+ if (w.endsWith('ed') && w.length > 4)
120
+ return w.slice(0, -2);
121
+ if (w.endsWith('er') && w.length > 4)
122
+ return w.slice(0, -2);
123
+ if (w.endsWith('ly') && w.length > 4)
124
+ return w.slice(0, -2);
125
+ if (w.endsWith('es') && w.length > 4)
126
+ return w.slice(0, -2);
127
+ if (w.endsWith('s') && !w.endsWith('ss') && w.length > 4)
128
+ return w.slice(0, -1);
129
+ return w;
130
+ }
131
+ // ── Token Extraction ─────────────────────────────────────────────────
132
+ /**
133
+ * Extract normalized, meaningful tokens from text.
134
+ * Removes general stop words, domain stop stems, and anchor strings
135
+ * (to prevent double-counting when both anchors and tokens are scored).
136
+ */
137
+ export function extractTokens(text, anchors) {
138
+ if (!text)
139
+ return [];
140
+ const anchorSet = new Set(anchors.map(a => a.toLowerCase()));
141
+ // Split on non-alphanumeric, filter empties
142
+ const rawWords = text.toLowerCase().replace(/[^a-z0-9]/g, ' ').split(/\s+/).filter(Boolean);
143
+ const tokens = new Set();
144
+ for (const word of rawWords) {
145
+ // Skip general stop words
146
+ if (GENERAL_STOP_WORDS.has(word))
147
+ continue;
148
+ // Skip very short words
149
+ if (word.length < 3)
150
+ continue;
151
+ // Skip if this word is part of an anchor
152
+ if (anchorSet.has(word))
153
+ continue;
154
+ const stem = simpleStem(word);
155
+ // Skip domain stop stems
156
+ if (DOMAIN_STOP_STEMS.has(stem))
157
+ continue;
158
+ // Skip if stem is too short after stemming
159
+ if (stem.length < 3)
160
+ continue;
161
+ tokens.add(stem);
162
+ }
163
+ return [...tokens];
164
+ }
165
+ // ── Token Overlap with Prefix Matching ───────────────────────────────
166
+ /**
167
+ * Find overlapping tokens between two sets.
168
+ * Uses prefix matching: tokens sharing a 4+ char prefix count as matching.
169
+ * e.g., "auth" matches "authent", "valid" matches "validat"
170
+ */
171
+ export function tokensOverlap(setA, setB) {
172
+ const matched = new Set();
173
+ for (const a of setA) {
174
+ for (const b of setB) {
175
+ if (a === b) {
176
+ matched.add(a);
177
+ continue;
178
+ }
179
+ // Prefix matching: both tokens must be >= 4 chars,
180
+ // and one must be a prefix of the other
181
+ if (a.length >= 4 && b.length >= 4) {
182
+ const shorter = a.length <= b.length ? a : b;
183
+ const longer = a.length <= b.length ? b : a;
184
+ if (longer.startsWith(shorter)) {
185
+ matched.add(shorter);
186
+ }
187
+ }
188
+ }
189
+ }
190
+ return [...matched];
191
+ }
192
+ // ── Core Matching ────────────────────────────────────────────────────
193
+ /**
194
+ * Try to match a gap against a stored suppression using pattern matching.
195
+ * Returns null if no match, or a GapMatchResult with confidence and score.
196
+ *
197
+ * Algorithm:
198
+ * 1. Type must match exactly
199
+ * 2. Extract anchors from both sides
200
+ * 3. High-confidence structural exit: >= 2 anchors on both sides, Jaccard >= 0.7 or >= 3 shared
201
+ * 4. Extract content tokens (minus anchors)
202
+ * 5. Compute token overlap with prefix matching
203
+ * 6. Score = tokenScore + (anchorScore * 0.3) >= 0.55 and total shared >= 2
204
+ */
205
+ export function matchGapToSuppression(gap, suppression) {
206
+ // Type gate — must match exactly
207
+ if (gap.type !== suppression.type)
208
+ return null;
209
+ // Exact ID match (fast path)
210
+ if (gap.gapId && gap.gapId === suppression.gapId) {
211
+ return {
212
+ confidence: 'exact',
213
+ score: 1.0,
214
+ suppressionGapId: suppression.gapId,
215
+ matchedAnchors: [],
216
+ matchedTokens: [],
217
+ };
218
+ }
219
+ // Combine description + evidence for richer matching
220
+ const gapText = [gap.description, gap.evidence ?? ''].join(' ');
221
+ const suppText = [suppression.description, suppression.evidence ?? ''].join(' ');
222
+ // Extract anchors (use pre-computed if available, else compute)
223
+ const gapAnchors = extractAnchors(gapText);
224
+ const suppAnchors = suppression.matchAnchors ?? extractAnchors(suppText);
225
+ // Anchor overlap
226
+ const gapAnchorSet = new Set(gapAnchors);
227
+ const suppAnchorSet = new Set(suppAnchors);
228
+ const sharedAnchors = gapAnchors.filter(a => suppAnchorSet.has(a));
229
+ // High-confidence structural exit
230
+ if (gapAnchorSet.size >= 2 && suppAnchorSet.size >= 2) {
231
+ const union = new Set([...gapAnchors, ...suppAnchors]);
232
+ const jaccard = sharedAnchors.length / union.size;
233
+ if (jaccard >= 0.7 || sharedAnchors.length >= 3) {
234
+ return {
235
+ confidence: 'high',
236
+ score: jaccard,
237
+ suppressionGapId: suppression.gapId,
238
+ matchedAnchors: sharedAnchors,
239
+ matchedTokens: [],
240
+ };
241
+ }
242
+ }
243
+ // Extract tokens (use pre-computed if available)
244
+ const gapTokens = extractTokens(gapText, gapAnchors);
245
+ const suppTokens = suppression.matchTokens ?? extractTokens(suppText, suppAnchors);
246
+ // Token overlap
247
+ const sharedTokens = tokensOverlap(gapTokens, suppTokens);
248
+ // Compute scores using overlap coefficient: |intersection| / min(|A|, |B|)
249
+ const tokenDenom = Math.min(gapTokens.length, suppTokens.length);
250
+ const tokenScore = tokenDenom > 0 ? sharedTokens.length / tokenDenom : 0;
251
+ const anchorDenom = Math.min(gapAnchorSet.size, suppAnchorSet.size);
252
+ const anchorScore = anchorDenom > 0 ? sharedAnchors.length / anchorDenom : 0;
253
+ // Combined score
254
+ const combinedScore = tokenScore + (anchorScore * 0.3);
255
+ // Total shared evidence
256
+ const totalShared = sharedAnchors.length + sharedTokens.length;
257
+ if (combinedScore >= MATCH_THRESHOLD && totalShared >= MIN_SHARED_EVIDENCE) {
258
+ return {
259
+ confidence: 'medium',
260
+ score: combinedScore,
261
+ suppressionGapId: suppression.gapId,
262
+ matchedAnchors: sharedAnchors,
263
+ matchedTokens: sharedTokens,
264
+ };
265
+ }
266
+ return null;
267
+ }
268
+ //# sourceMappingURL=gap-matcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gap-matcher.js","sourceRoot":"","sources":["../../src/lib/gap-matcher.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,11 @@ import type { IntentManifest, IntentFlow, DataEntity, AuthModel, FeatureGroup, I
7
7
  * Broader than inventory-extractor's selection — we want the full picture.
8
8
  */
9
9
  export declare function selectIntentFiles(index: CodebaseIndex, maxFiles?: number): string[];
10
+ /**
11
+ * Generate a deterministic gap ID from type + description.
12
+ * Exported for testing and CLI usage.
13
+ */
14
+ export declare function generateGapId(type: string, description: string): string;
10
15
  /**
11
16
  * Parse the LLM response into a partial IntentManifest (without version/timestamps).
12
17
  * Handles code fences, truncation, and type normalization.
@@ -1,3 +1,4 @@
1
+ import { createHash } from 'node:crypto';
1
2
  import { MODEL } from './anthropic.js';
2
3
  import { getProvider } from './llm-provider.js';
3
4
  import { readFileContent } from './codebase-indexer.js';
@@ -166,12 +167,23 @@ function normalizeFeatureGroup(f) {
166
167
  completeness: VALID_COMPLETENESS.includes(c) ? c : 'partial',
167
168
  };
168
169
  }
170
+ /**
171
+ * Generate a deterministic gap ID from type + description.
172
+ * Exported for testing and CLI usage.
173
+ */
174
+ export function generateGapId(type, description) {
175
+ const input = `${type}::${description}`;
176
+ return createHash('sha256').update(input).digest('hex').slice(0, 8);
177
+ }
169
178
  function normalizeGap(g) {
170
179
  const t = toStr(g.type);
180
+ const gapType = VALID_GAP_TYPES.includes(t) ? t : 'incomplete-flow';
181
+ const description = toStr(g.description);
171
182
  return {
172
- type: VALID_GAP_TYPES.includes(t) ? t : 'incomplete-flow',
173
- description: toStr(g.description),
183
+ type: gapType,
184
+ description,
174
185
  evidence: toStr(g.evidence),
186
+ gapId: generateGapId(gapType, description),
175
187
  };
176
188
  }
177
189
  /**
@@ -374,7 +386,10 @@ Rules:
374
386
  - Every step should have either a codeRef or dataAccess (or both) when identifiable
375
387
  - Be thorough — extract ALL flows, not just the obvious ones
376
388
  - codePaths should reference real files from the file tree
377
- - gaps should have concrete evidence, not speculation`;
389
+ - gaps should have concrete evidence, not speculation
390
+ - Do NOT report gaps for files or modules that are user-installed or external dependencies (skills, plugins, scripts added by end users). Only report gaps for code the project itself ships.
391
+ - Do NOT report "missing file" gaps unless you have strong evidence the file should exist (e.g., an explicit import statement that references it). Absence of a file is not evidence of incompleteness.
392
+ - Do NOT report OAuth token refresh as a gap. Token refresh is typically handled by the OAuth library or external service, not application code.`;
378
393
  const MAX_INTENT_FILE_CHARS = 5000;
379
394
  /**
380
395
  * Extract application intent from a codebase.
@@ -1 +1 @@
1
- {"version":3,"file":"intent-extractor.js","sourceRoot":"","sources":["../../src/lib/intent-extractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAmBxD,MAAM,eAAe,GAAoB;IACvC,cAAc,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB;CACpF,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAU,CAAC;AAChE,MAAM,wBAAwB,GAAG,CAAC,YAAY,EAAE,aAAa,EAAE,cAAc,CAAU,CAAC;AACxF,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAU,CAAC;AAE5D,wEAAwE;AAExE,mEAAmE;AACnE,MAAM,oBAAoB,GAAG;IAC3B,qBAAqB;IACrB,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc;IAC1E,YAAY,EAAE,YAAY,EAAE,YAAY;IACxC,eAAe;IACf,WAAW,EAAE,YAAY,EAAE,aAAa;IACxC,aAAa;IACb,aAAa;CACd,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAoB,EAAE,QAAQ,GAAG,EAAE;IACnE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IAEnC,6DAA6D;IAC7D,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAChC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,uCAAuC;IACvC,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACtC,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YACvD,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,yCAAyC;IACzC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QAC5C,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpC,OAAO,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACvE,CAAC;AAED,wEAAwE;AAExE,SAAS,eAAe,CAAC,IAAY;IACnC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,EAAE,KAAK,CAAC,CAAC;YAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACrC,CAAC;IACD,MAAM,SAAS,GAAG,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,SAAS,KAAK,CAAC,CAAC;QAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAChD,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;AAClB,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,SAAS,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;IAErC,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;QACnB,IAAI,EAAE,KAAK,GAAG;YAAE,UAAU,EAAE,CAAC;QAC7B,IAAI,EAAE,KAAK,GAAG;YAAE,UAAU,EAAE,CAAC;QAC7B,IAAI,EAAE,KAAK,GAAG;YAAE,YAAY,EAAE,CAAC;QAC/B,IAAI,EAAE,KAAK,GAAG;YAAE,YAAY,EAAE,CAAC;IACjC,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE;QAAE,CAAC,IAAI,GAAG,CAAC;IAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE;QAAE,CAAC,IAAI,GAAG,CAAC;IAC9C,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,KAAK,CAAC,CAAU;IACvB,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,gBAAgB,CAAC,CAA0B;IAClD,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACnB,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvG,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,CAA0B;IACrD,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC9B,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QACrB,SAAS,EAAG,cAAoC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAA6B,CAAC,CAAC,CAAC,MAAM;QACtG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxE,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,CAA0B;IAC/C,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;QAC3B,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QACvB,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,OAAkC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzF,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAC,CAAC,UAAqC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtG,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,GAA4B;IACjD,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACjB,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;QACrB,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;QACnC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;QACvB,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;QAC3B,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,KAAmC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE;QAClG,eAAe,EAAE,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC;QAC3C,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;QAC3E,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,SAAuC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE;KAClH,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,CAA0B;IAChD,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACnB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACnB,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;KAC3E,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,CAA0B;IACvD,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACxB,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QACvB,IAAI,EAAG,wBAA8C,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAA+B,CAAC,CAAC,CAAC,aAAa;QACnH,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7D,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,GAA4B;IACnD,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;QACrB,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;QACzB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,MAAoC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE;QACtG,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;YAC7C,CAAC,CAAE,GAAG,CAAC,aAA2C,CAAC,GAAG,CAAC,qBAAqB,CAAC;YAC7E,CAAC,CAAC,EAAE;KACP,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,CAA0B;IAChD,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;QACzB,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;KAC9B,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,GAA4B;IACtD,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC7B,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;QAC5D,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,MAAoC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE;KACvG,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,CAA0B;IACvD,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IAChC,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACnB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;QACxD,YAAY,EAAG,kBAAwC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAiC,CAAC,CAAC,CAAC,SAAS;KACpH,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,CAA0B;IAC9C,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACxB,OAAO;QACL,IAAI,EAAG,eAAqC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAkB,CAAC,CAAC,CAAC,iBAAiB;QACjG,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC;QACjC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;KAC5B,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe;IAOjD,IAAI,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAExC,uDAAuD;IACvD,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAED,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAEvC,IAAI,MAA+B,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAA4B,CAAC;IAC3D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;QAC3C,MAAM,IAAI,KAAK,CACb,0CAA0C,SAAS,CAAC,CAAC,CAAC,oCAAoC,GAAG,QAAQ,CAAC,MAAM,GAAG,mCAAmC,CAAC,CAAC,CAAC,EAAE,KAAK;YAC5J,gBAAgB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;YAC5D,oBAAoB,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI;YAC9C,mBAAmB,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAC1C,CAAC;IACJ,CAAC;IAED,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,KAAmC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE;QACxG,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,SAAuC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE;QACtH,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAoC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACvI,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,UAAwC,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,EAAE;QAC/H,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,IAAkC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;KACrG,CAAC;AACJ,CAAC;AAED,uEAAuE;AAEvE,MAAM,iBAAiB,GAAyE;IAC9F,EAAE,OAAO,EAAE,+EAA+E,EAAE,QAAQ,EAAE,UAAU,EAAE;IAClH,EAAE,OAAO,EAAE,kEAAkE,EAAE,QAAQ,EAAE,UAAU,EAAE;IACrG,EAAE,OAAO,EAAE,yCAAyC,EAAE,QAAQ,EAAE,MAAM,EAAE;IACxE,EAAE,OAAO,EAAE,2DAA2D,EAAE,QAAQ,EAAE,MAAM,EAAE;IAC1F,EAAE,OAAO,EAAE,uDAAuD,EAAE,QAAQ,EAAE,MAAM,EAAE;IACtF,EAAE,OAAO,EAAE,uDAAuD,EAAE,QAAQ,EAAE,QAAQ,EAAE;CACzF,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,KAAK,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,iBAAiB,EAAE,CAAC;QACtD,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,YAAY,CAAC,IAAgB,EAAE,IAAkB;IAC/D,MAAM,MAAM,GAAY,EAAE,CAAC;IAE3B,iBAAiB;IACjB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,SAAS,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QACtE,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,SAAS,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;YAC5D,OAAO,EAAE,IAAI,CAAC,IAAI;YAClB,QAAQ,EAAE,eAAe;YACzB,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC;YAC9B,IAAI;YACJ,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC;IAED,4BAA4B;IAC5B,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,SAAS,IAAI,CAAC,IAAI,cAAc,IAAI,CAAC,eAAe,EAAE,CAAC;QACpE,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,UAAU;YACxB,OAAO,EAAE,IAAI,CAAC,IAAI;YAClB,QAAQ,EAAE,eAAe;YACzB,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC;YAC9B,IAAI;YACJ,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC;IAED,uBAAuB;IACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChD,MAAM,IAAI,GAAG,SAAS,IAAI,CAAC,IAAI,iBAAiB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,QAAQ,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;YACtD,OAAO,EAAE,IAAI,CAAC,IAAI;YAClB,QAAQ,EAAE,eAAe;YACzB,QAAQ,EAAE,QAAQ;YAClB,IAAI;YACJ,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC;IAED,2BAA2B;IAC3B,IAAI,IAAI,EAAE,CAAC;QACT,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC;gBACV,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,QAAQ,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;gBACtD,OAAO,EAAE,IAAI,CAAC,IAAI;gBAClB,QAAQ,EAAE,GAAG,CAAC,IAAI,KAAK,iBAAiB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe;gBACvE,QAAQ,EAAE,MAAM;gBAChB,IAAI,EAAE,QAAQ,GAAG,CAAC,WAAW,EAAE;gBAC/B,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,uEAAuE;AAEvE,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDAkFyB,CAAC;AAEvD,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAEnC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,KAAoB,EACpB,UAAkC;IAElC,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC7C,UAAU,EAAE,CAAC,WAAW,WAAW,CAAC,MAAM,qCAAqC,CAAC,CAAC;IAEjF,IAAI,YAAY,GAAG,EAAE,CAAC;IACtB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,KAAK,MAAM,QAAQ,IAAI,WAAW,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAChE,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,qBAAqB;gBACtD,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,qBAAqB,CAAC,GAAG,mBAAmB;gBAC/D,CAAC,CAAC,OAAO,CAAC;YACZ,YAAY,IAAI,eAAe,QAAQ,SAAS,SAAS,IAAI,CAAC;YAC9D,SAAS,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAED,UAAU,EAAE,CAAC,WAAW,SAAS,iCAAiC,CAAC,CAAC;IAEpE,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEzD,MAAM,WAAW,GAAG;QAClB,oEAAoE;QACpE,EAAE;QACF,uBAAuB,KAAK,CAAC,UAAU,gBAAgB;QACvD,OAAO;QACP,EAAE;QACF,wBAAwB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,EAAE;QAClE,EAAE;QACF,oBAAoB;QACpB,YAAY;KACb,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,MAAM,MAAM,GAAG,MAAM,WAAW,EAAE,CAAC,QAAQ,CAAC;QAC1C,KAAK,EAAE,KAAK;QACZ,SAAS,EAAE,MAAM;QACjB,YAAY,EAAE,oBAAoB;QAClC,UAAU,EAAE,WAAW;KACxB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEnD,MAAM,QAAQ,GAAmB;QAC/B,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,YAAY,EAAE,KAAK,CAAC,QAAQ;QAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,GAAG,MAAM;KACV,CAAC;IAEF,OAAO;QACL,QAAQ;QACR,WAAW,EAAE,MAAM,CAAC,OAAO;QAC3B,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,CAAC;QACpC,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,CAAC;KACvC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"intent-extractor.js","sourceRoot":"","sources":["../../src/lib/intent-extractor.ts"],"names":[],"mappings":"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"}
@@ -61,6 +61,17 @@ export interface IntentGap {
61
61
  type: IntentGapType;
62
62
  description: string;
63
63
  evidence: string;
64
+ gapId?: string;
65
+ }
66
+ export interface IntentGapSuppression {
67
+ gapId: string;
68
+ type: IntentGapType;
69
+ description: string;
70
+ evidence?: string;
71
+ reason: string;
72
+ suppressedAt: string;
73
+ matchAnchors?: string[];
74
+ matchTokens?: string[];
64
75
  }
65
76
  export interface IntentManifest {
66
77
  version: 1;
@@ -1,4 +1,6 @@
1
1
  import type { OverridesConfig } from '../types.js';
2
+ import type { IntentGapType } from './intent-types.js';
3
+ import type { GapLike, GapMatchResult } from './gap-matcher.js';
2
4
  export declare function loadOverrides(basePath: string): Promise<OverridesConfig>;
3
5
  export declare function saveOverrides(basePath: string, overrides: OverridesConfig): Promise<void>;
4
6
  export declare function addSuppression(basePath: string, entry: {
@@ -7,3 +9,19 @@ export declare function addSuppression(basePath: string, entry: {
7
9
  claim: string;
8
10
  reason: string;
9
11
  }): Promise<void>;
12
+ export declare function addGapSuppression(basePath: string, entry: {
13
+ gapId: string;
14
+ type: IntentGapType;
15
+ description: string;
16
+ reason: string;
17
+ evidence?: string;
18
+ matchAnchors?: string[];
19
+ matchTokens?: string[];
20
+ }): Promise<void>;
21
+ export declare function buildSuppressedGapIdSet(overrides: OverridesConfig): Set<string>;
22
+ /**
23
+ * Check if a gap is suppressed — tries exact ID match first,
24
+ * falls back to pattern matching if no exact match found.
25
+ * Returns the match result or null if not suppressed.
26
+ */
27
+ export declare function isGapSuppressed(gap: GapLike, overrides: OverridesConfig): GapMatchResult | null;
@@ -1,5 +1,6 @@
1
1
  import { readFile, writeFile, mkdir } from 'node:fs/promises';
2
2
  import { join } from 'node:path';
3
+ import { matchGapToSuppression } from './gap-matcher.js';
3
4
  const ASSAY_DIR = '.assay';
4
5
  const OVERRIDES_FILE = 'overrides.json';
5
6
  export async function loadOverrides(basePath) {
@@ -29,4 +30,52 @@ export async function addSuppression(basePath, entry) {
29
30
  });
30
31
  await saveOverrides(basePath, overrides);
31
32
  }
33
+ export async function addGapSuppression(basePath, entry) {
34
+ const overrides = await loadOverrides(basePath);
35
+ if (!overrides.gapSuppressions) {
36
+ overrides.gapSuppressions = [];
37
+ }
38
+ const exists = overrides.gapSuppressions.some((s) => s.gapId === entry.gapId);
39
+ if (exists)
40
+ return;
41
+ overrides.gapSuppressions.push({
42
+ ...entry,
43
+ suppressedAt: new Date().toISOString(),
44
+ });
45
+ await saveOverrides(basePath, overrides);
46
+ }
47
+ export function buildSuppressedGapIdSet(overrides) {
48
+ return new Set((overrides.gapSuppressions ?? []).map((s) => s.gapId));
49
+ }
50
+ /**
51
+ * Check if a gap is suppressed — tries exact ID match first,
52
+ * falls back to pattern matching if no exact match found.
53
+ * Returns the match result or null if not suppressed.
54
+ */
55
+ export function isGapSuppressed(gap, overrides) {
56
+ const suppressions = overrides.gapSuppressions ?? [];
57
+ if (suppressions.length === 0)
58
+ return null;
59
+ // Fast path: exact ID match
60
+ if (gap.gapId) {
61
+ const exact = suppressions.find((s) => s.gapId === gap.gapId);
62
+ if (exact) {
63
+ return {
64
+ confidence: 'exact',
65
+ score: 1.0,
66
+ suppressionGapId: exact.gapId,
67
+ matchedAnchors: [],
68
+ matchedTokens: [],
69
+ };
70
+ }
71
+ }
72
+ // Fallback: pattern matching
73
+ for (const supp of suppressions) {
74
+ const result = matchGapToSuppression(gap, supp);
75
+ if (result && result.confidence !== 'exact') {
76
+ return result;
77
+ }
78
+ }
79
+ return null;
80
+ }
32
81
  //# sourceMappingURL=overrides.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../src/lib/overrides.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,MAAM,SAAS,GAAG,QAAQ,CAAC;AAC3B,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAExC,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,QAAgB;IAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;IAC3D,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAoB,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,QAAgB,EAAE,SAA0B;IAC9E,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC1C,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACrF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAgB,EAChB,KAAuE;IAEvE,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/E,IAAI,MAAM;QAAE,OAAO;IAEnB,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC;QAC1B,GAAG,KAAK;QACR,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACtC,YAAY,EAAE,QAAQ;KACvB,CAAC,CAAC;IAEH,MAAM,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../src/lib/overrides.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,20 @@
1
1
  import type { AssessmentResult } from '../types.js';
2
- export declare function publishAssessment(result: AssessmentResult, apiUrl: string, onProgress?: (msg: string) => void): Promise<string>;
2
+ import type { Identity } from './user-config.js';
3
+ export declare class PublishLimitError extends Error {
4
+ readonly used: number;
5
+ readonly limit: number;
6
+ readonly signupUrl: string;
7
+ constructor(used: number, limit: number, signupUrl: string);
8
+ }
9
+ export interface UsageInfo {
10
+ used: number;
11
+ limit: number;
12
+ remaining: number;
13
+ tier: string;
14
+ }
15
+ /**
16
+ * Pre-check quota before running assessment.
17
+ * Returns usage info or null if no identity / endpoint unavailable.
18
+ */
19
+ export declare function checkUsage(apiUrl: string, identity: Identity): Promise<UsageInfo | null>;
20
+ export declare function publishAssessment(result: AssessmentResult, apiUrl: string, onProgress?: (msg: string) => void, identity?: Identity): Promise<string>;
@@ -1,15 +1,69 @@
1
- export async function publishAssessment(result, apiUrl, onProgress) {
2
- // 1. Create assessment
1
+ export class PublishLimitError extends Error {
2
+ used;
3
+ limit;
4
+ signupUrl;
5
+ constructor(used, limit, signupUrl) {
6
+ super(`Report limit reached (${used}/${limit} free reports used).`);
7
+ this.name = 'PublishLimitError';
8
+ this.used = used;
9
+ this.limit = limit;
10
+ this.signupUrl = signupUrl;
11
+ }
12
+ }
13
+ /**
14
+ * Pre-check quota before running assessment.
15
+ * Returns usage info or null if no identity / endpoint unavailable.
16
+ */
17
+ export async function checkUsage(apiUrl, identity) {
18
+ const params = new URLSearchParams();
19
+ if (identity.api_key) {
20
+ // Authenticated check
21
+ }
22
+ else if (identity.email_hash) {
23
+ params.set('email_hash', identity.email_hash);
24
+ }
25
+ else {
26
+ return null;
27
+ }
28
+ try {
29
+ const headers = {};
30
+ if (identity.api_key) {
31
+ headers['Authorization'] = `Bearer ${identity.api_key}`;
32
+ }
33
+ const url = `${apiUrl}/api/v1/assessments/usage${params.toString() ? '?' + params.toString() : ''}`;
34
+ const res = await fetch(url, { headers });
35
+ if (!res.ok)
36
+ return null;
37
+ return (await res.json());
38
+ }
39
+ catch {
40
+ return null; // Endpoint unavailable — don't block assessment
41
+ }
42
+ }
43
+ export async function publishAssessment(result, apiUrl, onProgress, identity) {
44
+ // 1. Create assessment (with identity)
3
45
  onProgress?.('Creating assessment...');
46
+ const headers = { 'Content-Type': 'application/json' };
47
+ if (identity?.api_key) {
48
+ headers['Authorization'] = `Bearer ${identity.api_key}`;
49
+ }
50
+ const createBody = {
51
+ repo_name: result.repoName,
52
+ repo_url: result.repoUrl,
53
+ frameworks: result.frameworks,
54
+ };
55
+ if (identity?.email_hash && !identity.api_key) {
56
+ createBody.email_hash = identity.email_hash;
57
+ }
4
58
  const createRes = await fetch(`${apiUrl}/api/v1/assessments`, {
5
59
  method: 'POST',
6
- headers: { 'Content-Type': 'application/json' },
7
- body: JSON.stringify({
8
- repo_name: result.repoName,
9
- repo_url: result.repoUrl,
10
- frameworks: result.frameworks,
11
- }),
60
+ headers,
61
+ body: JSON.stringify(createBody),
12
62
  });
63
+ if (createRes.status === 402) {
64
+ const data = await createRes.json().catch(() => ({}));
65
+ throw new PublishLimitError(data.used ?? 0, data.limit ?? 5, data.signup_url ?? `${apiUrl}/signup`);
66
+ }
13
67
  if (!createRes.ok) {
14
68
  const text = await createRes.text().catch(() => '');
15
69
  throw new Error(`Failed to create assessment: ${createRes.status} ${text}`);
@@ -1 +1 @@
1
- {"version":3,"file":"publisher.js","sourceRoot":"","sources":["../../src/lib/publisher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publisher.js","sourceRoot":"","sources":["../../src/lib/publisher.ts"],"names":[],"mappings":"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"}