@ably/ai-transport 0.1.0 → 0.3.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 (221) hide show
  1. package/README.md +93 -111
  2. package/dist/ably-ai-transport.js +2401 -1387
  3. package/dist/ably-ai-transport.js.map +1 -1
  4. package/dist/ably-ai-transport.umd.cjs +1 -1
  5. package/dist/ably-ai-transport.umd.cjs.map +1 -1
  6. package/dist/constants.d.ts +116 -42
  7. package/dist/core/agent.d.ts +44 -0
  8. package/dist/core/channel-options.d.ts +57 -0
  9. package/dist/core/codec/codec-event.d.ts +9 -0
  10. package/dist/core/codec/decoder.d.ts +24 -24
  11. package/dist/core/codec/define-codec.d.ts +100 -0
  12. package/dist/core/codec/encoder.d.ts +10 -12
  13. package/dist/core/codec/field-bag.d.ts +85 -0
  14. package/dist/core/codec/fields.d.ts +141 -0
  15. package/dist/core/codec/index.d.ts +8 -2
  16. package/dist/core/codec/input-descriptor-decoder.d.ts +19 -0
  17. package/dist/core/codec/input-descriptor-encoder.d.ts +22 -0
  18. package/dist/core/codec/input-descriptors.d.ts +281 -0
  19. package/dist/core/codec/lifecycle-tracker.d.ts +10 -9
  20. package/dist/core/codec/output-descriptor-decoder.d.ts +29 -0
  21. package/dist/core/codec/output-descriptor-encoder.d.ts +31 -0
  22. package/dist/core/codec/output-descriptors.d.ts +237 -0
  23. package/dist/core/codec/types.d.ts +470 -119
  24. package/dist/core/codec/well-known-inputs.d.ts +52 -0
  25. package/dist/core/transport/agent-session.d.ts +10 -0
  26. package/dist/core/transport/agent-view.d.ts +296 -0
  27. package/dist/core/transport/client-session.d.ts +13 -0
  28. package/dist/core/transport/decode-fold.d.ts +55 -0
  29. package/dist/core/transport/headers.d.ts +121 -14
  30. package/dist/core/transport/index.d.ts +5 -6
  31. package/dist/core/transport/internal/bounded-map.d.ts +20 -0
  32. package/dist/core/transport/invocation.d.ts +74 -0
  33. package/dist/core/transport/load-history-pages.d.ts +71 -0
  34. package/dist/core/transport/load-history.d.ts +44 -0
  35. package/dist/core/transport/pipe-stream.d.ts +9 -9
  36. package/dist/core/transport/run-manager.d.ts +76 -0
  37. package/dist/core/transport/session-support.d.ts +55 -0
  38. package/dist/core/transport/tree.d.ts +523 -109
  39. package/dist/core/transport/types/agent.d.ts +375 -0
  40. package/dist/core/transport/types/client.d.ts +201 -0
  41. package/dist/core/transport/types/shared.d.ts +24 -0
  42. package/dist/core/transport/types/tree.d.ts +357 -0
  43. package/dist/core/transport/types/view.d.ts +249 -0
  44. package/dist/core/transport/types.d.ts +13 -553
  45. package/dist/core/transport/view.d.ts +390 -84
  46. package/dist/core/transport/wire-log.d.ts +102 -0
  47. package/dist/errors.d.ts +27 -10
  48. package/dist/index.d.ts +8 -9
  49. package/dist/logger.d.ts +12 -0
  50. package/dist/react/ably-ai-transport-react.js +1365 -1010
  51. package/dist/react/ably-ai-transport-react.js.map +1 -1
  52. package/dist/react/ably-ai-transport-react.umd.cjs +1 -1
  53. package/dist/react/ably-ai-transport-react.umd.cjs.map +1 -1
  54. package/dist/react/contexts/client-session-context.d.ts +37 -0
  55. package/dist/react/contexts/client-session-provider.d.ts +56 -0
  56. package/dist/react/create-session-hooks.d.ts +116 -0
  57. package/dist/react/index.d.ts +13 -12
  58. package/dist/react/internal/skipped-session.d.ts +8 -0
  59. package/dist/react/internal/use-resolved-session.d.ts +36 -0
  60. package/dist/react/use-ably-messages.d.ts +17 -14
  61. package/dist/react/use-client-session.d.ts +81 -0
  62. package/dist/react/use-create-view.d.ts +14 -13
  63. package/dist/react/use-tree.d.ts +30 -15
  64. package/dist/react/use-view.d.ts +81 -50
  65. package/dist/utils.d.ts +48 -71
  66. package/dist/vercel/ably-ai-transport-vercel.js +3257 -2499
  67. package/dist/vercel/ably-ai-transport-vercel.js.map +1 -1
  68. package/dist/vercel/ably-ai-transport-vercel.umd.cjs +1 -1
  69. package/dist/vercel/ably-ai-transport-vercel.umd.cjs.map +1 -1
  70. package/dist/vercel/codec/decode-lifecycle.d.ts +9 -0
  71. package/dist/vercel/codec/events.d.ts +50 -0
  72. package/dist/vercel/codec/fields.d.ts +44 -0
  73. package/dist/vercel/codec/fold-content.d.ts +16 -0
  74. package/dist/vercel/codec/fold-data.d.ts +16 -0
  75. package/dist/vercel/codec/fold-input.d.ts +67 -0
  76. package/dist/vercel/codec/fold-lifecycle.d.ts +16 -0
  77. package/dist/vercel/codec/fold-text.d.ts +16 -0
  78. package/dist/vercel/codec/fold-tool-input.d.ts +17 -0
  79. package/dist/vercel/codec/fold-tool-output.d.ts +16 -0
  80. package/dist/vercel/codec/index.d.ts +7 -20
  81. package/dist/vercel/codec/inputs.d.ts +11 -0
  82. package/dist/vercel/codec/outputs.d.ts +11 -0
  83. package/dist/vercel/codec/reducer-state.d.ts +121 -0
  84. package/dist/vercel/codec/reducer.d.ts +62 -0
  85. package/dist/vercel/codec/tool-transitions.d.ts +2 -8
  86. package/dist/vercel/codec/wire-data.d.ts +34 -0
  87. package/dist/vercel/index.d.ts +5 -5
  88. package/dist/vercel/react/ably-ai-transport-vercel-react.js +2859 -9705
  89. package/dist/vercel/react/ably-ai-transport-vercel-react.js.map +1 -1
  90. package/dist/vercel/react/ably-ai-transport-vercel-react.umd.cjs +1 -45
  91. package/dist/vercel/react/ably-ai-transport-vercel-react.umd.cjs.map +1 -1
  92. package/dist/vercel/react/contexts/chat-transport-context.d.ts +9 -7
  93. package/dist/vercel/react/contexts/chat-transport-provider.d.ts +53 -41
  94. package/dist/vercel/react/index.d.ts +1 -2
  95. package/dist/vercel/react/use-chat-transport.d.ts +30 -26
  96. package/dist/vercel/react/use-message-sync.d.ts +17 -30
  97. package/dist/vercel/run-end-reason.d.ts +84 -0
  98. package/dist/vercel/tool-part.d.ts +21 -0
  99. package/dist/vercel/transport/chat-transport.d.ts +41 -24
  100. package/dist/vercel/transport/index.d.ts +24 -20
  101. package/dist/vercel/transport/run-output-stream.d.ts +54 -0
  102. package/dist/version.d.ts +2 -0
  103. package/package.json +31 -24
  104. package/src/constants.ts +124 -51
  105. package/src/core/agent.ts +92 -0
  106. package/src/core/channel-options.ts +89 -0
  107. package/src/core/codec/codec-event.ts +27 -0
  108. package/src/core/codec/decoder.ts +202 -105
  109. package/src/core/codec/define-codec.ts +432 -0
  110. package/src/core/codec/encoder.ts +114 -107
  111. package/src/core/codec/field-bag.ts +142 -0
  112. package/src/core/codec/fields.ts +193 -0
  113. package/src/core/codec/index.ts +56 -6
  114. package/src/core/codec/input-descriptor-decoder.ts +97 -0
  115. package/src/core/codec/input-descriptor-encoder.ts +150 -0
  116. package/src/core/codec/input-descriptors.ts +373 -0
  117. package/src/core/codec/lifecycle-tracker.ts +10 -9
  118. package/src/core/codec/output-descriptor-decoder.ts +139 -0
  119. package/src/core/codec/output-descriptor-encoder.ts +101 -0
  120. package/src/core/codec/output-descriptors.ts +307 -0
  121. package/src/core/codec/types.ts +505 -126
  122. package/src/core/codec/well-known-inputs.ts +96 -0
  123. package/src/core/transport/agent-session.ts +1085 -0
  124. package/src/core/transport/agent-view.ts +738 -0
  125. package/src/core/transport/client-session.ts +780 -0
  126. package/src/core/transport/decode-fold.ts +101 -0
  127. package/src/core/transport/headers.ts +234 -22
  128. package/src/core/transport/index.ts +27 -27
  129. package/src/core/transport/internal/bounded-map.ts +27 -0
  130. package/src/core/transport/invocation.ts +98 -0
  131. package/src/core/transport/load-history-pages.ts +220 -0
  132. package/src/core/transport/load-history.ts +271 -0
  133. package/src/core/transport/pipe-stream.ts +63 -39
  134. package/src/core/transport/run-manager.ts +243 -0
  135. package/src/core/transport/session-support.ts +96 -0
  136. package/src/core/transport/tree.ts +1293 -308
  137. package/src/core/transport/types/agent.ts +434 -0
  138. package/src/core/transport/types/client.ts +247 -0
  139. package/src/core/transport/types/shared.ts +27 -0
  140. package/src/core/transport/types/tree.ts +393 -0
  141. package/src/core/transport/types/view.ts +288 -0
  142. package/src/core/transport/types.ts +13 -706
  143. package/src/core/transport/view.ts +1229 -450
  144. package/src/core/transport/wire-log.ts +189 -0
  145. package/src/errors.ts +29 -9
  146. package/src/event-emitter.ts +3 -2
  147. package/src/index.ts +86 -42
  148. package/src/logger.ts +14 -1
  149. package/src/react/contexts/client-session-context.ts +41 -0
  150. package/src/react/contexts/client-session-provider.tsx +222 -0
  151. package/src/react/create-session-hooks.ts +141 -0
  152. package/src/react/index.ts +24 -13
  153. package/src/react/internal/skipped-session.ts +62 -0
  154. package/src/react/internal/use-resolved-session.ts +63 -0
  155. package/src/react/use-ably-messages.ts +32 -22
  156. package/src/react/use-client-session.ts +178 -0
  157. package/src/react/use-create-view.ts +33 -29
  158. package/src/react/use-tree.ts +61 -30
  159. package/src/react/use-view.ts +138 -96
  160. package/src/utils.ts +83 -131
  161. package/src/vercel/codec/decode-lifecycle.ts +70 -0
  162. package/src/vercel/codec/events.ts +85 -0
  163. package/src/vercel/codec/fields.ts +58 -0
  164. package/src/vercel/codec/fold-content.ts +54 -0
  165. package/src/vercel/codec/fold-data.ts +46 -0
  166. package/src/vercel/codec/fold-input.ts +255 -0
  167. package/src/vercel/codec/fold-lifecycle.ts +85 -0
  168. package/src/vercel/codec/fold-text.ts +55 -0
  169. package/src/vercel/codec/fold-tool-input.ts +86 -0
  170. package/src/vercel/codec/fold-tool-output.ts +79 -0
  171. package/src/vercel/codec/index.ts +28 -21
  172. package/src/vercel/codec/inputs.ts +116 -0
  173. package/src/vercel/codec/outputs.ts +207 -0
  174. package/src/vercel/codec/reducer-state.ts +169 -0
  175. package/src/vercel/codec/reducer.ts +191 -0
  176. package/src/vercel/codec/tool-transitions.ts +3 -14
  177. package/src/vercel/codec/wire-data.ts +64 -0
  178. package/src/vercel/index.ts +7 -19
  179. package/src/vercel/react/contexts/chat-transport-context.ts +8 -7
  180. package/src/vercel/react/contexts/chat-transport-provider.tsx +87 -59
  181. package/src/vercel/react/index.ts +3 -5
  182. package/src/vercel/react/use-chat-transport.ts +44 -66
  183. package/src/vercel/react/use-message-sync.ts +75 -39
  184. package/src/vercel/run-end-reason.ts +157 -0
  185. package/src/vercel/tool-part.ts +25 -0
  186. package/src/vercel/transport/chat-transport.ts +380 -98
  187. package/src/vercel/transport/index.ts +38 -37
  188. package/src/vercel/transport/run-output-stream.ts +169 -0
  189. package/src/version.ts +2 -0
  190. package/dist/core/transport/client-transport.d.ts +0 -10
  191. package/dist/core/transport/decode-history.d.ts +0 -43
  192. package/dist/core/transport/server-transport.d.ts +0 -7
  193. package/dist/core/transport/stream-router.d.ts +0 -29
  194. package/dist/core/transport/turn-manager.d.ts +0 -37
  195. package/dist/react/contexts/transport-context.d.ts +0 -31
  196. package/dist/react/contexts/transport-provider.d.ts +0 -49
  197. package/dist/react/create-transport-hooks.d.ts +0 -124
  198. package/dist/react/use-active-turns.d.ts +0 -12
  199. package/dist/react/use-client-transport.d.ts +0 -80
  200. package/dist/vercel/codec/accumulator.d.ts +0 -21
  201. package/dist/vercel/codec/decoder.d.ts +0 -22
  202. package/dist/vercel/codec/encoder.d.ts +0 -41
  203. package/dist/vercel/react/use-staged-add-tool-approval-response.d.ts +0 -30
  204. package/dist/vercel/tool-approvals.d.ts +0 -124
  205. package/dist/vercel/tool-events.d.ts +0 -26
  206. package/src/core/transport/client-transport.ts +0 -977
  207. package/src/core/transport/decode-history.ts +0 -485
  208. package/src/core/transport/server-transport.ts +0 -612
  209. package/src/core/transport/stream-router.ts +0 -136
  210. package/src/core/transport/turn-manager.ts +0 -165
  211. package/src/react/contexts/transport-context.ts +0 -37
  212. package/src/react/contexts/transport-provider.tsx +0 -164
  213. package/src/react/create-transport-hooks.ts +0 -144
  214. package/src/react/use-active-turns.ts +0 -72
  215. package/src/react/use-client-transport.ts +0 -197
  216. package/src/vercel/codec/accumulator.ts +0 -588
  217. package/src/vercel/codec/decoder.ts +0 -618
  218. package/src/vercel/codec/encoder.ts +0 -410
  219. package/src/vercel/react/use-staged-add-tool-approval-response.ts +0 -87
  220. package/src/vercel/tool-approvals.ts +0 -380
  221. package/src/vercel/tool-events.ts +0 -53
@@ -1,46 +1,2 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`react`),require(`ably`),require(`ably/react`),require(`react/jsx-runtime`)):typeof define==`function`&&define.amd?define([`exports`,`react`,`ably`,`ably/react`,`react/jsx-runtime`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.AblyAiTransportVercelReact={},e.React,e.Ably,e.AblyReact,e.ReactJsxRuntime))})(this,function(e,t,n,r,i){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var a=Object.create,o=Object.defineProperty,s=Object.getOwnPropertyDescriptor,c=Object.getOwnPropertyNames,l=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty,d=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=c(t),a=0,l=i.length,d;a<l;a++)d=i[a],!u.call(e,d)&&d!==n&&o(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(r=s(t,d))||r.enumerable});return e};n=((e,t,n)=>(n=e==null?{}:a(l(e)),d(t||!e||!e.__esModule?o(n,`default`,{value:e,enumerable:!0}):n,e)))(n,1);var f=(0,t.createContext)({}),p=(0,t.createContext)(void 0),m=`x-ably-stream`,h=`x-ably-status`,ee=`x-ably-stream-id`,g=`x-ably-discrete`,_=`x-ably-turn-id`,v=`x-ably-msg-id`,te=`x-ably-turn-client-id`,ne=`x-ably-role`,re=`x-ably-amend`,ie=`x-ably-cancel-turn-id`,ae=`x-ably-cancel-own`,oe=`x-ably-cancel-all`,se=`x-ably-cancel-client-id`,ce=`x-ably-parent`,le=`x-ably-fork-of`,ue=`x-ably-cancel`,de=`x-ably-turn-start`,fe=`x-ably-turn-end`,pe=`x-domain-`,y=function(e){return e[e.BadRequest=4e4]=`BadRequest`,e[e.InvalidArgument=40003]=`InvalidArgument`,e[e.EncoderRecoveryFailed=104e3]=`EncoderRecoveryFailed`,e[e.TransportSubscriptionError=104001]=`TransportSubscriptionError`,e[e.CancelListenerError=104002]=`CancelListenerError`,e[e.TurnLifecycleError=104003]=`TurnLifecycleError`,e[e.TransportClosed=104004]=`TransportClosed`,e[e.TransportSendFailed=104005]=`TransportSendFailed`,e[e.ChannelContinuityLost=104006]=`ChannelContinuityLost`,e[e.ChannelNotReady=104007]=`ChannelNotReady`,e[e.StreamError=104008]=`StreamError`,e}({}),me=(e,t)=>e.code===t,he=e=>({logAction:(t,n,r)=>{e.error(n,{detail:r})},shouldLog:()=>!0}),ge=n.Realtime.EventEmitter,_e=class extends ge{constructor(e){super(he(e))}},b=function(e){return e.Trace=`trace`,e.Debug=`debug`,e.Info=`info`,e.Warn=`warn`,e.Error=`error`,e.Silent=`silent`,e}({}),ve=(e,t,n)=>{let r=n?`, context: ${JSON.stringify(n)}`:``,i=`[${new Date().toISOString()}] ${t.valueOf().toUpperCase()} ably-ai-transport: ${e}${r}`;switch(t){case b.Trace:case b.Debug:console.log(i);break;case b.Info:console.info(i);break;case b.Warn:console.warn(i);break;case b.Error:console.error(i);break;case b.Silent:break}},ye=e=>new Se(e.logHandler??ve,e.logLevel),be=function(e){return e[e.Trace=0]=`Trace`,e[e.Debug=1]=`Debug`,e[e.Info=2]=`Info`,e[e.Warn=3]=`Warn`,e[e.Error=4]=`Error`,e[e.Silent=5]=`Silent`,e}(be||{}),xe=new Map([[b.Trace,be.Trace],[b.Debug,be.Debug],[b.Info,be.Info],[b.Warn,be.Warn],[b.Error,be.Error],[b.Silent,be.Silent]]),Se=class e{constructor(e,t,r){this._handler=e,this._context=r;let i=xe.get(t);if(i===void 0)throw new n.ErrorInfo(`unable to create logger; invalid log level: ${t}`,y.InvalidArgument,400);this._levelNumber=i}trace(e,t){this._write(e,b.Trace,be.Trace,t)}debug(e,t){this._write(e,b.Debug,be.Debug,t)}info(e,t){this._write(e,b.Info,be.Info,t)}warn(e,t){this._write(e,b.Warn,be.Warn,t)}error(e,t){this._write(e,b.Error,be.Error,t)}withContext(t){let n=[...xe.entries()].find(([,e])=>e===this._levelNumber)?.[0]??b.Error;return new e(this._handler,n,this._mergeContext(t))}_write(e,t,n,r){n>=this._levelNumber&&this._handler(e,t,this._mergeContext(r))}_mergeContext(e){return this._context?e?{...this._context,...e}:this._context:e??void 0}},Ce=e=>{let t=e.extras;if(!t||typeof t!=`object`)return{};let n=t.headers;return!n||typeof n!=`object`?{}:n},we=e=>{if(e!==void 0)try{return JSON.parse(e)}catch{return}},Te=(e,t)=>({...e,...t}),Ee=e=>{if(e!==void 0)return e===`true`},De=(e,t)=>e[pe+t],x=e=>{let t={};for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&e[n]!==void 0&&(t[n]=e[n]);return t},Oe=e=>({str:t=>De(e,t),strOr:(t,n)=>De(e,t)??n,bool:t=>Ee(De(e,t)),json:t=>we(De(e,t))}),S=()=>{let e={},t={str:(n,r)=>(r!==void 0&&(e[pe+n]=r),t),bool:(n,r)=>(r!==void 0&&(e[pe+n]=String(r)),t),json:(n,r)=>(r!=null&&(e[pe+n]=JSON.stringify(r)),t),build:()=>e};return t},ke=e=>{let t={[ne]:e.role,[_]:e.turnId,[v]:e.msgId};return e.turnClientId!==void 0&&(t[te]=e.turnClientId),e.parent&&(t[ce]=e.parent),e.forkOf&&(t[le]=e.forkOf),e.amend&&(t[re]=e.amend),t},Ae=class{constructor(e,t){this._turns=new Map,this._isTerminal=e,this._logger=t}createStream(e){this._logger.trace(`StreamRouter.createStream();`,{turnId:e});let t={},r=new ReadableStream({start(e){t.controller=e}});if(!t.controller)throw new n.ErrorInfo(`unable to create stream; ReadableStream start() was not called synchronously`,y.TransportSubscriptionError,500);return this._turns.set(e,{controller:t.controller,turnId:e}),r}closeStream(e){let t=this._turns.get(e);if(!t)return!1;this._logger.debug(`StreamRouter.closeStream(); closing stream`,{turnId:e});try{t.controller.close()}catch{}return this._turns.delete(e),!0}errorStream(e,t){let n=this._turns.get(e);if(!n)return!1;this._logger.debug(`StreamRouter.errorStream(); erroring stream`,{turnId:e});try{n.controller.error(t)}catch{}return this._turns.delete(e),!0}route(e,t){let n=this._turns.get(e);if(!n)return!1;try{n.controller.enqueue(t)}catch{return this._turns.delete(e),!1}return this._isTerminal(t)&&this.closeStream(e),!0}has(e){return this._turns.has(e)}},je=(e,t)=>new Ae(e,t),Me=class{get structuralVersion(){return this._structuralVersion}constructor(e){this._nodeIndex=new Map,this._sortedList=[],this._parentIndex=new Map,this._turnClientIds=new Map,this._seqCounter=0,this._structuralVersion=0,this._logger=e,this._emitter=new _e(e)}_compareNodes(e,t){let n=e.node.serial,r=t.node.serial;return n===void 0&&r===void 0?e.insertSeq-t.insertSeq:n===void 0?1:r===void 0||n<r?-1:n>r?1:e.insertSeq-t.insertSeq}_insertSorted(e){if(e.node.serial===void 0){this._sortedList.push(e);return}let t=0,n=this._sortedList.length;for(;t<n;){let r=t+n>>>1,i=this._sortedList[r];if(!i)break;this._compareNodes(i,e)<=0?t=r+1:n=r}this._sortedList.splice(t,0,e)}_removeSorted(e){let t=this._sortedList.indexOf(e);t!==-1&&this._sortedList.splice(t,1)}_addToParentIndex(e,t){let n=this._parentIndex.get(e);n||(n=new Set,this._parentIndex.set(e,n)),n.add(t)}_removeFromParentIndex(e,t){let n=this._parentIndex.get(e);n&&(n.delete(t),n.size===0&&this._parentIndex.delete(e))}_getSiblingGroup(e){let t=this._nodeIndex.get(e);if(!t)return[];let n=t.node,r=new Set([n.msgId]);for(;n.forkOf&&!r.has(n.forkOf);){let e=this._nodeIndex.get(n.forkOf);if(!e||e.node.parentId!==n.parentId)break;n=e.node,r.add(n.msgId)}let i=n.parentId,a=n.msgId,o=[],s=this._parentIndex.get(i);if(s)for(let e of s){let t=this._nodeIndex.get(e);t&&this._isSiblingOf(t.node,a)&&o.push(t)}return o.sort((e,t)=>this._compareNodes(e,t)),o.map(e=>e.node)}_isSiblingOf(e,t){if(e.msgId===t)return!0;let n=e,r=new Set([n.msgId]);for(;n.forkOf;){if(n.forkOf===t)return!0;if(r.has(n.forkOf))break;let e=this._nodeIndex.get(n.forkOf);if(!e)break;n=e.node,r.add(n.msgId)}return!1}getGroupRoot(e){let t=this._nodeIndex.get(e);if(!t)return e;let n=t.node,r=new Set([n.msgId]);for(;n.forkOf&&!r.has(n.forkOf);){let e=this._nodeIndex.get(n.forkOf);if(!e||e.node.parentId!==n.parentId)break;n=e.node,r.add(n.msgId)}return n.msgId}flattenNodes(e){this._logger.trace(`DefaultTree.flattenNodes();`);let t=[],n=new Set,r=new Map;for(let i of this._sortedList){let a=i.node,{msgId:o,parentId:s}=a;if(s!==void 0&&!n.has(s))continue;let c=this._getSiblingGroup(o);if(c.length>1){let t=this.getGroupRoot(o),n=r.get(t);if(n===void 0){let i=e.get(t);if(i&&c.some(e=>e.msgId===i))n=i;else{let e=c.at(-1);if(!e)break;n=e.msgId}r.set(t,n)}if(o!==n)continue}n.add(o),t.push(a)}return t}getSiblings(e){return this._logger.trace(`DefaultTree.getSiblings();`,{msgId:e}),this._getSiblingGroup(e).map(e=>e.message)}getSiblingNodes(e){return this._getSiblingGroup(e)}hasSiblings(e){return this._getSiblingGroup(e).length>1}getNode(e){return this._logger.trace(`DefaultTree.getNode();`,{msgId:e}),this._nodeIndex.get(e)?.node}getHeaders(e){return this._logger.trace(`DefaultTree.getHeaders();`,{msgId:e}),this._nodeIndex.get(e)?.node.headers}upsert(e,t,n,r){let i=n[`x-ably-parent`]??void 0,a=n[`x-ably-fork-of`]??void 0,o=this._nodeIndex.get(e);if(o){o.node.message=t,Object.keys(n).length>0&&(o.node.headers={...n}),r&&!o.node.serial&&(this._logger.debug(`Tree.upsert(); promoting serial`,{msgId:e,serial:r}),o.node.serial=r,this._removeSorted(o),this._insertSorted(o),this._structuralVersion++),this._emitter.emit(`update`);return}this._logger.trace(`Tree.upsert(); inserting new node`,{msgId:e,parentId:i,forkOf:a});let s={node:{kind:`message`,message:t,msgId:e,parentId:i,forkOf:a,headers:{...n},serial:r},insertSeq:this._seqCounter++};this._nodeIndex.set(e,s),this._addToParentIndex(i,e),this._insertSorted(s),this._structuralVersion++,this._emitter.emit(`update`)}delete(e){let t=this._nodeIndex.get(e);if(!t)return;this._logger.debug(`Tree.delete();`,{msgId:e});let{node:n}=t;this._removeFromParentIndex(n.parentId,e),this._removeSorted(t),this._nodeIndex.delete(e),this._structuralVersion++,this._emitter.emit(`update`)}getActiveTurnIds(){this._logger.trace(`DefaultTree.getActiveTurnIds();`);let e=new Map;for(let[t,n]of this._turnClientIds){let r=e.get(n);r||(r=new Set,e.set(n,r)),r.add(t)}return e}on(e,t){let n=t;return this._emitter.on(e,n),()=>{this._emitter.off(e,n)}}emitAblyMessage(e){this._logger.trace(`DefaultTree.emitAblyMessage();`),this._emitter.emit(`ably-message`,e)}emitTurn(e){this._logger.trace(`DefaultTree.emitTurn();`,{turnId:e.turnId}),this._emitter.emit(`turn`,e)}trackTurn(e,t){this._logger.trace(`DefaultTree.trackTurn();`,{turnId:e,clientId:t}),this._turnClientIds.set(e,t)}untrackTurn(e){this._logger.trace(`DefaultTree.untrackTurn();`,{turnId:e}),this._turnClientIds.delete(e)}},Ne=e=>new Me(e),Pe=e=>{let t=[...e.rawMessages].toReversed(),n=e.codec.createDecoder(),r=new Map,i=e.codec.createAccumulator(),a=0,o=new Map,s=new Map,c=[],l=[];for(let u of t){let t=n.decode(u),d=Ce(u),f=d[_],p=d[v],m=u.serial,h=d[re];if(h){for(let e of r.values())if(e.msgHeaders.has(h)){let n=[...e.msgHeaders.keys()].indexOf(h),r=n===-1?void 0:e.accumulator.messages[n];r&&e.accumulator.initMessage(h,r),e.accumulator.processOutputs(t),l.push({accumulator:e.accumulator,messageId:h});break}continue}if(f){let n=r.get(f);if(n||(n={accumulator:e.codec.createAccumulator(),firstSeen:a++,msgHeaders:new Map,msgSerials:new Map},r.set(f,n)),p){let e=n.msgHeaders.get(p);e?Object.keys(d).length>0&&Object.assign(e,d):(n.msgHeaders.set(p,{...d}),m&&n.msgSerials.set(p,m))}n.accumulator.processOutputs(t)}else{i.processOutputs(t);for(let e of t)if(e.kind===`message`&&p){c.push(p);let e=o.get(p);e?Object.keys(d).length>0&&Object.assign(e,d):(o.set(p,{...d}),m&&s.set(p,m))}}}for(let{accumulator:e,messageId:t}of l)e.completeMessage(t);let u=[];for(let[e,t]of i.completedMessages.entries()){let n=c[e];u.push({message:t,headers:n?o.get(n)??{}:{},serial:n?s.get(n)??``:``})}let d=[...r.values()].toSorted((e,t)=>e.firstSeen-t.firstSeen);for(let e of d){let t=[...e.msgHeaders.entries()],n=0;for(let r of e.accumulator.completedMessages){let i=t[n];if(i){let[t,a]=i;u.push({message:r,headers:a,serial:e.msgSerials.get(t)??``}),n++}else u.push({message:r,headers:{},serial:``})}}return u.toReversed()},Fe=e=>{if(e.cachedDecode&&e.cachedAtRawLength===e.rawMessages.length)return e.cachedDecode;let t=Pe(e);return e.cachedDecode=t,e.cachedAtRawLength=e.rawMessages.length,t},Ie=(e,t)=>{for(let n of t){let t=Ce(n),r=t[v];if(!r||t[`x-ably-amend`])continue;let i=n.action,a=i===`message.create`&&`x-ably-discrete`in t,o=t[`x-ably-stream`]===`true`&&(i===`message.create`||i===`message.update`||i===`message.append`),s=t[h],c=s===`finished`||s===`aborted`;(a||o)&&e.startedMsgIds.add(r),(a||c)&&e.terminatedMsgIds.add(r),e.startedMsgIds.has(r)&&e.terminatedMsgIds.has(r)&&e.completedMsgIds.add(r)}},Le=async(e,t,n)=>{e.rawMessages.push(...t.items),e.lastAblyPage=t,Ie(e,t.items);let r=e.returnedCount+n;for(;e.completedMsgIds.size<r&&t.hasNext();){e.logger.debug(`decodeHistory.fetchUntilLimit(); fetching next page`,{collected:e.rawMessages.length,completed:e.completedMsgIds.size});let n=await t.next();if(!n)break;t=n,e.rawMessages.push(...n.items),e.lastAblyPage=n,Ie(e,n.items)}},Re=(e,t)=>{let n=Fe(e),r=n.slice(e.returnedCount,e.returnedCount+t),i=[...r].toReversed();e.returnedCount+=r.length;let a=n.length>e.returnedCount,o=e.lastAblyPage?.hasNext()??!1,s=e.rawMessages.length-e.returnedRawCount>0?e.rawMessages.slice(e.returnedRawCount).toReversed():[];return e.returnedRawCount=e.rawMessages.length,{items:i.map(e=>({message:e.message,headers:e.headers,serial:e.serial})),rawMessages:s,hasNext:()=>a||o,next:async()=>{if(a)return Re(e,t);if(!o||!e.lastAblyPage)return;let n=await e.lastAblyPage.next();if(n)return await Le(e,n,t),Re(e,t)}}},ze=async(e,t,n,r)=>{let i=n?.limit??100,a={codec:t,rawMessages:[],returnedCount:0,returnedRawCount:0,lastAblyPage:void 0,cachedDecode:void 0,cachedAtRawLength:0,startedMsgIds:new Set,terminatedMsgIds:new Set,completedMsgIds:new Set,logger:r};r.trace(`decodeHistory();`,{limit:i});let o=i*10;return await e.attach(),await Le(a,await e.history({untilAttach:!0,limit:o}),i),Re(a,i)},Be=class{constructor(e){this._branchSelections=new Map,this._withheldMsgIds=new Set,this._lastVisibleIds=[],this._lastVisibleMessages=[],this._lastVisibleTurnIds=new Set,this._hasMoreHistory=!1,this._withheldBuffer=[],this._unsubs=[],this._cachedNodes=[],this._lastStructuralVersion=-1,this._loadingOlder=!1,this._processingHistory=!1,this._closed=!1,this._tree=e.tree,this._channel=e.channel,this._codec=e.codec,this._sendDelegate=e.sendDelegate,this._onClose=e.onClose,this._logger=e.logger.withContext({component:`View`}),this._logger.trace(`DefaultView();`),this._emitter=new _e(this._logger),this._cachedNodes=this._computeFlatNodes(),this._lastStructuralVersion=this._tree.structuralVersion,this._updateVisibleSnapshot(this._cachedNodes),this._unsubs.push(this._tree.on(`update`,()=>{this._onTreeUpdate()}),this._tree.on(`ably-message`,e=>{this._onTreeAblyMessage(e)}),this._tree.on(`turn`,e=>{this._onTreeTurn(e)}))}getMessages(){return this.flattenNodes().map(e=>e.message)}flattenNodes(){return this._cachedNodes}_computeFlatNodes(){let e=this._tree.flattenNodes(this._resolveSelections());return this._withheldMsgIds.size===0?e:e.filter(e=>!this._withheldMsgIds.has(e.msgId))}hasOlder(){return this._withheldBuffer.length>0||this._hasMoreHistory}async loadOlder(e=100){if(!(this._closed||this._loadingOlder)){this._loadingOlder=!0,this._logger.trace(`DefaultView.loadOlder();`,{limit:e});try{if(this._withheldBuffer.length>0){let t=this._withheldBuffer.splice(-e,e);this._releaseWithheld(t);return}if(!this._hasMoreHistory&&!this._lastHistoryPage){await this._loadFirstPage(e);return}if(!this._hasMoreHistory)return;if(!this._lastHistoryPage?.hasNext()){this._hasMoreHistory=!1;return}let t=await this._lastHistoryPage.next();if(this._closed||!t){t||(this._hasMoreHistory=!1);return}await this._loadAndReveal(t,e)}catch(e){throw this._logger.error(`DefaultView.loadOlder(); failed`,{error:e}),e}finally{this._loadingOlder=!1}}}select(e,t){this._logger.trace(`DefaultView.select();`,{msgId:e,index:t});let n=this._tree.getSiblingNodes(e);if(n.length<=1)return;let r=this._tree.getGroupRoot(e),i=Math.max(0,Math.min(t,n.length-1)),a=n[i];a&&(this._branchSelections.set(r,{kind:`user`,selectedId:a.msgId}),this._logger.debug(`DefaultView.select();`,{msgId:e,index:i,selectedId:a.msgId}),this._cachedNodes=this._computeFlatNodes(),this._updateVisibleSnapshot(this._cachedNodes),this._emitter.emit(`update`))}getSelectedIndex(e){this._logger.trace(`DefaultView.getSelectedIndex();`,{msgId:e});let t=this._tree.getSiblingNodes(e);if(t.length<=1)return 0;let n=this._tree.getGroupRoot(e),r=this._branchSelections.get(n);if(!r||r.kind===`pending`)return t.length-1;let i=t.findIndex(e=>e.msgId===r.selectedId);return i===-1?t.length-1:i}getSiblings(e){return this._tree.getSiblings(e)}hasSiblings(e){return this._tree.hasSiblings(e)}getNode(e){return this._tree.getNode(e)}async send(e,t){if(this._logger.trace(`DefaultView.send();`),this._closed)throw new n.ErrorInfo(`unable to send; view is closed`,y.InvalidArgument,400);let r=this.flattenNodes(),i=await this._sendDelegate(e,t,r);if(t?.forkOf){let e=this._tree.getGroupRoot(t.forkOf);if(i.optimisticMsgIds.length>0){let t=i.optimisticMsgIds.at(-1);t&&(this._branchSelections.set(e,{kind:`auto`,selectedId:t}),this._cachedNodes=this._computeFlatNodes(),this._updateVisibleSnapshot(this._cachedNodes),this._emitter.emit(`update`))}else{this._branchSelections.set(e,{kind:`pending`,turnId:i.turnId}),this._logger.debug(`DefaultView.send(); deferring fork auto-selection`,{forkOf:t.forkOf,groupRoot:e,turnId:i.turnId});let n=this._tree.on(`turn`,t=>{if(t.type!==`x-ably-turn-end`||t.turnId!==i.turnId)return;let r=this._branchSelections.get(e);r?.kind===`pending`&&r.turnId===i.turnId&&this._branchSelections.delete(e),n();let a=this._unsubs.indexOf(n);a!==-1&&this._unsubs.splice(a,1)});this._unsubs.push(n)}}return i}async regenerate(e,t){this._logger.trace(`DefaultView.regenerate();`,{messageId:e});let r=this._tree.getNode(e);if(!r)throw new n.ErrorInfo(`unable to regenerate; message not found in tree: ${e}`,y.InvalidArgument,400);let i=r.parentId;return this.send([],{...t,body:{history:this._getHistoryBefore(e),...t?.body},forkOf:e,parent:i})}async edit(e,t,r){this._logger.trace(`DefaultView.edit();`,{messageId:e});let i=this._tree.getNode(e);if(!i)throw new n.ErrorInfo(`unable to edit; message not found in tree: ${e}`,y.InvalidArgument,400);let a=i.parentId;return this.send(t,{...r,body:{history:this._getHistoryBefore(e),...r?.body},forkOf:e,parent:a})}async update(e,t,r){if(this._closed)throw new n.ErrorInfo(`unable to update; view is closed`,y.InvalidArgument,400);this._logger.trace(`DefaultView.update();`,{msgId:e,eventCount:t.length});let i=[{kind:`event`,msgId:e,events:t}];return this._sendDelegate([],r,this.flattenNodes(),i)}_getHistoryBefore(e){this._logger.trace(`DefaultView._getHistoryBefore();`,{messageId:e});let t=this.flattenNodes(),n=t.findIndex(t=>t.msgId===e);return n===-1?(this._logger.warn(`DefaultView._getHistoryBefore(); target not in visible nodes, returning full list`,{messageId:e}),t):t.slice(0,n)}getActiveTurnIds(){this._logger.trace(`DefaultView.getActiveTurnIds();`);let e=this._tree.getActiveTurnIds();if(this._withheldMsgIds.size===0)return e;let t=new Map;for(let[n,r]of e){let e=new Set;for(let t of r)this._lastVisibleTurnIds.has(t)&&e.add(t);e.size>0&&t.set(n,e)}return t}on(e,t){let n=t;return this._emitter.on(e,n),()=>{this._emitter.off(e,n)}}close(){this._logger.info(`DefaultView.close();`),this._closed=!0,this._loadingOlder=!1;for(let e of this._unsubs)e();this._unsubs.length=0,this._emitter.off(),this._branchSelections.clear(),this._withheldMsgIds.clear(),this._withheldBuffer.length=0,this._onClose?.()}async _loadFirstPage(e){let t=new Set(this._tree.flattenNodes(this._resolveSelections()).map(e=>e.msgId)),n=await ze(this._channel,this._codec,{limit:e},this._logger);if(this._closed)return;let{newVisible:r,lastPage:i}=await this._loadUntilVisible(n,e,t);if(this._closed)return;this._lastHistoryPage=i,this._hasMoreHistory=i.hasNext();let a=r.slice(-e),o=r.slice(0,-e);for(let e of o)this._withheldMsgIds.add(e.msgId);this._withheldBuffer.push(...o),this._releaseWithheld(a)}async _loadAndReveal(e,t){let n=new Set(this._tree.flattenNodes(this._resolveSelections()).map(e=>e.msgId)),{newVisible:r,lastPage:i}=await this._loadUntilVisible(e,t,n);if(this._closed)return;this._lastHistoryPage=i,this._hasMoreHistory=i.hasNext();let a=r.slice(-t),o=r.slice(0,-t);for(let e of o)this._withheldMsgIds.add(e.msgId);this._withheldBuffer.push(...o),this._releaseWithheld(a)}_processHistoryPage(e){this._processingHistory=!0;try{for(let t of e.items){let e=t.headers[v];e&&this._tree.upsert(e,t.message,t.headers,t.serial)}for(let t of e.rawMessages)this._tree.emitAblyMessage(t)}finally{this._processingHistory=!1}}async _loadUntilVisible(e,t,n){this._processHistoryPage(e);let r=e,i=()=>{let e=0;for(let t of this._tree.flattenNodes(this._resolveSelections()))n.has(t.msgId)||e++;return e};for(;i()<t&&r.hasNext();){let e=await r.next();if(!e||this._closed)break;this._processHistoryPage(e),r=e}return{newVisible:this._tree.flattenNodes(this._resolveSelections()).filter(e=>!n.has(e.msgId)),lastPage:r}}_releaseWithheld(e){for(let t of e)this._withheldMsgIds.delete(t.msgId);e.length>0&&(this._cachedNodes=this._computeFlatNodes(),this._updateVisibleSnapshot(this._cachedNodes),this._emitter.emit(`update`))}_updateVisibleSnapshot(e){let t=e??this.flattenNodes();this._lastVisibleIds=t.map(e=>e.msgId),this._lastVisibleMessages=t.map(e=>e.message),this._lastVisibleTurnIds=new Set;for(let e of t){let t=e.headers[_];t&&this._lastVisibleTurnIds.add(t)}}_onTreeUpdate(){if(this._processingHistory)return;let e=this._tree.structuralVersion;if(e===this._lastStructuralVersion){this._cachedNodes.some((e,t)=>e.message!==this._lastVisibleMessages[t])&&(this._lastVisibleMessages=this._cachedNodes.map(e=>e.message),this._cachedNodes=[...this._cachedNodes],this._emitter.emit(`update`));return}this._lastStructuralVersion=e,this._pinBranchSelections(),this._resolvePendingSelections();let t=this._computeFlatNodes(),n=t.map(e=>e.msgId),r=t.map(e=>e.message);this._visibleChanged(n,r)&&(this._cachedNodes=t,this._updateVisibleSnapshot(t),this._emitter.emit(`update`))}_resolveSelections(){let e=new Map;for(let[t,n]of this._branchSelections)n.kind!==`pending`&&e.set(t,n.selectedId);return e}_pinBranchSelections(){for(let e of this._lastVisibleIds){if(!this._tree.hasSiblings(e))continue;let t=this._tree.getGroupRoot(e),n=this._branchSelections.get(t);if(n?.kind===`pending`){let r=this._tree.getSiblingNodes(e).at(-1);r&&r.msgId!==e&&r.headers[`x-ably-turn-id`]===n.turnId&&(this._logger.debug(`DefaultView._pinBranchSelections(); auto-selecting pending fork`,{msgId:e,newestId:r.msgId,turnId:n.turnId}),this._branchSelections.set(t,{kind:`auto`,selectedId:r.msgId}));continue}n||this._branchSelections.set(t,{kind:`pinned`,selectedId:e})}}_resolvePendingSelections(){for(let[e,t]of this._branchSelections){if(t.kind!==`pending`)continue;let n=this._tree.getSiblingNodes(e);if(n.length<=1)continue;let r=n.at(-1);!r||r.msgId===e||r.headers[`x-ably-turn-id`]===t.turnId&&(this._logger.debug(`DefaultView._resolvePendingSelections(); resolving off-branch pending`,{groupRoot:e,newestId:r.msgId,turnId:t.turnId}),this._branchSelections.set(e,{kind:`auto`,selectedId:r.msgId}))}}_onTreeAblyMessage(e){let t=Ce(e)[v];if(!t){this._emitter.emit(`ably-message`,e);return}this._lastVisibleIds.includes(t)&&this._emitter.emit(`ably-message`,e)}_onTreeTurn(e){if(this._lastVisibleTurnIds.has(e.turnId)){this._emitter.emit(`turn`,e);return}e.type===`x-ably-turn-start`&&this._isTurnStartVisible(e)&&(this._lastVisibleTurnIds.add(e.turnId),this._emitter.emit(`turn`,e))}_isTurnStartVisible(e){let{parent:t}=e;return t===void 0?!0:this._lastVisibleIds.includes(t)}_visibleChanged(e,t){if(e.length!==this._lastVisibleIds.length)return!0;for(let[t,n]of e.entries())if(n!==this._lastVisibleIds[t])return!0;for(let[e,n]of t.entries())if(n!==this._lastVisibleMessages[e])return!0;return!1}},Ve=e=>new Be(e),He=()=>{},C=function(e){return e.READY=`ready`,e.CLOSED=`closed`,e}(C||{}),Ue=class{constructor(e){if(this._ownMsgIds=new Set,this._ownTurnIds=new Set,this._turnMsgIds=new Map,this._turnObservers=new Map,this._closeResolvers=[],this._views=new Set,this._state=C.READY,this._pendingLocalEvents=[],this._channel=e.channel,this._codec=e.codec,this._clientId=e.clientId,this._api=e.api,this._credentials=e.credentials,this._headersFn=typeof e.headers==`function`?e.headers:e.headers?()=>e.headers:void 0,this._bodyFn=typeof e.body==`function`?e.body:e.body?()=>e.body:void 0,this._fetchFn=e.fetch??globalThis.fetch.bind(globalThis),this._logger=(e.logger??ye({logLevel:b.Silent})).withContext({component:`ClientTransport`}),this._emitter=new _e(this._logger),this._hasAttachedOnce=this._channel.state===`attached`,this._tree=Ne(this._logger),this._view=Ve({tree:this._tree,channel:this._channel,codec:this._codec,sendDelegate:this._internalSend.bind(this),logger:this._logger,onClose:()=>this._views.delete(this._view)}),this._router=je(this._codec.isTerminal.bind(this._codec),this._logger),this._decoder=this._codec.createDecoder(),this._views.add(this._view),this.tree=this._tree,this.view=this._view,e.messages){let t;for(let n of e.messages){let e=crypto.randomUUID(),r={[v]:e};t&&(r[ce]=t),this._tree.upsert(e,n,r),t=e}}this._onMessage=e=>{this._handleMessage(e)},this._attachPromise=this._channel.subscribe(this._onMessage),this._onChannelStateChange=e=>{this._handleChannelStateChange(e)},this._channel.on(this._onChannelStateChange)}_handleMessage(e){if(this._state!==C.CLOSED)try{if(e.name===`x-ably-turn-start`){let t=Ce(e),n=t[_],r=t[`x-ably-turn-client-id`]??``;if(n){this._tree.trackTurn(n,r);let e=t[ce],i=t[le];this._tree.emitTurn({type:de,turnId:n,clientId:r,...e!==void 0&&{parent:e},...i!==void 0&&{forkOf:i}})}this._tree.emitAblyMessage(e);return}if(e.name===`x-ably-turn-end`){let t=Ce(e),n=t[_],r=t[`x-ably-turn-client-id`]??``,i=t[`x-ably-turn-reason`]??`complete`;if(n){this._router.closeStream(n),this._turnObservers.delete(n),this._tree.untrackTurn(n);let e=this._turnMsgIds.get(n);if(e){for(let t of e)this._ownMsgIds.delete(t);this._turnMsgIds.delete(n)}this._ownTurnIds.delete(n),this._tree.emitTurn({type:fe,turnId:n,clientId:r,reason:i})}this._tree.emitAblyMessage(e);return}let t=this._decoder.decode(e),n=Ce(e),r=e.serial,i=n[re];if(i){for(let e of t)e.kind===`event`&&this._handleAmendmentEvent(i,e);return}let a=n[_];a&&this._updateTurnObserverHeaders(a,n,r);for(let i of t)i.kind===`message`?this._handleMessageOutput(i.message,n,r,e.action):this._handleEventOutput(i,n);this._tree.emitAblyMessage(e)}catch(e){let t=e instanceof n.ErrorInfo?e:void 0;this._emitter.emit(`error`,new n.ErrorInfo(`unable to process channel message; ${e instanceof Error?e.message:String(e)}`,y.TransportSubscriptionError,500,t))}}_handleMessageOutput(e,t,n,r){let i=t[v];if(i&&this._ownMsgIds.has(i)){this._upsertAndNotify(e,t,n);return}r===`message.create`&&this._upsertAndNotify(e,t,n)}_handleEventOutput(e,t){if(e.kind!==`event`)return;let n=e.event,r=t[_];if(r){if(this._router.route(r,n)){this._accumulateAndEmit(r,e),this._codec.isTerminal(n)&&this._turnObservers.delete(r);return}this._ownTurnIds.has(r)&&!this._turnObservers.has(r)||(this._accumulateAndEmit(r,e),this._codec.isTerminal(n)&&this._turnObservers.delete(r))}}_handleAmendmentEvent(e,t){this._logger.trace(`ClientTransport._handleAmendmentEvent();`,{targetMsgId:e});let n=this._tree.getNode(e);if(!n){this._logger.debug(`ClientTransport._handleAmendmentEvent(); target not found, dropping`,{targetMsgId:e});return}let r=this._codec.createAccumulator();r.initMessage(e,n.message),r.processOutputs([t]);let i=r.messages.at(-1);i&&this._tree.upsert(e,i,n.headers,n.serial)}_handleChannelStateChange(e){if(this._state===C.CLOSED)return;let{current:t,resumed:r}=e;if(t===`attached`&&!this._hasAttachedOnce){this._hasAttachedOnce=!0;return}if(!(t===`failed`||t===`suspended`||t===`detached`||t===`attached`&&!r))return;this._logger.error(`ClientTransport._handleChannelStateChange(); channel continuity lost`,{current:t,resumed:r,previous:e.previous});let i=new n.ErrorInfo(`unable to deliver events; channel continuity lost (${t}${t===`attached`?`, resumed: false`:``})`,y.ChannelContinuityLost,500,e.reason);for(let e of this._ownTurnIds)this._router.errorStream(e,i);this._emitter.emit(`error`,i)}_upsertAndNotify(e,t,n){let r=t[v];r&&this._tree.upsert(r,e,t,n)}_updateTurnObserverHeaders(e,t,n){let r=this._turnObservers.get(e);r?(Object.keys(t).length>0&&Object.assign(r.headers,t),n!==void 0&&(r.serial=n)):this._turnObservers.set(e,{headers:{...t},serial:n,accumulator:this._codec.createAccumulator()})}_accumulateAndEmit(e,t){let n=this._turnObservers.get(e);if(!n)return;let r=n.headers[v];if(r){let e=this._tree.getNode(r);e&&n.accumulator.initMessage(r,e.message)}n.accumulator.processOutputs([t]);let i=n.accumulator.messages;if(i.length===0)return;let a;try{a=structuredClone(i.at(-1))}catch{a=i.at(-1)}if(a){let e=n.headers[v];e&&this._tree.upsert(e,a,{...n.headers},n.serial)}}async _publishCancel(e){this._logger.trace(`ClientTransport._publishCancel();`,{filter:e});let t={};e.turnId?t[ie]=e.turnId:e.own?t[ae]=`true`:e.clientId?t[se]=e.clientId:e.all&&(t[oe]=`true`),await this._channel.publish({name:ue,extras:{headers:t}})}_closeMatchingTurnStreams(e){for(let t of this._getMatchingTurnIds(e))this._router.closeStream(t)}_getMatchingTurnIds(e){let t=new Set,n=this._tree.getActiveTurnIds();if(e.all)for(let e of n.values())for(let n of e)t.add(n);else if(e.own){let e=n.get(this._clientId??``);if(e)for(let n of e)t.add(n)}else if(e.clientId){let r=n.get(e.clientId);if(r)for(let e of r)t.add(e)}else if(e.turnId){for(let r of n.values())if(r.has(e.turnId)){t.add(e.turnId);break}}return t}createView(){if(this._state===C.CLOSED)throw new n.ErrorInfo(`unable to create view; transport is closed`,y.TransportClosed,400);this._logger.trace(`DefaultClientTransport.createView();`);let e=Ve({tree:this._tree,channel:this._channel,codec:this._codec,sendDelegate:this._internalSend.bind(this),logger:this._logger,onClose:()=>this._views.delete(e)});return this._views.add(e),e}async _internalSend(e,t,r,i){if(this._state===C.CLOSED||(await this._attachPromise,this._state===C.CLOSED))throw new n.ErrorInfo(`unable to send; transport is closed`,y.TransportClosed,400);let a=this._channel.state;if(a!==`attached`&&a!==`attaching`)throw new n.ErrorInfo(`unable to send; channel is ${a}`,y.ChannelNotReady,400);this._logger.trace(`ClientTransport._internalSend();`);let o=Array.isArray(e)?e:[e],s=crypto.randomUUID();this._ownTurnIds.add(s),this._tree.trackTurn(s,this._clientId??``);let c=this._pendingLocalEvents;this._pendingLocalEvents=[],i&&i.length>0&&this._applyEventsToTree(i);let l=[...c,...i??[]],u=new Set,d=[],f=r,p;if(t?.parent===void 0&&!t?.forkOf){let e=f.at(-1);e&&(p=e.msgId)}let m=t?.parent===void 0?p:t.parent;for(let e of o){let n=crypto.randomUUID();this._ownMsgIds.add(n),u.add(n);let r=t?.parent===void 0?p:t.parent,i=ke({role:`user`,turnId:s,msgId:n,turnClientId:this._clientId,parent:r,forkOf:t?.forkOf});this._upsertAndNotify(e,i),d.push({kind:`message`,message:e,msgId:n,parentId:r,forkOf:t?.forkOf,headers:i,serial:void 0}),t?.parent===void 0&&!t?.forkOf&&(p=n)}this._turnMsgIds.set(s,u);let h=this._router.createStream(s),ee=this._headersFn?.()??{},g={...this._bodyFn?.()??{},history:f,...t?.body,turnId:s,clientId:this._clientId,messages:d,...t?.forkOf!==void 0&&{forkOf:t.forkOf},...m!==void 0&&{parent:m},...l.length>0&&{events:l}},_={...ee,...t?.headers};return this._fetchFn(this._api,{method:`POST`,headers:{"Content-Type":`application/json`,..._},body:JSON.stringify(g),...this._credentials?{credentials:this._credentials}:{}}).then(e=>{if(!e.ok){let t=new n.ErrorInfo(`unable to send; HTTP POST to ${this._api} returned ${String(e.status)} ${e.statusText}`,y.TransportSendFailed,e.status);this._emitter.emit(`error`,t),this._router.errorStream(s,t)}}).catch(e=>{let t=e instanceof n.ErrorInfo?e:void 0,r=new n.ErrorInfo(`unable to send; HTTP POST to ${this._api} failed: ${e instanceof Error?e.message:String(e)}`,y.TransportSendFailed,500,t);this._emitter.emit(`error`,r),this._router.errorStream(s,r)}),{stream:h,turnId:s,cancel:async()=>this.cancel({turnId:s}),optimisticMsgIds:[...u]}}async cancel(e){if(this._state===C.CLOSED)return;let t=e??{own:!0};this._logger.debug(`ClientTransport.cancel();`,{filter:t}),await this._publishCancel(t),this._closeMatchingTurnStreams(t)}stageEvents(e,t){if(this._logger.trace(`ClientTransport.stageEvents();`,{msgId:e,eventCount:t.length}),this._state===C.CLOSED){this._logger.warn(`ClientTransport.stageEvents(); transport is closed`,{msgId:e});return}if(!this._tree.getNode(e)){this._logger.warn(`ClientTransport.stageEvents(); msgId not found in tree`,{msgId:e});return}if(t.length===0)return;let n={kind:`event`,msgId:e,events:t};this._applyEventsToTree([n]),this._pendingLocalEvents.push(n)}stageMessage(e,t){if(this._logger.trace(`ClientTransport.stageMessage();`,{msgId:e}),this._state===C.CLOSED){this._logger.warn(`ClientTransport.stageMessage(); transport is closed`,{msgId:e});return}let n=this._tree.getNode(e);if(!n){this._logger.warn(`ClientTransport.stageMessage(); msgId not found in tree`,{msgId:e});return}this._tree.upsert(e,t,n.headers,n.serial)}_applyEventsToTree(e){for(let t of e){let e=this._tree.getNode(t.msgId);if(!e)continue;let n=t.events.map(e=>({kind:`event`,event:e,messageId:t.msgId})),r=this._codec.createAccumulator();r.initMessage(t.msgId,e.message),r.processOutputs(n);let i=r.messages.at(-1);i&&this._tree.upsert(t.msgId,i,e.headers,e.serial)}}async waitForTurn(e){if(this._state===C.CLOSED)return;let t=e??{own:!0},n=this._getMatchingTurnIds(t);if(n.size!==0)return this._logger.debug(`ClientTransport.waitForTurn();`,{turnIds:[...n]}),new Promise(e=>{let t=!1,r=()=>{if(t)return;t=!0,i();let n=this._closeResolvers.indexOf(r);n!==-1&&this._closeResolvers.splice(n,1),e()},i=this._tree.on(`turn`,e=>{e.type===`x-ably-turn-end`&&(n.delete(e.turnId),n.size===0&&r())});this._closeResolvers.push(r)})}on(e,t){if(this._state===C.CLOSED)return He;let n=t;return this._emitter.on(e,n),()=>{this._emitter.off(e,n)}}async close(e){if(this._state!==C.CLOSED){if(this._state=C.CLOSED,this._logger.info(`ClientTransport.close();`),e?.cancel){try{await this._publishCancel(e.cancel)}catch{}this._closeMatchingTurnStreams(e.cancel)}this._channel.unsubscribe(this._onMessage),this._channel.off(this._onChannelStateChange);for(let e of this._ownTurnIds)this._router.closeStream(e);this._turnObservers.clear(),this._emitter.off();for(let e of this._views)e.close();this._views.clear();for(let e of this._closeResolvers)e();this._closeResolvers.length=0,this._ownTurnIds.clear(),this._ownMsgIds.clear(),this._turnMsgIds.clear()}}},We=e=>new Ue(e),Ge=({channelName:e,children:a,...o})=>{let{channel:s}=(0,r.useChannel)({channelName:e}),c=(0,t.useRef)(void 0),l=(0,t.useRef)(e),u=(0,t.useRef)([]),d=(0,t.useRef)(!1),m=(0,t.useRef)(void 0);if(!(c.current||m.current)||l.current!==e){l.current=e,c.current&&u.current.push(c.current);try{c.current=We({...o,channel:s}),m.current=void 0}catch(e){c.current=void 0,m.current=e instanceof n.ErrorInfo?e:new n.ErrorInfo(`Unknown error while creating transport`,y.BadRequest,400)}}let h=(0,t.useContext)(f),ee=c.current,g=m.current,_=(0,t.useMemo)(()=>({transport:ee,error:g}),[ee,g]),v=(0,t.useMemo)(()=>({...h,[e]:_}),[e,h,_]);return(0,t.useEffect)(()=>()=>{for(let e of u.current)e.close()},[e]),(0,t.useEffect)(()=>(d.current=!1,()=>{d.current=!0,Promise.resolve().then(()=>{d.current&&c.current?.close()})}),[]),(0,i.jsx)(f.Provider,{value:v,children:(0,i.jsx)(p.Provider,{value:_,children:a})})},Ke=e=>(0,i.jsx)(r.ChannelProvider,{channelName:e.channelName,children:(0,i.jsx)(Ge,{...e})}),qe=({transport:e,skip:n}={})=>{let r=(0,t.useContext)(p),i=n?void 0:e??r?.transport,[a,o]=(0,t.useState)([]),s=(0,t.useRef)([]);return(0,t.useEffect)(()=>{if(s.current=[],o([]),i)return i.tree.on(`ably-message`,e=>{let t=[...s.current,e];s.current=t,o(t)})},[i]),a},Je=({transport:e}={})=>{let n=(0,t.useContext)(p),r=e??n?.transport,[i,a]=(0,t.useState)(()=>new Map);return(0,t.useEffect)(()=>{if(r)return a(r.tree.getActiveTurnIds()),r.tree.on(`turn`,e=>{a(t=>{let n=new Map(t);if(e.type===`x-ably-turn-start`){let t=new Set(n.get(e.clientId));t.add(e.turnId),n.set(e.clientId,t)}else{let t=n.get(e.clientId);if(t){let r=new Set(t);r.delete(e.turnId),r.size===0?n.delete(e.clientId):n.set(e.clientId,r)}}return n})})},[r]),i},Ye={get tree(){throw new n.ErrorInfo(`unable to access tree; hook is skipped`,y.InvalidArgument,400)},get view(){throw new n.ErrorInfo(`unable to access view; hook is skipped`,y.InvalidArgument,400)},createView:()=>{throw new n.ErrorInfo(`unable to create view; hook is skipped`,y.InvalidArgument,400)},cancel:()=>{throw new n.ErrorInfo(`unable to cancel; hook is skipped`,y.InvalidArgument,400)},stageEvents:()=>{throw new n.ErrorInfo(`unable to stage events; hook is skipped`,y.InvalidArgument,400)},stageMessage:()=>{throw new n.ErrorInfo(`unable to stage message; hook is skipped`,y.InvalidArgument,400)},waitForTurn:()=>{throw new n.ErrorInfo(`unable to wait for turn; hook is skipped`,y.InvalidArgument,400)},on:()=>{throw new n.ErrorInfo(`unable to subscribe; hook is skipped`,y.InvalidArgument,400)},close:()=>{throw new n.ErrorInfo(`unable to close; hook is skipped`,y.InvalidArgument,400)}},Xe=({channelName:e,skip:r,onError:i}={})=>{let a=(0,t.useContext)(f),o=(0,t.useContext)(p),s=(0,t.useRef)(i);s.current=i;let c=r?void 0:e===void 0?o?.transport:a[e]?.transport;if((0,t.useEffect)(()=>{if(c)return c.on(`error`,e=>{s.current?.(e)})},[c]),r)return{transport:Ye};if(e!==void 0){let t=a[e];return t?t.transport?{transport:t.transport}:{transport:Ye,transportError:t.error}:{transport:Ye,transportError:new n.ErrorInfo(`unable to use transport; no TransportProvider found for channelName "${e}"`,y.BadRequest,400)}}return o?o.transport?{transport:o.transport}:{transport:Ye,transportError:o.error}:{transport:Ye,transportError:new n.ErrorInfo(`unable to use transport; no TransportProvider found in the tree`,y.BadRequest,400)}},Ze=({transport:e,view:r,limit:i,skip:a}={})=>{let o=(0,t.useContext)(p),s=a?void 0:e??o?.transport,c=a?void 0:r??s?.view,[l,u]=(0,t.useState)(()=>c?.flattenNodes()??[]),[d,f]=(0,t.useState)(()=>c?.hasOlder()??!1),[m,h]=(0,t.useState)(!1),[ee,g]=(0,t.useState)(),_=(0,t.useRef)(!1),v=i!==void 0,te=(0,t.useRef)(!1);(0,t.useEffect)(()=>{if(!c){u([]),f(!1),g(void 0);return}return te.current=!1,u(c.flattenNodes()),f(c.hasOlder()),g(void 0),c.on(`update`,()=>{u(c.flattenNodes()),f(c.hasOlder())})},[c]);let ne=(0,t.useCallback)(async()=>{if(!(!c||_.current)){_.current=!0,h(!0);try{await c.loadOlder(i),g(void 0)}catch(e){e instanceof n.ErrorInfo?g(e):g(new n.ErrorInfo(`Unknown error loading older messages`,y.BadRequest,400))}finally{_.current=!1,h(!1)}}},[c,i]);return(0,t.useEffect)(()=>{!v||te.current||!c||(te.current=!0,ne())},[v,c,ne]),{messages:(0,t.useMemo)(()=>l.map(e=>e.message),[l]),nodes:l,hasOlder:d,loading:m,loadError:ee,loadOlder:ne,select:(0,t.useCallback)((e,t)=>{c?.select(e,t)},[c]),getSelectedIndex:(0,t.useCallback)(e=>c?.getSelectedIndex(e)??0,[c]),getSiblings:(0,t.useCallback)(e=>c?.getSiblings(e)??[],[c]),hasSiblings:(0,t.useCallback)(e=>c?.hasSiblings(e)??!1,[c]),getNode:(0,t.useCallback)(e=>c?.getNode(e),[c]),send:(0,t.useCallback)(async(e,t)=>{if(!c)throw new n.ErrorInfo(`unable to send; view is not available`,y.InvalidArgument,400);return c.send(e,t)},[c]),regenerate:(0,t.useCallback)(async(e,t)=>{if(!c)throw new n.ErrorInfo(`unable to regenerate; view is not available`,y.InvalidArgument,400);return c.regenerate(e,t)},[c]),edit:(0,t.useCallback)(async(e,t,r)=>{if(!c)throw new n.ErrorInfo(`unable to edit; view is not available`,y.InvalidArgument,400);return c.edit(e,t,r)},[c]),update:(0,t.useCallback)(async(e,t,r)=>{if(!c)throw new n.ErrorInfo(`unable to update; view is not available`,y.InvalidArgument,400);return c.update(e,t,r)},[c])}},Qe=({transport:e,limit:n,skip:r}={})=>{let i=(0,t.useContext)(p),a=r?void 0:e??i?.transport,[o,s]=(0,t.useState)();return(0,t.useEffect)(()=>{if(!a){s(void 0);return}let e=a.createView();return s(e),()=>{e.close()}},[a]),Ze({view:o,limit:n,skip:r})},$e=({transport:e}={})=>{let n=(0,t.useContext)(p),r=e??n?.transport;return{getSiblings:(0,t.useCallback)(e=>r?.tree.getSiblings(e)??[],[r]),hasSiblings:(0,t.useCallback)(e=>r?.tree.hasSiblings(e)??!1,[r]),getNode:(0,t.useCallback)(e=>r?.tree.getNode(e),[r])}},et=()=>({TransportProvider:Ke,useClientTransport:e=>Xe(e??{}),useView:e=>Ze(e??{}),useActiveTurns:e=>Je(e??{}),useTree:e=>$e(e??{}),useAblyMessages:e=>qe(e??{}),useCreateView:e=>Qe(e??{})}),tt=e=>x({type:`dynamic-tool`,toolCallId:e.toolCallId,toolName:e.toolName,title:e.title,providerExecuted:e.providerExecuted}),nt=(e,t)=>{let n=tt(e);switch(t.type){case`tool-output-available`:return x({...n,state:`output-available`,input:e.input,output:t.output,preliminary:t.preliminary});case`tool-output-error`:return{...n,state:`output-error`,input:e.input,errorText:t.errorText};case`tool-output-denied`:return{...n,state:`output-denied`,input:e.input,approval:{id:``,approved:!1}};case`tool-approval-request`:return{...n,state:`approval-requested`,input:e.input,approval:{id:t.approvalId}}}},rt=class{constructor(e){this._activeIndex=new Map,this._partType=e}start(e,t,n){this._activeIndex.set(e,t.parts.length),t.parts.push({type:this._partType,text:``}),n.set(e,`streaming`)}delta(e,t,n){let r=this._activeIndex.get(e);if(r===void 0)return;let i=t.parts[r];i?.type===this._partType&&(i.text+=n)}end(e,t){t.set(e,`finished`),this._activeIndex.delete(e)}reset(){this._activeIndex=new Map}},it=class{constructor(){this._messageList=[],this._activeMessages=new Map}get messages(){return this._messageList}get completedMessages(){let e=new Set;for(let t of this._activeMessages.values())e.add(t.message);return this._messageList.filter(t=>!e.has(t))}get hasActiveStream(){for(let e of this._activeMessages.values())for(let t of e.streamStatus.values())if(t===`streaming`)return!0;return!1}processOutputs(e){for(let t of e)t.kind===`message`?this._messageList.push(t.message):t.messageId!==void 0&&this._processEvent(t.event,t.messageId)}updateMessage(e){let t=this._messageList.findIndex(t=>t.id===e.id);t!==-1&&(this._messageList[t]=e)}initMessage(e,t){let n=this._activeMessages.get(e);if(n){let e=structuredClone(t),r=this._messageList.indexOf(n.message);n.message=e,r!==-1&&(this._messageList[r]=e),n.toolTrackers={};for(let t=0;t<e.parts.length;t++){let r=e.parts[t];r?.type===`dynamic-tool`&&(n.toolTrackers[r.toolCallId]={partIndex:t,inputText:``},n.streamStatus.set(r.toolCallId,`finished`))}return}let r=structuredClone(t),i={},a=new Map;for(let e=0;e<r.parts.length;e++){let t=r.parts[e];t?.type===`dynamic-tool`&&(i[t.toolCallId]={partIndex:e,inputText:``},a.set(t.toolCallId,`finished`))}let o={message:r,textStreams:new rt(`text`),reasoningStreams:new rt(`reasoning`),toolTrackers:i,streamStatus:a};this._activeMessages.set(e,o);let s=this._messageList.findIndex(e=>e.id===t.id);s===-1?this._messageList.push(o.message):this._messageList[s]=o.message}completeMessage(e){this._activeMessages.delete(e)}_ensureActiveMessage(e){let t=this._activeMessages.get(e);if(t)return t;let n={message:{id:e,role:`assistant`,parts:[]},textStreams:new rt(`text`),reasoningStreams:new rt(`reasoning`),toolTrackers:{},streamStatus:new Map};return this._activeMessages.set(e,n),this._messageList.push(n.message),n}_getToolPart(e,t){let n=t.toolTrackers[e];if(!n)return;let r=t.message.parts[n.partIndex];if(r?.type===`dynamic-tool`)return{tracker:n,part:r}}_processEvent(e,t){switch(e.type){case`start`:case`start-step`:case`finish-step`:case`finish`:case`abort`:case`error`:case`message-metadata`:this._processLifecycle(e,t);break;case`text-start`:case`text-delta`:case`text-end`:case`reasoning-start`:case`reasoning-delta`:case`reasoning-end`:this._processTextOrReasoning(e,t);break;case`tool-input-start`:case`tool-input-delta`:case`tool-input-available`:case`tool-input-error`:this._processToolInput(e,t);break;case`tool-output-available`:case`tool-output-error`:case`tool-output-denied`:case`tool-approval-request`:this._processToolOutput(e,t);break;case`file`:case`source-url`:case`source-document`:this._processContentPart(e,t);break;default:if(e.type.startsWith(`data-`)){if(e.transient)break;let n=this._ensureActiveMessage(t),r=x({type:e.type,id:e.id,data:e.data});if(e.id!==void 0){let t=n.message.parts.findIndex(t=>t.type===e.type&&`id`in t&&t.id===e.id);if(t!==-1){n.message.parts[t]=r;break}}n.message.parts.push(r)}break}}_processLifecycle(e,t){switch(e.type){case`start`:{let n=this._ensureActiveMessage(t);e.messageId&&(n.message.id=e.messageId),e.messageMetadata!==void 0&&(n.message.metadata=e.messageMetadata);break}case`start-step`:this._ensureActiveMessage(t).message.parts.push({type:`step-start`});break;case`finish-step`:{let e=this._activeMessages.get(t);e&&(e.textStreams.reset(),e.reasoningStreams.reset());break}case`finish`:{let n=this._activeMessages.get(t);n&&e.messageMetadata!==void 0&&(n.message.metadata=e.messageMetadata),this._activeMessages.delete(t);break}case`abort`:{let e=this._activeMessages.get(t);if(e)for(let[t,n]of e.streamStatus)n===`streaming`&&e.streamStatus.set(t,`aborted`);this._activeMessages.delete(t);break}case`error`:break;case`message-metadata`:{let n=this._activeMessages.get(t);n&&e.messageMetadata!==void 0&&(n.message.metadata=e.messageMetadata);break}}}_processTextOrReasoning(e,t){let n=this._ensureActiveMessage(t);switch(e.type){case`text-start`:n.textStreams.start(e.id,n.message,n.streamStatus);break;case`text-delta`:n.textStreams.delta(e.id,n.message,e.delta);break;case`text-end`:n.textStreams.end(e.id,n.streamStatus);break;case`reasoning-start`:n.reasoningStreams.start(e.id,n.message,n.streamStatus);break;case`reasoning-delta`:n.reasoningStreams.delta(e.id,n.message,e.delta);break;case`reasoning-end`:n.reasoningStreams.end(e.id,n.streamStatus);break}}_processToolInput(e,t){switch(e.type){case`tool-input-start`:{let n=this._ensureActiveMessage(t),r=n.message.parts.length;n.message.parts.push({...tt(e),state:`input-streaming`,input:void 0}),n.toolTrackers[e.toolCallId]={partIndex:r,inputText:``},n.streamStatus.set(e.toolCallId,`streaming`);break}case`tool-input-delta`:{let n=this._ensureActiveMessage(t),r=n.toolTrackers[e.toolCallId];if(!r)break;r.inputText+=e.inputTextDelta;let i;try{i=JSON.parse(r.inputText)}catch{i=void 0}let a=this._getToolPart(e.toolCallId,n);if(!a)break;n.message.parts[a.tracker.partIndex]={...tt(a.part),state:`input-streaming`,input:i};break}case`tool-input-available`:{let n=this._ensureActiveMessage(t),r=this._getToolPart(e.toolCallId,n);if(!r)break;n.message.parts[r.tracker.partIndex]={...tt(r.part),state:`input-available`,input:e.input},n.streamStatus.set(e.toolCallId,`finished`);break}case`tool-input-error`:{let n=this._ensureActiveMessage(t),r=this._getToolPart(e.toolCallId,n);if(r)n.message.parts[r.tracker.partIndex]={...tt(r.part),state:`output-error`,input:e.input,errorText:e.errorText};else{let t=n.message.parts.length;n.message.parts.push({...tt(e),state:`output-error`,input:e.input,errorText:e.errorText}),n.toolTrackers[e.toolCallId]={partIndex:t,inputText:``}}n.streamStatus.set(e.toolCallId,`finished`);break}}}_processToolOutput(e,t){let n=this._ensureActiveMessage(t),r=this._getToolPart(e.toolCallId,n);r&&(n.message.parts[r.tracker.partIndex]=nt(r.part,e))}_processContentPart(e,t){let n=this._ensureActiveMessage(t);switch(e.type){case`file`:n.message.parts.push({type:`file`,mediaType:e.mediaType,url:e.url});break;case`source-url`:n.message.parts.push(x({type:`source-url`,sourceId:e.sourceId,url:e.url,title:e.title}));break;case`source-document`:n.message.parts.push(x({type:`source-document`,sourceId:e.sourceId,mediaType:e.mediaType,title:e.title,filename:e.filename}));break}}},at=()=>new it,ot=e=>[{kind:`event`,event:e}],st=class{constructor(e,t={}){this._serialState=new Map,this._hooks=e,this._onStreamUpdate=t.onStreamUpdate,this._onStreamDelete=t.onStreamDelete,this._logger=t.logger?.withContext({component:`DecoderCore`})}decode(e){let t=e.action;this._logger?.trace(`DefaultDecoderCore.decode();`,{action:t,serial:e.serial,name:e.name});let n;switch(t){case`message.create`:{let t=this._toPayload(e);n=t.headers?.[`x-ably-stream`]===`true`?this._decodeStreamedCreate(t,e.serial):this._hooks.decodeDiscrete(t);break}case`message.append`:n=this._decodeAppend(e);break;case`message.update`:n=this._decodeUpdate(e);break;case`message.delete`:n=this._decodeDelete(e);break;default:return[]}let r=Ce(e)[v];if(r)for(let e of n)e.kind===`event`&&(e.messageId=r);return n}_toPayload(e){return{name:e.name??``,data:e.data,headers:Ce(e)}}_stringData(e){return typeof e.data==`string`?e.data:``}_invokeOnStreamUpdate(e){if(this._onStreamUpdate)try{this._onStreamUpdate(e)}catch(e){this._logger?.error(`DefaultDecoderCore._invokeOnStreamUpdate(); callback threw`,{error:e})}}_invokeOnStreamDelete(e,t){if(this._onStreamDelete)try{this._onStreamDelete(e,t)}catch(e){this._logger?.error(`DefaultDecoderCore._invokeOnStreamDelete(); callback threw`,{error:e})}}_decodeStreamedCreate(e,t){if(!t)return[];let n=e.headers?.[`x-ably-stream-id`]??``,r=e.headers??{},i={name:e.name,streamId:n,accumulated:``,headers:{...r},closed:!1};return this._serialState.set(t,i),this._logger?.debug(`DefaultDecoderCore._decodeStreamedCreate(); new stream`,{name:e.name,streamId:n,serial:t}),this._hooks.buildStartEvents(i)}_decodeAppend(e){let t=e.serial;if(!t)return[];let n=this._serialState.get(t);if(!n)return this._decodeUpdate(e);let r=Ce(e),i=typeof e.data==`string`?e.data:``,a=r[h],o=[];return i.length>0&&(n.accumulated+=i,o.push(...this._hooks.buildDeltaEvents(n,i))),a===`finished`&&!n.closed?(n.closed=!0,o.push(...this._hooks.buildEndEvents(n,r)),this._logger?.debug(`DefaultDecoderCore._decodeAppend(); stream finished`,{streamId:n.streamId})):a===`aborted`&&!n.closed&&(n.closed=!0,this._logger?.debug(`DefaultDecoderCore._decodeAppend(); stream aborted`,{streamId:n.streamId})),o}_decodeUpdate(e){let t=e.serial;if(!t)return[];let n=this._toPayload(e),r=n.headers??{},i=r[m]===`true`,a=r[h],o=this._serialState.get(t);if(!o)return this._decodeFirstContact(n,i,a,t);let s=this._stringData(e);if(s.startsWith(o.accumulated)){let e=s.slice(o.accumulated.length),t=[];return e.length>0&&(o.accumulated=s,t.push(...this._hooks.buildDeltaEvents(o,e))),a===`finished`&&!o.closed?(o.closed=!0,t.push(...this._hooks.buildEndEvents(o,r))):a===`aborted`&&!o.closed&&(o.closed=!0),t}return o.accumulated=s,o.headers={...r},this._invokeOnStreamUpdate(o),[]}_decodeFirstContact(e,t,n,r){if(!t)return this._hooks.decodeDiscrete(e);let i=e.headers?.[`x-ably-stream-id`]??``,a=e.headers??{},o=typeof e.data==`string`?e.data:``;this._logger?.debug(`DefaultDecoderCore._decodeFirstContact(); first-contact stream`,{name:e.name,streamId:i,serial:r});let s={name:e.name,streamId:i,accumulated:o,headers:{...a},closed:n===`finished`||n===`aborted`};this._serialState.set(r,s);let c=this._hooks.buildStartEvents(s);return o.length>0&&c.push(...this._hooks.buildDeltaEvents(s,o)),n===`finished`&&c.push(...this._hooks.buildEndEvents(s,a)),c}_decodeDelete(e){let t=e.serial;if(!t)return[];let n=this._serialState.get(t);return this._invokeOnStreamDelete(t,n),n&&(n.accumulated=``,n.closed=!0),this._logger?.debug(`DefaultDecoderCore._decodeDelete();`,{serial:t}),[]}},ct=(e,t={})=>new st(e,t),lt=class{constructor(e){this._emitted=new Map,this._phases=e}ensurePhases(e,t){let n=this._getOrCreate(e),r=[];for(let e of this._phases)n.has(e.key)||(n.add(e.key),r.push(...e.build(t)));return r}markEmitted(e,t){this._getOrCreate(e).add(t)}resetPhase(e,t){this._emitted.get(e)?.delete(t)}clearScope(e){this._emitted.delete(e)}_getOrCreate(e){let t=this._emitted.get(e);return t||(t=new Set,this._emitted.set(e,t)),t}},ut=e=>new lt(e),dt=e=>{let t=Oe(e);return{...t,providerMetadata:()=>t.json(`providerMetadata`)}},w=e=>ot(e),ft=(e,t)=>e===`stop`||e===`length`||e===`content-filter`||e===`tool-calls`||e===`error`||e===`other`?e:t,pt=e=>e.startsWith(`data-`),mt=e=>{if(e)try{return JSON.parse(e)}catch{return e}},ht=e=>{let t=dt(e.headers);switch(e.name){case`text`:return x({type:`text-start`,id:e.streamId,providerMetadata:t.providerMetadata()});case`reasoning`:return x({type:`reasoning-start`,id:e.streamId,providerMetadata:t.providerMetadata()});case`tool-input`:return x({type:`tool-input-start`,toolCallId:e.streamId,toolName:t.strOr(`toolName`,``),dynamic:t.bool(`dynamic`),title:t.str(`title`),providerExecuted:t.bool(`providerExecuted`),providerMetadata:t.providerMetadata()});default:return{type:`text-start`,id:e.streamId}}},gt=(e,t)=>{switch(e.name){case`text`:return{type:`text-delta`,id:e.streamId,delta:t};case`reasoning`:return{type:`reasoning-delta`,id:e.streamId,delta:t};case`tool-input`:return{type:`tool-input-delta`,toolCallId:e.streamId,inputTextDelta:t};default:return{type:`text-delta`,id:e.streamId,delta:t}}},_t=(e,t)=>{let n=dt(t);switch(e.name){case`text`:return x({type:`text-end`,id:e.streamId,providerMetadata:n.providerMetadata()});case`reasoning`:return x({type:`reasoning-end`,id:e.streamId,providerMetadata:n.providerMetadata()});case`tool-input`:return x({type:`tool-input-available`,toolCallId:e.streamId,toolName:n.strOr(`toolName`,dt(e.headers).strOr(`toolName`,``)),input:mt(e.accumulated),providerMetadata:n.providerMetadata()});default:return{type:`text-end`,id:e.streamId}}},vt=()=>ut([{key:`start`,build:e=>[x({type:`start`,messageId:e.messageId})]},{key:`start-step`,build:()=>[{type:`start-step`}]}]),yt=(e,t,n)=>e.ensurePhases(t,n).map(e=>({kind:`event`,event:e})),bt=(e,t,n)=>(n.markEmitted(t,`start`),w(x({type:`start`,messageId:e.str(`messageId`),messageMetadata:e.json(`messageMetadata`)}))),xt=(e,t)=>(t.markEmitted(e,`start-step`),w({type:`start-step`})),St=(e,t)=>(t.resetPhase(e,`start-step`),w({type:`finish-step`})),Ct=(e,t,n)=>(n.clearScope(t),w(x({type:`finish`,finishReason:ft(e.str(`finishReason`),`stop`),messageMetadata:e.json(`messageMetadata`)}))),wt=(e,t,n)=>(n.clearScope(t),w({type:`error`,errorText:typeof e==`string`?e:``})),Tt=(e,t,n)=>(n.clearScope(t),w(x({type:`abort`,reason:typeof e==`string`&&e?e:void 0}))),Et=e=>w({type:`message-metadata`,messageMetadata:e.json(`messageMetadata`)}),Dt=(e,t)=>w(x({type:`file`,url:typeof t==`string`?t:``,mediaType:e.strOr(`mediaType`,``),providerMetadata:e.providerMetadata()})),Ot=(e,t)=>w(x({type:`source-url`,sourceId:e.strOr(`sourceId`,``),url:typeof t==`string`?t:``,title:e.str(`title`),providerMetadata:e.providerMetadata()})),kt=e=>w(x({type:`source-document`,sourceId:e.strOr(`sourceId`,``),mediaType:e.strOr(`mediaType`,``),title:e.strOr(`title`,``),filename:e.str(`filename`),providerMetadata:e.providerMetadata()})),At=(e,t)=>{let n=t;return w(x({type:`tool-input-error`,toolCallId:e.strOr(`toolCallId`,``),toolName:e.strOr(`toolName`,``),errorText:n?.errorText??``,input:n?.input,dynamic:e.bool(`dynamic`),title:e.str(`title`),providerExecuted:e.bool(`providerExecuted`),providerMetadata:e.providerMetadata()}))},jt=(e,t)=>{let n=t;return w(x({type:`tool-output-available`,toolCallId:e.strOr(`toolCallId`,``),output:n?.output,dynamic:e.bool(`dynamic`),providerExecuted:e.bool(`providerExecuted`),preliminary:e.bool(`preliminary`)}))},Mt=(e,t)=>{let n=t;return w(x({type:`tool-output-error`,toolCallId:e.strOr(`toolCallId`,``),errorText:n?.errorText??``,dynamic:e.bool(`dynamic`),providerExecuted:e.bool(`providerExecuted`)}))},Nt=e=>w({type:`tool-approval-request`,toolCallId:e.strOr(`toolCallId`,``),approvalId:e.strOr(`approvalId`,``)}),Pt=e=>w({type:`tool-output-denied`,toolCallId:e.strOr(`toolCallId`,``)}),Ft=(e,t,n)=>w(x({type:e,data:n,id:t.str(`id`),transient:t.bool(`transient`)})),It=(e,t,n,r)=>{let i=yt(r,n,{messageId:e.str(`messageId`)});return i.push({kind:`event`,event:x({type:`tool-input-start`,toolCallId:e.strOr(`toolCallId`,``),toolName:e.strOr(`toolName`,``),dynamic:e.bool(`dynamic`),title:e.str(`title`),providerExecuted:e.bool(`providerExecuted`),providerMetadata:e.providerMetadata()})},{kind:`event`,event:x({type:`tool-input-available`,toolCallId:e.strOr(`toolCallId`,``),toolName:e.strOr(`toolName`,``),input:t,providerMetadata:e.providerMetadata()})}),i},Lt=e=>{let t=e.headers??{},n=dt(t),r=t[`x-ably-role`]??`user`,i=n.str(`messageId`)??``,a;switch(e.name){case`text`:a={type:`text`,text:typeof e.data==`string`?e.data:``};break;case`file`:a={type:`file`,mediaType:n.strOr(`mediaType`,``),url:typeof e.data==`string`?e.data:``};break;default:pt(e.name)&&(a=x({type:e.name,id:n.str(`id`),data:e.data}));break}return a?[{kind:`message`,message:{id:i,role:r,parts:[a]}}]:[]},Rt=(e,t)=>(e===`text`||e===`file`||pt(e))&&`x-ably-discrete`in t,zt=(e,t)=>{let n=e.headers??{},r=dt(n),i=n[`x-ably-turn-id`]??``;if(Rt(e.name,n))return Lt(e);if(e.name===`tool-input`)return It(r,e.data,i,t);switch(e.name){case`start`:return bt(r,i,t);case`start-step`:return xt(i,t);case`finish-step`:return St(i,t);case`finish`:return Ct(r,i,t);case`error`:return wt(e.data,i,t);case`abort`:return Tt(e.data,i,t);case`message-metadata`:return Et(r);case`file`:return Dt(r,e.data);case`source-url`:return Ot(r,e.data);case`source-document`:return kt(r);case`tool-input-error`:return At(r,e.data);case`tool-output-available`:return jt(r,e.data);case`tool-output-error`:return Mt(r,e.data);case`tool-approval-request`:return Nt(r);case`tool-output-denied`:return Pt(r);default:return pt(e.name)?Ft(e.name,r,e.data):[]}},Bt=e=>({buildStartEvents:t=>{let n=yt(e,t.headers[`x-ably-turn-id`]??``,{messageId:dt(t.headers).str(`messageId`)});return n.push({kind:`event`,event:ht(t)}),n},buildDeltaEvents:(e,t)=>w(gt(e,t)),buildEndEvents:(e,t)=>w(_t(e,t)),decodeDiscrete:t=>zt(t,e)}),Vt=class{constructor(e={}){this._core=ct(Bt(vt()),e)}decode(e){return this._core.decode(e)}},Ht=(e={})=>new Vt(e),Ut=`vercel.ai.error`,Wt=Symbol.for(Ut),Gt,Kt,qt=class e extends (Kt=Error,Gt=Wt,Kt){constructor({name:e,message:t,cause:n}){super(t),this[Gt]=!0,this.name=e,this.cause=n}static isInstance(t){return e.hasMarker(t,Ut)}static hasMarker(e,t){let n=Symbol.for(t);return typeof e==`object`&&!!e&&n in e&&typeof e[n]==`boolean`&&e[n]===!0}};function Jt(e){return e==null?`unknown error`:typeof e==`string`?e:e instanceof Error?e.message:JSON.stringify(e)}var Yt=`AI_InvalidArgumentError`,Xt=`vercel.ai.error.${Yt}`,Zt=Symbol.for(Xt),Qt,$t,en=class extends ($t=qt,Qt=Zt,$t){constructor({message:e,cause:t,argument:n}){super({name:Yt,message:e,cause:t}),this[Qt]=!0,this.argument=n}static isInstance(e){return qt.hasMarker(e,Xt)}},tn=`AI_JSONParseError`,nn=`vercel.ai.error.${tn}`,rn=Symbol.for(nn),an,on,sn=class extends (on=qt,an=rn,on){constructor({text:e,cause:t}){super({name:tn,message:`JSON parsing failed: Text: ${e}.
2
- Error message: ${Jt(t)}`,cause:t}),this[an]=!0,this.text=e}static isInstance(e){return qt.hasMarker(e,nn)}},cn=`AI_TypeValidationError`,ln=`vercel.ai.error.${cn}`,un=Symbol.for(ln),dn,fn,pn=class e extends (fn=qt,dn=un,fn){constructor({value:e,cause:t,context:n}){let r=`Type validation failed`;if(n?.field&&(r+=` for ${n.field}`),n?.entityName||n?.entityId){r+=` (`;let e=[];n.entityName&&e.push(n.entityName),n.entityId&&e.push(`id: "${n.entityId}"`),r+=e.join(`, `),r+=`)`}super({name:cn,message:`${r}: Value: ${JSON.stringify(e)}.
3
- Error message: ${Jt(t)}`,cause:t}),this[dn]=!0,this.value=e,this.context=n}static isInstance(e){return qt.hasMarker(e,ln)}static wrap({value:t,cause:n,context:r}){return e.isInstance(n)&&n.value===t&&n.context?.field===r?.field&&n.context?.entityName===r?.entityName&&n.context?.entityId===r?.entityId?n:new e({value:t,cause:n,context:r})}};Object.freeze({status:`aborted`});function T(e,t,n){function r(n,r){if(n._zod||Object.defineProperty(n,`_zod`,{value:{def:r,constr:o,traits:new Set},enumerable:!1}),n._zod.traits.has(e))return;n._zod.traits.add(e),t(n,r);let i=o.prototype,a=Object.keys(i);for(let e=0;e<a.length;e++){let t=a[e];t in n||(n[t]=i[t].bind(n))}}let i=n?.Parent??Object;class a extends i{}Object.defineProperty(a,`name`,{value:e});function o(e){var t;let i=n?.Parent?new a:this;r(i,e),(t=i._zod).deferred??(t.deferred=[]);for(let e of i._zod.deferred)e();return i}return Object.defineProperty(o,`init`,{value:r}),Object.defineProperty(o,Symbol.hasInstance,{value:t=>n?.Parent&&t instanceof n.Parent?!0:t?._zod?.traits?.has(e)}),Object.defineProperty(o,`name`,{value:e}),o}var mn=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}},hn=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name=`ZodEncodeError`}},gn={};function _n(e){return e&&Object.assign(gn,e),gn}function vn(e){let t=Object.values(e).filter(e=>typeof e==`number`);return Object.entries(e).filter(([e,n])=>t.indexOf(+e)===-1).map(([e,t])=>t)}function yn(e,t){return typeof t==`bigint`?t.toString():t}function bn(e){return{get value(){{let t=e();return Object.defineProperty(this,`value`,{value:t}),t}throw Error(`cached value already set`)}}}function xn(e){return e==null}function Sn(e){let t=+!!e.startsWith(`^`),n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}function Cn(e,t){let n=(e.toString().split(`.`)[1]||``).length,r=t.toString(),i=(r.split(`.`)[1]||``).length;if(i===0&&/\d?e-\d?/.test(r)){let e=r.match(/\d?e-(\d?)/);e?.[1]&&(i=Number.parseInt(e[1]))}let a=n>i?n:i;return Number.parseInt(e.toFixed(a).replace(`.`,``))%Number.parseInt(t.toFixed(a).replace(`.`,``))/10**a}var wn=Symbol(`evaluating`);function E(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==wn)return r===void 0&&(r=wn,r=n()),r},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function Tn(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function En(...e){let t={};for(let n of e)Object.assign(t,Object.getOwnPropertyDescriptors(n));return Object.defineProperties({},t)}function Dn(e){return JSON.stringify(e)}function On(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,``).replace(/[\s_-]+/g,`-`).replace(/^-+|-+$/g,``)}var kn=`captureStackTrace`in Error?Error.captureStackTrace:(...e)=>{};function An(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var jn=bn(()=>{if(typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{return Function(``),!0}catch{return!1}});function Mn(e){if(An(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!=`function`)return!0;let n=t.prototype;return!(An(n)===!1||Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)===!1)}function Nn(e){return Mn(e)?{...e}:Array.isArray(e)?[...e]:e}var Pn=new Set([`string`,`number`,`symbol`]);function Fn(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function In(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function D(e){let t=e;if(!t)return{};if(typeof t==`string`)return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error==`string`?{...t,error:()=>t.error}:t}function Ln(e){return Object.keys(e).filter(t=>e[t]._zod.optin===`optional`&&e[t]._zod.optout===`optional`)}var Rn={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function zn(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.pick() cannot be used on object schemas containing refinements`);return In(e,En(e._zod.def,{get shape(){let e={};for(let r in t){if(!(r in n.shape))throw Error(`Unrecognized key: "${r}"`);t[r]&&(e[r]=n.shape[r])}return Tn(this,`shape`,e),e},checks:[]}))}function Bn(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.omit() cannot be used on object schemas containing refinements`);return In(e,En(e._zod.def,{get shape(){let r={...e._zod.def.shape};for(let e in t){if(!(e in n.shape))throw Error(`Unrecognized key: "${e}"`);t[e]&&delete r[e]}return Tn(this,`shape`,r),r},checks:[]}))}function Vn(e,t){if(!Mn(t))throw Error(`Invalid input to extend: expected a plain object`);let n=e._zod.def.checks;if(n&&n.length>0){let n=e._zod.def.shape;for(let e in t)if(Object.getOwnPropertyDescriptor(n,e)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return In(e,En(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return Tn(this,`shape`,n),n}}))}function Hn(e,t){if(!Mn(t))throw Error(`Invalid input to safeExtend: expected a plain object`);return In(e,En(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return Tn(this,`shape`,n),n}}))}function Un(e,t){return In(e,En(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return Tn(this,`shape`,n),n},get catchall(){return t._zod.def.catchall},checks:[]}))}function Wn(e,t,n){let r=t._zod.def.checks;if(r&&r.length>0)throw Error(`.partial() cannot be used on object schemas containing refinements`);return In(t,En(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in r))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t])}else for(let t in r)i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t];return Tn(this,`shape`,i),i},checks:[]}))}function Gn(e,t,n){return In(t,En(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in i))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=new e({type:`nonoptional`,innerType:r[t]}))}else for(let t in r)i[t]=new e({type:`nonoptional`,innerType:r[t]});return Tn(this,`shape`,i),i}}))}function Kn(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function qn(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function Jn(e){return typeof e==`string`?e:e?.message}function Yn(e,t,n){let r={...e,path:e.path??[]};return e.message||(r.message=Jn(e.inst?._zod.def?.error?.(e))??Jn(t?.error?.(e))??Jn(n.customError?.(e))??Jn(n.localeError?.(e))??`Invalid input`),delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function Xn(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}function Zn(...e){let[t,n,r]=e;return typeof t==`string`?{message:t,code:`custom`,input:n,inst:r}:{...t}}var Qn=(e,t)=>{e.name=`$ZodError`,Object.defineProperty(e,`_zod`,{value:e._zod,enumerable:!1}),Object.defineProperty(e,`issues`,{value:t,enumerable:!1}),e.message=JSON.stringify(t,yn,2),Object.defineProperty(e,`toString`,{value:()=>e.message,enumerable:!1})},$n=T(`$ZodError`,Qn),er=T(`$ZodError`,Qn,{Parent:Error});function tr(e,t=e=>e.message){let n={},r=[];for(let i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}function nr(e,t=e=>e.message){let n={_errors:[]},r=e=>{for(let i of e.issues)if(i.code===`invalid_union`&&i.errors.length)i.errors.map(e=>r({issues:e}));else if(i.code===`invalid_key`)r({issues:i.issues});else if(i.code===`invalid_element`)r({issues:i.issues});else if(i.path.length===0)n._errors.push(t(i));else{let e=n,r=0;for(;r<i.path.length;){let n=i.path[r];r===i.path.length-1?(e[n]=e[n]||{_errors:[]},e[n]._errors.push(t(i))):e[n]=e[n]||{_errors:[]},e=e[n],r++}}};return r(e),n}var rr=e=>(t,n,r,i)=>{let a=r?Object.assign(r,{async:!1}):{async:!1},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise)throw new mn;if(o.issues.length){let t=new(i?.Err??e)(o.issues.map(e=>Yn(e,a,_n())));throw kn(t,i?.callee),t}return o.value},ir=e=>async(t,n,r,i)=>{let a=r?Object.assign(r,{async:!0}):{async:!0},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise&&(o=await o),o.issues.length){let t=new(i?.Err??e)(o.issues.map(e=>Yn(e,a,_n())));throw kn(t,i?.callee),t}return o.value},ar=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise)throw new mn;return a.issues.length?{success:!1,error:new(e??$n)(a.issues.map(e=>Yn(e,i,_n())))}:{success:!0,data:a.value}},or=ar(er),sr=e=>async(t,n,r)=>{let i=r?Object.assign(r,{async:!0}):{async:!0},a=t._zod.run({value:n,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?{success:!1,error:new e(a.issues.map(e=>Yn(e,i,_n())))}:{success:!0,data:a.value}},cr=sr(er),lr=e=>(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return rr(e)(t,n,i)},ur=e=>(t,n,r)=>rr(e)(t,n,r),dr=e=>async(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return ir(e)(t,n,i)},fr=e=>async(t,n,r)=>ir(e)(t,n,r),pr=e=>(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return ar(e)(t,n,i)},mr=e=>(t,n,r)=>ar(e)(t,n,r),hr=e=>async(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return sr(e)(t,n,i)},gr=e=>async(t,n,r)=>sr(e)(t,n,r),_r=/^[cC][^\s-]{8,}$/,vr=/^[0-9a-z]+$/,yr=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,br=/^[0-9a-vA-V]{20}$/,xr=/^[A-Za-z0-9]{27}$/,Sr=/^[a-zA-Z0-9_-]{21}$/,Cr=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,wr=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,Tr=e=>e?RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,Er=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Dr=`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`;function Or(){return new RegExp(Dr,`u`)}var kr=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Ar=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,jr=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Mr=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Nr=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Pr=/^[A-Za-z0-9_-]*$/,Fr=/^\+[1-9]\d{6,14}$/,Ir=`(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))`,Lr=RegExp(`^${Ir}$`);function Rr(e){let t=`(?:[01]\\d|2[0-3]):[0-5]\\d`;return typeof e.precision==`number`?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function zr(e){return RegExp(`^${Rr(e)}$`)}function Br(e){let t=Rr({precision:e.precision}),n=[`Z`];e.local&&n.push(``),e.offset&&n.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`);let r=`${t}(?:${n.join(`|`)})`;return RegExp(`^${Ir}T(?:${r})$`)}var Vr=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??``}}`:`[\\s\\S]*`;return RegExp(`^${t}$`)},Hr=/^-?\d+$/,Ur=/^-?\d+(?:\.\d+)?$/,Wr=/^(?:true|false)$/i,Gr=/^null$/i,Kr=/^[^A-Z]*$/,qr=/^[^a-z]*$/,O=T(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),Jr={number:`number`,bigint:`bigint`,object:`date`},Yr=T(`$ZodCheckLessThan`,(e,t)=>{O.init(e,t);let n=Jr[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.maximum:n.exclusiveMaximum)??1/0;t.value<r&&(t.inclusive?n.maximum=t.value:n.exclusiveMaximum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value<=t.value:r.value<t.value)||r.issues.push({origin:n,code:`too_big`,maximum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Xr=T(`$ZodCheckGreaterThan`,(e,t)=>{O.init(e,t);let n=Jr[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.minimum:n.exclusiveMinimum)??-1/0;t.value>r&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:`too_small`,minimum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Zr=T(`$ZodCheckMultipleOf`,(e,t)=>{O.init(e,t),e._zod.onattach.push(e=>{var n;(n=e._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw Error(`Cannot mix number and bigint in multiple_of check.`);(typeof n.value==`bigint`?n.value%t.value===BigInt(0):Cn(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:`not_multiple_of`,divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),Qr=T(`$ZodCheckNumberFormat`,(e,t)=>{O.init(e,t),t.format=t.format||`float64`;let n=t.format?.includes(`int`),r=n?`int`:`number`,[i,a]=Rn[t.format];e._zod.onattach.push(e=>{let r=e._zod.bag;r.format=t.format,r.minimum=i,r.maximum=a,n&&(r.pattern=Hr)}),e._zod.check=o=>{let s=o.value;if(n){if(!Number.isInteger(s)){o.issues.push({expected:r,format:t.format,code:`invalid_type`,continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?o.issues.push({input:s,code:`too_big`,maximum:2**53-1,note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort}):o.issues.push({input:s,code:`too_small`,minimum:-(2**53-1),note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort});return}}s<i&&o.issues.push({origin:`number`,input:s,code:`too_small`,minimum:i,inclusive:!0,inst:e,continue:!t.abort}),s>a&&o.issues.push({origin:`number`,input:s,code:`too_big`,maximum:a,inclusive:!0,inst:e,continue:!t.abort})}}),$r=T(`$ZodCheckMaxLength`,(e,t)=>{var n;O.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!xn(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.maximum??1/0;t.maximum<n&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let r=n.value;if(r.length<=t.maximum)return;let i=Xn(r);n.issues.push({origin:i,code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),ei=T(`$ZodCheckMinLength`,(e,t)=>{var n;O.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!xn(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.minimum??-1/0;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let r=n.value;if(r.length>=t.minimum)return;let i=Xn(r);n.issues.push({origin:i,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),ti=T(`$ZodCheckLengthEquals`,(e,t)=>{var n;O.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!xn(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=n=>{let r=n.value,i=r.length;if(i===t.length)return;let a=Xn(r),o=i>t.length;n.issues.push({origin:a,...o?{code:`too_big`,maximum:t.length}:{code:`too_small`,minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),ni=T(`$ZodCheckStringFormat`,(e,t)=>{var n,r;O.init(e,t),e._zod.onattach.push(e=>{let n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??=new Set,n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),ri=T(`$ZodCheckRegex`,(e,t)=>{ni.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:`regex`,input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),ii=T(`$ZodCheckLowerCase`,(e,t)=>{t.pattern??=Kr,ni.init(e,t)}),ai=T(`$ZodCheckUpperCase`,(e,t)=>{t.pattern??=qr,ni.init(e,t)}),oi=T(`$ZodCheckIncludes`,(e,t)=>{O.init(e,t);let n=Fn(t.includes),r=new RegExp(typeof t.position==`number`?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(r)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:`string`,code:`invalid_format`,format:`includes`,includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),si=T(`$ZodCheckStartsWith`,(e,t)=>{O.init(e,t);let n=RegExp(`^${Fn(t.prefix)}.*`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`starts_with`,prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),ci=T(`$ZodCheckEndsWith`,(e,t)=>{O.init(e,t);let n=RegExp(`.*${Fn(t.suffix)}$`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`ends_with`,suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),li=T(`$ZodCheckOverwrite`,(e,t)=>{O.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}}),ui=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),--this.indent}write(e){if(typeof e==`function`){e(this,{execution:`sync`}),e(this,{execution:`async`});return}let t=e.split(`
4
- `).filter(e=>e),n=Math.min(...t.map(e=>e.length-e.trimStart().length)),r=t.map(e=>e.slice(n)).map(e=>` `.repeat(this.indent*2)+e);for(let e of r)this.content.push(e)}compile(){let e=Function,t=this?.args,n=[...(this?.content??[``]).map(e=>` ${e}`)];return new e(...t,n.join(`
5
- `))}},di={major:4,minor:3,patch:6},k=T(`$ZodType`,(e,t)=>{var n;e??={},e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=di;let r=[...e._zod.def.checks??[]];e._zod.traits.has(`$ZodCheck`)&&r.unshift(e);for(let t of r)for(let n of t._zod.onattach)n(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let t=(e,t,n)=>{let r=Kn(e),i;for(let a of t){if(a._zod.def.when){if(!a._zod.def.when(e))continue}else if(r)continue;let t=e.issues.length,o=a._zod.check(e);if(o instanceof Promise&&n?.async===!1)throw new mn;if(i||o instanceof Promise)i=(i??Promise.resolve()).then(async()=>{await o,e.issues.length!==t&&(r||=Kn(e,t))});else{if(e.issues.length===t)continue;r||=Kn(e,t)}}return i?i.then(()=>e):e},n=(n,i,a)=>{if(Kn(n))return n.aborted=!0,n;let o=t(i,r,a);if(o instanceof Promise){if(a.async===!1)throw new mn;return o.then(t=>e._zod.parse(t,a))}return e._zod.parse(o,a)};e._zod.run=(i,a)=>{if(a.skipChecks)return e._zod.parse(i,a);if(a.direction===`backward`){let t=e._zod.parse({value:i.value,issues:[]},{...a,skipChecks:!0});return t instanceof Promise?t.then(e=>n(e,i,a)):n(t,i,a)}let o=e._zod.parse(i,a);if(o instanceof Promise){if(a.async===!1)throw new mn;return o.then(e=>t(e,r,a))}return t(o,r,a)}}E(e,`~standard`,()=>({validate:t=>{try{let n=or(e,t);return n.success?{value:n.data}:{issues:n.error?.issues}}catch{return cr(e,t).then(e=>e.success?{value:e.data}:{issues:e.error?.issues})}},vendor:`zod`,version:1}))}),fi=T(`$ZodString`,(e,t)=>{k.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??Vr(e._zod.bag),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value==`string`||n.issues.push({expected:`string`,code:`invalid_type`,input:n.value,inst:e}),n}}),A=T(`$ZodStringFormat`,(e,t)=>{ni.init(e,t),fi.init(e,t)}),pi=T(`$ZodGUID`,(e,t)=>{t.pattern??=wr,A.init(e,t)}),mi=T(`$ZodUUID`,(e,t)=>{if(t.version){let e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(e===void 0)throw Error(`Invalid UUID version: "${t.version}"`);t.pattern??=Tr(e)}else t.pattern??=Tr();A.init(e,t)}),hi=T(`$ZodEmail`,(e,t)=>{t.pattern??=Er,A.init(e,t)}),gi=T(`$ZodURL`,(e,t)=>{A.init(e,t),e._zod.check=n=>{try{let r=n.value.trim(),i=new URL(r);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(i.hostname)||n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid hostname`,pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(i.protocol.endsWith(`:`)?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid protocol`,pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),t.normalize?n.value=i.href:n.value=r;return}catch{n.issues.push({code:`invalid_format`,format:`url`,input:n.value,inst:e,continue:!t.abort})}}}),_i=T(`$ZodEmoji`,(e,t)=>{t.pattern??=Or(),A.init(e,t)}),vi=T(`$ZodNanoID`,(e,t)=>{t.pattern??=Sr,A.init(e,t)}),yi=T(`$ZodCUID`,(e,t)=>{t.pattern??=_r,A.init(e,t)}),bi=T(`$ZodCUID2`,(e,t)=>{t.pattern??=vr,A.init(e,t)}),xi=T(`$ZodULID`,(e,t)=>{t.pattern??=yr,A.init(e,t)}),Si=T(`$ZodXID`,(e,t)=>{t.pattern??=br,A.init(e,t)}),Ci=T(`$ZodKSUID`,(e,t)=>{t.pattern??=xr,A.init(e,t)}),wi=T(`$ZodISODateTime`,(e,t)=>{t.pattern??=Br(t),A.init(e,t)}),Ti=T(`$ZodISODate`,(e,t)=>{t.pattern??=Lr,A.init(e,t)}),Ei=T(`$ZodISOTime`,(e,t)=>{t.pattern??=zr(t),A.init(e,t)}),Di=T(`$ZodISODuration`,(e,t)=>{t.pattern??=Cr,A.init(e,t)}),Oi=T(`$ZodIPv4`,(e,t)=>{t.pattern??=kr,A.init(e,t),e._zod.bag.format=`ipv4`}),ki=T(`$ZodIPv6`,(e,t)=>{t.pattern??=Ar,A.init(e,t),e._zod.bag.format=`ipv6`,e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:`invalid_format`,format:`ipv6`,input:n.value,inst:e,continue:!t.abort})}}}),Ai=T(`$ZodCIDRv4`,(e,t)=>{t.pattern??=jr,A.init(e,t)}),ji=T(`$ZodCIDRv6`,(e,t)=>{t.pattern??=Mr,A.init(e,t),e._zod.check=n=>{let r=n.value.split(`/`);try{if(r.length!==2)throw Error();let[e,t]=r;if(!t)throw Error();let n=Number(t);if(`${n}`!==t||n<0||n>128)throw Error();new URL(`http://[${e}]`)}catch{n.issues.push({code:`invalid_format`,format:`cidrv6`,input:n.value,inst:e,continue:!t.abort})}}});function Mi(e){if(e===``)return!0;if(e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}var Ni=T(`$ZodBase64`,(e,t)=>{t.pattern??=Nr,A.init(e,t),e._zod.bag.contentEncoding=`base64`,e._zod.check=n=>{Mi(n.value)||n.issues.push({code:`invalid_format`,format:`base64`,input:n.value,inst:e,continue:!t.abort})}});function Pi(e){if(!Pr.test(e))return!1;let t=e.replace(/[-_]/g,e=>e===`-`?`+`:`/`);return Mi(t.padEnd(Math.ceil(t.length/4)*4,`=`))}var Fi=T(`$ZodBase64URL`,(e,t)=>{t.pattern??=Pr,A.init(e,t),e._zod.bag.contentEncoding=`base64url`,e._zod.check=n=>{Pi(n.value)||n.issues.push({code:`invalid_format`,format:`base64url`,input:n.value,inst:e,continue:!t.abort})}}),Ii=T(`$ZodE164`,(e,t)=>{t.pattern??=Fr,A.init(e,t)});function Li(e,t=null){try{let n=e.split(`.`);if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let i=JSON.parse(atob(r));return!(`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&(!(`alg`in i)||i.alg!==t))}catch{return!1}}var Ri=T(`$ZodJWT`,(e,t)=>{A.init(e,t),e._zod.check=n=>{Li(n.value,t.alg)||n.issues.push({code:`invalid_format`,format:`jwt`,input:n.value,inst:e,continue:!t.abort})}}),zi=T(`$ZodNumber`,(e,t)=>{k.init(e,t),e._zod.pattern=e._zod.bag.pattern??Ur,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}let i=n.value;if(typeof i==`number`&&!Number.isNaN(i)&&Number.isFinite(i))return n;let a=typeof i==`number`?Number.isNaN(i)?`NaN`:Number.isFinite(i)?void 0:`Infinity`:void 0;return n.issues.push({expected:`number`,code:`invalid_type`,input:i,inst:e,...a?{received:a}:{}}),n}}),Bi=T(`$ZodNumberFormat`,(e,t)=>{Qr.init(e,t),zi.init(e,t)}),Vi=T(`$ZodBoolean`,(e,t)=>{k.init(e,t),e._zod.pattern=Wr,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}let i=n.value;return typeof i==`boolean`||n.issues.push({expected:`boolean`,code:`invalid_type`,input:i,inst:e}),n}}),Hi=T(`$ZodNull`,(e,t)=>{k.init(e,t),e._zod.pattern=Gr,e._zod.values=new Set([null]),e._zod.parse=(t,n)=>{let r=t.value;return r===null||t.issues.push({expected:`null`,code:`invalid_type`,input:r,inst:e}),t}}),Ui=T(`$ZodUnknown`,(e,t)=>{k.init(e,t),e._zod.parse=e=>e}),Wi=T(`$ZodNever`,(e,t)=>{k.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:`never`,code:`invalid_type`,input:t.value,inst:e}),t)});function Gi(e,t,n){e.issues.length&&t.issues.push(...qn(n,e.issues)),t.value[n]=e.value}var Ki=T(`$ZodArray`,(e,t)=>{k.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Array.isArray(i))return n.issues.push({expected:`array`,code:`invalid_type`,input:i,inst:e}),n;n.value=Array(i.length);let a=[];for(let e=0;e<i.length;e++){let o=i[e],s=t.element._zod.run({value:o,issues:[]},r);s instanceof Promise?a.push(s.then(t=>Gi(t,n,e))):Gi(s,n,e)}return a.length?Promise.all(a).then(()=>n):n}});function qi(e,t,n,r,i){if(e.issues.length){if(i&&!(n in r))return;t.issues.push(...qn(n,e.issues))}e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function Ji(e){let t=Object.keys(e.shape);for(let n of t)if(!e.shape?.[n]?._zod?.traits?.has(`$ZodType`))throw Error(`Invalid element at key "${n}": expected a Zod schema`);let n=Ln(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function Yi(e,t,n,r,i,a){let o=[],s=i.keySet,c=i.catchall._zod,l=c.def.type,u=c.optout===`optional`;for(let i in t){if(s.has(i))continue;if(l===`never`){o.push(i);continue}let a=c.run({value:t[i],issues:[]},r);a instanceof Promise?e.push(a.then(e=>qi(e,n,i,t,u))):qi(a,n,i,t,u)}return o.length&&n.issues.push({code:`unrecognized_keys`,keys:o,input:t,inst:a}),e.length?Promise.all(e).then(()=>n):n}var Xi=T(`$ZodObject`,(e,t)=>{if(k.init(e,t),!Object.getOwnPropertyDescriptor(t,`shape`)?.get){let e=t.shape;Object.defineProperty(t,`shape`,{get:()=>{let n={...e};return Object.defineProperty(t,`shape`,{value:n}),n}})}let n=bn(()=>Ji(t));E(e._zod,`propValues`,()=>{let e=t.shape,n={};for(let t in e){let r=e[t]._zod;if(r.values){n[t]??(n[t]=new Set);for(let e of r.values)n[t].add(e)}}return n});let r=An,i=t.catchall,a;e._zod.parse=(t,o)=>{a??=n.value;let s=t.value;if(!r(s))return t.issues.push({expected:`object`,code:`invalid_type`,input:s,inst:e}),t;t.value={};let c=[],l=a.shape;for(let e of a.keys){let n=l[e],r=n._zod.optout===`optional`,i=n._zod.run({value:s[e],issues:[]},o);i instanceof Promise?c.push(i.then(n=>qi(n,t,e,s,r))):qi(i,t,e,s,r)}return i?Yi(c,s,t,o,n.value,e):c.length?Promise.all(c).then(()=>t):t}}),Zi=T(`$ZodObjectJIT`,(e,t)=>{Xi.init(e,t);let n=e._zod.parse,r=bn(()=>Ji(t)),i=e=>{let t=new ui([`shape`,`payload`,`ctx`]),n=r.value,i=e=>{let t=Dn(e);return`shape[${t}]._zod.run({ value: input[${t}], issues: [] }, ctx)`};t.write(`const input = payload.value;`);let a=Object.create(null),o=0;for(let e of n.keys)a[e]=`key_${o++}`;t.write(`const newResult = {};`);for(let r of n.keys){let n=a[r],o=Dn(r),s=e[r]?._zod?.optout===`optional`;t.write(`const ${n} = ${i(r)};`),s?t.write(`
6
- if (${n}.issues.length) {
7
- if (${o} in input) {
8
- payload.issues = payload.issues.concat(${n}.issues.map(iss => ({
9
- ...iss,
10
- path: iss.path ? [${o}, ...iss.path] : [${o}]
11
- })));
12
- }
13
- }
14
-
15
- if (${n}.value === undefined) {
16
- if (${o} in input) {
17
- newResult[${o}] = undefined;
18
- }
19
- } else {
20
- newResult[${o}] = ${n}.value;
21
- }
22
-
23
- `):t.write(`
24
- if (${n}.issues.length) {
25
- payload.issues = payload.issues.concat(${n}.issues.map(iss => ({
26
- ...iss,
27
- path: iss.path ? [${o}, ...iss.path] : [${o}]
28
- })));
29
- }
30
-
31
- if (${n}.value === undefined) {
32
- if (${o} in input) {
33
- newResult[${o}] = undefined;
34
- }
35
- } else {
36
- newResult[${o}] = ${n}.value;
37
- }
38
-
39
- `)}t.write(`payload.value = newResult;`),t.write(`return payload;`);let s=t.compile();return(t,n)=>s(e,t,n)},a,o=An,s=!gn.jitless,c=s&&jn.value,l=t.catchall,u;e._zod.parse=(d,f)=>{u??=r.value;let p=d.value;return o(p)?s&&c&&f?.async===!1&&f.jitless!==!0?(a||=i(t.shape),d=a(d,f),l?Yi([],p,d,f,u,e):d):n(d,f):(d.issues.push({expected:`object`,code:`invalid_type`,input:p,inst:e}),d)}});function Qi(e,t,n,r){for(let n of e)if(n.issues.length===0)return t.value=n.value,t;let i=e.filter(e=>!Kn(e));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:`invalid_union`,input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>Yn(e,r,_n())))}),t)}var $i=T(`$ZodUnion`,(e,t)=>{k.init(e,t),E(e._zod,`optin`,()=>t.options.some(e=>e._zod.optin===`optional`)?`optional`:void 0),E(e._zod,`optout`,()=>t.options.some(e=>e._zod.optout===`optional`)?`optional`:void 0),E(e._zod,`values`,()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),E(e._zod,`pattern`,()=>{if(t.options.every(e=>e._zod.pattern)){let e=t.options.map(e=>e._zod.pattern);return RegExp(`^(${e.map(e=>Sn(e.source)).join(`|`)})$`)}});let n=t.options.length===1,r=t.options[0]._zod.run;e._zod.parse=(i,a)=>{if(n)return r(i,a);let o=!1,s=[];for(let e of t.options){let t=e._zod.run({value:i.value,issues:[]},a);if(t instanceof Promise)s.push(t),o=!0;else{if(t.issues.length===0)return t;s.push(t)}}return o?Promise.all(s).then(t=>Qi(t,i,e,a)):Qi(s,i,e,a)}}),ea=T(`$ZodDiscriminatedUnion`,(e,t)=>{t.inclusive=!1,$i.init(e,t);let n=e._zod.parse;E(e._zod,`propValues`,()=>{let e={};for(let n of t.options){let r=n._zod.propValues;if(!r||Object.keys(r).length===0)throw Error(`Invalid discriminated union option at index "${t.options.indexOf(n)}"`);for(let[t,n]of Object.entries(r)){e[t]||(e[t]=new Set);for(let r of n)e[t].add(r)}}return e});let r=bn(()=>{let e=t.options,n=new Map;for(let r of e){let e=r._zod.propValues?.[t.discriminator];if(!e||e.size===0)throw Error(`Invalid discriminated union option at index "${t.options.indexOf(r)}"`);for(let t of e){if(n.has(t))throw Error(`Duplicate discriminator value "${String(t)}"`);n.set(t,r)}}return n});e._zod.parse=(i,a)=>{let o=i.value;if(!An(o))return i.issues.push({code:`invalid_type`,expected:`object`,input:o,inst:e}),i;let s=r.value.get(o?.[t.discriminator]);return s?s._zod.run(i,a):t.unionFallback?n(i,a):(i.issues.push({code:`invalid_union`,errors:[],note:`No matching discriminator`,discriminator:t.discriminator,input:o,path:[t.discriminator],inst:e}),i)}}),ta=T(`$ZodIntersection`,(e,t)=>{k.init(e,t),e._zod.parse=(e,n)=>{let r=e.value,i=t.left._zod.run({value:r,issues:[]},n),a=t.right._zod.run({value:r,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([t,n])=>ra(e,t,n)):ra(e,i,a)}});function na(e,t){if(e===t||e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(Mn(e)&&Mn(t)){let n=Object.keys(t),r=Object.keys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=na(e[n],t[n]);if(!r.valid)return{valid:!1,mergeErrorPath:[n,...r.mergeErrorPath]};i[n]=r.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=na(i,a);if(!o.valid)return{valid:!1,mergeErrorPath:[r,...o.mergeErrorPath]};n.push(o.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function ra(e,t,n){let r=new Map,i;for(let n of t.issues)if(n.code===`unrecognized_keys`){i??=n;for(let e of n.keys)r.has(e)||r.set(e,{}),r.get(e).l=!0}else e.issues.push(n);for(let t of n.issues)if(t.code===`unrecognized_keys`)for(let e of t.keys)r.has(e)||r.set(e,{}),r.get(e).r=!0;else e.issues.push(t);let a=[...r].filter(([,e])=>e.l&&e.r).map(([e])=>e);if(a.length&&i&&e.issues.push({...i,keys:a}),Kn(e))return e;let o=na(t.value,n.value);if(!o.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(o.mergeErrorPath)}`);return e.value=o.data,e}var ia=T(`$ZodRecord`,(e,t)=>{k.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Mn(i))return n.issues.push({expected:`record`,code:`invalid_type`,input:i,inst:e}),n;let a=[],o=t.keyType._zod.values;if(o){n.value={};let s=new Set;for(let e of o)if(typeof e==`string`||typeof e==`number`||typeof e==`symbol`){s.add(typeof e==`number`?e.toString():e);let o=t.valueType._zod.run({value:i[e],issues:[]},r);o instanceof Promise?a.push(o.then(t=>{t.issues.length&&n.issues.push(...qn(e,t.issues)),n.value[e]=t.value})):(o.issues.length&&n.issues.push(...qn(e,o.issues)),n.value[e]=o.value)}let c;for(let e in i)s.has(e)||(c??=[],c.push(e));c&&c.length>0&&n.issues.push({code:`unrecognized_keys`,input:i,inst:e,keys:c})}else{n.value={};for(let o of Reflect.ownKeys(i)){if(o===`__proto__`)continue;let s=t.keyType._zod.run({value:o,issues:[]},r);if(s instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);if(typeof o==`string`&&Ur.test(o)&&s.issues.length){let e=t.keyType._zod.run({value:Number(o),issues:[]},r);if(e instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);e.issues.length===0&&(s=e)}if(s.issues.length){t.mode===`loose`?n.value[o]=i[o]:n.issues.push({code:`invalid_key`,origin:`record`,issues:s.issues.map(e=>Yn(e,r,_n())),input:o,path:[o],inst:e});continue}let c=t.valueType._zod.run({value:i[o],issues:[]},r);c instanceof Promise?a.push(c.then(e=>{e.issues.length&&n.issues.push(...qn(o,e.issues)),n.value[s.value]=e.value})):(c.issues.length&&n.issues.push(...qn(o,c.issues)),n.value[s.value]=c.value)}}return a.length?Promise.all(a).then(()=>n):n}}),aa=T(`$ZodEnum`,(e,t)=>{k.init(e,t);let n=vn(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=RegExp(`^(${n.filter(e=>Pn.has(typeof e)).map(e=>typeof e==`string`?Fn(e):e.toString()).join(`|`)})$`),e._zod.parse=(t,i)=>{let a=t.value;return r.has(a)||t.issues.push({code:`invalid_value`,values:n,input:a,inst:e}),t}}),oa=T(`$ZodLiteral`,(e,t)=>{if(k.init(e,t),t.values.length===0)throw Error(`Cannot create literal schema with no valid values`);let n=new Set(t.values);e._zod.values=n,e._zod.pattern=RegExp(`^(${t.values.map(e=>typeof e==`string`?Fn(e):e?Fn(e.toString()):String(e)).join(`|`)})$`),e._zod.parse=(r,i)=>{let a=r.value;return n.has(a)||r.issues.push({code:`invalid_value`,values:t.values,input:a,inst:e}),r}}),sa=T(`$ZodTransform`,(e,t)=>{k.init(e,t),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new hn(e.constructor.name);let i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(e=>(n.value=e,n));if(i instanceof Promise)throw new mn;return n.value=i,n}});function ca(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}var la=T(`$ZodOptional`,(e,t)=>{k.init(e,t),e._zod.optin=`optional`,e._zod.optout=`optional`,E(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),E(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${Sn(e.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if(t.innerType._zod.optin===`optional`){let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(t=>ca(t,e.value)):ca(r,e.value)}return e.value===void 0?e:t.innerType._zod.run(e,n)}}),ua=T(`$ZodExactOptional`,(e,t)=>{la.init(e,t),E(e._zod,`values`,()=>t.innerType._zod.values),E(e._zod,`pattern`,()=>t.innerType._zod.pattern),e._zod.parse=(e,n)=>t.innerType._zod.run(e,n)}),da=T(`$ZodNullable`,(e,t)=>{k.init(e,t),E(e._zod,`optin`,()=>t.innerType._zod.optin),E(e._zod,`optout`,()=>t.innerType._zod.optout),E(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${Sn(e.source)}|null)$`):void 0}),E(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>e.value===null?e:t.innerType._zod.run(e,n)}),fa=T(`$ZodDefault`,(e,t)=>{k.init(e,t),e._zod.optin=`optional`,E(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);if(e.value===void 0)return e.value=t.defaultValue,e;let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(e=>pa(e,t)):pa(r,t)}});function pa(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var ma=T(`$ZodPrefault`,(e,t)=>{k.init(e,t),e._zod.optin=`optional`,E(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>(n.direction===`backward`||e.value===void 0&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),ha=T(`$ZodNonOptional`,(e,t)=>{k.init(e,t),E(e._zod,`values`,()=>{let e=t.innerType._zod.values;return e?new Set([...e].filter(e=>e!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(t=>ga(t,e)):ga(i,e)}});function ga(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:`invalid_type`,expected:`nonoptional`,input:e.value,inst:t}),e}var _a=T(`$ZodCatch`,(e,t)=>{k.init(e,t),E(e._zod,`optin`,()=>t.innerType._zod.optin),E(e._zod,`optout`,()=>t.innerType._zod.optout),E(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(r=>(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>Yn(e,n,_n()))},input:e.value}),e.issues=[]),e)):(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>Yn(e,n,_n()))},input:e.value}),e.issues=[]),e)}}),va=T(`$ZodPipe`,(e,t)=>{k.init(e,t),E(e._zod,`values`,()=>t.in._zod.values),E(e._zod,`optin`,()=>t.in._zod.optin),E(e._zod,`optout`,()=>t.out._zod.optout),E(e._zod,`propValues`,()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if(n.direction===`backward`){let r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>ya(e,t.in,n)):ya(r,t.in,n)}let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>ya(e,t.out,n)):ya(r,t.out,n)}});function ya(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}var ba=T(`$ZodReadonly`,(e,t)=>{k.init(e,t),E(e._zod,`propValues`,()=>t.innerType._zod.propValues),E(e._zod,`values`,()=>t.innerType._zod.values),E(e._zod,`optin`,()=>t.innerType?._zod?.optin),E(e._zod,`optout`,()=>t.innerType?._zod?.optout),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(xa):xa(r)}});function xa(e){return e.value=Object.freeze(e.value),e}var Sa=T(`$ZodLazy`,(e,t)=>{k.init(e,t),E(e._zod,`innerType`,()=>t.getter()),E(e._zod,`pattern`,()=>e._zod.innerType?._zod?.pattern),E(e._zod,`propValues`,()=>e._zod.innerType?._zod?.propValues),E(e._zod,`optin`,()=>e._zod.innerType?._zod?.optin??void 0),E(e._zod,`optout`,()=>e._zod.innerType?._zod?.optout??void 0),e._zod.parse=(t,n)=>e._zod.innerType._zod.run(t,n)}),Ca=T(`$ZodCustom`,(e,t)=>{O.init(e,t),k.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(t=>wa(t,n,r,e));wa(i,n,r,e)}});function wa(e,t,n,r){if(!e){let e={code:`custom`,input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(e.params=r._zod.def.params),t.issues.push(Zn(e))}}var Ta,Ea=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){let n=t[0];return this._map.set(e,n),n&&typeof n==`object`&&`id`in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let t=this._map.get(e);return t&&typeof t==`object`&&`id`in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){let t=e._zod.parent;if(t){let n={...this.get(t)??{}};delete n.id;let r={...n,...this._map.get(e)};return Object.keys(r).length?r:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function Da(){return new Ea}(Ta=globalThis).__zod_globalRegistry??(Ta.__zod_globalRegistry=Da());var Oa=globalThis.__zod_globalRegistry;function ka(e,t){return new e({type:`string`,...D(t)})}function Aa(e,t){return new e({type:`string`,format:`email`,check:`string_format`,abort:!1,...D(t)})}function ja(e,t){return new e({type:`string`,format:`guid`,check:`string_format`,abort:!1,...D(t)})}function Ma(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,...D(t)})}function Na(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v4`,...D(t)})}function Pa(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v6`,...D(t)})}function Fa(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v7`,...D(t)})}function Ia(e,t){return new e({type:`string`,format:`url`,check:`string_format`,abort:!1,...D(t)})}function La(e,t){return new e({type:`string`,format:`emoji`,check:`string_format`,abort:!1,...D(t)})}function Ra(e,t){return new e({type:`string`,format:`nanoid`,check:`string_format`,abort:!1,...D(t)})}function za(e,t){return new e({type:`string`,format:`cuid`,check:`string_format`,abort:!1,...D(t)})}function Ba(e,t){return new e({type:`string`,format:`cuid2`,check:`string_format`,abort:!1,...D(t)})}function Va(e,t){return new e({type:`string`,format:`ulid`,check:`string_format`,abort:!1,...D(t)})}function Ha(e,t){return new e({type:`string`,format:`xid`,check:`string_format`,abort:!1,...D(t)})}function Ua(e,t){return new e({type:`string`,format:`ksuid`,check:`string_format`,abort:!1,...D(t)})}function Wa(e,t){return new e({type:`string`,format:`ipv4`,check:`string_format`,abort:!1,...D(t)})}function Ga(e,t){return new e({type:`string`,format:`ipv6`,check:`string_format`,abort:!1,...D(t)})}function Ka(e,t){return new e({type:`string`,format:`cidrv4`,check:`string_format`,abort:!1,...D(t)})}function qa(e,t){return new e({type:`string`,format:`cidrv6`,check:`string_format`,abort:!1,...D(t)})}function Ja(e,t){return new e({type:`string`,format:`base64`,check:`string_format`,abort:!1,...D(t)})}function Ya(e,t){return new e({type:`string`,format:`base64url`,check:`string_format`,abort:!1,...D(t)})}function Xa(e,t){return new e({type:`string`,format:`e164`,check:`string_format`,abort:!1,...D(t)})}function Za(e,t){return new e({type:`string`,format:`jwt`,check:`string_format`,abort:!1,...D(t)})}function Qa(e,t){return new e({type:`string`,format:`datetime`,check:`string_format`,offset:!1,local:!1,precision:null,...D(t)})}function $a(e,t){return new e({type:`string`,format:`date`,check:`string_format`,...D(t)})}function eo(e,t){return new e({type:`string`,format:`time`,check:`string_format`,precision:null,...D(t)})}function to(e,t){return new e({type:`string`,format:`duration`,check:`string_format`,...D(t)})}function no(e,t){return new e({type:`number`,checks:[],...D(t)})}function ro(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`safeint`,...D(t)})}function io(e,t){return new e({type:`boolean`,...D(t)})}function ao(e,t){return new e({type:`null`,...D(t)})}function oo(e){return new e({type:`unknown`})}function so(e,t){return new e({type:`never`,...D(t)})}function co(e,t){return new Yr({check:`less_than`,...D(t),value:e,inclusive:!1})}function lo(e,t){return new Yr({check:`less_than`,...D(t),value:e,inclusive:!0})}function uo(e,t){return new Xr({check:`greater_than`,...D(t),value:e,inclusive:!1})}function fo(e,t){return new Xr({check:`greater_than`,...D(t),value:e,inclusive:!0})}function po(e,t){return new Zr({check:`multiple_of`,...D(t),value:e})}function mo(e,t){return new $r({check:`max_length`,...D(t),maximum:e})}function ho(e,t){return new ei({check:`min_length`,...D(t),minimum:e})}function go(e,t){return new ti({check:`length_equals`,...D(t),length:e})}function _o(e,t){return new ri({check:`string_format`,format:`regex`,...D(t),pattern:e})}function vo(e){return new ii({check:`string_format`,format:`lowercase`,...D(e)})}function yo(e){return new ai({check:`string_format`,format:`uppercase`,...D(e)})}function bo(e,t){return new oi({check:`string_format`,format:`includes`,...D(t),includes:e})}function xo(e,t){return new si({check:`string_format`,format:`starts_with`,...D(t),prefix:e})}function So(e,t){return new ci({check:`string_format`,format:`ends_with`,...D(t),suffix:e})}function Co(e){return new li({check:`overwrite`,tx:e})}function wo(e){return Co(t=>t.normalize(e))}function To(){return Co(e=>e.trim())}function Eo(){return Co(e=>e.toLowerCase())}function Do(){return Co(e=>e.toUpperCase())}function Oo(){return Co(e=>On(e))}function ko(e,t,n){return new e({type:`array`,element:t,...D(n)})}function Ao(e,t,n){let r=D(n);return r.abort??=!0,new e({type:`custom`,check:`custom`,fn:t,...r})}function jo(e,t,n){return new e({type:`custom`,check:`custom`,fn:t,...D(n)})}function Mo(e){let t=No(n=>(n.addIssue=e=>{if(typeof e==`string`)n.issues.push(Zn(e,n.value,t._zod.def));else{let r=e;r.fatal&&(r.continue=!1),r.code??=`custom`,r.input??=n.value,r.inst??=t,r.continue??=!t._zod.def.abort,n.issues.push(Zn(r))}},e(n.value,n)));return t}function No(e,t){let n=new O({check:`custom`,...D(t)});return n._zod.check=e,n}function Po(e){let t=e?.target??`draft-2020-12`;return t===`draft-4`&&(t=`draft-04`),t===`draft-7`&&(t=`draft-07`),{processors:e.processors??{},metadataRegistry:e?.metadata??Oa,target:t,unrepresentable:e?.unrepresentable??`throw`,override:e?.override??(()=>{}),io:e?.io??`output`,counter:0,seen:new Map,cycles:e?.cycles??`ref`,reused:e?.reused??`inline`,external:e?.external??void 0}}function j(e,t,n={path:[],schemaPath:[]}){var r;let i=e._zod.def,a=t.seen.get(e);if(a)return a.count++,n.schemaPath.includes(e)&&(a.cycle=n.path),a.schema;let o={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,o);let s=e._zod.toJSONSchema?.();if(s)o.schema=s;else{let r={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,o.schema,r);else{let n=o.schema,a=t.processors[i.type];if(!a)throw Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);a(e,t,n,r)}let a=e._zod.parent;a&&(o.ref||=a,j(a,t,r),t.seen.get(a).isParent=!0)}let c=t.metadataRegistry.get(e);return c&&Object.assign(o.schema,c),t.io===`input`&&M(e)&&(delete o.schema.examples,delete o.schema.default),t.io===`input`&&o.schema._prefault&&((r=o.schema).default??(r.default=o.schema._prefault)),delete o.schema._prefault,t.seen.get(e).schema}function Fo(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=new Map;for(let t of e.seen.entries()){let n=e.metadataRegistry.get(t[0])?.id;if(n){let e=r.get(n);if(e&&e!==t[0])throw Error(`Duplicate schema id "${n}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(n,t[0])}}let i=t=>{let r=e.target===`draft-2020-12`?`$defs`:`definitions`;if(e.external){let n=e.external.registry.get(t[0])?.id,i=e.external.uri??(e=>e);if(n)return{ref:i(n)};let a=t[1].defId??t[1].schema.id??`schema${e.counter++}`;return t[1].defId=a,{defId:a,ref:`${i(`__shared`)}#/${r}/${a}`}}if(t[1]===n)return{ref:`#`};let i=`#/${r}/`,a=t[1].schema.id??`__schema${e.counter++}`;return{defId:a,ref:i+a}},a=e=>{if(e[1].schema.$ref)return;let t=e[1],{ref:n,defId:r}=i(e);t.def={...t.schema},r&&(t.defId=r);let a=t.schema;for(let e in a)delete a[e];a.$ref=n};if(e.cycles===`throw`)for(let t of e.seen.entries()){let e=t[1];if(e.cycle)throw Error(`Cycle detected: #/${e.cycle?.join(`/`)}/<root>
40
-
41
- Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let n of e.seen.entries()){let r=n[1];if(t===n[0]){a(n);continue}if(e.external){let r=e.external.registry.get(n[0])?.id;if(t!==n[0]&&r){a(n);continue}}if(e.metadataRegistry.get(n[0])?.id){a(n);continue}if(r.cycle){a(n);continue}if(r.count>1&&e.reused===`ref`){a(n);continue}}}function Io(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=t=>{let n=e.seen.get(t);if(n.ref===null)return;let i=n.def??n.schema,a={...i},o=n.ref;if(n.ref=null,o){r(o);let n=e.seen.get(o),s=n.schema;if(s.$ref&&(e.target===`draft-07`||e.target===`draft-04`||e.target===`openapi-3.0`)?(i.allOf=i.allOf??[],i.allOf.push(s)):Object.assign(i,s),Object.assign(i,a),t._zod.parent===o)for(let e in i)e===`$ref`||e===`allOf`||e in a||delete i[e];if(s.$ref&&n.def)for(let e in i)e===`$ref`||e===`allOf`||e in n.def&&JSON.stringify(i[e])===JSON.stringify(n.def[e])&&delete i[e]}let s=t._zod.parent;if(s&&s!==o){r(s);let t=e.seen.get(s);if(t?.schema.$ref&&(i.$ref=t.schema.$ref,t.def))for(let e in i)e===`$ref`||e===`allOf`||e in t.def&&JSON.stringify(i[e])===JSON.stringify(t.def[e])&&delete i[e]}e.override({zodSchema:t,jsonSchema:i,path:n.path??[]})};for(let t of[...e.seen.entries()].reverse())r(t[0]);let i={};if(e.target===`draft-2020-12`?i.$schema=`https://json-schema.org/draft/2020-12/schema`:e.target===`draft-07`?i.$schema=`http://json-schema.org/draft-07/schema#`:e.target===`draft-04`?i.$schema=`http://json-schema.org/draft-04/schema#`:e.target,e.external?.uri){let n=e.external.registry.get(t)?.id;if(!n)throw Error("Schema is missing an `id` property");i.$id=e.external.uri(n)}Object.assign(i,n.def??n.schema);let a=e.external?.defs??{};for(let t of e.seen.entries()){let e=t[1];e.def&&e.defId&&(a[e.defId]=e.def)}e.external||Object.keys(a).length>0&&(e.target===`draft-2020-12`?i.$defs=a:i.definitions=a);try{let n=JSON.parse(JSON.stringify(i));return Object.defineProperty(n,`~standard`,{value:{...t[`~standard`],jsonSchema:{input:Ro(t,`input`,e.processors),output:Ro(t,`output`,e.processors)}},enumerable:!1,writable:!1}),n}catch{throw Error(`Error converting schema to JSON.`)}}function M(e,t){let n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);let r=e._zod.def;if(r.type===`transform`)return!0;if(r.type===`array`)return M(r.element,n);if(r.type===`set`)return M(r.valueType,n);if(r.type===`lazy`)return M(r.getter(),n);if(r.type===`promise`||r.type===`optional`||r.type===`nonoptional`||r.type===`nullable`||r.type===`readonly`||r.type===`default`||r.type===`prefault`)return M(r.innerType,n);if(r.type===`intersection`)return M(r.left,n)||M(r.right,n);if(r.type===`record`||r.type===`map`)return M(r.keyType,n)||M(r.valueType,n);if(r.type===`pipe`)return M(r.in,n)||M(r.out,n);if(r.type===`object`){for(let e in r.shape)if(M(r.shape[e],n))return!0;return!1}if(r.type===`union`){for(let e of r.options)if(M(e,n))return!0;return!1}if(r.type===`tuple`){for(let e of r.items)if(M(e,n))return!0;return!!(r.rest&&M(r.rest,n))}return!1}var Lo=(e,t={})=>n=>{let r=Po({...n,processors:t});return j(e,r),Fo(r,e),Io(r,e)},Ro=(e,t,n={})=>r=>{let{libraryOptions:i,target:a}=r??{},o=Po({...i??{},target:a,io:t,processors:n});return j(e,o),Fo(o,e),Io(o,e)},zo={guid:`uuid`,url:`uri`,datetime:`date-time`,json_string:`json-string`,regex:``},Bo=(e,t,n,r)=>{let i=n;i.type=`string`;let{minimum:a,maximum:o,format:s,patterns:c,contentEncoding:l}=e._zod.bag;if(typeof a==`number`&&(i.minLength=a),typeof o==`number`&&(i.maxLength=o),s&&(i.format=zo[s]??s,i.format===``&&delete i.format,s===`time`&&delete i.format),l&&(i.contentEncoding=l),c&&c.size>0){let e=[...c];e.length===1?i.pattern=e[0].source:e.length>1&&(i.allOf=[...e.map(e=>({...t.target===`draft-07`||t.target===`draft-04`||t.target===`openapi-3.0`?{type:`string`}:{},pattern:e.source}))])}},Vo=(e,t,n,r)=>{let i=n,{minimum:a,maximum:o,format:s,multipleOf:c,exclusiveMaximum:l,exclusiveMinimum:u}=e._zod.bag;typeof s==`string`&&s.includes(`int`)?i.type=`integer`:i.type=`number`,typeof u==`number`&&(t.target===`draft-04`||t.target===`openapi-3.0`?(i.minimum=u,i.exclusiveMinimum=!0):i.exclusiveMinimum=u),typeof a==`number`&&(i.minimum=a,typeof u==`number`&&t.target!==`draft-04`&&(u>=a?delete i.minimum:delete i.exclusiveMinimum)),typeof l==`number`&&(t.target===`draft-04`||t.target===`openapi-3.0`?(i.maximum=l,i.exclusiveMaximum=!0):i.exclusiveMaximum=l),typeof o==`number`&&(i.maximum=o,typeof l==`number`&&t.target!==`draft-04`&&(l<=o?delete i.maximum:delete i.exclusiveMaximum)),typeof c==`number`&&(i.multipleOf=c)},Ho=(e,t,n,r)=>{n.type=`boolean`},Uo=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`BigInt cannot be represented in JSON Schema`)},Wo=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Symbols cannot be represented in JSON Schema`)},Go=(e,t,n,r)=>{t.target===`openapi-3.0`?(n.type=`string`,n.nullable=!0,n.enum=[null]):n.type=`null`},Ko=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Undefined cannot be represented in JSON Schema`)},qo=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Void cannot be represented in JSON Schema`)},Jo=(e,t,n,r)=>{n.not={}},Yo=(e,t,n,r)=>{},Xo=(e,t,n,r)=>{},Zo=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Date cannot be represented in JSON Schema`)},Qo=(e,t,n,r)=>{let i=e._zod.def,a=vn(i.entries);a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),n.enum=a},$o=(e,t,n,r)=>{let i=e._zod.def,a=[];for(let e of i.values)if(e===void 0){if(t.unrepresentable===`throw`)throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof e==`bigint`){if(t.unrepresentable===`throw`)throw Error(`BigInt literals cannot be represented in JSON Schema`);a.push(Number(e))}else a.push(e);if(a.length!==0)if(a.length===1){let e=a[0];n.type=e===null?`null`:typeof e,t.target===`draft-04`||t.target===`openapi-3.0`?n.enum=[e]:n.const=e}else a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),a.every(e=>typeof e==`boolean`)&&(n.type=`boolean`),a.every(e=>e===null)&&(n.type=`null`),n.enum=a},es=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`NaN cannot be represented in JSON Schema`)},ts=(e,t,n,r)=>{let i=n,a=e._zod.pattern;if(!a)throw Error(`Pattern not found in template literal`);i.type=`string`,i.pattern=a.source},ns=(e,t,n,r)=>{let i=n,a={type:`string`,format:`binary`,contentEncoding:`binary`},{minimum:o,maximum:s,mime:c}=e._zod.bag;o!==void 0&&(a.minLength=o),s!==void 0&&(a.maxLength=s),c?c.length===1?(a.contentMediaType=c[0],Object.assign(i,a)):(Object.assign(i,a),i.anyOf=c.map(e=>({contentMediaType:e}))):Object.assign(i,a)},rs=(e,t,n,r)=>{n.type=`boolean`},is=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Custom types cannot be represented in JSON Schema`)},as=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Function types cannot be represented in JSON Schema`)},os=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Transforms cannot be represented in JSON Schema`)},ss=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Map cannot be represented in JSON Schema`)},cs=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Set cannot be represented in JSON Schema`)},ls=(e,t,n,r)=>{let i=n,a=e._zod.def,{minimum:o,maximum:s}=e._zod.bag;typeof o==`number`&&(i.minItems=o),typeof s==`number`&&(i.maxItems=s),i.type=`array`,i.items=j(a.element,t,{...r,path:[...r.path,`items`]})},us=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`object`,i.properties={};let o=a.shape;for(let e in o)i.properties[e]=j(o[e],t,{...r,path:[...r.path,`properties`,e]});let s=new Set(Object.keys(o)),c=new Set([...s].filter(e=>{let n=a.shape[e]._zod;return t.io===`input`?n.optin===void 0:n.optout===void 0}));c.size>0&&(i.required=Array.from(c)),a.catchall?._zod.def.type===`never`?i.additionalProperties=!1:a.catchall?a.catchall&&(i.additionalProperties=j(a.catchall,t,{...r,path:[...r.path,`additionalProperties`]})):t.io===`output`&&(i.additionalProperties=!1)},ds=(e,t,n,r)=>{let i=e._zod.def,a=i.inclusive===!1,o=i.options.map((e,n)=>j(e,t,{...r,path:[...r.path,a?`oneOf`:`anyOf`,n]}));a?n.oneOf=o:n.anyOf=o},fs=(e,t,n,r)=>{let i=e._zod.def,a=j(i.left,t,{...r,path:[...r.path,`allOf`,0]}),o=j(i.right,t,{...r,path:[...r.path,`allOf`,1]}),s=e=>`allOf`in e&&Object.keys(e).length===1;n.allOf=[...s(a)?a.allOf:[a],...s(o)?o.allOf:[o]]},ps=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`array`;let o=t.target===`draft-2020-12`?`prefixItems`:`items`,s=t.target===`draft-2020-12`||t.target===`openapi-3.0`?`items`:`additionalItems`,c=a.items.map((e,n)=>j(e,t,{...r,path:[...r.path,o,n]})),l=a.rest?j(a.rest,t,{...r,path:[...r.path,s,...t.target===`openapi-3.0`?[a.items.length]:[]]}):null;t.target===`draft-2020-12`?(i.prefixItems=c,l&&(i.items=l)):t.target===`openapi-3.0`?(i.items={anyOf:c},l&&i.items.anyOf.push(l),i.minItems=c.length,l||(i.maxItems=c.length)):(i.items=c,l&&(i.additionalItems=l));let{minimum:u,maximum:d}=e._zod.bag;typeof u==`number`&&(i.minItems=u),typeof d==`number`&&(i.maxItems=d)},ms=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`object`;let o=a.keyType,s=o._zod.bag?.patterns;if(a.mode===`loose`&&s&&s.size>0){let e=j(a.valueType,t,{...r,path:[...r.path,`patternProperties`,`*`]});i.patternProperties={};for(let t of s)i.patternProperties[t.source]=e}else (t.target===`draft-07`||t.target===`draft-2020-12`)&&(i.propertyNames=j(a.keyType,t,{...r,path:[...r.path,`propertyNames`]})),i.additionalProperties=j(a.valueType,t,{...r,path:[...r.path,`additionalProperties`]});let c=o._zod.values;if(c){let e=[...c].filter(e=>typeof e==`string`||typeof e==`number`);e.length>0&&(i.required=e)}},hs=(e,t,n,r)=>{let i=e._zod.def,a=j(i.innerType,t,r),o=t.seen.get(e);t.target===`openapi-3.0`?(o.ref=i.innerType,n.nullable=!0):n.anyOf=[a,{type:`null`}]},gs=(e,t,n,r)=>{let i=e._zod.def;j(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},_s=(e,t,n,r)=>{let i=e._zod.def;j(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.default=JSON.parse(JSON.stringify(i.defaultValue))},vs=(e,t,n,r)=>{let i=e._zod.def;j(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,t.io===`input`&&(n._prefault=JSON.parse(JSON.stringify(i.defaultValue)))},ys=(e,t,n,r)=>{let i=e._zod.def;j(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType;let o;try{o=i.catchValue(void 0)}catch{throw Error(`Dynamic catch values are not supported in JSON Schema`)}n.default=o},bs=(e,t,n,r)=>{let i=e._zod.def,a=t.io===`input`?i.in._zod.def.type===`transform`?i.out:i.in:i.out;j(a,t,r);let o=t.seen.get(e);o.ref=a},xs=(e,t,n,r)=>{let i=e._zod.def;j(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.readOnly=!0},Ss=(e,t,n,r)=>{let i=e._zod.def;j(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},Cs=(e,t,n,r)=>{let i=e._zod.def;j(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},ws=(e,t,n,r)=>{let i=e._zod.innerType;j(i,t,r);let a=t.seen.get(e);a.ref=i},Ts={string:Bo,number:Vo,boolean:Ho,bigint:Uo,symbol:Wo,null:Go,undefined:Ko,void:qo,never:Jo,any:Yo,unknown:Xo,date:Zo,enum:Qo,literal:$o,nan:es,template_literal:ts,file:ns,success:rs,custom:is,function:as,transform:os,map:ss,set:cs,array:ls,object:us,union:ds,intersection:fs,tuple:ps,record:ms,nullable:hs,nonoptional:gs,default:_s,prefault:vs,catch:ys,pipe:bs,readonly:xs,promise:Ss,optional:Cs,lazy:ws};function Es(e,t){if(`_idmap`in e){let n=e,r=Po({...t,processors:Ts}),i={};for(let e of n._idmap.entries()){let[t,n]=e;j(n,r)}let a={};r.external={registry:n,uri:t?.uri,defs:i};for(let e of n._idmap.entries()){let[t,n]=e;Fo(r,n),a[t]=Io(r,n)}return Object.keys(i).length>0&&(a.__shared={[r.target===`draft-2020-12`?`$defs`:`definitions`]:i}),{schemas:a}}let n=Po({...t,processors:Ts});return j(e,n),Fo(n,e),Io(n,e)}var Ds=T(`ZodISODateTime`,(e,t)=>{wi.init(e,t),F.init(e,t)});function Os(e){return Qa(Ds,e)}var ks=T(`ZodISODate`,(e,t)=>{Ti.init(e,t),F.init(e,t)});function As(e){return $a(ks,e)}var js=T(`ZodISOTime`,(e,t)=>{Ei.init(e,t),F.init(e,t)});function Ms(e){return eo(js,e)}var Ns=T(`ZodISODuration`,(e,t)=>{Di.init(e,t),F.init(e,t)});function Ps(e){return to(Ns,e)}var Fs=(e,t)=>{$n.init(e,t),e.name=`ZodError`,Object.defineProperties(e,{format:{value:t=>nr(e,t)},flatten:{value:t=>tr(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,yn,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,yn,2)}},isEmpty:{get(){return e.issues.length===0}}})};T(`ZodError`,Fs);var Is=T(`ZodError`,Fs,{Parent:Error}),Ls=rr(Is),Rs=ir(Is),zs=ar(Is),Bs=sr(Is),Vs=lr(Is),Hs=ur(Is),Us=dr(Is),Ws=fr(Is),Gs=pr(Is),Ks=mr(Is),qs=hr(Is),Js=gr(Is),N=T(`ZodType`,(e,t)=>(k.init(e,t),Object.assign(e[`~standard`],{jsonSchema:{input:Ro(e,`input`),output:Ro(e,`output`)}}),e.toJSONSchema=Lo(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,`_def`,{value:t}),e.check=(...n)=>e.clone(En(t,{checks:[...t.checks??[],...n.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]}),{parent:!0}),e.with=e.check,e.clone=(t,n)=>In(e,t,n),e.brand=()=>e,e.register=((t,n)=>(t.add(e,n),e)),e.parse=(t,n)=>Ls(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>zs(e,t,n),e.parseAsync=async(t,n)=>Rs(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>Bs(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>Vs(e,t,n),e.decode=(t,n)=>Hs(e,t,n),e.encodeAsync=async(t,n)=>Us(e,t,n),e.decodeAsync=async(t,n)=>Ws(e,t,n),e.safeEncode=(t,n)=>Gs(e,t,n),e.safeDecode=(t,n)=>Ks(e,t,n),e.safeEncodeAsync=async(t,n)=>qs(e,t,n),e.safeDecodeAsync=async(t,n)=>Js(e,t,n),e.refine=(t,n)=>e.check(dl(t,n)),e.superRefine=t=>e.check(fl(t)),e.overwrite=t=>e.check(Co(t)),e.optional=()=>Wc(e),e.exactOptional=()=>Kc(e),e.nullable=()=>Jc(e),e.nullish=()=>Wc(Jc(e)),e.nonoptional=t=>el(e,t),e.array=()=>kc(e),e.or=t=>L([e,t]),e.and=t=>Fc(e,t),e.transform=t=>il(e,Hc(t)),e.default=t=>Xc(e,t),e.prefault=t=>Qc(e,t),e.catch=t=>nl(e,t),e.pipe=t=>il(e,t),e.readonly=()=>ol(e),e.describe=t=>{let n=e.clone();return Oa.add(n,{description:t}),n},Object.defineProperty(e,`description`,{get(){return Oa.get(e)?.description},configurable:!0}),e.meta=(...t)=>{if(t.length===0)return Oa.get(e);let n=e.clone();return Oa.add(n,t[0]),n},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=t=>t(e),e)),Ys=T(`_ZodString`,(e,t)=>{fi.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Bo(e,t,n,r);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...t)=>e.check(_o(...t)),e.includes=(...t)=>e.check(bo(...t)),e.startsWith=(...t)=>e.check(xo(...t)),e.endsWith=(...t)=>e.check(So(...t)),e.min=(...t)=>e.check(ho(...t)),e.max=(...t)=>e.check(mo(...t)),e.length=(...t)=>e.check(go(...t)),e.nonempty=(...t)=>e.check(ho(1,...t)),e.lowercase=t=>e.check(vo(t)),e.uppercase=t=>e.check(yo(t)),e.trim=()=>e.check(To()),e.normalize=(...t)=>e.check(wo(...t)),e.toLowerCase=()=>e.check(Eo()),e.toUpperCase=()=>e.check(Do()),e.slugify=()=>e.check(Oo())}),Xs=T(`ZodString`,(e,t)=>{fi.init(e,t),Ys.init(e,t),e.email=t=>e.check(Aa(Zs,t)),e.url=t=>e.check(Ia(ec,t)),e.jwt=t=>e.check(Za(hc,t)),e.emoji=t=>e.check(La(tc,t)),e.guid=t=>e.check(ja(Qs,t)),e.uuid=t=>e.check(Ma($s,t)),e.uuidv4=t=>e.check(Na($s,t)),e.uuidv6=t=>e.check(Pa($s,t)),e.uuidv7=t=>e.check(Fa($s,t)),e.nanoid=t=>e.check(Ra(nc,t)),e.guid=t=>e.check(ja(Qs,t)),e.cuid=t=>e.check(za(rc,t)),e.cuid2=t=>e.check(Ba(ic,t)),e.ulid=t=>e.check(Va(ac,t)),e.base64=t=>e.check(Ja(fc,t)),e.base64url=t=>e.check(Ya(pc,t)),e.xid=t=>e.check(Ha(oc,t)),e.ksuid=t=>e.check(Ua(sc,t)),e.ipv4=t=>e.check(Wa(cc,t)),e.ipv6=t=>e.check(Ga(lc,t)),e.cidrv4=t=>e.check(Ka(uc,t)),e.cidrv6=t=>e.check(qa(dc,t)),e.e164=t=>e.check(Xa(mc,t)),e.datetime=t=>e.check(Os(t)),e.date=t=>e.check(As(t)),e.time=t=>e.check(Ms(t)),e.duration=t=>e.check(Ps(t))});function P(e){return ka(Xs,e)}var F=T(`ZodStringFormat`,(e,t)=>{A.init(e,t),Ys.init(e,t)}),Zs=T(`ZodEmail`,(e,t)=>{hi.init(e,t),F.init(e,t)}),Qs=T(`ZodGUID`,(e,t)=>{pi.init(e,t),F.init(e,t)}),$s=T(`ZodUUID`,(e,t)=>{mi.init(e,t),F.init(e,t)}),ec=T(`ZodURL`,(e,t)=>{gi.init(e,t),F.init(e,t)}),tc=T(`ZodEmoji`,(e,t)=>{_i.init(e,t),F.init(e,t)}),nc=T(`ZodNanoID`,(e,t)=>{vi.init(e,t),F.init(e,t)}),rc=T(`ZodCUID`,(e,t)=>{yi.init(e,t),F.init(e,t)}),ic=T(`ZodCUID2`,(e,t)=>{bi.init(e,t),F.init(e,t)}),ac=T(`ZodULID`,(e,t)=>{xi.init(e,t),F.init(e,t)}),oc=T(`ZodXID`,(e,t)=>{Si.init(e,t),F.init(e,t)}),sc=T(`ZodKSUID`,(e,t)=>{Ci.init(e,t),F.init(e,t)}),cc=T(`ZodIPv4`,(e,t)=>{Oi.init(e,t),F.init(e,t)}),lc=T(`ZodIPv6`,(e,t)=>{ki.init(e,t),F.init(e,t)}),uc=T(`ZodCIDRv4`,(e,t)=>{Ai.init(e,t),F.init(e,t)}),dc=T(`ZodCIDRv6`,(e,t)=>{ji.init(e,t),F.init(e,t)}),fc=T(`ZodBase64`,(e,t)=>{Ni.init(e,t),F.init(e,t)}),pc=T(`ZodBase64URL`,(e,t)=>{Fi.init(e,t),F.init(e,t)}),mc=T(`ZodE164`,(e,t)=>{Ii.init(e,t),F.init(e,t)}),hc=T(`ZodJWT`,(e,t)=>{Ri.init(e,t),F.init(e,t)}),gc=T(`ZodNumber`,(e,t)=>{zi.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Vo(e,t,n,r),e.gt=(t,n)=>e.check(uo(t,n)),e.gte=(t,n)=>e.check(fo(t,n)),e.min=(t,n)=>e.check(fo(t,n)),e.lt=(t,n)=>e.check(co(t,n)),e.lte=(t,n)=>e.check(lo(t,n)),e.max=(t,n)=>e.check(lo(t,n)),e.int=t=>e.check(yc(t)),e.safe=t=>e.check(yc(t)),e.positive=t=>e.check(uo(0,t)),e.nonnegative=t=>e.check(fo(0,t)),e.negative=t=>e.check(co(0,t)),e.nonpositive=t=>e.check(lo(0,t)),e.multipleOf=(t,n)=>e.check(po(t,n)),e.step=(t,n)=>e.check(po(t,n)),e.finite=()=>e;let n=e._zod.bag;e.minValue=Math.max(n.minimum??-1/0,n.exclusiveMinimum??-1/0)??null,e.maxValue=Math.min(n.maximum??1/0,n.exclusiveMaximum??1/0)??null,e.isInt=(n.format??``).includes(`int`)||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function _c(e){return no(gc,e)}var vc=T(`ZodNumberFormat`,(e,t)=>{Bi.init(e,t),gc.init(e,t)});function yc(e){return ro(vc,e)}var bc=T(`ZodBoolean`,(e,t)=>{Vi.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ho(e,t,n,r)});function xc(e){return io(bc,e)}var Sc=T(`ZodNull`,(e,t)=>{Hi.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Go(e,t,n,r)});function Cc(e){return ao(Sc,e)}var wc=T(`ZodUnknown`,(e,t)=>{Ui.init(e,t),N.init(e,t),e._zod.processJSONSchema=(e,t,n)=>void 0});function Tc(){return oo(wc)}var Ec=T(`ZodNever`,(e,t)=>{Wi.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Jo(e,t,n,r)});function Dc(e){return so(Ec,e)}var Oc=T(`ZodArray`,(e,t)=>{Ki.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ls(e,t,n,r),e.element=t.element,e.min=(t,n)=>e.check(ho(t,n)),e.nonempty=t=>e.check(ho(1,t)),e.max=(t,n)=>e.check(mo(t,n)),e.length=(t,n)=>e.check(go(t,n)),e.unwrap=()=>e.element});function kc(e,t){return ko(Oc,e,t)}var Ac=T(`ZodObject`,(e,t)=>{Zi.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>us(e,t,n,r),E(e,`shape`,()=>t.shape),e.keyof=()=>zc(Object.keys(e._zod.def.shape)),e.catchall=t=>e.clone({...e._zod.def,catchall:t}),e.passthrough=()=>e.clone({...e._zod.def,catchall:Tc()}),e.loose=()=>e.clone({...e._zod.def,catchall:Tc()}),e.strict=()=>e.clone({...e._zod.def,catchall:Dc()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=t=>Vn(e,t),e.safeExtend=t=>Hn(e,t),e.merge=t=>Un(e,t),e.pick=t=>zn(e,t),e.omit=t=>Bn(e,t),e.partial=(...t)=>Wn(Uc,e,t[0]),e.required=(...t)=>Gn($c,e,t[0])});function I(e,t){return new Ac({type:`object`,shape:e??{},...D(t)})}var jc=T(`ZodUnion`,(e,t)=>{$i.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ds(e,t,n,r),e.options=t.options});function L(e,t){return new jc({type:`union`,options:e,...D(t)})}var Mc=T(`ZodDiscriminatedUnion`,(e,t)=>{jc.init(e,t),ea.init(e,t)});function Nc(e,t,n){return new Mc({type:`union`,options:t,discriminator:e,...D(n)})}var Pc=T(`ZodIntersection`,(e,t)=>{ta.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>fs(e,t,n,r)});function Fc(e,t){return new Pc({type:`intersection`,left:e,right:t})}var Ic=T(`ZodRecord`,(e,t)=>{ia.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ms(e,t,n,r),e.keyType=t.keyType,e.valueType=t.valueType});function Lc(e,t,n){return new Ic({type:`record`,keyType:e,valueType:t,...D(n)})}var Rc=T(`ZodEnum`,(e,t)=>{aa.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Qo(e,t,n,r),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{let i={};for(let r of e)if(n.has(r))i[r]=t.entries[r];else throw Error(`Key ${r} not found in enum`);return new Rc({...t,checks:[],...D(r),entries:i})},e.exclude=(e,r)=>{let i={...t.entries};for(let t of e)if(n.has(t))delete i[t];else throw Error(`Key ${t} not found in enum`);return new Rc({...t,checks:[],...D(r),entries:i})}});function zc(e,t){return new Rc({type:`enum`,entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...D(t)})}var Bc=T(`ZodLiteral`,(e,t)=>{oa.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>$o(e,t,n,r),e.values=new Set(t.values),Object.defineProperty(e,`value`,{get(){if(t.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function R(e,t){return new Bc({type:`literal`,values:Array.isArray(e)?e:[e],...D(t)})}var Vc=T(`ZodTransform`,(e,t)=>{sa.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>os(e,t,n,r),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new hn(e.constructor.name);n.addIssue=r=>{if(typeof r==`string`)n.issues.push(Zn(r,n.value,t));else{let t=r;t.fatal&&(t.continue=!1),t.code??=`custom`,t.input??=n.value,t.inst??=e,n.issues.push(Zn(t))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n)):(n.value=i,n)}});function Hc(e){return new Vc({type:`transform`,transform:e})}var Uc=T(`ZodOptional`,(e,t)=>{la.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Cs(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Wc(e){return new Uc({type:`optional`,innerType:e})}var Gc=T(`ZodExactOptional`,(e,t)=>{ua.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Cs(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Kc(e){return new Gc({type:`optional`,innerType:e})}var qc=T(`ZodNullable`,(e,t)=>{da.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>hs(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Jc(e){return new qc({type:`nullable`,innerType:e})}var Yc=T(`ZodDefault`,(e,t)=>{fa.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>_s(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Xc(e,t){return new Yc({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():Nn(t)}})}var Zc=T(`ZodPrefault`,(e,t)=>{ma.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>vs(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Qc(e,t){return new Zc({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():Nn(t)}})}var $c=T(`ZodNonOptional`,(e,t)=>{ha.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>gs(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function el(e,t){return new $c({type:`nonoptional`,innerType:e,...D(t)})}var tl=T(`ZodCatch`,(e,t)=>{_a.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ys(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function nl(e,t){return new tl({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:()=>t})}var rl=T(`ZodPipe`,(e,t)=>{va.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>bs(e,t,n,r),e.in=t.in,e.out=t.out});function il(e,t){return new rl({type:`pipe`,in:e,out:t})}var al=T(`ZodReadonly`,(e,t)=>{ba.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>xs(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function ol(e){return new al({type:`readonly`,innerType:e})}var sl=T(`ZodLazy`,(e,t)=>{Sa.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ws(e,t,n,r),e.unwrap=()=>e._zod.def.getter()});function cl(e){return new sl({type:`lazy`,getter:e})}var ll=T(`ZodCustom`,(e,t)=>{Ca.init(e,t),N.init(e,t),e._zod.processJSONSchema=(t,n,r)=>is(e,t,n,r)});function ul(e,t){return Ao(ll,e??(()=>!0),t)}function dl(e,t={}){return jo(ll,e,t)}function fl(e){return Mo(e)}function pl(e,t={}){let n=new ll({type:`custom`,check:`custom`,fn:t=>t instanceof e,abort:!0,...D(t)});return n._zod.bag.Class=e,n._zod.check=t=>{t.value instanceof e||t.issues.push({code:`invalid_type`,expected:e.name,input:t.value,inst:n,path:[...n._zod.def.path??[]]})},n}var z;(function(e){e.assertEqual=e=>{};function t(e){}e.assertIs=t;function n(e){throw Error()}e.assertNever=n,e.arrayToEnum=e=>{let t={};for(let n of e)t[n]=n;return t},e.getValidEnumValues=t=>{let n=e.objectKeys(t).filter(e=>typeof t[t[e]]!=`number`),r={};for(let e of n)r[e]=t[e];return e.objectValues(r)},e.objectValues=t=>e.objectKeys(t).map(function(e){return t[e]}),e.objectKeys=typeof Object.keys==`function`?e=>Object.keys(e):e=>{let t=[];for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t},e.find=(e,t)=>{for(let n of e)if(t(n))return n},e.isInteger=typeof Number.isInteger==`function`?e=>Number.isInteger(e):e=>typeof e==`number`&&Number.isFinite(e)&&Math.floor(e)===e;function r(e,t=` | `){return e.map(e=>typeof e==`string`?`'${e}'`:e).join(t)}e.joinValues=r,e.jsonStringifyReplacer=(e,t)=>typeof t==`bigint`?t.toString():t})(z||={});var ml;(function(e){e.mergeShapes=(e,t)=>({...e,...t})})(ml||={});var B=z.arrayToEnum([`string`,`nan`,`number`,`integer`,`float`,`boolean`,`date`,`bigint`,`symbol`,`function`,`undefined`,`null`,`array`,`object`,`unknown`,`promise`,`void`,`never`,`map`,`set`]),hl=e=>{switch(typeof e){case`undefined`:return B.undefined;case`string`:return B.string;case`number`:return Number.isNaN(e)?B.nan:B.number;case`boolean`:return B.boolean;case`function`:return B.function;case`bigint`:return B.bigint;case`symbol`:return B.symbol;case`object`:return Array.isArray(e)?B.array:e===null?B.null:e.then&&typeof e.then==`function`&&e.catch&&typeof e.catch==`function`?B.promise:typeof Map<`u`&&e instanceof Map?B.map:typeof Set<`u`&&e instanceof Set?B.set:typeof Date<`u`&&e instanceof Date?B.date:B.object;default:return B.unknown}},V=z.arrayToEnum([`invalid_type`,`invalid_literal`,`custom`,`invalid_union`,`invalid_union_discriminator`,`invalid_enum_value`,`unrecognized_keys`,`invalid_arguments`,`invalid_return_type`,`invalid_date`,`invalid_string`,`too_small`,`too_big`,`invalid_intersection_types`,`not_multiple_of`,`not_finite`]),gl=class e extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=e=>{this.issues=[...this.issues,e]},this.addIssues=(e=[])=>{this.issues=[...this.issues,...e]};let t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name=`ZodError`,this.issues=e}format(e){let t=e||function(e){return e.message},n={_errors:[]},r=e=>{for(let i of e.issues)if(i.code===`invalid_union`)i.unionErrors.map(r);else if(i.code===`invalid_return_type`)r(i.returnTypeError);else if(i.code===`invalid_arguments`)r(i.argumentsError);else if(i.path.length===0)n._errors.push(t(i));else{let e=n,r=0;for(;r<i.path.length;){let n=i.path[r];r===i.path.length-1?(e[n]=e[n]||{_errors:[]},e[n]._errors.push(t(i))):e[n]=e[n]||{_errors:[]},e=e[n],r++}}};return r(this),n}static assert(t){if(!(t instanceof e))throw Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,z.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=e=>e.message){let t=Object.create(null),n=[];for(let r of this.issues)if(r.path.length>0){let n=r.path[0];t[n]=t[n]||[],t[n].push(e(r))}else n.push(e(r));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}};gl.create=e=>new gl(e);var _l=(e,t)=>{let n;switch(e.code){case V.invalid_type:n=e.received===B.undefined?`Required`:`Expected ${e.expected}, received ${e.received}`;break;case V.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,z.jsonStringifyReplacer)}`;break;case V.unrecognized_keys:n=`Unrecognized key(s) in object: ${z.joinValues(e.keys,`, `)}`;break;case V.invalid_union:n=`Invalid input`;break;case V.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${z.joinValues(e.options)}`;break;case V.invalid_enum_value:n=`Invalid enum value. Expected ${z.joinValues(e.options)}, received '${e.received}'`;break;case V.invalid_arguments:n=`Invalid function arguments`;break;case V.invalid_return_type:n=`Invalid function return type`;break;case V.invalid_date:n=`Invalid date`;break;case V.invalid_string:typeof e.validation==`object`?`includes`in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position==`number`&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):`startsWith`in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:`endsWith`in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:z.assertNever(e.validation):n=e.validation===`regex`?`Invalid`:`Invalid ${e.validation}`;break;case V.too_small:n=e.type===`array`?`Array must contain ${e.exact?`exactly`:e.inclusive?`at least`:`more than`} ${e.minimum} element(s)`:e.type===`string`?`String must contain ${e.exact?`exactly`:e.inclusive?`at least`:`over`} ${e.minimum} character(s)`:e.type===`number`||e.type===`bigint`?`Number must be ${e.exact?`exactly equal to `:e.inclusive?`greater than or equal to `:`greater than `}${e.minimum}`:e.type===`date`?`Date must be ${e.exact?`exactly equal to `:e.inclusive?`greater than or equal to `:`greater than `}${new Date(Number(e.minimum))}`:`Invalid input`;break;case V.too_big:n=e.type===`array`?`Array must contain ${e.exact?`exactly`:e.inclusive?`at most`:`less than`} ${e.maximum} element(s)`:e.type===`string`?`String must contain ${e.exact?`exactly`:e.inclusive?`at most`:`under`} ${e.maximum} character(s)`:e.type===`number`?`Number must be ${e.exact?`exactly`:e.inclusive?`less than or equal to`:`less than`} ${e.maximum}`:e.type===`bigint`?`BigInt must be ${e.exact?`exactly`:e.inclusive?`less than or equal to`:`less than`} ${e.maximum}`:e.type===`date`?`Date must be ${e.exact?`exactly`:e.inclusive?`smaller than or equal to`:`smaller than`} ${new Date(Number(e.maximum))}`:`Invalid input`;break;case V.custom:n=`Invalid input`;break;case V.invalid_intersection_types:n=`Intersection results could not be merged`;break;case V.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case V.not_finite:n=`Number must be finite`;break;default:n=t.defaultError,z.assertNever(e)}return{message:n}},vl=_l;function yl(){return vl}var bl=e=>{let{data:t,path:n,errorMaps:r,issueData:i}=e,a=[...n,...i.path||[]],o={...i,path:a};if(i.message!==void 0)return{...i,path:a,message:i.message};let s=``,c=r.filter(e=>!!e).slice().reverse();for(let e of c)s=e(o,{data:t,defaultError:s}).message;return{...i,path:a,message:s}};function H(e,t){let n=yl(),r=bl({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===_l?void 0:_l].filter(e=>!!e)});e.common.issues.push(r)}var U=class e{constructor(){this.value=`valid`}dirty(){this.value===`valid`&&(this.value=`dirty`)}abort(){this.value!==`aborted`&&(this.value=`aborted`)}static mergeArray(e,t){let n=[];for(let r of t){if(r.status===`aborted`)return W;r.status===`dirty`&&e.dirty(),n.push(r.value)}return{status:e.value,value:n}}static async mergeObjectAsync(t,n){let r=[];for(let e of n){let t=await e.key,n=await e.value;r.push({key:t,value:n})}return e.mergeObjectSync(t,r)}static mergeObjectSync(e,t){let n={};for(let r of t){let{key:t,value:i}=r;if(t.status===`aborted`||i.status===`aborted`)return W;t.status===`dirty`&&e.dirty(),i.status===`dirty`&&e.dirty(),t.value!==`__proto__`&&(i.value!==void 0||r.alwaysSet)&&(n[t.value]=i.value)}return{status:e.value,value:n}}},W=Object.freeze({status:`aborted`}),xl=e=>({status:`dirty`,value:e}),G=e=>({status:`valid`,value:e}),Sl=e=>e.status===`aborted`,Cl=e=>e.status===`dirty`,wl=e=>e.status===`valid`,Tl=e=>typeof Promise<`u`&&e instanceof Promise,K;(function(e){e.errToObj=e=>typeof e==`string`?{message:e}:e||{},e.toString=e=>typeof e==`string`?e:e?.message})(K||={});var El=class{constructor(e,t,n,r){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=r}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},Dl=(e,t)=>{if(wl(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw Error(`Validation failed but no issues detected.`);return{success:!1,get error(){return this._error||=new gl(e.common.issues),this._error}}};function q(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:i}=e;if(t&&(n||r))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:i}:{errorMap:(t,i)=>{let{message:a}=e;return t.code===`invalid_enum_value`?{message:a??i.defaultError}:i.data===void 0?{message:a??r??i.defaultError}:t.code===`invalid_type`?{message:a??n??i.defaultError}:{message:i.defaultError}},description:i}}var J=class{get description(){return this._def.description}_getType(e){return hl(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:hl(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new U,ctx:{common:e.parent.common,data:e.data,parsedType:hl(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let t=this._parse(e);if(Tl(t))throw Error(`Synchronous parse encountered promise.`);return t}_parseAsync(e){let t=this._parse(e);return Promise.resolve(t)}parse(e,t){let n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){let n={common:{issues:[],async:t?.async??!1,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:hl(e)};return Dl(n,this._parseSync({data:e,path:n.path,parent:n}))}"~validate"(e){let t={common:{issues:[],async:!!this[`~standard`].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:hl(e)};if(!this[`~standard`].async)try{let n=this._parseSync({data:e,path:[],parent:t});return wl(n)?{value:n.value}:{issues:t.common.issues}}catch(e){e?.message?.toLowerCase()?.includes(`encountered`)&&(this[`~standard`].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(e=>wl(e)?{value:e.value}:{issues:t.common.issues})}async parseAsync(e,t){let n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){let n={common:{issues:[],contextualErrorMap:t?.errorMap,async:!0},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:hl(e)},r=this._parse({data:e,path:n.path,parent:n});return Dl(n,await(Tl(r)?r:Promise.resolve(r)))}refine(e,t){let n=e=>typeof t==`string`||t===void 0?{message:t}:typeof t==`function`?t(e):t;return this._refinement((t,r)=>{let i=e(t),a=()=>r.addIssue({code:V.custom,...n(t)});return typeof Promise<`u`&&i instanceof Promise?i.then(e=>e?!0:(a(),!1)):i?!0:(a(),!1)})}refinement(e,t){return this._refinement((n,r)=>e(n)?!0:(r.addIssue(typeof t==`function`?t(n,r):t),!1))}_refinement(e){return new Au({schema:this,typeName:Y.ZodEffects,effect:{type:`refinement`,refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this[`~standard`]={version:1,vendor:`zod`,validate:e=>this[`~validate`](e)}}optional(){return ju.create(this,this._def)}nullable(){return Mu.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return du.create(this)}promise(){return ku.create(this,this._def)}or(e){return mu.create([this,e],this._def)}and(e){return vu.create(this,e,this._def)}transform(e){return new Au({...q(this._def),schema:this,typeName:Y.ZodEffects,effect:{type:`transform`,transform:e}})}default(e){let t=typeof e==`function`?e:()=>e;return new Nu({...q(this._def),innerType:this,defaultValue:t,typeName:Y.ZodDefault})}brand(){return new Iu({typeName:Y.ZodBranded,type:this,...q(this._def)})}catch(e){let t=typeof e==`function`?e:()=>e;return new Pu({...q(this._def),innerType:this,catchValue:t,typeName:Y.ZodCatch})}describe(e){let t=this.constructor;return new t({...this._def,description:e})}pipe(e){return Lu.create(this,e)}readonly(){return Ru.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Ol=/^c[^\s-]{8,}$/i,kl=/^[0-9a-z]+$/,Al=/^[0-9A-HJKMNP-TV-Z]{26}$/i,jl=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Ml=/^[a-z0-9_-]{21}$/i,Nl=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Pl=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Fl=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Il=`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,Ll,Rl=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,zl=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Bl=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Vl=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Hl=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Ul=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Wl=`((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))`,Gl=RegExp(`^${Wl}$`);function Kl(e){let t=`[0-5]\\d`;e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision??(t=`${t}(\\.\\d+)?`);let n=e.precision?`+`:`?`;return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function ql(e){return RegExp(`^${Kl(e)}$`)}function Jl(e){let t=`${Wl}T${Kl(e)}`,n=[];return n.push(e.local?`Z?`:`Z`),e.offset&&n.push(`([+-]\\d{2}:?\\d{2})`),t=`${t}(${n.join(`|`)})`,RegExp(`^${t}$`)}function Yl(e,t){return!!((t===`v4`||!t)&&Rl.test(e)||(t===`v6`||!t)&&Bl.test(e))}function Xl(e,t){if(!Nl.test(e))return!1;try{let[n]=e.split(`.`);if(!n)return!1;let r=n.replace(/-/g,`+`).replace(/_/g,`/`).padEnd(n.length+(4-n.length%4)%4,`=`),i=JSON.parse(atob(r));return!(typeof i!=`object`||!i||`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&i.alg!==t)}catch{return!1}}function Zl(e,t){return!!((t===`v4`||!t)&&zl.test(e)||(t===`v6`||!t)&&Vl.test(e))}var Ql=class e extends J{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==B.string){let t=this._getOrReturnCtx(e);return H(t,{code:V.invalid_type,expected:B.string,received:t.parsedType}),W}let t=new U,n;for(let r of this._def.checks)if(r.kind===`min`)e.data.length<r.value&&(n=this._getOrReturnCtx(e,n),H(n,{code:V.too_small,minimum:r.value,type:`string`,inclusive:!0,exact:!1,message:r.message}),t.dirty());else if(r.kind===`max`)e.data.length>r.value&&(n=this._getOrReturnCtx(e,n),H(n,{code:V.too_big,maximum:r.value,type:`string`,inclusive:!0,exact:!1,message:r.message}),t.dirty());else if(r.kind===`length`){let i=e.data.length>r.value,a=e.data.length<r.value;(i||a)&&(n=this._getOrReturnCtx(e,n),i?H(n,{code:V.too_big,maximum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}):a&&H(n,{code:V.too_small,minimum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}),t.dirty())}else if(r.kind===`email`)Fl.test(e.data)||(n=this._getOrReturnCtx(e,n),H(n,{validation:`email`,code:V.invalid_string,message:r.message}),t.dirty());else if(r.kind===`emoji`)Ll||=new RegExp(Il,`u`),Ll.test(e.data)||(n=this._getOrReturnCtx(e,n),H(n,{validation:`emoji`,code:V.invalid_string,message:r.message}),t.dirty());else if(r.kind===`uuid`)jl.test(e.data)||(n=this._getOrReturnCtx(e,n),H(n,{validation:`uuid`,code:V.invalid_string,message:r.message}),t.dirty());else if(r.kind===`nanoid`)Ml.test(e.data)||(n=this._getOrReturnCtx(e,n),H(n,{validation:`nanoid`,code:V.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid`)Ol.test(e.data)||(n=this._getOrReturnCtx(e,n),H(n,{validation:`cuid`,code:V.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid2`)kl.test(e.data)||(n=this._getOrReturnCtx(e,n),H(n,{validation:`cuid2`,code:V.invalid_string,message:r.message}),t.dirty());else if(r.kind===`ulid`)Al.test(e.data)||(n=this._getOrReturnCtx(e,n),H(n,{validation:`ulid`,code:V.invalid_string,message:r.message}),t.dirty());else if(r.kind===`url`)try{new URL(e.data)}catch{n=this._getOrReturnCtx(e,n),H(n,{validation:`url`,code:V.invalid_string,message:r.message}),t.dirty()}else r.kind===`regex`?(r.regex.lastIndex=0,r.regex.test(e.data)||(n=this._getOrReturnCtx(e,n),H(n,{validation:`regex`,code:V.invalid_string,message:r.message}),t.dirty())):r.kind===`trim`?e.data=e.data.trim():r.kind===`includes`?e.data.includes(r.value,r.position)||(n=this._getOrReturnCtx(e,n),H(n,{code:V.invalid_string,validation:{includes:r.value,position:r.position},message:r.message}),t.dirty()):r.kind===`toLowerCase`?e.data=e.data.toLowerCase():r.kind===`toUpperCase`?e.data=e.data.toUpperCase():r.kind===`startsWith`?e.data.startsWith(r.value)||(n=this._getOrReturnCtx(e,n),H(n,{code:V.invalid_string,validation:{startsWith:r.value},message:r.message}),t.dirty()):r.kind===`endsWith`?e.data.endsWith(r.value)||(n=this._getOrReturnCtx(e,n),H(n,{code:V.invalid_string,validation:{endsWith:r.value},message:r.message}),t.dirty()):r.kind===`datetime`?Jl(r).test(e.data)||(n=this._getOrReturnCtx(e,n),H(n,{code:V.invalid_string,validation:`datetime`,message:r.message}),t.dirty()):r.kind===`date`?Gl.test(e.data)||(n=this._getOrReturnCtx(e,n),H(n,{code:V.invalid_string,validation:`date`,message:r.message}),t.dirty()):r.kind===`time`?ql(r).test(e.data)||(n=this._getOrReturnCtx(e,n),H(n,{code:V.invalid_string,validation:`time`,message:r.message}),t.dirty()):r.kind===`duration`?Pl.test(e.data)||(n=this._getOrReturnCtx(e,n),H(n,{validation:`duration`,code:V.invalid_string,message:r.message}),t.dirty()):r.kind===`ip`?Yl(e.data,r.version)||(n=this._getOrReturnCtx(e,n),H(n,{validation:`ip`,code:V.invalid_string,message:r.message}),t.dirty()):r.kind===`jwt`?Xl(e.data,r.alg)||(n=this._getOrReturnCtx(e,n),H(n,{validation:`jwt`,code:V.invalid_string,message:r.message}),t.dirty()):r.kind===`cidr`?Zl(e.data,r.version)||(n=this._getOrReturnCtx(e,n),H(n,{validation:`cidr`,code:V.invalid_string,message:r.message}),t.dirty()):r.kind===`base64`?Hl.test(e.data)||(n=this._getOrReturnCtx(e,n),H(n,{validation:`base64`,code:V.invalid_string,message:r.message}),t.dirty()):r.kind===`base64url`?Ul.test(e.data)||(n=this._getOrReturnCtx(e,n),H(n,{validation:`base64url`,code:V.invalid_string,message:r.message}),t.dirty()):z.assertNever(r);return{status:t.value,value:e.data}}_regex(e,t,n){return this.refinement(t=>e.test(t),{validation:t,code:V.invalid_string,...K.errToObj(n)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(e){return this._addCheck({kind:`email`,...K.errToObj(e)})}url(e){return this._addCheck({kind:`url`,...K.errToObj(e)})}emoji(e){return this._addCheck({kind:`emoji`,...K.errToObj(e)})}uuid(e){return this._addCheck({kind:`uuid`,...K.errToObj(e)})}nanoid(e){return this._addCheck({kind:`nanoid`,...K.errToObj(e)})}cuid(e){return this._addCheck({kind:`cuid`,...K.errToObj(e)})}cuid2(e){return this._addCheck({kind:`cuid2`,...K.errToObj(e)})}ulid(e){return this._addCheck({kind:`ulid`,...K.errToObj(e)})}base64(e){return this._addCheck({kind:`base64`,...K.errToObj(e)})}base64url(e){return this._addCheck({kind:`base64url`,...K.errToObj(e)})}jwt(e){return this._addCheck({kind:`jwt`,...K.errToObj(e)})}ip(e){return this._addCheck({kind:`ip`,...K.errToObj(e)})}cidr(e){return this._addCheck({kind:`cidr`,...K.errToObj(e)})}datetime(e){return typeof e==`string`?this._addCheck({kind:`datetime`,precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:`datetime`,precision:e?.precision===void 0?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...K.errToObj(e?.message)})}date(e){return this._addCheck({kind:`date`,message:e})}time(e){return typeof e==`string`?this._addCheck({kind:`time`,precision:null,message:e}):this._addCheck({kind:`time`,precision:e?.precision===void 0?null:e?.precision,...K.errToObj(e?.message)})}duration(e){return this._addCheck({kind:`duration`,...K.errToObj(e)})}regex(e,t){return this._addCheck({kind:`regex`,regex:e,...K.errToObj(t)})}includes(e,t){return this._addCheck({kind:`includes`,value:e,position:t?.position,...K.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:`startsWith`,value:e,...K.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:`endsWith`,value:e,...K.errToObj(t)})}min(e,t){return this._addCheck({kind:`min`,value:e,...K.errToObj(t)})}max(e,t){return this._addCheck({kind:`max`,value:e,...K.errToObj(t)})}length(e,t){return this._addCheck({kind:`length`,value:e,...K.errToObj(t)})}nonempty(e){return this.min(1,K.errToObj(e))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:`trim`}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:`toLowerCase`}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:`toUpperCase`}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind===`datetime`)}get isDate(){return!!this._def.checks.find(e=>e.kind===`date`)}get isTime(){return!!this._def.checks.find(e=>e.kind===`time`)}get isDuration(){return!!this._def.checks.find(e=>e.kind===`duration`)}get isEmail(){return!!this._def.checks.find(e=>e.kind===`email`)}get isURL(){return!!this._def.checks.find(e=>e.kind===`url`)}get isEmoji(){return!!this._def.checks.find(e=>e.kind===`emoji`)}get isUUID(){return!!this._def.checks.find(e=>e.kind===`uuid`)}get isNANOID(){return!!this._def.checks.find(e=>e.kind===`nanoid`)}get isCUID(){return!!this._def.checks.find(e=>e.kind===`cuid`)}get isCUID2(){return!!this._def.checks.find(e=>e.kind===`cuid2`)}get isULID(){return!!this._def.checks.find(e=>e.kind===`ulid`)}get isIP(){return!!this._def.checks.find(e=>e.kind===`ip`)}get isCIDR(){return!!this._def.checks.find(e=>e.kind===`cidr`)}get isBase64(){return!!this._def.checks.find(e=>e.kind===`base64`)}get isBase64url(){return!!this._def.checks.find(e=>e.kind===`base64url`)}get minLength(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}};Ql.create=e=>new Ql({checks:[],typeName:Y.ZodString,coerce:e?.coerce??!1,...q(e)});function $l(e,t){let n=(e.toString().split(`.`)[1]||``).length,r=(t.toString().split(`.`)[1]||``).length,i=n>r?n:r;return Number.parseInt(e.toFixed(i).replace(`.`,``))%Number.parseInt(t.toFixed(i).replace(`.`,``))/10**i}var eu=class e extends J{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==B.number){let t=this._getOrReturnCtx(e);return H(t,{code:V.invalid_type,expected:B.number,received:t.parsedType}),W}let t,n=new U;for(let r of this._def.checks)r.kind===`int`?z.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),H(t,{code:V.invalid_type,expected:`integer`,received:`float`,message:r.message}),n.dirty()):r.kind===`min`?(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),H(t,{code:V.too_small,minimum:r.value,type:`number`,inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty()):r.kind===`max`?(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),H(t,{code:V.too_big,maximum:r.value,type:`number`,inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty()):r.kind===`multipleOf`?$l(e.data,r.value)!==0&&(t=this._getOrReturnCtx(e,t),H(t,{code:V.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):r.kind===`finite`?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),H(t,{code:V.not_finite,message:r.message}),n.dirty()):z.assertNever(r);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit(`min`,e,!0,K.toString(t))}gt(e,t){return this.setLimit(`min`,e,!1,K.toString(t))}lte(e,t){return this.setLimit(`max`,e,!0,K.toString(t))}lt(e,t){return this.setLimit(`max`,e,!1,K.toString(t))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:K.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(e){return this._addCheck({kind:`int`,message:K.toString(e)})}positive(e){return this._addCheck({kind:`min`,value:0,inclusive:!1,message:K.toString(e)})}negative(e){return this._addCheck({kind:`max`,value:0,inclusive:!1,message:K.toString(e)})}nonpositive(e){return this._addCheck({kind:`max`,value:0,inclusive:!0,message:K.toString(e)})}nonnegative(e){return this._addCheck({kind:`min`,value:0,inclusive:!0,message:K.toString(e)})}multipleOf(e,t){return this._addCheck({kind:`multipleOf`,value:e,message:K.toString(t)})}finite(e){return this._addCheck({kind:`finite`,message:K.toString(e)})}safe(e){return this._addCheck({kind:`min`,inclusive:!0,value:-(2**53-1),message:K.toString(e)})._addCheck({kind:`max`,inclusive:!0,value:2**53-1,message:K.toString(e)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind===`int`||e.kind===`multipleOf`&&z.isInteger(e.value))}get isFinite(){let e=null,t=null;for(let n of this._def.checks)if(n.kind===`finite`||n.kind===`int`||n.kind===`multipleOf`)return!0;else n.kind===`min`?(t===null||n.value>t)&&(t=n.value):n.kind===`max`&&(e===null||n.value<e)&&(e=n.value);return Number.isFinite(t)&&Number.isFinite(e)}};eu.create=e=>new eu({checks:[],typeName:Y.ZodNumber,coerce:e?.coerce||!1,...q(e)});var tu=class e extends J{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==B.bigint)return this._getInvalidInput(e);let t,n=new U;for(let r of this._def.checks)r.kind===`min`?(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),H(t,{code:V.too_small,type:`bigint`,minimum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty()):r.kind===`max`?(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),H(t,{code:V.too_big,type:`bigint`,maximum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty()):r.kind===`multipleOf`?e.data%r.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),H(t,{code:V.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):z.assertNever(r);return{status:n.value,value:e.data}}_getInvalidInput(e){let t=this._getOrReturnCtx(e);return H(t,{code:V.invalid_type,expected:B.bigint,received:t.parsedType}),W}gte(e,t){return this.setLimit(`min`,e,!0,K.toString(t))}gt(e,t){return this.setLimit(`min`,e,!1,K.toString(t))}lte(e,t){return this.setLimit(`max`,e,!0,K.toString(t))}lt(e,t){return this.setLimit(`max`,e,!1,K.toString(t))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:K.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(e){return this._addCheck({kind:`min`,value:BigInt(0),inclusive:!1,message:K.toString(e)})}negative(e){return this._addCheck({kind:`max`,value:BigInt(0),inclusive:!1,message:K.toString(e)})}nonpositive(e){return this._addCheck({kind:`max`,value:BigInt(0),inclusive:!0,message:K.toString(e)})}nonnegative(e){return this._addCheck({kind:`min`,value:BigInt(0),inclusive:!0,message:K.toString(e)})}multipleOf(e,t){return this._addCheck({kind:`multipleOf`,value:e,message:K.toString(t)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}};tu.create=e=>new tu({checks:[],typeName:Y.ZodBigInt,coerce:e?.coerce??!1,...q(e)});var nu=class extends J{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==B.boolean){let t=this._getOrReturnCtx(e);return H(t,{code:V.invalid_type,expected:B.boolean,received:t.parsedType}),W}return G(e.data)}};nu.create=e=>new nu({typeName:Y.ZodBoolean,coerce:e?.coerce||!1,...q(e)});var ru=class e extends J{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==B.date){let t=this._getOrReturnCtx(e);return H(t,{code:V.invalid_type,expected:B.date,received:t.parsedType}),W}if(Number.isNaN(e.data.getTime()))return H(this._getOrReturnCtx(e),{code:V.invalid_date}),W;let t=new U,n;for(let r of this._def.checks)r.kind===`min`?e.data.getTime()<r.value&&(n=this._getOrReturnCtx(e,n),H(n,{code:V.too_small,message:r.message,inclusive:!0,exact:!1,minimum:r.value,type:`date`}),t.dirty()):r.kind===`max`?e.data.getTime()>r.value&&(n=this._getOrReturnCtx(e,n),H(n,{code:V.too_big,message:r.message,inclusive:!0,exact:!1,maximum:r.value,type:`date`}),t.dirty()):z.assertNever(r);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(e,t){return this._addCheck({kind:`min`,value:e.getTime(),message:K.toString(t)})}max(e,t){return this._addCheck({kind:`max`,value:e.getTime(),message:K.toString(t)})}get minDate(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e==null?null:new Date(e)}get maxDate(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e==null?null:new Date(e)}};ru.create=e=>new ru({checks:[],coerce:e?.coerce||!1,typeName:Y.ZodDate,...q(e)});var iu=class extends J{_parse(e){if(this._getType(e)!==B.symbol){let t=this._getOrReturnCtx(e);return H(t,{code:V.invalid_type,expected:B.symbol,received:t.parsedType}),W}return G(e.data)}};iu.create=e=>new iu({typeName:Y.ZodSymbol,...q(e)});var au=class extends J{_parse(e){if(this._getType(e)!==B.undefined){let t=this._getOrReturnCtx(e);return H(t,{code:V.invalid_type,expected:B.undefined,received:t.parsedType}),W}return G(e.data)}};au.create=e=>new au({typeName:Y.ZodUndefined,...q(e)});var ou=class extends J{_parse(e){if(this._getType(e)!==B.null){let t=this._getOrReturnCtx(e);return H(t,{code:V.invalid_type,expected:B.null,received:t.parsedType}),W}return G(e.data)}};ou.create=e=>new ou({typeName:Y.ZodNull,...q(e)});var su=class extends J{constructor(){super(...arguments),this._any=!0}_parse(e){return G(e.data)}};su.create=e=>new su({typeName:Y.ZodAny,...q(e)});var cu=class extends J{constructor(){super(...arguments),this._unknown=!0}_parse(e){return G(e.data)}};cu.create=e=>new cu({typeName:Y.ZodUnknown,...q(e)});var lu=class extends J{_parse(e){let t=this._getOrReturnCtx(e);return H(t,{code:V.invalid_type,expected:B.never,received:t.parsedType}),W}};lu.create=e=>new lu({typeName:Y.ZodNever,...q(e)});var uu=class extends J{_parse(e){if(this._getType(e)!==B.undefined){let t=this._getOrReturnCtx(e);return H(t,{code:V.invalid_type,expected:B.void,received:t.parsedType}),W}return G(e.data)}};uu.create=e=>new uu({typeName:Y.ZodVoid,...q(e)});var du=class e extends J{_parse(e){let{ctx:t,status:n}=this._processInputParams(e),r=this._def;if(t.parsedType!==B.array)return H(t,{code:V.invalid_type,expected:B.array,received:t.parsedType}),W;if(r.exactLength!==null){let e=t.data.length>r.exactLength.value,i=t.data.length<r.exactLength.value;(e||i)&&(H(t,{code:e?V.too_big:V.too_small,minimum:i?r.exactLength.value:void 0,maximum:e?r.exactLength.value:void 0,type:`array`,inclusive:!0,exact:!0,message:r.exactLength.message}),n.dirty())}if(r.minLength!==null&&t.data.length<r.minLength.value&&(H(t,{code:V.too_small,minimum:r.minLength.value,type:`array`,inclusive:!0,exact:!1,message:r.minLength.message}),n.dirty()),r.maxLength!==null&&t.data.length>r.maxLength.value&&(H(t,{code:V.too_big,maximum:r.maxLength.value,type:`array`,inclusive:!0,exact:!1,message:r.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((e,n)=>r.type._parseAsync(new El(t,e,t.path,n)))).then(e=>U.mergeArray(n,e));let i=[...t.data].map((e,n)=>r.type._parseSync(new El(t,e,t.path,n)));return U.mergeArray(n,i)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:K.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:K.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:K.toString(n)}})}nonempty(e){return this.min(1,e)}};du.create=(e,t)=>new du({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Y.ZodArray,...q(t)});function fu(e){if(e instanceof pu){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=ju.create(fu(r))}return new pu({...e._def,shape:()=>t})}else if(e instanceof du)return new du({...e._def,type:fu(e.element)});else if(e instanceof ju)return ju.create(fu(e.unwrap()));else if(e instanceof Mu)return Mu.create(fu(e.unwrap()));else if(e instanceof yu)return yu.create(e.items.map(e=>fu(e)));else return e}var pu=class e extends J{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape();return this._cached={shape:e,keys:z.objectKeys(e)},this._cached}_parse(e){if(this._getType(e)!==B.object){let t=this._getOrReturnCtx(e);return H(t,{code:V.invalid_type,expected:B.object,received:t.parsedType}),W}let{status:t,ctx:n}=this._processInputParams(e),{shape:r,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof lu&&this._def.unknownKeys===`strip`))for(let e in n.data)i.includes(e)||a.push(e);let o=[];for(let e of i){let t=r[e],i=n.data[e];o.push({key:{status:`valid`,value:e},value:t._parse(new El(n,i,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof lu){let e=this._def.unknownKeys;if(e===`passthrough`)for(let e of a)o.push({key:{status:`valid`,value:e},value:{status:`valid`,value:n.data[e]}});else if(e===`strict`)a.length>0&&(H(n,{code:V.unrecognized_keys,keys:a}),t.dirty());else if(e!==`strip`)throw Error(`Internal ZodObject error: invalid unknownKeys value.`)}else{let e=this._def.catchall;for(let t of a){let r=n.data[t];o.push({key:{status:`valid`,value:t},value:e._parse(new El(n,r,n.path,t)),alwaysSet:t in n.data})}}return n.common.async?Promise.resolve().then(async()=>{let e=[];for(let t of o){let n=await t.key,r=await t.value;e.push({key:n,value:r,alwaysSet:t.alwaysSet})}return e}).then(e=>U.mergeObjectSync(t,e)):U.mergeObjectSync(t,o)}get shape(){return this._def.shape()}strict(t){return K.errToObj,new e({...this._def,unknownKeys:`strict`,...t===void 0?{}:{errorMap:(e,n)=>{let r=this._def.errorMap?.(e,n).message??n.defaultError;return e.code===`unrecognized_keys`?{message:K.errToObj(t).message??r}:{message:r}}}})}strip(){return new e({...this._def,unknownKeys:`strip`})}passthrough(){return new e({...this._def,unknownKeys:`passthrough`})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:Y.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let n={};for(let e of z.objectKeys(t))t[e]&&this.shape[e]&&(n[e]=this.shape[e]);return new e({...this._def,shape:()=>n})}omit(t){let n={};for(let e of z.objectKeys(this.shape))t[e]||(n[e]=this.shape[e]);return new e({...this._def,shape:()=>n})}deepPartial(){return fu(this)}partial(t){let n={};for(let e of z.objectKeys(this.shape)){let r=this.shape[e];t&&!t[e]?n[e]=r:n[e]=r.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let e of z.objectKeys(this.shape))if(t&&!t[e])n[e]=this.shape[e];else{let t=this.shape[e];for(;t instanceof ju;)t=t._def.innerType;n[e]=t}return new e({...this._def,shape:()=>n})}keyof(){return Eu(z.objectKeys(this.shape))}};pu.create=(e,t)=>new pu({shape:()=>e,unknownKeys:`strip`,catchall:lu.create(),typeName:Y.ZodObject,...q(t)}),pu.strictCreate=(e,t)=>new pu({shape:()=>e,unknownKeys:`strict`,catchall:lu.create(),typeName:Y.ZodObject,...q(t)}),pu.lazycreate=(e,t)=>new pu({shape:e,unknownKeys:`strip`,catchall:lu.create(),typeName:Y.ZodObject,...q(t)});var mu=class extends J{_parse(e){let{ctx:t}=this._processInputParams(e),n=this._def.options;function r(e){for(let t of e)if(t.result.status===`valid`)return t.result;for(let n of e)if(n.result.status===`dirty`)return t.common.issues.push(...n.ctx.common.issues),n.result;let n=e.map(e=>new gl(e.ctx.common.issues));return H(t,{code:V.invalid_union,unionErrors:n}),W}if(t.common.async)return Promise.all(n.map(async e=>{let n={...t,common:{...t.common,issues:[]},parent:null};return{result:await e._parseAsync({data:t.data,path:t.path,parent:n}),ctx:n}})).then(r);{let e,r=[];for(let i of n){let n={...t,common:{...t.common,issues:[]},parent:null},a=i._parseSync({data:t.data,path:t.path,parent:n});if(a.status===`valid`)return a;a.status===`dirty`&&!e&&(e={result:a,ctx:n}),n.common.issues.length&&r.push(n.common.issues)}if(e)return t.common.issues.push(...e.ctx.common.issues),e.result;let i=r.map(e=>new gl(e));return H(t,{code:V.invalid_union,unionErrors:i}),W}}get options(){return this._def.options}};mu.create=(e,t)=>new mu({options:e,typeName:Y.ZodUnion,...q(t)});var hu=e=>e instanceof wu?hu(e.schema):e instanceof Au?hu(e.innerType()):e instanceof Tu?[e.value]:e instanceof Du?e.options:e instanceof Ou?z.objectValues(e.enum):e instanceof Nu?hu(e._def.innerType):e instanceof au?[void 0]:e instanceof ou?[null]:e instanceof ju?[void 0,...hu(e.unwrap())]:e instanceof Mu?[null,...hu(e.unwrap())]:e instanceof Iu||e instanceof Ru?hu(e.unwrap()):e instanceof Pu?hu(e._def.innerType):[],gu=class e extends J{_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==B.object)return H(t,{code:V.invalid_type,expected:B.object,received:t.parsedType}),W;let n=this.discriminator,r=t.data[n],i=this.optionsMap.get(r);return i?t.common.async?i._parseAsync({data:t.data,path:t.path,parent:t}):i._parseSync({data:t.data,path:t.path,parent:t}):(H(t,{code:V.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),W)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let i=new Map;for(let e of n){let n=hu(e.shape[t]);if(!n.length)throw Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let r of n){if(i.has(r))throw Error(`Discriminator property ${String(t)} has duplicate value ${String(r)}`);i.set(r,e)}}return new e({typeName:Y.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:i,...q(r)})}};function _u(e,t){let n=hl(e),r=hl(t);if(e===t)return{valid:!0,data:e};if(n===B.object&&r===B.object){let n=z.objectKeys(t),r=z.objectKeys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=_u(e[n],t[n]);if(!r.valid)return{valid:!1};i[n]=r.data}return{valid:!0,data:i}}else if(n===B.array&&r===B.array){if(e.length!==t.length)return{valid:!1};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=_u(i,a);if(!o.valid)return{valid:!1};n.push(o.data)}return{valid:!0,data:n}}else if(n===B.date&&r===B.date&&+e==+t)return{valid:!0,data:e};else return{valid:!1}}var vu=class extends J{_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=(e,r)=>{if(Sl(e)||Sl(r))return W;let i=_u(e.value,r.value);return i.valid?((Cl(e)||Cl(r))&&t.dirty(),{status:t.value,value:i.data}):(H(n,{code:V.invalid_intersection_types}),W)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([e,t])=>r(e,t)):r(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};vu.create=(e,t,n)=>new vu({left:e,right:t,typeName:Y.ZodIntersection,...q(n)});var yu=class e extends J{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==B.array)return H(n,{code:V.invalid_type,expected:B.array,received:n.parsedType}),W;if(n.data.length<this._def.items.length)return H(n,{code:V.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:`array`}),W;!this._def.rest&&n.data.length>this._def.items.length&&(H(n,{code:V.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:`array`}),t.dirty());let r=[...n.data].map((e,t)=>{let r=this._def.items[t]||this._def.rest;return r?r._parse(new El(n,e,n.path,t)):null}).filter(e=>!!e);return n.common.async?Promise.all(r).then(e=>U.mergeArray(t,e)):U.mergeArray(t,r)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};yu.create=(e,t)=>{if(!Array.isArray(e))throw Error(`You must pass an array of schemas to z.tuple([ ... ])`);return new yu({items:e,typeName:Y.ZodTuple,rest:null,...q(t)})};var bu=class e extends J{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==B.object)return H(n,{code:V.invalid_type,expected:B.object,received:n.parsedType}),W;let r=[],i=this._def.keyType,a=this._def.valueType;for(let e in n.data)r.push({key:i._parse(new El(n,e,n.path,e)),value:a._parse(new El(n,n.data[e],n.path,e)),alwaysSet:e in n.data});return n.common.async?U.mergeObjectAsync(t,r):U.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof J?new e({keyType:t,valueType:n,typeName:Y.ZodRecord,...q(r)}):new e({keyType:Ql.create(),valueType:t,typeName:Y.ZodRecord,...q(n)})}},xu=class extends J{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==B.map)return H(n,{code:V.invalid_type,expected:B.map,received:n.parsedType}),W;let r=this._def.keyType,i=this._def.valueType,a=[...n.data.entries()].map(([e,t],a)=>({key:r._parse(new El(n,e,n.path,[a,`key`])),value:i._parse(new El(n,t,n.path,[a,`value`]))}));if(n.common.async){let e=new Map;return Promise.resolve().then(async()=>{for(let n of a){let r=await n.key,i=await n.value;if(r.status===`aborted`||i.status===`aborted`)return W;(r.status===`dirty`||i.status===`dirty`)&&t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}})}else{let e=new Map;for(let n of a){let r=n.key,i=n.value;if(r.status===`aborted`||i.status===`aborted`)return W;(r.status===`dirty`||i.status===`dirty`)&&t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}}}};xu.create=(e,t,n)=>new xu({valueType:t,keyType:e,typeName:Y.ZodMap,...q(n)});var Su=class e extends J{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==B.set)return H(n,{code:V.invalid_type,expected:B.set,received:n.parsedType}),W;let r=this._def;r.minSize!==null&&n.data.size<r.minSize.value&&(H(n,{code:V.too_small,minimum:r.minSize.value,type:`set`,inclusive:!0,exact:!1,message:r.minSize.message}),t.dirty()),r.maxSize!==null&&n.data.size>r.maxSize.value&&(H(n,{code:V.too_big,maximum:r.maxSize.value,type:`set`,inclusive:!0,exact:!1,message:r.maxSize.message}),t.dirty());let i=this._def.valueType;function a(e){let n=new Set;for(let r of e){if(r.status===`aborted`)return W;r.status===`dirty`&&t.dirty(),n.add(r.value)}return{status:t.value,value:n}}let o=[...n.data.values()].map((e,t)=>i._parse(new El(n,e,n.path,t)));return n.common.async?Promise.all(o).then(e=>a(e)):a(o)}min(t,n){return new e({...this._def,minSize:{value:t,message:K.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:K.toString(n)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}};Su.create=(e,t)=>new Su({valueType:e,minSize:null,maxSize:null,typeName:Y.ZodSet,...q(t)});var Cu=class e extends J{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==B.function)return H(t,{code:V.invalid_type,expected:B.function,received:t.parsedType}),W;function n(e,n){return bl({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,yl(),_l].filter(e=>!!e),issueData:{code:V.invalid_arguments,argumentsError:n}})}function r(e,n){return bl({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,yl(),_l].filter(e=>!!e),issueData:{code:V.invalid_return_type,returnTypeError:n}})}let i={errorMap:t.common.contextualErrorMap},a=t.data;if(this._def.returns instanceof ku){let e=this;return G(async function(...t){let o=new gl([]),s=await e._def.args.parseAsync(t,i).catch(e=>{throw o.addIssue(n(t,e)),o}),c=await Reflect.apply(a,this,s);return await e._def.returns._def.type.parseAsync(c,i).catch(e=>{throw o.addIssue(r(c,e)),o})})}else{let e=this;return G(function(...t){let o=e._def.args.safeParse(t,i);if(!o.success)throw new gl([n(t,o.error)]);let s=Reflect.apply(a,this,o.data),c=e._def.returns.safeParse(s,i);if(!c.success)throw new gl([r(s,c.error)]);return c.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:yu.create(t).rest(cu.create())})}returns(t){return new e({...this._def,returns:t})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(t,n,r){return new e({args:t||yu.create([]).rest(cu.create()),returns:n||cu.create(),typeName:Y.ZodFunction,...q(r)})}},wu=class extends J{get schema(){return this._def.getter()}_parse(e){let{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}};wu.create=(e,t)=>new wu({getter:e,typeName:Y.ZodLazy,...q(t)});var Tu=class extends J{_parse(e){if(e.data!==this._def.value){let t=this._getOrReturnCtx(e);return H(t,{received:t.data,code:V.invalid_literal,expected:this._def.value}),W}return{status:`valid`,value:e.data}}get value(){return this._def.value}};Tu.create=(e,t)=>new Tu({value:e,typeName:Y.ZodLiteral,...q(t)});function Eu(e,t){return new Du({values:e,typeName:Y.ZodEnum,...q(t)})}var Du=class e extends J{_parse(e){if(typeof e.data!=`string`){let t=this._getOrReturnCtx(e),n=this._def.values;return H(t,{expected:z.joinValues(n),received:t.parsedType,code:V.invalid_type}),W}if(this._cache||=new Set(this._def.values),!this._cache.has(e.data)){let t=this._getOrReturnCtx(e),n=this._def.values;return H(t,{received:t.data,code:V.invalid_enum_value,options:n}),W}return G(e.data)}get options(){return this._def.values}get enum(){let e={};for(let t of this._def.values)e[t]=t;return e}get Values(){let e={};for(let t of this._def.values)e[t]=t;return e}get Enum(){let e={};for(let t of this._def.values)e[t]=t;return e}extract(t,n=this._def){return e.create(t,{...this._def,...n})}exclude(t,n=this._def){return e.create(this.options.filter(e=>!t.includes(e)),{...this._def,...n})}};Du.create=Eu;var Ou=class extends J{_parse(e){let t=z.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==B.string&&n.parsedType!==B.number){let e=z.objectValues(t);return H(n,{expected:z.joinValues(e),received:n.parsedType,code:V.invalid_type}),W}if(this._cache||=new Set(z.getValidEnumValues(this._def.values)),!this._cache.has(e.data)){let e=z.objectValues(t);return H(n,{received:n.data,code:V.invalid_enum_value,options:e}),W}return G(e.data)}get enum(){return this._def.values}};Ou.create=(e,t)=>new Ou({values:e,typeName:Y.ZodNativeEnum,...q(t)});var ku=class extends J{unwrap(){return this._def.type}_parse(e){let{ctx:t}=this._processInputParams(e);return t.parsedType!==B.promise&&t.common.async===!1?(H(t,{code:V.invalid_type,expected:B.promise,received:t.parsedType}),W):G((t.parsedType===B.promise?t.data:Promise.resolve(t.data)).then(e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap})))}};ku.create=(e,t)=>new ku({type:e,typeName:Y.ZodPromise,...q(t)});var Au=class extends J{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Y.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=this._def.effect||null,i={addIssue:e=>{H(n,e),e.fatal?t.abort():t.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),r.type===`preprocess`){let e=r.transform(n.data,i);if(n.common.async)return Promise.resolve(e).then(async e=>{if(t.value===`aborted`)return W;let r=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return r.status===`aborted`?W:r.status===`dirty`||t.value===`dirty`?xl(r.value):r});{if(t.value===`aborted`)return W;let r=this._def.schema._parseSync({data:e,path:n.path,parent:n});return r.status===`aborted`?W:r.status===`dirty`||t.value===`dirty`?xl(r.value):r}}if(r.type===`refinement`){let e=e=>{let t=r.refinement(e,i);if(n.common.async)return Promise.resolve(t);if(t instanceof Promise)throw Error(`Async refinement encountered during synchronous parse operation. Use .parseAsync instead.`);return e};if(n.common.async===!1){let r=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return r.status===`aborted`?W:(r.status===`dirty`&&t.dirty(),e(r.value),{status:t.value,value:r.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(n=>n.status===`aborted`?W:(n.status===`dirty`&&t.dirty(),e(n.value).then(()=>({status:t.value,value:n.value}))))}if(r.type===`transform`)if(n.common.async===!1){let e=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!wl(e))return W;let a=r.transform(e.value,i);if(a instanceof Promise)throw Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);return{status:t.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(e=>wl(e)?Promise.resolve(r.transform(e.value,i)).then(e=>({status:t.value,value:e})):W);z.assertNever(r)}};Au.create=(e,t,n)=>new Au({schema:e,typeName:Y.ZodEffects,effect:t,...q(n)}),Au.createWithPreprocess=(e,t,n)=>new Au({schema:t,effect:{type:`preprocess`,transform:e},typeName:Y.ZodEffects,...q(n)});var ju=class extends J{_parse(e){return this._getType(e)===B.undefined?G(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};ju.create=(e,t)=>new ju({innerType:e,typeName:Y.ZodOptional,...q(t)});var Mu=class extends J{_parse(e){return this._getType(e)===B.null?G(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Mu.create=(e,t)=>new Mu({innerType:e,typeName:Y.ZodNullable,...q(t)});var Nu=class extends J{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return t.parsedType===B.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}};Nu.create=(e,t)=>new Nu({innerType:e,typeName:Y.ZodDefault,defaultValue:typeof t.default==`function`?t.default:()=>t.default,...q(t)});var Pu=class extends J{_parse(e){let{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},r=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return Tl(r)?r.then(e=>({status:`valid`,value:e.status===`valid`?e.value:this._def.catchValue({get error(){return new gl(n.common.issues)},input:n.data})})):{status:`valid`,value:r.status===`valid`?r.value:this._def.catchValue({get error(){return new gl(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};Pu.create=(e,t)=>new Pu({innerType:e,typeName:Y.ZodCatch,catchValue:typeof t.catch==`function`?t.catch:()=>t.catch,...q(t)});var Fu=class extends J{_parse(e){if(this._getType(e)!==B.nan){let t=this._getOrReturnCtx(e);return H(t,{code:V.invalid_type,expected:B.nan,received:t.parsedType}),W}return{status:`valid`,value:e.data}}};Fu.create=e=>new Fu({typeName:Y.ZodNaN,...q(e)});var Iu=class extends J{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}},Lu=class e extends J{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let e=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return e.status===`aborted`?W:e.status===`dirty`?(t.dirty(),xl(e.value)):this._def.out._parseAsync({data:e.value,path:n.path,parent:n})})();{let e=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return e.status===`aborted`?W:e.status===`dirty`?(t.dirty(),{status:`dirty`,value:e.value}):this._def.out._parseSync({data:e.value,path:n.path,parent:n})}}static create(t,n){return new e({in:t,out:n,typeName:Y.ZodPipeline})}},Ru=class extends J{_parse(e){let t=this._def.innerType._parse(e),n=e=>(wl(e)&&(e.value=Object.freeze(e.value)),e);return Tl(t)?t.then(e=>n(e)):n(t)}unwrap(){return this._def.innerType}};Ru.create=(e,t)=>new Ru({innerType:e,typeName:Y.ZodReadonly,...q(t)}),pu.lazycreate;var Y;(function(e){e.ZodString=`ZodString`,e.ZodNumber=`ZodNumber`,e.ZodNaN=`ZodNaN`,e.ZodBigInt=`ZodBigInt`,e.ZodBoolean=`ZodBoolean`,e.ZodDate=`ZodDate`,e.ZodSymbol=`ZodSymbol`,e.ZodUndefined=`ZodUndefined`,e.ZodNull=`ZodNull`,e.ZodAny=`ZodAny`,e.ZodUnknown=`ZodUnknown`,e.ZodNever=`ZodNever`,e.ZodVoid=`ZodVoid`,e.ZodArray=`ZodArray`,e.ZodObject=`ZodObject`,e.ZodUnion=`ZodUnion`,e.ZodDiscriminatedUnion=`ZodDiscriminatedUnion`,e.ZodIntersection=`ZodIntersection`,e.ZodTuple=`ZodTuple`,e.ZodRecord=`ZodRecord`,e.ZodMap=`ZodMap`,e.ZodSet=`ZodSet`,e.ZodFunction=`ZodFunction`,e.ZodLazy=`ZodLazy`,e.ZodLiteral=`ZodLiteral`,e.ZodEnum=`ZodEnum`,e.ZodEffects=`ZodEffects`,e.ZodNativeEnum=`ZodNativeEnum`,e.ZodOptional=`ZodOptional`,e.ZodNullable=`ZodNullable`,e.ZodDefault=`ZodDefault`,e.ZodCatch=`ZodCatch`,e.ZodPromise=`ZodPromise`,e.ZodBranded=`ZodBranded`,e.ZodPipeline=`ZodPipeline`,e.ZodReadonly=`ZodReadonly`})(Y||={}),Ql.create,eu.create,Fu.create,tu.create,nu.create,ru.create,iu.create,au.create,ou.create,su.create,cu.create,lu.create,uu.create,du.create,pu.create,pu.strictCreate,mu.create,gu.create,vu.create,yu.create,bu.create,xu.create,Su.create,Cu.create,wu.create,Tu.create,Du.create,Ou.create,ku.create,Au.create,ju.create,Mu.create,Au.createWithPreprocess,Lu.create;var{btoa:zu,atob:Bu}=globalThis,Vu=({prefix:e,size:t=16,alphabet:n=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz`,separator:r=`-`}={})=>{let i=()=>{let e=n.length,r=Array(t);for(let i=0;i<t;i++)r[i]=n[Math.random()*e|0];return r.join(``)};if(e==null)return i;if(n.includes(r))throw new en({argument:`separator`,message:`The separator "${r}" must not be part of the alphabet "${n}".`});return()=>`${e}${r}${i()}`};Vu();var Hu=/"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/,Uu=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/;function Wu(e){let t=JSON.parse(e);return typeof t!=`object`||!t||Hu.test(e)===!1&&Uu.test(e)===!1?t:Gu(t)}function Gu(e){let t=[e];for(;t.length;){let e=t;t=[];for(let n of e){if(Object.prototype.hasOwnProperty.call(n,`__proto__`)||Object.prototype.hasOwnProperty.call(n,`constructor`)&&n.constructor!==null&&typeof n.constructor==`object`&&Object.prototype.hasOwnProperty.call(n.constructor,`prototype`))throw SyntaxError(`Object contains forbidden prototype property`);for(let e in n){let r=n[e];r&&typeof r==`object`&&t.push(r)}}}return e}function Ku(e){let{stackTraceLimit:t}=Error;try{Error.stackTraceLimit=0}catch{return Wu(e)}try{return Wu(e)}finally{Error.stackTraceLimit=t}}function qu(e){if(e.type===`object`||Array.isArray(e.type)&&e.type.includes(`object`)){e.additionalProperties=!1;let{properties:t}=e;if(t!=null)for(let e of Object.keys(t))t[e]=Ju(t[e])}e.items!=null&&(e.items=Array.isArray(e.items)?e.items.map(Ju):Ju(e.items)),e.anyOf!=null&&(e.anyOf=e.anyOf.map(Ju)),e.allOf!=null&&(e.allOf=e.allOf.map(Ju)),e.oneOf!=null&&(e.oneOf=e.oneOf.map(Ju));let{definitions:t}=e;if(t!=null)for(let e of Object.keys(t))t[e]=Ju(t[e]);return e}function Ju(e){return typeof e==`boolean`?e:qu(e)}var Yu=Symbol(`Let zodToJsonSchema decide on which parser to use`),Xu={name:void 0,$refStrategy:`root`,basePath:[`#`],effectStrategy:`input`,pipeStrategy:`all`,dateStrategy:`format:date-time`,mapStrategy:`entries`,removeAdditionalStrategy:`passthrough`,allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:`definitions`,strictUnions:!1,definitions:{},errorMessages:!1,patternStrategy:`escape`,applyRegexFlags:!1,emailStrategy:`format:email`,base64Strategy:`contentEncoding:base64`,nameStrategy:`ref`},Zu=e=>typeof e==`string`?{...Xu,name:e}:{...Xu,...e};function X(){return{}}function Qu(e,t){let n={type:`array`};return e.type?._def&&e.type?._def?.typeName!==Y.ZodAny&&(n.items=Q(e.type._def,{...t,currentPath:[...t.currentPath,`items`]})),e.minLength&&(n.minItems=e.minLength.value),e.maxLength&&(n.maxItems=e.maxLength.value),e.exactLength&&(n.minItems=e.exactLength.value,n.maxItems=e.exactLength.value),n}function $u(e){let t={type:`integer`,format:`int64`};if(!e.checks)return t;for(let n of e.checks)switch(n.kind){case`min`:n.inclusive?t.minimum=n.value:t.exclusiveMinimum=n.value;break;case`max`:n.inclusive?t.maximum=n.value:t.exclusiveMaximum=n.value;break;case`multipleOf`:t.multipleOf=n.value;break}return t}function ed(){return{type:`boolean`}}function td(e,t){return Q(e.type._def,t)}var nd=(e,t)=>Q(e.innerType._def,t);function rd(e,t,n){let r=n??t.dateStrategy;if(Array.isArray(r))return{anyOf:r.map((n,r)=>rd(e,t,n))};switch(r){case`string`:case`format:date-time`:return{type:`string`,format:`date-time`};case`format:date`:return{type:`string`,format:`date`};case`integer`:return id(e)}}var id=e=>{let t={type:`integer`,format:`unix-time`};for(let n of e.checks)switch(n.kind){case`min`:t.minimum=n.value;break;case`max`:t.maximum=n.value;break}return t};function ad(e,t){return{...Q(e.innerType._def,t),default:e.defaultValue()}}function od(e,t){return t.effectStrategy===`input`?Q(e.schema._def,t):X()}function sd(e){return{type:`string`,enum:Array.from(e.values)}}var cd=e=>`type`in e&&e.type===`string`?!1:`allOf`in e;function ld(e,t){let n=[Q(e.left._def,{...t,currentPath:[...t.currentPath,`allOf`,`0`]}),Q(e.right._def,{...t,currentPath:[...t.currentPath,`allOf`,`1`]})].filter(e=>!!e),r=[];return n.forEach(e=>{if(cd(e))r.push(...e.allOf);else{let t=e;if(`additionalProperties`in e&&e.additionalProperties===!1){let{additionalProperties:n,...r}=e;t=r}r.push(t)}}),r.length?{allOf:r}:void 0}function ud(e){let t=typeof e.value;return t!==`bigint`&&t!==`number`&&t!==`boolean`&&t!==`string`?{type:Array.isArray(e.value)?`array`:`object`}:{type:t===`bigint`?`integer`:t,const:e.value}}var dd=void 0,fd={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>(dd===void 0&&(dd=RegExp(`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,`u`)),dd),uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4Cidr:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};function pd(e,t){let n={type:`string`};if(e.checks)for(let r of e.checks)switch(r.kind){case`min`:n.minLength=typeof n.minLength==`number`?Math.max(n.minLength,r.value):r.value;break;case`max`:n.maxLength=typeof n.maxLength==`number`?Math.min(n.maxLength,r.value):r.value;break;case`email`:switch(t.emailStrategy){case`format:email`:_d(n,`email`,r.message,t);break;case`format:idn-email`:_d(n,`idn-email`,r.message,t);break;case`pattern:zod`:Z(n,fd.email,r.message,t);break}break;case`url`:_d(n,`uri`,r.message,t);break;case`uuid`:_d(n,`uuid`,r.message,t);break;case`regex`:Z(n,r.regex,r.message,t);break;case`cuid`:Z(n,fd.cuid,r.message,t);break;case`cuid2`:Z(n,fd.cuid2,r.message,t);break;case`startsWith`:Z(n,RegExp(`^${md(r.value,t)}`),r.message,t);break;case`endsWith`:Z(n,RegExp(`${md(r.value,t)}$`),r.message,t);break;case`datetime`:_d(n,`date-time`,r.message,t);break;case`date`:_d(n,`date`,r.message,t);break;case`time`:_d(n,`time`,r.message,t);break;case`duration`:_d(n,`duration`,r.message,t);break;case`length`:n.minLength=typeof n.minLength==`number`?Math.max(n.minLength,r.value):r.value,n.maxLength=typeof n.maxLength==`number`?Math.min(n.maxLength,r.value):r.value;break;case`includes`:Z(n,RegExp(md(r.value,t)),r.message,t);break;case`ip`:r.version!==`v6`&&_d(n,`ipv4`,r.message,t),r.version!==`v4`&&_d(n,`ipv6`,r.message,t);break;case`base64url`:Z(n,fd.base64url,r.message,t);break;case`jwt`:Z(n,fd.jwt,r.message,t);break;case`cidr`:r.version!==`v6`&&Z(n,fd.ipv4Cidr,r.message,t),r.version!==`v4`&&Z(n,fd.ipv6Cidr,r.message,t);break;case`emoji`:Z(n,fd.emoji(),r.message,t);break;case`ulid`:Z(n,fd.ulid,r.message,t);break;case`base64`:switch(t.base64Strategy){case`format:binary`:_d(n,`binary`,r.message,t);break;case`contentEncoding:base64`:n.contentEncoding=`base64`;break;case`pattern:zod`:Z(n,fd.base64,r.message,t);break}break;case`nanoid`:Z(n,fd.nanoid,r.message,t);case`toLowerCase`:case`toUpperCase`:case`trim`:break;default:}return n}function md(e,t){return t.patternStrategy===`escape`?gd(e):e}var hd=new Set(`ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789`);function gd(e){let t=``;for(let n=0;n<e.length;n++)hd.has(e[n])||(t+=`\\`),t+=e[n];return t}function _d(e,t,n,r){e.format||e.anyOf?.some(e=>e.format)?(e.anyOf||=[],e.format&&(e.anyOf.push({format:e.format}),delete e.format),e.anyOf.push({format:t,...n&&r.errorMessages&&{errorMessage:{format:n}}})):e.format=t}function Z(e,t,n,r){e.pattern||e.allOf?.some(e=>e.pattern)?(e.allOf||=[],e.pattern&&(e.allOf.push({pattern:e.pattern}),delete e.pattern),e.allOf.push({pattern:vd(t,r),...n&&r.errorMessages&&{errorMessage:{pattern:n}}})):e.pattern=vd(t,r)}function vd(e,t){if(!t.applyRegexFlags||!e.flags)return e.source;let n={i:e.flags.includes(`i`),m:e.flags.includes(`m`),s:e.flags.includes(`s`)},r=n.i?e.source.toLowerCase():e.source,i=``,a=!1,o=!1,s=!1;for(let e=0;e<r.length;e++){if(a){i+=r[e],a=!1;continue}if(n.i){if(o){if(r[e].match(/[a-z]/)){s?(i+=r[e],i+=`${r[e-2]}-${r[e]}`.toUpperCase(),s=!1):r[e+1]===`-`&&r[e+2]?.match(/[a-z]/)?(i+=r[e],s=!0):i+=`${r[e]}${r[e].toUpperCase()}`;continue}}else if(r[e].match(/[a-z]/)){i+=`[${r[e]}${r[e].toUpperCase()}]`;continue}}if(n.m){if(r[e]===`^`){i+=`(^|(?<=[\r
42
- ]))`;continue}else if(r[e]===`$`){i+=`($|(?=[\r
43
- ]))`;continue}}if(n.s&&r[e]===`.`){i+=o?`${r[e]}\r
44
- `:`[${r[e]}\r
45
- ]`;continue}i+=r[e],r[e]===`\\`?a=!0:o&&r[e]===`]`?o=!1:!o&&r[e]===`[`&&(o=!0)}try{new RegExp(i)}catch{return console.warn(`Could not convert regex pattern at ${t.currentPath.join(`/`)} to a flag-independent form! Falling back to the flag-ignorant source`),e.source}return i}function yd(e,t){let n={type:`object`,additionalProperties:Q(e.valueType._def,{...t,currentPath:[...t.currentPath,`additionalProperties`]})??t.allowedAdditionalProperties};if(e.keyType?._def.typeName===Y.ZodString&&e.keyType._def.checks?.length){let{type:r,...i}=pd(e.keyType._def,t);return{...n,propertyNames:i}}else if(e.keyType?._def.typeName===Y.ZodEnum)return{...n,propertyNames:{enum:e.keyType._def.values}};else if(e.keyType?._def.typeName===Y.ZodBranded&&e.keyType._def.type._def.typeName===Y.ZodString&&e.keyType._def.type._def.checks?.length){let{type:r,...i}=td(e.keyType._def,t);return{...n,propertyNames:i}}return n}function bd(e,t){return t.mapStrategy===`record`?yd(e,t):{type:`array`,maxItems:125,items:{type:`array`,items:[Q(e.keyType._def,{...t,currentPath:[...t.currentPath,`items`,`items`,`0`]})||X(),Q(e.valueType._def,{...t,currentPath:[...t.currentPath,`items`,`items`,`1`]})||X()],minItems:2,maxItems:2}}}function xd(e){let t=e.values,n=Object.keys(e.values).filter(e=>typeof t[t[e]]!=`number`).map(e=>t[e]),r=Array.from(new Set(n.map(e=>typeof e)));return{type:r.length===1?r[0]===`string`?`string`:`number`:[`string`,`number`],enum:n}}function Sd(){return{not:X()}}function Cd(){return{type:`null`}}var wd={ZodString:`string`,ZodNumber:`number`,ZodBigInt:`integer`,ZodBoolean:`boolean`,ZodNull:`null`};function Td(e,t){let n=e.options instanceof Map?Array.from(e.options.values()):e.options;if(n.every(e=>e._def.typeName in wd&&(!e._def.checks||!e._def.checks.length))){let e=n.reduce((e,t)=>{let n=wd[t._def.typeName];return n&&!e.includes(n)?[...e,n]:e},[]);return{type:e.length>1?e:e[0]}}else if(n.every(e=>e._def.typeName===`ZodLiteral`&&!e.description)){let e=n.reduce((e,t)=>{let n=typeof t._def.value;switch(n){case`string`:case`number`:case`boolean`:return[...e,n];case`bigint`:return[...e,`integer`];case`object`:if(t._def.value===null)return[...e,`null`];default:return e}},[]);if(e.length===n.length){let t=e.filter((e,t,n)=>n.indexOf(e)===t);return{type:t.length>1?t:t[0],enum:n.reduce((e,t)=>e.includes(t._def.value)?e:[...e,t._def.value],[])}}}else if(n.every(e=>e._def.typeName===`ZodEnum`))return{type:`string`,enum:n.reduce((e,t)=>[...e,...t._def.values.filter(t=>!e.includes(t))],[])};return Ed(e,t)}var Ed=(e,t)=>{let n=(e.options instanceof Map?Array.from(e.options.values()):e.options).map((e,n)=>Q(e._def,{...t,currentPath:[...t.currentPath,`anyOf`,`${n}`]})).filter(e=>!!e&&(!t.strictUnions||typeof e==`object`&&Object.keys(e).length>0));return n.length?{anyOf:n}:void 0};function Dd(e,t){if([`ZodString`,`ZodNumber`,`ZodBigInt`,`ZodBoolean`,`ZodNull`].includes(e.innerType._def.typeName)&&(!e.innerType._def.checks||!e.innerType._def.checks.length))return{type:[wd[e.innerType._def.typeName],`null`]};let n=Q(e.innerType._def,{...t,currentPath:[...t.currentPath,`anyOf`,`0`]});return n&&{anyOf:[n,{type:`null`}]}}function Od(e){let t={type:`number`};if(!e.checks)return t;for(let n of e.checks)switch(n.kind){case`int`:t.type=`integer`;break;case`min`:n.inclusive?t.minimum=n.value:t.exclusiveMinimum=n.value;break;case`max`:n.inclusive?t.maximum=n.value:t.exclusiveMaximum=n.value;break;case`multipleOf`:t.multipleOf=n.value;break}return t}function kd(e,t){let n={type:`object`,properties:{}},r=[],i=e.shape();for(let e in i){let a=i[e];if(a===void 0||a._def===void 0)continue;let o=jd(a),s=Q(a._def,{...t,currentPath:[...t.currentPath,`properties`,e],propertyPath:[...t.currentPath,`properties`,e]});s!==void 0&&(n.properties[e]=s,o||r.push(e))}r.length&&(n.required=r);let a=Ad(e,t);return a!==void 0&&(n.additionalProperties=a),n}function Ad(e,t){if(e.catchall._def.typeName!==`ZodNever`)return Q(e.catchall._def,{...t,currentPath:[...t.currentPath,`additionalProperties`]});switch(e.unknownKeys){case`passthrough`:return t.allowedAdditionalProperties;case`strict`:return t.rejectedAdditionalProperties;case`strip`:return t.removeAdditionalStrategy===`strict`?t.allowedAdditionalProperties:t.rejectedAdditionalProperties}}function jd(e){try{return e.isOptional()}catch{return!0}}var Md=(e,t)=>{if(t.currentPath.toString()===t.propertyPath?.toString())return Q(e.innerType._def,t);let n=Q(e.innerType._def,{...t,currentPath:[...t.currentPath,`anyOf`,`1`]});return n?{anyOf:[{not:X()},n]}:X()},Nd=(e,t)=>{if(t.pipeStrategy===`input`)return Q(e.in._def,t);if(t.pipeStrategy===`output`)return Q(e.out._def,t);let n=Q(e.in._def,{...t,currentPath:[...t.currentPath,`allOf`,`0`]});return{allOf:[n,Q(e.out._def,{...t,currentPath:[...t.currentPath,`allOf`,n?`1`:`0`]})].filter(e=>e!==void 0)}};function Pd(e,t){return Q(e.type._def,t)}function Fd(e,t){let n={type:`array`,uniqueItems:!0,items:Q(e.valueType._def,{...t,currentPath:[...t.currentPath,`items`]})};return e.minSize&&(n.minItems=e.minSize.value),e.maxSize&&(n.maxItems=e.maxSize.value),n}function Id(e,t){return e.rest?{type:`array`,minItems:e.items.length,items:e.items.map((e,n)=>Q(e._def,{...t,currentPath:[...t.currentPath,`items`,`${n}`]})).reduce((e,t)=>t===void 0?e:[...e,t],[]),additionalItems:Q(e.rest._def,{...t,currentPath:[...t.currentPath,`additionalItems`]})}:{type:`array`,minItems:e.items.length,maxItems:e.items.length,items:e.items.map((e,n)=>Q(e._def,{...t,currentPath:[...t.currentPath,`items`,`${n}`]})).reduce((e,t)=>t===void 0?e:[...e,t],[])}}function Ld(){return{not:X()}}function Rd(){return X()}var zd=(e,t)=>Q(e.innerType._def,t),Bd=(e,t,n)=>{switch(t){case Y.ZodString:return pd(e,n);case Y.ZodNumber:return Od(e);case Y.ZodObject:return kd(e,n);case Y.ZodBigInt:return $u(e);case Y.ZodBoolean:return ed();case Y.ZodDate:return rd(e,n);case Y.ZodUndefined:return Ld();case Y.ZodNull:return Cd();case Y.ZodArray:return Qu(e,n);case Y.ZodUnion:case Y.ZodDiscriminatedUnion:return Td(e,n);case Y.ZodIntersection:return ld(e,n);case Y.ZodTuple:return Id(e,n);case Y.ZodRecord:return yd(e,n);case Y.ZodLiteral:return ud(e);case Y.ZodEnum:return sd(e);case Y.ZodNativeEnum:return xd(e);case Y.ZodNullable:return Dd(e,n);case Y.ZodOptional:return Md(e,n);case Y.ZodMap:return bd(e,n);case Y.ZodSet:return Fd(e,n);case Y.ZodLazy:return()=>e.getter()._def;case Y.ZodPromise:return Pd(e,n);case Y.ZodNaN:case Y.ZodNever:return Sd();case Y.ZodEffects:return od(e,n);case Y.ZodAny:return X();case Y.ZodUnknown:return Rd();case Y.ZodDefault:return ad(e,n);case Y.ZodBranded:return td(e,n);case Y.ZodReadonly:return zd(e,n);case Y.ZodCatch:return nd(e,n);case Y.ZodPipeline:return Nd(e,n);case Y.ZodFunction:case Y.ZodVoid:case Y.ZodSymbol:return;default:return(e=>void 0)(t)}},Vd=(e,t)=>{let n=0;for(;n<e.length&&n<t.length&&e[n]===t[n];n++);return[(e.length-n).toString(),...t.slice(n)].join(`/`)};function Q(e,t,n=!1){let r=t.seen.get(e);if(t.override){let i=t.override?.call(t,e,t,r,n);if(i!==Yu)return i}if(r&&!n){let e=Hd(r,t);if(e!==void 0)return e}let i={def:e,path:t.currentPath,jsonSchema:void 0};t.seen.set(e,i);let a=Bd(e,e.typeName,t),o=typeof a==`function`?Q(a(),t):a;if(o&&Ud(e,t,o),t.postProcess){let n=t.postProcess(o,e,t);return i.jsonSchema=o,n}return i.jsonSchema=o,o}var Hd=(e,t)=>{switch(t.$refStrategy){case`root`:return{$ref:e.path.join(`/`)};case`relative`:return{$ref:Vd(t.currentPath,e.path)};case`none`:case`seen`:return e.path.length<t.currentPath.length&&e.path.every((e,n)=>t.currentPath[n]===e)?(console.warn(`Recursive reference detected at ${t.currentPath.join(`/`)}! Defaulting to any`),X()):t.$refStrategy===`seen`?X():void 0}},Ud=(e,t,n)=>(e.description&&(n.description=e.description),n),Wd=e=>{let t=Zu(e),n=t.name===void 0?t.basePath:[...t.basePath,t.definitionPath,t.name];return{...t,currentPath:n,propertyPath:void 0,seen:new Map(Object.entries(t.definitions).map(([e,n])=>[n._def,{def:n._def,path:[...t.basePath,t.definitionPath,e],jsonSchema:void 0}]))}},Gd=(e,t)=>{let n=Wd(t),r=typeof t==`object`&&t.definitions?Object.entries(t.definitions).reduce((e,[t,r])=>({...e,[t]:Q(r._def,{...n,currentPath:[...n.basePath,n.definitionPath,t]},!0)??X()}),{}):void 0,i=typeof t==`string`?t:t?.nameStrategy===`title`?void 0:t?.name,a=Q(e._def,i===void 0?n:{...n,currentPath:[...n.basePath,n.definitionPath,i]},!1)??X(),o=typeof t==`object`&&t.name!==void 0&&t.nameStrategy===`title`?t.name:void 0;o!==void 0&&(a.title=o);let s=i===void 0?r?{...a,[n.definitionPath]:r}:a:{$ref:[...n.$refStrategy===`relative`?[]:n.basePath,n.definitionPath,i].join(`/`),[n.definitionPath]:{...r,[i]:a}};return s.$schema=`http://json-schema.org/draft-07/schema#`,s},Kd=Symbol.for(`vercel.ai.schema`);function qd(e,{validate:t}={}){return{[Kd]:!0,_type:void 0,get jsonSchema(){return typeof e==`function`&&(e=e()),e},validate:t}}function Jd(e){return typeof e==`object`&&!!e&&Kd in e&&e[Kd]===!0&&`jsonSchema`in e&&`validate`in e}function Yd(e){return e==null?qd({properties:{},additionalProperties:!1}):Jd(e)?e:`~standard`in e?e[`~standard`].vendor===`zod`?ef(e):Xd(e):e()}function Xd(e){return qd(()=>qu(e[`~standard`].jsonSchema.input({target:`draft-07`})),{validate:async t=>{let n=await e[`~standard`].validate(t);return`value`in n?{success:!0,value:n.value}:{success:!1,error:new pn({value:t,cause:n.issues})}}})}function Zd(e,t){let n=t?.useReferences??!1;return qd(()=>Gd(e,{$refStrategy:n?`root`:`none`}),{validate:async t=>{let n=await e.safeParseAsync(t);return n.success?{success:!0,value:n.data}:{success:!1,error:n.error}}})}function Qd(e,t){let n=t?.useReferences??!1;return qd(()=>qu(Es(e,{target:`draft-7`,io:`input`,reused:n?`ref`:`inline`})),{validate:async t=>{let n=await Bs(e,t);return n.success?{success:!0,value:n.data}:{success:!1,error:n.error}}})}function $d(e){return`_zod`in e}function ef(e,t){return $d(e)?Qd(e,t):Zd(e,t)}async function tf({value:e,schema:t,context:n}){let r=Yd(t);try{if(r.validate==null)return{success:!0,value:e,rawValue:e};let t=await r.validate(e);return t.success?{success:!0,value:t.value,rawValue:e}:{success:!1,error:pn.wrap({value:e,cause:t.error,context:n}),rawValue:e}}catch(t){return{success:!1,error:pn.wrap({value:e,cause:t,context:n}),rawValue:e}}}async function nf({text:e,schema:t}){try{let n=Ku(e);return t==null?{success:!0,value:n,rawValue:n}:await tf({value:n,schema:t})}catch(t){return{success:!1,error:sn.isInstance(t)?t:new sn({text:e,cause:t}),rawValue:void 0}}}async function rf(e){return typeof e==`function`&&(e=e()),Promise.resolve(e)}var af=Object.defineProperty,of=(e,t)=>{for(var n in t)af(e,n,{get:t[n],enumerable:!0})},sf=`AI_NoObjectGeneratedError`,cf=`vercel.ai.error.${sf}`,lf=Symbol.for(cf),uf,df=class extends qt{constructor({message:e=`No object generated.`,cause:t,text:n,response:r,usage:i,finishReason:a}){super({name:sf,message:e,cause:t}),this[uf]=!0,this.text=n,this.response=r,this.usage=i,this.finishReason=a}static isInstance(e){return qt.hasMarker(e,cf)}};uf=lf;var ff=L([P(),pl(Uint8Array),pl(ArrayBuffer),ul(e=>globalThis.Buffer?.isBuffer(e)??!1,{message:`Must be a Buffer`})]),pf=cl(()=>L([Cc(),P(),_c(),xc(),Lc(P(),pf.optional()),kc(pf)])),$=Lc(P(),Lc(P(),pf.optional())),mf=I({type:R(`text`),text:P(),providerOptions:$.optional()}),hf=I({type:R(`image`),image:L([ff,pl(URL)]),mediaType:P().optional(),providerOptions:$.optional()}),gf=I({type:R(`file`),data:L([ff,pl(URL)]),filename:P().optional(),mediaType:P(),providerOptions:$.optional()}),_f=I({type:R(`reasoning`),text:P(),providerOptions:$.optional()}),vf=I({type:R(`tool-call`),toolCallId:P(),toolName:P(),input:Tc(),providerOptions:$.optional(),providerExecuted:xc().optional()}),yf=Nc(`type`,[I({type:R(`text`),value:P(),providerOptions:$.optional()}),I({type:R(`json`),value:pf,providerOptions:$.optional()}),I({type:R(`execution-denied`),reason:P().optional(),providerOptions:$.optional()}),I({type:R(`error-text`),value:P(),providerOptions:$.optional()}),I({type:R(`error-json`),value:pf,providerOptions:$.optional()}),I({type:R(`content`),value:kc(L([I({type:R(`text`),text:P(),providerOptions:$.optional()}),I({type:R(`media`),data:P(),mediaType:P()}),I({type:R(`file-data`),data:P(),mediaType:P(),filename:P().optional(),providerOptions:$.optional()}),I({type:R(`file-url`),url:P(),providerOptions:$.optional()}),I({type:R(`file-id`),fileId:L([P(),Lc(P(),P())]),providerOptions:$.optional()}),I({type:R(`image-data`),data:P(),mediaType:P(),providerOptions:$.optional()}),I({type:R(`image-url`),url:P(),providerOptions:$.optional()}),I({type:R(`image-file-id`),fileId:L([P(),Lc(P(),P())]),providerOptions:$.optional()}),I({type:R(`custom`),providerOptions:$.optional()})]))})]),bf=I({type:R(`tool-result`),toolCallId:P(),toolName:P(),output:yf,providerOptions:$.optional()}),xf=I({type:R(`tool-approval-request`),approvalId:P(),toolCallId:P()}),Sf=I({type:R(`tool-approval-response`),approvalId:P(),approved:xc(),reason:P().optional()});L([I({role:R(`system`),content:P(),providerOptions:$.optional()}),I({role:R(`user`),content:L([P(),kc(L([mf,hf,gf]))]),providerOptions:$.optional()}),I({role:R(`assistant`),content:L([P(),kc(L([mf,gf,_f,vf,bf,xf]))]),providerOptions:$.optional()}),I({role:R(`tool`),content:kc(L([bf,Sf])),providerOptions:$.optional()})]),of({},{array:()=>Df,choice:()=>Of,json:()=>kf,object:()=>Ef,text:()=>Tf});function Cf(e){let t=[`ROOT`],n=-1,r=null;function i(e,i,a){switch(e){case`"`:n=i,t.pop(),t.push(a),t.push(`INSIDE_STRING`);break;case`f`:case`t`:case`n`:n=i,r=i,t.pop(),t.push(a),t.push(`INSIDE_LITERAL`);break;case`-`:t.pop(),t.push(a),t.push(`INSIDE_NUMBER`);break;case`0`:case`1`:case`2`:case`3`:case`4`:case`5`:case`6`:case`7`:case`8`:case`9`:n=i,t.pop(),t.push(a),t.push(`INSIDE_NUMBER`);break;case`{`:n=i,t.pop(),t.push(a),t.push(`INSIDE_OBJECT_START`);break;case`[`:n=i,t.pop(),t.push(a),t.push(`INSIDE_ARRAY_START`);break}}function a(e,r){switch(e){case`,`:t.pop(),t.push(`INSIDE_OBJECT_AFTER_COMMA`);break;case`}`:n=r,t.pop();break}}function o(e,r){switch(e){case`,`:t.pop(),t.push(`INSIDE_ARRAY_AFTER_COMMA`);break;case`]`:n=r,t.pop();break}}for(let s=0;s<e.length;s++){let c=e[s];switch(t[t.length-1]){case`ROOT`:i(c,s,`FINISH`);break;case`INSIDE_OBJECT_START`:switch(c){case`"`:t.pop(),t.push(`INSIDE_OBJECT_KEY`);break;case`}`:n=s,t.pop();break}break;case`INSIDE_OBJECT_AFTER_COMMA`:switch(c){case`"`:t.pop(),t.push(`INSIDE_OBJECT_KEY`);break}break;case`INSIDE_OBJECT_KEY`:switch(c){case`"`:t.pop(),t.push(`INSIDE_OBJECT_AFTER_KEY`);break}break;case`INSIDE_OBJECT_AFTER_KEY`:switch(c){case`:`:t.pop(),t.push(`INSIDE_OBJECT_BEFORE_VALUE`);break}break;case`INSIDE_OBJECT_BEFORE_VALUE`:i(c,s,`INSIDE_OBJECT_AFTER_VALUE`);break;case`INSIDE_OBJECT_AFTER_VALUE`:a(c,s);break;case`INSIDE_STRING`:switch(c){case`"`:t.pop(),n=s;break;case`\\`:t.push(`INSIDE_STRING_ESCAPE`);break;default:n=s}break;case`INSIDE_ARRAY_START`:switch(c){case`]`:n=s,t.pop();break;default:n=s,i(c,s,`INSIDE_ARRAY_AFTER_VALUE`);break}break;case`INSIDE_ARRAY_AFTER_VALUE`:switch(c){case`,`:t.pop(),t.push(`INSIDE_ARRAY_AFTER_COMMA`);break;case`]`:n=s,t.pop();break;default:n=s;break}break;case`INSIDE_ARRAY_AFTER_COMMA`:i(c,s,`INSIDE_ARRAY_AFTER_VALUE`);break;case`INSIDE_STRING_ESCAPE`:t.pop(),n=s;break;case`INSIDE_NUMBER`:switch(c){case`0`:case`1`:case`2`:case`3`:case`4`:case`5`:case`6`:case`7`:case`8`:case`9`:n=s;break;case`e`:case`E`:case`-`:case`.`:break;case`,`:t.pop(),t[t.length-1]===`INSIDE_ARRAY_AFTER_VALUE`&&o(c,s),t[t.length-1]===`INSIDE_OBJECT_AFTER_VALUE`&&a(c,s);break;case`}`:t.pop(),t[t.length-1]===`INSIDE_OBJECT_AFTER_VALUE`&&a(c,s);break;case`]`:t.pop(),t[t.length-1]===`INSIDE_ARRAY_AFTER_VALUE`&&o(c,s);break;default:t.pop();break}break;case`INSIDE_LITERAL`:{let i=e.substring(r,s+1);!`false`.startsWith(i)&&!`true`.startsWith(i)&&!`null`.startsWith(i)?(t.pop(),t[t.length-1]===`INSIDE_OBJECT_AFTER_VALUE`?a(c,s):t[t.length-1]===`INSIDE_ARRAY_AFTER_VALUE`&&o(c,s)):n=s;break}}}let s=e.slice(0,n+1);for(let n=t.length-1;n>=0;n--)switch(t[n]){case`INSIDE_STRING`:s+=`"`;break;case`INSIDE_OBJECT_KEY`:case`INSIDE_OBJECT_AFTER_KEY`:case`INSIDE_OBJECT_AFTER_COMMA`:case`INSIDE_OBJECT_START`:case`INSIDE_OBJECT_BEFORE_VALUE`:case`INSIDE_OBJECT_AFTER_VALUE`:s+=`}`;break;case`INSIDE_ARRAY_START`:case`INSIDE_ARRAY_AFTER_COMMA`:case`INSIDE_ARRAY_AFTER_VALUE`:s+=`]`;break;case`INSIDE_LITERAL`:{let t=e.substring(r,e.length);`true`.startsWith(t)?s+=`true`.slice(t.length):`false`.startsWith(t)?s+=`false`.slice(t.length):`null`.startsWith(t)&&(s+=`null`.slice(t.length))}}return s}async function wf(e){if(e===void 0)return{value:void 0,state:`undefined-input`};let t=await nf({text:e});return t.success?{value:t.value,state:`successful-parse`}:(t=await nf({text:Cf(e)}),t.success?{value:t.value,state:`repaired-parse`}:{value:void 0,state:`failed-parse`})}var Tf=()=>({name:`text`,responseFormat:Promise.resolve({type:`text`}),async parseCompleteOutput({text:e}){return e},async parsePartialOutput({text:e}){return{partial:e}},createElementStreamTransform(){}}),Ef=({schema:e,name:t,description:n})=>{let r=Yd(e);return{name:`object`,responseFormat:rf(r.jsonSchema).then(e=>({type:`json`,schema:e,...t!=null&&{name:t},...n!=null&&{description:n}})),async parseCompleteOutput({text:e},t){let n=await nf({text:e});if(!n.success)throw new df({message:`No object generated: could not parse the response.`,cause:n.error,text:e,response:t.response,usage:t.usage,finishReason:t.finishReason});let i=await tf({value:n.value,schema:r});if(!i.success)throw new df({message:`No object generated: response did not match schema.`,cause:i.error,text:e,response:t.response,usage:t.usage,finishReason:t.finishReason});return i.value},async parsePartialOutput({text:e}){let t=await wf(e);switch(t.state){case`failed-parse`:case`undefined-input`:return;case`repaired-parse`:case`successful-parse`:return{partial:t.value}}},createElementStreamTransform(){}}},Df=({element:e,name:t,description:n})=>{let r=Yd(e);return{name:`array`,responseFormat:rf(r.jsonSchema).then(e=>{let{$schema:r,...i}=e;return{type:`json`,schema:{$schema:`http://json-schema.org/draft-07/schema#`,type:`object`,properties:{elements:{type:`array`,items:i}},required:[`elements`],additionalProperties:!1},...t!=null&&{name:t},...n!=null&&{description:n}}}),async parseCompleteOutput({text:e},t){let n=await nf({text:e});if(!n.success)throw new df({message:`No object generated: could not parse the response.`,cause:n.error,text:e,response:t.response,usage:t.usage,finishReason:t.finishReason});let i=n.value;if(typeof i!=`object`||!i||!(`elements`in i)||!Array.isArray(i.elements))throw new df({message:`No object generated: response did not match schema.`,cause:new pn({value:i,cause:`response must be an object with an elements array`}),text:e,response:t.response,usage:t.usage,finishReason:t.finishReason});for(let n of i.elements){let i=await tf({value:n,schema:r});if(!i.success)throw new df({message:`No object generated: response did not match schema.`,cause:i.error,text:e,response:t.response,usage:t.usage,finishReason:t.finishReason})}return i.elements},async parsePartialOutput({text:e}){let t=await wf(e);switch(t.state){case`failed-parse`:case`undefined-input`:return;case`repaired-parse`:case`successful-parse`:{let e=t.value;if(typeof e!=`object`||!e||!(`elements`in e)||!Array.isArray(e.elements))return;let n=t.state===`repaired-parse`&&e.elements.length>0?e.elements.slice(0,-1):e.elements,i=[];for(let e of n){let t=await tf({value:e,schema:r});t.success&&i.push(t.value)}return{partial:i}}}},createElementStreamTransform(){let e=0;return new TransformStream({transform({partialOutput:t},n){if(t!=null)for(;e<t.length;e++)n.enqueue(t[e])}})}}},Of=({options:e,name:t,description:n})=>({name:`choice`,responseFormat:Promise.resolve({type:`json`,schema:{$schema:`http://json-schema.org/draft-07/schema#`,type:`object`,properties:{result:{type:`string`,enum:e}},required:[`result`],additionalProperties:!1},...t!=null&&{name:t},...n!=null&&{description:n}}),async parseCompleteOutput({text:t},n){let r=await nf({text:t});if(!r.success)throw new df({message:`No object generated: could not parse the response.`,cause:r.error,text:t,response:n.response,usage:n.usage,finishReason:n.finishReason});let i=r.value;if(typeof i!=`object`||!i||!(`result`in i)||typeof i.result!=`string`||!e.includes(i.result))throw new df({message:`No object generated: response did not match schema.`,cause:new pn({value:i,cause:`response must be an object that contains a choice value.`}),text:t,response:n.response,usage:n.usage,finishReason:n.finishReason});return i.result},async parsePartialOutput({text:t}){let n=await wf(t);switch(n.state){case`failed-parse`:case`undefined-input`:return;case`repaired-parse`:case`successful-parse`:{let t=n.value;if(typeof t!=`object`||!t||!(`result`in t)||typeof t.result!=`string`)return;let r=e.filter(e=>e.startsWith(t.result));return n.state===`successful-parse`?r.includes(t.result)?{partial:t.result}:void 0:r.length===1?{partial:r[0]}:void 0}}},createElementStreamTransform(){}}),kf=({name:e,description:t}={})=>({name:`json`,responseFormat:Promise.resolve({type:`json`,...e!=null&&{name:e},...t!=null&&{description:t}}),async parseCompleteOutput({text:e},t){let n=await nf({text:e});if(!n.success)throw new df({message:`No object generated: could not parse the response.`,cause:n.error,text:e,response:t.response,usage:t.usage,finishReason:t.finishReason});return n.value},async parsePartialOutput({text:e}){let t=await wf(e);switch(t.state){case`failed-parse`:case`undefined-input`:return;case`repaired-parse`:case`successful-parse`:return t.value===void 0?void 0:{partial:t.value}}},createElementStreamTransform(){}});Vu({prefix:`aitxt`,size:24}),TransformStream;function Af(e){return e.type.startsWith(`data-`)}Vu({prefix:`aitxt`,size:24}),Vu({prefix:`aiobj`,size:24}),Vu({prefix:`aiobj`,size:24});var jf=class{constructor(e,t={}){this._trackers=new Map,this._pending=[],this._closed=!1,this._writer=e,this._defaultClientId=t.clientId,this._defaultExtras=t.extras,this._onMessageHook=t.onMessage??(()=>{}),this._logger=t.logger?.withContext({component:`EncoderCore`})}async publishDiscrete(e,t){this._assertNotClosed(),this._logger?.trace(`DefaultEncoderCore.publishDiscrete();`,{name:e.name});let n=this._buildDiscreteMessage(e,t);return this._writer.publish(n)}async publishDiscreteBatch(e,t){this._assertNotClosed(),this._logger?.trace(`DefaultEncoderCore.publishDiscreteBatch();`,{count:e.length});let n=e.map(e=>this._buildDiscreteMessage(e,t));for(let e of n)e.extras.headers[g]=`true`;return this._writer.publish(n)}async startStream(e,t,r){this._assertNotClosed(),this._logger?.trace(`DefaultEncoderCore.startStream();`,{name:t.name,streamId:e});let i=this._buildHeaders(t.headers??{},r);i[m]=`true`,i[h]=`streaming`,i[ee]=e;let a=this._resolveClientId(r),o={name:t.name,data:t.data,extras:{headers:i},...a?{clientId:a}:{}};this._invokeOnMessage(o);let s=(await this._writer.publish(o)).serials[0];if(!s)throw new n.ErrorInfo(`unable to start stream; no serial returned for stream '${t.name}' (streamId: ${e})`,y.BadRequest,400);this._trackers.set(e,{serial:s,name:t.name,streamId:e,accumulated:t.data,persistentHeaders:i,aborted:!1}),this._logger?.debug(`DefaultEncoderCore.startStream(); stream started`,{name:t.name,streamId:e,serial:s})}appendStream(e,t){this._assertNotClosed();let r=this._trackers.get(e);if(!r)throw new n.ErrorInfo(`unable to append to stream; no active stream for streamId '${e}'`,y.InvalidArgument,400);r.accumulated+=t;let i={serial:r.serial,data:t,extras:{headers:{...r.persistentHeaders}}};this._invokeOnMessage(i);let a=this._writer.appendMessage(i);this._pending.push({promise:a,streamId:e})}async closeStream(e,t){this._assertNotClosed(),this._logger?.trace(`DefaultEncoderCore.closeStream();`,{streamId:e});let r=this._trackers.get(e);if(!r)throw new n.ErrorInfo(`unable to close stream; no active stream for streamId '${e}'`,y.InvalidArgument,400);r.accumulated+=t.data;let i=this._buildClosingHeaders(r,t.headers??{});i[h]=`finished`;let a={serial:r.serial,data:t.data,extras:{headers:i}};this._invokeOnMessage(a);let o=this._writer.appendMessage(a);this._pending.push({promise:o,streamId:e}),await this._flushPending(),this._logger?.debug(`DefaultEncoderCore.closeStream(); stream closed`,{streamId:e})}async abortStream(e,t){this._assertNotClosed(),this._logger?.trace(`DefaultEncoderCore.abortStream();`,{streamId:e});let r=this._trackers.get(e);if(!r)throw new n.ErrorInfo(`unable to abort stream; no active stream for streamId '${e}'`,y.InvalidArgument,400);r.aborted=!0;let i=this._buildClosingHeaders(r,{},t);i[h]=`aborted`;let a={serial:r.serial,data:``,extras:{headers:i}};this._invokeOnMessage(a);let o=this._writer.appendMessage(a);this._pending.push({promise:o,streamId:e}),await this._flushPending(),this._logger?.debug(`DefaultEncoderCore.abortStream(); stream aborted`,{streamId:e})}async abortAllStreams(e){this._assertNotClosed(),this._logger?.trace(`DefaultEncoderCore.abortAllStreams();`,{streamCount:this._trackers.size});for(let t of this._trackers.values()){t.aborted=!0;let n=this._buildClosingHeaders(t,{},e);n[h]=`aborted`;let r={serial:t.serial,data:``,extras:{headers:n}};this._invokeOnMessage(r);let i=this._writer.appendMessage(r);this._pending.push({promise:i,streamId:t.streamId})}await this._flushPending()}async _flushPending(){if(this._flushPromise)return this._flushPromise;let e=this._pending;if(this._pending=[],e.length!==0){this._logger?.trace(`DefaultEncoderCore._flushPending();`,{count:e.length}),this._flushPromise=this._doFlush(e);try{await this._flushPromise}finally{this._flushPromise=void 0}}}async _doFlush(e){let t=await Promise.allSettled(e.map(async e=>e.promise)),r=new Set;for(let[n,i]of t.entries()){let t=e[n];t&&i.status===`rejected`&&r.add(t.streamId)}if(r.size===0){this._logger?.debug(`DefaultEncoderCore._flushPending(); all appends succeeded`);return}this._logger?.warn(`DefaultEncoderCore._flushPending(); recovering failed appends`,{failedStreams:[...r]});let i=[];for(let e of r){let t=this._trackers.get(e);if(!t)continue;let n=t.aborted?`aborted`:`finished`,r={serial:t.serial,data:t.accumulated,extras:{headers:{...t.persistentHeaders,[h]:n}}};try{await this._writer.updateMessage(r)}catch(t){i.push({streamId:e,error:t})}}if(i.length>0){let e=i.map(e=>e.streamId).join(`, `);throw this._logger?.error(`DefaultEncoderCore._flushPending(); recovery failed`,{failedStreams:e}),new n.ErrorInfo(`unable to flush pending appends; recovery failed for stream(s): ${e}`,y.EncoderRecoveryFailed,500)}}async close(){if(!this._closed){this._logger?.trace(`DefaultEncoderCore.close();`),this._closed=!0;try{await this._flushPending()}finally{this._trackers.clear()}this._logger?.debug(`DefaultEncoderCore.close(); encoder closed`)}}_invokeOnMessage(e){try{this._onMessageHook(e)}catch(e){this._logger?.error(`DefaultEncoderCore._invokeOnMessage(); hook threw`,{error:e})}}_assertNotClosed(){if(this._closed)throw new n.ErrorInfo(`unable to write to encoder; encoder has been closed`,y.InvalidArgument,400)}_resolveClientId(e){return e?.clientId??this._defaultClientId}_buildHeaders(e,t){let n={...Te(this._defaultExtras?.headers,t?.extras?.headers),...e};return t?.messageId!==void 0&&(n[v]=t.messageId),n}_buildDiscreteMessage(e,t){let n=this._buildHeaders(e.headers??{},t);n[m]=`false`;let r=this._resolveClientId(t),i={name:e.name,data:e.data,extras:{headers:n,...e.ephemeral?{ephemeral:!0}:{}},...r?{clientId:r}:{}};return this._invokeOnMessage(i),i}_buildClosingHeaders(e,t,n){let r={...e.persistentHeaders},i=Te(this._defaultExtras?.headers,n?.extras?.headers);return Object.assign(r,i),Object.assign(r,t),r}},Mf=(e,t={})=>new jf(e,t),Nf=e=>{switch(e.type){case`tool-output-available`:{let t=S().str(`toolCallId`,e.toolCallId).bool(`dynamic`,e.dynamic).bool(`providerExecuted`,e.providerExecuted).bool(`preliminary`,e.preliminary).build();return{name:`tool-output-available`,data:{output:e.output},headers:t}}case`tool-output-error`:{let t=S().str(`toolCallId`,e.toolCallId).bool(`dynamic`,e.dynamic).bool(`providerExecuted`,e.providerExecuted).build();return{name:`tool-output-error`,data:{errorText:e.errorText},headers:t}}case`tool-approval-request`:return{name:`tool-approval-request`,data:``,headers:S().str(`toolCallId`,e.toolCallId).str(`approvalId`,e.approvalId).build()};case`tool-output-denied`:return{name:`tool-output-denied`,data:``,headers:S().str(`toolCallId`,e.toolCallId).build()};default:if(e.type.startsWith(`data-`)){let t=e,n=S().str(`id`,t.id).bool(`transient`,t.transient).build(),r=t.transient===!0;return{name:e.type,data:t.data,headers:n,ephemeral:r}}throw new n.ErrorInfo(`unable to write event; unsupported chunk type '${e.type}'`,y.InvalidArgument,400)}},Pf=class{constructor(e,t={}){this._aborted=!1,this._core=Mf(e,t),this._messageId=t.messageId}async appendEvent(e,t){switch(e.type){case`text-start`:{let n=S().str(`id`,e.id).json(`providerMetadata`,e.providerMetadata).build();await this._core.startStream(e.id,{name:`text`,data:``,headers:n},t);break}case`reasoning-start`:{let n=S().str(`id`,e.id).json(`providerMetadata`,e.providerMetadata).build();await this._core.startStream(e.id,{name:`reasoning`,data:``,headers:n},t);break}case`tool-input-start`:{let n=S().str(`toolCallId`,e.toolCallId).str(`toolName`,e.toolName).bool(`dynamic`,e.dynamic).str(`title`,e.title).bool(`providerExecuted`,e.providerExecuted).json(`providerMetadata`,e.providerMetadata).build();await this._core.startStream(e.toolCallId,{name:`tool-input`,data:``,headers:n},t);break}case`text-delta`:this._core.appendStream(e.id,e.delta);break;case`reasoning-delta`:this._core.appendStream(e.id,e.delta);break;case`tool-input-delta`:this._core.appendStream(e.toolCallId,e.inputTextDelta);break;case`text-end`:{let t=S().str(`id`,e.id).json(`providerMetadata`,e.providerMetadata).build();await this._core.closeStream(e.id,{name:`text`,data:``,headers:t});break}case`reasoning-end`:{let t=S().str(`id`,e.id).json(`providerMetadata`,e.providerMetadata).build();await this._core.closeStream(e.id,{name:`reasoning`,data:``,headers:t});break}case`tool-input-available`:try{let t=S().str(`toolCallId`,e.toolCallId).str(`toolName`,e.toolName).json(`providerMetadata`,e.providerMetadata).build();await this._core.closeStream(e.toolCallId,{name:`tool-input`,data:``,headers:t})}catch(t){if(!(t instanceof n.ErrorInfo&&me(t,y.InvalidArgument)))throw t;let r=S().str(`toolCallId`,e.toolCallId).str(`toolName`,e.toolName).bool(`dynamic`,e.dynamic).str(`title`,e.title).bool(`providerExecuted`,e.providerExecuted).json(`providerMetadata`,e.providerMetadata).build();await this._core.publishDiscrete({name:`tool-input`,data:e.input,headers:r})}break;case`start`:{let n=S().str(`messageId`,e.messageId??this._messageId).json(`messageMetadata`,e.messageMetadata).build();await this._core.publishDiscrete({name:`start`,data:``,headers:n},t);break}case`start-step`:await this._core.publishDiscrete({name:`start-step`,data:``},t);break;case`finish-step`:await this._core.publishDiscrete({name:`finish-step`,data:``},t);break;case`finish`:{let n=S().str(`finishReason`,e.finishReason).json(`messageMetadata`,e.messageMetadata).build();await this._core.publishDiscrete({name:`finish`,data:``,headers:n},t);break}case`error`:await this._core.publishDiscrete({name:`error`,data:e.errorText},t);break;case`abort`:this._aborted=!0,await this._core.abortAllStreams(t),await this._core.publishDiscrete({name:`abort`,data:e.reason??``,headers:{[h]:`aborted`}},t);break;case`tool-input-error`:{let t=S().str(`toolCallId`,e.toolCallId).str(`toolName`,e.toolName).bool(`dynamic`,e.dynamic).str(`title`,e.title).bool(`providerExecuted`,e.providerExecuted).json(`providerMetadata`,e.providerMetadata).build();await this._core.publishDiscrete({name:`tool-input-error`,data:{errorText:e.errorText,input:e.input},headers:t});break}case`tool-output-available`:case`tool-output-error`:case`tool-approval-request`:case`tool-output-denied`:await this._core.publishDiscrete(Nf(e),t);break;case`file`:{let n=S().str(`mediaType`,e.mediaType).json(`providerMetadata`,e.providerMetadata).build();await this._core.publishDiscrete({name:`file`,data:e.url,headers:n},t);break}case`source-url`:{let n=S().str(`sourceId`,e.sourceId).str(`title`,e.title).json(`providerMetadata`,e.providerMetadata).build();await this._core.publishDiscrete({name:`source-url`,data:e.url,headers:n},t);break}case`source-document`:{let n=S().str(`sourceId`,e.sourceId).str(`mediaType`,e.mediaType).str(`title`,e.title).str(`filename`,e.filename).json(`providerMetadata`,e.providerMetadata).build();await this._core.publishDiscrete({name:`source-document`,data:``,headers:n},t);break}case`message-metadata`:{let n=S().json(`messageMetadata`,e.messageMetadata).build();await this._core.publishDiscrete({name:`message-metadata`,data:``,headers:n},t);break}default:if(e.type.startsWith(`data-`)){let n=S().str(`id`,e.id).bool(`transient`,e.transient).build(),r=e.transient===!0;await this._core.publishDiscrete({name:e.type,data:e.data,headers:n,ephemeral:r},t)}break}}async writeEvent(e,t){return this._core.publishDiscrete(Nf(e),t)}async writeMessages(e,t){let n=e.flatMap(e=>Ff(e));return this._core.publishDiscreteBatch(n,t)}async abort(e){this._aborted||(this._aborted=!0,await this._core.abortAllStreams(),await this._core.publishDiscrete({name:`abort`,data:e??``,headers:{[h]:`aborted`}}))}async close(){await this._core.close()}},Ff=e=>{let t=e.id,n=[];for(let r of e.parts)switch(r.type){case`text`:n.push({name:`text`,data:r.text,headers:S().str(`messageId`,t).build()});break;case`file`:n.push({name:`file`,data:r.url,headers:S().str(`messageId`,t).str(`mediaType`,r.mediaType).build()});break;default:Af(r)&&n.push({name:r.type,data:r.data,headers:S().str(`messageId`,t).str(`id`,r.id).build()});break}return n.length===0&&n.push({name:`text`,data:``,headers:S().str(`messageId`,t).build()}),n},If={createEncoder:(e,t={})=>new Pf(e,t),createDecoder:Ht,createAccumulator:at,isTerminal:e=>e.type===`finish`||e.type===`error`||e.type===`abort`},Lf=e=>{let t,n=new Promise(e=>{t=e}),r=new TransformStream({flush:()=>{t()}});return e.pipeTo(r.writable).catch(()=>{t()}),{stream:r.readable,done:n}},Rf=e=>e.role===`assistant`&&e.parts.some(e=>e.type===`dynamic-tool`&&(e.state===`input-streaming`||e.state===`input-available`||e.state===`approval-requested`)),zf=(e,t)=>{let r=!1,i=new Set,a=e=>{r=e;for(let t of i)try{t(e)}catch{}};return{sendMessages:async r=>{let{messages:i,abortSignal:o,trigger:s,messageId:c}=r,l=e.view.flattenNodes(),u=i.at(-1),d=u?l.find(e=>e.message.id===u.id):void 0,f=s===`submit-message`&&u?.role===`assistant`&&!!d,p=s===`submit-message`&&!c&&u?.role===`user`?i.at(-2):void 0,m=p&&Rf(p)?l.find(e=>e.message.id===p.id):void 0,h,ee;if(s===`regenerate-message`||f)h=[],ee=i;else{if(i.length===0)throw new n.ErrorInfo(`unable to send messages; messages array is empty for submit-message trigger`,y.InvalidArgument,400);h=[i.at(-1)],ee=m?i.slice(0,-2):i.slice(0,-1)}let g,_;if(c&&!f){g=c;let e=l.find(e=>e.message.id===c);e&&(g=e.msgId,_=e.parentId)}else f?_=d.msgId:m&&(g=m.msgId,_=m.parentId);let v,te;if(t?.prepareSendMessagesRequest){let e=t.prepareSendMessagesRequest({chatId:r.chatId,trigger:s,messageId:c,history:ee,messages:h,forkOf:g,parent:_});v=e.body??{},te=e.headers}else{let e=new Set(ee.map(e=>e.id));v={history:l.filter(t=>e.has(t.message.id)),chatId:r.chatId,trigger:s,...c!==void 0&&{messageId:c},...g!==void 0&&{forkOf:g},..._!==void 0&&{parent:_}},te=void 0}let ne={body:v,headers:te};g!==void 0&&(ne.forkOf=g),_!==void 0&&(ne.parent=_);let re=await e.view.send(h,ne);o&&o.addEventListener(`abort`,()=>void e.cancel({all:!0}),{once:!0});let{stream:ie,done:ae}=Lf(re.stream);return a(!0),ae.then(()=>{a(!1)}),ie},reconnectToStream:()=>Promise.resolve(null),close:async t=>e.close(t),get streaming(){return r},onStreamingChange:e=>(i.add(e),()=>{i.delete(e)})}},Bf=(0,t.createContext)({nearest:void 0,providers:{}}),{TransportProvider:Vf,useAblyMessages:Hf,useActiveTurns:Uf,useClientTransport:Wf,useCreateView:Gf,useTree:Kf,useView:qf}=et(),Jf=({channelName:e,chatOptions:n,children:r})=>{let{transport:a,transportError:o}=Wf(),{providers:s}=(0,t.useContext)(Bf),c=(0,t.useMemo)(()=>zf(a,n),[a,n]),l=(0,t.useMemo)(()=>{let t={transport:a,transportError:o,chatTransport:c};return{nearest:t,providers:{...s,[e]:t}}},[e,s,c,a,o]);return(0,i.jsx)(Bf.Provider,{value:l,children:r})},Yf=({chatOptions:e,children:t,...n})=>(0,i.jsx)(Vf,{...n,api:n.api??`/api/chat`,codec:If,children:(0,i.jsx)(Jf,{channelName:n.channelName,chatOptions:e,children:t})}),Xf={get tree(){throw new n.ErrorInfo(`unable to access tree; hook is skipped`,y.InvalidArgument,400)},get view(){throw new n.ErrorInfo(`unable to access view; hook is skipped`,y.InvalidArgument,400)},createView:()=>{throw new n.ErrorInfo(`unable to create view; hook is skipped`,y.InvalidArgument,400)},cancel:()=>{throw new n.ErrorInfo(`unable to cancel; hook is skipped`,y.InvalidArgument,400)},stageEvents:()=>{throw new n.ErrorInfo(`unable to stage events; hook is skipped`,y.InvalidArgument,400)},stageMessage:()=>{throw new n.ErrorInfo(`unable to stage message; hook is skipped`,y.InvalidArgument,400)},waitForTurn:()=>{throw new n.ErrorInfo(`unable to wait for turn; hook is skipped`,y.InvalidArgument,400)},on:()=>{throw new n.ErrorInfo(`unable to subscribe; hook is skipped`,y.InvalidArgument,400)},close:()=>{throw new n.ErrorInfo(`unable to close; hook is skipped`,y.InvalidArgument,400)}},Zf={sendMessages:()=>{throw new n.ErrorInfo(`unable to send messages; hook is skipped`,y.InvalidArgument,400)},reconnectToStream:()=>{throw new n.ErrorInfo(`unable to reconnect to stream; hook is skipped`,y.InvalidArgument,400)},close:()=>{throw new n.ErrorInfo(`unable to close; hook is skipped`,y.InvalidArgument,400)},get streaming(){throw new n.ErrorInfo(`unable to access streaming; hook is skipped`,y.InvalidArgument,400)},onStreamingChange:()=>{throw new n.ErrorInfo(`unable to subscribe to streaming changes; hook is skipped`,y.InvalidArgument,400)}},Qf=({channelName:e,skip:r}={})=>{let{nearest:i,providers:a}=(0,t.useContext)(Bf);if(r)return{transport:Xf,chatTransport:Zf};if(e!==void 0){let t=a[e];return t?{transport:t.transport,chatTransport:t.chatTransport,transportError:t.transportError}:{transport:Xf,chatTransport:Zf,transportError:new n.ErrorInfo(`unable to use client transport; no TransportProvider found for channelName "${e}"`,y.BadRequest,400),chatTransportError:new n.ErrorInfo(`unable to use chat transport; no ChatTransportProvider found for channelName "${e}"`,y.BadRequest,400)}}return i?{transport:i.transport,chatTransport:i.chatTransport,transportError:i.transportError}:{transport:Xf,chatTransport:Zf,transportError:new n.ErrorInfo(`unable to use transport; no TransportProvider found in the tree`,y.BadRequest,400),chatTransportError:new n.ErrorInfo(`unable to use chat transport; no ChatTransportProvider found in the tree`,y.BadRequest,400)}},$f=({setMessages:e,channelName:n,skip:r})=>{let{transport:i,chatTransport:a,chatTransportError:o}=Qf({channelName:n,skip:r}),s=!r&&!o,c=s?i.view:void 0,l=s?a:void 0,[u,d]=(0,t.useState)(!1);(0,t.useEffect)(()=>{if(!l){d(!1);return}return d(l.streaming),l.onStreamingChange(d)},[l]),(0,t.useEffect)(()=>{if(!c||u)return;let t=()=>{e(()=>c.flattenNodes().map(e=>e.message))};return t(),c.on(`update`,t)},[c,e,u])},ep=(e,n)=>(0,t.useCallback)(t=>(tp(e,t),n(t)),[e,n]),tp=(e,t)=>{let n=e.view.flattenNodes();for(let r of n){let n=r.message.parts.findIndex(e=>e.type===`dynamic-tool`&&e.approval?.id===t.id);if(n===-1)continue;let i=r.message.parts[n],a={type:`dynamic-tool`,toolName:i.toolName,toolCallId:i.toolCallId,state:`approval-responded`,input:i.input,approval:{id:t.id,approved:t.approved,reason:t.reason}},o=[...r.message.parts];o[n]=a,e.stageMessage(r.msgId,{...r.message,parts:o});return}};e.ChatTransportProvider=Yf,e.TransportProvider=Vf,e.useAblyMessages=Hf,e.useActiveTurns=Uf,e.useChatTransport=Qf,e.useClientTransport=Wf,e.useCreateView=Gf,e.useMessageSync=$f,e.useStagedAddToolApprovalResponse=ep,e.useTree=Kf,e.useView=qf});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`react`),require(`ably`),require(`ably/react`),require(`react/jsx-runtime`)):typeof define==`function`&&define.amd?define([`exports`,`react`,`ably`,`ably/react`,`react/jsx-runtime`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.AblyAiTransportVercelReact={},e.React,e.Ably,e.AblyReact,e.ReactJsxRuntime))})(this,function(e,t,n,r,i){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var a=Object.create,o=Object.defineProperty,s=Object.getOwnPropertyDescriptor,c=Object.getOwnPropertyNames,l=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty,d=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=c(t),a=0,l=i.length,d;a<l;a++)d=i[a],!u.call(e,d)&&d!==n&&o(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(r=s(t,d))||r.enumerable});return e};n=((e,t,n)=>(n=e==null?{}:a(l(e)),d(t||!e||!e.__esModule?o(n,`default`,{value:e,enumerable:!0}):n,e)))(n,1);var f=[`PUBLISH`,`SUBSCRIBE`,`PRESENCE`,`PRESENCE_SUBSCRIBE`,`ANNOTATION_PUBLISH`],p=[`PUBLISH`,`SUBSCRIBE`,`PRESENCE`,`PRESENCE_SUBSCRIBE`,`OBJECT_PUBLISH`,`OBJECT_SUBSCRIBE`,`ANNOTATION_PUBLISH`,`ANNOTATION_SUBSCRIBE`],m=e=>{if(e===void 0||e.length===0)return;let t=new Set([...f,...e]),n=p.filter(e=>t.has(e)),r=[...t].filter(e=>!p.includes(e)).toSorted();return[...n,...r]},h=`0.3.0`,g=`ai-transport-js`,_=(e,t)=>{let n=e;return n.options.agents={...n.options.agents,...t},{params:{agent:y(t)}}},v=e=>{let t=e?.adapterTag,n={[g]:h};return t&&(n[t]=h),n},y=e=>Object.entries(e).map(([e,t])=>`${e}/${t}`).join(` `),b=e=>y(v(e)),ee=(e,t)=>_(e,v(t)),x=`stream`,S=`status`,te=`stream-id`,ne=`discrete`,C=`run-id`,w=`invocation-id`,T=`event-id`,E=`codec-message-id`,re=`run-client-id`,ie=`input-client-id`,ae=`role`,D=`parent`,oe=`fork-of`,se=`msg-regenerate`,ce=`input-codec-message-id`,le=`error-code`,ue=`ai-cancel`,de=`ai-output`,fe=`ai-input`,O=function(e){return e[e.BadRequest=4e4]=`BadRequest`,e[e.InvalidArgument=40003]=`InvalidArgument`,e[e.InsufficientCapability=40160]=`InsufficientCapability`,e[e.EncoderRecoveryFailed=104e3]=`EncoderRecoveryFailed`,e[e.SessionSubscriptionError=104001]=`SessionSubscriptionError`,e[e.CancelListenerError=104002]=`CancelListenerError`,e[e.RunLifecycleError=104003]=`RunLifecycleError`,e[e.SessionClosed=104004]=`SessionClosed`,e[e.SessionSendFailed=104005]=`SessionSendFailed`,e[e.ChannelContinuityLost=104006]=`ChannelContinuityLost`,e[e.ChannelNotReady=104007]=`ChannelNotReady`,e[e.StreamError=104008]=`StreamError`,e[e.InputEventNotFound=104010]=`InputEventNotFound`,e[e.HistoryFetchFailed=104011]=`HistoryFetchFailed`,e}({}),pe=(e,t)=>e.code===t,me=e=>({logAction:(t,n,r)=>{e.error(n,{detail:r})},shouldLog:()=>!0}),he=n.Realtime.EventEmitter,ge=class extends he{constructor(e){super(me(e))}},_e=function(e){return e.Trace=`trace`,e.Debug=`debug`,e.Info=`info`,e.Warn=`warn`,e.Error=`error`,e.Silent=`silent`,e}({}),ve=(e,t,n)=>{let r=n?`, context: ${JSON.stringify(n)}`:``,i=`[${new Date().toISOString()}] ${t.valueOf().toUpperCase()} ably-ai-transport: ${e}${r}`;switch(t){case`trace`:case`debug`:console.log(i);break;case`info`:console.info(i);break;case`warn`:console.warn(i);break;case`error`:console.error(i);break;case`silent`:break}},ye=e=>new xe(e.logHandler??ve,e.logLevel),be=new Map([[`trace`,0],[`debug`,1],[`info`,2],[`warn`,3],[`error`,4],[`silent`,5]]),xe=class e{constructor(e,t,r){this._handler=e,this._context=r;let i=be.get(t);if(i===void 0)throw new n.ErrorInfo(`unable to create logger; invalid log level: ${t}`,O.InvalidArgument,400);this._levelNumber=i}trace(e,t){this._write(e,`trace`,0,t)}debug(e,t){this._write(e,`debug`,1,t)}info(e,t){this._write(e,`info`,2,t)}warn(e,t){this._write(e,`warn`,3,t)}error(e,t){this._write(e,`error`,4,t)}withContext(t){let n=[...be.entries()].find(([,e])=>e===this._levelNumber)?.[0]??`error`;return new e(this._handler,n,this._mergeContext(t))}_write(e,t,n,r){n>=this._levelNumber&&this._handler(e,t,this._mergeContext(r))}_mergeContext(e){return this._context?e?{...this._context,...e}:this._context:e??void 0}},k=e=>e instanceof Error?e.message:String(e),A=e=>e instanceof n.ErrorInfo?e:void 0,Se=(e,t)=>{let n=e.extras;if(!n||typeof n!=`object`)return{};let r=n.ai;if(!r||typeof r!=`object`)return{};let i=r[t];return!i||typeof i!=`object`?{}:i},j=e=>Se(e,`transport`),Ce=e=>Se(e,`codec`),we=e=>{if(e!==void 0)try{return JSON.parse(e)}catch{return}},Te=e=>{if(e)try{return JSON.parse(e)}catch{return e}},Ee=(e,t)=>({...e,...t}),De=e=>{if(e!==void 0)return e===`true`},M=e=>{let t={};for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&e[n]!==void 0&&(t[n]=e[n]);return t},Oe=e=>{let t={[ae]:e.role,[E]:e.codecMessageId};return e.runId!==void 0&&(t[C]=e.runId),e.runClientId!==void 0&&(t[re]=e.runClientId),e.parent&&(t[D]=e.parent),e.forkOf&&(t[oe]=e.forkOf),e.regenerates&&(t[se]=e.regenerates),e.invocationId&&(t[w]=e.invocationId),e.inputClientId!==void 0&&(t[ie]=e.inputClientId),e.inputCodecMessageId!==void 0&&(t[ce]=e.inputCodecMessageId),e.inputEventId&&(t[T]=e.inputEventId),t},ke=e=>e===`ai-run-start`||e===`ai-run-suspend`||e===`ai-run-resume`||e===`ai-run-end`,Ae=e=>{let t=e[le],r=t===void 0?NaN:Number(t),i=Number.isFinite(r)?r:O.SessionSubscriptionError,a=e[`error-message`]??`agent reported an error`,o=i>=1e4&&i<6e4?Math.floor(i/100):500;return new n.ErrorInfo(a,i,o)},je=(e,t,n,r)=>{let i=t[C];if(!i)return;let a=t[`run-client-id`]??``,o=r===void 0?{}:{timestamp:r};if(e===`ai-run-start`){let e=t[D],r=t[oe],s=t[se];return{type:`start`,runId:i,clientId:a,serial:n,invocationId:t[`invocation-id`]??``,...o,...e!==void 0&&{parent:e},...r!==void 0&&{forkOf:r},...s!==void 0&&{regenerates:s}}}if(e===`ai-run-suspend`)return{type:`suspend`,runId:i,clientId:a,serial:n,invocationId:t[`invocation-id`]??``,...o};if(e===`ai-run-resume`)return{type:`resume`,runId:i,clientId:a,serial:n,invocationId:t[`invocation-id`]??``,...o};if(e===`ai-run-end`){let e=t[`run-reason`]??`complete`,r=t[`invocation-id`]??``;return e===`error`?{type:`end`,runId:i,clientId:a,serial:n,invocationId:r,reason:e,...o,error:Ae(t)}:{type:`end`,runId:i,clientId:a,serial:n,invocationId:r,reason:e,...o}}},Me=(e,t,n)=>{let r=j(n),i=n.serial,a=n.timestamp;if(ke(n.name)){let t=je(n.name,r,i,a);return t&&e.applyRunLifecycle(t),t}let{inputs:o,outputs:s}=t.decode(n);(o.length>0||s.length>0||r[`run-id`])&&e.applyMessage({inputs:o,outputs:s},r,i,a,n.version.serial)},Ne=(e,t)=>({apply:n=>Me(e,t,n)}),Pe=class e{constructor(e){this.inputEventId=e.inputEventId,this.sessionName=e.sessionName}static fromJSON(t){return new e(t)}toJSON(){return{inputEventId:this.inputEventId,sessionName:this.sessionName}}},Fe=async(e,t)=>{if(!e)throw new n.ErrorInfo(`unable to ${t}; connect() must be called before ${t}()`,O.InvalidArgument,400);return e},Ie=async(e,t,n,r)=>{if(t!==void 0)try{await e.detach()}catch(e){n?.debug(`${r}.close(); channel detach failed`,{error:e})}},Le=e=>{let{current:t,resumed:n}=e;return t===`failed`||t===`suspended`||t===`detached`||t===`attached`&&!n},Re=(e,t)=>{let{current:r}=e;return new n.ErrorInfo(`unable to ${t}; channel continuity lost (${r}${r===`attached`?`, resumed: false`:``})`,O.ChannelContinuityLost,500,e.reason)},ze=e=>[...e.inputs.map(e=>({direction:`input`,event:e})),...e.outputs.map(e=>({direction:`output`,event:e}))],Be=class{constructor(){this._entries=[],this._swept=!1}get swept(){return this._swept}record(e,t,n,r,i){let a=this._recordEntry(e,t,this._swept?[]:n,r,i);return a===void 0?`dropped`:this._swept||a===this._entries.length-1?`incremental`:`refold`}replay(e){for(let t of this._entries)for(let n of t.events)e(n,t.serial,t.messageId)}sweep(){this._swept=!0;for(let e of this._entries)e.events.length=0}_recordEntry(e,t,n,r,i){for(let a=this._entries.length-1;a>=0;a--){let o=this._entries[a];if(!o)break;if(o.serial===e)return r!==void 0&&(r<=o.decodedThrough||!i)?void 0:(o.events.push(...n),r!==void 0&&(o.decodedThrough=r),a);if(o.serial<e)return this._entries.splice(a+1,0,{serial:e,messageId:t,events:[...n],decodedThrough:r??e}),a+1}return this._entries.unshift({serial:e,messageId:t,events:[...n],decodedThrough:r??e}),0}},N=e=>e.kind===`run`?e.runId:e.codecMessageId,Ve=e=>e.kind===`run`?e.startSerial:e.serial,He=(e,t,n)=>{let r=e.get(t);r||(r=new Set,e.set(t,r)),r.add(n)},Ue=(e,t,n)=>{let r=e.get(t);r&&(r.delete(n),r.size===0&&e.delete(t))},We=class{constructor(e,t){this._nodeIndex=new Map,this._codecMessageIdToNodeKey=new Map,this._sortedNodes=[],this._parentIndex=new Map,this._replyRunsByInput=new Map,this._seqCounter=0,this._structuralVersion=0,this._siblingCache=new Map,this._siblingCacheVersion=-1,this._eventIdIndex=new Map,this._clock=0,this._sweepQueue=[],this._codec=e,this._logger=t,this._emitter=new ge(t)}_compareNodes(e,t){let n=Ve(e.node),r=Ve(t.node);return n===void 0&&r===void 0?e.insertSeq-t.insertSeq:n===void 0?1:r===void 0||n<r?-1:n>r?1:e.insertSeq-t.insertSeq}_insertSortedNode(e){if(Ve(e.node)===void 0){this._sortedNodes.push(e);return}let t=0,n=this._sortedNodes.length;for(;t<n;){let r=t+n>>>1,i=this._sortedNodes[r];if(!i)break;this._compareNodes(i,e)<=0?t=r+1:n=r}this._sortedNodes.splice(t,0,e)}_removeSortedNode(e){let t=this._sortedNodes.indexOf(e);t!==-1&&this._sortedNodes.splice(t,1)}_insertNode(e,t,n){this._nodeIndex.set(e,t),this._addToParentIndex(n,e),this._insertSortedNode(t),this._structuralVersion++}_promoteSerial(e){this._removeSortedNode(e),this._insertSortedNode(e),this._structuralVersion++}_foldInto(e,t,n,r){for(let i of t)try{e.node.projection=this._codec.fold(e.node.projection,i,{serial:n??``,messageId:r})}catch(t){this._logger.error(`Tree._foldInto(); fold threw`,{key:N(e.node),messageId:r,err:t})}}_recordAndFold(e,t,n,r,i,a){if(n===void 0||t.length===0){n===void 0&&t.length>0&&(e.optimistic=!0),this._foldInto(e,t,n,r);return}let o=e.log.record(n,r,t,i,a);if(o===`dropped`){this._logger.debug(`Tree._recordAndFold(); version guard dropped re-delivered wire`,{key:N(e.node),serial:n,version:i,swept:e.log.swept});return}if(e.optimistic&&!e.log.swept){e.optimistic=!1,this._refold(e);return}if(o===`refold`){this._refold(e);return}e.log.swept&&this._logger.warn(`Tree._recordAndFold(); late wire after log retention window; folding in arrival order`,{key:N(e.node),serial:n}),this._foldInto(e,t,n,r)}_refold(e){let t=this._codec.init();e.log.replay((n,r,i)=>{try{t=this._codec.fold(t,n,{serial:r,messageId:i})}catch(t){this._logger.error(`Tree._refold(); fold threw`,{key:N(e.node),messageId:i,err:t})}}),e.node.projection=t}_recordActivity(e,t){t!==void 0&&(t>e.lastActivityTs&&(e.lastActivityTs=t),t>this._clock&&(this._clock=t,this._drainSweepQueue()))}_maybeQueueSweep(e){let t=e.node;t.kind===`run`&&(e.log.swept||e.sweepQueued||e.runStartSeen&&(t.state.status===`active`||t.state.status===`suspended`||(e.sweepQueued=!0,this._sweepQueue.push(t.runId))))}_drainSweepQueue(){for(;this._sweepQueue.length>0;){let e=this._sweepQueue[0],t=e===void 0?void 0:this._nodeIndex.get(e);if(!t||t.log.swept){this._sweepQueue.shift();continue}if(t.lastActivityTs+12e4>=this._clock)return;this._sweepQueue.shift(),t.sweepQueued=!1,t.log.sweep(),this._logger.debug(`Tree._drainSweepQueue(); dropped event-log payloads, kept replay keys`,{key:e,lastActivityTs:t.lastActivityTs})}}_addToParentIndex(e,t){He(this._parentIndex,e,t)}_removeFromParentIndex(e,t){Ue(this._parentIndex,e,t)}_parentKeyOf(e){let t=e.parentCodecMessageId;return t===void 0?void 0:this._codecMessageIdToNodeKey.get(t)}_inputGroupRoot(e){let t=e,n=new Set([N(t)]);for(;t.forkOf!==void 0&&!n.has(t.forkOf);){let e=this._nodeIndex.get(t.forkOf);if(e?.node.kind!==`input`||e.node.parentCodecMessageId!==t.parentCodecMessageId)break;t=e.node,n.add(N(t))}return t}_getSiblingGroup(e){this._siblingCacheVersion!==this._structuralVersion&&(this._siblingCache.clear(),this._siblingCacheVersion=this._structuralVersion);let t=this._siblingCache.get(e);if(t)return t;let n=this._nodeIndex.get(e);if(!n)return[];let r=n.node;r.kind===`input`&&(r=this._inputGroupRoot(r));let i=r.parentCodecMessageId,a=[],o=this._parentIndex.get(i);if(o)for(let e of o){let t=this._nodeIndex.get(e);t&&this._isSiblingOf(t.node,r)&&a.push(t)}a.sort((e,t)=>this._compareNodes(e,t));for(let e of a)this._siblingCache.set(N(e.node),a);return this._siblingCache.set(e,a),a}_isSiblingOf(e,t){if(e.kind!==t.kind||e.parentCodecMessageId!==t.parentCodecMessageId)return!1;if(e.kind===`run`)return!0;let n=N(t);if(N(e)===n)return!0;let r=e,i=new Set([N(r)]);for(;r.kind===`input`&&r.forkOf!==void 0;){if(r.forkOf===n)return!0;if(i.has(r.forkOf))break;let e=this._nodeIndex.get(r.forkOf);if(!e)break;r=e.node,i.add(N(r))}return!1}getGroupRoot(e){let t=this._nodeIndex.get(e);if(!t)return e;if(t.node.kind===`input`)return N(this._inputGroupRoot(t.node));let n=this._getSiblingGroup(e)[0]?.node;return n?N(n):e}visibleNodes(e=new Map){this._logger.trace(`DefaultTree.visibleNodes();`);let t=[],n=new Set,r=new Map;for(let i of this._sortedNodes){let a=i.node,o=N(a),s=this._parentKeyOf(a);if(s!==void 0&&!n.has(s))continue;let c=this._getSiblingGroup(o);if(c.length>1){let t=this.getGroupRoot(o),n=r.get(t);if(n===void 0){let i=e.get(t);if(i!==void 0&&c.some(e=>N(e.node)===i))n=i;else{let e=c.at(-1);if(!e)break;n=N(e.node)}r.set(t,n)}if(o!==n)continue}n.add(o),t.push(a)}return t}getRunNode(e){this._logger.trace(`DefaultTree.getRunNode();`,{runId:e});let t=this._nodeIndex.get(e)?.node;return t?.kind===`run`?t:void 0}getNode(e){return this._logger.trace(`DefaultTree.getNode();`,{key:e}),this._nodeIndex.get(e)?.node}getNodeByCodecMessageId(e){this._logger.trace(`DefaultTree.getNodeByCodecMessageId();`,{codecMessageId:e});let t=this._codecMessageIdToNodeKey.get(e);return t===void 0?void 0:this._nodeIndex.get(t)?.node}getReplyRuns(e){let t=this._replyRunsByInput.get(e);if(!t)return[];let n=[];for(let e of t){let t=this._nodeIndex.get(e)?.node;t?.kind===`run`&&n.push(t)}return n}getSiblingNodes(e){return this._logger.trace(`DefaultTree.getSiblingNodes();`,{key:e}),this._getSiblingGroup(e).map(e=>e.node)}applyMessage(e,t,n,r,i){let a=t[C],o=t[E],s=a===void 0&&o!==void 0&&t.role===`user`&&e.inputs.length>0?o:void 0;if(a===void 0&&s===void 0){this._logger.warn(`Tree.applyMessage(); message has no run-id and is not a user input; skipping`);return}let c=ze(e),l=s??a;if(c.length===0&&l!==void 0&&!this._nodeIndex.has(l))return;let u=this._structuralVersion;s===void 0?a!==void 0&&this._applyRunMessage(a,e,t,n,r,i):this._applyInputMessage(s,t,n,r,i,c),this._structuralVersion!==u&&this._emitter.emit(`update`)}_applyInputMessage(e,t,n,r,i,a){let o=this._nodeIndex.get(e);o?o.node.kind===`input`&&n&&!o.node.serial&&(this._logger.debug(`Tree.applyMessage(); promoting input serial`,{codecMessageId:e,serial:n}),o.node.serial=n,this._promoteSerial(o)):(o=this._createInputNodeFromHeaders(e,t,n),this._insertNode(e,o,o.node.parentCodecMessageId),this._codecMessageIdToNodeKey.set(e,e),this._logger.debug(`Tree.applyMessage(); created input node`,{codecMessageId:e})),this._recordActivity(o,r),this._recordAndFold(o,a,n,e,i,t[x]===`true`),this._emitter.emit(`output`,{runId:void 0,inputCodecMessageId:e,codecMessageId:e,serial:n,events:[]})}_applyRunMessage(e,t,n,r,i,a){let o=n[E],s=n[ce],c=ze(t),l=t.outputs,u=this._nodeIndex.get(e);if(!u&&o!==void 0){let e=this._codecMessageIdToNodeKey.get(o),t=e===void 0?void 0:this._nodeIndex.get(e);t?.node.kind===`run`&&t.node.startSerial===void 0&&(u=t)}u?r&&u.node.kind===`run`&&!u.node.startSerial&&(this._logger.debug(`Tree.applyMessage(); promoting startSerial`,{runId:e,serial:r}),u.node.startSerial=r,this._promoteSerial(u)):(u=this._createRunFromHeaders(e,n,r),this._insertNode(e,u,u.node.parentCodecMessageId),this._indexReplyRun(u.node,e),this._logger.debug(`Tree.applyMessage(); created new Run`,{runId:e}));let d=N(u.node);o&&this._codecMessageIdToNodeKey.set(o,d),this._recordActivity(u,i),this._recordAndFold(u,c,r,o,a,n[x]===`true`),this._emitter.emit(`output`,{runId:d,inputCodecMessageId:s,codecMessageId:o,serial:r,events:l})}_indexReplyRun(e,t){e.parentCodecMessageId!==void 0&&He(this._replyRunsByInput,e.parentCodecMessageId,t)}applyRunLifecycle(e){this._logger.trace(`DefaultTree.applyRunLifecycle();`,{type:e.type,runId:e.runId});let t=this._structuralVersion;switch(e.type){case`start`:this._applyRunStart(e);break;case`suspend`:this._applyRunSuspend(e);break;case`resume`:this._applyRunResume(e);break;case`end`:this._applyRunEnd(e);break}this._emitter.emit(`run`,e),this._structuralVersion!==t&&this._emitter.emit(`update`)}_applyRunStart(e){let t=this._nodeIndex.get(e.runId);if(t?.node.kind===`run`){let n=t.node;if(n.state.status===`suspended`&&(n.state={status:`active`}),e.serial&&!n.startSerial&&(n.startSerial=e.serial,this._promoteSerial(t)),n.parentCodecMessageId===void 0&&e.parent!==void 0&&(n.parentCodecMessageId=e.parent,this._removeFromParentIndex(void 0,e.runId),this._addToParentIndex(n.parentCodecMessageId,e.runId),this._indexReplyRun(n,e.runId),this._structuralVersion++),n.forkOf===void 0&&e.forkOf!==void 0){let t=this._codecMessageIdToNodeKey.get(e.forkOf);t!==void 0&&t!==e.runId&&(n.forkOf=t,this._structuralVersion++)}n.regeneratesCodecMessageId===void 0&&e.regenerates!==void 0&&(n.regeneratesCodecMessageId=e.regenerates,this._structuralVersion++),n.invocationId===``&&e.invocationId!==``&&(n.invocationId=e.invocationId),t.runStartSeen=!0,this._recordActivity(t,e.timestamp),this._maybeQueueSweep(t)}else if(!t){let t=this._createRunFromLifecycle(e);this._insertNode(e.runId,t,t.node.parentCodecMessageId),this._indexReplyRun(t.node,e.runId),this._recordActivity(t,e.timestamp)}}_applyRunSuspend(e){let t=this._nodeIndex.get(e.runId);t?.node.kind===`run`&&(t.node.state={status:`suspended`},t.node.endSerial=e.serial,this._recordActivity(t,e.timestamp))}_applyRunResume(e){let t=this._nodeIndex.get(e.runId);t?.node.kind===`run`&&t.node.state.status===`suspended`&&(t.node.state={status:`active`},this._recordActivity(t,e.timestamp))}_applyRunEnd(e){let t=this._nodeIndex.get(e.runId);t?.node.kind===`run`&&(t.node.state=e.reason===`error`?{status:`error`,error:e.error}:{status:e.reason},t.node.endSerial=e.serial,this._recordActivity(t,e.timestamp),this._maybeQueueSweep(t))}delete(e){let t=this._nodeIndex.get(e);t&&(this._logger.debug(`Tree.delete();`,{key:e}),this._removeFromParentIndex(t.node.parentCodecMessageId,e),this._removeSortedNode(t),this._nodeIndex.delete(e),t.node.kind===`run`&&t.node.parentCodecMessageId!==void 0&&Ue(this._replyRunsByInput,t.node.parentCodecMessageId,e),this._structuralVersion++,this._emitter.emit(`update`))}_createRunFromHeaders(e,t,n){let r=t[oe];return this._buildRunNode({runId:e,parentCodecMessageId:t[D],forkOf:r?this._codecMessageIdToNodeKey.get(r):void 0,regeneratesCodecMessageId:t[se],clientId:t[`run-client-id`]??``,invocationId:t[`invocation-id`]??``,startSerial:n,runStartSeen:!1})}_wrapNode(e,t=!1){return{node:e,insertSeq:this._seqCounter++,log:new Be,lastActivityTs:0,runStartSeen:t,sweepQueued:!1,optimistic:!1}}_buildRunNode(e){let t={kind:`run`,runId:e.runId,parentCodecMessageId:e.parentCodecMessageId,forkOf:e.forkOf,regeneratesCodecMessageId:e.regeneratesCodecMessageId,clientId:e.clientId,invocationId:e.invocationId,state:{status:`active`},projection:this._codec.init(),startSerial:e.startSerial,endSerial:void 0};return this._wrapNode(t,e.runStartSeen)}_createInputNodeFromHeaders(e,t,n){let r=t[oe],i={kind:`input`,codecMessageId:e,parentCodecMessageId:t[D],forkOf:r,projection:this._codec.init(),serial:n};return this._wrapNode(i)}_createRunFromLifecycle(e){let t=e.forkOf;return this._buildRunNode({runId:e.runId,parentCodecMessageId:e.parent,forkOf:t?this._codecMessageIdToNodeKey.get(t):void 0,regeneratesCodecMessageId:e.regenerates,clientId:e.clientId,invocationId:e.invocationId,startSerial:e.serial,runStartSeen:!0})}on(e,t){let n=t;return this._emitter.on(e,n),()=>{this._emitter.off(e,n)}}emitAblyMessage(e){this._logger.trace(`DefaultTree.emitAblyMessage();`);let t=j(e)[T];t!==void 0&&!this._eventIdIndex.has(t)&&this._eventIdIndex.set(t,e),this._emitter.emit(`ably-message`,e)}findAblyMessageByEventId(e){return this._eventIdIndex.get(e)}},Ge=(e,t)=>new We(e,t),Ke=(e,t)=>new Promise((r,i)=>{if(t?.aborted){i(new n.ErrorInfo(`unable to wait; signal aborted`,O.InvalidArgument,400));return}let a=setTimeout(()=>{t?.removeEventListener(`abort`,o),r()},e);typeof a==`object`&&a.unref();let o=()=>{clearTimeout(a),i(new n.ErrorInfo(`unable to wait; signal aborted`,O.InvalidArgument,400))};t?.addEventListener(`abort`,o,{once:!0})}),qe=async(e,t,r,i,a)=>{let o;for(let s=0;s<=t;s++){if(i?.aborted)throw new n.ErrorInfo(`unable to fetch history page; signal aborted`,O.InvalidArgument,400,A(o));try{return await e()}catch(e){if(o=e,s===t)break;let n=r*2**s;a?.debug(`loadHistoryPages.fetchPageWithRetry(); page fetch failed, retrying`,{attempt:s+1,maxRetries:t,backoff:n}),await Ke(n,i)}}throw new n.ErrorInfo(`unable to fetch history page; ${k(o)}`,O.HistoryFetchFailed,500,A(o))},Je=async(e,t)=>{let{pageLimit:r,untilAttach:i=!0,signal:a,maxRetries:o=3,retryBackoffMs:s=100,logger:c}=t;if(a?.aborted)throw new n.ErrorInfo(`unable to load history; signal aborted`,O.InvalidArgument,400);await e.attach();let l={limit:r,untilAttach:i},u=await qe(()=>e.history(l),o,s,a,c),d=!1;return{hasNext:()=>u===void 0||a?.aborted?!1:d?u.hasNext():!0,next:async()=>{if(u===void 0)return;if(a?.aborted)throw new n.ErrorInfo(`unable to load history; signal aborted`,O.InvalidArgument,400);if(!d)return d=!0,u.items;if(!u.hasNext()){u=void 0;return}let e=await qe(async()=>await u?.next()??void 0,o,s,a,c);if(!e){u=void 0;return}return u=e,e.items}}},Ye=(e,t)=>{for(let n of t){let t=j(n),r=t[E];if(!r)continue;let i=n.action,a=i===`message.create`&&`discrete`in t,o=t.stream===`true`&&(i===`message.create`||i===`message.update`||i===`message.append`),s=t[S],c=s===`complete`||s===`cancelled`;(a||o)&&e.startedCodecMessageIds.add(r),(a||c)&&e.terminatedCodecMessageIds.add(r),e.startedCodecMessageIds.has(r)&&e.terminatedCodecMessageIds.has(r)&&e.completedCodecMessageIds.add(r)}},Xe=async(e,t)=>{let n=e.returnedCount+t;for(;e.completedCodecMessageIds.size<n&&e.cursor.hasNext();){e.logger.debug(`loadHistory.fetchUntilLimit(); pulling next page`,{collected:e.rawMessages.length,completed:e.completedCodecMessageIds.size});let t=await e.cursor.next();if(!t)break;e.rawMessages.push(...t),Ye(e,t)}},Ze=(e,t)=>{let n=e.completedCodecMessageIds.size,r=Math.min(t,Math.max(0,n-e.returnedCount));e.returnedCount+=r;let i=n>e.returnedCount,a=e.cursor.hasNext(),o=e.rawMessages.length-e.returnedRawCount>0?e.rawMessages.slice(e.returnedRawCount).toReversed():[];return e.returnedRawCount=e.rawMessages.length,{rawMessages:o,hasNext:()=>i||a,next:async()=>{if(i)return Ze(e,t);if(a)return await Xe(e,t),Ze(e,t)}}},Qe=async(e,t,n)=>{let r=t?.limit??100;n.trace(`loadHistory();`,{limit:r});let i={cursor:await Je(e,{pageLimit:r*10,untilAttach:!0,logger:n}),rawMessages:[],returnedCount:0,returnedRawCount:0,startedCodecMessageIds:new Set,terminatedCodecMessageIds:new Set,completedCodecMessageIds:new Set,logger:n};return await Xe(i,r),Ze(i,r)},$e=e=>Array.isArray(e)?e:[e],et=e=>({runId:e.runId,clientId:e.clientId,invocationId:e.invocationId,...e.state}),tt=class{constructor(e){this._branchSelections=new Map,this._regenSelections=new Map,this._nonHeadRegenSelections=new Map,this._withheldRunIds=new Set,this._lastVisibleNodeKeys=[],this._lastVisibleProjections=[],this._lastVisibleMessagePairs=[],this._lastVisibleNodeKeySet=new Set,this._hasMoreHistory=!1,this._withheldBuffer=[],this._hiddenMessageCount=0,this._unsubs=[],this._cachedNodes=[],this._loadingOlder=!1,this._processingHistory=!1,this._closed=!1,this._tree=e.tree,this._channel=e.channel,this._codec=e.codec,this._applier=e.applier,this._sendDelegate=e.sendDelegate,this._onClose=e.onClose,this._logger=e.logger.withContext({component:`View`}),this._logger.trace(`DefaultView();`),this._emitter=new ge(this._logger),this._cachedNodes=this._computeFlatNodes(),this._updateVisibleSnapshot(this._cachedNodes),this._unsubs.push(this._tree.on(`update`,()=>{this._onTreeUpdate()}),this._tree.on(`ably-message`,e=>{this._onTreeAblyMessage(e)}),this._tree.on(`run`,e=>{this._onTreeRun(e)}),this._tree.on(`output`,e=>{this._onTreeOutput(e)}))}_onTreeOutput(e){this._processingHistory||(e.runId!==void 0&&this._lastVisibleNodeKeySet.has(e.runId)||e.inputCodecMessageId!==void 0&&this._lastVisibleNodeKeySet.has(e.inputCodecMessageId))&&(this._lastVisibleProjections=this._cachedNodes.map(e=>e.projection),this._lastVisibleMessagePairs=this._extractMessages(this._cachedNodes).slice(this._hiddenMessageCount),this._emitter.emit(`update`))}getMessages(){return this._lastVisibleMessagePairs}runs(){return this._cachedNodes.filter(e=>e.kind===`run`).map(e=>et(e))}_computeFlatNodes(){let e=this._treeVisibleNodes();return this._withheldRunIds.size===0?e:e.filter(e=>!this._withheldRunIds.has(N(e)))}_recomputeAndEmit(){this._cachedNodes=this._computeFlatNodes(),this._updateVisibleSnapshot(this._cachedNodes),this._emitter.emit(`update`)}_recomputeAndEmitIfChanged(){let e=this._computeFlatNodes();this._visibleChanged(e)&&(this._cachedNodes=e,this._updateVisibleSnapshot(e),this._emitter.emit(`update`))}_runByCodecMessageId(e){let t=this._tree.getNodeByCodecMessageId(e);return t?.kind===`run`?t:void 0}_nonHeadRegenerators(e,t){return this._tree.getReplyRuns(t).filter(t=>t.regeneratesCodecMessageId===e).toSorted((e,t)=>(e.startSerial??`￿`).localeCompare(t.startSerial??`￿`))}_selectedNonHeadMember(e,t,n){let r=this._nonHeadRegenSelections.get(e);return r&&r.kind!==`pending`&&[t,...n.map(e=>e.runId)].includes(r.selectedRunId)?r.selectedRunId:n.at(-1)?.runId??t}_extractMessages(e){let t=[],n=new Set;for(let r of e)r.kind===`run`&&n.has(r.runId)||this._emitNodeMessages(r,t,n);return t}_emitNodeMessages(e,t,n){let r=this._codec.getMessages(e.projection);if(e.kind!==`run`){t.push(...r);return}for(let i=0;i<r.length;i++){let a=r[i];if(!a)continue;let o=i>0?r[i-1]?.codecMessageId:void 0;if(o!==void 0){let r=this._nonHeadRegenerators(a.codecMessageId,o);if(r.length>0){for(let e of r)n.add(e.runId);let i=this._selectedNonHeadMember(a.codecMessageId,e.runId,r);if(i!==e.runId){let e=r.find(e=>e.runId===i);if(e){this._emitNodeMessages(e,t,n);return}}}}t.push(a)}}hasOlder(){return this._hiddenMessageCount>0||this._withheldBuffer.length>0||this._hasMoreHistory}async loadOlder(e=10){if(!(this._closed||this._loadingOlder)){this._loadingOlder=!0,this._logger.trace(`DefaultView.loadOlder();`,{limit:e});try{if(this._hiddenMessageCount>=e){this._hiddenMessageCount-=e,this._recomputeAndEmit();return}let t=e-this._hiddenMessageCount,n=this._extractMessages(this._computeFlatNodes()).length,r=()=>this._extractMessages(this._computeFlatNodes()).length-n;if(this._withheldBuffer.length>0){let e=this._messageTailSplitIndex(this._withheldBuffer,t),n=this._withheldBuffer.splice(e);this._releaseWithheld(n)}if(r()<t&&(await this._fetchOlder(t-r()),this._closed))return;let i=this._extractMessages(this._computeFlatNodes()).length;this._hiddenMessageCount=Math.max(0,this._hiddenMessageCount+(i-n)-e),this._recomputeAndEmit()}catch(e){throw this._logger.error(`DefaultView.loadOlder(); failed`,{error:e}),e}finally{this._loadingOlder=!1}}}async _fetchOlder(e){if(!this._hasMoreHistory&&!this._lastHistoryPage){await this._loadFirstPage(e);return}if(!this._hasMoreHistory)return;if(!this._lastHistoryPage?.hasNext()){this._hasMoreHistory=!1;return}let t=await this._lastHistoryPage.next();if(this._closed||!t){t||(this._hasMoreHistory=!1);return}await this._revealFromPage(t,e)}_messageTailSplitIndex(e,t){let n=0;for(let r=e.length-1;r>=0;r--){let i=e[r];if(i&&(n+=this._codec.getMessages(i.projection).length,n>=t))return r}return 0}runOf(e){this._logger.trace(`DefaultView.runOf();`,{codecMessageId:e});let t=this._tree.getNodeByCodecMessageId(e);if(!t)return;if(t.kind===`run`)return et(t);let n=this._selectedReplyRun(t.codecMessageId);return n?et(n):void 0}_selectedReplyRun(e){let t=this._tree.getReplyRuns(e);if(t.length===0)return;if(t.length===1)return t[0];let n=this._tree.getGroupRoot(t[0]?.runId??``),r=this._regenSelections.get(n),i=r&&r.kind!==`pending`?r.selectedRunId:void 0;if(i!==void 0){let e=t.find(e=>e.runId===i);if(e)return e}return t.toSorted((e,t)=>(e.startSerial??`￿`).localeCompare(t.startSerial??`￿`)).at(-1)}run(e){this._logger.trace(`DefaultView.run();`,{runId:e});let t=this._tree.getRunNode(e);return t?et(t):void 0}branchSelection(e){let t=this._resolveMessageBranchPoint(e);if(t){let e=t.members.flatMap(e=>{let t=this._tree.getNodeByCodecMessageId(e.representativeCodecMessageId);if(!t)return[];let n=this._codec.getMessages(t.projection).find(t=>t.codecMessageId===e.representativeCodecMessageId);return n?[n.message]:[]});if(e.length>0){let n=this._resolveSelectedIndex(t),r=Math.max(0,Math.min(n,e.length-1)),i=e[r];return{hasSiblings:e.length>1,siblings:e,index:r,selected:i}}}let n=this._tree.getNodeByCodecMessageId(e);if(n){let t=this._codec.getMessages(n.projection).find(t=>t.codecMessageId===e);if(t!==void 0)return{hasSiblings:!1,siblings:[t.message],index:0,selected:t.message}}return{hasSiblings:!1,siblings:[],index:0,selected:void 0}}selectSibling(e,t){this._logger.trace(`DefaultView.selectSibling();`,{codecMessageId:e,index:t});let n=this._resolveMessageBranchPoint(e);if(!n)return;let r=Math.max(0,Math.min(t,n.members.length-1)),i=n.members[r];i&&(n.kind===`fork-of`?(this._branchSelections.set(n.groupRoot,{kind:`user`,selectedKey:i.memberNodeKey}),this._logger.debug(`DefaultView.selectSibling(); fork-of`,{codecMessageId:e,index:r,selectedKey:i.memberNodeKey})):n.kind===`non-head-regen`?(this._nonHeadRegenSelections.set(n.groupRoot,{kind:`user`,selectedRunId:i.memberNodeKey}),this._logger.debug(`DefaultView.selectSibling(); non-head-regen`,{codecMessageId:e,index:r,selectedRunId:i.memberNodeKey,anchor:n.groupRoot})):(this._regenSelections.set(n.groupRoot,{kind:`user`,selectedRunId:i.memberNodeKey}),this._logger.debug(`DefaultView.selectSibling(); regenerate`,{codecMessageId:e,index:r,selectedRunId:i.memberNodeKey,groupRoot:n.groupRoot})),this._recomputeAndEmit())}_resolveSelectedIndex(e){if(e.kind===`fork-of`){let t=this._branchSelections.get(e.groupRoot);if(!t)return e.members.length-1;let n=e.members.findIndex(e=>e.memberNodeKey===t.selectedKey);return n===-1?e.members.length-1:n}let t=e.kind===`non-head-regen`?this._nonHeadRegenSelections.get(e.groupRoot):this._regenSelections.get(e.groupRoot);if(!t||t.kind===`pending`)return e.members.length-1;let n=e.members.findIndex(e=>e.memberNodeKey===t.selectedRunId);return n===-1?e.members.length-1:n}_resolveMessageBranchPoint(e){let t=this._tree.getNodeByCodecMessageId(e);if(!t)return;if(t.kind===`input`){let e=this._tree.getSiblingNodes(t.codecMessageId);return e.length>1?{kind:`fork-of`,groupRoot:this._tree.getGroupRoot(t.codecMessageId),members:this._nodeHeadMembers(e)}:void 0}let n=this._codec.getMessages(t.projection),r=this._resolveNonHeadBranchPoint(t,n,e);if(r)return r;let i=this._tree.getSiblingNodes(t.runId);if(i.length>1&&n.at(0)?.codecMessageId===e)return{kind:`regen`,groupRoot:this._tree.getGroupRoot(t.runId),members:this._nodeHeadMembers(i)}}_resolveNonHeadBranchPoint(e,t,n){if(t.at(0)?.codecMessageId===n&&e.regeneratesCodecMessageId!==void 0){let t=e.regeneratesCodecMessageId,n=this._runByCodecMessageId(t);if(n){let e=this._codec.getMessages(n.projection),r=e.findIndex(e=>e.codecMessageId===t),i=r>0?e[r-1]?.codecMessageId:void 0;if(i!==void 0)return this._buildNonHeadGroup(t,n.runId,i)}return}let r=t.findIndex(e=>e.codecMessageId===n),i=r>0?t[r-1]?.codecMessageId:void 0;if(i!==void 0)return this._buildNonHeadGroup(n,e.runId,i)}_buildNonHeadGroup(e,t,n){let r=this._nonHeadRegenerators(e,n);if(r.length===0)return;let i=[{memberNodeKey:t,representativeCodecMessageId:e}];for(let e of r){let t=this._codec.getMessages(e.projection).at(0);t&&i.push({memberNodeKey:e.runId,representativeCodecMessageId:t.codecMessageId})}return{kind:`non-head-regen`,groupRoot:e,members:i}}_nodeHeadMembers(e){let t=[];for(let n of e){let e=this._codec.getMessages(n.projection).at(0);e&&t.push({memberNodeKey:N(n),representativeCodecMessageId:e.codecMessageId})}return t}async send(e,t){if(this._logger.trace(`DefaultView.send();`),this._closed)throw new n.ErrorInfo(`unable to send; view is closed`,O.InvalidArgument,400);let r=$e(e),i=this._lastVisibleMessagePairs.at(-1)?.codecMessageId,a=await this._sendDelegate(r,t,i);return this._applyForkAutoSelect(a,t),a}_applyForkAutoSelect(e,t){if(!t?.forkOf)return;let n=e.optimisticCodecMessageIds.at(0);if(n===void 0)return;let r=this._tree.getGroupRoot(n);this._branchSelections.set(r,{kind:`auto`,selectedKey:n}),this._recomputeAndEmit()}_applyRegenerateAutoSelect(e,t){let n=this._runByCodecMessageId(t);if(!n)return;if(this._codec.getMessages(n.projection).at(0)?.codecMessageId!==t){this._nonHeadRegenSelections.set(t,{kind:`pending`,carrierCodecMessageId:e.inputCodecMessageId}),this._logger.debug(`DefaultView._applyRegenerateAutoSelect(); deferring non-head regenerate selection`,{anchorCodecMessageId:t,carrier:e.inputCodecMessageId}),this._resolvePendingNonHeadRegenSelections(),this._recomputeAndEmitIfChanged();return}let r=this._tree.getGroupRoot(n.runId);this._regenSelections.set(r,{kind:`pending`,carrierCodecMessageId:e.inputCodecMessageId}),this._logger.debug(`DefaultView._applyRegenerateAutoSelect(); deferring regenerate selection`,{anchorCodecMessageId:t,groupRoot:r,carrier:e.inputCodecMessageId}),this._resolvePendingRegenSelections(),this._recomputeAndEmitIfChanged()}async regenerate(e,t){if(this._logger.trace(`DefaultView.regenerate();`,{messageId:e}),this._closed)throw new n.ErrorInfo(`unable to regenerate; view is closed`,O.InvalidArgument,400);let r=this._runByCodecMessageId(e);if(!r)throw new n.ErrorInfo(`unable to regenerate; message not found in tree: ${e}`,O.InvalidArgument,400);let i=this._findParentMsgId(r,e);if(!i)throw new n.ErrorInfo(`unable to regenerate; parent user message not found for ${e}`,O.InvalidArgument,400);let a=e;r.regeneratesCodecMessageId!==void 0&&this._codec.getMessages(r.projection).at(0)?.codecMessageId===e&&(a=r.regeneratesCodecMessageId);let o={...t,parent:i},s=this._codec.createRegenerate(a,i),c=await this._sendDelegate([s],o,i);return this._applyRegenerateAutoSelect(c,a),c}async edit(e,t,r){if(this._logger.trace(`DefaultView.edit();`,{messageId:e}),this._closed)throw new n.ErrorInfo(`unable to edit; view is closed`,O.InvalidArgument,400);let i=this._tree.getNodeByCodecMessageId(e);if(!i)throw new n.ErrorInfo(`unable to edit; message not found in tree: ${e}`,O.InvalidArgument,400);let a=this._findParentMsgId(i,e);return this.send(t,{...r,forkOf:e,parent:a})}_findParentMsgId(e,t){let n=this._lastVisibleMessagePairs,r=n.findIndex(e=>e.codecMessageId===t);if(r>0)return n[r-1]?.codecMessageId;if(r===0)return;let i=this._codec.getMessages(e.projection),a=i.findIndex(e=>e.codecMessageId===t);if(a>0)return i[a-1]?.codecMessageId;if(a===0&&e.parentCodecMessageId!==void 0){let t=this._tree.getNodeByCodecMessageId(e.parentCodecMessageId);if(t)return this._codec.getMessages(t.projection).at(-1)?.codecMessageId}}on(e,t){let n=t;return this._emitter.on(e,n),()=>{this._emitter.off(e,n)}}close(){if(!this._closed){this._logger.info(`DefaultView.close();`),this._closed=!0,this._loadingOlder=!1;for(let e of this._unsubs)e();this._unsubs.length=0,this._emitter.off(),this._branchSelections.clear(),this._regenSelections.clear(),this._nonHeadRegenSelections.clear(),this._withheldRunIds.clear(),this._withheldBuffer.length=0,this._hiddenMessageCount=0,this._onClose?.()}}async _loadFirstPage(e){let t=await Qe(this._channel,{limit:e},this._logger);this._closed||await this._revealFromPage(t,e)}async _revealFromPage(e,t){let n=new Set(this._treeVisibleNodes().map(e=>N(e))),{newVisible:r,lastPage:i}=await this._loadUntilVisible(e,t,n);this._closed||(this._lastHistoryPage=i,this._hasMoreHistory=i.hasNext(),this._splitReveal(r,t))}_splitReveal(e,t){let n=this._messageTailSplitIndex(e,t),r=e.slice(n),i=e.slice(0,n);for(let e of i)this._withheldRunIds.add(N(e));this._withheldBuffer.push(...i),this._releaseWithheld(r)}_processHistoryPage(e){this._processingHistory=!0;try{for(let t of e.rawMessages)this._applier.apply(t);for(let t of e.rawMessages)this._tree.emitAblyMessage(t)}finally{this._processingHistory=!1}}async _loadUntilVisible(e,t,n){this._processHistoryPage(e);let r=e,i=()=>{let e=0;for(let t of this._treeVisibleNodes())n.has(N(t))||(e+=this._codec.getMessages(t.projection).length);return e};for(;i()<t&&r.hasNext();){let e=await r.next();if(!e||this._closed)break;this._processHistoryPage(e),r=e}return{newVisible:this._treeVisibleNodes().filter(e=>!n.has(N(e))),lastPage:r}}_releaseWithheld(e){for(let t of e)this._withheldRunIds.delete(N(t));e.length>0&&this._recomputeAndEmit()}_updateVisibleSnapshot(e){let t=e??this._cachedNodes;this._lastVisibleNodeKeys=t.map(e=>N(e)),this._lastVisibleNodeKeySet=new Set(this._lastVisibleNodeKeys),this._lastVisibleProjections=t.map(e=>e.projection),this._lastVisibleMessagePairs=this._extractMessages(t).slice(this._hiddenMessageCount)}_onTreeUpdate(){this._processingHistory||(this._pinBranchSelections(),this._resolvePendingRegenSelections(),this._resolvePendingNonHeadRegenSelections(),this._recomputeAndEmitIfChanged())}_resolveSelections(){let e=new Map;for(let[t,n]of this._branchSelections)e.set(t,n.selectedKey);for(let[t,n]of this._regenSelections)n.kind!==`pending`&&e.set(t,n.selectedRunId);return e}_treeVisibleNodes(){return this._tree.visibleNodes(this._resolveSelections())}_pinBranchSelections(){for(let e of this._lastVisibleNodeKeys){if(this._tree.getNode(e)?.kind!==`input`||this._tree.getSiblingNodes(e).length<=1)continue;let t=this._tree.getGroupRoot(e);this._branchSelections.get(t)||this._branchSelections.set(t,{kind:`pinned`,selectedKey:e})}}_resolvePendingRegenSelections(){for(let[e,t]of this._regenSelections){if(t.kind===`user`)continue;let n=this._tree.getSiblingNodes(e).filter(e=>e.kind===`run`);if(n.length<=1)continue;let r=n.at(-1);r&&this._regenSelections.set(e,{kind:`auto`,selectedRunId:r.runId})}}_resolvePendingNonHeadRegenSelections(){for(let[e,t]of this._nonHeadRegenSelections){if(t.kind===`user`)continue;let n=this._runByCodecMessageId(e);if(!n)continue;let r=this._codec.getMessages(n.projection),i=r.findIndex(t=>t.codecMessageId===e),a=i>0?r[i-1]?.codecMessageId:void 0;if(a===void 0)continue;let o=this._nonHeadRegenerators(e,a).at(-1);o&&this._nonHeadRegenSelections.set(e,{kind:`auto`,selectedRunId:o.runId})}}_onTreeAblyMessage(e){let t=j(e),n=t[E],r=t[C];if(!n&&!r){this._emitter.emit(`ably-message`,e);return}r&&this._lastVisibleNodeKeySet.has(r)&&this._emitter.emit(`ably-message`,e)}_onTreeRun(e){if(this._lastVisibleNodeKeySet.has(e.runId)){this._emitter.emit(`run`,e);return}e.type===`start`&&this._isRunStartVisible(e)&&(this._lastVisibleNodeKeySet.add(e.runId),this._emitter.emit(`run`,e))}_isRunStartVisible(e){let{parent:t}=e;if(t===void 0)return!0;let n=this._tree.getNodeByCodecMessageId(t);return n?this._lastVisibleNodeKeySet.has(N(n)):!0}_visibleChanged(e){if(e.length!==this._lastVisibleNodeKeys.length)return!0;for(let[t,n]of e.entries())if(N(n)!==this._lastVisibleNodeKeys[t]||n.projection!==this._lastVisibleProjections[t])return!0;return!1}},nt=e=>new tt(e),rt=()=>{},it=class{constructor(e){this._views=new Set,this._state=`ready`,this._pendingRunStarts=new Map;let t=ee(e.client,e.codec),n=m(e.channelModes);if(n&&(t.modes=n),this._channel=e.client.channels.get(e.channelName,t),this._client=e.client,this._codec=e.codec,this._logger=(e.logger??ye({logLevel:_e.Silent})).withContext({component:`ClientSession`}),this._emitter=new ge(this._logger),this._hasAttachedOnce=this._channel.state===`attached`,this._tree=Ge(this._codec,this._logger),this._applier=Ne(this._tree,this._codec.createDecoder()),this._view=nt({tree:this._tree,channel:this._channel,codec:this._codec,applier:this._applier,sendDelegate:this._internalSend.bind(this),logger:this._logger,onClose:()=>this._views.delete(this._view)}),this._encoder=this._codec.createEncoder(this._channel),this._views.add(this._view),this.tree=this._tree,this.view=this._view,e.messages){let t;for(let n of e.messages){let e=crypto.randomUUID(),r={[E]:e,[ae]:`user`};t&&(r[D]=t),this._tree.applyMessage({inputs:[this._codec.createUserMessage(n)],outputs:[]},r),t=e}}this._onMessage=e=>{this._handleMessage(e)},this._onChannelStateChange=e=>{this._handleChannelStateChange(e)},this._channel.on(this._onChannelStateChange)}get presence(){return this._channel.presence}get object(){return this._channel.object}connect(){return this._state===`closed`?Promise.reject(new n.ErrorInfo(`unable to connect; session is closed`,O.SessionClosed,400)):this._connectPromise?this._connectPromise:(this._logger.trace(`DefaultClientSession.connect();`),this._connectPromise=this._channel.subscribe(this._onMessage).then(()=>{this._logger.debug(`DefaultClientSession.connect(); subscribed and attached`)},e=>{let t=new n.ErrorInfo(`unable to subscribe to channel; ${k(e)}`,O.SessionSubscriptionError,500,A(e));throw this._logger.error(`DefaultClientSession.connect(); subscribe failed`),this._emitter.emit(`error`,t),t}),this._connectPromise)}_resolveClientId(){let e=this._client.auth.clientId;return e&&e!==`*`?e:void 0}async _requireConnected(e){return Fe(this._connectPromise,e)}_handleMessage(e){if(this._state!==`closed`)try{if(e.name===`ai-run-end`){let t=j(e);if((t[`run-reason`]??`complete`)===`error`){let e=Ae(t);this._logger.error(`ClientSession._handleMessage(); agent error received`,{runId:t[C],invocationId:t[w],code:e.code}),this._emitter.emit(`error`,e)}}let t=this._applier.apply(e);if(t&&(t.type===`start`||t.type===`resume`)){let n=j(e)[ce];if(n!==void 0){let e=this._pendingRunStarts.get(n);e&&(this._pendingRunStarts.delete(n),e.resolve(t.runId))}}this._tree.emitAblyMessage(e)}catch(e){this._emitter.emit(`error`,new n.ErrorInfo(`unable to process channel message; ${k(e)}`,O.SessionSubscriptionError,500,A(e)))}}_handleChannelStateChange(e){if(this._state===`closed`)return;let{current:t,resumed:n}=e;if(t===`attached`&&!this._hasAttachedOnce){this._hasAttachedOnce=!0;return}if(!Le(e))return;this._logger.error(`ClientSession._handleChannelStateChange(); channel continuity lost`,{current:t,resumed:n,previous:e.previous});let r=Re(e,`deliver events`);this._emitter.emit(`error`,r)}_cleanupFailedSend(e){for(let t of e){let e=this._tree.getNodeByCodecMessageId(t);e?.kind===`input`&&e.serial===void 0&&this._tree.delete(e.codecMessageId)}}createView(){if(this._state===`closed`)throw new n.ErrorInfo(`unable to create view; session is closed`,O.SessionClosed,400);this._logger.trace(`DefaultClientSession.createView();`);let e=nt({tree:this._tree,channel:this._channel,codec:this._codec,applier:this._applier,sendDelegate:this._internalSend.bind(this),logger:this._logger,onClose:()=>this._views.delete(e)});return this._views.add(e),e}async _internalSend(e,t,r){if(this._state===`closed`||(await this._requireConnected(`send`),this._state===`closed`))throw new n.ErrorInfo(`unable to send; session is closed`,O.SessionClosed,400);let i=this._channel.state;if(i!==`attached`&&i!==`attaching`)throw new n.ErrorInfo(`unable to send; channel is ${i}`,O.ChannelNotReady,400);this._logger.trace(`ClientSession._internalSend();`);let a=t?.runId!==void 0,o=t?.runId,s;t?.parent===void 0&&!t?.forkOf&&(s=r);let c=new Set,l=[];for(let n of e){let e=crypto.randomUUID(),r=n.codecMessageId??crypto.randomUUID();c.add(r);let i=n.kind!==`user-message`&&(n.kind===`regenerate`||n.codecMessageId!==void 0),a=n.parent??(t?.parent===void 0?s:t.parent),u=t?.forkOf,d=n.kind===`regenerate`?n.target:void 0,f=Oe({role:`user`,runId:o,codecMessageId:r,runClientId:this._resolveClientId(),...a!==void 0&&{parent:a},...u!==void 0&&{forkOf:u},...d!==void 0&&{regenerates:d},inputEventId:e});i||this._tree.applyMessage({inputs:[n],outputs:[]},f),l.push({input:n,codecMessageId:r,inputEventId:e,headers:f,isWireOnly:i}),!i&&t?.parent===void 0&&!t?.forkOf&&n.parent===void 0&&(s=r)}let u=l.at(-1);if(u===void 0)throw new n.ErrorInfo(`unable to send; inputs array is empty (include at least one input)`,O.InvalidArgument,400);let d=u.inputEventId,f=u.codecMessageId,p=new Promise((e,t)=>{this._pendingRunStarts.set(f,{resolve:e,reject:t})});return p.catch(()=>{}),await(async()=>{try{for(let e of l)await this._encoder.publishInput(e.input,{extras:{headers:e.headers},messageId:e.codecMessageId})}catch(e){let t=A(e),r=t?.statusCode===401||t?.statusCode===403,i=new n.ErrorInfo(r?`unable to publish events; missing publish capability on the channel`:`unable to publish events; ${k(e)}`,r?O.InsufficientCapability:O.SessionSendFailed,r?401:500,t);throw this._emitter.emit(`error`,i),this._pendingRunStarts.delete(f),a||this._cleanupFailedSend([...c]),i}})(),{inputCodecMessageId:f,runId:p,inputEventId:d,cancel:async()=>{await this._publishCancel({inputCodecMessageId:f,...o!==void 0&&{runId:o}})},optimisticCodecMessageIds:[...c],toInvocation:()=>Pe.fromJSON({inputEventId:d,sessionName:this._channel.name})}}async cancel(e){return this._publishCancel({runId:e})}async _publishCancel(e){if(this._state===`closed`||(await this._requireConnected(`cancel`),this._state===`closed`))return;this._logger.debug(`ClientSession._publishCancel();`,{runId:e.runId,inputCodecMessageId:e.inputCodecMessageId});let t={[T]:crypto.randomUUID()};e.runId!==void 0&&(t[C]=e.runId),e.inputCodecMessageId!==void 0&&(t[ce]=e.inputCodecMessageId),await this._channel.publish({name:ue,extras:{ai:{transport:t}}})}on(e,t){if(this._state===`closed`)return rt;let n=t;return this._emitter.on(e,n),()=>{this._emitter.off(e,n)}}async close(){if(this._state!==`closed`){this._state=`closed`,this._logger.info(`ClientSession.close();`),this._connectPromise&&this._channel.unsubscribe(this._onMessage),this._channel.off(this._onChannelStateChange),this._emitter.off();for(let e of this._views)e.close();if(this._views.clear(),this._pendingRunStarts.size>0){let e=new n.ErrorInfo(`unable to await run-start; session closed`,O.SessionClosed,400);for(let t of this._pendingRunStarts.values())t.reject(e);this._pendingRunStarts.clear()}try{await this._encoder.close()}catch{}await Ie(this._channel,this._connectPromise,this._logger,`ClientSession`)}}},at=e=>new it(e),ot=(0,t.createContext)({nearest:void 0,providers:{}}),st=({children:e,...a})=>{let o=(0,r.useAbly)(),{channelName:s}=a,c=(0,t.useMemo)(()=>{let e={params:{agent:b(a.codec)}},t=m(a.channelModes);return t&&(e.modes=t),e},[a.codec,a.channelModes]),l=(0,t.useRef)(void 0),u=(0,t.useRef)(s),d=(0,t.useRef)([]),f=(0,t.useRef)(!1),p=(0,t.useRef)(void 0);if(!(l.current||p.current)||u.current!==s){u.current=s,l.current&&d.current.push(l.current);try{l.current=at({...a,client:o}),p.current=void 0}catch(e){l.current=void 0,p.current=e instanceof n.ErrorInfo?e:new n.ErrorInfo(`Unknown error while creating client session`,O.BadRequest,400)}}let h=(0,t.useContext)(ot),g=l.current,_=p.current,v=(0,t.useMemo)(()=>({session:g,sessionError:_}),[g,_]),y=(0,t.useMemo)(()=>({nearest:v,providers:{...h.providers,[s]:v}}),[s,h,v]);return(0,t.useEffect)(()=>()=>{for(let e of d.current)e.close()},[s]),(0,t.useEffect)(()=>{l.current?.connect()},[s]),(0,t.useEffect)(()=>(f.current=!1,()=>{f.current=!0,Promise.resolve().then(()=>{f.current&&l.current?.close()})}),[]),(0,i.jsx)(ot.Provider,{value:y,children:(0,i.jsx)(r.ChannelProvider,{channelName:s,options:c,children:e})})},ct=({session:e,skip:n}={})=>{let{nearest:r}=(0,t.useContext)(ot),i=r?.session;if(!n&&e!==null)return e??i},lt=({session:e,skip:n}={})=>{let r=ct({session:e,skip:n}),[i,a]=(0,t.useState)([]),o=(0,t.useRef)([]);return(0,t.useEffect)(()=>{if(o.current=[],a([]),r)return r.tree.on(`ably-message`,e=>{let t=[...o.current,e];o.current=t,a(t)})},[r]),i},P=e=>new n.ErrorInfo(`unable to ${e}; hook is skipped`,O.InvalidArgument,400),F=()=>({get tree(){throw P(`access tree`)},get view(){throw P(`access view`)},get presence(){throw P(`access presence`)},get object(){throw P(`access object`)},connect:()=>{throw P(`connect`)},createView:()=>{throw P(`create view`)},cancel:()=>{throw P(`cancel`)},on:()=>{throw P(`subscribe`)},close:()=>{throw P(`close`)}}),ut=({channelName:e,skip:r,onError:i}={})=>{let{nearest:a,providers:o}=(0,t.useContext)(ot),s=(0,t.useRef)(i);s.current=i;let c=r?void 0:e===void 0?a?.session:o[e]?.session;if((0,t.useEffect)(()=>{if(c)return c.on(`error`,e=>{s.current?.(e)})},[c]),r)return{session:F()};if(e!==void 0){let t=o[e];return t?t.session?{session:t.session}:{session:F(),sessionError:t.sessionError}:{session:F(),sessionError:new n.ErrorInfo(`unable to use session; no ClientSessionProvider found for channelName "${e}"`,O.BadRequest,400)}}return a?a.session?{session:a.session}:{session:F(),sessionError:a.sessionError}:{session:F(),sessionError:new n.ErrorInfo(`unable to use session; no ClientSessionProvider found in the tree`,O.BadRequest,400)}},dt={hasSiblings:!1,siblings:[],index:0,selected:void 0},ft=({session:e,view:r,limit:i,skip:a}={})=>{let o=ct({session:e,skip:a}),s=a?void 0:r??o?.view,[c,l]=(0,t.useState)(()=>s?.getMessages()??[]),[u,d]=(0,t.useState)(()=>s?.hasOlder()??!1),[f,p]=(0,t.useState)(!1),[m,h]=(0,t.useState)(),g=(0,t.useRef)(!1),_=i!==void 0,v=(0,t.useRef)(!1);(0,t.useEffect)(()=>{if(!s){l([]),d(!1),h(void 0);return}return v.current=!1,l(s.getMessages()),d(s.hasOlder()),h(void 0),s.on(`update`,()=>{l(s.getMessages()),d(s.hasOlder())})},[s]);let y=(0,t.useCallback)(async()=>{if(!(!s||g.current)){g.current=!0,p(!0);try{await s.loadOlder(i),h(void 0)}catch(e){e instanceof n.ErrorInfo?h(e):h(new n.ErrorInfo(`Unknown error loading older messages`,O.BadRequest,400))}finally{g.current=!1,p(!1)}}},[s,i]);return(0,t.useEffect)(()=>{!_||v.current||!s||(v.current=!0,y())},[_,s,y]),{messages:c,hasOlder:u,loading:f,loadError:m,loadOlder:y,runOf:(0,t.useCallback)(e=>s?.runOf(e),[s]),run:(0,t.useCallback)(e=>s?.run(e),[s]),runs:(0,t.useCallback)(()=>s?.runs()??[],[s]),branchSelection:(0,t.useCallback)(e=>s?.branchSelection(e)??dt,[s]),selectSibling:(0,t.useCallback)((e,t)=>{s?.selectSibling(e,t)},[s]),send:(0,t.useCallback)(async(e,t)=>{if(!s)throw new n.ErrorInfo(`unable to send; view is not available`,O.InvalidArgument,400);return s.send(e,t)},[s]),regenerate:(0,t.useCallback)(async(e,t)=>{if(!s)throw new n.ErrorInfo(`unable to regenerate; view is not available`,O.InvalidArgument,400);return s.regenerate(e,t)},[s]),edit:(0,t.useCallback)(async(e,t,r)=>{if(!s)throw new n.ErrorInfo(`unable to edit; view is not available`,O.InvalidArgument,400);return s.edit(e,t,r)},[s])}},pt=({session:e,limit:n,skip:r}={})=>{let i=ct({session:e,skip:r}),[a,o]=(0,t.useState)();return(0,t.useEffect)(()=>{if(!i){o(void 0);return}let e=i.createView();return o(e),()=>{e.close()}},[i]),ft({view:a,limit:n,skip:r})},mt=({session:e}={})=>{let n=ct({session:e});return{getRunNode:(0,t.useCallback)(e=>n?.tree.getRunNode(e),[n]),getNodeByCodecMessageId:(0,t.useCallback)(e=>n?.tree.getNodeByCodecMessageId(e),[n]),getSiblingNodes:(0,t.useCallback)(e=>n?.tree.getSiblingNodes(e)??[],[n])}},ht=()=>({ClientSessionProvider:st,useClientSession:e=>ut(e??{}),useView:e=>ft(e??{}),useTree:e=>mt(e??{}),useAblyMessages:e=>lt(e??{}),useCreateView:e=>pt(e??{})}),gt=class{constructor(e,t={}){this._trackers=new Map,this._pending=[],this._closed=!1,this._writer=e,this._defaultExtras=t.extras,this._onMessageHook=t.onMessage??(()=>{}),this._logger=t.logger?.withContext({component:`EncoderCore`})}async publishDiscrete(e,t){this._assertNotClosed(),this._logger?.trace(`DefaultEncoderCore.publishDiscrete();`,{name:e.name});let n=this._buildDiscreteMessage(e,t);return this._writer.publish(n)}async publishDiscreteBatch(e,t){this._assertNotClosed(),this._logger?.trace(`DefaultEncoderCore.publishDiscreteBatch();`,{count:e.length});let n=e.map(e=>this._buildDiscreteMessage(e,t,!0));return this._writer.publish(n)}async startStream(e,t,r){this._assertNotClosed(),this._logger?.trace(`DefaultEncoderCore.startStream();`,{name:t.name,streamId:e});let i=this._buildTransport(t.transportHeaders,r);i[x]=`true`,i[S]=`streaming`,i[te]=e;let a=t.codecHeaders??{},o={name:t.name,data:t.data,extras:{ai:this._aiExtras(i,a)}};this._invokeOnMessage(o);let s=(await this._writer.publish(o)).serials[0];if(!s)throw new n.ErrorInfo(`unable to start stream; no serial returned for stream '${t.name}' (streamId: ${e})`,O.BadRequest,400);this._trackers.set(e,{serial:s,name:t.name,streamId:e,accumulated:t.data,persistentTransport:i,persistentCodec:a,cancelled:!1,completed:!1}),this._logger?.debug(`DefaultEncoderCore.startStream(); stream started`,{name:t.name,streamId:e,serial:s})}appendStream(e,t){this._assertNotClosed();let r=this._trackers.get(e);if(!r)throw new n.ErrorInfo(`unable to append to stream; no active stream for streamId '${e}'`,O.InvalidArgument,400);r.accumulated+=t;let i={serial:r.serial,data:t,extras:{ai:this._aiExtras({...r.persistentTransport},{...r.persistentCodec})}};this._invokeOnMessage(i);let a=this._writer.appendMessage(i);this._pending.push({promise:a,streamId:e})}async closeStream(e,t){this._assertNotClosed(),this._logger?.trace(`DefaultEncoderCore.closeStream();`,{streamId:e});let r=this._trackers.get(e);if(!r)throw new n.ErrorInfo(`unable to close stream; no active stream for streamId '${e}'`,O.InvalidArgument,400);r.accumulated+=t.data,r.completed=!0;let{transport:i,codec:a}=this._buildClosing(r,t);i[S]=`complete`;let o={serial:r.serial,data:t.data,extras:{ai:this._aiExtras(i,a)}};this._invokeOnMessage(o);let s=this._writer.appendMessage(o);this._pending.push({promise:s,streamId:e}),await this._flushPending(),this._logger?.debug(`DefaultEncoderCore.closeStream(); stream closed`,{streamId:e})}async cancelAllStreams(e){this._assertNotClosed(),this._logger?.trace(`DefaultEncoderCore.cancelAllStreams();`,{streamCount:this._trackers.size});for(let t of this._trackers.values()){if(t.cancelled||t.completed)continue;t.cancelled=!0;let{transport:n,codec:r}=this._buildClosing(t,void 0,e);n[S]=`cancelled`;let i={serial:t.serial,data:``,extras:{ai:this._aiExtras(n,r)}};this._invokeOnMessage(i);let a=this._writer.appendMessage(i);this._pending.push({promise:a,streamId:t.streamId})}await this._flushPending()}async _flushPending(){if(this._flushPromise)return this._flushPromise;let e=this._pending;if(this._pending=[],e.length!==0){this._logger?.trace(`DefaultEncoderCore._flushPending();`,{count:e.length}),this._flushPromise=this._doFlush(e);try{await this._flushPromise}finally{this._flushPromise=void 0}}}async _doFlush(e){let t=await Promise.allSettled(e.map(async e=>e.promise)),r=new Set;for(let[n,i]of t.entries()){let t=e[n];t&&i.status===`rejected`&&r.add(t.streamId)}if(r.size===0){this._logger?.debug(`DefaultEncoderCore._flushPending(); all appends succeeded`);return}this._logger?.warn(`DefaultEncoderCore._flushPending(); recovering failed appends`,{failedStreams:[...r]});let i=[];for(let e of r){let t=this._trackers.get(e);if(!t)continue;let n=t.cancelled?`cancelled`:`complete`,r={serial:t.serial,data:t.accumulated,extras:{ai:this._aiExtras({...t.persistentTransport,[S]:n},{...t.persistentCodec})}};try{await this._writer.updateMessage(r)}catch(t){i.push({streamId:e,error:t})}}if(i.length>0){let e=i.map(e=>e.streamId).join(`, `);throw this._logger?.error(`DefaultEncoderCore._flushPending(); recovery failed`,{failedStreams:e}),new n.ErrorInfo(`unable to flush pending appends; recovery failed for stream(s): ${e}`,O.EncoderRecoveryFailed,500)}}async close(){if(!this._closed){this._logger?.trace(`DefaultEncoderCore.close();`),this._closed=!0;try{await this._flushPending()}finally{this._trackers.clear()}this._logger?.debug(`DefaultEncoderCore.close(); encoder closed`)}}_invokeOnMessage(e){try{this._onMessageHook(e)}catch(e){this._logger?.error(`DefaultEncoderCore._invokeOnMessage(); hook threw`,{error:e})}}_assertNotClosed(){if(this._closed)throw new n.ErrorInfo(`unable to write to encoder; encoder has been closed`,O.InvalidArgument,400)}_buildTransport(e,t){let n={...Ee(this._defaultExtras?.headers,t?.extras?.headers),...e};return t?.messageId!==void 0&&(n[E]=t.messageId),n}_aiExtras(e,t){return Object.keys(t).length>0?{transport:e,codec:t}:{transport:e}}_buildDiscreteMessage(e,t,n=!1){let r=this._buildTransport(e.transportHeaders,t);r[x]=`false`,n&&(r[ne]=`true`);let i={name:e.name,data:e.data,extras:{ai:this._aiExtras(r,e.codecHeaders??{}),...e.ephemeral?{ephemeral:!0}:{}}};return this._invokeOnMessage(i),i}_buildClosing(e,t,n){let r=Ee(this._defaultExtras?.headers,n?.extras?.headers);return{transport:{...e.persistentTransport,...r,...t?.transportHeaders},codec:{...e.persistentCodec,...t?.codecHeaders}}}},_t=(e,t={})=>new gt(e,t),vt=class{constructor(e,t={}){this._serialState=new Map,this._hooks=e,this._onStreamUpdate=t.onStreamUpdate,this._onStreamDelete=t.onStreamDelete,this._logger=t.logger?.withContext({component:`DecoderCore`})}decode(e){let t=e.action;switch(this._logger?.trace(`DefaultDecoderCore.decode();`,{action:t,serial:e.serial,name:e.name}),t){case`message.create`:{let t=this._toPayload(e);return t.transportHeaders?.stream===`true`?this._decodeStreamedCreate(t,e.serial,e.version.serial):this._hooks.decodeDiscrete(t)}case`message.append`:return this._decodeAppend(e);case`message.update`:return this._decodeUpdate(e);case`message.delete`:return this._decodeDelete(e);default:return[]}}_toPayload(e){return{name:e.name??``,data:e.data,transportHeaders:j(e),codecHeaders:Ce(e)}}_stringData(e){return typeof e.data==`string`?e.data:``}_invokeOnStreamUpdate(e){if(this._onStreamUpdate)try{this._onStreamUpdate(e)}catch(e){this._logger?.error(`DefaultDecoderCore._invokeOnStreamUpdate(); callback threw`,{error:e})}}_invokeOnStreamDelete(e,t){if(this._onStreamDelete)try{this._onStreamDelete(e,t)}catch(e){this._logger?.error(`DefaultDecoderCore._invokeOnStreamDelete(); callback threw`,{error:e})}}_alreadyIncorporated(e,t,n,r){return r!==void 0&&r<=n.version?(this._logger?.debug(`DefaultDecoderCore.${e}(); delivery already incorporated`,{serial:t,version:r,trackerVersion:n.version}),!0):n.closed?(this._logger?.debug(`DefaultDecoderCore.${e}(); stream closed, dropping delivery`,{serial:t,version:r}),!0):(r!==void 0&&(n.version=r),!1)}_closeTracker(e){e.closed=!0,e.accumulated=``}_applyTerminalStatus(e,t,n,r){return t===`complete`?(r.push(...this._hooks.buildEndEvents(e,n)),this._closeTracker(e),!0):t===`cancelled`?(this._closeTracker(e),!0):!1}_decodeStreamedCreate(e,t,n){if(!t)return[];if(this._serialState.get(t))return this._logger?.debug(`DefaultDecoderCore._decodeStreamedCreate(); duplicate create for tracked stream`,{serial:t}),[];let r=e.transportHeaders?.[`stream-id`]??``,i={name:e.name,streamId:r,accumulated:``,codecHeaders:{...e.codecHeaders},transportHeaders:{...e.transportHeaders},version:n??t,closed:!1};return this._serialState.set(t,i),this._logger?.debug(`DefaultDecoderCore._decodeStreamedCreate(); new stream`,{name:e.name,streamId:r,serial:t}),this._hooks.buildStartEvents(i)}_decodeAppend(e){let t=e.serial;if(!t)return[];let n=this._serialState.get(t);if(!n)return this._logger?.warn(`DefaultDecoderCore._decodeAppend(); append with no tracker, treating as first contact`,{serial:t}),this._decodeUpdate(e);if(this._alreadyIncorporated(`_decodeAppend`,t,n,e.version.serial))return[];let r=j(e),i=Ce(e),a=typeof e.data==`string`?e.data:``,o=r[S],s=[];return a.length>0&&(n.accumulated+=a,s.push(...this._hooks.buildDeltaEvents(n,a))),this._applyTerminalStatus(n,o,i,s)&&this._logger?.debug(`DefaultDecoderCore._decodeAppend(); stream ${o===`complete`?`complete`:`cancelled`}`,{streamId:n.streamId}),s}_decodeUpdate(e){let t=e.serial;if(!t)return[];let n=this._toPayload(e),r=n.transportHeaders??{},i=n.codecHeaders??{},a=r[x]===`true`,o=r[S],s=this._serialState.get(t);if(!s)return this._decodeFirstContact(n,a,o,t,e.version.serial);if(this._alreadyIncorporated(`_decodeUpdate`,t,s,e.version.serial))return[];let c=this._stringData(e);if(c.startsWith(s.accumulated)){let e=c.slice(s.accumulated.length),t=[];return e.length>0&&(s.accumulated=c,t.push(...this._hooks.buildDeltaEvents(s,e))),this._applyTerminalStatus(s,o,i,t),t}return s.accumulated=c,s.codecHeaders={...i},s.transportHeaders={...r},this._invokeOnStreamUpdate(s),[]}_decodeFirstContact(e,t,n,r,i){if(!t)return this._hooks.decodeDiscrete(e);let a=e.transportHeaders?.[`stream-id`]??``,o=e.codecHeaders??{},s=typeof e.data==`string`?e.data:``;this._logger?.debug(`DefaultDecoderCore._decodeFirstContact(); first-contact stream`,{name:e.name,streamId:a,serial:r});let c={name:e.name,streamId:a,accumulated:s,codecHeaders:{...o},transportHeaders:{...e.transportHeaders},version:i??r,closed:!1};this._serialState.set(r,c);let l=this._hooks.buildStartEvents(c);return s.length>0&&l.push(...this._hooks.buildDeltaEvents(c,s)),n===`complete`&&l.push(...this._hooks.buildEndEvents(c,o)),(n===`complete`||n===`cancelled`)&&this._closeTracker(c),l}_decodeDelete(e){let t=e.serial;if(!t)return[];let n=this._serialState.get(t);return this._invokeOnStreamDelete(t,n),n&&this._closeTracker(n),this._logger?.debug(`DefaultDecoderCore._decodeDelete();`,{serial:t}),[]}},yt=(e,t={})=>new vt(e,t),bt=class{constructor(e){this._emitted=new Map,this._phases=e}ensurePhases(e,t){let n=this._getOrCreate(e),r=[];for(let e of this._phases)n.has(e.key)||(n.add(e.key),r.push(...e.build(t)));return r}markEmitted(e,t){this._getOrCreate(e).add(t)}resetPhase(e,t){this._emitted.get(e)?.delete(t)}clearScope(e){this._emitted.delete(e)}_getOrCreate(e){let t=this._emitted.get(e);return t||(t=new Set,this._emitted.set(e,t)),t}},xt=e=>new bt(e);function I(e,t){return{key:e,read:n=>n[e]??t,write:(t,n)=>{typeof n==`string`&&(t[e]=n)}}}function L(e,t){return{key:e,read:n=>De(n[e])??t,write:(t,n)=>{typeof n==`boolean`&&(t[e]=String(n))}}}var St=e=>({key:e,read:t=>we(t[e]),write:(t,n)=>{n!=null&&(t[e]=JSON.stringify(n))}}),Ct=(e,t,n)=>({key:e,read:r=>{let i=r[e];return t.find(e=>e===i)??n},write:(t,n)=>{typeof n==`string`&&(t[e]=n)}}),wt=`kind`,Tt=`-*`,Et=e=>e.endsWith(Tt)?t=>t.startsWith(e.slice(0,-1)):void 0,Dt=`partType`,Ot=(e,t)=>e[t],kt=(e,t,n,r)=>{let i={[wt]:t};for(let t of e)r&&!r.includes(t.key)||t.write(i,Ot(n,t.key));return i},At=(e,t)=>e.find(e=>!e.match&&e.partType===t)??e.find(e=>e.match?.(t)),jt=e=>{let t=new Map,n=[];for(let r of e)r.construct===`event`&&(r.match?n.push(r):t.set(r.type,r));return{discreteByType:t,wildcards:n}},R=(e,t)=>{let n={};for(let r of e){let e=r.read(t);e!==void 0&&(n[r.key]=e)}return n},Mt=e=>{let t=new Map;for(let n of e)t.set(n.kind,n);let n=(e,t)=>{if(e.wireOnly)return[];let n=R(e.fields,t.codecHeaders);e.data&&Object.assign(n,e.data.decode(t.data));let r=t.transportHeaders[`codec-message-id`]??``;return[{kind:e.kind,codecMessageId:r,payload:M(n)}]},r=(e,t)=>{let n=t.codecHeaders.partType??``,r=At(e.parts,n);if(!r)return[];let i=R(r.fields,t.codecHeaders);r.data&&Object.assign(i,r.data.decode(t.data)),i.type=n;let a=e.assemble(M(i),{codecHeaders:t.codecHeaders,transportHeaders:t.transportHeaders});return[{kind:e.kind,...a}]};return{decode:e=>{let i=t.get(e.codecKind);return i?i.construct===`event`?n(i,e):r(i,e):[]}}},Nt=(e,t)=>t?.transportHeaders===void 0?e:{...e,transportHeaders:{...e.transportHeaders,...t.transportHeaders}},Pt=(e,t)=>{let r=new Map;for(let t of e)r.set(t.kind,t);let i=async(e,r,i,a)=>{if(e.wireOnly){await i.publishDiscrete({name:t,data:``,codecHeaders:{[wt]:e.kind}},a.opts);return}let o=Ot(r,`payload`);if(typeof o!=`object`||!o)throw new n.ErrorInfo(`unable to encode input; event '${e.kind}' carries no payload object — declare it wireOnly or use an encode escape hatch`,O.InvalidArgument,400);let s=kt(e.fields,e.kind,o),c=e.data?e.data.encode(o):``;await i.publishDiscrete({name:t,data:c,codecHeaders:s},a.opts)},a=async(e,n,r,i)=>{let a=e.messageHeaders?.(n),o=[];for(let r of e.explode(n)){let n=e.partTypeOf(r),i=At(e.parts,n);if(!i)continue;let s=r,c={...kt(i.fields,e.kind,s),...a?.codecHeaders,[Dt]:n},l=i.data?i.data.encode(r):``;o.push(Nt({name:t,data:l,codecHeaders:c},a))}o.length===0&&o.push(Nt({name:t,data:``,codecHeaders:{[wt]:e.kind,...a?.codecHeaders}},a)),await r.publishDiscreteBatch(o,i.opts)};return{encode:async(e,t,o)=>{let s=r.get(e.kind);if(!s)throw new n.ErrorInfo(`unable to publish; unsupported input kind '${e.kind}'`,O.InvalidArgument,400);await(s.construct===`event`?i(s,e,t,o):a(s,e,t,o))}}},Ft=()=>{let e=(e,t)=>{let n=Et(e);return{partType:e,...n?{match:n}:{},fields:t.fields??[],data:t.data}};return{event:(e,t)=>{let n=t;return{construct:`event`,kind:e,fields:n?.fields??[],data:n?.data,wireOnly:n?.wireOnly??!1}},batch:(t,n)=>{let r=n.parts(e);return{construct:`batch`,kind:t,explode:n.explode,partTypeOf:n.partTypeOf,parts:r,messageHeaders:n.messageHeaders,assemble:n.assemble}}}},It=`type`,Lt=e=>{let{discreteByType:t,wildcards:n}=jt(e),r=new Map;for(let t of e)t.construct===`stream`&&r.set(t.kind,t);let i=(e,t)=>(t[It]=e,M(t)),a=(e,t,n)=>{let r=R(e.fields,n.codecHeaders);return e.data&&Object.assign(r,e.data.decode(n.data)),[i(t,r)]},o=e=>r.get(e.codecHeaders.kind??``);return{buildStart:e=>{let t=o(e);if(!t)return[];let n=R(t.fields,e.codecHeaders);return n[t.idField]=e.streamId,[i(t.start,n)]},buildDelta:(e,t)=>{let n=o(e);if(!n)return[];let r={[n.idField]:e.streamId,[n.deltaField]:t};return[i(n.delta,r)]},buildEnd:(e,t)=>{let n=o(e);if(!n)return[];if(n.decodeEnd)return n.decodeEnd({streamId:e.streamId,accumulated:e.accumulated,codecHeaders:e.codecHeaders,closingCodecHeaders:t});let r=R(n.fields,t);return r[n.idField]=e.streamId,[i(n.end,r)]},decodeDiscrete:(e,i,o,s)=>{let c={codecKind:e,codecHeaders:i,transportHeaders:o,data:s},l=t.get(e);if(l)return a(l,e,c);let u=r.get(e);if(u?.decodeDiscrete)return u.decodeDiscrete(c);let d=n.find(t=>t.match?.(e));return d?a(d,e,c):[]}}},Rt=(e,t)=>{let{discreteByType:r,wildcards:i}=jt(e),a=new Map;for(let t of e)t.construct===`stream`&&(a.set(t.start,{descriptor:t,phase:`start`}),a.set(t.delta,{descriptor:t,phase:`delta`}),a.set(t.end,{descriptor:t,phase:`end`}));return{encode:async(e,o,s)=>{let{type:c}=e,l=a.get(c);if(l){let{descriptor:n,phase:r}=l,i=(e,t)=>kt(n.fields,n.kind,e,t),a=Ot(e,n.idField);r===`start`?await o.startStream(a,{name:t,data:``,codecHeaders:i(e)},s.opts):r===`delta`?o.appendStream(a,Ot(e,n.deltaField)):n.onEnd?await n.onEnd(e,o,{h:i,name:t,messageId:s.messageId,opts:s.opts}):await o.closeStream(a,{name:t,data:``,codecHeaders:i(e)});return}let u=r.get(c)??i.find(e=>e.match?.(c));if(!u)throw new n.ErrorInfo(`unable to publish; unsupported event type '${c}'`,O.InvalidArgument,400);let d=(e,t)=>kt(u.fields,e.type,e,t);if(u.encode){await u.encode(e,o,{h:d,name:t,messageId:s.messageId,opts:s.opts});return}let f=u.data?u.data.encode(e):``;await o.publishDiscrete({name:t,data:f,codecHeaders:d(e),ephemeral:u.ephemeral?.(e)},s.opts)}}},zt=()=>({event:(e,t)=>({construct:`event`,type:e,fields:t?.fields??[],data:t?.data,ephemeral:t?.ephemeral,match:Et(e),encode:t?.encode}),stream:(e,t)=>({construct:`stream`,kind:e,...t})}),Bt=()=>({createUserMessage:e=>({kind:`user-message`,message:e}),createRegenerate:(e,t)=>({kind:`regenerate`,target:e,parent:t}),createToolResult:(e,t)=>({kind:`tool-result`,codecMessageId:e,payload:t}),createToolResultError:(e,t)=>({kind:`tool-result-error`,codecMessageId:e,payload:t}),createToolApprovalResponse:(e,t)=>({kind:`tool-approval-response`,codecMessageId:e,payload:t})}),Vt=class{constructor(e,t,n,r){this._core=_t(e,t),this._messageId=t.messageId,this._outputEncoder=n,this._inputEncoder=r}async publishInput(e,t){await this._inputEncoder.encode(e,this._core,{opts:t})}async publishOutput(e,t){await this._outputEncoder.encode(e,this._core,{messageId:this._messageId,opts:t})}async cancelStreams(){await this._core.cancelAllStreams()}async close(){await this._core.close()}},Ht=(e,t,n,r)=>{let i=e.codecHeaders??{},a=e.transportHeaders??{},o=i.kind??``;if(e.name===`ai-input`)return n.decode({codecKind:o,data:e.data,codecHeaders:i,transportHeaders:a});if(e.name===`ai-output`){let n=a[`run-id`]??``,s=r?.onDiscrete;return[...(s!==void 0&&Object.hasOwn(s,o)?s[o]:void 0)?.(n,{codecHeaders:i})??[],...t.decodeDiscrete(o,i,a,e.data)]}return[]},Ut=e=>e.name===de,Wt=(e,t,n)=>({buildStartEvents:t=>{if(!Ut(t))return[];let r=t.transportHeaders[`run-id`]??``;return[...n?.onStreamStart?.(r,t)??[],...e.buildStart(t)]},buildDeltaEvents:(t,n)=>Ut(t)?e.buildDelta(t,n):[],buildEndEvents:(t,n)=>Ut(t)?e.buildEnd(t,n):[],decodeDiscrete:r=>Ht(r,e,t,n)}),Gt=class{constructor(e){this._core=e}decode(e){let t=this._core.decode(e);return e.name===`ai-input`?{inputs:t,outputs:[]}:{inputs:[],outputs:t}}},z=(e,t,r)=>{let i=e.get(t);if(i!==void 0)throw new n.ErrorInfo(`unable to define codec; dispatch literal '${t}' is declared by both ${i} and ${r}`,O.InvalidArgument,400);e.set(t,r)},B=(e,t)=>{for(let r of e)if(r.key===`kind`||r.key===`partType`)throw new n.ErrorInfo(`unable to define codec; ${t} binds the driver-reserved header key '${r.key}'`,O.InvalidArgument,400)},Kt=(e,t)=>{let n=new Map,r=new Map;for(let t of e)if(t.construct===`event`){let e=`output event '${t.type}'`;z(n,t.type,e),z(r,t.type,e),B(t.fields,e)}else{let e=`output stream '${t.kind}'`;z(r,t.kind,e);for(let r of[t.start,t.delta,t.end])z(n,r,e);B(t.fields,e)}let i=new Map;for(let e of t){let t=`input ${e.construct} '${e.kind}'`;if(z(i,e.kind,t),e.construct===`event`)B(e.fields,t);else{let n=new Map;for(let r of e.parts){let e=`${t} part '${r.partType}'`;z(n,r.partType,e),B(r.fields,e)}}}},qt=()=>e=>{let{reducer:t,decodeLifecycle:n}=e,r=e.output(zt()),i=e.input(Ft());Kt(r,i);let a=Rt(r,de),o=Pt(i,fe),s=Lt(r),c=Mt(i);return{...e.adapterTag===void 0?{}:{adapterTag:e.adapterTag},init:t.init,fold:t.fold,getMessages:t.getMessages,createEncoder:(e,t={})=>new Vt(e,t,a,o),createDecoder:()=>new Gt(yt(Wt(s,c,n?.()),{})),...Bt()}},Jt=I(`id`),V=St(`providerMetadata`),H=I(`toolCallId`,``),U=I(`toolName`,``),W=L(`dynamic`),Yt=I(`title`),G=L(`providerExecuted`),Xt=I(`mediaType`,``),Zt=I(`sourceId`,``),K=I(`messageId`),Qt=L(`approved`,!1),$t=I(`reason`),en=Ct(`finishReason`,[`stop`,`length`,`content-filter`,`tool-calls`,`error`,`other`],`stop`),tn=()=>xt([{key:`start`,build:e=>[M({type:`start`,messageId:e.messageId})]},{key:`start-step`,build:()=>[{type:`start-step`}]}]),nn=()=>{let e=tn();return{onDiscrete:{start:t=>(e.markEmitted(t,`start`),[]),"start-step":t=>(e.markEmitted(t,`start-step`),[]),"finish-step":t=>(e.resetPhase(t,`start-step`),[]),finish:t=>(e.clearScope(t),[]),error:t=>(e.clearScope(t),[]),abort:t=>(e.clearScope(t),[]),"tool-input":(t,n)=>e.ensurePhases(t,{messageId:K.read(n.codecHeaders)})},onStreamStart:(t,n)=>e.ensurePhases(t,{messageId:K.read(n.codecHeaders)})}},rn=e=>typeof e==`object`&&!!e,an=(e,t)=>rn(e)&&(e[t]===void 0||typeof e[t]==`string`),q=e=>typeof e==`string`?e:``,on=e=>an(e,`errorText`),sn=e=>rn(e),cn=e=>an(e,`errorText`),ln=e=>an(e,`message`),un=[{type:`text`,text:``}],dn=e=>e.type===`text`||e.type===`file`||e.type.startsWith(`data-`),fn=({event:e,batch:t})=>[e(`tool-result`,{fields:[H],data:{encode:e=>({output:e.output}),decode:e=>({output:sn(e)?e.output:void 0})}}),e(`tool-result-error`,{fields:[H],data:{encode:e=>({message:e.message}),decode:e=>({message:ln(e)?e.message??``:``})}}),e(`tool-approval-response`,{fields:[H,Qt,$t]}),e(`regenerate`,{wireOnly:!0}),t(`user-message`,{explode:e=>{let t=e.message.parts.filter(e=>dn(e));return t.length>0?t:un},partTypeOf:e=>e.type,parts:e=>[e(`text`,{data:{encode:e=>e.text,decode:e=>({text:q(e)})}}),e(`file`,{fields:[Xt],data:{encode:e=>e.url,decode:e=>({url:q(e)})}}),e(`data-*`,{fields:[Jt],data:{encode:e=>e.data,decode:e=>({data:e})}})],messageHeaders:e=>{let t={};return K.write(t,e.message.id),{codecHeaders:t,transportHeaders:{[ae]:e.message.role}}},assemble:(e,{codecHeaders:t,transportHeaders:n})=>{let r=n.role??`user`;return{message:{id:K.read(t)??``,role:r,parts:[e]}}}})],pn=({event:e,stream:t})=>[t(`text`,{start:`text-start`,delta:`text-delta`,end:`text-end`,idField:`id`,deltaField:`delta`,fields:[Jt,V]}),t(`reasoning`,{start:`reasoning-start`,delta:`reasoning-delta`,end:`reasoning-end`,idField:`id`,deltaField:`delta`,fields:[Jt,V]}),t(`tool-input`,{start:`tool-input-start`,delta:`tool-input-delta`,end:`tool-input-available`,idField:`toolCallId`,deltaField:`inputTextDelta`,fields:[H,U,W,Yt,G,V],onEnd:async(e,t,{h:r,name:i})=>{try{await t.closeStream(e.toolCallId,{name:i,data:``,codecHeaders:r(e,[`toolCallId`,`toolName`,`providerMetadata`])})}catch(a){if(!(a instanceof n.ErrorInfo&&pe(a,O.InvalidArgument)))throw a;await t.publishDiscrete({name:i,data:e.input,codecHeaders:r(e)})}},decodeEnd:({streamId:e,accumulated:t,codecHeaders:n,closingCodecHeaders:r})=>[M({type:`tool-input-available`,toolCallId:e,toolName:U.read(r)||U.read(n),input:Te(t),providerMetadata:V.read(r)})],decodeDiscrete:({codecHeaders:e,data:t})=>[M({type:`tool-input-start`,toolCallId:H.read(e),toolName:U.read(e),dynamic:W.read(e),title:Yt.read(e),providerExecuted:G.read(e),providerMetadata:V.read(e)}),M({type:`tool-input-available`,toolCallId:H.read(e),toolName:U.read(e),input:t,providerMetadata:V.read(e)})]}),e(`start`,{fields:[K,St(`messageMetadata`)],encode:async(e,t,{h:n,name:r,messageId:i,opts:a})=>{await t.publishDiscrete({name:r,data:``,codecHeaders:n({...e,messageId:e.messageId??i})},a)}}),e(`start-step`),e(`finish-step`),e(`finish`,{fields:[en,St(`messageMetadata`)]}),e(`message-metadata`,{fields:[St(`messageMetadata`)]}),e(`error`,{data:{encode:e=>e.errorText,decode:e=>({errorText:q(e)})}}),e(`abort`,{data:{encode:e=>e.reason??``,decode:e=>typeof e==`string`&&e?{reason:e}:{}}}),e(`file`,{fields:[Xt,V],data:{encode:e=>e.url,decode:e=>({url:q(e)})}}),e(`source-url`,{fields:[Zt,Yt,V],data:{encode:e=>e.url,decode:e=>({url:q(e)})}}),e(`source-document`,{fields:[Zt,Xt,I(`title`,``),I(`filename`),V]}),e(`tool-input-error`,{fields:[H,U,W,Yt,G,V],data:{encode:e=>({errorText:e.errorText,input:e.input}),decode:e=>on(e)?{errorText:e.errorText??``,input:e.input}:{errorText:``}}}),e(`tool-output-available`,{fields:[H,W,G,L(`preliminary`)],data:{encode:e=>({output:e.output}),decode:e=>sn(e)?{output:e.output}:{}}}),e(`tool-output-error`,{fields:[H,W,G],data:{encode:e=>({errorText:e.errorText}),decode:e=>({errorText:cn(e)?e.errorText??``:``})}}),e(`tool-approval-request`,{fields:[H,I(`approvalId`,``)]}),e(`tool-output-denied`,{fields:[H]}),e(`data-*`,{fields:[Jt,L(`transient`)],ephemeral:e=>e.transient===!0,data:{encode:e=>e.data,decode:e=>({data:e})}})],mn=()=>({messages:[],trackers:new Map,pendingToolResolutions:[]}),J=(e,t)=>{let n=e.messages.find(e=>e.codecMessageId===t);return n||(n={codecMessageId:t,message:{id:t,role:`assistant`,parts:[]}},e.messages.push(n)),n.message},hn=(e,t)=>{let n=e.trackers.get(t);return n||(n={text:new Map,reasoning:new Map,tools:new Map},e.trackers.set(t,n)),n},Y=(e,t,n)=>{let r=t.tools.get(n);if(!r)return;let i=e.parts[r.partIndex];if(i?.type===`dynamic-tool`)return{tracker:r,part:i}},gn=(e,t,n)=>{let r=J(e,n);switch(t.type){case`file`:return r.parts.push({type:`file`,mediaType:t.mediaType,url:t.url}),e;case`source-url`:return r.parts.push(M({type:`source-url`,sourceId:t.sourceId,url:t.url,title:t.title})),e;case`source-document`:return r.parts.push(M({type:`source-document`,sourceId:t.sourceId,mediaType:t.mediaType,title:t.title,filename:t.filename})),e}},_n=(e,t,n)=>{if(t.transient)return e;let r=J(e,n),i=M({type:t.type,id:t.id,data:t.data});if(t.id!==void 0){let n=r.parts.findIndex(e=>e.type===t.type&&`id`in e&&e.id===t.id);if(n!==-1)return r.parts[n]=i,e}return r.parts.push(i),e},X=e=>M({type:`dynamic-tool`,toolCallId:e.toolCallId,toolName:e.toolName,title:e.title,providerExecuted:e.providerExecuted}),Z=(e,t)=>{let n=X(e);switch(t.type){case`tool-output-available`:return M({...n,state:`output-available`,input:e.input,output:t.output,preliminary:t.preliminary});case`tool-output-error`:return{...n,state:`output-error`,input:e.input,errorText:t.errorText};case`tool-output-denied`:return{...n,state:`output-denied`,input:e.input,approval:{id:``,approved:!1}};case`tool-approval-request`:return{...n,state:`approval-requested`,input:e.input,approval:{id:t.approvalId}}}},vn=(e,t,n)=>{let r=n.messageId;if(r===void 0)return e.messages.push({codecMessageId:t.id,message:t}),e;let i=e.messages.find(e=>e.codecMessageId===r);return i===void 0?e.messages.push({codecMessageId:r,message:t}):i.message.parts.push(...t.parts),e},yn=(e,t)=>{let{toolCallId:n,output:r}=t.payload;return Sn(e,t.codecMessageId,n,{kind:`tool-result`,output:r})},bn=(e,t)=>{let{toolCallId:n,message:r}=t.payload;return Sn(e,t.codecMessageId,n,{kind:`tool-result-error`,message:r})},xn=(e,t)=>{let{toolCallId:n,approved:r,reason:i}=t.payload;return Sn(e,t.codecMessageId,n,{kind:`tool-approval-response`,approved:r,...i===void 0?{}:{reason:i}})},Sn=(e,t,n,r)=>{let i=Tn(e,t,n);return i?Cn(i,n,r):e.pendingToolResolutions.push({targetCodecMessageId:t,toolCallId:n,resolution:r}),e},Cn=(e,t,n)=>{switch(n.kind){case`tool-result`:e.message.parts[e.tracker.partIndex]=Z(e.part,{type:`tool-output-available`,toolCallId:t,output:n.output});break;case`tool-result-error`:e.message.parts[e.tracker.partIndex]=Z(e.part,{type:`tool-output-error`,toolCallId:t,errorText:n.message});break;case`tool-approval-response`:e.message.parts[e.tracker.partIndex]=En(e.part,n.approved,n.reason);break}},wn=e=>{let t=[];for(let n of e.pendingToolResolutions){let r=Tn(e,n.targetCodecMessageId,n.toolCallId);if(!r){t.push(n);continue}Cn(r,n.toolCallId,n.resolution)}e.pendingToolResolutions=t},Tn=(e,t,n)=>{let r=e.messages.find(e=>e.codecMessageId===t);if(!r)return;let i=hn(e,t),a=Y(r.message,i,n);if(a)return{message:r.message,tracker:a.tracker,part:a.part}},En=(e,t,n)=>t?{...X(e),state:`approval-responded`,input:`input`in e?e.input:void 0,approval:{id:`approval`in e&&e.approval?e.approval.id:``,approved:!0,...n===void 0?{}:{reason:n}}}:Z(e,{type:`tool-output-denied`,toolCallId:e.toolCallId,...n===void 0?{}:{reason:n}}),Dn=(e,t,n)=>{if(n===void 0)return;let r=e.messages.find(e=>e.codecMessageId===t)?.message;r&&(r.metadata=n)},On=(e,t,n)=>{switch(t.type){case`start`:{let r=J(e,n);return t.messageId!==void 0&&(r.id=t.messageId),t.messageMetadata!==void 0&&(r.metadata=t.messageMetadata),e}case`start-step`:return J(e,n).parts.push({type:`step-start`}),e;case`finish-step`:{let t=e.trackers.get(n);return t&&(t.text.clear(),t.reasoning.clear()),e}case`finish`:return Dn(e,n,t.messageMetadata),e;case`abort`:case`error`:return e;case`message-metadata`:return Dn(e,n,t.messageMetadata),e}},kn=(e,t,n)=>{let r=J(e,n),i=hn(e,n),a=t.type.startsWith(`text-`),o=a?`text`:`reasoning`,s=a?i.text:i.reasoning;switch(t.type){case`text-start`:case`reasoning-start`:return s.set(t.id,r.parts.length),r.parts.push({type:o,text:``}),e;case`text-delta`:case`reasoning-delta`:{let n=s.get(t.id);if(n===void 0)return e;let i=r.parts[n];return i?.type===o&&(i.text+=t.delta),e}case`text-end`:case`reasoning-end`:return s.delete(t.id),e}},An=(e,t,n)=>{let r=J(e,n),i=hn(e,n);switch(t.type){case`tool-input-start`:{let n=r.parts.length;return r.parts.push({...X(t),state:`input-streaming`,input:void 0}),i.tools.set(t.toolCallId,{partIndex:n,inputText:``}),e}case`tool-input-delta`:{let n=i.tools.get(t.toolCallId);if(!n)return e;n.inputText+=t.inputTextDelta;let a=we(n.inputText),o=Y(r,i,t.toolCallId);return o&&(r.parts[o.tracker.partIndex]={...X(o.part),state:`input-streaming`,input:a}),e}case`tool-input-available`:{let n=Y(r,i,t.toolCallId);return n&&(r.parts[n.tracker.partIndex]={...X(n.part),state:`input-available`,input:t.input}),e}case`tool-input-error`:{let n=Y(r,i,t.toolCallId);if(n)r.parts[n.tracker.partIndex]={...X(n.part),state:`output-error`,input:t.input,errorText:t.errorText};else{let e=r.parts.length;r.parts.push({...X(t),state:`output-error`,input:t.input,errorText:t.errorText}),i.tools.set(t.toolCallId,{partIndex:e,inputText:``})}return e}}},jn=(e,t)=>{for(let n of e.messages){let r=e.trackers.get(n.codecMessageId);if(!r)continue;let i=Y(n.message,r,t);if(i)return{message:n.message,tracker:i.tracker,part:i.part}}},Mn=(e,t,n)=>{if(t.type===`tool-output-available`||t.type===`tool-output-error`){let n=jn(e,t.toolCallId);return n&&(n.message.parts[n.tracker.partIndex]=Z(n.part,t)),e}let r=J(e,n),i=Y(r,hn(e,n),t.toolCallId);return i&&(r.parts[i.tracker.partIndex]=Z(i.part,t)),e},Nn=(e,t,n)=>{if(t.direction===`input`){let r=t.event;switch(r.kind){case`user-message`:vn(e,r.message,n);break;case`regenerate`:break;case`tool-result`:yn(e,r);break;case`tool-result-error`:bn(e,r);break;case`tool-approval-response`:xn(e,r);break}}else Pn(e,t.event,n);return e.pendingToolResolutions.length>0&&wn(e),e},Pn=(e,t,n)=>{let r=n.messageId;if(r===void 0)return e;switch(t.type){case`start`:case`start-step`:case`finish-step`:case`finish`:case`abort`:case`error`:case`message-metadata`:return On(e,t,r);case`text-start`:case`text-delta`:case`text-end`:case`reasoning-start`:case`reasoning-delta`:case`reasoning-end`:return kn(e,t,r);case`tool-input-start`:case`tool-input-delta`:case`tool-input-available`:case`tool-input-error`:return An(e,t,r);case`tool-output-available`:case`tool-output-error`:case`tool-output-denied`:case`tool-approval-request`:return Mn(e,t,r);case`file`:case`source-url`:case`source-document`:return gn(e,t,r);default:return t.type.startsWith(`data-`)?_n(e,t,r):e}},Q=qt()({adapterTag:`vercel-ai-sdk-ui-message`,reducer:{init:mn,fold:Nn,getMessages:e=>e.messages},output:pn,input:fn,decodeLifecycle:nn}),$=e=>(e.type===`dynamic-tool`||e.type.startsWith(`tool-`))&&`toolCallId`in e&&`state`in e,Fn=e=>e.type===`finish`||e.type===`error`||e.type===`abort`,In=(e,t,r)=>{let i={},a=[],o=new ReadableStream({start:e=>{i.controller=e},cancel:()=>{u()}}),{controller:s}=i;if(!s)throw new n.ErrorInfo(`unable to create run stream; ReadableStream start() was not called synchronously`,O.SessionSubscriptionError,500);let c;t.then(e=>{c=e},()=>{});let l=!1,u=()=>{for(let e of a)e();a.length=0},d=e=>{if(!l){l=!0;try{e()}catch{}u()}},f=()=>{d(()=>{s.close()})},p=e=>{d(()=>{s.error(e)})};return a.push(e.tree.on(`output`,e=>{if(e.inputCodecMessageId===r)for(let t of e.events){try{s.enqueue(t)}catch{f();return}if(Fn(t)){f();return}}}),e.tree.on(`run`,e=>{e.type===`end`&&c!==void 0&&e.runId===c&&f()}),e.on(`error`,e=>{p(e)})),{stream:o,close:f}},Ln=`/api/chat`,Rn=e=>{let t,n=new Promise(e=>{t=e}),r=new TransformStream({flush:()=>{t()}}),i=new AbortController;return e.pipeTo(r.writable,{signal:i.signal,preventCancel:!0}).catch(()=>{t()}),{stream:r.readable,done:n,fail:e=>{i.abort(e)}}},zn=e=>e.role===`assistant`&&e.parts.some(e=>$(e)&&(e.state===`input-streaming`||e.state===`input-available`||e.state===`approval-requested`)),Bn=new Set([`input-streaming`,`input-available`,`approval-requested`]),Vn=(e,t)=>{let n=[];for(let r of t){if(r.role!==`assistant`)continue;let t=e.find(e=>e.message.id===r.id);if(!t)continue;let{codecMessageId:i,message:a}=t;for(let e of r.parts){if(!$(e))continue;let t=a.parts.find(t=>$(t)&&t.toolCallId===e.toolCallId);if(e.state===`approval-responded`&&(!t||t.state===`approval-requested`)){n.push(Q.createToolApprovalResponse(i,{toolCallId:e.toolCallId,approved:e.approval.approved,...e.approval.reason===void 0?{}:{reason:e.approval.reason}}));continue}e.state!==`output-available`&&e.state!==`output-error`||t&&!Bn.has(t.state)||(e.state===`output-available`?n.push(Q.createToolResult(i,{toolCallId:e.toolCallId,output:e.output})):n.push(Q.createToolResultError(i,{toolCallId:e.toolCallId,message:e.errorText})))}}return n},Hn=(e,t)=>{let n=e.findIndex(e=>e.message.id===t);if(!(n<=0))return e[n-1]?.codecMessageId},Un=(e,t)=>{let r=t?.api??Ln,i=t?.fetch??globalThis.fetch.bind(globalThis),a=t?.credentials,o=!1,s=new ge(ye({logLevel:_e.Silent})),c=e=>{o=e,s.emit(`streaming`,e)};return{sendMessages:async o=>{let{messages:s,abortSignal:l,trigger:u,messageId:d}=o,f=e.view.getMessages(),p=new Map(f.map(e=>[e.message.id,e.codecMessageId])),m=e=>p.get(e),h=s.at(-1),g=!!h&&p.has(h.id),_=u===`submit-message`&&h?.role===`assistant`&&g,v=u===`submit-message`&&!d&&h?.role===`user`?s.at(-2):void 0,y=v&&zn(v)&&p.has(v.id)?v.id:void 0,b,ee;if(u===`regenerate-message`||_)b=[],ee=s;else{if(s.length===0)throw new n.ErrorInfo(`unable to send messages; messages array is empty for submit-message trigger`,O.InvalidArgument,400);b=[s.at(-1)],ee=y?s.slice(0,-2):s.slice(0,-1)}let x,S;u===`submit-message`&&d&&!_?(x=m(d),S=Hn(f,d)):y&&(x=m(y),S=Hn(f,y));let te,ne;if(t?.prepareSendMessagesRequest){let e=t.prepareSendMessagesRequest({chatId:o.chatId,trigger:u,messageId:d,history:ee,messages:b,forkOf:x,parent:S});te=e.body??{},ne=e.headers}else te={},ne=void 0;let C={};if(x!==void 0&&(C.forkOf=x),S!==void 0&&(C.parent=S),_){let t=m(h.id),n=t===void 0?void 0:e.view.runOf(t);n&&(C.runId=n.runId)}let w;if(_){let t=Vn(f,s);w=await e.view.send(t,C)}else if(u===`regenerate-message`){if(d===void 0)throw new n.ErrorInfo(`unable to regenerate; regenerate-message trigger fired without messageId`,O.InvalidArgument,400);let t=m(d);if(t===void 0)throw new n.ErrorInfo(`unable to regenerate; message not visible: ${d}`,O.InvalidArgument,400);w=await e.view.regenerate(t,C)}else{let t=b.map(e=>Q.createUserMessage(e));w=await e.view.send(t,C)}let T=In(e,w.runId,w.inputCodecMessageId);if(l){let e=()=>{w.cancel(),T.close()};l.aborted?e():l.addEventListener(`abort`,e,{once:!0})}let{stream:E,done:re,fail:ie}=Rn(T.stream);c(!0),re.then(()=>{c(!1)});let ae={...te,...w.toInvocation().toJSON()};return i(r,{method:`POST`,headers:{"Content-Type":`application/json`,...ne},body:JSON.stringify(ae),...a?{credentials:a}:{}}).then(e=>{e.ok||ie(new n.ErrorInfo(`unable to send; HTTP POST to ${r} returned ${String(e.status)} ${e.statusText}`,O.SessionSendFailed,e.status))}).catch(e=>{ie(new n.ErrorInfo(`unable to send; HTTP POST to ${r} failed: ${k(e)}`,O.SessionSendFailed,500,A(e)))}),E},reconnectToStream:()=>Promise.resolve(null),close:async()=>e.close(),get streaming(){return o},onStreamingChange:e=>(s.on(`streaming`,e),()=>{s.off(`streaming`,e)})}},Wn=(0,t.createContext)({nearest:void 0,providers:{}}),{ClientSessionProvider:Gn,useAblyMessages:Kn,useClientSession:qn,useCreateView:Jn,useTree:Yn,useView:Xn}=ht(),Zn=({channelName:e,chatTransportOptions:n,children:r})=>{let{session:a,sessionError:o}=qn(),{providers:s}=(0,t.useContext)(Wn),c=(0,t.useMemo)(()=>Un(a,n),[a,n]),l=(0,t.useMemo)(()=>{let t={session:a,sessionError:o,chatTransport:c};return{nearest:t,providers:{...s,[e]:t}}},[e,s,c,a,o]);return(0,i.jsx)(Wn.Provider,{value:l,children:r})},Qn=({api:e,credentials:n,fetch:r,chatOptions:a,children:o,...s})=>{let c=(0,t.useMemo)(()=>({...a,...e!==void 0&&{api:e},...n!==void 0&&{credentials:n},...r!==void 0&&{fetch:r}}),[e,n,r,a]);return(0,i.jsx)(Gn,{...s,codec:Q,children:(0,i.jsx)(Zn,{channelName:s.channelName,chatTransportOptions:c,children:o})})},$n={sendMessages:()=>{throw new n.ErrorInfo(`unable to send messages; hook is skipped`,O.InvalidArgument,400)},reconnectToStream:()=>{throw new n.ErrorInfo(`unable to reconnect to stream; hook is skipped`,O.InvalidArgument,400)},close:()=>{throw new n.ErrorInfo(`unable to close; hook is skipped`,O.InvalidArgument,400)},get streaming(){throw new n.ErrorInfo(`unable to access streaming; hook is skipped`,O.InvalidArgument,400)},onStreamingChange:()=>{throw new n.ErrorInfo(`unable to subscribe to streaming changes; hook is skipped`,O.InvalidArgument,400)}},er=({channelName:e,skip:r}={})=>{let{nearest:i,providers:a}=(0,t.useContext)(Wn);if(r)return{session:F(),chatTransport:$n};if(e!==void 0){let t=a[e];return t?{session:t.session,chatTransport:t.chatTransport,sessionError:t.sessionError}:{session:F(),chatTransport:$n,sessionError:new n.ErrorInfo(`unable to use client session; no ClientSessionProvider found for channelName "${e}"`,O.BadRequest,400),chatTransportError:new n.ErrorInfo(`unable to use chat transport; no ChatTransportProvider found for channelName "${e}"`,O.BadRequest,400)}}return i?{session:i.session,chatTransport:i.chatTransport,sessionError:i.sessionError}:{session:F(),chatTransport:$n,sessionError:new n.ErrorInfo(`unable to use session; no ClientSessionProvider found in the tree`,O.BadRequest,400),chatTransportError:new n.ErrorInfo(`unable to use chat transport; no ChatTransportProvider found in the tree`,O.BadRequest,400)}},tr=new Set([`output-available`,`output-error`,`approval-responded`,`output-denied`]),nr=(e,t)=>{let n=new Map;for(let e of t.parts)$(e)&&n.set(e.toolCallId,e);if(n.size===0)return e;let r=e.parts.map(e=>{if(!$(e)||tr.has(e.state))return e;let t=n.get(e.toolCallId);return!t||!tr.has(t.state)?e:{...t,type:e.type}});return r.some((t,n)=>t!==e.parts[n])?{...e,parts:r}:e},rr=(e,t)=>{if(t.length===0)return e;let n=new Map(t.map(e=>[e.id,e]));return e.map(e=>{if(e.role!==`assistant`)return e;let t=n.get(e.id);return t?nr(e,t):e})};e.ChatTransportProvider=Qn,e.ClientSessionProvider=Gn,e.useAblyMessages=Kn,e.useChatTransport=er,e.useClientSession=qn,e.useCreateView=Jn,e.useMessageSync=({setMessages:e,channelName:n,skip:r})=>{let{session:i,chatTransport:a,chatTransportError:o}=er({channelName:n,skip:r}),s=!r&&!o,c=s?i.view:void 0,l=s?a:void 0,[u,d]=(0,t.useState)(!1);(0,t.useEffect)(()=>{if(!l){d(!1);return}return d(l.streaming),l.onStreamingChange(d)},[l]),(0,t.useEffect)(()=>{if(!c||u)return;let t=()=>{e(e=>rr(c.getMessages().map(e=>e.message),e))};return t(),c.on(`update`,t)},[c,e,u])},e.useTree=Yn,e.useView=Xn});
46
2
  //# sourceMappingURL=ably-ai-transport-vercel-react.umd.cjs.map