@adcp/sdk 9.0.0-beta.27 → 9.0.0-beta.28

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 (54) hide show
  1. package/dist/lib/core/AgentClient.d.ts.map +1 -1
  2. package/dist/lib/core/SingleAgentClient.d.ts +9 -0
  3. package/dist/lib/core/SingleAgentClient.d.ts.map +1 -1
  4. package/dist/lib/core/SingleAgentClient.js +48 -0
  5. package/dist/lib/core/SingleAgentClient.js.map +1 -1
  6. package/dist/lib/errors/index.d.ts +43 -3
  7. package/dist/lib/errors/index.d.ts.map +1 -1
  8. package/dist/lib/errors/index.js +49 -4
  9. package/dist/lib/errors/index.js.map +1 -1
  10. package/dist/lib/index.d.ts +3 -2
  11. package/dist/lib/index.d.ts.map +1 -1
  12. package/dist/lib/index.js +31 -23
  13. package/dist/lib/index.js.map +1 -1
  14. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  15. package/dist/lib/testing/compliance/comply.d.ts.map +1 -1
  16. package/dist/lib/testing/compliance/comply.js +1 -0
  17. package/dist/lib/testing/compliance/comply.js.map +1 -1
  18. package/dist/lib/testing/compliance/types.d.ts +1 -0
  19. package/dist/lib/testing/compliance/types.d.ts.map +1 -1
  20. package/dist/lib/testing/storyboard/compliance.d.ts.map +1 -1
  21. package/dist/lib/testing/storyboard/compliance.js +25 -8
  22. package/dist/lib/testing/storyboard/compliance.js.map +1 -1
  23. package/dist/lib/testing/storyboard/default-invariants.js +12 -7
  24. package/dist/lib/testing/storyboard/default-invariants.js.map +1 -1
  25. package/dist/lib/testing/storyboard/probes.d.ts +4 -12
  26. package/dist/lib/testing/storyboard/probes.d.ts.map +1 -1
  27. package/dist/lib/testing/storyboard/probes.js +216 -153
  28. package/dist/lib/testing/storyboard/probes.js.map +1 -1
  29. package/dist/lib/testing/storyboard/runner.d.ts.map +1 -1
  30. package/dist/lib/testing/storyboard/runner.js +81 -5
  31. package/dist/lib/testing/storyboard/runner.js.map +1 -1
  32. package/dist/lib/testing/storyboard/types.d.ts +4 -0
  33. package/dist/lib/testing/storyboard/types.d.ts.map +1 -1
  34. package/dist/lib/testing/storyboard/types.js.map +1 -1
  35. package/dist/lib/testing/storyboard/validations.d.ts.map +1 -1
  36. package/dist/lib/testing/storyboard/validations.js +11 -5
  37. package/dist/lib/testing/storyboard/validations.js.map +1 -1
  38. package/dist/lib/utils/capabilities.d.ts +2 -0
  39. package/dist/lib/utils/capabilities.d.ts.map +1 -1
  40. package/dist/lib/utils/capabilities.js +24 -3
  41. package/dist/lib/utils/capabilities.js.map +1 -1
  42. package/dist/lib/utils/index.d.ts +1 -1
  43. package/dist/lib/utils/index.d.ts.map +1 -1
  44. package/dist/lib/utils/index.js.map +1 -1
  45. package/dist/lib/utils/preview-utils.d.ts +36 -1
  46. package/dist/lib/utils/preview-utils.d.ts.map +1 -1
  47. package/dist/lib/utils/preview-utils.js +53 -16
  48. package/dist/lib/utils/preview-utils.js.map +1 -1
  49. package/dist/lib/version.d.ts +3 -3
  50. package/dist/lib/version.js +3 -3
  51. package/docs/guides/BUILD-AN-AGENT.md +1 -1
  52. package/docs/guides/PREVIEW-ASSET-DURABILITY.md +157 -0
  53. package/package.json +2 -1
  54. package/skills/build-creative-agent/SKILL.md +2 -0
@@ -22,6 +22,7 @@ exports.rawA2aProbe = rawA2aProbe;
22
22
  * prior steps that carried `contributes_to`.
23
23
  */
24
24
  const crypto_1 = require("crypto");
25
+ const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
25
26
  const net_1 = require("../../net");
26
27
  Object.defineProperty(exports, "SsrfRefusedError", { enumerable: true, get: function () { return net_1.SsrfRefusedError; } });
27
28
  // Timeout + body-cap defaults come from `ssrfSafeFetch` (10 s, 64 KiB).
@@ -160,183 +161,245 @@ function base64url(buf) {
160
161
  // Raw-MCP probe (auth-override dispatch)
161
162
  // ---------------------------------------------------------------------------
162
163
  let probeRequestId = 0;
163
- /**
164
- * POST a JSON-RPC `tools/call` request to the MCP endpoint with caller-provided
165
- * headers. Bypasses the MCP SDK so auth overrides (none / literal / strategy)
166
- * can be exercised and the raw HTTP status + `WWW-Authenticate` header can be
167
- * captured.
168
- *
169
- * **Known limitation**: this probe skips MCP Streamable HTTP session
170
- * initialization (`initialize` + `tools/list`). Agents that enforce
171
- * session-init before `tools/call` will return `-32002 Session not initialized`
172
- * (or similar). The probe detects that response and reports
173
- * `error: 'session_not_initialized'` on the synthetic TaskResult so callers
174
- * don't mistake it for a valid auth rejection. For agents that gate auth at
175
- * the HTTP/transport layer (the common pattern) the 401 + WWW-Authenticate
176
- * fires before the session check, which is what this probe is designed to see.
177
- *
178
- * **Args are not secret** — must not contain credentials or PII. The server's
179
- * response body lands in `httpResult.body` and is written to compliance
180
- * reports. Outbound request body is not persisted.
181
- *
182
- * Returns an HttpProbeResult plus a synthetic TaskResult for steps that also
183
- * want to validate body shape — the structuredContent is unwrapped so
184
- * `field_present: "context"` resolves naturally.
185
- */
186
- async function rawMcpProbe(options) {
187
- const { agentUrl, toolName, args, headers = {}, allowPrivateIp = false } = options;
188
- const requestId = ++probeRequestId;
189
- const body = JSON.stringify({
190
- jsonrpc: '2.0',
191
- id: requestId,
192
- method: 'tools/call',
193
- params: { name: toolName, arguments: args },
194
- });
164
+ const MCP_SESSION_ID_HEADER = 'mcp-session-id';
165
+ const MCP_PROTOCOL_VERSION_HEADER = 'mcp-protocol-version';
166
+ async function postRawMcpJsonRpc(options) {
167
+ const { agentUrl, envelope, headers, allowPrivateIp, sessionId, protocolVersion, responseId, parseBody = true, allowEmptyBody = false, } = options;
195
168
  const httpResult = { url: agentUrl, status: 0, headers: {}, body: null };
196
169
  try {
197
- // Advertise both JSON and SSE so Streamable-HTTP MCP servers don't 406.
198
- // Strict MCP servers (e.g. those built on the official SDK) require the
199
- // client to accept both — they return SSE-framed responses for tools/call
200
- // even though the payload is a single JSON-RPC envelope. The probe parses
201
- // the SSE wire form below; the existing JSON branch is preserved for
202
- // servers that downgrade to plain JSON when offered both.
203
170
  const res = await (0, net_1.ssrfSafeFetch)(agentUrl, {
204
171
  method: 'POST',
205
172
  headers: {
206
173
  'content-type': 'application/json',
207
174
  accept: 'application/json, text/event-stream',
208
- ...headers,
175
+ ...withoutMcpSessionHeaders(headers),
176
+ ...(sessionId ? { [MCP_SESSION_ID_HEADER]: sessionId } : {}),
177
+ ...(protocolVersion ? { [MCP_PROTOCOL_VERSION_HEADER]: protocolVersion } : {}),
209
178
  },
210
- body,
179
+ body: JSON.stringify(envelope),
211
180
  allowPrivateIp,
212
181
  });
213
182
  httpResult.status = res.status;
214
183
  httpResult.headers = res.headers;
215
184
  const text = Buffer.from(res.body.buffer, res.body.byteOffset, res.body.byteLength).toString('utf8');
216
- let parsed;
185
+ if (!parseBody) {
186
+ httpResult.body = text || null;
187
+ return { httpResult };
188
+ }
189
+ if (allowEmptyBody && text.trim() === '') {
190
+ httpResult.body = null;
191
+ return { httpResult };
192
+ }
217
193
  try {
218
- const contentType = httpResult.headers['content-type'] ?? '';
219
- if (contentType.toLowerCase().includes('text/event-stream')) {
220
- // Streamable-HTTP MCP: the response is one or more SSE events whose
221
- // `data:` payloads are JSON-RPC envelopes. The spec lets a server
222
- // emit zero-or-more server-initiated frames (e.g.
223
- // `notifications/progress`) before the final tools/call response —
224
- // so picking the first `data:` line would parse the wrong envelope.
225
- // Walk every `data:` line, JSON-parse each, and pick the envelope
226
- // whose `id` matches the request. Fall back to the last parseable
227
- // envelope when no id matches (defensive — servers SHOULD include
228
- // `id` on the response per JSON-RPC 2.0).
229
- const dataLines = text.split(/\r?\n/).filter(l => l.startsWith('data:'));
230
- if (dataLines.length === 0)
231
- throw new Error('SSE response with no data event');
232
- let matched;
233
- let lastParsed;
234
- for (const line of dataLines) {
235
- const payload = line.slice('data:'.length).trim();
236
- if (!payload)
237
- continue;
238
- try {
239
- const envelope = JSON.parse(payload);
240
- lastParsed = envelope;
241
- if (envelope?.id === requestId) {
242
- matched = envelope;
243
- break;
244
- }
245
- }
246
- catch {
247
- // Skip non-JSON data lines (heartbeats, etc.); keep walking.
248
- }
249
- }
250
- parsed = matched ?? lastParsed;
251
- if (parsed === undefined)
252
- throw new Error('SSE response had data events but none were parseable JSON');
253
- }
254
- else {
255
- parsed = JSON.parse(text);
256
- }
194
+ const parsed = parseMcpJsonRpcResponse(text, httpResult.headers['content-type'], responseId);
195
+ httpResult.body = parsed;
196
+ return { httpResult, parsed };
257
197
  }
258
198
  catch {
259
199
  httpResult.body = text;
260
- // HTTP 400 with a plain-text body that signals a missing MCP session — e.g.
261
- // "Bad Request: Missing session ID" from strict Python-based servers. Detect
262
- // before falling back to the generic non-JSON message so compliance reports
263
- // show the session-init diagnostic rather than a bare HTTP 400.
264
- if (httpResult.status >= 400 && /missing session/i.test(text)) {
265
- return {
266
- httpResult,
267
- taskResult: {
268
- success: false,
269
- data: undefined,
270
- error: `MCP session not initialized (HTTP ${httpResult.status}: ${text.trim()}). rawMcpProbe skips the initialize handshake; strict servers will reject here before auth is evaluated.`,
271
- _extraction_path: 'error',
272
- },
273
- };
274
- }
275
- return {
276
- httpResult,
277
- taskResult: {
278
- success: false,
279
- data: undefined,
280
- error: `Non-JSON response body (content-type: ${httpResult.headers['content-type'] ?? 'unknown'}).`,
281
- _extraction_path: 'error',
282
- },
283
- };
284
- }
285
- httpResult.body = parsed;
286
- const rpc = parsed;
287
- // HTTP-level failure trumps the JSON-RPC envelope — a 401/500 with any body
288
- // shape is still a failure.
289
- if (httpResult.status >= 400) {
290
- return {
291
- httpResult,
292
- taskResult: {
293
- success: false,
294
- data: undefined,
295
- error: rpc.error?.message ?? `HTTP ${httpResult.status}`,
296
- _extraction_path: 'error',
297
- },
298
- };
299
- }
300
- if (rpc.error) {
301
- // MCP Streamable HTTP session-init errors — agents that require
302
- // `initialize` before `tools/call`. Distinct from auth failures so
303
- // downstream compliance reporting doesn't misdiagnose.
304
- const code = rpc.error.code;
305
- const isSessionInit = code === -32002 ||
306
- (typeof rpc.error.message === 'string' && /session.*(?:not.*)?initialized/i.test(rpc.error.message));
307
- return {
308
- httpResult,
309
- taskResult: {
310
- success: false,
311
- data: undefined,
312
- error: isSessionInit
313
- ? `MCP session not initialized (${code}: ${rpc.error.message ?? 'no message'}). rawMcpProbe skips the initialize handshake; strict servers will reject here before auth is evaluated.`
314
- : (rpc.error.message ?? `JSON-RPC error ${code}`),
315
- _extraction_path: 'error',
316
- },
317
- };
200
+ return { httpResult, parseError: true };
318
201
  }
319
- // Record which branch produced the data — rawMcpProbe reads the JSON-RPC
320
- // envelope directly, so the provenance is knowable here (unlike the SDK
321
- // path where we have to plumb it through the unwrapper).
322
- const structured = rpc.result?.structuredContent;
323
- const hasStructured = structured !== undefined && structured !== null;
324
- const data = hasStructured ? structured : rpc.result?.content;
325
- const isError = !!rpc.result?.isError;
326
- const extractionPath = isError
327
- ? 'error'
328
- : hasStructured
329
- ? 'structured_content'
330
- : data !== undefined && data !== null
331
- ? 'text_fallback'
332
- : 'none';
333
- return { httpResult, taskResult: { success: !isError, data, _extraction_path: extractionPath } };
334
202
  }
335
203
  catch (err) {
336
204
  httpResult.error = err instanceof Error ? err.message : String(err);
337
205
  return { httpResult };
338
206
  }
339
207
  }
208
+ function withoutMcpSessionHeaders(headers) {
209
+ const cleaned = {};
210
+ for (const [key, value] of Object.entries(headers)) {
211
+ const normalized = key.toLowerCase();
212
+ if (normalized === MCP_SESSION_ID_HEADER || normalized === MCP_PROTOCOL_VERSION_HEADER)
213
+ continue;
214
+ cleaned[key] = value;
215
+ }
216
+ return cleaned;
217
+ }
218
+ function parseMcpJsonRpcResponse(text, contentType, responseId) {
219
+ if (contentType?.toLowerCase().includes('text/event-stream')) {
220
+ // Streamable-HTTP MCP: the response is one or more SSE events whose
221
+ // `data:` payloads are JSON-RPC envelopes. The spec lets a server emit
222
+ // notifications before the final response, so choose the matching id.
223
+ const dataLines = text.split(/\r?\n/).filter(l => l.startsWith('data:'));
224
+ if (dataLines.length === 0)
225
+ throw new Error('SSE response with no data event');
226
+ let matched;
227
+ let lastParsed;
228
+ for (const line of dataLines) {
229
+ const payload = line.slice('data:'.length).trim();
230
+ if (!payload)
231
+ continue;
232
+ try {
233
+ const envelope = JSON.parse(payload);
234
+ lastParsed = envelope;
235
+ if (responseId !== undefined && envelope?.id === responseId) {
236
+ matched = envelope;
237
+ break;
238
+ }
239
+ }
240
+ catch {
241
+ // Skip non-JSON data lines (heartbeats, etc.); keep walking.
242
+ }
243
+ }
244
+ const parsed = matched ?? lastParsed;
245
+ if (parsed === undefined)
246
+ throw new Error('SSE response had data events but none were parseable JSON');
247
+ return parsed;
248
+ }
249
+ return JSON.parse(text);
250
+ }
251
+ function taskResultFromRpc(httpResult, rpc) {
252
+ if (httpResult.status >= 400) {
253
+ return {
254
+ success: false,
255
+ data: undefined,
256
+ error: rpc.error?.message ?? `HTTP ${httpResult.status}`,
257
+ _extraction_path: 'error',
258
+ };
259
+ }
260
+ if (rpc.error) {
261
+ const code = rpc.error.code;
262
+ return {
263
+ success: false,
264
+ data: undefined,
265
+ error: code !== undefined
266
+ ? `JSON-RPC error ${code}: ${rpc.error.message ?? 'no message'}`
267
+ : (rpc.error.message ?? 'JSON-RPC error (no code)'),
268
+ _extraction_path: 'error',
269
+ };
270
+ }
271
+ const structured = rpc.result?.structuredContent;
272
+ const hasStructured = structured !== undefined && structured !== null;
273
+ const data = hasStructured ? structured : rpc.result?.content;
274
+ const isError = !!rpc.result?.isError;
275
+ const extractionPath = isError
276
+ ? 'error'
277
+ : hasStructured
278
+ ? 'structured_content'
279
+ : data !== undefined && data !== null
280
+ ? 'text_fallback'
281
+ : 'none';
282
+ return { success: !isError, data, _extraction_path: extractionPath };
283
+ }
284
+ function failedTaskResult(message) {
285
+ return {
286
+ success: false,
287
+ data: undefined,
288
+ error: message,
289
+ _extraction_path: 'error',
290
+ };
291
+ }
292
+ function taskResultFromPostFailure(posted) {
293
+ if (posted.parseError) {
294
+ return failedTaskResult(`Non-JSON response body (content-type: ${posted.httpResult.headers['content-type'] ?? 'unknown'}).`);
295
+ }
296
+ if (posted.parsed)
297
+ return taskResultFromRpc(posted.httpResult, posted.parsed);
298
+ return failedTaskResult(posted.httpResult.error ?? `HTTP ${posted.httpResult.status}`);
299
+ }
300
+ /**
301
+ * POST a JSON-RPC `tools/call` request to the MCP endpoint with caller-provided
302
+ * headers. The probe first performs the Streamable HTTP initialize handshake,
303
+ * including `notifications/initialized`, so auth probes hit the same session
304
+ * boundary as normal MCP clients while still exposing raw HTTP status and
305
+ * `WWW-Authenticate` headers for security storyboards.
306
+ *
307
+ * **Args are not secret** — must not contain credentials or PII. The server's
308
+ * response body lands in `httpResult.body` and is written to compliance
309
+ * reports. Outbound request body is not persisted.
310
+ *
311
+ * Returns an HttpProbeResult plus a synthetic TaskResult for steps that also
312
+ * want to validate body shape — the structuredContent is unwrapped so
313
+ * `field_present: "context"` resolves naturally.
314
+ */
315
+ async function rawMcpProbe(options) {
316
+ const { agentUrl, toolName, args, headers = {}, allowPrivateIp = false } = options;
317
+ const initializeId = ++probeRequestId;
318
+ const initialize = await postRawMcpJsonRpc({
319
+ agentUrl,
320
+ envelope: {
321
+ jsonrpc: '2.0',
322
+ id: initializeId,
323
+ method: 'initialize',
324
+ params: {
325
+ protocolVersion: types_js_1.LATEST_PROTOCOL_VERSION,
326
+ capabilities: {},
327
+ clientInfo: { name: 'AdCP Storyboard Raw MCP Probe', version: '1.0.0' },
328
+ },
329
+ },
330
+ headers,
331
+ allowPrivateIp,
332
+ responseId: initializeId,
333
+ });
334
+ if (initialize.httpResult.error ||
335
+ initialize.httpResult.status >= 400 ||
336
+ !initialize.parsed ||
337
+ initialize.parsed.error) {
338
+ return {
339
+ httpResult: initialize.httpResult,
340
+ taskResult: taskResultFromPostFailure(initialize),
341
+ };
342
+ }
343
+ const negotiatedProtocolVersion = initialize.parsed.result?.protocolVersion;
344
+ if (typeof negotiatedProtocolVersion !== 'string' ||
345
+ !types_js_1.SUPPORTED_PROTOCOL_VERSIONS.includes(negotiatedProtocolVersion)) {
346
+ return {
347
+ httpResult: initialize.httpResult,
348
+ taskResult: failedTaskResult(negotiatedProtocolVersion
349
+ ? `Server's protocol version is not supported: ${negotiatedProtocolVersion}`
350
+ : 'Server sent invalid initialize result: missing protocolVersion'),
351
+ };
352
+ }
353
+ const sessionId = initialize.httpResult.headers[MCP_SESSION_ID_HEADER];
354
+ const initialized = await postRawMcpJsonRpc({
355
+ agentUrl,
356
+ envelope: {
357
+ jsonrpc: '2.0',
358
+ method: 'notifications/initialized',
359
+ params: {},
360
+ },
361
+ headers,
362
+ allowPrivateIp,
363
+ ...(sessionId && { sessionId }),
364
+ protocolVersion: negotiatedProtocolVersion,
365
+ allowEmptyBody: true,
366
+ });
367
+ if (initialized.httpResult.error ||
368
+ initialized.httpResult.status >= 400 ||
369
+ initialized.parseError ||
370
+ initialized.parsed?.error) {
371
+ return {
372
+ httpResult: initialized.httpResult,
373
+ taskResult: taskResultFromPostFailure(initialized),
374
+ };
375
+ }
376
+ const requestId = ++probeRequestId;
377
+ const toolEnvelope = {
378
+ jsonrpc: '2.0',
379
+ id: requestId,
380
+ method: 'tools/call',
381
+ params: { name: toolName, arguments: args },
382
+ };
383
+ const posted = await postRawMcpJsonRpc({
384
+ agentUrl,
385
+ envelope: toolEnvelope,
386
+ headers,
387
+ allowPrivateIp,
388
+ ...(sessionId && { sessionId }),
389
+ protocolVersion: negotiatedProtocolVersion,
390
+ responseId: requestId,
391
+ });
392
+ const { httpResult, parsed } = posted;
393
+ if (httpResult.error)
394
+ return { httpResult, taskResult: taskResultFromPostFailure(posted) };
395
+ if (!parsed) {
396
+ return {
397
+ httpResult,
398
+ taskResult: taskResultFromPostFailure(posted),
399
+ };
400
+ }
401
+ return { httpResult, taskResult: taskResultFromRpc(httpResult, parsed) };
402
+ }
340
403
  // ---------------------------------------------------------------------------
341
404
  // Raw-A2A probe (transport-layer diagnostics for A2A agents)
342
405
  // ---------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"probes.js","sourceRoot":"","sources":["../../../../src/lib/testing/storyboard/probes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"probes.js","sourceRoot":"","sources":["../../../../src/lib/testing/storyboard/probes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../../src/lib/testing/storyboard/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../../src/lib/testing/storyboard/runner.ts"],"names":[],"mappings":"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"}
@@ -3136,7 +3136,7 @@ client, step, phaseId, context, allSteps, options, state) {
3136
3136
  // 5. Empty object (only reachable for non-mutating tasks with neither fixture nor enricher)
3137
3137
  let request;
3138
3138
  if (options.request) {
3139
- request = { ...options.request };
3139
+ request = (0, context_1.injectContext)({ ...options.request }, context, runState.runnerVars);
3140
3140
  }
3141
3141
  else if (step.expect_error && step.sample_request) {
3142
3142
  request = (0, context_1.injectContext)({ ...step.sample_request }, context, runState.runnerVars);
@@ -3235,6 +3235,36 @@ client, step, phaseId, context, allSteps, options, state) {
3235
3235
  extraction: { path: 'none' },
3236
3236
  };
3237
3237
  }
3238
+ const unresolvedRunnerTokens = findUnresolvedRunnerTokens(request);
3239
+ if (unresolvedRunnerTokens.length > 0) {
3240
+ const isPrerequisiteFailure = hasUnresolvedPriorStepToken(unresolvedRunnerTokens);
3241
+ const skipReason = isPrerequisiteFailure ? 'prerequisite_failed' : 'not_applicable';
3242
+ const next = getNextStepPreview(step.id, allSteps, context, runState.runnerVars);
3243
+ const detail = 'Skipped: storyboard request references unresolved runner placeholders. ' +
3244
+ `Unresolved token(s): ${unresolvedRunnerTokens.join(', ')}.`;
3245
+ return {
3246
+ step_id: step.id,
3247
+ phase_id: phaseId,
3248
+ title: step.title,
3249
+ task: effectiveStep.task,
3250
+ passed: !isPrerequisiteFailure,
3251
+ skipped: true,
3252
+ skip_reason: skipReason,
3253
+ skip: buildSkip(skipReason, detail),
3254
+ duration_ms: 0,
3255
+ validations: [],
3256
+ context,
3257
+ next,
3258
+ ...(isPrerequisiteFailure ? { error: detail } : {}),
3259
+ request: {
3260
+ transport: options.protocol === 'a2a' ? 'a2a' : 'mcp',
3261
+ operation: effectiveStep.task,
3262
+ payload: (0, redact_secrets_1.redactSecrets)(request),
3263
+ ...(runState.agentUrl ? { url: runState.agentUrl } : {}),
3264
+ },
3265
+ extraction: { path: 'none' },
3266
+ };
3267
+ }
3238
3268
  // Execute the task. When the step overrides auth, dispatch via the raw MCP
3239
3269
  // probe so we can (a) strip credentials or send arbitrary Bearer values
3240
3270
  // (which the SDK transport doesn't expose), and (b) capture the HTTP status
@@ -4072,6 +4102,30 @@ client, step, phaseId, context, allSteps, options, runState) {
4072
4102
  error: detail,
4073
4103
  };
4074
4104
  }
4105
+ const unresolvedRunnerTokens = findUnresolvedRunnerTokens(resolvedTargetRequest);
4106
+ if (unresolvedRunnerTokens.length > 0) {
4107
+ const isPrerequisiteFailure = hasUnresolvedPriorStepToken(unresolvedRunnerTokens);
4108
+ const skipReason = isPrerequisiteFailure ? 'prerequisite_failed' : 'not_applicable';
4109
+ const next = getNextStepPreview(step.id, allSteps, context, runState.runnerVars);
4110
+ const detail = 'Skipped: rate_limit_trip target request references unresolved runner placeholders. ' +
4111
+ `Unresolved token(s): ${unresolvedRunnerTokens.join(', ')}.`;
4112
+ return {
4113
+ step_id: step.id,
4114
+ phase_id: phaseId,
4115
+ title: step.title,
4116
+ task: step.task,
4117
+ passed: !isPrerequisiteFailure,
4118
+ skipped: true,
4119
+ skip_reason: skipReason,
4120
+ skip: buildSkip(skipReason, detail),
4121
+ duration_ms: Date.now() - start,
4122
+ validations: [],
4123
+ context,
4124
+ next,
4125
+ extraction: { path: 'none' },
4126
+ ...(isPrerequisiteFailure ? { error: detail } : {}),
4127
+ };
4128
+ }
4075
4129
  const advertisedTools = resolveAdvertisedTools(options);
4076
4130
  if (advertisedTools && !advertisedTools.includes(rateLimitTrip.trip_target_task)) {
4077
4131
  const next = getNextStepPreview(step.id, allSteps, context, runState.runnerVars);
@@ -4213,7 +4267,7 @@ client, step, phaseId, context, allSteps, options, runState) {
4213
4267
  function buildEffectiveStepRequest(step, context, options, runState) {
4214
4268
  let request;
4215
4269
  if (options.request) {
4216
- request = { ...options.request };
4270
+ request = (0, context_1.injectContext)({ ...options.request }, context, runState.runnerVars);
4217
4271
  }
4218
4272
  else if (step.expect_error && step.sample_request) {
4219
4273
  request = (0, context_1.injectContext)({ ...step.sample_request }, context, runState.runnerVars);
@@ -5074,7 +5128,7 @@ function normalizeBasicCredentials(input, fieldPrefix) {
5074
5128
  }
5075
5129
  assertSafeAuthHeaderPart(input.credentials, `${fieldPrefix}.credentials`);
5076
5130
  const colonIndex = input.credentials.indexOf(':');
5077
- if (colonIndex <= 0 || colonIndex >= input.credentials.length - 1) {
5131
+ if (colonIndex <= 0) {
5078
5132
  throw new Error(`${fieldPrefix}.credentials must be in unencoded username:password form`);
5079
5133
  }
5080
5134
  return input.credentials;
@@ -5082,8 +5136,8 @@ function normalizeBasicCredentials(input, fieldPrefix) {
5082
5136
  if (typeof input.username !== 'string' || input.username.length === 0) {
5083
5137
  throw new Error(`${fieldPrefix}.username must be a non-empty string`);
5084
5138
  }
5085
- if (typeof input.password !== 'string' || input.password.length === 0) {
5086
- throw new Error(`${fieldPrefix}.password must be a non-empty string`);
5139
+ if (typeof input.password !== 'string') {
5140
+ throw new Error(`${fieldPrefix}.password must be a string`);
5087
5141
  }
5088
5142
  if (input.username.includes(':')) {
5089
5143
  throw new Error(`${fieldPrefix}.username must not contain colon (RFC 7617)`);
@@ -5477,6 +5531,28 @@ function findUnresolvedContextVars(obj) {
5477
5531
  walk(obj);
5478
5532
  return vars;
5479
5533
  }
5534
+ const UNRESOLVED_RUNNER_TOKEN_RE = /\{\{(?:runner\.(?:webhook_url:[A-Za-z0-9_]+|webhook_base)|prior_step\.[A-Za-z0-9_]+\.operation_id)\}\}/g;
5535
+ function findUnresolvedRunnerTokens(obj) {
5536
+ const vars = [];
5537
+ const walk = (val) => {
5538
+ if (typeof val === 'string') {
5539
+ const matches = val.match(UNRESOLVED_RUNNER_TOKEN_RE);
5540
+ if (matches)
5541
+ vars.push(...matches);
5542
+ }
5543
+ else if (Array.isArray(val)) {
5544
+ val.forEach(walk);
5545
+ }
5546
+ else if (val !== null && typeof val === 'object') {
5547
+ Object.values(val).forEach(walk);
5548
+ }
5549
+ };
5550
+ walk(obj);
5551
+ return [...new Set(vars)];
5552
+ }
5553
+ function hasUnresolvedPriorStepToken(tokens) {
5554
+ return tokens.some(token => token.startsWith('{{prior_step.'));
5555
+ }
5480
5556
  function flattenSteps(storyboard) {
5481
5557
  const result = [];
5482
5558
  let index = 0;