@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
|
@@ -22,6 +22,7 @@ const teaching_types_1 = require("../../types/teaching.types");
|
|
|
22
22
|
const dataContract_1 = require("../../types/dataContract");
|
|
23
23
|
const displayContractValidator_1 = require("./displayContractValidator");
|
|
24
24
|
const identityGate_1 = require("../processIdentity/identityGate");
|
|
25
|
+
const identityContractMapper_1 = require("../processIdentity/identityContractMapper");
|
|
25
26
|
/**
|
|
26
27
|
* 将 YAML 中的 layer 值规范化为语义名称
|
|
27
28
|
*/
|
|
@@ -929,6 +930,12 @@ class SkillExecutor {
|
|
|
929
930
|
});
|
|
930
931
|
}
|
|
931
932
|
}
|
|
933
|
+
resolveTraceSide(inherited) {
|
|
934
|
+
const value = inherited.__traceSide;
|
|
935
|
+
return value === 'current' || value === 'reference' || value === 'unknown'
|
|
936
|
+
? value
|
|
937
|
+
: 'current';
|
|
938
|
+
}
|
|
932
939
|
buildIdentityCacheKey(traceId, target) {
|
|
933
940
|
return JSON.stringify({
|
|
934
941
|
traceId,
|
|
@@ -975,17 +982,65 @@ class SkillExecutor {
|
|
|
975
982
|
targetMatchSources: row.target_match_sources ? String(row.target_match_sources) : undefined,
|
|
976
983
|
supportingSources: row.supporting_sources ? String(row.supporting_sources) : undefined,
|
|
977
984
|
identityWarning: row.identity_warning ? String(row.identity_warning) : undefined,
|
|
985
|
+
threadUtid: this.toNumber(row.thread_utid),
|
|
986
|
+
threadTid: this.toNumber(row.thread_tid),
|
|
987
|
+
threadName: row.thread_name ? String(row.thread_name) : undefined,
|
|
988
|
+
threadRole: row.thread_role === 'app_main' || row.thread_role === 'render_thread'
|
|
989
|
+
? row.thread_role
|
|
990
|
+
: this.toNumber(row.thread_utid) !== undefined ? 'unknown' : undefined,
|
|
991
|
+
threadTargetMatched: this.toNumber(row.thread_target_matched) === 1,
|
|
978
992
|
};
|
|
979
993
|
}
|
|
980
|
-
|
|
994
|
+
hasExactProcessIdTarget(target, candidate) {
|
|
995
|
+
if (!candidate)
|
|
996
|
+
return false;
|
|
997
|
+
const sources = new Set(this.splitSources(candidate.targetMatchSources));
|
|
998
|
+
return Boolean(target.upid !== undefined && sources.has('upid'));
|
|
999
|
+
}
|
|
1000
|
+
identityQualityWarnings(candidate, candidates, target) {
|
|
1001
|
+
if (!candidate)
|
|
1002
|
+
return [];
|
|
1003
|
+
const warnings = new Set();
|
|
1004
|
+
const warning = candidate.identityWarning && candidate.identityWarning !== 'ok'
|
|
1005
|
+
? candidate.identityWarning
|
|
1006
|
+
: undefined;
|
|
1007
|
+
if (warning)
|
|
1008
|
+
warnings.add(warning);
|
|
1009
|
+
const targetSources = new Set(this.splitSources(candidate.targetMatchSources));
|
|
1010
|
+
const hasProcessTarget = Boolean(target.requestedName ||
|
|
1011
|
+
target.upid !== undefined ||
|
|
1012
|
+
target.pid !== undefined);
|
|
1013
|
+
const hasExactProcessId = this.hasExactProcessIdTarget(target, candidate);
|
|
1014
|
+
const processLevelSources = Array.from(targetSources)
|
|
1015
|
+
.filter(source => source !== 'thread.name');
|
|
1016
|
+
if (target.threadName && !hasProcessTarget) {
|
|
1017
|
+
warnings.add('thread-only identity target is not enough to verify a unique process');
|
|
1018
|
+
}
|
|
1019
|
+
if (processLevelSources.length === 0) {
|
|
1020
|
+
warnings.add('identity candidate has no process-level target match source');
|
|
1021
|
+
}
|
|
1022
|
+
if (candidate.rawStatus === 'probable' && !hasExactProcessId) {
|
|
1023
|
+
warnings.add('probable identity match requires additional confirmation before parameter rewrite');
|
|
1024
|
+
}
|
|
1025
|
+
const second = candidates.find(item => item !== candidate &&
|
|
1026
|
+
item.confidenceScore > 0);
|
|
1027
|
+
if (second && candidate.confidenceScore - second.confidenceScore < 20) {
|
|
1028
|
+
warnings.add('multiple close process identity candidates require manual confirmation');
|
|
1029
|
+
}
|
|
1030
|
+
return Array.from(warnings);
|
|
1031
|
+
}
|
|
1032
|
+
normalizeIdentityStatus(candidate, candidates, target) {
|
|
981
1033
|
if (!candidate)
|
|
982
1034
|
return 'not_found';
|
|
983
|
-
if ((candidate.rawStatus === 'confirmed' || candidate.rawStatus === 'probable') &&
|
|
984
|
-
candidate.confidenceScore >= 50) {
|
|
985
|
-
return 'verified';
|
|
986
|
-
}
|
|
987
1035
|
if (candidate.confidenceScore <= 0)
|
|
988
1036
|
return 'not_found';
|
|
1037
|
+
const qualityWarnings = this.identityQualityWarnings(candidate, candidates, target);
|
|
1038
|
+
const hasExactProcessId = this.hasExactProcessIdTarget(target, candidate);
|
|
1039
|
+
if (qualityWarnings.length === 0 &&
|
|
1040
|
+
((candidate.rawStatus === 'confirmed' && candidate.confidenceScore >= 80) ||
|
|
1041
|
+
(hasExactProcessId && candidate.confidenceScore >= 50))) {
|
|
1042
|
+
return 'verified';
|
|
1043
|
+
}
|
|
989
1044
|
return 'ambiguous';
|
|
990
1045
|
}
|
|
991
1046
|
async resolveProcessIdentityForGate(traceId, target, inherited) {
|
|
@@ -1031,9 +1086,9 @@ class SkillExecutor {
|
|
|
1031
1086
|
: [];
|
|
1032
1087
|
const candidates = rows.map(row => this.rowToIdentityCandidate(row));
|
|
1033
1088
|
const top = candidates[0];
|
|
1034
|
-
const
|
|
1089
|
+
const qualityWarnings = this.identityQualityWarnings(top, candidates, target);
|
|
1035
1090
|
resolution = {
|
|
1036
|
-
status: this.normalizeIdentityStatus(top),
|
|
1091
|
+
status: this.normalizeIdentityStatus(top, candidates, target),
|
|
1037
1092
|
requestedName: target.requestedName,
|
|
1038
1093
|
canonicalPackageName: top?.canonicalPackageName,
|
|
1039
1094
|
recommendedProcessNameParam: top?.recommendedProcessNameParam,
|
|
@@ -1041,7 +1096,7 @@ class SkillExecutor {
|
|
|
1041
1096
|
confidenceScore: top?.confidenceScore ?? 0,
|
|
1042
1097
|
rawStatus: top?.rawStatus,
|
|
1043
1098
|
evidenceSources: this.splitSources(top?.targetMatchSources, top?.supportingSources),
|
|
1044
|
-
warnings:
|
|
1099
|
+
warnings: qualityWarnings,
|
|
1045
1100
|
candidates,
|
|
1046
1101
|
};
|
|
1047
1102
|
}
|
|
@@ -1072,13 +1127,31 @@ class SkillExecutor {
|
|
|
1072
1127
|
resolve: (target) => this.resolveProcessIdentityForGate(traceId, target, inherited),
|
|
1073
1128
|
});
|
|
1074
1129
|
}
|
|
1075
|
-
buildIdentityBlockedResult(skillId, skill, startTime, gate) {
|
|
1130
|
+
buildIdentityBlockedResult(skillId, skill, traceId, traceSide, startTime, gate) {
|
|
1076
1131
|
const error = gate.error || `Process identity gate blocked skill: ${skillId}`;
|
|
1132
|
+
const identityResolution = (0, identityContractMapper_1.buildIdentityResolutionFromProcessGate)({
|
|
1133
|
+
traceId,
|
|
1134
|
+
traceSide,
|
|
1135
|
+
target: gate.target,
|
|
1136
|
+
resolution: gate.resolution,
|
|
1137
|
+
...(gate.config.policy === 'required' && !gate.resolution
|
|
1138
|
+
? { statusOverride: 'missing', warnings: [error] }
|
|
1139
|
+
: {}),
|
|
1140
|
+
});
|
|
1077
1141
|
return {
|
|
1078
1142
|
skillId,
|
|
1079
1143
|
skillName: skill.meta.display_name,
|
|
1080
1144
|
success: false,
|
|
1081
|
-
displayResults: [
|
|
1145
|
+
displayResults: [{
|
|
1146
|
+
stepId: 'process_identity_gate',
|
|
1147
|
+
title: 'Process identity gate blocked',
|
|
1148
|
+
level: 'detail',
|
|
1149
|
+
layer: 'diagnosis',
|
|
1150
|
+
format: 'text',
|
|
1151
|
+
data: {
|
|
1152
|
+
text: error,
|
|
1153
|
+
},
|
|
1154
|
+
}],
|
|
1082
1155
|
diagnostics: [{
|
|
1083
1156
|
id: 'process_identity_gate_blocked',
|
|
1084
1157
|
diagnosis: error,
|
|
@@ -1095,6 +1168,7 @@ class SkillExecutor {
|
|
|
1095
1168
|
],
|
|
1096
1169
|
source: 'rule',
|
|
1097
1170
|
}],
|
|
1171
|
+
...(identityResolution ? { identityResolution } : {}),
|
|
1098
1172
|
executionTimeMs: Date.now() - startTime,
|
|
1099
1173
|
error,
|
|
1100
1174
|
};
|
|
@@ -1167,6 +1241,7 @@ class SkillExecutor {
|
|
|
1167
1241
|
*/
|
|
1168
1242
|
async execute(skillId, traceId, params = {}, inherited = {}) {
|
|
1169
1243
|
const startTime = Date.now();
|
|
1244
|
+
const traceSide = this.resolveTraceSide(inherited);
|
|
1170
1245
|
const skill = this.skillRegistry.get(skillId);
|
|
1171
1246
|
if (!skill) {
|
|
1172
1247
|
return {
|
|
@@ -1191,8 +1266,14 @@ class SkillExecutor {
|
|
|
1191
1266
|
skillId,
|
|
1192
1267
|
data: { error: gate.error },
|
|
1193
1268
|
});
|
|
1194
|
-
return this.buildIdentityBlockedResult(skillId, skill, startTime, gate);
|
|
1269
|
+
return this.buildIdentityBlockedResult(skillId, skill, traceId, traceSide, startTime, gate);
|
|
1195
1270
|
}
|
|
1271
|
+
const identityResolution = (0, identityContractMapper_1.buildIdentityResolutionFromProcessGate)({
|
|
1272
|
+
traceId,
|
|
1273
|
+
traceSide,
|
|
1274
|
+
target: gate.target,
|
|
1275
|
+
resolution: gate.resolution,
|
|
1276
|
+
});
|
|
1196
1277
|
// Validate and coerce input parameters against skill.inputs declarations
|
|
1197
1278
|
const validated = (0, skillValidator_1.validateSkillInputs)(skillId, skill.inputs, gate.params);
|
|
1198
1279
|
for (const w of validated.warnings) {
|
|
@@ -1207,6 +1288,7 @@ class SkillExecutor {
|
|
|
1207
1288
|
success: false,
|
|
1208
1289
|
displayResults: [],
|
|
1209
1290
|
diagnostics: [],
|
|
1291
|
+
...(identityResolution ? { identityResolution } : {}),
|
|
1210
1292
|
executionTimeMs: Date.now() - startTime,
|
|
1211
1293
|
error: `Input validation failed: ${msg}`,
|
|
1212
1294
|
};
|
|
@@ -1235,6 +1317,7 @@ class SkillExecutor {
|
|
|
1235
1317
|
success: false,
|
|
1236
1318
|
displayResults: [],
|
|
1237
1319
|
diagnostics: [],
|
|
1320
|
+
...(identityResolution ? { identityResolution } : {}),
|
|
1238
1321
|
executionTimeMs: Date.now() - startTime,
|
|
1239
1322
|
error: `Skipped: ${prereqCheck.error}`,
|
|
1240
1323
|
};
|
|
@@ -1262,6 +1345,7 @@ class SkillExecutor {
|
|
|
1262
1345
|
success: false,
|
|
1263
1346
|
displayResults: [],
|
|
1264
1347
|
diagnostics: [],
|
|
1348
|
+
...(identityResolution ? { identityResolution } : {}),
|
|
1265
1349
|
executionTimeMs: Date.now() - startTime,
|
|
1266
1350
|
error: atomicResult.error,
|
|
1267
1351
|
};
|
|
@@ -1283,6 +1367,7 @@ class SkillExecutor {
|
|
|
1283
1367
|
success: false,
|
|
1284
1368
|
displayResults: [],
|
|
1285
1369
|
diagnostics: [],
|
|
1370
|
+
...(identityResolution ? { identityResolution } : {}),
|
|
1286
1371
|
executionTimeMs: Date.now() - startTime,
|
|
1287
1372
|
error: 'No SQL or steps defined for atomic skill',
|
|
1288
1373
|
};
|
|
@@ -1305,6 +1390,7 @@ class SkillExecutor {
|
|
|
1305
1390
|
success: false,
|
|
1306
1391
|
displayResults: [],
|
|
1307
1392
|
diagnostics: [],
|
|
1393
|
+
...(identityResolution ? { identityResolution } : {}),
|
|
1308
1394
|
executionTimeMs: Date.now() - startTime,
|
|
1309
1395
|
error: `No steps defined for skill: ${skillId}`,
|
|
1310
1396
|
};
|
|
@@ -1321,6 +1407,7 @@ class SkillExecutor {
|
|
|
1321
1407
|
success: false,
|
|
1322
1408
|
displayResults: [],
|
|
1323
1409
|
diagnostics: [],
|
|
1410
|
+
...(identityResolution ? { identityResolution } : {}),
|
|
1324
1411
|
executionTimeMs: Date.now() - startTime,
|
|
1325
1412
|
error: `Skill type '${skill.type}' is metadata-only and not executable by the single-trace SkillExecutor: ${skillId}`,
|
|
1326
1413
|
};
|
|
@@ -1350,6 +1437,7 @@ class SkillExecutor {
|
|
|
1350
1437
|
aiSummary,
|
|
1351
1438
|
synthesizeData: synthesizeData.length > 0 ? synthesizeData : undefined,
|
|
1352
1439
|
rawResults: context.results,
|
|
1440
|
+
...(identityResolution ? { identityResolution } : {}),
|
|
1353
1441
|
executionTimeMs: Date.now() - startTime,
|
|
1354
1442
|
};
|
|
1355
1443
|
}
|
|
@@ -1365,6 +1453,7 @@ class SkillExecutor {
|
|
|
1365
1453
|
success: false,
|
|
1366
1454
|
displayResults: [],
|
|
1367
1455
|
diagnostics: [],
|
|
1456
|
+
...(identityResolution ? { identityResolution } : {}),
|
|
1368
1457
|
executionTimeMs: Date.now() - startTime,
|
|
1369
1458
|
error: error.message,
|
|
1370
1459
|
};
|
|
@@ -3557,7 +3646,7 @@ class SkillExecutor {
|
|
|
3557
3646
|
*
|
|
3558
3647
|
* 用于 v2.0 数据契约,统一 SSE 事件格式
|
|
3559
3648
|
*/
|
|
3560
|
-
static toDataEnvelopes(result, columnDefinitions) {
|
|
3649
|
+
static toDataEnvelopes(result, columnDefinitions, provenance) {
|
|
3561
3650
|
return result.displayResults.map(dr => {
|
|
3562
3651
|
// Prefer external columnDefinitions, fallback to embedded columnDefinitions in DisplayResult
|
|
3563
3652
|
const explicitColumns = columnDefinitions?.[dr.stepId] ?? dr.columnDefinitions;
|
|
@@ -3568,9 +3657,40 @@ class SkillExecutor {
|
|
|
3568
3657
|
...drAny,
|
|
3569
3658
|
metadataConfig: drAny.metadataConfig || (Array.isArray(drAny.metadataFields) ? { fields: drAny.metadataFields } : undefined),
|
|
3570
3659
|
};
|
|
3571
|
-
return (0, dataContract_1.displayResultToEnvelope)(drForEnvelope, result.skillId, explicitColumns);
|
|
3660
|
+
return SkillExecutor.attachTraceProvenanceToEnvelope(SkillExecutor.attachIdentityResolutionToEnvelope((0, dataContract_1.displayResultToEnvelope)(drForEnvelope, result.skillId, explicitColumns), result.identityResolution), provenance);
|
|
3572
3661
|
});
|
|
3573
3662
|
}
|
|
3663
|
+
static attachTraceProvenanceToEnvelope(envelope, provenance) {
|
|
3664
|
+
if (!provenance?.traceId && !provenance?.traceSide)
|
|
3665
|
+
return envelope;
|
|
3666
|
+
return {
|
|
3667
|
+
...envelope,
|
|
3668
|
+
meta: {
|
|
3669
|
+
...envelope.meta,
|
|
3670
|
+
...(provenance.traceId && !envelope.meta.traceId ? { traceId: provenance.traceId } : {}),
|
|
3671
|
+
...(provenance.traceSide && !envelope.meta.traceSide ? { traceSide: provenance.traceSide } : {}),
|
|
3672
|
+
},
|
|
3673
|
+
};
|
|
3674
|
+
}
|
|
3675
|
+
static attachIdentityResolutionToEnvelope(envelope, identityResolution) {
|
|
3676
|
+
if (!identityResolution)
|
|
3677
|
+
return envelope;
|
|
3678
|
+
const traceSide = identityResolution.target.traceSide === 'current' || identityResolution.target.traceSide === 'reference'
|
|
3679
|
+
? identityResolution.target.traceSide
|
|
3680
|
+
: undefined;
|
|
3681
|
+
return {
|
|
3682
|
+
...envelope,
|
|
3683
|
+
meta: {
|
|
3684
|
+
...envelope.meta,
|
|
3685
|
+
...(!envelope.meta.traceId ? { traceId: identityResolution.target.traceId } : {}),
|
|
3686
|
+
...(traceSide && !envelope.meta.traceSide ? { traceSide } : {}),
|
|
3687
|
+
identityRefId: identityResolution.identityRefId,
|
|
3688
|
+
identityStatus: identityResolution.status,
|
|
3689
|
+
identityWarnings: identityResolution.warnings,
|
|
3690
|
+
identityResolution,
|
|
3691
|
+
},
|
|
3692
|
+
};
|
|
3693
|
+
}
|
|
3574
3694
|
/**
|
|
3575
3695
|
* 检查数据是否是迭代器结果
|
|
3576
3696
|
*/
|