guardlink 1.0.0 → 1.2.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 (91) hide show
  1. package/CHANGELOG.md +65 -0
  2. package/README.md +14 -0
  3. package/dist/agents/config.d.ts +8 -0
  4. package/dist/agents/config.d.ts.map +1 -1
  5. package/dist/agents/config.js +28 -5
  6. package/dist/agents/config.js.map +1 -1
  7. package/dist/agents/index.d.ts +2 -1
  8. package/dist/agents/index.d.ts.map +1 -1
  9. package/dist/agents/index.js +1 -1
  10. package/dist/agents/index.js.map +1 -1
  11. package/dist/agents/launcher.d.ts +14 -0
  12. package/dist/agents/launcher.d.ts.map +1 -1
  13. package/dist/agents/launcher.js +126 -1
  14. package/dist/agents/launcher.js.map +1 -1
  15. package/dist/agents/prompts.d.ts +2 -2
  16. package/dist/agents/prompts.d.ts.map +1 -1
  17. package/dist/agents/prompts.js +251 -31
  18. package/dist/agents/prompts.js.map +1 -1
  19. package/dist/analyze/index.d.ts +34 -1
  20. package/dist/analyze/index.d.ts.map +1 -1
  21. package/dist/analyze/index.js +281 -8
  22. package/dist/analyze/index.js.map +1 -1
  23. package/dist/analyze/llm.d.ts +54 -3
  24. package/dist/analyze/llm.d.ts.map +1 -1
  25. package/dist/analyze/llm.js +418 -97
  26. package/dist/analyze/llm.js.map +1 -1
  27. package/dist/analyze/prompts.d.ts +3 -2
  28. package/dist/analyze/prompts.d.ts.map +1 -1
  29. package/dist/analyze/prompts.js +227 -111
  30. package/dist/analyze/prompts.js.map +1 -1
  31. package/dist/analyze/tools.d.ts +22 -0
  32. package/dist/analyze/tools.d.ts.map +1 -0
  33. package/dist/analyze/tools.js +230 -0
  34. package/dist/analyze/tools.js.map +1 -0
  35. package/dist/analyzer/sarif.js +1 -1
  36. package/dist/cli/index.d.ts +15 -7
  37. package/dist/cli/index.d.ts.map +1 -1
  38. package/dist/cli/index.js +290 -150
  39. package/dist/cli/index.js.map +1 -1
  40. package/dist/dashboard/data.d.ts +5 -0
  41. package/dist/dashboard/data.d.ts.map +1 -1
  42. package/dist/dashboard/data.js +24 -12
  43. package/dist/dashboard/data.js.map +1 -1
  44. package/dist/dashboard/diagrams.d.ts.map +1 -1
  45. package/dist/dashboard/diagrams.js +310 -37
  46. package/dist/dashboard/diagrams.js.map +1 -1
  47. package/dist/dashboard/generate.d.ts.map +1 -1
  48. package/dist/dashboard/generate.js +197 -64
  49. package/dist/dashboard/generate.js.map +1 -1
  50. package/dist/init/picker.d.ts.map +1 -1
  51. package/dist/init/picker.js +2 -2
  52. package/dist/init/picker.js.map +1 -1
  53. package/dist/init/templates.d.ts.map +1 -1
  54. package/dist/init/templates.js +52 -32
  55. package/dist/init/templates.js.map +1 -1
  56. package/dist/mcp/server.d.ts.map +1 -1
  57. package/dist/mcp/server.js +14 -28
  58. package/dist/mcp/server.js.map +1 -1
  59. package/dist/parser/index.d.ts +1 -0
  60. package/dist/parser/index.d.ts.map +1 -1
  61. package/dist/parser/index.js +1 -0
  62. package/dist/parser/index.js.map +1 -1
  63. package/dist/parser/parse-line.js +3 -3
  64. package/dist/parser/parse-line.js.map +1 -1
  65. package/dist/parser/parse-project.js +1 -1
  66. package/dist/parser/validate.d.ts +31 -0
  67. package/dist/parser/validate.d.ts.map +1 -0
  68. package/dist/parser/validate.js +149 -0
  69. package/dist/parser/validate.js.map +1 -0
  70. package/dist/report/report.d.ts.map +1 -1
  71. package/dist/report/report.js +64 -0
  72. package/dist/report/report.js.map +1 -1
  73. package/dist/tui/commands.d.ts +3 -3
  74. package/dist/tui/commands.d.ts.map +1 -1
  75. package/dist/tui/commands.js +390 -206
  76. package/dist/tui/commands.js.map +1 -1
  77. package/dist/tui/config.d.ts +2 -0
  78. package/dist/tui/config.d.ts.map +1 -1
  79. package/dist/tui/config.js.map +1 -1
  80. package/dist/tui/format.d.ts +7 -0
  81. package/dist/tui/format.d.ts.map +1 -1
  82. package/dist/tui/format.js +59 -0
  83. package/dist/tui/format.js.map +1 -1
  84. package/dist/tui/index.d.ts.map +1 -1
  85. package/dist/tui/index.js +32 -19
  86. package/dist/tui/index.js.map +1 -1
  87. package/dist/tui/input.d.ts +2 -2
  88. package/dist/tui/input.js +2 -2
  89. package/dist/types/index.d.ts +1 -1
  90. package/dist/types/index.d.ts.map +1 -1
  91. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"llm.js","sourceRoot":"","sources":["../../src/analyze/llm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llm.js","sourceRoot":"","sources":["../../src/analyze/llm.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,8 @@ export type AnalysisFramework = 'stride' | 'dread' | 'pasta' | 'attacker' | 'rap
8
8
  export declare const FRAMEWORK_LABELS: Record<AnalysisFramework, string>;
9
9
  export declare const FRAMEWORK_PROMPTS: Record<AnalysisFramework, string>;
10
10
  /**
11
- * Build the user message containing the serialized threat model.
11
+ * Build the user message containing the serialized threat model,
12
+ * optional project context, and optional code snippets.
12
13
  */
13
- export declare function buildUserMessage(modelJson: string, framework: AnalysisFramework, customPrompt?: string): string;
14
+ export declare function buildUserMessage(modelJson: string, framework: AnalysisFramework, customPrompt?: string, projectContext?: string, codeSnippets?: string): string;
14
15
  //# sourceMappingURL=prompts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/analyze/prompts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;AAEhG,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAO9D,CAAC;AAkBF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAsK/D,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAU/G"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/analyze/prompts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;AAEhG,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAO9D,CAAC;AAoDF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CA2O/D,CAAC;AAEF;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,iBAAiB,EAC5B,YAAY,CAAC,EAAE,MAAM,EACrB,cAAc,CAAC,EAAE,MAAM,EACvB,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CA0BR"}
@@ -12,194 +12,310 @@ export const FRAMEWORK_LABELS = {
12
12
  rapid: 'Rapid Risk Assessment',
13
13
  general: 'General Threat Analysis',
14
14
  };
15
- const SYSTEM_BASE = `You are an expert Security Architect and Threat Modeler with 15+ years of experience.
16
- You are analyzing a codebase that uses GuardLink annotations — structured security metadata embedded in source code comments.
17
-
18
- The threat model you receive contains:
19
- - **Assets**: Components declared by developers
20
- - **Threats**: Known threat vectors with severity and CWE references
21
- - **Controls**: Security mechanisms in place
22
- - **Mitigations**: Where controls defend assets against threats
23
- - **Exposures**: Known vulnerabilities (asset exposed to threat)
24
- - **Flows**: Data movement between components
25
- - **Boundaries**: Trust boundaries between security zones
26
- - **Comments**: Developer security notes
27
-
28
- Your analysis must be actionable, specific to THIS codebase, and reference the actual assets/threats/controls by name.
29
- Never give generic advicealways tie recommendations to concrete annotations in the model.`;
15
+ const SYSTEM_BASE = `You are an expert Security Architect and Threat Modeler with 15+ years of experience in application security, secure design review, and red team operations.
16
+
17
+ Your job is to **produce a complete, standalone threat model** for a real codebase. You are NOT simply summarizing annotations — you are using them as developer-provided hints to bootstrap a thorough security analysis.
18
+
19
+ ## Your inputs
20
+
21
+ You will receive:
22
+ 1. **Project context** language/framework, dependencies, deployment signals (Dockerfile, CI config, etc.)
23
+ 2. **Annotation graph** structured security metadata extracted from source code comments (GuardLink annotations)
24
+ 3. **Code snippets** the actual source lines surrounding each annotation, so you can validate what developers claimed
25
+
26
+ ## How to use these inputs
27
+
28
+ - Treat annotations as **developer hypotheses**, not ground truth. Validate them against the code snippets.
29
+ - Use the project context to reason about the **real attack surface** what frameworks introduce, what dependencies are known-vulnerable, what the deployment model exposes.
30
+ - **Identify gaps**: what is NOT annotated but should be? Look at unannotated symbols, data flows with no security coverage, and dependency-level risks.
31
+ - Produce a threat model a **security team could hand to an auditor** — specific, evidence-based, and actionable.
32
+
33
+ ## Annotation semantics
34
+
35
+ - **@asset** — a component the developer considers security-relevant
36
+ - **@threat** — a threat vector (with optional CWE reference and severity)
37
+ - **@control** — a security mechanism in place
38
+ - **@mitigates** — a real control exists in code defending an asset against a threat. This is a genuine defense.
39
+ - **@exposes** — a known vulnerability: this asset is exposed to this threat
40
+ - **@accepts** — risk acknowledged but **NO control in code**. This is a governance decision, not a technical fix.
41
+ - **@flows** — data movement between components
42
+ - **@boundary** — a trust boundary between security zones
43
+ - **@handles** — sensitive data classification (pii, phi, financial, secrets)
44
+ - **@assumes** — a security assumption the developer is relying on (potential blind spot)
45
+ - **@audit** — marks an asset as requiring human review
46
+
47
+ ## Critical rules
48
+
49
+ - If you see **@accepts without @audit** on the same asset, flag it as a governance concern — risk may have been rubber-stamped without proper review.
50
+ - Treat accepted-but-unmitigated exposures as **OPEN RISKS**, not resolved findings.
51
+ - If a code snippet contradicts its annotation (e.g., a @mitigates annotation but the code shows no actual check), flag the annotation as **potentially inaccurate**.
52
+ - Challenge accepted risks: "You accepted this — is that reasonable given the severity and blast radius?"
53
+ - Always reference **specific files, assets, and threat IDs** from the model. Never give generic advice.
54
+
55
+ ## Output structure
56
+
57
+ Your report must have two clearly separated sections:
58
+
59
+ ### Part 1 — Annotation Validation
60
+ For each significant annotation, assess: is the annotation accurate given the code? Did the developer miss anything in the surrounding code? Flag inaccurate, overstated, or missing annotations with specific evidence from the code snippets.
61
+
62
+ ### Part 2 — Threat Model
63
+ A complete, standalone threat model document produced from all available evidence (annotations + code + project context). Structure it with the sections appropriate to the framework you are applying. This is what a security team would hand to an auditor.`;
30
64
  export const FRAMEWORK_PROMPTS = {
31
65
  stride: `${SYSTEM_BASE}
32
66
 
33
- Perform a **STRIDE** analysis of this threat model.
67
+ Apply the **STRIDE** framework to produce a complete threat model.
34
68
 
35
- For each STRIDE category, evaluate the codebase:
69
+ ## Part 1 Annotation Validation
70
+ For each @exposes and @mitigates annotation, cross-reference the provided code snippet:
71
+ - Does the code actually implement what the annotation claims?
72
+ - Is the severity rating appropriate given the code context?
73
+ - Flag any annotation that appears inaccurate or incomplete.
36
74
 
37
- ## SSpoofing
38
- Identify where authentication can be bypassed. Check: are all assets with @exposes to auth-related threats properly mitigated?
75
+ ## Part 2 STRIDE Threat Model
39
76
 
40
- ## T Tampering
41
- Identify where data integrity is at risk. Check: @flows without integrity controls, @handles with sensitive data lacking validation.
77
+ For each STRIDE category, reason from ALL available evidence (annotations + code snippets + project context):
42
78
 
43
- ## RRepudiation
44
- Identify where actions cannot be traced. Check: are there @audit annotations? Are critical operations logged?
79
+ ### SSpoofing
80
+ Authentication bypass risks. Consider: framework-level auth mechanisms from project context, @exposes to auth threats, unannotated auth code paths visible in snippets.
45
81
 
46
- ## IInformation Disclosure
47
- Identify where sensitive data leaks. Check: @exposes to info-disclosure/data-exposure threats, @handles pii/phi/secrets without encryption.
82
+ ### TTampering
83
+ Data integrity risks. Consider: @flows without integrity controls, @handles with sensitive data lacking validation, what the framework/dependencies do (or don't) provide.
48
84
 
49
- ## DDenial of Service
50
- Identify resource exhaustion risks. Check: @exposes to dos threats, rate limiting controls, boundary protections.
85
+ ### RRepudiation
86
+ Audit trail gaps. Consider: @audit annotations present vs. missing, critical operations in code snippets with no logging, framework logging capabilities.
51
87
 
52
- ## EElevation of Privilege
53
- Identify privilege escalation paths. Check: @exposes to bac/idor threats, @boundary gaps, missing authorization controls.
88
+ ### IInformation Disclosure
89
+ Sensitive data leakage. Consider: @handles pii/phi/secrets, error handling visible in code snippets, dependency-level disclosure risks from project context.
90
+
91
+ ### D — Denial of Service
92
+ Resource exhaustion. Consider: @exposes to dos threats, rate limiting in code snippets, framework/infrastructure protections from project context.
93
+
94
+ ### E — Elevation of Privilege
95
+ Privilege escalation paths. Consider: @exposes to bac/idor threats, @boundary gaps, authorization checks visible in code snippets.
54
96
 
55
97
  For each category:
56
- 1. List specific findings referencing actual assets and threats from the model
57
- 2. Rate severity (Critical/High/Medium/Low)
58
- 3. Recommend specific mitigations referencing existing controls or suggesting new ones
59
- 4. Identify gaps — what SHOULD be annotated but isn't?
98
+ 1. Specific findings referencing actual assets, threats, and file locations
99
+ 2. Severity (Critical/High/Medium/Low) with justification from code evidence
100
+ 3. Concrete mitigations tied to existing controls or new ones needed
101
+ 4. Annotation gaps — what @exposes or @mitigates are missing from the code?
60
102
 
61
103
  End with an Executive Summary and Priority Action Items.`,
62
104
  dread: `${SYSTEM_BASE}
63
105
 
64
- Perform a **DREAD** risk scoring analysis of this threat model.
106
+ Apply **DREAD** risk scoring to produce a prioritized threat model.
107
+
108
+ ## Part 1 — Annotation Validation
109
+ Review each @exposes annotation against its code snippet. For each:
110
+ - Is the exposure real? Does the code confirm the vulnerability?
111
+ - Is the severity annotation accurate vs. DREAD scoring?
112
+ - Note any discrepancies between annotation claims and actual code.
113
+
114
+ ## Part 2 — DREAD Risk Model
65
115
 
66
- For each unmitigated exposure and significant threat, calculate a DREAD score:
116
+ For each unmitigated exposure and significant threat, calculate a DREAD score using ALL available evidence:
67
117
 
68
- - **D — Damage Potential** (0-10): How bad if exploited?
69
- - **R — Reproducibility** (0-10): How easy to reproduce?
70
- - **E — Exploitability** (0-10): How easy to launch the attack?
71
- - **A — Affected Users** (0-10): How many users impacted?
72
- - **D — Discoverability** (0-10): How easy to find the vulnerability?
118
+ - **D — Damage Potential** (0-10): How bad if exploited? Factor in @handles classifications and business context.
119
+ - **R — Reproducibility** (0-10): How easy to reproduce? Factor in code complexity from snippets.
120
+ - **E — Exploitability** (0-10): How easy to launch? Factor in known CVEs from dependencies (project context).
121
+ - **A — Affected Users** (0-10): How many users impacted? Factor in data flows and boundaries.
122
+ - **D — Discoverability** (0-10): How easy to find? Factor in public-facing surfaces from project context.
73
123
 
74
124
  Present results as a ranked table:
75
125
 
76
- | Threat | Asset | D | R | E | A | D | Total | Risk Level |
77
- |--------|-------|---|---|---|---|---|-------|------------|
126
+ | Threat | Asset | File | D | R | E | A | D | Total | Risk Level |
127
+ |--------|-------|------|---|---|---|---|---|-------|------------|
78
128
 
79
129
  Then provide:
80
- 1. Top 5 risks by DREAD score with detailed justification
81
- 2. Quick wins high-score items with easy mitigations
82
- 3. Systemic riskspatterns across multiple exposures
83
- 4. Recommended priority order for remediation`,
130
+ 1. Top 5 risks by DREAD score with detailed justification citing code evidence
131
+ 2. Dependency-level risks from project context not captured in annotations
132
+ 3. Quick winshigh-score items with straightforward mitigations
133
+ 4. Systemic risks patterns across multiple exposures
134
+ 5. Recommended priority order for remediation`,
84
135
  pasta: `${SYSTEM_BASE}
85
136
 
86
- Perform a **PASTA** (Process for Attack Simulation and Threat Analysis) assessment.
137
+ Apply the **PASTA** (Process for Attack Simulation and Threat Analysis) methodology.
87
138
 
88
- Work through all 7 PASTA stages:
139
+ ## Part 1 Annotation Validation
140
+ Before the PASTA stages, validate the annotation graph against code snippets:
141
+ - Which @mitigates annotations are confirmed by actual code?
142
+ - Which @exposes annotations are confirmed by actual vulnerable code?
143
+ - Which @accepts decisions look unreasonable given the code evidence?
144
+
145
+ ## Part 2 — PASTA Assessment
89
146
 
90
147
  ### Stage 1: Define Objectives
91
- What are the business-critical assets? Which @asset declarations represent the crown jewels?
148
+ Business-critical assets from @asset declarations. What are the crown jewels? Use @handles classifications to identify data sensitivity.
92
149
 
93
150
  ### Stage 2: Define Technical Scope
94
- Map the attack surface from @flows, @boundary, and @handles annotations. What are the entry points?
151
+ Attack surface from @flows, @boundary, @handles, and project context (framework, deployment model, exposed ports/endpoints). What does the project context reveal that annotations miss?
95
152
 
96
153
  ### Stage 3: Application Decomposition
97
- Analyze component relationships from flows and boundaries. Identify trust zones and data paths.
154
+ Component relationships from flows and boundaries. Trust zones, data paths, and dependency graph from project context. Identify components with no security annotations.
98
155
 
99
156
  ### Stage 4: Threat Analysis
100
- Map declared @threat annotations to real-world attack techniques. Reference CWE/CAPEC where available.
157
+ Map @threat annotations to real-world attack techniques (CWE/CAPEC). Supplement with threats implied by the tech stack and dependencies from project context.
101
158
 
102
159
  ### Stage 5: Vulnerability Analysis
103
- Evaluate each @exposes annotation. Which are most exploitable given the technical context?
160
+ Evaluate each @exposes annotation against code snippets. Which are confirmed? Which are most exploitable given the technical context and dependency versions?
104
161
 
105
162
  ### Stage 6: Attack Simulation
106
- For the top 3 most critical exposures, describe a realistic attack scenario step-by-step.
163
+ For the top 3 most critical exposures, describe a realistic attack scenario step-by-step, referencing actual code paths from snippets and entry points from project context.
107
164
 
108
165
  ### Stage 7: Risk & Impact Analysis
109
- Prioritized risk matrix with business impact assessment.
166
+ Prioritized risk matrix with business impact. Include dependency-level risks not captured in annotations.
110
167
 
111
- End with concrete remediation recommendations tied to specific annotations.`,
168
+ End with concrete remediation recommendations tied to specific annotations and code locations.`,
112
169
  attacker: `${SYSTEM_BASE}
113
170
 
114
- Perform an **Attacker Persona** analysis of this threat model.
171
+ Apply an **Attacker Persona** analysis to produce a complete threat model.
172
+
173
+ ## Part 1 — Annotation Validation
174
+ For each @exposes annotation, assess exploitability from an attacker's perspective:
175
+ - Does the code snippet confirm the vulnerability is real and reachable?
176
+ - Is the @accepts decision defensible against a motivated attacker?
177
+ - Flag any annotation that understates attacker capability.
178
+
179
+ ## Part 2 — Attacker Persona Threat Model
115
180
 
116
- Adopt the mindset of different attacker types and evaluate the codebase:
181
+ Adopt the mindset of each attacker type using ALL available evidence:
117
182
 
118
- ### 1. Script Kiddie (Low Skill)
119
- What can be exploited with publicly available tools? Which @exposes have known CVEs (check cwe: refs)?
183
+ ### 1. Script Kiddie (Low Skill, Opportunistic)
184
+ What can be exploited with public tools? Check: CWE refs in @exposes, known-vulnerable dependency versions from project context, obvious misconfigurations visible in code snippets.
120
185
 
121
186
  ### 2. Opportunistic Attacker (Medium Skill)
122
- What attack chains are possible? Can multiple exposures be combined? Check @flows for lateral movement paths.
187
+ What attack chains are possible? Check: @flows for lateral movement, multiple @exposes that can be chained, framework-level weaknesses from project context.
123
188
 
124
- ### 3. Targeted Attacker (High Skill)
125
- What are the high-value targets (@handles pii/phi/financial/secrets)? What's the path from @boundary entry points to crown jewel assets?
189
+ ### 3. Targeted Attacker (High Skill, Persistent)
190
+ Path from entry points to crown jewels. Check: @handles pii/phi/financial/secrets for targets, @boundary gaps for pivot points, @assumes for blind spots to exploit.
126
191
 
127
- ### 4. Insider Threat
128
- Which @assumes annotations represent blind spots? Where does the model trust internal components without verification?
192
+ ### 4. Insider Threat (Trusted Access)
193
+ What can a legitimate user or developer abuse? Check: @assumes that trust internal components, missing @audit annotations on sensitive operations, overprivileged data flows.
129
194
 
130
195
  For each persona:
131
- 1. Most likely attack vector (reference specific annotations)
132
- 2. Attack path (chain of assets/flows/boundaries)
133
- 3. Impact if successful
134
- 4. Current defenses (existing @mitigates)
135
- 5. Gaps in defense
196
+ 1. Most likely attack vector (reference specific files and annotation IDs)
197
+ 2. Step-by-step attack path through the system
198
+ 3. Impact if successful (reference @handles data classifications)
199
+ 4. Current defenses (@mitigates) and their effectiveness per code evidence
200
+ 5. Gaps what's missing that would stop this attacker?
136
201
 
137
202
  End with a prioritized defense improvement plan.`,
138
203
  rapid: `${SYSTEM_BASE}
139
204
 
140
- Perform a **Rapid Risk Assessment** — concise, actionable, focused on the highest-impact items.
205
+ Produce a **Rapid Risk Assessment** — concise, actionable, highest-impact items only.
206
+
207
+ ## Part 1 — Annotation Validation (Brief)
208
+ Flag only significant discrepancies: annotations contradicted by code snippets, or @accepts decisions that look unreasonable. Keep this section under 20 lines.
209
+
210
+ ## Part 2 — Rapid Risk Assessment
141
211
 
142
- ### Critical Findings (Stop Everything)
143
- List any P0/critical @exposes without @mitigates. These are active vulnerabilities.
212
+ ### Critical Findings (Act Now)
213
+ Unmitigated @exposes at critical/high severity. Confirmed by code snippets where available. Include dependency CVEs from project context.
144
214
 
145
215
  ### High-Priority Gaps
146
- - Unmitigated exposures by severity
147
- - @assumes that could be violated
148
- - @boundary without proper controls on crossing flows
216
+ - Unmitigated exposures by severity with file locations
217
+ - @assumes that could be violated given the tech stack
218
+ - @boundary crossings with no security controls in code
219
+ - Unannotated symbols handling sensitive data (from coverage stats)
149
220
 
150
221
  ### Coverage Assessment
151
- - What percentage of assets have threat coverage?
152
- - Which components have @flows but no security annotations?
153
- - Are there @handles (sensitive data) without corresponding @mitigates?
222
+ - Annotation coverage % and what the unannotated symbols are
223
+ - Components with @flows but no security annotations
224
+ - @handles (sensitive data) without corresponding @mitigates
154
225
 
155
226
  ### Top 5 Recommendations
156
- Numbered, actionable, with specific annotation suggestions (exact @mitigates lines to add).
227
+ Numbered, specific, actionable. For each: what to fix, where (file:line), and the exact GuardLink annotation to add.
157
228
 
158
229
  ### Risk Score
159
- Rate overall security posture: A (excellent) through F (critical risk). Justify with data from the model.
230
+ A (excellent) through F (critical risk). Justify with specific data points from the model and code.
160
231
 
161
- Keep the entire analysis under 500 lines. Be direct — no filler.`,
232
+ Keep the entire report under 500 lines. Be direct — no filler.`,
162
233
  general: `${SYSTEM_BASE}
163
234
 
164
- Perform a comprehensive threat analysis of this codebase.
235
+ Produce a **complete threat model document** for this codebase. The document should be usable by a security team for audit, review, or a public trust center — not just a list of findings.
236
+
237
+ ## Part 1 — Annotation Validation
238
+
239
+ For each significant annotation, assess accuracy against the code snippet:
240
+ - **@mitigates**: does the code actually implement the claimed control?
241
+ - **@exposes**: is the vulnerability real and reachable from the code?
242
+ - **@accepts**: is the risk acceptance reasonable given severity and blast radius? Challenge it.
243
+ - Flag inaccurate, missing, or overstated annotations with specific file:line evidence.
244
+
245
+ ## Part 2 — Threat Model Document
246
+
247
+ Produce the following sections. Omit a section only if there is genuinely no relevant information for it — do not pad with boilerplate.
165
248
 
166
- ### Executive Summary
167
- 2-3 sentence overall assessment.
249
+ ### 1. Overview & Scope
250
+ What this system does, what it protects, and what is explicitly out of scope for this threat model. Derive from @asset declarations, @flows, and project context.
168
251
 
169
- ### Threat Landscape
170
- What threats does this application face? Map @threat declarations to real-world attack patterns.
252
+ ### 2. Architecture
253
+ How the system is structured: components, trust zones, and their relationships. Derive from @boundary, @flows, and project context (framework, deployment model). Include a prose description of the component topology — which components are internet-facing, which are internal, which handle sensitive data.
171
254
 
172
- ### Security Posture
173
- - Strengths: well-mitigated areas, good control coverage
174
- - Weaknesses: unmitigated exposures, missing controls
175
- - Blind spots: areas with no annotations at all
255
+ ### 3. Key Flows & Data Paths
256
+ The most security-relevant data flows through the system. For each: source → destination, what data is carried (@handles classifications), what trust boundaries are crossed (@boundary), and what controls exist at each crossing. Reference specific file locations.
176
257
 
177
- ### Data Flow Analysis
178
- Trace sensitive data through @flows and @boundary annotations. Where does data cross trust boundaries without protection?
258
+ ### 4. Data Handling & AI/ML Data Use
259
+ All sensitive data in the system from @handles annotations: classification (pii, phi, financial, secrets), which assets hold it, how it moves, and where it is stored or logged. If the project uses ML/AI models: what data is fed to them, what is returned, and what the privacy/integrity implications are.
179
260
 
180
- ### Missing Annotations
181
- Based on the architecture visible in @flows and @boundary, what security annotations are likely missing?
261
+ ### 5. Roles & Access
262
+ Who or what can access the system and at what privilege level. Derive from @flows, @boundary, and @assumes. Identify overprivileged paths and missing access controls.
182
263
 
183
- ### Recommendations
184
- Prioritized list with:
185
- 1. What to fix (specific exposure)
186
- 2. How to fix it (specific control/mitigation)
187
- 3. What annotation to add (exact syntax)
264
+ ### 6. Dependencies & Supply Chain
265
+ From project context: all third-party dependencies, their versions, and any known risk signals (outdated packages, packages with known CVEs, packages with excessive permissions). Flag dependencies not covered by any @mitigates annotation.
188
266
 
189
- ### Compliance Considerations
190
- Based on @handles classifications (pii, phi, financial), note relevant compliance requirements (GDPR, HIPAA, PCI-DSS).`,
267
+ ### 7. Secrets, Keys & Credential Management
268
+ All credentials, API keys, tokens, and secrets in the system. Derive from @handles secrets annotations, .env.example signals, and code snippets. How are they stored, rotated, and scoped? What happens if one is leaked?
269
+
270
+ ### 8. Logging, Monitoring & Audit
271
+ What is logged, what is not, and what should be. Derive from @audit annotations (present and missing), @handles pii/phi (logged data must be scrubbed), and code snippets showing logging calls. Flag critical operations with no audit trail.
272
+
273
+ ### 9. Assumptions & Threat Actors
274
+ From @assumes annotations: what the system trusts without verification. List the threat actors relevant to this system (external attacker, insider, supply chain, automated scanner) and their assumed capabilities. Flag assumptions that a motivated attacker could violate.
275
+
276
+ ### 10. Abuse Scenarios & Findings
277
+ For each unmitigated @exposes and each significant gap found during annotation validation: a concrete abuse scenario. Format each as:
278
+ - **Finding**: what the vulnerability is (file:line)
279
+ - **Scenario**: how an attacker exploits it step by step
280
+ - **Impact**: what they gain (reference @handles data classifications)
281
+ - **Severity**: Critical / High / Medium / Low with justification
282
+ - **Remediation**: specific code change or control to add, plus the GuardLink annotation to reflect it
283
+
284
+ Order by severity descending.
285
+
286
+ ### 11. Testing & Review Scope
287
+ What security testing is appropriate for this system given its architecture and findings above: unit tests for security controls, integration tests for auth/authz flows, fuzz targets, pen test scope (which endpoints/components), and any automated scanning recommendations.
288
+
289
+ ### 12. Open Risks & Accepted Risks
290
+ All @accepts annotations: for each, state the risk, why it was accepted, whether that acceptance is still reasonable given the code evidence, and what the residual blast radius is. Flag any @accepts without a corresponding @audit as an unreviewed acceptance.
291
+
292
+ ### 13. Priority Action Items
293
+ Top 5–10 items the team should act on, ordered by risk. For each: one-line description, severity, effort estimate (low/medium/high), and the specific GuardLink annotation change that would reflect the fix.`,
191
294
  };
192
295
  /**
193
- * Build the user message containing the serialized threat model.
296
+ * Build the user message containing the serialized threat model,
297
+ * optional project context, and optional code snippets.
194
298
  */
195
- export function buildUserMessage(modelJson, framework, customPrompt) {
299
+ export function buildUserMessage(modelJson, framework, customPrompt, projectContext, codeSnippets) {
196
300
  const header = customPrompt
197
- ? `Analyze this threat model. ${customPrompt}`
198
- : `Produce a ${FRAMEWORK_LABELS[framework]} for this threat model.`;
199
- return `${header}
200
-
201
- <threat_model>
202
- ${modelJson}
203
- </threat_model>`;
301
+ ? `Use these annotations as input to produce a threat model. Additional focus: ${customPrompt}`
302
+ : `Produce a ${FRAMEWORK_LABELS[framework]} for this codebase using all available evidence below.`;
303
+ const parts = [header, ''];
304
+ if (projectContext) {
305
+ parts.push('<project_context>');
306
+ parts.push(projectContext);
307
+ parts.push('</project_context>');
308
+ parts.push('');
309
+ }
310
+ parts.push('<annotation_graph>');
311
+ parts.push(modelJson);
312
+ parts.push('</annotation_graph>');
313
+ if (codeSnippets) {
314
+ parts.push('');
315
+ parts.push('<code_snippets>');
316
+ parts.push(codeSnippets);
317
+ parts.push('</code_snippets>');
318
+ }
319
+ return parts.join('\n');
204
320
  }
205
321
  //# sourceMappingURL=prompts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/analyze/prompts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,CAAC,MAAM,gBAAgB,GAAsC;IACjE,MAAM,EAAE,wBAAwB;IAChC,KAAK,EAAE,uBAAuB;IAC9B,KAAK,EAAE,yBAAyB;IAChC,QAAQ,EAAE,2BAA2B;IACrC,KAAK,EAAE,uBAAuB;IAC9B,OAAO,EAAE,yBAAyB;CACnC,CAAC;AAEF,MAAM,WAAW,GAAG;;;;;;;;;;;;;;6FAcyE,CAAC;AAE9F,MAAM,CAAC,MAAM,iBAAiB,GAAsC;IAClE,MAAM,EAAE,GAAG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yDA8BiC;IAEvD,KAAK,EAAE,GAAG,WAAW;;;;;;;;;;;;;;;;;;;;;8CAqBuB;IAE5C,KAAK,EAAE,GAAG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;4EA2BqD;IAE1E,QAAQ,EAAE,GAAG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;iDAyBuB;IAE/C,KAAK,EAAE,GAAG,WAAW;;;;;;;;;;;;;;;;;;;;;;;iEAuB0C;IAE/D,OAAO,EAAE,GAAG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;uHA4B8F;CACtH,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAiB,EAAE,SAA4B,EAAE,YAAqB;IACrG,MAAM,MAAM,GAAG,YAAY;QACzB,CAAC,CAAC,8BAA8B,YAAY,EAAE;QAC9C,CAAC,CAAC,aAAa,gBAAgB,CAAC,SAAS,CAAC,yBAAyB,CAAC;IAEtE,OAAO,GAAG,MAAM;;;EAGhB,SAAS;gBACK,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/analyze/prompts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,CAAC,MAAM,gBAAgB,GAAsC;IACjE,MAAM,EAAE,wBAAwB;IAChC,KAAK,EAAE,uBAAuB;IAC9B,KAAK,EAAE,yBAAyB;IAChC,QAAQ,EAAE,2BAA2B;IACrC,KAAK,EAAE,uBAAuB;IAC9B,OAAO,EAAE,yBAAyB;CACnC,CAAC;AAEF,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+PAgD2O,CAAC;AAEhQ,MAAM,CAAC,MAAM,iBAAiB,GAAsC;IAClE,MAAM,EAAE,GAAG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yDAsCiC;IAEvD,KAAK,EAAE,GAAG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8CA8BuB;IAE5C,KAAK,EAAE,GAAG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+FAiCwE;IAE7F,QAAQ,EAAE,GAAG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iDAiCuB;IAE/C,KAAK,EAAE,GAAG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+DA6BwC;IAE7D,OAAO,EAAE,GAAG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8MA4DqL;CAC7M,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,SAAiB,EACjB,SAA4B,EAC5B,YAAqB,EACrB,cAAuB,EACvB,YAAqB;IAErB,MAAM,MAAM,GAAG,YAAY;QACzB,CAAC,CAAC,+EAA+E,YAAY,EAAE;QAC/F,CAAC,CAAC,aAAa,gBAAgB,CAAC,SAAS,CAAC,wDAAwD,CAAC;IAErG,MAAM,KAAK,GAAa,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAErC,IAAI,cAAc,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACjC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtB,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAElC,IAAI,YAAY,EAAE,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * GuardLink — Tool definitions for LLM function calling.
3
+ *
4
+ * Defines tools that the LLM can invoke during threat analysis:
5
+ * - lookup_cve: Search for CVE details (via web fetch)
6
+ * - validate_finding: Cross-reference a finding against the parsed model
7
+ * - search_codebase: Search project files for patterns
8
+ *
9
+ * @flows External_LLM_APIs -> #llm-tools via tool_call -- "LLM requests tool execution"
10
+ * @flows #llm-tools -> External_LLM_APIs via tool_result -- "Tool results returned to LLM"
11
+ * @exposes #llm-tools to #ssrf [medium] cwe:CWE-918 -- "lookup_cve fetches external URLs"
12
+ * @mitigates #llm-tools against #ssrf using #url-allowlist -- "Only fetches from known CVE databases"
13
+ */
14
+ import type { ToolDefinition, ToolExecutor } from './llm.js';
15
+ import type { ThreatModel } from '../types/index.js';
16
+ export declare const GUARDLINK_TOOLS: ToolDefinition[];
17
+ /**
18
+ * Create a tool executor bound to a project root and threat model.
19
+ * The executor handles all GuardLink tool calls.
20
+ */
21
+ export declare function createToolExecutor(root: string, model: ThreatModel | null): ToolExecutor;
22
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/analyze/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD,eAAO,MAAM,eAAe,EAAE,cAAc,EAuC3C,CAAC;AAIF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,GAAG,YAAY,CAaxF"}