@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.
Files changed (230) hide show
  1. package/README.md +1 -0
  2. package/cli/dist/index.js +2325 -961
  3. package/dist/assets/index-D-Np_l_T.js +246 -0
  4. package/dist/assets/index-vZt9QZKf.css +1 -0
  5. package/dist/index.html +2 -2
  6. package/docs/CLI.md +183 -3
  7. package/docs/CONFIGURATION.md +1 -1
  8. package/docs/CONNECTORS.md +1 -1
  9. package/docs/INSTRUMENT_WITH_OTEL.md +7 -0
  10. package/docs/SDK.md +178 -5
  11. package/docs/STORAGE_INDEX_FIELD_LIMITS.md +216 -0
  12. package/docs/skills/AGENT_HEALTH.md +55 -1
  13. package/docs/skills/add-connector/SKILL.md +5 -1
  14. package/examples/eval-files/demo.eval.js +1 -1
  15. package/examples/eval-files/ops-rca-classification.eval.js +71 -0
  16. package/examples/eval-files/ops-rca-evaluator.json +15 -0
  17. package/examples/eval-files/sdk-demo.eval.js +72 -0
  18. package/examples/eval-files/sdk-describe-demo.eval.js +50 -0
  19. package/examples/eval-files/sdk-hooks-demo.eval.js +1 -1
  20. package/lib/dist/lib/agentTrends.d.ts +210 -0
  21. package/lib/dist/lib/agentTrends.d.ts.map +1 -0
  22. package/lib/dist/lib/agentTrends.js +360 -0
  23. package/lib/dist/lib/agentTrends.js.map +1 -0
  24. package/lib/dist/lib/bedrockCompat.d.ts +27 -0
  25. package/lib/dist/lib/bedrockCompat.d.ts.map +1 -0
  26. package/lib/dist/lib/bedrockCompat.js +83 -0
  27. package/lib/dist/lib/bedrockCompat.js.map +1 -0
  28. package/lib/dist/lib/benchmarkCaseReview.d.ts +114 -0
  29. package/lib/dist/lib/benchmarkCaseReview.d.ts.map +1 -0
  30. package/lib/dist/lib/benchmarkCaseReview.js +177 -0
  31. package/lib/dist/lib/benchmarkCaseReview.js.map +1 -0
  32. package/lib/dist/lib/benchmarkImage.d.ts +52 -0
  33. package/lib/dist/lib/benchmarkImage.d.ts.map +1 -0
  34. package/lib/dist/lib/benchmarkImage.js +113 -0
  35. package/lib/dist/lib/benchmarkImage.js.map +1 -0
  36. package/lib/dist/lib/benchmarkRunsTable.d.ts +109 -0
  37. package/lib/dist/lib/benchmarkRunsTable.d.ts.map +1 -0
  38. package/lib/dist/lib/benchmarkRunsTable.js +212 -0
  39. package/lib/dist/lib/benchmarkRunsTable.js.map +1 -0
  40. package/lib/dist/lib/benchmarkVersionUtils.d.ts +13 -0
  41. package/lib/dist/lib/benchmarkVersionUtils.d.ts.map +1 -1
  42. package/lib/dist/lib/benchmarkVersionUtils.js +21 -0
  43. package/lib/dist/lib/benchmarkVersionUtils.js.map +1 -1
  44. package/lib/dist/lib/chunkedFetch.d.ts +18 -0
  45. package/lib/dist/lib/chunkedFetch.d.ts.map +1 -0
  46. package/lib/dist/lib/chunkedFetch.js +40 -0
  47. package/lib/dist/lib/chunkedFetch.js.map +1 -0
  48. package/lib/dist/lib/comparisonInsights.d.ts +151 -0
  49. package/lib/dist/lib/comparisonInsights.d.ts.map +1 -0
  50. package/lib/dist/lib/comparisonInsights.js +270 -0
  51. package/lib/dist/lib/comparisonInsights.js.map +1 -0
  52. package/lib/dist/lib/config/loader.d.ts.map +1 -1
  53. package/lib/dist/lib/config/loader.js +16 -1
  54. package/lib/dist/lib/config/loader.js.map +1 -1
  55. package/lib/dist/lib/config/types.d.ts +14 -0
  56. package/lib/dist/lib/config/types.d.ts.map +1 -1
  57. package/lib/dist/lib/constants.d.ts +11 -0
  58. package/lib/dist/lib/constants.d.ts.map +1 -1
  59. package/lib/dist/lib/constants.js +10 -1
  60. package/lib/dist/lib/constants.js.map +1 -1
  61. package/lib/dist/lib/contextFormat.d.ts +26 -0
  62. package/lib/dist/lib/contextFormat.d.ts.map +1 -0
  63. package/lib/dist/lib/contextFormat.js +28 -0
  64. package/lib/dist/lib/contextFormat.js.map +1 -0
  65. package/lib/dist/lib/dashboardMetrics.d.ts +11 -2
  66. package/lib/dist/lib/dashboardMetrics.d.ts.map +1 -1
  67. package/lib/dist/lib/dashboardMetrics.js +38 -3
  68. package/lib/dist/lib/dashboardMetrics.js.map +1 -1
  69. package/lib/dist/lib/envCompat.d.ts.map +1 -1
  70. package/lib/dist/lib/envCompat.js +14 -5
  71. package/lib/dist/lib/envCompat.js.map +1 -1
  72. package/lib/dist/lib/evaluationRerun.d.ts +102 -0
  73. package/lib/dist/lib/evaluationRerun.d.ts.map +1 -0
  74. package/lib/dist/lib/evaluationRerun.js +134 -0
  75. package/lib/dist/lib/evaluationRerun.js.map +1 -0
  76. package/lib/dist/lib/judgeFailureSummary.d.ts +66 -0
  77. package/lib/dist/lib/judgeFailureSummary.d.ts.map +1 -0
  78. package/lib/dist/lib/judgeFailureSummary.js +68 -0
  79. package/lib/dist/lib/judgeFailureSummary.js.map +1 -0
  80. package/lib/dist/lib/judgeStrategies.d.ts +108 -0
  81. package/lib/dist/lib/judgeStrategies.d.ts.map +1 -0
  82. package/lib/dist/lib/judgeStrategies.js +135 -0
  83. package/lib/dist/lib/judgeStrategies.js.map +1 -0
  84. package/lib/dist/lib/matchers/expect.d.ts +21 -1
  85. package/lib/dist/lib/matchers/expect.d.ts.map +1 -1
  86. package/lib/dist/lib/matchers/expect.js +51 -0
  87. package/lib/dist/lib/matchers/expect.js.map +1 -1
  88. package/lib/dist/lib/matchers/judgeAccessor.d.ts +4 -0
  89. package/lib/dist/lib/matchers/judgeAccessor.d.ts.map +1 -1
  90. package/lib/dist/lib/matchers/judgeAccessor.js +13 -2
  91. package/lib/dist/lib/matchers/judgeAccessor.js.map +1 -1
  92. package/lib/dist/lib/matchers/judgeReasoningParse.d.ts +49 -0
  93. package/lib/dist/lib/matchers/judgeReasoningParse.d.ts.map +1 -0
  94. package/lib/dist/lib/matchers/judgeReasoningParse.js +128 -0
  95. package/lib/dist/lib/matchers/judgeReasoningParse.js.map +1 -0
  96. package/lib/dist/lib/matchers/traces.d.ts +17 -2
  97. package/lib/dist/lib/matchers/traces.d.ts.map +1 -1
  98. package/lib/dist/lib/matchers/traces.js +136 -16
  99. package/lib/dist/lib/matchers/traces.js.map +1 -1
  100. package/lib/dist/lib/matchers/tracesPricing.d.ts +38 -0
  101. package/lib/dist/lib/matchers/tracesPricing.d.ts.map +1 -0
  102. package/lib/dist/lib/matchers/tracesPricing.js +64 -0
  103. package/lib/dist/lib/matchers/tracesPricing.js.map +1 -0
  104. package/lib/dist/lib/matchers/types.d.ts +25 -0
  105. package/lib/dist/lib/matchers/types.d.ts.map +1 -1
  106. package/lib/dist/lib/resolveCanonicalRun.d.ts +23 -0
  107. package/lib/dist/lib/resolveCanonicalRun.d.ts.map +1 -0
  108. package/lib/dist/lib/resolveCanonicalRun.js +26 -0
  109. package/lib/dist/lib/resolveCanonicalRun.js.map +1 -0
  110. package/lib/dist/lib/runActions.d.ts +120 -0
  111. package/lib/dist/lib/runActions.d.ts.map +1 -0
  112. package/lib/dist/lib/runActions.js +130 -0
  113. package/lib/dist/lib/runActions.js.map +1 -0
  114. package/lib/dist/lib/runInsights.d.ts +86 -0
  115. package/lib/dist/lib/runInsights.d.ts.map +1 -0
  116. package/lib/dist/lib/runInsights.js +185 -0
  117. package/lib/dist/lib/runInsights.js.map +1 -0
  118. package/lib/dist/lib/runName.d.ts +29 -0
  119. package/lib/dist/lib/runName.d.ts.map +1 -0
  120. package/lib/dist/lib/runName.js +38 -0
  121. package/lib/dist/lib/runName.js.map +1 -0
  122. package/lib/dist/lib/runReportPath.d.ts +16 -0
  123. package/lib/dist/lib/runReportPath.d.ts.map +1 -0
  124. package/lib/dist/lib/runReportPath.js +22 -0
  125. package/lib/dist/lib/runReportPath.js.map +1 -0
  126. package/lib/dist/lib/runSort.d.ts +27 -0
  127. package/lib/dist/lib/runSort.d.ts.map +1 -0
  128. package/lib/dist/lib/runSort.js +31 -0
  129. package/lib/dist/lib/runSort.js.map +1 -0
  130. package/lib/dist/lib/runStats.d.ts +109 -5
  131. package/lib/dist/lib/runStats.d.ts.map +1 -1
  132. package/lib/dist/lib/runStats.js +193 -10
  133. package/lib/dist/lib/runStats.js.map +1 -1
  134. package/lib/dist/lib/testCases/define.d.ts.map +1 -1
  135. package/lib/dist/lib/testCases/define.js +93 -46
  136. package/lib/dist/lib/testCases/define.js.map +1 -1
  137. package/lib/dist/lib/testCases/judge.d.ts.map +1 -1
  138. package/lib/dist/lib/testCases/judge.js +22 -4
  139. package/lib/dist/lib/testCases/judge.js.map +1 -1
  140. package/lib/dist/lib/testCases/loader.d.ts +35 -1
  141. package/lib/dist/lib/testCases/loader.d.ts.map +1 -1
  142. package/lib/dist/lib/testCases/loader.js +278 -31
  143. package/lib/dist/lib/testCases/loader.js.map +1 -1
  144. package/lib/dist/lib/trajectoryStepDisplay.d.ts +25 -0
  145. package/lib/dist/lib/trajectoryStepDisplay.d.ts.map +1 -0
  146. package/lib/dist/lib/trajectoryStepDisplay.js +42 -0
  147. package/lib/dist/lib/trajectoryStepDisplay.js.map +1 -0
  148. package/lib/dist/lib/utils.d.ts +34 -0
  149. package/lib/dist/lib/utils.d.ts.map +1 -1
  150. package/lib/dist/lib/utils.js +49 -0
  151. package/lib/dist/lib/utils.js.map +1 -1
  152. package/lib/dist/services/connectors/claude-code/ClaudeCodeConnector.d.ts +68 -22
  153. package/lib/dist/services/connectors/claude-code/ClaudeCodeConnector.d.ts.map +1 -1
  154. package/lib/dist/services/connectors/claude-code/ClaudeCodeConnector.js +148 -111
  155. package/lib/dist/services/connectors/claude-code/ClaudeCodeConnector.js.map +1 -1
  156. package/lib/dist/services/connectors/kiro/KiroConnector.d.ts +21 -13
  157. package/lib/dist/services/connectors/kiro/KiroConnector.d.ts.map +1 -1
  158. package/lib/dist/services/connectors/kiro/KiroConnector.js +22 -25
  159. package/lib/dist/services/connectors/kiro/KiroConnector.js.map +1 -1
  160. package/lib/dist/services/connectors/pi/PiConnector.d.ts +49 -10
  161. package/lib/dist/services/connectors/pi/PiConnector.d.ts.map +1 -1
  162. package/lib/dist/services/connectors/pi/PiConnector.js +102 -86
  163. package/lib/dist/services/connectors/pi/PiConnector.js.map +1 -1
  164. package/lib/dist/services/connectors/subprocess/SubprocessConnector.d.ts +59 -14
  165. package/lib/dist/services/connectors/subprocess/SubprocessConnector.d.ts.map +1 -1
  166. package/lib/dist/services/connectors/subprocess/SubprocessConnector.js +95 -61
  167. package/lib/dist/services/connectors/subprocess/SubprocessConnector.js.map +1 -1
  168. package/lib/dist/services/evaluation/bedrockJudge.d.ts +18 -0
  169. package/lib/dist/services/evaluation/bedrockJudge.d.ts.map +1 -1
  170. package/lib/dist/services/evaluation/bedrockJudge.js +4 -0
  171. package/lib/dist/services/evaluation/bedrockJudge.js.map +1 -1
  172. package/lib/dist/services/evaluation/index.d.ts +18 -1
  173. package/lib/dist/services/evaluation/index.d.ts.map +1 -1
  174. package/lib/dist/services/evaluation/index.js +156 -19
  175. package/lib/dist/services/evaluation/index.js.map +1 -1
  176. package/lib/dist/services/metrics.d.ts +55 -0
  177. package/lib/dist/services/metrics.d.ts.map +1 -0
  178. package/lib/dist/services/metrics.js +89 -0
  179. package/lib/dist/services/metrics.js.map +1 -0
  180. package/lib/dist/services/storage/asyncBenchmarkStorage.d.ts +1 -1
  181. package/lib/dist/services/storage/asyncBenchmarkStorage.d.ts.map +1 -1
  182. package/lib/dist/services/storage/asyncBenchmarkStorage.js +30 -3
  183. package/lib/dist/services/storage/asyncBenchmarkStorage.js.map +1 -1
  184. package/lib/dist/services/storage/asyncRunStorage.d.ts +20 -1
  185. package/lib/dist/services/storage/asyncRunStorage.d.ts.map +1 -1
  186. package/lib/dist/services/storage/asyncRunStorage.js +125 -2
  187. package/lib/dist/services/storage/asyncRunStorage.js.map +1 -1
  188. package/lib/dist/services/storage/asyncTestCaseStorage.d.ts +18 -4
  189. package/lib/dist/services/storage/asyncTestCaseStorage.d.ts.map +1 -1
  190. package/lib/dist/services/storage/asyncTestCaseStorage.js +21 -4
  191. package/lib/dist/services/storage/asyncTestCaseStorage.js.map +1 -1
  192. package/lib/dist/services/storage/opensearchClient.d.ts +47 -12
  193. package/lib/dist/services/storage/opensearchClient.d.ts.map +1 -1
  194. package/lib/dist/services/storage/opensearchClient.js +12 -5
  195. package/lib/dist/services/storage/opensearchClient.js.map +1 -1
  196. package/lib/dist/services/traces/browserRecovery.d.ts +12 -1
  197. package/lib/dist/services/traces/browserRecovery.d.ts.map +1 -1
  198. package/lib/dist/services/traces/browserRecovery.js +35 -5
  199. package/lib/dist/services/traces/browserRecovery.js.map +1 -1
  200. package/lib/dist/services/traces/index.d.ts +8 -1
  201. package/lib/dist/services/traces/index.d.ts.map +1 -1
  202. package/lib/dist/services/traces/index.js +33 -12
  203. package/lib/dist/services/traces/index.js.map +1 -1
  204. package/lib/dist/services/traces/judgeAgentsHints.d.ts +98 -3
  205. package/lib/dist/services/traces/judgeAgentsHints.d.ts.map +1 -1
  206. package/lib/dist/services/traces/judgeAgentsHints.js +144 -3
  207. package/lib/dist/services/traces/judgeAgentsHints.js.map +1 -1
  208. package/lib/dist/services/traces/messageExtraction.d.ts.map +1 -1
  209. package/lib/dist/services/traces/messageExtraction.js +95 -33
  210. package/lib/dist/services/traces/messageExtraction.js.map +1 -1
  211. package/lib/dist/services/traces/spansToTrajectory.d.ts.map +1 -1
  212. package/lib/dist/services/traces/spansToTrajectory.js +51 -13
  213. package/lib/dist/services/traces/spansToTrajectory.js.map +1 -1
  214. package/lib/dist/services/traces/tracePoller.d.ts +27 -3
  215. package/lib/dist/services/traces/tracePoller.d.ts.map +1 -1
  216. package/lib/dist/services/traces/tracePoller.js +196 -33
  217. package/lib/dist/services/traces/tracePoller.js.map +1 -1
  218. package/lib/dist/services/traces/trajectoryMerge.d.ts +79 -0
  219. package/lib/dist/services/traces/trajectoryMerge.d.ts.map +1 -0
  220. package/lib/dist/services/traces/trajectoryMerge.js +109 -0
  221. package/lib/dist/services/traces/trajectoryMerge.js.map +1 -0
  222. package/lib/dist/types/index.d.ts +250 -3
  223. package/lib/dist/types/index.d.ts.map +1 -1
  224. package/lib/dist/types/index.js +24 -0
  225. package/lib/dist/types/index.js.map +1 -1
  226. package/package.json +8 -5
  227. package/server/dist/app.js +5490 -1557
  228. package/server/dist/index.js +5490 -1557
  229. package/dist/assets/index-CCQRDlO0.js +0 -243
  230. package/dist/assets/index-CNHQVbcj.css +0 -1
@@ -3,7 +3,7 @@
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
5
  import { ToolCallStatus } from '../../../types/index.js';
6
- import { SubprocessConnector } from '../../../services/connectors/subprocess/SubprocessConnector.js';
6
+ import { SubprocessConnector, } from '../../../services/connectors/subprocess/SubprocessConnector.js';
7
7
  /**
8
8
  * Default Pi configuration
9
9
  */
@@ -25,9 +25,9 @@ export class PiConnector extends SubprocessConnector {
25
25
  this.type = 'pi';
26
26
  this.name = 'Pi (pi.dev)';
27
27
  this.traceContext = { propagateEnv: true, serviceName: 'pi-agent' };
28
- this.piOutputBuffer = '';
29
- this.piThinkingBuffer = '';
30
- this.piTextBuffer = '';
28
+ }
29
+ createExecutionState() {
30
+ return { ...super.createExecutionState(), piOutputBuffer: '', piThinkingBuffer: '', piTextBuffer: '' };
31
31
  }
32
32
  /**
33
33
  * Build prompt for Pi
@@ -52,18 +52,18 @@ export class PiConnector extends SubprocessConnector {
52
52
  * Parse Pi streaming output (JSON format)
53
53
  * Pi's --mode json produces NDJSON lines
54
54
  */
55
- parseStreamingOutput(chunk, trajectory, onProgress) {
56
- this.piOutputBuffer += chunk;
55
+ parseStreamingOutput(chunk, trajectory, onProgress, state) {
56
+ state.piOutputBuffer += chunk;
57
57
  // Parse complete JSON lines (NDJSON format)
58
- const lines = this.piOutputBuffer.split('\n');
59
- this.piOutputBuffer = lines.pop() || ''; // Keep incomplete line
58
+ const lines = state.piOutputBuffer.split('\n');
59
+ state.piOutputBuffer = lines.pop() || ''; // Keep incomplete line
60
60
  for (const line of lines) {
61
61
  const trimmed = line.trim();
62
62
  if (!trimmed)
63
63
  continue;
64
64
  try {
65
65
  const event = JSON.parse(trimmed);
66
- const steps = this.parsePiEvent(event);
66
+ const steps = this.parsePiEvent(event, state);
67
67
  for (const step of steps) {
68
68
  trajectory.push(step);
69
69
  onProgress?.(step);
@@ -88,7 +88,7 @@ export class PiConnector extends SubprocessConnector {
88
88
  * - message_start / message_end — full message with content blocks
89
89
  * - message_update — streaming deltas with assistantMessageEvent
90
90
  */
91
- parsePiEvent(event) {
91
+ parsePiEvent(event, state) {
92
92
  const steps = [];
93
93
  // message_end contains the full final message with all content blocks
94
94
  if (event.type === 'message_end' && event.message?.role === 'assistant') {
@@ -114,10 +114,10 @@ export class PiConnector extends SubprocessConnector {
114
114
  // Streaming deltas — accumulate into buffers
115
115
  const assistantEvent = event.assistantMessageEvent;
116
116
  if (assistantEvent?.type === 'text_delta' && assistantEvent.delta) {
117
- this.piTextBuffer += assistantEvent.delta;
117
+ state.piTextBuffer += assistantEvent.delta;
118
118
  }
119
119
  else if (assistantEvent?.type === 'thinking_delta' && assistantEvent.delta) {
120
- this.piThinkingBuffer += assistantEvent.delta;
120
+ state.piThinkingBuffer += assistantEvent.delta;
121
121
  }
122
122
  }
123
123
  else if (event.type === 'tool_result') {
@@ -126,13 +126,13 @@ export class PiConnector extends SubprocessConnector {
126
126
  }
127
127
  else if (event.type === 'agent_end') {
128
128
  // Flush any remaining buffers on agent_end
129
- if (this.piThinkingBuffer) {
130
- steps.push(this.createStep('thinking', this.piThinkingBuffer));
131
- this.piThinkingBuffer = '';
129
+ if (state.piThinkingBuffer) {
130
+ steps.push(this.createStep('thinking', state.piThinkingBuffer));
131
+ state.piThinkingBuffer = '';
132
132
  }
133
- if (this.piTextBuffer) {
134
- steps.push(this.createStep('response', this.piTextBuffer));
135
- this.piTextBuffer = '';
133
+ if (state.piTextBuffer) {
134
+ steps.push(this.createStep('response', state.piTextBuffer));
135
+ state.piTextBuffer = '';
136
136
  }
137
137
  }
138
138
  return steps;
@@ -156,99 +156,115 @@ export class PiConnector extends SubprocessConnector {
156
156
  /**
157
157
  * Flush remaining buffers when the subprocess stream ends.
158
158
  */
159
- onBeforeStreamEnd(trajectory, onProgress) {
160
- if (this.piOutputBuffer.trim()) {
159
+ onBeforeStreamEnd(trajectory, onProgress, state) {
160
+ if (state.piOutputBuffer.trim()) {
161
161
  try {
162
- const event = JSON.parse(this.piOutputBuffer.trim());
163
- const steps = this.parsePiEvent(event);
162
+ const event = JSON.parse(state.piOutputBuffer.trim());
163
+ const steps = this.parsePiEvent(event, state);
164
164
  for (const step of steps) {
165
165
  trajectory.push(step);
166
166
  onProgress?.(step);
167
167
  }
168
168
  }
169
169
  catch {
170
- const step = this.createStep('assistant', this.piOutputBuffer.trim());
170
+ const step = this.createStep('assistant', state.piOutputBuffer.trim());
171
171
  trajectory.push(step);
172
172
  onProgress?.(step);
173
173
  }
174
- this.piOutputBuffer = '';
174
+ state.piOutputBuffer = '';
175
175
  }
176
- if (this.piThinkingBuffer) {
177
- const step = this.createStep('thinking', this.piThinkingBuffer);
176
+ if (state.piThinkingBuffer) {
177
+ const step = this.createStep('thinking', state.piThinkingBuffer);
178
178
  trajectory.push(step);
179
179
  onProgress?.(step);
180
- this.piThinkingBuffer = '';
180
+ state.piThinkingBuffer = '';
181
181
  }
182
- if (this.piTextBuffer) {
183
- const step = this.createStep('response', this.piTextBuffer);
182
+ if (state.piTextBuffer) {
183
+ const step = this.createStep('response', state.piTextBuffer);
184
184
  trajectory.push(step);
185
185
  onProgress?.(step);
186
- this.piTextBuffer = '';
186
+ state.piTextBuffer = '';
187
187
  }
188
188
  }
189
189
  /**
190
- * Reset state and apply connectorConfig
190
+ * Translate `PiConnectorConfig` into the effective per-execution subprocess
191
+ * config. Pure — `this.config` is never written, so concurrent executions
192
+ * on the shared singleton cannot see each other's args / env / timeout.
191
193
  */
192
- async execute(endpoint, request, auth, onProgress, onRawEvent) {
193
- this.piOutputBuffer = '';
194
- this.piThinkingBuffer = '';
195
- this.piTextBuffer = '';
196
- // Save original config
197
- const originalArgs = this.config.args ? [...this.config.args] : [];
198
- const originalEnv = this.config.env ? structuredClone(this.config.env) : {};
199
- const originalTimeout = this.config.timeout;
200
- const originalWorkingDir = this.config.workingDir;
201
- // Apply connectorConfig
202
- const piConfig = request.connectorConfig;
203
- if (piConfig) {
204
- if (piConfig.env) {
205
- this.config.env = { ...this.config.env, ...piConfig.env };
206
- }
207
- if (piConfig.timeout !== undefined) {
208
- this.config.timeout = piConfig.timeout;
209
- }
210
- if (piConfig.workingDir) {
211
- this.config.workingDir = piConfig.workingDir;
212
- }
213
- // Build additional args from config
214
- const extraArgs = [];
215
- if (piConfig.packagePath) {
216
- // Pi uses --skill and --extension to load package components
217
- extraArgs.push('--skill', `${piConfig.packagePath}/skills/*`);
218
- extraArgs.push('--extension', `${piConfig.packagePath}/extensions/agent-health.ts`);
219
- extraArgs.push('--append-system-prompt', `${piConfig.packagePath}/prompts/agent-health.md`);
220
- }
221
- if (piConfig.model) {
222
- extraArgs.push('--model', piConfig.model);
223
- }
224
- if (piConfig.additionalArgs) {
225
- extraArgs.push(...piConfig.additionalArgs);
226
- }
227
- if (extraArgs.length > 0) {
228
- this.config.args = [...(this.config.args || []), ...extraArgs];
229
- }
194
+ resolveExecutionConfig(request) {
195
+ const piConfig = (request.connectorConfig || {});
196
+ const base = super.resolveExecutionConfig({
197
+ ...request,
198
+ connectorConfig: {
199
+ ...(piConfig.env ? { env: piConfig.env } : {}),
200
+ ...(piConfig.timeout !== undefined ? { timeout: piConfig.timeout } : {}),
201
+ ...(piConfig.workingDir ? { workingDir: piConfig.workingDir } : {}),
202
+ },
203
+ });
204
+ // Build additional args from config
205
+ const extraArgs = [];
206
+ if (piConfig.packagePath) {
207
+ // Pi uses --skill and --extension to load package components
208
+ extraArgs.push('--skill', `${piConfig.packagePath}/skills/*`);
209
+ extraArgs.push('--extension', `${piConfig.packagePath}/extensions/agent-health.ts`);
210
+ extraArgs.push('--append-system-prompt', `${piConfig.packagePath}/prompts/agent-health.md`);
230
211
  }
231
- // Pass --model flag from request if specified
232
- if (request.modelId) {
233
- this.config.args = [...(this.config.args || []), '--model', request.modelId];
234
- }
235
- // Inherit AWS credentials
236
- if (process.env.AWS_PROFILE) {
237
- this.config.env = { ...this.config.env, AWS_PROFILE: process.env.AWS_PROFILE };
212
+ if (piConfig.model) {
213
+ extraArgs.push('--model', piConfig.model);
238
214
  }
239
- if (process.env.AWS_REGION) {
240
- this.config.env = { ...this.config.env, AWS_REGION: process.env.AWS_REGION };
215
+ if (piConfig.additionalArgs) {
216
+ extraArgs.push(...piConfig.additionalArgs);
241
217
  }
242
- try {
243
- return await super.execute(endpoint, request, auth, onProgress, onRawEvent);
218
+ let args = [...(this.config.args || []), ...extraArgs];
219
+ // Pass --model flag from request if specified. request.modelId always
220
+ // wins over connectorConfig.model above — strip any --model pair the
221
+ // config block may have already pushed so the final argv carries exactly
222
+ // one --model flag instead of two.
223
+ if (request.modelId) {
224
+ args = [...this.stripModelFlag(args), '--model', request.modelId];
244
225
  }
245
- finally {
246
- // Restore config
247
- this.config.args = originalArgs;
248
- this.config.env = originalEnv;
249
- this.config.timeout = originalTimeout;
250
- this.config.workingDir = originalWorkingDir;
226
+ // Inherit AWS credentials
227
+ const env = { ...(base.env || {}) };
228
+ if (process.env.AWS_PROFILE)
229
+ env.AWS_PROFILE = process.env.AWS_PROFILE;
230
+ if (process.env.AWS_REGION)
231
+ env.AWS_REGION = process.env.AWS_REGION;
232
+ return { ...base, args, env };
233
+ }
234
+ /**
235
+ * Remove any `--model <value>` (two-token) or `--model=<value>` (single-
236
+ * token) occurrence from an argv array. Used so `request.modelId` can
237
+ * override `connectorConfig.model` without leaving a stale second
238
+ * `--model` flag in the final argv.
239
+ *
240
+ * This connector only ever generates the two-token form itself, but
241
+ * `connectorConfig.additionalArgs` is user-supplied and could plausibly
242
+ * contain the `--model=value` form, so both are handled (codex_review
243
+ * finding: a stray `--model=value` from `additionalArgs` would otherwise
244
+ * survive alongside the newly-appended two-token flag, recreating the
245
+ * duplicate-flag bug). If a bare `--model` has no following value (or is
246
+ * the last element), only the bare flag is removed — the next token is
247
+ * left alone rather than being swallowed as a "value" when it's actually
248
+ * another flag (codex_review finding: guards against corrupting unrelated
249
+ * malformed argv, e.g. `['--foo', '--model', '--bar']`).
250
+ */
251
+ stripModelFlag(args) {
252
+ const result = [];
253
+ for (let i = 0; i < args.length; i++) {
254
+ const arg = args[i];
255
+ if (arg === '--model') {
256
+ const next = args[i + 1];
257
+ if (next !== undefined && !next.startsWith('-')) {
258
+ i++; // also skip the value that follows
259
+ }
260
+ continue;
261
+ }
262
+ if (arg.startsWith('--model=')) {
263
+ continue;
264
+ }
265
+ result.push(arg);
251
266
  }
267
+ return result;
252
268
  }
253
269
  /**
254
270
  * Health check - verify pi command exists
@@ -1 +1 @@
1
- {"version":3,"file":"PiConnector.js","sourceRoot":"","sources":["../../../../../services/connectors/pi/PiConnector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PiConnector.js","sourceRoot":"","sources":["../../../../../services/connectors/pi/PiConnector.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,40 @@
1
1
  import type { TrajectoryStep } from '../../../types/index.js';
2
2
  import { BaseConnector } from '../../../services/connectors/base/BaseConnector.js';
3
3
  import type { ConnectorAuth, ConnectorRequest, ConnectorResponse, ConnectorProgressCallback, ConnectorRawEventCallback, SubprocessConfig, ConnectorProtocol } from '../../../services/connectors/types.js';
4
+ /**
5
+ * Per-invocation streaming state.
6
+ *
7
+ * The connector registry hands out a SINGLETON connector instance that every
8
+ * concurrent evaluation task shares. Any mutable field on the instance is
9
+ * therefore shared across in-flight `execute()` calls — line buffers, the
10
+ * captured session id, pending tool names… — and under `concurrency > 1`
11
+ * one run's data lands on another run's report (measured live: 11/62
12
+ * reports of a subprocess-agent benchmark carried a sibling case's
13
+ * `sessionId`, so the trace poller then judged them on the sibling's
14
+ * spans). Everything a single execution accumulates while parsing its own
15
+ * child process's stdout/stderr MUST live on this object, which is created
16
+ * per `execute()` call and threaded through every parse hook.
17
+ *
18
+ * Subclasses extend it via the `TState` generic and `createExecutionState()`.
19
+ */
20
+ export interface SubprocessExecutionState {
21
+ /** Clean stdout lines accumulated during streaming (base text parser). */
22
+ streamBuffer: string[];
23
+ }
24
+ /**
25
+ * The effective, immutable configuration for ONE `execute()` call:
26
+ * constructor defaults overlaid with the request's `connectorConfig` (and, for
27
+ * subclasses, whatever `resolveExecutionConfig()` derives from it). Resolved
28
+ * once per call and captured by that call's closures — `this.config` (the
29
+ * shared defaults) is never written during execution, so concurrent runs on
30
+ * the shared singleton cannot see each other's args/env/timeout.
31
+ */
32
+ export type ResolvedSubprocessConfig = Readonly<SubprocessConfig>;
4
33
  /**
5
34
  * Subprocess Connector for CLI tools
6
35
  * Spawns a child process and captures output
7
36
  */
8
- export declare class SubprocessConnector extends BaseConnector {
37
+ export declare class SubprocessConnector<TState extends SubprocessExecutionState = SubprocessExecutionState> extends BaseConnector {
9
38
  readonly type: ConnectorProtocol;
10
39
  readonly name: string;
11
40
  readonly supportsStreaming = true;
@@ -28,24 +57,40 @@ export declare class SubprocessConnector extends BaseConnector {
28
57
  */
29
58
  execute(endpoint: string, // For subprocess, this is the command name
30
59
  request: ConnectorRequest, auth: ConnectorAuth, onProgress?: ConnectorProgressCallback, onRawEvent?: ConnectorRawEventCallback): Promise<ConnectorResponse>;
31
- /** Buffer of clean stdout lines accumulated during streaming.
32
- * Used by onBeforeStreamEnd() to emit a consolidated `response` step. */
33
- private streamBuffer;
60
+ /**
61
+ * Create the per-invocation parse state for one `execute()` call.
62
+ * Subclasses that buffer anything while streaming (partial NDJSON lines,
63
+ * pending tool names, captured ids) override this to add their fields —
64
+ * and must NOT keep that data on the instance.
65
+ */
66
+ protected createExecutionState(): TState;
67
+ /**
68
+ * Resolve the effective config for one `execute()` call: constructor
69
+ * defaults overlaid with the request's `connectorConfig` (so any agent
70
+ * registered with `connectorType: 'subprocess'` can specify command / args /
71
+ * inputMode / outputParser / timeout / workingDir / env per agent). Pure —
72
+ * MUST NOT write to `this.config`. Subclasses override to translate their
73
+ * own `connectorConfig` shape (Claude Code flags, Pi package/model) into the
74
+ * base fields, typically by calling `super.resolveExecutionConfig()` on a
75
+ * request whose `connectorConfig` has been rewritten into base shape.
76
+ */
77
+ protected resolveExecutionConfig(request: ConnectorRequest): ResolvedSubprocessConfig;
34
78
  /**
35
79
  * Parse a stderr chunk in streaming mode. Default is a no-op.
36
80
  *
37
81
  * Override in subclasses for CLIs that carry tool-event markers on stderr.
38
82
  * Implementations should buffer partial lines (chunks rarely align with
39
- * line boundaries) and emit steps via `onProgress` AND push them onto
40
- * `trajectory` so they appear in the final response.
83
+ * line boundaries) in `state` and emit steps via `onProgress` AND push them
84
+ * onto `trajectory` so they appear in the final response.
41
85
  */
42
- protected parseStderrChunk(_chunk: string, _trajectory: TrajectoryStep[], _onProgress?: ConnectorProgressCallback): void;
86
+ protected parseStderrChunk(_chunk: string, _trajectory: TrajectoryStep[], _onProgress: ConnectorProgressCallback | undefined, _state: TState): void;
43
87
  /**
44
88
  * Subclass hook: extra protocol-specific fields to merge into the
45
- * connector result `metadata`. Default: none. Claude Code overrides this to
46
- * surface the captured `sessionId` (Strategy D trace correlation).
89
+ * connector result `metadata`, read from the per-invocation `state` (Claude
90
+ * Code surfaces its captured `sessionId` for Strategy D trace correlation).
91
+ * Default: none.
47
92
  */
48
- protected extraResultMetadata(): Record<string, any>;
93
+ protected extraResultMetadata(_state: TState): Record<string, any>;
49
94
  /**
50
95
  * Parse streaming output and emit steps in real-time.
51
96
  *
@@ -57,13 +102,13 @@ export declare class SubprocessConnector extends BaseConnector {
57
102
  * `response` step containing the full coherent answer (good for the
58
103
  * judge) — without losing the live stream.
59
104
  */
60
- protected parseStreamingOutput(chunk: string, trajectory: TrajectoryStep[], onProgress?: ConnectorProgressCallback): void;
105
+ protected parseStreamingOutput(chunk: string, trajectory: TrajectoryStep[], onProgress: ConnectorProgressCallback | undefined, state: TState): void;
61
106
  /**
62
107
  * On stream end: emit a consolidated `response` step containing the full
63
108
  * clean output. Streaming gave the user real-time visibility; this final
64
109
  * step gives the judge a single coherent answer to grade against.
65
110
  */
66
- protected onBeforeStreamEnd(trajectory: TrajectoryStep[], onProgress?: ConnectorProgressCallback): void;
111
+ protected onBeforeStreamEnd(trajectory: TrajectoryStep[], onProgress: ConnectorProgressCallback | undefined, state: TState): void;
67
112
  /**
68
113
  * Parse final subprocess output
69
114
  */
@@ -71,7 +116,7 @@ export declare class SubprocessConnector extends BaseConnector {
71
116
  stdout: string;
72
117
  stderr: string;
73
118
  exitCode: number;
74
- }): TrajectoryStep[];
119
+ }, config?: ResolvedSubprocessConfig): TrajectoryStep[];
75
120
  /**
76
121
  * Parse JSON output into trajectory steps
77
122
  */
@@ -84,5 +129,5 @@ export declare class SubprocessConnector extends BaseConnector {
84
129
  /**
85
130
  * Default instance for convenience
86
131
  */
87
- export declare const subprocessConnector: SubprocessConnector;
132
+ export declare const subprocessConnector: SubprocessConnector<SubprocessExecutionState>;
88
133
  //# sourceMappingURL=SubprocessConnector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SubprocessConnector.d.ts","sourceRoot":"","sources":["../../../../../services/connectors/subprocess/SubprocessConnector.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACzE,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EACzB,yBAAyB,EACzB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,6BAA6B,CAAC;AAcrC;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;IACpD,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAgB;IAChD,SAAkB,IAAI,EAAE,MAAM,CAAsB;IACpD,QAAQ,CAAC,iBAAiB,QAAQ;IAElC;;;;OAIG;IACM,YAAY;;MAA0B;IAE/C,SAAS,CAAC,MAAM,EAAE,gBAAgB,CAAC;gBAEvB,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC;IAK9C;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM;IAe/C;;OAEG;IACG,OAAO,CACX,QAAQ,EAAE,MAAM,EAAE,2CAA2C;IAC7D,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAE,aAAa,EACnB,UAAU,CAAC,EAAE,yBAAyB,EACtC,UAAU,CAAC,EAAE,yBAAyB,GACrC,OAAO,CAAC,iBAAiB,CAAC;IA6N7B;8EAC0E;IAC1E,OAAO,CAAC,YAAY,CAAgB;IAEpC;;;;;;;OAOG;IACH,SAAS,CAAC,gBAAgB,CACxB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,cAAc,EAAE,EAC7B,WAAW,CAAC,EAAE,yBAAyB,GACtC,IAAI;IAIP;;;;OAIG;IACH,SAAS,CAAC,mBAAmB,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAIpD;;;;;;;;;;OAUG;IACH,SAAS,CAAC,oBAAoB,CAC5B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,cAAc,EAAE,EAC5B,UAAU,CAAC,EAAE,yBAAyB,GACrC,IAAI;IAyBP;;;;OAIG;IACH,SAAS,CAAC,iBAAiB,CACzB,UAAU,EAAE,cAAc,EAAE,EAC5B,UAAU,CAAC,EAAE,yBAAyB,GACrC,IAAI;IAYP;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc,EAAE;IAkC3F;;OAEG;IACH,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,GAAG,cAAc,EAAE;IAuBtD;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;CAe3E;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,qBAA4B,CAAC"}
1
+ {"version":3,"file":"SubprocessConnector.d.ts","sourceRoot":"","sources":["../../../../../services/connectors/subprocess/SubprocessConnector.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACzE,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EACzB,yBAAyB,EACzB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,6BAA6B,CAAC;AAErC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,wBAAwB;IACvC,0EAA0E;IAC1E,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,wBAAwB,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AAclE;;;GAGG;AACH,qBAAa,mBAAmB,CAC9B,MAAM,SAAS,wBAAwB,GAAG,wBAAwB,CAClE,SAAQ,aAAa;IACrB,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAgB;IAChD,SAAkB,IAAI,EAAE,MAAM,CAAsB;IACpD,QAAQ,CAAC,iBAAiB,QAAQ;IAElC;;;;OAIG;IACM,YAAY;;MAA0B;IAE/C,SAAS,CAAC,MAAM,EAAE,gBAAgB,CAAC;gBAEvB,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC;IAK9C;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM;IAe/C;;OAEG;IACG,OAAO,CACX,QAAQ,EAAE,MAAM,EAAE,2CAA2C;IAC7D,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAE,aAAa,EACnB,UAAU,CAAC,EAAE,yBAAyB,EACtC,UAAU,CAAC,EAAE,yBAAyB,GACrC,OAAO,CAAC,iBAAiB,CAAC;IAkO7B;;;;;OAKG;IACH,SAAS,CAAC,oBAAoB,IAAI,MAAM;IAIxC;;;;;;;;;OASG;IACH,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,gBAAgB,GAAG,wBAAwB;IAcrF;;;;;;;OAOG;IACH,SAAS,CAAC,gBAAgB,CACxB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,cAAc,EAAE,EAC7B,WAAW,EAAE,yBAAyB,GAAG,SAAS,EAClD,MAAM,EAAE,MAAM,GACb,IAAI;IAIP;;;;;OAKG;IACH,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAIlE;;;;;;;;;;OAUG;IACH,SAAS,CAAC,oBAAoB,CAC5B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,cAAc,EAAE,EAC5B,UAAU,EAAE,yBAAyB,GAAG,SAAS,EACjD,KAAK,EAAE,MAAM,GACZ,IAAI;IA+BP;;;;OAIG;IACH,SAAS,CAAC,iBAAiB,CACzB,UAAU,EAAE,cAAc,EAAE,EAC5B,UAAU,EAAE,yBAAyB,GAAG,SAAS,EACjD,KAAK,EAAE,MAAM,GACZ,IAAI;IAYP;;OAEG;IACH,aAAa,CACX,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAC1D,MAAM,GAAE,wBAAsC,GAC7C,cAAc,EAAE;IAkCnB;;OAEG;IACH,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,GAAG,cAAc,EAAE;IAuBtD;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;CAe3E;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,+CAA4B,CAAC"}