hex-audit 0.4.4 → 0.5.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 (102) hide show
  1. package/DEMO.md +14 -12
  2. package/README.md +66 -61
  3. package/dashboard/.next/BUILD_ID +1 -1
  4. package/dashboard/.next/app-build-manifest.json +18 -11
  5. package/dashboard/.next/app-path-routes-manifest.json +1 -1
  6. package/dashboard/.next/build-manifest.json +4 -4
  7. package/dashboard/.next/next-server.js.nft.json +1 -1
  8. package/dashboard/.next/prerender-manifest.js +1 -1
  9. package/dashboard/.next/prerender-manifest.json +1 -1
  10. package/dashboard/.next/required-server-files.json +1 -1
  11. package/dashboard/.next/routes-manifest.json +1 -1
  12. package/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  13. package/dashboard/.next/server/app/_not-found.html +1 -1
  14. package/dashboard/.next/server/app/_not-found.rsc +4 -4
  15. package/dashboard/.next/server/app/access/page_client-reference-manifest.js +1 -1
  16. package/dashboard/.next/server/app/api/flows/route.js +1 -1
  17. package/dashboard/.next/server/app/api/issues/[id]/move/route.js +1 -1
  18. package/dashboard/.next/server/app/api/issues/[id]/route.js +1 -1
  19. package/dashboard/.next/server/app/calls/page_client-reference-manifest.js +1 -1
  20. package/dashboard/.next/server/app/conformance/page_client-reference-manifest.js +1 -1
  21. package/dashboard/.next/server/app/diagram/page_client-reference-manifest.js +1 -1
  22. package/dashboard/.next/server/app/diagram.html +1 -1
  23. package/dashboard/.next/server/app/diagram.rsc +4 -4
  24. package/dashboard/.next/server/app/flows/page_client-reference-manifest.js +1 -1
  25. package/dashboard/.next/server/app/flows.html +1 -1
  26. package/dashboard/.next/server/app/flows.rsc +4 -4
  27. package/dashboard/.next/server/app/functions/page_client-reference-manifest.js +1 -1
  28. package/dashboard/.next/server/app/issues/page.js +12 -1
  29. package/dashboard/.next/server/app/issues/page_client-reference-manifest.js +1 -1
  30. package/dashboard/.next/server/app/overleaf/page.js +1 -0
  31. package/dashboard/.next/server/app/overleaf/page.js.nft.json +1 -0
  32. package/dashboard/.next/server/app/overleaf/page_client-reference-manifest.js +1 -0
  33. package/dashboard/.next/server/app/page_client-reference-manifest.js +1 -1
  34. package/dashboard/.next/server/app/progress/page_client-reference-manifest.js +1 -1
  35. package/dashboard/.next/server/app/stats/page_client-reference-manifest.js +1 -1
  36. package/dashboard/.next/server/app-paths-manifest.json +9 -8
  37. package/dashboard/.next/server/chunks/431.js +1 -1
  38. package/dashboard/.next/server/functions-config-manifest.json +1 -1
  39. package/dashboard/.next/server/middleware-build-manifest.js +1 -1
  40. package/dashboard/.next/server/pages/404.html +1 -1
  41. package/dashboard/.next/server/pages/500.html +1 -1
  42. package/dashboard/.next/server/server-reference-manifest.js +1 -1
  43. package/dashboard/.next/server/server-reference-manifest.json +1 -1
  44. package/dashboard/.next/static/chunks/app/issues/page-2bb52a36f20497fe.js +1 -0
  45. package/dashboard/.next/static/chunks/app/{layout-527d8aa86e483fbd.js → layout-9c3c84993dd895f6.js} +1 -1
  46. package/dashboard/.next/static/chunks/app/overleaf/page-bcea12a80c97b92f.js +1 -0
  47. package/dashboard/.next/static/chunks/{main-70c6d841ad572657.js → main-8f1e837090aef5cf.js} +1 -1
  48. package/dashboard/.next/static/css/9c84313d0484b74f.css +3 -0
  49. package/dashboard/app/api/flows/route.ts +4 -0
  50. package/dashboard/app/api/issues/[id]/move/route.ts +29 -58
  51. package/dashboard/app/api/issues/[id]/route.ts +11 -102
  52. package/dashboard/app/issues/IssuesBoardClient.tsx +155 -50
  53. package/dashboard/app/issues/page.tsx +40 -3
  54. package/dashboard/app/overleaf/OverleafClient.tsx +97 -0
  55. package/dashboard/app/overleaf/page.tsx +32 -0
  56. package/dashboard/components/DashboardLayout.tsx +8 -2
  57. package/dashboard/lib/finding-markdown.ts +110 -0
  58. package/dashboard/next.config.mjs +4 -0
  59. package/dist/analysis/external-calls.d.ts +8 -1
  60. package/dist/analysis/external-calls.d.ts.map +1 -1
  61. package/dist/analysis/external-calls.js +57 -13
  62. package/dist/analysis/external-calls.js.map +1 -1
  63. package/dist/commands/calls.d.ts.map +1 -1
  64. package/dist/commands/calls.js +15 -6
  65. package/dist/commands/calls.js.map +1 -1
  66. package/dist/commands/dashboard.d.ts.map +1 -1
  67. package/dist/commands/dashboard.js +12 -3
  68. package/dist/commands/dashboard.js.map +1 -1
  69. package/dist/commands/init.js +19 -19
  70. package/dist/commands/init.js.map +1 -1
  71. package/dist/commands/issue.d.ts +3 -0
  72. package/dist/commands/issue.d.ts.map +1 -0
  73. package/dist/commands/issue.js +195 -0
  74. package/dist/commands/issue.js.map +1 -0
  75. package/dist/core/config.d.ts +1 -0
  76. package/dist/core/config.d.ts.map +1 -1
  77. package/dist/core/config.js +10 -0
  78. package/dist/core/config.js.map +1 -1
  79. package/dist/core/issues.d.ts +116 -0
  80. package/dist/core/issues.d.ts.map +1 -0
  81. package/dist/core/issues.js +403 -0
  82. package/dist/core/issues.js.map +1 -0
  83. package/dist/core/schema.d.ts +24 -8
  84. package/dist/core/schema.d.ts.map +1 -1
  85. package/dist/core/schema.js +12 -1
  86. package/dist/core/schema.js.map +1 -1
  87. package/dist/index.js +3 -1
  88. package/dist/index.js.map +1 -1
  89. package/dist/skills/generate-overleaf.md +18 -10
  90. package/dist/skills/ingest-aa-report.md +15 -19
  91. package/dist/skills/init-audit.md +13 -18
  92. package/dist/skills/sync-issues.md +86 -195
  93. package/dist/skills/validate-all-findings.md +50 -0
  94. package/dist/skills/validate-issue.md +20 -10
  95. package/dist/skills/write-finding.md +23 -28
  96. package/package.json +1 -1
  97. package/dashboard/.next/server/app/api/flows.body +0 -1
  98. package/dashboard/.next/server/app/api/flows.meta +0 -1
  99. package/dashboard/.next/static/chunks/app/issues/page-dc110d4cc0a5c398.js +0 -1
  100. package/dashboard/.next/static/css/7a38e5062ba6d403.css +0 -3
  101. /package/dashboard/.next/static/{ePObaFrrwft0BlvlllUMo → NrFPHIFHWQ5jNF62Px_X8}/_buildManifest.js +0 -0
  102. /package/dashboard/.next/static/{ePObaFrrwft0BlvlllUMo → NrFPHIFHWQ5jNF62Px_X8}/_ssgManifest.js +0 -0
@@ -0,0 +1,110 @@
1
+ import type { BoardIssue } from '@/app/issues/IssuesBoardClient';
2
+
3
+ /**
4
+ * Single source of truth for the finding markdown format used by the board's
5
+ * "Copy as HackMD" button (and matching the GitHub issue body the /sync-issues
6
+ * skill renders). Keep this aligned with src/skills/sync-issues.md.
7
+ */
8
+ export interface FormatContext {
9
+ /** config.json settings.report.repository_url, if set */
10
+ repositoryUrl?: string;
11
+ /** config.json settings.report.initial_commit, if set */
12
+ commit?: string;
13
+ }
14
+
15
+ function fileLink(file: string, ctx: FormatContext): string {
16
+ if (ctx.repositoryUrl && ctx.commit) {
17
+ const base = ctx.repositoryUrl.replace(/\/+$/, '');
18
+ return `[\`${file}\`](${base}/blob/${ctx.commit}/${file})`;
19
+ }
20
+ // Empty link target — explicit, matches the GitHub issue template.
21
+ return `[\`${file}\`]()`;
22
+ }
23
+
24
+ /** The five-field body shared by HackMD copy and the GitHub issue body. */
25
+ function bodyFields(issue: BoardIssue, ctx: FormatContext): string {
26
+ const seen = new Set<string>();
27
+ const files = issue.code_locations
28
+ .map((l) => l.file)
29
+ .filter((f) => f && !seen.has(f) && seen.add(f))
30
+ .map((f) => fileLink(f, ctx))
31
+ .join(', ');
32
+ const status = issue.resolution || 'Unresolved';
33
+ const update = issue.update_from_client ?? '';
34
+ return [
35
+ `**File(s)**: ${files}`,
36
+ ``,
37
+ `**Description**: ${issue.description}`,
38
+ ``,
39
+ `**Recommendation(s)**: ${issue.recommendation}`,
40
+ ``,
41
+ `**Status**: ${status}`,
42
+ ``,
43
+ `**Update from the client**: ${update}`,
44
+ ].join('\n');
45
+ }
46
+
47
+ /** HackMD-style: leading `## [Severity] Title` heading, then the body. */
48
+ export function findingToHackmd(issue: BoardIssue, ctx: FormatContext = {}): string {
49
+ return `## [${issue.severity}] ${issue.title}\n\n${bodyFields(issue, ctx)}\n`;
50
+ }
51
+
52
+ /**
53
+ * GitHub issue body: no heading (the GH issue title carries `[Severity] Title`),
54
+ * no attribution, and NO hidden footer. Issue identity is the GitHub issue
55
+ * number, so nothing needs to be embedded in the body — it is exactly the five
56
+ * fields, "nothing more, nothing less".
57
+ */
58
+ export function findingToGithubBody(issue: BoardIssue, ctx: FormatContext = {}): string {
59
+ return bodyFields(issue, ctx);
60
+ }
61
+
62
+ export interface ParsedGithubBody {
63
+ files: string[];
64
+ description: string;
65
+ recommendation: string;
66
+ status: string;
67
+ update_from_client: string;
68
+ }
69
+
70
+ /**
71
+ * Inverse of `findingToGithubBody`: parse a GitHub issue body back into fields
72
+ * so `/sync-issues` can pull GitHub edits into local findings. Returns null when
73
+ * the body is blatantly not in our template (no `**Description**:` marker), so
74
+ * the caller can warn and skip. This is the format spec the sync skill mirrors.
75
+ */
76
+ export function parseGithubBody(body: string): ParsedGithubBody | null {
77
+ if (!/(^|\n)\s*\*\*Description\*\*\s*:/.test(body)) return null;
78
+
79
+ // Split on the bold field labels, keeping the text that follows each up to
80
+ // the next label.
81
+ const labels = [
82
+ 'File(s)',
83
+ 'Description',
84
+ 'Recommendation(s)',
85
+ 'Status',
86
+ 'Update from the client',
87
+ ];
88
+ const section = (label: string): string => {
89
+ const others = labels
90
+ .filter((l) => l !== label)
91
+ .map((l) => l.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'));
92
+ const esc = label.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
93
+ const re = new RegExp(
94
+ `\\*\\*${esc}\\*\\*\\s*:\\s*([\\s\\S]*?)(?=\\n\\s*\\*\\*(?:${others.join('|')})\\*\\*\\s*:|$)`,
95
+ );
96
+ const m = re.exec(body);
97
+ return m ? m[1].trim() : '';
98
+ };
99
+
100
+ const filesRaw = section('File(s)');
101
+ const files = Array.from(filesRaw.matchAll(/\[`([^`]+)`\]/g)).map((m) => m[1]);
102
+
103
+ return {
104
+ files,
105
+ description: section('Description'),
106
+ recommendation: section('Recommendation(s)'),
107
+ status: section('Status') || 'Unresolved',
108
+ update_from_client: section('Update from the client'),
109
+ };
110
+ }
@@ -3,6 +3,10 @@ const nextConfig = {
3
3
  reactStrictMode: true,
4
4
  experimental: {
5
5
  serverComponentsExternalPackages: ['chokidar'],
6
+ // Allow importing the canonical issue-mutation module from ../src/core/
7
+ // (shared with the `hex issue` CLI). The module depends only on node
8
+ // builtins, so nothing heavy leaks into the bundle.
9
+ externalDir: true,
6
10
  },
7
11
  };
8
12
 
@@ -1,8 +1,15 @@
1
1
  import type { SlitherDetectorResult } from '../parsers/slither.js';
2
2
  import type { ASTExternalCall } from '../parsers/solidity-parser.js';
3
3
  import type { ExternalCall } from '../types/index.js';
4
+ /**
5
+ * Whether Slither enrichment ran, and what it found:
6
+ * - 'with-findings': Slither ran and reported detector results (most authoritative)
7
+ * - 'clean': Slither ran but reported nothing for this codebase
8
+ * - 'unavailable': Slither did not run (binary missing, parse error, etc.)
9
+ */
10
+ export type SlitherState = 'with-findings' | 'clean' | 'unavailable';
4
11
  /**
5
12
  * Build external calls from AST-extracted calls, optionally enriched with Slither data.
6
13
  */
7
- export declare function buildExternalCalls(astCalls: ASTExternalCall[], stateVarsImmutability: Map<string, boolean>, scopeContracts: Set<string>, accessControlledSetters: Map<string, string>, slitherDetectors?: SlitherDetectorResult[]): ExternalCall[];
14
+ export declare function buildExternalCalls(astCalls: ASTExternalCall[], stateVarsImmutability: Map<string, boolean>, scopeContracts: Set<string>, accessControlledSetters: Map<string, string>, slitherDetectors?: SlitherDetectorResult[], slitherState?: SlitherState): ExternalCall[];
8
15
  //# sourceMappingURL=external-calls.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"external-calls.d.ts","sourceRoot":"","sources":["../../src/analysis/external-calls.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAatD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,eAAe,EAAE,EAC3B,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3C,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,EAC3B,uBAAuB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5C,gBAAgB,CAAC,EAAE,qBAAqB,EAAE,GACzC,YAAY,EAAE,CAkEhB"}
1
+ {"version":3,"file":"external-calls.d.ts","sourceRoot":"","sources":["../../src/analysis/external-calls.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAiCtD;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,eAAe,GAAG,OAAO,GAAG,aAAa,CAAC;AAErE;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,eAAe,EAAE,EAC3B,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3C,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,EAC3B,uBAAuB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5C,gBAAgB,CAAC,EAAE,qBAAqB,EAAE,EAC1C,YAAY,GAAE,YAIG,GAChB,YAAY,EAAE,CA8FhB"}
@@ -1,9 +1,29 @@
1
1
  // Call type classification heuristics
2
2
  const CALL_TYPE_PATTERNS = {
3
- token_transfer: ['transfer', 'transferFrom', 'safeTransfer', 'safeTransferFrom', 'approve', 'send'],
4
- oracle_read: ['getPrice', 'latestRoundData', 'latestAnswer', 'getRoundData', 'consult', 'observe'],
3
+ token_transfer: [
4
+ 'transfer',
5
+ 'transferFrom',
6
+ 'safeTransfer',
7
+ 'safeTransferFrom',
8
+ 'approve',
9
+ 'send',
10
+ ],
11
+ oracle_read: [
12
+ 'getPrice',
13
+ 'latestRoundData',
14
+ 'latestAnswer',
15
+ 'getRoundData',
16
+ 'consult',
17
+ 'observe',
18
+ ],
5
19
  flash_loan: ['flashLoan', 'flash', 'flashBorrow'],
6
- swap: ['swap', 'swapExactTokensForTokens', 'swapTokensForExactTokens', 'exactInputSingle', 'exactInput'],
20
+ swap: [
21
+ 'swap',
22
+ 'swapExactTokensForTokens',
23
+ 'swapTokensForExactTokens',
24
+ 'exactInputSingle',
25
+ 'exactInput',
26
+ ],
7
27
  liquidity: ['addLiquidity', 'removeLiquidity', 'mint', 'burn'],
8
28
  delegate_call: ['delegatecall'],
9
29
  low_level: ['call', 'staticcall'],
@@ -11,7 +31,11 @@ const CALL_TYPE_PATTERNS = {
11
31
  /**
12
32
  * Build external calls from AST-extracted calls, optionally enriched with Slither data.
13
33
  */
14
- export function buildExternalCalls(astCalls, stateVarsImmutability, scopeContracts, accessControlledSetters, slitherDetectors) {
34
+ export function buildExternalCalls(astCalls, stateVarsImmutability, scopeContracts, accessControlledSetters, slitherDetectors, slitherState = slitherDetectors != null
35
+ ? slitherDetectors.length > 0
36
+ ? 'with-findings'
37
+ : 'clean'
38
+ : 'unavailable') {
15
39
  // Build Slither enrichment maps if available
16
40
  const slitherUnchecked = new Set();
17
41
  const slitherReentrancy = new Set();
@@ -41,9 +65,29 @@ export function buildExternalCalls(astCalls, stateVarsImmutability, scopeContrac
41
65
  const trustLevel = classifyTrustLevel(ac.target, stateVarsImmutability, scopeContracts, accessControlledSetters);
42
66
  // Slither enrichment
43
67
  const lineKey = `${ac.file}:${ac.lineStart}`;
44
- const hasSlither = slitherDetectors != null;
68
+ const ran = slitherState !== 'unavailable';
45
69
  const isUnchecked = slitherUnchecked.has(lineKey);
46
70
  const isReentrancy = slitherReentrancy.has(lineKey);
71
+ // Confidence: a detector that actually fired on this call is the strongest
72
+ // signal; a clean Slither run that simply didn't flag it is medium; no
73
+ // Slither run at all is a low-confidence heuristic default.
74
+ const returnCheckedConfidence = isUnchecked
75
+ ? 'high'
76
+ : slitherState === 'with-findings'
77
+ ? 'high'
78
+ : slitherState === 'clean'
79
+ ? 'medium'
80
+ : 'low';
81
+ const reentrancyConfidence = isReentrancy
82
+ ? 'high'
83
+ : slitherState === 'with-findings'
84
+ ? 'high'
85
+ : slitherState === 'clean'
86
+ ? 'medium'
87
+ : 'low';
88
+ const ranReasoning = 'Slither ran without flagging this call';
89
+ const unavailableReturnReasoning = 'Slither unavailable — assuming checked (heuristic default)';
90
+ const unavailableReentrancyReasoning = 'Slither unavailable — reentrancy guard status unknown (heuristic default)';
47
91
  calls.push({
48
92
  contract: ac.contract,
49
93
  function: ac.function,
@@ -56,16 +100,16 @@ export function buildExternalCalls(astCalls, stateVarsImmutability, scopeContrac
56
100
  target: ac.target,
57
101
  method: ac.method,
58
102
  return_checked: {
59
- value: hasSlither ? !isUnchecked : true,
60
- confidence: hasSlither ? 'high' : 'low',
61
- derived_from: hasSlither ? 'slither' : 'heuristic',
62
- ...(hasSlither ? {} : { reasoning: 'No Slither data — assuming checked' }),
103
+ value: ran ? !isUnchecked : true,
104
+ confidence: returnCheckedConfidence,
105
+ derived_from: isUnchecked ? 'slither' : ran ? 'slither' : 'heuristic',
106
+ ...(isUnchecked ? {} : { reasoning: ran ? ranReasoning : unavailableReturnReasoning }),
63
107
  },
64
108
  inside_reentrancy_guard: {
65
- value: hasSlither ? !isReentrancy : false,
66
- confidence: hasSlither ? (isReentrancy ? 'high' : 'medium') : 'low',
67
- derived_from: hasSlither ? 'slither' : 'heuristic',
68
- ...(hasSlither ? {} : { reasoning: 'No Slither data — reentrancy guard status unknown' }),
109
+ value: ran ? !isReentrancy : false,
110
+ confidence: reentrancyConfidence,
111
+ derived_from: isReentrancy ? 'slither' : ran ? 'slither' : 'heuristic',
112
+ ...(isReentrancy ? {} : { reasoning: ran ? ranReasoning : unavailableReentrancyReasoning }),
69
113
  },
70
114
  call_type: callType,
71
115
  trust_level: trustLevel,
@@ -1 +1 @@
1
- {"version":3,"file":"external-calls.js","sourceRoot":"","sources":["../../src/analysis/external-calls.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"external-calls.js","sourceRoot":"","sources":["../../src/analysis/external-calls.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"calls.d.ts","sourceRoot":"","sources":["../../src/commands/calls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,eAAO,MAAM,YAAY,SA+FrB,CAAC"}
1
+ {"version":3,"file":"calls.d.ts","sourceRoot":"","sources":["../../src/commands/calls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC,eAAO,MAAM,YAAY,SA+GrB,CAAC"}
@@ -30,19 +30,28 @@ export const callsCommand = new Command('calls')
30
30
  allAstCalls.push(...calls);
31
31
  }
32
32
  logger.info(`AST extraction found ${allAstCalls.length} external calls`);
33
- // Tier 2: Try Slither for enrichment (unchecked returns, reentrancy)
34
- let slitherDetectors = undefined;
33
+ // Tier 2: Try Slither for enrichment (unchecked returns, reentrancy).
34
+ // Track three states explicitly so the analyzer can distinguish "Slither
35
+ // ran clean" (medium confidence) from "Slither never ran" (low confidence).
36
+ let slitherDetectors = [];
37
+ let slitherState = 'unavailable';
35
38
  try {
36
39
  spin.text = 'Running Slither detectors for enrichment...';
37
40
  const result = await runSlither(config.project.project_dir, [
38
41
  '.',
39
42
  '--detect',
40
43
  'unchecked-transfer,unchecked-lowlevel,reentrancy-eth,reentrancy-no-eth,reentrancy-benign,reentrancy-events,calls-loop',
41
- '--json', '-',
44
+ '--json',
45
+ '-',
42
46
  ]);
43
- if (result.exitCode === 0 && result.stdout) {
47
+ // Slither exits non-zero when it finds issues, so gate on parseable JSON
48
+ // output rather than exit code.
49
+ if (result.stdout) {
44
50
  slitherDetectors = parseDetectors(JSON.parse(result.stdout));
45
- logger.info('Slither enrichment available — enhanced return check and reentrancy data');
51
+ slitherState = slitherDetectors.length > 0 ? 'with-findings' : 'clean';
52
+ logger.info(slitherState === 'clean'
53
+ ? 'Slither ran clean (no detector findings) — Tier 2 fields use medium-confidence defaults'
54
+ : 'Slither enrichment available — enhanced return check and reentrancy data');
46
55
  }
47
56
  }
48
57
  catch {
@@ -76,7 +85,7 @@ export const callsCommand = new Command('calls')
76
85
  }
77
86
  }
78
87
  }
79
- const calls = buildExternalCalls(allAstCalls, immutabilityMap, scopeContracts, accessControlledSetters, slitherDetectors);
88
+ const calls = buildExternalCalls(allAstCalls, immutabilityMap, scopeContracts, accessControlledSetters, slitherDetectors, slitherState);
80
89
  const externalCalls = { calls };
81
90
  const outPath = writeJsonOutput(outputDir, 'external-calls.json', externalCalls);
82
91
  spin.succeed('External call analysis complete');
@@ -1 +1 @@
1
- {"version":3,"file":"calls.js","sourceRoot":"","sources":["../../src/commands/calls.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"calls.js","sourceRoot":"","sources":["../../src/commands/calls.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/commands/dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,eAAO,MAAM,gBAAgB,SA6DzB,CAAC"}
1
+ {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/commands/dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,eAAO,MAAM,gBAAgB,SAuEzB,CAAC"}
@@ -11,14 +11,23 @@ export const dashboardCommand = new Command('dashboard')
11
11
  .option('--port <port>', 'Port number', '3000')
12
12
  .option('--no-open', 'Do not open browser automatically')
13
13
  .action(async (opts) => {
14
- const projectDir = path.resolve(opts.project ?? process.cwd());
14
+ const invokedFrom = path.resolve(opts.project ?? process.cwd());
15
+ let config;
15
16
  try {
16
- loadConfig(projectDir);
17
+ config = loadConfig(invokedFrom);
17
18
  }
18
19
  catch {
19
- logger.error(`No Hex project found in ${projectDir}. Run 'hex init' first.`);
20
+ logger.error(`No Hex project found in ${invokedFrom}. Run 'hex init' first.`);
20
21
  process.exit(1);
21
22
  }
23
+ // The dashboard's data loaders read `.hex/` relative to process.cwd(), so we
24
+ // must spawn Next from the audit project ROOT — not from wherever `hex
25
+ // dashboard` happened to be invoked (e.g. inside `.hex/`, which would make it
26
+ // look for `.hex/.hex/` and render an empty dashboard). The project root is
27
+ // recorded in config at init time; fall back to the invocation dir only if
28
+ // that path no longer exists.
29
+ const recordedRoot = config.project.project_dir;
30
+ const projectDir = recordedRoot && fs.existsSync(recordedRoot) ? recordedRoot : invokedFrom;
22
31
  const dashboardDir = getDashboardDir();
23
32
  if (!fs.existsSync(dashboardDir)) {
24
33
  logger.error(`Could not find the dashboard at ${dashboardDir}. The hex-audit package may be corrupted; try \`hex update\` or reinstall.`);
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/commands/dashboard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/commands/dashboard.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@ export const initCommand = new Command('init')
20
20
  .option('--docs <url>', 'Documentation URL')
21
21
  .option('--output-dir <dir>', 'Output directory', '.hex')
22
22
  .option('--exclude <globs>', 'Comma-separated exclude globs')
23
+ .option('--github-repo <owner/repo>', 'GitHub repo for issue syncing (sets settings.github.repo)')
23
24
  .option('--no-verify', 'Skip build verification')
24
25
  .action(async (opts) => {
25
26
  const STEPS = [
@@ -152,6 +153,7 @@ export const initCommand = new Command('init')
152
153
  scope: uniqueScope,
153
154
  exclude: excludeGlobs,
154
155
  outputDir: opts.outputDir,
156
+ githubRepo: opts.githubRepo,
155
157
  });
156
158
  const outputDir = getOutputDir(projectDir, config.settings.output_dir);
157
159
  tracker.update('create config', 'ok', normalizePath(outputDir));
@@ -217,13 +219,13 @@ All analysis outputs live here. Key files and what they answer:
217
219
  | \`state-vars.json\` | State variables, types, visibility, read/write | storage, mutability, state layout |
218
220
  | \`external-calls.json\` | External calls, reentrancy guards, trust levels | external interactions, reentrancy risk |
219
221
  | \`overview.md\` | AI-generated protocol overview | what the protocol does, architecture |
220
- | \`invariants.md\` | Protocol invariants from docs and code | invariants, assumptions, properties |
221
222
  | \`spec-conformance.json\` | Spec vs code deviations | spec compliance, ERC conformance |
222
- | \`findings.json\` | Audit findings (canonical) | reported issues, vulnerabilities |
223
- | \`tracking.json\` | Finding status and duplicates | finding triage, status |
224
- | \`comparison.json\` | AI cross-check results | AI-found issues, novel findings |
223
+ | \`findings.json\` | Audit findings (canonical), wrapped as \`{ "findings": [...] }\` | reported issues, vulnerabilities |
224
+ | \`tracking.json\` | Board state per issue (status, source, duplicate_of), wrapped as \`{ "findings": [...] }\` | finding triage, board columns |
225
+ | \`comparison.json\` | Dedup match_signals (auditagent / github) | duplicate detection |
225
226
  | \`progress.json\` | Audit progress tracking | what has been reviewed |
226
227
  | \`diagrams/\` | Mermaid architecture and flow diagrams | system diagrams, flows |
228
+ | \`overleaf/\` | LaTeX report sections (executive_summary, audited_files, summary_of_findings, findings) | final report export |
227
229
 
228
230
  Not all files exist initially — they are created as you run skills and CLI commands.
229
231
 
@@ -233,31 +235,29 @@ Skills are in \`.claude/skills/\` and auto-discovered by Claude Code. Type \`/\`
233
235
 
234
236
  **Recommended workflow order:**
235
237
 
236
- 1. \`/init-audit\` — Initialize project, audit dependencies, run analysis pipeline
237
- 2. \`/generate-overview\` — Write protocol overview from analysis data
238
- 3. \`/generate-diagram\` — Create Mermaid architecture diagram
239
- 4. \`/generate-flows\` — Create Mermaid flow charts per user type
240
- 5. \`/identify-invariants\` — Three-pass invariant identification (docs, code, comparison)
241
- 6. \`/check-spec-conformance\` — Verify code matches docs, NatSpec, interfaces, ERCs
242
- 7. \`/generate-poc\` — Validate an issue with a runnable proof-of-concept test
243
- 8. \`/write-finding\` — Write a structured finding with severity and recommendation
244
- 9. \`/conformance-to-findings\` — Batch-convert spec deviations into findings
245
- 10. \`/run-ai-analysis\` — Orchestrate all AI audit tools with preflight checks
246
- 11. \`/compare-findings\` — Cross-check findings against AI agent results
247
- 12. \`/validate-ai-finding\` — Independently verify a novel AI-found issue
238
+ 1. \`/init-audit\` — Initialize, dependency safety, full analysis pipeline, overview, diagrams, flows, spec conformance, board materialization (all in one)
239
+ 2. \`/write-finding\` — Record a manual issue as a Potential card on the board
240
+ 3. \`/validate-issue\` — Validate any Potential card (manual / auditagent / conformance / github); per-issue PoC or memo-only
241
+ 4. \`/generate-poc\` — Generate and run a proof-of-concept test (invoked by /validate-issue)
242
+ 5. \`/ingest-aa-report\` — Ingest a completed Nethermind AuditAgent scan by ID, with inline dedup
243
+ 6. \`/sync-issues\` — Two-way GitHub Issues sync (GitHub canonical)
244
+ 7. \`/generate-overleaf\` — Emit the four LaTeX report sections into \`${config.settings.output_dir}/overleaf/\`
248
245
 
249
- Each skill builds on previous outputs. Run them in order for best results.
246
+ Each skill builds on previous outputs.
250
247
 
251
248
  ## CLI Commands
252
249
 
253
- - \`npx hex analyze\` — Run all deterministic analysis (stats, deps, access, state, calls)
250
+ - \`npx hex analyze\` — Run all deterministic analysis (stats, deps, access, state, calls, patterns, constraints, surface)
254
251
  - \`npx hex context\` — Assemble full codebase context for AI prompts
255
252
  - \`npx hex context --target <Contract>\` — Focused context for a single contract
256
253
  - \`npx hex dashboard\` — Open browser dashboard at http://localhost:3000
254
+ - \`npx hex issue move <id> --to <column>\` — Move an issue between board columns
255
+ - \`npx hex issue patch <id> [--severity ...] [--resolution ...]\` — Edit issue fields
256
+ - \`npx hex update\` — Update hex-audit to the latest version
257
257
 
258
258
  ## Writing Style (applies to every skill that produces text)
259
259
 
260
- Anything you write into \`.hex/\` files (findings, overview, invariants, spec conformance) ends up in front of a security team or in a public report. Write like a senior auditor, not like an AI model showing off. The detectable patterns below are off-limits:
260
+ Anything you write into \`.hex/\` files (findings, overview, spec conformance) ends up in front of a security team or in a public report. Write like a senior auditor, not like an AI model showing off. The detectable patterns below are off-limits:
261
261
 
262
262
  ### Banned punctuation and words
263
263
 
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const issueCommand: Command;
3
+ //# sourceMappingURL=issue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issue.d.ts","sourceRoot":"","sources":["../../src/commands/issue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmPpC,eAAO,MAAM,YAAY,SAMH,CAAC"}