@everfur/sdk 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/CHANGELOG.md +326 -0
  2. package/README.md +24 -16
  3. package/dist/{Chat-DZpYH8Uh.d.ts → Chat-Cv9EYMYA.d.ts} +3 -3
  4. package/dist/{Chat-bATY4atj.d.cts → Chat-s2vcPbw3.d.cts} +3 -3
  5. package/dist/{DepthViews-qBIoA48w.d.ts → DepthViews-CVxUHOJ-.d.ts} +1 -1
  6. package/dist/{DepthViews-C4DC4Kom.d.cts → DepthViews-Cz7mSW7p.d.cts} +1 -1
  7. package/dist/{DepthViews-dLTizxjr.d.ts → DepthViews-DNRY0Ugm.d.ts} +1 -1
  8. package/dist/{DepthViews-BpHUbjSY.d.cts → DepthViews-DvNixbxg.d.cts} +1 -1
  9. package/dist/{ErrorPolicyPort-D22LUVrK.d.ts → ErrorPolicyPort-DwSnmGcX.d.ts} +1 -1
  10. package/dist/{ErrorPolicyPort-D6CybiqJ.d.cts → ErrorPolicyPort-NFDPe-5w.d.cts} +1 -1
  11. package/dist/{EverfurError-DmELDpXp.d.cts → EverfurError-pEXDbUJ1.d.cts} +9 -1
  12. package/dist/{EverfurError-DmELDpXp.d.ts → EverfurError-pEXDbUJ1.d.ts} +9 -1
  13. package/dist/{EverfurResult-ZtH-YV1h.d.cts → EverfurResult-dtl8ERAw.d.cts} +1 -1
  14. package/dist/{EverfurResult-SGvHKsCB.d.ts → EverfurResult-sKkoXew0.d.ts} +1 -1
  15. package/dist/IntakeMedia-BFZfBLjB.d.cts +116 -0
  16. package/dist/{BookedScreen-DFJcgf1e.d.ts → IntakeMedia-BH0fYDT2.d.cts} +58 -2
  17. package/dist/{BookedScreen-R5X_Zrlh.d.cts → IntakeMedia-Bavl7E4Z.d.ts} +58 -2
  18. package/dist/IntakeMedia-C8GlN_GK.d.ts +116 -0
  19. package/dist/animations/index.cjs +109 -1
  20. package/dist/animations/index.d.cts +6 -6
  21. package/dist/animations/index.d.ts +6 -6
  22. package/dist/animations/index.js +109 -1
  23. package/dist/{attachments-CPRFfoHT.d.ts → attachments-BaslXMdS.d.ts} +3 -3
  24. package/dist/{attachments-CUOGILir.d.cts → attachments-DbFwz4iq.d.cts} +7 -7
  25. package/dist/{attachments-Ce06TWqe.d.cts → attachments-y3EcOX_w.d.cts} +3 -3
  26. package/dist/{attachments-CXAnZcEg.d.ts → attachments-y_aO4hlk.d.ts} +7 -7
  27. package/dist/{bookingCopy-BwVopcoV.d.cts → bookingCopy-4i1R7klo.d.cts} +15 -7
  28. package/dist/{bookingCopy-DFTv9w6J.d.ts → bookingCopy-B3UMITD-.d.ts} +15 -7
  29. package/dist/{branding-ytH4jJq1.d.ts → branding-BYEqU855.d.ts} +1 -1
  30. package/dist/{branding-Bio5MM6g.d.cts → branding-BwEu68C8.d.cts} +1 -1
  31. package/dist/{callRoom-7wrE3RP2.d.ts → callRoom-B1qq_D-4.d.ts} +1 -1
  32. package/dist/{callRoom-B_EqaUzx.d.cts → callRoom-DfZTWFXh.d.cts} +1 -1
  33. package/dist/{casesRepository-CJchNp3x.d.cts → casesRepository-B6Z0XBIb.d.cts} +2 -2
  34. package/dist/{casesRepository-DAVcY3jC.d.ts → casesRepository-SI0zp5YH.d.ts} +2 -2
  35. package/dist/chat/index.cjs +333 -1
  36. package/dist/chat/index.d.cts +12 -12
  37. package/dist/chat/index.d.ts +12 -12
  38. package/dist/chat/index.js +333 -1
  39. package/dist/client/index.cjs +115 -11
  40. package/dist/client/index.d.cts +14 -14
  41. package/dist/client/index.d.ts +14 -14
  42. package/dist/client/index.js +115 -11
  43. package/dist/{config-ZxwCylac.d.ts → config-Cvo47voG.d.ts} +3 -3
  44. package/dist/{config-h5h6TsHL.d.cts → config-v5k6NsK_.d.cts} +3 -3
  45. package/dist/consent/index.cjs +112 -1
  46. package/dist/consent/index.d.cts +9 -9
  47. package/dist/consent/index.d.ts +9 -9
  48. package/dist/consent/index.js +112 -1
  49. package/dist/{context-CtsAgJnc.d.cts → context-BZOtJbBO.d.cts} +9 -9
  50. package/dist/{context-DtPIshVA.d.ts → context-cZ7NZ0sG.d.ts} +9 -9
  51. package/dist/{copy-Cg89Qoal.d.ts → copy-CZBUHbyS.d.ts} +5 -5
  52. package/dist/{copy-CaWaplQc.d.cts → copy-ChJupm1p.d.cts} +5 -5
  53. package/dist/core/index.cjs +140 -13
  54. package/dist/core/index.d.cts +19 -19
  55. package/dist/core/index.d.ts +19 -19
  56. package/dist/core/index.js +140 -13
  57. package/dist/{depth-EXZYEO70.d.cts → depth-CRyU7-pf.d.cts} +8 -7
  58. package/dist/{depth-Bo4bAwcn.d.ts → depth-vNpwOkZ8.d.ts} +8 -7
  59. package/dist/{entitlementRepository-BYtVb1oU.d.cts → entitlementRepository-Bv8nSYRd.d.cts} +4 -4
  60. package/dist/{entitlementRepository-DcbIx8yV.d.ts → entitlementRepository-CUdxbQrP.d.ts} +4 -4
  61. package/dist/{identity-EC5-apbY.d.ts → identity-B8GkH53J.d.ts} +2 -2
  62. package/dist/{identity-b5Vp32Vp.d.cts → identity-BHaMJ3KK.d.cts} +2 -2
  63. package/dist/index.cjs +363 -12
  64. package/dist/index.d.cts +19 -19
  65. package/dist/index.d.ts +19 -19
  66. package/dist/index.js +363 -12
  67. package/dist/{models-DSqA5Ahs.d.ts → models-CrbUwbuS.d.ts} +1 -1
  68. package/dist/{models-Bn2z0NNo.d.cts → models-DzvqEjMm.d.cts} +1 -1
  69. package/dist/notifications/index.cjs +94 -2
  70. package/dist/notifications/index.d.cts +5 -5
  71. package/dist/notifications/index.d.ts +5 -5
  72. package/dist/notifications/index.js +94 -2
  73. package/dist/{pets-DM8QvKLo.d.cts → pets-BI7Ji8hi.d.cts} +2 -2
  74. package/dist/{pets-B_27_agU.d.ts → pets-Dnn-DK1T.d.ts} +2 -2
  75. package/dist/{petsRepository-CuYZZaI5.d.ts → petsRepository-B2lO1sKS.d.ts} +2 -2
  76. package/dist/{petsRepository-BJsJ4cju.d.cts → petsRepository-BP9nhM1R.d.cts} +2 -2
  77. package/dist/photo/index.cjs +131 -1
  78. package/dist/photo/index.d.cts +3 -3
  79. package/dist/photo/index.d.ts +3 -3
  80. package/dist/photo/index.js +131 -1
  81. package/dist/{ports-nXHf50_X.d.ts → ports-BUXF0Rp3.d.ts} +7 -7
  82. package/dist/{ports-ZmJYgd5I.d.cts → ports-C40S2V14.d.cts} +7 -7
  83. package/dist/records/depth/index.cjs +200 -2
  84. package/dist/records/depth/index.d.cts +11 -11
  85. package/dist/records/depth/index.d.ts +11 -11
  86. package/dist/records/depth/index.js +200 -2
  87. package/dist/records/index.cjs +742 -4
  88. package/dist/records/index.d.cts +22 -14
  89. package/dist/records/index.d.ts +22 -14
  90. package/dist/records/index.js +742 -4
  91. package/dist/{requestFunnel-Ve9BshTB.d.ts → requestFunnel-BrOijMcw.d.ts} +5 -5
  92. package/dist/{requestFunnel-C_cZXhIA.d.cts → requestFunnel-BxNVGyGm.d.cts} +5 -5
  93. package/dist/{runtimeTypes-ByKsp8hm.d.ts → runtimeTypes-CvI1ZH8j.d.ts} +7 -7
  94. package/dist/{runtimeTypes-D155OlBW.d.cts → runtimeTypes-DOO3f-W-.d.cts} +7 -7
  95. package/dist/server/events/index.cjs +92 -2
  96. package/dist/server/events/index.d.cts +4 -4
  97. package/dist/server/events/index.d.ts +4 -4
  98. package/dist/server/events/index.js +92 -2
  99. package/dist/server/index.cjs +95 -2
  100. package/dist/server/index.d.cts +5 -5
  101. package/dist/server/index.d.ts +5 -5
  102. package/dist/server/index.js +95 -2
  103. package/dist/televet/booking/index.cjs +394 -4
  104. package/dist/televet/booking/index.d.cts +24 -127
  105. package/dist/televet/booking/index.d.ts +24 -127
  106. package/dist/televet/booking/index.js +394 -4
  107. package/dist/televet/call/index.cjs +71 -1
  108. package/dist/televet/call/index.d.cts +3 -3
  109. package/dist/televet/call/index.d.ts +3 -3
  110. package/dist/televet/call/index.js +71 -1
  111. package/dist/televet/index.cjs +101 -1
  112. package/dist/televet/index.d.cts +25 -8
  113. package/dist/televet/index.d.ts +25 -8
  114. package/dist/televet/index.js +101 -1
  115. package/dist/{bookingTypes-D4pD3tHs.d.ts → televetGlobal-C5dTUACe.d.cts} +34 -1
  116. package/dist/{bookingTypes-D4pD3tHs.d.cts → televetGlobal-CnjrfhT4.d.ts} +34 -1
  117. package/dist/testing/index.cjs +98 -7
  118. package/dist/testing/index.d.cts +3 -3
  119. package/dist/testing/index.d.ts +3 -3
  120. package/dist/testing/index.js +98 -7
  121. package/dist/testing/rn/index.cjs +101 -1
  122. package/dist/testing/rn/index.d.cts +13 -13
  123. package/dist/testing/rn/index.d.ts +13 -13
  124. package/dist/testing/rn/index.js +101 -1
  125. package/dist/testing/web/index.cjs +95 -1
  126. package/dist/testing/web/index.d.cts +14 -14
  127. package/dist/testing/web/index.d.ts +14 -14
  128. package/dist/testing/web/index.js +95 -1
  129. package/dist/{timelineRows-DXpjECfA.d.ts → timelineRows-CEx2TzYB.d.ts} +1 -1
  130. package/dist/{timelineRows-BNF43SXK.d.cts → timelineRows-Dffceql_.d.cts} +1 -1
  131. package/dist/{tokens-BYtbKwFh.d.cts → tokens-Tzo1KBND.d.cts} +43 -2
  132. package/dist/{tokens-BYtbKwFh.d.ts → tokens-Tzo1KBND.d.ts} +43 -2
  133. package/dist/{typeStyle-BqfwxZH4.d.cts → typeStyle-C3IG9Sft.d.ts} +22 -3
  134. package/dist/{typeStyle-DKz02DGU.d.ts → typeStyle-CZ3Tj60N.d.cts} +22 -3
  135. package/dist/{useRecordsDepth-CARTuHKh.d.cts → useRecordsDepth-D6a6-_u_.d.cts} +7 -6
  136. package/dist/{useRecordsDepth-fPSv-GXU.d.ts → useRecordsDepth-DuPUJFDQ.d.ts} +7 -6
  137. package/dist/{useVetVisit-Ds8f1peV.d.cts → useVetVisit-BQX_aTJs.d.cts} +2 -2
  138. package/dist/{useVetVisit-BsjoDO-n.d.ts → useVetVisit-RPBOabl8.d.ts} +2 -2
  139. package/dist/video/index.cjs +122 -1
  140. package/dist/video/index.d.cts +3 -3
  141. package/dist/video/index.d.ts +3 -3
  142. package/dist/video/index.js +122 -1
  143. package/dist/{view-Dc-JlFkf.d.ts → view-BSmN5RWf.d.ts} +5 -5
  144. package/dist/{view-DGPaVno8.d.cts → view-UFwCG1Pn.d.cts} +5 -5
  145. package/dist/web/consent/index.cjs +111 -1
  146. package/dist/web/consent/index.d.cts +9 -9
  147. package/dist/web/consent/index.d.ts +9 -9
  148. package/dist/web/consent/index.js +111 -1
  149. package/dist/web/index.cjs +325 -14
  150. package/dist/web/index.d.cts +22 -22
  151. package/dist/web/index.d.ts +22 -22
  152. package/dist/web/index.js +325 -14
  153. package/dist/web/notifications/index.cjs +95 -2
  154. package/dist/web/notifications/index.d.cts +7 -7
  155. package/dist/web/notifications/index.d.ts +7 -7
  156. package/dist/web/notifications/index.js +95 -2
  157. package/dist/web/records/depth/index.cjs +169 -2
  158. package/dist/web/records/depth/index.d.cts +11 -11
  159. package/dist/web/records/depth/index.d.ts +11 -11
  160. package/dist/web/records/depth/index.js +169 -2
  161. package/dist/web/records/index.cjs +689 -4
  162. package/dist/web/records/index.d.cts +34 -37
  163. package/dist/web/records/index.d.ts +34 -37
  164. package/dist/web/records/index.js +689 -4
  165. package/dist/web/records/upload/index.cjs +3 -0
  166. package/dist/web/records/upload/index.d.cts +23 -0
  167. package/dist/web/records/upload/index.d.ts +23 -0
  168. package/dist/web/records/upload/index.js +3 -0
  169. package/dist/web/televet/booking/index.cjs +423 -4
  170. package/dist/web/televet/booking/index.d.cts +26 -74
  171. package/dist/web/televet/booking/index.d.ts +26 -74
  172. package/dist/web/televet/booking/index.js +423 -4
  173. package/dist/web/televet/call/index.cjs +28 -1
  174. package/dist/web/televet/call/index.d.cts +2 -2
  175. package/dist/web/televet/call/index.d.ts +2 -2
  176. package/dist/web/televet/call/index.js +28 -1
  177. package/dist/web/televet/index.cjs +102 -4
  178. package/dist/web/televet/index.d.cts +29 -10
  179. package/dist/web/televet/index.d.ts +29 -10
  180. package/dist/web/televet/index.js +102 -4
  181. package/package.json +20 -4
  182. package/web/records/upload/native-blocked.cjs +12 -0
  183. package/web/records/upload/package.json +8 -0
  184. package/dist/televetGlobal-CEk0_cW9.d.cts +0 -34
  185. package/dist/televetGlobal-Cs9Wbqsy.d.ts +0 -34
@@ -1,11 +1,115 @@
1
- import {z}from'zod';var Pt=Object.defineProperty;var o=(e,r)=>Pt(e,"name",{value:r,configurable:true});var je=Object.freeze([Object.freeze({wireCode:"AccessDeniedException",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"AuthorizationException",envelope:"http_envelope",httpStatus:401,retryable:false}),Object.freeze({wireCode:"ConflictException",envelope:"http_envelope",httpStatus:409,retryable:true}),Object.freeze({wireCode:"DAILY_QUOTA_EXCEEDED",envelope:"http_envelope",httpStatus:429,retryable:true}),Object.freeze({wireCode:"FILE_TOO_LARGE",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"IDEMPOTENCY_KEY_IN_FLIGHT",envelope:"http_envelope",httpStatus:409,retryable:true}),Object.freeze({wireCode:"IDEMPOTENCY_KEY_REUSED_DIFFERENT_REQUEST",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"INVALID_CONTENT_TYPE",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"InternalFailureException",envelope:"http_envelope",httpStatus:500,retryable:true}),Object.freeze({wireCode:"MethodNotAllowedException",envelope:"http_envelope",httpStatus:405,retryable:false}),Object.freeze({wireCode:"NotImplementedException",envelope:"http_envelope",httpStatus:501,retryable:false}),Object.freeze({wireCode:"PaymentRequiredException",envelope:"http_envelope",httpStatus:402,retryable:false}),Object.freeze({wireCode:"ResourceNotFoundException",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"ServiceUnavailableException",envelope:"http_envelope",httpStatus:503,retryable:true}),Object.freeze({wireCode:"TIER_UPGRADE_REQUIRED",envelope:"http_envelope",httpStatus:402,retryable:false}),Object.freeze({wireCode:"ThrottlingException",envelope:"http_envelope",httpStatus:429,retryable:true}),Object.freeze({wireCode:"ValidationException",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"accessDenied",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"access_denied",envelope:"oauth_error",httpStatus:302,retryable:false}),Object.freeze({wireCode:"attachment_unreadable",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"authExpired",envelope:"http_envelope",httpStatus:401,retryable:true}),Object.freeze({wireCode:"authRejected",envelope:"http_envelope",httpStatus:401,retryable:false}),Object.freeze({wireCode:"consent_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"consent_required",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"consent_scope_wrong_route",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"device_cipher_unavailable",envelope:"http_envelope",httpStatus:503,retryable:true}),Object.freeze({wireCode:"email_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"event_cursor_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"event_filter_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"event_payload_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"event_type_not_available",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"event_type_unknown",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"idempotency_key_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"idempotency_key_required",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"idempotency_key_reused",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"insufficientCapability",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"insufficient_scope",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"internal_error",envelope:"sse_frame",httpStatus:200,retryable:false}),Object.freeze({wireCode:"invalidRequest",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_client",envelope:"oauth_error",httpStatus:401,retryable:false}),Object.freeze({wireCode:"invalid_client_metadata",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_grant",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_redirect_uri",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_request",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_scope",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_target",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"mcp_connection_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"mcp_request_conflict",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"mcp_request_gone",envelope:"http_envelope",httpStatus:410,retryable:false}),Object.freeze({wireCode:"mcp_request_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"not_found",envelope:"sse_frame",httpStatus:200,retryable:false}),Object.freeze({wireCode:"partner_visit_link_conflict",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"partner_visit_owner_only",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"partner_visit_pet_already_mapped",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"payload_too_large",envelope:"http_envelope",httpStatus:413,retryable:false}),Object.freeze({wireCode:"petRefInUse",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"pet_health_list_removals_unconfirmed",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"pet_health_species_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"pet_not_registered",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"provider_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"rateLimited",envelope:"http_envelope",httpStatus:429,retryable:true}),Object.freeze({wireCode:"record_species_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"record_subject_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"record_upload_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"records_consent_required",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"sandbox_only",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"session_required",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"share_limit_reached",envelope:"http_envelope",httpStatus:429,retryable:false}),Object.freeze({wireCode:"slow_down",envelope:"oauth_error",httpStatus:429,retryable:true}),Object.freeze({wireCode:"species_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"tenant_filter_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"tenant_has_no_capabilities",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"tenant_resource_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"tenant_surface_not_enabled",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"timeout",envelope:"sse_frame",httpStatus:200,retryable:true}),Object.freeze({wireCode:"token_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"unavailable",envelope:"sse_frame",httpStatus:200,retryable:true}),Object.freeze({wireCode:"unavailable",envelope:"http_envelope",httpStatus:503,retryable:true}),Object.freeze({wireCode:"unsupported_grant_type",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"unsupported_response_type",envelope:"oauth_error",httpStatus:302,retryable:false}),Object.freeze({wireCode:"verify_mint_rate_limited",envelope:"http_envelope",httpStatus:429,retryable:true}),Object.freeze({wireCode:"verify_mint_refused",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"verify_mint_unavailable",envelope:"http_envelope",httpStatus:503,retryable:true}),Object.freeze({wireCode:"verify_user_ref_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"webhook_endpoint_update_empty",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"webhook_endpoint_update_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"webhook_url_rejected",envelope:"http_envelope",httpStatus:400,retryable:false})]);Object.freeze(je.map(e=>e.wireCode));var Dt=Object.freeze({ValidationException:"validationFailed",AuthorizationException:"authRejected",PaymentRequiredException:"paymentRequired",AccessDeniedException:"accessDenied",ResourceNotFoundException:"resourceNotFound",ConflictException:"conflict",ThrottlingException:"rateLimited",InternalFailureException:"internalError",NotImplementedException:"notImplemented",ServiceUnavailableException:"serviceUnavailable",MethodNotAllowedException:"validationFailed",authExpired:"authExpired",unavailable:"serviceUnavailable",session_required:"sessionRequired",accessDenied:"accessDenied",invalidRequest:"sdkUpdateRequired",authRejected:"authRejected",rateLimited:"rateLimited",insufficientCapability:"accessDenied",event_cursor_invalid:"validationFailed",event_filter_invalid:"validationFailed",event_payload_invalid:"validationFailed",event_type_unknown:"validationFailed",idempotency_key_invalid:"validationFailed",idempotency_key_required:"validationFailed",idempotency_key_reused:"idempotencyConflict",payload_too_large:"validationFailed",webhook_url_rejected:"validationFailed",webhook_endpoint_update_empty:"validationFailed",webhook_endpoint_update_invalid:"validationFailed",event_type_not_available:"conflict",record_subject_not_found:"resourceNotFound",records_consent_required:"conflict",record_species_unsupported:"validationFailed",record_upload_invalid:"validationFailed",FILE_TOO_LARGE:"validationFailed",INVALID_CONTENT_TYPE:"validationFailed",attachment_unreadable:"validationFailed",provider_unsupported:"validationFailed",token_invalid:"validationFailed",device_cipher_unavailable:"serviceUnavailable",email_invalid:"validationFailed",consent_required:"validationFailed",consent_invalid:"validationFailed",consent_scope_wrong_route:"validationFailed",IDEMPOTENCY_KEY_IN_FLIGHT:"idempotencyInFlight",IDEMPOTENCY_KEY_REUSED_DIFFERENT_REQUEST:"idempotencyConflict",DAILY_QUOTA_EXCEEDED:"quotaExceeded",TIER_UPGRADE_REQUIRED:"paymentRequired",not_found:"conversationNotFound",timeout:"streamTimeout",internal_error:"internalError",invalid_request:"validationFailed",invalid_client:"authRejected",invalid_grant:"authRejected",unsupported_grant_type:"validationFailed",invalid_scope:"validationFailed",invalid_target:"validationFailed",invalid_redirect_uri:"validationFailed",invalid_client_metadata:"validationFailed",unsupported_response_type:"validationFailed",access_denied:"accessDenied",slow_down:"rateLimited",mcp_request_not_found:"resourceNotFound",mcp_request_gone:"resourceNotFound",mcp_connection_not_found:"resourceNotFound",mcp_request_conflict:"conflict",sandbox_only:"accessDenied",tenant_has_no_capabilities:"conflict",verify_mint_refused:"accessDenied",verify_mint_rate_limited:"rateLimited",verify_mint_unavailable:"serviceUnavailable",verify_user_ref_invalid:"validationFailed",insufficient_scope:"accessDenied",tenant_filter_invalid:"validationFailed",tenant_resource_not_found:"resourceNotFound",tenant_surface_not_enabled:"conflict",pet_health_species_unsupported:"validationFailed",pet_health_list_removals_unconfirmed:"validationFailed",petRefInUse:"conflict",share_limit_reached:"conflict",pet_not_registered:"resourceNotFound",species_unsupported:"validationFailed",partner_visit_owner_only:"accessDenied",partner_visit_link_conflict:"conflict",partner_visit_pet_already_mapped:"conflict"}),Lr=Object.freeze(je.map(e=>Object.freeze({wireCode:e.wireCode,envelope:e.envelope,retryable:e.retryable,normalized:Dt[e.wireCode]}))),Nt=new Map(Lr.map(e=>[e.envelope+e.wireCode.toUpperCase(),e])),Mt=Object.freeze(["http_envelope",...[...new Set(Lr.map(e=>e.envelope))].filter(e=>e!=="http_envelope").sort()]);function ve(e,r){if(typeof e!="string")return;let n=e.trim().toUpperCase();if(n.length!==0)for(let t of [r??"http_envelope",...Mt]){let i=Nt.get(t+n);if(i)return i}}o(ve,"contractErrorFor");function Lt(e){return e.envelope==="sse_frame"?`/errors#sse-${e.wireCode}`:e.envelope==="oauth_error"?`/errors#oauth-${e.wireCode}`:`/errors#${e.wireCode}`}o(Lt,"contractDocUrl");var Mr=null;function Br(e){return null}o(Br,"publishedDocUrl");var us=Object.freeze(["authExpired","authRejected","sessionRequired","accessDenied","paymentRequired","quotaExceeded","rateLimited","validationFailed","sdkUpdateRequired","conflict","idempotencyConflict","idempotencyInFlight","conversationNotFound","petNotFound","resourceNotFound","streamTimeout","mediaUploadFailed","moderationBlocked","upstreamLlmTimeout","internalError","notImplemented","serviceUnavailable","streamIncomplete","unknown"]),ds=Object.freeze(["authentication","authorization","entitlement","rateLimit","invalidRequest","notFound","conflict","connection","server","media","policy","unknown"]),Bt=Object.freeze({authExpired:"authentication",authRejected:"authentication",sessionRequired:"authentication",accessDenied:"authorization",paymentRequired:"entitlement",quotaExceeded:"rateLimit",rateLimited:"rateLimit",validationFailed:"invalidRequest",sdkUpdateRequired:"invalidRequest",conversationNotFound:"notFound",petNotFound:"notFound",resourceNotFound:"notFound",conflict:"conflict",idempotencyConflict:"conflict",idempotencyInFlight:"conflict",streamTimeout:"connection",streamIncomplete:"connection",upstreamLlmTimeout:"connection",serviceUnavailable:"connection",internalError:"server",notImplemented:"server",mediaUploadFailed:"media",moderationBlocked:"policy",unknown:"unknown"});function zr(e){return Bt[e]}o(zr,"categoryFor");function oe(e){let r=ve(e);if(r)return r.normalized;let n=(e??"").trim().toUpperCase(),t=n.replace(/[^A-Z0-9]/g,"");if(t==="AUTHREJECTED")return "authRejected";if(n.startsWith("AUTH"))return "authExpired";switch(t){case "DAILYQUOTAEXCEEDED":case "QUOTAEXCEEDED":return "quotaExceeded";case "RATELIMITED":case "TOOMANYREQUESTS":case "TELEVETRATELIMITED":return "rateLimited";case "IDEMPOTENCYKEYCONFLICT":case "IDEMPOTENCYCONFLICT":return "idempotencyConflict";case "ACCESSDENIED":case "FORBIDDEN":return "accessDenied";case "NOTFOUND":case "CONVERSATIONNOTFOUND":return "conversationNotFound";case "PETNOTFOUND":return "petNotFound";case "TIMEOUT":case "STREAMTIMEOUT":return "streamTimeout";case "MEDIAUPLOADFAILED":case "UNRECOGNIZEDVIDEOFORMAT":case "FILETOOSMALL":return "mediaUploadFailed";case "MODERATIONBLOCKED":return "moderationBlocked";case "UPSTREAMLLMTIMEOUT":return "upstreamLlmTimeout";case "INTERNALERROR":case "INTERNALSERVERERROR":return "internalError";case "STREAMINCOMPLETE":case "CHATSTREAMINCOMPLETE":return "streamIncomplete";case "INVALIDANALYSISTYPE":case "INVALIDUPLOADPURPOSE":return "unknown";default:return "unknown"}}o(oe,"fromWire");function jr(e){return e===401?"authExpired":e===403?"accessDenied":e===404?"conversationNotFound":e===409?"idempotencyConflict":e===421?"unknown":e===429?"rateLimited":e===400||e===422?"unknown":e>=500?"internalError":"unknown"}o(jr,"fromHttpStatus");var zt=new Set(["streamTimeout","rateLimited","internalError","upstreamLlmTimeout","streamIncomplete"]);function W(e){return zt.has(e)}o(W,"isAutoRetryable");var jt=new Set(["serviceUnavailable","conflict","idempotencyInFlight"]);function Ur(e){return W(e)||jt.has(e)}o(Ur,"isRetryableCode");function cs(e,r=false){return r||W(e)}o(cs,"shouldRetry");var Ut=500,Ue=8e3,qr=4;function Hr(e,r=Math.random){let n=Math.max(0,e),t=Math.min(Ut*2**n,Ue);return Math.floor(r()*t)}o(Hr,"backoffDelayMs");function fs(e){return e==="conversationNotFound"}o(fs,"canRecreateOnNotFound");var qt=Object.freeze({authExpired:"Please sign in again to continue.",authRejected:"Please sign in again to continue.",sessionRequired:"This app needs to be updated to keep using Everfur.",accessDenied:"This feature isn't available on your account right now.",paymentRequired:"This is part of a paid plan.",quotaExceeded:"You have used today's messages. This resets tomorrow.",rateLimited:"You are sending messages quickly. Try again in a few seconds.",validationFailed:"Something in that request was not right. Check the details and try again.",sdkUpdateRequired:"This app needs to be updated to keep using Everfur.",conflict:"That is already running. Wait for it to finish, then try again.",idempotencyConflict:"That message was already delivered.",idempotencyInFlight:"That is still processing. Give it a moment.",conversationNotFound:"This conversation is no longer available.",petNotFound:"We could not find that pet. Please pick a pet and try again.",resourceNotFound:"We could not find that.",streamTimeout:"The response timed out. Tap retry to try again.",mediaUploadFailed:"We could not upload that photo. Please attach it again.",moderationBlocked:"This request cannot be answered here.",upstreamLlmTimeout:"The response timed out. Tap retry to try again.",internalError:"We hit a snag on our end. Please try again.",notImplemented:"That is not available yet.",serviceUnavailable:"That service is briefly unavailable. Try again shortly.",streamIncomplete:"The connection dropped mid-answer. Tap retry to continue.",unknown:"Something went wrong. Please try again."});function qe(e){return qt[e]}o(qe,"userFacingError");function Kr(e,r,n){Object.defineProperty(e,r,{value:n,enumerable:false,writable:false,configurable:false});}o(Kr,"defineHidden");var Ht=/^[a-z][a-z0-9_]{0,63}$/;function S(e,r){let n=ve(r?.wireCode,r?.wireEnvelope),t={code:e,category:zr(e),retryable:r?.retryable??Ur(e),displayMessage:qe(e)};if(r?.httpStatus!==void 0&&(t.httpStatus=r.httpStatus),r?.requestId&&(t.requestId=r.requestId),typeof r?.reasonCode=="string"&&Ht.test(r.reasonCode)&&(t.reasonCode=r.reasonCode),n);return r?.wireMessage&&Kr(t,"wireMessage",r.wireMessage),r?.raw!==void 0&&r.raw!==null&&Kr(t,"raw",r.raw),Object.freeze(t)}o(S,"makeEverfurError");function x(e,r){return Object.freeze(r===void 0?{ok:true,value:e}:{ok:true,value:e,warning:r})}o(x,"ok");function y(e){return Object.freeze({ok:false,error:e})}o(y,"err");function Es(e){return e.ok}o(Es,"isOk");function vs(e){return !e.ok}o(vs,"isErr");var _e=class _e extends Error{constructor(r){super(`${r.code}: ${r.displayMessage}`),this.name="EverfurThrownError",this.error=r,this.code=r.code,this.category=r.category,Object.setPrototypeOf(this,_e.prototype);}};o(_e,"EverfurThrownError");var He=_e;function _s(e){if(e.ok)return e.value;throw new He(e.error)}o(_s,"unwrap");var Re=class Re extends Error{constructor(r,n){super(n),this.name="EverfurConfigError",this.kind=r,Object.setPrototypeOf(this,Re.prototype);}};o(Re,"EverfurConfigError");var k=Re;var Kt="0.7.0",$t="react-native",Gt="2026-09-19",$r="EVERFUR_API_BASE_URL";function de(e,r){return Object.freeze({ok:false,failure:Object.freeze({reason:e,message:r})})}o(de,"configFailure");function Wt(e){let r=typeof e=="string"?e.trim():"";return r.length===0?{reason:"missing-publishable-key",message:"publishableKey is required"}:/^sk[_-]/i.test(r)?{reason:"secret-key-as-publishable-key",message:"publishableKey looks like a SECRET key (sk_...). A device must never hold a partner secret key: use the pk_ publishable key here, and keep the secret key on your server."}:null}o(Wt,"checkPublishableKey");function Vt(e,r){let n=Wt(e?.publishableKey);if(n!==null)return Object.freeze({ok:false,failure:n});let t=e.publishableKey.trim(),i=Gr(e.apiBaseUrl);if(!i.ok)return i;let a=e.contractVersion?.trim()||Gt;return Object.freeze({ok:true,config:Object.freeze({publishableKey:t,apiBaseUrl:i.value,contractVersion:a,sdkVersion:Kt,platform:r?.platform??$t,debug:e.debug===true})})}o(Vt,"tryResolveClientConfig");function Ts(e,r){let n=Vt(e,r);if(!n.ok)throw new k("invalid-argument",n.failure.message);return n.config}o(Ts,"resolveClientConfig");function Gr(e){let r=e?.trim(),n=r&&r.length>0?r:no($r);return n?eo(n):de("missing-api-base-url",`apiBaseUrl is required: pass config.apiBaseUrl or set ${$r}. The SDK never ships a hardcoded host.`)}o(Gr,"tryResolveApiBaseUrl");function Ss(e){let r=Gr(e);if(!r.ok)throw new k("invalid-argument",r.failure.message);return r.value}o(Ss,"resolveApiBaseUrl");function Wr(e){return {"X-Everfur-SDK-Version":e.sdkVersion,"X-Everfur-SDK-Platform":e.platform,"X-Everfur-Contract":e.contractVersion}}o(Wr,"buildBaseHeaders");var Yt=/^([A-Za-z][A-Za-z0-9+.-]*):\/\/([^/?#]*)/;function Xt(e){return e.slice(e.lastIndexOf("@")+1).replace(/:\d+$/,"").toLowerCase()}o(Xt,"hostOf");function Qt(e){return e.length===0||e.includes("@")?false:e.startsWith("[")&&e.endsWith("]")?true:!e.includes(":")}o(Qt,"isPrintableHost");function Jt(e,r){let n=e.indexOf("://");return n<0||e.slice(n+3).includes("@")?false:Qt(r)}o(Jt,"canEchoOrigin");function Zt(e,r){return `${e}://${r}`}o(Zt,"safeOrigin");function eo(e){let r=e.trim(),n=Yt.exec(r);if(n===null||n[2]===void 0||n[2].length===0)return de("malformed-api-base-url","apiBaseUrl is not a valid absolute URL");let t=(n[1]??"").toLowerCase(),i=Xt(n[2]);if(i.length===0)return de("malformed-api-base-url","apiBaseUrl is not a valid absolute URL");let a=Jt(r,i)?`: ${Zt(t,i)}`:"";if(t!=="https"){if(!(t==="http"&&ro(i)))return t==="http"?de("insecure-api-base-url",`apiBaseUrl must use https (cleartext http is only allowed for localhost)${a}`):de("unsupported-api-base-url-scheme",`apiBaseUrl must be http(s)${a}`)}let s=r.endsWith("/")?r.slice(0,-1):r;return Object.freeze({ok:true,value:s})}o(eo,"normalizeBaseUrl");function ro(e){let r=e.toLowerCase();return r==="localhost"||r==="127.0.0.1"||r==="[::1]"||r==="::1"}o(ro,"isLoopbackHost");function no(e){let n=globalThis.process?.env?.[e];return typeof n=="string"&&n.trim().length>0?n.trim():void 0}o(no,"readEnv");function ie(e){for(let r=0;r<e.length;r+=1){let n=e.charCodeAt(r);if(n>=55296&&n<=56319){let t=e.charCodeAt(r+1);if(!(t>=56320&&t<=57343))return true;r+=1;}else if(n>=56320&&n<=57343)return true}return false}o(ie,"hasLoneSurrogate");function V(e){return [...e].length}o(V,"serverLength");var Vr=128,Yr=128,Xr=/[\u0000-\u001F\u007F]/,to=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function Ps(e){let r=e,n=V(r);if(n===0||n>Yr)throw new k("invalid-argument",`petRef must be 1..${Yr} characters`);if(Xr.test(r))throw new k("invalid-argument","petRef must be printable (no control characters)");return r}o(Ps,"petRef");function Ds(e){let r=e,n=V(r);if(n===0||n>Vr)throw new k("invalid-argument",`userRef must be 1..${Vr} characters`);if(r.includes("@"))throw new k("invalid-argument","userRef must not contain '@'");if(Xr.test(r))throw new k("invalid-argument","userRef must be printable (no control characters)");return r}o(Ds,"userRef");function Ns(e){if(!to.test(e))throw new k("invalid-argument","conversationId must be a UUID");return e}o(Ns,"conversationId");function Ms(e){return e}o(Ms,"unsafePetRef");function Ls(e){return e}o(Ls,"unsafeUserRef");function Bs(e){return e}o(Bs,"unsafeConversationId");function zs(e){return e}o(zs,"unsafeResponseId");function js(e){return e}o(js,"unsafeClientId");function Us(e){return e}o(Us,"unsafeDocumentId");function qs(e){return e}o(qs,"unsafeJobId");function Hs(e){return e}o(Hs,"unsafeRecordsRequestId");function Vs(e,r,n){let t=null,i=null,a=false,s=o(()=>i||(i=(async()=>{try{let l=await r(),u=typeof l=="string"?l:l?.token;if(typeof u!="string"||u.length===0)throw new k("invalid-argument","TokenProvider returned an empty token");return t=u,n?.(typeof l=="string"?null:oo(l.expiresAt)),u}finally{i=null;}})(),i),"load");return {userRef:e,async currentToken(l){if(a)throw new k("not-initialized","This identity was cleared (sign-out); mint a new one.");return l?.forceRefresh&&(t=null),t!==null?t:s()},hasToken(){return !a&&t!==null},clear(){a=true,t=null;}}}o(Vs,"createIdentityProvider");function oo(e){if(e===void 0)return null;let r=typeof e=="number"?e<1e11?e*1e3:e:new Date(e).getTime();return Number.isFinite(r)?r:null}o(oo,"expiryMs");function Ys(){let e=new Uint8Array(16),r=globalThis.crypto;if(typeof r?.getRandomValues=="function")r.getRandomValues(e);else for(let t=0;t<e.length;t+=1)e[t]=Math.floor(Math.random()*256);e[6]=e[6]&15|64,e[8]=e[8]&63|128;let n=[];for(let t=0;t<e.length;t+=1)n.push(e[t].toString(16).padStart(2,"0"));return n.slice(0,4).join("")+"-"+n.slice(4,6).join("")+"-"+n.slice(6,8).join("")+"-"+n.slice(8,10).join("")+"-"+n.slice(10,16).join("")}o(Ys,"newSessionId");function io(e){let r={};return e.mode==="personalized"?r.authorization=`Bearer ${e.token}`:r["x-everfur-partner-key"]=e.publishableKey,e.userRef&&(r["x-everfur-user-ref"]=e.userRef),e.sessionId&&(r["x-everfur-session-id"]=e.sessionId),r}o(io,"authHeaders");function ce(e,r){return {...e,headers:{...ao(e.headers),...io(r)}}}o(ce,"withAuthHeaders");function ao(e){if(!e)return {};let r={};for(let[n,t]of Object.entries(e)){let i=n.toLowerCase();i==="authorization"||i==="x-everfur-partner-key"||(r[n]=t);}return r}o(ao,"stripAuthHeaders");async function Qr(e,r){if(r.mode==="anonymous")return r.transport.request(ce(e,{mode:"anonymous",publishableKey:r.publishableKey,userRef:r.userRef,...r.sessionId?{sessionId:r.sessionId}:{}}));let n;try{n=await r.identity.currentToken();}catch{return y(Ke())}let t=await r.transport.request(ce(e,{mode:"personalized",token:n,userRef:r.userRef,...r.sessionId?{sessionId:r.sessionId}:{}}));if(t.ok||t.error.httpStatus!==401)return t;let i;try{i=await r.identity.currentToken({forceRefresh:!0});}catch{return y(Ke())}let a=await r.transport.request(ce(e,{mode:"personalized",token:i,userRef:r.userRef,...r.sessionId?{sessionId:r.sessionId}:{}}));return !a.ok&&a.error.httpStatus===401?y(Ke(a.error.httpStatus)):a}o(Qr,"authedSend");function Ke(e){return S("authRejected",{retryable:false,...e!==void 0?{httpStatus:e}:{}})}o(Ke,"authRejectedError");function Js(e){throw new Error(`assertNever: unhandled discriminated-union member ${JSON.stringify(e)}`)}o(Js,"assertNever");var so=Object.freeze([]),lo=Object.freeze([]);function Jr(e,r,n=null){return Object.freeze({kind:"accepted",streamId:e,lastEventId:r,serverRequestId:n,terminal:false})}o(Jr,"acceptedFrame");function Zr(e,r=null){return Object.freeze({kind:"heartbeat",lastEventId:e,serverRequestId:r,terminal:false})}o(Zr,"heartbeatFrame");function en(e,r,n=null){return Object.freeze({kind:"delta",delta:e,lastEventId:r,serverRequestId:n,terminal:false})}o(en,"deltaFrame");function rn(e,r=null){return Object.freeze({kind:"done",terminal:true,conversationId:e.conversationId,messageId:e.messageId,title:e.title,followUpQuestions:Object.freeze([...e.followUpQuestions]),citations:Object.freeze([...e.citations]),citationStatus:e.citationStatus,urgencyLevel:e.urgencyLevel,urgencyReason:e.urgencyReason,urgencyProvided:e.urgencyProvided??e.urgencyLevel!==null,resultId:e.resultId,lastEventId:e.lastEventId,serverRequestId:r})}o(rn,"doneFrame");function j(e){return Object.freeze({kind:"error",terminal:true,code:e.code,retryable:e.retryable,wireMessage:e.wireMessage,synthesized:e.synthesized,lastEventId:e.lastEventId,serverRequestId:e.serverRequestId??null})}o(j,"errorFrame");function nn(e,r,n=null){return Object.freeze({kind:"analysisStarted",requestId:e,lastEventId:r,serverRequestId:n,terminal:false})}o(nn,"analysisStartedFrame");function tn(e,r=null){return Object.freeze({kind:"analysisComplete",terminal:false,resultId:e.resultId,analysisType:e.analysisType,modelVersion:e.modelVersion,confidence:e.confidence,detections:Object.freeze([...e.detections]),interpretation:e.interpretation,lastEventId:e.lastEventId,serverRequestId:r})}o(tn,"analysisCompleteFrame");function on(e,r,n=null){return Object.freeze({kind:"unknown",raw:{...e},lastEventId:r,serverRequestId:n,terminal:false})}o(on,"unknownFrame");var Zs=Object.freeze({strings:so,maps:lo});var an=`
2
-
3
- `,uo=1048576,co=z.record(z.string(),z.unknown()),fo=["emergency","schedule_soon","home_care"];async function*Ce(e,r=null){let n=null,t=o(()=>(n!==null||(n=typeof r=="function"?r():r),n),"requestIdNow"),i=new TextDecoder("utf-8"),a="",s=0,l=false;for await(let u of e){for(a+=i.decode(u,{stream:true});;){let d=a.indexOf(an,s);if(d===-1)break;let f=a.slice(0,d);a=a.slice(d+an.length),s=0;let c=sn(f,t());if(c!==null&&(c.kind==="delta"&&(l=true),yield c,c.terminal))return}if(s=a.length>0?a.length-1:0,a.length>uo){yield j({code:l?"CHAT_STREAM_INCOMPLETE":"internal_error",retryable:true,wireMessage:null,synthesized:true,lastEventId:null,serverRequestId:t()});return}}if(a+=i.decode(),a.trim().length>0){let u=sn(a,t());if(u!==null&&(u.kind==="delta"&&(l=true),yield u,u.terminal))return}yield j({code:l?"CHAT_STREAM_INCOMPLETE":"internal_error",retryable:true,wireMessage:null,synthesized:true,lastEventId:null,serverRequestId:t()});}o(Ce,"parseSse");function sn(e,r){let n=null,t=[];for(let s of e.split(`
4
- `)){let l=s.replace(/\s+$/,"");l.length===0||l.startsWith(":")||(l.startsWith("id:")?n=l.slice(3).trim():l.startsWith("data:")&&t.push(l.slice(5).replace(/^ /,"")));}if(t.length===0)return null;let i;try{i=JSON.parse(t.join(`
5
- `));}catch{return null}if(typeof i!="object"||i===null||Array.isArray(i))return null;let a=co.safeParse(i);return a.success?po(a.data,n,r):null}o(sn,"parseBlock");function po(e,r,n){let t=e.type,i=e.event;if(t==="error"||"error"in e)return j({code:T(e.code)??"unknown",retryable:e.retryable===true,wireMessage:T(e.error),synthesized:false,lastEventId:r,serverRequestId:n});if(t==="done"||e.done===true)return rn({conversationId:T(e.conversation_id)??"",messageId:T(e.message_id),title:T(e.title),followUpQuestions:go(e.follow_up_questions),citations:ln(e.citations),citationStatus:T(e.citation_status),urgencyLevel:un(e.urgency_level),urgencyReason:T(e.urgency_reason),urgencyProvided:yo(e),resultId:T(e.result_id),lastEventId:r},n);if(t==="accepted"||e.status==="reasoning")return Jr(T(e.stream_id),r,n);if(t==="heartbeat"||e.heartbeat===true)return Zr(r,n);if(t==="text.delta"||"delta"in e||"token"in e){let a=T(e.delta)??T(e.token)??"";return en(a,r,n)}return i==="analysis_started"?nn(T(e.request_id),r,n):i==="analysis_complete"?tn({resultId:T(e.result_id),analysisType:T(e.analysis_type),modelVersion:T(e.model_version),confidence:mo(e.confidence),detections:ln(e.detections),interpretation:T(e.interpretation),lastEventId:r},n):on(e,r,n)}o(po,"frameFromWire");function T(e){return typeof e=="string"?e:null}o(T,"asString");function mo(e){return typeof e=="number"&&Number.isFinite(e)?e:null}o(mo,"asNumber");function un(e){return typeof e=="string"&&fo.includes(e)?e:null}o(un,"asUrgency");function yo(e){if(!Object.prototype.hasOwnProperty.call(e,"urgency_level"))return false;let r=e.urgency_level;return r===null||un(r)!==null}o(yo,"urgencySlotProvided");function go(e){return Array.isArray(e)?e.map(r=>typeof r=="string"?r:String(r)):[]}o(go,"asStringList");function bo(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}o(bo,"isPlainObject");function ln(e){return Array.isArray(e)?e.filter(bo):[]}o(ln,"asMapList");var ho=3e4,fn="x-request-id";async function*Ge(e){if(!e)return;let r=e.getReader();try{for(;;){let{done:n,value:t}=await r.read();if(n)break;t&&t.length>0&&(yield t);}}finally{await r.cancel?.();}}o(Ge,"fetchByteSource");async function*pl(e,r=[]){let n=new TextEncoder().encode(e),t=[...new Set(r)].filter(a=>a>0&&a<n.length).sort((a,s)=>a-s),i=0;for(let a of t)yield n.subarray(i,a),i=a;yield n.subarray(i);}o(pl,"bufferedTextByteSource");function Eo(e){let r=new TextEncoder,n=_o(),t=false,i=o(u=>{let d="";u.lastEventId&&(d+=`id: ${u.lastEventId}
6
- `);let f=u.data??"";for(let c of f.split(`
7
- `))d+=`data: ${c}
8
- `;d+=`
9
- `,n.push(r.encode(d));},"onMessage"),a=o(()=>{l(),n.end();},"onDone"),s=o(u=>{let d=typeof u.xhrStatus=="number"?u.xhrStatus:0;if(d>=400){let f=mn(d),c=W(oe(f));n.push(r.encode(`data: ${JSON.stringify({type:"error",code:f,retryable:c})}
10
-
11
- `));}l(),n.end();},"onError");e.addEventListener("message",i),e.addEventListener("done",a),e.addEventListener("error",s);function l(){if(!t){t=true,e.removeEventListener("message",i),e.removeEventListener("done",a),e.removeEventListener("error",s);try{e.close();}catch{}}}return o(l,"cleanup"),vo(n.source,l)}o(Eo,"eventSourceByteSource");async function*vo(e,r){try{yield*e;}finally{r();}}o(vo,"sourceWithCleanup");function _o(){let e=[],r=false,n=null,t=o(()=>{if(n){let a=n;n=null,a();}},"signal");async function*i(){for(;;){let a=e.shift();if(a!==void 0){yield a;continue}if(r)return;await new Promise(s=>{n=s;});}}return o(i,"gen"),{source:i(),push:o(a=>{e.push(a),t();},"push"),end:o(()=>{r=true,t();},"end")}}o(_o,"createByteQueue");async function Ro(e,r){let n=r.fetchImpl??Ve(),t=Ye(r.config.apiBaseUrl,e.path,e.query),i=Xe(r.config,e.headers,"application/json",e.body!==void 0&&e.multipart===void 0),a=xo(ho),s=Fo(a.signal,e.signal),l;try{l=await n(t,Qe({...e,signal:s},i));}catch(d){return y(ke(d))}finally{a.cancel();}let u=await Je(l);return l.ok?x(u):y(pn(l.status,u,We(l)))}o(Ro,"requestJson");async function ml(e,r,n){let t=r.fetchImpl??Ve(),i=Ye(r.config.apiBaseUrl,e.path,e.query),a=Xe(r.config,e.headers,"text/event-stream",e.body!==void 0&&e.multipart===void 0),s;try{s=await t(i,Qe(e,a));}catch(u){return y(ke(u))}if(!s.ok)return y(pn(s.status,await Je(s),We(s)));let l=n?n(s):Ge(s.body);return x({ok:s.ok,status:s.status,headers:wo(s),bytes:l})}o(ml,"requestRaw");function yl(e){return {request:o(r=>Ro(r,e),"request"),stream:o((r,n)=>Co(So(r,n),e),"stream")}}o(yl,"createHttpTransport");async function*Co(e,r){let n=Ye(r.config.apiBaseUrl,e.path,e.query),t=Xe(r.config,e.headers,"text/event-stream",e.body!==void 0&&e.multipart===void 0);if(r.eventSourceFactory){let l=r.eventSourceFactory(n,ko(e,t));yield*Ce(Eo(l),()=>To(l));return}let i=r.fetchImpl??Ve(),a;try{a=await i(n,Qe(e,t));}catch(l){yield dn("",true,hn(l));return}let s=We(a);if(!a.ok){let l=await Je(a),u=yn(l)??mn(a.status),d=bn(l)||W(oe(u));yield dn(u,d,gn(l),s);return}if(a.body){yield*Ce(Ge(a.body),s);return}yield*Ce(Ge(null),s);}o(Co,"streamFrames");function ko(e,r){return {method:e.method,headers:r,pollingInterval:0,...e.body!==void 0?{body:JSON.stringify(e.body)}:{}}}o(ko,"buildEventSourceInit");function pn(e,r,n){let t=yn(r),i=t?oe(t):jr(e),a=gn(r);return S(i,{httpStatus:e,...bn(r)?{retryable:true}:{},...n?{requestId:n}:{},...t?{wireCode:t}:{},...cn(r)?{reasonCode:cn(r)}:{},...a?{wireMessage:a}:{},...r!=null?{raw:r}:{}})}o(pn,"errorFromResponse");function ke(e){return S("internalError",{retryable:true,wireMessage:hn(e)})}o(ke,"networkError");function We(e){let r=e.headers.get(fn);return typeof r=="string"&&r.length>0?r:null}o(We,"requestIdOf");function To(e){if(typeof e.getResponseHeader!="function")return null;let r;try{r=e.getResponseHeader(fn);}catch{return null}return typeof r=="string"&&r.length>0?r:null}o(To,"eventSourceRequestId");function mn(e){return e===401?"AUTH_EXPIRED":e===403?"ACCESS_DENIED":e===404?"NOT_FOUND":e===409?"IDEMPOTENCY_CONFLICT":e===421?"MISDIRECTED_REQUEST":e===429?"RATE_LIMITED":e===400||e===422?"INVALID_REQUEST":e===503||e>=500?"INTERNAL_ERROR":""}o(mn,"statusToWireCode");function dn(e,r,n,t=null){return j({code:e,retryable:r,wireMessage:n,synthesized:true,lastEventId:null,serverRequestId:t})}o(dn,"syntheticErrorFrame");function Ve(){let e=globalThis.fetch;if(typeof e!="function")throw new k("missing-peer-dependency","global fetch is unavailable; provide config.transport or an injected fetch implementation");return e}o(Ve,"getGlobalFetch");function Ye(e,r,n){let t=r.startsWith("/")?r:`/${r}`,i=`${e}${t}`;if(n){let a=Object.entries(n).filter(s=>s[1]!==void 0).map(([s,l])=>`${encodeURIComponent(s)}=${encodeURIComponent(String(l))}`).join("&");a&&(i+=`?${a}`);}return i}o(Ye,"buildUrl");function Xe(e,r,n,t){let i={...Wr(e),accept:n};return t&&(i["content-type"]="application/json"),r&&Object.assign(i,r),i}o(Xe,"mergeHeaders");function Qe(e,r){let n={method:e.method,headers:r};return e.multipart!==void 0?n.body=e.multipart:e.body!==void 0&&(n.body=JSON.stringify(e.body)),e.signal&&(n.signal=e.signal),n}o(Qe,"buildInit");function So(e,r){return e.signal?e:{...e,signal:r}}o(So,"withSignal");function xo(e){let r=new AbortController,n=setTimeout(()=>r.abort(),e);return {signal:r.signal,cancel:o(()=>clearTimeout(n),"cancel")}}o(xo,"timeoutSignal");function Fo(e,r){if(!r)return e;let n=new AbortController;if(e.aborted||r.aborted)return n.abort(),n.signal;let t=o(()=>n.abort(),"onAbort");return e.addEventListener("abort",t,{once:true}),r.addEventListener("abort",t,{once:true}),n.signal}o(Fo,"mergeAbortSignals");async function Je(e){try{return await e.json()}catch{return null}}o(Je,"safeJson");function wo(e){let r={};return e.headers.forEach?.((n,t)=>{r[t.toLowerCase()]=n;}),r}o(wo,"collectHeaders");function cn(e){let r=e,n=r?.error?.reason_code??r?.reason_code;return typeof n=="string"&&n.length>0?n:null}o(cn,"extractReasonCode");function yn(e){let r=e,n=r?.error?.code??r?.code;return typeof n=="string"&&n.length>0?n:null}o(yn,"extractWireCode");function gn(e){let r=e,n=r?.error?.message??r?.message;return typeof n=="string"&&n.length>0?n:null}o(gn,"extractWireMessage");function bn(e){let r=e;return r?.error?.retryable===true||r?.retryable===true}o(bn,"extractRetryable");function hn(e){return e instanceof Error?e.message:typeof e=="string"?e:"network request failed"}o(hn,"describeCause");function El(e){if(e.length===0)return En({granted:[],asGrant:{allow:[],deny:[]}});let r=null,n=new Set;for(let i of e){let a=new Set(i.allow);r=r===null?a:Oo(r,a);for(let s of i.deny)n.add(s);}let t=[...r??new Set].filter(i=>!n.has(i)).sort();return En({granted:t,asGrant:{allow:t,deny:[]}})}o(El,"resolveEntitlements");function Oo(e,r){let n=new Set;for(let t of e)r.has(t)&&n.add(t);return n}o(Oo,"intersect");function En(e){return Object.freeze({granted:Object.freeze([...e.granted]),asGrant:Object.freeze({allow:Object.freeze([...e.asGrant.allow]),deny:Object.freeze([...e.asGrant.deny])})})}o(En,"freezeResolved");var er=Object.freeze({chat:Object.freeze(["chat.message.create"]),records:Object.freeze(["records.upload.create","records.record.read"]),recordsClinic:Object.freeze(["records.clinic.create"]),video:Object.freeze(["video.gait.execute"]),photo:Object.freeze(["photo.checkup.execute"]),animations:Object.freeze(["animations.state.read"]),televet:Object.freeze(["televet.visit.create"])});function Ao(e){return er[e]}o(Ao,"requires");function vl(e,r){let n=Object.freeze({reason:r,level:e,recoverable:false}),t=[],i=new Set;for(let a of Object.keys(er))for(let s of er[a])i.has(s)||(i.add(s),t.push(Object.freeze({resource:s,granted:false,disabled:n})));return Object.freeze(t)}o(vl,"deniedDecisionsFor");function _l(e,r,n){let t=Ao(e),i=new Map;for(let l of r)i.set(l.resource,l);if(n?.isPending===true&&t.some(l=>!i.has(l)))return Ze({name:e,enabled:false,isPending:true,limits:{}});let a=Io(t,i);return t.filter(l=>i.get(l)?.granted!==true).length===0?Ze({name:e,enabled:true,isPending:false,limits:a}):Ze({name:e,enabled:false,isPending:false,limits:a,disabled:Po(t,i)})}o(_l,"decideCapability");function Io(e,r){let n={};for(let t of e){let i=r.get(t)?.limits;if(i)for(let[a,s]of Object.entries(i)){let l=n[a];n[a]=l===void 0?s:Math.min(l,s);}}return n}o(Io,"mergeLimits");function Po(e,r){for(let n of e){let t=r.get(n)?.disabled;if(t)return Object.freeze({reason:t.reason,level:t.level,recoverable:t.recoverable})}return Object.freeze({reason:qe("accessDenied"),level:"user_entitlement",recoverable:false})}o(Po,"disabledFor");function Ze(e){let r={name:e.name,enabled:e.enabled,isPending:e.isPending,limits:Object.freeze({...e.limits})};return e.disabled!==void 0&&(r.disabled=e.disabled),Object.freeze(r)}o(Ze,"freezeDecision");var Do=3e4,No=Ue*2,Mo="idempotency-key",Lo=new Set(["POST","PUT","PATCH","DELETE"]),Bo=Object.freeze({onEvent(){}}),zo=Object.freeze({setTimeout:o((e,r)=>setTimeout(e,r),"setTimeout"),clearTimeout:o(e=>clearTimeout(e),"clearTimeout"),now:o(()=>Date.now(),"now")});function jo(e){let r=e.trim().replace(/[^A-Za-z0-9_.:-]/g,"-");return r.length===0?null:`efs_${r}`.slice(0,128)}o(jo,"seededIdempotencyKey");function U(e){let r=e.observer??Bo,n=e.timers??zo,t=e.rng??Math.random,i=e.sleep??((p,m)=>ei(p,n,m)),a=e.maxAttempts??qr,s=e.unaryTimeoutMs??Do,l=e.newIdempotencyKey??qo(),u=o(p=>{try{r.onEvent(p);}catch{}},"emit");async function d(p,m,C){let b=C?.maxAttempts,w=Math.max(1,b??a),O=C?.idempotent??Lo.has(m.method),G=C?.idempotencyKey===void 0?null:jo(C.idempotencyKey),N=O?G??l():null,Le=Uo(m,N),te=0;for(;;){let le=o(ze=>Object.freeze({call:p,method:m.method,path:m.path,attempt:te,...N?{idempotencyKey:N}:{},...ze}),"stamp");u(le({phase:"attempt"}));let Dr=Jo(s,n),Nr=Zo(Dr.signal,m.signal),ue;try{ue=await Qr({...Le,signal:Nr.signal},e.auth);}catch(ze){ue=y(ke(ze));}finally{Nr.dispose(),Dr.cancel();}if(ue.ok)return u(le({phase:"settled",ok:true,reason:"ok"})),ue;let z=ue.error,Ee=Ko(z,te,{maxAttempts:w,rng:t,now:n.now(),aborted:m.signal?.aborted===true,...b!==void 0?{perCallMaxAttempts:b}:{},...e.errorPolicy!==void 0?{policy:e.errorPolicy}:{}}),Be={ok:false,code:z.code,reason:Ee.reason,...z.httpStatus!==void 0?{httpStatus:z.httpStatus}:{},...z.requestId!==void 0?{requestId:z.requestId}:{}};if(!Ee.retry)return u(le({phase:"settled",...Be})),y(z);if(u(le({phase:"retry",...Be,delayMs:Ee.delayMs})),await i(Ee.delayMs,m.signal),m.signal?.aborted===true)return u(le({phase:"settled",...Be,reason:"aborted"})),y(z);te+=1;}}o(d,"send");async function f(p){return ce(p,await Qo(e.auth))}o(f,"authorize");async function*c(p,m,C){u(Object.freeze({call:p,phase:"stream.open",method:m.method,path:m.path,attempt:0}));try{yield*e.auth.transport.stream(m,C);}catch{yield j({code:"internal_error",retryable:true,wireMessage:null,synthesized:true,lastEventId:null,serverRequestId:null});}}return o(c,"stream"),Object.freeze({send:d,authorize:f,stream:c})}o(U,"createRequestFunnel");function Uo(e,r){let n={};for(let[t,i]of Object.entries(e.headers??{}))t.toLowerCase()!==Mo&&(n[t]=i);return r!==null&&(n["Idempotency-Key"]=r),{...e,headers:n}}o(Uo,"assembleHeaders");function qo(){let e=0;return ()=>`efk_${Date.now().toString(36)}_${(e++).toString(36)}_${Math.random().toString(36).slice(2,12)}`}o(qo,"defaultIdempotencyKeyFactory");var Ho=10;function Ko(e,r,n){if(n.aborted)return {retry:false,reason:"aborted"};let t=$o(e);if(t==="quota")return {retry:false,reason:"daily-quota-exhausted"};if(t!=="burst"&&!W(e.code))return {retry:false,reason:"terminal-code"};let i=t==="burst"?"burst-throttle":"retryable-code";if(o(()=>{if(n.policy===void 0)return false;try{return !n.policy.shouldRetry(e.code,r)}catch{return false}},"policyVetoedRetry")())return {retry:false,reason:"terminal-code"};let s=o(()=>{if(n.policy===void 0)return null;let d;try{d=n.policy.maxAttempts(e.code);}catch{return null}return typeof d!="number"||!Number.isFinite(d)?null:Math.max(1,Math.min(Ho,Math.floor(d)))},"policyCeiling"),l=n.perCallMaxAttempts??s()??n.maxAttempts;if(r+1>=l)return {retry:false,reason:"attempts-exhausted"};let u=Go(e,n.now);return u!==null?u>No?{retry:false,reason:"server-reset-beyond-budget"}:{retry:true,reason:i,delayMs:u}:{retry:true,reason:i,delayMs:Hr(r,n.rng)}}o(Ko,"decideRetry");function $o(e){let r=e.code==="unknown"?oe(Xo(e.raw)):e.code;return r==="quotaExceeded"?"quota":r==="rateLimited"||e.httpStatus===429?"burst":null}o($o,"throttleKind");function Go(e,r){let n=Vo(e.raw);if(n!==null){let i=n-r;return i>0?i:0}let t=Wo(e.raw);return t===null?null:Math.round(t*1e3)}o(Go,"retryOverrideMs");function Wo(e){for(let r of rr(e)){let n=r.retry_after_seconds;if(typeof n=="number"&&Number.isFinite(n)&&n>=0)return n}return null}o(Wo,"findRetryAfterSeconds");function Vo(e){for(let r of rr(e)){let n=r.resets_at,t=Yo(n);if(t!==null)return t}return null}o(Vo,"findResetsAt");function rr(e){if(!vn(e))return [];let r=[e];for(let n of ["error","detail"]){let t=e[n];vn(t)&&r.push(t);}return r}o(rr,"candidateScopes");function Yo(e){if(typeof e=="number"&&Number.isFinite(e))return e<1e11?Math.round(e*1e3):Math.round(e);if(typeof e=="string"&&e.trim().length>0){let r=Date.parse(e);return Number.isFinite(r)?r:null}return null}o(Yo,"parseInstantMs");function Xo(e){for(let r of rr(e)){let n=r.code;if(typeof n=="string"&&n.length>0)return n}return null}o(Xo,"rawWireCode");function vn(e){return typeof e=="object"&&e!==null}o(vn,"isRecord");async function Qo(e){return e.mode==="anonymous"?{mode:"anonymous",publishableKey:e.publishableKey,userRef:e.userRef,...e.sessionId?{sessionId:e.sessionId}:{}}:{mode:"personalized",token:await e.identity.currentToken(),userRef:e.userRef,...e.sessionId?{sessionId:e.sessionId}:{}}}o(Qo,"resolveDeviceAuth");function Jo(e,r){let n=new AbortController,t=r.setTimeout(()=>n.abort(),e);return {signal:n.signal,cancel:o(()=>r.clearTimeout(t),"cancel")}}o(Jo,"boundedSignal");function Zo(e,r){let n=o(()=>{},"noop");if(!r)return {signal:e,dispose:n};let t=new AbortController;if(e.aborted||r.aborted)return t.abort(),{signal:t.signal,dispose:n};let i=o(()=>t.abort(),"onAbort");return e.addEventListener("abort",i,{once:true}),r.addEventListener("abort",i,{once:true}),{signal:t.signal,dispose:o(()=>{e.removeEventListener("abort",i),r.removeEventListener("abort",i);},"dispose")}}o(Zo,"mergeSignals");function ei(e,r,n){return e<=0||n?.aborted===true?Promise.resolve():new Promise(t=>{let i=r.setTimeout(()=>{n?.removeEventListener("abort",a),t();},e),a=o(()=>{r.clearTimeout(i),t();},"onAbort");n?.addEventListener("abort",a,{once:true});})}o(ei,"delayAbortable");function E(e){let r=h(e);return r===null?null:ni(r)}o(E,"parseColor");function h(e){if(typeof e=="number")return _n(e);if(typeof e!="string")return null;let r=e.trim();if(r.length===0)return null;if(r.startsWith("#"))return nr(r.slice(1));if(r.toLowerCase().startsWith("0x"))return nr(r.slice(2));if(r.toLowerCase().startsWith("rgb"))return ri(r);if(/^[0-9a-fA-F]+$/.test(r)){let n=nr(r);if(n!==null)return n}return /^\d+$/.test(r)?_n(Number.parseInt(r,10)):null}o(h,"toRgba");function nr(e){let r=e.trim();if(!/^[0-9a-fA-F]+$/.test(r))return null;if(r.length===3)return {r:tr(r[0]),g:tr(r[1]),b:tr(r[2]),a:1};if(r.length===6)return {r:Y(r,0),g:Y(r,2),b:Y(r,4),a:1};if(r.length===8){let n=Y(r,0);return {r:Y(r,2),g:Y(r,4),b:Y(r,6),a:n/255}}return null}o(nr,"fromHex");function ri(e){let r=e.indexOf("("),n=e.indexOf(")");if(r<0||n<0||n<r)return null;let t=e.slice(r+1,n).split(",").map(u=>u.trim());if(t.length<3)return null;let i=or(Number(t[0])),a=or(Number(t[1])),s=or(Number(t[2]));if(i===null||a===null||s===null)return null;let l=1;if(t.length>=4){let u=Number(t[3]);if(!Number.isFinite(u))return null;l=Math.min(1,Math.max(0,u));}return {r:i,g:a,b:s,a:l}}o(ri,"fromRgbFunc");function _n(e){if(!Number.isFinite(e))return null;let r=Math.trunc(e)>>>0,n=r>>>24&255;return {r:r>>>16&255,g:r>>>8&255,b:r&255,a:n===0?1:n/255}}o(_n,"argbIntToRgba");function Y(e,r){return Number.parseInt(e.slice(r,r+2),16)}o(Y,"byte");function tr(e){return Number.parseInt(`${e??"0"}${e??"0"}`,16)}o(tr,"dup");function or(e){return Number.isFinite(e)?Math.min(255,Math.max(0,Math.round(e))):null}o(or,"clampByte");function ni(e){if(e.a>=1)return M(e.r,e.g,e.b);let r=Math.round(e.a*1e3)/1e3;return `rgba(${e.r},${e.g},${e.b},${r})`}o(ni,"normalizeRgba");function M(e,r,n){return `#${ir(e)}${ir(r)}${ir(n)}`.toUpperCase()}o(M,"rgbToHex");function ir(e){return e.toString(16).padStart(2,"0")}o(ir,"hex2");var ti="#111111",ae="#FFFFFF",Te="#000000";function Cn(e){let r=h(e);if(r===null)return ae;let n=X(r),t=X({r:17,g:17,b:17}),i=X({r:255,g:255,b:255});return lr(n,i)>=lr(n,t)?ae:ti}o(Cn,"readableOn");function se(e,r){let n=Cn(e);return _(n,e)>=r?n:_(ae,e)>=_(Te,e)?ae:Te}o(se,"legibleOn");function F(e){let r=o(n=>e.reduce((t,i)=>Math.min(t,_(n,i)),Number.POSITIVE_INFINITY),"worst");return r(ae)>=r(Te)?ae:Te}o(F,"poleForGrounds");function X(e){let r=ar(e.r/255),n=ar(e.g/255),t=ar(e.b/255);return .2126*r+.7152*n+.0722*t}o(X,"relativeLuminance");function ar(e){return e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)}o(ar,"linearize");function lr(e,r){let n=Math.max(e,r),t=Math.min(e,r);return (n+.05)/(t+.05)}o(lr,"luminanceContrast");function _(e,r){let n=h(e),t=h(r);if(n===null||t===null)return 1;let i=t.a>=1?t:{...t},a=n.a>=1?n:kn(n,i);return lr(X(a),X(i))}o(_,"contrastRatio");function kn(e,r){let n=e.a,t=o((i,a)=>Math.round(i*n+a*(1-n)),"mix");return {r:t(e.r,r.r),g:t(e.g,r.g),b:t(e.b,r.b),a:1}}o(kn,"composite");function A(e,r){let n=h(e),t=h(r);if(n===null||t===null)return null;let i=n.a>=1?n:kn(n,{...t});return M(i.r,i.g,i.b)}o(A,"flattenOnto");var Rn=.05;function fe(e,r,n,t){let i=r[0];if(i===void 0)return n;let a=o(d=>r.every(f=>_(d,f)>=t),"reads");if(h(e)===null)return n;if(a(e))return e;let s=A(e,i),l=s===null?null:h(s),u=h(n);if(l===null||u===null)return n;for(let d=1;d<1/Rn;d+=1){let f=d*Rn,c=o((m,C)=>Math.round(m+(C-m)*f),"mix"),p=M(c(l.r,u.r),c(l.g,u.g),c(l.b,u.b));if(a(p))return p}return n}o(fe,"pushToContrast");function Tn(e,r,n){let t=e/255,i=r/255,a=n/255,s=Math.max(t,i,a),l=Math.min(t,i,a),u=(s+l)/2;if(s===l)return {h:0,s:0,l:u};let d=s-l,f=d/(1-Math.abs(2*u-1)),c;return s===t?(c=(i-a)/d*60,c<0&&(c=c+360)):s===i?c=((a-t)/d+2)*60:c=((t-i)/d+4)*60,{h:c,s:f,l:u}}o(Tn,"rgbToHsl");function ur(e){let{h:r,s:n,l:t}=e,i=(1-Math.abs(2*t-1))*n,a=r/60,s=i*(1-Math.abs(a%2-1)),l=t-i/2,u=Math.floor(a)%6,d=[[i,s,0],[s,i,0],[0,i,s],[0,s,i],[s,0,i],[i,0,s]],[f,c,p]=d[u];return {r:sr(f+l),g:sr(c+l),b:sr(p+l)}}o(ur,"hslToRgb");function sr(e){return Math.min(255,Math.max(0,Math.floor(e*255+.5)))}o(sr,"channel");var q=Object.freeze(["composerInput","sendButton","userBubble","assistantBubble","vetBubble","recordCard","vetVisitButton","primaryButton","link"]),Dl=Object.freeze(["backgroundColor","borderColor","borderRadius","textColor"]),v=4.5,oi=Object.freeze({});function ii(e){return q.includes(e)}o(ii,"isSlotName");function ai(e){let r=typeof e=="number"?e:typeof e=="string"?Number(e.trim()):Number.NaN;return Number.isFinite(r)?Math.max(0,r):null}o(ai,"parseRadius");function Sn(e){if(e===null||typeof e!="object"||Array.isArray(e))return null;let r={},n=false;for(let[t,i]of Object.entries(e)){if(!ii(t)||i===null||typeof i!="object")continue;let a=si(i);a!==null&&(r[t]=a,n=true);}return n?Object.freeze(r):null}o(Sn,"parseThemeSlots");function Se(e,r,n){return e[r]!==void 0?e[r]:e[n]}o(Se,"pick");function si(e){let r={},n=E(Se(e,"background_color","backgroundColor"));n!==null&&(r.backgroundColor=n);let t=E(Se(e,"border_color","borderColor"));t!==null&&(r.borderColor=t);let i=ai(Se(e,"border_radius","borderRadius"));i!==null&&(r.borderRadius=i);let a=E(Se(e,"text_color","textColor"));return a!==null&&(r.textColor=a),Object.keys(r).length===0?null:Object.freeze(r)}o(si,"parseSlot");function xe(e,r){return r===null||Object.keys(r).length===0?e??oi:e===null||Object.keys(e).length===0?r:Object.freeze({...e,...r})}o(xe,"mergeThemeSlots");var pe=3;function li(e,r){return e===void 0?r:r.length===0?[e]:r.map(n=>A(e,n)??n)}o(li,"seatsOf");function ui(e,r){let n=F(e);return e.every(t=>_(n,t)>=r)}o(ui,"someInkReads");function di(e,r){let n=r[0];return n===void 0?null:A(e,n)}o(di,"collapseUnsatisfiableFill");function ci(e){let r=se(e[0],v);return e.every(n=>_(r,n)>=v)?r:F(e)}o(ci,"inkFor");function xn(e,r){let n=false,t={};for(let i of q){let a=e[i];if(a===void 0)continue;let s=a.backgroundColor,l=r?.[i]??[],u=li(s,l),d={...a},f=false;if(s!==void 0&&u.length>1&&!ui(u,v)){let c=di(s,l);c!==null&&(d.backgroundColor=c,u=[c],f=true);}if(u.length>0){let c=a.textColor;if(s!==void 0)(c===void 0||u.some(p=>_(c,p)<v))&&(d.textColor=ci(u),f=true);else if(c!==void 0){let p=fe(c,u,F(u),v);p!==c&&(d.textColor=p,f=true);}if(a.borderColor!==void 0){let p=fe(a.borderColor,u,F(u),pe);p!==a.borderColor&&(d.borderColor=p,f=true);}}t[i]=f?Object.freeze(d):a,n=n||f;}return n?Object.freeze(t):e}o(xn,"guardSlotContrast");function L(e){if(e!==null&&typeof e=="object"&&!Object.isFrozen(e)){Object.freeze(e);for(let r of Object.keys(e))L(e[r]);}return e}o(L,"deepFreeze");var Fe=Object.freeze({content:0,heading:2,control:1.8,compact:1.5,badge:1.3}),wn={xs:4,sm:8,md:12,lg:16,xl:24,xxl:32},On={tile:5,xs:6,sm:10,md:14,lg:20,xl:28,pill:500},Fn={nano:8,small:9,micro:10,tiny:11,caption:13,bodyTight:15,body:17,subtitle:20,heading:22,verdict:24},fi={tight:1.15,snug:1.3,normal:1.4,relaxed:1.55},pi={regular:"400",medium:"500",bold:"700"},mi={eyebrow:1,monoWide:.9,headerBrand:-0.42,tight:-0.35},fr=0,Q="System",H="monospace",yi=["content","heading","control","compact","badge"];function gi(e){let r={};for(let n of yi)r[n]=e;return r}o(gi,"authoredTierSizes");function An(){return {family:Q,mono:H,fontUrl:null,families:{regular:Q,medium:Q,bold:Q,mono:H,monoMedium:H,monoBold:H},namedFaces:{regular:false,medium:false,bold:false,mono:false,monoMedium:false,monoBold:false},fontUrls:{},size:Fn,tierSizes:gi(Fn),lineHeight:fi,weight:pi,letterSpacing:mi,scale:1,maxScale:fr,scaleCaps:Fe}}o(An,"baseType");var In={},dr=Object.freeze({standard:Object.freeze([.2,0,0,1]),emphasized:Object.freeze([.2,.8,.2,1]),exit:Object.freeze([.4,0,1,1])});function cr(e){return `cubic-bezier(${e.join(", ")})`}o(cr,"cssCubicBezier");var Pn={duration:{instant:80,fast:140,normal:220,slow:320},spring:{gentle:{damping:18,stiffness:200}},easing:{standard:cr(dr.standard),emphasized:cr(dr.emphasized),exit:cr(dr.exit)},reducedMotion:false},bi={brand:"#10462E",brandSoft:"rgba(16,70,46,0.10)",brandSofter:"rgba(16,70,46,0.15)",brandBorder:"rgba(16,70,46,0.18)",borderHairlineGreen:"rgba(16,70,46,0.25)",brandBorderStrong:"rgba(16,70,46,0.55)",brandInk:"#10462E",linkInk:"#10462E",surface:"#FFFFFF",surfaceCream:"#FFFFFF",surfaceSubtle:"#F1F5F2",background:"#FFFFFF",borderRingCream:"#E4E4E4",chatGround:"#FFFFFF",composerFill:"#FFFFFF",composerBorder:"rgba(16,70,46,0.75)",shadow:"#0B3421",text:{primary:"#000000",secondary:"#0E462E",muted:"#6B6B6B",placeholder:"rgba(61,61,61,0.75)",onBrand:"#FFFFFF",metaCool:"#3D3D3D",timestamp:"rgba(61,61,61,0.75)"},primary:"#10462E",onPrimary:"#FFFFFF",accent:"#10462E",onAccent:"#FFFFFF",accentEdge:"#07C168",success:"#07C168",danger:"#C03410",onDanger:"#FFFFFF",errorRed:"#C03410",warningStrong:"#A45610",cautionAccent:"#D9821D",riskConcern:"#EFA700",sentiment:{up:"#07C168",neutral:"#FBC558",down:"#FF1B00"},badgeBgPositive:"rgba(7,193,104,0.12)",badgeBgCaution:"rgba(217,130,29,0.14)",badgeBgCritical:"rgba(192,52,16,0.06)",badgeBgNeutral:"rgba(107,107,107,0.12)",bubbleUser:"#10462E",bubbleAssistant:"#FFFFFF",bubbleVet:"#FFC3BC",onBubbleVet:"#000000",skeleton:"#E9F1E9",scanButtonPink:"#FFC3BC",checkupCardLowRiskBg:"rgba(7,193,104,0.10)",checkupCardConcernBg:"rgba(239,167,0,0.10)"},K=L({brightness:"light",highContrast:false,meta:{displayName:"Everfur",logoUrl:null,placeholder:null,hidePoweredBy:false},color:bi,space:wn,radius:On,type:An(),motion:Pn,slots:In}),hi={brand:"#6BD39A",brandSoft:"rgba(107,211,154,0.12)",brandSofter:"rgba(107,211,154,0.18)",brandBorder:"rgba(107,211,154,0.22)",borderHairlineGreen:"rgba(107,211,154,0.28)",brandBorderStrong:"rgba(107,211,154,0.55)",brandInk:"#6BD39A",linkInk:"#6BD39A",surface:"#1C1F23",surfaceCream:"#23272C",surfaceSubtle:"#23272C",background:"#15171A",borderRingCream:"#3A3F45",chatGround:"#1C1F23",composerFill:"#23272C",composerBorder:"rgba(107,211,154,0.75)",shadow:"#000000",text:{primary:"#F5F3F0",secondary:"#A9E4C4",muted:"#9A9A9A",placeholder:"rgba(255,255,255,0.55)",onBrand:"#0E1F17",metaCool:"#C9C9C9",timestamp:"rgba(245,243,240,0.7)"},primary:"#6BD39A",onPrimary:"#0E1F17",accent:"#6BD39A",onAccent:"#0E1F17",accentEdge:"#34D888",success:"#07C168",danger:"#F87171",onDanger:"#0E1F17",errorRed:"#FF6B5B",warningStrong:"#F0A35E",cautionAccent:"#D9821D",riskConcern:"#EFA700",sentiment:{up:"#07C168",neutral:"#FBC558",down:"#FF1B00"},badgeBgPositive:"rgba(7,193,104,0.18)",badgeBgCaution:"rgba(217,130,29,0.20)",badgeBgCritical:"rgba(185,28,28,0.22)",badgeBgNeutral:"rgba(255,255,255,0.10)",bubbleUser:"#6BD39A",bubbleAssistant:"#1C1F23",bubbleVet:"#FFC3BC",onBubbleVet:"#000000",skeleton:"#23272C",scanButtonPink:"#FFC3BC",checkupCardLowRiskBg:"rgba(7,193,104,0.16)",checkupCardConcernBg:"rgba(239,167,0,0.16)"},J=L({brightness:"dark",highContrast:false,meta:{displayName:"Everfur",logoUrl:null,placeholder:null,hidePoweredBy:false},color:hi,space:wn,radius:On,type:An(),motion:Pn,slots:In});function Z(e){return [e.surface,e.surfaceCream,e.surfaceSubtle,e.background,e.chatGround,e.composerFill]}o(Z,"textGrounds");function Dn(e){return [e.surface,e.surfaceCream,e.background,e.chatGround,e.composerFill]}o(Dn,"controlGrounds");function pr(e){return [e.chatGround,e.surface,e.surfaceCream]}o(pr,"linkGrounds");function Nn(e,r){return [e.surface,e.surfaceCream,e.background,e.chatGround,e.composerFill,...Mn(e,r)]}o(Nn,"statusGrounds");function Mn(e,r){return [A(r,e.surface)??e.surface,A(r,e.surfaceCream)??e.surfaceCream]}o(Mn,"washGrounds");function Ei(e){return [e.composerFill,e.chatGround]}o(Ei,"composerGrounds");var vi=new Set(["text.timestamp","text.placeholder","errorRed","warningStrong","composerBorder"]);function _i(e,r){let n=new Set(Z(r));return Z(e).every(t=>n.has(t))}o(_i,"onCompiledGrounds");function Ln(e){let r=e.color,n=(e.brightness==="dark"?J:K).color,t=(e.brightness==="dark"?K:J).color,i=Z(r),a=F(i)!==F(Z(n)),s=_i(r,n),l=r.danger===n.danger&&r.badgeBgCritical===n.badgeBgCritical,u=o((b,w,O,G,N,Le)=>{let te=w===O&&(b!=="errorRed"||l);return te&&s&&vi.has(b)?w:fe(te&&a?G:w,N,F(N),Le)},"ink"),d=o((b,w,O)=>u(`text.${b}`,r.text[b],n.text[b],t.text[b],w,O),"text"),f=o((b,w,O,G)=>u(b,w,n[b],t[b],O,G),"token"),c=o(b=>a&&r[b]===n[b]?t[b]:r[b],"tint"),p=r.primary,m=se(p,v),C=f("danger",r.danger,[...i,...Mn(r,r.badgeBgCritical)],v);return {...r,onPrimary:m,onAccent:se(r.accent,v),onDanger:_(m,C)>=v?m:se(C,v),brandSoft:c("brandSoft"),brandSofter:c("brandSofter"),brandBorder:c("brandBorder"),borderHairlineGreen:c("borderHairlineGreen"),brandInk:f("brandInk",r.brandInk,i,v),linkInk:f("linkInk",e.slots.link?.textColor??r.accent,pr(r),v),text:{...r.text,primary:d("primary",i,v),secondary:d("secondary",i,v),muted:d("muted",i,v),metaCool:d("metaCool",i,v),timestamp:d("timestamp",i,v),placeholder:d("placeholder",Dn(r),pe)},danger:C,errorRed:f("errorRed",r.errorRed,Nn(r,r.badgeBgCritical),v),warningStrong:f("warningStrong",r.warningStrong,Nn(r,r.badgeBgCaution),v),composerBorder:f("composerBorder",r.composerBorder,Ei(r),pe),brandBorderStrong:f("brandBorderStrong",r.brandBorderStrong,Dn(r),pe)}}o(Ln,"guardInks");var Ri="#23272C",Bn=4.5,Ci=.6,mr=.9,ki=.02,Ti="#FFFFFF",Si="#111111";function xi(e){return _(e,Ri)>=Bn&&Math.max(_(e,Ti),_(e,Si))>=Bn}o(xi,"readsOnDark");function qn(e){let r=h(e);if(r===null)return null;let{h:n,s:t,l:i}=Tn(r.r,r.g,r.b),a=Math.min(Math.max(i,Ci),mr);for(let l=0;;l+=1){let u=a+l*ki;if(u>mr)break;let d=ur({h:n,s:t,l:u}),f=M(d.r,d.g,d.b);if(xi(f))return f}let s=ur({h:n,s:t,l:mr});return M(s.r,s.g,s.b)}o(qn,"deriveDarkVariant");var Fi=7,zn=.05,wi="#000000",jn="#FFFFFF";function Oi(e,r,n,t){let i=A(e,r);if(i===null)return n;if(_(i,r)>=t)return i;let a=h(i),s=h(n);if(a===null||s===null)return n;for(let l=1;l<1/zn;l+=1){let u=l*zn,d=o((c,p)=>Math.round(c+(p-c)*u),"mix"),f=M(d(a.r,s.r),d(a.g,s.g),d(a.b,s.b));if(_(f,r)>=t)return f}return n}o(Oi,"pushContrast");function Ai(e,r){let n=Z(e),t=n[0],i=Un(t);for(let a of n){let s=Un(a);(r?s>i:s<i)&&(t=a,i=s);}return t}o(Ai,"hardestGround");function Un(e){let r=h(e);return r===null?0:X(r)}o(Un,"luminanceOf");function $(e,r){return A(e,r)??E(e)??r}o($,"solid");function Hn(e){let r=e.color,n=F(Z(r))===jn,t=n?jn:wi,i=Ai(r,n),a=o(l=>Oi(l,i,t,Fi),"text"),s={...r,brandSoft:$(r.brandSoft,r.surface),brandSofter:$(r.brandSofter,r.surface),brandBorder:a(r.brandBorder),borderHairlineGreen:a(r.borderHairlineGreen),brandBorderStrong:a(r.brandBorderStrong),brandInk:a(r.brandInk),linkInk:a(r.linkInk),borderRingCream:a(r.borderRingCream),composerBorder:a(r.composerBorder),text:{primary:a(r.text.primary),secondary:a(r.text.secondary),muted:a(r.text.muted),placeholder:a(r.text.placeholder),onBrand:r.text.onBrand,metaCool:a(r.text.metaCool),timestamp:a(r.text.timestamp)},badgeBgPositive:$(r.badgeBgPositive,r.surface),badgeBgCaution:$(r.badgeBgCaution,r.surface),badgeBgCritical:$(r.badgeBgCritical,r.surface),badgeBgNeutral:$(r.badgeBgNeutral,r.surface),checkupCardLowRiskBg:$(r.checkupCardLowRiskBg,r.surface),checkupCardConcernBg:$(r.checkupCardConcernBg,r.surface)};return L({...e,highContrast:true,color:s})}o(Hn,"deriveHighContrast");var gr=Object.freeze({cream:.03,subtle:.07,ring:.16}),Ii=gr.cream,Pi=gr.subtle,Di=gr.ring,Ni=10;function yr(e,r,n){let t=h(e),i=h(r);if(t===null||i===null)return null;let a=o((s,l)=>Math.round(s+(l-s)*n),"at");return M(a(t.r,i.r),a(t.g,i.g),a(t.b,i.b))}o(yr,"mix");function Kn(e){if(e===null)return {};let r=F([e]),n=yr(e,r,Ii),t=yr(e,r,Pi),i=yr(e,r,Di);return n===null||t===null||i===null?{}:{surface:e,background:e,chatGround:e,bubbleAssistant:e,surfaceCream:n,composerFill:n,surfaceSubtle:t,skeleton:t,borderRingCream:i}}o(Kn,"surfaceFamily");function $n(e){if(e===null)return {};let r=h(e);return r===null?{}:{danger:e,errorRed:e,badgeBgCritical:`rgba(${r.r},${r.g},${r.b},0.12)`}}o($n,"dangerFamily");function Gn(e,r,n){if(e===null)return r;let t=e/n.type.size.body;if(t===1)return n.type.size;let i={};for(let[a,s]of Object.entries(n.type.size))i[a]=Math.max(Ni,Math.round(s*t*10)/10);return i}o(Gn,"typeSizesFor");function Wn(e,r,n){if(e===null)return r;let t=e/n.space.xs,i=o(s=>Math.round(s*t),"s"),a=n.space;return {xs:i(a.xs),sm:i(a.sm),md:i(a.md),lg:i(a.lg),xl:i(a.xl),xxl:i(a.xxl)}}o(Wn,"spaceFor");function Vn(e,r){let n=e/r.radius.md,t=o(a=>Math.round(a*n),"s"),i=r.radius;return {tile:t(i.tile),xs:t(i.xs),sm:t(i.sm),md:t(i.md),lg:t(i.lg),xl:t(i.xl),pill:i.pill}}o(Vn,"radiiFor");var Mi=Object.freeze(["everfur","minimal","night"]),Li=Object.freeze({everfur:Object.freeze({}),minimal:Object.freeze({colorPrimary:"#111111",colorAccent:"#111111",borderRadius:6}),night:Object.freeze({colorScheme:"dark"})}),Oe=Object.freeze({fontSizeBase:Object.freeze({min:12,max:20,default:14}),borderRadius:Object.freeze({min:0,max:32,default:14}),spacingUnit:Object.freeze({min:3,max:6,default:4})});function we(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(we,"isRecord");function Bi(e){return typeof e=="string"&&Mi.includes(e.trim().toLowerCase())}o(Bi,"isPreset");function me(e,r){let n=e[r];return n??void 0}o(me,"present");var zi=16;function ji(e){if(typeof e=="number")return Number.isFinite(e)?e:void 0;if(typeof e!="string"||e.length>zi)return;let r=/^(-?\d+(?:\.\d+)?)(?: ?px)?$/i.exec(e.trim());return r===null?void 0:Number(r[1])}o(ji,"parsePx");var Ui=[["colorPrimary","primary_color"],["colorAccent","accent_color"],["colorBackground","background_color"],["colorText","text_color"]],qi=[["fontSizeBase","font_size_base"],["borderRadius","border_radius"],["spacingUnit","spacing_unit"]];function Yn(e){if(!we(e))return null;let r=Bi(e.theme)?Li[e.theme.trim().toLowerCase()]:{},n=we(e.variables)?e.variables:{},t={...r};for(let[c,p]of Object.entries(n))p!=null&&(t[c]=p);let i={},a=me(t,"colorScheme"),s=typeof a=="string"?a.trim().toLowerCase():null;(s==="light"||s==="dark"||s==="auto")&&(i.color_scheme=s);let l=s==="dark"?"_dark":"";for(let[c,p]of Ui){let m=me(t,c);m!==void 0&&(i[`${p}${l}`]=m);}let u=me(t,"colorDanger");u!==void 0&&(i[`danger_color${l}`]=u);let d=me(t,"fontFamily");typeof d=="string"&&d.trim().length>0&&(i.font_family=d.trim());for(let[c,p]of qi){let m=ji(me(t,c));m!==void 0&&(i[p]=m);}let f=e.rules;if(we(f)){let c={};for(let p of q){let m=f[p];we(m)&&(c[p]=m);}Object.keys(c).length>0&&(i.slots=c);}return Object.keys(i).length===0?null:Object.freeze(i)}o(Yn,"expandAppearance");var Zn=Object.freeze(["display_name","logo_url","logo_url_dark","primary_color","accent_color","primary_color_dark","accent_color_dark","brightness","color_scheme","font_family","font_url","fonts","font_urls","chat_placeholder","surface_style","radius_scale","accessibility_max_font_scale","slots","background_color","background_color_dark","text_color","text_color_dark","danger_color","danger_color_dark","font_size_base","border_radius","spacing_unit"]),ye="slots.",et=Object.freeze([1,2]);function Ie(e){return Object.keys(e).every(r=>r==="schemaVersion"||(e[r]??null)===null)}o(Ie,"isEmptyBranding");function rt(e){let r=e?.schemaVersion??null;return r===null||et.includes(r)}o(rt,"isKnownBrandingSchema");function nt(e){return new Set(["hide_powered_by",...e?.lockedFields??[]])}o(nt,"lockedFieldsOf");function Hi(e){return e==="hide_powered_by"||Zn.includes(e)?true:e.startsWith(ye)&&q.includes(e.slice(ye.length))}o(Hi,"isThemeLockName");function re(e){if(e===null||typeof e!="object")return null;let r=e,n=Xn(r),t=Yn(g(r,"appearance")),i=t===null?n:Ki(Xn(t),n);return Ie(i)?null:Object.freeze(i)}o(re,"parseClientBranding");function Ki(e,r){let n={...e};for(let[i,a]of Object.entries(r))a!=null&&(n[i]=a);let t=xe(e.slots??null,r.slots??null);return n.slots=Object.keys(t).length===0?null:t,n}o(Ki,"overlayFlat");function Xn(e){return {displayName:ee(g(e,"display_name","displayName")),logoUrl:ee(g(e,"logo_url","logoUrl")),primaryColor:E(g(e,"primary_color","primaryColor")),accentColor:E(g(e,"accent_color","accentColor")),brightness:Vi(g(e,"brightness","color_scheme","colorScheme")),fontFamily:ee(g(e,"font_family","fontFamily")),fontUrl:ee(g(e,"font_url","fontUrl")),fonts:Qn(g(e,"fonts")),fontUrls:Qn(g(e,"font_urls","fontUrls")),placeholder:ee(g(e,"chat_placeholder","placeholder","chatPlaceholder")),hidePoweredBy:$i(g(e,"hide_powered_by","hidePoweredBy")),primaryColorDark:E(g(e,"primary_color_dark","primaryColorDark")),accentColorDark:E(g(e,"accent_color_dark","accentColorDark")),surfaceStyle:Jn(g(e,"surface_style","surfaceStyle"),Gi),radiusScale:Jn(g(e,"radius_scale","radiusScale"),Wi),logoUrlDark:ee(g(e,"logo_url_dark","logoUrlDark")),slots:Sn(g(e,"slots")),accessibilityMaxFontScale:Xi(g(e,"accessibility_max_font_scale","accessibilityMaxFontScale")),lockedFields:Ji(g(e,"locked_fields","lockedFields")),schemaVersion:Qi(g(e,"schema_version","schemaVersion")),backgroundColor:E(g(e,"background_color","backgroundColor")),backgroundColorDark:E(g(e,"background_color_dark","backgroundColorDark")),textColor:E(g(e,"text_color","textColor")),textColorDark:E(g(e,"text_color_dark","textColorDark")),dangerColor:E(g(e,"danger_color","dangerColor")),dangerColorDark:E(g(e,"danger_color_dark","dangerColorDark")),fontSizeBase:br(g(e,"font_size_base","fontSizeBase"),Oe.fontSizeBase),borderRadius:br(g(e,"border_radius","borderRadius"),Oe.borderRadius),spacingUnit:br(g(e,"spacing_unit","spacingUnit"),Oe.spacingUnit)}}o(Xn,"parseFlat");function br(e,r){let n=Ae(typeof e=="string"?e.trim().replace(/px$/i,""):e);return n===null?null:Math.min(r.max,Math.max(r.min,n))}o(br,"parseClamped");function $i(e){if(typeof e=="boolean")return e;if(typeof e=="string"){let r=e.trim().toLowerCase();if(r==="true")return true;if(r==="false")return false}return null}o($i,"parseBool");function g(e,...r){for(let n of r)if(Object.prototype.hasOwnProperty.call(e,n)){let t=e[n];if(t!==void 0)return t}}o(g,"pick");function ee(e){if(typeof e!="string")return null;let r=e.trim();return r.length===0?null:r}o(ee,"parseNonEmptyString");var ge=["regular","medium","bold","mono","monoMedium","monoBold"];function Qn(e){if(e===null||typeof e!="object"||Array.isArray(e))return null;let r=e,n={};for(let t of ge){let i=ee(g(r,t));i!==null&&(n[t]=i);}return Object.keys(n).length===0?null:Object.freeze(n)}o(Qn,"parseFaceMap");var Gi=["white","cream","subtle"],Wi=["sharp","default","round"];function Jn(e,r){if(typeof e!="string")return null;let n=e.trim().toLowerCase();return r.includes(n)?n:null}o(Jn,"parseEnum");function Vi(e){if(typeof e!="string")return null;let r=e.trim().toLowerCase();return r==="light"||r==="dark"||r==="auto"?r:null}o(Vi,"parseBrightness");function Ae(e){let r=typeof e=="number"?e:typeof e=="string"?Number(e.trim()):Number.NaN;return Number.isFinite(r)&&(typeof e!="string"||e.trim().length>0)?r:null}o(Ae,"parseNumber");var Yi=1,tt=3.1;function Xi(e){let r=Ae(e);return r===null?null:r<=0?0:Math.min(tt,Math.max(Yi,r))}o(Xi,"parseMaxFontScale");function Qi(e){if(e==null)return null;let r=Ae(e);return r!==null&&Number.isInteger(r)&&r>=1?r:0}o(Qi,"parseSchemaVersion");function hr(e){let r=e.trim();return r.startsWith(ye)?r:r.replace(/([a-z0-9])([A-Z])/g,"$1_$2").toLowerCase()}o(hr,"toWireName");function Ji(e){if(!Array.isArray(e))return null;let r=[];for(let n of e){if(typeof n!="string")continue;let t=hr(n);Hi(t)&&!r.includes(t)&&r.push(t);}return r.length===0?null:Object.freeze(r)}o(Ji,"parseLockedFields");function Er(e){if(e===null)return null;let r=e.trim();return r.length===0?null:/^https:\/\/\S+$/i.test(r)?r:null}o(Er,"hardenHttpsUrl");function ot(e,r){if(r===null||Ie(r))return e;let n=(r.brightness==="light"||r.brightness==="dark")&&r.brightness!==e.brightness?r.brightness==="dark"?J:K:e,t=n.brightness==="dark"?J:K,i=n.brightness==="dark",a=i?r.primaryColorDark??vr(r.primaryColor):r.primaryColor,s=i?r.accentColorDark??vr(r.accentColor):r.accentColor,l=a??n.color.primary,u=s??n.color.accent,d=a!==null&&ta(r,l,t,i),f=d?t.color.primary:l,c=a!==null&&!d?h(f):null,p=o(N=>Math.round(N+(255-N)*.4),"lift"),m=c!==null?{brand:f,bubbleUser:f,brandInk:f,text:{...n.color.text,secondary:f},brandSoft:`rgba(${c.r}, ${c.g}, ${c.b}, 0.10)`,brandSofter:`rgba(${c.r}, ${c.g}, ${c.b}, 0.15)`,brandBorder:`rgba(${c.r}, ${c.g}, ${c.b}, 0.20)`,borderHairlineGreen:`rgba(${c.r}, ${c.g}, ${c.b}, 0.28)`,brandBorderStrong:`rgba(${c.r}, ${c.g}, ${c.b}, 0.55)`,composerBorder:`rgba(${c.r}, ${c.g}, ${c.b}, 0.75)`,accentEdge:`rgb(${p(c.r)}, ${p(c.g)}, ${p(c.b)})`}:d?oa(t,n.color.text):{},C=(i?r.backgroundColorDark:r.backgroundColor)??null,b=Kn(C),w={...n.color,...b},O=(i?r.textColorDark:r.textColor)??null,G={brightness:n.brightness,highContrast:n.highContrast,meta:{displayName:r.displayName??n.meta.displayName,logoUrl:(i?r.logoUrlDark??r.logoUrl:r.logoUrl)??n.meta.logoUrl,placeholder:r.placeholder??n.meta.placeholder,hidePoweredBy:r.hidePoweredBy??n.meta.hidePoweredBy},color:{...n.color,...m,...b,...$n((i?r.dangerColorDark??vr(r.dangerColor??null):r.dangerColor)??null),...O!==null?{text:{...m.text??n.color.text,primary:O}}:{},...na(r.surfaceStyle??null,w),primary:f,accent:u,onPrimary:n.color.onPrimary,onAccent:n.color.onAccent},space:Wn(r.spacingUnit??null,n.space,t),radius:r.borderRadius!=null?Vn(r.borderRadius,t):aa(r.radiusScale??null,n.radius,t),type:{...n.type,...ra(n.type,r),size:Gn(r.fontSizeBase??null,n.type.size,t),maxScale:r.accessibilityMaxFontScale??n.type.maxScale},motion:n.motion,slots:xe(n.slots,r.slots??null)};return L(G)}o(ot,"withServerBranding");var Zi={regular:["regular"],medium:["medium","regular"],bold:["bold","medium","regular"],mono:["mono"],monoMedium:["monoMedium","mono"],monoBold:["monoBold","monoMedium","mono"]},ea=[["regular","medium","bold"],["mono","monoMedium","monoBold"]];function _r(e){return e==="mono"||e==="monoMedium"||e==="monoBold"}o(_r,"isMonoFace");function ra(e,r){let n=r.fonts??{},t=r.fontUrls??{},i={...e.families},a={...e.namedFaces},s={...e.fontUrls};for(let l of ge){let u=Zi[l].map(c=>n[c]).find(c=>c!==void 0),d=_r(l)?null:r.fontFamily;u!==void 0?(i[l]=u,a[l]=true):d!==null&&(i[l]=d,a[l]=false);let f=t[l]??(l==="regular"?r.fontUrl:null)??null;f!==null?s[l]=f:u!==void 0&&delete s[l];}for(let l of ea)for(let u of l)a[u]&&l.some(d=>d!==u&&i[d]===i[u])&&(a[u]=false);return {family:i.regular,mono:i.mono,fontUrl:s.regular??null,families:i,namedFaces:a,fontUrls:s}}o(ra,"mergeFaces");function vr(e){return e===null?null:qn(e)}o(vr,"darkVariantOf");function na(e,r){if(e===null)return {};let n=r;return {chatGround:e==="white"?n.surface:e==="subtle"?n.surfaceSubtle:n.surfaceCream}}o(na,"surfaceOf");function it(e,r){return e==null?false:E(e)===E(r)}o(it,"sameColor");function ta(e,r,n,t){return it(r,n.color.primary)?true:t&&(e.primaryColorDark??null)===null&&it(e.primaryColor,K.color.primary)}o(ta,"isCompiledPrimary");function oa(e,r){let n=e.color;return {text:{...r,secondary:n.text.secondary},brand:n.brand,bubbleUser:n.bubbleUser,brandInk:n.brandInk,brandSoft:n.brandSoft,brandSofter:n.brandSofter,brandBorder:n.brandBorder,borderHairlineGreen:n.borderHairlineGreen,brandBorderStrong:n.brandBorderStrong,composerBorder:n.composerBorder,accentEdge:n.accentEdge}}o(oa,"compiledBrandFamily");var ia={sharp:.5,default:1,round:1.5};function aa(e,r,n){if(e===null)return r;let t=ia[e],i=n.radius,a=o(s=>Math.round(s*t),"s");return {tile:a(i.tile),xs:a(i.xs),sm:a(i.sm),md:a(i.md),lg:a(i.lg),xl:a(i.xl),pill:i.pill}}o(aa,"radiusOf");var sa="Everfur",la=.5;function ua(e){let r=e?.branding??null,n=rt(r)?r:null,t=pa(e?.clientOverride??null,nt(n)),i=e?.colorScheme==="dark"?"dark":"light",a=t?.brightness??n?.brightness??"light",u=ot((a==="auto"?i:a)==="dark"?J:K,at(n)),d=ot(u,at(t));return Ra(d,e)}o(ua,"resolveTheme");function pu(e,r,n){return ua({...n,branding:re(r),clientOverride:re(e)})}o(pu,"previewTheme");function da(e){return e==="placeholder"?"chat_placeholder":hr(e)}o(da,"wireNameOf");var ca={brightness:["color_scheme"],fontUrl:["font_family"],fonts:["font_family"],fontUrls:["font_url","font_family","fonts"],primaryColorDark:["primary_color"],accentColorDark:["accent_color"],logoUrlDark:["logo_url"],backgroundColorDark:["background_color"],textColorDark:["text_color"],dangerColorDark:["danger_color"],borderRadius:["radius_scale"],radiusScale:["border_radius"]};function fa(e,r){return r.has(da(e))?true:(ca[e]??[]).some(n=>r.has(n))}o(fa,"isLocked");function pa(e,r){if(e===null)return null;let n=false,t={...e};for(let s of Object.keys(e))(e[s]??null)!==null&&(fa(s,r)||s==="lockedFields")&&(t[s]=null,n=true);let i=t.slots??null;if(i!==null){let s={},l=false;for(let u of q){let d=i[u];d!==void 0&&(r.has(`${ye}${u}`)?l=true:s[u]=d);}l&&(t.slots=Object.keys(s).length===0?null:Object.freeze(s),n=true);}if(!n)return e;let a=Object.freeze(t);return Ie(a)?null:a}o(pa,"withoutFields");function at(e){return e===null||e.brightness===null?e:Object.freeze({...e,brightness:null})}o(at,"withoutBrightness");function ma(e,r){if(r===1)return e;let n={};for(let[t,i]of Object.entries(e))n[t]=Math.round(i*r*10)/10;return n}o(ma,"scaledSizes");function ya(e){return e===void 0||!Number.isFinite(e)?1:Math.max(la,e)}o(ya,"effectiveScale");var st=["content","heading","control","compact","badge"];function ga(e){if(!(e>0))return Fe;let r={};for(let n of st){let t=Fe[n];r[n]=t===0?0:Math.min(t,e);}return r}o(ga,"tierCaps");function ba(e,r){return r>0?Math.min(e,r):e}o(ba,"capped");function ha(e,r,n,t){let i={};for(let a of st)i[a]=t?ma(e,ba(r,n[a])):e;return i}o(ha,"sizesByTier");function Ea(e){return {composerInput:[e.composerFill],sendButton:[e.composerFill],userBubble:[e.bubbleUser],assistantBubble:[e.chatGround,e.surfaceCream],vetBubble:[e.bubbleVet],recordCard:[e.surface],vetVisitButton:[e.primary],primaryButton:[e.brand],link:pr(e)}}o(Ea,"slotGrounds");function va(e,r){try{let n=e(r);return n===!0||n===!1?n:null}catch{return null}}o(va,"registration");function _a(e,r){let n=r?.isFontRegistered,t=r?.platformMonoFamily?.trim()||null;if(n===void 0&&t===null)return {family:e.family,mono:e.mono,families:e.families,namedFaces:e.namedFaces};let i={...e.families},a={...e.namedFaces};for(let s of ge)!(i[s]===Q||i[s]===H)&&n!==void 0&&va(n,i[s])===false&&(i[s]=_r(s)?H:Q,a[s]=false),t!==null&&_r(s)&&i[s]===H&&(i[s]=t);return {family:i.regular,mono:i.mono,families:i,namedFaces:a}}o(_a,"platformFaces");function Ra(e,r){let n=e.meta.displayName.trim().length===0?sa:e.meta.displayName,t=Er(e.meta.logoUrl),i={};for(let C of ge){let b=e.type.fontUrls[C];b!==void 0&&(i[C]=Er(b));}let a=i.regular??null,l=r?.reducedMotion===true?{duration:{instant:0,fast:0,normal:0,slow:0},spring:{gentle:{damping:100,stiffness:1e3}},easing:e.motion.easing,reducedMotion:true}:e.motion,u=Number.isFinite(e.type.maxScale)?e.type.maxScale:fr,d=ya(r?.textScale),f=ga(u),c=ha(e.type.size,d,f,r?.scaleTypeSizes===true),p=Ln(e),m={brightness:e.brightness,highContrast:false,meta:{displayName:n,logoUrl:t,placeholder:e.meta.placeholder,hidePoweredBy:e.meta.hidePoweredBy},color:p,space:e.space,radius:e.radius,type:{...e.type,..._a(e.type,r),fontUrl:a,fontUrls:i,size:c.content,tierSizes:c,scale:d,maxScale:u,scaleCaps:f},motion:l,slots:xn(e.slots,Ea(p))};return r?.highContrast===true?Hn(L(m)):L(m)}o(Ra,"finalize");var lt="/widget/v1/entitlements",Ca=304,ka=Object.freeze({kind:"notModified"});async function Eu(e,r={},n=U({auth:e})){let t=await n.send("entitlements.fetch",Sa(r));return t.ok?xa(t.value):t.error.httpStatus===Ca?ka:{kind:"failed",error:t.error}}o(Eu,"fetchEntitlements");var Ta=64;function Sa(e){let r={};return Rr(e.cachedRevision)&&(r["if-none-match"]=`"${e.cachedRevision}"`),e.region&&e.region.length<=Ta?{method:"GET",path:lt,headers:r,query:{region:e.region}}:{method:"GET",path:lt,headers:r}}o(Sa,"buildRequest");function xa(e){if(e===null||typeof e!="object"||!Rr(e.revision))return ut();let r=typeof e.region=="string"?e.region:"",n=Rr(e.ttl_seconds)?e.ttl_seconds:0;return Object.freeze({kind:"updated",revision:e.revision,region:r,ttlSeconds:n,decisions:wa(e.capabilities),branding:Fa(e),livemode:e.livemode!==false})}o(xa,"parseUpdated");function Fa(e){let r=re(e.branding);if(r!==null)return r;let n=e.render_hints;if(n!==null&&typeof n=="object"){let t=re(n.branding);return t!==null?t:re(n)}return null}o(Fa,"parseBranding");function wa(e){if(e===null||typeof e!="object")return Object.freeze([]);let r=[];for(let[n,t]of Object.entries(e))Oa(t)&&r.push(Object.freeze({resource:n,granted:true}));return Object.freeze(r)}o(wa,"mapCapabilities");function Oa(e){return typeof e=="object"&&e!==null&&e.enabled===true}o(Oa,"isEnabled");function ut(){return {kind:"failed",error:S("internalError",{retryable:true,wireMessage:"malformed entitlements response"})}}o(ut,"malformed");function Rr(e){return typeof e=="number"&&Number.isFinite(e)}o(Rr,"isFiniteNumber");var Aa=Object.freeze({regular:"regular",medium:"medium",bold:"bold",mono:"regular",monoMedium:"medium",monoBold:"bold"});function Ia(e,r){let n=e.type,t=n.families[r];return r==="mono"||n.namedFaces[r]?{fontFamily:t}:{fontFamily:t,fontWeight:n.weight[Aa[r]]}}o(Ia,"face");var dt=Object.freeze({dog:"dog",canine:"dog",k9:"dog",puppy:"dog",cat:"cat",feline:"cat",kitten:"cat"});function ct(e){if(typeof e!="string")return null;let r=e.trim().toLowerCase();return Object.prototype.hasOwnProperty.call(dt,r)?dt[r]:null}o(ct,"canonicalPetSpecies");var ft=50,Pa=128,Cr=120,pt=120,Da=2e3,mt=120,Na=80,bt=new Set(["male","female","unknown"]),ht=new Set(["day","month","year"]),Et=new Set(["low","medium","high","athletic"]),vt=new Set(["indoor","outdoor","both"]),_t=new Set(["mild","moderate","severe"]),Ma=/^(\d{4})-(\d{2})-(\d{2})$/,Rt=[["sex","sex"],["spayedNeutered","spayed_neutered"],["birthDate","birth_date"],["birthDatePrecision","birth_date_precision"],["activityLevel","activity_level"],["indoorOutdoor","indoor_outdoor"],["foodBrand","food_brand"],["foodType","food_type"],["microchipId","microchip_id"]],Ct=[["allergies","allergies"],["medications","medications"],["supplements","supplements"],["conditions","conditions"]];Object.freeze([...Rt,...Ct].map(([e])=>e));function La(e){let r=Ma.exec(e);if(r===null)return false;let[n,t,i]=[Number(r[1]),Number(r[2]),Number(r[3])],a=new Date(Date.UTC(n,t-1,i));return a.getUTCFullYear()===n&&a.getUTCMonth()===t-1&&a.getUTCDate()===i}o(La,"isRealDate");var he=o(e=>(r,n)=>typeof n=="string"&&e.has(n)?null:`${r} must be one of ${[...e].join(", ")}`,"oneOf"),Ba=o((e,r)=>typeof r=="boolean"?null:`${e} must be true or false`,"boolean"),De=o((e,r)=>typeof r=="string"&&La(r)?null:`${e} must be a real date written YYYY-MM-DD`,"date"),I=o((e,r={})=>(n,t)=>{if(typeof t!="string")return `${n} must be a string`;if(ie(t))return `${n} contains an unpaired surrogate and cannot be encoded`;let i=r.trimmed?t.trim():t;if(r.required&&i.length===0)return `${n} is required and must not be blank`;let a=V(i);return a<=e?null:`${n} is ${a} characters; the server accepts at most ${e}`},"text"),za={sex:he(bt),spayedNeutered:Ba,birthDate:De,birthDatePrecision:he(ht),activityLevel:he(Et),indoorOutdoor:he(vt),foodBrand:I(mt),foodType:I(mt),microchipId:I(Na)},kr=["ref","ref",false,I(Pa,{required:true,trimmed:true})],Tr=["notes","notes",false,I(Da,{trimmed:true})],yt=[kr,["name","name",true,I(Cr,{required:true,trimmed:true})],["dose","dose",false,I(pt,{trimmed:true})],["frequency","frequency",false,I(pt,{trimmed:true})],["startDate","start_date",false,De],["endDate","end_date",false,De],Tr],ja={allergies:[kr,["allergen","allergen",true,I(Cr,{required:true,trimmed:true})],["severity","severity",false,he(_t)],Tr],medications:yt,supplements:yt,conditions:[kr,["conditionName","condition_name",true,I(Cr,{required:true,trimmed:true})],["diagnosedDate","diagnosed_date",false,De],Tr]};function Ua(e,r,n){let t=`${e}[${r}]`;if(typeof n!="object"||n===null||Array.isArray(n))return {error:`${t} must be an object`};let i=n,a={};for(let[u,d,f,c]of ja[e]){let p=i[u];if(p==null){if(f)return {error:`${t}.${u} is required`};p===null&&(a[d]=null);continue}let m=c(`${t}.${u}`,p);if(m!==null)return {error:m};a[d]=p;}let s=a.start_date,l=a.end_date;return typeof s=="string"&&typeof l=="string"&&l<s?{error:`${t}.endDate must not be before startDate`}:{item:a}}o(Ua,"itemToWire");function qa(e,r){if(!Array.isArray(r))return {error:`${e} must be an array (send [] to clear it)`};if(r.length>ft)return {error:`${e} has ${r.length} items; the server accepts at most ${ft}`};let n=[],t=new Set;for(let i=0;i<r.length;i+=1){let a=Ua(e,i,r[i]);if("error"in a)return a;let s=a.item.ref;if(typeof s=="string"){let l=s.trim();if(t.has(l))return {error:`${e}: ref ${JSON.stringify(l)} is used twice; a ref names one item`};t.add(l);}n.push(a.item);}return {items:n}}o(qa,"listToWire");function kt(e,r){let n=e,t={};for(let[s,l]of Rt){let u=n[s];if(u!==void 0){if(u!==null){let d=za[s](s,u);if(d!==null)return {error:d}}t[l]=u;}}let i=n.birthDate!==void 0,a=n.birthDatePrecision!==void 0;if(i!==a||i&&n.birthDate===null!=(n.birthDatePrecision===null))return {error:"birthDate and birthDatePrecision must be sent together, both set or both null"};for(let[s,l]of Ct){let u=n[s];if(u===void 0)continue;let d=qa(s,u);if("error"in d)return d;t[l]=d.items;}return Object.keys(t).length>0&&r!==void 0&&ct(r)===null?{error:"health fields need a pet Everfur reads as a dog or a cat (dog, canine, k9, puppy, cat, feline, kitten)"}:{body:t}}o(kt,"petHealthToWire");var R=o(e=>typeof e=="string"?e:null,"str"),be=o((e,r)=>typeof r=="string"&&e.has(r)?r:null,"pick"),Ha=o(e=>typeof e=="boolean"?e:null,"bool");function Pe(e,r){return Array.isArray(e)?Object.freeze(e.flatMap(n=>{if(typeof n!="object"||n===null||Array.isArray(n))return [];let t=r(n);return t===null?[]:[t]})):Object.freeze([])}o(Pe,"itemsFromWire");function gt(e){let r=R(e.name);return r===null||r.length===0?null:Object.freeze({ref:R(e.ref),name:r,dose:R(e.dose),frequency:R(e.frequency),startDate:R(e.start_date),endDate:R(e.end_date),notes:R(e.notes)})}o(gt,"medicationFromWire");function Tt(e){let r=e.profile_version;return Object.freeze({profileVersion:typeof r=="number"&&Number.isInteger(r)&&r>=0?r:0,sex:be(bt,e.sex),spayedNeutered:Ha(e.spayed_neutered),birthDate:R(e.birth_date),birthDatePrecision:be(ht,e.birth_date_precision),activityLevel:be(Et,e.activity_level),indoorOutdoor:be(vt,e.indoor_outdoor),foodBrand:R(e.food_brand),foodType:R(e.food_type),microchipId:R(e.microchip_id),allergies:Pe(e.allergies,n=>{let t=R(n.allergen);return t===null||t.length===0?null:Object.freeze({ref:R(n.ref),allergen:t,severity:be(_t,n.severity),notes:R(n.notes)})}),medications:Pe(e.medications,gt),supplements:Pe(e.supplements,gt),conditions:Pe(e.conditions,n=>{let t=R(n.condition_name);return t===null||t.length===0?null:Object.freeze({ref:R(n.ref),conditionName:t,diagnosedDate:R(n.diagnosed_date),notes:R(n.notes)})})})}o(Tt,"petHealthFromWire");var Sr=100,xr=50,Fr=100,wr=50,Or=500,Ka=128,$a=6e4;function D(e){return S("validationFailed",{retryable:false,wireMessage:e})}o(D,"invalid");function ne(e,r,n){if(typeof r!="string")return D(`${e} must be a string`);let t=V(r);return t<=n?null:D(`${e} is ${t} characters; the server accepts at most ${n}`)}o(ne,"checkString");function Ne(e,r,n){return typeof r=="number"&&Number.isFinite(r)&&r>=0&&r<=n?null:D(`${e} must be a finite number between 0 and ${n}`)}o(Ne,"outOfRange");function St(e,r){if(typeof e!="string")return D("pet_ref must be a string");if(e.trim().length===0)return D("pet_ref must not be blank");if(ie(e))return D("pet_ref contains an unpaired surrogate and cannot be encoded");if(r!=null&&typeof r!="object")return D("profile must be an object");let n=[ne("pet_ref",e,Ka)];return r?.name!==void 0&&n.push(ne("name",r.name,Sr)),r?.species!==void 0&&n.push(ne("species",r.species,xr)),r?.breed!==void 0&&n.push(ne("breed",r.breed,Fr)),r?.ageYears!==void 0&&n.push(Ne("age_years",r.ageYears,wr)),r?.weightKg!==void 0&&n.push(Ne("weight_kg",r.weightKg,Or)),n.find(t=>t!==null)??null}o(St,"validate");function Ft(e,r){let n=kt(e,r);return "error"in n?{error:D(n.error)}:n}o(Ft,"healthToWire");function Ga(e){if(typeof e!="object"||e===null)return {error:D("patch must be an object")};let r=e,n=[["name","name",a=>ne("name",a,Sr)],["species","species",a=>ne("species",a,xr)],["breed","breed",a=>ne("breed",a,Fr)],["ageYears","age_years",a=>Ne("age_years",a,wr)],["weightKg","weight_kg",a=>Ne("weight_kg",a,Or)]],t={};for(let[a,s,l]of n){let u=r[a];if(u!==void 0){if(u!==null){let d=l(u);if(d!==null)return {error:d}}t[s]=u;}}let i=Ft(r,r.species);return "error"in i?i:(Object.assign(t,i.body),Object.keys(t).length===0?{error:D("patch must change at least one field")}:{body:t})}o(Ga,"patchToWire");function Wa(e){if(e==null)return {body:{}};let r=Ft(e,e.species);return "error"in r?r:{body:{...e.name!==void 0?{name:e.name}:{},...e.species!==void 0?{species:e.species}:{},...e.breed!==void 0?{breed:e.breed}:{},...e.ageYears!==void 0?{age_years:e.ageYears}:{},...e.weightKg!==void 0?{weight_kg:e.weightKg}:{},...r.body}}}o(Wa,"toWire");var P=o(e=>typeof e=="string"?e:null,"str"),Me=o(e=>typeof e=="number"&&Number.isFinite(e)?e:null,"num");function xt(e,r){let n=typeof e=="object"&&e!==null?e:{};return Object.freeze({petRef:P(n.pet_ref)??r,name:P(n.name),species:P(n.species),breed:P(n.breed),ageYears:Me(n.age_years),weightKg:Me(n.weight_kg)})}o(xt,"fromWire");function Ar(e){if(typeof e!="object"||e===null)return null;let r=e,n=P(r.pet_ref);return n===null||n.length===0?null:Object.freeze({petId:P(r.pet_id),petRef:n,name:P(r.name),species:P(r.species),breed:P(r.breed),ageYears:Me(r.age_years),weightKg:Me(r.weight_kg),updatedAt:P(r.updated_at)})}o(Ar,"widgetPetFromWire");function Va(e){let r=Ar(e);return r===null?null:Object.freeze({...r,...Tt(e)})}o(Va,"widgetPetProfileFromWire");function Ya(e){let r=Array.isArray(e)?e:typeof e=="object"&&e!==null&&Array.isArray(e.pets)?e.pets:[];return Object.freeze(r.flatMap(n=>{let t=Ar(n);return t===null?[]:[t]}))}o(Ya,"petListFromWire");function Xa(e){return Qa(U({auth:e}),U({auth:e,unaryTimeoutMs:$a}))}o(Xa,"createPetsRepository");function Qa(e,r=e){let n=o((i,a)=>a?{...i,signal:a}:i,"withSignal"),t=o(i=>St(i,void 0)??`/widget/v1/pets/${encodeURIComponent(i)}`,"petPath");return {async list(i){let a=await e.send("pets.list",n({method:"GET",path:"/widget/v1/pets"},i?.signal));return a.ok?x(Ya(a.value)):y(a.error)},async registerPet(i,a,s){let l=St(i,a);if(l!==null)return y(l);let u=Wa(a);if("error"in u)return y(u.error);let f={method:"POST",path:`/widget/v1/pets/${encodeURIComponent(i)}`,body:u.body},c=await e.send("pets.registerPet",s?.signal?{...f,signal:s.signal}:f);return c.ok?x(xt(c.value,i)):y(c.error)},async updatePet(i,a,s){let l=t(i);if(typeof l!="string")return y(l);let u=Ga(a);if("error"in u)return y(u.error);let d=await e.send("pets.updatePet",n({method:"PATCH",path:l,body:u.body},s?.signal));return d.ok?x(xt(d.value,i)):y(d.error)},async getPetProfile(i,a){let s=t(i);if(typeof s!="string")return y(s);let l=await e.send("pets.getPetProfile",n({method:"GET",path:`${s}/profile`},a?.signal));if(!l.ok)return y(l.error);let u=Va(l.value);return u===null?y(S("internalError",{retryable:false,httpStatus:502,wireMessage:"the pet profile response carried no pet_ref"})):x(u)},async deletePet(i,a){let s=t(i);if(typeof s!="string")return y(s);let l=await e.send("pets.deletePet",n({method:"DELETE",path:s},a?.signal));return l.ok?x(void 0):y(l.error)},async eraseUserData(i){let a=await r.send("pets.eraseUserData",n({method:"DELETE",path:"/widget/v1/me"},i?.signal),{maxAttempts:1});return a.ok?x(void 0):y(a.error)}}}o(Qa,"createPetsRepositoryOver");var Pr=Object.freeze(["better","same","worse"]),Ja=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function wt(e){return y(S("validationFailed",{retryable:false,wireMessage:e}))}o(wt,"invalid");function Ir(){return y(S("internalError",{retryable:false}))}o(Ir,"malformed");function Ot(e){return typeof e!="string"||e.trim().length===0?S("validationFailed",{retryable:false,wireMessage:"pet_ref must not be blank"}):ie(e)?S("validationFailed",{retryable:false,wireMessage:"pet_ref contains an unpaired surrogate and cannot be encoded"}):`/widget/v1/pets/${encodeURIComponent(e)}/cases`}o(Ot,"petPath");var B=o(e=>typeof e=="string"?e:null,"str"),At=o(e=>typeof e=="number"&&Number.isFinite(e)?e:null,"count");function It(e){if(typeof e!="object"||e===null)return null;let r=e,n=B(r.case_id),t=B(r.status);if(n===null||t===null)return null;let i=B(r.last_response);return Object.freeze({caseId:n,status:t,bodyLocation:B(r.body_location),lastResponse:i!==null&&Pr.includes(i)?i:null,checkInDueAt:B(r.check_in_due_at),openedAt:B(r.opened_at),resolvedAt:B(r.resolved_at),resolutionText:B(r.resolution_text),checkinAskCount:At(r.checkin_ask_count),checkinAnswerCount:At(r.checkin_answer_count)})}o(It,"caseFromWire");function Za(e){return es(U({auth:e}))}o(Za,"createCasesRepository");function es(e){return {async list(r,n){let t=Ot(r);if(typeof t!="string")return y(t);let i=await e.send("cases.list",{method:"GET",path:t,...n?.signal?{signal:n.signal}:{}});if(!i.ok)return y(i.error);let a=typeof i.value=="object"&&i.value!==null?i.value.cases:null;if(!Array.isArray(a))return Ir();let s=a.map(It);return s.every(l=>l!==null)?x(Object.freeze(s)):Ir()},async checkin(r,n,t,i){let a=Ot(r);if(typeof a!="string")return y(a);if(typeof n!="string"||!Ja.test(n))return wt("case_id must be a UUID");if(!Pr.includes(t))return wt("response must be one of better, same, worse");let s=await e.send("cases.checkin",{method:"POST",path:`${a}/${n}/checkin`,body:{response:t},...i?.signal?{signal:i.signal}:{}});if(!s.ok)return y(s.error);let l=typeof s.value=="object"&&s.value!==null?s.value:{},u=It(l.case);return u===null?Ir():x(Object.freeze({case:u,ctaDeepLink:B(l.cta_deep_link)}))}}}o(es,"createCasesRepositoryOver");export{Li as APPEARANCE_PRESETS,Mi as APPEARANCE_PRESET_NAMES,Oe as APPEARANCE_SIZE_RANGES,zt as AUTO_RETRYABLE_CODES,Ut as BACKOFF_BASE_MS,Ue as BACKOFF_CAP_MS,Pr as CHECKIN_ANSWERS,Lr as CONTRACT_ERROR_ROWS,Ri as DARK_VARIANT_GROUND,mr as DARK_VARIANT_LIGHTNESS_CEILING,Ci as DARK_VARIANT_LIGHTNESS_FLOOR,ki as DARK_VARIANT_LIGHTNESS_STEP,Bn as DARK_VARIANT_TARGET_RATIO,Gt as DEFAULT_CONTRACT_VERSION,fr as DEFAULT_MAX_FONT_SCALE,Mr as DOC_SITE_ORIGIN,dr as EASING_CURVES,Zs as EMPTY_FRAME_ARRAYS,lt as ENTITLEMENTS_PATH,$r as ENV_API_BASE_URL,J as EVERFUR_DARK,ds as EVERFUR_ERROR_CATEGORIES,us as EVERFUR_ERROR_CODES,K as EVERFUR_LIGHT,k as EverfurConfigError,He as EverfurThrownError,Fi as HIGH_CONTRAST_TARGET_RATIO,Zn as LOCKABLE_THEME_FIELDS,tt as MAX_FONT_SCALE_CEILING,qr as MAX_RETRY_ATTEMPTS,wr as PET_AGE_YEARS_MAX,Fr as PET_BREED_MAX,Sr as PET_NAME_MAX,xr as PET_SPECIES_MAX,Or as PET_WEIGHT_KG_MAX,jt as RETRYABLE_CONTRACT_CODES,$t as SDK_PLATFORM,Kt as SDK_VERSION,ye as SLOT_LOCK_PREFIX,pe as SLOT_MIN_BORDER_CONTRAST,v as SLOT_MIN_CONTRAST,Q as SYSTEM_FONT_FAMILY,H as SYSTEM_MONO_FAMILY,la as TEXT_SCALE_FLOOR,Fe as TEXT_SCALE_TIER_CAPS,et as THEME_SCHEMA_VERSIONS,Dl as THEME_SLOT_KEYS,q as THEME_SLOT_NAMES,Jr as acceptedFrame,tn as analysisCompleteFrame,nn as analysisStartedFrame,Js as assertNever,io as authHeaders,Qr as authedSend,Hr as backoffDelayMs,pl as bufferedTextByteSource,Wr as buildBaseHeaders,fs as canRecreateOnNotFound,zr as categoryFor,Wt as checkPublishableKey,Lt as contractDocUrl,ve as contractErrorFor,_ as contrastRatio,Ns as conversationId,Za as createCasesRepository,yl as createHttpTransport,Vs as createIdentityProvider,Xa as createPetsRepository,U as createRequestFunnel,cr as cssCubicBezier,_l as decideCapability,L as deepFreeze,en as deltaFrame,vl as deniedDecisionsFor,qn as deriveDarkVariant,Hn as deriveHighContrast,rn as doneFrame,y as err,j as errorFrame,pn as errorFromResponse,Eo as eventSourceByteSource,To as eventSourceRequestId,Yn as expandAppearance,Ia as face,Ge as fetchByteSource,Eu as fetchEntitlements,jr as fromHttpStatus,oe as fromWire,Ve as getGlobalFetch,xn as guardSlotContrast,Er as hardenHttpsUrl,Zr as heartbeatFrame,W as isAutoRetryable,Ie as isEmptyBranding,vs as isErr,rt as isKnownBrandingSchema,Es as isOk,Ur as isRetryableCode,nt as lockedFieldsOf,S as makeEverfurError,xe as mergeThemeSlots,ke as networkError,Ys as newSessionId,x as ok,re as parseClientBranding,E as parseColor,ji as parsePx,Ce as parseSse,Sn as parseThemeSlots,Ps as petRef,pu as previewTheme,Br as publishedDocUrl,Cn as readableOn,We as requestIdOf,Ro as requestJson,ml as requestRaw,Ao as requires,Ss as resolveApiBaseUrl,Ts as resolveClientConfig,El as resolveEntitlements,ua as resolveTheme,cs as shouldRetry,Gr as tryResolveApiBaseUrl,Vt as tryResolveClientConfig,on as unknownFrame,js as unsafeClientId,Bs as unsafeConversationId,Us as unsafeDocumentId,qs as unsafeJobId,Ms as unsafePetRef,Hs as unsafeRecordsRequestId,zs as unsafeResponseId,Ls as unsafeUserRef,_s as unwrap,qe as userFacingError,Ds as userRef,Ar as widgetPetFromWire,ce as withAuthHeaders,ot as withServerBranding};
1
+ import{z}from"zod";var CONTRACT_RETRYABILITY=/* @__PURE__ */Object.freeze([
2
+ /* @__PURE__ */Object.freeze({wireCode:"AccessDeniedException",envelope:"http_envelope",httpStatus:403,retryable:false}),
3
+ /* @__PURE__ */Object.freeze({wireCode:"AuthorizationException",envelope:"http_envelope",httpStatus:401,retryable:false}),
4
+ /* @__PURE__ */Object.freeze({wireCode:"ConflictException",envelope:"http_envelope",httpStatus:409,retryable:true}),
5
+ /* @__PURE__ */Object.freeze({wireCode:"DAILY_QUOTA_EXCEEDED",envelope:"http_envelope",httpStatus:429,retryable:true}),
6
+ /* @__PURE__ */Object.freeze({wireCode:"FILE_TOO_LARGE",envelope:"http_envelope",httpStatus:400,retryable:false}),
7
+ /* @__PURE__ */Object.freeze({wireCode:"IDEMPOTENCY_KEY_IN_FLIGHT",envelope:"http_envelope",httpStatus:409,retryable:true}),
8
+ /* @__PURE__ */Object.freeze({wireCode:"IDEMPOTENCY_KEY_REUSED_DIFFERENT_REQUEST",envelope:"http_envelope",httpStatus:409,retryable:false}),
9
+ /* @__PURE__ */Object.freeze({wireCode:"INVALID_CONTENT_TYPE",envelope:"http_envelope",httpStatus:400,retryable:false}),
10
+ /* @__PURE__ */Object.freeze({wireCode:"InternalFailureException",envelope:"http_envelope",httpStatus:500,retryable:true}),
11
+ /* @__PURE__ */Object.freeze({wireCode:"MethodNotAllowedException",envelope:"http_envelope",httpStatus:405,retryable:false}),
12
+ /* @__PURE__ */Object.freeze({wireCode:"NotImplementedException",envelope:"http_envelope",httpStatus:501,retryable:false}),
13
+ /* @__PURE__ */Object.freeze({wireCode:"PaymentRequiredException",envelope:"http_envelope",httpStatus:402,retryable:false}),
14
+ /* @__PURE__ */Object.freeze({wireCode:"ResourceNotFoundException",envelope:"http_envelope",httpStatus:404,retryable:false}),
15
+ /* @__PURE__ */Object.freeze({wireCode:"ServiceUnavailableException",envelope:"http_envelope",httpStatus:503,retryable:true}),
16
+ /* @__PURE__ */Object.freeze({wireCode:"TIER_UPGRADE_REQUIRED",envelope:"http_envelope",httpStatus:402,retryable:false}),
17
+ /* @__PURE__ */Object.freeze({wireCode:"ThrottlingException",envelope:"http_envelope",httpStatus:429,retryable:true}),
18
+ /* @__PURE__ */Object.freeze({wireCode:"ValidationException",envelope:"http_envelope",httpStatus:400,retryable:false}),
19
+ /* @__PURE__ */Object.freeze({wireCode:"accessDenied",envelope:"http_envelope",httpStatus:403,retryable:false}),
20
+ /* @__PURE__ */Object.freeze({wireCode:"access_denied",envelope:"oauth_error",httpStatus:302,retryable:false}),
21
+ /* @__PURE__ */Object.freeze({wireCode:"attachment_unreadable",envelope:"http_envelope",httpStatus:400,retryable:false}),
22
+ /* @__PURE__ */Object.freeze({wireCode:"authExpired",envelope:"http_envelope",httpStatus:401,retryable:true}),
23
+ /* @__PURE__ */Object.freeze({wireCode:"authRejected",envelope:"http_envelope",httpStatus:401,retryable:false}),
24
+ /* @__PURE__ */Object.freeze({wireCode:"consent_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),
25
+ /* @__PURE__ */Object.freeze({wireCode:"consent_required",envelope:"http_envelope",httpStatus:422,retryable:false}),
26
+ /* @__PURE__ */Object.freeze({wireCode:"consent_scope_wrong_route",envelope:"http_envelope",httpStatus:400,retryable:false}),
27
+ /* @__PURE__ */Object.freeze({wireCode:"device_cipher_unavailable",envelope:"http_envelope",httpStatus:503,retryable:true}),
28
+ /* @__PURE__ */Object.freeze({wireCode:"email_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),
29
+ /* @__PURE__ */Object.freeze({wireCode:"event_cursor_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),
30
+ /* @__PURE__ */Object.freeze({wireCode:"event_filter_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),
31
+ /* @__PURE__ */Object.freeze({wireCode:"event_payload_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),
32
+ /* @__PURE__ */Object.freeze({wireCode:"event_type_not_available",envelope:"http_envelope",httpStatus:400,retryable:false}),
33
+ /* @__PURE__ */Object.freeze({wireCode:"event_type_unknown",envelope:"http_envelope",httpStatus:400,retryable:false}),
34
+ /* @__PURE__ */Object.freeze({wireCode:"idempotency_key_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),
35
+ /* @__PURE__ */Object.freeze({wireCode:"idempotency_key_required",envelope:"http_envelope",httpStatus:400,retryable:false}),
36
+ /* @__PURE__ */Object.freeze({wireCode:"idempotency_key_reused",envelope:"http_envelope",httpStatus:409,retryable:false}),
37
+ /* @__PURE__ */Object.freeze({wireCode:"insufficientCapability",envelope:"http_envelope",httpStatus:403,retryable:false}),
38
+ /* @__PURE__ */Object.freeze({wireCode:"insufficient_scope",envelope:"http_envelope",httpStatus:403,retryable:false}),
39
+ /* @__PURE__ */Object.freeze({wireCode:"internal_error",envelope:"sse_frame",httpStatus:200,retryable:false}),
40
+ /* @__PURE__ */Object.freeze({wireCode:"invalidRequest",envelope:"http_envelope",httpStatus:400,retryable:false}),
41
+ /* @__PURE__ */Object.freeze({wireCode:"invalid_client",envelope:"oauth_error",httpStatus:401,retryable:false}),
42
+ /* @__PURE__ */Object.freeze({wireCode:"invalid_client_metadata",envelope:"oauth_error",httpStatus:400,retryable:false}),
43
+ /* @__PURE__ */Object.freeze({wireCode:"invalid_grant",envelope:"oauth_error",httpStatus:400,retryable:false}),
44
+ /* @__PURE__ */Object.freeze({wireCode:"invalid_redirect_uri",envelope:"oauth_error",httpStatus:400,retryable:false}),
45
+ /* @__PURE__ */Object.freeze({wireCode:"invalid_request",envelope:"oauth_error",httpStatus:400,retryable:false}),
46
+ /* @__PURE__ */Object.freeze({wireCode:"invalid_scope",envelope:"oauth_error",httpStatus:400,retryable:false}),
47
+ /* @__PURE__ */Object.freeze({wireCode:"invalid_target",envelope:"oauth_error",httpStatus:400,retryable:false}),
48
+ /* @__PURE__ */Object.freeze({wireCode:"mcp_connection_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),
49
+ /* @__PURE__ */Object.freeze({wireCode:"mcp_request_conflict",envelope:"http_envelope",httpStatus:409,retryable:false}),
50
+ /* @__PURE__ */Object.freeze({wireCode:"mcp_request_gone",envelope:"http_envelope",httpStatus:410,retryable:false}),
51
+ /* @__PURE__ */Object.freeze({wireCode:"mcp_request_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),
52
+ /* @__PURE__ */Object.freeze({wireCode:"not_found",envelope:"sse_frame",httpStatus:200,retryable:false}),
53
+ /* @__PURE__ */Object.freeze({wireCode:"partner_visit_link_conflict",envelope:"http_envelope",httpStatus:409,retryable:false}),
54
+ /* @__PURE__ */Object.freeze({wireCode:"partner_visit_owner_only",envelope:"http_envelope",httpStatus:403,retryable:false}),
55
+ /* @__PURE__ */Object.freeze({wireCode:"partner_visit_pet_already_mapped",envelope:"http_envelope",httpStatus:409,retryable:false}),
56
+ /* @__PURE__ */Object.freeze({wireCode:"payload_too_large",envelope:"http_envelope",httpStatus:413,retryable:false}),
57
+ /* @__PURE__ */Object.freeze({wireCode:"petRefInUse",envelope:"http_envelope",httpStatus:409,retryable:false}),
58
+ /* @__PURE__ */Object.freeze({wireCode:"pet_health_list_removals_unconfirmed",envelope:"http_envelope",httpStatus:422,retryable:false}),
59
+ /* @__PURE__ */Object.freeze({wireCode:"pet_health_species_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),
60
+ /* @__PURE__ */Object.freeze({wireCode:"pet_not_registered",envelope:"http_envelope",httpStatus:404,retryable:false}),
61
+ /* @__PURE__ */Object.freeze({wireCode:"provider_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),
62
+ /* @__PURE__ */Object.freeze({wireCode:"rateLimited",envelope:"http_envelope",httpStatus:429,retryable:true}),
63
+ /* @__PURE__ */Object.freeze({wireCode:"record_species_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),
64
+ /* @__PURE__ */Object.freeze({wireCode:"record_subject_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),
65
+ /* @__PURE__ */Object.freeze({wireCode:"record_upload_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),
66
+ /* @__PURE__ */Object.freeze({wireCode:"records_consent_required",envelope:"http_envelope",httpStatus:409,retryable:false}),
67
+ /* @__PURE__ */Object.freeze({wireCode:"sandbox_only",envelope:"http_envelope",httpStatus:403,retryable:false}),
68
+ /* @__PURE__ */Object.freeze({wireCode:"session_required",envelope:"http_envelope",httpStatus:403,retryable:false}),
69
+ /* @__PURE__ */Object.freeze({wireCode:"share_limit_reached",envelope:"http_envelope",httpStatus:429,retryable:false}),
70
+ /* @__PURE__ */Object.freeze({wireCode:"slow_down",envelope:"oauth_error",httpStatus:429,retryable:true}),
71
+ /* @__PURE__ */Object.freeze({wireCode:"species_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),
72
+ /* @__PURE__ */Object.freeze({wireCode:"tenant_filter_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),
73
+ /* @__PURE__ */Object.freeze({wireCode:"tenant_has_no_capabilities",envelope:"http_envelope",httpStatus:409,retryable:false}),
74
+ /* @__PURE__ */Object.freeze({wireCode:"tenant_resource_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),
75
+ /* @__PURE__ */Object.freeze({wireCode:"tenant_surface_not_enabled",envelope:"http_envelope",httpStatus:409,retryable:false}),
76
+ /* @__PURE__ */Object.freeze({wireCode:"timeout",envelope:"sse_frame",httpStatus:200,retryable:true}),
77
+ /* @__PURE__ */Object.freeze({wireCode:"token_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),
78
+ /* @__PURE__ */Object.freeze({wireCode:"unavailable",envelope:"sse_frame",httpStatus:200,retryable:true}),
79
+ /* @__PURE__ */Object.freeze({wireCode:"unavailable",envelope:"http_envelope",httpStatus:503,retryable:true}),
80
+ /* @__PURE__ */Object.freeze({wireCode:"unsupported_grant_type",envelope:"oauth_error",httpStatus:400,retryable:false}),
81
+ /* @__PURE__ */Object.freeze({wireCode:"unsupported_response_type",envelope:"oauth_error",httpStatus:302,retryable:false}),
82
+ /* @__PURE__ */Object.freeze({wireCode:"verify_mint_rate_limited",envelope:"http_envelope",httpStatus:429,retryable:true}),
83
+ /* @__PURE__ */Object.freeze({wireCode:"verify_mint_refused",envelope:"http_envelope",httpStatus:403,retryable:false}),
84
+ /* @__PURE__ */Object.freeze({wireCode:"verify_mint_unavailable",envelope:"http_envelope",httpStatus:503,retryable:true}),
85
+ /* @__PURE__ */Object.freeze({wireCode:"verify_user_ref_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),
86
+ /* @__PURE__ */Object.freeze({wireCode:"webhook_endpoint_update_empty",envelope:"http_envelope",httpStatus:400,retryable:false}),
87
+ /* @__PURE__ */Object.freeze({wireCode:"webhook_endpoint_update_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),
88
+ /* @__PURE__ */Object.freeze({wireCode:"webhook_url_rejected",envelope:"http_envelope",httpStatus:400,retryable:false})]);/* @__PURE__ */Object.freeze(CONTRACT_RETRYABILITY.map(row=>row.wireCode));var NORMALIZED_FOLD=/* @__PURE__ */Object.freeze({ValidationException:"validationFailed",AuthorizationException:"authRejected",PaymentRequiredException:"paymentRequired",AccessDeniedException:"accessDenied",ResourceNotFoundException:"resourceNotFound",ConflictException:"conflict",ThrottlingException:"rateLimited",InternalFailureException:"internalError",NotImplementedException:"notImplemented",ServiceUnavailableException:"serviceUnavailable",MethodNotAllowedException:"validationFailed",authExpired:"authExpired",unavailable:"serviceUnavailable",session_required:"sessionRequired",accessDenied:"accessDenied",invalidRequest:"sdkUpdateRequired",authRejected:"authRejected",rateLimited:"rateLimited",insufficientCapability:"accessDenied",event_cursor_invalid:"validationFailed",event_filter_invalid:"validationFailed",event_payload_invalid:"validationFailed",event_type_unknown:"validationFailed",idempotency_key_invalid:"validationFailed",idempotency_key_required:"validationFailed",idempotency_key_reused:"idempotencyConflict",payload_too_large:"validationFailed",webhook_url_rejected:"validationFailed",webhook_endpoint_update_empty:"validationFailed",webhook_endpoint_update_invalid:"validationFailed",event_type_not_available:"conflict",record_subject_not_found:"resourceNotFound",records_consent_required:"conflict",record_species_unsupported:"validationFailed",record_upload_invalid:"validationFailed",FILE_TOO_LARGE:"validationFailed",INVALID_CONTENT_TYPE:"validationFailed",attachment_unreadable:"validationFailed",provider_unsupported:"validationFailed",token_invalid:"validationFailed",device_cipher_unavailable:"serviceUnavailable",email_invalid:"validationFailed",consent_required:"validationFailed",consent_invalid:"validationFailed",consent_scope_wrong_route:"validationFailed",IDEMPOTENCY_KEY_IN_FLIGHT:"idempotencyInFlight",IDEMPOTENCY_KEY_REUSED_DIFFERENT_REQUEST:"idempotencyConflict",DAILY_QUOTA_EXCEEDED:"quotaExceeded",TIER_UPGRADE_REQUIRED:"paymentRequired",not_found:"conversationNotFound",timeout:"streamTimeout",internal_error:"internalError",invalid_request:"validationFailed",invalid_client:"authRejected",invalid_grant:"authRejected",unsupported_grant_type:"validationFailed",invalid_scope:"validationFailed",invalid_target:"validationFailed",invalid_redirect_uri:"validationFailed",invalid_client_metadata:"validationFailed",unsupported_response_type:"validationFailed",access_denied:"accessDenied",slow_down:"rateLimited",mcp_request_not_found:"resourceNotFound",mcp_request_gone:"resourceNotFound",mcp_connection_not_found:"resourceNotFound",mcp_request_conflict:"conflict",sandbox_only:"accessDenied",tenant_has_no_capabilities:"conflict",verify_mint_refused:"accessDenied",verify_mint_rate_limited:"rateLimited",verify_mint_unavailable:"serviceUnavailable",verify_user_ref_invalid:"validationFailed",insufficient_scope:"accessDenied",tenant_filter_invalid:"validationFailed",tenant_resource_not_found:"resourceNotFound",tenant_surface_not_enabled:"conflict",pet_health_species_unsupported:"validationFailed",pet_health_list_removals_unconfirmed:"validationFailed",petRefInUse:"conflict",share_limit_reached:"conflict",pet_not_registered:"resourceNotFound",species_unsupported:"validationFailed",partner_visit_owner_only:"accessDenied",partner_visit_link_conflict:"conflict",partner_visit_pet_already_mapped:"conflict"}),CONTRACT_ERROR_ROWS=/* @__PURE__ */Object.freeze(CONTRACT_RETRYABILITY.map(generated=>/* @__PURE__ */Object.freeze({wireCode:generated.wireCode,envelope:generated.envelope,retryable:generated.retryable,normalized:NORMALIZED_FOLD[generated.wireCode]}))),BY_KEY=new Map(CONTRACT_ERROR_ROWS.map(r=>[r.envelope+r.wireCode.toUpperCase(),r])),ENVELOPE_LOOKUP_ORDER=/* @__PURE__ */Object.freeze(["http_envelope",...[...new Set(CONTRACT_ERROR_ROWS.map(r=>r.envelope))].filter(e=>e!=="http_envelope").sort()]);function contractErrorFor(wireCode,envelope){if(typeof wireCode!="string")return;let key=wireCode.trim().toUpperCase();if(key.length!==0)for(let candidate of[envelope??"http_envelope",...ENVELOPE_LOOKUP_ORDER]){let row=BY_KEY.get(candidate+key);if(row)return row}}function contractDocUrl(entry){return entry.envelope==="sse_frame"?`/errors#sse-${entry.wireCode}`:entry.envelope==="oauth_error"?`/errors#oauth-${entry.wireCode}`:`/errors#${entry.wireCode}`}var DOC_SITE_ORIGIN=null;function publishedDocUrl(entry){return null}var EVERFUR_ERROR_CODES=/* @__PURE__ */Object.freeze(["authExpired","authRejected","sessionRequired","accessDenied","paymentRequired","quotaExceeded","rateLimited","validationFailed","sdkUpdateRequired","conflict","idempotencyConflict","idempotencyInFlight","conversationNotFound","petNotFound","resourceNotFound","streamTimeout","mediaUploadFailed","moderationBlocked","upstreamLlmTimeout","internalError","notImplemented","serviceUnavailable","streamIncomplete","identitySignatureRequired","unknown"]),EVERFUR_ERROR_CATEGORIES=/* @__PURE__ */Object.freeze(["authentication","authorization","entitlement","rateLimit","invalidRequest","notFound","conflict","connection","server","media","policy","unknown"]),CATEGORY_OF=/* @__PURE__ */Object.freeze({authExpired:"authentication",authRejected:"authentication",sessionRequired:"authentication",identitySignatureRequired:"authentication",accessDenied:"authorization",paymentRequired:"entitlement",quotaExceeded:"rateLimit",rateLimited:"rateLimit",validationFailed:"invalidRequest",sdkUpdateRequired:"invalidRequest",conversationNotFound:"notFound",petNotFound:"notFound",resourceNotFound:"notFound",conflict:"conflict",idempotencyConflict:"conflict",idempotencyInFlight:"conflict",streamTimeout:"connection",streamIncomplete:"connection",upstreamLlmTimeout:"connection",serviceUnavailable:"connection",internalError:"server",notImplemented:"server",mediaUploadFailed:"media",moderationBlocked:"policy",unknown:"unknown"});function categoryFor(code){return CATEGORY_OF[code]}function fromWire(wire){let contractRow=contractErrorFor(wire);if(contractRow)return contractRow.normalized;let upper=(wire??"").trim().toUpperCase(),canonical=upper.replace(/[^A-Z0-9]/g,"");if(canonical==="AUTHREJECTED")return"authRejected";if(upper.startsWith("AUTH"))return"authExpired";switch(canonical){case"DAILYQUOTAEXCEEDED":case"QUOTAEXCEEDED":return"quotaExceeded";case"RATELIMITED":case"TOOMANYREQUESTS":case"TELEVETRATELIMITED":return"rateLimited";case"IDEMPOTENCYKEYCONFLICT":case"IDEMPOTENCYCONFLICT":return"idempotencyConflict";case"ACCESSDENIED":case"FORBIDDEN":return"accessDenied";case"IDENTITYSIGNATUREREQUIRED":return"identitySignatureRequired";case"NOTFOUND":case"CONVERSATIONNOTFOUND":return"conversationNotFound";case"PETNOTFOUND":return"petNotFound";case"TIMEOUT":case"STREAMTIMEOUT":return"streamTimeout";case"MEDIAUPLOADFAILED":case"UNRECOGNIZEDVIDEOFORMAT":case"FILETOOSMALL":return"mediaUploadFailed";case"MODERATIONBLOCKED":return"moderationBlocked";case"UPSTREAMLLMTIMEOUT":return"upstreamLlmTimeout";case"INTERNALERROR":case"INTERNALSERVERERROR":return"internalError";case"STREAMINCOMPLETE":case"CHATSTREAMINCOMPLETE":return"streamIncomplete";case"INVALIDANALYSISTYPE":case"INVALIDUPLOADPURPOSE":return"unknown";default:return"unknown"}}function fromHttpStatus(status){return status===401?"authExpired":status===403?"accessDenied":status===404?"conversationNotFound":status===409?"idempotencyConflict":status===421?"unknown":status===429?"rateLimited":status===400||status===422?"unknown":status>=500?"internalError":"unknown"}var AUTO_RETRYABLE_CODES=/* @__PURE__ */new Set(["streamTimeout","rateLimited","internalError","upstreamLlmTimeout","streamIncomplete"]);function isAutoRetryable(code){return AUTO_RETRYABLE_CODES.has(code)}var RETRYABLE_CONTRACT_CODES=/* @__PURE__ */new Set(["serviceUnavailable","conflict","idempotencyInFlight"]);function isRetryableCode(code){return isAutoRetryable(code)||RETRYABLE_CONTRACT_CODES.has(code)}function shouldRetry(code,frameRetryable=false){return frameRetryable||isAutoRetryable(code)}var BACKOFF_BASE_MS=500,BACKOFF_CAP_MS=8e3,MAX_RETRY_ATTEMPTS=4;function backoffDelayMs(attempt,rng=Math.random){let bounded=Math.max(0,attempt),ceiling=Math.min(BACKOFF_BASE_MS*2**bounded,BACKOFF_CAP_MS);return Math.floor(rng()*ceiling)}function canRecreateOnNotFound(code){return code==="conversationNotFound"}var ACCESS_DENIED_COPY="This feature isn't available on your account right now.",USER_FACING_COPY=/* @__PURE__ */Object.freeze({authExpired:"Please sign in again to continue.",authRejected:"Please sign in again to continue.",sessionRequired:"This app needs to be updated to keep using Everfur.",accessDenied:ACCESS_DENIED_COPY,paymentRequired:"This is part of a paid plan.",quotaExceeded:"You have used today's messages. This resets tomorrow.",rateLimited:"You are sending messages quickly. Try again in a few seconds.",validationFailed:"Something in that request was not right. Check the details and try again.",sdkUpdateRequired:"This app needs to be updated to keep using Everfur.",conflict:"That is already running. Wait for it to finish, then try again.",idempotencyConflict:"That message was already delivered.",idempotencyInFlight:"That is still processing. Give it a moment.",conversationNotFound:"This conversation is no longer available.",petNotFound:"We could not find that pet. Please pick a pet and try again.",resourceNotFound:"We could not find that.",streamTimeout:"The response timed out. Tap retry to try again.",mediaUploadFailed:"We could not upload that photo. Please attach it again.",moderationBlocked:"This request cannot be answered here.",upstreamLlmTimeout:"The response timed out. Tap retry to try again.",internalError:"We hit a snag on our end. Please try again.",notImplemented:"That is not available yet.",serviceUnavailable:"That service is briefly unavailable. Try again shortly.",streamIncomplete:"The connection dropped mid-answer. Tap retry to continue.",identitySignatureRequired:ACCESS_DENIED_COPY,unknown:"Something went wrong. Please try again."});function userFacingError(code){return USER_FACING_COPY[code]}function defineHidden(target,key,value){Object.defineProperty(target,key,{value:value,enumerable:false,writable:false,configurable:false})}var REASON_CODE_SHAPE=/^[a-z][a-z0-9_]{0,63}$/;function makeEverfurError(code,opts){let row=contractErrorFor(opts?.wireCode,opts?.wireEnvelope),error={code:code,category:categoryFor(code),retryable:opts?.retryable??isRetryableCode(code),displayMessage:userFacingError(code)};opts?.httpStatus!==void 0&&(error.httpStatus=opts.httpStatus),opts?.requestId&&(error.requestId=opts.requestId),typeof opts?.reasonCode=="string"&&REASON_CODE_SHAPE.test(opts.reasonCode)&&(error.reasonCode=opts.reasonCode);let wait=opts?.retryAfterSeconds;if(typeof wait=="number"&&Number.isFinite(wait)&&wait>=0&&(error.retryAfterSeconds=Math.round(wait)),row);return opts?.wireMessage&&defineHidden(error,"wireMessage",opts.wireMessage),opts?.raw!==void 0&&opts.raw!==null&&defineHidden(error,"raw",opts.raw),/* @__PURE__ */Object.freeze(error)}function ok(value,warning){/* @__PURE__ */
89
+ return Object.freeze(warning===void 0?{ok:true,value:value}:{ok:true,value:value,warning:warning})}function err(error){/* @__PURE__ */
90
+ return Object.freeze({ok:false,error:error})}function isOk(r){return r.ok}function isErr(r){return!r.ok}var EverfurThrownError=class _EverfurThrownError extends Error{constructor(error){super(`${error.code}: ${error.displayMessage}`),this.name="EverfurThrownError",this.error=error,this.code=error.code,this.category=error.category,Object.setPrototypeOf(this,_EverfurThrownError.prototype)}};function unwrap(r){if(r.ok)return r.value;throw new EverfurThrownError(r.error)}var EverfurConfigError=class _EverfurConfigError extends Error{constructor(kind,message){super(message),this.name="EverfurConfigError",this.kind=kind,Object.setPrototypeOf(this,_EverfurConfigError.prototype)}};var SDK_VERSION="0.8.0",SDK_PLATFORM="react-native",DEFAULT_CONTRACT_VERSION="2026-09-19",ENV_API_BASE_URL="EVERFUR_API_BASE_URL";function configFailure(reason,message){/* @__PURE__ */
91
+ return Object.freeze({ok:false,failure:/* @__PURE__ */Object.freeze({reason:reason,message:message})})}function checkPublishableKey(raw){let publishableKey=typeof raw=="string"?raw.trim():"";return publishableKey.length===0?{reason:"missing-publishable-key",message:"publishableKey is required"}:/^sk[_-]/i.test(publishableKey)?{reason:"secret-key-as-publishable-key",message:"publishableKey looks like a SECRET key (sk_...). A device must never hold a partner secret key: use the pk_ publishable key here, and keep the secret key on your server."}:null}function tryResolveClientConfig(config,options){let keyFailure=checkPublishableKey(config?.publishableKey);if(keyFailure!==null)/* @__PURE__ */
92
+ return Object.freeze({ok:false,failure:keyFailure});let publishableKey=config.publishableKey.trim(),baseUrl=tryResolveApiBaseUrl(config.apiBaseUrl);if(!baseUrl.ok)return baseUrl;let contractVersion=config.contractVersion?.trim()||DEFAULT_CONTRACT_VERSION;/* @__PURE__ */
93
+ return Object.freeze({ok:true,config:/* @__PURE__ */Object.freeze({publishableKey:publishableKey,apiBaseUrl:baseUrl.value,contractVersion:contractVersion,sdkVersion:SDK_VERSION,platform:options?.platform??SDK_PLATFORM,debug:config.debug===true})})}function resolveClientConfig(config,options){let outcome=tryResolveClientConfig(config,options);if(!outcome.ok)throw new EverfurConfigError("invalid-argument",outcome.failure.message);return outcome.config}function tryResolveApiBaseUrl(apiBaseUrl){let explicit=apiBaseUrl?.trim(),candidate=explicit&&explicit.length>0?explicit:readEnv(ENV_API_BASE_URL);return candidate?normalizeBaseUrl(candidate):configFailure("missing-api-base-url",`apiBaseUrl is required: pass config.apiBaseUrl or set ${ENV_API_BASE_URL}. The SDK never ships a hardcoded host.`)}function resolveApiBaseUrl(apiBaseUrl){let outcome=tryResolveApiBaseUrl(apiBaseUrl);if(!outcome.ok)throw new EverfurConfigError("invalid-argument",outcome.failure.message);return outcome.value}function buildBaseHeaders(cfg){return{"X-Everfur-SDK-Version":cfg.sdkVersion,"X-Everfur-SDK-Platform":cfg.platform,"X-Everfur-Contract":cfg.contractVersion}}var ABSOLUTE_URL=/^([A-Za-z][A-Za-z0-9+.-]*):\/\/([^/?#]*)/;function hostOf(authority){return authority.slice(authority.lastIndexOf("@")+1).replace(/:\d+$/,"").toLowerCase()}function isPrintableHost(host){return host.length===0||host.includes("@")?false:host.startsWith("[")&&host.endsWith("]")?true:!host.includes(":")}function canEchoOrigin(rawTrimmed,host){let schemeEnd=rawTrimmed.indexOf("://");return schemeEnd<0||rawTrimmed.slice(schemeEnd+3).includes("@")?false:isPrintableHost(host)}function safeOrigin(scheme,host){return`${scheme}://${host}`}function normalizeBaseUrl(raw){let trimmed=raw.trim(),match=ABSOLUTE_URL.exec(trimmed);if(match===null||match[2]===void 0||match[2].length===0)return configFailure("malformed-api-base-url","apiBaseUrl is not a valid absolute URL");let scheme=(match[1]??"").toLowerCase(),host=hostOf(match[2]);if(host.length===0)return configFailure("malformed-api-base-url","apiBaseUrl is not a valid absolute URL");let shown=canEchoOrigin(trimmed,host)?`: ${safeOrigin(scheme,host)}`:"";if(scheme!=="https"){if(!(scheme==="http"&&isLoopbackHost(host)))return scheme==="http"?configFailure("insecure-api-base-url",`apiBaseUrl must use https (cleartext http is only allowed for localhost)${shown}`):configFailure("unsupported-api-base-url-scheme",`apiBaseUrl must be http(s)${shown}`)}let value=trimmed.endsWith("/")?trimmed.slice(0,-1):trimmed;/* @__PURE__ */
94
+ return Object.freeze({ok:true,value:value})}function isLoopbackHost(hostname){let host=hostname.toLowerCase();return host==="localhost"||host==="127.0.0.1"||host==="[::1]"||host==="::1"}function readEnv(name){let value=globalThis.process?.env?.[name];return typeof value=="string"&&value.trim().length>0?value.trim():void 0}function hasLoneSurrogate(value){for(let i=0;i<value.length;i+=1){let code=value.charCodeAt(i);if(code>=55296&&code<=56319){let low=value.charCodeAt(i+1);if(!(low>=56320&&low<=57343))return true;i+=1}else if(code>=56320&&code<=57343)return true}return false}function serverLength(value){return[...value].length}var MAX_USER_REF_LEN=128,MAX_PET_REF_LEN=128,CONTROL_CHAR=/[\u0000-\u001F\u007F]/,UUID_RE=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function petRef(raw){let v=raw,length=serverLength(v);if(length===0||length>MAX_PET_REF_LEN)throw new EverfurConfigError("invalid-argument",`petRef must be 1..${MAX_PET_REF_LEN} characters`);if(CONTROL_CHAR.test(v))throw new EverfurConfigError("invalid-argument","petRef must be printable (no control characters)");return v}function userRef(raw){let v=raw,length=serverLength(v);if(length===0||length>MAX_USER_REF_LEN)throw new EverfurConfigError("invalid-argument",`userRef must be 1..${MAX_USER_REF_LEN} characters`);if(v.includes("@"))throw new EverfurConfigError("invalid-argument","userRef must not contain '@'");if(CONTROL_CHAR.test(v))throw new EverfurConfigError("invalid-argument","userRef must be printable (no control characters)");return v}function conversationId(raw){if(!UUID_RE.test(raw))throw new EverfurConfigError("invalid-argument","conversationId must be a UUID");return raw}function unsafePetRef(raw){return raw}function unsafeUserRef(raw){return raw}function unsafeConversationId(raw){return raw}function unsafeResponseId(raw){return raw}function unsafeClientId(raw){return raw}function unsafeDocumentId(raw){return raw}function unsafeJobId(raw){return raw}function unsafeRecordsRequestId(raw){return raw}function createIdentityProvider(userRef2,getToken,onMinted){let cached=null,inFlight=null,revoked=false,load=()=>inFlight||(inFlight=(async()=>{try{let minted=await getToken(),token=typeof minted=="string"?minted:minted?.token;if(typeof token!="string"||token.length===0)throw new EverfurConfigError("invalid-argument","TokenProvider returned an empty token");return cached=token,onMinted?.(typeof minted=="string"?null:expiryMs(minted.expiresAt)),token}finally{inFlight=null}})(),inFlight);return{userRef:userRef2,async currentToken(opts){if(revoked)throw new EverfurConfigError("not-initialized","This identity was cleared (sign-out); mint a new one.");return opts?.forceRefresh&&(cached=null),cached!==null?cached:load()},hasToken(){return!revoked&&cached!==null},clear(){revoked=true,cached=null}}}function expiryMs(value){if(value===void 0)return null;let ms=typeof value=="number"?value<1e11?value*1e3:value:new Date(value).getTime();return Number.isFinite(ms)?ms:null}function newSessionId(){let bytes=new Uint8Array(16),cryptoObj=globalThis.crypto;if(typeof cryptoObj?.getRandomValues=="function")cryptoObj.getRandomValues(bytes);else for(let i=0;i<bytes.length;i+=1)bytes[i]=Math.floor(Math.random()*256);bytes[6]=bytes[6]&15|64,bytes[8]=bytes[8]&63|128;let hex=[];for(let i=0;i<bytes.length;i+=1)hex.push(bytes[i].toString(16).padStart(2,"0"));return hex.slice(0,4).join("")+"-"+hex.slice(4,6).join("")+"-"+hex.slice(6,8).join("")+"-"+hex.slice(8,10).join("")+"-"+hex.slice(10,16).join("")}function authHeaders(auth){let headers={};return auth.mode==="personalized"?headers.authorization=`Bearer ${auth.token}`:headers["x-everfur-partner-key"]=auth.publishableKey,auth.userRef&&(headers["x-everfur-user-ref"]=auth.userRef),auth.sessionId&&(headers["x-everfur-session-id"]=auth.sessionId),headers}function withAuthHeaders(req,auth){return{...req,headers:{...stripAuthHeaders(req.headers),...authHeaders(auth)}}}function stripAuthHeaders(headers){if(!headers)return{};let out={};for(let[key,value]of Object.entries(headers)){let lower=key.toLowerCase();lower==="authorization"||lower==="x-everfur-partner-key"||(out[key]=value)}return out}async function authedSend(req,ctx){if(ctx.mode==="anonymous")return ctx.transport.request(withAuthHeaders(req,{mode:"anonymous",publishableKey:ctx.publishableKey,userRef:ctx.userRef,...ctx.sessionId?{sessionId:ctx.sessionId}:{}}));let token;try{token=await ctx.identity.currentToken()}catch{return err(authRejectedError())}let first=await ctx.transport.request(withAuthHeaders(req,{mode:"personalized",token:token,userRef:ctx.userRef,...ctx.sessionId?{sessionId:ctx.sessionId}:{}}));if(first.ok||first.error.httpStatus!==401)return first;let refreshed;try{refreshed=await ctx.identity.currentToken({forceRefresh:!0})}catch{return err(authRejectedError())}let retry=await ctx.transport.request(withAuthHeaders(req,{mode:"personalized",token:refreshed,userRef:ctx.userRef,...ctx.sessionId?{sessionId:ctx.sessionId}:{}}));return!retry.ok&&retry.error.httpStatus===401?err(authRejectedError(retry.error.httpStatus)):retry}function authRejectedError(httpStatus){return makeEverfurError("authRejected",{retryable:false,...httpStatus!==void 0?{httpStatus:httpStatus}:{}})}function assertNever(x){throw new Error(`assertNever: unhandled discriminated-union member ${JSON.stringify(x)}`)}var EMPTY_STRINGS=/* @__PURE__ */Object.freeze([]),EMPTY_MAPS=/* @__PURE__ */Object.freeze([]);function acceptedFrame(streamId,lastEventId,serverRequestId=null){/* @__PURE__ */
95
+ return Object.freeze({kind:"accepted",streamId:streamId,lastEventId:lastEventId,serverRequestId:serverRequestId,terminal:false})}function heartbeatFrame(lastEventId,serverRequestId=null){/* @__PURE__ */
96
+ return Object.freeze({kind:"heartbeat",lastEventId:lastEventId,serverRequestId:serverRequestId,terminal:false})}function deltaFrame(delta,lastEventId,serverRequestId=null){/* @__PURE__ */
97
+ return Object.freeze({kind:"delta",delta:delta,lastEventId:lastEventId,serverRequestId:serverRequestId,terminal:false})}function doneFrame(fields,serverRequestId=null){/* @__PURE__ */
98
+ return Object.freeze({kind:"done",terminal:true,conversationId:fields.conversationId,messageId:fields.messageId,title:fields.title,followUpQuestions:/* @__PURE__ */Object.freeze([...fields.followUpQuestions]),citations:/* @__PURE__ */Object.freeze([...fields.citations]),citationStatus:fields.citationStatus,urgencyLevel:fields.urgencyLevel,urgencyReason:fields.urgencyReason,urgencyProvided:fields.urgencyProvided??fields.urgencyLevel!==null,resultId:fields.resultId,lastEventId:fields.lastEventId,serverRequestId:serverRequestId})}function errorFrame(fields){/* @__PURE__ */
99
+ return Object.freeze({kind:"error",terminal:true,code:fields.code,retryable:fields.retryable,wireMessage:fields.wireMessage,synthesized:fields.synthesized,lastEventId:fields.lastEventId,serverRequestId:fields.serverRequestId??null})}function analysisStartedFrame(requestId,lastEventId,serverRequestId=null){/* @__PURE__ */
100
+ return Object.freeze({kind:"analysisStarted",requestId:requestId,lastEventId:lastEventId,serverRequestId:serverRequestId,terminal:false})}function analysisCompleteFrame(fields,serverRequestId=null){/* @__PURE__ */
101
+ return Object.freeze({kind:"analysisComplete",terminal:false,resultId:fields.resultId,analysisType:fields.analysisType,modelVersion:fields.modelVersion,confidence:fields.confidence,detections:/* @__PURE__ */Object.freeze([...fields.detections]),interpretation:fields.interpretation,lastEventId:fields.lastEventId,serverRequestId:serverRequestId})}function unknownFrame(raw,lastEventId,serverRequestId=null){/* @__PURE__ */
102
+ return Object.freeze({kind:"unknown",raw:{...raw},lastEventId:lastEventId,serverRequestId:serverRequestId,terminal:false})}var EMPTY_FRAME_ARRAYS=/* @__PURE__ */Object.freeze({strings:EMPTY_STRINGS,maps:EMPTY_MAPS});var BLOCK_SEPARATOR=`\n\n`,MAX_PENDING_BLOCK_CHARS=1048576,wireObjectSchema=/* @__PURE__ */z.record(/* @__PURE__ */z.string(),/* @__PURE__ */z.unknown()),URGENCY_LEVELS=["emergency","schedule_soon","home_care"];async function*parseSse(bytes,serverRequestId=null){let resolvedRequestId=null,requestIdNow=()=>(resolvedRequestId!==null||(resolvedRequestId=typeof serverRequestId=="function"?serverRequestId():serverRequestId),resolvedRequestId),decoder=new TextDecoder("utf-8"),buffer="",scanFrom=0,sawDelta=false;for await(let chunk of bytes){for(buffer+=decoder.decode(chunk,{stream:true});;){let sep=buffer.indexOf(BLOCK_SEPARATOR,scanFrom);if(sep===-1)break;let block=buffer.slice(0,sep);buffer=buffer.slice(sep+BLOCK_SEPARATOR.length),scanFrom=0;let frame=parseBlock(block,requestIdNow());if(frame!==null&&(frame.kind==="delta"&&(sawDelta=true),yield frame,frame.terminal))return}if(scanFrom=buffer.length>0?buffer.length-1:0,buffer.length>MAX_PENDING_BLOCK_CHARS){yield errorFrame({code:sawDelta?"CHAT_STREAM_INCOMPLETE":"internal_error",retryable:true,wireMessage:null,synthesized:true,lastEventId:null,serverRequestId:requestIdNow()});return}}if(buffer+=decoder.decode(),buffer.trim().length>0){let frame=parseBlock(buffer,requestIdNow());if(frame!==null&&(frame.kind==="delta"&&(sawDelta=true),yield frame,frame.terminal))return}yield errorFrame({code:sawDelta?"CHAT_STREAM_INCOMPLETE":"internal_error",retryable:true,wireMessage:null,synthesized:true,lastEventId:null,serverRequestId:requestIdNow()})}function parseBlock(block,serverRequestId){let id=null,dataLines=[];for(let rawLine of block.split(`\n`)){let line=rawLine.replace(/\s+$/,"");line.length===0||line.startsWith(":")||(line.startsWith("id:")?id=line.slice(3).trim():line.startsWith("data:")&&dataLines.push(line.slice(5).replace(/^ /,"")))}if(dataLines.length===0)return null;let decoded;try{decoded=JSON.parse(dataLines.join(`\n`))}catch{return null}if(typeof decoded!="object"||decoded===null||Array.isArray(decoded))return null;let parsed=wireObjectSchema.safeParse(decoded);return parsed.success?frameFromWire(parsed.data,id,serverRequestId):null}function frameFromWire(json,lastEventId,serverRequestId){let type=json.type,event=json.event;if(type==="error"||"error"in json)return errorFrame({code:asString(json.code)??"unknown",retryable:json.retryable===true,wireMessage:asString(json.error),synthesized:false,lastEventId:lastEventId,serverRequestId:serverRequestId});if(type==="done"||json.done===true)return doneFrame({conversationId:asString(json.conversation_id)??"",messageId:asString(json.message_id),title:asString(json.title),followUpQuestions:asStringList(json.follow_up_questions),citations:asMapList(json.citations),citationStatus:asString(json.citation_status),urgencyLevel:asUrgency(json.urgency_level),urgencyReason:asString(json.urgency_reason),urgencyProvided:urgencySlotProvided(json),resultId:asString(json.result_id),lastEventId:lastEventId},serverRequestId);if(type==="accepted"||json.status==="reasoning")return acceptedFrame(asString(json.stream_id),lastEventId,serverRequestId);if(type==="heartbeat"||json.heartbeat===true)return heartbeatFrame(lastEventId,serverRequestId);if(type==="text.delta"||"delta"in json||"token"in json){let delta=asString(json.delta)??asString(json.token)??"";return deltaFrame(delta,lastEventId,serverRequestId)}return event==="analysis_started"?analysisStartedFrame(asString(json.request_id),lastEventId,serverRequestId):event==="analysis_complete"?analysisCompleteFrame({resultId:asString(json.result_id),analysisType:asString(json.analysis_type),modelVersion:asString(json.model_version),confidence:asNumber(json.confidence),detections:asMapList(json.detections),interpretation:asString(json.interpretation),lastEventId:lastEventId},serverRequestId):unknownFrame(json,lastEventId,serverRequestId)}function asString(v){return typeof v=="string"?v:null}function asNumber(v){return typeof v=="number"&&Number.isFinite(v)?v:null}function asUrgency(v){return typeof v=="string"&&URGENCY_LEVELS.includes(v)?v:null}function urgencySlotProvided(json){if(!Object.prototype.hasOwnProperty.call(json,"urgency_level"))return false;let raw=json.urgency_level;return raw===null||asUrgency(raw)!==null}function asStringList(v){return Array.isArray(v)?v.map(e=>typeof e=="string"?e:String(e)):[]}function isPlainObject(v){return typeof v=="object"&&v!==null&&!Array.isArray(v)}function asMapList(v){return Array.isArray(v)?v.filter(isPlainObject):[]}var UNARY_TIMEOUT_MS=3e4,REQUEST_ID_HEADER="x-request-id";async function*fetchByteSource(body){if(!body)return;let reader=body.getReader();try{for(;;){let{done:done,value:value}=await reader.read();if(done)break;value&&value.length>0&&(yield value)}}finally{await(reader.cancel?.())}}async function*bufferedTextByteSource(text2,splitAt=[]){let bytes=(new TextEncoder).encode(text2),points=[...new Set(splitAt)].filter(n=>n>0&&n<bytes.length).sort((a,b)=>a-b),start=0;for(let point of points)yield bytes.subarray(start,point),start=point;yield bytes.subarray(start)}function eventSourceByteSource(es){let enc=new TextEncoder,queue=createByteQueue(),cleaned=false,onMessage=ev=>{let block="";ev.lastEventId&&(block+=`id: ${ev.lastEventId}\n`);let data=ev.data??"";for(let line of data.split(`\n`))block+=`data: ${line}\n`;block+=`\n`,queue.push(enc.encode(block))},onDone=()=>{cleanup(),queue.end()},onError=ev=>{let status=typeof ev.xhrStatus=="number"?ev.xhrStatus:0;if(status>=400){let wireCode=statusToWireCode(status),retryable=isAutoRetryable(fromWire(wireCode));queue.push(enc.encode(`data: ${JSON.stringify({type:"error",code:wireCode,retryable:retryable})}\n\n`))}cleanup(),queue.end()};es.addEventListener("message",onMessage),es.addEventListener("done",onDone),es.addEventListener("error",onError);function cleanup(){if(!cleaned){cleaned=true,es.removeEventListener("message",onMessage),es.removeEventListener("done",onDone),es.removeEventListener("error",onError);try{es.close()}catch{}}}return sourceWithCleanup(queue.source,cleanup)}async function*sourceWithCleanup(source,cleanup){try{yield*source}finally{cleanup()}}function createByteQueue(){let buffer=[],done=false,wake=null,signal=()=>{if(wake){let fn=wake;wake=null,fn()}};async function*gen(){for(;;){let next=buffer.shift();if(next!==void 0){yield next;continue}if(done)return;await new Promise(resolve=>{wake=resolve})}}return{source:gen(),push:u=>{buffer.push(u),signal()},end:()=>{done=true,signal()}}}async function requestJson(req,deps){let fetchImpl=deps.fetchImpl??getGlobalFetch(),url=buildUrl(deps.config.apiBaseUrl,req.path,req.query),headers=mergeHeaders(deps.config,req.headers,"application/json",req.body!==void 0&&req.multipart===void 0),deadline=timeoutSignal(UNARY_TIMEOUT_MS),signal=mergeAbortSignals(deadline.signal,req.signal),res;try{res=await fetchImpl(url,buildInit({...req,signal:signal},headers))}catch(cause){return err(networkError(cause))}finally{deadline.cancel()}let bodyJson=await safeJson(res);return res.ok?ok(bodyJson):err(errorFromResponse(res.status,withRetryAfter(res,bodyJson),requestIdOf(res)))}async function requestRaw(req,deps,byteSourceFor){let fetchImpl=deps.fetchImpl??getGlobalFetch(),url=buildUrl(deps.config.apiBaseUrl,req.path,req.query),headers=mergeHeaders(deps.config,req.headers,"text/event-stream",req.body!==void 0&&req.multipart===void 0),res;try{res=await fetchImpl(url,buildInit(req,headers))}catch(cause){return err(networkError(cause))}if(!res.ok)return err(errorFromResponse(res.status,withRetryAfter(res,await safeJson(res)),requestIdOf(res)));let bytes=byteSourceFor?byteSourceFor(res):fetchByteSource(res.body);return ok({ok:res.ok,status:res.status,headers:collectHeaders(res),bytes:bytes})}function createHttpTransport(deps){return{request:req=>requestJson(req,deps),stream:(req,signal)=>streamFrames(withSignal(req,signal),deps)}}async function*streamFrames(req,deps){let url=buildUrl(deps.config.apiBaseUrl,req.path,req.query),headers=mergeHeaders(deps.config,req.headers,"text/event-stream",req.body!==void 0&&req.multipart===void 0);if(deps.eventSourceFactory){let es=deps.eventSourceFactory(url,buildEventSourceInit(req,headers));yield*parseSse(eventSourceByteSource(es),()=>eventSourceRequestId(es));return}let fetchImpl=deps.fetchImpl??getGlobalFetch(),res;try{res=await fetchImpl(url,buildInit(req,headers))}catch(cause){yield syntheticErrorFrame("",true,describeCause(cause));return}let requestId=requestIdOf(res);if(!res.ok){let body=await safeJson(res),wireCode=extractWireCode(body)??statusToWireCode(res.status),retryable=extractRetryable(body)||isAutoRetryable(fromWire(wireCode));yield syntheticErrorFrame(wireCode,retryable,extractWireMessage(body),requestId);return}if(res.body){yield*parseSse(fetchByteSource(res.body),requestId);return}yield*parseSse(fetchByteSource(null),requestId)}function buildEventSourceInit(req,headers){return{method:req.method,headers:headers,pollingInterval:0,...req.body!==void 0?{body:JSON.stringify(req.body)}:{}}}function errorFromResponse(status,body,requestId){let wireCode=extractWireCode(body),code=wireCode?fromWire(wireCode):fromHttpStatus(status),wireMessage=extractWireMessage(body);return makeEverfurError(code,{httpStatus:status,...extractRetryable(body)?{retryable:true}:{},...requestId?{requestId:requestId}:{},...wireCode?{wireCode:wireCode}:{},...extractReasonCode(body)?{reasonCode:extractReasonCode(body)}:{},...extractRetryAfterSeconds(body)!==null?{retryAfterSeconds:extractRetryAfterSeconds(body)}:{},...wireMessage?{wireMessage:wireMessage}:{},...body!=null?{raw:body}:{}})}function extractRetryAfterSeconds(body){let b=body,value=b?.retry_after_seconds??b?.error?.retry_after_seconds;return typeof value=="number"&&Number.isFinite(value)&&value>=0?value:null}function withRetryAfter(res,body){if(res.status!==429&&res.status!==503)return body;let seconds=retryAfterSeconds(res.headers.get(RETRY_AFTER_HEADER),Date.now());if(seconds===null)return body;let record=body!==null&&typeof body=="object"&&!Array.isArray(body)?body:null;return record!==null&&namesAWait(record)?body:{...record??{},retry_after_seconds:seconds}}var RETRY_AFTER_HEADER="retry-after";function retryAfterSeconds(value,nowMs){if(value===null)return null;let trimmed=value.trim();if(/^\d+$/.test(trimmed))return Number(trimmed);let at=Date.parse(trimmed);return Number.isFinite(at)?Math.max(0,Math.ceil((at-nowMs)/1e3)):null}function namesAWait(body){return[body,body.error,body.detail].some(scope=>scope!==null&&typeof scope=="object"&&("retry_after_seconds"in scope||"resets_at"in scope))}function networkError(cause){return makeEverfurError("internalError",{retryable:true,wireMessage:describeCause(cause)})}function requestIdOf(res){let value=res.headers.get(REQUEST_ID_HEADER);return typeof value=="string"&&value.length>0?value:null}function eventSourceRequestId(es){if(typeof es.getResponseHeader!="function")return null;let value;try{value=es.getResponseHeader(REQUEST_ID_HEADER)}catch{return null}return typeof value=="string"&&value.length>0?value:null}function statusToWireCode(status){return status===401?"AUTH_EXPIRED":status===403?"ACCESS_DENIED":status===404?"NOT_FOUND":status===409?"IDEMPOTENCY_CONFLICT":status===421?"MISDIRECTED_REQUEST":status===429?"RATE_LIMITED":status===400||status===422?"INVALID_REQUEST":status===503||status>=500?"INTERNAL_ERROR":""}function syntheticErrorFrame(code,retryable,wireMessage,serverRequestId=null){return errorFrame({code:code,retryable:retryable,wireMessage:wireMessage,synthesized:true,lastEventId:null,serverRequestId:serverRequestId})}function getGlobalFetch(){let candidate=globalThis.fetch;if(typeof candidate!="function")throw new EverfurConfigError("missing-peer-dependency","global fetch is unavailable; provide config.transport or an injected fetch implementation");return candidate}function buildUrl(base,path,query){let rel=path.startsWith("/")?path:`/${path}`,url=`${base}${rel}`;if(query){let qs=Object.entries(query).filter(entry=>entry[1]!==void 0).map(([k,v])=>`${encodeURIComponent(k)}=${encodeURIComponent(String(v))}`).join("&");qs&&(url+=`?${qs}`)}return url}function mergeHeaders(config,reqHeaders,accept,hasJsonBody){let headers={...buildBaseHeaders(config),accept:accept};return hasJsonBody&&(headers["content-type"]="application/json"),reqHeaders&&Object.assign(headers,reqHeaders),headers}function buildInit(req,headers){let init={method:req.method,headers:headers};return req.multipart!==void 0?init.body=req.multipart:req.body!==void 0&&(init.body=JSON.stringify(req.body)),req.signal&&(init.signal=req.signal),init}function withSignal(req,signal){return req.signal?req:{...req,signal:signal}}function timeoutSignal(ms){let ctrl=new AbortController,handle=setTimeout(()=>ctrl.abort(),ms);return{signal:ctrl.signal,cancel:()=>clearTimeout(handle)}}function mergeAbortSignals(deadline,caller){if(!caller)return deadline;let ctrl=new AbortController;if(deadline.aborted||caller.aborted)return ctrl.abort(),ctrl.signal;let onAbort=()=>ctrl.abort();return deadline.addEventListener("abort",onAbort,{once:true}),caller.addEventListener("abort",onAbort,{once:true}),ctrl.signal}async function safeJson(res){try{return await res.json()}catch{return null}}function collectHeaders(res){let out={};return res.headers.forEach?.((value,key)=>{out[key.toLowerCase()]=value}),out}function extractReasonCode(body){let b=body,reason=b?.error?.reason_code??b?.reason_code;return typeof reason=="string"&&reason.length>0?reason:null}function extractWireCode(body){let b=body,code=b?.error?.code??b?.code;return typeof code=="string"&&code.length>0?code:null}function extractWireMessage(body){let b=body,message=b?.error?.message??b?.message;return typeof message=="string"&&message.length>0?message:null}function extractRetryable(body){let b=body;return b?.error?.retryable===true||b?.retryable===true}function describeCause(cause){return cause instanceof Error?cause.message:typeof cause=="string"?cause:"network request failed"}function resolveEntitlements(levels){if(levels.length===0)return freezeResolved({granted:[],asGrant:{allow:[],deny:[]}});let allowed=null,denied=/* @__PURE__ */new Set;for(let level of levels){let allow=new Set(level.allow);allowed=allowed===null?allow:intersect(allowed,allow);for(let key of level.deny)denied.add(key)}let granted=[...allowed??/* @__PURE__ */new Set].filter(key=>!denied.has(key)).sort();return freezeResolved({granted:granted,asGrant:{allow:granted,deny:[]}})}function intersect(a,b){let out=/* @__PURE__ */new Set;for(let key of a)b.has(key)&&out.add(key);return out}function freezeResolved(r){/* @__PURE__ */
103
+ return Object.freeze({granted:/* @__PURE__ */Object.freeze([...r.granted]),asGrant:/* @__PURE__ */Object.freeze({allow:/* @__PURE__ */Object.freeze([...r.asGrant.allow]),deny:/* @__PURE__ */Object.freeze([...r.asGrant.deny])})})}var REQUIRES=/* @__PURE__ */Object.freeze({chat:/* @__PURE__ */Object.freeze(["chat.message.create"]),records:/* @__PURE__ */Object.freeze(["records.upload.create","records.record.read"]),recordsClinic:/* @__PURE__ */Object.freeze(["records.clinic.create"]),video:/* @__PURE__ */Object.freeze(["video.gait.execute"]),photo:/* @__PURE__ */Object.freeze(["photo.checkup.execute"]),animations:/* @__PURE__ */Object.freeze(["animations.state.read"]),televet:/* @__PURE__ */Object.freeze(["televet.visit.create"])});function requires(name){return REQUIRES[name]}function deniedDecisionsFor(level,reason){let disabled=/* @__PURE__ */Object.freeze({reason:reason,level:level,recoverable:false}),rows=[],seen=/* @__PURE__ */new Set;for(let name of Object.keys(REQUIRES))for(let resource of REQUIRES[name])seen.has(resource)||(seen.add(resource),rows.push(/* @__PURE__ */Object.freeze({resource:resource,granted:false,disabled:disabled}))/* @__PURE__ */);return Object.freeze(rows)}function decideCapability(name,decisions,opts){let keys=requires(name),byResource=/* @__PURE__ */new Map;for(let decision of decisions)byResource.set(decision.resource,decision);if(opts?.isPending===true&&keys.some(key=>!byResource.has(key)))return freezeDecision({name:name,enabled:false,isPending:true,limits:{}});let limits=mergeLimits(keys,byResource);return keys.filter(key=>byResource.get(key)?.granted!==true).length===0?freezeDecision({name:name,enabled:true,isPending:false,limits:limits}):freezeDecision({name:name,enabled:false,isPending:false,limits:limits,disabled:disabledFor(keys,byResource)})}function mergeLimits(keys,byResource){let out={};for(let key of keys){let decisionLimits=byResource.get(key)?.limits;if(decisionLimits)for(let[limitKey,limitValue]of Object.entries(decisionLimits)){let existing=out[limitKey];out[limitKey]=existing===void 0?limitValue:Math.min(existing,limitValue)}}return out}function disabledFor(keys,byResource){for(let key of keys){let explicit=byResource.get(key)?.disabled;if(explicit)/* @__PURE__ */
104
+ return Object.freeze({reason:explicit.reason,level:explicit.level,recoverable:explicit.recoverable})}/* @__PURE__ */
105
+ return Object.freeze({reason:userFacingError("accessDenied"),level:"user_entitlement",recoverable:false})}function freezeDecision(d){let base={name:d.name,enabled:d.enabled,isPending:d.isPending,limits:/* @__PURE__ */Object.freeze({...d.limits})};return d.disabled!==void 0&&(base.disabled=d.disabled),/* @__PURE__ */Object.freeze(base)}var FUNNEL_UNARY_TIMEOUT_MS=3e4,RETRY_OVERRIDE_MAX_MS=BACKOFF_CAP_MS*2,IDEMPOTENCY_HEADER="idempotency-key",MUTATING_METHODS=/* @__PURE__ */new Set(["POST","PUT","PATCH","DELETE"]),NOOP_OBSERVER=/* @__PURE__ */Object.freeze({onEvent(){}}),defaultFunnelTimers=/* @__PURE__ */Object.freeze({setTimeout:(handler,ms)=>setTimeout(handler,ms),clearTimeout:handle=>clearTimeout(handle),now:()=>Date.now()});function seededIdempotencyKey(seed){let safe=seed.trim().replace(/[^A-Za-z0-9_.:-]/g,"-");return safe.length===0?null:`efs_${safe}`.slice(0,128)}function createRequestFunnel(deps){let observer=deps.observer??NOOP_OBSERVER,timers=deps.timers??defaultFunnelTimers,rng=deps.rng??Math.random,sleep=deps.sleep??((ms,signal)=>delayAbortable(ms,timers,signal)),ceiling=deps.maxAttempts??MAX_RETRY_ATTEMPTS,timeoutMs=deps.unaryTimeoutMs??FUNNEL_UNARY_TIMEOUT_MS,mintKey=deps.newIdempotencyKey??defaultIdempotencyKeyFactory(),emit=event=>{try{observer.onEvent(event)}catch{}};async function send(call,req,opts){let perCallMaxAttempts=opts?.maxAttempts,maxAttempts=Math.max(1,perCallMaxAttempts??ceiling),idempotent=opts?.idempotent??MUTATING_METHODS.has(req.method),seeded=opts?.idempotencyKey===void 0?null:seededIdempotencyKey(opts.idempotencyKey),idempotencyKey=idempotent?seeded??mintKey():null,base=assembleHeaders(req,idempotencyKey),attempt=0;for(;;){let stamp=extra=>/* @__PURE__ */Object.freeze({call:call,method:req.method,path:req.path,attempt:attempt,...idempotencyKey?{idempotencyKey:idempotencyKey}:{},...extra});emit(stamp({phase:"attempt"}));let deadline=boundedSignal(timeoutMs,timers),merged=mergeSignals(deadline.signal,req.signal),settled;try{settled=await authedSend({...base,signal:merged.signal},deps.auth)}catch(cause){settled=err(networkError(cause))}finally{merged.dispose(),deadline.cancel()}if(settled.ok)return emit(stamp({phase:"settled",ok:true,reason:"ok"})),settled;let error=settled.error,decision=decideRetry(error,attempt,{maxAttempts:maxAttempts,rng:rng,now:timers.now(),aborted:req.signal?.aborted===true,...perCallMaxAttempts!==void 0?{perCallMaxAttempts:perCallMaxAttempts}:{},...deps.errorPolicy!==void 0?{policy:deps.errorPolicy}:{}}),settledEvent={ok:false,code:error.code,reason:decision.reason,...error.httpStatus!==void 0?{httpStatus:error.httpStatus}:{},...error.requestId!==void 0?{requestId:error.requestId}:{}};if(!decision.retry)return emit(stamp({phase:"settled",...settledEvent})),err(error);if(emit(stamp({phase:"retry",...settledEvent,delayMs:decision.delayMs})),await sleep(decision.delayMs,req.signal),req.signal?.aborted===true)return emit(stamp({phase:"settled",...settledEvent,reason:"aborted"})),err(error);attempt+=1}}async function authorize(req){return withAuthHeaders(req,await resolveDeviceAuth(deps.auth))}async function*stream(call,req,signal){emit(
106
+ /* @__PURE__ */Object.freeze({call:call,phase:"stream.open",method:req.method,path:req.path,attempt:0}));try{yield*deps.auth.transport.stream(req,signal)}catch{yield errorFrame({code:"internal_error",retryable:true,wireMessage:null,synthesized:true,lastEventId:null,serverRequestId:null})}}/* @__PURE__ */
107
+ return Object.freeze({send:send,authorize:authorize,stream:stream})}function assembleHeaders(req,idempotencyKey){let headers={};for(let[key,value]of Object.entries(req.headers??{}))key.toLowerCase()!==IDEMPOTENCY_HEADER&&(headers[key]=value);return idempotencyKey!==null&&(headers["Idempotency-Key"]=idempotencyKey),{...req,headers:headers}}function defaultIdempotencyKeyFactory(){let counter=0;return()=>`efk_${Date.now().toString(36)}_${(counter++).toString(36)}_${Math.random().toString(36).slice(2,12)}`}var POLICY_MAX_ATTEMPTS_CAP=10;function decideRetry(error,attempt,ctx){if(ctx.aborted)return{retry:false,reason:"aborted"};let throttle=throttleKind(error);if(throttle==="quota")return{retry:false,reason:"daily-quota-exhausted"};if(throttle!=="burst"&&!isAutoRetryable(error.code))return{retry:false,reason:"terminal-code"};let reason=throttle==="burst"?"burst-throttle":"retryable-code";if((()=>{if(ctx.policy===void 0)return false;try{return!ctx.policy.shouldRetry(error.code,attempt)}catch{return false}})())return{retry:false,reason:"terminal-code"};let policyCeiling=()=>{if(ctx.policy===void 0)return null;let raw;try{raw=ctx.policy.maxAttempts(error.code)}catch{return null}return typeof raw!="number"||!Number.isFinite(raw)?null:Math.max(1,Math.min(POLICY_MAX_ATTEMPTS_CAP,Math.floor(raw)))},ceiling=ctx.perCallMaxAttempts??policyCeiling()??ctx.maxAttempts;if(attempt+1>=ceiling)return{retry:false,reason:"attempts-exhausted"};let override=retryOverrideMs(error,ctx.now);return override!==null?override>RETRY_OVERRIDE_MAX_MS?{retry:false,reason:"server-reset-beyond-budget"}:{retry:true,reason:reason,delayMs:override}:{retry:true,reason:reason,delayMs:backoffDelayMs(attempt,ctx.rng)}}function throttleKind(error){let code=error.code==="unknown"?fromWire(rawWireCode(error.raw)):error.code;return code==="quotaExceeded"?"quota":code==="rateLimited"||error.httpStatus===429?"burst":null}function retryOverrideMs(error,now){let at=findResetsAt(error.raw);if(at!==null){let delta=at-now;return delta>0?delta:0}let wait=findRetryAfterSeconds(error.raw);return wait===null?null:Math.round(wait*1e3)}function findRetryAfterSeconds(raw){for(let scope of candidateScopes(raw)){let value=scope.retry_after_seconds;if(typeof value=="number"&&Number.isFinite(value)&&value>=0)return value}return null}function findResetsAt(raw){for(let scope of candidateScopes(raw)){let value=scope.resets_at,parsed=parseInstantMs(value);if(parsed!==null)return parsed}return null}function candidateScopes(raw){if(!isRecord(raw))return[];let out=[raw];for(let nested of["error","detail"]){let value=raw[nested];isRecord(value)&&out.push(value)}return out}function parseInstantMs(value){if(typeof value=="number"&&Number.isFinite(value))return value<1e11?Math.round(value*1e3):Math.round(value);if(typeof value=="string"&&value.trim().length>0){let parsed=Date.parse(value);return Number.isFinite(parsed)?parsed:null}return null}function rawWireCode(raw){for(let scope of candidateScopes(raw)){let code=scope.code;if(typeof code=="string"&&code.length>0)return code}return null}function isRecord(value){return typeof value=="object"&&value!==null}async function resolveDeviceAuth(auth){return auth.mode==="anonymous"?{mode:"anonymous",publishableKey:auth.publishableKey,userRef:auth.userRef,...auth.sessionId?{sessionId:auth.sessionId}:{}}:{mode:"personalized",token:await auth.identity.currentToken(),userRef:auth.userRef,...auth.sessionId?{sessionId:auth.sessionId}:{}}}function boundedSignal(ms,timers){let ctrl=new AbortController,handle=timers.setTimeout(()=>ctrl.abort(),ms);return{signal:ctrl.signal,cancel:()=>timers.clearTimeout(handle)}}function mergeSignals(deadline,caller){let noop=()=>{};if(!caller)return{signal:deadline,dispose:noop};let ctrl=new AbortController;if(deadline.aborted||caller.aborted)return ctrl.abort(),{signal:ctrl.signal,dispose:noop};let onAbort=()=>ctrl.abort();return deadline.addEventListener("abort",onAbort,{once:true}),caller.addEventListener("abort",onAbort,{once:true}),{signal:ctrl.signal,dispose:()=>{deadline.removeEventListener("abort",onAbort),caller.removeEventListener("abort",onAbort)}}}function delayAbortable(ms,timers,signal){return ms<=0||signal?.aborted===true?Promise.resolve():new Promise(resolve=>{let handle=timers.setTimeout(()=>{signal?.removeEventListener("abort",onAbort),resolve()},ms),onAbort=()=>{timers.clearTimeout(handle),resolve()};signal?.addEventListener("abort",onAbort,{once:true})})}function parseColor(value){let rgba=toRgba(value);return rgba===null?null:normalizeRgba(rgba)}function toRgba(value){if(typeof value=="number")return argbIntToRgba(value);if(typeof value!="string")return null;let s=value.trim();if(s.length===0)return null;if(s.startsWith("#"))return fromHex(s.slice(1));if(s.toLowerCase().startsWith("0x"))return fromHex(s.slice(2));if(s.toLowerCase().startsWith("rgb"))return fromRgbFunc(s);if(/^[0-9a-fA-F]+$/.test(s)){let hex=fromHex(s);if(hex!==null)return hex}return/^\d+$/.test(s)?argbIntToRgba(Number.parseInt(s,10)):null}function fromHex(hex){let h=hex.trim();if(!/^[0-9a-fA-F]+$/.test(h))return null;if(h.length===3)return{r:dup(h[0]),g:dup(h[1]),b:dup(h[2]),a:1};if(h.length===6)return{r:byte(h,0),g:byte(h,2),b:byte(h,4),a:1};if(h.length===8){let a=byte(h,0);return{r:byte(h,2),g:byte(h,4),b:byte(h,6),a:a/255}}return null}function fromRgbFunc(input){let open=input.indexOf("("),close=input.indexOf(")");if(open<0||close<0||close<open)return null;let parts=input.slice(open+1,close).split(",").map(p=>p.trim());if(parts.length<3)return null;let r=clampByte(Number(parts[0])),g=clampByte(Number(parts[1])),b=clampByte(Number(parts[2]));if(r===null||g===null||b===null)return null;let a=1;if(parts.length>=4){let alpha=Number(parts[3]);if(!Number.isFinite(alpha))return null;a=Math.min(1,Math.max(0,alpha))}return{r:r,g:g,b:b,a:a}}function argbIntToRgba(n){if(!Number.isFinite(n))return null;let int=Math.trunc(n)>>>0,a=int>>>24&255;return{r:int>>>16&255,g:int>>>8&255,b:int&255,a:a===0?1:a/255}}function byte(hex,at){return Number.parseInt(hex.slice(at,at+2),16)}function dup(nibble){return Number.parseInt(`${nibble??"0"}${nibble??"0"}`,16)}function clampByte(n){return Number.isFinite(n)?Math.min(255,Math.max(0,Math.round(n))):null}function normalizeRgba(rgba){if(rgba.a>=1)return rgbToHex(rgba.r,rgba.g,rgba.b);let a=Math.round(rgba.a*1e3)/1e3;return`rgba(${rgba.r},${rgba.g},${rgba.b},${a})`}function rgbToHex(r,g,b){return`#${hex2(r)}${hex2(g)}${hex2(b)}`.toUpperCase()}function hex2(n){return n.toString(16).padStart(2,"0")}var NEAR_BLACK="#111111",WHITE="#FFFFFF",BLACK="#000000";function readableOn(background){let rgba=toRgba(background);if(rgba===null)return WHITE;let bg=relativeLuminance(rgba),black=relativeLuminance({r:17,g:17,b:17}),white=relativeLuminance({r:255,g:255,b:255});return luminanceContrast(bg,white)>=luminanceContrast(bg,black)?WHITE:NEAR_BLACK}function legibleOn(background,target){let first=readableOn(background);return contrastRatio(first,background)>=target?first:contrastRatio(WHITE,background)>=contrastRatio(BLACK,background)?WHITE:BLACK}function poleForGrounds(grounds){let worst=ink=>grounds.reduce((low,ground)=>Math.min(low,contrastRatio(ink,ground)),Number.POSITIVE_INFINITY);return worst(WHITE)>=worst(BLACK)?WHITE:BLACK}function relativeLuminance(rgba){let r=linearize(rgba.r/255),g=linearize(rgba.g/255),b=linearize(rgba.b/255);return.2126*r+.7152*g+.0722*b}function linearize(channel2){return channel2<=.03928?channel2/12.92:Math.pow((channel2+.055)/1.055,2.4)}function luminanceContrast(l1,l2){let lighter=Math.max(l1,l2),darker=Math.min(l1,l2);return(lighter+.05)/(darker+.05)}function contrastRatio(a,b){let fg=toRgba(a),bg=toRgba(b);if(fg===null||bg===null)return 1;let ground=bg.a>=1?bg:{...bg},fore=fg.a>=1?fg:composite(fg,ground);return luminanceContrast(relativeLuminance(fore),relativeLuminance(ground))}function composite(fg,bg){let a=fg.a,mix2=(f,g)=>Math.round(f*a+g*(1-a));return{r:mix2(fg.r,bg.r),g:mix2(fg.g,bg.g),b:mix2(fg.b,bg.b),a:1}}function flattenOnto(color,background){let fg=toRgba(color),bg=toRgba(background);if(fg===null||bg===null)return null;let out=fg.a>=1?fg:composite(fg,{...bg});return rgbToHex(out.r,out.g,out.b)}function withAlpha(color,alpha){let rgba=toRgba(color);if(rgba===null)return null;let a=Math.min(1,Math.max(0,alpha));return`rgba(${rgba.r}, ${rgba.g}, ${rgba.b}, ${a})`}var PUSH_STEP=.05;function pushToContrast(color,grounds,pole,target){let first=grounds[0];if(first===void 0)return pole;let reads=candidate=>grounds.every(ground=>contrastRatio(candidate,ground)>=target);if(toRgba(color)===null)return pole;if(reads(color))return color;let flat=flattenOnto(color,first),from=flat===null?null:toRgba(flat),to=toRgba(pole);if(from===null||to===null)return pole;for(let step=1;step<1/PUSH_STEP;step+=1){let t=step*PUSH_STEP,mix2=(a,b)=>Math.round(a+(b-a)*t),candidate=rgbToHex(mix2(from.r,to.r),mix2(from.g,to.g),mix2(from.b,to.b));if(reads(candidate))return candidate}return pole}function rgbToHsl(r,g,b){let rn=r/255,gn=g/255,bn=b/255,mx=Math.max(rn,gn,bn),mn=Math.min(rn,gn,bn),l=(mx+mn)/2;if(mx===mn)return{h:0,s:0,l:l};let d=mx-mn,s=d/(1-Math.abs(2*l-1)),h;return mx===rn?(h=(gn-bn)/d*60,h<0&&(h=h+360)):mx===gn?h=((bn-rn)/d+2)*60:h=((rn-gn)/d+4)*60,{h:h,s:s,l:l}}function hslToRgb(hsl){let{h:h,s:s,l:l}=hsl,c=(1-Math.abs(2*l-1))*s,hp=h/60,x=c*(1-Math.abs(hp%2-1)),m=l-c/2,sector=Math.floor(hp)%6,rgb1=[[c,x,0],[x,c,0],[0,c,x],[0,x,c],[x,0,c],[c,0,x]],[r1,g1,b1]=rgb1[sector];return{r:channel(r1+m),g:channel(g1+m),b:channel(b1+m)}}function channel(v){return Math.min(255,Math.max(0,Math.floor(v*255+.5)))}var THEME_SLOT_NAMES=/* @__PURE__ */Object.freeze(["composerInput","sendButton","userBubble","assistantBubble","vetBubble","recordCard","vetVisitButton","primaryButton","link"]),THEME_SLOT_KEYS=/* @__PURE__ */Object.freeze(["backgroundColor","borderColor","borderRadius","textColor"]),SLOT_MIN_CONTRAST=4.5,EMPTY=/* @__PURE__ */Object.freeze({});function isSlotName(value){return THEME_SLOT_NAMES.includes(value)}function parseRadius(value){let n=typeof value=="number"?value:typeof value=="string"?Number(value.trim()):Number.NaN;return Number.isFinite(n)?Math.max(0,n):null}function parseThemeSlots(json){if(json===null||typeof json!="object"||Array.isArray(json))return null;let out={},any=false;for(let[name,raw]of Object.entries(json)){if(!isSlotName(name)||raw===null||typeof raw!="object")continue;let slot=parseSlot(raw);slot!==null&&(out[name]=slot,any=true)}return any?/* @__PURE__ */Object.freeze(out):null}function pick(raw,snake,camel){return raw[snake]!==void 0?raw[snake]:raw[camel]}function parseSlot(raw){let slot={},backgroundColor=parseColor(pick(raw,"background_color","backgroundColor"));backgroundColor!==null&&(slot.backgroundColor=backgroundColor);let borderColor=parseColor(pick(raw,"border_color","borderColor"));borderColor!==null&&(slot.borderColor=borderColor);let borderRadius=parseRadius(pick(raw,"border_radius","borderRadius"));borderRadius!==null&&(slot.borderRadius=borderRadius);let textColor=parseColor(pick(raw,"text_color","textColor"));return textColor!==null&&(slot.textColor=textColor),Object.keys(slot).length===0?null:/* @__PURE__ */Object.freeze(slot)}function mergeThemeSlots(base,over){return over===null||Object.keys(over).length===0?base??EMPTY:base===null||Object.keys(base).length===0?over:/* @__PURE__ */Object.freeze({...base,...over})}function isOpaque(color){let rgba=toRgba(color);return rgba!==null&&rgba.a>=1}var SLOT_MIN_BORDER_CONTRAST=3;function boundaryFor(fill,surrounds,seats=[]){if(surrounds.length===0)return null;let shown=surrounds.map(ground=>flattenOnto(fill,ground)??fill);if(surrounds.every((ground,index)=>contrastRatio(shown[index],ground)>=SLOT_MIN_BORDER_CONTRAST))return null;let against=[...surrounds,...shown,...seats];return pushToContrast(shown[0],against,poleForGrounds(against),SLOT_MIN_BORDER_CONTRAST)}function seatsOf(background,defaults){return background===void 0?defaults:defaults.length===0?[background]:defaults.map(ground=>flattenOnto(background,ground)??ground)}function someInkReads(seats,target){let pole=poleForGrounds(seats);return seats.every(seat=>contrastRatio(pole,seat)>=target)}function collapseUnsatisfiableFill(background,defaults){let ground=defaults[0];return ground===void 0?null:flattenOnto(background,ground)}function inkFor(seats){let pick4=legibleOn(seats[0],SLOT_MIN_CONTRAST);return seats.every(seat=>contrastRatio(pick4,seat)>=SLOT_MIN_CONTRAST)?pick4:poleForGrounds(seats)}function guardSlotContrast(slots,grounds,surrounds){let changed=false,out={};for(let name of THEME_SLOT_NAMES){let slot=slots[name];if(slot===void 0)continue;let bg=slot.backgroundColor,defaults=grounds?.[name]??[],seats=seatsOf(bg,defaults),next={...slot},fixed=false;if(bg!==void 0&&seats.length>1&&!someInkReads(seats,SLOT_MIN_CONTRAST)){let opaque=collapseUnsatisfiableFill(bg,defaults);opaque!==null&&(next.backgroundColor=opaque,seats=[opaque],fixed=true)}let around=surrounds?.[name],fill=next.backgroundColor,melts=around!==void 0&&fill!==void 0&&isOpaque(fill)&&boundaryFor(fill,around,seats)!==null;if(seats.length>0){let ink=slot.textColor;if(bg!==void 0)(ink===void 0||seats.some(seat=>contrastRatio(ink,seat)<SLOT_MIN_CONTRAST))&&(next.textColor=inkFor(seats),fixed=true);else if(ink!==void 0){let legible=pushToContrast(ink,seats,poleForGrounds(seats),SLOT_MIN_CONTRAST);legible!==ink&&(next.textColor=legible,fixed=true)}if(slot.borderColor!==void 0){let against=melts?[...seats,...around??[]]:seats,edge=pushToContrast(slot.borderColor,against,poleForGrounds(against),SLOT_MIN_BORDER_CONTRAST);edge!==slot.borderColor&&(next.borderColor=edge,fixed=true)}}if(melts&&fill!==void 0&&around!==void 0&&next.borderColor===void 0){let edge=boundaryFor(fill,around,seats);edge!==null&&(next.borderColor=edge,fixed=true)}out[name]=fixed?/* @__PURE__ */Object.freeze(next):slot,changed=changed||fixed}return changed?/* @__PURE__ */Object.freeze(out):slots}var freezeInPlace=Object.freeze;function deepFreeze(value){if(value!==null&&typeof value=="object"&&!Object.isFrozen(value)){freezeInPlace(value);for(let key of Object.keys(value))deepFreeze(value[key])}return value}var TEXT_SCALE_TIER_CAPS=/* @__PURE__ */Object.freeze({content:0,heading:2,control:1.8,compact:1.5,badge:1.3}),SPACE={xs:4,sm:8,md:12,lg:16,xl:24,xxl:32},RADIUS={tile:5,xs:6,sm:10,md:14,lg:20,xl:28,pill:500},TYPE_SIZE={nano:8,small:9,micro:10,tiny:11,caption:13,bodyTight:15,body:17,subtitle:20,heading:22,verdict:24},LINE_HEIGHT={tight:1.15,snug:1.3,normal:1.4,relaxed:1.55},WEIGHT={regular:"400",medium:"500",bold:"700"},LETTER_SPACING={eyebrow:1,monoWide:.9,headerBrand:-.42,tight:-.35},DEFAULT_MAX_FONT_SCALE=0,SYSTEM_FONT_FAMILY="System",SYSTEM_MONO_FAMILY="monospace",TIERS=["content","heading","control","compact","badge"];function authoredTierSizes(size){let out={};for(let tier of TIERS)out[tier]=size;return out}function baseType(){return{family:SYSTEM_FONT_FAMILY,mono:SYSTEM_MONO_FAMILY,fontUrl:null,families:{regular:SYSTEM_FONT_FAMILY,medium:SYSTEM_FONT_FAMILY,bold:SYSTEM_FONT_FAMILY,mono:SYSTEM_MONO_FAMILY,monoMedium:SYSTEM_MONO_FAMILY,monoBold:SYSTEM_MONO_FAMILY},namedFaces:{regular:false,medium:false,bold:false,mono:false,monoMedium:false,monoBold:false},fontUrls:{},size:TYPE_SIZE,tierSizes:authoredTierSizes(TYPE_SIZE),lineHeight:LINE_HEIGHT,weight:WEIGHT,letterSpacing:LETTER_SPACING,scale:1,maxScale:DEFAULT_MAX_FONT_SCALE,scaleCaps:TEXT_SCALE_TIER_CAPS}}var NO_SLOTS={},EASING_CURVES=/* @__PURE__ */Object.freeze({standard:/* @__PURE__ */Object.freeze([.2,0,0,1]),emphasized:/* @__PURE__ */Object.freeze([.2,.8,.2,1]),exit:/* @__PURE__ */Object.freeze([.4,0,1,1])});function cssCubicBezier(curve){return`cubic-bezier(${curve.join(", ")})`}var MOTION={duration:{instant:80,fast:140,normal:220,slow:320},spring:{gentle:{damping:18,stiffness:200}},easing:{standard:cssCubicBezier(EASING_CURVES.standard),emphasized:cssCubicBezier(EASING_CURVES.emphasized),exit:cssCubicBezier(EASING_CURVES.exit)},reducedMotion:false},LIGHT_COLOR={brand:"#10462E",brandSoft:"rgba(16,70,46,0.10)",brandSofter:"rgba(16,70,46,0.15)",brandBorder:"rgba(16,70,46,0.18)",borderHairlineGreen:"rgba(16,70,46,0.25)",brandBorderStrong:"rgba(16,70,46,0.55)",brandInk:"#10462E",linkInk:"#10462E",surface:"#FFFFFF",surfaceCream:"#FFFFFF",surfaceSubtle:"#F1F5F2",background:"#FFFFFF",borderRingCream:"#E4E4E4",chatGround:"#FFFFFF",composerFill:"#FFFFFF",composerBorder:"rgba(16,70,46,0.75)",shadow:"#0B3421",text:{primary:"#000000",secondary:"#0E462E",muted:"#6B6B6B",placeholder:"rgba(61,61,61,0.75)",onBrand:"#FFFFFF",metaCool:"#3D3D3D",timestamp:"rgba(61,61,61,0.75)"},primary:"#10462E",onPrimary:"#FFFFFF",accent:"#10462E",onAccent:"#FFFFFF",accentEdge:"#07C168",success:"#07C168",danger:"#C03410",onDanger:"#FFFFFF",errorRed:"#C03410",warningStrong:"#A45610",cautionAccent:"#D9821D",riskConcern:"#EFA700",sentiment:{up:"#07C168",neutral:"#FBC558",down:"#FF1B00"},badgeBgPositive:"rgba(7,193,104,0.12)",badgeBgCaution:"rgba(217,130,29,0.14)",badgeBgCritical:"rgba(192,52,16,0.06)",badgeBgNeutral:"rgba(107,107,107,0.12)",bubbleUser:"#10462E",bubbleAssistant:"#FFFFFF",bubbleVet:"#FFC3BC",onBubbleVet:"#000000",skeleton:"#E9F1E9",scanButtonPink:"#FFC3BC",highlight:"#FFC3BC",onHighlight:"#000000",mark:"#07C168",controlEdge:"rgba(16,70,46,0.18)",structureEdge:"rgba(16,70,46,0.25)",primaryEdge:"#10462E",checkupCardLowRiskBg:"rgba(7,193,104,0.10)",checkupCardConcernBg:"rgba(239,167,0,0.10)"},EVERFUR_LIGHT=deepFreeze({brightness:"light",highContrast:false,meta:{displayName:"Everfur",logoUrl:null,placeholder:null,hidePoweredBy:false},color:LIGHT_COLOR,space:SPACE,radius:RADIUS,type:baseType(),motion:MOTION,slots:NO_SLOTS}),DARK_COLOR={brand:"#6BD39A",brandSoft:"rgba(107,211,154,0.12)",brandSofter:"rgba(107,211,154,0.18)",brandBorder:"rgba(107,211,154,0.22)",borderHairlineGreen:"rgba(107,211,154,0.28)",brandBorderStrong:"rgba(107,211,154,0.55)",brandInk:"#6BD39A",linkInk:"#6BD39A",surface:"#1C1F23",surfaceCream:"#23272C",surfaceSubtle:"#23272C",background:"#15171A",borderRingCream:"#3A3F45",chatGround:"#1C1F23",composerFill:"#23272C",composerBorder:"rgba(107,211,154,0.75)",shadow:"#000000",text:{primary:"#F5F3F0",secondary:"#A9E4C4",muted:"#9A9A9A",placeholder:"rgba(255,255,255,0.55)",onBrand:"#0E1F17",metaCool:"#C9C9C9",timestamp:"rgba(245,243,240,0.7)"},primary:"#6BD39A",onPrimary:"#0E1F17",accent:"#6BD39A",onAccent:"#0E1F17",accentEdge:"#34D888",success:"#07C168",danger:"#F87171",onDanger:"#0E1F17",errorRed:"#FF6B5B",warningStrong:"#F0A35E",cautionAccent:"#D9821D",riskConcern:"#EFA700",sentiment:{up:"#07C168",neutral:"#FBC558",down:"#FF1B00"},badgeBgPositive:"rgba(7,193,104,0.18)",badgeBgCaution:"rgba(217,130,29,0.20)",badgeBgCritical:"rgba(185,28,28,0.22)",badgeBgNeutral:"rgba(255,255,255,0.10)",bubbleUser:"#6BD39A",bubbleAssistant:"#1C1F23",bubbleVet:"#FFC3BC",onBubbleVet:"#000000",skeleton:"#23272C",scanButtonPink:"#FFC3BC",highlight:"#605051",onHighlight:"#F5F3F0",mark:"#07C168",controlEdge:"rgba(107,211,154,0.22)",structureEdge:"rgba(107,211,154,0.28)",primaryEdge:"#6BD39A",checkupCardLowRiskBg:"rgba(7,193,104,0.16)",checkupCardConcernBg:"rgba(239,167,0,0.16)"},EVERFUR_DARK=deepFreeze({brightness:"dark",highContrast:false,meta:{displayName:"Everfur",logoUrl:null,placeholder:null,hidePoweredBy:false},color:DARK_COLOR,space:SPACE,radius:RADIUS,type:baseType(),motion:MOTION,slots:NO_SLOTS});function textGrounds(c){return[c.surface,c.surfaceCream,c.surfaceSubtle,c.background,c.chatGround,c.composerFill]}function controlGrounds(c){return[c.surface,c.surfaceCream,c.background,c.chatGround,c.composerFill]}function brandReadsOnControls(c){return controlGrounds(c).every(ground=>contrastRatio(c.brand,ground)>=SLOT_MIN_BORDER_CONTRAST)}function linkGrounds(c){return[c.chatGround,c.surface,c.surfaceCream]}function statusGrounds(c,wash){return[c.surface,c.surfaceCream,c.background,c.chatGround,c.composerFill,...washGrounds(c,wash)]}function washGrounds(c,wash){return[flattenOnto(wash,c.surface)??c.surface,flattenOnto(wash,c.surfaceCream)??c.surfaceCream]}function composerGrounds(c){return[c.composerFill,c.chatGround]}var AUTHORED_AS_IS=/* @__PURE__ */new Set(["text.timestamp","text.placeholder","errorRed","warningStrong","composerBorder"]);function onCompiledGrounds(c,compiled){let own=new Set(textGrounds(compiled));return textGrounds(c).every(ground=>own.has(ground))}function guardInks(theme){let c=theme.color,compiled=(theme.brightness==="dark"?EVERFUR_DARK:EVERFUR_LIGHT).color,other=(theme.brightness==="dark"?EVERFUR_LIGHT:EVERFUR_DARK).color,grounds=textGrounds(c),flipped=poleForGrounds(grounds)!==poleForGrounds(textGrounds(compiled)),keepCompiled=onCompiledGrounds(c,compiled),dangerIsCompiled=c.danger===compiled.danger&&c.badgeBgCritical===compiled.badgeBgCritical,ink=(name,value,authored,twin,on,target)=>{let untouched=value===authored&&(name!=="errorRed"||dangerIsCompiled);return untouched&&keepCompiled&&AUTHORED_AS_IS.has(name)?value:pushToContrast(untouched&&flipped?twin:value,on,poleForGrounds(on),target)},text2=(key,on,target)=>ink(`text.${key}`,c.text[key],compiled.text[key],other.text[key],on,target),token=(key,value,on,target)=>ink(key,value,compiled[key],other[key],on,target),tint=key=>flipped&&c[key]===compiled[key]?other[key]:c[key],primary=c.primary,onPrimary=legibleOn(primary,SLOT_MIN_CONTRAST),danger=token("danger",c.danger,[...grounds,...washGrounds(c,c.badgeBgCritical)],SLOT_MIN_CONTRAST),guarded={...c,onPrimary:onPrimary,onAccent:legibleOn(c.accent,SLOT_MIN_CONTRAST),onDanger:contrastRatio(onPrimary,danger)>=SLOT_MIN_CONTRAST?onPrimary:legibleOn(danger,SLOT_MIN_CONTRAST),brandSoft:tint("brandSoft"),brandSofter:tint("brandSofter"),brandBorder:tint("brandBorder"),borderHairlineGreen:tint("borderHairlineGreen"),brandInk:token("brandInk",c.brandInk,grounds,SLOT_MIN_CONTRAST),linkInk:token("linkInk",theme.slots.link?.textColor??c.accent,linkGrounds(c),SLOT_MIN_CONTRAST),text:{...c.text,primary:text2("primary",grounds,SLOT_MIN_CONTRAST),secondary:text2("secondary",grounds,SLOT_MIN_CONTRAST),muted:text2("muted",grounds,SLOT_MIN_CONTRAST),metaCool:text2("metaCool",grounds,SLOT_MIN_CONTRAST),timestamp:text2("timestamp",grounds,SLOT_MIN_CONTRAST),placeholder:text2("placeholder",controlGrounds(c),SLOT_MIN_BORDER_CONTRAST)},danger:danger,errorRed:token("errorRed",c.errorRed,statusGrounds(c,c.badgeBgCritical),SLOT_MIN_CONTRAST),warningStrong:token("warningStrong",c.warningStrong,statusGrounds(c,c.badgeBgCaution),SLOT_MIN_CONTRAST),composerBorder:token("composerBorder",c.composerBorder,composerGrounds(c),SLOT_MIN_BORDER_CONTRAST),brandBorderStrong:token("brandBorderStrong",c.brandBorderStrong,controlGrounds(c),SLOT_MIN_BORDER_CONTRAST)};return{...guarded,...accentFamily(guarded,compiled,keepCompiled)}}var HIGHLIGHT_LIGHT_TINT=.24,HIGHLIGHT_DARK_TINT=.3;function same(a,b){return parseColor(a)===parseColor(b)}function partnerHue(c,compiled){return same(c.accent,compiled.accent)?same(c.brand,compiled.brand)?null:c.brand:c.accent}function tintOver(hue,surface,tint){let wash=withAlpha(hue,tint);return(wash===null?null:flattenOnto(wash,surface))??surface}function accentFamily(c,compiled,keepCompiled){let hue=partnerHue(c,compiled),controls=controlGrounds(c),controlPole=poleForGrounds(controls),darkGround=poleForGrounds([c.surface])===WHITE,everfurMarks=hue===null&&keepCompiled,highlight;everfurMarks?highlight=compiled.highlight:hue===null?highlight=darkGround?tintOver(EVERFUR_LIGHT.color.highlight,c.surface,HIGHLIGHT_DARK_TINT):EVERFUR_LIGHT.color.highlight:highlight=tintOver(hue,c.surface,darkGround?HIGHLIGHT_DARK_TINT:HIGHLIGHT_LIGHT_TINT);let onHighlight=everfurMarks?compiled.onHighlight:pushToContrast(c.text.primary,[highlight],poleForGrounds([highlight]),SLOT_MIN_CONTRAST),mark=hue===null?compiled.mark:pushToContrast(hue,controls,controlPole,SLOT_MIN_BORDER_CONTRAST),toward=brandReadsOnControls(c)?c.brand:controlPole,edge=(value,authored,compiledEdge)=>keepCompiled&&same(value,authored)?compiledEdge:pushToContrast(value,controls,toward,SLOT_MIN_BORDER_CONTRAST),primaryGrounds=[c.chatGround,c.composerFill,c.surface,c.surfaceCream],primaryEdge=primaryGrounds.every(ground=>contrastRatio(c.primary,ground)>=SLOT_MIN_BORDER_CONTRAST)?c.primary:pushToContrast(c.primary,primaryGrounds,poleForGrounds(primaryGrounds),SLOT_MIN_BORDER_CONTRAST);return{highlight:highlight,onHighlight:onHighlight,mark:mark,controlEdge:edge(c.brandBorder,compiled.brandBorder,compiled.controlEdge),structureEdge:edge(c.borderHairlineGreen,compiled.borderHairlineGreen,compiled.structureEdge),primaryEdge:primaryEdge}}var same2=(a,b)=>a!==void 0&&b!==void 0&&parseColor(a)===parseColor(b);function diffThemeAdjustments(merged,resolved){let compiled=(merged.brightness==="dark"?EVERFUR_DARK:EVERFUR_LIGHT).color,m=merged.color,r=resolved.color,out=[],add=(field,role,requested,painted)=>{out.push(/* @__PURE__ */Object.freeze({field:field,role:role,requested:requested,painted:painted}))},own=(value,compiledValue)=>!same2(value,compiledValue);own(m.text.primary,compiled.text.primary)&&!same2(r.text.primary,m.text.primary)&&add("text_color","body text",m.text.primary,r.text.primary),own(m.brand,compiled.brand)&&(same2(r.brandInk,m.brand)||add("primary_color","brand text and icons",m.brand,r.brandInk),same2(r.primaryEdge,m.primary)||add("primary_color","edge of a filled control",m.primary,r.primaryEdge),!same2(r.controlEdge,m.brandBorder)&&!brandReadsOnControls({...r,brand:m.brand})&&add("primary_color","control outline",m.brand,r.controlEdge)),own(m.accent,compiled.accent)&&merged.slots.link?.textColor===void 0&&!same2(r.linkInk,m.accent)&&add("accent_color","link text",m.accent,r.linkInk),own(m.danger,compiled.danger)&&!same2(r.danger,m.danger)&&add("danger_color","error text",m.danger,r.danger);for(let name of THEME_SLOT_NAMES){let before=merged.slots[name],after=resolved.slots[name];before===void 0||after===void 0||before===after||(after.backgroundColor!==void 0&&!same2(after.backgroundColor,before.backgroundColor)&&add(`slots.${name}.background_color`,"fill",before.backgroundColor??null,after.backgroundColor),before.textColor!==void 0&&after.textColor!==void 0&&!same2(after.textColor,before.textColor)&&add(`slots.${name}.text_color`,"text",before.textColor??null,after.textColor),after.borderColor!==void 0&&!same2(after.borderColor,before.borderColor)&&add(`slots.${name}.border_color`,"outline",before.borderColor??null,after.borderColor))}/* @__PURE__ */
108
+ return Object.freeze(out)}var DARK_VARIANT_GROUND="#23272C",DARK_VARIANT_TARGET_RATIO=4.5,DARK_VARIANT_LIGHTNESS_FLOOR=.6,DARK_VARIANT_LIGHTNESS_CEILING=.9,DARK_VARIANT_LIGHTNESS_STEP=.02,WHITE_INK="#FFFFFF",NEAR_BLACK_INK="#111111";function readsOnDark(candidate){return contrastRatio(candidate,DARK_VARIANT_GROUND)>=DARK_VARIANT_TARGET_RATIO&&Math.max(contrastRatio(candidate,WHITE_INK),contrastRatio(candidate,NEAR_BLACK_INK))>=DARK_VARIANT_TARGET_RATIO}function deriveDarkVariant(color){let rgba=toRgba(color);if(rgba===null)return null;let{h:h,s:s,l:l}=rgbToHsl(rgba.r,rgba.g,rgba.b),lDark=Math.min(Math.max(l,DARK_VARIANT_LIGHTNESS_FLOOR),DARK_VARIANT_LIGHTNESS_CEILING);for(let i=0;;i+=1){let li=lDark+i*DARK_VARIANT_LIGHTNESS_STEP;if(li>DARK_VARIANT_LIGHTNESS_CEILING)break;let rgb=hslToRgb({h:h,s:s,l:li}),candidate=rgbToHex(rgb.r,rgb.g,rgb.b);if(readsOnDark(candidate))return candidate}let ceiling=hslToRgb({h:h,s:s,l:DARK_VARIANT_LIGHTNESS_CEILING});return rgbToHex(ceiling.r,ceiling.g,ceiling.b)}var HIGH_CONTRAST_TARGET_RATIO=7,PUSH_STEP2=.05,BLACK2="#000000",WHITE2="#FFFFFF";function pushContrast(color,ground,pole,target){let flat=flattenOnto(color,ground);if(flat===null)return pole;if(contrastRatio(flat,ground)>=target)return flat;let from=toRgba(flat),to=toRgba(pole);if(from===null||to===null)return pole;for(let step=1;step<1/PUSH_STEP2;step+=1){let t=step*PUSH_STEP2,mix2=(a,b)=>Math.round(a+(b-a)*t),candidate=rgbToHex(mix2(from.r,to.r),mix2(from.g,to.g),mix2(from.b,to.b));if(contrastRatio(candidate,ground)>=target)return candidate}return pole}function hardestGround(color,dark){let grounds=textGrounds(color),pick4=grounds[0],pickLum=luminanceOf(pick4);for(let ground of grounds){let lum=luminanceOf(ground);(dark?lum>pickLum:lum<pickLum)&&(pick4=ground,pickLum=lum)}return pick4}function luminanceOf(color){let rgba=toRgba(color);return rgba===null?0:relativeLuminance(rgba)}function solid(wash,surface){return flattenOnto(wash,surface)??parseColor(wash)??surface}function deriveHighContrast(theme){let c=theme.color,lightInk=poleForGrounds(textGrounds(c))===WHITE2,pole=lightInk?WHITE2:BLACK2,ground=hardestGround(c,lightInk),text2=color2=>pushContrast(color2,ground,pole,HIGH_CONTRAST_TARGET_RATIO),color={...c,brandSoft:solid(c.brandSoft,c.surface),brandSofter:solid(c.brandSofter,c.surface),brandBorder:text2(c.brandBorder),borderHairlineGreen:text2(c.borderHairlineGreen),brandBorderStrong:text2(c.brandBorderStrong),controlEdge:text2(c.controlEdge),structureEdge:text2(c.structureEdge),brandInk:text2(c.brandInk),linkInk:text2(c.linkInk),borderRingCream:text2(c.borderRingCream),composerBorder:text2(c.composerBorder),text:{primary:text2(c.text.primary),secondary:text2(c.text.secondary),muted:text2(c.text.muted),placeholder:text2(c.text.placeholder),onBrand:c.text.onBrand,metaCool:text2(c.text.metaCool),timestamp:text2(c.text.timestamp)},badgeBgPositive:solid(c.badgeBgPositive,c.surface),badgeBgCaution:solid(c.badgeBgCaution,c.surface),badgeBgCritical:solid(c.badgeBgCritical,c.surface),badgeBgNeutral:solid(c.badgeBgNeutral,c.surface),checkupCardLowRiskBg:solid(c.checkupCardLowRiskBg,c.surface),checkupCardConcernBg:solid(c.checkupCardConcernBg,c.surface)};return deepFreeze({...theme,highContrast:true,color:color})}var BACKGROUND_STEPS=/* @__PURE__ */Object.freeze({cream:.03,subtle:.07,ring:.16}),CREAM_STEP=BACKGROUND_STEPS.cream,SUBTLE_STEP=BACKGROUND_STEPS.subtle,RING_STEP=BACKGROUND_STEPS.ring,MIN_DERIVED_TYPE_SIZE=10;function mix(color,toward,t){let from=toRgba(color),to=toRgba(toward);if(from===null||to===null)return null;let at=(a,b)=>Math.round(a+(b-a)*t);return rgbToHex(at(from.r,to.r),at(from.g,to.g),at(from.b,to.b))}function surfaceFamily(background){if(background===null)return{};let pole=poleForGrounds([background]),cream=mix(background,pole,CREAM_STEP),subtle=mix(background,pole,SUBTLE_STEP),ring=mix(background,pole,RING_STEP);return cream===null||subtle===null||ring===null?{}:{surface:background,background:background,chatGround:background,bubbleAssistant:background,surfaceCream:cream,composerFill:cream,surfaceSubtle:subtle,skeleton:subtle,borderRingCream:ring}}function dangerFamily(danger){if(danger===null)return{};let rgba=toRgba(danger);return rgba===null?{}:{danger:danger,errorRed:danger,badgeBgCritical:`rgba(${rgba.r},${rgba.g},${rgba.b},0.12)`}}function typeSizesFor(base,current,compiled){if(base===null)return current;let factor=base/compiled.type.size.body;if(factor===1)return compiled.type.size;let out={};for(let[key,value]of Object.entries(compiled.type.size))out[key]=Math.max(MIN_DERIVED_TYPE_SIZE,Math.round(value*factor*10)/10);return out}function spaceFor(unit,current,compiled){if(unit===null)return current;let factor=unit/compiled.space.xs,s=n=>Math.round(n*factor),c=compiled.space;return{xs:s(c.xs),sm:s(c.sm),md:s(c.md),lg:s(c.lg),xl:s(c.xl),xxl:s(c.xxl)}}function radiiFor(base,compiled){let factor=base/compiled.radius.md,s=n=>Math.round(n*factor),r=compiled.radius;return{tile:s(r.tile),xs:s(r.xs),sm:s(r.sm),md:s(r.md),lg:s(r.lg),xl:s(r.xl),pill:r.pill}}var APPEARANCE_PRESET_NAMES=/* @__PURE__ */Object.freeze(["everfur","minimal","night"]),APPEARANCE_PRESETS=/* @__PURE__ */Object.freeze({everfur:/* @__PURE__ */Object.freeze({}),minimal:/* @__PURE__ */Object.freeze({colorPrimary:"#111111",colorAccent:"#111111",borderRadius:6}),night:/* @__PURE__ */Object.freeze({colorScheme:"dark"})}),APPEARANCE_SIZE_RANGES=/* @__PURE__ */Object.freeze({fontSizeBase:/* @__PURE__ */Object.freeze({min:12,max:20,default:14}),borderRadius:/* @__PURE__ */Object.freeze({min:0,max:32,default:14}),spacingUnit:/* @__PURE__ */Object.freeze({min:3,max:6,default:4})});function isRecord2(value){return value!==null&&typeof value=="object"&&!Array.isArray(value)}function isPreset(value){return typeof value=="string"&&APPEARANCE_PRESET_NAMES.includes(value.trim().toLowerCase())}function present(vars,key){let value=vars[key];return value??void 0}var PX_MAX_LENGTH=16;function parsePx(value){if(typeof value=="number")return Number.isFinite(value)?value:void 0;if(typeof value!="string"||value.length>PX_MAX_LENGTH)return;let match=/^(-?\d+(?:\.\d+)?)(?: ?px)?$/i.exec(value.trim());return match===null?void 0:Number(match[1])}var COLOR_VARIABLES=[["colorPrimary","primary_color"],["colorAccent","accent_color"],["colorBackground","background_color"],["colorText","text_color"]],SIZE_VARIABLES=[["fontSizeBase","font_size_base"],["borderRadius","border_radius"],["spacingUnit","spacing_unit"]];function expandAppearance(appearance){if(!isRecord2(appearance))return null;let preset=isPreset(appearance.theme)?APPEARANCE_PRESETS[appearance.theme.trim().toLowerCase()]:{},own=isRecord2(appearance.variables)?appearance.variables:{},vars={...preset};for(let[key,value]of Object.entries(own))value!=null&&(vars[key]=value);let out={},scheme=present(vars,"colorScheme"),schemeName=typeof scheme=="string"?scheme.trim().toLowerCase():null;(schemeName==="light"||schemeName==="dark"||schemeName==="auto")&&(out.color_scheme=schemeName);let suffix=schemeName==="dark"?"_dark":"";for(let[variable,field]of COLOR_VARIABLES){let value=present(vars,variable);value!==void 0&&(out[`${field}${suffix}`]=value)}let danger=present(vars,"colorDanger");danger!==void 0&&(out[`danger_color${suffix}`]=danger);let family=present(vars,"fontFamily");typeof family=="string"&&family.trim().length>0&&(out.font_family=family.trim());for(let[variable,field]of SIZE_VARIABLES){let px=parsePx(present(vars,variable));px!==void 0&&(out[field]=px)}let rules=appearance.rules;if(isRecord2(rules)){let slots={};for(let name of THEME_SLOT_NAMES){let paint=rules[name];isRecord2(paint)&&(slots[name]=paint)}Object.keys(slots).length>0&&(out.slots=slots)}return Object.keys(out).length===0?null:/* @__PURE__ */Object.freeze(out)}var LOCKABLE_THEME_FIELDS=/* @__PURE__ */Object.freeze(["display_name","logo_url","logo_url_dark","primary_color","accent_color","primary_color_dark","accent_color_dark","brightness","color_scheme","font_family","font_url","fonts","font_urls","chat_placeholder","surface_style","radius_scale","accessibility_max_font_scale","slots","background_color","background_color_dark","text_color","text_color_dark","danger_color","danger_color_dark","font_size_base","border_radius","spacing_unit"]),SLOT_LOCK_PREFIX="slots.",THEME_SCHEMA_VERSIONS=/* @__PURE__ */Object.freeze([1,2]);function isEmptyBranding(b){return Object.keys(b).every(key=>key==="schemaVersion"||(b[key]??null)===null)}function isKnownBrandingSchema(b){let version=b?.schemaVersion??null;return version===null||THEME_SCHEMA_VERSIONS.includes(version)}function lockedFieldsOf(b){/* @__PURE__ */
109
+ return new Set(["hide_powered_by",...b?.lockedFields??[]])}function isThemeLockName(name){return name==="hide_powered_by"||LOCKABLE_THEME_FIELDS.includes(name)?true:name.startsWith(SLOT_LOCK_PREFIX)&&THEME_SLOT_NAMES.includes(name.slice(SLOT_LOCK_PREFIX.length))}function parseClientBranding(json){if(json===null||typeof json!="object")return null;let raw=json,flat=parseFlat(raw),expanded=expandAppearance(pick2(raw,"appearance")),branding=expanded===null?flat:overlayFlat(parseFlat(expanded),flat);return isEmptyBranding(branding)?null:/* @__PURE__ */Object.freeze(branding)}function overlayFlat(base,over){let out={...base};for(let[key,value]of Object.entries(over))value!=null&&(out[key]=value);let slots=mergeThemeSlots(base.slots??null,over.slots??null);return out.slots=Object.keys(slots).length===0?null:slots,out}function parseFlat(raw){return{displayName:parseNonEmptyString(pick2(raw,"display_name","displayName")),logoUrl:parseNonEmptyString(pick2(raw,"logo_url","logoUrl")),primaryColor:parseColor(pick2(raw,"primary_color","primaryColor")),accentColor:parseColor(pick2(raw,"accent_color","accentColor")),brightness:parseBrightness(pick2(raw,"brightness","color_scheme","colorScheme")),fontFamily:parseNonEmptyString(pick2(raw,"font_family","fontFamily")),fontUrl:parseNonEmptyString(pick2(raw,"font_url","fontUrl")),fonts:parseFaceMap(pick2(raw,"fonts")),fontUrls:parseFaceMap(pick2(raw,"font_urls","fontUrls")),placeholder:parseNonEmptyString(pick2(raw,"chat_placeholder","placeholder","chatPlaceholder")),hidePoweredBy:parseBool(pick2(raw,"hide_powered_by","hidePoweredBy")),primaryColorDark:parseColor(pick2(raw,"primary_color_dark","primaryColorDark")),accentColorDark:parseColor(pick2(raw,"accent_color_dark","accentColorDark")),surfaceStyle:parseEnum(pick2(raw,"surface_style","surfaceStyle"),SURFACE_STYLES),radiusScale:parseEnum(pick2(raw,"radius_scale","radiusScale"),RADIUS_SCALES),logoUrlDark:parseNonEmptyString(pick2(raw,"logo_url_dark","logoUrlDark")),slots:parseThemeSlots(pick2(raw,"slots")),accessibilityMaxFontScale:parseMaxFontScale(pick2(raw,"accessibility_max_font_scale","accessibilityMaxFontScale")),lockedFields:parseLockedFields(pick2(raw,"locked_fields","lockedFields")),schemaVersion:parseSchemaVersion(pick2(raw,"schema_version","schemaVersion")),backgroundColor:parseColor(pick2(raw,"background_color","backgroundColor")),backgroundColorDark:parseColor(pick2(raw,"background_color_dark","backgroundColorDark")),textColor:parseColor(pick2(raw,"text_color","textColor")),textColorDark:parseColor(pick2(raw,"text_color_dark","textColorDark")),dangerColor:parseColor(pick2(raw,"danger_color","dangerColor")),dangerColorDark:parseColor(pick2(raw,"danger_color_dark","dangerColorDark")),fontSizeBase:parseClamped(pick2(raw,"font_size_base","fontSizeBase"),APPEARANCE_SIZE_RANGES.fontSizeBase),borderRadius:parseClamped(pick2(raw,"border_radius","borderRadius"),APPEARANCE_SIZE_RANGES.borderRadius),spacingUnit:parseClamped(pick2(raw,"spacing_unit","spacingUnit"),APPEARANCE_SIZE_RANGES.spacingUnit)}}function parseClamped(value,range){let n=parseNumber(typeof value=="string"?value.trim().replace(/px$/i,""):value);return n===null?null:Math.min(range.max,Math.max(range.min,n))}function parseBool(value){if(typeof value=="boolean")return value;if(typeof value=="string"){let lower=value.trim().toLowerCase();if(lower==="true")return true;if(lower==="false")return false}return null}function pick2(raw,...keys){for(let key of keys)if(Object.prototype.hasOwnProperty.call(raw,key)){let value=raw[key];if(value!==void 0)return value}}function parseNonEmptyString(value){if(typeof value!="string")return null;let trimmed=value.trim();return trimmed.length===0?null:trimmed}var FONT_FACE_KEYS=["regular","medium","bold","mono","monoMedium","monoBold"];function parseFaceMap(value){if(value===null||typeof value!="object"||Array.isArray(value))return null;let raw=value,out={};for(let key of FONT_FACE_KEYS){let entry=parseNonEmptyString(pick2(raw,key));entry!==null&&(out[key]=entry)}return Object.keys(out).length===0?null:/* @__PURE__ */Object.freeze(out)}var SURFACE_STYLES=["white","cream","subtle"],RADIUS_SCALES=["sharp","default","round"];function parseEnum(value,allowed){if(typeof value!="string")return null;let lower=value.trim().toLowerCase();return allowed.includes(lower)?lower:null}function parseBrightness(value){if(typeof value!="string")return null;let lower=value.trim().toLowerCase();return lower==="light"||lower==="dark"||lower==="auto"?lower:null}function parseNumber(value){let n=typeof value=="number"?value:typeof value=="string"?Number(value.trim()):Number.NaN;return Number.isFinite(n)&&(typeof value!="string"||value.trim().length>0)?n:null}var MAX_FONT_SCALE_FLOOR=1,MAX_FONT_SCALE_CEILING=3.1;function parseMaxFontScale(value){let n=parseNumber(value);return n===null?null:n<=0?0:Math.min(MAX_FONT_SCALE_CEILING,Math.max(MAX_FONT_SCALE_FLOOR,n))}function parseSchemaVersion(value){if(value==null)return null;let n=parseNumber(value);return n!==null&&Number.isInteger(n)&&n>=1?n:0}function toWireName(name){let trimmed=name.trim();return trimmed.startsWith(SLOT_LOCK_PREFIX)?trimmed:trimmed.replace(/([a-z0-9])([A-Z])/g,"$1_$2").toLowerCase()}function parseLockedFields(value){if(!Array.isArray(value))return null;let out=[];for(let entry of value){if(typeof entry!="string")continue;let name=toWireName(entry);isThemeLockName(name)&&!out.includes(name)&&out.push(name)}return out.length===0?null:/* @__PURE__ */Object.freeze(out)}function hardenHttpsUrl(url){if(url===null)return null;let trimmed=url.trim();return trimmed.length===0?null:/^https:\/\/\S+$/i.test(trimmed)?trimmed:null}function withServerBranding(base,b){if(b===null||isEmptyBranding(b))return base;let palette=(b.brightness==="light"||b.brightness==="dark")&&b.brightness!==base.brightness?b.brightness==="dark"?EVERFUR_DARK:EVERFUR_LIGHT:base,compiled=palette.brightness==="dark"?EVERFUR_DARK:EVERFUR_LIGHT,dark=palette.brightness==="dark",primaryIn=dark?b.primaryColorDark??darkVariantOf(b.primaryColor):b.primaryColor,accentIn=dark?b.accentColorDark??darkVariantOf(b.accentColor):b.accentColor,primaryRaw=primaryIn??palette.color.primary,accent=accentIn??palette.color.accent,keepsCompiled=primaryIn!==null&&isCompiledPrimary(b,primaryRaw,compiled,dark),primary=keepsCompiled?compiled.color.primary:primaryRaw,pr=primaryIn!==null&&!keepsCompiled?toRgba(primary):null,lift=c=>Math.round(c+(255-c)*.4),brandFamily=pr!==null?{brand:primary,bubbleUser:primary,brandInk:primary,text:{...palette.color.text,secondary:primary},brandSoft:`rgba(${pr.r}, ${pr.g}, ${pr.b}, 0.10)`,brandSofter:`rgba(${pr.r}, ${pr.g}, ${pr.b}, 0.15)`,brandBorder:`rgba(${pr.r}, ${pr.g}, ${pr.b}, 0.20)`,borderHairlineGreen:`rgba(${pr.r}, ${pr.g}, ${pr.b}, 0.28)`,brandBorderStrong:`rgba(${pr.r}, ${pr.g}, ${pr.b}, 0.55)`,composerBorder:`rgba(${pr.r}, ${pr.g}, ${pr.b}, 0.75)`,accentEdge:`rgb(${lift(pr.r)}, ${lift(pr.g)}, ${lift(pr.b)})`}:keepsCompiled?compiledBrandFamily(compiled,palette.color.text):{},background=(dark?b.backgroundColorDark:b.backgroundColor)??null,grounds=surfaceFamily(background),groundFamily={...palette.color,...grounds},bodyInk=(dark?b.textColorDark:b.textColor)??null,next={brightness:palette.brightness,highContrast:palette.highContrast,meta:{displayName:b.displayName??palette.meta.displayName,logoUrl:(dark?b.logoUrlDark??b.logoUrl:b.logoUrl)??palette.meta.logoUrl,placeholder:b.placeholder??palette.meta.placeholder,hidePoweredBy:b.hidePoweredBy??palette.meta.hidePoweredBy},color:{...palette.color,...brandFamily,...grounds,...dangerFamily((dark?b.dangerColorDark??darkVariantOf(b.dangerColor??null):b.dangerColor)??null),...bodyInk!==null?{text:{...brandFamily.text??palette.color.text,primary:bodyInk}}:{},...surfaceOf(b.surfaceStyle??null,groundFamily),primary:primary,accent:accent,onPrimary:palette.color.onPrimary,onAccent:palette.color.onAccent},space:spaceFor(b.spacingUnit??null,palette.space,compiled),radius:b.borderRadius!=null?radiiFor(b.borderRadius,compiled):radiusOf(b.radiusScale??null,palette.radius,compiled),type:{...palette.type,...mergeFaces(palette.type,b),size:typeSizesFor(b.fontSizeBase??null,palette.type.size,compiled),maxScale:b.accessibilityMaxFontScale??palette.type.maxScale},motion:palette.motion,slots:mergeThemeSlots(palette.slots,b.slots??null)};return deepFreeze(next)}var FACE_CHAIN={regular:["regular"],medium:["medium","regular"],bold:["bold","medium","regular"],mono:["mono"],monoMedium:["monoMedium","mono"],monoBold:["monoBold","monoMedium","mono"]},FACE_GROUPS=[["regular","medium","bold"],["mono","monoMedium","monoBold"]];function isMonoFace(face2){return face2==="mono"||face2==="monoMedium"||face2==="monoBold"}function mergeFaces(base,b){let fonts=b.fonts??{},urls=b.fontUrls??{},families={...base.families},namedFaces={...base.namedFaces},fontUrls={...base.fontUrls};for(let face2 of FONT_FACE_KEYS){let named=FACE_CHAIN[face2].map(key=>fonts[key]).find(name=>name!==void 0),legacy=isMonoFace(face2)?null:b.fontFamily;named!==void 0?(families[face2]=named,namedFaces[face2]=true):legacy!==null&&(families[face2]=legacy,namedFaces[face2]=false);let url=urls[face2]??(face2==="regular"?b.fontUrl:null)??null;url!==null?fontUrls[face2]=url:named!==void 0&&delete fontUrls[face2]}for(let group of FACE_GROUPS)for(let face2 of group)namedFaces[face2]&&group.some(other=>other!==face2&&families[other]===families[face2])&&(namedFaces[face2]=false);return{family:families.regular,mono:families.mono,fontUrl:fontUrls.regular??null,families:families,namedFaces:namedFaces,fontUrls:fontUrls}}function darkVariantOf(color){return color===null?null:deriveDarkVariant(color)}function surfaceOf(style,family){if(style===null)return{};let c=family;return{chatGround:style==="white"?c.surface:style==="subtle"?c.surfaceSubtle:c.surfaceCream}}function sameColor(a,b){return a==null?false:parseColor(a)===parseColor(b)}function isCompiledPrimary(b,primary,compiled,dark){return sameColor(primary,compiled.color.primary)?true:dark&&(b.primaryColorDark??null)===null&&sameColor(b.primaryColor,EVERFUR_LIGHT.color.primary)}function compiledBrandFamily(compiled,text2){let c=compiled.color;return{text:{...text2,secondary:c.text.secondary},brand:c.brand,bubbleUser:c.bubbleUser,brandInk:c.brandInk,brandSoft:c.brandSoft,brandSofter:c.brandSofter,brandBorder:c.brandBorder,borderHairlineGreen:c.borderHairlineGreen,brandBorderStrong:c.brandBorderStrong,composerBorder:c.composerBorder,accentEdge:c.accentEdge}}var RADIUS_FACTOR={sharp:.5,default:1,round:1.5};function radiusOf(scale,base,compiled){if(scale===null)return base;let f=RADIUS_FACTOR[scale],r=compiled.radius,s=n=>Math.round(n*f);return{tile:s(r.tile),xs:s(r.xs),sm:s(r.sm),md:s(r.md),lg:s(r.lg),xl:s(r.xl),pill:r.pill}}var DEFAULT_DISPLAY_NAME="Everfur",TEXT_SCALE_FLOOR=.5;function resolveTheme(input){return finalize(mergeLayers(input),input)}function themeAdjustments(input){let merged=mergeLayers(input);return diffThemeAdjustments(merged,finalize(merged,{...input,highContrast:false}))}function mergeLayers(input){let candidate=input?.branding??null,server=isKnownBrandingSchema(candidate)?candidate:null,client=withoutFields(input?.clientOverride??null,lockedFieldsOf(server)),device=input?.colorScheme==="dark"?"dark":"light",chosen=client?.brightness??server?.brightness??"light",withServer=withServerBranding((chosen==="auto"?device:chosen)==="dark"?EVERFUR_DARK:EVERFUR_LIGHT,withoutBrightness(server));return withServerBranding(withServer,withoutBrightness(client))}function previewTheme(input,hints,options){return resolveTheme({...options,branding:parseClientBranding(hints),clientOverride:parseClientBranding(input)})}function wireNameOf(key){return key==="placeholder"?"chat_placeholder":toWireName(key)}var LOCK_ALIASES={brightness:["color_scheme"],fontUrl:["font_family"],fonts:["font_family"],fontUrls:["font_url","font_family","fonts"],primaryColorDark:["primary_color"],accentColorDark:["accent_color"],logoUrlDark:["logo_url"],backgroundColorDark:["background_color"],textColorDark:["text_color"],dangerColorDark:["danger_color"],borderRadius:["radius_scale"],radiusScale:["border_radius"]};function isLocked(key,locked){return locked.has(wireNameOf(key))?true:(LOCK_ALIASES[key]??[]).some(name=>locked.has(name))}function withoutFields(b,locked){if(b===null)return null;let changed=false,out={...b};for(let key of Object.keys(b))(b[key]??null)!==null&&(isLocked(key,locked)||key==="lockedFields")&&(out[key]=null,changed=true);let slots=out.slots??null;if(slots!==null){let kept={},dropped=false;for(let name of THEME_SLOT_NAMES){let slot=slots[name];slot!==void 0&&(locked.has(`${SLOT_LOCK_PREFIX}${name}`)?dropped=true:kept[name]=slot)}dropped&&(out.slots=Object.keys(kept).length===0?null:/* @__PURE__ */Object.freeze(kept),changed=true)}if(!changed)return b;let stripped=/* @__PURE__ */Object.freeze(out);return isEmptyBranding(stripped)?null:stripped}function withoutBrightness(b){return b===null||b.brightness===null?b:/* @__PURE__ */Object.freeze({...b,brightness:null})}function scaledSizes(size,scale){if(scale===1)return size;let out={};for(let[key,value]of Object.entries(size))out[key]=Math.round(value*scale*10)/10;return out}function effectiveScale(textScale){return textScale===void 0||!Number.isFinite(textScale)?1:Math.max(TEXT_SCALE_FLOOR,textScale)}var SCALE_TIERS=["content","heading","control","compact","badge"];function tierCaps(maxScale){if(!(maxScale>0))return TEXT_SCALE_TIER_CAPS;let out={};for(let tier of SCALE_TIERS){let cap=TEXT_SCALE_TIER_CAPS[tier];out[tier]=cap===0?0:Math.min(cap,maxScale)}return out}function capped(scale,cap){return cap>0?Math.min(scale,cap):scale}function sizesByTier(size,scale,caps,scaleSizes){let out={};for(let tier of SCALE_TIERS)out[tier]=scaleSizes?scaledSizes(size,capped(scale,caps[tier])):size;return out}function slotGrounds(c){return{composerInput:[c.composerFill],sendButton:[c.composerFill],userBubble:[c.bubbleUser],assistantBubble:[c.chatGround,c.surfaceCream],vetBubble:[c.bubbleVet],recordCard:[c.surface],vetVisitButton:[c.primary],primaryButton:[c.brand],link:linkGrounds(c)}}function slotSurrounds(c){return{userBubble:[c.chatGround],assistantBubble:[c.chatGround],vetBubble:[c.chatGround],sendButton:[c.composerFill],vetVisitButton:[c.surfaceCream,c.surface,c.chatGround],primaryButton:[c.surface,c.surfaceCream]}}function registration(isFontRegistered,family){try{let answer=isFontRegistered(family);return answer===!0||answer===!1?answer:null}catch{return null}}function platformFaces(type,input){let isFontRegistered=input?.isFontRegistered,platformMono=input?.platformMonoFamily?.trim()||null;if(isFontRegistered===void 0&&platformMono===null)return{family:type.family,mono:type.mono,families:type.families,namedFaces:type.namedFaces};let families={...type.families},namedFaces={...type.namedFaces};for(let key of FONT_FACE_KEYS)!(families[key]===SYSTEM_FONT_FAMILY||families[key]===SYSTEM_MONO_FAMILY)&&isFontRegistered!==void 0&&registration(isFontRegistered,families[key])===false&&(families[key]=isMonoFace(key)?SYSTEM_MONO_FAMILY:SYSTEM_FONT_FAMILY,namedFaces[key]=false),platformMono!==null&&isMonoFace(key)&&families[key]===SYSTEM_MONO_FAMILY&&(families[key]=platformMono);return{family:families.regular,mono:families.mono,families:families,namedFaces:namedFaces}}function finalize(theme,input){let displayName=theme.meta.displayName.trim().length===0?DEFAULT_DISPLAY_NAME:theme.meta.displayName,logoUrl=hardenHttpsUrl(theme.meta.logoUrl),fontUrls={};for(let face2 of FONT_FACE_KEYS){let url=theme.type.fontUrls[face2];url!==void 0&&(fontUrls[face2]=hardenHttpsUrl(url))}let fontUrl=fontUrls.regular??null,motion=input?.reducedMotion===true?{duration:{instant:0,fast:0,normal:0,slow:0},spring:{gentle:{damping:100,stiffness:1e3}},easing:theme.motion.easing,reducedMotion:true}:theme.motion,maxScale=Number.isFinite(theme.type.maxScale)?theme.type.maxScale:DEFAULT_MAX_FONT_SCALE,scale=effectiveScale(input?.textScale),scaleCaps=tierCaps(maxScale),tierSizes=sizesByTier(theme.type.size,scale,scaleCaps,input?.scaleTypeSizes===true),color=guardInks(theme),finalized={brightness:theme.brightness,highContrast:false,meta:{displayName:displayName,logoUrl:logoUrl,placeholder:theme.meta.placeholder,hidePoweredBy:theme.meta.hidePoweredBy},color:color,space:theme.space,radius:theme.radius,type:{...theme.type,...platformFaces(theme.type,input),fontUrl:fontUrl,fontUrls:fontUrls,size:tierSizes.content,tierSizes:tierSizes,scale:scale,maxScale:maxScale,scaleCaps:scaleCaps},motion:motion,slots:guardSlotContrast(theme.slots,slotGrounds(color),slotSurrounds(color))};return input?.highContrast===true?deriveHighContrast(deepFreeze(finalized)):deepFreeze(finalized)}var ENTITLEMENTS_PATH="/widget/v1/entitlements",HTTP_NOT_MODIFIED=304,NOT_MODIFIED=/* @__PURE__ */Object.freeze({kind:"notModified"});async function fetchEntitlements(auth,args={},funnel=createRequestFunnel({auth:auth})){let result=await funnel.send("entitlements.fetch",buildRequest(args));return result.ok?parseUpdated(result.value):result.error.httpStatus===HTTP_NOT_MODIFIED?NOT_MODIFIED:{kind:"failed",error:result.error}}var REGION_MAX=64;function buildRequest(args){let headers={};return isFiniteNumber(args.cachedRevision)&&(headers["if-none-match"]=`"${args.cachedRevision}"`),args.region&&args.region.length<=REGION_MAX?{method:"GET",path:ENTITLEMENTS_PATH,headers:headers,query:{region:args.region}}:{method:"GET",path:ENTITLEMENTS_PATH,headers:headers}}function parseUpdated(body){if(body===null||typeof body!="object"||!isFiniteNumber(body.revision))return malformed();let region=typeof body.region=="string"?body.region:"",ttlSeconds=isFiniteNumber(body.ttl_seconds)?body.ttl_seconds:0;/* @__PURE__ */
110
+ return Object.freeze({kind:"updated",revision:body.revision,region:region,ttlSeconds:ttlSeconds,decisions:mapCapabilities(body.capabilities),branding:parseBranding(body),livemode:body.livemode!==false})}function parseBranding(body){let direct=parseClientBranding(body.branding);if(direct!==null)return direct;let hints=body.render_hints;if(hints!==null&&typeof hints=="object"){let nested=parseClientBranding(hints.branding);return nested!==null?nested:parseClientBranding(hints)}return null}function mapCapabilities(capabilities){if(capabilities===null||typeof capabilities!="object")/* @__PURE__ */return Object.freeze([]);let out=[];for(let[resource,value]of Object.entries(capabilities))isEnabled(value)&&out.push(/* @__PURE__ */Object.freeze({resource:resource,granted:true}));/* @__PURE__ */
111
+ return Object.freeze(out)}function isEnabled(value){return typeof value=="object"&&value!==null&&value.enabled===true}function malformed(){return{kind:"failed",error:makeEverfurError("internalError",{retryable:true,wireMessage:"malformed entitlements response"})}}function isFiniteNumber(value){return typeof value=="number"&&Number.isFinite(value)}var FACE_WEIGHT=/* @__PURE__ */Object.freeze({regular:"regular",medium:"medium",bold:"bold",mono:"regular",monoMedium:"medium",monoBold:"bold"});function face(theme,weight){let type=theme.type,fontFamily=type.families[weight];return weight==="mono"||type.namedFaces[weight]?{fontFamily:fontFamily}:{fontFamily:fontFamily,fontWeight:type.weight[FACE_WEIGHT[weight]]}}var SPECIES_ALIASES=/* @__PURE__ */Object.freeze({dog:"dog",canine:"dog",k9:"dog",puppy:"dog",cat:"cat",feline:"cat",kitten:"cat"});function canonicalPetSpecies(raw){if(typeof raw!="string")return null;let key=raw.trim().toLowerCase();return Object.prototype.hasOwnProperty.call(SPECIES_ALIASES,key)?SPECIES_ALIASES[key]:null}var LIST_MAX=50,REF_MAX=128,NAME_MAX=120,SHORT_MAX=120,NOTES_MAX=2e3,FOOD_MAX=120,MICROCHIP_MAX=80,SEXES=/* @__PURE__ */new Set(["male","female","unknown"]),PRECISIONS=/* @__PURE__ */new Set(["day","month","year"]),ACTIVITY=/* @__PURE__ */new Set(["low","medium","high","athletic"]),INDOOR_OUTDOOR=/* @__PURE__ */new Set(["indoor","outdoor","both"]),SEVERITIES=/* @__PURE__ */new Set(["mild","moderate","severe"]),ISO_DATE=/^(\d{4})-(\d{2})-(\d{2})$/,SCALAR_WIRE=[["sex","sex"],["spayedNeutered","spayed_neutered"],["birthDate","birth_date"],["birthDatePrecision","birth_date_precision"],["activityLevel","activity_level"],["indoorOutdoor","indoor_outdoor"],["foodBrand","food_brand"],["foodType","food_type"],["microchipId","microchip_id"]],LIST_WIRE=[["allergies","allergies"],["medications","medications"],["supplements","supplements"],["conditions","conditions"]];/* @__PURE__ */Object.freeze([...SCALAR_WIRE,...LIST_WIRE].map(([key])=>key));function isRealDate(value){let match=ISO_DATE.exec(value);if(match===null)return false;let[year,month,day]=[Number(match[1]),Number(match[2]),Number(match[3])],date2=new Date(Date.UTC(year,month-1,day));return date2.getUTCFullYear()===year&&date2.getUTCMonth()===month-1&&date2.getUTCDate()===day}var oneOf=allowed=>(field,value)=>typeof value=="string"&&allowed.has(value)?null:`${field} must be one of ${[...allowed].join(", ")}`,boolean=(field,value)=>typeof value=="boolean"?null:`${field} must be true or false`,date=(field,value)=>typeof value=="string"&&isRealDate(value)?null:`${field} must be a real date written YYYY-MM-DD`,text=(max,opts={})=>(field,value)=>{if(typeof value!="string")return`${field} must be a string`;if(hasLoneSurrogate(value))return`${field} contains an unpaired surrogate and cannot be encoded`;let measured=opts.trimmed?value.trim():value;if(opts.required&&measured.length===0)return`${field} is required and must not be blank`;let length=serverLength(measured);return length<=max?null:`${field} is ${length} characters; the server accepts at most ${max}`},SCALAR_CHECKS={sex:oneOf(SEXES),spayedNeutered:boolean,birthDate:date,birthDatePrecision:oneOf(PRECISIONS),activityLevel:oneOf(ACTIVITY),indoorOutdoor:oneOf(INDOOR_OUTDOOR),foodBrand:text(FOOD_MAX),foodType:text(FOOD_MAX),microchipId:text(MICROCHIP_MAX)},REF_FIELD=["ref","ref",false,text(REF_MAX,{required:true,trimmed:true})],NOTES_FIELD=["notes","notes",false,text(NOTES_MAX,{trimmed:true})],MEDICATION_FIELDS=[REF_FIELD,["name","name",true,text(NAME_MAX,{required:true,trimmed:true})],["dose","dose",false,text(SHORT_MAX,{trimmed:true})],["frequency","frequency",false,text(SHORT_MAX,{trimmed:true})],["startDate","start_date",false,date],["endDate","end_date",false,date],NOTES_FIELD],ITEM_FIELDS={allergies:[REF_FIELD,["allergen","allergen",true,text(NAME_MAX,{required:true,trimmed:true})],["severity","severity",false,oneOf(SEVERITIES)],NOTES_FIELD],medications:MEDICATION_FIELDS,supplements:MEDICATION_FIELDS,conditions:[REF_FIELD,["conditionName","condition_name",true,text(NAME_MAX,{required:true,trimmed:true})],["diagnosedDate","diagnosed_date",false,date],NOTES_FIELD]};function itemToWire(list,index,raw){let at=`${list}[${index}]`;if(typeof raw!="object"||raw===null||Array.isArray(raw))return{error:`${at} must be an object`};let source=raw,item={};for(let[key,wire,isRequired,check]of ITEM_FIELDS[list]){let value=source[key];if(value==null){if(isRequired)return{error:`${at}.${key} is required`};value===null&&(item[wire]=null);continue}let bad=check(`${at}.${key}`,value);if(bad!==null)return{error:bad};item[wire]=value}let start=item.start_date,end=item.end_date;return typeof start=="string"&&typeof end=="string"&&end<start?{error:`${at}.endDate must not be before startDate`}:{item:item}}function listToWire(list,raw){if(!Array.isArray(raw))return{error:`${list} must be an array (send [] to clear it)`};if(raw.length>LIST_MAX)return{error:`${list} has ${raw.length} items; the server accepts at most ${LIST_MAX}`};let items=[],refs=/* @__PURE__ */new Set;for(let index=0;index<raw.length;index+=1){let mapped=itemToWire(list,index,raw[index]);if("error"in mapped)return mapped;let ref=mapped.item.ref;if(typeof ref=="string"){let key=ref.trim();if(refs.has(key))return{error:`${list}: ref ${JSON.stringify(key)} is used twice; a ref names one item`};refs.add(key)}items.push(mapped.item)}return{items:items}}function petHealthToWire(input,species){let source=input,body={};for(let[key,wire]of SCALAR_WIRE){let value=source[key];if(value!==void 0){if(value!==null){let bad=SCALAR_CHECKS[key](key,value);if(bad!==null)return{error:bad}}body[wire]=value}}let dateSent=source.birthDate!==void 0,precisionSent=source.birthDatePrecision!==void 0;if(dateSent!==precisionSent||dateSent&&source.birthDate===null!=(source.birthDatePrecision===null))return{error:"birthDate and birthDatePrecision must be sent together, both set or both null"};for(let[key,wire]of LIST_WIRE){let value=source[key];if(value===void 0)continue;let mapped=listToWire(key,value);if("error"in mapped)return mapped;body[wire]=mapped.items}return Object.keys(body).length>0&&species!==void 0&&canonicalPetSpecies(species)===null?{error:"health fields need a pet Everfur reads as a dog or a cat (dog, canine, k9, puppy, cat, feline, kitten)"}:{body:body}}var str=value=>typeof value=="string"?value:null,pick3=(allowed,value)=>typeof value=="string"&&allowed.has(value)?value:null,bool=value=>typeof value=="boolean"?value:null;function itemsFromWire(raw,map){return Array.isArray(raw)?/* @__PURE__ */Object.freeze(raw.flatMap(row=>{if(typeof row!="object"||row===null||Array.isArray(row))return[];let item=map(row);return item===null?[]:[item]})):/* @__PURE__ */Object.freeze([])}function medicationFromWire(o){let name=str(o.name);return name===null||name.length===0?null:/* @__PURE__ */Object.freeze({ref:str(o.ref),name:name,dose:str(o.dose),frequency:str(o.frequency),startDate:str(o.start_date),endDate:str(o.end_date),notes:str(o.notes)})}function petHealthFromWire(o){let version=o.profile_version;/* @__PURE__ */
112
+ return Object.freeze({profileVersion:typeof version=="number"&&Number.isInteger(version)&&version>=0?version:0,sex:pick3(SEXES,o.sex),spayedNeutered:bool(o.spayed_neutered),birthDate:str(o.birth_date),birthDatePrecision:pick3(PRECISIONS,o.birth_date_precision),activityLevel:pick3(ACTIVITY,o.activity_level),indoorOutdoor:pick3(INDOOR_OUTDOOR,o.indoor_outdoor),foodBrand:str(o.food_brand),foodType:str(o.food_type),microchipId:str(o.microchip_id),allergies:itemsFromWire(o.allergies,row=>{let allergen=str(row.allergen);return allergen===null||allergen.length===0?null:/* @__PURE__ */Object.freeze({ref:str(row.ref),allergen:allergen,severity:pick3(SEVERITIES,row.severity),notes:str(row.notes)})}),medications:itemsFromWire(o.medications,medicationFromWire),supplements:itemsFromWire(o.supplements,medicationFromWire),conditions:itemsFromWire(o.conditions,row=>{let conditionName=str(row.condition_name);return conditionName===null||conditionName.length===0?null:/* @__PURE__ */Object.freeze({ref:str(row.ref),conditionName:conditionName,diagnosedDate:str(row.diagnosed_date),notes:str(row.notes)})})})}var PET_NAME_MAX=100,PET_SPECIES_MAX=50,PET_BREED_MAX=100,PET_AGE_YEARS_MAX=50,PET_WEIGHT_KG_MAX=500,PET_REF_MAX=128,ERASE_USER_DATA_TIMEOUT_MS=6e4;function invalid(wireMessage){return makeEverfurError("validationFailed",{retryable:false,wireMessage:wireMessage})}function checkString(field,value,max){if(typeof value!="string")return invalid(`${field} must be a string`);let length=serverLength(value);return length<=max?null:invalid(`${field} is ${length} characters; the server accepts at most ${max}`)}function outOfRange(field,value,max){return typeof value=="number"&&Number.isFinite(value)&&value>=0&&value<=max?null:invalid(`${field} must be a finite number between 0 and ${max}`)}function validate(petRef2,profile){if(typeof petRef2!="string")return invalid("pet_ref must be a string");if(petRef2.trim().length===0)return invalid("pet_ref must not be blank");if(hasLoneSurrogate(petRef2))return invalid("pet_ref contains an unpaired surrogate and cannot be encoded");if(profile!=null&&typeof profile!="object")return invalid("profile must be an object");let checks=[checkString("pet_ref",petRef2,PET_REF_MAX)];return profile?.name!==void 0&&checks.push(checkString("name",profile.name,PET_NAME_MAX)),profile?.species!==void 0&&checks.push(checkString("species",profile.species,PET_SPECIES_MAX)),profile?.breed!==void 0&&checks.push(checkString("breed",profile.breed,PET_BREED_MAX)),profile?.ageYears!==void 0&&checks.push(outOfRange("age_years",profile.ageYears,PET_AGE_YEARS_MAX)),profile?.weightKg!==void 0&&checks.push(outOfRange("weight_kg",profile.weightKg,PET_WEIGHT_KG_MAX)),checks.find(c=>c!==null)??null}function healthToWire(source,species){let health=petHealthToWire(source,species);return"error"in health?{error:invalid(health.error)}:health}function patchToWire(patch){if(typeof patch!="object"||patch===null)return{error:invalid("patch must be an object")};let p=patch,fields=[["name","name",v=>checkString("name",v,PET_NAME_MAX)],["species","species",v=>checkString("species",v,PET_SPECIES_MAX)],["breed","breed",v=>checkString("breed",v,PET_BREED_MAX)],["ageYears","age_years",v=>outOfRange("age_years",v,PET_AGE_YEARS_MAX)],["weightKg","weight_kg",v=>outOfRange("weight_kg",v,PET_WEIGHT_KG_MAX)]],body={};for(let[key,wire,check]of fields){let value=p[key];if(value!==void 0){if(value!==null){let bad=check(value);if(bad!==null)return{error:bad}}body[wire]=value}}let health=healthToWire(p,p.species);return"error"in health?health:(Object.assign(body,health.body),Object.keys(body).length===0?{error:invalid("patch must change at least one field")}:{body:body})}function toWire(profile){if(profile==null)return{body:{}};let health=healthToWire(profile,profile.species);return"error"in health?health:{body:{...profile.name!==void 0?{name:profile.name}:{},...profile.species!==void 0?{species:profile.species}:{},...profile.breed!==void 0?{breed:profile.breed}:{},...profile.ageYears!==void 0?{age_years:profile.ageYears}:{},...profile.weightKg!==void 0?{weight_kg:profile.weightKg}:{},...health.body}}}var str2=v=>typeof v=="string"?v:null,num=v=>typeof v=="number"&&Number.isFinite(v)?v:null;function fromWire2(raw,petRef2){let o=typeof raw=="object"&&raw!==null?raw:{};/* @__PURE__ */
113
+ return Object.freeze({petRef:str2(o.pet_ref)??petRef2,name:str2(o.name),species:str2(o.species),breed:str2(o.breed),ageYears:num(o.age_years),weightKg:num(o.weight_kg)})}function widgetPetFromWire(raw){if(typeof raw!="object"||raw===null)return null;let o=raw,petRef2=str2(o.pet_ref);return petRef2===null||petRef2.length===0?null:/* @__PURE__ */Object.freeze({petId:str2(o.pet_id),petRef:petRef2,name:str2(o.name),species:str2(o.species),breed:str2(o.breed),ageYears:num(o.age_years),weightKg:num(o.weight_kg),updatedAt:str2(o.updated_at)})}function widgetPetProfileFromWire(raw){let pet=widgetPetFromWire(raw);return pet===null?null:/* @__PURE__ */Object.freeze({...pet,...petHealthFromWire(raw)})}function petListFromWire(raw){let rows=Array.isArray(raw)?raw:typeof raw=="object"&&raw!==null&&Array.isArray(raw.pets)?raw.pets:[];/* @__PURE__ */
114
+ return Object.freeze(rows.flatMap(row=>{let pet=widgetPetFromWire(row);return pet===null?[]:[pet]}))}function createPetsRepository(auth){return createPetsRepositoryOver(createRequestFunnel({auth:auth}),createRequestFunnel({auth:auth,unaryTimeoutMs:ERASE_USER_DATA_TIMEOUT_MS}))}function createPetsRepositoryOver(funnel,eraseFunnel=funnel){let withSignal2=(req,signal)=>signal?{...req,signal:signal}:req,petPath2=petRef2=>validate(petRef2,void 0)??`/widget/v1/pets/${encodeURIComponent(petRef2)}`;return{async list(opts){let res=await funnel.send("pets.list",withSignal2({method:"GET",path:"/widget/v1/pets"},opts?.signal));return res.ok?ok(petListFromWire(res.value)):err(res.error)},async registerPet(petRef2,profile,opts){let invalid3=validate(petRef2,profile);if(invalid3!==null)return err(invalid3);let wire=toWire(profile);if("error"in wire)return err(wire.error);let base={method:"POST",path:`/widget/v1/pets/${encodeURIComponent(petRef2)}`,body:wire.body},res=await funnel.send("pets.registerPet",opts?.signal?{...base,signal:opts.signal}:base);return res.ok?ok(fromWire2(res.value,petRef2)):err(res.error)},async updatePet(petRef2,patch,opts){let path=petPath2(petRef2);if(typeof path!="string")return err(path);let wire=patchToWire(patch);if("error"in wire)return err(wire.error);let res=await funnel.send("pets.updatePet",withSignal2({method:"PATCH",path:path,body:wire.body},opts?.signal));return res.ok?ok(fromWire2(res.value,petRef2)):err(res.error)},async getPetProfile(petRef2,opts){let path=petPath2(petRef2);if(typeof path!="string")return err(path);let res=await funnel.send("pets.getPetProfile",withSignal2({method:"GET",path:`${path}/profile`},opts?.signal));if(!res.ok)return err(res.error);let profile=widgetPetProfileFromWire(res.value);return profile===null?err(makeEverfurError("internalError",{retryable:false,httpStatus:502,wireMessage:"the pet profile response carried no pet_ref"})):ok(profile)},async deletePet(petRef2,opts){let path=petPath2(petRef2);if(typeof path!="string")return err(path);let res=await funnel.send("pets.deletePet",withSignal2({method:"DELETE",path:path},opts?.signal));return res.ok?ok(void 0):err(res.error)},async eraseUserData(opts){let res=await eraseFunnel.send("pets.eraseUserData",withSignal2({method:"DELETE",path:"/widget/v1/me"},opts?.signal),{maxAttempts:1});return res.ok?ok(void 0):err(res.error)}}}var CHECKIN_ANSWERS=/* @__PURE__ */Object.freeze(["better","same","worse"]),CASE_ID_PATTERN=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function invalid2(wireMessage){return err(makeEverfurError("validationFailed",{retryable:false,wireMessage:wireMessage}))}function malformed2(){return err(makeEverfurError("internalError",{retryable:false}))}function petPath(petRef2){return typeof petRef2!="string"||petRef2.trim().length===0?makeEverfurError("validationFailed",{retryable:false,wireMessage:"pet_ref must not be blank"}):hasLoneSurrogate(petRef2)?makeEverfurError("validationFailed",{retryable:false,wireMessage:"pet_ref contains an unpaired surrogate and cannot be encoded"}):`/widget/v1/pets/${encodeURIComponent(petRef2)}/cases`}var str3=v=>typeof v=="string"?v:null,count=v=>typeof v=="number"&&Number.isFinite(v)?v:null;function caseFromWire(raw){if(typeof raw!="object"||raw===null)return null;let o=raw,caseId=str3(o.case_id),status=str3(o.status);if(caseId===null||status===null)return null;let last=str3(o.last_response);/* @__PURE__ */
115
+ return Object.freeze({caseId:caseId,status:status,bodyLocation:str3(o.body_location),lastResponse:last!==null&&CHECKIN_ANSWERS.includes(last)?last:null,checkInDueAt:str3(o.check_in_due_at),openedAt:str3(o.opened_at),resolvedAt:str3(o.resolved_at),resolutionText:str3(o.resolution_text),checkinAskCount:count(o.checkin_ask_count),checkinAnswerCount:count(o.checkin_answer_count)})}function createCasesRepository(auth){return createCasesRepositoryOver(createRequestFunnel({auth:auth}))}function createCasesRepositoryOver(funnel){return{async list(petRef2,opts){let path=petPath(petRef2);if(typeof path!="string")return err(path);let res=await funnel.send("cases.list",{method:"GET",path:path,...opts?.signal?{signal:opts.signal}:{}});if(!res.ok)return err(res.error);let rows=typeof res.value=="object"&&res.value!==null?res.value.cases:null;if(!Array.isArray(rows))return malformed2();let cases=rows.map(caseFromWire);return cases.every(c=>c!==null)?ok(/* @__PURE__ */Object.freeze(cases)):malformed2()},async checkin(petRef2,caseId,answer,opts){let path=petPath(petRef2);if(typeof path!="string")return err(path);if(typeof caseId!="string"||!CASE_ID_PATTERN.test(caseId))return invalid2("case_id must be a UUID");if(!CHECKIN_ANSWERS.includes(answer))return invalid2("response must be one of better, same, worse");let res=await funnel.send("cases.checkin",{method:"POST",path:`${path}/${caseId}/checkin`,body:{response:answer},...opts?.signal?{signal:opts.signal}:{}});if(!res.ok)return err(res.error);let o=typeof res.value=="object"&&res.value!==null?res.value:{},watchCase=caseFromWire(o.case);return watchCase===null?malformed2():ok(/* @__PURE__ */Object.freeze({case:watchCase,ctaDeepLink:str3(o.cta_deep_link)}))}}}export{APPEARANCE_PRESETS,APPEARANCE_PRESET_NAMES,APPEARANCE_SIZE_RANGES,AUTO_RETRYABLE_CODES,BACKOFF_BASE_MS,BACKOFF_CAP_MS,CHECKIN_ANSWERS,CONTRACT_ERROR_ROWS,DARK_VARIANT_GROUND,DARK_VARIANT_LIGHTNESS_CEILING,DARK_VARIANT_LIGHTNESS_FLOOR,DARK_VARIANT_LIGHTNESS_STEP,DARK_VARIANT_TARGET_RATIO,DEFAULT_CONTRACT_VERSION,DEFAULT_MAX_FONT_SCALE,DOC_SITE_ORIGIN,EASING_CURVES,EMPTY_FRAME_ARRAYS,ENTITLEMENTS_PATH,ENV_API_BASE_URL,EVERFUR_DARK,EVERFUR_ERROR_CATEGORIES,EVERFUR_ERROR_CODES,EVERFUR_LIGHT,EverfurConfigError,EverfurThrownError,HIGH_CONTRAST_TARGET_RATIO,LOCKABLE_THEME_FIELDS,MAX_FONT_SCALE_CEILING,MAX_RETRY_ATTEMPTS,PET_AGE_YEARS_MAX,PET_BREED_MAX,PET_NAME_MAX,PET_SPECIES_MAX,PET_WEIGHT_KG_MAX,RETRYABLE_CONTRACT_CODES,SDK_PLATFORM,SDK_VERSION,SLOT_LOCK_PREFIX,SLOT_MIN_BORDER_CONTRAST,SLOT_MIN_CONTRAST,SYSTEM_FONT_FAMILY,SYSTEM_MONO_FAMILY,TEXT_SCALE_FLOOR,TEXT_SCALE_TIER_CAPS,THEME_SCHEMA_VERSIONS,THEME_SLOT_KEYS,THEME_SLOT_NAMES,acceptedFrame,analysisCompleteFrame,analysisStartedFrame,assertNever,authHeaders,authedSend,backoffDelayMs,bufferedTextByteSource,buildBaseHeaders,canRecreateOnNotFound,categoryFor,checkPublishableKey,contractDocUrl,contractErrorFor,contrastRatio,conversationId,createCasesRepository,createHttpTransport,createIdentityProvider,createPetsRepository,createRequestFunnel,cssCubicBezier,decideCapability,deepFreeze,deltaFrame,deniedDecisionsFor,deriveDarkVariant,deriveHighContrast,doneFrame,err,errorFrame,errorFromResponse,eventSourceByteSource,eventSourceRequestId,expandAppearance,face,fetchByteSource,fetchEntitlements,fromHttpStatus,fromWire,getGlobalFetch,guardSlotContrast,hardenHttpsUrl,heartbeatFrame,isAutoRetryable,isEmptyBranding,isErr,isKnownBrandingSchema,isOk,isRetryableCode,lockedFieldsOf,makeEverfurError,mergeThemeSlots,networkError,newSessionId,ok,parseClientBranding,parseColor,parsePx,parseSse,parseThemeSlots,petRef,previewTheme,publishedDocUrl,readableOn,requestIdOf,requestJson,requestRaw,requires,resolveApiBaseUrl,resolveClientConfig,resolveEntitlements,resolveTheme,shouldRetry,themeAdjustments,tryResolveApiBaseUrl,tryResolveClientConfig,unknownFrame,unsafeClientId,unsafeConversationId,unsafeDocumentId,unsafeJobId,unsafePetRef,unsafeRecordsRequestId,unsafeResponseId,unsafeUserRef,unwrap,userFacingError,userRef,widgetPetFromWire,withAuthHeaders,withServerBranding};