@gracker/smartperfetto 1.0.14 → 1.0.15

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 (175) hide show
  1. package/.env.example +16 -8
  2. package/dist/agent/core/orchestratorTypes.d.ts +10 -0
  3. package/dist/agent/core/orchestratorTypes.d.ts.map +1 -1
  4. package/dist/agent/core/orchestratorTypes.js.map +1 -1
  5. package/dist/agentOpenAI/openAiRuntime.d.ts.map +1 -1
  6. package/dist/agentOpenAI/openAiRuntime.js +11 -1
  7. package/dist/agentOpenAI/openAiRuntime.js.map +1 -1
  8. package/dist/agentOpenAI/openAiToolAdapter.d.ts.map +1 -1
  9. package/dist/agentOpenAI/openAiToolAdapter.js +27 -2
  10. package/dist/agentOpenAI/openAiToolAdapter.js.map +1 -1
  11. package/dist/agentv3/claudeMcpServer.d.ts +15 -1
  12. package/dist/agentv3/claudeMcpServer.d.ts.map +1 -1
  13. package/dist/agentv3/claudeMcpServer.js +311 -5
  14. package/dist/agentv3/claudeMcpServer.js.map +1 -1
  15. package/dist/agentv3/claudeRuntime.d.ts.map +1 -1
  16. package/dist/agentv3/claudeRuntime.js +17 -0
  17. package/dist/agentv3/claudeRuntime.js.map +1 -1
  18. package/dist/agentv3/claudeSystemPrompt.d.ts.map +1 -1
  19. package/dist/agentv3/claudeSystemPrompt.js +9 -0
  20. package/dist/agentv3/claudeSystemPrompt.js.map +1 -1
  21. package/dist/agentv3/mcpToolRegistry.d.ts +14 -2
  22. package/dist/agentv3/mcpToolRegistry.d.ts.map +1 -1
  23. package/dist/agentv3/mcpToolRegistry.js +25 -6
  24. package/dist/agentv3/mcpToolRegistry.js.map +1 -1
  25. package/dist/agentv3/sessionStateSnapshot.d.ts +18 -0
  26. package/dist/agentv3/sessionStateSnapshot.d.ts.map +1 -1
  27. package/dist/agentv3/types.d.ts +5 -0
  28. package/dist/agentv3/types.d.ts.map +1 -1
  29. package/dist/agentv3/types.js.map +1 -1
  30. package/dist/cli-user/bin.js +99 -1
  31. package/dist/cli-user/bin.js.map +1 -1
  32. package/dist/cli-user/commands/analyze.d.ts +3 -0
  33. package/dist/cli-user/commands/analyze.d.ts.map +1 -1
  34. package/dist/cli-user/commands/analyze.js +2 -0
  35. package/dist/cli-user/commands/analyze.js.map +1 -1
  36. package/dist/cli-user/commands/codebase.d.ts +29 -0
  37. package/dist/cli-user/commands/codebase.d.ts.map +1 -0
  38. package/dist/cli-user/commands/codebase.js +152 -0
  39. package/dist/cli-user/commands/codebase.js.map +1 -0
  40. package/dist/cli-user/commands/config.d.ts.map +1 -1
  41. package/dist/cli-user/commands/config.js +4 -1
  42. package/dist/cli-user/commands/config.js.map +1 -1
  43. package/dist/cli-user/services/cliAnalyzeService.d.ts +3 -0
  44. package/dist/cli-user/services/cliAnalyzeService.d.ts.map +1 -1
  45. package/dist/cli-user/services/cliAnalyzeService.js +116 -29
  46. package/dist/cli-user/services/cliAnalyzeService.js.map +1 -1
  47. package/dist/cli-user/services/turnRunner.d.ts +3 -0
  48. package/dist/cli-user/services/turnRunner.d.ts.map +1 -1
  49. package/dist/cli-user/services/turnRunner.js +6 -0
  50. package/dist/cli-user/services/turnRunner.js.map +1 -1
  51. package/dist/cli-user/types.d.ts +5 -0
  52. package/dist/cli-user/types.d.ts.map +1 -1
  53. package/dist/routes/agentRoutes.d.ts.map +1 -1
  54. package/dist/routes/agentRoutes.js +4 -0
  55. package/dist/routes/agentRoutes.js.map +1 -1
  56. package/dist/routes/ragAdminRoutes.d.ts +13 -24
  57. package/dist/routes/ragAdminRoutes.d.ts.map +1 -1
  58. package/dist/routes/ragAdminRoutes.js +266 -11
  59. package/dist/routes/ragAdminRoutes.js.map +1 -1
  60. package/dist/scripts/verifyAgentSseScrolling.js +119 -3
  61. package/dist/scripts/verifyAgentSseScrolling.js.map +1 -1
  62. package/dist/services/aospKnowledgeIngester.d.ts +7 -0
  63. package/dist/services/aospKnowledgeIngester.d.ts.map +1 -1
  64. package/dist/services/aospKnowledgeIngester.js +19 -7
  65. package/dist/services/aospKnowledgeIngester.js.map +1 -1
  66. package/dist/services/auth/codebaseScopes.d.ts +6 -0
  67. package/dist/services/auth/codebaseScopes.d.ts.map +1 -0
  68. package/dist/services/auth/codebaseScopes.js +23 -0
  69. package/dist/services/auth/codebaseScopes.js.map +1 -0
  70. package/dist/services/codebase/codeAwareFeature.d.ts +4 -0
  71. package/dist/services/codebase/codeAwareFeature.d.ts.map +1 -0
  72. package/dist/services/codebase/codeAwareFeature.js +18 -0
  73. package/dist/services/codebase/codeAwareFeature.js.map +1 -0
  74. package/dist/services/codebase/codeLookupLedger.d.ts +37 -0
  75. package/dist/services/codebase/codeLookupLedger.d.ts.map +1 -0
  76. package/dist/services/codebase/codeLookupLedger.js +126 -0
  77. package/dist/services/codebase/codeLookupLedger.js.map +1 -0
  78. package/dist/services/codebase/codebaseRegistry.d.ts +76 -0
  79. package/dist/services/codebase/codebaseRegistry.d.ts.map +1 -0
  80. package/dist/services/codebase/codebaseRegistry.js +164 -0
  81. package/dist/services/codebase/codebaseRegistry.js.map +1 -0
  82. package/dist/services/codebase/defaultCodebaseServices.d.ts +5 -0
  83. package/dist/services/codebase/defaultCodebaseServices.d.ts.map +1 -0
  84. package/dist/services/codebase/defaultCodebaseServices.js +21 -0
  85. package/dist/services/codebase/defaultCodebaseServices.js.map +1 -0
  86. package/dist/services/codebase/patchProposer.d.ts +44 -0
  87. package/dist/services/codebase/patchProposer.d.ts.map +1 -0
  88. package/dist/services/codebase/patchProposer.js +163 -0
  89. package/dist/services/codebase/patchProposer.js.map +1 -0
  90. package/dist/services/codebase/pathSecurityGate.d.ts +33 -0
  91. package/dist/services/codebase/pathSecurityGate.d.ts.map +1 -0
  92. package/dist/services/codebase/pathSecurityGate.js +214 -0
  93. package/dist/services/codebase/pathSecurityGate.js.map +1 -0
  94. package/dist/services/htmlReportGenerator.d.ts +2 -0
  95. package/dist/services/htmlReportGenerator.d.ts.map +1 -1
  96. package/dist/services/htmlReportGenerator.js +67 -0
  97. package/dist/services/htmlReportGenerator.js.map +1 -1
  98. package/dist/services/persistAgentSession.d.ts.map +1 -1
  99. package/dist/services/persistAgentSession.js +19 -0
  100. package/dist/services/persistAgentSession.js.map +1 -1
  101. package/dist/services/rag/aospSourceIngester.d.ts +26 -0
  102. package/dist/services/rag/aospSourceIngester.d.ts.map +1 -0
  103. package/dist/services/rag/aospSourceIngester.js +143 -0
  104. package/dist/services/rag/aospSourceIngester.js.map +1 -0
  105. package/dist/services/rag/appSourceIngester.d.ts +37 -0
  106. package/dist/services/rag/appSourceIngester.d.ts.map +1 -0
  107. package/dist/services/rag/appSourceIngester.js +165 -0
  108. package/dist/services/rag/appSourceIngester.js.map +1 -0
  109. package/dist/services/rag/baseIngester.d.ts +18 -0
  110. package/dist/services/rag/baseIngester.d.ts.map +1 -0
  111. package/dist/services/rag/baseIngester.js +197 -0
  112. package/dist/services/rag/baseIngester.js.map +1 -0
  113. package/dist/services/rag/kernelSourceIngester.d.ts +35 -0
  114. package/dist/services/rag/kernelSourceIngester.d.ts.map +1 -0
  115. package/dist/services/rag/kernelSourceIngester.js +170 -0
  116. package/dist/services/rag/kernelSourceIngester.js.map +1 -0
  117. package/dist/services/rag/lookupResponseFilter.d.ts +42 -0
  118. package/dist/services/rag/lookupResponseFilter.d.ts.map +1 -0
  119. package/dist/services/rag/lookupResponseFilter.js +192 -0
  120. package/dist/services/rag/lookupResponseFilter.js.map +1 -0
  121. package/dist/services/rag/sessionToolResultRegistry.d.ts +25 -0
  122. package/dist/services/rag/sessionToolResultRegistry.d.ts.map +1 -0
  123. package/dist/services/rag/sessionToolResultRegistry.js +57 -0
  124. package/dist/services/rag/sessionToolResultRegistry.js.map +1 -0
  125. package/dist/services/rag/toolResultProjectionFilter.d.ts +18 -0
  126. package/dist/services/rag/toolResultProjectionFilter.d.ts.map +1 -0
  127. package/dist/services/rag/toolResultProjectionFilter.js +33 -0
  128. package/dist/services/rag/toolResultProjectionFilter.js.map +1 -0
  129. package/dist/services/ragStore.d.ts +8 -0
  130. package/dist/services/ragStore.d.ts.map +1 -1
  131. package/dist/services/ragStore.js +77 -8
  132. package/dist/services/ragStore.js.map +1 -1
  133. package/dist/services/rbac.d.ts +1 -1
  134. package/dist/services/rbac.d.ts.map +1 -1
  135. package/dist/services/rbac.js +6 -0
  136. package/dist/services/rbac.js.map +1 -1
  137. package/dist/services/security/codeAwareOutputRegistry.d.ts +6 -0
  138. package/dist/services/security/codeAwareOutputRegistry.d.ts.map +1 -0
  139. package/dist/services/security/codeAwareOutputRegistry.js +55 -0
  140. package/dist/services/security/codeAwareOutputRegistry.js.map +1 -0
  141. package/dist/services/security/llmEchoOutputFilter.d.ts +49 -0
  142. package/dist/services/security/llmEchoOutputFilter.d.ts.map +1 -0
  143. package/dist/services/security/llmEchoOutputFilter.js +133 -0
  144. package/dist/services/security/llmEchoOutputFilter.js.map +1 -0
  145. package/dist/services/security/secretPatterns.d.ts +6 -0
  146. package/dist/services/security/secretPatterns.d.ts.map +1 -0
  147. package/dist/services/security/secretPatterns.js +23 -0
  148. package/dist/services/security/secretPatterns.js.map +1 -0
  149. package/dist/services/symbol/breakpadSymParser.d.ts +19 -0
  150. package/dist/services/symbol/breakpadSymParser.d.ts.map +1 -0
  151. package/dist/services/symbol/breakpadSymParser.js +40 -0
  152. package/dist/services/symbol/breakpadSymParser.js.map +1 -0
  153. package/dist/services/symbol/kallsymsParser.d.ts +12 -0
  154. package/dist/services/symbol/kallsymsParser.d.ts.map +1 -0
  155. package/dist/services/symbol/kallsymsParser.js +41 -0
  156. package/dist/services/symbol/kallsymsParser.js.map +1 -0
  157. package/dist/services/symbol/r8MappingParser.d.ts +40 -0
  158. package/dist/services/symbol/r8MappingParser.d.ts.map +1 -0
  159. package/dist/services/symbol/r8MappingParser.js +99 -0
  160. package/dist/services/symbol/r8MappingParser.js.map +1 -0
  161. package/dist/services/symbol/symbolResolver.d.ts +59 -0
  162. package/dist/services/symbol/symbolResolver.d.ts.map +1 -0
  163. package/dist/services/symbol/symbolResolver.js +147 -0
  164. package/dist/services/symbol/symbolResolver.js.map +1 -0
  165. package/dist/services/symbol/traceSymbolContext.d.ts +14 -0
  166. package/dist/services/symbol/traceSymbolContext.d.ts.map +1 -0
  167. package/dist/services/symbol/traceSymbolContext.js +45 -0
  168. package/dist/services/symbol/traceSymbolContext.js.map +1 -0
  169. package/dist/types/sparkContracts.d.ts +31 -3
  170. package/dist/types/sparkContracts.d.ts.map +1 -1
  171. package/dist/types/sparkContracts.js.map +1 -1
  172. package/package.json +8 -1
  173. package/skills/composite/code_pinpoint.skill.yaml +111 -0
  174. package/strategies/code-aware.template.md +37 -0
  175. package/strategies/prompt-methodology.template.md +2 -0
@@ -0,0 +1,214 @@
1
+ "use strict";
2
+ // SPDX-License-Identifier: AGPL-3.0-or-later
3
+ // Copyright (C) 2024-2026 Gracker (Chris)
4
+ // This file is part of SmartPerfetto. See LICENSE for details.
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.PathSecurityGate = void 0;
40
+ exports.isWithinAllowlist = isWithinAllowlist;
41
+ const fs = __importStar(require("fs"));
42
+ const path = __importStar(require("path"));
43
+ const DEFAULT_EXCLUDES = [
44
+ '.git',
45
+ 'node_modules',
46
+ 'build',
47
+ 'out',
48
+ 'target',
49
+ 'secrets',
50
+ ];
51
+ const DEFAULT_EXTENSIONS = new Set([
52
+ '.java',
53
+ '.kt',
54
+ '.c',
55
+ '.cc',
56
+ '.cpp',
57
+ '.cxx',
58
+ '.h',
59
+ '.hpp',
60
+ '.rs',
61
+ '.go',
62
+ '.py',
63
+ '.kts',
64
+ '.gradle',
65
+ '.mk',
66
+ '.bp',
67
+ '.rc',
68
+ '.te',
69
+ '.conf',
70
+ '.properties',
71
+ '.aidl',
72
+ '.proto',
73
+ '.xml',
74
+ ]);
75
+ function parsePathList(value) {
76
+ if (!value)
77
+ return [];
78
+ return value
79
+ .split(path.delimiter)
80
+ .map(entry => entry.trim())
81
+ .filter(Boolean);
82
+ }
83
+ function configuredAllowlistRoots() {
84
+ const roots = parsePathList(process.env.SMARTPERFETTO_CODEBASE_ROOTS);
85
+ const unsafeDevRoot = process.env.SMARTPERFETTO_DEV_UNSAFE_CODEBASE_ROOT;
86
+ if (unsafeDevRoot && process.env.NODE_ENV !== 'production') {
87
+ roots.push(unsafeDevRoot);
88
+ }
89
+ return roots;
90
+ }
91
+ function safeRealpath(target) {
92
+ try {
93
+ return fs.realpathSync(target);
94
+ }
95
+ catch {
96
+ return null;
97
+ }
98
+ }
99
+ function isWithinAllowlist(target, allowlist) {
100
+ const realTarget = safeRealpath(target);
101
+ if (!realTarget)
102
+ return false;
103
+ for (const root of allowlist) {
104
+ const realRoot = safeRealpath(root);
105
+ if (!realRoot)
106
+ continue;
107
+ const rel = path.relative(realRoot, realTarget);
108
+ if (!rel.startsWith('..') && !path.isAbsolute(rel))
109
+ return true;
110
+ }
111
+ return false;
112
+ }
113
+ function shouldExclude(relativePath, basename, excludeNames) {
114
+ if (basename.startsWith('.env'))
115
+ return true;
116
+ if (basename.endsWith('.log') || basename.endsWith('.bak'))
117
+ return true;
118
+ const parts = relativePath.split(path.sep);
119
+ return parts.some(part => excludeNames.includes(part));
120
+ }
121
+ class PathSecurityGate {
122
+ constructor(options = {}) {
123
+ this.allowlistRoots = options.allowlistRoots ?? configuredAllowlistRoots();
124
+ this.excludeNames = options.excludeNames ?? DEFAULT_EXCLUDES;
125
+ this.allowedExtensions = new Set(options.allowedExtensions ?? DEFAULT_EXTENSIONS);
126
+ this.maxFileBytes = options.maxFileBytes ?? 200 * 1024;
127
+ this.maxFiles = options.maxFiles ?? 50000;
128
+ }
129
+ preview(rootPath) {
130
+ const rootRealpath = safeRealpath(rootPath);
131
+ if (!rootRealpath) {
132
+ return {
133
+ rootPath,
134
+ rootRealpath: '',
135
+ acceptedFiles: [],
136
+ skippedFiles: [],
137
+ blocked: true,
138
+ blockedReason: 'root_not_found',
139
+ };
140
+ }
141
+ if (this.allowlistRoots.length === 0 || !isWithinAllowlist(rootRealpath, this.allowlistRoots)) {
142
+ return {
143
+ rootPath,
144
+ rootRealpath,
145
+ acceptedFiles: [],
146
+ skippedFiles: [],
147
+ blocked: true,
148
+ blockedReason: 'root_outside_allowlist',
149
+ };
150
+ }
151
+ const acceptedFiles = [];
152
+ const skippedFiles = [];
153
+ const stack = [rootRealpath];
154
+ while (stack.length > 0) {
155
+ const current = stack.pop();
156
+ const entries = fs.readdirSync(current, { withFileTypes: true });
157
+ for (const entry of entries) {
158
+ const fullPath = path.join(current, entry.name);
159
+ const realPath = safeRealpath(fullPath);
160
+ if (!realPath || !isWithinAllowlist(realPath, [rootRealpath])) {
161
+ skippedFiles.push({
162
+ relativePath: path.relative(rootRealpath, fullPath),
163
+ reason: 'symlink_outside_root',
164
+ });
165
+ continue;
166
+ }
167
+ const relativePath = path.relative(rootRealpath, realPath);
168
+ if (shouldExclude(relativePath, entry.name, this.excludeNames)) {
169
+ if (entry.isFile())
170
+ skippedFiles.push({ relativePath, reason: 'excluded' });
171
+ continue;
172
+ }
173
+ if (entry.isDirectory()) {
174
+ stack.push(realPath);
175
+ continue;
176
+ }
177
+ if (!entry.isFile())
178
+ continue;
179
+ const ext = path.extname(entry.name);
180
+ if (!this.allowedExtensions.has(ext)) {
181
+ skippedFiles.push({ relativePath, reason: 'extension_not_allowed' });
182
+ continue;
183
+ }
184
+ const stat = fs.statSync(realPath);
185
+ if (stat.size > this.maxFileBytes) {
186
+ skippedFiles.push({ relativePath, reason: 'file_too_large' });
187
+ continue;
188
+ }
189
+ acceptedFiles.push({ relativePath, sizeBytes: stat.size });
190
+ if (acceptedFiles.length > this.maxFiles) {
191
+ return {
192
+ rootPath,
193
+ rootRealpath,
194
+ acceptedFiles,
195
+ skippedFiles,
196
+ blocked: true,
197
+ blockedReason: 'too_many_files',
198
+ };
199
+ }
200
+ }
201
+ }
202
+ acceptedFiles.sort((a, b) => a.relativePath.localeCompare(b.relativePath));
203
+ skippedFiles.sort((a, b) => a.relativePath.localeCompare(b.relativePath));
204
+ return {
205
+ rootPath,
206
+ rootRealpath,
207
+ acceptedFiles,
208
+ skippedFiles,
209
+ blocked: false,
210
+ };
211
+ }
212
+ }
213
+ exports.PathSecurityGate = PathSecurityGate;
214
+ //# sourceMappingURL=pathSecurityGate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pathSecurityGate.js","sourceRoot":"","sources":["../../../src/services/codebase/pathSecurityGate.ts"],"names":[],"mappings":"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"}
@@ -352,6 +352,8 @@ export declare class HTMLReportGenerator {
352
352
  generateAgentDrivenHTML(data: AgentDrivenReportData): string;
353
353
  private prepareAgentDrivenEnvelopes;
354
354
  private buildAgentEnvelopeDedupeKey;
355
+ private renderCodeAwareReferencesSection;
356
+ private formatLineRange;
355
357
  private renderConclusionClaimSourcesSection;
356
358
  private renderClaimReferenceRow;
357
359
  private buildClaimSourceLookup;
@@ -1 +1 @@
1
- {"version":3,"file":"htmlReportGenerator.d.ts","sourceRoot":"","sources":["../../src/services/htmlReportGenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"htmlReportGenerator.d.ts","sourceRoot":"","sources":["../../src/services/htmlReportGenerator.ts"],"names":[],"mappings":"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"}
@@ -3863,6 +3863,21 @@ class HTMLReportGenerator {
3863
3863
  .claim-source-status.found { background: #dcfce7; color: #166534; }
3864
3864
  .claim-source-status.missing { background: #fee2e2; color: #991b1b; }
3865
3865
  .claim-source-status.ambiguous { background: #fef3c7; color: #92400e; }
3866
+ .code-aware-grid { display: grid; gap: 10px; }
3867
+ .code-ref-card, .patch-card {
3868
+ border: 1px solid #dbeafe; border-radius: 8px; background: #f8fbff; padding: 12px;
3869
+ }
3870
+ .code-ref-title, .patch-title { font-weight: 700; color: #1e3a8a; margin-bottom: 6px; }
3871
+ .code-ref-meta, .patch-meta {
3872
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
3873
+ font-size: 12px; color: #334155; word-break: break-word;
3874
+ }
3875
+ .patch-status {
3876
+ display: inline-block; border-radius: 999px; padding: 2px 8px; font-size: 11px; font-weight: 700; margin-left: 6px;
3877
+ }
3878
+ .patch-status.verified { background: #dcfce7; color: #166534; }
3879
+ .patch-status.sketch { background: #fef3c7; color: #92400e; }
3880
+ .patch-status.unverified { background: #fee2e2; color: #991b1b; }
3866
3881
  .timeline-list {
3867
3882
  display: flex; flex-direction: column; gap: 10px;
3868
3883
  max-height: 420px; overflow-y: auto; padding-right: 4px;
@@ -4054,6 +4069,8 @@ class HTMLReportGenerator {
4054
4069
 
4055
4070
  ${this.renderFindingsSection(result.findings, dataEnvelopes)}
4056
4071
 
4072
+ ${this.renderCodeAwareReferencesSection(result.conclusionContract, outputLanguage)}
4073
+
4057
4074
  <div class="section">
4058
4075
  <h2 class="section-title">${(0, outputLanguage_1.localize)(outputLanguage, '分析结论', 'Analysis Conclusion')}</h2>
4059
4076
  ${(conclusionHistory && conclusionHistory.length > 1)
@@ -4315,6 +4332,56 @@ class HTMLReportGenerator {
4315
4332
  })();
4316
4333
  return `${skillId}:${stepId}:${source}:${traceSide}:${traceId}:${compactData.slice(0, 512)}`;
4317
4334
  }
4335
+ renderCodeAwareReferencesSection(contract, outputLanguage = outputLanguage_1.DEFAULT_OUTPUT_LANGUAGE) {
4336
+ const record = this.asReportRecord(contract);
4337
+ if (!record)
4338
+ return '';
4339
+ const codeReferences = this.readReportAliasedRecords(record, ['codeReferences', 'code_refs', 'codeRefs']);
4340
+ const patchProposals = this.readReportAliasedRecords(record, ['patchProposals', 'patch_proposals', 'patches']);
4341
+ if (codeReferences.length === 0 && patchProposals.length === 0)
4342
+ return '';
4343
+ const codeRefHtml = codeReferences.map(ref => {
4344
+ const chunkId = this.escapeHtml(String(ref.chunkId ?? ref.chunk_id ?? ''));
4345
+ const codebaseId = this.escapeHtml(String(ref.codebaseId ?? ref.codebase_id ?? ''));
4346
+ const filePath = this.escapeHtml(String(ref.filePath ?? ref.file_path ?? ''));
4347
+ const symbol = this.escapeHtml(String(ref.symbol ?? ''));
4348
+ const lineRange = this.formatLineRange(ref.lineRange ?? ref.line_range);
4349
+ return `
4350
+ <div class="code-ref-card">
4351
+ <div class="code-ref-title">${symbol || chunkId || filePath}</div>
4352
+ <div class="code-ref-meta">chunkId=${chunkId}${codebaseId ? ` · codebaseId=${codebaseId}` : ''}${filePath ? ` · ${filePath}${lineRange}` : ''}</div>
4353
+ </div>`;
4354
+ }).join('');
4355
+ const patchHtml = patchProposals.map(patch => {
4356
+ const status = String(patch.patchStatus ?? patch.patch_status ?? 'unverified');
4357
+ const safeStatus = status === 'verified' || status === 'sketch' || status === 'unverified' ? status : 'unverified';
4358
+ const proposalId = this.escapeHtml(String(patch.patchProposalId ?? patch.patch_proposal_id ?? ''));
4359
+ const rationale = this.escapeHtml(String(patch.rationale ?? patch.patchSketch ?? patch.patch_sketch ?? ''));
4360
+ return `
4361
+ <div class="patch-card">
4362
+ <div class="patch-title">${proposalId || 'patch'}<span class="patch-status ${safeStatus}">${safeStatus}</span></div>
4363
+ <div class="patch-meta">${rationale}</div>
4364
+ </div>`;
4365
+ }).join('');
4366
+ return `
4367
+ <div class="section">
4368
+ <h2 class="section-title">${(0, outputLanguage_1.localize)(outputLanguage, '代码引用与 Patch', 'Code References and Patches')}</h2>
4369
+ <div class="code-aware-grid">
4370
+ ${codeRefHtml}
4371
+ ${patchHtml}
4372
+ </div>
4373
+ </div>`;
4374
+ }
4375
+ formatLineRange(value) {
4376
+ const record = this.asReportRecord(value);
4377
+ if (!record)
4378
+ return '';
4379
+ const start = record.start ?? record.line_start;
4380
+ const end = record.end ?? record.line_end;
4381
+ if (start === undefined || end === undefined)
4382
+ return '';
4383
+ return `:${this.escapeHtml(String(start))}-${this.escapeHtml(String(end))}`;
4384
+ }
4318
4385
  renderConclusionClaimSourcesSection(contract, envelopes, outputLanguage = outputLanguage_1.DEFAULT_OUTPUT_LANGUAGE) {
4319
4386
  const contractRecord = this.asReportRecord(contract);
4320
4387
  if (!contractRecord)