guardlink 1.1.0 → 1.3.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 (154) hide show
  1. package/CHANGELOG.md +62 -0
  2. package/README.md +11 -2
  3. package/dist/agents/config.d.ts +17 -0
  4. package/dist/agents/config.d.ts.map +1 -1
  5. package/dist/agents/config.js +38 -4
  6. package/dist/agents/config.js.map +1 -1
  7. package/dist/agents/index.d.ts +5 -1
  8. package/dist/agents/index.d.ts.map +1 -1
  9. package/dist/agents/index.js +4 -1
  10. package/dist/agents/index.js.map +1 -1
  11. package/dist/agents/launcher.d.ts +25 -8
  12. package/dist/agents/launcher.d.ts.map +1 -1
  13. package/dist/agents/launcher.js +137 -9
  14. package/dist/agents/launcher.js.map +1 -1
  15. package/dist/agents/prompts.d.ts +9 -0
  16. package/dist/agents/prompts.d.ts.map +1 -1
  17. package/dist/agents/prompts.js +43 -6
  18. package/dist/agents/prompts.js.map +1 -1
  19. package/dist/analyze/index.d.ts +44 -8
  20. package/dist/analyze/index.d.ts.map +1 -1
  21. package/dist/analyze/index.js +291 -15
  22. package/dist/analyze/index.js.map +1 -1
  23. package/dist/analyze/llm.d.ts +65 -13
  24. package/dist/analyze/llm.d.ts.map +1 -1
  25. package/dist/analyze/llm.js +429 -107
  26. package/dist/analyze/llm.js.map +1 -1
  27. package/dist/analyze/prompts.d.ts +6 -2
  28. package/dist/analyze/prompts.d.ts.map +1 -1
  29. package/dist/analyze/prompts.js +230 -111
  30. package/dist/analyze/prompts.js.map +1 -1
  31. package/dist/analyze/tools.d.ts +28 -0
  32. package/dist/analyze/tools.d.ts.map +1 -0
  33. package/dist/analyze/tools.js +236 -0
  34. package/dist/analyze/tools.js.map +1 -0
  35. package/dist/analyzer/index.d.ts +3 -0
  36. package/dist/analyzer/index.d.ts.map +1 -1
  37. package/dist/analyzer/index.js +3 -0
  38. package/dist/analyzer/index.js.map +1 -1
  39. package/dist/analyzer/sarif.d.ts +5 -6
  40. package/dist/analyzer/sarif.d.ts.map +1 -1
  41. package/dist/analyzer/sarif.js +5 -6
  42. package/dist/analyzer/sarif.js.map +1 -1
  43. package/dist/cli/index.d.ts +27 -16
  44. package/dist/cli/index.d.ts.map +1 -1
  45. package/dist/cli/index.js +524 -105
  46. package/dist/cli/index.js.map +1 -1
  47. package/dist/dashboard/data.d.ts +5 -0
  48. package/dist/dashboard/data.d.ts.map +1 -1
  49. package/dist/dashboard/data.js +5 -0
  50. package/dist/dashboard/data.js.map +1 -1
  51. package/dist/dashboard/generate.d.ts +8 -5
  52. package/dist/dashboard/generate.d.ts.map +1 -1
  53. package/dist/dashboard/generate.js +206 -66
  54. package/dist/dashboard/generate.js.map +1 -1
  55. package/dist/dashboard/index.d.ts +5 -0
  56. package/dist/dashboard/index.d.ts.map +1 -1
  57. package/dist/dashboard/index.js +5 -0
  58. package/dist/dashboard/index.js.map +1 -1
  59. package/dist/diff/git.d.ts +10 -7
  60. package/dist/diff/git.d.ts.map +1 -1
  61. package/dist/diff/git.js +10 -7
  62. package/dist/diff/git.js.map +1 -1
  63. package/dist/diff/index.d.ts +4 -0
  64. package/dist/diff/index.d.ts.map +1 -1
  65. package/dist/diff/index.js +4 -0
  66. package/dist/diff/index.js.map +1 -1
  67. package/dist/init/detect.d.ts +5 -0
  68. package/dist/init/detect.d.ts.map +1 -1
  69. package/dist/init/detect.js +5 -0
  70. package/dist/init/detect.js.map +1 -1
  71. package/dist/init/index.d.ts +26 -6
  72. package/dist/init/index.d.ts.map +1 -1
  73. package/dist/init/index.js +91 -11
  74. package/dist/init/index.js.map +1 -1
  75. package/dist/init/picker.d.ts.map +1 -1
  76. package/dist/init/picker.js +17 -6
  77. package/dist/init/picker.js.map +1 -1
  78. package/dist/init/templates.d.ts +20 -0
  79. package/dist/init/templates.d.ts.map +1 -1
  80. package/dist/init/templates.js +167 -36
  81. package/dist/init/templates.js.map +1 -1
  82. package/dist/mcp/index.d.ts +5 -0
  83. package/dist/mcp/index.d.ts.map +1 -1
  84. package/dist/mcp/index.js +5 -0
  85. package/dist/mcp/index.js.map +1 -1
  86. package/dist/mcp/lookup.d.ts +5 -0
  87. package/dist/mcp/lookup.d.ts.map +1 -1
  88. package/dist/mcp/lookup.js +5 -0
  89. package/dist/mcp/lookup.js.map +1 -1
  90. package/dist/mcp/server.d.ts +16 -13
  91. package/dist/mcp/server.d.ts.map +1 -1
  92. package/dist/mcp/server.js +140 -17
  93. package/dist/mcp/server.js.map +1 -1
  94. package/dist/mcp/suggest.d.ts +8 -6
  95. package/dist/mcp/suggest.d.ts.map +1 -1
  96. package/dist/mcp/suggest.js +8 -6
  97. package/dist/mcp/suggest.js.map +1 -1
  98. package/dist/parser/clear.d.ts +36 -0
  99. package/dist/parser/clear.d.ts.map +1 -0
  100. package/dist/parser/clear.js +148 -0
  101. package/dist/parser/clear.js.map +1 -0
  102. package/dist/parser/index.d.ts +3 -1
  103. package/dist/parser/index.d.ts.map +1 -1
  104. package/dist/parser/index.js +2 -1
  105. package/dist/parser/index.js.map +1 -1
  106. package/dist/parser/parse-file.d.ts +5 -2
  107. package/dist/parser/parse-file.d.ts.map +1 -1
  108. package/dist/parser/parse-file.js +29 -2
  109. package/dist/parser/parse-file.js.map +1 -1
  110. package/dist/parser/parse-line.d.ts +3 -3
  111. package/dist/parser/parse-line.js +3 -3
  112. package/dist/parser/parse-project.d.ts +7 -7
  113. package/dist/parser/parse-project.d.ts.map +1 -1
  114. package/dist/parser/parse-project.js +24 -11
  115. package/dist/parser/parse-project.js.map +1 -1
  116. package/dist/parser/validate.d.ts +12 -0
  117. package/dist/parser/validate.d.ts.map +1 -1
  118. package/dist/parser/validate.js +44 -0
  119. package/dist/parser/validate.js.map +1 -1
  120. package/dist/report/index.d.ts +3 -0
  121. package/dist/report/index.d.ts.map +1 -1
  122. package/dist/report/index.js +3 -0
  123. package/dist/report/index.js.map +1 -1
  124. package/dist/report/report.d.ts +4 -7
  125. package/dist/report/report.d.ts.map +1 -1
  126. package/dist/report/report.js +68 -7
  127. package/dist/report/report.js.map +1 -1
  128. package/dist/review/index.d.ts +62 -0
  129. package/dist/review/index.d.ts.map +1 -0
  130. package/dist/review/index.js +226 -0
  131. package/dist/review/index.js.map +1 -0
  132. package/dist/tui/commands.d.ts +26 -1
  133. package/dist/tui/commands.d.ts.map +1 -1
  134. package/dist/tui/commands.js +608 -101
  135. package/dist/tui/commands.js.map +1 -1
  136. package/dist/tui/config.d.ts +6 -0
  137. package/dist/tui/config.d.ts.map +1 -1
  138. package/dist/tui/config.js +6 -0
  139. package/dist/tui/config.js.map +1 -1
  140. package/dist/tui/format.d.ts +7 -0
  141. package/dist/tui/format.d.ts.map +1 -1
  142. package/dist/tui/format.js +59 -0
  143. package/dist/tui/format.js.map +1 -1
  144. package/dist/tui/index.d.ts +8 -8
  145. package/dist/tui/index.d.ts.map +1 -1
  146. package/dist/tui/index.js +47 -10
  147. package/dist/tui/index.js.map +1 -1
  148. package/dist/tui/input.d.ts +6 -0
  149. package/dist/tui/input.d.ts.map +1 -1
  150. package/dist/tui/input.js +6 -0
  151. package/dist/tui/input.js.map +1 -1
  152. package/dist/types/index.d.ts +2 -0
  153. package/dist/types/index.d.ts.map +1 -1
  154. 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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"}
@@ -3,12 +3,16 @@
3
3
  *
4
4
  * Each framework produces a structured security analysis from the
5
5
  * serialized threat model. The LLM acts as a senior security architect.
6
+ *
7
+ * @comment -- "Prompt templates are static; no user input interpolation in system prompts"
8
+ * @comment -- "customPrompt is appended to user message, not system prompt — bounded injection risk"
6
9
  */
7
10
  export type AnalysisFramework = 'stride' | 'dread' | 'pasta' | 'attacker' | 'rapid' | 'general';
8
11
  export declare const FRAMEWORK_LABELS: Record<AnalysisFramework, string>;
9
12
  export declare const FRAMEWORK_PROMPTS: Record<AnalysisFramework, string>;
10
13
  /**
11
- * Build the user message containing the serialized threat model.
14
+ * Build the user message containing the serialized threat model,
15
+ * optional project context, and optional code snippets.
12
16
  */
13
- export declare function buildUserMessage(modelJson: string, framework: AnalysisFramework, customPrompt?: string): string;
17
+ export declare function buildUserMessage(modelJson: string, framework: AnalysisFramework, customPrompt?: string, projectContext?: string, codeSnippets?: string): string;
14
18
  //# 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;;;;;;;;GAQG;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"}
@@ -3,6 +3,9 @@
3
3
  *
4
4
  * Each framework produces a structured security analysis from the
5
5
  * serialized threat model. The LLM acts as a senior security architect.
6
+ *
7
+ * @comment -- "Prompt templates are static; no user input interpolation in system prompts"
8
+ * @comment -- "customPrompt is appended to user message, not system prompt — bounded injection risk"
6
9
  */
7
10
  export const FRAMEWORK_LABELS = {
8
11
  stride: 'STRIDE Threat Analysis',
@@ -12,194 +15,310 @@ export const FRAMEWORK_LABELS = {
12
15
  rapid: 'Rapid Risk Assessment',
13
16
  general: 'General Threat Analysis',
14
17
  };
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.`;
18
+ 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.
19
+
20
+ 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.
21
+
22
+ ## Your inputs
23
+
24
+ You will receive:
25
+ 1. **Project context** language/framework, dependencies, deployment signals (Dockerfile, CI config, etc.)
26
+ 2. **Annotation graph** structured security metadata extracted from source code comments (GuardLink annotations)
27
+ 3. **Code snippets** the actual source lines surrounding each annotation, so you can validate what developers claimed
28
+
29
+ ## How to use these inputs
30
+
31
+ - Treat annotations as **developer hypotheses**, not ground truth. Validate them against the code snippets.
32
+ - Use the project context to reason about the **real attack surface** what frameworks introduce, what dependencies are known-vulnerable, what the deployment model exposes.
33
+ - **Identify gaps**: what is NOT annotated but should be? Look at unannotated symbols, data flows with no security coverage, and dependency-level risks.
34
+ - Produce a threat model a **security team could hand to an auditor** — specific, evidence-based, and actionable.
35
+
36
+ ## Annotation semantics
37
+
38
+ - **@asset** — a component the developer considers security-relevant
39
+ - **@threat** — a threat vector (with optional CWE reference and severity)
40
+ - **@control** — a security mechanism in place
41
+ - **@mitigates** — a real control exists in code defending an asset against a threat. This is a genuine defense.
42
+ - **@exposes** — a known vulnerability: this asset is exposed to this threat
43
+ - **@accepts** — risk acknowledged but **NO control in code**. This is a governance decision, not a technical fix.
44
+ - **@flows** — data movement between components
45
+ - **@boundary** — a trust boundary between security zones
46
+ - **@handles** — sensitive data classification (pii, phi, financial, secrets)
47
+ - **@assumes** — a security assumption the developer is relying on (potential blind spot)
48
+ - **@audit** — marks an asset as requiring human review
49
+
50
+ ## Critical rules
51
+
52
+ - 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.
53
+ - Treat accepted-but-unmitigated exposures as **OPEN RISKS**, not resolved findings.
54
+ - 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**.
55
+ - Challenge accepted risks: "You accepted this — is that reasonable given the severity and blast radius?"
56
+ - Always reference **specific files, assets, and threat IDs** from the model. Never give generic advice.
57
+
58
+ ## Output structure
59
+
60
+ Your report must have two clearly separated sections:
61
+
62
+ ### Part 1 — Annotation Validation
63
+ 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.
64
+
65
+ ### Part 2 — Threat Model
66
+ 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
67
  export const FRAMEWORK_PROMPTS = {
31
68
  stride: `${SYSTEM_BASE}
32
69
 
33
- Perform a **STRIDE** analysis of this threat model.
70
+ Apply the **STRIDE** framework to produce a complete threat model.
34
71
 
35
- For each STRIDE category, evaluate the codebase:
72
+ ## Part 1 Annotation Validation
73
+ For each @exposes and @mitigates annotation, cross-reference the provided code snippet:
74
+ - Does the code actually implement what the annotation claims?
75
+ - Is the severity rating appropriate given the code context?
76
+ - Flag any annotation that appears inaccurate or incomplete.
36
77
 
37
- ## SSpoofing
38
- Identify where authentication can be bypassed. Check: are all assets with @exposes to auth-related threats properly mitigated?
78
+ ## Part 2 STRIDE Threat Model
39
79
 
40
- ## T Tampering
41
- Identify where data integrity is at risk. Check: @flows without integrity controls, @handles with sensitive data lacking validation.
80
+ For each STRIDE category, reason from ALL available evidence (annotations + code snippets + project context):
42
81
 
43
- ## RRepudiation
44
- Identify where actions cannot be traced. Check: are there @audit annotations? Are critical operations logged?
82
+ ### SSpoofing
83
+ Authentication bypass risks. Consider: framework-level auth mechanisms from project context, @exposes to auth threats, unannotated auth code paths visible in snippets.
45
84
 
46
- ## IInformation Disclosure
47
- Identify where sensitive data leaks. Check: @exposes to info-disclosure/data-exposure threats, @handles pii/phi/secrets without encryption.
85
+ ### TTampering
86
+ Data integrity risks. Consider: @flows without integrity controls, @handles with sensitive data lacking validation, what the framework/dependencies do (or don't) provide.
48
87
 
49
- ## DDenial of Service
50
- Identify resource exhaustion risks. Check: @exposes to dos threats, rate limiting controls, boundary protections.
88
+ ### RRepudiation
89
+ Audit trail gaps. Consider: @audit annotations present vs. missing, critical operations in code snippets with no logging, framework logging capabilities.
51
90
 
52
- ## EElevation of Privilege
53
- Identify privilege escalation paths. Check: @exposes to bac/idor threats, @boundary gaps, missing authorization controls.
91
+ ### IInformation Disclosure
92
+ Sensitive data leakage. Consider: @handles pii/phi/secrets, error handling visible in code snippets, dependency-level disclosure risks from project context.
93
+
94
+ ### D — Denial of Service
95
+ Resource exhaustion. Consider: @exposes to dos threats, rate limiting in code snippets, framework/infrastructure protections from project context.
96
+
97
+ ### E — Elevation of Privilege
98
+ Privilege escalation paths. Consider: @exposes to bac/idor threats, @boundary gaps, authorization checks visible in code snippets.
54
99
 
55
100
  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?
101
+ 1. Specific findings referencing actual assets, threats, and file locations
102
+ 2. Severity (Critical/High/Medium/Low) with justification from code evidence
103
+ 3. Concrete mitigations tied to existing controls or new ones needed
104
+ 4. Annotation gaps — what @exposes or @mitigates are missing from the code?
60
105
 
61
106
  End with an Executive Summary and Priority Action Items.`,
62
107
  dread: `${SYSTEM_BASE}
63
108
 
64
- Perform a **DREAD** risk scoring analysis of this threat model.
109
+ Apply **DREAD** risk scoring to produce a prioritized threat model.
110
+
111
+ ## Part 1 — Annotation Validation
112
+ Review each @exposes annotation against its code snippet. For each:
113
+ - Is the exposure real? Does the code confirm the vulnerability?
114
+ - Is the severity annotation accurate vs. DREAD scoring?
115
+ - Note any discrepancies between annotation claims and actual code.
116
+
117
+ ## Part 2 — DREAD Risk Model
65
118
 
66
- For each unmitigated exposure and significant threat, calculate a DREAD score:
119
+ For each unmitigated exposure and significant threat, calculate a DREAD score using ALL available evidence:
67
120
 
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?
121
+ - **D — Damage Potential** (0-10): How bad if exploited? Factor in @handles classifications and business context.
122
+ - **R — Reproducibility** (0-10): How easy to reproduce? Factor in code complexity from snippets.
123
+ - **E — Exploitability** (0-10): How easy to launch? Factor in known CVEs from dependencies (project context).
124
+ - **A — Affected Users** (0-10): How many users impacted? Factor in data flows and boundaries.
125
+ - **D — Discoverability** (0-10): How easy to find? Factor in public-facing surfaces from project context.
73
126
 
74
127
  Present results as a ranked table:
75
128
 
76
- | Threat | Asset | D | R | E | A | D | Total | Risk Level |
77
- |--------|-------|---|---|---|---|---|-------|------------|
129
+ | Threat | Asset | File | D | R | E | A | D | Total | Risk Level |
130
+ |--------|-------|------|---|---|---|---|---|-------|------------|
78
131
 
79
132
  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`,
133
+ 1. Top 5 risks by DREAD score with detailed justification citing code evidence
134
+ 2. Dependency-level risks from project context not captured in annotations
135
+ 3. Quick winshigh-score items with straightforward mitigations
136
+ 4. Systemic risks patterns across multiple exposures
137
+ 5. Recommended priority order for remediation`,
84
138
  pasta: `${SYSTEM_BASE}
85
139
 
86
- Perform a **PASTA** (Process for Attack Simulation and Threat Analysis) assessment.
140
+ Apply the **PASTA** (Process for Attack Simulation and Threat Analysis) methodology.
87
141
 
88
- Work through all 7 PASTA stages:
142
+ ## Part 1 Annotation Validation
143
+ Before the PASTA stages, validate the annotation graph against code snippets:
144
+ - Which @mitigates annotations are confirmed by actual code?
145
+ - Which @exposes annotations are confirmed by actual vulnerable code?
146
+ - Which @accepts decisions look unreasonable given the code evidence?
147
+
148
+ ## Part 2 — PASTA Assessment
89
149
 
90
150
  ### Stage 1: Define Objectives
91
- What are the business-critical assets? Which @asset declarations represent the crown jewels?
151
+ Business-critical assets from @asset declarations. What are the crown jewels? Use @handles classifications to identify data sensitivity.
92
152
 
93
153
  ### Stage 2: Define Technical Scope
94
- Map the attack surface from @flows, @boundary, and @handles annotations. What are the entry points?
154
+ 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
155
 
96
156
  ### Stage 3: Application Decomposition
97
- Analyze component relationships from flows and boundaries. Identify trust zones and data paths.
157
+ Component relationships from flows and boundaries. Trust zones, data paths, and dependency graph from project context. Identify components with no security annotations.
98
158
 
99
159
  ### Stage 4: Threat Analysis
100
- Map declared @threat annotations to real-world attack techniques. Reference CWE/CAPEC where available.
160
+ Map @threat annotations to real-world attack techniques (CWE/CAPEC). Supplement with threats implied by the tech stack and dependencies from project context.
101
161
 
102
162
  ### Stage 5: Vulnerability Analysis
103
- Evaluate each @exposes annotation. Which are most exploitable given the technical context?
163
+ Evaluate each @exposes annotation against code snippets. Which are confirmed? Which are most exploitable given the technical context and dependency versions?
104
164
 
105
165
  ### Stage 6: Attack Simulation
106
- For the top 3 most critical exposures, describe a realistic attack scenario step-by-step.
166
+ 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
167
 
108
168
  ### Stage 7: Risk & Impact Analysis
109
- Prioritized risk matrix with business impact assessment.
169
+ Prioritized risk matrix with business impact. Include dependency-level risks not captured in annotations.
110
170
 
111
- End with concrete remediation recommendations tied to specific annotations.`,
171
+ End with concrete remediation recommendations tied to specific annotations and code locations.`,
112
172
  attacker: `${SYSTEM_BASE}
113
173
 
114
- Perform an **Attacker Persona** analysis of this threat model.
174
+ Apply an **Attacker Persona** analysis to produce a complete threat model.
175
+
176
+ ## Part 1 — Annotation Validation
177
+ For each @exposes annotation, assess exploitability from an attacker's perspective:
178
+ - Does the code snippet confirm the vulnerability is real and reachable?
179
+ - Is the @accepts decision defensible against a motivated attacker?
180
+ - Flag any annotation that understates attacker capability.
181
+
182
+ ## Part 2 — Attacker Persona Threat Model
115
183
 
116
- Adopt the mindset of different attacker types and evaluate the codebase:
184
+ Adopt the mindset of each attacker type using ALL available evidence:
117
185
 
118
- ### 1. Script Kiddie (Low Skill)
119
- What can be exploited with publicly available tools? Which @exposes have known CVEs (check cwe: refs)?
186
+ ### 1. Script Kiddie (Low Skill, Opportunistic)
187
+ 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
188
 
121
189
  ### 2. Opportunistic Attacker (Medium Skill)
122
- What attack chains are possible? Can multiple exposures be combined? Check @flows for lateral movement paths.
190
+ What attack chains are possible? Check: @flows for lateral movement, multiple @exposes that can be chained, framework-level weaknesses from project context.
123
191
 
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?
192
+ ### 3. Targeted Attacker (High Skill, Persistent)
193
+ 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
194
 
127
- ### 4. Insider Threat
128
- Which @assumes annotations represent blind spots? Where does the model trust internal components without verification?
195
+ ### 4. Insider Threat (Trusted Access)
196
+ What can a legitimate user or developer abuse? Check: @assumes that trust internal components, missing @audit annotations on sensitive operations, overprivileged data flows.
129
197
 
130
198
  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
199
+ 1. Most likely attack vector (reference specific files and annotation IDs)
200
+ 2. Step-by-step attack path through the system
201
+ 3. Impact if successful (reference @handles data classifications)
202
+ 4. Current defenses (@mitigates) and their effectiveness per code evidence
203
+ 5. Gaps what's missing that would stop this attacker?
136
204
 
137
205
  End with a prioritized defense improvement plan.`,
138
206
  rapid: `${SYSTEM_BASE}
139
207
 
140
- Perform a **Rapid Risk Assessment** — concise, actionable, focused on the highest-impact items.
208
+ Produce a **Rapid Risk Assessment** — concise, actionable, highest-impact items only.
209
+
210
+ ## Part 1 — Annotation Validation (Brief)
211
+ Flag only significant discrepancies: annotations contradicted by code snippets, or @accepts decisions that look unreasonable. Keep this section under 20 lines.
212
+
213
+ ## Part 2 — Rapid Risk Assessment
141
214
 
142
- ### Critical Findings (Stop Everything)
143
- List any P0/critical @exposes without @mitigates. These are active vulnerabilities.
215
+ ### Critical Findings (Act Now)
216
+ Unmitigated @exposes at critical/high severity. Confirmed by code snippets where available. Include dependency CVEs from project context.
144
217
 
145
218
  ### High-Priority Gaps
146
- - Unmitigated exposures by severity
147
- - @assumes that could be violated
148
- - @boundary without proper controls on crossing flows
219
+ - Unmitigated exposures by severity with file locations
220
+ - @assumes that could be violated given the tech stack
221
+ - @boundary crossings with no security controls in code
222
+ - Unannotated symbols handling sensitive data (from coverage stats)
149
223
 
150
224
  ### 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?
225
+ - Annotation coverage % and what the unannotated symbols are
226
+ - Components with @flows but no security annotations
227
+ - @handles (sensitive data) without corresponding @mitigates
154
228
 
155
229
  ### Top 5 Recommendations
156
- Numbered, actionable, with specific annotation suggestions (exact @mitigates lines to add).
230
+ Numbered, specific, actionable. For each: what to fix, where (file:line), and the exact GuardLink annotation to add.
157
231
 
158
232
  ### Risk Score
159
- Rate overall security posture: A (excellent) through F (critical risk). Justify with data from the model.
233
+ A (excellent) through F (critical risk). Justify with specific data points from the model and code.
160
234
 
161
- Keep the entire analysis under 500 lines. Be direct — no filler.`,
235
+ Keep the entire report under 500 lines. Be direct — no filler.`,
162
236
  general: `${SYSTEM_BASE}
163
237
 
164
- Perform a comprehensive threat analysis of this codebase.
238
+ 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.
239
+
240
+ ## Part 1 — Annotation Validation
241
+
242
+ For each significant annotation, assess accuracy against the code snippet:
243
+ - **@mitigates**: does the code actually implement the claimed control?
244
+ - **@exposes**: is the vulnerability real and reachable from the code?
245
+ - **@accepts**: is the risk acceptance reasonable given severity and blast radius? Challenge it.
246
+ - Flag inaccurate, missing, or overstated annotations with specific file:line evidence.
247
+
248
+ ## Part 2 — Threat Model Document
249
+
250
+ Produce the following sections. Omit a section only if there is genuinely no relevant information for it — do not pad with boilerplate.
165
251
 
166
- ### Executive Summary
167
- 2-3 sentence overall assessment.
252
+ ### 1. Overview & Scope
253
+ 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
254
 
169
- ### Threat Landscape
170
- What threats does this application face? Map @threat declarations to real-world attack patterns.
255
+ ### 2. Architecture
256
+ 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
257
 
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
258
+ ### 3. Key Flows & Data Paths
259
+ 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
260
 
177
- ### Data Flow Analysis
178
- Trace sensitive data through @flows and @boundary annotations. Where does data cross trust boundaries without protection?
261
+ ### 4. Data Handling & AI/ML Data Use
262
+ 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
263
 
180
- ### Missing Annotations
181
- Based on the architecture visible in @flows and @boundary, what security annotations are likely missing?
264
+ ### 5. Roles & Access
265
+ 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
266
 
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)
267
+ ### 6. Dependencies & Supply Chain
268
+ 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
269
 
189
- ### Compliance Considerations
190
- Based on @handles classifications (pii, phi, financial), note relevant compliance requirements (GDPR, HIPAA, PCI-DSS).`,
270
+ ### 7. Secrets, Keys & Credential Management
271
+ 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?
272
+
273
+ ### 8. Logging, Monitoring & Audit
274
+ 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.
275
+
276
+ ### 9. Assumptions & Threat Actors
277
+ 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.
278
+
279
+ ### 10. Abuse Scenarios & Findings
280
+ For each unmitigated @exposes and each significant gap found during annotation validation: a concrete abuse scenario. Format each as:
281
+ - **Finding**: what the vulnerability is (file:line)
282
+ - **Scenario**: how an attacker exploits it step by step
283
+ - **Impact**: what they gain (reference @handles data classifications)
284
+ - **Severity**: Critical / High / Medium / Low with justification
285
+ - **Remediation**: specific code change or control to add, plus the GuardLink annotation to reflect it
286
+
287
+ Order by severity descending.
288
+
289
+ ### 11. Testing & Review Scope
290
+ 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.
291
+
292
+ ### 12. Open Risks & Accepted Risks
293
+ 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.
294
+
295
+ ### 13. Priority Action Items
296
+ 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
297
  };
192
298
  /**
193
- * Build the user message containing the serialized threat model.
299
+ * Build the user message containing the serialized threat model,
300
+ * optional project context, and optional code snippets.
194
301
  */
195
- export function buildUserMessage(modelJson, framework, customPrompt) {
302
+ export function buildUserMessage(modelJson, framework, customPrompt, projectContext, codeSnippets) {
196
303
  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>`;
304
+ ? `Use these annotations as input to produce a threat model. Additional focus: ${customPrompt}`
305
+ : `Produce a ${FRAMEWORK_LABELS[framework]} for this codebase using all available evidence below.`;
306
+ const parts = [header, ''];
307
+ if (projectContext) {
308
+ parts.push('<project_context>');
309
+ parts.push(projectContext);
310
+ parts.push('</project_context>');
311
+ parts.push('');
312
+ }
313
+ parts.push('<annotation_graph>');
314
+ parts.push(modelJson);
315
+ parts.push('</annotation_graph>');
316
+ if (codeSnippets) {
317
+ parts.push('');
318
+ parts.push('<code_snippets>');
319
+ parts.push(codeSnippets);
320
+ parts.push('</code_snippets>');
321
+ }
322
+ return parts.join('\n');
204
323
  }
205
324
  //# 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;;;;;;;;GAQG;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,28 @@
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
+ * @exposes #llm-client to #ssrf [medium] cwe:CWE-918 -- "lookupCve fetches from NVD API with user-controlled CVE ID"
10
+ * @mitigates #llm-client against #ssrf using #input-sanitize -- "CVE ID validated with strict regex; URL hardcoded to NVD"
11
+ * @exposes #llm-client to #path-traversal [medium] cwe:CWE-22 -- "searchCodebase reads files from project root"
12
+ * @mitigates #llm-client against #path-traversal using #glob-filtering -- "skipDirs excludes sensitive directories; relative() bounds output"
13
+ * @exposes #llm-client to #dos [low] cwe:CWE-400 -- "searchCodebase reads many files; bounded by maxResults"
14
+ * @mitigates #llm-client against #dos using #resource-limits -- "maxResults caps output; stat.size < 500KB filter"
15
+ * @flows LLMToolCall -> #llm-client via createToolExecutor -- "Tool invocation input"
16
+ * @flows #llm-client -> NVD via fetch -- "CVE lookup API call"
17
+ * @flows ProjectFiles -> #llm-client via readFileSync -- "Codebase search reads"
18
+ * @boundary #llm-client and NVD (#nvd-api-boundary) -- "Trust boundary at external API"
19
+ */
20
+ import type { ToolDefinition, ToolExecutor } from './llm.js';
21
+ import type { ThreatModel } from '../types/index.js';
22
+ export declare const GUARDLINK_TOOLS: ToolDefinition[];
23
+ /**
24
+ * Create a tool executor bound to a project root and threat model.
25
+ * The executor handles all GuardLink tool calls.
26
+ */
27
+ export declare function createToolExecutor(root: string, model: ThreatModel | null): ToolExecutor;
28
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/analyze/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;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"}