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
@@ -53,7 +53,7 @@ Append after severity: \`cwe:CWE-89\`, \`owasp:A03:2021\`, \`capec:CAPEC-66\`, \
53
53
 
54
54
  1. **Define once, reference everywhere.** \`@asset\`, \`@threat\`, \`@control\` with \`(#id)\` go in \`.guardlink/definitions${project.definitionsExt}\`. Source files use relationship verbs only (\`@mitigates\`, \`@exposes\`, etc.).
55
55
  2. **Read definitions before adding.** Check for existing IDs first — avoid duplicates.
56
- 3. **Every \`@exposes\` needs a plan.** Match with \`@mitigates\` (fix exists), \`@accepts\` (risk acknowledged), or TODO.
56
+ 3. **Every \`@exposes\` needs a response.** Match with \`@mitigates\` (fix exists), \`@audit\` (flag for review), or \`@accepts\` (human-only risk acceptance). AI agents must NEVER write \`@accepts\` — use \`@audit\` instead.
57
57
  4. **Always annotate security-relevant code.** At minimum, add \`@comment\` to document intent.
58
58
  5. **Use the full verb set.** \`@flows\` for data movement, \`@handles\` for data classification, \`@boundary\` for trust boundaries.
59
59
 
@@ -63,6 +63,7 @@ Append after severity: \`cwe:CWE-89\`, \`owasp:A03:2021\`, \`capec:CAPEC-66\`, \
63
63
  |-----------|------------|
64
64
  | New service/component | \`@asset\` in definitions, then reference in source |
65
65
  | Security gap exists | \`@exposes Asset to #threat\` |
66
+ | Risk with no fix yet | \`@audit Asset\` + \`@comment\` explaining potential controls |
66
67
  | Implementing a fix | \`@mitigates Asset against #threat using #control\` |
67
68
  | Processing sensitive data | \`@handles pii on Asset\` |
68
69
  | Proprietary algorithm | \`@shield:begin\` ... \`@shield:end\` |
@@ -101,22 +102,37 @@ This project uses [GuardLink](https://guardlink.bugb.io) annotations in source c
101
102
 
102
103
  ### Key Rules
103
104
 
104
- 1. Definitions (\`@asset\`, \`@threat\`, \`@control\` with \`#id\`) go in \`.guardlink/definitions${project.definitionsExt}\` read it before adding new ones.
105
- 2. Source files use relationship verbs only: \`@mitigates\`, \`@exposes\`, \`@accepts\`, \`@flows\`, \`@handles\`, \`@boundary\`, \`@comment\`.
106
- 3. Every \`@exposes\` needs a matching \`@mitigates\` or \`@accepts\`.
107
- 4. Always add at least \`@comment\` on security-relevant code.
108
- 5. Run \`guardlink validate .\` after making changes.
105
+ 1. Do not delete or mangle existing GuardLink annotations. Treat them as part of the code. Edit only when intentionally changing the threat model.
106
+ 2. Definitions (\`@asset\`, \`@threat\`, \`@control\` with \`(#id)\`) live in \`.guardlink/definitions${project.definitionsExt}\`. Reuse existing \`#id\`s — never redefine.
107
+ 3. Source files use relationship verbs only: \`@mitigates\`, \`@exposes\`, \`@flows\`, \`@handles\`, \`@boundary\`, \`@comment\`, \`@validates\`, \`@audit\`, \`@owns\`, \`@assumes\`, \`@transfers\`.
108
+ 4. Every \`@exposes\` should be paired with \`@mitigates\` or \`@audit\` (for human review). NEVER write \`@accepts\` — that is a human-only governance decision.
109
+ 5. Prefer coupled blocks that tell a complete story near the code they describe (risk + control + flow + note).
110
+ 6. Avoid \`@shield\` unless a human explicitly asks to hide code from AI — it creates blind spots.
109
111
 
110
- ### MCP Tools Available
112
+ ### Workflow (while coding)
111
113
 
112
- Use \`guardlink_lookup\` to check existing definitions. Use \`guardlink_validate\` after annotating. Use \`guardlink_suggest <file>\` for recommendations.
114
+ - Before adding new annotations: skim \`.guardlink/definitions${project.definitionsExt}\` to reuse IDs.
115
+ - After changes: run \`guardlink validate .\` to catch syntax/dangling refs; run \`guardlink status .\` to check coverage; commit updates with the code.
116
+ - When adding features: add or update annotations in the same PR.
113
117
 
114
- ### Quick Syntax
118
+ ### Tools
119
+
120
+ - MCP tools (when available, e.g., Claude Code): \`guardlink_lookup\`, \`guardlink_validate\`, \`guardlink_status\`, \`guardlink_parse\`, \`guardlink_suggest <file>\`.
121
+ - CLI equivalents (always available): \`guardlink validate .\`, \`guardlink status .\`, \`guardlink parse .\`.
122
+
123
+ ### Quick Syntax (common verbs)
115
124
 
116
125
  \`\`\`
117
- @exposes Asset to #threat [P0] cwe:CWE-89 -- "description"
118
- @mitigates Asset against #threat using #control -- "how"
119
- @comment -- "security-relevant note"
126
+ @exposes App.API to #sqli [P0] cwe:CWE-89 -- "req.body.email concatenated into SQL"
127
+ @mitigates App.API against #sqli using #prepared-stmts -- "Parameterized queries via pg"
128
+ @audit App.API -- "Timing attack risk — needs human review to assess bcrypt constant-time comparison"
129
+ @flows User -> App.API via HTTPS -- "Login request path"
130
+ @boundary between #api and #db (#data-boundary) -- "App → DB trust change"
131
+ @handles pii on App.API -- "Processes email and session token"
132
+ @validates #prepared-stmts for App.API -- "sqlInjectionTest.ts ensures placeholders used"
133
+ @audit App.API -- "Token rotation logic needs crypto review"
134
+ @owns security-team for App.API -- "Team responsible for reviews"
135
+ @comment -- "Rate limit: 100 req/15min via express-rate-limit"
120
136
  \`\`\`
121
137
  `.trimStart();
122
138
  }
@@ -128,25 +144,29 @@ export function cursorRulesContent(project) {
128
144
 
129
145
  This project uses GuardLink annotations in source code comments.
130
146
 
131
- ## Annotation Syntax
132
- - @asset <Component.Path> (#id) -- "description"
133
- - @threat <Name> (#id) [P0|P1|P2|P3] cwe:CWE-NNN -- "description"
134
- - @control <Name> (#id) -- "description"
135
- - @mitigates <Asset> against <#threat> using <#control> -- "how"
136
- - @exposes <Asset> to <#threat> [severity] cwe:CWE-NNN -- "what"
137
- - @accepts <#threat> on <Asset> -- "why"
138
- - @flows <Source> -> <Target> via <mechanism> -- "details"
139
- - @boundary between <A> and <B> (#id) -- "trust boundary"
140
- - @handles <pii|phi|financial|secrets> on <Asset>
141
- - @shield:begin -- "reason" ... @shield:end
142
-
143
- ## Rules
144
- - All @asset, @threat, @control with (#id) go in .guardlink/definitions${project.definitionsExt}. Source files use only relationship verbs (@mitigates, @exposes, @accepts, @flows, etc).
145
- - Read definitions file before adding check for existing IDs first.
146
- - Severity: P0=critical, P1=high, P2=medium, P3=low. Only P0-P3.
147
- - External refs: cwe:CWE-89, owasp:A03:2021, capec:CAPEC-66
148
- - Every @exposes needs a matching @mitigates or @accepts.
149
- - Run \`guardlink validate .\` to check annotations.
147
+ ## Key Rules
148
+ - Preserve existing annotations — do not delete or mangle them. Edit only when intentionally changing the model.
149
+ - Definitions (@asset, @threat, @control with (#id)) live in .guardlink/definitions${project.definitionsExt}. Reuse IDs — never redefine.
150
+ - Source files use relationship verbs: @mitigates, @exposes, @flows, @handles, @boundary, @comment, @validates, @audit, @owns, @assumes, @transfers.
151
+ - Pair @exposes with @mitigates or @audit. NEVER write @accepts that is a human-only governance decision.
152
+ - When no mitigation exists, use @audit to flag for human review + @comment to suggest potential controls.
153
+ - Avoid @shield unless a human explicitly asks to hide code from AI.
154
+
155
+ ## Workflow
156
+ - Before changes: skim .guardlink/definitions${project.definitionsExt}.
157
+ - After changes: run \`guardlink validate .\` and \`guardlink status .\`.
158
+
159
+ ## Quick Syntax
160
+ - @exposes App.API to #sqli [P0] cwe:CWE-89 -- "req.body.email concatenated into SQL"
161
+ - @mitigates App.API against #sqli using #prepared-stmts -- "Parameterized queries via pg"
162
+ - @audit App.API -- "Timing attack risk — needs human review"
163
+ - @flows User -> App.API via HTTPS -- "Login request"
164
+ - @boundary between #api and #db (#data-boundary) -- "Trust change"
165
+ - @handles pii on App.API -- "Processes email, token"
166
+ - @validates #prepared-stmts for App.API -- "CI test ensures placeholders"
167
+ - @audit App.API -- "Token rotation review"
168
+ - @owns security-team for App.API -- "Team responsible"
169
+ - @comment -- "Rate limit: 100 req/15min"
150
170
  `.trimStart();
151
171
  }
152
172
  // ─── Cursor .mdc format ──────────────────────────────────────────────
@@ -193,7 +213,7 @@ ${c} ─── Your Definitions ────────────────
193
213
  // ─── Config file ─────────────────────────────────────────────────────
194
214
  export function configContent(project) {
195
215
  return JSON.stringify({
196
- version: '1.0.0',
216
+ version: '1.1.0',
197
217
  project: project.name,
198
218
  language: project.language,
199
219
  definitions: `definitions${project.definitionsExt}`,
@@ -1 +1 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/init/templates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/init/templates.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAsCpE,wBAAgB,YAAY,IAAI,SAAS,CAwZxC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAsCpE,wBAAgB,YAAY,IAAI,SAAS,CAoZxC"}
@@ -38,7 +38,7 @@
38
38
  */
39
39
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
40
40
  import { z } from 'zod';
41
- import { parseProject } from '../parser/index.js';
41
+ import { parseProject, findDanglingRefs, findUnmitigatedExposures } from '../parser/index.js';
42
42
  import { generateSarif } from '../analyzer/index.js';
43
43
  import { generateReport } from '../report/index.js';
44
44
  import { generateDashboardHTML } from '../dashboard/index.js';
@@ -69,7 +69,7 @@ function invalidateCache() {
69
69
  export function createServer() {
70
70
  const server = new McpServer({
71
71
  name: 'guardlink',
72
- version: '1.0.0',
72
+ version: '1.1.0',
73
73
  });
74
74
  // ── Tool: guardlink_parse ──
75
75
  server.tool('guardlink_parse', 'Parse GuardLink annotations from the project and return the full threat model as JSON', { root: z.string().describe('Project root directory').default('.') }, async ({ root }) => {
@@ -82,13 +82,7 @@ export function createServer() {
82
82
  // ── Tool: guardlink_status ──
83
83
  server.tool('guardlink_status', 'Return coverage statistics: asset/threat/control counts, unmitigated exposures, coverage percentage', { root: z.string().describe('Project root directory').default('.') }, async ({ root }) => {
84
84
  const { model } = await getModel(root);
85
- const mitigated = new Set();
86
- const accepted = new Set();
87
- for (const m of model.mitigations)
88
- mitigated.add(`${m.asset}::${m.threat}`);
89
- for (const a of model.acceptances)
90
- accepted.add(`${a.asset}::${a.threat}`);
91
- const unmitigated = model.exposures.filter(e => !mitigated.has(`${e.asset}::${e.threat}`) && !accepted.has(`${e.asset}::${e.threat}`));
85
+ const unmitigated = findUnmitigatedExposures(model);
92
86
  const status = {
93
87
  assets: model.assets.length,
94
88
  threats: model.threats.length,
@@ -115,23 +109,11 @@ export function createServer() {
115
109
  server.tool('guardlink_validate', 'Check annotations for syntax errors, duplicate IDs, and dangling references. Returns structured error list.', { root: z.string().describe('Project root directory').default('.') }, async ({ root }) => {
116
110
  invalidateCache();
117
111
  const { model, diagnostics } = await getModel(root);
118
- // Compute dangling refs
119
- const definedIds = new Set();
120
- for (const a of model.assets) {
121
- if (a.id)
122
- definedIds.add(a.id);
123
- definedIds.add(a.path.join('.'));
124
- }
125
- for (const t of model.threats) {
126
- if (t.id)
127
- definedIds.add(t.id);
128
- }
129
- for (const c of model.controls) {
130
- if (c.id)
131
- definedIds.add(c.id);
132
- }
133
- const errors = diagnostics.filter(d => d.level === 'error');
134
- const warnings = diagnostics.filter(d => d.level === 'warning');
112
+ // Compute dangling refs using shared validation
113
+ const danglingDiags = findDanglingRefs(model);
114
+ const allDiags = [...diagnostics, ...danglingDiags];
115
+ const errors = allDiags.filter(d => d.level === 'error');
116
+ const warnings = allDiags.filter(d => d.level === 'warning');
135
117
  const result = {
136
118
  valid: errors.length === 0,
137
119
  errors: errors.map(d => ({ file: d.file, line: d.line, message: d.message })),
@@ -169,10 +151,12 @@ export function createServer() {
169
151
  server.tool('guardlink_threat_report', 'Generate an AI threat report using a security framework (STRIDE, DREAD, PASTA, attacker, rapid, general). If an LLM API key is set in environment, runs analysis internally and saves result. If no API key is set, returns the framework prompt and serialized threat model for the calling agent to analyze directly — write the result as markdown to .guardlink/threat-reports/.', {
170
152
  root: z.string().describe('Project root directory').default('.'),
171
153
  framework: z.enum(['stride', 'dread', 'pasta', 'attacker', 'rapid', 'general']).describe('Analysis framework').default('general'),
172
- provider: z.string().describe('LLM provider: anthropic, openai, openrouter, deepseek (auto-detected from env)').optional(),
154
+ provider: z.string().describe('LLM provider: anthropic, openai, google, openrouter, deepseek (auto-detected from env)').optional(),
173
155
  model: z.string().describe('Model name override').optional(),
174
156
  custom_prompt: z.string().describe('Custom analysis prompt to replace the framework header').optional(),
175
- }, async ({ root, framework, provider, model: modelName, custom_prompt }) => {
157
+ web_search: z.boolean().describe('Enable web search grounding for real-time vulnerability intelligence (OpenAI)').optional(),
158
+ thinking: z.boolean().describe('Enable extended thinking / reasoning mode (Anthropic, DeepSeek)').optional(),
159
+ }, async ({ root, framework, provider, model: modelName, custom_prompt, web_search, thinking }) => {
176
160
  const { model: threatModel } = await getModel(root);
177
161
  if (threatModel.annotations_parsed === 0) {
178
162
  return {
@@ -209,6 +193,8 @@ export function createServer() {
209
193
  llmConfig,
210
194
  customPrompt: custom_prompt,
211
195
  stream: false,
196
+ webSearch: web_search,
197
+ extendedThinking: thinking,
212
198
  });
213
199
  return {
214
200
  content: [{ type: 'text', text: JSON.stringify({
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -7,4 +7,5 @@ export type { ParseProjectOptions } from './parse-project.js';
7
7
  export { parseLine } from './parse-line.js';
8
8
  export { normalizeName, resolveSeverity, unescapeDescription } from './normalize.js';
9
9
  export { stripCommentPrefix, commentStyleForExt } from './comment-strip.js';
10
+ export { findDanglingRefs, findUnmitigatedExposures, findAcceptedWithoutAudit, findAcceptedExposures } from './validate.js';
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
@@ -6,4 +6,5 @@ export { parseProject } from './parse-project.js';
6
6
  export { parseLine } from './parse-line.js';
7
7
  export { normalizeName, resolveSeverity, unescapeDescription } from './normalize.js';
8
8
  export { stripCommentPrefix, commentStyleForExt } from './comment-strip.js';
9
+ export { findDanglingRefs, findUnmitigatedExposures, findAcceptedWithoutAudit, findAcceptedExposures } from './validate.js';
9
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
@@ -32,7 +32,7 @@ const PATTERNS = {
32
32
  accepts: new RegExp(String.raw `^@accepts\s+(${THREAT_REF})\s+on\s+(${ASSET_REF})(?:\s+${DESC})?$`),
33
33
  accepts_v1: new RegExp(String.raw `^@accepts\s+(${THREAT_REF})\s+to\s+(${ASSET_REF})(?:\s+${DESC})?$`),
34
34
  transfers: new RegExp(String.raw `^@transfers\s+(${THREAT_REF})\s+from\s+(${ASSET_REF})\s+to\s+(${ASSET_REF})(?:\s+${DESC})?$`),
35
- flows: new RegExp(String.raw `^@flows\s+(${ASSET_REF})\s+->\s+(${ASSET_REF})(?:\s+via\s+(.+?))?(?:\s+${DESC})?$`),
35
+ flows: new RegExp(String.raw `^@flows\s+(${ASSET_REF})\s+->\s+(${ASSET_REF})(?:\s+via\s+((?:(?!\s+--\s*").)+?))?(?:\s+${DESC})?$`),
36
36
  boundary: new RegExp(String.raw `^@boundary\s+(?:between\s+)?(${ASSET_REF})\s+and\s+(${ASSET_REF})(?:\s+${ID_DEF})?(?:\s+${DESC})?$`),
37
37
  boundary_pipe: new RegExp(String.raw `^@boundary\s+(${ASSET_REF})\s*\|\s*(${ASSET_REF})(?:\s+${ID_DEF})?(?:\s+${DESC})?$`),
38
38
  connects_v1: new RegExp(String.raw `^@connects\s+(${ASSET_REF})\s+to\s+(${ASSET_REF})(?:\s+${DESC})?$`),
@@ -46,7 +46,7 @@ const PATTERNS = {
46
46
  // Comment — developer note, description only
47
47
  comment: new RegExp(String.raw `^@comment(?:\s+${DESC})?$`),
48
48
  // Special
49
- shield: new RegExp(String.raw `^@shield(?:\s+${DESC})?$`),
49
+ shield: new RegExp(String.raw `^@shield(?!:)(?:\s+${DESC})?$`),
50
50
  shield_begin: new RegExp(String.raw `^@shield:begin(?:\s+${DESC})?$`),
51
51
  shield_end: /^@shield:end$/,
52
52
  };
@@ -58,7 +58,7 @@ function extractExternalRefs(raw) {
58
58
  }
59
59
  // ─── Ref resolver: #id or Name → string ──────────────────────────────
60
60
  function resolveRef(ref) {
61
- return ref.startsWith('#') ? ref : ref;
61
+ return ref;
62
62
  }
63
63
  /**
64
64
  * Parse a single annotation line (after comment prefix has been stripped).
@@ -1 +1 @@
1
- {"version":3,"file":"parse-line.js","sourceRoot":"","sources":["../../src/parser/parse-line.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse-line.js","sourceRoot":"","sources":["../../src/parser/parse-line.ts"],"names":[],"mappings":"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"}
@@ -89,7 +89,7 @@ function getAnnotationId(ann) {
89
89
  }
90
90
  function assembleModel(annotations, fileCount, project) {
91
91
  const model = {
92
- version: '1.0.0',
92
+ version: '1.1.0',
93
93
  project,
94
94
  generated_at: new Date().toISOString(),
95
95
  source_files: fileCount,
@@ -0,0 +1,31 @@
1
+ /**
2
+ * GuardLink — Shared validation helpers.
3
+ *
4
+ * Extracted from cli/index.ts and tui/commands.ts to eliminate duplication
5
+ * and ensure consistent validation logic across all entry points.
6
+ */
7
+ import type { ThreatModel, ThreatModelExposure, ParseDiagnostic } from '../types/index.js';
8
+ /**
9
+ * Find all dangling #id references in the threat model.
10
+ * A dangling ref is a #id used in a relationship/lifecycle annotation
11
+ * that was never defined via @asset, @threat, @control, or @boundary.
12
+ */
13
+ export declare function findDanglingRefs(model: ThreatModel): ParseDiagnostic[];
14
+ /**
15
+ * Find exposures that have no matching @mitigates or @accepts.
16
+ * Normalizes refs so that #id and bare-name forms are compared consistently.
17
+ */
18
+ export declare function findUnmitigatedExposures(model: ThreatModel): ThreatModelExposure[];
19
+ /**
20
+ * Find @accepts annotations where the accepted asset has no corresponding @audit.
21
+ * Risk acceptance without an audit trail is a governance concern — the acceptance
22
+ * may be rubber-stamped (e.g., by an AI agent) rather than a deliberate human decision.
23
+ */
24
+ export declare function findAcceptedWithoutAudit(model: ThreatModel): ParseDiagnostic[];
25
+ /**
26
+ * Find exposures that are covered ONLY by @accepts (no real @mitigates).
27
+ * These are "accepted but unmitigated" — the risk exists and no control is in place.
28
+ * Useful for dashboards and reports to distinguish real mitigations from risk acceptance.
29
+ */
30
+ export declare function findAcceptedExposures(model: ThreatModel): ThreatModelExposure[];
31
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/parser/validate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE3F;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,eAAe,EAAE,CA+DtE;AAUD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,WAAW,GAAG,mBAAmB,EAAE,CAWlF;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,WAAW,GAAG,eAAe,EAAE,CAsB9E;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,WAAW,GAAG,mBAAmB,EAAE,CAc/E"}
@@ -0,0 +1,149 @@
1
+ /**
2
+ * GuardLink — Shared validation helpers.
3
+ *
4
+ * Extracted from cli/index.ts and tui/commands.ts to eliminate duplication
5
+ * and ensure consistent validation logic across all entry points.
6
+ */
7
+ /**
8
+ * Find all dangling #id references in the threat model.
9
+ * A dangling ref is a #id used in a relationship/lifecycle annotation
10
+ * that was never defined via @asset, @threat, @control, or @boundary.
11
+ */
12
+ export function findDanglingRefs(model) {
13
+ const diagnostics = [];
14
+ // Collect all defined IDs
15
+ const definedIds = new Set();
16
+ for (const a of model.assets)
17
+ if (a.id)
18
+ definedIds.add(a.id);
19
+ for (const t of model.threats)
20
+ if (t.id)
21
+ definedIds.add(t.id);
22
+ for (const c of model.controls)
23
+ if (c.id)
24
+ definedIds.add(c.id);
25
+ for (const b of model.boundaries)
26
+ if (b.id)
27
+ definedIds.add(b.id);
28
+ const checkRef = (ref, loc) => {
29
+ if (ref.startsWith('#')) {
30
+ const id = ref.slice(1);
31
+ if (!definedIds.has(id)) {
32
+ diagnostics.push({
33
+ level: 'warning',
34
+ message: `Dangling reference: #${id} is never defined`,
35
+ file: loc.file,
36
+ line: loc.line,
37
+ });
38
+ }
39
+ }
40
+ };
41
+ // Relationship annotations — check both threat/control AND asset refs
42
+ for (const m of model.mitigations) {
43
+ checkRef(m.asset, m.location);
44
+ checkRef(m.threat, m.location);
45
+ if (m.control)
46
+ checkRef(m.control, m.location);
47
+ }
48
+ for (const e of model.exposures) {
49
+ checkRef(e.asset, e.location);
50
+ checkRef(e.threat, e.location);
51
+ }
52
+ for (const a of model.acceptances) {
53
+ checkRef(a.asset, a.location);
54
+ checkRef(a.threat, a.location);
55
+ }
56
+ for (const t of model.transfers) {
57
+ checkRef(t.threat, t.location);
58
+ checkRef(t.source, t.location);
59
+ checkRef(t.target, t.location);
60
+ }
61
+ for (const f of model.flows) {
62
+ checkRef(f.source, f.location);
63
+ checkRef(f.target, f.location);
64
+ }
65
+ for (const b of model.boundaries) {
66
+ checkRef(b.asset_a, b.location);
67
+ checkRef(b.asset_b, b.location);
68
+ }
69
+ // Lifecycle annotations — check asset refs
70
+ for (const v of model.validations) {
71
+ checkRef(v.control, v.location);
72
+ checkRef(v.asset, v.location);
73
+ }
74
+ for (const a of model.audits)
75
+ checkRef(a.asset, a.location);
76
+ for (const o of model.ownership)
77
+ checkRef(o.asset, o.location);
78
+ for (const h of model.data_handling)
79
+ checkRef(h.asset, h.location);
80
+ for (const a of model.assumptions)
81
+ checkRef(a.asset, a.location);
82
+ return diagnostics;
83
+ }
84
+ /**
85
+ * Normalize a ref for matching: strip leading # so that
86
+ * "#sqli" and "sqli" compare equal.
87
+ */
88
+ function normalizeRef(ref) {
89
+ return ref.startsWith('#') ? ref.slice(1) : ref;
90
+ }
91
+ /**
92
+ * Find exposures that have no matching @mitigates or @accepts.
93
+ * Normalizes refs so that #id and bare-name forms are compared consistently.
94
+ */
95
+ export function findUnmitigatedExposures(model) {
96
+ const covered = new Set();
97
+ for (const m of model.mitigations) {
98
+ covered.add(`${normalizeRef(m.asset)}::${normalizeRef(m.threat)}`);
99
+ }
100
+ for (const a of model.acceptances) {
101
+ covered.add(`${normalizeRef(a.asset)}::${normalizeRef(a.threat)}`);
102
+ }
103
+ return model.exposures.filter(e => !covered.has(`${normalizeRef(e.asset)}::${normalizeRef(e.threat)}`));
104
+ }
105
+ /**
106
+ * Find @accepts annotations where the accepted asset has no corresponding @audit.
107
+ * Risk acceptance without an audit trail is a governance concern — the acceptance
108
+ * may be rubber-stamped (e.g., by an AI agent) rather than a deliberate human decision.
109
+ */
110
+ export function findAcceptedWithoutAudit(model) {
111
+ const diagnostics = [];
112
+ // Build set of audited assets (normalized)
113
+ const auditedAssets = new Set();
114
+ for (const a of model.audits) {
115
+ auditedAssets.add(normalizeRef(a.asset));
116
+ }
117
+ for (const acc of model.acceptances) {
118
+ const assetNorm = normalizeRef(acc.asset);
119
+ if (!auditedAssets.has(assetNorm)) {
120
+ diagnostics.push({
121
+ level: 'warning',
122
+ message: `@accepts ${acc.threat} on ${acc.asset} without @audit — risk acceptance should be paired with @audit for traceability`,
123
+ file: acc.location.file,
124
+ line: acc.location.line,
125
+ });
126
+ }
127
+ }
128
+ return diagnostics;
129
+ }
130
+ /**
131
+ * Find exposures that are covered ONLY by @accepts (no real @mitigates).
132
+ * These are "accepted but unmitigated" — the risk exists and no control is in place.
133
+ * Useful for dashboards and reports to distinguish real mitigations from risk acceptance.
134
+ */
135
+ export function findAcceptedExposures(model) {
136
+ const mitigated = new Set();
137
+ for (const m of model.mitigations) {
138
+ mitigated.add(`${normalizeRef(m.asset)}::${normalizeRef(m.threat)}`);
139
+ }
140
+ const accepted = new Set();
141
+ for (const a of model.acceptances) {
142
+ accepted.add(`${normalizeRef(a.asset)}::${normalizeRef(a.threat)}`);
143
+ }
144
+ return model.exposures.filter(e => {
145
+ const key = `${normalizeRef(e.asset)}::${normalizeRef(e.threat)}`;
146
+ return accepted.has(key) && !mitigated.has(key);
147
+ });
148
+ }
149
+ //# sourceMappingURL=validate.js.map