guardlink 1.4.2 → 1.4.3
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 +83 -9
- package/README.md +38 -1
- package/dist/agents/config.d.ts +7 -0
- package/dist/agents/config.d.ts.map +1 -1
- package/dist/agents/config.js.map +1 -1
- package/dist/agents/index.d.ts +1 -1
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +1 -1
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/prompts.d.ts +14 -0
- package/dist/agents/prompts.d.ts.map +1 -1
- package/dist/agents/prompts.js +445 -2
- package/dist/agents/prompts.js.map +1 -1
- package/dist/analyze/format.d.ts +72 -0
- package/dist/analyze/format.d.ts.map +1 -0
- package/dist/analyze/format.js +176 -0
- package/dist/analyze/format.js.map +1 -0
- package/dist/analyze/index.d.ts +76 -0
- package/dist/analyze/index.d.ts.map +1 -1
- package/dist/analyze/index.js +165 -2
- package/dist/analyze/index.js.map +1 -1
- package/dist/analyze/prompts.d.ts +3 -2
- package/dist/analyze/prompts.d.ts.map +1 -1
- package/dist/analyze/prompts.js +16 -2
- package/dist/analyze/prompts.js.map +1 -1
- package/dist/analyzer/sarif.d.ts +3 -2
- package/dist/analyzer/sarif.d.ts.map +1 -1
- package/dist/analyzer/sarif.js +29 -3
- package/dist/analyzer/sarif.js.map +1 -1
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +380 -28
- package/dist/cli/index.js.map +1 -1
- package/dist/dashboard/data.d.ts +11 -0
- package/dist/dashboard/data.d.ts.map +1 -1
- package/dist/dashboard/data.js +12 -0
- package/dist/dashboard/data.js.map +1 -1
- package/dist/dashboard/diagrams.d.ts +81 -12
- package/dist/dashboard/diagrams.d.ts.map +1 -1
- package/dist/dashboard/diagrams.js +750 -362
- package/dist/dashboard/diagrams.js.map +1 -1
- package/dist/dashboard/generate.d.ts +5 -2
- package/dist/dashboard/generate.d.ts.map +1 -1
- package/dist/dashboard/generate.js +2516 -244
- package/dist/dashboard/generate.js.map +1 -1
- package/dist/diff/engine.d.ts +2 -1
- package/dist/diff/engine.d.ts.map +1 -1
- package/dist/diff/engine.js +3 -2
- package/dist/diff/engine.js.map +1 -1
- package/dist/init/index.d.ts.map +1 -1
- package/dist/init/index.js +24 -5
- package/dist/init/index.js.map +1 -1
- package/dist/init/migrate.d.ts +39 -0
- package/dist/init/migrate.d.ts.map +1 -0
- package/dist/init/migrate.js +45 -0
- package/dist/init/migrate.js.map +1 -0
- package/dist/init/templates.d.ts +8 -0
- package/dist/init/templates.d.ts.map +1 -1
- package/dist/init/templates.js +71 -9
- package/dist/init/templates.js.map +1 -1
- package/dist/mcp/lookup.d.ts +1 -0
- package/dist/mcp/lookup.d.ts.map +1 -1
- package/dist/mcp/lookup.js +138 -10
- package/dist/mcp/lookup.js.map +1 -1
- package/dist/mcp/server.d.ts +2 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +20 -8
- package/dist/mcp/server.js.map +1 -1
- package/dist/parser/clear.js +1 -1
- package/dist/parser/clear.js.map +1 -1
- package/dist/parser/feature-filter.d.ts +42 -0
- package/dist/parser/feature-filter.d.ts.map +1 -0
- package/dist/parser/feature-filter.js +109 -0
- package/dist/parser/feature-filter.js.map +1 -0
- package/dist/parser/format.d.ts +24 -0
- package/dist/parser/format.d.ts.map +1 -0
- package/dist/parser/format.js +29 -0
- package/dist/parser/format.js.map +1 -0
- package/dist/parser/index.d.ts +2 -0
- package/dist/parser/index.d.ts.map +1 -1
- package/dist/parser/index.js +1 -0
- package/dist/parser/index.js.map +1 -1
- package/dist/parser/parse-file.d.ts.map +1 -1
- package/dist/parser/parse-file.js +3 -1
- package/dist/parser/parse-file.js.map +1 -1
- package/dist/parser/parse-line.d.ts +3 -0
- package/dist/parser/parse-line.d.ts.map +1 -1
- package/dist/parser/parse-line.js +78 -22
- package/dist/parser/parse-line.js.map +1 -1
- package/dist/parser/parse-project.js +19 -0
- package/dist/parser/parse-project.js.map +1 -1
- package/dist/parser/validate.d.ts +3 -0
- package/dist/parser/validate.d.ts.map +1 -1
- package/dist/parser/validate.js +7 -0
- package/dist/parser/validate.js.map +1 -1
- package/dist/report/index.d.ts +1 -0
- package/dist/report/index.d.ts.map +1 -1
- package/dist/report/index.js +1 -0
- package/dist/report/index.js.map +1 -1
- package/dist/report/report.d.ts.map +1 -1
- package/dist/report/report.js +924 -24
- package/dist/report/report.js.map +1 -1
- package/dist/report/sequence.d.ts +11 -0
- package/dist/report/sequence.d.ts.map +1 -0
- package/dist/report/sequence.js +140 -0
- package/dist/report/sequence.js.map +1 -0
- package/dist/tui/commands.d.ts +1 -0
- package/dist/tui/commands.d.ts.map +1 -1
- package/dist/tui/commands.js +83 -4
- package/dist/tui/commands.js.map +1 -1
- package/dist/tui/index.d.ts.map +1 -1
- package/dist/tui/index.js +7 -2
- package/dist/tui/index.js.map +1 -1
- package/dist/types/index.d.ts +57 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/workspace/merge.d.ts.map +1 -1
- package/dist/workspace/merge.js +6 -2
- package/dist/workspace/merge.js.map +1 -1
- package/package.json +1 -1
package/dist/init/templates.js
CHANGED
|
@@ -35,6 +35,8 @@ LIFECYCLE
|
|
|
35
35
|
@handles <pii|phi|financial|secrets|internal|public> on <Asset>
|
|
36
36
|
@assumes <Asset> -- "unverified assumption"
|
|
37
37
|
|
|
38
|
+
METADATA @feature "Feature Name" -- "tag code with a feature for filtering"
|
|
39
|
+
|
|
38
40
|
COMMENT @comment -- "security-relevant developer note"
|
|
39
41
|
|
|
40
42
|
PROTECT @shield -- "reason"
|
|
@@ -52,7 +54,7 @@ Append after severity: \`cwe:CWE-89\`, \`owasp:A03:2021\`, \`capec:CAPEC-66\`, \
|
|
|
52
54
|
## Rules
|
|
53
55
|
|
|
54
56
|
1. **Annotate as you code.** When you write or modify security-relevant code (endpoints, auth, data access, validation, I/O, crypto, process spawning), add annotations in the same change. This is required, not optional.
|
|
55
|
-
2. **Define once, reference everywhere.** \`@asset\`, \`@threat\`, \`@control\` with \`(#id)\` go in \`.guardlink/definitions${project.definitionsExt}\`.
|
|
57
|
+
2. **Define once, reference everywhere.** \`@asset\`, \`@threat\`, \`@control\` with \`(#id)\` go in \`.guardlink/definitions${project.definitionsExt}\`. Source files use relationship verbs only (\`@mitigates\`, \`@exposes\`, etc.).
|
|
56
58
|
3. **Read definitions before adding.** Check for existing IDs first — avoid duplicates.
|
|
57
59
|
4. **Every \`@exposes\` needs a response.** Match with \`@mitigates\` (fix exists) or \`@audit\` (flag for human review). AI agents must NEVER write \`@accepts\` — that is a human-only governance decision. Use \`@audit\` instead.
|
|
58
60
|
5. **Use the full verb set.** \`@flows\` for data movement, \`@handles\` for data classification, \`@boundary\` for trust boundaries.
|
|
@@ -68,6 +70,7 @@ Append after severity: \`cwe:CWE-89\`, \`owasp:A03:2021\`, \`capec:CAPEC-66\`, \
|
|
|
68
70
|
| Implementing a fix | \`@mitigates Asset against #threat using #control\` |
|
|
69
71
|
| Processing sensitive data | \`@handles pii on Asset\` |
|
|
70
72
|
| Proprietary algorithm | \`@shield:begin\` ... \`@shield:end\` |
|
|
73
|
+
| Tagging code to a feature | \`@feature "SSO Login" -- "Single sign-on flow"\` |
|
|
71
74
|
| Unsure which annotation | \`@comment -- "describe what you see"\` |
|
|
72
75
|
|
|
73
76
|
## Commands
|
|
@@ -77,6 +80,8 @@ guardlink validate . # Check for errors
|
|
|
77
80
|
guardlink report . # Generate threat-model.md
|
|
78
81
|
guardlink status . # Coverage summary
|
|
79
82
|
guardlink suggest <file> # Get annotation suggestions
|
|
83
|
+
guardlink feature list # List all @feature tags
|
|
84
|
+
guardlink feature show <name> # Show model for a specific feature
|
|
80
85
|
\`\`\`
|
|
81
86
|
|
|
82
87
|
## MCP Tools
|
|
@@ -98,7 +103,7 @@ export function agentInstructions(project) {
|
|
|
98
103
|
return `
|
|
99
104
|
## GuardLink — Security Annotations (Required)
|
|
100
105
|
|
|
101
|
-
This project uses [GuardLink](https://guardlink.bugb.io) annotations in source code comments
|
|
106
|
+
This project uses [GuardLink](https://guardlink.bugb.io) annotations in source code comments.
|
|
102
107
|
**Full reference: \`docs/GUARDLINK_REFERENCE.md\`**
|
|
103
108
|
|
|
104
109
|
### Core Requirement
|
|
@@ -109,11 +114,12 @@ This project uses [GuardLink](https://guardlink.bugb.io) annotations in source c
|
|
|
109
114
|
|
|
110
115
|
1. **Annotate new code.** When you add a function, endpoint, or module that handles user input, accesses data, crosses a trust boundary, or could fail in a security-relevant way — add \`@exposes\`, \`@mitigates\`, \`@flows\`, \`@handles\`, or at minimum \`@comment\` annotations. This is not optional.
|
|
111
116
|
2. **NEVER write \`@accepts\`.** That is a human-only governance decision. When you find a risk with no mitigation in code, write \`@exposes\` to document the risk + \`@audit\` to flag it for human review + \`@comment\` to suggest potential controls.
|
|
112
|
-
3.
|
|
113
|
-
4.
|
|
114
|
-
5.
|
|
115
|
-
6.
|
|
116
|
-
7.
|
|
117
|
+
3. **Use \`@confirmed\` for verified exploits.** When a pentest, CXG scan, or manual reproduction proves a threat is exploitable, mark it with \`@confirmed #threat on Asset [severity] -- "evidence"\`. This is distinct from \`@exposes\` (theoretical) — \`@confirmed\` means real, verified, not a false positive. Include severity based on actual observed impact.
|
|
118
|
+
4. Do not delete or mangle existing annotations. Treat them as part of the code. Edit only when intentionally changing the threat model.
|
|
119
|
+
5. Definitions (\`@asset\`, \`@threat\`, \`@control\` with \`(#id)\`) live in \`.guardlink/definitions${project.definitionsExt}\`. Reuse existing \`#id\`s — never redefine. If you need a new asset or threat, add the definition there first, then reference it in source files.
|
|
120
|
+
6. Source files use relationship verbs only: \`@mitigates\`, \`@exposes\`, \`@confirmed\`, \`@flows\`, \`@handles\`, \`@boundary\`, \`@comment\`, \`@validates\`, \`@audit\`, \`@owns\`, \`@assumes\`, \`@transfers\`, \`@feature\`.
|
|
121
|
+
7. Write coupled annotation blocks that tell a complete story: risk + control (or audit) + data flow + context note. Never write a lone \`@exposes\` without follow-up.
|
|
122
|
+
8. Avoid \`@shield\` unless a human explicitly asks to hide code from AI — it creates blind spots.
|
|
117
123
|
|
|
118
124
|
### Workflow (while coding)
|
|
119
125
|
|
|
@@ -138,6 +144,8 @@ This project uses [GuardLink](https://guardlink.bugb.io) annotations in source c
|
|
|
138
144
|
@handles pii on App.API -- "Processes email and session token"
|
|
139
145
|
@validates #prepared-stmts for App.API -- "sqlInjectionTest.ts ensures placeholders used"
|
|
140
146
|
@audit App.API -- "Token rotation logic needs crypto review"
|
|
147
|
+
@confirmed #sqli on App.API [critical] cwe:CWE-89 -- "Pentest verified: raw SQL injection via email param"
|
|
148
|
+
@feature "SSO Login" -- "Single sign-on authentication flow"
|
|
141
149
|
@owns security-team for App.API -- "Team responsible for reviews"
|
|
142
150
|
@comment -- "Rate limit: 100 req/15min via express-rate-limit"
|
|
143
151
|
\`\`\`
|
|
@@ -173,6 +181,14 @@ export function buildModelContext(model) {
|
|
|
173
181
|
if (unmitigated.length > 25)
|
|
174
182
|
sections.push(`- ... and ${unmitigated.length - 25} more`);
|
|
175
183
|
}
|
|
184
|
+
// Confirmed exploitable findings
|
|
185
|
+
if ((model.confirmed || []).length > 0) {
|
|
186
|
+
sections.push('\n### 🔴 Confirmed Exploitable (verified, not false positives)\n');
|
|
187
|
+
const confirmedLines = model.confirmed.slice(0, 25).map(c => `- ${c.asset} confirmed ${c.threat}${c.severity ? ` [${c.severity}]` : ''} (${c.location.file}:${c.location.line})`);
|
|
188
|
+
sections.push(confirmedLines.join('\n'));
|
|
189
|
+
if (model.confirmed.length > 25)
|
|
190
|
+
sections.push(`- ... and ${model.confirmed.length - 25} more`);
|
|
191
|
+
}
|
|
176
192
|
// Existing flows (top 20)
|
|
177
193
|
if (model.flows.length > 0) {
|
|
178
194
|
sections.push('\n### Existing Data Flows (extend, don\'t duplicate)\n');
|
|
@@ -181,6 +197,12 @@ export function buildModelContext(model) {
|
|
|
181
197
|
if (model.flows.length > 20)
|
|
182
198
|
sections.push(`- ... and ${model.flows.length - 20} more`);
|
|
183
199
|
}
|
|
200
|
+
// Features
|
|
201
|
+
const uniqueFeatures = new Set((model.features || []).map(f => f.feature));
|
|
202
|
+
if (uniqueFeatures.size > 0) {
|
|
203
|
+
sections.push('\n### Features (filter with `--feature`)\n');
|
|
204
|
+
sections.push([...uniqueFeatures].sort().map(f => `- "${f}"`).join('\n'));
|
|
205
|
+
}
|
|
184
206
|
// Summary stats
|
|
185
207
|
const stats = [
|
|
186
208
|
`${model.annotations_parsed} annotations`,
|
|
@@ -188,8 +210,10 @@ export function buildModelContext(model) {
|
|
|
188
210
|
`${model.threats.length} threats`,
|
|
189
211
|
`${model.controls.length} controls`,
|
|
190
212
|
`${model.exposures.length} exposures`,
|
|
213
|
+
`${(model.confirmed || []).length} confirmed`,
|
|
191
214
|
`${model.mitigations.length} mitigations`,
|
|
192
215
|
`${model.flows.length} flows`,
|
|
216
|
+
...(uniqueFeatures.size > 0 ? [`${uniqueFeatures.size} features`] : []),
|
|
193
217
|
].join(', ');
|
|
194
218
|
sections.push(`\n### Model Stats\n\n${stats}`);
|
|
195
219
|
return sections.join('\n');
|
|
@@ -247,7 +271,7 @@ export function cursorRulesContent(project) {
|
|
|
247
271
|
return `
|
|
248
272
|
# GuardLink Security Annotations
|
|
249
273
|
|
|
250
|
-
This project uses GuardLink annotations in source code comments
|
|
274
|
+
This project uses GuardLink annotations in source code comments.
|
|
251
275
|
|
|
252
276
|
## Core Requirement
|
|
253
277
|
Every time you write or modify code that touches security-relevant behavior, you MUST add GuardLink annotations in the same change. This includes: new endpoints, auth logic, data validation, database queries, file I/O, external API calls, crypto, process spawning, user input handling, config parsing. Do NOT annotate pure business logic, formatting utilities, UI components, or helpers that never touch security boundaries.
|
|
@@ -255,9 +279,10 @@ Every time you write or modify code that touches security-relevant behavior, you
|
|
|
255
279
|
## Key Rules
|
|
256
280
|
- ANNOTATE NEW CODE. When you add a function or endpoint that handles user input, accesses data, or crosses a trust boundary — add @exposes, @mitigates, @flows, @handles, or at minimum @comment. This is not optional.
|
|
257
281
|
- NEVER write @accepts — that is a human-only governance decision. For risks with no mitigation: write @exposes + @audit + @comment suggesting potential controls.
|
|
282
|
+
- Use @confirmed for verified exploits. When pentest/scanning/manual reproduction proves a threat is exploitable: @confirmed #threat on Asset [severity] -- "evidence". Distinct from @exposes (theoretical) — @confirmed means real, verified, no false positives.
|
|
258
283
|
- Preserve existing annotations — do not delete or mangle them.
|
|
259
284
|
- Definitions (@asset, @threat, @control with (#id)) live in .guardlink/definitions${project.definitionsExt}. Reuse IDs — never redefine. Add new definitions there first, then reference in source files.
|
|
260
|
-
-
|
|
285
|
+
- Source files use relationship verbs: @mitigates, @exposes, @confirmed, @flows, @handles, @boundary, @comment, @validates, @audit, @owns, @assumes, @transfers, @feature.
|
|
261
286
|
- Write coupled annotation blocks: risk + control (or audit) + data flow + context note.
|
|
262
287
|
- Avoid @shield unless a human explicitly asks to hide code from AI.
|
|
263
288
|
|
|
@@ -276,6 +301,8 @@ Every time you write or modify code that touches security-relevant behavior, you
|
|
|
276
301
|
- @handles pii on App.API -- "Processes email, token"
|
|
277
302
|
- @validates #prepared-stmts for App.API -- "CI test ensures placeholders"
|
|
278
303
|
- @audit App.API -- "Token rotation review"
|
|
304
|
+
- @confirmed #sqli on App.API [critical] cwe:CWE-89 -- "Pentest verified: raw SQL injection via email param"
|
|
305
|
+
- @feature "SSO Login" -- "Single sign-on authentication flow"
|
|
279
306
|
- @owns security-team for App.API -- "Team responsible"
|
|
280
307
|
- @comment -- "Rate limit: 100 req/15min"
|
|
281
308
|
`.trimStart();
|
|
@@ -377,6 +404,41 @@ function defaultIncludeForLanguage(lang) {
|
|
|
377
404
|
}
|
|
378
405
|
}
|
|
379
406
|
// ─── MCP configuration ──────────────────────────────────────────────
|
|
407
|
+
// ─── Project description template ─────────────────────────────────
|
|
408
|
+
/**
|
|
409
|
+
* Generate skeleton .guardlink/prompt.md for `guardlink report`.
|
|
410
|
+
*
|
|
411
|
+
* During `init` this creates a placeholder that guides users (and AI agents
|
|
412
|
+
* during `annotate`) on what to fill in. The content feeds into the
|
|
413
|
+
* "Application Overview" section of the generated threat model report.
|
|
414
|
+
*/
|
|
415
|
+
export function promptMdContent(project) {
|
|
416
|
+
return `# ${project.name} — Project Description
|
|
417
|
+
|
|
418
|
+
<!-- This file feeds into \`guardlink report\` as the Application Overview section. -->
|
|
419
|
+
<!-- Fill it in manually, or let \`guardlink annotate\` generate it with AI assistance. -->
|
|
420
|
+
|
|
421
|
+
## What This Application Does
|
|
422
|
+
|
|
423
|
+
<!-- Brief description: what does the project do, who are its users? -->
|
|
424
|
+
|
|
425
|
+
## Key Components
|
|
426
|
+
|
|
427
|
+
<!-- List the major modules, services, or subsystems (e.g., API server, auth service, worker queue). -->
|
|
428
|
+
|
|
429
|
+
## Trust Boundaries
|
|
430
|
+
|
|
431
|
+
<!-- Where does trust change? e.g., public internet → API gateway, app → database, app → third-party API. -->
|
|
432
|
+
|
|
433
|
+
## Data Sensitivity
|
|
434
|
+
|
|
435
|
+
<!-- What sensitive data does this project handle? (PII, credentials, financial data, health records, etc.) -->
|
|
436
|
+
|
|
437
|
+
## Deployment Context
|
|
438
|
+
|
|
439
|
+
<!-- How and where is this deployed? (cloud provider, containerized, on-prem, CI/CD pipeline, etc.) -->
|
|
440
|
+
`;
|
|
441
|
+
}
|
|
380
442
|
/**
|
|
381
443
|
* Generate .mcp.json for Claude Code auto-configuration.
|
|
382
444
|
* When committed to repo, Claude Code automatically connects to the MCP server.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/init/templates.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,wEAAwE;AAExE;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAoB;IACtD,OAAO;;8BAEqB,OAAO,CAAC,IAAI
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/init/templates.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/lookup.d.ts
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* - "flows into #engine" → data flows with target = engine
|
|
11
11
|
* - "flows from #config" → data flows with source = config
|
|
12
12
|
* - "unmitigated" → all unmitigated exposures
|
|
13
|
+
* - "confirmed" → @confirmed verified exploitable findings
|
|
13
14
|
* - "boundary #config" → boundaries involving asset
|
|
14
15
|
* - Free text → fuzzy match across assets, threats, controls
|
|
15
16
|
*
|
package/dist/mcp/lookup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lookup.d.ts","sourceRoot":"","sources":["../../src/mcp/lookup.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"lookup.d.ts","sourceRoot":"","sources":["../../src/mcp/lookup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EACV,WAAW,EAGZ,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,GAAG,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,YAAY,CAiGtE"}
|
package/dist/mcp/lookup.js
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* - "flows into #engine" → data flows with target = engine
|
|
11
11
|
* - "flows from #config" → data flows with source = config
|
|
12
12
|
* - "unmitigated" → all unmitigated exposures
|
|
13
|
+
* - "confirmed" → @confirmed verified exploitable findings
|
|
13
14
|
* - "boundary #config" → boundaries involving asset
|
|
14
15
|
* - Free text → fuzzy match across assets, threats, controls
|
|
15
16
|
*
|
|
@@ -52,6 +53,25 @@ export function lookup(model, query) {
|
|
|
52
53
|
if (/^unmitigated/.test(q)) {
|
|
53
54
|
return lookupUnmitigated(model, query);
|
|
54
55
|
}
|
|
56
|
+
// ── "confirmed" (verified exploitable @confirmed annotations) ──
|
|
57
|
+
if (/^confirmed(\s|$)/.test(q)) {
|
|
58
|
+
return lookupConfirmed(model, query);
|
|
59
|
+
}
|
|
60
|
+
// ── "features" ──
|
|
61
|
+
if (/^features?(\s|$)/.test(q)) {
|
|
62
|
+
const byName = new Map();
|
|
63
|
+
for (const f of (model.features || [])) {
|
|
64
|
+
const key = f.feature.toLowerCase();
|
|
65
|
+
if (!byName.has(key)) {
|
|
66
|
+
byName.set(key, { name: f.feature, files: new Set(), description: f.description });
|
|
67
|
+
}
|
|
68
|
+
byName.get(key).files.add(f.location.file);
|
|
69
|
+
}
|
|
70
|
+
const results = [...byName.values()]
|
|
71
|
+
.sort((a, b) => a.name.localeCompare(b.name))
|
|
72
|
+
.map(v => ({ feature: v.name, files: [...v.files], description: v.description }));
|
|
73
|
+
return { query, type: 'features', count: results.length, results };
|
|
74
|
+
}
|
|
55
75
|
// ── "threats for <asset>" ──
|
|
56
76
|
const threatsFor = q.match(/^threats?\s+(?:for|targeting|on)\s+(.+)/);
|
|
57
77
|
if (threatsFor)
|
|
@@ -110,6 +130,18 @@ function lookupUnmitigated(model, query) {
|
|
|
110
130
|
}));
|
|
111
131
|
return { query, type: 'unmitigated_exposures', count: results.length, results };
|
|
112
132
|
}
|
|
133
|
+
function lookupConfirmed(model, query) {
|
|
134
|
+
const results = (model.confirmed || []).map(c => ({
|
|
135
|
+
asset: c.asset,
|
|
136
|
+
threat: c.threat,
|
|
137
|
+
severity: c.severity,
|
|
138
|
+
description: c.description,
|
|
139
|
+
external_refs: c.external_refs,
|
|
140
|
+
file: c.location.file,
|
|
141
|
+
line: c.location.line,
|
|
142
|
+
}));
|
|
143
|
+
return { query, type: 'confirmed_exploitable', count: results.length, results };
|
|
144
|
+
}
|
|
113
145
|
function lookupThreatsFor(model, query, assetRef, resolve) {
|
|
114
146
|
const aliases = resolve(assetRef);
|
|
115
147
|
const exposures = model.exposures.filter(e => matchRef(e.asset, assetRef, aliases));
|
|
@@ -164,19 +196,64 @@ function lookupBoundaries(model, query, assetRef, resolve) {
|
|
|
164
196
|
function lookupAsset(model, query, ref, resolve) {
|
|
165
197
|
const aliases = resolve(ref);
|
|
166
198
|
const asset = model.assets.find(a => matchRef(a.id || '', ref, aliases) || matchRef(a.path.join('.'), ref, aliases));
|
|
167
|
-
if (!asset)
|
|
168
|
-
return { query, type: 'asset', count: 0, results: [] };
|
|
169
199
|
const exposures = model.exposures.filter(e => matchRef(e.asset, ref, aliases));
|
|
170
200
|
const mitigations = model.mitigations.filter(m => matchRef(m.asset, ref, aliases));
|
|
171
201
|
const inFlows = model.flows.filter(f => matchRef(f.target, ref, aliases));
|
|
172
202
|
const outFlows = model.flows.filter(f => matchRef(f.source, ref, aliases));
|
|
203
|
+
const confirmed = (model.confirmed || []).filter(c => matchRef(c.asset, ref, aliases));
|
|
204
|
+
const acceptances = model.acceptances.filter(a => matchRef(a.asset, ref, aliases));
|
|
205
|
+
const audits = model.audits.filter(a => matchRef(a.asset, ref, aliases));
|
|
206
|
+
const boundaries = model.boundaries.filter(b => matchRef(b.asset_a, ref, aliases) || matchRef(b.asset_b, ref, aliases));
|
|
207
|
+
// Asset is declared in definitions.ts — return the full record.
|
|
208
|
+
if (asset) {
|
|
209
|
+
return {
|
|
210
|
+
query, type: 'asset', count: 1,
|
|
211
|
+
results: [{
|
|
212
|
+
...asset,
|
|
213
|
+
declared: true,
|
|
214
|
+
relationships: {
|
|
215
|
+
exposures: exposures.map(e => ({ threat: e.threat, severity: e.severity })),
|
|
216
|
+
mitigations: mitigations.map(m => ({ threat: m.threat, control: m.control })),
|
|
217
|
+
confirmed: confirmed.map(c => ({ threat: c.threat, severity: c.severity })),
|
|
218
|
+
inbound_flows: inFlows.map(f => ({ from: f.source, mechanism: f.mechanism })),
|
|
219
|
+
outbound_flows: outFlows.map(f => ({ to: f.target, mechanism: f.mechanism })),
|
|
220
|
+
},
|
|
221
|
+
}],
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
// Asset is undeclared but referenced by one or more annotations — synthesize
|
|
225
|
+
// a stub record so the query agrees with `threats for #id`, `unmitigated`,
|
|
226
|
+
// `confirmed`, etc., which all join through the referencing annotations.
|
|
227
|
+
const referencedIn = [];
|
|
228
|
+
if (exposures.length)
|
|
229
|
+
referencedIn.push('exposures');
|
|
230
|
+
if (mitigations.length)
|
|
231
|
+
referencedIn.push('mitigations');
|
|
232
|
+
if (confirmed.length)
|
|
233
|
+
referencedIn.push('confirmed');
|
|
234
|
+
if (acceptances.length)
|
|
235
|
+
referencedIn.push('acceptances');
|
|
236
|
+
if (audits.length)
|
|
237
|
+
referencedIn.push('audits');
|
|
238
|
+
if (inFlows.length || outFlows.length)
|
|
239
|
+
referencedIn.push('flows');
|
|
240
|
+
if (boundaries.length)
|
|
241
|
+
referencedIn.push('boundaries');
|
|
242
|
+
if (referencedIn.length === 0) {
|
|
243
|
+
return { query, type: 'asset', count: 0, results: [] };
|
|
244
|
+
}
|
|
245
|
+
const id = ref.replace(/^#/, '');
|
|
173
246
|
return {
|
|
174
247
|
query, type: 'asset', count: 1,
|
|
175
248
|
results: [{
|
|
176
|
-
|
|
249
|
+
id,
|
|
250
|
+
path: [id],
|
|
251
|
+
declared: false,
|
|
252
|
+
referenced_in: referencedIn,
|
|
177
253
|
relationships: {
|
|
178
254
|
exposures: exposures.map(e => ({ threat: e.threat, severity: e.severity })),
|
|
179
255
|
mitigations: mitigations.map(m => ({ threat: m.threat, control: m.control })),
|
|
256
|
+
confirmed: confirmed.map(c => ({ threat: c.threat, severity: c.severity })),
|
|
180
257
|
inbound_flows: inFlows.map(f => ({ from: f.source, mechanism: f.mechanism })),
|
|
181
258
|
outbound_flows: outFlows.map(f => ({ to: f.target, mechanism: f.mechanism })),
|
|
182
259
|
},
|
|
@@ -235,26 +312,77 @@ function lookupMitigationsFor(model, query, assetRef, resolve) {
|
|
|
235
312
|
function lookupFuzzy(model, query, q) {
|
|
236
313
|
const ref = q.replace(/^#/, '');
|
|
237
314
|
const results = [];
|
|
238
|
-
// Try assets
|
|
315
|
+
// Try declared assets
|
|
239
316
|
for (const a of model.assets) {
|
|
240
317
|
if (matchRef(a.id || '', ref) || matchRef(a.path.join('.'), ref)) {
|
|
241
|
-
results.push({ type: 'asset', id: a.id, path: a.path.join('.'), description: a.description });
|
|
318
|
+
results.push({ type: 'asset', id: a.id, path: a.path.join('.'), description: a.description, declared: true });
|
|
242
319
|
}
|
|
243
320
|
}
|
|
244
|
-
// Try threats
|
|
321
|
+
// Try declared threats
|
|
245
322
|
for (const t of model.threats) {
|
|
246
323
|
if (matchRef(t.id || '', ref) || matchRef(t.canonical_name, ref)) {
|
|
247
|
-
results.push({ type: 'threat', id: t.id, name: t.canonical_name, severity: t.severity });
|
|
324
|
+
results.push({ type: 'threat', id: t.id, name: t.canonical_name, severity: t.severity, declared: true });
|
|
248
325
|
}
|
|
249
326
|
}
|
|
250
|
-
// Try controls
|
|
327
|
+
// Try declared controls
|
|
251
328
|
for (const c of model.controls) {
|
|
252
329
|
if (matchRef(c.id || '', ref) || matchRef(c.canonical_name, ref)) {
|
|
253
|
-
results.push({ type: 'control', id: c.id, name: c.canonical_name });
|
|
330
|
+
results.push({ type: 'control', id: c.id, name: c.canonical_name, declared: true });
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
// Fall back to referenced-but-undeclared identifiers across the annotation
|
|
334
|
+
// graph. Without this, `unmitigated` returns #login-sqli but bare #login-sqli
|
|
335
|
+
// says no_match — two queries disagreeing about the same identifier.
|
|
336
|
+
if (results.length === 0) {
|
|
337
|
+
const seen = new Set();
|
|
338
|
+
const addRef = (kind, id, source, extra = {}) => {
|
|
339
|
+
const key = `${kind}::${id}`;
|
|
340
|
+
if (seen.has(key))
|
|
341
|
+
return;
|
|
342
|
+
seen.add(key);
|
|
343
|
+
results.push({ type: kind, id, path: id, declared: false, referenced_in: [source], ...extra });
|
|
344
|
+
};
|
|
345
|
+
const matchAndAdd = (kind, value, source, extra = {}) => {
|
|
346
|
+
if (!value)
|
|
347
|
+
return;
|
|
348
|
+
const v = value.replace(/^#/, '');
|
|
349
|
+
if (matchRef(value, ref))
|
|
350
|
+
addRef(kind, v, source, extra);
|
|
351
|
+
};
|
|
352
|
+
for (const e of model.exposures) {
|
|
353
|
+
matchAndAdd('asset', e.asset, 'exposures', { severity: e.severity });
|
|
354
|
+
matchAndAdd('threat', e.threat, 'exposures', { severity: e.severity });
|
|
355
|
+
}
|
|
356
|
+
for (const c of (model.confirmed || [])) {
|
|
357
|
+
matchAndAdd('asset', c.asset, 'confirmed', { severity: c.severity });
|
|
358
|
+
matchAndAdd('threat', c.threat, 'confirmed', { severity: c.severity });
|
|
359
|
+
}
|
|
360
|
+
for (const m of model.mitigations) {
|
|
361
|
+
matchAndAdd('asset', m.asset, 'mitigations');
|
|
362
|
+
matchAndAdd('threat', m.threat, 'mitigations');
|
|
363
|
+
matchAndAdd('control', m.control || '', 'mitigations');
|
|
364
|
+
}
|
|
365
|
+
for (const a of model.acceptances) {
|
|
366
|
+
matchAndAdd('asset', a.asset, 'acceptances');
|
|
367
|
+
matchAndAdd('threat', a.threat, 'acceptances');
|
|
368
|
+
}
|
|
369
|
+
for (const f of model.flows) {
|
|
370
|
+
matchAndAdd('asset', f.source, 'flows');
|
|
371
|
+
matchAndAdd('asset', f.target, 'flows');
|
|
372
|
+
}
|
|
373
|
+
for (const b of model.boundaries) {
|
|
374
|
+
matchAndAdd('asset', b.asset_a, 'boundaries');
|
|
375
|
+
matchAndAdd('asset', b.asset_b, 'boundaries');
|
|
254
376
|
}
|
|
255
377
|
}
|
|
256
378
|
if (results.length === 0) {
|
|
257
|
-
|
|
379
|
+
// Hint travels through two JSON.stringify passes (MCP content wrap +
|
|
380
|
+
// JSON-RPC envelope). Embedded double quotes get escaped to \\\" and
|
|
381
|
+
// render as literal backslashes in clients that print the raw text —
|
|
382
|
+
// use backticks around examples instead.
|
|
383
|
+
return { query, type: 'no_match', count: 0, results: [{
|
|
384
|
+
hint: `No match for ${query}. Try: \`asset <name>\`, \`threats for <asset>\`, \`unmitigated\`, \`flows into <asset>\``,
|
|
385
|
+
}] };
|
|
258
386
|
}
|
|
259
387
|
return { query, type: 'mixed', count: results.length, results };
|
|
260
388
|
}
|
package/dist/mcp/lookup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/mcp/lookup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/mcp/lookup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAmBH,MAAM,UAAU,MAAM,CAAC,KAAkB,EAAE,KAAa;IACtD,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAErC,kCAAkC;IAClC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC;YACT,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YACrD,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,CAAC,EAAE;YAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,CAAC,EAAE;YAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,4DAA4D;IAC5D,MAAM,OAAO,GAAG,CAAC,GAAW,EAAY,EAAE;QACxC,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC;QACpD,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC;QACpD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,sBAAsB;IACtB,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,OAAO,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,kEAAkE;IAClE,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,OAAO,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,mBAAmB;IACnB,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAsE,CAAC;QAC7F,KAAK,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;YACvC,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YACrF,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;aACjC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aAC5C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACpF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;IACrE,CAAC;IAED,8BAA8B;IAC9B,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACtE,IAAI,UAAU;QAAE,OAAO,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IAErF,+BAA+B;IAC/B,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;IACzE,IAAI,WAAW;QAAE,OAAO,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IAExF,6BAA6B;IAC7B,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC1D,IAAI,SAAS;QAAE,OAAO,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IAEtF,6BAA6B;IAC7B,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAChE,IAAI,SAAS;QAAE,OAAO,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IAEtF,2BAA2B;IAC3B,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;IAC9E,IAAI,SAAS;QAAE,OAAO,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IAEnF,qBAAqB;IACrB,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACxC,IAAI,MAAM;QAAE,OAAO,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IAExE,sBAAsB;IACtB,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC1C,IAAI,OAAO;QAAE,OAAO,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IAE3E,uBAAuB;IACvB,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC5C,IAAI,QAAQ;QAAE,OAAO,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IAE9E,gCAAgC;IAChC,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAChE,IAAI,YAAY;QAAE,OAAO,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IAE3F,kCAAkC;IAClC,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACpE,IAAI,cAAc;QAAE,OAAO,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IAEjG,8CAA8C;IAC9C,OAAO,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,wEAAwE;AAExE,SAAS,iBAAiB,CAAC,KAAkB,EAAE,KAAa;IAC1D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,WAAW;QAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1E,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,WAAW;QAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS;SAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;SACpD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACT,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACtD,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI;KACzE,CAAC,CAAC,CAAC;IACN,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;AAClF,CAAC;AAED,SAAS,eAAe,CAAC,KAAkB,EAAE,KAAa;IACxD,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChD,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,aAAa,EAAE,CAAC,CAAC,aAAa;QAC9B,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI;QACrB,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI;KACtB,CAAC,CAAC,CAAC;IACJ,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;AAClF,CAAC;AAID,SAAS,gBAAgB,CAAC,KAAkB,EAAE,KAAa,EAAE,QAAgB,EAAE,OAAiB;IAC9F,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IACpF,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;IAE5G,qCAAqC;IACrC,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QAChC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,cAAc,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;QAC3F,OAAO;YACL,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,MAAM,EAAE,QAAQ;YACxC,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,MAAM,EAAE,WAAW;YACjD,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,CAAC;YACpF,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,CAAC;SACpF,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;AAC9E,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAkB,EAAE,KAAa,EAAE,QAAgB,EAAE,OAAiB;IAC/F,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IACjF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,cAAc,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;QAC/F,OAAO;YACL,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM;YACpC,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,OAAO,EAAE,WAAW;YAClD,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI;SAC7C,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;AAC/E,CAAC;AAED,SAAS,WAAW,CAAC,KAAkB,EAAE,KAAa,EAAE,SAA0B,EAAE,QAAgB,EAAE,OAAiB;IACrH,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK;SACxB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;SACjH,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACT,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS;QAC1D,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI;KACzE,CAAC,CAAC,CAAC;IACN,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,SAAS,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;AAC/E,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAkB,EAAE,KAAa,EAAE,QAAgB,EAAE,OAAiB;IAC9F,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU;SAC7B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;SAC7F,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACT,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW;QAClE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI;KAC7C,CAAC,CAAC,CAAC;IACN,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;AACvE,CAAC;AAED,SAAS,WAAW,CAAC,KAAkB,EAAE,KAAa,EAAE,GAAW,EAAE,OAAiB;IACpF,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAErH,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/E,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IACnF,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3E,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IACvF,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IACnF,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IACzE,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAExH,gEAAgE;IAChE,IAAI,KAAK,EAAE,CAAC;QACV,OAAO;YACL,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YAC9B,OAAO,EAAE,CAAC;oBACR,GAAG,KAAK;oBACR,QAAQ,EAAE,IAAI;oBACd,aAAa,EAAE;wBACb,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;wBAC3E,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;wBAC7E,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;wBAC3E,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;wBAC7E,cAAc,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;qBAC9E;iBACF,CAAC;SACH,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,2EAA2E;IAC3E,yEAAyE;IACzE,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,IAAI,SAAS,CAAC,MAAM;QAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACvD,IAAI,WAAW,CAAC,MAAM;QAAE,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACzD,IAAI,SAAS,CAAC,MAAM;QAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACvD,IAAI,WAAW,CAAC,MAAM;QAAE,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACzD,IAAI,MAAM,CAAC,MAAM;QAAO,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpD,IAAI,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM;QAAE,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClE,IAAI,UAAU,CAAC,MAAM;QAAG,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAExD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACzD,CAAC;IAED,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACjC,OAAO;QACL,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC9B,OAAO,EAAE,CAAC;gBACR,EAAE;gBACF,IAAI,EAAE,CAAC,EAAE,CAAC;gBACV,QAAQ,EAAE,KAAK;gBACf,aAAa,EAAE,YAAY;gBAC3B,aAAa,EAAE;oBACb,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAC3E,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC7E,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAC3E,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;oBAC7E,cAAc,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;iBAC9E;aACF,CAAC;KACH,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAAkB,EAAE,KAAa,EAAE,GAAW,EAAE,OAAiB;IACrF,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,cAAc,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IACvH,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAErE,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAChF,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAEpF,OAAO;QACL,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAC/B,OAAO,EAAE,CAAC;gBACR,GAAG,MAAM;gBACT,eAAe,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aACvI,CAAC;KACH,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAkB,EAAE,KAAa,EAAE,GAAW,EAAE,OAAiB;IACtF,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,cAAc,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IACzH,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAEvE,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAE3F,OAAO;QACL,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QAChC,OAAO,EAAE,CAAC;gBACR,GAAG,OAAO;gBACV,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;aACvE,CAAC;KACH,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAkB,EAAE,KAAa,EAAE,QAAgB,EAAE,OAAiB;IAChG,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS;SAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;SACjD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACT,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACtD,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI;KACzE,CAAC,CAAC,CAAC;IACN,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;AAChF,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAkB,EAAE,KAAa,EAAE,QAAgB,EAAE,OAAiB;IAClG,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW;SAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;SACjD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACT,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO;QACpD,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI;KACzE,CAAC,CAAC,CAAC;IACN,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;AAClF,CAAC;AAED,SAAS,WAAW,CAAC,KAAkB,EAAE,KAAa,EAAE,CAAS;IAC/D,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAChC,MAAM,OAAO,GAAU,EAAE,CAAC;IAE1B,sBAAsB;IACtB,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QAC7B,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;YACjE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAChH,CAAC;IACH,CAAC;IACD,uBAAuB;IACvB,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAC9B,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,cAAc,EAAE,GAAG,CAAC,EAAE,CAAC;YACjE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,cAAc,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3G,CAAC;IACH,CAAC;IACD,wBAAwB;IACxB,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC/B,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,cAAc,EAAE,GAAG,CAAC,EAAE,CAAC;YACjE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,8EAA8E;IAC9E,qEAAqE;IACrE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAU,EAAE,MAAc,EAAE,QAAiC,EAAE,EAAE,EAAE;YAC/F,MAAM,GAAG,GAAG,GAAG,IAAI,KAAK,EAAE,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,OAAO;YAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QACjG,CAAC,CAAC;QACF,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,MAAc,EAAE,QAAiC,EAAE,EAAE,EAAE;YACvG,IAAI,CAAC,KAAK;gBAAE,OAAO;YACnB,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAClC,IAAI,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC;gBAAE,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC3D,CAAC,CAAC;QAEF,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YAChC,WAAW,CAAC,OAAO,EAAG,CAAC,CAAC,KAAK,EAAG,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YACvE,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzE,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC;YACxC,WAAW,CAAC,OAAO,EAAG,CAAC,CAAC,KAAK,EAAG,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YACvE,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzE,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YAClC,WAAW,CAAC,OAAO,EAAI,CAAC,CAAC,KAAK,EAAS,aAAa,CAAC,CAAC;YACtD,WAAW,CAAC,QAAQ,EAAG,CAAC,CAAC,MAAM,EAAQ,aAAa,CAAC,CAAC;YACtD,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE,EAAE,aAAa,CAAC,CAAC;QACzD,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YAClC,WAAW,CAAC,OAAO,EAAG,CAAC,CAAC,KAAK,EAAG,aAAa,CAAC,CAAC;YAC/C,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACjD,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC5B,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACxC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1C,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACjC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAC9C,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,qEAAqE;QACrE,qEAAqE;QACrE,qEAAqE;QACrE,yCAAyC;QACzC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;oBACpD,IAAI,EAAE,gBAAgB,KAAK,2FAA2F;iBACvH,CAAC,EAAE,CAAC;IACP,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;AAClE,CAAC;AAED,wEAAwE;AAExE,0EAA0E;AAC1E,SAAS,QAAQ,CAAC,KAAa,EAAE,GAAW,EAAE,OAAkB;IAC9D,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IACjC,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAChD,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAE9C,yCAAyC;IACzC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzF,KAAK,MAAM,SAAS,IAAI,IAAI,EAAE,CAAC;QAC7B,cAAc;QACd,IAAI,CAAC,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACjC,mDAAmD;QACnD,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QACzC,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACvC,iCAAiC;QACjC,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO,IAAI,CAAC;QAChE,2CAA2C;QAC3C,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;IAC1D,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/dist/mcp/server.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Tools:
|
|
5
5
|
* guardlink_parse — Parse annotations, return threat model
|
|
6
|
-
* guardlink_status — Coverage stats
|
|
6
|
+
* guardlink_status — Coverage stats, unmitigated exposures, confirmed count
|
|
7
7
|
* guardlink_validate — Syntax errors and dangling references
|
|
8
8
|
* guardlink_suggest — Given a code diff or file, suggest annotations
|
|
9
9
|
* guardlink_lookup — Query the threat model graph
|
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
* @flows #mcp -> MCPClient via resource -- "Threat model data output"
|
|
40
40
|
* @boundary #mcp and MCPClient (#mcp-tool-boundary) -- "Trust boundary at tool argument parsing"
|
|
41
41
|
* @handles internal on #mcp -- "Processes project annotations and threat model data"
|
|
42
|
+
* @feature "MCP Integration" -- "Model Context Protocol server for AI agent tooling"
|
|
42
43
|
*/
|
|
43
44
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
44
45
|
export declare function createServer(): McpServer;
|
package/dist/mcp/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAyCpE,wBAAgB,YAAY,IAAI,SAAS,CA+mBxC"}
|