chore: sync from monorepo #276
pr-validation.yaml
on: pull_request
validate
/
validate
46s
Annotations
10 errors
|
tests/e2e/call-model-tools.test.ts > Enhanced Tool Support for callModel > Parallel Tool Execution > should return results in original tool call order regardless of completion order:
src/models/errors/unauthorizedresponseerror.ts#L66
UnauthorizedResponseError: Missing Authentication header
❯ Object.transform src/models/errors/unauthorizedresponseerror.ts:66:12
❯ Object.inst._zod.parse node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/classic/schemas.js:856:28
❯ handlePipeResult node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/core/schemas.js:1749:22
❯ Object.inst._zod.parse node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/core/schemas.js:1740:16
❯ Module.<anonymous> node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/core/parse.js:6:32
❯ _.inst.parse node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/classic/schemas.js:36:42
❯ safeParseResponse.request.request src/lib/matchers.ts:301:40
❯ safeParseResponse src/lib/matchers.ts:342:15
❯ matchFunc src/lib/matchers.ts:299:22
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { statusCode: 401, body: '{"error":{"message":"Missing Authentication header","code":401}}', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', get: 'Function<get>', has: 'Function<has>', set: 'Function<set>', getSetCookie: 'Function<getSetCookie>', keys: 'Function<keys>', values: 'Function<values>', entries: 'Function<entries>', forEach: 'Function<forEach>' }, contentType: 'application/json', rawResponse: { constructor: 'Function<Response>', type: 'basic', url: 'https://openrouter.ai/api/v1/responses', redirected: false, status: 401, ok: false, statusText: 'Unauthorized', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', get: 'Function<get>', has: 'Function<has>', set: 'Function<set>', getSetCookie: 'Function<getSetCookie>', keys: 'Function<keys>', values: 'Function<values>', entries: 'Function<entries>', forEach: 'Function<forEach>' }, body: { constructor: 'Function<ReadableStream>', locked: true, cancel: 'Function<cancel>', getReader: 'Function<getReader>', pipeThrough: 'Function<pipeThrough>', pipeTo: 'Function<pipeTo>', tee: 'Function<tee>', values: 'Function<values>' }, bodyUsed: true, clone: 'Function<clone>', blob: 'Function<blob>', arrayBuffer: 'Function<arrayBuffer>', text: 'Function<text>', json: 'Function<json>', formData: 'Function<formData>', bytes: 'Function<bytes>' }, 'data$': { error: { code: 401, message: 'Missing Authentication header' }, 'request$': { constructor: 'Function<Request>', method: 'POST', url: 'https://openrouter.ai/api/v1/responses', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', get: 'Function<get>', has: 'Function<has>', set: 'Function<set>', getSetCookie: 'Function<getSetCookie>', keys: 'Function<keys>', values: 'Function<values>', entries: 'Function<entries>', forEach: 'Function<forEach>' }, destination: '', referrer: 'about:client', referrerPolicy: '', mode: 'cors', credentials: 'same-origin', cache: 'default', redirect: 'follow', integrity: '', keepalive: false, isReloadNavigation: false, isHistoryNavigation: false, signal: { constructor: 'Function<AbortSignal>', aborted: false, reason: undefined, throwIfAborted: 'Function<throwIfAborted>', onabort: null, addEventListener: 'Function<addEventListener>', removeEventListener: 'Function<removeEventListener>', dispatchEvent: 'Function<dispatchEvent>' }, body: { constructor: 'Function<ReadableStream>', locked: false, cancel: 'Function<cancel>', getReader: 'Function<getReader>', pipeThrough: 'Function<pipeThrough>', pipeTo: 'Function<pipeTo>', tee: 'Function<tee>', values: 'Function<values>' }, bodyUsed: false, duplex: 'half', clone: 'Function<clone>', blob: 'Function<blob>', arrayBuffer: 'Function<arrayBuffer>', text: 'Function<text>', json: 'Function<json>', formData: 'Function<formData>', bytes: 'Function<bytes>', attribute: undefined }, 'response$': { constructor: 'Function<Response>', type: 'basic', url: 'https://openrouter.ai/api/v1/responses', redirected: false, status: 401, ok: false, statusText: 'Unauthorized', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', ge
|
|
tests/e2e/call-model-tools.test.ts > Enhanced Tool Support for callModel > Parallel Tool Execution > should collect all errors when multiple tools fail in parallel:
src/models/errors/unauthorizedresponseerror.ts#L66
UnauthorizedResponseError: Missing Authentication header
❯ Object.transform src/models/errors/unauthorizedresponseerror.ts:66:12
❯ Object.inst._zod.parse node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/classic/schemas.js:856:28
❯ handlePipeResult node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/core/schemas.js:1749:22
❯ Object.inst._zod.parse node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/core/schemas.js:1740:16
❯ Module.<anonymous> node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/core/parse.js:6:32
❯ _.inst.parse node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/classic/schemas.js:36:42
❯ safeParseResponse.request.request src/lib/matchers.ts:301:40
❯ safeParseResponse src/lib/matchers.ts:342:15
❯ matchFunc src/lib/matchers.ts:299:22
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { statusCode: 401, body: '{"error":{"message":"Missing Authentication header","code":401}}', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', get: 'Function<get>', has: 'Function<has>', set: 'Function<set>', getSetCookie: 'Function<getSetCookie>', keys: 'Function<keys>', values: 'Function<values>', entries: 'Function<entries>', forEach: 'Function<forEach>' }, contentType: 'application/json', rawResponse: { constructor: 'Function<Response>', type: 'basic', url: 'https://openrouter.ai/api/v1/responses', redirected: false, status: 401, ok: false, statusText: 'Unauthorized', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', get: 'Function<get>', has: 'Function<has>', set: 'Function<set>', getSetCookie: 'Function<getSetCookie>', keys: 'Function<keys>', values: 'Function<values>', entries: 'Function<entries>', forEach: 'Function<forEach>' }, body: { constructor: 'Function<ReadableStream>', locked: true, cancel: 'Function<cancel>', getReader: 'Function<getReader>', pipeThrough: 'Function<pipeThrough>', pipeTo: 'Function<pipeTo>', tee: 'Function<tee>', values: 'Function<values>' }, bodyUsed: true, clone: 'Function<clone>', blob: 'Function<blob>', arrayBuffer: 'Function<arrayBuffer>', text: 'Function<text>', json: 'Function<json>', formData: 'Function<formData>', bytes: 'Function<bytes>' }, 'data$': { error: { code: 401, message: 'Missing Authentication header' }, 'request$': { constructor: 'Function<Request>', method: 'POST', url: 'https://openrouter.ai/api/v1/responses', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', get: 'Function<get>', has: 'Function<has>', set: 'Function<set>', getSetCookie: 'Function<getSetCookie>', keys: 'Function<keys>', values: 'Function<values>', entries: 'Function<entries>', forEach: 'Function<forEach>' }, destination: '', referrer: 'about:client', referrerPolicy: '', mode: 'cors', credentials: 'same-origin', cache: 'default', redirect: 'follow', integrity: '', keepalive: false, isReloadNavigation: false, isHistoryNavigation: false, signal: { constructor: 'Function<AbortSignal>', aborted: false, reason: undefined, throwIfAborted: 'Function<throwIfAborted>', onabort: null, addEventListener: 'Function<addEventListener>', removeEventListener: 'Function<removeEventListener>', dispatchEvent: 'Function<dispatchEvent>' }, body: { constructor: 'Function<ReadableStream>', locked: false, cancel: 'Function<cancel>', getReader: 'Function<getReader>', pipeThrough: 'Function<pipeThrough>', pipeTo: 'Function<pipeTo>', tee: 'Function<tee>', values: 'Function<values>' }, bodyUsed: false, duplex: 'half', clone: 'Function<clone>', blob: 'Function<blob>', arrayBuffer: 'Function<arrayBuffer>', text: 'Function<text>', json: 'Function<json>', formData: 'Function<formData>', bytes: 'Function<bytes>', attribute: undefined }, 'response$': { constructor: 'Function<Response>', type: 'basic', url: 'https://openrouter.ai/api/v1/responses', redirected: false, status: 401, ok: false, statusText: 'Unauthorized', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', ge
|
|
tests/e2e/call-model-tools.test.ts > Enhanced Tool Support for callModel > Parallel Tool Execution > should execute multiple tools in parallel:
src/models/errors/unauthorizedresponseerror.ts#L66
UnauthorizedResponseError: Missing Authentication header
❯ Object.transform src/models/errors/unauthorizedresponseerror.ts:66:12
❯ Object.inst._zod.parse node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/classic/schemas.js:856:28
❯ handlePipeResult node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/core/schemas.js:1749:22
❯ Object.inst._zod.parse node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/core/schemas.js:1740:16
❯ Module.<anonymous> node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/core/parse.js:6:32
❯ _.inst.parse node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/classic/schemas.js:36:42
❯ safeParseResponse.request.request src/lib/matchers.ts:301:40
❯ safeParseResponse src/lib/matchers.ts:342:15
❯ matchFunc src/lib/matchers.ts:299:22
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { statusCode: 401, body: '{"error":{"message":"Missing Authentication header","code":401}}', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', get: 'Function<get>', has: 'Function<has>', set: 'Function<set>', getSetCookie: 'Function<getSetCookie>', keys: 'Function<keys>', values: 'Function<values>', entries: 'Function<entries>', forEach: 'Function<forEach>' }, contentType: 'application/json', rawResponse: { constructor: 'Function<Response>', type: 'basic', url: 'https://openrouter.ai/api/v1/responses', redirected: false, status: 401, ok: false, statusText: 'Unauthorized', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', get: 'Function<get>', has: 'Function<has>', set: 'Function<set>', getSetCookie: 'Function<getSetCookie>', keys: 'Function<keys>', values: 'Function<values>', entries: 'Function<entries>', forEach: 'Function<forEach>' }, body: { constructor: 'Function<ReadableStream>', locked: true, cancel: 'Function<cancel>', getReader: 'Function<getReader>', pipeThrough: 'Function<pipeThrough>', pipeTo: 'Function<pipeTo>', tee: 'Function<tee>', values: 'Function<values>' }, bodyUsed: true, clone: 'Function<clone>', blob: 'Function<blob>', arrayBuffer: 'Function<arrayBuffer>', text: 'Function<text>', json: 'Function<json>', formData: 'Function<formData>', bytes: 'Function<bytes>' }, 'data$': { error: { code: 401, message: 'Missing Authentication header' }, 'request$': { constructor: 'Function<Request>', method: 'POST', url: 'https://openrouter.ai/api/v1/responses', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', get: 'Function<get>', has: 'Function<has>', set: 'Function<set>', getSetCookie: 'Function<getSetCookie>', keys: 'Function<keys>', values: 'Function<values>', entries: 'Function<entries>', forEach: 'Function<forEach>' }, destination: '', referrer: 'about:client', referrerPolicy: '', mode: 'cors', credentials: 'same-origin', cache: 'default', redirect: 'follow', integrity: '', keepalive: false, isReloadNavigation: false, isHistoryNavigation: false, signal: { constructor: 'Function<AbortSignal>', aborted: false, reason: undefined, throwIfAborted: 'Function<throwIfAborted>', onabort: null, addEventListener: 'Function<addEventListener>', removeEventListener: 'Function<removeEventListener>', dispatchEvent: 'Function<dispatchEvent>' }, body: { constructor: 'Function<ReadableStream>', locked: false, cancel: 'Function<cancel>', getReader: 'Function<getReader>', pipeThrough: 'Function<pipeThrough>', pipeTo: 'Function<pipeTo>', tee: 'Function<tee>', values: 'Function<values>' }, bodyUsed: false, duplex: 'half', clone: 'Function<clone>', blob: 'Function<blob>', arrayBuffer: 'Function<arrayBuffer>', text: 'Function<text>', json: 'Function<json>', formData: 'Function<formData>', bytes: 'Function<bytes>', attribute: undefined }, 'response$': { constructor: 'Function<Response>', type: 'basic', url: 'https://openrouter.ai/api/v1/responses', redirected: false, status: 401, ok: false, statusText: 'Unauthorized', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', ge
|
|
tests/e2e/call-model-tools.test.ts > Enhanced Tool Support for callModel > Integration with OpenRouter API > should handle multi-turn conversation with tool execution:
src/models/errors/unauthorizedresponseerror.ts#L66
UnauthorizedResponseError: Missing Authentication header
❯ Object.transform src/models/errors/unauthorizedresponseerror.ts:66:12
❯ Object.inst._zod.parse node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/classic/schemas.js:856:28
❯ handlePipeResult node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/core/schemas.js:1749:22
❯ Object.inst._zod.parse node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/core/schemas.js:1740:16
❯ Module.<anonymous> node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/core/parse.js:6:32
❯ _.inst.parse node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/classic/schemas.js:36:42
❯ safeParseResponse.request.request src/lib/matchers.ts:301:40
❯ safeParseResponse src/lib/matchers.ts:342:15
❯ matchFunc src/lib/matchers.ts:299:22
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { statusCode: 401, body: '{"error":{"message":"Missing Authentication header","code":401}}', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', get: 'Function<get>', has: 'Function<has>', set: 'Function<set>', getSetCookie: 'Function<getSetCookie>', keys: 'Function<keys>', values: 'Function<values>', entries: 'Function<entries>', forEach: 'Function<forEach>' }, contentType: 'application/json', rawResponse: { constructor: 'Function<Response>', type: 'basic', url: 'https://openrouter.ai/api/v1/responses', redirected: false, status: 401, ok: false, statusText: 'Unauthorized', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', get: 'Function<get>', has: 'Function<has>', set: 'Function<set>', getSetCookie: 'Function<getSetCookie>', keys: 'Function<keys>', values: 'Function<values>', entries: 'Function<entries>', forEach: 'Function<forEach>' }, body: { constructor: 'Function<ReadableStream>', locked: true, cancel: 'Function<cancel>', getReader: 'Function<getReader>', pipeThrough: 'Function<pipeThrough>', pipeTo: 'Function<pipeTo>', tee: 'Function<tee>', values: 'Function<values>' }, bodyUsed: true, clone: 'Function<clone>', blob: 'Function<blob>', arrayBuffer: 'Function<arrayBuffer>', text: 'Function<text>', json: 'Function<json>', formData: 'Function<formData>', bytes: 'Function<bytes>' }, 'data$': { error: { code: 401, message: 'Missing Authentication header' }, 'request$': { constructor: 'Function<Request>', method: 'POST', url: 'https://openrouter.ai/api/v1/responses', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', get: 'Function<get>', has: 'Function<has>', set: 'Function<set>', getSetCookie: 'Function<getSetCookie>', keys: 'Function<keys>', values: 'Function<values>', entries: 'Function<entries>', forEach: 'Function<forEach>' }, destination: '', referrer: 'about:client', referrerPolicy: '', mode: 'cors', credentials: 'same-origin', cache: 'default', redirect: 'follow', integrity: '', keepalive: false, isReloadNavigation: false, isHistoryNavigation: false, signal: { constructor: 'Function<AbortSignal>', aborted: false, reason: undefined, throwIfAborted: 'Function<throwIfAborted>', onabort: null, addEventListener: 'Function<addEventListener>', removeEventListener: 'Function<removeEventListener>', dispatchEvent: 'Function<dispatchEvent>' }, body: { constructor: 'Function<ReadableStream>', locked: false, cancel: 'Function<cancel>', getReader: 'Function<getReader>', pipeThrough: 'Function<pipeThrough>', pipeTo: 'Function<pipeTo>', tee: 'Function<tee>', values: 'Function<values>' }, bodyUsed: false, duplex: 'half', clone: 'Function<clone>', blob: 'Function<blob>', arrayBuffer: 'Function<arrayBuffer>', text: 'Function<text>', json: 'Function<json>', formData: 'Function<formData>', bytes: 'Function<bytes>', attribute: undefined }, 'response$': { constructor: 'Function<Response>', type: 'basic', url: 'https://openrouter.ai/api/v1/responses', redirected: false, status: 401, ok: false, statusText: 'Unauthorized', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', ge
|
|
tests/e2e/call-model-tools.test.ts > Enhanced Tool Support for callModel > Integration with OpenRouter API > should send tool call to API and receive tool call response:
src/models/errors/unauthorizedresponseerror.ts#L66
UnauthorizedResponseError: Missing Authentication header
❯ Object.transform src/models/errors/unauthorizedresponseerror.ts:66:12
❯ Object.inst._zod.parse node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/classic/schemas.js:856:28
❯ handlePipeResult node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/core/schemas.js:1749:22
❯ Object.inst._zod.parse node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/core/schemas.js:1740:16
❯ Module.<anonymous> node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/core/parse.js:6:32
❯ _.inst.parse node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/classic/schemas.js:36:42
❯ safeParseResponse.request.request src/lib/matchers.ts:301:40
❯ safeParseResponse src/lib/matchers.ts:342:15
❯ matchFunc src/lib/matchers.ts:299:22
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { statusCode: 401, body: '{"error":{"message":"Missing Authentication header","code":401}}', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', get: 'Function<get>', has: 'Function<has>', set: 'Function<set>', getSetCookie: 'Function<getSetCookie>', keys: 'Function<keys>', values: 'Function<values>', entries: 'Function<entries>', forEach: 'Function<forEach>' }, contentType: 'application/json', rawResponse: { constructor: 'Function<Response>', type: 'basic', url: 'https://openrouter.ai/api/v1/responses', redirected: false, status: 401, ok: false, statusText: 'Unauthorized', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', get: 'Function<get>', has: 'Function<has>', set: 'Function<set>', getSetCookie: 'Function<getSetCookie>', keys: 'Function<keys>', values: 'Function<values>', entries: 'Function<entries>', forEach: 'Function<forEach>' }, body: { constructor: 'Function<ReadableStream>', locked: true, cancel: 'Function<cancel>', getReader: 'Function<getReader>', pipeThrough: 'Function<pipeThrough>', pipeTo: 'Function<pipeTo>', tee: 'Function<tee>', values: 'Function<values>' }, bodyUsed: true, clone: 'Function<clone>', blob: 'Function<blob>', arrayBuffer: 'Function<arrayBuffer>', text: 'Function<text>', json: 'Function<json>', formData: 'Function<formData>', bytes: 'Function<bytes>' }, 'data$': { error: { code: 401, message: 'Missing Authentication header' }, 'request$': { constructor: 'Function<Request>', method: 'POST', url: 'https://openrouter.ai/api/v1/responses', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', get: 'Function<get>', has: 'Function<has>', set: 'Function<set>', getSetCookie: 'Function<getSetCookie>', keys: 'Function<keys>', values: 'Function<values>', entries: 'Function<entries>', forEach: 'Function<forEach>' }, destination: '', referrer: 'about:client', referrerPolicy: '', mode: 'cors', credentials: 'same-origin', cache: 'default', redirect: 'follow', integrity: '', keepalive: false, isReloadNavigation: false, isHistoryNavigation: false, signal: { constructor: 'Function<AbortSignal>', aborted: false, reason: undefined, throwIfAborted: 'Function<throwIfAborted>', onabort: null, addEventListener: 'Function<addEventListener>', removeEventListener: 'Function<removeEventListener>', dispatchEvent: 'Function<dispatchEvent>' }, body: { constructor: 'Function<ReadableStream>', locked: false, cancel: 'Function<cancel>', getReader: 'Function<getReader>', pipeThrough: 'Function<pipeThrough>', pipeTo: 'Function<pipeTo>', tee: 'Function<tee>', values: 'Function<values>' }, bodyUsed: false, duplex: 'half', clone: 'Function<clone>', blob: 'Function<blob>', arrayBuffer: 'Function<arrayBuffer>', text: 'Function<text>', json: 'Function<json>', formData: 'Function<formData>', bytes: 'Function<bytes>', attribute: undefined }, 'response$': { constructor: 'Function<Response>', type: 'basic', url: 'https://openrouter.ai/api/v1/responses', redirected: false, status: 401, ok: false, statusText: 'Unauthorized', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', ge
|
|
tests/e2e/call-model-state.test.ts > State Management Integration > Tool Execution with State > should accumulate messages in state during multi-turn:
src/models/errors/unauthorizedresponseerror.ts#L66
UnauthorizedResponseError: Missing Authentication header
❯ Object.transform src/models/errors/unauthorizedresponseerror.ts:66:12
❯ Object.inst._zod.parse node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/classic/schemas.js:856:28
❯ handlePipeResult node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/core/schemas.js:1749:22
❯ Object.inst._zod.parse node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/core/schemas.js:1740:16
❯ Module.<anonymous> node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/core/parse.js:6:32
❯ _.inst.parse node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/classic/schemas.js:36:42
❯ safeParseResponse.request.request src/lib/matchers.ts:301:40
❯ safeParseResponse src/lib/matchers.ts:342:15
❯ matchFunc src/lib/matchers.ts:299:22
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { statusCode: 401, body: '{"error":{"message":"Missing Authentication header","code":401}}', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', get: 'Function<get>', has: 'Function<has>', set: 'Function<set>', getSetCookie: 'Function<getSetCookie>', keys: 'Function<keys>', values: 'Function<values>', entries: 'Function<entries>', forEach: 'Function<forEach>' }, contentType: 'application/json', rawResponse: { constructor: 'Function<Response>', type: 'basic', url: 'https://openrouter.ai/api/v1/responses', redirected: false, status: 401, ok: false, statusText: 'Unauthorized', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', get: 'Function<get>', has: 'Function<has>', set: 'Function<set>', getSetCookie: 'Function<getSetCookie>', keys: 'Function<keys>', values: 'Function<values>', entries: 'Function<entries>', forEach: 'Function<forEach>' }, body: { constructor: 'Function<ReadableStream>', locked: true, cancel: 'Function<cancel>', getReader: 'Function<getReader>', pipeThrough: 'Function<pipeThrough>', pipeTo: 'Function<pipeTo>', tee: 'Function<tee>', values: 'Function<values>' }, bodyUsed: true, clone: 'Function<clone>', blob: 'Function<blob>', arrayBuffer: 'Function<arrayBuffer>', text: 'Function<text>', json: 'Function<json>', formData: 'Function<formData>', bytes: 'Function<bytes>' }, 'data$': { error: { code: 401, message: 'Missing Authentication header' }, 'request$': { constructor: 'Function<Request>', method: 'POST', url: 'https://openrouter.ai/api/v1/responses', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', get: 'Function<get>', has: 'Function<has>', set: 'Function<set>', getSetCookie: 'Function<getSetCookie>', keys: 'Function<keys>', values: 'Function<values>', entries: 'Function<entries>', forEach: 'Function<forEach>' }, destination: '', referrer: 'about:client', referrerPolicy: '', mode: 'cors', credentials: 'same-origin', cache: 'default', redirect: 'follow', integrity: '', keepalive: false, isReloadNavigation: false, isHistoryNavigation: false, signal: { constructor: 'Function<AbortSignal>', aborted: false, reason: undefined, throwIfAborted: 'Function<throwIfAborted>', onabort: null, addEventListener: 'Function<addEventListener>', removeEventListener: 'Function<removeEventListener>', dispatchEvent: 'Function<dispatchEvent>' }, body: { constructor: 'Function<ReadableStream>', locked: false, cancel: 'Function<cancel>', getReader: 'Function<getReader>', pipeThrough: 'Function<pipeThrough>', pipeTo: 'Function<pipeTo>', tee: 'Function<tee>', values: 'Function<values>' }, bodyUsed: false, duplex: 'half', clone: 'Function<clone>', blob: 'Function<blob>', arrayBuffer: 'Function<arrayBuffer>', text: 'Function<text>', json: 'Function<json>', formData: 'Function<formData>', bytes: 'Function<bytes>', attribute: undefined }, 'response$': { constructor: 'Function<Response>', type: 'basic', url: 'https://openrouter.ai/api/v1/responses', redirected: false, status: 401, ok: false, statusText: 'Unauthorized', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', ge
|
|
tests/e2e/call-model-state.test.ts > State Management Integration > Approval Workflow > should use custom requireApproval function:
src/models/errors/unauthorizedresponseerror.ts#L66
UnauthorizedResponseError: Missing Authentication header
❯ Object.transform src/models/errors/unauthorizedresponseerror.ts:66:12
❯ Object.inst._zod.parse node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/classic/schemas.js:856:28
❯ handlePipeResult node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/core/schemas.js:1749:22
❯ Object.inst._zod.parse node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/core/schemas.js:1740:16
❯ Module.<anonymous> node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/core/parse.js:6:32
❯ _.inst.parse node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/classic/schemas.js:36:42
❯ safeParseResponse.request.request src/lib/matchers.ts:301:40
❯ safeParseResponse src/lib/matchers.ts:342:15
❯ matchFunc src/lib/matchers.ts:299:22
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { statusCode: 401, body: '{"error":{"message":"Missing Authentication header","code":401}}', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', get: 'Function<get>', has: 'Function<has>', set: 'Function<set>', getSetCookie: 'Function<getSetCookie>', keys: 'Function<keys>', values: 'Function<values>', entries: 'Function<entries>', forEach: 'Function<forEach>' }, contentType: 'application/json', rawResponse: { constructor: 'Function<Response>', type: 'basic', url: 'https://openrouter.ai/api/v1/responses', redirected: false, status: 401, ok: false, statusText: 'Unauthorized', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', get: 'Function<get>', has: 'Function<has>', set: 'Function<set>', getSetCookie: 'Function<getSetCookie>', keys: 'Function<keys>', values: 'Function<values>', entries: 'Function<entries>', forEach: 'Function<forEach>' }, body: { constructor: 'Function<ReadableStream>', locked: true, cancel: 'Function<cancel>', getReader: 'Function<getReader>', pipeThrough: 'Function<pipeThrough>', pipeTo: 'Function<pipeTo>', tee: 'Function<tee>', values: 'Function<values>' }, bodyUsed: true, clone: 'Function<clone>', blob: 'Function<blob>', arrayBuffer: 'Function<arrayBuffer>', text: 'Function<text>', json: 'Function<json>', formData: 'Function<formData>', bytes: 'Function<bytes>' }, 'data$': { error: { code: 401, message: 'Missing Authentication header' }, 'request$': { constructor: 'Function<Request>', method: 'POST', url: 'https://openrouter.ai/api/v1/responses', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', get: 'Function<get>', has: 'Function<has>', set: 'Function<set>', getSetCookie: 'Function<getSetCookie>', keys: 'Function<keys>', values: 'Function<values>', entries: 'Function<entries>', forEach: 'Function<forEach>' }, destination: '', referrer: 'about:client', referrerPolicy: '', mode: 'cors', credentials: 'same-origin', cache: 'default', redirect: 'follow', integrity: '', keepalive: false, isReloadNavigation: false, isHistoryNavigation: false, signal: { constructor: 'Function<AbortSignal>', aborted: false, reason: undefined, throwIfAborted: 'Function<throwIfAborted>', onabort: null, addEventListener: 'Function<addEventListener>', removeEventListener: 'Function<removeEventListener>', dispatchEvent: 'Function<dispatchEvent>' }, body: { constructor: 'Function<ReadableStream>', locked: false, cancel: 'Function<cancel>', getReader: 'Function<getReader>', pipeThrough: 'Function<pipeThrough>', pipeTo: 'Function<pipeTo>', tee: 'Function<tee>', values: 'Function<values>' }, bodyUsed: false, duplex: 'half', clone: 'Function<clone>', blob: 'Function<blob>', arrayBuffer: 'Function<arrayBuffer>', text: 'Function<text>', json: 'Function<json>', formData: 'Function<formData>', bytes: 'Function<bytes>', attribute: undefined }, 'response$': { constructor: 'Function<Response>', type: 'basic', url: 'https://openrouter.ai/api/v1/responses', redirected: false, status: 401, ok: false, statusText: 'Unauthorized', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', ge
|
|
tests/e2e/call-model-state.test.ts > State Management Integration > Approval Workflow > should identify tools requiring approval:
src/models/errors/unauthorizedresponseerror.ts#L66
UnauthorizedResponseError: Missing Authentication header
❯ Object.transform src/models/errors/unauthorizedresponseerror.ts:66:12
❯ Object.inst._zod.parse node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/classic/schemas.js:856:28
❯ handlePipeResult node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/core/schemas.js:1749:22
❯ Object.inst._zod.parse node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/core/schemas.js:1740:16
❯ Module.<anonymous> node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/core/parse.js:6:32
❯ _.inst.parse node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/classic/schemas.js:36:42
❯ safeParseResponse.request.request src/lib/matchers.ts:301:40
❯ safeParseResponse src/lib/matchers.ts:342:15
❯ matchFunc src/lib/matchers.ts:299:22
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { statusCode: 401, body: '{"error":{"message":"Missing Authentication header","code":401}}', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', get: 'Function<get>', has: 'Function<has>', set: 'Function<set>', getSetCookie: 'Function<getSetCookie>', keys: 'Function<keys>', values: 'Function<values>', entries: 'Function<entries>', forEach: 'Function<forEach>' }, contentType: 'application/json', rawResponse: { constructor: 'Function<Response>', type: 'basic', url: 'https://openrouter.ai/api/v1/responses', redirected: false, status: 401, ok: false, statusText: 'Unauthorized', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', get: 'Function<get>', has: 'Function<has>', set: 'Function<set>', getSetCookie: 'Function<getSetCookie>', keys: 'Function<keys>', values: 'Function<values>', entries: 'Function<entries>', forEach: 'Function<forEach>' }, body: { constructor: 'Function<ReadableStream>', locked: true, cancel: 'Function<cancel>', getReader: 'Function<getReader>', pipeThrough: 'Function<pipeThrough>', pipeTo: 'Function<pipeTo>', tee: 'Function<tee>', values: 'Function<values>' }, bodyUsed: true, clone: 'Function<clone>', blob: 'Function<blob>', arrayBuffer: 'Function<arrayBuffer>', text: 'Function<text>', json: 'Function<json>', formData: 'Function<formData>', bytes: 'Function<bytes>' }, 'data$': { error: { code: 401, message: 'Missing Authentication header' }, 'request$': { constructor: 'Function<Request>', method: 'POST', url: 'https://openrouter.ai/api/v1/responses', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', get: 'Function<get>', has: 'Function<has>', set: 'Function<set>', getSetCookie: 'Function<getSetCookie>', keys: 'Function<keys>', values: 'Function<values>', entries: 'Function<entries>', forEach: 'Function<forEach>' }, destination: '', referrer: 'about:client', referrerPolicy: '', mode: 'cors', credentials: 'same-origin', cache: 'default', redirect: 'follow', integrity: '', keepalive: false, isReloadNavigation: false, isHistoryNavigation: false, signal: { constructor: 'Function<AbortSignal>', aborted: false, reason: undefined, throwIfAborted: 'Function<throwIfAborted>', onabort: null, addEventListener: 'Function<addEventListener>', removeEventListener: 'Function<removeEventListener>', dispatchEvent: 'Function<dispatchEvent>' }, body: { constructor: 'Function<ReadableStream>', locked: false, cancel: 'Function<cancel>', getReader: 'Function<getReader>', pipeThrough: 'Function<pipeThrough>', pipeTo: 'Function<pipeTo>', tee: 'Function<tee>', values: 'Function<values>' }, bodyUsed: false, duplex: 'half', clone: 'Function<clone>', blob: 'Function<blob>', arrayBuffer: 'Function<arrayBuffer>', text: 'Function<text>', json: 'Function<json>', formData: 'Function<formData>', bytes: 'Function<bytes>', attribute: undefined }, 'response$': { constructor: 'Function<Response>', type: 'basic', url: 'https://openrouter.ai/api/v1/responses', redirected: false, status: 401, ok: false, statusText: 'Unauthorized', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', ge
|
|
tests/e2e/call-model-state.test.ts > State Management Integration > In-Memory StateAccessor > should track conversation status:
src/models/errors/unauthorizedresponseerror.ts#L66
UnauthorizedResponseError: Missing Authentication header
❯ Object.transform src/models/errors/unauthorizedresponseerror.ts:66:12
❯ Object.inst._zod.parse node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/classic/schemas.js:856:28
❯ handlePipeResult node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/core/schemas.js:1749:22
❯ Object.inst._zod.parse node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/core/schemas.js:1740:16
❯ Module.<anonymous> node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/core/parse.js:6:32
❯ _.inst.parse node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/classic/schemas.js:36:42
❯ safeParseResponse.request.request src/lib/matchers.ts:301:40
❯ safeParseResponse src/lib/matchers.ts:342:15
❯ matchFunc src/lib/matchers.ts:299:22
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { statusCode: 401, body: '{"error":{"message":"Missing Authentication header","code":401}}', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', get: 'Function<get>', has: 'Function<has>', set: 'Function<set>', getSetCookie: 'Function<getSetCookie>', keys: 'Function<keys>', values: 'Function<values>', entries: 'Function<entries>', forEach: 'Function<forEach>' }, contentType: 'application/json', rawResponse: { constructor: 'Function<Response>', type: 'basic', url: 'https://openrouter.ai/api/v1/responses', redirected: false, status: 401, ok: false, statusText: 'Unauthorized', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', get: 'Function<get>', has: 'Function<has>', set: 'Function<set>', getSetCookie: 'Function<getSetCookie>', keys: 'Function<keys>', values: 'Function<values>', entries: 'Function<entries>', forEach: 'Function<forEach>' }, body: { constructor: 'Function<ReadableStream>', locked: true, cancel: 'Function<cancel>', getReader: 'Function<getReader>', pipeThrough: 'Function<pipeThrough>', pipeTo: 'Function<pipeTo>', tee: 'Function<tee>', values: 'Function<values>' }, bodyUsed: true, clone: 'Function<clone>', blob: 'Function<blob>', arrayBuffer: 'Function<arrayBuffer>', text: 'Function<text>', json: 'Function<json>', formData: 'Function<formData>', bytes: 'Function<bytes>' }, 'data$': { error: { code: 401, message: 'Missing Authentication header' }, 'request$': { constructor: 'Function<Request>', method: 'POST', url: 'https://openrouter.ai/api/v1/responses', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', get: 'Function<get>', has: 'Function<has>', set: 'Function<set>', getSetCookie: 'Function<getSetCookie>', keys: 'Function<keys>', values: 'Function<values>', entries: 'Function<entries>', forEach: 'Function<forEach>' }, destination: '', referrer: 'about:client', referrerPolicy: '', mode: 'cors', credentials: 'same-origin', cache: 'default', redirect: 'follow', integrity: '', keepalive: false, isReloadNavigation: false, isHistoryNavigation: false, signal: { constructor: 'Function<AbortSignal>', aborted: false, reason: undefined, throwIfAborted: 'Function<throwIfAborted>', onabort: null, addEventListener: 'Function<addEventListener>', removeEventListener: 'Function<removeEventListener>', dispatchEvent: 'Function<dispatchEvent>' }, body: { constructor: 'Function<ReadableStream>', locked: false, cancel: 'Function<cancel>', getReader: 'Function<getReader>', pipeThrough: 'Function<pipeThrough>', pipeTo: 'Function<pipeTo>', tee: 'Function<tee>', values: 'Function<values>' }, bodyUsed: false, duplex: 'half', clone: 'Function<clone>', blob: 'Function<blob>', arrayBuffer: 'Function<arrayBuffer>', text: 'Function<text>', json: 'Function<json>', formData: 'Function<formData>', bytes: 'Function<bytes>', attribute: undefined }, 'response$': { constructor: 'Function<Response>', type: 'basic', url: 'https://openrouter.ai/api/v1/responses', redirected: false, status: 401, ok: false, statusText: 'Unauthorized', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', ge
|
|
tests/e2e/call-model-state.test.ts > State Management Integration > In-Memory StateAccessor > should persist state across tool execution:
src/models/errors/unauthorizedresponseerror.ts#L66
UnauthorizedResponseError: Missing Authentication header
❯ Object.transform src/models/errors/unauthorizedresponseerror.ts:66:12
❯ Object.inst._zod.parse node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/classic/schemas.js:856:28
❯ handlePipeResult node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/core/schemas.js:1749:22
❯ Object.inst._zod.parse node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/core/schemas.js:1740:16
❯ Module.<anonymous> node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/core/parse.js:6:32
❯ _.inst.parse node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/classic/schemas.js:36:42
❯ safeParseResponse.request.request src/lib/matchers.ts:301:40
❯ safeParseResponse src/lib/matchers.ts:342:15
❯ matchFunc src/lib/matchers.ts:299:22
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { statusCode: 401, body: '{"error":{"message":"Missing Authentication header","code":401}}', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', get: 'Function<get>', has: 'Function<has>', set: 'Function<set>', getSetCookie: 'Function<getSetCookie>', keys: 'Function<keys>', values: 'Function<values>', entries: 'Function<entries>', forEach: 'Function<forEach>' }, contentType: 'application/json', rawResponse: { constructor: 'Function<Response>', type: 'basic', url: 'https://openrouter.ai/api/v1/responses', redirected: false, status: 401, ok: false, statusText: 'Unauthorized', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', get: 'Function<get>', has: 'Function<has>', set: 'Function<set>', getSetCookie: 'Function<getSetCookie>', keys: 'Function<keys>', values: 'Function<values>', entries: 'Function<entries>', forEach: 'Function<forEach>' }, body: { constructor: 'Function<ReadableStream>', locked: true, cancel: 'Function<cancel>', getReader: 'Function<getReader>', pipeThrough: 'Function<pipeThrough>', pipeTo: 'Function<pipeTo>', tee: 'Function<tee>', values: 'Function<values>' }, bodyUsed: true, clone: 'Function<clone>', blob: 'Function<blob>', arrayBuffer: 'Function<arrayBuffer>', text: 'Function<text>', json: 'Function<json>', formData: 'Function<formData>', bytes: 'Function<bytes>' }, 'data$': { error: { code: 401, message: 'Missing Authentication header' }, 'request$': { constructor: 'Function<Request>', method: 'POST', url: 'https://openrouter.ai/api/v1/responses', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', get: 'Function<get>', has: 'Function<has>', set: 'Function<set>', getSetCookie: 'Function<getSetCookie>', keys: 'Function<keys>', values: 'Function<values>', entries: 'Function<entries>', forEach: 'Function<forEach>' }, destination: '', referrer: 'about:client', referrerPolicy: '', mode: 'cors', credentials: 'same-origin', cache: 'default', redirect: 'follow', integrity: '', keepalive: false, isReloadNavigation: false, isHistoryNavigation: false, signal: { constructor: 'Function<AbortSignal>', aborted: false, reason: undefined, throwIfAborted: 'Function<throwIfAborted>', onabort: null, addEventListener: 'Function<addEventListener>', removeEventListener: 'Function<removeEventListener>', dispatchEvent: 'Function<dispatchEvent>' }, body: { constructor: 'Function<ReadableStream>', locked: false, cancel: 'Function<cancel>', getReader: 'Function<getReader>', pipeThrough: 'Function<pipeThrough>', pipeTo: 'Function<pipeTo>', tee: 'Function<tee>', values: 'Function<values>' }, bodyUsed: false, duplex: 'half', clone: 'Function<clone>', blob: 'Function<blob>', arrayBuffer: 'Function<arrayBuffer>', text: 'Function<text>', json: 'Function<json>', formData: 'Function<formData>', bytes: 'Function<bytes>', attribute: undefined }, 'response$': { constructor: 'Function<Response>', type: 'basic', url: 'https://openrouter.ai/api/v1/responses', redirected: false, status: 401, ok: false, statusText: 'Unauthorized', headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', ge
|