@post-print/agent-harness 0.1.13 → 0.1.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -26,4 +26,6 @@ const session = await runAgent({
26
26
 
27
27
  `runAgent` / `runCursorAgent` accept optional `timeoutMs` (hard cap on `stream` + `wait`; cancels the SDK run on expiry) and `failOnUserInput` (default `true` — rejects `AskQuestion`-style tools in headless runs).
28
28
 
29
+ Live Cursor runs accept inline `mcpServers` (stdio or HTTP/SSE), passed through to `Agent.create`. Replay ignores them and scores committed `toolCalls` only. Ambient MCP via `local.settingSources` is not enabled.
30
+
29
31
  Consumer: `@post-print/agent-test`.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAY5C,gFAAgF;AAChF,qBAAa,aAAc,YAAW,WAAW;IAChD,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAE5B,GAAG,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC,CAoCzD;CACD;AAED,gFAAgF;AAChF,qBAAa,aAAc,YAAW,WAAW;IAChD,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAE5B,GAAG,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC,CAK1D;CACD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,WAAW,CASxE;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAY5C,gFAAgF;AAChF,qBAAa,aAAc,YAAW,WAAW;IAChD,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAE5B,GAAG,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC,CAqCzD;CACD;AAED,gFAAgF;AAChF,qBAAa,aAAc,YAAW,WAAW;IAChD,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAE5B,GAAG,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC,CAK1D;CACD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,WAAW,CASxE;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -27,6 +27,7 @@ export class CursorAdapter {
27
27
  const { trace: streamedTrace, status } = await runCursorAgent({
28
28
  cwd: options.cwd,
29
29
  prompt,
30
+ mcpServers: options.mcpServers,
30
31
  timeoutMs: options.timeoutMs,
31
32
  failOnUserInput: options.failOnUserInput,
32
33
  onDeadlineStart: options.onDeadlineStart,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"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"}
package/dist/capture.d.ts CHANGED
@@ -39,12 +39,18 @@ export interface SdkMessage {
39
39
  /** Cursor SDK tool_call — tool name at event root (read, shell, edit, …). */
40
40
  name?: string;
41
41
  args?: Record<string, unknown>;
42
+ /** Cursor SDK tool_call — correlates running/completed/error events. */
43
+ call_id?: string;
44
+ /** Cursor SDK tool_call — tool output (string or structured object). */
45
+ result?: unknown;
42
46
  message?: {
43
47
  role?: string;
44
48
  content?: SdkTextBlock[];
45
49
  };
46
50
  tool?: SdkToolPayload;
47
51
  }
52
+ /** Normalize SDK tool results (string or object) for AgentToolCall.result. */
53
+ export declare function serializeToolResult(result: unknown): string | undefined;
48
54
  export interface TraceAccumulator {
49
55
  agentMessages: AgentMessage[];
50
56
  inferenceChunks: string[];
@@ -55,6 +61,8 @@ export interface TraceAccumulator {
55
61
  hasSeenTool: boolean;
56
62
  /** Shared counter for AgentMessage.seq / AgentToolCall.seq — preserves stream order across both arrays. */
57
63
  nextSeq: number;
64
+ /** Index of toolCalls entries keyed by SDK call_id for running→completed merges. */
65
+ toolCallIndexByCallId: Map<string, number>;
58
66
  }
59
67
  export declare function createTraceAccumulator(): TraceAccumulator;
60
68
  /** Fold one SDK stream event into trace fields without retaining the raw event. */
@@ -1 +1 @@
1
- {"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../src/capture.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA8B1E,+CAA+C;AAC/C,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAQ7E;AAED,sFAAsF;AACtF,wBAAgB,iCAAiC,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,MAAM,EAAE,CAoBtF;AAiCD,8FAA8F;AAC9F,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5D;AAkBD,mEAAmE;AACnE,wBAAgB,iCAAiC,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,MAAM,EAAE,CAqBtF;AAED,uDAAuD;AACvD,wBAAgB,4BAA4B,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAW1E;AAED,8FAA8F;AAC9F,wBAAgB,4BAA4B,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAqB1E;AAED,yFAAyF;AACzF,wBAAgB,wBAAwB,CACvC,IAAI,EAAE,MAAM,GACV,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAQxD;AAED,wBAAgB,kBAAkB,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,MAAM,EAAE,CAElF;AAED,qEAAqE;AACrE,wBAAgB,oBAAoB,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAWlE;AAED,wEAAwE;AACxE,oFAAoF;AACpF,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAQpE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,SAAS,CAapF;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAMpE;AAKD,wFAAwF;AACxF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAMlE;AAWD,oFAAoF;AACpF,wBAAgB,sBAAsB,CACrC,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAC9C,OAAO,CAET;AAED,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;KACzB,CAAC;IACF,IAAI,CAAC,EAAE,cAAc,CAAC;CACtB;AAgCD,MAAM,WAAW,gBAAgB;IAChC,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,WAAW,EAAE,OAAO,CAAC;IACrB,2GAA2G;IAC3G,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,sBAAsB,IAAI,gBAAgB,CAWzD;AAED,mFAAmF;AACnF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CA0BjF;AAED,wBAAgB,wBAAwB,CACvC,GAAG,EAAE,gBAAgB,EACrB,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5B,UAAU,CA2BZ;AAED,4DAA4D;AAC5D,wBAAgB,yBAAyB,CACxC,QAAQ,EAAE,UAAU,EAAE,EACtB,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5B,UAAU,CAMZ;AAED,oFAAoF;AACpF,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAwBzD"}
1
+ {"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../src/capture.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA8B1E,+CAA+C;AAC/C,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAW7E;AAED,sFAAsF;AACtF,wBAAgB,iCAAiC,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,MAAM,EAAE,CAoBtF;AA0CD,8FAA8F;AAC9F,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5D;AAkBD,mEAAmE;AACnE,wBAAgB,iCAAiC,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,MAAM,EAAE,CAqBtF;AAED,uDAAuD;AACvD,wBAAgB,4BAA4B,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAW1E;AAED,8FAA8F;AAC9F,wBAAgB,4BAA4B,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAqB1E;AAED,yFAAyF;AACzF,wBAAgB,wBAAwB,CACvC,IAAI,EAAE,MAAM,GACV,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAQxD;AAED,wBAAgB,kBAAkB,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,MAAM,EAAE,CAElF;AAED,qEAAqE;AACrE,wBAAgB,oBAAoB,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAWlE;AAED,wEAAwE;AACxE,oFAAoF;AACpF,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAQpE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,SAAS,CAapF;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAMpE;AAKD,wFAAwF;AACxF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAMlE;AAWD,oFAAoF;AACpF,wBAAgB,sBAAsB,CACrC,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAC9C,OAAO,CAET;AAED,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;KACzB,CAAC;IACF,IAAI,CAAC,EAAE,cAAc,CAAC;CACtB;AAOD,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAevE;AAgDD,MAAM,WAAW,gBAAgB;IAChC,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,WAAW,EAAE,OAAO,CAAC;IACrB,2GAA2G;IAC3G,OAAO,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C;AAED,wBAAgB,sBAAsB,IAAI,gBAAgB,CAYzD;AAED,mFAAmF;AACnF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CA6CjF;AAED,wBAAgB,wBAAwB,CACvC,GAAG,EAAE,gBAAgB,EACrB,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5B,UAAU,CA2BZ;AAED,4DAA4D;AAC5D,wBAAgB,yBAAyB,CACxC,QAAQ,EAAE,UAAU,EAAE,EACtB,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5B,UAAU,CAMZ;AAED,oFAAoF;AACpF,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAwBzD"}
package/dist/capture.js CHANGED
@@ -26,7 +26,10 @@ function tierFromMatch(match) {
26
26
  /** Collect git diff after a live agent run. */
27
27
  export async function captureGitDiff(cwd) {
28
28
  try {
29
- const { stdout } = await execFileAsync("git", ["diff", "HEAD"], { cwd, maxBuffer: 10_000_000 });
29
+ const { stdout } = await execFileAsync("git", ["diff", "HEAD"], {
30
+ cwd,
31
+ maxBuffer: 10_000_000,
32
+ });
30
33
  const trimmed = stdout.trim();
31
34
  return trimmed.length > 0 ? trimmed : undefined;
32
35
  }
@@ -68,13 +71,22 @@ const APPLIED_SKILL_MARKERS = [
68
71
  { skill: "grill", pattern: /\bpressure-test(?:ing)?\b/i },
69
72
  { skill: "grill", pattern: /(?:^|\n)\s*\d+\.\s+.+(?:\n\s*\d+\.\s+.+)+/m },
70
73
  { skill: "grill", pattern: /\b\d+\.\s+\S+(?:\s+\d+\.\s+\S+)+\b/ },
71
- { skill: "crystallize", pattern: /\b(?:invok(?:e|ing)|applied)\s+crystallize\b/i },
74
+ {
75
+ skill: "crystallize",
76
+ pattern: /\b(?:invok(?:e|ing)|applied)\s+crystallize\b/i,
77
+ },
72
78
  { skill: "crystallize", pattern: /\bcrystalliz(?:e|ing|ation)\b/i },
73
79
  { skill: "crystallize", pattern: /\bhalf-formed\b/i },
74
80
  { skill: "crystallize", pattern: /\bfuzzy\s+intent\b/i },
75
- { skill: "crystallize", pattern: /\bmirror(?:ed|ing)?\s+(?:the\s+)?(?:fuzzy\s+)?intent\b/i },
81
+ {
82
+ skill: "crystallize",
83
+ pattern: /\bmirror(?:ed|ing)?\s+(?:the\s+)?(?:fuzzy\s+)?intent\b/i,
84
+ },
76
85
  { skill: "crystallize", pattern: /\bmight be assuming\b/i },
77
- { skill: "code-review", pattern: /\b(?:invok(?:e|ing)|applied)\s+code-review\b/i },
86
+ {
87
+ skill: "code-review",
88
+ pattern: /\b(?:invok(?:e|ing)|applied)\s+code-review\b/i,
89
+ },
78
90
  {
79
91
  skill: "code-review",
80
92
  pattern: /\bReview\s·\s*[^·]+\s·\s*(?:Quick|Standard|Thorough|Full)\b/i,
@@ -239,9 +251,41 @@ function isToolRelatedEvent(event) {
239
251
  const type = event.type ?? "";
240
252
  return type.includes("tool") || Boolean(event.tool);
241
253
  }
254
+ /** Normalize SDK tool results (string or object) for AgentToolCall.result. */
255
+ export function serializeToolResult(result) {
256
+ if (result === undefined || result === null) {
257
+ return undefined;
258
+ }
259
+ if (typeof result === "string") {
260
+ return result.length > 0 ? result : undefined;
261
+ }
262
+ if (typeof result === "number" || typeof result === "boolean") {
263
+ return String(result);
264
+ }
265
+ try {
266
+ return JSON.stringify(result);
267
+ }
268
+ catch {
269
+ return undefined;
270
+ }
271
+ }
272
+ function toolResultFromEvent(event) {
273
+ // Prefer root `result` (current @cursor/sdk SDKToolUseMessage); keep tool.output as fallback.
274
+ return serializeToolResult(event.result) ?? serializeToolResult(event.tool?.output);
275
+ }
242
276
  function toolCallFromEvent(event) {
243
277
  if (event.type === "tool_call" && event.name) {
244
- return { name: event.name, args: event.args };
278
+ const result = toolResultFromEvent(event);
279
+ const args = event.args !== undefined && typeof event.args === "object" && !Array.isArray(event.args)
280
+ ? event.args
281
+ : event.args !== undefined
282
+ ? { value: event.args }
283
+ : undefined;
284
+ return {
285
+ name: event.name,
286
+ args,
287
+ ...(result !== undefined ? { result } : {}),
288
+ };
245
289
  }
246
290
  const name = event.tool?.name ?? (event.type?.includes("tool") ? event.type : undefined);
247
291
  if (!name) {
@@ -262,7 +306,12 @@ function toolCallFromEvent(event) {
262
306
  args = { command: event.tool.input };
263
307
  }
264
308
  }
265
- return { name, args };
309
+ const result = toolResultFromEvent(event);
310
+ return {
311
+ name,
312
+ args,
313
+ ...(result !== undefined ? { result } : {}),
314
+ };
266
315
  }
267
316
  export function createTraceAccumulator() {
268
317
  return {
@@ -274,6 +323,7 @@ export function createTraceAccumulator() {
274
323
  preToolAssistantChunks: [],
275
324
  hasSeenTool: false,
276
325
  nextSeq: 0,
326
+ toolCallIndexByCallId: new Map(),
277
327
  };
278
328
  }
279
329
  /** Fold one SDK stream event into trace fields without retaining the raw event. */
@@ -299,7 +349,26 @@ export function accumulateSdkEvent(acc, event) {
299
349
  const toolCall = toolCallFromEvent(event);
300
350
  if (toolCall) {
301
351
  acc.hasSeenTool = true;
302
- acc.toolCalls.push({ ...toolCall, seq: acc.nextSeq++ });
352
+ const callId = typeof event.call_id === "string" ? event.call_id : undefined;
353
+ const existingIndex = callId !== undefined ? acc.toolCallIndexByCallId.get(callId) : undefined;
354
+ if (existingIndex !== undefined) {
355
+ const previous = acc.toolCalls[existingIndex];
356
+ if (previous) {
357
+ acc.toolCalls[existingIndex] = {
358
+ ...previous,
359
+ name: toolCall.name,
360
+ args: toolCall.args ?? previous.args,
361
+ result: toolCall.result ?? previous.result,
362
+ };
363
+ }
364
+ }
365
+ else {
366
+ const index = acc.toolCalls.length;
367
+ acc.toolCalls.push({ ...toolCall, seq: acc.nextSeq++ });
368
+ if (callId !== undefined) {
369
+ acc.toolCallIndexByCallId.set(callId, index);
370
+ }
371
+ }
303
372
  }
304
373
  }
305
374
  }
@@ -1 +1 @@
1
- {"version":3,"file":"capture.js","sourceRoot":"","sources":["../src/capture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAG3D,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,MAAM,qBAAqB,GAAG,oEAAoE,CAAC;AAEnG,MAAM,YAAY,GAAG,sCAAsC,CAAC;AAC5D,MAAM,mBAAmB,GAAG,gCAAgC,CAAC;AAC7D,kGAAkG;AAClG,MAAM,yBAAyB,GAAG,6BAA6B,CAAC;AAChE,oFAAoF;AACpF,MAAM,0BAA0B,GAC/B,4FAA4F,CAAC;AAE9F,MAAM,sBAAsB,GAAG;IAC9B,YAAY;IACZ,mBAAmB;IACnB,yBAAyB;IACzB,0BAA0B;CACjB,CAAC;AAEX,SAAS,aAAa,CAAC,KAAuB;IAC7C,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,GAAG,EAAE,WAAW,EAA2C,CAAC;IACzE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QAC5D,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,+CAA+C;AAC/C,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAW;IAC/C,IAAI,CAAC;QACJ,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;QAChG,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAC9B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,SAAS,CAAC;IAClB,CAAC;AACF,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,iCAAiC,CAAC,SAA0B;IAC3E,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAChB,SAAS;QACV,CAAC;QACD,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzF,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC9B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC7B,SAAS;YACV,CAAC;YACD,KAAK,MAAM,GAAG,IAAI,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7C,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;YACD,IAAI,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBACnE,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1B,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,2BAA2B,GAAG,wDAAwD,CAAC;AAE7F,MAAM,8BAA8B,GAAG;IACtC,2HAA2H;IAC3H,mDAAmD;CAC1C,CAAC;AAEX,MAAM,qBAAqB,GAAG;IAC7B,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,+BAA+B,EAAE;IAC5D,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,yCAAyC,EAAE;IACtE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE;IACzC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,4BAA4B,EAAE;IACzD,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,4CAA4C,EAAE;IACzE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,oCAAoC,EAAE;IACjE,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,+CAA+C,EAAE;IAClF,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,gCAAgC,EAAE;IACnE,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,kBAAkB,EAAE;IACrD,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,qBAAqB,EAAE;IACxD,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,yDAAyD,EAAE;IAC5F,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,wBAAwB,EAAE;IAC3D,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,+CAA+C,EAAE;IAClF;QACC,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,8DAA8D;KACvE;IACD,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,sBAAsB,EAAE;CAChD,CAAC;AAEX,MAAM,2BAA2B,GAAG,4DAA4D,CAAC;AACjG,MAAM,0BAA0B,GAAG,oDAAoD,CAAC;AAExF,8FAA8F;AAC9F,MAAM,UAAU,uBAAuB,CAAC,IAAY;IACnD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,iBAAiB,CAAC,IAA6B;IACvD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;QAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;IACF,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACtD,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;AAClC,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,iCAAiC,CAAC,SAA0B;IAC3E,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAChB,SAAS;QACV,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,IAAI,EAAE,CAAC;gBACV,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;QACF,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,QAAQ,CAAC,wCAAwC,CAAC,EAAE,CAAC;YACnF,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;YACrC,IAAI,IAAI,EAAE,CAAC;gBACV,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC;AACpB,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,4BAA4B,CAAC,GAAG,MAAgB;IAC/D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC5B,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,wCAAwC,CAAC,EAAE,CAAC;YAC9E,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;YACrC,IAAI,IAAI,EAAE,CAAC;gBACV,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC;AACpB,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,4BAA4B,CAAC,GAAG,MAAgB;IAC/D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAE5D,MAAM,eAAe,GAAG,8BAA8B,CAAC;IACvD,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;QACvC,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;YACrC,IAAI,IAAI,EAAE,CAAC;gBACV,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;QACF,CAAC;IACF,CAAC;IAED,KAAK,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,qBAAqB,EAAE,CAAC;QACxD,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;IACF,CAAC;IAED,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC;AACpB,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,wBAAwB,CACvC,IAAY;IAEZ,MAAM,SAAS,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACjE,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtB,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAgD,CAAC;IACnF,CAAC;IACD,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC/D,OAAO,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAA4D,CAAC;AACjG,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAG,KAAkC;IACvE,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,oBAAoB,CAAC,GAAG,MAAgB;IACvD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC5B,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;YAC3D,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YAC7B,IAAI,GAAG,EAAE,CAAC;gBACT,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;AACtB,CAAC;AAED,wEAAwE;AACxE,oFAAoF;AACpF,MAAM,UAAU,0BAA0B,CAAC,KAAiB;IAC3D,IAAI,KAAK,CAAC,wBAAwB,KAAK,SAAS,EAAE,CAAC;QAClD,OAAO,KAAK,CAAC,wBAAwB,CAAC;IACvC,CAAC;IACD,OAAO,KAAK,CAAC,QAAQ;SACnB,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC;SACjD,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;SACjC,IAAI,CAAC,EAAE,CAAC,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAChD,MAAM,SAAS,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAChD,KAAK,MAAM,OAAO,IAAI,sBAAsB,EAAE,CAAC;QAC9C,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;YAChB,SAAS;QACV,CAAC;QACD,MAAM,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,+BAA+B,CAAC,EAAE,CAAC;QAC7D,CAAC;IACF,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAChD,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;AACxC,CAAC;AAED,MAAM,4BAA4B,GAAG,yBAAyB,CAAC;AAC/D,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;AAE/C,wFAAwF;AACxF,MAAM,UAAU,uBAAuB,CAAC,KAAiB;IACxD,MAAM,MAAM,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAC;IACjD,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,yBAAyB,CAAC,GAAG,MAAM,KAAK,KAAK,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,yBAAyB,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAY;IAC9C,MAAM,SAAS,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAChD,OAAO,CACN,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC3B,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC;QACvC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CACpC,CAAC;AACH,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,sBAAsB,CACrC,KAAiB,EACjB,IAAgD;IAEhD,OAAO,oBAAoB,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,KAAK,IAAI,CAAC;AAC/E,CAAC;AAyBD,SAAS,kBAAkB,CAAC,KAAiB;IAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;IAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAiB;IAC3C,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QAC9C,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;IAC/C,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACzF,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,IAAI,IAAyC,CAAC;IAC9C,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC7E,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAgC,CAAC;IACpD,CAAC;SAAM,IAAI,OAAO,KAAK,CAAC,IAAI,EAAE,KAAK,KAAK,QAAQ,EAAE,CAAC;QAClD,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAY,CAAC;YACvD,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC1C,IAAI,GAAG,MAAiC,CAAC;YAC1C,CAAC;QACF,CAAC;QAAC,MAAM,CAAC;YACR,IAAI,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACtC,CAAC;IACF,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACvB,CAAC;AAcD,MAAM,UAAU,sBAAsB;IACrC,OAAO;QACN,aAAa,EAAE,EAAE;QACjB,eAAe,EAAE,EAAE;QACnB,UAAU,EAAE,EAAE;QACd,gBAAgB,EAAE,EAAE;QACpB,SAAS,EAAE,EAAE;QACb,sBAAsB,EAAE,EAAE;QAC1B,WAAW,EAAE,KAAK;QAClB,OAAO,EAAE,CAAC;KACV,CAAC;AACH,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,kBAAkB,CAAC,GAAqB,EAAE,KAAiB;IAC1E,MAAM,IAAI,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,IAAI,EAAE,CAAC;QACV,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;QACvE,IAAI,IAAI,EAAE,CAAC;YACV,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACjF,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;gBACtB,GAAG,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvC,CAAC;QACF,CAAC;QACD,OAAO;IACR,CAAC;IAED,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,IAAI,IAAI,EAAE,CAAC;YACV,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QACD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,QAAQ,EAAE,CAAC;YACd,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;YACvB,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACzD,CAAC;IACF,CAAC;AACF,CAAC;AAED,MAAM,UAAU,wBAAwB,CACvC,GAAqB,EACrB,OAA8B;IAE9B,8EAA8E;IAC9E,gFAAgF;IAChF,MAAM,QAAQ,GAAG;QAChB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,eAAe,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,GAAG,GAAG,CAAC,gBAAgB,CAAC,CAAC;KAChF,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,aAAa,GAAG,oBAAoB,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC9E,MAAM,cAAc,GAAG,iCAAiC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACxE,MAAM,aAAa,GAAG,kBAAkB,CACvC,iCAAiC,CAAC,GAAG,CAAC,SAAS,CAAC,EAChD,4BAA4B,CAAC,QAAQ,CAAC,EACtC,4BAA4B,CAAC,QAAQ,CAAC,CACtC,CAAC;IAEF,OAAO;QACN,QAAQ,EAAE,GAAG,CAAC,aAAa;QAC3B,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,aAAa,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,aAAa,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC;QAClE,aAAa;QACb,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,MAAM;QACN,SAAS,EAAE,EAAE;QACb,OAAO;QACP,wBAAwB,EAAE,GAAG,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC;KAC7D,CAAC;AACH,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,yBAAyB,CACxC,QAAsB,EACtB,OAA8B;IAE9B,MAAM,GAAG,GAAG,sBAAsB,EAAE,CAAC;IACrC,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC9B,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,wBAAwB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,WAAW,CAAC,KAAiB;IAC5C,mEAAmE;IACnE,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAExF,OAAO;QACN,GAAG,KAAK;QACR,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,oBAAoB,CAAC,QAAQ,CAAC;QACxD,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,mBAAmB,CAAC,QAAQ,CAAC;QACrD,aAAa,EAAE,kBAAkB,CAChC,KAAK,CAAC,aAAa,EACnB,iCAAiC,CAAC,KAAK,CAAC,SAAS,CAAC,EAClD,4BAA4B,CAAC,QAAQ,CAAC,EACtC,4BAA4B,CAAC,QAAQ,CAAC,CACtC;QACD,aAAa,EACZ,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;YAC7B,CAAC,CAAC,KAAK,CAAC,aAAa;YACrB,CAAC,CAAC;gBACA,GAAG,IAAI,GAAG,CAAC;oBACV,GAAG,oBAAoB,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;oBACtD,GAAG,iCAAiC,CAAC,KAAK,CAAC,SAAS,CAAC;iBACrD,CAAC;aACF;KACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"capture.js","sourceRoot":"","sources":["../src/capture.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { type SdkMessage } from "./capture.js";
2
+ import { type McpServerConfig } from "./mcp.js";
2
3
  import type { AgentTrace } from "./types.js";
3
4
  export interface CursorRunOptions {
4
5
  cwd: string;
@@ -11,6 +12,7 @@ export interface CursorRunOptions {
11
12
  value: string;
12
13
  }>;
13
14
  };
15
+ mcpServers?: Record<string, McpServerConfig>;
14
16
  /** Hard cap on stream + wait; omit for no harness deadline. */
15
17
  timeoutMs?: number;
16
18
  /** Fail fast when the agent invokes AskQuestion-style tools (default true). */
@@ -30,9 +32,17 @@ export interface JudgeClassifierOptions {
30
32
  }>;
31
33
  };
32
34
  }
35
+ export interface JudgeSdkError {
36
+ message?: string;
37
+ code?: string;
38
+ }
33
39
  export interface JudgeClassifierResult {
34
40
  status: string;
35
41
  text: string;
42
+ /** Unnormalized SDK terminal status (e.g. `error`, `cancelled`). */
43
+ rawStatus?: string;
44
+ /** SDK error payload when the judge run did not finish cleanly. */
45
+ sdkError?: JudgeSdkError;
36
46
  }
37
47
  export interface CursorRunResult {
38
48
  status: string;
@@ -1 +1 @@
1
- {"version":3,"file":"cursor-run.d.ts","sourceRoot":"","sources":["../src/cursor-run.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,KAAK,UAAU,EACf,MAAM,cAAc,CAAC;AAOtB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAkC7C,MAAM,WAAW,gBAAgB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IACtE,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,yFAAyF;IACzF,eAAe,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,sBAAsB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;CACtE;AAED,MAAM,WAAW,qBAAqB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,UAAU,CAAC;CAClB;AAED,4DAA4D;AAC5D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAE5E;AAwBD,iGAAiG;AACjG,wBAAsB,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CA4DxF;AAED,oGAAoG;AACpG,wBAAsB,kBAAkB,CACvC,OAAO,EAAE,sBAAsB,GAC7B,OAAO,CAAC,qBAAqB,CAAC,CAoBhC;AAED,sGAAsG;AACtG,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,CAS3E;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAqBlE"}
1
+ {"version":3,"file":"cursor-run.d.ts","sourceRoot":"","sources":["../src/cursor-run.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,KAAK,UAAU,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,KAAK,eAAe,EAAqB,MAAM,UAAU,CAAC;AAOnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAkC7C,MAAM,WAAW,gBAAgB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7C,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,yFAAyF;IACzF,eAAe,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,sBAAsB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;CACtE;AAED,MAAM,WAAW,aAAa;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAqB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,aAAa,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,UAAU,CAAC;CAClB;AAED,4DAA4D;AAC5D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAE5E;AAwBD,iGAAiG;AACjG,wBAAsB,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAgExF;AAED,oGAAoG;AACpG,wBAAsB,kBAAkB,CACvC,OAAO,EAAE,sBAAsB,GAC7B,OAAO,CAAC,qBAAqB,CAAC,CAwBhC;AAeD,sGAAsG;AACtG,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,CAS3E;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAqBlE"}
@@ -51,6 +51,7 @@ var __disposeResources = (this && this.__disposeResources) || (function (Suppres
51
51
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
52
52
  });
53
53
  import { accumulateSdkEvent, createTraceAccumulator, finalizeTraceAccumulator, } from "./capture.js";
54
+ import { resolveMcpServers } from "./mcp.js";
54
55
  import { AgentRunTimeoutError, isUserInputTool, UserInputRequiredError, withRunTimeout, } from "./run-guards.js";
55
56
  /** Default local agent model; override with CURSOR_AGENT_MODEL or options.model. */
56
57
  const DEFAULT_CURSOR_MODEL = "auto";
@@ -104,10 +105,14 @@ export async function runCursorAgent(options) {
104
105
  }
105
106
  const sdkModule = await import("@cursor/sdk");
106
107
  const modelId = options.model?.id ?? process.env.CURSOR_AGENT_MODEL ?? DEFAULT_CURSOR_MODEL;
108
+ const mcpServers = resolveMcpServers(options.mcpServers, {
109
+ cwd: options.cwd,
110
+ });
107
111
  const agent = __addDisposableResource(env_1, await sdkModule.Agent.create({
108
112
  apiKey,
109
113
  model: { id: modelId },
110
114
  local: { cwd: options.cwd },
115
+ ...(mcpServers ? { mcpServers } : {}),
111
116
  }), true);
112
117
  const failOnUserInput = options.failOnUserInput !== false;
113
118
  const acc = createTraceAccumulator();
@@ -179,12 +184,28 @@ export async function runJudgeClassifier(options) {
179
184
  local: { cwd: options.cwd },
180
185
  });
181
186
  const text = result.result?.trim() ?? "";
182
- const status = result.status === "finished" ? "completed" : result.status;
187
+ const rawStatus = result.status;
188
+ const status = rawStatus === "finished" ? "completed" : rawStatus;
189
+ const sdkError = extractJudgeSdkError(result.error);
183
190
  return {
184
191
  status: normalizeSdkRunStatus(status),
185
192
  text,
193
+ rawStatus,
194
+ sdkError,
186
195
  };
187
196
  }
197
+ function extractJudgeSdkError(error) {
198
+ if (!error || typeof error !== "object") {
199
+ return undefined;
200
+ }
201
+ const record = error;
202
+ const message = typeof record.message === "string" ? record.message : undefined;
203
+ const code = typeof record.code === "string" ? record.code : undefined;
204
+ if (!message && !code) {
205
+ return undefined;
206
+ }
207
+ return { message, code };
208
+ }
188
209
  /** Assistant prose from a Cursor SDK message stream (last assistant block wins for short replies). */
189
210
  export function assistantTextFromSdkMessages(messages) {
190
211
  const chunks = [];
@@ -1 +1 @@
1
- {"version":3,"file":"cursor-run.js","sourceRoot":"","sources":["../src/cursor-run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cursor-run.js","sourceRoot":"","sources":["../src/cursor-run.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,14 +3,15 @@ import type { AgentSession, ContextProfile, RunAgentOptions } from "./types.js";
3
3
  export { ClaudeAdapter, CursorAdapter, createAdapter, ReplayAdapter, } from "./adapters/index.js";
4
4
  export type { SdkMessage } from "./capture.js";
5
5
  export { assistantPrefixBeforeTools, buildTraceFromSdkMessages, captureGitDiff, collapseTraceWhitespace, enrichTrace, extractShellCommands, extractShellCommandsFromToolCalls, extractSkillsAppliedFromText, extractSkillsInvokedFromText, extractSkillsInvokedFromToolCalls, handsOnTierBeforeTools, inferReviewDepthFromText, inferRoutingFromText, mergeSkillsInvoked, routingBlockBeforeTools, } from "./capture.js";
6
- export { assistantTextFromSdkMessages, type CursorRunOptions, type CursorRunResult, type JudgeClassifierOptions, type JudgeClassifierResult, runCursorAgent, runJudgeClassifier, textBlocksFromSdkMessage, } from "./cursor-run.js";
6
+ export { assistantTextFromSdkMessages, type CursorRunOptions, type CursorRunResult, type JudgeClassifierOptions, type JudgeClassifierResult, type JudgeSdkError, runCursorAgent, runJudgeClassifier, textBlocksFromSdkMessage, } from "./cursor-run.js";
7
7
  export { type JudgeCriterion, type JudgeTraceOptions, type JudgeTraceResult, type JudgeVerdict, judgeTrace, type ParsedJudgeJson, parseJudgeJsonResponse, parseJudgeLegacyResponse, parseJudgeResponse, } from "./judge.js";
8
8
  export { type Logger, type LogLevel, logger } from "./logger.js";
9
- export { getHealthStatus, HEALTH_CHECK_PATH, type HealthStatus } from "./main.js";
9
+ export { getHealthStatus, HEALTH_CHECK_PATH, type HealthStatus, } from "./main.js";
10
+ export { expandEnvPlaceholders, mergeMcpServers, resolveMcpServers, } from "./mcp.js";
10
11
  export { buildRoutingContract } from "./routing-contract.js";
11
12
  export { AgentRunTimeoutError, isUserInputTool, type RunTimeoutOptions, traceHasUserInputTool, UserInputRequiredError, withRunTimeout, } from "./run-guards.js";
12
13
  export { loadSkillContext, normalizeSkillContext, type SkillCatalogEntry, } from "./skills-context.js";
13
- export type { AgentHost, AgentMessage, AgentSession, AgentToolCall, AgentTrace, ContextProfile, HostAdapter, LoadedContext, RoutingContract, RunAgentOptions, RunStatus, SkillContextMode, SkillContextOptions, SkillContextSetting, } from "./types.js";
14
+ export type { AgentHost, AgentMessage, AgentSession, AgentToolCall, AgentTrace, ContextProfile, HostAdapter, LoadedContext, McpServerConfig, RoutingContract, RunAgentOptions, RunStatus, SkillContextMode, SkillContextOptions, SkillContextSetting, } from "./types.js";
14
15
  export { captureWorkingTreeStatus, findWorkingTreeLeak, formatWorkingTreeLeak, } from "./working-tree-guard.js";
15
16
  export { cleanupStaleScenarioWorktrees, createScenarioWorktree, SCENARIO_WORKTREE_DIR_PREFIX, type ScenarioWorktree, } from "./worktree.js";
16
17
  export { type LoadContextOptions, loadContext };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,kBAAkB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEhF,OAAO,EACN,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,GACb,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EACN,0BAA0B,EAC1B,yBAAyB,EACzB,cAAc,EACd,uBAAuB,EACvB,WAAW,EACX,oBAAoB,EACpB,iCAAiC,EACjC,4BAA4B,EAC5B,4BAA4B,EAC5B,iCAAiC,EACjC,sBAAsB,EACtB,wBAAwB,EACxB,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,GACvB,MAAM,cAAc,CAAC;AACtB,OAAO,EACN,4BAA4B,EAC5B,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,cAAc,EACd,kBAAkB,EAClB,wBAAwB,GACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACN,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,UAAU,EACV,KAAK,eAAe,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EACN,oBAAoB,EACpB,eAAe,EACf,KAAK,iBAAiB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACN,gBAAgB,EAChB,qBAAqB,EACrB,KAAK,iBAAiB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACX,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,UAAU,EACV,cAAc,EACd,WAAW,EACX,aAAa,EACb,eAAe,EACf,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EACN,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,GACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACN,6BAA6B,EAC7B,sBAAsB,EACtB,4BAA4B,EAC5B,KAAK,gBAAgB,GACrB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,KAAK,kBAAkB,EAAE,WAAW,EAAE,CAAC;AAEhD,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC;IACtE,OAAO,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,cAAc,CAAC;CACzB;AAED,0DAA0D;AAC1D,wBAAsB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAK1E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,kBAAkB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEhF,OAAO,EACN,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,GACb,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EACN,0BAA0B,EAC1B,yBAAyB,EACzB,cAAc,EACd,uBAAuB,EACvB,WAAW,EACX,oBAAoB,EACpB,iCAAiC,EACjC,4BAA4B,EAC5B,4BAA4B,EAC5B,iCAAiC,EACjC,sBAAsB,EACtB,wBAAwB,EACxB,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,GACvB,MAAM,cAAc,CAAC;AACtB,OAAO,EACN,4BAA4B,EAC5B,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,cAAc,EACd,kBAAkB,EAClB,wBAAwB,GACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACN,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,UAAU,EACV,KAAK,eAAe,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EACN,eAAe,EACf,iBAAiB,EACjB,KAAK,YAAY,GACjB,MAAM,WAAW,CAAC;AACnB,OAAO,EACN,qBAAqB,EACrB,eAAe,EACf,iBAAiB,GACjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EACN,oBAAoB,EACpB,eAAe,EACf,KAAK,iBAAiB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACN,gBAAgB,EAChB,qBAAqB,EACrB,KAAK,iBAAiB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACX,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,UAAU,EACV,cAAc,EACd,WAAW,EACX,aAAa,EACb,eAAe,EACf,eAAe,EACf,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EACN,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,GACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACN,6BAA6B,EAC7B,sBAAsB,EACtB,4BAA4B,EAC5B,KAAK,gBAAgB,GACrB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,KAAK,kBAAkB,EAAE,WAAW,EAAE,CAAC;AAEhD,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC;IACtE,OAAO,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,cAAc,CAAC;CACzB;AAED,0DAA0D;AAC1D,wBAAsB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAK1E"}
package/dist/index.js CHANGED
@@ -5,7 +5,8 @@ export { assistantPrefixBeforeTools, buildTraceFromSdkMessages, captureGitDiff,
5
5
  export { assistantTextFromSdkMessages, runCursorAgent, runJudgeClassifier, textBlocksFromSdkMessage, } from "./cursor-run.js";
6
6
  export { judgeTrace, parseJudgeJsonResponse, parseJudgeLegacyResponse, parseJudgeResponse, } from "./judge.js";
7
7
  export { logger } from "./logger.js";
8
- export { getHealthStatus, HEALTH_CHECK_PATH } from "./main.js";
8
+ export { getHealthStatus, HEALTH_CHECK_PATH, } from "./main.js";
9
+ export { expandEnvPlaceholders, mergeMcpServers, resolveMcpServers, } from "./mcp.js";
9
10
  export { buildRoutingContract } from "./routing-contract.js";
10
11
  export { AgentRunTimeoutError, isUserInputTool, traceHasUserInputTool, UserInputRequiredError, withRunTimeout, } from "./run-guards.js";
11
12
  export { loadSkillContext, normalizeSkillContext, } from "./skills-context.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAA2B,WAAW,EAAE,MAAM,cAAc,CAAC;AAGpE,OAAO,EACN,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,GACb,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACN,0BAA0B,EAC1B,yBAAyB,EACzB,cAAc,EACd,uBAAuB,EACvB,WAAW,EACX,oBAAoB,EACpB,iCAAiC,EACjC,4BAA4B,EAC5B,4BAA4B,EAC5B,iCAAiC,EACjC,sBAAsB,EACtB,wBAAwB,EACxB,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,GACvB,MAAM,cAAc,CAAC;AACtB,OAAO,EACN,4BAA4B,EAK5B,cAAc,EACd,kBAAkB,EAClB,wBAAwB,GACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAKN,UAAU,EAEV,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAA8B,MAAM,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAqB,MAAM,WAAW,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EACN,oBAAoB,EACpB,eAAe,EAEf,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACN,gBAAgB,EAChB,qBAAqB,GAErB,MAAM,qBAAqB,CAAC;AAiB7B,OAAO,EACN,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,GACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACN,6BAA6B,EAC7B,sBAAsB,EACtB,4BAA4B,GAE5B,MAAM,eAAe,CAAC;AACvB,OAAO,EAA2B,WAAW,EAAE,CAAC;AAOhD,0DAA0D;AAC1D,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,KAAoB;IAClD,MAAM,OAAO,GACZ,KAAK,CAAC,OAAO,IAAI,CAAC,MAAM,WAAW,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC9F,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1C,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAA2B,WAAW,EAAE,MAAM,cAAc,CAAC;AAGpE,OAAO,EACN,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,GACb,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACN,0BAA0B,EAC1B,yBAAyB,EACzB,cAAc,EACd,uBAAuB,EACvB,WAAW,EACX,oBAAoB,EACpB,iCAAiC,EACjC,4BAA4B,EAC5B,4BAA4B,EAC5B,iCAAiC,EACjC,sBAAsB,EACtB,wBAAwB,EACxB,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,GACvB,MAAM,cAAc,CAAC;AACtB,OAAO,EACN,4BAA4B,EAM5B,cAAc,EACd,kBAAkB,EAClB,wBAAwB,GACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAKN,UAAU,EAEV,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAA8B,MAAM,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EACN,eAAe,EACf,iBAAiB,GAEjB,MAAM,WAAW,CAAC;AACnB,OAAO,EACN,qBAAqB,EACrB,eAAe,EACf,iBAAiB,GACjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EACN,oBAAoB,EACpB,eAAe,EAEf,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACN,gBAAgB,EAChB,qBAAqB,GAErB,MAAM,qBAAqB,CAAC;AAkB7B,OAAO,EACN,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,GACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACN,6BAA6B,EAC7B,sBAAsB,EACtB,4BAA4B,GAE5B,MAAM,eAAe,CAAC;AACvB,OAAO,EAA2B,WAAW,EAAE,CAAC;AAOhD,0DAA0D;AAC1D,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,KAAoB;IAClD,MAAM,OAAO,GACZ,KAAK,CAAC,OAAO,IAAI,CAAC,MAAM,WAAW,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC9F,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1C,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;AAC3C,CAAC"}
package/dist/judge.d.ts CHANGED
@@ -8,6 +8,20 @@ export interface JudgeVerdict {
8
8
  pass: boolean;
9
9
  rationale: string;
10
10
  evidence?: string[];
11
+ /** Present when the judge SDK run failed (distinct from a criterion miss). */
12
+ infraError?: string;
13
+ /** Unnormalized SDK status when the judge run did not finish. */
14
+ rawSdkStatus?: string;
15
+ sdkError?: {
16
+ message?: string;
17
+ code?: string;
18
+ };
19
+ /** Attempt number (1 until retries land). */
20
+ attempt?: number;
21
+ /** Wall time for this judge criterion call (ms). */
22
+ durationMs?: number;
23
+ transcriptChars?: number;
24
+ promptChars?: number;
11
25
  }
12
26
  export interface JudgeTraceOptions {
13
27
  cwd: string;
@@ -28,7 +42,12 @@ export interface ParsedJudgeJson {
28
42
  export declare function parseJudgeJsonResponse(text: string): ParsedJudgeJson;
29
43
  /** Fallback when model ignores JSON contract — parse YES/NO prose. */
30
44
  export declare function parseJudgeLegacyResponse(text: string): ParsedJudgeJson;
31
- /** Parse structured JSON first, then legacy YES/NO prose. */
45
+ /**
46
+ * Parse structured JSON first, then legacy YES/NO prose.
47
+ * Once a real JSON contract attempt is detected (array, object with `verdict`,
48
+ * or truncated JSON-shaped text), never salvage YES/NO from the body — invalid
49
+ * contracts are infra failures, not rubric answers.
50
+ */
32
51
  export declare function parseJudgeResponse(text: string): ParsedJudgeJson;
33
52
  /** Score fuzzy rubric criteria with a structured JSON judge (live runs only). */
34
53
  export declare function judgeTrace(trace: AgentTrace, criteria: JudgeCriterion[], options: JudgeTraceOptions): Promise<JudgeTraceResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"judge.d.ts","sourceRoot":"","sources":["../src/judge.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAK7C,MAAM,WAAW,cAAc;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAChC,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;CACf;AAuBD,wEAAwE;AACxE,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAuCpE;AA+BD,sEAAsE;AACtE,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CA4CtE;AAED,6DAA6D;AAC7D,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAMhE;AA6DD,iFAAiF;AACjF,wBAAsB,UAAU,CAC/B,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,cAAc,EAAE,EAC1B,OAAO,EAAE,iBAAiB,GACxB,OAAO,CAAC,gBAAgB,CAAC,CAgC3B"}
1
+ {"version":3,"file":"judge.d.ts","sourceRoot":"","sources":["../src/judge.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAO7C,MAAM,WAAW,cAAc;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAChC,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;CACf;AAoWD,wEAAwE;AACxE,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAEpE;AA8BD,sEAAsE;AACtE,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CA4CtE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAQhE;AAmHD,iFAAiF;AACjF,wBAAsB,UAAU,CAC/B,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,cAAc,EAAE,EAC1B,OAAO,EAAE,iBAAiB,GACxB,OAAO,CAAC,gBAAgB,CAAC,CAwC3B"}
package/dist/judge.js CHANGED
@@ -1,5 +1,7 @@
1
1
  import { runJudgeClassifier } from "./cursor-run.js";
2
- const JSON_FENCE_PATTERN = /```(?:json)?\s*([\s\S]*?)```/i;
2
+ // Optional info-string (`json`, `js`, `typescript`, …) on the opening fence line.
3
+ // Without this, ` ```js\n"yes"\n``` ` extracts `js\n"yes"` and never latches.
4
+ const JSON_FENCE_PATTERN = /```[^\n`]*\s*([\s\S]*?)```/;
3
5
  const JSON_OBJECT_PATTERN = /\{[\s\S]*\}/;
4
6
  function transcriptForJudge(trace) {
5
7
  return [
@@ -20,46 +22,303 @@ function normalizeVerdict(value) {
20
22
  }
21
23
  return undefined;
22
24
  }
23
- /** Parse structured judge JSON (`verdict`, `evidence`, `rationale`). */
24
- export function parseJudgeJsonResponse(text) {
25
+ // Whole-reply opening fence is a contract attempt regardless of info-string
26
+ // (`json`, `js`, `typescript`, bare, …). Mid-prose fence mentions do not match.
27
+ const JUDGE_JSON_FENCE_OPEN_PATTERN = /^```/;
28
+ const JUDGE_VERDICT_KEY_PATTERN = /"verdict"\s*:/;
29
+ /** Same prefixes legacy YES/NO strips — gate same-line JSON peels. */
30
+ const JUDGE_VERDICT_PREFIX_PATTERN = /^(?:answer|verdict|line\s*1)\s*:\s*/i;
31
+ /** Complete JSON number token (rejects bare `1.` with no fractional digits). */
32
+ const JUDGE_JSON_NUMBER_TOKEN = /^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/;
33
+ const JUDGE_JSON_BOOL_NULL_TOKEN = /^(?:true|false|null)/i;
34
+ /** Closed fences, or a trailing unclosed fence (prose preamble + open contract). */
35
+ const MARKDOWN_FENCE_STRIP_PATTERN = /```[^\n`]*\s*[\s\S]*?(?:```|$)/g;
36
+ /**
37
+ * After a complete JSON number/bool/null token: whether the remainder is
38
+ * contract junk (latch) vs English continuation (allow YES/NO salvage).
39
+ *
40
+ * `true\nYES` / `3 YES` / `42,` / `3, YES` → latch.
41
+ * `true story` / `3 findings` / `3, findings` / `true, the agent` → salvage.
42
+ */
43
+ function jsonPrimitiveRemainderIsContract(rest) {
44
+ if (rest === "") {
45
+ return true;
46
+ }
47
+ const restTrim = rest.trimStart();
48
+ if (restTrim === "") {
49
+ return true;
50
+ }
51
+ // Comma after a primitive is JSON-ish only when nothing English follows
52
+ // (`42,` / `3, YES`). List/prose continuations (`3, findings`, `1, 2, and 3`)
53
+ // must still reach YES/NO salvage.
54
+ if (restTrim.startsWith(",")) {
55
+ const afterComma = restTrim.slice(1).trimStart();
56
+ if (afterComma === "") {
57
+ return true;
58
+ }
59
+ if (/^(?:yes|no)\b/i.test(afterComma)) {
60
+ return true;
61
+ }
62
+ if (/[A-Za-z]/.test(afterComma)) {
63
+ return false;
64
+ }
65
+ return true;
66
+ }
67
+ const firstWord = /^([A-Za-z]+)/.exec(restTrim)?.[1]?.toLowerCase();
68
+ if (firstWord === "yes" || firstWord === "no") {
69
+ return true;
70
+ }
71
+ if (/^[A-Za-z]/.test(restTrim)) {
72
+ return false;
73
+ }
74
+ return true;
75
+ }
76
+ /**
77
+ * Detect truncated/unparseable JSON-shaped contract attempts. Only replies
78
+ * that *are* JSON-shaped (value prefix or open with a fence) count — a mid-prose
79
+ * mention of ```json or an incidental blob is not a contract attempt.
80
+ *
81
+ * Number/bool/null prefixes latch only for a complete JSON token (optionally
82
+ * with trailing junk). Numbered-list prose (`1. …`) and English continuations
83
+ * (`true story`, `3 findings`) must not latch — YES/NO salvage still applies.
84
+ */
85
+ function looksLikeJudgeJsonAttempt(text) {
86
+ const trimmed = text.trim();
87
+ if (JUDGE_JSON_FENCE_OPEN_PATTERN.test(trimmed)) {
88
+ return true;
89
+ }
90
+ if (/^["{[]/.test(trimmed)) {
91
+ return true;
92
+ }
93
+ const number = JUDGE_JSON_NUMBER_TOKEN.exec(trimmed);
94
+ if (number) {
95
+ const rest = trimmed.slice(number[0].length);
96
+ // `1. prose` / `10) prose` — list markers, not number-then-junk.
97
+ if (/^[.)]/.test(rest)) {
98
+ return false;
99
+ }
100
+ return jsonPrimitiveRemainderIsContract(rest);
101
+ }
102
+ const boolNull = JUDGE_JSON_BOOL_NULL_TOKEN.exec(trimmed);
103
+ if (boolNull) {
104
+ return jsonPrimitiveRemainderIsContract(trimmed.slice(boolNull[0].length));
105
+ }
106
+ return false;
107
+ }
108
+ /** Drop fenced bodies so legacy YES/NO does not match inside quoted JSON strings. */
109
+ function stripMarkdownFencesForLegacy(text) {
110
+ return text.replace(MARKDOWN_FENCE_STRIP_PATTERN, "\n");
111
+ }
112
+ /**
113
+ * True when the JSON contract body is array-shaped (`[` before any `{`),
114
+ * including truncated arrays. Object-extraction must not peel an inner
115
+ * `{…}` out of those replies.
116
+ */
117
+ function isArrayShapedJudgeJson(text) {
118
+ const trimmed = text.trim();
119
+ const fenced = trimmed.match(JSON_FENCE_PATTERN);
120
+ const body = fenced?.[1]?.trim() ?? trimmed;
121
+ const bracket = body.indexOf("[");
122
+ if (bracket === -1) {
123
+ return false;
124
+ }
125
+ const brace = body.indexOf("{");
126
+ return brace === -1 || bracket < brace;
127
+ }
128
+ const INVALID_JUDGE_JSON = {
129
+ pass: false,
130
+ rationale: "judge returned invalid JSON (expected { verdict, evidence, rationale })",
131
+ evidence: [],
132
+ valid: false,
133
+ };
134
+ function arrayLooksLikeJudgeContract(parsed) {
135
+ if (parsed.some((item) => item !== null &&
136
+ typeof item === "object" &&
137
+ !Array.isArray(item) &&
138
+ "verdict" in item)) {
139
+ return true;
140
+ }
141
+ // Wrong-shaped contract answers like `["yes"]` / `["no"]` — not incidental
142
+ // lists such as `[1,2,3]` or `["intro","summary"]`.
143
+ return (parsed.length > 0 &&
144
+ parsed.every((item) => typeof item === "string" && normalizeVerdict(item) !== undefined));
145
+ }
146
+ /** Peeled objects with judge-schema keys but no `verdict` are contract attempts. */
147
+ function objectLooksLikeJudgeSchema(record) {
148
+ return "evidence" in record || "rationale" in record;
149
+ }
150
+ /**
151
+ * Try structured judge JSON. `structured` latches only for real contract
152
+ * attempts: whole-text/fenced JSON bodies, verdict-shaped arrays or objects,
153
+ * or failed candidates carrying a `verdict` key — not incidental arrays,
154
+ * mid-prose truncated blobs, or fence mentions inside prose.
155
+ */
156
+ function tryParseJudgeJson(text) {
25
157
  const trimmed = text.trim();
26
158
  const candidates = [trimmed];
27
159
  const fenced = trimmed.match(JSON_FENCE_PATTERN);
28
- if (fenced?.[1]) {
29
- candidates.unshift(fenced[1].trim());
160
+ const fencedBody = fenced?.[1]?.trim();
161
+ if (fencedBody) {
162
+ candidates.unshift(fencedBody);
30
163
  }
31
- const objectMatch = trimmed.match(JSON_OBJECT_PATTERN);
32
- if (objectMatch?.[0]) {
33
- candidates.push(objectMatch[0]);
164
+ const arrayShaped = isArrayShapedJudgeJson(trimmed);
165
+ // Prose-prefixed single objects may still use greedy `{…}` extraction.
166
+ // Array-shaped replies (including truncated `[{…}`) must not peel inner objects.
167
+ if (!arrayShaped) {
168
+ const objectMatch = trimmed.match(JSON_OBJECT_PATTERN);
169
+ if (objectMatch?.[0]) {
170
+ candidates.push(objectMatch[0]);
171
+ }
172
+ const brace = trimmed.indexOf("{");
173
+ if (brace > 0) {
174
+ candidates.push(trimmed.slice(brace));
175
+ }
34
176
  }
177
+ else {
178
+ const bracket = trimmed.indexOf("[");
179
+ if (bracket >= 0) {
180
+ candidates.push(trimmed.slice(bracket));
181
+ }
182
+ }
183
+ // Contract peels under a prose preamble (not mid-prose incidental quotes):
184
+ // - line-leading `"…` / `[…` (`Answer:\n"yes"`)
185
+ // - line-leading JSON number/bool/null (`Answer:\n42\nYES`)
186
+ // - same-line after answer|verdict|line 1: (`Answer: "yes"`, `Verdict: 42`)
187
+ // Mid-line quotes without that prefix (`YES` + ```js\n"yes"\n```) stay
188
+ // incidental — fence bodies use `fencedBody` / whole-reply fence primary.
189
+ const lineLeadingJsonValues = new Set();
190
+ let insideFence = false;
191
+ const pushContractPeel = (value) => {
192
+ const peel = value.trim();
193
+ if (!peel) {
194
+ return;
195
+ }
196
+ candidates.push(peel);
197
+ lineLeadingJsonValues.add(peel);
198
+ };
199
+ const isLineLeadingJsonPrimitive = (lineTrim) => {
200
+ if (lineTrim.startsWith('"') || lineTrim.startsWith("[")) {
201
+ return true;
202
+ }
203
+ // Complete number/bool/null lines (optional contract junk) — not English
204
+ // (`3 findings`, `true story`) which looksLikeJudgeJsonAttempt rejects.
205
+ return (looksLikeJudgeJsonAttempt(lineTrim) &&
206
+ (JUDGE_JSON_NUMBER_TOKEN.test(lineTrim) || JUDGE_JSON_BOOL_NULL_TOKEN.test(lineTrim)));
207
+ };
208
+ for (const line of trimmed.split("\n")) {
209
+ const lineTrim = line.trim();
210
+ if (lineTrim.startsWith("```")) {
211
+ insideFence = !insideFence;
212
+ continue;
213
+ }
214
+ if (insideFence) {
215
+ continue;
216
+ }
217
+ if (isLineLeadingJsonPrimitive(lineTrim)) {
218
+ pushContractPeel(lineTrim);
219
+ }
220
+ const prefix = JUDGE_VERDICT_PREFIX_PATTERN.exec(lineTrim);
221
+ if (prefix) {
222
+ const remainder = lineTrim.slice(prefix[0].length).trim();
223
+ if (remainder.startsWith('"') ||
224
+ remainder.startsWith("[") ||
225
+ remainder.startsWith("{") ||
226
+ isLineLeadingJsonPrimitive(remainder)) {
227
+ pushContractPeel(remainder);
228
+ }
229
+ }
230
+ }
231
+ let structured = false;
232
+ let failedJsonShape = false;
233
+ // Only whole-reply fences are primary contract attempts. Mid-prose fences
234
+ // (e.g. YES + ```js\n"yes"\n```) stay incidental like unfenced peels.
235
+ const wholeReplyFence = JUDGE_JSON_FENCE_OPEN_PATTERN.test(trimmed);
35
236
  for (const candidate of candidates) {
237
+ const candidateTrim = candidate.trim();
238
+ const primary = candidateTrim === trimmed ||
239
+ (wholeReplyFence && fencedBody !== undefined && candidateTrim === fencedBody);
240
+ const lineLeading = lineLeadingJsonValues.has(candidateTrim);
36
241
  try {
37
242
  const parsed = JSON.parse(candidate);
38
- const verdict = normalizeVerdict(parsed.verdict);
243
+ if (parsed === null || typeof parsed !== "object") {
244
+ // Whole-text/fenced JSON primitives (`"yes"`, `42`, `true`, `null`)
245
+ // are contract attempts that violate the object contract — refuse
246
+ // and latch so callers do not YES/NO-salvage a quoted verdict.
247
+ // Preamble peels (`Answer:\n"yes"`, `Answer: "yes"`, `Answer:\n42`)
248
+ // are the same wrong-shaped contract; mid-line incidental quote
249
+ // peels stay out of `lineLeadingJsonValues`.
250
+ if (primary || lineLeading) {
251
+ return { result: { ...INVALID_JUDGE_JSON }, structured: true };
252
+ }
253
+ continue;
254
+ }
255
+ if (Array.isArray(parsed)) {
256
+ // Whole-text/fenced arrays are contract attempts; peeled arrays count
257
+ // when verdict-shaped or yes/no string arrays (`["yes"]`). Incidental
258
+ // lists (e.g. `Scores: [1,2,3]`) still allow YES/NO salvage.
259
+ if (primary || arrayLooksLikeJudgeContract(parsed)) {
260
+ return { result: { ...INVALID_JUDGE_JSON }, structured: true };
261
+ }
262
+ continue;
263
+ }
264
+ const record = parsed;
265
+ // Objects without `verdict`: schema-shaped peels (`evidence`/`rationale`)
266
+ // are failed contract attempts; bare quote blobs stay incidental.
267
+ if (!("verdict" in record)) {
268
+ if (primary || objectLooksLikeJudgeSchema(record)) {
269
+ return { result: { ...INVALID_JUDGE_JSON }, structured: true };
270
+ }
271
+ continue;
272
+ }
273
+ structured = true;
274
+ const verdict = normalizeVerdict(record.verdict);
39
275
  if (verdict !== undefined) {
40
276
  return {
41
- pass: verdict === "yes",
42
- rationale: String(parsed.rationale ?? "").trim() || "no rationale",
43
- evidence: Array.isArray(parsed.evidence)
44
- ? parsed.evidence.map((item) => String(item)).filter(Boolean)
45
- : [],
46
- valid: true,
277
+ result: {
278
+ pass: verdict === "yes",
279
+ rationale: String(record.rationale ?? "").trim() || "no rationale",
280
+ evidence: Array.isArray(record.evidence)
281
+ ? record.evidence.map((item) => String(item)).filter(Boolean)
282
+ : [],
283
+ valid: true,
284
+ },
285
+ structured: true,
47
286
  };
48
287
  }
288
+ return { result: { ...INVALID_JUDGE_JSON }, structured: true };
49
289
  }
50
290
  catch {
51
- // try next candidate
291
+ // A failed parse latches `structured` only for real contract attempts:
292
+ // the whole/fenced body is a JSON value (object/array/primitive),
293
+ // including trailing junk after a primitive (`"yes" clearly`), or a
294
+ // peeled candidate carries a `"verdict":` key (truncated contract).
295
+ // Line-leading string/array peels (`Answer:\n"yes" clearly`,
296
+ // `Answer:\n["yes"`) latch the same way. Mid-prose incidental peels
297
+ // (e.g. `Evidence: {"quote":"hello"`) keep YES/NO salvage available.
298
+ if (primary) {
299
+ if (looksLikeJudgeJsonAttempt(candidateTrim)) {
300
+ failedJsonShape = true;
301
+ }
302
+ }
303
+ else if ((candidateTrim.startsWith("{") || candidateTrim.startsWith("[")) &&
304
+ JUDGE_VERDICT_KEY_PATTERN.test(candidateTrim)) {
305
+ failedJsonShape = true;
306
+ }
307
+ else if (lineLeading && looksLikeJudgeJsonAttempt(candidateTrim)) {
308
+ failedJsonShape = true;
309
+ }
52
310
  }
53
311
  }
54
312
  return {
55
- pass: false,
56
- rationale: "judge returned invalid JSON (expected { verdict, evidence, rationale })",
57
- evidence: [],
58
- valid: false,
313
+ result: { ...INVALID_JUDGE_JSON },
314
+ structured: structured || failedJsonShape || looksLikeJudgeJsonAttempt(trimmed),
59
315
  };
60
316
  }
317
+ /** Parse structured judge JSON (`verdict`, `evidence`, `rationale`). */
318
+ export function parseJudgeJsonResponse(text) {
319
+ return tryParseJudgeJson(text).result;
320
+ }
61
321
  const JUDGE_MARKDOWN_TRIM_PATTERN = /^\*+\s*|\s*\*+$/g;
62
- const JUDGE_VERDICT_PREFIX_PATTERN = /^(?:answer|verdict|line\s*1)\s*:\s*/i;
63
322
  const JUDGE_TRAILING_PUNCT_PATTERN = /[.:!]+$/g;
64
323
  const JUDGE_TAIL_VERDICT_PATTERN = /\b(YES|NO)\.?\s*$/i;
65
324
  const JUDGE_INLINE_VERDICT_PATTERN = /\b(YES|NO)\b/i;
@@ -127,13 +386,20 @@ export function parseJudgeLegacyResponse(text) {
127
386
  valid: false,
128
387
  };
129
388
  }
130
- /** Parse structured JSON first, then legacy YES/NO prose. */
389
+ /**
390
+ * Parse structured JSON first, then legacy YES/NO prose.
391
+ * Once a real JSON contract attempt is detected (array, object with `verdict`,
392
+ * or truncated JSON-shaped text), never salvage YES/NO from the body — invalid
393
+ * contracts are infra failures, not rubric answers.
394
+ */
131
395
  export function parseJudgeResponse(text) {
132
- const json = parseJudgeJsonResponse(text);
133
- if (json.valid) {
134
- return json;
396
+ const { result, structured } = tryParseJudgeJson(text);
397
+ if (result.valid || structured) {
398
+ return result;
135
399
  }
136
- return parseJudgeLegacyResponse(text);
400
+ // Strip fences so preamble + ```json\n"yes"\n``` cannot salvage from the
401
+ // quoted primitive; outer YES/NO beside incidental fences still works.
402
+ return parseJudgeLegacyResponse(stripMarkdownFencesForLegacy(text));
137
403
  }
138
404
  function buildJudgePrompt(transcript, question) {
139
405
  return [
@@ -149,6 +415,22 @@ function buildJudgePrompt(transcript, question) {
149
415
  `Criterion: ${question}`,
150
416
  ].join("\n");
151
417
  }
418
+ function formatJudgeInfraError(result) {
419
+ const details = [];
420
+ if (result.rawStatus) {
421
+ details.push(`sdk: ${result.rawStatus}`);
422
+ }
423
+ if (result.sdkError?.code) {
424
+ details.push(`code: ${result.sdkError.code}`);
425
+ }
426
+ if (result.sdkError?.message) {
427
+ details.push(`error: ${result.sdkError.message}`);
428
+ }
429
+ if (details.length === 0) {
430
+ return `judge run status: ${result.status}`;
431
+ }
432
+ return `judge run status: ${result.status} (${details.join(", ")})`;
433
+ }
152
434
  async function runJudgePrompt(prompt, options) {
153
435
  const apiKey = options.apiKey ?? process.env.CURSOR_API_KEY;
154
436
  if (!apiKey) {
@@ -157,36 +439,60 @@ async function runJudgePrompt(prompt, options) {
157
439
  rationale: "CURSOR_API_KEY not set",
158
440
  evidence: [],
159
441
  error: "missing api key",
442
+ infraError: "missing api key",
443
+ durationMs: 0,
160
444
  };
161
445
  }
446
+ const started = performance.now();
162
447
  try {
163
448
  const result = await runJudgeClassifier({
164
449
  cwd: options.cwd,
165
450
  prompt,
166
451
  apiKey,
167
452
  });
453
+ const durationMs = Math.round(performance.now() - started);
168
454
  if (result.status !== "completed") {
455
+ const infraError = formatJudgeInfraError(result);
169
456
  return {
170
457
  pass: false,
171
- rationale: `judge run status: ${result.status}`,
458
+ rationale: infraError,
172
459
  evidence: [],
173
- error: `judge run status: ${result.status}`,
460
+ error: infraError,
461
+ infraError,
462
+ rawSdkStatus: result.rawStatus ?? result.status,
463
+ sdkError: result.sdkError,
464
+ durationMs,
174
465
  };
175
466
  }
176
467
  const parsed = parseJudgeResponse(result.text);
177
468
  if (!parsed.valid) {
469
+ const rationale = `${parsed.rationale} (raw: ${result.text.slice(0, 160) || "empty"})`;
178
470
  return {
179
471
  pass: false,
180
- rationale: `${parsed.rationale} (raw: ${result.text.slice(0, 160) || "empty"})`,
472
+ rationale,
181
473
  evidence: [],
182
- error: parsed.rationale,
474
+ error: rationale,
475
+ infraError: rationale,
476
+ durationMs,
183
477
  };
184
478
  }
185
- return { pass: parsed.pass, rationale: parsed.rationale, evidence: parsed.evidence };
479
+ return {
480
+ pass: parsed.pass,
481
+ rationale: parsed.rationale,
482
+ evidence: parsed.evidence,
483
+ durationMs,
484
+ };
186
485
  }
187
486
  catch (error) {
188
487
  const message = error instanceof Error ? error.message : "judge prompt failed";
189
- return { pass: false, rationale: message, evidence: [], error: message };
488
+ return {
489
+ pass: false,
490
+ rationale: message,
491
+ evidence: [],
492
+ error: message,
493
+ infraError: message,
494
+ durationMs: Math.round(performance.now() - started),
495
+ };
190
496
  }
191
497
  }
192
498
  /** Score fuzzy rubric criteria with a structured JSON judge (live runs only). */
@@ -203,6 +509,7 @@ export async function judgeTrace(trace, criteria, options) {
203
509
  };
204
510
  }
205
511
  const transcript = transcriptForJudge(trace);
512
+ const transcriptChars = transcript.length;
206
513
  const verdicts = [];
207
514
  for (const criterion of criteria) {
208
515
  const prompt = buildJudgePrompt(transcript, criterion.question);
@@ -212,6 +519,13 @@ export async function judgeTrace(trace, criteria, options) {
212
519
  pass: parsed.pass,
213
520
  rationale: parsed.rationale,
214
521
  evidence: parsed.evidence,
522
+ infraError: parsed.infraError,
523
+ rawSdkStatus: parsed.rawSdkStatus,
524
+ sdkError: parsed.sdkError,
525
+ attempt: 1,
526
+ durationMs: parsed.durationMs,
527
+ transcriptChars,
528
+ promptChars: prompt.length,
215
529
  });
216
530
  if (parsed.error) {
217
531
  return { verdicts, skipped: false, error: parsed.error };
package/dist/judge.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"judge.js","sourceRoot":"","sources":["../src/judge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"judge.js","sourceRoot":"","sources":["../src/judge.ts"],"names":[],"mappings":"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"}
package/dist/mcp.d.ts ADDED
@@ -0,0 +1,28 @@
1
+ /** Cursor SDK MCP server config (stdio or HTTP/SSE). */
2
+ export type McpServerConfig = {
3
+ type?: "stdio";
4
+ command: string;
5
+ args?: string[];
6
+ env?: Record<string, string>;
7
+ /** Local only — resolved relative to the agent cwd when relative. */
8
+ cwd?: string;
9
+ } | {
10
+ type?: "http" | "sse";
11
+ url: string;
12
+ headers?: Record<string, string>;
13
+ auth?: {
14
+ CLIENT_ID: string;
15
+ CLIENT_SECRET?: string;
16
+ scopes?: string[];
17
+ };
18
+ };
19
+ /** Expand `${VAR}` placeholders; throw if a referenced env var is missing. */
20
+ export declare function expandEnvPlaceholders(value: string, env?: NodeJS.ProcessEnv): string;
21
+ /** Resolve cwd-relative stdio paths and expand env placeholders for Agent.create. */
22
+ export declare function resolveMcpServers(servers: Record<string, McpServerConfig> | undefined, options?: {
23
+ cwd: string;
24
+ env?: NodeJS.ProcessEnv;
25
+ }): Record<string, McpServerConfig> | undefined;
26
+ /** Shallow-merge suite defaults with scenario overrides (scenario wins per server name). */
27
+ export declare function mergeMcpServers(defaults?: Record<string, McpServerConfig>, overrides?: Record<string, McpServerConfig>): Record<string, McpServerConfig> | undefined;
28
+ //# sourceMappingURL=mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAEA,wDAAwD;AACxD,MAAM,MAAM,eAAe,GACxB;IACA,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,qEAAqE;IACrE,GAAG,CAAC,EAAE,MAAM,CAAC;CACZ,GACD;IACA,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;CACD,CAAC;AAIL,8EAA8E;AAC9E,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAQjG;AAgBD,qFAAqF;AACrF,wBAAgB,iBAAiB,CAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,SAAS,EACpD,OAAO,GAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;CAA2B,GACxE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,SAAS,CAiD7C;AAED,4FAA4F;AAC5F,wBAAgB,eAAe,CAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAC1C,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GACzC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,SAAS,CAM7C"}
package/dist/mcp.js ADDED
@@ -0,0 +1,75 @@
1
+ import { isAbsolute, join } from "node:path";
2
+ const ENV_INTERPOLATION = /\$\{([A-Za-z_][A-Za-z0-9_]*)\}/g;
3
+ /** Expand `${VAR}` placeholders; throw if a referenced env var is missing. */
4
+ export function expandEnvPlaceholders(value, env = process.env) {
5
+ return value.replace(ENV_INTERPOLATION, (_match, name) => {
6
+ const resolved = env[name];
7
+ if (resolved === undefined) {
8
+ throw new Error(`MCP config references unset environment variable: ${name}`);
9
+ }
10
+ return resolved;
11
+ });
12
+ }
13
+ function expandRecord(record, env) {
14
+ if (!record) {
15
+ return undefined;
16
+ }
17
+ const out = {};
18
+ for (const [key, value] of Object.entries(record)) {
19
+ out[key] = expandEnvPlaceholders(value, env);
20
+ }
21
+ return out;
22
+ }
23
+ /** Resolve cwd-relative stdio paths and expand env placeholders for Agent.create. */
24
+ export function resolveMcpServers(servers, options = { cwd: process.cwd() }) {
25
+ if (!servers || Object.keys(servers).length === 0) {
26
+ return undefined;
27
+ }
28
+ const env = options.env ?? process.env;
29
+ const resolved = {};
30
+ for (const [name, config] of Object.entries(servers)) {
31
+ if ("command" in config && config.command) {
32
+ const serverCwd = config.cwd === undefined
33
+ ? options.cwd
34
+ : isAbsolute(config.cwd)
35
+ ? config.cwd
36
+ : join(options.cwd, config.cwd);
37
+ resolved[name] = {
38
+ type: config.type ?? "stdio",
39
+ command: expandEnvPlaceholders(config.command, env),
40
+ args: config.args?.map((arg) => expandEnvPlaceholders(arg, env)),
41
+ env: expandRecord(config.env, env),
42
+ cwd: serverCwd,
43
+ };
44
+ continue;
45
+ }
46
+ if ("url" in config && config.url) {
47
+ resolved[name] = {
48
+ type: config.type ?? "http",
49
+ url: expandEnvPlaceholders(config.url, env),
50
+ headers: expandRecord(config.headers, env),
51
+ auth: config.auth
52
+ ? {
53
+ CLIENT_ID: expandEnvPlaceholders(config.auth.CLIENT_ID, env),
54
+ CLIENT_SECRET: config.auth.CLIENT_SECRET === undefined
55
+ ? undefined
56
+ : expandEnvPlaceholders(config.auth.CLIENT_SECRET, env),
57
+ scopes: config.auth.scopes,
58
+ }
59
+ : undefined,
60
+ };
61
+ continue;
62
+ }
63
+ throw new Error(`Invalid MCP server "${name}": expected stdio command or http/sse url`);
64
+ }
65
+ return resolved;
66
+ }
67
+ /** Shallow-merge suite defaults with scenario overrides (scenario wins per server name). */
68
+ export function mergeMcpServers(defaults, overrides) {
69
+ if (!defaults && !overrides) {
70
+ return undefined;
71
+ }
72
+ const merged = { ...defaults, ...overrides };
73
+ return Object.keys(merged).length > 0 ? merged : undefined;
74
+ }
75
+ //# sourceMappingURL=mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  export type AgentHost = "cursor" | "claude" | "replay";
2
+ import type { McpServerConfig } from "./mcp.js";
2
3
  import type { RoutingContract } from "./routing-contract.js";
3
4
  import type { SkillContextMode } from "./skills-context.js";
5
+ export type { McpServerConfig } from "./mcp.js";
4
6
  export type { RoutingContract } from "./routing-contract.js";
5
7
  export type { SkillContextMode, SkillContextOptions, SkillContextSetting, } from "./skills-context.js";
6
8
  /** Which entry router to inject alongside shared skills context. */
@@ -14,6 +16,8 @@ export interface AgentMessage {
14
16
  export interface AgentToolCall {
15
17
  name: string;
16
18
  args?: Record<string, unknown>;
19
+ /** Tool output when the SDK stream includes it (including MCP tools). */
20
+ result?: string;
17
21
  /** Monotonic emission order shared with messages, for chronological interleaving. Absent on legacy/replay traces. */
18
22
  seq?: number;
19
23
  }
@@ -59,6 +63,8 @@ export interface RunAgentOptions {
59
63
  outputContract?: RoutingContract;
60
64
  /** Required when host is replay. */
61
65
  replayTracePath?: string;
66
+ /** Inline MCP servers for live Cursor runs (ignored by replay). */
67
+ mcpServers?: Record<string, McpServerConfig>;
62
68
  /** Hard cap on live Cursor stream + wait (replay ignores). */
63
69
  timeoutMs?: number;
64
70
  /** Fail fast when the agent invokes AskQuestion-style tools (default true for live). */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@post-print/agent-harness",
3
- "version": "0.1.13",
3
+ "version": "0.1.15",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",