@adcp/sdk 13.0.0-rc.13 → 13.0.0-rc.14

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 (73) hide show
  1. package/dist/lib/index.d.mts +2 -2
  2. package/dist/lib/index.d.ts +2 -2
  3. package/dist/lib/index.d.ts.map +1 -1
  4. package/dist/lib/index.js +6 -0
  5. package/dist/lib/index.js.map +1 -1
  6. package/dist/lib/index.mjs +6 -0
  7. package/dist/lib/index.mjs.map +1 -1
  8. package/dist/lib/protocols/transportDiagnostics.js +2 -1
  9. package/dist/lib/protocols/transportDiagnostics.js.map +1 -1
  10. package/dist/lib/protocols/transportDiagnostics.mjs +2 -1
  11. package/dist/lib/protocols/transportDiagnostics.mjs.map +1 -1
  12. package/dist/lib/registry/index.d.mts +17 -0
  13. package/dist/lib/registry/index.d.ts +17 -0
  14. package/dist/lib/registry/index.d.ts.map +1 -1
  15. package/dist/lib/registry/index.js +81 -7
  16. package/dist/lib/registry/index.js.map +1 -1
  17. package/dist/lib/registry/index.mjs +79 -7
  18. package/dist/lib/registry/index.mjs.map +1 -1
  19. package/dist/lib/registry/types.generated.d.mts +157 -7
  20. package/dist/lib/registry/types.generated.d.ts +157 -7
  21. package/dist/lib/registry/types.generated.d.ts.map +1 -1
  22. package/dist/lib/registry/types.generated.js.map +1 -1
  23. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  24. package/dist/lib/server/errors.d.mts +10 -2
  25. package/dist/lib/server/errors.d.ts +10 -2
  26. package/dist/lib/server/errors.d.ts.map +1 -1
  27. package/dist/lib/server/errors.js +9 -2
  28. package/dist/lib/server/errors.js.map +1 -1
  29. package/dist/lib/server/errors.mjs +9 -2
  30. package/dist/lib/server/errors.mjs.map +1 -1
  31. package/dist/lib/testing/compliance/comply.d.mts +6 -0
  32. package/dist/lib/testing/compliance/comply.d.ts +6 -0
  33. package/dist/lib/testing/compliance/comply.d.ts.map +1 -1
  34. package/dist/lib/testing/compliance/comply.js +3 -0
  35. package/dist/lib/testing/compliance/comply.js.map +1 -1
  36. package/dist/lib/testing/compliance/comply.mjs +3 -0
  37. package/dist/lib/testing/compliance/comply.mjs.map +1 -1
  38. package/dist/lib/testing/storyboard/runner.d.ts.map +1 -1
  39. package/dist/lib/testing/storyboard/runner.js +31 -5
  40. package/dist/lib/testing/storyboard/runner.js.map +1 -1
  41. package/dist/lib/testing/storyboard/runner.mjs +36 -6
  42. package/dist/lib/testing/storyboard/runner.mjs.map +1 -1
  43. package/dist/lib/testing/storyboard/types.d.mts +16 -5
  44. package/dist/lib/testing/storyboard/types.d.ts +16 -5
  45. package/dist/lib/testing/storyboard/types.d.ts.map +1 -1
  46. package/dist/lib/testing/storyboard/types.js +1 -1
  47. package/dist/lib/testing/storyboard/types.js.map +1 -1
  48. package/dist/lib/testing/storyboard/types.mjs +1 -1
  49. package/dist/lib/testing/storyboard/types.mjs.map +1 -1
  50. package/dist/lib/testing/storyboard/validations.d.mts +1 -1
  51. package/dist/lib/testing/storyboard/validations.d.ts +1 -1
  52. package/dist/lib/v2/projection/augment-response.d.mts +16 -0
  53. package/dist/lib/v2/projection/augment-response.d.ts +16 -0
  54. package/dist/lib/v2/projection/augment-response.d.ts.map +1 -1
  55. package/dist/lib/v2/projection/augment-response.js +13 -4
  56. package/dist/lib/v2/projection/augment-response.js.map +1 -1
  57. package/dist/lib/v2/projection/augment-response.mjs +12 -4
  58. package/dist/lib/v2/projection/augment-response.mjs.map +1 -1
  59. package/dist/lib/v2/projection/index.d.mts +3 -1
  60. package/dist/lib/v2/projection/index.d.ts +3 -1
  61. package/dist/lib/v2/projection/index.d.ts.map +1 -1
  62. package/dist/lib/v2/projection/index.js +2 -0
  63. package/dist/lib/v2/projection/index.js.map +1 -1
  64. package/dist/lib/v2/projection/index.mjs +2 -0
  65. package/dist/lib/v2/projection/index.mjs.map +1 -1
  66. package/dist/lib/version.d.mts +3 -3
  67. package/dist/lib/version.d.ts +3 -3
  68. package/dist/lib/version.js +3 -3
  69. package/dist/lib/version.js.map +1 -1
  70. package/dist/lib/version.mjs +3 -3
  71. package/dist/lib/version.mjs.map +1 -1
  72. package/examples/error-compliant-server.ts +9 -3
  73. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/protocols/transportDiagnostics.ts"],"sourcesContent":["import { fileURLToPath as __adcpFileURLToPath } from 'node:url';\nimport { dirname as __adcpDirname } from 'node:path';\nimport { createRequire as __adcpCreateRequire } from 'node:module';\nconst __dirname = __adcpDirname(__adcpFileURLToPath(import.meta.url));\nconst require = __adcpCreateRequire(import.meta.url);\nimport { globalAsyncLocalStorage } from '../utils/global-async-local-storage';\nimport { createHmac } from 'node:crypto';\n\nexport type TransportActivityType = 'request_started' | 'response_received' | 'request_failed';\n\nexport interface TransportActivityContext {\n agentId: string;\n protocol: 'mcp' | 'a2a';\n tool?: string;\n taskType?: string;\n operationId?: string;\n taskId?: string;\n contextId?: string;\n idempotencyKey?: string;\n}\n\nexport interface TransportActivity {\n type: TransportActivityType;\n agentId: string;\n protocol: 'mcp' | 'a2a';\n tool?: string;\n taskType?: string;\n operationId?: string;\n taskId?: string;\n contextId?: string;\n idempotencyKeyHash?: string;\n method: string;\n url: string;\n requestHeaders: Record<string, string>;\n requestBody?: string;\n requestBodyTruncated?: boolean;\n startedAt: string;\n timestamp: string;\n durationMs?: number;\n httpStatus?: number;\n statusText?: string;\n responseHeaders?: Record<string, string>;\n responseBody?: string;\n responseBodyTruncated?: boolean;\n errorName?: string;\n errorMessage?: string;\n}\n\nexport type TransportActivityHandler = (event: TransportActivity) => void | Promise<void>;\n\ninterface TransportDiagnosticsSlot extends TransportActivityContext {\n onTransportActivity?: TransportActivityHandler;\n pending: Promise<void>[];\n}\n\nconst BODY_SNIPPET_LIMIT = 64 * 1024;\nconst REDACTED = '[redacted]';\n\nconst SAFE_HEADER_NAMES = new Set([\n 'accept',\n 'accept-encoding',\n 'content-type',\n 'last-event-id',\n 'mcp-protocol-version',\n 'traceparent',\n 'tracestate',\n 'user-agent',\n 'x-adcp-agent-id',\n 'x-adcp-request-id',\n 'x-correlation-id',\n 'x-request-id',\n 'x-scope3-debug-id',\n]);\n\nconst SENSITIVE_HEADER_NAMES = new Set([\n 'authorization',\n 'cookie',\n 'proxy-authorization',\n 'set-cookie',\n 'x-adcp-auth',\n 'x-api-key',\n 'mcp-session-id',\n]);\n\nconst SENSITIVE_KEY_RE =\n /(^|[_-])(authorization|cookie|credentials?|secret|signature|token|api[_-]?key|private[_-]?key|idempotency[_-]?key|password)([_-]|$)/i;\nconst SENSITIVE_TEXT_FIELD_RE =\n /((?:\"[^\"]*(?:authorization|cookie|credentials?|secret|signature|token|api[_-]?key|private[_-]?key|idempotency[_-]?key|password)[^\"]*\"\\s*:\\s*)|(?:^|[&\\s])[^=&\\s]*(?:authorization|cookie|credentials?|secret|signature|token|api[_-]?key|private[_-]?key|idempotency[_-]?key|password)[^=&\\s]*=)(\"[^\"]*\"|[^&\\s,}]+)/gi;\nconst URL_LIKE_RE = /\\bhttps?:\\/\\/[^\\s\"'<>]+/gi;\n\nexport const transportDiagnosticsStorage = globalAsyncLocalStorage<TransportDiagnosticsSlot>('transportDiagnostics');\n\nexport function withTransportDiagnostics<T>(\n context: TransportActivityContext & { onTransportActivity?: TransportActivityHandler },\n fn: () => Promise<T>\n): Promise<T> {\n if (!context.onTransportActivity) return fn();\n const slot: TransportDiagnosticsSlot = { ...context, pending: [] };\n return transportDiagnosticsStorage.run(slot, async () => {\n try {\n return await fn();\n } finally {\n await Promise.allSettled(slot.pending);\n }\n });\n}\n\nexport function sanitizeTransportUrl(value: string): string {\n try {\n const url = new URL(value);\n url.username = '';\n url.password = '';\n url.search = '';\n url.hash = '';\n return url.toString();\n } catch {\n return 'invalid_url';\n }\n}\n\nexport function sanitizeTransportHeaders(headers: HeadersInit | undefined): Record<string, string> {\n const out: Record<string, string> = {};\n for (const [key, value] of headerEntries(headers)) {\n const lower = key.toLowerCase();\n if (SENSITIVE_HEADER_NAMES.has(lower) || SENSITIVE_KEY_RE.test(lower)) {\n out[lower] = REDACTED;\n } else if (SAFE_HEADER_NAMES.has(lower) || isSafeCorrelationHeader(lower)) {\n out[lower] = value;\n }\n }\n return out;\n}\n\nexport function wrapFetchWithTransportDiagnostics(upstream: typeof fetch): typeof fetch {\n const wrapped: typeof fetch = async (input, init) => {\n const slot = transportDiagnosticsStorage.getStore();\n if (!slot?.onTransportActivity) return upstream(input, init);\n\n const startedAtMs = Date.now();\n const startedAt = new Date(startedAtMs).toISOString();\n const method = getMethod(input, init);\n const url = sanitizeTransportUrl(getUrl(input));\n const requestHeaders = sanitizeTransportHeaders(mergeRequestHeaders(input, init));\n const requestBody = bodySnippet(init?.body);\n const baseEvent = {\n agentId: slot.agentId,\n protocol: slot.protocol,\n ...(slot.tool && { tool: slot.tool, taskType: slot.taskType ?? slot.tool }),\n ...(slot.operationId && { operationId: slot.operationId }),\n ...(slot.taskId && { taskId: slot.taskId }),\n ...(slot.contextId && { contextId: slot.contextId }),\n ...(slot.idempotencyKey && { idempotencyKeyHash: fingerprintDiagnosticValue(slot.idempotencyKey) }),\n method,\n url,\n requestHeaders,\n ...(requestBody && {\n requestBody: requestBody.body,\n requestBodyTruncated: requestBody.truncated,\n }),\n startedAt,\n };\n\n emitTransportActivity(slot.onTransportActivity, {\n type: 'request_started',\n ...baseEvent,\n timestamp: startedAt,\n });\n\n try {\n const response = await upstream(input, init);\n const durationMs = Date.now() - startedAtMs;\n const responseHeaders = sanitizeResponseHeaders(response.headers);\n const responseBody = await responseBodySnippet(response);\n emitTransportActivity(slot.onTransportActivity, {\n type: 'response_received',\n ...baseEvent,\n timestamp: new Date().toISOString(),\n durationMs,\n httpStatus: response.status,\n statusText: response.statusText,\n responseHeaders,\n ...(responseBody && {\n responseBody: responseBody.body,\n responseBodyTruncated: responseBody.truncated,\n }),\n });\n return response;\n } catch (error) {\n emitTransportActivity(slot.onTransportActivity, {\n type: 'request_failed',\n ...baseEvent,\n timestamp: new Date().toISOString(),\n durationMs: Date.now() - startedAtMs,\n errorName: error instanceof Error ? error.name : typeof error,\n errorMessage: sanitizeDiagnosticText(error instanceof Error ? error.message : String(error)),\n });\n throw error;\n }\n };\n return wrapped;\n}\n\nfunction emitTransportActivity(handler: TransportActivityHandler, event: TransportActivity): void {\n try {\n const slot = transportDiagnosticsStorage.getStore();\n const frozen = Object.freeze(structuredClone(event));\n const pending = Promise.resolve()\n .then(() => handler(frozen))\n .then(\n () => {},\n () => {}\n );\n slot?.pending.push(pending);\n } catch {\n // Observability hooks must not change protocol behavior.\n }\n}\n\nfunction getUrl(input: RequestInfo | URL): string {\n return typeof input === 'string' ? input : input instanceof URL ? input.toString() : input.url;\n}\n\nfunction getMethod(input: RequestInfo | URL, init?: RequestInit): string {\n return (init?.method ?? (input instanceof Request ? input.method : 'GET')).toUpperCase();\n}\n\nfunction mergeRequestHeaders(input: RequestInfo | URL, init?: RequestInit): Headers {\n const headers = new Headers(input instanceof Request ? input.headers : undefined);\n if (init?.headers) {\n for (const [key, value] of headerEntries(init.headers)) {\n headers.set(key, value);\n }\n }\n return headers;\n}\n\nfunction sanitizeResponseHeaders(headers: Headers): Record<string, string> {\n return sanitizeTransportHeaders(headers);\n}\n\nfunction headerEntries(headers: HeadersInit | undefined): Array<[string, string]> {\n if (!headers) return [];\n if (headers instanceof Headers) {\n const entries: Array<[string, string]> = [];\n headers.forEach((value, key) => entries.push([key, value]));\n return entries;\n }\n if (Array.isArray(headers)) return headers.map(([key, value]) => [key, value]);\n return Object.entries(headers).map(([key, value]) => [key, String(value)]);\n}\n\nfunction isSafeCorrelationHeader(lower: string): boolean {\n if (!lower.startsWith('x-')) return false;\n return (\n lower.includes('correlation') || lower.includes('debug') || lower.includes('request-id') || lower.includes('trace')\n );\n}\n\nfunction bodySnippet(body: BodyInit | null | undefined): { body: string; truncated: boolean } | undefined {\n if (body == null) return undefined;\n if (typeof body === 'string') return sanitizeBodyText(body, BODY_SNIPPET_LIMIT);\n if (body instanceof URLSearchParams) return sanitizeBodyText(body.toString(), BODY_SNIPPET_LIMIT);\n if (body instanceof Blob) return { body: `[blob ${body.size} bytes]`, truncated: false };\n if (body instanceof ArrayBuffer) {\n return sanitizeBodyText(Buffer.from(body).toString('utf8'), BODY_SNIPPET_LIMIT);\n }\n if (ArrayBuffer.isView(body)) {\n return sanitizeBodyText(\n Buffer.from(body.buffer, body.byteOffset, body.byteLength).toString('utf8'),\n BODY_SNIPPET_LIMIT\n );\n }\n return undefined;\n}\n\nasync function responseBodySnippet(response: Response): Promise<{ body: string; truncated: boolean } | undefined> {\n const contentType = response.headers.get('content-type') ?? '';\n if (!isDiagnosticTextContentType(contentType)) return undefined;\n try {\n const { text, truncated } = await readResponseTextBounded(response.clone(), BODY_SNIPPET_LIMIT);\n return { body: redactSensitiveJsonOrText(text), truncated };\n } catch {\n return undefined;\n }\n}\n\nfunction sanitizeBodyText(text: string, limit: number): { body: string; truncated: boolean } {\n const truncated = text.length > limit;\n const bounded = truncated ? text.slice(0, limit) : text;\n return { body: redactSensitiveJsonOrText(bounded), truncated };\n}\n\nfunction redactSensitiveJsonOrText(text: string): string {\n try {\n return JSON.stringify(redactSensitiveValue(JSON.parse(text)));\n } catch {\n return sanitizeDiagnosticText(text);\n }\n}\n\nfunction redactSensitiveValue(value: unknown): unknown {\n if (Array.isArray(value)) return value.map(redactSensitiveValue);\n if (typeof value === 'string') return sanitizeStringValue(value);\n if (!value || typeof value !== 'object') return value;\n const out: Record<string, unknown> = {};\n for (const [key, child] of Object.entries(value)) {\n out[key] = isSensitiveKey(key) ? REDACTED : redactSensitiveValue(child);\n }\n return out;\n}\n\nfunction sanitizeDiagnosticText(text: string): string {\n return text\n .replace(URL_LIKE_RE, value => sanitizeTransportUrl(value))\n .replace(/Bearer\\s+[A-Za-z0-9._~+/=-]+/gi, 'Bearer [redacted]')\n .replace(/Basic\\s+[A-Za-z0-9+/=-]+/gi, 'Basic [redacted]')\n .replace(SENSITIVE_TEXT_FIELD_RE, (_match, prefix) => `${prefix}${REDACTED}`);\n}\n\nfunction sanitizeStringValue(value: string): string {\n return sanitizeDiagnosticText(value);\n}\n\nfunction normalizedKey(key: string): string {\n return key.replace(/([a-z0-9])([A-Z])/g, '$1_$2').toLowerCase();\n}\n\nfunction isSensitiveKey(key: string): boolean {\n return SENSITIVE_KEY_RE.test(normalizedKey(key));\n}\n\nfunction isDiagnosticTextContentType(contentType: string): boolean {\n const lower = contentType.toLowerCase();\n if (!lower) return true;\n if (lower.includes('text/event-stream')) return false;\n return (\n lower.startsWith('text/') ||\n lower.includes('json') ||\n lower.includes('xml') ||\n lower.includes('javascript') ||\n lower.includes('x-www-form-urlencoded')\n );\n}\n\nasync function readResponseTextBounded(\n response: Response,\n limit: number\n): Promise<{ text: string; truncated: boolean }> {\n if (!response.body) {\n const text = await response.text();\n return { text: text.slice(0, limit), truncated: text.length > limit };\n }\n\n const reader = response.body.getReader();\n const decoder = new TextDecoder();\n let text = '';\n let truncated = false;\n\n try {\n while (text.length <= limit) {\n const { done, value } = await reader.read();\n if (done) break;\n text += decoder.decode(value, { stream: true });\n if (text.length > limit) {\n truncated = true;\n text = text.slice(0, limit);\n await reader.cancel();\n break;\n }\n }\n if (!truncated) text += decoder.decode();\n } finally {\n reader.releaseLock();\n }\n\n return { text, truncated };\n}\n\nfunction fingerprintDiagnosticValue(value: string): string {\n return createHmac('sha256', 'adcp-transport-diagnostics').update(value).digest('hex').slice(0, 16);\n}\n"],"mappings":"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","names":["require","text"]}
1
+ {"version":3,"sources":["../../../src/lib/protocols/transportDiagnostics.ts"],"sourcesContent":["import { fileURLToPath as __adcpFileURLToPath } from 'node:url';\nimport { dirname as __adcpDirname } from 'node:path';\nimport { createRequire as __adcpCreateRequire } from 'node:module';\nconst __dirname = __adcpDirname(__adcpFileURLToPath(import.meta.url));\nconst require = __adcpCreateRequire(import.meta.url);\nimport { globalAsyncLocalStorage } from '../utils/global-async-local-storage';\nimport { createHmac } from 'node:crypto';\n\nexport type TransportActivityType = 'request_started' | 'response_received' | 'request_failed';\n\nexport interface TransportActivityContext {\n agentId: string;\n protocol: 'mcp' | 'a2a';\n tool?: string;\n taskType?: string;\n operationId?: string;\n taskId?: string;\n contextId?: string;\n idempotencyKey?: string;\n}\n\nexport interface TransportActivity {\n type: TransportActivityType;\n agentId: string;\n protocol: 'mcp' | 'a2a';\n tool?: string;\n taskType?: string;\n operationId?: string;\n taskId?: string;\n contextId?: string;\n idempotencyKeyHash?: string;\n method: string;\n url: string;\n requestHeaders: Record<string, string>;\n requestBody?: string;\n requestBodyTruncated?: boolean;\n startedAt: string;\n timestamp: string;\n durationMs?: number;\n httpStatus?: number;\n statusText?: string;\n responseHeaders?: Record<string, string>;\n responseBody?: string;\n responseBodyTruncated?: boolean;\n errorName?: string;\n errorMessage?: string;\n}\n\nexport type TransportActivityHandler = (event: TransportActivity) => void | Promise<void>;\n\ninterface TransportDiagnosticsSlot extends TransportActivityContext {\n onTransportActivity?: TransportActivityHandler;\n pending: Promise<void>[];\n}\n\nconst BODY_SNIPPET_LIMIT = 64 * 1024;\nconst REDACTED = '[redacted]';\n\nconst SAFE_HEADER_NAMES = new Set([\n 'accept',\n 'accept-encoding',\n 'content-type',\n 'last-event-id',\n 'mcp-protocol-version',\n 'traceparent',\n 'tracestate',\n 'user-agent',\n 'x-adcp-agent-id',\n 'x-adcp-request-id',\n 'x-correlation-id',\n 'x-request-id',\n 'x-scope3-debug-id',\n]);\n\nconst SENSITIVE_HEADER_NAMES = new Set([\n 'authorization',\n 'cookie',\n 'proxy-authorization',\n 'set-cookie',\n 'x-adcp-auth',\n 'x-api-key',\n 'mcp-session-id',\n]);\n\nconst SENSITIVE_KEY_RE =\n /(^|[_-])(authorization|cookie|credentials?|secret|signature|token|api[_-]?key|private[_-]?key|idempotency[_-]?key|password)([_-]|$)/i;\nconst SENSITIVE_TEXT_FIELD_RE =\n /((?:\"[^\"]*(?:authorization|cookie|credentials?|secret|signature|token|api[_-]?key|private[_-]?key|idempotency[_-]?key|password)[^\"]*\"\\s*:\\s*)|(?:^|[&\\s])[^=&\\s]*(?:authorization|cookie|credentials?|secret|signature|token|api[_-]?key|private[_-]?key|idempotency[_-]?key|password)[^=&\\s]*=)(\"[^\"]*\"|[^&\\s,}]+)/gi;\nconst URL_LIKE_RE = /\\bhttps?:\\/\\/[^\\s\"'<>]+/gi;\n\nexport const transportDiagnosticsStorage = globalAsyncLocalStorage<TransportDiagnosticsSlot>('transportDiagnostics');\n\nexport function withTransportDiagnostics<T>(\n context: TransportActivityContext & { onTransportActivity?: TransportActivityHandler },\n fn: () => Promise<T>\n): Promise<T> {\n if (!context.onTransportActivity) return fn();\n const slot: TransportDiagnosticsSlot = { ...context, pending: [] };\n return transportDiagnosticsStorage.run(slot, async () => {\n try {\n return await fn();\n } finally {\n await Promise.allSettled(slot.pending);\n }\n });\n}\n\nexport function sanitizeTransportUrl(value: string): string {\n try {\n const url = new URL(value);\n url.username = '';\n url.password = '';\n url.search = '';\n url.hash = '';\n return url.toString();\n } catch {\n return 'invalid_url';\n }\n}\n\nexport function sanitizeTransportHeaders(headers: HeadersInit | undefined): Record<string, string> {\n const out: Record<string, string> = {};\n for (const [key, value] of headerEntries(headers)) {\n const lower = key.toLowerCase();\n if (SENSITIVE_HEADER_NAMES.has(lower) || SENSITIVE_KEY_RE.test(lower)) {\n out[lower] = REDACTED;\n } else if (SAFE_HEADER_NAMES.has(lower) || isSafeCorrelationHeader(lower)) {\n out[lower] = value;\n }\n }\n return out;\n}\n\nexport function wrapFetchWithTransportDiagnostics(upstream: typeof fetch): typeof fetch {\n const wrapped: typeof fetch = async (input, init) => {\n const slot = transportDiagnosticsStorage.getStore();\n if (!slot?.onTransportActivity) return upstream(input, init);\n\n const startedAtMs = Date.now();\n const startedAt = new Date(startedAtMs).toISOString();\n const method = getMethod(input, init);\n const url = sanitizeTransportUrl(getUrl(input));\n const requestHeaders = sanitizeTransportHeaders(mergeRequestHeaders(input, init));\n const requestBody = bodySnippet(init?.body);\n const baseEvent = {\n agentId: slot.agentId,\n protocol: slot.protocol,\n ...(slot.tool && { tool: slot.tool, taskType: slot.taskType ?? slot.tool }),\n ...(slot.operationId && { operationId: slot.operationId }),\n ...(slot.taskId && { taskId: slot.taskId }),\n ...(slot.contextId && { contextId: slot.contextId }),\n ...(slot.idempotencyKey && { idempotencyKeyHash: fingerprintDiagnosticValue(slot.idempotencyKey) }),\n method,\n url,\n requestHeaders,\n ...(requestBody && {\n requestBody: requestBody.body,\n requestBodyTruncated: requestBody.truncated,\n }),\n startedAt,\n };\n\n emitTransportActivity(slot.onTransportActivity, {\n type: 'request_started',\n ...baseEvent,\n timestamp: startedAt,\n });\n\n try {\n const response = await upstream(input, init);\n const durationMs = Date.now() - startedAtMs;\n const responseHeaders = sanitizeResponseHeaders(response.headers);\n const responseBody = await responseBodySnippet(response);\n emitTransportActivity(slot.onTransportActivity, {\n type: 'response_received',\n ...baseEvent,\n timestamp: new Date().toISOString(),\n durationMs,\n httpStatus: response.status,\n statusText: response.statusText,\n responseHeaders,\n ...(responseBody && {\n responseBody: responseBody.body,\n responseBodyTruncated: responseBody.truncated,\n }),\n });\n return response;\n } catch (error) {\n emitTransportActivity(slot.onTransportActivity, {\n type: 'request_failed',\n ...baseEvent,\n timestamp: new Date().toISOString(),\n durationMs: Date.now() - startedAtMs,\n errorName: error instanceof Error ? error.name : typeof error,\n errorMessage: sanitizeDiagnosticText(error instanceof Error ? error.message : String(error)),\n });\n throw error;\n }\n };\n return wrapped;\n}\n\nfunction emitTransportActivity(handler: TransportActivityHandler, event: TransportActivity): void {\n try {\n const slot = transportDiagnosticsStorage.getStore();\n const frozen = Object.freeze(structuredClone(event));\n const pending = Promise.resolve()\n .then(() => handler(frozen))\n .then(\n () => {},\n () => {}\n );\n slot?.pending.push(pending);\n } catch {\n // Observability hooks must not change protocol behavior.\n }\n}\n\nfunction getUrl(input: RequestInfo | URL): string {\n return typeof input === 'string' ? input : input instanceof URL ? input.toString() : input.url;\n}\n\nfunction getMethod(input: RequestInfo | URL, init?: RequestInit): string {\n return (init?.method ?? (input instanceof Request ? input.method : 'GET')).toUpperCase();\n}\n\nfunction mergeRequestHeaders(input: RequestInfo | URL, init?: RequestInit): Headers {\n const headers = new Headers(input instanceof Request ? input.headers : undefined);\n if (init?.headers) {\n for (const [key, value] of headerEntries(init.headers)) {\n headers.set(key, value);\n }\n }\n return headers;\n}\n\nfunction sanitizeResponseHeaders(headers: Headers): Record<string, string> {\n return sanitizeTransportHeaders(headers);\n}\n\nfunction headerEntries(headers: HeadersInit | undefined): Array<[string, string]> {\n if (!headers) return [];\n if (headers instanceof Headers) {\n const entries: Array<[string, string]> = [];\n headers.forEach((value, key) => entries.push([key, value]));\n return entries;\n }\n if (Array.isArray(headers)) return headers.map(([key, value]) => [key, value]);\n return Object.entries(headers).map(([key, value]) => [key, String(value)]);\n}\n\nfunction isSafeCorrelationHeader(lower: string): boolean {\n if (!lower.startsWith('x-')) return false;\n return (\n lower.includes('correlation') || lower.includes('debug') || lower.includes('request-id') || lower.includes('trace')\n );\n}\n\nfunction bodySnippet(body: BodyInit | null | undefined): { body: string; truncated: boolean } | undefined {\n if (body == null) return undefined;\n if (typeof body === 'string') return sanitizeBodyText(body, BODY_SNIPPET_LIMIT);\n if (body instanceof URLSearchParams) return sanitizeBodyText(body.toString(), BODY_SNIPPET_LIMIT);\n if (body instanceof Blob) return { body: `[blob ${body.size} bytes]`, truncated: false };\n if (body instanceof ArrayBuffer) {\n return sanitizeBodyText(Buffer.from(body).toString('utf8'), BODY_SNIPPET_LIMIT);\n }\n if (ArrayBuffer.isView(body)) {\n return sanitizeBodyText(\n Buffer.from(body.buffer, body.byteOffset, body.byteLength).toString('utf8'),\n BODY_SNIPPET_LIMIT\n );\n }\n return undefined;\n}\n\nasync function responseBodySnippet(response: Response): Promise<{ body: string; truncated: boolean } | undefined> {\n const contentType = response.headers.get('content-type') ?? '';\n if (!isDiagnosticTextContentType(contentType)) return undefined;\n try {\n const { text, truncated } = await readResponseTextBounded(response.clone(), BODY_SNIPPET_LIMIT);\n return { body: redactSensitiveJsonOrText(text), truncated };\n } catch {\n return undefined;\n }\n}\n\nfunction sanitizeBodyText(text: string, limit: number): { body: string; truncated: boolean } {\n const truncated = text.length > limit;\n const bounded = truncated ? text.slice(0, limit) : text;\n return { body: redactSensitiveJsonOrText(bounded), truncated };\n}\n\nfunction redactSensitiveJsonOrText(text: string): string {\n try {\n return JSON.stringify(redactSensitiveValue(JSON.parse(text)));\n } catch {\n return sanitizeDiagnosticText(text);\n }\n}\n\nfunction redactSensitiveValue(value: unknown): unknown {\n if (Array.isArray(value)) return value.map(redactSensitiveValue);\n if (typeof value === 'string') return sanitizeStringValue(value);\n if (!value || typeof value !== 'object') return value;\n const out: Record<string, unknown> = {};\n for (const [key, child] of Object.entries(value)) {\n out[key] = isSensitiveKey(key) ? REDACTED : redactSensitiveValue(child);\n }\n return out;\n}\n\nfunction sanitizeDiagnosticText(text: string): string {\n return text\n .replace(URL_LIKE_RE, value => sanitizeTransportUrl(value))\n .replace(/Bearer\\s+[A-Za-z0-9._~+/=-]+/gi, 'Bearer [redacted]')\n .replace(/Basic\\s+[A-Za-z0-9+/=-]+/gi, 'Basic [redacted]')\n .replace(SENSITIVE_TEXT_FIELD_RE, (_match, prefix) => `${prefix}${REDACTED}`);\n}\n\nfunction sanitizeStringValue(value: string): string {\n return sanitizeDiagnosticText(value);\n}\n\nfunction normalizedKey(key: string): string {\n return key.replace(/([a-z0-9])([A-Z])/g, '$1_$2').toLowerCase();\n}\n\nfunction isSensitiveKey(key: string): boolean {\n return SENSITIVE_KEY_RE.test(normalizedKey(key));\n}\n\nfunction isDiagnosticTextContentType(contentType: string): boolean {\n const lower = contentType.toLowerCase();\n if (!lower) return true;\n if (lower.includes('text/event-stream')) return false;\n return (\n lower.startsWith('text/') ||\n lower.includes('json') ||\n lower.includes('xml') ||\n lower.includes('javascript') ||\n lower.includes('x-www-form-urlencoded')\n );\n}\n\nasync function readResponseTextBounded(\n response: Response,\n limit: number\n): Promise<{ text: string; truncated: boolean }> {\n if (!response.body) {\n const text = await response.text();\n return { text: text.slice(0, limit), truncated: text.length > limit };\n }\n\n const reader = response.body.getReader();\n const decoder = new TextDecoder();\n let text = '';\n let truncated = false;\n\n try {\n while (text.length <= limit) {\n const { done, value } = await reader.read();\n if (done) break;\n text += decoder.decode(value, { stream: true });\n if (text.length > limit) {\n truncated = true;\n text = text.slice(0, limit);\n // A cloned Response body is one branch of a tee. Waiting for this\n // cancellation can wait for the original branch to be consumed, but\n // the caller cannot consume it until this diagnostics wrapper returns.\n // Start cancellation to release the bounded diagnostic branch without\n // putting that circular dependency on the request path.\n void reader.cancel().catch(() => {});\n break;\n }\n }\n if (!truncated) text += decoder.decode();\n } finally {\n reader.releaseLock();\n }\n\n return { text, truncated };\n}\n\nfunction fingerprintDiagnosticValue(value: string): string {\n return createHmac('sha256', 'adcp-transport-diagnostics').update(value).digest('hex').slice(0, 16);\n}\n"],"mappings":"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","names":["require","text"]}
@@ -11,6 +11,22 @@ export { InMemoryCursorStore, FileCursorStore } from './cursor-store.mjs';
11
11
  export type { CursorStore } from './cursor-store.mjs';
12
12
  export { PropertyRegistry } from './property-registry.mjs';
13
13
  export type { PropertyRegistryConfig } from './property-registry.mjs';
14
+ /** A non-success HTTP response returned by the AdCP Registry. */
15
+ export declare class RegistryRequestError extends Error {
16
+ readonly status: number;
17
+ readonly method: string;
18
+ readonly retryAfterMs?: number;
19
+ /** Bounded, untrusted JSON returned by the remote registry. */
20
+ readonly details?: Record<string, unknown>;
21
+ constructor(status: number, message: string, options: {
22
+ method: string;
23
+ retryAfterMs?: number;
24
+ details?: Record<string, unknown>;
25
+ cause?: unknown;
26
+ });
27
+ }
28
+ /** Cross-realm and duplicate-bundle-safe guard for registry HTTP errors. */
29
+ export declare function isRegistryRequestError(error: unknown): error is RegistryRequestError;
14
30
  /**
15
31
  * Build a catalog-only community mirror adagents.json descriptor.
16
32
  *
@@ -480,6 +496,7 @@ export declare class RegistryClient {
480
496
  private parseJson;
481
497
  private withSources;
482
498
  private preview;
499
+ private requestError;
483
500
  private buildParams;
484
501
  private setTrueParam;
485
502
  private appendParamValues;
@@ -11,6 +11,22 @@ export { InMemoryCursorStore, FileCursorStore } from './cursor-store';
11
11
  export type { CursorStore } from './cursor-store';
12
12
  export { PropertyRegistry } from './property-registry';
13
13
  export type { PropertyRegistryConfig } from './property-registry';
14
+ /** A non-success HTTP response returned by the AdCP Registry. */
15
+ export declare class RegistryRequestError extends Error {
16
+ readonly status: number;
17
+ readonly method: string;
18
+ readonly retryAfterMs?: number;
19
+ /** Bounded, untrusted JSON returned by the remote registry. */
20
+ readonly details?: Record<string, unknown>;
21
+ constructor(status: number, message: string, options: {
22
+ method: string;
23
+ retryAfterMs?: number;
24
+ details?: Record<string, unknown>;
25
+ cause?: unknown;
26
+ });
27
+ }
28
+ /** Cross-realm and duplicate-bundle-safe guard for registry HTTP errors. */
29
+ export declare function isRegistryRequestError(error: unknown): error is RegistryRequestError;
14
30
  /**
15
31
  * Build a catalog-only community mirror adagents.json descriptor.
16
32
  *
@@ -480,6 +496,7 @@ export declare class RegistryClient {
480
496
  private parseJson;
481
497
  private withSources;
482
498
  private preview;
499
+ private requestError;
483
500
  private buildParams;
484
501
  private setTrueParam;
485
502
  private appendParamValues;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/registry/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAEhB,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EAGvB,mBAAmB,EACnB,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,EAC1B,yBAAyB,EACzB,0BAA0B,EAC1B,yBAAyB,EACzB,iCAAiC,EACjC,kCAAkC,EAElC,oBAAoB,EACpB,gBAAgB,EAGhB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EAEtB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,6BAA6B,EAC7B,mCAAmC,EACnC,8BAA8B,EAC9B,sCAAsC,EACtC,mCAAmC,EACnC,qCAAqC,EAGrC,yBAAyB,EAEzB,iBAAiB,EACjB,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EAEnB,oBAAoB,EAEpB,2BAA2B,EAM3B,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,0BAA0B,EAC1B,2BAA2B,EAC3B,qBAAqB,EACrB,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,0BAA0B,EAE1B,qBAAqB,EAErB,oBAAoB,EACpB,qBAAqB,EAErB,gCAAgC,EAChC,oCAAoC,EACrC,MAAM,SAAS,CAAC;AAGjB,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGxE,YAAY,EACV,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,EAC1B,yBAAyB,EACzB,0BAA0B,EAC1B,yBAAyB,EACzB,iCAAiC,EACjC,kCAAkC,EAClC,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,yBAAyB,EACzB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,EACrB,2BAA2B,EAC3B,gCAAgC,EAChC,6BAA6B,EAC7B,oBAAoB,EACpB,mBAAmB,EACnB,6BAA6B,EAC7B,mCAAmC,EACnC,8BAA8B,EAC9B,sCAAsC,EACtC,8BAA8B,EAC9B,mCAAmC,EACnC,kCAAkC,EAClC,qCAAqC,EACrC,mCAAmC,EACnC,qCAAqC,EACrC,mCAAmC,EACnC,+BAA+B,EAC/B,yBAAyB,EACzB,mBAAmB,EACnB,iBAAiB,EACjB,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,0BAA0B,EAC1B,2BAA2B,EAC3B,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,0BAA0B,EAC1B,2BAA2B,EAC3B,qBAAqB,EACrB,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,0BAA0B,EAC1B,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,gCAAgC,EAChC,oCAAoC,GACrC,MAAM,SAAS,CAAC;AAGjB,YAAY,EACV,KAAK,EACL,UAAU,EACV,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,MAAM,EACN,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,2BAA2B,EAC3B,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,EAC3B,8BAA8B,EAC9B,2BAA2B,EAC3B,6BAA6B,EAC7B,6BAA6B,GAC9B,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,WAAW,EACX,oBAAoB,GACrB,MAAM,QAAQ,CAAC;AAGhB,OAAO,EACL,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,2BAA2B,EAC3B,eAAe,EACf,0BAA0B,EAC1B,4BAA4B,EAC5B,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvD,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAYlE;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,6BAA6B,GAAG,8BAA8B,CA4BlH;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAU;IAChD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;gBAExC,MAAM,CAAC,EAAE,oBAAoB;IAYzC;;;;;;;;;OASG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAO9F,oGAAoG;IAC9F,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAO1F,yEAAyE;IACnE,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC,CAAC;IASpF,uEAAuE;IACjE,UAAU,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAK1E;;;;;;OAMG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAMxE,2CAA2C;IACrC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAKnE;;;;;;OAMG;IACG,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAYjH,wEAAwE;IAClE,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAgB9E,yCAAyC;IACnC,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAIpF,iEAAiE;IAC3D,SAAS,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IASpE,2DAA2D;IACrD,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAMtE,oEAAoE;IAC9D,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAS3F;;;;OAIG;IACG,mBAAmB,CACvB,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GACjC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAgBnD;;;;OAIG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAS3G,2EAA2E;IACrE,cAAc,CAClB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC;QAAE,UAAU,EAAE,oBAAoB,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;IAKlF,8CAA8C;IACxC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAKjE,iEAAiE;IAC3D,YAAY,CAAC,QAAQ,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAOhF;;;;;OAKG;IACG,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iCAAiC,CAAC;IAM3F,sEAAsE;IAChE,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kCAAkC,CAAC;IAS7F;;;;OAIG;IACG,cAAc,CAClB,UAAU,EAAE,mBAAmB,EAAE,EACjC,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GACjC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAepE;;;;OAIG;IACG,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAQjG,4DAA4D;IACtD,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAQjG,qCAAqC;IAC/B,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC;IAS9E,sDAAsD;IAChD,UAAU,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAgB1E,uCAAuC;IACjC,cAAc,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAIvD,yCAAyC;IACnC,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAM1D,kHAAkH;IAC5G,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IAOjF,kFAAkF;IAC5E,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gCAAgC,CAAC;IAM3F,kFAAkF;IAC5E,4BAA4B,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,oCAAoC,CAAC;IAatG;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACG,cAAc,CAClB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAA;KAAE,GACzD,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAOvC;;;;;;OAMG;IACG,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IAS5E;;;;OAIG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAK/D;;;;OAIG;IACG,aAAa,CACjB,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GACjC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAe9C;;;;OAIG;IACG,yBAAyB,CAC7B,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,EAC9C,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GACjC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAyBnD,4DAA4D;IACtD,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAO/F,4CAA4C;IACtC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAKzG,0EAA0E;IACpE,6BAA6B,CACjC,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,EAAE,MAAM,CAAC;QACzB,UAAU,EAAE,OAAO,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IAUF,+EAA+E;IACzE,4BAA4B,CAChC,QAAQ,EAAE,MAAM,EAChB,mBAAmB,EAAE,yBAAyB,EAAE,GAC/C,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAOnC,2EAA2E;IACrE,wBAAwB,CAC5B,QAAQ,EAAE,MAAM,EAChB,mBAAmB,EAAE,yBAAyB,EAAE,GAC/C,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IASnC;;;;;;;;;;;;;;OAcG;IACG,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAClD,OAAO,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;QACvF,MAAM,EAAE,KAAK,CAAC;YACZ,KAAK,EAAE,MAAM,CAAC;YACd,SAAS,EAAE,MAAM,CAAC;YAClB,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;YAChC,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,cAAc,CAAC,EAAE,MAAM,CAAC;SACzB,CAAC,CAAC;QACH,MAAM,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACpE,MAAM,EAAE,KAAK,CAAC;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAClC,EAAE,EAAE,KAAK,CAAC;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC9C,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAQF;;;;;;OAMG;IACG,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QACtD,OAAO,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;KACxF,CAAC;IAOF,oDAAoD;IAC9C,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAKzE;;;;;;;;;;;;;OAaG;IACG,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAIpF;;;;;;;;OAQG;IACG,6BAA6B,CAAC,MAAM,EAAE,6BAA6B,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAI3G;;;OAGG;IACG,8BAA8B,CAAC,MAAM,EAAE,6BAA6B,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAI5G;;;;OAIG;IACG,6BAA6B,CACjC,MAAM,EAAE,mCAAmC,GAC1C,OAAO,CAAC,sCAAsC,CAAC;IAC5C,6BAA6B,CACjC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,6BAA6B,GACpC,OAAO,CAAC,sCAAsC,CAAC;IASlD;;;;;;;;;;;;OAYG;IACG,8BAA8B,CAClC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,6BAA6B,GACpC,OAAO,CAAC,sCAAsC,CAAC;IAQlD;;;;;;;;OAQG;IACG,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,8BAA8B,GAAG,IAAI,CAAC;IA2BlG;;;;;;OAMG;IACG,2BAA2B,CAAC,OAAO,CAAC,EAAE;QAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,mCAAmC,CAAC;IAQhD;;;;;;OAMG;IACG,6BAA6B,CACjC,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAC5B,OAAO,CAAC,qCAAqC,CAAC;IAajD,iDAAiD;IAC3C,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,OAAO,EAAE,CAAC;QAAC,UAAU,EAAE,OAAO,EAAE,CAAC;QAAC,UAAU,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC;IAKzG,8CAA8C;IACxC,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAOxF,gEAAgE;IAC1D,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAKlE,kDAAkD;IAC5C,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAKpE,4CAA4C;IACtC,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAKrE,mDAAmD;IAC7C,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAOzE;;;;;;OAMG;IACG,OAAO,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC;IAoBzD;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,KAAK,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,cAAc,CAAC,iBAAiB,CAAC;IAYvG;;;;;;OAMG;IACG,YAAY,CAAC,KAAK,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAmB1E;;;;;OAKG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAMjE;;;;;;OAMG;IACG,0BAA0B,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAS7F,+EAA+E;IACzE,YAAY,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAc7E,2EAA2E;IACrE,aAAa,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IAOtF,iEAAiE;IAC3D,mBAAmB,CAAC,IAAI,EAAE,0BAA0B,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAKjG,8CAA8C;IACxC,gBAAgB,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC;IAQ/F,gFAAgF;IAC1E,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAWtE,oDAAoD;IAC9C,eAAe,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC;IAQ5F,uDAAuD;IACjD,kBAAkB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAAC;YAUvF,GAAG;YASH,IAAI;YAYJ,YAAY;YAYZ,GAAG;YAYH,aAAa;IAW3B,OAAO,CAAC,sBAAsB;IAmB9B,OAAO,CAAC,4BAA4B;IAWpC,OAAO,CAAC,6BAA6B;IAcrC,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,gCAAgC;IASxC,OAAO,CAAC,iCAAiC;IAczC,OAAO,CAAC,iCAAiC;IAyBzC,OAAO,CAAC,4CAA4C;YAmBtC,WAAW;IAiCzB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,eAAe;YAkCT,QAAQ;IA4CtB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,iBAAiB;CAO1B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/registry/index.ts"],"names":[],"mappings":"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"}
@@ -28,8 +28,10 @@ __export(registry_exports, {
28
28
  InMemoryCursorStore: () => import_cursor_store.InMemoryCursorStore,
29
29
  PropertyRegistry: () => import_property_registry.PropertyRegistry,
30
30
  RegistryClient: () => RegistryClient,
31
+ RegistryRequestError: () => RegistryRequestError,
31
32
  RegistrySync: () => import_sync.RegistrySync,
32
33
  buildCommunityMirrorAdagents: () => buildCommunityMirrorAdagents,
34
+ isRegistryRequestError: () => isRegistryRequestError,
33
35
  openFeedStream: () => import_feed_stream2.openFeedStream,
34
36
  parseSseStream: () => import_feed_stream2.parseSseStream,
35
37
  sanitizeStreamText: () => import_feed_stream2.sanitizeStreamText
@@ -49,6 +51,59 @@ const MAX_BRAND_BULK_DOMAINS = 25;
49
51
  const MAX_BULK_DOMAINS = 100;
50
52
  const MAX_CHECK_DOMAINS = 1e4;
51
53
  const COMMUNITY_MIRROR_PLATFORM_RE = /^[a-z0-9_-]{1,64}$/;
54
+ const MAX_REGISTRY_ERROR_DETAILS_BYTES = 64 * 1024;
55
+ const MAX_RETRY_AFTER_MS = 2147483647;
56
+ class RegistryRequestError extends Error {
57
+ status;
58
+ method;
59
+ retryAfterMs;
60
+ /** Bounded, untrusted JSON returned by the remote registry. */
61
+ details;
62
+ constructor(status, message, options) {
63
+ super(message, options.cause === void 0 ? void 0 : { cause: options.cause });
64
+ this.name = "RegistryRequestError";
65
+ this.status = status;
66
+ this.method = options.method;
67
+ this.retryAfterMs = options.retryAfterMs;
68
+ this.details = options.details;
69
+ }
70
+ }
71
+ function isRegistryRequestError(error) {
72
+ if (error instanceof RegistryRequestError) return true;
73
+ if (error === null || typeof error !== "object" || Array.isArray(error)) return false;
74
+ const candidate = error;
75
+ return candidate.name === "RegistryRequestError" && typeof candidate.message === "string" && typeof candidate.status === "number" && Number.isFinite(candidate.status) && typeof candidate.method === "string";
76
+ }
77
+ function parseRegistryErrorDetails(text) {
78
+ if (new TextEncoder().encode(text).byteLength > MAX_REGISTRY_ERROR_DETAILS_BYTES) return void 0;
79
+ try {
80
+ const parsed = JSON.parse(text);
81
+ return parsed !== null && typeof parsed === "object" && !Array.isArray(parsed) ? parsed : void 0;
82
+ } catch {
83
+ return void 0;
84
+ }
85
+ }
86
+ function boundedRetryAfterMsFromSeconds(seconds) {
87
+ if (!Number.isFinite(seconds) || seconds < 0) return void 0;
88
+ const milliseconds = seconds * 1e3;
89
+ if (!Number.isFinite(milliseconds)) return MAX_RETRY_AFTER_MS;
90
+ return Math.min(milliseconds, MAX_RETRY_AFTER_MS);
91
+ }
92
+ function retryAfterMsFromDetails(details) {
93
+ if (!details || typeof details !== "object" || Array.isArray(details)) return void 0;
94
+ const record = details;
95
+ if (typeof record.retryAfterMs === "number" && Number.isFinite(record.retryAfterMs) && record.retryAfterMs >= 0) {
96
+ return Math.min(record.retryAfterMs, MAX_RETRY_AFTER_MS);
97
+ }
98
+ const seconds = record.retryAfter ?? record.retry_after;
99
+ return typeof seconds === "number" ? boundedRetryAfterMsFromSeconds(seconds) : void 0;
100
+ }
101
+ function retryAfterMsFromHeader(value) {
102
+ const trimmed = value?.trim();
103
+ if (!trimmed || !/^\d+$/.test(trimmed)) return void 0;
104
+ const seconds = Number(trimmed);
105
+ return Number.isFinite(seconds) ? boundedRetryAfterMsFromSeconds(seconds) : MAX_RETRY_AFTER_MS;
106
+ }
52
107
  function buildCommunityMirrorAdagents(config) {
53
108
  const maybeConfig = config;
54
109
  if ("authorized_agents" in maybeConfig) {
@@ -721,7 +776,7 @@ class RegistryClient {
721
776
  return { events: [], cursor: null, has_more: false, cursor_expired: true };
722
777
  }
723
778
  if (!res.ok) {
724
- throw new Error(`Registry request failed (${res.status}): ${this.preview(text)}`);
779
+ throw this.requestError(res, text, "GET");
725
780
  }
726
781
  return this.parseJson(text);
727
782
  }
@@ -864,7 +919,7 @@ class RegistryClient {
864
919
  const { res, text } = await this.requestText(url, { headers: this.getHeaders() });
865
920
  if (opts?.nullOn404 && res.status === 404) return null;
866
921
  if (!res.ok) {
867
- throw new Error(`Registry request failed (${res.status}): ${this.preview(text)}`);
922
+ throw this.requestError(res, text, "GET");
868
923
  }
869
924
  return this.parseJson(text);
870
925
  }
@@ -875,7 +930,7 @@ class RegistryClient {
875
930
  body: JSON.stringify(body)
876
931
  });
877
932
  if (!res.ok) {
878
- throw new Error(`Registry request failed (${res.status}): ${this.preview(text)}`);
933
+ throw this.requestError(res, text, "POST");
879
934
  }
880
935
  return this.parseJson(text);
881
936
  }
@@ -886,7 +941,7 @@ class RegistryClient {
886
941
  body
887
942
  });
888
943
  if (!res.ok) {
889
- throw new Error(`Registry request failed (${res.status}): ${this.preview(text)}`);
944
+ throw this.requestError(res, text, "POST");
890
945
  }
891
946
  return this.parseJson(text);
892
947
  }
@@ -897,7 +952,7 @@ class RegistryClient {
897
952
  body: JSON.stringify(body)
898
953
  });
899
954
  if (!res.ok) {
900
- throw new Error(`Registry request failed (${res.status}): ${this.preview(text)}`);
955
+ throw this.requestError(res, text, "PUT");
901
956
  }
902
957
  return this.parseJson(text);
903
958
  }
@@ -907,7 +962,7 @@ class RegistryClient {
907
962
  headers: this.getHeaders()
908
963
  });
909
964
  if (!res.ok) {
910
- throw new Error(`Registry request failed (${res.status}): ${this.preview(text)}`);
965
+ throw this.requestError(res, text, "DELETE");
911
966
  }
912
967
  return this.parseJson(text);
913
968
  }
@@ -1022,7 +1077,13 @@ class RegistryClient {
1022
1077
  redirect: this.redirect,
1023
1078
  signal: controller.signal
1024
1079
  });
1025
- const text = await this.readBody(res, this.bodyLimitForUrl(url));
1080
+ let text;
1081
+ try {
1082
+ text = await this.readBody(res, this.bodyLimitForUrl(url));
1083
+ } catch (error) {
1084
+ if (!res.ok) throw this.requestError(res, "", init.method ?? "GET", error);
1085
+ throw error;
1086
+ }
1026
1087
  return { res, text };
1027
1088
  });
1028
1089
  requestPromise.catch(() => {
@@ -1107,6 +1168,17 @@ class RegistryClient {
1107
1168
  preview(text) {
1108
1169
  return text.slice(0, ERROR_BODY_PREVIEW_CHARS).replace(/[\u0000-\u001f\u007f]/g, (ch) => `\\u${ch.charCodeAt(0).toString(16).padStart(4, "0")}`);
1109
1170
  }
1171
+ requestError(res, text, method, cause) {
1172
+ const details = parseRegistryErrorDetails(text);
1173
+ const retryAfterMs = retryAfterMsFromHeader(res.headers.get("retry-after")) ?? retryAfterMsFromDetails(details);
1174
+ const preview = cause === void 0 ? this.preview(text) : "[response body unavailable]";
1175
+ return new RegistryRequestError(res.status, `Registry request failed (${res.status}): ${preview}`, {
1176
+ method,
1177
+ ...retryAfterMs !== void 0 ? { retryAfterMs } : {},
1178
+ ...details !== void 0 ? { details } : {},
1179
+ ...cause !== void 0 ? { cause } : {}
1180
+ });
1181
+ }
1110
1182
  buildParams(options) {
1111
1183
  if (!options) return "";
1112
1184
  const params = new URLSearchParams();
@@ -1140,8 +1212,10 @@ class RegistryClient {
1140
1212
  InMemoryCursorStore,
1141
1213
  PropertyRegistry,
1142
1214
  RegistryClient,
1215
+ RegistryRequestError,
1143
1216
  RegistrySync,
1144
1217
  buildCommunityMirrorAdagents,
1218
+ isRegistryRequestError,
1145
1219
  openFeedStream,
1146
1220
  parseSseStream,
1147
1221
  sanitizeStreamText