@peac/kernel 0.11.1 → 0.11.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -0
- package/dist/carrier.d.ts +14 -0
- package/dist/carrier.d.ts.map +1 -1
- package/dist/error-categories.generated.d.ts +1 -1
- package/dist/errors.cjs +295 -149
- package/dist/errors.cjs.map +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.generated.d.ts +3 -3
- package/dist/errors.generated.d.ts.map +1 -1
- package/dist/errors.mjs +295 -149
- package/dist/errors.mjs.map +1 -1
- package/dist/index.cjs +297 -149
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +296 -149
- package/dist/index.mjs.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.ts +10 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/error-categories.generated.ts","../src/constants.ts","../src/errors.generated.ts","../src/registries.ts","../src/http.ts","../src/carrier.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["/**\n * PEAC Protocol Error Categories\n *\n * AUTO-GENERATED from specs/kernel/errors.json\n * DO NOT EDIT MANUALLY - run: npx tsx scripts/codegen-errors.ts\n * Spec version: 0.11.0\n */\n\n/**\n * Canonical error categories derived from specs/kernel/errors.json.\n * This is the single source of truth for all error category definitions.\n * Sorted alphabetically. This ordering is a codegen invariant.\n */\nexport const ERROR_CATEGORIES = [\n 'attribution',\n 'bundle',\n 'control',\n 'dispute',\n 'identity',\n 'infrastructure',\n 'interaction',\n 'ucp',\n 'validation',\n 'verification',\n 'verifier',\n 'workflow',\n] as const;\n\n/**\n * Error category type - union of all categories in specs/kernel/errors.json\n */\nexport type ErrorCategory = (typeof ERROR_CATEGORIES)[number];\n","/**\n * PEAC Protocol Constants\n * Derived from specs/kernel/constants.json\n *\n * NOTE: This file is manually synced for v0.9.15.\n * From v0.9.16+, this will be auto-generated via codegen.\n */\n\n/**\n * Wire format type for PEAC receipts\n * Normalized to peac-receipt/0.1 per DEC-20260114-002\n */\nexport const WIRE_TYPE = 'peac-receipt/0.1' as const;\n\n/**\n * Wire format version (extracted from WIRE_TYPE)\n * Use this for wire_version fields in receipts\n */\nexport const WIRE_VERSION = '0.1' as const;\n\n/**\n * Supported cryptographic algorithms\n */\nexport const ALGORITHMS = {\n supported: ['EdDSA'] as const,\n default: 'EdDSA' as const,\n} as const;\n\n/**\n * HTTP header names for PEAC protocol\n */\nexport const HEADERS = {\n receipt: 'PEAC-Receipt' as const,\n receiptPointer: 'PEAC-Receipt-Pointer' as const,\n dpop: 'DPoP' as const,\n // Purpose headers (v0.9.24+)\n purpose: 'PEAC-Purpose' as const,\n purposeApplied: 'PEAC-Purpose-Applied' as const,\n purposeReason: 'PEAC-Purpose-Reason' as const,\n} as const;\n\n/**\n * Policy manifest settings (/.well-known/peac.txt)\n *\n * Policy documents declare access terms for agents and gateways.\n * @see docs/specs/PEAC-TXT.md\n */\nexport const POLICY = {\n manifestPath: '/.well-known/peac.txt' as const,\n fallbackPath: '/peac.txt' as const,\n manifestVersion: 'peac-policy/0.1' as const,\n cacheTtlSeconds: 3600,\n maxBytes: 262144, // 256 KiB\n maxDepth: 8,\n} as const;\n\n/**\n * Issuer configuration settings (/.well-known/peac-issuer.json)\n *\n * Issuer config enables verifiers to discover JWKS and verification endpoints.\n * @see docs/specs/PEAC-ISSUER.md\n */\nexport const ISSUER_CONFIG = {\n configPath: '/.well-known/peac-issuer.json' as const,\n configVersion: 'peac-issuer/0.1' as const,\n cacheTtlSeconds: 3600,\n maxBytes: 65536, // 64 KiB\n maxDepth: 4,\n fetchTimeoutMs: 10000,\n} as const;\n\n/**\n * @deprecated Use POLICY instead. Will be removed in v1.0.\n */\nexport const DISCOVERY = {\n manifestPath: POLICY.manifestPath,\n manifestVersion: 'peac/0.9' as const,\n cacheTtlSeconds: POLICY.cacheTtlSeconds,\n} as const;\n\n/**\n * JWKS rotation and revocation settings\n */\nexport const JWKS = {\n rotationDays: 90,\n overlapDays: 7,\n emergencyRevocationHours: 24,\n} as const;\n\n/**\n * Receipt validation constants\n */\nexport const RECEIPT = {\n minReceiptIdLength: 16,\n maxReceiptIdLength: 64,\n defaultTtlSeconds: 86400, // 24 hours\n} as const;\n\n/**\n * Payment amount validation limits (in cents/smallest currency unit)\n */\nexport const LIMITS = {\n maxAmountCents: 999999999999,\n minAmountCents: 1,\n} as const;\n\n/**\n * Bundle format version.\n * Used in dispute bundles, audit bundles, and archive bundles.\n */\nexport const BUNDLE_VERSION = 'peac-bundle/0.1' as const;\n\n/**\n * Verification report format version.\n */\nexport const VERIFICATION_REPORT_VERSION = 'peac-verification-report/0.1' as const;\n\n/**\n * Hash format constants and utilities.\n * All hashes use the self-describing format: sha256:<64 lowercase hex chars>\n */\nexport const HASH = {\n /** Canonical hash algorithm */\n algorithm: 'sha256' as const,\n\n /** Hash prefix pattern */\n prefix: 'sha256:' as const,\n\n /** Valid hash regex: sha256:<64 lowercase hex> */\n pattern: /^sha256:[0-9a-f]{64}$/,\n\n /** Hex-only pattern for legacy comparison */\n hexPattern: /^[0-9a-f]{64}$/,\n};\n\n/**\n * Parse a sha256:<hex> hash string into components.\n * Returns null if the format is invalid.\n *\n * @param hash - Hash string to parse (e.g., \"sha256:abc123...\")\n * @returns Parsed hash or null if invalid\n */\nexport function parseHash(hash: string): { alg: 'sha256'; hex: string } | null {\n if (!HASH.pattern.test(hash)) {\n return null;\n }\n return {\n alg: 'sha256',\n hex: hash.slice(7), // Remove 'sha256:' prefix\n };\n}\n\n/**\n * Format a hex string as a sha256:<hex> hash.\n * Validates that the hex is exactly 64 lowercase characters.\n *\n * @param hex - Hex string (64 lowercase characters)\n * @returns Formatted hash or null if invalid\n */\nexport function formatHash(hex: string): string | null {\n if (!HASH.hexPattern.test(hex)) {\n return null;\n }\n return `sha256:${hex}`;\n}\n\n/**\n * Validate a hash string is in the correct format.\n *\n * @param hash - Hash string to validate\n * @returns true if valid sha256:<64 hex> format\n */\nexport function isValidHash(hash: string): boolean {\n return HASH.pattern.test(hash);\n}\n\n/**\n * Verifier security limits per VERIFIER-SECURITY-MODEL.md\n */\nexport const VERIFIER_LIMITS = {\n /** Maximum receipt size in bytes (256 KB) */\n maxReceiptBytes: 262144,\n /** Maximum number of claims in a receipt */\n maxClaimsCount: 100,\n /** Maximum extension size in bytes (64 KB) */\n maxExtensionBytes: 65536,\n /** Maximum string length for individual claims (64 KB) */\n maxStringLength: 65536,\n /** Maximum JWKS document size in bytes (64 KB) */\n maxJwksBytes: 65536,\n /** Maximum number of keys in a JWKS */\n maxJwksKeys: 20,\n /** Maximum individual key size in bytes */\n maxKeySize: 4096,\n /** Network fetch timeout in milliseconds */\n fetchTimeoutMs: 5000,\n /** Maximum number of redirects to follow */\n maxRedirects: 3,\n /** Maximum network response size in bytes (256 KB) */\n maxResponseBytes: 262144,\n} as const;\n\n/**\n * Verifier network security settings per VERIFIER-SECURITY-MODEL.md\n */\nexport const VERIFIER_NETWORK = {\n /** Only allow HTTPS URLs */\n httpsOnly: true,\n /** Block requests to private IP ranges */\n blockPrivateIps: true,\n /** Default redirect policy (false = no redirects) */\n allowRedirects: false,\n} as const;\n\n/**\n * Private IPv4 CIDR blocks to block for SSRF protection\n */\nexport const PRIVATE_IP_RANGES = {\n /** RFC 1918 private ranges */\n rfc1918: ['10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16'] as const,\n /** Link-local addresses */\n linkLocal: ['169.254.0.0/16'] as const,\n /** Loopback addresses */\n loopback: ['127.0.0.0/8'] as const,\n /** IPv6 loopback */\n ipv6Loopback: ['::1/128'] as const,\n /** IPv6 link-local */\n ipv6LinkLocal: ['fe80::/10'] as const,\n} as const;\n\n/**\n * Verifier policy version\n */\nexport const VERIFIER_POLICY_VERSION = 'peac-verifier-policy/0.1' as const;\n\n/**\n * Verification modes per VERIFIER-SECURITY-MODEL.md\n */\nexport const VERIFICATION_MODES = {\n /** All verification in browser/client, may fetch JWKS */\n clientSide: 'client_side' as const,\n /** No network access, uses bundled/pinned keys */\n offlineOnly: 'offline_only' as const,\n /** Prefer offline, fallback to network */\n offlinePreferred: 'offline_preferred' as const,\n /** Allow network fetches for key discovery */\n networkAllowed: 'network_allowed' as const,\n} as const;\n\n/**\n * All constants export\n */\nexport const CONSTANTS = {\n WIRE_TYPE,\n WIRE_VERSION,\n ALGORITHMS,\n HEADERS,\n DISCOVERY,\n JWKS,\n RECEIPT,\n LIMITS,\n BUNDLE_VERSION,\n VERIFICATION_REPORT_VERSION,\n HASH,\n VERIFIER_LIMITS,\n VERIFIER_NETWORK,\n VERIFIER_POLICY_VERSION,\n VERIFICATION_MODES,\n} as const;\n","/**\n * PEAC Protocol Error Codes\n *\n * AUTO-GENERATED from specs/kernel/errors.json\n * DO NOT EDIT MANUALLY - run: npx tsx scripts/codegen-errors.ts\n * Spec version: 0.11.0\n */\n\nimport type { ErrorDefinition } from './types.js';\n\n/**\n * Error code string constants\n */\nexport const ERROR_CODES = {\n // Attribution error codes\n E_ATTRIBUTION_CHAIN_TOO_DEEP: 'E_ATTRIBUTION_CHAIN_TOO_DEEP',\n E_ATTRIBUTION_CIRCULAR_CHAIN: 'E_ATTRIBUTION_CIRCULAR_CHAIN',\n E_ATTRIBUTION_EXPIRED: 'E_ATTRIBUTION_EXPIRED',\n E_ATTRIBUTION_HASH_INVALID: 'E_ATTRIBUTION_HASH_INVALID',\n E_ATTRIBUTION_INVALID_FORMAT: 'E_ATTRIBUTION_INVALID_FORMAT',\n E_ATTRIBUTION_INVALID_REF: 'E_ATTRIBUTION_INVALID_REF',\n E_ATTRIBUTION_INVALID_WEIGHT: 'E_ATTRIBUTION_INVALID_WEIGHT',\n E_ATTRIBUTION_MISSING_SOURCES: 'E_ATTRIBUTION_MISSING_SOURCES',\n E_ATTRIBUTION_NOT_YET_VALID: 'E_ATTRIBUTION_NOT_YET_VALID',\n E_ATTRIBUTION_RESOLUTION_FAILED: 'E_ATTRIBUTION_RESOLUTION_FAILED',\n E_ATTRIBUTION_RESOLUTION_TIMEOUT: 'E_ATTRIBUTION_RESOLUTION_TIMEOUT',\n E_ATTRIBUTION_SIZE_EXCEEDED: 'E_ATTRIBUTION_SIZE_EXCEEDED',\n E_ATTRIBUTION_TOO_MANY_SOURCES: 'E_ATTRIBUTION_TOO_MANY_SOURCES',\n E_ATTRIBUTION_UNKNOWN_USAGE: 'E_ATTRIBUTION_UNKNOWN_USAGE',\n\n // Bundle error codes\n E_BUNDLE_DUPLICATE_RECEIPT: 'E_BUNDLE_DUPLICATE_RECEIPT',\n E_BUNDLE_HASH_MISMATCH: 'E_BUNDLE_HASH_MISMATCH',\n E_BUNDLE_INVALID_FORMAT: 'E_BUNDLE_INVALID_FORMAT',\n E_BUNDLE_KEY_MISSING: 'E_BUNDLE_KEY_MISSING',\n E_BUNDLE_MANIFEST_INVALID: 'E_BUNDLE_MANIFEST_INVALID',\n E_BUNDLE_MANIFEST_MISSING: 'E_BUNDLE_MANIFEST_MISSING',\n E_BUNDLE_MISSING_KEYS: 'E_BUNDLE_MISSING_KEYS',\n E_BUNDLE_MISSING_RECEIPTS: 'E_BUNDLE_MISSING_RECEIPTS',\n E_BUNDLE_PATH_TRAVERSAL: 'E_BUNDLE_PATH_TRAVERSAL',\n E_BUNDLE_POLICY_HASH_MISMATCH: 'E_BUNDLE_POLICY_HASH_MISMATCH',\n E_BUNDLE_RECEIPTS_UNORDERED: 'E_BUNDLE_RECEIPTS_UNORDERED',\n E_BUNDLE_RECEIPT_INVALID: 'E_BUNDLE_RECEIPT_INVALID',\n E_BUNDLE_SIGNATURE_INVALID: 'E_BUNDLE_SIGNATURE_INVALID',\n E_BUNDLE_SIZE_EXCEEDED: 'E_BUNDLE_SIZE_EXCEEDED',\n E_BUNDLE_TIME_RANGE_INVALID: 'E_BUNDLE_TIME_RANGE_INVALID',\n\n // Control error codes\n E_CONTROL_DENIED: 'E_CONTROL_DENIED',\n E_CONTROL_REVIEW_REQUIRED: 'E_CONTROL_REVIEW_REQUIRED',\n\n // Dispute error codes\n E_DISPUTE_DUPLICATE: 'E_DISPUTE_DUPLICATE',\n E_DISPUTE_EXPIRED: 'E_DISPUTE_EXPIRED',\n E_DISPUTE_INVALID_FORMAT: 'E_DISPUTE_INVALID_FORMAT',\n E_DISPUTE_INVALID_GROUNDS: 'E_DISPUTE_INVALID_GROUNDS',\n E_DISPUTE_INVALID_ID: 'E_DISPUTE_INVALID_ID',\n E_DISPUTE_INVALID_STATE: 'E_DISPUTE_INVALID_STATE',\n E_DISPUTE_INVALID_TARGET_TYPE: 'E_DISPUTE_INVALID_TARGET_TYPE',\n E_DISPUTE_INVALID_TRANSITION: 'E_DISPUTE_INVALID_TRANSITION',\n E_DISPUTE_INVALID_TYPE: 'E_DISPUTE_INVALID_TYPE',\n E_DISPUTE_MISSING_RESOLUTION: 'E_DISPUTE_MISSING_RESOLUTION',\n E_DISPUTE_NOT_YET_VALID: 'E_DISPUTE_NOT_YET_VALID',\n E_DISPUTE_OTHER_REQUIRES_DESCRIPTION: 'E_DISPUTE_OTHER_REQUIRES_DESCRIPTION',\n E_DISPUTE_RESOLUTION_NOT_ALLOWED: 'E_DISPUTE_RESOLUTION_NOT_ALLOWED',\n E_DISPUTE_TARGET_NOT_FOUND: 'E_DISPUTE_TARGET_NOT_FOUND',\n\n // Identity error codes\n E_IDENTITY_BINDING_FUTURE: 'E_IDENTITY_BINDING_FUTURE',\n E_IDENTITY_BINDING_MISMATCH: 'E_IDENTITY_BINDING_MISMATCH',\n E_IDENTITY_BINDING_STALE: 'E_IDENTITY_BINDING_STALE',\n E_IDENTITY_DIRECTORY_UNAVAILABLE: 'E_IDENTITY_DIRECTORY_UNAVAILABLE',\n E_IDENTITY_EXPIRED: 'E_IDENTITY_EXPIRED',\n E_IDENTITY_INVALID_FORMAT: 'E_IDENTITY_INVALID_FORMAT',\n E_IDENTITY_KEY_EXPIRED: 'E_IDENTITY_KEY_EXPIRED',\n E_IDENTITY_KEY_REVOKED: 'E_IDENTITY_KEY_REVOKED',\n E_IDENTITY_KEY_UNKNOWN: 'E_IDENTITY_KEY_UNKNOWN',\n E_IDENTITY_MISSING: 'E_IDENTITY_MISSING',\n E_IDENTITY_NOT_YET_VALID: 'E_IDENTITY_NOT_YET_VALID',\n E_IDENTITY_PROOF_UNSUPPORTED: 'E_IDENTITY_PROOF_UNSUPPORTED',\n E_IDENTITY_SIG_INVALID: 'E_IDENTITY_SIG_INVALID',\n\n // Infrastructure error codes\n E_CIRCUIT_BREAKER_OPEN: 'E_CIRCUIT_BREAKER_OPEN',\n E_INTERNAL: 'E_INTERNAL',\n E_JWKS_FETCH_FAILED: 'E_JWKS_FETCH_FAILED',\n E_RATE_LIMITED: 'E_RATE_LIMITED',\n\n // Interaction error codes\n E_INTERACTION_INVALID_DIGEST: 'E_INTERACTION_INVALID_DIGEST',\n E_INTERACTION_INVALID_DIGEST_ALG: 'E_INTERACTION_INVALID_DIGEST_ALG',\n E_INTERACTION_INVALID_EXTENSION_KEY: 'E_INTERACTION_INVALID_EXTENSION_KEY',\n E_INTERACTION_INVALID_FORMAT: 'E_INTERACTION_INVALID_FORMAT',\n E_INTERACTION_INVALID_KIND_FORMAT: 'E_INTERACTION_INVALID_KIND_FORMAT',\n E_INTERACTION_INVALID_TIMING: 'E_INTERACTION_INVALID_TIMING',\n E_INTERACTION_KIND_RESERVED: 'E_INTERACTION_KIND_RESERVED',\n E_INTERACTION_MISSING_ERROR_DETAIL: 'E_INTERACTION_MISSING_ERROR_DETAIL',\n E_INTERACTION_MISSING_EXECUTOR: 'E_INTERACTION_MISSING_EXECUTOR',\n E_INTERACTION_MISSING_ID: 'E_INTERACTION_MISSING_ID',\n E_INTERACTION_MISSING_KIND: 'E_INTERACTION_MISSING_KIND',\n E_INTERACTION_MISSING_RESULT: 'E_INTERACTION_MISSING_RESULT',\n E_INTERACTION_MISSING_STARTED_AT: 'E_INTERACTION_MISSING_STARTED_AT',\n E_INTERACTION_MISSING_TARGET: 'E_INTERACTION_MISSING_TARGET',\n\n // Ucp error codes\n E_UCP_EVIDENCE_SERIALIZATION_FAILED: 'E_UCP_EVIDENCE_SERIALIZATION_FAILED',\n E_UCP_KEY_ALGORITHM_MISMATCH: 'E_UCP_KEY_ALGORITHM_MISMATCH',\n E_UCP_KEY_CURVE_MISMATCH: 'E_UCP_KEY_CURVE_MISMATCH',\n E_UCP_KEY_NOT_FOUND: 'E_UCP_KEY_NOT_FOUND',\n E_UCP_ORDER_INVALID: 'E_UCP_ORDER_INVALID',\n E_UCP_ORDER_MISSING_ID: 'E_UCP_ORDER_MISSING_ID',\n E_UCP_ORDER_MISSING_LINE_ITEMS: 'E_UCP_ORDER_MISSING_LINE_ITEMS',\n E_UCP_ORDER_MISSING_TOTALS: 'E_UCP_ORDER_MISSING_TOTALS',\n E_UCP_PAYLOAD_EMPTY: 'E_UCP_PAYLOAD_EMPTY',\n E_UCP_PAYLOAD_NOT_JSON: 'E_UCP_PAYLOAD_NOT_JSON',\n E_UCP_PAYLOAD_TOO_LARGE: 'E_UCP_PAYLOAD_TOO_LARGE',\n E_UCP_PROFILE_FETCH_FAILED: 'E_UCP_PROFILE_FETCH_FAILED',\n E_UCP_PROFILE_INVALID: 'E_UCP_PROFILE_INVALID',\n E_UCP_PROFILE_NO_SIGNING_KEYS: 'E_UCP_PROFILE_NO_SIGNING_KEYS',\n E_UCP_SIGNATURE_ALGORITHM_UNSUPPORTED: 'E_UCP_SIGNATURE_ALGORITHM_UNSUPPORTED',\n E_UCP_SIGNATURE_B64_INVALID: 'E_UCP_SIGNATURE_B64_INVALID',\n E_UCP_SIGNATURE_INVALID: 'E_UCP_SIGNATURE_INVALID',\n E_UCP_SIGNATURE_MALFORMED: 'E_UCP_SIGNATURE_MALFORMED',\n E_UCP_SIGNATURE_MISSING: 'E_UCP_SIGNATURE_MISSING',\n E_UCP_VERIFICATION_FAILED: 'E_UCP_VERIFICATION_FAILED',\n\n // Validation error codes\n E_CONSTRAINT_VIOLATION: 'E_CONSTRAINT_VIOLATION',\n E_EVIDENCE_NOT_JSON: 'E_EVIDENCE_NOT_JSON',\n E_EXPIRED: 'E_EXPIRED',\n E_INVALID_AMOUNT: 'E_INVALID_AMOUNT',\n E_INVALID_AUDIENCE: 'E_INVALID_AUDIENCE',\n E_INVALID_CURRENCY: 'E_INVALID_CURRENCY',\n E_INVALID_FORMAT: 'E_INVALID_FORMAT',\n E_INVALID_ISSUER: 'E_INVALID_ISSUER',\n E_INVALID_RAIL: 'E_INVALID_RAIL',\n E_INVALID_RECEIPT_ID: 'E_INVALID_RECEIPT_ID',\n E_INVALID_SUBJECT: 'E_INVALID_SUBJECT',\n E_MISSING_EXP: 'E_MISSING_EXP',\n E_MISSING_REQUIRED_CLAIM: 'E_MISSING_REQUIRED_CLAIM',\n E_NOT_YET_VALID: 'E_NOT_YET_VALID',\n E_PARSE_ATTESTATION_INVALID: 'E_PARSE_ATTESTATION_INVALID',\n E_PARSE_COMMERCE_INVALID: 'E_PARSE_COMMERCE_INVALID',\n E_PARSE_INVALID_INPUT: 'E_PARSE_INVALID_INPUT',\n\n // Verification error codes\n E_INVALID_SIGNATURE: 'E_INVALID_SIGNATURE',\n E_KEY_NOT_FOUND: 'E_KEY_NOT_FOUND',\n\n // Verifier error codes\n E_VERIFY_EXTENSION_TOO_LARGE: 'E_VERIFY_EXTENSION_TOO_LARGE',\n E_VERIFY_INSECURE_SCHEME_BLOCKED: 'E_VERIFY_INSECURE_SCHEME_BLOCKED',\n E_VERIFY_INVALID_TRANSPORT: 'E_VERIFY_INVALID_TRANSPORT',\n E_VERIFY_ISSUER_CONFIG_INVALID: 'E_VERIFY_ISSUER_CONFIG_INVALID',\n E_VERIFY_ISSUER_CONFIG_MISSING: 'E_VERIFY_ISSUER_CONFIG_MISSING',\n E_VERIFY_ISSUER_MISMATCH: 'E_VERIFY_ISSUER_MISMATCH',\n E_VERIFY_ISSUER_NOT_ALLOWED: 'E_VERIFY_ISSUER_NOT_ALLOWED',\n E_VERIFY_JWKS_INVALID: 'E_VERIFY_JWKS_INVALID',\n E_VERIFY_JWKS_TOO_LARGE: 'E_VERIFY_JWKS_TOO_LARGE',\n E_VERIFY_JWKS_TOO_MANY_KEYS: 'E_VERIFY_JWKS_TOO_MANY_KEYS',\n E_VERIFY_JWKS_URI_INVALID: 'E_VERIFY_JWKS_URI_INVALID',\n E_VERIFY_KEY_FETCH_BLOCKED: 'E_VERIFY_KEY_FETCH_BLOCKED',\n E_VERIFY_KEY_FETCH_FAILED: 'E_VERIFY_KEY_FETCH_FAILED',\n E_VERIFY_KEY_FETCH_TIMEOUT: 'E_VERIFY_KEY_FETCH_TIMEOUT',\n E_VERIFY_MALFORMED_RECEIPT: 'E_VERIFY_MALFORMED_RECEIPT',\n E_VERIFY_POINTER_DIGEST_MISMATCH: 'E_VERIFY_POINTER_DIGEST_MISMATCH',\n E_VERIFY_POINTER_FETCH_BLOCKED: 'E_VERIFY_POINTER_FETCH_BLOCKED',\n E_VERIFY_POINTER_FETCH_FAILED: 'E_VERIFY_POINTER_FETCH_FAILED',\n E_VERIFY_POINTER_FETCH_TIMEOUT: 'E_VERIFY_POINTER_FETCH_TIMEOUT',\n E_VERIFY_POINTER_FETCH_TOO_LARGE: 'E_VERIFY_POINTER_FETCH_TOO_LARGE',\n E_VERIFY_POLICY_VIOLATION: 'E_VERIFY_POLICY_VIOLATION',\n E_VERIFY_RECEIPT_TOO_LARGE: 'E_VERIFY_RECEIPT_TOO_LARGE',\n E_VERIFY_SCHEMA_INVALID: 'E_VERIFY_SCHEMA_INVALID',\n\n // Workflow error codes\n E_WORKFLOW_CONTEXT_INVALID: 'E_WORKFLOW_CONTEXT_INVALID',\n E_WORKFLOW_CYCLE_DETECTED: 'E_WORKFLOW_CYCLE_DETECTED',\n E_WORKFLOW_DAG_INVALID: 'E_WORKFLOW_DAG_INVALID',\n E_WORKFLOW_ID_INVALID: 'E_WORKFLOW_ID_INVALID',\n E_WORKFLOW_LIMIT_EXCEEDED: 'E_WORKFLOW_LIMIT_EXCEEDED',\n E_WORKFLOW_PARENT_NOT_FOUND: 'E_WORKFLOW_PARENT_NOT_FOUND',\n E_WORKFLOW_STEP_ID_INVALID: 'E_WORKFLOW_STEP_ID_INVALID',\n E_WORKFLOW_SUMMARY_INVALID: 'E_WORKFLOW_SUMMARY_INVALID',\n} as const;\n\n/**\n * Union type of all error codes\n */\nexport type ErrorCode = (typeof ERROR_CODES)[keyof typeof ERROR_CODES];\n\n/**\n * Error definitions map with full metadata\n */\nexport const ERRORS: Record<string, ErrorDefinition> = {\n // Attribution error codes\n E_ATTRIBUTION_CHAIN_TOO_DEEP: {\n code: 'E_ATTRIBUTION_CHAIN_TOO_DEEP',\n http_status: 400,\n title: 'Attribution Chain Too Deep',\n description: 'Attribution chain exceeds maximum allowed depth (8)',\n retriable: false,\n category: 'attribution',\n },\n E_ATTRIBUTION_CIRCULAR_CHAIN: {\n code: 'E_ATTRIBUTION_CIRCULAR_CHAIN',\n http_status: 400,\n title: 'Attribution Circular Chain',\n description: 'Circular reference detected in attribution chain',\n retriable: false,\n category: 'attribution',\n },\n E_ATTRIBUTION_EXPIRED: {\n code: 'E_ATTRIBUTION_EXPIRED',\n http_status: 401,\n title: 'Attribution Expired',\n description: 'Attribution attestation has exceeded its expiration time',\n retriable: false,\n category: 'attribution',\n },\n E_ATTRIBUTION_HASH_INVALID: {\n code: 'E_ATTRIBUTION_HASH_INVALID',\n http_status: 400,\n title: 'Attribution Hash Invalid',\n description: 'Content hash structure is invalid (wrong algorithm, encoding, or value length)',\n retriable: false,\n category: 'attribution',\n },\n E_ATTRIBUTION_INVALID_FORMAT: {\n code: 'E_ATTRIBUTION_INVALID_FORMAT',\n http_status: 400,\n title: 'Attribution Invalid Format',\n description: 'Attribution attestation does not conform to schema',\n retriable: false,\n category: 'attribution',\n },\n E_ATTRIBUTION_INVALID_REF: {\n code: 'E_ATTRIBUTION_INVALID_REF',\n http_status: 400,\n title: 'Attribution Invalid Reference',\n description: 'Receipt reference format is invalid (must be jti:{id}, URL, or URN)',\n retriable: false,\n category: 'attribution',\n },\n E_ATTRIBUTION_INVALID_WEIGHT: {\n code: 'E_ATTRIBUTION_INVALID_WEIGHT',\n http_status: 400,\n title: 'Attribution Invalid Weight',\n description: 'Attribution weight is out of valid range (must be 0.0-1.0)',\n retriable: false,\n category: 'attribution',\n },\n E_ATTRIBUTION_MISSING_SOURCES: {\n code: 'E_ATTRIBUTION_MISSING_SOURCES',\n http_status: 400,\n title: 'Attribution Missing Sources',\n description: 'Attribution attestation has empty sources array',\n retriable: false,\n category: 'attribution',\n },\n E_ATTRIBUTION_NOT_YET_VALID: {\n code: 'E_ATTRIBUTION_NOT_YET_VALID',\n http_status: 401,\n title: 'Attribution Not Yet Valid',\n description: 'Attribution attestation issued_at time is in the future',\n retriable: true,\n category: 'attribution',\n },\n E_ATTRIBUTION_RESOLUTION_FAILED: {\n code: 'E_ATTRIBUTION_RESOLUTION_FAILED',\n http_status: 502,\n title: 'Attribution Resolution Failed',\n description: 'Failed to resolve receipt reference in attribution chain',\n retriable: true,\n category: 'attribution',\n },\n E_ATTRIBUTION_RESOLUTION_TIMEOUT: {\n code: 'E_ATTRIBUTION_RESOLUTION_TIMEOUT',\n http_status: 504,\n title: 'Attribution Resolution Timeout',\n description: 'Timeout while resolving receipt reference in attribution chain',\n retriable: true,\n category: 'attribution',\n },\n E_ATTRIBUTION_SIZE_EXCEEDED: {\n code: 'E_ATTRIBUTION_SIZE_EXCEEDED',\n http_status: 400,\n title: 'Attribution Size Exceeded',\n description: 'Attribution attestation exceeds maximum size (64KB)',\n retriable: false,\n category: 'attribution',\n },\n E_ATTRIBUTION_TOO_MANY_SOURCES: {\n code: 'E_ATTRIBUTION_TOO_MANY_SOURCES',\n http_status: 400,\n title: 'Attribution Too Many Sources',\n description: 'Attribution has too many sources (maximum 100)',\n retriable: false,\n category: 'attribution',\n },\n E_ATTRIBUTION_UNKNOWN_USAGE: {\n code: 'E_ATTRIBUTION_UNKNOWN_USAGE',\n http_status: 400,\n title: 'Attribution Unknown Usage',\n description: 'Attribution usage type is not recognized',\n retriable: false,\n category: 'attribution',\n },\n\n // Bundle error codes\n E_BUNDLE_DUPLICATE_RECEIPT: {\n code: 'E_BUNDLE_DUPLICATE_RECEIPT',\n http_status: 400,\n title: 'Bundle Duplicate Receipt',\n description: 'Bundle contains multiple receipts with the same ID',\n retriable: false,\n category: 'bundle',\n },\n E_BUNDLE_HASH_MISMATCH: {\n code: 'E_BUNDLE_HASH_MISMATCH',\n http_status: 400,\n title: 'Bundle Hash Mismatch',\n description: 'File hash does not match value declared in manifest.json',\n retriable: false,\n category: 'bundle',\n },\n E_BUNDLE_INVALID_FORMAT: {\n code: 'E_BUNDLE_INVALID_FORMAT',\n http_status: 400,\n title: 'Bundle Invalid Format',\n description: 'Bundle archive structure is invalid (not a valid ZIP or missing required files)',\n retriable: false,\n category: 'bundle',\n },\n E_BUNDLE_KEY_MISSING: {\n code: 'E_BUNDLE_KEY_MISSING',\n http_status: 400,\n title: 'Bundle Key Missing',\n description: 'Required signing key not found in bundle (offline verification mode)',\n retriable: false,\n category: 'bundle',\n },\n E_BUNDLE_MANIFEST_INVALID: {\n code: 'E_BUNDLE_MANIFEST_INVALID',\n http_status: 400,\n title: 'Bundle Manifest Invalid',\n description: 'manifest.json does not conform to schema or contains invalid values',\n retriable: false,\n category: 'bundle',\n },\n E_BUNDLE_MANIFEST_MISSING: {\n code: 'E_BUNDLE_MANIFEST_MISSING',\n http_status: 400,\n title: 'Bundle Manifest Missing',\n description: 'manifest.json not found at bundle archive root',\n retriable: false,\n category: 'bundle',\n },\n E_BUNDLE_MISSING_KEYS: {\n code: 'E_BUNDLE_MISSING_KEYS',\n http_status: 400,\n title: 'Bundle Missing Keys',\n description: 'No verification keys provided in bundle JWKS',\n retriable: false,\n category: 'bundle',\n },\n E_BUNDLE_MISSING_RECEIPTS: {\n code: 'E_BUNDLE_MISSING_RECEIPTS',\n http_status: 400,\n title: 'Bundle Missing Receipts',\n description: 'No receipts provided when creating bundle',\n retriable: false,\n category: 'bundle',\n },\n E_BUNDLE_PATH_TRAVERSAL: {\n code: 'E_BUNDLE_PATH_TRAVERSAL',\n http_status: 400,\n title: 'Bundle Path Traversal',\n description: 'Bundle contains path traversal attack (zip-slip vulnerability)',\n retriable: false,\n category: 'bundle',\n },\n E_BUNDLE_POLICY_HASH_MISMATCH: {\n code: 'E_BUNDLE_POLICY_HASH_MISMATCH',\n http_status: 400,\n title: 'Bundle Policy Hash Mismatch',\n description: 'Policy snapshot hash does not match policy used to evaluate receipts',\n retriable: false,\n category: 'bundle',\n },\n E_BUNDLE_RECEIPTS_UNORDERED: {\n code: 'E_BUNDLE_RECEIPTS_UNORDERED',\n http_status: 400,\n title: 'Bundle Receipts Unordered',\n description:\n 'receipts.ndjson is not in deterministic order (issued_at, receipt_id, receipt_hash)',\n retriable: false,\n category: 'bundle',\n },\n E_BUNDLE_RECEIPT_INVALID: {\n code: 'E_BUNDLE_RECEIPT_INVALID',\n http_status: 400,\n title: 'Bundle Receipt Invalid',\n description: 'Receipt JWS in bundle is malformed or missing required claims',\n retriable: false,\n category: 'bundle',\n },\n E_BUNDLE_SIGNATURE_INVALID: {\n code: 'E_BUNDLE_SIGNATURE_INVALID',\n http_status: 400,\n title: 'Bundle Signature Invalid',\n description: 'bundle.sig JWS verification failed over manifest hash',\n retriable: false,\n category: 'bundle',\n },\n E_BUNDLE_SIZE_EXCEEDED: {\n code: 'E_BUNDLE_SIZE_EXCEEDED',\n http_status: 400,\n title: 'Bundle Size Exceeded',\n description: 'Bundle exceeds size limits (entry count, entry size, or total size)',\n retriable: false,\n category: 'bundle',\n },\n E_BUNDLE_TIME_RANGE_INVALID: {\n code: 'E_BUNDLE_TIME_RANGE_INVALID',\n http_status: 400,\n title: 'Bundle Time Range Invalid',\n description: 'Receipt issued_at is outside the bundle declared time_range',\n retriable: false,\n category: 'bundle',\n },\n\n // Control error codes\n E_CONTROL_DENIED: {\n code: 'E_CONTROL_DENIED',\n http_status: 403,\n title: 'Control Decision Denied',\n description: 'Control engine denied authorization',\n retriable: false,\n category: 'control',\n },\n E_CONTROL_REVIEW_REQUIRED: {\n code: 'E_CONTROL_REVIEW_REQUIRED',\n http_status: 202,\n title: 'Review Required',\n description: 'Control engine requires manual review',\n retriable: true,\n category: 'control',\n },\n\n // Dispute error codes\n E_DISPUTE_DUPLICATE: {\n code: 'E_DISPUTE_DUPLICATE',\n http_status: 409,\n title: 'Dispute Duplicate',\n description: 'A dispute with this ID already exists',\n retriable: false,\n category: 'dispute',\n },\n E_DISPUTE_EXPIRED: {\n code: 'E_DISPUTE_EXPIRED',\n http_status: 401,\n title: 'Dispute Expired',\n description: 'Dispute attestation has exceeded its expiration time',\n retriable: false,\n category: 'dispute',\n },\n E_DISPUTE_INVALID_FORMAT: {\n code: 'E_DISPUTE_INVALID_FORMAT',\n http_status: 400,\n title: 'Dispute Invalid Format',\n description: 'Dispute attestation does not conform to schema',\n retriable: false,\n category: 'dispute',\n },\n E_DISPUTE_INVALID_GROUNDS: {\n code: 'E_DISPUTE_INVALID_GROUNDS',\n http_status: 400,\n title: 'Dispute Invalid Grounds',\n description: 'Dispute grounds code is not recognized',\n retriable: false,\n category: 'dispute',\n },\n E_DISPUTE_INVALID_ID: {\n code: 'E_DISPUTE_INVALID_ID',\n http_status: 400,\n title: 'Dispute Invalid ID',\n description: 'Dispute ID is not a valid ULID format (26 uppercase alphanumeric characters)',\n retriable: false,\n category: 'dispute',\n },\n E_DISPUTE_INVALID_STATE: {\n code: 'E_DISPUTE_INVALID_STATE',\n http_status: 400,\n title: 'Dispute Invalid State',\n description: 'Dispute state is not recognized',\n retriable: false,\n category: 'dispute',\n },\n E_DISPUTE_INVALID_TARGET_TYPE: {\n code: 'E_DISPUTE_INVALID_TARGET_TYPE',\n http_status: 400,\n title: 'Dispute Invalid Target Type',\n description:\n 'Dispute target type is not recognized (must be receipt, attribution, identity, or policy)',\n retriable: false,\n category: 'dispute',\n },\n E_DISPUTE_INVALID_TRANSITION: {\n code: 'E_DISPUTE_INVALID_TRANSITION',\n http_status: 400,\n title: 'Dispute Invalid Transition',\n description: 'Invalid state transition for dispute lifecycle',\n retriable: false,\n category: 'dispute',\n },\n E_DISPUTE_INVALID_TYPE: {\n code: 'E_DISPUTE_INVALID_TYPE',\n http_status: 400,\n title: 'Dispute Invalid Type',\n description: 'Dispute type is not recognized',\n retriable: false,\n category: 'dispute',\n },\n E_DISPUTE_MISSING_RESOLUTION: {\n code: 'E_DISPUTE_MISSING_RESOLUTION',\n http_status: 400,\n title: 'Dispute Missing Resolution',\n description: 'Resolution is required for terminal states (resolved, rejected, final)',\n retriable: false,\n category: 'dispute',\n },\n E_DISPUTE_NOT_YET_VALID: {\n code: 'E_DISPUTE_NOT_YET_VALID',\n http_status: 401,\n title: 'Dispute Not Yet Valid',\n description: 'Dispute attestation issued_at time is in the future',\n retriable: true,\n category: 'dispute',\n },\n E_DISPUTE_OTHER_REQUIRES_DESCRIPTION: {\n code: 'E_DISPUTE_OTHER_REQUIRES_DESCRIPTION',\n http_status: 400,\n title: 'Dispute Other Requires Description',\n description: \"Dispute type 'other' requires description of at least 50 characters\",\n retriable: false,\n category: 'dispute',\n },\n E_DISPUTE_RESOLUTION_NOT_ALLOWED: {\n code: 'E_DISPUTE_RESOLUTION_NOT_ALLOWED',\n http_status: 400,\n title: 'Dispute Resolution Not Allowed',\n description: 'Resolution is only valid for terminal states',\n retriable: false,\n category: 'dispute',\n },\n E_DISPUTE_TARGET_NOT_FOUND: {\n code: 'E_DISPUTE_TARGET_NOT_FOUND',\n http_status: 404,\n title: 'Dispute Target Not Found',\n description: 'The target receipt, attribution, or identity being disputed was not found',\n retriable: true,\n category: 'dispute',\n },\n\n // Identity error codes\n E_IDENTITY_BINDING_FUTURE: {\n code: 'E_IDENTITY_BINDING_FUTURE',\n http_status: 400,\n title: 'Identity Binding Future',\n description: 'Identity binding signed_at timestamp is in the future',\n retriable: false,\n category: 'identity',\n },\n E_IDENTITY_BINDING_MISMATCH: {\n code: 'E_IDENTITY_BINDING_MISMATCH',\n http_status: 400,\n title: 'Identity Binding Mismatch',\n description: 'Identity binding does not match the request being verified',\n retriable: false,\n category: 'identity',\n },\n E_IDENTITY_BINDING_STALE: {\n code: 'E_IDENTITY_BINDING_STALE',\n http_status: 401,\n title: 'Identity Binding Stale',\n description: 'Identity binding is too old and requires fresh binding',\n retriable: true,\n category: 'identity',\n },\n E_IDENTITY_DIRECTORY_UNAVAILABLE: {\n code: 'E_IDENTITY_DIRECTORY_UNAVAILABLE',\n http_status: 503,\n title: 'Identity Directory Unavailable',\n description: 'Failed to fetch agent key directory',\n retriable: true,\n category: 'identity',\n },\n E_IDENTITY_EXPIRED: {\n code: 'E_IDENTITY_EXPIRED',\n http_status: 401,\n title: 'Identity Expired',\n description: 'Agent identity attestation has exceeded its expiration time',\n retriable: false,\n category: 'identity',\n },\n E_IDENTITY_INVALID_FORMAT: {\n code: 'E_IDENTITY_INVALID_FORMAT',\n http_status: 400,\n title: 'Identity Invalid Format',\n description: 'Agent identity attestation does not conform to schema',\n retriable: false,\n category: 'identity',\n },\n E_IDENTITY_KEY_EXPIRED: {\n code: 'E_IDENTITY_KEY_EXPIRED',\n http_status: 401,\n title: 'Identity Key Expired',\n description: 'Agent signing key has expired per directory metadata',\n retriable: false,\n category: 'identity',\n },\n E_IDENTITY_KEY_REVOKED: {\n code: 'E_IDENTITY_KEY_REVOKED',\n http_status: 401,\n title: 'Identity Key Revoked',\n description: 'Agent signing key has been explicitly revoked',\n retriable: false,\n category: 'identity',\n },\n E_IDENTITY_KEY_UNKNOWN: {\n code: 'E_IDENTITY_KEY_UNKNOWN',\n http_status: 401,\n title: 'Identity Key Unknown',\n description: 'Key ID not found in agent key directory',\n retriable: true,\n category: 'identity',\n },\n E_IDENTITY_MISSING: {\n code: 'E_IDENTITY_MISSING',\n http_status: 401,\n title: 'Identity Missing',\n description: 'No agent identity attestation provided in request',\n retriable: false,\n category: 'identity',\n },\n E_IDENTITY_NOT_YET_VALID: {\n code: 'E_IDENTITY_NOT_YET_VALID',\n http_status: 401,\n title: 'Identity Not Yet Valid',\n description: 'Agent identity attestation issued_at time is in the future',\n retriable: true,\n category: 'identity',\n },\n E_IDENTITY_PROOF_UNSUPPORTED: {\n code: 'E_IDENTITY_PROOF_UNSUPPORTED',\n http_status: 400,\n title: 'Identity Proof Unsupported',\n description: 'Agent identity proof method is not supported',\n retriable: false,\n category: 'identity',\n },\n E_IDENTITY_SIG_INVALID: {\n code: 'E_IDENTITY_SIG_INVALID',\n http_status: 401,\n title: 'Identity Signature Invalid',\n description: 'Agent identity proof signature verification failed',\n retriable: false,\n category: 'identity',\n },\n\n // Infrastructure error codes\n E_CIRCUIT_BREAKER_OPEN: {\n code: 'E_CIRCUIT_BREAKER_OPEN',\n http_status: 503,\n title: 'Circuit Breaker Open',\n description: 'Service temporarily unavailable due to circuit breaker',\n retriable: true,\n category: 'infrastructure',\n },\n E_INTERNAL: {\n code: 'E_INTERNAL',\n http_status: 500,\n title: 'Internal Error',\n description: 'An unexpected internal error occurred during verification',\n retriable: true,\n category: 'infrastructure',\n },\n E_JWKS_FETCH_FAILED: {\n code: 'E_JWKS_FETCH_FAILED',\n http_status: 503,\n title: 'JWKS Fetch Failed',\n description: 'Failed to fetch public keys from JWKS endpoint',\n retriable: true,\n category: 'infrastructure',\n },\n E_RATE_LIMITED: {\n code: 'E_RATE_LIMITED',\n http_status: 429,\n title: 'Rate Limited',\n description: 'Too many requests, please retry later',\n retriable: true,\n category: 'infrastructure',\n },\n\n // Interaction error codes\n E_INTERACTION_INVALID_DIGEST: {\n code: 'E_INTERACTION_INVALID_DIGEST',\n http_status: 400,\n title: 'Interaction Invalid Digest',\n description: 'Digest structure is invalid (wrong value format or missing bytes)',\n retriable: false,\n category: 'interaction',\n },\n E_INTERACTION_INVALID_DIGEST_ALG: {\n code: 'E_INTERACTION_INVALID_DIGEST_ALG',\n http_status: 400,\n title: 'Interaction Invalid Digest Algorithm',\n description:\n 'Digest algorithm is not in the canonical set (sha-256, sha-256:trunc-64k, sha-256:trunc-1m)',\n retriable: false,\n category: 'interaction',\n },\n E_INTERACTION_INVALID_EXTENSION_KEY: {\n code: 'E_INTERACTION_INVALID_EXTENSION_KEY',\n http_status: 400,\n title: 'Interaction Invalid Extension Key',\n description: 'Extension key does not match required format (reverse-DNS/name[@version])',\n retriable: false,\n category: 'interaction',\n },\n E_INTERACTION_INVALID_FORMAT: {\n code: 'E_INTERACTION_INVALID_FORMAT',\n http_status: 400,\n title: 'Interaction Invalid Format',\n description: 'Interaction evidence does not conform to InteractionEvidenceV01 schema',\n retriable: false,\n category: 'interaction',\n },\n E_INTERACTION_INVALID_KIND_FORMAT: {\n code: 'E_INTERACTION_INVALID_KIND_FORMAT',\n http_status: 400,\n title: 'Interaction Invalid Kind Format',\n description:\n 'Interaction kind does not match required format (lowercase, 2-128 chars, starts with letter)',\n retriable: false,\n category: 'interaction',\n },\n E_INTERACTION_INVALID_TIMING: {\n code: 'E_INTERACTION_INVALID_TIMING',\n http_status: 400,\n title: 'Interaction Invalid Timing',\n description:\n 'Timing constraint violated (completed_at < started_at or invalid datetime format)',\n retriable: false,\n category: 'interaction',\n },\n E_INTERACTION_KIND_RESERVED: {\n code: 'E_INTERACTION_KIND_RESERVED',\n http_status: 400,\n title: 'Interaction Kind Reserved',\n description:\n 'Interaction kind uses reserved prefix (peac.*, org.peacprotocol.*) but is not in the well-known registry',\n retriable: false,\n category: 'interaction',\n },\n E_INTERACTION_MISSING_ERROR_DETAIL: {\n code: 'E_INTERACTION_MISSING_ERROR_DETAIL',\n http_status: 400,\n title: 'Interaction Missing Error Detail',\n description: 'error_code or extensions required when result.status is error',\n retriable: false,\n category: 'interaction',\n },\n E_INTERACTION_MISSING_EXECUTOR: {\n code: 'E_INTERACTION_MISSING_EXECUTOR',\n http_status: 400,\n title: 'Interaction Missing Executor',\n description: 'Interaction evidence is missing required executor or executor.platform field',\n retriable: false,\n category: 'interaction',\n },\n E_INTERACTION_MISSING_ID: {\n code: 'E_INTERACTION_MISSING_ID',\n http_status: 400,\n title: 'Interaction Missing ID',\n description: 'Interaction evidence is missing required interaction_id field',\n retriable: false,\n category: 'interaction',\n },\n E_INTERACTION_MISSING_KIND: {\n code: 'E_INTERACTION_MISSING_KIND',\n http_status: 400,\n title: 'Interaction Missing Kind',\n description: 'Interaction evidence is missing required kind field',\n retriable: false,\n category: 'interaction',\n },\n E_INTERACTION_MISSING_RESULT: {\n code: 'E_INTERACTION_MISSING_RESULT',\n http_status: 400,\n title: 'Interaction Missing Result',\n description: 'result.status is required when output is present',\n retriable: false,\n category: 'interaction',\n },\n E_INTERACTION_MISSING_STARTED_AT: {\n code: 'E_INTERACTION_MISSING_STARTED_AT',\n http_status: 400,\n title: 'Interaction Missing Started At',\n description: 'Interaction evidence is missing required started_at field',\n retriable: false,\n category: 'interaction',\n },\n E_INTERACTION_MISSING_TARGET: {\n code: 'E_INTERACTION_MISSING_TARGET',\n http_status: 400,\n title: 'Interaction Missing Target',\n description:\n 'Kind prefix requires matching target field (tool.* needs tool, http.*/fs.* need resource)',\n retriable: false,\n category: 'interaction',\n },\n\n // Ucp error codes\n E_UCP_EVIDENCE_SERIALIZATION_FAILED: {\n code: 'E_UCP_EVIDENCE_SERIALIZATION_FAILED',\n http_status: 500,\n title: 'UCP Evidence Serialization Failed',\n description: 'Failed to serialize UCP evidence to YAML format',\n retriable: false,\n category: 'ucp',\n },\n E_UCP_KEY_ALGORITHM_MISMATCH: {\n code: 'E_UCP_KEY_ALGORITHM_MISMATCH',\n http_status: 401,\n title: 'UCP Key Algorithm Mismatch',\n description: 'Key type is not EC as required for ECDSA signatures',\n retriable: false,\n category: 'ucp',\n },\n E_UCP_KEY_CURVE_MISMATCH: {\n code: 'E_UCP_KEY_CURVE_MISMATCH',\n http_status: 401,\n title: 'UCP Key Curve Mismatch',\n description:\n 'Key curve does not match signature algorithm (ES256=P-256, ES384=P-384, ES512=P-521)',\n retriable: false,\n category: 'ucp',\n },\n E_UCP_KEY_NOT_FOUND: {\n code: 'E_UCP_KEY_NOT_FOUND',\n http_status: 401,\n title: 'UCP Key Not Found',\n description: 'Key ID from signature not found in business UCP profile',\n retriable: true,\n category: 'ucp',\n },\n E_UCP_ORDER_INVALID: {\n code: 'E_UCP_ORDER_INVALID',\n http_status: 400,\n title: 'UCP Order Invalid',\n description: 'UCP order object does not conform to expected schema',\n retriable: false,\n category: 'ucp',\n },\n E_UCP_ORDER_MISSING_ID: {\n code: 'E_UCP_ORDER_MISSING_ID',\n http_status: 400,\n title: 'UCP Order Missing ID',\n description: 'UCP order is missing required id field',\n retriable: false,\n category: 'ucp',\n },\n E_UCP_ORDER_MISSING_LINE_ITEMS: {\n code: 'E_UCP_ORDER_MISSING_LINE_ITEMS',\n http_status: 400,\n title: 'UCP Order Missing Line Items',\n description: 'UCP order is missing required line_items array',\n retriable: false,\n category: 'ucp',\n },\n E_UCP_ORDER_MISSING_TOTALS: {\n code: 'E_UCP_ORDER_MISSING_TOTALS',\n http_status: 400,\n title: 'UCP Order Missing Totals',\n description: 'UCP order is missing required totals array or total entry',\n retriable: false,\n category: 'ucp',\n },\n E_UCP_PAYLOAD_EMPTY: {\n code: 'E_UCP_PAYLOAD_EMPTY',\n http_status: 400,\n title: 'UCP Payload Empty',\n description: 'Webhook request body is empty',\n retriable: false,\n category: 'ucp',\n },\n E_UCP_PAYLOAD_NOT_JSON: {\n code: 'E_UCP_PAYLOAD_NOT_JSON',\n http_status: 400,\n title: 'UCP Payload Not JSON',\n description: 'Webhook request body is not valid JSON',\n retriable: false,\n category: 'ucp',\n },\n E_UCP_PAYLOAD_TOO_LARGE: {\n code: 'E_UCP_PAYLOAD_TOO_LARGE',\n http_status: 400,\n title: 'UCP Payload Too Large',\n description: 'Webhook request body exceeds maximum allowed size',\n retriable: false,\n category: 'ucp',\n },\n E_UCP_PROFILE_FETCH_FAILED: {\n code: 'E_UCP_PROFILE_FETCH_FAILED',\n http_status: 502,\n title: 'UCP Profile Fetch Failed',\n description: 'Failed to fetch business UCP profile from /.well-known/ucp',\n retriable: true,\n category: 'ucp',\n },\n E_UCP_PROFILE_INVALID: {\n code: 'E_UCP_PROFILE_INVALID',\n http_status: 502,\n title: 'UCP Profile Invalid',\n description: 'Business UCP profile does not conform to expected schema',\n retriable: false,\n category: 'ucp',\n },\n E_UCP_PROFILE_NO_SIGNING_KEYS: {\n code: 'E_UCP_PROFILE_NO_SIGNING_KEYS',\n http_status: 502,\n title: 'UCP Profile No Signing Keys',\n description: 'Business UCP profile has empty or missing signing_keys array',\n retriable: false,\n category: 'ucp',\n },\n E_UCP_SIGNATURE_ALGORITHM_UNSUPPORTED: {\n code: 'E_UCP_SIGNATURE_ALGORITHM_UNSUPPORTED',\n http_status: 400,\n title: 'UCP Signature Algorithm Unsupported',\n description: 'Signature algorithm is not ES256, ES384, or ES512',\n retriable: false,\n category: 'ucp',\n },\n E_UCP_SIGNATURE_B64_INVALID: {\n code: 'E_UCP_SIGNATURE_B64_INVALID',\n http_status: 400,\n title: 'UCP Signature b64 Invalid',\n description: \"b64=false requires 'b64' in 'crit' array per RFC 7797\",\n retriable: false,\n category: 'ucp',\n },\n E_UCP_SIGNATURE_INVALID: {\n code: 'E_UCP_SIGNATURE_INVALID',\n http_status: 401,\n title: 'UCP Signature Invalid',\n description: 'Webhook signature verification failed against payload',\n retriable: false,\n category: 'ucp',\n },\n E_UCP_SIGNATURE_MALFORMED: {\n code: 'E_UCP_SIGNATURE_MALFORMED',\n http_status: 400,\n title: 'UCP Signature Malformed',\n description: 'Request-Signature header is not a valid detached JWS (RFC 7797)',\n retriable: false,\n category: 'ucp',\n },\n E_UCP_SIGNATURE_MISSING: {\n code: 'E_UCP_SIGNATURE_MISSING',\n http_status: 400,\n title: 'UCP Signature Missing',\n description: 'Request-Signature header is missing from UCP webhook request',\n retriable: false,\n category: 'ucp',\n },\n E_UCP_VERIFICATION_FAILED: {\n code: 'E_UCP_VERIFICATION_FAILED',\n http_status: 401,\n title: 'UCP Verification Failed',\n description: 'All verification attempts failed (raw and JCS canonicalized)',\n retriable: false,\n category: 'ucp',\n },\n\n // Validation error codes\n E_CONSTRAINT_VIOLATION: {\n code: 'E_CONSTRAINT_VIOLATION',\n http_status: 400,\n title: 'Kernel Constraint Violation',\n description:\n 'Receipt claims exceed a kernel constraint (max keys, max depth, max string length, max evidence bytes, or similar structural limit)',\n retriable: false,\n category: 'validation',\n },\n E_EVIDENCE_NOT_JSON: {\n code: 'E_EVIDENCE_NOT_JSON',\n http_status: 400,\n title: 'Evidence Not JSON-Safe',\n description:\n 'Evidence contains non-JSON-safe values (NaN, Infinity, undefined, BigInt, Date, Map, Set, functions, symbols, class instances, or cycles)',\n retriable: false,\n category: 'validation',\n },\n E_EXPIRED: {\n code: 'E_EXPIRED',\n http_status: 400,\n title: 'Receipt Expired',\n description: 'Receipt has exceeded its expiration time',\n retriable: false,\n category: 'validation',\n },\n E_INVALID_AMOUNT: {\n code: 'E_INVALID_AMOUNT',\n http_status: 400,\n title: 'Invalid Amount',\n description: 'Payment amount is invalid or out of allowed range',\n retriable: false,\n category: 'validation',\n },\n E_INVALID_AUDIENCE: {\n code: 'E_INVALID_AUDIENCE',\n http_status: 400,\n title: 'Invalid Audience',\n description: 'Receipt audience claim does not match expected value',\n retriable: false,\n category: 'validation',\n },\n E_INVALID_CURRENCY: {\n code: 'E_INVALID_CURRENCY',\n http_status: 400,\n title: 'Invalid Currency',\n description: 'Currency code is not a valid ISO 4217 code',\n retriable: false,\n category: 'validation',\n },\n E_INVALID_FORMAT: {\n code: 'E_INVALID_FORMAT',\n http_status: 400,\n title: 'Invalid Format',\n description: 'Receipt does not conform to JWS format',\n retriable: false,\n category: 'validation',\n },\n E_INVALID_ISSUER: {\n code: 'E_INVALID_ISSUER',\n http_status: 400,\n title: 'Invalid Issuer',\n description: 'Receipt issuer claim is invalid or untrusted',\n retriable: false,\n category: 'validation',\n },\n E_INVALID_RAIL: {\n code: 'E_INVALID_RAIL',\n http_status: 400,\n title: 'Invalid Payment Rail',\n description: 'Payment rail identifier is not recognized',\n retriable: false,\n category: 'validation',\n },\n E_INVALID_RECEIPT_ID: {\n code: 'E_INVALID_RECEIPT_ID',\n http_status: 400,\n title: 'Invalid Receipt ID',\n description: 'Receipt ID (rid) does not match expected value',\n retriable: false,\n category: 'validation',\n },\n E_INVALID_SUBJECT: {\n code: 'E_INVALID_SUBJECT',\n http_status: 400,\n title: 'Invalid Subject',\n description: 'Receipt subject claim does not match expected value',\n retriable: false,\n category: 'validation',\n },\n E_MISSING_EXP: {\n code: 'E_MISSING_EXP',\n http_status: 400,\n title: 'Missing Expiration',\n description: 'Receipt is missing required exp claim',\n retriable: false,\n category: 'validation',\n },\n E_MISSING_REQUIRED_CLAIM: {\n code: 'E_MISSING_REQUIRED_CLAIM',\n http_status: 400,\n title: 'Missing Required Claim',\n description: 'Receipt is missing a required JWT claim',\n retriable: false,\n category: 'validation',\n },\n E_NOT_YET_VALID: {\n code: 'E_NOT_YET_VALID',\n http_status: 400,\n title: 'Not Yet Valid',\n description: 'Receipt nbf (not before) time is in the future',\n retriable: true,\n category: 'validation',\n },\n E_PARSE_ATTESTATION_INVALID: {\n code: 'E_PARSE_ATTESTATION_INVALID',\n http_status: 400,\n title: 'Attestation Receipt Invalid',\n description: 'Receipt classified as attestation but fails attestation schema validation',\n retriable: false,\n category: 'validation',\n },\n E_PARSE_COMMERCE_INVALID: {\n code: 'E_PARSE_COMMERCE_INVALID',\n http_status: 400,\n title: 'Commerce Receipt Invalid',\n description:\n 'Receipt has commerce fields (amt/cur/payment) but fails commerce schema validation',\n retriable: false,\n category: 'validation',\n },\n E_PARSE_INVALID_INPUT: {\n code: 'E_PARSE_INVALID_INPUT',\n http_status: 400,\n title: 'Parse Invalid Input',\n description: 'Input to receipt parser is not a non-null object',\n retriable: false,\n category: 'validation',\n },\n\n // Verification error codes\n E_INVALID_SIGNATURE: {\n code: 'E_INVALID_SIGNATURE',\n http_status: 400,\n title: 'Invalid Signature',\n description: 'Receipt signature verification failed',\n retriable: false,\n category: 'verification',\n },\n E_KEY_NOT_FOUND: {\n code: 'E_KEY_NOT_FOUND',\n http_status: 400,\n title: 'Key Not Found',\n description: 'Public key with specified kid not found in JWKS',\n retriable: false,\n category: 'verification',\n },\n\n // Verifier error codes\n E_VERIFY_EXTENSION_TOO_LARGE: {\n code: 'E_VERIFY_EXTENSION_TOO_LARGE',\n http_status: 400,\n title: 'Extension Too Large',\n description: 'Receipt extension data exceeds maximum size limit (64 KB)',\n retriable: false,\n category: 'verifier',\n },\n E_VERIFY_INSECURE_SCHEME_BLOCKED: {\n code: 'E_VERIFY_INSECURE_SCHEME_BLOCKED',\n http_status: 403,\n title: 'Insecure Scheme Blocked',\n description: 'Non-HTTPS URL encountered during issuer discovery (issuer URL or jwks_uri)',\n retriable: false,\n category: 'verifier',\n },\n E_VERIFY_INVALID_TRANSPORT: {\n code: 'E_VERIFY_INVALID_TRANSPORT',\n http_status: 400,\n title: 'Invalid Transport',\n description:\n 'Multiple PEAC-Receipt or PEAC-Receipt-Pointer headers detected (ambiguous transport)',\n retriable: false,\n category: 'verifier',\n },\n E_VERIFY_ISSUER_CONFIG_INVALID: {\n code: 'E_VERIFY_ISSUER_CONFIG_INVALID',\n http_status: 502,\n title: 'Issuer Config Invalid',\n description: 'peac-issuer.json is not valid JSON or does not conform to issuer config schema',\n retriable: false,\n category: 'verifier',\n },\n E_VERIFY_ISSUER_CONFIG_MISSING: {\n code: 'E_VERIFY_ISSUER_CONFIG_MISSING',\n http_status: 502,\n title: 'Issuer Config Missing',\n description: 'peac-issuer.json not found or not fetchable at issuer origin',\n retriable: true,\n category: 'verifier',\n },\n E_VERIFY_ISSUER_MISMATCH: {\n code: 'E_VERIFY_ISSUER_MISMATCH',\n http_status: 403,\n title: 'Issuer Mismatch',\n description: 'issuer field in peac-issuer.json does not match the expected issuer origin',\n retriable: false,\n category: 'verifier',\n },\n E_VERIFY_ISSUER_NOT_ALLOWED: {\n code: 'E_VERIFY_ISSUER_NOT_ALLOWED',\n http_status: 403,\n title: 'Issuer Not Allowed',\n description: 'Receipt issuer is not in the verifier policy allowlist',\n retriable: false,\n category: 'verifier',\n },\n E_VERIFY_JWKS_INVALID: {\n code: 'E_VERIFY_JWKS_INVALID',\n http_status: 502,\n title: 'JWKS Invalid',\n description: 'JWKS response is not valid JSON or missing required keys array',\n retriable: false,\n category: 'verifier',\n },\n E_VERIFY_JWKS_TOO_LARGE: {\n code: 'E_VERIFY_JWKS_TOO_LARGE',\n http_status: 400,\n title: 'JWKS Too Large',\n description: 'JWKS response exceeds maximum size limit (64 KB)',\n retriable: false,\n category: 'verifier',\n },\n E_VERIFY_JWKS_TOO_MANY_KEYS: {\n code: 'E_VERIFY_JWKS_TOO_MANY_KEYS',\n http_status: 400,\n title: 'JWKS Too Many Keys',\n description: 'JWKS contains more than maximum allowed keys (20)',\n retriable: false,\n category: 'verifier',\n },\n E_VERIFY_JWKS_URI_INVALID: {\n code: 'E_VERIFY_JWKS_URI_INVALID',\n http_status: 502,\n title: 'JWKS URI Invalid',\n description: 'jwks_uri in peac-issuer.json is not a valid HTTPS URL',\n retriable: false,\n category: 'verifier',\n },\n E_VERIFY_KEY_FETCH_BLOCKED: {\n code: 'E_VERIFY_KEY_FETCH_BLOCKED',\n http_status: 403,\n title: 'Key Fetch Blocked',\n description:\n 'JWKS discovery blocked by SSRF protection (private IP, non-HTTPS, or blocked redirect)',\n retriable: false,\n category: 'verifier',\n },\n E_VERIFY_KEY_FETCH_FAILED: {\n code: 'E_VERIFY_KEY_FETCH_FAILED',\n http_status: 502,\n title: 'Key Fetch Failed',\n description: 'Network error while fetching JWKS from issuer',\n retriable: true,\n category: 'verifier',\n },\n E_VERIFY_KEY_FETCH_TIMEOUT: {\n code: 'E_VERIFY_KEY_FETCH_TIMEOUT',\n http_status: 504,\n title: 'Key Fetch Timeout',\n description: 'JWKS discovery timed out (5 second limit)',\n retriable: true,\n category: 'verifier',\n },\n E_VERIFY_MALFORMED_RECEIPT: {\n code: 'E_VERIFY_MALFORMED_RECEIPT',\n http_status: 400,\n title: 'Malformed Receipt',\n description: 'Cannot parse receipt as JWS Compact Serialization',\n retriable: false,\n category: 'verifier',\n },\n E_VERIFY_POINTER_DIGEST_MISMATCH: {\n code: 'E_VERIFY_POINTER_DIGEST_MISMATCH',\n http_status: 400,\n title: 'Pointer Digest Mismatch',\n description: 'Fetched receipt SHA-256 digest does not match pointer declaration',\n retriable: false,\n category: 'verifier',\n },\n E_VERIFY_POINTER_FETCH_BLOCKED: {\n code: 'E_VERIFY_POINTER_FETCH_BLOCKED',\n http_status: 403,\n title: 'Pointer Fetch Blocked',\n description:\n 'Pointer URL fetch blocked by SSRF protection (private IP, non-HTTPS, or blocked redirect)',\n retriable: false,\n category: 'verifier',\n },\n E_VERIFY_POINTER_FETCH_FAILED: {\n code: 'E_VERIFY_POINTER_FETCH_FAILED',\n http_status: 502,\n title: 'Pointer Fetch Failed',\n description: 'Network error while fetching receipt from pointer URL',\n retriable: true,\n category: 'verifier',\n },\n E_VERIFY_POINTER_FETCH_TIMEOUT: {\n code: 'E_VERIFY_POINTER_FETCH_TIMEOUT',\n http_status: 504,\n title: 'Pointer Fetch Timeout',\n description: 'Pointer URL fetch timed out (5 second limit)',\n retriable: true,\n category: 'verifier',\n },\n E_VERIFY_POINTER_FETCH_TOO_LARGE: {\n code: 'E_VERIFY_POINTER_FETCH_TOO_LARGE',\n http_status: 413,\n title: 'Pointer Fetch Too Large',\n description: 'Pointer URL response exceeds maximum size limit (256 KB)',\n retriable: false,\n category: 'verifier',\n },\n E_VERIFY_POLICY_VIOLATION: {\n code: 'E_VERIFY_POLICY_VIOLATION',\n http_status: 403,\n title: 'Policy Violation',\n description: 'Receipt violates verifier trust policy',\n retriable: false,\n category: 'verifier',\n },\n E_VERIFY_RECEIPT_TOO_LARGE: {\n code: 'E_VERIFY_RECEIPT_TOO_LARGE',\n http_status: 413,\n title: 'Receipt Too Large',\n description: 'Receipt exceeds maximum size limit (256 KB)',\n retriable: false,\n category: 'verifier',\n },\n E_VERIFY_SCHEMA_INVALID: {\n code: 'E_VERIFY_SCHEMA_INVALID',\n http_status: 400,\n title: 'Schema Invalid',\n description: 'Receipt claims do not conform to expected schema',\n retriable: false,\n category: 'verifier',\n },\n\n // Workflow error codes\n E_WORKFLOW_CONTEXT_INVALID: {\n code: 'E_WORKFLOW_CONTEXT_INVALID',\n http_status: 400,\n title: 'Invalid Workflow Context',\n description: 'Workflow context does not conform to WorkflowContextSchema',\n retriable: false,\n category: 'workflow',\n },\n E_WORKFLOW_CYCLE_DETECTED: {\n code: 'E_WORKFLOW_CYCLE_DETECTED',\n http_status: 400,\n title: 'Workflow Cycle Detected',\n description: 'Workflow DAG contains a cycle (not acyclic)',\n retriable: false,\n category: 'workflow',\n },\n E_WORKFLOW_DAG_INVALID: {\n code: 'E_WORKFLOW_DAG_INVALID',\n http_status: 400,\n title: 'Invalid Workflow DAG',\n description:\n 'Workflow DAG semantics violated (self-parent, duplicate parents, or cycle detected)',\n retriable: false,\n category: 'workflow',\n },\n E_WORKFLOW_ID_INVALID: {\n code: 'E_WORKFLOW_ID_INVALID',\n http_status: 400,\n title: 'Invalid Workflow ID',\n description: 'Workflow ID does not match required format (wf_{ulid|uuid})',\n retriable: false,\n category: 'workflow',\n },\n E_WORKFLOW_LIMIT_EXCEEDED: {\n code: 'E_WORKFLOW_LIMIT_EXCEEDED',\n http_status: 400,\n title: 'Workflow Limit Exceeded',\n description: 'Workflow exceeds defined limits (parent count, ID length, etc.)',\n retriable: false,\n category: 'workflow',\n },\n E_WORKFLOW_PARENT_NOT_FOUND: {\n code: 'E_WORKFLOW_PARENT_NOT_FOUND',\n http_status: 400,\n title: 'Parent Step Not Found',\n description: 'Referenced parent step ID does not exist in the workflow',\n retriable: false,\n category: 'workflow',\n },\n E_WORKFLOW_STEP_ID_INVALID: {\n code: 'E_WORKFLOW_STEP_ID_INVALID',\n http_status: 400,\n title: 'Invalid Step ID',\n description: 'Step ID does not match required format (step_{ulid|uuid})',\n retriable: false,\n category: 'workflow',\n },\n E_WORKFLOW_SUMMARY_INVALID: {\n code: 'E_WORKFLOW_SUMMARY_INVALID',\n http_status: 400,\n title: 'Invalid Workflow Summary',\n description: 'Workflow summary attestation does not conform to schema',\n retriable: false,\n category: 'workflow',\n },\n};\n\n/**\n * Get error definition by code\n */\nexport function getError(code: string): ErrorDefinition | undefined {\n return ERRORS[code];\n}\n\n/**\n * Check if error is retriable\n */\nexport function isRetriable(code: string): boolean {\n return ERRORS[code]?.retriable ?? false;\n}\n\n/**\n * Bundle error codes (for @peac/audit)\n */\nexport const BUNDLE_ERRORS = {\n DUPLICATE_RECEIPT: 'E_BUNDLE_DUPLICATE_RECEIPT',\n HASH_MISMATCH: 'E_BUNDLE_HASH_MISMATCH',\n INVALID_FORMAT: 'E_BUNDLE_INVALID_FORMAT',\n KEY_MISSING: 'E_BUNDLE_KEY_MISSING',\n MANIFEST_INVALID: 'E_BUNDLE_MANIFEST_INVALID',\n MANIFEST_MISSING: 'E_BUNDLE_MANIFEST_MISSING',\n MISSING_KEYS: 'E_BUNDLE_MISSING_KEYS',\n MISSING_RECEIPTS: 'E_BUNDLE_MISSING_RECEIPTS',\n PATH_TRAVERSAL: 'E_BUNDLE_PATH_TRAVERSAL',\n POLICY_HASH_MISMATCH: 'E_BUNDLE_POLICY_HASH_MISMATCH',\n RECEIPTS_UNORDERED: 'E_BUNDLE_RECEIPTS_UNORDERED',\n RECEIPT_INVALID: 'E_BUNDLE_RECEIPT_INVALID',\n SIGNATURE_INVALID: 'E_BUNDLE_SIGNATURE_INVALID',\n SIZE_EXCEEDED: 'E_BUNDLE_SIZE_EXCEEDED',\n TIME_RANGE_INVALID: 'E_BUNDLE_TIME_RANGE_INVALID',\n} as const;\n\n/**\n * Dispute error codes\n */\nexport const DISPUTE_ERRORS = {\n DUPLICATE: 'E_DISPUTE_DUPLICATE',\n EXPIRED: 'E_DISPUTE_EXPIRED',\n INVALID_FORMAT: 'E_DISPUTE_INVALID_FORMAT',\n INVALID_GROUNDS: 'E_DISPUTE_INVALID_GROUNDS',\n INVALID_ID: 'E_DISPUTE_INVALID_ID',\n INVALID_STATE: 'E_DISPUTE_INVALID_STATE',\n INVALID_TARGET_TYPE: 'E_DISPUTE_INVALID_TARGET_TYPE',\n INVALID_TRANSITION: 'E_DISPUTE_INVALID_TRANSITION',\n INVALID_TYPE: 'E_DISPUTE_INVALID_TYPE',\n MISSING_RESOLUTION: 'E_DISPUTE_MISSING_RESOLUTION',\n NOT_YET_VALID: 'E_DISPUTE_NOT_YET_VALID',\n OTHER_REQUIRES_DESCRIPTION: 'E_DISPUTE_OTHER_REQUIRES_DESCRIPTION',\n RESOLUTION_NOT_ALLOWED: 'E_DISPUTE_RESOLUTION_NOT_ALLOWED',\n TARGET_NOT_FOUND: 'E_DISPUTE_TARGET_NOT_FOUND',\n} as const;\n","/**\n * PEAC Protocol Registries\n * Derived from specs/kernel/registries.json\n *\n * NOTE: This file is manually synced for v0.9.15.\n * From v0.9.16+, this will be auto-generated via codegen.\n */\n\nimport type {\n PaymentRailEntry,\n ControlEngineEntry,\n TransportMethodEntry,\n AgentProtocolEntry,\n} from './types.js';\n\n/**\n * Payment Rails Registry\n * Settlement layer identifiers\n */\nexport const PAYMENT_RAILS: readonly PaymentRailEntry[] = [\n {\n id: 'x402',\n category: 'agentic-payment',\n description: 'HTTP 402-based paid call receipts',\n reference: 'https://www.x402.org/',\n status: 'informational',\n },\n {\n id: 'l402',\n category: 'agentic-payment',\n description: 'Lightning HTTP 402 Protocol (LSAT-based)',\n reference: 'https://docs.lightning.engineering/the-lightning-network/l402',\n status: 'informational',\n },\n {\n id: 'card-network',\n category: 'card',\n description: 'Generic card network authorizations/clearing',\n reference: null,\n status: 'informational',\n },\n {\n id: 'upi',\n category: 'account-to-account',\n description: 'Unified Payments Interface',\n reference: 'https://www.npci.org.in/',\n status: 'informational',\n },\n] as const;\n\n/**\n * Control Engines Registry\n * Governance and authorization engine identifiers\n */\nexport const CONTROL_ENGINES: readonly ControlEngineEntry[] = [\n {\n id: 'spend-control-service',\n category: 'limits',\n description: 'Generic spend control decisions (per-tx, daily, monthly limits)',\n reference: null,\n status: 'informational',\n },\n {\n id: 'risk-engine',\n category: 'fraud',\n description: 'Generic risk/fraud scoring engine',\n reference: null,\n status: 'informational',\n },\n {\n id: 'mandate-service',\n category: 'mandate',\n description: 'Generic enterprise mandate/approval chain evaluator',\n reference: null,\n status: 'informational',\n },\n] as const;\n\n/**\n * Transport Methods Registry\n * Transport-layer binding identifiers\n */\nexport const TRANSPORT_METHODS: readonly TransportMethodEntry[] = [\n {\n id: 'dpop',\n category: 'proof-of-possession',\n description: 'Demonstrating Proof-of-Possession at the Application Layer',\n reference: 'https://www.rfc-editor.org/rfc/rfc9449',\n status: 'informational',\n },\n {\n id: 'http-signature',\n category: 'message-signature',\n description: 'HTTP Message Signatures',\n reference: 'https://www.rfc-editor.org/rfc/rfc9421',\n status: 'informational',\n },\n {\n id: 'none',\n category: 'none',\n description: 'No transport binding',\n reference: null,\n status: 'informational',\n },\n] as const;\n\n/**\n * Agent Protocols Registry\n * Agentic protocol integration identifiers\n */\nexport const AGENT_PROTOCOLS: readonly AgentProtocolEntry[] = [\n {\n id: 'mcp',\n category: 'tool-protocol',\n description: 'Model Context Protocol (MCP)',\n reference: 'https://modelcontextprotocol.io/',\n status: 'informational',\n },\n {\n id: 'acp',\n category: 'commerce-protocol',\n description: 'Agentic Commerce Protocol',\n reference: null,\n status: 'informational',\n },\n {\n id: 'ap2',\n category: 'agent-protocol',\n description: 'Google Agent Protocol v2',\n reference: null,\n status: 'informational',\n },\n {\n id: 'tap',\n category: 'card-protocol',\n description: 'Trusted Agent Protocol (Visa TAP)',\n reference: 'https://developer.visa.com/',\n status: 'informational',\n },\n] as const;\n\n/**\n * All registries export\n */\nexport const REGISTRIES = {\n payment_rails: PAYMENT_RAILS,\n control_engines: CONTROL_ENGINES,\n transport_methods: TRANSPORT_METHODS,\n agent_protocols: AGENT_PROTOCOLS,\n} as const;\n\n/**\n * Find payment rail by ID\n */\nexport function findPaymentRail(id: string): PaymentRailEntry | undefined {\n return PAYMENT_RAILS.find((rail) => rail.id === id);\n}\n\n/**\n * Find control engine by ID\n */\nexport function findControlEngine(id: string): ControlEngineEntry | undefined {\n return CONTROL_ENGINES.find((engine) => engine.id === id);\n}\n\n/**\n * Find transport method by ID\n */\nexport function findTransportMethod(id: string): TransportMethodEntry | undefined {\n return TRANSPORT_METHODS.find((method) => method.id === id);\n}\n\n/**\n * Find agent protocol by ID\n */\nexport function findAgentProtocol(id: string): AgentProtocolEntry | undefined {\n return AGENT_PROTOCOLS.find((protocol) => protocol.id === id);\n}\n","/**\n * HTTP Utilities for PEAC Protocol\n *\n * Cache safety and header management helpers for adapters and middleware.\n */\n\nimport { HEADERS } from './constants.js';\n\n/**\n * Headers that affect response behavior and MUST be included in Vary\n * when enforcement decisions depend on them.\n */\nexport const VARY_HEADERS = [HEADERS.purpose, HEADERS.receipt] as const;\n\n/**\n * Apply Vary header for purpose-aware caching.\n *\n * MUST be called when response behavior varies based on PEAC-Purpose header.\n * Prevents cache poisoning when different purposes get different responses.\n *\n * @example\n * ```ts\n * // In Cloudflare Worker\n * const response = new Response(body, { headers });\n * applyPurposeVary(response.headers);\n *\n * // In Express/Node\n * applyPurposeVary(res);\n * ```\n */\nexport function applyPurposeVary(\n headers:\n | Headers\n | { setHeader: (name: string, value: string) => void }\n | { set: (name: string, value: string) => void }\n): void {\n const purposeHeader = HEADERS.purpose;\n\n if ('append' in headers && typeof headers.append === 'function') {\n // Web API Headers (Cloudflare, Deno, etc.)\n const existing = headers.get('Vary') || '';\n if (!existing.toLowerCase().includes(purposeHeader.toLowerCase())) {\n headers.append('Vary', purposeHeader);\n }\n } else if ('setHeader' in headers && typeof headers.setHeader === 'function') {\n // Node.js ServerResponse\n const existing = (\n headers as { getHeader?: (name: string) => string | string[] | number | undefined }\n ).getHeader?.('Vary');\n const existingStr = Array.isArray(existing) ? existing.join(', ') : String(existing || '');\n if (!existingStr.toLowerCase().includes(purposeHeader.toLowerCase())) {\n headers.setHeader('Vary', existingStr ? `${existingStr}, ${purposeHeader}` : purposeHeader);\n }\n } else if ('set' in headers && typeof headers.set === 'function') {\n // Map-like headers (Hono, etc.)\n headers.set('Vary', purposeHeader);\n }\n}\n\n/**\n * Get all PEAC-related headers that should be included in Vary\n * for complete cache safety.\n *\n * @returns Comma-separated list of headers for Vary\n */\nexport function getPeacVaryHeaders(): string {\n return VARY_HEADERS.join(', ');\n}\n\n/**\n * Check if a response needs Vary header based on purpose enforcement.\n *\n * @param purposeEnforced - Whether purpose was enforced for this response\n * @returns true if Vary: PEAC-Purpose should be set\n */\nexport function needsPurposeVary(purposeEnforced: boolean): boolean {\n return purposeEnforced;\n}\n","/**\n * Evidence Carrier Contract types (DD-124)\n *\n * Pure TypeScript types for the universal evidence carry interface.\n * Zero runtime dependencies: this module exports only types.\n *\n * The Evidence Carrier Contract defines how any protocol (MCP, A2A, ACP,\n * UCP, x402, HTTP) carries PEAC receipts without kernel changes.\n */\n\n// ---------------------------------------------------------------------------\n// Constants\n// ---------------------------------------------------------------------------\n\n/**\n * Canonical HTTP header name for PEAC receipts (DD-127).\n *\n * The wire token is exactly \"PEAC-Receipt\" (mixed-case, hyphenated).\n * This is the only valid spelling in conformance fixtures and attach() output.\n * HTTP header lookups SHOULD be case-insensitive per RFC 9110, but conformance\n * fixtures and attach() output MUST use this exact spelling.\n */\nexport const PEAC_RECEIPT_HEADER = 'PEAC-Receipt' as const;\n\n// ---------------------------------------------------------------------------\n// Primitives\n// ---------------------------------------------------------------------------\n\n/** Content-addressed receipt reference: SHA-256 of the compact JWS bytes */\nexport type ReceiptRef = `sha256:${string}`;\n\n/** Carrier format: embed (inline) or reference (URL/pointer) */\nexport type CarrierFormat = 'embed' | 'reference';\n\n// ---------------------------------------------------------------------------\n// Core carrier type\n// ---------------------------------------------------------------------------\n\n/**\n * Universal evidence carrier.\n *\n * Every protocol-specific adapter produces and consumes this shape.\n * Fields marked optional are SHOULD or MAY per the carrier contract spec.\n */\nexport interface PeacEvidenceCarrier {\n /** Content-addressed receipt reference (MUST): sha256:<hex64> */\n receipt_ref: ReceiptRef;\n /** Compact JWS of the signed receipt (SHOULD for embed format) */\n receipt_jws?: string;\n /** Policy binding hash for verification (MAY) */\n policy_binding?: string;\n /** Actor binding identifier (MAY) */\n actor_binding?: string;\n /** Request nonce for replay protection (MAY) */\n request_nonce?: string;\n /** Reference to a verification report (MAY) */\n verification_report_ref?: string;\n /** Reference to a use policy (MAY) */\n use_policy_ref?: string;\n /** Reference to a representation (MAY) */\n representation_ref?: string;\n /** Reference to an attestation (MAY) */\n attestation_ref?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Carrier metadata\n// ---------------------------------------------------------------------------\n\n/**\n * Transport-level metadata describing how a carrier is placed.\n *\n * Used by validateConstraints() to enforce transport-specific size limits\n * and format requirements (DD-127).\n */\nexport interface CarrierMeta {\n /** Transport identifier (e.g. 'mcp', 'a2a', 'acp', 'ucp', 'x402', 'http') */\n transport: string;\n /** Carrier format: embed or reference */\n format: CarrierFormat;\n /** Maximum carrier size in bytes for this transport */\n max_size: number;\n /** Fields that have been redacted (MAY) */\n redaction?: string[];\n}\n\n// ---------------------------------------------------------------------------\n// Validation result\n// ---------------------------------------------------------------------------\n\n/** Result of carrier constraint validation */\nexport interface CarrierValidationResult {\n valid: boolean;\n violations: string[];\n}\n\n// ---------------------------------------------------------------------------\n// Adapter interface\n// ---------------------------------------------------------------------------\n\n/**\n * Protocol-specific carrier adapter (DD-124).\n *\n * Each protocol mapping implements this interface to attach/extract\n * PEAC evidence carriers in the protocol's native format.\n *\n * @typeParam TInput - The protocol-specific input type (e.g. A2A TaskStatus)\n * @typeParam TOutput - The protocol-specific output type\n */\nexport interface CarrierAdapter<TInput, TOutput> {\n /**\n * Extract PEAC evidence carriers from a protocol message.\n * Returns null if no carrier is present.\n */\n extract(input: TInput): { receipts: PeacEvidenceCarrier[]; meta: CarrierMeta } | null;\n\n /**\n * Attach PEAC evidence carriers to a protocol message.\n * Returns the modified output with carriers placed per protocol conventions.\n */\n attach(output: TOutput, carriers: PeacEvidenceCarrier[], meta?: CarrierMeta): TOutput;\n\n /**\n * Validate a carrier against transport-specific constraints (DD-127, DD-129).\n * Takes CarrierMeta for transport-aware size and format validation.\n */\n validateConstraints(carrier: PeacEvidenceCarrier, meta: CarrierMeta): CarrierValidationResult;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/error-categories.generated.ts","../src/constants.ts","../src/errors.generated.ts","../src/registries.ts","../src/http.ts","../src/carrier.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["/**\n * PEAC Protocol Error Categories\n *\n * AUTO-GENERATED from specs/kernel/errors.json\n * DO NOT EDIT MANUALLY - run: npx tsx scripts/codegen-errors.ts\n * Spec version: 0.11.2\n */\n\n/**\n * Canonical error categories derived from specs/kernel/errors.json.\n * This is the single source of truth for all error category definitions.\n * Sorted alphabetically. This ordering is a codegen invariant.\n */\nexport const ERROR_CATEGORIES = [\n 'attribution',\n 'bundle',\n 'control',\n 'dispute',\n 'identity',\n 'infrastructure',\n 'interaction',\n 'ucp',\n 'validation',\n 'verification',\n 'verifier',\n 'workflow',\n] as const;\n\n/**\n * Error category type - union of all categories in specs/kernel/errors.json\n */\nexport type ErrorCategory = (typeof ERROR_CATEGORIES)[number];\n","/**\n * PEAC Protocol Constants\n * Derived from specs/kernel/constants.json\n *\n * NOTE: This file is manually synced for v0.9.15.\n * From v0.9.16+, this will be auto-generated via codegen.\n */\n\n/**\n * Wire format type for PEAC receipts\n * Normalized to peac-receipt/0.1 per DEC-20260114-002\n */\nexport const WIRE_TYPE = 'peac-receipt/0.1' as const;\n\n/**\n * Wire format version (extracted from WIRE_TYPE)\n * Use this for wire_version fields in receipts\n */\nexport const WIRE_VERSION = '0.1' as const;\n\n/**\n * Supported cryptographic algorithms\n */\nexport const ALGORITHMS = {\n supported: ['EdDSA'] as const,\n default: 'EdDSA' as const,\n} as const;\n\n/**\n * HTTP header names for PEAC protocol\n */\nexport const HEADERS = {\n receipt: 'PEAC-Receipt' as const,\n receiptPointer: 'PEAC-Receipt-Pointer' as const,\n dpop: 'DPoP' as const,\n // Purpose headers (v0.9.24+)\n purpose: 'PEAC-Purpose' as const,\n purposeApplied: 'PEAC-Purpose-Applied' as const,\n purposeReason: 'PEAC-Purpose-Reason' as const,\n} as const;\n\n/**\n * Policy manifest settings (/.well-known/peac.txt)\n *\n * Policy documents declare access terms for agents and gateways.\n * @see docs/specs/PEAC-TXT.md\n */\nexport const POLICY = {\n manifestPath: '/.well-known/peac.txt' as const,\n fallbackPath: '/peac.txt' as const,\n manifestVersion: 'peac-policy/0.1' as const,\n cacheTtlSeconds: 3600,\n maxBytes: 262144, // 256 KiB\n maxDepth: 8,\n} as const;\n\n/**\n * Issuer configuration settings (/.well-known/peac-issuer.json)\n *\n * Issuer config enables verifiers to discover JWKS and verification endpoints.\n * @see docs/specs/PEAC-ISSUER.md\n */\nexport const ISSUER_CONFIG = {\n configPath: '/.well-known/peac-issuer.json' as const,\n configVersion: 'peac-issuer/0.1' as const,\n cacheTtlSeconds: 3600,\n maxBytes: 65536, // 64 KiB\n maxDepth: 4,\n fetchTimeoutMs: 10000,\n} as const;\n\n/**\n * @deprecated Use POLICY instead. Will be removed in v1.0.\n */\nexport const DISCOVERY = {\n manifestPath: POLICY.manifestPath,\n manifestVersion: 'peac/0.9' as const,\n cacheTtlSeconds: POLICY.cacheTtlSeconds,\n} as const;\n\n/**\n * JWKS rotation and revocation settings\n */\nexport const JWKS = {\n rotationDays: 90,\n overlapDays: 7,\n emergencyRevocationHours: 24,\n} as const;\n\n/**\n * Receipt validation constants\n */\nexport const RECEIPT = {\n minReceiptIdLength: 16,\n maxReceiptIdLength: 64,\n defaultTtlSeconds: 86400, // 24 hours\n} as const;\n\n/**\n * Payment amount validation limits (in cents/smallest currency unit)\n */\nexport const LIMITS = {\n maxAmountCents: 999999999999,\n minAmountCents: 1,\n} as const;\n\n/**\n * Bundle format version.\n * Used in dispute bundles, audit bundles, and archive bundles.\n */\nexport const BUNDLE_VERSION = 'peac-bundle/0.1' as const;\n\n/**\n * Verification report format version.\n */\nexport const VERIFICATION_REPORT_VERSION = 'peac-verification-report/0.1' as const;\n\n/**\n * Hash format constants and utilities.\n * All hashes use the self-describing format: sha256:<64 lowercase hex chars>\n */\nexport const HASH = {\n /** Canonical hash algorithm */\n algorithm: 'sha256' as const,\n\n /** Hash prefix pattern */\n prefix: 'sha256:' as const,\n\n /** Valid hash regex: sha256:<64 lowercase hex> */\n pattern: /^sha256:[0-9a-f]{64}$/,\n\n /** Hex-only pattern for legacy comparison */\n hexPattern: /^[0-9a-f]{64}$/,\n};\n\n/**\n * Parse a sha256:<hex> hash string into components.\n * Returns null if the format is invalid.\n *\n * @param hash - Hash string to parse (e.g., \"sha256:abc123...\")\n * @returns Parsed hash or null if invalid\n */\nexport function parseHash(hash: string): { alg: 'sha256'; hex: string } | null {\n if (!HASH.pattern.test(hash)) {\n return null;\n }\n return {\n alg: 'sha256',\n hex: hash.slice(7), // Remove 'sha256:' prefix\n };\n}\n\n/**\n * Format a hex string as a sha256:<hex> hash.\n * Validates that the hex is exactly 64 lowercase characters.\n *\n * @param hex - Hex string (64 lowercase characters)\n * @returns Formatted hash or null if invalid\n */\nexport function formatHash(hex: string): string | null {\n if (!HASH.hexPattern.test(hex)) {\n return null;\n }\n return `sha256:${hex}`;\n}\n\n/**\n * Validate a hash string is in the correct format.\n *\n * @param hash - Hash string to validate\n * @returns true if valid sha256:<64 hex> format\n */\nexport function isValidHash(hash: string): boolean {\n return HASH.pattern.test(hash);\n}\n\n/**\n * Verifier security limits per VERIFIER-SECURITY-MODEL.md\n */\nexport const VERIFIER_LIMITS = {\n /** Maximum receipt size in bytes (256 KB) */\n maxReceiptBytes: 262144,\n /** Maximum number of claims in a receipt */\n maxClaimsCount: 100,\n /** Maximum extension size in bytes (64 KB) */\n maxExtensionBytes: 65536,\n /** Maximum string length for individual claims (64 KB) */\n maxStringLength: 65536,\n /** Maximum JWKS document size in bytes (64 KB) */\n maxJwksBytes: 65536,\n /** Maximum number of keys in a JWKS */\n maxJwksKeys: 20,\n /** Maximum individual key size in bytes */\n maxKeySize: 4096,\n /** Network fetch timeout in milliseconds */\n fetchTimeoutMs: 5000,\n /** Maximum number of redirects to follow */\n maxRedirects: 3,\n /** Maximum network response size in bytes (256 KB) */\n maxResponseBytes: 262144,\n} as const;\n\n/**\n * Verifier network security settings per VERIFIER-SECURITY-MODEL.md\n */\nexport const VERIFIER_NETWORK = {\n /** Only allow HTTPS URLs */\n httpsOnly: true,\n /** Block requests to private IP ranges */\n blockPrivateIps: true,\n /** Default redirect policy (false = no redirects) */\n allowRedirects: false,\n} as const;\n\n/**\n * Private IPv4 CIDR blocks to block for SSRF protection\n */\nexport const PRIVATE_IP_RANGES = {\n /** RFC 1918 private ranges */\n rfc1918: ['10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16'] as const,\n /** Link-local addresses */\n linkLocal: ['169.254.0.0/16'] as const,\n /** Loopback addresses */\n loopback: ['127.0.0.0/8'] as const,\n /** IPv6 loopback */\n ipv6Loopback: ['::1/128'] as const,\n /** IPv6 link-local */\n ipv6LinkLocal: ['fe80::/10'] as const,\n} as const;\n\n/**\n * Verifier policy version\n */\nexport const VERIFIER_POLICY_VERSION = 'peac-verifier-policy/0.1' as const;\n\n/**\n * Verification modes per VERIFIER-SECURITY-MODEL.md\n */\nexport const VERIFICATION_MODES = {\n /** All verification in browser/client, may fetch JWKS */\n clientSide: 'client_side' as const,\n /** No network access, uses bundled/pinned keys */\n offlineOnly: 'offline_only' as const,\n /** Prefer offline, fallback to network */\n offlinePreferred: 'offline_preferred' as const,\n /** Allow network fetches for key discovery */\n networkAllowed: 'network_allowed' as const,\n} as const;\n\n/**\n * All constants export\n */\nexport const CONSTANTS = {\n WIRE_TYPE,\n WIRE_VERSION,\n ALGORITHMS,\n HEADERS,\n DISCOVERY,\n JWKS,\n RECEIPT,\n LIMITS,\n BUNDLE_VERSION,\n VERIFICATION_REPORT_VERSION,\n HASH,\n VERIFIER_LIMITS,\n VERIFIER_NETWORK,\n VERIFIER_POLICY_VERSION,\n VERIFICATION_MODES,\n} as const;\n","/**\n * PEAC Protocol Error Codes\n *\n * AUTO-GENERATED from specs/kernel/errors.json\n * DO NOT EDIT MANUALLY - run: npx tsx scripts/codegen-errors.ts\n * Spec version: 0.11.2\n */\n\nimport type { ErrorDefinition } from './types.js';\n\n/**\n * Error code string constants\n */\nexport const ERROR_CODES = {\n // Attribution error codes\n E_ATTRIBUTION_CHAIN_TOO_DEEP: 'E_ATTRIBUTION_CHAIN_TOO_DEEP',\n E_ATTRIBUTION_CIRCULAR_CHAIN: 'E_ATTRIBUTION_CIRCULAR_CHAIN',\n E_ATTRIBUTION_EXPIRED: 'E_ATTRIBUTION_EXPIRED',\n E_ATTRIBUTION_HASH_INVALID: 'E_ATTRIBUTION_HASH_INVALID',\n E_ATTRIBUTION_INVALID_FORMAT: 'E_ATTRIBUTION_INVALID_FORMAT',\n E_ATTRIBUTION_INVALID_REF: 'E_ATTRIBUTION_INVALID_REF',\n E_ATTRIBUTION_INVALID_WEIGHT: 'E_ATTRIBUTION_INVALID_WEIGHT',\n E_ATTRIBUTION_MISSING_SOURCES: 'E_ATTRIBUTION_MISSING_SOURCES',\n E_ATTRIBUTION_NOT_YET_VALID: 'E_ATTRIBUTION_NOT_YET_VALID',\n E_ATTRIBUTION_RESOLUTION_FAILED: 'E_ATTRIBUTION_RESOLUTION_FAILED',\n E_ATTRIBUTION_RESOLUTION_TIMEOUT: 'E_ATTRIBUTION_RESOLUTION_TIMEOUT',\n E_ATTRIBUTION_SIZE_EXCEEDED: 'E_ATTRIBUTION_SIZE_EXCEEDED',\n E_ATTRIBUTION_TOO_MANY_SOURCES: 'E_ATTRIBUTION_TOO_MANY_SOURCES',\n E_ATTRIBUTION_UNKNOWN_USAGE: 'E_ATTRIBUTION_UNKNOWN_USAGE',\n\n // Bundle error codes\n E_BUNDLE_DUPLICATE_RECEIPT: 'E_BUNDLE_DUPLICATE_RECEIPT',\n E_BUNDLE_HASH_MISMATCH: 'E_BUNDLE_HASH_MISMATCH',\n E_BUNDLE_INVALID_FORMAT: 'E_BUNDLE_INVALID_FORMAT',\n E_BUNDLE_KEY_MISSING: 'E_BUNDLE_KEY_MISSING',\n E_BUNDLE_MANIFEST_INVALID: 'E_BUNDLE_MANIFEST_INVALID',\n E_BUNDLE_MANIFEST_MISSING: 'E_BUNDLE_MANIFEST_MISSING',\n E_BUNDLE_MISSING_KEYS: 'E_BUNDLE_MISSING_KEYS',\n E_BUNDLE_MISSING_RECEIPTS: 'E_BUNDLE_MISSING_RECEIPTS',\n E_BUNDLE_PATH_TRAVERSAL: 'E_BUNDLE_PATH_TRAVERSAL',\n E_BUNDLE_POLICY_HASH_MISMATCH: 'E_BUNDLE_POLICY_HASH_MISMATCH',\n E_BUNDLE_RECEIPTS_UNORDERED: 'E_BUNDLE_RECEIPTS_UNORDERED',\n E_BUNDLE_RECEIPT_INVALID: 'E_BUNDLE_RECEIPT_INVALID',\n E_BUNDLE_SIGNATURE_INVALID: 'E_BUNDLE_SIGNATURE_INVALID',\n E_BUNDLE_SIZE_EXCEEDED: 'E_BUNDLE_SIZE_EXCEEDED',\n E_BUNDLE_TIME_RANGE_INVALID: 'E_BUNDLE_TIME_RANGE_INVALID',\n\n // Control error codes\n E_CONTROL_DENIED: 'E_CONTROL_DENIED',\n E_CONTROL_REVIEW_REQUIRED: 'E_CONTROL_REVIEW_REQUIRED',\n\n // Dispute error codes\n E_DISPUTE_DUPLICATE: 'E_DISPUTE_DUPLICATE',\n E_DISPUTE_EXPIRED: 'E_DISPUTE_EXPIRED',\n E_DISPUTE_INVALID_FORMAT: 'E_DISPUTE_INVALID_FORMAT',\n E_DISPUTE_INVALID_GROUNDS: 'E_DISPUTE_INVALID_GROUNDS',\n E_DISPUTE_INVALID_ID: 'E_DISPUTE_INVALID_ID',\n E_DISPUTE_INVALID_STATE: 'E_DISPUTE_INVALID_STATE',\n E_DISPUTE_INVALID_TARGET_TYPE: 'E_DISPUTE_INVALID_TARGET_TYPE',\n E_DISPUTE_INVALID_TRANSITION: 'E_DISPUTE_INVALID_TRANSITION',\n E_DISPUTE_INVALID_TYPE: 'E_DISPUTE_INVALID_TYPE',\n E_DISPUTE_MISSING_RESOLUTION: 'E_DISPUTE_MISSING_RESOLUTION',\n E_DISPUTE_NOT_YET_VALID: 'E_DISPUTE_NOT_YET_VALID',\n E_DISPUTE_OTHER_REQUIRES_DESCRIPTION: 'E_DISPUTE_OTHER_REQUIRES_DESCRIPTION',\n E_DISPUTE_RESOLUTION_NOT_ALLOWED: 'E_DISPUTE_RESOLUTION_NOT_ALLOWED',\n E_DISPUTE_TARGET_NOT_FOUND: 'E_DISPUTE_TARGET_NOT_FOUND',\n\n // Identity error codes\n E_IDENTITY_BINDING_FUTURE: 'E_IDENTITY_BINDING_FUTURE',\n E_IDENTITY_BINDING_MISMATCH: 'E_IDENTITY_BINDING_MISMATCH',\n E_IDENTITY_BINDING_STALE: 'E_IDENTITY_BINDING_STALE',\n E_IDENTITY_DIRECTORY_UNAVAILABLE: 'E_IDENTITY_DIRECTORY_UNAVAILABLE',\n E_IDENTITY_EXPIRED: 'E_IDENTITY_EXPIRED',\n E_IDENTITY_INVALID_FORMAT: 'E_IDENTITY_INVALID_FORMAT',\n E_IDENTITY_KEY_EXPIRED: 'E_IDENTITY_KEY_EXPIRED',\n E_IDENTITY_KEY_REVOKED: 'E_IDENTITY_KEY_REVOKED',\n E_IDENTITY_KEY_UNKNOWN: 'E_IDENTITY_KEY_UNKNOWN',\n E_IDENTITY_MISSING: 'E_IDENTITY_MISSING',\n E_IDENTITY_NOT_YET_VALID: 'E_IDENTITY_NOT_YET_VALID',\n E_IDENTITY_PROOF_UNSUPPORTED: 'E_IDENTITY_PROOF_UNSUPPORTED',\n E_IDENTITY_SIG_INVALID: 'E_IDENTITY_SIG_INVALID',\n\n // Infrastructure error codes\n E_CIRCUIT_BREAKER_OPEN: 'E_CIRCUIT_BREAKER_OPEN',\n E_INTERNAL: 'E_INTERNAL',\n E_JWKS_FETCH_FAILED: 'E_JWKS_FETCH_FAILED',\n E_RATE_LIMITED: 'E_RATE_LIMITED',\n\n // Interaction error codes\n E_INTERACTION_INVALID_DIGEST: 'E_INTERACTION_INVALID_DIGEST',\n E_INTERACTION_INVALID_DIGEST_ALG: 'E_INTERACTION_INVALID_DIGEST_ALG',\n E_INTERACTION_INVALID_EXTENSION_KEY: 'E_INTERACTION_INVALID_EXTENSION_KEY',\n E_INTERACTION_INVALID_FORMAT: 'E_INTERACTION_INVALID_FORMAT',\n E_INTERACTION_INVALID_KIND_FORMAT: 'E_INTERACTION_INVALID_KIND_FORMAT',\n E_INTERACTION_INVALID_TIMING: 'E_INTERACTION_INVALID_TIMING',\n E_INTERACTION_KIND_RESERVED: 'E_INTERACTION_KIND_RESERVED',\n E_INTERACTION_MISSING_ERROR_DETAIL: 'E_INTERACTION_MISSING_ERROR_DETAIL',\n E_INTERACTION_MISSING_EXECUTOR: 'E_INTERACTION_MISSING_EXECUTOR',\n E_INTERACTION_MISSING_ID: 'E_INTERACTION_MISSING_ID',\n E_INTERACTION_MISSING_KIND: 'E_INTERACTION_MISSING_KIND',\n E_INTERACTION_MISSING_RESULT: 'E_INTERACTION_MISSING_RESULT',\n E_INTERACTION_MISSING_STARTED_AT: 'E_INTERACTION_MISSING_STARTED_AT',\n E_INTERACTION_MISSING_TARGET: 'E_INTERACTION_MISSING_TARGET',\n\n // Ucp error codes\n E_UCP_EVIDENCE_SERIALIZATION_FAILED: 'E_UCP_EVIDENCE_SERIALIZATION_FAILED',\n E_UCP_KEY_ALGORITHM_MISMATCH: 'E_UCP_KEY_ALGORITHM_MISMATCH',\n E_UCP_KEY_CURVE_MISMATCH: 'E_UCP_KEY_CURVE_MISMATCH',\n E_UCP_KEY_NOT_FOUND: 'E_UCP_KEY_NOT_FOUND',\n E_UCP_ORDER_INVALID: 'E_UCP_ORDER_INVALID',\n E_UCP_ORDER_MISSING_ID: 'E_UCP_ORDER_MISSING_ID',\n E_UCP_ORDER_MISSING_LINE_ITEMS: 'E_UCP_ORDER_MISSING_LINE_ITEMS',\n E_UCP_ORDER_MISSING_TOTALS: 'E_UCP_ORDER_MISSING_TOTALS',\n E_UCP_PAYLOAD_EMPTY: 'E_UCP_PAYLOAD_EMPTY',\n E_UCP_PAYLOAD_NOT_JSON: 'E_UCP_PAYLOAD_NOT_JSON',\n E_UCP_PAYLOAD_TOO_LARGE: 'E_UCP_PAYLOAD_TOO_LARGE',\n E_UCP_PROFILE_FETCH_FAILED: 'E_UCP_PROFILE_FETCH_FAILED',\n E_UCP_PROFILE_INVALID: 'E_UCP_PROFILE_INVALID',\n E_UCP_PROFILE_NO_SIGNING_KEYS: 'E_UCP_PROFILE_NO_SIGNING_KEYS',\n E_UCP_SIGNATURE_ALGORITHM_UNSUPPORTED: 'E_UCP_SIGNATURE_ALGORITHM_UNSUPPORTED',\n E_UCP_SIGNATURE_B64_INVALID: 'E_UCP_SIGNATURE_B64_INVALID',\n E_UCP_SIGNATURE_INVALID: 'E_UCP_SIGNATURE_INVALID',\n E_UCP_SIGNATURE_MALFORMED: 'E_UCP_SIGNATURE_MALFORMED',\n E_UCP_SIGNATURE_MISSING: 'E_UCP_SIGNATURE_MISSING',\n E_UCP_VERIFICATION_FAILED: 'E_UCP_VERIFICATION_FAILED',\n\n // Validation error codes\n E_CONSTRAINT_VIOLATION: 'E_CONSTRAINT_VIOLATION',\n E_EVIDENCE_NOT_JSON: 'E_EVIDENCE_NOT_JSON',\n E_EXPIRED: 'E_EXPIRED',\n E_INVALID_AMOUNT: 'E_INVALID_AMOUNT',\n E_INVALID_AUDIENCE: 'E_INVALID_AUDIENCE',\n E_INVALID_CURRENCY: 'E_INVALID_CURRENCY',\n E_INVALID_FORMAT: 'E_INVALID_FORMAT',\n E_INVALID_ISSUER: 'E_INVALID_ISSUER',\n E_INVALID_RAIL: 'E_INVALID_RAIL',\n E_INVALID_RECEIPT_ID: 'E_INVALID_RECEIPT_ID',\n E_INVALID_SUBJECT: 'E_INVALID_SUBJECT',\n E_MISSING_EXP: 'E_MISSING_EXP',\n E_MISSING_REQUIRED_CLAIM: 'E_MISSING_REQUIRED_CLAIM',\n E_NOT_YET_VALID: 'E_NOT_YET_VALID',\n E_PARSE_ATTESTATION_INVALID: 'E_PARSE_ATTESTATION_INVALID',\n E_PARSE_COMMERCE_INVALID: 'E_PARSE_COMMERCE_INVALID',\n E_PARSE_INVALID_INPUT: 'E_PARSE_INVALID_INPUT',\n\n // Verification error codes\n E_INVALID_SIGNATURE: 'E_INVALID_SIGNATURE',\n E_KEY_NOT_FOUND: 'E_KEY_NOT_FOUND',\n\n // Verifier error codes\n E_VERIFY_EXTENSION_TOO_LARGE: 'E_VERIFY_EXTENSION_TOO_LARGE',\n E_VERIFY_INSECURE_SCHEME_BLOCKED: 'E_VERIFY_INSECURE_SCHEME_BLOCKED',\n E_VERIFY_INVALID_TRANSPORT: 'E_VERIFY_INVALID_TRANSPORT',\n E_VERIFY_ISSUER_CONFIG_INVALID: 'E_VERIFY_ISSUER_CONFIG_INVALID',\n E_VERIFY_ISSUER_CONFIG_MISSING: 'E_VERIFY_ISSUER_CONFIG_MISSING',\n E_VERIFY_ISSUER_MISMATCH: 'E_VERIFY_ISSUER_MISMATCH',\n E_VERIFY_ISSUER_NOT_ALLOWED: 'E_VERIFY_ISSUER_NOT_ALLOWED',\n E_VERIFY_JWKS_INVALID: 'E_VERIFY_JWKS_INVALID',\n E_VERIFY_JWKS_TOO_LARGE: 'E_VERIFY_JWKS_TOO_LARGE',\n E_VERIFY_JWKS_TOO_MANY_KEYS: 'E_VERIFY_JWKS_TOO_MANY_KEYS',\n E_VERIFY_JWKS_URI_INVALID: 'E_VERIFY_JWKS_URI_INVALID',\n E_VERIFY_KEY_FETCH_BLOCKED: 'E_VERIFY_KEY_FETCH_BLOCKED',\n E_VERIFY_KEY_FETCH_FAILED: 'E_VERIFY_KEY_FETCH_FAILED',\n E_VERIFY_KEY_FETCH_TIMEOUT: 'E_VERIFY_KEY_FETCH_TIMEOUT',\n E_VERIFY_MALFORMED_RECEIPT: 'E_VERIFY_MALFORMED_RECEIPT',\n E_VERIFY_POINTER_DIGEST_MISMATCH: 'E_VERIFY_POINTER_DIGEST_MISMATCH',\n E_VERIFY_POINTER_FETCH_BLOCKED: 'E_VERIFY_POINTER_FETCH_BLOCKED',\n E_VERIFY_POINTER_FETCH_FAILED: 'E_VERIFY_POINTER_FETCH_FAILED',\n E_VERIFY_POINTER_FETCH_TIMEOUT: 'E_VERIFY_POINTER_FETCH_TIMEOUT',\n E_VERIFY_POINTER_FETCH_TOO_LARGE: 'E_VERIFY_POINTER_FETCH_TOO_LARGE',\n E_VERIFY_POLICY_VIOLATION: 'E_VERIFY_POLICY_VIOLATION',\n E_VERIFY_RECEIPT_TOO_LARGE: 'E_VERIFY_RECEIPT_TOO_LARGE',\n E_VERIFY_SCHEMA_INVALID: 'E_VERIFY_SCHEMA_INVALID',\n\n // Workflow error codes\n E_WORKFLOW_CONTEXT_INVALID: 'E_WORKFLOW_CONTEXT_INVALID',\n E_WORKFLOW_CYCLE_DETECTED: 'E_WORKFLOW_CYCLE_DETECTED',\n E_WORKFLOW_DAG_INVALID: 'E_WORKFLOW_DAG_INVALID',\n E_WORKFLOW_ID_INVALID: 'E_WORKFLOW_ID_INVALID',\n E_WORKFLOW_LIMIT_EXCEEDED: 'E_WORKFLOW_LIMIT_EXCEEDED',\n E_WORKFLOW_PARENT_NOT_FOUND: 'E_WORKFLOW_PARENT_NOT_FOUND',\n E_WORKFLOW_STEP_ID_INVALID: 'E_WORKFLOW_STEP_ID_INVALID',\n E_WORKFLOW_SUMMARY_INVALID: 'E_WORKFLOW_SUMMARY_INVALID',\n} as const;\n\n/**\n * Union type of all error codes\n */\nexport type ErrorCode = (typeof ERROR_CODES)[keyof typeof ERROR_CODES];\n\n/**\n * Error definitions map with full metadata\n */\nexport const ERRORS: Record<string, ErrorDefinition> = {\n // Attribution error codes\n E_ATTRIBUTION_CHAIN_TOO_DEEP: {\n code: 'E_ATTRIBUTION_CHAIN_TOO_DEEP',\n http_status: 400,\n title: 'Attribution Chain Too Deep',\n description: 'Attribution chain exceeds maximum allowed depth (8)',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'attribution',\n },\n E_ATTRIBUTION_CIRCULAR_CHAIN: {\n code: 'E_ATTRIBUTION_CIRCULAR_CHAIN',\n http_status: 400,\n title: 'Attribution Circular Chain',\n description: 'Circular reference detected in attribution chain',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'attribution',\n },\n E_ATTRIBUTION_EXPIRED: {\n code: 'E_ATTRIBUTION_EXPIRED',\n http_status: 401,\n title: 'Attribution Expired',\n description: 'Attribution attestation has exceeded its expiration time',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'attribution',\n },\n E_ATTRIBUTION_HASH_INVALID: {\n code: 'E_ATTRIBUTION_HASH_INVALID',\n http_status: 400,\n title: 'Attribution Hash Invalid',\n description: 'Content hash structure is invalid (wrong algorithm, encoding, or value length)',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'attribution',\n },\n E_ATTRIBUTION_INVALID_FORMAT: {\n code: 'E_ATTRIBUTION_INVALID_FORMAT',\n http_status: 400,\n title: 'Attribution Invalid Format',\n description: 'Attribution attestation does not conform to schema',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'attribution',\n },\n E_ATTRIBUTION_INVALID_REF: {\n code: 'E_ATTRIBUTION_INVALID_REF',\n http_status: 400,\n title: 'Attribution Invalid Reference',\n description: 'Receipt reference format is invalid (must be jti:{id}, URL, or URN)',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'attribution',\n },\n E_ATTRIBUTION_INVALID_WEIGHT: {\n code: 'E_ATTRIBUTION_INVALID_WEIGHT',\n http_status: 400,\n title: 'Attribution Invalid Weight',\n description: 'Attribution weight is out of valid range (must be 0.0-1.0)',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'attribution',\n },\n E_ATTRIBUTION_MISSING_SOURCES: {\n code: 'E_ATTRIBUTION_MISSING_SOURCES',\n http_status: 400,\n title: 'Attribution Missing Sources',\n description: 'Attribution attestation has empty sources array',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'attribution',\n },\n E_ATTRIBUTION_NOT_YET_VALID: {\n code: 'E_ATTRIBUTION_NOT_YET_VALID',\n http_status: 401,\n title: 'Attribution Not Yet Valid',\n description: 'Attribution attestation issued_at time is in the future',\n retryable: true,\n next_action: 'retry_after_delay',\n category: 'attribution',\n },\n E_ATTRIBUTION_RESOLUTION_FAILED: {\n code: 'E_ATTRIBUTION_RESOLUTION_FAILED',\n http_status: 502,\n title: 'Attribution Resolution Failed',\n description: 'Failed to resolve receipt reference in attribution chain',\n retryable: true,\n next_action: 'retry_after_delay',\n category: 'attribution',\n },\n E_ATTRIBUTION_RESOLUTION_TIMEOUT: {\n code: 'E_ATTRIBUTION_RESOLUTION_TIMEOUT',\n http_status: 504,\n title: 'Attribution Resolution Timeout',\n description: 'Timeout while resolving receipt reference in attribution chain',\n retryable: true,\n next_action: 'retry_after_delay',\n category: 'attribution',\n },\n E_ATTRIBUTION_SIZE_EXCEEDED: {\n code: 'E_ATTRIBUTION_SIZE_EXCEEDED',\n http_status: 400,\n title: 'Attribution Size Exceeded',\n description: 'Attribution attestation exceeds maximum size (64KB)',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'attribution',\n },\n E_ATTRIBUTION_TOO_MANY_SOURCES: {\n code: 'E_ATTRIBUTION_TOO_MANY_SOURCES',\n http_status: 400,\n title: 'Attribution Too Many Sources',\n description: 'Attribution has too many sources (maximum 100)',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'attribution',\n },\n E_ATTRIBUTION_UNKNOWN_USAGE: {\n code: 'E_ATTRIBUTION_UNKNOWN_USAGE',\n http_status: 400,\n title: 'Attribution Unknown Usage',\n description: 'Attribution usage type is not recognized',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'attribution',\n },\n\n // Bundle error codes\n E_BUNDLE_DUPLICATE_RECEIPT: {\n code: 'E_BUNDLE_DUPLICATE_RECEIPT',\n http_status: 400,\n title: 'Bundle Duplicate Receipt',\n description: 'Bundle contains multiple receipts with the same ID',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'bundle',\n },\n E_BUNDLE_HASH_MISMATCH: {\n code: 'E_BUNDLE_HASH_MISMATCH',\n http_status: 400,\n title: 'Bundle Hash Mismatch',\n description: 'File hash does not match value declared in manifest.json',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'bundle',\n },\n E_BUNDLE_INVALID_FORMAT: {\n code: 'E_BUNDLE_INVALID_FORMAT',\n http_status: 400,\n title: 'Bundle Invalid Format',\n description: 'Bundle archive structure is invalid (not a valid ZIP or missing required files)',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'bundle',\n },\n E_BUNDLE_KEY_MISSING: {\n code: 'E_BUNDLE_KEY_MISSING',\n http_status: 400,\n title: 'Bundle Key Missing',\n description: 'Required signing key not found in bundle (offline verification mode)',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'bundle',\n },\n E_BUNDLE_MANIFEST_INVALID: {\n code: 'E_BUNDLE_MANIFEST_INVALID',\n http_status: 400,\n title: 'Bundle Manifest Invalid',\n description: 'manifest.json does not conform to schema or contains invalid values',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'bundle',\n },\n E_BUNDLE_MANIFEST_MISSING: {\n code: 'E_BUNDLE_MANIFEST_MISSING',\n http_status: 400,\n title: 'Bundle Manifest Missing',\n description: 'manifest.json not found at bundle archive root',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'bundle',\n },\n E_BUNDLE_MISSING_KEYS: {\n code: 'E_BUNDLE_MISSING_KEYS',\n http_status: 400,\n title: 'Bundle Missing Keys',\n description: 'No verification keys provided in bundle JWKS',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'bundle',\n },\n E_BUNDLE_MISSING_RECEIPTS: {\n code: 'E_BUNDLE_MISSING_RECEIPTS',\n http_status: 400,\n title: 'Bundle Missing Receipts',\n description: 'No receipts provided when creating bundle',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'bundle',\n },\n E_BUNDLE_PATH_TRAVERSAL: {\n code: 'E_BUNDLE_PATH_TRAVERSAL',\n http_status: 400,\n title: 'Bundle Path Traversal',\n description: 'Bundle contains path traversal attack (zip-slip vulnerability)',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'bundle',\n },\n E_BUNDLE_POLICY_HASH_MISMATCH: {\n code: 'E_BUNDLE_POLICY_HASH_MISMATCH',\n http_status: 400,\n title: 'Bundle Policy Hash Mismatch',\n description: 'Policy snapshot hash does not match policy used to evaluate receipts',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'bundle',\n },\n E_BUNDLE_RECEIPTS_UNORDERED: {\n code: 'E_BUNDLE_RECEIPTS_UNORDERED',\n http_status: 400,\n title: 'Bundle Receipts Unordered',\n description:\n 'receipts.ndjson is not in deterministic order (issued_at, receipt_id, receipt_hash)',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'bundle',\n },\n E_BUNDLE_RECEIPT_INVALID: {\n code: 'E_BUNDLE_RECEIPT_INVALID',\n http_status: 400,\n title: 'Bundle Receipt Invalid',\n description: 'Receipt JWS in bundle is malformed or missing required claims',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'bundle',\n },\n E_BUNDLE_SIGNATURE_INVALID: {\n code: 'E_BUNDLE_SIGNATURE_INVALID',\n http_status: 400,\n title: 'Bundle Signature Invalid',\n description: 'bundle.sig JWS verification failed over manifest hash',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'bundle',\n },\n E_BUNDLE_SIZE_EXCEEDED: {\n code: 'E_BUNDLE_SIZE_EXCEEDED',\n http_status: 400,\n title: 'Bundle Size Exceeded',\n description: 'Bundle exceeds size limits (entry count, entry size, or total size)',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'bundle',\n },\n E_BUNDLE_TIME_RANGE_INVALID: {\n code: 'E_BUNDLE_TIME_RANGE_INVALID',\n http_status: 400,\n title: 'Bundle Time Range Invalid',\n description: 'Receipt issued_at is outside the bundle declared time_range',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'bundle',\n },\n\n // Control error codes\n E_CONTROL_DENIED: {\n code: 'E_CONTROL_DENIED',\n http_status: 403,\n title: 'Control Decision Denied',\n description: 'Control engine denied authorization',\n retryable: false,\n next_action: 'contact_issuer',\n category: 'control',\n },\n E_CONTROL_REVIEW_REQUIRED: {\n code: 'E_CONTROL_REVIEW_REQUIRED',\n http_status: 202,\n title: 'Review Required',\n description: 'Control engine requires manual review',\n retryable: true,\n next_action: 'contact_issuer',\n category: 'control',\n },\n\n // Dispute error codes\n E_DISPUTE_DUPLICATE: {\n code: 'E_DISPUTE_DUPLICATE',\n http_status: 409,\n title: 'Dispute Duplicate',\n description: 'A dispute with this ID already exists',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'dispute',\n },\n E_DISPUTE_EXPIRED: {\n code: 'E_DISPUTE_EXPIRED',\n http_status: 401,\n title: 'Dispute Expired',\n description: 'Dispute attestation has exceeded its expiration time',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'dispute',\n },\n E_DISPUTE_INVALID_FORMAT: {\n code: 'E_DISPUTE_INVALID_FORMAT',\n http_status: 400,\n title: 'Dispute Invalid Format',\n description: 'Dispute attestation does not conform to schema',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'dispute',\n },\n E_DISPUTE_INVALID_GROUNDS: {\n code: 'E_DISPUTE_INVALID_GROUNDS',\n http_status: 400,\n title: 'Dispute Invalid Grounds',\n description: 'Dispute grounds code is not recognized',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'dispute',\n },\n E_DISPUTE_INVALID_ID: {\n code: 'E_DISPUTE_INVALID_ID',\n http_status: 400,\n title: 'Dispute Invalid ID',\n description: 'Dispute ID is not a valid ULID format (26 uppercase alphanumeric characters)',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'dispute',\n },\n E_DISPUTE_INVALID_STATE: {\n code: 'E_DISPUTE_INVALID_STATE',\n http_status: 400,\n title: 'Dispute Invalid State',\n description: 'Dispute state is not recognized',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'dispute',\n },\n E_DISPUTE_INVALID_TARGET_TYPE: {\n code: 'E_DISPUTE_INVALID_TARGET_TYPE',\n http_status: 400,\n title: 'Dispute Invalid Target Type',\n description:\n 'Dispute target type is not recognized (must be receipt, attribution, identity, or policy)',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'dispute',\n },\n E_DISPUTE_INVALID_TRANSITION: {\n code: 'E_DISPUTE_INVALID_TRANSITION',\n http_status: 400,\n title: 'Dispute Invalid Transition',\n description: 'Invalid state transition for dispute lifecycle',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'dispute',\n },\n E_DISPUTE_INVALID_TYPE: {\n code: 'E_DISPUTE_INVALID_TYPE',\n http_status: 400,\n title: 'Dispute Invalid Type',\n description: 'Dispute type is not recognized',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'dispute',\n },\n E_DISPUTE_MISSING_RESOLUTION: {\n code: 'E_DISPUTE_MISSING_RESOLUTION',\n http_status: 400,\n title: 'Dispute Missing Resolution',\n description: 'Resolution is required for terminal states (resolved, rejected, final)',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'dispute',\n },\n E_DISPUTE_NOT_YET_VALID: {\n code: 'E_DISPUTE_NOT_YET_VALID',\n http_status: 401,\n title: 'Dispute Not Yet Valid',\n description: 'Dispute attestation issued_at time is in the future',\n retryable: true,\n next_action: 'retry_after_delay',\n category: 'dispute',\n },\n E_DISPUTE_OTHER_REQUIRES_DESCRIPTION: {\n code: 'E_DISPUTE_OTHER_REQUIRES_DESCRIPTION',\n http_status: 400,\n title: 'Dispute Other Requires Description',\n description: \"Dispute type 'other' requires description of at least 50 characters\",\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'dispute',\n },\n E_DISPUTE_RESOLUTION_NOT_ALLOWED: {\n code: 'E_DISPUTE_RESOLUTION_NOT_ALLOWED',\n http_status: 400,\n title: 'Dispute Resolution Not Allowed',\n description: 'Resolution is only valid for terminal states',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'dispute',\n },\n E_DISPUTE_TARGET_NOT_FOUND: {\n code: 'E_DISPUTE_TARGET_NOT_FOUND',\n http_status: 404,\n title: 'Dispute Target Not Found',\n description: 'The target receipt, attribution, or identity being disputed was not found',\n retryable: true,\n next_action: 'retry_after_delay',\n category: 'dispute',\n },\n\n // Identity error codes\n E_IDENTITY_BINDING_FUTURE: {\n code: 'E_IDENTITY_BINDING_FUTURE',\n http_status: 400,\n title: 'Identity Binding Future',\n description: 'Identity binding signed_at timestamp is in the future',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'identity',\n },\n E_IDENTITY_BINDING_MISMATCH: {\n code: 'E_IDENTITY_BINDING_MISMATCH',\n http_status: 400,\n title: 'Identity Binding Mismatch',\n description: 'Identity binding does not match the request being verified',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'identity',\n },\n E_IDENTITY_BINDING_STALE: {\n code: 'E_IDENTITY_BINDING_STALE',\n http_status: 401,\n title: 'Identity Binding Stale',\n description: 'Identity binding is too old and requires fresh binding',\n retryable: true,\n next_action: 'retry_after_delay',\n category: 'identity',\n },\n E_IDENTITY_DIRECTORY_UNAVAILABLE: {\n code: 'E_IDENTITY_DIRECTORY_UNAVAILABLE',\n http_status: 503,\n title: 'Identity Directory Unavailable',\n description: 'Failed to fetch agent key directory',\n retryable: true,\n next_action: 'retry_after_delay',\n category: 'identity',\n },\n E_IDENTITY_EXPIRED: {\n code: 'E_IDENTITY_EXPIRED',\n http_status: 401,\n title: 'Identity Expired',\n description: 'Agent identity attestation has exceeded its expiration time',\n retryable: false,\n next_action: 'refresh_attestation',\n category: 'identity',\n },\n E_IDENTITY_INVALID_FORMAT: {\n code: 'E_IDENTITY_INVALID_FORMAT',\n http_status: 400,\n title: 'Identity Invalid Format',\n description: 'Agent identity attestation does not conform to schema',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'identity',\n },\n E_IDENTITY_KEY_EXPIRED: {\n code: 'E_IDENTITY_KEY_EXPIRED',\n http_status: 401,\n title: 'Identity Key Expired',\n description: 'Agent signing key has expired per directory metadata',\n retryable: false,\n next_action: 'refresh_attestation',\n category: 'identity',\n },\n E_IDENTITY_KEY_REVOKED: {\n code: 'E_IDENTITY_KEY_REVOKED',\n http_status: 401,\n title: 'Identity Key Revoked',\n description: 'Agent signing key has been explicitly revoked',\n retryable: false,\n next_action: 'refresh_attestation',\n category: 'identity',\n },\n E_IDENTITY_KEY_UNKNOWN: {\n code: 'E_IDENTITY_KEY_UNKNOWN',\n http_status: 401,\n title: 'Identity Key Unknown',\n description: 'Key ID not found in agent key directory',\n retryable: true,\n next_action: 'retry_after_delay',\n category: 'identity',\n },\n E_IDENTITY_MISSING: {\n code: 'E_IDENTITY_MISSING',\n http_status: 401,\n title: 'Identity Missing',\n description: 'No agent identity attestation provided in request',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'identity',\n },\n E_IDENTITY_NOT_YET_VALID: {\n code: 'E_IDENTITY_NOT_YET_VALID',\n http_status: 401,\n title: 'Identity Not Yet Valid',\n description: 'Agent identity attestation issued_at time is in the future',\n retryable: true,\n next_action: 'retry_after_delay',\n category: 'identity',\n },\n E_IDENTITY_PROOF_UNSUPPORTED: {\n code: 'E_IDENTITY_PROOF_UNSUPPORTED',\n http_status: 400,\n title: 'Identity Proof Unsupported',\n description: 'Agent identity proof method is not supported',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'identity',\n },\n E_IDENTITY_SIG_INVALID: {\n code: 'E_IDENTITY_SIG_INVALID',\n http_status: 401,\n title: 'Identity Signature Invalid',\n description: 'Agent identity proof signature verification failed',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'identity',\n },\n\n // Infrastructure error codes\n E_CIRCUIT_BREAKER_OPEN: {\n code: 'E_CIRCUIT_BREAKER_OPEN',\n http_status: 503,\n title: 'Circuit Breaker Open',\n description: 'Service temporarily unavailable due to circuit breaker',\n retryable: true,\n next_action: 'retry_after_delay',\n category: 'infrastructure',\n },\n E_INTERNAL: {\n code: 'E_INTERNAL',\n http_status: 500,\n title: 'Internal Error',\n description: 'An unexpected internal error occurred during verification',\n retryable: true,\n next_action: 'retry_after_delay',\n category: 'infrastructure',\n },\n E_JWKS_FETCH_FAILED: {\n code: 'E_JWKS_FETCH_FAILED',\n http_status: 503,\n title: 'JWKS Fetch Failed',\n description: 'Failed to fetch public keys from JWKS endpoint',\n retryable: true,\n next_action: 'retry_after_delay',\n category: 'infrastructure',\n },\n E_RATE_LIMITED: {\n code: 'E_RATE_LIMITED',\n http_status: 429,\n title: 'Rate Limited',\n description: 'Too many requests, please retry later',\n retryable: true,\n next_action: 'retry_after_delay',\n category: 'infrastructure',\n },\n\n // Interaction error codes\n E_INTERACTION_INVALID_DIGEST: {\n code: 'E_INTERACTION_INVALID_DIGEST',\n http_status: 400,\n title: 'Interaction Invalid Digest',\n description: 'Digest structure is invalid (wrong value format or missing bytes)',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'interaction',\n },\n E_INTERACTION_INVALID_DIGEST_ALG: {\n code: 'E_INTERACTION_INVALID_DIGEST_ALG',\n http_status: 400,\n title: 'Interaction Invalid Digest Algorithm',\n description:\n 'Digest algorithm is not in the canonical set (sha-256, sha-256:trunc-64k, sha-256:trunc-1m)',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'interaction',\n },\n E_INTERACTION_INVALID_EXTENSION_KEY: {\n code: 'E_INTERACTION_INVALID_EXTENSION_KEY',\n http_status: 400,\n title: 'Interaction Invalid Extension Key',\n description: 'Extension key does not match required format (reverse-DNS/name[@version])',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'interaction',\n },\n E_INTERACTION_INVALID_FORMAT: {\n code: 'E_INTERACTION_INVALID_FORMAT',\n http_status: 400,\n title: 'Interaction Invalid Format',\n description: 'Interaction evidence does not conform to InteractionEvidenceV01 schema',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'interaction',\n },\n E_INTERACTION_INVALID_KIND_FORMAT: {\n code: 'E_INTERACTION_INVALID_KIND_FORMAT',\n http_status: 400,\n title: 'Interaction Invalid Kind Format',\n description:\n 'Interaction kind does not match required format (lowercase, 2-128 chars, starts with letter)',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'interaction',\n },\n E_INTERACTION_INVALID_TIMING: {\n code: 'E_INTERACTION_INVALID_TIMING',\n http_status: 400,\n title: 'Interaction Invalid Timing',\n description:\n 'Timing constraint violated (completed_at < started_at or invalid datetime format)',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'interaction',\n },\n E_INTERACTION_KIND_RESERVED: {\n code: 'E_INTERACTION_KIND_RESERVED',\n http_status: 400,\n title: 'Interaction Kind Reserved',\n description:\n 'Interaction kind uses reserved prefix (peac.*, org.peacprotocol.*) but is not in the well-known registry',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'interaction',\n },\n E_INTERACTION_MISSING_ERROR_DETAIL: {\n code: 'E_INTERACTION_MISSING_ERROR_DETAIL',\n http_status: 400,\n title: 'Interaction Missing Error Detail',\n description: 'error_code or extensions required when result.status is error',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'interaction',\n },\n E_INTERACTION_MISSING_EXECUTOR: {\n code: 'E_INTERACTION_MISSING_EXECUTOR',\n http_status: 400,\n title: 'Interaction Missing Executor',\n description: 'Interaction evidence is missing required executor or executor.platform field',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'interaction',\n },\n E_INTERACTION_MISSING_ID: {\n code: 'E_INTERACTION_MISSING_ID',\n http_status: 400,\n title: 'Interaction Missing ID',\n description: 'Interaction evidence is missing required interaction_id field',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'interaction',\n },\n E_INTERACTION_MISSING_KIND: {\n code: 'E_INTERACTION_MISSING_KIND',\n http_status: 400,\n title: 'Interaction Missing Kind',\n description: 'Interaction evidence is missing required kind field',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'interaction',\n },\n E_INTERACTION_MISSING_RESULT: {\n code: 'E_INTERACTION_MISSING_RESULT',\n http_status: 400,\n title: 'Interaction Missing Result',\n description: 'result.status is required when output is present',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'interaction',\n },\n E_INTERACTION_MISSING_STARTED_AT: {\n code: 'E_INTERACTION_MISSING_STARTED_AT',\n http_status: 400,\n title: 'Interaction Missing Started At',\n description: 'Interaction evidence is missing required started_at field',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'interaction',\n },\n E_INTERACTION_MISSING_TARGET: {\n code: 'E_INTERACTION_MISSING_TARGET',\n http_status: 400,\n title: 'Interaction Missing Target',\n description:\n 'Kind prefix requires matching target field (tool.* needs tool, http.*/fs.* need resource)',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'interaction',\n },\n\n // Ucp error codes\n E_UCP_EVIDENCE_SERIALIZATION_FAILED: {\n code: 'E_UCP_EVIDENCE_SERIALIZATION_FAILED',\n http_status: 500,\n title: 'UCP Evidence Serialization Failed',\n description: 'Failed to serialize UCP evidence to YAML format',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'ucp',\n },\n E_UCP_KEY_ALGORITHM_MISMATCH: {\n code: 'E_UCP_KEY_ALGORITHM_MISMATCH',\n http_status: 401,\n title: 'UCP Key Algorithm Mismatch',\n description: 'Key type is not EC as required for ECDSA signatures',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'ucp',\n },\n E_UCP_KEY_CURVE_MISMATCH: {\n code: 'E_UCP_KEY_CURVE_MISMATCH',\n http_status: 401,\n title: 'UCP Key Curve Mismatch',\n description:\n 'Key curve does not match signature algorithm (ES256=P-256, ES384=P-384, ES512=P-521)',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'ucp',\n },\n E_UCP_KEY_NOT_FOUND: {\n code: 'E_UCP_KEY_NOT_FOUND',\n http_status: 401,\n title: 'UCP Key Not Found',\n description: 'Key ID from signature not found in business UCP profile',\n retryable: true,\n next_action: 'retry_after_delay',\n category: 'ucp',\n },\n E_UCP_ORDER_INVALID: {\n code: 'E_UCP_ORDER_INVALID',\n http_status: 400,\n title: 'UCP Order Invalid',\n description: 'UCP order object does not conform to expected schema',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'ucp',\n },\n E_UCP_ORDER_MISSING_ID: {\n code: 'E_UCP_ORDER_MISSING_ID',\n http_status: 400,\n title: 'UCP Order Missing ID',\n description: 'UCP order is missing required id field',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'ucp',\n },\n E_UCP_ORDER_MISSING_LINE_ITEMS: {\n code: 'E_UCP_ORDER_MISSING_LINE_ITEMS',\n http_status: 400,\n title: 'UCP Order Missing Line Items',\n description: 'UCP order is missing required line_items array',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'ucp',\n },\n E_UCP_ORDER_MISSING_TOTALS: {\n code: 'E_UCP_ORDER_MISSING_TOTALS',\n http_status: 400,\n title: 'UCP Order Missing Totals',\n description: 'UCP order is missing required totals array or total entry',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'ucp',\n },\n E_UCP_PAYLOAD_EMPTY: {\n code: 'E_UCP_PAYLOAD_EMPTY',\n http_status: 400,\n title: 'UCP Payload Empty',\n description: 'Webhook request body is empty',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'ucp',\n },\n E_UCP_PAYLOAD_NOT_JSON: {\n code: 'E_UCP_PAYLOAD_NOT_JSON',\n http_status: 400,\n title: 'UCP Payload Not JSON',\n description: 'Webhook request body is not valid JSON',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'ucp',\n },\n E_UCP_PAYLOAD_TOO_LARGE: {\n code: 'E_UCP_PAYLOAD_TOO_LARGE',\n http_status: 400,\n title: 'UCP Payload Too Large',\n description: 'Webhook request body exceeds maximum allowed size',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'ucp',\n },\n E_UCP_PROFILE_FETCH_FAILED: {\n code: 'E_UCP_PROFILE_FETCH_FAILED',\n http_status: 502,\n title: 'UCP Profile Fetch Failed',\n description: 'Failed to fetch business UCP profile from /.well-known/ucp',\n retryable: true,\n next_action: 'retry_after_delay',\n category: 'ucp',\n },\n E_UCP_PROFILE_INVALID: {\n code: 'E_UCP_PROFILE_INVALID',\n http_status: 502,\n title: 'UCP Profile Invalid',\n description: 'Business UCP profile does not conform to expected schema',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'ucp',\n },\n E_UCP_PROFILE_NO_SIGNING_KEYS: {\n code: 'E_UCP_PROFILE_NO_SIGNING_KEYS',\n http_status: 502,\n title: 'UCP Profile No Signing Keys',\n description: 'Business UCP profile has empty or missing signing_keys array',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'ucp',\n },\n E_UCP_SIGNATURE_ALGORITHM_UNSUPPORTED: {\n code: 'E_UCP_SIGNATURE_ALGORITHM_UNSUPPORTED',\n http_status: 400,\n title: 'UCP Signature Algorithm Unsupported',\n description: 'Signature algorithm is not ES256, ES384, or ES512',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'ucp',\n },\n E_UCP_SIGNATURE_B64_INVALID: {\n code: 'E_UCP_SIGNATURE_B64_INVALID',\n http_status: 400,\n title: 'UCP Signature b64 Invalid',\n description: \"b64=false requires 'b64' in 'crit' array per RFC 7797\",\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'ucp',\n },\n E_UCP_SIGNATURE_INVALID: {\n code: 'E_UCP_SIGNATURE_INVALID',\n http_status: 401,\n title: 'UCP Signature Invalid',\n description: 'Webhook signature verification failed against payload',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'ucp',\n },\n E_UCP_SIGNATURE_MALFORMED: {\n code: 'E_UCP_SIGNATURE_MALFORMED',\n http_status: 400,\n title: 'UCP Signature Malformed',\n description: 'Request-Signature header is not a valid detached JWS (RFC 7797)',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'ucp',\n },\n E_UCP_SIGNATURE_MISSING: {\n code: 'E_UCP_SIGNATURE_MISSING',\n http_status: 400,\n title: 'UCP Signature Missing',\n description: 'Request-Signature header is missing from UCP webhook request',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'ucp',\n },\n E_UCP_VERIFICATION_FAILED: {\n code: 'E_UCP_VERIFICATION_FAILED',\n http_status: 401,\n title: 'UCP Verification Failed',\n description: 'All verification attempts failed (raw and JCS canonicalized)',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'ucp',\n },\n\n // Validation error codes\n E_CONSTRAINT_VIOLATION: {\n code: 'E_CONSTRAINT_VIOLATION',\n http_status: 400,\n title: 'Kernel Constraint Violation',\n description:\n 'Receipt claims exceed a kernel constraint (max keys, max depth, max string length, max evidence bytes, or similar structural limit)',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'validation',\n },\n E_EVIDENCE_NOT_JSON: {\n code: 'E_EVIDENCE_NOT_JSON',\n http_status: 400,\n title: 'Evidence Not JSON-Safe',\n description:\n 'Evidence contains non-JSON-safe values (NaN, Infinity, undefined, BigInt, Date, Map, Set, functions, symbols, class instances, or cycles)',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'validation',\n },\n E_EXPIRED: {\n code: 'E_EXPIRED',\n http_status: 400,\n title: 'Receipt Expired',\n description: 'Receipt has exceeded its expiration time',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'validation',\n },\n E_INVALID_AMOUNT: {\n code: 'E_INVALID_AMOUNT',\n http_status: 400,\n title: 'Invalid Amount',\n description: 'Payment amount is invalid or out of allowed range',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'validation',\n },\n E_INVALID_AUDIENCE: {\n code: 'E_INVALID_AUDIENCE',\n http_status: 400,\n title: 'Invalid Audience',\n description: 'Receipt audience claim does not match expected value',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'validation',\n },\n E_INVALID_CURRENCY: {\n code: 'E_INVALID_CURRENCY',\n http_status: 400,\n title: 'Invalid Currency',\n description: 'Currency code is not a valid ISO 4217 code',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'validation',\n },\n E_INVALID_FORMAT: {\n code: 'E_INVALID_FORMAT',\n http_status: 400,\n title: 'Invalid Format',\n description: 'Receipt does not conform to JWS format',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'validation',\n },\n E_INVALID_ISSUER: {\n code: 'E_INVALID_ISSUER',\n http_status: 400,\n title: 'Invalid Issuer',\n description: 'Receipt issuer claim is invalid or untrusted',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'validation',\n },\n E_INVALID_RAIL: {\n code: 'E_INVALID_RAIL',\n http_status: 400,\n title: 'Invalid Payment Rail',\n description: 'Payment rail identifier is not recognized',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'validation',\n },\n E_INVALID_RECEIPT_ID: {\n code: 'E_INVALID_RECEIPT_ID',\n http_status: 400,\n title: 'Invalid Receipt ID',\n description: 'Receipt ID (rid) does not match expected value',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'validation',\n },\n E_INVALID_SUBJECT: {\n code: 'E_INVALID_SUBJECT',\n http_status: 400,\n title: 'Invalid Subject',\n description: 'Receipt subject claim does not match expected value',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'validation',\n },\n E_MISSING_EXP: {\n code: 'E_MISSING_EXP',\n http_status: 400,\n title: 'Missing Expiration',\n description: 'Receipt is missing required exp claim',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'validation',\n },\n E_MISSING_REQUIRED_CLAIM: {\n code: 'E_MISSING_REQUIRED_CLAIM',\n http_status: 400,\n title: 'Missing Required Claim',\n description: 'Receipt is missing a required JWT claim',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'validation',\n },\n E_NOT_YET_VALID: {\n code: 'E_NOT_YET_VALID',\n http_status: 400,\n title: 'Not Yet Valid',\n description: 'Receipt nbf (not before) time is in the future',\n retryable: true,\n next_action: 'retry_after_delay',\n category: 'validation',\n },\n E_PARSE_ATTESTATION_INVALID: {\n code: 'E_PARSE_ATTESTATION_INVALID',\n http_status: 400,\n title: 'Attestation Receipt Invalid',\n description: 'Receipt classified as attestation but fails attestation schema validation',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'validation',\n },\n E_PARSE_COMMERCE_INVALID: {\n code: 'E_PARSE_COMMERCE_INVALID',\n http_status: 400,\n title: 'Commerce Receipt Invalid',\n description:\n 'Receipt has commerce fields (amt/cur/payment) but fails commerce schema validation',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'validation',\n },\n E_PARSE_INVALID_INPUT: {\n code: 'E_PARSE_INVALID_INPUT',\n http_status: 400,\n title: 'Parse Invalid Input',\n description: 'Input to receipt parser is not a non-null object',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'validation',\n },\n\n // Verification error codes\n E_INVALID_SIGNATURE: {\n code: 'E_INVALID_SIGNATURE',\n http_status: 400,\n title: 'Invalid Signature',\n description: 'Receipt signature verification failed',\n retryable: false,\n next_action: 'abort',\n category: 'verification',\n },\n E_KEY_NOT_FOUND: {\n code: 'E_KEY_NOT_FOUND',\n http_status: 400,\n title: 'Key Not Found',\n description: 'Public key with specified kid not found in JWKS',\n retryable: false,\n next_action: 'retry_with_different_key',\n category: 'verification',\n },\n\n // Verifier error codes\n E_VERIFY_EXTENSION_TOO_LARGE: {\n code: 'E_VERIFY_EXTENSION_TOO_LARGE',\n http_status: 400,\n title: 'Extension Too Large',\n description: 'Receipt extension data exceeds maximum size limit (64 KB)',\n retryable: false,\n next_action: 'abort',\n category: 'verifier',\n },\n E_VERIFY_INSECURE_SCHEME_BLOCKED: {\n code: 'E_VERIFY_INSECURE_SCHEME_BLOCKED',\n http_status: 403,\n title: 'Insecure Scheme Blocked',\n description: 'Non-HTTPS URL encountered during issuer discovery (issuer URL or jwks_uri)',\n retryable: false,\n next_action: 'abort',\n category: 'verifier',\n },\n E_VERIFY_INVALID_TRANSPORT: {\n code: 'E_VERIFY_INVALID_TRANSPORT',\n http_status: 400,\n title: 'Invalid Transport',\n description:\n 'Multiple PEAC-Receipt or PEAC-Receipt-Pointer headers detected (ambiguous transport)',\n retryable: false,\n next_action: 'abort',\n category: 'verifier',\n },\n E_VERIFY_ISSUER_CONFIG_INVALID: {\n code: 'E_VERIFY_ISSUER_CONFIG_INVALID',\n http_status: 502,\n title: 'Issuer Config Invalid',\n description: 'peac-issuer.json is not valid JSON or does not conform to issuer config schema',\n retryable: false,\n next_action: 'abort',\n category: 'verifier',\n },\n E_VERIFY_ISSUER_CONFIG_MISSING: {\n code: 'E_VERIFY_ISSUER_CONFIG_MISSING',\n http_status: 502,\n title: 'Issuer Config Missing',\n description: 'peac-issuer.json not found or not fetchable at issuer origin',\n retryable: true,\n next_action: 'retry_after_delay',\n category: 'verifier',\n },\n E_VERIFY_ISSUER_MISMATCH: {\n code: 'E_VERIFY_ISSUER_MISMATCH',\n http_status: 403,\n title: 'Issuer Mismatch',\n description: 'issuer field in peac-issuer.json does not match the expected issuer origin',\n retryable: false,\n next_action: 'abort',\n category: 'verifier',\n },\n E_VERIFY_ISSUER_NOT_ALLOWED: {\n code: 'E_VERIFY_ISSUER_NOT_ALLOWED',\n http_status: 403,\n title: 'Issuer Not Allowed',\n description: 'Receipt issuer is not in the verifier policy allowlist',\n retryable: false,\n next_action: 'abort',\n category: 'verifier',\n },\n E_VERIFY_JWKS_INVALID: {\n code: 'E_VERIFY_JWKS_INVALID',\n http_status: 502,\n title: 'JWKS Invalid',\n description: 'JWKS response is not valid JSON or missing required keys array',\n retryable: false,\n next_action: 'abort',\n category: 'verifier',\n },\n E_VERIFY_JWKS_TOO_LARGE: {\n code: 'E_VERIFY_JWKS_TOO_LARGE',\n http_status: 400,\n title: 'JWKS Too Large',\n description: 'JWKS response exceeds maximum size limit (64 KB)',\n retryable: false,\n next_action: 'abort',\n category: 'verifier',\n },\n E_VERIFY_JWKS_TOO_MANY_KEYS: {\n code: 'E_VERIFY_JWKS_TOO_MANY_KEYS',\n http_status: 400,\n title: 'JWKS Too Many Keys',\n description: 'JWKS contains more than maximum allowed keys (20)',\n retryable: false,\n next_action: 'abort',\n category: 'verifier',\n },\n E_VERIFY_JWKS_URI_INVALID: {\n code: 'E_VERIFY_JWKS_URI_INVALID',\n http_status: 502,\n title: 'JWKS URI Invalid',\n description: 'jwks_uri in peac-issuer.json is not a valid HTTPS URL',\n retryable: false,\n next_action: 'abort',\n category: 'verifier',\n },\n E_VERIFY_KEY_FETCH_BLOCKED: {\n code: 'E_VERIFY_KEY_FETCH_BLOCKED',\n http_status: 403,\n title: 'Key Fetch Blocked',\n description:\n 'JWKS discovery blocked by SSRF protection (private IP, non-HTTPS, or blocked redirect)',\n retryable: false,\n next_action: 'abort',\n category: 'verifier',\n },\n E_VERIFY_KEY_FETCH_FAILED: {\n code: 'E_VERIFY_KEY_FETCH_FAILED',\n http_status: 502,\n title: 'Key Fetch Failed',\n description: 'Network error while fetching JWKS from issuer',\n retryable: true,\n next_action: 'retry_after_delay',\n category: 'verifier',\n },\n E_VERIFY_KEY_FETCH_TIMEOUT: {\n code: 'E_VERIFY_KEY_FETCH_TIMEOUT',\n http_status: 504,\n title: 'Key Fetch Timeout',\n description: 'JWKS discovery timed out (5 second limit)',\n retryable: true,\n next_action: 'retry_after_delay',\n category: 'verifier',\n },\n E_VERIFY_MALFORMED_RECEIPT: {\n code: 'E_VERIFY_MALFORMED_RECEIPT',\n http_status: 400,\n title: 'Malformed Receipt',\n description: 'Cannot parse receipt as JWS Compact Serialization',\n retryable: false,\n next_action: 'abort',\n category: 'verifier',\n },\n E_VERIFY_POINTER_DIGEST_MISMATCH: {\n code: 'E_VERIFY_POINTER_DIGEST_MISMATCH',\n http_status: 400,\n title: 'Pointer Digest Mismatch',\n description: 'Fetched receipt SHA-256 digest does not match pointer declaration',\n retryable: false,\n next_action: 'abort',\n category: 'verifier',\n },\n E_VERIFY_POINTER_FETCH_BLOCKED: {\n code: 'E_VERIFY_POINTER_FETCH_BLOCKED',\n http_status: 403,\n title: 'Pointer Fetch Blocked',\n description:\n 'Pointer URL fetch blocked by SSRF protection (private IP, non-HTTPS, or blocked redirect)',\n retryable: false,\n next_action: 'abort',\n category: 'verifier',\n },\n E_VERIFY_POINTER_FETCH_FAILED: {\n code: 'E_VERIFY_POINTER_FETCH_FAILED',\n http_status: 502,\n title: 'Pointer Fetch Failed',\n description: 'Network error while fetching receipt from pointer URL',\n retryable: true,\n next_action: 'retry_after_delay',\n category: 'verifier',\n },\n E_VERIFY_POINTER_FETCH_TIMEOUT: {\n code: 'E_VERIFY_POINTER_FETCH_TIMEOUT',\n http_status: 504,\n title: 'Pointer Fetch Timeout',\n description: 'Pointer URL fetch timed out (5 second limit)',\n retryable: true,\n next_action: 'retry_after_delay',\n category: 'verifier',\n },\n E_VERIFY_POINTER_FETCH_TOO_LARGE: {\n code: 'E_VERIFY_POINTER_FETCH_TOO_LARGE',\n http_status: 413,\n title: 'Pointer Fetch Too Large',\n description: 'Pointer URL response exceeds maximum size limit (256 KB)',\n retryable: false,\n next_action: 'abort',\n category: 'verifier',\n },\n E_VERIFY_POLICY_VIOLATION: {\n code: 'E_VERIFY_POLICY_VIOLATION',\n http_status: 403,\n title: 'Policy Violation',\n description: 'Receipt violates verifier trust policy',\n retryable: false,\n next_action: 'abort',\n category: 'verifier',\n },\n E_VERIFY_RECEIPT_TOO_LARGE: {\n code: 'E_VERIFY_RECEIPT_TOO_LARGE',\n http_status: 413,\n title: 'Receipt Too Large',\n description: 'Receipt exceeds maximum size limit (256 KB)',\n retryable: false,\n next_action: 'abort',\n category: 'verifier',\n },\n E_VERIFY_SCHEMA_INVALID: {\n code: 'E_VERIFY_SCHEMA_INVALID',\n http_status: 400,\n title: 'Schema Invalid',\n description: 'Receipt claims do not conform to expected schema',\n retryable: false,\n next_action: 'abort',\n category: 'verifier',\n },\n\n // Workflow error codes\n E_WORKFLOW_CONTEXT_INVALID: {\n code: 'E_WORKFLOW_CONTEXT_INVALID',\n http_status: 400,\n title: 'Invalid Workflow Context',\n description: 'Workflow context does not conform to WorkflowContextSchema',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'workflow',\n },\n E_WORKFLOW_CYCLE_DETECTED: {\n code: 'E_WORKFLOW_CYCLE_DETECTED',\n http_status: 400,\n title: 'Workflow Cycle Detected',\n description: 'Workflow DAG contains a cycle (not acyclic)',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'workflow',\n },\n E_WORKFLOW_DAG_INVALID: {\n code: 'E_WORKFLOW_DAG_INVALID',\n http_status: 400,\n title: 'Invalid Workflow DAG',\n description:\n 'Workflow DAG semantics violated (self-parent, duplicate parents, or cycle detected)',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'workflow',\n },\n E_WORKFLOW_ID_INVALID: {\n code: 'E_WORKFLOW_ID_INVALID',\n http_status: 400,\n title: 'Invalid Workflow ID',\n description: 'Workflow ID does not match required format (wf_{ulid|uuid})',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'workflow',\n },\n E_WORKFLOW_LIMIT_EXCEEDED: {\n code: 'E_WORKFLOW_LIMIT_EXCEEDED',\n http_status: 400,\n title: 'Workflow Limit Exceeded',\n description: 'Workflow exceeds defined limits (parent count, ID length, etc.)',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'workflow',\n },\n E_WORKFLOW_PARENT_NOT_FOUND: {\n code: 'E_WORKFLOW_PARENT_NOT_FOUND',\n http_status: 400,\n title: 'Parent Step Not Found',\n description: 'Referenced parent step ID does not exist in the workflow',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'workflow',\n },\n E_WORKFLOW_STEP_ID_INVALID: {\n code: 'E_WORKFLOW_STEP_ID_INVALID',\n http_status: 400,\n title: 'Invalid Step ID',\n description: 'Step ID does not match required format (step_{ulid|uuid})',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'workflow',\n },\n E_WORKFLOW_SUMMARY_INVALID: {\n code: 'E_WORKFLOW_SUMMARY_INVALID',\n http_status: 400,\n title: 'Invalid Workflow Summary',\n description: 'Workflow summary attestation does not conform to schema',\n retryable: false,\n next_action: 'retry_with_different_input',\n category: 'workflow',\n },\n};\n\n/**\n * Get error definition by code\n */\nexport function getError(code: string): ErrorDefinition | undefined {\n return ERRORS[code];\n}\n\n/**\n * Check if error is retryable\n */\nexport function isRetryable(code: string): boolean {\n return ERRORS[code]?.retryable ?? false;\n}\n\n/**\n * Bundle error codes (for @peac/audit)\n */\nexport const BUNDLE_ERRORS = {\n DUPLICATE_RECEIPT: 'E_BUNDLE_DUPLICATE_RECEIPT',\n HASH_MISMATCH: 'E_BUNDLE_HASH_MISMATCH',\n INVALID_FORMAT: 'E_BUNDLE_INVALID_FORMAT',\n KEY_MISSING: 'E_BUNDLE_KEY_MISSING',\n MANIFEST_INVALID: 'E_BUNDLE_MANIFEST_INVALID',\n MANIFEST_MISSING: 'E_BUNDLE_MANIFEST_MISSING',\n MISSING_KEYS: 'E_BUNDLE_MISSING_KEYS',\n MISSING_RECEIPTS: 'E_BUNDLE_MISSING_RECEIPTS',\n PATH_TRAVERSAL: 'E_BUNDLE_PATH_TRAVERSAL',\n POLICY_HASH_MISMATCH: 'E_BUNDLE_POLICY_HASH_MISMATCH',\n RECEIPTS_UNORDERED: 'E_BUNDLE_RECEIPTS_UNORDERED',\n RECEIPT_INVALID: 'E_BUNDLE_RECEIPT_INVALID',\n SIGNATURE_INVALID: 'E_BUNDLE_SIGNATURE_INVALID',\n SIZE_EXCEEDED: 'E_BUNDLE_SIZE_EXCEEDED',\n TIME_RANGE_INVALID: 'E_BUNDLE_TIME_RANGE_INVALID',\n} as const;\n\n/**\n * Dispute error codes\n */\nexport const DISPUTE_ERRORS = {\n DUPLICATE: 'E_DISPUTE_DUPLICATE',\n EXPIRED: 'E_DISPUTE_EXPIRED',\n INVALID_FORMAT: 'E_DISPUTE_INVALID_FORMAT',\n INVALID_GROUNDS: 'E_DISPUTE_INVALID_GROUNDS',\n INVALID_ID: 'E_DISPUTE_INVALID_ID',\n INVALID_STATE: 'E_DISPUTE_INVALID_STATE',\n INVALID_TARGET_TYPE: 'E_DISPUTE_INVALID_TARGET_TYPE',\n INVALID_TRANSITION: 'E_DISPUTE_INVALID_TRANSITION',\n INVALID_TYPE: 'E_DISPUTE_INVALID_TYPE',\n MISSING_RESOLUTION: 'E_DISPUTE_MISSING_RESOLUTION',\n NOT_YET_VALID: 'E_DISPUTE_NOT_YET_VALID',\n OTHER_REQUIRES_DESCRIPTION: 'E_DISPUTE_OTHER_REQUIRES_DESCRIPTION',\n RESOLUTION_NOT_ALLOWED: 'E_DISPUTE_RESOLUTION_NOT_ALLOWED',\n TARGET_NOT_FOUND: 'E_DISPUTE_TARGET_NOT_FOUND',\n} as const;\n","/**\n * PEAC Protocol Registries\n * Derived from specs/kernel/registries.json\n *\n * NOTE: This file is manually synced for v0.9.15.\n * From v0.9.16+, this will be auto-generated via codegen.\n */\n\nimport type {\n PaymentRailEntry,\n ControlEngineEntry,\n TransportMethodEntry,\n AgentProtocolEntry,\n} from './types.js';\n\n/**\n * Payment Rails Registry\n * Settlement layer identifiers\n */\nexport const PAYMENT_RAILS: readonly PaymentRailEntry[] = [\n {\n id: 'x402',\n category: 'agentic-payment',\n description: 'HTTP 402-based paid call receipts',\n reference: 'https://www.x402.org/',\n status: 'informational',\n },\n {\n id: 'l402',\n category: 'agentic-payment',\n description: 'Lightning HTTP 402 Protocol (LSAT-based)',\n reference: 'https://docs.lightning.engineering/the-lightning-network/l402',\n status: 'informational',\n },\n {\n id: 'card-network',\n category: 'card',\n description: 'Generic card network authorizations/clearing',\n reference: null,\n status: 'informational',\n },\n {\n id: 'upi',\n category: 'account-to-account',\n description: 'Unified Payments Interface',\n reference: 'https://www.npci.org.in/',\n status: 'informational',\n },\n] as const;\n\n/**\n * Control Engines Registry\n * Governance and authorization engine identifiers\n */\nexport const CONTROL_ENGINES: readonly ControlEngineEntry[] = [\n {\n id: 'spend-control-service',\n category: 'limits',\n description: 'Generic spend control decisions (per-tx, daily, monthly limits)',\n reference: null,\n status: 'informational',\n },\n {\n id: 'risk-engine',\n category: 'fraud',\n description: 'Generic risk/fraud scoring engine',\n reference: null,\n status: 'informational',\n },\n {\n id: 'mandate-service',\n category: 'mandate',\n description: 'Generic enterprise mandate/approval chain evaluator',\n reference: null,\n status: 'informational',\n },\n] as const;\n\n/**\n * Transport Methods Registry\n * Transport-layer binding identifiers\n */\nexport const TRANSPORT_METHODS: readonly TransportMethodEntry[] = [\n {\n id: 'dpop',\n category: 'proof-of-possession',\n description: 'Demonstrating Proof-of-Possession at the Application Layer',\n reference: 'https://www.rfc-editor.org/rfc/rfc9449',\n status: 'informational',\n },\n {\n id: 'http-signature',\n category: 'message-signature',\n description: 'HTTP Message Signatures',\n reference: 'https://www.rfc-editor.org/rfc/rfc9421',\n status: 'informational',\n },\n {\n id: 'none',\n category: 'none',\n description: 'No transport binding',\n reference: null,\n status: 'informational',\n },\n] as const;\n\n/**\n * Agent Protocols Registry\n * Agentic protocol integration identifiers\n */\nexport const AGENT_PROTOCOLS: readonly AgentProtocolEntry[] = [\n {\n id: 'mcp',\n category: 'tool-protocol',\n description: 'Model Context Protocol (MCP)',\n reference: 'https://modelcontextprotocol.io/',\n status: 'informational',\n },\n {\n id: 'acp',\n category: 'commerce-protocol',\n description: 'Agentic Commerce Protocol',\n reference: null,\n status: 'informational',\n },\n {\n id: 'ap2',\n category: 'agent-protocol',\n description: 'Google Agent Protocol v2',\n reference: null,\n status: 'informational',\n },\n {\n id: 'tap',\n category: 'card-protocol',\n description: 'Trusted Agent Protocol (Visa TAP)',\n reference: 'https://developer.visa.com/',\n status: 'informational',\n },\n] as const;\n\n/**\n * All registries export\n */\nexport const REGISTRIES = {\n payment_rails: PAYMENT_RAILS,\n control_engines: CONTROL_ENGINES,\n transport_methods: TRANSPORT_METHODS,\n agent_protocols: AGENT_PROTOCOLS,\n} as const;\n\n/**\n * Find payment rail by ID\n */\nexport function findPaymentRail(id: string): PaymentRailEntry | undefined {\n return PAYMENT_RAILS.find((rail) => rail.id === id);\n}\n\n/**\n * Find control engine by ID\n */\nexport function findControlEngine(id: string): ControlEngineEntry | undefined {\n return CONTROL_ENGINES.find((engine) => engine.id === id);\n}\n\n/**\n * Find transport method by ID\n */\nexport function findTransportMethod(id: string): TransportMethodEntry | undefined {\n return TRANSPORT_METHODS.find((method) => method.id === id);\n}\n\n/**\n * Find agent protocol by ID\n */\nexport function findAgentProtocol(id: string): AgentProtocolEntry | undefined {\n return AGENT_PROTOCOLS.find((protocol) => protocol.id === id);\n}\n","/**\n * HTTP Utilities for PEAC Protocol\n *\n * Cache safety and header management helpers for adapters and middleware.\n */\n\nimport { HEADERS } from './constants.js';\n\n/**\n * Headers that affect response behavior and MUST be included in Vary\n * when enforcement decisions depend on them.\n */\nexport const VARY_HEADERS = [HEADERS.purpose, HEADERS.receipt] as const;\n\n/**\n * Apply Vary header for purpose-aware caching.\n *\n * MUST be called when response behavior varies based on PEAC-Purpose header.\n * Prevents cache poisoning when different purposes get different responses.\n *\n * @example\n * ```ts\n * // In Cloudflare Worker\n * const response = new Response(body, { headers });\n * applyPurposeVary(response.headers);\n *\n * // In Express/Node\n * applyPurposeVary(res);\n * ```\n */\nexport function applyPurposeVary(\n headers:\n | Headers\n | { setHeader: (name: string, value: string) => void }\n | { set: (name: string, value: string) => void }\n): void {\n const purposeHeader = HEADERS.purpose;\n\n if ('append' in headers && typeof headers.append === 'function') {\n // Web API Headers (Cloudflare, Deno, etc.)\n const existing = headers.get('Vary') || '';\n if (!existing.toLowerCase().includes(purposeHeader.toLowerCase())) {\n headers.append('Vary', purposeHeader);\n }\n } else if ('setHeader' in headers && typeof headers.setHeader === 'function') {\n // Node.js ServerResponse\n const existing = (\n headers as { getHeader?: (name: string) => string | string[] | number | undefined }\n ).getHeader?.('Vary');\n const existingStr = Array.isArray(existing) ? existing.join(', ') : String(existing || '');\n if (!existingStr.toLowerCase().includes(purposeHeader.toLowerCase())) {\n headers.setHeader('Vary', existingStr ? `${existingStr}, ${purposeHeader}` : purposeHeader);\n }\n } else if ('set' in headers && typeof headers.set === 'function') {\n // Map-like headers (Hono, etc.)\n headers.set('Vary', purposeHeader);\n }\n}\n\n/**\n * Get all PEAC-related headers that should be included in Vary\n * for complete cache safety.\n *\n * @returns Comma-separated list of headers for Vary\n */\nexport function getPeacVaryHeaders(): string {\n return VARY_HEADERS.join(', ');\n}\n\n/**\n * Check if a response needs Vary header based on purpose enforcement.\n *\n * @param purposeEnforced - Whether purpose was enforced for this response\n * @returns true if Vary: PEAC-Purpose should be set\n */\nexport function needsPurposeVary(purposeEnforced: boolean): boolean {\n return purposeEnforced;\n}\n","/**\n * Evidence Carrier Contract types (DD-124)\n *\n * Pure TypeScript types for the universal evidence carry interface.\n * Zero runtime dependencies: this module exports only types.\n *\n * The Evidence Carrier Contract defines how any protocol (MCP, A2A, ACP,\n * UCP, x402, HTTP) carries PEAC receipts without kernel changes.\n */\n\n// ---------------------------------------------------------------------------\n// Constants\n// ---------------------------------------------------------------------------\n\n/**\n * Canonical HTTP header name for PEAC receipts (DD-127).\n *\n * The wire token is exactly \"PEAC-Receipt\" (mixed-case, hyphenated).\n * This is the only valid spelling in conformance fixtures and attach() output.\n * HTTP header lookups SHOULD be case-insensitive per RFC 9110, but conformance\n * fixtures and attach() output MUST use this exact spelling.\n */\nexport const PEAC_RECEIPT_HEADER = 'PEAC-Receipt' as const;\n\n/**\n * Canonical HTTP header name for receipt URL locator hint (DD-135).\n *\n * HTTPS-only, max 2048 chars, no credentials.\n * MUST NOT trigger implicit fetch (DD-55).\n */\nexport const PEAC_RECEIPT_URL_HEADER = 'PEAC-Receipt-URL' as const;\n\n// ---------------------------------------------------------------------------\n// Primitives\n// ---------------------------------------------------------------------------\n\n/** Content-addressed receipt reference: SHA-256 of the compact JWS bytes */\nexport type ReceiptRef = `sha256:${string}`;\n\n/** Carrier format: embed (inline) or reference (URL/pointer) */\nexport type CarrierFormat = 'embed' | 'reference';\n\n// ---------------------------------------------------------------------------\n// Core carrier type\n// ---------------------------------------------------------------------------\n\n/**\n * Universal evidence carrier.\n *\n * Every protocol-specific adapter produces and consumes this shape.\n * Fields marked optional are SHOULD or MAY per the carrier contract spec.\n */\nexport interface PeacEvidenceCarrier {\n /** Content-addressed receipt reference (MUST): sha256:<hex64> */\n receipt_ref: ReceiptRef;\n /** Compact JWS of the signed receipt (SHOULD for embed format) */\n receipt_jws?: string;\n /**\n * Locator hint for detached receipt resolution (DD-135).\n * HTTPS-only, max 2048 chars, no credentials.\n * MUST NOT trigger implicit fetch (DD-55).\n * If a caller fetches, it MUST verify sha256(receipt_jws) == receipt_ref.\n */\n receipt_url?: string;\n /** Policy binding hash for verification (MAY) */\n policy_binding?: string;\n /** Actor binding identifier (MAY) */\n actor_binding?: string;\n /** Request nonce for replay protection (MAY) */\n request_nonce?: string;\n /** Reference to a verification report (MAY) */\n verification_report_ref?: string;\n /** Reference to a use policy (MAY) */\n use_policy_ref?: string;\n /** Reference to a representation (MAY) */\n representation_ref?: string;\n /** Reference to an attestation (MAY) */\n attestation_ref?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Carrier metadata\n// ---------------------------------------------------------------------------\n\n/**\n * Transport-level metadata describing how a carrier is placed.\n *\n * Used by validateConstraints() to enforce transport-specific size limits\n * and format requirements (DD-127).\n */\nexport interface CarrierMeta {\n /** Transport identifier (e.g. 'mcp', 'a2a', 'acp', 'ucp', 'x402', 'http') */\n transport: string;\n /** Carrier format: embed or reference */\n format: CarrierFormat;\n /** Maximum carrier size in bytes for this transport */\n max_size: number;\n /** Fields that have been redacted (MAY) */\n redaction?: string[];\n}\n\n// ---------------------------------------------------------------------------\n// Validation result\n// ---------------------------------------------------------------------------\n\n/** Result of carrier constraint validation */\nexport interface CarrierValidationResult {\n valid: boolean;\n violations: string[];\n}\n\n// ---------------------------------------------------------------------------\n// Adapter interface\n// ---------------------------------------------------------------------------\n\n/**\n * Protocol-specific carrier adapter (DD-124).\n *\n * Each protocol mapping implements this interface to attach/extract\n * PEAC evidence carriers in the protocol's native format.\n *\n * @typeParam TInput - The protocol-specific input type (e.g. A2A TaskStatus)\n * @typeParam TOutput - The protocol-specific output type\n */\nexport interface CarrierAdapter<TInput, TOutput> {\n /**\n * Extract PEAC evidence carriers from a protocol message.\n * Returns null if no carrier is present.\n */\n extract(input: TInput): { receipts: PeacEvidenceCarrier[]; meta: CarrierMeta } | null;\n\n /**\n * Attach PEAC evidence carriers to a protocol message.\n * Returns the modified output with carriers placed per protocol conventions.\n */\n attach(output: TOutput, carriers: PeacEvidenceCarrier[], meta?: CarrierMeta): TOutput;\n\n /**\n * Validate a carrier against transport-specific constraints (DD-127, DD-129).\n * Takes CarrierMeta for transport-aware size and format validation.\n */\n validateConstraints(carrier: PeacEvidenceCarrier, meta: CarrierMeta): CarrierValidationResult;\n}\n"]}
|
package/dist/types.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/error-categories.generated.ts"],"names":[],"mappings":";;;AAaO,IAAM,gBAAA,GAAmB;AAAA,EAC9B,aAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,gBAAA;AAAA,EACA,aAAA;AAAA,EACA,KAAA;AAAA,EACA,YAAA;AAAA,EACA,cAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF","file":"types.cjs","sourcesContent":["/**\n * PEAC Protocol Error Categories\n *\n * AUTO-GENERATED from specs/kernel/errors.json\n * DO NOT EDIT MANUALLY - run: npx tsx scripts/codegen-errors.ts\n * Spec version: 0.11.
|
|
1
|
+
{"version":3,"sources":["../src/error-categories.generated.ts"],"names":[],"mappings":";;;AAaO,IAAM,gBAAA,GAAmB;AAAA,EAC9B,aAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,gBAAA;AAAA,EACA,aAAA;AAAA,EACA,KAAA;AAAA,EACA,YAAA;AAAA,EACA,cAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF","file":"types.cjs","sourcesContent":["/**\n * PEAC Protocol Error Categories\n *\n * AUTO-GENERATED from specs/kernel/errors.json\n * DO NOT EDIT MANUALLY - run: npx tsx scripts/codegen-errors.ts\n * Spec version: 0.11.2\n */\n\n/**\n * Canonical error categories derived from specs/kernel/errors.json.\n * This is the single source of truth for all error category definitions.\n * Sorted alphabetically. This ordering is a codegen invariant.\n */\nexport const ERROR_CATEGORIES = [\n 'attribution',\n 'bundle',\n 'control',\n 'dispute',\n 'identity',\n 'infrastructure',\n 'interaction',\n 'ucp',\n 'validation',\n 'verification',\n 'verifier',\n 'workflow',\n] as const;\n\n/**\n * Error category type - union of all categories in specs/kernel/errors.json\n */\nexport type ErrorCategory = (typeof ERROR_CATEGORIES)[number];\n"]}
|