@everfur/sdk 0.7.1 → 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 +311 -0
  2. package/README.md +24 -16
  3. package/dist/{Chat-CFi5cNUF.d.ts → Chat-Cv9EYMYA.d.ts} +3 -3
  4. package/dist/{Chat-DQOsAumH.d.cts → Chat-s2vcPbw3.d.cts} +3 -3
  5. package/dist/{DepthViews-uilL1NJZ.d.ts → DepthViews-CVxUHOJ-.d.ts} +1 -1
  6. package/dist/{DepthViews-C409ubw-.d.cts → DepthViews-Cz7mSW7p.d.cts} +1 -1
  7. package/dist/{DepthViews-es8mIK0w.d.ts → DepthViews-DNRY0Ugm.d.ts} +1 -1
  8. package/dist/{DepthViews-D81c95Ra.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/{IntakeMedia-BcjjUizr.d.ts → IntakeMedia-BH0fYDT2.d.cts} +19 -2
  17. package/dist/{IntakeMedia-CL_S2tZE.d.cts → IntakeMedia-Bavl7E4Z.d.ts} +19 -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-DNaSbmA3.d.ts → attachments-BaslXMdS.d.ts} +3 -3
  24. package/dist/{attachments-DI710no4.d.cts → attachments-DbFwz4iq.d.cts} +7 -7
  25. package/dist/{attachments-B2GjBgvF.d.cts → attachments-y3EcOX_w.d.cts} +3 -3
  26. package/dist/{attachments-SF88N654.d.ts → attachments-y_aO4hlk.d.ts} +7 -7
  27. package/dist/{bookingCopy-xlXxORCA.d.cts → bookingCopy-4i1R7klo.d.cts} +15 -7
  28. package/dist/{bookingCopy-D2N3RhsV.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-B-md8h1S.d.cts → casesRepository-B6Z0XBIb.d.cts} +2 -2
  34. package/dist/{casesRepository-CC6951TK.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-BM0sv5jx.d.ts → config-Cvo47voG.d.ts} +3 -3
  44. package/dist/{config-Daa1plhQ.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-DQHtwcHN.d.cts → context-BZOtJbBO.d.cts} +9 -9
  50. package/dist/{context-CDV2pwGI.d.ts → context-cZ7NZ0sG.d.ts} +9 -9
  51. package/dist/{copy-Cl1l-qmY.d.ts → copy-CZBUHbyS.d.ts} +5 -5
  52. package/dist/{copy-BEx5F71o.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-CAAwiStc.d.cts → depth-CRyU7-pf.d.cts} +7 -6
  58. package/dist/{depth-DfNRVtrV.d.ts → depth-vNpwOkZ8.d.ts} +7 -6
  59. package/dist/{entitlementRepository-DPvWjV-N.d.cts → entitlementRepository-Bv8nSYRd.d.cts} +4 -4
  60. package/dist/{entitlementRepository-CVWvND1P.d.ts → entitlementRepository-CUdxbQrP.d.ts} +4 -4
  61. package/dist/{identity-BhT7oJDS.d.ts → identity-B8GkH53J.d.ts} +2 -2
  62. package/dist/{identity-DUlshgow.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-Bneph9m1.d.cts → pets-BI7Ji8hi.d.cts} +2 -2
  74. package/dist/{pets-DjcLmRrW.d.ts → pets-Dnn-DK1T.d.ts} +2 -2
  75. package/dist/{petsRepository-BwxmfX_s.d.ts → petsRepository-B2lO1sKS.d.ts} +2 -2
  76. package/dist/{petsRepository-BnVre3q7.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-Di9rdLO9.d.ts → ports-BUXF0Rp3.d.ts} +7 -7
  82. package/dist/{ports-BPKxFOSe.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-CiSX2pun.d.ts → requestFunnel-BrOijMcw.d.ts} +5 -5
  92. package/dist/{requestFunnel-DMR_1T3O.d.cts → requestFunnel-BxNVGyGm.d.cts} +5 -5
  93. package/dist/{runtimeTypes-CkMFCbHW.d.ts → runtimeTypes-CvI1ZH8j.d.ts} +7 -7
  94. package/dist/{runtimeTypes-2gJ5hYoE.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-D3171ksh.d.ts → timelineRows-CEx2TzYB.d.ts} +1 -1
  130. package/dist/{timelineRows-DDnz4gx2.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-DKz02DGU.d.ts → typeStyle-C3IG9Sft.d.ts} +22 -3
  134. package/dist/{typeStyle-BqfwxZH4.d.cts → typeStyle-CZ3Tj60N.d.cts} +22 -3
  135. package/dist/{useRecordsDepth-COJ0wSYK.d.cts → useRecordsDepth-D6a6-_u_.d.cts} +7 -6
  136. package/dist/{useRecordsDepth-Z9FF5X4E.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-DoQEHXJR.d.ts → view-BSmN5RWf.d.ts} +5 -5
  144. package/dist/{view-nRy6SitU.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 +21 -35
  171. package/dist/web/televet/booking/index.d.ts +21 -35
  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 +22 -11
  179. package/dist/web/televet/index.d.ts +22 -11
  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 +1,111 @@
1
- import {createContext,useMemo,useState,useRef,useCallback,useEffect,useContext,Component,createElement}from'react';import {jsxs,jsx}from'react/jsx-runtime';var ar=Object.defineProperty;var n=(e,r)=>ar(e,"name",{value:r,configurable:true});var x=Object.freeze({loading:"Loading",retry:"Try again",signedOut:"Sign in required",changeable:"You can change this at any time.",saving:"Saving"}),K=Object.freeze({transcript_exposure:Object.freeze({title:"Conversation sharing",body:n(e=>`Let ${e} read the conversations you have with Everfur.`,"body")}),partner_context:Object.freeze({title:"Pet details",body:n(e=>`Let Everfur use the pet details ${e} already holds as background in your conversations.`,"body")})});function W(e,r){if(e.status==="signed_out")return {kind:"signedOut"};let t=e.scopes.find(o=>o.scope===r);return t===void 0?e.error!==null?{kind:"failed",error:e.error}:{kind:"loading"}:t.loaded?{kind:"row",scope:t.scope,granted:t.granted,hasDecision:t.hasDecision,saving:t.saving,error:t.error}:t.error!==null?{kind:"failed",error:t.error}:{kind:"loading"}}n(W,"consentRowView");var $=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($.map(e=>e.wireCode));var ir=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"}),ve=Object.freeze($.map(e=>Object.freeze({wireCode:e.wireCode,envelope:e.envelope,retryable:e.retryable,normalized:ir[e.wireCode]}))),sr=new Map(ve.map(e=>[e.envelope+e.wireCode.toUpperCase(),e])),lr=Object.freeze(["http_envelope",...[...new Set(ve.map(e=>e.envelope))].filter(e=>e!=="http_envelope").sort()]);function L(e,r){if(typeof e!="string")return;let t=e.trim().toUpperCase();if(t.length!==0)for(let o of [r??"http_envelope",...lr]){let a=sr.get(o+t);if(a)return a}}n(L,"contractErrorFor");function ur(e){return e.envelope==="sse_frame"?`/errors#sse-${e.wireCode}`:e.envelope==="oauth_error"?`/errors#oauth-${e.wireCode}`:`/errors#${e.wireCode}`}n(ur,"contractDocUrl");function Ee(e){return null}n(Ee,"publishedDocUrl");var dr=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 ge(e){return dr[e]}n(ge,"categoryFor");function be(e){let r=L(e);if(r)return r.normalized;let t=(e??"").trim().toUpperCase(),o=t.replace(/[^A-Z0-9]/g,"");if(o==="AUTHREJECTED")return "authRejected";if(t.startsWith("AUTH"))return "authExpired";switch(o){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"}}n(be,"fromWire");var cr=new Set(["streamTimeout","rateLimited","internalError","upstreamLlmTimeout","streamIncomplete"]);function G(e){return cr.has(e)}n(G,"isAutoRetryable");var pr=new Set(["serviceUnavailable","conflict","idempotencyInFlight"]);function he(e){return G(e)||pr.has(e)}n(he,"isRetryableCode");var fr=500,Q=8e3,_e=4;function Ce(e,r=Math.random){let t=Math.max(0,e),o=Math.min(fr*2**t,Q);return Math.floor(r()*o)}n(Ce,"backoffDelayMs");var yr=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 mr(e){return yr[e]}n(mr,"userFacingError");function Re(e,r,t){Object.defineProperty(e,r,{value:t,enumerable:false,writable:false,configurable:false});}n(Re,"defineHidden");var vr=/^[a-z][a-z0-9_]{0,63}$/;function F(e,r){let t=L(r?.wireCode,r?.wireEnvelope),o={code:e,category:ge(e),retryable:r?.retryable??he(e),displayMessage:mr(e)};if(r?.httpStatus!==void 0&&(o.httpStatus=r.httpStatus),r?.requestId&&(o.requestId=r.requestId),typeof r?.reasonCode=="string"&&vr.test(r.reasonCode)&&(o.reasonCode=r.reasonCode),t);return r?.wireMessage&&Re(o,"wireMessage",r.wireMessage),r?.raw!==void 0&&r.raw!==null&&Re(o,"raw",r.raw),Object.freeze(o)}n(F,"makeEverfurError");function X(e,r){return Object.freeze(r===void 0?{ok:true,value:e}:{ok:true,value:e,warning:r})}n(X,"ok");function y(e){return Object.freeze({ok:false,error:e})}n(y,"err");var U=class U extends Error{constructor(r,t){super(t),this.name="EverfurConfigError",this.kind=r,Object.setPrototypeOf(this,U.prototype);}};n(U,"EverfurConfigError");var z=U;function Se(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})}n(Se,"errorFrame");function br(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}n(br,"authHeaders");function N(e,r){return {...e,headers:{...hr(e.headers),...br(r)}}}n(N,"withAuthHeaders");function hr(e){if(!e)return {};let r={};for(let[t,o]of Object.entries(e)){let a=t.toLowerCase();a==="authorization"||a==="x-everfur-partner-key"||(r[t]=o);}return r}n(hr,"stripAuthHeaders");async function Te(e,r){if(r.mode==="anonymous")return r.transport.request(N(e,{mode:"anonymous",publishableKey:r.publishableKey,userRef:r.userRef,...r.sessionId?{sessionId:r.sessionId}:{}}));let t;try{t=await r.identity.currentToken();}catch{return y(J())}let o=await r.transport.request(N(e,{mode:"personalized",token:t,userRef:r.userRef,...r.sessionId?{sessionId:r.sessionId}:{}}));if(o.ok||o.error.httpStatus!==401)return o;let a;try{a=await r.identity.currentToken({forceRefresh:!0});}catch{return y(J())}let s=await r.transport.request(N(e,{mode:"personalized",token:a,userRef:r.userRef,...r.sessionId?{sessionId:r.sessionId}:{}}));return !s.ok&&s.error.httpStatus===401?y(J(s.error.httpStatus)):s}n(Te,"authedSend");function J(e){return F("authRejected",{retryable:false,...e!==void 0?{httpStatus:e}:{}})}n(J,"authRejectedError");function Fe(e){return F("internalError",{retryable:true,wireMessage:_r(e)})}n(Fe,"networkError");function _r(e){return e instanceof Error?e.message:typeof e=="string"?e:"network request failed"}n(_r,"describeCause");var Cr=3e4,Rr=Q*2,Sr="idempotency-key",Tr=new Set(["POST","PUT","PATCH","DELETE"]),Fr=Object.freeze({onEvent(){}}),wr=Object.freeze({setTimeout:n((e,r)=>setTimeout(e,r),"setTimeout"),clearTimeout:n(e=>clearTimeout(e),"clearTimeout"),now:n(()=>Date.now(),"now")});function xr(e){let r=e.trim().replace(/[^A-Za-z0-9_.:-]/g,"-");return r.length===0?null:`efs_${r}`.slice(0,128)}n(xr,"seededIdempotencyKey");function xe(e){let r=e.observer??Fr,t=e.timers??wr,o=e.rng??Math.random,a=e.sleep??((m,c)=>qr(m,t,c)),s=e.maxAttempts??_e,f=e.unaryTimeoutMs??Cr,i=e.newIdempotencyKey??Or(),l=n(m=>{try{r.onEvent(m);}catch{}},"emit");async function d(m,c,p){let h=p?.maxAttempts,v=Math.max(1,h??s),g=p?.idempotent??Tr.has(c.method),R=p?.idempotencyKey===void 0?null:xr(p.idempotencyKey),u=g?R??i():null,_=kr(c,u),C=0;for(;;){let S=n(Y=>Object.freeze({call:m,method:c.method,path:c.path,attempt:C,...u?{idempotencyKey:u}:{},...Y}),"stamp");l(S({phase:"attempt"}));let I=Ur(f,t),j=Br(I.signal,c.signal),P;try{P=await Te({..._,signal:j.signal},e.auth);}catch(Y){P=y(Fe(Y));}finally{j.dispose(),I.cancel();}if(P.ok)return l(S({phase:"settled",ok:true,reason:"ok"})),P;let w=P.error,M=Ir(w,C,{maxAttempts:v,rng:o,now:t.now(),aborted:c.signal?.aborted===true,...h!==void 0?{perCallMaxAttempts:h}:{},...e.errorPolicy!==void 0?{policy:e.errorPolicy}:{}}),H={ok:false,code:w.code,reason:M.reason,...w.httpStatus!==void 0?{httpStatus:w.httpStatus}:{},...w.requestId!==void 0?{requestId:w.requestId}:{}};if(!M.retry)return l(S({phase:"settled",...H})),y(w);if(l(S({phase:"retry",...H,delayMs:M.delayMs})),await a(M.delayMs,c.signal),c.signal?.aborted===true)return l(S({phase:"settled",...H,reason:"aborted"})),y(w);C+=1;}}n(d,"send");async function E(m){return N(m,await Lr(e.auth))}n(E,"authorize");async function*T(m,c,p){l(Object.freeze({call:m,phase:"stream.open",method:c.method,path:c.path,attempt:0}));try{yield*e.auth.transport.stream(c,p);}catch{yield Se({code:"internal_error",retryable:true,wireMessage:null,synthesized:true,lastEventId:null,serverRequestId:null});}}return n(T,"stream"),Object.freeze({send:d,authorize:E,stream:T})}n(xe,"createRequestFunnel");function kr(e,r){let t={};for(let[o,a]of Object.entries(e.headers??{}))o.toLowerCase()!==Sr&&(t[o]=a);return r!==null&&(t["Idempotency-Key"]=r),{...e,headers:t}}n(kr,"assembleHeaders");function Or(){let e=0;return ()=>`efk_${Date.now().toString(36)}_${(e++).toString(36)}_${Math.random().toString(36).slice(2,12)}`}n(Or,"defaultIdempotencyKeyFactory");var Ar=10;function Ir(e,r,t){if(t.aborted)return {retry:false,reason:"aborted"};let o=Pr(e);if(o==="quota")return {retry:false,reason:"daily-quota-exhausted"};if(o!=="burst"&&!G(e.code))return {retry:false,reason:"terminal-code"};let a=o==="burst"?"burst-throttle":"retryable-code";if(n(()=>{if(t.policy===void 0)return false;try{return !t.policy.shouldRetry(e.code,r)}catch{return false}},"policyVetoedRetry")())return {retry:false,reason:"terminal-code"};let f=n(()=>{if(t.policy===void 0)return null;let d;try{d=t.policy.maxAttempts(e.code);}catch{return null}return typeof d!="number"||!Number.isFinite(d)?null:Math.max(1,Math.min(Ar,Math.floor(d)))},"policyCeiling"),i=t.perCallMaxAttempts??f()??t.maxAttempts;if(r+1>=i)return {retry:false,reason:"attempts-exhausted"};let l=zr(e,t.now);return l!==null?l>Rr?{retry:false,reason:"server-reset-beyond-budget"}:{retry:true,reason:a,delayMs:l}:{retry:true,reason:a,delayMs:Ce(r,t.rng)}}n(Ir,"decideRetry");function Pr(e){let r=e.code==="unknown"?be(Mr(e.raw)):e.code;return r==="quotaExceeded"?"quota":r==="rateLimited"||e.httpStatus===429?"burst":null}n(Pr,"throttleKind");function zr(e,r){let t=Dr(e.raw);if(t!==null){let a=t-r;return a>0?a:0}let o=Nr(e.raw);return o===null?null:Math.round(o*1e3)}n(zr,"retryOverrideMs");function Nr(e){for(let r of Z(e)){let t=r.retry_after_seconds;if(typeof t=="number"&&Number.isFinite(t)&&t>=0)return t}return null}n(Nr,"findRetryAfterSeconds");function Dr(e){for(let r of Z(e)){let t=r.resets_at,o=jr(t);if(o!==null)return o}return null}n(Dr,"findResetsAt");function Z(e){if(!we(e))return [];let r=[e];for(let t of ["error","detail"]){let o=e[t];we(o)&&r.push(o);}return r}n(Z,"candidateScopes");function jr(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}n(jr,"parseInstantMs");function Mr(e){for(let r of Z(e)){let t=r.code;if(typeof t=="string"&&t.length>0)return t}return null}n(Mr,"rawWireCode");function we(e){return typeof e=="object"&&e!==null}n(we,"isRecord");async function Lr(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}:{}}}n(Lr,"resolveDeviceAuth");function Ur(e,r){let t=new AbortController,o=r.setTimeout(()=>t.abort(),e);return {signal:t.signal,cancel:n(()=>r.clearTimeout(o),"cancel")}}n(Ur,"boundedSignal");function Br(e,r){let t=n(()=>{},"noop");if(!r)return {signal:e,dispose:t};let o=new AbortController;if(e.aborted||r.aborted)return o.abort(),{signal:o.signal,dispose:t};let a=n(()=>o.abort(),"onAbort");return e.addEventListener("abort",a,{once:true}),r.addEventListener("abort",a,{once:true}),{signal:o.signal,dispose:n(()=>{e.removeEventListener("abort",a),r.removeEventListener("abort",a);},"dispose")}}n(Br,"mergeSignals");function qr(e,r,t){return e<=0||t?.aborted===true?Promise.resolve():new Promise(o=>{let a=r.setTimeout(()=>{t?.removeEventListener("abort",s),o();},e),s=n(()=>{r.clearTimeout(a),o();},"onAbort");t?.addEventListener("abort",s,{once:true});})}n(qr,"delayAbortable");var ke="/widget/v1/consent",D=Object.freeze(["transcript_exposure","partner_context"]),Oe="records_content",re=64,Vr=new Set(D);function B(e){return typeof e=="string"&&Vr.has(e)}n(B,"isEverfurConsentScope");function k(e){return F("validationFailed",{retryable:false,wireMessage:e})}n(k,"invalid");function ze(e){return B(e)?null:k(e===Oe?`'${Oe}' is not recorded here: the records release a member grants and revokes is PUT and DELETE /widget/v1/records/pets/{pet_ref}/consent, which the records surface wires and which also kills the pet's live share links on a revoke. A row on the scoped ledger would not gate any read.`:`scope must be one of ${D.join(", ")}`)}n(ze,"validateScope");function Hr(e){if(typeof e!="object"||e===null)return k("write needs a decision object");let{scope:r,granted:t,consentVersion:o}=e,a=ze(r);return a!==null?a:typeof t!="boolean"?k("granted must be true to grant or false to withdraw"):o!==void 0&&(typeof o!="string"||o.length===0||o.length>re)?k(`consentVersion must be 1..${re} characters`):null}n(Hr,"validateDecision");var ee=n(e=>typeof e=="string"&&e.length>0?e:null,"str");function Ae(e,r){if(typeof e!="object"||e===null)return null;let t=e;return typeof t.granted!="boolean"||typeof t.has_decision!="boolean"?null:Object.freeze({scope:r,granted:t.granted,hasDecision:t.has_decision,consentVersion:ee(t.consent_version),actor:ee(t.actor),recordedAt:ee(t.recorded_at)})}n(Ae,"verdictFromWire");function Ie(e){return F("internalError",{retryable:false,httpStatus:502,wireMessage:`${e}: the response carried no granted/has_decision pair`})}n(Ie,"malformed");function Pe(e){return k(`the Everfur runtime is disposed; ${e} was called after unmount`)}n(Pe,"disposed");function te(e){let r=n(()=>{let{services:t}=e.registry;return Ne({auth:t.authFor(null),...t.errorPolicy?{errorPolicy:t.errorPolicy}:{}})},"over");return {read:n((t,o)=>e.isDisposed?Promise.resolve(y(Pe("read"))):r().read(t,o),"read"),write:n((t,o)=>e.isDisposed?Promise.resolve(y(Pe("write"))):r().write(t,o),"write")}}n(te,"createConsentRepository");function Ne(e){let r=e.funnel??xe({auth:e.auth,...e.errorPolicy?{errorPolicy:e.errorPolicy}:{}}),t=n((o,a)=>a?{...o,signal:a}:o,"withSignal");return {async read(o,a){let s=ze(o);if(s!==null)return y(s);let f=await r.send("consent.read",t({method:"GET",path:ke,query:{scope:o}},a?.signal));if(!f.ok)return y(f.error);let i=Ae(f.value,o);return i===null?y(Ie("consent.read")):X(i)},async write(o,a){let s=Hr(o);if(s!==null)return y(s);let f={scope:o.scope,granted:o.granted};o.consentVersion!==void 0&&(f.consent_version=o.consentVersion);let i=await r.send("consent.write",t({method:"PUT",path:ke,body:f},a?.signal));if(!i.ok)return y(i.error);let l=Ae(i.value,o.scope);return l===null?y(Ie("consent.write")):X(l)}}}n(Ne,"createConsentRepositoryOver");var De=Symbol.for("@everfur/sdk#EverfurContext@v1"),je=globalThis,Me=je[De]??(je[De]=createContext(null));Me.displayName??="EverfurContext";function ne(){let e=useContext(Me);if(e===null)throw new z("not-initialized","Everfur hooks must be called inside <EverfurProvider>. Wrap your tree once, high.");return e}n(ne,"useEverfurContext");function ae(e,r){return Object.freeze({scope:e,granted:false,hasDecision:false,consentVersion:null,recordedAt:null,loaded:false,saving:false,error:r})}n(ae,"blank");function Ue(e){return Object.freeze({scope:e.scope,granted:e.granted,hasDecision:e.hasDecision,consentVersion:e.consentVersion,recordedAt:e.recordedAt,loaded:true,saving:false,error:null})}n(Ue,"settled");function Gr(){return F("sessionRequired",{retryable:false,wireMessage:"a consent decision is authored by the member; sign a user in on the provider first"})}n(Gr,"noMember");function Be(){let{runtime:e}=ne();return useMemo(()=>te(e),[e])}n(Be,"useEverfurConsentRepository");function se(e){let{userRef:r}=ne(),t=Be(),o=(e?.scopes??[]).filter(B).join(","),a=useMemo(()=>{let p=o.length===0?[]:o.split(",");return p.length===0?D:Object.freeze(p)},[o]),[s,f]=useState(r===null?"signed_out":"loading"),[i,l]=useState([]),[d,E]=useState(null),T=useRef(0),m=useCallback(async()=>{if(r===null){T.current+=1,f("signed_out"),l([]),E(null);return}let p=T.current+=1;f("loading"),E(null);let h=await Promise.all(a.map(u=>t.read(u)));if(p!==T.current)return;let v=h.map((u,_)=>{let C=a[_];return u.ok?Ue(u.value):ae(C,u.error)}),g=h.find(u=>!u.ok),R=h.every(u=>!u.ok);l(Object.freeze(v)),f(R?"failed":"ready"),E(R&&g!==void 0&&!g.ok?g.error:null);},[t,a,r]);useEffect(()=>{m();},[m]);let c=useCallback(async(p,h)=>{if(r===null)return y(Gr());let v=T.current,g=null;l(u=>{let _=u.findIndex(j=>j.scope===p),C=_===-1?ae(p,null):u[_];g=C;let S=Object.freeze({...C,granted:h,hasDecision:true,saving:true,error:null});if(_===-1)return Object.freeze([...u,S]);let I=[...u];return I[_]=S,Object.freeze(I)});let R=await t.write({scope:p,granted:h});return v!==T.current||l(u=>{let _=u.findIndex(S=>S.scope===p);if(_===-1)return u;let C=[...u];return C[_]=R.ok?Ue(R.value):Object.freeze({...g??ae(p,null),saving:false,error:R.error}),Object.freeze(C)}),R},[t,r]);return useMemo(()=>({status:s,scopes:i,error:d,setConsent:c,refresh:m}),[s,i,d,c,m])}n(se,"useEverfurConsent");function qe(e){let r=globalThis.console;try{r?.error?.("[everfur] A host callback threw; the SDK ignored it.",e);}catch{}}n(qe,"reportHostFailure");function Qr(e){return (typeof e=="object"||typeof e=="function")&&e!==null&&typeof e.then=="function"}n(Qr,"isThenable");function Xr(e,...r){if(typeof e=="function")try{let t=e(...r);return Qr(t)&&Promise.resolve(t).then(void 0,qe),t}catch(t){qe(t);return}}n(Xr,"callHost");var Ve=new WeakMap;function Jr(e){if(typeof e!="function")return;let r=Ve.get(e);if(r!==void 0)return r;let t=n((...o)=>{Xr(e,...o);},"guarded");return Ve.set(e,t),t}n(Jr,"guardHost");function He(e,r){let t=null;for(let o of r){let a=e[o];typeof a=="function"&&(t??={...e},t[o]=Jr(a));}return t??e}n(He,"guardHostProps");var ue=class ue extends Component{constructor(){super(...arguments);this.state={failed:false,key:this.props.resetKey};}static getDerivedStateFromError(){return {failed:true}}static getDerivedStateFromProps(t,o){return Object.is(t.resetKey,o.key)?null:{failed:false,key:t.resetKey}}render(){return this.state.failed?this.props.fallback:this.props.children}};n(ue,"HostRenderBoundary");var le=ue;function et({render:e}){return e()}n(et,"RenderHost");function Ke({render:e,fallback:r,resetKey:t}){return createElement(le,{fallback:r,resetKey:t,children:createElement(et,{render:e})})}n(Ke,"HostRender");function pe(e){if(e!==null&&typeof e=="object"&&!Object.isFrozen(e)){Object.freeze(e);for(let r of Object.keys(e))pe(e[r]);}return e}n(pe,"deepFreeze");var rt=Object.freeze({content:0,heading:2,control:1.8,compact:1.5,badge:1.3}),$e={xs:4,sm:8,md:12,lg:16,xl:24,xxl:32},Ge={tile:5,xs:6,sm:10,md:14,lg:20,xl:28,pill:500},We={nano:8,small:9,micro:10,tiny:11,caption:13,bodyTight:15,body:17,subtitle:20,heading:22,verdict:24},tt={tight:1.15,snug:1.3,normal:1.4,relaxed:1.55},nt={regular:"400",medium:"500",bold:"700"},ot={eyebrow:1,monoWide:.9,headerBrand:-0.42,tight:-0.35},at=0,q="System",V="monospace",it=["content","heading","control","compact","badge"];function st(e){let r={};for(let t of it)r[t]=e;return r}n(st,"authoredTierSizes");function Qe(){return {family:q,mono:V,fontUrl:null,families:{regular:q,medium:q,bold:q,mono:V,monoMedium:V,monoBold:V},namedFaces:{regular:false,medium:false,bold:false,mono:false,monoMedium:false,monoBold:false},fontUrls:{},size:We,tierSizes:st(We),lineHeight:tt,weight:nt,letterSpacing:ot,scale:1,maxScale:at,scaleCaps:rt}}n(Qe,"baseType");var Xe={},de=Object.freeze({standard:Object.freeze([.2,0,0,1]),emphasized:Object.freeze([.2,.8,.2,1]),exit:Object.freeze([.4,0,1,1])});function ce(e){return `cubic-bezier(${e.join(", ")})`}n(ce,"cssCubicBezier");var Je={duration:{instant:80,fast:140,normal:220,slow:320},spring:{gentle:{damping:18,stiffness:200}},easing:{standard:ce(de.standard),emphasized:ce(de.emphasized),exit:ce(de.exit)},reducedMotion:false},lt={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)"},Ze=pe({brightness:"light",highContrast:false,meta:{displayName:"Everfur",logoUrl:null,placeholder:null,hidePoweredBy:false},color:lt,space:$e,radius:Ge,type:Qe(),motion:Je,slots:Xe}),ut={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)"};pe({brightness:"dark",highContrast:false,meta:{displayName:"Everfur",logoUrl:null,placeholder:null,hidePoweredBy:false},color:ut,space:$e,radius:Ge,type:Qe(),motion:Je,slots:Xe});var er=Symbol.for("@everfur/sdk#EverfurThemeContext@v1"),rr=globalThis,fe=rr[er]??(rr[er]=createContext(Ze));fe.displayName??="EverfurThemeContext";function ye(){return useContext(fe)}n(ye,"useEverfurTheme");var tr=Object.freeze({regular:"regular",medium:"medium",bold:"bold",mono:"regular",monoMedium:"medium",monoBold:"bold"});var nr='system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif',pt="System";function ft(e){let r=e.trim();return r.length===0||r===pt?nr:`${or(r)}, ${nr}`}n(ft,"cssFontFamily");function yt(e){let r=e.trim();return r.length===0||r==="monospace"?"ui-monospace, Menlo, Consolas, monospace":`${or(r)}, ui-monospace, Menlo, Consolas, monospace`}n(yt,"cssMonoFamily");function or(e){return `"${e.replace(/[\\"]/g,"\\$&")}"`}n(or,"quote");function O(e,r){let t=e.type,o=t.families[r];return {fontFamily:r==="mono"||r==="monoMedium"||r==="monoBold"?yt(o):ft(o),fontWeight:t.namedFaces[r]?t.weight.regular:t.weight[tr[r]]}}n(O,"faceCss");function gt(e){let{scope:r,onChange:t,renderNotice:o,style:a,className:s}=He(e,["onChange"]),f=ye(),i=useMemo(()=>bt(f),[f]),l=se({scopes:[r]}),d=W(l,r),E=K[r],[T,m]=useState(null),c=useCallback(async v=>{m(v);let g=await l.setConsent(r,v);g.ok&&(m(null),t?.(g.value.granted));},[l,t,r]),p=n((v,g)=>jsxs("div",{style:i.notice,children:[jsx(Ke,{resetKey:v,render:()=>o?o(v):jsx("p",{style:i.noticeText,children:v.displayMessage}),fallback:jsx("p",{style:i.noticeText,children:v.displayMessage})}),jsx("button",{type:"button",onClick:g,style:i.retry,children:x.retry})]}),"notice");if(d.kind==="signedOut")return jsxs("div",{className:s,style:{...i.container,...a},children:[jsx("p",{style:i.title,children:E.title}),jsx("p",{style:i.body,children:x.signedOut})]});if(d.kind==="loading")return jsx("div",{className:s,style:{...i.container,...a},role:"status","aria-busy":"true","aria-label":x.loading,children:jsx("p",{style:i.title,children:E.title})});if(d.kind==="failed")return jsxs("div",{className:s,style:{...i.container,...a},children:[jsx("p",{style:i.title,children:E.title}),p(d.error,()=>{l.refresh();})]});let h=`${E.title}. ${E.body(f.meta.displayName)}`;return jsxs("div",{className:s,style:{...i.container,...a},children:[jsxs("div",{style:{...i.row,...d.granted?i.rowChecked:null},children:[jsx("input",{type:"checkbox",checked:d.granted,disabled:d.saving,"aria-label":h,"aria-busy":d.saving?"true":void 0,onChange:v=>{c(v.currentTarget.checked);},style:i.box}),jsxs("div",{style:i.copy,children:[jsx("p",{style:i.title,children:E.title}),jsx("p",{style:i.body,children:E.body(f.meta.displayName)}),jsx("p",{style:i.footnote,children:x.changeable})]})]}),d.error===null?null:p(d.error,()=>{c(T??!d.granted);})]})}n(gt,"EverfurConsentToggle");function bt(e){let{color:r,radius:t,space:o,type:a}=e,s=`${Math.round(a.size.caption*a.lineHeight.snug)}px`;return {container:{boxSizing:"border-box",display:"flex",flexDirection:"column",gap:o.sm,padding:`${o.md}px ${o.lg}px`},row:{boxSizing:"border-box",display:"flex",alignItems:"flex-start",gap:o.md,borderRadius:t.md,border:`1px solid ${r.brandBorder}`,backgroundColor:r.surface,padding:o.lg},rowChecked:{border:`1px solid ${r.brandInk}`,backgroundColor:r.brandSoft},box:{width:24,height:24,minWidth:24,minHeight:24,margin:0,accentColor:r.brand,cursor:"pointer"},copy:{display:"flex",flexDirection:"column",gap:o.xs},title:{margin:0,...O(e,"bold"),fontSize:a.size.body,lineHeight:`${Math.round(a.size.body*a.lineHeight.snug)}px`,color:r.text.primary},body:{margin:0,...O(e,"regular"),fontSize:a.size.caption,lineHeight:s,color:r.text.secondary},footnote:{margin:0,...O(e,"regular"),fontSize:a.size.caption,lineHeight:s,color:r.text.muted},notice:{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:o.xs,paddingTop:o.xs},noticeText:{margin:0,...O(e,"regular"),fontSize:a.size.caption,lineHeight:s,color:r.errorRed},retry:{minHeight:44,padding:`0 ${o.sm}px`,border:"none",background:"none",cursor:"pointer",...O(e,"bold"),fontSize:a.size.caption,color:r.linkInk}}}n(bt,"makeStyles");export{x as CONSENT_COPY,K as CONSENT_SCOPE_COPY,re as CONSENT_VERSION_MAX,D as EVERFUR_CONSENT_SCOPES,gt as EverfurConsentToggle,W as consentRowView,te as createConsentRepository,Ne as createConsentRepositoryOver,B as isEverfurConsentScope,se as useEverfurConsent,Be as useEverfurConsentRepository};
1
+ "use client";
2
+ import{createContext,useMemo,useState,useRef,useCallback,useEffect,useContext,createElement,Component}from"react";import{jsxs,jsx}from"react/jsx-runtime";var CONSENT_COPY=/* @__PURE__ */Object.freeze({loading:"Loading",retry:"Try again",signedOut:"Sign in required",changeable:"You can change this at any time.",saving:"Saving"}),CONSENT_SCOPE_COPY=/* @__PURE__ */Object.freeze({transcript_exposure:/* @__PURE__ */Object.freeze({title:"Conversation sharing",body:partner=>`Let ${partner} read the conversations you have with Everfur.`}),partner_context:/* @__PURE__ */Object.freeze({title:"Pet details",body:partner=>`Let Everfur use the pet details ${partner} already holds as background in your conversations.`})});function consentRowView(state,scope){if(state.status==="signed_out")return{kind:"signedOut"};let entry=state.scopes.find(candidate=>candidate.scope===scope);return entry===void 0?state.error!==null?{kind:"failed",error:state.error}:{kind:"loading"}:entry.loaded?{kind:"row",scope:entry.scope,granted:entry.granted,hasDecision:entry.hasDecision,saving:entry.saving,error:entry.error}:entry.error!==null?{kind:"failed",error:entry.error}:{kind:"loading"}}var CONTRACT_RETRYABILITY=/* @__PURE__ */Object.freeze([
3
+ /* @__PURE__ */Object.freeze({wireCode:"AccessDeniedException",envelope:"http_envelope",httpStatus:403,retryable:false}),
4
+ /* @__PURE__ */Object.freeze({wireCode:"AuthorizationException",envelope:"http_envelope",httpStatus:401,retryable:false}),
5
+ /* @__PURE__ */Object.freeze({wireCode:"ConflictException",envelope:"http_envelope",httpStatus:409,retryable:true}),
6
+ /* @__PURE__ */Object.freeze({wireCode:"DAILY_QUOTA_EXCEEDED",envelope:"http_envelope",httpStatus:429,retryable:true}),
7
+ /* @__PURE__ */Object.freeze({wireCode:"FILE_TOO_LARGE",envelope:"http_envelope",httpStatus:400,retryable:false}),
8
+ /* @__PURE__ */Object.freeze({wireCode:"IDEMPOTENCY_KEY_IN_FLIGHT",envelope:"http_envelope",httpStatus:409,retryable:true}),
9
+ /* @__PURE__ */Object.freeze({wireCode:"IDEMPOTENCY_KEY_REUSED_DIFFERENT_REQUEST",envelope:"http_envelope",httpStatus:409,retryable:false}),
10
+ /* @__PURE__ */Object.freeze({wireCode:"INVALID_CONTENT_TYPE",envelope:"http_envelope",httpStatus:400,retryable:false}),
11
+ /* @__PURE__ */Object.freeze({wireCode:"InternalFailureException",envelope:"http_envelope",httpStatus:500,retryable:true}),
12
+ /* @__PURE__ */Object.freeze({wireCode:"MethodNotAllowedException",envelope:"http_envelope",httpStatus:405,retryable:false}),
13
+ /* @__PURE__ */Object.freeze({wireCode:"NotImplementedException",envelope:"http_envelope",httpStatus:501,retryable:false}),
14
+ /* @__PURE__ */Object.freeze({wireCode:"PaymentRequiredException",envelope:"http_envelope",httpStatus:402,retryable:false}),
15
+ /* @__PURE__ */Object.freeze({wireCode:"ResourceNotFoundException",envelope:"http_envelope",httpStatus:404,retryable:false}),
16
+ /* @__PURE__ */Object.freeze({wireCode:"ServiceUnavailableException",envelope:"http_envelope",httpStatus:503,retryable:true}),
17
+ /* @__PURE__ */Object.freeze({wireCode:"TIER_UPGRADE_REQUIRED",envelope:"http_envelope",httpStatus:402,retryable:false}),
18
+ /* @__PURE__ */Object.freeze({wireCode:"ThrottlingException",envelope:"http_envelope",httpStatus:429,retryable:true}),
19
+ /* @__PURE__ */Object.freeze({wireCode:"ValidationException",envelope:"http_envelope",httpStatus:400,retryable:false}),
20
+ /* @__PURE__ */Object.freeze({wireCode:"accessDenied",envelope:"http_envelope",httpStatus:403,retryable:false}),
21
+ /* @__PURE__ */Object.freeze({wireCode:"access_denied",envelope:"oauth_error",httpStatus:302,retryable:false}),
22
+ /* @__PURE__ */Object.freeze({wireCode:"attachment_unreadable",envelope:"http_envelope",httpStatus:400,retryable:false}),
23
+ /* @__PURE__ */Object.freeze({wireCode:"authExpired",envelope:"http_envelope",httpStatus:401,retryable:true}),
24
+ /* @__PURE__ */Object.freeze({wireCode:"authRejected",envelope:"http_envelope",httpStatus:401,retryable:false}),
25
+ /* @__PURE__ */Object.freeze({wireCode:"consent_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),
26
+ /* @__PURE__ */Object.freeze({wireCode:"consent_required",envelope:"http_envelope",httpStatus:422,retryable:false}),
27
+ /* @__PURE__ */Object.freeze({wireCode:"consent_scope_wrong_route",envelope:"http_envelope",httpStatus:400,retryable:false}),
28
+ /* @__PURE__ */Object.freeze({wireCode:"device_cipher_unavailable",envelope:"http_envelope",httpStatus:503,retryable:true}),
29
+ /* @__PURE__ */Object.freeze({wireCode:"email_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),
30
+ /* @__PURE__ */Object.freeze({wireCode:"event_cursor_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),
31
+ /* @__PURE__ */Object.freeze({wireCode:"event_filter_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),
32
+ /* @__PURE__ */Object.freeze({wireCode:"event_payload_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),
33
+ /* @__PURE__ */Object.freeze({wireCode:"event_type_not_available",envelope:"http_envelope",httpStatus:400,retryable:false}),
34
+ /* @__PURE__ */Object.freeze({wireCode:"event_type_unknown",envelope:"http_envelope",httpStatus:400,retryable:false}),
35
+ /* @__PURE__ */Object.freeze({wireCode:"idempotency_key_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),
36
+ /* @__PURE__ */Object.freeze({wireCode:"idempotency_key_required",envelope:"http_envelope",httpStatus:400,retryable:false}),
37
+ /* @__PURE__ */Object.freeze({wireCode:"idempotency_key_reused",envelope:"http_envelope",httpStatus:409,retryable:false}),
38
+ /* @__PURE__ */Object.freeze({wireCode:"insufficientCapability",envelope:"http_envelope",httpStatus:403,retryable:false}),
39
+ /* @__PURE__ */Object.freeze({wireCode:"insufficient_scope",envelope:"http_envelope",httpStatus:403,retryable:false}),
40
+ /* @__PURE__ */Object.freeze({wireCode:"internal_error",envelope:"sse_frame",httpStatus:200,retryable:false}),
41
+ /* @__PURE__ */Object.freeze({wireCode:"invalidRequest",envelope:"http_envelope",httpStatus:400,retryable:false}),
42
+ /* @__PURE__ */Object.freeze({wireCode:"invalid_client",envelope:"oauth_error",httpStatus:401,retryable:false}),
43
+ /* @__PURE__ */Object.freeze({wireCode:"invalid_client_metadata",envelope:"oauth_error",httpStatus:400,retryable:false}),
44
+ /* @__PURE__ */Object.freeze({wireCode:"invalid_grant",envelope:"oauth_error",httpStatus:400,retryable:false}),
45
+ /* @__PURE__ */Object.freeze({wireCode:"invalid_redirect_uri",envelope:"oauth_error",httpStatus:400,retryable:false}),
46
+ /* @__PURE__ */Object.freeze({wireCode:"invalid_request",envelope:"oauth_error",httpStatus:400,retryable:false}),
47
+ /* @__PURE__ */Object.freeze({wireCode:"invalid_scope",envelope:"oauth_error",httpStatus:400,retryable:false}),
48
+ /* @__PURE__ */Object.freeze({wireCode:"invalid_target",envelope:"oauth_error",httpStatus:400,retryable:false}),
49
+ /* @__PURE__ */Object.freeze({wireCode:"mcp_connection_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),
50
+ /* @__PURE__ */Object.freeze({wireCode:"mcp_request_conflict",envelope:"http_envelope",httpStatus:409,retryable:false}),
51
+ /* @__PURE__ */Object.freeze({wireCode:"mcp_request_gone",envelope:"http_envelope",httpStatus:410,retryable:false}),
52
+ /* @__PURE__ */Object.freeze({wireCode:"mcp_request_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),
53
+ /* @__PURE__ */Object.freeze({wireCode:"not_found",envelope:"sse_frame",httpStatus:200,retryable:false}),
54
+ /* @__PURE__ */Object.freeze({wireCode:"partner_visit_link_conflict",envelope:"http_envelope",httpStatus:409,retryable:false}),
55
+ /* @__PURE__ */Object.freeze({wireCode:"partner_visit_owner_only",envelope:"http_envelope",httpStatus:403,retryable:false}),
56
+ /* @__PURE__ */Object.freeze({wireCode:"partner_visit_pet_already_mapped",envelope:"http_envelope",httpStatus:409,retryable:false}),
57
+ /* @__PURE__ */Object.freeze({wireCode:"payload_too_large",envelope:"http_envelope",httpStatus:413,retryable:false}),
58
+ /* @__PURE__ */Object.freeze({wireCode:"petRefInUse",envelope:"http_envelope",httpStatus:409,retryable:false}),
59
+ /* @__PURE__ */Object.freeze({wireCode:"pet_health_list_removals_unconfirmed",envelope:"http_envelope",httpStatus:422,retryable:false}),
60
+ /* @__PURE__ */Object.freeze({wireCode:"pet_health_species_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),
61
+ /* @__PURE__ */Object.freeze({wireCode:"pet_not_registered",envelope:"http_envelope",httpStatus:404,retryable:false}),
62
+ /* @__PURE__ */Object.freeze({wireCode:"provider_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),
63
+ /* @__PURE__ */Object.freeze({wireCode:"rateLimited",envelope:"http_envelope",httpStatus:429,retryable:true}),
64
+ /* @__PURE__ */Object.freeze({wireCode:"record_species_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),
65
+ /* @__PURE__ */Object.freeze({wireCode:"record_subject_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),
66
+ /* @__PURE__ */Object.freeze({wireCode:"record_upload_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),
67
+ /* @__PURE__ */Object.freeze({wireCode:"records_consent_required",envelope:"http_envelope",httpStatus:409,retryable:false}),
68
+ /* @__PURE__ */Object.freeze({wireCode:"sandbox_only",envelope:"http_envelope",httpStatus:403,retryable:false}),
69
+ /* @__PURE__ */Object.freeze({wireCode:"session_required",envelope:"http_envelope",httpStatus:403,retryable:false}),
70
+ /* @__PURE__ */Object.freeze({wireCode:"share_limit_reached",envelope:"http_envelope",httpStatus:429,retryable:false}),
71
+ /* @__PURE__ */Object.freeze({wireCode:"slow_down",envelope:"oauth_error",httpStatus:429,retryable:true}),
72
+ /* @__PURE__ */Object.freeze({wireCode:"species_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),
73
+ /* @__PURE__ */Object.freeze({wireCode:"tenant_filter_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),
74
+ /* @__PURE__ */Object.freeze({wireCode:"tenant_has_no_capabilities",envelope:"http_envelope",httpStatus:409,retryable:false}),
75
+ /* @__PURE__ */Object.freeze({wireCode:"tenant_resource_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),
76
+ /* @__PURE__ */Object.freeze({wireCode:"tenant_surface_not_enabled",envelope:"http_envelope",httpStatus:409,retryable:false}),
77
+ /* @__PURE__ */Object.freeze({wireCode:"timeout",envelope:"sse_frame",httpStatus:200,retryable:true}),
78
+ /* @__PURE__ */Object.freeze({wireCode:"token_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),
79
+ /* @__PURE__ */Object.freeze({wireCode:"unavailable",envelope:"sse_frame",httpStatus:200,retryable:true}),
80
+ /* @__PURE__ */Object.freeze({wireCode:"unavailable",envelope:"http_envelope",httpStatus:503,retryable:true}),
81
+ /* @__PURE__ */Object.freeze({wireCode:"unsupported_grant_type",envelope:"oauth_error",httpStatus:400,retryable:false}),
82
+ /* @__PURE__ */Object.freeze({wireCode:"unsupported_response_type",envelope:"oauth_error",httpStatus:302,retryable:false}),
83
+ /* @__PURE__ */Object.freeze({wireCode:"verify_mint_rate_limited",envelope:"http_envelope",httpStatus:429,retryable:true}),
84
+ /* @__PURE__ */Object.freeze({wireCode:"verify_mint_refused",envelope:"http_envelope",httpStatus:403,retryable:false}),
85
+ /* @__PURE__ */Object.freeze({wireCode:"verify_mint_unavailable",envelope:"http_envelope",httpStatus:503,retryable:true}),
86
+ /* @__PURE__ */Object.freeze({wireCode:"verify_user_ref_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),
87
+ /* @__PURE__ */Object.freeze({wireCode:"webhook_endpoint_update_empty",envelope:"http_envelope",httpStatus:400,retryable:false}),
88
+ /* @__PURE__ */Object.freeze({wireCode:"webhook_endpoint_update_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),
89
+ /* @__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}}var 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"}}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)}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)}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__ */
90
+ return Object.freeze({ok:true,value:value})}function err(error){/* @__PURE__ */
91
+ return Object.freeze({ok:false,error:error})}var EverfurConfigError=class _EverfurConfigError extends Error{constructor(kind,message){super(message),this.name="EverfurConfigError",this.kind=kind,Object.setPrototypeOf(this,_EverfurConfigError.prototype)}};function errorFrame(fields){/* @__PURE__ */
92
+ return Object.freeze({kind:"error",terminal:true,code:fields.code,retryable:fields.retryable,wireMessage:fields.wireMessage,synthesized:fields.synthesized,lastEventId:fields.lastEventId,serverRequestId:null})}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 networkError(cause){return makeEverfurError("internalError",{retryable:true,wireMessage:describeCause(cause)})}function describeCause(cause){return cause instanceof Error?cause.message:typeof cause=="string"?cause:"network request failed"}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),settled2;try{settled2=await authedSend({...base,signal:merged.signal},deps.auth)}catch(cause){settled2=err(networkError(cause))}finally{merged.dispose(),deadline.cancel()}if(settled2.ok)return emit(stamp({phase:"settled",ok:true,reason:"ok"})),settled2;let error=settled2.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(
93
+ /* @__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})}}/* @__PURE__ */
94
+ 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})})}var CONSENT_PATH="/widget/v1/consent",EVERFUR_CONSENT_SCOPES=/* @__PURE__ */Object.freeze(["transcript_exposure","partner_context"]),RECORDS_CONTENT_SCOPE="records_content",CONSENT_VERSION_MAX=64,SCOPES=new Set(EVERFUR_CONSENT_SCOPES);function isEverfurConsentScope(value){return typeof value=="string"&&SCOPES.has(value)}function invalid(wireMessage){return makeEverfurError("validationFailed",{retryable:false,wireMessage:wireMessage})}function validateScope(scope){return isEverfurConsentScope(scope)?null:invalid(scope===RECORDS_CONTENT_SCOPE?`'${RECORDS_CONTENT_SCOPE}' is not recorded here: the records release a member grants and revokes is PUT and DELETE /widget/v1/records/pets/{pet_ref}/consent, which the records surface wires and which also kills the pet's live share links on a revoke. A row on the scoped ledger would not gate any read.`:`scope must be one of ${EVERFUR_CONSENT_SCOPES.join(", ")}`)}function validateDecision(decision){if(typeof decision!="object"||decision===null)return invalid("write needs a decision object");let{scope:scope,granted:granted,consentVersion:consentVersion}=decision,badScope=validateScope(scope);return badScope!==null?badScope:typeof granted!="boolean"?invalid("granted must be true to grant or false to withdraw"):consentVersion!==void 0&&(typeof consentVersion!="string"||consentVersion.length===0||consentVersion.length>CONSENT_VERSION_MAX)?invalid(`consentVersion must be 1..${CONSENT_VERSION_MAX} characters`):null}var str=value=>typeof value=="string"&&value.length>0?value:null;function verdictFromWire(raw,scope){if(typeof raw!="object"||raw===null)return null;let o=raw;return typeof o.granted!="boolean"||typeof o.has_decision!="boolean"?null:/* @__PURE__ */Object.freeze({scope:scope,granted:o.granted,hasDecision:o.has_decision,consentVersion:str(o.consent_version),actor:str(o.actor),recordedAt:str(o.recorded_at)})}function malformed(call){return makeEverfurError("internalError",{retryable:false,httpStatus:502,wireMessage:`${call}: the response carried no granted/has_decision pair`})}function disposed(verb){return invalid(`the Everfur runtime is disposed; ${verb} was called after unmount`)}function createConsentRepository(runtime){let over=()=>{let{services:services}=runtime.registry;return createConsentRepositoryOver({auth:services.authFor(null),...services.errorPolicy?{errorPolicy:services.errorPolicy}:{}})};return{read:(scope,opts)=>runtime.isDisposed?Promise.resolve(err(disposed("read"))):over().read(scope,opts),write:(decision,opts)=>runtime.isDisposed?Promise.resolve(err(disposed("write"))):over().write(decision,opts)}}function createConsentRepositoryOver(deps){let funnel=deps.funnel??createRequestFunnel({auth:deps.auth,...deps.errorPolicy?{errorPolicy:deps.errorPolicy}:{}}),withSignal=(req,signal)=>signal?{...req,signal:signal}:req;return{async read(scope,opts){let bad=validateScope(scope);if(bad!==null)return err(bad);let res=await funnel.send("consent.read",withSignal({method:"GET",path:CONSENT_PATH,query:{scope:scope}},opts?.signal));if(!res.ok)return err(res.error);let verdict=verdictFromWire(res.value,scope);return verdict===null?err(malformed("consent.read")):ok(verdict)},async write(decision,opts){let bad=validateDecision(decision);if(bad!==null)return err(bad);let body={scope:decision.scope,granted:decision.granted};decision.consentVersion!==void 0&&(body.consent_version=decision.consentVersion);let res=await funnel.send("consent.write",withSignal({method:"PUT",path:CONSENT_PATH,body:body},opts?.signal));if(!res.ok)return err(res.error);let verdict=verdictFromWire(res.value,decision.scope);return verdict===null?err(malformed("consent.write")):ok(verdict)}}}var EVERFUR_CONTEXT_SYMBOL=/* @__PURE__ */Symbol.for("@everfur/sdk#EverfurContext@v1"),globalContextHost=globalThis,EverfurContext=globalContextHost[EVERFUR_CONTEXT_SYMBOL]??(globalContextHost[EVERFUR_CONTEXT_SYMBOL]=createContext(null));EverfurContext.displayName??="EverfurContext";function useEverfurContext(){let ctx=useContext(EverfurContext);if(ctx===null)throw new EverfurConfigError("not-initialized","Everfur hooks must be called inside <EverfurProvider>. Wrap your tree once, high.");return ctx}function blank(scope,error){/* @__PURE__ */
95
+ return Object.freeze({scope:scope,granted:false,hasDecision:false,consentVersion:null,recordedAt:null,loaded:false,saving:false,error:error})}function settled(verdict){/* @__PURE__ */
96
+ return Object.freeze({scope:verdict.scope,granted:verdict.granted,hasDecision:verdict.hasDecision,consentVersion:verdict.consentVersion,recordedAt:verdict.recordedAt,loaded:true,saving:false,error:null})}function noMember(){return makeEverfurError("sessionRequired",{retryable:false,wireMessage:"a consent decision is authored by the member; sign a user in on the provider first"})}function useEverfurConsentRepository(){let{runtime:runtime}=useEverfurContext();return useMemo(()=>createConsentRepository(runtime),[runtime])}function useEverfurConsent(options){let{userRef:userRef}=useEverfurContext(),repository=useEverfurConsentRepository(),requestedKey=(options?.scopes??[]).filter(isEverfurConsentScope).join(","),requested=useMemo(()=>{let named=requestedKey.length===0?[]:requestedKey.split(",");return named.length===0?EVERFUR_CONSENT_SCOPES:/* @__PURE__ */Object.freeze(named)},[requestedKey]),[status,setStatus]=useState(userRef===null?"signed_out":"loading"),[scopes,setScopes]=useState([]),[error,setError]=useState(null),generation=useRef(0),readAll=useCallback(async()=>{if(userRef===null){generation.current+=1,setStatus("signed_out"),setScopes([]),setError(null);return}let gen=generation.current+=1;setStatus("loading"),setError(null);let results=await Promise.all(requested.map(scope=>repository.read(scope)));if(gen!==generation.current)return;let next=results.map((result,index)=>{let scope=requested[index];return result.ok?settled(result.value):blank(scope,result.error)}),firstFailure=results.find(result=>!result.ok),everyFailed=results.every(result=>!result.ok);setScopes(/* @__PURE__ */Object.freeze(next)),setStatus(everyFailed?"failed":"ready"),setError(everyFailed&&firstFailure!==void 0&&!firstFailure.ok?firstFailure.error:null)},[repository,requested,userRef]);useEffect(()=>{readAll()},[readAll]);let setConsent=useCallback(async(scope,granted)=>{if(userRef===null)return err(noMember());let gen=generation.current,previous=null;setScopes(current=>{let index=current.findIndex(entry=>entry.scope===scope),before=index===-1?blank(scope,null):current[index];previous=before;let optimistic=/* @__PURE__ */Object.freeze({...before,granted:granted,hasDecision:true,saving:true,error:null});if(index===-1)/* @__PURE__ */return Object.freeze([...current,optimistic]);let next=[...current];return next[index]=optimistic,/* @__PURE__ */Object.freeze(next)});let result=await repository.write({scope:scope,granted:granted});return gen!==generation.current||setScopes(current=>{let index=current.findIndex(entry=>entry.scope===scope);if(index===-1)return current;let next=[...current];return next[index]=result.ok?settled(result.value):/* @__PURE__ */Object.freeze({...previous??blank(scope,null),saving:false,error:result.error}),/* @__PURE__ */Object.freeze(next)}),result},[repository,userRef]);return useMemo(()=>({status:status,scopes:scopes,error:error,setConsent:setConsent,refresh:readAll}),[status,scopes,error,setConsent,readAll])}function reportHostFailure(error){let globalConsole=globalThis.console;try{globalConsole?.error?.("[everfur] A host callback threw; the SDK ignored it.",error)}catch{}}function isThenable(value){return(typeof value=="object"||typeof value=="function")&&value!==null&&typeof value.then=="function"}function callHost(fn,...args){if(typeof fn=="function")try{let result=fn(...args);return isThenable(result)&&Promise.resolve(result).then(void 0,reportHostFailure),result}catch(error){reportHostFailure(error);return}}var GUARDED=/* @__PURE__ */new WeakMap;function guardHost(fn){if(typeof fn!="function")return;let cached=GUARDED.get(fn);if(cached!==void 0)return cached;let guarded=(...args)=>{callHost(fn,...args)};return GUARDED.set(fn,guarded),guarded}function guardHostProps(props,names){let guarded=null;for(let name of names){let fn=props[name];typeof fn=="function"&&(guarded??={...props},guarded[name]=guardHost(fn))}return guarded??props}var HostRenderBoundary=class extends Component{constructor(){super(...arguments);this.state={failed:false,key:this.props.resetKey}}static getDerivedStateFromError(){return{failed:true}}static getDerivedStateFromProps(props,state){return Object.is(props.resetKey,state.key)?null:{failed:false,key:props.resetKey}}render(){return this.state.failed?this.props.fallback:this.props.children}};function RenderHost({render:render}){return render()}function HostRender({render:render,fallback:fallback,resetKey:resetKey}){return createElement(HostRenderBoundary,{fallback:fallback,resetKey:resetKey,children:createElement(RenderHost,{render:render})})}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)"};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});var EVERFUR_THEME_CONTEXT_SYMBOL=/* @__PURE__ */Symbol.for("@everfur/sdk#EverfurThemeContext@v1"),globalThemeHost=globalThis,EverfurThemeContext=globalThemeHost[EVERFUR_THEME_CONTEXT_SYMBOL]??(globalThemeHost[EVERFUR_THEME_CONTEXT_SYMBOL]=createContext(EVERFUR_LIGHT));EverfurThemeContext.displayName??="EverfurThemeContext";function useEverfurTheme(){return useContext(EverfurThemeContext)}var FACE_WEIGHT=/* @__PURE__ */Object.freeze({regular:"regular",medium:"medium",bold:"bold",mono:"regular",monoMedium:"medium",monoBold:"bold"});var SYSTEM_UI_STACK='system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif',RN_SYSTEM_FAMILY="System";function cssFontFamily(family){let named=family.trim();return named.length===0||named===RN_SYSTEM_FAMILY?SYSTEM_UI_STACK:`${quote(named)}, ${SYSTEM_UI_STACK}`}function cssMonoFamily(mono){let named=mono.trim();return named.length===0||named==="monospace"?"ui-monospace, Menlo, Consolas, monospace":`${quote(named)}, ui-monospace, Menlo, Consolas, monospace`}function quote(family){return`"${family.replace(/[\\"]/g,"\\$&")}"`}function faceCss(theme,weight){let type=theme.type,family=type.families[weight];return{fontFamily:weight==="mono"||weight==="monoMedium"||weight==="monoBold"?cssMonoFamily(family):cssFontFamily(family),fontWeight:type.namedFaces[weight]?type.weight.regular:type.weight[FACE_WEIGHT[weight]]}}function EverfurConsentToggle(props){let{scope:scope,onChange:onChange,renderNotice:renderNotice,style:style,className:className}=guardHostProps(props,["onChange"]),theme=useEverfurTheme(),styles=useMemo(()=>makeStyles(theme),[theme]),consent=useEverfurConsent({scopes:[scope]}),view=consentRowView(consent,scope),copy=CONSENT_SCOPE_COPY[scope],[attempt,setAttempt]=useState(null),decide=useCallback(async granted=>{setAttempt(granted);let result=await consent.setConsent(scope,granted);result.ok&&(setAttempt(null),onChange?.(result.value.granted))},[consent,onChange,scope]),notice=(error,onRetry)=>/* @__PURE__ */jsxs("div",{style:styles.notice,children:[
97
+ /* @__PURE__ */jsx(HostRender,{resetKey:error,render:()=>renderNotice?renderNotice(error):/* @__PURE__ */jsx("p",{style:styles.noticeText,children:error.displayMessage}),fallback:/* @__PURE__ */jsx("p",{style:styles.noticeText,children:error.displayMessage})}),
98
+ /* @__PURE__ */jsx("button",{type:"button",onClick:onRetry,style:styles.retry,children:CONSENT_COPY.retry})]});if(view.kind==="signedOut")/* @__PURE__ */
99
+ return jsxs("div",{className:className,style:{...styles.container,...style},children:[
100
+ /* @__PURE__ */jsx("p",{style:styles.title,children:copy.title}),
101
+ /* @__PURE__ */jsx("p",{style:styles.body,children:CONSENT_COPY.signedOut})]});if(view.kind==="loading")/* @__PURE__ */
102
+ return jsx("div",{className:className,style:{...styles.container,...style},role:"status","aria-busy":"true","aria-label":CONSENT_COPY.loading,children:/* @__PURE__ */jsx("p",{style:styles.title,children:copy.title})});if(view.kind==="failed")/* @__PURE__ */
103
+ return jsxs("div",{className:className,style:{...styles.container,...style},children:[
104
+ /* @__PURE__ */jsx("p",{style:styles.title,children:copy.title}),notice(view.error,()=>{consent.refresh()})]});let label=`${copy.title}. ${copy.body(theme.meta.displayName)}`;/* @__PURE__ */
105
+ return jsxs("div",{className:className,style:{...styles.container,...style},children:[
106
+ /* @__PURE__ */jsxs("div",{style:{...styles.row,...view.granted?styles.rowChecked:null},children:[
107
+ /* @__PURE__ */jsx("input",{type:"checkbox",checked:view.granted,disabled:view.saving,"aria-label":label,"aria-busy":view.saving?"true":void 0,onChange:event=>{decide(event.currentTarget.checked)},style:styles.box}),
108
+ /* @__PURE__ */jsxs("div",{style:styles.copy,children:[
109
+ /* @__PURE__ */jsx("p",{style:styles.title,children:copy.title}),
110
+ /* @__PURE__ */jsx("p",{style:styles.body,children:copy.body(theme.meta.displayName)}),
111
+ /* @__PURE__ */jsx("p",{style:styles.footnote,children:CONSENT_COPY.changeable})]})]}),view.error===null?null:notice(view.error,()=>{decide(attempt??!view.granted)})]})}function makeStyles(theme){let{color:color,radius:radius,space:space,type:type}=theme,caption=`${Math.round(type.size.caption*type.lineHeight.snug)}px`;return{container:{boxSizing:"border-box",display:"flex",flexDirection:"column",gap:space.sm,padding:`${space.md}px ${space.lg}px`},row:{boxSizing:"border-box",display:"flex",alignItems:"flex-start",gap:space.md,borderRadius:radius.md,border:`1px solid ${color.brandBorder}`,backgroundColor:color.surface,padding:space.lg},rowChecked:{border:`1px solid ${color.brandInk}`,backgroundColor:color.brandSoft},box:{width:24,height:24,minWidth:24,minHeight:24,margin:0,accentColor:color.brand,cursor:"pointer"},copy:{display:"flex",flexDirection:"column",gap:space.xs},title:{margin:0,...faceCss(theme,"bold"),fontSize:type.size.body,lineHeight:`${Math.round(type.size.body*type.lineHeight.snug)}px`,color:color.text.primary},body:{margin:0,...faceCss(theme,"regular"),fontSize:type.size.caption,lineHeight:caption,color:color.text.secondary},footnote:{margin:0,...faceCss(theme,"regular"),fontSize:type.size.caption,lineHeight:caption,color:color.text.muted},notice:{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:space.xs,paddingTop:space.xs},noticeText:{margin:0,...faceCss(theme,"regular"),fontSize:type.size.caption,lineHeight:caption,color:color.errorRed},retry:{minHeight:44,padding:`0 ${space.sm}px`,border:"none",background:"none",cursor:"pointer",...faceCss(theme,"bold"),fontSize:type.size.caption,color:color.linkInk}}}export{CONSENT_COPY,CONSENT_SCOPE_COPY,CONSENT_VERSION_MAX,EVERFUR_CONSENT_SCOPES,EverfurConsentToggle,consentRowView,createConsentRepository,createConsentRepositoryOver,isEverfurConsentScope,useEverfurConsent,useEverfurConsentRepository};