@everfur/sdk 0.12.1 → 0.13.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 (268) hide show
  1. package/CHANGELOG.md +166 -0
  2. package/README.md +2 -1
  3. package/dist/{Chat-CbyZ1vAX.d.cts → Chat.d-DUNTfzqC.d.ts} +170 -8
  4. package/dist/{Chat-CgYQdfqi.d.ts → Chat.d-Dts8u_1a.d.cts} +170 -8
  5. package/dist/{DepthViews-CaQUyCHK.d.ts → DepthViews.d-BIp599lz.d.cts} +1 -1
  6. package/dist/{DepthViews-CCz4ig0u.d.ts → DepthViews.d-BMU2jFPw.d.cts} +1 -1
  7. package/dist/{DepthViews-D3OiIK_x.d.cts → DepthViews.d-Ce2Zhnrb.d.ts} +1 -1
  8. package/dist/{DepthViews-iGZi4_WK.d.cts → DepthViews.d-CubkMPbU.d.ts} +1 -1
  9. package/dist/{ErrorPolicyPort-10s3HJCt.d.cts → ErrorPolicyPort.d-68yrE3BE.d.ts} +1 -1
  10. package/dist/{ErrorPolicyPort-C3nNSS_j.d.ts → ErrorPolicyPort.d-DirW9hgO.d.cts} +1 -1
  11. package/dist/{EverfurError-DeBqRpQV.d.cts → EverfurError.d-8NHtlgzA.d.cts} +11 -1
  12. package/dist/{EverfurError-DeBqRpQV.d.ts → EverfurError.d-8NHtlgzA.d.ts} +11 -1
  13. package/dist/{EverfurResult-ClPTS0P2.d.ts → EverfurResult.d-BFH-3s6E.d.cts} +1 -1
  14. package/dist/{EverfurResult-COlXj1wq.d.cts → EverfurResult.d-D_-254ZY.d.ts} +1 -1
  15. package/dist/{IntakeMedia-BH0fYDT2.d.cts → IntakeMedia.d-4a89XrP7.d.ts} +1 -1
  16. package/dist/{IntakeMedia-B-_vA9ZB.d.cts → IntakeMedia.d-DGxrhgIW.d.ts} +1 -1
  17. package/dist/{IntakeMedia-CIoTXAWs.d.ts → IntakeMedia.d-DUPR4lVM.d.cts} +1 -1
  18. package/dist/{IntakeMedia-Bavl7E4Z.d.ts → IntakeMedia.d-JJCUvQu7.d.cts} +1 -1
  19. package/dist/LifecyclePort.d-Cr1p33a7.d.cts +23 -0
  20. package/dist/LifecyclePort.d-Cr1p33a7.d.ts +23 -0
  21. package/dist/{PhotoController-vzY5bfY_.d.ts → PhotoController.d-BzCJOE7e.d.cts} +2 -2
  22. package/dist/{PhotoController-3l7MT9jA.d.cts → PhotoController.d-D0XiUUOl.d.ts} +2 -2
  23. package/dist/animations/index.cjs +4 -1
  24. package/dist/animations/index.d.cts +24 -24
  25. package/dist/animations/index.d.ts +24 -24
  26. package/dist/animations/index.js +4 -1
  27. package/dist/{attachments-DkMrKCIU.d.ts → attachments.d-Bp2qbHxn.d.cts} +22 -26
  28. package/dist/{attachments-CTJK0jQ4.d.ts → attachments.d-D1yhJjcZ.d.ts} +4 -4
  29. package/dist/{attachments-DXBETOrV.d.cts → attachments.d-DisnvB9R.d.cts} +4 -4
  30. package/dist/{attachments-BOk3hEAM.d.cts → attachments.d-Djy9z_0Z.d.ts} +22 -26
  31. package/dist/{bookingCopy-C_a45T4-.d.ts → bookingCopy.d-BJF6gd1A.d.ts} +24 -9
  32. package/dist/{bookingCopy-CHYGYHe0.d.cts → bookingCopy.d-BlBmhAJc.d.cts} +24 -9
  33. package/dist/{branding-DJf4h12Q.d.ts → branding.d-DI8S400y.d.cts} +9 -2
  34. package/dist/{branding-BCfwLj0h.d.cts → branding.d-OIGLbQeM.d.ts} +9 -2
  35. package/dist/{callRoom-BhIdadyV.d.cts → callRoom.d-B1DoYdJe.d.cts} +1 -1
  36. package/dist/{callRoom-B92eH_ij.d.ts → callRoom.d-Dqm1rUqT.d.ts} +1 -1
  37. package/dist/{casesRepository-C8KJmlxE.d.cts → casesRepository.d-CT2LTicS.d.cts} +3 -3
  38. package/dist/{casesRepository-iAi5qWnx.d.ts → casesRepository.d-UsWOz9bv.d.ts} +3 -3
  39. package/dist/chat/index.cjs +131 -57
  40. package/dist/chat/index.d.cts +18 -16
  41. package/dist/chat/index.d.ts +18 -16
  42. package/dist/chat/index.js +132 -58
  43. package/dist/client/index.cjs +14 -10
  44. package/dist/client/index.d.cts +19 -18
  45. package/dist/client/index.d.ts +19 -18
  46. package/dist/client/index.js +14 -10
  47. package/dist/{config-C9zhanL-.d.cts → config.d-BR3DT9ho.d.cts} +3 -3
  48. package/dist/{config-C5iPNKDj.d.ts → config.d-Dy6igYlH.d.ts} +3 -3
  49. package/dist/consent/index.cjs +4 -1
  50. package/dist/consent/index.d.cts +10 -10
  51. package/dist/consent/index.d.ts +10 -10
  52. package/dist/consent/index.js +4 -1
  53. package/dist/{context-BUIrC20Z.d.ts → context.d-Cwks0p3C.d.cts} +15 -15
  54. package/dist/{context-D_bcpHDA.d.cts → context.d-QcCgguzA.d.ts} +15 -15
  55. package/dist/{copy-KbCU9fen.d.ts → copy.d-CiMn2IIt.d.ts} +6 -6
  56. package/dist/{copy-BE31T2jR.d.cts → copy.d-DLJTyRfT.d.cts} +6 -6
  57. package/dist/core/index.cjs +16 -13
  58. package/dist/core/index.d.cts +33 -29
  59. package/dist/core/index.d.ts +33 -29
  60. package/dist/core/index.js +16 -13
  61. package/dist/{depth-DNxDieoO.d.cts → depth.d-CjPGVPDL.d.cts} +9 -115
  62. package/dist/{depth-DDKGfFaB.d.ts → depth.d-OSALbYM7.d.ts} +9 -115
  63. package/dist/{entitlementRepository-C1_wXIE3.d.cts → entitlementRepository.d-CVQa1DA1.d.cts} +10 -5
  64. package/dist/{entitlementRepository-CYtdIGfH.d.ts → entitlementRepository.d-Cf3LbTwD.d.ts} +10 -5
  65. package/dist/features.d-fNsGcg0R.d.cts +108 -0
  66. package/dist/features.d-fNsGcg0R.d.ts +108 -0
  67. package/dist/focus.d-DMg2ngHI.d.ts +1178 -0
  68. package/dist/focus.d-az9cqUz3.d.cts +1178 -0
  69. package/dist/health-plan/index.cjs +370 -0
  70. package/dist/health-plan/index.d.cts +251 -0
  71. package/dist/health-plan/index.d.ts +251 -0
  72. package/dist/health-plan/index.js +370 -0
  73. package/dist/idempotency.d-D461_DPD.d.cts +910 -0
  74. package/dist/idempotency.d-WpXx9zQo.d.ts +910 -0
  75. package/dist/{identity-BqeaN8An.d.ts → identity.d-60LeJt_s.d.cts} +3 -3
  76. package/dist/{identity-gjurBi7m.d.cts → identity.d-DzTijonw.d.ts} +3 -3
  77. package/dist/index.cjs +140 -66
  78. package/dist/index.d.cts +31 -29
  79. package/dist/index.d.ts +31 -29
  80. package/dist/index.js +141 -67
  81. package/dist/{models-A4A5S7AG.d.cts → models.d-BagXhafD.d.ts} +8 -3
  82. package/dist/{models-CnXY5LuO.d.ts → models.d-BnLm3VAA.d.cts} +8 -3
  83. package/dist/notifications/index.cjs +4 -1
  84. package/dist/notifications/index.d.cts +9 -9
  85. package/dist/notifications/index.d.ts +9 -9
  86. package/dist/notifications/index.js +4 -1
  87. package/dist/optInView.d-CEyHR6PK.d.cts +325 -0
  88. package/dist/optInView.d-acKpV8V2.d.ts +325 -0
  89. package/dist/parse.d-C8CXyS58.d.ts +210 -0
  90. package/dist/parse.d-tEzufgJX.d.cts +210 -0
  91. package/dist/{pets-CfutxNs9.d.cts → pets.d-C_53_fzo.d.ts} +3 -3
  92. package/dist/{pets-LIGadUtr.d.ts → pets.d-NbJvP_kh.d.cts} +3 -3
  93. package/dist/{petsRepository-Cqpd3hLU.d.cts → petsRepository.d-BuGHymNx.d.ts} +4 -4
  94. package/dist/{petsRepository-CoRa3C_U.d.ts → petsRepository.d-lp1BHRqM.d.cts} +4 -4
  95. package/dist/photo/index.cjs +5 -2
  96. package/dist/photo/index.d.cts +9 -9
  97. package/dist/photo/index.d.ts +9 -9
  98. package/dist/photo/index.js +5 -2
  99. package/dist/{ports-BN6RHF9W.d.cts → ports.d-BX4f4UsB.d.cts} +14 -1
  100. package/dist/{ports-BN6RHF9W.d.ts → ports.d-BX4f4UsB.d.ts} +14 -1
  101. package/dist/{ports-gJ3faaWz.d.cts → ports.d-CEROoqnA.d.cts} +16 -10
  102. package/dist/{ports-CVi3n0re.d.ts → ports.d-COIyN624.d.ts} +16 -10
  103. package/dist/presentation.d-DMbdad7G.d.cts +90 -0
  104. package/dist/presentation.d-DMbdad7G.d.ts +90 -0
  105. package/dist/records/depth/index.cjs +10 -7
  106. package/dist/records/depth/index.d.cts +14 -12
  107. package/dist/records/depth/index.d.ts +14 -12
  108. package/dist/records/depth/index.js +10 -7
  109. package/dist/records/index.cjs +224 -62
  110. package/dist/records/index.d.cts +159 -20
  111. package/dist/records/index.d.ts +159 -20
  112. package/dist/records/index.js +224 -62
  113. package/dist/recordsAsk.d-C5CGSi3j.d.cts +14 -0
  114. package/dist/recordsAsk.d-C5CGSi3j.d.ts +14 -0
  115. package/dist/{requestFunnel-BYzlyaC0.d.ts → requestFunnel.d-CXUMPw1K.d.ts} +5 -5
  116. package/dist/{requestFunnel-DLZpiFD3.d.cts → requestFunnel.d-DWQQpjFR.d.cts} +5 -5
  117. package/dist/{resolve-D4Ywz5OS.d.ts → resolve.d-jI8FmBj3.d.cts} +3 -3
  118. package/dist/{resolve-D4Ywz5OS.d.cts → resolve.d-jI8FmBj3.d.ts} +3 -3
  119. package/dist/{runtimeTypes-BxxCKMn8.d.cts → runtimeTypes.d-4yFNNuYR.d.ts} +20 -13
  120. package/dist/{runtimeTypes-Doa_xxSa.d.ts → runtimeTypes.d-D6N_fhxx.d.cts} +20 -13
  121. package/dist/server/events/index.cjs +6 -3
  122. package/dist/server/events/index.d.cts +51 -9
  123. package/dist/server/events/index.d.ts +51 -9
  124. package/dist/server/events/index.js +6 -3
  125. package/dist/server/index.cjs +11 -6
  126. package/dist/server/index.d.cts +152 -8
  127. package/dist/server/index.d.ts +152 -8
  128. package/dist/server/index.js +11 -6
  129. package/dist/sheetCopy.d-CAhLOxjc.d.cts +4 -0
  130. package/dist/sheetCopy.d-CAhLOxjc.d.ts +4 -0
  131. package/dist/sheetSeam.d-Cviqk89n.d.ts +45 -0
  132. package/dist/sheetSeam.d-DCS3LW8g.d.cts +45 -0
  133. package/dist/shop/index.cjs +262 -0
  134. package/dist/shop/index.d.cts +193 -0
  135. package/dist/shop/index.d.ts +193 -0
  136. package/dist/shop/index.js +262 -0
  137. package/dist/televet/booking/index.cjs +15 -12
  138. package/dist/televet/booking/index.d.cts +36 -22
  139. package/dist/televet/booking/index.d.ts +36 -22
  140. package/dist/televet/booking/index.js +15 -12
  141. package/dist/televet/call/index.d.cts +5 -5
  142. package/dist/televet/call/index.d.ts +5 -5
  143. package/dist/televet/index.cjs +6 -3
  144. package/dist/televet/index.d.cts +12 -12
  145. package/dist/televet/index.d.ts +12 -12
  146. package/dist/televet/index.js +6 -3
  147. package/dist/{televetGlobal-C5dTUACe.d.cts → televetGlobal.d-CC-DrqkQ.d.ts} +7 -2
  148. package/dist/{televetGlobal-CnjrfhT4.d.ts → televetGlobal.d-CKwDCbmN.d.cts} +7 -2
  149. package/dist/testing/index.cjs +6 -3
  150. package/dist/testing/index.d.cts +3 -3
  151. package/dist/testing/index.d.ts +3 -3
  152. package/dist/testing/index.js +6 -3
  153. package/dist/testing/rn/index.cjs +4 -1
  154. package/dist/testing/rn/index.d.cts +23 -22
  155. package/dist/testing/rn/index.d.ts +23 -22
  156. package/dist/testing/rn/index.js +4 -1
  157. package/dist/testing/web/index.cjs +4 -1
  158. package/dist/testing/web/index.d.cts +23 -22
  159. package/dist/testing/web/index.d.ts +23 -22
  160. package/dist/testing/web/index.js +4 -1
  161. package/dist/texting/index.cjs +158 -0
  162. package/dist/texting/index.d.cts +36 -0
  163. package/dist/texting/index.d.ts +36 -0
  164. package/dist/texting/index.js +158 -0
  165. package/dist/threadOptions.d-B1pTMmDF.d.cts +260 -0
  166. package/dist/threadOptions.d-B1pTMmDF.d.ts +260 -0
  167. package/dist/{timelineRows-CGOlC_Q9.d.ts → timelineRows.d-BNxgzYRW.d.cts} +1 -1
  168. package/dist/{timelineRows-Beun96e2.d.cts → timelineRows.d-CU5GvvLk.d.ts} +1 -1
  169. package/dist/{tokens-DLj8OnLH.d.cts → tokens.d-DarDaV39.d.cts} +10 -2
  170. package/dist/{tokens-DLj8OnLH.d.ts → tokens.d-DarDaV39.d.ts} +10 -2
  171. package/dist/{typeStyle-BxVyF71R.d.ts → typeStyle.d-Bl8pzbBy.d.cts} +2 -2
  172. package/dist/{typeStyle-DJedEu14.d.cts → typeStyle.d-C1HBRAI3.d.ts} +2 -2
  173. package/dist/{uploadTransport-C6kGP1Kd.d.ts → uploadTransport.d-CWL7CdWP.d.cts} +1 -1
  174. package/dist/{uploadTransport-BM_pnEWj.d.cts → uploadTransport.d-EGoUl7gX.d.ts} +1 -1
  175. package/dist/usePresentation.d-D6qsFzBz.d.cts +9 -0
  176. package/dist/usePresentation.d-DuGQe_Do.d.ts +9 -0
  177. package/dist/useRecords.d-Cb-36SF5.d.cts +121 -0
  178. package/dist/useRecords.d-aQTzQZoV.d.ts +121 -0
  179. package/dist/{useRecordsDepth-hR94debv.d.ts → useRecordsDepth.d-DFcCfiXm.d.ts} +8 -20
  180. package/dist/{useRecordsDepth-DRrJntjt.d.cts → useRecordsDepth.d-sAq2Qkhr.d.cts} +8 -20
  181. package/dist/{useVetVisit-DmWa7lt1.d.ts → useVetVisit.d-BtdwhmgD.d.cts} +15 -4
  182. package/dist/{useVetVisit-PtBjNwZr.d.cts → useVetVisit.d-DoYQimyt.d.ts} +15 -4
  183. package/dist/video/index.cjs +5 -2
  184. package/dist/video/index.d.cts +7 -7
  185. package/dist/video/index.d.ts +7 -7
  186. package/dist/video/index.js +5 -2
  187. package/dist/{view-C_B5U04g.d.ts → view.d-C-SNpDJX.d.ts} +10 -122
  188. package/dist/{view-VvLEdXP4.d.cts → view.d-Dps5C8-s.d.cts} +10 -122
  189. package/dist/web/consent/index.cjs +4 -1
  190. package/dist/web/consent/index.d.cts +10 -10
  191. package/dist/web/consent/index.d.ts +10 -10
  192. package/dist/web/consent/index.js +4 -1
  193. package/dist/web/health-plan/index.cjs +414 -0
  194. package/dist/web/health-plan/index.d.cts +335 -0
  195. package/dist/web/health-plan/index.d.ts +335 -0
  196. package/dist/web/health-plan/index.js +414 -0
  197. package/dist/web/index.cjs +149 -82
  198. package/dist/web/index.d.cts +152 -38
  199. package/dist/web/index.d.ts +152 -38
  200. package/dist/web/index.js +149 -82
  201. package/dist/web/notifications/index.cjs +15 -3
  202. package/dist/web/notifications/index.d.cts +39 -209
  203. package/dist/web/notifications/index.d.ts +39 -209
  204. package/dist/web/notifications/index.js +15 -3
  205. package/dist/web/records/depth/index.cjs +10 -7
  206. package/dist/web/records/depth/index.d.cts +14 -12
  207. package/dist/web/records/depth/index.d.ts +14 -12
  208. package/dist/web/records/depth/index.js +10 -7
  209. package/dist/web/records/index.cjs +94 -68
  210. package/dist/web/records/index.d.cts +66 -21
  211. package/dist/web/records/index.d.ts +66 -21
  212. package/dist/web/records/index.js +94 -68
  213. package/dist/web/records/upload/index.d.cts +2 -2
  214. package/dist/web/records/upload/index.d.ts +2 -2
  215. package/dist/web/records-sheet/index.cjs +278 -0
  216. package/dist/web/records-sheet/index.d.cts +102 -0
  217. package/dist/web/records-sheet/index.d.ts +102 -0
  218. package/dist/web/records-sheet/index.js +278 -0
  219. package/dist/web/shop/index.cjs +301 -0
  220. package/dist/web/shop/index.d.cts +42 -0
  221. package/dist/web/shop/index.d.ts +42 -0
  222. package/dist/web/shop/index.js +301 -0
  223. package/dist/web/televet/booking/index.cjs +15 -12
  224. package/dist/web/televet/booking/index.d.cts +37 -23
  225. package/dist/web/televet/booking/index.d.ts +37 -23
  226. package/dist/web/televet/booking/index.js +15 -12
  227. package/dist/web/televet/call/index.d.cts +4 -4
  228. package/dist/web/televet/call/index.d.ts +4 -4
  229. package/dist/web/televet/index.cjs +6 -3
  230. package/dist/web/televet/index.d.cts +12 -12
  231. package/dist/web/televet/index.d.ts +12 -12
  232. package/dist/web/televet/index.js +6 -3
  233. package/dist/web/texting/index.cjs +157 -0
  234. package/dist/web/texting/index.d.cts +36 -0
  235. package/dist/web/texting/index.d.ts +36 -0
  236. package/dist/web/texting/index.js +157 -0
  237. package/health-plan/package.json +8 -0
  238. package/package.json +106 -4
  239. package/shop/package.json +8 -0
  240. package/texting/package.json +8 -0
  241. package/web/health-plan/native-blocked.cjs +12 -0
  242. package/web/health-plan/package.json +8 -0
  243. package/web/records-sheet/native-blocked.cjs +12 -0
  244. package/web/records-sheet/package.json +8 -0
  245. package/web/shop/native-blocked.cjs +12 -0
  246. package/web/shop/package.json +8 -0
  247. package/web/texting/native-blocked.cjs +12 -0
  248. package/web/texting/package.json +8 -0
  249. /package/dist/{CameraPort-Cv31Pz7g.d.cts → CameraPort.d-Cv31Pz7g.d.cts} +0 -0
  250. /package/dist/{CameraPort-Cv31Pz7g.d.ts → CameraPort.d-Cv31Pz7g.d.ts} +0 -0
  251. /package/dist/{TelemetryPort-BDNr00hu.d.cts → TelemetryPort.d-BDNr00hu.d.cts} +0 -0
  252. /package/dist/{TelemetryPort-BDNr00hu.d.ts → TelemetryPort.d-BDNr00hu.d.ts} +0 -0
  253. /package/dist/{cacheEpoch-DknKn3S0.d.cts → cacheEpoch.d-DknKn3S0.d.cts} +0 -0
  254. /package/dist/{cacheEpoch-DknKn3S0.d.ts → cacheEpoch.d-DknKn3S0.d.ts} +0 -0
  255. /package/dist/{callCopy-Bw6oZT54.d.cts → callCopy.d-Bw6oZT54.d.cts} +0 -0
  256. /package/dist/{callCopy-Bw6oZT54.d.ts → callCopy.d-Bw6oZT54.d.ts} +0 -0
  257. /package/dist/{ids-B2GAAifq.d.cts → ids.d-B2GAAifq.d.cts} +0 -0
  258. /package/dist/{ids-B2GAAifq.d.ts → ids.d-B2GAAifq.d.ts} +0 -0
  259. /package/dist/{optionalModule-DbJmsq5f.d.cts → optionalModule.d-DbJmsq5f.d.cts} +0 -0
  260. /package/dist/{optionalModule-DbJmsq5f.d.ts → optionalModule.d-DbJmsq5f.d.ts} +0 -0
  261. /package/dist/{profile-CSs1wlXT.d.cts → profile.d-CSs1wlXT.d.cts} +0 -0
  262. /package/dist/{profile-CSs1wlXT.d.ts → profile.d-CSs1wlXT.d.ts} +0 -0
  263. /package/dist/{projection-CeIUsbSk.d.cts → projection.d-CeIUsbSk.d.cts} +0 -0
  264. /package/dist/{projection-CeIUsbSk.d.ts → projection.d-CeIUsbSk.d.ts} +0 -0
  265. /package/dist/{species-BXAIMh7I.d.cts → species.d-BXAIMh7I.d.cts} +0 -0
  266. /package/dist/{species-BXAIMh7I.d.ts → species.d-BXAIMh7I.d.ts} +0 -0
  267. /package/dist/{visitIntent-D7_yVp1I.d.cts → visitIntent.d-D7_yVp1I.d.cts} +0 -0
  268. /package/dist/{visitIntent-D7_yVp1I.d.ts → visitIntent.d-D7_yVp1I.d.ts} +0 -0
@@ -1,6 +1,6 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { StyleProp, ViewStyle } from 'react-native';
3
- import { f as RecordsScreenBaseProps } from './useRecordsDepth-DRrJntjt.cjs';
3
+ import { d as RecordsScreenBaseProps } from './useRecordsDepth.d-DFcCfiXm.js';
4
4
 
5
5
  interface EverfurRecordsDepthProps extends Pick<RecordsScreenBaseProps, 'petRef' | 'petName' | 'onNavigate' | 'onBack'> {
6
6
  readonly style?: StyleProp<ViewStyle>;
@@ -1,4 +1,4 @@
1
- import { b as EverfurErrorCode, E as EverfurError } from './EverfurError-DeBqRpQV.cjs';
1
+ import { b as EverfurErrorCode, E as EverfurError } from './EverfurError.d-8NHtlgzA.js';
2
2
 
3
3
  /**
4
4
  * Recovery policy. A host may narrow retry ceilings (e.g. a metered plan) but can never widen the SDK's
@@ -1,4 +1,4 @@
1
- import { b as EverfurErrorCode, E as EverfurError } from './EverfurError-DeBqRpQV.js';
1
+ import { b as EverfurErrorCode, E as EverfurError } from './EverfurError.d-8NHtlgzA.cjs';
2
2
 
3
3
  /**
4
4
  * Recovery policy. A host may narrow retry ceilings (e.g. a metered plan) but can never widen the SDK's
@@ -150,6 +150,16 @@ interface EverfurError {
150
150
  /** SAFE localizable copy resolved from `code` via `userFacingError` (never the raw wireMessage). */
151
151
  readonly displayMessage: string;
152
152
  }
153
+ /**
154
+ * The backend's `reason_code` on the 409 a write gets when the session belongs to a member whose Everfur account is
155
+ * linked to the partner read-only. The wire code is `ConflictException`, which folds to `conflict`, whose sentence
156
+ * ("That is already running...") is wrong here, and a retry never succeeds. The code stays `conflict` (an
157
+ * `accessDenied` would read as a consent or plan gate to the records repository), the copy becomes the existing
158
+ * access line, and the error is never retryable. See `isLinkedAccountReadOnly`.
159
+ */
160
+ declare const LINKED_ACCOUNT_READ_ONLY = "linked_account_read_only";
161
+ /** True when a write was refused because the member's Everfur account is linked to this partner read-only. */
162
+ declare function isLinkedAccountReadOnly(error: Pick<EverfurError, 'code' | 'reasonCode'> | null | undefined): boolean;
153
163
  /**
154
164
  * The ONLY function the UI may call to render an error. Returns SAFE, code-derived copy; it never returns
155
165
  * the untrusted `wireMessage`. Total over the taxonomy (an unmapped code cannot occur at the type level).
@@ -180,4 +190,4 @@ interface MakeEverfurErrorOptions {
180
190
  }
181
191
  declare function makeEverfurError(code: EverfurErrorCode, opts?: MakeEverfurErrorOptions): EverfurError;
182
192
 
183
- export { AUTO_RETRYABLE_CODES as A, BACKOFF_BASE_MS as B, type EverfurError as E, MAX_RETRY_ATTEMPTS as M, RETRYABLE_CONTRACT_CODES as R, type EverfurErrorCategory as a, type EverfurErrorCode as b, categoryFor as c, BACKOFF_CAP_MS as d, EVERFUR_ERROR_CATEGORIES as e, EVERFUR_ERROR_CODES as f, type MakeEverfurErrorOptions as g, backoffDelayMs as h, isRetryableCode as i, canRecreateOnNotFound as j, fromHttpStatus as k, fromWire as l, isAutoRetryable as m, makeEverfurError as n, shouldRetry as s, userFacingError as u };
193
+ export { AUTO_RETRYABLE_CODES as A, BACKOFF_BASE_MS as B, type EverfurError as E, LINKED_ACCOUNT_READ_ONLY as L, MAX_RETRY_ATTEMPTS as M, RETRYABLE_CONTRACT_CODES as R, type EverfurErrorCategory as a, type EverfurErrorCode as b, categoryFor as c, BACKOFF_CAP_MS as d, EVERFUR_ERROR_CATEGORIES as e, EVERFUR_ERROR_CODES as f, type MakeEverfurErrorOptions as g, backoffDelayMs as h, isRetryableCode as i, canRecreateOnNotFound as j, fromHttpStatus as k, fromWire as l, isAutoRetryable as m, isLinkedAccountReadOnly as n, makeEverfurError as o, shouldRetry as s, userFacingError as u };
@@ -150,6 +150,16 @@ interface EverfurError {
150
150
  /** SAFE localizable copy resolved from `code` via `userFacingError` (never the raw wireMessage). */
151
151
  readonly displayMessage: string;
152
152
  }
153
+ /**
154
+ * The backend's `reason_code` on the 409 a write gets when the session belongs to a member whose Everfur account is
155
+ * linked to the partner read-only. The wire code is `ConflictException`, which folds to `conflict`, whose sentence
156
+ * ("That is already running...") is wrong here, and a retry never succeeds. The code stays `conflict` (an
157
+ * `accessDenied` would read as a consent or plan gate to the records repository), the copy becomes the existing
158
+ * access line, and the error is never retryable. See `isLinkedAccountReadOnly`.
159
+ */
160
+ declare const LINKED_ACCOUNT_READ_ONLY = "linked_account_read_only";
161
+ /** True when a write was refused because the member's Everfur account is linked to this partner read-only. */
162
+ declare function isLinkedAccountReadOnly(error: Pick<EverfurError, 'code' | 'reasonCode'> | null | undefined): boolean;
153
163
  /**
154
164
  * The ONLY function the UI may call to render an error. Returns SAFE, code-derived copy; it never returns
155
165
  * the untrusted `wireMessage`. Total over the taxonomy (an unmapped code cannot occur at the type level).
@@ -180,4 +190,4 @@ interface MakeEverfurErrorOptions {
180
190
  }
181
191
  declare function makeEverfurError(code: EverfurErrorCode, opts?: MakeEverfurErrorOptions): EverfurError;
182
192
 
183
- export { AUTO_RETRYABLE_CODES as A, BACKOFF_BASE_MS as B, type EverfurError as E, MAX_RETRY_ATTEMPTS as M, RETRYABLE_CONTRACT_CODES as R, type EverfurErrorCategory as a, type EverfurErrorCode as b, categoryFor as c, BACKOFF_CAP_MS as d, EVERFUR_ERROR_CATEGORIES as e, EVERFUR_ERROR_CODES as f, type MakeEverfurErrorOptions as g, backoffDelayMs as h, isRetryableCode as i, canRecreateOnNotFound as j, fromHttpStatus as k, fromWire as l, isAutoRetryable as m, makeEverfurError as n, shouldRetry as s, userFacingError as u };
193
+ export { AUTO_RETRYABLE_CODES as A, BACKOFF_BASE_MS as B, type EverfurError as E, LINKED_ACCOUNT_READ_ONLY as L, MAX_RETRY_ATTEMPTS as M, RETRYABLE_CONTRACT_CODES as R, type EverfurErrorCategory as a, type EverfurErrorCode as b, categoryFor as c, BACKOFF_CAP_MS as d, EVERFUR_ERROR_CATEGORIES as e, EVERFUR_ERROR_CODES as f, type MakeEverfurErrorOptions as g, backoffDelayMs as h, isRetryableCode as i, canRecreateOnNotFound as j, fromHttpStatus as k, fromWire as l, isAutoRetryable as m, isLinkedAccountReadOnly as n, makeEverfurError as o, shouldRetry as s, userFacingError as u };
@@ -1,4 +1,4 @@
1
- import { E as EverfurError } from './EverfurError-DeBqRpQV.js';
1
+ import { E as EverfurError } from './EverfurError.d-8NHtlgzA.cjs';
2
2
 
3
3
  /**
4
4
  * The settle type. An async public operation returns this instead of throwing for an EXPECTED failure.
@@ -1,4 +1,4 @@
1
- import { E as EverfurError } from './EverfurError-DeBqRpQV.cjs';
1
+ import { E as EverfurError } from './EverfurError.d-8NHtlgzA.js';
2
2
 
3
3
  /**
4
4
  * The settle type. An async public operation returns this instead of throwing for an EXPECTED failure.
@@ -1,5 +1,5 @@
1
1
  import { ReactNode } from 'react';
2
- import { T as TelevetConsult } from './televetGlobal-C5dTUACe.cjs';
2
+ import { T as TelevetConsult } from './televetGlobal.d-CC-DrqkQ.js';
3
3
 
4
4
  /** The calendar entry a booked visit asks the host to write. */
5
5
  interface TelevetCalendarEvent {
@@ -1,5 +1,5 @@
1
1
  import { ReactNode } from 'react';
2
- import { T as TelevetConsult } from './televetGlobal-C5dTUACe.cjs';
2
+ import { T as TelevetConsult } from './televetGlobal.d-CC-DrqkQ.js';
3
3
 
4
4
  /**
5
5
  * The pet's own clinic, when the HOST holds it.
@@ -1,5 +1,5 @@
1
1
  import { ReactNode } from 'react';
2
- import { T as TelevetConsult } from './televetGlobal-CnjrfhT4.js';
2
+ import { T as TelevetConsult } from './televetGlobal.d-CKwDCbmN.cjs';
3
3
 
4
4
  /**
5
5
  * The pet's own clinic, when the HOST holds it.
@@ -1,5 +1,5 @@
1
1
  import { ReactNode } from 'react';
2
- import { T as TelevetConsult } from './televetGlobal-CnjrfhT4.js';
2
+ import { T as TelevetConsult } from './televetGlobal.d-CKwDCbmN.cjs';
3
3
 
4
4
  /** The calendar entry a booked visit asks the host to write. */
5
5
  interface TelevetCalendarEvent {
@@ -0,0 +1,23 @@
1
+ /**
2
+ * The host's lifecycle and connectivity signals. Each subscribe returns its own unsubscribe, which the SDK
3
+ * calls on unmount; a listener that throws is contained by the caller, never by the host.
4
+ */
5
+ interface LifecyclePort {
6
+ /**
7
+ * The host came back to the foreground. Only the real blur-to-focus edge, please: a platform that flips
8
+ * through an inactive state constantly (iOS control centre, a call banner) would otherwise turn a
9
+ * notification-shade pull into a request.
10
+ */
11
+ onForeground(listener: () => void): () => void;
12
+ /** Connectivity returned. Omit it and a deferred refresh waits for the next foreground instead. */
13
+ onOnline?(listener: () => void): () => void;
14
+ /**
15
+ * Something told the host THIS member's thread changed: the push that carried the message. Announced
16
+ * triggers are never coalesced, because that is the one case where the reader is waiting on new content.
17
+ */
18
+ onAnnounced?(listener: () => void): () => void;
19
+ /** Is the host unambiguously offline? Absent reads as online, which is exactly today's behaviour. */
20
+ isOffline?(): boolean;
21
+ }
22
+
23
+ export type { LifecyclePort as L };
@@ -0,0 +1,23 @@
1
+ /**
2
+ * The host's lifecycle and connectivity signals. Each subscribe returns its own unsubscribe, which the SDK
3
+ * calls on unmount; a listener that throws is contained by the caller, never by the host.
4
+ */
5
+ interface LifecyclePort {
6
+ /**
7
+ * The host came back to the foreground. Only the real blur-to-focus edge, please: a platform that flips
8
+ * through an inactive state constantly (iOS control centre, a call banner) would otherwise turn a
9
+ * notification-shade pull into a request.
10
+ */
11
+ onForeground(listener: () => void): () => void;
12
+ /** Connectivity returned. Omit it and a deferred refresh waits for the next foreground instead. */
13
+ onOnline?(listener: () => void): () => void;
14
+ /**
15
+ * Something told the host THIS member's thread changed: the push that carried the message. Announced
16
+ * triggers are never coalesced, because that is the one case where the reader is waiting on new content.
17
+ */
18
+ onAnnounced?(listener: () => void): () => void;
19
+ /** Is the host unambiguously offline? Absent reads as online, which is exactly today's behaviour. */
20
+ isOffline?(): boolean;
21
+ }
22
+
23
+ export type { LifecyclePort as L };
@@ -1,5 +1,5 @@
1
- import { J as JobId } from './ids-B2GAAifq.js';
2
- import { I as Interpretation } from './projection-CeIUsbSk.js';
1
+ import { J as JobId } from './ids.d-B2GAAifq.cjs';
2
+ import { I as Interpretation } from './projection.d-CeIUsbSk.cjs';
3
3
 
4
4
  /** Deterministic + semantic precheck reason codes (ground truth `everfur_common/schemas/analysis.py`). */
5
5
  type PrecheckReasonCode = 'blurry' | 'too_dark' | 'too_bright' | 'too_far' | 'too_close' | 'bad_framing' | 'low_quality' | 'wrong_modality' | 'wrong_species' | 'not_an_animal' | string;
@@ -1,5 +1,5 @@
1
- import { J as JobId } from './ids-B2GAAifq.cjs';
2
- import { I as Interpretation } from './projection-CeIUsbSk.cjs';
1
+ import { J as JobId } from './ids.d-B2GAAifq.js';
2
+ import { I as Interpretation } from './projection.d-CeIUsbSk.js';
3
3
 
4
4
  /** Deterministic + semantic precheck reason codes (ground truth `everfur_common/schemas/analysis.py`). */
5
5
  type PrecheckReasonCode = 'blurry' | 'too_dark' | 'too_bright' | 'too_far' | 'too_close' | 'bad_framing' | 'low_quality' | 'wrong_modality' | 'wrong_species' | 'not_an_animal' | string;
@@ -22,6 +22,8 @@ return Object.freeze({kind:"error",terminal:true,code:fields.code,retryable:fiel
22
22
  /* @__PURE__ */Object.freeze({wireCode:"attachment_unreadable",envelope:"http_envelope",httpStatus:400,retryable:false}),
23
23
  /* @__PURE__ */Object.freeze({wireCode:"authExpired",envelope:"http_envelope",httpStatus:401,retryable:true}),
24
24
  /* @__PURE__ */Object.freeze({wireCode:"authRejected",envelope:"http_envelope",httpStatus:401,retryable:false}),
25
+ /* @__PURE__ */Object.freeze({wireCode:"catalog_empty_refused",envelope:"http_envelope",httpStatus:409,retryable:false}),
26
+ /* @__PURE__ */Object.freeze({wireCode:"catalog_shrink_refused",envelope:"http_envelope",httpStatus:409,retryable:false}),
25
27
  /* @__PURE__ */Object.freeze({wireCode:"consent_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),
26
28
  /* @__PURE__ */Object.freeze({wireCode:"consent_required",envelope:"http_envelope",httpStatus:422,retryable:false}),
27
29
  /* @__PURE__ */Object.freeze({wireCode:"consent_scope_wrong_route",envelope:"http_envelope",httpStatus:400,retryable:false}),
@@ -46,6 +48,7 @@ return Object.freeze({kind:"error",terminal:true,code:fields.code,retryable:fiel
46
48
  /* @__PURE__ */Object.freeze({wireCode:"invalid_request",envelope:"oauth_error",httpStatus:400,retryable:false}),
47
49
  /* @__PURE__ */Object.freeze({wireCode:"invalid_scope",envelope:"oauth_error",httpStatus:400,retryable:false}),
48
50
  /* @__PURE__ */Object.freeze({wireCode:"invalid_target",envelope:"oauth_error",httpStatus:400,retryable:false}),
51
+ /* @__PURE__ */Object.freeze({wireCode:"linked_account_read_only",envelope:"http_envelope",httpStatus:409,retryable:false}),
49
52
  /* @__PURE__ */Object.freeze({wireCode:"mcp_connection_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),
50
53
  /* @__PURE__ */Object.freeze({wireCode:"mcp_request_conflict",envelope:"http_envelope",httpStatus:409,retryable:false}),
51
54
  /* @__PURE__ */Object.freeze({wireCode:"mcp_request_gone",envelope:"http_envelope",httpStatus:410,retryable:false}),
@@ -89,7 +92,7 @@ return Object.freeze({kind:"error",terminal:true,code:fields.code,retryable:fiel
89
92
  /* @__PURE__ */Object.freeze({wireCode:"verify_user_ref_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),
90
93
  /* @__PURE__ */Object.freeze({wireCode:"webhook_endpoint_update_empty",envelope:"http_envelope",httpStatus:400,retryable:false}),
91
94
  /* @__PURE__ */Object.freeze({wireCode:"webhook_endpoint_update_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),
92
- /* @__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",session_revoked:"authExpired",accessDenied:"accessDenied",invalidRequest:"sdkUpdateRequired",authRejected:"authRejected",rateLimited:"rateLimited",insufficientCapability:"accessDenied",unrestrictedKeyRequired:"accessDenied",user_ref_invalid:"validationFailed",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",runtimeDisposed:"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"RUNTIMEDISPOSED":return"runtimeDisposed";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.",VALIDATION_FAILED_COPY="Something in that request was not right. Check the details and try again.",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:VALIDATION_FAILED_COPY,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,runtimeDisposed:VALIDATION_FAILED_COPY,unknown:"Something went wrong. Please try again."}),SESSION_REVOKED_COPY="This session has ended. Please sign in again.";function displayFor(code,wireCode){return(code==="authRejected"||code==="authExpired")&&typeof wireCode=="string"&&wireCode.trim().toLowerCase()==="session_revoked"?SESSION_REVOKED_COPY:userFacingError(code)}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:displayFor(code,opts?.wireCode)};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)}var REQUIRES=/* @__PURE__ */Object.freeze({chat:/* @__PURE__ */Object.freeze(["chat.message.create"]),records:/* @__PURE__ */Object.freeze(["records.upload.create","records.record.read"]),recordsClinic:/* @__PURE__ */Object.freeze(["records.clinic.create"]),video:/* @__PURE__ */Object.freeze(["video.gait.execute"]),photo:/* @__PURE__ */Object.freeze(["photo.checkup.execute"]),animations:/* @__PURE__ */Object.freeze(["animations.state.read"]),televet:/* @__PURE__ */Object.freeze(["televet.visit.create"])});function requires(name){return REQUIRES[name]}function decideCapability(name,decisions,opts){let keys=requires(name),byResource=/* @__PURE__ */new Map;for(let decision of decisions)byResource.set(decision.resource,decision);if(opts?.isPending===true&&keys.some(key=>!byResource.has(key)))return freezeDecision({name:name,enabled:false,isPending:true,limits:{}});let limits=mergeLimits(keys,byResource);return keys.filter(key=>byResource.get(key)?.granted!==true).length===0?freezeDecision({name:name,enabled:true,isPending:false,limits:limits}):freezeDecision({name:name,enabled:false,isPending:false,limits:limits,disabled:disabledFor(keys,byResource)})}function mergeLimits(keys,byResource){let out={};for(let key of keys){let decisionLimits=byResource.get(key)?.limits;if(decisionLimits)for(let[limitKey,limitValue]of Object.entries(decisionLimits)){let existing=out[limitKey];out[limitKey]=existing===void 0?limitValue:Math.min(existing,limitValue)}}return out}function disabledFor(keys,byResource){for(let key of keys){let explicit=byResource.get(key)?.disabled;if(explicit)/* @__PURE__ */
95
+ /* @__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",session_revoked:"authExpired",accessDenied:"accessDenied",invalidRequest:"sdkUpdateRequired",authRejected:"authRejected",rateLimited:"rateLimited",insufficientCapability:"accessDenied",unrestrictedKeyRequired:"accessDenied",user_ref_invalid:"validationFailed",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",linked_account_read_only:"conflict",catalog_empty_refused:"conflict",catalog_shrink_refused:"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",runtimeDisposed:"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"RUNTIMEDISPOSED":return"runtimeDisposed";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.",VALIDATION_FAILED_COPY="Something in that request was not right. Check the details and try again.",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:VALIDATION_FAILED_COPY,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,runtimeDisposed:VALIDATION_FAILED_COPY,unknown:"Something went wrong. Please try again."}),SESSION_REVOKED_COPY="This session has ended. Please sign in again.",LINKED_ACCOUNT_READ_ONLY="linked_account_read_only";function displayFor(code,wireCode,reasonCode){return code==="conflict"&&reasonCode===LINKED_ACCOUNT_READ_ONLY?ACCESS_DENIED_COPY:(code==="authRejected"||code==="authExpired")&&typeof wireCode=="string"&&wireCode.trim().toLowerCase()==="session_revoked"?SESSION_REVOKED_COPY:userFacingError(code)}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),linkedReadOnly=code==="conflict"&&opts?.reasonCode===LINKED_ACCOUNT_READ_ONLY,error={code:code,category:categoryFor(code),retryable:opts?.retryable??(linkedReadOnly?false:isRetryableCode(code)),displayMessage:displayFor(code,opts?.wireCode,linkedReadOnly?LINKED_ACCOUNT_READ_ONLY:null)};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)}var REQUIRES=/* @__PURE__ */Object.freeze({chat:/* @__PURE__ */Object.freeze(["chat.message.create"]),records:/* @__PURE__ */Object.freeze(["records.upload.create","records.record.read"]),recordsClinic:/* @__PURE__ */Object.freeze(["records.clinic.create"]),video:/* @__PURE__ */Object.freeze(["video.gait.execute"]),photo:/* @__PURE__ */Object.freeze(["photo.checkup.execute"]),animations:/* @__PURE__ */Object.freeze(["animations.state.read"]),televet:/* @__PURE__ */Object.freeze(["televet.visit.create"]),texting:/* @__PURE__ */Object.freeze(["sms.identity.read","sms.identity.update"]),healthPlan:/* @__PURE__ */Object.freeze(["shop.plan.read","shop.plan.update"])});function requires(name){return REQUIRES[name]}function decideCapability(name,decisions,opts){let keys=requires(name),byResource=/* @__PURE__ */new Map;for(let decision of decisions)byResource.set(decision.resource,decision);if(opts?.isPending===true&&keys.some(key=>!byResource.has(key)))return freezeDecision({name:name,enabled:false,isPending:true,limits:{}});let limits=mergeLimits(keys,byResource);return keys.filter(key=>byResource.get(key)?.granted!==true).length===0?freezeDecision({name:name,enabled:true,isPending:false,limits:limits}):freezeDecision({name:name,enabled:false,isPending:false,limits:limits,disabled:disabledFor(keys,byResource)})}function mergeLimits(keys,byResource){let out={};for(let key of keys){let decisionLimits=byResource.get(key)?.limits;if(decisionLimits)for(let[limitKey,limitValue]of Object.entries(decisionLimits)){let existing=out[limitKey];out[limitKey]=existing===void 0?limitValue:Math.min(existing,limitValue)}}return out}function disabledFor(keys,byResource){for(let key of keys){let explicit=byResource.get(key)?.disabled;if(explicit)/* @__PURE__ */
93
96
  return Object.freeze({reason:explicit.reason,level:explicit.level,recoverable:explicit.recoverable})}/* @__PURE__ */
94
97
  return Object.freeze({reason:userFacingError("accessDenied"),level:"user_entitlement",recoverable:false})}function freezeDecision(d){let base={name:d.name,enabled:d.enabled,isPending:d.isPending,limits:/* @__PURE__ */Object.freeze({...d.limits})};return d.disabled!==void 0&&(base.disabled=d.disabled),/* @__PURE__ */Object.freeze(base)}function ok(value,warning){/* @__PURE__ */
95
98
  return Object.freeze({ok:true,value:value})}function err(error){/* @__PURE__ */
@@ -1,19 +1,19 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { StyleProp, ViewStyle } from 'react-native';
3
- import { E as EverfurResult } from '../EverfurResult-COlXj1wq.cjs';
4
- import { A as AuthContext } from '../identity-gjurBi7m.cjs';
5
- export { I as IdentityProvider, n as newSessionId } from '../identity-gjurBi7m.cjs';
6
- import { P as PetRef } from '../ids-B2GAAifq.cjs';
7
- export { B as Brand, U as UserRef, _ as __brand } from '../ids-B2GAAifq.cjs';
3
+ import { E as EverfurResult } from '../EverfurResult.d-BFH-3s6E.cjs';
4
+ import { A as AuthContext } from '../identity.d-60LeJt_s.cjs';
5
+ export { I as IdentityProvider, n as newSessionId } from '../identity.d-60LeJt_s.cjs';
6
+ import { P as PetRef } from '../ids.d-B2GAAifq.cjs';
7
+ export { B as Brand, U as UserRef, _ as __brand } from '../ids.d-B2GAAifq.cjs';
8
8
  import { z } from 'zod';
9
- import { K as KvPort, C as CacheEpochGuard, I as ImageCachePort } from '../cacheEpoch-DknKn3S0.cjs';
10
- export { a as CACHE_EPOCH_STORAGE_KEY, c as createCacheEpochGuard } from '../cacheEpoch-DknKn3S0.cjs';
11
- import { T as TelemetryPort } from '../TelemetryPort-BDNr00hu.cjs';
12
- import { E as EverfurError } from '../EverfurError-DeBqRpQV.cjs';
13
- export { a as EverfurErrorCategory, b as EverfurErrorCode } from '../EverfurError-DeBqRpQV.cjs';
14
- import { D as DisabledLevel, a as CapabilityDecision } from '../resolve-D4Ywz5OS.cjs';
15
- export { b as CapabilityDisabled, C as CapabilityName } from '../resolve-D4Ywz5OS.cjs';
16
- export { A as AcceptedFrame, a as AnalysisCompleteFrame, b as AnalysisStartedFrame, D as DeltaFrame, c as DoneFrame, E as ErrorFrame, d as EverfurRequest, e as EverfurRequestBase, F as Frame, f as FrameBase, g as FrameKind, H as HeartbeatFrame, h as HttpMethod, M as MultipartBody, T as TransportPort, U as UnknownFrame, i as UrgencyLevel } from '../config-C9zhanL-.cjs';
9
+ import { K as KvPort, C as CacheEpochGuard, I as ImageCachePort } from '../cacheEpoch.d-DknKn3S0.cjs';
10
+ export { a as CACHE_EPOCH_STORAGE_KEY, c as createCacheEpochGuard } from '../cacheEpoch.d-DknKn3S0.cjs';
11
+ import { T as TelemetryPort } from '../TelemetryPort.d-BDNr00hu.cjs';
12
+ import { E as EverfurError } from '../EverfurError.d-8NHtlgzA.cjs';
13
+ export { a as EverfurErrorCategory, b as EverfurErrorCode } from '../EverfurError.d-8NHtlgzA.cjs';
14
+ import { D as DisabledLevel, C as CapabilityDecision } from '../resolve.d-jI8FmBj3.cjs';
15
+ export { b as CapabilityDisabled, a as CapabilityName } from '../resolve.d-jI8FmBj3.cjs';
16
+ export { A as AcceptedFrame, a as AnalysisCompleteFrame, b as AnalysisStartedFrame, D as DeltaFrame, c as DoneFrame, E as ErrorFrame, d as EverfurRequest, e as EverfurRequestBase, F as Frame, f as FrameBase, g as FrameKind, H as HeartbeatFrame, h as HttpMethod, M as MultipartBody, T as TransportPort, U as UnknownFrame, i as UrgencyLevel } from '../config.d-BR3DT9ho.cjs';
17
17
 
18
18
  /**
19
19
  * The full /state payload. `degraded` + `cache_epoch` + `cache_key` are additive fields an older backend
@@ -29,8 +29,8 @@ declare const petStateResponseWireSchema: z.ZodObject<{
29
29
  expires_at: z.ZodString;
30
30
  cache_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
31
31
  }, "strip", z.ZodTypeAny, {
32
- url: string;
33
32
  kind: "video" | "webp";
33
+ url: string;
34
34
  expires_at: string;
35
35
  loop_duration_ms?: number | null | undefined;
36
36
  cache_key?: string | null | undefined;
@@ -48,8 +48,8 @@ declare const petStateResponseWireSchema: z.ZodObject<{
48
48
  expires_at: z.ZodString;
49
49
  cache_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
50
50
  }, "strip", z.ZodTypeAny, {
51
- url: string;
52
51
  kind: "video" | "webp";
52
+ url: string;
53
53
  expires_at: string;
54
54
  loop_duration_ms?: number | null | undefined;
55
55
  cache_key?: string | null | undefined;
@@ -62,15 +62,15 @@ declare const petStateResponseWireSchema: z.ZodObject<{
62
62
  }>>;
63
63
  }, "strip", z.ZodTypeAny, {
64
64
  image?: {
65
- url: string;
66
65
  kind: "video" | "webp";
66
+ url: string;
67
67
  expires_at: string;
68
68
  loop_duration_ms?: number | null | undefined;
69
69
  cache_key?: string | null | undefined;
70
70
  } | undefined;
71
71
  animation?: {
72
- url: string;
73
72
  kind: "video" | "webp";
73
+ url: string;
74
74
  expires_at: string;
75
75
  loop_duration_ms?: number | null | undefined;
76
76
  cache_key?: string | null | undefined;
@@ -99,8 +99,8 @@ declare const petStateResponseWireSchema: z.ZodObject<{
99
99
  expires_at: z.ZodString;
100
100
  cache_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
101
101
  }, "strip", z.ZodTypeAny, {
102
- url: string;
103
102
  kind: "video" | "webp";
103
+ url: string;
104
104
  expires_at: string;
105
105
  loop_duration_ms?: number | null | undefined;
106
106
  cache_key?: string | null | undefined;
@@ -113,8 +113,8 @@ declare const petStateResponseWireSchema: z.ZodObject<{
113
113
  }>>;
114
114
  }, "strip", z.ZodTypeAny, {
115
115
  weather_alert?: {
116
- url: string;
117
116
  kind: "video" | "webp";
117
+ url: string;
118
118
  expires_at: string;
119
119
  loop_duration_ms?: number | null | undefined;
120
120
  cache_key?: string | null | undefined;
@@ -133,19 +133,19 @@ declare const petStateResponseWireSchema: z.ZodObject<{
133
133
  degraded: z.ZodDefault<z.ZodBoolean>;
134
134
  cache_epoch: z.ZodDefault<z.ZodNumber>;
135
135
  }, "strip", z.ZodTypeAny, {
136
- category: "health" | "attention" | "moment" | "activity" | "mood" | "idle";
136
+ category: "idle" | "health" | "attention" | "moment" | "activity" | "mood";
137
137
  idle: "bundled";
138
138
  tiers: {
139
139
  image?: {
140
- url: string;
141
140
  kind: "video" | "webp";
141
+ url: string;
142
142
  expires_at: string;
143
143
  loop_duration_ms?: number | null | undefined;
144
144
  cache_key?: string | null | undefined;
145
145
  } | undefined;
146
146
  animation?: {
147
- url: string;
148
147
  kind: "video" | "webp";
148
+ url: string;
149
149
  expires_at: string;
150
150
  loop_duration_ms?: number | null | undefined;
151
151
  cache_key?: string | null | undefined;
@@ -153,8 +153,8 @@ declare const petStateResponseWireSchema: z.ZodObject<{
153
153
  };
154
154
  overlays: {
155
155
  weather_alert?: {
156
- url: string;
157
156
  kind: "video" | "webp";
157
+ url: string;
158
158
  expires_at: string;
159
159
  loop_duration_ms?: number | null | undefined;
160
160
  cache_key?: string | null | undefined;
@@ -164,7 +164,7 @@ declare const petStateResponseWireSchema: z.ZodObject<{
164
164
  degraded: boolean;
165
165
  cache_epoch: number;
166
166
  }, {
167
- category: "health" | "attention" | "moment" | "activity" | "mood" | "idle";
167
+ category: "idle" | "health" | "attention" | "moment" | "activity" | "mood";
168
168
  ttl_seconds: number;
169
169
  idle?: "bundled" | undefined;
170
170
  tiers?: {
@@ -1,19 +1,19 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { StyleProp, ViewStyle } from 'react-native';
3
- import { E as EverfurResult } from '../EverfurResult-ClPTS0P2.js';
4
- import { A as AuthContext } from '../identity-BqeaN8An.js';
5
- export { I as IdentityProvider, n as newSessionId } from '../identity-BqeaN8An.js';
6
- import { P as PetRef } from '../ids-B2GAAifq.js';
7
- export { B as Brand, U as UserRef, _ as __brand } from '../ids-B2GAAifq.js';
3
+ import { E as EverfurResult } from '../EverfurResult.d-D_-254ZY.js';
4
+ import { A as AuthContext } from '../identity.d-DzTijonw.js';
5
+ export { I as IdentityProvider, n as newSessionId } from '../identity.d-DzTijonw.js';
6
+ import { P as PetRef } from '../ids.d-B2GAAifq.js';
7
+ export { B as Brand, U as UserRef, _ as __brand } from '../ids.d-B2GAAifq.js';
8
8
  import { z } from 'zod';
9
- import { K as KvPort, C as CacheEpochGuard, I as ImageCachePort } from '../cacheEpoch-DknKn3S0.js';
10
- export { a as CACHE_EPOCH_STORAGE_KEY, c as createCacheEpochGuard } from '../cacheEpoch-DknKn3S0.js';
11
- import { T as TelemetryPort } from '../TelemetryPort-BDNr00hu.js';
12
- import { E as EverfurError } from '../EverfurError-DeBqRpQV.js';
13
- export { a as EverfurErrorCategory, b as EverfurErrorCode } from '../EverfurError-DeBqRpQV.js';
14
- import { D as DisabledLevel, a as CapabilityDecision } from '../resolve-D4Ywz5OS.js';
15
- export { b as CapabilityDisabled, C as CapabilityName } from '../resolve-D4Ywz5OS.js';
16
- export { A as AcceptedFrame, a as AnalysisCompleteFrame, b as AnalysisStartedFrame, D as DeltaFrame, c as DoneFrame, E as ErrorFrame, d as EverfurRequest, e as EverfurRequestBase, F as Frame, f as FrameBase, g as FrameKind, H as HeartbeatFrame, h as HttpMethod, M as MultipartBody, T as TransportPort, U as UnknownFrame, i as UrgencyLevel } from '../config-C5iPNKDj.js';
9
+ import { K as KvPort, C as CacheEpochGuard, I as ImageCachePort } from '../cacheEpoch.d-DknKn3S0.js';
10
+ export { a as CACHE_EPOCH_STORAGE_KEY, c as createCacheEpochGuard } from '../cacheEpoch.d-DknKn3S0.js';
11
+ import { T as TelemetryPort } from '../TelemetryPort.d-BDNr00hu.js';
12
+ import { E as EverfurError } from '../EverfurError.d-8NHtlgzA.js';
13
+ export { a as EverfurErrorCategory, b as EverfurErrorCode } from '../EverfurError.d-8NHtlgzA.js';
14
+ import { D as DisabledLevel, C as CapabilityDecision } from '../resolve.d-jI8FmBj3.js';
15
+ export { b as CapabilityDisabled, a as CapabilityName } from '../resolve.d-jI8FmBj3.js';
16
+ export { A as AcceptedFrame, a as AnalysisCompleteFrame, b as AnalysisStartedFrame, D as DeltaFrame, c as DoneFrame, E as ErrorFrame, d as EverfurRequest, e as EverfurRequestBase, F as Frame, f as FrameBase, g as FrameKind, H as HeartbeatFrame, h as HttpMethod, M as MultipartBody, T as TransportPort, U as UnknownFrame, i as UrgencyLevel } from '../config.d-Dy6igYlH.js';
17
17
 
18
18
  /**
19
19
  * The full /state payload. `degraded` + `cache_epoch` + `cache_key` are additive fields an older backend
@@ -29,8 +29,8 @@ declare const petStateResponseWireSchema: z.ZodObject<{
29
29
  expires_at: z.ZodString;
30
30
  cache_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
31
31
  }, "strip", z.ZodTypeAny, {
32
- url: string;
33
32
  kind: "video" | "webp";
33
+ url: string;
34
34
  expires_at: string;
35
35
  loop_duration_ms?: number | null | undefined;
36
36
  cache_key?: string | null | undefined;
@@ -48,8 +48,8 @@ declare const petStateResponseWireSchema: z.ZodObject<{
48
48
  expires_at: z.ZodString;
49
49
  cache_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
50
50
  }, "strip", z.ZodTypeAny, {
51
- url: string;
52
51
  kind: "video" | "webp";
52
+ url: string;
53
53
  expires_at: string;
54
54
  loop_duration_ms?: number | null | undefined;
55
55
  cache_key?: string | null | undefined;
@@ -62,15 +62,15 @@ declare const petStateResponseWireSchema: z.ZodObject<{
62
62
  }>>;
63
63
  }, "strip", z.ZodTypeAny, {
64
64
  image?: {
65
- url: string;
66
65
  kind: "video" | "webp";
66
+ url: string;
67
67
  expires_at: string;
68
68
  loop_duration_ms?: number | null | undefined;
69
69
  cache_key?: string | null | undefined;
70
70
  } | undefined;
71
71
  animation?: {
72
- url: string;
73
72
  kind: "video" | "webp";
73
+ url: string;
74
74
  expires_at: string;
75
75
  loop_duration_ms?: number | null | undefined;
76
76
  cache_key?: string | null | undefined;
@@ -99,8 +99,8 @@ declare const petStateResponseWireSchema: z.ZodObject<{
99
99
  expires_at: z.ZodString;
100
100
  cache_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
101
101
  }, "strip", z.ZodTypeAny, {
102
- url: string;
103
102
  kind: "video" | "webp";
103
+ url: string;
104
104
  expires_at: string;
105
105
  loop_duration_ms?: number | null | undefined;
106
106
  cache_key?: string | null | undefined;
@@ -113,8 +113,8 @@ declare const petStateResponseWireSchema: z.ZodObject<{
113
113
  }>>;
114
114
  }, "strip", z.ZodTypeAny, {
115
115
  weather_alert?: {
116
- url: string;
117
116
  kind: "video" | "webp";
117
+ url: string;
118
118
  expires_at: string;
119
119
  loop_duration_ms?: number | null | undefined;
120
120
  cache_key?: string | null | undefined;
@@ -133,19 +133,19 @@ declare const petStateResponseWireSchema: z.ZodObject<{
133
133
  degraded: z.ZodDefault<z.ZodBoolean>;
134
134
  cache_epoch: z.ZodDefault<z.ZodNumber>;
135
135
  }, "strip", z.ZodTypeAny, {
136
- category: "health" | "attention" | "moment" | "activity" | "mood" | "idle";
136
+ category: "idle" | "health" | "attention" | "moment" | "activity" | "mood";
137
137
  idle: "bundled";
138
138
  tiers: {
139
139
  image?: {
140
- url: string;
141
140
  kind: "video" | "webp";
141
+ url: string;
142
142
  expires_at: string;
143
143
  loop_duration_ms?: number | null | undefined;
144
144
  cache_key?: string | null | undefined;
145
145
  } | undefined;
146
146
  animation?: {
147
- url: string;
148
147
  kind: "video" | "webp";
148
+ url: string;
149
149
  expires_at: string;
150
150
  loop_duration_ms?: number | null | undefined;
151
151
  cache_key?: string | null | undefined;
@@ -153,8 +153,8 @@ declare const petStateResponseWireSchema: z.ZodObject<{
153
153
  };
154
154
  overlays: {
155
155
  weather_alert?: {
156
- url: string;
157
156
  kind: "video" | "webp";
157
+ url: string;
158
158
  expires_at: string;
159
159
  loop_duration_ms?: number | null | undefined;
160
160
  cache_key?: string | null | undefined;
@@ -164,7 +164,7 @@ declare const petStateResponseWireSchema: z.ZodObject<{
164
164
  degraded: boolean;
165
165
  cache_epoch: number;
166
166
  }, {
167
- category: "health" | "attention" | "moment" | "activity" | "mood" | "idle";
167
+ category: "idle" | "health" | "attention" | "moment" | "activity" | "mood";
168
168
  ttl_seconds: number;
169
169
  idle?: "bundled" | undefined;
170
170
  tiers?: {