@gracker/smartperfetto 1.0.14 → 1.0.16
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.
- package/.env.example +16 -8
- package/dist/agent/agents/base/baseAgent.d.ts.map +1 -1
- package/dist/agent/agents/base/baseAgent.js +5 -1
- package/dist/agent/agents/base/baseAgent.js.map +1 -1
- package/dist/agent/context/enhancedSessionContext.d.ts +5 -0
- package/dist/agent/context/enhancedSessionContext.d.ts.map +1 -1
- package/dist/agent/context/enhancedSessionContext.js +13 -0
- package/dist/agent/context/enhancedSessionContext.js.map +1 -1
- package/dist/agent/core/conclusionContract.d.ts +16 -1
- package/dist/agent/core/conclusionContract.d.ts.map +1 -1
- package/dist/agent/core/conclusionGenerator.d.ts.map +1 -1
- package/dist/agent/core/conclusionGenerator.js +90 -7
- package/dist/agent/core/conclusionGenerator.js.map +1 -1
- package/dist/agent/core/executors/directSkillExecutor.d.ts.map +1 -1
- package/dist/agent/core/executors/directSkillExecutor.js +6 -12
- package/dist/agent/core/executors/directSkillExecutor.js.map +1 -1
- package/dist/agent/core/orchestratorTypes.d.ts +16 -0
- package/dist/agent/core/orchestratorTypes.d.ts.map +1 -1
- package/dist/agent/core/orchestratorTypes.js.map +1 -1
- package/dist/agent/experts/crossDomain/moduleExpertInvoker.d.ts.map +1 -1
- package/dist/agent/experts/crossDomain/moduleExpertInvoker.js +4 -1
- package/dist/agent/experts/crossDomain/moduleExpertInvoker.js.map +1 -1
- package/dist/agent/scene/sceneStage1Runner.d.ts +1 -1
- package/dist/agent/scene/sceneStage1Runner.d.ts.map +1 -1
- package/dist/agent/scene/sceneStage1Runner.js +1 -1
- package/dist/agent/scene/sceneStage1Runner.js.map +1 -1
- package/dist/agent/scene/sceneStoryService.d.ts +1 -1
- package/dist/agent/scene/sceneStoryService.d.ts.map +1 -1
- package/dist/agent/scene/sceneStoryService.js +4 -1
- package/dist/agent/scene/sceneStoryService.js.map +1 -1
- package/dist/agent/types/agentProtocol.d.ts.map +1 -1
- package/dist/agent/types/agentProtocol.js +4 -1
- package/dist/agent/types/agentProtocol.js.map +1 -1
- package/dist/agent/types.d.ts +7 -0
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/agentOpenAI/openAiRuntime.d.ts.map +1 -1
- package/dist/agentOpenAI/openAiRuntime.js +11 -1
- package/dist/agentOpenAI/openAiRuntime.js.map +1 -1
- package/dist/agentOpenAI/openAiToolAdapter.d.ts.map +1 -1
- package/dist/agentOpenAI/openAiToolAdapter.js +27 -2
- package/dist/agentOpenAI/openAiToolAdapter.js.map +1 -1
- package/dist/agentv3/artifactStore.d.ts +5 -0
- package/dist/agentv3/artifactStore.d.ts.map +1 -1
- package/dist/agentv3/artifactStore.js +3 -0
- package/dist/agentv3/artifactStore.js.map +1 -1
- package/dist/agentv3/claudeMcpServer.d.ts +15 -1
- package/dist/agentv3/claudeMcpServer.d.ts.map +1 -1
- package/dist/agentv3/claudeMcpServer.js +436 -91
- package/dist/agentv3/claudeMcpServer.js.map +1 -1
- package/dist/agentv3/claudeRuntime.d.ts.map +1 -1
- package/dist/agentv3/claudeRuntime.js +17 -0
- package/dist/agentv3/claudeRuntime.js.map +1 -1
- package/dist/agentv3/claudeSystemPrompt.d.ts.map +1 -1
- package/dist/agentv3/claudeSystemPrompt.js +9 -0
- package/dist/agentv3/claudeSystemPrompt.js.map +1 -1
- package/dist/agentv3/mcpToolRegistry.d.ts +14 -2
- package/dist/agentv3/mcpToolRegistry.d.ts.map +1 -1
- package/dist/agentv3/mcpToolRegistry.js +25 -6
- package/dist/agentv3/mcpToolRegistry.js.map +1 -1
- package/dist/agentv3/sessionStateSnapshot.d.ts +41 -0
- package/dist/agentv3/sessionStateSnapshot.d.ts.map +1 -1
- package/dist/agentv3/types.d.ts +5 -0
- package/dist/agentv3/types.d.ts.map +1 -1
- package/dist/agentv3/types.js.map +1 -1
- package/dist/assistant/application/agentAnalyzeSessionService.d.ts +6 -0
- package/dist/assistant/application/agentAnalyzeSessionService.d.ts.map +1 -1
- package/dist/assistant/application/agentAnalyzeSessionService.js +9 -3
- package/dist/assistant/application/agentAnalyzeSessionService.js.map +1 -1
- package/dist/assistant/application/assistantApplicationService.d.ts.map +1 -1
- package/dist/assistant/application/assistantApplicationService.js +3 -1
- package/dist/assistant/application/assistantApplicationService.js.map +1 -1
- package/dist/cli-user/bin.js +99 -1
- package/dist/cli-user/bin.js.map +1 -1
- package/dist/cli-user/commands/analyze.d.ts +3 -0
- package/dist/cli-user/commands/analyze.d.ts.map +1 -1
- package/dist/cli-user/commands/analyze.js +2 -0
- package/dist/cli-user/commands/analyze.js.map +1 -1
- package/dist/cli-user/commands/codebase.d.ts +29 -0
- package/dist/cli-user/commands/codebase.d.ts.map +1 -0
- package/dist/cli-user/commands/codebase.js +152 -0
- package/dist/cli-user/commands/codebase.js.map +1 -0
- package/dist/cli-user/commands/config.d.ts.map +1 -1
- package/dist/cli-user/commands/config.js +4 -1
- package/dist/cli-user/commands/config.js.map +1 -1
- package/dist/cli-user/commands/report.js +64 -0
- package/dist/cli-user/commands/report.js.map +1 -1
- package/dist/cli-user/io/paths.d.ts +3 -0
- package/dist/cli-user/io/paths.d.ts.map +1 -1
- package/dist/cli-user/io/paths.js +6 -0
- package/dist/cli-user/io/paths.js.map +1 -1
- package/dist/cli-user/io/sessionStore.d.ts +1 -0
- package/dist/cli-user/io/sessionStore.d.ts.map +1 -1
- package/dist/cli-user/io/sessionStore.js +5 -0
- package/dist/cli-user/io/sessionStore.js.map +1 -1
- package/dist/cli-user/repl/renderer.d.ts +8 -0
- package/dist/cli-user/repl/renderer.d.ts.map +1 -1
- package/dist/cli-user/repl/renderer.js.map +1 -1
- package/dist/cli-user/services/cliAnalyzeService.d.ts +6 -0
- package/dist/cli-user/services/cliAnalyzeService.d.ts.map +1 -1
- package/dist/cli-user/services/cliAnalyzeService.js +183 -29
- package/dist/cli-user/services/cliAnalyzeService.js.map +1 -1
- package/dist/cli-user/services/turnPersistence.d.ts +0 -10
- package/dist/cli-user/services/turnPersistence.d.ts.map +1 -1
- package/dist/cli-user/services/turnPersistence.js +62 -0
- package/dist/cli-user/services/turnPersistence.js.map +1 -1
- package/dist/cli-user/services/turnRunner.d.ts +3 -0
- package/dist/cli-user/services/turnRunner.d.ts.map +1 -1
- package/dist/cli-user/services/turnRunner.js +6 -0
- package/dist/cli-user/services/turnRunner.js.map +1 -1
- package/dist/cli-user/types.d.ts +5 -0
- package/dist/cli-user/types.d.ts.map +1 -1
- package/dist/routes/agentReportRoutes.d.ts +1 -0
- package/dist/routes/agentReportRoutes.d.ts.map +1 -1
- package/dist/routes/agentReportRoutes.js +13 -2
- package/dist/routes/agentReportRoutes.js.map +1 -1
- package/dist/routes/agentResumeRoutes.d.ts.map +1 -1
- package/dist/routes/agentResumeRoutes.js +29 -5
- package/dist/routes/agentResumeRoutes.js.map +1 -1
- package/dist/routes/agentRoutes.d.ts.map +1 -1
- package/dist/routes/agentRoutes.js +297 -91
- package/dist/routes/agentRoutes.js.map +1 -1
- package/dist/routes/ragAdminRoutes.d.ts +13 -24
- package/dist/routes/ragAdminRoutes.d.ts.map +1 -1
- package/dist/routes/ragAdminRoutes.js +266 -11
- package/dist/routes/ragAdminRoutes.js.map +1 -1
- package/dist/scripts/verifyAgentSseScrolling.js +119 -3
- package/dist/scripts/verifyAgentSseScrolling.js.map +1 -1
- package/dist/services/agentEventStore.d.ts.map +1 -1
- package/dist/services/agentEventStore.js +13 -3
- package/dist/services/agentEventStore.js.map +1 -1
- package/dist/services/agentReportData.d.ts +3 -0
- package/dist/services/agentReportData.d.ts.map +1 -1
- package/dist/services/agentReportData.js.map +1 -1
- package/dist/services/analysisResultSnapshotPipeline.d.ts +3 -0
- package/dist/services/analysisResultSnapshotPipeline.d.ts.map +1 -1
- package/dist/services/analysisResultSnapshotPipeline.js +3 -0
- package/dist/services/analysisResultSnapshotPipeline.js.map +1 -1
- package/dist/services/analysisResultSnapshotStore.d.ts.map +1 -1
- package/dist/services/analysisResultSnapshotStore.js +34 -2
- package/dist/services/analysisResultSnapshotStore.js.map +1 -1
- package/dist/services/aospKnowledgeIngester.d.ts +7 -0
- package/dist/services/aospKnowledgeIngester.d.ts.map +1 -1
- package/dist/services/aospKnowledgeIngester.js +19 -7
- package/dist/services/aospKnowledgeIngester.js.map +1 -1
- package/dist/services/auth/codebaseScopes.d.ts +6 -0
- package/dist/services/auth/codebaseScopes.d.ts.map +1 -0
- package/dist/services/auth/codebaseScopes.js +23 -0
- package/dist/services/auth/codebaseScopes.js.map +1 -0
- package/dist/services/codebase/codeAwareFeature.d.ts +4 -0
- package/dist/services/codebase/codeAwareFeature.d.ts.map +1 -0
- package/dist/services/codebase/codeAwareFeature.js +18 -0
- package/dist/services/codebase/codeAwareFeature.js.map +1 -0
- package/dist/services/codebase/codeLookupLedger.d.ts +37 -0
- package/dist/services/codebase/codeLookupLedger.d.ts.map +1 -0
- package/dist/services/codebase/codeLookupLedger.js +126 -0
- package/dist/services/codebase/codeLookupLedger.js.map +1 -0
- package/dist/services/codebase/codebaseRegistry.d.ts +76 -0
- package/dist/services/codebase/codebaseRegistry.d.ts.map +1 -0
- package/dist/services/codebase/codebaseRegistry.js +164 -0
- package/dist/services/codebase/codebaseRegistry.js.map +1 -0
- package/dist/services/codebase/defaultCodebaseServices.d.ts +5 -0
- package/dist/services/codebase/defaultCodebaseServices.d.ts.map +1 -0
- package/dist/services/codebase/defaultCodebaseServices.js +21 -0
- package/dist/services/codebase/defaultCodebaseServices.js.map +1 -0
- package/dist/services/codebase/patchProposer.d.ts +44 -0
- package/dist/services/codebase/patchProposer.d.ts.map +1 -0
- package/dist/services/codebase/patchProposer.js +163 -0
- package/dist/services/codebase/patchProposer.js.map +1 -0
- package/dist/services/codebase/pathSecurityGate.d.ts +33 -0
- package/dist/services/codebase/pathSecurityGate.d.ts.map +1 -0
- package/dist/services/codebase/pathSecurityGate.js +214 -0
- package/dist/services/codebase/pathSecurityGate.js.map +1 -0
- package/dist/services/enterpriseSchema.d.ts.map +1 -1
- package/dist/services/enterpriseSchema.js +11 -0
- package/dist/services/enterpriseSchema.js.map +1 -1
- package/dist/services/evidence/evidenceContractBuilder.d.ts +11 -0
- package/dist/services/evidence/evidenceContractBuilder.d.ts.map +1 -0
- package/dist/services/evidence/evidenceContractBuilder.js +530 -0
- package/dist/services/evidence/evidenceContractBuilder.js.map +1 -0
- package/dist/services/htmlReportGenerator.d.ts +9 -0
- package/dist/services/htmlReportGenerator.d.ts.map +1 -1
- package/dist/services/htmlReportGenerator.js +133 -0
- package/dist/services/htmlReportGenerator.js.map +1 -1
- package/dist/services/persistAgentSession.d.ts.map +1 -1
- package/dist/services/persistAgentSession.js +24 -0
- package/dist/services/persistAgentSession.js.map +1 -1
- package/dist/services/processIdentity/identityContractMapper.d.ts +14 -0
- package/dist/services/processIdentity/identityContractMapper.d.ts.map +1 -0
- package/dist/services/processIdentity/identityContractMapper.js +135 -0
- package/dist/services/processIdentity/identityContractMapper.js.map +1 -0
- package/dist/services/processIdentity/types.d.ts +5 -0
- package/dist/services/processIdentity/types.d.ts.map +1 -1
- package/dist/services/processIdentity/types.js.map +1 -1
- package/dist/services/rag/aospSourceIngester.d.ts +26 -0
- package/dist/services/rag/aospSourceIngester.d.ts.map +1 -0
- package/dist/services/rag/aospSourceIngester.js +143 -0
- package/dist/services/rag/aospSourceIngester.js.map +1 -0
- package/dist/services/rag/appSourceIngester.d.ts +37 -0
- package/dist/services/rag/appSourceIngester.d.ts.map +1 -0
- package/dist/services/rag/appSourceIngester.js +165 -0
- package/dist/services/rag/appSourceIngester.js.map +1 -0
- package/dist/services/rag/baseIngester.d.ts +18 -0
- package/dist/services/rag/baseIngester.d.ts.map +1 -0
- package/dist/services/rag/baseIngester.js +197 -0
- package/dist/services/rag/baseIngester.js.map +1 -0
- package/dist/services/rag/kernelSourceIngester.d.ts +35 -0
- package/dist/services/rag/kernelSourceIngester.d.ts.map +1 -0
- package/dist/services/rag/kernelSourceIngester.js +170 -0
- package/dist/services/rag/kernelSourceIngester.js.map +1 -0
- package/dist/services/rag/lookupResponseFilter.d.ts +42 -0
- package/dist/services/rag/lookupResponseFilter.d.ts.map +1 -0
- package/dist/services/rag/lookupResponseFilter.js +192 -0
- package/dist/services/rag/lookupResponseFilter.js.map +1 -0
- package/dist/services/rag/sessionToolResultRegistry.d.ts +25 -0
- package/dist/services/rag/sessionToolResultRegistry.d.ts.map +1 -0
- package/dist/services/rag/sessionToolResultRegistry.js +57 -0
- package/dist/services/rag/sessionToolResultRegistry.js.map +1 -0
- package/dist/services/rag/toolResultProjectionFilter.d.ts +18 -0
- package/dist/services/rag/toolResultProjectionFilter.d.ts.map +1 -0
- package/dist/services/rag/toolResultProjectionFilter.js +33 -0
- package/dist/services/rag/toolResultProjectionFilter.js.map +1 -0
- package/dist/services/ragStore.d.ts +8 -0
- package/dist/services/ragStore.d.ts.map +1 -1
- package/dist/services/ragStore.js +77 -8
- package/dist/services/ragStore.js.map +1 -1
- package/dist/services/rbac.d.ts +1 -1
- package/dist/services/rbac.d.ts.map +1 -1
- package/dist/services/rbac.js +6 -0
- package/dist/services/rbac.js.map +1 -1
- package/dist/services/security/codeAwareOutputRegistry.d.ts +6 -0
- package/dist/services/security/codeAwareOutputRegistry.d.ts.map +1 -0
- package/dist/services/security/codeAwareOutputRegistry.js +55 -0
- package/dist/services/security/codeAwareOutputRegistry.js.map +1 -0
- package/dist/services/security/llmEchoOutputFilter.d.ts +49 -0
- package/dist/services/security/llmEchoOutputFilter.d.ts.map +1 -0
- package/dist/services/security/llmEchoOutputFilter.js +133 -0
- package/dist/services/security/llmEchoOutputFilter.js.map +1 -0
- package/dist/services/security/secretPatterns.d.ts +6 -0
- package/dist/services/security/secretPatterns.d.ts.map +1 -0
- package/dist/services/security/secretPatterns.js +23 -0
- package/dist/services/security/secretPatterns.js.map +1 -0
- package/dist/services/skillEngine/skillExecutor.d.ts +14 -2
- package/dist/services/skillEngine/skillExecutor.d.ts.map +1 -1
- package/dist/services/skillEngine/skillExecutor.js +133 -13
- package/dist/services/skillEngine/skillExecutor.js.map +1 -1
- package/dist/services/skillEngine/types.d.ts +2 -0
- package/dist/services/skillEngine/types.d.ts.map +1 -1
- package/dist/services/symbol/breakpadSymParser.d.ts +19 -0
- package/dist/services/symbol/breakpadSymParser.d.ts.map +1 -0
- package/dist/services/symbol/breakpadSymParser.js +40 -0
- package/dist/services/symbol/breakpadSymParser.js.map +1 -0
- package/dist/services/symbol/kallsymsParser.d.ts +12 -0
- package/dist/services/symbol/kallsymsParser.d.ts.map +1 -0
- package/dist/services/symbol/kallsymsParser.js +41 -0
- package/dist/services/symbol/kallsymsParser.js.map +1 -0
- package/dist/services/symbol/r8MappingParser.d.ts +40 -0
- package/dist/services/symbol/r8MappingParser.d.ts.map +1 -0
- package/dist/services/symbol/r8MappingParser.js +99 -0
- package/dist/services/symbol/r8MappingParser.js.map +1 -0
- package/dist/services/symbol/symbolResolver.d.ts +59 -0
- package/dist/services/symbol/symbolResolver.d.ts.map +1 -0
- package/dist/services/symbol/symbolResolver.js +147 -0
- package/dist/services/symbol/symbolResolver.js.map +1 -0
- package/dist/services/symbol/traceSymbolContext.d.ts +14 -0
- package/dist/services/symbol/traceSymbolContext.d.ts.map +1 -0
- package/dist/services/symbol/traceSymbolContext.js +45 -0
- package/dist/services/symbol/traceSymbolContext.js.map +1 -0
- package/dist/services/verifier/claimVerificationRunner.d.ts +20 -0
- package/dist/services/verifier/claimVerificationRunner.d.ts.map +1 -0
- package/dist/services/verifier/claimVerificationRunner.js +88 -0
- package/dist/services/verifier/claimVerificationRunner.js.map +1 -0
- package/dist/services/verifier/deterministicClaimVerifier.d.ts +8 -0
- package/dist/services/verifier/deterministicClaimVerifier.d.ts.map +1 -0
- package/dist/services/verifier/deterministicClaimVerifier.js +178 -0
- package/dist/services/verifier/deterministicClaimVerifier.js.map +1 -0
- package/dist/types/claimVerification.d.ts +38 -0
- package/dist/types/claimVerification.d.ts.map +1 -0
- package/dist/types/claimVerification.js +6 -0
- package/dist/types/claimVerification.js.map +1 -0
- package/dist/types/dataContract.d.ts +30 -0
- package/dist/types/dataContract.d.ts.map +1 -1
- package/dist/types/dataContract.js +7 -0
- package/dist/types/dataContract.js.map +1 -1
- package/dist/types/evidenceContract.d.ts +100 -0
- package/dist/types/evidenceContract.d.ts.map +1 -0
- package/dist/types/evidenceContract.js +6 -0
- package/dist/types/evidenceContract.js.map +1 -0
- package/dist/types/identityContract.d.ts +57 -0
- package/dist/types/identityContract.d.ts.map +1 -0
- package/dist/types/identityContract.js +6 -0
- package/dist/types/identityContract.js.map +1 -0
- package/dist/types/multiTraceComparison.d.ts +3 -0
- package/dist/types/multiTraceComparison.d.ts.map +1 -1
- package/dist/types/sparkContracts.d.ts +31 -3
- package/dist/types/sparkContracts.d.ts.map +1 -1
- package/dist/types/sparkContracts.js.map +1 -1
- package/package.json +8 -1
- package/skills/atomic/process_identity_resolver.skill.yaml +130 -1
- package/skills/atomic/process_slice_cpu_hotspots.skill.yaml +321 -0
- package/skills/composite/code_pinpoint.skill.yaml +111 -0
- package/strategies/anr.strategy.md +2 -2
- package/strategies/code-aware.template.md +37 -0
- package/strategies/game.strategy.md +1 -1
- package/strategies/general.strategy.md +1 -1
- package/strategies/prompt-methodology.template.md +2 -0
- package/strategies/scrolling.strategy.md +1 -0
|
@@ -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)
|
|
@@ -4072,6 +4089,8 @@ class HTMLReportGenerator {
|
|
|
4072
4089
|
|
|
4073
4090
|
${this.renderConclusionClaimSourcesSection(result.conclusionContract, dataEnvelopes, outputLanguage)}
|
|
4074
4091
|
|
|
4092
|
+
${this.renderClaimVerificationSection(result.claimSupport, result.claimVerificationResult, result.identityResolutions, outputLanguage)}
|
|
4093
|
+
|
|
4075
4094
|
<div class="footer">
|
|
4076
4095
|
<p>${(0, outputLanguage_1.localize)(outputLanguage, '由 SmartPerfetto Agent-Driven Orchestrator 生成', 'Generated by SmartPerfetto Agent-Driven Orchestrator')}</p>
|
|
4077
4096
|
<p style="margin-top: 5px; font-size: 12px;">Powered by Claude Agent SDK + MCP Tools</p>
|
|
@@ -4315,6 +4334,56 @@ class HTMLReportGenerator {
|
|
|
4315
4334
|
})();
|
|
4316
4335
|
return `${skillId}:${stepId}:${source}:${traceSide}:${traceId}:${compactData.slice(0, 512)}`;
|
|
4317
4336
|
}
|
|
4337
|
+
renderCodeAwareReferencesSection(contract, outputLanguage = outputLanguage_1.DEFAULT_OUTPUT_LANGUAGE) {
|
|
4338
|
+
const record = this.asReportRecord(contract);
|
|
4339
|
+
if (!record)
|
|
4340
|
+
return '';
|
|
4341
|
+
const codeReferences = this.readReportAliasedRecords(record, ['codeReferences', 'code_refs', 'codeRefs']);
|
|
4342
|
+
const patchProposals = this.readReportAliasedRecords(record, ['patchProposals', 'patch_proposals', 'patches']);
|
|
4343
|
+
if (codeReferences.length === 0 && patchProposals.length === 0)
|
|
4344
|
+
return '';
|
|
4345
|
+
const codeRefHtml = codeReferences.map(ref => {
|
|
4346
|
+
const chunkId = this.escapeHtml(String(ref.chunkId ?? ref.chunk_id ?? ''));
|
|
4347
|
+
const codebaseId = this.escapeHtml(String(ref.codebaseId ?? ref.codebase_id ?? ''));
|
|
4348
|
+
const filePath = this.escapeHtml(String(ref.filePath ?? ref.file_path ?? ''));
|
|
4349
|
+
const symbol = this.escapeHtml(String(ref.symbol ?? ''));
|
|
4350
|
+
const lineRange = this.formatLineRange(ref.lineRange ?? ref.line_range);
|
|
4351
|
+
return `
|
|
4352
|
+
<div class="code-ref-card">
|
|
4353
|
+
<div class="code-ref-title">${symbol || chunkId || filePath}</div>
|
|
4354
|
+
<div class="code-ref-meta">chunkId=${chunkId}${codebaseId ? ` · codebaseId=${codebaseId}` : ''}${filePath ? ` · ${filePath}${lineRange}` : ''}</div>
|
|
4355
|
+
</div>`;
|
|
4356
|
+
}).join('');
|
|
4357
|
+
const patchHtml = patchProposals.map(patch => {
|
|
4358
|
+
const status = String(patch.patchStatus ?? patch.patch_status ?? 'unverified');
|
|
4359
|
+
const safeStatus = status === 'verified' || status === 'sketch' || status === 'unverified' ? status : 'unverified';
|
|
4360
|
+
const proposalId = this.escapeHtml(String(patch.patchProposalId ?? patch.patch_proposal_id ?? ''));
|
|
4361
|
+
const rationale = this.escapeHtml(String(patch.rationale ?? patch.patchSketch ?? patch.patch_sketch ?? ''));
|
|
4362
|
+
return `
|
|
4363
|
+
<div class="patch-card">
|
|
4364
|
+
<div class="patch-title">${proposalId || 'patch'}<span class="patch-status ${safeStatus}">${safeStatus}</span></div>
|
|
4365
|
+
<div class="patch-meta">${rationale}</div>
|
|
4366
|
+
</div>`;
|
|
4367
|
+
}).join('');
|
|
4368
|
+
return `
|
|
4369
|
+
<div class="section">
|
|
4370
|
+
<h2 class="section-title">${(0, outputLanguage_1.localize)(outputLanguage, '代码引用与 Patch', 'Code References and Patches')}</h2>
|
|
4371
|
+
<div class="code-aware-grid">
|
|
4372
|
+
${codeRefHtml}
|
|
4373
|
+
${patchHtml}
|
|
4374
|
+
</div>
|
|
4375
|
+
</div>`;
|
|
4376
|
+
}
|
|
4377
|
+
formatLineRange(value) {
|
|
4378
|
+
const record = this.asReportRecord(value);
|
|
4379
|
+
if (!record)
|
|
4380
|
+
return '';
|
|
4381
|
+
const start = record.start ?? record.line_start;
|
|
4382
|
+
const end = record.end ?? record.line_end;
|
|
4383
|
+
if (start === undefined || end === undefined)
|
|
4384
|
+
return '';
|
|
4385
|
+
return `:${this.escapeHtml(String(start))}-${this.escapeHtml(String(end))}`;
|
|
4386
|
+
}
|
|
4318
4387
|
renderConclusionClaimSourcesSection(contract, envelopes, outputLanguage = outputLanguage_1.DEFAULT_OUTPUT_LANGUAGE) {
|
|
4319
4388
|
const contractRecord = this.asReportRecord(contract);
|
|
4320
4389
|
if (!contractRecord)
|
|
@@ -4385,6 +4454,70 @@ class HTMLReportGenerator {
|
|
|
4385
4454
|
${omittedClaims > 0 ? `<div class="claim-source-note">${this.escapeHtml((0, outputLanguage_1.localize)(outputLanguage, `还有 ${omittedClaims} 条断言未展开`, `${omittedClaims} more claims omitted`))}</div>` : ''}
|
|
4386
4455
|
</div>`;
|
|
4387
4456
|
}
|
|
4457
|
+
renderClaimVerificationSection(claimSupport, verification, identityResolutions, outputLanguage = outputLanguage_1.DEFAULT_OUTPUT_LANGUAGE) {
|
|
4458
|
+
if (!verification && (!claimSupport || claimSupport.length === 0) && (!identityResolutions || identityResolutions.length === 0)) {
|
|
4459
|
+
return '';
|
|
4460
|
+
}
|
|
4461
|
+
const supportCounts = new Map();
|
|
4462
|
+
const supportStatuses = verification?.claimResults?.length
|
|
4463
|
+
? verification.claimResults.map(claim => claim.status)
|
|
4464
|
+
: (claimSupport || []).map(claim => claim.supportLevel);
|
|
4465
|
+
for (const status of supportStatuses) {
|
|
4466
|
+
supportCounts.set(status, (supportCounts.get(status) || 0) + 1);
|
|
4467
|
+
}
|
|
4468
|
+
const supportSummary = Array.from(supportCounts.entries())
|
|
4469
|
+
.map(([key, count]) => `${this.escapeHtml(key)}: ${count}`)
|
|
4470
|
+
.join(' · ');
|
|
4471
|
+
const status = verification?.status || 'not_checked';
|
|
4472
|
+
const issueRows = (verification?.issues || []).slice(0, 12).map(issue => `
|
|
4473
|
+
<tr>
|
|
4474
|
+
<td>${this.escapeHtml(issue.severity)}</td>
|
|
4475
|
+
<td>${this.escapeHtml(issue.claimId)}</td>
|
|
4476
|
+
<td><code>${this.escapeHtml(issue.code)}</code></td>
|
|
4477
|
+
<td>${this.escapeHtml(issue.message)}</td>
|
|
4478
|
+
</tr>
|
|
4479
|
+
`).join('');
|
|
4480
|
+
const identitySummary = (identityResolutions || []).slice(0, 8).map(item => `
|
|
4481
|
+
<tr>
|
|
4482
|
+
<td><code>${this.escapeHtml(item.identityRefId)}</code></td>
|
|
4483
|
+
<td>${this.escapeHtml(item.status)}</td>
|
|
4484
|
+
<td>${this.escapeHtml(item.target.processName || item.target.packageName || '-')}</td>
|
|
4485
|
+
<td>${this.escapeHtml(item.target.threadName || item.target.role || '-')}</td>
|
|
4486
|
+
</tr>
|
|
4487
|
+
`).join('');
|
|
4488
|
+
return `
|
|
4489
|
+
<div class="section">
|
|
4490
|
+
<h2 class="section-title">${(0, outputLanguage_1.localize)(outputLanguage, '断言验证结果', 'Claim Verification')}</h2>
|
|
4491
|
+
<div class="claim-source-note">
|
|
4492
|
+
${this.escapeHtml((0, outputLanguage_1.localize)(outputLanguage, `Verifier 状态: ${status};检查断言 ${verification?.checkedClaimCount ?? 0} 条;不支持 ${verification?.unsupportedClaimCount ?? 0} 条${supportSummary ? `;支持级别 ${supportSummary}` : ''}`, `Verifier status: ${status}; checked ${verification?.checkedClaimCount ?? 0} claims; unsupported ${verification?.unsupportedClaimCount ?? 0}${supportSummary ? `; support levels ${supportSummary}` : ''}`))}
|
|
4493
|
+
</div>
|
|
4494
|
+
${issueRows ? `
|
|
4495
|
+
<table class="claim-source-table">
|
|
4496
|
+
<thead>
|
|
4497
|
+
<tr>
|
|
4498
|
+
<th>${this.escapeHtml((0, outputLanguage_1.localize)(outputLanguage, '级别', 'Severity'))}</th>
|
|
4499
|
+
<th>${this.escapeHtml((0, outputLanguage_1.localize)(outputLanguage, '断言', 'Claim'))}</th>
|
|
4500
|
+
<th>${this.escapeHtml((0, outputLanguage_1.localize)(outputLanguage, '代码', 'Code'))}</th>
|
|
4501
|
+
<th>${this.escapeHtml((0, outputLanguage_1.localize)(outputLanguage, '说明', 'Message'))}</th>
|
|
4502
|
+
</tr>
|
|
4503
|
+
</thead>
|
|
4504
|
+
<tbody>${issueRows}</tbody>
|
|
4505
|
+
</table>` : ''}
|
|
4506
|
+
${identitySummary ? `
|
|
4507
|
+
<div class="claim-source-note">${this.escapeHtml((0, outputLanguage_1.localize)(outputLanguage, '身份解析 Sidecar', 'Identity Resolution Sidecars'))}</div>
|
|
4508
|
+
<table class="claim-source-table">
|
|
4509
|
+
<thead>
|
|
4510
|
+
<tr>
|
|
4511
|
+
<th>${this.escapeHtml((0, outputLanguage_1.localize)(outputLanguage, 'ID', 'ID'))}</th>
|
|
4512
|
+
<th>${this.escapeHtml((0, outputLanguage_1.localize)(outputLanguage, '状态', 'Status'))}</th>
|
|
4513
|
+
<th>${this.escapeHtml((0, outputLanguage_1.localize)(outputLanguage, '进程', 'Process'))}</th>
|
|
4514
|
+
<th>${this.escapeHtml((0, outputLanguage_1.localize)(outputLanguage, '线程', 'Thread'))}</th>
|
|
4515
|
+
</tr>
|
|
4516
|
+
</thead>
|
|
4517
|
+
<tbody>${identitySummary}</tbody>
|
|
4518
|
+
</table>` : ''}
|
|
4519
|
+
</div>`;
|
|
4520
|
+
}
|
|
4388
4521
|
renderClaimReferenceRow(ref, sourceLookup, outputLanguage) {
|
|
4389
4522
|
const evidenceRefId = this.readReportAliasedString(ref, [
|
|
4390
4523
|
'evidenceRefId',
|