@opensearch-project/agent-health 0.5.2 → 0.7.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.
- package/README.md +1 -0
- package/cli/dist/index.js +2325 -961
- package/dist/assets/index-D-Np_l_T.js +246 -0
- package/dist/assets/index-vZt9QZKf.css +1 -0
- package/dist/index.html +2 -2
- package/docs/CLI.md +183 -3
- package/docs/CONFIGURATION.md +1 -1
- package/docs/CONNECTORS.md +1 -1
- package/docs/INSTRUMENT_WITH_OTEL.md +7 -0
- package/docs/SDK.md +178 -5
- package/docs/STORAGE_INDEX_FIELD_LIMITS.md +216 -0
- package/docs/skills/AGENT_HEALTH.md +55 -1
- package/docs/skills/add-connector/SKILL.md +5 -1
- package/examples/eval-files/demo.eval.js +1 -1
- package/examples/eval-files/ops-rca-classification.eval.js +71 -0
- package/examples/eval-files/ops-rca-evaluator.json +15 -0
- package/examples/eval-files/sdk-demo.eval.js +72 -0
- package/examples/eval-files/sdk-describe-demo.eval.js +50 -0
- package/examples/eval-files/sdk-hooks-demo.eval.js +1 -1
- package/lib/dist/lib/agentTrends.d.ts +210 -0
- package/lib/dist/lib/agentTrends.d.ts.map +1 -0
- package/lib/dist/lib/agentTrends.js +360 -0
- package/lib/dist/lib/agentTrends.js.map +1 -0
- package/lib/dist/lib/bedrockCompat.d.ts +27 -0
- package/lib/dist/lib/bedrockCompat.d.ts.map +1 -0
- package/lib/dist/lib/bedrockCompat.js +83 -0
- package/lib/dist/lib/bedrockCompat.js.map +1 -0
- package/lib/dist/lib/benchmarkCaseReview.d.ts +114 -0
- package/lib/dist/lib/benchmarkCaseReview.d.ts.map +1 -0
- package/lib/dist/lib/benchmarkCaseReview.js +177 -0
- package/lib/dist/lib/benchmarkCaseReview.js.map +1 -0
- package/lib/dist/lib/benchmarkImage.d.ts +52 -0
- package/lib/dist/lib/benchmarkImage.d.ts.map +1 -0
- package/lib/dist/lib/benchmarkImage.js +113 -0
- package/lib/dist/lib/benchmarkImage.js.map +1 -0
- package/lib/dist/lib/benchmarkRunsTable.d.ts +109 -0
- package/lib/dist/lib/benchmarkRunsTable.d.ts.map +1 -0
- package/lib/dist/lib/benchmarkRunsTable.js +212 -0
- package/lib/dist/lib/benchmarkRunsTable.js.map +1 -0
- package/lib/dist/lib/benchmarkVersionUtils.d.ts +13 -0
- package/lib/dist/lib/benchmarkVersionUtils.d.ts.map +1 -1
- package/lib/dist/lib/benchmarkVersionUtils.js +21 -0
- package/lib/dist/lib/benchmarkVersionUtils.js.map +1 -1
- package/lib/dist/lib/chunkedFetch.d.ts +18 -0
- package/lib/dist/lib/chunkedFetch.d.ts.map +1 -0
- package/lib/dist/lib/chunkedFetch.js +40 -0
- package/lib/dist/lib/chunkedFetch.js.map +1 -0
- package/lib/dist/lib/comparisonInsights.d.ts +151 -0
- package/lib/dist/lib/comparisonInsights.d.ts.map +1 -0
- package/lib/dist/lib/comparisonInsights.js +270 -0
- package/lib/dist/lib/comparisonInsights.js.map +1 -0
- package/lib/dist/lib/config/loader.d.ts.map +1 -1
- package/lib/dist/lib/config/loader.js +16 -1
- package/lib/dist/lib/config/loader.js.map +1 -1
- package/lib/dist/lib/config/types.d.ts +14 -0
- package/lib/dist/lib/config/types.d.ts.map +1 -1
- package/lib/dist/lib/constants.d.ts +11 -0
- package/lib/dist/lib/constants.d.ts.map +1 -1
- package/lib/dist/lib/constants.js +10 -1
- package/lib/dist/lib/constants.js.map +1 -1
- package/lib/dist/lib/contextFormat.d.ts +26 -0
- package/lib/dist/lib/contextFormat.d.ts.map +1 -0
- package/lib/dist/lib/contextFormat.js +28 -0
- package/lib/dist/lib/contextFormat.js.map +1 -0
- package/lib/dist/lib/dashboardMetrics.d.ts +11 -2
- package/lib/dist/lib/dashboardMetrics.d.ts.map +1 -1
- package/lib/dist/lib/dashboardMetrics.js +38 -3
- package/lib/dist/lib/dashboardMetrics.js.map +1 -1
- package/lib/dist/lib/envCompat.d.ts.map +1 -1
- package/lib/dist/lib/envCompat.js +14 -5
- package/lib/dist/lib/envCompat.js.map +1 -1
- package/lib/dist/lib/evaluationRerun.d.ts +102 -0
- package/lib/dist/lib/evaluationRerun.d.ts.map +1 -0
- package/lib/dist/lib/evaluationRerun.js +134 -0
- package/lib/dist/lib/evaluationRerun.js.map +1 -0
- package/lib/dist/lib/judgeFailureSummary.d.ts +66 -0
- package/lib/dist/lib/judgeFailureSummary.d.ts.map +1 -0
- package/lib/dist/lib/judgeFailureSummary.js +68 -0
- package/lib/dist/lib/judgeFailureSummary.js.map +1 -0
- package/lib/dist/lib/judgeStrategies.d.ts +108 -0
- package/lib/dist/lib/judgeStrategies.d.ts.map +1 -0
- package/lib/dist/lib/judgeStrategies.js +135 -0
- package/lib/dist/lib/judgeStrategies.js.map +1 -0
- package/lib/dist/lib/matchers/expect.d.ts +21 -1
- package/lib/dist/lib/matchers/expect.d.ts.map +1 -1
- package/lib/dist/lib/matchers/expect.js +51 -0
- package/lib/dist/lib/matchers/expect.js.map +1 -1
- package/lib/dist/lib/matchers/judgeAccessor.d.ts +4 -0
- package/lib/dist/lib/matchers/judgeAccessor.d.ts.map +1 -1
- package/lib/dist/lib/matchers/judgeAccessor.js +13 -2
- package/lib/dist/lib/matchers/judgeAccessor.js.map +1 -1
- package/lib/dist/lib/matchers/judgeReasoningParse.d.ts +49 -0
- package/lib/dist/lib/matchers/judgeReasoningParse.d.ts.map +1 -0
- package/lib/dist/lib/matchers/judgeReasoningParse.js +128 -0
- package/lib/dist/lib/matchers/judgeReasoningParse.js.map +1 -0
- package/lib/dist/lib/matchers/traces.d.ts +17 -2
- package/lib/dist/lib/matchers/traces.d.ts.map +1 -1
- package/lib/dist/lib/matchers/traces.js +136 -16
- package/lib/dist/lib/matchers/traces.js.map +1 -1
- package/lib/dist/lib/matchers/tracesPricing.d.ts +38 -0
- package/lib/dist/lib/matchers/tracesPricing.d.ts.map +1 -0
- package/lib/dist/lib/matchers/tracesPricing.js +64 -0
- package/lib/dist/lib/matchers/tracesPricing.js.map +1 -0
- package/lib/dist/lib/matchers/types.d.ts +25 -0
- package/lib/dist/lib/matchers/types.d.ts.map +1 -1
- package/lib/dist/lib/resolveCanonicalRun.d.ts +23 -0
- package/lib/dist/lib/resolveCanonicalRun.d.ts.map +1 -0
- package/lib/dist/lib/resolveCanonicalRun.js +26 -0
- package/lib/dist/lib/resolveCanonicalRun.js.map +1 -0
- package/lib/dist/lib/runActions.d.ts +120 -0
- package/lib/dist/lib/runActions.d.ts.map +1 -0
- package/lib/dist/lib/runActions.js +130 -0
- package/lib/dist/lib/runActions.js.map +1 -0
- package/lib/dist/lib/runInsights.d.ts +86 -0
- package/lib/dist/lib/runInsights.d.ts.map +1 -0
- package/lib/dist/lib/runInsights.js +185 -0
- package/lib/dist/lib/runInsights.js.map +1 -0
- package/lib/dist/lib/runName.d.ts +29 -0
- package/lib/dist/lib/runName.d.ts.map +1 -0
- package/lib/dist/lib/runName.js +38 -0
- package/lib/dist/lib/runName.js.map +1 -0
- package/lib/dist/lib/runReportPath.d.ts +16 -0
- package/lib/dist/lib/runReportPath.d.ts.map +1 -0
- package/lib/dist/lib/runReportPath.js +22 -0
- package/lib/dist/lib/runReportPath.js.map +1 -0
- package/lib/dist/lib/runSort.d.ts +27 -0
- package/lib/dist/lib/runSort.d.ts.map +1 -0
- package/lib/dist/lib/runSort.js +31 -0
- package/lib/dist/lib/runSort.js.map +1 -0
- package/lib/dist/lib/runStats.d.ts +109 -5
- package/lib/dist/lib/runStats.d.ts.map +1 -1
- package/lib/dist/lib/runStats.js +193 -10
- package/lib/dist/lib/runStats.js.map +1 -1
- package/lib/dist/lib/testCases/define.d.ts.map +1 -1
- package/lib/dist/lib/testCases/define.js +93 -46
- package/lib/dist/lib/testCases/define.js.map +1 -1
- package/lib/dist/lib/testCases/judge.d.ts.map +1 -1
- package/lib/dist/lib/testCases/judge.js +22 -4
- package/lib/dist/lib/testCases/judge.js.map +1 -1
- package/lib/dist/lib/testCases/loader.d.ts +35 -1
- package/lib/dist/lib/testCases/loader.d.ts.map +1 -1
- package/lib/dist/lib/testCases/loader.js +278 -31
- package/lib/dist/lib/testCases/loader.js.map +1 -1
- package/lib/dist/lib/trajectoryStepDisplay.d.ts +25 -0
- package/lib/dist/lib/trajectoryStepDisplay.d.ts.map +1 -0
- package/lib/dist/lib/trajectoryStepDisplay.js +42 -0
- package/lib/dist/lib/trajectoryStepDisplay.js.map +1 -0
- package/lib/dist/lib/utils.d.ts +34 -0
- package/lib/dist/lib/utils.d.ts.map +1 -1
- package/lib/dist/lib/utils.js +49 -0
- package/lib/dist/lib/utils.js.map +1 -1
- package/lib/dist/services/connectors/claude-code/ClaudeCodeConnector.d.ts +68 -22
- package/lib/dist/services/connectors/claude-code/ClaudeCodeConnector.d.ts.map +1 -1
- package/lib/dist/services/connectors/claude-code/ClaudeCodeConnector.js +148 -111
- package/lib/dist/services/connectors/claude-code/ClaudeCodeConnector.js.map +1 -1
- package/lib/dist/services/connectors/kiro/KiroConnector.d.ts +21 -13
- package/lib/dist/services/connectors/kiro/KiroConnector.d.ts.map +1 -1
- package/lib/dist/services/connectors/kiro/KiroConnector.js +22 -25
- package/lib/dist/services/connectors/kiro/KiroConnector.js.map +1 -1
- package/lib/dist/services/connectors/pi/PiConnector.d.ts +49 -10
- package/lib/dist/services/connectors/pi/PiConnector.d.ts.map +1 -1
- package/lib/dist/services/connectors/pi/PiConnector.js +102 -86
- package/lib/dist/services/connectors/pi/PiConnector.js.map +1 -1
- package/lib/dist/services/connectors/subprocess/SubprocessConnector.d.ts +59 -14
- package/lib/dist/services/connectors/subprocess/SubprocessConnector.d.ts.map +1 -1
- package/lib/dist/services/connectors/subprocess/SubprocessConnector.js +95 -61
- package/lib/dist/services/connectors/subprocess/SubprocessConnector.js.map +1 -1
- package/lib/dist/services/evaluation/bedrockJudge.d.ts +18 -0
- package/lib/dist/services/evaluation/bedrockJudge.d.ts.map +1 -1
- package/lib/dist/services/evaluation/bedrockJudge.js +4 -0
- package/lib/dist/services/evaluation/bedrockJudge.js.map +1 -1
- package/lib/dist/services/evaluation/index.d.ts +18 -1
- package/lib/dist/services/evaluation/index.d.ts.map +1 -1
- package/lib/dist/services/evaluation/index.js +156 -19
- package/lib/dist/services/evaluation/index.js.map +1 -1
- package/lib/dist/services/metrics.d.ts +55 -0
- package/lib/dist/services/metrics.d.ts.map +1 -0
- package/lib/dist/services/metrics.js +89 -0
- package/lib/dist/services/metrics.js.map +1 -0
- package/lib/dist/services/storage/asyncBenchmarkStorage.d.ts +1 -1
- package/lib/dist/services/storage/asyncBenchmarkStorage.d.ts.map +1 -1
- package/lib/dist/services/storage/asyncBenchmarkStorage.js +30 -3
- package/lib/dist/services/storage/asyncBenchmarkStorage.js.map +1 -1
- package/lib/dist/services/storage/asyncRunStorage.d.ts +20 -1
- package/lib/dist/services/storage/asyncRunStorage.d.ts.map +1 -1
- package/lib/dist/services/storage/asyncRunStorage.js +125 -2
- package/lib/dist/services/storage/asyncRunStorage.js.map +1 -1
- package/lib/dist/services/storage/asyncTestCaseStorage.d.ts +18 -4
- package/lib/dist/services/storage/asyncTestCaseStorage.d.ts.map +1 -1
- package/lib/dist/services/storage/asyncTestCaseStorage.js +21 -4
- package/lib/dist/services/storage/asyncTestCaseStorage.js.map +1 -1
- package/lib/dist/services/storage/opensearchClient.d.ts +47 -12
- package/lib/dist/services/storage/opensearchClient.d.ts.map +1 -1
- package/lib/dist/services/storage/opensearchClient.js +12 -5
- package/lib/dist/services/storage/opensearchClient.js.map +1 -1
- package/lib/dist/services/traces/browserRecovery.d.ts +12 -1
- package/lib/dist/services/traces/browserRecovery.d.ts.map +1 -1
- package/lib/dist/services/traces/browserRecovery.js +35 -5
- package/lib/dist/services/traces/browserRecovery.js.map +1 -1
- package/lib/dist/services/traces/index.d.ts +8 -1
- package/lib/dist/services/traces/index.d.ts.map +1 -1
- package/lib/dist/services/traces/index.js +33 -12
- package/lib/dist/services/traces/index.js.map +1 -1
- package/lib/dist/services/traces/judgeAgentsHints.d.ts +98 -3
- package/lib/dist/services/traces/judgeAgentsHints.d.ts.map +1 -1
- package/lib/dist/services/traces/judgeAgentsHints.js +144 -3
- package/lib/dist/services/traces/judgeAgentsHints.js.map +1 -1
- package/lib/dist/services/traces/messageExtraction.d.ts.map +1 -1
- package/lib/dist/services/traces/messageExtraction.js +95 -33
- package/lib/dist/services/traces/messageExtraction.js.map +1 -1
- package/lib/dist/services/traces/spansToTrajectory.d.ts.map +1 -1
- package/lib/dist/services/traces/spansToTrajectory.js +51 -13
- package/lib/dist/services/traces/spansToTrajectory.js.map +1 -1
- package/lib/dist/services/traces/tracePoller.d.ts +27 -3
- package/lib/dist/services/traces/tracePoller.d.ts.map +1 -1
- package/lib/dist/services/traces/tracePoller.js +196 -33
- package/lib/dist/services/traces/tracePoller.js.map +1 -1
- package/lib/dist/services/traces/trajectoryMerge.d.ts +79 -0
- package/lib/dist/services/traces/trajectoryMerge.d.ts.map +1 -0
- package/lib/dist/services/traces/trajectoryMerge.js +109 -0
- package/lib/dist/services/traces/trajectoryMerge.js.map +1 -0
- package/lib/dist/types/index.d.ts +250 -3
- package/lib/dist/types/index.d.ts.map +1 -1
- package/lib/dist/types/index.js +24 -0
- package/lib/dist/types/index.js.map +1 -1
- package/package.json +8 -5
- package/server/dist/app.js +5490 -1557
- package/server/dist/index.js +5490 -1557
- package/dist/assets/index-CCQRDlO0.js +0 -243
- package/dist/assets/index-CNHQVbcj.css +0 -1
|
@@ -34,9 +34,18 @@ export interface JudgeAgentsHint {
|
|
|
34
34
|
/**
|
|
35
35
|
* Resolve the `service.name` an agent emits OTel spans under. Priority:
|
|
36
36
|
* 1. Explicit `agentConfig.traceServiceName` (the per-agent override).
|
|
37
|
-
* 2. Protocol-default from the table above
|
|
38
|
-
*
|
|
39
|
-
*
|
|
37
|
+
* 2. Protocol-default from the table above (connectors WE wrote — fixed,
|
|
38
|
+
* known service.name).
|
|
39
|
+
* 3. `undefined` (+ a loud `console.warn`) for `UNKNOWN_SERVICE_NAME_PROTOCOLS`
|
|
40
|
+
* (generic transport protocols where the remote service.name is NOT
|
|
41
|
+
* knowable) — deliberately does NOT fabricate a guessed name. See the
|
|
42
|
+
* set's doc comment for why a wrong guess is worse than no guess.
|
|
43
|
+
* 4. `<connectorProtocol>-agent` heuristic, but ONLY as a last resort for
|
|
44
|
+
* connector protocol strings outside both of the above (e.g. a
|
|
45
|
+
* user-configured custom connector key not in the upstream
|
|
46
|
+
* `ConnectorProtocol` union) — kept for backward compatibility since
|
|
47
|
+
* those are genuinely unknown rather than known-unknowable.
|
|
48
|
+
* 5. `<agentKey>-agent` as a final guess when protocol itself is unknown.
|
|
40
49
|
*
|
|
41
50
|
* Returns `undefined` when none of the above is derivable; the caller
|
|
42
51
|
* should then skip Strategy C and fall back to Strategy B alone.
|
|
@@ -60,4 +69,90 @@ export declare function resolveAgentServiceName(args: {
|
|
|
60
69
|
* Strategy B (runIds-only) without breaking.
|
|
61
70
|
*/
|
|
62
71
|
export declare function buildJudgeAgentsHints(report: Pick<TestCaseRun, 'agentKey' | 'connectorProtocol' | 'timestamp' | 'performanceMetrics' | 'sessionId'>, agentTraceServiceName?: string): JudgeAgentsHint[];
|
|
72
|
+
/**
|
|
73
|
+
* Resolve the id forwarded as `runId` to `/api/judge` (provider `agent`).
|
|
74
|
+
*
|
|
75
|
+
* The route hard-requires a truthy `runId` ("runId is required for the agent
|
|
76
|
+
* (trace) judge provider — its trace tools scope to it") because that's the
|
|
77
|
+
* ONLY thing the trace tools historically scoped on (Strategy B). But REST
|
|
78
|
+
* connectors never populate `report.runId` (`RESTConnector.execute()` returns
|
|
79
|
+
* `data.runId || data.id || null`, and agent response bodies here carry
|
|
80
|
+
* neither) — so any REST-connector agent using the `agent-trace-judge` model
|
|
81
|
+
* 400s before the judge ever runs, EVEN when Strategy C (`agents` hints,
|
|
82
|
+
* service.name + time-window) already has enough to find the real spans
|
|
83
|
+
* (root-caused via a live smoke test 2026-09-01:
|
|
84
|
+
* `example-rest-agent-variant` found its spans on poll attempt
|
|
85
|
+
* 1 once `traceServiceName` was set, then still 400'd on this exact gate).
|
|
86
|
+
*
|
|
87
|
+
* Fallback is `report.traceId` ONLY (the eval's own OTel `test_case` span) —
|
|
88
|
+
* deliberately NOT `report.id` (the storage doc id), and NOT `undefined`.
|
|
89
|
+
* Two different downstream consumers read this value with different safety
|
|
90
|
+
* properties:
|
|
91
|
+
* - `/api/traces` (`query_spans`): `traceJudgeTools.ts` sends it as
|
|
92
|
+
* `runIds:[runId]`, UNIONED (bool.should) with the `agents` Strategy-C
|
|
93
|
+
* hints, matched against `attributes.agent_health.run.id` /
|
|
94
|
+
* `attributes.gen_ai.conversation.id`. A value that matches no span is a
|
|
95
|
+
* harmless no-op contribution to that union — safe for ANY truthy
|
|
96
|
+
* string, including `report.id`.
|
|
97
|
+
* - `/api/logs` (`query_logs`): `fetchLogs()` (server/services/logsService.ts)
|
|
98
|
+
* treats a present `runId` as the ONLY filter — `match: { message: runId
|
|
99
|
+
* }` with NO time-range bound at all ("searching by runId, we want to
|
|
100
|
+
* find logs regardless of age"). `match` is analyzed: a hyphenated id
|
|
101
|
+
* like a `report.id` (e.g. `run-1788232186357-pxdnz1a4k`) tokenizes into
|
|
102
|
+
* `run` / `1788232186357` / `pxdnz1a4k` and would OR-match any log
|
|
103
|
+
* containing the extremely common word "run" anywhere in the cluster,
|
|
104
|
+
* unbounded by time — exactly the noise risk this codebase's Strategy-C
|
|
105
|
+
* docs warn about, but worse (no window). A 32-hex-char OTel `traceId`
|
|
106
|
+
* has no word boundaries for the analyzer to split on, so it behaves as
|
|
107
|
+
* one high-entropy token — realistically only ever matches a log line
|
|
108
|
+
* that legitimately contains this exact trace id.
|
|
109
|
+
*
|
|
110
|
+
* So `report.id` is NOT an acceptable fallback despite being always present:
|
|
111
|
+
* it is safe for `/api/traces` but unsafe for `/api/logs`. When `traceId` is
|
|
112
|
+
* ALSO absent (e.g. eval telemetry disabled), returning `undefined` and
|
|
113
|
+
* letting the route's original 400 stand is the correct fail-closed
|
|
114
|
+
* behavior — not a silent degrade into unscoped log search.
|
|
115
|
+
*
|
|
116
|
+
* The route's defense-in-depth check (`trajectoryRunIds.has(runId)`) only
|
|
117
|
+
* activates when trajectory steps carry a `.runId` field (SDK-derived
|
|
118
|
+
* trajectories); classic REST/subprocess trajectory steps never do, so this
|
|
119
|
+
* fallback can't trip that 403 either way.
|
|
120
|
+
*/
|
|
121
|
+
export declare function resolveJudgeRunId(report: Pick<TestCaseRun, 'runId' | 'traceId'>): string | undefined;
|
|
122
|
+
/**
|
|
123
|
+
* Does this `/api/judge` (provider `agent`) request carry ANY correlation
|
|
124
|
+
* handle its trace-query tools can scope to?
|
|
125
|
+
*
|
|
126
|
+
* True when EITHER:
|
|
127
|
+
* - `runId` is truthy — Strategy B. By the time a well-behaved caller
|
|
128
|
+
* reaches the route this is often already {@link resolveJudgeRunId}'s
|
|
129
|
+
* `traceId` fallback rather than a native run id; the two are
|
|
130
|
+
* indistinguishable (and equally valid) from here on, so this check
|
|
131
|
+
* doesn't need to know which one it is.
|
|
132
|
+
* - at least one entry in `agents` (Strategy C/D hints from
|
|
133
|
+
* {@link buildJudgeAgentsHints}) carries a `serviceName` or `sessionId`.
|
|
134
|
+
*
|
|
135
|
+
* This is the fix for the bug `resolveJudgeRunId` alone didn't cover: the
|
|
136
|
+
* two SYNCHRONOUS (non-`useTraces`) judge call sites in
|
|
137
|
+
* `services/evaluation/index.ts` (`runEvaluationWithConnector`'s "STANDARD
|
|
138
|
+
* MODE" branch, used by every REST-connector agent that picks the
|
|
139
|
+
* `agent-trace-judge` model WITHOUT enabling trace-mode polling) already
|
|
140
|
+
* forward `agents` hints (`buildJudgeAgentsHints(...)`) — they just never
|
|
141
|
+
* had a `runId` to forward, because the connector never minted one and
|
|
142
|
+
* `report.traceId` isn't stamped yet at that point in the flow (that
|
|
143
|
+
* stamping happens later, in `evaluationRunner.ts`, only on the trace-mode
|
|
144
|
+
* branch). Pre-fix, `POST /api/judge`'s `if (!runId) return 400` rejected
|
|
145
|
+
* these requests unconditionally, even though the hints it had received in
|
|
146
|
+
* the SAME request body were already sufficient for the trace tools to
|
|
147
|
+
* find real spans — the hints mechanism existed (#264) but the gate fired
|
|
148
|
+
* first and never looked at it.
|
|
149
|
+
*
|
|
150
|
+
* Used by the route's `agent` provider gate (replacing the old
|
|
151
|
+
* `if (!runId)` check) and by {@link createTraceJudgeExtension}
|
|
152
|
+
* (`server/services/traceJudgeTools.ts`) to decide whether its tools are
|
|
153
|
+
* enabled at all — the gate and the tools must agree, or the route accepts
|
|
154
|
+
* a request whose tools then silently disable themselves and the judge
|
|
155
|
+
* degrades to trajectory-only reasoning without anyone being told.
|
|
156
|
+
*/
|
|
157
|
+
export declare function hasTraceCorrelation(runId: string | undefined, agents?: Array<Pick<JudgeAgentsHint, 'serviceName' | 'sessionId'>>): boolean;
|
|
63
158
|
//# sourceMappingURL=judgeAgentsHints.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"judgeAgentsHints.d.ts","sourceRoot":"","sources":["../../../../services/traces/judgeAgentsHints.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"judgeAgentsHints.d.ts","sourceRoot":"","sources":["../../../../services/traces/judgeAgentsHints.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AA2D9D,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,MAAM,GAAG,SAAS,CAoBrB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,mBAAmB,GAAG,WAAW,GAAG,oBAAoB,GAAG,WAAW,CAAC,EAC9G,qBAAqB,CAAC,EAAE,MAAM,GAC7B,eAAe,EAAE,CAyBnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,SAAS,CAAC,GAC7C,MAAM,GAAG,SAAS,CAEpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,aAAa,GAAG,WAAW,CAAC,CAAC,GACjE,OAAO,CAGT"}
|
|
@@ -16,6 +16,36 @@ const PROTOCOL_TO_SERVICE_NAME = {
|
|
|
16
16
|
'agui-streaming': 'observio-sample-agent',
|
|
17
17
|
'subprocess': 'subprocess-agent',
|
|
18
18
|
};
|
|
19
|
+
/**
|
|
20
|
+
* Connector protocols where agent-health does NOT control (and cannot know)
|
|
21
|
+
* the remote agent's OTel `service.name`. Unlike `claude-code`/`kiro`/`pi`/
|
|
22
|
+
* `agui-streaming`/`subprocess` above — connectors WE wrote, whose spawned
|
|
23
|
+
* process/sample-agent always emits under the same fixed name — these are
|
|
24
|
+
* generic TRANSPORT protocols: `rest`/`openai-compatible`/`langgraph` just
|
|
25
|
+
* describe how the HTTP call is shaped, and ANY third-party agent (with ANY
|
|
26
|
+
* OTel service.name, or none at all) can sit behind one. `strands` is a
|
|
27
|
+
* third-party agent framework we don't control either. `mock` never emits
|
|
28
|
+
* real spans.
|
|
29
|
+
*
|
|
30
|
+
* Root cause (2026-09-01 trace_timeout incident): before this set existed,
|
|
31
|
+
* `resolveAgentServiceName()`'s last-resort `${protocol}-agent` heuristic
|
|
32
|
+
* silently resolved `example-rest-agent` (connectorType `rest`, no
|
|
33
|
+
* `traceServiceName` configured) to the fabricated name `"rest-agent"` —
|
|
34
|
+
* which matches no real span, ever. Strategy C then confidently polled that
|
|
35
|
+
* wrong service.name for the FULL attempt budget (60 attempts / 10 min)
|
|
36
|
+
* every single run, even though the agent's real spans (service.name
|
|
37
|
+
* `"example-agent"`) were landing on the cluster the whole time. A wrong
|
|
38
|
+
* guess here is worse than no guess: `undefined` correctly skips Strategy C
|
|
39
|
+
* and falls back to Strategy A/B/D; a wrong string burns the entire poll
|
|
40
|
+
* budget on a query that can never match.
|
|
41
|
+
*/
|
|
42
|
+
const UNKNOWN_SERVICE_NAME_PROTOCOLS = new Set([
|
|
43
|
+
'rest',
|
|
44
|
+
'openai-compatible',
|
|
45
|
+
'langgraph',
|
|
46
|
+
'strands',
|
|
47
|
+
'mock',
|
|
48
|
+
]);
|
|
19
49
|
/** Time-window slack on each side of the run window to absorb clock skew. */
|
|
20
50
|
const SLACK_MS = 60_000;
|
|
21
51
|
/**
|
|
@@ -28,9 +58,18 @@ const FALLBACK_LOOKBACK_MS = 30 * 60_000;
|
|
|
28
58
|
/**
|
|
29
59
|
* Resolve the `service.name` an agent emits OTel spans under. Priority:
|
|
30
60
|
* 1. Explicit `agentConfig.traceServiceName` (the per-agent override).
|
|
31
|
-
* 2. Protocol-default from the table above
|
|
32
|
-
*
|
|
33
|
-
*
|
|
61
|
+
* 2. Protocol-default from the table above (connectors WE wrote — fixed,
|
|
62
|
+
* known service.name).
|
|
63
|
+
* 3. `undefined` (+ a loud `console.warn`) for `UNKNOWN_SERVICE_NAME_PROTOCOLS`
|
|
64
|
+
* (generic transport protocols where the remote service.name is NOT
|
|
65
|
+
* knowable) — deliberately does NOT fabricate a guessed name. See the
|
|
66
|
+
* set's doc comment for why a wrong guess is worse than no guess.
|
|
67
|
+
* 4. `<connectorProtocol>-agent` heuristic, but ONLY as a last resort for
|
|
68
|
+
* connector protocol strings outside both of the above (e.g. a
|
|
69
|
+
* user-configured custom connector key not in the upstream
|
|
70
|
+
* `ConnectorProtocol` union) — kept for backward compatibility since
|
|
71
|
+
* those are genuinely unknown rather than known-unknowable.
|
|
72
|
+
* 5. `<agentKey>-agent` as a final guess when protocol itself is unknown.
|
|
34
73
|
*
|
|
35
74
|
* Returns `undefined` when none of the above is derivable; the caller
|
|
36
75
|
* should then skip Strategy C and fall back to Strategy B alone.
|
|
@@ -41,6 +80,16 @@ export function resolveAgentServiceName(args) {
|
|
|
41
80
|
if (args.connectorProtocol && PROTOCOL_TO_SERVICE_NAME[args.connectorProtocol]) {
|
|
42
81
|
return PROTOCOL_TO_SERVICE_NAME[args.connectorProtocol];
|
|
43
82
|
}
|
|
83
|
+
if (args.connectorProtocol && UNKNOWN_SERVICE_NAME_PROTOCOLS.has(args.connectorProtocol)) {
|
|
84
|
+
// Loud and always-on (not gated behind a debug flag): silent wrong-name
|
|
85
|
+
// polling is exactly what caused the 2026-09-01 trace_timeout incident
|
|
86
|
+
// to go unnoticed for as long as it did. Surfacing this at resolve time
|
|
87
|
+
// (every poll attempt, not just once) means it shows up immediately in
|
|
88
|
+
// server logs for anyone running useTraces:true against a REST/
|
|
89
|
+
// openai-compatible/langgraph/strands agent without traceServiceName set.
|
|
90
|
+
console.warn(`[judgeAgentsHints] Agent${args.agentKey ? ` "${args.agentKey}"` : ''} (connectorProtocol="${args.connectorProtocol}") has no traceServiceName configured, and this protocol's service.name isn't fixed/known to agent-health — skipping Strategy C (service.name + time-window) trace correlation rather than guessing a name that would never match. Set traceServiceName in the agent config to the exact OTel resource service.name the agent's own OTel SDK emits, or trace-mode judging (useTraces:true) will rely on Strategy A/B/D only and may time out if those aren't available either.`);
|
|
91
|
+
return undefined;
|
|
92
|
+
}
|
|
44
93
|
if (args.connectorProtocol)
|
|
45
94
|
return `${args.connectorProtocol}-agent`;
|
|
46
95
|
if (args.agentKey)
|
|
@@ -86,4 +135,96 @@ export function buildJudgeAgentsHints(report, agentTraceServiceName) {
|
|
|
86
135
|
...(report.sessionId ? { sessionId: report.sessionId } : {}),
|
|
87
136
|
}];
|
|
88
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* Resolve the id forwarded as `runId` to `/api/judge` (provider `agent`).
|
|
140
|
+
*
|
|
141
|
+
* The route hard-requires a truthy `runId` ("runId is required for the agent
|
|
142
|
+
* (trace) judge provider — its trace tools scope to it") because that's the
|
|
143
|
+
* ONLY thing the trace tools historically scoped on (Strategy B). But REST
|
|
144
|
+
* connectors never populate `report.runId` (`RESTConnector.execute()` returns
|
|
145
|
+
* `data.runId || data.id || null`, and agent response bodies here carry
|
|
146
|
+
* neither) — so any REST-connector agent using the `agent-trace-judge` model
|
|
147
|
+
* 400s before the judge ever runs, EVEN when Strategy C (`agents` hints,
|
|
148
|
+
* service.name + time-window) already has enough to find the real spans
|
|
149
|
+
* (root-caused via a live smoke test 2026-09-01:
|
|
150
|
+
* `example-rest-agent-variant` found its spans on poll attempt
|
|
151
|
+
* 1 once `traceServiceName` was set, then still 400'd on this exact gate).
|
|
152
|
+
*
|
|
153
|
+
* Fallback is `report.traceId` ONLY (the eval's own OTel `test_case` span) —
|
|
154
|
+
* deliberately NOT `report.id` (the storage doc id), and NOT `undefined`.
|
|
155
|
+
* Two different downstream consumers read this value with different safety
|
|
156
|
+
* properties:
|
|
157
|
+
* - `/api/traces` (`query_spans`): `traceJudgeTools.ts` sends it as
|
|
158
|
+
* `runIds:[runId]`, UNIONED (bool.should) with the `agents` Strategy-C
|
|
159
|
+
* hints, matched against `attributes.agent_health.run.id` /
|
|
160
|
+
* `attributes.gen_ai.conversation.id`. A value that matches no span is a
|
|
161
|
+
* harmless no-op contribution to that union — safe for ANY truthy
|
|
162
|
+
* string, including `report.id`.
|
|
163
|
+
* - `/api/logs` (`query_logs`): `fetchLogs()` (server/services/logsService.ts)
|
|
164
|
+
* treats a present `runId` as the ONLY filter — `match: { message: runId
|
|
165
|
+
* }` with NO time-range bound at all ("searching by runId, we want to
|
|
166
|
+
* find logs regardless of age"). `match` is analyzed: a hyphenated id
|
|
167
|
+
* like a `report.id` (e.g. `run-1788232186357-pxdnz1a4k`) tokenizes into
|
|
168
|
+
* `run` / `1788232186357` / `pxdnz1a4k` and would OR-match any log
|
|
169
|
+
* containing the extremely common word "run" anywhere in the cluster,
|
|
170
|
+
* unbounded by time — exactly the noise risk this codebase's Strategy-C
|
|
171
|
+
* docs warn about, but worse (no window). A 32-hex-char OTel `traceId`
|
|
172
|
+
* has no word boundaries for the analyzer to split on, so it behaves as
|
|
173
|
+
* one high-entropy token — realistically only ever matches a log line
|
|
174
|
+
* that legitimately contains this exact trace id.
|
|
175
|
+
*
|
|
176
|
+
* So `report.id` is NOT an acceptable fallback despite being always present:
|
|
177
|
+
* it is safe for `/api/traces` but unsafe for `/api/logs`. When `traceId` is
|
|
178
|
+
* ALSO absent (e.g. eval telemetry disabled), returning `undefined` and
|
|
179
|
+
* letting the route's original 400 stand is the correct fail-closed
|
|
180
|
+
* behavior — not a silent degrade into unscoped log search.
|
|
181
|
+
*
|
|
182
|
+
* The route's defense-in-depth check (`trajectoryRunIds.has(runId)`) only
|
|
183
|
+
* activates when trajectory steps carry a `.runId` field (SDK-derived
|
|
184
|
+
* trajectories); classic REST/subprocess trajectory steps never do, so this
|
|
185
|
+
* fallback can't trip that 403 either way.
|
|
186
|
+
*/
|
|
187
|
+
export function resolveJudgeRunId(report) {
|
|
188
|
+
return report.runId || report.traceId || undefined;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Does this `/api/judge` (provider `agent`) request carry ANY correlation
|
|
192
|
+
* handle its trace-query tools can scope to?
|
|
193
|
+
*
|
|
194
|
+
* True when EITHER:
|
|
195
|
+
* - `runId` is truthy — Strategy B. By the time a well-behaved caller
|
|
196
|
+
* reaches the route this is often already {@link resolveJudgeRunId}'s
|
|
197
|
+
* `traceId` fallback rather than a native run id; the two are
|
|
198
|
+
* indistinguishable (and equally valid) from here on, so this check
|
|
199
|
+
* doesn't need to know which one it is.
|
|
200
|
+
* - at least one entry in `agents` (Strategy C/D hints from
|
|
201
|
+
* {@link buildJudgeAgentsHints}) carries a `serviceName` or `sessionId`.
|
|
202
|
+
*
|
|
203
|
+
* This is the fix for the bug `resolveJudgeRunId` alone didn't cover: the
|
|
204
|
+
* two SYNCHRONOUS (non-`useTraces`) judge call sites in
|
|
205
|
+
* `services/evaluation/index.ts` (`runEvaluationWithConnector`'s "STANDARD
|
|
206
|
+
* MODE" branch, used by every REST-connector agent that picks the
|
|
207
|
+
* `agent-trace-judge` model WITHOUT enabling trace-mode polling) already
|
|
208
|
+
* forward `agents` hints (`buildJudgeAgentsHints(...)`) — they just never
|
|
209
|
+
* had a `runId` to forward, because the connector never minted one and
|
|
210
|
+
* `report.traceId` isn't stamped yet at that point in the flow (that
|
|
211
|
+
* stamping happens later, in `evaluationRunner.ts`, only on the trace-mode
|
|
212
|
+
* branch). Pre-fix, `POST /api/judge`'s `if (!runId) return 400` rejected
|
|
213
|
+
* these requests unconditionally, even though the hints it had received in
|
|
214
|
+
* the SAME request body were already sufficient for the trace tools to
|
|
215
|
+
* find real spans — the hints mechanism existed (#264) but the gate fired
|
|
216
|
+
* first and never looked at it.
|
|
217
|
+
*
|
|
218
|
+
* Used by the route's `agent` provider gate (replacing the old
|
|
219
|
+
* `if (!runId)` check) and by {@link createTraceJudgeExtension}
|
|
220
|
+
* (`server/services/traceJudgeTools.ts`) to decide whether its tools are
|
|
221
|
+
* enabled at all — the gate and the tools must agree, or the route accepts
|
|
222
|
+
* a request whose tools then silently disable themselves and the judge
|
|
223
|
+
* degrades to trajectory-only reasoning without anyone being told.
|
|
224
|
+
*/
|
|
225
|
+
export function hasTraceCorrelation(runId, agents) {
|
|
226
|
+
if (runId)
|
|
227
|
+
return true;
|
|
228
|
+
return Array.isArray(agents) && agents.some((a) => !!a && (!!a.serviceName || !!a.sessionId));
|
|
229
|
+
}
|
|
89
230
|
//# sourceMappingURL=judgeAgentsHints.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"judgeAgentsHints.js","sourceRoot":"","sources":["../../../../services/traces/judgeAgentsHints.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA0BH;;;;;;GAMG;AACH,MAAM,wBAAwB,GAA2B;IACvD,aAAa,EAAE,mBAAmB;IAClC,MAAM,EAAE,YAAY;IACpB,IAAI,EAAE,UAAU;IAChB,gBAAgB,EAAE,uBAAuB;IACzC,YAAY,EAAE,kBAAkB;CACjC,CAAC;AAEF,6EAA6E;AAC7E,MAAM,QAAQ,GAAG,MAAM,CAAC;AAExB;;;;;GAKG;AACH,MAAM,oBAAoB,GAAG,EAAE,GAAG,MAAM,CAAC;AAczC
|
|
1
|
+
{"version":3,"file":"judgeAgentsHints.js","sourceRoot":"","sources":["../../../../services/traces/judgeAgentsHints.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messageExtraction.d.ts","sourceRoot":"","sources":["../../../../services/traces/messageExtraction.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEpD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,IAAI,EAAE,EACb,WAAW,CAAC,EAAE,MAAM,GACnB,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"messageExtraction.d.ts","sourceRoot":"","sources":["../../../../services/traces/messageExtraction.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEpD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,IAAI,EAAE,EACb,WAAW,CAAC,EAAE,MAAM,GACnB,mBAAmB,EAAE,CA4BvB"}
|
|
@@ -11,15 +11,20 @@
|
|
|
11
11
|
export function extractMessagesFromSpans(spans, serviceName) {
|
|
12
12
|
if (!spans || spans.length === 0)
|
|
13
13
|
return [];
|
|
14
|
-
const isClaudeCode = serviceName
|
|
15
|
-
spans.some(s => s.attributes?.['service.name']
|
|
14
|
+
const isClaudeCode = serviceName?.startsWith('claude-code') ||
|
|
15
|
+
spans.some(s => String(s.attributes?.['service.name'] ?? '').startsWith('claude-code')) ||
|
|
16
|
+
spans.some(s => s.name?.startsWith('claude_code.'));
|
|
16
17
|
const sorted = [...spans]
|
|
17
18
|
.filter(s => s.startTime && !isNaN(new Date(s.startTime).getTime()))
|
|
18
19
|
.sort((a, b) => new Date(a.startTime).getTime() - new Date(b.startTime).getTime());
|
|
19
20
|
const messages = [];
|
|
21
|
+
// tool_use_ids that already produced a tool_result message from a `tool`
|
|
22
|
+
// span's own `tool.output` event, so the sibling `tool.execution` span
|
|
23
|
+
// (sorted after the call) doesn't push a duplicate result message.
|
|
24
|
+
const resultEmittedForToolUseId = new Set();
|
|
20
25
|
for (const span of sorted) {
|
|
21
26
|
if (isClaudeCode) {
|
|
22
|
-
extractClaudeCodeMessages(span, messages);
|
|
27
|
+
extractClaudeCodeMessages(span, messages, resultEmittedForToolUseId);
|
|
23
28
|
}
|
|
24
29
|
else {
|
|
25
30
|
extractGenericMessages(span, messages);
|
|
@@ -35,29 +40,41 @@ export function extractMessagesFromSpans(spans, serviceName) {
|
|
|
35
40
|
*
|
|
36
41
|
* Event names: user_prompt, api_request, tool_decision, tool_result
|
|
37
42
|
*/
|
|
38
|
-
function extractClaudeCodeMessages(span, messages) {
|
|
43
|
+
function extractClaudeCodeMessages(span, messages, resultEmittedForToolUseId) {
|
|
39
44
|
const events = span.events || [];
|
|
40
45
|
const attrs = span.attributes || {};
|
|
41
46
|
const spanName = span.name?.toLowerCase() || '';
|
|
42
|
-
// User prompt
|
|
47
|
+
// User prompt from interaction span attribute (Claude Code stores it directly)
|
|
48
|
+
if (spanName.includes('interaction') && attrs['user_prompt'] && attrs['user_prompt'] !== '<REDACTED>') {
|
|
49
|
+
messages.push({
|
|
50
|
+
id: `${span.spanId}-user-prompt`,
|
|
51
|
+
timestamp: span.startTime,
|
|
52
|
+
role: 'user',
|
|
53
|
+
content: String(attrs['user_prompt']),
|
|
54
|
+
metadata: { spanId: span.spanId, spanName: span.name },
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
// User prompt events on interaction spans (legacy path)
|
|
43
58
|
for (const event of events) {
|
|
44
59
|
if (event.name === 'user_prompt') {
|
|
45
60
|
const content = event.attributes?.['user.prompt'] ||
|
|
46
61
|
event.attributes?.['prompt'] ||
|
|
47
62
|
event.attributes?.['content'] || '';
|
|
48
|
-
messages.
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
63
|
+
if (content && !messages.some(m => m.id === `${span.spanId}-user-prompt`)) {
|
|
64
|
+
messages.push({
|
|
65
|
+
id: `${span.spanId}-user-prompt-ev`,
|
|
66
|
+
timestamp: event.time || span.startTime,
|
|
67
|
+
role: 'user',
|
|
68
|
+
content: content || '[User prompt — content not captured. Set OTEL_LOG_USER_PROMPTS=1]',
|
|
69
|
+
metadata: { spanId: span.spanId, spanName: span.name },
|
|
70
|
+
});
|
|
71
|
+
}
|
|
55
72
|
}
|
|
56
73
|
}
|
|
57
74
|
// Tool decision / tool call spans
|
|
58
|
-
if (spanName.includes('tool') && !spanName.includes('execution')) {
|
|
75
|
+
if (spanName.includes('tool') && !spanName.includes('execution') && !spanName.includes('blocked')) {
|
|
59
76
|
const toolName = attrs['tool_name'] || attrs['gen_ai.tool.name'] || attrs['tool.name'] || span.name;
|
|
60
|
-
const toolInput = attrs['tool_input'] || attrs['gen_ai.tool.input'] || '';
|
|
77
|
+
const toolInput = attrs['tool_input'] || attrs['gen_ai.tool.input'] || attrs['full_command'] || '';
|
|
61
78
|
// Check for tool_decision events
|
|
62
79
|
const toolDecisionEvent = events.find(e => e.name === 'tool_decision');
|
|
63
80
|
const input = toolDecisionEvent?.attributes?.['input'] ||
|
|
@@ -77,8 +94,36 @@ function extractClaudeCodeMessages(span, messages) {
|
|
|
77
94
|
},
|
|
78
95
|
});
|
|
79
96
|
}
|
|
97
|
+
// tool.output event on the tool span (Claude Code emits output here).
|
|
98
|
+
// Dedup is symmetric with the tool.execution branch below: whichever one
|
|
99
|
+
// is processed first (normally this one, but a sibling tool.execution
|
|
100
|
+
// span could sort first under clock skew) marks the tool_use_id, and the
|
|
101
|
+
// other skips — so a tool call with both result shapes present never
|
|
102
|
+
// produces two tool_result messages regardless of span order.
|
|
103
|
+
const toolOutputEvent = events.find(e => e.name === 'tool.output');
|
|
104
|
+
if (toolOutputEvent) {
|
|
105
|
+
const output = toolOutputEvent.attributes?.['output'] ||
|
|
106
|
+
toolOutputEvent.attributes?.['result'] || '';
|
|
107
|
+
const toolUseId = attrs['tool_use_id'] || attrs['gen_ai.tool.call.id'];
|
|
108
|
+
const alreadyEmitted = toolUseId != null && resultEmittedForToolUseId.has(String(toolUseId));
|
|
109
|
+
if (output && !alreadyEmitted) {
|
|
110
|
+
if (toolUseId)
|
|
111
|
+
resultEmittedForToolUseId.add(String(toolUseId));
|
|
112
|
+
messages.push({
|
|
113
|
+
id: `${span.spanId}-tool-output-ev`,
|
|
114
|
+
timestamp: toolOutputEvent.time || span.endTime,
|
|
115
|
+
role: 'tool_result',
|
|
116
|
+
content: typeof output === 'object' ? JSON.stringify(output, null, 2) : String(output),
|
|
117
|
+
metadata: {
|
|
118
|
+
spanId: span.spanId,
|
|
119
|
+
spanName: span.name,
|
|
120
|
+
toolName: String(toolName),
|
|
121
|
+
},
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
}
|
|
80
125
|
}
|
|
81
|
-
// Tool result events
|
|
126
|
+
// Tool result events (legacy path)
|
|
82
127
|
for (const event of events) {
|
|
83
128
|
if (event.name === 'tool_result') {
|
|
84
129
|
const content = event.attributes?.['result'] ||
|
|
@@ -99,8 +144,12 @@ function extractClaudeCodeMessages(span, messages) {
|
|
|
99
144
|
}
|
|
100
145
|
// Tool result from tool.execution span attributes (fallback)
|
|
101
146
|
if (spanName.includes('tool.execution') || spanName.includes('tool_execution')) {
|
|
147
|
+
const execToolUseId = attrs['tool_use_id'] || attrs['gen_ai.tool.call.id'];
|
|
148
|
+
const alreadyEmitted = execToolUseId != null && resultEmittedForToolUseId.has(String(execToolUseId));
|
|
102
149
|
const output = attrs['gen_ai.tool.output'] || attrs['tool.output'] || attrs['output'];
|
|
103
|
-
if (output && !events.some(e => e.name === 'tool_result')) {
|
|
150
|
+
if (output && !alreadyEmitted && !events.some(e => e.name === 'tool_result')) {
|
|
151
|
+
if (execToolUseId != null)
|
|
152
|
+
resultEmittedForToolUseId.add(String(execToolUseId));
|
|
104
153
|
messages.push({
|
|
105
154
|
id: `${span.spanId}-tool-output`,
|
|
106
155
|
timestamp: span.endTime,
|
|
@@ -187,25 +236,38 @@ function extractGenericMessages(span, messages) {
|
|
|
187
236
|
});
|
|
188
237
|
}
|
|
189
238
|
}
|
|
190
|
-
// Tool spans → tool_call + tool_result
|
|
239
|
+
// Tool spans → tool_call + tool_result.
|
|
240
|
+
// OTel GenAI conveys tool arguments/results three ways (issue #319/#320):
|
|
241
|
+
// spec attributes (gen_ai.tool.call.arguments/.result), span events
|
|
242
|
+
// (gen_ai.tool.message / gen_ai.choice — what Strands emits), and the
|
|
243
|
+
// legacy non-spec attribute names kept as vendor-compat fallbacks.
|
|
191
244
|
const toolName = attrs['gen_ai.tool.name'] || attrs['tool.name'];
|
|
192
245
|
if (toolName) {
|
|
193
|
-
const
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
246
|
+
const toolMessageEvent = events.find(e => e.name === 'gen_ai.tool.message');
|
|
247
|
+
const toolChoiceEvent = events.find(e => e.name === 'gen_ai.choice');
|
|
248
|
+
const toolInput = attrs['gen_ai.tool.call.arguments'] ||
|
|
249
|
+
toolMessageEvent?.attributes?.['content'] ||
|
|
250
|
+
attrs['gen_ai.tool.input'] || attrs['input'];
|
|
251
|
+
// Emit the tool_call even when arguments weren't captured — the tool WAS
|
|
252
|
+
// invoked, and the judge needs to see that (issue #320 root cause 2).
|
|
253
|
+
messages.push({
|
|
254
|
+
id: `${span.spanId}-tool-call`,
|
|
255
|
+
timestamp: span.startTime,
|
|
256
|
+
role: 'tool_call',
|
|
257
|
+
content: toolInput
|
|
258
|
+
? (typeof toolInput === 'object' ? JSON.stringify(toolInput, null, 2) : String(toolInput))
|
|
259
|
+
: '',
|
|
260
|
+
metadata: {
|
|
261
|
+
spanId: span.spanId,
|
|
262
|
+
spanName: span.name,
|
|
263
|
+
toolName: String(toolName),
|
|
264
|
+
durationMs: span.duration || (new Date(span.endTime).getTime() - new Date(span.startTime).getTime()),
|
|
265
|
+
},
|
|
266
|
+
});
|
|
267
|
+
const toolOutput = attrs['gen_ai.tool.call.result'] ||
|
|
268
|
+
toolChoiceEvent?.attributes?.['message'] ||
|
|
269
|
+
toolChoiceEvent?.attributes?.['content'] ||
|
|
270
|
+
attrs['gen_ai.tool.output'] || attrs['output'];
|
|
209
271
|
if (toolOutput) {
|
|
210
272
|
messages.push({
|
|
211
273
|
id: `${span.spanId}-tool-result`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messageExtraction.js","sourceRoot":"","sources":["../../../../services/traces/messageExtraction.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"messageExtraction.js","sourceRoot":"","sources":["../../../../services/traces/messageExtraction.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spansToTrajectory.d.ts","sourceRoot":"","sources":["../../../../services/traces/spansToTrajectory.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,IAAI,EAAE,cAAc,EAAkB,MAAM,SAAS,CAAC;AAG/D,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;
|
|
1
|
+
{"version":3,"file":"spansToTrajectory.d.ts","sourceRoot":"","sources":["../../../../services/traces/spansToTrajectory.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,IAAI,EAAE,cAAc,EAAkB,MAAM,SAAS,CAAC;AAG/D,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AA2XD,qEAAqE;AACrE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,cAAc,EAAE,CAGvF;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,aAAa,EAAE,CAGvF"}
|