pinecall-runtime 0.1.6__py3-none-any.whl

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 (328) hide show
  1. pinecall/__init__.py +0 -0
  2. pinecall/channels/__init__.py +0 -0
  3. pinecall/channels/_chooser.py +45 -0
  4. pinecall/channels/offers.py +219 -0
  5. pinecall/channels/rooms.py +176 -0
  6. pinecall/channels/routes.py +275 -0
  7. pinecall/channels/telephony/__init__.py +0 -0
  8. pinecall/channels/telephony/_twilio.py +349 -0
  9. pinecall/channels/telephony/carrier.py +229 -0
  10. pinecall/channels/telephony/carrier_catalog.py +92 -0
  11. pinecall/channels/telephony/carriers.csv +41 -0
  12. pinecall/channels/telephony/dialing.py +419 -0
  13. pinecall/channels/telephony/firewall.py +58 -0
  14. pinecall/channels/telephony/hand_over.py +78 -0
  15. pinecall/channels/telephony/number_path.py +176 -0
  16. pinecall/channels/telephony/numbers.py +530 -0
  17. pinecall/channels/telephony/origination.py +77 -0
  18. pinecall/channels/telephony/sip.py +448 -0
  19. pinecall/channels/whatsapp.py +413 -0
  20. pinecall/cli/__init__.py +0 -0
  21. pinecall/cli/_archive.py +85 -0
  22. pinecall/cli/_drift.py +38 -0
  23. pinecall/cli/_facts.py +67 -0
  24. pinecall/cli/_load.py +433 -0
  25. pinecall/cli/_operator.py +626 -0
  26. pinecall/cli/_sessions.py +164 -0
  27. pinecall/cli/_traceback.py +95 -0
  28. pinecall/cli/_usage.py +34 -0
  29. pinecall/cli/main.py +521 -0
  30. pinecall/domain/__init__.py +0 -0
  31. pinecall/domain/agent.py +446 -0
  32. pinecall/domain/call.py +152 -0
  33. pinecall/domain/country_codes.py +32 -0
  34. pinecall/domain/errors.py +151 -0
  35. pinecall/domain/names.py +115 -0
  36. pinecall/domain/org.py +120 -0
  37. pinecall/domain/person.py +208 -0
  38. pinecall/domain/scope.py +21 -0
  39. pinecall/evals/__init__.py +0 -0
  40. pinecall/evals/_evidence.py +158 -0
  41. pinecall/evals/calibration.py +112 -0
  42. pinecall/evals/callers.py +160 -0
  43. pinecall/evals/case.py +327 -0
  44. pinecall/evals/checks.py +437 -0
  45. pinecall/evals/compliance.py +197 -0
  46. pinecall/evals/dataset.py +451 -0
  47. pinecall/evals/goldens.py +331 -0
  48. pinecall/evals/judges.py +525 -0
  49. pinecall/evals/runs.py +252 -0
  50. pinecall/evals/spoken.py +356 -0
  51. pinecall/fleet/__init__.py +0 -0
  52. pinecall/fleet/client.py +569 -0
  53. pinecall/fleet/demand.py +51 -0
  54. pinecall/fleet/heartbeat.py +194 -0
  55. pinecall/fleet/measures.py +157 -0
  56. pinecall/fleet/roster.py +232 -0
  57. pinecall/fleet/worlds.py +44 -0
  58. pinecall/gateway/__init__.py +0 -0
  59. pinecall/gateway/_call_setup.py +53 -0
  60. pinecall/gateway/_deps.py +556 -0
  61. pinecall/gateway/_gateway.py +75 -0
  62. pinecall/gateway/_served.py +396 -0
  63. pinecall/gateway/_sockets.py +444 -0
  64. pinecall/gateway/_streams.py +83 -0
  65. pinecall/gateway/_text_calls.py +182 -0
  66. pinecall/gateway/api/__init__.py +0 -0
  67. pinecall/gateway/api/accounts.py +324 -0
  68. pinecall/gateway/api/agents.py +150 -0
  69. pinecall/gateway/api/apps.py +478 -0
  70. pinecall/gateway/api/box.py +658 -0
  71. pinecall/gateway/api/calibration.py +58 -0
  72. pinecall/gateway/api/callbacks.py +105 -0
  73. pinecall/gateway/api/calls.py +655 -0
  74. pinecall/gateway/api/chat.py +223 -0
  75. pinecall/gateway/api/dataset.py +163 -0
  76. pinecall/gateway/api/desk.py +113 -0
  77. pinecall/gateway/api/entries.py +77 -0
  78. pinecall/gateway/api/evals.py +647 -0
  79. pinecall/gateway/api/fleet.py +73 -0
  80. pinecall/gateway/api/hosting.py +241 -0
  81. pinecall/gateway/api/judges.py +97 -0
  82. pinecall/gateway/api/keys.py +110 -0
  83. pinecall/gateway/api/line.py +142 -0
  84. pinecall/gateway/api/members.py +197 -0
  85. pinecall/gateway/api/metrics.py +226 -0
  86. pinecall/gateway/api/numbers.py +476 -0
  87. pinecall/gateway/api/ops.py +428 -0
  88. pinecall/gateway/api/org.py +283 -0
  89. pinecall/gateway/api/personas.py +157 -0
  90. pinecall/gateway/api/pipeline.py +206 -0
  91. pinecall/gateway/api/prompts.py +50 -0
  92. pinecall/gateway/api/providers.py +240 -0
  93. pinecall/gateway/api/recordings.py +89 -0
  94. pinecall/gateway/api/relay.py +169 -0
  95. pinecall/gateway/api/retrieval.py +403 -0
  96. pinecall/gateway/api/runner.py +109 -0
  97. pinecall/gateway/api/sessions.py +102 -0
  98. pinecall/gateway/api/settings.py +463 -0
  99. pinecall/gateway/api/signup.py +164 -0
  100. pinecall/gateway/api/sso_login.py +168 -0
  101. pinecall/gateway/api/threads.py +187 -0
  102. pinecall/gateway/api/usage.py +303 -0
  103. pinecall/gateway/api/visitors.py +222 -0
  104. pinecall/gateway/api/whatsapp.py +48 -0
  105. pinecall/gateway/api/widget.py +49 -0
  106. pinecall/gateway/app.py +504 -0
  107. pinecall/gateway/calls/__init__.py +0 -0
  108. pinecall/gateway/calls/binding.py +63 -0
  109. pinecall/gateway/calls/commands.py +18 -0
  110. pinecall/gateway/calls/inbox.py +100 -0
  111. pinecall/gateway/calls/known.py +23 -0
  112. pinecall/gateway/calls/owners.py +87 -0
  113. pinecall/gateway/calls/pump.py +33 -0
  114. pinecall/gateway/calls/serving.py +118 -0
  115. pinecall/gateway/calls/threads.py +367 -0
  116. pinecall/gateway/dispatching/__init__.py +0 -0
  117. pinecall/gateway/dispatching/arrivals.py +58 -0
  118. pinecall/gateway/dispatching/sweep.py +43 -0
  119. pinecall/gateway/ending/__init__.py +0 -0
  120. pinecall/gateway/ending/reaper.py +160 -0
  121. pinecall/gateway/ending/seal.py +312 -0
  122. pinecall/gateway/ending/stranded.py +117 -0
  123. pinecall/log/__init__.py +0 -0
  124. pinecall/log/_histogram.py +74 -0
  125. pinecall/log/_relay.py +259 -0
  126. pinecall/log/_writer.py +454 -0
  127. pinecall/log/days.py +154 -0
  128. pinecall/log/drift.py +550 -0
  129. pinecall/log/facts.py +358 -0
  130. pinecall/log/inbox.py +169 -0
  131. pinecall/log/lists.py +155 -0
  132. pinecall/log/logs.py +581 -0
  133. pinecall/log/openings.py +71 -0
  134. pinecall/log/private.py +135 -0
  135. pinecall/log/queries.py +229 -0
  136. pinecall/log/readers.py +207 -0
  137. pinecall/log/reduce.py +659 -0
  138. pinecall/log/refold.py +217 -0
  139. pinecall/log/store.py +370 -0
  140. pinecall/log/usage.py +242 -0
  141. pinecall/postgres/__init__.py +0 -0
  142. pinecall/postgres/migrate.py +202 -0
  143. pinecall/postgres/migrations/0001_schema.sql +591 -0
  144. pinecall/postgres/migrations/0002_worlds.sql +15 -0
  145. pinecall/postgres/migrations/0003_lent.sql +4 -0
  146. pinecall/postgres/migrations/0004_carriers.sql +23 -0
  147. pinecall/postgres/migrations/0005_retrieved_only.sql +11 -0
  148. pinecall/postgres/migrations/0006_persona_agents.sql +9 -0
  149. pinecall/postgres/migrations/0007_money_in_dollars.sql +27 -0
  150. pinecall/postgres/migrations/0008_lexicon_per_agent.sql +27 -0
  151. pinecall/postgres/migrations/0009_personas_per_agent.sql +31 -0
  152. pinecall/postgres/migrations/0010_agent_judges.sql +12 -0
  153. pinecall/postgres/migrations/0011_erasure.sql +32 -0
  154. pinecall/postgres/migrations/0012_org_policy.sql +10 -0
  155. pinecall/postgres/migrations/0013_calling_rules.sql +12 -0
  156. pinecall/postgres/migrations/0014_consents.sql +24 -0
  157. pinecall/postgres/migrations/0015_disclosure.sql +7 -0
  158. pinecall/postgres/migrations/0016_call_records.sql +21 -0
  159. pinecall/postgres/migrations/0017_reads.sql +17 -0
  160. pinecall/postgres/migrations/0018_hosting.sql +41 -0
  161. pinecall/postgres/migrations/0019_hosted_state.sql +10 -0
  162. pinecall/postgres/migrations/0020_written_once.sql +7 -0
  163. pinecall/postgres/migrations/0021_hosted_running.sql +21 -0
  164. pinecall/postgres/migrations/0022_sealed.sql +39 -0
  165. pinecall/postgres/migrations/0023_usage_totals.sql +158 -0
  166. pinecall/postgres/migrations/0024_log_key_by_day.sql +8 -0
  167. pinecall/postgres/migrations/0025_log_before_the_days.sql +15 -0
  168. pinecall/postgres/migrations/0026_log_before_the_days_validated.sql +4 -0
  169. pinecall/postgres/migrations/0027_log_by_day.sql +96 -0
  170. pinecall/postgres/migrations/0030_whatsapp_seen.sql +17 -0
  171. pinecall/postgres/migrations/0040_reads_widened.sql +15 -0
  172. pinecall/postgres/migrations/0060_drift.sql +62 -0
  173. pinecall/postgres/migrations/0061_canaries.sql +24 -0
  174. pinecall/postgres/migrations/0062_eval_cases.sql +23 -0
  175. pinecall/postgres/migrations/0063_prompts.sql +16 -0
  176. pinecall/postgres/migrations/0075_call_private.sql +14 -0
  177. pinecall/postgres/migrations/0076_recording_keys.sql +13 -0
  178. pinecall/postgres/migrations/0077_tokens_world.sql +7 -0
  179. pinecall/postgres/migrations/0078_facts_cost_by_stage.sql +12 -0
  180. pinecall/postgres/migrations/0079_judge_labels.sql +20 -0
  181. pinecall/postgres/migrations/0080_call_openings.sql +20 -0
  182. pinecall/postgres/migrations/0081_seal_lease.sql +7 -0
  183. pinecall/postgres/migrations/0082_caller_codes.sql +14 -0
  184. pinecall/postgres/migrations/0083_one_use_words.sql +15 -0
  185. pinecall/postgres/migrations/0084_knocks_and_run_leases.sql +23 -0
  186. pinecall/postgres/migrations/0085_seal_lease_holder.sql +8 -0
  187. pinecall/postgres/migrations/0086_route_origin.sql +17 -0
  188. pinecall/postgres/migrations/0087_carrier_networks.sql +20 -0
  189. pinecall/postgres/migrations/0088_route_last_call.sql +3 -0
  190. pinecall/postgres/migrations/0089_offers.sql +21 -0
  191. pinecall/postgres/migrations/0090_invitation_purpose.sql +5 -0
  192. pinecall/postgres/migrations/0091_head_opened_by.sql +6 -0
  193. pinecall/postgres/migrations/0092_key_parent.sql +6 -0
  194. pinecall/postgres/migrations/0093_code_tries.sql +10 -0
  195. pinecall/postgres/migrations/0094_route_approval.sql +12 -0
  196. pinecall/postgres/migrations/0095_sso_domain_proofs.sql +17 -0
  197. pinecall/postgres/migrations/0096_row_level_security.sql +38 -0
  198. pinecall/postgres/migrations/0097_case_status.sql +19 -0
  199. pinecall/postgres/pool.py +190 -0
  200. pinecall/process/__init__.py +0 -0
  201. pinecall/process/_objects.py +97 -0
  202. pinecall/process/box_settings.py +23 -0
  203. pinecall/process/connections.py +124 -0
  204. pinecall/process/metrics.py +127 -0
  205. pinecall/process/recordings.py +323 -0
  206. pinecall/process/resolver.py +41 -0
  207. pinecall/process/sealed_audio.py +173 -0
  208. pinecall/process/settings.py +534 -0
  209. pinecall/process/shared.py +158 -0
  210. pinecall/process/signal.py +416 -0
  211. pinecall/providers/__init__.py +0 -0
  212. pinecall/providers/build.py +570 -0
  213. pinecall/providers/catalog.py +266 -0
  214. pinecall/providers/credentials.py +230 -0
  215. pinecall/providers/declared.py +69 -0
  216. pinecall/providers/prices.py +240 -0
  217. pinecall/providers/tried.py +104 -0
  218. pinecall/providers/voices.py +174 -0
  219. pinecall/public/console/assets/index-BIfKPSgn.js +164 -0
  220. pinecall/public/console/assets/index-ClOTU-xX.css +1 -0
  221. pinecall/public/console/favicon.png +0 -0
  222. pinecall/public/console/index.html +20 -0
  223. pinecall/public/console/logo-mark.png +0 -0
  224. pinecall/public/console/pinecall-logo-dark.png +0 -0
  225. pinecall/public/console/pinecall-logo.png +0 -0
  226. pinecall/public/console/pinecall-mark.png +0 -0
  227. pinecall/public/console/sw.js +37 -0
  228. pinecall/public/widget/pinecall-widget.js +853 -0
  229. pinecall/py.typed +0 -0
  230. pinecall/retrieval/__init__.py +0 -0
  231. pinecall/retrieval/_search.py +186 -0
  232. pinecall/retrieval/_sections.py +70 -0
  233. pinecall/retrieval/embed.py +340 -0
  234. pinecall/retrieval/extraction.py +403 -0
  235. pinecall/retrieval/knowledge.py +659 -0
  236. pinecall/retrieval/lookups.py +192 -0
  237. pinecall/retrieval/memory.py +603 -0
  238. pinecall/runner/__init__.py +0 -0
  239. pinecall/runner/_kube.py +459 -0
  240. pinecall/runner/_plan.py +157 -0
  241. pinecall/runner/main.py +306 -0
  242. pinecall/session/__init__.py +0 -0
  243. pinecall/session/_agent.py +141 -0
  244. pinecall/session/_hearing.py +101 -0
  245. pinecall/session/_livekit.py +195 -0
  246. pinecall/session/_prompt.py +147 -0
  247. pinecall/session/_recording.py +237 -0
  248. pinecall/session/call.py +367 -0
  249. pinecall/session/clock.py +40 -0
  250. pinecall/session/hold.py +239 -0
  251. pinecall/session/room.py +626 -0
  252. pinecall/session/session.py +690 -0
  253. pinecall/session/text.py +144 -0
  254. pinecall/session/tools.py +483 -0
  255. pinecall/session/voice.py +118 -0
  256. pinecall/session/widget.py +201 -0
  257. pinecall/tenancy/__init__.py +0 -0
  258. pinecall/tenancy/admission.py +204 -0
  259. pinecall/tenancy/agents.py +164 -0
  260. pinecall/tenancy/canary.py +126 -0
  261. pinecall/tenancy/carrier_networks.py +156 -0
  262. pinecall/tenancy/carriers.py +265 -0
  263. pinecall/tenancy/codes.py +196 -0
  264. pinecall/tenancy/consents.py +167 -0
  265. pinecall/tenancy/dial_policy.py +405 -0
  266. pinecall/tenancy/disclosure.py +41 -0
  267. pinecall/tenancy/erasure.py +204 -0
  268. pinecall/tenancy/export.py +167 -0
  269. pinecall/tenancy/hosted_running.py +166 -0
  270. pinecall/tenancy/hosting.py +475 -0
  271. pinecall/tenancy/judges.py +126 -0
  272. pinecall/tenancy/keys.py +467 -0
  273. pinecall/tenancy/knocks.py +40 -0
  274. pinecall/tenancy/letters.py +378 -0
  275. pinecall/tenancy/mail.py +458 -0
  276. pinecall/tenancy/org_secrets.py +123 -0
  277. pinecall/tenancy/orgs.py +78 -0
  278. pinecall/tenancy/people.py +543 -0
  279. pinecall/tenancy/personas.py +145 -0
  280. pinecall/tenancy/policy.py +65 -0
  281. pinecall/tenancy/prompts.py +48 -0
  282. pinecall/tenancy/reads.py +73 -0
  283. pinecall/tenancy/recording_keys.py +41 -0
  284. pinecall/tenancy/remembered.py +148 -0
  285. pinecall/tenancy/retention.py +86 -0
  286. pinecall/tenancy/scopes.py +406 -0
  287. pinecall/tenancy/signin.py +622 -0
  288. pinecall/tenancy/spend.py +69 -0
  289. pinecall/tenancy/sso.py +431 -0
  290. pinecall/tenancy/sso_domains.py +132 -0
  291. pinecall/tenancy/throttle.py +88 -0
  292. pinecall/tenancy/tokens.py +400 -0
  293. pinecall/tenancy/traceback.py +70 -0
  294. pinecall/tenancy/usage.py +136 -0
  295. pinecall/tenancy/vault.py +204 -0
  296. pinecall/tenancy/words.py +144 -0
  297. pinecall/wire/__init__.py +0 -0
  298. pinecall/wire/commands.py +350 -0
  299. pinecall/wire/events.py +655 -0
  300. pinecall/wire/frames.py +65 -0
  301. pinecall/wire/metrics.py +287 -0
  302. pinecall/wire/parts.py +320 -0
  303. pinecall/wire/rest/__init__.py +0 -0
  304. pinecall/wire/rest/accounts.py +512 -0
  305. pinecall/wire/rest/agents.py +172 -0
  306. pinecall/wire/rest/calls.py +397 -0
  307. pinecall/wire/rest/evals.py +453 -0
  308. pinecall/wire/rest/fleet.py +69 -0
  309. pinecall/wire/rest/hosting.py +174 -0
  310. pinecall/wire/rest/numbers.py +280 -0
  311. pinecall/wire/rest/ops.py +342 -0
  312. pinecall/wire/rest/providers.py +83 -0
  313. pinecall/wire/rest/retrieval.py +301 -0
  314. pinecall/wire/rest/settings.py +184 -0
  315. pinecall/wire/rest/usage.py +245 -0
  316. pinecall/wire/room.py +61 -0
  317. pinecall/wire/scores.py +49 -0
  318. pinecall/wire/state.py +243 -0
  319. pinecall/worker/__init__.py +0 -0
  320. pinecall/worker/_job.py +655 -0
  321. pinecall/worker/_recorder.py +82 -0
  322. pinecall/worker/_traces.py +48 -0
  323. pinecall/worker/main.py +307 -0
  324. pinecall_runtime-0.1.6.dist-info/METADATA +212 -0
  325. pinecall_runtime-0.1.6.dist-info/RECORD +328 -0
  326. pinecall_runtime-0.1.6.dist-info/WHEEL +4 -0
  327. pinecall_runtime-0.1.6.dist-info/entry_points.txt +2 -0
  328. pinecall_runtime-0.1.6.dist-info/licenses/LICENSE +202 -0
@@ -0,0 +1,164 @@
1
+ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,o)=>(o=n==null?{}:e(i(n)),s(r||!n||!n.__esModule||!a.call(n,`default`)?t(o,`default`,{value:n,enumerable:!0}):o,n));(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var l=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function ee(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function te(e,t){return ee(e.type,t,e.props)}function E(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function ne(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var D=/\/+/g;function re(e,t){return typeof e==`object`&&e&&e.key!=null?ne(``+e.key):t.toString(36)}function O(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function ie(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,ie(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+re(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(D,`$&/`)+`/`),ie(o,r,i,``,function(e){return e})):o!=null&&(E(o)&&(o=te(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(D,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u<e.length;u++)a=e[u],s=l+re(a,u),c+=ie(a,r,i,s,o);else if(u=m(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+re(a,u++),c+=ie(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return ie(O(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function ae(e,t,n){if(e==null)return e;var r=[],i=0;return ie(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function oe(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var k=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},se={map:ae,forEach:function(e,t,n){ae(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return ae(e,function(){t++}),t},toArray:function(e){return ae(e,function(e){return e})||[]},only:function(e){if(!E(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=se,e.Component=v,e.Fragment=r,e.Profiler=a,e.PureComponent=b,e.StrictMode=i,e.Suspense=l,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=w,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return w.H.useMemoCache(e)}},e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=g({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!T.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return ee(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)T.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return ee(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=E,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:oe}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=w.T,n={};w.T=n;try{var r=e(),i=w.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(C,k)}catch(e){k(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),w.T=t}},e.unstable_useCacheRefresh=function(){return w.H.useCacheRefresh()},e.use=function(e){return w.H.use(e)},e.useActionState=function(e,t,n){return w.H.useActionState(e,t,n)},e.useCallback=function(e,t){return w.H.useCallback(e,t)},e.useContext=function(e){return w.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return w.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return w.H.useEffect(e,t)},e.useEffectEvent=function(e){return w.H.useEffectEvent(e)},e.useId=function(){return w.H.useId()},e.useImperativeHandle=function(e,t,n){return w.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return w.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return w.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return w.H.useMemo(e,t)},e.useOptimistic=function(e,t){return w.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return w.H.useReducer(e,t,n)},e.useRef=function(e){return w.H.useRef(e)},e.useState=function(e){return w.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return w.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return w.H.useTransition()},e.version=`19.2.8`})),u=o(((e,t)=>{t.exports=l()})),d=o((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m){if(n(c)!==null)m=!0,S||(S=!0,E());else{var t=n(l);t!==null&&re(x,t.startTime-e)}}}var S=!1,C=-1,w=5,T=-1;function ee(){return g?!0:!(e.unstable_now()-T<w)}function te(){if(g=!1,S){var t=e.unstable_now();T=t;var i=!0;try{a:{m=!1,h&&(h=!1,v(C),C=-1),p=!0;var a=f;try{b:{for(b(t),d=n(c);d!==null&&!(d.expirationTime>t&&ee());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&re(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?E():S=!1}}}var E;if(typeof y==`function`)E=function(){y(te)};else if(typeof MessageChannel<`u`){var ne=new MessageChannel,D=ne.port2;ne.port1.onmessage=te,E=function(){D.postMessage(null)}}else E=function(){_(te,0)};function re(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):w=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_requestPaint=function(){g=!0},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,re(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,E()))),r},e.unstable_shouldYield=ee,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),f=o(((e,t)=>{t.exports=d()})),p=o((e=>{var t=u();function n(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function r(){}var i={d:{f:r,r:function(){throw Error(n(522))},D:r,C:r,L:r,m:r,X:r,S:r,M:r},p:0,findDOMNode:null},a=Symbol.for(`react.portal`);function o(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:a,key:r==null?null:``+r,children:e,containerInfo:t,implementation:n}}var s=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function c(e,t){if(e===`font`)return``;if(typeof t==`string`)return t===`use-credentials`?t:``}e.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=i,e.createPortal=function(e,t){var r=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(n(299));return o(e,t,null,r)},e.flushSync=function(e){var t=s.T,n=i.p;try{if(s.T=null,i.p=2,e)return e()}finally{s.T=t,i.p=n,i.d.f()}},e.preconnect=function(e,t){typeof e==`string`&&(t?(t=t.crossOrigin,t=typeof t==`string`?t===`use-credentials`?t:``:void 0):t=null,i.d.C(e,t))},e.prefetchDNS=function(e){typeof e==`string`&&i.d.D(e)},e.preinit=function(e,t){if(typeof e==`string`&&t&&typeof t.as==`string`){var n=t.as,r=c(n,t.crossOrigin),a=typeof t.integrity==`string`?t.integrity:void 0,o=typeof t.fetchPriority==`string`?t.fetchPriority:void 0;n===`style`?i.d.S(e,typeof t.precedence==`string`?t.precedence:void 0,{crossOrigin:r,integrity:a,fetchPriority:o}):n===`script`&&i.d.X(e,{crossOrigin:r,integrity:a,fetchPriority:o,nonce:typeof t.nonce==`string`?t.nonce:void 0})}},e.preinitModule=function(e,t){if(typeof e==`string`){if(typeof t==`object`&&t){if(t.as==null||t.as===`script`){var n=c(t.as,t.crossOrigin);i.d.M(e,{crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0})}}else t??i.d.M(e)}},e.preload=function(e,t){if(typeof e==`string`&&typeof t==`object`&&t&&typeof t.as==`string`){var n=t.as,r=c(n,t.crossOrigin);i.d.L(e,n,{crossOrigin:r,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,type:typeof t.type==`string`?t.type:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy==`string`?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet==`string`?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes==`string`?t.imageSizes:void 0,media:typeof t.media==`string`?t.media:void 0})}},e.preloadModule=function(e,t){if(typeof e==`string`){if(t){var n=c(t.as,t.crossOrigin);i.d.m(e,{as:typeof t.as==`string`&&t.as!==`script`?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0})}else i.d.m(e)}},e.requestFormReset=function(e){i.d.r(e)},e.unstable_batchedUpdates=function(e,t){return e(t)},e.useFormState=function(e,t,n){return s.H.useFormState(e,t,n)},e.useFormStatus=function(){return s.H.useHostTransitionStatus()},e.version=`19.2.8`})),m=o(((e,t)=>{function n(){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE==`function`)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=p()})),h=o((e=>{var t=f(),n=u(),r=m();function i(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function a(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function o(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function s(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function c(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function l(e){if(o(e)!==e)throw Error(i(188))}function d(e){var t=e.alternate;if(!t){if(t=o(e),t===null)throw Error(i(188));return t===e?e:null}for(var n=e,r=t;;){var a=n.return;if(a===null)break;var s=a.alternate;if(s===null){if(r=a.return,r!==null){n=r;continue}break}if(a.child===s.child){for(s=a.child;s;){if(s===n)return l(a),e;if(s===r)return l(a),t;s=s.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=s;else{for(var c=!1,u=a.child;u;){if(u===n){c=!0,n=a,r=s;break}if(u===r){c=!0,r=a,n=s;break}u=u.sibling}if(!c){for(u=s.child;u;){if(u===n){c=!0,n=s,r=a;break}if(u===r){c=!0,r=s,n=a;break}u=u.sibling}if(!c)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(n.tag!==3)throw Error(i(188));return n.stateNode.current===n?e:t}function p(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=p(e),t!==null)return t;e=e.sibling}return null}var h=Object.assign,g=Symbol.for(`react.element`),_=Symbol.for(`react.transitional.element`),v=Symbol.for(`react.portal`),y=Symbol.for(`react.fragment`),b=Symbol.for(`react.strict_mode`),x=Symbol.for(`react.profiler`),S=Symbol.for(`react.consumer`),C=Symbol.for(`react.context`),w=Symbol.for(`react.forward_ref`),T=Symbol.for(`react.suspense`),ee=Symbol.for(`react.suspense_list`),te=Symbol.for(`react.memo`),E=Symbol.for(`react.lazy`),ne=Symbol.for(`react.activity`),D=Symbol.for(`react.memo_cache_sentinel`),re=Symbol.iterator;function O(e){return typeof e!=`object`||!e?null:(e=re&&e[re]||e[`@@iterator`],typeof e==`function`?e:null)}var ie=Symbol.for(`react.client.reference`);function ae(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===ie?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case y:return`Fragment`;case x:return`Profiler`;case b:return`StrictMode`;case T:return`Suspense`;case ee:return`SuspenseList`;case ne:return`Activity`}if(typeof e==`object`)switch(e.$$typeof){case v:return`Portal`;case C:return e.displayName||`Context`;case S:return(e._context.displayName||`Context`)+`.Consumer`;case w:var t=e.render;return e=e.displayName,e||=(e=t.displayName||t.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case te:return t=e.displayName||null,t===null?ae(e.type)||`Memo`:t;case E:t=e._payload,e=e._init;try{return ae(e(t))}catch{}}return null}var oe=Array.isArray,k=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,se=r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,ce={pending:!1,data:null,method:null,action:null},le=[],ue=-1;function de(e){return{current:e}}function fe(e){0>ue||(e.current=le[ue],le[ue]=null,ue--)}function pe(e,t){ue++,le[ue]=e.current,e.current=t}var me=de(null),he=de(null),ge=de(null),_e=de(null);function ve(e,t){switch(pe(ge,t),pe(he,e),pe(me,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?cf(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=cf(t),e=lf(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}fe(me),pe(me,e)}function ye(){fe(me),fe(he),fe(ge)}function be(e){e.memoizedState!==null&&pe(_e,e);var t=me.current,n=lf(t,e.type);t!==n&&(pe(he,e),pe(me,n))}function xe(e){he.current===e&&(fe(me),fe(he)),_e.current===e&&(fe(_e),mp._currentValue=ce)}var Se,Ce;function we(e){if(Se===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);Se=t&&t[1]||``,Ce=-1<e.stack.indexOf(`
2
+ at`)?` (<anonymous>)`:-1<e.stack.indexOf(`@`)?`@unknown:0:0`:``}return`
3
+ `+Se+e+Ce}var Te=!1;function Ee(e,t){if(!e||Te)return``;Te=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var n=function(){throw Error()};if(Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(n,[])}catch(e){var r=e}Reflect.construct(e,[],n)}else{try{n.call()}catch(e){r=e}e.call(n.prototype)}}else{try{throw Error()}catch(e){r=e}(n=e())&&typeof n.catch==`function`&&n.catch(function(){})}}catch(e){if(e&&r&&typeof e.stack==`string`)return[e.stack,r.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName=`DetermineComponentFrameRoot`;var i=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,`name`);i&&i.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,"name",{value:`DetermineComponentFrameRoot`});var a=r.DetermineComponentFrameRoot(),o=a[0],s=a[1];if(o&&s){var c=o.split(`
4
+ `),l=s.split(`
5
+ `);for(i=r=0;r<c.length&&!c[r].includes(`DetermineComponentFrameRoot`);)r++;for(;i<l.length&&!l[i].includes(`DetermineComponentFrameRoot`);)i++;if(r===c.length||i===l.length)for(r=c.length-1,i=l.length-1;1<=r&&0<=i&&c[r]!==l[i];)i--;for(;1<=r&&0<=i;r--,i--)if(c[r]!==l[i]){if(r!==1||i!==1)do if(r--,i--,0>i||c[r]!==l[i]){var u=`
6
+ `+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(`<anonymous>`)&&(u=u.replace(`<anonymous>`,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{Te=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?we(n):``}function De(e,t){switch(e.tag){case 26:case 27:case 5:return we(e.type);case 16:return we(`Lazy`);case 13:return e.child!==t&&t!==null?we(`Suspense Fallback`):we(`Suspense`);case 19:return we(`SuspenseList`);case 0:case 15:return Ee(e.type,!1);case 11:return Ee(e.type.render,!1);case 1:return Ee(e.type,!0);case 31:return we(`Activity`);default:return``}}function Oe(e){try{var t=``,n=null;do t+=De(e,n),n=e,e=e.return;while(e);return t}catch(e){return`
7
+ Error generating stack: `+e.message+`
8
+ `+e.stack}}var ke=Object.prototype.hasOwnProperty,Ae=t.unstable_scheduleCallback,je=t.unstable_cancelCallback,Me=t.unstable_shouldYield,Ne=t.unstable_requestPaint,Pe=t.unstable_now,Fe=t.unstable_getCurrentPriorityLevel,Ie=t.unstable_ImmediatePriority,Le=t.unstable_UserBlockingPriority,Re=t.unstable_NormalPriority,ze=t.unstable_LowPriority,Be=t.unstable_IdlePriority,Ve=t.log,He=t.unstable_setDisableYieldValue,Ue=null,We=null;function Ge(e){if(typeof Ve==`function`&&He(e),We&&typeof We.setStrictMode==`function`)try{We.setStrictMode(Ue,e)}catch{}}var Ke=Math.clz32?Math.clz32:Ye,qe=Math.log,Je=Math.LN2;function Ye(e){return e>>>=0,e===0?32:31-(qe(e)/Je|0)|0}var Xe=256,Ze=262144,Qe=4194304;function $e(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function et(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=$e(n))):i=$e(o):i=$e(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=$e(n))):i=$e(o)):i=$e(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function tt(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function nt(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function rt(){var e=Qe;return Qe<<=1,!(Qe&62914560)&&(Qe=4194304),e}function it(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function at(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function ot(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0<n;){var u=31-Ke(n),d=1<<u;s[u]=0,c[u]=-1;var f=l[u];if(f!==null)for(l[u]=null,u=0;u<f.length;u++){var p=f[u];p!==null&&(p.lane&=-536870913)}n&=~d}r!==0&&st(e,r,0),a!==0&&i===0&&e.tag!==0&&(e.suspendedLanes|=a&~(o&~t))}function st(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-Ke(t);e.entangledLanes|=t,e.entanglements[r]=e.entanglements[r]|1073741824|n&261930}function ct(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-Ke(n),i=1<<r;i&t|e[r]&t&&(e[r]|=t),n&=~i}}function lt(e,t){var n=t&-t;return n=n&42?1:ut(n),(n&(e.suspendedLanes|t))===0?n:0}function ut(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function dt(e){return e&=-e,2<e?8<e?e&134217727?32:268435456:8:2}function ft(){var e=se.p;return e===0?(e=window.event,e===void 0?32:Dp(e.type)):e}function pt(e,t){var n=se.p;try{return se.p=e,t()}finally{se.p=n}}var mt=Math.random().toString(36).slice(2),ht=`__reactFiber$`+mt,gt=`__reactProps$`+mt,_t=`__reactContainer$`+mt,vt=`__reactEvents$`+mt,yt=`__reactListeners$`+mt,bt=`__reactHandles$`+mt,xt=`__reactResources$`+mt,St=`__reactMarker$`+mt;function Ct(e){delete e[ht],delete e[gt],delete e[vt],delete e[yt],delete e[bt]}function wt(e){var t=e[ht];if(t)return t;for(var n=e.parentNode;n;){if(t=n[_t]||n[ht]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=jf(e);e!==null;){if(n=e[ht])return n;e=jf(e)}return t}e=n,n=e.parentNode}return null}function Tt(e){if(e=e[ht]||e[_t]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function Et(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(i(33))}function Dt(e){var t=e[xt];return t||=e[xt]={hoistableStyles:new Map,hoistableScripts:new Map},t}function Ot(e){e[St]=!0}var kt=new Set,At={};function jt(e,t){Mt(e,t),Mt(e+`Capture`,t)}function Mt(e,t){for(At[e]=t,e=0;e<t.length;e++)kt.add(t[e])}var Nt=RegExp(`^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$`),Pt={},Ft={};function It(e){return ke.call(Ft,e)?!0:ke.call(Pt,e)?!1:Nt.test(e)?Ft[e]=!0:(Pt[e]=!0,!1)}function Lt(e,t,n){if(It(t)){if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:e.removeAttribute(t);return;case`boolean`:var r=t.toLowerCase().slice(0,5);if(r!==`data-`&&r!==`aria-`){e.removeAttribute(t);return}}e.setAttribute(t,``+n)}}}function Rt(e,t,n){if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(t);return}e.setAttribute(t,``+n)}}function zt(e,t,n,r){if(r===null)e.removeAttribute(n);else{switch(typeof r){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(n);return}e.setAttributeNS(t,n,``+r)}}function Bt(e){switch(typeof e){case`bigint`:case`boolean`:case`number`:case`string`:case`undefined`:return e;case`object`:return e;default:return``}}function Vt(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()===`input`&&(t===`checkbox`||t===`radio`)}function Ht(e,t,n){var r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&r!==void 0&&typeof r.get==`function`&&typeof r.set==`function`){var i=r.get,a=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(e){n=``+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(e){n=``+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Ut(e){if(!e._valueTracker){var t=Vt(e)?`checked`:`value`;e._valueTracker=Ht(e,t,``+e[t])}}function Wt(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r=``;return e&&(r=Vt(e)?e.checked?`true`:`false`:e.value),e=r,e!==n&&(t.setValue(e),!0)}function Gt(e){if(e||=typeof document<`u`?document:void 0,e===void 0)return null;try{return e.activeElement||e.body}catch{return e.body}}var Kt=/[\n"\\]/g;function qt(e){return e.replace(Kt,function(e){return`\\`+e.charCodeAt(0).toString(16)+` `})}function Jt(e,t,n,r,i,a,o,s){e.name=``,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`?e.type=o:e.removeAttribute(`type`),t==null?o!==`submit`&&o!==`reset`||e.removeAttribute(`value`):o===`number`?(t===0&&e.value===``||e.value!=t)&&(e.value=``+Bt(t)):e.value!==``+Bt(t)&&(e.value=``+Bt(t)),t==null?n==null?r!=null&&e.removeAttribute(`value`):Xt(e,o,Bt(n)):Xt(e,o,Bt(t)),i==null&&a!=null&&(e.defaultChecked=!!a),i!=null&&(e.checked=i&&typeof i!=`function`&&typeof i!=`symbol`),s!=null&&typeof s!=`function`&&typeof s!=`symbol`&&typeof s!=`boolean`?e.name=``+Bt(s):e.removeAttribute(`name`)}function Yt(e,t,n,r,i,a,o,s){if(a!=null&&typeof a!=`function`&&typeof a!=`symbol`&&typeof a!=`boolean`&&(e.type=a),t!=null||n!=null){if(!(a!==`submit`&&a!==`reset`||t!=null)){Ut(e);return}n=n==null?``:``+Bt(n),t=t==null?n:``+Bt(t),s||t===e.value||(e.value=t),e.defaultValue=t}r??=i,r=typeof r!=`function`&&typeof r!=`symbol`&&!!r,e.checked=s?e.checked:!!r,e.defaultChecked=!!r,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`&&(e.name=o),Ut(e)}function Xt(e,t,n){t===`number`&&Gt(e.ownerDocument)===e||e.defaultValue===``+n||(e.defaultValue=``+n)}function Zt(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i<n.length;i++)t[`$`+n[i]]=!0;for(n=0;n<e.length;n++)i=t.hasOwnProperty(`$`+e[n].value),e[n].selected!==i&&(e[n].selected=i),i&&r&&(e[n].defaultSelected=!0)}else{for(n=``+Bt(n),t=null,i=0;i<e.length;i++){if(e[i].value===n){e[i].selected=!0,r&&(e[i].defaultSelected=!0);return}t!==null||e[i].disabled||(t=e[i])}t!==null&&(t.selected=!0)}}function Qt(e,t,n){if(t!=null&&(t=``+Bt(t),t!==e.value&&(e.value=t),n==null)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=n==null?``:``+Bt(n)}function $t(e,t,n,r){if(t==null){if(r!=null){if(n!=null)throw Error(i(92));if(oe(r)){if(1<r.length)throw Error(i(93));r=r[0]}n=r}n??=``,t=n}n=Bt(t),e.defaultValue=n,r=e.textContent,r===n&&r!==``&&r!==null&&(e.value=r),Ut(e)}function en(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var tn=new Set(`animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp`.split(` `));function nn(e,t,n){var r=t.indexOf(`--`)===0;n==null||typeof n==`boolean`||n===``?r?e.setProperty(t,``):t===`float`?e.cssFloat=``:e[t]=``:r?e.setProperty(t,n):typeof n!=`number`||n===0||tn.has(t)?t===`float`?e.cssFloat=n:e[t]=(``+n).trim():e[t]=n+`px`}function rn(e,t,n){if(t!=null&&typeof t!=`object`)throw Error(i(62));if(e=e.style,n!=null){for(var r in n)!n.hasOwnProperty(r)||t!=null&&t.hasOwnProperty(r)||(r.indexOf(`--`)===0?e.setProperty(r,``):r===`float`?e.cssFloat=``:e[r]=``);for(var a in t)r=t[a],t.hasOwnProperty(a)&&n[a]!==r&&nn(e,a,r)}else for(var o in t)t.hasOwnProperty(o)&&nn(e,o,t[o])}function an(e){if(e.indexOf(`-`)===-1)return!1;switch(e){case`annotation-xml`:case`color-profile`:case`font-face`:case`font-face-src`:case`font-face-uri`:case`font-face-format`:case`font-face-name`:case`missing-glyph`:return!1;default:return!0}}var on=new Map([[`acceptCharset`,`accept-charset`],[`htmlFor`,`for`],[`httpEquiv`,`http-equiv`],[`crossOrigin`,`crossorigin`],[`accentHeight`,`accent-height`],[`alignmentBaseline`,`alignment-baseline`],[`arabicForm`,`arabic-form`],[`baselineShift`,`baseline-shift`],[`capHeight`,`cap-height`],[`clipPath`,`clip-path`],[`clipRule`,`clip-rule`],[`colorInterpolation`,`color-interpolation`],[`colorInterpolationFilters`,`color-interpolation-filters`],[`colorProfile`,`color-profile`],[`colorRendering`,`color-rendering`],[`dominantBaseline`,`dominant-baseline`],[`enableBackground`,`enable-background`],[`fillOpacity`,`fill-opacity`],[`fillRule`,`fill-rule`],[`floodColor`,`flood-color`],[`floodOpacity`,`flood-opacity`],[`fontFamily`,`font-family`],[`fontSize`,`font-size`],[`fontSizeAdjust`,`font-size-adjust`],[`fontStretch`,`font-stretch`],[`fontStyle`,`font-style`],[`fontVariant`,`font-variant`],[`fontWeight`,`font-weight`],[`glyphName`,`glyph-name`],[`glyphOrientationHorizontal`,`glyph-orientation-horizontal`],[`glyphOrientationVertical`,`glyph-orientation-vertical`],[`horizAdvX`,`horiz-adv-x`],[`horizOriginX`,`horiz-origin-x`],[`imageRendering`,`image-rendering`],[`letterSpacing`,`letter-spacing`],[`lightingColor`,`lighting-color`],[`markerEnd`,`marker-end`],[`markerMid`,`marker-mid`],[`markerStart`,`marker-start`],[`overlinePosition`,`overline-position`],[`overlineThickness`,`overline-thickness`],[`paintOrder`,`paint-order`],[`panose-1`,`panose-1`],[`pointerEvents`,`pointer-events`],[`renderingIntent`,`rendering-intent`],[`shapeRendering`,`shape-rendering`],[`stopColor`,`stop-color`],[`stopOpacity`,`stop-opacity`],[`strikethroughPosition`,`strikethrough-position`],[`strikethroughThickness`,`strikethrough-thickness`],[`strokeDasharray`,`stroke-dasharray`],[`strokeDashoffset`,`stroke-dashoffset`],[`strokeLinecap`,`stroke-linecap`],[`strokeLinejoin`,`stroke-linejoin`],[`strokeMiterlimit`,`stroke-miterlimit`],[`strokeOpacity`,`stroke-opacity`],[`strokeWidth`,`stroke-width`],[`textAnchor`,`text-anchor`],[`textDecoration`,`text-decoration`],[`textRendering`,`text-rendering`],[`transformOrigin`,`transform-origin`],[`underlinePosition`,`underline-position`],[`underlineThickness`,`underline-thickness`],[`unicodeBidi`,`unicode-bidi`],[`unicodeRange`,`unicode-range`],[`unitsPerEm`,`units-per-em`],[`vAlphabetic`,`v-alphabetic`],[`vHanging`,`v-hanging`],[`vIdeographic`,`v-ideographic`],[`vMathematical`,`v-mathematical`],[`vectorEffect`,`vector-effect`],[`vertAdvY`,`vert-adv-y`],[`vertOriginX`,`vert-origin-x`],[`vertOriginY`,`vert-origin-y`],[`wordSpacing`,`word-spacing`],[`writingMode`,`writing-mode`],[`xmlnsXlink`,`xmlns:xlink`],[`xHeight`,`x-height`]]),sn=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function cn(e){return sn.test(``+e)?`javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')`:e}function ln(){}var un=null;function dn(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var fn=null,pn=null;function mn(e){var t=Tt(e);if(t&&(e=t.stateNode)){var n=e[gt]||null;a:switch(e=t.stateNode,t.type){case`input`:if(Jt(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,n.type===`radio`&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll(`input[name="`+qt(``+t)+`"][type="radio"]`),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=r[gt]||null;if(!a)throw Error(i(90));Jt(r,a.value,a.defaultValue,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name)}}for(t=0;t<n.length;t++)r=n[t],r.form===e.form&&Wt(r)}break a;case`textarea`:Qt(e,n.value,n.defaultValue);break a;case`select`:t=n.value,t!=null&&Zt(e,!!n.multiple,t,!1)}}}var hn=!1;function gn(e,t,n){if(hn)return e(t,n);hn=!0;try{return e(t)}finally{if(hn=!1,(fn!==null||pn!==null)&&(Lu(),fn&&(t=fn,e=pn,pn=fn=null,mn(t),e)))for(t=0;t<e.length;t++)mn(e[t])}}function _n(e,t){var n=e.stateNode;if(n===null)return null;var r=n[gt]||null;if(r===null)return null;n=r[t];a:switch(t){case`onClick`:case`onClickCapture`:case`onDoubleClick`:case`onDoubleClickCapture`:case`onMouseDown`:case`onMouseDownCapture`:case`onMouseMove`:case`onMouseMoveCapture`:case`onMouseUp`:case`onMouseUpCapture`:case`onMouseEnter`:(r=!r.disabled)||(e=e.type,r=e!==`button`&&e!==`input`&&e!==`select`&&e!==`textarea`),e=!r;break a;default:e=!1}if(e)return null;if(n&&typeof n!=`function`)throw Error(i(231,t,typeof n));return n}var vn=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0,yn=!1;if(vn)try{var bn={};Object.defineProperty(bn,"passive",{get:function(){yn=!0}}),window.addEventListener(`test`,bn,bn),window.removeEventListener(`test`,bn,bn)}catch{yn=!1}var xn=null,Sn=null,Cn=null;function wn(){if(Cn)return Cn;var e,t=Sn,n=t.length,r,i=`value`in xn?xn.value:xn.textContent,a=i.length;for(e=0;e<n&&t[e]===i[e];e++);var o=n-e;for(r=1;r<=o&&t[n-r]===i[a-r];r++);return Cn=i.slice(e,1<r?1-r:void 0)}function Tn(e){var t=e.keyCode;return`charCode`in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function En(){return!0}function Dn(){return!1}function On(e){function t(t,n,r,i,a){for(var o in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=i,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(o)&&(t=e[o],this[o]=t?t(i):i[o]);return this.isDefaultPrevented=(i.defaultPrevented==null?!1===i.returnValue:i.defaultPrevented)?En:Dn,this.isPropagationStopped=Dn,this}return h(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():typeof e.returnValue!=`unknown`&&(e.returnValue=!1),this.isDefaultPrevented=En)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():typeof e.cancelBubble!=`unknown`&&(e.cancelBubble=!0),this.isPropagationStopped=En)},persist:function(){},isPersistent:En}),t}var kn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},An=On(kn),jn=h({},kn,{view:0,detail:0}),Mn=On(jn),Nn,Pn,Fn,In=h({},jn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:qn,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return`movementX`in e?e.movementX:(e!==Fn&&(Fn&&e.type===`mousemove`?(Nn=e.screenX-Fn.screenX,Pn=e.screenY-Fn.screenY):Pn=Nn=0,Fn=e),Nn)},movementY:function(e){return`movementY`in e?e.movementY:Pn}}),Ln=On(In),Rn=On(h({},In,{dataTransfer:0})),zn=On(h({},jn,{relatedTarget:0})),Bn=On(h({},kn,{animationName:0,elapsedTime:0,pseudoElement:0})),Vn=On(h({},kn,{clipboardData:function(e){return`clipboardData`in e?e.clipboardData:window.clipboardData}})),Hn=On(h({},kn,{data:0})),Un={Esc:`Escape`,Spacebar:` `,Left:`ArrowLeft`,Up:`ArrowUp`,Right:`ArrowRight`,Down:`ArrowDown`,Del:`Delete`,Win:`OS`,Menu:`ContextMenu`,Apps:`ContextMenu`,Scroll:`ScrollLock`,MozPrintableKey:`Unidentified`},Wn={8:`Backspace`,9:`Tab`,12:`Clear`,13:`Enter`,16:`Shift`,17:`Control`,18:`Alt`,19:`Pause`,20:`CapsLock`,27:`Escape`,32:` `,33:`PageUp`,34:`PageDown`,35:`End`,36:`Home`,37:`ArrowLeft`,38:`ArrowUp`,39:`ArrowRight`,40:`ArrowDown`,45:`Insert`,46:`Delete`,112:`F1`,113:`F2`,114:`F3`,115:`F4`,116:`F5`,117:`F6`,118:`F7`,119:`F8`,120:`F9`,121:`F10`,122:`F11`,123:`F12`,144:`NumLock`,145:`ScrollLock`,224:`Meta`},Gn={Alt:`altKey`,Control:`ctrlKey`,Meta:`metaKey`,Shift:`shiftKey`};function Kn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Gn[e])?!!t[e]:!1}function qn(){return Kn}var Jn=On(h({},jn,{key:function(e){if(e.key){var t=Un[e.key]||e.key;if(t!==`Unidentified`)return t}return e.type===`keypress`?(e=Tn(e),e===13?`Enter`:String.fromCharCode(e)):e.type===`keydown`||e.type===`keyup`?Wn[e.keyCode]||`Unidentified`:``},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:qn,charCode:function(e){return e.type===`keypress`?Tn(e):0},keyCode:function(e){return e.type===`keydown`||e.type===`keyup`?e.keyCode:0},which:function(e){return e.type===`keypress`?Tn(e):e.type===`keydown`||e.type===`keyup`?e.keyCode:0}})),Yn=On(h({},In,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Xn=On(h({},jn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:qn})),Zn=On(h({},kn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Qn=On(h({},In,{deltaX:function(e){return`deltaX`in e?e.deltaX:`wheelDeltaX`in e?-e.wheelDeltaX:0},deltaY:function(e){return`deltaY`in e?e.deltaY:`wheelDeltaY`in e?-e.wheelDeltaY:`wheelDelta`in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0})),$n=On(h({},kn,{newState:0,oldState:0})),er=[9,13,27,32],tr=vn&&`CompositionEvent`in window,nr=null;vn&&`documentMode`in document&&(nr=document.documentMode);var rr=vn&&`TextEvent`in window&&!nr,ir=vn&&(!tr||nr&&8<nr&&11>=nr),ar=` `,or=!1;function sr(e,t){switch(e){case`keyup`:return er.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function cr(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var lr=!1;function ur(e,t){switch(e){case`compositionend`:return cr(t);case`keypress`:return t.which===32?(or=!0,ar):null;case`textInput`:return e=t.data,e===ar&&or?null:e;default:return null}}function dr(e,t){if(lr)return e===`compositionend`||!tr&&sr(e,t)?(e=wn(),Cn=Sn=xn=null,lr=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case`compositionend`:return ir&&t.locale!==`ko`?null:t.data;default:return null}}var fr={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function pr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t===`input`?!!fr[e.type]:t===`textarea`}function mr(e,t,n,r){fn?pn?pn.push(r):pn=[r]:fn=r,t=Gd(t,`onChange`),0<t.length&&(n=new An(`onChange`,`change`,null,n,r),e.push({event:n,listeners:t}))}var hr=null,gr=null;function _r(e){Ld(e,0)}function vr(e){if(Wt(Et(e)))return e}function yr(e,t){if(e===`change`)return t}var br=!1;if(vn){var xr;if(vn){var Sr=`oninput`in document;if(!Sr){var Cr=document.createElement(`div`);Cr.setAttribute(`oninput`,`return;`),Sr=typeof Cr.oninput==`function`}xr=Sr}else xr=!1;br=xr&&(!document.documentMode||9<document.documentMode)}function wr(){hr&&(hr.detachEvent(`onpropertychange`,Tr),gr=hr=null)}function Tr(e){if(e.propertyName===`value`&&vr(gr)){var t=[];mr(t,gr,e,dn(e)),gn(_r,t)}}function Er(e,t,n){e===`focusin`?(wr(),hr=t,gr=n,hr.attachEvent(`onpropertychange`,Tr)):e===`focusout`&&wr()}function Dr(e){if(e===`selectionchange`||e===`keyup`||e===`keydown`)return vr(gr)}function Or(e,t){if(e===`click`)return vr(t)}function kr(e,t){if(e===`input`||e===`change`)return vr(t)}function Ar(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var jr=typeof Object.is==`function`?Object.is:Ar;function Mr(e,t){if(jr(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var i=n[r];if(!ke.call(t,i)||!jr(e[i],t[i]))return!1}return!0}function Nr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Pr(e,t){var n=Nr(e);e=0;for(var r;n;){if(n.nodeType===3){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=Nr(n)}}function Fr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Fr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Ir(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Gt(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Gt(e.document)}return t}function Lr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var Rr=vn&&`documentMode`in document&&11>=document.documentMode,zr=null,Br=null,Vr=null,Hr=!1;function Ur(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Hr||zr==null||zr!==Gt(r)||(r=zr,`selectionStart`in r&&Lr(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Vr&&Mr(Vr,r)||(Vr=r,r=Gd(Br,`onSelect`),0<r.length&&(t=new An(`onSelect`,`select`,null,t,n),e.push({event:t,listeners:r}),t.target=zr)))}function Wr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n[`Webkit`+e]=`webkit`+t,n[`Moz`+e]=`moz`+t,n}var Gr={animationend:Wr(`Animation`,`AnimationEnd`),animationiteration:Wr(`Animation`,`AnimationIteration`),animationstart:Wr(`Animation`,`AnimationStart`),transitionrun:Wr(`Transition`,`TransitionRun`),transitionstart:Wr(`Transition`,`TransitionStart`),transitioncancel:Wr(`Transition`,`TransitionCancel`),transitionend:Wr(`Transition`,`TransitionEnd`)},Kr={},qr={};vn&&(qr=document.createElement(`div`).style,`AnimationEvent`in window||(delete Gr.animationend.animation,delete Gr.animationiteration.animation,delete Gr.animationstart.animation),`TransitionEvent`in window||delete Gr.transitionend.transition);function Jr(e){if(Kr[e])return Kr[e];if(!Gr[e])return e;var t=Gr[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in qr)return Kr[e]=t[n];return e}var Yr=Jr(`animationend`),Xr=Jr(`animationiteration`),Zr=Jr(`animationstart`),Qr=Jr(`transitionrun`),$r=Jr(`transitionstart`),ei=Jr(`transitioncancel`),ti=Jr(`transitionend`),ni=new Map,ri=`abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel`.split(` `);ri.push(`scrollEnd`);function ii(e,t){ni.set(e,t),jt(t,[e])}var ai=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},oi=[],si=0,ci=0;function li(){for(var e=si,t=ci=si=0;t<e;){var n=oi[t];oi[t++]=null;var r=oi[t];oi[t++]=null;var i=oi[t];oi[t++]=null;var a=oi[t];if(oi[t++]=null,r!==null&&i!==null){var o=r.pending;o===null?i.next=i:(i.next=o.next,o.next=i),r.pending=i}a!==0&&pi(n,i,a)}}function ui(e,t,n,r){oi[si++]=e,oi[si++]=t,oi[si++]=n,oi[si++]=r,ci|=r,e.lanes|=r,e=e.alternate,e!==null&&(e.lanes|=r)}function di(e,t,n,r){return ui(e,t,n,r),mi(e)}function fi(e,t){return ui(e,null,null,t),mi(e)}function pi(e,t,n){e.lanes|=n;var r=e.alternate;r!==null&&(r.lanes|=n);for(var i=!1,a=e.return;a!==null;)a.childLanes|=n,r=a.alternate,r!==null&&(r.childLanes|=n),a.tag===22&&(e=a.stateNode,e===null||e._visibility&1||(i=!0)),e=a,a=a.return;return e.tag===3?(a=e.stateNode,i&&t!==null&&(i=31-Ke(n),e=a.hiddenUpdates,r=e[i],r===null?e[i]=[t]:r.push(t),t.lane=n|536870912),a):null}function mi(e){if(50<Ou)throw Ou=0,ku=null,Error(i(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var hi={};function gi(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function _i(e,t,n,r){return new gi(e,t,n,r)}function vi(e){return e=e.prototype,!(!e||!e.isReactComponent)}function yi(e,t){var n=e.alternate;return n===null?(n=_i(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&65011712,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n.refCleanup=e.refCleanup,n}function bi(e,t){e.flags&=65011714;var n=e.alternate;return n===null?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,t=n.dependencies,e.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function xi(e,t,n,r,a,o){var s=0;if(r=e,typeof e==`function`)vi(e)&&(s=1);else if(typeof e==`string`)s=cp(e,n,me.current)?26:e===`html`||e===`head`||e===`body`?27:5;else a:switch(e){case ne:return e=_i(31,n,t,a),e.elementType=ne,e.lanes=o,e;case y:return Si(n.children,a,o,t);case b:s=8,a|=24;break;case x:return e=_i(12,n,t,a|2),e.elementType=x,e.lanes=o,e;case T:return e=_i(13,n,t,a),e.elementType=T,e.lanes=o,e;case ee:return e=_i(19,n,t,a),e.elementType=ee,e.lanes=o,e;default:if(typeof e==`object`&&e)switch(e.$$typeof){case C:s=10;break a;case S:s=9;break a;case w:s=11;break a;case te:s=14;break a;case E:s=16,r=null;break a}s=29,n=Error(i(130,e===null?`null`:typeof e,``)),r=null}return t=_i(s,n,t,a),t.elementType=e,t.type=r,t.lanes=o,t}function Si(e,t,n,r){return e=_i(7,e,r,t),e.lanes=n,e}function Ci(e,t,n){return e=_i(6,e,null,t),e.lanes=n,e}function wi(e){var t=_i(18,null,null,0);return t.stateNode=e,t}function Ti(e,t,n){return t=_i(4,e.children===null?[]:e.children,e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var Ei=new WeakMap;function Di(e,t){if(typeof e==`object`&&e){var n=Ei.get(e);return n===void 0?(t={value:e,source:t,stack:Oe(t)},Ei.set(e,t),t):n}return{value:e,source:t,stack:Oe(t)}}var Oi=[],ki=0,Ai=null,ji=0,Mi=[],Ni=0,Pi=null,Fi=1,Ii=``;function Li(e,t){Oi[ki++]=ji,Oi[ki++]=Ai,Ai=e,ji=t}function Ri(e,t,n){Mi[Ni++]=Fi,Mi[Ni++]=Ii,Mi[Ni++]=Pi,Pi=e;var r=Fi;e=Ii;var i=32-Ke(r)-1;r&=~(1<<i),n+=1;var a=32-Ke(t)+i;if(30<a){var o=i-i%5;a=(r&(1<<o)-1).toString(32),r>>=o,i-=o,Fi=1<<32-Ke(t)+i|n<<i|r,Ii=a+e}else Fi=1<<a|n<<i|r,Ii=e}function zi(e){e.return!==null&&(Li(e,1),Ri(e,1,0))}function Bi(e){for(;e===Ai;)Ai=Oi[--ki],Oi[ki]=null,ji=Oi[--ki],Oi[ki]=null;for(;e===Pi;)Pi=Mi[--Ni],Mi[Ni]=null,Ii=Mi[--Ni],Mi[Ni]=null,Fi=Mi[--Ni],Mi[Ni]=null}function Vi(e,t){Mi[Ni++]=Fi,Mi[Ni++]=Ii,Mi[Ni++]=Pi,Fi=t.id,Ii=t.overflow,Pi=e}var Hi=null,Ui=null,Wi=!1,Gi=null,Ki=!1,qi=Error(i(519));function Ji(e){throw ea(Di(Error(i(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?`text`:`HTML`,``)),e)),qi}function Yi(e){var t=e.stateNode,n=e.type,r=e.memoizedProps;switch(t[ht]=e,t[gt]=r,n){case`dialog`:Rd(`cancel`,t),Rd(`close`,t);break;case`iframe`:case`object`:case`embed`:Rd(`load`,t);break;case`video`:case`audio`:for(n=0;n<Fd.length;n++)Rd(Fd[n],t);break;case`source`:Rd(`error`,t);break;case`img`:case`image`:case`link`:Rd(`error`,t),Rd(`load`,t);break;case`details`:Rd(`toggle`,t);break;case`input`:Rd(`invalid`,t),Yt(t,r.value,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name,!0);break;case`select`:Rd(`invalid`,t);break;case`textarea`:Rd(`invalid`,t),$t(t,r.value,r.defaultValue,r.children)}n=r.children,typeof n!=`string`&&typeof n!=`number`&&typeof n!=`bigint`||t.textContent===``+n||!0===r.suppressHydrationWarning||Zd(t.textContent,n)?(r.popover!=null&&(Rd(`beforetoggle`,t),Rd(`toggle`,t)),r.onScroll!=null&&Rd(`scroll`,t),r.onScrollEnd!=null&&Rd(`scrollend`,t),r.onClick!=null&&(t.onclick=ln),t=!0):t=!1,t||Ji(e,!0)}function Xi(e){for(Hi=e.return;Hi;)switch(Hi.tag){case 5:case 31:case 13:Ki=!1;return;case 27:case 3:Ki=!0;return;default:Hi=Hi.return}}function Zi(e){if(e!==Hi)return!1;if(!Wi)return Xi(e),Wi=!0,!1;var t=e.tag,n;if((n=t!==3&&t!==27)&&((n=t===5)&&(n=e.type,n=n===`form`||n===`button`||uf(e.type,e.memoizedProps)),n=!n),n&&Ui&&Ji(e),Xi(e),t===13){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(317));Ui=Af(e)}else if(t===31){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(317));Ui=Af(e)}else t===27?(t=Ui,vf(e.type)?(e=kf,kf=null,Ui=e):Ui=t):Ui=Hi?Of(e.stateNode.nextSibling):null;return!0}function Qi(){Ui=Hi=null,Wi=!1}function $i(){var e=Gi;return e!==null&&(mu===null?mu=e:mu.push.apply(mu,e),Gi=null),e}function ea(e){Gi===null?Gi=[e]:Gi.push(e)}var ta=de(null),na=null,ra=null;function ia(e,t,n){pe(ta,t._currentValue),t._currentValue=n}function aa(e){e._currentValue=ta.current,fe(ta)}function oa(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)===t?r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t):(e.childLanes|=t,r!==null&&(r.childLanes|=t)),e===n)break;e=e.return}}function A(e,t,n,r){var a=e.child;for(a!==null&&(a.return=e);a!==null;){var o=a.dependencies;if(o!==null){var s=a.child;o=o.firstContext;a:for(;o!==null;){var c=o;o=a;for(var l=0;l<t.length;l++)if(c.context===t[l]){o.lanes|=n,c=o.alternate,c!==null&&(c.lanes|=n),oa(o.return,n,e),r||(s=null);break a}o=c.next}}else if(a.tag===18){if(s=a.return,s===null)throw Error(i(341));s.lanes|=n,o=s.alternate,o!==null&&(o.lanes|=n),oa(s,n,e),s=null}else s=a.child;if(s!==null)s.return=a;else for(s=a;s!==null;){if(s===e){s=null;break}if(a=s.sibling,a!==null){a.return=s.return,s=a;break}s=s.return}a=s}}function sa(e,t,n,r){e=null;for(var a=t,o=!1;a!==null;){if(!o){if(a.flags&524288)o=!0;else if(a.flags&262144)break}if(a.tag===10){var s=a.alternate;if(s===null)throw Error(i(387));if(s=s.memoizedProps,s!==null){var c=a.type;jr(a.pendingProps.value,s.value)||(e===null?e=[c]:e.push(c))}}else if(a===_e.current){if(s=a.alternate,s===null)throw Error(i(387));s.memoizedState.memoizedState!==a.memoizedState.memoizedState&&(e===null?e=[mp]:e.push(mp))}a=a.return}e!==null&&A(t,e,n,r),t.flags|=262144}function ca(e){for(e=e.firstContext;e!==null;){if(!jr(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function la(e){na=e,ra=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function ua(e){return fa(na,e)}function da(e,t){return na===null&&la(e),fa(e,t)}function fa(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},ra===null){if(e===null)throw Error(i(308));ra=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else ra=ra.next=t;return n}var pa=typeof AbortController<`u`?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(t,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach(function(e){return e()})}},ma=t.unstable_scheduleCallback,ha=t.unstable_NormalPriority,ga={$$typeof:C,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function _a(){return{controller:new pa,data:new Map,refCount:0}}function va(e){e.refCount--,e.refCount===0&&ma(ha,function(){e.controller.abort()})}var ya=null,ba=0,xa=0,Sa=null;function Ca(e,t){if(ya===null){var n=ya=[];ba=0,xa=kd(),Sa={status:`pending`,value:void 0,then:function(e){n.push(e)}}}return ba++,t.then(wa,wa),t}function wa(){if(--ba===0&&ya!==null){Sa!==null&&(Sa.status=`fulfilled`);var e=ya;ya=null,xa=0,Sa=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function Ta(e,t){var n=[],r={status:`pending`,value:null,reason:null,then:function(e){n.push(e)}};return e.then(function(){r.status=`fulfilled`,r.value=t;for(var e=0;e<n.length;e++)(0,n[e])(t)},function(e){for(r.status=`rejected`,r.reason=e,e=0;e<n.length;e++)(0,n[e])(void 0)}),r}var Ea=k.S;k.S=function(e,t){_u=Pe(),typeof t==`object`&&t&&typeof t.then==`function`&&Ca(e,t),Ea!==null&&Ea(e,t)};var Da=de(null);function Oa(){var e=Da.current;return e===null?Ql.pooledCache:e}function ka(e,t){t===null?pe(Da,Da.current):pe(Da,t.pool)}function Aa(){var e=Oa();return e===null?null:{parent:ga._currentValue,pool:e}}var ja=Error(i(460)),Ma=Error(i(474)),j=Error(i(542)),Na={then:function(){}};function Pa(e){return e=e.status,e===`fulfilled`||e===`rejected`}function M(e,t,n){switch(n=e[n],n===void 0?e.push(t):n!==t&&(t.then(ln,ln),t=n),t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,Ra(e),e;default:if(typeof t.status==`string`)t.then(ln,ln);else{if(e=Ql,e!==null&&100<e.shellSuspendCounter)throw Error(i(482));e=t,e.status=`pending`,e.then(function(e){if(t.status===`pending`){var n=t;n.status=`fulfilled`,n.value=e}},function(e){if(t.status===`pending`){var n=t;n.status=`rejected`,n.reason=e}})}switch(t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,Ra(e),e}throw Ia=t,ja}}function Fa(e){try{var t=e._init;return t(e._payload)}catch(e){throw typeof e==`object`&&e&&typeof e.then==`function`?(Ia=e,ja):e}}var Ia=null;function La(){if(Ia===null)throw Error(i(459));var e=Ia;return Ia=null,e}function Ra(e){if(e===ja||e===j)throw Error(i(483))}var za=null,Ba=0;function Va(e){var t=Ba;return Ba+=1,za===null&&(za=[]),M(za,e,t)}function Ha(e,t){t=t.props.ref,e.ref=t===void 0?null:t}function Ua(e,t){throw t.$$typeof===g?Error(i(525)):(e=Object.prototype.toString.call(t),Error(i(31,e===`[object Object]`?`object with keys {`+Object.keys(t).join(`, `)+`}`:e)))}function Wa(e){function t(t,n){if(e){var r=t.deletions;r===null?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;r!==null;)t(n,r),r=r.sibling;return null}function r(e){for(var t=new Map;e!==null;)e.key===null?t.set(e.index,e):t.set(e.key,e),e=e.sibling;return t}function a(e,t){return e=yi(e,t),e.index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?(r=t.alternate,r===null?(t.flags|=67108866,n):(r=r.index,r<n?(t.flags|=67108866,n):r)):(t.flags|=1048576,n)}function s(t){return e&&t.alternate===null&&(t.flags|=67108866),t}function c(e,t,n,r){return t===null||t.tag!==6?(t=Ci(n,e.mode,r),t.return=e,t):(t=a(t,n),t.return=e,t)}function l(e,t,n,r){var i=n.type;return i===y?d(e,t,n.props.children,r,n.key):t!==null&&(t.elementType===i||typeof i==`object`&&i&&i.$$typeof===E&&Fa(i)===t.type)?(t=a(t,n.props),Ha(t,n),t.return=e,t):(t=xi(n.type,n.key,n.props,null,e.mode,r),Ha(t,n),t.return=e,t)}function u(e,t,n,r){return t===null||t.tag!==4||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?(t=Ti(n,e.mode,r),t.return=e,t):(t=a(t,n.children||[]),t.return=e,t)}function d(e,t,n,r,i){return t===null||t.tag!==7?(t=Si(n,e.mode,r,i),t.return=e,t):(t=a(t,n),t.return=e,t)}function f(e,t,n){if(typeof t==`string`&&t!==``||typeof t==`number`||typeof t==`bigint`)return t=Ci(``+t,e.mode,n),t.return=e,t;if(typeof t==`object`&&t){switch(t.$$typeof){case _:return n=xi(t.type,t.key,t.props,null,e.mode,n),Ha(n,t),n.return=e,n;case v:return t=Ti(t,e.mode,n),t.return=e,t;case E:return t=Fa(t),f(e,t,n)}if(oe(t)||O(t))return t=Si(t,e.mode,n,null),t.return=e,t;if(typeof t.then==`function`)return f(e,Va(t),n);if(t.$$typeof===C)return f(e,da(e,t),n);Ua(e,t)}return null}function p(e,t,n,r){var i=t===null?null:t.key;if(typeof n==`string`&&n!==``||typeof n==`number`||typeof n==`bigint`)return i===null?c(e,t,``+n,r):null;if(typeof n==`object`&&n){switch(n.$$typeof){case _:return n.key===i?l(e,t,n,r):null;case v:return n.key===i?u(e,t,n,r):null;case E:return n=Fa(n),p(e,t,n,r)}if(oe(n)||O(n))return i===null?d(e,t,n,r,null):null;if(typeof n.then==`function`)return p(e,t,Va(n),r);if(n.$$typeof===C)return p(e,t,da(e,n),r);Ua(e,n)}return null}function m(e,t,n,r,i){if(typeof r==`string`&&r!==``||typeof r==`number`||typeof r==`bigint`)return e=e.get(n)||null,c(t,e,``+r,i);if(typeof r==`object`&&r){switch(r.$$typeof){case _:return e=e.get(r.key===null?n:r.key)||null,l(t,e,r,i);case v:return e=e.get(r.key===null?n:r.key)||null,u(t,e,r,i);case E:return r=Fa(r),m(e,t,n,r,i)}if(oe(r)||O(r))return e=e.get(n)||null,d(t,e,r,i,null);if(typeof r.then==`function`)return m(e,t,n,Va(r),i);if(r.$$typeof===C)return m(e,t,n,da(t,r),i);Ua(t,r)}return null}function h(i,a,s,c){for(var l=null,u=null,d=a,h=a=0,g=null;d!==null&&h<s.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),Wi&&Li(i,h),l;if(d===null){for(;h<s.length;h++)d=f(i,s[h],c),d!==null&&(a=o(d,a,h),u===null?l=d:u.sibling=d,u=d);return Wi&&Li(i,h),l}for(d=r(d);h<s.length;h++)g=m(d,i,h,s[h],c),g!==null&&(e&&g.alternate!==null&&d.delete(g.key===null?h:g.key),a=o(g,a,h),u===null?l=g:u.sibling=g,u=g);return e&&d.forEach(function(e){return t(i,e)}),Wi&&Li(i,h),l}function g(a,s,c,l){if(c==null)throw Error(i(151));for(var u=null,d=null,h=s,g=s=0,_=null,v=c.next();h!==null&&!v.done;g++,v=c.next()){h.index>g?(_=h,h=null):_=h.sibling;var y=p(a,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(a,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(a,h),Wi&&Li(a,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(a,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return Wi&&Li(a,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,a,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(a,e)}),Wi&&Li(a,g),u}function b(e,r,o,c){if(typeof o==`object`&&o&&o.type===y&&o.key===null&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case _:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===y){if(r.tag===7){n(e,r.sibling),c=a(r,o.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===E&&Fa(l)===r.type){n(e,r.sibling),c=a(r,o.props),Ha(c,o),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}o.type===y?(c=Si(o.props.children,e.mode,c,o.key),c.return=e,e=c):(c=xi(o.type,o.key,o.props,null,e.mode,c),Ha(c,o),c.return=e,e=c)}return s(e);case v:a:{for(l=o.key;r!==null;){if(r.key===l){if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=a(r,o.children||[]),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}c=Ti(o,e.mode,c),c.return=e,e=c}return s(e);case E:return o=Fa(o),b(e,r,o,c)}if(oe(o))return h(e,r,o,c);if(O(o)){if(l=O(o),typeof l!=`function`)throw Error(i(150));return o=l.call(o),g(e,r,o,c)}if(typeof o.then==`function`)return b(e,r,Va(o),c);if(o.$$typeof===C)return b(e,r,da(e,o),c);Ua(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=a(r,o),c.return=e,e=c):(n(e,r),c=Ci(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{Ba=0;var i=b(e,t,n,r);return za=null,i}catch(t){if(t===ja||t===j)throw t;var a=_i(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var Ga=Wa(!0),Ka=Wa(!1),qa=!1;function Ja(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Ya(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Xa(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Za(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Zl&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=mi(e),pi(e,null,n),t}return ui(e,r,t,n),mi(e)}function Qa(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,ct(e,n)}}function $a(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var eo=!1;function to(){if(eo){var e=Sa;if(e!==null)throw e}}function no(e,t,n,r){eo=!1;var i=e.updateQueue;qa=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,p=f!==s.lane;if(p?(eu&f)===f:(r&f)===f){f!==0&&f===xa&&(eo=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var m=e,g=s;f=t;var _=n;switch(g.tag){case 1:if(m=g.payload,typeof m==`function`){d=m.call(_,d,f);break a}d=m;break a;case 3:m.flags=m.flags&-65537|128;case 0:if(m=g.payload,f=typeof m==`function`?m.call(_,d,f):m,f==null)break a;d=h({},d,f);break a;case 2:qa=!0}}f=s.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=i.callbacks,p===null?i.callbacks=[f]:p.push(f))}else p={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),cu|=o,e.lanes=o,e.memoizedState=d}}function ro(e,t){if(typeof e!=`function`)throw Error(i(191,e));e.call(t)}function io(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;e<n.length;e++)ro(n[e],t)}var ao=de(null),oo=de(0);function so(e,t){e=ou,pe(oo,e),pe(ao,t),ou=e|t.baseLanes}function co(){pe(oo,ou),pe(ao,ao.current)}function lo(){ou=oo.current,fe(ao),fe(oo)}var uo=de(null),fo=null;function po(e){var t=e.alternate;pe(vo,vo.current&1),pe(uo,e),fo===null&&(t===null||ao.current!==null||t.memoizedState!==null)&&(fo=e)}function mo(e){pe(vo,vo.current),pe(uo,e),fo===null&&(fo=e)}function ho(e){e.tag===22?(pe(vo,vo.current),pe(uo,e),fo===null&&(fo=e)):go(e)}function go(){pe(vo,vo.current),pe(uo,uo.current)}function _o(e){fe(uo),fo===e&&(fo=null),fe(vo)}var vo=de(0);function yo(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||Tf(n)||Ef(n)))return t}else if(t.tag===19&&(t.memoizedProps.revealOrder===`forwards`||t.memoizedProps.revealOrder===`backwards`||t.memoizedProps.revealOrder===`unstable_legacy-backwards`||t.memoizedProps.revealOrder===`together`)){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var bo=0,xo=null,So=null,Co=null,wo=!1,To=!1,Eo=!1,Do=0,Oo=0,ko=null,Ao=0;function jo(){throw Error(i(321))}function Mo(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!jr(e[n],t[n]))return!1;return!0}function No(e,t,n,r,i,a){return bo=a,xo=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,k.H=e===null||e.memoizedState===null?Ys:Xs,Eo=!1,a=n(r,i),Eo=!1,To&&(a=Fo(t,n,r,i)),Po(e),a}function Po(e){k.H=Js;var t=So!==null&&So.next!==null;if(bo=0,Co=So=xo=null,wo=!1,Oo=0,ko=null,t)throw Error(i(300));e===null||pc||(e=e.dependencies,e!==null&&ca(e)&&(pc=!0))}function Fo(e,t,n,r){xo=e;var a=0;do{if(To&&(ko=null),Oo=0,To=!1,25<=a)throw Error(i(301));if(a+=1,Co=So=null,e.updateQueue!=null){var o=e.updateQueue;o.lastEffect=null,o.events=null,o.stores=null,o.memoCache!=null&&(o.memoCache.index=0)}k.H=Zs,o=t(n,r)}while(To);return o}function Io(){var e=k.H,t=e.useState()[0];return t=typeof t.then==`function`?Ho(t):t,e=e.useState()[0],(So===null?null:So.memoizedState)!==e&&(xo.flags|=1024),t}function Lo(){var e=Do!==0;return Do=0,e}function Ro(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function zo(e){if(wo){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}wo=!1}bo=0,Co=So=xo=null,To=!1,Oo=Do=0,ko=null}function Bo(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Co===null?xo.memoizedState=Co=e:Co=Co.next=e,Co}function N(){if(So===null){var e=xo.alternate;e=e===null?null:e.memoizedState}else e=So.next;var t=Co===null?xo.memoizedState:Co.next;if(t!==null)Co=t,So=e;else{if(e===null)throw xo.alternate===null?Error(i(467)):Error(i(310));So=e,e={memoizedState:So.memoizedState,baseState:So.baseState,baseQueue:So.baseQueue,queue:So.queue,next:null},Co===null?xo.memoizedState=Co=e:Co=Co.next=e}return Co}function Vo(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Ho(e){var t=Oo;return Oo+=1,ko===null&&(ko=[]),e=M(ko,e,t),t=xo,(Co===null?t.memoizedState:Co.next)===null&&(t=t.alternate,k.H=t===null||t.memoizedState===null?Ys:Xs),e}function Uo(e){if(typeof e==`object`&&e){if(typeof e.then==`function`)return Ho(e);if(e.$$typeof===C)return ua(e)}throw Error(i(438,String(e)))}function Wo(e){var t=null,n=xo.updateQueue;if(n!==null&&(t=n.memoCache),t==null){var r=xo.alternate;r!==null&&(r=r.updateQueue,r!==null&&(r=r.memoCache,r!=null&&(t={data:r.data.map(function(e){return e.slice()}),index:0})))}if(t??={data:[],index:0},n===null&&(n=Vo(),xo.updateQueue=n),n.memoCache=t,n=t.data[t.index],n===void 0)for(n=t.data[t.index]=Array(e),r=0;r<e;r++)n[r]=D;return t.index++,n}function Go(e,t){return typeof t==`function`?t(e):t}function Ko(e){return qo(N(),So,e)}function qo(e,t,n){var r=e.queue;if(r===null)throw Error(i(311));r.lastRenderedReducer=n;var a=e.baseQueue,o=r.pending;if(o!==null){if(a!==null){var s=a.next;a.next=o.next,o.next=s}t.baseQueue=a=o,r.pending=null}if(o=e.baseState,a===null)e.memoizedState=o;else{t=a.next;var c=s=null,l=null,u=t,d=!1;do{var f=u.lane&-536870913;if(f===u.lane?(bo&f)===f:(eu&f)===f){var p=u.revertLane;if(p===0)l!==null&&(l=l.next={lane:0,revertLane:0,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),f===xa&&(d=!0);else if((bo&p)===p){u=u.next,p===xa&&(d=!0);continue}else f={lane:0,revertLane:u.revertLane,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=f,s=o):l=l.next=f,xo.lanes|=p,cu|=p;f=u.action,Eo&&n(o,f),o=u.hasEagerState?u.eagerState:n(o,f)}else p={lane:f,revertLane:u.revertLane,gesture:u.gesture,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=p,s=o):l=l.next=p,xo.lanes|=f,cu|=f;u=u.next}while(u!==null&&u!==t);if(l===null?s=o:l.next=c,!jr(o,e.memoizedState)&&(pc=!0,d&&(n=Sa,n!==null)))throw n;e.memoizedState=o,e.baseState=s,e.baseQueue=l,r.lastRenderedState=o}return a===null&&(r.lanes=0),[e.memoizedState,r.dispatch]}function Jo(e){var t=N(),n=t.queue;if(n===null)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(a!==null){n.pending=null;var s=a=a.next;do o=e(o,s.action),s=s.next;while(s!==a);jr(o,t.memoizedState)||(pc=!0),t.memoizedState=o,t.baseQueue===null&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function Yo(e,t,n){var r=xo,a=N(),o=Wi;if(o){if(n===void 0)throw Error(i(407));n=n()}else n=t();var s=!jr((So||a).memoizedState,n);if(s&&(a.memoizedState=n,pc=!0),a=a.queue,bs(Qo.bind(null,r,a,e),[e]),a.getSnapshot!==t||s||Co!==null&&Co.memoizedState.tag&1){if(r.flags|=2048,hs(9,{destroy:void 0},Zo.bind(null,r,a,n,t),null),Ql===null)throw Error(i(349));o||bo&127||Xo(r,t,n)}return n}function Xo(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=xo.updateQueue,t===null?(t=Vo(),xo.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function Zo(e,t,n,r){t.value=n,t.getSnapshot=r,$o(t)&&es(e)}function Qo(e,t,n){return n(function(){$o(t)&&es(e)})}function $o(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!jr(e,n)}catch{return!0}}function es(e){var t=fi(e,2);t!==null&&Mu(t,e,2)}function ts(e){var t=Bo();if(typeof e==`function`){var n=e;if(e=n(),Eo){Ge(!0);try{n()}finally{Ge(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Go,lastRenderedState:e},t}function ns(e,t,n,r){return e.baseState=n,qo(e,So,typeof r==`function`?r:Go)}function rs(e,t,n,r,a){if(Gs(e))throw Error(i(485));if(e=t.action,e!==null){var o={payload:a,action:e,next:null,isTransition:!0,status:`pending`,value:null,reason:null,listeners:[],then:function(e){o.listeners.push(e)}};k.T===null?o.isTransition=!1:n(!0),r(o),n=t.pending,n===null?(o.next=t.pending=o,is(t,o)):(o.next=n.next,t.pending=n.next=o)}}function is(e,t){var n=t.action,r=t.payload,i=e.state;if(t.isTransition){var a=k.T,o={};k.T=o;try{var s=n(i,r),c=k.S;c!==null&&c(o,s),as(e,t,s)}catch(n){ss(e,t,n)}finally{a!==null&&o.types!==null&&(a.types=o.types),k.T=a}}else try{a=n(i,r),as(e,t,a)}catch(n){ss(e,t,n)}}function as(e,t,n){typeof n==`object`&&n&&typeof n.then==`function`?n.then(function(n){os(e,t,n)},function(n){return ss(e,t,n)}):os(e,t,n)}function os(e,t,n){t.status=`fulfilled`,t.value=n,cs(t),e.state=n,t=e.pending,t!==null&&(n=t.next,n===t?e.pending=null:(n=n.next,t.next=n,is(e,n)))}function ss(e,t,n){var r=e.pending;if(e.pending=null,r!==null){r=r.next;do t.status=`rejected`,t.reason=n,cs(t),t=t.next;while(t!==r)}e.action=null}function cs(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function ls(e,t){return t}function us(e,t){if(Wi){var n=Ql.formState;if(n!==null){a:{var r=xo;if(Wi){if(Ui){b:{for(var i=Ui,a=Ki;i.nodeType!==8;){if(!a){i=null;break b}if(i=Of(i.nextSibling),i===null){i=null;break b}}a=i.data,i=a===`F!`||a===`F`?i:null}if(i){Ui=Of(i.nextSibling),r=i.data===`F!`;break a}}Ji(r)}r=!1}r&&(t=n[0])}}return n=Bo(),n.memoizedState=n.baseState=t,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:ls,lastRenderedState:t},n.queue=r,n=Hs.bind(null,xo,r),r.dispatch=n,r=ts(!1),a=Ws.bind(null,xo,!1,r.queue),r=Bo(),i={state:t,dispatch:null,action:e,pending:null},r.queue=i,n=rs.bind(null,xo,i,a,n),i.dispatch=n,r.memoizedState=e,[t,n,!1]}function ds(e){return fs(N(),So,e)}function fs(e,t,n){if(t=qo(e,t,ls)[0],e=Ko(Go)[0],typeof t==`object`&&t&&typeof t.then==`function`)try{var r=Ho(t)}catch(e){throw e===ja?j:e}else r=t;t=N();var i=t.queue,a=i.dispatch;return n!==t.memoizedState&&(xo.flags|=2048,hs(9,{destroy:void 0},ps.bind(null,i,n),null)),[r,a,e]}function ps(e,t){e.action=t}function ms(e){var t=N(),n=So;if(n!==null)return fs(t,n,e);N(),t=t.memoizedState,n=N();var r=n.queue.dispatch;return n.memoizedState=e,[t,r,!1]}function hs(e,t,n,r){return e={tag:e,create:n,deps:r,inst:t,next:null},t=xo.updateQueue,t===null&&(t=Vo(),xo.updateQueue=t),n=t.lastEffect,n===null?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function gs(){return N().memoizedState}function _s(e,t,n,r){var i=Bo();xo.flags|=e,i.memoizedState=hs(1|t,{destroy:void 0},n,r===void 0?null:r)}function vs(e,t,n,r){var i=N();r=r===void 0?null:r;var a=i.memoizedState.inst;So!==null&&r!==null&&Mo(r,So.memoizedState.deps)?i.memoizedState=hs(t,a,n,r):(xo.flags|=e,i.memoizedState=hs(1|t,a,n,r))}function ys(e,t){_s(8390656,8,e,t)}function bs(e,t){vs(2048,8,e,t)}function xs(e){xo.flags|=4;var t=xo.updateQueue;if(t===null)t=Vo(),xo.updateQueue=t,t.events=[e];else{var n=t.events;n===null?t.events=[e]:n.push(e)}}function Ss(e){var t=N().memoizedState;return xs({ref:t,nextImpl:e}),function(){if(Zl&2)throw Error(i(440));return t.impl.apply(void 0,arguments)}}function Cs(e,t){return vs(4,2,e,t)}function ws(e,t){return vs(4,4,e,t)}function Ts(e,t){if(typeof t==`function`){e=e();var n=t(e);return function(){typeof n==`function`?n():t(null)}}if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function Es(e,t,n){n=n==null?null:n.concat([e]),vs(4,4,Ts.bind(null,t,e),n)}function Ds(){}function Os(e,t){var n=N();t=t===void 0?null:t;var r=n.memoizedState;return t!==null&&Mo(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function ks(e,t){var n=N();t=t===void 0?null:t;var r=n.memoizedState;if(t!==null&&Mo(t,r[1]))return r[0];if(r=e(),Eo){Ge(!0);try{e()}finally{Ge(!1)}}return n.memoizedState=[r,t],r}function As(e,t,n){return n===void 0||bo&1073741824&&!(eu&261930)?e.memoizedState=t:(e.memoizedState=n,e=ju(),xo.lanes|=e,cu|=e,n)}function js(e,t,n,r){return jr(n,t)?n:ao.current===null?!(bo&42)||bo&1073741824&&!(eu&261930)?(pc=!0,e.memoizedState=n):(e=ju(),xo.lanes|=e,cu|=e,t):(e=As(e,n,r),jr(e,t)||(pc=!0),e)}function Ms(e,t,n,r,i){var a=se.p;se.p=a!==0&&8>a?a:8;var o=k.T,s={};k.T=s,Ws(e,!1,t,n);try{var c=i(),l=k.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?Us(e,t,Ta(c,r),Au(e)):Us(e,t,r,Au(e))}catch(n){Us(e,t,{then:function(){},status:`rejected`,reason:n},Au())}finally{se.p=a,o!==null&&s.types!==null&&(o.types=s.types),k.T=o}}function Ns(){}function Ps(e,t,n,r){if(e.tag!==5)throw Error(i(476));var a=Fs(e).queue;Ms(e,a,t,ce,n===null?Ns:function(){return Is(e),n(r)})}function Fs(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:ce,baseState:ce,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Go,lastRenderedState:ce},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Go,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Is(e){var t=Fs(e);t.next===null&&(t=e.alternate.memoizedState),Us(e,t.next.queue,{},Au())}function Ls(){return ua(mp)}function Rs(){return N().memoizedState}function zs(){return N().memoizedState}function Bs(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=Au();e=Xa(n);var r=Za(t,e,n);r!==null&&(Mu(r,t,n),Qa(r,t,n)),t={cache:_a()},e.payload=t;return}t=t.return}}function Vs(e,t,n){var r=Au();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Gs(e)?Ks(t,n):(n=di(e,t,n,r),n!==null&&(Mu(n,e,r),qs(n,t,r)))}function Hs(e,t,n){Us(e,t,n,Au())}function Us(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Gs(e))Ks(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,jr(s,o))return ui(e,t,i,0),Ql===null&&li(),!1}catch{}if(n=di(e,t,i,r),n!==null)return Mu(n,e,r),qs(n,t,r),!0}return!1}function Ws(e,t,n,r){if(r={lane:2,revertLane:kd(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Gs(e)){if(t)throw Error(i(479))}else t=di(e,n,r,2),t!==null&&Mu(t,e,2)}function Gs(e){var t=e.alternate;return e===xo||t!==null&&t===xo}function Ks(e,t){To=wo=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function qs(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,ct(e,n)}}var Js={readContext:ua,use:Uo,useCallback:jo,useContext:jo,useEffect:jo,useImperativeHandle:jo,useLayoutEffect:jo,useInsertionEffect:jo,useMemo:jo,useReducer:jo,useRef:jo,useState:jo,useDebugValue:jo,useDeferredValue:jo,useTransition:jo,useSyncExternalStore:jo,useId:jo,useHostTransitionStatus:jo,useFormState:jo,useActionState:jo,useOptimistic:jo,useMemoCache:jo,useCacheRefresh:jo};Js.useEffectEvent=jo;var Ys={readContext:ua,use:Uo,useCallback:function(e,t){return Bo().memoizedState=[e,t===void 0?null:t],e},useContext:ua,useEffect:ys,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),_s(4194308,4,Ts.bind(null,t,e),n)},useLayoutEffect:function(e,t){return _s(4194308,4,e,t)},useInsertionEffect:function(e,t){_s(4,2,e,t)},useMemo:function(e,t){var n=Bo();t=t===void 0?null:t;var r=e();if(Eo){Ge(!0);try{e()}finally{Ge(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=Bo();if(n!==void 0){var i=n(t);if(Eo){Ge(!0);try{n(t)}finally{Ge(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=Vs.bind(null,xo,e),[r.memoizedState,e]},useRef:function(e){var t=Bo();return e={current:e},t.memoizedState=e},useState:function(e){e=ts(e);var t=e.queue,n=Hs.bind(null,xo,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:Ds,useDeferredValue:function(e,t){return As(Bo(),e,t)},useTransition:function(){var e=ts(!1);return e=Ms.bind(null,xo,e.queue,!0,!1),Bo().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=xo,a=Bo();if(Wi){if(n===void 0)throw Error(i(407));n=n()}else{if(n=t(),Ql===null)throw Error(i(349));eu&127||Xo(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,ys(Qo.bind(null,r,o,e),[e]),r.flags|=2048,hs(9,{destroy:void 0},Zo.bind(null,r,o,n,t),null),n},useId:function(){var e=Bo(),t=Ql.identifierPrefix;if(Wi){var n=Ii,r=Fi;n=(r&~(1<<32-Ke(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=Do++,0<n&&(t+=`H`+n.toString(32)),t+=`_`}else n=Ao++,t=`_`+t+`r_`+n.toString(32)+`_`;return e.memoizedState=t},useHostTransitionStatus:Ls,useFormState:us,useActionState:us,useOptimistic:function(e){var t=Bo();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=Ws.bind(null,xo,!0,n),n.dispatch=t,[e,t]},useMemoCache:Wo,useCacheRefresh:function(){return Bo().memoizedState=Bs.bind(null,xo)},useEffectEvent:function(e){var t=Bo(),n={impl:e};return t.memoizedState=n,function(){if(Zl&2)throw Error(i(440));return n.impl.apply(void 0,arguments)}}},Xs={readContext:ua,use:Uo,useCallback:Os,useContext:ua,useEffect:bs,useImperativeHandle:Es,useInsertionEffect:Cs,useLayoutEffect:ws,useMemo:ks,useReducer:Ko,useRef:gs,useState:function(){return Ko(Go)},useDebugValue:Ds,useDeferredValue:function(e,t){return js(N(),So.memoizedState,e,t)},useTransition:function(){var e=Ko(Go)[0],t=N().memoizedState;return[typeof e==`boolean`?e:Ho(e),t]},useSyncExternalStore:Yo,useId:Rs,useHostTransitionStatus:Ls,useFormState:ds,useActionState:ds,useOptimistic:function(e,t){return ns(N(),So,e,t)},useMemoCache:Wo,useCacheRefresh:zs};Xs.useEffectEvent=Ss;var Zs={readContext:ua,use:Uo,useCallback:Os,useContext:ua,useEffect:bs,useImperativeHandle:Es,useInsertionEffect:Cs,useLayoutEffect:ws,useMemo:ks,useReducer:Jo,useRef:gs,useState:function(){return Jo(Go)},useDebugValue:Ds,useDeferredValue:function(e,t){var n=N();return So===null?As(n,e,t):js(n,So.memoizedState,e,t)},useTransition:function(){var e=Jo(Go)[0],t=N().memoizedState;return[typeof e==`boolean`?e:Ho(e),t]},useSyncExternalStore:Yo,useId:Rs,useHostTransitionStatus:Ls,useFormState:ms,useActionState:ms,useOptimistic:function(e,t){var n=N();return So===null?(n.baseState=e,[e,n.queue.dispatch]):ns(n,So,e,t)},useMemoCache:Wo,useCacheRefresh:zs};Zs.useEffectEvent=Ss;function Qs(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:h({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var $s={enqueueSetState:function(e,t,n){e=e._reactInternals;var r=Au(),i=Xa(r);i.payload=t,n!=null&&(i.callback=n),t=Za(e,i,r),t!==null&&(Mu(t,e,r),Qa(t,e,r))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=Au(),i=Xa(r);i.tag=1,i.payload=t,n!=null&&(i.callback=n),t=Za(e,i,r),t!==null&&(Mu(t,e,r),Qa(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=Au(),r=Xa(n);r.tag=2,t!=null&&(r.callback=t),t=Za(e,r,n),t!==null&&(Mu(t,e,n),Qa(t,e,n))}};function ec(e,t,n,r,i,a,o){return e=e.stateNode,typeof e.shouldComponentUpdate==`function`?e.shouldComponentUpdate(r,a,o):t.prototype&&t.prototype.isPureReactComponent?!Mr(n,r)||!Mr(i,a):!0}function tc(e,t,n,r){e=t.state,typeof t.componentWillReceiveProps==`function`&&t.componentWillReceiveProps(n,r),typeof t.UNSAFE_componentWillReceiveProps==`function`&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&$s.enqueueReplaceState(t,t.state,null)}function nc(e,t){var n=t;if(`ref`in t)for(var r in n={},t)r!==`ref`&&(n[r]=t[r]);if(e=e.defaultProps)for(var i in n===t&&(n=h({},n)),e)n[i]===void 0&&(n[i]=e[i]);return n}function rc(e){ai(e)}function ic(e){console.error(e)}function ac(e){ai(e)}function oc(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(e){setTimeout(function(){throw e})}}function sc(e,t,n){try{var r=e.onCaughtError;r(n.value,{componentStack:n.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(e){setTimeout(function(){throw e})}}function cc(e,t,n){return n=Xa(n),n.tag=3,n.payload={element:null},n.callback=function(){oc(e,t)},n}function lc(e){return e=Xa(e),e.tag=3,e}function uc(e,t,n,r){var i=n.type.getDerivedStateFromError;if(typeof i==`function`){var a=r.value;e.payload=function(){return i(a)},e.callback=function(){sc(t,n,r)}}var o=n.stateNode;o!==null&&typeof o.componentDidCatch==`function`&&(e.callback=function(){sc(t,n,r),typeof i!=`function`&&(bu===null?bu=new Set([this]):bu.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:e===null?``:e})})}function dc(e,t,n,r,a){if(n.flags|=32768,typeof r==`object`&&r&&typeof r.then==`function`){if(t=n.alternate,t!==null&&sa(t,n,a,!0),n=uo.current,n!==null){switch(n.tag){case 31:case 13:return fo===null?Wu():n.alternate===null&&su===0&&(su=3),n.flags&=-257,n.flags|=65536,n.lanes=a,r===Na?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([r]):t.add(r),ld(e,r,a)),!1;case 22:return n.flags|=65536,r===Na?n.flags|=16384:(t=n.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([r])},n.updateQueue=t):(n=t.retryQueue,n===null?t.retryQueue=new Set([r]):n.add(r)),ld(e,r,a)),!1}throw Error(i(435,n.tag))}return ld(e,r,a),Wu(),!1}if(Wi)return t=uo.current,t===null?(r!==qi&&(t=Error(i(423),{cause:r}),ea(Di(t,n))),e=e.current.alternate,e.flags|=65536,a&=-a,e.lanes|=a,r=Di(r,n),a=cc(e.stateNode,r,a),$a(e,a),su!==4&&(su=2)):(!(t.flags&65536)&&(t.flags|=256),t.flags|=65536,t.lanes=a,r!==qi&&(e=Error(i(422),{cause:r}),ea(Di(e,n)))),!1;var o=Error(i(520),{cause:r});if(o=Di(o,n),pu===null?pu=[o]:pu.push(o),su!==4&&(su=2),t===null)return!0;r=Di(r,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=a&-a,n.lanes|=e,e=cc(n.stateNode,r,e),$a(n,e),!1;case 1:if(t=n.type,o=n.stateNode,!(n.flags&128)&&(typeof t.getDerivedStateFromError==`function`||o!==null&&typeof o.componentDidCatch==`function`&&(bu===null||!bu.has(o))))return n.flags|=65536,a&=-a,n.lanes|=a,a=lc(a),uc(a,e,n,r),$a(n,a),!1}n=n.return}while(n!==null);return!1}var fc=Error(i(461)),pc=!1;function mc(e,t,n,r){t.child=e===null?Ka(t,null,n,r):Ga(t,e.child,n,r)}function hc(e,t,n,r,i){n=n.render;var a=t.ref;if(`ref`in r){var o={};for(var s in r)s!==`ref`&&(o[s]=r[s])}else o=r;return la(t),r=No(e,t,n,o,a,i),s=Lo(),e!==null&&!pc?(Ro(e,t,i),zc(e,t,i)):(Wi&&s&&zi(t),t.flags|=1,mc(e,t,r,i),t.child)}function gc(e,t,n,r,i){if(e===null){var a=n.type;return typeof a==`function`&&!vi(a)&&a.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=a,_c(e,t,a,r,i)):(e=xi(n.type,null,r,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(a=e.child,!Bc(e,i)){var o=a.memoizedProps;if(n=n.compare,n=n===null?Mr:n,n(o,r)&&e.ref===t.ref)return zc(e,t,i)}return t.flags|=1,e=yi(a,r),e.ref=t.ref,e.return=t,t.child=e}function _c(e,t,n,r,i){if(e!==null){var a=e.memoizedProps;if(Mr(a,r)&&e.ref===t.ref){if(pc=!1,t.pendingProps=r=a,Bc(e,i))e.flags&131072&&(pc=!0);else return t.lanes=e.lanes,zc(e,t,i)}}return Tc(e,t,n,r,i)}function vc(e,t,n,r){var i=r.children,a=e===null?null:e.memoizedState;if(e===null&&t.stateNode===null&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),r.mode===`hidden`){if(t.flags&128){if(a=a===null?n:a.baseLanes|n,e!==null){for(r=t.child=e.child,i=0;r!==null;)i=i|r.lanes|r.childLanes,r=r.sibling;r=i&~a}else r=0,t.child=null;return bc(e,t,a,n,r)}if(n&536870912)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&ka(t,a===null?null:a.cachePool),a===null?co():so(t,a),ho(t);else return r=t.lanes=536870912,bc(e,t,a===null?n:a.baseLanes|n,n,r)}else a===null?(e!==null&&ka(t,null),co(),go(t)):(ka(t,a.cachePool),so(t,a),go(t),t.memoizedState=null);return mc(e,t,i,n),t.child}function yc(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function bc(e,t,n,r,i){var a=Oa();return a=a===null?null:{parent:ga._currentValue,pool:a},t.memoizedState={baseLanes:n,cachePool:a},e!==null&&ka(t,null),co(),ho(t),e!==null&&sa(e,t,r,!0),t.childLanes=i,null}function xc(e,t){return t=Pc({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function Sc(e,t,n){return Ga(t,e.child,null,n),e=xc(t,t.pendingProps),e.flags|=2,_o(t),t.memoizedState=null,e}function Cc(e,t,n){var r=t.pendingProps,a=!!(t.flags&128);if(t.flags&=-129,e===null){if(Wi){if(r.mode===`hidden`)return e=xc(t,r),t.lanes=536870912,yc(null,e);if(mo(t),(e=Ui)?(e=wf(e,Ki),e=e!==null&&e.data===`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:Pi===null?null:{id:Fi,overflow:Ii},retryLane:536870912,hydrationErrors:null},n=wi(e),n.return=t,t.child=n,Hi=t,Ui=null)):e=null,e===null)throw Ji(t);return t.lanes=536870912,null}return xc(t,r)}var o=e.memoizedState;if(o!==null){var s=o.dehydrated;if(mo(t),a){if(t.flags&256)t.flags&=-257,t=Sc(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(i(558))}else if(pc||sa(e,t,n,!1),a=(n&e.childLanes)!==0,pc||a){if(r=Ql,r!==null&&(s=lt(r,n),s!==0&&s!==o.retryLane))throw o.retryLane=s,fi(e,s),Mu(r,e,s),fc;Wu(),t=Sc(e,t,n)}else e=o.treeContext,Ui=Of(s.nextSibling),Hi=t,Wi=!0,Gi=null,Ki=!1,e!==null&&Vi(t,e),t=xc(t,r),t.flags|=4096;return t}return e=yi(e.child,{mode:r.mode,children:r.children}),e.ref=t.ref,t.child=e,e.return=t,e}function wc(e,t){var n=t.ref;if(n===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof n!=`function`&&typeof n!=`object`)throw Error(i(284));(e===null||e.ref!==n)&&(t.flags|=4194816)}}function Tc(e,t,n,r,i){return la(t),n=No(e,t,n,r,void 0,i),r=Lo(),e!==null&&!pc?(Ro(e,t,i),zc(e,t,i)):(Wi&&r&&zi(t),t.flags|=1,mc(e,t,n,i),t.child)}function Ec(e,t,n,r,i,a){return la(t),t.updateQueue=null,n=Fo(t,r,n,i),Po(e),r=Lo(),e!==null&&!pc?(Ro(e,t,a),zc(e,t,a)):(Wi&&r&&zi(t),t.flags|=1,mc(e,t,n,a),t.child)}function Dc(e,t,n,r,i){if(la(t),t.stateNode===null){var a=hi,o=n.contextType;typeof o==`object`&&o&&(a=ua(o)),a=new n(r,a),t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,a.updater=$s,t.stateNode=a,a._reactInternals=t,a=t.stateNode,a.props=r,a.state=t.memoizedState,a.refs={},Ja(t),o=n.contextType,a.context=typeof o==`object`&&o?ua(o):hi,a.state=t.memoizedState,o=n.getDerivedStateFromProps,typeof o==`function`&&(Qs(t,n,o,r),a.state=t.memoizedState),typeof n.getDerivedStateFromProps==`function`||typeof a.getSnapshotBeforeUpdate==`function`||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(o=a.state,typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount(),o!==a.state&&$s.enqueueReplaceState(a,a.state,null),no(t,r,a,i),to(),a.state=t.memoizedState),typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!0}else if(e===null){a=t.stateNode;var s=t.memoizedProps,c=nc(n,s);a.props=c;var l=a.context,u=n.contextType;o=hi,typeof u==`object`&&u&&(o=ua(u));var d=n.getDerivedStateFromProps;u=typeof d==`function`||typeof a.getSnapshotBeforeUpdate==`function`,s=t.pendingProps!==s,u||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(s||l!==o)&&tc(t,a,r,o),qa=!1;var f=t.memoizedState;a.state=f,no(t,r,a,i),to(),l=t.memoizedState,s||f!==l||qa?(typeof d==`function`&&(Qs(t,n,d,r),l=t.memoizedState),(c=qa||ec(t,n,c,r,f,l,o))?(u||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount()),typeof a.componentDidMount==`function`&&(t.flags|=4194308)):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),a.props=r,a.state=l,a.context=o,r=c):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!1)}else{a=t.stateNode,Ya(e,t),o=t.memoizedProps,u=nc(n,o),a.props=u,d=t.pendingProps,f=a.context,l=n.contextType,c=hi,typeof l==`object`&&l&&(c=ua(l)),s=n.getDerivedStateFromProps,(l=typeof s==`function`||typeof a.getSnapshotBeforeUpdate==`function`)||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(o!==d||f!==c)&&tc(t,a,r,c),qa=!1,f=t.memoizedState,a.state=f,no(t,r,a,i),to();var p=t.memoizedState;o!==d||f!==p||qa||e!==null&&e.dependencies!==null&&ca(e.dependencies)?(typeof s==`function`&&(Qs(t,n,s,r),p=t.memoizedState),(u=qa||ec(t,n,u,r,f,p,c)||e!==null&&e.dependencies!==null&&ca(e.dependencies))?(l||typeof a.UNSAFE_componentWillUpdate!=`function`&&typeof a.componentWillUpdate!=`function`||(typeof a.componentWillUpdate==`function`&&a.componentWillUpdate(r,p,c),typeof a.UNSAFE_componentWillUpdate==`function`&&a.UNSAFE_componentWillUpdate(r,p,c)),typeof a.componentDidUpdate==`function`&&(t.flags|=4),typeof a.getSnapshotBeforeUpdate==`function`&&(t.flags|=1024)):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=p),a.props=r,a.state=p,a.context=c,r=u):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return a=r,wc(e,t),r=!!(t.flags&128),a||r?(a=t.stateNode,n=r&&typeof n.getDerivedStateFromError!=`function`?null:a.render(),t.flags|=1,e!==null&&r?(t.child=Ga(t,e.child,null,i),t.child=Ga(t,null,n,i)):mc(e,t,n,i),t.memoizedState=a.state,e=t.child):e=zc(e,t,i),e}function Oc(e,t,n,r){return Qi(),t.flags|=256,mc(e,t,n,r),t.child}var kc={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Ac(e){return{baseLanes:e,cachePool:Aa()}}function jc(e,t,n){return e=e===null?0:e.childLanes&~n,t&&(e|=du),e}function Mc(e,t,n){var r=t.pendingProps,a=!1,o=!!(t.flags&128),s;if((s=o)||(s=e!==null&&e.memoizedState===null?!1:!!(vo.current&2)),s&&(a=!0,t.flags&=-129),s=!!(t.flags&32),t.flags&=-33,e===null){if(Wi){if(a?po(t):go(t),(e=Ui)?(e=wf(e,Ki),e=e!==null&&e.data!==`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:Pi===null?null:{id:Fi,overflow:Ii},retryLane:536870912,hydrationErrors:null},n=wi(e),n.return=t,t.child=n,Hi=t,Ui=null)):e=null,e===null)throw Ji(t);return Ef(e)?t.lanes=32:t.lanes=536870912,null}var c=r.children;return r=r.fallback,a?(go(t),a=t.mode,c=Pc({mode:`hidden`,children:c},a),r=Si(r,a,n,null),c.return=t,r.return=t,c.sibling=r,t.child=c,r=t.child,r.memoizedState=Ac(n),r.childLanes=jc(e,s,n),t.memoizedState=kc,yc(null,r)):(po(t),Nc(t,c))}var l=e.memoizedState;if(l!==null&&(c=l.dehydrated,c!==null)){if(o)t.flags&256?(po(t),t.flags&=-257,t=Fc(e,t,n)):t.memoizedState===null?(go(t),c=r.fallback,a=t.mode,r=Pc({mode:`visible`,children:r.children},a),c=Si(c,a,n,null),c.flags|=2,r.return=t,c.return=t,r.sibling=c,t.child=r,Ga(t,e.child,null,n),r=t.child,r.memoizedState=Ac(n),r.childLanes=jc(e,s,n),t.memoizedState=kc,t=yc(null,r)):(go(t),t.child=e.child,t.flags|=128,t=null);else if(po(t),Ef(c)){if(s=c.nextSibling&&c.nextSibling.dataset,s)var u=s.dgst;s=u,r=Error(i(419)),r.stack=``,r.digest=s,ea({value:r,source:null,stack:null}),t=Fc(e,t,n)}else if(pc||sa(e,t,n,!1),s=(n&e.childLanes)!==0,pc||s){if(s=Ql,s!==null&&(r=lt(s,n),r!==0&&r!==l.retryLane))throw l.retryLane=r,fi(e,r),Mu(s,e,r),fc;Tf(c)||Wu(),t=Fc(e,t,n)}else Tf(c)?(t.flags|=192,t.child=e.child,t=null):(e=l.treeContext,Ui=Of(c.nextSibling),Hi=t,Wi=!0,Gi=null,Ki=!1,e!==null&&Vi(t,e),t=Nc(t,r.children),t.flags|=4096);return t}return a?(go(t),c=r.fallback,a=t.mode,l=e.child,u=l.sibling,r=yi(l,{mode:`hidden`,children:r.children}),r.subtreeFlags=l.subtreeFlags&65011712,u===null?(c=Si(c,a,n,null),c.flags|=2):c=yi(u,c),c.return=t,r.return=t,r.sibling=c,t.child=r,yc(null,r),r=t.child,c=e.child.memoizedState,c===null?c=Ac(n):(a=c.cachePool,a===null?a=Aa():(l=ga._currentValue,a=a.parent===l?a:{parent:l,pool:l}),c={baseLanes:c.baseLanes|n,cachePool:a}),r.memoizedState=c,r.childLanes=jc(e,s,n),t.memoizedState=kc,yc(e.child,r)):(po(t),n=e.child,e=n.sibling,n=yi(n,{mode:`visible`,children:r.children}),n.return=t,n.sibling=null,e!==null&&(s=t.deletions,s===null?(t.deletions=[e],t.flags|=16):s.push(e)),t.child=n,t.memoizedState=null,n)}function Nc(e,t){return t=Pc({mode:`visible`,children:t},e.mode),t.return=e,e.child=t}function Pc(e,t){return e=_i(22,e,null,t),e.lanes=0,e}function Fc(e,t,n){return Ga(t,e.child,null,n),e=Nc(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Ic(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),oa(e.return,t,n)}function Lc(e,t,n,r,i,a){var o=e.memoizedState;o===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:i,treeForkCount:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=i,o.treeForkCount=a)}function Rc(e,t,n){var r=t.pendingProps,i=r.revealOrder,a=r.tail;r=r.children;var o=vo.current,s=!!(o&2);if(s?(o=o&1|2,t.flags|=128):o&=1,pe(vo,o),mc(e,t,r,n),r=Wi?ji:0,!s&&e!==null&&e.flags&128)a:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Ic(e,n,t);else if(e.tag===19)Ic(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break a;for(;e.sibling===null;){if(e.return===null||e.return===t)break a;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(i){case`forwards`:for(n=t.child,i=null;n!==null;)e=n.alternate,e!==null&&yo(e)===null&&(i=n),n=n.sibling;n=i,n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),Lc(t,!1,i,n,a,r);break;case`backwards`:case`unstable_legacy-backwards`:for(n=null,i=t.child,t.child=null;i!==null;){if(e=i.alternate,e!==null&&yo(e)===null){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}Lc(t,!0,n,null,a,r);break;case`together`:Lc(t,!1,null,null,void 0,r);break;default:t.memoizedState=null}return t.child}function zc(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),cu|=t.lanes,(n&t.childLanes)===0){if(e!==null){if(sa(e,t,n,!1),(n&t.childLanes)===0)return null}else return null}if(e!==null&&t.child!==e.child)throw Error(i(153));if(t.child!==null){for(e=t.child,n=yi(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=yi(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function Bc(e,t){return(e.lanes&t)!==0||(e=e.dependencies,!!(e!==null&&ca(e)))}function Vc(e,t,n){switch(t.tag){case 3:ve(t,t.stateNode.containerInfo),ia(t,ga,e.memoizedState.cache),Qi();break;case 27:case 5:be(t);break;case 4:ve(t,t.stateNode.containerInfo);break;case 10:ia(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,mo(t),null;break;case 13:var r=t.memoizedState;if(r!==null)return r.dehydrated===null?(n&t.child.childLanes)===0?(po(t),e=zc(e,t,n),e===null?null:e.sibling):Mc(e,t,n):(po(t),t.flags|=128,null);po(t);break;case 19:var i=!!(e.flags&128);if(r=(n&t.childLanes)!==0,r||=(sa(e,t,n,!1),(n&t.childLanes)!==0),i){if(r)return Rc(e,t,n);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),pe(vo,vo.current),r)break;return null;case 22:return t.lanes=0,vc(e,t,n,t.pendingProps);case 24:ia(t,ga,e.memoizedState.cache)}return zc(e,t,n)}function Hc(e,t,n){if(e!==null){if(e.memoizedProps!==t.pendingProps)pc=!0;else{if(!Bc(e,n)&&!(t.flags&128))return pc=!1,Vc(e,t,n);pc=!!(e.flags&131072)}}else pc=!1,Wi&&t.flags&1048576&&Ri(t,ji,t.index);switch(t.lanes=0,t.tag){case 16:a:{var r=t.pendingProps;if(e=Fa(t.elementType),t.type=e,typeof e==`function`)vi(e)?(r=nc(e,r),t.tag=1,t=Dc(null,t,e,r,n)):(t.tag=0,t=Tc(null,t,e,r,n));else{if(e!=null){var a=e.$$typeof;if(a===w){t.tag=11,t=hc(null,t,e,r,n);break a}if(a===te){t.tag=14,t=gc(null,t,e,r,n);break a}}throw t=ae(e)||e,Error(i(306,t,``))}}return t;case 0:return Tc(e,t,t.type,t.pendingProps,n);case 1:return r=t.type,a=nc(r,t.pendingProps),Dc(e,t,r,a,n);case 3:a:{if(ve(t,t.stateNode.containerInfo),e===null)throw Error(i(387));r=t.pendingProps;var o=t.memoizedState;a=o.element,Ya(e,t),no(t,r,null,n);var s=t.memoizedState;if(r=s.cache,ia(t,ga,r),r!==o.cache&&A(t,[ga],n,!0),to(),r=s.element,o.isDehydrated){if(o={element:r,isDehydrated:!1,cache:s.cache},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){t=Oc(e,t,r,n);break a}if(r!==a){a=Di(Error(i(424)),t),ea(a),t=Oc(e,t,r,n);break a}switch(e=t.stateNode.containerInfo,e.nodeType){case 9:e=e.body;break;default:e=e.nodeName===`HTML`?e.ownerDocument.body:e}for(Ui=Of(e.firstChild),Hi=t,Wi=!0,Gi=null,Ki=!0,n=Ka(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling}else{if(Qi(),r===a){t=zc(e,t,n);break a}mc(e,t,r,n)}t=t.child}return t;case 26:return wc(e,t),e===null?(n=Jf(t.type,null,t.pendingProps,null))?t.memoizedState=n:Wi||(n=t.type,e=t.pendingProps,r=sf(ge.current).createElement(n),r[ht]=t,r[gt]=e,ef(r,n,e),Ot(r),t.stateNode=r):t.memoizedState=Jf(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return be(t),e===null&&Wi&&(r=t.stateNode=Mf(t.type,t.pendingProps,ge.current),Hi=t,Ki=!0,a=Ui,vf(t.type)?(kf=a,Ui=Of(r.firstChild)):Ui=a),mc(e,t,t.pendingProps.children,n),wc(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&Wi&&((a=r=Ui)&&(r=Sf(r,t.type,t.pendingProps,Ki),r===null?a=!1:(t.stateNode=r,Hi=t,Ui=Of(r.firstChild),Ki=!1,a=!0)),a||Ji(t)),be(t),a=t.type,o=t.pendingProps,s=e===null?null:e.memoizedProps,r=o.children,uf(a,o)?r=null:s!==null&&uf(a,s)&&(t.flags|=32),t.memoizedState!==null&&(a=No(e,t,Io,null,null,n),mp._currentValue=a),wc(e,t),mc(e,t,r,n),t.child;case 6:return e===null&&Wi&&((e=n=Ui)&&(n=Cf(n,t.pendingProps,Ki),n===null?e=!1:(t.stateNode=n,Hi=t,Ui=null,e=!0)),e||Ji(t)),null;case 13:return Mc(e,t,n);case 4:return ve(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Ga(t,null,r,n):mc(e,t,r,n),t.child;case 11:return hc(e,t,t.type,t.pendingProps,n);case 7:return mc(e,t,t.pendingProps,n),t.child;case 8:return mc(e,t,t.pendingProps.children,n),t.child;case 12:return mc(e,t,t.pendingProps.children,n),t.child;case 10:return r=t.pendingProps,ia(t,t.type,r.value),mc(e,t,r.children,n),t.child;case 9:return a=t.type._context,r=t.pendingProps.children,la(t),a=ua(a),r=r(a),t.flags|=1,mc(e,t,r,n),t.child;case 14:return gc(e,t,t.type,t.pendingProps,n);case 15:return _c(e,t,t.type,t.pendingProps,n);case 19:return Rc(e,t,n);case 31:return Cc(e,t,n);case 22:return vc(e,t,n,t.pendingProps);case 24:return la(t),r=ua(ga),e===null?(a=Oa(),a===null&&(a=Ql,o=_a(),a.pooledCache=o,o.refCount++,o!==null&&(a.pooledCacheLanes|=n),a=o),t.memoizedState={parent:r,cache:a},Ja(t),ia(t,ga,a)):((e.lanes&n)!==0&&(Ya(e,t),no(t,null,null,n),to()),a=e.memoizedState,o=t.memoizedState,a.parent===r?(r=o.cache,ia(t,ga,r),r!==a.cache&&A(t,[ga],n,!0)):(a={parent:r,cache:r},t.memoizedState=a,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=a),ia(t,ga,r))),mc(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(i(156,t.tag))}function Uc(e){e.flags|=4}function Wc(e,t,n,r,i){if((t=!!(e.mode&32))&&(t=!1),t){if(e.flags|=16777216,(i&335544128)===i){if(e.stateNode.complete)e.flags|=8192;else if(Vu())e.flags|=8192;else throw Ia=Na,Ma}}else e.flags&=-16777217}function Gc(e,t){if(t.type!==`stylesheet`||t.state.loading&4)e.flags&=-16777217;else if(e.flags|=16777216,!lp(t)){if(Vu())e.flags|=8192;else throw Ia=Na,Ma}}function Kc(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag===22?536870912:rt(),e.lanes|=t,fu|=t)}function qc(e,t){if(!Wi)switch(e.tailMode){case`hidden`:t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case`collapsed`:n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Jc(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags&65011712,r|=i.flags&65011712,i.return=e,i=i.sibling;else for(i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags,r|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Yc(e,t,n){var r=t.pendingProps;switch(Bi(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Jc(t),null;case 1:return Jc(t),null;case 3:return n=t.stateNode,r=null,e!==null&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),aa(ga),ye(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(Zi(t)?Uc(t):e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,$i())),Jc(t),null;case 26:var a=t.type,o=t.memoizedState;return e===null?(Uc(t),o===null?(Jc(t),Wc(t,a,null,r,n)):(Jc(t),Gc(t,o))):o?o===e.memoizedState?(Jc(t),t.flags&=-16777217):(Uc(t),Jc(t),Gc(t,o)):(e=e.memoizedProps,e!==r&&Uc(t),Jc(t),Wc(t,a,e,r,n)),null;case 27:if(xe(t),n=ge.current,a=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&Uc(t);else{if(!r){if(t.stateNode===null)throw Error(i(166));return Jc(t),null}e=me.current,Zi(t)?Yi(t,e):(e=Mf(a,r,n),t.stateNode=e,Uc(t))}return Jc(t),null;case 5:if(xe(t),a=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&Uc(t);else{if(!r){if(t.stateNode===null)throw Error(i(166));return Jc(t),null}if(o=me.current,Zi(t))Yi(t,o);else{var s=sf(ge.current);switch(o){case 1:o=s.createElementNS(`http://www.w3.org/2000/svg`,a);break;case 2:o=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,a);break;default:switch(a){case`svg`:o=s.createElementNS(`http://www.w3.org/2000/svg`,a);break;case`math`:o=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,a);break;case`script`:o=s.createElement(`div`),o.innerHTML=`<script><\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(a,{is:r.is}):s.createElement(a)}}o[ht]=t,o[gt]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(ef(o,a,r),a){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&Uc(t)}}return Jc(t),Wc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&Uc(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(i(166));if(e=ge.current,Zi(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,a=Hi,a!==null)switch(a.tag){case 27:case 5:r=a.memoizedProps}e[ht]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||Zd(e.nodeValue,n)),e||Ji(t,!0)}else e=sf(e).createTextNode(r),e[ht]=t,t.stateNode=e}return Jc(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=Zi(t),n!==null){if(e===null){if(!r)throw Error(i(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(557));e[ht]=t}else Qi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Jc(t),e=!1}else n=$i(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(_o(t),t):(_o(t),null);if(t.flags&128)throw Error(i(558))}return Jc(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=Zi(t),r!==null&&r.dehydrated!==null){if(e===null){if(!a)throw Error(i(318));if(a=t.memoizedState,a=a===null?null:a.dehydrated,!a)throw Error(i(317));a[ht]=t}else Qi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Jc(t),a=!1}else a=$i(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(_o(t),t):(_o(t),null)}return _o(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,a=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(a=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Kc(t,t.updateQueue),Jc(t),null);case 4:return ye(),e===null&&Vd(t.stateNode.containerInfo),Jc(t),null;case 10:return aa(t.type),Jc(t),null;case 19:if(fe(vo),r=t.memoizedState,r===null)return Jc(t),null;if(a=!!(t.flags&128),o=r.rendering,o===null){if(a)qc(r,!1);else{if(su!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=yo(e),o!==null){for(t.flags|=128,qc(r,!1),e=o.updateQueue,t.updateQueue=e,Kc(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)bi(n,e),n=n.sibling;return pe(vo,vo.current&1|2),Wi&&Li(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Pe()>vu&&(t.flags|=128,a=!0,qc(r,!1),t.lanes=4194304)}}else{if(!a){if(e=yo(o),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,Kc(t,e),qc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!o.alternate&&!Wi)return Jc(t),null}else 2*Pe()-r.renderingStartTime>vu&&n!==536870912&&(t.flags|=128,a=!0,qc(r,!1),t.lanes=4194304)}r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}return r.tail===null?(Jc(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Pe(),e.sibling=null,n=vo.current,pe(vo,a?n&1|2:n&1),Wi&&Li(t,r.treeForkCount),e);case 22:case 23:return _o(t),lo(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(Jc(t),t.subtreeFlags&6&&(t.flags|=8192)):Jc(t),n=t.updateQueue,n!==null&&Kc(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&fe(Da),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),aa(ga),Jc(t),null;case 25:return null;case 30:return null}throw Error(i(156,t.tag))}function Xc(e,t){switch(Bi(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return aa(ga),ye(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return xe(t),null;case 31:if(t.memoizedState!==null){if(_o(t),t.alternate===null)throw Error(i(340));Qi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(_o(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));Qi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return fe(vo),null;case 4:return ye(),null;case 10:return aa(t.type),null;case 22:case 23:return _o(t),lo(),e!==null&&fe(Da),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return aa(ga),null;case 25:return null;default:return null}}function Zc(e,t){switch(Bi(t),t.tag){case 3:aa(ga),ye();break;case 26:case 27:case 5:xe(t);break;case 4:ye();break;case 31:t.memoizedState!==null&&_o(t);break;case 13:_o(t);break;case 19:fe(vo);break;case 10:aa(t.type);break;case 22:case 23:_o(t),lo(),e!==null&&fe(Da);break;case 24:aa(ga)}}function Qc(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){cd(t,t.return,e)}}function $c(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){cd(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){cd(t,t.return,e)}}function el(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{io(t,n)}catch(t){cd(e,e.return,t)}}}function tl(e,t,n){n.props=nc(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){cd(e,t,n)}}function nl(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){cd(e,t,n)}}function rl(e,t){var n=e.ref,r=e.refCleanup;if(n!==null){if(typeof r==`function`)try{r()}catch(n){cd(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){cd(e,t,n)}else n.current=null}}function il(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){cd(e,e.return,t)}}function al(e,t,n){try{var r=e.stateNode;tf(r,e.type,n,t),r[gt]=t}catch(t){cd(e,e.return,t)}}function ol(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&vf(e.type)||e.tag===4}function sl(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||ol(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&vf(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function cl(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=ln));else if(r!==4&&(r===27&&vf(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(cl(e,t,n),e=e.sibling;e!==null;)cl(e,t,n),e=e.sibling}function ll(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(r===27&&vf(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(ll(e,t,n),e=e.sibling;e!==null;)ll(e,t,n),e=e.sibling}function ul(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);ef(t,r,n),t[ht]=e,t[gt]=n}catch(t){cd(e,e.return,t)}}var dl=!1,fl=!1,pl=!1,ml=typeof WeakSet==`function`?WeakSet:Set,hl=null;function gl(e,t){if(e=e.containerInfo,af=bp,e=Ir(e),Lr(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var a=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||a!==0&&f.nodeType!==3||(c=s+a),f!==o||r!==0&&f.nodeType!==3||(l=s+r),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===a&&(c=s),p===o&&++d===r&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(of={focusedElem:e,selectionRange:n},bp=!1,hl=t;hl!==null;)if(t=hl,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,hl=e;else for(;hl!==null;){switch(t=hl,o=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n<e.length;n++)a=e[n],a.ref.impl=a.nextImpl;break;case 11:case 15:break;case 1:if(e&1024&&o!==null){e=void 0,n=t,a=o.memoizedProps,o=o.memoizedState,r=n.stateNode;try{var h=nc(n.type,a);e=r.getSnapshotBeforeUpdate(h,o),r.__reactInternalSnapshotBeforeUpdate=e}catch(e){cd(n,n.return,e)}}break;case 3:if(e&1024){if(e=t.stateNode.containerInfo,n=e.nodeType,n===9)xf(e);else if(n===1)switch(e.nodeName){case`HEAD`:case`HTML`:case`BODY`:xf(e);break;default:e.textContent=``}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if(e&1024)throw Error(i(163))}if(e=t.sibling,e!==null){e.return=t.return,hl=e;break}hl=t.return}}function _l(e,t,n){var r=n.flags;switch(n.tag){case 0:case 11:case 15:Ml(e,n),r&4&&Qc(5,n);break;case 1:if(Ml(e,n),r&4){if(e=n.stateNode,t===null)try{e.componentDidMount()}catch(e){cd(n,n.return,e)}else{var i=nc(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(i,t,e.__reactInternalSnapshotBeforeUpdate)}catch(e){cd(n,n.return,e)}}}r&64&&el(n),r&512&&nl(n,n.return);break;case 3:if(Ml(e,n),r&64&&(e=n.updateQueue,e!==null)){if(t=null,n.child!==null)switch(n.child.tag){case 27:case 5:t=n.child.stateNode;break;case 1:t=n.child.stateNode}try{io(e,t)}catch(e){cd(n,n.return,e)}}break;case 27:t===null&&r&4&&ul(n);case 26:case 5:Ml(e,n),t===null&&r&4&&il(n),r&512&&nl(n,n.return);break;case 12:Ml(e,n);break;case 31:Ml(e,n),r&4&&Cl(e,n);break;case 13:Ml(e,n),r&4&&wl(e,n),r&64&&(e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(n=fd.bind(null,n),Df(e,n))));break;case 22:if(r=n.memoizedState!==null||dl,!r){t=t!==null&&t.memoizedState!==null||fl,i=dl;var a=fl;dl=r,(fl=t)&&!a?Pl(e,n,!!(n.subtreeFlags&8772)):Ml(e,n),dl=i,fl=a}break;case 30:break;default:Ml(e,n)}}function vl(e){var t=e.alternate;t!==null&&(e.alternate=null,vl(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&Ct(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var yl=null,bl=!1;function xl(e,t,n){for(n=n.child;n!==null;)Sl(e,t,n),n=n.sibling}function Sl(e,t,n){if(We&&typeof We.onCommitFiberUnmount==`function`)try{We.onCommitFiberUnmount(Ue,n)}catch{}switch(n.tag){case 26:fl||rl(n,t),xl(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:fl||rl(n,t);var r=yl,i=bl;vf(n.type)&&(yl=n.stateNode,bl=!1),xl(e,t,n),Nf(n.stateNode),yl=r,bl=i;break;case 5:fl||rl(n,t);case 6:if(r=yl,i=bl,yl=null,xl(e,t,n),yl=r,bl=i,yl!==null){if(bl)try{(yl.nodeType===9?yl.body:yl.nodeName===`HTML`?yl.ownerDocument.body:yl).removeChild(n.stateNode)}catch(e){cd(n,t,e)}else try{yl.removeChild(n.stateNode)}catch(e){cd(n,t,e)}}break;case 18:yl!==null&&(bl?(e=yl,yf(e.nodeType===9?e.body:e.nodeName===`HTML`?e.ownerDocument.body:e,n.stateNode),Gp(e)):yf(yl,n.stateNode));break;case 4:r=yl,i=bl,yl=n.stateNode.containerInfo,bl=!0,xl(e,t,n),yl=r,bl=i;break;case 0:case 11:case 14:case 15:$c(2,n,t),fl||$c(4,n,t),xl(e,t,n);break;case 1:fl||(rl(n,t),r=n.stateNode,typeof r.componentWillUnmount==`function`&&tl(n,t,r)),xl(e,t,n);break;case 21:xl(e,t,n);break;case 22:fl=(r=fl)||n.memoizedState!==null,xl(e,t,n),fl=r;break;default:xl(e,t,n)}}function Cl(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{Gp(e)}catch(e){cd(t,t.return,e)}}}function wl(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{Gp(e)}catch(e){cd(t,t.return,e)}}function Tl(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new ml),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new ml),t;default:throw Error(i(435,e.tag))}}function El(e,t){var n=Tl(e);t.forEach(function(t){if(!n.has(t)){n.add(t);var r=pd.bind(null,e,t);t.then(r,r)}})}function Dl(e,t){var n=t.deletions;if(n!==null)for(var r=0;r<n.length;r++){var a=n[r],o=e,s=t,c=s;a:for(;c!==null;){switch(c.tag){case 27:if(vf(c.type)){yl=c.stateNode,bl=!1;break a}break;case 5:yl=c.stateNode,bl=!1;break a;case 3:case 4:yl=c.stateNode.containerInfo,bl=!0;break a}c=c.return}if(yl===null)throw Error(i(160));Sl(o,s,a),yl=null,bl=!1,o=a.alternate,o!==null&&(o.return=null),a.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)kl(t,e),t=t.sibling}var Ol=null;function kl(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:Dl(t,e),Al(e),r&4&&($c(3,e,e.return),Qc(3,e),$c(5,e,e.return));break;case 1:Dl(t,e),Al(e),r&512&&(fl||n===null||rl(n,n.return)),r&64&&dl&&(e=e.updateQueue,e!==null&&(r=e.callbacks,r!==null&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=n===null?r:n.concat(r))));break;case 26:var a=Ol;if(Dl(t,e),Al(e),r&512&&(fl||n===null||rl(n,n.return)),r&4){var o=n===null?null:n.memoizedState;if(r=e.memoizedState,n===null){if(r===null){if(e.stateNode===null){a:{r=e.type,n=e.memoizedProps,a=a.ownerDocument||a;b:switch(r){case`title`:o=a.getElementsByTagName(`title`)[0],(!o||o[St]||o[ht]||o.namespaceURI===`http://www.w3.org/2000/svg`||o.hasAttribute(`itemprop`))&&(o=a.createElement(r),a.head.insertBefore(o,a.querySelector(`head > title`))),ef(o,r,n),o[ht]=e,Ot(o),r=o;break a;case`link`:var s=op(`link`,`href`,a).get(r+(n.href||``));if(s){for(var c=0;c<s.length;c++)if(o=s[c],o.getAttribute(`href`)===(n.href==null||n.href===``?null:n.href)&&o.getAttribute(`rel`)===(n.rel==null?null:n.rel)&&o.getAttribute(`title`)===(n.title==null?null:n.title)&&o.getAttribute(`crossorigin`)===(n.crossOrigin==null?null:n.crossOrigin)){s.splice(c,1);break b}}o=a.createElement(r),ef(o,r,n),a.head.appendChild(o);break;case`meta`:if(s=op(`meta`,`content`,a).get(r+(n.content||``))){for(c=0;c<s.length;c++)if(o=s[c],o.getAttribute(`content`)===(n.content==null?null:``+n.content)&&o.getAttribute(`name`)===(n.name==null?null:n.name)&&o.getAttribute(`property`)===(n.property==null?null:n.property)&&o.getAttribute(`http-equiv`)===(n.httpEquiv==null?null:n.httpEquiv)&&o.getAttribute(`charset`)===(n.charSet==null?null:n.charSet)){s.splice(c,1);break b}}o=a.createElement(r),ef(o,r,n),a.head.appendChild(o);break;default:throw Error(i(468,r))}o[ht]=e,Ot(o),r=o}e.stateNode=r}else sp(a,e.type,e.stateNode)}else e.stateNode=tp(a,r,e.memoizedProps)}else o===r?r===null&&e.stateNode!==null&&al(e,e.memoizedProps,n.memoizedProps):(o===null?n.stateNode!==null&&(n=n.stateNode,n.parentNode.removeChild(n)):o.count--,r===null?sp(a,e.type,e.stateNode):tp(a,r,e.memoizedProps))}break;case 27:Dl(t,e),Al(e),r&512&&(fl||n===null||rl(n,n.return)),n!==null&&r&4&&al(e,e.memoizedProps,n.memoizedProps);break;case 5:if(Dl(t,e),Al(e),r&512&&(fl||n===null||rl(n,n.return)),e.flags&32){a=e.stateNode;try{en(a,``)}catch(t){cd(e,e.return,t)}}r&4&&e.stateNode!=null&&(a=e.memoizedProps,al(e,a,n===null?a:n.memoizedProps)),r&1024&&(pl=!0);break;case 6:if(Dl(t,e),Al(e),r&4){if(e.stateNode===null)throw Error(i(162));r=e.memoizedProps,n=e.stateNode;try{n.nodeValue=r}catch(t){cd(e,e.return,t)}}break;case 3:if(ap=null,a=Ol,Ol=If(t.containerInfo),Dl(t,e),Ol=a,Al(e),r&4&&n!==null&&n.memoizedState.isDehydrated)try{Gp(t.containerInfo)}catch(t){cd(e,e.return,t)}pl&&(pl=!1,jl(e));break;case 4:r=Ol,Ol=If(e.stateNode.containerInfo),Dl(t,e),Al(e),Ol=r;break;case 12:Dl(t,e),Al(e);break;case 31:Dl(t,e),Al(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,El(e,r)));break;case 13:Dl(t,e),Al(e),e.child.flags&8192&&e.memoizedState!==null!=(n!==null&&n.memoizedState!==null)&&(gu=Pe()),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,El(e,r)));break;case 22:a=e.memoizedState!==null;var l=n!==null&&n.memoizedState!==null,u=dl,d=fl;if(dl=u||a,fl=d||l,Dl(t,e),fl=d,dl=u,Al(e),r&8192)a:for(t=e.stateNode,t._visibility=a?t._visibility&-2:t._visibility|1,a&&(n===null||l||dl||fl||Nl(e)),n=null,t=e;;){if(t.tag===5||t.tag===26){if(n===null){l=n=t;try{if(o=l.stateNode,a)s=o.style,typeof s.setProperty==`function`?s.setProperty(`display`,`none`,`important`):s.display=`none`;else{c=l.stateNode;var f=l.memoizedProps.style,p=f!=null&&f.hasOwnProperty(`display`)?f.display:null;c.style.display=p==null||typeof p==`boolean`?``:(``+p).trim()}}catch(e){cd(l,l.return,e)}}}else if(t.tag===6){if(n===null){l=t;try{l.stateNode.nodeValue=a?``:l.memoizedProps}catch(e){cd(l,l.return,e)}}}else if(t.tag===18){if(n===null){l=t;try{var m=l.stateNode;a?bf(m,!0):bf(l.stateNode,!1)}catch(e){cd(l,l.return,e)}}}else if((t.tag!==22&&t.tag!==23||t.memoizedState===null||t===e)&&t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break a;for(;t.sibling===null;){if(t.return===null||t.return===e)break a;n===t&&(n=null),t=t.return}n===t&&(n=null),t.sibling.return=t.return,t=t.sibling}r&4&&(r=e.updateQueue,r!==null&&(n=r.retryQueue,n!==null&&(r.retryQueue=null,El(e,n))));break;case 19:Dl(t,e),Al(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,El(e,r)));break;case 30:break;case 21:break;default:Dl(t,e),Al(e)}}function Al(e){var t=e.flags;if(t&2){try{for(var n,r=e.return;r!==null;){if(ol(r)){n=r;break}r=r.return}if(n==null)throw Error(i(160));switch(n.tag){case 27:var a=n.stateNode;ll(e,sl(e),a);break;case 5:var o=n.stateNode;n.flags&32&&(en(o,``),n.flags&=-33),ll(e,sl(e),o);break;case 3:case 4:var s=n.stateNode.containerInfo;cl(e,sl(e),s);break;default:throw Error(i(161))}}catch(t){cd(e,e.return,t)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function jl(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;jl(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function Ml(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)_l(e,t.alternate,t),t=t.sibling}function Nl(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:$c(4,t,t.return),Nl(t);break;case 1:rl(t,t.return);var n=t.stateNode;typeof n.componentWillUnmount==`function`&&tl(t,t.return,n),Nl(t);break;case 27:Nf(t.stateNode);case 26:case 5:rl(t,t.return),Nl(t);break;case 22:t.memoizedState===null&&Nl(t);break;case 30:Nl(t);break;default:Nl(t)}e=e.sibling}}function Pl(e,t,n){for(n&&=!!(t.subtreeFlags&8772),t=t.child;t!==null;){var r=t.alternate,i=e,a=t,o=a.flags;switch(a.tag){case 0:case 11:case 15:Pl(i,a,n),Qc(4,a);break;case 1:if(Pl(i,a,n),r=a,i=r.stateNode,typeof i.componentDidMount==`function`)try{i.componentDidMount()}catch(e){cd(r,r.return,e)}if(r=a,i=r.updateQueue,i!==null){var s=r.stateNode;try{var c=i.shared.hiddenCallbacks;if(c!==null)for(i.shared.hiddenCallbacks=null,i=0;i<c.length;i++)ro(c[i],s)}catch(e){cd(r,r.return,e)}}n&&o&64&&el(a),nl(a,a.return);break;case 27:ul(a);case 26:case 5:Pl(i,a,n),n&&r===null&&o&4&&il(a),nl(a,a.return);break;case 12:Pl(i,a,n);break;case 31:Pl(i,a,n),n&&o&4&&Cl(i,a);break;case 13:Pl(i,a,n),n&&o&4&&wl(i,a);break;case 22:a.memoizedState===null&&Pl(i,a,n),nl(a,a.return);break;case 30:break;default:Pl(i,a,n)}t=t.sibling}}function Fl(e,t){var n=null;e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),e=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(e=t.memoizedState.cachePool.pool),e!==n&&(e!=null&&e.refCount++,n!=null&&va(n))}function Il(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&va(e))}function Ll(e,t,n,r){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)Rl(e,t,n,r),t=t.sibling}function Rl(e,t,n,r){var i=t.flags;switch(t.tag){case 0:case 11:case 15:Ll(e,t,n,r),i&2048&&Qc(9,t);break;case 1:Ll(e,t,n,r);break;case 3:Ll(e,t,n,r),i&2048&&(e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&va(e)));break;case 12:if(i&2048){Ll(e,t,n,r),e=t.stateNode;try{var a=t.memoizedProps,o=a.id,s=a.onPostCommit;typeof s==`function`&&s(o,t.alternate===null?`mount`:`update`,e.passiveEffectDuration,-0)}catch(e){cd(t,t.return,e)}}else Ll(e,t,n,r);break;case 31:Ll(e,t,n,r);break;case 13:Ll(e,t,n,r);break;case 23:break;case 22:a=t.stateNode,o=t.alternate,t.memoizedState===null?a._visibility&2?Ll(e,t,n,r):(a._visibility|=2,zl(e,t,n,r,!!(t.subtreeFlags&10256)||!1)):a._visibility&2?Ll(e,t,n,r):Bl(e,t),i&2048&&Fl(o,t);break;case 24:Ll(e,t,n,r),i&2048&&Il(t.alternate,t);break;default:Ll(e,t,n,r)}}function zl(e,t,n,r,i){for(i&&=!!(t.subtreeFlags&10256)||!1,t=t.child;t!==null;){var a=e,o=t,s=n,c=r,l=o.flags;switch(o.tag){case 0:case 11:case 15:zl(a,o,s,c,i),Qc(8,o);break;case 23:break;case 22:var u=o.stateNode;o.memoizedState===null?(u._visibility|=2,zl(a,o,s,c,i)):u._visibility&2?zl(a,o,s,c,i):Bl(a,o),i&&l&2048&&Fl(o.alternate,o);break;case 24:zl(a,o,s,c,i),i&&l&2048&&Il(o.alternate,o);break;default:zl(a,o,s,c,i)}t=t.sibling}}function Bl(e,t){if(t.subtreeFlags&10256)for(t=t.child;t!==null;){var n=e,r=t,i=r.flags;switch(r.tag){case 22:Bl(n,r),i&2048&&Fl(r.alternate,r);break;case 24:Bl(n,r),i&2048&&Il(r.alternate,r);break;default:Bl(n,r)}t=t.sibling}}var Vl=8192;function Hl(e,t,n){if(e.subtreeFlags&Vl)for(e=e.child;e!==null;)Ul(e,t,n),e=e.sibling}function Ul(e,t,n){switch(e.tag){case 26:Hl(e,t,n),e.flags&Vl&&e.memoizedState!==null&&up(n,Ol,e.memoizedState,e.memoizedProps);break;case 5:Hl(e,t,n);break;case 3:case 4:var r=Ol;Ol=If(e.stateNode.containerInfo),Hl(e,t,n),Ol=r;break;case 22:e.memoizedState===null&&(r=e.alternate,r!==null&&r.memoizedState!==null?(r=Vl,Vl=16777216,Hl(e,t,n),Vl=r):Hl(e,t,n));break;default:Hl(e,t,n)}}function Wl(e){var t=e.alternate;if(t!==null&&(e=t.child,e!==null)){t.child=null;do t=e.sibling,e.sibling=null,e=t;while(e!==null)}}function Gl(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];hl=r,Jl(r,e)}Wl(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)Kl(e),e=e.sibling}function Kl(e){switch(e.tag){case 0:case 11:case 15:Gl(e),e.flags&2048&&$c(9,e,e.return);break;case 3:Gl(e);break;case 12:Gl(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,ql(e)):Gl(e);break;default:Gl(e)}}function ql(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];hl=r,Jl(r,e)}Wl(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:$c(8,t,t.return),ql(t);break;case 22:n=t.stateNode,n._visibility&2&&(n._visibility&=-3,ql(t));break;default:ql(t)}e=e.sibling}}function Jl(e,t){for(;hl!==null;){var n=hl;switch(n.tag){case 0:case 11:case 15:$c(8,n,t);break;case 23:case 22:if(n.memoizedState!==null&&n.memoizedState.cachePool!==null){var r=n.memoizedState.cachePool.pool;r!=null&&r.refCount++}break;case 24:va(n.memoizedState.cache)}if(r=n.child,r!==null)r.return=n,hl=r;else a:for(n=e;hl!==null;){r=hl;var i=r.sibling,a=r.return;if(vl(r),r===n){hl=null;break a}if(i!==null){i.return=a,hl=i;break a}hl=a}}}var Yl={getCacheForType:function(e){var t=ua(ga),n=t.data.get(e);return n===void 0&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return ua(ga).controller.signal}},Xl=typeof WeakMap==`function`?WeakMap:Map,Zl=0,Ql=null,$l=null,eu=0,tu=0,nu=null,ru=!1,iu=!1,au=!1,ou=0,su=0,cu=0,lu=0,uu=0,du=0,fu=0,pu=null,mu=null,hu=!1,gu=0,_u=0,vu=1/0,yu=null,bu=null,xu=0,Su=null,Cu=null,wu=0,Tu=0,Eu=null,Du=null,Ou=0,ku=null;function Au(){return Zl&2&&eu!==0?eu&-eu:k.T===null?ft():kd()}function ju(){if(du===0){if(!(eu&536870912)||Wi){var e=Ze;Ze<<=1,!(Ze&3932160)&&(Ze=262144),du=e}else du=536870912}return e=uo.current,e!==null&&(e.flags|=32),du}function Mu(e,t,n){(e===Ql&&(tu===2||tu===9)||e.cancelPendingCommit!==null)&&(zu(e,0),Iu(e,eu,du,!1)),at(e,n),(!(Zl&2)||e!==Ql)&&(e===Ql&&(!(Zl&2)&&(lu|=n),su===4&&Iu(e,eu,du,!1)),xd(e))}function Nu(e,t,n){if(Zl&6)throw Error(i(327));var r=!n&&!(t&127)&&(t&e.expiredLanes)===0||tt(e,t),a=r?qu(e,t):Gu(e,t,!0),o=r;do{if(a===0){iu&&!r&&Iu(e,t,0,!1);break}if(n=e.current.alternate,o&&!Fu(n)){a=Gu(e,t,!1),o=!1;continue}if(a===2){if(o=t,e.errorRecoveryDisabledLanes&o)var s=0;else s=e.pendingLanes&-536870913,s=s===0?s&536870912?536870912:0:s;if(s!==0){t=s;a:{var c=e;a=pu;var l=c.current.memoizedState.isDehydrated;if(l&&(zu(c,s).flags|=256),s=Gu(c,s,!1),s!==2){if(au&&!l){c.errorRecoveryDisabledLanes|=o,lu|=o,a=4;break a}o=mu,mu=a,o!==null&&(mu===null?mu=o:mu.push.apply(mu,o))}a=s}if(o=!1,a!==2)continue}}if(a===1){zu(e,0),Iu(e,t,0,!0);break}a:{switch(r=e,o=a,o){case 0:case 1:throw Error(i(345));case 4:if((t&4194048)!==t)break;case 6:Iu(r,t,du,!ru);break a;case 2:mu=null;break;case 3:case 5:break;default:throw Error(i(329))}if((t&62914560)===t&&(a=gu+300-Pe(),10<a)){if(Iu(r,t,du,!ru),et(r,0,!0)!==0)break a;wu=t,r.timeoutHandle=pf(Pu.bind(null,r,n,mu,yu,hu,t,du,lu,fu,ru,o,`Throttled`,-0,0),a);break a}Pu(r,n,mu,yu,hu,t,du,lu,fu,ru,o,null,-0,0)}break}while(1);xd(e)}function Pu(e,t,n,r,i,a,o,s,c,l,u,d,f,p){if(e.timeoutHandle=-1,d=t.subtreeFlags,d&8192||(d&16785408)==16785408){d={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:ln},Ul(t,a,d);var m=(a&62914560)===a?gu-Pe():(a&4194048)===a?_u-Pe():0;if(m=F(d,m),m!==null){wu=a,e.cancelPendingCommit=m(ed.bind(null,e,t,a,n,r,i,o,s,c,u,d,null,f,p)),Iu(e,a,o,!l);return}}ed(e,t,a,n,r,i,o,s,c)}function Fu(e){for(var t=e;;){var n=t.tag;if((n===0||n===11||n===15)&&t.flags&16384&&(n=t.updateQueue,n!==null&&(n=n.stores,n!==null)))for(var r=0;r<n.length;r++){var i=n[r],a=i.getSnapshot;i=i.value;try{if(!jr(a(),i))return!1}catch{return!1}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function Iu(e,t,n,r){t&=~uu,t&=~lu,e.suspendedLanes|=t,e.pingedLanes&=~t,r&&(e.warmLanes|=t),r=e.expirationTimes;for(var i=t;0<i;){var a=31-Ke(i),o=1<<a;r[a]=-1,i&=~o}n!==0&&st(e,n,t)}function Lu(){return Zl&6?!0:(Sd(0,!1),!1)}function Ru(){if($l!==null){if(tu===0)var e=$l.return;else e=$l,ra=na=null,zo(e),za=null,Ba=0,e=$l;for(;e!==null;)Zc(e.alternate,e),e=e.return;$l=null}}function zu(e,t){var n=e.timeoutHandle;n!==-1&&(e.timeoutHandle=-1,mf(n)),n=e.cancelPendingCommit,n!==null&&(e.cancelPendingCommit=null,n()),wu=0,Ru(),Ql=e,$l=n=yi(e.current,null),eu=t,tu=0,nu=null,ru=!1,iu=tt(e,t),au=!1,fu=du=uu=lu=cu=su=0,mu=pu=null,hu=!1,t&8&&(t|=t&32);var r=e.entangledLanes;if(r!==0)for(e=e.entanglements,r&=t;0<r;){var i=31-Ke(r),a=1<<i;t|=e[i],r&=~a}return ou=t,li(),n}function Bu(e,t){xo=null,k.H=Js,t===ja||t===j?(t=La(),tu=3):t===Ma?(t=La(),tu=4):tu=t===fc?8:typeof t==`object`&&t&&typeof t.then==`function`?6:1,nu=t,$l===null&&(su=1,oc(e,Di(t,e.current)))}function Vu(){var e=uo.current;return e===null?!0:(eu&4194048)===eu?fo===null:(eu&62914560)===eu||eu&536870912?e===fo:!1}function Hu(){var e=k.H;return k.H=Js,e===null?Js:e}function Uu(){var e=k.A;return k.A=Yl,e}function Wu(){su=4,ru||(eu&4194048)!==eu&&uo.current!==null||(iu=!0),!(cu&134217727)&&!(lu&134217727)||Ql===null||Iu(Ql,eu,du,!1)}function Gu(e,t,n){var r=Zl;Zl|=2;var i=Hu(),a=Uu();(Ql!==e||eu!==t)&&(yu=null,zu(e,t)),t=!1;var o=su;a:do try{if(tu!==0&&$l!==null){var s=$l,c=nu;switch(tu){case 8:Ru(),o=6;break a;case 3:case 2:case 9:case 6:uo.current===null&&(t=!0);var l=tu;if(tu=0,nu=null,Zu(e,s,c,l),n&&iu){o=0;break a}break;default:l=tu,tu=0,nu=null,Zu(e,s,c,l)}}Ku(),o=su;break}catch(t){Bu(e,t)}while(1);return t&&e.shellSuspendCounter++,ra=na=null,Zl=r,k.H=i,k.A=a,$l===null&&(Ql=null,eu=0,li()),o}function Ku(){for(;$l!==null;)Yu($l)}function qu(e,t){var n=Zl;Zl|=2;var r=Hu(),a=Uu();Ql!==e||eu!==t?(yu=null,vu=Pe()+500,zu(e,t)):iu=tt(e,t);a:do try{if(tu!==0&&$l!==null){t=$l;var o=nu;b:switch(tu){case 1:tu=0,nu=null,Zu(e,t,o,1);break;case 2:case 9:if(Pa(o)){tu=0,nu=null,Xu(t);break}t=function(){tu!==2&&tu!==9||Ql!==e||(tu=7),xd(e)},o.then(t,t);break a;case 3:tu=7;break a;case 4:tu=5;break a;case 7:Pa(o)?(tu=0,nu=null,Xu(t)):(tu=0,nu=null,Zu(e,t,o,7));break;case 5:var s=null;switch($l.tag){case 26:s=$l.memoizedState;case 5:case 27:var c=$l;if(s?lp(s):c.stateNode.complete){tu=0,nu=null;var l=c.sibling;if(l!==null)$l=l;else{var u=c.return;u===null?$l=null:($l=u,Qu(u))}break b}}tu=0,nu=null,Zu(e,t,o,5);break;case 6:tu=0,nu=null,Zu(e,t,o,6);break;case 8:Ru(),su=6;break a;default:throw Error(i(462))}}Ju();break}catch(t){Bu(e,t)}while(1);return ra=na=null,k.H=r,k.A=a,Zl=n,$l===null?(Ql=null,eu=0,li(),su):0}function Ju(){for(;$l!==null&&!Me();)Yu($l)}function Yu(e){var t=Hc(e.alternate,e,ou);e.memoizedProps=e.pendingProps,t===null?Qu(e):$l=t}function Xu(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=Ec(n,t,t.pendingProps,t.type,void 0,eu);break;case 11:t=Ec(n,t,t.pendingProps,t.type.render,t.ref,eu);break;case 5:zo(t);default:Zc(n,t),t=$l=bi(t,ou),t=Hc(n,t,ou)}e.memoizedProps=e.pendingProps,t===null?Qu(e):$l=t}function Zu(e,t,n,r){ra=na=null,zo(t),za=null,Ba=0;var i=t.return;try{if(dc(e,i,t,n,eu)){su=1,oc(e,Di(n,e.current)),$l=null;return}}catch(t){if(i!==null)throw $l=i,t;su=1,oc(e,Di(n,e.current)),$l=null;return}t.flags&32768?(Wi||r===1?e=!0:iu||eu&536870912?e=!1:(ru=e=!0,(r===2||r===9||r===3||r===6)&&(r=uo.current,r!==null&&r.tag===13&&(r.flags|=16384))),$u(t,e)):Qu(t)}function Qu(e){var t=e;do{if(t.flags&32768){$u(t,ru);return}e=t.return;var n=Yc(t.alternate,t,ou);if(n!==null){$l=n;return}if(t=t.sibling,t!==null){$l=t;return}$l=t=e}while(t!==null);su===0&&(su=5)}function $u(e,t){do{var n=Xc(e.alternate,e);if(n!==null){n.flags&=32767,$l=n;return}if(n=e.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&(e=e.sibling,e!==null)){$l=e;return}$l=e=n}while(e!==null);su=6,$l=null}function ed(e,t,n,r,a,o,s,c,l){e.cancelPendingCommit=null;do ad();while(xu!==0);if(Zl&6)throw Error(i(327));if(t!==null){if(t===e.current)throw Error(i(177));if(o=t.lanes|t.childLanes,o|=ci,ot(e,n,o,s,c,l),e===Ql&&($l=Ql=null,eu=0),Cu=t,Su=e,wu=n,Tu=o,Eu=a,Du=r,t.subtreeFlags&10256||t.flags&10256?(e.callbackNode=null,e.callbackPriority=0,md(Re,function(){return od(),null})):(e.callbackNode=null,e.callbackPriority=0),r=!!(t.flags&13878),t.subtreeFlags&13878||r){r=k.T,k.T=null,a=se.p,se.p=2,s=Zl,Zl|=4;try{gl(e,t,n)}finally{Zl=s,se.p=a,k.T=r}}xu=1,td(),nd(),rd()}}function td(){if(xu===1){xu=0;var e=Su,t=Cu,n=!!(t.flags&13878);if(t.subtreeFlags&13878||n){n=k.T,k.T=null;var r=se.p;se.p=2;var i=Zl;Zl|=4;try{kl(t,e);var a=of,o=Ir(e.containerInfo),s=a.focusedElem,c=a.selectionRange;if(o!==s&&s&&s.ownerDocument&&Fr(s.ownerDocument.documentElement,s)){if(c!==null&&Lr(s)){var l=c.start,u=c.end;if(u===void 0&&(u=l),`selectionStart`in s)s.selectionStart=l,s.selectionEnd=Math.min(u,s.value.length);else{var d=s.ownerDocument||document,f=d&&d.defaultView||window;if(f.getSelection){var p=f.getSelection(),m=s.textContent.length,h=Math.min(c.start,m),g=c.end===void 0?h:Math.min(c.end,m);!p.extend&&h>g&&(o=g,g=h,h=o);var _=Pr(s,h),v=Pr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;s<d.length;s++){var b=d[s];b.element.scrollLeft=b.left,b.element.scrollTop=b.top}}bp=!!af,of=af=null}finally{Zl=i,se.p=r,k.T=n}}e.current=t,xu=2}}function nd(){if(xu===2){xu=0;var e=Su,t=Cu,n=!!(t.flags&8772);if(t.subtreeFlags&8772||n){n=k.T,k.T=null;var r=se.p;se.p=2;var i=Zl;Zl|=4;try{_l(e,t.alternate,t)}finally{Zl=i,se.p=r,k.T=n}}xu=3}}function rd(){if(xu===4||xu===3){xu=0,Ne();var e=Su,t=Cu,n=wu,r=Du;t.subtreeFlags&10256||t.flags&10256?xu=5:(xu=0,Cu=Su=null,id(e,e.pendingLanes));var i=e.pendingLanes;if(i===0&&(bu=null),dt(n),t=t.stateNode,We&&typeof We.onCommitFiberRoot==`function`)try{We.onCommitFiberRoot(Ue,t,void 0,(t.current.flags&128)==128)}catch{}if(r!==null){t=k.T,i=se.p,se.p=2,k.T=null;try{for(var a=e.onRecoverableError,o=0;o<r.length;o++){var s=r[o];a(s.value,{componentStack:s.stack})}}finally{k.T=t,se.p=i}}wu&3&&ad(),xd(e),i=e.pendingLanes,n&261930&&i&42?e===ku?Ou++:(Ou=0,ku=e):Ou=0,Sd(0,!1)}}function id(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,va(t)))}function ad(){return td(),nd(),rd(),od()}function od(){if(xu!==5)return!1;var e=Su,t=Tu;Tu=0;var n=dt(wu),r=k.T,a=se.p;try{se.p=32>n?32:n,k.T=null,n=Eu,Eu=null;var o=Su,s=wu;if(xu=0,Cu=Su=null,wu=0,Zl&6)throw Error(i(331));var c=Zl;if(Zl|=4,Kl(o.current),Rl(o,o.current,s,n),Zl=c,Sd(0,!1),We&&typeof We.onPostCommitFiberRoot==`function`)try{We.onPostCommitFiberRoot(Ue,o)}catch{}return!0}finally{se.p=a,k.T=r,id(e,t)}}function sd(e,t,n){t=Di(n,t),t=cc(e.stateNode,t,2),e=Za(e,t,2),e!==null&&(at(e,2),xd(e))}function cd(e,t,n){if(e.tag===3)sd(e,e,n);else for(;t!==null;){if(t.tag===3){sd(t,e,n);break}if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(bu===null||!bu.has(r))){e=Di(n,e),n=lc(2),r=Za(t,n,2),r!==null&&(uc(n,r,t,e),at(r,2),xd(r));break}}t=t.return}}function ld(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Xl;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(au=!0,i.add(n),e=ud.bind(null,e,t,n),t.then(e,e))}function ud(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Ql===e&&(eu&n)===n&&(su===4||su===3&&(eu&62914560)===eu&&300>Pe()-gu?!(Zl&2)&&zu(e,0):uu|=n,fu===eu&&(fu=0)),xd(e)}function dd(e,t){t===0&&(t=rt()),e=fi(e,t),e!==null&&(at(e,t),xd(e))}function fd(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),dd(e,n)}function pd(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}r!==null&&r.delete(t),dd(e,n)}function md(e,t){return Ae(e,t)}var hd=null,gd=null,_d=!1,vd=!1,yd=!1,bd=0;function xd(e){e!==gd&&e.next===null&&(gd===null?hd=gd=e:gd=gd.next=e),vd=!0,_d||(_d=!0,Od())}function Sd(e,t){if(!yd&&vd){yd=!0;do for(var n=!1,r=hd;r!==null;){if(!t){if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-Ke(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,Dd(r,a))}else a=eu,a=et(r,r===Ql?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||tt(r,a)||(n=!0,Dd(r,a))}r=r.next}while(n);yd=!1}}function Cd(){wd()}function wd(){vd=_d=!1;var e=0;bd!==0&&ff()&&(e=bd);for(var t=Pe(),n=null,r=hd;r!==null;){var i=r.next,a=Td(r,t);a===0?(r.next=null,n===null?hd=i:n.next=i,i===null&&(gd=n)):(n=r,(e!==0||a&3)&&(vd=!0)),r=i}xu!==0&&xu!==5||Sd(e,!1),bd!==0&&(bd=0)}function Td(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0<a;){var o=31-Ke(a),s=1<<o,c=i[o];c===-1?((s&n)===0||(s&r)!==0)&&(i[o]=nt(s,t)):c<=t&&(e.expiredLanes|=s),a&=~s}if(t=Ql,n=eu,n=et(e,e===t?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r=e.callbackNode,n===0||e===t&&(tu===2||tu===9)||e.cancelPendingCommit!==null)return r!==null&&r!==null&&je(r),e.callbackNode=null,e.callbackPriority=0;if(!(n&3)||tt(e,n)){if(t=n&-n,t===e.callbackPriority)return t;switch(r!==null&&je(r),dt(n)){case 2:case 8:n=Le;break;case 32:n=Re;break;case 268435456:n=Be;break;default:n=Re}return r=Ed.bind(null,e),n=Ae(n,r),e.callbackPriority=t,e.callbackNode=n,t}return r!==null&&r!==null&&je(r),e.callbackPriority=2,e.callbackNode=null,2}function Ed(e,t){if(xu!==0&&xu!==5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(ad()&&e.callbackNode!==n)return null;var r=eu;return r=et(e,e===Ql?r:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r===0?null:(Nu(e,r,t),Td(e,Pe()),e.callbackNode!=null&&e.callbackNode===n?Ed.bind(null,e):null)}function Dd(e,t){if(ad())return null;Nu(e,t,!0)}function Od(){gf(function(){Zl&6?Ae(Ie,Cd):wd()})}function kd(){if(bd===0){var e=xa;e===0&&(e=Xe,Xe<<=1,!(Xe&261888)&&(Xe=256)),bd=e}return bd}function Ad(e){return e==null||typeof e==`symbol`||typeof e==`boolean`?null:typeof e==`function`?e:cn(``+e)}function jd(e,t){var n=t.ownerDocument.createElement(`input`);return n.name=t.name,n.value=t.value,e.id&&n.setAttribute(`form`,e.id),t.parentNode.insertBefore(n,t),e=new FormData(e),n.parentNode.removeChild(n),e}function Md(e,t,n,r,i){if(t===`submit`&&n&&n.stateNode===i){var a=Ad((i[gt]||null).action),o=r.submitter;o&&(t=(t=o[gt]||null)?Ad(t.formAction):o.getAttribute(`formAction`),t!==null&&(a=t,o=null));var s=new An(`action`,`action`,null,r,i);e.push({event:s,listeners:[{instance:null,listener:function(){if(r.defaultPrevented){if(bd!==0){var e=o?jd(i,o):new FormData(i);Ps(n,{pending:!0,data:e,method:i.method,action:a},null,e)}}else typeof a==`function`&&(s.preventDefault(),e=o?jd(i,o):new FormData(i),Ps(n,{pending:!0,data:e,method:i.method,action:a},a,e))},currentTarget:i}]})}}for(var Nd=0;Nd<ri.length;Nd++){var Pd=ri[Nd];ii(Pd.toLowerCase(),`on`+(Pd[0].toUpperCase()+Pd.slice(1)))}ii(Yr,`onAnimationEnd`),ii(Xr,`onAnimationIteration`),ii(Zr,`onAnimationStart`),ii(`dblclick`,`onDoubleClick`),ii(`focusin`,`onFocus`),ii(`focusout`,`onBlur`),ii(Qr,`onTransitionRun`),ii($r,`onTransitionStart`),ii(ei,`onTransitionCancel`),ii(ti,`onTransitionEnd`),Mt(`onMouseEnter`,[`mouseout`,`mouseover`]),Mt(`onMouseLeave`,[`mouseout`,`mouseover`]),Mt(`onPointerEnter`,[`pointerout`,`pointerover`]),Mt(`onPointerLeave`,[`pointerout`,`pointerover`]),jt(`onChange`,`change click focusin focusout input keydown keyup selectionchange`.split(` `)),jt(`onSelect`,`focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange`.split(` `)),jt(`onBeforeInput`,[`compositionend`,`keypress`,`textInput`,`paste`]),jt(`onCompositionEnd`,`compositionend focusout keydown keypress keyup mousedown`.split(` `)),jt(`onCompositionStart`,`compositionstart focusout keydown keypress keyup mousedown`.split(` `)),jt(`onCompositionUpdate`,`compositionupdate focusout keydown keypress keyup mousedown`.split(` `));var Fd=`abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting`.split(` `),Id=new Set(`beforetoggle cancel close invalid load scroll scrollend toggle`.split(` `).concat(Fd));function Ld(e,t){t=!!(t&4);for(var n=0;n<e.length;n++){var r=e[n],i=r.event;r=r.listeners;a:{var a=void 0;if(t)for(var o=r.length-1;0<=o;o--){var s=r[o],c=s.instance,l=s.currentTarget;if(s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){ai(e)}i.currentTarget=null,a=c}else for(o=0;o<r.length;o++){if(s=r[o],c=s.instance,l=s.currentTarget,s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){ai(e)}i.currentTarget=null,a=c}}}}function Rd(e,t){var n=t[vt];n===void 0&&(n=t[vt]=new Set);var r=e+`__bubble`;n.has(r)||(Hd(t,e,2,!1),n.add(r))}function zd(e,t,n){var r=0;t&&(r|=4),Hd(n,e,r,t)}var Bd=`_reactListening`+Math.random().toString(36).slice(2);function Vd(e){if(!e[Bd]){e[Bd]=!0,kt.forEach(function(t){t!==`selectionchange`&&(Id.has(t)||zd(t,!1,e),zd(t,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Bd]||(t[Bd]=!0,zd(`selectionchange`,!1,t))}}function Hd(e,t,n,r){switch(Dp(t)){case 2:var i=xp;break;case 8:i=Sp;break;default:i=Cp}n=i.bind(null,t,n,e),i=void 0,!yn||t!==`touchstart`&&t!==`touchmove`&&t!==`wheel`||(i=!0),r?i===void 0?e.addEventListener(t,n,!0):e.addEventListener(t,n,{capture:!0,passive:i}):i===void 0?e.addEventListener(t,n,!1):e.addEventListener(t,n,{passive:i})}function Ud(e,t,n,r,i){var a=r;if(!(t&1)&&!(t&2)&&r!==null)a:for(;;){if(r===null)return;var s=r.tag;if(s===3||s===4){var c=r.stateNode.containerInfo;if(c===i)break;if(s===4)for(s=r.return;s!==null;){var l=s.tag;if((l===3||l===4)&&s.stateNode.containerInfo===i)return;s=s.return}for(;c!==null;){if(s=wt(c),s===null)return;if(l=s.tag,l===5||l===6||l===26||l===27){r=a=s;continue a}c=c.parentNode}}r=r.return}gn(function(){var r=a,i=dn(n),s=[];a:{var c=ni.get(e);if(c!==void 0){var l=An,u=e;switch(e){case`keypress`:if(Tn(n)===0)break a;case`keydown`:case`keyup`:l=Jn;break;case`focusin`:u=`focus`,l=zn;break;case`focusout`:u=`blur`,l=zn;break;case`beforeblur`:case`afterblur`:l=zn;break;case`click`:if(n.button===2)break a;case`auxclick`:case`dblclick`:case`mousedown`:case`mousemove`:case`mouseup`:case`mouseout`:case`mouseover`:case`contextmenu`:l=Ln;break;case`drag`:case`dragend`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`dragstart`:case`drop`:l=Rn;break;case`touchcancel`:case`touchend`:case`touchmove`:case`touchstart`:l=Xn;break;case Yr:case Xr:case Zr:l=Bn;break;case ti:l=Zn;break;case`scroll`:case`scrollend`:l=Mn;break;case`wheel`:l=Qn;break;case`copy`:case`cut`:case`paste`:l=Vn;break;case`gotpointercapture`:case`lostpointercapture`:case`pointercancel`:case`pointerdown`:case`pointermove`:case`pointerout`:case`pointerover`:case`pointerup`:l=Yn;break;case`toggle`:case`beforetoggle`:l=$n}var d=!!(t&4),f=!d&&(e===`scroll`||e===`scrollend`),p=d?c===null?null:c+`Capture`:c;d=[];for(var m=r,h;m!==null;){var g=m;if(h=g.stateNode,g=g.tag,g!==5&&g!==26&&g!==27||h===null||p===null||(g=_n(m,p),g!=null&&d.push(Wd(m,g,h))),f)break;m=m.return}0<d.length&&(c=new l(c,u,null,n,i),s.push({event:c,listeners:d}))}}if(!(t&7)){a:{if(c=e===`mouseover`||e===`pointerover`,l=e===`mouseout`||e===`pointerout`,c&&n!==un&&(u=n.relatedTarget||n.fromElement)&&(wt(u)||u[_t]))break a;if((l||c)&&(c=i.window===i?i:(c=i.ownerDocument)?c.defaultView||c.parentWindow:window,l?(u=n.relatedTarget||n.toElement,l=r,u=u?wt(u):null,u!==null&&(f=o(u),d=u.tag,u!==f||d!==5&&d!==27&&d!==6)&&(u=null)):(l=null,u=r),l!==u)){if(d=Ln,g=`onMouseLeave`,p=`onMouseEnter`,m=`mouse`,(e===`pointerout`||e===`pointerover`)&&(d=Yn,g=`onPointerLeave`,p=`onPointerEnter`,m=`pointer`),f=l==null?c:Et(l),h=u==null?c:Et(u),c=new d(g,m+`leave`,l,n,i),c.target=f,c.relatedTarget=h,g=null,wt(i)===r&&(d=new d(p,m+`enter`,u,n,i),d.target=h,d.relatedTarget=f,g=d),f=g,l&&u)b:{for(d=Kd,p=l,m=u,h=0,g=p;g;g=d(g))h++;g=0;for(var _=m;_;_=d(_))g++;for(;0<h-g;)p=d(p),h--;for(;0<g-h;)m=d(m),g--;for(;h--;){if(p===m||m!==null&&p===m.alternate){d=p;break b}p=d(p),m=d(m)}d=null}else d=null;l!==null&&qd(s,c,l,d,!1),u!==null&&f!==null&&qd(s,f,u,d,!0)}}a:{if(c=r?Et(r):window,l=c.nodeName&&c.nodeName.toLowerCase(),l===`select`||l===`input`&&c.type===`file`)var v=yr;else if(pr(c)){if(br)v=kr;else{v=Dr;var y=Er}}else l=c.nodeName,!l||l.toLowerCase()!==`input`||c.type!==`checkbox`&&c.type!==`radio`?r&&an(r.elementType)&&(v=yr):v=Or;if(v&&=v(e,r)){mr(s,v,n,i);break a}y&&y(e,c,r),e===`focusout`&&r&&c.type===`number`&&r.memoizedProps.value!=null&&Xt(c,`number`,c.value)}switch(y=r?Et(r):window,e){case`focusin`:(pr(y)||y.contentEditable===`true`)&&(zr=y,Br=r,Vr=null);break;case`focusout`:Vr=Br=zr=null;break;case`mousedown`:Hr=!0;break;case`contextmenu`:case`mouseup`:case`dragend`:Hr=!1,Ur(s,n,i);break;case`selectionchange`:if(Rr)break;case`keydown`:case`keyup`:Ur(s,n,i)}var b;if(tr)b:{switch(e){case`compositionstart`:var x=`onCompositionStart`;break b;case`compositionend`:x=`onCompositionEnd`;break b;case`compositionupdate`:x=`onCompositionUpdate`;break b}x=void 0}else lr?sr(e,n)&&(x=`onCompositionEnd`):e===`keydown`&&n.keyCode===229&&(x=`onCompositionStart`);x&&(ir&&n.locale!==`ko`&&(lr||x!==`onCompositionStart`?x===`onCompositionEnd`&&lr&&(b=wn()):(xn=i,Sn=`value`in xn?xn.value:xn.textContent,lr=!0)),y=Gd(r,x),0<y.length&&(x=new Hn(x,e,null,n,i),s.push({event:x,listeners:y}),b?x.data=b:(b=cr(n),b!==null&&(x.data=b)))),(b=rr?ur(e,n):dr(e,n))&&(x=Gd(r,`onBeforeInput`),0<x.length&&(y=new Hn(`onBeforeInput`,`beforeinput`,null,n,i),s.push({event:y,listeners:x}),y.data=b)),Md(s,e,r,n,i)}Ld(s,t)})}function Wd(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Gd(e,t){for(var n=t+`Capture`,r=[];e!==null;){var i=e,a=i.stateNode;if(i=i.tag,i!==5&&i!==26&&i!==27||a===null||(i=_n(e,n),i!=null&&r.unshift(Wd(e,i,a)),i=_n(e,t),i!=null&&r.push(Wd(e,i,a))),e.tag===3)return r;e=e.return}return[]}function Kd(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function qd(e,t,n,r,i){for(var a=t._reactName,o=[];n!==null&&n!==r;){var s=n,c=s.alternate,l=s.stateNode;if(s=s.tag,c!==null&&c===r)break;s!==5&&s!==26&&s!==27||l===null||(c=l,i?(l=_n(n,a),l!=null&&o.unshift(Wd(n,l,c))):i||(l=_n(n,a),l!=null&&o.push(Wd(n,l,c)))),n=n.return}o.length!==0&&e.push({event:t,listeners:o})}var Jd=/\r\n?/g,Yd=/\u0000|\uFFFD/g;function Xd(e){return(typeof e==`string`?e:``+e).replace(Jd,`
9
+ `).replace(Yd,``)}function Zd(e,t){return t=Xd(t),Xd(e)===t}function Qd(e,t,n,r,a,o){switch(n){case`children`:typeof r==`string`?t===`body`||t===`textarea`&&r===``||en(e,r):(typeof r==`number`||typeof r==`bigint`)&&t!==`body`&&en(e,``+r);break;case`className`:Rt(e,`class`,r);break;case`tabIndex`:Rt(e,`tabindex`,r);break;case`dir`:case`role`:case`viewBox`:case`width`:case`height`:Rt(e,n,r);break;case`style`:rn(e,r,o);break;case`data`:if(t!==`object`){Rt(e,`data`,r);break}case`src`:case`href`:if(r===``&&(t!==`a`||n!==`href`)){e.removeAttribute(n);break}if(r==null||typeof r==`function`||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=cn(``+r),e.setAttribute(n,r);break;case`action`:case`formAction`:if(typeof r==`function`){e.setAttribute(n,`javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')`);break}if(typeof o==`function`&&(n===`formAction`?(t!==`input`&&Qd(e,t,`name`,a.name,a,null),Qd(e,t,`formEncType`,a.formEncType,a,null),Qd(e,t,`formMethod`,a.formMethod,a,null),Qd(e,t,`formTarget`,a.formTarget,a,null)):(Qd(e,t,`encType`,a.encType,a,null),Qd(e,t,`method`,a.method,a,null),Qd(e,t,`target`,a.target,a,null))),r==null||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=cn(``+r),e.setAttribute(n,r);break;case`onClick`:r!=null&&(e.onclick=ln);break;case`onScroll`:r!=null&&Rd(`scroll`,e);break;case`onScrollEnd`:r!=null&&Rd(`scrollend`,e);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(i(61));if(n=r.__html,n!=null){if(a.children!=null)throw Error(i(60));e.innerHTML=n}}break;case`multiple`:e.multiple=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`muted`:e.muted=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`defaultValue`:case`defaultChecked`:case`innerHTML`:case`ref`:break;case`autoFocus`:break;case`xlinkHref`:if(r==null||typeof r==`function`||typeof r==`boolean`||typeof r==`symbol`){e.removeAttribute(`xlink:href`);break}n=cn(``+r),e.setAttributeNS(`http://www.w3.org/1999/xlink`,`xlink:href`,n);break;case`contentEditable`:case`spellCheck`:case`draggable`:case`value`:case`autoReverse`:case`externalResourcesRequired`:case`focusable`:case`preserveAlpha`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``+r):e.removeAttribute(n);break;case`inert`:case`allowFullScreen`:case`async`:case`autoPlay`:case`controls`:case`default`:case`defer`:case`disabled`:case`disablePictureInPicture`:case`disableRemotePlayback`:case`formNoValidate`:case`hidden`:case`loop`:case`noModule`:case`noValidate`:case`open`:case`playsInline`:case`readOnly`:case`required`:case`reversed`:case`scoped`:case`seamless`:case`itemScope`:r&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``):e.removeAttribute(n);break;case`capture`:case`download`:!0===r?e.setAttribute(n,``):!1!==r&&r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,r):e.removeAttribute(n);break;case`cols`:case`rows`:case`size`:case`span`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`&&!isNaN(r)&&1<=r?e.setAttribute(n,r):e.removeAttribute(n);break;case`rowSpan`:case`start`:r==null||typeof r==`function`||typeof r==`symbol`||isNaN(r)?e.removeAttribute(n):e.setAttribute(n,r);break;case`popover`:Rd(`beforetoggle`,e),Rd(`toggle`,e),Lt(e,`popover`,r);break;case`xlinkActuate`:zt(e,`http://www.w3.org/1999/xlink`,`xlink:actuate`,r);break;case`xlinkArcrole`:zt(e,`http://www.w3.org/1999/xlink`,`xlink:arcrole`,r);break;case`xlinkRole`:zt(e,`http://www.w3.org/1999/xlink`,`xlink:role`,r);break;case`xlinkShow`:zt(e,`http://www.w3.org/1999/xlink`,`xlink:show`,r);break;case`xlinkTitle`:zt(e,`http://www.w3.org/1999/xlink`,`xlink:title`,r);break;case`xlinkType`:zt(e,`http://www.w3.org/1999/xlink`,`xlink:type`,r);break;case`xmlBase`:zt(e,`http://www.w3.org/XML/1998/namespace`,`xml:base`,r);break;case`xmlLang`:zt(e,`http://www.w3.org/XML/1998/namespace`,`xml:lang`,r);break;case`xmlSpace`:zt(e,`http://www.w3.org/XML/1998/namespace`,`xml:space`,r);break;case`is`:Lt(e,`is`,r);break;case`innerText`:case`textContent`:break;default:(!(2<n.length)||n[0]!==`o`&&n[0]!==`O`||n[1]!==`n`&&n[1]!==`N`)&&(n=on.get(n)||n,Lt(e,n,r))}}function $d(e,t,n,r,a,o){switch(n){case`style`:rn(e,r,o);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(i(61));if(n=r.__html,n!=null){if(a.children!=null)throw Error(i(60));e.innerHTML=n}}break;case`children`:typeof r==`string`?en(e,r):(typeof r==`number`||typeof r==`bigint`)&&en(e,``+r);break;case`onScroll`:r!=null&&Rd(`scroll`,e);break;case`onScrollEnd`:r!=null&&Rd(`scrollend`,e);break;case`onClick`:r!=null&&(e.onclick=ln);break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`innerHTML`:case`ref`:break;case`innerText`:case`textContent`:break;default:if(!At.hasOwnProperty(n))a:{if(n[0]===`o`&&n[1]===`n`&&(a=n.endsWith(`Capture`),t=n.slice(2,a?n.length-7:void 0),o=e[gt]||null,o=o==null?null:o[n],typeof o==`function`&&e.removeEventListener(t,o,a),typeof r==`function`)){typeof o!=`function`&&o!==null&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,r,a);break a}n in e?e[n]=r:!0===r?e.setAttribute(n,``):Lt(e,n,r)}}}function ef(e,t,n){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`img`:Rd(`error`,e),Rd(`load`,e);var r=!1,a=!1,o;for(o in n)if(n.hasOwnProperty(o)){var s=n[o];if(s!=null)switch(o){case`src`:r=!0;break;case`srcSet`:a=!0;break;case`children`:case`dangerouslySetInnerHTML`:throw Error(i(137,t));default:Qd(e,t,o,s,n,null)}}a&&Qd(e,t,`srcSet`,n.srcSet,n,null),r&&Qd(e,t,`src`,n.src,n,null);return;case`input`:Rd(`invalid`,e);var c=o=s=a=null,l=null,u=null;for(r in n)if(n.hasOwnProperty(r)){var d=n[r];if(d!=null)switch(r){case`name`:a=d;break;case`type`:s=d;break;case`checked`:l=d;break;case`defaultChecked`:u=d;break;case`value`:o=d;break;case`defaultValue`:c=d;break;case`children`:case`dangerouslySetInnerHTML`:if(d!=null)throw Error(i(137,t));break;default:Qd(e,t,r,d,n,null)}}Yt(e,o,c,l,u,s,a,!1);return;case`select`:for(a in Rd(`invalid`,e),r=s=o=null,n)if(n.hasOwnProperty(a)&&(c=n[a],c!=null))switch(a){case`value`:o=c;break;case`defaultValue`:s=c;break;case`multiple`:r=c;default:Qd(e,t,a,c,n,null)}t=o,n=s,e.multiple=!!r,t==null?n!=null&&Zt(e,!!r,n,!0):Zt(e,!!r,t,!1);return;case`textarea`:for(s in Rd(`invalid`,e),o=a=r=null,n)if(n.hasOwnProperty(s)&&(c=n[s],c!=null))switch(s){case`value`:r=c;break;case`defaultValue`:a=c;break;case`children`:o=c;break;case`dangerouslySetInnerHTML`:if(c!=null)throw Error(i(91));break;default:Qd(e,t,s,c,n,null)}$t(e,r,a,o);return;case`option`:for(l in n)if(n.hasOwnProperty(l)&&(r=n[l],r!=null))switch(l){case`selected`:e.selected=r&&typeof r!=`function`&&typeof r!=`symbol`;break;default:Qd(e,t,l,r,n,null)}return;case`dialog`:Rd(`beforetoggle`,e),Rd(`toggle`,e),Rd(`cancel`,e),Rd(`close`,e);break;case`iframe`:case`object`:Rd(`load`,e);break;case`video`:case`audio`:for(r=0;r<Fd.length;r++)Rd(Fd[r],e);break;case`image`:Rd(`error`,e),Rd(`load`,e);break;case`details`:Rd(`toggle`,e);break;case`embed`:case`source`:case`link`:Rd(`error`,e),Rd(`load`,e);case`area`:case`base`:case`br`:case`col`:case`hr`:case`keygen`:case`meta`:case`param`:case`track`:case`wbr`:case`menuitem`:for(u in n)if(n.hasOwnProperty(u)&&(r=n[u],r!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:throw Error(i(137,t));default:Qd(e,t,u,r,n,null)}return;default:if(an(t)){for(d in n)n.hasOwnProperty(d)&&(r=n[d],r!==void 0&&$d(e,t,d,r,n,void 0));return}}for(c in n)n.hasOwnProperty(c)&&(r=n[c],r!=null&&Qd(e,t,c,r,n,null))}function tf(e,t,n,r){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`input`:var a=null,o=null,s=null,c=null,l=null,u=null,d=null;for(m in n){var f=n[m];if(n.hasOwnProperty(m)&&f!=null)switch(m){case`checked`:break;case`value`:break;case`defaultValue`:l=f;default:r.hasOwnProperty(m)||Qd(e,t,m,null,r,f)}}for(var p in r){var m=r[p];if(f=n[p],r.hasOwnProperty(p)&&(m!=null||f!=null))switch(p){case`type`:o=m;break;case`name`:a=m;break;case`checked`:u=m;break;case`defaultChecked`:d=m;break;case`value`:s=m;break;case`defaultValue`:c=m;break;case`children`:case`dangerouslySetInnerHTML`:if(m!=null)throw Error(i(137,t));break;default:m!==f&&Qd(e,t,p,m,r,f)}}Jt(e,s,c,l,u,d,o,a);return;case`select`:for(o in m=s=c=p=null,n)if(l=n[o],n.hasOwnProperty(o)&&l!=null)switch(o){case`value`:break;case`multiple`:m=l;default:r.hasOwnProperty(o)||Qd(e,t,o,null,r,l)}for(a in r)if(o=r[a],l=n[a],r.hasOwnProperty(a)&&(o!=null||l!=null))switch(a){case`value`:p=o;break;case`defaultValue`:c=o;break;case`multiple`:s=o;default:o!==l&&Qd(e,t,a,o,r,l)}t=c,n=s,r=m,p==null?!!r!=!!n&&(t==null?Zt(e,!!n,n?[]:``,!1):Zt(e,!!n,t,!0)):Zt(e,!!n,p,!1);return;case`textarea`:for(c in m=p=null,n)if(a=n[c],n.hasOwnProperty(c)&&a!=null&&!r.hasOwnProperty(c))switch(c){case`value`:break;case`children`:break;default:Qd(e,t,c,null,r,a)}for(s in r)if(a=r[s],o=n[s],r.hasOwnProperty(s)&&(a!=null||o!=null))switch(s){case`value`:p=a;break;case`defaultValue`:m=a;break;case`children`:break;case`dangerouslySetInnerHTML`:if(a!=null)throw Error(i(91));break;default:a!==o&&Qd(e,t,s,a,r,o)}Qt(e,p,m);return;case`option`:for(var h in n)if(p=n[h],n.hasOwnProperty(h)&&p!=null&&!r.hasOwnProperty(h))switch(h){case`selected`:e.selected=!1;break;default:Qd(e,t,h,null,r,p)}for(l in r)if(p=r[l],m=n[l],r.hasOwnProperty(l)&&p!==m&&(p!=null||m!=null))switch(l){case`selected`:e.selected=p&&typeof p!=`function`&&typeof p!=`symbol`;break;default:Qd(e,t,l,p,r,m)}return;case`img`:case`link`:case`area`:case`base`:case`br`:case`col`:case`embed`:case`hr`:case`keygen`:case`meta`:case`param`:case`source`:case`track`:case`wbr`:case`menuitem`:for(var g in n)p=n[g],n.hasOwnProperty(g)&&p!=null&&!r.hasOwnProperty(g)&&Qd(e,t,g,null,r,p);for(u in r)if(p=r[u],m=n[u],r.hasOwnProperty(u)&&p!==m&&(p!=null||m!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:if(p!=null)throw Error(i(137,t));break;default:Qd(e,t,u,p,r,m)}return;default:if(an(t)){for(var _ in n)p=n[_],n.hasOwnProperty(_)&&p!==void 0&&!r.hasOwnProperty(_)&&$d(e,t,_,void 0,r,p);for(d in r)p=r[d],m=n[d],!r.hasOwnProperty(d)||p===m||p===void 0&&m===void 0||$d(e,t,d,p,r,m);return}}for(var v in n)p=n[v],n.hasOwnProperty(v)&&p!=null&&!r.hasOwnProperty(v)&&Qd(e,t,v,null,r,p);for(f in r)p=r[f],m=n[f],!r.hasOwnProperty(f)||p===m||p==null&&m==null||Qd(e,t,f,p,r,m)}function nf(e){switch(e){case`css`:case`script`:case`font`:case`img`:case`image`:case`input`:case`link`:return!0;default:return!1}}function rf(){if(typeof performance.getEntriesByType==`function`){for(var e=0,t=0,n=performance.getEntriesByType(`resource`),r=0;r<n.length;r++){var i=n[r],a=i.transferSize,o=i.initiatorType,s=i.duration;if(a&&s&&nf(o)){for(o=0,s=i.responseEnd,r+=1;r<n.length;r++){var c=n[r],l=c.startTime;if(l>s)break;var u=c.transferSize,d=c.initiatorType;u&&nf(d)&&(c=c.responseEnd,o+=u*(c<s?1:(s-l)/(c-l)))}if(--r,t+=8*(a+o)/(i.duration/1e3),e++,10<e)break}}if(0<e)return t/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e==`number`)?e:5}var af=null,of=null;function sf(e){return e.nodeType===9?e:e.ownerDocument}function cf(e){switch(e){case`http://www.w3.org/2000/svg`:return 1;case`http://www.w3.org/1998/Math/MathML`:return 2;default:return 0}}function lf(e,t){if(e===0)switch(t){case`svg`:return 1;case`math`:return 2;default:return 0}return e===1&&t===`foreignObject`?0:e}function uf(e,t){return e===`textarea`||e===`noscript`||typeof t.children==`string`||typeof t.children==`number`||typeof t.children==`bigint`||typeof t.dangerouslySetInnerHTML==`object`&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var df=null;function ff(){var e=window.event;return e&&e.type===`popstate`?e!==df&&(df=e,!0):(df=null,!1)}var pf=typeof setTimeout==`function`?setTimeout:void 0,mf=typeof clearTimeout==`function`?clearTimeout:void 0,hf=typeof Promise==`function`?Promise:void 0,gf=typeof queueMicrotask==`function`?queueMicrotask:hf===void 0?pf:function(e){return hf.resolve(null).then(e).catch(_f)};function _f(e){setTimeout(function(){throw e})}function vf(e){return e===`head`}function yf(e,t){var n=t,r=0;do{var i=n.nextSibling;if(e.removeChild(n),i&&i.nodeType===8){if(n=i.data,n===`/$`||n===`/&`){if(r===0){e.removeChild(i),Gp(t);return}r--}else if(n===`$`||n===`$?`||n===`$~`||n===`$!`||n===`&`)r++;else if(n===`html`)Nf(e.ownerDocument.documentElement);else if(n===`head`){n=e.ownerDocument.head,Nf(n);for(var a=n.firstChild;a;){var o=a.nextSibling,s=a.nodeName;a[St]||s===`SCRIPT`||s===`STYLE`||s===`LINK`&&a.rel.toLowerCase()===`stylesheet`||n.removeChild(a),a=o}}else n===`body`&&Nf(e.ownerDocument.body)}n=i}while(n);Gp(t)}function bf(e,t){var n=e;e=0;do{var r=n.nextSibling;if(n.nodeType===1?t?(n._stashedDisplay=n.style.display,n.style.display=`none`):(n.style.display=n._stashedDisplay||``,n.getAttribute(`style`)===``&&n.removeAttribute(`style`)):n.nodeType===3&&(t?(n._stashedText=n.nodeValue,n.nodeValue=``):n.nodeValue=n._stashedText||``),r&&r.nodeType===8){if(n=r.data,n===`/$`){if(e===0)break;e--}else n!==`$`&&n!==`$?`&&n!==`$~`&&n!==`$!`||e++}n=r}while(n)}function xf(e){var t=e.firstChild;for(t&&t.nodeType===10&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case`HTML`:case`HEAD`:case`BODY`:xf(n),Ct(n);continue;case`SCRIPT`:case`STYLE`:continue;case`LINK`:if(n.rel.toLowerCase()===`stylesheet`)continue}e.removeChild(n)}}function Sf(e,t,n,r){for(;e.nodeType===1;){var i=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!r&&(e.nodeName!==`INPUT`||e.type!==`hidden`))break}else if(!r){if(t===`input`&&e.type===`hidden`){var a=i.name==null?null:``+i.name;if(i.type===`hidden`&&e.getAttribute(`name`)===a)return e}else return e}else if(!e[St])switch(t){case`meta`:if(!e.hasAttribute(`itemprop`))break;return e;case`link`:if(a=e.getAttribute(`rel`),a===`stylesheet`&&e.hasAttribute(`data-precedence`)||a!==i.rel||e.getAttribute(`href`)!==(i.href==null||i.href===``?null:i.href)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin)||e.getAttribute(`title`)!==(i.title==null?null:i.title))break;return e;case`style`:if(e.hasAttribute(`data-precedence`))break;return e;case`script`:if(a=e.getAttribute(`src`),(a!==(i.src==null?null:i.src)||e.getAttribute(`type`)!==(i.type==null?null:i.type)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin))&&a&&e.hasAttribute(`async`)&&!e.hasAttribute(`itemprop`))break;return e;default:return e}if(e=Of(e.nextSibling),e===null)break}return null}function Cf(e,t,n){if(t===``)return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!n||(e=Of(e.nextSibling),e===null))return null;return e}function wf(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!t||(e=Of(e.nextSibling),e===null))return null;return e}function Tf(e){return e.data===`$?`||e.data===`$~`}function Ef(e){return e.data===`$!`||e.data===`$?`&&e.ownerDocument.readyState!==`loading`}function Df(e,t){var n=e.ownerDocument;if(e.data===`$~`)e._reactRetry=t;else if(e.data!==`$?`||n.readyState!==`loading`)t();else{var r=function(){t(),n.removeEventListener(`DOMContentLoaded`,r)};n.addEventListener(`DOMContentLoaded`,r),e._reactRetry=r}}function Of(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t===`$`||t===`$!`||t===`$?`||t===`$~`||t===`&`||t===`F!`||t===`F`)break;if(t===`/$`||t===`/&`)return null}}return e}var kf=null;function Af(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`/$`||n===`/&`){if(t===0)return Of(e.nextSibling);t--}else n!==`$`&&n!==`$!`&&n!==`$?`&&n!==`$~`&&n!==`&`||t++}e=e.nextSibling}return null}function jf(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`$`||n===`$!`||n===`$?`||n===`$~`||n===`&`){if(t===0)return e;t--}else n!==`/$`&&n!==`/&`||t++}e=e.previousSibling}return null}function Mf(e,t,n){switch(t=sf(n),e){case`html`:if(e=t.documentElement,!e)throw Error(i(452));return e;case`head`:if(e=t.head,!e)throw Error(i(453));return e;case`body`:if(e=t.body,!e)throw Error(i(454));return e;default:throw Error(i(451))}}function Nf(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);Ct(e)}var Pf=new Map,Ff=new Set;function If(e){return typeof e.getRootNode==`function`?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var Lf=se.d;se.d={f:Rf,r:zf,D:Vf,C:Hf,L:Uf,m:Wf,X:Kf,S:Gf,M:qf};function Rf(){var e=Lf.f(),t=Lu();return e||t}function zf(e){var t=Tt(e);t!==null&&t.tag===5&&t.type===`form`?Is(t):Lf.r(e)}var Bf=typeof document>`u`?null:document;function P(e,t,n){var r=Bf;if(r&&typeof t==`string`&&t){var i=qt(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),Ff.has(i)||(Ff.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),ef(t,`link`,e),Ot(t),r.head.appendChild(t)))}}function Vf(e){Lf.D(e),P(`dns-prefetch`,e,null)}function Hf(e,t){Lf.C(e,t),P(`preconnect`,e,t)}function Uf(e,t,n){Lf.L(e,t,n);var r=Bf;if(r&&e&&t){var i=`link[rel="preload"][as="`+qt(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+qt(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+qt(n.imageSizes)+`"]`)):i+=`[href="`+qt(e)+`"]`;var a=i;switch(t){case`style`:a=Yf(e);break;case`script`:a=$f(e)}Pf.has(a)||(e=h({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),Pf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(Xf(a))||t===`script`&&r.querySelector(ep(a))||(t=r.createElement(`link`),ef(t,`link`,e),Ot(t),r.head.appendChild(t)))}}function Wf(e,t){Lf.m(e,t);var n=Bf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+qt(r)+`"][href="`+qt(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=$f(e)}if(!Pf.has(a)&&(e=h({rel:`modulepreload`,href:e},t),Pf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(ep(a)))return}r=n.createElement(`link`),ef(r,`link`,e),Ot(r),n.head.appendChild(r)}}}function Gf(e,t,n){Lf.S(e,t,n);var r=Bf;if(r&&e){var i=Dt(r).hoistableStyles,a=Yf(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(Xf(a)))s.loading=5;else{e=h({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=Pf.get(a))&&rp(e,n);var c=o=r.createElement(`link`);Ot(c),ef(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,np(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Kf(e,t){Lf.X(e,t);var n=Bf;if(n&&e){var r=Dt(n).hoistableScripts,i=$f(e),a=r.get(i);a||(a=n.querySelector(ep(i)),a||(e=h({src:e,async:!0},t),(t=Pf.get(i))&&ip(e,t),a=n.createElement(`script`),Ot(a),ef(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function qf(e,t){Lf.M(e,t);var n=Bf;if(n&&e){var r=Dt(n).hoistableScripts,i=$f(e),a=r.get(i);a||(a=n.querySelector(ep(i)),a||(e=h({src:e,async:!0,type:`module`},t),(t=Pf.get(i))&&ip(e,t),a=n.createElement(`script`),Ot(a),ef(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Jf(e,t,n,r){var a=(a=ge.current)?If(a):null;if(!a)throw Error(i(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=Yf(n.href),n=Dt(a).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Yf(n.href);var o=Dt(a).hoistableStyles,s=o.get(e);if(s||(a=a.ownerDocument||a,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=a.querySelector(Xf(e)))&&!o._p&&(s.instance=o,s.state.loading=5),Pf.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},Pf.set(e,n),o||Qf(a,e,n,s.state))),t&&r===null)throw Error(i(528,``));return s}if(t&&r!==null)throw Error(i(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=$f(n),n=Dt(a).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(i(444,e))}}function Yf(e){return`href="`+qt(e)+`"`}function Xf(e){return`link[rel="stylesheet"][`+e+`]`}function Zf(e){return h({},e,{"data-precedence":e.precedence,precedence:null})}function Qf(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),ef(t,`link`,n),Ot(t),e.head.appendChild(t))}function $f(e){return`[src="`+qt(e)+`"]`}function ep(e){return`script[async]`+e}function tp(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+qt(n.href)+`"]`);if(r)return t.instance=r,Ot(r),r;var a=h({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),Ot(r),ef(r,`style`,a),np(r,n.precedence,e),t.instance=r;case`stylesheet`:a=Yf(n.href);var o=e.querySelector(Xf(a));if(o)return t.state.loading|=4,t.instance=o,Ot(o),o;r=Zf(n),(a=Pf.get(a))&&rp(r,a),o=(e.ownerDocument||e).createElement(`link`),Ot(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),ef(o,`link`,r),t.state.loading|=4,np(o,n.precedence,e),t.instance=o;case`script`:return o=$f(n.src),(a=e.querySelector(ep(o)))?(t.instance=a,Ot(a),a):(r=n,(a=Pf.get(o))&&(r=h({},n),ip(r,a)),e=e.ownerDocument||e,a=e.createElement(`script`),Ot(a),ef(a,`link`,r),e.head.appendChild(a),t.instance=a);case`void`:return null;default:throw Error(i(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,np(r,n.precedence,e));return t.instance}function np(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o<r.length;o++){var s=r[o];if(s.dataset.precedence===t)a=s;else if(a!==i)break}a?a.parentNode.insertBefore(e,a.nextSibling):(t=n.nodeType===9?n.head:n,t.insertBefore(e,t.firstChild))}function rp(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.title??=t.title}function ip(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.integrity??=t.integrity}var ap=null;function op(e,t,n){if(ap===null){var r=new Map,i=ap=new Map;i.set(n,r)}else i=ap,r=i.get(n),r||(r=new Map,i.set(n,r));if(r.has(e))return r;for(r.set(e,null),n=n.getElementsByTagName(e),i=0;i<n.length;i++){var a=n[i];if(!(a[St]||a[ht]||e===`link`&&a.getAttribute(`rel`)===`stylesheet`)&&a.namespaceURI!==`http://www.w3.org/2000/svg`){var o=a.getAttribute(t)||``;o=e+o;var s=r.get(o);s?s.push(a):r.set(o,[a])}}return r}function sp(e,t,n){e=e.ownerDocument||e,e.head.insertBefore(n,t===`title`?e.querySelector(`head > title`):null)}function cp(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function lp(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function up(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Yf(r.href),a=t.querySelector(Xf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=fp.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,Ot(a);return}a=t.ownerDocument||t,r=Zf(r),(i=Pf.get(i))&&rp(r,i),a=a.createElement(`link`),Ot(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),ef(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=fp.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var dp=0;function F(e,t){return e.stylesheets&&e.count===0&&pp(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var r=setTimeout(function(){if(e.stylesheets&&pp(e,e.stylesheets),e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}},6e4+t);0<e.imgBytes&&dp===0&&(dp=62500*rf());var i=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&pp(e,e.stylesheets),e.unsuspend)){var t=e.unsuspend;e.unsuspend=null,t()}},(e.imgBytes>dp?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function fp(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)pp(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var I=null;function pp(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,I=new Map,t.forEach(L,e),I=null,fp.call(e))}function L(e,t){if(!(t.state.loading&4)){var n=I.get(e);if(n)var r=n.get(null);else{n=new Map,I.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a<i.length;a++){var o=i[a];(o.nodeName===`LINK`||o.getAttribute(`media`)!==`not all`)&&(n.set(o.dataset.precedence,o),r=o)}r&&n.set(null,r)}i=t.instance,o=i.getAttribute(`data-precedence`),a=n.get(o)||r,a===r&&n.set(null,i),n.set(o,i),this.count++,r=fp.bind(this),i.addEventListener(`load`,r),i.addEventListener(`error`,r),a?a.parentNode.insertBefore(i,a.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(i,e.firstChild)),t.state.loading|=4}}var mp={$$typeof:C,Provider:null,Consumer:null,_currentValue:ce,_currentValue2:ce,_threadCount:0};function hp(e,t,n,r,i,a,o,s,c){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=it(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=it(0),this.hiddenUpdates=it(null),this.identifierPrefix=r,this.onUncaughtError=i,this.onCaughtError=a,this.onRecoverableError=o,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=c,this.incompleteTransitions=new Map}function gp(e,t,n,r,i,a,o,s,c,l,u,d){return e=new hp(e,t,n,o,c,l,u,d,s),t=1,!0===a&&(t|=24),a=_i(3,null,null,t),e.current=a,a.stateNode=e,t=_a(),t.refCount++,e.pooledCache=t,t.refCount++,a.memoizedState={element:r,isDehydrated:n,cache:t},Ja(a),e}function _p(e){return e?(e=hi,e):hi}function vp(e,t,n,r,i,a){i=_p(i),r.context===null?r.context=i:r.pendingContext=i,r=Xa(t),r.payload={element:n},a=a===void 0?null:a,a!==null&&(r.callback=a),n=Za(e,r,t),n!==null&&(Mu(n,e,t),Qa(n,e,t))}function R(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function yp(e,t){R(e,t),(e=e.alternate)&&R(e,t)}function z(e){if(e.tag===13||e.tag===31){var t=fi(e,67108864);t!==null&&Mu(t,e,67108864),yp(e,67108864)}}function B(e){if(e.tag===13||e.tag===31){var t=Au();t=ut(t);var n=fi(e,t);n!==null&&Mu(n,e,t),yp(e,t)}}var bp=!0;function xp(e,t,n,r){var i=k.T;k.T=null;var a=se.p;try{se.p=2,Cp(e,t,n,r)}finally{se.p=a,k.T=i}}function Sp(e,t,n,r){var i=k.T;k.T=null;var a=se.p;try{se.p=8,Cp(e,t,n,r)}finally{se.p=a,k.T=i}}function Cp(e,t,n,r){if(bp){var i=wp(r);if(i===null)Ud(e,t,r,Tp,n),Fp(e,r);else if(Lp(i,e,t,n,r))r.stopPropagation();else if(Fp(e,r),t&4&&-1<Pp.indexOf(e)){for(;i!==null;){var a=Tt(i);if(a!==null)switch(a.tag){case 3:if(a=a.stateNode,a.current.memoizedState.isDehydrated){var o=$e(a.pendingLanes);if(o!==0){var s=a;for(s.pendingLanes|=2,s.entangledLanes|=2;o;){var c=1<<31-Ke(o);s.entanglements[1]|=c,o&=~c}xd(a),!(Zl&6)&&(vu=Pe()+500,Sd(0,!1))}}break;case 31:case 13:s=fi(a,2),s!==null&&Mu(s,a,2),Lu(),yp(a,2)}if(a=wp(r),a===null&&Ud(e,t,r,Tp,n),a===i)break;i=a}i!==null&&r.stopPropagation()}else Ud(e,t,r,null,n)}}function wp(e){return e=dn(e),Ep(e)}var Tp=null;function Ep(e){if(Tp=null,e=wt(e),e!==null){var t=o(e);if(t===null)e=null;else{var n=t.tag;if(n===13){if(e=s(t),e!==null)return e;e=null}else if(n===31){if(e=c(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return Tp=e,null}function Dp(e){switch(e){case`beforetoggle`:case`cancel`:case`click`:case`close`:case`contextmenu`:case`copy`:case`cut`:case`auxclick`:case`dblclick`:case`dragend`:case`dragstart`:case`drop`:case`focusin`:case`focusout`:case`input`:case`invalid`:case`keydown`:case`keypress`:case`keyup`:case`mousedown`:case`mouseup`:case`paste`:case`pause`:case`play`:case`pointercancel`:case`pointerdown`:case`pointerup`:case`ratechange`:case`reset`:case`resize`:case`seeked`:case`submit`:case`toggle`:case`touchcancel`:case`touchend`:case`touchstart`:case`volumechange`:case`change`:case`selectionchange`:case`textInput`:case`compositionstart`:case`compositionend`:case`compositionupdate`:case`beforeblur`:case`afterblur`:case`beforeinput`:case`blur`:case`fullscreenchange`:case`focus`:case`hashchange`:case`popstate`:case`select`:case`selectstart`:return 2;case`drag`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`mousemove`:case`mouseout`:case`mouseover`:case`pointermove`:case`pointerout`:case`pointerover`:case`scroll`:case`touchmove`:case`wheel`:case`mouseenter`:case`mouseleave`:case`pointerenter`:case`pointerleave`:return 8;case`message`:switch(Fe()){case Ie:return 2;case Le:return 8;case Re:case ze:return 32;case Be:return 268435456;default:return 32}default:return 32}}var Op=!1,kp=null,V=null,Ap=null,jp=new Map,Mp=new Map,Np=[],Pp=`mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset`.split(` `);function Fp(e,t){switch(e){case`focusin`:case`focusout`:kp=null;break;case`dragenter`:case`dragleave`:V=null;break;case`mouseover`:case`mouseout`:Ap=null;break;case`pointerover`:case`pointerout`:jp.delete(t.pointerId);break;case`gotpointercapture`:case`lostpointercapture`:Mp.delete(t.pointerId)}}function Ip(e,t,n,r,i,a){return e===null||e.nativeEvent!==a?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:a,targetContainers:[i]},t!==null&&(t=Tt(t),t!==null&&z(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,i!==null&&t.indexOf(i)===-1&&t.push(i),e)}function Lp(e,t,n,r,i){switch(t){case`focusin`:return kp=Ip(kp,e,t,n,r,i),!0;case`dragenter`:return V=Ip(V,e,t,n,r,i),!0;case`mouseover`:return Ap=Ip(Ap,e,t,n,r,i),!0;case`pointerover`:var a=i.pointerId;return jp.set(a,Ip(jp.get(a)||null,e,t,n,r,i)),!0;case`gotpointercapture`:return a=i.pointerId,Mp.set(a,Ip(Mp.get(a)||null,e,t,n,r,i)),!0}return!1}function Rp(e){var t=wt(e.target);if(t!==null){var n=o(t);if(n!==null){if(t=n.tag,t===13){if(t=s(n),t!==null){e.blockedOn=t,pt(e.priority,function(){B(n)});return}}else if(t===31){if(t=c(n),t!==null){e.blockedOn=t,pt(e.priority,function(){B(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function zp(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=wp(e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);un=r,n.target.dispatchEvent(r),un=null}else return t=Tt(n),t!==null&&z(t),e.blockedOn=n,!1;t.shift()}return!0}function Bp(e,t,n){zp(e)&&n.delete(t)}function Vp(){Op=!1,kp!==null&&zp(kp)&&(kp=null),V!==null&&zp(V)&&(V=null),Ap!==null&&zp(Ap)&&(Ap=null),jp.forEach(Bp),Mp.forEach(Bp)}function Hp(e,n){e.blockedOn===n&&(e.blockedOn=null,Op||(Op=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,Vp)))}var Up=null;function Wp(e){Up!==e&&(Up=e,t.unstable_scheduleCallback(t.unstable_NormalPriority,function(){Up===e&&(Up=null);for(var t=0;t<e.length;t+=3){var n=e[t],r=e[t+1],i=e[t+2];if(typeof r!=`function`){if(Ep(r||n)===null)continue;break}var a=Tt(n);a!==null&&(e.splice(t,3),t-=3,Ps(a,{pending:!0,data:i,method:n.method,action:r},r,i))}}))}function Gp(e){function t(t){return Hp(t,e)}kp!==null&&Hp(kp,e),V!==null&&Hp(V,e),Ap!==null&&Hp(Ap,e),jp.forEach(t),Mp.forEach(t);for(var n=0;n<Np.length;n++){var r=Np[n];r.blockedOn===e&&(r.blockedOn=null)}for(;0<Np.length&&(n=Np[0],n.blockedOn===null);)Rp(n),n.blockedOn===null&&Np.shift();if(n=(e.ownerDocument||e).$$reactFormReplay,n!=null)for(r=0;r<n.length;r+=3){var i=n[r],a=n[r+1],o=i[gt]||null;if(typeof a==`function`)o||Wp(n);else if(o){var s=null;if(a&&a.hasAttribute(`formAction`)){if(i=a,o=a[gt]||null)s=o.formAction;else if(Ep(i)!==null)continue}else s=o.action;typeof s==`function`?n[r+1]=s:(n.splice(r,3),r-=3),Wp(n)}}}function Kp(){function e(e){e.canIntercept&&e.info===`react-transition`&&e.intercept({handler:function(){return new Promise(function(e){return i=e})},focusReset:`manual`,scroll:`manual`})}function t(){i!==null&&(i(),i=null),r||setTimeout(n,20)}function n(){if(!r&&!navigation.transition){var e=navigation.currentEntry;e&&e.url!=null&&navigation.navigate(e.url,{state:e.getState(),info:`react-transition`,history:`replace`})}}if(typeof navigation==`object`){var r=!1,i=null;return navigation.addEventListener(`navigate`,e),navigation.addEventListener(`navigatesuccess`,t),navigation.addEventListener(`navigateerror`,t),setTimeout(n,100),function(){r=!0,navigation.removeEventListener(`navigate`,e),navigation.removeEventListener(`navigatesuccess`,t),navigation.removeEventListener(`navigateerror`,t),i!==null&&(i(),i=null)}}}function qp(e){this._internalRoot=e}Jp.prototype.render=qp.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(i(409));var n=t.current;vp(n,Au(),e,t,null,null)},Jp.prototype.unmount=qp.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;vp(e.current,2,null,e,null,null),Lu(),t[_t]=null}};function Jp(e){this._internalRoot=e}Jp.prototype.unstable_scheduleHydration=function(e){if(e){var t=ft();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Np.length&&t!==0&&t<Np[n].priority;n++);Np.splice(n,0,e),n===0&&Rp(e)}};var Yp=n.version;if(Yp!==`19.2.8`)throw Error(i(527,Yp,`19.2.8`));se.findDOMNode=function(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render==`function`?Error(i(188)):(e=Object.keys(e).join(`,`),Error(i(268,e)));return e=d(t),e=e===null?null:p(e),e=e===null?null:e.stateNode,e};var Xp={bundleType:0,version:`19.2.8`,rendererPackageName:`react-dom`,currentDispatcherRef:k,reconcilerVersion:`19.2.8`};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`){var Zp=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Zp.isDisabled&&Zp.supportsFiber)try{Ue=Zp.inject(Xp),We=Zp}catch{}}e.createRoot=function(e,t){if(!a(e))throw Error(i(299));var n=!1,r=``,o=rc,s=ic,c=ac;return t!=null&&(!0===t.unstable_strictMode&&(n=!0),t.identifierPrefix!==void 0&&(r=t.identifierPrefix),t.onUncaughtError!==void 0&&(o=t.onUncaughtError),t.onCaughtError!==void 0&&(s=t.onCaughtError),t.onRecoverableError!==void 0&&(c=t.onRecoverableError)),t=gp(e,1,!1,null,null,n,r,null,o,s,c,Kp),e[_t]=t.current,Vd(e),new qp(t)}})),g=o(((e,t)=>{function n(){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE==`function`)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=h()})),_=/^(?:[a-z][a-z0-9+.-]*:|[\\/]{2})/i,v=/^[\\/]{2}/;function y(e,t){return t+e.replace(/\\/g,`/`)}var b=`popstate`;function x(e){return typeof e==`object`&&!!e&&`pathname`in e&&`search`in e&&`hash`in e&&`state`in e&&`key`in e}function S(e={}){function t(e,t){let n=t.state?.masked,{pathname:r,search:i,hash:a}=n||e.location;return te(``,{pathname:r,search:i,hash:a},t.state&&t.state.usr||null,t.state&&t.state.key||`default`,n?{pathname:e.location.pathname,search:e.location.search,hash:e.location.hash}:void 0)}function n(e,t){return typeof t==`string`?t:E(t)}return D(t,n,null,e)}function C(e,t){if(e===!1||e==null)throw Error(t)}function w(e,t){if(!e){typeof console<`u`&&console.warn(t);try{throw Error(t)}catch{}}}function T(){return Math.random().toString(36).substring(2,10)}function ee(e,t){return{usr:e.state,key:e.key,idx:t,masked:e.mask?{pathname:e.pathname,search:e.search,hash:e.hash}:void 0}}function te(e,t,n=null,r,i){return{pathname:typeof e==`string`?e:e.pathname,search:``,hash:``,...typeof t==`string`?ne(t):t,state:n,key:t&&t.key||r||T(),mask:i}}function E({pathname:e=`/`,search:t=``,hash:n=``}){return t&&t!==`?`&&(e+=t.charAt(0)===`?`?t:`?`+t),n&&n!==`#`&&(e+=n.charAt(0)===`#`?n:`#`+n),e}function ne(e){let t={};if(e){let n=e.indexOf(`#`);n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let r=e.indexOf(`?`);r>=0&&(t.search=e.substring(r),e=e.substring(0,r)),e&&(t.pathname=e)}return t}function D(e,t,n,r={}){let{window:i=document.defaultView,v5Compat:a=!1}=r,o=i.history,s=`POP`,c=null,l=u();l??(l=0,o.replaceState({...o.state,idx:l},``));function u(){return(o.state||{idx:null}).idx}function d(){s=`POP`;let e=u(),t=e==null?null:e-l;l=e,c&&c({action:s,location:h.location,delta:t})}function f(e,t){s=`PUSH`;let r=x(e)?e:te(h.location,e,t);n&&n(r,e),l=u()+1;let d=ee(r,l),f=h.createHref(r.mask||r);try{o.pushState(d,``,f)}catch(e){if(e instanceof DOMException&&e.name===`DataCloneError`)throw e;i.location.assign(f)}a&&c&&c({action:s,location:h.location,delta:1})}function p(e,t){s=`REPLACE`;let r=x(e)?e:te(h.location,e,t);n&&n(r,e),l=u();let i=ee(r,l),d=h.createHref(r.mask||r);o.replaceState(i,``,d),a&&c&&c({action:s,location:h.location,delta:0})}function m(e){return re(i,e)}let h={get action(){return s},get location(){return e(i,o)},listen(e){if(c)throw Error(`A history only accepts one active listener`);return i.addEventListener(b,d),c=e,()=>{i.removeEventListener(b,d),c=null}},createHref(e){return t(i,e)},createURL:m,encodeLocation(e){let t=m(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:f,replace:p,go(e){return o.go(e)}};return h}function re(e,t,n=!1){let r=`http://localhost`;e&&(r=e.location.origin===`null`?e.location.href:e.location.origin),C(r,`No window.location.(origin|href) available to create URL`);let i=typeof t==`string`?t:E(t);return i=i.replace(/ $/,`%20`),!n&&v.test(i)&&(i=r+i),new URL(i,r)}var O=c(u(),1),ie=class{#e=new Map;constructor(e){if(e)for(let[t,n]of e)this.set(t,n)}get(e){if(this.#e.has(e))return this.#e.get(e);if(e.defaultValue!==void 0)return e.defaultValue;throw Error(`No value found for context`)}set(e,t){this.#e.set(e,t)}},ae=new Set([`lazy`,`caseSensitive`,`path`,`id`,`index`,`children`]);function oe(e){return ae.has(e)}var k=new Set([`lazy`,`caseSensitive`,`path`,`id`,`index`,`middleware`,`children`]);function se(e){return k.has(e)}function ce(e){return e.index===!0}function le(e){let t={};return e.Component&&Object.assign(t,{element:O.createElement(e.Component),Component:void 0}),e.HydrateFallback&&Object.assign(t,{hydrateFallbackElement:O.createElement(e.HydrateFallback),HydrateFallback:void 0}),e.ErrorBoundary&&Object.assign(t,{errorElement:O.createElement(e.ErrorBoundary),ErrorBoundary:void 0}),t}function ue(e,t=le,n=[],r={},i=!1){return e.map((e,a)=>{let o=[...n,String(a)],s=typeof e.id==`string`?e.id:o.join(`-`);if(C(e.index!==!0||!e.children,`Cannot specify children on an index route`),C(i||!r[s],`Found a route id collision on id "${s}". Route id's must be globally unique within Data Router usages`),ce(e)){let n={...e,id:s};return r[s]=de(n,t(n)),n}{let n={...e,id:s,children:void 0};return r[s]=de(n,t(n)),e.children&&(n.children=ue(e.children,t,o,r,i)),n}})}function de(e,t){return Object.assign(e,{...t,...typeof t.lazy==`object`&&t.lazy!=null?{lazy:{...e.lazy,...t.lazy}}:{}})}function fe(e,t,n=`/`){return pe(e,t,n,!1)}function pe(e,t,n,r,i){let a=Fe((typeof t==`string`?ne(t):t).pathname||`/`,n);if(a==null)return null;let o=i??he(e),s=null,c=Pe(a);for(let e=0;s==null&&e<o.length;++e)s=Ae(o[e],c,r);return s}function me(e,t){let{route:n,pathname:r,params:i}=e;return{id:n.id,pathname:r,params:i,loaderData:t[n.id],handle:n.handle}}function he(e){let t=ge(e);return ve(t),t}function ge(e,t=[],n=[],r=``,i=!1){let a=(e,a,o=i,s)=>{let c={relativePath:s===void 0?e.path||``:s,caseSensitive:e.caseSensitive===!0,childrenIndex:a,route:e};if(c.relativePath.startsWith(`/`)){if(!c.relativePath.startsWith(r)&&o)return;C(c.relativePath.startsWith(r),`Absolute route path "${c.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),c.relativePath=c.relativePath.slice(r.length)}let l=Ge([r,c.relativePath]),u=n.concat(c);e.children&&e.children.length>0&&(C(e.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${l}".`),ge(e.children,t,u,l,o)),(e.path!=null||e.index)&&t.push({path:l,score:Oe(l,e.index),routesMeta:u.map((e,t)=>{let[n,r]=Ne(e.relativePath,e.caseSensitive,t===u.length-1);return{...e,matcher:n,compiledParams:r}})})};return e.forEach((e,t)=>{if(e.path===``||!e.path?.includes(`?`))a(e,t);else for(let n of _e(e.path))a(e,t,!0,n)}),t}function _e(e){let t=e.split(`/`);if(t.length===0)return[];let[n,...r]=t,i=n.endsWith(`?`),a=n.replace(/\?$/,``);if(r.length===0)return i?[a,``]:[a];let o=_e(r.join(`/`)),s=[];return s.push(...o.map(e=>e===``?a:[a,e].join(`/`))),i&&s.push(...o),s.map(t=>e.startsWith(`/`)&&t===``?`/`:t)}function ve(e){e.sort((e,t)=>e.score===t.score?ke(e.routesMeta.map(e=>e.childrenIndex),t.routesMeta.map(e=>e.childrenIndex)):t.score-e.score)}var ye=/^:[\w-]+$/,be=/^:[\w-]+/,xe=3.5,Se=3,Ce=2,we=1,Te=10,Ee=-2,De=e=>e===`*`;function Oe(e,t){let n=e.split(`/`),r=n.length;return n.some(De)&&(r+=Ee),t&&(r+=Ce),n.filter(e=>!De(e)).reduce((e,t)=>e+(ye.test(t)?Se:be.test(t)?xe:t===``?we:Te),r)}function ke(e,t){return e.length===t.length&&e.slice(0,-1).every((e,n)=>e===t[n])?e[e.length-1]-t[t.length-1]:0}function Ae(e,t,n=!1){let{routesMeta:r}=e,i={},a=`/`,o=[];for(let e=0;e<r.length;++e){let s=r[e],c=e===r.length-1,l=a===`/`?t:t.slice(a.length)||`/`,u={path:s.relativePath,caseSensitive:s.caseSensitive,end:c},d=s.matcher&&s.compiledParams?Me(u,l,s.matcher,s.compiledParams):je(u,l),f=s.route;if(!d&&c&&n&&!r[r.length-1].route.index&&(d=je({path:s.relativePath,caseSensitive:s.caseSensitive,end:!1},l)),!d)return null;Object.assign(i,d.params),o.push({params:i,pathname:Ge([a,d.pathname]),pathnameBase:qe(Ge([a,d.pathnameBase])),route:f}),d.pathnameBase!==`/`&&(a=Ge([a,d.pathnameBase]))}return o}function je(e,t){typeof e==`string`&&(e={path:e,caseSensitive:!1,end:!0});let[n,r]=Ne(e.path,e.caseSensitive,e.end);return Me(e,t,n,r)}function Me(e,t,n,r){let i=t.match(n);if(!i)return null;let a=i[0],o=Ke(a,1),s=i.slice(1);return{params:r.reduce((e,{paramName:t,isOptional:n},r)=>{if(t===`*`){let e=s[r]||``;o=Ke(a.slice(0,a.length-e.length),1)}let i=s[r];return e[t]=n&&!i?void 0:(i||``).replace(/%2F/g,`/`),e},{}),pathname:a,pathnameBase:o,pattern:e}}function Ne(e,t=!1,n=!0){w(e===`*`||!e.endsWith(`*`)||e.endsWith(`/*`),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,`/*`)}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,`/*`)}".`);let r=[],i=`^`+e.replace(/\/*\*?$/,``).replace(/^\/*/,`/`).replace(/[\\.*+^${}|()[\]]/g,`\\$&`).replace(/\/:([\w-]+)(\?)?/g,(e,t,n,i,a)=>{if(r.push({paramName:t,isOptional:n!=null}),n){let t=a.charAt(i+e.length);return t&&t!==`/`?`/([^\\/]*)`:`(?:/([^\\/]*))?`}return`/([^\\/]+)`}).replace(/\/([\w-]+)\?(?=\/|$|\()/g,`(?:/$1)?`);return e.endsWith(`*`)?(r.push({paramName:`*`}),i+=e===`*`||e===`/*`?`(.*)$`:`(?:\\/(.+)|\\/*)$`):n?i+=`\\/*$`:e!==``&&e!==`/`&&(i+=`(?:(?=\\/|$))`),[new RegExp(i,t?void 0:`i`),r]}function Pe(e){try{return e.split(`/`).map(e=>decodeURIComponent(e).replace(/\//g,`%2F`)).join(`/`)}catch(t){return w(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function Fe(e,t){if(t===`/`)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith(`/`)?t.length-1:t.length,r=e.charAt(n);return r&&r!==`/`?null:e.slice(n)||`/`}function Ie({basename:e,pathname:t}){return t===`/`?e:Ge([e,t])}var Le=e=>_.test(e);function Re(e,t=`/`){let{pathname:n,search:r=``,hash:i=``}=typeof e==`string`?ne(e):e,a;return n?(n=We(n),a=n.startsWith(`/`)||n.startsWith(`\\`)?ze(n.substring(1),`/`):ze(n,t)):a=t,{pathname:a,search:Je(r),hash:Ye(i)}}function ze(e,t){let n=Ke(t).split(`/`);return e.split(`/`).forEach(e=>{e===`..`?n.length>1&&n.pop():e!==`.`&&n.push(e)}),n.length>1?n.join(`/`):`/`}function Be(e,t,n,r){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function Ve(e){return e.filter((e,t)=>t===0||e.route.path&&e.route.path.length>0)}function He(e){let t=Ve(e);return t.map((e,n)=>n===t.length-1?e.pathname:e.pathnameBase)}function Ue(e,t,n,r=!1){let i;typeof e==`string`?i=ne(e):(i={...e},C(!i.pathname||!i.pathname.includes(`?`),Be(`?`,`pathname`,`search`,i)),C(!i.pathname||!i.pathname.includes(`#`),Be(`#`,`pathname`,`hash`,i)),C(!i.search||!i.search.includes(`#`),Be(`#`,`search`,`hash`,i)));let a=e===``||i.pathname===``,o=a?`/`:i.pathname,s;if(o==null)s=n;else{let e=t.length-1;if(!r&&o.startsWith(`..`)){let t=o.split(`/`);for(;t[0]===`..`;)t.shift(),--e;i.pathname=t.join(`/`)}s=e>=0?t[e]:`/`}let c=Re(i,s),l=o&&o!==`/`&&o.endsWith(`/`),u=(a||o===`.`)&&n.endsWith(`/`);return!c.pathname.endsWith(`/`)&&(l||u)&&(c.pathname+=`/`),c}var We=e=>e.replace(/[\\/]{2,}/g,`/`),Ge=e=>We(e.join(`/`));function Ke(e,t=0){let n=e.length;for(;n>t&&e.charCodeAt(n-1)===47;)n--;return n===e.length?e:e.slice(0,n)}var qe=e=>Ke(e).replace(/^\/*/,`/`),Je=e=>!e||e===`?`?``:e.startsWith(`?`)?e:`?`+e,Ye=e=>!e||e===`#`?``:e.startsWith(`#`)?e:`#`+e,Xe=[`EvalError`,`RangeError`,`ReferenceError`,`SyntaxError`,`TypeError`,`URIError`],Ze=class{status;statusText;data;error;internal;constructor(e,t,n,r=!1){this.status=e,this.statusText=t||``,this.internal=r,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}};function Qe(e){return e!=null&&typeof e.status==`number`&&typeof e.statusText==`string`&&typeof e.internal==`boolean`&&`data`in e}function $e(e){return Ge(e.map(e=>e.route.path).filter(Boolean))||`/`}function et(e,t){let n=new URL(typeof e==`string`||e instanceof URL?e:e.url),r=typeof t==`string`?ne(t):t;if(n.pathname=r.pathname||`/`,r.search){let e=new URLSearchParams(r.search),t=e.getAll(`index`);e.delete(`index`);for(let n of t.filter(Boolean))e.append(`index`,n);let i=e.toString();n.search=i?`?${i}`:``}else n.search=``;return n.hash=r.hash||``,n}var tt=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;function nt(e,t){let n=e;if(typeof n!=`string`||!_.test(n))return{absoluteURL:void 0,isExternal:!1,to:n};let r=n,i=!1;if(tt)try{let e=new URL(window.location.href),r=v.test(n)?new URL(y(n,e.protocol)):new URL(n),a=Fe(r.pathname,t);r.origin===e.origin&&a!=null?n=a+r.search+r.hash:i=!0}catch{w(!1,`<Link to="${n}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:r,isExternal:i,to:n}}var rt=Symbol(`Uninstrumented`),it=new WeakMap;function at(e,t){let n={lazy:[],"lazy.loader":[],"lazy.action":[],"lazy.middleware":[],middleware:[],loader:[],action:[]};e.forEach(e=>e({id:t.id,index:t.index,path:t.path,instrument(e){e.lazy!=null&&n.lazy.push(e.lazy),e[`lazy.loader`]!=null&&n[`lazy.loader`].push(e[`lazy.loader`]),e[`lazy.action`]!=null&&n[`lazy.action`].push(e[`lazy.action`]),e[`lazy.middleware`]!=null&&n[`lazy.middleware`].push(e[`lazy.middleware`]),e.middleware!=null&&n.middleware.push(e.middleware),e.loader!=null&&n.loader.push(e.loader),e.action!=null&&n.action.push(e.action)}}));let r={};if(typeof t.lazy==`function`&&n.lazy.length>0){let e=t.lazy;r.lazy=async(...t)=>dt(await ft(n.lazy,void 0,()=>e(...t),pt))}if(typeof t.lazy==`object`){let e=t.lazy;if(typeof e.middleware==`function`&&n[`lazy.middleware`].length>0){let t=e.middleware;r.lazy=Object.assign(r.lazy||{},{middleware:async(...e)=>dt(await ft(n[`lazy.middleware`],void 0,()=>t(...e),pt))})}if(typeof e.loader==`function`&&n[`lazy.loader`].length>0){let t=e.loader;r.lazy=Object.assign(r.lazy||{},{loader:async(...e)=>dt(await ft(n[`lazy.loader`],void 0,()=>t(...e),pt))})}if(typeof e.action==`function`&&n[`lazy.action`].length>0){let t=e.action;r.lazy=Object.assign(r.lazy||{},{action:async(...e)=>dt(await ft(n[`lazy.action`],void 0,()=>t(...e),pt))})}}if(typeof t.loader==`function`&&n.loader.length>0){let e=st(t.loader),i=async(...t)=>dt(await ft(n.loader,mt(t[0]),()=>e(...t),pt));e.hydrate===!0&&(i.hydrate=!0),ct(i,e),r.loader=i}if(typeof t.action==`function`&&n.action.length>0){let e=st(t.action),i=async(...t)=>dt(await ft(n.action,mt(t[0]),()=>e(...t),pt));ct(i,e),r.action=i}return t.middleware&&t.middleware.length>0&&n.middleware.length>0&&(r.middleware=t.middleware.map(e=>{let t=st(e),r=async(...e)=>dt(await ft(n.middleware,mt(e[0]),()=>t(...e),pt));return ct(r,t),r})),r}function ot(e,t){let n={navigate:[],fetch:[]};if(t.forEach(e=>e({instrument(e){e.navigate!=null&&n.navigate.push(e.navigate),e.fetch!=null&&n.fetch.push(e.fetch)}})),n.navigate.length>0){let t=st(e.navigate),r=async(...r)=>{let[i,a]=r,o,s={to:typeof i==`number`||typeof i==`string`?i:i?E(i):`.`,...ht(e,a??{})};return dt(await ft(n.navigate,s,async()=>{if(typeof i==`number`)return await t(...r);let n=lt(e,e=>{o=e});try{return await t(...r)}finally{n()}},e=>({...pt(e),meta:o})))};ct(r,t),e.navigate=r}if(n.fetch.length>0){let t=st(e.fetch),r=async(...r)=>{let[i,a,o,s]=r,c;return dt(await ft(n.fetch,{href:o??`.`,fetcherKey:i,...ht(e,s??{})},async()=>{let n=lt(e,e=>{c=e});try{return await t(...r)}finally{n()}},e=>({...pt(e),meta:c})))};ct(r,t),e.fetch=r}return e}function st(e){return e[rt]??e}function ct(e,t){e[rt]=t}function lt(e,t){return it.set(e,t),()=>{it.get(e)===t&&it.delete(e)}}function ut(e){let t=it.get(e);return it.delete(e),t}function dt(e){if(e.type===`error`)throw e.value;return e.value}async function ft(e,t,n,r,i={result:null,innerResult:null},a=e.length-1){let o=e[a];if(o){let s,c=async()=>(s?console.error(`You cannot call instrumented handlers more than once`):s=ft(e,t,n,r,i,a-1),await s,C(i.innerResult,`Expected an inner result`),i.innerResult);try{await o(c,t)}catch(e){console.error(`An instrumentation function threw an error:`,e)}s||await c(),await s}else{try{i.result={type:`success`,value:await n()}}catch(e){i.result={type:`error`,value:e}}i.innerResult=r(i.result,t)}return i.result?i.result:(i.result={type:`error`,value:Error(`No result assigned in instrumentation chain.`)},i.innerResult=r(i.result,t),i.result)}function pt(e){return e.type===`error`&&e.value instanceof Error?{status:`error`,error:e.value}:{status:`success`,error:void 0}}function mt(e){let{request:t,context:n,params:r}=e;return{...e,request:gt(t),params:{...r},context:_t(n)}}function ht(e,t){return{currentUrl:E(e.state.location),...`formMethod`in t?{formMethod:t.formMethod}:{},...`formEncType`in t?{formEncType:t.formEncType}:{},...`formData`in t?{formData:t.formData}:{},...`body`in t?{body:t.body}:{}}}function gt(e){return{method:e.method,url:e.url,headers:{get:(...t)=>e.headers.get(...t)}}}function _t(e){return{get:t=>e.get(t)}}var vt=new URL(`http://localhost`);function yt(e){if(e.createURL)return e.createURL(`/`);try{return new URL(e.createHref(`/`),vt)}catch{return vt}}function bt(e,t){return e.origin===t.origin&&(e.origin!==`null`||e.protocol===t.protocol&&e.host===t.host)}function xt(e,t){if(e.startsWith(`//`))return!0;let n=t.protocol.toLowerCase();return e.toLowerCase().startsWith(n)?t.host===``||e.slice(n.length).startsWith(`//`):!1}function St(e,t,n,r){let i=null;try{i=e==null?null:new URL(e,n)}catch{}let a=new URL(t,n),o=i!=null&&!bt(i,n),s=!bt(a,n);if(r===`reject`){if(o||s)throw Error(`External navigation is not allowed`)}else if(s&&(i==null||!xt(e,i)||!bt(i,a)))throw Error(`External navigation is not allowed`)}var Ct=[`POST`,`PUT`,`PATCH`,`DELETE`],wt=new Set(Ct),Tt=[`GET`,...Ct],Et=new Set(Tt),Dt=new Set([301,302,303,307,308]),Ot=new Set([307,308]),kt={state:`idle`,location:void 0,matches:void 0,historyAction:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},At={state:`idle`,data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},jt={state:`unblocked`,proceed:void 0,reset:void 0,location:void 0},Mt=`remix-router-transitions`,Nt=Symbol(`ResetLoaderData`),Pt=class{#e;#t;#n;#r;constructor(e){this.#e=e,this.#t=he(e)}get stableRoutes(){return this.#e}get activeRoutes(){return this.#n??this.#e}get branches(){return this.#r??this.#t}get hasHMRRoutes(){return this.#n!=null}setRoutes(e){this.#e=e,this.#t=he(e)}setHmrRoutes(e){this.#n=e,this.#r=he(e)}commitHmrRoutes(){this.#n&&(this.#e=this.#n,this.#t=this.#r,this.#n=void 0,this.#r=void 0)}};function Ft(e){let t=e.window?e.window:typeof window<`u`?window:void 0,n=t!==void 0&&t.document!==void 0&&t.document.createElement!==void 0;C(e.routes.length>0,`You must provide a non-empty routes array to createRouter`);let r=e.hydrationRouteProperties||[],i=e.mapRouteProperties,a=i||(()=>({}));if(e.instrumentations){let t=e.instrumentations;a=e=>({...i?.(e),...at(t.map(e=>e.route).filter(Boolean),e)})}let o={},s=new Pt(ue(e.routes,a,void 0,o)),c=e.basename||`/`;c.startsWith(`/`)||(c=`/${c}`);let l=e.dataStrategy||Qt,u={...e.future},d=null,f=new Set,p=null,m=null,h=null,g=null,_=e.hydrationData!=null,y=pe(s.activeRoutes,e.history.location,c,!1,s.branches),b=!1,x=null,S,T;if(y==null&&!e.patchRoutesOnNavigation){let t=Cn(404,{pathname:e.history.location.pathname}),{matches:n,route:r}=Sn(s.activeRoutes);S=!0,T=!S,y=n,x={[r.id]:t}}else if(y&&!e.hydrationData&&_t(y,s.activeRoutes,e.history.location.pathname).active&&(y=null),!y){S=!1,T=!S,y=[];let t=_t(null,s.activeRoutes,e.history.location.pathname);t.active&&t.matches&&(b=!0,y=t.matches)}else if(y.some(e=>e.route.lazy))S=!1,T=!S;else if(!y.some(e=>Bt(e.route)))S=!0,T=!S;else{let t=e.hydrationData?e.hydrationData.loaderData:null,n=e.hydrationData?e.hydrationData.errors:null,r=y;if(n){let e=y.findIndex(e=>n[e.route.id]!==void 0);r=r.slice(0,e+1)}T=!1,S=!0,r.forEach(e=>{let r=Vt(e.route,t,n);T||=r.renderFallback,S&&=!r.shouldLoad})}let ee,D={historyAction:e.history.action,location:e.history.location,matches:y,initialized:S,renderFallback:T,navigation:kt,restoreScrollPosition:e.hydrationData==null&&null,preventScrollReset:!1,revalidation:`idle`,loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||x,fetchers:new Map,blockers:new Map},O=`POP`,ae=null,oe=!1,k,se=!1,ce=new Map,le=null,de=!1,fe=!1,he=new Set,ge=new Map,_e=0,ve=-1,ye=new Map,be=new Set,xe=new Map,Se=new Map,Ce=new Set,we=new Map,Te,Ee=null;function De(){if(d=e.history.listen(({action:t,location:n,delta:r})=>{if(Te){Te(),Te=void 0;return}w(we.size===0||r!=null,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let i=dt({currentLocation:D.location,nextLocation:n,historyAction:t});if(i&&r!=null){let t=new Promise(e=>{Te=e});e.history.go(r*-1),lt(i,{state:`blocked`,location:n,proceed(){lt(i,{state:`proceeding`,proceed:void 0,reset:void 0,location:n}),t.then(()=>e.history.go(r))},reset(){let e=new Map(D.blockers);e.set(i,jt),Ae({blockers:e})}}),ae?.resolve(),ae=null;return}return Pe(t,n)}),n){Jn(t,ce);let e=()=>Yn(t,ce);t.addEventListener(`pagehide`,e),le=()=>t.removeEventListener(`pagehide`,e)}return D.initialized||Pe(`POP`,D.location,{initialHydration:!0}),ee}function Oe(){d&&d(),le&&le(),f.clear(),k&&k.abort(),D.fetchers.forEach((e,t)=>$e(D.fetchers,t)),D.blockers.forEach((e,t)=>ct(t))}function ke(e){if(f.add(e),p){let{newErrors:t}=p;p=null,e(D,{deletedFetchers:[],newErrors:t,viewTransitionOpts:void 0,flushSync:!1})}return()=>f.delete(e)}function Ae(e,t={}){e.matches&&=e.matches.map(e=>{let t=o[e.route.id],n=e.route;return n.element!==t.element||n.errorElement!==t.errorElement||n.hydrateFallbackElement!==t.hydrateFallbackElement?{...e,route:t}:e}),D={...D,...e};let n=[],r=[];D.fetchers.forEach((e,t)=>{e.state===`idle`&&(Ce.has(t)?n.push(t):r.push(t))}),Ce.forEach(e=>{!D.fetchers.has(e)&&!ge.has(e)&&n.push(e)}),f.size===0&&(p={newErrors:e.errors??null}),[...f].forEach(r=>r(D,{deletedFetchers:n,newErrors:e.errors??null,viewTransitionOpts:t.viewTransitionOpts,flushSync:t.flushSync===!0})),n.forEach(e=>$e(D.fetchers,e)),r.forEach(e=>D.fetchers.delete(e))}function je(t,n,{flushSync:r}={}){let i=D.actionData!=null&&D.navigation.formMethod!=null&&Rn(D.navigation.formMethod)&&D.navigation.state===`loading`&&t.state?._isRedirect!==!0,a;a=n.actionData?Object.keys(n.actionData).length>0?n.actionData:null:i?D.actionData:null;let o=n.loaderData?yn(D.loaderData,n.loaderData,n.matches||[],n.errors):D.loaderData,c=D.blockers;c.size>0&&!de&&(c=new Map(c),c.forEach((e,t)=>c.set(t,jt)));let l=!de&&gt(t,n.matches||D.matches),u=oe===!0||D.navigation.formMethod!=null&&Rn(D.navigation.formMethod)&&t.state?._isRedirect!==!0;s.commitHmrRoutes(),de||O===`POP`||(O===`PUSH`?e.history.push(t,t.state):O===`REPLACE`&&e.history.replace(t,t.state));let d;if(O===`POP`){let e=ce.get(D.location.pathname);e&&e.has(t.pathname)?d={currentLocation:D.location,nextLocation:t}:ce.has(t.pathname)&&(d={currentLocation:t,nextLocation:D.location})}else if(se){let e=ce.get(D.location.pathname);e?e.add(t.pathname):(e=new Set([t.pathname]),ce.set(D.location.pathname,e)),d={currentLocation:D.location,nextLocation:t}}Ae({...n,actionData:a,loaderData:o,historyAction:O,location:t,initialized:!0,renderFallback:!1,navigation:kt,revalidation:`idle`,restoreScrollPosition:l,preventScrollReset:u,blockers:c},{viewTransitionOpts:d,flushSync:r===!0}),O=`POP`,oe=!1,se=!1,de=!1,fe=!1,ae?.resolve(),ae=null,Ee?.resolve(),Ee=null}async function Me(t,n){if(ae?.resolve(),ae=null,typeof t==`number`){ae||=Xn();let n=ae.promise;return e.history.go(t),n}let r=ut(ee),{path:i,submission:a,error:o}=Rt(!1,Lt(D.location,D.matches,c,t,n?.fromRouteId,n?.relative),n),s;if(n?.mask){let t=typeof n.mask==`string`?ne(n.mask):{...D.location.mask,...n.mask};if(s={pathname:t.pathname??``,search:t.search??``,hash:t.hash??``},v.test(s.pathname))throw Error(`External navigation is not allowed`);s.pathname.startsWith(`\\`)&&(s.pathname=s.pathname.replace(/^\\+/,`/`)),St(typeof n.mask==`string`?n.mask:E(n.mask),E(s),e.history.createURL(`/`),`reject`)}let l=D.location,u=te(l,i,n&&n.state,void 0,s);u={...u,...e.history.encodeLocation(u)},St(t==null?e.history.createHref(D.location):typeof t==`string`?t:E(t),e.history.createHref(u.mask||u),e.history.createURL(`/`),`reject`);let d=n&&n.replace!=null?n.replace:void 0,f=`PUSH`;d===!0?f=`REPLACE`:d===!1||a!=null&&Rn(a.formMethod)&&a.formAction===D.location.pathname+D.location.search&&(f=`REPLACE`);let p=n&&`preventScrollReset`in n?n.preventScrollReset===!0:void 0,m=(n&&n.flushSync)===!0,h=dt({currentLocation:l,nextLocation:u,historyAction:f});if(h){lt(h,{state:`blocked`,location:u,proceed(){lt(h,{state:`proceeding`,proceed:void 0,reset:void 0,location:u}),Me(t,n)},reset(){let e=new Map(D.blockers);e.set(h,jt),Ae({blockers:e})}});return}await Pe(f,u,{submission:a,pendingError:o,preventScrollReset:p,replace:n&&n.replace,enableViewTransition:n&&n.viewTransition,flushSync:m,callSiteDefaultShouldRevalidate:n&&n.defaultShouldRevalidate,instrumentationNavigateMetaReceiver:r})}function Ne(){Ee||=Xn(),qe(),Ae({revalidation:`loading`});let e=Ee.promise;return D.navigation.state===`submitting`?e:D.navigation.state===`idle`?(Pe(D.historyAction,D.location,{startUninterruptedRevalidation:!0}),e):(Pe(O||D.historyAction,D.navigation.location,{overrideNavigation:D.navigation,enableViewTransition:se===!0}),e)}async function Pe(t,n,r){k&&k.abort(),k=null,O=t,de=(r&&r.startUninterruptedRevalidation)===!0,ht(D.location,D.matches),oe=(r&&r.preventScrollReset)===!0,se=(r&&r.enableViewTransition)===!0;let i=s.activeRoutes,a=r?.initialHydration&&D.matches&&D.matches.length>0&&!b?D.matches:pe(i,n,c,!1,s.branches),o=(r&&r.flushSync)===!0;if(a&&D.initialized&&!fe&&En(D.location,n)&&!(r&&r.submission&&Rn(r.submission.formMethod))){je(n,{matches:a},{flushSync:o});return}let l=_t(a,i,n.pathname);if(l.active&&l.matches&&(a=l.matches),r?.instrumentationNavigateMetaReceiver){let t=Vn(e.history,n,a);r.instrumentationNavigateMetaReceiver(t)}if(!a){let{error:e,notFoundMatches:t,route:r}=ft(n.pathname);je(n,{matches:t,loaderData:{},errors:{[r.id]:e}},{flushSync:o});return}let u=r&&r.overrideNavigation?{...r.overrideNavigation,matches:a,historyAction:t}:void 0;k=new AbortController;let d=mn(e.history,n,k.signal,r&&r.submission),f=e.getContext?await e.getContext():new ie,p;if(r&&r.pendingError)p=[xn(a).route.id,{type:`error`,error:r.pendingError}];else if(r&&r.submission&&Rn(r.submission.formMethod)){let i=await Ie(d,n,r.submission,a,t,f,l.active,r&&r.initialHydration===!0,{replace:r.replace,flushSync:o});if(i.shortCircuited)return;if(i.pendingActionResult){let[e,t]=i.pendingActionResult;if(jn(t)&&Qe(t.error)&&t.error.status===404){k=null,je(n,{matches:i.matches,loaderData:{},errors:{[e]:t.error}});return}}a=i.matches||a,p=i.pendingActionResult,u=Un(n,a,t,r.submission),o=!1,l.active=!1,d=mn(e.history,d.url,d.signal)}let{shortCircuited:m,matches:h,loaderData:g,errors:_,workingFetchers:v}=await Re(d,n,a,t,f,l.active,u,r&&r.submission,r&&r.fetcherSubmission,r&&r.replace,r&&r.initialHydration===!0,o,p,r&&r.callSiteDefaultShouldRevalidate);m||(k=null,je(n,{matches:h||a,...bn(p),loaderData:g,errors:_,...v?{fetchers:v}:{}}))}async function Ie(t,n,i,l,u,d,f,p,m={}){if(qe(),Ae({navigation:Wn(n,l,u,i)},{flushSync:m.flushSync===!0}),f){let e=await vt(l,n.pathname,t.signal);if(e.type===`aborted`)return{shortCircuited:!0};if(e.type===`error`){if(e.partialMatches.length===0){let{matches:t,route:n}=Sn(s.activeRoutes);return{matches:t,pendingActionResult:[n.id,{type:`error`,error:e.error}]}}let t=xn(e.partialMatches).route.id;return{matches:e.partialMatches,pendingActionResult:[t,{type:`error`,error:e.error}]}}if(e.matches)l=e.matches;else{let{notFoundMatches:e,error:t,route:r}=ft(n.pathname);return{matches:e,pendingActionResult:[r.id,{type:`error`,error:t}]}}}let h,g=Bn(l,n);if(!g.route.action&&!g.route.lazy)h={type:`error`,error:Cn(405,{method:t.method,pathname:n.pathname,routeId:g.route.id})};else{let e=await Ge(t,n,an(a,o,t,n,l,g,p?[]:r,d),d,null);if(h=e[g.route.id],!h){for(let t of l)if(e[t.route.id]){h=e[t.route.id];break}}if(t.signal.aborted)return{shortCircuited:!0}}if(Mn(h)){let n;return n=m&&m.replace!=null?m.replace:pn(h.response.headers.get(`Location`),new URL(t.url),c,e.history)===D.location.pathname+D.location.search,await We(t,h,!0,{submission:i,replace:n}),{shortCircuited:!0}}if(jn(h)){let e=xn(l,g.route.id);return(m&&m.replace)!==!0&&(O=`PUSH`),{matches:l,pendingActionResult:[e.route.id,h,g.route.id]}}return{matches:l,pendingActionResult:[g.route.id,h]}}async function Re(t,n,i,l,u,d,f,p,m,h,g,_,v,y){let b=f||Un(n,i,l,p),x=p||m||Hn(b),S=!de&&!g;if(d){if(S){let e=ze(v);Ae({navigation:b,...e===void 0?{}:{actionData:e}},{flushSync:_})}let e=await vt(i,n.pathname,t.signal);if(e.type===`aborted`)return{shortCircuited:!0};if(e.type===`error`){if(e.partialMatches.length===0){let{matches:t,route:n}=Sn(s.activeRoutes);return{matches:t,loaderData:{},errors:{[n.id]:e.error}}}let t=xn(e.partialMatches).route.id;return{matches:e.partialMatches,loaderData:{},errors:{[t]:e.error}}}if(e.matches)i=e.matches;else{let{error:e,notFoundMatches:t,route:r}=ft(n.pathname);return{matches:t,loaderData:{},errors:{[r.id]:e}}}}let C=s.activeRoutes,{dsMatches:w,revalidatingFetchers:T}=zt(t,u,a,o,e.history,D,i,x,n,g?[]:r,g===!0,fe,he,Ce,xe,be,C,c,e.patchRoutesOnNavigation!=null,s.branches,v,y);if(ve=++_e,!e.dataStrategy&&!w.some(e=>e.shouldLoad)&&!w.some(e=>e.route.middleware&&e.route.middleware.length>0)&&T.length===0){let e=new Map(D.fetchers),t=rt(e);return je(n,{matches:i,loaderData:{},errors:v&&jn(v[1])?{[v[0]]:v[1].error}:null,...bn(v),...t?{fetchers:e}:{}},{flushSync:_}),{shortCircuited:!0}}if(S){let e={};if(!d){e.navigation=b;let t=ze(v);t!==void 0&&(e.actionData=t)}T.length>0&&(e.fetchers=Be(T)),Ae(e,{flushSync:_})}T.forEach(e=>{tt(e.key),e.controller&&ge.set(e.key,e.controller)});let ee=()=>T.forEach(e=>tt(e.key));k&&k.signal.addEventListener(`abort`,ee);let{loaderResults:te,fetcherResults:E}=await Ke(w,T,t,n,u);if(t.signal.aborted)return{shortCircuited:!0};k&&k.signal.removeEventListener(`abort`,ee),T.forEach(e=>ge.delete(e.key));let ne=wn(te);if(ne)return await We(t,ne.result,!0,{replace:h}),{shortCircuited:!0};if(ne=wn(E),ne)return be.add(ne.key),await We(t,ne.result,!0,{replace:h}),{shortCircuited:!0};let re=new Map(D.fetchers),{loaderData:O,errors:ie}=vn(D,i,te,v,T,E,re);g&&D.errors&&(ie={...D.errors,...ie});let ae=rt(re),oe=it(ve,re),se=ae||oe||T.length>0;return{matches:i,loaderData:O,errors:ie,...se?{workingFetchers:re}:{}}}function ze(e){if(e&&!jn(e[1]))return{[e[0]]:e[1].data};if(D.actionData)return Object.keys(D.actionData).length===0?null:D.actionData}function Be(e){let t=new Map(D.fetchers);return e.forEach(e=>{let n=t.get(e.key),r=Gn(void 0,n?n.data:void 0);t.set(e.key,r)}),t}async function Ve(t,n,r,i){tt(t);let a=(i&&i.flushSync)===!0,o=ut(ee),l=s.activeRoutes,u=Lt(D.location,D.matches,c,r,n,i?.relative),d=pe(l,u,c,!1,s.branches),f=_t(d,l,u);if(f.active&&f.matches&&(d=f.matches),o&&o(Vn(e.history,u,d)),!d){Ye(t,n,Cn(404,{pathname:u}),{flushSync:a});return}let{path:p,submission:m,error:h}=Rt(!0,u,i);if(h){Ye(t,n,h,{flushSync:a});return}let g=e.getContext?await e.getContext():new ie,_=(i&&i.preventScrollReset)===!0;if(m&&Rn(m.formMethod)){await He(t,n,p,d,g,f.active,a,_,m,i&&i.defaultShouldRevalidate);return}xe.set(t,{routeId:n,path:p}),await Ue(t,n,p,d,g,f.active,a,_,m)}async function He(t,n,i,l,u,d,f,p,m,h){qe(),xe.delete(t),Je(t,Kn(m,D.fetchers.get(t)),{flushSync:f});let g=new AbortController,_=mn(e.history,i,g.signal,m);if(d){let e=await vt(l,new URL(_.url).pathname,_.signal,t);if(e.type===`aborted`)return;if(e.type===`error`){Ye(t,n,e.error,{flushSync:f});return}if(e.matches)l=e.matches;else{Ye(t,n,Cn(404,{pathname:i}),{flushSync:f});return}}let v=Bn(l,i);if(!v.route.action&&!v.route.lazy){Ye(t,n,Cn(405,{method:m.formMethod,pathname:i,routeId:n}),{flushSync:f});return}ge.set(t,g);let y=_e,b=an(a,o,_,i,l,v,r,u),x=await Ge(_,i,b,u,t),S=x[v.route.id];if(!S){for(let e of b)if(x[e.route.id]){S=x[e.route.id];break}}if(_.signal.aborted){ge.get(t)===g&&ge.delete(t);return}if(Ce.has(t)){if(Mn(S)||jn(S)){Je(t,qn(void 0));return}}else{if(Mn(S)){if(ge.delete(t),ve>y){Je(t,qn(void 0));return}return be.add(t),Je(t,Gn(m)),We(_,S,!1,{fetcherSubmission:m,preventScrollReset:p})}if(jn(S)){Ye(t,n,S.error);return}}let w=D.navigation.location||D.location,T=mn(e.history,w,g.signal),ee=s.activeRoutes,te=D.navigation.state===`idle`?D.matches:pe(ee,D.navigation.location,c,!1,s.branches);C(te,`Didn't find any matches after fetcher action`);let E=++_e;ye.set(t,E);let{dsMatches:ne,revalidatingFetchers:re}=zt(T,u,a,o,e.history,D,te,m,w,r,!1,fe,he,Ce,xe,be,ee,c,e.patchRoutesOnNavigation!=null,s.branches,[v.route.id,S],h),ie=Gn(m,S.data),ae=new Map(D.fetchers);ae.set(t,ie),re.filter(e=>e.key!==t).forEach(e=>{let t=e.key,n=ae.get(t),r=Gn(void 0,n?n.data:void 0);ae.set(t,r),tt(t),e.controller&&ge.set(t,e.controller)}),Ae({fetchers:ae});let oe=()=>re.forEach(e=>tt(e.key));g.signal.addEventListener(`abort`,oe);let{loaderResults:se,fetcherResults:ce}=await Ke(ne,re,T,w,u);if(g.signal.aborted){ye.get(t)===E&&ye.delete(t);return}g.signal.removeEventListener(`abort`,oe),ye.delete(t),ge.delete(t),re.forEach(e=>ge.delete(e.key));let le=D.fetchers.has(t),ue=e=>{if(!le)return e;let n=new Map(e.fetchers);return n.set(t,qn(S.data)),{...e,fetchers:n}},de=wn(se);if(de)return D=ue(D),We(T,de.result,!1,{preventScrollReset:p});if(de=wn(ce),de)return be.add(de.key),D=ue(D),We(T,de.result,!1,{preventScrollReset:p});let me=new Map(D.fetchers);le&&me.set(t,qn(S.data));let{loaderData:Se,errors:we}=vn(D,te,se,void 0,re,ce,me);it(E,me),D.navigation.state===`loading`&&E>ve?(C(O,`Expected pending action`),k&&k.abort(),je(D.navigation.location,{matches:te,loaderData:Se,errors:we,fetchers:me})):(Ae({errors:we,loaderData:yn(D.loaderData,Se,te,we),fetchers:me}),fe=!1)}async function Ue(t,n,i,s,c,l,u,d,f){let p=D.fetchers.get(t);Je(t,Gn(f,p?p.data:void 0),{flushSync:u});let m=new AbortController,h=mn(e.history,i,m.signal);if(l){let e=await vt(s,new URL(h.url).pathname,h.signal,t);if(e.type===`aborted`)return;if(e.type===`error`){Ye(t,n,e.error,{flushSync:u});return}if(e.matches)s=e.matches;else{Ye(t,n,Cn(404,{pathname:i}),{flushSync:u});return}}let g=Bn(s,i);ge.set(t,m);let _=_e,v=await Ge(h,i,an(a,o,h,i,s,g,r,c),c,t),y=v[g.route.id];if(!y){for(let e of s)if(v[e.route.id]){y=v[e.route.id];break}}if(ge.get(t)===m&&ge.delete(t),!h.signal.aborted){if(Ce.has(t)){Je(t,qn(void 0));return}if(Mn(y)){if(ve>_){Je(t,qn(void 0));return}be.add(t),await We(h,y,!1,{preventScrollReset:d});return}if(jn(y)){Ye(t,n,y.error);return}Je(t,qn(y.data))}}async function We(r,i,a,{submission:o,fetcherSubmission:s,preventScrollReset:l,replace:u}={}){a||(ae?.resolve(),ae=null),i.response.headers.has(`X-Remix-Revalidate`)&&(fe=!0);let d=i.response.headers.get(`Location`);C(d,`Expected a Location header on the redirect Response`);let f=d,p=new URL(r.url);d=pn(d,p,c,e.history),St(f,d,p,`allow-explicit`);let m=te(D.location,d,{_isRedirect:!0});if(n){let e=!1;if(i.response.headers.has(`X-Remix-Reload-Document`))e=!0;else if(Le(d)){let n=re(t,d,!0);e=n.origin!==t.location.origin||Fe(n.pathname,c)==null}if(e){u?t.location.replace(d):t.location.assign(d);return}}k=null;let h=u===!0||i.response.headers.has(`X-Remix-Replace`)?`REPLACE`:`PUSH`,{formMethod:g,formAction:_,formEncType:v}=D.navigation;!o&&!s&&g&&_&&v&&(o=Hn(D.navigation));let y=o||s;Ot.has(i.response.status)&&y&&Rn(y.formMethod)?await Pe(h,m,{submission:{...y,formAction:d},preventScrollReset:l||oe,enableViewTransition:a?se:void 0}):await Pe(h,m,{overrideNavigation:Un(m,[],h,o),fetcherSubmission:s,preventScrollReset:l||oe,enableViewTransition:a?se:void 0})}async function Ge(e,t,n,r,i){let a,o={};try{a=await on(l,e,t,n,i,r,!1)}catch(e){return n.filter(e=>e.shouldLoad).forEach(t=>{o[t.route.id]={type:`error`,error:e}}),o}if(e.signal.aborted)return o;if(!Rn(e.method))for(let e of n){if(a[e.route.id]?.type===`error`)break;!a.hasOwnProperty(e.route.id)&&!D.loaderData.hasOwnProperty(e.route.id)&&(!D.errors||!D.errors.hasOwnProperty(e.route.id))&&e.shouldCallHandler()&&(a[e.route.id]={type:`error`,result:Error(`No result returned from dataStrategy for route ${e.route.id}`)})}for(let[t,r]of Object.entries(a))if(An(r)){let i=r.result;o[t]={type:`redirect`,response:un(i,e,t,n,c)}}else o[t]=await ln(r);return o}async function Ke(e,t,n,r,i){let a=Ge(n,r,e,i,null),o=Promise.all(t.map(async e=>{if(e.matches&&e.match&&e.request&&e.controller){let t=(await Ge(e.request,e.path,e.matches,i,e.key))[e.match.route.id];return{[e.key]:t}}return Promise.resolve({[e.key]:{type:`error`,error:Cn(404,{pathname:e.path})}})}));return{loaderResults:await a,fetcherResults:(await o).reduce((e,t)=>Object.assign(e,t),{})}}function qe(){fe=!0,xe.forEach((e,t)=>{ge.has(t)&&he.add(t),tt(t)})}function Je(e,t,n={}){let r=new Map(D.fetchers);r.set(e,t),Ae({fetchers:r},{flushSync:(n&&n.flushSync)===!0})}function Ye(e,t,n,r={}){let i=xn(D.matches,t),a=new Map(D.fetchers);$e(a,e),Ae({errors:{[i.route.id]:n},fetchers:a},{flushSync:(r&&r.flushSync)===!0})}function Xe(e){return Se.set(e,(Se.get(e)||0)+1),Ce.has(e)&&Ce.delete(e),D.fetchers.get(e)||At}function Ze(e,t){tt(e,t?.reason),Je(e,qn(null))}function $e(e,t){let n=D.fetchers.get(t);ge.has(t)&&!(n&&n.state===`loading`&&ye.has(t))&&tt(t),xe.delete(t),ye.delete(t),be.delete(t),Ce.delete(t),he.delete(t),e.delete(t)}function et(e){let t=(Se.get(e)||0)-1;t<=0?(Se.delete(e),Ce.add(e)):Se.set(e,t),Ae({fetchers:new Map(D.fetchers)})}function tt(e,t){let n=ge.get(e);n&&(n.abort(t),ge.delete(e))}function nt(e,t){for(let n of e){let e=t.get(n);C(e,`Expected fetcher: ${n}`);let r=qn(e.data);t.set(n,r)}}function rt(e){let t=[],n=!1;for(let r of be){let i=e.get(r);C(i,`Expected fetcher: ${r}`),i.state===`loading`&&(be.delete(r),t.push(r),n=!0)}return nt(t,e),n}function it(e,t){let n=[];for(let[r,i]of ye)if(i<e){let e=t.get(r);C(e,`Expected fetcher: ${r}`),e.state===`loading`&&(tt(r),ye.delete(r),n.push(r))}return nt(n,t),n.length>0}function st(e,t){let n=D.blockers.get(e)||jt;return we.get(e)!==t&&we.set(e,t),n}function ct(e){D.blockers.delete(e),we.delete(e)}function lt(e,t){let n=D.blockers.get(e)||jt;C(n.state===`unblocked`&&t.state===`blocked`||n.state===`blocked`&&t.state===`blocked`||n.state===`blocked`&&t.state===`proceeding`||n.state===`blocked`&&t.state===`unblocked`||n.state===`proceeding`&&t.state===`unblocked`,`Invalid blocker state transition: ${n.state} -> ${t.state}`);let r=new Map(D.blockers);r.set(e,t),Ae({blockers:r})}function dt({currentLocation:e,nextLocation:t,historyAction:n}){if(we.size===0)return;we.size>1&&w(!1,`A router only supports one blocker at a time`);let r=Array.from(we.entries()),[i,a]=r[r.length-1],o=D.blockers.get(i);if(!(o&&o.state===`proceeding`)&&a({currentLocation:e,nextLocation:t,historyAction:n}))return i}function ft(e){let t=Cn(404,{pathname:e}),n=s.activeRoutes,{matches:r,route:i}=Sn(n);return{notFoundMatches:r,route:i,error:t}}function pt(e,t,n){if(m=e,g=t,h=n||null,!_&&D.navigation===kt){_=!0;let e=gt(D.location,D.matches);e!=null&&Ae({restoreScrollPosition:e})}return()=>{m=null,g=null,h=null}}function mt(e,t){return h&&h(e,t.map(e=>me(e,D.loaderData)))||e.key}function ht(e,t){if(m&&g){let n=mt(e,t);m[n]=g()}}function gt(e,t){if(m){let n=mt(e,t),r=m[n];if(typeof r==`number`)return r}return null}function _t(t,n,r){if(e.patchRoutesOnNavigation){let e=s.branches;if(!t)return{active:!0,matches:pe(n,r,c,!0,e)||[]};if(Object.keys(t[0].params).length>0)return{active:!0,matches:pe(n,r,c,!0,e)}}return{active:!1,matches:null}}async function vt(t,n,r,i){if(!e.patchRoutesOnNavigation)return{type:`success`,matches:t};let l=t;for(;;){let t=o;try{await e.patchRoutesOnNavigation({signal:r,path:n,matches:l,fetcherKey:i,patch:(e,n)=>{r.aborted||Gt(e,n,s,t,a,!1)}})}catch(e){return{type:`error`,error:e,partialMatches:l}}if(r.aborted)return{type:`aborted`};let u=s.branches,d=pe(s.activeRoutes,n,c,!1,u),f=null;if(d&&(Object.keys(d[0].params).length===0||(f=pe(s.activeRoutes,n,c,!0,u),!(f&&l.length<f.length&&yt(l,f.slice(0,l.length))))))return{type:`success`,matches:d};if(f||=pe(s.activeRoutes,n,c,!0,u),!f||yt(l,f))return{type:`success`,matches:null};l=f}}function yt(e,t){return e.length===t.length&&e.every((e,n)=>e.route.id===t[n].route.id)}function bt(e){o={},s.setHmrRoutes(ue(e,a,void 0,o))}function xt(e,t,n=!1){Gt(e,t,s,o,a,n),s.hasHMRRoutes||Ae({})}return ee={get basename(){return c},get future(){return u},get state(){return D},get routes(){return s.stableRoutes},get branches(){return s.branches},get manifest(){return o},get window(){return t},initialize:De,subscribe:ke,enableScrollRestoration:pt,navigate:Me,fetch:Ve,revalidate:Ne,createHref:t=>e.history.createHref(t),createURL:t=>e.history.createURL(t),encodeLocation:t=>e.history.encodeLocation(t),getFetcher:Xe,resetFetcher:Ze,deleteFetcher:et,dispose:Oe,getBlocker:st,deleteBlocker:ct,patchRoutes:xt,_internalFetchControllers:ge,_internalSetRoutes:bt,_internalSetStateDoNotUseOrYouWillBreakYourApp(e){Ae(e)}},e.instrumentations&&(ee=ot(ee,e.instrumentations.map(e=>e.router).filter(Boolean))),ee}function It(e){return e!=null&&(`formData`in e&&e.formData!=null||`body`in e&&e.body!==void 0)}function Lt(e,t,n,r,i,a){let o,s;if(i){o=[];for(let e of t)if(o.push(e),e.route.id===i){s=e;break}}else o=t,s=t[t.length-1];let c=Ue(r||`.`,He(o),Fe(e.pathname,n)||e.pathname,a===`path`);if(r??(c.search=e.search,c.hash=e.hash),(r==null||r===``||r===`.`)&&s){let e=zn(c.search);if(s.route.index&&!e)c.search=c.search?c.search.replace(/^\?/,`?index&`):`?index`;else if(!s.route.index&&e){let e=new URLSearchParams(c.search),t=e.getAll(`index`);e.delete(`index`),t.filter(e=>e).forEach(t=>e.append(`index`,t));let n=e.toString();c.search=n?`?${n}`:``}}return n!==`/`&&(c.pathname=Ie({basename:n,pathname:c.pathname})),E(c)}function Rt(e,t,n){if(!n||!It(n))return{path:t};if(n.formMethod&&!Ln(n.formMethod))return{path:t,error:Cn(405,{method:n.formMethod})};let r=()=>({path:t,error:Cn(400,{type:`invalid-body`})}),i=(n.formMethod||`get`).toUpperCase(),a=Tn(t);if(n.body!==void 0){if(n.formEncType===`text/plain`){if(!Rn(i))return r();let e=typeof n.body==`string`?n.body:n.body instanceof FormData||n.body instanceof URLSearchParams?Array.from(n.body.entries()).reduce((e,[t,n])=>`${e}${t}=${n}\n`,``):String(n.body);return{path:t,submission:{formMethod:i,formAction:a,formEncType:n.formEncType,formData:void 0,json:void 0,text:e}}}if(n.formEncType===`application/json`){if(!Rn(i))return r();try{let e=typeof n.body==`string`?JSON.parse(n.body):n.body;return{path:t,submission:{formMethod:i,formAction:a,formEncType:n.formEncType,formData:void 0,json:e,text:void 0}}}catch{return r()}}}C(typeof FormData==`function`,`FormData is not available in this environment`);let o,s;if(n.formData)o=hn(n.formData),s=n.formData;else if(n.body instanceof FormData)o=hn(n.body),s=n.body;else if(n.body instanceof URLSearchParams)o=n.body,s=gn(o);else if(n.body==null)o=new URLSearchParams,s=new FormData;else try{o=new URLSearchParams(n.body),s=gn(o)}catch{return r()}let c={formMethod:i,formAction:a,formEncType:n&&n.formEncType||`application/x-www-form-urlencoded`,formData:s,json:void 0,text:void 0};if(Rn(c.formMethod))return{path:t,submission:c};let l=ne(t);return e&&l.search&&zn(l.search)&&o.append(`index`,``),l.search=`?${o}`,{path:E(l),submission:c}}function zt(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x){let S=b?jn(b[1])?b[1].error:b[1].data:void 0,C=i.createURL(a.location),w=i.createURL(c),T;if(u&&a.errors){let e=Object.keys(a.errors)[0];T=o.findIndex(t=>t.route.id===e)}else if(b&&jn(b[1])){let e=b[0];T=o.findIndex(t=>t.route.id===e)-1}let ee=b?b[1].statusCode:void 0,te=ee&&ee>=400,E={currentUrl:C,currentParams:a.matches[0]?.params||{},nextUrl:w,nextParams:o[0].params,...s,actionResult:S,actionStatus:ee},ne=$e(o),D=o.map((i,o)=>{let{route:s}=i,f=null;if(T!=null&&o>T)f=!1;else if(s.lazy)f=!0;else if(!Bt(s))f=!1;else if(u){let{shouldLoad:e}=Vt(s,a.loaderData,a.errors);f=e}else Ht(a.loaderData,a.matches[o],i)&&(f=!0);if(f!==null)return rn(n,r,e,c,ne,i,l,t,f);let p=!1;typeof x==`boolean`?p=x:te?p=!1:d||C.pathname+C.search===w.pathname+w.search?p=!0:C.search===w.search?Ut(a.matches[o],i)&&(p=!0):p=!0;let m={...E,defaultShouldRevalidate:p};return rn(n,r,e,c,ne,i,l,t,Wt(i,m),m,x)}),re=[];return m.forEach((e,s)=>{if(u||!o.some(t=>t.route.id===e.routeId)||p.has(s))return;let c=a.fetchers.get(s),m=c&&c.state!==`idle`&&c.data===void 0,b=pe(g,e.path,_??`/`,!1,y);if(!b){if(v&&m)return;re.push({key:s,routeId:e.routeId,path:e.path,matches:null,match:null,request:null,controller:null});return}if(h.has(s))return;let S=Bn(b,e.path),C=new AbortController,w=mn(i,e.path,C.signal),T=null;if(f.has(s))f.delete(s),T=an(n,r,w,e.path,b,S,l,t);else if(m)d&&(T=an(n,r,w,e.path,b,S,l,t));else{let i;i=typeof x==`boolean`?x:!te&&d;let a={...E,defaultShouldRevalidate:i};Wt(S,a)&&(T=an(n,r,w,e.path,b,S,l,t,a))}T&&re.push({key:s,routeId:e.routeId,path:e.path,matches:T,match:S,request:w,controller:C})}),{dsMatches:D,revalidatingFetchers:re}}function Bt(e){return e.loader!=null||e.middleware!=null&&e.middleware.length>0}function Vt(e,t,n){if(e.lazy)return{shouldLoad:!0,renderFallback:!0};if(!Bt(e))return{shouldLoad:!1,renderFallback:!1};let r=t!=null&&e.id in t,i=n!=null&&n[e.id]!==void 0;if(!r&&i)return{shouldLoad:!1,renderFallback:!1};if(typeof e.loader==`function`&&e.loader.hydrate===!0)return{shouldLoad:!0,renderFallback:!r};let a=!r&&!i;return{shouldLoad:a,renderFallback:a}}function Ht(e,t,n){let r=!t||n.route.id!==t.route.id,i=!e.hasOwnProperty(n.route.id);return r||i}function Ut(e,t){let n=e.route.path;return e.pathname!==t.pathname||n!=null&&n.endsWith(`*`)&&e.params[`*`]!==t.params[`*`]}function Wt(e,t){if(e.route.shouldRevalidate){let n=e.route.shouldRevalidate(t);if(typeof n==`boolean`)return n}return t.defaultShouldRevalidate}function Gt(e,t,n,r,i,a){let o;if(e){let t=r[e];C(t,`No route found to patch children into: routeId = ${e}`),t.children||=[],o=t.children}else o=n.activeRoutes;let s=[],c=[];if(t.forEach(e=>{let t=o.find(t=>Kt(e,t));t?c.push({existingRoute:t,newRoute:e}):s.push(e)}),s.length>0){let t=ue(s,i,[e||`_`,`patch`,String(o?.length||`0`)],r);o.push(...t)}if(a&&c.length>0)for(let e=0;e<c.length;e++){let{existingRoute:t,newRoute:n}=c[e],r=t,[a]=ue([n],i,[],{},!0);Object.assign(r,{element:a.element?a.element:r.element,errorElement:a.errorElement?a.errorElement:r.errorElement,hydrateFallbackElement:a.hydrateFallbackElement?a.hydrateFallbackElement:r.hydrateFallbackElement})}n.hasHMRRoutes||n.setRoutes([...n.activeRoutes])}function Kt(e,t){return`id`in e&&`id`in t&&e.id===t.id?!0:e.index!==t.index||e.path!==t.path||e.caseSensitive!==t.caseSensitive?!1:(!e.children||e.children.length===0)&&(!t.children||t.children.length===0)?!0:e.children?.every((e,n)=>t.children?.some(t=>Kt(e,t)))??!1}var qt=new WeakMap,Jt=({key:e,route:t,manifest:n,mapRouteProperties:r})=>{let i=n[t.id];if(C(i,`No route found in manifest`),!i.lazy||typeof i.lazy!=`object`)return;let a=i.lazy[e];if(!a)return;let o=qt.get(i);o||(o={},qt.set(i,o));let s=o[e];if(s)return s;let c=(async()=>{let t=oe(e),n=i[e]!==void 0;if(t)w(!t,`Route property `+e+` is not a supported lazy route property. This property will be ignored.`),o[e]=Promise.resolve();else if(n)w(!1,`Route "${i.id}" has a static property "${e}" defined. The lazy property will be ignored.`);else{let t=await a();t!=null&&(Object.assign(i,{[e]:t}),Object.assign(i,r(i)))}typeof i.lazy==`object`&&(i.lazy[e]=void 0,Object.values(i.lazy).every(e=>e===void 0)&&(i.lazy=void 0))})();return o[e]=c,c},Yt=new WeakMap;function Xt(e,t,n,r,i){let a=n[e.id];if(C(a,`No route found in manifest`),!e.lazy)return{lazyRoutePromise:void 0,lazyHandlerPromise:void 0};if(typeof e.lazy==`function`){let t=Yt.get(a);if(t)return{lazyRoutePromise:t,lazyHandlerPromise:t};let n=(async()=>{C(typeof e.lazy==`function`,`No lazy route function found`);let t=await e.lazy(),n={};for(let e in t){let r=t[e];if(r===void 0)continue;let i=se(e),o=a[e]!==void 0;i?w(!i,`Route property `+e+` is not a supported property to be returned from a lazy route function. This property will be ignored.`):o?w(!o,`Route "${a.id}" has a static property "${e}" defined but its lazy function is also returning a value for this property. The lazy route property "${e}" will be ignored.`):n[e]=r}Object.assign(a,n),Object.assign(a,{...r(a),lazy:void 0})})();return Yt.set(a,n),n.catch(()=>{}),{lazyRoutePromise:n,lazyHandlerPromise:n}}let o=Object.keys(e.lazy),s=[],c;for(let a of o){if(i&&i.includes(a))continue;let o=Jt({key:a,route:e,manifest:n,mapRouteProperties:r});o&&(s.push(o),a===t&&(c=o))}let l=s.length>0?Promise.all(s).then(()=>{}):void 0;return l?.catch(()=>{}),c?.catch(()=>{}),{lazyRoutePromise:l,lazyHandlerPromise:c}}async function Zt(e){let t=e.matches.filter(e=>e.shouldLoad),n={};return(await Promise.all(t.map(e=>e.resolve()))).forEach((e,r)=>{n[t[r].route.id]=e}),n}async function Qt(e){return e.matches.some(e=>e.route.middleware)?$t(e,()=>Zt(e)):Zt(e)}function $t(e,t){return en(e,t,e=>{if(In(e))throw e;return e},On,n);async function n(t,n,r){if(r)return Object.assign(r.value,{[n]:{type:`error`,result:t}});{let{matches:r}=e,i=Math.min(Math.max(r.findIndex(e=>e.route.id===n),0),Math.max(r.findIndex(e=>e.shouldCallHandler()),0)),a=r[i].route.id;for(let e of r.slice(0,i+1))try{await e._lazyPromises?.route}catch{a=e.route.id;break}return{[xn(r,a).route.id]:{type:`error`,result:t}}}}}async function en(e,t,n,r,i){let{matches:a,...o}=e;return await tn(o,a.flatMap(e=>e.route.middleware?e.route.middleware.map(t=>[e.route.id,t]):[]),t,n,r,i)}async function tn(e,t,n,r,i,a,o=0){let{request:s}=e;if(s.signal.aborted)throw s.signal.reason??Error(`Request aborted: ${s.method} ${s.url}`);let c=t[o];if(!c)return await n();let[l,u]=c,d,f=async()=>{if(d)throw Error("You may only call `next()` once per middleware");try{return d={value:await tn(e,t,n,r,i,a,o+1)},d.value}catch(e){return d={value:await a(e,l,d)},d.value}};try{let t=await u(e,f),n=t==null?void 0:r(t);return i(n)?n:d?n??d.value:(d={value:await f()},d.value)}catch(e){return await a(e,l,d)}}function nn(e,t,n,r,i){let a=Jt({key:`middleware`,route:r.route,manifest:t,mapRouteProperties:e}),o=Xt(r.route,Rn(n.method)?`action`:`loader`,t,e,i);return{middleware:a,route:o.lazyRoutePromise,handler:o.lazyHandlerPromise}}function rn(e,t,n,r,i,a,o,s,c,l=null,u){let d=!1,f=nn(e,t,n,a,o);return{...a,_lazyPromises:f,shouldLoad:c,shouldRevalidateArgs:l,shouldCallHandler(e){return d=!0,l?typeof u==`boolean`?Wt(a,{...l,defaultShouldRevalidate:u}):typeof e==`boolean`?Wt(a,{...l,defaultShouldRevalidate:e}):Wt(a,l):c},resolve(e){let{lazy:t,loader:o,middleware:l}=a.route,u=d||c||e&&!Rn(n.method)&&(t||o),p=l&&l.length>0&&!o&&!t;return u&&(Rn(n.method)||!p)?sn({request:n,path:r,pattern:i,match:a,lazyHandlerPromise:f?.handler,lazyRoutePromise:f?.route,handlerOverride:e,scopedContext:s}):Promise.resolve({type:`data`,result:void 0})}}}function an(e,t,n,r,i,a,o,s,c=null){return i.map(l=>l.route.id===a.route.id?rn(e,t,n,r,$e(i),l,o,s,!0,c):{...l,shouldLoad:!1,shouldRevalidateArgs:c,shouldCallHandler:()=>!1,_lazyPromises:nn(e,t,n,l,o),resolve:()=>Promise.resolve({type:`data`,result:void 0})})}async function on(e,t,n,r,i,a,o){r.some(e=>e._lazyPromises?.middleware)&&await Promise.all(r.map(e=>e._lazyPromises?.middleware));let s={request:t,url:et(t,n),pattern:$e(r),params:r[0].params,context:a,matches:r},c=o?()=>{throw Error("You cannot call `runClientMiddleware()` from a static handler `dataStrategy`. Middleware is run outside of `dataStrategy` during SSR in order to bubble up the Response. You can enable middleware via the `respond` API in `query`/`queryRoute`")}:e=>{let t=s;return $t(t,()=>e({...t,fetcherKey:i,runClientMiddleware:()=>{throw Error("Cannot call `runClientMiddleware()` from within an `runClientMiddleware` handler")}}))},l=await e({...s,fetcherKey:i,runClientMiddleware:c});try{await Promise.all(r.flatMap(e=>[e._lazyPromises?.handler,e._lazyPromises?.route]))}catch{}return l}async function sn({request:e,path:t,pattern:n,match:r,lazyHandlerPromise:i,lazyRoutePromise:a,handlerOverride:o,scopedContext:s}){let c,l,u=Rn(e.method),d=u?`action`:`loader`,f=i=>{let a,c=new Promise((e,t)=>a=t);l=()=>a(),e.signal.addEventListener(`abort`,l);let u=a=>typeof i==`function`?i({request:e,url:et(e,t),pattern:n,params:r.params,context:s},...a===void 0?[]:[a]):Promise.reject(Error(`You cannot call the handler for a route which defines a boolean "${d}" [routeId: ${r.route.id}]`)),f=(async()=>{try{return{type:`data`,result:await(o?o(e=>u(e)):u())}}catch(e){return{type:`error`,result:e}}})();return Promise.race([f,c])};try{let t=u?r.route.action:r.route.loader;if(i||a){if(t){let e,[n]=await Promise.all([f(t).catch(t=>{e=t}),i,a]);if(e!==void 0)throw e;c=n}else{await i;let t=u?r.route.action:r.route.loader;if(t)[c]=await Promise.all([f(t),a]);else if(d===`action`){let t=new URL(e.url),n=t.pathname+t.search;throw Cn(405,{method:e.method,pathname:n,routeId:r.route.id})}else return{type:`data`,result:void 0}}}else if(t)c=await f(t);else{let t=new URL(e.url);throw Cn(404,{pathname:t.pathname+t.search})}}catch(e){return{type:`error`,result:e}}finally{l&&e.signal.removeEventListener(`abort`,l)}return c}async function cn(e){let t=e.headers.get(`Content-Type`);return t&&/\bapplication\/json\b/.test(t)?e.body==null?null:e.json():e.text()}async function ln(e){let{result:t,type:n}=e;if(Pn(t)){let e;try{e=await cn(t)}catch(e){return{type:`error`,error:e}}return n===`error`?{type:`error`,error:new Ze(t.status,t.statusText,e),statusCode:t.status,headers:t.headers}:{type:`data`,data:e,statusCode:t.status,headers:t.headers}}return n===`error`?Nn(t)?t.data instanceof Error?{type:`error`,error:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:`error`,error:Dn(t),statusCode:Qe(t)?t.status:void 0,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:`error`,error:t,statusCode:Qe(t)?t.status:void 0}:Nn(t)?{type:`data`,data:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:`data`,data:t}}function un(e,t,n,r,i){let a=e.headers.get(`Location`);if(C(a,`Redirects returned/thrown from loaders/actions must have a Location header`),!Le(a)){let o=r.slice(0,r.findIndex(e=>e.route.id===n)+1);a=Lt(new URL(t.url),o,i,a),e.headers.set(`Location`,a)}return e}var dn=[`about:`,`blob:`,`chrome:`,`chrome-untrusted:`,`content:`,`data:`,`devtools:`,`file:`,`filesystem:`,`javascript:`];function fn(e){try{return dn.includes(new URL(e).protocol)}catch{return!1}}function pn(e,t,n,r){if(Le(e)){let r=e,i=v.test(r)?new URL(y(r,t.protocol)):new URL(r);if(fn(i.toString()))throw Error(`Invalid redirect location`);let a=Fe(i.pathname,n)!=null;if(i.origin===t.origin&&a)return We(i.pathname)+i.search+i.hash}try{if(fn(r.createURL(e).toString()))throw Error(`Invalid redirect location`)}catch{}return e}function mn(e,t,n,r){let i=e.createURL(Tn(t)).toString(),a={signal:n};if(r&&Rn(r.formMethod)){let{formMethod:e,formEncType:t}=r;a.method=e.toUpperCase(),t===`application/json`?(a.headers=new Headers({"Content-Type":t}),a.body=JSON.stringify(r.json)):a.body=t===`text/plain`?r.text:t===`application/x-www-form-urlencoded`&&r.formData?hn(r.formData):r.formData}return new Request(i,a)}function hn(e){let t=new URLSearchParams;for(let[n,r]of e.entries())t.append(n,typeof r==`string`?r:r.name);return t}function gn(e){let t=new FormData;for(let[n,r]of e.entries())t.append(n,r);return t}function _n(e,t,n,r=!1,i=!1){let a={},o=null,s,c=!1,l={},u=n&&jn(n[1])?n[1].error:void 0;return e.forEach(n=>{if(!(n.route.id in t))return;let d=n.route.id,f=t[d];if(C(!Mn(f),`Cannot handle redirect results in processLoaderData`),jn(f)){let t=f.error;if(u!==void 0&&(t=u,u=void 0),o||={},i)o[d]=t;else{let n=xn(e,d);o[n.route.id]??(o[n.route.id]=t)}r||(a[d]=Nt),c||(c=!0,s=Qe(f.error)?f.error.status:500),f.headers&&(l[d]=f.headers)}else a[d]=f.data,f.statusCode&&f.statusCode!==200&&!c&&(s=f.statusCode),f.headers&&(l[d]=f.headers)}),u!==void 0&&n&&(o={[n[0]]:u},n[2]&&(a[n[2]]=void 0)),{loaderData:a,errors:o,statusCode:s||200,loaderHeaders:l}}function vn(e,t,n,r,i,a,o){let{loaderData:s,errors:c}=_n(t,n,r);return i.filter(e=>!e.matches||e.matches.some(e=>e.shouldLoad)).forEach(t=>{let{key:n,match:r,controller:i}=t;if(i&&i.signal.aborted)return;let s=a[n];if(C(s,`Did not find corresponding fetcher result`),jn(s)){let t=xn(e.matches,r?.route.id);c&&c[t.route.id]||(c={...c,[t.route.id]:s.error}),o.delete(n)}else if(Mn(s))C(!1,`Unhandled fetcher revalidation redirect`);else{let e=qn(s.data);o.set(n,e)}}),{loaderData:s,errors:c}}function yn(e,t,n,r){let i=Object.entries(t).filter(([,e])=>e!==Nt).reduce((e,[t,n])=>(e[t]=n,e),{});for(let a of n){let n=a.route.id;if(!t.hasOwnProperty(n)&&e.hasOwnProperty(n)&&a.route.loader&&(i[n]=e[n]),r&&r.hasOwnProperty(n))break}return i}function bn(e){return e?jn(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function xn(e,t){return(t?e.slice(0,e.findIndex(e=>e.route.id===t)+1):[...e]).reverse().find(e=>e.route.ErrorBoundary!=null||e.route.errorElement!=null)||e[0]}function Sn(e){let t=e.length===1?e[0]:e.find(e=>e.index||!e.path||e.path===`/`)||{id:`__shim-error-route__`};return{matches:[{params:{},pathname:``,pathnameBase:``,route:t}],route:t}}function Cn(e,{pathname:t,routeId:n,method:r,type:i,message:a}={}){let o=`Unknown Server Error`,s=`Unknown @remix-run/router error`;return e===400?(o=`Bad Request`,r&&t&&n?s=`You made a ${r} request to "${t}" but did not provide a \`loader\` for route "${n}", so there is no way to handle the request.`:i===`invalid-body`&&(s=`Unable to encode submission body`)):e===403?(o=`Forbidden`,s=`Route "${n}" does not match URL "${t}"`):e===404?(o=`Not Found`,s=`No route matches URL "${t}"`):e===405&&(o=`Method Not Allowed`,r&&t&&n?s=`You made a ${r.toUpperCase()} request to "${t}" but did not provide an \`action\` for route "${n}", so there is no way to handle the request.`:r&&(s=`Invalid request method "${r.toUpperCase()}"`)),new Ze(e||500,o,Error(s),!0)}function wn(e){let t=Object.entries(e);for(let e=t.length-1;e>=0;e--){let[n,r]=t[e];if(Mn(r))return{key:n,result:r}}}function Tn(e){return E({...typeof e==`string`?ne(e):e,hash:``})}function En(e,t){return e.pathname!==t.pathname||e.search!==t.search?!1:e.hash===``?t.hash!==``:e.hash===t.hash||t.hash!==``}function Dn(e){return new Ze(e.init?.status??500,e.init?.statusText??`Internal Server Error`,e.data)}function On(e){return typeof e==`object`&&!!e&&Object.entries(e).every(([e,t])=>typeof e==`string`&&kn(t))}function kn(e){return typeof e==`object`&&!!e&&`type`in e&&`result`in e&&(e.type===`data`||e.type===`error`)}function An(e){return Pn(e.result)&&Dt.has(e.result.status)}function jn(e){return e.type===`error`}function Mn(e){return(e&&e.type)===`redirect`}function Nn(e){return typeof e==`object`&&!!e&&`type`in e&&`data`in e&&`init`in e&&e.type===`DataWithResponseInit`}function Pn(e){return e!=null&&typeof e.status==`number`&&typeof e.statusText==`string`&&typeof e.headers==`object`&&e.body!==void 0}function Fn(e){return Dt.has(e)}function In(e){return Pn(e)&&Fn(e.status)&&e.headers.has(`Location`)}function Ln(e){return Et.has(e.toUpperCase())}function Rn(e){return wt.has(e.toUpperCase())}function zn(e){return new URLSearchParams(e).getAll(`index`).some(e=>e===``)}function Bn(e,t){let n=typeof t==`string`?ne(t).search:t.search;if(e[e.length-1].route.index&&zn(n||``))return e[e.length-1];let r=Ve(e);return r[r.length-1]}function Vn(e,t,n){return{url:et(e.createURL(t),t),pattern:n?$e(n):``,params:n?.[0]?.params?{...n[0].params}:{}}}function Hn(e){let{formMethod:t,formAction:n,formEncType:r,text:i,formData:a,json:o}=e;if(t&&n&&r){if(i!=null)return{formMethod:t,formAction:n,formEncType:r,formData:void 0,json:void 0,text:i};if(a!=null)return{formMethod:t,formAction:n,formEncType:r,formData:a,json:void 0,text:void 0};if(o!==void 0)return{formMethod:t,formAction:n,formEncType:r,formData:void 0,json:o,text:void 0}}}function Un(e,t,n,r){return r?{state:`loading`,location:e,matches:t,historyAction:n,formMethod:r.formMethod,formAction:r.formAction,formEncType:r.formEncType,formData:r.formData,json:r.json,text:r.text}:{state:`loading`,location:e,matches:t,historyAction:n,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function Wn(e,t,n,r){return{state:`submitting`,location:e,matches:t,historyAction:n,formMethod:r.formMethod,formAction:r.formAction,formEncType:r.formEncType,formData:r.formData,json:r.json,text:r.text}}function Gn(e,t){return e?{state:`loading`,formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:`loading`,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function Kn(e,t){return{state:`submitting`,formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0}}function qn(e){return{state:`idle`,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function Jn(e,t){try{let n=e.sessionStorage.getItem(Mt);if(n){let e=JSON.parse(n);for(let[n,r]of Object.entries(e||{}))r&&Array.isArray(r)&&t.set(n,new Set(r||[]))}}catch{}}function Yn(e,t){if(t.size>0){let n={};for(let[e,r]of t)n[e]=[...r];try{e.sessionStorage.setItem(Mt,JSON.stringify(n))}catch(e){w(!1,`Failed to save applied view transitions in sessionStorage (${e}).`)}}}function Xn(){let e,t,n=new Promise((r,i)=>{e=async e=>{r(e);try{await n}catch{}},t=async e=>{i(e);try{await n}catch{}}});return{promise:n,resolve:e,reject:t}}var Zn=O.createContext(null);Zn.displayName=`DataRouter`;var Qn=O.createContext(null);Qn.displayName=`DataRouterState`;var $n=O.createContext(!1);function er(){return O.useContext($n)}var tr=O.createContext({isTransitioning:!1});tr.displayName=`ViewTransition`;var nr=O.createContext(new Map);nr.displayName=`Fetchers`;var rr=O.createContext(null);rr.displayName=`Await`;var ir=O.createContext(null);ir.displayName=`Navigation`;var ar=O.createContext(null);ar.displayName=`Location`;var or=O.createContext({outlet:null,matches:[],isDataRoute:!1});or.displayName=`Route`;var sr=O.createContext(null);sr.displayName=`RouteError`;var cr=`REACT_ROUTER_ERROR`,lr=`REDIRECT`,ur=`ROUTE_ERROR_RESPONSE`;function dr(e){if(e.startsWith(`${cr}:${lr}:{`))try{let t=JSON.parse(e.slice(28));if(typeof t==`object`&&t&&typeof t.status==`number`&&typeof t.statusText==`string`&&typeof t.location==`string`&&typeof t.reloadDocument==`boolean`&&typeof t.replace==`boolean`)return t}catch{}}function fr(e){if(e.startsWith(`${cr}:${ur}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t==`object`&&t&&typeof t.status==`number`&&typeof t.statusText==`string`)return new Ze(t.status,t.statusText,t.data)}catch{}}function pr(e,{relative:t}={}){C(mr(),`useHref() may be used only in the context of a <Router> component.`);let{basename:n,navigator:r}=O.useContext(ir),{hash:i,pathname:a,search:o}=Sr(e,{relative:t}),s=a;return n!==`/`&&(s=a===`/`?n:Ge([n,a])),r.createHref({pathname:s,search:o,hash:i})}function mr(){return O.useContext(ar)!=null}function hr(){return C(mr(),`useLocation() may be used only in the context of a <Router> component.`),O.useContext(ar).location}var gr=`You should call navigate() in a React.useEffect(), not when your component is first rendered.`;function _r(){let{isDataRoute:e}=O.useContext(or);return e?Rr():vr()}function vr(){C(mr(),`useNavigate() may be used only in the context of a <Router> component.`);let e=O.useContext(Zn),{basename:t,navigator:n}=O.useContext(ir),{matches:r}=O.useContext(or),{pathname:i}=hr(),a=JSON.stringify(He(r)),o=O.useRef(!1);return O.useLayoutEffect(()=>{o.current=!0}),O.useCallback((r,s={})=>{if(w(o.current,gr),!o.current)return;if(typeof r==`number`){n.go(r);return}let c=Ue(r,JSON.parse(a),i,s.relative===`path`);e==null&&t!==`/`&&(c.pathname=c.pathname===`/`?t:Ge([t,c.pathname])),St(typeof r==`string`?r:E(r),n.createHref(c),yt(n),`reject`),(s.replace?n.replace:n.push)(c,s.state,s)},[t,n,a,i,e])}var yr=O.createContext(null);function br(e){let t=O.useContext(or).outlet;return O.useMemo(()=>t&&O.createElement(yr.Provider,{value:e},t),[t,e])}function xr(){let{matches:e}=O.useContext(or);return e[e.length-1]?.params??{}}function Sr(e,{relative:t}={}){let{matches:n}=O.useContext(or),{pathname:r}=hr(),i=JSON.stringify(He(n));return O.useMemo(()=>Ue(e,JSON.parse(i),r,t===`path`),[e,i,r,t])}function Cr(e,t,n){C(mr(),`useRoutes() may be used only in the context of a <Router> component.`);let{navigator:r}=O.useContext(ir),{matches:i}=O.useContext(or),a=i[i.length-1],o=a?a.params:{};a&&a.pathname;let s=a?a.pathnameBase:`/`;a&&a.route;let c=hr(),l;if(t){let e=typeof t==`string`?ne(t):t;C(s===`/`||e.pathname?.startsWith(s),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${s}" but pathname "${e.pathname}" was given in the \`location\` prop.`),l=e}else l=c;let u=l.pathname||`/`,d=u;if(s!==`/`){let e=s.replace(/^\//,``).split(`/`);d=`/`+u.replace(/^\//,``).split(`/`).slice(e.length).join(`/`)}let f=n&&n.state.matches.length?n.state.matches.map(e=>Object.assign(e,{route:n.manifest[e.route.id]||e.route})):fe(e,{pathname:d}),p=Ar(f&&f.map(e=>Object.assign({},e,{params:Object.assign({},o,e.params),pathname:Ge([s,r.encodeLocation?r.encodeLocation(e.pathname.replace(/%/g,`%25`).replace(/\?/g,`%3F`).replace(/#/g,`%23`)).pathname:e.pathname]),pathnameBase:e.pathnameBase===`/`?s:Ge([s,r.encodeLocation?r.encodeLocation(e.pathnameBase.replace(/%/g,`%25`).replace(/\?/g,`%3F`).replace(/#/g,`%23`)).pathname:e.pathnameBase])})),i,n);return t&&p?O.createElement(ar.Provider,{value:{location:{pathname:`/`,search:``,hash:``,state:null,key:`default`,mask:void 0,...l},navigationType:`POP`}},p):p}function wr(){let e=Lr(),t=Qe(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null;return O.createElement(O.Fragment,null,O.createElement(`h2`,null,`Unexpected Application Error!`),O.createElement(`h3`,{style:{fontStyle:`italic`}},t),n?O.createElement(`pre`,{style:{padding:`0.5rem`,backgroundColor:`rgba(200,200,200, 0.5)`}},n):null,null)}var Tr=O.createElement(wr,null),Er=class extends O.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static contextType=$n;static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!==`idle`&&e.revalidation===`idle`?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error===void 0?t.error:e.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error(`React Router caught the following error during render`,e)}render(){let e=this.state.error;if(this.context&&typeof e==`object`&&e&&`digest`in e&&typeof e.digest==`string`){let t=fr(e.digest);t&&(e=t)}let t=e===void 0?this.props.children:O.createElement(or.Provider,{value:this.props.routeContext},O.createElement(sr.Provider,{value:e,children:this.props.component}));return this.context?O.createElement(Or,{error:e},t):t}},Dr=new WeakMap;function Or({children:e,error:t}){let{basename:n,navigator:r}=O.useContext(ir);if(typeof t==`object`&&t&&`digest`in t&&typeof t.digest==`string`){let e=dr(t.digest);if(e){let i=Dr.get(t);if(i)throw i;let a=nt(e.location,n),o=a.absoluteURL||a.to;if(St(e.location,o,yt(r),`allow-explicit`),fn(o))throw Error(`Invalid redirect location`);if(tt&&!Dr.get(t)){if(a.isExternal||e.reloadDocument)window.location.href=o;else{let n=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(a.to,{replace:e.replace}));throw Dr.set(t,n),n}}return O.createElement(`meta`,{httpEquiv:`refresh`,content:`0;url=${o}`})}}return e}function kr({routeContext:e,match:t,children:n}){let r=O.useContext(Zn);return r&&r.static&&r.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=t.route.id),O.createElement(or.Provider,{value:e},n)}function Ar(e,t=[],n){let r=n?.state;if(e==null){if(!r)return null;if(r.errors)e=r.matches;else if(t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let i=e,a=r?.errors;if(a!=null){let e=i.findIndex(e=>e.route.id&&a?.[e.route.id]!==void 0);C(e>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(a).join(`,`)}`),i=i.slice(0,Math.min(i.length,e+1))}let o=!1,s=-1;if(n&&r){o=r.renderFallback;for(let e=0;e<i.length;e++){let t=i[e];if((t.route.HydrateFallback||t.route.hydrateFallbackElement)&&(s=e),t.route.id){let{loaderData:e,errors:a}=r,c=t.route.loader&&!e.hasOwnProperty(t.route.id)&&(!a||a[t.route.id]===void 0);if(t.route.lazy||c){n.isStatic&&(o=!0),i=s>=0?i.slice(0,s+1):[i[0]];break}}}}let c=n?.onError,l=r&&c?(e,t)=>{c(e,{location:r.location,params:r.matches?.[0]?.params??{},pattern:$e(r.matches),errorInfo:t})}:void 0;return i.reduceRight((e,n,c)=>{let u,d=!1,f=null,p=null;r&&(u=a&&n.route.id?a[n.route.id]:void 0,f=n.route.errorElement||Tr,o&&(s<0&&c===0?(Br(`route-fallback`,!1,"No `HydrateFallback` element provided to render during initial hydration"),d=!0,p=null):s===c&&(d=!0,p=n.route.hydrateFallbackElement||null)));let m=t.concat(i.slice(0,c+1)),h=()=>{let t;return t=u?f:d?p:n.route.Component?O.createElement(n.route.Component,null):n.route.element?n.route.element:e,O.createElement(kr,{match:n,routeContext:{outlet:e,matches:m,isDataRoute:r!=null},children:t})};return r&&(n.route.ErrorBoundary||n.route.errorElement||c===0)?O.createElement(Er,{location:r.location,revalidation:r.revalidation,component:f,error:u,children:h(),routeContext:{outlet:null,matches:m,isDataRoute:!0},onError:l}):h()},null)}function jr(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Mr(e){let t=O.useContext(Zn);return C(t,jr(e)),t}function Nr(e){let t=O.useContext(Qn);return C(t,jr(e)),t}function Pr(e){let t=O.useContext(or);return C(t,jr(e)),t}function Fr(e){let t=Pr(e),n=t.matches[t.matches.length-1];return C(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function Ir(){return Fr(`useRouteId`)}function Lr(){let e=O.useContext(sr),t=Nr(`useRouteError`),n=Fr(`useRouteError`);return e===void 0?t.errors?.[n]:e}function Rr(){let{router:e}=Mr(`useNavigate`),t=Fr(`useNavigate`),n=O.useRef(!1);return O.useLayoutEffect(()=>{n.current=!0}),O.useCallback(async(r,i={})=>{w(n.current,gr),n.current&&(typeof r==`number`?await e.navigate(r):await e.navigate(r,{fromRouteId:t,...i}))},[e,t])}var zr={};function Br(e,t,n){!t&&!zr[e]&&(zr[e]=!0,w(!1,n))}var Vr={};function Hr(e,t){!e&&!Vr[t]&&(Vr[t]=!0,console.warn(t))}var Ur=[`HydrateFallback`,`hydrateFallbackElement`],Wr=class{status=`pending`;promise;resolve;reject;constructor(){this.promise=new Promise((e,t)=>{this.resolve=t=>{this.status===`pending`&&(this.status=`resolved`,e(t))},this.reject=e=>{this.status===`pending`&&(this.status=`rejected`,t(e))}})}};function Gr({router:e,flushSync:t,onError:n,useTransitions:r}){r=er()||r;let[i,a]=O.useState(e.state),[o,s]=(0,O.useOptimistic)(i),[c,l]=O.useState(),[u,d]=O.useState({isTransitioning:!1}),[f,p]=O.useState(),[m,h]=O.useState(),[g,_]=O.useState(),v=O.useRef(new Map),y=O.useCallback((i,{deletedFetchers:o,newErrors:c,flushSync:u,viewTransitionOpts:g})=>{c&&n&&Object.values(c).forEach(e=>n(e,{location:i.location,params:i.matches[0]?.params??{},pattern:$e(i.matches)})),i.fetchers.forEach((e,t)=>{e.data!==void 0&&v.current.set(t,e.data)}),o.forEach(e=>v.current.delete(e)),Hr(u===!1||t!=null,'You provided the `flushSync` option to a router update, but you are not using the `<RouterProvider>` from `react-router/dom` so `ReactDOM.flushSync()` is unavailable. Please update your app to `import { RouterProvider } from "react-router/dom"` and ensure you have `react-dom` installed as a dependency to use the `flushSync` option.');let y=e.window!=null&&e.window.document!=null&&typeof e.window.document.startViewTransition==`function`;if(Hr(g==null||y,"You provided the `viewTransition` option to a router update, but you do not appear to be running in a DOM environment as `window.startViewTransition` is not available."),!g||!y){t&&u?t(()=>a(i)):r===!1?a(i):O.startTransition(()=>{r===!0&&s(e=>Kr(e,i)),a(i)});return}if(t&&u){t(()=>{m&&(f?.resolve(),m.skipTransition()),d({isTransitioning:!0,flushSync:!0,currentLocation:g.currentLocation,nextLocation:g.nextLocation})});let n=e.window.document.startViewTransition(()=>{t(()=>a(i))});n.finished.finally(()=>{t(()=>{p(void 0),h(void 0),l(void 0),d({isTransitioning:!1})})}),t(()=>h(n));return}m?(f?.resolve(),m.skipTransition(),_({state:i,currentLocation:g.currentLocation,nextLocation:g.nextLocation})):(l(i),d({isTransitioning:!0,flushSync:!1,currentLocation:g.currentLocation,nextLocation:g.nextLocation}))},[e.window,t,m,f,r,s,n]);O.useLayoutEffect(()=>e.subscribe(y),[e,y]),O.useEffect(()=>{u.isTransitioning&&!u.flushSync&&p(new Wr)},[u]),O.useEffect(()=>{if(f&&c&&e.window){let t=c,n=f.promise,i=e.window.document.startViewTransition(async()=>{r===!1?a(t):O.startTransition(()=>{r===!0&&s(e=>Kr(e,t)),a(t)}),await n});i.finished.finally(()=>{p(void 0),h(void 0),l(void 0),d({isTransitioning:!1})}),h(i)}},[c,f,e.window,r,s]),O.useEffect(()=>{f&&c&&o.location.key===c.location.key&&f.resolve()},[f,m,o.location,c]),O.useEffect(()=>{!u.isTransitioning&&g&&(l(g.state),d({isTransitioning:!0,flushSync:!1,currentLocation:g.currentLocation,nextLocation:g.nextLocation}),_(void 0))},[u.isTransitioning,g]);let b=O.useMemo(()=>({createHref:e.createHref,createURL:e.createURL,encodeLocation:e.encodeLocation,go:t=>e.navigate(t),push:(t,n,r)=>e.navigate(t,{state:n,preventScrollReset:r?.preventScrollReset}),replace:(t,n,r)=>e.navigate(t,{replace:!0,state:n,preventScrollReset:r?.preventScrollReset})}),[e]),x=e.basename||`/`,S=O.useMemo(()=>({router:e,navigator:b,static:!1,basename:x,onError:n}),[e,b,x,n]);return O.createElement(O.Fragment,null,O.createElement(Zn.Provider,{value:S},O.createElement(Qn.Provider,{value:o},O.createElement(nr.Provider,{value:v.current},O.createElement(tr.Provider,{value:u},O.createElement(Zr,{basename:x,location:o.location,navigationType:o.historyAction,navigator:b,useTransitions:r},O.createElement(qr,{routes:e.routes,manifest:e.manifest,future:e.future,state:o,isStatic:!1,onError:n})))))),null)}function Kr(e,t){return{...e,navigation:t.navigation.state===`idle`?e.navigation:t.navigation,revalidation:t.revalidation===`idle`?e.revalidation:t.revalidation,actionData:t.navigation.state===`submitting`?e.actionData:t.actionData,fetchers:t.fetchers}}var qr=O.memo(Jr);function Jr({routes:e,manifest:t,future:n,state:r,isStatic:i,onError:a}){return Cr(e,void 0,{manifest:t,state:r,isStatic:i,onError:a,future:n})}function Yr({to:e,replace:t,state:n,relative:r}){C(mr(),`<Navigate> may be used only in the context of a <Router> component.`);let{static:i,navigator:a}=O.useContext(ir);w(!i,`<Navigate> must not be used on the initial render in a <StaticRouter>. This is a no-op, but you should modify your code so the <Navigate> is only ever rendered in response to some user interaction or state change.`);let{matches:o}=O.useContext(or),{pathname:s}=hr(),c=_r(),l=Ue(e,He(o),s,r===`path`);St(typeof e==`string`?e:E(e),a.createHref(l),yt(a),`reject`);let u=JSON.stringify(l);return O.useEffect(()=>{c(JSON.parse(u),{replace:t,state:n,relative:r})},[c,u,r,t,n]),null}function Xr(e){return br(e.context)}function Zr({basename:e=`/`,children:t=null,location:n,navigationType:r=`POP`,navigator:i,static:a=!1,useTransitions:o}){C(!mr(),`You cannot render a <Router> inside another <Router>. You should never have more than one in your app.`);let s=e.replace(/^\/*/,`/`),c=O.useMemo(()=>({basename:s,navigator:i,static:a,useTransitions:o,future:{}}),[s,i,a,o]);typeof n==`string`&&(n=ne(n));let{pathname:l=`/`,search:u=``,hash:d=``,state:f=null,key:p=`default`,mask:m}=n,h=O.useMemo(()=>{let e=Fe(l,s);return e==null?null:{location:{pathname:e,search:u,hash:d,state:f,key:p,mask:m},navigationType:r}},[s,l,u,d,f,p,r,m]);return w(h!=null,`<Router basename="${s}"> is not able to match the URL "${l}${u}${d}" because it does not start with the basename, so the <Router> won't render anything.`),h==null?null:O.createElement(ir.Provider,{value:c},O.createElement(ar.Provider,{children:t,value:h}))}O.Component;var Qr=`application/x-www-form-urlencoded`;function $r(e){return typeof HTMLElement<`u`&&e instanceof HTMLElement}function ei(e){return $r(e)&&e.tagName.toLowerCase()===`button`}function ti(e){return $r(e)&&e.tagName.toLowerCase()===`form`}function ni(e){return $r(e)&&e.tagName.toLowerCase()===`input`}function ri(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function ii(e,t){return e.button===0&&(!t||t===`_self`)&&!ri(e)}function ai(e=``){return new URLSearchParams(typeof e==`string`||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,n)=>{let r=e[n];return t.concat(Array.isArray(r)?r.map(e=>[n,e]):[[n,r]])},[]))}function oi(e,t){let n=ai(e);return t&&t.forEach((e,r)=>{n.has(r)||t.getAll(r).forEach(e=>{n.append(r,e)})}),n}var si=null;function ci(){if(si===null)try{new FormData(document.createElement(`form`),0),si=!1}catch{si=!0}return si}var li=new Set([`application/x-www-form-urlencoded`,`multipart/form-data`,`text/plain`]);function ui(e){return e!=null&&!li.has(e)?(w(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${Qr}"`),null):e}function di(e,t){let n,r,i,a,o;if(ti(e)){let o=e.getAttribute(`action`);r=o?Fe(o,t):null,n=e.getAttribute(`method`)||`get`,i=ui(e.getAttribute(`enctype`))||Qr,a=new FormData(e)}else if(ei(e)||ni(e)&&(e.type===`submit`||e.type===`image`)){let o=e.form;if(o==null)throw Error(`Cannot submit a <button> or <input type="submit"> without a <form>`);let s=e.getAttribute(`formaction`)||o.getAttribute(`action`);if(r=s?Fe(s,t):null,n=e.getAttribute(`formmethod`)||o.getAttribute(`method`)||`get`,i=ui(e.getAttribute(`formenctype`))||ui(o.getAttribute(`enctype`))||Qr,a=new FormData(o,e),!ci()){let{name:t,type:n,value:r}=e;if(n===`image`){let e=t?`${t}.`:``;a.append(`${e}x`,`0`),a.append(`${e}y`,`0`)}else t&&a.append(t,r)}}else if($r(e))throw Error(`Cannot submit element that is not <form>, <button>, or <input type="submit|image">`);else n=`get`,r=null,i=Qr,o=e;return a&&i===`text/plain`&&(o=a,a=void 0),{action:r,method:n.toLowerCase(),encType:i,formData:a,body:o}}function fi(e,t){if(e===!1||e==null)throw Error(t)}function pi(e,t){let n=typeof e==`string`?new URL(e,typeof window>`u`?`server://singlefetch/`:window.location.origin):e;return n.pathname=n.pathname.endsWith(`/`)?`${n.pathname}_.${t}`:`${n.pathname}.${t}`,n}var mi=c(m(),1),hi=g(),gi=`modulepreload`,_i=function(e){return`/`+e},vi={},yi=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=_i(t,n),t=s(t),t in vi)return;vi[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:gi,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})};async function bi(e,t){if(e.id in t)return t[e.id];try{let n=await yi(()=>import(e.module),[]);return t[e.id]=n,n}catch(t){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(t),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function xi(e){return e!=null&&typeof e.page==`string`}function Si(e){return e==null?!1:e.href==null?e.rel===`preload`&&typeof e.imageSrcSet==`string`&&typeof e.imageSizes==`string`:typeof e.rel==`string`&&typeof e.href==`string`}async function Ci(e,t,n){return Oi((await Promise.all(e.map(async e=>{let r=t.routes[e.route.id];if(r){let e=await bi(r,n);return e.links?e.links():[]}return[]}))).flat(1).filter(Si).filter(e=>e.rel===`stylesheet`||e.rel===`preload`).map(e=>e.rel===`stylesheet`?{...e,rel:`prefetch`,as:`style`}:{...e,rel:`prefetch`}))}function wi(e,t,n,r,i,a){let o=(e,t)=>!n[t]||e.route.id!==n[t].route.id,s=(e,t)=>n[t].pathname!==e.pathname||n[t].route.path?.endsWith(`*`)&&n[t].params[`*`]!==e.params[`*`];return a===`assets`?t.filter((e,t)=>o(e,t)||s(e,t)):a===`data`?t.filter((t,a)=>{let c=r.routes[t.route.id];if(!c||!c.hasLoader)return!1;if(o(t,a)||s(t,a))return!0;if(t.route.shouldRevalidate){let r=t.route.shouldRevalidate({currentUrl:new URL(i.pathname+i.search+i.hash,window.origin),currentParams:n[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:t.params,defaultShouldRevalidate:!0});if(typeof r==`boolean`)return r}return!0}):[]}function Ti(e,t,{includeHydrateFallback:n}={}){return Ei(e.map(e=>{let r=t.routes[e.route.id];if(!r)return[];let i=[r.module];return r.clientActionModule&&(i=i.concat(r.clientActionModule)),r.clientLoaderModule&&(i=i.concat(r.clientLoaderModule)),n&&r.hydrateFallbackModule&&(i=i.concat(r.hydrateFallbackModule)),r.imports&&(i=i.concat(r.imports)),i}).flat(1))}function Ei(e){return[...new Set(e)]}function Di(e){let t={},n=Object.keys(e).sort();for(let r of n)t[r]=e[r];return t}function Oi(e,t){let n=new Set,r=new Set(t);return e.reduce((e,i)=>{if(t&&!xi(i)&&i.as===`script`&&i.href&&r.has(i.href))return e;let a=JSON.stringify(Di(i));return n.has(a)||(n.add(a),e.push({key:a,link:i})),e},[])}function ki(){let e=O.useContext(Zn);return fi(e,`You must render this element inside a <DataRouterContext.Provider> element`),e}function Ai(){let e=O.useContext(Qn);return fi(e,`You must render this element inside a <DataRouterStateContext.Provider> element`),e}var ji=O.createContext(void 0);ji.displayName=`FrameworkContext`;function Mi(){let e=O.useContext(ji);return fi(e,`You must render this element inside a <HydratedRouter> element`),e}function Ni(e,t){let n=O.useContext(ji),[r,i]=O.useState(!1),[a,o]=O.useState(!1),{onFocus:s,onBlur:c,onMouseEnter:l,onMouseLeave:u,onTouchStart:d}=t,f=O.useRef(null);O.useEffect(()=>{if(e===`render`&&o(!0),e===`viewport`){let e=new IntersectionObserver(e=>{e.forEach(e=>{o(e.isIntersecting)})},{threshold:.5});return f.current&&e.observe(f.current),()=>{e.disconnect()}}},[e]),O.useEffect(()=>{if(r){let e=setTimeout(()=>{o(!0)},100);return()=>{clearTimeout(e)}}},[r]);let p=()=>{i(!0)},m=()=>{i(!1),o(!1)};return n?e===`intent`?[a,f,{onFocus:Pi(s,p),onBlur:Pi(c,m),onMouseEnter:Pi(l,p),onMouseLeave:Pi(u,m),onTouchStart:Pi(d,p)}]:[a,f,{}]:[!1,f,{}]}function Pi(e,t){return n=>{e&&e(n),n.defaultPrevented||t(n)}}function Fi({page:e,...t}){let n=er(),{nonce:r}=Mi(),{router:i}=ki(),a=O.useMemo(()=>fe(i.routes,e,i.basename),[i.routes,e,i.basename]);return a?(t.nonce==null&&r&&(t={...t,nonce:r}),n?O.createElement(Li,{page:e,matches:a,...t}):O.createElement(Ri,{page:e,matches:a,...t})):null}function Ii(e){let{manifest:t,routeModules:n}=Mi(),[r,i]=O.useState([]);return O.useEffect(()=>{let r=!1;return Ci(e,t,n).then(e=>{r||i(e)}),()=>{r=!0}},[e,t,n]),r}function Li({page:e,matches:t,...n}){let r=hr(),i=O.useMemo(()=>{if(e===r.pathname+r.search+r.hash)return[];let n=pi(e,`rsc`),i=!1,a=[];for(let e of t)typeof e.route.shouldRevalidate==`function`?i=!0:a.push(e.route.id);return i&&a.length>0&&n.searchParams.set(`_routes`,a.join(`,`)),[n.pathname+n.search]},[e,r,t]);return O.createElement(O.Fragment,null,i.map(e=>O.createElement(`link`,{key:e,rel:`prefetch`,as:`fetch`,href:e,...n})))}function Ri({page:e,matches:t,...n}){let r=hr(),{manifest:i,routeModules:a}=Mi(),{loaderData:o,matches:s}=Ai(),c=O.useMemo(()=>wi(e,t,s,i,r,`data`),[e,t,s,i,r]),l=O.useMemo(()=>wi(e,t,s,i,r,`assets`),[e,t,s,i,r]),u=O.useMemo(()=>{if(e===r.pathname+r.search+r.hash)return[];let n=new Set,s=!1;if(t.forEach(e=>{let t=i.routes[e.route.id];t&&t.hasLoader&&(!c.some(t=>t.route.id===e.route.id)&&e.route.id in o&&a[e.route.id]?.shouldRevalidate||t.hasClientLoader?s=!0:n.add(e.route.id))}),n.size===0)return[];let l=pi(e,`data`);return s&&n.size>0&&l.searchParams.set(`_routes`,t.filter(e=>n.has(e.route.id)).map(e=>e.route.id).join(`,`)),[l.pathname+l.search]},[o,r,i,c,t,e,a]),d=O.useMemo(()=>Ti(l,i),[l,i]),f=Ii(l);return O.createElement(O.Fragment,null,u.map(e=>O.createElement(`link`,{key:e,rel:`prefetch`,as:`fetch`,href:e,...n})),d.map(e=>O.createElement(`link`,{key:e,rel:`modulepreload`,href:e,...n})),f.map(({key:e,link:t})=>O.createElement(`link`,{key:e,nonce:n.nonce,...t,crossOrigin:t.crossOrigin??n.crossOrigin})))}function zi(...e){return t=>{e.forEach(e=>{typeof e==`function`?e(t):e!=null&&(e.current=t)})}}var Bi=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;try{Bi&&(window.__reactRouterVersion=`8`)}catch{}function Vi(e,t){return Ft({basename:t?.basename,getContext:t?.getContext,future:t?.future,history:S({window:t?.window}),hydrationData:t?.hydrationData||Hi(),routes:e,mapRouteProperties:le,hydrationRouteProperties:Ur,dataStrategy:t?.dataStrategy,patchRoutesOnNavigation:t?.patchRoutesOnNavigation,window:t?.window,instrumentations:t?.instrumentations}).initialize()}function Hi(){let e=window?.__staticRouterHydrationData;return e&&e.errors&&(e={...e,errors:Ui(e.errors)}),e}function Ui(e){if(!e)return null;let t=Object.entries(e),n={};for(let[e,r]of t)if(r&&r.__type===`RouteErrorResponse`)n[e]=new Ze(r.status,r.statusText,r.data,r.internal===!0);else if(r&&r.__type===`Error`){if(typeof r.__subType==`string`&&Xe.includes(r.__subType)){let t=window[r.__subType];if(typeof t==`function`)try{let i=new t(r.message);i.stack=``,n[e]=i}catch{}}if(n[e]==null){let t=Error(r.message);t.stack=``,n[e]=t}}else n[e]=r;return n}var Wi=O.forwardRef(function({onClick:e,discover:t=`render`,prefetch:n=`none`,relative:r,reloadDocument:i,replace:a,mask:o,state:s,target:c,to:l,preventScrollReset:u,viewTransition:d,defaultShouldRevalidate:f,...p},m){let{basename:h,navigator:g,useTransitions:v}=O.useContext(ir),y=typeof l==`string`&&_.test(l),b=nt(l,h);l=b.to;let x=pr(l,{relative:r}),S=hr(),C=null;if(o){let e=Ue(o,[],S.mask?S.mask.pathname:`/`,!0);h!==`/`&&(e.pathname=e.pathname===`/`?h:Ge([h,e.pathname])),C=g.createHref(e)}let[w,T,ee]=Ni(n,p),te=Yi(l,{replace:a,mask:o,state:s,target:c,preventScrollReset:u,relative:r,viewTransition:d,defaultShouldRevalidate:f,useTransitions:v});function E(t){e&&e(t),t.defaultPrevented||te(t)}let ne=!(b.isExternal||i),D=O.createElement(`a`,{...p,...ee,href:(ne?C:void 0)||b.absoluteURL||x,onClick:ne?E:e,ref:zi(m,T),target:c,"data-discover":!y&&t===`render`?`true`:void 0});return w&&!y?O.createElement(O.Fragment,null,D,O.createElement(Fi,{page:x})):D});Wi.displayName=`Link`;var Gi=O.forwardRef(function({"aria-current":e=`page`,caseSensitive:t=!1,className:n=``,end:r=!1,style:i,to:a,viewTransition:o,children:s,...c},l){let u=Sr(a,{relative:c.relative}),d=hr(),f=O.useContext(Qn),{navigator:p,basename:m}=O.useContext(ir),h=f!=null&&ta(u)&&o===!0,g=p.encodeLocation?p.encodeLocation(u).pathname:u.pathname,_=d.pathname,v=f&&f.navigation&&f.navigation.location?f.navigation.location.pathname:null;t||(_=_.toLowerCase(),v=v?v.toLowerCase():null,g=g.toLowerCase()),v&&m&&(v=Fe(v,m)||v);let y=g!==`/`&&g.endsWith(`/`)?g.length-1:g.length,b=_===g||!r&&_.startsWith(g)&&_.charAt(y)===`/`,x=v!=null&&(v===g||!r&&v.startsWith(g)&&v.charAt(y)===`/`),S={isActive:b,isPending:x,isTransitioning:h},C=b?e:void 0,w;w=typeof n==`function`?n(S):[n,b?`active`:null,x?`pending`:null,h?`transitioning`:null].filter(Boolean).join(` `);let T=typeof i==`function`?i(S):i;return O.createElement(Wi,{...c,"aria-current":C,className:w,ref:l,style:T,to:a,viewTransition:o},typeof s==`function`?s(S):s)});Gi.displayName=`NavLink`;var Ki=O.forwardRef(({discover:e=`render`,fetcherKey:t,navigate:n,reloadDocument:r,replace:i,state:a,method:o=`get`,action:s,onSubmit:c,relative:l,preventScrollReset:u,viewTransition:d,defaultShouldRevalidate:f,...p},m)=>{let{useTransitions:h}=O.useContext(ir),g=$i(),v=ea(s,{relative:l}),y=o.toLowerCase()===`get`?`get`:`post`,b=typeof s==`string`&&_.test(s);return O.createElement(`form`,{ref:m,method:y,action:v,onSubmit:r?c:e=>{if(c&&c(e),e.defaultPrevented)return;e.preventDefault();let r=e.nativeEvent.submitter,s=r?.getAttribute(`formmethod`)||o,p=()=>g(r||e.currentTarget,{fetcherKey:t,method:s,navigate:n,replace:i,state:a,relative:l,preventScrollReset:u,viewTransition:d,defaultShouldRevalidate:f});h&&n!==!1?O.startTransition(()=>p()):p()},...p,"data-discover":!b&&e===`render`?`true`:void 0})});Ki.displayName=`Form`;function qi(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Ji(e){let t=O.useContext(Zn);return C(t,qi(e)),t}function Yi(e,{target:t,replace:n,mask:r,state:i,preventScrollReset:a,relative:o,viewTransition:s,defaultShouldRevalidate:c,useTransitions:l}={}){let u=_r(),d=hr(),f=Sr(e,{relative:o});return O.useCallback(p=>{if(ii(p,t)){p.preventDefault();let t=n===void 0?E(d)===E(f):n,m=()=>u(e,{replace:t,mask:r,state:i,preventScrollReset:a,relative:o,viewTransition:s,defaultShouldRevalidate:c});l?O.startTransition(()=>m()):m()}},[d,u,f,n,r,i,t,e,a,o,s,c,l])}function Xi(e){w(typeof URLSearchParams<`u`,"You cannot use the `useSearchParams` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.");let t=O.useRef(ai(e)),n=O.useRef(!1),r=hr(),i=O.useMemo(()=>oi(r.search,n.current?null:t.current),[r.search]),a=_r();return[i,O.useCallback((e,t)=>{let r=ai(typeof e==`function`?e(new URLSearchParams(i)):e);n.current=!0,a(`?`+r,t)},[a,i])]}var Zi=0,Qi=()=>`__${String(++Zi)}__`;function $i(){let{router:e}=Ji(`useSubmit`),{basename:t}=O.useContext(ir),n=Ir(),r=e.fetch,i=e.navigate;return O.useCallback(async(e,a={})=>{let{action:o,method:s,encType:c,formData:l,body:u}=di(e,t);a.navigate===!1?await r(a.fetcherKey||Qi(),n,a.action||o,{defaultShouldRevalidate:a.defaultShouldRevalidate,preventScrollReset:a.preventScrollReset,relative:a.relative,formData:l,body:u,formMethod:a.method||s,formEncType:a.encType||c,flushSync:a.flushSync}):await i(a.action||o,{defaultShouldRevalidate:a.defaultShouldRevalidate,preventScrollReset:a.preventScrollReset,relative:a.relative,formData:l,body:u,formMethod:a.method||s,formEncType:a.encType||c,replace:a.replace,state:a.state,fromRouteId:n,flushSync:a.flushSync,viewTransition:a.viewTransition})},[r,i,t,n])}function ea(e,{relative:t}={}){let{basename:n}=O.useContext(ir),r=O.useContext(or);C(r,`useFormAction must be used inside a RouteContext`);let[i]=r.matches.slice(-1),a={...Sr(e||`.`,{relative:t})},o=hr();if(e==null){a.search=o.search;let e=new URLSearchParams(a.search),t=e.getAll(`index`);if(t.some(e=>e===``)){e.delete(`index`),t.filter(e=>e).forEach(t=>e.append(`index`,t));let n=e.toString();a.search=n?`?${n}`:``}}return(!e||e===`.`)&&i.route.index&&(a.search=a.search?a.search.replace(/^\?/,`?index&`):`?index`),n!==`/`&&(a.pathname=a.pathname===`/`?n:Ge([n,a.pathname])),E(a)}function ta(e,{relative:t}={}){let n=O.useContext(tr);C(n!=null,"`useViewTransitionState` must be used within `react-router/dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:r}=Ji(`useViewTransitionState`),i=Sr(e,{relative:t});if(!n.isTransitioning)return!1;let a=Fe(n.currentLocation.pathname,r)||n.currentLocation.pathname,o=Fe(n.nextLocation.pathname,r)||n.nextLocation.pathname;return je(i.pathname,o)!=null||je(i.pathname,a)!=null}var na=class extends Error{status;name=`GatewayError`;constructor(e,t){super(t),this.status=e}};function ra(e){return e instanceof Error?e.message:String(e)}function ia(e){let t=e.key===``?{}:{authorization:`Bearer ${e.key}`};return e.world!==void 0&&(t[`pinecall-env`]=e.world),e.corner&&(t[`pinecall-corner`]=e.corner),t}var aa=null;function oa(e){aa=e}async function A(e,t,n={}){return ma(await fetch(ga(e,t,n),{headers:ia(e)}))}async function sa(e,t,n){return ma(await fetch(ga(e,t,{}),{method:`PUT`,headers:{...ia(e),"content-type":`application/json`},body:JSON.stringify(n)}))}async function ca(e,t,n){return ma(await fetch(ga(e,t,{}),{method:`PATCH`,headers:{...ia(e),"content-type":`application/json`},body:JSON.stringify(n)}))}async function la(e,t,n){return ma(await fetch(ga(e,t,{}),{method:`POST`,headers:{...ia(e),"content-type":`application/json`},body:JSON.stringify(n)}))}async function ua(e,t,n){let r=n===void 0?{}:{headers:{...ia(e),"content-type":`application/json`},body:JSON.stringify(n)};return ma(await fetch(ga(e,t,{}),{method:`DELETE`,headers:ia(e),...r}))}function da(e,t,n={}){return ga(e,t,n).toString()}var fa=204,pa=401;async function ma(e){if(e.ok)return e.status===fa?null:e.json();throw e.status===pa&&aa?.(),new na(e.status,await _a(e))}function ha(e,t){return new URL(e.replace(/\/$/,``)+t,window.location.origin)}function ga(e,t,n){let r=ha(e.base,t);for(let[e,t]of Object.entries(n))r.searchParams.set(e,String(t));return r}async function _a(e){try{let t=(await e.json()).detail;return typeof t==`string`?t:e.statusText}catch{return e.statusText}}var va=`pinecall.theme`,ya=`(prefers-color-scheme: light)`;function ba(){return window.matchMedia(ya).matches?`light`:`dark`}function xa(e){document.documentElement.dataset.theme=e}function Sa(e){return e===`dark`||e===`light`}function Ca(e){try{return window.localStorage.getItem(e)}catch{return null}}function wa(e,t){try{window.localStorage.setItem(e,t)}catch{}}function Ta(e){try{window.localStorage.removeItem(e)}catch{}}function Ea(){let e=null;try{e=JSON.parse(Ca(va)??`null`)}catch{return null}return e===null||!Sa(e.theme)||e.systemWas!==ba()?(Ta(va),null):e.theme}function Da(){xa(Ea()??ba()),window.matchMedia(ya).addEventListener(`change`,()=>{Ta(va),xa(ba())})}function Oa(){return document.documentElement.dataset.theme===`light`?`light`:`dark`}function ka(){let e=Oa()===`dark`?`light`:`dark`,t=ba();return e===t?Ta(va):wa(va,JSON.stringify({theme:e,systemWas:t})),xa(e),e}function Aa(e){let t=new MutationObserver(e);return t.observe(document.documentElement,{attributes:!0,attributeFilter:[`data-theme`]}),()=>t.disconnect()}var ja=`console`,Ma=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),j=o(((e,t)=>{t.exports=Ma()}))(),Na=(0,O.createContext)(null);function Pa({value:e,children:t}){return(0,j.jsx)(Na,{value:e,children:t})}function M(){let e=(0,O.useContext)(Na);if(e===null)throw Error(`this page was mounted without credentials`);return e}function Fa(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 Ia(e,t=`|`){return e.map(e=>ro(e)).join(t)}function La(e,t){return typeof t==`bigint`?t.toString():t}function Ra(e){return{get value(){{let t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function za(e){return e==null}function Ba(e){let t=+!!e.startsWith(`^`),n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}function Va(e,t){let n=e/t,r=Math.round(n),i=4*2**-52*Math.max(Math.abs(n),1);return Math.abs(n-r)<i?0:n-r}var Ha=Symbol(`evaluating`);function Ua(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==Ha)return r===void 0&&(r=Ha,r=n()),r},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function Wa(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function Ga(...e){let t={};for(let n of e){let e=Object.getOwnPropertyDescriptors(n);Object.assign(t,e)}return Object.defineProperties({},t)}function Ka(e){return JSON.stringify(e)}function qa(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,``).replace(/[\s_-]+/g,`-`).replace(/^-+|-+$/g,``)}var Ja=`captureStackTrace`in Error?Error.captureStackTrace:(...e)=>{};function Ya(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var Xa=Ra(()=>{if(Uo.jitless||typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{return Function(``),!0}catch{return!1}});function Za(e){if(Ya(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!=`function`)return!0;let n=t.prototype;return Ya(n)!==!1&&Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)!==!1}function Qa(e){return Za(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}var $a=new Set([`string`,`number`,`symbol`]);function eo(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function to(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function no(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 ro(e){return typeof e==`bigint`?e.toString()+`n`:typeof e==`string`?`"${e}"`:`${e}`}function io(e){return Object.keys(e).filter(t=>e[t]._zod.optin!==void 0&&e[t]._zod.optout===`optional`)}var ao={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function oo(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 to(e,Ga(e._zod.def,{get shape(){let e={};for(let r of Reflect.ownKeys(t)){if(!Object.prototype.hasOwnProperty.call(n.shape,r))throw Error(`Unrecognized key: "${String(r)}"`);t[r]&&Wa(e,r,n.shape[r])}return Wa(this,`shape`,e),e},checks:[]}))}function so(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 to(e,Ga(e._zod.def,{get shape(){let r={...e._zod.def.shape};for(let e of Reflect.ownKeys(t)){if(!Object.prototype.hasOwnProperty.call(n.shape,e))throw Error(`Unrecognized key: "${String(e)}"`);t[e]&&delete r[e]}return Wa(this,`shape`,r),r},checks:[]}))}function co(e,t){if(!Za(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 of Reflect.ownKeys(t))if(Object.getOwnPropertyDescriptor(n,e)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return to(e,Ga(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return Wa(this,`shape`,n),n}}))}function lo(e,t){if(!Za(t))throw Error(`Invalid input to safeExtend: expected a plain object`);return to(e,Ga(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return Wa(this,`shape`,n),n}}))}function uo(e,t){if(!t?._zod?.def)throw Error("Invalid input to merge: expected an object schema. To merge a plain shape, use `.extend()`.");if(e._zod.def.checks?.length)throw Error(`.merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.`);return to(e,Ga(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return Wa(this,`shape`,n),n},get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]}))}function fo(e,t,n,r=`partial`){let i=t._zod.def.checks;if(i&&i.length>0)throw Error(`.${r}() cannot be used on object schemas containing refinements`);return to(t,Ga(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t of Reflect.ownKeys(n)){if(!Object.prototype.hasOwnProperty.call(r,t))throw Error(`Unrecognized key: "${String(t)}"`);n[t]&&(i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t])}else for(let t of Reflect.ownKeys(r))i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t];return Wa(this,`shape`,i),i},checks:[]}))}function po(e,t,n){return to(t,Ga(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t of Reflect.ownKeys(n)){if(!Object.prototype.hasOwnProperty.call(i,t))throw Error(`Unrecognized key: "${String(t)}"`);n[t]&&(i[t]=new e({type:`nonoptional`,innerType:r[t]}))}else for(let t of Reflect.ownKeys(r))i[t]=new e({type:`nonoptional`,innerType:r[t]});return Wa(this,`shape`,i),i}}))}function mo(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 ho(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue===!1)return!0;return!1}function go(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function _o(e){return typeof e==`string`?e:e?.message}function vo(e,t,n){var r;for(let i=t;i<e.length;i++)(r=e[i]).schema??(r.schema=n)}function yo(e,t,n){var r;let i=e.inst?._zod?.traits;i?.has(`$ZodType`)&&(i.has(`$ZodCheck`)?(r=e).schema??(r.schema=e.inst):e.schema=e.inst);let a=e.schema===e.inst?void 0:e.schema?._zod.def?.error,o=e.message?e.message:_o(e.inst?._zod.def?.error?.(e))??_o(a?.(e))??_o(t?.error?.(e))??_o(n.customError?.(e))??_o(n.localeError?.(e))??`Invalid input`,{inst:s,schema:c,continue:l,input:u,...d}=e;return d.path??=[],d.message=o,t?.reportInput&&(d.input=u),d}var bo=/[\uD800-\uDBFF]/;function xo(e){let t=e.length;if(!bo.test(e))return t;let n=t;for(let r=0;r<t-1;r++)(e.charCodeAt(r)&64512)==55296&&(e.charCodeAt(r+1)&64512)==56320&&(n--,r++);return n}function So(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}function Co(e){let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`nan`:`number`;case`object`:{if(e===null)return`null`;if(Array.isArray(e))return`array`;let t=e;if(t&&Object.getPrototypeOf(t)!==Object.prototype&&`constructor`in t&&t.constructor)return t.constructor.name}}return t}function wo(...e){let[t,n,r]=e;return typeof t==`string`?{message:t,code:`custom`,input:n,inst:r}:{...t}}function To(e,t){for(let n in t){let r=Object.getOwnPropertyDescriptor(t,n);r.get?Object.defineProperty(e,n,{...r,enumerable:!1}):Oo(e,n,r.value)}}function Eo(e,t,n,r=!0){return Object.defineProperty(e,t,{configurable:!0,writable:!0,enumerable:r,value:n}),n}function Do(e,t,n){return Eo(e,t,n,!1)}function Oo(e,t,n){Object.defineProperty(e,t,{configurable:!0,get(){return this==null?n:Eo(this,t,n.bind(this))},set(e){Eo(this,t,e)}})}function ko(e,t){let n=Object.getPrototypeOf(e);return t in n?void 0:n}var Ao,jo=!1,Mo={configurable:!0,get(){jo=!0}};function No(e,t,n){let r=Object.getPrototypeOf(e._zod);if(t in r&&Ao!==e._zod){Ao=void 0;return}Ao=e._zod,Object.defineProperty(r,t,{configurable:!0,get(){Object.defineProperty(this,t,Mo);let e=jo;jo=!1;try{let r=n(this);return jo?delete this[t]:Object.defineProperty(this,t,{configurable:!0,writable:!0,value:r}),jo||=e,r}catch(n){throw delete this[t],jo||=e,n}},set(e){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:e})}})}function Po(e,t,n,r){let i=ko(e,t);i&&Object.defineProperty(i,t,{configurable:!0,get(){let e={configurable:!0,writable:!0,enumerable:r,value:void 0};return Object.defineProperty(this,t,e),e.value=n(this),Object.defineProperty(this,t,e),e.value},set(e){Object.defineProperty(this,t,{configurable:!0,writable:!0,enumerable:r,value:e})}})}var Fo=`~constantCatch`;function Io(e){let t=()=>e;return t[Fo]=!0,t}var Lo,Ro={value:void 0,enumerable:!1},zo=`captureStackTrace`in Error?Error:null;function Bo(e){let t=zo;if(t){let n=t.stackTraceLimit;if(typeof n==`number`){try{t.stackTraceLimit=0}catch{return zo=null,new e}try{return new e}finally{t.stackTraceLimit=n}}}return new e}function N(e,t,n,r){let i={};function a(e){this.def=e,this.constr=d,this.traits=new Set}a.prototype=i;let o=n,s=o&&new WeakSet;function c(n,r){if(!n._zod){Ro.value=new a(r);try{Object.defineProperty(n,"_zod",Ro)}finally{Ro.value=void 0}}if(n._zod.traits.has(e))return;if(n._zod.traits.add(e),t(n,r),s){let e=Object.getPrototypeOf(n),t=n._zod.constr.prototype,r=e;for(;r&&r!==t;)r=Object.getPrototypeOf(r);let i=r??e;s.has(i)||(s.add(i),To(i,o))}let i=d.prototype;for(let e in i)Object.prototype.hasOwnProperty.call(i,e)&&(e in n||(n[e]=i[e].bind(n)))}let l=r?.Parent??Object;class u extends l{}Object.defineProperty(u,"name",{value:e});function d(e){let t=r?.Parent?Bo(u):this;c(t,e);let n=t._zod.deferred;if(n){for(let e of n)e();t._zod.deferred=void 0}let i=globalThis.__zod_globalConfig?.postProcessor;return i&&i(t),t}return Object.defineProperty(d,"init",{value:c}),Object.defineProperty(d,Symbol.hasInstance,{value:t=>r?.Parent&&t instanceof r.Parent?!0:t?._zod?.traits?.has(e)}),Object.defineProperty(d,"name",{value:e}),d}var Vo=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}},Ho=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name=`ZodEncodeError`}};(Lo=globalThis).__zod_globalConfig??(Lo.__zod_globalConfig={});var Uo=globalThis.__zod_globalConfig;function Wo(e){return e&&Object.assign(Uo,e),Uo}function Go(){let e=this._zod;return e.message??=JSON.stringify(e.def,La,2),e.message}function Ko(e){this._zod.message=e}var qo={get:Go,set:Ko,enumerable:!0,configurable:!0},Jo={value:void 0,enumerable:!1},Yo={value:void 0,enumerable:!1},Xo=new WeakSet([Object.prototype,Error.prototype]),Zo=(e,t)=>{e.name=`$ZodError`,Jo.value=e._zod,Object.defineProperty(e,"_zod",Jo),Yo.value=t,Object.defineProperty(e,"issues",Yo),Jo.value=void 0,Yo.value=void 0,Object.defineProperty(e,"message",qo);let n=Object.getPrototypeOf(e);Xo.has(n)||(Xo.add(n),Object.defineProperty(n,"toString",{configurable:!0,enumerable:!1,get(){let e=()=>this.message;return Object.defineProperty(this,"toString",{value:e,configurable:!0,writable:!0}),e},set(e){Object.defineProperty(this,"toString",{value:e,configurable:!0,writable:!0})}}))},Qo=N(`$ZodError`,Zo),$o=N(`$ZodError`,Zo,void 0,{Parent:Error});function es(e,t,n){return Object.prototype.hasOwnProperty.call(e,t)||(t===`__proto__`?Object.defineProperty(e,t,{value:n(),writable:!0,enumerable:!0,configurable:!0}):e[t]=n()),e[t]}function ts(e,t=e=>e.message){let n={},r=[];for(let i of e.issues)i.path.length>0?es(n,i.path[0],()=>[]).push(t(i)):r.push(t(i));return{formErrors:r,fieldErrors:n}}function ns(e,t=e=>e.message){let n={_errors:[]},r=(e,i=[])=>{for(let a of e.issues)if(a.code===`invalid_union`&&a.errors.length)a.errors.map(e=>r({issues:e},[...i,...a.path]));else if(a.code===`invalid_key`)r({issues:a.issues},[...i,...a.path]);else if(a.code===`invalid_element`)r({issues:a.issues},[...i,...a.path]);else{let e=[...i,...a.path];if(e.length===0)n._errors.push(t(a));else{let r=n,i=0;for(;i<e.length;){let n=e[i],o=i===e.length-1;if(n===`_errors`){o&&r._errors.push(t(a)),i++;continue}Object.prototype.hasOwnProperty.call(r,n)||Object.defineProperty(r,n,{value:{_errors:[]},enumerable:!0,writable:!0,configurable:!0});let s=r[n];o&&s._errors.push(t(a)),r=s,i++}}}};return r(e),n}function rs(e,t){return{callee:t?.callee??e,Err:t?.Err}}var is=e=>{let t=(n,r,i,a)=>{let o=i?{...i,async:!1}:{async:!1},s=n._zod.run({value:r,issues:[]},o);if(s instanceof Promise)throw new Vo;if(s.issues.length){let n=new((a?.Err)??e)(s.issues.map(e=>yo(e,o,Wo())));throw Ja(n,a?.callee??t),n}return s.value};return t},as=e=>{let t=async(n,r,i,a)=>{let o=i?{...i,async:!0}:{async:!0},s=n._zod.run({value:r,issues:[]},o);if(s instanceof Promise&&(s=await s),s.issues.length){let n=new((a?.Err)??e)(s.issues.map(e=>yo(e,o,Wo())));throw Ja(n,a?.callee??t),n}return s.value};return t},os=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 Vo;return a.issues.length?{success:!1,error:new(e??Qo)(a.issues.map(e=>yo(e,i,Wo())))}:{success:!0,data:a.value}},ss=os($o),cs=e=>async(t,n,r)=>{let i=r?{...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=>yo(e,i,Wo())))}:{success:!0,data:a.value}},ls=cs($o),us=e=>{let t=is(e),n=(e,r,i,a)=>{let o=i?{...i,direction:`backward`}:{direction:`backward`};return t(e,r,o,rs(n,a))};return n},ds=e=>{let t=is(e),n=(e,r,i,a)=>t(e,r,i,rs(n,a));return n},fs=e=>{let t=as(e),n=async(e,r,i,a)=>{let o=i?{...i,direction:`backward`}:{direction:`backward`};return await t(e,r,o,rs(n,a))};return n},ps=e=>{let t=as(e),n=async(e,r,i,a)=>await t(e,r,i,rs(n,a));return n},ms=e=>(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return os(e)(t,n,i)},hs=e=>(t,n,r)=>os(e)(t,n,r),gs=e=>async(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return cs(e)(t,n,i)},_s=e=>async(t,n,r)=>cs(e)(t,n,r),vs=/^[cC][0-9a-z]{6,}$/,ys=/^[0-9a-z]+$/,bs=/^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$/,xs=/^[0-9a-vA-V]{20}$/,Ss=/^[A-Za-z0-9]{27}$/,Cs=/^[a-zA-Z0-9_-]{21}$/;function ws(e){return RegExp(`^[a-zA-Z0-9_-]{${e}}$`)}var Ts=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Es=/^([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})$/,Ds=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)$/,Os=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,ks=`^[\\p{Extended_Pictographic}\\p{Emoji_Component}]+$`;function As(){return new RegExp(ks,`u`)}var js=/^(?:(?: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])$/,Ms=/^(([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}|:))$/,Ns=/^((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])$/,Ps=/^(([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}|:))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Fs=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Is=/^[A-Za-z0-9_-]*$/,Ls=/^https?$/,Rs=/^\+[1-9]\d{6,14}$/,zs=`(?:(?:\\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])))`;function Bs(e){return RegExp(`^${e}$`)}var Vs=Bs(zs);function Hs(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}}`:e.seconds?`${t}:[0-5]\\d(?:\\.\\d+)?`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function Us(e){return RegExp(`^${Hs(e)}$`)}function Ws(e){let t=[`Z`];e.offset&&t.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`);let n=`${Hs({precision:e.precision,seconds:!0})}(?:${t.join(`|`)})`,r=e.local?`${n}|${Hs({precision:e.precision})}`:n;return RegExp(`^${zs}T(?:${r})$`)}var Gs=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??``}}`:`[\\s\\S]*`;return RegExp(`^${t}$`)},Ks=/^-?\d+$/,qs=/^-?\d+(?:\.\d+)?$/,Js=/^(?:true|false)$/i,Ys=/^[^A-Z]*$/,Xs=/^[^a-z]*$/,Zs=N(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),Qs=e=>{let t=e.value;return!za(t)&&t.length!==void 0},$s={number:`number`,bigint:`bigint`,object:`date`},ec=N(`$ZodCheckLessThan`,(e,t)=>{Zs.init(e,t);let n=$s[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:$s[typeof r.value]??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})}}),tc=N(`$ZodCheckGreaterThan`,(e,t)=>{Zs.init(e,t);let n=$s[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:$s[typeof r.value]??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})}}),nc=N(`$ZodCheckMultipleOf`,(e,t)=>{Zs.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`?t.value!==BigInt(0)&&n.value%t.value===BigInt(0):Va(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})}}),rc=N(`$ZodCheckNumberFormat`,(e,t)=>{Zs.init(e,t),t.format=t.format||`float64`;let n=t.format?.includes(`int`),r=n?`int`:`number`,[i,a]=ao[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=Ks)}),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})}}),ic=N(`$ZodCheckMaxLength`,(e,t)=>{var n;Zs.init(e,t),(n=e._zod.def).when??(n.when=Qs),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,i=r.length;if((typeof r==`string`&&i>t.maximum?xo(r):i)<=t.maximum)return;let a=So(r);n.issues.push({origin:a,code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),ac=N(`$ZodCheckMinLength`,(e,t)=>{var n;Zs.init(e,t),(n=e._zod.def).when??(n.when=Qs),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,i=r.length;if((typeof r==`string`&&i>=t.minimum&&i<t.minimum*2?xo(r):i)>=t.minimum)return;let a=So(r);n.issues.push({origin:a,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),oc=N(`$ZodCheckLengthEquals`,(e,t)=>{var n;Zs.init(e,t),(n=e._zod.def).when??(n.when=Qs),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,a=typeof r==`string`&&i>=t.length&&i<=t.length*2?xo(r):i;if(a===t.length)return;let o=So(r),s=a>t.length;n.issues.push({origin:o,...s?{code:`too_big`,maximum:t.length}:{code:`too_small`,minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),sc=N(`$ZodCheckStringFormat`,(e,t)=>{var n,r;Zs.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=()=>{})}),cc=N(`$ZodCheckRegex`,(e,t)=>{sc.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})}}),lc=N(`$ZodCheckLowerCase`,(e,t)=>{t.pattern??=Ys,sc.init(e,t)}),uc=N(`$ZodCheckUpperCase`,(e,t)=>{t.pattern??=Xs,sc.init(e,t)}),dc=N(`$ZodCheckIncludes`,(e,t)=>{Zs.init(e,t);let n=eo(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})}}),fc=N(`$ZodCheckStartsWith`,(e,t)=>{Zs.init(e,t);let n=RegExp(`^${eo(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})}}),pc=N(`$ZodCheckEndsWith`,(e,t)=>{Zs.init(e,t);let n=RegExp(`.*${eo(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})}}),mc=N(`$ZodCheckOverwrite`,(e,t)=>{Zs.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}}),hc=class{constructor(e=[],t={}){this.content=[],this.indent=0,this.args=e,this.closed=t}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(`
10
+ `).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?.content??[``];return new e(...Object.keys(this.closed),`return function (${this.args.join(`, `)}) {\n${t.join(`
11
+ `)}\n};`)(...Object.values(this.closed))}},gc={major:4,minor:5,patch:4},_c=N(`$ZodType`,(e,t)=>{var n;e??={},e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=gc;let r=e._zod.def.checks,i=e._zod.traits.has(`$ZodCheck`)?[e,...r??[]]:r?.length?[...r]:[];for(let t of i)for(let n of t._zod.onattach)n(e);if(i.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let t=(t,n,r)=>{if(t.memo)return t;let i=mo(t),a;for(let o of n){if(o._zod.def.when){if(ho(t)||!o._zod.def.when(t))continue}else if(i)continue;let n=t.issues.length,s=o._zod.check(t);if(s instanceof Promise&&r?.async===!1)throw new Vo;if(a||s instanceof Promise)a=(a??Promise.resolve()).then(async()=>{await s,t.issues.length!==n&&(vo(t.issues,n,e),i||=mo(t,n))});else{if(t.issues.length===n)continue;vo(t.issues,n,e),i||=mo(t,n)}}return a?a.then(()=>t):t},n=(n,r,a)=>{if(mo(n))return n.aborted=!0,n;let o=t(r,i,a);if(o instanceof Promise){if(a.async===!1)throw new Vo;return o.then(t=>e._zod.parse(t,a))}return e._zod.parse(o,a)};e._zod.run=(r,a)=>{if(a.skipChecks)return e._zod.parse(r,a);if(a.direction===`backward`){let t=e._zod.parse({value:r.value,issues:[]},{...a,skipChecks:!0});return t instanceof Promise?t.then(e=>n(e,r,a)):n(t,r,a)}let o=e._zod.parse(r,a);if(o instanceof Promise){if(a.async===!1)throw new Vo;return o.then(e=>t(e,i,a))}return t(o,i,a)}}},{get"~standard"(){return Do(this,`~standard`,yc(this))},set"~standard"(e){Eo(this,`~standard`,e)}}),vc=e=>e.success?{value:e.data}:{issues:e.error?.issues};function yc(e){return{validate:t=>{try{return vc(ss(e,t))}catch{return ls(e,t).then(vc)}},vendor:`zod`,version:1}}var bc=N(`$ZodString`,(e,t)=>{_c.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??Gs(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}}),xc=N(`$ZodStringFormat`,(e,t)=>{sc.init(e,t),bc.init(e,t)}),Sc=N(`$ZodGUID`,(e,t)=>{t.pattern??=Es,xc.init(e,t)}),Cc=N(`$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??=Ds(e)}else t.pattern??=Ds();xc.init(e,t)}),wc=N(`$ZodEmail`,(e,t)=>{t.pattern??=Os,xc.init(e,t)});function Tc(e,t){if(!t.normalize&&t.protocol?.source===Ls.source&&!/^https?:\/\//i.test(e))return 1;try{return new URL(e)}catch{return 2}}var Ec=/[\t\n\r]/g;function Dc(e){return e.replace(Ec,``)}function Oc(e,t){return t.lastIndex=0,t.test(e.hostname)}function kc(e,t){return t.lastIndex=0,t.test(e.protocol.endsWith(`:`)?e.protocol.slice(0,-1):e.protocol)}var Ac=N(`$ZodURL`,(e,t)=>{xc.init(e,t),e._zod.check=n=>{try{let r=n.value.trim(),i=Tc(r,t);if(i===1){n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid URL format`,input:n.value,inst:e,continue:!t.abort});return}if(i===2){n.issues.push({code:`invalid_format`,format:`url`,input:n.value,inst:e,continue:!t.abort});return}t.hostname&&!Oc(i,t.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&&!kc(i,t.protocol)&&n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid protocol`,pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort}),n.value=t.normalize?i.href:Dc(r);return}catch{n.issues.push({code:`invalid_format`,format:`url`,input:n.value,inst:e,continue:!t.abort})}}}),jc=N(`$ZodEmoji`,(e,t)=>{t.pattern??=As(),xc.init(e,t)}),Mc=N(`$ZodNanoID`,(e,t)=>{if(t.length!==void 0&&(!Number.isInteger(t.length)||t.length<1))throw Error(`Invalid nanoid length: ${t.length}`);t.pattern??=t.length===void 0?Cs:ws(t.length),xc.init(e,t)}),Nc=N(`$ZodCUID`,(e,t)=>{t.pattern??=vs,xc.init(e,t)}),Pc=N(`$ZodCUID2`,(e,t)=>{t.pattern??=ys,xc.init(e,t)}),Fc=N(`$ZodULID`,(e,t)=>{t.pattern??=bs,xc.init(e,t)}),Ic=N(`$ZodXID`,(e,t)=>{t.pattern??=xs,xc.init(e,t)}),Lc=N(`$ZodKSUID`,(e,t)=>{t.pattern??=Ss,xc.init(e,t)}),Rc=N(`$ZodISODateTime`,(e,t)=>{t.pattern??=Ws(t),xc.init(e,t),(t.local||t.precision===-1)&&(e._zod.bag.laxFormat=!0,e._zod.onattach.push(e=>{e._zod.bag.laxFormat=!0}))}),zc=N(`$ZodISODate`,(e,t)=>{t.pattern??=Vs,xc.init(e,t)}),Bc=N(`$ZodISOTime`,(e,t)=>{t.pattern??=Us(t),xc.init(e,t)}),Vc=N(`$ZodISODuration`,(e,t)=>{t.pattern??=Ts,xc.init(e,t)}),Hc=N(`$ZodIPv4`,(e,t)=>{t.pattern??=js,xc.init(e,t),e._zod.bag.format=`ipv4`}),Uc=/^[0-9a-fA-F:.]+$/;function Wc(e){if(!Uc.test(e))return!1;try{return new URL(`http://[${e}]`),!0}catch{return!1}}var Gc=N(`$ZodIPv6`,(e,t)=>{t.pattern??=Ms,xc.init(e,t),e._zod.bag.format=`ipv6`,e._zod.check=n=>{Wc(n.value)||n.issues.push({code:`invalid_format`,format:`ipv6`,input:n.value,inst:e,continue:!t.abort})}}),Kc=N(`$ZodCIDRv4`,(e,t)=>{t.pattern??=Ns,xc.init(e,t)});function qc(e){let t=e.split(`/`);if(t.length!==2)return!1;let[n,r]=t;if(!r)return!1;let i=Number(r);return`${i}`!==r||i<0||i>128?!1:Wc(n)}var Jc=N(`$ZodCIDRv6`,(e,t)=>{t.pattern??=Ps,xc.init(e,t),e._zod.check=n=>{qc(n.value)||n.issues.push({code:`invalid_format`,format:`cidrv6`,input:n.value,inst:e,continue:!t.abort})}});function Yc(e){if(e===``)return!0;if(/\s/.test(e)||e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}var Xc=N(`$ZodBase64`,(e,t)=>{t.pattern??=Fs,xc.init(e,t),e._zod.bag.contentEncoding=`base64`,e._zod.check=n=>{Yc(n.value)||n.issues.push({code:`invalid_format`,format:`base64`,input:n.value,inst:e,continue:!t.abort})}});function Zc(e){if(!Is.test(e))return!1;let t=e.replace(/[-_]/g,e=>e===`-`?`+`:`/`);return Yc(t.padEnd(Math.ceil(t.length/4)*4,`=`))}var Qc=N(`$ZodBase64URL`,(e,t)=>{t.pattern??=Is,xc.init(e,t),e._zod.bag.contentEncoding=`base64url`,e._zod.check=n=>{Zc(n.value)||n.issues.push({code:`invalid_format`,format:`base64url`,input:n.value,inst:e,continue:!t.abort})}}),$c=N(`$ZodE164`,(e,t)=>{t.pattern??=Rs,xc.init(e,t)});function el(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 tl=N(`$ZodJWT`,(e,t)=>{xc.init(e,t),e._zod.check=n=>{el(n.value,t.alg)||n.issues.push({code:`invalid_format`,format:`jwt`,input:n.value,inst:e,continue:!t.abort})}}),nl=N(`$ZodNumber`,(e,t)=>{_c.init(e,t),e._zod.pattern=e._zod.bag.pattern??qs,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:String(i):void 0;return n.issues.push({expected:`number`,code:`invalid_type`,input:i,inst:e,...a?{received:a}:{}}),n}}),rl=N(`$ZodNumberFormat`,(e,t)=>{rc.init(e,t),nl.init(e,t)}),il=N(`$ZodBoolean`,(e,t)=>{_c.init(e,t),e._zod.pattern=Js,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}}),al=N(`$ZodUnknown`,(e,t)=>{_c.init(e,t),e._zod.parse=e=>e}),ol=N(`$ZodNever`,(e,t)=>{_c.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:`never`,code:`invalid_type`,input:t.value,inst:e}),t)});function sl(e,t,n){e.issues.length&&t.issues.push(...go(n,e.issues)),t.value[n]=e.value}var cl=N(`$ZodArray`,(e,t)=>{_c.init(e,t);let n=Uo.memoizer;n?.attach(e),e._zod.parse=(r,i)=>{let a=r.value;if(!Array.isArray(a))return r.issues.push({expected:`array`,code:`invalid_type`,input:a,inst:e}),r;r.value=n?n.alloc(e,r,Array(a.length),i):Array(a.length);let o=[];for(let e=0;e<a.length;e++){let n=a[e],s=t.element._zod.run({value:n,issues:[]},i);s instanceof Promise?o.push(s.then(t=>sl(t,r,e))):sl(s,r,e)}return o.length?Promise.all(o).then(()=>r):r}});function ll(e,t,n,r,i,a){let o=n in r,s=a===`optional`;if(o||!s||i!==`optional`){if(e.issues.length){if(i!==void 0&&s&&!o)return;t.issues.push(...go(n,e.issues))}if(!o&&i===void 0){e.issues.length||t.issues.push({code:`invalid_type`,expected:`nonoptional`,input:void 0,path:[n]});return}e.value===void 0?o&&(t.value[n]=void 0):t.value[n]=e.value}}var ul=[];function dl(e){let t=Object.keys(e.shape),n=Object.getOwnPropertySymbols(e.shape),r=n.length?n:ul,i=r.length?[...t,...r]:t;for(let t of i)if(!e.shape?.[t]?._zod?.traits?.has(`$ZodType`))throw Error(`Invalid element at key "${String(t)}": expected a Zod schema`);let a=io(e.shape);return{...e,allKeys:i,symbolKeys:r,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(a)}}function fl(e,t,n,r,i,a){let o=[],s=i.keySet,c=i.catchall._zod,l=c.def.type,u=c.optin,d=c.optout;for(let i in t){if(s.has(i))continue;if(i===`__proto__`){l===`never`&&o.push(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=>ll(e,n,i,t,u,d))):ll(a,n,i,t,u,d)}return o.length&&n.issues.push({code:`unrecognized_keys`,keys:o,input:t,inst:a,continue:!0}),e.length?Promise.all(e).then(()=>n):n}var pl=new WeakMap,ml=N(`$ZodObject`,(e,t)=>{if(_c.init(e,t),!Object.getOwnPropertyDescriptor(t,`shape`)?.get){let e=t.shape;pl.set(t,e),Object.defineProperty(t,"shape",{get:()=>{let n={...e};return Object.defineProperty(t,"shape",{value:n}),pl.set(t,n),n}})}let n=Ra(()=>dl(t));No(e,`propValues`,e=>{let t=e.def.shape,n={};for(let e in t){let r=t[e]._zod;if(r.values){Object.prototype.hasOwnProperty.call(n,e)||Wa(n,e,new Set);for(let t of r.values)n[e].add(t);r.optin!==void 0&&n[e].add(void 0)}}return n});let r=Ya,i=t.catchall,a,o=Uo.memoizer;o?.attach(e),e._zod.parse=(t,s)=>{a??=n.value;let c=t.value;if(!r(c))return t.issues.push({expected:`object`,code:`invalid_type`,input:c,inst:e}),t;t.value=o?o.alloc(e,t,{},s):{};let l=[],u=a.shape;for(let e of a.allKeys){if(e===`__proto__`)continue;let n=u[e],r=n._zod.optin,i=n._zod.optout,a=n._zod.run({value:c[e],issues:[]},s);a instanceof Promise?l.push(a.then(n=>ll(n,t,e,c,r,i))):ll(a,t,e,c,r,i)}return i?fl(l,c,t,s,n.value,e):l.length?Promise.all(l).then(()=>t):t}}),hl=N(`$ZodObjectJIT`,(e,t)=>{ml.init(e,t);let n=e._zod.parse,r=Ra(()=>dl(t)),i=Uo.memoizer,a=t=>{let n=r.value,a=n.symbolKeys,o=new hc([`payload`,`ctx`],{shape:t,inst:e,memo:i,syms:a}),s=e=>`shape[${e}]._zod.run({ value: input[${e}], issues: [] }, ctx)`,c=(e,t)=>`
12
+ for (let i = 0; i < ${e}.issues.length; i++) {
13
+ const iss = ${e}.issues[i];
14
+ iss.path = iss.path ? [${t}, ...iss.path] : [${t}];
15
+ payload.issues.push(iss);
16
+ }`;o.write(`const input = payload.value;`);let l=Object.create(null),u=0;for(let e of n.allKeys)l[e]=`key_${u++}`;o.write(i?`const newResult = memo.alloc(inst, payload, {}, ctx);`:`const newResult = {};`);for(let e of n.allKeys){if(e===`__proto__`)continue;let n=l[e],r=typeof e==`symbol`?`syms[${a.indexOf(e)}]`:Ka(e),i=`${r} in input`,u=t[e],d=u?._zod?.optin,f=d!==void 0,p=u?._zod?.optout===`optional`;if(o.write(`const ${n} = ${s(r)};`),f&&p){let e=d===`optional`?`${n}_present`:`${n}.value !== undefined || ${n}_present`;o.write(`
17
+ const ${n}_present = ${i};
18
+ if (!${n}.issues.length || ${n}_present) {
19
+ if (${n}.issues.length) {${c(n,r)}
20
+ }
21
+
22
+ if (${e}) {
23
+ newResult[${r}] = ${n}.value;
24
+ }
25
+ }
26
+
27
+ `)}else f?o.write(`
28
+ if (${n}.issues.length) {${c(n,r)}
29
+ }
30
+
31
+ if (${n}.value === undefined) {
32
+ if (${i}) {
33
+ newResult[${r}] = undefined;
34
+ }
35
+ } else {
36
+ newResult[${r}] = ${n}.value;
37
+ }
38
+
39
+ `):o.write(`
40
+ const ${n}_present = ${i};
41
+ if (${n}.issues.length) {${c(n,r)}
42
+ }
43
+ if (!${n}_present && !${n}.issues.length) {
44
+ payload.issues.push({
45
+ code: "invalid_type",
46
+ expected: "nonoptional",
47
+ input: undefined,
48
+ path: [${r}]
49
+ });
50
+ }
51
+
52
+ if (${n}_present) {
53
+ newResult[${r}] = ${n}.value;
54
+ }
55
+
56
+ `)}return o.write(`payload.value = newResult;`),o.write(`return payload;`),o.compile()},o,s=Ya,c=!Uo.jitless,l=c&&Xa.value,u=t.catchall,d;e._zod.parse=(i,f)=>{d??=r.value;let p=i.value;return s(p)?c&&l&&f?.async===!1&&f.jitless!==!0?(o||=a(t.shape),i=o(i,f),u?fl([],p,i,f,d,e):i):n(i,f):(i.issues.push({expected:`object`,code:`invalid_type`,input:p,inst:e}),i)}});function gl(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=>!mo(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=>yo(e,r,Wo())))}),t)}var _l=N(`$ZodUnion`,(e,t)=>{_c.init(e,t),No(e,`optin`,e=>e.def.options.some(e=>e._zod.optin===`defaulted`)?`defaulted`:e.def.options.some(e=>e._zod.optin!==void 0)?`optional`:void 0),No(e,`optout`,e=>e.def.options.some(e=>e._zod.optout===`optional`)?`optional`:void 0),No(e,`values`,e=>{if(e.def.options.every(e=>e._zod.values))return new Set(e.def.options.flatMap(e=>Array.from(e._zod.values)))}),No(e,`pattern`,e=>{if(e.def.options.every(e=>e._zod.pattern)){let t=e.def.options.map(e=>e._zod.pattern);return RegExp(`^(${t.map(e=>Ba(e.source)).join(`|`)})$`)}});let n=t.options.length===1?t.options[0]._zod.run:null;e._zod.parse=(r,i)=>{if(n)return n(r,i);let a=!1,o=[];for(let e of t.options){let t=e._zod.run({value:r.value,issues:[]},i);if(t instanceof Promise)o.push(t),a=!0;else{if(t.issues.length===0)return t;o.push(t)}}return a?Promise.all(o).then(t=>gl(t,r,e,i)):gl(o,r,e,i)}}),vl=N(`$ZodDiscriminatedUnion`,(e,t)=>{t.inclusive=!1,_l.init(e,t);let n=e._zod.parse;No(e,`propValues`,e=>{let t={};for(let n of e.def.options){let r=n._zod.propValues;if(!r||Object.keys(r).length===0)throw Error(`Invalid discriminated union option at index "${e.def.options.indexOf(n)}"`);for(let[e,n]of Object.entries(r)){Object.prototype.hasOwnProperty.call(t,e)||Wa(t,e,new Set);for(let r of n)t[e].add(r)}}return t}),t.options.forEach((e,n)=>{let r=pl.get(e._zod.def);if(r&&!Object.prototype.hasOwnProperty.call(r,t.discriminator))throw Error(`Invalid discriminated union option at index "${n}"`)});let r=Ra(()=>{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(!Ya(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||a.direction===`backward`?n(i,a):(i.issues.push({code:`invalid_union`,errors:[],note:`No matching discriminator`,discriminator:t.discriminator,options:Array.from(r.value.keys()),input:o,path:[t.discriminator],inst:e}),i)}}),yl=N(`$ZodIntersection`,(e,t)=>{_c.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])=>xl(e,t,n)):xl(e,i,a)}});function bl(e,t){if(e===t||e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(Za(e)&&Za(t)){let n=Object.keys(t),r=Object.keys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};Object.prototype.hasOwnProperty.call(i,`__proto__`)&&delete i.__proto__;for(let n of r){if(n===`__proto__`)continue;let r=bl(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=bl(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 xl(e,t,n){let r=new Map,i,a=new Map,o=(e,t)=>{let n;if(e.code===`unrecognized_keys`&&!e.path?.length)i??=e,n=e.keys;else if(e.code===`invalid_key`&&e.origin===`record`&&e.path?.length===1){let t=String(e.path[0]);a.has(t)||a.set(t,e),n=[t]}else return!1;for(let e of n)r.has(e)||r.set(e,{}),r.get(e)[t]=!0;return!0};for(let n of t.issues)o(n,`l`)||e.issues.push(n);for(let t of n.issues)o(t,`r`)||e.issues.push(t);let s=[...r].filter(([,e])=>e.l&&e.r).map(([e])=>e);if(s.length){let t=i?s.filter(e=>i.keys.includes(e)):[];t.length&&e.issues.push({...i,keys:t});for(let n of s)!t.includes(n)&&a.has(n)&&e.issues.push(a.get(n))}let c=bl(t.value,n.value);if(!c.valid){if(mo(e))return e;throw Error(`Unmergable intersection. Error path: ${JSON.stringify(c.mergeErrorPath)}`)}return e.value=c.data,e}var Sl=N(`$ZodRecord`,(e,t)=>{_c.init(e,t);let n=Uo.memoizer;n?.attach(e),e._zod.parse=(r,i)=>{let a=r.value;if(!Za(a))return r.issues.push({expected:`record`,code:`invalid_type`,input:a,inst:e}),r;let o=[],s=t.keyType._zod.values;if(s&&!t.partial){r.value=n?n.alloc(e,r,{},i):{};let c=new Set;for(let n of s)if(typeof n==`string`||typeof n==`number`||typeof n==`symbol`){if(c.add(typeof n==`number`?n.toString():n),n===`__proto__`)continue;let s=t.keyType._zod.run({value:n,issues:[]},i);if(s instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);if(s.issues.length){r.issues.push({code:`invalid_key`,origin:`record`,issues:s.issues.map(e=>yo(e,i,Wo())),input:n,path:[n],inst:e});continue}let l=s.value;if(l===`__proto__`)continue;let u=t.valueType._zod.run({value:a[n],issues:[]},i);u instanceof Promise?o.push(u.then(e=>{e.issues.length&&r.issues.push(...go(n,e.issues)),r.value[l]=e.value})):(u.issues.length&&r.issues.push(...go(n,u.issues)),r.value[l]=u.value)}let l;for(let e in a)if(!c.has(e)){if(t.mode===`loose`){if(e===`__proto__`)continue;r.value[e]=a[e]}else l??=[],l.push(e)}l&&l.length>0&&r.issues.push({code:`unrecognized_keys`,input:a,inst:e,keys:l,continue:!0})}else{r.value=n?n.alloc(e,r,{},i):{};let c;for(let n of Reflect.ownKeys(a)){if(n===`__proto__`||!Object.prototype.propertyIsEnumerable.call(a,n))continue;let l=t.keyType._zod.run({value:n,issues:[]},i);if(l instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);if(typeof n==`string`&&qs.test(n)&&l.issues.length){let e=t.keyType._zod.run({value:Number(n),issues:[]},i);if(e instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);e.issues.length===0&&(l=e)}if(l.issues.length){t.mode===`loose`?r.value[n]=a[n]:s?(c??=[],c.push(n)):r.issues.push({code:`invalid_key`,origin:`record`,issues:l.issues.map(e=>yo(e,i,Wo())),input:n,path:[n],inst:e});continue}let u=l.value;if(u===`__proto__`)continue;let d=t.valueType._zod.run({value:a[n],issues:[]},i);d instanceof Promise?o.push(d.then(e=>{e.issues.length&&r.issues.push(...go(n,e.issues)),r.value[u]=e.value})):(d.issues.length&&r.issues.push(...go(n,d.issues)),r.value[u]=d.value)}c&&c.length>0&&r.issues.push({code:`unrecognized_keys`,input:a,inst:e,keys:c,continue:!0})}return o.length?Promise.all(o).then(()=>r):r}}),Cl=N(`$ZodEnum`,(e,t)=>{_c.init(e,t);let n=Fa(t.entries),r=new Set(n);e._zod.values=r;let i=n.filter(e=>$a.has(typeof e));e._zod.pattern=RegExp(i.length?`^(${i.map(e=>eo(e.toString())).join(`|`)})$`:`^[^\\s\\S]$`),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}}),wl=N(`$ZodLiteral`,(e,t)=>{_c.init(e,t);let n=new Set(t.values);e._zod.values=n,e._zod.pattern=RegExp(t.values.length?`^(${t.values.map(e=>typeof e==`string`?eo(e):e?eo(e.toString()):String(e)).join(`|`)})$`:`^[^\\s\\S]$`),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}}),Tl=N(`$ZodTransform`,(e,t)=>{_c.init(e,t),e._zod.optin=`optional`,Uo.memoizer?.guard(e),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new Ho(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 Vo;return n.value=i,n}});function El(e,t){return e.value=t.issues.length?void 0:t.value,e}var Dl=N(`$ZodOptional`,(e,t)=>{_c.init(e,t),No(e,`optin`,e=>e.def.innerType._zod.optin===`defaulted`?`defaulted`:`optional`),e._zod.optout=`optional`,No(e,`values`,e=>{let t=e.def.innerType._zod.values;return t?new Set([...t,void 0]):void 0}),No(e,`pattern`,e=>{let t=e.def.innerType._zod.pattern;return t?RegExp(`^(${Ba(t.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if(e.value===void 0){if(t.innerType._zod.optin!==`defaulted`)return e;let r=t.innerType._zod.run({value:e.value,issues:[]},n);return r instanceof Promise?r.then(t=>El(e,t)):El(e,r)}return t.innerType._zod.run(e,n)}}),Ol=N(`$ZodExactOptional`,(e,t)=>{Dl.init(e,t),No(e,`values`,e=>e.def.innerType._zod.values),No(e,`pattern`,e=>e.def.innerType._zod.pattern),e._zod.parse=(e,n)=>t.innerType._zod.run(e,n)}),kl=N(`$ZodNullable`,(e,t)=>{_c.init(e,t),No(e,`optin`,e=>e.def.innerType._zod.optin),No(e,`optout`,e=>e.def.innerType._zod.optout),No(e,`pattern`,e=>{let t=e.def.innerType._zod.pattern;return t?RegExp(`^(${Ba(t.source)}|null)$`):void 0}),No(e,`values`,e=>e.def.innerType._zod.values?new Set([...e.def.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>e.value===null?e:t.innerType._zod.run(e,n)}),Al=N(`$ZodDefault`,(e,t)=>{_c.init(e,t),e._zod.optin=`defaulted`,No(e,`values`,e=>e.def.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=>jl(e,t)):jl(r,t)}});function jl(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var Ml=N(`$ZodPrefault`,(e,t)=>{_c.init(e,t),e._zod.optin=`defaulted`,No(e,`values`,e=>e.def.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))}),Nl=N(`$ZodNonOptional`,(e,t)=>{_c.init(e,t),No(e,`values`,e=>{let t=e.def.innerType._zod.values;return t?new Set([...t].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=>Pl(t,e)):Pl(i,e)}});function Pl(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:`invalid_type`,expected:`nonoptional`,input:e.value,inst:t}),e}function Fl(e,t,n,r){return t.issues.length?(e.value=n.catchValue({...t,value:e.value,error:{issues:t.issues.map(e=>yo(e,r,Wo()))},input:e.value}),e):(e.value=t.value,t.memo&&(e.memo=!0),e)}var Il=N(`$ZodCatch`,(e,t)=>{_c.init(e,t),No(e,`optin`,e=>e.def.innerType._zod.optin===`defaulted`?`defaulted`:`optional`),No(e,`optout`,e=>e.def.innerType._zod.optout),No(e,`values`,e=>e.def.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({value:e.value,issues:[]},n);return r instanceof Promise?r.then(r=>Fl(e,r,t,n)):Fl(e,r,t,n)}}),Ll=N(`$ZodPipe`,(e,t)=>{_c.init(e,t),No(e,`values`,e=>e.def.in._zod.values),No(e,`optin`,e=>e.def.in._zod.optin),No(e,`optout`,e=>e.def.out._zod.optout),No(e,`propValues`,e=>e.def.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=>Rl(e,t.in,n)):Rl(r,t.in,n)}let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>Rl(e,t.out,n)):Rl(r,t.out,n)}});function Rl(e,t,n){return e.issues.some(e=>e.code!==`unrecognized_keys`)?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}var zl=N(`$ZodReadonly`,(e,t)=>{_c.init(e,t),No(e,`propValues`,e=>e.def.innerType._zod.propValues),No(e,`values`,e=>e.def.innerType._zod.values),No(e,`optin`,e=>e.def.innerType?._zod?.optin),No(e,`optout`,e=>e.def.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(Bl):Bl(r)}});function Bl(e){return e.memo||(e.value=Object.freeze(e.value)),e}var Vl=N(`$ZodLazy`,(e,t)=>{_c.init(e,t),Ua(e._zod,`innerType`,()=>{let e=t;return e._cachedInner||=t.getter(),e._cachedInner}),No(e,`pattern`,e=>e.innerType?._zod?.pattern),No(e,`propValues`,e=>e.innerType?._zod?.propValues),No(e,`optin`,e=>e.innerType?._zod?.optin??void 0),No(e,`optout`,e=>e.innerType?._zod?.optout??void 0),e._zod.parse=(t,n)=>e._zod.innerType._zod.run(t,n)}),Hl=N(`$ZodCustom`,(e,t)=>{Zs.init(e,t),_c.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=>Ul(t,n,r,e));Ul(i,n,r,e)}});function Ul(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(wo(e))}}var Wl=class extends Error{constructor(){super(`Cannot parse a reference cycle that closes through a transform`),this.name=`ZodCyclicError`}},Gl=`~memo`,Kl=[];function ql(e){return e.map(e=>e.path?{...e,path:e.path.slice()}:{...e})}var Jl=new WeakMap;function Yl(e,t){let n=Jl.get(e);if(n!==void 0)return n;if(t.has(e))return!0;t.add(e);let r=!1,i=e=>{!r&&e?._zod&&Yl(e,t)&&(r=!0)},a=e._zod.def;switch(a.type){case`object`:for(let e of Reflect.ownKeys(a.shape))i(a.shape[e]);i(a.catchall);break;case`array`:i(a.element);break;case`tuple`:for(let e of a.items)i(e);i(a.rest);break;case`record`:case`map`:i(a.keyType),i(a.valueType);break;case`set`:i(a.valueType);break;case`union`:for(let e of a.options)i(e);break;case`intersection`:i(a.left),i(a.right);break;case`optional`:case`nullable`:case`default`:case`prefault`:case`catch`:case`readonly`:case`nonoptional`:case`promise`:case`success`:i(a.innerType);break;case`pipe`:i(a.in),i(a.out);break;case`function`:i(a.input),i(a.output);break;case`lazy`:i(e._zod.innerType);break;case`template_literal`:case`string`:case`number`:case`int`:case`boolean`:case`bigint`:case`symbol`:case`undefined`:case`null`:case`void`:case`never`:case`any`:case`unknown`:case`date`:case`nan`:case`enum`:case`literal`:case`file`:case`transform`:case`custom`:break;default:for(let e in a){let t=Object.getOwnPropertyDescriptor(a,e);if(!t||t.get)continue;let n=t.value;if(n&&typeof n==`object`){if(n._zod)i(n);else if(Array.isArray(n))for(let e of n)i(e)}}}return t.delete(e),Jl.set(e,r),r}function Xl(e,t){let n=e.buckets.get(t);return n||(n=new Map,e.buckets.set(t,n)),n}var Zl,Ql=[],$l={alloc(e,t,n){let r=Zl;if(!r)return n;Zl=void 0;let i={value:n,issues:null};return r.set(t.value,i),Ql.push(i),n},guard(e){var t;(t=e._zod).deferred??(t.deferred=[]),e._zod.deferred.push(()=>{let t=e._zod.parse,n=(e,n)=>{if(n.direction!==`backward`&&tu(n,e.value))throw new Wl;return t(e,n)};e._zod.parse=n,e._zod.run===t&&(e._zod.run=n)})},attach(e){var t;let n,r,i;(t=e._zod).deferred??(t.deferred=[]),e._zod.deferred.push(()=>{let t=e._zod.parse,a=(o,s)=>{if(n===void 0&&(n=Yl(e,new Set),!n))return e._zod.parse=t,e._zod.run===a&&(e._zod.run=t),t(o,s);let c=o.value;if(typeof c!=`object`||!c)return t(o,s);let l=s[Gl];l||(l={buckets:new Map,backEdges:void 0},s[Gl]=l);let u;r===s?u=i:(u=Xl(l,e),r=s,i=u);let d=u.get(c);if(d)return o.value=d.value,d.issues?d.issues.length&&o.issues.push(...ql(d.issues)):(o.memo=!0,l.backEdges??(l.backEdges=new Set),l.backEdges.add(d.value)),o;Zl=u;let f=Ql.length,p=t(o,s);Zl=void 0;let m=Ql.length>f?Ql.pop():void 0;return p instanceof Promise?p.then(e=>(m&&(m.issues=e.issues.length?ql(e.issues):Kl),e)):(m&&(m.issues=p.issues.length?ql(p.issues):Kl),p)};e._zod.parse=a,e._zod.run===t&&(e._zod.run=a)})}};function eu(){return $l}function tu(e,t){let n=e[Gl]?.backEdges;return n!==void 0&&typeof t==`object`&&!!t&&n.has(t)}var nu=()=>{let e={string:{unit:`characters`,verb:`to have`},file:{unit:`bytes`,verb:`to have`},array:{unit:`items`,verb:`to have`},set:{unit:`items`,verb:`to have`},map:{unit:`entries`,verb:`to have`}};function t(t){return e[t]??null}let n={regex:`input`,email:`email address`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO datetime`,date:`ISO date`,time:`ISO time`,duration:`ISO duration`,ipv4:`IPv4 address`,ipv6:`IPv6 address`,mac:`MAC address`,cidrv4:`IPv4 range`,cidrv6:`IPv6 range`,base64:`base64-encoded string`,base64url:`base64url-encoded string`,json_string:`JSON string`,e164:`E.164 number`,credit_card:`credit card number`,jwt:`JWT`,template_literal:`input`},r={nan:`NaN`};function i(e,t){return e===`number`&&typeof t==`number`&&!Number.isFinite(t)?String(t):r[e]??e}return e=>{switch(e.code){case`invalid_type`:return`Invalid input: expected ${i(e.expected)}, received ${i(Co(e.input),e.input)}`;case`invalid_value`:return e.values.length===1?`Invalid input: expected ${ro(e.values[0])}`:`Invalid option: expected one of ${Ia(e.values,`|`)}`;case`too_big`:{let n=e.exact?`exactly `:e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Too big: expected ${e.origin??`value`} to have ${n}${e.maximum.toString()} ${r.unit??`elements`}`:`Too big: expected ${e.origin??`value`} to be ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.exact?`exactly `:e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Too small: expected ${e.origin} to have ${n}${e.minimum.toString()} ${r.unit}`:`Too small: expected ${e.origin} to be ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Invalid string: must start with "${t.prefix}"`:t.format===`ends_with`?`Invalid string: must end with "${t.suffix}"`:t.format===`includes`?`Invalid string: must include "${t.includes}"`:t.format===`regex`?`Invalid string: must match pattern ${t.pattern}`:`Invalid ${n[t.format]??e.format}`}case`not_multiple_of`:return`Invalid number: must be a multiple of ${e.divisor}`;case`unrecognized_keys`:return`Unrecognized key${e.keys.length>1?`s`:``}: ${Ia(e.keys,`, `)}`;case`invalid_key`:return`Invalid key in ${e.origin}`;case`invalid_union`:return e.options&&Array.isArray(e.options)&&e.options.length>0?`Invalid discriminator value. Expected ${e.options.map(e=>`'${e}'`).join(` | `)}`:e.inclusive===!1?`Invalid input: more than one option matched`:`Invalid input`;case`invalid_element`:return`Invalid value in ${e.origin}`;default:return`Invalid input`}}};function ru(){return{localeError:nu()}}var iu,au=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 ou(){return new au}(iu=globalThis).__zod_globalRegistry??(iu.__zod_globalRegistry=ou());var su=globalThis.__zod_globalRegistry;function cu(e,t){return new e({type:`string`,...no(t)})}function lu(e,t){return new e({type:`string`,format:`email`,check:`string_format`,abort:!1,...no(t)})}function uu(e,t){return new e({type:`string`,format:`guid`,check:`string_format`,abort:!1,...no(t)})}function du(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,...no(t)})}function fu(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v4`,...no(t)})}function pu(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v6`,...no(t)})}function mu(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v7`,...no(t)})}function hu(e,t){return new e({type:`string`,format:`url`,check:`string_format`,abort:!1,...no(t)})}function gu(e,t){return new e({type:`string`,format:`emoji`,check:`string_format`,abort:!1,...no(t)})}function _u(e,t){return new e({type:`string`,format:`nanoid`,check:`string_format`,abort:!1,...no(t)})}function vu(e,t){return new e({type:`string`,format:`cuid`,check:`string_format`,abort:!1,...no(t)})}function yu(e,t){return new e({type:`string`,format:`cuid2`,check:`string_format`,abort:!1,...no(t)})}function bu(e,t){return new e({type:`string`,format:`ulid`,check:`string_format`,abort:!1,...no(t)})}function xu(e,t){return new e({type:`string`,format:`xid`,check:`string_format`,abort:!1,...no(t)})}function Su(e,t){return new e({type:`string`,format:`ksuid`,check:`string_format`,abort:!1,...no(t)})}function Cu(e,t){return new e({type:`string`,format:`ipv4`,check:`string_format`,abort:!1,...no(t)})}function wu(e,t){return new e({type:`string`,format:`ipv6`,check:`string_format`,abort:!1,...no(t)})}function Tu(e,t){return new e({type:`string`,format:`cidrv4`,check:`string_format`,abort:!1,...no(t)})}function Eu(e,t){return new e({type:`string`,format:`cidrv6`,check:`string_format`,abort:!1,...no(t)})}function Du(e,t){return new e({type:`string`,format:`base64`,check:`string_format`,abort:!1,...no(t)})}function Ou(e,t){return new e({type:`string`,format:`base64url`,check:`string_format`,abort:!1,...no(t)})}function ku(e,t){return new e({type:`string`,format:`e164`,check:`string_format`,abort:!1,...no(t)})}function Au(e,t){return new e({type:`string`,format:`jwt`,check:`string_format`,abort:!1,...no(t)})}function ju(e,t){return new e({type:`string`,format:`datetime`,check:`string_format`,offset:!1,local:!1,precision:null,...no(t)})}function Mu(e,t){return new e({type:`string`,format:`date`,check:`string_format`,...no(t)})}function Nu(e,t){return new e({type:`string`,format:`time`,check:`string_format`,precision:null,...no(t)})}function Pu(e,t){return new e({type:`string`,format:`duration`,check:`string_format`,...no(t)})}function Fu(e,t){return new e({type:`number`,checks:[],...no(t)})}function Iu(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`safeint`,...no(t)})}function Lu(e,t){return new e({type:`boolean`,...no(t)})}function Ru(e){return new e({type:`unknown`})}function zu(e,t){return new e({type:`never`,...no(t)})}function Bu(e,t){return new ec({check:`less_than`,...no(t),value:e,inclusive:!1})}function Vu(e,t){return new ec({check:`less_than`,...no(t),value:e,inclusive:!0})}function Hu(e,t){return new tc({check:`greater_than`,...no(t),value:e,inclusive:!1})}function Uu(e,t){return new tc({check:`greater_than`,...no(t),value:e,inclusive:!0})}function Wu(e,t){return new nc({check:`multiple_of`,...no(t),value:e})}function Gu(e,t){return new ic({check:`max_length`,...no(t),maximum:e})}function Ku(e,t){return new ac({check:`min_length`,...no(t),minimum:e})}function qu(e,t){return new oc({check:`length_equals`,...no(t),length:e})}function Ju(e,t){return new cc({check:`string_format`,format:`regex`,...no(t),pattern:e})}function Yu(e){return new lc({check:`string_format`,format:`lowercase`,...no(e)})}function Xu(e){return new uc({check:`string_format`,format:`uppercase`,...no(e)})}function Zu(e,t){return new dc({check:`string_format`,format:`includes`,...no(t),includes:e})}function Qu(e,t){return new fc({check:`string_format`,format:`starts_with`,...no(t),prefix:e})}function $u(e,t){return new pc({check:`string_format`,format:`ends_with`,...no(t),suffix:e})}function ed(e){return new mc({check:`overwrite`,tx:e})}function td(e){return ed(t=>t.normalize(e))}function nd(){return ed(e=>e.trim())}function rd(){return ed(e=>e.toLowerCase())}function id(){return ed(e=>e.toUpperCase())}function ad(){return ed(e=>qa(e))}function od(e,t,n){return new e({type:`array`,element:t,...no(n)})}function sd(e,t,n){return new e({type:`custom`,check:`custom`,fn:t,...no(n)})}function cd(e,t){let n=ld(t=>(t.addIssue=e=>{if(typeof e==`string`)t.issues.push(wo(e,t.value,n._zod.def));else{let r=e;r.fatal&&(r.continue=!1),r.code??=`custom`,`input`in r||(r.input=t.value),r.inst??=n,r.continue??=!n._zod.def.abort,t.issues.push(wo(r))}},e(t.value,t)),t);return n}function ld(e,t){let n=new Zs({check:`custom`,...no(t)});return n._zod.check=e,n}function ud(e,...t){for(let n of t)for(let t of Reflect.ownKeys(n))Object.prototype.propertyIsEnumerable.call(n,t)&&Wa(e,t,n[t]);return e}function dd(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??su,target:t,unrepresentable:e?.unrepresentable??`throw`,override:e?.override??(()=>{}),io:e?.io??`output`,counter:0,seen:new Map,sharedDefsExtractedFor:void 0,sharedEmitDoneFor:void 0,cycles:e?.cycles??`ref`,reused:e?.reused??`inline`,intersections:[],deferred:[],external:e?.external??void 0}}function fd(e,t,n,r,i){let a=typeof t.unrepresentable==`function`?t.unrepresentable({zodSchema:e,path:r.path,message:i}):t.unrepresentable;if(a===`any`)return!1;if(a===void 0||a===`throw`)throw Error(i);return Object.assign(n,a),!0}function pd(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),t.sharedDefsExtractedFor=void 0,t.sharedEmitDoneFor=void 0;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,pd(a,t,r),t.seen.get(a).isParent=!0)}let c=t.metadataRegistry.get(e);return c&&ud(o.schema,c),t.io===`input`&&Cd(e)&&(delete o.schema.examples,delete o.schema.default),t.io===`input`&&`_prefault`in o.schema&&((r=o.schema).default??(r.default=o.schema._prefault)),delete o.schema._prefault,t.seen.get(e).schema}function md(e){return e.replace(/~/g,`~0`).replace(/\//g,`~1`)}function hd(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);if(e.external&&e.sharedDefsExtractedFor===e.external)return;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}/${md(a)}`}}let i=`#/${r}/`;if(t[1]===n&&!t[1].schema.id)return{ref:`#`};let a=t[1].schema.id??`__schema${e.counter++}`;return{defId:a,ref:i+md(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>
57
+
58
+ 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}}e.external&&(e.sharedDefsExtractedFor=e.external)}function gd(e){let t=e.anyOf;if(!Array.isArray(t)||t.length===0||e.type!==void 0)return;let n=[];for(let e of t){if(!e||typeof e!=`object`)return;gd(e);let t=Object.keys(e);if(t.length!==1||t[0]!==`type`)return;let r=e.type;for(let e of Array.isArray(r)?r:[r]){if(typeof e!=`string`)return;n.includes(e)||n.push(e)}}delete e.anyOf,e.type=n.length===1?n[0]:n}var _d=new Set([`type`,`properties`,`required`,`additionalProperties`]),vd=[`oneOf`,`anyOf`];function yd(e){let t=e.additionalProperties;return t===void 0||t===!1||typeof t!=`object`||!t?null:Object.keys(t).length?t:null}function bd(e){let t=[];for(let n of e){if(typeof n!=`object`||n.type!==`object`)return null;for(let e in n)if(!_d.has(e))return null;t.push(n)}let n={},r=new Set;for(let e of t){for(let r in e.properties){if(Object.prototype.hasOwnProperty.call(n,r))continue;let e=[];for(let n of t){let t=n.properties?.[r]??yd(n);t!=null&&(e.some(e=>JSON.stringify(e)===JSON.stringify(t))||e.push(t))}Wa(n,r,e.length===1?e[0]:bd(e)??{allOf:e})}for(let t of e.required??[])r.add(t)}let i={type:`object`,properties:n};if(r.size&&(i.required=[...r]),t.every(e=>e.additionalProperties===!1))i.additionalProperties=!1;else{let e=[];for(let n of t){let t=yd(n);t&&!e.some(e=>JSON.stringify(e)===JSON.stringify(t))&&e.push(t)}e.length===1?i.additionalProperties=e[0]:e.length>1&&(i.additionalProperties={allOf:e})}return i}function xd(e){let t=e.allOf;if(!Array.isArray(t)||t.length<2)return;for(let t of _d)if(t in e)return;let n=t.filter(e=>vd.some(t=>Array.isArray(e[t]))),r=null;if(!n.length)r=bd(t);else{let e=n[0],i=vd.find(t=>Array.isArray(e[t]));if(Object.keys(e).length!==1)return;let a=t.filter(t=>t!==e),o=e[i].map(e=>bd([...a,e]));if(o.some(e=>!e))return;r={[i]:o}}r&&(delete e.allOf,ud(e,r))}function Sd(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)):ud(i,s),ud(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??[]})};if(!e.external||e.sharedEmitDoneFor!==e.external){for(let t of[...e.seen.entries()].reverse())r(t[0]);if(e.target!==`openapi-3.0`)for(let t of e.seen.entries())gd(t[1].def??t[1].schema);for(let t of e.deferred)t();if(e.intersections.length){let t=new Map;for(let n of e.seen.values())for(let e of[n.schema,n.def]){let n=e?.allOf;if(!Array.isArray(n))continue;let r=t.get(n);r?r.push(e):t.set(n,[e])}for(let n of e.intersections)for(let e of t.get(n)??[])xd(e)}}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)}ud(i,n.defId?n.schema:n.def??n.schema);let a=e.metadataRegistry.get(t)?.id;a!==void 0&&i.id===a&&delete i.id;let o=e.external?.defs??{};if(!e.external||e.sharedEmitDoneFor!==e.external)for(let t of e.seen.entries()){let e=t[1];e.def&&e.defId&&(e.def.id===e.defId&&delete e.def.id,Wa(o,e.defId,e.def))}e.external&&(e.sharedEmitDoneFor=e.external),e.external||Object.keys(o).length>0&&(e.target===`draft-2020-12`?i.$defs=o:i.definitions=o);try{let n=JSON.parse(JSON.stringify(i));return Object.defineProperty(n,"~standard",{value:{...t[`~standard`],jsonSchema:{input:Td(t,`input`,e.processors),output:Td(t,`output`,e.processors)}},enumerable:!1,writable:!1}),n}catch{throw Error(`Error converting schema to JSON.`)}}function Cd(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 Cd(r.element,n);if(r.type===`set`)return Cd(r.valueType,n);if(r.type===`lazy`)return Cd(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`||r.type===`catch`)return Cd(r.innerType,n);if(r.type===`intersection`)return Cd(r.left,n)||Cd(r.right,n);if(r.type===`record`||r.type===`map`)return Cd(r.keyType,n)||Cd(r.valueType,n);if(r.type===`pipe`)return e._zod.traits.has(`$ZodCodec`)?!0:Cd(r.in,n)||Cd(r.out,n);if(r.type===`object`){for(let e in r.shape)if(Cd(r.shape[e],n))return!0;return!1}if(r.type===`union`){for(let e of r.options)if(Cd(e,n))return!0;return!1}if(r.type===`tuple`){for(let e of r.items)if(Cd(e,n))return!0;return!!(r.rest&&Cd(r.rest,n))}return!1}var wd=(e,t={})=>n=>{let r=dd({...n,processors:t});return pd(e,r),hd(r,e),Sd(r,e)},Td=(e,t,n={})=>r=>{let{libraryOptions:i,target:a}=r??{},o=dd({...i??{},target:a,io:t,processors:n});return pd(e,o),hd(o,e),Sd(o,e)},Ed={guid:`uuid`,url:`uri`,datetime:`date-time`,json_string:`json-string`,regex:``},Dd=(e,t,n,r)=>{let i=n;i.type=`string`;let{minimum:a,maximum:o,format:s,patterns:c,contentEncoding:l,laxFormat:u}=e._zod.bag;if(typeof a==`number`&&(i.minLength=a),typeof o==`number`&&(i.maxLength=o),s&&(i.format=Ed[s]??s,i.format===``&&delete i.format,(s===`time`||u)&&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}))])}},Od=(e,t,n,r)=>{let i=n,{minimum:a,maximum:o,format:s,multipleOf:c,exclusiveMaximum:l,exclusiveMinimum:u}=e._zod.bag;i.type=typeof s==`string`&&s.includes(`int`)?`integer`:`number`;let d=typeof u==`number`&&u>=(a??-1/0),f=typeof l==`number`&&l<=(o??1/0),p=t.target===`draft-04`||t.target===`openapi-3.0`;d?p?(i.minimum=u,i.exclusiveMinimum=!0):i.exclusiveMinimum=u:typeof a==`number`&&(i.minimum=a),f?p?(i.maximum=l,i.exclusiveMaximum=!0):i.exclusiveMaximum=l:typeof o==`number`&&(i.maximum=o),typeof c==`number`&&(Number.isFinite(c)&&c!==0?i.multipleOf=Math.abs(c):fd(e,t,i,r,`A multipleOf divisor of ${c} cannot be represented in JSON Schema`))},kd=(e,t,n,r)=>{n.type=`boolean`},Ad=(e,t,n,r)=>{fd(e,t,n,r,`BigInt cannot be represented in JSON Schema`)},jd=(e,t,n,r)=>{fd(e,t,n,r,`Symbols cannot be represented in JSON Schema`)},Md=(e,t,n,r)=>{t.target===`openapi-3.0`?(n.type=`string`,n.nullable=!0,n.enum=[null]):n.type=`null`},Nd=(e,t,n,r)=>{fd(e,t,n,r,`Undefined cannot be represented in JSON Schema`)},Pd=(e,t,n,r)=>{fd(e,t,n,r,`Void cannot be represented in JSON Schema`)},Fd=(e,t,n,r)=>{n.not={}},Id=(e,t,n,r)=>{},Ld=(e,t,n,r)=>{},Rd=(e,t,n,r)=>{fd(e,t,n,r,`Date cannot be represented in JSON Schema`)},zd=(e,t,n,r)=>{let i=e._zod.def,a=Fa(i.entries);if(a.length===0){n.not={};return}a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),n.enum=a},Bd=(e,t,n,r)=>{let i=e._zod.def;if(i.values.length===0){n.not={};return}let a=[];for(let o of i.values)if(o===void 0){if(fd(e,t,n,r,"Literal `undefined` cannot be represented in JSON Schema"))return}else if(typeof o==`bigint`){if(fd(e,t,n,r,`BigInt literals cannot be represented in JSON Schema`))return;a.push(Number(o))}else a.push(o);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}},Vd=(e,t,n,r)=>{fd(e,t,n,r,`NaN cannot be represented in JSON Schema`)},Hd=(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},Ud=(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)},Wd=(e,t,n,r)=>{n.type=`boolean`},Gd=(e,t,n,r)=>{fd(e,t,n,r,`Custom types cannot be represented in JSON Schema`)},Kd=(e,t,n,r)=>{fd(e,t,n,r,`Function types cannot be represented in JSON Schema`)},qd=(e,t,n,r)=>{fd(e,t,n,r,`Transforms cannot be represented in JSON Schema`)},Jd=(e,t,n,r)=>{fd(e,t,n,r,`Map cannot be represented in JSON Schema`)},Yd=(e,t,n,r)=>{fd(e,t,n,r,`Set cannot be represented in JSON Schema`)},Xd=(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=pd(a.element,t,{...r,path:[...r.path,`items`]})};function Zd(e){let t=e._zod.def;return t.type===`pipe`&&t.in._zod.traits.has(`$ZodTransform`)?Zd(t.out):t.type===`catch`?Zd(t.innerType):e._zod.optin}var Qd=(e,t,n,r)=>{let i=n,a=e._zod.def,o=a.shape;if(Object.getOwnPropertySymbols(o).length&&fd(e,t,i,r,`Symbol keys cannot be represented in JSON Schema`))return;i.type=`object`,i.properties={};for(let e in o)Wa(i.properties,e,pd(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];return t.io===`input`?Zd(n)===void 0:n._zod.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=pd(a.catchall,t,{...r,path:[...r.path,`additionalProperties`]})):t.io===`output`&&(i.additionalProperties=!1)},$d=(e,t,n,r)=>{let i=e._zod.def,a=i.inclusive===!1,o=i.options.map((e,n)=>pd(e,t,{...r,path:[...r.path,a?`oneOf`:`anyOf`,n]}));a?n.oneOf=o:n.anyOf=o},ef=(e,t,n,r)=>{let i=e._zod.def,a=pd(i.left,t,{...r,path:[...r.path,`allOf`,0]}),o=pd(i.right,t,{...r,path:[...r.path,`allOf`,1]}),s=e=>`allOf`in e&&Object.keys(e).length===1,c=[...s(a)?a.allOf:[a],...s(o)?o.allOf:[o]];n.allOf=c,t.intersections.push(c)},tf=(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)=>pd(e,t,{...r,path:[...r.path,o,n]})),l=a.rest?pd(a.rest,t,{...r,path:[...r.path,s,...t.target===`openapi-3.0`?[a.items.length]:[]]}):null,u=a.items.length;for(;u>0;){let e=a.items[u-1];if(!(t.io===`input`?Zd(e)!==void 0:e._zod.optout===`optional`))break;u--}let d=a.items.length,f=!a.rest;t.target===`draft-2020-12`?(i.prefixItems=c,f?i.items=!1:l&&(i.items=l),u>0&&(i.minItems=u),f&&(i.maxItems=d)):t.target===`openapi-3.0`?(i.items={anyOf:c},l&&i.items.anyOf.push(l),u>0&&(i.minItems=u),f&&(i.maxItems=d)):(i.items=c,f?i.additionalItems=!1:l&&(i.additionalItems=l),u>0&&(i.minItems=u),f&&(i.maxItems=d));let{minimum:p,maximum:m}=e._zod.bag;typeof p==`number`&&(i.minItems=p),typeof m==`number`&&(i.maxItems=m)};function nf(e,t,n){if(t.$ref){if(n.has(t))return t;n.add(t);let r=e.get(t)?.def;if(!r)return t;let i=nf(e,r,n);return i===r?t:i}for(let r of[`anyOf`,`oneOf`]){let i=t[r];if(!Array.isArray(i))continue;let a=i.map(t=>nf(e,t,n));a.some((e,t)=>e!==i[t])&&(t={...t,[r]:a})}let r=Array.isArray(t.type)?t.type:[t.type],i=!r.includes(`string`)&&r.some(e=>e===`number`||e===`integer`),a=t.enum??(t.const===void 0?void 0:[t.const]);if(!i&&!a?.some(e=>typeof e==`number`))return t;let{minimum:o,maximum:s,exclusiveMinimum:c,exclusiveMaximum:l,multipleOf:u,format:d,id:f,...p}=t;return p.enum?p.enum=p.enum.map(e=>typeof e==`number`?String(e):e):typeof p.const==`number`&&(p.const=String(p.const)),i?(p.type=`string`,a||(p.pattern=(r.includes(`number`)?qs:Ks).source),p):p}var rf=new WeakMap;function af(e){let t=new Map;for(let n of e.seen.values())n.def&&!t.has(n.schema)&&t.set(n.schema,n);let n=new Map;for(let r of rf.get(e)??[]){let i=e.seen.get(r),a=(i?.def??i?.schema)?.propertyNames;if(!a||a===!0||n.has(a))continue;let o=nf(t,a,new Set);o!==a&&n.set(a,o)}if(n.size)for(let t of e.seen.values())for(let e of[t.schema,t.def]){let t=e&&n.get(e.propertyNames);t&&(e.propertyNames=t)}}var of=(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=pd(a.valueType,t,{...r,path:[...r.path,`patternProperties`,`*`]});i.patternProperties={};for(let t of s)Wa(i.patternProperties,t.source,e)}else{if(t.target===`draft-07`||t.target===`draft-2020-12`){i.propertyNames=pd(a.keyType,t,{...r,path:[...r.path,`propertyNames`]});let n=rf.get(t);n||(n=[],rf.set(t,n),t.deferred.push(()=>af(t))),n.push(e)}i.additionalProperties=pd(a.valueType,t,{...r,path:[...r.path,`additionalProperties`]})}let c=o._zod.values,l=t.io===`input`&&Zd(a.valueType)!==void 0;if(c&&!a.partial&&!l){let e=[...c].filter(e=>typeof e==`string`||typeof e==`number`);e.length>0&&(i.required=e.map(String))}},sf=(e,t,n,r)=>{let i=e._zod.def,a=pd(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`}]},cf=(e,t,n,r)=>{let i=e._zod.def;pd(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},lf=Symbol();function uf(e,t,n,r,i){let a=!1,o=JSON.stringify(e,(e,t)=>typeof t==`bigint`?(a=!0,null):t);return a?(fd(t,n,r,i,`BigInt defaults cannot be represented in JSON Schema`),lf):JSON.parse(o)}var df=(e,t,n,r)=>{let i=e._zod.def;pd(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType;let o=uf(i.defaultValue,e,t,n,r);o!==lf&&(n.default=o)},ff=(e,t,n,r)=>{let i=e._zod.def;pd(i.innerType,t,r);let a=t.seen.get(e);if(a.ref=i.innerType,t.io!==`input`)return;let o=uf(i.defaultValue,e,t,n,r);o!==lf&&(n._prefault=o)},pf=(e,t,n,r)=>{let i=e._zod.def;pd(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType;let o;try{o=i.catchValue(void 0)}catch{fd(e,t,n,r,`Dynamic catch values are not supported in JSON Schema`);return}n.default=o},mf=(e,t,n,r)=>{let i=e._zod.def,a=i.in._zod.traits.has(`$ZodTransform`),o=t.io===`input`?a?i.out:i.in:i.out;pd(o,t,r);let s=t.seen.get(e);s.ref=o},hf=(e,t,n,r)=>{let i=e._zod.def;pd(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.readOnly=!0},gf=(e,t,n,r)=>{let i=e._zod.def;pd(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},_f=(e,t,n,r)=>{let i=e._zod.def;pd(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},vf=(e,t,n,r)=>{let i=e._zod.innerType;pd(i,t,r);let a=t.seen.get(e);a.ref=i},yf={string:Dd,number:Od,boolean:kd,bigint:Ad,symbol:jd,null:Md,undefined:Nd,void:Pd,never:Fd,any:Id,unknown:Ld,date:Rd,enum:zd,literal:Bd,nan:Vd,template_literal:Hd,file:Ud,success:Wd,custom:Gd,function:Kd,transform:qd,map:Jd,set:Yd,array:Xd,object:Qd,union:$d,intersection:ef,tuple:tf,record:of,nullable:sf,nonoptional:cf,default:df,prefault:ff,catch:pf,pipe:mf,readonly:hf,promise:gf,optional:_f,lazy:vf};function bf(e,t){if(`_idmap`in e){let n=e,r=dd({...t,processors:yf}),i={};for(let e of n._idmap.entries()){let[t,n]=e;pd(n,r)}let a={};r.external={registry:n,uri:t?.uri,defs:i};for(let e of n._idmap.entries()){let[t,n]=e;hd(r,n),Wa(a,t,Sd(r,n))}return Object.keys(i).length>0&&(a.__shared={[r.target===`draft-2020-12`?`$defs`:`definitions`]:i}),{schemas:a}}let n=dd({...t,processors:yf});return pd(e,n),hd(n,e),Sd(n,e)}var xf=new WeakSet([Object.prototype,Error.prototype]);function Sf(e,t,n){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,get(){let e=n(this);return Object.defineProperty(this,t,{value:e,configurable:!0,writable:!0}),e},set(e){Object.defineProperty(this,t,{value:e,configurable:!0,writable:!0})}})}var Cf=N(`ZodError`,(e,t)=>{Qo.init(e,t),e.name=`ZodError`;let n=Object.getPrototypeOf(e);xf.has(n)||(xf.add(n),Sf(n,`format`,e=>t=>ns(e,t)),Sf(n,`flatten`,e=>t=>ts(e,t)),Sf(n,`addIssue`,e=>t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,La,2)}),Sf(n,`addIssues`,e=>t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,La,2)}),Object.defineProperty(n,"isEmpty",{configurable:!0,enumerable:!1,get(){return this.issues.length===0}}))},void 0,{Parent:Error}),wf=is(Cf),Tf=as(Cf),Ef=os(Cf),Df=cs(Cf),Of=us(Cf),kf=ds(Cf),Af=fs(Cf),jf=ps(Cf),Mf=ms(Cf),Nf=hs(Cf),Pf=gs(Cf),Ff=_s(Cf);function If(){Uo.localeError||Wo(ru())}function Lf(){Uo.memoizer||Wo({memoizer:eu()})}var Rf=N(`ZodType`,(e,t)=>(If(),_c.init(e,t),e.def=t,e.type=t.type,e),{check(...e){let t=this.def;return this.clone(Ga(t,{checks:[...t.checks??[],...e.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,t){return to(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(tm(e,t))},superRefine(e,t){return this.check(nm(e,t))},overwrite(e){return this.check(ed(e))},optional(){return Fp(this)},exactOptional(){return Lp(this)},nullable(){return zp(this)},nullish(){return Fp(zp(this))},nonoptional(e){return Gp(this,e)},array(){return R(this)},or(e){return Sp([this,e])},and(e){return Ep(this,e)},transform(e){return Yp(this,Np(e))},default(e){return Vp(this,e)},prefault(e){return Up(this,e)},catch(e){return qp(this,e)},pipe(e){return Yp(this,e)},readonly(){return Zp(this)},describe(e){let t=this.clone();return su.add(t,{description:e}),t},meta(...e){if(e.length===0)return su.get(this);let t=this.clone();return su.add(t,e[0]),t},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e,...t){return t.length===0?e(this):e(this,...t)},get"~standard"(){return Do(this,`~standard`,{...yc(this),jsonSchema:{input:Td(this,`input`),output:Td(this,`output`)}})},set"~standard"(e){Eo(this,`~standard`,e)},parse:function e(t,n){return wf(this,t,n,{callee:e})},parseAsync:async function e(t,n){return await Tf(this,t,n,{callee:e})},safeParse(e,t){return Ef(this,e,t)},async safeParseAsync(e,t){return Df(this,e,t)},get spa(){return this?.safeParseAsync},set spa(e){Eo(this,`spa`,e)},encode:function e(t,n){return Of(this,t,n,{callee:e})},decode:function e(t,n){return kf(this,t,n,{callee:e})},encodeAsync:async function e(t,n){return await Af(this,t,n,{callee:e})},decodeAsync:async function e(t,n){return await jf(this,t,n,{callee:e})},safeEncode(e,t){return Mf(this,e,t)},safeDecode(e,t){return Nf(this,e,t)},async safeEncodeAsync(e,t){return Pf(this,e,t)},async safeDecodeAsync(e,t){return Ff(this,e,t)},toJSONSchema(e){return wd(this,{})(e)},get description(){return su.get(this)?.description},get _def(){return this._zod.def}}),zf=N(`_ZodString`,(e,t)=>{bc.init(e,t),Rf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Dd(e,t,n,r);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null},{regex(...e){return this.check(Ju(...e))},includes(...e){return this.check(Zu(...e))},startsWith(...e){return this.check(Qu(...e))},endsWith(...e){return this.check($u(...e))},min(...e){return this.check(Ku(...e))},max(...e){return this.check(Gu(...e))},length(...e){return this.check(qu(...e))},nonempty(...e){return this.check(Ku(1,...e))},lowercase(e){return this.check(Yu(e))},uppercase(e){return this.check(Xu(e))},trim(){return this.check(nd())},normalize(...e){return this.check(td(...e))},toLowerCase(){return this.check(rd())},toUpperCase(){return this.check(id())},slugify(){return this.check(ad())}}),Bf=N(`ZodString`,(e,t)=>{bc.init(e,t),zf.init(e,t)},{email(e){return this.check(lu(Kf,e))},url(e){return this.check(hu(Yf,e))},jwt(e){return this.check(Au(up,e))},emoji(e){return this.check(gu(Xf,e))},guid(e){return this.check(uu(qf,e))},uuid(e){return this.check(du(Jf,e))},uuidv4(e){return this.check(fu(Jf,e))},uuidv6(e){return this.check(pu(Jf,e))},uuidv7(e){return this.check(mu(Jf,e))},nanoid(e){return this.check(_u(Zf,e))},cuid(e){return this.check(vu(Qf,e))},cuid2(e){return this.check(yu($f,e))},ulid(e){return this.check(bu(ep,e))},base64(e){return this.check(Du(sp,e))},base64url(e){return this.check(Ou(cp,e))},xid(e){return this.check(xu(tp,e))},ksuid(e){return this.check(Su(np,e))},ipv4(e){return this.check(Cu(rp,e))},ipv6(e){return this.check(wu(ip,e))},cidrv4(e){return this.check(Tu(ap,e))},cidrv6(e){return this.check(Eu(op,e))},e164(e){return this.check(ku(lp,e))},datetime(e){return this.check(ju(Hf,e))},date(e){return this.check(Mu(Uf,e))},time(e){return this.check(Nu(Wf,e))},duration(e){return this.check(Pu(Gf,e))}});function P(e){return cu(Bf,e)}var Vf=N(`ZodStringFormat`,(e,t)=>{xc.init(e,t),zf.init(e,t)}),Hf=N(`ZodISODateTime`,(e,t)=>{Rc.init(e,t),Vf.init(e,t)}),Uf=N(`ZodISODate`,(e,t)=>{zc.init(e,t),Vf.init(e,t)}),Wf=N(`ZodISOTime`,(e,t)=>{Bc.init(e,t),Vf.init(e,t)}),Gf=N(`ZodISODuration`,(e,t)=>{Vc.init(e,t),Vf.init(e,t)}),Kf=N(`ZodEmail`,(e,t)=>{wc.init(e,t),Vf.init(e,t)}),qf=N(`ZodGUID`,(e,t)=>{Sc.init(e,t),Vf.init(e,t)}),Jf=N(`ZodUUID`,(e,t)=>{Cc.init(e,t),Vf.init(e,t)}),Yf=N(`ZodURL`,(e,t)=>{Ac.init(e,t),Vf.init(e,t)}),Xf=N(`ZodEmoji`,(e,t)=>{jc.init(e,t),Vf.init(e,t)}),Zf=N(`ZodNanoID`,(e,t)=>{Mc.init(e,t),Vf.init(e,t)}),Qf=N(`ZodCUID`,(e,t)=>{Nc.init(e,t),Vf.init(e,t)}),$f=N(`ZodCUID2`,(e,t)=>{Pc.init(e,t),Vf.init(e,t)}),ep=N(`ZodULID`,(e,t)=>{Fc.init(e,t),Vf.init(e,t)}),tp=N(`ZodXID`,(e,t)=>{Ic.init(e,t),Vf.init(e,t)}),np=N(`ZodKSUID`,(e,t)=>{Lc.init(e,t),Vf.init(e,t)}),rp=N(`ZodIPv4`,(e,t)=>{Hc.init(e,t),Vf.init(e,t)}),ip=N(`ZodIPv6`,(e,t)=>{Gc.init(e,t),Vf.init(e,t)}),ap=N(`ZodCIDRv4`,(e,t)=>{Kc.init(e,t),Vf.init(e,t)}),op=N(`ZodCIDRv6`,(e,t)=>{Jc.init(e,t),Vf.init(e,t)}),sp=N(`ZodBase64`,(e,t)=>{Xc.init(e,t),Vf.init(e,t)}),cp=N(`ZodBase64URL`,(e,t)=>{Qc.init(e,t),Vf.init(e,t)}),lp=N(`ZodE164`,(e,t)=>{$c.init(e,t),Vf.init(e,t)}),up=N(`ZodJWT`,(e,t)=>{tl.init(e,t),Vf.init(e,t)}),dp=N(`ZodNumber`,(e,t)=>{nl.init(e,t),Rf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Od(e,t,n,r);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},{gt(e,t){return this.check(Hu(e,t))},gte(e,t){return this.check(Uu(e,t))},min(e,t){return this.check(Uu(e,t))},lt(e,t){return this.check(Bu(e,t))},lte(e,t){return this.check(Vu(e,t))},max(e,t){return this.check(Vu(e,t))},int(e){return this.check(I(e))},safe(e){return this.check(I(e))},positive(e){return this.check(Hu(0,e))},nonnegative(e){return this.check(Uu(0,e))},negative(e){return this.check(Bu(0,e))},nonpositive(e){return this.check(Vu(0,e))},multipleOf(e,t){return this.check(Wu(e,t))},step(e,t){return this.check(Wu(e,t))},finite(){return this}});function F(e){return Fu(dp,e)}var fp=N(`ZodNumberFormat`,(e,t)=>{rl.init(e,t),dp.init(e,t)});function I(e){return Iu(fp,e)}var pp=N(`ZodBoolean`,(e,t)=>{il.init(e,t),Rf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>kd(e,t,n,r)});function L(e){return Lu(pp,e)}var mp=N(`ZodUnknown`,(e,t)=>{al.init(e,t),Rf.init(e,t),e._zod.processJSONSchema=(e,t,n)=>void 0});function hp(){return Ru(mp)}var gp=N(`ZodNever`,(e,t)=>{ol.init(e,t),Rf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Fd(e,t,n,r)});function _p(e){return zu(gp,e)}var vp=N(`ZodArray`,(e,t)=>{Lf(),cl.init(e,t),Rf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Xd(e,t,n,r),e.element=t.element},{min(e,t){return this.check(Ku(e,t))},nonempty(e){return this.check(Ku(1,e))},max(e,t){return this.check(Gu(e,t))},length(e,t){return this.check(qu(e,t))},unwrap(){return this.element}});function R(e,t){return od(vp,e,t)}var yp=N(`ZodObject`,(e,t)=>{Lf(),hl.init(e,t),Rf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Qd(e,t,n,r),Po(e,`shape`,e=>e._zod.def.shape,!1)},{keyof(){return V(Object.keys(this._zod.def.shape))},catchall(e){return this.clone({...this._zod.def,catchall:e})},passthrough(){return this.clone({...this._zod.def,catchall:hp()})},loose(){return this.clone({...this._zod.def,catchall:hp()})},strict(){return this.clone({...this._zod.def,catchall:_p()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(e){return co(this,e)},safeExtend(e){return lo(this,e)},merge(e){return uo(this,e)},pick(e){return oo(this,e)},omit(e){return so(this,e)},partial(...e){return fo(Pp,this,e[0])},exactPartial(...e){return fo(Ip,this,e[0],`exactPartial`)},required(...e){return po(Wp,this,e[0])}});function z(e,t){return new yp({type:`object`,shape:e??{},...no(t)})}function B(e,t){return new yp({type:`object`,shape:e,catchall:_p(),...no(t)})}function bp(e,t){return new yp({type:`object`,shape:e,catchall:hp(),...no(t)})}var xp=N(`ZodUnion`,(e,t)=>{_l.init(e,t),Rf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>$d(e,t,n,r),e.options=t.options});function Sp(e,t){return new xp({type:`union`,options:e,...no(t)})}var Cp=N(`ZodDiscriminatedUnion`,(e,t)=>{xp.init(e,t),vl.init(e,t)});function wp(e,t,n){return new Cp({type:`union`,options:t,discriminator:e,...no(n)})}var Tp=N(`ZodIntersection`,(e,t)=>{yl.init(e,t),Rf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ef(e,t,n,r)});function Ep(e,t){return new Tp({type:`intersection`,left:e,right:t})}var Dp=N(`ZodRecord`,(e,t)=>{Lf(),Sl.init(e,t),Rf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>of(e,t,n,r),e.keyType=t.keyType,e.valueType=t.valueType});function Op(e,t,n){return!t||!t._zod?new Dp({type:`record`,keyType:P(),valueType:e,...no(t)}):new Dp({type:`record`,keyType:e,valueType:t,...no(n)})}var kp=N(`ZodEnum`,(e,t)=>{Cl.init(e,t),Rf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>zd(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 kp({...t,checks:[],...no(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 kp({...t,checks:[],...no(r),entries:i})}});function V(e,t){return new kp({type:`enum`,entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...no(t)})}var Ap=N(`ZodLiteral`,(e,t)=>{wl.init(e,t),Rf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Bd(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 jp(e,t){return new Ap({type:`literal`,values:Array.isArray(e)?e:[e],...no(t)})}var Mp=N(`ZodTransform`,(e,t)=>{Lf(),Tl.init(e,t),Rf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>qd(e,t,n,r),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new Ho(e.constructor.name);n.addIssue=r=>{if(typeof r==`string`)n.issues.push(wo(r,n.value,t));else{let t=r;t.fatal&&(t.continue=!1),t.code??=`custom`,`input`in t||(t.input=n.value),t.inst??=e,n.issues.push(wo(t))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n)):(n.value=i,n)}});function Np(e){return new Mp({type:`transform`,transform:e})}var Pp=N(`ZodOptional`,(e,t)=>{Dl.init(e,t),Rf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>_f(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Fp(e){return new Pp({type:`optional`,innerType:e})}var Ip=N(`ZodExactOptional`,(e,t)=>{Ol.init(e,t),Rf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>_f(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Lp(e){return new Ip({type:`optional`,innerType:e})}var Rp=N(`ZodNullable`,(e,t)=>{kl.init(e,t),Rf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>sf(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function zp(e){return new Rp({type:`nullable`,innerType:e})}var Bp=N(`ZodDefault`,(e,t)=>{Al.init(e,t),Rf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>df(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Vp(e,t){return new Bp({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():Qa(t)}})}var Hp=N(`ZodPrefault`,(e,t)=>{Ml.init(e,t),Rf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ff(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Up(e,t){return new Hp({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():Qa(t)}})}var Wp=N(`ZodNonOptional`,(e,t)=>{Nl.init(e,t),Rf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>cf(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Gp(e,t){return new Wp({type:`nonoptional`,innerType:e,...no(t)})}var Kp=N(`ZodCatch`,(e,t)=>{Il.init(e,t),Rf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>pf(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function qp(e,t){return new Kp({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:Io(t)})}var Jp=N(`ZodPipe`,(e,t)=>{Ll.init(e,t),Rf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>mf(e,t,n,r),e.in=t.in,e.out=t.out});function Yp(e,t){return new Jp({type:`pipe`,in:e,out:t})}var Xp=N(`ZodReadonly`,(e,t)=>{zl.init(e,t),Rf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>hf(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Zp(e){return new Xp({type:`readonly`,innerType:e})}var Qp=N(`ZodLazy`,(e,t)=>{Vl.init(e,t),Rf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>vf(e,t,n,r),e.unwrap=()=>e._zod.def.getter()});function $p(e){return new Qp({type:`lazy`,getter:e})}var em=N(`ZodCustom`,(e,t)=>{Hl.init(e,t),Rf.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Gd(e,t,n,r)});function tm(e,t={}){return sd(em,e,t)}function nm(e,t){return cd(e,t)}var rm=z({key:P(),key_id:P(),org:P(),label:P().nullish(),env:V([`production`,`sandbox`]),scopes:R(P()),subject:P().nullish(),name:P().nullish()});async function im(e,t,n){return xm(e,{code:t,device:n})}var am=z({code:P()});async function om(e){return am.parse(await la(e,`/v1/login/codes`,{})).code}async function sm(e,t,n){return xm(e,{...t,org:t.org===void 0||t.org===``?null:t.org,device:n})}var cm=z({orgs:R(z({org:P(),slug:P().nullish(),name:P().nullish(),role:P(),status:P(),here:L(),member:L().optional()}))});async function lm(e){return cm.parse(await A(e,`/v1/login/orgs`)).orgs}async function um(e,t){return rm.parse(await la(e,`/v1/login/org`,{org:t}))}async function dm(e,t,n,r){return Sm(e,`/v1/invitations/${encodeURIComponent(t)}`,{password:n,device:r})}var fm=z({orgs:R(z({org:P(),slug:P().nullish(),name:P().nullish(),role:P()}))});async function pm(e,t,n){let r=await fetch(ha(e,`/v1/login/orgs`),{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({email:t,password:n})});return r.status===404||r.status===405?null:fm.parse(await ma(r)).orgs}var mm=z({orgs:R(z({org:P(),slug:P().nullish(),name:P().nullish()}))});async function hm(e,t){return fetch(ha(e,`/v1/login/sso/discover`),{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({email:t})})}async function gm(e){try{let t=await hm(e,``);return t.status!==404&&t.status!==405}catch{return!1}}async function _m(e,t){return mm.parse(await ma(await hm(e,t))).orgs}function vm(e,t){return ha(e,`/v1/login/sso?org=${encodeURIComponent(t)}`).toString()}function ym(e){return ha(e,`/v1/login/google`).toString()}function bm(e){return`${e.replace(/\/$/,``)}/v1/login/google/callback`}async function xm(e,t){return Sm(e,`/v1/login`,t)}async function Sm(e,t,n){let r=await fetch(ha(e,t),{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(n)});return rm.parse(await ma(r))}function Cm(e,t){return{...e,base:t}}var wm=bp({id:P(),platform:V([`web`,`android`,`ios`]),kind:V([`alert`,`voip`]),label:P().nullable()}),Tm=bp({org:P(),org_name:P().nullable(),events:bp({attention:L(),ringing:L()}),devices:R(wm)});async function Em(e){return Tm.parse(await A(e,`/preferences`))}async function Dm(e,t){return Tm.parse(await sa(e,`/preferences`,t))}async function Om(e,t){return bp({id:P()}).parse(await la(e,`/devices`,{kind:`alert`,...t})).id}async function km(e,t){await ua(e,`/devices`,{kind:`alert`,...t})}async function Am(e,t){await ua(e,`/devices/${encodeURIComponent(t)}`)}var jm=bp({sent:F(),failed:R(bp({device:P(),error:P(),dead:L().default(!1)}))});async function Mm(e){return jm.parse(await la(e,`/test`,{}))}async function Nm(e){return bp({publicKey:P().nullable()}).parse(await A(e,`/vapid`)).publicKey}var Pm=`https://notify.pinecall.io`;function Fm(e){return Cm(e,Pm)}var Im=`/sw.js`,Lm=`pinecall:notices`;function Rm(){window.dispatchEvent(new Event(Lm))}function zm(e){return window.addEventListener(Lm,e),window.addEventListener(`focus`,e),()=>{window.removeEventListener(Lm,e),window.removeEventListener(`focus`,e)}}function Bm(){return`serviceWorker`in navigator&&`PushManager`in window&&`Notification`in window}function Vm(){return Bm()?Notification.permission:`denied`}async function Hm(){return Bm()?await(await navigator.serviceWorker.getRegistration(Im))?.pushManager.getSubscription()??null:null}async function Um(e,{anew:t=!1}={}){if(await Notification.requestPermission()!==`granted`)return null;let n=await navigator.serviceWorker.register(Im);await navigator.serviceWorker.ready;let r=await n.pushManager.getSubscription();return r!==null&&t&&await r.unsubscribe(),r!==null&&!t?r:n.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:qm(e)})}function Wm(e){return JSON.stringify(e.toJSON())}async function Gm(e){try{let t=await Hm();if(t===null)return;await km(Fm(e),{platform:`web`,token:Wm(t)}).catch(()=>{}),await t.unsubscribe()}catch{}}function Km(e=navigator.userAgent){let t=/Edg\//.test(e)?`Edge`:/Firefox\//.test(e)?`Firefox`:/Chrome\//.test(e)?`Chrome`:/Safari\//.test(e)?`Safari`:`A browser`,n=/Mac OS X/.test(e)?`macOS`:/Windows/.test(e)?`Windows`:/Android/.test(e)?`Android`:/Linux/.test(e)?`Linux`:null;return n===null?t:`${t} on ${n}`}function qm(e){let t=e.replace(/-/g,`+`).replace(/_/g,`/`).padEnd(Math.ceil(e.length/4)*4,`=`);return Uint8Array.from(atob(t),e=>e.charCodeAt(0))}var Jm=(0,O.createContext)(null);function Ym({value:e,children:t}){return(0,j.jsx)(Jm,{value:e,children:t})}function Xm(){let e=(0,O.useContext)(Jm);if(e===null)throw Error(`the console was mounted without a way out`);return e}var Zm=`sandbox`;function Qm(e){return e.split(`/`).filter(Boolean)[0]===Zm?`sandbox`:`production`}function $m(e){return e===`sandbox`?`/${Zm}`:`/`}function eh(e,t){let n=$m(e);return n===`/`?t:`${n}${t}`}function th(e){let t=Qm(e),n=t===`sandbox`?e.slice($m(`sandbox`).length)||`/`:e;return eh(t===`sandbox`?`production`:`sandbox`,n)}var nh=typeof window>`u`?`production`:Qm(window.location.pathname),rh=$m(nh);function ih(){return window.location.origin}var ah=[`production`,`sandbox`],oh=[`production`],sh=[`sandbox`],ch=[{key:`overview`,path:``,name:`Overview`,in:ah,icon:`grid`},{key:`calls`,path:`calls`,name:`Calls`,in:ah,icon:`list`},{key:`quality`,path:`quality`,name:`Quality`,in:ah,icon:`check`},{key:`agents`,path:`agents`,name:`Agents`,in:ah,icon:`bot`},{key:`numbers`,path:`numbers`,name:`Numbers`,in:oh,icon:`phone`,group:`workspace`},{key:`team`,path:`team`,name:`Team`,in:oh,icon:`users`,group:`workspace`},{key:`usage`,path:`usage`,name:`Usage`,in:oh,icon:`chart`,group:`workspace`},{key:`org-settings`,path:`settings`,name:`Settings`,in:ah,icon:`sliders`,opensOn:`first-tab`,group:`workspace`},{key:`tokens`,path:`tokens`,name:`Tokens`,in:ah,under:`org-settings`},{key:`providers`,path:`providers`,name:`Providers`,in:ah,under:`org-settings`},{key:`apps`,path:`apps`,name:`Apps`,in:ah,under:`org-settings`},{key:`secrets`,path:`secrets`,name:`Secrets`,in:ah,under:`org-settings`},{key:`org-docs`,path:`docs`,name:`Docs`,in:ah,under:`org-settings`},{key:`org-memory`,path:`memory`,name:`Memory`,in:ah,under:`org-settings`},{key:`notifications`,path:`notifications`,name:`Notifications`,in:ah,under:`org-settings`},{key:`org-data`,path:`data`,name:`Data & privacy`,in:ah,under:`org-settings`},{key:`phone`,path:`phone`,name:`Phone testing`,in:sh,under:`org-settings`}],lh=[{key:`box-orgs`,path:`box/orgs`,name:`Organizations`,in:oh,icon:`building`,operator:!0},{key:`box-fleet`,path:`box/fleet`,name:`Fleet`,in:oh,icon:`server`,operator:!0},{key:`box-carriers`,path:`box/carriers`,name:`Carriers`,in:oh,icon:`phone`,operator:!0},{key:`box-routes`,path:`box/routes`,name:`Routes`,in:oh,icon:`route`,operator:!0},{key:`box-traceback`,path:`box/traceback`,name:`Traceback`,in:oh,icon:`phone`,operator:!0},{key:`box-usage`,path:`box/usage`,name:`Box usage`,in:oh,icon:`chart`,operator:!0},{key:`box-settings`,path:`box/settings`,name:`Box settings`,in:oh,icon:`sliders`,operator:!0}],uh=[{key:`agent-overview`,path:`overview`,name:`Overview`,in:ah,icon:`grid`},{key:`calls`,path:`calls`,name:`Calls`,in:ah,icon:`list`},{key:`quality`,path:`quality`,name:`Quality`,in:ah,icon:`check`},{key:`talk`,path:`playground`,name:`Playground`,tab:`Chat`,in:ah,icon:`chat`,group:`build`},{key:`devchat`,path:`dev-chat`,name:`Dev chat`,in:sh,under:`talk`},{key:`test`,path:`test`,name:`Test`,in:ah,icon:`flask`,opensOn:`first-tab`,group:`build`},{key:`cases`,path:`cases`,name:`Cases`,in:ah,under:`test`},{key:`evals`,path:`goldens`,name:`Goldens`,in:ah,under:`test`},{key:`personas`,path:`personas`,name:`Personas`,in:ah,under:`test`},{key:`simulations`,path:`simulations`,name:`Simulations`,in:ah,under:`test`},{key:`knowledge`,path:`knowledge`,name:`Knowledge`,in:ah,icon:`book`,opensOn:`first-tab`,group:`build`},{key:`docs`,path:`docs`,name:`Docs`,in:ah,under:`knowledge`},{key:`memory`,path:`memory`,name:`Memory`,in:ah,under:`knowledge`},{key:`settings`,path:`configure`,name:`Configure`,tab:`General`,in:ah,icon:`sliders`,group:`build`},{key:`pipeline`,path:`pipeline`,name:`Pipeline`,in:ah,under:`settings`},{key:`lexicon`,path:`lexicon`,name:`Lexicon`,in:ah,under:`settings`},{key:`widget`,path:`widget`,name:`Widget`,in:ah,under:`settings`}];function dh(e,t=nh,n=!1){return e.filter(e=>e.in.includes(t)&&(n||e.operator!==!0))}function fh(e,t,n=nh){return e.some(e=>e.key===t&&e.in.includes(n))}function ph(e,t=nh,n=!1){return dh(e,t,n).filter(e=>e.under===void 0)}function mh(e,t,n=nh){return[...t.opensOn===`first-tab`?[]:[t],...dh(e,n).filter(e=>e.under===t.key)]}function hh(e){return e.under===void 0?e.tab??e.name:e.name}function gh(e,t){return(t.under===void 0?void 0:e.find(e=>e.key===t.under))??t}function _h(e){let t=e.split(/[?#]/)[0]??``,n=/^\/a\/[^/]+/.test(t)?uh:[...ch,...lh],r=t.replace(/^\/a\/[^/]+\/?/,`/`).replace(/^\/+/,``).replace(/\/$/,``);return r===``?n.find(e=>e.path===``):n.filter(e=>e.path!==``&&(r===e.path||r.startsWith(`${e.path}/`))).sort((e,t)=>t.path.length-e.path.length)[0]}var vh=`pinecall.key`;function yh(e){return{kept:()=>e.read(vh),keep:t=>e.write(vh,t),forget:()=>e.erase(vh)}}var bh=yh({read:async e=>window.localStorage.getItem(e),write:async(e,t)=>window.localStorage.setItem(e,t),erase:async e=>window.localStorage.removeItem(e)}),xh=bh.kept,Sh=bh.keep,Ch=bh.forget,wh=`pinecall.corner`;function Th(){return window.sessionStorage.getItem(wh)}function Eh(e){e===null?window.sessionStorage.removeItem(wh):window.sessionStorage.setItem(wh,e)}function H({children:e,pad:t=!1,style:n}){return(0,j.jsx)(`div`,{className:t?`ui-card ui-card-pad`:`ui-card`,style:n,children:e})}function U({title:e,meta:t,action:n,children:r}){return(0,j.jsxs)(`div`,{className:`ui-card-head`,children:[typeof e==`string`?(0,j.jsx)(`span`,{className:`ui-card-title`,children:e}):e,t!==void 0&&(0,j.jsx)(`span`,{className:`ui-card-meta`,children:t}),r,n!==void 0&&(0,j.jsx)(`span`,{className:`ui-card-end`,children:n})]})}function Dh({to:e,onClick:t,children:n}){return e===void 0?(0,j.jsx)(`button`,{type:`button`,className:`ui-card-action`,onClick:t,children:n}):(0,j.jsx)(Wi,{to:e,className:`ui-card-action`,children:n})}function Oh({children:e}){return(0,j.jsx)(`div`,{className:`ui-card-foot`,children:e})}function kh({children:e}){return(0,j.jsx)(`div`,{className:`ui-empty`,children:e})}function Ah({children:e}){return e==null||e===``?null:(0,j.jsx)(`div`,{className:`ui-refused`,children:e})}function jh({lead:e,name:t,tag:n,sub:r,end:i,to:a,onClick:o}){let s=(0,j.jsxs)(j.Fragment,{children:[e,(0,j.jsxs)(`div`,{className:`ui-row-main`,children:[(0,j.jsxs)(`div`,{className:`ui-row-line`,children:[(0,j.jsx)(`span`,{className:`ui-row-name`,children:t}),n]}),r!==void 0&&(0,j.jsx)(`div`,{className:`ui-row-sub`,children:r})]}),i!==void 0&&(0,j.jsx)(`div`,{className:`ui-row-end`,children:i})]});return a===void 0?(0,j.jsx)(`div`,{className:o===void 0?`ui-row`:`ui-row ui-row-link`,onClick:o,children:s}):(0,j.jsx)(Wi,{to:a,className:`ui-row ui-row-link`,children:s})}function Mh({name:e,sub:t,end:n,to:r}){let i=(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`div`,{className:`ui-row-main`,children:[(0,j.jsx)(`div`,{className:`ui-item-name`,children:e}),t!==void 0&&(0,j.jsx)(`div`,{className:`ui-item-sub`,children:t})]}),n]});return r===void 0?(0,j.jsx)(`div`,{className:`ui-item`,children:i}):(0,j.jsx)(Wi,{to:r,className:`ui-item`,children:i})}function Nh({children:e,ruled:t=!1}){return(0,j.jsx)(`div`,{className:t?`ui-section-label ui-section-label-ruled`:`ui-section-label`,children:e})}function Ph({label:e,children:t,keyWidth:n}){return(0,j.jsxs)(`div`,{className:`ui-kv`,children:[(0,j.jsx)(`span`,{className:`ui-kv-key`,style:n===void 0?void 0:{width:n},children:e}),(0,j.jsx)(`span`,{className:`ui-kv-value`,children:t})]})}function Fh(e,t,n,r){let i=[`ui-button`];return e!==`secondary`&&i.push(`ui-button-${e}`),t!==`base`&&i.push(`ui-button-${t}`),n&&i.push(`ui-button-pill`),r!==void 0&&i.push(r),i.join(` `)}function W({kind:e=`secondary`,size:t=`base`,pill:n=!1,className:r,type:i=`button`,...a}){return(0,j.jsx)(`button`,{type:i,className:Fh(e,t,n,r),...a})}function Ih({to:e,kind:t=`secondary`,size:n=`base`,children:r}){return(0,j.jsx)(Wi,{to:e,className:Fh(t,n,!1),children:r})}function Lh({danger:e=!1,...t}){return(0,j.jsx)(`button`,{type:`button`,className:e?`ui-text-action ui-text-action-danger`:`ui-text-action`,...t})}function Rh({children:e,htmlFor:t}){return(0,j.jsx)(`label`,{className:`ui-label`,htmlFor:t,children:e})}function G({size:e=`form`,className:t,...n}){let r=[`ui-input`];return e===`sm`&&r.push(`ui-input-sm`),e===`lg`&&r.push(`ui-input-lg`),t!==void 0&&r.push(t),(0,j.jsx)(`input`,{className:r.join(` `),...n})}function zh(e){return(0,j.jsx)(`textarea`,{className:`ui-textarea`,...e})}function Bh({label:e,grow:t=!1,minWidth:n,children:r}){return(0,j.jsxs)(`div`,{className:t?`ui-form-grow`:void 0,style:n===void 0?void 0:{minWidth:n},children:[(0,j.jsx)(`label`,{className:`ui-label`,children:e}),r]})}function Vh({options:e,value:t,onChange:n}){return(0,j.jsx)(`div`,{className:`ui-segmented`,role:`group`,children:e.map(e=>(0,j.jsx)(`button`,{type:`button`,className:e.value===t?`ui-segment ui-segment-on`:`ui-segment`,"aria-pressed":e.value===t,onClick:()=>n(e.value),children:e.label},e.value))})}function Hh({options:e,value:t,onChange:n}){return(0,j.jsx)(`div`,{className:`ui-chips`,role:`group`,children:e.map(e=>(0,j.jsx)(`button`,{type:`button`,className:e.value===t?`ui-chip ui-chip-on`:`ui-chip`,"aria-pressed":e.value===t,onClick:()=>n(e.value),children:e.label},e.value))})}function Uh({on:e,onChange:t,label:n}){return(0,j.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e,"aria-label":n,className:e?`ui-switch ui-switch-on`:`ui-switch`,onClick:()=>t(!e),children:(0,j.jsx)(`span`,{className:`ui-switch-knob`})})}function Wh({checked:e,onChange:t,children:n}){return(0,j.jsxs)(`label`,{className:`ui-check`,children:[(0,j.jsx)(`input`,{type:`checkbox`,checked:e,onChange:e=>t(e.target.checked)}),n]})}var Gh={home:[`M3 10.5 12 3l9 7.5V20a1 1 0 0 1-1 1h-5v-6H9v6H4a1 1 0 0 1-1-1z`],grid:[{rect:[3,3,7,7,1.5]},{rect:[14,3,7,7,1.5]},{rect:[3,14,7,7,1.5]},{rect:[14,14,7,7,1.5]}],activity:[`M22 12h-4l-3 9L9 3l-3 9H2`],list:[`M8 6h13`,`M8 12h13`,`M8 18h13`,`M3 6h.01`,`M3 12h.01`,`M3 18h.01`],check:[{circle:[12,12,9]},`m8.5 12.5 2.5 2.5 4.5-5`],chart:[`M3 3v18h18`,`M7 15v3`,`M12 9v9`,`M17 5v13`],phone:[`M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.5 2.1L8.1 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2z`],key:[`m21 2-9.6 9.6`,`m15.5 7.5 3 3L22 7l-3-3`,{circle:[7.5,15.5,5.5]}],plug:[`M12 22v-5`,`M9 8V2`,`M15 8V2`,`M18 8v3a6 6 0 0 1-12 0V8z`],users:[`M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2`,{circle:[9,7,4]},`M22 21v-2a4 4 0 0 0-3-3.9`],bot:[`M12 8V4`,{rect:[4,8,16,12,2]},`M2 14h2`,`M20 14h2`,`M9 13v2`,`M15 13v2`],search:[{circle:[11,11,7]},`m21 21-4.3-4.3`],play:[`M7 4.5v15l12.5-7.5z`],stop:[{rect:[6,6,12,12,2]}],panel:[{rect:[3,3,18,18,2]},`M9 3v18`],building:[{rect:[4,2,16,20,2]},`M9 22v-4h6v4`,`M8 6h.01`,`M16 6h.01`,`M12 6h.01`,`M12 10h.01`,`M12 14h.01`,`M16 10h.01`,`M16 14h.01`,`M8 10h.01`,`M8 14h.01`],server:[{rect:[2,2,20,8,2]},{rect:[2,14,20,8,2]},`M6 6h.01`,`M6 18h.01`],route:[{circle:[6,19,3]},`M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15`,{circle:[18,5,3]}],sliders:[`M21 4h-7`,`M10 4H3`,`M21 12h-9`,`M8 12H3`,`M21 20h-5`,`M12 20H3`,`M14 2v4`,`M8 10v4`,`M16 18v4`],words:[`M4 5h16v10H9l-5 4z`,`M8 9h8`,`M8 12h5`],persona:[{circle:[12,8,4]},`M5 21v-1a7 7 0 0 1 14 0v1`],bell:[`M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9`,`M10.3 21a1.94 1.94 0 0 0 3.4 0`],headphones:[`M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3`],book:[`M4 4a2 2 0 0 1 2-2h14v18H6a2 2 0 0 0-2 2z`,`M4 20a2 2 0 0 1 2-2h14`,`M8 6h8`,`M8 10h6`],sun:[{circle:[12,12,4]},`M12 2v2`,`M12 20v2`,`m4.93 4.93 1.41 1.41`,`m17.66 17.66 1.41 1.41`,`M2 12h2`,`M20 12h2`,`m6.34 17.66-1.41 1.41`,`m19.07 4.93-1.41 1.41`],moon:[`M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401`],wave:[`M4 10v4`,`M8 6v12`,`M12 9v6`,`M16 5v14`,`M20 10v4`],copy:[{rect:[8,8,13,13,2]},`M16 8V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h3`],up:[`M7 10v11`,`M15 5.9 14 10h5.8a2 2 0 0 1 2 2.3l-1.4 7a2 2 0 0 1-2 1.7H7V10l4-8a3 3 0 0 1 4 3.9z`],down:[`M17 14V3`,`M9 18.1 10 14H4.2a2 2 0 0 1-2-2.3l1.4-7a2 2 0 0 1 2-1.7H17v11l-4 8a3 3 0 0 1-4-3.9z`],arrow:[`M12 19V5`,`m5 12 7-7 7 7`],chevrons:[`m7 15 5 5 5-5`,`m7 9 5-5 5 5`],chat:[`M21 12a8 8 0 0 1-11.6 7.1L4 21l1.9-5.4A8 8 0 1 1 21 12z`],flask:[`M10 3h4`,`M10 3v6.5L4.6 18.6A2 2 0 0 0 6.3 21.5h11.4a2 2 0 0 0 1.7-2.9L14 9.5V3`,`M7.5 15h9`],memory:[`M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z`,`M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z`,`M12 5v13`]};function Kh({name:e,size:t=16}){return(0,j.jsx)(`svg`,{className:`ui-icon`,width:t,height:t,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:1.75,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":!0,children:Gh[e].map((e,t)=>{if(typeof e==`string`)return(0,j.jsx)(`path`,{d:e},t);if(`circle`in e){let[n,r,i]=e.circle;return(0,j.jsx)(`circle`,{cx:n,cy:r,r:i},t)}let[n,r,i,a,o]=e.rect;return(0,j.jsx)(`rect`,{x:n,y:r,width:i,height:a,rx:o},t)})})}var qh=Object.defineProperty,Jh=(e,t)=>qh(e,`name`,{value:t,configurable:!0});function Yh(e,[t,n]){return Math.min(n,Math.max(t,e))}Jh(Yh,`clamp`);var Xh=Object.defineProperty,Zh=(e,t)=>Xh(e,`name`,{value:t,configurable:!0}),Qh=!!(typeof window<`u`&&window.document&&window.document.createElement);function $h(e,t,{checkForDefaultPrevented:n=!0}={}){return Zh(function(r){if(e?.(r),n===!1||!r||!r.defaultPrevented)return t?.(r)},`handleEvent`)}Zh($h,`composeEventHandlers`);function eg(e){if(!Qh)throw Error(`Cannot access window outside of the DOM`);return e?.ownerDocument?.defaultView??window}Zh(eg,`getOwnerWindow`);function tg(e){if(!Qh)throw Error(`Cannot access document outside of the DOM`);return e?.ownerDocument??document}Zh(tg,`getOwnerDocument`);function ng(e,t=!1){let{activeElement:n}=tg(e);if(!n?.nodeName)return null;if(rg(n)&&n.contentDocument)return ng(n.contentDocument.body,t);if(t){let e=n.getAttribute(`aria-activedescendant`);if(e){let t=tg(n).getElementById(e);if(t)return t}}return n}Zh(ng,`getActiveElement`);function rg(e){return e.tagName===`IFRAME`}Zh(rg,`isFrame`);var ig=Object.defineProperty,ag=(e,t)=>ig(e,`name`,{value:t,configurable:!0});function og(e,t){let n=O.createContext(t);n.displayName=e+`Context`;let r=ag(e=>{let{children:t,...r}=e,i=O.useMemo(()=>r,Object.values(r));return(0,j.jsx)(n.Provider,{value:i,children:t})},`Provider`);r.displayName=e+`Provider`;function i(r,i={}){let{optional:a=!1}=i,o=O.useContext(n);if(o)return o;if(t!==void 0)return t;if(!a)throw Error(`\`${r}\` must be used within \`${e}\``)}return ag(i,`useContext`),[r,i]}ag(og,`createContext`);function sg(e,t=[]){let n=[];function r(t,r){let i=O.createContext(r);i.displayName=t+`Context`;let a=n.length;n=[...n,r];let o=ag(t=>{let{scope:n,children:r,...o}=t,s=n?.[e]?.[a]||i,c=O.useMemo(()=>o,Object.values(o));return(0,j.jsx)(s.Provider,{value:c,children:r})},`Provider`);o.displayName=t+`Provider`;function s(n,o,s={}){let{optional:c=!1}=s,l=o?.[e]?.[a]||i,u=O.useContext(l);if(u)return u;if(r!==void 0)return r;if(!c)throw Error(`\`${n}\` must be used within \`${t}\``)}return ag(s,`useContext`),[o,s]}ag(r,`createContext`);let i=ag(()=>{let t=n.map(e=>O.createContext(e));return ag(function(n){let r=n?.[e]||t;return O.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])},`useScope`)},`createScope`);return i.scopeName=e,[r,cg(i,...t)]}ag(sg,`createContextScope`);function cg(...e){let t=e[0];if(e.length===1)return t;let n=ag(()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return ag(function(e){let r=n.reduce((t,{useScope:n,scopeName:r})=>{let i=n(e)[`__scope${r}`];return{...t,...i}},{});return O.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])},`useComposedScopes`)},`createScope`);return n.scopeName=t.scopeName,n}ag(cg,`composeContextScopes`);var lg=Object.defineProperty,ug=(e,t)=>lg(e,`name`,{value:t,configurable:!0});function dg(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}ug(dg,`setRef`);function fg(...e){return t=>{let n=!1,r=e.map(e=>{let r=dg(e,t);return!n&&typeof r==`function`&&(n=!0),r});if(n)return()=>{for(let t=0;t<r.length;t++){let n=r[t];typeof n==`function`?n():dg(e[t],null)}}}}ug(fg,`composeRefs`);function pg(...e){return O.useCallback(fg(...e),e)}ug(pg,`useComposedRefs`);var mg=Object.defineProperty,hg=(e,t)=>mg(e,`name`,{value:t,configurable:!0});function gg(e){let t=O.forwardRef((t,n)=>{let{children:r,...i}=t,a=null,o=!1,s=[];wg(r)&&typeof Og==`function`&&(r=Og(r._payload)),O.Children.forEach(r,e=>{if(Sg(e)){o=!0;let t=e,n=`child`in t.props?t.props.child:t.props.children;wg(n)&&typeof Og==`function`&&(n=Og(n._payload)),a=yg(t,n),s.push(a?.props?.children)}else s.push(e)}),a?a=O.cloneElement(a,void 0,s):!o&&O.Children.count(r)===1&&O.isValidElement(r)&&(a=r);let c=a?xg(a):void 0,l=pg(n,c);if(!a){if(r||r===0)throw Error(o?Dg(e):Eg(e));return r}let u=bg(i,a.props??{});return a.type!==O.Fragment&&(u.ref=n?l:c),O.cloneElement(a,u)});return t.displayName=`${e}.Slot`,t}hg(gg,`createSlot`);var _g=Symbol.for(`radix.slottable`);function vg(e){let t=hg(e=>`child`in e?e.children(e.child):e.children,`Slottable`);return t.displayName=`${e}.Slottable`,t.__radixId=_g,t}hg(vg,`createSlottable`);var yg=hg((e,t)=>{if(`child`in e.props){let t=e.props.child;return O.isValidElement(t)?O.cloneElement(t,void 0,e.props.children(t.props.children)):null}return O.isValidElement(t)?t:null},`getSlottableElementFromSlottable`);function bg(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}hg(bg,`mergeProps`);function xg(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}hg(xg,`getElementRef`);function Sg(e){return O.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===_g}hg(Sg,`isSlottable`);var Cg=Symbol.for(`react.lazy`);function wg(e){return typeof e==`object`&&!!e&&`$$typeof`in e&&e.$$typeof===Cg&&`_payload`in e&&Tg(e._payload)}hg(wg,`isLazyComponent`);function Tg(e){return typeof e==`object`&&!!e&&`then`in e}hg(Tg,`isPromiseLike`);var Eg=hg(e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,`createSlotError`),Dg=hg(e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,`createSlottableError`),Og=O.use,kg=Object.defineProperty,Ag=(e,t)=>kg(e,`name`,{value:t,configurable:!0});function jg(e){let t=e+`CollectionProvider`,[n,r]=sg(t),[i,a]=n(t,{collectionRef:{current:null},itemMap:new Map}),o=Ag(e=>{let{scope:t,children:n}=e,r=O.useRef(null),a=O.useRef(new Map).current;return(0,j.jsx)(i,{scope:t,itemMap:a,collectionRef:r,children:n})},`CollectionProvider`);o.displayName=t;let s=e+`CollectionSlot`,c=gg(s),l=O.forwardRef((e,t)=>{let{scope:n,children:r}=e,i=pg(t,a(s,n).collectionRef);return(0,j.jsx)(c,{ref:i,children:r})});l.displayName=s;let u=e+`CollectionItemSlot`,d=`data-radix-collection-item`,f=gg(u),p=O.forwardRef((e,t)=>{let{scope:n,children:r,...i}=e,o=O.useRef(null),s=pg(t,o),c=a(u,n);return O.useEffect(()=>(c.itemMap.set(o,{ref:o,...i}),()=>void c.itemMap.delete(o))),(0,j.jsx)(f,{[d]:``,ref:s,children:r})});p.displayName=u;function m(t){let n=a(e+`CollectionConsumer`,t);return O.useCallback(()=>{let e=n.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${d}]`));return Array.from(n.itemMap.values()).sort((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current))},[n.collectionRef,n.itemMap])}return Ag(m,`useCollection`),[{Provider:o,Slot:l,ItemSlot:p},m,r]}Ag(jg,`createCollection`);var Mg=new WeakMap,Ng=class e extends Map{static{Ag(this,`OrderedDict`)}#e;constructor(e){super(e),this.#e=[...super.keys()],Mg.set(this,!0)}set(e,t){return Mg.get(this)&&(this.has(e)?this.#e[this.#e.indexOf(e)]=e:this.#e.push(e)),super.set(e,t),this}insert(e,t,n){let r=this.has(t),i=this.#e.length,a=Ig(e),o=a>=0?a:i+a,s=o<0||o>=i?-1:o;if(s===this.size||r&&s===this.size-1||s===-1)return this.set(t,n),this;let c=this.size+ +!r;a<0&&o++;let l=[...this.#e],u,d=!1;for(let e=o;e<c;e++)if(o===e){let i=l[e];l[e]===t&&(i=l[e+1]),r&&this.delete(t),u=this.get(i),this.set(t,n)}else{!d&&l[e-1]===t&&(d=!0);let n=l[d?e:e-1],r=u;u=this.get(n),this.delete(n),this.set(n,r)}return this}with(t,n,r){let i=new e(this);return i.insert(t,n,r),i}before(e){let t=this.#e.indexOf(e)-1;if(!(t<0))return this.entryAt(t)}setBefore(e,t,n){let r=this.#e.indexOf(e);return r===-1?this:this.insert(r,t,n)}after(e){let t=this.#e.indexOf(e);if(t=t===-1||t===this.size-1?-1:t+1,t!==-1)return this.entryAt(t)}setAfter(e,t,n){let r=this.#e.indexOf(e);return r===-1?this:this.insert(r+1,t,n)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return this.#e=[],super.clear()}delete(e){let t=super.delete(e);return t&&this.#e.splice(this.#e.indexOf(e),1),t}deleteAt(e){let t=this.keyAt(e);return t!==void 0&&this.delete(t)}at(e){let t=Pg(this.#e,e);if(t!==void 0)return this.get(t)}entryAt(e){let t=Pg(this.#e,e);if(t!==void 0)return[t,this.get(t)]}indexOf(e){return this.#e.indexOf(e)}keyAt(e){return Pg(this.#e,e)}from(e,t){let n=this.indexOf(e);if(n===-1)return;let r=n+t;return r<0&&(r=0),r>=this.size&&(r=this.size-1),this.at(r)}keyFrom(e,t){let n=this.indexOf(e);if(n===-1)return;let r=n+t;return r<0&&(r=0),r>=this.size&&(r=this.size-1),this.keyAt(r)}find(e,t){let n=0;for(let r of this){if(Reflect.apply(e,t,[r,n,this]))return r;n++}}findIndex(e,t){let n=0;for(let r of this){if(Reflect.apply(e,t,[r,n,this]))return n;n++}return-1}filter(t,n){let r=[],i=0;for(let e of this)Reflect.apply(t,n,[e,i,this])&&r.push(e),i++;return new e(r)}map(t,n){let r=[],i=0;for(let e of this)r.push([e[0],Reflect.apply(t,n,[e,i,this])]),i++;return new e(r)}reduce(...e){let[t,n]=e,r=0,i=n??this.at(0);for(let n of this)i=r===0&&e.length===1?n:Reflect.apply(t,this,[i,n,r,this]),r++;return i}reduceRight(...e){let[t,n]=e,r=n??this.at(-1);for(let n=this.size-1;n>=0;n--){let i=this.at(n);r=n===this.size-1&&e.length===1?i:Reflect.apply(t,this,[r,i,n,this])}return r}toSorted(t){let n=[...this.entries()].sort(t);return new e(n)}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let n=this.keyAt(e),r=this.get(n);t.set(n,r)}return t}toSpliced(...t){let n=[...this.entries()];return n.splice(...t),new e(n)}slice(t,n){let r=new e,i=this.size-1;if(t===void 0)return r;t<0&&(t+=this.size),n!==void 0&&n>0&&(i=n-1);for(let e=t;e<=i;e++){let t=this.keyAt(e),n=this.get(t);r.set(t,n)}return r}every(e,t){let n=0;for(let r of this){if(!Reflect.apply(e,t,[r,n,this]))return!1;n++}return!0}some(e,t){let n=0;for(let r of this){if(Reflect.apply(e,t,[r,n,this]))return!0;n++}return!1}};function Pg(e,t){if(`at`in Array.prototype)return Array.prototype.at.call(e,t);let n=Fg(e,t);return n===-1?void 0:e[n]}Ag(Pg,`at`);function Fg(e,t){let n=e.length,r=Ig(t),i=r>=0?r:n+r;return i<0||i>=n?-1:i}Ag(Fg,`toSafeIndex`);function Ig(e){return e!==e||e===0?0:Math.trunc(e)}Ag(Ig,`toSafeInteger`);function Lg(e){let t=e+`CollectionProvider`,[n,r]=sg(t),[i,a]=n(t,{collectionElement:null,collectionRef:{current:null},collectionRefObject:{current:null},itemMap:new Ng,setItemMap:Ag(()=>void 0,`setItemMap`)}),o=Ag(({state:e,...t})=>e?(0,j.jsx)(c,{...t,state:e}):(0,j.jsx)(s,{...t}),`CollectionProvider`);o.displayName=t;let s=Ag(e=>{let t=h();return(0,j.jsx)(c,{...e,state:t})},`CollectionInit`);s.displayName=t+`Init`;let c=Ag(e=>{let{scope:t,children:n,state:r}=e,a=O.useRef(null),[o,s]=O.useState(null),c=pg(a,s),[l,u]=r;return O.useEffect(()=>{if(!o)return;let e=Vg(()=>{});return e.observe(o,{childList:!0,subtree:!0}),()=>{e.disconnect()}},[o]),(0,j.jsx)(i,{scope:t,itemMap:l,setItemMap:u,collectionRef:c,collectionRefObject:a,collectionElement:o,children:n})},`CollectionProviderImpl`);c.displayName=t+`Impl`;let l=e+`CollectionSlot`,u=gg(l),d=O.forwardRef((e,t)=>{let{scope:n,children:r}=e,i=pg(t,a(l,n).collectionRef);return(0,j.jsx)(u,{ref:i,children:r})});d.displayName=l;let f=e+`CollectionItemSlot`,p=gg(f),m=O.forwardRef((e,t)=>{let{scope:n,children:r,...i}=e,o=O.useRef(null),[s,c]=O.useState(null),l=pg(t,o,c),{setItemMap:u}=a(f,n),d=O.useRef(i);Rg(d.current,i)||(d.current=i);let m=d.current;return O.useEffect(()=>{let e=m;return u(t=>s?t.has(s)?t.set(s,{...e,element:s}).toSorted(Bg):(t.set(s,{...e,element:s}),t.toSorted(Bg)):t),()=>{u(e=>!s||!e.has(s)?e:(e.delete(s),new Ng(e)))}},[s,m,u]),(0,j.jsx)(p,{"data-radix-collection-item":``,ref:l,children:r})});m.displayName=f;function h(){return O.useState(new Ng)}Ag(h,`useInitCollection`);function g(t){let{itemMap:n}=a(e+`CollectionConsumer`,t);return n}return Ag(g,`useCollection`),[{Provider:o,Slot:d,ItemSlot:m},{createCollectionScope:r,useCollection:g,useInitCollection:h}]}Ag(Lg,`createCollection`);function Rg(e,t){if(e===t)return!0;if(typeof e!=`object`||typeof t!=`object`||e==null||t==null)return!1;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||e[r]!==t[r])return!1;return!0}Ag(Rg,`shallowEqual`);function zg(e,t){return!!(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_PRECEDING)}Ag(zg,`isElementPreceding`);function Bg(e,t){return!e[1].element||!t[1].element?0:zg(e[1].element,t[1].element)?-1:1}Ag(Bg,`sortByDocumentPosition`);function Vg(e){return new MutationObserver(t=>{for(let n of t)if(n.type===`childList`){e();return}})}Ag(Vg,`getChildListObserver`);var Hg=Object.defineProperty,Ug=(e,t)=>Hg(e,`name`,{value:t,configurable:!0}),Wg=O.createContext(void 0);function Gg(e){let t=O.useContext(Wg);return e||t||`ltr`}Ug(Gg,`useDirection`);var Kg=Object.defineProperty,qg=(e,t)=>Kg(e,`name`,{value:t,configurable:!0}),Jg=[`a`,`button`,`div`,`form`,`h2`,`h3`,`img`,`input`,`label`,`li`,`nav`,`ol`,`p`,`select`,`span`,`svg`,`ul`].reduce((e,t)=>{let n=gg(`Primitive.${t}`),r=O.forwardRef((e,r)=>{let{asChild:i,...a}=e,o=i?n:t;return typeof window<`u`&&(window[Symbol.for(`radix-ui`)]=!0),(0,j.jsx)(o,{...a,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function Yg(e,t){e&&mi.flushSync(()=>e.dispatchEvent(t))}qg(Yg,`dispatchDiscreteCustomEvent`);var Xg=Object.defineProperty,Zg=(e,t)=>Xg(e,`name`,{value:t,configurable:!0});function Qg(e){let t=O.useRef(e);return O.useEffect(()=>{t.current=e}),O.useMemo(()=>((...e)=>t.current?.(...e)),[])}Zg(Qg,`useCallbackRef`);var $g=Object.defineProperty,e_=(e,t)=>$g(e,`name`,{value:t,configurable:!0}),t_=`dismissableLayer.update`,n_=`dismissableLayer.pointerDownOutside`,r_=`dismissableLayer.focusOutside`,i_,a_=O.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),o_=O.forwardRef(e_(function(e,t){let{disableOutsidePointerEvents:n=!1,deferPointerDownOutside:r=!1,onEscapeKeyDown:i,onPointerDownOutside:a,onFocusOutside:o,onInteractOutside:s,onDismiss:c,...l}=e,u=O.useContext(a_),[d,f]=O.useState(null),p=d?.ownerDocument??globalThis?.document,[,m]=O.useState({}),h=pg(t,f),g=Array.from(u.layers),[_]=[...u.layersWithOutsidePointerEventsDisabled].slice(-1),v=_?g.indexOf(_):-1,y=d?g.indexOf(d):-1,b=u.layersWithOutsidePointerEventsDisabled.size>0,x=y>=v,S=O.useRef(!1),C=l_(e=>{a?.(e),s?.(e),e.defaultPrevented||c?.()},{ownerDocument:p,deferPointerDownOutside:r,isDeferredPointerDownOutsideRef:S,dismissableSurfaces:u.dismissableSurfaces,shouldHandlePointerDownOutside:O.useCallback(e=>{if(!(e instanceof Node))return!1;let t=[...u.branches].some(t=>t.contains(e));return x&&!t},[u.branches,x])}),w=u_(e=>{if(r&&S.current)return;let t=e.target;[...u.branches].some(e=>e.contains(t))||(o?.(e),s?.(e),e.defaultPrevented||c?.())},p),T=d?y===g.length-1:!1,ee=Qg(e=>{e.key===`Escape`&&(i?.(e),!e.defaultPrevented&&c&&(e.preventDefault(),c()))});return O.useEffect(()=>{if(T)return p.addEventListener(`keydown`,ee,{capture:!0}),()=>p.removeEventListener(`keydown`,ee,{capture:!0})},[p,T,ee]),O.useEffect(()=>{if(d)return n&&(u.layersWithOutsidePointerEventsDisabled.size===0&&(i_=p.body.style.pointerEvents,p.body.style.pointerEvents=`none`),u.layersWithOutsidePointerEventsDisabled.add(d)),u.layers.add(d),d_(),()=>{n&&(u.layersWithOutsidePointerEventsDisabled.delete(d),u.layersWithOutsidePointerEventsDisabled.size===0&&(p.body.style.pointerEvents=i_))}},[d,p,n,u]),O.useEffect(()=>()=>{d&&(u.layers.delete(d),u.layersWithOutsidePointerEventsDisabled.delete(d),d_())},[d,u]),O.useEffect(()=>{let e=e_(()=>m({}),`handleUpdate`);return document.addEventListener(t_,e),()=>document.removeEventListener(t_,e)},[]),(0,j.jsx)(Jg.div,{...l,ref:h,style:{pointerEvents:b?x?`auto`:`none`:void 0,...e.style},onFocusCapture:$h(e.onFocusCapture,w.onFocusCapture),onBlurCapture:$h(e.onBlurCapture,w.onBlurCapture),onPointerDownCapture:$h(e.onPointerDownCapture,C.onPointerDownCapture)})},`DismissableLayer`));function s_(){let e=O.useContext(a_),[t,n]=O.useState(null);return O.useEffect(()=>{if(t)return e.dismissableSurfaces.add(t),()=>{e.dismissableSurfaces.delete(t)}},[t,e.dismissableSurfaces]),n}e_(s_,`useDismissableLayerSurface`);var c_=e_(()=>!0,`IS_TRUE`);function l_(e,t){let{ownerDocument:n=globalThis?.document,deferPointerDownOutside:r=!1,isDeferredPointerDownOutsideRef:i,dismissableSurfaces:a,shouldHandlePointerDownOutside:o=c_}=t,s=Qg(e),c=O.useRef(!1),l=O.useRef(!1),u=O.useRef(new Map),d=O.useRef(()=>{});return O.useEffect(()=>{function e(){l.current=!1,i.current=!1,u.current.clear()}e_(e,`resetOutsideInteraction`);function t(){return Array.from(u.current.values()).some(Boolean)}e_(t,`isOutsideInteractionIntercepted`);function f(e){if(!l.current)return;let t=e.target;t instanceof Node&&[...a].some(e=>e.contains(t))||u.current.set(e.type,!0),e.type===`click`&&window.setTimeout(()=>{l.current&&d.current()},0)}e_(f,`handleInteractionCapture`);function p(e){l.current&&u.current.set(e.type,!1)}e_(p,`handleInteractionBubble`);let m=e_(a=>{if(a.target&&!c.current){let f=function(){n.removeEventListener(`click`,d.current);let r=t();e(),r||f_(n_,s,p,{discrete:!0})};if(e_(f,`handleAndDispatchPointerDownOutsideEvent`),!o(a.target)){n.removeEventListener(`click`,d.current),e(),c.current=!1;return}let p={originalEvent:a};l.current=!0,i.current=r&&a.button===0,u.current.clear(),!r||a.button!==0?f():(n.removeEventListener(`click`,d.current),d.current=f,n.addEventListener(`click`,d.current,{once:!0}))}else n.removeEventListener(`click`,d.current),e();c.current=!1},`handlePointerDown`),h=[`pointerup`,`mousedown`,`mouseup`,`touchstart`,`touchend`,`click`];for(let e of h)n.addEventListener(e,f,!0),n.addEventListener(e,p);let g=window.setTimeout(()=>{n.addEventListener(`pointerdown`,m)},0);return()=>{window.clearTimeout(g),n.removeEventListener(`pointerdown`,m),n.removeEventListener(`click`,d.current);for(let e of h)n.removeEventListener(e,f,!0),n.removeEventListener(e,p)}},[n,s,r,i,a,o]),{onPointerDownCapture:e_(()=>c.current=!0,`onPointerDownCapture`)}}e_(l_,`usePointerDownOutside`);function u_(e,t=globalThis?.document){let n=Qg(e),r=O.useRef(!1);return O.useEffect(()=>{let e=e_(e=>{e.target&&!r.current&&f_(r_,n,{originalEvent:e},{discrete:!1})},`handleFocus`);return t.addEventListener(`focusin`,e),()=>t.removeEventListener(`focusin`,e)},[t,n]),{onFocusCapture:e_(()=>r.current=!0,`onFocusCapture`),onBlurCapture:e_(()=>r.current=!1,`onBlurCapture`)}}e_(u_,`useFocusOutside`);function d_(){let e=new CustomEvent(t_);document.dispatchEvent(e)}e_(d_,`dispatchUpdate`);function f_(e,t,n,{discrete:r}){let i=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?Yg(i,a):i.dispatchEvent(a)}e_(f_,`handleAndDispatchCustomEvent`);var p_=Object.defineProperty,m_=(e,t)=>p_(e,`name`,{value:t,configurable:!0}),h_=0,g_=null;function __(e){return v_(),e.children}m_(__,`FocusGuards`);function v_(){O.useEffect(()=>{g_||={start:y_(),end:y_()};let{start:e,end:t}=g_;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement(`afterbegin`,e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement(`beforeend`,t),h_++,()=>{h_===1&&(g_?.start.remove(),g_?.end.remove(),g_=null),h_=Math.max(0,h_-1)}},[])}m_(v_,`useFocusGuards`);function y_(){let e=document.createElement(`span`);return e.setAttribute(`data-radix-focus-guard`,``),e.tabIndex=0,e.style.outline=`none`,e.style.opacity=`0`,e.style.position=`fixed`,e.style.pointerEvents=`none`,e}m_(y_,`createFocusGuard`);var b_=Object.defineProperty,x_=(e,t)=>b_(e,`name`,{value:t,configurable:!0}),S_=`focusScope.autoFocusOnMount`,C_=`focusScope.autoFocusOnUnmount`,w_={bubbles:!1,cancelable:!0},T_=O.forwardRef(x_(function(e,t){let{loop:n=!1,trapped:r=!1,onMountAutoFocus:i,onUnmountAutoFocus:a,...o}=e,[s,c]=O.useState(null),l=Qg(i),u=Qg(a),d=O.useRef(null),f=pg(t,c),p=O.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;O.useEffect(()=>{if(r){let e=function(e){if(p.paused||!s)return;let t=e.target;s.contains(t)?d.current=t:M_(d.current,{select:!0})},t=function(e){if(p.paused||!s)return;let t=e.relatedTarget;t!==null&&(s.contains(t)||M_(d.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&M_(s)};x_(e,`handleFocusIn`),x_(t,`handleFocusOut`),x_(n,`handleMutations`),document.addEventListener(`focusin`,e),document.addEventListener(`focusout`,t);let r=new MutationObserver(n);return s&&r.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener(`focusin`,e),document.removeEventListener(`focusout`,t),r.disconnect()}}},[r,s,p.paused]),O.useEffect(()=>{if(s){N_.add(p);let e=document.activeElement;if(!s.contains(e)){let t=new CustomEvent(S_,w_);s.addEventListener(S_,l),s.dispatchEvent(t),t.defaultPrevented||(E_(I_(O_(s)),{select:!0}),document.activeElement===e&&M_(s))}return()=>{s.removeEventListener(S_,l),setTimeout(()=>{let t=new CustomEvent(C_,w_);s.addEventListener(C_,u),s.dispatchEvent(t),t.defaultPrevented||M_(e??document.body,{select:!0}),s.removeEventListener(C_,u),N_.remove(p)},0)}}},[s,l,u,p]);let m=O.useCallback(e=>{if(!n&&!r||p.paused)return;let t=e.key===`Tab`&&!e.altKey&&!e.ctrlKey&&!e.metaKey,i=document.activeElement;if(t&&i){let t=e.currentTarget,[r,a]=D_(t);r&&a?!e.shiftKey&&i===a?(e.preventDefault(),n&&M_(r,{select:!0})):e.shiftKey&&i===r&&(e.preventDefault(),n&&M_(a,{select:!0})):i===t&&e.preventDefault()}},[n,r,p.paused]);return(0,j.jsx)(Jg.div,{tabIndex:-1,...o,ref:f,onKeyDown:m})},`FocusScope`));function E_(e,{select:t=!1}={}){let n=document.activeElement;for(let r of e)if(M_(r,{select:t}),document.activeElement!==n)return}x_(E_,`focusFirst`);function D_(e){let t=O_(e);return[k_(t,e),k_(t.reverse(),e)]}x_(D_,`getTabbableEdges`);function O_(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:x_(e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP},`acceptNode`)});for(;n.nextNode();)t.push(n.currentNode);return t}x_(O_,`getTabbableCandidates`);function k_(e,t){let n=typeof t.checkVisibility==`function`&&t.checkVisibility({checkVisibilityCSS:!0});for(let r of e)if(!(n?!r.checkVisibility({checkVisibilityCSS:!0}):A_(r,{upTo:t})))return r}x_(k_,`findVisible`);function A_(e,{upTo:t}){if(getComputedStyle(e).visibility===`hidden`)return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display===`none`)return!0;e=e.parentElement}return!1}x_(A_,`isHidden`);function j_(e){return e instanceof HTMLInputElement&&`select`in e}x_(j_,`isSelectableInput`);function M_(e,{select:t=!1}={}){if(e&&e.focus){let n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&j_(e)&&t&&e.select()}}x_(M_,`focus`);var N_=P_();function P_(){let e=[];return{add(t){let n=e[0];t!==n&&n?.pause(),e=F_(e,t),e.unshift(t)},remove(t){e=F_(e,t),e[0]?.resume()}}}x_(P_,`createFocusScopesStack`);function F_(e,t){let n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}x_(F_,`arrayRemove`);function I_(e){return e.filter(e=>e.tagName!==`A`)}x_(I_,`removeLinks`);var L_=globalThis?.document?O.useLayoutEffect:()=>{},R_=Object.defineProperty,z_=(e,t)=>R_(e,`name`,{value:t,configurable:!0}),B_=O.useId||(()=>void 0),V_=0;function H_(e){let[t,n]=O.useState(B_());return L_(()=>{e||n(e=>e??String(V_++))},[e]),e||(t?`radix-${t}`:``)}z_(H_,`useId`);var U_=[`top`,`right`,`bottom`,`left`],W_=Math.min,G_=Math.max,K_=Math.round,q_=Math.floor,J_=e=>({x:e,y:e}),Y_={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function X_(e,t,n){return G_(e,W_(t,n))}function Z_(e,t){return typeof e==`function`?e(t):e}function Q_(e){return e.split(`-`)[0]}function $_(e){return e.split(`-`)[1]}function ev(e){return e===`x`?`y`:`x`}function tv(e){return e===`y`?`height`:`width`}function nv(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function rv(e){return ev(nv(e))}function iv(e,t,n){n===void 0&&(n=!1);let r=$_(e),i=rv(e),a=tv(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=pv(o)),[o,pv(o)]}function av(e){let t=pv(e);return[ov(e),t,ov(t)]}function ov(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var sv=[`left`,`right`],cv=[`right`,`left`],lv=[`top`,`bottom`],uv=[`bottom`,`top`];function dv(e,t,n){switch(e){case`top`:case`bottom`:return n?t?cv:sv:t?sv:cv;case`left`:case`right`:return t?lv:uv;default:return[]}}function fv(e,t,n,r){let i=$_(e),a=dv(Q_(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(ov)))),a}function pv(e){let t=Q_(e);return Y_[t]+e.slice(t.length)}function mv(e){return{top:e.top??0,right:e.right??0,bottom:e.bottom??0,left:e.left??0}}function hv(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:mv(e)}function gv(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function _v(e,t,n){let{reference:r,floating:i}=e,a=nv(t),o=rv(t),s=tv(o),c=Q_(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}let m=$_(t);return m&&(p[o]+=f*(m===`end`?1:-1)*(n&&l?-1:1)),p}async function vv(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=Z_(t,e),p=hv(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=gv(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=gv(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var yv=50,bv=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:vv},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=_v(l,r,c),f=r,p=0,m={};for(let n=0;n<a.length;n++){let h=a[n];if(!h)continue;let{name:g,fn:_}=h,{x:v,y,data:b,reset:x}=await _({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:m,rects:l,platform:s,elements:{reference:e,floating:t}});u=v??u,d=y??d,m[g]={...m[g],...b},x&&p<yv&&(p++,typeof x==`object`&&(x.placement&&(f=x.placement),x.rects&&(l=x.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):x.rects),{x:u,y:d}=_v(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},xv=e=>({name:`arrow`,options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:o,elements:s,middlewareData:c}=t,{element:l,padding:u=0}=Z_(e,t)||{};if(l==null)return{};let d=hv(u),f={x:n,y:r},p=rv(i),m=tv(p),h=await o.getDimensions(l),g=p===`y`,_=g?`top`:`left`,v=g?`bottom`:`right`,y=g?`clientHeight`:`clientWidth`,b=a.reference[m]+a.reference[p]-f[p]-a.floating[m],x=f[p]-a.reference[p],S=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l)),C=S?S[y]:0;(!C||!await(o.isElement==null?void 0:o.isElement(S)))&&(C=s.floating[y]||a.floating[m]);let w=b/2-x/2,T=C/2-h[m]/2-1,ee=W_(d[_],T),te=W_(d[v],T),E=C-h[m]-te,ne=C/2-h[m]/2+w,D=X_(ee,ne,E),re=!c.arrow&&$_(i)!=null&&ne!==D&&a.reference[m]/2-(ne<ee?ee:te)-h[m]/2<0,O=re?ne<ee?ne-ee:ne-E:0;return{[p]:f[p]+O,data:{[p]:D,centerOffset:ne-D-O,...re&&{alignmentOffset:O}},reset:re}}}),Sv=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=Z_(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=Q_(r),_=nv(o),v=Q_(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[pv(o)]:av(o)),x=p!==`none`;!d&&x&&b.push(...fv(o,m,p,y));let S=[o,...b],C=await s.detectOverflow(t,h),w=[],T=i.flip?.overflows||[];if(l&&w.push(C[g]),u){let e=iv(r,a,y);w.push(C[e[0]],C[e[1]])}if(T=[...T,{placement:r,overflows:w}],!w.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(u!==`alignment`||_===nv(t)||T.every(e=>nv(e.placement)!==_||e.overflows[0]>0)))return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=nv(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o}if(r!==n)return{reset:{placement:n}}}return{}}}};function Cv(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function wv(e){return U_.some(t=>e[t]>=0)}var Tv=function(e){return e===void 0&&(e={}),{name:`hide`,options:e,async fn(t){let{rects:n,platform:r}=t,{strategy:i=`referenceHidden`,...a}=Z_(e,t);switch(i){case`referenceHidden`:{let e=Cv(await r.detectOverflow(t,{...a,elementContext:`reference`}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:wv(e)}}}case`escaped`:{let e=Cv(await r.detectOverflow(t,{...a,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:wv(e)}}}default:return{}}}}},Ev=new Set([`left`,`top`]);async function Dv(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=Q_(n),s=$_(n),c=nv(n)===`y`,l=Ev.has(o)?-1:1,u=a&&c?-1:1,d=Z_(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var Ov=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await Dv(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},kv=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=Z_(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=nv(i),p=ev(f),m=u[p],h=u[f],g=(e,t)=>X_(t+d[e===`y`?`top`:`left`],t,t-d[e===`y`?`bottom`:`right`]);o&&(m=g(p,m)),s&&(h=g(f,h));let _=c.fn({...t,[p]:m,[f]:h});return{..._,data:{x:_.x-n,y:_.y-r,enabled:{[p]:o,[f]:s}}}}}},Av=function(e){return e===void 0&&(e={}),{options:e,fn(t){let{x:n,y:r,placement:i,rects:a,middlewareData:o}=t,{offset:s=0,mainAxis:c=!0,crossAxis:l=!0}=Z_(e,t),u={x:n,y:r},d=nv(i),f=ev(d),p=u[f],m=u[d],h=Z_(s,t),g=typeof h==`number`?{mainAxis:h,crossAxis:0}:{mainAxis:h.mainAxis??0,crossAxis:h.crossAxis??0};if(c){let e=f===`y`?`height`:`width`,t=a.reference[f]-a.floating[e]+g.mainAxis,n=a.reference[f]+a.reference[e]-g.mainAxis;p<t?p=t:p>n&&(p=n)}if(l){let e=f===`y`?`width`:`height`,t=Ev.has(Q_(i)),n=a.reference[d]-a.floating[e]+(t&&o.offset?.[d]||0)+(t?0:g.crossAxis),r=a.reference[d]+a.reference[e]+(t?0:o.offset?.[d]||0)-(t?g.crossAxis:0);m<n?m=n:m>r&&(m=r)}return{[f]:p,[d]:m}}}},jv=function(e){return e===void 0&&(e={}),{name:`size`,options:e,async fn(t){let{placement:n,rects:r,platform:i,elements:a}=t,{apply:o=()=>{},...s}=Z_(e,t),c=await i.detectOverflow(t,s),l=Q_(n),u=$_(n),d=nv(n)===`y`,{width:f,height:p}=r.floating,m,h;l===`top`||l===`bottom`?(m=l,h=u===(await(i.isRTL==null?void 0:i.isRTL(a.floating))?`start`:`end`)?`left`:`right`):(h=l,m=u===`end`?`top`:`bottom`);let g=p-c.top-c.bottom,_=f-c.left-c.right,v=W_(p-c[m],g),y=W_(f-c[h],_),b=t.middlewareData.shift,x=!b,S=v,C=y;b!=null&&b.enabled.x&&(C=_),b!=null&&b.enabled.y&&(S=g),x&&!u&&(d?C=f-2*G_(c.left,c.right):S=p-2*G_(c.top,c.bottom)),await o({...t,availableWidth:C,availableHeight:S});let w=await i.getDimensions(a.floating);return f!==w.width||p!==w.height?{reset:{rects:!0}}:{}}}};function Mv(){return typeof window<`u`}function Nv(e){return Iv(e)?(e.nodeName||``).toLowerCase():`#document`}function Pv(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Fv(e){return((Iv(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function Iv(e){return Mv()?e instanceof Node||e instanceof Pv(e).Node:!1}function Lv(e){return Mv()?e instanceof Element||e instanceof Pv(e).Element:!1}function Rv(e){return Mv()?e instanceof HTMLElement||e instanceof Pv(e).HTMLElement:!1}function zv(e){return!Mv()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof Pv(e).ShadowRoot}function Bv(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=Zv(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function Vv(e){return/^(table|td|th)$/.test(Nv(e))}function Hv(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var Uv=/transform|translate|scale|rotate|perspective|filter/,Wv=/paint|layout|strict|content/,Gv=e=>!!e&&e!==`none`,Kv;function qv(e){let t=Lv(e)?Zv(e):e;return Gv(t.transform)||Gv(t.translate)||Gv(t.scale)||Gv(t.rotate)||Gv(t.perspective)||!Yv()&&(Gv(t.backdropFilter)||Gv(t.filter))||Uv.test(t.willChange||``)||Wv.test(t.contain||``)}function Jv(e){let t=$v(e);for(;Rv(t)&&!Xv(t);){if(qv(t))return t;if(Hv(t))return null;t=$v(t)}return null}function Yv(){return Kv??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),Kv}function Xv(e){return/^(html|body|#document)$/.test(Nv(e))}function Zv(e){return Pv(e).getComputedStyle(e)}function Qv(e){return Lv(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function $v(e){if(Nv(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||zv(e)&&e.host||Fv(e);return zv(t)?t.host:t}function ey(e){let t=$v(e);return Xv(t)?(e.ownerDocument||e).body:Rv(t)&&Bv(t)?t:ey(t)}function ty(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=ey(e),i=r===e.ownerDocument?.body,a=Pv(r);if(i){let e=ny(a);return t.concat(a,a.visualViewport||[],Bv(r)?r:[],e&&n?ty(e):[])}return t.concat(r,ty(r,[],n))}function ny(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function ry(e){let t=Zv(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=Rv(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=K_(n)!==a||K_(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function iy(e){return Lv(e)?e:e.contextElement}function ay(e){let t=iy(e);if(!Rv(t))return J_(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=ry(t),o=(a?K_(n.width):n.width)/r,s=(a?K_(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var oy=J_(0);function sy(e){let t=Pv(e);return!Yv()||!t.visualViewport?oy:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function cy(e,t,n){return t===void 0&&(t=!1),!!n&&t&&n===Pv(e)}function ly(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=iy(e),o=J_(1);t&&(r?Lv(r)&&(o=ay(r)):o=ay(e));let s=cy(a,n,r)?sy(a):J_(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a&&r){let e=Pv(a),t=Lv(r)?Pv(r):r,n=e,i=ny(n);for(;i&&t!==n;){let e=ay(i),t=i.getBoundingClientRect(),r=Zv(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=Pv(i),i=ny(n)}}return gv({width:u,height:d,x:c,y:l})}function uy(e,t){let n=Qv(e).scrollLeft;return t?t.left+n:ly(Fv(e)).left+n}function dy(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-uy(e,n),y:n.top+t.scrollTop}}function fy(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=Fv(r),s=t?Hv(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=J_(1),u=J_(0),d=Rv(r);if((d||!a)&&((Nv(r)!==`body`||Bv(o))&&(c=Qv(r)),d)){let e=ly(r);l=ay(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?dy(o,c):J_(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function py(e){return e.getClientRects?Array.from(e.getClientRects()):[]}function my(e){let t=Qv(e),n=e.ownerDocument.body,r=G_(e.scrollWidth,e.clientWidth,n.scrollWidth,n.clientWidth),i=G_(e.scrollHeight,e.clientHeight,n.scrollHeight,n.clientHeight),a=-t.scrollLeft+uy(e),o=-t.scrollTop;return Zv(n).direction===`rtl`&&(a+=G_(e.clientWidth,n.clientWidth)-r),{width:r,height:i,x:a,y:o}}var hy=25;function gy(e,t,n){n===void 0&&(n=`viewport`);let r=n===`layoutViewport`,i=Pv(e),a=Fv(e),o=i.visualViewport,s=a.clientWidth,c=a.clientHeight,l=0,u=0;if(o){let e=!Yv()||t===`fixed`;r?e||(l=-o.offsetLeft,u=-o.offsetTop):(s=o.width,c=o.height,e&&(l=o.offsetLeft,u=o.offsetTop))}if(uy(a)<=0){let e=a.ownerDocument,t=e.body,n=getComputedStyle(t),r=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,i=Math.abs(a.clientWidth-t.clientWidth-r),o=getComputedStyle(a).scrollbarGutter===`stable both-edges`?i/2:i;o<=hy&&(s-=o)}return{width:s,height:c,x:l,y:u}}function _y(e,t){let n=ly(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=ay(e);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function vy(e,t,n){let r;if(t===`viewport`||t===`layoutViewport`)r=gy(e,n,t);else if(t===`document`)r=my(Fv(e));else if(Lv(t))r=_y(t,n);else{let n=sy(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return gv(r)}function yy(e,t){let n=t.get(e);if(n)return n;let r=ty(e,[],!1).filter(e=>Lv(e)&&Nv(e)!==`body`),i=null,a=Zv(e).position===`fixed`,o=a?$v(e):e;for(;Lv(o)&&!Xv(o);){let e=Zv(o),t=qv(o),n=i?i.position:a?`fixed`:``;!t&&(n===`fixed`||n===`absolute`&&e.position===`static`)?r=r.filter(e=>e!==o):i=e,o=$v(o)}return t.set(e,r),r}function by(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?Hv(t)?[]:yy(t,this._c):[].concat(n),r],o=vy(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e<a.length;e++){let n=vy(t,a[e],i);s=G_(n.top,s),c=W_(n.right,c),l=W_(n.bottom,l),u=G_(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function xy(e){let{width:t,height:n}=ry(e);return{width:t,height:n}}function Sy(e,t,n){let r=Rv(t),i=Fv(t),a=n===`fixed`,o=ly(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=J_(0);if((r||!a)&&((Nv(t)!==`body`||Bv(i))&&(s=Qv(t)),r)){let e=ly(t,!0,a,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}!r&&i&&(c.x=uy(i));let l=i&&!r&&!a?dy(i,s):J_(0);return{x:o.left+s.scrollLeft-c.x-l.x,y:o.top+s.scrollTop-c.y-l.y,width:o.width,height:o.height}}function Cy(e){return Zv(e).position===`static`}function wy(e,t){if(!Rv(e)||Zv(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return Fv(e)===n&&(n=n.ownerDocument.body),n}function Ty(e,t){let n=Pv(e);if(Hv(e))return n;if(!Rv(e)){let t=$v(e);for(;t&&!Xv(t);){if(Lv(t)&&!Cy(t))return t;t=$v(t)}return n}let r=wy(e,t);for(;r&&Vv(r)&&Cy(r);)r=wy(r,t);return r&&Xv(r)&&Cy(r)&&!qv(r)?n:r||Jv(e)||n}var Ey=async function(e){let t=this.getOffsetParent||Ty,n=this.getDimensions,r=await n(e.floating);return{reference:Sy(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function Dy(e){return Zv(e).direction===`rtl`}var Oy={convertOffsetParentRelativeRectToViewportRelativeRect:fy,getDocumentElement:Fv,getClippingRect:by,getOffsetParent:Ty,getElementRects:Ey,getClientRects:py,getDimensions:xy,getScale:ay,isElement:Lv,isRTL:Dy};function ky(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function Ay(e,t,n){let r=null,i,a=Fv(e);function o(){var e;clearTimeout(i),(e=r)==null||e.disconnect(),r=null}function s(n,c){n===void 0&&(n=!1),c===void 0&&(c=1),o();let l=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=l;if(n||t(),!f||!p)return;let m=q_(d),h=q_(a.clientWidth-(u+f)),g=q_(a.clientHeight-(d+p)),_=q_(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:G_(0,W_(1,c))||1},y=!0;function b(t){let n=t[0].intersectionRatio;if(!ky(l,e.getBoundingClientRect()))return s();if(n!==c){if(!y)return s();n?s(!1,n):i=setTimeout(()=>{s(!1,1e-7)},1e3)}y=!1}try{r=new IntersectionObserver(b,{...v,root:a.ownerDocument})}catch{r=new IntersectionObserver(b,v)}r.observe(e)}let c=Pv(e),l=()=>s(n);return c.addEventListener(`resize`,l),s(!0),()=>{c.removeEventListener(`resize`,l),o()}}function jy(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=iy(e),u=i||a?[...l?ty(l):[],...t?ty(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n),a&&e.addEventListener(`resize`,n)});let d=l&&s?Ay(l,n,a):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?ly(e):null;c&&g();function g(){let t=ly(e);h&&!ky(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var My=Ov,Ny=kv,Py=Sv,Fy=jv,Iy=Tv,Ly=xv,Ry=Av,zy=(e,t,n)=>{let r=new Map,i=n??{},a={...Oy,...i.platform,_c:r};return bv(e,t,{...i,platform:a})},By=typeof document<`u`?O.useLayoutEffect:function(){};function Vy(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e==`function`&&e.toString()===t.toString())return!0;let n,r,i;if(e&&t&&typeof e==`object`){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!Vy(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){let n=i[r];if(!(n===`_owner`&&e.$$typeof)&&!Vy(e[n],t[n]))return!1}return!0}return e!==e&&t!==t}function Hy(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Uy(e,t){let n=Hy(e);return Math.round(t*n)/n}function Wy(e){let t=O.useRef(e);return By(()=>{t.current=e}),t}function Gy(e){e===void 0&&(e={});let{placement:t=`bottom`,strategy:n=`absolute`,middleware:r=[],platform:i,elements:{reference:a,floating:o}={},transform:s=!0,whileElementsMounted:c,open:l}=e,[u,d]=O.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[f,p]=O.useState(r);Vy(f,r)||p(r);let[m,h]=O.useState(null),[g,_]=O.useState(null),v=O.useCallback(e=>{e!==S.current&&(S.current=e,h(e))},[]),y=O.useCallback(e=>{e!==C.current&&(C.current=e,_(e))},[]),b=a||m,x=o||g,S=O.useRef(null),C=O.useRef(null),w=O.useRef(u),T=c!=null,ee=Wy(c),te=Wy(i),E=Wy(l),ne=O.useCallback(()=>{if(!S.current||!C.current)return;let e={placement:t,strategy:n,middleware:f};te.current&&(e.platform=te.current),zy(S.current,C.current,e).then(e=>{let t={...e,isPositioned:E.current!==!1};D.current&&!Vy(w.current,t)&&(w.current=t,mi.flushSync(()=>{d(t)}))})},[f,t,n,te,E]);By(()=>{l===!1&&w.current.isPositioned&&(w.current.isPositioned=!1,d(e=>({...e,isPositioned:!1})))},[l]);let D=O.useRef(!1);By(()=>(D.current=!0,()=>{D.current=!1}),[]),By(()=>{if(b&&(S.current=b),x&&(C.current=x),b&&x){if(ee.current)return ee.current(b,x,ne);ne()}},[b,x,ne,ee,T]);let re=O.useMemo(()=>({reference:S,floating:C,setReference:v,setFloating:y}),[v,y]),ie=O.useMemo(()=>({reference:b,floating:x}),[b,x]),ae=O.useMemo(()=>{let e={position:n,left:0,top:0};if(!ie.floating)return e;let t=Uy(ie.floating,u.x),r=Uy(ie.floating,u.y);return s?{...e,transform:`translate(`+t+`px, `+r+`px)`,...Hy(ie.floating)>=1.5&&{willChange:`transform`}}:{position:n,left:t,top:r}},[n,s,ie.floating,u.x,u.y]);return O.useMemo(()=>({...u,update:ne,refs:re,elements:ie,floatingStyles:ae}),[u,ne,re,ie,ae])}var Ky=e=>{function t(e){return{}.hasOwnProperty.call(e,`current`)}return{name:`arrow`,options:e,fn(n){let{element:r,padding:i}=typeof e==`function`?e(n):e;return r&&t(r)?r.current==null?{}:Ly({element:r.current,padding:i}).fn(n):r?Ly({element:r,padding:i}).fn(n):{}}}},qy=(e,t)=>{let n=My(e);return{name:n.name,fn:n.fn,options:[e,t]}},Jy=(e,t)=>{let n=Ny(e);return{name:n.name,fn:n.fn,options:[e,t]}},Yy=(e,t)=>({fn:Ry(e).fn,options:[e,t]}),Xy=(e,t)=>{let n=Py(e);return{name:n.name,fn:n.fn,options:[e,t]}},Zy=(e,t)=>{let n=Fy(e);return{name:n.name,fn:n.fn,options:[e,t]}},Qy=(e,t)=>{let n=Iy(e);return{name:n.name,fn:n.fn,options:[e,t]}},eee=(e,t)=>{let n=Ky(e);return{name:n.name,fn:n.fn,options:[e,t]}},$y=Object.defineProperty,eb=(e,t)=>$y(e,`name`,{value:t,configurable:!0});function tb(e){let[t,n]=O.useState(void 0);return L_(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{if(!Array.isArray(t)||!t.length)return;let r=t[0],i,a;if(`borderBoxSize`in r){let e=r.borderBoxSize,t=Array.isArray(e)?e[0]:e;i=t.inlineSize,a=t.blockSize}else i=e.offsetWidth,a=e.offsetHeight;n({width:i,height:a})});return t.observe(e,{box:`border-box`}),()=>t.unobserve(e)}n(void 0)},[e]),t}eb(tb,`useSize`);var nb=Object.defineProperty,rb=(e,t)=>nb(e,`name`,{value:t,configurable:!0}),ib=`Popper`,[ab,ob]=sg(ib),[sb,cb]=ab(ib),lb=rb(e=>{let{__scopePopper:t,children:n}=e,[r,i]=O.useState(null),[a,o]=O.useState(void 0);return(0,j.jsx)(sb,{scope:t,anchor:r,onAnchorChange:i,placementState:a,setPlacementState:o,children:n})},`Popper`),ub=`PopperAnchor`,db=O.forwardRef(rb(function(e,t){let{__scopePopper:n,virtualRef:r,...i}=e,a=cb(ub,n),o=O.useRef(null),s=a.onAnchorChange,c=pg(t,O.useCallback(e=>{o.current=e,e&&s(e)},[s])),l=O.useRef(null);O.useEffect(()=>{if(!r)return;let e=l.current;l.current=r.current,e!==l.current&&s(l.current)});let u=a.placementState&&_b(a.placementState),d=u?.[0],f=u?.[1];return r?null:(0,j.jsx)(Jg.div,{"data-radix-popper-side":d,"data-radix-popper-align":f,...i,ref:c})},`PopperAnchor`)),fb=`PopperContent`,[pb,tee]=ab(fb),mb=O.forwardRef(rb(function(e,t){let{__scopePopper:n,side:r=`bottom`,sideOffset:i=0,align:a=`center`,alignOffset:o=0,arrowPadding:s=0,avoidCollisions:c=!0,collisionBoundary:l=[],collisionPadding:u=0,sticky:d=`partial`,hideWhenDetached:f=!1,updatePositionStrategy:p=`optimized`,onPlaced:m,...h}=e,g=cb(fb,n),[_,v]=O.useState(null),y=pg(t,v),[b,x]=O.useState(null),S=tb(b),C=S?.width??0,w=S?.height??0,T=r+(a===`center`?``:`-`+a),ee=typeof u==`number`?u:{top:0,right:0,bottom:0,left:0,...u},te=Array.isArray(l)?l:[l],E=te.length>0,ne={padding:ee,boundary:te.filter(hb),altBoundary:E},{refs:D,floatingStyles:re,placement:ie,isPositioned:ae,middlewareData:oe}=Gy({strategy:`fixed`,placement:T,whileElementsMounted:rb((...e)=>jy(...e,{animationFrame:p===`always`}),`whileElementsMounted`),elements:{reference:g.anchor},middleware:[qy({mainAxis:i+w,alignmentAxis:o}),c&&Jy({mainAxis:!0,crossAxis:!1,limiter:d===`partial`?Yy():void 0,...ne}),c&&Xy({...ne}),Zy({...ne,apply:rb(({elements:e,rects:t,availableWidth:n,availableHeight:r})=>{let{width:i,height:a}=t.reference,o=e.floating.style;o.setProperty(`--radix-popper-available-width`,`${n}px`),o.setProperty(`--radix-popper-available-height`,`${r}px`),o.setProperty(`--radix-popper-anchor-width`,`${i}px`),o.setProperty(`--radix-popper-anchor-height`,`${a}px`)},`apply`)}),b&&eee({element:b,padding:s}),gb({arrowWidth:C,arrowHeight:w}),f&&Qy({strategy:`referenceHidden`,...ne,boundary:E?ne.boundary:void 0})]}),k=g.setPlacementState;L_(()=>(k(ie),()=>{k(void 0)}),[ie,k]);let[se,ce]=_b(ie),le=Qg(m);L_(()=>{ae&&le?.()},[ae,le]);let ue=oe.arrow?.x,de=oe.arrow?.y,fe=oe.arrow?.centerOffset!==0,[pe,me]=O.useState();return L_(()=>{_&&me(window.getComputedStyle(_).zIndex)},[_]),(0,j.jsx)(`div`,{ref:D.setFloating,"data-radix-popper-content-wrapper":``,style:{...re,transform:ae?re.transform:`translate(0, -200%)`,minWidth:`max-content`,zIndex:pe,"--radix-popper-transform-origin":[oe.transformOrigin?.x,oe.transformOrigin?.y].join(` `),...oe.hide?.referenceHidden&&{visibility:`hidden`,pointerEvents:`none`}},dir:e.dir,children:(0,j.jsx)(pb,{scope:n,placedSide:se,placedAlign:ce,onArrowChange:x,arrowX:ue,arrowY:de,shouldHideArrow:fe,children:(0,j.jsx)(Jg.div,{"data-side":se,"data-align":ce,...h,ref:y,style:{...h.style,animation:ae?h.style?.animation:`none`}})})})},`PopperContent`));function hb(e){return e!==null}rb(hb,`isNotNull`);var gb=rb(e=>({name:`transformOrigin`,options:e,fn(t){let{placement:n,rects:r,middlewareData:i}=t,a=i.arrow?.centerOffset!==0,o=a?0:e.arrowWidth,s=a?0:e.arrowHeight,[c,l]=_b(n),u={start:`0%`,center:`50%`,end:`100%`}[l],d=(i.arrow?.x??0)+o/2,f=(i.arrow?.y??0)+s/2,p=``,m=``;return c===`bottom`?(p=a?u:`${d}px`,m=`${-s}px`):c===`top`?(p=a?u:`${d}px`,m=`${r.floating.height+s}px`):c===`right`?(p=`${-s}px`,m=a?u:`${f}px`):c===`left`&&(p=`${r.floating.width+s}px`,m=a?u:`${f}px`),{data:{x:p,y:m}}}}),`transformOrigin`);function _b(e){let[t,n=`center`]=e.split(`-`);return[t,n]}rb(_b,`getSideAndAlignFromPlacement`);var vb=lb,yb=db,bb=mb,xb=Object.defineProperty,Sb=O.forwardRef(((e,t)=>xb(e,`name`,{value:t,configurable:!0}))(function(e,t){let{container:n,...r}=e,[i,a]=O.useState(!1);L_(()=>a(!0),[]);let o=n||i&&globalThis?.document?.body;return o?mi.createPortal((0,j.jsx)(Jg.div,{...r,ref:t}),o):null},`Portal`)),Cb=Object.defineProperty,wb=(e,t)=>Cb(e,`name`,{value:t,configurable:!0});function Tb(e,t){return O.useReducer((e,n)=>t[e][n]??e,e)}wb(Tb,`useStateMachine`);var Eb=wb(e=>{let{present:t,children:n}=e,r=Db(t),i=typeof n==`function`?n({present:r.isPresent}):O.Children.only(n),a=kb(r.ref,jb(i));return typeof n==`function`||r.isPresent?O.cloneElement(i,{ref:a}):null},`Presence`);function Db(e){let[t,n]=O.useState(),r=O.useRef(null),i=O.useRef(e),a=O.useRef(`none`),o=O.useRef(void 0),[s,c]=Tb(e?`mounted`:`unmounted`,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}});return O.useEffect(()=>{s===`mounted`?(a.current=o.current??Ab(r.current),o.current=void 0):a.current=`none`},[s]),L_(()=>{let t=r.current,n=i.current;if(n!==e){let r=a.current,s=Ab(t);e?(o.current=s,c(`MOUNT`)):s===`none`||t?.display===`none`?c(`UNMOUNT`):c(n&&r!==s?`ANIMATION_OUT`:`UNMOUNT`),i.current=e}},[e,c]),L_(()=>{if(t){let e,n=t.ownerDocument.defaultView??window,o=wb(a=>{let o=Ab(r.current).includes(CSS.escape(a.animationName));if(a.target===t&&o&&(c(`ANIMATION_END`),!i.current)){let r=t.style.animationFillMode;t.style.animationFillMode=`forwards`,e=n.setTimeout(()=>{t.style.animationFillMode===`forwards`&&(t.style.animationFillMode=r)})}},`handleAnimationEnd`),s=wb(e=>{e.target===t&&(a.current=Ab(r.current))},`handleAnimationStart`);return t.addEventListener(`animationstart`,s),t.addEventListener(`animationcancel`,o),t.addEventListener(`animationend`,o),()=>{n.clearTimeout(e),t.removeEventListener(`animationstart`,s),t.removeEventListener(`animationcancel`,o),t.removeEventListener(`animationend`,o)}}c(`ANIMATION_END`)},[t,c]),{isPresent:[`mounted`,`unmountSuspended`].includes(s),ref:O.useCallback(e=>{if(e){let t=getComputedStyle(e);r.current=t,o.current=Ab(t)}else r.current=null;n(e)},[])}}wb(Db,`usePresence`);function Ob(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}wb(Ob,`setRef`);function kb(...e){let t=O.useRef(e);return t.current=e,O.useCallback(e=>{let n=t.current,r=!1,i=n.map(t=>{let n=Ob(t,e);return!r&&typeof n==`function`&&(r=!0),n});if(r)return()=>{for(let e=0;e<i.length;e++){let t=i[e];typeof t==`function`?t():Ob(n[e],null)}}},[])}wb(kb,`useStableComposedRefs`);function Ab(e){return e?.animationName||`none`}wb(Ab,`getAnimationName`);function jb(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}wb(jb,`getElementRef`);var Mb=Object.defineProperty,Nb=(e,t)=>Mb(e,`name`,{value:t,configurable:!0}),Pb=O.useEffectEvent,Fb=O.useInsertionEffect;function Ib(e){if(typeof Pb==`function`)return Pb(e);let t=O.useRef(()=>{throw Error(`Cannot call an event handler while rendering.`)});return typeof Fb==`function`?Fb(()=>{t.current=e}):L_(()=>{t.current=e}),O.useMemo(()=>((...e)=>t.current?.(...e)),[])}Nb(Ib,`useEffectEvent`);var Lb=Object.defineProperty,Rb=(e,t)=>Lb(e,`name`,{value:t,configurable:!0}),zb=O.useInsertionEffect||L_;function Bb({prop:e,defaultProp:t,onChange:n=Rb(()=>{},`onChange`),caller:r}){let[i,a,o]=Vb({defaultProp:t,onChange:n}),s=e!==void 0;return[s?e:i,O.useCallback(t=>{if(s){let n=Hb(t)?t(e):t;n!==e&&o.current?.(n)}else a(t)},[s,e,a,o])]}Rb(Bb,`useControllableState`);function Vb({defaultProp:e,onChange:t}){let[n,r]=O.useState(e),i=O.useRef(n),a=O.useRef(t);return zb(()=>{a.current=t},[t]),O.useEffect(()=>{i.current!==n&&(a.current?.(n),i.current=n)},[n,i]),[n,r,a]}Rb(Vb,`useUncontrolledState`);function Hb(e){return typeof e==`function`}Rb(Hb,`isFunction`);var Ub=Symbol(`RADIX:SYNC_STATE`);function Wb(e,t,n,r){let{prop:i,defaultProp:a,onChange:o,caller:s}=t,c=i!==void 0,l=Ib(o),u=[{...n,state:a}];r&&u.push(r);let[d,f]=O.useReducer((t,n)=>{if(n.type===Ub)return{...t,state:n.state};let r=e(t,n);return c&&!Object.is(r.state,t.state)&&l(r.state),r},...u),p=d.state,m=O.useRef(p);O.useEffect(()=>{m.current!==p&&(m.current=p,c||l(p))},[p,m,c]);let h=O.useMemo(()=>i===void 0?d:{...d,state:i},[d,i]);return O.useEffect(()=>{c&&!Object.is(i,d.state)&&f({type:Ub,state:i})},[i,d.state,c]),[h,f]}Rb(Wb,`useControllableStateReducer`);var Gb=Object.defineProperty,Kb=(e,t)=>Gb(e,`name`,{value:t,configurable:!0});function qb(e){let t=O.useRef({value:e,previous:e});return O.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}Kb(qb,`usePrevious`);var Jb=Object.freeze({position:`absolute`,border:0,width:1,height:1,padding:0,margin:-1,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,wordWrap:`normal`}),Yb=function(e){return typeof document>`u`?null:(Array.isArray(e)?e[0]:e).ownerDocument.body},Xb=new WeakMap,Zb=new WeakMap,Qb={},$b=0,ex=function(e){return e&&(e.host||ex(e.parentNode))},tx=function(e,t){return t.map(function(t){if(e.contains(t))return t;var n=ex(t);return n&&e.contains(n)?n:(console.error(`aria-hidden`,t,`in not contained inside`,e,`. Doing nothing`),null)}).filter(function(e){return!!e})},nx=function(e,t,n,r){var i=tx(t,Array.isArray(e)?e:[e]);Qb[n]||(Qb[n]=new WeakMap);var a=Qb[n],o=[],s=new Set,c=new Set(i),l=function(e){e&&!s.has(e)&&(s.add(e),l(e.parentNode))};i.forEach(l);var u=function(e){e&&!c.has(e)&&Array.prototype.forEach.call(e.children,function(e){if(s.has(e))u(e);else try{var t=e.getAttribute(r),i=t!==null&&t!==`false`,c=(Xb.get(e)||0)+1,l=(a.get(e)||0)+1;Xb.set(e,c),a.set(e,l),o.push(e),c===1&&i&&Zb.set(e,!0),l===1&&e.setAttribute(n,`true`),i||e.setAttribute(r,`true`)}catch(t){console.error(`aria-hidden: cannot operate on `,e,t)}})};return u(t),s.clear(),$b++,function(){o.forEach(function(e){var t=Xb.get(e)-1,i=a.get(e)-1;Xb.set(e,t),a.set(e,i),t||(Zb.has(e)||e.removeAttribute(r),Zb.delete(e)),i||e.removeAttribute(n)}),$b--,$b||(Xb=new WeakMap,Xb=new WeakMap,Zb=new WeakMap,Qb={})}},rx=function(e,t,n){n===void 0&&(n=`data-aria-hidden`);var r=Array.from(Array.isArray(e)?e:[e]),i=t||Yb(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll(`[aria-live], script`))),nx(r,i,n,`aria-hidden`)):function(){return null}},ix=function(){return ix=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},ix.apply(this,arguments)};function ax(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n}function ox(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,a;r<i;r++)(a||!(r in t))&&(a||=Array.prototype.slice.call(t,0,r),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))}var sx=`right-scroll-bar-position`,cx=`width-before-scroll-bar`,lx=`with-scroll-bars-hidden`,ux=`--removed-body-scroll-bar-size`;function dx(e,t){return typeof e==`function`?e(t):e&&(e.current=t),e}function fx(e,t){var n=(0,O.useState)(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(e){var t=n.value;t!==e&&(n.value=e,n.callback(e,t))}}}})[0];return n.callback=t,n.facade}var px=typeof window<`u`?O.useLayoutEffect:O.useEffect,mx=new WeakMap;function hx(e,t){var n=fx(t||null,function(t){return e.forEach(function(e){return dx(e,t)})});return px(function(){var t=mx.get(n);if(t){var r=new Set(t),i=new Set(e),a=n.current;r.forEach(function(e){i.has(e)||dx(e,null)}),i.forEach(function(e){r.has(e)||dx(e,a)})}mx.set(n,e)},[e]),n}function gx(e){return e}function _x(e,t){t===void 0&&(t=gx);var n=[],r=!1;return{read:function(){if(r)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(e){var i=t(e,r);return n.push(i),function(){n=n.filter(function(e){return e!==i})}},assignSyncMedium:function(e){for(r=!0;n.length;){var t=n;n=[],t.forEach(e)}n={push:function(t){return e(t)},filter:function(){return n}}},assignMedium:function(e){r=!0;var t=[];if(n.length){var i=n;n=[],i.forEach(e),t=n}var a=function(){var n=t;t=[],n.forEach(e)},o=function(){return Promise.resolve().then(a)};o(),n={push:function(e){t.push(e),o()},filter:function(e){return t=t.filter(e),n}}}}}function vx(e){e===void 0&&(e={});var t=_x(null);return t.options=ix({async:!0,ssr:!1},e),t}var yx=function(e){var t=e.sideCar,n=ax(e,[`sideCar`]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw Error(`Sidecar medium not found`);return O.createElement(r,ix({},n))};yx.isSideCarExport=!0;function bx(e,t){return e.useMedium(t),yx}var xx=vx(),Sx=function(){},Cx=O.forwardRef(function(e,t){var n=O.useRef(null),r=O.useState({onScrollCapture:Sx,onWheelCapture:Sx,onTouchMoveCapture:Sx}),i=r[0],a=r[1],o=e.forwardProps,s=e.children,c=e.className,l=e.removeScrollBar,u=e.enabled,d=e.shards,f=e.sideCar,p=e.noRelative,m=e.noIsolation,h=e.inert,g=e.allowPinchZoom,_=e.as,v=_===void 0?`div`:_,y=e.gapMode,b=ax(e,[`forwardProps`,`children`,`className`,`removeScrollBar`,`enabled`,`shards`,`sideCar`,`noRelative`,`noIsolation`,`inert`,`allowPinchZoom`,`as`,`gapMode`]),x=f,S=hx([n,t]),C=ix(ix({},b),i);return O.createElement(O.Fragment,null,u&&O.createElement(x,{sideCar:xx,removeScrollBar:l,shards:d,noRelative:p,noIsolation:m,inert:h,setCallbacks:a,allowPinchZoom:!!g,lockRef:n,gapMode:y}),o?O.cloneElement(O.Children.only(s),ix(ix({},C),{ref:S})):O.createElement(v,ix({},C,{className:c,ref:S}),s))});Cx.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},Cx.classNames={fullWidth:cx,zeroRight:sx};var wx=function(){if(typeof __webpack_nonce__<`u`)return __webpack_nonce__};function Tx(){if(!document)return null;var e=document.createElement(`style`);e.type=`text/css`;var t=wx();return t&&e.setAttribute(`nonce`,t),e}function Ex(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function Dx(e){(document.head||document.getElementsByTagName(`head`)[0]).appendChild(e)}var Ox=function(){var e=0,t=null;return{add:function(n){e==0&&(t=Tx())&&(Ex(t,n),Dx(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},kx=function(){var e=Ox();return function(t,n){O.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},Ax=function(){var e=kx();return function(t){var n=t.styles,r=t.dynamic;return e(n,r),null}},jx={left:0,top:0,right:0,gap:0},Mx=function(e){return parseInt(e||``,10)||0},Nx=function(e){var t=window.getComputedStyle(document.body),n=t[e===`padding`?`paddingLeft`:`marginLeft`],r=t[e===`padding`?`paddingTop`:`marginTop`],i=t[e===`padding`?`paddingRight`:`marginRight`];return[Mx(n),Mx(r),Mx(i)]},Px=function(e){if(e===void 0&&(e=`margin`),typeof window>`u`)return jx;var t=Nx(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},Fx=Ax(),Ix=`data-scroll-locked`,Lx=function(e,t,n,r){var i=e.left,a=e.top,o=e.right,s=e.gap;return n===void 0&&(n=`margin`),`
59
+ .${lx} {
60
+ overflow: hidden ${r};
61
+ padding-right: ${s}px ${r};
62
+ }
63
+ body[${Ix}] {
64
+ overflow: hidden ${r};
65
+ overscroll-behavior: contain;
66
+ ${[t&&`position: relative ${r};`,n===`margin`&&`
67
+ padding-left: ${i}px;
68
+ padding-top: ${a}px;
69
+ padding-right: ${o}px;
70
+ margin-left:0;
71
+ margin-top:0;
72
+ margin-right: ${s}px ${r};
73
+ `,n===`padding`&&`padding-right: ${s}px ${r};`].filter(Boolean).join(``)}
74
+ }
75
+
76
+ .${sx} {
77
+ right: ${s}px ${r};
78
+ }
79
+
80
+ .${cx} {
81
+ margin-right: ${s}px ${r};
82
+ }
83
+
84
+ .${sx} .${sx} {
85
+ right: 0 ${r};
86
+ }
87
+
88
+ .${cx} .${cx} {
89
+ margin-right: 0 ${r};
90
+ }
91
+
92
+ body[${Ix}] {
93
+ ${ux}: ${s}px;
94
+ }
95
+ `},Rx=function(){var e=parseInt(document.body.getAttribute(`data-scroll-locked`)||`0`,10);return isFinite(e)?e:0},zx=function(){O.useEffect(function(){return document.body.setAttribute(Ix,(Rx()+1).toString()),function(){var e=Rx()-1;e<=0?document.body.removeAttribute(Ix):document.body.setAttribute(Ix,e.toString())}},[])},Bx=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,i=r===void 0?`margin`:r;zx();var a=O.useMemo(function(){return Px(i)},[i]);return O.createElement(Fx,{styles:Lx(a,!t,i,n?``:`!important`)})},Vx=!1;if(typeof window<`u`)try{var Hx=Object.defineProperty({},"passive",{get:function(){return Vx=!0,!0}});window.addEventListener(`test`,Hx,Hx),window.removeEventListener(`test`,Hx,Hx)}catch{Vx=!1}var Ux=Vx?{passive:!1}:!1,Wx=function(e){return e.tagName===`TEXTAREA`},Gx=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!==`hidden`&&!(n.overflowY===n.overflowX&&!Wx(e)&&n[t]===`visible`)},Kx=function(e){return Gx(e,`overflowY`)},qx=function(e){return Gx(e,`overflowX`)},Jx=function(e,t){var n=t.ownerDocument,r=t;do{if(typeof ShadowRoot<`u`&&r instanceof ShadowRoot&&(r=r.host),Zx(e,r)){var i=Qx(e,r);if(i[1]>i[2])return!0}r=r.parentNode}while(r&&r!==n.body);return!1},Yx=function(e){return[e.scrollTop,e.scrollHeight,e.clientHeight]},Xx=function(e){return[e.scrollLeft,e.scrollWidth,e.clientWidth]},Zx=function(e,t){return e===`v`?Kx(t):qx(t)},Qx=function(e,t){return e===`v`?Yx(t):Xx(t)},$x=function(e,t){return e===`h`&&t===`rtl`?-1:1},eS=function(e,t,n,r,i){var a=$x(e,window.getComputedStyle(t).direction),o=a*r,s=n.target,c=t.contains(s),l=!1,u=o>0,d=0,f=0;do{if(!s)break;var p=Qx(e,s),m=p[0],h=p[1]-p[2]-a*m;(m||h)&&Zx(e,s)&&(d+=h,f+=m);var g=s.parentNode;s=g&&g.nodeType===Node.DOCUMENT_FRAGMENT_NODE?g.host:g}while(!c&&s!==document.body||c&&(t.contains(s)||t===s));return(u&&(i&&Math.abs(d)<1||!i&&o>d)||!u&&(i&&Math.abs(f)<1||!i&&-o>f))&&(l=!0),l},tS=function(e){return`changedTouches`in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},nS=function(e){return[e.deltaX,e.deltaY]},rS=function(e){return e&&`current`in e?e.current:e},iS=function(e,t){return e[0]===t[0]&&e[1]===t[1]},aS=function(e){return`
96
+ .block-interactivity-${e} {pointer-events: none;}
97
+ .allow-interactivity-${e} {pointer-events: all;}
98
+ `},oS=0,sS=[];function cS(e){var t=O.useRef([]),n=O.useRef([0,0]),r=O.useRef(),i=O.useState(oS++)[0],a=O.useState(Ax)[0],o=O.useRef(e);O.useEffect(function(){o.current=e},[e]),O.useEffect(function(){if(e.inert){document.body.classList.add(`block-interactivity-${i}`);var t=ox([e.lockRef.current],(e.shards||[]).map(rS),!0).filter(Boolean);return t.forEach(function(e){return e.classList.add(`allow-interactivity-${i}`)}),function(){document.body.classList.remove(`block-interactivity-${i}`),t.forEach(function(e){return e.classList.remove(`allow-interactivity-${i}`)})}}},[e.inert,e.lockRef.current,e.shards]);var s=O.useCallback(function(e,t){if(`touches`in e&&e.touches.length===2||e.type===`wheel`&&e.ctrlKey)return!o.current.allowPinchZoom;var i=tS(e),a=n.current,s=`deltaX`in e?e.deltaX:a[0]-i[0],c=`deltaY`in e?e.deltaY:a[1]-i[1],l,u=e.target,d=Math.abs(s)>Math.abs(c)?`h`:`v`;if(`touches`in e&&d===`h`&&u.type===`range`)return!1;var f=window.getSelection(),p=f&&f.anchorNode;if(p&&(p===u||p.contains(u)))return!1;var m=Jx(d,u);if(!m)return!0;if(m?l=d:(l=d===`v`?`h`:`v`,m=Jx(d,u)),!m)return!1;if(!r.current&&`changedTouches`in e&&(s||c)&&(r.current=l),!l)return!0;var h=r.current||l;return eS(h,t,e,h===`h`?s:c,!0)},[]),c=O.useCallback(function(e){var n=e;if(sS.length&&sS[sS.length-1]===a){var r=`deltaY`in n?nS(n):tS(n),i=t.current.filter(function(e){return e.name===n.type&&(e.target===n.target||n.target===e.shadowParent)&&iS(e.delta,r)})[0];if(i&&i.should){n.cancelable&&n.preventDefault();return}if(!i){var c=(o.current.shards||[]).map(rS).filter(Boolean).filter(function(e){return e.contains(n.target)});(c.length>0?s(n,c[0]):!o.current.noIsolation)&&n.cancelable&&n.preventDefault()}}},[]),l=O.useCallback(function(e,n,r,i){var a={name:e,delta:n,target:r,should:i,shadowParent:lS(r)};t.current.push(a),setTimeout(function(){t.current=t.current.filter(function(e){return e!==a})},1)},[]),u=O.useCallback(function(e){n.current=tS(e),r.current=void 0},[]),d=O.useCallback(function(t){l(t.type,nS(t),t.target,s(t,e.lockRef.current))},[]),f=O.useCallback(function(t){l(t.type,tS(t),t.target,s(t,e.lockRef.current))},[]);O.useEffect(function(){return sS.push(a),e.setCallbacks({onScrollCapture:d,onWheelCapture:d,onTouchMoveCapture:f}),document.addEventListener(`wheel`,c,Ux),document.addEventListener(`touchmove`,c,Ux),document.addEventListener(`touchstart`,u,Ux),function(){sS=sS.filter(function(e){return e!==a}),document.removeEventListener(`wheel`,c,Ux),document.removeEventListener(`touchmove`,c,Ux),document.removeEventListener(`touchstart`,u,Ux)}},[]);var p=e.removeScrollBar,m=e.inert;return O.createElement(O.Fragment,null,m?O.createElement(a,{styles:aS(i)}):null,p?O.createElement(Bx,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function lS(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}var uS=bx(xx,cS),dS=O.forwardRef(function(e,t){return O.createElement(Cx,ix({},e,{ref:t,sideCar:uS}))});dS.classNames=Cx.classNames;var fS=Object.defineProperty,pS=(e,t)=>fS(e,`name`,{value:t,configurable:!0}),mS=[` `,`Enter`,`ArrowUp`,`ArrowDown`],hS=[` `,`Enter`],gS=`Select`,[_S,vS,yS]=jg(gS),[bS,nee]=sg(gS,[yS,ob]),xS=ob(),[SS,CS]=bS(gS),[wS,TS]=bS(gS);function ES(e){let{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:a,value:o,defaultValue:s,onValueChange:c,dir:l,name:u,autoComplete:d,disabled:f,required:p,form:m,internal_do_not_use_render:h}=e,g=xS(t),[_,v]=O.useState(null),[y,b]=O.useState(null),[x,S]=O.useState(!1),C=Gg(l),[w,T]=Bb({prop:r,defaultProp:i??!1,onChange:a,caller:gS}),[ee,te]=Bb({prop:o,defaultProp:s,onChange:c,caller:gS}),E=O.useRef(null),ne=O.useRef(ee);O.useEffect(()=>{let e=m?_?.ownerDocument.getElementById(m):_?.form;if(e instanceof HTMLFormElement){let t=pS(()=>te(ne.current),`reset`);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[m,_,te]);let D=!_||!!m||!!_.closest(`form`),[re,ie]=O.useState(new Set),ae=H_(),oe=Array.from(re).map(e=>e.props.value).join(`;`),k=O.useCallback(e=>{ie(t=>new Set(t).add(e))},[]),se=O.useCallback(e=>{ie(t=>{let n=new Set(t);return n.delete(e),n})},[]),ce={required:p,trigger:_,onTriggerChange:v,valueNode:y,onValueNodeChange:b,valueNodeHasChildren:x,onValueNodeHasChildrenChange:S,contentId:ae,value:ee,onValueChange:te,open:w,onOpenChange:T,dir:C,triggerPointerDownPosRef:E,disabled:f,name:u,autoComplete:d,form:m,nativeOptions:re,nativeSelectKey:oe,isFormControl:D};return(0,j.jsx)(vb,{...g,children:(0,j.jsx)(SS,{scope:t,...ce,children:(0,j.jsx)(_S.Provider,{scope:t,children:(0,j.jsx)(wS,{scope:t,onNativeOptionAdd:k,onNativeOptionRemove:se,children:uC(h)?h(ce):n})})})})}pS(ES,`SelectProvider`);var DS=pS(e=>{let{__scopeSelect:t,children:n,...r}=e;return(0,j.jsx)(ES,{__scopeSelect:t,...r,internal_do_not_use_render:({isFormControl:e})=>(0,j.jsxs)(j.Fragment,{children:[n,e?(0,j.jsx)(lC,{__scopeSelect:t}):null]})})},`Select`),OS=`SelectTrigger`,kS=O.forwardRef(pS(function(e,t){let{__scopeSelect:n,disabled:r=!1,...i}=e,a=xS(n),o=CS(OS,n),s=o.disabled||r,c=pg(t,o.onTriggerChange),l=vS(n),u=O.useRef(`touch`),[d,f,p]=fC(e=>{let t=l().filter(e=>!e.disabled),n=pC(t,e,t.find(e=>e.value===o.value));n!==void 0&&o.onValueChange(n.value)}),m=pS(e=>{s||(o.onOpenChange(!0),p()),e&&(o.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})},`handleOpen`);return(0,j.jsx)(yb,{asChild:!0,...a,children:(0,j.jsx)(Jg.button,{type:`button`,role:`combobox`,"aria-controls":o.open?o.contentId:void 0,"aria-expanded":o.open,"aria-required":o.required,"aria-autocomplete":`none`,dir:o.dir,"data-state":o.open?`open`:`closed`,disabled:s,"data-disabled":s?``:void 0,"data-placeholder":dC(o.value)?``:void 0,...i,ref:c,onClick:$h(i.onClick,e=>{e.currentTarget.focus(),u.current!==`mouse`&&m(e)}),onPointerDown:$h(i.onPointerDown,e=>{u.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&e.pointerType===`mouse`&&(m(e),e.preventDefault())}),onKeyDown:$h(i.onKeyDown,e=>{let t=d.current!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&f(e.key),!(t&&e.key===` `)&&mS.includes(e.key)&&(m(),e.preventDefault())})})})},`SelectTrigger`)),AS=`SelectValue`,jS=O.forwardRef(pS(function(e,t){let{__scopeSelect:n,className:r,style:i,children:a,placeholder:o=``,...s}=e,c=CS(AS,n),{onValueNodeHasChildrenChange:l}=c,u=a!==void 0,d=pg(t,c.onValueNodeChange);L_(()=>{l(u)},[l,u]);let f=dC(c.value);return(0,j.jsx)(Jg.span,{...s,asChild:!f&&s.asChild,ref:d,style:{pointerEvents:`none`},children:(0,j.jsx)(O.Fragment,{children:f?o:a},f?`placeholder`:`value`)})},`SelectValue`)),MS=O.forwardRef(pS(function(e,t){let{__scopeSelect:n,children:r,...i}=e;return(0,j.jsx)(Jg.span,{"aria-hidden":!0,...i,ref:t,children:r||`▼`})},`SelectIcon`)),[NS,PS]=bS(`SelectPortal`,{forceMount:void 0}),FS=pS(e=>{let{__scopeSelect:t,forceMount:n,...r}=e;return(0,j.jsx)(NS,{scope:e.__scopeSelect,forceMount:n,children:(0,j.jsx)(Sb,{asChild:!0,...r})})},`SelectPortal`),IS=`SelectContent`,LS=O.forwardRef(pS(function(e,t){let n=PS(IS,e.__scopeSelect),{forceMount:r=n.forceMount,...i}=e,a=CS(IS,e.__scopeSelect),[o,s]=O.useState();return L_(()=>{s(new DocumentFragment)},[]),(0,j.jsx)(Eb,{present:r||a.open,children:({present:e})=>e?(0,j.jsx)(US,{...i,ref:t}):(0,j.jsx)(RS,{...i,fragment:o})})},`SelectContent`)),RS=O.forwardRef(pS(function(e,t){let{__scopeSelect:n,children:r,fragment:i}=e;return i?mi.createPortal((0,j.jsx)(BS,{scope:n,children:(0,j.jsx)(_S.Slot,{scope:n,children:(0,j.jsx)(`div`,{ref:t,children:r})})}),i):null},`SelectContentFragment`)),zS=10,[BS,VS]=bS(IS),HS=gg(`SelectContent.RemoveScroll`),US=O.forwardRef(pS(function(e,t){let{__scopeSelect:n}=e,{position:r=`item-aligned`,onCloseAutoFocus:i,onEscapeKeyDown:a,onPointerDownOutside:o,side:s,sideOffset:c,align:l,alignOffset:u,arrowPadding:d,collisionBoundary:f,collisionPadding:p,sticky:m,hideWhenDetached:h,avoidCollisions:g,..._}=e,v=CS(IS,n),[y,b]=O.useState(null),[x,S]=O.useState(null),C=pg(t,b),[w,T]=O.useState(null),[ee,te]=O.useState(null),E=vS(n),[ne,D]=O.useState(!1),re=O.useRef(!1);O.useEffect(()=>{if(y)return rx(y)},[y]),v_();let ie=O.useCallback(e=>{let[t,...n]=E().map(e=>e.ref.current),[r]=n.slice(-1),i=document.activeElement;for(let n of e)if(n===i||(n?.scrollIntoView({block:`nearest`}),n===t&&x&&(x.scrollTop=0),n===r&&x&&(x.scrollTop=x.scrollHeight),n?.focus(),document.activeElement!==i))return},[E,x]),ae=O.useCallback(()=>ie([w,y]),[ie,w,y]);O.useEffect(()=>{ne&&ae()},[ne,ae]);let{onOpenChange:oe,triggerPointerDownPosRef:k}=v;O.useEffect(()=>{if(y){let e={x:0,y:0},t=pS(t=>{e={x:Math.abs(Math.round(t.pageX)-(k.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(k.current?.y??0))}},`handlePointerMove`),n=pS(n=>{e.x<=10&&e.y<=10?n.preventDefault():n.composedPath().includes(y)||oe(!1),document.removeEventListener(`pointermove`,t),k.current=null},`handlePointerUp`);return k.current!==null&&(document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n,{capture:!0,once:!0})),()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n,{capture:!0})}}},[y,oe,k]),O.useEffect(()=>{let e=pS(()=>oe(!1),`close`);return window.addEventListener(`blur`,e),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`resize`,e)}},[oe]);let[se,ce]=fC(e=>{let t=E().filter(e=>!e.disabled),n=pC(t,e,t.find(e=>e.ref.current===document.activeElement));n&&setTimeout(()=>n.ref.current?.focus())}),le=O.useCallback((e,t,n)=>{let r=!re.current&&!n;(v.value!==void 0&&v.value===t||r)&&(T(e),r&&(re.current=!0))},[v.value]),ue=O.useCallback(()=>y?.focus(),[y]),de=O.useCallback((e,t,n)=>{let r=!re.current&&!n;(v.value!==void 0&&v.value===t||r)&&te(e)},[v.value]),fe=r===`popper`?GS:WS,pe=fe===GS?{side:s,sideOffset:c,align:l,alignOffset:u,arrowPadding:d,collisionBoundary:f,collisionPadding:p,sticky:m,hideWhenDetached:h,avoidCollisions:g}:{};return(0,j.jsx)(BS,{scope:n,content:y,viewport:x,onViewportChange:S,itemRefCallback:le,selectedItem:w,onItemLeave:ue,itemTextRefCallback:de,focusSelectedItem:ae,selectedItemText:ee,position:r,isPositioned:ne,searchRef:se,children:(0,j.jsx)(dS,{as:HS,allowPinchZoom:!0,children:(0,j.jsx)(T_,{asChild:!0,trapped:v.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:$h(i,e=>{v.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,j.jsx)(o_,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>v.onOpenChange(!1),children:(0,j.jsx)(fe,{role:`listbox`,id:v.contentId,"data-state":v.open?`open`:`closed`,dir:v.dir,onContextMenu:e=>e.preventDefault(),..._,...pe,onPlaced:()=>D(!0),ref:C,style:{display:`flex`,flexDirection:`column`,outline:`none`,..._.style},onKeyDown:$h(_.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&ce(e.key),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=E().filter(e=>!e.disabled).map(e=>e.ref.current);if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>ie(t)),e.preventDefault()}})})})})})})},`SelectContentImpl`)),WS=O.forwardRef(pS(function(e,t){let{__scopeSelect:n,onPlaced:r,...i}=e,a=CS(IS,n),o=VS(IS,n),[s,c]=O.useState(null),[l,u]=O.useState(null),d=pg(t,u),f=vS(n),p=O.useRef(!1),m=O.useRef(!0),{viewport:h,selectedItem:g,selectedItemText:_,focusSelectedItem:v}=o,y=O.useCallback(()=>{if(a.trigger&&a.valueNode&&s&&l&&h&&g&&_){let e=a.trigger.getBoundingClientRect(),t=l.getBoundingClientRect(),n=a.valueNode.getBoundingClientRect(),i=_.getBoundingClientRect();if(a.dir!==`rtl`){let r=i.left-t.left,a=n.left-r,o=e.left-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-zS,d=Yh(a,[zS,Math.max(zS,u-l)]);s.style.minWidth=c+`px`,s.style.left=d+`px`}else{let r=t.right-i.right,a=window.innerWidth-n.right-r,o=window.innerWidth-e.right-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-zS,d=Yh(a,[zS,Math.max(zS,u-l)]);s.style.minWidth=c+`px`,s.style.right=d+`px`}let o=f(),c=window.innerHeight-zS*2,u=h.scrollHeight,d=window.getComputedStyle(l),m=parseInt(d.borderTopWidth,10),v=parseInt(d.paddingTop,10),y=parseInt(d.borderBottomWidth,10),b=parseInt(d.paddingBottom,10),x=m+v+u+b+y,S=Math.min(g.offsetHeight*5,x),C=window.getComputedStyle(h),w=parseInt(C.paddingTop,10),T=parseInt(C.paddingBottom,10),ee=e.top+e.height/2-zS,te=c-ee,E=g.offsetHeight/2,ne=g.offsetTop+E,D=m+v+ne,re=x-D;if(D<=ee){let e=o.length>0&&g===o[o.length-1].ref.current;s.style.bottom=`0px`;let t=l.clientHeight-h.offsetTop-h.offsetHeight,n=D+Math.max(te,E+(e?T:0)+t+y);s.style.height=n+`px`}else{let e=o.length>0&&g===o[0].ref.current;s.style.top=`0px`;let t=Math.max(ee,m+h.offsetTop+(e?w:0)+E)+re;s.style.height=t+`px`,h.scrollTop=D-ee+h.offsetTop}s.style.margin=`${zS}px 0`,s.style.minHeight=S+`px`,s.style.maxHeight=c+`px`,r?.(),requestAnimationFrame(()=>p.current=!0)}},[f,a.trigger,a.valueNode,s,l,h,g,_,a.dir,r]);L_(()=>y(),[y]);let[b,x]=O.useState();L_(()=>{l&&x(window.getComputedStyle(l).zIndex)},[l]);let S=O.useCallback(e=>{e&&m.current===!0&&(y(),v?.(),m.current=!1)},[y,v]);return(0,j.jsx)(KS,{scope:n,contentWrapper:s,shouldExpandOnScrollRef:p,onScrollButtonChange:S,children:(0,j.jsx)(`div`,{ref:c,style:{display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:b},children:(0,j.jsx)(Jg.div,{...i,ref:d,style:{boxSizing:`border-box`,maxHeight:`100%`,...i.style}})})})},`SelectItemAlignedPosition`)),GS=O.forwardRef(pS(function(e,t){let{__scopeSelect:n,align:r=`start`,collisionPadding:i=zS,...a}=e,o=xS(n);return(0,j.jsx)(bb,{...o,...a,ref:t,align:r,collisionPadding:i,style:{boxSizing:`border-box`,...a.style,"--radix-select-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-select-content-available-width":`var(--radix-popper-available-width)`,"--radix-select-content-available-height":`var(--radix-popper-available-height)`,"--radix-select-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-select-trigger-height":`var(--radix-popper-anchor-height)`}})},`SelectPopperPosition`)),[KS,qS]=bS(IS,{}),JS=`SelectViewport`,YS=O.forwardRef(pS(function(e,t){let{__scopeSelect:n,nonce:r,...i}=e,a=VS(JS,n),o=qS(JS,n),s=pg(t,a.onViewportChange),c=O.useRef(0);return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`},nonce:r}),(0,j.jsx)(_S.Slot,{scope:n,children:(0,j.jsx)(Jg.div,{"data-radix-select-viewport":``,role:`presentation`,...i,ref:s,style:{position:`relative`,flex:1,overflow:`hidden auto`,...i.style},onScroll:$h(i.onScroll,e=>{let t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:r}=o;if(r?.current&&n){let e=Math.abs(c.current-t.scrollTop);if(e>0){let r=window.innerHeight-zS*2,i=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),o=Math.max(i,a);if(o<r){let i=o+e,a=Math.min(r,i),s=i-a;n.style.height=a+`px`,n.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,n.style.justifyContent=`flex-end`)}}}c.current=t.scrollTop})})})]})},`SelectViewport`)),[ree,iee]=bS(`SelectGroup`),XS=`SelectItem`,[aee,ZS]=bS(XS),QS=O.forwardRef(pS(function(e,t){let{__scopeSelect:n,value:r,disabled:i=!1,textValue:a,...o}=e,s=CS(XS,n),c=VS(XS,n),l=s.value===r,[u,d]=O.useState(a??``),[f,p]=O.useState(!1),m=pg(t,Qg(e=>c.itemRefCallback?.(e,r,i))),h=H_(),g=O.useRef(`touch`),_=pS(()=>{i||(s.onValueChange(r),s.onOpenChange(!1))},`handleSelect`);return(0,j.jsx)(aee,{scope:n,value:r,disabled:i,textId:h,isSelected:l,onItemTextChange:O.useCallback(e=>{d(t=>t||(e?.textContent??``).trim())},[]),children:(0,j.jsx)(_S.ItemSlot,{scope:n,value:r,disabled:i,textValue:u,children:(0,j.jsx)(Jg.div,{role:`option`,"aria-labelledby":h,"data-highlighted":f?``:void 0,"aria-selected":l&&f,"data-state":l?`checked`:`unchecked`,"aria-disabled":i||void 0,"data-disabled":i?``:void 0,tabIndex:i?void 0:-1,...o,ref:m,onFocus:$h(o.onFocus,()=>p(!0)),onBlur:$h(o.onBlur,()=>p(!1)),onClick:$h(o.onClick,()=>{g.current!==`mouse`&&_()}),onPointerUp:$h(o.onPointerUp,()=>{g.current===`mouse`&&_()}),onPointerDown:$h(o.onPointerDown,e=>{g.current=e.pointerType}),onPointerMove:$h(o.onPointerMove,e=>{g.current=e.pointerType,i?c.onItemLeave?.():g.current===`mouse`&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:$h(o.onPointerLeave,e=>{e.currentTarget===document.activeElement&&c.onItemLeave?.()}),onKeyDown:$h(o.onKeyDown,e=>{i||e.target!==e.currentTarget||(c.searchRef?.current===``||e.key!==` `)&&(hS.includes(e.key)&&_(),e.key===` `&&e.preventDefault())})})})})},`SelectItem`)),$S=`SelectItemText`,eC=O.forwardRef(pS(function(e,t){let{__scopeSelect:n,className:r,style:i,...a}=e,o=CS($S,n),s=VS($S,n),c=ZS($S,n),l=TS($S,n),[u,d]=O.useState(null),f=Qg(e=>s.itemTextRefCallback?.(e,c.value,c.disabled)),p=pg(t,d,c.onItemTextChange,f),m=u?.textContent,h=O.useMemo(()=>(0,j.jsx)(`option`,{value:c.value,disabled:c.disabled,children:m},c.value),[c.disabled,c.value,m]),{onNativeOptionAdd:g,onNativeOptionRemove:_}=l;return L_(()=>(g(h),()=>_(h)),[g,_,h]),(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(Jg.span,{id:c.textId,...a,ref:p}),c.isSelected&&o.valueNode&&!o.valueNodeHasChildren&&!dC(o.value)?mi.createPortal(a.children,o.valueNode):null]})},`SelectItemText`)),tC=`SelectItemIndicator`,nC=O.forwardRef(pS(function(e,t){let{__scopeSelect:n,...r}=e;return ZS(tC,n).isSelected?(0,j.jsx)(Jg.span,{"aria-hidden":!0,...r,ref:t}):null},`SelectItemIndicator`)),rC=`SelectScrollUpButton`,iC=O.forwardRef(pS(function(e,t){let n=VS(rC,e.__scopeSelect),r=qS(rC,e.__scopeSelect),[i,a]=O.useState(!1),o=pg(t,r.onScrollButtonChange);return L_(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollTop>0;a(e)};pS(e,`handleScroll`);let t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,j.jsx)(sC,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop-=t.offsetHeight)}}):null},`SelectScrollUpButton`)),aC=`SelectScrollDownButton`,oC=O.forwardRef(pS(function(e,t){let n=VS(aC,e.__scopeSelect),r=qS(aC,e.__scopeSelect),[i,a]=O.useState(!1),o=pg(t,r.onScrollButtonChange);return L_(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight,n=Math.ceil(t.scrollTop)<e;a(n)};pS(e,`handleScroll`);let t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,j.jsx)(sC,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop+=t.offsetHeight)}}):null},`SelectScrollDownButton`)),sC=O.forwardRef(pS(function(e,t){let{__scopeSelect:n,onAutoScroll:r,...i}=e,a=VS(`SelectScrollButton`,n),o=O.useRef(null),s=vS(n),c=O.useCallback(()=>{o.current!==null&&(window.clearInterval(o.current),o.current=null)},[]);return O.useEffect(()=>()=>c(),[c]),L_(()=>{s().find(e=>e.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:`nearest`})},[s]),(0,j.jsx)(Jg.div,{"aria-hidden":!0,...i,ref:t,style:{flexShrink:0,...i.style},onPointerDown:$h(i.onPointerDown,()=>{o.current===null&&(o.current=window.setInterval(r,50))}),onPointerMove:$h(i.onPointerMove,()=>{a.onItemLeave?.(),o.current===null&&(o.current=window.setInterval(r,50))}),onPointerLeave:$h(i.onPointerLeave,()=>{c()})})},`SelectScrollButtonImpl`)),cC=`SelectBubbleInput`,lC=O.forwardRef(pS(function({__scopeSelect:e,...t},n){let r=CS(cC,e),{value:i,onValueChange:a,required:o,disabled:s,name:c,autoComplete:l,form:u}=r,{nativeOptions:d,nativeSelectKey:f}=r,p=O.useRef(null),m=pg(n,p),h=i??``,g=qb(h),_=Array.from(d).some(e=>(e.props.value??``)===``);return O.useEffect(()=>{let e=p.current;if(!e)return;let t=window.HTMLSelectElement.prototype,n=Object.getOwnPropertyDescriptor(t,`value`).set;if(g!==h&&n){let t=new Event(`change`,{bubbles:!0});n.call(e,h),e.dispatchEvent(t)}},[g,h]),(0,j.jsxs)(Jg.select,{"aria-hidden":!0,required:o,tabIndex:-1,name:c,autoComplete:l,disabled:s,form:u,onChange:e=>a(e.target.value),...t,style:{...Jb,...t.style},ref:m,defaultValue:h,children:[dC(i)&&!_?(0,j.jsx)(`option`,{value:``}):null,Array.from(d)]},f)},`SelectBubbleInput`));function uC(e){return typeof e==`function`}pS(uC,`isFunction`);function dC(e){return e===``||e===void 0}pS(dC,`shouldShowPlaceholder`);function fC(e){let t=Qg(e),n=O.useRef(``),r=O.useRef(0),i=O.useCallback(e=>{let i=n.current+e;t(i),pS((function e(t){n.current=t,window.clearTimeout(r.current),t!==``&&(r.current=window.setTimeout(()=>e(``),1e3))}),`updateSearch`)(i)},[t]),a=O.useCallback(()=>{n.current=``,window.clearTimeout(r.current)},[]);return O.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,a]}pS(fC,`useTypeaheadSearch`);function pC(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=mC(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.textValue.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}pS(pC,`findNextItem`);function mC(e,t){return e.map((n,r)=>e[(t+r)%e.length])}pS(mC,`wrapArray`);var hC=`\0none`,gC=e=>e===``?hC:e,_C=e=>e===hC?``:e;function vC({value:e,onValueChange:t,size:n=`form`,disabled:r,required:i,defaultOpen:a,onOpenChange:o,placeholder:s,id:c,className:l,children:u,"aria-label":d}){let f=[`ui-select`];return n===`sm`&&f.push(`ui-select-sm`),l!==void 0&&f.push(l),(0,j.jsxs)(DS,{value:gC(e),onValueChange:e=>t(_C(e)),...r===void 0?{}:{disabled:r},...i===void 0?{}:{required:i},...a===void 0?{}:{defaultOpen:a},...o===void 0?{}:{onOpenChange:o},children:[(0,j.jsxs)(kS,{id:c,className:f.join(` `),"aria-label":d,children:[(0,j.jsx)(`span`,{className:`ui-select-value`,children:(0,j.jsx)(jS,{placeholder:s})}),(0,j.jsx)(MS,{className:`ui-select-chevron`,children:(0,j.jsx)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":!0,children:(0,j.jsx)(`path`,{d:`m6 9 6 6 6-6`})})})]}),(0,j.jsx)(FS,{children:(0,j.jsxs)(LS,{className:`ui-select-menu`,position:`popper`,sideOffset:6,collisionPadding:12,children:[(0,j.jsx)(iC,{className:`ui-select-scroll`,children:`▴`}),(0,j.jsx)(YS,{className:`ui-select-viewport`,children:u}),(0,j.jsx)(oC,{className:`ui-select-scroll`,children:`▾`})]})})]})}function yC({value:e,disabled:t,children:n}){return(0,j.jsxs)(QS,{value:gC(e),...t===void 0?{}:{disabled:t},className:`ui-select-item`,children:[(0,j.jsx)(eC,{children:n}),(0,j.jsx)(nC,{className:`ui-select-check`,children:(0,j.jsx)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2.25,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":!0,children:(0,j.jsx)(`path`,{d:`m5 12.5 4.5 4.5L19 7.5`})})})]})}function bC(e){let t=e.split(/[\s@._-]+/).filter(e=>/[A-Za-z0-9]/.test(e));if(t.length===0)return`?`;if(t.length===1){let e=t[0]??``;return(/^[A-Za-z]/.test(e)?e.slice(0,2):e.slice(0,1)).toUpperCase()}return`${t[0]?.[0]??``}${t[1]?.[0]??``}`.toUpperCase()}function xC({tone:e,small:t=!1,children:n}){return(0,j.jsx)(`span`,{className:`ui-pill ui-pill-${e}${t?` ui-pill-small`:``}`,children:n})}function SC({children:e}){return(0,j.jsx)(`span`,{className:`ui-tag`,children:e})}function CC({tone:e,small:t=!1}){let n=[`ui-dot`];return t&&n.push(`ui-dot-small`),e!==void 0&&n.push(`ui-dot-${e}`),(0,j.jsx)(`span`,{className:n.join(` `),"aria-hidden":!0})}var wC=[`violet`,`green`,`pink`,`amber`,`indigo`];function TC(e){return[`violet`,`pink`,`green`,`amber`,`indigo`][e%5]??`violet`}function EC(e){let t=0;for(let n of e)t=(t+(n.codePointAt(0)??0))%9973;return wC[t%wC.length]??`violet`}function DC({name:e,letters:t,tint:n,size:r=28,round:i=!1}){let a=[`ui-avatar`,`ui-tint-${n??EC(e)}`];r===26&&a.push(`ui-avatar-26`),(r===36||r===38)&&a.push(`ui-avatar-36`),i&&a.push(`ui-avatar-round`),r===38&&a.push(`ui-avatar-38`);let o=r===20?{width:20,height:20,borderRadius:6,fontSize:9.5}:void 0;return(0,j.jsx)(`span`,{className:a.join(` `),style:o,"aria-hidden":!0,children:t??bC(e)})}function OC({share:e,color:t,height:n}){let r=`${Math.max(0,Math.min(1,e))*100}%`;return(0,j.jsx)(`span`,{className:`ui-bar`,style:n===void 0?void 0:{height:n},children:(0,j.jsx)(`span`,{className:`ui-bar-fill`,style:{width:r,background:t}})})}function kC({width:e=1180,tight:t=!1,children:n}){let r=[`ui-page`];return t&&r.push(`ui-page-tight`),e!==1180&&r.push(`ui-page-${e}`),(0,j.jsx)(`div`,{className:r.join(` `),"data-page":!0,children:n})}function AC({title:e,lede:t,ledeWidth:n,back:r,actions:i}){return(0,j.jsxs)(`div`,{className:`ui-head`,children:[(0,j.jsxs)(`div`,{className:`ui-head-words`,style:n===void 0?void 0:{maxWidth:n},children:[r,(0,j.jsx)(`h1`,{className:`ui-title`,children:e}),t!==void 0&&(0,j.jsx)(`p`,{className:n===void 0?`ui-lede`:`ui-lede ui-lede-long`,children:t})]}),i!==void 0&&(0,j.jsx)(`div`,{className:`ui-head-actions`,children:i})]})}function jC({min:e,children:t}){return(0,j.jsx)(`div`,{className:`ui-stats`,style:{gridTemplateColumns:`repeat(auto-fit,minmax(${e}px,1fr))`},children:t})}function MC({label:e,value:t,of:n,delta:r,tone:i,size:a=`medium`,accent:o=!1}){let s=[`ui-stat`];a!==`medium`&&s.push(`ui-stat-${a}`),o&&s.push(`ui-stat-accent`);let c=i===`green`?{color:`var(--green)`}:i===`red`?{color:`var(--red)`}:void 0;return(0,j.jsxs)(`div`,{className:s.join(` `),children:[(0,j.jsx)(`div`,{className:`ui-stat-label`,children:e}),a===`big`?(0,j.jsxs)(`div`,{className:`ui-stat-line`,children:[(0,j.jsx)(`span`,{className:`ui-stat-value`,children:t}),r!==void 0&&(0,j.jsx)(`span`,{className:i===`up`?`ui-stat-delta ui-stat-delta-up`:i===`down`?`ui-stat-delta ui-stat-delta-down`:`ui-stat-delta`,children:r})]}):(0,j.jsxs)(`div`,{className:`ui-stat-value`,style:c,children:[t,n!==void 0&&(0,j.jsxs)(`span`,{className:`ui-stat-of`,children:[` `,n]})]})]})}function NC({columns:e,labels:t,padding:n}){return(0,j.jsx)(`div`,{className:`ui-table-head`,style:{gridTemplateColumns:e,padding:n},children:t.map((e,t)=>e.endsWith(`>`)?(0,j.jsx)(`span`,{style:{textAlign:`right`},children:e.slice(0,-1)},t):(0,j.jsx)(`span`,{children:e},t))})}function PC({columns:e,to:t,onClick:n,padding:r,children:i}){let a={gridTemplateColumns:e,padding:r};return t===void 0?(0,j.jsx)(`div`,{className:n===void 0?`ui-table-row`:`ui-table-row ui-table-row-link`,style:a,onClick:n,children:i}):(0,j.jsx)(Wi,{to:t,className:`ui-table-row ui-table-row-link`,style:a,children:i})}var FC=`pinecall.pane.`;function IC(e){try{let t=Number(window.localStorage.getItem(FC+e));return Number.isFinite(t)&&t>0?t:null}catch{return null}}function LC(e,t){try{window.localStorage.setItem(FC+e,String(Math.round(t)))}catch{}}function RC(e){try{window.localStorage.removeItem(FC+e)}catch{}}var zC=`pinecall.call.view`,BC=[`chat`,`transcript`,`log`,`trace`];function VC(){try{let e=window.localStorage.getItem(zC);return BC.find(t=>t===e)??null}catch{return null}}function HC(e){try{window.localStorage.setItem(zC,e)}catch{}}var UC=(e,t,n)=>Math.min(n,Math.max(t,e));function WC({name:e,initial:t,min:n,max:r,side:i}){let[a,o]=(0,O.useState)(()=>UC(IC(e)??t,n,r)),s=(0,O.useRef)(null),c=(0,O.useCallback)(e=>{e.preventDefault(),e.currentTarget.setPointerCapture(e.pointerId),s.current={x:e.clientX,width:a}},[a]),l=(0,O.useCallback)(e=>{if(s.current===null)return;let t=e.clientX-s.current.x;o(UC(s.current.width+(i===`right`?-t:t),n,r))},[i,n,r]),u=(0,O.useCallback)(()=>{s.current!==null&&(s.current=null,LC(e,a))},[e,a]),d=(0,O.useCallback)(()=>{RC(e),o(t)},[e,t]);return{width:a,style:{"--pane":`${String(a)}px`},handle:(0,j.jsx)(`div`,{className:i===`right`?`ui-resize ui-resize-right`:`ui-resize ui-resize-left`,role:`separator`,"aria-orientation":`vertical`,"aria-label":`Drag to resize. Double-click to reset.`,title:`Drag to resize · double-click to reset`,onPointerDown:c,onPointerMove:l,onPointerUp:u,onPointerCancel:u,onDoubleClick:d})}}function GC({label:e,tabs:t,on:n,onPick:r}){return(0,j.jsx)(`nav`,{className:`ui-tabs`,"aria-label":e,children:t.map(e=>(0,j.jsxs)(`button`,{type:`button`,className:n===e.tab?`ui-tab ui-tab-on`:`ui-tab`,"aria-current":n===e.tab?`page`:void 0,onClick:()=>r(e.tab),children:[e.name,e.mark]},e.tab))})}function KC({children:e,foot:t}){return(0,j.jsxs)(`div`,{className:`login`,children:[(0,j.jsxs)(`div`,{className:`login-side`,children:[(0,j.jsx)(`img`,{className:`login-logo login-logo-daylight`,src:`/pinecall-logo.png`,alt:`Pinecall`}),(0,j.jsx)(`img`,{className:`login-logo login-logo-dark`,src:`/pinecall-logo-dark.png`,alt:`Pinecall`}),(0,j.jsx)(`div`,{className:`login-form`,children:e}),(0,j.jsx)(`p`,{className:`login-foot`,children:t??(0,j.jsxs)(j.Fragment,{children:[`Working from a terminal? Run `,(0,j.jsx)(`span`,{className:`login-command`,children:`pinecall link`}),` in your project's folder.`]})})]}),(0,j.jsx)(JC,{})]})}var qC=[{initials:`DK`,tint:`violet`,name:`Dana Keller`,line:`Booked · Friday 2 PM, work order #SO-2026-PL-0060`,channel:`phone`},{initials:`TS`,tint:`pink`,name:`Tim Stacy`,line:`Quoted the fifteen dollar dispatch fee`,channel:`web`},{initials:`AR`,tint:`green`,name:`Ana Ruiz`,line:`Callback promised within the hour`,channel:`whatsapp`}];function JC(){return(0,j.jsxs)(`div`,{className:`login-show`,"aria-hidden":!0,children:[(0,j.jsxs)(`div`,{className:`login-show-words`,children:[(0,j.jsx)(`h2`,{className:`login-show-title`,children:`Every conversation your company has, in one place.`}),(0,j.jsx)(`p`,{className:`login-show-lede`,children:`Web, WhatsApp and phone land in the same inbox — with the transcript, the outcome and the cost on every row.`})]}),(0,j.jsxs)(`div`,{className:`login-show-card`,children:[(0,j.jsxs)(`div`,{className:`login-show-head`,children:[(0,j.jsx)(`span`,{className:`ui-dot ui-dot-green`}),(0,j.jsx)(`span`,{className:`login-show-today`,children:`Today`}),(0,j.jsx)(`span`,{className:`login-show-count`,children:`137 conversations`})]}),qC.map(e=>(0,j.jsxs)(`div`,{className:`login-show-row`,children:[(0,j.jsx)(`span`,{className:`ui-avatar ui-avatar-26 ui-tint-${e.tint}`,children:e.initials}),(0,j.jsxs)(`div`,{className:`ui-row-main`,children:[(0,j.jsx)(`div`,{className:`login-show-name`,children:e.name}),(0,j.jsx)(`div`,{className:`login-show-line`,children:e.line})]}),(0,j.jsx)(`span`,{className:`login-show-channel`,children:e.channel})]},e.name))]})]})}function YC({said:e}){return(0,j.jsxs)(KC,{foot:(0,j.jsx)(j.Fragment,{children:`The sandbox is open to you: it is where things are tried before the public sees them.`}),children:[(0,j.jsx)(`h1`,{className:`login-title`,children:`No production access`}),(0,j.jsx)(`p`,{className:`login-lede`,children:e}),(0,j.jsx)(Lh,{onClick:()=>window.location.assign(eh(`sandbox`,`/`)),children:`Open the sandbox`}),(0,j.jsx)(Lh,{onClick:()=>{Ch(),window.location.assign(rh)},children:`Sign in as somebody else`})]})}var XC=z({org:P(),slug:P().nullish(),key_id:P(),label:P().nullish(),env:V([`production`,`sandbox`]),scopes:R(P()),subject:P().nullish(),name:P().nullish(),operator:L().optional(),visiting:L().optional(),production:L()});async function ZC(e){return XC.parse(await A(e,`/v1/whoami`))}function QC(e){return e.slug??e.org}var $C=(0,O.createContext)(null);function ew(e,t){return e!==`production`||t.production?null:`${t.name??`This person`} has no production access: an admin gives it in Team.`}function tw({children:e}){let t=M(),[n,r]=(0,O.useState)(null),[i,a]=(0,O.useState)(null);return(0,O.useEffect)(()=>{let e=!1;return r(null),a(null),ZC(t).then(t=>{if(e)return;let n=ew(nh,t);n===null?r(t):a(n)},t=>{!e&&t instanceof na&&t.status===403&&a(t.message)}),()=>{e=!0}},[t]),i===null?(0,j.jsx)($C,{value:n,children:e}):(0,j.jsx)(YC,{said:i})}function nw(){return(0,O.useContext)($C)}function rw(){return nw()?.scopes??null}var iw=(0,O.createContext)(null);function aw({value:e,children:t}){return(0,j.jsx)(iw,{value:e,children:t})}function ow(){let e=(0,O.useContext)(iw);if(e===null)throw Error(`the console was mounted without a world`);return e}var sw=V([`phone`,`web`,`whatsapp`]),cw=V([`voice`,`text`]),lw=V([`inbound`,`outbound`]),uw=V([`production`,`sandbox`]),dw=V([`chat.roster`,`chat.start`,`chat.say`,`chat.end`,`view.render`,`simulate.start`,`goldens.roster`,`goldens.run`,`knowledge.roster`,`knowledge.push`,`knowledge.eval`,`memory.roster`,`memory.eval`,`memory.extraction`,`promote.roster`,`promote.write`,`drift.read`,`reproductions.roster`,`reproductions.read`]),fw=V([`caller_hung_up`,`agent_hung_up`,`supervisor_ended`,`transferred`,`no_answer`,`busy`,`dial_failed`,`timeout`,`drained`,`app_detached`,`error`]),pw=V([`caller`,`agent`,`supervisor`,`platform`]),mw=V([`held`,`broken`,`deferred`,`skipped`]),hw=V([`cold`,`warm`]),gw=V([`retrieved`,`tool`]),_w=V([`listening`,`speaking`,`away`]),vw=V([`initializing`,`idle`,`listening`,`thinking`,`speaking`]),yw=V([`caller`,`agent`,`supervisor`,`listener`,`sip`]),bw=V([`audio`,`video`,`screen`]),xw=V([`microphone`,`camera`,`screen_share`,`screen_share_audio`,`unknown`]),Sw=V([`app`,`participant`]),Cw=V([`public`,`tenant`]),ww=B({id:P().nullish(),phone:P().nullish(),name:P().nullish(),email:P().nullish(),external_id:P().nullish()}),Tw=B({channel:sw,number:P().nullable(),label:P().nullish()}),Ew=B({id:P(),name:P().nullish()}),Dw=B({call_id:P(),name:P(),output:hp().nullish(),error:P().nullish(),summary:P().nullish(),duration_s:F().nullish()}),Ow=B({id:P().nullish(),text:P(),category:P().nullish(),score:F().nullish(),source:P().nullish()}),kw=B({op:V([`recall`,`remember`,`forget`]),contact:P().nullish(),query:P().nullish(),facts:R(Ow),took_ms:F()}),Aw=B({id:P(),base:P().nullish(),path:P(),heading:P().nullish(),score:F(),excerpt:P().nullish()}),jw=B({provider:P(),model:P(),unit:V([`input_tokens`,`cached_input_tokens`,`cache_creation_tokens`,`output_tokens`,`characters`,`audio_seconds`,`requests`,`session_seconds`,`minutes`]),quantity:F(),unit_price_usd:F(),usd:F()}),Mw=B({provider:P(),model:P()}),Nw=B({usd:F(),rows:R(jw),unpriced:R(Mw)}),Pw=B({min_interruption_words:I().nullish(),endpointing_ms:I().nullish(),eot_threshold:F().nullish(),eager_eot_threshold:F().nullish()}),Fw=B({word:P(),spoken:P()}),Iw=B({base:P(),mode:gw.nullish(),k:I().nullish(),min_score:F().nullish()}),Lw=B({say:P().nullish(),reply:P().nullish(),allow_interruptions:L().nullish()}),Rw=B({when:P().nullish()}),zw=B({remember:R(P()).nullish(),forget:R(P()).nullish()}),Bw=B({limit:I().nullable(),used:F()}),Vw=B({minutes:Bw,messages:Bw,llm_tokens:Bw,concurrent_calls:Bw,agents:Bw,seats:Bw,numbers:Bw,lends:R(P()).nullable(),billing_url:P().nullable(),world:uw}),Hw=B({holder:P().nullable(),name:P().nullable()}),Uw=B({agents:R(B({slug:P(),channels:R(sw),holder:Hw.nullable().nullish()}))}),Ww=B({apps:R(B({app:P(),agents:R(P()),env:uw,host:P().nullable(),address:P().nullable(),sdk:P().nullable(),holder:Hw.nullable(),connected_at:F()}))}),Gw=B({app:P(),stopped:L()}),Kw=B({voice:P().nullish(),tts:P().nullish(),tts_model:P().nullish(),stt:P().nullish(),language:P().nullish(),llm:P().nullish(),greeting:Lw.nullish(),hangup:Rw.nullish(),turn:Pw.nullish(),memory:zw.nullish(),record:L().nullish(),max_duration_s:I().nullish(),knowledge:P().nullish(),bases:R(Iw).nullish()}),qw=B({holder:P(),version:I(),author:P(),note:P().nullable(),set_at:F(),config:Kw}),Jw=B({world:uw,yours:qw.nullable(),team:qw.nullable(),production:qw.nullable()}),oee=B({world:uw,holder:P(),rows:R(qw)}),see=B({said:R(Fw),heard:R(P())}),Yw=B({holder:P(),version:I(),author:P(),note:P().nullable(),set_at:F(),lexicon:see}),Xw=B({world:uw,yours:Yw.nullable(),team:Yw.nullable(),production:Yw.nullable()}),Zw=`ready`,Qw=`no plugin`,$w=`no key`,eT=`its own`,tT=z({name:P(),does:R(V([`llm`,`stt`,`tts`])),aliases:R(P()),note:P(),standing:V([Zw,Qw,$w,eT]),ready:L(),env:P().nullable(),extra:P(),voices_listed:L()});function nT(e,t){return e.find(e=>e.name===t||e.aliases.includes(t))}var rT=[`llm`,`stt`,`tts`],iT=z({providers:R(tT),defaults:Op(P(),P()),voices:R(P()),models:Op(P(),R(P()))});async function aT(e){return iT.parse(await A(e,`/v1/providers`))}function oT(e,t){return e.filter(e=>e.does.includes(t)).sort((e,t)=>Number(t.ready)-Number(e.ready)||e.name.localeCompare(t.name))}function sT(e){return e.standing===`no plugin`?`the box needs livekit-agents[${e.extra}]`:e.standing===`no key`?`the box needs ${e.env??`a credential`}`:e.standing===`its own`?`its credentials are its own: a profile, a pair, not one key`:e.note||`ready on this box`}var cT=[`everything`,`mine`,`the team's`];function lT(e,t){let n=e.holder?.holder;return n!=null&&n!==t}function uT(e,t,n){if(t===`everything`)return e;let r=t===`the team's`;return e.filter(e=>lT(e,n)===r)}function dT(e,t){let n=new Map;for(let r of e){let e=n.get(r.slug);(e===void 0||lT(e,t)&&!lT(r,t))&&n.set(r.slug,r)}return[...n.values()]}function fT(e){let t=e.holder;return t==null?`the org's`:t.name??t.holder??`the org's`}function pT(e){return e?.subject??null}var mT=B({seq:I(),ts:F(),call:P().nullable(),agent:P(),type:P(),ephemeral:L(),data:Op(P(),hp())}),hT=B({model_name:P().nullable().nullish(),model_provider:P().nullable().nullish()}),gT=B({type:jp(`llm_metrics`),label:P(),request_id:P(),timestamp:F(),duration:F(),ttft:F(),cancelled:L(),completion_tokens:I(),prompt_tokens:I(),prompt_cached_tokens:I(),cache_creation_tokens:I().nullish(),reasoning_tokens:I().nullish(),total_tokens:I(),tokens_per_second:F(),speech_id:P().nullable().nullish(),metadata:hT.nullable().nullish()}),_T=B({type:jp(`stt_metrics`),label:P(),request_id:P(),timestamp:F(),duration:F(),audio_duration:F(),input_tokens:I().nullish(),output_tokens:I().nullish(),streamed:L(),acquire_time:F().nullish(),connection_reused:L().nullish(),metadata:hT.nullable().nullish()}),vT=B({type:jp(`tts_metrics`),label:P(),request_id:P(),timestamp:F(),ttfb:F(),duration:F(),audio_duration:F(),cancelled:L(),characters_count:I(),input_tokens:I().nullish(),output_tokens:I().nullish(),streamed:L(),acquire_time:F().nullish(),connection_reused:L().nullish(),segment_id:P().nullable().nullish(),speech_id:P().nullable().nullish(),metadata:hT.nullable().nullish()}),yT=B({type:jp(`vad_metrics`),label:P(),timestamp:F(),idle_time:F(),inference_duration_total:F(),inference_count:I(),metadata:hT.nullable().nullish()}),bT=B({type:jp(`eou_metrics`),timestamp:F(),end_of_utterance_delay:F(),transcription_delay:F(),on_user_turn_completed_delay:F(),speech_id:P().nullable().nullish(),metadata:hT.nullable().nullish()}),xT=B({type:jp(`eot_inference_metrics`),timestamp:F(),total_duration:F(),detection_delay:F(),prediction_duration:F(),num_requests:I().nullish(),metadata:hT.nullable().nullish()}),ST=B({type:jp(`interruption_metrics`),timestamp:F(),total_duration:F(),prediction_duration:F(),detection_delay:F(),num_interruptions:I(),num_backchannels:I(),num_requests:I(),metadata:hT.nullable().nullish()}),CT=B({audio_tokens:I().nullish(),text_tokens:I().nullish(),image_tokens:I().nullish()}),wT=B({audio_tokens:I().nullish(),text_tokens:I().nullish(),image_tokens:I().nullish(),cached_tokens:I().nullish(),cached_tokens_details:CT.nullable().nullish()}),TT=B({text_tokens:I().nullish(),audio_tokens:I().nullish(),image_tokens:I().nullish()}),ET=B({type:jp(`realtime_model_metrics`),label:P().nullish(),request_id:P(),timestamp:F(),duration:F().nullish(),session_duration:F().nullish(),ttft:F().nullish(),cancelled:L().nullish(),input_tokens:I().nullish(),output_tokens:I().nullish(),total_tokens:I().nullish(),tokens_per_second:F().nullish(),input_token_details:wT,output_token_details:TT,acquire_time:F().nullish(),connection_reused:L().nullish(),metadata:hT.nullable().nullish()}),DT=B({type:jp(`avatar_metrics`),timestamp:F(),playback_latency:F().nullish(),session_started_time:F().nullable().nullish(),avatar_joined_time:F().nullable().nullish(),metadata:hT.nullable().nullish()}),OT=B({model_name:P().nullish(),model_provider:P().nullish()}),kT=B({started_speaking_at:F().nullish(),stopped_speaking_at:F().nullish(),transcription_delay:F().nullish(),end_of_turn_delay:F().nullish(),on_user_turn_completed_delay:F().nullish(),stt_metadata:OT.nullish()}),AT=B({started_speaking_at:F().nullish(),stopped_speaking_at:F().nullish(),llm_node_ttft:F().nullish(),llm_node_tps:F().nullish(),llm_node_ttfs:F().nullish(),tts_node_ttfb:F().nullish(),playback_latency:F().nullish(),e2e_latency:F().nullish(),provider_request_ids:R(P()).nullish(),llm_metadata:OT.nullish(),tts_metadata:OT.nullish()}),jT=wp(`type`,[B({type:jp(`llm_usage`),provider:P(),model:P(),input_tokens:I().nullish(),input_cached_tokens:I().nullish(),input_cache_creation_tokens:I().nullish(),input_audio_tokens:I().nullish(),input_cached_audio_tokens:I().nullish(),input_text_tokens:I().nullish(),input_cached_text_tokens:I().nullish(),input_image_tokens:I().nullish(),input_cached_image_tokens:I().nullish(),output_tokens:I().nullish(),output_audio_tokens:I().nullish(),output_text_tokens:I().nullish(),output_reasoning_tokens:I().nullish(),session_duration:F().nullish()}),B({type:jp(`tts_usage`),provider:P(),model:P(),input_tokens:I().nullish(),output_tokens:I().nullish(),characters_count:I().nullish(),audio_duration:F().nullish()}),B({type:jp(`stt_usage`),provider:P(),model:P(),input_tokens:I().nullish(),output_tokens:I().nullish(),audio_duration:F().nullish()}),B({type:jp(`interruption_usage`),provider:P(),model:P(),total_requests:I().nullish()}),B({type:jp(`eot_usage`),provider:P(),model:P(),total_requests:I().nullish()})]),MT=V([`idle`,`ringing`,`dialing`,`active`,`ended`]),NT=wp(`role`,[B({role:jp(`user`),speech_id:P(),item_id:P().nullish(),text:P(),language:P().nullish(),transcript_confidence:F().nullish(),metrics:kT}),B({role:jp(`agent`),speech_id:P(),item_id:P().nullish(),text:P(),interrupted:L(),metrics:AT})]),PT=B({llm:R(gT),stt:R(_T),tts:R(vT),vad:R(yT),eou:R(bT),eot:R(xT),interruption:R(ST),realtime:R(ET),avatar:R(DT)}),FT=B({call_id:P(),name:P(),arguments:Op(P(),hp()),speech_id:P().nullish(),status:V([`running`,`done`,`failed`]),output:hp().nullish(),error:P().nullish(),summary:P().nullish(),duration_s:F().nullish(),seq:I()}),IT=B({hash:P(),chars:I(),seq:I()}),LT=Op(P(),IT),RT=B({tool:P(),call_id:P(),audience:P(),phrase:P(),status:V([`pending`,`granted`,`declined`]),said:P().nullish(),reason:P().nullish()}),zT=B({active:L(),by:Ew.nullable()}),BT=B({to:P(),mode:hw.nullable().nullish(),status:V([`requested`,`done`,`failed`]),by:V([`agent`,`supervisor`])}),VT=B({reason:P(),wait_s:F(),status:V([`open`,`answered`,`lapsed`]),asked_at:F(),by:Ew.nullable()}),HT=B({user:P().nullable(),agent:P().nullable()}),UT=B({from_seq:I(),to_seq:I()}),WT=B({seq:I(),code:P(),message:P()}),GT=B({identity:P(),kind:yw,name:P().nullish(),joined_at:F(),speaking:L(),attributes:Op(P(),hp())}),KT=B({name:P(),sid:P(),participants:R(GT),caller:P().nullable()}),qT=B({seq:I(),name:P(),source:Sw,identity:P().nullish()}),JT=B({seq:I(),name:P(),data:Op(P(),hp())}),YT=B({seq:I(),agent:P(),call:P().nullable(),status:MT,channel:sw.nullable(),direction:lw.nullable(),from:P().nullable(),to:P().nullable(),caller:ww.nullable(),room:KT.nullable(),started_at:F().nullable(),ended_at:F().nullable(),end_reason:fw.nullable(),outcome:P().nullable(),user_state:_w.nullable(),agent_state:vw.nullable(),live:HT,turns:R(NT),metrics:PT,tools:R(FT),app_state:Op(P(),hp()),events:R(qT),prompt:LT,tools_visible:R(P()),confirms:R(RT),memory:R(kw),sources:R(Aw),handoff:zT,held:L(),muted:L(),transfer:BT.nullable(),attention:VT.nullable().nullish(),usage:R(jT),cost:Nw.nullable(),routes:R(Tw),gaps:R(UT),errors:R(WT),custom:R(JT)}),XT=B({entries:R(mT),live:L(),next:I().nullable()}),ZT=B({held:I(),judged:I(),passed:L(),reason:P().nullable()}),QT=V([`escalated`,`low_score`,`promise`]),$T=B({call:P(),agent:P(),live:L(),last_seq:I(),status:MT,channel:sw.nullable(),direction:lw.nullable(),from:P().nullable(),to:P().nullable(),caller:ww.nullable(),started_at:F().nullable(),ended_at:F().nullable(),end_reason:fw.nullable(),outcome:P().nullable(),cost:Nw.nullable(),score:ZT.nullable().nullish(),flags:R(QT).nullish(),attention:VT.nullable().nullish()});B({org:P(),env:uw.nullable(),entry:mT});var eE=B({calls:R($T),total:I().nullable().nullish(),next:P().nullable().nullish()});function tE(e){return e.status!==`ended`}function nE(e){let t=e.room;return t!==null&&t.participants.find(e=>e.identity===t.caller)?.attributes[`pinecall.scope`]!==`chat`}function rE(e){return tE(e)&&e.attention?.status===`open`}function iE(e,t=Date.now()/1e3){if(e===null)return`—`;let n=Math.max(0,Math.round(t-e)),r=Math.floor(n/3600),i=Math.floor(n%3600/60),a=String(n%60).padStart(2,`0`);return r>0?`${r}:${String(i).padStart(2,`0`)}:${a}`:`${i}:${a}`}function aE(e){if(e==null)return`—`;let t=e.replace(/[^\d]/g,``);return e.startsWith(`+1`)&&t.length===11?`+1 (${t.slice(1,4)}) ${t.slice(4,7)}-${t.slice(7)}`:e.startsWith(`+34`)&&t.length===11?`+34 ${t.slice(2,5)} ${t.slice(5,8)} ${t.slice(8)}`:e.startsWith(`+598`)&&t.length===11?`+598 ${t.slice(3,5)} ${t.slice(5,8)} ${t.slice(8)}`:e}function oE(e){if(e==null)return null;let t=e.startsWith(`web_`)?e.slice(4):e.startsWith(`call_`)?e.slice(5):null;return t===null||t===``?null:t.slice(0,4)}function sE(e,t){let n=e.caller?.name;if(n!=null&&n!==``)return n;let r=e.direction===`outbound`?e.to:e.from;if(r==null)return`—`;if(r.startsWith(`+`))return aE(r);let i=oE(r);return i===null?r:t(i)}function cE(e,t,n=Date.now()/1e3){let r=t(n),i=t(n-86400),a=[];for(let n of e){let e=tE(n),o=e?`live`:n.started_at===null?`unstarted`:t(n.started_at),s=a.find(e=>e.key===o);s===void 0&&(s=e||n.started_at===null?{key:o,name:e?`live`:`unstarted`,lines:[]}:{key:o,name:o===r?`today`:o===i?`yesterday`:`before`,at:n.started_at,lines:[]},a.push(s)),s.lines.push(n)}return a}var lE=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`];function uE(e){let t=e.filter(tE);return[...t.filter(rE),...t.filter(e=>!rE(e)),...e.filter(e=>!tE(e))]}function dE(e){if(e.started_at===null||e.ended_at===null)return`—`;let t=Math.max(0,Math.round(e.ended_at-e.started_at));return`${Math.floor(t/60)}m ${String(t%60).padStart(2,`0`)}s`}function fE(e){return e==null?`—`:`$${e.toFixed(4)}`}function pE(e){return`$${e.toFixed(2)}`}function mE(e){return e===null?`—`:new Date(e*1e3).toISOString().slice(11,19)}function hE(e){if(e===null)return`—`;let t=new Date(e*1e3);return`${t.getUTCDate()} ${lE[t.getUTCMonth()]}, ${t.toISOString().slice(11,16)}`}function gE(e){if(e===null)return`—`;let t=new Date(e*1e3);return`${t.getUTCDate()} ${lE[t.getUTCMonth()]}`}function _E(e,t=Date.now()/1e3){if(e===null)return`—`;let n=Math.max(0,t-e);return n<60?`just now`:n<3600?`${Math.floor(n/60)} min ago`:n<86400?`${Math.floor(n/3600)} h ago`:n<172800?`Yesterday`:gE(e)}function vE(e){return new Date(e*1e3).toISOString().slice(0,10)}function yE(e=Date.now()/1e3){return{today:vE(e),yesterday:vE(e-86400)}}function bE(e,t){return e.filter(e=>e.started_at!==null&&vE(e.started_at)===t)}function xE(e,t){if(t===0)return null;let n=Math.round((e-t)/t*100);return n===0?{text:`steady`,tone:`flat`}:n>0?{text:`+${n}%`,tone:`up`}:{text:`−${Math.abs(n)}%`,tone:`down`}}function SE(e){return`${Math.round(e*100)}%`}function CE(e,t){if((e==null||e===``)&&t!=null)return t.startsWith(`+`)?t.slice(-2):t.startsWith(`web`)||t.startsWith(`call`)?`W`:void 0}function wE(e){return`Web visitor · ${e}`}function TE(e){let t=oE(e);return t===null?null:wE(t)}var EE=z({phone:F(),web:F(),whatsapp:F()}),DE=bp({day:P(),days:F(),conversations:z({now:F(),before:F()}),resolved_rate:F().nullable(),median_e2e_s:F().nullable(),spend_usd:F(),channels:EE,judged:F(),passed:F(),escalated:F(),mean_length_s:F().nullable(),endings:R(z({reason:P(),count:F()})),series:R(EE.extend({day:P(),spend_usd:F(),judged:F(),passed:F()})),sessions_total:F(),live:F(),agents:R(z({slug:P(),calls:F(),score:F().nullable()})),budget:z({limit_usd:F().nullable(),spent_usd_month:F()})}),OE=[{days:1,label:`24 h`,said:`today`},{days:7,label:`7 d`,said:`the last 7 days`},{days:30,label:`30 d`,said:`the last 30 days`}],kE=15e3;function AE({day:e,days:t=1,agent:n}={}){let r=M(),[i,a]=(0,O.useState)(null);return(0,O.useEffect)(()=>{let i=!1,o,s={days:t,...e===void 0?{}:{day:e},...n===void 0?{}:{agent:n}},c=async()=>{try{let e=DE.parse(await A(r,`/v1/insights`,s));i||a(e)}catch(e){e instanceof na&&[403,404].includes(e.status)&&(window.clearInterval(o),i||a(null))}};return c(),o=window.setInterval(()=>void c(),kE),()=>{i=!0,window.clearInterval(o)}},[r,e,t,n]),i}function jE(e=1){let[t,n]=Xi(),r=Number(t.get(`days`)),i=OE.find(e=>e.days===r)?.days;return[i??e,r=>{let i=new URLSearchParams(t);r===e?i.delete(`days`):i.set(`days`,String(r)),n(i,{replace:!0})},i!==void 0]}function ME(e){return OE.find(t=>t.days===e)?.said??`today`}function NE({days:e,onPick:t}){return(0,j.jsx)(Vh,{options:OE.map(e=>({value:String(e.days),label:e.label})),value:String(e),onChange:e=>t(OE.find(t=>String(t.days)===e)?.days??1)})}function PE(){let e=M(),[t,n]=(0,O.useState)(nh===`production`&&null);return(0,O.useEffect)(()=>{if(nh!==`production`)return;let t=!1;return fetch(da(e,`/v1/ops/whoami`),{headers:ia(e)}).then(e=>{t||n(e.ok)},()=>{t||n(!1)}),()=>{t=!0}},[e]),t}var FE=B({ok:L(),by:Ew.nullable(),error:P().nullish()}),IE=B({reason:P(),wait_s:F()}),LE=B({seqs:R(I()),said:P().nullish()}),RE=B({name:P(),verdict:mw,criteria:P(),reason:P(),evidence:LE}),zE=B({code:P(),call:P().nullable()}),BE=B({code:P(),env:uw,expires_at:F(),log:Cw}),VE=B({tool:P(),call_id:P(),audience:P(),said:P().nullish(),reason:V([`no`,`timeout`,`changed`,`cancelled`])}),HE=B({tool:P(),call_id:P(),audience:P(),said:P(),ttl_s:I()}),UE=B({tool:P(),call_id:P(),arguments:Op(P(),hp()),audience:P(),phrase:P(),ttl_s:I()}),WE=B({org:P(),quota:V([`minutes`,`messages`,`agents`,`concurrent_calls`,`memory_facts`,`knowledge_chunks`,`numbers`,`seats`,`llm_tokens`]),used:F(),limit:I()}),GE=B({name:P(),data:Op(P(),hp())}),KE=B({id:P(),verb:dw,data:Op(P(),hp())}),qE=B({query:P(),sources:R(Aw),took_ms:F(),speech_id:P().nullish()}),JE=B({digit:V([`0`,`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`,`*`,`#`]),code:I()}),YE=B({code:P(),message:P(),command:P().nullish(),id:P().nullish(),recoverable:L()}),XE=B({org:P(),day:P(),today_usd:F(),usual_usd:F(),multiple:F()}),ZE=B({stage:V([`llm`,`stt`,`tts`]),vendor:P(),model:P(),available:L(),serving:P(),serving_model:P()}),QE=B({channel:sw,workers:I(),active:I()}),$E=B({seq:I()}),eD=B({from_seq:I(),to_seq:I(),snapshot:YT.nullable()}),tD=B({ops:R(kw),speech_id:P().nullish()}),nD=B({message_id:P(),call:P().nullable()}),rD=B({channel:sw,env:uw,number:P(),phone_number_id:P(),from:P(),name:P().nullable(),message_id:P(),text:P(),received_at:F()}),iD=B({ts:F()}),aD=B({name:P(),hash:P(),chars:I()}),oD=wp(`kind`,[B({kind:jp(`tool`),tool:P(),call_id:P()}),B({kind:jp(`event`),name:P(),seq:I()})]),sD=B({state:Op(P(),hp()),changed:R(P()),cause:oD.nullish()}),cD=B({by:Ew,reason:P().nullish()}),lD=B({by:Ew}),uD=B({by:Ew,text:P()}),dD=B({by:Ew}),fD=B({by:Ew,to:P(),mode:hw.nullable().nullish()}),pD=B({by:Ew,text:P()}),mD=B({call_id:P(),name:P(),arguments:Op(P(),hp()),speech_id:P().nullish()}),hD=B({visible:R(P())}),gD=B({speech_id:P(),item_id:P().nullish(),text:P(),language:P().nullish(),transcript_confidence:F().nullish(),metrics:kT}),_D=B({state:_w}),vD=B({text:P(),final:L(),language:P().nullish(),confidence:F().nullish()}),yD=B({changed:R(P())}),bD=B({app:P(),env:uw,left:L()}),xD=B({app:P(),env:uw,handed:I(),parked:I()}),SD=B({routes:R(Tw),app:P(),sdk:P().nullish(),env:uw.nullish()}),CD=B({state:vw}),wD=B({speech_id:P(),text:P(),final:L(),start:F().nullish(),end:F().nullish()}),TD=B({channel:sw,direction:lw,from:P(),to:P(),run:P().nullable().nullish(),persona:P().nullable().nullish(),accepts_when:P().nullable().nullish(),declines_when:P().nullable().nullish(),caller:ww.nullable(),started_at:F(),env:uw.nullish(),worker:P().nullish(),medium:cw.nullish(),state:Op(P(),hp()).nullish()}),ED=B({app:P(),started:TD,state:Op(P(),hp()),seq:I(),claimed:P().nullable().nullish()}),DD=B({code:P(),via:V([`keypad`,`agent`])}),OD=B({channel:sw,from:P(),to:P(),run:P().nullable().nullish(),caller:ww.nullable(),external_id:P().nullish(),asked_by:P().nullish()}),kD=B({reason:fw,ended_by:pw,ended_at:F(),duration_s:F()}),AD=B({held:L(),muted:L()}),jD=B({channel:sw,from:P(),to:P(),route:Tw,run:P().nullable().nullish(),caller:ww.nullable(),external_id:P().nullish()}),MD=B({provider:P().nullable(),model:P().nullable(),criteria:P()}),ND=B({passed:L().nullish(),not_judged:P().nullish(),judges:R(RE),panel:R(P()).nullish(),judge_calls:I(),judge_cost_usd:F().nullish(),judged_by:MD.nullish()}),PD=B({reason:fw,outcome:P(),duration_s:F(),turns:I(),usage:R(jT),cost:Nw,recording:P().nullish()}),FD=B({to:P(),mode:hw.nullable().nullish(),ok:L(),error:P().nullish()}),ID=B({channel:sw,number:P(),via:V([`overflow`,`widget`,`agent`]),call:P().nullable(),when:P().nullish(),note:P().nullish(),contact:ww.nullable()}),LD=B({speech_id:P(),item_id:P().nullish(),text:P(),interrupted:L(),metrics:AT}),RD=B({name:P(),sid:P(),channel:sw}),zD=B({identity:P(),kind:yw,name:P().nullish(),attributes:Op(P(),hp())}),BD=B({identity:P(),reason:P()}),VD=B({identity:P(),speaking:L()}),HD=B({identity:P(),kind:bw,source:xw}),UD=B({identity:P(),kind:bw,source:xw}),WD={"agent.configured":yD,"agent.detached":bD,"agent.draining":xD,"agent.registered":SD,"agent.state":CD,"agent.transcript":wD,"attention.answered":FE,"attention.requested":IE,"call.attached":ED,"call.claimed":DD,"call.dialing":OD,"call.ended":kD,"call.line":AD,"call.ringing":jD,"call.score":ND,"call.started":TD,"call.summary":PD,"call.transferred":FD,"callback.requested":ID,"code.claimed":zE,"code.issued":BE,"confirm.declined":VE,"confirm.granted":HE,"confirm.request":UE,"credits.exhausted":WE,custom:GE,"dev.request":KE,"docs.sources":qE,"dtmf.received":JE,error:YE,"event.received":B({name:P(),data:Op(P(),hp()),source:Sw,identity:P().nullish()}),"fleet.full":QE,"log.caught_up":$E,"log.gap":eD,"memory.ops":tD,"message.taken":nD,"message.waiting":rD,"metrics.avatar":DT,"metrics.eot":xT,"metrics.eou":bT,"metrics.interruption":ST,"metrics.llm":gT,"metrics.realtime":ET,"metrics.stt":_T,"metrics.tts":vT,"metrics.vad":yT,"participant.joined":zD,"participant.left":BD,"participant.speaking":VD,pong:iD,"prompt.changed":aD,"room.opened":RD,"room.sent":B({topic:P(),to:P().nullish(),bytes:I()}),"spend.unusual":XE,"state.changed":sD,"supervisor.ended":cD,"supervisor.released":lD,"supervisor.said":uD,"supervisor.took_over":dD,"supervisor.transferred":fD,"supervisor.whispered":pD,"tool.call":mD,"tool.result":Dw,"tools.changed":hD,"track.published":HD,"track.unpublished":UD,"turn.agent":LD,"turn.user":gD,"user.state":_D,"user.transcript":vD,"vendor.switched":ZE},GD=`call.score`,KD=class extends Error{name=`UnknownEvent`};function qD(e){return mT.parse(e)}function JD(e){if(!YD(e.type))throw new KD(`unknown event type: ${e.type}`);return{type:e.type,data:WD[e.type].parse(e.data)}}function YD(e){return Object.hasOwn(WD,e)}var XD=500,ZD=8e3,QD=204,$D=class{#e=``;#t=null;#n=null;#r=[];feed(e){this.#e+=e;let t=[],n;for(;(n=this.#e.search(/\r\n|\n|\r/))!==-1;){let e=this.#e.slice(0,n);this.#e=this.#e.slice(n+(this.#e.startsWith(`\r
99
+ `,n)?2:1));let r=this.#i(e);r!==null&&t.push(r)}return t}#i(e){if(e===``){if(this.#r.length===0&&this.#n===null&&this.#t===null)return null;let e={id:this.#t,event:this.#n,data:this.#r.join(`
100
+ `)};return this.#n=null,this.#r=[],e}if(e.startsWith(`:`))return null;let t=e.indexOf(`:`),n=t===-1?e:e.slice(0,t),r=t===-1?``:e.slice(t+1).replace(/^ /,``);return n===`id`?this.#t=r:n===`event`?this.#n=r:n===`data`&&this.#r.push(r),null}};function eO(e,t,n){let r=new AbortController,i=null,a=null,o=XD,s=!0,c=()=>{i===null&&(i=window.setTimeout(()=>{i=null,n.onPaint()},100))},l=e=>{if(e.id!==null&&(a=e.id),e.data!==``){try{n.onEntry(qD(JSON.parse(e.data)))}catch(e){n.onRefused(String(e));return}c()}};return n.onConnection(`connecting`),(async()=>{for(;s;){let i;try{i=await fetch(e,{headers:{...ia(t),accept:`text/event-stream`,...a===null?{}:{"last-event-id":a}},signal:r.signal})}catch{if(!s)return;n.onConnection(`reconnecting`),await tO(o,r.signal),o=Math.min(o*2,ZD);continue}if(i.status===QD){n.onConnection(`ended`);return}if(!i.ok||i.body===null){n.onRefused(`the stream answered ${i.status}`),n.onConnection(`ended`);return}n.onConnection(`live`),o=XD;let c=new $D,u=new TextDecoder,d=i.body.getReader();try{for(;;){let{value:e,done:t}=await d.read();if(t)break;for(let t of c.feed(u.decode(e,{stream:!0})))l(t)}}catch{if(!s)return}if(!s)return;n.onConnection(`reconnecting`),await tO(o,r.signal),o=Math.min(o*2,ZD)}})(),()=>{s=!1,i!==null&&window.clearTimeout(i),r.abort()}}function tO(e,t){return new Promise(n=>{let r=window.setTimeout(n,e);t.addEventListener(`abort`,()=>{window.clearTimeout(r),n()},{once:!0})})}var nO=3e3;function rO(e){return{error:ra(e),refusedWith:e instanceof na?e.status:null}}function iO(e=50){let t=M(),[n,r]=(0,O.useState)([]),[i,a]=(0,O.useState)(`connecting`),[o,s]=(0,O.useState)(0),[c,l]=(0,O.useState)(null),[u,d]=(0,O.useState)(null);return(0,O.useEffect)(()=>{let n=!1,i=async()=>{try{let i=eE.parse(await A(t,`/v1/sessions`,{limit:e}));n||(r(i.calls),l(null),d(null))}catch(e){if(!n){let t=rO(e);l(t.error),d(t.refusedWith)}}};i();let o=window.setInterval(()=>void i(),nO),c=eO(da(t,`/v1/events`),t,{onEntry(e){(e.type===`agent.registered`||e.type===`agent.detached`)&&s(e=>e+1),i()},onPaint:()=>void 0,onConnection:a,onRefused:l});return()=>{n=!0,window.clearInterval(o),c()}},[t,e]),{lines:n,connection:i,agentsChanged:o,error:c,refusedWith:u}}async function aO(e){return Uw.parse(await A(e,`/v1/agents`)).agents}function oO(e=0){let t=M(),[n,r]=(0,O.useState)([]),[i,a]=(0,O.useState)(null),[o,s]=(0,O.useState)(!1);return(0,O.useEffect)(()=>{let e=!1;return(async()=>{try{let n=await aO(t);e||(r(n),a(null))}catch(t){e||a(String(t))}finally{e||s(!0)}})(),()=>{e=!0}},[t,e]),{agents:n,error:i,loaded:o}}var sO=200,cO=(0,O.createContext)(null);function lO({children:e}){let t=M(),n=nw(),r=iO(sO),i=AE(),a=PE(),o=oO(r.agentsChanged),[s,c]=(0,O.useState)(null);(0,O.useEffect)(()=>{let e=!1;return lm(t).then(t=>{e||c(t)},()=>{e||c(null)}),()=>{e=!0}},[t]);let l=pT(n),u=(0,O.useMemo)(()=>({lines:r.lines,live:r.lines.filter(e=>e.live),connection:r.connection,floorError:r.error,held:o.agents,agents:dT(o.agents,l),agentsLoaded:o.loaded,agentsError:o.error,orgs:s,here:s?.find(e=>e.here)??null,insights:i,operator:a}),[r.lines,r.connection,r.error,o.agents,o.loaded,o.error,s,l,i,a]);return(0,j.jsx)(cO,{value:u,children:e})}function uO(){let e=(0,O.useContext)(cO);if(e===null)throw Error(`a screen was mounted outside the shell's org`);return e}var dO={talk:`talk`,devchat:`talk`,calls:`calls`,"agent-overview":`calls`,pipeline:`pipeline`,settings:`words`,lexicon:`words`,docs:`knowledge`,memory:`memory`,evals:`evals`,quality:`evals`,widget:`talk`,agents:`calls`,personas:`evals`,simulations:`evals`,"org-memory":`memory`,"org-docs":`knowledge`,numbers:`numbers`,providers:`providers`,team:`team`,usage:`usage`,"org-data":`team`};function fO(e,t){let n=dO[t];return n===void 0||e.includes(n)}var pO=[`app`,`calls`,`evals`,`keys`,`knowledge`,`memory`,`numbers`,`pipeline`,`providers`,`supervise`,`talk`,`team`,`usage`,`words`];function mO(e){let t=pO.filter(t=>!e.includes(t));return t.length===0||t.length===1&&t[0]===`app`?`everything`:e.join(`, `)}var hO=z({fingerprint:P(),label:P().nullable(),kind:V([`person`,`server`]),env:V([`production`,`sandbox`]).nullable(),name:P().nullable(),created_by:P().nullable(),created_at:P(),last_used_at:P().nullable(),revoked_at:P().nullable(),scopes:R(P())}),gO=z({key:P(),key_id:P(),label:P().nullable(),env:P(),scopes:R(P())});async function _O(e){return R(hO).parse(await A(e,`/v1/keys`))}async function vO(e,t){return gO.parse(await la(e,`/v1/keys`,t))}async function yO(e,t){await la(e,`/v1/keys/${encodeURIComponent(t)}/revoke`,{})}async function bO(e){return Ww.parse(await A(e,`/v1/apps`)).apps}async function xO(e,t){Gw.parse(await la(e,`/v1/apps/${encodeURIComponent(t)}/stop`,{}))}function SO({held:e,stops:t}){let n=M(),[r,i]=(0,O.useState)(null),[a,o]=(0,O.useState)(null);(0,O.useEffect)(()=>{let e=!1;return bO(n).then(t=>{e||i(t)},t=>{e||o(t instanceof Error?t.message:String(t))}),()=>{e=!0}},[n,e]);let s=async e=>{o(null);try{await xO(n,e),i(await bO(n))}catch(e){o(e instanceof na?e.message:String(e))}};return r===null&&a===null?null:(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Processes`,meta:`the machines holding these agents — a stop closes one, and it exits instead of dialling back`}),(0,j.jsx)(Ah,{children:a}),(0,j.jsxs)(`div`,{className:`ui-card-list`,children:[r?.length===0&&(0,j.jsx)(`div`,{className:`agents-none`,children:`No process is connected.`}),r?.map(e=>(0,j.jsx)(CO,{app:e,stop:t?s:void 0},e.app))]})]})}function CO({app:e,stop:t}){let[n,r]=(0,O.useState)(!1),i=e.holder===null?`the org's`:e.holder.name??e.holder.holder??``,a=`${e.host??`an unnamed host`}${e.address===null?``:` (${e.address})`}`;return(0,j.jsx)(`div`,{onMouseLeave:()=>r(!1),children:(0,j.jsx)(Mh,{name:e.agents.join(`, `)||e.app,sub:`${a} · ${e.sdk??`an unknown sdk`} · ${i} · connected ${_E(e.connected_at)}`,end:t!==void 0&&(0,j.jsx)(Lh,{danger:!0,onClick:()=>n?void t(e.app):r(!0),children:n?`Stop it`:`Stop`})})})}var wO=z({org:P(),agent:P(),channel:V([`phone`,`web`,`whatsapp`]),number:P().nullable(),label:P().nullable(),env:V([`production`,`sandbox`]),managed:L().default(!1)}),TO=V([`ok`,`waiting`,`broken`]),EO=z({route:wO,origin:V([`bought`,`imported`,`hooked`,`typed`]).default(`imported`),rings:TO.default(`ok`),last_call_at:F().nullish(),via:P().nullish(),account:P().nullish()}),DO=z({number:P(),steps:R(z({step:V([`carrier`,`fence`,`world`,`agent`]),state:TO,says:P(),fix:P().nullish()})),rings:TO,last_call_at:F().nullish()}),OO=z({carriers:R(z({kind:P(),name:P(),how:V([`automatic`,`guided`]),networks:R(P())})),sells:L()}),kO=z({kind:V([`twilio`,`sip`,`whatsapp`]),account:P(),label:P().default(``),networks:R(z({network:P(),state:V([`waiting`,`approved`,`refused`])})).default([])}),AO=z({carriers:R(kO)}),jO=z({kind:P(),numbers:R(z({number:P(),name:P(),imported:L(),account:P().optional()}))}),MO=z({route:wO,steps:R(P()),dry_run:L()});async function NO(e){return R(EO).parse(await A(e,`/v1/numbers`))}async function PO(e,t){return DO.parse(await A(e,`/v1/numbers/${encodeURIComponent(t)}/path`))}async function FO(e){return OO.parse(await A(e,`/v1/carriers/catalog`))}async function IO(e,t,n){await sa(e,`/v1/numbers/${encodeURIComponent(t)}/env`,{env:n})}async function LO(e){try{return AO.parse(await A(e,`/v1/carriers`)).carriers}catch(e){if(!ZO(e,404)&&!ZO(e,405))throw e}try{return[kO.parse(await A(e,`/v1/carrier`))]}catch(e){if(ZO(e,404))return[];throw e}}async function RO(e,t){await sa(e,`/v1/carrier`,t)}async function zO(e,t){await ua(e,`/v1/carrier?account=${encodeURIComponent(t)}`)}async function BO(e){return jO.parse(await A(e,`/v1/numbers/available`))}async function VO(e,t,n){return MO.parse(await la(e,`/v1/numbers${n?`?dry_run=true`:``}`,t))}async function HO(e,t,n){return MO.parse(await la(e,`/v1/numbers/buy${n?`?dry_run=true`:``}`,t))}async function UO(e,t){await ua(e,`/v1/numbers/${encodeURIComponent(t)}`)}var WO=bp({ready:L(),kind:P().nullish(),from_numbers:R(P()),steps_missing:R(P()),guards:bp({dial_anywhere:L(),per_minute:F(),per_day:F(),max_duration_s:F()})}),GO=bp({steps:R(P()),dry_run:L(),ready:L()});function KO(e,t=!1){let n=new URLSearchParams;e!==void 0&&n.set(`account`,e),t&&n.set(`dry_run`,`true`);let r=n.toString();return r===``?``:`?${r}`}async function qO(e,t){try{return WO.parse(await A(e,`/v1/carrier/outbound${KO(t)}`))}catch(e){if(ZO(e,404)||ZO(e,405)||ZO(e,403))return null;throw e}}async function JO(e,t,n){return GO.parse(await la(e,`/v1/carrier/outbound${KO(n,t)}`,{}))}var YO=bp({call:P()});async function XO(e,t,n,r){let i=r===void 0||r===``?{to:n}:{to:n,from:r};return YO.parse(await la(e,`/v1/agents/${encodeURIComponent(t)}/dial`,i)).call}function ZO(e,t){return typeof e==`object`&&!!e&&e.status===t}var QO=z({vendors:R(P())});async function $O(e){return QO.parse(await A(e,`/v1/provider-keys`)).vendors}async function ek(e,t,n){await sa(e,`/v1/provider-keys/${encodeURIComponent(t)}`,{key:n})}async function tk(e,t){await ua(e,`/v1/provider-keys/${encodeURIComponent(t)}`)}var nk=`minmax(0,1.5fr) minmax(0,1.3fr) minmax(0,1.1fr) 90px 90px`;function rk(){let e=M(),t=rw(),[n,r]=(0,O.useState)({numbers:null,free:null,keys:null,catalogue:null,brought:[]}),i=e=>fh(ch,e)&&t!==null&&fO(t,e),a=i(`numbers`),o=fh(ch,`tokens`),s=i(`providers`);return(0,O.useEffect)(()=>{let t=!1;return(async()=>{let[n,i,c,l,u]=await Promise.all([a?NO(e).catch(()=>null):Promise.resolve(null),a?BO(e).catch(()=>null):Promise.resolve(null),o?_O(e).catch(()=>null):Promise.resolve(null),s?aT(e).catch(()=>null):Promise.resolve(null),s?$O(e).catch(()=>[]):Promise.resolve([])]);t||r({numbers:n,free:i===null?null:i.numbers.filter(e=>!e.imported).length,keys:c,catalogue:l,brought:u})})(),()=>{t=!0}},[e,a,o,s]),n}function ik(){let{held:e,agents:t,live:n,lines:r,connection:i,agentsError:a,agentsLoaded:o,insights:s}=uO(),c=pT(nw()),l=rw(),u=rk(),[d,f]=(0,O.useState)(`everything`),p=bE(r,yE().today),m=e.some(e=>lT(e,c)),h=m?uT(e,d,c):t,g=new Set((u.numbers??[]).map(e=>e.route.agent)),_=new Set([...t.map(e=>e.slug),...g]),v=e=>(u.numbers??[]).filter(t=>t.route.agent===e&&t.route.number!==null).map(e=>aE(e.route.number)),y=u.keys?.filter(e=>e.revoked_at===null)??[],b=u.catalogue?.providers.filter(e=>e.standing===`ready`)??[],x=nh===`production`&&l!==null&&l.includes(`app`);return(0,j.jsxs)(kC,{children:[(0,j.jsx)(AC,{title:`Agents`,lede:`Which agents this gateway is holding right now — the list changes the moment a socket connects.`,actions:x?(0,j.jsx)(Ih,{to:`/tokens`,size:`base`,children:`New server token`}):void 0}),(0,j.jsxs)(jC,{min:170,children:[(0,j.jsx)(MC,{label:`Agents up`,value:t.length,of:`of ${_.size}`}),u.numbers===null?(0,j.jsx)(MC,{label:`Calls live`,value:n.length}):(0,j.jsx)(MC,{label:`Numbers ringing`,value:u.numbers.filter(e=>e.route.number!==null).length,of:u.free===null?void 0:`· ${u.free} free`}),u.keys===null?(0,j.jsx)(MC,{label:`Calls today`,value:p.length}):(0,j.jsx)(MC,{label:`Active tokens`,value:y.length,of:`· ${u.keys.length-y.length} revoked`}),u.catalogue!==null&&(0,j.jsx)(MC,{label:`Providers ready`,value:b.length,of:`of ${u.catalogue.providers.length}`})]}),(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Agents`,meta:`the list changes the moment a socket connects`,action:(0,j.jsxs)(`span`,{className:`agents-watching`,children:[(0,j.jsx)(CC,{tone:i===`live`?`green`:void 0,small:!0}),i===`live`?`watching`:i]}),children:m&&(0,j.jsx)(`div`,{className:`agents-corners`,children:(0,j.jsx)(Hh,{options:cT.map(e=>({value:e,label:e})),value:d,onChange:f})})}),(0,j.jsx)(Ah,{children:a}),o&&h.length===0&&(0,j.jsx)(kh,{children:d===`everything`?nh===`sandbox`?(0,j.jsxs)(j.Fragment,{children:[`Nothing of yours is running. `,(0,j.jsx)(`span`,{className:`ui-fixed`,children:`pinecall start`}),` in a project puts its agents here.`]}):(0,j.jsxs)(j.Fragment,{children:[`Nothing is running in production: `,(0,j.jsx)(`span`,{className:`ui-fixed`,children:`pinecall start --prod`}),` on your server holds it, on a server token.`]}):(0,j.jsxs)(j.Fragment,{children:[`Nothing here is `,d,`.`]})}),h.length>0&&(0,j.jsx)(NC,{columns:nk,padding:`9px 16px`,labels:[`Agent`,`Doors`,`Numbers`,`Today>`,`Score>`]}),h.map((e,t)=>{let i=n.filter(t=>t.agent===e.slug).length,a=r.find(t=>t.agent===e.slug),o=v(e.slug);return(0,j.jsxs)(PC,{columns:nk,padding:`13px 16px`,to:`/a/${e.slug}/overview`,children:[(0,j.jsxs)(`div`,{className:`agents-name`,children:[(0,j.jsx)(DC,{name:e.slug,letters:e.slug.slice(0,1).toUpperCase(),tint:TC(t)}),(0,j.jsxs)(`div`,{style:{minWidth:0},children:[(0,j.jsx)(`div`,{className:`ui-cell-strong ui-clip`,children:e.slug}),i>0?(0,j.jsxs)(`div`,{className:`agents-live`,children:[(0,j.jsx)(CC,{tone:`green`,small:!0}),i===1?`1 call live`:`${i} calls live`]}):(0,j.jsxs)(`div`,{className:`agents-idle`,children:[m?`${fT(e)} · `:``,`idle`,a===void 0?``:` · last call ${_E(a.started_at)}`]})]})]}),(0,j.jsx)(`div`,{className:`ui-tags`,children:e.channels.map(e=>(0,j.jsx)(SC,{children:e},e))}),(0,j.jsx)(`span`,{className:`agents-numbers ui-clip`,children:o.length===0?`—`:o.join(`, `)}),(0,j.jsx)(`span`,{className:`agents-figure`,children:s?.agents.find(t=>t.slug===e.slug)?.calls??p.filter(t=>t.agent===e.slug).length}),(0,j.jsx)(sk,{share:s?.agents.find(t=>t.slug===e.slug)?.score??null})]},`${e.slug}/${e.holder?.holder??``}`)}),h.length>0&&(0,j.jsx)(Oh,{children:(0,j.jsx)(`span`,{children:h.length>1?`Every agent writes the same log — open one to read its turns.`:`Open the agent to read its turns.`})})]}),(0,j.jsx)(SO,{held:e,stops:l!==null&&l.includes(`app`)}),(u.keys!==null||u.catalogue!==null)&&(0,j.jsxs)(`div`,{className:`agents-split`,children:[u.keys!==null&&(0,j.jsx)(ak,{tokens:u.keys}),u.catalogue!==null&&(0,j.jsx)(ok,{catalogue:u.catalogue,brought:u.brought})]})]})}function ak({tokens:e}){let t=[...e].sort((e,t)=>Number(e.revoked_at!==null)-Number(t.revoked_at!==null)).slice(0,4);return(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Tokens in use`,action:(0,j.jsx)(Dh,{to:`/tokens`,children:`Manage`})}),(0,j.jsxs)(`div`,{className:`ui-card-list`,children:[t.length===0&&(0,j.jsx)(`div`,{className:`agents-none`,children:`No token has been made yet.`}),t.map(e=>(0,j.jsx)(Mh,{name:e.label??e.fingerprint,sub:e.kind===`person`?`${e.name??`a person`} · their own`:`the org's · ${e.env??``}${e.created_by===null?``:` · made by ${e.created_by}`}`,end:e.revoked_at===null?(0,j.jsx)(xC,{tone:`green`,children:`active`}):(0,j.jsx)(xC,{tone:`muted`,children:`revoked`})},e.fingerprint))]})]})}function ok({catalogue:e,brought:t}){let n=e.providers.filter(e=>e.standing===Zw),r=new Set(Object.values(e.defaults).map(e=>e.split(`/`)[0]??e)),i=[...n].sort((e,n)=>Number(t.includes(n.name))-Number(t.includes(e.name))||Number(r.has(n.name))-Number(r.has(e.name))||e.name.localeCompare(n.name));return(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Providers`,meta:`${n.length} ready · ${e.providers.length-n.length} need a key`,action:(0,j.jsx)(Dh,{to:`/providers`,children:`Bring one`})}),(0,j.jsx)(`div`,{className:`ui-card-list`,children:i.slice(0,4).map(n=>(0,j.jsx)(Mh,{name:n.name.charAt(0).toUpperCase()+n.name.slice(1),sub:lk(n,e),end:t.includes(n.name)?(0,j.jsx)(xC,{tone:`green`,children:`ready`}):(0,j.jsx)(xC,{tone:`amber`,children:`box key`})},n.name))})]})}function sk({share:e}){return e===null?(0,j.jsx)(`span`,{className:`agents-figure agents-score`,children:`—`}):(0,j.jsxs)(`span`,{className:`agents-figure ${e>=.9?`agents-score-good`:e>=.7?`agents-score-fair`:`agents-score-poor`}`,children:[Math.round(e*100),`%`]})}var ck={llm:`decides`,stt:`hears`,tts:`speaks`};function lk(e,t){let n=e.does.filter(n=>(t.defaults[n]??``).split(`/`)[0]===e.name);return n.length>0?`${n.map(e=>ck[e]).join(`, `)} · the default`:`${e.does.map(e=>ck[e]).join(`, `)} · ${e.note}`}var uk=z({name:P(),release:F().int().nullable(),live_release:F().int().nullable(),failed_why:P().nullable(),stopped:L(),created_by:P(),created_at:F()}),dk=z({name:P(),release:F().int(),sha256:P(),bytes:F().int(),author:P(),note:P(),created_at:F()}),fk=z({name:P(),host:P().nullable(),lines:P(),at:F().nullable()}),pk=z({org:P(),env:V([`production`,`sandbox`]),name:P(),day:P(),seconds:F()}),mk=z({since:P(),until:P(),rows:R(pk)}),hk=e=>`/v1/hosted/${encodeURIComponent(e)}`;async function gk(e){return z({apps:R(uk)}).parse(await A(e,`/v1/hosted`)).apps}async function _k(e,t){return z({releases:R(dk)}).parse(await A(e,`${hk(t)}/releases`)).releases}async function vk(e,t,n){return dk.parse(await la(e,`${hk(t)}/rollback`,{release:n}))}async function yk(e,t){await la(e,`${hk(t)}/stop`,{})}async function bk(e,t){await la(e,`${hk(t)}/start`,{})}async function xk(e,t){await ua(e,hk(t))}async function Sk(e,t){return fk.parse(await A(e,`${hk(t)}/logs`))}async function Ck(e){return mk.parse(await A(e,`/v1/hosted/usage`)).rows}function wk(e){return e.stopped?{text:`stopped`,tone:`gray`,why:null}:e.release===null?{text:`no release yet`,tone:`gray`,why:null}:e.failed_why===null?e.live_release===e.release?{text:`live · release ${e.release}`,tone:`green`,why:null}:{text:`release ${e.release} on its way`,tone:`amber`,why:null}:{text:`release ${e.release} failed`,tone:`red`,why:e.failed_why}}function Tk(e){return e.trim().split(`
101
+ `)[0]??``}function Ek(e){let t=new Map;for(let n of e)t.set(n.name,(t.get(n.name)??0)+n.seconds);return t}function Dk(e){return`${(e/3600).toFixed(1)} h`}function Ok(e,t=Date.now()/1e3){return e===null?`asking the box for its lines…`:`read ${Math.max(0,Math.round(t-e))} s ago`}var kk=3e3;function Ak({name:e,close:t}){let n=M(),[r,i]=(0,O.useState)(null),[a,o]=(0,O.useState)(null),[s,c]=(0,O.useState)(()=>Date.now()/1e3);(0,O.useEffect)(()=>{let t=!1,r=()=>{Sk(n,e).then(e=>{t||(i(e),o(null),c(Date.now()/1e3))},e=>{t||o(ra(e))})};r();let a=window.setInterval(r,kk);return()=>{t=!0,window.clearInterval(a)}},[n,e]);let l=r===null||r.lines===``&&r.at===null,u=r===null?void 0:[Ok(r.at,s),r.host].filter(e=>e!==null).join(` · `);return(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Logs · ${e}`,meta:u,action:(0,j.jsx)(Lh,{onClick:t,children:`Close`})}),(0,j.jsx)(Ah,{children:a}),l?(0,j.jsx)(`div`,{className:`apps-waiting`,children:`asking the box for its lines…`}):(0,j.jsx)(`pre`,{className:`ui-code apps-lines`,children:r.lines===``?`(no lines)`:r.lines})]})}var jk=`72px minmax(0,1.4fr) minmax(0,1fr) 120px 90px 150px`;function Mk({app:e,close:t,rolledBack:n}){let r=M(),[i,a]=(0,O.useState)(null),[o,s]=(0,O.useState)(null);(0,O.useEffect)(()=>{let t=!1;return _k(r,e.name).then(e=>{t||a(e)},e=>{t||s(ra(e))}),()=>{t=!0}},[r,e.name]);let c=async t=>{let o=(i?.[0]?.release??e.release??t)+1;if(window.confirm(`Roll ${e.name} back to release ${t}? Release ${t}'s sources become release ${o}; the one serving keeps answering until it registers.`)){s(null);try{let i=await vk(r,e.name,t);a(e=>[i,...e??[]]),n()}catch(e){s(ra(e))}}};return(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Releases · ${e.name}`,meta:`newest first`,action:(0,j.jsx)(Lh,{onClick:t,children:`Close`})}),(0,j.jsx)(Ah,{children:o}),i!==null&&i.length===0?(0,j.jsx)(kh,{children:`No release yet.`}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(NC,{columns:jk,labels:[`Release`,`Note`,`Author`,`Sent`,`Size>`,``]}),(i??[]).map(t=>(0,j.jsxs)(`div`,{className:`ui-table-row`,style:{gridTemplateColumns:jk},title:`sha256 ${t.sha256}`,children:[(0,j.jsx)(`span`,{className:`ui-cell-strong ui-clip`,children:t.release}),(0,j.jsx)(`span`,{className:`ui-cell-ink ui-clip`,children:t.note===``?`—`:t.note}),(0,j.jsx)(`span`,{className:`ui-cell-ink ui-clip`,children:t.author}),(0,j.jsx)(`span`,{className:`ui-cell-faint`,children:hE(t.created_at)}),(0,j.jsx)(`span`,{className:`ui-cell-faint ui-cell-right apps-hours`,children:Nk(t.bytes)}),(0,j.jsx)(`span`,{className:`ui-cell-end`,children:t.release===e.live_release?(0,j.jsx)(xC,{tone:`green`,children:`serving`}):(0,j.jsx)(Lh,{onClick:()=>void c(t.release),children:`Roll back to this`})})]},t.release))]})]})}function Nk(e){return e<1048576?`${Math.max(1,Math.round(e/1024))} KB`:`${(e/1048576).toFixed(1)} MB`}var Pk=`minmax(0,1fr) minmax(0,1.2fr) minmax(0,0.9fr) 96px 250px`,Fk=`https://docs.pinecall.io/cli/overview`;function Ik(){let e=M(),{world:t}=ow(),[n,r]=(0,O.useState)(null),[i,a]=(0,O.useState)(new Map),[o,s]=(0,O.useState)(null),[c,l]=(0,O.useState)(null),u=(0,O.useCallback)(async()=>{r(await gk(e)),a(Ek(await Ck(e)))},[e]);(0,O.useEffect)(()=>{let t=!1;return gk(e).then(e=>{t||r(e)},e=>{t||l(ra(e))}),Ck(e).then(e=>{t||a(Ek(e))},()=>void 0),()=>{t=!0}},[e]);let d=async e=>{l(null);try{await e(),await u()}catch(e){l(ra(e))}},f=t=>{window.confirm(`Stop ${t}? Its process drains; its releases and token stay.`)&&d(()=>yk(e,t))},p=t=>{window.confirm(`Remove ${t}? Every release of it goes, and its token is revoked. There is no undo.`)&&(o?.name===t&&s(null),d(()=>xk(e,t)))},m=(e,t)=>s(n=>n?.name===e&&n.what===t?null:{name:e,what:t}),h=o===null?void 0:n?.find(e=>e.name===o.name);return(0,j.jsxs)(kC,{tight:!0,children:[(0,j.jsx)(AC,{title:`Apps`,ledeWidth:660,lede:`The agents this box runs for the org in ${t}, each from the sources a release uploaded. A release is never edited: a rollback sends an earlier one's sources again, as the next.`}),(0,j.jsx)(Ah,{children:c}),(0,j.jsx)(H,{children:n!==null&&n.length===0?(0,j.jsxs)(kh,{children:[`No app is hosted in `,t,` yet. One is put here from a terminal, in the project's folder:`,` `,(0,j.jsx)(`span`,{className:`ui-fixed`,children:t===`production`?`pinecall deploy --prod`:`pinecall deploy`}),` — with`,` `,(0,j.jsx)(`span`,{className:`ui-fixed`,children:`--prod`}),` it goes to production, without it to the sandbox. See`,` `,(0,j.jsx)(`a`,{href:Fk,target:`_blank`,rel:`noreferrer`,children:`the CLI`}),`.`]}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(NC,{columns:Pk,labels:[`App`,`State`,`Made by`,`This month>`,``]}),(n??[]).map(t=>(0,j.jsx)(Lk,{app:t,seconds:i.get(t.name)??0,opened:o?.name===t.name?o.what:null,open:m,stop:f,start:t=>void d(()=>bk(e,t)),remove:p},t.name))]})}),o!==null&&o.what===`logs`&&(0,j.jsx)(Ak,{name:o.name,close:()=>s(null)},o.name),o!==null&&o.what===`releases`&&h!==void 0&&(0,j.jsx)(Mk,{app:h,close:()=>s(null),rolledBack:()=>void u()},o.name)]})}function Lk({app:e,seconds:t,opened:n,open:r,stop:i,start:a,remove:o}){let s=wk(e);return(0,j.jsxs)(`div`,{className:`apps-row`,children:[(0,j.jsxs)(`div`,{className:`ui-table-row`,style:{gridTemplateColumns:Pk},children:[(0,j.jsx)(`span`,{className:`ui-cell-strong ui-clip`,children:e.name}),(0,j.jsx)(`span`,{children:(0,j.jsx)(xC,{tone:s.tone,children:s.text})}),(0,j.jsx)(`span`,{className:`ui-cell-ink ui-clip`,children:e.created_by}),(0,j.jsx)(`span`,{className:`ui-cell-faint ui-cell-right apps-hours`,children:Dk(t)}),(0,j.jsxs)(`span`,{className:`apps-actions`,children:[(0,j.jsx)(Lh,{onClick:()=>r(e.name,`logs`),children:n===`logs`?`Hide logs`:`Logs`}),(0,j.jsx)(Lh,{onClick:()=>r(e.name,`releases`),children:n===`releases`?`Hide releases`:`Releases`}),e.stopped?(0,j.jsx)(Lh,{onClick:()=>a(e.name),children:`Start`}):(0,j.jsx)(Lh,{onClick:()=>i(e.name),children:`Stop`}),(0,j.jsx)(Lh,{danger:!0,onClick:()=>o(e.name),children:`Remove`})]})]}),s.why!==null&&(0,j.jsxs)(`details`,{className:`apps-why`,children:[(0,j.jsx)(`summary`,{children:Tk(s.why)}),(0,j.jsx)(`pre`,{className:`ui-code`,children:s.why})]})]})}var Rk=`/v1/ops`,zk=bp({fleet:P(),worker:P(),active:F(),max_jobs:F().nullish(),load:F(),draining:L(),cordoned:L(),seen_at:F()}),Bk=bp({now:F(),stale_after_s:F(),workers:R(zk)}),Vk=bp({number:P(),channel:P(),org:P(),env:P(),agent:P(),came_in:P(),running:L(),answered_by:P().nullable()}),Hk=bp({cursor:F(),org:P(),agent:P(),call:P(),type:P(),at:F(),minutes:F(),messages:F(),cost_usd:F()}),Uk=bp({minutes:F(),messages:F(),input_tokens:F(),output_tokens:F(),characters:F()}),Wk=bp({rows:R(Hk),totals:Op(P(),Uk),next:F().nullish()});async function Gk(e){return Bk.parse(await A(e,`${Rk}/fleet`))}async function Kk(e,t,n){let r=`${Rk}/fleet/${encodeURIComponent(t.worker)}/cordon?fleet=${encodeURIComponent(t.fleet)}`;await(n?la(e,r,{}):ua(e,r))}var qk=bp({carriers:R(bp({kind:P(),name:P(),control:L(),networks:R(P()),source:P(),read_on:P(),admitted:L(),fixed:L(),numbers:F()})),fence:bp({openings:R(bp({network:P(),reason:P()})),networks:R(P())})}),Jk=bp({id:F(),org:P(),source:P(),network:P(),state:V([`waiting`,`approved`,`refused`]),asked_at:F(),decided_by:P().nullable(),decided_at:F().nullable()});async function Yk(e){return qk.parse(await A(e,`${Rk}/carriers`))}async function Xk(e,t,n){await sa(e,`${Rk}/carriers/${encodeURIComponent(t)}`,{admitted:n})}async function Zk(e){return R(Jk).parse(await A(e,`${Rk}/carrier-networks`))}async function Qk(e,t,n){await la(e,`${Rk}/carrier-networks/${t}/${n}`,{})}async function $k(e){return R(Vk).parse(await A(e,`${Rk}/numbers`))}async function eA(e,t,n){return Wk.parse(await A(e,`${Rk}/usage`,{after:t,limit:n}))}var tA=bp({call:P(),org:P().nullable(),env:P().nullable(),direction:P().nullable(),from_number:P().nullable(),to_number:P().nullable(),started_at:F().nullable(),ended_at:F().nullable(),end_reason:P().nullable(),erased:L()}),nA=bp({org:P(),env:P(),agent:P(),call:P().nullable(),shown:P().nullable(),asked_by:P(),refused:P().nullable(),at:F()}),rA=bp({number:P(),since:F(),calls:R(tA),dials:R(nA)});async function iA(e,t,n){let r=n===null?{number:t}:{number:t,since:n};return rA.parse(await A(e,`${Rk}/traceback`,r))}function aA(e){let[t,n]=(0,O.useState)(void 0),[r,i]=(0,O.useState)(null),a=(0,O.useCallback)(async()=>{try{n(await e()),i(null)}catch(e){i(oA(e))}},[e]);return(0,O.useEffect)(()=>{let t=!1;return e().then(e=>{t||n(e)},e=>{t||i(oA(e))}),()=>{t=!0}},[e]),{value:t,refused:r,reread:a}}function oA(e){return e instanceof na||e instanceof Error?e.message:String(e)}function sA(){let[e,t]=(0,O.useState)(!1),[n,r]=(0,O.useState)(null);return{busy:e,refused:n,move:(0,O.useCallback)(async e=>{t(!0),r(null);try{return await e(),!0}catch(e){return r(oA(e)),!1}finally{t(!1)}},[])}}var cA=`minmax(0,1fr) minmax(0,1.4fr) 110px 90px 52px`,lA=`minmax(0,1.2fr) minmax(0,1fr) minmax(0,1.2fr) 190px`,uA={waiting:`amber`,approved:`green`,refused:`red`};function dA(){let e=M(),t=aA((0,O.useCallback)(()=>Yk(e),[e])),n=aA((0,O.useCallback)(()=>Zk(e),[e])),r=sA(),i=async()=>{await Promise.all([t.reread(),n.reread()])},a=(n.value??[]).filter(e=>e.state===`waiting`),o=(n.value??[]).filter(e=>e.state!==`waiting`),s=t.value?.fence;return(0,j.jsxs)(kC,{width:1060,tight:!0,children:[(0,j.jsx)(AC,{title:`Carriers`,lede:`Which carriers may send calls to this box. Port 5060 opens to their networks and to the addresses you approve, and to nothing else.`}),(0,j.jsx)(Ah,{children:t.refused??n.refused??r.refused}),t.value!==void 0&&s!==void 0&&(0,j.jsxs)(jC,{min:170,children:[(0,j.jsx)(MC,{label:`5060 open beyond Twilio to`,value:s.openings.length,of:`networks`}),(0,j.jsx)(MC,{label:`Carriers on`,value:t.value.carriers.filter(e=>e.admitted).length,of:`of ${t.value.carriers.length}`}),(0,j.jsx)(MC,{label:`Waiting for you`,value:a.length,of:a.length===1?`address`:`addresses`})]}),(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Addresses orgs asked for`,meta:`their own PBX, or a number hooked from networks of its own`}),n.value!==void 0&&n.value.length===0&&(0,j.jsx)(kh,{children:`No org has asked for an address.`}),n.value!==void 0&&n.value.length>0&&(0,j.jsx)(NC,{columns:lA,labels:[`Org`,`Network`,`Asked`,``]}),[...a,...o].map(t=>(0,j.jsx)(fA,{ask:t,busy:r.busy,onDecide:n=>void r.move(async()=>{await Qk(e,t.id,n),await i()})},t.id)),(0,j.jsx)(Oh,{children:`Refused before it reaches you: anything wider than a /24, and private ranges.`})]}),t.value!==void 0&&(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Carriers this box admits`,meta:`an org sees only these under Add a number`}),(0,j.jsx)(NC,{columns:cA,labels:[`Carrier`,`How an org connects`,`Signalling`,`Numbers`,`On`]}),t.value.carriers.map(n=>(0,j.jsxs)(PC,{columns:cA,children:[(0,j.jsx)(`span`,{className:`ui-cell-strong`,children:n.name}),(0,j.jsx)(`span`,{className:`ui-cell-ink`,children:n.control?`API: lists, points, buys, calls out`:`SIP: the org pastes one address`}),(0,j.jsxs)(`span`,{className:`ui-cell-ink`,title:`${n.source}, read ${n.read_on}`,children:[n.networks.length,` networks`]}),(0,j.jsx)(`span`,{className:`ui-cell-ink`,children:n.admitted?n.numbers:`—`}),(0,j.jsx)(`span`,{children:n.fixed?(0,j.jsx)(xC,{tone:`gray`,small:!0,children:`always`}):(0,j.jsx)(Uh,{on:n.admitted,label:`Admit ${n.name}`,onChange:i=>void r.move(async()=>{await Xk(e,n.kind,i),await t.reread()})})})]},n.kind)),(0,j.jsx)(Oh,{children:`Twilio is the box's own carrier. Each list is read from the carrier's own page, with the day; hover a count for its source.`})]}),s!==void 0&&(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`The fence right now`,meta:`${s.networks.length} networks for the cloud's firewall, Twilio's with them`}),s.openings.length===0?(0,j.jsx)(kh,{children:`Twilio's networks alone: nothing else is admitted.`}):(0,j.jsx)(`div`,{className:`box-fence`,children:s.openings.map(e=>(0,j.jsxs)(`span`,{className:`box-fence-line`,children:[e.network,` `,(0,j.jsx)(`span`,{className:`box-fence-why`,children:e.reason})]},`${e.network}-${e.reason}`))}),(0,j.jsx)(Oh,{children:"The cloud's firewall admits what Terraform last applied: `pinecall-runtime fence export` into the environment's `sip_sources.auto.tfvars.json`, then `make tf-plan` and `make tf-apply`, bring it level with this list."})]})]})}function fA({ask:e,busy:t,onDecide:n}){return(0,j.jsxs)(PC,{columns:lA,children:[(0,j.jsxs)(`span`,{className:`ui-cell-strong ui-clip`,children:[e.org,(0,j.jsx)(`span`,{className:`box-sub`,children:e.source})]}),(0,j.jsx)(`span`,{className:`box-mono`,children:e.network}),(0,j.jsx)(`span`,{className:`ui-cell-ink`,children:e.state===`waiting`?`asked ${_E(e.asked_at)}`:`${e.state} ${_E(e.decided_at??e.asked_at)}${e.decided_by===null?``:` by ${e.decided_by}`}`}),(0,j.jsx)(`span`,{className:`box-line`,children:e.state===`waiting`?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(W,{size:`xs`,kind:`primary`,disabled:t,onClick:()=>n(`approve`),children:`Approve`}),(0,j.jsx)(W,{size:`xs`,disabled:t,onClick:()=>n(`refuse`),children:`Refuse`})]}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(xC,{tone:uA[e.state],small:!0,children:e.state}),(0,j.jsx)(Lh,{onClick:()=>n(e.state===`approved`?`refuse`:`approve`),children:e.state===`approved`?`Revoke`:`Approve`})]})})]})}var pA=5e3,mA=`minmax(0,1.2fr) minmax(0,1fr) 110px 130px 120px 90px`;function hA(){let e=M(),t=aA((0,O.useCallback)(()=>Gk(e),[e])),n=sA(),{reread:r}=t;(0,O.useEffect)(()=>{let e=window.setInterval(()=>void r(),pA);return()=>window.clearInterval(e)},[r]);let i=t.value,a=e=>i!==void 0&&i.now-e.seen_at>i.stale_after_s,o=(i?.workers??[]).filter(e=>!a(e)&&!e.cordoned&&!e.draining),s=(i?.workers??[]).reduce((e,t)=>e+t.active,0),c=(i?.workers??[]).reduce((e,t)=>e+(a(t)?0:t.max_jobs??0),0);return(0,j.jsxs)(kC,{width:1060,tight:!0,children:[(0,j.jsx)(AC,{title:`Fleet`,lede:`Every worker the hub has heard from. A cordoned worker finishes its calls and is handed no new one — the move before a deploy, and it ends nothing.`}),(0,j.jsx)(Ah,{children:t.refused??n.refused}),i!==void 0&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(jC,{min:170,children:[(0,j.jsx)(MC,{size:`small`,label:`Workers taking calls`,value:o.length,of:`of ${i.workers.length}`}),(0,j.jsx)(MC,{size:`small`,label:`Calls right now`,value:s,of:c>0?`of ${c} seats`:void 0}),(0,j.jsx)(MC,{size:`small`,label:`Cordoned`,value:i.workers.filter(e=>e.cordoned).length})]}),(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Workers`,meta:`re-read every ${pA/1e3} s`}),i.workers.length===0?(0,j.jsx)(kh,{children:`No worker has reported. A hub with none answers every call on itself.`}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(NC,{columns:mA,labels:[`Worker`,`Fleet`,`Calls`,`Load`,`Standing`,``]}),i.workers.map(t=>{let[i,o]=gA(t,a(t));return(0,j.jsxs)(PC,{columns:mA,children:[(0,j.jsx)(`span`,{className:a(t)?`ui-cell-faint box-fixed ui-clip`:`ui-cell-strong box-fixed ui-clip`,children:t.worker}),(0,j.jsx)(`span`,{className:`ui-cell-faint box-fixed ui-clip`,children:t.fleet}),(0,j.jsxs)(`span`,{className:`ui-cell-ink`,children:[t.active,t.max_jobs===null||t.max_jobs===void 0?``:` / ${t.max_jobs}`]}),(0,j.jsxs)(`span`,{className:`box-load`,children:[(0,j.jsx)(OC,{share:Math.min(1,t.load)}),(0,j.jsx)(`span`,{className:`ui-cell-faint`,children:t.load.toFixed(2)})]}),(0,j.jsx)(`span`,{children:(0,j.jsx)(xC,{tone:o,children:i})}),(0,j.jsx)(`span`,{className:`ui-cell-end`,children:(0,j.jsx)(Lh,{disabled:n.busy,onClick:()=>void n.move(async()=>{await Kk(e,t,!t.cordoned),await r()}),children:t.cordoned?`Uncordon`:`Cordon`})})]},`${t.fleet}/${t.worker}`)})]})]})]})]})}function gA(e,t){return t?[`not heard from`,`gray`]:e.draining?[`draining`,`amber`]:e.cordoned?[`cordoned`,`amber`]:[`taking calls`,`green`]}var _A=`/v1/ops`,vA=e=>`${_A}/orgs/${encodeURIComponent(e)}`,yA=[`minutes`,`messages`,`agents`,`concurrent_calls`,`memory_facts`,`knowledge_chunks`,`numbers`,`seats`,`budget_usd`],bA=F().nullish(),xA=bp({id:P(),slug:P(),name:P()}),SA=bp({dial_anywhere:L(),per_minute:F(),per_day:F(),max_duration_s:F()}),CA=xA.extend({quotas:bp({minutes:bA,messages:bA,agents:bA,concurrent_calls:bA,memory_facts:bA,knowledge_chunks:bA,numbers:bA,seats:bA,budget_usd:bA}),dialling:SA.nullish(),holding:bp({memory_facts:F(),knowledge_chunks:F(),numbers:F(),seats:F()})}),wA=bp({fingerprint:P(),label:P().nullish(),created_at:P(),revoked_at:P().nullish(),env:P(),scopes:R(P()),subject:P().nullish(),name:P().nullish()}),TA=bp({key:P(),key_id:P(),label:P().nullish(),env:P(),scopes:R(P())}),EA=bp({id:P(),email:P(),name:P(),role:P(),agents:R(P()),status:P(),operator:L().nullish()}),DA=bp({member:EA,token:P().nullish(),expires_at:P().nullish(),mailed:L().nullish()}),OA=bp({configured:L(),issuer:P().nullish(),domains:R(P()).nullish(),required:L()});async function kA(e){return R(xA).parse(await A(e,`${_A}/orgs`))}async function AA(e,t){return CA.parse(await A(e,vA(t)))}async function jA(e,t,n){return xA.parse(await la(e,`${_A}/orgs`,{slug:t,name:n||null}))}async function MA(e,t){await ua(e,vA(t))}async function NA(e,t,n){await sa(e,`${vA(t)}/quotas`,n)}async function PA(e,t,n){await sa(e,`${vA(t)}/dialling`,n)}async function FA(e,t,n){return bp({logs:F(),numbers:R(P())}).parse(await sa(e,`${vA(t)}/agents`,{agent:n}))}async function IA(e,t){return R(wA).parse(await A(e,`${vA(t)}/keys`))}async function LA(e,t,n){return TA.parse(await la(e,`${vA(t)}/keys`,n))}async function RA(e,t){await la(e,`${_A}/keys/${encodeURIComponent(t)}/revoke`,{})}async function zA(e,t){return bp({members:R(EA),seated:F()}).parse(await A(e,`${vA(t)}/members`))}async function BA(e,t,n){return DA.parse(await la(e,`${vA(t)}/members`,n))}async function VA(e,t,n,r){await sa(e,`${vA(t)}/members/${encodeURIComponent(n)}/operator`,{operator:r})}async function HA(e,t,n){await ua(e,`${vA(t)}/members/${encodeURIComponent(n)}`)}async function UA(e,t){return bp({vendors:R(P())}).parse(await A(e,`${vA(t)}/provider-keys`)).vendors}async function WA(e,t,n,r){await sa(e,`${vA(t)}/provider-keys/${encodeURIComponent(n)}`,{key:r})}async function GA(e,t,n){await ua(e,`${vA(t)}/provider-keys/${encodeURIComponent(n)}`)}async function KA(e,t){try{return OA.parse(await A(e,`${vA(t)}/sso`))}catch{return null}}async function qA(e,t,n){await sa(e,`${vA(t)}/sso/required`,{required:n})}var JA=`minmax(0,1fr) 96px 140px minmax(0,1.3fr) 92px`,YA=[{name:`app — what a deployed agent runs on`,scopes:[`app`]},{name:`everything — the org's own machine key`,scopes:null}];function XA({named:e}){let t=M(),n=aA((0,O.useCallback)(()=>IA(t,e),[t,e])),r=sA(),[i,a]=(0,O.useState)(!1),[o,s]=(0,O.useState)(``),[c,l]=(0,O.useState)(`production`),[u,d]=(0,O.useState)(0),[f,p]=(0,O.useState)(null),[m,h]=(0,O.useState)(!1),g=async i=>{i.preventDefault(),await r.move(async()=>{p(await LA(t,e,{label:o.trim(),env:c,scopes:YA[u]?.scopes??null})),h(!1),await n.reread()})&&(s(``),a(!1))},_=(n.value??[]).filter(e=>e.revoked_at===null||e.revoked_at===void 0).length;return(0,j.jsxs)(j.Fragment,{children:[f!==null&&(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`The key for ${f.label??`this machine`}`,meta:`copy it now: the table keeps its sha256, and it is never shown again`,children:(0,j.jsxs)(`span`,{className:`box-head-moves`,children:[(0,j.jsx)(W,{size:`xs`,onClick:()=>void navigator.clipboard.writeText(f.key).then(()=>h(!0)),children:m?`Copied`:`Copy`}),(0,j.jsx)(W,{size:`xs`,onClick:()=>p(null),children:`Done`})]})}),(0,j.jsx)(`pre`,{className:`ui-code`,children:f.key})]}),(0,j.jsx)(Ah,{children:n.refused??r.refused}),n.value!==void 0&&(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Keys`,meta:`${_} live`,action:i?void 0:(0,j.jsx)(W,{kind:`primary`,size:`sm`,className:`ui-card-action`,onClick:()=>a(!0),children:`Issue a key`})}),i&&(0,j.jsxs)(`div`,{className:`box-inline`,children:[(0,j.jsxs)(`form`,{className:`ui-form`,onSubmit:e=>void g(e),children:[(0,j.jsx)(Bh,{label:`What it is for`,grow:!0,minWidth:200,children:(0,j.jsx)(G,{value:o,placeholder:`prod server`,onChange:e=>s(e.target.value),required:!0,autoFocus:!0})}),(0,j.jsx)(Bh,{label:`World`,minWidth:130,children:(0,j.jsxs)(vC,{value:c,onValueChange:e=>l(e),children:[(0,j.jsx)(yC,{value:`production`,children:`production`}),(0,j.jsx)(yC,{value:`sandbox`,children:`sandbox`})]})}),(0,j.jsx)(Bh,{label:`Opens`,minWidth:260,children:(0,j.jsx)(vC,{value:String(u),onValueChange:e=>d(Number(e)),children:YA.map((e,t)=>(0,j.jsx)(yC,{value:String(t),children:e.name},e.name))})}),(0,j.jsx)(W,{kind:`primary`,size:`form`,type:`submit`,disabled:r.busy||o.trim()===``,children:r.busy?`Issuing…`:`Issue`})]}),(0,j.jsxs)(`div`,{className:`box-inline-foot`,children:[`A machine's key names nobody: people get theirs by signing in.`,(0,j.jsx)(`span`,{className:`box-inline-close`,children:(0,j.jsx)(Lh,{onClick:()=>a(!1),children:`Close`})})]})]}),n.value.length===0?(0,j.jsx)(kh,{children:`No key issued to this org yet.`}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(NC,{columns:JA,labels:[`Key`,`World`,`Whose`,`Opens`,``]}),n.value.map(e=>{let i=e.revoked_at!==null&&e.revoked_at!==void 0;return(0,j.jsxs)(PC,{columns:JA,children:[(0,j.jsx)(`span`,{className:i?`ui-cell-faint ui-clip`:`ui-cell-strong ui-clip`,title:e.fingerprint,children:e.label??e.fingerprint.slice(0,12)}),(0,j.jsx)(`span`,{children:(0,j.jsx)(xC,{tone:e.env===`production`?`green`:`indigo`,children:e.env})}),(0,j.jsx)(`span`,{className:`ui-cell-ink ui-clip`,children:e.name??`a machine`}),(0,j.jsx)(`span`,{className:`ui-cell-faint ui-clip`,title:e.scopes.join(`, `),children:mO(e.scopes)}),(0,j.jsx)(`span`,{className:`ui-cell-end`,children:i?(0,j.jsx)(`span`,{className:`ui-cell-faint`,children:`revoked`}):(0,j.jsx)(Lh,{danger:!0,disabled:r.busy,onClick:()=>void r.move(async()=>{await RA(t,e.fingerprint),await n.reread()}),children:`Revoke`})})]},e.fingerprint)})]})]})]})}var ZA={minutes:{name:`Minutes`,about:`of call, ever`},messages:{name:`Messages`,about:`written turns, ever`},agents:{name:`Agents`,about:`slugs held at once`},concurrent_calls:{name:`Concurrent calls`,about:`calls at once`},memory_facts:{name:`Memory facts`,about:`facts kept`},knowledge_chunks:{name:`Knowledge chunks`,about:`chunks kept`},numbers:{name:`Numbers`,about:`numbers this box bought`},seats:{name:`Seats`,about:`people invited or active`},budget_usd:{name:`Budget, $`,about:`a month's spend`}},QA={memory_facts:`memory_facts`,knowledge_chunks:`knowledge_chunks`,numbers:`numbers`,seats:`seats`},$A=e=>e.replace(/[^0-9]/g,``);function ej({org:e,onSaved:t}){let n=M(),r=sA(),i=sA(),[a,o]=(0,O.useState)(()=>Object.fromEntries(yA.map(t=>[t,e.quotas[t]===null||e.quotas[t]===void 0?``:String(e.quotas[t])]))),[s,c]=(0,O.useState)(null),l=e.dialling??null,[u,d]=(0,O.useState)(l?.dial_anywhere??!1),[f,p]=(0,O.useState)(String(l?.per_minute??``)),[m,h]=(0,O.useState)(String(l?.per_day??``)),[g,_]=(0,O.useState)(String(l?.max_duration_s??``)),v=async()=>{c(null),await r.move(async()=>{await NA(n,e.slug,Object.fromEntries(yA.map(e=>[e,a[e]===``?null:Number(a[e])]))),await t()})&&c(`quotas`)},y=async()=>{c(null),await i.move(async()=>{await PA(n,e.slug,{dial_anywhere:u,per_minute:Number(f),per_day:Number(m),max_duration_s:Number(g)}),await t()})&&c(`dialling`)};return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Quotas`,meta:`empty is no limit · 0 refuses everything`}),(0,j.jsx)(`div`,{className:`box-limits`,children:yA.map(t=>(0,j.jsxs)(Bh,{label:ZA[t].name,children:[(0,j.jsx)(G,{inputMode:`numeric`,value:a[t]??``,placeholder:`no limit`,onChange:e=>o({...a,[t]:$A(e.target.value)})}),(0,j.jsxs)(`div`,{className:`box-limit-about`,children:[ZA[t].about,QA[t]!==void 0&&` · holding ${e.holding[QA[t]]}`]})]},t))}),(0,j.jsxs)(`div`,{className:`box-save`,children:[(0,j.jsx)(W,{kind:`primary`,size:`md`,disabled:r.busy,onClick:()=>void v(),children:r.busy?`Saving…`:`Save the quotas`}),s===`quotas`&&(0,j.jsx)(`span`,{className:`box-done`,children:`Saved. They bite the next call and the next register.`})]}),(0,j.jsx)(Ah,{children:r.refused})]}),l!==null&&(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Outbound calls`,meta:`the fence around the calls this org's agents place`}),(0,j.jsxs)(`div`,{className:`box-anywhere`,children:[(0,j.jsxs)(`span`,{className:`box-anywhere-words`,children:[(0,j.jsx)(`strong`,{children:`Call anybody`}),(0,j.jsx)(`span`,{className:`ui-note`,children:`Off, an agent only calls numbers that already called or wrote to this org — "call back" means back.`})]}),(0,j.jsx)(Uh,{on:u,onChange:d,label:`Call anybody`})]}),(0,j.jsxs)(`div`,{className:`box-limits`,children:[(0,j.jsx)(Bh,{label:`Calls a minute`,children:(0,j.jsx)(G,{inputMode:`numeric`,value:f,onChange:e=>p($A(e.target.value))})}),(0,j.jsx)(Bh,{label:`Calls a day`,children:(0,j.jsx)(G,{inputMode:`numeric`,value:m,onChange:e=>h($A(e.target.value))})}),(0,j.jsx)(Bh,{label:`Longest call, seconds`,children:(0,j.jsx)(G,{inputMode:`numeric`,value:g,onChange:e=>_($A(e.target.value))})})]}),(0,j.jsxs)(`div`,{className:`box-save`,children:[(0,j.jsx)(W,{kind:`primary`,size:`md`,disabled:i.busy,onClick:()=>void y(),children:i.busy?`Saving…`:`Save the guards`}),s===`dialling`&&(0,j.jsx)(`span`,{className:`box-done`,children:`Saved. They bite the next dial.`})]}),(0,j.jsx)(Ah,{children:i.refused})]})]})}var tj=[`admin`,`manager`,`developer`,`supervisor`,`qa`],nj=`minmax(0,1fr) minmax(0,1.3fr) 100px 90px 220px`,rj={active:`green`,invited:`amber`,disabled:`gray`};function ij({named:e,seats:t}){let n=M(),r=aA((0,O.useCallback)(()=>zA(n,e),[n,e])),i=sA(),[a,o]=(0,O.useState)(!1),[s,c]=(0,O.useState)(null),[l,u]=(0,O.useState)(``),[d,f]=(0,O.useState)(``),[p,m]=(0,O.useState)(`admin`),[h,g]=(0,O.useState)(null),_=async t=>{t.preventDefault(),await i.move(async()=>{c(await BA(n,e,{email:l.trim(),name:d.trim(),role:p,agents:[]})),await r.reread()})&&(u(``),f(``),o(!1))},v=e=>void i.move(async()=>{await e(),await r.reread()});return(0,j.jsxs)(j.Fragment,{children:[s!==null&&(0,j.jsx)(aj,{invited:s,onClose:()=>c(null)}),(0,j.jsx)(Ah,{children:r.refused??i.refused}),r.value!==void 0&&(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Members`,meta:`${r.value.seated} seated${t===null?``:` of ${t}`}`,action:a?void 0:(0,j.jsx)(W,{kind:`primary`,size:`sm`,className:`ui-card-action`,onClick:()=>o(!0),children:`Invite someone`})}),a&&(0,j.jsxs)(`div`,{className:`box-inline`,children:[(0,j.jsxs)(`form`,{className:`ui-form`,onSubmit:e=>void _(e),children:[(0,j.jsx)(Bh,{label:`Email`,grow:!0,minWidth:180,children:(0,j.jsx)(G,{type:`email`,value:l,placeholder:`name@company.com`,onChange:e=>u(e.target.value),required:!0,autoFocus:!0})}),(0,j.jsx)(Bh,{label:`Name`,grow:!0,minWidth:150,children:(0,j.jsx)(G,{value:d,placeholder:`Full name`,onChange:e=>f(e.target.value),required:!0})}),(0,j.jsx)(Bh,{label:`Role`,minWidth:130,children:(0,j.jsx)(vC,{value:p,onValueChange:e=>m(e),children:tj.map(e=>(0,j.jsx)(yC,{value:e,children:e},e))})}),(0,j.jsx)(W,{kind:`primary`,size:`form`,type:`submit`,disabled:i.busy,children:i.busy?`Inviting…`:`Invite`})]}),(0,j.jsxs)(`div`,{className:`box-inline-foot`,children:[`The box's invitation takes no seat: it is how an org gets its first admin.`,(0,j.jsx)(`span`,{className:`box-inline-close`,children:(0,j.jsx)(Lh,{onClick:()=>o(!1),children:`Close`})})]})]}),r.value.members.length===0?(0,j.jsx)(kh,{children:`Nobody has been invited to this org.`}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(NC,{columns:nj,labels:[`Name`,`Email`,`Role`,`Status`,``]}),r.value.members.map(t=>(0,j.jsxs)(PC,{columns:nj,children:[(0,j.jsxs)(`span`,{className:`ui-cell-strong box-line`,children:[t.name,t.operator===!0&&(0,j.jsx)(xC,{tone:`violet`,small:!0,children:`operator`})]}),(0,j.jsx)(`span`,{className:`ui-cell-ink ui-clip`,children:t.email}),(0,j.jsx)(`span`,{className:`ui-cell-ink`,children:t.role}),(0,j.jsx)(`span`,{children:(0,j.jsx)(xC,{tone:rj[t.status]??`gray`,children:t.status})}),(0,j.jsx)(`span`,{className:`ui-cell-end`,children:h===t.id?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(Lh,{danger:!0,disabled:i.busy,onClick:()=>v(()=>HA(n,e,t.id).finally(()=>g(null))),children:`Remove for good`}),(0,j.jsx)(Lh,{onClick:()=>g(null),children:`Cancel`})]}):(0,j.jsxs)(j.Fragment,{children:[t.status===`active`&&(0,j.jsx)(Lh,{disabled:i.busy,onClick:()=>v(()=>VA(n,e,t.id,t.operator!==!0)),children:t.operator===!0?`Stop running the box`:`Make operator`}),(0,j.jsx)(Lh,{danger:!0,onClick:()=>g(t.id),children:`Remove`})]})})]},t.id))]}),(0,j.jsx)(`div`,{className:`ui-card-foot`,children:`Roles and agents are the org's own to change, from its Team screen. An operator's own key opens this box's doors as well as their org's.`})]})]})}function aj({invited:e,onClose:t}){let[n,r]=(0,O.useState)(!1),i=e.token??null,a=i===null?null:`${window.location.origin}/invitations/${encodeURIComponent(i)}`;return(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`${e.member.name} is invited`,meta:e.mailed===!0?`the link was mailed to them too`:a===null?`they already have a password here: nothing to send`:`copy it now: it is never shown again`,children:(0,j.jsxs)(`span`,{className:`box-head-moves`,children:[a!==null&&(0,j.jsx)(W,{size:`xs`,onClick:()=>void navigator.clipboard.writeText(a).then(()=>r(!0)),children:n?`Copied`:`Copy`}),(0,j.jsx)(W,{size:`xs`,onClick:t,children:`Done`})]})}),a!==null&&(0,j.jsx)(`pre`,{className:`ui-code`,children:a})]})}function oj({org:e}){let t=M(),n=_r(),r=aA((0,O.useCallback)(()=>KA(t,e.slug),[t,e.slug])),i=sA(),[a,o]=(0,O.useState)(``),[s,c]=(0,O.useState)(null),[l,u]=(0,O.useState)(!1),d=async n=>{n.preventDefault(),c(null),await i.move(async()=>{let n=await FA(t,e.slug,a.trim());c(`${a.trim()} is ${e.slug}'s now: ${n.logs} ${n.logs===1?`log`:`logs`}${n.numbers.length>0?`, and ${n.numbers.join(`, `)}`:``}.`),o(``)})},f=e=>e==null?void 0:`of ${e}`;return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(jC,{min:170,children:[(0,j.jsx)(MC,{size:`small`,label:`Seats`,value:e.holding.seats,of:f(e.quotas.seats)}),(0,j.jsx)(MC,{size:`small`,label:`Numbers bought`,value:e.holding.numbers,of:f(e.quotas.numbers)}),(0,j.jsx)(MC,{size:`small`,label:`Memory facts`,value:e.holding.memory_facts,of:f(e.quotas.memory_facts)}),(0,j.jsx)(MC,{size:`small`,label:`Knowledge chunks`,value:e.holding.knowledge_chunks,of:f(e.quotas.knowledge_chunks)})]}),(0,j.jsx)(Ah,{children:i.refused}),(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Sign-in`,meta:`how this org's people prove who they are`}),(0,j.jsxs)(`div`,{className:`box-kvs`,children:[(0,j.jsx)(Ph,{label:`Provider`,keyWidth:120,children:r.value?.configured?r.value.issuer??`its own identity provider`:`passwords — no identity provider wired`}),r.value?.configured&&(0,j.jsx)(Ph,{label:`Passwords`,keyWidth:120,children:r.value.required?(0,j.jsxs)(`span`,{className:`box-line`,children:[(0,j.jsx)(xC,{tone:`amber`,children:`stopped`}),(0,j.jsx)(Lh,{disabled:i.busy,onClick:()=>void i.move(async()=>{await qA(t,e.slug,!1),await r.reread()}),children:`Let passwords work again`})]}):`still work`})]}),r.value?.configured&&r.value.required&&(0,j.jsx)(`div`,{className:`ui-card-foot`,children:`The break-glass: the day their provider stops answering, the admin who would turn this off is the one locked out.`})]}),(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Bring an agent here`,meta:`one that registered in the wrong org, with every call it took and its numbers`}),(0,j.jsxs)(`div`,{className:`ui-card-body`,children:[(0,j.jsxs)(`form`,{className:`ui-form`,onSubmit:e=>void d(e),children:[(0,j.jsx)(Bh,{label:`Agent slug`,grow:!0,minWidth:220,children:(0,j.jsx)(G,{value:a,placeholder:`clinica-norte`,onChange:e=>o(e.target.value),required:!0})}),(0,j.jsx)(W,{size:`form`,type:`submit`,disabled:i.busy||a.trim()===``,children:`Move it here`})]}),s!==null&&(0,j.jsx)(`div`,{className:`box-done box-done-under`,children:s}),(0,j.jsx)(`div`,{className:`ui-note box-note`,children:`The agent must be stopped first: a slug somebody is holding is refused.`})]})]}),(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Remove this organization`,meta:`refused while a live key or a route still names it`}),(0,j.jsx)(`div`,{className:`ui-card-body box-line`,children:l?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`span`,{className:`ui-note`,children:[`Forget `,e.slug,` for good?`]}),(0,j.jsx)(W,{kind:`danger`,size:`sm`,disabled:i.busy,onClick:()=>void i.move(async()=>{await MA(t,e.slug),n(`/box/orgs`)}),children:`Yes, remove it`}),(0,j.jsx)(Lh,{onClick:()=>u(!1),children:`Cancel`})]}):(0,j.jsxs)(W,{kind:`danger`,size:`sm`,onClick:()=>u(!0),children:[`Remove `,e.slug]})})]})]})}function sj({named:e}){let t=M(),n=aA((0,O.useCallback)(()=>UA(t,e),[t,e])),r=sA(),[i,a]=(0,O.useState)(!1),[o,s]=(0,O.useState)(``),[c,l]=(0,O.useState)(``),u=async i=>{i.preventDefault(),await r.move(async()=>{await WA(t,e,o.trim(),c.trim()),await n.reread()})&&(s(``),l(``),a(!1))};return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(Ah,{children:n.refused??r.refused}),n.value!==void 0&&(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Vendors it brought`,meta:`every other vendor runs on the box's own key`,action:i?void 0:(0,j.jsx)(W,{kind:`primary`,size:`sm`,className:`ui-card-action`,onClick:()=>a(!0),children:`Bring a key`})}),i&&(0,j.jsxs)(`div`,{className:`box-inline`,children:[(0,j.jsxs)(`form`,{className:`ui-form`,onSubmit:e=>void u(e),children:[(0,j.jsx)(Bh,{label:`Vendor`,minWidth:170,children:(0,j.jsx)(G,{value:o,placeholder:`elevenlabs`,onChange:e=>s(e.target.value),required:!0,autoFocus:!0})}),(0,j.jsx)(Bh,{label:`Its key, sent once`,grow:!0,minWidth:240,children:(0,j.jsx)(G,{type:`password`,autoComplete:`off`,value:c,placeholder:`never shown again`,onChange:e=>l(e.target.value),required:!0})}),(0,j.jsx)(W,{kind:`primary`,size:`form`,type:`submit`,disabled:r.busy,children:r.busy?`Keeping…`:`Keep it`})]}),(0,j.jsxs)(`div`,{className:`box-inline-foot`,children:[`No door a person reads ever answers with a provider key: a lost one is set again.`,(0,j.jsx)(`span`,{className:`box-inline-close`,children:(0,j.jsx)(Lh,{onClick:()=>a(!1),children:`Close`})})]})]}),n.value.length===0?(0,j.jsx)(kh,{children:`None: every call of this org runs on the keys of the box.`}):n.value.map(i=>(0,j.jsx)(jh,{name:i,sub:`this org's own account with them`,end:(0,j.jsx)(Lh,{disabled:r.busy,onClick:()=>void r.move(async()=>{await GA(t,e,i),await n.reread()}),children:`Give it back to the box`})},i))]})]})}var cj=[{tab:`overview`,name:`Overview`},{tab:`members`,name:`Members`},{tab:`keys`,name:`Keys`},{tab:`limits`,name:`Limits`},{tab:`providers`,name:`Providers`}];function lj(){let e=M(),t=xr().org??``,[n,r]=Xi(),i=cj.some(e=>e.tab===n.get(`tab`))?n.get(`tab`):`overview`,a=aA((0,O.useCallback)(()=>AA(e,t),[e,t])),{moveTo:o}=ow(),[s,c]=(0,O.useState)(!1),[l,u]=(0,O.useState)(null),d=async e=>{c(!0),u(null);try{await o(e)}catch(e){u(oA(e)),c(!1)}};return(0,j.jsxs)(kC,{width:1060,tight:!0,children:[(0,j.jsx)(AC,{back:(0,j.jsx)(Wi,{to:`/box/orgs`,className:`box-back`,children:`← Organizations`}),title:a.value?.name??t,lede:a.value===void 0?void 0:(0,j.jsx)(`span`,{className:`box-fixed`,children:`${a.value.slug} · ${a.value.id}`}),actions:a.value!==void 0&&(0,j.jsx)(W,{kind:`primary`,size:`md`,disabled:s,onClick:()=>void d(a.value?.id??t),children:s?`Opening…`:`Open as operator`})}),(0,j.jsx)(GC,{label:`Organization`,tabs:cj,on:i,onPick:e=>r(e===`overview`?{}:{tab:e})}),(0,j.jsx)(Ah,{children:l??a.refused}),a.value!==void 0&&i===`overview`&&(0,j.jsx)(oj,{org:a.value}),i===`members`&&(0,j.jsx)(ij,{named:t,seats:a.value?.quotas.seats??null}),i===`keys`&&(0,j.jsx)(XA,{named:t}),a.value!==void 0&&i===`limits`&&(0,j.jsx)(ej,{org:a.value,onSaved:a.reread}),i===`providers`&&(0,j.jsx)(sj,{named:t})]})}var uj=`minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr) 60px`;function dj(){let e=M(),t=aA((0,O.useCallback)(()=>kA(e),[e])),n=sA(),[r,i]=(0,O.useState)(!1),[a,o]=(0,O.useState)(``),[s,c]=(0,O.useState)(``),l=async r=>{r.preventDefault(),await n.move(async()=>{await jA(e,a.trim(),s.trim()),await t.reread()})&&(o(``),c(``),i(!1))};return(0,j.jsxs)(kC,{width:1060,tight:!0,children:[(0,j.jsx)(AC,{title:`Organizations`,lede:`Every tenant this box serves. Open one to see its people, its keys, its limits and the vendors it brought.`}),(0,j.jsx)(Ah,{children:t.refused??n.refused}),t.value!==void 0&&(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`On this box`,meta:`${t.value.length} ${t.value.length===1?`organization`:`organizations`}`,action:r?void 0:(0,j.jsx)(W,{kind:`primary`,size:`sm`,className:`ui-card-action`,onClick:()=>i(!0),children:`Add an organization`})}),r&&(0,j.jsxs)(`div`,{className:`box-inline`,children:[(0,j.jsxs)(`form`,{className:`ui-form`,onSubmit:e=>void l(e),children:[(0,j.jsx)(Bh,{label:`Slug`,grow:!0,minWidth:180,children:(0,j.jsx)(G,{value:a,placeholder:`tienda-sur`,onChange:e=>o(e.target.value),required:!0,autoFocus:!0})}),(0,j.jsx)(Bh,{label:`Name`,grow:!0,minWidth:180,children:(0,j.jsx)(G,{value:s,placeholder:`Tienda Sur (optional)`,onChange:e=>c(e.target.value)})}),(0,j.jsx)(W,{kind:`primary`,size:`form`,type:`submit`,disabled:n.busy||a.trim()===``,children:n.busy?`Adding…`:`Add`})]}),(0,j.jsxs)(`div`,{className:`box-inline-foot`,children:[`The slug is what people type and the gateway is its judge. Its first admin is invited from the org's Members tab.`,(0,j.jsx)(`span`,{className:`box-inline-close`,children:(0,j.jsx)(Lh,{onClick:()=>i(!1),children:`Close`})})]})]}),t.value.length===0?(0,j.jsx)(kh,{children:`No organization on this box yet. The first one is what a key is issued against.`}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(NC,{columns:uj,labels:[`Organization`,`Slug`,`Id`,``]}),t.value.map(e=>(0,j.jsxs)(PC,{columns:uj,to:`/box/orgs/${encodeURIComponent(e.slug)}`,children:[(0,j.jsx)(`span`,{className:`ui-cell-strong`,children:e.name}),(0,j.jsx)(`span`,{className:`ui-cell-ink`,children:e.slug}),(0,j.jsx)(`span`,{className:`ui-cell-faint box-fixed`,children:e.id}),(0,j.jsx)(`span`,{className:`ui-cell-link ui-cell-end`,children:`Open`})]},e.id))]})]})]})}var fj={bought:`bought by the box`,twilio:`its Twilio`,sip:`its SIP peer`,whatsapp:`its WhatsApp`,imported:`an account since removed`,hooked:`hooked by the org`,typed:`typed by an operator`};function pj(e){return fj[e.came_in]??e.came_in}function mj(e){return e.answered_by===null?e.running?{tone:`green`,text:`picked up`}:{tone:`amber`,text:`nobody runs the agent`}:{tone:`red`,text:`${e.answered_by} answers it`}}function hj(e,t){let n=t.trim().toLowerCase();if(n===``)return[...e];let r=n.replace(/\D/g,``);return e.filter(e=>e.org.toLowerCase().includes(n)||e.agent.toLowerCase().includes(n)||r!==``&&e.number.replace(/\D/g,``).includes(r))}var gj=`minmax(0,1.1fr) minmax(0,1fr) 100px minmax(0,1fr) 84px minmax(0,1fr) minmax(0,1.2fr)`;function _j(){let e=M(),t=aA((0,O.useCallback)(()=>$k(e),[e])),[n,r]=(0,O.useState)(``),i=hj(t.value??[],n);return(0,j.jsxs)(kC,{width:1060,tight:!0,children:[(0,j.jsx)(AC,{title:`Routes`,lede:`Every number this box answers at, of every org and world, and what a call to it does now.`}),(0,j.jsx)(Ah,{children:t.refused}),t.value!==void 0&&(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`On this box`,meta:`${t.value.length} ${t.value.length===1?`number`:`numbers`}`,action:(0,j.jsx)(`span`,{className:`box-head-moves`,children:(0,j.jsx)(G,{value:n,placeholder:`Search a number, org or agent`,"aria-label":`Search numbers`,onChange:e=>r(e.target.value)})})}),t.value.length===0?(0,j.jsx)(kh,{children:`No number on this box yet: an org adds one from its Numbers screen.`}):i.length===0?(0,j.jsxs)(kh,{children:[`No number, org or agent matches “`,n.trim(),`”.`]}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(NC,{columns:gj,labels:[`Number`,`Org`,`World`,`Agent`,`Channel`,`Came in`,`If it rings now`]}),i.map(e=>{let t=mj(e);return(0,j.jsxs)(PC,{columns:gj,to:`/box/traceback?number=${encodeURIComponent(e.number)}`,children:[(0,j.jsx)(`span`,{className:`ui-cell-strong`,children:aE(e.number)}),(0,j.jsx)(`span`,{className:`ui-cell-ink ui-clip`,children:e.org}),(0,j.jsx)(`span`,{className:`ui-cell-ink`,children:e.env}),(0,j.jsx)(`span`,{className:`ui-cell-ink ui-clip`,children:e.agent}),(0,j.jsx)(`span`,{className:`ui-cell-ink`,children:e.channel}),(0,j.jsx)(`span`,{className:`ui-cell-ink ui-clip`,children:pj(e)}),(0,j.jsx)(`span`,{className:`box-line`,children:(0,j.jsx)(xC,{tone:t.tone,children:t.text})})]},`${e.org}-${e.channel}-${e.number}`)})]}),(0,j.jsx)(Oh,{children:`To add, move or let go a number, open its org's Numbers screen: it writes the carrier, the SFU and the route together.`})]})]})}var vj=`/v1/ops`;async function yj(e){try{return await e}catch(e){if(e instanceof na&&(e.status===404||e.status===405))return null;throw e}}var bj=bp({google:bp({configured:L(),client_id:P().nullish(),redirect_uri:P().nullish()})});async function xj(e){return yj(A(e,`${vj}/signin`).then(e=>bj.parse(e)))}async function Sj(e,t){await sa(e,`${vj}/signin/google`,t)}async function Cj(e){await ua(e,`${vj}/signin/google`)}var wj=[`starttls`,`tls`,`none`],Tj=bp({configured:L(),source:P().nullish(),host:P().nullish(),port:F().nullish(),security:P().nullish(),username:P().nullish(),from:P().nullish(),verified_at:P().nullish(),last_error:P().nullish()});async function Ej(e){return yj(A(e,`${vj}/mail`).then(e=>Tj.parse(e)))}async function Dj(e,t){await sa(e,`${vj}/mail`,t)}async function Oj(e){await ua(e,`${vj}/mail`)}async function kj(e,t){let n=bp({sent:L(),error:P().nullish()}).parse(await la(e,`${vj}/mail/test`,{to:t}));return{sent:n.sent,error:n.error??null}}var Aj=bp({name:P().nullish(),logo_url:P().nullish(),accent:P().nullish()});async function jj(e){return yj(A(e,`${vj}/brand`).then(e=>Aj.parse(e)))}async function Mj(e,t){await sa(e,`${vj}/brand`,t)}var Nj=`Pinecall`,Pj=`#5b3df5`,Fj=/^#[0-9a-fA-F]{6}$/;function Ij(){let e=M(),t=aA((0,O.useCallback)(()=>jj(e),[e])),n=sA(),[r,i]=(0,O.useState)(Nj),[a,o]=(0,O.useState)(``),[s,c]=(0,O.useState)(Pj),[l,u]=(0,O.useState)(!1);if((0,O.useEffect)(()=>{t.value!==void 0&&t.value!==null&&(i(t.value.name??Nj),o(t.value.logo_url??``),c(t.value.accent??Pj))},[t.value]),t.value===void 0)return(0,j.jsx)(Ah,{children:t.refused});if(t.value===null)return(0,j.jsx)(Hj,{});let d=async i=>{i.preventDefault(),u(!1),u(await n.move(async()=>{await Mj(e,{name:r.trim(),logo_url:a.trim(),accent:s}),await t.reread()}))},f=Fj.test(s)?s:Pj;return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(Ah,{children:n.refused}),(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`What the letters carry`,meta:`invitations and password resets, for every org on this box`}),(0,j.jsxs)(`form`,{className:`box-form`,onSubmit:e=>void d(e),children:[(0,j.jsxs)(`div`,{className:`box-form-grid`,children:[(0,j.jsx)(Bh,{label:`Name`,children:(0,j.jsx)(G,{value:r,onChange:e=>i(e.target.value),required:!0})}),(0,j.jsx)(Bh,{label:`Accent`,children:(0,j.jsxs)(`span`,{className:`box-accent`,children:[(0,j.jsx)(`input`,{type:`color`,className:`box-accent-well`,value:f,onChange:e=>c(e.target.value),"aria-label":`Accent`}),(0,j.jsx)(G,{value:s,onChange:e=>c(e.target.value)})]})}),(0,j.jsx)(Bh,{label:`Logo URL`,children:(0,j.jsx)(G,{type:`url`,value:a,placeholder:`https://… (https only; empty shows the name)`,onChange:e=>o(e.target.value)})})]}),(0,j.jsxs)(`div`,{className:`box-line`,children:[(0,j.jsx)(W,{kind:`primary`,size:`md`,type:`submit`,disabled:n.busy,children:n.busy?`Saving…`:`Save`}),l&&(0,j.jsx)(`span`,{className:`box-done`,children:`Saved. The next letter carries it.`})]})]})]}),(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Preview`,meta:`the head of a letter`}),(0,j.jsx)(`div`,{className:`box-letter-ground`,children:(0,j.jsxs)(`div`,{className:`box-letter`,children:[a.trim().startsWith(`https://`)?(0,j.jsx)(`img`,{className:`box-letter-logo`,src:a.trim(),alt:r}):(0,j.jsx)(`span`,{className:`box-letter-name`,children:r}),(0,j.jsxs)(`div`,{className:`box-letter-title`,children:[`You're invited to Acme on `,r]}),(0,j.jsx)(`div`,{className:`box-letter-words`,children:`Ana invited you as a supervisor. Choose a password to take your first key.`}),(0,j.jsx)(`span`,{className:`box-letter-button`,style:{background:f},children:`Accept the invitation`})]})})]})]})}function Lj(){let e=M(),t=aA((0,O.useCallback)(()=>Ej(e),[e])),n=sA(),[r,i]=(0,O.useState)(!1),[a,o]=(0,O.useState)(``),[s,c]=(0,O.useState)(null);if(t.value===void 0)return(0,j.jsx)(Ah,{children:t.refused});if(t.value===null)return(0,j.jsx)(Hj,{});let l=t.value,u=async r=>{r.preventDefault(),c(null),await n.move(async()=>{c(await kj(e,a.trim())),await t.reread()})};return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(Ah,{children:n.refused}),(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`The box's mail`,meta:`invitations, password resets and a forgotten password`,children:(0,j.jsx)(`span`,{className:`box-head-moves`,children:(0,j.jsx)(xC,{tone:l.configured?`green`:`gray`,children:l.configured?l.source===`environment`?`on · from the environment`:`on`:`off`})})}),r||!l.configured?(0,j.jsx)(Rj,{kept:l,busy:n.busy,onCancel:l.configured?()=>i(!1):void 0,onSave:async r=>{await n.move(async()=>{await Dj(e,r),await t.reread()})&&i(!1)}}):(0,j.jsxs)(`div`,{className:`box-kvs`,children:[(0,j.jsxs)(Ph,{label:`Server`,keyWidth:120,children:[(0,j.jsx)(`span`,{className:`box-fixed`,children:`${l.host??`—`}:${l.port??``}`}),` · `,l.security??`starttls`]}),(0,j.jsx)(Ph,{label:`Username`,keyWidth:120,children:(0,j.jsx)(`span`,{className:`box-fixed`,children:l.username??`none`})}),(0,j.jsx)(Ph,{label:`From`,keyWidth:120,children:l.from??`—`}),(0,j.jsx)(Ph,{label:`Last letter`,keyWidth:120,children:l.last_error?(0,j.jsx)(`span`,{className:`box-bad`,children:l.last_error}):l.verified_at?`went through · ${l.verified_at.slice(0,16).replace(`T`,` `)}`:`none sent yet`}),(0,j.jsxs)(`div`,{className:`box-line box-kvs-moves`,children:[(0,j.jsx)(W,{size:`sm`,onClick:()=>i(!0),children:l.source===`environment`?`Replace it here`:`Change`}),l.source!==`environment`&&(0,j.jsx)(Lh,{danger:!0,disabled:n.busy,onClick:()=>void n.move(async()=>{await Oj(e),await t.reread()}),children:`Forget it`})]})]})]}),l.configured&&(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Send a test letter`,meta:`the one door that waits for the mail server's answer`}),(0,j.jsxs)(`div`,{className:`ui-card-body`,children:[(0,j.jsxs)(`form`,{className:`ui-form`,onSubmit:e=>void u(e),children:[(0,j.jsx)(Bh,{label:`To`,grow:!0,minWidth:240,children:(0,j.jsx)(G,{type:`email`,value:a,placeholder:`you@company.com`,onChange:e=>o(e.target.value),required:!0})}),(0,j.jsx)(W,{size:`form`,type:`submit`,disabled:n.busy,children:n.busy?`Sending…`:`Send`})]}),s!==null&&(s.sent?(0,j.jsx)(`div`,{className:`box-done box-done-under`,children:`Taken by the mail server.`}):(0,j.jsx)(`div`,{className:`box-bad box-note`,children:s.error??`It was refused.`}))]})]})]})}function Rj({kept:e,busy:t,onSave:n,onCancel:r}){let[i,a]=(0,O.useState)(e.host??``),[o,s]=(0,O.useState)(String(e.port??587)),[c,l]=(0,O.useState)(wj.find(t=>t===e.security)??`starttls`),[u,d]=(0,O.useState)(e.username??``),[f,p]=(0,O.useState)(``),[m,h]=(0,O.useState)(e.from??``);return(0,j.jsxs)(`form`,{className:`box-form`,onSubmit:e=>{e.preventDefault(),n({host:i.trim(),port:Number(o),security:c,username:u.trim()===``?null:u.trim(),...f===``?{}:{password:f},from:m.trim()})},children:[(0,j.jsxs)(`div`,{className:`box-form-grid`,children:[(0,j.jsx)(Bh,{label:`Host`,children:(0,j.jsx)(G,{value:i,placeholder:`email-smtp.us-east-1.amazonaws.com`,onChange:e=>a(e.target.value),required:!0})}),(0,j.jsxs)(`div`,{className:`box-form-pair`,children:[(0,j.jsx)(Bh,{label:`Port`,children:(0,j.jsx)(G,{inputMode:`numeric`,value:o,onChange:e=>s(e.target.value.replace(/[^0-9]/g,``)),required:!0})}),(0,j.jsx)(Bh,{label:`Security`,children:(0,j.jsx)(vC,{value:c,onValueChange:e=>l(e),children:wj.map(e=>(0,j.jsx)(yC,{value:e,children:e},e))})})]}),(0,j.jsx)(Bh,{label:`Username`,children:(0,j.jsx)(G,{autoComplete:`off`,value:u,onChange:e=>d(e.target.value)})}),(0,j.jsx)(Bh,{label:`Password, sent once`,children:(0,j.jsx)(G,{type:`password`,autoComplete:`new-password`,value:f,placeholder:e.configured?`unchanged`:`never shown again`,onChange:e=>p(e.target.value)})}),(0,j.jsx)(Bh,{label:`From`,children:(0,j.jsx)(G,{value:m,placeholder:`Pinecall <noreply@pinecall.io>`,onChange:e=>h(e.target.value),required:!0})})]}),(0,j.jsxs)(`div`,{className:`box-line`,children:[(0,j.jsx)(W,{kind:`primary`,size:`md`,type:`submit`,disabled:t,children:t?`Saving…`:`Save`}),r!==void 0&&(0,j.jsx)(Lh,{onClick:r,children:`Cancel`}),(0,j.jsx)(`span`,{className:`ui-note`,children:`Saving sends nothing: the test letter below is what proves it.`})]})]})}function zj(){let e=M(),t=aA((0,O.useCallback)(()=>xj(e),[e])),n=sA(),[r,i]=(0,O.useState)(!1),[a,o]=(0,O.useState)(``),[s,c]=(0,O.useState)(``),[l,u]=(0,O.useState)(!1);if(t.value===void 0)return(0,j.jsx)(Ah,{children:t.refused});if(t.value===null)return(0,j.jsx)(Hj,{});let d=t.value.google,f=d.redirect_uri??bm(ih()),p=r||!d.configured,m=async r=>{r.preventDefault(),await n.move(async()=>{await Sj(e,{client_id:a.trim(),client_secret:s.trim()}),await t.reread()})&&(c(``),i(!1))};return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(Ah,{children:n.refused}),(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Continue with Google`,meta:`one client for the whole box — no org configures anything`,children:(0,j.jsx)(`span`,{className:`box-head-moves`,children:(0,j.jsx)(xC,{tone:d.configured?`green`:`gray`,children:d.configured?`on`:`off`})})}),p?(0,j.jsxs)(`form`,{className:`box-form`,onSubmit:e=>void m(e),children:[(0,j.jsxs)(`div`,{className:`box-form-grid`,children:[(0,j.jsx)(Bh,{label:`Client ID`,children:(0,j.jsx)(G,{value:a,placeholder:`…apps.googleusercontent.com`,onChange:e=>o(e.target.value),required:!0})}),(0,j.jsx)(Bh,{label:`Client secret, sent once`,children:(0,j.jsx)(G,{type:`password`,autoComplete:`off`,value:s,placeholder:`never shown again`,onChange:e=>c(e.target.value),required:!0})})]}),(0,j.jsxs)(`div`,{className:`box-line`,children:[(0,j.jsx)(W,{kind:`primary`,size:`md`,type:`submit`,disabled:n.busy,children:n.busy?`Saving…`:`Save`}),r&&(0,j.jsx)(Lh,{onClick:()=>i(!1),children:`Cancel`}),(0,j.jsx)(`span`,{className:`ui-note`,children:`Made at Google Cloud Console → APIs & Services → Credentials → OAuth client ID → Web application.`})]})]}):(0,j.jsxs)(`div`,{className:`box-kvs`,children:[(0,j.jsx)(Ph,{label:`Client ID`,keyWidth:120,children:(0,j.jsx)(`span`,{className:`box-fixed`,children:d.client_id??`—`})}),(0,j.jsx)(Ph,{label:`Secret`,keyWidth:120,children:`kept, and read back by no door`}),(0,j.jsxs)(`div`,{className:`box-line box-kvs-moves`,children:[(0,j.jsx)(W,{size:`sm`,onClick:()=>{o(d.client_id??``),i(!0)},children:`Change`}),(0,j.jsx)(Lh,{danger:!0,disabled:n.busy,onClick:()=>void n.move(async()=>{await Cj(e),await t.reread()}),children:`Turn it off`})]})]}),(0,j.jsxs)(`div`,{className:`box-redirect`,children:[(0,j.jsxs)(`div`,{className:`box-redirect-head`,children:[(0,j.jsx)(`span`,{className:`ui-note`,children:`Register this at Google as the authorized redirect URI`}),(0,j.jsx)(W,{size:`xs`,onClick:()=>void navigator.clipboard.writeText(f).then(()=>u(!0)),children:l?`Copied`:`Copy`})]}),(0,j.jsx)(`pre`,{className:`ui-code`,children:f})]})]})]})}var Bj=[{tab:`signin`,name:`Sign-in`},{tab:`email`,name:`Email`},{tab:`brand`,name:`Brand`}];function Vj(){let[e,t]=Xi(),n=Bj.some(t=>t.tab===e.get(`tab`))?e.get(`tab`):`signin`;return(0,j.jsxs)(kC,{width:900,children:[(0,j.jsx)(AC,{title:`Box settings`,lede:`What this gateway is set to, for every organization on it.`}),(0,j.jsx)(GC,{label:`Box settings`,tabs:Bj,on:n,onPick:e=>t(e===`signin`?{}:{tab:e})}),n===`signin`&&(0,j.jsx)(zj,{}),n===`email`&&(0,j.jsx)(Lj,{}),n===`brand`&&(0,j.jsx)(Ij,{})]})}function Hj(){return(0,j.jsx)(H,{children:(0,j.jsx)(kh,{children:`This gateway does not have this door yet.`})})}var Uj=`130px 90px minmax(0,1fr) 70px minmax(0,1fr) minmax(0,1fr) 150px`,Wj=`130px minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.2fr)`,Gj=(e,t)=>e===null||t===null?`—`:`${Math.round(t-e)}s`;function Kj(){let e=M(),[t]=Xi(),[n,r]=(0,O.useState)(()=>t.get(`number`)??``),[i,a]=(0,O.useState)(``),[o,s]=(0,O.useState)(null),c=sA(),l=async()=>{let t=i===``?null:Date.parse(`${i}T00:00:00Z`)/1e3;await c.move(async()=>s(await iA(e,n.trim(),t)))},u=async e=>{e.preventDefault(),await l()};return(0,O.useEffect)(()=>{n.trim()!==``&&l()},[]),(0,j.jsxs)(kC,{children:[(0,j.jsx)(AC,{title:`Traceback`,lede:`A number's phone calls in every org, and every dial to it: who placed a call, when, from which number.`}),(0,j.jsxs)(`form`,{className:`ui-form box-inline`,onSubmit:e=>void u(e),children:[(0,j.jsx)(Bh,{label:`Number`,minWidth:170,children:(0,j.jsx)(G,{value:n,placeholder:`+14155550142`,onChange:e=>r(e.target.value),required:!0})}),(0,j.jsx)(Bh,{label:`Since (24 months back unset)`,minWidth:170,children:(0,j.jsx)(G,{type:`date`,value:i,onChange:e=>a(e.target.value)})}),(0,j.jsx)(W,{kind:`primary`,size:`form`,type:`submit`,disabled:c.busy||n.trim()===``,children:c.busy?`Looking…`:`Look up`})]}),(0,j.jsx)(Ah,{children:c.refused}),o!==null&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Calls with ${aE(o.number)}`,meta:`since ${hE(o.since)} · ${o.calls.length}`}),o.calls.length===0?(0,j.jsx)(kh,{children:`No phone call with this number.`}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(NC,{columns:Uj,labels:[`Started`,`Way`,`From → to`,`Lasted`,`Ended`,`Org`,`Call`]}),o.calls.map(e=>(0,j.jsxs)(PC,{columns:Uj,children:[(0,j.jsx)(`span`,{className:`ui-cell-faint`,children:hE(e.started_at)}),(0,j.jsx)(`span`,{className:`ui-cell-ink`,children:e.direction??`—`}),(0,j.jsxs)(`span`,{className:`ui-cell-ink ui-clip box-fixed`,children:[e.from_number??`—`,` → `,e.to_number??`—`]}),(0,j.jsx)(`span`,{className:`ui-cell-faint`,children:Gj(e.started_at,e.ended_at)}),(0,j.jsx)(`span`,{className:`ui-cell-faint ui-clip`,children:e.end_reason??`—`}),(0,j.jsxs)(`span`,{className:`ui-cell-ink ui-clip`,children:[e.org??`—`,` · `,e.env??`—`]}),(0,j.jsxs)(`span`,{className:`box-line`,children:[(0,j.jsx)(`span`,{className:`ui-clip box-fixed`,children:e.call}),e.erased&&(0,j.jsx)(xC,{tone:`gray`,children:`record only`})]})]},e.call))]})]}),(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Dials`,meta:String(o.dials.length)}),o.dials.length===0?(0,j.jsx)(kh,{children:`No dial to this number.`}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(NC,{columns:Wj,labels:[`At`,`Shown`,`Org · agent`,`Asked by`,`What came of it`]}),o.dials.map((e,t)=>(0,j.jsxs)(PC,{columns:Wj,children:[(0,j.jsx)(`span`,{className:`ui-cell-faint`,children:hE(e.at)}),(0,j.jsx)(`span`,{className:`ui-cell-ink box-fixed`,children:e.shown??`—`}),(0,j.jsxs)(`span`,{className:`ui-cell-ink ui-clip`,children:[e.org,` · `,e.env,` · `,e.agent]}),(0,j.jsx)(`span`,{className:`ui-cell-faint ui-clip`,children:e.asked_by}),(0,j.jsx)(`span`,{className:`ui-clip`,children:e.refused===null?(0,j.jsx)(`span`,{className:`box-fixed`,children:e.call??`placed`}):(0,j.jsx)(xC,{tone:`red`,children:e.refused})})]},`${e.at}-${t}`))]})]})]})]})}var qj=100,Jj=`minmax(0,1.2fr) 110px 110px 140px 140px`,Yj=`130px minmax(0,1fr) minmax(0,1.4fr) 110px 80px 80px 90px`;function Xj(){let e=M(),[t,n]=(0,O.useState)([]),[r,i]=(0,O.useState)({}),[a,o]=(0,O.useState)(0),[s,c]=(0,O.useState)(!1),[l,u]=(0,O.useState)(!1),[d,f]=(0,O.useState)(null),p=async(t,r)=>{u(!0);try{let a=await eA(e,t,qj);n(e=>r?a.rows:[...e,...a.rows]),i(e=>r?a.totals:Qj(e,a.totals)),o(a.next??null),c(!0)}catch(e){f(oA(e))}finally{u(!1)}};(0,O.useEffect)(()=>{p(0,!0)},[e]);let m=e=>t.filter(t=>t.org===e).reduce((e,t)=>e+t.cost_usd,0);return(0,j.jsxs)(kC,{tight:!0,children:[(0,j.jsx)(AC,{title:`Box usage`,lede:`What every organization consumed, folded off the log by a cursor — there is no counter table to drift from it.`}),(0,j.jsx)(Ah,{children:d}),s&&t.length===0&&a===null&&(0,j.jsx)(H,{children:(0,j.jsx)(kh,{children:`Nothing metered yet: no call of any org has been summarised.`})}),Object.keys(r).length>0&&(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`By organization`,meta:a===null?`the whole log`:`the pages read so far`}),(0,j.jsx)(NC,{columns:Jj,labels:[`Organization`,`Minutes>`,`Messages>`,`Tokens>`,`Cost>`]}),Object.entries(r).map(([e,t])=>(0,j.jsxs)(PC,{columns:Jj,children:[(0,j.jsx)(`span`,{className:`ui-cell-strong ui-clip`,children:e}),(0,j.jsx)(`span`,{className:`ui-cell-ink ui-cell-right`,children:t.minutes.toFixed(1)}),(0,j.jsx)(`span`,{className:`ui-cell-ink ui-cell-right`,children:t.messages}),(0,j.jsx)(`span`,{className:`ui-cell-ink ui-cell-right`,children:(t.input_tokens+t.output_tokens).toLocaleString(`en`)}),(0,j.jsx)(`span`,{className:`ui-cell-ink ui-cell-right`,children:pE(m(e))})]},e))]}),t.length>0&&(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Metered rows`,meta:`${t.length} read, oldest first`}),(0,j.jsx)(NC,{columns:Yj,labels:[`When`,`Organization`,`Agent · call`,`What`,`Min>`,`Msgs>`,`Cost>`]}),t.map(e=>(0,j.jsxs)(PC,{columns:Yj,children:[(0,j.jsx)(`span`,{className:`ui-cell-faint`,children:Zj(e.at)}),(0,j.jsx)(`span`,{className:`ui-cell-ink ui-clip`,children:e.org}),(0,j.jsxs)(`span`,{className:`ui-cell-ink ui-clip`,title:e.call,children:[e.agent,` `,(0,j.jsxs)(`span`,{className:`ui-cell-faint box-fixed`,children:[e.call.slice(0,13),`…`]})]}),(0,j.jsx)(`span`,{className:`ui-cell-faint box-fixed`,children:e.type}),(0,j.jsx)(`span`,{className:`ui-cell-ink ui-cell-right`,children:e.minutes.toFixed(2)}),(0,j.jsx)(`span`,{className:`ui-cell-ink ui-cell-right`,children:e.messages}),(0,j.jsx)(`span`,{className:`ui-cell-ink ui-cell-right`,children:fE(e.cost_usd)})]},`${e.cursor}-${e.call}-${e.type}`)),a!==null&&(0,j.jsx)(Oh,{children:(0,j.jsx)(W,{size:`sm`,disabled:l,onClick:()=>void p(a,!1),children:l?`Reading…`:`Read on`})})]})]})}function Zj(e){return new Date(e*1e3).toISOString().slice(0,16).replace(`T`,` `)}function Qj(e,t){let n={...e};for(let[e,r]of Object.entries(t)){let t=n[e];n[e]=t===void 0?r:{...r,minutes:t.minutes+r.minutes,messages:t.messages+r.messages,input_tokens:t.input_tokens+r.input_tokens,output_tokens:t.output_tokens+r.output_tokens,characters:t.characters+r.characters}}return n}function $j({children:e}){let{operator:t}=uO();return t===null?null:t?e:(0,j.jsx)(Yr,{to:`/`,replace:!0})}var eM={acquire_time:`s`,audio_duration:`s`,audio_tokens:`tokens`,avatar_joined_time:`unix s`,cache_creation_tokens:`tokens`,cached_tokens:`tokens`,cached_tokens_details:`object`,cancelled:`flag`,characters_count:`chars`,completion_tokens:`tokens`,connection_reused:`flag`,detection_delay:`s`,duration:`s`,e2e_latency:`s`,end_of_turn_delay:`s`,end_of_utterance_delay:`s`,idle_time:`s`,image_tokens:`tokens`,inference_count:`count`,inference_duration_total:`s`,input_audio_tokens:`tokens`,input_cache_creation_tokens:`tokens`,input_cached_audio_tokens:`tokens`,input_cached_image_tokens:`tokens`,input_cached_text_tokens:`tokens`,input_cached_tokens:`tokens`,input_image_tokens:`tokens`,input_text_tokens:`tokens`,input_token_details:`object`,input_tokens:`tokens`,label:`name`,llm_metadata:`object`,llm_node_tps:`tokens/s`,llm_node_ttfs:`s`,llm_node_ttft:`s`,metadata:`object`,model:`name`,model_name:`name`,model_provider:`name`,num_backchannels:`count`,num_interruptions:`count`,num_requests:`count`,on_user_turn_completed_delay:`s`,output_audio_tokens:`tokens`,output_reasoning_tokens:`tokens`,output_text_tokens:`tokens`,output_token_details:`object`,output_tokens:`tokens`,playback_latency:`s`,prediction_duration:`s`,prompt_cached_tokens:`tokens`,prompt_tokens:`tokens`,provider:`name`,provider_request_ids:`ids`,reasoning_tokens:`tokens`,request_id:`id`,segment_id:`id`,session_duration:`s`,session_started_time:`unix s`,speech_id:`id`,started_speaking_at:`unix s`,stopped_speaking_at:`unix s`,streamed:`flag`,stt_metadata:`object`,text_tokens:`tokens`,timestamp:`unix s`,tokens_per_second:`tokens/s`,total_duration:`s`,total_requests:`count`,total_tokens:`tokens`,transcription_delay:`s`,ttfb:`s`,ttft:`s`,tts_metadata:`object`,tts_node_ttfb:`s`,type:`tag`};function tM(e){let t=new Map;for(let n of e)!t.has(n)&&YD(n)&&t.set(n,bf(WD[n],{io:`input`}));return t}function nM(e,t){return e==null?`null`:typeof e==`boolean`?e?`true`:`false`:typeof e==`string`?JSON.stringify(e):typeof e==`number`?oM(e,t):Array.isArray(e)?`[${e.map(e=>nM(e,t?.items)).join(`,`)}]`:iM(e,t)}function rM(e,t){return typeof e==`string`?e:nM(e,t)}function iM(e,t){let n=aM(e,t)?.properties;return`{${Object.entries(e).map(([e,t])=>`${JSON.stringify(e)}:${nM(t,n?.[e])}`).join(`,`)}}`}function aM(e,t){return t?.oneOf===void 0?t:t.oneOf.find(t=>Object.entries(t.properties??{}).every(([t,n])=>n.const===void 0||n.const===e[t]))}function oM(e,t){if(t?.type!==`number`||!Number.isFinite(e))return String(e);let n=Math.abs(e);return e!==0&&(n<1e-4||n>=0x2386f26fc10000)?sM(e):Number.isInteger(e)?`${e}.0`:String(e)}function sM(e){let[t=``,n=``]=e.toExponential().split(`e`);return`${t}e${n.startsWith(`-`)?`-`:`+`}${n.replace(/^[+-]/,``).padStart(2,`0`)}`}var cM=[`transcription_delay`,`end_of_turn_delay`],lM=[`llm_node_ttft`,`tts_node_ttfb`,`e2e_latency`],uM=[...cM,...lM],dM=[...uM,`dead_air`,`talk_share`],fM=`talk_share`;function pM(e){return wM(e).map(([e,t])=>({field:e,value:_M(t),unit:null}))}function mM(e,t){return vM(e,``,t)}function hM(){let e=bf(PT,{io:`input`}),t=new Map;for(let[n,r]of Object.entries(e.properties??{}))r.items!==void 0&&t.set(n,r.items);return t}function gM(e,t){return e===`talk_share`?`${String(Math.round(t*100))}%`:_M(t)}function _M(e){return e<0?`—`:e<1?`${Math.round(e*1e3)} ms`:`${e.toFixed(2)} s`}function vM(e,t,n){let r=[];for(let[i,a]of Object.entries(e)){let e=t+i,o=n?.properties?.[i];a!=null&&(typeof a==`object`&&!Array.isArray(a)?r.push(...vM(a,`${e}.`,o)):r.push({field:e,value:rM(a,o),unit:yM(i)}))}return r}function yM(e){return eM[e]??null}function bM(e,t){let n=hM(),r=[];for(let[i,a]of Object.entries(e))for(let e of a)CM(e,t)&&r.push({kind:i,readings:mM(e,n.get(i))});return r}var xM=[`turn.user`,`turn.agent`];function SM(e){let t=TM(e);return dM.filter(e=>(t.get(e)??[]).length>0).map(e=>{let n=t.get(e)??[];return{name:e,seconds:kM(n),max:Math.max(...n),turns:n.length}})}function CM(e,t){return`speech_id`in e&&e.speech_id===t}function wM(e){let t=e.role===`user`?cM:lM,n=e.metrics,r=[];for(let e of t){let t=n[e];typeof t==`number`&&r.push([e,t])}return r}function TM(e){let t=new Map(dM.map(e=>[e,[]])),n={user:0,agent:0},r=null;for(let i of e){if(!xM.includes(i.type))continue;let e=i.data.metrics;for(let n of uM){let r=e?.[n];typeof r==`number`&&t.get(n)?.push(r)}let a={role:i.type===`turn.user`?`user`:`agent`,started:EM(e?.started_speaking_at),stopped:EM(e?.stopped_speaking_at)},o=DM(r,a);o!==null&&t.get(`dead_air`)?.push(o),n[a.role]+=OM(a),r=a}return n.agent+n.user>0&&t.get(fM)?.push(n.agent/(n.agent+n.user)),t}function EM(e){return typeof e==`number`?e:null}function DM(e,t){return e?.role!==`user`||t.role!==`agent`||e.stopped===null||t.started===null||t.started<e.stopped?null:t.started-e.stopped}function OM(e){return e.started===null||e.stopped===null||e.stopped<e.started?0:e.stopped-e.started}function kM(e){let t=[...e].sort((e,t)=>e-t),n=Math.floor(t.length/2),r=t[n]??0;return t.length%2==1?r:((t[n-1]??0)+r)/2}function AM(){return{seq:0,agent:``,call:null,status:`idle`,channel:null,direction:null,from:null,to:null,caller:null,room:null,started_at:null,ended_at:null,end_reason:null,outcome:null,user_state:null,agent_state:null,live:{user:null,agent:null},turns:[],metrics:{llm:[],stt:[],tts:[],vad:[],eou:[],eot:[],interruption:[],realtime:[],avatar:[]},tools:[],app_state:{},events:[],prompt:{},tools_visible:[],confirms:[],memory:[],sources:[],handoff:{active:!1,by:null},held:!1,muted:!1,transfer:null,attention:null,usage:[],cost:null,routes:[],gaps:[],errors:[],custom:[]}}var jM=`unreadable`;function MM(e,t,n){let r=n instanceof Error?n.message:String(n);return e.errors.push({seq:t.seq,code:jM,message:`${t.type} at seq ${t.seq} is not the shape this reader knows: ${r.split(`
102
+ `)[0]?.trim()??r}`}),e}function NM(e,t){let n;try{n=JD(t)}catch(n){let r=MM(e,t,n);return r.seq=t.seq,r.agent=t.agent,t.call!==null&&(r.call=t.call),r}let r=e;return n.type===`log.gap`?r=VM(e,n):PM(e,t,n),r.seq=t.seq,r.agent=t.agent,t.call!==null&&(r.call=t.call),r}function PM(e,t,n){switch(n.type){case`call.ringing`:e.status=`ringing`,e.direction=`inbound`,FM(e,n.data);return;case`call.dialing`:e.status=`dialing`,e.direction=`outbound`,FM(e,n.data);return;case`call.started`:e.status=`active`,e.direction=n.data.direction,e.started_at=n.data.started_at,FM(e,n.data);return;case`call.ended`:e.status=`ended`,e.ended_at=n.data.ended_at,e.end_reason=n.data.reason,e.live={user:null,agent:null},e.attention?.status===`open`&&(e.attention={...e.attention,status:`lapsed`});return;case`call.transferred`:e.transfer={to:n.data.to,mode:n.data.mode,status:n.data.ok?`done`:`failed`,by:e.transfer?.by??`agent`};return;case`call.line`:e.held=n.data.held,e.muted=n.data.muted;return;case`call.summary`:e.usage=[...n.data.usage],e.cost=n.data.cost,e.outcome=n.data.outcome,e.end_reason??=n.data.reason;return;case`user.state`:e.user_state=n.data.state;return;case`agent.state`:e.agent_state=n.data.state;return;case`user.transcript`:e.live.user=n.data.final?null:n.data.text;return;case`agent.transcript`:e.live.agent=n.data.final?null:UM(e.live.agent,n.data);return;case`turn.user`:e.turns.push({role:`user`,...n.data}),e.live.user=null;return;case`turn.agent`:e.turns.push({role:`agent`,...n.data}),e.live.agent=null;return;case`memory.ops`:e.memory.push(...n.data.ops);return;case`docs.sources`:e.sources=[...n.data.sources];return;case`metrics.llm`:e.metrics.llm.push(n.data);return;case`metrics.stt`:e.metrics.stt.push(n.data);return;case`metrics.tts`:e.metrics.tts.push(n.data);return;case`metrics.vad`:e.metrics.vad.push(n.data);return;case`metrics.eou`:e.metrics.eou.push(n.data);return;case`metrics.eot`:e.metrics.eot.push(n.data);return;case`metrics.interruption`:e.metrics.interruption.push(n.data);return;case`metrics.realtime`:e.metrics.realtime.push(n.data);return;case`metrics.avatar`:e.metrics.avatar.push(n.data);return;case`tool.call`:e.tools.push({...n.data,status:`running`,seq:t.seq});return;case`tool.result`:IM(e,n.data);return;case`state.changed`:e.app_state={...n.data.state};return;case`prompt.changed`:e.prompt[n.data.name]={hash:n.data.hash,chars:n.data.chars,seq:t.seq};return;case`tools.changed`:e.tools_visible=[...n.data.visible];return;case`confirm.request`:e.confirms.push({tool:n.data.tool,call_id:n.data.call_id,audience:n.data.audience,phrase:n.data.phrase,status:`pending`});return;case`confirm.granted`:LM(e,n.data.call_id,{status:`granted`,said:n.data.said});return;case`confirm.declined`:LM(e,n.data.call_id,{status:`declined`,reason:n.data.reason,...n.data.said===void 0?{}:{said:n.data.said}});return;case`supervisor.took_over`:e.handoff={active:!0,by:n.data.by};return;case`supervisor.released`:e.handoff={active:!1,by:null};return;case`supervisor.transferred`:e.transfer={to:n.data.to,mode:n.data.mode,status:`requested`,by:`supervisor`};return;case`attention.requested`:e.attention={reason:n.data.reason,wait_s:n.data.wait_s,status:`open`,asked_at:t.ts,by:null};return;case`attention.answered`:e.attention!==null&&e.attention!==void 0&&(e.attention={...e.attention,status:n.data.ok?`answered`:`lapsed`,by:n.data.by});return;case`agent.registered`:e.routes=[...n.data.routes];return;case`error`:e.errors.push({seq:t.seq,code:n.data.code,message:n.data.message});return;case`custom`:e.custom.push({seq:t.seq,name:n.data.name,data:{...n.data.data}});return;case`room.opened`:e.room={name:n.data.name,sid:n.data.sid,participants:[],caller:null};return;case`participant.joined`:RM(e,t,n.data);return;case`participant.left`:zM(e,n.data.identity);return;case`participant.speaking`:{let t=BM(e,n.data.identity);t!==void 0&&(t.speaking=n.data.speaking);return}case`event.received`:{let{data:r,...i}=n.data;e.events.push({...i,seq:t.seq});return}case`track.published`:case`track.unpublished`:case`room.sent`:case`supervisor.said`:case`supervisor.whispered`:case`supervisor.ended`:case`agent.configured`:case`pong`:case`log.caught_up`:case`log.gap`:return}}function FM(e,t){e.channel=t.channel,e.from=t.from,e.to=t.to,e.caller=t.caller}function IM(e,t){let n=HM(e.tools,e=>e.call_id===t.call_id);if(n===-1)return;let{call_id:r,name:i,...a}=t,o=e.tools[n];e.tools[n]={...o,...a,status:a.error===void 0?`done`:`failed`}}function LM(e,t,n){let r=HM(e.confirms,e=>e.call_id===t);if(r===-1)return;let i=e.confirms[r];e.confirms[r]={...i,...n}}function RM(e,t,n){e.room!==null&&(e.room.participants.push({...n,joined_at:t.ts,speaking:!1}),n.kind===`caller`&&(e.room.caller=n.identity))}function zM(e,t){if(e.room===null)return;let n=e.room.participants.findIndex(e=>e.identity===t);n!==-1&&e.room.participants.splice(n,1),e.room.caller===t&&(e.room.caller=null)}function BM(e,t){return e.room?.participants.find(e=>e.identity===t)}function VM(e,t){let n=t.data.snapshot===null?e:structuredClone(t.data.snapshot);return n.gaps.push({from_seq:t.data.from_seq,to_seq:t.data.to_seq}),n}function HM(e,t){for(let n=e.length-1;n>=0;--n)if(t(e[n]))return n;return-1}function UM(e,t){if(e===null||e===``)return t.text;let n=/\s$/.test(e)||/^\s/.test(t.text);return t.start!=null&&!n?`${e} ${t.text}`:`${e}${t.text}`}var WM=500;async function GM(e,t){let n=[],r=0;for(;;){let i=XT.parse(await A(e,`/v1/calls/${t}/events`,{after:r,limit:WM}));if(n.push(...i.entries),i.next===null||i.entries.length<WM)return n;r=i.next}}function KM(e,t={}){let n=M(),[r,i]=(0,O.useState)(AM),[a,o]=(0,O.useState)(`connecting`),[s,c]=(0,O.useState)(null),l=(0,O.useRef)(t);return(0,O.useEffect)(()=>{l.current=t}),(0,O.useEffect)(()=>{let t={current:AM()},r=!1,a=null,s=()=>i({...t.current}),u=()=>{r=!0,a?.()};return(async()=>{let i=0;try{i=await qM(n,e,t,l)}catch(e){c(String(e)),o(`ended`);return}if(!r){if(s(),t.current.status===`ended`){o(`ended`);return}a=eO(da(n,`/v1/calls/${e}/events`,{after:i}),n,{onEntry(e){t.current=NM(t.current,e),l.current.onEntry?.(e),JM(e,t.current,l.current),e.type===`call.score`&&(s(),o(`ended`),u())},onPaint:s,onConnection:o,onRefused:c}),r&&a()}})(),u},[e,n]),{state:r,connection:a,error:s}}async function qM(e,t,n,r){let i;try{i=await GM(e,t)}catch(e){if(e instanceof na&&e.status===404)return 0;throw e}for(let e of i)n.current=NM(n.current,e),r.current.onEntry?.(e),JM(e,n.current,r.current);return i.at(-1)?.seq??0}function JM(e,t,n){if(e.type!==`custom`)return;let r=t.custom.at(-1);r!==void 0&&n.onCustom?.(r)}function YM(e){let t=(0,O.useRef)([]),n=KM(e,{onEntry(e){let n=t.current.at(-1);n!==void 0&&e.seq<=n.seq||t.current.push(e)}}),r=(0,O.useMemo)(()=>[...t.current],[n.state.seq]);return{state:n.state,entries:r,connection:n.connection,error:n.error}}function XM({agent:e,call:t}){let{lines:n}=uO(),r=n.find(t=>t.agent===e)?.call??null,i=t??r;return(0,j.jsx)(`aside`,{className:`inspector`,"aria-label":`Inspector`,children:i===null?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(ZM,{connection:null}),(0,j.jsx)(`p`,{className:`inspector-quiet`,children:`Nothing to read yet: the first call this agent takes is read here as it happens.`})]}):(0,j.jsx)($M,{call:i,yours:t!==null},i)})}function ZM({connection:e}){return(0,j.jsxs)(`div`,{className:`inspector-head`,children:[(0,j.jsx)(`span`,{className:`inspector-title`,children:`Inspector`}),(0,j.jsx)(`span`,{className:`inspector-standing`,children:QM(e)})]})}function QM(e){switch(e){case`live`:return(0,j.jsx)(xC,{tone:`green`,children:`reading the log`});case`connecting`:return(0,j.jsx)(xC,{tone:`muted`,children:`opening the log`});case`reconnecting`:return(0,j.jsx)(xC,{tone:`amber`,children:`reconnecting`});case`ended`:return(0,j.jsx)(xC,{tone:`muted`,children:`call ended`});default:return(0,j.jsx)(xC,{tone:`muted`,children:`no call yet`})}}function $M({call:e,yours:t}){let[n,r]=(0,O.useState)(`call`),i=YM(e),{state:a}=i,o=new Set,s=SM(i.entries.filter(e=>!o.has(e.seq)&&(o.add(e.seq),!0))),c=e=>{let t=s.find(t=>t.name===e);return t===void 0?`—`:_M(t.seconds)},l=tN(a),u=[[`Turns`,String(a.turns.length)],[`Cost`,fE(a.cost?.usd)],[`First token`,c(`llm_node_ttft`)],[`End to end`,c(`e2e_latency`)],[`Tokens in`,nN(l.in)],[`Tokens out`,nN(l.out)]],d=Object.keys(a.app_state).sort(),f=[{tab:`call`,name:`Call`},{tab:`turns`,name:`Turns`,mark:(0,j.jsx)(`span`,{className:`inspector-count`,children:a.turns.length})},{tab:`tools`,name:`Tools`,mark:(0,j.jsx)(`span`,{className:`inspector-count`,children:a.tools.length})},{tab:`state`,name:`State`}];return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(ZM,{connection:i.connection}),(0,j.jsx)(`div`,{className:`inspector-tabs`,children:(0,j.jsx)(GC,{label:`Inspector`,tabs:f,on:n,onPick:r})}),n===`call`&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(Nh,{children:t?`This session`:`Last session`}),(0,j.jsx)(`div`,{className:`inspector-figures`,children:u.map(([e,t])=>(0,j.jsxs)(`div`,{className:`inspector-tile`,children:[(0,j.jsx)(`div`,{className:`inspector-figure-label`,children:e}),(0,j.jsx)(`div`,{className:`inspector-figure`,children:t})]},e))}),!t&&(0,j.jsxs)(Wi,{to:`/calls/${e}`,className:`inspector-call`,title:e,children:[(0,j.jsx)(`span`,{className:`inspector-call-id ui-fixed ui-clip`,children:e}),(0,j.jsx)(`span`,{className:`inspector-call-open`,children:`Open call →`})]})]}),n===`turns`&&(0,j.jsxs)(`div`,{className:`inspector-turns`,children:[a.turns.length===0&&(0,j.jsx)(`p`,{className:`inspector-none`,children:`No turn yet.`}),a.turns.map((e,t)=>(0,j.jsxs)(`div`,{className:`inspector-turn`,children:[(0,j.jsx)(`span`,{className:e.role===`agent`?`inspector-who inspector-who-agent`:`inspector-who`,children:e.role===`agent`?`agent`:`caller`}),(0,j.jsxs)(`span`,{className:`inspector-turn-body`,children:[(0,j.jsx)(`span`,{className:`inspector-turn-text`,children:e.text}),(0,j.jsx)(`span`,{className:`inspector-turn-meta`,children:eN(e)})]})]},`${e.speech_id}-${t}`))]}),n===`tools`&&(0,j.jsxs)(`div`,{className:`inspector-tools`,children:[a.tools.length===0&&(0,j.jsx)(`p`,{className:`inspector-none`,children:`No tool has run.`}),a.tools.map(e=>(0,j.jsxs)(`div`,{className:`inspector-tool`,children:[(0,j.jsx)(`div`,{className:`inspector-tool-name`,children:e.name}),(0,j.jsx)(`div`,{className:`inspector-tool-args`,children:rN(e.arguments)}),(0,j.jsx)(`div`,{className:e.status===`failed`?`inspector-tool-result inspector-tool-failed`:e.status===`running`?`inspector-tool-result inspector-tool-running`:`inspector-tool-result`,children:e.status===`failed`?e.error??`failed`:e.status===`running`?`running…`:`ok${e.summary?` · ${e.summary}`:``}`})]},e.call_id))]}),n===`state`&&(0,j.jsxs)(`div`,{className:`inspector-state`,children:[d.length===0&&(0,j.jsx)(`p`,{className:`inspector-none`,children:`The app has declared no state yet.`}),d.map(e=>(0,j.jsxs)(`div`,{className:`inspector-field`,children:[(0,j.jsx)(`span`,{className:`inspector-field-key`,children:e}),(0,j.jsx)(`span`,{className:`inspector-field-value`,children:iN(a.app_state[e])})]},e))]}),i.error!==null&&(0,j.jsx)(`p`,{className:`inspector-refused`,children:i.error})]})}function eN(e){if(e.role===`agent`){let t=[];return typeof e.metrics.llm_node_ttft==`number`&&t.push(`ttft ${_M(e.metrics.llm_node_ttft)}`),typeof e.metrics.e2e_latency==`number`&&t.push(`e2e ${_M(e.metrics.e2e_latency)}`),e.interrupted&&t.push(`interrupted`),t.join(` · `)}let t=[];return typeof e.metrics.transcription_delay==`number`&&t.push(`stt ${_M(e.metrics.transcription_delay)}`),t.push(e.speech_id),t.join(` · `)}function tN(e){let t=0,n=0;for(let r of e.usage)r.type===`llm_usage`&&(t+=(r.input_tokens??0)+(r.input_cached_tokens??0),n+=r.output_tokens??0);return{in:t,out:n}}function nN(e){return e.toLocaleString(`en-US`).replace(/,/g,` `)}function rN(e){let t=Object.entries(e).map(([e,t])=>`${e}=${iN(t)}`);return t.length===0?`no arguments`:t.join(` · `)}function iN(e){return typeof e==`string`?e:JSON.stringify(e)}var aN=new Set([`call.transferred`,`call.line`,`attention.requested`,`attention.answered`,`callback.requested`]);function oN(e){if(!aN.has(e.type))return null;let t=JD(e);switch(t.type){case`call.transferred`:return t.data.ok?{said:`transferred to ${t.data.to}`,note:t.data.mode??null}:{said:`the transfer to ${t.data.to} did not take`,note:t.data.error??null};case`call.line`:return{said:t.data.held?`the caller is on hold`:`the caller is off hold`,note:null};case`attention.requested`:return{said:`the agent asked for a person: ${t.data.reason}`,note:`waits ${String(t.data.wait_s)}s`};case`attention.answered`:return t.data.ok?{said:`a person took the line`,note:t.data.by===null?null:t.data.by.name??t.data.by.id}:{said:`nobody took the line`,note:t.data.error??null};case`callback.requested`:return{said:`asked to be called back on ${t.data.number}`,note:t.data.when??null};default:return null}}var sN=`supervisor.`;function cN(e){if(!e.type.startsWith(sN))return null;let t=JD(e);switch(t.type){case`supervisor.whispered`:return{said:`supervisor whispered: ${t.data.text}`,by:lN(t.data.by)};case`supervisor.said`:return{said:`supervisor made the agent say: ${t.data.text}`,by:lN(t.data.by)};case`supervisor.took_over`:return{said:`supervisor took the line`,by:lN(t.data.by)};case`supervisor.released`:return{said:`supervisor handed the line back`,by:lN(t.data.by)};case`supervisor.transferred`:return{said:`supervisor transferred the call to ${t.data.to}`,by:lN(t.data.by)};case`supervisor.ended`:return{said:`supervisor ended the call${uN(t.data.reason)}`,by:lN(t.data.by)};default:return null}}function lN(e){return e.name??e.id}function uN(e){return e==null?``:`: ${e}`}function dN(e,t){let n=[],r=[],i=fN(e),a=()=>{r.length>0&&(n.push({kind:`quiet`,seq:r[0]?.seq??0,entries:r}),r=[])};for(let i of e){let e=mN(i,t);if(e===null){r.push(i);continue}a(),n.push(e)}return a(),pN(n,i)}function fN(e){let t=new Map,n=null;for(let r of e){if(r.type===`agent.state`){let e=r.data.state;e===`speaking`&&n===null&&(n=r.seq),e===`listening`&&(n=null)}r.type===`turn.agent`&&n!==null&&(t.set(r.seq,n),n=null)}return t}function pN(e,t){let n=e=>e.kind===`turn`?t.get(e.seq)??e.seq:e.seq;return e.map((e,t)=>({row:e,at:t,when:n(e)})).sort((e,t)=>e.when-t.when||e.at-t.at).map(e=>e.row)}function mN(e,t){let n=e.seq,r=cN(e);if(r!==null)return{kind:`supervisor`,seq:n,mark:r};let i=oN(e);if(i!==null)return{kind:`line`,seq:n,mark:i};let a=JD(e);switch(a.type){case`turn.user`:case`turn.agent`:{let e=hN(t,a.type===`turn.user`?`user`:`agent`,a.data);return e===void 0?null:{kind:`turn`,seq:n,turn:e}}case`tool.call`:{let e=gN(t.tools,e=>e.call_id===a.data.call_id);return e===void 0?null:{kind:`tool`,seq:n,run:e}}case`state.changed`:return{kind:`state`,seq:n,changed:a.data.changed,cause:a.data.cause??null};case`confirm.request`:{let e=gN(t.confirms,e=>e.call_id===a.data.call_id);return e===void 0?null:{kind:`confirm`,seq:n,confirm:e}}case`event.received`:return{kind:`event`,seq:n,name:a.data.name,source:a.data.source,data:a.data.data};case`memory.ops`:return{kind:`memory`,seq:n,ops:a.data};case`docs.sources`:return{kind:`sources`,seq:n,sources:a.data};default:return null}}function hN(e,t,n){let r=n.item_id;if(typeof r==`string`&&r!==``){let n=gN(e.turns,e=>e.role===t&&e.item_id===r);if(n!==void 0)return n}return gN(e.turns,e=>e.role===t&&e.speech_id===n.speech_id)}function gN(e,t){for(let n=e.length-1;n>=0;--n){let r=e[n];if(t(r))return r}}function _N(e){let t=new Map,n=new Set;for(let r of e)if(r.type===`agent.transcript`){let e=r.data;if(e.final)continue;t.set(e.speech_id,(t.get(e.speech_id)??``)+e.text)}else r.type===`turn.agent`&&n.add(r.data.speech_id);return{streaming:t,settled:n}}var vN=new Map,yN=1,bN=.18;function xN(e,t,n){let[r,i]=(0,O.useState)(()=>n?t.length:vN.get(e)??0),a=(0,O.useRef)(t.length);return a.current=t.length,(0,O.useEffect)(()=>{if(n){vN.set(e,t.length),i(t.length);return}let r=0,o=()=>{i(t=>{let n=a.current-t;if(n<=0)return t;let r=Math.min(a.current,t+Math.max(yN,Math.ceil(n*bN)));return vN.set(e,r),r}),r=requestAnimationFrame(o)};return r=requestAnimationFrame(o),()=>cancelAnimationFrame(r)},[e,n,t.length]),t.slice(0,Math.min(r,t.length))}var SN=80;function CN({watched:e,pending:t,onConfirmed:n}){let r=TN(e.entries),i=dN(r,e.state),{streaming:a,settled:o}=_N(r),s=(0,O.useRef)(null),c=(0,O.useRef)(!0),[l]=(0,O.useState)(()=>performance.now()),[u,d]=(0,O.useState)(!1);(0,O.useEffect)(()=>{let e=window.setTimeout(()=>d(!0),600);return()=>window.clearTimeout(e)},[l]);let f=i.filter(e=>e.kind===`turn`&&e.turn.role===`user`).length;(0,O.useEffect)(()=>{let e=[...i].reverse().find(e=>e.kind===`turn`&&e.turn.role===`user`);e?.kind===`turn`&&n(e.turn.text)},[f]);let p=[...a.entries()].filter(([e])=>!o.has(e)),m=e.state.agent_state===`thinking`&&p.length===0;return(0,O.useLayoutEffect)(()=>{let e=s.current;e!==null&&c.current&&(e.scrollTop=e.scrollHeight)}),(0,j.jsxs)(`div`,{className:`chat-lines`,ref:s,onScroll:e=>{let t=e.currentTarget;c.current=t.scrollHeight-t.scrollTop-t.clientHeight<SN},children:[i.map(e=>{if(e.kind===`turn`){let t=e.turn.speech_id??`seq-${String(e.seq)}`;return e.turn.role===`agent`?(0,j.jsx)(wN,{speech:t,text:e.turn.text,instant:!u,done:!0},`turn-${String(e.seq)}`):(0,j.jsx)(`div`,{className:`chat-line chat-line-user`,children:(0,j.jsx)(`span`,{className:`chat-bubble chat-bubble-you`,children:e.turn.text})},`turn-${String(e.seq)}`)}return e.kind===`tool`?(0,j.jsx)(`div`,{className:`chat-line chat-line-tool`,children:(0,j.jsxs)(`span`,{className:`chat-tool chat-tool-${e.run.status}`,children:[e.run.name,` · `,e.run.error??e.run.summary??(e.run.status===`running`?`running…`:`done`)]})},`tool-${String(e.seq)}`):null}),p.map(([e,t])=>(0,j.jsx)(wN,{speech:e,text:t,instant:!1,done:!1},`writing-${e}`)),t.map(e=>(0,j.jsx)(`div`,{className:`chat-line chat-line-user chat-line-pending`,children:(0,j.jsx)(`span`,{className:`chat-bubble chat-bubble-you`,children:e.text})},`pending-${String(e.id)}`)),m&&(0,j.jsx)(`div`,{className:`chat-line chat-line-agent`,children:(0,j.jsxs)(`span`,{className:`chat-bubble chat-typing`,"aria-label":`the agent is writing`,children:[(0,j.jsx)(`i`,{}),(0,j.jsx)(`i`,{}),(0,j.jsx)(`i`,{})]})}),e.error!==null&&(0,j.jsx)(`p`,{className:`chat-error`,children:e.error})]})}function wN({speech:e,text:t,instant:n,done:r}){let i=xN(e,t,n),a=i.length>=t.length;return(0,j.jsx)(`div`,{className:`chat-line chat-line-agent`,children:(0,j.jsxs)(`span`,{className:`chat-bubble`,children:[i,!(r&&a)&&(0,j.jsx)(`span`,{className:`chat-caret`,"aria-hidden":!0})]})})}function TN(e){let t=new Set;return e.filter(e=>!t.has(e.seq)&&(t.add(e.seq),!0))}var EN={"chat.roster":`chat`,"chat.start":`chat`,"chat.say":`chat`,"chat.end":`chat`,"view.render":`view`,"knowledge.roster":`knowledge`,"knowledge.push":`knowledge`,"knowledge.eval":`knowledge`,"memory.roster":`memory`,"memory.eval":`memory`,"memory.extraction":`memory`,"simulate.start":`evals`,"goldens.roster":`evals`,"goldens.run":`evals`,"promote.roster":`evals`,"promote.write":`evals`,"drift.read":`evals`,"reproductions.roster":`evals`,"reproductions.read":`evals`};function DN(e,t){return`/v1/agents/${encodeURIComponent(e)}/dev/${EN[t]}/${t}`}async function ON(e,t,n,r={}){return la(e,DN(t,n),r)}var kN=z({agent:P().nullable(),states:R(P())}),AN=z({call:P()});async function jN(e,t){return kN.parse(await ON(e,t,`chat.roster`))}async function MN(e,t,n,r){let i={agent:t,...n===``?{}:{as:n},...r===``?{}:{golden:r}};return AN.parse(await ON(e,t,`chat.start`,i)).call}async function NN(e,t,n,r){AN.parse(await ON(e,t,`chat.say`,{call:n,text:r}))}async function PN(e,t,n){AN.parse(await ON(e,t,`chat.end`,{call:n}))}function FN(){let e=xr(),t=e.agent??``,n=e.call;return(0,j.jsxs)(`div`,{className:`chat-grid`,children:[(0,j.jsx)(`div`,{className:`chat-column`,children:n===void 0?(0,j.jsx)(LN,{agent:t}):(0,j.jsx)(RN,{agent:t,call:n})}),(0,j.jsx)(XM,{agent:t,call:n??null})]})}function IN({agent:e,children:t}){return(0,j.jsxs)(`div`,{className:`chat-head`,children:[(0,j.jsxs)(`div`,{className:`chat-head-words`,children:[(0,j.jsxs)(`div`,{className:`chat-title`,children:[`Chat with `,e]}),(0,j.jsx)(`div`,{className:`chat-sub`,children:`The same agent, typed instead of spoken — every turn still lands in the log.`})]}),t]})}function LN({agent:e}){let t=M(),n=_r(),[r,i]=(0,O.useState)(null),[a,o]=(0,O.useState)(``),[s,c]=(0,O.useState)(``),[l,u]=(0,O.useState)(null),[d,f]=(0,O.useState)(!1);(0,O.useEffect)(()=>{let n=!1;return jN(t,e).then(e=>{n||i(e)},e=>{n||u(e instanceof Error?e.message:String(e))}),()=>{n=!0}},[t,e]);let p=async r=>{r.preventDefault(),f(!0),u(null);try{n(`/a/${e}/dev-chat/${await MN(t,e,a.trim(),s)}`)}catch(e){u(e instanceof na?e.message:String(e))}finally{f(!1)}};return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(IN,{agent:e}),(0,j.jsx)(`div`,{className:`chat-lines`,children:(0,j.jsxs)(`div`,{className:`chat-start ui-card`,children:[(0,j.jsx)(`div`,{className:`ui-card-head`,children:(0,j.jsx)(`span`,{className:`ui-card-title`,children:`Start a conversation`})}),(0,j.jsxs)(`div`,{className:`ui-card-body`,children:[r===null&&l===null&&(0,j.jsxs)(`p`,{className:`chat-note`,children:[`Asking the terminal that holds `,e,`…`]}),r!==null&&r.agent!==e&&(0,j.jsx)(`p`,{className:`chat-note`,children:r.agent===null?"No agent class in the directory this agent's `pinecall start` runs in, so there is nothing to chat with. Run `pinecall start` where its agent.tsx is.":`The process holding the agent runs in ${r.agent}'s directory: to chat with ${e}, run \`pinecall start\` there.`}),r!==null&&r.agent===e&&(0,j.jsxs)(`form`,{className:`chat-start-form`,onSubmit:e=>void p(e),children:[(0,j.jsx)(`p`,{className:`chat-note`,children:`The class of this directory, in writing. Its tools run in the terminal that serves this page, and a conversation can open part-way through, in the state one of the goldens declares.`}),(0,j.jsx)(Bh,{label:`As`,children:(0,j.jsx)(G,{value:a,placeholder:`a phone number, a customer id — or nobody`,onChange:e=>o(e.target.value)})}),r.states.length>0&&(0,j.jsx)(Bh,{label:`From`,children:(0,j.jsxs)(vC,{value:s,onValueChange:e=>c(e),children:[(0,j.jsx)(yC,{value:``,children:`the call's own opening`}),r.states.map(e=>(0,j.jsxs)(yC,{value:e,children:[`the state of `,e]},e))]})}),(0,j.jsx)(`div`,{children:(0,j.jsx)(W,{kind:`primary`,size:`form`,type:`submit`,disabled:d,children:d?`Opening…`:`Start the chat`})})]}),(0,j.jsx)(Ah,{children:l})]})]})})]})}function RN({agent:e,call:t}){let n=M(),r=_r(),[i,a]=(0,O.useState)([]),[o,s]=(0,O.useState)(null),c=(0,O.useRef)(0),l=YM(t),u=l.state.status===`ended`||l.connection===`ended`,d=async()=>{try{await PN(n,e,t)}catch(e){s(e instanceof na?e.message:String(e));return}r(`/calls/${t}`)};return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(IN,{agent:e,children:(0,j.jsxs)(`div`,{className:`chat-head-actions`,children:[(0,j.jsx)(Wi,{className:`chat-whole`,to:`/calls/${t}`,children:`Open ↗`}),!u&&(0,j.jsx)(W,{size:`md`,onClick:()=>void d(),title:`hanging up seals the log and runs the judges`,children:`Hang up`})]})}),(0,j.jsx)(CN,{watched:l,pending:i,onConfirmed:e=>a(t=>{let n=t.findIndex(t=>t.text===e);return n===-1?t:[...t.slice(0,n),...t.slice(n+1)]})}),o!==null&&(0,j.jsx)(`div`,{className:`chat-refused`,children:(0,j.jsx)(Ah,{children:o})}),u?(0,j.jsx)(`div`,{className:`chat-over`,children:`This chat has ended — its own page has it whole.`}):(0,j.jsx)(zN,{agent:e,call:t,onRefused:s,onSent:e=>{c.current+=1;let t={id:c.current,text:e};return a(e=>[...e,t]),()=>a(e=>e.filter(e=>e.id!==t.id))}})]})}function zN({agent:e,call:t,onSent:n,onRefused:r}){let i=M(),[a,o]=(0,O.useState)(``),s=async s=>{s.preventDefault();let c=a.trim();if(c===``)return;o(``),r(null);let l=n(c);try{await NN(i,e,t,c)}catch(e){l(),o(c),r(e instanceof na?e.message:String(e))}};return(0,j.jsxs)(`form`,{className:`chat-composer`,onSubmit:e=>void s(e),children:[(0,j.jsx)(`input`,{className:`chat-say`,value:a,autoFocus:!0,placeholder:`Ask the agent something`,onChange:e=>o(e.target.value)}),(0,j.jsx)(`button`,{type:`submit`,className:`chat-send`,disabled:a.trim()===``,children:`Send`})]})}var BN=z({state_fields:Op(P(),V([`public`,`tenant`,`pii`])).default({})});function VN(e){let t=M(),[n,r]=(0,O.useState)({});return(0,O.useEffect)(()=>{let n=!1;if(e!==``)return(async()=>{try{let i=BN.parse(await A(t,`/v1/agents/${e}/config`));n||r(i.state_fields)}catch{n||r({})}})(),()=>{n=!0}},[e,t]),n}function HN(e,t){return t.forEach(function(t){t&&typeof t!=`string`&&!Array.isArray(t)&&Object.keys(t).forEach(function(n){if(n!=="default"&&!(n in e)){var r=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(e,n,r.get?r:{enumerable:!0,get:function(){return t[n]}})}})}),Object.freeze(e)}var UN=Object.defineProperty,WN=(e,t,n)=>t in e?UN(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,GN=(e,t,n)=>WN(e,typeof t==`symbol`?t:t+``,n),KN=class{constructor(){GN(this,`_locking`),GN(this,`_locks`),this._locking=Promise.resolve(),this._locks=0}isLocked(){return this._locks>0}lock(){this._locks+=1;let e,t=new Promise(t=>e=()=>{--this._locks,t()}),n=this._locking.then(()=>e);return this._locking=this._locking.then(()=>t),n}};function qN(e,t){if(!e)throw Error(t)}var JN=34028234663852886e22,YN=-34028234663852886e22,XN=4294967295,ZN=2147483647,QN=-2147483648;function $N(e){if(typeof e!=`number`)throw Error(`invalid int 32: `+typeof e);if(!Number.isInteger(e)||e>ZN||e<QN)throw Error(`invalid int 32: `+e)}function eP(e){if(typeof e!=`number`)throw Error(`invalid uint 32: `+typeof e);if(!Number.isInteger(e)||e>XN||e<0)throw Error(`invalid uint 32: `+e)}function tP(e){if(typeof e!=`number`)throw Error(`invalid float 32: `+typeof e);if(Number.isFinite(e)&&(e>JN||e<YN))throw Error(`invalid float 32: `+e)}var nP=Symbol(`@bufbuild/protobuf/enum-type`);function rP(e){let t=e[nP];return qN(t,`missing enum type on enum object`),t}function iP(e,t,n,r){e[nP]=aP(t,n.map(t=>({no:t.no,name:t.name,localName:e[t.no]})))}function aP(e,t,n){let r=Object.create(null),i=Object.create(null),a=[];for(let e of t){let t=sP(e);a.push(t),r[e.name]=t,i[e.no]=t}return{typeName:e,values:a,findName(e){return r[e]},findNumber(e){return i[e]}}}function oP(e,t,n){let r={};for(let e of t){let t=sP(e);r[t.localName]=t.no,r[t.no]=t.localName}return iP(r,e,t),r}function sP(e){return`localName`in e?e:Object.assign(Object.assign({},e),{localName:e.name})}var cP=class{equals(e){return this.getType().runtime.util.equals(this.getType(),this,e)}clone(){return this.getType().runtime.util.clone(this)}fromBinary(e,t){let n=this.getType().runtime.bin,r=n.makeReadOptions(t);return n.readMessage(this,r.readerFactory(e),e.byteLength,r),this}fromJson(e,t){let n=this.getType(),r=n.runtime.json,i=r.makeReadOptions(t);return r.readMessage(n,e,i,this),this}fromJsonString(e,t){let n;try{n=JSON.parse(e)}catch(e){throw Error(`cannot decode ${this.getType().typeName} from JSON: ${e instanceof Error?e.message:String(e)}`)}return this.fromJson(n,t)}toBinary(e){let t=this.getType().runtime.bin,n=t.makeWriteOptions(e),r=n.writerFactory();return t.writeMessage(this,r,n),r.finish()}toJson(e){let t=this.getType().runtime.json,n=t.makeWriteOptions(e);return t.writeMessage(this,n)}toJsonString(e){let t=this.toJson(e);return JSON.stringify(t,null,e?.prettySpaces??0)}toJSON(){return this.toJson({emitDefaultValues:!0})}getType(){return Object.getPrototypeOf(this).constructor}};function lP(e,t,n,r){let i=r?.localName??t.substring(t.lastIndexOf(`.`)+1),a={[i]:function(t){e.util.initFields(this),e.util.initPartial(t,this)}}[i];return Object.setPrototypeOf(a.prototype,new cP),Object.assign(a,{runtime:e,typeName:t,fields:e.util.newFieldList(n),fromBinary(e,t){return new a().fromBinary(e,t)},fromJson(e,t){return new a().fromJson(e,t)},fromJsonString(e,t){return new a().fromJsonString(e,t)},equals(t,n){return e.util.equals(a,t,n)}}),a}function uP(){let e=0,t=0;for(let n=0;n<28;n+=7){let r=this.buf[this.pos++];if(e|=(r&127)<<n,!(r&128))return this.assertBounds(),[e,t]}let n=this.buf[this.pos++];if(e|=(n&15)<<28,t=(n&112)>>4,!(n&128))return this.assertBounds(),[e,t];for(let n=3;n<=31;n+=7){let r=this.buf[this.pos++];if(t|=(r&127)<<n,!(r&128))return this.assertBounds(),[e,t]}throw Error(`invalid varint`)}function dP(e,t,n){for(let r=0;r<28;r+=7){let i=e>>>r,a=!(!(i>>>7)&&t==0),o=(a?i|128:i)&255;if(n.push(o),!a)return}let r=e>>>28&15|(t&7)<<4,i=!!(t>>3);if(n.push((i?r|128:r)&255),i){for(let e=3;e<31;e+=7){let r=t>>>e,i=!!(r>>>7),a=(i?r|128:r)&255;if(n.push(a),!i)return}n.push(t>>>31&1)}}var fP=4294967296;function pP(e){let t=e[0]===`-`;t&&(e=e.slice(1));let n=1e6,r=0,i=0;function a(t,a){let o=Number(e.slice(t,a));i*=n,r=r*n+o,r>=fP&&(i+=r/fP|0,r%=fP)}return a(-24,-18),a(-18,-12),a(-12,-6),a(-6),t?vP(r,i):_P(r,i)}function mP(e,t){let n=_P(e,t),r=n.hi&2147483648;r&&(n=vP(n.lo,n.hi));let i=hP(n.lo,n.hi);return r?`-`+i:i}function hP(e,t){var n=gP(e,t);if(e=n.lo,t=n.hi,t<=2097151)return String(fP*t+e);let r=e&16777215,i=(e>>>24|t<<8)&16777215,a=t>>16&65535,o=r+i*6777216+a*6710656,s=i+a*8147497,c=a*2,l=1e7;return o>=l&&(s+=Math.floor(o/l),o%=l),s>=l&&(c+=Math.floor(s/l),s%=l),c.toString()+yP(s)+yP(o)}function gP(e,t){return{lo:e>>>0,hi:t>>>0}}function _P(e,t){return{lo:e|0,hi:t|0}}function vP(e,t){return t=~t,e?e=~e+1:t+=1,_P(e,t)}var yP=e=>{let t=String(e);return`0000000`.slice(t.length)+t};function bP(e,t){if(e>=0){for(;e>127;)t.push(e&127|128),e>>>=7;t.push(e)}else{for(let n=0;n<9;n++)t.push(e&127|128),e>>=7;t.push(1)}}function xP(){let e=this.buf[this.pos++],t=e&127;if(!(e&128)||(e=this.buf[this.pos++],t|=(e&127)<<7,!(e&128))||(e=this.buf[this.pos++],t|=(e&127)<<14,!(e&128))||(e=this.buf[this.pos++],t|=(e&127)<<21,!(e&128)))return this.assertBounds(),t;e=this.buf[this.pos++],t|=(e&15)<<28;for(let t=5;e&128&&t<10;t++)e=this.buf[this.pos++];if(e&128)throw Error(`invalid varint`);return this.assertBounds(),t>>>0}function SP(){let e=new DataView(new ArrayBuffer(8));if(typeof BigInt==`function`&&typeof e.getBigInt64==`function`&&typeof e.getBigUint64==`function`&&typeof e.setBigInt64==`function`&&typeof e.setBigUint64==`function`&&(typeof process!=`object`||{}.BUF_BIGINT_DISABLE!==`1`)){let t=BigInt(`-9223372036854775808`),n=BigInt(`9223372036854775807`),r=BigInt(`0`),i=BigInt(`18446744073709551615`);return{zero:BigInt(0),supported:!0,parse(e){let r=typeof e==`bigint`?e:BigInt(e);if(r>n||r<t)throw Error(`int64 invalid: ${e}`);return r},uParse(e){let t=typeof e==`bigint`?e:BigInt(e);if(t>i||t<r)throw Error(`uint64 invalid: ${e}`);return t},enc(t){return e.setBigInt64(0,this.parse(t),!0),{lo:e.getInt32(0,!0),hi:e.getInt32(4,!0)}},uEnc(t){return e.setBigInt64(0,this.uParse(t),!0),{lo:e.getInt32(0,!0),hi:e.getInt32(4,!0)}},dec(t,n){return e.setInt32(0,t,!0),e.setInt32(4,n,!0),e.getBigInt64(0,!0)},uDec(t,n){return e.setInt32(0,t,!0),e.setInt32(4,n,!0),e.getBigUint64(0,!0)}}}let t=e=>qN(/^-?[0-9]+$/.test(e),`int64 invalid: ${e}`),n=e=>qN(/^[0-9]+$/.test(e),`uint64 invalid: ${e}`);return{zero:`0`,supported:!1,parse(e){return typeof e!=`string`&&(e=e.toString()),t(e),e},uParse(e){return typeof e!=`string`&&(e=e.toString()),n(e),e},enc(e){return typeof e!=`string`&&(e=e.toString()),t(e),pP(e)},uEnc(e){return typeof e!=`string`&&(e=e.toString()),n(e),pP(e)},dec(e,t){return mP(e,t)},uDec(e,t){return hP(e,t)}}}var CP=SP(),K;(function(e){e[e.DOUBLE=1]=`DOUBLE`,e[e.FLOAT=2]=`FLOAT`,e[e.INT64=3]=`INT64`,e[e.UINT64=4]=`UINT64`,e[e.INT32=5]=`INT32`,e[e.FIXED64=6]=`FIXED64`,e[e.FIXED32=7]=`FIXED32`,e[e.BOOL=8]=`BOOL`,e[e.STRING=9]=`STRING`,e[e.BYTES=12]=`BYTES`,e[e.UINT32=13]=`UINT32`,e[e.SFIXED32=15]=`SFIXED32`,e[e.SFIXED64=16]=`SFIXED64`,e[e.SINT32=17]=`SINT32`,e[e.SINT64=18]=`SINT64`})(K||={});var wP;(function(e){e[e.BIGINT=0]=`BIGINT`,e[e.STRING=1]=`STRING`})(wP||={});function TP(e,t,n){if(t===n)return!0;if(e==K.BYTES){if(!(t instanceof Uint8Array)||!(n instanceof Uint8Array)||t.length!==n.length)return!1;for(let e=0;e<t.length;e++)if(t[e]!==n[e])return!1;return!0}switch(e){case K.UINT64:case K.FIXED64:case K.INT64:case K.SFIXED64:case K.SINT64:return t==n}return!1}function EP(e,t){switch(e){case K.BOOL:return!1;case K.UINT64:case K.FIXED64:case K.INT64:case K.SFIXED64:case K.SINT64:return t==0?CP.zero:`0`;case K.DOUBLE:case K.FLOAT:return 0;case K.BYTES:return new Uint8Array;case K.STRING:return``;default:return 0}}function DP(e,t){switch(e){case K.BOOL:return t===!1;case K.STRING:return t===``;case K.BYTES:return t instanceof Uint8Array&&!t.byteLength;default:return t==0}}function OP(e,t){this.v=e,this.k=t}function kP(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function AP(e){if(Array.isArray(e))return e}function jP(e,t,n){return(t=HP(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function MP(e){if(typeof Symbol<`u`&&e[Symbol.iterator]!=null||e[`@@iterator`]!=null)return Array.from(e)}function NP(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function PP(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
103
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function FP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function IP(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?FP(Object(n),!0).forEach(function(t){jP(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):FP(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function LP(e,t){if(e==null)return{};var n,r,i=RP(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function RP(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function zP(e,t){return AP(e)||NP(e,t)||UP(e,t)||PP()}function BP(e){return AP(e)||MP(e)||UP(e)||PP()}function VP(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function HP(e){var t=VP(e,`string`);return typeof t==`symbol`?t:t+``}function UP(e,t){if(e){if(typeof e==`string`)return kP(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?kP(e,t):void 0}}function WP(e){return function(){return new GP(e.apply(this,arguments))}}function GP(e){var t,n;function r(t,n){try{var a=e[t](n),o=a.value,s=o instanceof OP;Promise.resolve(s?o.v:o).then(function(n){if(s){var c=t===`return`&&o.k?t:`next`;if(!o.k||n.done)return r(c,n);n=e[c](n).value}i(!!a.done,n)},function(e){r(`throw`,e)})}catch(e){i(2,e)}}function i(e,i){e===2?t.reject(i):t.resolve({value:i,done:e}),(t=t.next)?r(t.key,t.arg):n=null}this._invoke=function(e,i){return new Promise(function(a,o){var s={key:e,arg:i,resolve:a,reject:o,next:null};n?n=n.next=s:(t=n=s,r(e,i))})},typeof e.return!=`function`&&(this.return=void 0)}GP.prototype[typeof Symbol==`function`&&Symbol.asyncIterator||`@@asyncIterator`]=function(){return this},GP.prototype.next=function(e){return this._invoke(`next`,e)},GP.prototype.throw=function(e){return this._invoke(`throw`,e)},GP.prototype.return=function(e){return this._invoke(`return`,e)};var KP;(function(e){e[e.Varint=0]=`Varint`,e[e.Bit64=1]=`Bit64`,e[e.LengthDelimited=2]=`LengthDelimited`,e[e.StartGroup=3]=`StartGroup`,e[e.EndGroup=4]=`EndGroup`,e[e.Bit32=5]=`Bit32`})(KP||={});var qP=class{constructor(e){this.stack=[],this.textEncoder=e??new TextEncoder,this.chunks=[],this.buf=[]}finish(){this.chunks.push(new Uint8Array(this.buf));let e=0;for(let t=0;t<this.chunks.length;t++)e+=this.chunks[t].length;let t=new Uint8Array(e),n=0;for(let e=0;e<this.chunks.length;e++)t.set(this.chunks[e],n),n+=this.chunks[e].length;return this.chunks=[],t}fork(){return this.stack.push({chunks:this.chunks,buf:this.buf}),this.chunks=[],this.buf=[],this}join(){let e=this.finish(),t=this.stack.pop();if(!t)throw Error(`invalid state, fork stack empty`);return this.chunks=t.chunks,this.buf=t.buf,this.uint32(e.byteLength),this.raw(e)}tag(e,t){return this.uint32((e<<3|t)>>>0)}raw(e){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(e),this}uint32(e){for(eP(e);e>127;)this.buf.push(e&127|128),e>>>=7;return this.buf.push(e),this}int32(e){return $N(e),bP(e,this.buf),this}bool(e){return this.buf.push(+!!e),this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){let t=this.textEncoder.encode(e);return this.uint32(t.byteLength),this.raw(t)}float(e){tP(e);let t=new Uint8Array(4);return new DataView(t.buffer).setFloat32(0,e,!0),this.raw(t)}double(e){let t=new Uint8Array(8);return new DataView(t.buffer).setFloat64(0,e,!0),this.raw(t)}fixed32(e){eP(e);let t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e,!0),this.raw(t)}sfixed32(e){$N(e);let t=new Uint8Array(4);return new DataView(t.buffer).setInt32(0,e,!0),this.raw(t)}sint32(e){return $N(e),e=(e<<1^e>>31)>>>0,bP(e,this.buf),this}sfixed64(e){let t=new Uint8Array(8),n=new DataView(t.buffer),r=CP.enc(e);return n.setInt32(0,r.lo,!0),n.setInt32(4,r.hi,!0),this.raw(t)}fixed64(e){let t=new Uint8Array(8),n=new DataView(t.buffer),r=CP.uEnc(e);return n.setInt32(0,r.lo,!0),n.setInt32(4,r.hi,!0),this.raw(t)}int64(e){let t=CP.enc(e);return dP(t.lo,t.hi,this.buf),this}sint64(e){let t=CP.enc(e),n=t.hi>>31;return dP(t.lo<<1^n,(t.hi<<1|t.lo>>>31)^n,this.buf),this}uint64(e){let t=CP.uEnc(e);return dP(t.lo,t.hi,this.buf),this}},JP=class{constructor(e,t){this.varint64=uP,this.uint32=xP,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength),this.textDecoder=t??new TextDecoder}tag(){let e=this.uint32(),t=e>>>3,n=e&7;if(t<=0||n<0||n>5)throw Error(`illegal tag: field no `+t+` wire type `+n);return[t,n]}skip(e,t){let n=this.pos;switch(e){case KP.Varint:for(;this.buf[this.pos++]&128;);break;case KP.Bit64:this.pos+=4;case KP.Bit32:this.pos+=4;break;case KP.LengthDelimited:let n=this.uint32();this.pos+=n;break;case KP.StartGroup:for(;;){let e=zP(this.tag(),2),n=e[0],r=e[1];if(r===KP.EndGroup){if(t!==void 0&&n!==t)throw Error(`invalid end group tag`);break}this.skip(r,n)}break;default:throw Error(`cant skip wire type `+e)}return this.assertBounds(),this.buf.subarray(n,this.pos)}assertBounds(){if(this.pos>this.len)throw RangeError(`premature EOF`)}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)}int64(){return CP.dec(...this.varint64())}uint64(){return CP.uDec(...this.varint64())}sint64(){let e=zP(this.varint64(),2),t=e[0],n=e[1],r=-(t&1);return t=(t>>>1|(n&1)<<31)^r,n=n>>>1^r,CP.dec(t,n)}bool(){let e=zP(this.varint64(),2),t=e[0],n=e[1];return t!==0||n!==0}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return CP.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return CP.dec(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let e=this.uint32(),t=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(t,t+e)}string(){return this.textDecoder.decode(this.bytes())}};function YP(e,t,n,r){let i;return{typeName:t,extendee:n,get field(){if(!i){let n=typeof r==`function`?r():r;n.name=t.split(`.`).pop(),n.jsonName=`[${t}]`,i=e.util.newFieldList([n]).list()[0]}return i},runtime:e}}function XP(e){let t=e.field.localName,n=Object.create(null);return n[t]=ZP(e),[n,()=>n[t]]}function ZP(e){let t=e.field;if(t.repeated)return[];if(t.default!==void 0)return t.default;switch(t.kind){case`enum`:return t.T.values[0].no;case`scalar`:return EP(t.T,t.L);case`message`:let e=t.T,n=new e;return e.fieldWrapper?e.fieldWrapper.unwrapField(n):n;case`map`:throw`map fields are not allowed to be extensions`}}function QP(e,t){if(!t.repeated&&(t.kind==`enum`||t.kind==`scalar`)){for(let n=e.length-1;n>=0;--n)if(e[n].no==t.no)return[e[n]];return[]}return e.filter(e=>e.no===t.no)}var $P=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`.split(``),eF=[];for(let e=0;e<$P.length;e++)eF[$P[e].charCodeAt(0)]=e;eF[45]=$P.indexOf(`+`),eF[95]=$P.indexOf(`/`);var tF={dec(e){let t=e.length*3/4;e[e.length-2]==`=`?t-=2:e[e.length-1]==`=`&&--t;let n=new Uint8Array(t),r=0,i=0,a,o=0;for(let t=0;t<e.length;t++){if(a=eF[e.charCodeAt(t)],a===void 0)switch(e[t]){case`=`:i=0;case`
104
+ `:case`\r`:case` `:case` `:continue;default:throw Error(`invalid base64 string.`)}switch(i){case 0:o=a,i=1;break;case 1:n[r++]=o<<2|(a&48)>>4,o=a,i=2;break;case 2:n[r++]=(o&15)<<4|(a&60)>>2,o=a,i=3;break;case 3:n[r++]=(o&3)<<6|a,i=0}}if(i==1)throw Error(`invalid base64 string.`);return n.subarray(0,r)},enc(e){let t=``,n=0,r,i=0;for(let a=0;a<e.length;a++)switch(r=e[a],n){case 0:t+=$P[r>>2],i=(r&3)<<4,n=1;break;case 1:t+=$P[i|r>>4],i=(r&15)<<2,n=2;break;case 2:t+=$P[i|r>>6],t+=$P[r&63],n=0}return n&&(t+=$P[i],t+=`=`,n==1&&(t+=`=`)),t}};function nF(e,t,n){aF(t,e);let r=t.runtime.bin.makeReadOptions(n),i=QP(e.getType().runtime.bin.listUnknownFields(e),t.field),a=zP(XP(t),2),o=a[0],s=a[1];for(let e of i)t.runtime.bin.readField(o,r.readerFactory(e.data),t.field,e.wireType,r);return s()}function rF(e,t,n,r){aF(t,e);let i=t.runtime.bin.makeReadOptions(r),a=t.runtime.bin.makeWriteOptions(r);if(iF(e,t)){let n=e.getType().runtime.bin.listUnknownFields(e).filter(e=>e.no!=t.field.no);e.getType().runtime.bin.discardUnknownFields(e);for(let t of n)e.getType().runtime.bin.onUnknownField(e,t.no,t.wireType,t.data)}let o=a.writerFactory(),s=t.field;!s.opt&&!s.repeated&&(s.kind==`enum`||s.kind==`scalar`)&&(s=Object.assign(Object.assign({},t.field),{opt:!0})),t.runtime.bin.writeField(s,n,o,a);let c=i.readerFactory(o.finish());for(;c.pos<c.len;){let t=zP(c.tag(),2),n=t[0],r=t[1],i=c.skip(r,n);e.getType().runtime.bin.onUnknownField(e,n,r,i)}}function iF(e,t){let n=e.getType();return t.extendee.typeName===n.typeName&&!!n.runtime.bin.listUnknownFields(e).find(e=>e.no==t.field.no)}function aF(e,t){qN(e.extendee.typeName==t.getType().typeName,`extension ${e.typeName} can only be applied to message ${e.extendee.typeName}`)}function oF(e,t){let n=e.localName;if(e.repeated)return t[n].length>0;if(e.oneof)return t[e.oneof.localName].case===n;switch(e.kind){case`enum`:case`scalar`:return e.opt||e.req?t[n]!==void 0:e.kind==`enum`?t[n]!==e.T.values[0].no:!DP(e.T,t[n]);case`message`:return t[n]!==void 0;case`map`:return Object.keys(t[n]).length>0}}function sF(e,t){let n=e.localName,r=!e.opt&&!e.req;if(e.repeated)t[n]=[];else if(e.oneof)t[e.oneof.localName]={case:void 0};else switch(e.kind){case`map`:t[n]={};break;case`enum`:t[n]=r?e.T.values[0].no:void 0;break;case`scalar`:t[n]=r?EP(e.T,e.L):void 0;break;case`message`:t[n]=void 0}}function cF(e,t){if(typeof e!=`object`||!e||!Object.getOwnPropertyNames(cP.prototype).every(t=>t in e&&typeof e[t]==`function`))return!1;let n=e.getType();return n===null||typeof n!=`function`||!(`typeName`in n)||typeof n.typeName!=`string`?!1:t===void 0||n.typeName==t.typeName}function lF(e,t){return cF(t)||!e.fieldWrapper?t:e.fieldWrapper.wrapField(t)}K.DOUBLE,K.FLOAT,K.INT64,K.UINT64,K.INT32,K.UINT32,K.BOOL,K.STRING,K.BYTES;var uF={ignoreUnknownFields:!1},dF={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0};function fF(e){return e?Object.assign(Object.assign({},uF),e):uF}function pF(e){return e?Object.assign(Object.assign({},dF),e):dF}var mF=Symbol(),hF=Symbol();function gF(){return{makeReadOptions:fF,makeWriteOptions:pF,readMessage(e,t,n,r){if(t==null||Array.isArray(t)||typeof t!=`object`)throw Error(`cannot decode message ${e.typeName} from JSON: ${_F(t)}`);r??=new e;let i=new Map,a=n.typeRegistry;for(let s of Object.entries(t)){var o=zP(s,2);let t=o[0],c=o[1],l=e.fields.findJsonName(t);if(l){if(l.oneof){if(c===null&&l.kind==`scalar`)continue;let n=i.get(l.oneof);if(n!==void 0)throw Error(`cannot decode message ${e.typeName} from JSON: multiple keys for oneof "${l.oneof.name}" present: "${n}", "${t}"`);i.set(l.oneof,t)}vF(r,c,l,n,e)}else{let i=!1;if(a?.findExtension&&t.startsWith(`[`)&&t.endsWith(`]`)){let o=a.findExtension(t.substring(1,t.length-1));if(o&&o.extendee.typeName==e.typeName){i=!0;let e=zP(XP(o),2),t=e[0],a=e[1];vF(t,c,o.field,n,o),rF(r,o,a(),n)}}if(!i&&!n.ignoreUnknownFields)throw Error(`cannot decode message ${e.typeName} from JSON: key "${t}" is unknown`)}}return r},writeMessage(e,t){let n=e.getType(),r={},i;try{for(i of n.fields.byNumber()){if(!oF(i,e)){if(i.req)throw`required field not set`;if(!t.emitDefaultValues||!SF(i))continue}let n=i.oneof?e[i.oneof.localName].value:e[i.localName],a=CF(i,n,t);a!==void 0&&(r[t.useProtoFieldName?i.name:i.jsonName]=a)}let a=t.typeRegistry;if(a?.findExtensionFor)for(let i of n.runtime.bin.listUnknownFields(e)){let o=a.findExtensionFor(n.typeName,i.no);if(o&&iF(e,o)){let n=nF(e,o,t),i=CF(o.field,n,t);i!==void 0&&(r[o.field.jsonName]=i)}}}catch(e){let t=i?`cannot encode field ${n.typeName}.${i.name} to JSON`:`cannot encode message ${n.typeName} to JSON`,r=e instanceof Error?e.message:String(e);throw Error(t+(r.length>0?`: ${r}`:``))}return r},readScalar(e,t,n){return bF(e,t,n??wP.BIGINT,!0)},writeScalar(e,t,n){if(t!==void 0&&(n||DP(e,t)))return TF(e,t)},debug:_F}}function _F(e){if(e===null)return`null`;switch(typeof e){case`object`:return Array.isArray(e)?`array`:`object`;case`string`:return e.length>100?`string`:`"${e.split(`"`).join(`\\"`)}"`;default:return String(e)}}function vF(e,t,n,r,i){let a=n.localName;if(n.repeated){if(qN(n.kind!=`map`),t===null)return;if(!Array.isArray(t))throw Error(`cannot decode field ${i.typeName}.${n.name} from JSON: ${_F(t)}`);let o=e[a];for(let e of t){if(e===null)throw Error(`cannot decode field ${i.typeName}.${n.name} from JSON: ${_F(e)}`);switch(n.kind){case`message`:o.push(n.T.fromJson(e,r));break;case`enum`:let t=xF(n.T,e,r.ignoreUnknownFields,!0);t!==hF&&o.push(t);break;case`scalar`:try{o.push(bF(n.T,e,n.L,!0))}catch(t){let r=`cannot decode field ${i.typeName}.${n.name} from JSON: ${_F(e)}`;throw t instanceof Error&&t.message.length>0&&(r+=`: ${t.message}`),Error(r)}}}}else if(n.kind==`map`){if(t===null)return;if(typeof t!=`object`||Array.isArray(t))throw Error(`cannot decode field ${i.typeName}.${n.name} from JSON: ${_F(t)}`);let s=e[a];for(let e of Object.entries(t)){var o=zP(e,2);let a=o[0],c=o[1];if(c===null)throw Error(`cannot decode field ${i.typeName}.${n.name} from JSON: map value null`);let l;try{l=yF(n.K,a)}catch(e){let r=`cannot decode map key for field ${i.typeName}.${n.name} from JSON: ${_F(t)}`;throw e instanceof Error&&e.message.length>0&&(r+=`: ${e.message}`),Error(r)}switch(n.V.kind){case`message`:s[l]=n.V.T.fromJson(c,r);break;case`enum`:let e=xF(n.V.T,c,r.ignoreUnknownFields,!0);e!==hF&&(s[l]=e);break;case`scalar`:try{s[l]=bF(n.V.T,c,wP.BIGINT,!0)}catch(e){let r=`cannot decode map value for field ${i.typeName}.${n.name} from JSON: ${_F(t)}`;throw e instanceof Error&&e.message.length>0&&(r+=`: ${e.message}`),Error(r)}}}}else switch(n.oneof&&(e=e[n.oneof.localName]={case:a},a=`value`),n.kind){case`message`:let o=n.T;if(t===null&&o.typeName!=`google.protobuf.Value`)return;let s=e[a];cF(s)?s.fromJson(t,r):(e[a]=s=o.fromJson(t,r),o.fieldWrapper&&!n.oneof&&(e[a]=o.fieldWrapper.unwrapField(s)));break;case`enum`:let c=xF(n.T,t,r.ignoreUnknownFields,!1);switch(c){case mF:sF(n,e);break;case hF:break;default:e[a]=c}break;case`scalar`:try{let r=bF(n.T,t,n.L,!1);switch(r){case mF:sF(n,e);break;default:e[a]=r}}catch(e){let r=`cannot decode field ${i.typeName}.${n.name} from JSON: ${_F(t)}`;throw e instanceof Error&&e.message.length>0&&(r+=`: ${e.message}`),Error(r)}}}function yF(e,t){if(e===K.BOOL)switch(t){case`true`:t=!0;break;case`false`:t=!1}return bF(e,t,wP.BIGINT,!0).toString()}function bF(e,t,n,r){if(t===null)return r?EP(e,n):mF;switch(e){case K.DOUBLE:case K.FLOAT:if(t===`NaN`)return NaN;if(t===`Infinity`)return 1/0;if(t===`-Infinity`)return-1/0;if(t===``||typeof t==`string`&&t.trim().length!==t.length||typeof t!=`string`&&typeof t!=`number`)break;let r=Number(t);if(Number.isNaN(r)||!Number.isFinite(r))break;return e==K.FLOAT&&tP(r),r;case K.INT32:case K.FIXED32:case K.SFIXED32:case K.SINT32:case K.UINT32:let i;if(typeof t==`number`?i=t:typeof t==`string`&&t.length>0&&t.trim().length===t.length&&(i=Number(t)),i===void 0)break;return e==K.UINT32||e==K.FIXED32?eP(i):$N(i),i;case K.INT64:case K.SFIXED64:case K.SINT64:if(typeof t!=`number`&&typeof t!=`string`)break;let a=CP.parse(t);return n?a.toString():a;case K.FIXED64:case K.UINT64:if(typeof t!=`number`&&typeof t!=`string`)break;let o=CP.uParse(t);return n?o.toString():o;case K.BOOL:if(typeof t!=`boolean`)break;return t;case K.STRING:if(typeof t!=`string`)break;return t;case K.BYTES:if(t===``)return new Uint8Array;if(typeof t!=`string`)break;return tF.dec(t)}throw Error()}function xF(e,t,n,r){if(t===null)return e.typeName==`google.protobuf.NullValue`?0:r?e.values[0].no:mF;switch(typeof t){case`number`:if(Number.isInteger(t))return t;break;case`string`:let r=e.findName(t);if(r!==void 0)return r.no;if(n)return hF}throw Error(`cannot decode enum ${e.typeName} from JSON: ${_F(t)}`)}function SF(e){return e.repeated||e.kind==`map`?!0:!(e.oneof||e.kind==`message`||e.opt||e.req)}function CF(e,t,n){if(e.kind==`map`){qN(typeof t==`object`&&!!t);let o={},s=Object.entries(t);switch(e.V.kind){case`scalar`:for(let t of s){var r=zP(t,2);let n=r[0],i=r[1];o[n.toString()]=TF(e.V.T,i)}break;case`message`:for(let e of s){var i=zP(e,2);let t=i[0],r=i[1];o[t.toString()]=r.toJson(n)}break;case`enum`:let t=e.V.T;for(let e of s){var a=zP(e,2);let r=a[0],i=a[1];o[r.toString()]=wF(t,i,n.enumAsInteger)}}return n.emitDefaultValues||s.length>0?o:void 0}if(e.repeated){qN(Array.isArray(t));let r=[];switch(e.kind){case`scalar`:for(let n=0;n<t.length;n++)r.push(TF(e.T,t[n]));break;case`enum`:for(let i=0;i<t.length;i++)r.push(wF(e.T,t[i],n.enumAsInteger));break;case`message`:for(let e=0;e<t.length;e++)r.push(t[e].toJson(n))}return n.emitDefaultValues||r.length>0?r:void 0}switch(e.kind){case`scalar`:return TF(e.T,t);case`enum`:return wF(e.T,t,n.enumAsInteger);case`message`:return lF(e.T,t).toJson(n)}}function wF(e,t,n){return qN(typeof t==`number`),e.typeName==`google.protobuf.NullValue`?null:n?t:e.findNumber(t)?.name??t}function TF(e,t){switch(e){case K.INT32:case K.SFIXED32:case K.SINT32:case K.FIXED32:case K.UINT32:return qN(typeof t==`number`),t;case K.FLOAT:case K.DOUBLE:return qN(typeof t==`number`),Number.isNaN(t)?`NaN`:t===1/0?`Infinity`:t===-1/0?`-Infinity`:t;case K.STRING:return qN(typeof t==`string`),t;case K.BOOL:return qN(typeof t==`boolean`),t;case K.UINT64:case K.FIXED64:case K.INT64:case K.SFIXED64:case K.SINT64:return qN(typeof t==`bigint`||typeof t==`string`||typeof t==`number`),t.toString();case K.BYTES:return qN(t instanceof Uint8Array),tF.enc(t)}}var EF=Symbol(`@bufbuild/protobuf/unknown-fields`),DF={readUnknownFields:!0,readerFactory:e=>new JP(e)},OF={writeUnknownFields:!0,writerFactory:()=>new qP};function kF(e){return e?Object.assign(Object.assign({},DF),e):DF}function AF(e){return e?Object.assign(Object.assign({},OF),e):OF}function jF(){return{makeReadOptions:kF,makeWriteOptions:AF,listUnknownFields(e){return e[EF]??[]},discardUnknownFields(e){delete e[EF]},writeUnknownFields(e,t){let n=e[EF];if(n)for(let e of n)t.tag(e.no,e.wireType).raw(e.data)},onUnknownField(e,t,n,r){let i=e;Array.isArray(i[EF])||(i[EF]=[]),i[EF].push({no:t,wireType:n,data:r})},readMessage(e,t,n,r,i){let a=e.getType(),o=i?t.len:t.pos+n,s,c;for(;t.pos<o;){var l=zP(t.tag(),2);if(s=l[0],c=l[1],i===!0&&c==KP.EndGroup)break;let n=a.fields.find(s);if(!n){let n=t.skip(c,s);r.readUnknownFields&&this.onUnknownField(e,s,c,n);continue}MF(e,t,n,c,r)}if(i&&(c!=KP.EndGroup||s!==n))throw Error(`invalid end group tag`)},readField:MF,writeMessage(e,t,n){let r=e.getType();for(let i of r.fields.byNumber()){if(!oF(i,e)){if(i.req)throw Error(`cannot encode field ${r.typeName}.${i.name} to binary: required field not set`);continue}LF(i,i.oneof?e[i.oneof.localName].value:e[i.localName],t,n)}return n.writeUnknownFields&&this.writeUnknownFields(e,t),t},writeField(e,t,n,r){t!==void 0&&LF(e,t,n,r)}}}function MF(e,t,n,r,i){let a=n.repeated,o=n.localName;switch(n.oneof&&(e=e[n.oneof.localName],e.case!=o&&delete e.value,e.case=o,o=`value`),n.kind){case`scalar`:case`enum`:let s=n.kind==`enum`?K.INT32:n.T,c=IF;if(n.kind==`scalar`&&n.L>0&&(c=FF),a){let n=e[o];if(r==KP.LengthDelimited&&s!=K.STRING&&s!=K.BYTES){let e=t.uint32()+t.pos;for(;t.pos<e;)n.push(c(t,s))}else n.push(c(t,s))}else e[o]=c(t,s);break;case`message`:let l=n.T;a?e[o].push(NF(t,new l,i,n)):cF(e[o])?NF(t,e[o],i,n):(e[o]=NF(t,new l,i,n),l.fieldWrapper&&!n.oneof&&!n.repeated&&(e[o]=l.fieldWrapper.unwrapField(e[o])));break;case`map`:let u=zP(PF(n,t,i),2),d=u[0],f=u[1];e[o][d]=f}}function NF(e,t,n,r){let i=t.getType().runtime.bin,a=r?.delimited;return i.readMessage(t,e,a?r.no:e.uint32(),n,a),t}function PF(e,t,n){let r=t.uint32(),i=t.pos+r,a,o;for(;t.pos<i;)switch(zP(t.tag(),1)[0]){case 1:a=IF(t,e.K);break;case 2:switch(e.V.kind){case`scalar`:o=IF(t,e.V.T);break;case`enum`:o=t.int32();break;case`message`:o=NF(t,new e.V.T,n,void 0)}}if(a===void 0&&(a=EP(e.K,wP.BIGINT)),typeof a!=`string`&&typeof a!=`number`&&(a=a.toString()),o===void 0)switch(e.V.kind){case`scalar`:o=EP(e.V.T,wP.BIGINT);break;case`enum`:o=e.V.T.values[0].no;break;case`message`:o=new e.V.T}return[a,o]}function FF(e,t){let n=IF(e,t);return typeof n==`bigint`?n.toString():n}function IF(e,t){switch(t){case K.STRING:return e.string();case K.BOOL:return e.bool();case K.DOUBLE:return e.double();case K.FLOAT:return e.float();case K.INT32:return e.int32();case K.INT64:return e.int64();case K.UINT64:return e.uint64();case K.FIXED64:return e.fixed64();case K.BYTES:return e.bytes();case K.FIXED32:return e.fixed32();case K.SFIXED32:return e.sfixed32();case K.SFIXED64:return e.sfixed64();case K.SINT64:return e.sint64();case K.UINT32:return e.uint32();case K.SINT32:return e.sint32()}}function LF(e,t,n,r){qN(t!==void 0);let i=e.repeated;switch(e.kind){case`scalar`:case`enum`:let o=e.kind==`enum`?K.INT32:e.T;if(i){if(qN(Array.isArray(t)),e.packed)VF(n,o,e.no,t);else for(let r of t)BF(n,o,e.no,r)}else BF(n,o,e.no,t);break;case`message`:if(i){qN(Array.isArray(t));for(let i of t)zF(n,r,e,i)}else zF(n,r,e,t);break;case`map`:qN(typeof t==`object`&&!!t);for(let i of Object.entries(t)){var a=zP(i,2);let t=a[0],o=a[1];RF(n,r,e,t,o)}}}function RF(e,t,n,r,i){e.tag(n.no,KP.LengthDelimited),e.fork();let a=r;switch(n.K){case K.INT32:case K.FIXED32:case K.UINT32:case K.SFIXED32:case K.SINT32:a=Number.parseInt(r);break;case K.BOOL:qN(r==`true`||r==`false`),a=r==`true`}switch(BF(e,n.K,1,a),n.V.kind){case`scalar`:BF(e,n.V.T,2,i);break;case`enum`:BF(e,K.INT32,2,i);break;case`message`:qN(i!==void 0),e.tag(2,KP.LengthDelimited).bytes(i.toBinary(t))}e.join()}function zF(e,t,n,r){let i=lF(n.T,r);n.delimited?e.tag(n.no,KP.StartGroup).raw(i.toBinary(t)).tag(n.no,KP.EndGroup):e.tag(n.no,KP.LengthDelimited).bytes(i.toBinary(t))}function BF(e,t,n,r){qN(r!==void 0);let i=zP(HF(t),2),a=i[0],o=i[1];e.tag(n,a)[o](r)}function VF(e,t,n,r){if(!r.length)return;e.tag(n,KP.LengthDelimited).fork();let i=zP(HF(t),2)[1];for(let t=0;t<r.length;t++)e[i](r[t]);e.join()}function HF(e){let t=KP.Varint;switch(e){case K.BYTES:case K.STRING:t=KP.LengthDelimited;break;case K.DOUBLE:case K.FIXED64:case K.SFIXED64:t=KP.Bit64;break;case K.FIXED32:case K.SFIXED32:case K.FLOAT:t=KP.Bit32}let n=K[e].toLowerCase();return[t,n]}function UF(){return{setEnumType:iP,initPartial(e,t){if(e===void 0)return;let n=t.getType();for(let i of n.fields.byMember()){let n=i.localName,a=t,o=e;if(o[n]!=null)switch(i.kind){case`oneof`:let e=o[n].case;if(e===void 0)continue;let t=i.findField(e),s=o[n].value;t&&t.kind==`message`&&!cF(s,t.T)?s=new t.T(s):t&&t.kind===`scalar`&&t.T===K.BYTES&&(s=GF(s)),a[n]={case:e,value:s};break;case`scalar`:case`enum`:let c=o[n];i.T===K.BYTES&&(c=i.repeated?c.map(GF):GF(c)),a[n]=c;break;case`map`:switch(i.V.kind){case`scalar`:case`enum`:if(i.V.T===K.BYTES)for(let e of Object.entries(o[n])){var r=zP(e,2);let t=r[0],i=r[1];a[n][t]=GF(i)}else Object.assign(a[n],o[n]);break;case`message`:let e=i.V.T;for(let t of Object.keys(o[n])){let r=o[n][t];e.fieldWrapper||(r=new e(r)),a[n][t]=r}}break;case`message`:let l=i.T;if(i.repeated)a[n]=o[n].map(e=>cF(e,l)?e:new l(e));else{let e=o[n];a[n]=l.fieldWrapper?l.typeName===`google.protobuf.BytesValue`?GF(e):e:cF(e,l)?e:new l(e)}}}},equals(e,t,n){return t===n?!0:!t||!n?!1:e.fields.byMember().every(e=>{let r=t[e.localName],i=n[e.localName];if(e.repeated){if(r.length!==i.length)return!1;switch(e.kind){case`message`:return r.every((t,n)=>e.T.equals(t,i[n]));case`scalar`:return r.every((t,n)=>TP(e.T,t,i[n]));case`enum`:return r.every((e,t)=>TP(K.INT32,e,i[t]))}throw Error(`repeated cannot contain ${e.kind}`)}switch(e.kind){case`message`:let t=r,n=i;return e.T.fieldWrapper&&(t!==void 0&&!cF(t)&&(t=e.T.fieldWrapper.wrapField(t)),n!==void 0&&!cF(n)&&(n=e.T.fieldWrapper.wrapField(n))),e.T.equals(t,n);case`enum`:return TP(K.INT32,r,i);case`scalar`:return TP(e.T,r,i);case`oneof`:if(r.case!==i.case)return!1;let a=e.findField(r.case);if(a===void 0)return!0;switch(a.kind){case`message`:return a.T.equals(r.value,i.value);case`enum`:return TP(K.INT32,r.value,i.value);case`scalar`:return TP(a.T,r.value,i.value)}throw Error(`oneof cannot contain ${a.kind}`);case`map`:let o=Object.keys(r).concat(Object.keys(i));switch(e.V.kind){case`message`:let t=e.V.T;return o.every(e=>t.equals(r[e],i[e]));case`enum`:return o.every(e=>TP(K.INT32,r[e],i[e]));case`scalar`:let n=e.V.T;return o.every(e=>TP(n,r[e],i[e]))}}})},clone(e){let t=e.getType(),n=new t,r=n;for(let n of t.fields.byMember()){let t=e[n.localName],a;if(n.repeated)a=t.map(WF);else if(n.kind==`map`){a=r[n.localName];for(let e of Object.entries(t)){var i=zP(e,2);let t=i[0],n=i[1];a[t]=WF(n)}}else a=n.kind==`oneof`?n.findField(t.case)?{case:t.case,value:WF(t.value)}:{case:void 0}:WF(t);r[n.localName]=a}for(let n of t.runtime.bin.listUnknownFields(e))t.runtime.bin.onUnknownField(r,n.no,n.wireType,n.data);return n}}}function WF(e){if(e===void 0)return e;if(cF(e))return e.clone();if(e instanceof Uint8Array){let t=new Uint8Array(e.byteLength);return t.set(e),t}return e}function GF(e){return e instanceof Uint8Array?e:new Uint8Array(e)}function KF(e,t,n){return{syntax:e,json:gF(),bin:jF(),util:Object.assign(Object.assign({},UF()),{newFieldList:t,initFields:n}),makeMessageType(e,t,n){return lP(this,e,t,n)},makeEnum:oP,makeEnumType:aP,getEnumType:rP,makeExtension(e,t,n){return YP(this,e,t,n)}}}var qF=class{constructor(e,t){this._fields=e,this._normalizer=t}findJsonName(e){if(!this.jsonNames){let e={};for(let t of this.list())e[t.jsonName]=e[t.name]=t;this.jsonNames=e}return this.jsonNames[e]}find(e){if(!this.numbers){let e={};for(let t of this.list())e[t.no]=t;this.numbers=e}return this.numbers[e]}list(){return this.all||=this._normalizer(this._fields),this.all}byNumber(){return this.numbersAsc||=this.list().concat().sort((e,t)=>e.no-t.no),this.numbersAsc}byMember(){if(!this.members){this.members=[];let e=this.members,t;for(let n of this.list())n.oneof?n.oneof!==t&&(t=n.oneof,e.push(t)):e.push(n)}return this.members}};function JF(e,t){let n=ZF(e);return t?n:nI(tI(n))}function YF(e){return JF(e,!1)}var XF=ZF;function ZF(e){let t=!1,n=[];for(let r=0;r<e.length;r++){let i=e.charAt(r);switch(i){case`_`:t=!0;break;case`0`:case`1`:case`2`:case`3`:case`4`:case`5`:case`6`:case`7`:case`8`:case`9`:n.push(i),t=!1;break;default:t&&(t=!1,i=i.toUpperCase()),n.push(i)}}return n.join(``)}var QF=new Set([`constructor`,`toString`,`toJSON`,`valueOf`]),$F=new Set([`getType`,`clone`,`equals`,`fromBinary`,`fromJson`,`fromJsonString`,`toBinary`,`toJson`,`toJsonString`,`toObject`]),eI=e=>`${e}\$`,tI=e=>$F.has(e)?eI(e):e,nI=e=>QF.has(e)?eI(e):e,rI=class{constructor(e){this.kind=`oneof`,this.repeated=!1,this.packed=!1,this.opt=!1,this.req=!1,this.default=void 0,this.fields=[],this.name=e,this.localName=YF(e)}addField(e){qN(e.oneof===this,`field ${e.name} not one of ${this.name}`),this.fields.push(e)}findField(e){if(!this._lookup){this._lookup=Object.create(null);for(let e=0;e<this.fields.length;e++)this._lookup[this.fields[e].localName]=this.fields[e]}return this._lookup[e]}};function iI(e,t){let n=[],r;for(let t of typeof e==`function`?e():e){let e=t;if(e.localName=JF(t.name,t.oneof!==void 0),e.jsonName=t.jsonName??XF(t.name),e.repeated=t.repeated??!1,t.kind==`scalar`&&(e.L=t.L??wP.BIGINT),e.delimited=t.delimited??!1,e.req=t.req??!1,e.opt=t.opt??!1,t.packed===void 0&&(e.packed=t.kind==`enum`||t.kind==`scalar`&&t.T!=K.BYTES&&t.T!=K.STRING),t.oneof!==void 0){let n=typeof t.oneof==`string`?t.oneof:t.oneof.name;(!r||r.name!=n)&&(r=new rI(n)),e.oneof=r,r.addField(e)}n.push(e)}return n}var q=KF(`proto3`,e=>new qF(e,e=>iI(e)),e=>{for(let t of e.getType().fields.byMember()){if(t.opt)continue;let n=t.localName,r=e;if(t.repeated){r[n]=[];continue}switch(t.kind){case`oneof`:r[n]={case:void 0};break;case`enum`:r[n]=0;break;case`map`:r[n]={};break;case`scalar`:r[n]=EP(t.T,t.L)}}}),aI=class e extends cP{constructor(e){super(),this.seconds=CP.zero,this.nanos=0,q.util.initPartial(e,this)}fromJson(e,t){if(typeof e!=`string`)throw Error(`cannot decode google.protobuf.Timestamp from JSON: ${q.json.debug(e)}`);let n=e.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(?:Z|\.([0-9]{3,9})Z|([+-][0-9][0-9]:[0-9][0-9]))$/);if(!n)throw Error(`cannot decode google.protobuf.Timestamp from JSON: invalid RFC 3339 string`);let r=Date.parse(n[1]+`-`+n[2]+`-`+n[3]+`T`+n[4]+`:`+n[5]+`:`+n[6]+(n[8]?n[8]:`Z`));if(Number.isNaN(r))throw Error(`cannot decode google.protobuf.Timestamp from JSON: invalid RFC 3339 string`);if(r<Date.parse(`0001-01-01T00:00:00Z`)||r>Date.parse(`9999-12-31T23:59:59Z`))throw Error(`cannot decode message google.protobuf.Timestamp from JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive`);return this.seconds=CP.parse(r/1e3),this.nanos=0,n[7]&&(this.nanos=parseInt(`1`+n[7]+`0`.repeat(9-n[7].length))-1e9),this}toJson(e){let t=Number(this.seconds)*1e3;if(t<Date.parse(`0001-01-01T00:00:00Z`)||t>Date.parse(`9999-12-31T23:59:59Z`))throw Error(`cannot encode google.protobuf.Timestamp to JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive`);if(this.nanos<0)throw Error(`cannot encode google.protobuf.Timestamp to JSON: nanos must not be negative`);let n=`Z`;if(this.nanos>0){let e=(this.nanos+1e9).toString().substring(1);n=e.substring(3)===`000000`?`.`+e.substring(0,3)+`Z`:e.substring(6)===`000`?`.`+e.substring(0,6)+`Z`:`.`+e+`Z`}return new Date(t).toISOString().replace(`.000Z`,n)}toDate(){return new Date(Number(this.seconds)*1e3+Math.ceil(this.nanos/1e6))}static now(){return e.fromDate(new Date)}static fromDate(t){let n=t.getTime();return new e({seconds:CP.parse(Math.floor(n/1e3)),nanos:n%1e3*1e6})}static fromBinary(t,n){return new e().fromBinary(t,n)}static fromJson(t,n){return new e().fromJson(t,n)}static fromJsonString(t,n){return new e().fromJsonString(t,n)}static equals(t,n){return q.util.equals(e,t,n)}};aI.runtime=q,aI.typeName=`google.protobuf.Timestamp`,aI.fields=q.util.newFieldList(()=>[{no:1,name:`seconds`,kind:`scalar`,T:3},{no:2,name:`nanos`,kind:`scalar`,T:5}]);var oI=q.makeMessageType(`livekit.MetricsBatch`,()=>[{no:1,name:`timestamp_ms`,kind:`scalar`,T:3},{no:2,name:`normalized_timestamp`,kind:`message`,T:aI},{no:3,name:`str_data`,kind:`scalar`,T:9,repeated:!0},{no:4,name:`time_series`,kind:`message`,T:sI,repeated:!0},{no:5,name:`events`,kind:`message`,T:lI,repeated:!0}]),sI=q.makeMessageType(`livekit.TimeSeriesMetric`,()=>[{no:1,name:`label`,kind:`scalar`,T:13},{no:2,name:`participant_identity`,kind:`scalar`,T:13},{no:3,name:`track_sid`,kind:`scalar`,T:13},{no:4,name:`samples`,kind:`message`,T:cI,repeated:!0},{no:5,name:`rid`,kind:`scalar`,T:13}]),cI=q.makeMessageType(`livekit.MetricSample`,()=>[{no:1,name:`timestamp_ms`,kind:`scalar`,T:3},{no:2,name:`normalized_timestamp`,kind:`message`,T:aI},{no:3,name:`value`,kind:`scalar`,T:2}]),lI=q.makeMessageType(`livekit.EventMetric`,()=>[{no:1,name:`label`,kind:`scalar`,T:13},{no:2,name:`participant_identity`,kind:`scalar`,T:13},{no:3,name:`track_sid`,kind:`scalar`,T:13},{no:4,name:`start_timestamp_ms`,kind:`scalar`,T:3},{no:5,name:`end_timestamp_ms`,kind:`scalar`,T:3,opt:!0},{no:6,name:`normalized_start_timestamp`,kind:`message`,T:aI},{no:7,name:`normalized_end_timestamp`,kind:`message`,T:aI,opt:!0},{no:8,name:`metadata`,kind:`scalar`,T:9},{no:9,name:`rid`,kind:`scalar`,T:13}]),uI=q.makeEnum(`livekit.BackupCodecPolicy`,[{no:0,name:`PREFER_REGRESSION`},{no:1,name:`SIMULCAST`},{no:2,name:`REGRESSION`}]),dI=q.makeEnum(`livekit.TrackType`,[{no:0,name:`AUDIO`},{no:1,name:`VIDEO`},{no:2,name:`DATA`}]),fI=q.makeEnum(`livekit.TrackSource`,[{no:0,name:`UNKNOWN`},{no:1,name:`CAMERA`},{no:2,name:`MICROPHONE`},{no:3,name:`SCREEN_SHARE`},{no:4,name:`SCREEN_SHARE_AUDIO`}]),pI=q.makeEnum(`livekit.VideoQuality`,[{no:0,name:`LOW`},{no:1,name:`MEDIUM`},{no:2,name:`HIGH`},{no:3,name:`OFF`}]),mI=q.makeEnum(`livekit.ConnectionQuality`,[{no:0,name:`POOR`},{no:1,name:`GOOD`},{no:2,name:`EXCELLENT`},{no:3,name:`LOST`}]),hI=q.makeEnum(`livekit.ClientConfigSetting`,[{no:0,name:`UNSET`},{no:1,name:`DISABLED`},{no:2,name:`ENABLED`}]),gI=q.makeEnum(`livekit.DisconnectReason`,[{no:0,name:`UNKNOWN_REASON`},{no:1,name:`CLIENT_INITIATED`},{no:2,name:`DUPLICATE_IDENTITY`},{no:3,name:`SERVER_SHUTDOWN`},{no:4,name:`PARTICIPANT_REMOVED`},{no:5,name:`ROOM_DELETED`},{no:6,name:`STATE_MISMATCH`},{no:7,name:`JOIN_FAILURE`},{no:8,name:`MIGRATION`},{no:9,name:`SIGNAL_CLOSE`},{no:10,name:`ROOM_CLOSED`},{no:11,name:`USER_UNAVAILABLE`},{no:12,name:`USER_REJECTED`},{no:13,name:`SIP_TRUNK_FAILURE`},{no:14,name:`CONNECTION_TIMEOUT`},{no:15,name:`MEDIA_FAILURE`},{no:16,name:`AGENT_ERROR`}]),_I=q.makeEnum(`livekit.ReconnectReason`,[{no:0,name:`RR_UNKNOWN`},{no:1,name:`RR_SIGNAL_DISCONNECTED`},{no:2,name:`RR_PUBLISHER_FAILED`},{no:3,name:`RR_SUBSCRIBER_FAILED`},{no:4,name:`RR_SWITCH_CANDIDATE`}]),vI=q.makeEnum(`livekit.SubscriptionError`,[{no:0,name:`SE_UNKNOWN`},{no:1,name:`SE_CODEC_UNSUPPORTED`},{no:2,name:`SE_TRACK_NOTFOUND`}]),yI=q.makeEnum(`livekit.AudioTrackFeature`,[{no:0,name:`TF_STEREO`},{no:1,name:`TF_NO_DTX`},{no:2,name:`TF_AUTO_GAIN_CONTROL`},{no:3,name:`TF_ECHO_CANCELLATION`},{no:4,name:`TF_NOISE_SUPPRESSION`},{no:5,name:`TF_ENHANCED_NOISE_CANCELLATION`},{no:6,name:`TF_PRECONNECT_BUFFER`}]),bI=q.makeEnum(`livekit.PacketTrailerFeature`,[{no:0,name:`PTF_USER_TIMESTAMP`},{no:1,name:`PTF_FRAME_ID`},{no:2,name:`PTF_USER_DATA`}]),xI=q.makeMessageType(`livekit.Room`,()=>[{no:1,name:`sid`,kind:`scalar`,T:9},{no:2,name:`name`,kind:`scalar`,T:9},{no:3,name:`empty_timeout`,kind:`scalar`,T:13},{no:14,name:`departure_timeout`,kind:`scalar`,T:13},{no:4,name:`max_participants`,kind:`scalar`,T:13},{no:5,name:`creation_time`,kind:`scalar`,T:3},{no:15,name:`creation_time_ms`,kind:`scalar`,T:3},{no:6,name:`turn_password`,kind:`scalar`,T:9},{no:7,name:`enabled_codecs`,kind:`message`,T:SI,repeated:!0},{no:8,name:`metadata`,kind:`scalar`,T:9},{no:9,name:`num_participants`,kind:`scalar`,T:13},{no:11,name:`num_publishers`,kind:`scalar`,T:13},{no:10,name:`active_recording`,kind:`scalar`,T:8},{no:13,name:`version`,kind:`message`,T:uL}]),SI=q.makeMessageType(`livekit.Codec`,()=>[{no:1,name:`mime`,kind:`scalar`,T:9},{no:2,name:`fmtp_line`,kind:`scalar`,T:9}]),CI=q.makeMessageType(`livekit.ParticipantPermission`,()=>[{no:1,name:`can_subscribe`,kind:`scalar`,T:8},{no:2,name:`can_publish`,kind:`scalar`,T:8},{no:3,name:`can_publish_data`,kind:`scalar`,T:8},{no:9,name:`can_publish_sources`,kind:`enum`,T:q.getEnumType(fI),repeated:!0},{no:7,name:`hidden`,kind:`scalar`,T:8},{no:8,name:`recorder`,kind:`scalar`,T:8},{no:10,name:`can_update_metadata`,kind:`scalar`,T:8},{no:11,name:`agent`,kind:`scalar`,T:8},{no:12,name:`can_subscribe_metrics`,kind:`scalar`,T:8},{no:13,name:`can_manage_agent_session`,kind:`scalar`,T:8}]),wI=q.makeMessageType(`livekit.ParticipantInfo`,()=>[{no:1,name:`sid`,kind:`scalar`,T:9},{no:2,name:`identity`,kind:`scalar`,T:9},{no:3,name:`state`,kind:`enum`,T:q.getEnumType(TI)},{no:4,name:`tracks`,kind:`message`,T:AI,repeated:!0},{no:5,name:`metadata`,kind:`scalar`,T:9},{no:6,name:`joined_at`,kind:`scalar`,T:3},{no:17,name:`joined_at_ms`,kind:`scalar`,T:3},{no:9,name:`name`,kind:`scalar`,T:9},{no:10,name:`version`,kind:`scalar`,T:13},{no:11,name:`permission`,kind:`message`,T:CI},{no:12,name:`region`,kind:`scalar`,T:9},{no:13,name:`is_publisher`,kind:`scalar`,T:8},{no:14,name:`kind`,kind:`enum`,T:q.getEnumType(EI)},{no:15,name:`attributes`,kind:`map`,K:9,V:{kind:`scalar`,T:9}},{no:16,name:`disconnect_reason`,kind:`enum`,T:q.getEnumType(gI)},{no:18,name:`kind_details`,kind:`enum`,T:q.getEnumType(DI),repeated:!0},{no:19,name:`data_tracks`,kind:`message`,T:jI,repeated:!0},{no:20,name:`client_protocol`,kind:`scalar`,T:5},{no:21,name:`capabilities`,kind:`enum`,T:q.getEnumType(oL),repeated:!0}]),TI=q.makeEnum(`livekit.ParticipantInfo.State`,[{no:0,name:`JOINING`},{no:1,name:`JOINED`},{no:2,name:`ACTIVE`},{no:3,name:`DISCONNECTED`}]),EI=q.makeEnum(`livekit.ParticipantInfo.Kind`,[{no:0,name:`STANDARD`},{no:1,name:`INGRESS`},{no:2,name:`EGRESS`},{no:3,name:`SIP`},{no:4,name:`AGENT`},{no:7,name:`CONNECTOR`},{no:8,name:`BRIDGE`}]),DI=q.makeEnum(`livekit.ParticipantInfo.KindDetail`,[{no:0,name:`CLOUD_AGENT`},{no:1,name:`FORWARDED`},{no:2,name:`CONNECTOR_WHATSAPP`},{no:3,name:`CONNECTOR_TWILIO`},{no:4,name:`BRIDGE_RTSP`},{no:5,name:`SIMULATION`}]),OI=q.makeEnum(`livekit.Encryption.Type`,[{no:0,name:`NONE`},{no:1,name:`GCM`},{no:2,name:`CUSTOM`}]),kI=q.makeMessageType(`livekit.SimulcastCodecInfo`,()=>[{no:1,name:`mime_type`,kind:`scalar`,T:9},{no:2,name:`mid`,kind:`scalar`,T:9},{no:3,name:`cid`,kind:`scalar`,T:9},{no:4,name:`layers`,kind:`message`,T:BI,repeated:!0},{no:5,name:`video_layer_mode`,kind:`enum`,T:q.getEnumType(VI)},{no:6,name:`sdp_cid`,kind:`scalar`,T:9}]),AI=q.makeMessageType(`livekit.TrackInfo`,()=>[{no:1,name:`sid`,kind:`scalar`,T:9},{no:2,name:`type`,kind:`enum`,T:q.getEnumType(dI)},{no:3,name:`name`,kind:`scalar`,T:9},{no:4,name:`muted`,kind:`scalar`,T:8},{no:5,name:`width`,kind:`scalar`,T:13},{no:6,name:`height`,kind:`scalar`,T:13},{no:7,name:`simulcast`,kind:`scalar`,T:8},{no:8,name:`disable_dtx`,kind:`scalar`,T:8},{no:9,name:`source`,kind:`enum`,T:q.getEnumType(fI)},{no:10,name:`layers`,kind:`message`,T:BI,repeated:!0},{no:11,name:`mime_type`,kind:`scalar`,T:9},{no:12,name:`mid`,kind:`scalar`,T:9},{no:13,name:`codecs`,kind:`message`,T:kI,repeated:!0},{no:14,name:`stereo`,kind:`scalar`,T:8},{no:15,name:`disable_red`,kind:`scalar`,T:8},{no:16,name:`encryption`,kind:`enum`,T:q.getEnumType(OI)},{no:17,name:`stream`,kind:`scalar`,T:9},{no:18,name:`version`,kind:`message`,T:uL},{no:19,name:`audio_features`,kind:`enum`,T:q.getEnumType(yI),repeated:!0},{no:20,name:`backup_codec_policy`,kind:`enum`,T:q.getEnumType(uI)},{no:21,name:`packet_trailer_features`,kind:`enum`,T:q.getEnumType(bI),repeated:!0}]),jI=q.makeMessageType(`livekit.DataTrackInfo`,()=>[{no:1,name:`pub_handle`,kind:`scalar`,T:13},{no:2,name:`sid`,kind:`scalar`,T:9},{no:3,name:`name`,kind:`scalar`,T:9},{no:4,name:`encryption`,kind:`enum`,T:q.getEnumType(OI)},{no:5,name:`frame_encoding`,kind:`message`,T:MI,opt:!0},{no:6,name:`schema`,kind:`message`,T:II,opt:!0}]),MI=q.makeMessageType(`livekit.DataTrackFrameEncoding`,()=>[{no:1,name:`well_known`,kind:`enum`,T:q.getEnumType(NI),oneof:`value`},{no:2,name:`custom`,kind:`scalar`,T:9,oneof:`value`}]),NI=q.makeEnum(`livekit.DataTrackFrameEncoding.WellKnownFrameEncoding`,[{no:0,name:`WELL_KNOWN_FRAME_ENCODING_UNSPECIFIED`,localName:`UNSPECIFIED`},{no:1,name:`WELL_KNOWN_FRAME_ENCODING_ROS1`,localName:`ROS1`},{no:2,name:`WELL_KNOWN_FRAME_ENCODING_CDR`,localName:`CDR`},{no:3,name:`WELL_KNOWN_FRAME_ENCODING_PROTOBUF`,localName:`PROTOBUF`},{no:4,name:`WELL_KNOWN_FRAME_ENCODING_FLATBUFFER`,localName:`FLATBUFFER`},{no:5,name:`WELL_KNOWN_FRAME_ENCODING_CBOR`,localName:`CBOR`},{no:6,name:`WELL_KNOWN_FRAME_ENCODING_MSGPACK`,localName:`MSGPACK`},{no:7,name:`WELL_KNOWN_FRAME_ENCODING_JSON`,localName:`JSON`}]),PI=q.makeMessageType(`livekit.DataTrackSchemaEncoding`,()=>[{no:1,name:`well_known`,kind:`enum`,T:q.getEnumType(FI),oneof:`value`},{no:2,name:`custom`,kind:`scalar`,T:9,oneof:`value`}]),FI=q.makeEnum(`livekit.DataTrackSchemaEncoding.WellKnownSchemaEncoding`,[{no:0,name:`WELL_KNOWN_SCHEMA_ENCODING_UNSPECIFIED`,localName:`UNSPECIFIED`},{no:1,name:`WELL_KNOWN_SCHEMA_ENCODING_PROTOBUF`,localName:`PROTOBUF`},{no:2,name:`WELL_KNOWN_SCHEMA_ENCODING_FLATBUFFER`,localName:`FLATBUFFER`},{no:3,name:`WELL_KNOWN_SCHEMA_ENCODING_ROS1_MSG`,localName:`ROS1_MSG`},{no:4,name:`WELL_KNOWN_SCHEMA_ENCODING_ROS2_MSG`,localName:`ROS2_MSG`},{no:5,name:`WELL_KNOWN_SCHEMA_ENCODING_ROS2_IDL`,localName:`ROS2_IDL`},{no:6,name:`WELL_KNOWN_SCHEMA_ENCODING_OMG_IDL`,localName:`OMG_IDL`},{no:7,name:`WELL_KNOWN_SCHEMA_ENCODING_JSON_SCHEMA`,localName:`JSON_SCHEMA`}]),II=q.makeMessageType(`livekit.DataTrackSchemaId`,()=>[{no:1,name:`name`,kind:`scalar`,T:9},{no:2,name:`encoding`,kind:`message`,T:PI}]),LI=q.makeMessageType(`livekit.DataTrackSubscriptionOptions`,()=>[{no:1,name:`target_fps`,kind:`scalar`,T:13,opt:!0}]),RI=q.makeMessageType(`livekit.DataBlobKey`,()=>[{no:1,name:`generic`,kind:`scalar`,T:9,oneof:`key`},{no:2,name:`schema_id`,kind:`message`,T:II,oneof:`key`}]),zI=q.makeMessageType(`livekit.DataBlob`,()=>[{no:1,name:`key`,kind:`message`,T:RI},{no:2,name:`contents`,kind:`scalar`,T:12}]),BI=q.makeMessageType(`livekit.VideoLayer`,()=>[{no:1,name:`quality`,kind:`enum`,T:q.getEnumType(pI)},{no:2,name:`width`,kind:`scalar`,T:13},{no:3,name:`height`,kind:`scalar`,T:13},{no:4,name:`bitrate`,kind:`scalar`,T:13},{no:5,name:`ssrc`,kind:`scalar`,T:13},{no:6,name:`spatial_layer`,kind:`scalar`,T:5},{no:7,name:`rid`,kind:`scalar`,T:9},{no:8,name:`repair_ssrc`,kind:`scalar`,T:13}]),VI=q.makeEnum(`livekit.VideoLayer.Mode`,[{no:0,name:`MODE_UNUSED`},{no:1,name:`ONE_SPATIAL_LAYER_PER_STREAM`},{no:2,name:`MULTIPLE_SPATIAL_LAYERS_PER_STREAM`},{no:3,name:`ONE_SPATIAL_LAYER_PER_STREAM_INCOMPLETE_RTCP_SR`}]),HI=q.makeMessageType(`livekit.DataPacket`,()=>[{no:1,name:`kind`,kind:`enum`,T:q.getEnumType(UI)},{no:4,name:`participant_identity`,kind:`scalar`,T:9},{no:5,name:`destination_identities`,kind:`scalar`,T:9,repeated:!0},{no:2,name:`user`,kind:`message`,T:JI,oneof:`value`},{no:3,name:`speaker`,kind:`message`,T:KI,oneof:`value`},{no:6,name:`sip_dtmf`,kind:`message`,T:YI,oneof:`value`},{no:7,name:`transcription`,kind:`message`,T:cee,oneof:`value`},{no:8,name:`metrics`,kind:`message`,T:oI,oneof:`value`},{no:9,name:`chat_message`,kind:`message`,T:XI,oneof:`value`},{no:10,name:`rpc_request`,kind:`message`,T:ZI,oneof:`value`},{no:11,name:`rpc_ack`,kind:`message`,T:QI,oneof:`value`},{no:12,name:`rpc_response`,kind:`message`,T:$I,oneof:`value`},{no:13,name:`stream_header`,kind:`message`,T:hL,oneof:`value`},{no:14,name:`stream_chunk`,kind:`message`,T:gL,oneof:`value`},{no:15,name:`stream_trailer`,kind:`message`,T:_L,oneof:`value`},{no:18,name:`encrypted_packet`,kind:`message`,T:WI,oneof:`value`},{no:16,name:`sequence`,kind:`scalar`,T:13},{no:17,name:`participant_sid`,kind:`scalar`,T:9}]),UI=q.makeEnum(`livekit.DataPacket.Kind`,[{no:0,name:`RELIABLE`},{no:1,name:`LOSSY`}]),WI=q.makeMessageType(`livekit.EncryptedPacket`,()=>[{no:1,name:`encryption_type`,kind:`enum`,T:q.getEnumType(OI)},{no:2,name:`iv`,kind:`scalar`,T:12},{no:3,name:`key_index`,kind:`scalar`,T:13},{no:4,name:`encrypted_value`,kind:`scalar`,T:12}]),GI=q.makeMessageType(`livekit.EncryptedPacketPayload`,()=>[{no:1,name:`user`,kind:`message`,T:JI,oneof:`value`},{no:3,name:`chat_message`,kind:`message`,T:XI,oneof:`value`},{no:4,name:`rpc_request`,kind:`message`,T:ZI,oneof:`value`},{no:5,name:`rpc_ack`,kind:`message`,T:QI,oneof:`value`},{no:6,name:`rpc_response`,kind:`message`,T:$I,oneof:`value`},{no:7,name:`stream_header`,kind:`message`,T:hL,oneof:`value`},{no:8,name:`stream_chunk`,kind:`message`,T:gL,oneof:`value`},{no:9,name:`stream_trailer`,kind:`message`,T:_L,oneof:`value`}]),KI=q.makeMessageType(`livekit.ActiveSpeakerUpdate`,()=>[{no:1,name:`speakers`,kind:`message`,T:qI,repeated:!0}]),qI=q.makeMessageType(`livekit.SpeakerInfo`,()=>[{no:1,name:`sid`,kind:`scalar`,T:9},{no:2,name:`level`,kind:`scalar`,T:2},{no:3,name:`active`,kind:`scalar`,T:8}]),JI=q.makeMessageType(`livekit.UserPacket`,()=>[{no:1,name:`participant_sid`,kind:`scalar`,T:9},{no:5,name:`participant_identity`,kind:`scalar`,T:9},{no:2,name:`payload`,kind:`scalar`,T:12},{no:3,name:`destination_sids`,kind:`scalar`,T:9,repeated:!0},{no:6,name:`destination_identities`,kind:`scalar`,T:9,repeated:!0},{no:4,name:`topic`,kind:`scalar`,T:9,opt:!0},{no:8,name:`id`,kind:`scalar`,T:9,opt:!0},{no:9,name:`start_time`,kind:`scalar`,T:4,opt:!0},{no:10,name:`end_time`,kind:`scalar`,T:4,opt:!0},{no:11,name:`nonce`,kind:`scalar`,T:12}]),YI=q.makeMessageType(`livekit.SipDTMF`,()=>[{no:3,name:`code`,kind:`scalar`,T:13},{no:4,name:`digit`,kind:`scalar`,T:9}]),cee=q.makeMessageType(`livekit.Transcription`,()=>[{no:2,name:`transcribed_participant_identity`,kind:`scalar`,T:9},{no:3,name:`track_id`,kind:`scalar`,T:9},{no:4,name:`segments`,kind:`message`,T:lee,repeated:!0}]),lee=q.makeMessageType(`livekit.TranscriptionSegment`,()=>[{no:1,name:`id`,kind:`scalar`,T:9},{no:2,name:`text`,kind:`scalar`,T:9},{no:3,name:`start_time`,kind:`scalar`,T:4},{no:4,name:`end_time`,kind:`scalar`,T:4},{no:5,name:`final`,kind:`scalar`,T:8},{no:6,name:`language`,kind:`scalar`,T:9}]),XI=q.makeMessageType(`livekit.ChatMessage`,()=>[{no:1,name:`id`,kind:`scalar`,T:9},{no:2,name:`timestamp`,kind:`scalar`,T:3},{no:3,name:`edit_timestamp`,kind:`scalar`,T:3,opt:!0},{no:4,name:`message`,kind:`scalar`,T:9},{no:5,name:`deleted`,kind:`scalar`,T:8},{no:6,name:`generated`,kind:`scalar`,T:8}]),ZI=q.makeMessageType(`livekit.RpcRequest`,()=>[{no:1,name:`id`,kind:`scalar`,T:9},{no:2,name:`method`,kind:`scalar`,T:9},{no:3,name:`payload`,kind:`scalar`,T:9},{no:4,name:`response_timeout_ms`,kind:`scalar`,T:13},{no:5,name:`version`,kind:`scalar`,T:13},{no:6,name:`compressed_payload`,kind:`scalar`,T:12}]),QI=q.makeMessageType(`livekit.RpcAck`,()=>[{no:1,name:`request_id`,kind:`scalar`,T:9}]),$I=q.makeMessageType(`livekit.RpcResponse`,()=>[{no:1,name:`request_id`,kind:`scalar`,T:9},{no:2,name:`payload`,kind:`scalar`,T:9,oneof:`value`},{no:3,name:`error`,kind:`message`,T:eL,oneof:`value`},{no:4,name:`compressed_payload`,kind:`scalar`,T:12,oneof:`value`}]),eL=q.makeMessageType(`livekit.RpcError`,()=>[{no:1,name:`code`,kind:`scalar`,T:13},{no:2,name:`message`,kind:`scalar`,T:9},{no:3,name:`data`,kind:`scalar`,T:9}]),tL=q.makeMessageType(`livekit.ParticipantTracks`,()=>[{no:1,name:`participant_sid`,kind:`scalar`,T:9},{no:2,name:`track_sids`,kind:`scalar`,T:9,repeated:!0}]),nL=q.makeMessageType(`livekit.ServerInfo`,()=>[{no:1,name:`edition`,kind:`enum`,T:q.getEnumType(rL)},{no:2,name:`version`,kind:`scalar`,T:9},{no:3,name:`protocol`,kind:`scalar`,T:5},{no:4,name:`region`,kind:`scalar`,T:9},{no:5,name:`node_id`,kind:`scalar`,T:9},{no:6,name:`debug_info`,kind:`scalar`,T:9},{no:7,name:`agent_protocol`,kind:`scalar`,T:5}]),rL=q.makeEnum(`livekit.ServerInfo.Edition`,[{no:0,name:`Standard`},{no:1,name:`Cloud`}]),iL=q.makeMessageType(`livekit.ClientInfo`,()=>[{no:1,name:`sdk`,kind:`enum`,T:q.getEnumType(aL)},{no:2,name:`version`,kind:`scalar`,T:9},{no:3,name:`protocol`,kind:`scalar`,T:5},{no:4,name:`os`,kind:`scalar`,T:9},{no:5,name:`os_version`,kind:`scalar`,T:9},{no:6,name:`device_model`,kind:`scalar`,T:9},{no:7,name:`browser`,kind:`scalar`,T:9},{no:8,name:`browser_version`,kind:`scalar`,T:9},{no:9,name:`address`,kind:`scalar`,T:9},{no:10,name:`network`,kind:`scalar`,T:9},{no:11,name:`other_sdks`,kind:`scalar`,T:9},{no:12,name:`client_protocol`,kind:`scalar`,T:5},{no:13,name:`capabilities`,kind:`enum`,T:q.getEnumType(oL),repeated:!0}]),aL=q.makeEnum(`livekit.ClientInfo.SDK`,[{no:0,name:`UNKNOWN`},{no:1,name:`JS`},{no:2,name:`SWIFT`},{no:3,name:`ANDROID`},{no:4,name:`FLUTTER`},{no:5,name:`GO`},{no:6,name:`UNITY`},{no:7,name:`REACT_NATIVE`},{no:8,name:`RUST`},{no:9,name:`PYTHON`},{no:10,name:`CPP`},{no:11,name:`UNITY_WEB`},{no:12,name:`NODE`},{no:13,name:`UNREAL`},{no:14,name:`ESP32`}]),oL=q.makeEnum(`livekit.ClientInfo.Capability`,[{no:0,name:`CAP_UNUSED`},{no:1,name:`CAP_PACKET_TRAILER`},{no:2,name:`CAP_COMPRESSION_DEFLATE_RAW`}]),sL=q.makeMessageType(`livekit.ClientConfiguration`,()=>[{no:1,name:`video`,kind:`message`,T:cL},{no:2,name:`screen`,kind:`message`,T:cL},{no:3,name:`resume_connection`,kind:`enum`,T:q.getEnumType(hI)},{no:4,name:`disabled_codecs`,kind:`message`,T:lL},{no:5,name:`force_relay`,kind:`enum`,T:q.getEnumType(hI)}]),cL=q.makeMessageType(`livekit.VideoConfiguration`,()=>[{no:1,name:`hardware_encoder`,kind:`enum`,T:q.getEnumType(hI)}]),lL=q.makeMessageType(`livekit.DisabledCodecs`,()=>[{no:1,name:`codecs`,kind:`message`,T:SI,repeated:!0},{no:2,name:`publish`,kind:`message`,T:SI,repeated:!0}]),uL=q.makeMessageType(`livekit.TimedVersion`,()=>[{no:1,name:`unix_micro`,kind:`scalar`,T:3},{no:2,name:`ticks`,kind:`scalar`,T:5}]),dL=q.makeEnum(`livekit.DataStream.OperationType`,[{no:0,name:`CREATE`},{no:1,name:`UPDATE`},{no:2,name:`DELETE`},{no:3,name:`REACTION`}]),fL=q.makeEnum(`livekit.DataStream.CompressionType`,[{no:0,name:`NONE`},{no:1,name:`DEFLATE_RAW`}]),pL=q.makeMessageType(`livekit.DataStream.TextHeader`,()=>[{no:1,name:`operation_type`,kind:`enum`,T:q.getEnumType(dL)},{no:2,name:`version`,kind:`scalar`,T:5},{no:3,name:`reply_to_stream_id`,kind:`scalar`,T:9},{no:4,name:`attached_stream_ids`,kind:`scalar`,T:9,repeated:!0},{no:5,name:`generated`,kind:`scalar`,T:8}],{localName:`DataStream_TextHeader`}),mL=q.makeMessageType(`livekit.DataStream.ByteHeader`,()=>[{no:1,name:`name`,kind:`scalar`,T:9}],{localName:`DataStream_ByteHeader`}),hL=q.makeMessageType(`livekit.DataStream.Header`,()=>[{no:1,name:`stream_id`,kind:`scalar`,T:9},{no:2,name:`timestamp`,kind:`scalar`,T:3},{no:3,name:`topic`,kind:`scalar`,T:9},{no:4,name:`mime_type`,kind:`scalar`,T:9},{no:5,name:`total_length`,kind:`scalar`,T:4,opt:!0},{no:7,name:`encryption_type`,kind:`enum`,T:q.getEnumType(OI)},{no:8,name:`attributes`,kind:`map`,K:9,V:{kind:`scalar`,T:9}},{no:9,name:`text_header`,kind:`message`,T:pL,oneof:`content_header`},{no:10,name:`byte_header`,kind:`message`,T:mL,oneof:`content_header`},{no:11,name:`inline_content`,kind:`scalar`,T:12,opt:!0},{no:12,name:`compression`,kind:`enum`,T:q.getEnumType(fL)}],{localName:`DataStream_Header`}),gL=q.makeMessageType(`livekit.DataStream.Chunk`,()=>[{no:1,name:`stream_id`,kind:`scalar`,T:9},{no:2,name:`chunk_index`,kind:`scalar`,T:4},{no:3,name:`content`,kind:`scalar`,T:12},{no:4,name:`version`,kind:`scalar`,T:5},{no:5,name:`iv`,kind:`scalar`,T:12,opt:!0}],{localName:`DataStream_Chunk`}),_L=q.makeMessageType(`livekit.DataStream.Trailer`,()=>[{no:1,name:`stream_id`,kind:`scalar`,T:9},{no:2,name:`reason`,kind:`scalar`,T:9},{no:3,name:`attributes`,kind:`map`,K:9,V:{kind:`scalar`,T:9}}],{localName:`DataStream_Trailer`}),vL=q.makeMessageType(`livekit.SubscribedAudioCodec`,()=>[{no:1,name:`codec`,kind:`scalar`,T:9},{no:2,name:`enabled`,kind:`scalar`,T:8}]),yL=q.makeEnum(`livekit.SignalTarget`,[{no:0,name:`PUBLISHER`},{no:1,name:`SUBSCRIBER`}]),bL=q.makeEnum(`livekit.StreamState`,[{no:0,name:`ACTIVE`},{no:1,name:`PAUSED`}]),xL=q.makeEnum(`livekit.CandidateProtocol`,[{no:0,name:`UDP`},{no:1,name:`TCP`},{no:2,name:`TLS`}]),SL=q.makeMessageType(`livekit.SignalRequest`,()=>[{no:1,name:`offer`,kind:`message`,T:RL,oneof:`message`},{no:2,name:`answer`,kind:`message`,T:RL,oneof:`message`},{no:3,name:`trickle`,kind:`message`,T:ML,oneof:`message`},{no:4,name:`add_track`,kind:`message`,T:TL,oneof:`message`},{no:5,name:`mute`,kind:`message`,T:NL,oneof:`message`},{no:6,name:`subscription`,kind:`message`,T:BL,oneof:`message`},{no:7,name:`track_setting`,kind:`message`,T:qL,oneof:`message`},{no:8,name:`leave`,kind:`message`,T:XL,oneof:`message`},{no:10,name:`update_layers`,kind:`message`,T:QL,oneof:`message`},{no:11,name:`subscription_permission`,kind:`message`,T:fR,oneof:`message`},{no:12,name:`sync_state`,kind:`message`,T:hR,oneof:`message`},{no:13,name:`simulate`,kind:`message`,T:vR,oneof:`message`},{no:14,name:`ping`,kind:`scalar`,T:3,oneof:`message`},{no:15,name:`update_metadata`,kind:`message`,T:$L,oneof:`message`},{no:16,name:`ping_req`,kind:`message`,T:yR,oneof:`message`},{no:17,name:`update_audio_track`,kind:`message`,T:JL,oneof:`message`},{no:18,name:`update_video_track`,kind:`message`,T:YL,oneof:`message`},{no:19,name:`publish_data_track_request`,kind:`message`,T:EL,oneof:`message`},{no:20,name:`unpublish_data_track_request`,kind:`message`,T:OL,oneof:`message`},{no:21,name:`update_data_subscription`,kind:`message`,T:VL,oneof:`message`},{no:22,name:`store_data_blob_request`,kind:`message`,T:UL,oneof:`message`},{no:23,name:`get_data_blob_request`,kind:`message`,T:GL,oneof:`message`}]),CL=q.makeMessageType(`livekit.SignalResponse`,()=>[{no:1,name:`join`,kind:`message`,T:PL,oneof:`message`},{no:2,name:`answer`,kind:`message`,T:RL,oneof:`message`},{no:3,name:`offer`,kind:`message`,T:RL,oneof:`message`},{no:4,name:`trickle`,kind:`message`,T:ML,oneof:`message`},{no:5,name:`update`,kind:`message`,T:zL,oneof:`message`},{no:6,name:`track_published`,kind:`message`,T:IL,oneof:`message`},{no:8,name:`leave`,kind:`message`,T:XL,oneof:`message`},{no:9,name:`mute`,kind:`message`,T:NL,oneof:`message`},{no:10,name:`speakers_changed`,kind:`message`,T:tR,oneof:`message`},{no:11,name:`room_update`,kind:`message`,T:nR,oneof:`message`},{no:12,name:`connection_quality`,kind:`message`,T:iR,oneof:`message`},{no:13,name:`stream_state_update`,kind:`message`,T:oR,oneof:`message`},{no:14,name:`subscribed_quality_update`,kind:`message`,T:lR,oneof:`message`},{no:15,name:`subscription_permission_update`,kind:`message`,T:pR,oneof:`message`},{no:16,name:`refresh_token`,kind:`scalar`,T:9,oneof:`message`},{no:17,name:`track_unpublished`,kind:`message`,T:LL,oneof:`message`},{no:18,name:`pong`,kind:`scalar`,T:3,oneof:`message`},{no:19,name:`reconnect`,kind:`message`,T:FL,oneof:`message`},{no:20,name:`pong_resp`,kind:`message`,T:bR,oneof:`message`},{no:21,name:`subscription_response`,kind:`message`,T:CR,oneof:`message`},{no:22,name:`request_response`,kind:`message`,T:wR,oneof:`message`},{no:23,name:`track_subscribed`,kind:`message`,T:ER,oneof:`message`},{no:24,name:`room_moved`,kind:`message`,T:mR,oneof:`message`},{no:25,name:`media_sections_requirement`,kind:`message`,T:jR,oneof:`message`},{no:26,name:`subscribed_audio_codec_update`,kind:`message`,T:uR,oneof:`message`},{no:27,name:`publish_data_track_response`,kind:`message`,T:DL,oneof:`message`},{no:28,name:`unpublish_data_track_response`,kind:`message`,T:kL,oneof:`message`},{no:29,name:`data_track_subscriber_handles`,kind:`message`,T:AL,oneof:`message`},{no:30,name:`store_data_blob_response`,kind:`message`,T:WL,oneof:`message`},{no:31,name:`get_data_blob_response`,kind:`message`,T:KL,oneof:`message`}]),wL=q.makeMessageType(`livekit.SimulcastCodec`,()=>[{no:1,name:`codec`,kind:`scalar`,T:9},{no:2,name:`cid`,kind:`scalar`,T:9},{no:4,name:`layers`,kind:`message`,T:BI,repeated:!0},{no:5,name:`video_layer_mode`,kind:`enum`,T:q.getEnumType(VI)}]),TL=q.makeMessageType(`livekit.AddTrackRequest`,()=>[{no:1,name:`cid`,kind:`scalar`,T:9},{no:2,name:`name`,kind:`scalar`,T:9},{no:3,name:`type`,kind:`enum`,T:q.getEnumType(dI)},{no:4,name:`width`,kind:`scalar`,T:13},{no:5,name:`height`,kind:`scalar`,T:13},{no:6,name:`muted`,kind:`scalar`,T:8},{no:7,name:`disable_dtx`,kind:`scalar`,T:8},{no:8,name:`source`,kind:`enum`,T:q.getEnumType(fI)},{no:9,name:`layers`,kind:`message`,T:BI,repeated:!0},{no:10,name:`simulcast_codecs`,kind:`message`,T:wL,repeated:!0},{no:11,name:`sid`,kind:`scalar`,T:9},{no:12,name:`stereo`,kind:`scalar`,T:8},{no:13,name:`disable_red`,kind:`scalar`,T:8},{no:14,name:`encryption`,kind:`enum`,T:q.getEnumType(OI)},{no:15,name:`stream`,kind:`scalar`,T:9},{no:16,name:`backup_codec_policy`,kind:`enum`,T:q.getEnumType(uI)},{no:17,name:`audio_features`,kind:`enum`,T:q.getEnumType(yI),repeated:!0},{no:18,name:`packet_trailer_features`,kind:`enum`,T:q.getEnumType(bI),repeated:!0}]),EL=q.makeMessageType(`livekit.PublishDataTrackRequest`,()=>[{no:1,name:`pub_handle`,kind:`scalar`,T:13},{no:2,name:`name`,kind:`scalar`,T:9},{no:3,name:`encryption`,kind:`enum`,T:q.getEnumType(OI)},{no:4,name:`frame_encoding`,kind:`message`,T:MI,opt:!0},{no:5,name:`schema`,kind:`message`,T:II,opt:!0}]),DL=q.makeMessageType(`livekit.PublishDataTrackResponse`,()=>[{no:1,name:`info`,kind:`message`,T:jI}]),OL=q.makeMessageType(`livekit.UnpublishDataTrackRequest`,()=>[{no:1,name:`pub_handle`,kind:`scalar`,T:13}]),kL=q.makeMessageType(`livekit.UnpublishDataTrackResponse`,()=>[{no:1,name:`info`,kind:`message`,T:jI}]),AL=q.makeMessageType(`livekit.DataTrackSubscriberHandles`,()=>[{no:1,name:`sub_handles`,kind:`map`,K:13,V:{kind:`message`,T:jL}}]),jL=q.makeMessageType(`livekit.DataTrackSubscriberHandles.PublishedDataTrack`,()=>[{no:1,name:`publisher_identity`,kind:`scalar`,T:9},{no:2,name:`publisher_sid`,kind:`scalar`,T:9},{no:3,name:`track_sid`,kind:`scalar`,T:9}],{localName:`DataTrackSubscriberHandles_PublishedDataTrack`}),ML=q.makeMessageType(`livekit.TrickleRequest`,()=>[{no:1,name:`candidateInit`,kind:`scalar`,T:9},{no:2,name:`target`,kind:`enum`,T:q.getEnumType(yL)},{no:3,name:`final`,kind:`scalar`,T:8}]),NL=q.makeMessageType(`livekit.MuteTrackRequest`,()=>[{no:1,name:`sid`,kind:`scalar`,T:9},{no:2,name:`muted`,kind:`scalar`,T:8}]),PL=q.makeMessageType(`livekit.JoinResponse`,()=>[{no:1,name:`room`,kind:`message`,T:xI},{no:2,name:`participant`,kind:`message`,T:wI},{no:3,name:`other_participants`,kind:`message`,T:wI,repeated:!0},{no:4,name:`server_version`,kind:`scalar`,T:9},{no:5,name:`ice_servers`,kind:`message`,T:eR,repeated:!0},{no:6,name:`subscriber_primary`,kind:`scalar`,T:8},{no:7,name:`alternative_url`,kind:`scalar`,T:9},{no:8,name:`client_configuration`,kind:`message`,T:sL},{no:9,name:`server_region`,kind:`scalar`,T:9},{no:10,name:`ping_timeout`,kind:`scalar`,T:5},{no:11,name:`ping_interval`,kind:`scalar`,T:5},{no:12,name:`server_info`,kind:`message`,T:nL},{no:13,name:`sif_trailer`,kind:`scalar`,T:12},{no:14,name:`enabled_publish_codecs`,kind:`message`,T:SI,repeated:!0},{no:15,name:`fast_publish`,kind:`scalar`,T:8}]),FL=q.makeMessageType(`livekit.ReconnectResponse`,()=>[{no:1,name:`ice_servers`,kind:`message`,T:eR,repeated:!0},{no:2,name:`client_configuration`,kind:`message`,T:sL},{no:3,name:`server_info`,kind:`message`,T:nL},{no:4,name:`last_message_seq`,kind:`scalar`,T:13}]),IL=q.makeMessageType(`livekit.TrackPublishedResponse`,()=>[{no:1,name:`cid`,kind:`scalar`,T:9},{no:2,name:`track`,kind:`message`,T:AI}]),LL=q.makeMessageType(`livekit.TrackUnpublishedResponse`,()=>[{no:1,name:`track_sid`,kind:`scalar`,T:9}]),RL=q.makeMessageType(`livekit.SessionDescription`,()=>[{no:1,name:`type`,kind:`scalar`,T:9},{no:2,name:`sdp`,kind:`scalar`,T:9},{no:3,name:`id`,kind:`scalar`,T:13},{no:4,name:`mid_to_track_id`,kind:`map`,K:9,V:{kind:`scalar`,T:9}}]),zL=q.makeMessageType(`livekit.ParticipantUpdate`,()=>[{no:1,name:`participants`,kind:`message`,T:wI,repeated:!0}]),BL=q.makeMessageType(`livekit.UpdateSubscription`,()=>[{no:1,name:`track_sids`,kind:`scalar`,T:9,repeated:!0},{no:2,name:`subscribe`,kind:`scalar`,T:8},{no:3,name:`participant_tracks`,kind:`message`,T:tL,repeated:!0}]),VL=q.makeMessageType(`livekit.UpdateDataSubscription`,()=>[{no:1,name:`updates`,kind:`message`,T:HL,repeated:!0}]),HL=q.makeMessageType(`livekit.UpdateDataSubscription.Update`,()=>[{no:1,name:`track_sid`,kind:`scalar`,T:9},{no:2,name:`subscribe`,kind:`scalar`,T:8},{no:3,name:`options`,kind:`message`,T:LI}],{localName:`UpdateDataSubscription_Update`}),UL=q.makeMessageType(`livekit.StoreDataBlobRequest`,()=>[{no:1,name:`request_id`,kind:`scalar`,T:13},{no:2,name:`blob`,kind:`message`,T:zI}]),WL=q.makeMessageType(`livekit.StoreDataBlobResponse`,()=>[{no:1,name:`request_id`,kind:`scalar`,T:13},{no:2,name:`key`,kind:`message`,T:RI}]),GL=q.makeMessageType(`livekit.GetDataBlobRequest`,()=>[{no:1,name:`request_id`,kind:`scalar`,T:13},{no:2,name:`participant_identity`,kind:`scalar`,T:9},{no:3,name:`key`,kind:`message`,T:RI}]),KL=q.makeMessageType(`livekit.GetDataBlobResponse`,()=>[{no:1,name:`request_id`,kind:`scalar`,T:13},{no:2,name:`blob`,kind:`message`,T:zI}]),qL=q.makeMessageType(`livekit.UpdateTrackSettings`,()=>[{no:1,name:`track_sids`,kind:`scalar`,T:9,repeated:!0},{no:3,name:`disabled`,kind:`scalar`,T:8},{no:4,name:`quality`,kind:`enum`,T:q.getEnumType(pI)},{no:5,name:`width`,kind:`scalar`,T:13},{no:6,name:`height`,kind:`scalar`,T:13},{no:7,name:`fps`,kind:`scalar`,T:13},{no:8,name:`priority`,kind:`scalar`,T:13}]),JL=q.makeMessageType(`livekit.UpdateLocalAudioTrack`,()=>[{no:1,name:`track_sid`,kind:`scalar`,T:9},{no:2,name:`features`,kind:`enum`,T:q.getEnumType(yI),repeated:!0}]),YL=q.makeMessageType(`livekit.UpdateLocalVideoTrack`,()=>[{no:1,name:`track_sid`,kind:`scalar`,T:9},{no:2,name:`width`,kind:`scalar`,T:13},{no:3,name:`height`,kind:`scalar`,T:13}]),XL=q.makeMessageType(`livekit.LeaveRequest`,()=>[{no:1,name:`can_reconnect`,kind:`scalar`,T:8},{no:2,name:`reason`,kind:`enum`,T:q.getEnumType(gI)},{no:3,name:`action`,kind:`enum`,T:q.getEnumType(ZL)},{no:4,name:`regions`,kind:`message`,T:xR}]),ZL=q.makeEnum(`livekit.LeaveRequest.Action`,[{no:0,name:`DISCONNECT`},{no:1,name:`RESUME`},{no:2,name:`RECONNECT`}]),QL=q.makeMessageType(`livekit.UpdateVideoLayers`,()=>[{no:1,name:`track_sid`,kind:`scalar`,T:9},{no:2,name:`layers`,kind:`message`,T:BI,repeated:!0}]),$L=q.makeMessageType(`livekit.UpdateParticipantMetadata`,()=>[{no:1,name:`metadata`,kind:`scalar`,T:9},{no:2,name:`name`,kind:`scalar`,T:9},{no:3,name:`attributes`,kind:`map`,K:9,V:{kind:`scalar`,T:9}},{no:4,name:`request_id`,kind:`scalar`,T:13}]),eR=q.makeMessageType(`livekit.ICEServer`,()=>[{no:1,name:`urls`,kind:`scalar`,T:9,repeated:!0},{no:2,name:`username`,kind:`scalar`,T:9},{no:3,name:`credential`,kind:`scalar`,T:9}]),tR=q.makeMessageType(`livekit.SpeakersChanged`,()=>[{no:1,name:`speakers`,kind:`message`,T:qI,repeated:!0}]),nR=q.makeMessageType(`livekit.RoomUpdate`,()=>[{no:1,name:`room`,kind:`message`,T:xI}]),rR=q.makeMessageType(`livekit.ConnectionQualityInfo`,()=>[{no:1,name:`participant_sid`,kind:`scalar`,T:9},{no:2,name:`quality`,kind:`enum`,T:q.getEnumType(mI)},{no:3,name:`score`,kind:`scalar`,T:2}]),iR=q.makeMessageType(`livekit.ConnectionQualityUpdate`,()=>[{no:1,name:`updates`,kind:`message`,T:rR,repeated:!0}]),aR=q.makeMessageType(`livekit.StreamStateInfo`,()=>[{no:1,name:`participant_sid`,kind:`scalar`,T:9},{no:2,name:`track_sid`,kind:`scalar`,T:9},{no:3,name:`state`,kind:`enum`,T:q.getEnumType(bL)}]),oR=q.makeMessageType(`livekit.StreamStateUpdate`,()=>[{no:1,name:`stream_states`,kind:`message`,T:aR,repeated:!0}]),sR=q.makeMessageType(`livekit.SubscribedQuality`,()=>[{no:1,name:`quality`,kind:`enum`,T:q.getEnumType(pI)},{no:2,name:`enabled`,kind:`scalar`,T:8}]),cR=q.makeMessageType(`livekit.SubscribedCodec`,()=>[{no:1,name:`codec`,kind:`scalar`,T:9},{no:2,name:`qualities`,kind:`message`,T:sR,repeated:!0}]),lR=q.makeMessageType(`livekit.SubscribedQualityUpdate`,()=>[{no:1,name:`track_sid`,kind:`scalar`,T:9},{no:2,name:`subscribed_qualities`,kind:`message`,T:sR,repeated:!0},{no:3,name:`subscribed_codecs`,kind:`message`,T:cR,repeated:!0}]),uR=q.makeMessageType(`livekit.SubscribedAudioCodecUpdate`,()=>[{no:1,name:`track_sid`,kind:`scalar`,T:9},{no:2,name:`subscribed_audio_codecs`,kind:`message`,T:vL,repeated:!0}]),dR=q.makeMessageType(`livekit.TrackPermission`,()=>[{no:1,name:`participant_sid`,kind:`scalar`,T:9},{no:2,name:`all_tracks`,kind:`scalar`,T:8},{no:3,name:`track_sids`,kind:`scalar`,T:9,repeated:!0},{no:4,name:`participant_identity`,kind:`scalar`,T:9}]),fR=q.makeMessageType(`livekit.SubscriptionPermission`,()=>[{no:1,name:`all_participants`,kind:`scalar`,T:8},{no:2,name:`track_permissions`,kind:`message`,T:dR,repeated:!0}]),pR=q.makeMessageType(`livekit.SubscriptionPermissionUpdate`,()=>[{no:1,name:`participant_sid`,kind:`scalar`,T:9},{no:2,name:`track_sid`,kind:`scalar`,T:9},{no:3,name:`allowed`,kind:`scalar`,T:8}]),mR=q.makeMessageType(`livekit.RoomMovedResponse`,()=>[{no:1,name:`room`,kind:`message`,T:xI},{no:2,name:`token`,kind:`scalar`,T:9},{no:3,name:`participant`,kind:`message`,T:wI},{no:4,name:`other_participants`,kind:`message`,T:wI,repeated:!0}]),hR=q.makeMessageType(`livekit.SyncState`,()=>[{no:1,name:`answer`,kind:`message`,T:RL},{no:2,name:`subscription`,kind:`message`,T:BL},{no:3,name:`publish_tracks`,kind:`message`,T:IL,repeated:!0},{no:4,name:`data_channels`,kind:`message`,T:_R,repeated:!0},{no:5,name:`offer`,kind:`message`,T:RL},{no:6,name:`track_sids_disabled`,kind:`scalar`,T:9,repeated:!0},{no:7,name:`datachannel_receive_states`,kind:`message`,T:gR,repeated:!0},{no:8,name:`publish_data_tracks`,kind:`message`,T:DL,repeated:!0}]),gR=q.makeMessageType(`livekit.DataChannelReceiveState`,()=>[{no:1,name:`publisher_sid`,kind:`scalar`,T:9},{no:2,name:`last_seq`,kind:`scalar`,T:13}]),_R=q.makeMessageType(`livekit.DataChannelInfo`,()=>[{no:1,name:`label`,kind:`scalar`,T:9},{no:2,name:`id`,kind:`scalar`,T:13},{no:3,name:`target`,kind:`enum`,T:q.getEnumType(yL)}]),vR=q.makeMessageType(`livekit.SimulateScenario`,()=>[{no:1,name:`speaker_update`,kind:`scalar`,T:5,oneof:`scenario`},{no:2,name:`node_failure`,kind:`scalar`,T:8,oneof:`scenario`},{no:3,name:`migration`,kind:`scalar`,T:8,oneof:`scenario`},{no:4,name:`server_leave`,kind:`scalar`,T:8,oneof:`scenario`},{no:5,name:`switch_candidate_protocol`,kind:`enum`,T:q.getEnumType(xL),oneof:`scenario`},{no:6,name:`subscriber_bandwidth`,kind:`scalar`,T:3,oneof:`scenario`},{no:7,name:`disconnect_signal_on_resume`,kind:`scalar`,T:8,oneof:`scenario`},{no:8,name:`disconnect_signal_on_resume_no_messages`,kind:`scalar`,T:8,oneof:`scenario`},{no:9,name:`leave_request_full_reconnect`,kind:`scalar`,T:8,oneof:`scenario`}]),yR=q.makeMessageType(`livekit.Ping`,()=>[{no:1,name:`timestamp`,kind:`scalar`,T:3},{no:2,name:`rtt`,kind:`scalar`,T:3}]),bR=q.makeMessageType(`livekit.Pong`,()=>[{no:1,name:`last_ping_timestamp`,kind:`scalar`,T:3},{no:2,name:`timestamp`,kind:`scalar`,T:3}]),xR=q.makeMessageType(`livekit.RegionSettings`,()=>[{no:1,name:`regions`,kind:`message`,T:SR,repeated:!0}]),SR=q.makeMessageType(`livekit.RegionInfo`,()=>[{no:1,name:`region`,kind:`scalar`,T:9},{no:2,name:`url`,kind:`scalar`,T:9},{no:3,name:`distance`,kind:`scalar`,T:3}]),CR=q.makeMessageType(`livekit.SubscriptionResponse`,()=>[{no:1,name:`track_sid`,kind:`scalar`,T:9},{no:2,name:`err`,kind:`enum`,T:q.getEnumType(vI)}]),wR=q.makeMessageType(`livekit.RequestResponse`,()=>[{no:1,name:`request_id`,kind:`scalar`,T:13},{no:2,name:`reason`,kind:`enum`,T:q.getEnumType(TR)},{no:3,name:`message`,kind:`scalar`,T:9},{no:4,name:`trickle`,kind:`message`,T:ML,oneof:`request`},{no:5,name:`add_track`,kind:`message`,T:TL,oneof:`request`},{no:6,name:`mute`,kind:`message`,T:NL,oneof:`request`},{no:7,name:`update_metadata`,kind:`message`,T:$L,oneof:`request`},{no:8,name:`update_audio_track`,kind:`message`,T:JL,oneof:`request`},{no:9,name:`update_video_track`,kind:`message`,T:YL,oneof:`request`},{no:10,name:`publish_data_track`,kind:`message`,T:EL,oneof:`request`},{no:11,name:`unpublish_data_track`,kind:`message`,T:OL,oneof:`request`}]),TR=q.makeEnum(`livekit.RequestResponse.Reason`,[{no:0,name:`OK`},{no:1,name:`NOT_FOUND`},{no:2,name:`NOT_ALLOWED`},{no:3,name:`LIMIT_EXCEEDED`},{no:4,name:`QUEUED`},{no:5,name:`UNSUPPORTED_TYPE`},{no:6,name:`UNCLASSIFIED_ERROR`},{no:7,name:`INVALID_HANDLE`},{no:8,name:`INVALID_NAME`},{no:9,name:`DUPLICATE_HANDLE`},{no:10,name:`DUPLICATE_NAME`},{no:11,name:`INVALID_REQUEST`}]),ER=q.makeMessageType(`livekit.TrackSubscribed`,()=>[{no:1,name:`track_sid`,kind:`scalar`,T:9}]),DR=q.makeMessageType(`livekit.ConnectionSettings`,()=>[{no:1,name:`auto_subscribe`,kind:`scalar`,T:8},{no:2,name:`adaptive_stream`,kind:`scalar`,T:8},{no:3,name:`subscriber_allow_pause`,kind:`scalar`,T:8,opt:!0},{no:4,name:`disable_ice_lite`,kind:`scalar`,T:8},{no:5,name:`auto_subscribe_data_track`,kind:`scalar`,T:8,opt:!0}]),OR=q.makeMessageType(`livekit.JoinRequest`,()=>[{no:1,name:`client_info`,kind:`message`,T:iL},{no:2,name:`connection_settings`,kind:`message`,T:DR},{no:3,name:`metadata`,kind:`scalar`,T:9},{no:4,name:`participant_attributes`,kind:`map`,K:9,V:{kind:`scalar`,T:9}},{no:5,name:`add_track_requests`,kind:`message`,T:TL,repeated:!0},{no:6,name:`publisher_offer`,kind:`message`,T:RL},{no:7,name:`reconnect`,kind:`scalar`,T:8},{no:8,name:`reconnect_reason`,kind:`enum`,T:q.getEnumType(_I)},{no:9,name:`participant_sid`,kind:`scalar`,T:9},{no:10,name:`sync_state`,kind:`message`,T:hR}]),kR=q.makeMessageType(`livekit.WrappedJoinRequest`,()=>[{no:1,name:`compression`,kind:`enum`,T:q.getEnumType(AR)},{no:2,name:`join_request`,kind:`scalar`,T:12}]),AR=q.makeEnum(`livekit.WrappedJoinRequest.Compression`,[{no:0,name:`NONE`},{no:1,name:`GZIP`}]),jR=q.makeMessageType(`livekit.MediaSectionsRequirement`,()=>[{no:1,name:`num_audios`,kind:`scalar`,T:13},{no:2,name:`num_videos`,kind:`scalar`,T:13}]);function MR(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,`default`)?e.default:e}var NR={exports:{}},PR=NR.exports,FR;function IR(){return FR?NR.exports:(FR=1,(function(e){(function(t,n){e.exports?e.exports=n():t.log=n()})(PR,function(){var e=function(){},t=`undefined`,n=typeof window!==t&&typeof window.navigator!==t&&/Trident\/|MSIE /.test(window.navigator.userAgent),r=[`trace`,`debug`,`info`,`warn`,`error`],i={},a=null;function o(e,t){var n=e[t];if(typeof n.bind==`function`)return n.bind(e);try{return Function.prototype.bind.call(n,e)}catch{return function(){return Function.prototype.apply.apply(n,[e,arguments])}}}function s(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function c(r){return r===`debug`&&(r=`log`),typeof console===t?!1:r===`trace`&&n?s:console[r]===void 0?console.log===void 0?e:o(console,`log`):o(console,r)}function l(){for(var n=this.getLevel(),i=0;i<r.length;i++){var a=r[i];this[a]=i<n?e:this.methodFactory(a,n,this.name)}if(this.log=this.debug,typeof console===t&&n<this.levels.SILENT)return`No console available for logging`}function u(e){return function(){typeof console!==t&&(l.call(this),this[e].apply(this,arguments))}}function d(e,t,n){return c(e)||u.apply(this,arguments)}function f(e,n){var o=this,s,c,u,f=`loglevel`;typeof e==`string`?f+=`:`+e:typeof e==`symbol`&&(f=void 0);function p(e){var n=(r[e]||`silent`).toUpperCase();if(typeof window!==t&&f){try{window.localStorage[f]=n;return}catch{}try{window.document.cookie=encodeURIComponent(f)+`=`+n+`;`}catch{}}}function m(){var e;if(typeof window!==t&&f){try{e=window.localStorage[f]}catch{}if(typeof e===t)try{var n=window.document.cookie,r=encodeURIComponent(f),i=n.indexOf(r+`=`);i!==-1&&(e=/^([^;]+)/.exec(n.slice(i+r.length+1))[1])}catch{}return o.levels[e]===void 0&&(e=void 0),e}}function h(){if(typeof window!==t&&f){try{window.localStorage.removeItem(f)}catch{}try{window.document.cookie=encodeURIComponent(f)+`=; expires=Thu, 01 Jan 1970 00:00:00 UTC`}catch{}}}function g(e){var t=e;if(typeof t==`string`&&o.levels[t.toUpperCase()]!==void 0&&(t=o.levels[t.toUpperCase()]),typeof t==`number`&&t>=0&&t<=o.levels.SILENT)return t;throw TypeError(`log.setLevel() called with invalid level: `+e)}o.name=e,o.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},o.methodFactory=n||d,o.getLevel=function(){return u??c??s},o.setLevel=function(e,t){return u=g(e),t!==!1&&p(u),l.call(o)},o.setDefaultLevel=function(e){c=g(e),m()||o.setLevel(e,!1)},o.resetLevel=function(){u=null,h(),l.call(o)},o.enableAll=function(e){o.setLevel(o.levels.TRACE,e)},o.disableAll=function(e){o.setLevel(o.levels.SILENT,e)},o.rebuild=function(){if(a!==o&&(s=g(a.getLevel())),l.call(o),a===o)for(var e in i)i[e].rebuild()},s=g(a?a.getLevel():`WARN`);var _=m();_!=null&&(u=g(_)),l.call(o)}a=new f,a.getLogger=function(e){if(typeof e!=`symbol`&&typeof e!=`string`||e===``)throw TypeError(`You must supply a name when creating a logger.`);var t=i[e];return t||=i[e]=new f(e,a.methodFactory),t};var p=typeof window===t?void 0:window.log;return a.noConflict=function(){return typeof window!==t&&window.log===a&&(window.log=p),a},a.getLoggers=function(){return i},a.default=a,a})})(NR),NR.exports)}var LR=IR(),RR;(function(e){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`})(RR||={});var zR;(function(e){e.Default=`livekit`,e.Room=`livekit-room`,e.TokenSource=`livekit-token-source`,e.Participant=`livekit-participant`,e.Track=`livekit-track`,e.Publication=`livekit-track-publication`,e.Engine=`livekit-engine`,e.Signal=`livekit-signal`,e.PCManager=`livekit-pc-manager`,e.PCTransport=`livekit-pc-transport`,e.E2EE=`lk-e2ee`,e.DataTracks=`livekit-data-tracks`,e.Region=`livekit-region`,e.ICE=`livekit-ice`,e.Stats=`livekit-stats`})(zR||={});var BR=LR.getLogger(zR.Default);Object.values(zR).map(e=>LR.getLogger(e)),BR.setDefaultLevel(RR.info);function VR(e,t){let n=LR.getLogger(e);return n.setDefaultLevel(BR.getLevel()),t?HR(n,t):n}function HR(e,t){let n=n=>(r,i)=>{let a=t(),o=a||i?Object.assign(Object.assign({},a),i):void 0;e[n](r,o)},r=Object.create(e);return r.trace=n(`trace`),r.debug=n(`debug`),r.info=n(`info`),r.warn=n(`warn`),r.error=n(`error`),r}var UR=LR.getLogger(zR.E2EE),WR=new Set,GR=UR.setLevel.bind(UR);UR.setLevel=(e,t)=>{GR(e,t);let n=UR.getLevel();WR.forEach(e=>e(n))};function KR(e){return WR.add(e),()=>{WR.delete(e)}}var qR=7e3,JR=[0,300,1200,2700,4800,qR,qR,qR,qR,qR],YR=class{constructor(e){this._retryDelays=e===void 0?JR:[...e]}nextRetryDelayInMs(e){if(e.retryCount>=this._retryDelays.length)return null;let t=this._retryDelays[e.retryCount];return e.retryCount<=1?t:t+Math.random()*1e3}};function XR(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n}function J(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})}function ZR(e){var t=typeof Symbol==`function`&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&typeof e.length==`number`)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw TypeError(t?`Object is not iterable.`:`Symbol.iterator is not defined.`)}function QR(e){return this instanceof QR?(this.v=e,this):new QR(e)}function $R(e,t,n){if(!Symbol.asyncIterator)throw TypeError(`Symbol.asyncIterator is not defined.`);var r=n.apply(e,t||[]),i,a=[];return i=Object.create((typeof AsyncIterator==`function`?AsyncIterator:Object).prototype),s(`next`),s(`throw`),s(`return`,o),i[Symbol.asyncIterator]=function(){return this},i;function o(e){return function(t){return Promise.resolve(t).then(e,d)}}function s(e,t){r[e]&&(i[e]=function(t){return new Promise(function(n,r){a.push([e,t,n,r])>1||c(e,t)})},t&&(i[e]=t(i[e])))}function c(e,t){try{l(r[e](t))}catch(e){f(a[0][3],e)}}function l(e){e.value instanceof QR?Promise.resolve(e.value.v).then(u,d):f(a[0][2],e)}function u(e){c(`next`,e)}function d(e){c(`throw`,e)}function f(e,t){e(t),a.shift(),a.length&&c(a[0][0],a[0][1])}}function ez(e){var t={},n;return r(`next`),r(`throw`,function(e){throw e}),r(`return`),t[Symbol.iterator]=function(){return this},t;function r(r,i){t[r]=e[r]?function(t){return(n=!n)?{value:QR(e[r](t)),done:!1}:i?i(t):t}:i}}function tz(e){if(!Symbol.asyncIterator)throw TypeError(`Symbol.asyncIterator is not defined.`);var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof ZR==`function`?ZR(e):e[Symbol.iterator](),n={},r(`next`),r(`throw`),r(`return`),n[Symbol.asyncIterator]=function(){return this},n);function r(t){n[t]=e[t]&&function(n){return new Promise(function(r,a){n=e[t](n),i(r,a,n.done,n.value)})}}function i(e,t,n,r){Promise.resolve(r).then(function(t){e({value:t,done:n})},t)}}var nz={exports:{}},rz;function iz(){if(rz)return nz.exports;rz=1;var e=typeof Reflect==`object`?Reflect:null,t=e&&typeof e.apply==`function`?e.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)},n=e&&typeof e.ownKeys==`function`?e.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};function r(e){console&&console.warn&&console.warn(e)}var i=Number.isNaN||function(e){return e!==e};function a(){a.init.call(this)}nz.exports=a,nz.exports.once=_,a.EventEmitter=a,a.prototype._events=void 0,a.prototype._eventsCount=0,a.prototype._maxListeners=void 0;var o=10;function s(e){if(typeof e!=`function`)throw TypeError(`The "listener" argument must be of type Function. Received type `+typeof e)}Object.defineProperty(a,"defaultMaxListeners",{enumerable:!0,get:function(){return o},set:function(e){if(typeof e!=`number`||e<0||i(e))throw RangeError(`The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received `+e+`.`);o=e}}),a.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},a.prototype.setMaxListeners=function(e){if(typeof e!=`number`||e<0||i(e))throw RangeError(`The value of "n" is out of range. It must be a non-negative number. Received `+e+`.`);return this._maxListeners=e,this};function c(e){return e._maxListeners===void 0?a.defaultMaxListeners:e._maxListeners}a.prototype.getMaxListeners=function(){return c(this)},a.prototype.emit=function(e){for(var n=[],r=1;r<arguments.length;r++)n.push(arguments[r]);var i=e===`error`,a=this._events;if(a!==void 0)i&&=a.error===void 0;else if(!i)return!1;if(i){var o;if(n.length>0&&(o=n[0]),o instanceof Error)throw o;var s=Error(`Unhandled error.`+(o?` (`+o.message+`)`:``));throw s.context=o,s}var c=a[e];if(c===void 0)return!1;if(typeof c==`function`)t(c,this,n);else for(var l=c.length,u=m(c,l),r=0;r<l;++r)t(u[r],this,n);return!0};function l(e,t,n,i){var a,o,l;if(s(n),o=e._events,o===void 0?(o=e._events=Object.create(null),e._eventsCount=0):(o.newListener!==void 0&&(e.emit(`newListener`,t,n.listener?n.listener:n),o=e._events),l=o[t]),l===void 0)l=o[t]=n,++e._eventsCount;else if(typeof l==`function`?l=o[t]=i?[n,l]:[l,n]:i?l.unshift(n):l.push(n),a=c(e),a>0&&l.length>a&&!l.warned){l.warned=!0;var u=Error(`Possible EventEmitter memory leak detected. `+l.length+` `+String(t)+` listeners added. Use emitter.setMaxListeners() to increase limit`);u.name=`MaxListenersExceededWarning`,u.emitter=e,u.type=t,u.count=l.length,r(u)}return e}a.prototype.addListener=function(e,t){return l(this,e,t,!1)},a.prototype.on=a.prototype.addListener,a.prototype.prependListener=function(e,t){return l(this,e,t,!0)};function u(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function d(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=u.bind(r);return i.listener=n,r.wrapFn=i,i}a.prototype.once=function(e,t){return s(t),this.on(e,d(this,e,t)),this},a.prototype.prependOnceListener=function(e,t){return s(t),this.prependListener(e,d(this,e,t)),this},a.prototype.removeListener=function(e,t){var n,r,i,a,o;if(s(t),r=this._events,r===void 0||(n=r[e],n===void 0))return this;if(n===t||n.listener===t)--this._eventsCount===0?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit(`removeListener`,e,n.listener||t));else if(typeof n!=`function`){for(i=-1,a=n.length-1;a>=0;a--)if(n[a]===t||n[a].listener===t){o=n[a].listener,i=a;break}if(i<0)return this;i===0?n.shift():h(n,i),n.length===1&&(r[e]=n[0]),r.removeListener!==void 0&&this.emit(`removeListener`,e,o||t)}return this},a.prototype.off=a.prototype.removeListener,a.prototype.removeAllListeners=function(e){var t,n=this._events,r;if(n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[e]),this;if(arguments.length===0){var i=Object.keys(n),a;for(r=0;r<i.length;++r)a=i[r],a!==`removeListener`&&this.removeAllListeners(a);return this.removeAllListeners(`removeListener`),this._events=Object.create(null),this._eventsCount=0,this}if(t=n[e],typeof t==`function`)this.removeListener(e,t);else if(t!==void 0)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this};function f(e,t,n){var r=e._events;if(r===void 0)return[];var i=r[t];return i===void 0?[]:typeof i==`function`?n?[i.listener||i]:[i]:n?g(i):m(i,i.length)}a.prototype.listeners=function(e){return f(this,e,!0)},a.prototype.rawListeners=function(e){return f(this,e,!1)},a.listenerCount=function(e,t){return typeof e.listenerCount==`function`?e.listenerCount(t):p.call(e,t)},a.prototype.listenerCount=p;function p(e){var t=this._events;if(t!==void 0){var n=t[e];if(typeof n==`function`)return 1;if(n!==void 0)return n.length}return 0}a.prototype.eventNames=function(){return this._eventsCount>0?n(this._events):[]};function m(e,t){for(var n=Array(t),r=0;r<t;++r)n[r]=e[r];return n}function h(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}function g(e){for(var t=Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}function _(e,t){return new Promise(function(n,r){function i(n){e.removeListener(t,a),r(n)}function a(){typeof e.removeListener==`function`&&e.removeListener(`error`,i),n([].slice.call(arguments))}y(e,t,a,{once:!0}),t!==`error`&&v(e,i,{once:!0})})}function v(e,t,n){typeof e.on==`function`&&y(e,`error`,t,n)}function y(e,t,n,r){if(typeof e.on==`function`)r.once?e.once(t,n):e.on(t,n);else if(typeof e.addEventListener==`function`)e.addEventListener(t,function i(a){r.once&&e.removeEventListener(t,i),n(a)});else throw TypeError(`The "emitter" argument must be of type EventEmitter. Received type `+typeof e)}return nz.exports}var az=iz(),oz=!0,sz=!0;function cz(e,t,n){let r=e.match(t);return r&&r.length>=n&&parseFloat(r[n],10)}function lz(e,t,n){if(!e.RTCPeerConnection)return;if(!Object.getOwnPropertyDescriptor(EventTarget.prototype,`addEventListener`).writable){fz(`Unable to polyfill events`);return}let r=e.RTCPeerConnection.prototype,i=r.addEventListener;r.addEventListener=function(e,r){if(e!==t)return i.apply(this,arguments);let a=e=>{let t=n(e);t&&(r.handleEvent?r.handleEvent(t):r(t))};return this._eventMap=this._eventMap||{},this._eventMap[t]||(this._eventMap[t]=new Map),this._eventMap[t].set(r,a),i.apply(this,[e,a])};let a=r.removeEventListener;r.removeEventListener=function(e,n){if(e!==t||!this._eventMap||!this._eventMap[t]||!this._eventMap[t].has(n))return a.apply(this,arguments);let r=this._eventMap[t].get(n);return this._eventMap[t].delete(n),this._eventMap[t].size===0&&delete this._eventMap[t],Object.keys(this._eventMap).length===0&&delete this._eventMap,a.apply(this,[e,r])},Object.defineProperty(r,`on`+t,{get(){return this[`_on`+t]},set(e){this[`_on`+t]&&(this.removeEventListener(t,this[`_on`+t]),delete this[`_on`+t]),e&&this.addEventListener(t,this[`_on`+t]=e)},enumerable:!0,configurable:!0})}function uz(e){return typeof e==`boolean`?(oz=e,e?`adapter.js logging disabled`:`adapter.js logging enabled`):Error(`Argument type: `+typeof e+`. Please use a boolean.`)}function dz(e){return typeof e==`boolean`?(sz=!e,`adapter.js deprecation warnings `+(e?`disabled`:`enabled`)):Error(`Argument type: `+typeof e+`. Please use a boolean.`)}function fz(){if(typeof window==`object`){if(oz)return;typeof console<`u`&&typeof console.log==`function`&&console.log.apply(console,arguments)}}function pz(e,t){sz&&console.warn(e+` is deprecated, please use `+t+` instead.`)}function mz(e){let t={browser:null,version:null};if(e===void 0||!e.navigator||!e.navigator.userAgent)return t.browser=`Not a browser.`,t;let n=e.navigator;if(n.userAgentData&&n.userAgentData.brands){let e=n.userAgentData.brands.find(e=>e.brand===`Chromium`);if(e){let t=parseInt(e.version,10);if(t>=90)return{browser:`chrome`,version:t}}}if(n.mozGetUserMedia)t.browser=`firefox`,t.version=parseInt(cz(n.userAgent,/Firefox\/(\d+)\./,1));else if(n.webkitGetUserMedia||e.isSecureContext===!1&&e.webkitRTCPeerConnection)t.browser=`chrome`,t.version=parseInt(cz(n.userAgent,/Chrom(e|ium)\/(\d+)\./,2))||null;else if(e.RTCPeerConnection&&n.userAgent.match(/AppleWebKit\/(\d+)\./))t.browser=`safari`,t.version=parseInt(cz(n.userAgent,/AppleWebKit\/(\d+)\./,1)),t.supportsUnifiedPlan=e.RTCRtpTransceiver&&`currentDirection`in e.RTCRtpTransceiver.prototype,t._safariVersion=cz(n.userAgent,/Version\/(\d+(\.?\d+))/,1);else return t.browser=`Not a supported browser.`,t;return t}function hz(e){return Object.prototype.toString.call(e)===`[object Object]`}function gz(e){return hz(e)?Object.keys(e).reduce(function(t,n){let r=hz(e[n]),i=r?gz(e[n]):e[n],a=r&&!Object.keys(i).length;return i===void 0||a?t:Object.assign(t,{[n]:i})},{}):e}function _z(e,t,n){t&&!n.has(t.id)&&(n.set(t.id,t),Object.keys(t).forEach(r=>{r.endsWith(`Id`)?_z(e,e.get(t[r]),n):r.endsWith(`Ids`)&&t[r].forEach(t=>{_z(e,e.get(t),n)})}))}function vz(e,t,n){let r=n?`outbound-rtp`:`inbound-rtp`,i=new Map;if(t===null)return i;let a=[];return e.forEach(e=>{e.type===`track`&&e.trackIdentifier===t.id&&a.push(e)}),a.forEach(t=>{e.forEach(n=>{n.type===r&&n.trackId===t.id&&_z(e,n,i)})}),i}var yz=fz;function bz(e,t){if(t.version>=64)return;let n=e&&e.navigator;if(!n.mediaDevices)return;let r=function(e){if(typeof e!=`object`||e.mandatory||e.optional)return e;let t={};return Object.keys(e).forEach(n=>{if(n===`require`||n===`advanced`||n===`mediaSource`)return;let r=typeof e[n]==`object`?e[n]:{ideal:e[n]};r.exact!==void 0&&typeof r.exact==`number`&&(r.min=r.max=r.exact);let i=function(e,t){return e?e+t.charAt(0).toUpperCase()+t.slice(1):t===`deviceId`?`sourceId`:t};if(r.ideal!==void 0){t.optional=t.optional||[];let e={};typeof r.ideal==`number`?(e[i(`min`,n)]=r.ideal,t.optional.push(e),e={},e[i(`max`,n)]=r.ideal,t.optional.push(e)):(e[i(``,n)]=r.ideal,t.optional.push(e))}r.exact!==void 0&&typeof r.exact!=`number`?(t.mandatory=t.mandatory||{},t.mandatory[i(``,n)]=r.exact):[`min`,`max`].forEach(e=>{r[e]!==void 0&&(t.mandatory=t.mandatory||{},t.mandatory[i(e,n)]=r[e])})}),e.advanced&&(t.optional=(t.optional||[]).concat(e.advanced)),t},i=function(e,i){if(t.version>=61)return i(e);if(e=JSON.parse(JSON.stringify(e)),e&&typeof e.audio==`object`){let t=function(e,t,n){t in e&&!(n in e)&&(e[n]=e[t],delete e[t])};e=JSON.parse(JSON.stringify(e)),t(e.audio,`autoGainControl`,`googAutoGainControl`),t(e.audio,`noiseSuppression`,`googNoiseSuppression`),e.audio=r(e.audio)}if(e&&typeof e.video==`object`){let a=e.video.facingMode;a&&=typeof a==`object`?a:{ideal:a};let o=t.version<66;if(a&&(a.exact===`user`||a.exact===`environment`||a.ideal===`user`||a.ideal===`environment`)&&!(n.mediaDevices.getSupportedConstraints&&n.mediaDevices.getSupportedConstraints().facingMode&&!o)){delete e.video.facingMode;let t;if(a.exact===`environment`||a.ideal===`environment`?t=[`back`,`rear`]:(a.exact===`user`||a.ideal===`user`)&&(t=[`front`]),t)return n.mediaDevices.enumerateDevices().then(n=>{n=n.filter(e=>e.kind===`videoinput`);let o=n.find(e=>t.some(t=>e.label.toLowerCase().includes(t)));return!o&&n.length&&t.includes(`back`)&&(o=n[n.length-1]),o&&(e.video.deviceId=a.exact?{exact:o.deviceId}:{ideal:o.deviceId}),e.video=r(e.video),yz(`chrome: `+JSON.stringify(e)),i(e)})}e.video=r(e.video)}return yz(`chrome: `+JSON.stringify(e)),i(e)},a=function(e){return t.version>=64?e:{name:{PermissionDeniedError:`NotAllowedError`,PermissionDismissedError:`NotAllowedError`,InvalidStateError:`NotAllowedError`,DevicesNotFoundError:`NotFoundError`,ConstraintNotSatisfiedError:`OverconstrainedError`,TrackStartError:`NotReadableError`,MediaDeviceFailedDueToShutdown:`NotAllowedError`,MediaDeviceKillSwitchOn:`NotAllowedError`,TabCaptureError:`AbortError`,ScreenCaptureError:`AbortError`,DeviceCaptureError:`AbortError`}[e.name]||e.name,message:e.message,constraint:e.constraint||e.constraintName,toString(){return this.name+(this.message&&`: `)+this.message}}};if(n.getUserMedia=function(e,t,r){i(e,e=>{n.webkitGetUserMedia(e,t,e=>{r&&r(a(e))})})}.bind(n),n.mediaDevices.getUserMedia){let e=n.mediaDevices.getUserMedia.bind(n.mediaDevices);n.mediaDevices.getUserMedia=function(t){return i(t,t=>e(t).then(e=>{if(t.audio&&!e.getAudioTracks().length||t.video&&!e.getVideoTracks().length)throw e.getTracks().forEach(e=>{e.stop()}),new DOMException(``,`NotFoundError`);return e},e=>Promise.reject(a(e))))}}}function xz(e){e.MediaStream=e.MediaStream||e.webkitMediaStream}function Sz(e,t){if(!(t.version>102)){if(typeof e==`object`&&e.RTCPeerConnection&&!(`ontrack`in e.RTCPeerConnection.prototype)){Object.defineProperty(e.RTCPeerConnection.prototype,"ontrack",{get(){return this._ontrack},set(e){this._ontrack&&this.removeEventListener(`track`,this._ontrack),this.addEventListener(`track`,this._ontrack=e)},enumerable:!0,configurable:!0});let t=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){return this._ontrackpoly||(this._ontrackpoly=t=>{t.stream.addEventListener(`addtrack`,n=>{let r;r=e.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find(e=>e.track&&e.track.id===n.track.id):{track:n.track};let i=new Event(`track`);i.track=n.track,i.receiver=r,i.transceiver={receiver:r},i.streams=[t.stream],this.dispatchEvent(i)}),t.stream.getTracks().forEach(n=>{let r;r=e.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find(e=>e.track&&e.track.id===n.id):{track:n};let i=new Event(`track`);i.track=n,i.receiver=r,i.transceiver={receiver:r},i.streams=[t.stream],this.dispatchEvent(i)})},this.addEventListener(`addstream`,this._ontrackpoly)),t.apply(this,arguments)}}else lz(e,`track`,e=>(e.transceiver||Object.defineProperty(e,"transceiver",{value:{receiver:e.receiver}}),e))}}function Cz(e){if(typeof e==`object`&&e.RTCPeerConnection&&!(`getSenders`in e.RTCPeerConnection.prototype)&&`createDTMFSender`in e.RTCPeerConnection.prototype){let t=function(e,t){return{track:t,get dtmf(){return this._dtmf===void 0&&(this._dtmf=t.kind===`audio`?e.createDTMFSender(t):null),this._dtmf},_pc:e}};if(!e.RTCPeerConnection.prototype.getSenders){e.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};let n=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(e,r){let i=n.apply(this,arguments);return i||(i=t(this,e),this._senders.push(i)),i};let r=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(e){r.apply(this,arguments);let t=this._senders.indexOf(e);t!==-1&&this._senders.splice(t,1)}}let n=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(e){this._senders=this._senders||[],n.apply(this,[e]),e.getTracks().forEach(e=>{this._senders.push(t(this,e))})};let r=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){this._senders=this._senders||[],r.apply(this,[e]),e.getTracks().forEach(e=>{let t=this._senders.find(t=>t.track===e);t&&this._senders.splice(this._senders.indexOf(t),1)})}}else if(typeof e==`object`&&e.RTCPeerConnection&&`getSenders`in e.RTCPeerConnection.prototype&&`createDTMFSender`in e.RTCPeerConnection.prototype&&e.RTCRtpSender&&!(`dtmf`in e.RTCRtpSender.prototype)){let t=e.RTCPeerConnection.prototype.getSenders;e.RTCPeerConnection.prototype.getSenders=function(){let e=t.apply(this,[]);return e.forEach(e=>e._pc=this),e},Object.defineProperty(e.RTCRtpSender.prototype,"dtmf",{get(){return this._dtmf===void 0&&(this._dtmf=this.track.kind===`audio`?this._pc.createDTMFSender(this.track):null),this._dtmf}})}}function wz(e,t){if(t.version>=67||!(typeof e==`object`&&e.RTCPeerConnection&&e.RTCRtpSender&&e.RTCRtpReceiver))return;if(!(`getStats`in e.RTCRtpSender.prototype)){let t=e.RTCPeerConnection.prototype.getSenders;t&&(e.RTCPeerConnection.prototype.getSenders=function(){let e=t.apply(this,[]);return e.forEach(e=>e._pc=this),e});let n=e.RTCPeerConnection.prototype.addTrack;n&&(e.RTCPeerConnection.prototype.addTrack=function(){let e=n.apply(this,arguments);return e._pc=this,e}),e.RTCRtpSender.prototype.getStats=function(){let e=this;return this._pc.getStats().then(t=>vz(t,e.track,!0))}}if(!(`getStats`in e.RTCRtpReceiver.prototype)){let t=e.RTCPeerConnection.prototype.getReceivers;t&&(e.RTCPeerConnection.prototype.getReceivers=function(){let e=t.apply(this,[]);return e.forEach(e=>e._pc=this),e}),lz(e,`track`,e=>(e.receiver._pc=e.srcElement,e)),e.RTCRtpReceiver.prototype.getStats=function(){let e=this;return this._pc.getStats().then(t=>vz(t,e.track,!1))}}if(!(`getStats`in e.RTCRtpSender.prototype&&`getStats`in e.RTCRtpReceiver.prototype))return;let n=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof e.MediaStreamTrack){let e=arguments[0],t,n,r;return this.getSenders().forEach(n=>{n.track===e&&(t?r=!0:t=n)}),this.getReceivers().forEach(t=>(t.track===e&&(n?r=!0:n=t),t.track===e)),r||t&&n?Promise.reject(new DOMException(`There are more than one sender or receiver for the track.`,`InvalidAccessError`)):t?t.getStats():n?n.getStats():Promise.reject(new DOMException(`There is no sender or receiver for the track.`,`InvalidAccessError`))}return n.apply(this,arguments)}}function Tz(e){e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map(e=>this._shimmedLocalStreams[e][0])};let t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(e,n){if(!n)return t.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};let r=t.apply(this,arguments);return this._shimmedLocalStreams[n.id]?this._shimmedLocalStreams[n.id].indexOf(r)===-1&&this._shimmedLocalStreams[n.id].push(r):this._shimmedLocalStreams[n.id]=[n,r],r};let n=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(e){this._shimmedLocalStreams=this._shimmedLocalStreams||{},e.getTracks().forEach(e=>{if(this.getSenders().find(t=>t.track===e))throw new DOMException(`Track already exists.`,`InvalidAccessError`)});let t=this.getSenders();n.apply(this,arguments);let r=this.getSenders().filter(e=>t.indexOf(e)===-1);this._shimmedLocalStreams[e.id]=[e].concat(r)};let r=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[e.id],r.apply(this,arguments)};let i=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(e){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},e&&Object.keys(this._shimmedLocalStreams).forEach(t=>{let n=this._shimmedLocalStreams[t].indexOf(e);n!==-1&&this._shimmedLocalStreams[t].splice(n,1),this._shimmedLocalStreams[t].length===1&&delete this._shimmedLocalStreams[t]}),i.apply(this,arguments)}}function Ez(e,t){if(!e.RTCPeerConnection)return;if(e.RTCPeerConnection.prototype.addTrack&&t.version>=65)return Tz(e);let n=e.RTCPeerConnection.prototype.getLocalStreams;e.RTCPeerConnection.prototype.getLocalStreams=function(){let e=n.apply(this);return this._reverseStreams=this._reverseStreams||{},e.map(e=>this._reverseStreams[e.id])};let r=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(t){if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},t.getTracks().forEach(e=>{if(this.getSenders().find(t=>t.track===e))throw new DOMException(`Track already exists.`,`InvalidAccessError`)}),!this._reverseStreams[t.id]){let n=new e.MediaStream(t.getTracks());this._streams[t.id]=n,this._reverseStreams[n.id]=t,t=n}r.apply(this,[t])};let i=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},i.apply(this,[this._streams[e.id]||e]),delete this._reverseStreams[this._streams[e.id]?this._streams[e.id].id:e.id],delete this._streams[e.id]},e.RTCPeerConnection.prototype.addTrack=function(t,n){if(this.signalingState===`closed`)throw new DOMException(`The RTCPeerConnection's signalingState is 'closed'.`,`InvalidStateError`);let r=[].slice.call(arguments,1);if(r.length!==1||!r[0].getTracks().find(e=>e===t))throw new DOMException(`The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.`,`NotSupportedError`);if(this.getSenders().find(e=>e.track===t))throw new DOMException(`Track already exists.`,`InvalidAccessError`);this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};let i=this._streams[n.id];if(i)i.addTrack(t),Promise.resolve().then(()=>{this.dispatchEvent(new Event(`negotiationneeded`))});else{let r=new e.MediaStream([t]);this._streams[n.id]=r,this._reverseStreams[r.id]=n,this.addStream(r)}return this.getSenders().find(e=>e.track===t)};function a(e,t){let n=t.sdp;return Object.keys(e._reverseStreams||[]).forEach(t=>{let r=e._reverseStreams[t],i=e._streams[r.id];n=n.replace(new RegExp(i.id,`g`),r.id)}),new RTCSessionDescription({type:t.type,sdp:n})}function o(e,t){let n=t.sdp;return Object.keys(e._reverseStreams||[]).forEach(t=>{let r=e._reverseStreams[t],i=e._streams[r.id];n=n.replace(new RegExp(r.id,`g`),i.id)}),new RTCSessionDescription({type:t.type,sdp:n})}[`createOffer`,`createAnswer`].forEach(function(t){let n=e.RTCPeerConnection.prototype[t],r={[t](){let e=arguments;return arguments.length&&typeof arguments[0]==`function`?n.apply(this,[t=>{let n=a(this,t);e[0].apply(null,[n])},t=>{e[1]&&e[1].apply(null,t)},arguments[2]]):n.apply(this,arguments).then(e=>a(this,e))}};e.RTCPeerConnection.prototype[t]=r[t]});let s=e.RTCPeerConnection.prototype.setLocalDescription;e.RTCPeerConnection.prototype.setLocalDescription=function(){return!arguments.length||!arguments[0].type||(arguments[0]=o(this,arguments[0])),s.apply(this,arguments)};let c=Object.getOwnPropertyDescriptor(e.RTCPeerConnection.prototype,`localDescription`);Object.defineProperty(e.RTCPeerConnection.prototype,"localDescription",{get(){let e=c.get.apply(this);return e.type===``?e:a(this,e)}}),e.RTCPeerConnection.prototype.removeTrack=function(e){if(this.signalingState===`closed`)throw new DOMException(`The RTCPeerConnection's signalingState is 'closed'.`,`InvalidStateError`);if(!e._pc)throw new DOMException(`Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.`,`TypeError`);if(e._pc!==this)throw new DOMException(`Sender was not created by this connection.`,`InvalidAccessError`);this._streams=this._streams||{};let t;Object.keys(this._streams).forEach(n=>{this._streams[n].getTracks().find(t=>e.track===t)&&(t=this._streams[n])}),t&&(t.getTracks().length===1?this.removeStream(this._reverseStreams[t.id]):t.removeTrack(e.track),this.dispatchEvent(new Event(`negotiationneeded`)))}}function Dz(e,t){!e.RTCPeerConnection&&e.webkitRTCPeerConnection&&(e.RTCPeerConnection=e.webkitRTCPeerConnection),e.RTCPeerConnection&&t.version<53&&[`setLocalDescription`,`setRemoteDescription`,`addIceCandidate`].forEach(function(t){let n=e.RTCPeerConnection.prototype[t],r={[t](){return arguments[0]=new(t===`addIceCandidate`?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),n.apply(this,arguments)}};e.RTCPeerConnection.prototype[t]=r[t]})}function Oz(e,t){t.version>102||lz(e,`negotiationneeded`,e=>{let n=e.target;if(!((t.version<72||n.getConfiguration&&n.getConfiguration().sdpSemantics===`plan-b`)&&n.signalingState!==`stable`))return e})}var kz=Object.freeze({__proto__:null,fixNegotiationNeeded:Oz,shimAddTrackRemoveTrack:Ez,shimAddTrackRemoveTrackWithNative:Tz,shimGetSendersWithDtmf:Cz,shimGetUserMedia:bz,shimMediaStream:xz,shimOnTrack:Sz,shimPeerConnection:Dz,shimSenderReceiverGetStats:wz});function Az(e,t){let n=e&&e.navigator;if(!n.mediaDevices)return;let r=e&&e.MediaStreamTrack;if(n.getUserMedia=function(e,t,r){pz(`navigator.getUserMedia`,`navigator.mediaDevices.getUserMedia`),n.mediaDevices.getUserMedia(e).then(t,r)},!(t.version>55&&`autoGainControl`in n.mediaDevices.getSupportedConstraints())){let e=function(e,t,n){t in e&&!(n in e)&&(e[n]=e[t],delete e[t])},t=n.mediaDevices.getUserMedia.bind(n.mediaDevices);if(n.mediaDevices.getUserMedia=function(n){return typeof n==`object`&&typeof n.audio==`object`&&(n=JSON.parse(JSON.stringify(n)),e(n.audio,`autoGainControl`,`mozAutoGainControl`),e(n.audio,`noiseSuppression`,`mozNoiseSuppression`)),t(n)},r&&r.prototype.getSettings){let t=r.prototype.getSettings;r.prototype.getSettings=function(){let n=t.apply(this,arguments);return e(n,`mozAutoGainControl`,`autoGainControl`),e(n,`mozNoiseSuppression`,`noiseSuppression`),n}}if(r&&r.prototype.applyConstraints){let t=r.prototype.applyConstraints;r.prototype.applyConstraints=function(n){return this.kind===`audio`&&typeof n==`object`&&(n=JSON.parse(JSON.stringify(n)),e(n,`autoGainControl`,`mozAutoGainControl`),e(n,`noiseSuppression`,`mozNoiseSuppression`)),t.apply(this,[n])}}}}function jz(e,t){e.navigator.mediaDevices&&(e.navigator.mediaDevices&&`getDisplayMedia`in e.navigator.mediaDevices||(e.navigator.mediaDevices.getDisplayMedia=function(n){if(!(n&&n.video)){let e=new DOMException(`getDisplayMedia without video constraints is undefined`);return e.name=`NotFoundError`,e.code=8,Promise.reject(e)}return n.video===!0?n.video={mediaSource:t}:n.video.mediaSource=t,e.navigator.mediaDevices.getUserMedia(n)}))}function Mz(e){typeof e==`object`&&e.RTCTrackEvent&&`receiver`in e.RTCTrackEvent.prototype&&!(`transceiver`in e.RTCTrackEvent.prototype)&&Object.defineProperty(e.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function Nz(e,t){typeof e==`object`&&(e.RTCPeerConnection||e.mozRTCPeerConnection)&&(!e.RTCPeerConnection&&e.mozRTCPeerConnection&&(e.RTCPeerConnection=e.mozRTCPeerConnection),t.version<53&&[`setLocalDescription`,`setRemoteDescription`,`addIceCandidate`].forEach(function(t){let n=e.RTCPeerConnection.prototype[t],r={[t](){return arguments[0]=new(t===`addIceCandidate`?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),n.apply(this,arguments)}};e.RTCPeerConnection.prototype[t]=r[t]}))}function Pz(e,t){if(typeof e!=`object`||!(e.RTCPeerConnection||e.mozRTCPeerConnection)||t.version>=151)return;let n={inboundrtp:`inbound-rtp`,outboundrtp:`outbound-rtp`,candidatepair:`candidate-pair`,localcandidate:`local-candidate`,remotecandidate:`remote-candidate`},r=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){let e=Array.prototype.slice.call(arguments),i=e[0],a=e[1],o=e[2];return this.signalingState===`closed`?Promise.resolve(new Map):r.apply(this,[i||null]).then(e=>{if(t.version<53&&!a)try{e.forEach(e=>{e.type=n[e.type]||e.type})}catch(t){if(t.name!==`TypeError`)throw t;e.forEach((t,r)=>{e.set(r,Object.assign({},t,{type:n[t.type]||t.type}))})}return e}).then(a,o)}}function Fz(e){if(!(typeof e==`object`&&e.RTCPeerConnection&&e.RTCRtpSender)||e.RTCRtpSender&&`getStats`in e.RTCRtpSender.prototype)return;let t=e.RTCPeerConnection.prototype.getSenders;t&&(e.RTCPeerConnection.prototype.getSenders=function(){let e=t.apply(this,[]);return e.forEach(e=>e._pc=this),e});let n=e.RTCPeerConnection.prototype.addTrack;n&&(e.RTCPeerConnection.prototype.addTrack=function(){let e=n.apply(this,arguments);return e._pc=this,e}),e.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):Promise.resolve(new Map)}}function Iz(e){if(!(typeof e==`object`&&e.RTCPeerConnection&&e.RTCRtpSender)||e.RTCRtpSender&&`getStats`in e.RTCRtpReceiver.prototype)return;let t=e.RTCPeerConnection.prototype.getReceivers;t&&(e.RTCPeerConnection.prototype.getReceivers=function(){let e=t.apply(this,[]);return e.forEach(e=>e._pc=this),e}),lz(e,`track`,e=>(e.receiver._pc=e.srcElement,e)),e.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function Lz(e){!e.RTCPeerConnection||`removeStream`in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.removeStream=function(e){pz(`removeStream`,`removeTrack`),this.getSenders().forEach(t=>{t.track&&e.getTracks().includes(t.track)&&this.removeTrack(t)})})}function Rz(e){e.DataChannel&&!e.RTCDataChannel&&(e.RTCDataChannel=e.DataChannel)}function zz(e,t){if(!(typeof e==`object`&&e.RTCPeerConnection)||t.version>=110)return;let n=e.RTCPeerConnection.prototype.addTransceiver;n&&(e.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];let e=arguments[1]&&arguments[1].sendEncodings;e===void 0&&(e=[]),e=[...e];let t=e.length>0;t&&e.forEach(e=>{if(`rid`in e&&!/^[a-z0-9]{0,16}$/i.test(e.rid))throw TypeError(`Invalid RID value provided.`);if(`scaleResolutionDownBy`in e&&!(parseFloat(e.scaleResolutionDownBy)>=1))throw RangeError(`scale_resolution_down_by must be >= 1.0`);if(`maxFramerate`in e&&!(parseFloat(e.maxFramerate)>=0))throw RangeError(`max_framerate must be >= 0.0`)});let r=n.apply(this,arguments);if(t){let t=r.sender,n=t.getParameters();(!(`encodings`in n)||n.encodings.length===1&&Object.keys(n.encodings[0]).length===0)&&(n.encodings=e,t.sendEncodings=e,this.setParametersPromises.push(t.setParameters(n).then(()=>{delete t.sendEncodings}).catch(()=>{delete t.sendEncodings})))}return r})}function Bz(e,t){if(!(typeof e==`object`&&e.RTCRtpSender)||t.version>=110)return;let n=e.RTCRtpSender.prototype.getParameters;n&&(e.RTCRtpSender.prototype.getParameters=function(){let e=n.apply(this,arguments);return`encodings`in e||(e.encodings=[].concat(this.sendEncodings||[{}])),e})}function Vz(e,t){if(!(typeof e==`object`&&e.RTCPeerConnection)||t.version>=110)return;let n=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>n.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):n.apply(this,arguments)}}function Hz(e,t){if(!(typeof e==`object`&&e.RTCPeerConnection)||t.version>=110)return;let n=e.RTCPeerConnection.prototype.createAnswer;e.RTCPeerConnection.prototype.createAnswer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>n.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):n.apply(this,arguments)}}var Uz=Object.freeze({__proto__:null,shimAddTransceiver:zz,shimCreateAnswer:Hz,shimCreateOffer:Vz,shimGetDisplayMedia:jz,shimGetParameters:Bz,shimGetStats:Pz,shimGetUserMedia:Az,shimOnTrack:Mz,shimPeerConnection:Nz,shimRTCDataChannel:Rz,shimReceiverGetStats:Iz,shimRemoveStream:Lz,shimSenderGetStats:Fz});function Wz(e){if(typeof e==`object`&&e.RTCPeerConnection){if(`getLocalStreams`in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||=[],this._localStreams}),!(`addStream`in e.RTCPeerConnection.prototype)){let t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addStream=function(e){this._localStreams||=[],this._localStreams.includes(e)||this._localStreams.push(e),e.getAudioTracks().forEach(n=>t.call(this,n,e)),e.getVideoTracks().forEach(n=>t.call(this,n,e))},e.RTCPeerConnection.prototype.addTrack=function(e){var n=[...arguments].slice(1);return n&&n.forEach(e=>{this._localStreams?this._localStreams.includes(e)||this._localStreams.push(e):this._localStreams=[e]}),t.apply(this,arguments)}}`removeStream`in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.removeStream=function(e){this._localStreams||=[];let t=this._localStreams.indexOf(e);if(t===-1)return;this._localStreams.splice(t,1);let n=e.getTracks();this.getSenders().forEach(e=>{n.includes(e.track)&&this.removeTrack(e)})})}}function Gz(e){if(typeof e==`object`&&e.RTCPeerConnection&&(`getRemoteStreams`in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!(`onaddstream`in e.RTCPeerConnection.prototype))){Object.defineProperty(e.RTCPeerConnection.prototype,"onaddstream",{get(){return this._onaddstream},set(e){this._onaddstream&&(this.removeEventListener(`addstream`,this._onaddstream),this.removeEventListener(`track`,this._onaddstreampoly)),this.addEventListener(`addstream`,this._onaddstream=e),this.addEventListener(`track`,this._onaddstreampoly=e=>{e.streams.forEach(e=>{if(this._remoteStreams||=[],this._remoteStreams.includes(e))return;this._remoteStreams.push(e);let t=new Event(`addstream`);t.stream=e,this.dispatchEvent(t)})})}});let t=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){let e=this;return this._onaddstreampoly||this.addEventListener(`track`,this._onaddstreampoly=function(t){t.streams.forEach(t=>{if(e._remoteStreams||=[],e._remoteStreams.indexOf(t)>=0)return;e._remoteStreams.push(t);let n=new Event(`addstream`);n.stream=t,e.dispatchEvent(n)})}),t.apply(e,arguments)}}}function Kz(e){if(typeof e!=`object`||!e.RTCPeerConnection)return;let t=e.RTCPeerConnection.prototype,n=t.createOffer,r=t.createAnswer,i=t.setLocalDescription,a=t.setRemoteDescription,o=t.addIceCandidate;t.createOffer=function(e,t){let r=arguments.length>=2?arguments[2]:arguments[0],i=n.apply(this,[r]);return t?(i.then(e,t),Promise.resolve()):i},t.createAnswer=function(e,t){let n=arguments.length>=2?arguments[2]:arguments[0],i=r.apply(this,[n]);return t?(i.then(e,t),Promise.resolve()):i};let s=function(e,t,n){let r=i.apply(this,[e]);return n?(r.then(t,n),Promise.resolve()):r};t.setLocalDescription=s,s=function(e,t,n){let r=a.apply(this,[e]);return n?(r.then(t,n),Promise.resolve()):r},t.setRemoteDescription=s,s=function(e,t,n){let r=o.apply(this,[e]);return n?(r.then(t,n),Promise.resolve()):r},t.addIceCandidate=s}function qz(e){let t=e&&e.navigator;if(t.mediaDevices&&t.mediaDevices.getUserMedia){let e=t.mediaDevices,n=e.getUserMedia.bind(e);t.mediaDevices.getUserMedia=e=>n(Jz(e))}!t.getUserMedia&&t.mediaDevices&&t.mediaDevices.getUserMedia&&(t.getUserMedia=function(e,n,r){t.mediaDevices.getUserMedia(e).then(n,r)}.bind(t))}function Jz(e){return e&&e.video!==void 0?Object.assign({},e,{video:gz(e.video)}):e}function Yz(e){if(!e.RTCPeerConnection)return;let t=e.RTCPeerConnection;e.RTCPeerConnection=function(e,n){if(e&&e.iceServers){let t=[];for(let n=0;n<e.iceServers.length;n++){let r=e.iceServers[n];r.urls===void 0&&r.url?(pz(`RTCIceServer.url`,`RTCIceServer.urls`),r=JSON.parse(JSON.stringify(r)),r.urls=r.url,delete r.url,t.push(r)):t.push(e.iceServers[n])}e.iceServers=t}return new t(e,n)},e.RTCPeerConnection.prototype=t.prototype,`generateCertificate`in t&&Object.defineProperty(e.RTCPeerConnection,"generateCertificate",{get(){return t.generateCertificate}})}function Xz(e){typeof e==`object`&&e.RTCTrackEvent&&`receiver`in e.RTCTrackEvent.prototype&&!(`transceiver`in e.RTCTrackEvent.prototype)&&Object.defineProperty(e.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function Zz(e){let t=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(e){if(e){e.offerToReceiveAudio!==void 0&&(e.offerToReceiveAudio=!!e.offerToReceiveAudio);let t=this.getTransceivers().find(e=>e.receiver.track.kind===`audio`);e.offerToReceiveAudio===!1&&t?t.direction===`sendrecv`?t.setDirection?t.setDirection(`sendonly`):t.direction=`sendonly`:t.direction===`recvonly`&&(t.setDirection?t.setDirection(`inactive`):t.direction=`inactive`):e.offerToReceiveAudio===!0&&!t&&this.addTransceiver(`audio`,{direction:`recvonly`}),e.offerToReceiveVideo!==void 0&&(e.offerToReceiveVideo=!!e.offerToReceiveVideo);let n=this.getTransceivers().find(e=>e.receiver.track.kind===`video`);e.offerToReceiveVideo===!1&&n?n.direction===`sendrecv`?n.setDirection?n.setDirection(`sendonly`):n.direction=`sendonly`:n.direction===`recvonly`&&(n.setDirection?n.setDirection(`inactive`):n.direction=`inactive`):e.offerToReceiveVideo===!0&&!n&&this.addTransceiver(`video`,{direction:`recvonly`})}return t.apply(this,arguments)}}function Qz(e){typeof e!=`object`||e.AudioContext||(e.AudioContext=e.webkitAudioContext)}var $z=Object.freeze({__proto__:null,shimAudioContext:Qz,shimCallbacksAPI:Kz,shimConstraints:Jz,shimCreateOfferLegacy:Zz,shimGetUserMedia:qz,shimLocalStreamsAPI:Wz,shimRTCIceServerUrls:Yz,shimRemoteStreamsAPI:Gz,shimTrackEventTransceiver:Xz}),eB={exports:{}},tB;function nB(){return tB?eB.exports:(tB=1,(function(e){let t={};t.generateIdentifier=function(){return Math.random().toString(36).substring(2,12)},t.localCName=t.generateIdentifier(),t.splitLines=function(e){return e.trim().split(`
105
+ `).map(e=>e.trim())},t.splitSections=function(e){return e.split(`
106
+ m=`).map((e,t)=>(t>0?`m=`+e:e).trim()+`\r
107
+ `)},t.getDescription=function(e){let n=t.splitSections(e);return n&&n[0]},t.getMediaSections=function(e){let n=t.splitSections(e);return n.shift(),n},t.matchPrefix=function(e,n){return t.splitLines(e).filter(e=>e.indexOf(n)===0)},t.parseCandidate=function(e){let t;t=e.indexOf(`a=candidate:`)===0?e.substring(12).split(` `):e.substring(10).split(` `);let n={foundation:t[0],component:{1:`rtp`,2:`rtcp`}[t[1]]||t[1],protocol:t[2].toLowerCase(),priority:parseInt(t[3],10),ip:t[4],address:t[4],port:parseInt(t[5],10),type:t[7]};for(let e=8;e<t.length;e+=2)switch(t[e]){case`raddr`:n.relatedAddress=t[e+1];break;case`rport`:n.relatedPort=parseInt(t[e+1],10);break;case`tcptype`:n.tcpType=t[e+1];break;case`ufrag`:n.ufrag=t[e+1],n.usernameFragment=t[e+1];break;default:n[t[e]]===void 0&&(n[t[e]]=t[e+1])}return n},t.writeCandidate=function(e){let t=[];t.push(e.foundation);let n=e.component;n===`rtp`?t.push(1):n===`rtcp`?t.push(2):t.push(n),t.push(e.protocol.toUpperCase()),t.push(e.priority),t.push(e.address||e.ip),t.push(e.port);let r=e.type;return t.push(`typ`),t.push(r),r!==`host`&&e.relatedAddress&&e.relatedPort!==void 0&&(t.push(`raddr`),t.push(e.relatedAddress),t.push(`rport`),t.push(e.relatedPort)),e.tcpType&&e.protocol.toLowerCase()===`tcp`&&(t.push(`tcptype`),t.push(e.tcpType)),(e.usernameFragment||e.ufrag)&&(t.push(`ufrag`),t.push(e.usernameFragment||e.ufrag)),`candidate:`+t.join(` `)},t.parseIceOptions=function(e){return e.substring(14).split(` `)},t.parseRtpMap=function(e){let t=e.substring(9).split(` `),n={payloadType:parseInt(t.shift(),10)};return t=t[0].split(`/`),n.name=t[0],n.clockRate=parseInt(t[1],10),n.channels=t.length===3?parseInt(t[2],10):1,n.numChannels=n.channels,n},t.writeRtpMap=function(e){let t=e.payloadType;e.preferredPayloadType!==void 0&&(t=e.preferredPayloadType);let n=e.channels||e.numChannels||1;return`a=rtpmap:`+t+` `+e.name+`/`+e.clockRate+(n===1?``:`/`+n)+`\r
108
+ `},t.parseExtmap=function(e){let t=e.substring(9).split(` `);return{id:parseInt(t[0],10),direction:t[0].indexOf(`/`)>0?t[0].split(`/`)[1]:`sendrecv`,uri:t[1],attributes:t.slice(2).join(` `)}},t.writeExtmap=function(e){return`a=extmap:`+(e.id||e.preferredId)+(e.direction&&e.direction!==`sendrecv`?`/`+e.direction:``)+` `+e.uri+(e.attributes?` `+e.attributes:``)+`\r
109
+ `},t.parseFmtp=function(e){let t={},n,r=e.substring(e.indexOf(` `)+1).split(`;`);for(let e=0;e<r.length;e++)n=r[e].trim().split(`=`),t[n[0].trim()]=n[1];return t},t.writeFmtp=function(e){let t=``,n=e.payloadType;if(e.preferredPayloadType!==void 0&&(n=e.preferredPayloadType),e.parameters&&Object.keys(e.parameters).length){let r=[];Object.keys(e.parameters).forEach(t=>{e.parameters[t]===void 0?r.push(t):r.push(t+`=`+e.parameters[t])}),t+=`a=fmtp:`+n+` `+r.join(`;`)+`\r
110
+ `}return t},t.parseRtcpFb=function(e){let t=e.substring(e.indexOf(` `)+1).split(` `);return{type:t.shift(),parameter:t.join(` `)}},t.writeRtcpFb=function(e){let t=``,n=e.payloadType;return e.preferredPayloadType!==void 0&&(n=e.preferredPayloadType),e.rtcpFeedback&&e.rtcpFeedback.length&&e.rtcpFeedback.forEach(e=>{t+=`a=rtcp-fb:`+n+` `+e.type+(e.parameter&&e.parameter.length?` `+e.parameter:``)+`\r
111
+ `}),t},t.parseSsrcMedia=function(e){let t=e.indexOf(` `),n={ssrc:parseInt(e.substring(7,t),10)},r=e.indexOf(`:`,t);return r>-1?(n.attribute=e.substring(t+1,r),n.value=e.substring(r+1)):n.attribute=e.substring(t+1),n},t.parseSsrcGroup=function(e){let t=e.substring(13).split(` `);return{semantics:t.shift(),ssrcs:t.map(e=>parseInt(e,10))}},t.getMid=function(e){let n=t.matchPrefix(e,`a=mid:`)[0];if(n)return n.substring(6)},t.parseFingerprint=function(e){let t=e.substring(14).split(` `);return{algorithm:t[0].toLowerCase(),value:t[1].toUpperCase()}},t.getDtlsParameters=function(e,n){return{role:`auto`,fingerprints:t.matchPrefix(e+n,`a=fingerprint:`).map(t.parseFingerprint)}},t.writeDtlsParameters=function(e,t){let n=`a=setup:`+t+`\r
112
+ `;return e.fingerprints.forEach(e=>{n+=`a=fingerprint:`+e.algorithm+` `+e.value+`\r
113
+ `}),n},t.parseCryptoLine=function(e){let t=e.substring(9).split(` `);return{tag:parseInt(t[0],10),cryptoSuite:t[1],keyParams:t[2],sessionParams:t.slice(3)}},t.writeCryptoLine=function(e){return`a=crypto:`+e.tag+` `+e.cryptoSuite+` `+(typeof e.keyParams==`object`?t.writeCryptoKeyParams(e.keyParams):e.keyParams)+(e.sessionParams?` `+e.sessionParams.join(` `):``)+`\r
114
+ `},t.parseCryptoKeyParams=function(e){if(e.indexOf(`inline:`)!==0)return null;let t=e.substring(7).split(`|`);return{keyMethod:`inline`,keySalt:t[0],lifeTime:t[1],mkiValue:t[2]?t[2].split(`:`)[0]:void 0,mkiLength:t[2]?t[2].split(`:`)[1]:void 0}},t.writeCryptoKeyParams=function(e){return e.keyMethod+`:`+e.keySalt+(e.lifeTime?`|`+e.lifeTime:``)+(e.mkiValue&&e.mkiLength?`|`+e.mkiValue+`:`+e.mkiLength:``)},t.getCryptoParameters=function(e,n){return t.matchPrefix(e+n,`a=crypto:`).map(t.parseCryptoLine)},t.getIceParameters=function(e,n){let r=t.matchPrefix(e+n,`a=ice-ufrag:`)[0],i=t.matchPrefix(e+n,`a=ice-pwd:`)[0];return r&&i?{usernameFragment:r.substring(12),password:i.substring(10)}:null},t.writeIceParameters=function(e){let t=`a=ice-ufrag:`+e.usernameFragment+`\r
115
+ a=ice-pwd:`+e.password+`\r
116
+ `;return e.iceLite&&(t+=`a=ice-lite\r
117
+ `),t},t.parseRtpParameters=function(e){let n={codecs:[],headerExtensions:[],fecMechanisms:[],rtcp:[]},r=t.splitLines(e)[0].split(` `);n.profile=r[2];for(let i=3;i<r.length;i++){let a=r[i],o=t.matchPrefix(e,`a=rtpmap:`+a+` `)[0];if(o){let r=t.parseRtpMap(o),i=t.matchPrefix(e,`a=fmtp:`+a+` `);switch(r.parameters=i.length?t.parseFmtp(i[0]):{},r.rtcpFeedback=t.matchPrefix(e,`a=rtcp-fb:`+a+` `).map(t.parseRtcpFb),n.codecs.push(r),r.name.toUpperCase()){case`RED`:case`ULPFEC`:n.fecMechanisms.push(r.name.toUpperCase())}}}t.matchPrefix(e,`a=extmap:`).forEach(e=>{n.headerExtensions.push(t.parseExtmap(e))});let i=t.matchPrefix(e,`a=rtcp-fb:* `).map(t.parseRtcpFb);return n.codecs.forEach(e=>{i.forEach(t=>{e.rtcpFeedback.find(e=>e.type===t.type&&e.parameter===t.parameter)||e.rtcpFeedback.push(t)})}),n},t.writeRtpDescription=function(e,n){let r=``;r+=`m=`+e+` `,r+=n.codecs.length>0?`9`:`0`,r+=` `+(n.profile||`UDP/TLS/RTP/SAVPF`)+` `,r+=n.codecs.map(e=>e.preferredPayloadType===void 0?e.payloadType:e.preferredPayloadType).join(` `)+`\r
118
+ `,r+=`c=IN IP4 0.0.0.0\r
119
+ `,r+=`a=rtcp:9 IN IP4 0.0.0.0\r
120
+ `,n.codecs.forEach(e=>{r+=t.writeRtpMap(e),r+=t.writeFmtp(e),r+=t.writeRtcpFb(e)});let i=0;return n.codecs.forEach(e=>{e.maxptime>i&&(i=e.maxptime)}),i>0&&(r+=`a=maxptime:`+i+`\r
121
+ `),n.headerExtensions&&n.headerExtensions.forEach(e=>{r+=t.writeExtmap(e)}),r},t.parseRtpEncodingParameters=function(e){let n=[],r=t.parseRtpParameters(e),i=r.fecMechanisms.indexOf(`RED`)!==-1,a=r.fecMechanisms.indexOf(`ULPFEC`)!==-1,o=t.matchPrefix(e,`a=ssrc:`).map(e=>t.parseSsrcMedia(e)).filter(e=>e.attribute===`cname`),s=o.length>0&&o[0].ssrc,c,l=t.matchPrefix(e,`a=ssrc-group:FID`).map(e=>e.substring(17).split(` `).map(e=>parseInt(e,10)));l.length>0&&l[0].length>1&&l[0][0]===s&&(c=l[0][1]),r.codecs.forEach(e=>{if(e.name.toUpperCase()===`RTX`&&e.parameters.apt){let t={ssrc:s,codecPayloadType:parseInt(e.parameters.apt,10)};s&&c&&(t.rtx={ssrc:c}),n.push(t),i&&(t=JSON.parse(JSON.stringify(t)),t.fec={ssrc:s,mechanism:a?`red+ulpfec`:`red`},n.push(t))}}),n.length===0&&s&&n.push({ssrc:s});let u=t.matchPrefix(e,`b=`);return u.length&&(u=u[0].indexOf(`b=TIAS:`)===0?parseInt(u[0].substring(7),10):u[0].indexOf(`b=AS:`)===0?parseInt(u[0].substring(5),10)*1e3*.95-16e3:void 0,n.forEach(e=>{e.maxBitrate=u})),n},t.parseRtcpParameters=function(e){let n={},r=t.matchPrefix(e,`a=ssrc:`).map(e=>t.parseSsrcMedia(e)).filter(e=>e.attribute===`cname`)[0];r&&(n.cname=r.value,n.ssrc=r.ssrc);let i=t.matchPrefix(e,`a=rtcp-rsize`);return n.reducedSize=i.length>0,n.compound=i.length===0,n.mux=t.matchPrefix(e,`a=rtcp-mux`).length>0,n},t.writeRtcpParameters=function(e){let t=``;return e.reducedSize&&(t+=`a=rtcp-rsize\r
122
+ `),e.mux&&(t+=`a=rtcp-mux\r
123
+ `),e.ssrc!==void 0&&e.cname&&(t+=`a=ssrc:`+e.ssrc+` cname:`+e.cname+`\r
124
+ `),t},t.parseMsid=function(e){let n,r=t.matchPrefix(e,`a=msid:`);if(r.length===1)return n=r[0].substring(7).split(` `),{stream:n[0],track:n[1]};let i=t.matchPrefix(e,`a=ssrc:`).map(e=>t.parseSsrcMedia(e)).filter(e=>e.attribute===`msid`);if(i.length>0)return n=i[0].value.split(` `),{stream:n[0],track:n[1]}},t.parseSctpDescription=function(e){let n=t.parseMLine(e),r=t.matchPrefix(e,`a=max-message-size:`),i;r.length>0&&(i=parseInt(r[0].substring(19),10)),isNaN(i)&&(i=65536);let a=t.matchPrefix(e,`a=sctp-port:`);if(a.length>0)return{port:parseInt(a[0].substring(12),10),protocol:n.fmt,maxMessageSize:i};let o=t.matchPrefix(e,`a=sctpmap:`);if(o.length>0){let e=o[0].substring(10).split(` `);return{port:parseInt(e[0],10),protocol:e[1],maxMessageSize:i}}},t.writeSctpDescription=function(e,t){let n=[];return n=e.protocol===`DTLS/SCTP`?[`m=`+e.kind+` 9 `+e.protocol+` `+t.port+`\r
125
+ `,`c=IN IP4 0.0.0.0\r
126
+ `,`a=sctpmap:`+t.port+` `+t.protocol+` 65535\r
127
+ `]:[`m=`+e.kind+` 9 `+e.protocol+` `+t.protocol+`\r
128
+ `,`c=IN IP4 0.0.0.0\r
129
+ `,`a=sctp-port:`+t.port+`\r
130
+ `],t.maxMessageSize!==void 0&&n.push(`a=max-message-size:`+t.maxMessageSize+`\r
131
+ `),n.join(``)},t.generateSessionId=function(){return Math.random().toString().substr(2,22)},t.writeSessionBoilerplate=function(e,n,r){let i,a=n===void 0?2:n;return i=e||t.generateSessionId(),`v=0\r
132
+ o=`+(r||`thisisadapterortc`)+` `+i+` `+a+` IN IP4 127.0.0.1\r
133
+ s=-\r
134
+ t=0 0\r
135
+ `},t.getDirection=function(e,n){let r=t.splitLines(e);for(let e=0;e<r.length;e++)switch(r[e]){case`a=sendrecv`:case`a=sendonly`:case`a=recvonly`:case`a=inactive`:return r[e].substring(2)}return n?t.getDirection(n):`sendrecv`},t.getKind=function(e){return t.splitLines(e)[0].split(` `)[0].substring(2)},t.isRejected=function(e){return e.split(` `,2)[1]===`0`},t.parseMLine=function(e){let n=t.splitLines(e)[0].substring(2).split(` `);return{kind:n[0],port:parseInt(n[1],10),protocol:n[2],fmt:n.slice(3).join(` `)}},t.parseOLine=function(e){let n=t.matchPrefix(e,`o=`)[0].substring(2).split(` `);return{username:n[0],sessionId:n[1],sessionVersion:parseInt(n[2],10),netType:n[3],addressType:n[4],address:n[5]}},t.isValidSDP=function(e){if(typeof e!=`string`||e.length===0)return!1;let n=t.splitLines(e);for(let e=0;e<n.length;e++)if(n[e].length<2||n[e].charAt(1)!==`=`)return!1;return!0},e.exports=t})(eB),eB.exports)}var rB=nB(),iB=MR(rB),aB=HN({__proto__:null,default:iB},[rB]);function oB(e){if(!e.RTCIceCandidate||e.RTCIceCandidate&&`foundation`in e.RTCIceCandidate.prototype)return;let t=e.RTCIceCandidate;e.RTCIceCandidate=function(e){if(typeof e==`object`&&e.candidate&&e.candidate.indexOf(`a=`)===0&&(e=JSON.parse(JSON.stringify(e)),e.candidate=e.candidate.substring(2)),e.candidate&&e.candidate.length){let n=new t(e),r=iB.parseCandidate(e.candidate);for(let e in r)e in n||Object.defineProperty(n,e,{value:r[e]});return n.toJSON=function(){return{candidate:n.candidate,sdpMid:n.sdpMid,sdpMLineIndex:n.sdpMLineIndex,usernameFragment:n.usernameFragment}},n}return new t(e)},e.RTCIceCandidate.prototype=t.prototype,lz(e,`icecandidate`,t=>(t.candidate&&Object.defineProperty(t,"candidate",{value:new e.RTCIceCandidate(t.candidate),writable:`false`}),t))}function sB(e){!e.RTCIceCandidate||e.RTCIceCandidate&&`relayProtocol`in e.RTCIceCandidate.prototype||lz(e,`icecandidate`,e=>{if(e.candidate){let t=iB.parseCandidate(e.candidate.candidate);t.type===`relay`&&(e.candidate.relayProtocol={0:`tls`,1:`tcp`,2:`udp`}[t.priority>>24])}return e})}function cB(e,t){if(!e.RTCPeerConnection||t.browser===`chrome`&&t.version>102||t.browser===`firefox`&&t.version>=113)return;`sctp`in e.RTCPeerConnection.prototype||Object.defineProperty(e.RTCPeerConnection.prototype,"sctp",{get(){return this._sctp===void 0?null:this._sctp}});let n=function(e){if(!e||!e.sdp)return!1;let t=iB.splitSections(e.sdp);return t.shift(),t.some(e=>{let t=iB.parseMLine(e);return t&&t.kind===`application`&&t.protocol.indexOf(`SCTP`)!==-1})},r=function(e){let t=e.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(t===null||t.length<2)return-1;let n=parseInt(t[1],10);return n===n?n:-1},i=function(e){let n=65536;return t.browser===`firefox`&&(n=t.version<57?e===-1?16384:2147483637:t.version<60?t.version===57?65535:65536:2147483637),n},a=function(e,n){let r=65536;t.browser===`firefox`&&t.version===57&&(r=65535);let i=iB.matchPrefix(e.sdp,`a=max-message-size:`);return i.length>0?r=parseInt(i[0].substring(19),10):t.browser===`firefox`&&n!==-1&&(r=2147483637),r},o=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){if(this._sctp=null,t.browser===`chrome`&&t.version>=76&&this.getConfiguration().sdpSemantics===`plan-b`&&Object.defineProperty(this,"sctp",{get(){return this._sctp===void 0?null:this._sctp},enumerable:!0,configurable:!0}),n(arguments[0])){let e=r(arguments[0]),t=i(e),n=a(arguments[0],e),o;o=t===0&&n===0?1/0:t===0||n===0?Math.max(t,n):Math.min(t,n);let s={};Object.defineProperty(s,"maxMessageSize",{get(){return o}}),this._sctp=s}return o.apply(this,arguments)}}function lB(e,t){if(!(e.RTCPeerConnection&&`createDataChannel`in e.RTCPeerConnection.prototype)||t.browser===`chrome`&&t.version>=149||t.browser===`firefox`&&t.version>60)return;function n(e,t){let n=e.send;e.send=function(){let r=arguments[0],i=r.length||r.size||r.byteLength;if(e.readyState===`open`&&t.sctp&&i>t.sctp.maxMessageSize)throw TypeError(`Message too large (can send a maximum of `+t.sctp.maxMessageSize+` bytes)`);return n.apply(e,arguments)}}let r=e.RTCPeerConnection.prototype.createDataChannel;e.RTCPeerConnection.prototype.createDataChannel=function(){let e=r.apply(this,arguments);return n(e,this),e},lz(e,`datachannel`,e=>(n(e.channel,e.target),e))}function uB(e){if(!e.RTCPeerConnection||`connectionState`in e.RTCPeerConnection.prototype)return;let t=e.RTCPeerConnection.prototype;Object.defineProperty(t,"connectionState",{get(){return{completed:`connected`,checking:`connecting`}[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(t,"onconnectionstatechange",{get(){return this._onconnectionstatechange||null},set(e){this._onconnectionstatechange&&(this.removeEventListener(`connectionstatechange`,this._onconnectionstatechange),delete this._onconnectionstatechange),e&&this.addEventListener(`connectionstatechange`,this._onconnectionstatechange=e)},enumerable:!0,configurable:!0}),[`setLocalDescription`,`setRemoteDescription`].forEach(e=>{let n=t[e];t[e]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=e=>{let t=e.target;if(t._lastConnectionState!==t.connectionState){t._lastConnectionState=t.connectionState;let n=new Event(`connectionstatechange`,e);t.dispatchEvent(n)}return e},this.addEventListener(`iceconnectionstatechange`,this._connectionstatechangepoly)),n.apply(this,arguments)}})}function dB(e,t){if(!e.RTCPeerConnection||t.browser===`chrome`&&t.version>=71||t.browser===`safari`&&t._safariVersion>=13.1)return;let n=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(t){if(t&&t.sdp&&t.sdp.indexOf(`
136
+ a=extmap-allow-mixed`)!==-1){let n=t.sdp.split(`
137
+ `).filter(e=>e.trim()!==`a=extmap-allow-mixed`).join(`
138
+ `);e.RTCSessionDescription&&t instanceof e.RTCSessionDescription?arguments[0]=new e.RTCSessionDescription({type:t.type,sdp:n}):t.sdp=n}return n.apply(this,arguments)}}function fB(e,t){if(!(e.RTCPeerConnection&&e.RTCPeerConnection.prototype))return;let n=e.RTCPeerConnection.prototype.addIceCandidate;n&&n.length!==0&&(e.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?(t.browser===`chrome`&&t.version<78||t.browser===`firefox`&&t.version<68||t.browser===`safari`)&&arguments[0]&&arguments[0].candidate===``?Promise.resolve():n.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())})}function pB(e,t){if(!(e.RTCPeerConnection&&e.RTCPeerConnection.prototype))return;let n=e.RTCPeerConnection.prototype.setLocalDescription;n&&n.length!==0&&(e.RTCPeerConnection.prototype.setLocalDescription=function(){let e=arguments[0]||{};if(typeof e!=`object`||e.type&&e.sdp)return n.apply(this,arguments);if(e={type:e.type,sdp:e.sdp},!e.type)switch(this.signalingState){case`stable`:case`have-local-offer`:case`have-remote-pranswer`:e.type=`offer`;break;default:e.type=`answer`}return e.sdp||e.type!==`offer`&&e.type!==`answer`?n.apply(this,[e]):(e.type===`offer`?this.createOffer:this.createAnswer).apply(this).then(e=>n.apply(this,[e]))})}var mB=Object.freeze({__proto__:null,removeExtmapAllowMixed:dB,shimAddIceCandidateNullOrEmpty:fB,shimConnectionState:uB,shimMaxMessageSize:cB,shimParameterlessSetLocalDescription:pB,shimRTCIceCandidate:oB,shimRTCIceCandidateRelayProtocol:sB,shimSendThrowTypeError:lB});function hB(){let e=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:{}).window,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{shimChrome:!0,shimFirefox:!0,shimSafari:!0},n=fz,r=mz(e),i={browserDetails:r,commonShim:mB,extractVersion:cz,disableLog:uz,disableWarnings:dz,sdp:aB};switch(r.browser){case`chrome`:if(!kz||!Dz||!t.shimChrome)return n(`Chrome shim is not included in this adapter release.`),i;if(r.version===null)return n(`Chrome shim can not determine version, not shimming.`),i;n(`adapter.js shimming chrome.`),i.browserShim=kz,fB(e,r),pB(e),bz(e,r),xz(e),Dz(e,r),Sz(e,r),Ez(e,r),Cz(e),wz(e,r),Oz(e,r),oB(e),sB(e),uB(e),cB(e,r),lB(e,r),dB(e,r);break;case`firefox`:if(!Uz||!Nz||!t.shimFirefox)return n(`Firefox shim is not included in this adapter release.`),i;n(`adapter.js shimming firefox.`),i.browserShim=Uz,fB(e,r),pB(e),Az(e,r),Nz(e,r),Pz(e,r),Mz(e),Lz(e),Fz(e),Iz(e),Rz(e),zz(e,r),Bz(e,r),Vz(e,r),Hz(e,r),oB(e),uB(e),cB(e,r),lB(e,r);break;case`safari`:if(!$z||!t.shimSafari)return n(`Safari shim is not included in this adapter release.`),i;n(`adapter.js shimming safari.`),i.browserShim=$z,fB(e,r),pB(e),Yz(e),Zz(e),Kz(e),Wz(e),Gz(e),Xz(e),qz(e),Qz(e),oB(e),sB(e),cB(e,r),lB(e,r),dB(e,r);break;default:n(`Unsupported browser!`)}return i}hB({window:typeof window>`u`?void 0:window});var gB,_B,vB=class extends (_B=Promise){constructor(e){super(e)}catch(e){return super.catch(e)}static reject(e){return super.reject(e)}static all(e){return super.all(e)}static race(e){return super.race(e)}};gB=vB,vB.resolve=e=>Reflect.get(_B,`resolve`,gB).call(gB,e);var yB=/version\/(\d+(\.?_?\d+)+)/i,bB;function xB(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(e===void 0&&typeof navigator>`u`)return;let n=(e??navigator.userAgent).toLowerCase();return(bB===void 0||t)&&(bB=SB.find(e=>e.test.test(n))?.describe(n)),bB}var SB=[{test:/firefox|iceweasel|fxios/i,describe(e){return{name:`Firefox`,version:CB(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,e),os:e.toLowerCase().includes(`fxios`)?`iOS`:void 0,osVersion:wB(e)}}},{test:/chrom|crios|crmo/i,describe(e){return{name:`Chrome`,version:CB(/(?:chrome|chromium|crios|crmo)\/(\d+(\.?_?\d+)+)/i,e),os:e.toLowerCase().includes(`crios`)?`iOS`:void 0,osVersion:wB(e)}}},{test:/safari|applewebkit/i,describe(e){return{name:`Safari`,version:CB(yB,e),os:e.includes(`mobile/`)?`iOS`:`macOS`,osVersion:wB(e)}}}];function CB(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,r=t.match(e);return r&&r.length>=n&&r[n]||``}function wB(e){return e.includes(`mac os`)?CB(/\(.+?(\d+_\d+(:?_\d+)?)/,e,1).replace(/_/g,`.`):void 0}var TB=`2.22.3`,EB=class extends Error{constructor(e,t,n){super(t||`an error has occurred`),this.name=`LiveKitError`,this.code=e,n?.cause!==void 0&&(this.cause=n?.cause)}},DB=class extends EB{},OB;(function(e){e[e.NotAllowed=0]=`NotAllowed`,e[e.ServerUnreachable=1]=`ServerUnreachable`,e[e.InternalError=2]=`InternalError`,e[e.Cancelled=3]=`Cancelled`,e[e.LeaveRequest=4]=`LeaveRequest`,e[e.Timeout=5]=`Timeout`,e[e.WebSocket=6]=`WebSocket`,e[e.ServiceNotFound=7]=`ServiceNotFound`})(OB||={});var kB=class e extends DB{constructor(e,t,n,r){super(1,e),this.name=`ConnectionError`,this.status=n,this.reason=t,this.context=r,this.reasonName=OB[t]}static notAllowed(t,n,r){return new e(t,OB.NotAllowed,n,r)}static timeout(t){return new e(t,OB.Timeout)}static leaveRequest(t,n){return new e(t,OB.LeaveRequest,void 0,n)}static internal(t,n){return new e(t,OB.InternalError,void 0,n)}static cancelled(t){return new e(t,OB.Cancelled)}static serverUnreachable(t,n){return new e(t,OB.ServerUnreachable,n)}static websocket(t,n,r){return new e(t,OB.WebSocket,n,r)}static serviceNotFound(t,n){return new e(t,OB.ServiceNotFound,void 0,n)}},AB=class extends EB{constructor(e){super(21,e??`device is unsupported`),this.name=`DeviceUnsupportedError`}},jB=class extends EB{constructor(e){super(20,e??`track is invalid`),this.name=`TrackInvalidError`}},MB=class extends EB{constructor(e){super(10,e||`unsupported server`),this.name=`UnsupportedServer`}},NB=class extends EB{constructor(e){super(12,e||`unexpected connection state`),this.name=`UnexpectedConnectionState`}},PB=class extends EB{constructor(e){super(13,e||`unable to negotiate`),this.name=`NegotiationError`}},FB=class extends EB{constructor(e){super(14,e||`unable to publish data`),this.name=`PublishDataError`}},IB=class extends EB{constructor(e,t){super(15,e),this.name=`PublishTrackError`,this.status=t}},LB=class extends DB{constructor(e,t){super(15,e),this.name=`SignalRequestError`,this.reason=t,this.reasonName=typeof t==`string`?t:TR[t]}},RB;(function(e){e[e.AlreadyOpened=0]=`AlreadyOpened`,e[e.AbnormalEnd=1]=`AbnormalEnd`,e[e.DecodeFailed=2]=`DecodeFailed`,e[e.LengthExceeded=3]=`LengthExceeded`,e[e.Incomplete=4]=`Incomplete`,e[e.HandlerAlreadyRegistered=7]=`HandlerAlreadyRegistered`,e[e.EncryptionTypeMismatch=8]=`EncryptionTypeMismatch`,e[e.HeaderTooLarge=9]=`HeaderTooLarge`,e[e.PayloadTooLarge=10]=`PayloadTooLarge`})(RB||={});var zB=class extends DB{constructor(e,t){super(16,e),this.name=`DataStreamError`,this.reason=t,this.reasonName=RB[t]}},BB=class extends EB{constructor(e){super(18,e),this.name=`SignalReconnectError`}},VB;(function(e){e.PermissionDenied=`PermissionDenied`,e.NotFound=`NotFound`,e.DeviceInUse=`DeviceInUse`,e.Other=`Other`})(VB||={}),(function(e){function t(t){if(t&&`name`in t)return t.name===`NotFoundError`||t.name===`DevicesNotFoundError`?e.NotFound:t.name===`NotAllowedError`||t.name===`PermissionDeniedError`?e.PermissionDenied:t.name===`NotReadableError`||t.name===`TrackStartError`?e.DeviceInUse:e.Other}e.getFailure=t})(VB||={});var HB=class{};HB.setTimeout=function(){return setTimeout(...arguments)},HB.setInterval=function(){return setInterval(...arguments)},HB.clearTimeout=function(){return clearTimeout(...arguments)},HB.clearInterval=function(){return clearInterval(...arguments)};var Y;(function(e){e.Connected=`connected`,e.Reconnecting=`reconnecting`,e.SignalReconnecting=`signalReconnecting`,e.Reconnected=`reconnected`,e.Disconnected=`disconnected`,e.ConnectionStateChanged=`connectionStateChanged`,e.Moved=`moved`,e.MediaDevicesChanged=`mediaDevicesChanged`,e.ParticipantConnected=`participantConnected`,e.ParticipantDisconnected=`participantDisconnected`,e.TrackPublished=`trackPublished`,e.TrackSubscribed=`trackSubscribed`,e.TrackSubscriptionFailed=`trackSubscriptionFailed`,e.TrackUnpublished=`trackUnpublished`,e.TrackUnsubscribed=`trackUnsubscribed`,e.TrackMuted=`trackMuted`,e.TrackUnmuted=`trackUnmuted`,e.LocalTrackPublished=`localTrackPublished`,e.LocalTrackUnpublished=`localTrackUnpublished`,e.LocalAudioSilenceDetected=`localAudioSilenceDetected`,e.ActiveSpeakersChanged=`activeSpeakersChanged`,e.ParticipantMetadataChanged=`participantMetadataChanged`,e.ParticipantNameChanged=`participantNameChanged`,e.ParticipantAttributesChanged=`participantAttributesChanged`,e.ParticipantActive=`participantActive`,e.RoomMetadataChanged=`roomMetadataChanged`,e.DataReceived=`dataReceived`,e.SipDTMFReceived=`sipDTMFReceived`,e.TranscriptionReceived=`transcriptionReceived`,e.ConnectionQualityChanged=`connectionQualityChanged`,e.TrackStreamStateChanged=`trackStreamStateChanged`,e.TrackSubscriptionPermissionChanged=`trackSubscriptionPermissionChanged`,e.TrackSubscriptionStatusChanged=`trackSubscriptionStatusChanged`,e.AudioPlaybackStatusChanged=`audioPlaybackChanged`,e.VideoPlaybackStatusChanged=`videoPlaybackChanged`,e.MediaDevicesError=`mediaDevicesError`,e.ParticipantPermissionsChanged=`participantPermissionsChanged`,e.SignalConnected=`signalConnected`,e.RecordingStatusChanged=`recordingStatusChanged`,e.ParticipantEncryptionStatusChanged=`participantEncryptionStatusChanged`,e.EncryptionError=`encryptionError`,e.DCBufferStatusChanged=`dcBufferStatusChanged`,e.ActiveDeviceChanged=`activeDeviceChanged`,e.ChatMessage=`chatMessage`,e.LocalTrackSubscribed=`localTrackSubscribed`,e.MetricsReceived=`metricsReceived`,e.DataTrackPublished=`dataTrackPublished`,e.DataTrackUnpublished=`dataTrackUnpublished`,e.LocalDataTrackPublished=`localDataTrackPublished`,e.LocalDataTrackUnpublished=`localDataTrackUnpublished`})(Y||={});var X;(function(e){e.TrackPublished=`trackPublished`,e.TrackSubscribed=`trackSubscribed`,e.TrackSubscriptionFailed=`trackSubscriptionFailed`,e.TrackUnpublished=`trackUnpublished`,e.TrackUnsubscribed=`trackUnsubscribed`,e.TrackMuted=`trackMuted`,e.TrackUnmuted=`trackUnmuted`,e.LocalTrackPublished=`localTrackPublished`,e.LocalTrackUnpublished=`localTrackUnpublished`,e.LocalTrackCpuConstrained=`localTrackCpuConstrained`,e.LocalSenderCreated=`localSenderCreated`,e.ParticipantMetadataChanged=`participantMetadataChanged`,e.ParticipantNameChanged=`participantNameChanged`,e.DataReceived=`dataReceived`,e.SipDTMFReceived=`sipDTMFReceived`,e.TranscriptionReceived=`transcriptionReceived`,e.IsSpeakingChanged=`isSpeakingChanged`,e.ConnectionQualityChanged=`connectionQualityChanged`,e.TrackStreamStateChanged=`trackStreamStateChanged`,e.TrackSubscriptionPermissionChanged=`trackSubscriptionPermissionChanged`,e.TrackSubscriptionStatusChanged=`trackSubscriptionStatusChanged`,e.TrackCpuConstrained=`trackCpuConstrained`,e.MediaDevicesError=`mediaDevicesError`,e.AudioStreamAcquired=`audioStreamAcquired`,e.ParticipantPermissionsChanged=`participantPermissionsChanged`,e.PCTrackAdded=`pcTrackAdded`,e.AttributesChanged=`attributesChanged`,e.LocalTrackSubscribed=`localTrackSubscribed`,e.ChatMessage=`chatMessage`,e.Active=`active`})(X||={});var Z;(function(e){e.TransportsCreated=`transportsCreated`,e.Connected=`connected`,e.Disconnected=`disconnected`,e.Resuming=`resuming`,e.Resumed=`resumed`,e.Restarting=`restarting`,e.Restarted=`restarted`,e.SignalResumed=`signalResumed`,e.SignalRestarted=`signalRestarted`,e.Closing=`closing`,e.MediaTrackAdded=`mediaTrackAdded`,e.ActiveSpeakersUpdate=`activeSpeakersUpdate`,e.DataPacketReceived=`dataPacketReceived`,e.RTPVideoMapUpdate=`rtpVideoMapUpdate`,e.DCBufferStatusChanged=`dcBufferStatusChanged`,e.ParticipantUpdate=`participantUpdate`,e.RoomUpdate=`roomUpdate`,e.SpeakersChanged=`speakersChanged`,e.StreamStateChanged=`streamStateChanged`,e.ConnectionQualityUpdate=`connectionQualityUpdate`,e.SubscriptionError=`subscriptionError`,e.SubscriptionPermissionUpdate=`subscriptionPermissionUpdate`,e.RemoteMute=`remoteMute`,e.SubscribedQualityUpdate=`subscribedQualityUpdate`,e.LocalTrackUnpublished=`localTrackUnpublished`,e.LocalTrackSubscribed=`localTrackSubscribed`,e.Offline=`offline`,e.SignalRequestResponse=`signalRequestResponse`,e.SignalConnected=`signalConnected`,e.RoomMoved=`roomMoved`,e.PublishDataTrackResponse=`publishDataTrackResponse`,e.UnPublishDataTrackResponse=`unPublishDataTrackResponse`,e.DataTrackSubscriberHandles=`dataTrackSubscriberHandles`,e.DataTrackPacketReceived=`dataTrackPacketReceived`,e.Joined=`joined`,e.TokenRefreshed=`tokenRefreshed`,e.ServerRegionsReported=`serverRegionsReported`})(Z||={});var Q;(function(e){e.Message=`message`,e.Muted=`muted`,e.Unmuted=`unmuted`,e.Restarted=`restarted`,e.Ended=`ended`,e.Subscribed=`subscribed`,e.Unsubscribed=`unsubscribed`,e.CpuConstrained=`cpuConstrained`,e.UpdateSettings=`updateSettings`,e.UpdateSubscription=`updateSubscription`,e.AudioPlaybackStarted=`audioPlaybackStarted`,e.AudioPlaybackFailed=`audioPlaybackFailed`,e.AudioSilenceDetected=`audioSilenceDetected`,e.VisibilityChanged=`visibilityChanged`,e.VideoDimensionsChanged=`videoDimensionsChanged`,e.VideoPlaybackStarted=`videoPlaybackStarted`,e.VideoPlaybackFailed=`videoPlaybackFailed`,e.ElementAttached=`elementAttached`,e.ElementDetached=`elementDetached`,e.UpstreamPaused=`upstreamPaused`,e.UpstreamResumed=`upstreamResumed`,e.SubscriptionPermissionChanged=`subscriptionPermissionChanged`,e.SubscriptionStatusChanged=`subscriptionStatusChanged`,e.SubscriptionFailed=`subscriptionFailed`,e.TrackProcessorUpdate=`trackProcessorUpdate`,e.AudioTrackFeatureUpdate=`audioTrackFeatureUpdate`,e.TranscriptionReceived=`transcriptionReceived`,e.TimeSyncUpdate=`timeSyncUpdate`,e.PreConnectBufferFlushed=`preConnectBufferFlushed`})(Q||={});function UB(e){let t={};for(let r of Object.entries(e)){var n=zP(r,2);let e=n[0],i=n[1];i!==void 0&&(t[e]=i)}return t}function WB(e,t){return e&&t?`${e}x${t}`:void 0}function GB(e){return Math.round(e*1e4)/1e4}function KB(e){let t=e.jitterBufferDelay,n=e.jitterBufferEmittedCount;return t!==void 0&&n?GB(t/n):void 0}function qB(e,t){if(e.playoutDelay!==void 0)return GB(e.playoutDelay);let n=t?.totalPlayoutDelay,r=t?.totalSamplesCount;return n!==void 0&&r?GB(n/r):void 0}function JB(e){let t=new Map,n=[],r=[],i=[],a;e.forEach(e=>t.set(e.id,e));let o=e=>e.codecId?t.get(e.codecId)?.mimeType:void 0,s=(e,n)=>e[n]?t.get(e[n]):void 0;e.forEach(e=>{switch(e.type){case`inbound-rtp`:{let t=s(e,`playoutId`);r.push(UB({kind:e.kind,ssrc:e.ssrc,mid:e.mid,trackId:e.trackIdentifier,codec:o(e),decoder:e.decoderImplementation,resolution:WB(e.frameWidth,e.frameHeight),fps:e.framesPerSecond,bytesReceived:e.bytesReceived,packetsReceived:e.packetsReceived,packetsLost:e.packetsLost,packetsDiscarded:e.packetsDiscarded,framesReceived:e.framesReceived,framesDecoded:e.framesDecoded,framesDropped:e.framesDropped,keyFramesDecoded:e.keyFramesDecoded,freezeCount:e.freezeCount,totalFreezesDuration:e.totalFreezesDuration,pauseCount:e.pauseCount,nackCount:e.nackCount,pliCount:e.pliCount,firCount:e.firCount,jitter:e.jitter,jitterBuffer:KB(e),playoutDelay:qB(e,t),audioLevel:e.audioLevel,totalSamplesReceived:e.totalSamplesReceived,concealedSamples:e.concealedSamples}));break}case`outbound-rtp`:{let t=s(e,`remoteId`),n=s(e,`mediaSourceId`);i.push(UB({kind:e.kind,ssrc:e.ssrc,mid:e.mid,rid:e.rid,trackId:n?.trackIdentifier,active:e.active,codec:o(e),encoder:e.encoderImplementation,resolution:WB(e.frameWidth,e.frameHeight),fps:e.framesPerSecond,captureResolution:WB(n?.width,n?.height),captureFps:n?.framesPerSecond,audioLevel:n?.audioLevel,targetBitrate:e.targetBitrate,bytesSent:e.bytesSent,packetsSent:e.packetsSent,retransmittedPacketsSent:e.retransmittedPacketsSent,framesEncoded:e.framesEncoded,keyFramesEncoded:e.keyFramesEncoded,limitedBy:e.qualityLimitationReason===`none`?void 0:e.qualityLimitationReason,nackCount:e.nackCount,pliCount:e.pliCount,firCount:e.firCount,remotePacketsLost:t?.packetsLost,remoteFractionLost:t?.fractionLost,remoteJitter:t?.jitter,remoteRoundTripTime:t?.roundTripTime}));break}case`transport`:a=e;break;case`candidate-pair`:n.push(e)}});let c=a?.selectedCandidatePairId,l=(c?t.get(c):void 0)??n.find(e=>e.selected)??n.find(e=>e.nominated),u=l?.localCandidateId?t.get(l.localCandidateId):void 0,d=l?.remoteCandidateId?t.get(l.remoteCandidateId):void 0,f=UB({ice:a?.iceState,dtls:a?.dtlsState,route:u&&d?`${u.candidateType}/${u.protocol} -> ${d.candidateType}`:void 0,network:u?.networkType,currentRoundTripTime:l?.currentRoundTripTime,availableOutgoingBitrate:l?.availableOutgoingBitrate,availableIncomingBitrate:l?.availableIncomingBitrate,bytesSent:l?.bytesSent,bytesReceived:l?.bytesReceived,candidatePairChanges:a?.selectedCandidatePairChanges});return{connection:Object.keys(f).length>0?f:void 0,outbound:i.length>0?i:void 0,inbound:r.length>0?r:void 0}}function YB(e){return e===void 0?e:typeof structuredClone==`function`?typeof e==`object`&&e?structuredClone(Object.assign({},e)):structuredClone(e):JSON.parse(JSON.stringify(e))}var XB=class{constructor(e,t,n,r,i){if(typeof e==`object`)this.width=e.width,this.height=e.height,this.aspectRatio=e.aspectRatio,this.encoding={maxBitrate:e.maxBitrate,maxFramerate:e.maxFramerate,priority:e.priority};else if(t!==void 0&&n!==void 0)this.width=e,this.height=t,this.aspectRatio=e/t,this.encoding={maxBitrate:n,maxFramerate:r,priority:i};else throw TypeError(`Unsupported options: provide at least width, height and maxBitrate`)}get resolution(){return{width:this.width,height:this.height,frameRate:this.encoding.maxFramerate,aspectRatio:this.aspectRatio}}},ZB=[`vp8`,`h264`],QB=[`vp8`,`h264`,`vp9`,`av1`,`h265`];function $B(e){return!!ZB.find(t=>t===e)}var eV=$B,tV;(function(e){e[e.PREFER_REGRESSION=0]=`PREFER_REGRESSION`,e[e.SIMULCAST=1]=`SIMULCAST`,e[e.REGRESSION=2]=`REGRESSION`})(tV||={});var nV;(function(e){e.telephone={maxBitrate:12e3},e.speech={maxBitrate:24e3},e.music={maxBitrate:48e3},e.musicStereo={maxBitrate:64e3},e.musicHighQuality={maxBitrate:96e3},e.musicHighQualityStereo={maxBitrate:128e3}})(nV||={});var rV={h90:new XB(160,90,9e4,20),h180:new XB(320,180,16e4,20),h216:new XB(384,216,18e4,20),h360:new XB(640,360,45e4,20),h540:new XB(960,540,8e5,25),h720:new XB(1280,720,17e5,30),h1080:new XB(1920,1080,3e6,30),h1440:new XB(2560,1440,5e6,30),h2160:new XB(3840,2160,8e6,30)},iV={h120:new XB(160,120,7e4,20),h180:new XB(240,180,125e3,20),h240:new XB(320,240,14e4,20),h360:new XB(480,360,33e4,20),h480:new XB(640,480,5e5,20),h540:new XB(720,540,6e5,25),h720:new XB(960,720,13e5,30),h1080:new XB(1440,1080,23e5,30),h1440:new XB(1920,1440,38e5,30)},aV={h360fps3:new XB(640,360,2e5,3,`medium`),h360fps15:new XB(640,360,4e5,15,`medium`),h720fps5:new XB(1280,720,8e5,5,`medium`),h720fps15:new XB(1280,720,15e5,15,`medium`),h720fps30:new XB(1280,720,2e6,30,`medium`),h1080fps15:new XB(1920,1080,25e5,15,`medium`),h1080fps30:new XB(1920,1080,5e6,30,`medium`),original:new XB(0,0,7e6,30,`medium`)};function oV(e,t,n){var r,i;let a=yV(e??{}),o=a.optionsWithoutProcessor,s=a.audioProcessor,c=a.videoProcessor,l=t?.processor,u=n?.processor,d=o??{};return d.audio===!0&&(d.audio={}),d.video===!0&&(d.video={}),d.audio&&(sV(d.audio,t),(r=d.audio).deviceId??(r.deviceId={ideal:`default`}),(s||l)&&(d.audio.processor=s??l)),d.video&&(sV(d.video,n),(i=d.video).deviceId??(i.deviceId={ideal:`default`}),(c||u)&&(d.video.processor=c??u)),d}function sV(e,t){return Object.keys(t).forEach(n=>{e[n]===void 0&&(e[n]=t[n])}),e}function cV(e){var t,n;let r={};if(e.video){if(typeof e.video==`object`){let n={},i=n,a=e.video;Object.keys(a).forEach(e=>{switch(e){case`resolution`:sV(i,a.resolution);break;default:i[e]=a[e]}}),r.video=n,(t=r.video).deviceId??(t.deviceId={ideal:`default`})}else r.video=e.video?{deviceId:{ideal:`default`}}:!1}else r.video=!1;return e.audio?typeof e.audio==`object`?(r.audio=e.audio,(n=r.audio).deviceId??(n.deviceId={ideal:`default`})):r.audio={deviceId:{ideal:`default`}}:r.audio=!1,r}function lV(e){return J(this,arguments,void 0,function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:200;return function*(){let n=uV();if(n){let r=n.createAnalyser();r.fftSize=2048;let i=r.frequencyBinCount,a=new Uint8Array(i);n.createMediaStreamSource(new MediaStream([e.mediaStreamTrack])).connect(r),yield jV(t),r.getByteTimeDomainData(a);let o=a.some(e=>e!==128&&e!==0);return n.close(),!o}return!1}()})}function uV(){let e=typeof window<`u`&&(window.AudioContext||window.webkitAudioContext);if(e){let t=new e({latencyHint:`interactive`});if(t.state===`suspended`&&typeof window<`u`&&window.document?.body){let e=()=>J(this,void 0,void 0,function*(){var n;try{t.state===`suspended`&&(yield t.resume())}catch(e){console.warn(`Error trying to auto-resume audio context`,e)}finally{(n=window.document.body)==null||n.removeEventListener(`click`,e)}});t.addEventListener(`statechange`,()=>{var n;t.state===`closed`&&((n=window.document.body)==null||n.removeEventListener(`click`,e))}),window.document.body.addEventListener(`click`,e)}return t}}function dV(e){return e===`audioinput`?$.Source.Microphone:e===`videoinput`?$.Source.Camera:$.Source.Unknown}function fV(e){if(e===$.Source.Microphone)return`audioinput`;if(e===$.Source.Camera)return`videoinput`}function pV(e){let t=e.video??!0;return e.resolution&&e.resolution.width>0&&e.resolution.height>0&&(t=typeof t==`boolean`?{}:t,t=qV()?Object.assign(Object.assign({},t),{width:{max:e.resolution.width},height:{max:e.resolution.height},frameRate:e.resolution.frameRate}):Object.assign(Object.assign({},t),{width:{ideal:e.resolution.width},height:{ideal:e.resolution.height},frameRate:e.resolution.frameRate})),{audio:e.audio??!1,video:t,controller:e.controller,selfBrowserSurface:e.selfBrowserSurface,surfaceSwitching:e.surfaceSwitching,systemAudio:e.systemAudio,preferCurrentTab:e.preferCurrentTab}}function mV(e){return e.split(`/`)[1].toLowerCase()}function hV(e){let t=[];return e.forEach(e=>{e.track!==void 0&&t.push(new IL({cid:e.track.mediaStreamID,track:e.trackInfo}))}),t}function gV(e){return`mediaStreamTrack`in e?{trackID:e.sid,source:e.source,muted:e.isMuted,enabled:e.mediaStreamTrack.enabled,kind:e.kind,streamID:e.mediaStreamID,streamTrackID:e.mediaStreamTrack.id}:{trackID:e.trackSid,enabled:e.isEnabled,muted:e.isMuted,trackInfo:Object.assign({mimeType:e.mimeType,name:e.trackName,encrypted:e.isEncrypted,kind:e.kind,source:e.source},e.track?gV(e.track):{})}}function _V(){return typeof RTCRtpReceiver<`u`&&typeof RTCRtpReceiver.prototype.getSynchronizationSources==`function`}function vV(e,t){e===void 0&&(e={}),t===void 0&&(t={});let n=[...Object.keys(t),...Object.keys(e)],r={};for(let i of n)e[i]!==t[i]&&(r[i]=t[i]??``);return r}function yV(e){let t=Object.assign({},e),n,r;return typeof t.audio==`object`&&t.audio.processor&&(n=t.audio.processor,t.audio=Object.assign(Object.assign({},t.audio),{processor:void 0})),typeof t.video==`object`&&t.video.processor&&(r=t.video.processor,t.video=Object.assign(Object.assign({},t.video),{processor:void 0})),{audioProcessor:n,videoProcessor:r,optionsWithoutProcessor:YB(t)}}function bV(e){switch(e){case fI.CAMERA:return $.Source.Camera;case fI.MICROPHONE:return $.Source.Microphone;case fI.SCREEN_SHARE:return $.Source.ScreenShare;case fI.SCREEN_SHARE_AUDIO:return $.Source.ScreenShareAudio;default:return $.Source.Unknown}}function xV(e,t){return e.width*e.height<t.width*t.height}function SV(e,t){return e.layers?.find(e=>e.quality===t)}var CV=5e3,wV=[],TV;(function(e){e[e.LOW=0]=`LOW`,e[e.MEDIUM=1]=`MEDIUM`,e[e.HIGH=2]=`HIGH`})(TV||={});var $=class e extends az.EventEmitter{get streamState(){return this._streamState}setStreamState(e){this._streamState!==e&&this.log.debug(`stream state changed: ${this._streamState} -> ${e}`),this._streamState=e}constructor(t,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};super(),this.attachedElements=[],this.isMuted=!1,this._streamState=e.StreamState.Active,this.isInBackground=!1,this._currentBitrate=0,this.finalStatsLogged=!1,this.log=BR,this.appVisibilityChangedListener=()=>{this.backgroundTimeout&&clearTimeout(this.backgroundTimeout),document.visibilityState===`hidden`?this.backgroundTimeout=setTimeout(()=>this.handleAppVisibilityChanged(),CV):this.handleAppVisibilityChanged()},this.loggerContextCb=r.loggerContextCb,this.log=VR(r.loggerName??zR.Track,()=>this.logContext),this.setMaxListeners(100),this.kind=n,this._mediaStreamTrack=t,this._mediaStreamID=t.id,this.source=e.Source.Unknown}get logContext(){return Object.assign(Object.assign({},this.loggerContextCb?.call(this)),gV(this))}get currentBitrate(){return this._currentBitrate}get mediaStreamTrack(){return this._mediaStreamTrack}get mediaStreamID(){return this._mediaStreamID}attach(t){let n=`audio`;this.kind===e.Kind.Video&&(n=`video`),this.attachedElements.length===0&&this.kind===e.Kind.Video&&this.addAppVisibilityListener(),t||(n===`audio`&&(wV.forEach(e=>{e.parentElement===null&&!t&&(t=e)}),t&&wV.splice(wV.indexOf(t),1)),t||=document.createElement(n)),this.attachedElements.includes(t)||this.attachedElements.push(t),EV(this.mediaStreamTrack,t);let r=t.srcObject.getTracks(),i=r.some(e=>e.kind===`audio`);return t.play().then(()=>{this.emit(i?Q.AudioPlaybackStarted:Q.VideoPlaybackStarted)}).catch(e=>{e.name===`NotAllowedError`?this.emit(i?Q.AudioPlaybackFailed:Q.VideoPlaybackFailed,e):e.name===`AbortError`?this.log.debug(`${i?`audio`:`video`} playback aborted, likely due to new play request`):this.log.warn(`could not playback ${i?`audio`:`video`}`,{error:e}),i&&t&&r.some(e=>e.kind===`video`)&&e.name===`NotAllowedError`&&(t.muted=!0,t.play().catch(()=>{}))}),this.emit(Q.ElementAttached,t),t}detach(e){try{if(e){DV(this.mediaStreamTrack,e);let t=this.attachedElements.indexOf(e);return t>=0&&(this.attachedElements.splice(t,1),this.recycleElement(e),this.emit(Q.ElementDetached,e)),e}let t=[];return this.attachedElements.forEach(e=>{DV(this.mediaStreamTrack,e),t.push(e),this.recycleElement(e),this.emit(Q.ElementDetached,e)}),this.attachedElements=[],t}finally{this.attachedElements.length===0&&this.removeAppVisibilityListener()}}stop(){this.log.debug(`stopping track`),this.stopMonitor(),this._mediaStreamTrack.stop()}enable(){this._mediaStreamTrack.enabled=!0}disable(){this._mediaStreamTrack.enabled=!1}stopMonitor(){this.monitorInterval&&clearInterval(this.monitorInterval),this.timeSyncHandle!==void 0&&(cancelAnimationFrame(this.timeSyncHandle),this.timeSyncHandle=void 0),this.logFinalStats()}logFinalStats(){this.finalStatsLogged||(this.finalStatsLogged=!0,this.getRTCStatsReport().then(e=>{e&&this.log.info(`final track stats`,JB(e))}).catch(e=>this.log.debug(`could not collect final track stats`,{error:e})))}updateLoggerOptions(e){e.loggerContextCb&&(this.loggerContextCb=e.loggerContextCb),e.loggerName&&(this.log=VR(e.loggerName,()=>this.logContext))}recycleElement(e){if(e instanceof HTMLAudioElement){let t=!0;e.pause(),wV.forEach(e=>{e.parentElement||(t=!1)}),t&&wV.push(e)}}handleAppVisibilityChanged(){return J(this,void 0,void 0,function*(){this.isInBackground=document.visibilityState===`hidden`,!this.isInBackground&&this.kind===e.Kind.Video&&setTimeout(()=>this.attachedElements.forEach(e=>e.play().catch(()=>{})),0)})}addAppVisibilityListener(){$V()?(this.isInBackground=document.visibilityState===`hidden`,document.addEventListener(`visibilitychange`,this.appVisibilityChangedListener)):this.isInBackground=!1}removeAppVisibilityListener(){$V()&&document.removeEventListener(`visibilitychange`,this.appVisibilityChangedListener)}};function EV(e,t){let n;n=t.srcObject instanceof MediaStream?t.srcObject:new MediaStream;let r;r=e.kind===`audio`?n.getAudioTracks():n.getVideoTracks(),r.includes(e)||(r.forEach(e=>{n.removeTrack(e)}),n.addTrack(e)),(!qV()||!(t instanceof HTMLVideoElement))&&(t.autoplay=!0),t.muted=n.getAudioTracks().length===0,t instanceof HTMLVideoElement&&(t.playsInline=!0),t.srcObject!==n&&(t.srcObject=n,(qV()||WV())&&t instanceof HTMLVideoElement&&setTimeout(()=>{t.srcObject=n,t.play().catch(()=>{})},0))}function DV(e,t){if(t.srcObject instanceof MediaStream){let n=t.srcObject;n.removeTrack(e),t.srcObject=n.getTracks().length>0?n:null}}(function(e){let t;(function(e){e.Audio=`audio`,e.Video=`video`,e.Unknown=`unknown`})(t=e.Kind||={});let n;(function(e){e.Camera=`camera`,e.Microphone=`microphone`,e.ScreenShare=`screen_share`,e.ScreenShareAudio=`screen_share_audio`,e.Unknown=`unknown`})(n=e.Source||={});let r;(function(e){e.Active=`active`,e.Paused=`paused`,e.Unknown=`unknown`})(r=e.StreamState||={});function i(e){switch(e){case t.Audio:return dI.AUDIO;case t.Video:return dI.VIDEO;default:return dI.DATA}}e.kindToProto=i;function a(e){switch(e){case dI.AUDIO:return t.Audio;case dI.VIDEO:return t.Video;default:return t.Unknown}}e.kindFromProto=a;function o(e){switch(e){case n.Camera:return fI.CAMERA;case n.Microphone:return fI.MICROPHONE;case n.ScreenShare:return fI.SCREEN_SHARE;case n.ScreenShareAudio:return fI.SCREEN_SHARE_AUDIO;default:return fI.UNKNOWN}}e.sourceToProto=o;function s(e){switch(e){case fI.CAMERA:return n.Camera;case fI.MICROPHONE:return n.Microphone;case fI.SCREEN_SHARE:return n.ScreenShare;case fI.SCREEN_SHARE_AUDIO:return n.ScreenShareAudio;default:return n.Unknown}}e.sourceFromProto=s;function c(e){switch(e){case bL.ACTIVE:return r.Active;case bL.PAUSED:return r.Paused;default:return r.Unknown}}e.streamStateFromProto=c})($||={});var OV=`|`,kV=`https://aomediacodec.github.io/av1-rtp-spec/#dependency-descriptor-rtp-header-extension`;function AV(e){let t=e.split(OV);return t.length>1?[t[0],e.substr(t[0].length+1)]:[e,``]}function jV(e){return new vB(t=>HB.setTimeout(t,e))}function MV(){return`addTransceiver`in RTCPeerConnection.prototype}function NV(){return`addTrack`in RTCPeerConnection.prototype}function PV(){if(!(`getCapabilities`in RTCRtpSender)||qV()||WV())return!1;let e=RTCRtpSender.getCapabilities(`video`),t=!1;if(e){for(let n of e.codecs)if(n.mimeType.toLowerCase()===`video/av1`){t=!0;break}}return t}function FV(){if(!(`getCapabilities`in RTCRtpSender)||WV())return!1;if(qV()){let e=xB();if(e?.version&&oH(e.version,`16`)<0||e?.os===`iOS`&&e?.osVersion&&oH(e.osVersion,`16`)<0)return!1}let e=RTCRtpSender.getCapabilities(`video`),t=!1;if(e){for(let n of e.codecs)if(n.mimeType.toLowerCase()===`video/vp9`){t=!0;break}}return t}function IV(e){return e===`av1`||e===`vp9`}function LV(e){let t=e.getHeaderExtensionsToNegotiate?.call(e);if(!t||!e.setHeaderExtensionsToNegotiate)return!1;let n=t.find(e=>e.uri===kV);if(!n)return!1;if(n.direction!==`stopped`)return!0;n.direction=`sendrecv`;try{return e.setHeaderExtensionsToNegotiate(t),!0}catch{return!1}}function RV(e,t){return IV(e)&&!!t?.simulcast&&!!t.scalabilityMode?.startsWith(`L1T`)}function zV(){let e=xB();return JV()||eH()||e?.name===`Chrome`&&oH(e.version,`113`)<0}var BV=`1.13.6`;function VV(e){return e?oH(e,BV)>0:!1}function HV(e){return!document||JV()?!1:(e||=document.createElement(`audio`),`setSinkId`in e)}function UV(){return typeof RTCPeerConnection>`u`?!1:MV()||NV()}function WV(){return xB()?.name===`Firefox`}function GV(){let e=xB();return!!e&&e.name===`Chrome`&&e.os!==`iOS`}function KV(){return typeof window<`u`&&window.RTCRtpScriptTransform!==void 0&&!GV()}function qV(){return xB()?.name===`Safari`}function JV(){let e=xB();return e?.name===`Safari`||e?.os===`iOS`}function YV(){let e=xB();return e?.name===`Safari`&&e.version.startsWith(`17.`)||e?.os===`iOS`&&!!e?.osVersion&&oH(e.osVersion,`17`)>=0}function XV(e){return e||=xB(),e?.name===`Safari`&&oH(e.version,`18.3`)>0||e?.os===`iOS`&&!!e?.osVersion&&oH(e.osVersion,`18.3`)>0}function ZV(){return $V()?navigator.userAgentData?.mobile??/Tablet|iPad|Mobile|Android|BlackBerry/.test(navigator.userAgent):!1}function QV(){let e=xB(),t=`17.2`;if(e)return!!(e.name!==`Safari`&&e.os!==`iOS`||e.os===`iOS`&&e.osVersion&&oH(e.osVersion,t)>=0||e.name===`Safari`&&oH(e.version,t)>=0)}function $V(){return typeof document<`u`}function eH(){return navigator.product==`ReactNative`}function tH(e){return e.hostname.endsWith(`.livekit.cloud`)||e.hostname.endsWith(`.livekit.run`)}function nH(e){return tH(e)?e.hostname.split(`.`)[0]:null}function rH(){if(global&&global.LiveKitReactNativeGlobal)return global.LiveKitReactNativeGlobal}function iH(){if(!eH())return;let e=rH();if(e)return e.platform}function aH(){if($V())return window.devicePixelRatio;if(eH()){let e=rH();if(e)return e.devicePixelRatio}return 1}function oH(e,t){let n=e.split(`.`),r=t.split(`.`),i=Math.min(n.length,r.length);for(let e=0;e<i;++e){let t=parseInt(n[e],10),a=parseInt(r[e],10);if(t>a)return 1;if(t<a)return-1;if(e===i-1&&t===a)return 0}return e===``&&t!==``?-1:t===``?1:n.length==r.length?0:n.length<r.length?-1:1}function sH(e){for(let t of e)t.target.handleResize(t)}function cH(e){for(let t of e)t.target.handleVisibilityChanged(t)}var lH=null,uH=()=>(lH||=new ResizeObserver(sH),lH),dH=null,fH=()=>(dH||=new IntersectionObserver(cH,{root:null,rootMargin:`0px`}),dH);function pH(e){let t=new iL({capabilities:e,sdk:aL.JS,protocol:17,clientProtocol:2,version:TB});return eH()&&(t.os=iH()??``),t}function mH(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:16,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:16,n=arguments.length>2&&arguments[2]!==void 0&&arguments[2],r=arguments.length>3&&arguments[3]!==void 0&&arguments[3],i=document.createElement(`canvas`);i.width=e,i.height=t;let a=i.getContext(`2d`);a?.fillRect(0,0,i.width,i.height),r&&a&&(a.beginPath(),a.arc(e/2,t/2,50,0,Math.PI*2,!0),a.closePath(),a.fillStyle=`grey`,a.fill());let o=zP(i.captureStream().getTracks(),1)[0];if(!o)throw Error(`Could not get empty media stream video track`);return o.enabled=n,o}var hH;function gH(){if(!hH){let e=new AudioContext,t=e.createOscillator(),n=e.createGain();n.gain.setValueAtTime(0,0);let r=e.createMediaStreamDestination();if(t.connect(n),n.connect(r),t.start(),hH=zP(r.stream.getAudioTracks(),1)[0],!hH)throw Error(`Could not get empty media stream audio track`);hH.enabled=!1}return hH.clone()}var _H=class{get isResolved(){return this._isResolved}constructor(e,t){this._isResolved=!1,this.onFinally=t,this.promise=new Promise((t,n)=>J(this,void 0,void 0,function*(){this.resolve=t,this.reject=n,e&&(yield e(t,n))})).finally(()=>{var e;this._isResolved=!0,(e=this.onFinally)==null||e.call(this)})}};function vH(e){return QB.includes(e)}function yH(e){if(typeof e==`string`||typeof e==`number`)return e;if(Array.isArray(e))return e[0];if(e.exact!==void 0)return Array.isArray(e.exact)?e.exact[0]:e.exact;if(e.ideal!==void 0)return Array.isArray(e.ideal)?e.ideal[0]:e.ideal;throw Error(`could not unwrap constraint`)}function bH(e){return e.startsWith(`http`)?e.replace(/^(http)/,`ws`):e}function xH(e){return e.startsWith(`ws`)?e.replace(/^(ws)/,`http`):e}function SH(e,t){return e.segments.map(e=>{let n=e.id,r=e.text,i=e.language,a=e.startTime,o=e.endTime,s=e.final,c=t.get(n)??Date.now(),l=Date.now();return s?t.delete(n):t.set(n,c),{id:n,text:r,startTime:Number.parseInt(a.toString()),endTime:Number.parseInt(o.toString()),final:s,language:i,firstReceivedTime:c,lastReceivedTime:l}})}function CH(e){let t=e.id,n=e.timestamp,r=e.message,i=e.editTimestamp;return{id:t,timestamp:Number.parseInt(n.toString()),editTimestamp:i?Number.parseInt(i.toString()):void 0,message:r}}function wH(e){switch(e.reason){case OB.LeaveRequest:return e.context;case OB.Cancelled:return gI.CLIENT_INITIATED;case OB.NotAllowed:return gI.USER_REJECTED;case OB.ServerUnreachable:return gI.JOIN_FAILURE;default:return gI.UNKNOWN_REASON}}function TH(e){return e===void 0?void 0:Number(e)}function EH(e){return e===void 0?void 0:BigInt(e)}function DH(e){return!!e&&!(e instanceof MediaStreamTrack)&&e.isLocal}function OH(e){return!!e&&e.kind==$.Kind.Audio}function kH(e){return!!e&&e.kind==$.Kind.Video}function AH(e){return DH(e)&&kH(e)}function jH(e){return DH(e)&&OH(e)}function MH(e){return!!e&&!e.isLocal}function NH(e){return!!e&&!e.isLocal}function PH(e){return MH(e)&&kH(e)}function FH(e){return e.isLocal}function IH(e,t){let n=[],r=new TextEncoder().encode(e);for(;r.length>t;){let e=t;for(;e>0;){let t=r[e];if(t!==void 0&&(t&192)!=128)break;e--}n.push(r.slice(0,e)),r=r.slice(e)}return r.length>0&&n.push(r),n}function LH(e){return new ReadableStream({start(t){t.enqueue(e),t.close()}})}function RH(e,t){return $R(this,arguments,function*(){let n=e.getReader(),r=new Uint8Array;try{for(;;){let e=yield QR(n.read()),i=e.done,a=e.value;if(i)break;if(a.byteLength===0)continue;let o=new Uint8Array(r.byteLength+a.byteLength);for(o.set(r),o.set(a,r.byteLength),r=o;r.byteLength>=t;)yield yield QR(r.slice(0,t)),r=r.slice(t)}r.byteLength>0&&(yield yield QR(r))}finally{n.releaseLock()}})}function zH(e){let t=e.get(`Cache-Control`);if(t){let e=t.match(/(?:^|[,\s])max-age=(\d+)/)?.[1];if(e)return parseInt(e,10)}}function BH(){return typeof CompressionStream<`u`}function VH(){return BH()&&!WV()}function HH(e,t){let n=zP(AV(t.id),2)[1];if(n?.startsWith(`TR`))return n;if(e.id.startsWith(`TR`))return e.id}function UH(e,t){let n=arguments.length>2&&arguments[2]!==void 0&&arguments[2],r=WH(e,t);return n?r:qH(r,`v1`)}function WH(e,t){let n=new URL(bH(e));return t.forEach((e,t)=>{n.searchParams.set(t,e)}),qH(n,`rtc`)}function GH(e){return qH(new URL(xH(e)),`validate`)}function KH(e){return e.endsWith(`/`)?e:`${e}/`}function qH(e,t){return e.pathname=`${KH(e.pathname)}${t}`,e}function JH(e){if(typeof e==`string`)return CL.fromJson(JSON.parse(e),{ignoreUnknownFields:!0});if(e instanceof ArrayBuffer)return CL.fromBinary(new Uint8Array(e));throw Error(`could not decode websocket message: ${typeof e}`)}function YH(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`Unknown reason`;if(e instanceof Error)return e.message;if(!(e instanceof AbortSignal))return t;let n=e.reason;switch(typeof n){case`string`:return n;case`object`:return n instanceof Error?n.message:t;default:return`toString`in n?n.toString():t}}function XH(e,t){return e instanceof Error?e.name&&e.message?`${e.name}: ${e.message}`:e.name:`Encountered unknown ${t} error: ${String(e)}`}var ZH=`lk_e2ee`,QH=`lk_e2ee_track_id`,$H;(function(e){e.SetKey=`setKey`,e.RatchetRequest=`ratchetRequest`,e.KeyRatcheted=`keyRatcheted`})($H||={});var eU;(function(e){e.KeyRatcheted=`keyRatcheted`})(eU||={});var tU;(function(e){e.ParticipantEncryptionStatusChanged=`participantEncryptionStatusChanged`,e.EncryptionError=`encryptionError`})(tU||={});var nU;(function(e){e.Error=`cryptorError`})(nU||={});function rU(){return aU()||iU()}function iU(){return typeof window<`u`&&window.RTCRtpScriptTransform!==void 0}function aU(){return typeof window<`u`&&window.RTCRtpSender!==void 0&&window.RTCRtpSender.prototype.createEncodedStreams!==void 0}function oU(e){if(e.value?.case!==`sipDtmf`&&e.value?.case!==`metrics`&&e.value?.case!==`speaker`&&e.value?.case!==`transcription`&&e.value?.case!==`encryptedPacket`)return new GI({value:e.value})}az.EventEmitter;var sU;(function(e){e[e.InvalidKey=0]=`InvalidKey`,e[e.MissingKey=1]=`MissingKey`,e[e.InternalError=2]=`InternalError`})(sU||={});var cU=class extends EB{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:sU.InternalError,n=arguments.length>2?arguments[2]:void 0;super(40,e),this.reason=t,this.participantIdentity=n}};function lU(){return KV()}function uU(e){return!!e?.worker&&(aU()||lU())}function dU(e){return!!(e?.timestamp||e?.frameId)}function fU(e){let t=[];return e?.timestamp&&t.push(bI.PTF_USER_TIMESTAMP),e?.frameId&&t.push(bI.PTF_FRAME_ID),t}function pU(e){if(!e||e.length===0)return;let t={};return e.includes(bI.PTF_USER_TIMESTAMP)&&(t.timestamp=!0),e.includes(bI.PTF_FRAME_ID)&&(t.frameId=!0),t.timestamp||t.frameId?t:void 0}function mU(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:50,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r,i=n.isImmediate??!1,a=n.callback??!1,o=n.maxWait,s=Date.now(),c=[];function l(){if(o!==void 0){let e=Date.now()-s;if(e+t>=o)return o-e}return t}let u=function(){var t=[...arguments];let n=this;return new Promise((o,u)=>{let d=function(){if(r=void 0,s=Date.now(),!i){let r=e.apply(n,t);a&&a(r),c.forEach(e=>{let t=e.resolve;return t(r)}),c=[]}},f=i&&r===void 0;if(r!==void 0&&HB.clearTimeout(r),r=HB.setTimeout(d,l()),f){let r=e.apply(n,t);return a&&a(r),o(r)}c.push({resolve:o,reject:u})})};return u.cancel=function(e){r!==void 0&&HB.clearTimeout(r),c.forEach(t=>{let n=t.reject;return n(e)}),c=[]},u}var hU=2e3;function gU(e,t){if(!t)return 0;let n,r;return`bytesReceived`in e?(n=e.bytesReceived,r=t.bytesReceived):`bytesSent`in e&&(n=e.bytesSent,r=t.bytesSent),n===void 0||r===void 0||e.timestamp===void 0||t.timestamp===void 0?0:(n-r)*8*1e3/(e.timestamp-t.timestamp)}var _U=class extends ${constructor(e,t,n,r,i){super(e,n,i),this.timeSyncLoop=()=>{if(this.listenerCount(Q.TimeSyncUpdate)===0){this.timeSyncHandle=void 0;return}this.timeSyncHandle=requestAnimationFrame(this.timeSyncLoop);let e=this.receiver?.getSynchronizationSources()[0];if(e){let t=e.timestamp,n=e.rtpTimestamp;n&&this.rtpTimestamp!==n&&(this.emit(Q.TimeSyncUpdate,{timestamp:t,rtpTimestamp:n}),this.rtpTimestamp=n)}},this.onTimeSyncListenerAdded=e=>{e===Q.TimeSyncUpdate&&this.timeSyncHandle===void 0&&(this.timeSyncHandle=requestAnimationFrame(this.timeSyncLoop))},this.sid=t,this.receiver=r}get isLocal(){return!1}setMuted(e){this.isMuted!==e&&(this.isMuted=e,this._mediaStreamTrack.enabled=!e,this.emit(e?Q.Muted:Q.Unmuted,this))}setMediaStream(e){this.mediaStream=e;let t=n=>{n.track===this._mediaStreamTrack&&(e.removeEventListener(`removetrack`,t),this.receiver&&`playoutDelayHint`in this.receiver&&(this.receiver.playoutDelayHint=void 0),this.receiver=void 0,this._currentBitrate=0,this.emit(Q.Ended,this))};e.addEventListener(`removetrack`,t)}start(){this.startMonitor(),super.enable()}stop(){this.stopMonitor(),super.disable()}getRTCStatsReport(){return J(this,void 0,void 0,function*(){if(this.receiver?.getStats)return yield this.receiver.getStats()})}setPlayoutDelay(e){this.receiver?`playoutDelayHint`in this.receiver?this.receiver.playoutDelayHint=e:this.log.warn(`Playout delay not supported in this browser`):this.log.warn(`Cannot set playout delay, track already ended`)}getPlayoutDelay(){if(this.receiver){if(`playoutDelayHint`in this.receiver)return this.receiver.playoutDelayHint;this.log.warn(`Playout delay not supported in this browser`)}else this.log.warn(`Cannot get playout delay, track already ended`);return 0}startMonitor(){this.monitorInterval||=setInterval(()=>this.monitorReceiver(),hU),_V()&&this.registerTimeSyncUpdate()}stopMonitor(){super.stopMonitor(),this.off(`newListener`,this.onTimeSyncListenerAdded)}registerTimeSyncUpdate(){let e=this;e.off(`newListener`,this.onTimeSyncListenerAdded),e.on(`newListener`,this.onTimeSyncListenerAdded),this.timeSyncHandle===void 0&&this.timeSyncLoop()}},vU=100,yU=class extends _U{constructor(e,t,n,r,i){super(e,t,$.Kind.Video,n,i),this.elementInfos=[],this.monitorReceiver=()=>J(this,void 0,void 0,function*(){if(!this.receiver){this._currentBitrate=0;return}let e=yield this.getReceiverStats();e&&this.prevStats&&this.receiver&&(this._currentBitrate=gU(e,this.prevStats)),this.prevStats=e}),this.debouncedHandleResize=mU(()=>{this.updateDimensions()},vU),this.adaptiveStreamSettings=r}get isAdaptiveStream(){return this.adaptiveStreamSettings!==void 0}lookupFrameMetadata(e){let t=e.rtpTimestamp;return this.frameMetadataExtractor?.lookupMetadata(t)}setStreamState(e){super.setStreamState(e),this.log.debug(`setStreamState`,e),this.isAdaptiveStream&&e===$.StreamState.Active&&this.updateVisibility()}get mediaStreamTrack(){return this._mediaStreamTrack}setMuted(e){super.setMuted(e),this.attachedElements.forEach(t=>{e?DV(this._mediaStreamTrack,t):EV(this._mediaStreamTrack,t)})}attach(e){if(e?super.attach(e):e=super.attach(),this.adaptiveStreamSettings&&this.elementInfos.find(t=>t.element===e)===void 0){let t=new bU(e);this.observeElementInfo(t)}return e}observeElementInfo(e){this.adaptiveStreamSettings&&this.elementInfos.find(t=>t===e)===void 0?(e.handleResize=()=>{this.debouncedHandleResize()},e.handleVisibilityChanged=()=>{this.updateVisibility()},this.elementInfos.push(e),e.observe(),this.debouncedHandleResize(),this.updateVisibility()):this.log.warn(`visibility resize observer not triggered`,this.logContext)}stopObservingElementInfo(e){if(!this.isAdaptiveStream){this.log.warn(`stopObservingElementInfo ignored`,this.logContext);return}let t=this.elementInfos.filter(t=>t===e);for(let e of t)e.stopObserving();this.elementInfos=this.elementInfos.filter(t=>t!==e),this.updateVisibility(),this.debouncedHandleResize()}detach(e){if(e)return this.stopObservingElement(e),super.detach(e);let t=super.detach();for(let e of t)this.stopObservingElement(e);return t}getDecoderImplementation(){return this.prevStats?.decoderImplementation}getReceiverStats(){return J(this,void 0,void 0,function*(){if(!this.receiver||!this.receiver.getStats)return;let e=yield this.receiver.getStats(),t,n=``,r=new Map;return e.forEach(e=>{e.type===`inbound-rtp`?(n=e.codecId,t={type:`video`,streamId:e.id,framesDecoded:e.framesDecoded,framesDropped:e.framesDropped,framesReceived:e.framesReceived,packetsReceived:e.packetsReceived,packetsLost:e.packetsLost,frameWidth:e.frameWidth,frameHeight:e.frameHeight,pliCount:e.pliCount,firCount:e.firCount,nackCount:e.nackCount,jitter:e.jitter,timestamp:e.timestamp,bytesReceived:e.bytesReceived,decoderImplementation:e.decoderImplementation}):e.type===`codec`&&r.set(e.id,e)}),t&&n!==``&&r.get(n)&&(t.mimeType=r.get(n).mimeType),t})}stopObservingElement(e){let t=this.elementInfos.filter(t=>t.element===e);for(let e of t)this.stopObservingElementInfo(e)}handleAppVisibilityChanged(){let e=Object.create(null,{handleAppVisibilityChanged:{get:()=>super.handleAppVisibilityChanged}});return J(this,void 0,void 0,function*(){yield e.handleAppVisibilityChanged.call(this),this.isAdaptiveStream&&this.updateVisibility()})}updateVisibility(e){let t=this.elementInfos.reduce((e,t)=>Math.max(e,t.visibilityChangedAt||0),0),n=this.adaptiveStreamSettings?.pauseVideoInBackground??!0?this.isInBackground:!1,r=this.elementInfos.some(e=>e.pictureInPicture),i=this.elementInfos.some(e=>e.visible)&&!n||r;if(this.lastVisible!==i||e){if(!i&&Date.now()-t<vU){HB.setTimeout(()=>{this.updateVisibility()},vU);return}this.lastVisible=i,this.emit(Q.VisibilityChanged,i,this)}}updateDimensions(){let e=0,t=0,n=this.getPixelDensity();for(let r of this.elementInfos){let i=r.width()*n,a=r.height()*n;i+a>e+t&&(e=i,t=a)}(this.lastDimensions?.width!==e||this.lastDimensions?.height!==t)&&(this.lastDimensions={width:e,height:t},this.emit(Q.VideoDimensionsChanged,this.lastDimensions,this))}getPixelDensity(){let e=this.adaptiveStreamSettings?.pixelDensity;return e===`screen`?aH():e||(aH()>2?2:1)}},bU=class{get visible(){return this.isPiP||this.isIntersecting}get pictureInPicture(){return this.isPiP}constructor(e,t){this.onVisibilityChanged=e=>{var t;let n=e.target,r=e.isIntersecting;n===this.element&&(this.isIntersecting=r,this.isPiP=xU(this.element),this.visibilityChangedAt=Date.now(),(t=this.handleVisibilityChanged)==null||t.call(this))},this.onEnterPiP=()=>{var e;(e=window.documentPictureInPicture?.window)==null||e.addEventListener(`pagehide`,this.onLeavePiP),queueMicrotask(()=>{requestAnimationFrame(()=>{var e;this.isPiP=xU(this.element),(e=this.handleVisibilityChanged)==null||e.call(this)})})},this.onLeavePiP=()=>{var e;this.isPiP=xU(this.element),(e=this.handleVisibilityChanged)==null||e.call(this)},this.element=e,this.isIntersecting=t??SU(e),this.isPiP=$V()&&xU(e),this.visibilityChangedAt=0}width(){return this.element.clientWidth}height(){return this.element.clientHeight}observe(){var e,t;this.isIntersecting=SU(this.element),this.isPiP=xU(this.element),this.element.handleResize=()=>{var e;(e=this.handleResize)==null||e.call(this)},this.element.handleVisibilityChanged=this.onVisibilityChanged,fH().observe(this.element),uH().observe(this.element),this.element.addEventListener(`enterpictureinpicture`,this.onEnterPiP),this.element.addEventListener(`leavepictureinpicture`,this.onLeavePiP),(e=window.documentPictureInPicture)==null||e.addEventListener(`enter`,this.onEnterPiP),(t=window.documentPictureInPicture?.window)==null||t.addEventListener(`pagehide`,this.onLeavePiP)}stopObserving(){var e,t,n,r;(e=fH())==null||e.unobserve(this.element),(t=uH())==null||t.unobserve(this.element),this.element.removeEventListener(`enterpictureinpicture`,this.onEnterPiP),this.element.removeEventListener(`leavepictureinpicture`,this.onLeavePiP),(n=window.documentPictureInPicture)==null||n.removeEventListener(`enter`,this.onEnterPiP),(r=window.documentPictureInPicture?.window)==null||r.removeEventListener(`pagehide`,this.onLeavePiP)}};function xU(e){return document.pictureInPictureElement===e?!0:window.documentPictureInPicture?.window?SU(e,window.documentPictureInPicture?.window):!1}function SU(e,t){let n=t||window,r=e.offsetTop,i=e.offsetLeft,a=e.offsetWidth,o=e.offsetHeight,s=e.hidden,c=getComputedStyle(e).display;for(;e.offsetParent;)e=e.offsetParent,r+=e.offsetTop,i+=e.offsetLeft;return r<n.pageYOffset+n.innerHeight&&i<n.pageXOffset+n.innerWidth&&r+o>n.pageYOffset&&i+a>n.pageXOffset&&!s&&c!==`none`}var CU=class e extends az.EventEmitter{get logContext(){return{room:this.room?.name,participant:this.room?.localParticipant.identity}}constructor(e,t){super(),this.decryptDataRequests=new Map,this.encryptDataRequests=new Map,this.log=VR(zR.E2EE,()=>this.logContext),this.onWorkerMessage=e=>{let t=e.data,n=t.kind,r=t.data;switch(n){case`error`:if(r.uuid){let e=this.decryptDataRequests.get(r.uuid);if(e?.reject){e.reject(r.error);break}let t=this.encryptDataRequests.get(r.uuid);if(t?.reject){t.reject(r.error);break}}this.log.error(r.error.message),this.emit(tU.EncryptionError,r.error,r.participantIdentity);break;case`initAck`:r.enabled&&this.keyProvider.getKeys().forEach(e=>{this.postKey(e,!1)});break;case`enable`:if(r.enabled&&this.keyProvider.getKeys().forEach(e=>{this.postKey(e,!1)}),this.encryptionEnabled!==r.enabled&&r.participantIdentity===this.room?.localParticipant.identity)this.emit(tU.ParticipantEncryptionStatusChanged,r.enabled,this.room.localParticipant),this.encryptionEnabled=r.enabled;else if(r.participantIdentity){let e=this.room?.getParticipantByIdentity(r.participantIdentity);if(!e)throw TypeError(`couldn't set encryption status, participant not found${r.participantIdentity}`);this.emit(tU.ParticipantEncryptionStatusChanged,r.enabled,e)}break;case`ratchetKey`:this.keyProvider.emit($H.KeyRatcheted,r.ratchetResult,r.participantIdentity,r.keyIndex);break;case`decryptDataResponse`:let e=this.decryptDataRequests.get(r.uuid);e?.resolve&&e.resolve(r);break;case`encryptDataResponse`:let t=this.encryptDataRequests.get(r.uuid);t?.resolve&&t.resolve(r);break;case`packetTrailerMetadata`:this.handleFrameMetadata(r.trackId,r.rtpTimestamp,r.ssrc,r.metadata);break;case`log`:UR[r.level](r.msg,r.context)}},this.onWorkerError=e=>{this.log.error(`e2ee worker encountered an error:`,{error:e.error}),this.emit(tU.EncryptionError,e.error,void 0)},this.keyProvider=e.keyProvider,this.worker=e.worker,this.encryptionEnabled=!1,this.dataChannelEncryptionEnabled=t}get isEnabled(){return this.encryptionEnabled}get isDataChannelEncryptionEnabled(){return this.isEnabled&&this.dataChannelEncryptionEnabled}setup(e){if(!rU())throw new AB(`tried to setup end-to-end encryption on an unsupported browser`);if(this.log.info(`setting up e2ee`),e!==this.room){this.room=e,this.setupEventListeners(e,this.keyProvider);let t={kind:`init`,data:{keyProviderOptions:this.keyProvider.getOptions(),loglevel:UR.getLevel()}};this.worker&&(this.log.info(`initializing worker`,{worker:this.worker}),this.worker.onmessage=this.onWorkerMessage,this.worker.onerror=this.onWorkerError,this.worker.postMessage(t),this.subscribeToLogLevelChanges())}}subscribeToLogLevelChanges(){var t;(t=this.unsubscribeLogLevel)==null||t.call(this);let n;if(e.disposeRegistry){let t=new WeakRef(this.worker);n=KR(e=>{let r=t.deref();if(!r){n?.();return}r.postMessage({kind:`setLogLevel`,data:{level:e}})}),e.disposeRegistry.register(this,n,this)}else{let e=this.worker;n=KR(t=>{e.postMessage({kind:`setLogLevel`,data:{level:t}})})}this.unsubscribeLogLevel=n}dispose(){var t,n,r;(t=this.unsubscribeLogLevel)==null||t.call(this),this.unsubscribeLogLevel=void 0,e.disposeRegistry&&e.disposeRegistry.unregister(this);let i=new cU(`E2EEManager disposed`,sU.InternalError);for(let e of[...this.encryptDataRequests.values()])(n=e.reject)==null||n.call(e,i);for(let e of[...this.decryptDataRequests.values()])(r=e.reject)==null||r.call(e,i);this.worker&&(this.worker.onmessage=null,this.worker.onerror=null),this.removeAllListeners()}setParticipantCryptorEnabled(e,t){this.log.debug(`set e2ee to ${e} for participant ${t}`),this.postEnable(e,t)}setSifTrailer(e){!e||e.length===0?this.log.warn(`ignoring server sent trailer as it's empty`):this.postSifTrailer(e)}handleFrameMetadata(e,t,n,r){if(this.room){for(let i of[this.room.localParticipant,...this.room.remoteParticipants.values()])for(let a of i.trackPublications.values())if(a.track&&a.track.mediaStreamID===e&&a.track instanceof yU&&a.track.frameMetadataExtractor){a.track.frameMetadataExtractor.storeMetadata(t,n,r);return}}}setupEngine(e){e.on(Z.RTPVideoMapUpdate,e=>{this.postRTPMap(e)})}setupEventListeners(e,t){e.on(Y.TrackPublished,(e,t)=>this.setParticipantCryptorEnabledForPublication(e,t.identity)),e.on(Y.ConnectionStateChanged,t=>{t===kJ.Connected&&e.remoteParticipants.forEach(e=>{e.trackPublications.forEach(t=>{this.setParticipantCryptorEnabledForPublication(t,e.identity)})})}).on(Y.TrackUnsubscribed,(e,t,n)=>{var r;let i={kind:`removeTransform`,data:{participantIdentity:n.identity,trackId:e.mediaStreamID}};(r=this.worker)==null||r.postMessage(i)}).on(Y.TrackSubscribed,(e,t,n)=>{this.setupE2EEReceiver(e,n.identity,t.trackInfo)}).on(Y.SignalConnected,()=>{if(!this.room)throw TypeError(`expected room to be present on signal connect`);let e=t.getLatestManuallySetKeyIndex();t.getKeys().forEach(t=>{this.postKey(t,e===(t.keyIndex??0))}),this.setParticipantCryptorEnabled(this.room.localParticipant.isE2EEEnabled,this.room.localParticipant.identity)}),e.localParticipant.on(X.LocalSenderCreated,(e,t)=>J(this,void 0,void 0,function*(){this.setupE2EESender(t,e)})),e.localParticipant.on(X.LocalTrackPublished,e=>{if(!kH(e.track)||!JV())return;let t={kind:`updateCodec`,data:{trackId:e.track.mediaStreamID,codec:mV(e.trackInfo.codecs[0].mimeType),participantIdentity:this.room.localParticipant.identity,hasPacketTrailer:!1}};this.worker.postMessage(t)}),t.on($H.SetKey,(e,t)=>this.postKey(e,t??!0)).on($H.RatchetRequest,(e,t)=>this.postRatchetRequest(e,t))}encryptData(e){return J(this,void 0,void 0,function*(){if(!this.worker)throw Error(`could not encrypt data, worker is missing`);let t=crypto.randomUUID(),n={kind:`encryptDataRequest`,data:{uuid:t,payload:e,participantIdentity:this.room.localParticipant.identity}},r=new _H;return r.onFinally=()=>{this.encryptDataRequests.delete(t)},this.encryptDataRequests.set(t,r),this.worker.postMessage(n),r.promise})}handleEncryptedData(e,t,n,r){if(!this.worker)throw Error(`could not handle encrypted data, worker is missing`);let i=crypto.randomUUID(),a={kind:`decryptDataRequest`,data:{uuid:i,payload:e,iv:t,participantIdentity:n,keyIndex:r}},o=new _H;return o.onFinally=()=>{this.decryptDataRequests.delete(i)},this.decryptDataRequests.set(i,o),this.worker.postMessage(a),o.promise}postRatchetRequest(e,t){if(!this.worker)throw Error(`could not ratchet key, worker is missing`);let n={kind:`ratchetRequest`,data:{participantIdentity:e,keyIndex:t}};this.worker.postMessage(n)}postKey(e,t){let n=e.key,r=e.participantIdentity,i=e.keyIndex;if(!this.worker)throw Error(`could not set key, worker is missing`);let a={kind:`setKey`,data:{participantIdentity:r,isPublisher:r===this.room?.localParticipant.identity,key:n,keyIndex:i,updateCurrentKeyIndex:t}};this.worker.postMessage(a)}postEnable(e,t){if(this.worker){let n={kind:`enable`,data:{enabled:e,participantIdentity:t}};this.worker.postMessage(n)}else throw ReferenceError(`failed to enable e2ee, worker is not ready`)}postRTPMap(e){if(!this.worker)throw TypeError(`could not post rtp map, worker is missing`);if(!this.room?.localParticipant.identity)throw TypeError(`could not post rtp map, local participant identity is missing`);let t={kind:`setRTPMap`,data:{map:e,participantIdentity:this.room.localParticipant.identity}};this.worker.postMessage(t)}postSifTrailer(e){if(!this.worker)throw Error(`could not post SIF trailer, worker is missing`);let t={kind:`setSifTrailer`,data:{trailer:e}};this.worker.postMessage(t)}setParticipantCryptorEnabledForPublication(e,t){if(!e.trackInfo){this.log.warn(`skipping e2ee enabled update for publication without trackInfo`,{trackSid:e.trackSid});return}this.setParticipantCryptorEnabled(e.trackInfo.encryption!==OI.NONE,t)}setupE2EEReceiver(e,t,n){if(!e.receiver)return;if(!n?.mimeType||n.mimeType===``)throw TypeError(`MimeType missing from trackInfo, cannot set up E2EE cryptor`);let r=e.kind===`video`&&!!n.packetTrailerFeatures&&n.packetTrailerFeatures.length>0;this.handleReceiver(e.receiver,e.mediaStreamID,t,e.kind===`video`?mV(n.mimeType):void 0,r)}setupE2EESender(e,t){if(!DH(e)||!t){t||this.log.warn(`early return because sender is not ready`);return}this.handleSender(t,e.mediaStreamID,void 0,kH(e)?e.publishOptions?.frameMetadata??e.publishOptions?.packetTrailer:void 0)}handleReceiver(e,t,n,r,i){return J(this,void 0,void 0,function*(){if(this.worker){if(KV()){let a={kind:`decode`,participantIdentity:n,trackId:t,codec:r,hasPacketTrailer:i};e.transform=new RTCRtpScriptTransform(this.worker,a)}else{if(ZH in e&&QH in e){let a={kind:`updateCodec`,data:{trackId:t,previousTrackId:e[QH],codec:r,participantIdentity:n,hasPacketTrailer:i}};this.worker.postMessage(a),e[QH]=t;return}let a=e.writableStream,o=e.readableStream;if(!a||!o){let t=e.createEncodedStreams();e.writableStream=t.writable,a=t.writable,e.readableStream=t.readable,o=t.readable}let s={kind:`decode`,data:{readableStream:o,writableStream:a,trackId:t,codec:r,participantIdentity:n,hasPacketTrailer:i}};this.worker.postMessage(s,[o,a])}e[ZH]=!0,e[QH]=t}})}handleSender(e,t,n,r){if(!(ZH in e||!this.worker)){if(!this.room?.localParticipant.identity||this.room.localParticipant.identity===``)throw TypeError(`local identity needs to be known in order to set up encrypted sender`);if(KV()){this.log.info(`initialize script transform`);let i={kind:`encode`,participantIdentity:this.room.localParticipant.identity,trackId:t,codec:n,hasPacketTrailer:dU(r),packetTrailer:r};e.transform=new RTCRtpScriptTransform(this.worker,i)}else{this.log.info(`initialize encoded streams`);let i=e.createEncodedStreams(),a={kind:`encode`,data:{readableStream:i.readable,writableStream:i.writable,codec:n,trackId:t,participantIdentity:this.room.localParticipant.identity,hasPacketTrailer:dU(r),packetTrailer:r}};this.worker.postMessage(a,[i.readable,i.writable])}e[ZH]=!0}}};CU.disposeRegistry=typeof FinalizationRegistry<`u`&&typeof WeakRef<`u`&&new FinalizationRegistry(e=>{e()});var wU=300,TU=class{constructor(){this.metadataMap=new Map,this.activeSsrc=0}storeMetadata(e,t,n){for(this.activeSsrc!==0&&this.activeSsrc!==t&&this.metadataMap.clear(),this.activeSsrc=t;this.metadataMap.size>=wU;){let e=this.metadataMap.keys().next().value;this.metadataMap.delete(e)}this.metadataMap.set(e,n)}lookupMetadata(e){return this.metadataMap.get(e)}dispose(){this.metadataMap.clear(),this.activeSsrc=0}},EU=class{constructor(e){this.extractors=new Map,this.workerPipelines=new Map,this.onWorkerMessage=e=>{let t=e.data;if(t.kind===`metadata`){let e=this.extractors.get(t.data.trackId);e&&e.storeMetadata(t.data.rtpTimestamp,t.data.ssrc,t.data.metadata)}},this.onWorkerError=e=>{BR.error(`frame metadata worker encountered an error:`,{error:e.error})},this.worker=e?.worker}setup(e){e!==this.room&&(this.room=e,this.worker&&(this.worker.onmessage=this.onWorkerMessage,this.worker.onerror=this.onWorkerError,this.worker.postMessage({kind:`init`})),e.on(Y.TrackSubscribed,(e,t,n)=>{e.kind===`video`&&this.setupReceiver(e,t.trackInfo)}).on(Y.TrackUnsubscribed,e=>{this.teardownTrack(e)}).on(Y.Disconnected,()=>{this.cleanup()}))}setupReceiver(e,t){let n=e.receiver;if(!n)return;if(!(t?.packetTrailerFeatures&&t.packetTrailerFeatures.length>0)){this.room?.hasE2EESetup||this.setupPassthroughReceiver(n,e.mediaStreamID);return}if(!uU(this.worker?{worker:this.worker}:void 0)&&!this.room?.hasE2EESetup){BR.warn(`frame metadata transform not supported; skipping extraction`);return}let r=new TU,i=e.mediaStreamID;this.extractors.set(i,r),e.frameMetadataExtractor=r,!this.room?.hasE2EESetup&&this.setupWorkerReceiver(n,i,!0)}setupPassthroughReceiver(e,t){if(lU()){`transform`in e&&(e.transform=null);return}if(this.worker&&uU({worker:this.worker})&&!this.workerPipelines.has(e)){this.setupWorkerReceiver(e,t,!1);return}this.worker&&this.workerPipelines.has(e)&&this.setupWorkerReceiver(e,t,!1)}setupWorkerReceiver(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,r=this.worker;if(!r)return;if(lU()){e.transform=new RTCRtpScriptTransform(r,{kind:`decode`,trackId:t});return}let i=this.workerPipelines.get(e);if(i){let a={kind:`updateTrackId`,data:{oldTrackId:i,newTrackId:t,hasPacketTrailer:n}};r.postMessage(a),this.workerPipelines.set(e,t);return}if(!(`createEncodedStreams`in e)){BR.warn(`createEncodedStreams not supported`);return}let a;try{a=e.createEncodedStreams()}catch(e){BR.warn(`failed to create encoded streams`,{error:e});return}let o={kind:`decode`,data:{readableStream:a.readable,writableStream:a.writable,trackId:t,hasPacketTrailer:n}};r.postMessage(o,[a.readable,a.writable]),this.workerPipelines.set(e,t)}teardownTrack(e){let t=e.mediaStreamID,n=this.extractors.get(t);n&&(n.dispose(),this.extractors.delete(t)),e instanceof yU&&(e.frameMetadataExtractor=void 0)}cleanup(){var e;for(let e of this.extractors.values())e.dispose();this.extractors.clear(),this.workerPipelines.clear(),(e=this.worker)==null||e.terminate()}},DU=500,OU=15e3,kU=class e{constructor(){this.failedConnectionAttempts=new Map,this.backOffPromises=new Map}static getInstance(){return this._instance||=new e,this._instance}addFailedConnectionAttempt(e){let t=nH(new URL(e));if(!t)return;let n=this.failedConnectionAttempts.get(t)??0;this.failedConnectionAttempts.set(t,n+1),this.backOffPromises.set(t,jV(Math.min(DU*2**n,OU)))}getBackOffPromise(e){let t=new URL(e),n=t&&nH(t);return n&&this.backOffPromises.get(n)||Promise.resolve()}resetFailedConnectionAttempts(e){let t=new URL(e),n=t&&nH(t);n&&(this.failedConnectionAttempts.set(n,0),this.backOffPromises.set(n,Promise.resolve()))}resetAll(){this.backOffPromises.clear(),this.failedConnectionAttempts.clear()}};kU._instance=null;var AU=`default`,jU=class e{constructor(){this._previousDevices=[]}static getInstance(){return this.instance===void 0&&(this.instance=new e),this.instance}get previousDevices(){return this._previousDevices}getDevices(t){return J(this,arguments,void 0,function(t){var n=this;let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return function*(){if(e.userMediaPromiseMap?.size>0){BR.debug(`awaiting getUserMedia promise`);try{t?yield e.userMediaPromiseMap.get(t):yield Promise.all(e.userMediaPromiseMap.values())}catch{BR.warn(`error waiting for media permissons`)}}let i=yield navigator.mediaDevices.enumerateDevices();if(r&&!(qV()&&n.hasDeviceInUse(t))&&(i.filter(e=>e.kind===t).length===0||i.some(e=>{let n=e.label===``,r=!t||e.kind===t;return n&&r}))){let e={video:t!==`audioinput`&&t!==`audiooutput`,audio:t!==`videoinput`&&{deviceId:{ideal:`default`}}},n=yield navigator.mediaDevices.getUserMedia(e);i=yield navigator.mediaDevices.enumerateDevices(),n.getTracks().forEach(e=>{e.stop()})}return n._previousDevices=i,t&&(i=i.filter(e=>e.kind===t)),i}()})}normalizeDeviceId(e,t,n){return J(this,void 0,void 0,function*(){if(t!==AU)return t;let r=yield this.getDevices(e),i=r.find(e=>e.deviceId===AU);if(!i){BR.warn(`could not reliably determine default device`);return}let a=r.find(e=>e.deviceId!==AU&&e.groupId===(n??i.groupId));if(!a){BR.warn(`could not reliably determine default device`);return}return a?.deviceId})}hasDeviceInUse(t){return t?e.userMediaPromiseMap.has(t):e.userMediaPromiseMap.size>0}};jU.mediaDeviceKinds=[`audioinput`,`audiooutput`,`videoinput`],jU.userMediaPromiseMap=new Map;var MU=65535,NU=4294967295,PU=class e{static u16(t){return new e(t,MU)}static u32(t){return new e(t,NU)}constructor(e,t){if(this.value=e,e<0)throw Error(`WrapAroundUnsignedInt: cannot faithfully represent an integer smaller than 0`);if(t>2**53-1)throw Error(`WrapAroundUnsignedInt: cannot faithfully represent an integer bigger than MAX_SAFE_INTEGER.`);this.maxSize=t,this.clamp()}clamp(){for(;this.value>this.maxSize;)this.value-=this.maxSize+1;for(;this.value<0;)this.value+=this.maxSize+1}clone(){return new e(this.value,this.maxSize)}update(e){this.value=e(this.value),this.clamp()}increment(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1;this.update(t=>t+e)}decrement(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1;this.update(t=>t-e)}getThenIncrement(){let t=this.value;return this.increment(),new e(t,this.maxSize)}isBefore(e){let t=this.value>>>0,n=(e.value>>>0)-t>>>0;return n!==0&&n<this.maxSize+1}},FU=class e{static fromRtpTicks(t){return new e(t,9e4)}static rtpRandom(){let t=Math.round(Math.random()*NU);return e.fromRtpTicks(t)}constructor(e,t){this.timestamp=PU.u32(e),this.rateInHz=t}asTicks(){return this.timestamp.value}clone(){return new e(this.timestamp.value,this.rateInHz)}wrappingAdd(e){this.timestamp.increment(e)}isBefore(e){return this.timestamp.isBefore(e.timestamp)}},IU=class e{constructor(e,t,n){this.epoch=t,this.base=n,this.previous=n.clone(),this.rateInHz=e}static startingNow(t,n){return new e(n,new Date,t)}static startingAtTime(t,n,r){return new e(r,t,n)}static rtpStartingNow(t){return e.startingNow(t,9e4)}static rtpStartingAtTime(t,n){return e.startingAtTime(t,n,9e4)}now(){return this.at(new Date)}at(t){let n=t.getTime()-this.epoch.getTime(),r=e.durationInMsToTicks(n,this.rateInHz),i=this.base.clone();return i.wrappingAdd(r),i.isBefore(this.previous)&&(i=this.previous),this.previous=i.clone(),i.clone()}static durationInMsToTicks(e,t){let n=(e*1e6*t+5e8)/1e9;return Math.round(n)}};function LU(e){if(e instanceof DataView)return e;if(e instanceof ArrayBuffer)return new DataView(e);if(e instanceof Uint8Array)return new DataView(e.buffer,e.byteOffset,e.byteLength);throw Error(`Error coercing ${e} to DataView - input was not DataView, ArrayBuffer, or Uint8Array.`)}var RU;(function(e){e[e.Reserved=0]=`Reserved`,e[e.TooLarge=1]=`TooLarge`})(RU||={});var zU=class e extends DB{constructor(e,t){super(19,e),this.name=`DataTrackHandleError`,this.reason=t,this.reasonName=RU[t]}isReason(e){return this.reason===e}static tooLarge(){return new e(`Value too large to be a valid track handle`,RU.TooLarge)}static reserved(t){return new e(`0x${t.toString(16)} is a reserved value.`,RU.Reserved)}},BU={fromNumber(e){if(e===0)throw zU.reserved(e);if(e>MU)throw zU.tooLarge();return e}},VU=class{constructor(){this.value=0}get(){return this.value+=1,this.value>MU?null:this.value}reset(){this.value=0}},HU={from(e){return{sid:e.sid,pubHandle:e.pubHandle,name:e.name,usesE2ee:e.encryption!==OI.NONE}},toProtobuf(e){return new jI({sid:e.sid,pubHandle:e.pubHandle,name:e.name,encryption:e.usesE2ee?OI.GCM:OI.NONE})}},UU;(function(e){e[e.WAITING=0]=`WAITING`,e[e.RUNNING=1]=`RUNNING`,e[e.COMPLETED=2]=`COMPLETED`})(UU||={});var WU=class{constructor(){this.pendingTasks=new Map,this.taskMutex=new KN,this.nextTaskIndex=0}run(e){return J(this,void 0,void 0,function*(){let t={id:this.nextTaskIndex++,enqueuedAt:Date.now(),status:UU.WAITING};this.pendingTasks.set(t.id,t);let n=yield this.taskMutex.lock();try{return t.executedAt=Date.now(),t.status=UU.RUNNING,yield e()}finally{t.status=UU.COMPLETED,this.pendingTasks.delete(t.id),n()}})}flush(){return J(this,void 0,void 0,function*(){return this.run(()=>J(this,void 0,void 0,function*(){}))})}snapshot(){return Array.from(this.pendingTasks.values())}},GU=[`client`],KU=class{constructor(){jP(this,`listeners`,new Map)}on(e,t){let n=this.listeners.get(e);return n||(n=new Set,this.listeners.set(e,n)),n.add(t),{off:()=>{n.delete(t)}}}emit(e,t){let n=this.listeners.get(`*`);if(n)for(let r of n)r(e,t);let r=this.listeners.get(e);if(r)for(let e of r)e(t)}clear(){this.listeners.clear()}},qU=class extends Error{constructor(e,t){super(`non-serializable value at ${e} (${t})`),this.path=e,this.label=t}},JU=(e,t)=>YU(e,t,new Set),YU=(e,t,n)=>{if(e===null)return null;switch(typeof e){case`string`:case`boolean`:return e;case`number`:if(!Number.isFinite(e))throw new qU(t,ZU(e));return e;case`object`:return XU(e,t,n);default:throw new qU(t,typeof e)}},XU=(e,t,n)=>{if(n.has(e))throw new qU(t,`circular reference`);if(Array.isArray(e)){if(e.length!==Object.keys(e).length)throw new qU(t,`sparse array or array with non-index properties`);n.add(e);let r=e.map((e,r)=>YU(e,`${t}[${r}]`,n));return n.delete(e),r}let r=Object.getPrototypeOf(e);if(r!==Object.prototype&&r!==null)throw new qU(t,e.constructor?.name??`object`);n.add(e);let i={};for(let r of Object.keys(e)){let a=YU(e[r],`${t}.${r}`,n);Object.defineProperty(i,r,{value:a,enumerable:!0,writable:!0,configurable:!0})}return n.delete(e),i},ZU=e=>Number.isNaN(e)?`NaN`:e>0?`Infinity`:`-Infinity`,QU=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:new Set;if(typeof e!=`object`||!e||t.has(e))return e;if(Array.isArray(e)){t.add(e);let n=e.map(e=>QU(e,t));return t.delete(e),n}let n=Object.getPrototypeOf(e);if(n!==Object.prototype&&n!==null)return e;t.add(e);let r={};for(let n of Object.keys(e)){let i=QU(e[n],t);Object.defineProperty(r,n,{value:i,enumerable:!0,writable:!0,configurable:!0})}return t.delete(e),r},$U=Symbol(`machina.type`),eW=20,tW=class{constructor(e){jP(this,`id`,void 0),jP(this,`initialState`,void 0),jP(this,$U,`BehavioralFsm`),jP(this,`states`,void 0),jP(this,`emitter`,new KU),jP(this,`clients`,new WeakMap),jP(this,`knownClients`,new Set),jP(this,`childSubscriptions`,[]),jP(this,`disposed`,!1),jP(this,`transitionDepth`,0),this.id=e.id,this.initialState=e.initialState,this.states=e.states,this.wrapChildLinks(),this.setupChildSubscriptions()}handle(e,t){if(this.disposed)return;let n=this.getOrCreateClientMeta(e);var r=[...arguments].slice(2);n.currentActionArgs=r;let i=this.states[n.state]?._child;if(i&&i.canHandle(e,t)){try{i.handle(e,t,...r)}finally{n.currentActionArgs=void 0}return}this.handleLocally(e,t,r,n)}canHandle(e,t){if(this.disposed)return!1;let n=this.clients.get(e)?.state??this.initialState,r=this.states[n];if(r?.[t]??r?.[`*`])return!0;let i=r?._child;return i?i.canHandle(e,t):!1}reset(e){this.disposed||this.transition(e,this.initialState)}currentState(e){return this.clients.get(e)?.state}transition(e,t){if(this.disposed)return;let n=this.getOrCreateClientMeta(e),r=n.state;if(t!==r){if(!Object.hasOwn(this.states,t)){this.emitter.emit(`invalidstate`,{stateName:t,client:e});return}if(this.transitionDepth++,this.transitionDepth>eW)throw this.transitionDepth=0,Error(`Max transition depth (${eW}) exceeded in FSM "${this.id}". Likely an infinite _onEnter → transition loop.`);try{let i=this.states[r],a=this.states[t];if(i!=null&&i._onExit&&typeof i._onExit==`function`){let t=this.buildHandlerArgs(e,``,n);i._onExit(t)}n.state=t;let o={fromState:r,toState:t,client:e};this.emitter.emit(`transitioning`,o);let s;if(a!=null&&a._onEnter&&typeof a._onEnter==`function`){let t=this.buildHandlerArgs(e,``,n);s=a._onEnter(t)}this.emitter.emit(`transitioned`,o);let c=a?._child;c&&c.reset(e),this.processQueue(e,n),typeof s==`string`&&n.state===t&&this.transition(e,s)}finally{this.transitionDepth--}}}compositeState(e){let t=this.clients.get(e);if(!t)return``;let n=this.states[t.state]?._child;if(n){let r=n.compositeState(e);if(r)return`${t.state}.${r}`}return t.state}rehydrate(e,t){if(this.disposed)return;if(typeof t==`string`){this.rehydrateCompositePath(e,t);return}let n=this.planSnapshotWrites(e,t);for(let e of n)e()}dehydrate(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,n=this.clients.get(e);if(!n)return;let r={state:n.state,deferred:n.deferredQueue.map(e=>this.snapshotDeferredInput(e))},i=this.collectChildSnapshots(e,n.state,t);return i&&(r.children=i),r}planSnapshotWrites(e,t){if(this.disposed)return[];let n=t.state,r=t.deferred,i=t.children;if(!Object.hasOwn(this.states,n))throw Error(`rehydrate: unknown state "${n}" in FSM "${this.id}". Valid states: ${Object.keys(this.states).join(`, `)}`);let a=[];if(i)for(let t of Object.keys(i)){if(!Object.hasOwn(this.states,t))throw Error(`rehydrate: unknown state "${t}" in FSM "${this.id}" referenced by snapshot.children.`);let n=this.states[t]?._child;if(!n)throw Error(`rehydrate: state "${t}" in FSM "${this.id}" has no _child, but the snapshot has a children["${t}"] entry.`);a.push(...n.planRehydrate(e,i[t]))}let o=r.map(e=>IP({inputName:e.inputName,args:QU(e.args)},e.untilState===void 0?{}:{untilState:e.untilState}));return a.push(()=>{this.clients.has(e)||this.knownClients.add(new WeakRef(e)),this.clients.set(e,{state:n,deferredQueue:o})}),a}rehydrateCompositePath(e,t){let n=BP(t.split(`.`)),r=n[0],i=kP(n).slice(1);if(!Object.hasOwn(this.states,r))throw Error(`rehydrate: unknown state "${r}" in FSM "${this.id}". Valid states: ${Object.keys(this.states).join(`, `)}`);if(i.length>0){let n=i.join(`.`),a=this.states[r]?._child;if(!a)throw Error(`rehydrate: state "${r}" in FSM "${this.id}" has no _child, but composite path "${t}" requires one.`);a.rehydrate(e,n)}this.clients.has(e)||this.knownClients.add(new WeakRef(e)),this.clients.set(e,{state:r,deferredQueue:[]})}collectChildSnapshots(e,t,n){let r=new Map;for(let e of Object.keys(this.states)){let t=this.states[e]?._child;if(!t)continue;let n=r.get(t.instance);n?n.stateNames.push(e):r.set(t.instance,{childLink:t,stateNames:[e]})}let i;for(let a of r.values()){let r=a.childLink,o=a.stateNames,s=n&&o.includes(t);if(r.instance[$U]===`Fsm`&&!s)continue;let c=r.dehydrate(e,s);if(c){i??={};for(let e of o)i[e]=c}}return i}snapshotDeferredInput(e){let t;try{t=JU(e.args,`args`)}catch(t){if(!(t instanceof qU))throw t;let n=e.untilState?` (until "${e.untilState}")`:``;throw Error(`dehydrate: deferred input "${e.inputName}"${n} in FSM "${this.id}" has a non-serializable value at ${t.path} (${t.label})`)}let n={inputName:e.inputName,args:t};return e.untilState!==void 0&&(n.untilState=e.untilState),n}on(e,t){return this.disposed?{off(){}}:this.emitter.on(e,t)}emit(e,t){this.disposed||this.emitter.emit(e,t)}dispose(e){this.disposed=!0;for(let e of this.childSubscriptions)e.off();if(!(e!=null&&e.preserveChildren)){let e=new Set;for(let t of Object.keys(this.states)){let n=this.states[t]?._child;n&&!e.has(n.instance)&&(e.add(n.instance),n.dispose())}}this.emitter.clear()}wrapChildLinks(){for(let e of Object.keys(this.states)){let t=this.states[e],n=t?._child;if(n){if(typeof n!=`object`)throw Error(`State "${e}"._child: expected an Fsm or BehavioralFsm instance, got ${String(n)}`);if(!($U in n))throw Error(`State "${e}"._child: expected an Fsm or BehavioralFsm instance, got a plain object`);t._child=nW(n)}}}setupChildSubscriptions(){let e=new Set;for(let t of Object.keys(this.states)){let n=this.states[t]?._child;if(!n||e.has(n.instance))continue;e.add(n.instance);let r=n.onAny((e,t)=>{if(e===`nohandler`){let e=t;if(e.client!==void 0)this.bubbleNohandler(e.client,n,e.inputName,e.args??[]);else for(let t of this.knownClients){let r=t.deref();if(r===void 0){this.knownClients.delete(t);continue}this.bubbleNohandler(r,n,e.inputName,e.args??[])}return}let r=t;if(r&&typeof r==`object`&&`client`in r)this.isChildActiveForClient(r.client,n)&&this.emitter.emit(e,t);else for(let r of this.knownClients){let i=r.deref();if(!i){this.knownClients.delete(r);continue}if(this.isChildActiveForClient(i,n)){this.emitter.emit(e,t);break}}});this.childSubscriptions.push(r)}}bubbleNohandler(e,t,n,r){if(!this.isChildActiveForClient(e,t))return;let i=this.clients.get(e);i.currentActionArgs=r,this.handleLocally(e,n,r,i)}isChildActiveForClient(e,t){var n;let r=this.clients.get(e);return r?((n=this.states[r.state])==null||(n=n._child)==null?void 0:n.instance)===t.instance:!1}handleLocally(e,t,n,r){let i=this.states[r.state],a=i?.[t]??i?.[`*`];if(!a){this.emitter.emit(`nohandler`,{inputName:t,args:n,client:e}),r.currentActionArgs=void 0;return}try{this.emitter.emit(`handling`,{inputName:t,client:e});let i=this.buildHandlerArgs(e,t,r),o;typeof a==`string`?o=a:typeof a==`function`&&(o=a(i,...n)),this.emitter.emit(`handled`,{inputName:t,client:e}),typeof o==`string`&&this.transition(e,o)}finally{r.currentActionArgs=void 0}}getOrCreateClientMeta(e){let t=this.clients.get(e);return t||(t={state:void 0,deferredQueue:[]},this.clients.set(e,t),this.knownClients.add(new WeakRef(e)),this.transition(e,this.initialState),t)}buildHandlerArgs(e,t,n){return{ctx:e,inputName:t,defer:r=>{if(!n.currentActionArgs)return;let i={inputName:t,args:[...n.currentActionArgs],untilState:r?.until};n.deferredQueue.push(i),this.emitter.emit(`deferred`,{inputName:t,client:e})},emit:(e,t)=>{this.emitter.emit(e,t)}}}processQueue(e,t){let n=[],r=[];for(let e of t.deferredQueue)e.untilState===void 0||e.untilState===t.state?n.push(e):r.push(e);t.deferredQueue=r;for(let t of n)this.handle(e,t.inputName,...t.args)}};function nW(e){if(!e||typeof e!=`object`)throw Error(`createChildLink: expected an Fsm or BehavioralFsm instance, got ${String(e)}`);let t=e[$U];if(t===`BehavioralFsm`)return{instance:e,canHandle(t,n){return e.canHandle(t,n)},handle(t,n){var r=[...arguments].slice(2);e.handle(t,n,...r)},reset(t){e.transition(t,e.initialState)},onAny(t){return e.on(`*`,t)},compositeState(t){return e.compositeState(t)},rehydrate(t,n){e.rehydrate(t,n)},dehydrate(t,n){return e.dehydrate(t,n)},planRehydrate(t,n){return e.planSnapshotWrites(t,n)},dispose(){e.dispose()}};if(t===`Fsm`)return{instance:e,canHandle(t,n){return e.canHandle(n)},handle(t,n){var r=[...arguments].slice(2);e.handle(n,...r)},reset(t){e.reset()},onAny(t){return e.on(`*`,t)},compositeState(t){return e.compositeState()},rehydrate(e,t){throw Error(`rehydrate: cannot rehydrate an Fsm child. Fsm owns its own context; rehydrate is only valid for BehavioralFsm hierarchies.`)},dehydrate(e,t){throw Error(`dehydrate: cannot dehydrate an Fsm child. Fsm owns its own context; dehydrate is only valid for BehavioralFsm hierarchies.`)},planRehydrate(e,t){throw Error(`rehydrate: cannot rehydrate an Fsm child. Fsm owns its own context; rehydrate is only valid for BehavioralFsm hierarchies.`)},dispose(){e.dispose()}};throw Error(`createChildLink: expected an Fsm or BehavioralFsm instance, got [MACHINA_TYPE] = ${String(t??`undefined`)}`)}var rW=class{constructor(e){jP(this,`id`,void 0),jP(this,`initialState`,void 0),jP(this,$U,`Fsm`),jP(this,`states`,void 0),jP(this,`bfsm`,void 0),jP(this,`context`,void 0),jP(this,`emitter`,new KU),jP(this,`disposed`,!1),this.id=e.id,this.initialState=e.initialState,this.context=e.context??{},this.bfsm=new tW(e),this.states=e.states,this.bfsm.on(`*`,(e,t)=>{if(t&&typeof t==`object`&&`client`in t){t.client;let n=LP(t,GU);this.emitter.emit(e,n)}else this.emitter.emit(e,t)}),this.bfsm.transition(this.context,e.initialState)}handle(e){if(!this.disposed){var t=[...arguments].slice(1);this.bfsm.handle(this.context,e,...t)}}canHandle(e){return!this.disposed&&this.bfsm.canHandle(this.context,e)}reset(){this.disposed||this.bfsm.reset(this.context)}currentState(){return this.bfsm.currentState(this.context)}transition(e){this.disposed||this.bfsm.transition(this.context,e)}compositeState(){return this.bfsm.compositeState(this.context)}on(e,t){return this.disposed?{off(){}}:this.emitter.on(e,t)}emit(e,t){this.disposed||this.bfsm.emit(e,t)}dispose(e){this.disposed=!0,this.bfsm.dispose(e),this.emitter.clear()}};function iW(e){return new rW(e)}function aW(e){return e}function oW(e,t){return t.attemptId===e.attemptId}var sW=aW((e,t)=>{let n=e.ctx;if(oW(n,t))return`connected`}),cW=aW(e=>{let t=e.ctx;return t.attemptId+=1,t.lastError=void 0,`connecting`}),lW=aW(e=>{let t=e.ctx;return t.attemptId+=1,t.lastError=void 0,`reconnecting`}),uW=aW((e,t)=>{let n=e.ctx;return n.closeReason=t.reason,`disconnecting`}),dW={new:{connect:cW,close:uW},connecting:{connectComplete:sW,connectFailed:aW((e,t)=>{let n=e.ctx;return n.lastError=t.error,`closed`}),close:uW},connected:{reconnect:lW,transportFailed:aW((e,t)=>{let n=e.ctx;if(oW(n,t))return n.lastError=t.reason,`offline`}),close:uW},offline:{connect:cW,reconnect:lW,close:uW},reconnecting:{reconnectComplete:sW,reconnectFailed:aW((e,t)=>{let n=e.ctx;return n.lastError=t.error,t.recoverable?`offline`:`closed`}),close:uW},disconnecting:{closeComplete:`closed`},closed:{connect:cW,reconnect:lW}};function fW(){return iW({id:`signal`,initialState:arguments.length>0&&arguments[0]!==void 0?arguments[0]:`new`,context:{attemptId:0},states:dW})}var pW=class{get readyState(){return this.ws.readyState}constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(t.signal?.aborted)throw new DOMException(`This operation was aborted`,`AbortError`);this.url=e;let n=new WebSocket(e,t.protocols??[]);n.binaryType=`arraybuffer`,this.ws=n;let r=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=e.closeCode,r=e.reason;return n.close(t,r)};this.opened=new vB((e,t)=>{let i=()=>{t(kB.websocket(`Encountered websocket error during connection establishment`))};n.onopen=()=>{e({readable:new ReadableStream({start(e){n.onmessage=t=>{let n=t.data;return e.enqueue(n)},n.onerror=t=>e.error(kB.websocket(XH(t,`websocket`))),n.onclose=t=>{t.wasClean||t.code===1e3?e.close():e.error(kB.websocket(`WS closed unexpectedly with code ${t.code}`))}},cancel:r}),writable:new WritableStream({write(e){n.send(e)},abort(){n.close()},close:r}),protocol:n.protocol,extensions:n.extensions}),n.removeEventListener(`error`,i)},n.addEventListener(`error`,i)}),this.closed=new vB((e,t)=>{let r=()=>J(this,void 0,void 0,function*(){let r=new vB(e=>{n.readyState!==WebSocket.CLOSED&&n.addEventListener(`close`,t=>{e(t)},{once:!0})}),i=yield vB.race([jV(250),r]);i?e(i):t(kB.websocket(`Encountered unspecified websocket error without a timely close event`))});n.addEventListener(`close`,t=>{let i=t.code,a=t.reason;e({closeCode:i,reason:a}),n.removeEventListener(`error`,r)}),n.addEventListener(`error`,r)}),t.signal&&(t.signal.onabort=()=>n.close()),this.close=r}},mW=[`syncState`,`trickle`,`offer`,`answer`,`simulate`,`leave`];function hW(e){return e instanceof kB?e.reason!==OB.LeaveRequest&&e.reason!==OB.NotAllowed:!0}function gW(e){let t=mW.indexOf(e.case)>=0;return BR.trace(`request allowed to bypass queue:`,{canPass:t,req:e}),t}var _W;(function(e){e[e.CONNECTING=0]=`CONNECTING`,e[e.CONNECTED=1]=`CONNECTED`,e[e.RECONNECTING=2]=`RECONNECTING`,e[e.DISCONNECTING=3]=`DISCONNECTING`,e[e.DISCONNECTED=4]=`DISCONNECTED`})(_W||={});function vW(e){switch(e){case`connected`:return _W.CONNECTED;case`connecting`:return _W.CONNECTING;case`reconnecting`:return _W.RECONNECTING;case`disconnecting`:return _W.DISCONNECTING;default:return _W.DISCONNECTED}}var yW=250,bW=5e3,xW=class{get currentState(){return vW(this.lifecycleState)}get isDisconnected(){let e=this.currentState;return e===_W.DISCONNECTING||e===_W.DISCONNECTED}get lifecycleState(){return this.machine.currentState()}get attemptId(){return this.machine.context.attemptId}sendLifecycleInput(e){let t=this.lifecycleState;return this.machine.handle(e.type,e),this.lifecycleState!==t}settleInFlightClose(){return J(this,void 0,void 0,function*(){this.log.debug(`waiting for an in-flight close to settle before establishing a session`),(yield this.closingLock.lock())()})}get isEstablishingConnection(){return this.lifecycleState===`connecting`||this.lifecycleState===`reconnecting`}getNextRequestId(){return this._requestId+=1,this._requestId}constructor(){let e=arguments.length>0&&arguments[0]!==void 0&&arguments[0],t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.rtt=0,this.log=BR,this._requestId=0,this.useV0SignalPath=!1,this.resetCallbacks=()=>{this.onAnswer=void 0,this.onLeave=void 0,this.onLocalTrackPublished=void 0,this.onLocalTrackUnpublished=void 0,this.onNegotiateRequested=void 0,this.onOffer=void 0,this.onRemoteMuteChanged=void 0,this.onSubscribedQualityUpdate=void 0,this.onTokenRefresh=void 0,this.onTrickle=void 0,this.onClose=void 0,this.onMediaSectionsRequirement=void 0},this.loggerContextCb=t.loggerContextCb,this.log=VR(t.loggerName??zR.Signal,()=>this.logContext),this.useJSON=e,this.requestQueue=new WU,this.queuedRequests=[],this.closingLock=new KN,this.connectionLock=new KN,this.machine=fW(),this.machine.on(`transitioned`,e=>{let t=e.fromState,n=e.toState;this.log.debug(`signal lifecycle: ${t} -> ${n}`)}),this.machine.on(`nohandler`,e=>{let t=e.inputName;this.log.debug(`ignoring signal lifecycle input ${t} in state ${this.lifecycleState}`)}),this.machine}get logContext(){return this.loggerContextCb?.call(this)??{}}join(e,t,n,r){return J(this,arguments,void 0,function(e,t,n,r){var i=this;let a=arguments.length>4&&arguments[4]!==void 0&&arguments[4],o=arguments.length>5?arguments[5]:void 0;return function*(){if(i.lifecycleState===`disconnecting`&&(yield i.settleInFlightClose()),!i.sendLifecycleInput({type:`connect`}))throw kB.internal(`cannot establish a signal session from '${i.lifecycleState}', close the current one first`);i.options=n;try{return yield i.connect(e,t,n,r,a,o)}catch(e){throw i.sendLifecycleInput({type:`connectFailed`,error:e}),e}}()})}reconnect(e,t,n,r){return J(this,void 0,void 0,function*(){if(!this.options){this.log.warn(`attempted to reconnect without signal options being set, ignoring`);return}if(this.lifecycleState===`disconnecting`&&(yield this.settleInFlightClose()),!this.sendLifecycleInput({type:`reconnect`}))throw kB.internal(`cannot resume the signal session from '${this.lifecycleState}'`);this.clearPingInterval();try{return yield this.connect(e,t,Object.assign(Object.assign({},this.options),{reconnect:!0,sid:n,reconnectReason:r}),void 0,this.useV0SignalPath)}catch(e){throw this.sendLifecycleInput({type:`reconnectFailed`,error:e,recoverable:hW(e)}),e}})}connect(e,t,n,r){return J(this,arguments,void 0,function(e,t,n,r){var i=this;let a=arguments.length>4&&arguments[4]!==void 0&&arguments[4],o=arguments.length>5?arguments[5]:void 0;return function*(){let s=yield i.connectionLock.lock();i.connectOptions=n,i.useV0SignalPath=a;let c=pH(n.clientInfoCapabilities),l=UH(e,a?wW(t,c,n):yield TW(t,c,n,o),a).toString(),u=GH(l).toString();return new Promise((e,t)=>J(i,void 0,void 0,function*(){try{let i=!1,a=e=>J(this,void 0,void 0,function*(){if(i)return;i=!0;let n=YH(e instanceof Event?e.currentTarget:e,`Abort handler called`);this.streamWriter&&!this.isDisconnected?this.sendLeave().then(()=>this.close(n)).catch(e=>{this.log.error(e),this.close()}):this.close(),o(),t(e instanceof kB?e:kB.cancelled(n))});r?.addEventListener(`abort`,a);let o=()=>{clearTimeout(s),r?.removeEventListener(`abort`,a)},s=setTimeout(()=>{a(kB.timeout(`room connection has timed out (signal)`))},n.websocketTimeout),c=new URL(l);if(c.searchParams.has(`access_token`)&&c.searchParams.set(`access_token`,`<redacted>`),this.ws){let e=performance.now();yield this.teardownTransport(`replaced by a new connection attempt`),this.log.debug(`closed previous ws connection in ${performance.now()-e}ms`)}let d=this.attemptId;this.log.info(`signal connecting to ${c}`,{reconnect:n.reconnect,reconnectReason:n.reconnectReason}),this.ws=new pW(l);let f=!1;this.ws.opened.catch(()=>{f=!0});try{this.ws.closed.then(e=>{this.isEstablishingConnection&&!f&&t(kB.internal(`Websocket got closed during a (re)connection attempt: ${e.reason}`)),this.log.debug(`websocket closed`,{reason:e.reason,code:e.closeCode,attemptId:d,state:this.lifecycleState}),this.handleOnClose(e.reason||(e.closeCode===1e3?`server closed the signal connection`:`Unexpected WS error`),d)}).catch(e=>{this.isEstablishingConnection&&!f&&t(kB.internal(`Websocket error during a (re)connection attempt: ${e}`))});let r=yield this.ws.opened.catch(e=>J(this,void 0,void 0,function*(){if(this.lifecycleState!==`connected`){clearTimeout(s),t(yield this.handleConnectionError(e,u));return}this.handleWSError(e),t(e)}));if(clearTimeout(s),!r)return;let i=r.readable.getReader();this.streamWriter=r.writable.getWriter();let a,o;try{a=yield Promise.race([i.read(),new Promise((e,t)=>{o=setTimeout(()=>{t(kB.timeout(`signal connection timed out while waiting for the first message`))},bW)})])}catch(e){i.releaseLock(),t(e),this.close();return}finally{clearTimeout(o)}if(i.releaseLock(),!a.value)throw kB.internal(`no message received as first message`);let c=JH(a.value),l=this.validateFirstMessage(c,n.reconnect??!1);if(!l.isValid){t(l.error);return}c.message?.case===`join`&&(this.pingTimeoutDuration=c.message.value.pingTimeout,this.pingIntervalDuration=c.message.value.pingInterval,this.pingTimeoutDuration&&this.pingTimeoutDuration>0&&this.log.debug(`ping config`,{timeout:this.pingTimeoutDuration,interval:this.pingIntervalDuration}),this.onJoined&&this.onJoined(c.message.value));let p=l.shouldProcessFirstMessage?c:void 0;this.handleSignalConnected(r,s,d,p),e(l.response)}catch(e){t(e)}finally{o()}}finally{s()}}))}()})}startReadingLoop(e,t){return J(this,void 0,void 0,function*(){t&&this.handleSignalResponse(t);let n=this.attemptId;for(;;){this.signalLatency&&(yield jV(this.signalLatency));try{let t=yield e.read(),n=t.done,r=t.value;if(n)break;let i=JH(r);this.handleSignalResponse(i)}catch(e){this.log.error(`error reading from signal stream`,{error:e}),yield this.handleOnClose(`error in reading loop`,n);break}}})}close(){return J(this,arguments,void 0,function(){var e=this;let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`Close method called on signal client`;return function*(){let r=t&&e.sendLifecycleInput({type:`close`,reason:n}),i=yield e.closingLock.lock();try{yield e.teardownTransport(n)}finally{r&&e.sendLifecycleInput({type:`closeComplete`}),i()}}()})}teardownTransport(e){return J(this,void 0,void 0,function*(){try{if(this.clearPingInterval(),this.ws){this.ws.close({closeCode:1e3,reason:e});let t=this.ws.closed;this.ws=void 0,this.streamWriter=void 0,yield Promise.race([t,jV(yW)])}}catch(e){this.log.debug(`websocket error while closing`,{error:e})}})}sendOffer(e,t){this.log.debug(`sending offer`,{offerSdp:e.sdp}),this.sendRequest({case:`offer`,value:CW(e,t)})}sendAnswer(e,t){return this.log.debug(`sending answer`,{answerSdp:e.sdp}),this.sendRequest({case:`answer`,value:CW(e,t)})}sendIceCandidate(e,t){return this.log.debug(`sending ice candidate`,{candidate:e}),this.sendRequest({case:`trickle`,value:new ML({candidateInit:JSON.stringify(e),target:t})})}sendMuteTrack(e,t){return this.sendRequest({case:`mute`,value:new NL({sid:e,muted:t})})}sendAddTrack(e){return this.sendRequest({case:`addTrack`,value:e})}sendUpdateLocalMetadata(e,t){return J(this,arguments,void 0,function(e,t){var n=this;let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return function*(){let i=n.getNextRequestId();return yield n.sendRequest({case:`updateMetadata`,value:new $L({requestId:i,metadata:e,name:t,attributes:r})}),i}()})}sendUpdateTrackSettings(e){this.sendRequest({case:`trackSetting`,value:e})}sendUpdateSubscription(e){return this.sendRequest({case:`subscription`,value:e})}sendSyncState(e){return this.sendRequest({case:`syncState`,value:e})}sendUpdateVideoLayers(e,t){return this.sendRequest({case:`updateLayers`,value:new QL({trackSid:e,layers:t})})}sendUpdateSubscriptionPermissions(e,t){return this.sendRequest({case:`subscriptionPermission`,value:new fR({allParticipants:e,trackPermissions:t})})}sendSimulateScenario(e){return this.sendRequest({case:`simulate`,value:e})}sendPing(){return Promise.all([this.sendRequest({case:`ping`,value:CP.parse(Date.now())}),this.sendRequest({case:`pingReq`,value:new yR({timestamp:CP.parse(Date.now()),rtt:CP.parse(this.rtt)})})])}sendUpdateLocalAudioTrack(e,t){return this.sendRequest({case:`updateAudioTrack`,value:new JL({trackSid:e,features:t})})}sendLeave(){return this.sendRequest({case:`leave`,value:new XL({reason:gI.CLIENT_INITIATED,action:ZL.DISCONNECT})})}sendPublishDataTrackRequest(e,t,n){return this.sendRequest({case:`publishDataTrackRequest`,value:new EL({pubHandle:e,name:t,encryption:n?OI.GCM:OI.NONE})})}sendUnPublishDataTrackRequest(e){return this.sendRequest({case:`unpublishDataTrackRequest`,value:new OL({pubHandle:e})})}sendUpdateDataSubscription(e,t){return this.sendRequest({case:`updateDataSubscription`,value:new VL({updates:[new HL({trackSid:e,subscribe:t})]})})}sendRequest(e){return J(this,arguments,void 0,function(e){var t=this;let n=arguments.length>1&&arguments[1]!==void 0&&arguments[1];return function*(){let r=!n&&!gW(e),i=t.lifecycleState===`reconnecting`||t.queuedRequests.length>0;if(r&&i){t.queuedRequests.push(()=>J(t,void 0,void 0,function*(){yield this.sendRequest(e,!0)}));return}n||(yield t.requestQueue.flush()),t.signalLatency&&(yield jV(t.signalLatency));let a=e.case===`leave`&&!!t.streamWriter;if(t.isDisconnected&&!a){t.log.debug(`skipping signal request (type: ${e.case}) - SignalClient disconnected`);return}if(!t.streamWriter){t.log.error(`cannot send signal request before connected, type: ${e?.case}`);return}let o=new SL({message:e});try{t.useJSON?yield t.streamWriter.write(o.toJsonString()):yield t.streamWriter.write(o.toBinary().buffer)}catch(e){t.log.error(`error sending signal message`,{error:e})}}()})}handleSignalResponse(e){let t=e.message;if(t==null){this.log.debug(`received unsupported message`);return}let n=!1;if(t.case===`answer`){let e=SW(t.value);this.onAnswer&&this.onAnswer(e,t.value.id,t.value.midToTrackId)}else if(t.case===`offer`){let e=SW(t.value);this.onOffer&&this.onOffer(e,t.value.id,t.value.midToTrackId)}else if(t.case===`trickle`){let e=JSON.parse(t.value.candidateInit);this.onTrickle&&this.onTrickle(e,t.value.target)}else t.case===`update`?this.onParticipantUpdate&&this.onParticipantUpdate(t.value.participants??[]):t.case===`trackPublished`?this.onLocalTrackPublished&&this.onLocalTrackPublished(t.value):t.case===`speakersChanged`?this.onSpeakersChanged&&this.onSpeakersChanged(t.value.speakers??[]):t.case===`leave`?this.onLeave&&this.onLeave(t.value):t.case===`mute`?this.onRemoteMuteChanged&&this.onRemoteMuteChanged(t.value.sid,t.value.muted):t.case===`roomUpdate`?this.onRoomUpdate&&t.value.room&&this.onRoomUpdate(t.value.room):t.case===`connectionQuality`?this.onConnectionQuality&&this.onConnectionQuality(t.value):t.case===`streamStateUpdate`?this.onStreamStateUpdate&&this.onStreamStateUpdate(t.value):t.case===`subscribedQualityUpdate`?this.onSubscribedQualityUpdate&&this.onSubscribedQualityUpdate(t.value):t.case===`subscriptionPermissionUpdate`?this.onSubscriptionPermissionUpdate&&this.onSubscriptionPermissionUpdate(t.value):t.case===`refreshToken`?this.onTokenRefresh&&this.onTokenRefresh(t.value):t.case===`trackUnpublished`?this.onLocalTrackUnpublished&&this.onLocalTrackUnpublished(t.value):t.case===`subscriptionResponse`?this.onSubscriptionError&&this.onSubscriptionError(t.value):t.case===`pong`||(t.case===`pongResp`?(this.rtt=Date.now()-Number.parseInt(t.value.lastPingTimestamp.toString()),this.resetPingTimeout(),n=!0):t.case===`requestResponse`?this.onRequestResponse&&this.onRequestResponse(t.value):t.case===`trackSubscribed`?this.onLocalTrackSubscribed&&this.onLocalTrackSubscribed(t.value.trackSid):t.case===`roomMoved`?(this.onTokenRefresh&&this.onTokenRefresh(t.value.token),this.onRoomMoved&&this.onRoomMoved(t.value)):t.case===`mediaSectionsRequirement`?this.onMediaSectionsRequirement&&this.onMediaSectionsRequirement(t.value):t.case===`publishDataTrackResponse`?this.onPublishDataTrackResponse&&this.onPublishDataTrackResponse(t.value):t.case===`unpublishDataTrackResponse`?this.onUnPublishDataTrackResponse&&this.onUnPublishDataTrackResponse(t.value):t.case===`dataTrackSubscriberHandles`?this.onDataTrackSubscriberHandles&&this.onDataTrackSubscriberHandles(t.value):this.log.debug(`unsupported message`,{msgCase:t.case}));n||this.resetPingTimeout()}setReconnected(){for(;this.queuedRequests.length>0;){let e=this.queuedRequests.shift();e&&this.requestQueue.run(e)}}handleOnClose(e){return J(this,arguments,void 0,function(e){var t=this;let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.attemptId;return function*(){let r=t.onClose;if(!t.sendLifecycleInput({type:`transportFailed`,attemptId:n,reason:e})){t.log.debug(`ignoring transport close in state ${t.lifecycleState}`,{reason:e,attemptId:n,currentAttemptId:t.attemptId});return}yield t.teardownTransport(e),t.log.info(`websocket connection closed: ${e}`,{reason:e}),r&&r(e)}()})}handleWSError(e){this.log.error(`websocket error`,{error:e})}resetPingTimeout(){if(this.clearPingTimeout(),!this.pingTimeoutDuration){this.log.warn(`ping timeout duration not set`);return}this.pingTimeout=HB.setTimeout(()=>{this.log.warn(`ping timeout triggered. last pong received at: ${new Date(Date.now()-this.pingTimeoutDuration*1e3).toUTCString()}`),this.handleOnClose(`ping timeout`)},this.pingTimeoutDuration*1e3)}clearPingTimeout(){this.pingTimeout&&HB.clearTimeout(this.pingTimeout)}startPingInterval(){if(this.clearPingInterval(),this.resetPingTimeout(),!this.pingIntervalDuration){this.log.warn(`ping interval duration not set`);return}this.log.debug(`start ping interval`),this.pingInterval=HB.setInterval(()=>{this.sendPing()},this.pingIntervalDuration*1e3)}clearPingInterval(){this.log.debug(`clearing ping interval`),this.clearPingTimeout(),this.pingInterval&&HB.clearInterval(this.pingInterval)}handleSignalConnected(e,t,n,r){if(clearTimeout(t),!this.sendLifecycleInput(this.lifecycleState===`reconnecting`?{type:`reconnectComplete`,attemptId:n}:{type:`connectComplete`,attemptId:n})){this.log.debug(`discarding a connection whose attempt no longer owns the session`,{attemptId:n,currentAttemptId:this.attemptId,state:this.lifecycleState});return}this.log.info(`signal connected`),this.startPingInterval(),this.startReadingLoop(e.readable.getReader(),r)}validateFirstMessage(e,t){return e.message?.case===`join`?{isValid:!0,response:e.message.value}:this.lifecycleState===`reconnecting`&&e.message?.case!==`leave`?e.message?.case===`reconnect`?{isValid:!0,response:e.message.value}:(this.log.debug(`declaring signal reconnected without reconnect response received`),{isValid:!0,response:void 0,shouldProcessFirstMessage:!0}):this.isEstablishingConnection&&e.message?.case===`leave`?{isValid:!1,error:kB.leaveRequest(`Received leave request while trying to (re)connect`,e.message.value.reason)}:t?{isValid:!1,error:kB.internal(`Unexpected first message`)}:{isValid:!1,error:kB.internal(`did not receive join response, got ${e.message?.case} instead`)}}handleConnectionError(e,t){return J(this,void 0,void 0,function*(){try{let n=yield fetch(t);switch(n.status){case 404:let e=yield n.text();return e.includes(`requested room does not exist`)?kB.notAllowed(e,n.status):kB.serviceNotFound(`v1 RTC path not found. Consider upgrading your LiveKit server version`,`v0-rtc`);case 401:case 403:let t=yield n.text();return kB.notAllowed(t,n.status)}return e instanceof kB?e:kB.internal(`Encountered unknown websocket error during connection: ${e}`,{status:n.status,statusText:n.statusText})}catch(e){return e instanceof kB?e:kB.serverUnreachable(e instanceof Error?e.message:`server was not reachable`)}})}};function SW(e){let t={type:`offer`,sdp:e.sdp};switch(e.type){case`answer`:case`offer`:case`pranswer`:case`rollback`:t.type=e.type}return t}function CW(e,t){return new RL({sdp:e.sdp,type:e.type,id:t})}function wW(e,t,n){let r=new URLSearchParams;return r.set(`access_token`,e),n.reconnect&&(r.set(`reconnect`,`1`),n.sid&&r.set(`sid`,n.sid)),r.set(`auto_subscribe`,n.autoSubscribe?`1`:`0`),r.set(`sdk`,eH()?`reactnative`:`js`),r.set(`version`,t.version),r.set(`protocol`,t.protocol.toString()),r.set(`client_protocol`,t.clientProtocol.toString()),t.deviceModel&&r.set(`device_model`,t.deviceModel),t.os&&r.set(`os`,t.os),t.osVersion&&r.set(`os_version`,t.osVersion),t.browser&&r.set(`browser`,t.browser),t.browserVersion&&r.set(`browser_version`,t.browserVersion),n.adaptiveStream&&r.set(`adaptive_stream`,`1`),n.reconnectReason&&r.set(`reconnect_reason`,n.reconnectReason.toString()),navigator.connection?.type&&r.set(`network`,navigator.connection.type),r}function TW(e,t,n,r){return J(this,void 0,void 0,function*(){let i=new URLSearchParams;i.set(`access_token`,e);let a=new OR({clientInfo:t,connectionSettings:new DR({autoSubscribe:!!n.autoSubscribe,adaptiveStream:!!n.adaptiveStream}),reconnect:!!n.reconnect,participantSid:n.sid?n.sid:void 0,publisherOffer:r});n.reconnectReason&&(a.reconnectReason=n.reconnectReason);let o=a.toBinary(),s,c;if(BH()){let e=new CompressionStream(`gzip`),t=e.writable.getWriter();t.write(new Uint8Array(o)),t.close();let n=[],r=e.readable.getReader();for(;;){let e=yield r.read(),t=e.done,i=e.value;if(t)break;n.push(i)}let i=n.reduce((e,t)=>e+t.length,0),a=new Uint8Array(i),l=0;for(let e of n)a.set(e,l),l+=e.length;s=a,c=AR.GZIP}else s=o,c=AR.NONE;let l=new kR({joinRequest:s,compression:c}).toBinary();return i.set(`join_request`,(e=>{let t=Array.from(e,e=>String.fromCodePoint(e)).join(``);return btoa(t)})(l).replace(/\+/g,`-`).replace(/\//g,`_`)),i})}var EW=class{constructor(e){this._map=new Map,this._lastCleanup=0,this.ttl=e}set(e,t){let n=Date.now();n-this._lastCleanup>this.ttl/2&&this.cleanup();let r=n+this.ttl;return this._map.set(e,{value:t,expiresAt:r}),this}get(e){let t=this._map.get(e);if(t){if(t.expiresAt<Date.now()){this._map.delete(e);return}return t.value}}has(e){let t=this._map.get(e);return t?t.expiresAt<Date.now()?(this._map.delete(e),!1):!0:!1}delete(e){return this._map.delete(e)}clear(){this._map.clear()}cleanup(){let e=Date.now();for(let n of this._map.entries()){var t=zP(n,2);let r=t[0];t[1].expiresAt<e&&this._map.delete(r)}this._lastCleanup=e}get size(){return this.cleanup(),this._map.size}forEach(e){this.cleanup();for(let n of this._map.entries()){var t=zP(n,2);let r=t[0],i=t[1];i.expiresAt>=Date.now()&&e(i.value,r,this.asValueMap())}}map(e){this.cleanup();let t=[],n=this.asValueMap();for(let i of n.entries()){var r=zP(i,2);let a=r[0],o=r[1];t.push(e(o,a,n))}return t}asValueMap(){let e=new Map;for(let n of this._map.entries()){var t=zP(n,2);let r=t[0],i=t[1];i.expiresAt>=Date.now()&&e.set(r,i.value)}return e}},DW={},OW={},kW={exports:{}},AW;function jW(){if(AW)return kW.exports;AW=1;var e=kW.exports={v:[{name:`version`,reg:/^(\d*)$/}],o:[{name:`origin`,reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:[`username`,`sessionId`,`sessionVersion`,`netType`,`ipVer`,`address`],format:`%s %s %d %s IP%d %s`}],s:[{name:`name`}],i:[{name:`description`}],u:[{name:`uri`}],e:[{name:`email`}],p:[{name:`phone`}],z:[{name:`timezones`}],r:[{name:`repeats`}],t:[{name:`timing`,reg:/^(\d*) (\d*)/,names:[`start`,`stop`],format:`%d %d`}],c:[{name:`connection`,reg:/^IN IP(\d) (\S*)/,names:[`version`,`ip`],format:`IN IP%d %s`}],b:[{push:`bandwidth`,reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:[`type`,`limit`],format:`%s:%s`}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:[`type`,`port`,`protocol`,`payloads`],format:`%s %d %s %s`}],a:[{push:`rtp`,reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:[`payload`,`codec`,`rate`,`encoding`],format:function(e){return e.encoding?`rtpmap:%d %s/%s/%s`:e.rate?`rtpmap:%d %s/%s`:`rtpmap:%d %s`}},{push:`fmtp`,reg:/^fmtp:(\d*) ([\S| ]*)/,names:[`payload`,`config`],format:`fmtp:%d %s`},{name:`control`,reg:/^control:(.*)/,format:`control:%s`},{name:`rtcp`,reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:[`port`,`netType`,`ipVer`,`address`],format:function(e){return e.address==null?`rtcp:%d`:`rtcp:%d %s IP%d %s`}},{push:`rtcpFbTrrInt`,reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:[`payload`,`value`],format:`rtcp-fb:%s trr-int %d`},{push:`rtcpFb`,reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:[`payload`,`type`,`subtype`],format:function(e){return e.subtype==null?`rtcp-fb:%s %s`:`rtcp-fb:%s %s %s`}},{push:`ext`,reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:[`value`,`direction`,`encrypt-uri`,`uri`,`config`],format:function(e){return`extmap:%d`+(e.direction?`/%s`:`%v`)+(e[`encrypt-uri`]?` %s`:`%v`)+` %s`+(e.config?` %s`:``)}},{name:`extmapAllowMixed`,reg:/^(extmap-allow-mixed)/},{push:`crypto`,reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:[`id`,`suite`,`config`,`sessionConfig`],format:function(e){return e.sessionConfig==null?`crypto:%d %s %s`:`crypto:%d %s %s %s`}},{name:`setup`,reg:/^setup:(\w*)/,format:`setup:%s`},{name:`connectionType`,reg:/^connection:(new|existing)/,format:`connection:%s`},{name:`mid`,reg:/^mid:([^\s]*)/,format:`mid:%s`},{name:`msid`,reg:/^msid:(.*)/,format:`msid:%s`},{name:`ptime`,reg:/^ptime:(\d*(?:\.\d*)*)/,format:`ptime:%d`},{name:`maxptime`,reg:/^maxptime:(\d*(?:\.\d*)*)/,format:`maxptime:%d`},{name:`direction`,reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:`icelite`,reg:/^(ice-lite)/},{name:`iceUfrag`,reg:/^ice-ufrag:(\S*)/,format:`ice-ufrag:%s`},{name:`icePwd`,reg:/^ice-pwd:(\S*)/,format:`ice-pwd:%s`},{name:`fingerprint`,reg:/^fingerprint:(\S*) (\S*)/,names:[`type`,`hash`],format:`fingerprint:%s %s`},{push:`candidates`,reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:[`foundation`,`component`,`transport`,`priority`,`ip`,`port`,`type`,`raddr`,`rport`,`tcptype`,`generation`,`network-id`,`network-cost`],format:function(e){var t=`candidate:%s %d %s %d %s %d typ %s`;return t+=e.raddr==null?`%v%v`:` raddr %s rport %d`,t+=e.tcptype==null?`%v`:` tcptype %s`,e.generation!=null&&(t+=` generation %d`),t+=e[`network-id`]==null?`%v`:` network-id %d`,t+=e[`network-cost`]==null?`%v`:` network-cost %d`,t}},{name:`endOfCandidates`,reg:/^(end-of-candidates)/},{name:`remoteCandidates`,reg:/^remote-candidates:(.*)/,format:`remote-candidates:%s`},{name:`iceOptions`,reg:/^ice-options:(\S*)/,format:`ice-options:%s`},{push:`ssrcs`,reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:[`id`,`attribute`,`value`],format:function(e){var t=`ssrc:%d`;return e.attribute!=null&&(t+=` %s`,e.value!=null&&(t+=`:%s`)),t}},{push:`ssrcGroups`,reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:[`semantics`,`ssrcs`],format:`ssrc-group:%s %s`},{name:`msidSemantic`,reg:/^msid-semantic:\s?(\w*) (\S*)/,names:[`semantic`,`token`],format:`msid-semantic: %s %s`},{push:`groups`,reg:/^group:(\w*) (.*)/,names:[`type`,`mids`],format:`group:%s %s`},{name:`rtcpMux`,reg:/^(rtcp-mux)/},{name:`rtcpRsize`,reg:/^(rtcp-rsize)/},{name:`sctpmap`,reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:[`sctpmapNumber`,`app`,`maxMessageSize`],format:function(e){return e.maxMessageSize==null?`sctpmap:%s %s`:`sctpmap:%s %s %s`}},{name:`xGoogleFlag`,reg:/^x-google-flag:([^\s]*)/,format:`x-google-flag:%s`},{push:`rids`,reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:[`id`,`direction`,`params`],format:function(e){return e.params?`rid:%s %s %s`:`rid:%s %s`}},{push:`imageattrs`,reg:RegExp(`^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?`),names:[`pt`,`dir1`,`attrs1`,`dir2`,`attrs2`],format:function(e){return`imageattr:%s %s %s`+(e.dir2?` %s %s`:``)}},{name:`simulcast`,reg:RegExp(`^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$`),names:[`dir1`,`list1`,`dir2`,`list2`],format:function(e){return`simulcast:%s %s`+(e.dir2?` %s %s`:``)}},{name:`simulcast_03`,reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:[`value`],format:`simulcast: %s`},{name:`framerate`,reg:/^framerate:(\d+(?:$|\.\d+))/,format:`framerate:%s`},{name:`sourceFilter`,reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:[`filterMode`,`netType`,`addressTypes`,`destAddress`,`srcList`],format:`source-filter: %s %s %s %s %s`},{name:`bundleOnly`,reg:/^(bundle-only)/},{name:`label`,reg:/^label:(.+)/,format:`label:%s`},{name:`sctpPort`,reg:/^sctp-port:(\d+)$/,format:`sctp-port:%s`},{name:`maxMessageSize`,reg:/^max-message-size:(\d+)$/,format:`max-message-size:%s`},{push:`tsRefClocks`,reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:[`clksrc`,`clksrcExt`],format:function(e){return`ts-refclk:%s`+(e.clksrcExt==null?``:`=%s`)}},{name:`mediaClk`,reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:[`id`,`mediaClockName`,`mediaClockValue`,`rateNumerator`,`rateDenominator`],format:function(e){var t=`mediaclk:`;return t+=e.id==null?`%v%s`:`id=%s %s`,t+=e.mediaClockValue==null?``:`=%s`,t+=e.rateNumerator==null?``:` rate=%s`,t+=e.rateDenominator==null?``:`/%s`,t}},{name:`keywords`,reg:/^keywds:(.+)$/,format:`keywds:%s`},{name:`content`,reg:/^content:(.+)/,format:`content:%s`},{name:`bfcpFloorCtrl`,reg:/^floorctrl:(c-only|s-only|c-s)/,format:`floorctrl:%s`},{name:`bfcpConfId`,reg:/^confid:(\d+)/,format:`confid:%s`},{name:`bfcpUserId`,reg:/^userid:(\d+)/,format:`userid:%s`},{name:`bfcpFloorId`,reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:[`id`,`mStream`],format:`floorid:%s mstrm:%s`},{push:`invalid`,names:[`value`]}]};return Object.keys(e).forEach(function(t){e[t].forEach(function(e){e.reg||=/(.*)/,e.format||=`%s`})}),kW.exports}var MW;function NW(){return MW?OW:(MW=1,(function(e){var t=function(e){return String(Number(e))===e?Number(e):e},n=function(e,n,r,i){if(i&&!r)n[i]=t(e[1]);else for(var a=0;a<r.length;a+=1)e[a+1]!=null&&(n[r[a]]=t(e[a+1]))},r=function(e,t,r){var i=e.name&&e.names;e.push&&!t[e.push]?t[e.push]=[]:i&&!t[e.name]&&(t[e.name]={});var a=e.push?{}:i?t[e.name]:t;n(r.match(e.reg),a,e.names,e.name),e.push&&t[e.push].push(a)},i=jW(),a=RegExp.prototype.test.bind(/^([a-z])=(.*)/);e.parse=function(e){var t={},n=[],o=t;return e.split(/(\r\n|\r|\n)/).filter(a).forEach(function(e){var t=e[0],a=e.slice(2);t===`m`&&(n.push({rtp:[],fmtp:[]}),o=n[n.length-1]);for(var s=0;s<(i[t]||[]).length;s+=1){var c=i[t][s];if(c.reg.test(a))return r(c,o,a)}}),t.media=n,t};var o=function(e,n){var r=n.split(/=(.+)/,2);return r.length===2?e[r[0]]=t(r[1]):r.length===1&&n.length>1&&(e[r[0]]=void 0),e};e.parseParams=function(e){return e.split(/;\s?/).reduce(o,{})},e.parseFmtpConfig=e.parseParams,e.parsePayloads=function(e){return e.toString().split(` `).map(Number)},e.parseRemoteCandidates=function(e){for(var n=[],r=e.split(` `).map(t),i=0;i<r.length;i+=3)n.push({component:r[i],ip:r[i+1],port:r[i+2]});return n},e.parseImageAttributes=function(e){return e.split(` `).map(function(e){return e.substring(1,e.length-1).split(`,`).reduce(o,{})})},e.parseSimulcastStreamList=function(e){return e.split(`;`).map(function(e){return e.split(`,`).map(function(e){var n,r=!1;return e[0]===`~`?(n=t(e.substring(1,e.length)),r=!0):n=t(e),{scid:n,paused:r}})})}})(OW),OW)}var PW,FW;function IW(){if(FW)return PW;FW=1;var e=jW(),t=/%[sdv%]/g,n=function(e){var n=1,r=arguments,i=r.length;return e.replace(t,function(e){if(n>=i)return e;var t=r[n];switch(n+=1,e){case`%%`:return`%`;case`%s`:return String(t);case`%d`:return Number(t);case`%v`:return``}})},r=function(e,t,r){var i=t.format instanceof Function?t.format(t.push?r:r[t.name]):t.format,a=[e+`=`+i];if(t.names)for(var o=0;o<t.names.length;o+=1){var s=t.names[o];t.name?a.push(r[t.name][s]):a.push(r[t.names[o]])}else a.push(r[t.name]);return n.apply(null,a)},i=[`v`,`o`,`s`,`i`,`u`,`e`,`p`,`c`,`b`,`t`,`r`,`z`,`a`],a=[`i`,`c`,`b`,`a`];return PW=function(t,n){n||={},t.version??=0,t.name??=` `,t.media.forEach(function(e){e.payloads??=``});var o=n.outerOrder||i,s=n.innerOrder||a,c=[];return o.forEach(function(n){e[n].forEach(function(e){e.name in t&&t[e.name]!=null?c.push(r(n,e,t)):e.push in t&&t[e.push]!=null&&t[e.push].forEach(function(t){c.push(r(n,e,t))})})}),t.media.forEach(function(t){c.push(r(`m`,e.m[0],t)),s.forEach(function(n){e[n].forEach(function(e){e.name in t&&t[e.name]!=null?c.push(r(n,e,t)):e.push in t&&t[e.push]!=null&&t[e.push].forEach(function(t){c.push(r(n,e,t))})})})}),c.join(`\r
139
+ `)+`\r
140
+ `},PW}var LW;function RW(){if(LW)return DW;LW=1;var e=NW(),t=IW();return DW.grammar=jW(),DW.write=t,DW.parse=e.parse,DW.parseParams=e.parseParams,DW.parseFmtpConfig=e.parseFmtpConfig,DW.parsePayloads=e.parsePayloads,DW.parseRemoteCandidates=e.parseRemoteCandidates,DW.parseImageAttributes=e.parseImageAttributes,DW.parseSimulcastStreamList=e.parseSimulcastStreamList,DW}var zW=RW(),BW=.9,VW=1e3,HW=20;function UW(e,t,n,r){let i=arguments.length>4&&arguments[4]!==void 0&&arguments[4];if(!e.msid?.includes(t))return;let a=e.rtp.find(e=>e.codec.toUpperCase()===n.toUpperCase())?.payload??0;if(a===0)return 0;let o=Math.round(r*BW),s=i?o:Math.min(o,VW),c=e.fmtp.find(e=>e.payload===a);return c?c.config.includes(`x-google-start-bitrate`)||(c.config+=`;x-google-start-bitrate=${s}`):e.fmtp.push({payload:a,config:`x-google-start-bitrate=${s}`}),a}var WW={NegotiationStarted:`negotiationStarted`,NegotiationComplete:`negotiationComplete`,OfferAnswered:`offerAnswered`,RTPVideoPayloadTypes:`rtpVideoPayloadTypes`},GW=class extends az.EventEmitter{get pc(){return this._pc||=this.createPC(),this._pc}constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),this.log=BR,this.iceLog=BR,this.ddExtID=0,this.latestOfferId=0,this.latestAcknowledgedOfferId=0,this.pendingCandidates=[],this.restartingIce=!1,this.renegotiate=!1,this.trackBitrates=[],this.remoteStereoMids=[],this.remoteNackMids=[],this.negotiate=mU(e=>J(this,void 0,void 0,function*(){this.emit(WW.NegotiationStarted);try{yield this.createAndSendOffer()}catch(t){if(e)e(t);else throw t}}),HW),this.close=()=>{this._pc&&=(this.log.debug(`closing peer connection`),this.pendingInitialOffer=void 0,this._pc.close(),this._pc.onconnectionstatechange=null,this._pc.oniceconnectionstatechange=null,this._pc.onicegatheringstatechange=null,this._pc.ondatachannel=null,this._pc.onnegotiationneeded=null,this._pc.onsignalingstatechange=null,this._pc.onicecandidate=null,this._pc.ondatachannel=null,this._pc.ontrack=null,this._pc.onconnectionstatechange=null,this._pc.oniceconnectionstatechange=null,null)},this.loggerOptions=t,this.log=VR(t.loggerName??zR.PCTransport,()=>this.logContext),this.iceLog=VR(zR.ICE,()=>this.logContext),this.config=e,this._pc=this.createPC(),this.offerLock=new KN}createPC(){let e=new RTCPeerConnection(this.config);return e.onicecandidate=e=>{var t;e.candidate&&(this.iceLog.debug(`local ICE candidate gathered`,{candidate:e.candidate.candidate}),(t=this.onIceCandidate)==null||t.call(this,e.candidate))},e.onicecandidateerror=e=>{var t;this.iceLog.debug(`ICE candidate error`,{event:e}),(t=this.onIceCandidateError)==null||t.call(this,e)},e.oniceconnectionstatechange=()=>{var t;this.iceLog.debug(`ICE connection state: ${e.iceConnectionState}`),(t=this.onIceConnectionStateChange)==null||t.call(this,e.iceConnectionState)},e.onsignalingstatechange=()=>{var t;this.log.debug(`signaling state: ${e.signalingState}`),(t=this.onSignalingStatechange)==null||t.call(this,e.signalingState)},e.onconnectionstatechange=()=>{var t;this.log.debug(`connection state: ${e.connectionState}`),(t=this.onConnectionStateChange)==null||t.call(this,e.connectionState)},e.ondatachannel=e=>{var t;this.log.debug(`data channel opened by peer`,{label:e.channel.label,id:e.channel.id}),(t=this.onDataChannel)==null||t.call(this,e)},e.ontrack=e=>{var t;(t=this.onTrack)==null||t.call(this,e)},e}get logContext(){var e;return Object.assign({},(e=this.loggerOptions).loggerContextCb?.call(e))}get isICEConnected(){return this._pc!==null&&(this.pc.iceConnectionState===`connected`||this.pc.iceConnectionState===`completed`)}addIceCandidate(e){return J(this,void 0,void 0,function*(){if(this.pc.remoteDescription&&!this.restartingIce)return this.pc.addIceCandidate(e);this.iceLog.debug(`queuing remote ICE candidate until remote description applied`,{pendingCount:this.pendingCandidates.length+1}),this.pendingCandidates.push(e)})}setRemoteDescription(e,t){return J(this,void 0,void 0,function*(){if(e.type===`answer`&&this.latestOfferId>0&&t>0&&t!==this.latestOfferId)return this.log.warn(`ignoring answer for old offer`,{offerId:t,latestOfferId:this.latestOfferId}),!1;let n;if(e.type===`offer`){let t=tG(e),n=t.stereoMids,r=t.nackMids;this.remoteStereoMids=n,this.remoteNackMids=r}else if(e.type===`answer`){if(this.pendingInitialOffer&&this._pc){let e=this.pendingInitialOffer;this.pendingInitialOffer=void 0;let t=zW.parse(e.sdp??``);t.media.forEach(e=>{nG(e)}),this.log.debug(`setting pending initial offer before processing answer`),yield this.setMungedSDP(e,zW.write(t))}let t=zW.parse(e.sdp??``);t.media.forEach(e=>{let t=rG(e.mid);e.type===`audio`&&this.trackBitrates.some(n=>{if(!n.transceiver||t!=n.transceiver.mid)return!1;let r=0;if(e.rtp.some(e=>e.codec.toUpperCase()===n.codec.toUpperCase()&&(r=e.payload,!0)),r===0)return!0;let i=!1;for(let t of e.fmtp)if(t.payload===r){t.config=t.config.split(`;`).filter(e=>!e.includes(`maxaveragebitrate`)).join(`;`),n.maxbr>0&&(t.config+=`;maxaveragebitrate=${n.maxbr*1e3}`),i=!0;break}return i||n.maxbr>0&&e.fmtp.push({payload:r,config:`maxaveragebitrate=${n.maxbr*1e3}`}),!0})});let r=this.getPlaceholderMids();r.size>0&&eG(t.media,e=>r.has(rG(e.mid))),n=zW.write(t)}return yield this.setMungedSDP(e,n,!0),this.pendingCandidates.length>0&&this.iceLog.debug(`flushing queued ICE candidates`,{count:this.pendingCandidates.length}),this.pendingCandidates.forEach(e=>{this.pc.addIceCandidate(e)}),this.pendingCandidates=[],this.restartingIce=!1,e.type===`answer`&&(this.latestAcknowledgedOfferId=t,this.emit(WW.OfferAnswered,t)),this.renegotiate?(this.renegotiate=!1,yield this.createAndSendOffer()):e.type===`answer`&&(this.emit(WW.NegotiationComplete),e.sdp&&zW.parse(e.sdp).media.forEach(e=>{e.type===`video`&&this.emit(WW.RTPVideoPayloadTypes,e.rtp)})),!0})}createInitialOffer(){return J(this,void 0,void 0,function*(){let e=yield this.offerLock.lock();try{if(this.pc.signalingState!==`stable`){this.log.warn(`signaling state is not stable, cannot create initial offer`);return}let e=this.latestOfferId+1;this.latestOfferId=e;let t=yield this.pc.createOffer();this.pendingInitialOffer={sdp:t.sdp,type:t.type};let n=zW.parse(t.sdp??``);return n.media.forEach(e=>{nG(e)}),t.sdp=zW.write(n),{offer:t,offerId:e}}finally{e()}})}createAndSendOffer(e){return J(this,void 0,void 0,function*(){let t=yield this.offerLock.lock();try{if(this.onOffer===void 0)return;if(e?.iceRestart&&(this.iceLog.debug(`restarting ICE`),this.restartingIce=!0),this._pc&&(this._pc.signalingState===`have-local-offer`||this.pendingInitialOffer)){let t=this._pc.remoteDescription;if(e?.iceRestart&&t)yield this._pc.setRemoteDescription(t);else if(e?.iceRestart)throw new PB(`ICE restart requested without a remote description, peer connection must be recreated`);else{this.renegotiate=!0,this.log.debug(`requesting renegotiation`);return}}else if(!this._pc||this._pc.signalingState===`closed`){this.log.warn(`could not createOffer with closed peer connection`);return}this.log.debug(`starting to negotiate`);let t=this.latestOfferId+1;this.latestOfferId=t;let n=yield this.pc.createOffer(e);this.log.debug(`original offer`,{sdp:n.sdp});let r=zW.parse(n.sdp??``);r.media.forEach(e=>{nG(e),e.type===`audio`?QW(e,[`all`],[]):e.type===`video`&&this.trackBitrates.some(t=>{if(!t.cid)return!1;let n=UW(e,t.cid,t.codec,t.maxbr,t.isScreenShare);return n!==void 0&&(n>0&&IV(t.codec)&&!qV()&&(this.ddExtID=KW(e,r,this.ddExtID)),!0)})});let i=this.getPlaceholderMids();if(i.size>0&&eG(r.media,e=>i.has(rG(e.mid))),this.latestOfferId>t){this.log.warn(`latestOfferId mismatch`,{latestOfferId:this.latestOfferId,offerId:t});return}yield this.setMungedSDP(n,zW.write(r)),this.onOffer(n,this.latestOfferId)}finally{t()}})}createAndSetAnswer(){return J(this,void 0,void 0,function*(){let e=yield this.pc.createAnswer(),t=zW.parse(e.sdp??``);return t.media.forEach(e=>{nG(e),e.type===`audio`&&QW(e,this.remoteStereoMids,this.remoteNackMids)}),yield this.setMungedSDP(e,zW.write(t)),e})}getPlaceholderMids(){return $W(this._pc?.getTransceivers()??[])}createDataChannel(e,t){return this.pc.createDataChannel(e,t)}addTransceiver(e,t){return this.pc.addTransceiver(e,t)}addTransceiverOfKind(e,t){return this.pc.addTransceiver(e,t)}addTrack(e){if(!this._pc)throw new NB(`PC closed, cannot add track`);return this._pc.addTrack(e)}setTrackCodecBitrate(e){this.trackBitrates.push(e)}setConfiguration(e){if(!this._pc)throw new NB(`PC closed, cannot configure`);return this._pc?.setConfiguration(e)}canRemoveTrack(){return!!this._pc?.removeTrack}removeTrack(e){return this._pc?.removeTrack(e)}getConnectionState(){return this._pc?.connectionState??`closed`}getICEConnectionState(){return this._pc?.iceConnectionState??`closed`}getSignallingState(){return this._pc?.signalingState??`closed`}getTransceivers(){return this._pc?.getTransceivers()??[]}getSenders(){return this._pc?.getSenders()??[]}getLocalDescription(){return this._pc?.localDescription}getRemoteDescription(){return this.pc?.remoteDescription}getStats(){return this._pc?.getStats()}getMaxMessageSize(){return this._pc?.sctp?.maxMessageSize}getConnectedAddress(){return J(this,void 0,void 0,function*(){if(!this._pc)return;let e=``,t=new Map,n=new Map;if((yield this._pc.getStats()).forEach(r=>{switch(r.type){case`transport`:e=r.selectedCandidatePairId;break;case`candidate-pair`:e===``&&r.selected&&(e=r.id),t.set(r.id,r);break;case`remote-candidate`:n.set(r.id,`${r.address}:${r.port}`)}}),e===``)return;let r=t.get(e)?.remoteCandidateId;if(r!==void 0)return n.get(r)})}setMungedSDP(e,t,n){return J(this,void 0,void 0,function*(){let r=e.sdp;if(t){e.sdp=t;try{this.log.debug(`setting munged ${n?`remote`:`local`} description`),n?yield this.pc.setRemoteDescription(e):yield this.pc.setLocalDescription(e);return}catch(n){this.log.warn(`not able to set ${e.type}, falling back to unmodified sdp`,{error:n,mungedSdp:t,originalSdp:r}),e.sdp=r}}try{n?yield this._pc?.setRemoteDescription(e):yield this._pc?.setLocalDescription(e)}catch(i){let a=`unknown error`;i instanceof Error?a=i.message:typeof i==`string`&&(a=i);let o={error:a,sdp:e.sdp};throw t&&t!==r&&(o.mungedSdp=t),!n&&this.pc.remoteDescription&&(o.remoteSdp=this.pc.remoteDescription),this.log.error(`unable to set ${e.type}`,{fields:o}),new PB(a)}})}};function KW(e,t,n){let r=qW(t,n);return r===void 0?n:(e.ext?.some(e=>e.uri===kV)||(e.ext??=[],e.ext.push({value:r,uri:kV})),r)}function qW(e,t){let n=JW(e,kV);return n===void 0?t!==0&&!YW(e,t,kV)?t:XW(e):YW(e,n,kV)?void 0:n}function JW(e,t){for(let n of e.media){let e=n.ext?.find(e=>e.uri===t);if(e)return e.value}}function YW(e,t,n){return e.media.some(e=>e.ext?.some(e=>e.value===t&&e.uri!==n))}function XW(e){let t=0;return e.media.forEach(e=>{var n;(n=e.ext)==null||n.forEach(e=>{e.value>t&&(t=e.value)})}),t+1===15?16:t+1}function ZW(e,t){return e.split(`;`).some(e=>e.trim()===t)}function QW(e,t,n){let r=rG(e.mid),i=0;e.rtp.some(e=>e.codec.toLowerCase()===`opus`&&(i=e.payload,!0)),i>0&&(e.rtcpFb||=[],n.includes(r)&&!e.rtcpFb.some(e=>e.payload===i&&e.type===`nack`)&&e.rtcpFb.push({payload:i,type:`nack`}),(t.includes(r)||t.length===1&&t[0]===`all`)&&e.fmtp.some(e=>e.payload===i&&(ZW(e.config,`stereo=1`)||(e.config+=`;stereo=1`),!0)))}function $W(e){let t=new Set;for(let n of e)n.mid&&!n.sender.track&&t.add(n.mid);return t}function eG(e,t){let n=new Map,r=new Set;for(let i of e){let e=t(i);for(let t of i.fmtp??[])e?n.has(t.payload)||n.set(t.payload,t.config):(n.set(t.payload,t.config),r.add(t.payload))}if(n.size!==0){for(let r of e)if(t(r))for(let e of r.fmtp??[]){let t=n.get(e.payload);t!==void 0&&e.config!==t&&(e.config=t)}}}function tG(e){let t=[],n=[],r=zW.parse(e.sdp??``),i=0;return r.media.forEach(e=>{let r=rG(e.mid);e.type===`audio`&&(e.rtp.some(e=>e.codec.toLowerCase()===`opus`&&(i=e.payload,!0)),e.rtcpFb?.some(e=>e.payload===i&&e.type===`nack`)&&n.push(r),e.fmtp.some(e=>e.payload===i&&(ZW(e.config,`sprop-stereo=1`)&&t.push(r),!0)))}),{stereoMids:t,nackMids:n}}function nG(e){if(e.connection){let t=e.connection.ip.indexOf(`:`)>=0;(e.connection.version===4&&t||e.connection.version===6&&!t)&&(e.connection.ip=`0.0.0.0`,e.connection.version=4)}}function rG(e){return typeof e==`number`?e.toFixed(0):e}var iG=`vp8`,aG={audioPreset:nV.music,dtx:!0,red:!0,forceStereo:!1,simulcast:!0,screenShareEncoding:aV.h1080fps15.encoding,stopMicTrackOnMute:!1,videoCodec:iG,backupCodec:!0,preConnectBuffer:!1},oG={deviceId:{ideal:`default`},autoGainControl:!0,echoCancellation:!0,noiseSuppression:!0,voiceIsolation:!0},sG={deviceId:{ideal:`default`},resolution:rV.h720.resolution},cG={adaptiveStream:!1,dynacast:!1,stopLocalTrackOnUnpublish:!0,reconnectPolicy:new YR,disconnectOnPageLeave:!0,webAudioMix:!1,singlePeerConnection:!0},lG={autoSubscribe:!0,maxRetries:1,peerConnectionTimeout:15e3,websocketTimeout:15e3},uG;(function(e){e[e.NEW=0]=`NEW`,e[e.CONNECTING=1]=`CONNECTING`,e[e.CONNECTED=2]=`CONNECTED`,e[e.FAILED=3]=`FAILED`,e[e.CLOSING=4]=`CLOSING`,e[e.CLOSED=5]=`CLOSED`})(uG||={});var dG=class{get needsPublisher(){return this.isPublisherConnectionRequired}get needsSubscriber(){return this.isSubscriberConnectionRequired}get currentState(){return this.state}get mode(){return this._mode}constructor(e,t,n){this.peerConnectionTimeout=lG.peerConnectionTimeout,this.log=BR,this.iceLog=BR,this.updateState=()=>{var e;let t=this.state,n=this.requiredTransports.map(e=>e.getConnectionState());n.every(e=>e===`connected`)?this.state=uG.CONNECTED:n.some(e=>e===`failed`)?this.state=uG.FAILED:n.some(e=>e===`connecting`)?this.state=uG.CONNECTING:n.every(e=>e===`closed`)?this.state=uG.CLOSED:n.some(e=>e===`closed`)?this.state=uG.CLOSING:n.every(e=>e===`new`)&&(this.state=uG.NEW),t!==this.state&&(this.log.debug(`pc state change: from ${uG[t]} to ${uG[this.state]}`),(e=this.onStateChange)==null||e.call(this,this.state,this.publisher.getConnectionState(),this.subscriber?.getConnectionState()))},this.loggerOptions=t,this.log=VR(t.loggerName??zR.PCManager,()=>this.logContext),this.iceLog=VR(zR.ICE,()=>this.logContext),this.isPublisherConnectionRequired=e!==`subscriber-primary`,this.isSubscriberConnectionRequired=e===`subscriber-primary`,this.publisher=new GW(n,t),this._mode=e,e!==`publisher-only`&&(this.subscriber=new GW(n,t),this.subscriber.onConnectionStateChange=this.updateState,this.subscriber.onIceConnectionStateChange=this.updateState,this.subscriber.onSignalingStatechange=this.updateState,this.subscriber.onIceCandidate=e=>{var t;(t=this.onIceCandidate)==null||t.call(this,e,yL.SUBSCRIBER)},this.subscriber.onDataChannel=e=>{var t;(t=this.onDataChannel)==null||t.call(this,e)},this.subscriber.onTrack=e=>{var t;(t=this.onTrack)==null||t.call(this,e)}),this.publisher.onConnectionStateChange=this.updateState,this.publisher.onIceConnectionStateChange=this.updateState,this.publisher.onSignalingStatechange=this.updateState,this.publisher.onIceCandidate=e=>{var t;(t=this.onIceCandidate)==null||t.call(this,e,yL.PUBLISHER)},this.publisher.onTrack=e=>{var t;(t=this.onTrack)==null||t.call(this,e)},this.publisher.onOffer=(e,t)=>{var n;(n=this.onPublisherOffer)==null||n.call(this,e,t)},this.state=uG.NEW,this.connectionLock=new KN,this.remoteOfferLock=new KN}get logContext(){var e;return Object.assign({},(e=this.loggerOptions).loggerContextCb?.call(e))}requirePublisher(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;this.isPublisherConnectionRequired=e,this.updateState()}createAndSendPublisherOffer(e){return this.publisher.createAndSendOffer(e)}setPublisherAnswer(e,t){return this.publisher.setRemoteDescription(e,t)}removeTrack(e){return this.publisher.removeTrack(e)}close(){return J(this,void 0,void 0,function*(){if(this.publisher&&this.publisher.getSignallingState()!==`closed`){let e=this.publisher;for(let t of e.getSenders())try{e.canRemoveTrack()&&e.removeTrack(t)}catch(e){this.log.warn(`could not removeTrack`,{error:e})}}yield Promise.all([this.publisher.close(),this.subscriber?.close()]),this.updateState()})}triggerIceRestart(){return J(this,void 0,void 0,function*(){this.iceLog.warn(`triggering ICE restart`),this.needsPublisher&&(yield this.createAndSendPublisherOffer({iceRestart:!0}))})}addIceCandidate(e,t){return J(this,void 0,void 0,function*(){this.iceLog.debug(`adding remote ICE candidate`,{target:t,candidate:e}),t===yL.PUBLISHER?yield this.publisher.addIceCandidate(e):yield this.subscriber?.addIceCandidate(e)})}createSubscriberAnswerFromOffer(e,t){return J(this,void 0,void 0,function*(){this.log.debug(`received server offer`,{RTCSdpType:e.type,sdp:e.sdp,signalingState:this.subscriber?.getSignallingState().toString()});let n=yield this.remoteOfferLock.lock();try{return(yield this.subscriber?.setRemoteDescription(e,t))?yield this.subscriber?.createAndSetAnswer():void 0}finally{n()}})}updateConfiguration(e,t){var n;this.log.debug(`updating rtc configuration`,{iceRestart:t}),this.publisher.setConfiguration(e),(n=this.subscriber)==null||n.setConfiguration(e),t&&this.triggerIceRestart()}ensurePCTransportConnection(e,t){return J(this,void 0,void 0,function*(){let n=yield this.connectionLock.lock();try{this.isPublisherConnectionRequired&&this.publisher.getConnectionState()!==`connected`&&this.publisher.getConnectionState()!==`connecting`&&(this.log.debug(`negotiation required, start negotiating`),this.publisher.negotiate()),yield Promise.all(this.requiredTransports?.map(n=>this.ensureTransportConnected(n,e,t)))}finally{n()}})}negotiate(e){return J(this,void 0,void 0,function*(){return new vB((t,n)=>{let r=this.publisher.latestOfferId;if(this.publisher.latestAcknowledgedOfferId>r){this.log.debug(`negotiation already handled in more recent acknowledged offer`,this.logContext),t();return}let i=!1,a=()=>{i||(i=!0,clearTimeout(c),this.publisher.off(WW.OfferAnswered,o),e.signal.removeEventListener(`abort`,s))},o=e=>{e>r&&(a(),t())},s=()=>{a(),n(new PB(`negotiation aborted`))},c=setTimeout(()=>{a(),n(new PB(`negotiation timed out`))},this.peerConnectionTimeout);e.signal.addEventListener(`abort`,s),this.publisher.on(WW.OfferAnswered,o),this.publisher.negotiate(e=>{a(),e instanceof Error?n(e):n(Error(String(e)))})})})}addPublisherTransceiver(e,t){return this.publisher.addTransceiver(e,t)}addPublisherTransceiverOfKind(e,t){return this.publisher.addTransceiverOfKind(e,t)}getMidForReceiver(e){return(this.subscriber?this.subscriber.getTransceivers():this.publisher.getTransceivers()).find(t=>t.receiver===e)?.mid}getMaxPublisherMessageSize(){return this.publisher.getMaxMessageSize()}addPublisherTrack(e){return this.publisher.addTrack(e)}createPublisherDataChannel(e,t){return this.publisher.createDataChannel(e,t)}getConnectedAddress(e){return e===yL.PUBLISHER||e===yL.SUBSCRIBER?this.publisher.getConnectedAddress():this.requiredTransports[0].getConnectedAddress()}get requiredTransports(){let e=[];return this.isPublisherConnectionRequired&&e.push(this.publisher),this.isSubscriberConnectionRequired&&this.subscriber&&e.push(this.subscriber),e}ensureTransportConnected(e,t){return J(this,arguments,void 0,function(e,t){var n=this;let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.peerConnectionTimeout;return function*(){if(e.getConnectionState()!==`connected`)return new Promise((e,i)=>J(n,void 0,void 0,function*(){let n=()=>{this.log.warn(`abort transport connection`),HB.clearTimeout(a),i(kB.cancelled(`room connection has been cancelled`))};t?.signal.aborted&&n(),t?.signal.addEventListener(`abort`,n);let a=HB.setTimeout(()=>{t?.signal.removeEventListener(`abort`,n),i(kB.internal(`could not establish pc connection`))},r);for(;this.state!==uG.CONNECTED;)if(yield jV(50),t?.signal.aborted){i(kB.cancelled(`room connection has been cancelled`));return}HB.clearTimeout(a),t?.signal.removeEventListener(`abort`,n),e()}))}()})}},fG=class{constructor(e){this.bufferStatusLow=!0,this.headroomLock=new KN,this.waiterAbortController=new AbortController,this.kind=e.kind,this.lowWaterMark=e.lowWaterMark,this.highWaterMark=e.highWaterMark,this.isEngineClosed=e.isEngineClosed,this.onBufferStatusChanged=e.onBufferStatusChanged}get channelHandle(){return this.handle}attach(e){this.handle&&this.handle!==e&&this.invalidateWaiters(`data channel replaced`),this.handle=e}detach(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:`data channel torn down`;this.handle&&this.invalidateWaiters(e),this.handle=void 0}getChannel(){return this.handle}isBelowHighWaterMark(e){return e.bufferedAmount<=this.highWaterMark}isBelowLowWaterMark(e){return e.bufferedAmount<=e.bufferedAmountLowThreshold}lockHeadroom(){return this.headroomLock.lock()}waitForHeadroomWithLock(){return J(this,void 0,void 0,function*(){let e=yield this.lockHeadroom();try{yield this.waitForHeadroomWithoutLock()}finally{e()}})}waitForHeadroomWithoutLock(){return J(this,void 0,void 0,function*(){if(this.isEngineClosed())throw new NB(`engine closed`);let e=this.getChannel();if(!e)throw new NB(`DataChannel not found, kind: ${this.kind}`);if(this.isBelowHighWaterMark(e))return;let t=this.waiterAbortController.signal;yield new vB((n,r)=>{let i=()=>{s(),n()},a=()=>{s(),r(new NB(`DataChannel ${this.kind} closed while draining the buffer`))},o=()=>{s(),r(new NB(`DataChannel ${this.kind} was replaced or torn down while waiting for headroom`))},s=()=>{e.removeEventListener(`bufferedamountlow`,i),e.removeEventListener(`close`,a),t.removeEventListener(`abort`,o)};if(t.aborted){o();return}e.addEventListener(`bufferedamountlow`,i),e.addEventListener(`close`,a),t.addEventListener(`abort`,o)})})}invalidateWaiters(e){this.waiterAbortController.abort(e),this.waiterAbortController=new AbortController}refreshBufferStatus(){var e;let t=this.getChannel();if(!t)return;let n=this.isBelowLowWaterMark(t);n!==this.bufferStatusLow&&(this.bufferStatusLow=n,(e=this.onBufferStatusChanged)==null||e.call(this,n))}},pG=class extends fG{constructor(e){super(e),this.statCurrentBytes=0,this.statByterate=0,this.dropCount=0,this.bufferFullBehavior=e.bufferFullBehavior,this.shouldSkipSends=e.shouldSkipSends}send(e){return J(this,void 0,void 0,function*(){let t=this.getChannel();if(t){switch(this.bufferFullBehavior){case`wait`:this.isBelowHighWaterMark(t)||(yield this.waitForHeadroomWithLock());break;case`drop`:if(!this.isBelowLowWaterMark(t)){this.dropCount+=1,this.dropCount%100==0&&BR.warn(`dropping lossy data channel messages, total dropped: ${this.dropCount}`);return}}if(this.statCurrentBytes+=e.byteLength,!this.shouldSkipSends())try{t.send(e),this.refreshBufferStatus()}catch(e){if(e instanceof TypeError)BR.error(e);else throw e}}})}startThresholdTuning(){this.stopThresholdTuning(),this.statInterval=HB.setInterval(()=>{this.statByterate=this.statCurrentBytes,this.statCurrentBytes=0;let e=this.getChannel();if(e){let t=this.statByterate/10;e.bufferedAmountLowThreshold=Math.min(Math.max(t,this.lowWaterMark),this.highWaterMark)}},1e3)}stopThresholdTuning(){this.statByterate=0,this.statCurrentBytes=0,this.statInterval&&=(HB.clearInterval(this.statInterval),void 0),this.dropCount=0}},mG=class{constructor(){this.buffer=[],this._totalSize=0,this._sentSize=0}push(e){this.buffer.push(e),this._totalSize+=e.data.byteLength,e.sent&&(this._sentSize+=e.data.byteLength)}pop(){let e=this.buffer.shift();return e&&(this._totalSize-=e.data.byteLength,e.sent&&(this._sentSize-=e.data.byteLength)),e}getAll(){return this.buffer.slice()}getUnsent(){return this.buffer.filter(e=>!e.sent)}markSent(e){e.sent||(e.sent=!0,this._sentSize+=e.data.byteLength)}markAllUnsent(){for(let e of this.buffer)e.sent=!1;this._sentSize=0}popToSequence(e){for(;this.buffer.length>0&&this.buffer[0].sequence<=e;)this.pop()}alignBufferedAmount(e){for(;this.buffer.length>0;){let t=this.buffer[0];if(!t.sent||this._sentSize-t.data.byteLength<=e)break;this.pop()}}get length(){return this.buffer.length}},hG=class extends fG{constructor(e){super(e),this.messageBuffer=new mG,this.sequence=1,this.isDeferringSends=e.isDeferringSends}nextSequence(){let e=this.sequence;return this.sequence+=1,e}send(e,t){return J(this,void 0,void 0,function*(){if(this.isDeferringSends()){this.messageBuffer.push({data:e,sequence:t,sent:!1});return}let n=this.getChannel();if(n){try{yield this.waitForHeadroomWithLock()}catch(n){if(this.isEngineClosed())throw n;this.messageBuffer.push({data:e,sequence:t,sent:!1});return}if(this.isDeferringSends()){this.messageBuffer.push({data:e,sequence:t,sent:!1});return}this.messageBuffer.push({data:e,sequence:t,sent:!0}),n.send(e),this.refreshBufferStatus()}})}replay(e){return J(this,void 0,void 0,function*(){let t=this.getChannel();if(!t)return;this.messageBuffer.popToSequence(e);let n=yield this.lockHeadroom();try{this.messageBuffer.markAllUnsent();for(let e=this.messageBuffer.getUnsent();e.length>0;e=this.messageBuffer.getUnsent())for(let n of e)yield this.waitForHeadroomWithoutLock(),t.send(n.data),this.messageBuffer.markSent(n)}finally{n()}this.refreshBufferStatus()})}refreshBufferStatus(){let e=this.channelHandle;e&&this.messageBuffer.alignBufferedAmount(e.bufferedAmount),super.refreshBufferStatus()}reset(){this.messageBuffer=new mG,this.sequence=1}},gG;(function(e){e[e.RELIABLE=0]=`RELIABLE`,e[e.LOSSY=1]=`LOSSY`,e[e.DATA_TRACK_LOSSY=2]=`DATA_TRACK_LOSSY`})(gG||={});var _G=65536,vG=1048576,yG=8192,bG=262144;function xG(e){return e===gG.RELIABLE?_G:yG}function SG(e){return e===gG.RELIABLE?vG:bG}var CG=`_lossy`,wG=`_reliable`,TG=`_data_track`,EG=class{constructor(e){this.opts=e;let t=t=>({kind:t,lowWaterMark:xG(t),highWaterMark:SG(t),isEngineClosed:e.isEngineClosed,onBufferStatusChanged:n=>e.onBufferStatusChanged(t,n)});this.reliable=new hG(Object.assign(Object.assign({},t(gG.RELIABLE)),{isDeferringSends:e.isReconnecting})),this.lossy=new pG(Object.assign(Object.assign({},t(gG.LOSSY)),{bufferFullBehavior:`drop`,shouldSkipSends:e.isReconnecting})),this.dataTrack=new pG(Object.assign(Object.assign({},t(gG.DATA_TRACK_LOSSY)),{bufferFullBehavior:`wait`,shouldSkipSends:e.isReconnecting}))}channelFor(e){switch(e){case gG.RELIABLE:return this.reliable;case gG.LOSSY:return this.lossy;case gG.DATA_TRACK_LOSSY:return this.dataTrack}}getHandle(e){if(!(arguments.length>1&&arguments[1]!==void 0&&arguments[1]))return this.channelFor(e).channelHandle;switch(e){case gG.RELIABLE:return this.reliableSub;case gG.LOSSY:return this.lossySub;case gG.DATA_TRACK_LOSSY:return this.dataTrackSub}}get hasPublisherChannels(){return!!(this.reliable.channelHandle||this.lossy.channelHandle||this.dataTrack.channelHandle)}createPublisherChannels(e){for(let e of[this.lossy,this.reliable,this.dataTrack]){let t=e.channelHandle;t&&(t.onmessage=null,t.onerror=null,t.onclose=null)}let t=(e,t,n)=>{t.onmessage=n,t.onerror=this.opts.onDataError,t.onclose=()=>this.opts.onChannelClose(e.kind),t.bufferedAmountLowThreshold=e.lowWaterMark,t.onbufferedamountlow=()=>e.refreshBufferStatus(),e.attach(t)};t(this.lossy,e.createPublisherDataChannel(CG,{ordered:!1,maxRetransmits:0}),this.opts.onDataMessage),t(this.reliable,e.createPublisherDataChannel(wG,{ordered:!0}),this.opts.onDataMessage),t(this.dataTrack,e.createPublisherDataChannel(TG,{ordered:!1,maxRetransmits:0}),this.opts.onDataTrackMessage),this.lossy.startThresholdTuning()}adoptSubscriberChannel(e){let t;if(e.label===wG)this.reliableSub=e,t=this.opts.onDataMessage;else if(e.label===CG)this.lossySub=e,t=this.opts.onDataMessage;else if(e.label===TG)this.dataTrackSub=e,t=this.opts.onDataTrackMessage;else return!1;return e.onmessage=t,!0}teardown(){let e=e=>{e&&(e.onbufferedamountlow=null,e.onclose=null,e.onclosing=null,e.onerror=null,e.onmessage=null,e.onopen=null,e.close())};for(let t of[this.lossy,this.reliable,this.dataTrack]){let n=t.channelHandle;t.detach(`peer connections cleaned up`),e(n)}e(this.lossySub),e(this.reliableSub),e(this.dataTrackSub),this.lossySub=void 0,this.reliableSub=void 0,this.dataTrackSub=void 0,this.reliable.reset()}},DG=typeof MediaRecorder<`u`,OG=DG?MediaRecorder:class{constructor(){throw Error(`MediaRecorder is not available in this environment`)}},kG=class extends OG{constructor(e,t){if(!DG)throw Error(`MediaRecorder is not available in this environment`);super(new MediaStream([e.mediaStreamTrack]),t);let n,r,i=()=>r===void 0,a=()=>{this.removeEventListener(`dataavailable`,n),this.removeEventListener(`stop`,a),this.removeEventListener(`error`,o),r?.close(),r=void 0},o=e=>{r?.error(e),this.removeEventListener(`dataavailable`,n),this.removeEventListener(`stop`,a),this.removeEventListener(`error`,o),r=void 0};this.byteStream=new ReadableStream({start:e=>{r=e,n=t=>J(this,void 0,void 0,function*(){let n;if(t.data.arrayBuffer){let e=yield t.data.arrayBuffer();n=new Uint8Array(e)}else if(t.data.byteArray)n=t.data.byteArray;else throw Error(`no data available!`);i()||e.enqueue(n)}),this.addEventListener(`dataavailable`,n)},cancel:()=>{a()}}),this.addEventListener(`stop`,a),this.addEventListener(`error`,o)}};function AG(){return DG}var jG=1e3,MG=1e4,NG=class extends ${get sender(){return this._sender}set sender(e){this._sender=e}get constraints(){return this._constraints}get hasPreConnectBuffer(){return!!this.localTrackRecorder}constructor(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0&&arguments[3],i=arguments.length>4?arguments[4]:void 0;super(e,t,i),this.manuallyStopped=!1,this.pendingDeviceChange=!1,this._isUpstreamPaused=!1,this.handleTrackMuteEvent=()=>this.debouncedTrackMuteHandler().catch(()=>this.log.debug(`track mute bounce got cancelled by an unmute event`,this.logContext)),this.debouncedTrackMuteHandler=mU(()=>J(this,void 0,void 0,function*(){yield this.pauseUpstream()}),5e3),this.handleTrackUnmuteEvent=()=>J(this,void 0,void 0,function*(){this.debouncedTrackMuteHandler.cancel(`unmute`),yield this.resumeUpstream()}),this.handleEnded=()=>{this.isInBackground&&(this.reacquireTrack=!0),this._mediaStreamTrack.removeEventListener(`mute`,this.handleTrackMuteEvent),this._mediaStreamTrack.removeEventListener(`unmute`,this.handleTrackUnmuteEvent),this.emit(Q.Ended,this)},this.reacquireTrack=!1,this.providedByUser=r,this.muteLock=new KN,this.pauseUpstreamLock=new KN,this.trackChangeLock=new KN,this.trackChangeLock.lock().then(t=>J(this,void 0,void 0,function*(){try{yield this.setMediaStreamTrack(e,!0)}finally{t()}})),this._constraints=e.getConstraints(),n&&(this._constraints=n)}get id(){return this._mediaStreamTrack.id}get dimensions(){if(this.kind!==$.Kind.Video)return;let e=this._mediaStreamTrack.getSettings(),t=e.width,n=e.height;if(t&&n)return{width:t,height:n}}get isUpstreamPaused(){return this._isUpstreamPaused}get isUserProvided(){return this.providedByUser}get mediaStreamTrack(){return this.processor?.processedTrack??this._mediaStreamTrack}get isLocal(){return!0}getSourceTrackSettings(){return this._mediaStreamTrack.getSettings()}setMediaStreamTrack(e,t,n){return J(this,void 0,void 0,function*(){if(e===this._mediaStreamTrack&&!t)return;this._mediaStreamTrack&&(this.attachedElements.forEach(e=>{DV(this._mediaStreamTrack,e)}),this.debouncedTrackMuteHandler.cancel(`new-track`),this._mediaStreamTrack.removeEventListener(`ended`,this.handleEnded),this._mediaStreamTrack.removeEventListener(`mute`,this.handleTrackMuteEvent),this._mediaStreamTrack.removeEventListener(`unmute`,this.handleTrackUnmuteEvent)),this.mediaStream=new MediaStream([e]),e&&(e.addEventListener(`ended`,this.handleEnded),e.addEventListener(`mute`,this.handleTrackMuteEvent),e.addEventListener(`unmute`,this.handleTrackUnmuteEvent),this._constraints=e.getConstraints());let r;if(this.processor&&e){if(this.log.debug(`restarting processor`,this.logContext),this.kind===`unknown`)throw TypeError(`cannot set processor on track of unknown kind`);this.processorElement&&(EV(e,this.processorElement),this.processorElement.muted=!0),yield this.processor.restart({track:e,kind:this.kind,element:this.processorElement,localTrack:this}),r=this.processor.processedTrack}this.sender&&this.sender.transport?.state!==`closed`&&(yield this.sender.replaceTrack(r??e)),!this.providedByUser&&this._mediaStreamTrack!==e&&this._mediaStreamTrack.stop(),this._mediaStreamTrack=e,e&&(this._mediaStreamTrack.enabled=n?!0:!this.isMuted,yield this.resumeUpstream(),this.attachedElements.forEach(t=>{EV(r??e,t)}))})}waitForDimensions(){return J(this,arguments,void 0,function(){var e=this;let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:jG;return function*(){if(e.kind===$.Kind.Audio)throw Error(`cannot get dimensions for audio tracks`);xB()?.os===`iOS`&&(yield jV(10));let n=Date.now();for(;Date.now()-n<t;){let t=e.dimensions;if(t)return t;yield jV(50)}throw new jB(`unable to get track dimensions after timeout`)}()})}setDeviceId(e){return J(this,void 0,void 0,function*(){return this._constraints.deviceId===e&&this._mediaStreamTrack.getSettings().deviceId===yH(e)||(this._constraints.deviceId=e,this.isMuted?(this.pendingDeviceChange=!0,!0):(yield this.restartTrack(),yH(e)===this._mediaStreamTrack.getSettings().deviceId))})}getDeviceId(){return J(this,arguments,void 0,function(){var e=this;let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return function*(){if(e.source===$.Source.ScreenShare)return;let n=e._mediaStreamTrack.getSettings(),r=n.deviceId,i=n.groupId,a=e.kind===$.Kind.Audio?`audioinput`:`videoinput`;return t?jU.getInstance().normalizeDeviceId(a,r,i):r}()})}mute(){return J(this,void 0,void 0,function*(){return this.setTrackMuted(!0),this})}unmute(){return J(this,void 0,void 0,function*(){return this.setTrackMuted(!1),this})}replaceTrack(e,t){return J(this,void 0,void 0,function*(){let n=yield this.trackChangeLock.lock();try{if(!this.sender)throw new jB(`unable to replace an unpublished track`);let n,r;typeof t==`boolean`?n=t:t!==void 0&&(n=t.userProvidedTrack,r=t.stopProcessor),this.providedByUser=n??!0,this.log.debug(`replace MediaStreamTrack`,this.logContext),yield this.setMediaStreamTrack(e),r&&this.processor&&(yield this.internalStopProcessor())}finally{n()}return yield this.onSenderTrackSwapped(),this})}onSenderTrackSwapped(){return J(this,void 0,void 0,function*(){})}restart(e,t){return J(this,void 0,void 0,function*(){this.manuallyStopped=!1;let n=yield this.trackChangeLock.lock();try{e||=this._constraints;let n=e,r=n.deviceId,i=n.facingMode,a=XR(e,[`deviceId`,`facingMode`]);this.log.debug(`restarting track with constraints`,Object.assign(Object.assign({},this.logContext),{constraints:e}));let o={audio:!1,video:!1};this.kind===$.Kind.Video?o.video=r||i?{deviceId:r,facingMode:i}:!0:o.audio=!r||Object.assign({deviceId:r},a),this.attachedElements.forEach(e=>{DV(this.mediaStreamTrack,e)}),this._mediaStreamTrack.removeEventListener(`ended`,this.handleEnded),this._mediaStreamTrack.stop();let s=(yield navigator.mediaDevices.getUserMedia(o)).getTracks()[0];return this.kind===$.Kind.Video&&(yield s.applyConstraints(a)),s.addEventListener(`ended`,this.handleEnded),this.log.debug(`re-acquired MediaStreamTrack`,this.logContext),yield this.setMediaStreamTrack(s,!1,t),this._constraints=e,this.pendingDeviceChange=!1,this.emit(Q.Restarted,this),this.manuallyStopped&&(this.log.warn(`track was stopped during a restart, stopping restarted track`,this.logContext),this.stop()),this}finally{n()}})}setTrackMuted(e){this.log.debug(`setting ${this.kind} track ${e?`muted`:`unmuted`}`,this.logContext),(this.isMuted!==e||this._mediaStreamTrack.enabled===e)&&(this.isMuted=e,this._mediaStreamTrack.enabled=!e,this.emit(e?Q.Muted:Q.Unmuted,this))}get needsReAcquisition(){return this._mediaStreamTrack.readyState!==`live`||this._mediaStreamTrack.muted||!this._mediaStreamTrack.enabled||this.reacquireTrack}handleAppVisibilityChanged(){let e=Object.create(null,{handleAppVisibilityChanged:{get:()=>super.handleAppVisibilityChanged}});return J(this,void 0,void 0,function*(){yield e.handleAppVisibilityChanged.call(this),ZV()&&(this.log.debug(`visibility changed, is in Background: ${this.isInBackground}`,this.logContext),!this.isInBackground&&this.needsReAcquisition&&!this.isUserProvided&&!this.isMuted&&(this.log.debug(`track needs to be reacquired, restarting ${this.source}`,this.logContext),yield this.restart(),this.reacquireTrack=!1))})}stop(){var e;this.manuallyStopped=!0,super.stop(),this._mediaStreamTrack.removeEventListener(`ended`,this.handleEnded),this._mediaStreamTrack.removeEventListener(`mute`,this.handleTrackMuteEvent),this._mediaStreamTrack.removeEventListener(`unmute`,this.handleTrackUnmuteEvent),(e=this.processor)==null||e.destroy(),this.processor=void 0}pauseUpstream(){return J(this,void 0,void 0,function*(){let e=yield this.pauseUpstreamLock.lock();try{if(this._isUpstreamPaused===!0)return;if(!this.sender){this.log.warn(`unable to pause upstream for an unpublished track`,this.logContext);return}this._isUpstreamPaused=!0,this.emit(Q.UpstreamPaused,this);let e=xB();if(e?.name===`Safari`&&oH(e.version,`12.0`)<0)throw new AB(`pauseUpstream is not supported on Safari < 12.`);this.sender.transport?.state!==`closed`&&(yield this.sender.replaceTrack(null))}finally{e()}})}resumeUpstream(){return J(this,void 0,void 0,function*(){let e=yield this.pauseUpstreamLock.lock();try{if(this._isUpstreamPaused===!1)return;if(!this.sender){this.log.warn(`unable to resume upstream for an unpublished track`,this.logContext);return}this._isUpstreamPaused=!1,this.emit(Q.UpstreamResumed,this),this.sender.transport?.state!==`closed`&&(yield this.sender.replaceTrack(this.mediaStreamTrack))}finally{e()}})}getRTCStatsReport(){return J(this,void 0,void 0,function*(){if(this.sender?.getStats)return yield this.sender.getStats()})}setProcessor(e){return J(this,arguments,void 0,function(e){var t=this;let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return function*(){let r=yield t.trackChangeLock.lock();try{t.log.debug(`setting up processor`,t.logContext);let r=document.createElement(t.kind),i={kind:t.kind,track:t._mediaStreamTrack,element:r,audioContext:t.audioContext,localTrack:t};if(yield e.init(i),t.log.debug(`processor initialized`,t.logContext),t.processor&&(yield t.internalStopProcessor()),t.kind===`unknown`)throw TypeError(`cannot set processor on track of unknown kind`);if(EV(t._mediaStreamTrack,r),r.muted=!0,r.play().catch(e=>{e instanceof DOMException&&e.name===`AbortError`?(t.log.warn(`failed to play processor element, retrying`,Object.assign(Object.assign({},t.logContext),{error:e})),setTimeout(()=>{r.play().catch(e=>{t.log.error(`failed to play processor element`,Object.assign(Object.assign({},t.logContext),{err:e}))})},100)):t.log.error(`failed to play processor element`,Object.assign(Object.assign({},t.logContext),{error:e}))}),t.processor=e,t.processorElement=r,t.processor.processedTrack){for(let e of t.attachedElements)e!==t.processorElement&&n&&(DV(t._mediaStreamTrack,e),EV(t.processor.processedTrack,e));yield t.sender?.replaceTrack(t.processor.processedTrack)}t.emit(Q.TrackProcessorUpdate,t.processor)}finally{r()}yield t.onSenderTrackSwapped()}()})}getProcessor(){return this.processor}stopProcessor(){return J(this,arguments,void 0,function(){var e=this;let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return function*(){let n=yield e.trackChangeLock.lock();try{yield e.internalStopProcessor(t)}finally{n()}yield e.onSenderTrackSwapped()}()})}internalStopProcessor(){return J(this,arguments,void 0,function(){var e=this;let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return function*(){var n,r;e.processor&&(e.log.debug(`stopping processor`,e.logContext),(n=e.processor.processedTrack)==null||n.stop(),yield e.processor.destroy(),e.processor=void 0,t||((r=e.processorElement)==null||r.remove(),e.processorElement=void 0),yield e._mediaStreamTrack.applyConstraints(e._constraints),yield e.setMediaStreamTrack(e._mediaStreamTrack,!0),e.emit(Q.TrackProcessorUpdate))}()})}startPreConnectBuffer(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:100;if(!AG()){this.log.warn(`MediaRecorder is not available, cannot start preconnect buffer`,this.logContext);return}if(this.localTrackRecorder){this.log.warn(`preconnect buffer already started`);return}{let e=`audio/webm;codecs=opus`;MediaRecorder.isTypeSupported(e)||(e=`video/mp4`),this.localTrackRecorder=new kG(this,{mimeType:e})}this.localTrackRecorder.start(e),this.autoStopPreConnectBuffer=setTimeout(()=>{this.log.warn(`preconnect buffer timed out, stopping recording automatically`,this.logContext),this.stopPreConnectBuffer()},MG)}stopPreConnectBuffer(){clearTimeout(this.autoStopPreConnectBuffer),this.localTrackRecorder&&=(this.localTrackRecorder.stop(),void 0)}getPreConnectBuffer(){return this.localTrackRecorder?.byteStream}getPreConnectBufferMimeType(){return this.localTrackRecorder?.mimeType}},PG=class extends NG{get enhancedNoiseCancellation(){return this.isKrispNoiseFilterEnabled}constructor(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,r=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0;super(e,$.Kind.Audio,t,n,i),this.stopOnMute=!1,this.isKrispNoiseFilterEnabled=!1,this.monitorSender=()=>J(this,void 0,void 0,function*(){if(!this.sender){this._currentBitrate=0;return}let e;try{e=yield this.getSenderStats()}catch(e){this.log.error(`could not get audio sender stats`,Object.assign(Object.assign({},this.logContext),{error:e}));return}e&&this.prevStats&&(this._currentBitrate=gU(e,this.prevStats)),this.prevStats=e}),this.handleKrispNoiseFilterEnable=()=>{this.isKrispNoiseFilterEnabled=!0,this.log.debug(`Krisp noise filter enabled`,this.logContext),this.emit(Q.AudioTrackFeatureUpdate,this,yI.TF_ENHANCED_NOISE_CANCELLATION,!0)},this.handleKrispNoiseFilterDisable=()=>{this.isKrispNoiseFilterEnabled=!1,this.log.debug(`Krisp noise filter disabled`,this.logContext),this.emit(Q.AudioTrackFeatureUpdate,this,yI.TF_ENHANCED_NOISE_CANCELLATION,!1)},this.audioContext=r,this.checkForSilence()}mute(){let e=Object.create(null,{mute:{get:()=>super.mute}});return J(this,void 0,void 0,function*(){let t=yield this.muteLock.lock();try{return this.isMuted?(this.log.debug(`Track already muted`,this.logContext),this):(this.source===$.Source.Microphone&&this.stopOnMute&&!this.isUserProvided&&(this.log.debug(`stopping mic track`,this.logContext),this._mediaStreamTrack.stop()),yield e.mute.call(this),this)}finally{t()}})}unmute(){let e=Object.create(null,{unmute:{get:()=>super.unmute}});return J(this,void 0,void 0,function*(){let t=yield this.muteLock.lock();try{return this.isMuted?(this.source===$.Source.Microphone&&(this.stopOnMute||this._mediaStreamTrack.readyState===`ended`||this.pendingDeviceChange)&&!this.isUserProvided&&(this.log.debug(`reacquiring mic track`,this.logContext),yield this.restart(void 0,!0)),yield e.unmute.call(this),this):(this.log.debug(`Track already unmuted`,this.logContext),this)}finally{t()}})}restartTrack(e){return J(this,void 0,void 0,function*(){let t;if(e){let n=cV({audio:e});typeof n.audio!=`boolean`&&(t=n.audio)}yield this.restart(t)})}applyConstraints(e){return J(this,void 0,void 0,function*(){let t=yield this.trackChangeLock.lock();try{let t=yield this._mediaStreamTrack.applyConstraints(e);return this._constraints=Object.assign(Object.assign({},this._constraints),e),t}finally{t()}})}restart(e,t){let n=Object.create(null,{restart:{get:()=>super.restart}});return J(this,void 0,void 0,function*(){let r=yield n.restart.call(this,e,t);return this.checkForSilence(),r})}startMonitor(){$V()&&(this.monitorInterval||=setInterval(()=>{this.monitorSender()},hU))}setProcessor(e){return J(this,void 0,void 0,function*(){let t=yield this.trackChangeLock.lock();try{if(!eH()&&!this.audioContext)throw Error(`Audio context needs to be set on LocalAudioTrack in order to enable processors`);this.processor&&(yield this.internalStopProcessor());let t={kind:this.kind,track:this._mediaStreamTrack,audioContext:this.audioContext,localTrack:this};this.log.debug(`setting up audio processor ${e.name}`,this.logContext),yield e.init(t),this.processor=e,this.processor.processedTrack&&(yield this.sender?.replaceTrack(this.processor.processedTrack),this.processor.processedTrack.addEventListener(`enable-lk-krisp-noise-filter`,this.handleKrispNoiseFilterEnable),this.processor.processedTrack.addEventListener(`disable-lk-krisp-noise-filter`,this.handleKrispNoiseFilterDisable)),this.emit(Q.TrackProcessorUpdate,this.processor)}finally{t()}})}setAudioContext(e){this.audioContext=e}getSenderStats(){return J(this,void 0,void 0,function*(){if(!this.sender?.getStats)return;let e=yield this.sender.getStats(),t;return e.forEach(n=>{if(n.type===`outbound-rtp`){t={type:`audio`,streamId:n.id,packetsSent:n.packetsSent,bytesSent:n.bytesSent,timestamp:n.timestamp};let r=e.get(n.remoteId);r&&(t.packetsLost=r.packetsLost,t.jitter=r.jitter,t.roundTripTime=r.roundTripTime)}}),t})}checkForSilence(){return J(this,void 0,void 0,function*(){let e=yield lV(this);return e&&(this.isMuted||this.log.debug(`silence detected on local audio track`,this.logContext),this.emit(Q.AudioSilenceDetected)),e})}};function FG(e,t,n){switch(e.kind){case`audio`:return new PG(e,t,!1,void 0,n);case`video`:return new eK(e,t,!1,n);default:throw new jB(`unsupported track type: ${e.kind}`)}}var IG=Object.values(rV),LG=Object.values(iV),RG=Object.values(aV),zG=[rV.h180,rV.h360],BG=[iV.h180,iV.h360],VG=e=>[{scaleResolutionDownBy:2,fps:e.encoding.maxFramerate}].map(t=>new XB(Math.floor(e.width/t.scaleResolutionDownBy),Math.floor(e.height/t.scaleResolutionDownBy),Math.max(15e4,Math.floor(e.encoding.maxBitrate/(t.scaleResolutionDownBy**2*((e.encoding.maxFramerate??30)/(t.fps??30))))),t.fps,e.encoding.priority)),HG=[`q`,`h`,`f`];function UG(e,t,n,r){let i=r?.videoEncoding;e&&(i=r?.screenShareEncoding);let a=r?.simulcast,o=r?.scalabilityMode,s=r?.videoCodec,c=RV(s,r);if(!i&&!a&&!o||!t||!n)return[{}];i||(i=KG(e,t,n,s),BR.debug(`using video encoding`,i));let l=i.maxFramerate,u=new XB(t,n,i.maxBitrate,i.maxFramerate,i.priority);if(o&&IV(s)&&!c){let e=new ZG(o),t=[];if(e.spatial>3)throw Error(`unsupported scalabilityMode: ${o}`);let n=xB();if(zV()){let r=e.suffix==`h`?2:3,a=XV(n);for(let n=0;n<e.spatial;n+=1)t.push({rid:HG[2-n],maxBitrate:i.maxBitrate/r**+n,maxFramerate:u.encoding.maxFramerate,scaleResolutionDownBy:a?2**n:void 0});t[0].scalabilityMode=o}else t.push({maxBitrate:i.maxBitrate,maxFramerate:u.encoding.maxFramerate,scalabilityMode:o});return u.encoding.priority&&(t[0].priority=u.encoding.priority,t[0].networkPriority=u.encoding.priority),BR.debug(`using svc encoding`,{encodings:t}),t}if(!a)return[i];let d=e=>(c&&e.forEach(e=>{e.scalabilityMode=o}),e),f;f=e?XG(r?.screenShareSimulcastLayers)??JG(e,u):XG(r?.videoSimulcastLayers)??JG(e,u);let p;if(f.length>0){let e=f[0];f.length>1&&(p=zP(f,2)[1]);let r=Math.max(t,n);if(r>=960&&p)return d(YG(t,n,[e,p,u],l));if(r>=480)return d(YG(t,n,[e,u],l))}return d(YG(t,n,[u]))}function WG(e,t,n){return IV(e)&&!RV(e,t)?n[0]?.maxBitrate??0:n.reduce((e,t)=>e+(t.maxBitrate??0),0)}function GG(e,t,n){if(!n.backupCodec||n.backupCodec===!0||n.backupCodec.codec===n.videoCodec)return;t!==n.backupCodec.codec&&BR.warn(`requested a different codec than specified as backup`,{serverRequested:t,backup:n.backupCodec.codec}),n.videoCodec=t,n.videoEncoding=n.backupCodec.encoding;let r=e.mediaStreamTrack.getSettings(),i=r.width??e.dimensions?.width,a=r.height??e.dimensions?.height;return e.source===$.Source.ScreenShare&&n.simulcast&&(n.simulcast=!1),UG(e.source===$.Source.ScreenShare,i,a,n)}function KG(e,t,n,r){let i=qG(e,t,n),a=i[0].encoding,o=Math.max(t,n);for(let e=0;e<i.length;e+=1){let t=i[e];if(a=t.encoding,t.width>=o)break}if(r)switch(r){case`av1`:case`h265`:a=Object.assign({},a),a.maxBitrate*=.7;break;case`vp9`:a=Object.assign({},a),a.maxBitrate*=.85}return a}function qG(e,t,n){if(e)return RG;let r=t>n?t/n:n/t;return Math.abs(r-16/9)<Math.abs(r-4/3)?IG:LG}function JG(e,t){if(e)return VG(t);let n=t.width,r=t.height,i=n>r?n/r:r/n;return Math.abs(i-16/9)<Math.abs(i-4/3)?zG:BG}function YG(e,t,n,r){let i=[];if(n.forEach((n,a)=>{if(a>=HG.length)return;let o=Math.min(e,t),s={rid:HG[a],scaleResolutionDownBy:Math.max(1,o/Math.min(n.width,n.height)),maxBitrate:n.encoding.maxBitrate},c=r&&n.encoding.maxFramerate?Math.min(r,n.encoding.maxFramerate):n.encoding.maxFramerate;c&&(s.maxFramerate=c);let l=xB(),u=l?.name===`Firefox`&&l.os!==`iOS`||a===0;n.encoding.priority&&u&&(s.priority=n.encoding.priority,s.networkPriority=n.encoding.priority),i.push(s)}),eH()&&iH()===`ios`){let e;i.forEach(t=>{e?t.maxFramerate&&t.maxFramerate>e&&(e=t.maxFramerate):e=t.maxFramerate});let t=!0;i.forEach(n=>{n.maxFramerate!=e&&(t&&(t=!1,BR.info(`Simulcast on iOS React-Native requires all encodings to share the same framerate.`)),BR.info(`Setting framerate of encoding "${n.rid??``}" to ${e}`),n.maxFramerate=e)})}return i}function XG(e){if(e)return e.slice().sort((e,t)=>{let n=e.encoding,r=t.encoding;return n.maxBitrate>r.maxBitrate?1:n.maxBitrate<r.maxBitrate?-1:n.maxBitrate===r.maxBitrate&&n.maxFramerate&&r.maxFramerate?n.maxFramerate>r.maxFramerate?1:-1:0})}var ZG=class{constructor(e){let t=e.match(/^L(\d)T(\d)(h|_KEY|_KEY_SHIFT){0,1}$/);if(!t)throw Error(`invalid scalability mode`);if(this.spatial=parseInt(t[1]),this.temporal=parseInt(t[2]),t.length>3)switch(t[3]){case`h`:case`_KEY`:case`_KEY_SHIFT`:this.suffix=t[3]}}toString(){return`L${this.spatial}T${this.temporal}${this.suffix??``}`}};function QG(e){switch(e.source){case $.Source.Camera:return`maintain-framerate`;case $.Source.ScreenShare:return`maintain-resolution`;default:return`balanced`}}var $G=5e3,eK=class extends NG{get sender(){return this._sender}set sender(e){this._sender=e,this.degradationPreference&&this.setDegradationPreference(this.degradationPreference)}constructor(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,r=arguments.length>3?arguments[3]:void 0;super(e,$.Kind.Video,t,n,r),this.simulcastCodecs=new Map,this.degradationPreference=`balanced`,this.isCpuConstrained=!1,this.optimizeForPerformance=!1,this.monitorSender=()=>J(this,void 0,void 0,function*(){if(!this.sender){this._currentBitrate=0;return}let e;try{e=yield this.getSenderStats()}catch(e){this.log.error(`could not get video sender stats`,Object.assign(Object.assign({},this.logContext),{error:e}));return}let t=new Map(e.map(e=>[e.rid,e])),n=e.some(e=>e.qualityLimitationReason===`cpu`);if(n!==this.isCpuConstrained&&(this.isCpuConstrained=n,this.isCpuConstrained&&this.emit(Q.CpuConstrained)),this.prevStats){let e=0;t.forEach((t,n)=>{let r=this.prevStats?.get(n);e+=gU(t,r)}),this._currentBitrate=e}this.prevStats=t}),this.senderLock=new KN}get isSimulcast(){return!!(this.sender&&this.sender.getParameters().encodings.length>1)}startMonitor(e){if(this.signalClient=e,!$V())return;let t=this.sender?.getParameters();t&&(this.encodings=t.encodings),!this.monitorInterval&&(this.monitorInterval=setInterval(()=>{this.monitorSender()},hU))}stop(){this._mediaStreamTrack.getConstraints(),this.simulcastCodecs.forEach(e=>{e.mediaStreamTrack.stop()}),super.stop()}pauseUpstream(){let e=Object.create(null,{pauseUpstream:{get:()=>super.pauseUpstream}});return J(this,void 0,void 0,function*(){var t,n,r,i;yield e.pauseUpstream.call(this);try{for(var a=!0,o=tz(this.simulcastCodecs.values()),s;s=yield o.next(),t=s.done,!t;a=!0)i=s.value,a=!1,yield i.sender?.replaceTrack(null)}catch(e){n={error:e}}finally{try{!a&&!t&&(r=o.return)&&(yield r.call(o))}finally{if(n)throw n.error}}})}resumeUpstream(){let e=Object.create(null,{resumeUpstream:{get:()=>super.resumeUpstream}});return J(this,void 0,void 0,function*(){var t,n,r,i;yield e.resumeUpstream.call(this);try{for(var a=!0,o=tz(this.simulcastCodecs.values()),s;s=yield o.next(),t=s.done,!t;a=!0){i=s.value,a=!1;let e=i;yield e.sender?.replaceTrack(e.mediaStreamTrack)}}catch(e){n={error:e}}finally{try{!a&&!t&&(r=o.return)&&(yield r.call(o))}finally{if(n)throw n.error}}})}mute(){let e=Object.create(null,{mute:{get:()=>super.mute}});return J(this,void 0,void 0,function*(){let t=yield this.muteLock.lock();try{return this.isMuted?(this.log.debug(`Track already muted`,this.logContext),this):(this.source===$.Source.Camera&&!this.isUserProvided&&(this.log.debug(`stopping camera track`,this.logContext),this._mediaStreamTrack.stop()),yield e.mute.call(this),this)}finally{t()}})}unmute(){let e=Object.create(null,{unmute:{get:()=>super.unmute}});return J(this,void 0,void 0,function*(){let t=yield this.muteLock.lock();try{return this.isMuted?(this.source===$.Source.Camera&&!this.isUserProvided&&(this.log.debug(`reacquiring camera track`,this.logContext),yield this.restart(void 0,!0)),yield e.unmute.call(this),this):(this.log.debug(`Track already unmuted`,this.logContext),this)}finally{t()}})}setTrackMuted(e){super.setTrackMuted(e);for(let t of this.simulcastCodecs.values())t.mediaStreamTrack.enabled=!e}getSenderStats(){return J(this,void 0,void 0,function*(){if(!this.sender?.getStats)return[];let e=[],t=yield this.sender.getStats();return t.forEach(n=>{if(n.type===`outbound-rtp`){let r={type:`video`,streamId:n.id,frameHeight:n.frameHeight,frameWidth:n.frameWidth,framesPerSecond:n.framesPerSecond,framesSent:n.framesSent,firCount:n.firCount,pliCount:n.pliCount,nackCount:n.nackCount,packetsSent:n.packetsSent,bytesSent:n.bytesSent,qualityLimitationReason:n.qualityLimitationReason,qualityLimitationDurations:n.qualityLimitationDurations,qualityLimitationResolutionChanges:n.qualityLimitationResolutionChanges,rid:n.rid??n.id,retransmittedPacketsSent:n.retransmittedPacketsSent,targetBitrate:n.targetBitrate,timestamp:n.timestamp},i=t.get(n.remoteId);i&&(r.jitter=i.jitter,r.packetsLost=i.packetsLost,r.roundTripTime=i.roundTripTime),e.push(r)}}),e.sort((e,t)=>(t.frameWidth??0)-(e.frameWidth??0)),e})}isSvcPublish(e){return IV(e)&&!RV(e,this.publishOptions)}setPublishingQuality(e){let t=[];for(let n=TV.LOW;n<=TV.HIGH;n+=1)t.push(new sR({quality:n,enabled:n<=e}));this.log.debug(`setting publishing quality. max quality ${e}`,this.logContext),this.setPublishingLayers(this.isSvcPublish(this.codec),t)}restartTrack(e){return J(this,void 0,void 0,function*(){var t,n,r,i;let a;if(e){let t=cV({video:e});typeof t.video!=`boolean`&&(a=t.video)}yield this.restart(a),this.isCpuConstrained=!1;try{for(var o=!0,s=tz(this.simulcastCodecs.values()),c;c=yield s.next(),t=c.done,!t;o=!0){i=c.value,o=!1;let e=i;e.sender&&e.sender.transport?.state!==`closed`&&(e.mediaStreamTrack=this.mediaStreamTrack.clone(),yield e.sender.replaceTrack(e.mediaStreamTrack))}}catch(e){n={error:e}}finally{try{!o&&!t&&(r=s.return)&&(yield r.call(s))}finally{if(n)throw n.error}}yield this.onSenderTrackSwapped()})}onSenderTrackSwapped(){return J(this,void 0,void 0,function*(){yield this.refreshSenderEncodings()})}refreshSenderEncodings(){return J(this,void 0,void 0,function*(){if(!this.sender||!this.publishOptions||this.optimizeForPerformance)return;let e=yield this.senderLock.lock();try{let e;try{e=yield this.waitForDimensions()}catch(e){this.log.warn(`could not determine new track dimensions, skipping encoding recompute`,Object.assign(Object.assign({},this.logContext),{error:e}));return}if(this.lastEncodedDimensions&&this.lastEncodedDimensions.width===e.width&&this.lastEncodedDimensions.height===e.height)return;let n=UG(this.source===$.Source.ScreenShare,e.width,e.height,Object.assign({},this.publishOptions));yield this.applyEncodingsToSender(this.sender,n),this.encodings=n,this.lastEncodedDimensions=e;for(let e of this.simulcastCodecs){var t=zP(e,2);let n=t[0],r=t[1];if(!r.sender||r.sender.transport?.state===`closed`||!$B(n))continue;let i=Object.assign({},this.publishOptions),a=GG(this,n,i);a&&(yield this.applyEncodingsToSender(r.sender,a),r.encodings=a)}}catch(e){this.log.warn(`failed to apply recomputed encodings`,Object.assign(Object.assign({},this.logContext),{error:e}))}finally{e()}})}applyEncodingsToSender(e,t){return J(this,void 0,void 0,function*(){let n=e.getParameters();n.encodings&&n.encodings.length===t.length&&(n.encodings.forEach((e,n)=>{if(e.active===!1)return;let r=t[n];r.scaleResolutionDownBy!==void 0&&(e.scaleResolutionDownBy=r.scaleResolutionDownBy),r.maxBitrate!==void 0&&(e.maxBitrate=r.maxBitrate),r.maxFramerate!==void 0&&(e.maxFramerate=r.maxFramerate),r.priority!==void 0&&(e.priority=r.priority,e.networkPriority=r.priority)}),this.log.debug(`updating sender encodings after track restart`,Object.assign(Object.assign({},this.logContext),{encodings:n.encodings})),yield e.setParameters(n))})}setProcessor(e){let t=Object.create(null,{setProcessor:{get:()=>super.setProcessor}});return J(this,arguments,void 0,function(e){var n=this;let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return function*(){var i,a,o,s;if(yield t.setProcessor.call(n,e,r),n.processor?.processedTrack)try{for(var c=!0,l=tz(n.simulcastCodecs.values()),u;u=yield l.next(),i=u.done,!i;c=!0)s=u.value,c=!1,yield s.sender?.replaceTrack(n.processor.processedTrack)}catch(e){a={error:e}}finally{try{!c&&!i&&(o=l.return)&&(yield o.call(l))}finally{if(a)throw a.error}}}()})}setDegradationPreference(e){return J(this,void 0,void 0,function*(){this.degradationPreference=e,yield this.applyDegradationPreference(this.sender);for(let e of this.simulcastCodecs.values())yield this.applyDegradationPreference(e.sender)})}applyDegradationPreference(e){return J(this,void 0,void 0,function*(){if(e)try{this.log.debug(`setting degradationPreference to ${this.degradationPreference}`,this.logContext);let t=e.getParameters();t.degradationPreference=this.degradationPreference,yield e.setParameters(t)}catch(e){this.log.warn(`failed to set degradationPreference`,Object.assign({error:e},this.logContext))}})}addSimulcastTrack(e,t){if(this.simulcastCodecs.has(e)){this.log.error(`${e} already added, skipping adding simulcast codec`,this.logContext);return}let n={codec:e,mediaStreamTrack:this.mediaStreamTrack.clone(),sender:void 0,encodings:t};return this.simulcastCodecs.set(e,n),n}setSimulcastTrackSender(e,t){return J(this,void 0,void 0,function*(){let n=this.simulcastCodecs.get(e);n&&(n.sender=t,yield this.applyDegradationPreference(t),setTimeout(()=>{this.subscribedCodecs&&this.setPublishingCodecs(this.subscribedCodecs)},$G))})}setPublishingCodecs(e){return J(this,void 0,void 0,function*(){var t,n,r,i,a,o,s;if(this.log.debug(`setting publishing codecs`,Object.assign(Object.assign({},this.logContext),{codecs:e,currentCodec:this.codec})),!this.codec&&e.length>0)return yield this.setPublishingLayers(this.isSvcPublish(e[0].codec),e[0].qualities),[];this.subscribedCodecs=e;let c=[];try{for(t=!0,n=tz(e);r=yield n.next(),i=r.done,!i;t=!0){s=r.value,t=!1;let e=s;if(!this.codec||this.codec===e.codec)yield this.setPublishingLayers(this.isSvcPublish(e.codec),e.qualities);else{let t=this.simulcastCodecs.get(e.codec);if(this.log.debug(`try setPublishingCodec for ${e.codec}`,Object.assign(Object.assign({},this.logContext),{simulcastCodecInfo:t})),!t||!t.sender){for(let t of e.qualities)if(t.enabled){c.push(e.codec);break}}else t.encodings&&(this.log.debug(`try setPublishingLayersForSender ${e.codec}`,this.logContext),yield tK(t.sender,t.encodings,e.qualities,this.senderLock,this.isSvcPublish(e.codec),this.log,this.logContext))}}}catch(e){a={error:e}}finally{try{!t&&!i&&(o=n.return)&&(yield o.call(n))}finally{if(a)throw a.error}}return c})}setPublishingLayers(e,t){return J(this,void 0,void 0,function*(){if(this.optimizeForPerformance){this.log.info(`skipping setPublishingLayers due to optimized publishing performance`,Object.assign(Object.assign({},this.logContext),{qualities:t}));return}this.log.debug(`setting publishing layers`,Object.assign(Object.assign({},this.logContext),{qualities:t})),this.sender&&this.encodings&&(yield tK(this.sender,this.encodings,t,this.senderLock,e,this.log,this.logContext))})}prioritizePerformance(){return J(this,void 0,void 0,function*(){if(!this.sender)throw Error(`sender not found`);let e=yield this.senderLock.lock();try{this.optimizeForPerformance=!0;let e=this.sender.getParameters();e.encodings=e.encodings.map((e,t)=>Object.assign(Object.assign({},e),{active:t===0,scaleResolutionDownBy:Math.max(1,Math.ceil((this.mediaStreamTrack.getSettings().height??360)/360)),scalabilityMode:t===0&&IV(this.codec)?`L1T3`:void 0,maxFramerate:t===0?15:0,maxBitrate:t===0?e.maxBitrate:0})),this.log.debug(`setting performance optimised encodings`,Object.assign(Object.assign({},this.logContext),{encodings:e.encodings})),this.encodings=e.encodings,yield this.sender.setParameters(e)}catch(e){this.log.error(`failed to set performance optimised encodings`,Object.assign(Object.assign({},this.logContext),{error:e})),this.optimizeForPerformance=!1}finally{e()}})}handleAppVisibilityChanged(){let e=Object.create(null,{handleAppVisibilityChanged:{get:()=>super.handleAppVisibilityChanged}});return J(this,void 0,void 0,function*(){yield e.handleAppVisibilityChanged.call(this),ZV()&&this.isInBackground&&this.source===$.Source.Camera&&(this._mediaStreamTrack.enabled=!1)})}};function tK(e,t,n,r,i,a,o){return J(this,void 0,void 0,function*(){let s=yield r.lock();a.debug(`setPublishingLayersForSender`,Object.assign(Object.assign({},o),{sender:e,qualities:n,senderEncodings:t}));try{let r=e.getParameters(),s=r.encodings;if(!s)return;if(s.length!==t.length){a.warn(`cannot set publishing layers, encodings mismatch`,Object.assign(Object.assign({},o),{encodings:s,senderEncodings:t}));return}let c=!1;i&&n.some(e=>e.enabled)&&n.forEach(e=>e.enabled=!0),s.forEach((e,r)=>{let i=e.rid??``;i===``&&(i=`q`);let s=nK(i),l=n.find(e=>e.quality===s);l&&e.active!==l.enabled&&(c=!0,e.active=l.enabled,a.debug(`setting layer ${l.quality} to ${e.active?`enabled`:`disabled`}`,o),WV()&&(l.enabled?(e.scaleResolutionDownBy=t[r].scaleResolutionDownBy,e.maxBitrate=t[r].maxBitrate,e.maxFrameRate=t[r].maxFrameRate):(e.scaleResolutionDownBy=4,e.maxBitrate=10,e.maxFrameRate=2)))}),c&&(r.encodings=s,a.debug(`setting encodings`,Object.assign(Object.assign({},o),{encodings:r.encodings})),yield e.setParameters(r))}finally{s()}})}function nK(e){switch(e){case`f`:return TV.HIGH;case`h`:return TV.MEDIUM;case`q`:return TV.LOW;default:return TV.HIGH}}function rK(e,t,n,r){if(!n)return[new BI({quality:TV.HIGH,width:e,height:t,bitrate:0,ssrc:0})];if(r){let r=n[0].scalabilityMode,i=new ZG(r),a=[],o=i.suffix==`h`?1.5:2,s=i.suffix==`h`?2:3;for(let r=0;r<i.spatial;r+=1)a.push(new BI({quality:Math.min(TV.HIGH,i.spatial-1)-r,width:Math.ceil(e/o**+r),height:Math.ceil(t/o**+r),bitrate:n[0].maxBitrate?Math.ceil(n[0].maxBitrate/s**+r):0,ssrc:0}));return a}return n.map(n=>{let r=n.scaleResolutionDownBy??1;return new BI({quality:nK(n.rid??``),width:Math.ceil(e/r),height:Math.ceil(t/r),bitrate:n.maxBitrate??0,ssrc:0})})}var iK=2e3,aK=`leave-reconnect`,oK=1e4,sK=3e4,cK=3,lK=3,uK;(function(e){e[e.New=0]=`New`,e[e.Connected=1]=`Connected`,e[e.Disconnected=2]=`Disconnected`,e[e.Reconnecting=3]=`Reconnecting`,e[e.Closed=4]=`Closed`})(uK||={});var dK=64e3,fK=class extends az.EventEmitter{get isClosed(){return this._isClosed}get isNewlyCreated(){return this._isNewlyCreated}get pendingReconnect(){return!!this.reconnectTimeout}get serverVersion(){return this.latestJoinResponse?.serverInfo?.version||this.latestJoinResponse?.serverVersion||void 0}get reliableChannel(){return this.dataChannels.reliable}get lossyChannel(){return this.dataChannels.lossy}get dataTrackChannel(){return this.dataChannels.dataTrack}constructor(e){super(),this.options=e,this.rtcConfig={},this.peerConnectionTimeout=lG.peerConnectionTimeout,this.fullReconnectOnNext=!1,this.latestRemoteOfferId=0,this.subscriberPrimary=!1,this.pcState=uK.New,this._isClosed=!0,this._isNewlyCreated=!0,this.pendingTrackResolvers={},this.reconnectAttempts=0,this.reconnectStart=0,this.attemptingReconnect=!1,this.joinAttempts=0,this.maxJoinAttempts=1,this.shouldFailNext=!1,this.shouldFailOnV1Path=!1,this.log=BR,this.reliableReceivedState=new EW(sK),this.midToTrackId={},this.isWaitingForNetworkReconnect=!1,this.handleDataChannel=e=>J(this,[e],void 0,function(e){var t=this;let n=e.channel;return function*(){n&&t.dataChannels.adoptSubscriberChannel(n)&&t.log.debug(`on data channel ${n.id}, ${n.label}`)}()}),this.handleDataMessage=e=>J(this,void 0,void 0,function*(){let t=yield this.dataProcessLock.lock();try{let t=yield this.decodeDataMessage(e);if(!t)return;let n=HI.fromBinary(t);if(n.sequence>0&&n.participantSid!==``){let e=this.reliableReceivedState.get(n.participantSid);if(e&&n.sequence<=e)return;this.reliableReceivedState.set(n.participantSid,n.sequence)}if(n.value?.case===`speaker`)this.emit(Z.ActiveSpeakersUpdate,n.value.value.speakers);else if(n.value?.case===`encryptedPacket`){if(!this.e2eeManager){this.log.error(`Received encrypted packet but E2EE not set up`);return}let e;try{e=yield this.e2eeManager.handleEncryptedData(n.value.value.encryptedValue,n.value.value.iv,n.participantIdentity,n.value.value.keyIndex)}catch(e){this.log.debug(`failed to decrypt data packet`,{error:e,participantIdentity:n.participantIdentity});return}let t=new HI({value:GI.fromBinary(e.payload).value,participantIdentity:n.participantIdentity,participantSid:n.participantSid});t.value?.case===`user`&&pK(t,t.value.value),this.emit(Z.DataPacketReceived,t,n.value.value.encryptionType)}else n.value?.case===`user`&&pK(n,n.value.value),this.emit(Z.DataPacketReceived,n,OI.NONE)}finally{t()}}),this.handleDataTrackMessage=e=>J(this,void 0,void 0,function*(){let t=yield this.decodeDataMessage(e);t&&this.emit(`dataTrackPacketReceived`,t)}),this.handleDataError=e=>{if(this._isClosed)return;let t=e.currentTarget.maxRetransmits===0?`lossy`:`reliable`;if(typeof RTCErrorEvent<`u`&&e instanceof RTCErrorEvent&&e.error){let n=e.error;this.log.error(`DataChannel error on ${t}: ${n.message}`,{error:n,errorDetail:n.errorDetail,sctpCauseCode:n.sctpCauseCode})}else this.log.error(`Unknown DataChannel error on ${t}`,{event:e})},this.handleDataChannelClose=e=>()=>{!this._isClosed&&this.pcManager?.publisher.getConnectionState()===`connected`&&this.log.error(`publisher data channel '${gG[e]}' closed unexpectedly`,this.logContext)},this.handleDisconnect=(e,t)=>{if(this._isClosed)return;this.log.warn(`${e} disconnected`),this.reconnectAttempts===0&&(this.reconnectStart=Date.now());let n=e=>{this.log.warn(`could not recover connection after ${this.reconnectAttempts} attempts, ${e}ms. giving up`),this.emit(Z.Disconnected),this.close(`gave up reconnecting after ${this.reconnectAttempts} attempts, ${e}ms`)},r=Date.now()-this.reconnectStart,i=this.getNextRetryDelay({elapsedMs:r,retryCount:this.reconnectAttempts});if(i===null){n(r);return}e===aK&&(i=0),this.log.debug(`reconnecting in ${i}ms`),this.clearReconnectTimeout(),this.token&&this.emit(Z.TokenRefreshed,this.token),this.reconnectTimeout=HB.setTimeout(()=>this.attemptReconnect(t).finally(()=>this.reconnectTimeout=void 0),i)},this.waitForRestarted=()=>new Promise((e,t)=>{this.pcState===uK.Connected&&e();let n=()=>{this.off(Z.Disconnected,r),e()},r=()=>{this.off(Z.Restarted,n),t()};this.once(Z.Restarted,n),this.once(Z.Disconnected,r)}),this.onRtpMapAvailable=e=>{let t=new Map;e.forEach(e=>{let n=e.codec.toLowerCase();vH(n)&&t.set(e.payload,n)}),this.emit(Z.RTPVideoMapUpdate,t)},this.handleBrowserOnLine=()=>J(this,void 0,void 0,function*(){this.url&&(yield fetch(xH(this.url),{method:`HEAD`}).then(e=>e.ok).catch(()=>!1))&&(this.log.info(`detected network reconnected`),(this.client.currentState===_W.RECONNECTING||this.isWaitingForNetworkReconnect&&this.client.currentState===_W.CONNECTED)&&(this.clearReconnectTimeout(),this.attemptReconnect(_I.RR_SIGNAL_DISCONNECTED),this.isWaitingForNetworkReconnect=!1))}),this.handleBrowserOffline=()=>J(this,void 0,void 0,function*(){if(this.url)try{yield Promise.race([fetch(xH(this.url),{method:`HEAD`}),jV(4e3).then(()=>Promise.reject())])}catch{window.navigator.onLine===!1&&(this.log.info(`detected network interruption`),this.isWaitingForNetworkReconnect=!0)}}),this.log=VR(e.loggerName??zR.Engine,()=>this.logContext),this.loggerOptions={loggerName:e.loggerName,loggerContextCb:()=>this.logContext},this.client=new xW(void 0,this.loggerOptions),this.client.signalLatency=this.options.expSignalLatency,this.reconnectPolicy=this.options.reconnectPolicy,this.closingLock=new KN,this.dataProcessLock=new KN,this.dataChannels=new EG({isEngineClosed:()=>this.isClosed,isReconnecting:()=>this.attemptingReconnect,onDataMessage:e=>this.handleDataMessage(e),onDataTrackMessage:e=>this.handleDataTrackMessage(e),onDataError:e=>this.handleDataError(e),onChannelClose:e=>this.handleDataChannelClose(e)(),onBufferStatusChanged:(e,t)=>this.emit(Z.DCBufferStatusChanged,t,e)}),this.client.onParticipantUpdate=e=>this.emit(Z.ParticipantUpdate,e),this.client.onConnectionQuality=e=>{this.handleLocalConnectionQuality(e),this.emit(Z.ConnectionQualityUpdate,e)},this.client.onRoomUpdate=e=>this.emit(Z.RoomUpdate,e),this.client.onSubscriptionError=e=>this.emit(Z.SubscriptionError,e),this.client.onSubscriptionPermissionUpdate=e=>this.emit(Z.SubscriptionPermissionUpdate,e),this.client.onSpeakersChanged=e=>this.emit(Z.SpeakersChanged,e),this.client.onStreamStateUpdate=e=>this.emit(Z.StreamStateChanged,e),this.client.onRequestResponse=e=>this.emit(Z.SignalRequestResponse,e),this.client.onParticipantUpdate=e=>this.emit(Z.ParticipantUpdate,e),this.client.onJoined=e=>this.emit(Z.Joined,e)}get logContext(){return{room:this.latestJoinResponse?.room?.name,roomID:this.latestJoinResponse?.room?.sid,participant:this.latestJoinResponse?.participant?.identity,participantID:this.participantSid}}join(e,t,n,r){return J(this,arguments,void 0,function(e,t,n,r){var i=this;let a=arguments.length>4&&arguments[4]!==void 0&&arguments[4];return function*(){var o;i._isNewlyCreated=!1,i.url=e,i.token=t,i.signalOpts=n,i.maxJoinAttempts=n.maxRetries;try{i.joinAttempts+=1,i.setupSignalClientCallbacks();let s=!a&&VH(),c;if(s){i.pcManager||(yield i.configure(),i.applyInitialPublisherLayout());let e=yield i.pcManager?.publisher.createInitialOffer();e&&(c=CW(e.offer,e.offerId))}if(r?.aborted)throw kB.cancelled(`Connection aborted`);if(!a&&i.shouldFailOnV1Path)throw i.shouldFailOnV1Path=!1,kB.serviceNotFound(`Simulated v1 path failure`,`v0-rtc`);let l=yield i.client.join(e,t,n,r,a,c);i._isClosed=!1,i.latestJoinResponse=l,i.participantSid=l.participant?.sid,i.subscriberPrimary=l.subscriberPrimary,s?(o=i.pcManager)==null||o.updateConfiguration(i.makeRTCConfiguration(l)):(i.pcManager||(yield i.configure(l,!a),a||i.applyInitialPublisherLayout()),(!i.subscriberPrimary||l.fastPublish)&&i.negotiate().catch(e=>{i.log.error(e)})),i.registerOnLineListener(),i.clientConfiguration=l.clientConfiguration,i.emit(Z.SignalConnected,l);let u=l.serverInfo;return u||={version:l.serverVersion,region:l.serverRegion},i.log.info(`connected to Livekit Server ${Object.entries(u).map(e=>{let t=zP(e,2);return`${t[0]}: ${t[1]}`}).join(`, `)}`),{joinResponse:l,serverInfo:u}}catch(o){if(o instanceof kB){if(o.reason===OB.ServerUnreachable){if(i.log.warn(`Couldn't connect to server, attempt ${i.joinAttempts} of ${i.maxJoinAttempts}`),i.joinAttempts<i.maxJoinAttempts)return i.join(e,t,n,r,a)}else if(o.reason===OB.ServiceNotFound)return i.log.warn(`Initial connection failed: ${o.message} – Retrying`),i.pcManager&&(i.pcManager.onStateChange=void 0,yield i.cleanupPeerConnections()),i.join(e,t,n,r,!0)}throw o}}()})}close(e){return J(this,void 0,void 0,function*(){let t=yield this.closingLock.lock();if(this.isClosed){t();return}try{this._isClosed=!0,this.joinAttempts=0,this.emit(Z.Closing),this.removeAllListeners(),this.deregisterOnLineListener(),this.clearPendingReconnect(),this.clearLostQualityTimeout(),this.cleanupLossyDataStats(),yield this.cleanupPeerConnections(),yield this.cleanupClient(e)}finally{t()}})}cleanupPeerConnections(){return J(this,void 0,void 0,function*(){this.dataChannels.teardown(),yield this.pcManager?.close(),this.pcManager=void 0,this.transportConnectingSince=void 0,this.reliableReceivedState.clear()})}cleanupLossyDataStats(){this.lossyChannel.stopThresholdTuning()}cleanupClient(e){return J(this,void 0,void 0,function*(){yield this.client.close(!0,e),this.client.resetCallbacks();for(let e of Object.keys(this.pendingTrackResolvers))this.pendingTrackResolvers[e].reject();this.pendingTrackResolvers={}})}addTrack(e){if(this.pendingTrackResolvers[e.cid])throw new jB(`a track with the same ID has already been published`);return new Promise((t,n)=>{let r=HB.setTimeout(()=>{delete this.pendingTrackResolvers[e.cid],n(kB.timeout(`publication of local track timed out, no response from server`))},1e4);this.pendingTrackResolvers[e.cid]={resolve:e=>{HB.clearTimeout(r),t(e)},reject:()=>{HB.clearTimeout(r),n(Error(`Cancelled publication by calling unpublish`))}},this.client.sendAddTrack(e)})}removeTrack(e){if(e.track&&this.pendingTrackResolvers[e.track.id]){let t=this.pendingTrackResolvers[e.track.id].reject;t&&t(),delete this.pendingTrackResolvers[e.track.id]}try{return this.pcManager.removeTrack(e),!0}catch(e){this.log.warn(`failed to remove track`,{error:e})}return!1}updateMuteStatus(e,t){this.client.sendMuteTrack(e,t)}get dataSubscriberReadyState(){return this.dataChannelForKind(gG.RELIABLE,!0)?.readyState}getConnectedServerAddress(){return J(this,void 0,void 0,function*(){return this.pcManager?.getConnectedAddress()})}setRegionStrategy(e){this.regionStrategy=e}configure(e,t){return J(this,void 0,void 0,function*(){if(!(this.pcManager&&this.pcManager.currentState!==uG.NEW)){if(e){this.participantSid=e.participant?.sid;let n=this.makeRTCConfiguration(e);this.pcManager=new dG(t?`publisher-only`:e.subscriberPrimary?`subscriber-primary`:`publisher-primary`,this.loggerOptions,n)}else{let e=this.makeRTCConfiguration();this.pcManager=new dG(`publisher-only`,this.loggerOptions,e)}this.emit(Z.TransportsCreated,this.pcManager.publisher,this.pcManager.subscriber),this.pcManager.onIceCandidate=(e,t)=>{this.client.sendIceCandidate(e,t)},this.pcManager.onPublisherOffer=(e,t)=>{this.client.sendOffer(e,t)},this.pcManager.onDataChannel=this.handleDataChannel,this.pcManager.onStateChange=(e,t,n)=>J(this,void 0,void 0,function*(){if(this.log.debug(`primary PC state changed ${e}`),this.transportConnectingSince=e===uG.CONNECTING?Date.now():void 0,[`closed`,`disconnected`,`failed`].includes(t)&&(this.publisherConnectionPromise=void 0),e===uG.CONNECTED){let e=this.pcState===uK.New;this.pcState=uK.Connected,e&&this.emit(Z.Connected,this.latestJoinResponse)}else e===uG.FAILED&&(this.pcState===uK.Connected||this.pcState===uK.Reconnecting)&&(this.pcState=uK.Disconnected,this.handleDisconnect(`peerconnection failed`,n===`failed`?_I.RR_SUBSCRIBER_FAILED:_I.RR_PUBLISHER_FAILED));let r=this.client.isDisconnected||this.client.currentState===_W.RECONNECTING,i=[uG.FAILED,uG.CLOSING,uG.CLOSED].includes(e);r&&i&&!this._isClosed&&this.emit(Z.Offline)}),this.pcManager.onTrack=e=>{e.streams.length!==0&&this.emit(Z.MediaTrackAdded,e.track,e.streams[0],e.receiver)}}})}setupSignalClientCallbacks(){this.client.onAnswer=(e,t,n)=>J(this,void 0,void 0,function*(){this.pcManager&&(this.log.debug(`received server answer`,{RTCSdpType:e.type,sdp:e.sdp,midToTrackId:n}),this.pcManager.mode===`publisher-only`&&(this.midToTrackId=n),yield this.pcManager.setPublisherAnswer(e,t))}),this.client.onTrickle=(e,t)=>{this.pcManager&&(this.log.debug(`got ICE candidate from peer`,{candidate:e,target:t}),this.pcManager.addIceCandidate(e,t))},this.client.onOffer=(e,t,n)=>J(this,void 0,void 0,function*(){if(this.latestRemoteOfferId=t,!this.pcManager)return;this.midToTrackId=n;let r=yield this.pcManager.createSubscriberAnswerFromOffer(e,t);r&&this.client.sendAnswer(r,t)}),this.client.onLocalTrackPublished=e=>{if(this.log.debug(`received trackPublishedResponse`,{cid:e.cid,track:e.track?.sid}),!this.pendingTrackResolvers[e.cid]){this.log.error(`missing track resolver for ${e.cid}`,{cid:e.cid});return}let t=this.pendingTrackResolvers[e.cid].resolve;delete this.pendingTrackResolvers[e.cid],t(e.track)},this.client.onLocalTrackUnpublished=e=>{this.emit(Z.LocalTrackUnpublished,e)},this.client.onLocalTrackSubscribed=e=>{this.emit(Z.LocalTrackSubscribed,e)},this.client.onTokenRefresh=e=>{this.token=e,this.emit(Z.TokenRefreshed,e)},this.client.onRemoteMuteChanged=(e,t)=>{this.emit(Z.RemoteMute,e,t)},this.client.onSubscribedQualityUpdate=e=>{this.emit(Z.SubscribedQualityUpdate,e)},this.client.onRoomMoved=e=>{this.participantSid=e.participant?.sid,this.latestJoinResponse&&(this.latestJoinResponse.room=e.room),this.emit(Z.RoomMoved,e)},this.client.onMediaSectionsRequirement=e=>{this.addMediaSections(e.numAudios,e.numVideos),this.negotiate()},this.client.onPublishDataTrackResponse=e=>{this.emit(Z.PublishDataTrackResponse,e)},this.client.onUnPublishDataTrackResponse=e=>{this.emit(Z.UnPublishDataTrackResponse,e)},this.client.onDataTrackSubscriberHandles=e=>{this.emit(Z.DataTrackSubscriberHandles,e)},this.client.onClose=()=>{this.handleDisconnect(`signal`,_I.RR_SIGNAL_DISCONNECTED)},this.client.onLeave=e=>{switch(this.log.info(`client leave request received (action=${e?.action})`,{reason:e?.reason}),e.regions&&(this.log.debug(`updating regions`),this.emit(Z.ServerRegionsReported,e.regions)),e.action){case ZL.DISCONNECT:this.emit(Z.Disconnected,e?.reason),this.close(`server leave: ${gI[e.reason]??e.reason}`);break;case ZL.RECONNECT:this.fullReconnectOnNext=!0,this.handleDisconnect(aK);break;case ZL.RESUME:this.handleDisconnect(aK)}}}makeRTCConfiguration(e){let t=Object.assign({},this.rtcConfig);if((this.signalOpts?.e2eeEnabled||this.frameMetadataWorker&&!lU())&&aU()&&(this.log.debug(`E2EE - setting up transports with insertable streams`),t.encodedInsertableStreams=!0),t.sdpSemantics=`unified-plan`,t.continualGatheringPolicy=`gather_continually`,!e)return t;if(e.iceServers&&!t.iceServers){let n=[];e.iceServers.forEach(e=>{let t={urls:e.urls};e.username&&(t.username=e.username),e.credential&&(t.credential=e.credential),n.push(t)}),t.iceServers=n}return e.clientConfiguration&&e.clientConfiguration.forceRelay===hI.ENABLED&&(t.iceTransportPolicy=`relay`),t}applyInitialPublisherLayout(){this.createDataChannels(),eH()||this.addMediaSections(cK,lK)}addMediaSections(e,t){var n;let r={direction:`recvonly`};for(let t=0;t<e;t++)(n=this.pcManager)==null||n.addPublisherTransceiverOfKind(`audio`,r);let i=this.pcManager?.mode===`publisher-only`;for(let e=0;e<t;e++){let e=this.pcManager?.addPublisherTransceiverOfKind(`video`,r);if(i&&e){let t=LV(e);this.log.debug(`dependency descriptor negotiated for received video`,{negotiated:t})}}}createDataChannels(){this.pcManager&&this.dataChannels.createPublisherChannels(this.pcManager)}decodeDataMessage(e){return J(this,void 0,void 0,function*(){if(e.data instanceof ArrayBuffer)return new Uint8Array(e.data);if(e.data instanceof Blob)return new Uint8Array(yield e.data.arrayBuffer());this.log.error(`unsupported data type`,{data:e.data})})}createSender(e,t,n){return J(this,void 0,void 0,function*(){let r;if(MV())r=yield this.createTransceiverRTCRtpSender(e,t,n);else if(NV())this.log.warn(`using add-track fallback`),r=yield this.createRTCRtpSender(e.mediaStreamTrack);else throw new NB(`Required webRTC APIs not supported on this device`);return this.setupFrameMetadataSender(r,t),r})}createSimulcastSender(e,t,n,r){return J(this,void 0,void 0,function*(){let i;if(MV())i=yield this.createSimulcastTransceiverSender(e,t,n,r);else if(NV())this.log.debug(`using add-track fallback`),i=yield this.createRTCRtpSender(e.mediaStreamTrack);else throw new NB(`Cannot stream on this device`);return i&&this.setupFrameMetadataSender(i,n),i})}get frameMetadataWorker(){return(this.options.frameMetadata??this.options.packetTrailer)?.worker}setupFrameMetadataSender(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=this.frameMetadataWorker;if(!n||this.signalOpts?.e2eeEnabled)return;let r=t.frameMetadata??t.packetTrailer,i=dU(r);if(lU()){i&&(e.transform=new RTCRtpScriptTransform(n,{kind:`encode`,packetTrailer:r}));return}if(!uU(this.options.frameMetadata??this.options.packetTrailer)||!(`createEncodedStreams`in e)){i&&this.log.warn(`frame metadata transform not supported; skipping write`,this.logContext);return}let a=e.createEncodedStreams(),o=a.readable,s=a.writable;i?n.postMessage({kind:`encode`,data:{readableStream:o,writableStream:s,packetTrailer:r}},[o,s]):o.pipeTo(s)}createTransceiverRTCRtpSender(e,t,n){return J(this,void 0,void 0,function*(){if(!this.pcManager)throw new NB(`publisher is closed`);let r=[];e.mediaStream&&r.push(e.mediaStream),kH(e)&&(e.codec=t.videoCodec);let i={direction:`sendonly`,streams:r};return n&&(i.sendEncodings=n),(yield this.pcManager.addPublisherTransceiver(e.mediaStreamTrack,i)).sender})}createSimulcastTransceiverSender(e,t,n,r){return J(this,void 0,void 0,function*(){if(!this.pcManager)throw new NB(`publisher is closed`);let i={direction:`sendonly`};r&&(i.sendEncodings=r);let a=yield this.pcManager.addPublisherTransceiver(t.mediaStreamTrack,i);if(n.videoCodec)return yield e.setSimulcastTrackSender(n.videoCodec,a.sender),a.sender})}createRTCRtpSender(e){return J(this,void 0,void 0,function*(){if(!this.pcManager)throw new NB(`publisher is closed`);return this.pcManager.addPublisherTrack(e)})}handleLocalConnectionQuality(e){if(!this.participantSid)return;let t=e.updates.find(e=>e.participantSid===this.participantSid);t&&(t.quality===mI.LOST?this.scheduleLostQualityReconnect():this.clearLostQualityTimeout())}scheduleLostQualityReconnect(){this.lostQualityTimeout||=HB.setTimeout(()=>{this.lostQualityTimeout=void 0,!(this._isClosed||this.pcState!==uK.Connected||this.attemptingReconnect)&&this.hasActivePublisherSenders()&&(this.log.warn(`local connection quality lost while publishing, triggering full reconnect`,this.logContext),this.fullReconnectOnNext=!0,this.handleDisconnect(`connection quality lost`,_I.RR_PUBLISHER_FAILED))},oK)}clearLostQualityTimeout(){this.lostQualityTimeout&&=(HB.clearTimeout(this.lostQualityTimeout),void 0)}hasActivePublisherSenders(){return this.pcManager?.publisher.getSenders().some(e=>!!e.track&&e.track.readyState===`live`)??!1}reconnect(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:_I.RR_UNKNOWN;this.fullReconnectOnNext=!0,this.handleDisconnect(`reconcile`,e)}attemptReconnect(e){return J(this,void 0,void 0,function*(){if(this._isClosed)return;if(this.attemptingReconnect){this.log.warn(`already attempting reconnect, returning early`);return}this.clearLostQualityTimeout(),(this.clientConfiguration?.resumeConnection===hI.DISABLED||(this.pcManager?.currentState??uG.NEW)===uG.NEW)&&(this.fullReconnectOnNext=!0);let t=this.fullReconnectOnNext;this.fullReconnectOnNext=!1;let n=!1;try{this.attemptingReconnect=!0,t?yield this.restartConnection():yield this.resumeConnection(e),this.clearPendingReconnect(),n=!0}catch(e){this.reconnectAttempts+=1;let n=!0;e instanceof NB?(this.log.debug(`received unrecoverable error`,{error:e}),n=!1):(t||!(e instanceof BB))&&(this.fullReconnectOnNext=!0),n?this.handleDisconnect(`reconnect`,_I.RR_UNKNOWN):(this.log.info(`could not recover connection after ${this.reconnectAttempts} attempts, ${Date.now()-this.reconnectStart}ms. giving up`),this.emit(Z.Disconnected),yield this.close(`gave up reconnecting after ${this.reconnectAttempts} attempts, ${Date.now()-this.reconnectStart}ms`))}finally{this.attemptingReconnect=!1,n&&this.fullReconnectOnNext&&!this._isClosed&&(this.log.debug(`full reconnect requested during in-progress attempt, dispatching`),this.handleDisconnect(`reconnect`))}})}getNextRetryDelay(e){try{return this.reconnectPolicy.nextRetryDelayInMs(e)}catch(e){this.log.warn(`encountered error in reconnect policy`,{error:e})}return null}restartConnection(e){return J(this,void 0,void 0,function*(){var t,n;try{if(!this.url||!this.token)throw new NB(`could not reconnect, url or token not saved`);this.log.info(`reconnecting, attempt: ${this.reconnectAttempts}`),this.emit(Z.Restarting),this.client.isDisconnected||(yield this.client.sendLeave()),yield this.cleanupPeerConnections(),yield this.cleanupClient();let n;try{if(!this.signalOpts)throw this.log.warn(`attempted connection restart, without signal options present`),new BB;n=(yield this.join(e??this.url,this.token,this.signalOpts,void 0,!this.options.singlePeerConnection)).joinResponse}catch(e){throw e instanceof kB&&e.reason===OB.NotAllowed?new NB(`could not reconnect, token might be expired`):new BB}if(this.shouldFailNext)throw this.shouldFailNext=!1,Error(`simulated failure`);if(this.client.setReconnected(),this.emit(Z.SignalRestarted,n),yield this.waitForPCReconnected(),this.client.currentState!==_W.CONNECTED)throw new BB(`Signal connection got severed during reconnect`);(t=this.regionStrategy)==null||t.resetAttempts(),this.emit(Z.Restarted)}catch(e){let t=yield this.regionStrategy?.getNextUrl();if(t){yield this.restartConnection(t);return}throw(n=this.regionStrategy)==null||n.resetAttempts(),e}})}resumeConnection(e){return J(this,void 0,void 0,function*(){if(!this.url||!this.token)throw new NB(`could not reconnect, url or token not saved`);if(!this.pcManager)throw new NB(`publisher and subscriber connections unset`);this.log.info(`resuming signal connection, attempt ${this.reconnectAttempts}`),this.emit(Z.Resuming);let t;try{this.setupSignalClientCallbacks(),t=yield this.client.reconnect(this.url,this.token,this.participantSid,e)}catch(e){let t=``;throw e instanceof Error&&(t=e.message,this.log.error(e.message,{error:e})),e instanceof kB&&e.reason===OB.NotAllowed?new NB(`could not reconnect, token might be expired`):e instanceof kB&&e.reason===OB.LeaveRequest?e:new BB(t)}if(this.emit(Z.SignalResumed),t){let e=this.makeRTCConfiguration(t);this.pcManager.updateConfiguration(e),this.latestJoinResponse&&(this.latestJoinResponse.serverInfo=t.serverInfo)}else this.log.warn(`Did not receive reconnect response`);if(this.shouldFailNext)throw this.shouldFailNext=!1,Error(`simulated failure`);if(yield this.pcManager.triggerIceRestart(),yield this.waitForPCReconnected(),this.client.currentState!==_W.CONNECTED)throw new BB(`Signal connection got severed during reconnect`);this.client.setReconnected();let n=this.dataChannelForKind(gG.RELIABLE);n?.readyState===`open`&&n.id===null&&this.createDataChannels(),t?.lastMessageSeq&&this.resendReliableMessagesForResume(t.lastMessageSeq).catch(e=>{this.log.warn(`failed to resend reliable messages after resume`,Object.assign(Object.assign({},this.logContext),{error:e}))}),this.emit(Z.Resumed)})}waitForPCInitialConnection(e,t){return J(this,void 0,void 0,function*(){if(!this.pcManager)throw new NB(`PC manager is closed`);yield this.pcManager.ensurePCTransportConnection(t,e)})}waitForPCReconnected(){return J(this,void 0,void 0,function*(){this.pcState=uK.Reconnecting,this.log.debug(`waiting for peer connection to reconnect`);try{if(yield jV(iK),!this.pcManager)throw new NB(`PC manager is closed`);yield this.pcManager.ensurePCTransportConnection(void 0,this.peerConnectionTimeout),this.pcState=uK.Connected}catch(e){throw this.pcState=uK.Disconnected,kB.internal(`could not establish PC connection, ${e.message}`)}})}publishRpcAck(e,t){return J(this,void 0,void 0,function*(){let n=new HI({destinationIdentities:[e],kind:UI.RELIABLE,value:{case:`rpcAck`,value:new QI({requestId:t})}});yield this.sendDataPacket(n,gG.RELIABLE)})}sendDataPacket(e,t){return J(this,void 0,void 0,function*(){if(yield this.ensurePublisherConnected(t),this.e2eeManager&&this.e2eeManager.isDataChannelEncryptionEnabled){let t=oU(e);if(t){let n=yield this.e2eeManager.encryptData(t.toBinary());e.value={case:`encryptedPacket`,value:new WI({encryptedValue:n.payload,iv:n.iv,keyIndex:n.keyIndex})}}}t===gG.RELIABLE&&(e.sequence=this.reliableChannel.nextSequence());let n=e.toBinary(),r=Math.min(this.pcManager?.getMaxPublisherMessageSize()??dK,dK);if(r!==void 0&&r!==0&&n.byteLength>r)throw new FB(`cannot publish data packet larger than ${r} bytes (got ${n.byteLength})`);t===gG.RELIABLE?yield this.reliableChannel.send(n,e.sequence):yield this.lossyChannel.send(n)})}sendDataTrackFrame(e){return J(this,void 0,void 0,function*(){yield this.ensurePublisherConnected(gG.DATA_TRACK_LOSSY),yield this.dataTrackChannel.send(e)})}resendReliableMessagesForResume(e){return J(this,void 0,void 0,function*(){yield this.ensurePublisherConnected(gG.RELIABLE),yield this.reliableChannel.replay(e)})}flowControlFor(e){return this.dataChannels.channelFor(e)}waitForBufferHeadroom(e){return J(this,void 0,void 0,function*(){return this.flowControlFor(e).waitForHeadroomWithLock()})}ensureDataTransportConnected(e){return J(this,arguments,void 0,function(e){var t=this;let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.subscriberPrimary;return function*(){if(!t.pcManager)throw new NB(`PC manager is closed`);let r=n?t.pcManager.subscriber:t.pcManager.publisher,i=n?`Subscriber`:`Publisher`;if(!r)throw kB.internal(`${i} connection not set`);let a=!1;if(!n&&!t.dataChannelForKind(e,n)&&(t.createDataChannels(),a=!0),!a&&!n&&!t.pcManager.publisher.isICEConnected&&t.pcManager.publisher.getICEConnectionState()!==`checking`&&(a=!0),a&&t.negotiate().catch(e=>{t.log.error(e)}),t.dataChannelForKind(e,n)?.readyState===`open`)return;let o=new Date().getTime()+t.peerConnectionTimeout;for(;new Date().getTime()<o;){if(r.isICEConnected&&t.dataChannelForKind(e,n)?.readyState===`open`)return;yield jV(50)}throw kB.internal(`could not establish ${i} connection, state: ${r.getICEConnectionState()}`)}()})}ensurePublisherConnected(e){return J(this,void 0,void 0,function*(){this.publisherConnectionPromise||=this.ensureDataTransportConnected(e,!1),yield this.publisherConnectionPromise})}verifyTransport(){if(!this.pcManager)return!1;let e=this.pcManager.currentState;return![uG.CONNECTING,uG.CONNECTED].includes(e)||!this.client.ws||this.client.ws.readyState===WebSocket.CLOSED?!1:e===uG.CONNECTING&&this.transportConnectingSince!==void 0&&Date.now()-this.transportConnectingSince>this.peerConnectionTimeout?(this.log.warn(`transport stuck in connecting state`,this.logContext),!1):!0}negotiate(){return J(this,void 0,void 0,function*(){return new vB((e,t)=>J(this,void 0,void 0,function*(){if(!this.pcManager){t(new PB(`PC manager is closed`));return}this.pcManager.requirePublisher(),this.pcManager.publisher.getTransceivers().length==0&&!this.dataChannels.hasPublisherChannels&&this.createDataChannels();let n=new AbortController,r=()=>{n.abort(),this.log.debug(`engine disconnected while negotiation was ongoing`),e()};this.isClosed&&t(new PB(`cannot negotiate on closed engine`)),this.on(Z.Closing,r),this.on(Z.Restarting,r),this.pcManager.publisher.off(WW.RTPVideoPayloadTypes,this.onRtpMapAvailable),this.pcManager.publisher.once(WW.RTPVideoPayloadTypes,this.onRtpMapAvailable);try{yield this.pcManager.negotiate(n),e()}catch(r){if(n.signal.aborted){e();return}r instanceof PB&&(this.fullReconnectOnNext=!0),this.handleDisconnect(`negotiation`,_I.RR_UNKNOWN),r instanceof Error?t(r):t(Error(String(r)))}finally{this.off(Z.Closing,r),this.off(Z.Restarting,r)}}))})}dataChannelForKind(e,t){return this.dataChannels.getHandle(e,t)}sendSyncState(e,t,n){if(!this.pcManager){this.log.warn(`sync state cannot be sent without peer connection setup`);return}let r=this.pcManager.publisher.getLocalDescription(),i=this.pcManager.publisher.getRemoteDescription(),a=this.pcManager.subscriber?.getRemoteDescription(),o=this.pcManager.subscriber?.getLocalDescription(),s=this.signalOpts?.autoSubscribe??!0,c=[],l=[];e.forEach(e=>{e.isDesired!==s&&c.push(e.trackSid),e.isEnabled||l.push(e.trackSid)}),this.client.sendSyncState(new hR({answer:this.pcManager.mode===`publisher-only`?i?CW({sdp:i.sdp,type:i.type}):void 0:o?CW({sdp:o.sdp,type:o.type}):void 0,offer:this.pcManager.mode===`publisher-only`?r?CW({sdp:r.sdp,type:r.type}):void 0:a?CW({sdp:a.sdp,type:a.type}):void 0,subscription:new BL({trackSids:c,subscribe:!s,participantTracks:[]}),publishTracks:hV(t),dataChannels:this.dataChannelsInfo(),trackSidsDisabled:l,datachannelReceiveStates:this.reliableReceivedState.map((e,t)=>new gR({publisherSid:t,lastSeq:e})),publishDataTracks:n.map(e=>new DL({info:HU.toProtobuf(e)}))}))}failNext(){this.shouldFailNext=!0}failNextV1Path(){this.shouldFailOnV1Path=!0}dataChannelsInfo(){let e=[],t=(t,n)=>{t?.id!==void 0&&t.id!==null&&e.push(new _R({label:t.label,id:t.id,target:n}))};return t(this.dataChannelForKind(gG.LOSSY),yL.PUBLISHER),t(this.dataChannelForKind(gG.RELIABLE),yL.PUBLISHER),t(this.dataChannelForKind(gG.LOSSY,!0),yL.SUBSCRIBER),t(this.dataChannelForKind(gG.RELIABLE,!0),yL.SUBSCRIBER),e}clearReconnectTimeout(){this.reconnectTimeout&&HB.clearTimeout(this.reconnectTimeout)}clearPendingReconnect(){this.clearReconnectTimeout(),this.reconnectAttempts=0}registerOnLineListener(){$V()&&(window.addEventListener(`online`,this.handleBrowserOnLine),window.addEventListener(`offline`,this.handleBrowserOffline))}deregisterOnLineListener(){$V()&&(window.removeEventListener(`online`,this.handleBrowserOnLine),window.removeEventListener(`offline`,this.handleBrowserOffline))}getTrackIdForReceiver(e){let t=this.pcManager?.getMidForReceiver(e);if(t){let e=Object.entries(this.midToTrackId).find(e=>zP(e,1)[0]===t);if(e)return e[1]}}};function pK(e,t){let n=e.participantIdentity?e.participantIdentity:t.participantIdentity;e.participantIdentity=n,t.participantIdentity=n;let r=e.destinationIdentities.length===0?t.destinationIdentities:e.destinationIdentities;e.destinationIdentities=r,t.destinationIdentities=r}var mK=VR(zR.Region),hK=5e3,gK=3e4,_K=class e{static fetchRegionSettings(t,n,r){return J(this,void 0,void 0,function*(){let i=yield e.fetchLock.lock();try{let e=yield fetch(`${vK(t)}/regions`,{headers:{authorization:`Bearer ${n}`},signal:r});if(e.ok){let t=zH(e.headers),n=t?t*1e3:hK;return{regionSettings:yield e.json(),updatedAtInMs:Date.now(),maxAgeInMs:n}}throw e.status===401?kB.notAllowed(`Could not fetch region settings: ${e.statusText}`,e.status):kB.internal(`Could not fetch region settings: ${e.statusText}`)}catch(e){throw e instanceof kB?e:r?.aborted?kB.cancelled(`Region fetching was aborted`):kB.serverUnreachable(`Could not fetch region settings, ${e instanceof Error?`${e.name}: ${e.message}`:e}`)}finally{i()}})}static scheduleRefetch(t,n,r){return J(this,void 0,void 0,function*(){let i=e.settingsTimeouts.get(t.hostname);clearTimeout(i),e.settingsTimeouts.set(t.hostname,setTimeout(()=>J(this,void 0,void 0,function*(){try{let r=yield e.fetchRegionSettings(t,n);e.updateCachedRegionSettings(t,n,r)}catch(i){if(i instanceof kB&&i.reason===OB.NotAllowed){mK.debug(`token is not valid, cancelling auto region refresh`);return}mK.debug(`auto refetching of region settings failed`,{error:i}),e.scheduleRefetch(t,n,r)}}),r))})}static updateCachedRegionSettings(t,n,r){e.cache.set(t.hostname,r),e.scheduleRefetch(t,n,r.maxAgeInMs)}static stopRefetch(t){let n=e.settingsTimeouts.get(t);n&&(clearTimeout(n),e.settingsTimeouts.delete(t))}static scheduleCleanup(t){let n=e.connectionTrackers.get(t);n&&(n.cleanupTimeout&&clearTimeout(n.cleanupTimeout),n.cleanupTimeout=setTimeout(()=>{let n=e.connectionTrackers.get(t);n&&n.connectionCount===0&&(mK.debug(`stopping region refetch after disconnect delay`,{hostname:t}),e.stopRefetch(t)),n&&(n.cleanupTimeout=void 0)},gK))}static cancelCleanup(t){let n=e.connectionTrackers.get(t);n?.cleanupTimeout&&(clearTimeout(n.cleanupTimeout),n.cleanupTimeout=void 0)}notifyConnected(){let t=this.serverUrl.hostname,n=e.connectionTrackers.get(t);n||(n={connectionCount:0},e.connectionTrackers.set(t,n)),n.connectionCount++,e.cancelCleanup(t)}notifyDisconnected(){let t=this.serverUrl.hostname,n=e.connectionTrackers.get(t);n&&(n.connectionCount=Math.max(0,n.connectionCount-1),n.connectionCount===0&&e.scheduleCleanup(t))}constructor(e,t){this.attemptedRegions=[],this.serverUrl=new URL(e),this.token=t}updateToken(t){this.token=t;let n=this.getServerUrl(),r=e.cache.get(n.hostname);e.scheduleRefetch(this.serverUrl,this.token,r?.maxAgeInMs??hK)}isCloud(){return tH(this.serverUrl)}getServerUrl(){return this.serverUrl}fetchRegionSettings(t){return J(this,void 0,void 0,function*(){return e.fetchRegionSettings(this.serverUrl,this.token,t)})}getNextBestRegionUrl(t){return J(this,void 0,void 0,function*(){if(!this.isCloud())throw Error(`region availability is only supported for LiveKit Cloud domains`);let n=e.cache.get(this.serverUrl.hostname);(!n||Date.now()-n.updatedAtInMs>n.maxAgeInMs)&&(n=yield this.fetchRegionSettings(t),e.updateCachedRegionSettings(this.serverUrl,this.token,n));let r=n.regionSettings.regions.filter(e=>!this.attemptedRegions.find(t=>t.url===e.url));if(r.length>0){let e=r[0];return this.attemptedRegions.push(e),mK.info(`switching to region: ${e.region}`,{region:e.region}),e.url}return null})}resetAttempts(){this.attemptedRegions=[]}setServerReportedRegions(t){e.updateCachedRegionSettings(this.serverUrl,this.token,t)}};_K.cache=new Map,_K.settingsTimeouts=new Map,_K.connectionTrackers=new Map,_K.fetchLock=new KN;function vK(e){return`${e.protocol.replace(`ws`,`http`)}//${e.host}/settings`}function yK(){return new CompressionStream(`deflate-raw`)}function bK(){return new DecompressionStream(`deflate-raw`)}function xK(e,t){return J(this,void 0,void 0,function*(){let n=new DecompressionStream(`deflate-raw`),r=n.writable.getWriter();return r.write(e).catch(()=>{}),r.close().catch(()=>{}),SK(n.readable,t)})}function SK(e,t){return J(this,void 0,void 0,function*(){let n=e.getReader(),r=[],i=0;for(;;){let e=yield n.read(),a=e.done,o=e.value;if(a)break;if(r.push(o),i+=o.byteLength,typeof t==`number`&&i>t)throw yield n.cancel(),new zB(`Decompressed payload exceeds the maximum payload size of ${t} bytes`,RB.PayloadTooLarge)}let a=new Uint8Array(i),o=0;for(let e of r)a.set(e,o),o+=e.byteLength;return a})}var CK=15e3,wK=5e9,TK=class{get info(){return this._info}validateBytesReceived(){let e=arguments.length>0&&arguments[0]!==void 0&&arguments[0];if(typeof this.totalByteSize==`number`&&this.totalByteSize!==0){if(e&&this.bytesReceived<this.totalByteSize)throw new zB(`Not enough chunk(s) received - expected ${this.totalByteSize} bytes of data total, only received ${this.bytesReceived} bytes`,RB.Incomplete);if(this.bytesReceived>this.totalByteSize)throw new zB(`Extra chunk(s) received - expected ${this.totalByteSize} bytes of data total, received ${this.bytesReceived} bytes`,RB.LengthExceeded)}}constructor(e,t,n){this.reader=t,this.totalByteSize=n,this._info=e,this.bytesReceived=0}handleChunkReceived(e){var t;this.bytesReceived+=e.content.byteLength,this.validateBytesReceived();let n=this.totalByteSize?this.bytesReceived/this.totalByteSize:void 0;(t=this.onProgress)==null||t.call(this,n)}},EK=class extends TK{[Symbol.asyncIterator](){let e=this.reader.getReader();e.closed.catch(()=>{});let t=()=>{e.releaseLock(),this.signal=void 0};return{next:()=>J(this,void 0,void 0,function*(){var n;try{let t=this.signal;if(t?.aborted)throw t.reason;let r=yield new Promise((n,r)=>{if(t){let i=()=>r(t.reason);t.addEventListener(`abort`,i,{once:!0}),e.read().then(n,r).finally(()=>{t.removeEventListener(`abort`,i)})}else e.read().then(n,r)});return r.done?(this.validateBytesReceived(!0),typeof this.totalByteSize==`number`&&((n=this.onProgress)==null||n.call(this,1)),{done:!0,value:void 0}):(this.handleChunkReceived(r.value),{done:!1,value:r.value.content})}catch(e){throw t(),e}}),return(){return J(this,void 0,void 0,function*(){return t(),{done:!0,value:void 0}})}}}withAbortSignal(e){return this.signal=e,this}readAll(){return J(this,arguments,void 0,function(){var e=this;let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return function*(){var n,r,i,a;let o=new Set,s=t.signal?e.withAbortSignal(t.signal):e;try{for(var c=!0,l=tz(s),u;u=yield l.next(),n=u.done,!n;c=!0){a=u.value,c=!1;let e=a;o.add(e)}}catch(e){r={error:e}}finally{try{!c&&!n&&(i=l.return)&&(yield i.call(l))}finally{if(r)throw r.error}}return Array.from(o)}()})}},DK=class extends TK{[Symbol.asyncIterator](){let e=this.reader.getReader();e.closed.catch(()=>{});let t=new TextDecoder(`utf-8`),n=this.signal,r=()=>{e.releaseLock(),this.signal=void 0};return{next:()=>J(this,void 0,void 0,function*(){var i;try{if(n?.aborted)throw n.reason;let r=yield new Promise((t,r)=>{if(n){let i=()=>r(n.reason);n.addEventListener(`abort`,i,{once:!0}),e.read().then(t,r).finally(()=>{n.removeEventListener(`abort`,i)})}else e.read().then(t,r)});if(r.done)return this.validateBytesReceived(!0),typeof this.totalByteSize==`number`&&((i=this.onProgress)==null||i.call(this,1)),{done:!0,value:void 0};{this.handleChunkReceived(r.value);let e;try{e=t.decode(r.value.content)}catch(e){throw new zB(`Cannot decode datastream chunk ${r.value.chunkIndex} as text: ${e}`,RB.DecodeFailed)}return{done:!1,value:e}}}catch(e){throw r(),e}}),return(){return J(this,void 0,void 0,function*(){return r(),{done:!0,value:void 0}})}}}withAbortSignal(e){return this.signal=e,this}readAll(){return J(this,arguments,void 0,function(){var e=this;let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return function*(){var n,r,i,a;let o=``,s=t.signal?e.withAbortSignal(t.signal):e;try{for(var c=!0,l=tz(s),u;u=yield l.next(),n=u.done,!n;c=!0)a=u.value,c=!1,o+=a}catch(e){r={error:e}}finally{try{!c&&!n&&(i=l.return)&&(yield i.call(l))}finally{if(r)throw r.error}}return o}()})}},OK=class{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:wK;this.log=BR,this.byteStreamControllers=new Map,this.textStreamControllers=new Map,this.byteStreamHandlers=new Map,this.textStreamHandlers=new Map,this.isConnected=!1,this.bufferedPackets=[],this.maxPayloadByteLength=e}setConnected(e){this.isConnected=e,e&&this.flushBufferedPackets()}flushBufferedPackets(){let e=this.bufferedPackets;this.bufferedPackets=[];for(let t of e){let e=t.packet,n=t.encryptionType;this.handleDataStreamPacket(e,n)}}registerTextStreamHandler(e,t){if(this.textStreamHandlers.has(e))throw new zB(`A text stream handler for topic "${e}" has already been set.`,RB.HandlerAlreadyRegistered);this.textStreamHandlers.set(e,t)}unregisterTextStreamHandler(e){this.textStreamHandlers.delete(e)}registerByteStreamHandler(e,t){if(this.byteStreamHandlers.has(e))throw new zB(`A byte stream handler for topic "${e}" has already been set.`,RB.HandlerAlreadyRegistered);this.byteStreamHandlers.set(e,t)}unregisterByteStreamHandler(e){this.byteStreamHandlers.delete(e)}clearControllers(){this.byteStreamControllers.clear(),this.textStreamControllers.clear(),this.bufferedPackets=[]}validateParticipantHasNoActiveDataStreams(e){let t=Array.from(this.textStreamControllers.entries()).filter(t=>t[1].sendingParticipantIdentity===e),n=Array.from(this.byteStreamControllers.entries()).filter(t=>t[1].sendingParticipantIdentity===e);if(t.length>0||n.length>0){let a=new zB(`Participant ${e} unexpectedly disconnected in the middle of sending data`,RB.AbnormalEnd);for(let e of n){var r=zP(e,2);let t=r[0];r[1].controller.error(a),this.byteStreamControllers.delete(t)}for(let e of t){var i=zP(e,2);let t=i[0];i[1].controller.error(a),this.textStreamControllers.delete(t)}}}handleDataStreamPacket(e,t){if(!this.isConnected){this.bufferedPackets.push({packet:e,encryptionType:t});return}switch(e.value.case){case`streamHeader`:return this.handleStreamHeader(e.value.value,e.participantIdentity,t);case`streamChunk`:return this.handleStreamChunk(e.value.value,t);case`streamTrailer`:return this.handleStreamTrailer(e.value.value,t);default:throw Error(`DataPacket of value "${e.value.case}" is not data stream related!`)}}handleStreamHeader(e,t,n){switch(e.contentHeader.case){case`byteHeader`:{let r=this.byteStreamHandlers.get(e.topic);if(!r){this.log.debug(`ignoring incoming byte stream due to no handler for topic`,e.topic);return}let i,a={id:e.streamId,name:e.contentHeader.value.name??`unknown`,mimeType:e.mimeType,size:e.totalLength?Number(e.totalLength):void 0,topic:e.topic,timestamp:TH(e.timestamp),attributes:e.attributes,encryptionType:n},o;switch(e.compression){case fL.DEFLATE_RAW:if(!BH()){BR.warn(`Data stream ${e.streamId} received with deflate-raw compression, but this browser does not have support for DecompressionStream. Dropping...`);return}o=!0;break;case fL.NONE:o=!1;break;default:BR.warn(`Data stream ${e.streamId} received with unknown compression type ${e.compression}, dropping...`);return}let s=e.inlineContent;if(s!==void 0){r(new EK(a,kK(e.streamId,o?xK(s,this.maxPayloadByteLength):s),TH(e.totalLength)),{identity:t});return}let c=new ReadableStream({start:n=>{if(i=n,this.byteStreamControllers.has(e.streamId))throw new zB(`A data stream read is already in progress for a stream with id ${e.streamId}.`,RB.AlreadyOpened);this.byteStreamControllers.set(e.streamId,{info:a,controller:i,startTime:Date.now(),sendingParticipantIdentity:t})}});r(new EK(a,o?PK(c,e.streamId,this.maxPayloadByteLength):c.pipeThrough(AK(e.streamId)),TH(e.totalLength)),{identity:t});return}case`textHeader`:{let r=this.textStreamHandlers.get(e.topic);if(!r){this.log.debug(`ignoring incoming text stream due to no handler for topic`,e.topic);return}let i,a={id:e.streamId,mimeType:e.mimeType,size:e.totalLength?Number(e.totalLength):void 0,topic:e.topic,timestamp:Number(e.timestamp),attributes:e.attributes,encryptionType:n,attachedStreamIds:e.contentHeader.value.attachedStreamIds},o;switch(e.compression){case fL.DEFLATE_RAW:if(!BH()){BR.warn(`Data stream ${e.streamId} received with deflate-raw compression, but this browser does not have support for DecompressionStream. Dropping...`);return}o=!0;break;case fL.NONE:o=!1;break;default:BR.warn(`Data stream ${e.streamId} received with unknown compression type ${e.compression}, dropping...`);return}let s=e.inlineContent;if(s!==void 0){let n=o?xK(s,this.maxPayloadByteLength):s;r(new DK(a,kK(e.streamId,n),TH(e.totalLength)),{identity:t});return}let c=new ReadableStream({start:n=>{if(i=n,this.textStreamControllers.has(e.streamId))throw new zB(`A data stream read is already in progress for a stream with id ${e.streamId}.`,RB.AlreadyOpened);this.textStreamControllers.set(e.streamId,{info:a,controller:i,startTime:Date.now(),sendingParticipantIdentity:t})}});r(new DK(a,o?FK(c,e.streamId,this.maxPayloadByteLength):c.pipeThrough(AK(e.streamId)),TH(e.totalLength)),{identity:t});return}}}handleStreamChunk(e,t){let n=this.byteStreamControllers.get(e.streamId);n&&(n.info.encryptionType===t?n.controller.enqueue(e):(n.controller.error(new zB(`Encryption type mismatch for stream ${e.streamId}. Expected ${t}, got ${n.info.encryptionType}`,RB.EncryptionTypeMismatch)),this.byteStreamControllers.delete(e.streamId)));let r=this.textStreamControllers.get(e.streamId);r&&(r.info.encryptionType===t?r.controller.enqueue(e):(r.controller.error(new zB(`Encryption type mismatch for stream ${e.streamId}. Expected ${t}, got ${r.info.encryptionType}`,RB.EncryptionTypeMismatch)),this.textStreamControllers.delete(e.streamId)))}handleStreamTrailer(e,t){let n=this.textStreamControllers.get(e.streamId);n&&(n.info.encryptionType===t?(n.info.attributes=Object.assign(Object.assign({},n.info.attributes),e.attributes),e.reason?n.controller.error(new zB(`Data stream ${e.streamId} closed abnormally: ${e.reason}`,RB.AbnormalEnd)):n.controller.close()):n.controller.error(new zB(`Encryption type mismatch for stream ${e.streamId}. Expected ${t}, got ${n.info.encryptionType}`,RB.EncryptionTypeMismatch)),this.textStreamControllers.delete(e.streamId));let r=this.byteStreamControllers.get(e.streamId);r&&(r.info.encryptionType===t?(r.info.attributes=Object.assign(Object.assign({},r.info.attributes),e.attributes),e.reason?r.controller.error(new zB(`Data stream ${e.streamId} closed abnormally: ${e.reason}`,RB.AbnormalEnd)):r.controller.close()):r.controller.error(new zB(`Encryption type mismatch for stream ${e.streamId}. Expected ${t}, got ${r.info.encryptionType}`,RB.EncryptionTypeMismatch)),this.byteStreamControllers.delete(e.streamId))}};function kK(e,t){return new ReadableStream({start:n=>J(this,void 0,void 0,function*(){let r=yield t;n.enqueue(new gL({streamId:e,chunkIndex:BigInt(0),content:r})),n.close()})})}function AK(e){let t=-1;return new TransformStream({transform:(n,r)=>{let i=TH(n.chunkIndex);if(i<=t){BR.warn(`ignoring duplicate chunk ${i} ${n.version>0?`(version ${n.version})`:``} for data stream ${e} (last processed: ${t})`);return}if(i>t+1)throw new zB(`Missing chunk(s) ${t+1}..${i-1} for data stream ${e} - cannot reassemble payload`,RB.Incomplete);t=i,n.content.length!==0&&r.enqueue(n)}})}function jK(){return new TransformStream({transform:(e,t)=>{t.enqueue(e.content)}})}function MK(e){let t=0;return new TransformStream({transform:(n,r)=>{n.byteLength>0&&(r.enqueue(new gL({streamId:e,chunkIndex:EH(t),content:n})),t+=1)}})}function NK(e){let t=new TextDecoder(`utf-8`),n=new TextEncoder,r=0,i=n=>{try{return n?t.decode(n,{stream:!0}):t.decode()}catch(t){throw new zB(`Cannot decode compressed data stream ${e} as text: ${t}`,RB.DecodeFailed)}};return new TransformStream({transform:(t,a)=>{let o=i(t);o.length>0&&(a.enqueue(new gL({streamId:e,chunkIndex:EH(r),content:n.encode(o)})),r+=1)},flush:t=>{let a=i();a.length>0&&(t.enqueue(new gL({streamId:e,chunkIndex:EH(r),content:n.encode(a)})),r+=1)}})}function PK(e,t,n){return e.pipeThrough(AK(t)).pipeThrough(jK()).pipeThrough(bK()).pipeThrough(IK(t,n)).pipeThrough(MK(t))}function FK(e,t,n){return e.pipeThrough(AK(t)).pipeThrough(jK()).pipeThrough(bK()).pipeThrough(IK(t,n)).pipeThrough(NK(t))}function IK(e,t){let n=0;return new TransformStream({transform:(r,i)=>{if(n+=r.byteLength,n>t)throw new zB(`Data stream ${e} exceeds the maximum payload size of ${t} bytes`,RB.PayloadTooLarge);i.enqueue(r)}})}var LK=class{constructor(e,t,n){this.writableStream=e,this.defaultWriter=e.getWriter(),this.onClose=n,this.info=t}write(e){return this.defaultWriter.write(e)}close(){return J(this,void 0,void 0,function*(){var e;yield this.defaultWriter.close(),this.defaultWriter.releaseLock(),(e=this.onClose)==null||e.call(this)})}},RK=class extends LK{},zK=class extends LK{};function BK(e,t,n){return new hL({streamId:e.id,mimeType:e.mimeType,topic:e.topic,timestamp:EH(e.timestamp),totalLength:EH(e.size),attributes:e.attributes,compression:n?.compression??fL.NONE,inlineContent:n?.inlineContent,contentHeader:{case:`textHeader`,value:new pL({version:t?.version,attachedStreamIds:e.attachedStreamIds,replyToStreamId:t?.replyToStreamId,operationType:t?.type===`update`?dL.UPDATE:dL.CREATE})}})}function VK(e,t){return new hL({streamId:e.id,mimeType:e.mimeType,topic:e.topic,timestamp:EH(e.timestamp),totalLength:EH(e.size),attributes:e.attributes,compression:t?.compression??fL.NONE,inlineContent:t?.inlineContent,contentHeader:{case:`byteHeader`,value:new mL({name:e.name})}})}function HK(e,t){return new HI({destinationIdentities:t,value:{case:`streamHeader`,value:e}})}var UK=new TextEncoder,WK=class{constructor(e,t,n,r,i){this.engine=e,this.log=t,this.getRemoteParticipantClientProtocol=n,this.getRemoteParticipantCapabilities=r,this.getAllRemoteParticipantIdentities=i}setupEngine(e){this.engine=e}sendText(e,t){return J(this,void 0,void 0,function*(){var n;let r=crypto.randomUUID(),i=UK.encode(e),a=i.byteLength,o=t?.compress??!0,s={id:r,mimeType:`text/plain`,timestamp:Date.now(),topic:t?.topic??``,size:a,attributes:t?.attributes,encryptionType:this.engine.e2eeManager?.isDataChannelEncryptionEnabled?OI.GCM:OI.NONE},c=o&&BH()&&this.allRecipientsSupportV2(t?.destinationIdentities)&&this.allRecipientsSupportCompression(t?.destinationIdentities)?GK.fromStream(LH(i).pipeThrough(yK())):null;if((!t?.attachments||t.attachments.length===0)&&this.allRecipientsSupportV2(t?.destinationIdentities)){let e=i,r=fL.NONE;if(c){let t=yield c.collect();t.byteLength<i.byteLength&&(e=t,r=fL.DEFLATE_RAW)}let a=HK(BK(s,void 0,{compression:r,inlineContent:e}),t?.destinationIdentities);if(a.toBinary().byteLength<=CK)return yield this.engine.sendDataPacket(a,gG.RELIABLE),(n=t?.onProgress)==null||n.call(t,1),s}let l=(t?.attachments)?.map(()=>crypto.randomUUID()),u=l?l.length+1:1,d=Array(u).fill(0),f=(e,n)=>{var r;d[n]=e,(r=t?.onProgress)==null||r.call(t,d.reduce((e,t)=>e+t,0)/u)};if(c){s.attachedStreamIds=l;let e=HK(BK(s,void 0,{compression:fL.DEFLATE_RAW}),t?.destinationIdentities);yield this.sendChunkedByteStream(e,r,t?.destinationIdentities,c.stream().pipeThrough(KK(i.length,e=>f(e,0)))),i.length===0&&f(1,0)}else{let n=yield this.streamText({streamId:r,totalSize:a,destinationIdentities:t?.destinationIdentities,topic:t?.topic,attachedStreamIds:l,attributes:t?.attributes});yield n.write(e),f(1,0),yield n.close(),s=n.info}return t?.attachments&&l&&(yield Promise.all(t.attachments.map((e,n)=>J(this,void 0,void 0,function*(){return this._sendFile(l[n],e,{topic:t.topic,mimeType:e.type,destinationIdentities:t.destinationIdentities,compress:t.compress,onProgress:e=>{f(e,n+1)}})})))),s})}sendBytes(e,t){return J(this,void 0,void 0,function*(){var n,r;let i=crypto.randomUUID(),a=t?.destinationIdentities,o=t?.compress??!0,s={id:i,name:t?.name??`unknown`,mimeType:t?.mimeType??`application/octet-stream`,timestamp:Date.now(),topic:t?.topic??``,size:e.byteLength,attributes:t?.attributes,encryptionType:this.engine.e2eeManager?.isDataChannelEncryptionEnabled?OI.GCM:OI.NONE},c=KK(e.length,t?.onProgress),l=o&&BH()&&this.allRecipientsSupportV2(a)&&this.allRecipientsSupportCompression(a)?GK.fromStream(LH(e).pipeThrough(c).pipeThrough(yK())):null;if(this.allRecipientsSupportV2(a)){let r=e,i=fL.NONE;if(l){let t=yield l.collect();t.byteLength<e.byteLength&&(r=t,i=fL.DEFLATE_RAW)}let o=HK(VK(s,{compression:i,inlineContent:r}),a);if(o.toBinary().byteLength<=CK)return yield this.engine.sendDataPacket(o,gG.RELIABLE),(n=t?.onProgress)==null||n.call(t,1),s}let u=HK(VK(s,{compression:l?fL.DEFLATE_RAW:fL.NONE}),a),d=l?l.stream():LH(e).pipeThrough(c);return yield this.sendChunkedByteStream(u,i,a,d),e.length===0&&((r=t?.onProgress)==null||r.call(t,1)),s})}allRecipientsSupportV2(e){return(e&&e.length>0?e:this.getAllRemoteParticipantIdentities()).every(e=>this.getRemoteParticipantClientProtocol(e)>=2)}allRecipientsSupportCompression(e){return(e&&e.length>0?e:this.getAllRemoteParticipantIdentities()).every(e=>this.getRemoteParticipantCapabilities(e).includes(oL.CAP_COMPRESSION_DEFLATE_RAW))}sendChunkedByteStream(e,t,n,r){return J(this,void 0,void 0,function*(){var i,a,o,s;let c=this.engine;yield qK(c,e);let l=0;try{for(var u=!0,d=tz(RH(r,CK)),f;f=yield d.next(),i=f.done,!i;u=!0){s=f.value,u=!1;let e=new HI({destinationIdentities:n,value:{case:`streamChunk`,value:new gL({content:s,streamId:t,chunkIndex:EH(l)})}});yield c.sendDataPacket(e,gG.RELIABLE),l+=1}}catch(e){a={error:e}}finally{try{!u&&!i&&(o=d.return)&&(yield o.call(d))}finally{if(a)throw a.error}}yield JK(t,n,c)})}streamText(e){return J(this,void 0,void 0,function*(){let t=e?.streamId??crypto.randomUUID(),n=e?.destinationIdentities,r={id:t,mimeType:`text/plain`,timestamp:Date.now(),topic:e?.topic??``,size:e?.totalSize,attributes:e?.attributes,encryptionType:this.engine.e2eeManager?.isDataChannelEncryptionEnabled?OI.GCM:OI.NONE,attachedStreamIds:e?.attachedStreamIds},i=HK(BK(r,e),n);yield qK(this.engine,i);let a=0,o=this.engine,s=new WritableStream({write(e){return J(this,void 0,void 0,function*(){for(let r of IH(e,CK)){let e=new gL({content:r,streamId:t,chunkIndex:EH(a)}),i=new HI({destinationIdentities:n,value:{case:`streamChunk`,value:e}});yield o.sendDataPacket(i,gG.RELIABLE),a+=1}})},close(){return J(this,void 0,void 0,function*(){yield JK(t,n,o)})},abort(e){console.log(`Sink error:`,e)}}),c=()=>J(this,void 0,void 0,function*(){yield l.close()});o.once(Z.Closing,c);let l=new RK(s,r,()=>this.engine.off(Z.Closing,c));return l})}sendFile(e,t){return J(this,void 0,void 0,function*(){let n=crypto.randomUUID();return yield this._sendFile(n,e,t),{id:n}})}_sendFile(e,t,n){return J(this,void 0,void 0,function*(){var r;let i=n?.destinationIdentities,a=(n?.compress??!0)&&BH()&&this.allRecipientsSupportV2(i)&&this.allRecipientsSupportCompression(i),o={id:e,name:t.name,mimeType:n?.mimeType??t.type,topic:n?.topic??``,timestamp:Date.now(),size:t.size,encryptionType:this.engine.e2eeManager?.isDataChannelEncryptionEnabled?OI.GCM:OI.NONE},s=HK(VK(o,{compression:a?fL.DEFLATE_RAW:fL.NONE}),i),c=t.stream().pipeThrough(KK(t.size,n?.onProgress)),l=a?c.pipeThrough(yK()):c;return yield this.sendChunkedByteStream(s,e,i,l),t.size===0&&((r=n?.onProgress)==null||r.call(n,1)),o})}streamBytes(e){return J(this,void 0,void 0,function*(){let t=e?.streamId??crypto.randomUUID(),n=e?.destinationIdentities,r={id:t,mimeType:e?.mimeType??`application/octet-stream`,topic:e?.topic??``,timestamp:Date.now(),attributes:e?.attributes,size:e?.totalSize,name:e?.name??`unknown`,encryptionType:this.engine.e2eeManager?.isDataChannelEncryptionEnabled?OI.GCM:OI.NONE},i=HK(VK(r),n);yield qK(this.engine,i);let a=0,o=new KN,s=this.engine,c=this.log;return new zK(new WritableStream({write(e){return J(this,void 0,void 0,function*(){let r=yield o.lock(),i=0;try{for(;i<e.byteLength;){let r=e.slice(i,i+CK),o=new HI({destinationIdentities:n,value:{case:`streamChunk`,value:new gL({content:r,streamId:t,chunkIndex:EH(a)})}});yield s.sendDataPacket(o,gG.RELIABLE),a+=1,i+=r.byteLength}}finally{r()}})},close(){return J(this,void 0,void 0,function*(){yield JK(t,n,s)})},abort(e){c.error(`Sink error:`,e)}}),r)})}},GK=class e{constructor(e){this.state=e}static fromStream(t){return new e({type:`stream`,stream:t})}collect(){return J(this,void 0,void 0,function*(){switch(this.state.type){case`stream`:let e=yield SK(this.state.stream);return this.state={type:`collected`,bytes:e},e;case`collected`:return this.state.bytes}})}stream(){switch(this.state.type){case`stream`:return this.state.stream;case`collected`:return LH(this.state.bytes)}}};function KK(e,t){let n=0;return new TransformStream({transform(r,i){n+=r.byteLength,t&&typeof e==`number`&&e>0&&t(Math.min(n/e,1)),i.enqueue(r)}})}function qK(e,t){return J(this,void 0,void 0,function*(){if(t.toBinary().byteLength>CK)throw new zB(`data stream header exceeds the ${CK}-byte limit; reduce attribute size`,RB.HeaderTooLarge);yield e.sendDataPacket(t,gG.RELIABLE)})}function JK(e,t,n){return J(this,void 0,void 0,function*(){let r=new HI({destinationIdentities:t,value:{case:`streamTrailer`,value:new _L({streamId:e})}});yield n.sendDataPacket(r,gG.RELIABLE)})}function YK(e){if(e.length===0)return new AbortController().signal;if(e.length===1)return e[0];for(let t of e)if(t.aborted)return t;let t=new AbortController,n=Array(e.length),r=()=>{for(let e of n)e()};return e.forEach((e,i)=>{let a=()=>{t.abort(e.reason),r()};e.addEventListener(`abort`,a),n[i]=()=>e.removeEventListener(`abort`,a)}),t.signal}function XK(e){let t=new AbortController;return setTimeout(()=>{t.abort(new DOMException(`signal timed out after ${e} ms`,`TimeoutError`))},e),t.signal}var ZK=1,QK=2,$K=4,eq=8,tq=0,nq=12,rq=5,iq=7,aq=3,oq=3,sq=2,cq=1,lq=0,uq=3,dq=2,fq=2,pq=1,mq=0,hq;(function(e){e[e.TooShort=0]=`TooShort`,e[e.HeaderOverrun=1]=`HeaderOverrun`,e[e.MissingExtWords=2]=`MissingExtWords`,e[e.UnsupportedVersion=3]=`UnsupportedVersion`,e[e.InvalidHandle=4]=`InvalidHandle`,e[e.MalformedExt=5]=`MalformedExt`})(hq||={});var gq=class e extends DB{constructor(e,t,n){super(19,e,n),this.name=`DataTrackDeserializeError`,this.reason=t,this.reasonName=hq[t]}static tooShort(){return new e(`Too short to contain a valid header`,hq.TooShort)}static headerOverrun(){return new e(`Header exceeds total packet length`,hq.HeaderOverrun)}static missingExtWords(){return new e(`Extension word indicator is missing`,hq.MissingExtWords)}static unsupportedVersion(t){return new e(`Unsupported version ${t}`,hq.UnsupportedVersion)}static invalidHandle(t){return new e(`invalid track handle: ${t.message}`,hq.InvalidHandle,{cause:t})}static malformedExt(t){return new e(`Extension with tag ${t} is malformed`,hq.MalformedExt)}},_q;(function(e){e[e.TooSmallForHeader=0]=`TooSmallForHeader`,e[e.TooSmallForPayload=1]=`TooSmallForPayload`})(_q||={});var vq=class e extends DB{constructor(e,t,n){super(19,e,n),this.name=`DataTrackSerializeError`,this.reason=t,this.reasonName=_q[t]}static tooSmallForHeader(){return new e(`Buffer cannot fit header`,_q.TooSmallForHeader)}static tooSmallForPayload(){return new e(`Buffer cannot fit payload`,_q.TooSmallForPayload)}},yq=class{toBinary(){let e=this.toBinaryLengthBytes(),t=new ArrayBuffer(e),n=new DataView(t),r=this.toBinaryInto(n);if(e!==r)throw Error(`${this.constructor.name}.toBinary: written bytes (${r} bytes) not equal to allocated array buffer length (${e} bytes).`);return new Uint8Array(t)}},bq;(function(e){e[e.UserTimestamp=2]=`UserTimestamp`,e[e.E2ee=1]=`E2ee`})(bq||={});var xq=class extends yq{},Sq=class e extends xq{constructor(e){super(),this.timestamp=e}toBinaryLengthBytes(){return 2+e.lengthBytes}toBinaryInto(t){let n=0;t.setUint8(n,e.tag),n+=ZK,t.setUint8(n,e.lengthBytes),n+=ZK,t.setBigUint64(n,this.timestamp),n+=eq;let r=this.toBinaryLengthBytes();if(n!==r)throw Error(`DataTrackUserTimestampExtension.toBinaryInto: Wrote ${n} bytes but expected length was ${r} bytes`);return n}toJSON(){return{tag:e.tag,lengthBytes:e.lengthBytes,timestamp:this.timestamp}}};Sq.tag=bq.UserTimestamp,Sq.lengthBytes=8;var Cq=class e extends xq{constructor(e,t){super(),this.keyIndex=e,this.iv=t}toBinaryLengthBytes(){return 2+e.lengthBytes}toBinaryInto(t){let n=0;t.setUint8(n,e.tag),n+=ZK,t.setUint8(n,e.lengthBytes),n+=ZK,t.setUint8(n,this.keyIndex),n+=ZK;for(let e=0;e<this.iv.length;e+=1)t.setUint8(n,this.iv[e]),n+=ZK;let r=this.toBinaryLengthBytes();if(n!==r)throw Error(`DataTrackE2eeExtension.toBinaryInto: Wrote ${n} bytes but expected length was ${r} bytes`);return n}toJSON(){return{tag:e.tag,lengthBytes:e.lengthBytes,keyIndex:this.keyIndex,iv:this.iv}}};Cq.tag=bq.E2ee,Cq.lengthBytes=13;var wq=class e extends yq{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};super(),this.userTimestamp=e.userTimestamp,this.e2ee=e.e2ee}toBinaryLengthBytes(){let e=0;return this.userTimestamp&&(e+=this.userTimestamp.toBinaryLengthBytes()),this.e2ee&&(e+=this.e2ee.toBinaryLengthBytes()),e}toBinaryInto(e){let t=0;if(this.e2ee){let n=this.e2ee.toBinaryInto(e);t+=n}if(this.userTimestamp){let n=this.userTimestamp.toBinaryInto(new DataView(e.buffer,e.byteOffset+t));t+=n}let n=this.toBinaryLengthBytes();if(t!==n)throw Error(`DataTrackExtensions.toBinaryInto: Wrote ${t} bytes but expected length was ${n} bytes`);return t}static fromBinary(t){let n=LU(t),r,i,a=0;for(;n.byteLength-a>=2;){let e=n.getUint8(a);a+=ZK;let t=n.getUint8(a);if(a+=ZK,e!==mq)switch(e){case bq.UserTimestamp:if(n.byteLength-a<Sq.lengthBytes)throw gq.malformedExt(e);r=new Sq(n.getBigUint64(a)),a+=t;break;case bq.E2ee:if(n.byteLength-a<Cq.lengthBytes)throw gq.malformedExt(e);let o=n.getUint8(a),s=new Uint8Array(12);for(let e=0;e<s.length;e+=1){let t=a;t+=ZK,t+=e*ZK,s[e]=n.getUint8(t)}i=new Cq(o,s),a+=t;break;default:if(n.byteLength-a<t)throw gq.malformedExt(e);a+=t}}return[new e({userTimestamp:r,e2ee:i}),n.byteLength]}toJSON(){return{userTimestamp:this.userTimestamp?.toJSON()??null,e2ee:this.e2ee?.toJSON()??null}}},Tq={from(e){return{payload:e.payload,extensions:new wq({userTimestamp:e.userTimestamp?new Sq(e.userTimestamp):void 0})}},lossyIntoFrame(e){return{payload:e.payload,userTimestamp:e.extensions.userTimestamp?.timestamp}}},Eq=Symbol.for(`lk.track`),Dq=Symbol.for(`lk.data-track`),Oq=class{constructor(e,t,n){this.trackSymbol=Eq,this.isLocal=!1,this.typeSymbol=Dq,this.info=e,this.manager=t,this.publisherIdentity=n.publisherIdentity}subscribe(e){try{let t=zP(this.manager.openSubscriptionStream(this.info.sid,e?.signal,e?.bufferSize),2),n=t[0];return t[1].catch(()=>{}),n}catch(e){throw e}}setPipelineOptions(e){this.manager.setPipelineOptions(this.info.sid,e)}},kq=class e extends yq{constructor(e){super(),this.marker=e.marker,this.trackHandle=e.trackHandle,this.sequence=e.sequence,this.frameNumber=e.frameNumber,this.timestamp=e.timestamp,this.extensions=e.extensions??new wq}extensionsMetrics(){let e=this.extensions.toBinaryLengthBytes(),t=Math.ceil((dq+e)/4);return{lengthBytes:e,lengthWords:t,paddingLengthBytes:t*4-dq-e}}toBinaryLengthBytes(){let e=this.extensionsMetrics(),t=e.lengthBytes,n=e.paddingLengthBytes,r=nq;return t>0&&(r+=dq+t+n),r}toBinaryInto(e){if(e.byteLength<this.toBinaryLengthBytes())throw vq.tooSmallForHeader();let t=0,n;switch(this.marker){case Aq.Inter:n=lq;break;case Aq.Final:n=cq;break;case Aq.Start:n=sq;break;case Aq.Single:n=uq}t|=n<<aq;let r=this.extensionsMetrics(),i=r.lengthBytes,a=r.lengthWords,o=r.paddingLengthBytes;i>0&&(t|=4);let s=0;if(e.setUint8(s,t),s+=ZK,e.setUint8(s,0),s+=ZK,e.setUint16(s,this.trackHandle),s+=QK,e.setUint16(s,this.sequence.value),s+=QK,e.setUint16(s,this.frameNumber.value),s+=QK,e.setUint32(s,this.timestamp.asTicks()),s+=$K,i>0){let t=a-1;e.setUint16(s,t),s+=QK;let n=this.extensions.toBinaryInto(new DataView(e.buffer,e.byteOffset+s));s+=n;for(let t=0;t<o;t+=1)e.setUint8(s,0),s+=ZK}let c=this.toBinaryLengthBytes();if(s!==c)throw Error(`DataTrackPacketHeader.toBinaryInto: Wrote ${s} bytes but expected length was ${c} bytes`);return c}static fromBinary(t){let n=LU(t);if(n.byteLength<nq)throw gq.tooShort();let r=0,i=n.getUint8(r);r+=ZK;let a=i>>rq&iq;if(a>tq)throw gq.unsupportedVersion(a);let o;switch(i>>aq&oq){case sq:o=Aq.Start;break;case cq:o=Aq.Final;break;case uq:o=Aq.Single;break;case lq:default:o=Aq.Inter}let s=(i>>fq&pq)>0;r+=ZK;let c;try{c=BU.fromNumber(n.getUint16(r))}catch(e){throw e instanceof zU&&(e.isReason(RU.Reserved)||e.isReason(RU.TooLarge))?gq.invalidHandle(e):e}r+=QK;let l=PU.u16(n.getUint16(r));r+=QK;let u=PU.u16(n.getUint16(r));r+=QK;let d=FU.fromRtpTicks(n.getUint32(r));r+=$K;let f=new wq;if(s){if(n.byteLength-r<QK)throw gq.missingExtWords();let e=n.getUint16(r);r+=QK;let t=4*(e+1)-dq;if(r+t>n.byteLength)throw gq.headerOverrun();let i=new DataView(n.buffer,n.byteOffset+r,t),a=zP(wq.fromBinary(i),2),o=a[0],s=a[1];f=o,r+=s}return[new e({marker:o,trackHandle:c,sequence:l,frameNumber:u,timestamp:d,extensions:f}),r]}toJSON(){return{marker:this.marker,trackHandle:this.trackHandle,sequence:this.sequence.value,frameNumber:this.frameNumber.value,timestamp:this.timestamp.asTicks(),extensions:this.extensions.toJSON()}}},Aq;(function(e){e[e.Start=0]=`Start`,e[e.Inter=1]=`Inter`,e[e.Final=2]=`Final`,e[e.Single=3]=`Single`})(Aq||={});var jq=class e extends yq{constructor(e,t){super(),this.header=e,this.payload=t}toBinaryLengthBytes(){return this.header.toBinaryLengthBytes()+this.payload.byteLength}toBinaryInto(e){let t=0,n=this.header.toBinaryInto(e);if(t+=n,e.byteLength-t<this.payload.byteLength)throw vq.tooSmallForPayload();for(let n=0;n<this.payload.length;n+=1)e.setUint8(t,this.payload[n]),t+=ZK;let r=this.toBinaryLengthBytes();if(t!==r)throw Error(`DataTrackPacket.toBinaryInto: Wrote ${t} bytes but expected length was ${r} bytes`);return r}static fromBinary(t){let n=LU(t),r=zP(kq.fromBinary(n),2),i=r[0],a=r[1],o=n.buffer.slice(n.byteOffset+a,n.byteOffset+n.byteLength);return[new e(i,new Uint8Array(o)),n.byteLength]}toJSON(){return{header:this.header.toJSON(),payload:this.payload}}},Mq=VR(zR.DataTracks),Nq=class e extends DB{constructor(e,t,n,r){super(19,`Frame ${n} dropped: ${e}`,r),this.name=`DataTrackDepacketizerDropError`,this.reason=t,this.reasonName=Pq[t],this.frameNumber=n}static interrupted(t,n){return new e(`Interrupted by the start of a new frame ${n}`,Pq.Interrupted,t)}static unknownFrame(t){return new e(`Initial packet was never received.`,Pq.UnknownFrame,t)}static bufferFull(t){return new e(`Reorder buffer is full.`,Pq.BufferFull,t)}static incomplete(t,n,r){return new e(`Not all packets received before final packet. Received ${n} packets, expected ${r} packets.`,Pq.Incomplete,t)}},Pq;(function(e){e[e.Interrupted=0]=`Interrupted`,e[e.UnknownFrame=1]=`UnknownFrame`,e[e.BufferFull=2]=`BufferFull`,e[e.Incomplete=3]=`Incomplete`})(Pq||={});var Fq=class e{constructor(){this.partials=new Map}push(e,t){switch(e.header.marker){case Aq.Single:return this.frameFromSingle(e,t);case Aq.Start:return this.beginPartial(e,t);case Aq.Inter:case Aq.Final:return this.pushToPartial(e)}}reset(){this.partials.clear()}peekOldestPartialFrameNumber(){let e=this.partials.keys().next();return e.done?null:e.value}frameFromSingle(e,t){if(e.header.marker!==Aq.Single)throw Error(`Depacketizer.frameFromSingle: packet.header.marker was not FrameMarker.Single, found ${e.header.marker}.`);let n=t?.maxPartialFrames??1;if(this.partials.size>=n){let n=this.peekOldestPartialFrameNumber();if(typeof n!=`number`)throw Error(`Depacketizer.frameFromSingle: no oldest frame number found, but partials.size is ${this.partials.size}.`);if(this.partials.delete(n),t?.throwOnInterruption)throw Nq.interrupted(n,e.header.frameNumber.value);Mq.warn(`Data track frame ${n} was interrupted by single-packet frame ${e.header.frameNumber.value}, dropping.`)}return{payload:e.payload,extensions:e.header.extensions}}beginPartial(e,t){if(e.header.marker!==Aq.Start)throw Error(`Depacketizer.beginPartial: packet.header.marker was not FrameMarker.Start, found ${e.header.marker}.`);let n=e.header.sequence,r=e.header.frameNumber.value,i={startSequence:n,extensions:e.header.extensions,payloads:new Map([[n.value,e.payload]])},a=t?.maxPartialFrames??1;for(;this.partials.size>=a;){let e=this.peekOldestPartialFrameNumber();if(typeof e!=`number`)break;if(this.partials.delete(e),t?.throwOnInterruption)throw Nq.interrupted(e,r);Mq.warn(`Data track partials full (max ${a}), evicted oldest frame ${e} to make room for new frame ${r}.`)}return this.partials.set(r,i),null}pushToPartial(t){if(t.header.marker!==Aq.Inter&&t.header.marker!==Aq.Final)throw Error(`Depacketizer.pushToPartial: packet.header.marker was not FrameMarker.Inter or FrameMarker.Final, found ${t.header.marker}.`);let n=t.header.frameNumber.value,r=this.partials.get(n);if(!r)throw this.partials.delete(n),Nq.unknownFrame(n);if(r.payloads.size>=e.MAX_BUFFER_PACKETS)throw this.partials.delete(n),Nq.bufferFull(n);return r.payloads.has(t.header.sequence.value)&&Mq.warn(`Data track frame ${n} received duplicate packet for sequence ${t.header.sequence.value}, so replacing with newly received packet.`),r.payloads.set(t.header.sequence.value,t.payload),t.header.marker===Aq.Final?this.finalize(n,r,t.header.sequence.value):null}finalize(e,t,n){let r=t.payloads.size,i=0;for(let e of t.payloads.values())i+=e.length;let a=new Uint8Array(i),o=t.startSequence.clone(),s=0;for(;;){let r=t.payloads.get(o.value);if(!r)break;t.payloads.delete(o.value);let i=a.length-s;if(r.length>i)throw Error(`Depacketizer.finalize: Expected at least ${r.length} more bytes left in the payload buffer, only got ${i} bytes.`);if(a.set(r,s),s+=r.length,o.value!=n){o.increment();continue}return this.partials.delete(e),{payload:a,extensions:t.extensions}}throw this.partials.delete(e),Nq.incomplete(e,r,n-t.startSequence.value+1)}};Fq.MAX_BUFFER_PACKETS=128;var Iq;(function(e){e[e.Unpublished=0]=`Unpublished`,e[e.Timeout=1]=`Timeout`,e[e.Disconnected=2]=`Disconnected`,e[e.Cancelled=4]=`Cancelled`})(Iq||={});var Lq=class e extends DB{constructor(e,t,n){super(22,e,n),this.name=`DataTrackSubscribeError`,this.reason=t,this.reasonName=Iq[t]}static unpublished(){return new e(`The track has been unpublished and is no longer available`,Iq.Unpublished)}static timeout(){return new e(`Request to subscribe to data track timed-out`,Iq.Timeout)}static disconnected(){return new e(`Cannot subscribe to data track when disconnected`,Iq.Disconnected)}static cancelled(){return new e(`Subscription to data track cancelled by caller`,Iq.Cancelled)}},Rq=VR(zR.DataTracks),zq=class{constructor(e){let t=e.e2eeManager!==null;if(e.info.usesE2ee!==t)throw Error(`IncomingDataTrackPipeline: DataTrackInfo.usesE2ee must match presence of decryptionProvider`);let n=new Fq;this.publisherIdentity=e.publisherIdentity,this.e2eeManager=e.e2eeManager??null,this.depacketizer=n,this.options=e.pipelineOptions??{}}updateE2eeManager(e){this.e2eeManager=e}setOptions(e){this.options=e}processPacket(e){return J(this,void 0,void 0,function*(){let t=this.depacketize(e);return t&&(yield this.decryptIfNeeded(t))||null})}depacketize(e){let t;try{t=this.depacketizer.push(e,{throwOnInterruption:!1,maxPartialFrames:this.options.maxPartialFrames})}catch(e){return Rq.warn(`Data frame depacketize error: ${e}`),null}return t}decryptIfNeeded(e){return J(this,void 0,void 0,function*(){let t=this.e2eeManager;if(!t)return e;let n=e.extensions?.e2ee??null;if(!n)return Rq.error(`Missing E2EE meta`),null;let r;try{r=yield t.handleEncryptedData(e.payload,n.iv,this.publisherIdentity,n.keyIndex)}catch(e){return Rq.error(`Error decrypting packet: ${e}`),null}return e.payload=r.payload,e})}},Bq=VR(zR.DataTracks),Vq=1e4,Hq=16,Uq=class extends az.EventEmitter{constructor(e){super(),this.descriptors=new Map,this.subscriptionHandles=new Map,this.e2eeManager=e?.e2eeManager??null}updateE2eeManager(e){this.e2eeManager=e;for(let t of this.descriptors.values())t.subscription.type===`active`&&t.subscription.pipeline.updateE2eeManager(e)}setPipelineOptions(e,t){let n=this.descriptors.get(e);if(!n){Bq.warn(`Unknown track ${e}, cannot set pipeline options.`);return}n.pipelineOptions=t,n.subscription.type===`active`&&n.subscription.pipeline.setOptions(t)}openSubscriptionStream(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Hq,r=null,i=new _H,a=this.descriptors.get(e),o=()=>{t?.removeEventListener(`abort`,c)},s=()=>{if(o(),!r){Bq.warn(`ReadableStream subscribed to ${e} was not started.`);return}if(!a||this.descriptors.get(a.info.sid)!==a){Bq.warn(`Unknown track ${e}, skipping cancel...`);return}if(a.subscription.type!==`active`){Bq.warn(`Subscription for track ${e} is not active, skipping cancel...`);return}a.subscription.streamControllers.delete(r),a.subscription.streamControllers.size===0&&this.unSubscribeRequest(a.info.sid)},c=()=>{var e;r&&(a?.subscription.type===`active`&&a.subscription.streamControllers.delete(r),r.error(Lq.cancelled()),(e=i.reject)==null||e.call(i,Lq.cancelled()),s())};return[new ReadableStream({start:n=>{r=n,this.subscribeRequest(e,t).then(()=>J(this,void 0,void 0,function*(){var r,s,l;if(!a||this.descriptors.get(a.info.sid)!==a){Bq.error(`Unknown track ${e}`);let t=Lq.disconnected();n.error(t),(r=i.reject)==null||r.call(i,t);return}if(a.subscription.type!==`active`){Bq.error(`Subscription for track ${e} is not active`);let t=Lq.disconnected();n.error(t),(s=i.reject)==null||s.call(i,t);return}if(t?.aborted){c();return}t?.addEventListener(`abort`,c),a.subscription.streamControllers.set(n,o),(l=i.resolve)==null||l.call(i)})).catch(e=>{var t;n.error(e),(t=i.reject)==null||t.call(i,e)})},cancel:()=>{s()}},new CountQueuingStrategy({highWaterMark:n})),i.promise]}subscribeRequest(e,t){return J(this,void 0,void 0,function*(){let n=this.descriptors.get(e);if(!n)throw Error(`Cannot subscribe to unknown track`);let r=(t,n,r)=>J(this,void 0,void 0,function*(){if(t.subscription.type===`active`)return;if(t.subscription.type!==`pending`)throw Error(`Descriptor for track ${e} is not pending, found ${t.subscription.type}`);let i=YK([n,r].filter(e=>e!==void 0)),a=new _H;t.subscription.completionFuture.promise.then(()=>a.resolve?.call(a)).catch(e=>a.reject?.call(a,e));let o=()=>{var e;if(t.subscription.type===`pending`){if(--t.subscription.pendingRequestCount,r?.aborted){t.subscription.cancel();return}if(t.subscription.pendingRequestCount<=0){t.subscription.cancel();return}(e=a.reject)==null||e.call(a,Lq.cancelled())}};i.aborted&&o(),i.addEventListener(`abort`,o),yield a.promise,i.removeEventListener(`abort`,o)});switch(n.subscription.type){case`none`:{n.subscription={type:`pending`,completionFuture:new _H,pendingRequestCount:1,cancel:()=>{var e,t;let r=n.subscription;n.subscription={type:`none`},this.emit(`sfuUpdateSubscription`,{sid:n.info.sid,subscribe:!1}),r.type===`pending`&&((t=(e=r.completionFuture).reject)==null||t.call(e,i.aborted?Lq.timeout():Lq.cancelled()))}},this.emit(`sfuUpdateSubscription`,{sid:e,subscribe:!0});let i=XK(Vq);yield r(n,t,i);return}case`pending`:n.subscription.pendingRequestCount+=1,yield r(n,t);return;case`active`:return}})}querySubscribed(){return J(this,void 0,void 0,function*(){return Array.from(this.descriptors.values()).filter(e=>e.subscription.type===`active`).map(e=>[e.info,e.publisherIdentity])})}unSubscribeRequest(e){let t=this.descriptors.get(e);if(!t)throw Error(`Cannot subscribe to unknown track`);if(t.subscription.type!==`active`){Bq.warn(`Unexpected descriptor state in unSubscribeRequest, expected active, found ${t.subscription?.type}`);return}this.closeStreamControllers(t.subscription.streamControllers,e);let n=t.subscription;t.subscription={type:`none`},this.subscriptionHandles.delete(n.subcriptionHandle),this.emit(`sfuUpdateSubscription`,{sid:e,subscribe:!1})}closeStreamControllers(e,t){for(let r of e){var n=zP(r,2);let e=n[0],i=n[1];i();try{e.close()}catch(e){Bq.warn(`Failed to close readable stream for track ${t}: ${e}`)}}}receiveSfuPublicationUpdates(e){return J(this,void 0,void 0,function*(){if(e.size===0)return;let t=new Map;for(let r of e.entries()){var n=zP(r,2);let e=n[0],i=n[1],a=new Set;for(let t of i)a.add(t.sid),!this.descriptors.has(t.sid)&&(this.handleSidReassigned(e,t)||(yield this.handleTrackPublished(e,t)));t.set(e,a)}for(let e of t.entries()){var r=zP(e,2);let t=r[0],n=r[1],i=Array.from(this.descriptors.entries()).filter(e=>{let n=zP(e,2);return n[0],n[1].publisherIdentity===t}).map(e=>zP(e,1)[0]).filter(e=>!n.has(e));for(let e of i)this.handleTrackUnpublished(e)}})}queryPublications(){return J(this,void 0,void 0,function*(){return Array.from(this.descriptors.values()).map(e=>e.info)})}handleTrackPublished(e,t){return J(this,void 0,void 0,function*(){if(this.descriptors.has(t.sid)){Bq.error(`Existing descriptor for track ${t.sid}`);return}let n={info:t,publisherIdentity:e,subscription:{type:`none`},pipelineOptions:{}};this.descriptors.set(n.info.sid,n);let r=new Oq(n.info,this,{publisherIdentity:e});this.emit(`trackPublished`,{track:r})})}handleSidReassigned(e,t){let n=Array.from(this.descriptors.entries()).find(n=>{let r=zP(n,2);r[0];let i=r[1];return i.publisherIdentity===e&&i.info.pubHandle===t.pubHandle});if(!n)return!1;let r=zP(n,2),i=r[0],a=r[1],o=a.info,s=o.name,c=o.usesE2ee;if(s!==t.name||c!==t.usesE2ee)return Bq.warn(`Info mismatch for ${i}, treating as new publication`),!1;let l=t.sid;if(Bq.debug(`SID reassigned: ${i} -> ${l}`),!this.descriptors.delete(i))return!1;switch(a.info.sid=l,a.subscription.type){case`none`:break;case`pending`:case`active`:this.emit(`sfuUpdateSubscription`,{sid:l,subscribe:!0})}return a.subscription.type===`active`&&this.subscriptionHandles.set(a.subscription.subcriptionHandle,l),this.descriptors.set(l,a),!0}handleTrackUnpublished(e){let t=this.descriptors.get(e);if(!t){Bq.error(`Unknown track ${e}`);return}this.descriptors.delete(e),t.subscription.type===`active`&&(this.closeStreamControllers(t.subscription.streamControllers,e),this.subscriptionHandles.delete(t.subscription.subcriptionHandle)),this.emit(`trackUnpublished`,{sid:e,publisherIdentity:t.publisherIdentity})}receivedSfuSubscriberHandles(e){for(let n of e.entries()){var t=zP(n,2);let e=t[0],r=t[1];this.registerSubscriberHandle(e,r)}}registerSubscriberHandle(e,t){var n,r;let i=this.descriptors.get(t);if(!i){Bq.error(`Unknown track ${t}`);return}switch(i.subscription.type){case`none`:Bq.warn(`No subscription for ${t}`);return;case`active`:this.subscriptionHandles.delete(i.subscription.subcriptionHandle),i.subscription.subcriptionHandle=e,this.subscriptionHandles.set(e,t);return;case`pending`:{Bq.debug(`data track subscription activated`,{sid:t,handle:e});let a=new zq({info:i.info,publisherIdentity:i.publisherIdentity,e2eeManager:this.e2eeManager,pipelineOptions:i.pipelineOptions}),o=i.subscription;i.subscription={type:`active`,subcriptionHandle:e,pipeline:a,streamControllers:new Map},this.subscriptionHandles.set(e,t),(r=(n=o.completionFuture).resolve)==null||r.call(n)}}}packetReceived(e){return J(this,void 0,void 0,function*(){let t;try{t=zP(jq.fromBinary(e),1)[0]}catch(e){Bq.error(`Failed to deserialize packet: ${e}`);return}let n=this.subscriptionHandles.get(t.header.trackHandle);if(!n){Bq.warn(`Unknown subscriber handle ${t.header.trackHandle}`);return}let r=this.descriptors.get(n);if(!r){Bq.error(`Missing descriptor for track ${n}`);return}if(r.subscription.type!==`active`){Bq.warn(`Received packet for track ${n} without active subscription`);return}let i=yield r.subscription.pipeline.processPacket(t);if(i)for(let e of r.subscription.streamControllers.keys()){if(e.desiredSize!==null&&e.desiredSize<=0){Bq.warn(`Cannot send frame to subscribers: readable stream is full (desiredSize is ${e.desiredSize}). To increase this threshold, set a higher 'options.highWaterMark' when calling .subscribe().`);continue}let t=Tq.lossyIntoFrame(i);e.enqueue(t)}})}resendSubscriptionUpdates(){for(let t of this.descriptors){var e=zP(t,2);let n=e[0];e[1].subscription.type!==`none`&&this.emit(`sfuUpdateSubscription`,{sid:n,subscribe:!0})}}handleRemoteParticipantDisconnected(e){var t,n;for(let r of this.descriptors.values())if(r.publisherIdentity===e)switch(r.subscription.type){case`none`:break;case`pending`:(n=(t=r.subscription.completionFuture).reject)==null||n.call(t,Lq.disconnected());break;case`active`:this.unSubscribeRequest(r.info.sid)}}reset(){var e,t;for(let n of this.descriptors.values())this.emit(`trackUnpublished`,{sid:n.info.sid,publisherIdentity:n.publisherIdentity}),n.subscription.type===`pending`&&((t=(e=n.subscription.completionFuture).reject)==null||t.call(e,Lq.disconnected())),n.subscription.type===`active`&&this.closeStreamControllers(n.subscription.streamControllers,n.info.sid);this.descriptors.clear(),this.subscriptionHandles.clear()}},Wq=class e extends DB{constructor(e,t,n){super(19,e,n),this.name=`DataTrackPacketizerError`,this.reason=t,this.reasonName=Gq[t]}static mtuTooShort(){return new e(`MTU is too short to send frame`,Gq.MtuTooShort)}},Gq;(function(e){e[e.MtuTooShort=0]=`MtuTooShort`})(Gq||={});var Kq=class e{constructor(e,t){this.sequence=PU.u16(0),this.frameNumber=PU.u16(0),this.clock=IU.rtpStartingNow(FU.rtpRandom()),this.handle=e,this.mtuSizeBytes=t}static computeFrameMarker(e,t){return t<=1?Aq.Single:e===0?Aq.Start:e===t-1?Aq.Final:Aq.Inter}*packetize(t,n){let r=this.frameNumber.getThenIncrement(),i={marker:Aq.Inter,trackHandle:this.handle,sequence:PU.u16(0),frameNumber:r,timestamp:n?.now??this.clock.now(),extensions:t.extensions},a=new kq(i).toBinaryLengthBytes();if(a>=this.mtuSizeBytes)throw Wq.mtuTooShort();let o=this.mtuSizeBytes-a,s=Math.ceil(t.payload.byteLength/o);for(let n=0,r=0;r<t.payload.byteLength;c=[n+1,r+o],n=c[0],r=c[1]){var c;let a=this.sequence.getThenIncrement(),l=new kq(Object.assign(Object.assign({},i),{marker:e.computeFrameMarker(n,s),sequence:a})),u=Math.min(o,t.payload.byteLength-r);yield new jq(l,new Uint8Array(t.payload.buffer,t.payload.byteOffset+r,u))}}},qq;(function(e){e[e.NotAllowed=0]=`NotAllowed`,e[e.DuplicateName=1]=`DuplicateName`,e[e.Timeout=2]=`Timeout`,e[e.LimitReached=3]=`LimitReached`,e[e.Disconnected=4]=`Disconnected`,e[e.Cancelled=5]=`Cancelled`,e[e.InvalidName=6]=`InvalidName`,e[e.Unknown=7]=`Unknown`})(qq||={});var Jq=class e extends DB{constructor(e,t,n){super(21,e,n),this.name=`DataTrackPublishError`,this.reason=t,this.reasonName=qq[t],this.rawMessage=n?.rawMessage}static notAllowed(t){return new e(`Data track publishing unauthorized`,qq.NotAllowed,{rawMessage:t})}static duplicateName(t){return new e(`Track name already taken`,qq.DuplicateName,{rawMessage:t})}static invalidName(t){return new e(`Track name is invalid`,qq.InvalidName,{rawMessage:t})}static timeout(){return new e(`Publish data track timed-out. Does the LiveKit server support data tracks?`,qq.Timeout)}static limitReached(t){return new e(`Data track publication limit reached`,qq.LimitReached,{rawMessage:t})}static unknown(t,n){return new e(`Received RequestResponse for publishDataTrack, but reason was unrecognised (${t}, ${n})`,qq.Unknown)}static disconnected(){return new e(`Room disconnected`,qq.Disconnected)}static cancelled(){return new e(`Publish data track cancelled by caller`,qq.Cancelled)}},Yq;(function(e){e[e.TrackUnpublished=0]=`TrackUnpublished`,e[e.Dropped=1]=`Dropped`})(Yq||={});var Xq=class e extends DB{constructor(e,t,n){super(22,e,n),this.name=`DataTrackPushFrameError`,this.reason=t,this.reasonName=Yq[t]}static trackUnpublished(){return new e(`Track is no longer published`,Yq.TrackUnpublished)}static dropped(t){return new e(`Frame was dropped`,Yq.Dropped,{cause:t})}},Zq;(function(e){e[e.Packetizer=0]=`Packetizer`,e[e.Encryption=1]=`Encryption`})(Zq||={});var Qq=class e extends DB{constructor(e,t,n){super(21,e,n),this.name=`DataTrackOutgoingPipelineError`,this.reason=t,this.reasonName=Zq[t]}static packetizer(t){return new e(`Error packetizing frame`,Zq.Packetizer,{cause:t})}static encryption(t){return new e(`Error encrypting frame`,Zq.Encryption,{cause:t})}},$q=class e{constructor(e,t){this.trackSymbol=Eq,this.isLocal=!0,this.typeSymbol=Dq,this.handle=null,this.log=BR,this.flushedFuture=new _H,this.isFlushed=!0,this.handleManagerReset=()=>{var e,t;(t=(e=this.flushedFuture).resolve)==null||t.call(e),this.manager.off(`packetsFlushedChange`,this.handleManagerPacketsFlushedChange),this.manager.off(`reset`,this.handleManagerReset)},this.handleManagerPacketsFlushedChange=e=>{var t,n;this.isFlushed=e.isFlushed,e.isFlushed&&((n=(t=this.flushedFuture).resolve)==null||n.call(t),this.flushedFuture=new _H)},this.options=e,this.manager=t,this.log=VR(zR.DataTracks),this.manager.on(`packetsFlushedChange`,this.handleManagerPacketsFlushedChange),this.manager.on(`reset`,this.handleManagerReset)}static withExplicitHandle(t,n,r){let i=new e(t,n);return i.handle=r,i}get info(){let e=this.descriptor;if(e?.type===`active`)return e.info}get descriptor(){return this.handle?this.manager.getDescriptor(this.handle):null}publish(e){return J(this,void 0,void 0,function*(){try{this.handle=yield this.manager.publishRequest(this.options,e)}catch(e){throw e}})}isPublished(){return this.descriptor?.type===`active`&&this.descriptor.publishState!==`unpublished`}tryPush(e){if(!this.handle)throw Xq.trackUnpublished();let t=Tq.from(e);try{return this.manager.tryProcessAndSend(this.handle,t)}catch(e){throw e}}flush(){return J(this,void 0,void 0,function*(){if(!this.isFlushed)return this.flushedFuture.promise})}unpublish(){return J(this,void 0,void 0,function*(){if(!this.handle){BR.warn(`Data track "${this.options.name}" is not published, so unpublishing has no effect.`);return}try{yield this.manager.unpublishRequest(this.handle)}catch(e){throw e}})}},eJ=class e{constructor(t){this.e2eeManager=t.e2eeManager,this.packetizer=new Kq(t.info.pubHandle,e.TRANSPORT_MTU_BYTES)}updateE2eeManager(e){this.e2eeManager=e}processFrame(e){return $R(this,arguments,function*(){let t=yield QR(this.encryptIfNeeded(e));try{yield QR(yield*ez(tz(this.packetizer.packetize(t))))}catch(e){throw e instanceof Wq?Qq.packetizer(e):e}})}encryptIfNeeded(e){return J(this,void 0,void 0,function*(){if(!this.e2eeManager)return e;let t;try{t=yield this.e2eeManager.encryptData(e.payload)}catch(e){throw Qq.encryption(e)}return e.payload=t.payload,e.extensions.e2ee=new Cq(t.keyIndex,t.iv),e})}};eJ.TRANSPORT_MTU_BYTES=16e3;var tJ=VR(zR.DataTracks),nJ={pending(){return{type:`pending`,completionFuture:new _H}},active(e,t){return{type:`active`,info:e,publishState:`published`,pipeline:new eJ({info:e,e2eeManager:t}),unpublishingFuture:new _H}}},rJ=1e4,iJ=class e extends az.EventEmitter{constructor(e){super(),this.handleAllocator=new VU,this.descriptors=new Map,this.inFlightPacketCounter=new Map,this.e2eeManager=e?.e2eeManager??null}static withDescriptors(t){let n=new e;return n.descriptors=t,n}updateE2eeManager(e){this.e2eeManager=e;for(let t of this.descriptors.values())t.type===`active`&&t.pipeline.updateE2eeManager(e)}getDescriptor(e){return this.descriptors.get(e)??null}tryProcessAndSend(e,t){return J(this,void 0,void 0,function*(){var n,r,i,a;let o=this.getDescriptor(e);if(o?.type!==`active`||o.publishState===`unpublished`)throw Xq.trackUnpublished();if(o.publishState===`republishing`)throw Xq.dropped(`Data track republishing`);try{try{for(var s=!0,c=tz(o.pipeline.processFrame(t)),l;l=yield c.next(),n=l.done,!n;s=!0){a=l.value,s=!1;let t=a,n=this.inFlightPacketCounter.get(e)??0;this.inFlightPacketCounter.set(e,n+1),n===0&&this.emit(`packetsFlushedChange`,{handle:e,isFlushed:!1}),this.emit(`packetAvailable`,{handle:e,bytes:t.toBinary()})}}catch(e){r={error:e}}finally{try{!s&&!n&&(i=c.return)&&(yield i.call(c))}finally{if(r)throw r.error}}}catch(e){throw Xq.dropped(e)}})}handlePacketSendComplete(e){let t=(this.inFlightPacketCounter.get(e)??0)-1;t<0&&(tJ.warn(`OutgoingDataTrackManager.handlePacketSendComplete: inFlightPacketCounter was decremented below 0 (got ${this.inFlightPacketCounter} - resetting to 0. Were more packets send than were emitted?`),t=0),this.inFlightPacketCounter.set(e,t),t===0&&this.emit(`packetsFlushedChange`,{handle:e,isFlushed:!0})}publishRequest(e,t){return J(this,void 0,void 0,function*(){let n=this.handleAllocator.get();if(!n)throw Jq.limitReached();let r=XK(rJ),i=t?YK([t,r]):r;if(this.descriptors.has(n))throw Error(`Descriptor for handle already exists`);let a=nJ.pending();this.descriptors.set(n,a);let o=()=>{var e,t;let i=this.descriptors.get(n);if(!i){tJ.warn(`No descriptor for ${n}`);return}this.descriptors.delete(n),this.emit(`sfuUnpublishRequest`,{handle:n}),i.type===`pending`&&((t=(e=i.completionFuture).reject)==null||t.call(e,r.aborted?Jq.timeout():Jq.cancelled()))};return i.aborted?(o(),a.completionFuture.promise.then(()=>n)):(i.addEventListener(`abort`,o),this.emit(`sfuPublishRequest`,{handle:n,name:e.name,usesE2ee:this.e2eeManager!==null}),yield a.completionFuture.promise,i.removeEventListener(`abort`,o),this.emit(`trackPublished`,{track:$q.withExplicitHandle(e,this,n)}),n)})}queryPublished(){return Array.from(this.descriptors.values()).filter(e=>e.type===`active`).map(e=>e.info)}unpublishRequest(e){return J(this,void 0,void 0,function*(){let t=this.descriptors.get(e);if(!t){tJ.warn(`No descriptor for ${e}`);return}if(t.type!==`active`){tJ.warn(`Track ${e} not active`);return}this.emit(`sfuUnpublishRequest`,{handle:e}),yield t.unpublishingFuture.promise,this.inFlightPacketCounter.delete(e),this.emit(`trackUnpublished`,{sid:t.info.sid})})}receivedSfuPublishResponse(e,t){var n,r,i,a;let o=this.descriptors.get(e);if(!o){tJ.warn(`No descriptor for ${e}`);return}switch(this.descriptors.delete(e),o.type){case`pending`:if(t.type===`ok`){let i=t.data;tJ.debug(`SFU accepted publish request for handle ${e}`,{sid:i.sid});let a=i.usesE2ee?this.e2eeManager:null;this.descriptors.set(i.pubHandle,nJ.active(i,a)),(r=(n=o.completionFuture).resolve)==null||r.call(n)}else tJ.debug(`SFU rejected publish request for handle ${e}`,{error:t.error}),(a=(i=o.completionFuture).reject)==null||a.call(i,t.error);return;case`active`:if(o.publishState!==`republishing`){tJ.warn(`Track ${e} already active`);return}if(t.type===`error`){tJ.warn(`Republish failed for track ${e}`);return}tJ.debug(`Track ${e} republished`),o.info.sid=t.data.sid,o.publishState=`published`,this.descriptors.set(o.info.pubHandle,o)}}receivedSfuUnpublishResponse(e){var t,n;let r=this.descriptors.get(e);if(!r){tJ.warn(`No descriptor for ${e}`);return}if(this.descriptors.delete(e),r.type!==`active`){tJ.warn(`Track ${e} not active`);return}r.publishState=`unpublished`,(n=(t=r.unpublishingFuture).resolve)==null||n.call(t)}sfuWillRepublishTracks(){var e,t;for(let r of this.descriptors.entries()){var n=zP(r,2);let i=n[0],a=n[1];switch(a.type){case`pending`:this.descriptors.delete(i),(t=(e=a.completionFuture).reject)==null||t.call(e,Jq.disconnected());break;case`active`:a.publishState=`republishing`,this.emit(`sfuPublishRequest`,{handle:a.info.pubHandle,name:a.info.name,usesE2ee:a.info.usesE2ee})}}}reset(){return J(this,void 0,void 0,function*(){var e,t,n,r;this.handleAllocator.reset();for(let i of this.descriptors.values())switch(i.type){case`pending`:(t=(e=i.completionFuture).reject)==null||t.call(e,Jq.disconnected());break;case`active`:(r=(n=i.unpublishingFuture).resolve)==null||r.call(n),yield this.unpublishRequest(i.info.pubHandle)}this.descriptors.clear(),this.inFlightPacketCounter.clear(),this.emit(`reset`)})}},aJ=class e extends Error{constructor(t,n,r,i){super(n),this.code=t,this.message=pJ(n,e.MAX_MESSAGE_BYTES),this.data=r?pJ(r,e.MAX_DATA_BYTES):void 0,i?.cause!==void 0&&(this.cause=i?.cause)}static fromProto(t){return new e(t.code,t.message,t.data)}toProto(){return new eL({code:this.code,message:this.message,data:this.data})}static builtIn(t,n,r){return new e(e.ErrorCode[t],e.ErrorMessage[t],n,r)}};aJ.MAX_MESSAGE_BYTES=256,aJ.MAX_DATA_BYTES=15360,aJ.ErrorCode={APPLICATION_ERROR:1500,CONNECTION_TIMEOUT:1501,RESPONSE_TIMEOUT:1502,RECIPIENT_DISCONNECTED:1503,RESPONSE_PAYLOAD_TOO_LARGE:1504,SEND_FAILED:1505,UNSUPPORTED_METHOD:1400,RECIPIENT_NOT_FOUND:1401,REQUEST_PAYLOAD_TOO_LARGE:1402,UNSUPPORTED_SERVER:1403,UNSUPPORTED_VERSION:1404},aJ.ErrorMessage={APPLICATION_ERROR:`Application error in method handler`,CONNECTION_TIMEOUT:`Connection timeout`,RESPONSE_TIMEOUT:`Response timeout`,RECIPIENT_DISCONNECTED:`Recipient disconnected`,RESPONSE_PAYLOAD_TOO_LARGE:`Response payload too large`,SEND_FAILED:`Failed to send`,UNSUPPORTED_METHOD:`Method not supported at destination`,RECIPIENT_NOT_FOUND:`Recipient not found`,REQUEST_PAYLOAD_TOO_LARGE:`Request payload too large`,UNSUPPORTED_SERVER:`RPC not supported by server`,UNSUPPORTED_VERSION:`Unsupported RPC version`};var oJ=15360,sJ=`lk.rpc_request`,cJ=`lk.rpc_response`,lJ;(function(e){e.RPC_REQUEST_ID=`lk.rpc_request_id`,e.RPC_REQUEST_METHOD=`lk.rpc_request_method`,e.RPC_REQUEST_RESPONSE_TIMEOUT_MS=`lk.rpc_request_response_timeout_ms`,e.RPC_REQUEST_VERSION=`lk.rpc_request_version`})(lJ||={});var uJ=1,dJ=2;function fJ(e){return new TextEncoder().encode(e).length}function pJ(e,t){if(fJ(e)<=t)return e;let n=0,r=e.length,i=new TextEncoder;for(;n<r;){let a=Math.floor((n+r+1)/2);i.encode(e.slice(0,a)).length<=t?n=a:r=a-1}return e.slice(0,n)}var mJ=class extends az.EventEmitter{constructor(e,t,n,r){super(),this.pendingAcks=new Map,this.pendingResponses=new Map,this.log=e,this.outgoingDataStreamManager=t,this.getRemoteParticipantClientProtocol=n,this.getServerVersion=r}performRpc(e){return J(this,arguments,void 0,function(e){var t=this;let n=e.destinationIdentity,r=e.method,i=e.payload,a=e.responseTimeout,o=a===void 0?15e3:a;return function*(){let e=t.getRemoteParticipantClientProtocol(n);if(fJ(i)>oJ&&e<1)throw aJ.builtIn(`REQUEST_PAYLOAD_TOO_LARGE`);let a=t.getServerVersion();if(a&&oH(a,`1.8.0`)<0)throw aJ.builtIn(`UNSUPPORTED_SERVER`);let s=Math.max(o,8e3),c=crypto.randomUUID(),l=new _H,u=null,d=setTimeout(()=>{var e;t.pendingAcks.delete(c),(e=l.reject)==null||e.call(l,aJ.builtIn(`CONNECTION_TIMEOUT`)),t.pendingResponses.delete(c),u!==null&&clearTimeout(u)},7e3);return t.pendingAcks.set(c,{resolve:()=>{clearTimeout(d)},participantIdentity:n}),t.pendingResponses.set(c,{completionFuture:l,participantIdentity:n}),yield t.publishRpcRequest(n,c,r,i,s,e),u=setTimeout(()=>{var e;t.pendingResponses.delete(c),(e=l.reject)==null||e.call(l,aJ.builtIn(`RESPONSE_TIMEOUT`))},o),[c,l.promise.finally(()=>{clearTimeout(u),t.pendingAcks.has(c)&&(t.log.warn(`RPC response received before ack`,c),t.pendingAcks.delete(c),clearTimeout(d))})]}()})}publishRpcRequest(e,t,n,r,i,a){return J(this,void 0,void 0,function*(){if(a>=1){yield this.outgoingDataStreamManager.sendText(r,{topic:sJ,destinationIdentities:[e],attributes:{[lJ.RPC_REQUEST_ID]:t,[lJ.RPC_REQUEST_METHOD]:n,[lJ.RPC_REQUEST_RESPONSE_TIMEOUT_MS]:`${i}`,[lJ.RPC_REQUEST_VERSION]:`${dJ}`}});return}this.emit(`sendDataPacket`,{packet:new HI({destinationIdentities:[e],kind:UI.RELIABLE,value:{case:`rpcRequest`,value:new ZI({id:t,method:n,payload:r,responseTimeoutMs:i,version:uJ})}})})})}handleIncomingDataStream(e,t,n){return J(this,void 0,void 0,function*(){let r=n[lJ.RPC_REQUEST_ID];if(!r){this.log.warn(`RPC data stream malformed: ${lJ.RPC_REQUEST_ID} not set.`);return}let i=this.pendingResponses.get(r);if(i&&i.participantIdentity!==t){this.log.warn(`RPC response stream for ${r} arrived from unexpected sender ${t}, expected ${i.participantIdentity}. Ignoring.`);return}let a;try{a=yield e.readAll()}catch(e){this.log.warn(`Error reading RPC response payload: ${e}`),this.handleIncomingRpcResponseFailure(r,aJ.builtIn(`APPLICATION_ERROR`,`Error reading RPC response payload`,{cause:e}));return}this.handleIncomingRpcResponseSuccess(r,a)})}handleIncomingRpcResponseSuccess(e,t){var n,r;let i=this.pendingResponses.get(e);i?((r=(n=i.completionFuture).resolve)==null||r.call(n,t),this.pendingResponses.delete(e)):this.log.error(`Response received for unexpected RPC request`,e)}handleIncomingRpcResponseFailure(e,t){var n,r;let i=this.pendingResponses.get(e);i?((r=(n=i.completionFuture).reject)==null||r.call(n,t),this.pendingResponses.delete(e)):this.log.error(`Response received for unexpected RPC request`,e)}handleIncomingRpcAck(e){let t=this.pendingAcks.get(e);t?(t.resolve(),this.pendingAcks.delete(e)):this.log.error(`Ack received for unexpected RPC request: ${e}`)}handleParticipantDisconnected(e){var t;for(let t of this.pendingAcks){var n=zP(t,2);let r=n[0];n[1].participantIdentity===e&&this.pendingAcks.delete(r)}for(let n of this.pendingResponses){var r=zP(n,2);let a=r[0];var i=r[1];let o=i.participantIdentity,s=i.completionFuture;o===e&&((t=s.reject)==null||t.call(s,aJ.builtIn(`RECIPIENT_DISCONNECTED`)),this.pendingResponses.delete(a))}}},hJ=class extends az.EventEmitter{constructor(e,t,n){super(),this.rpcHandlers=new Map,this.log=e,this.outgoingDataStreamManager=t,this.getRemoteParticipantClientProtocol=n}registerRpcMethod(e,t){if(this.rpcHandlers.has(e))throw Error(`RPC handler already registered for method ${e}, unregisterRpcMethod before trying to register again`);this.rpcHandlers.set(e,t)}unregisterRpcMethod(e){this.rpcHandlers.delete(e)}handleIncomingRpcRequest(e,t){return J(this,void 0,void 0,function*(){if(this.publishRpcAck(e,t.id),t.version!==1){this.publishRpcResponsePacket(e,t.id,null,aJ.builtIn(`UNSUPPORTED_VERSION`));return}let n=this.rpcHandlers.get(t.method);if(!n){this.publishRpcResponsePacket(e,t.id,null,aJ.builtIn(`UNSUPPORTED_METHOD`));return}let r;try{r=yield n({requestId:t.id,callerIdentity:e,payload:t.payload,responseTimeout:t.responseTimeoutMs})}catch(n){let r;n instanceof aJ?r=n:(this.log.warn(`Uncaught error returned by RPC handler for ${t.method}. Returning APPLICATION_ERROR instead.`,n),r=aJ.builtIn(`APPLICATION_ERROR`,`Uncaught error: ${n?.message??n}`,{cause:n})),this.publishRpcResponsePacket(e,t.id,null,r);return}yield this.publishRpcResponse(e,t.id,r??``)})}handleIncomingDataStream(e,t,n){return J(this,void 0,void 0,function*(){let r=n[lJ.RPC_REQUEST_ID],i=n[lJ.RPC_REQUEST_METHOD],a=parseInt(n[lJ.RPC_REQUEST_RESPONSE_TIMEOUT_MS],10),o=parseInt(n[lJ.RPC_REQUEST_VERSION],10);if(!r||!i||Number.isNaN(a)||Number.isNaN(o)){this.log.warn(`RPC data stream malformed: ${lJ.RPC_REQUEST_ID} / ${lJ.RPC_REQUEST_METHOD} / ${lJ.RPC_REQUEST_RESPONSE_TIMEOUT_MS} / ${lJ.RPC_REQUEST_VERSION} not set.`),this.publishRpcResponsePacket(t,r,null,aJ.builtIn(`APPLICATION_ERROR`,`RPC data stream malformed`));return}if(this.publishRpcAck(t,r),o!==dJ){this.publishRpcResponsePacket(t,r,null,aJ.builtIn(`UNSUPPORTED_VERSION`));return}let s;try{s=yield e.readAll()}catch(e){this.log.warn(`Error reading RPC request payload: ${e}`),this.publishRpcResponsePacket(t,r,null,aJ.builtIn(`APPLICATION_ERROR`,`Error reading RPC request payload`,{cause:e}));return}let c=this.rpcHandlers.get(i);if(!c){this.publishRpcResponsePacket(t,r,null,aJ.builtIn(`UNSUPPORTED_METHOD`));return}let l;try{l=yield c({requestId:r,callerIdentity:t,payload:s,responseTimeout:a})}catch(e){let n;e instanceof aJ?n=e:(this.log.warn(`Uncaught error returned by RPC handler for ${i}. Returning APPLICATION_ERROR instead.`,e),n=aJ.builtIn(`APPLICATION_ERROR`)),this.publishRpcResponsePacket(t,r,null,n);return}yield this.publishRpcResponse(t,r,l??``)})}publishRpcAck(e,t){this.emit(`sendDataPacket`,{packet:new HI({destinationIdentities:[e],kind:UI.RELIABLE,value:{case:`rpcAck`,value:new QI({requestId:t})}})})}publishRpcResponsePacket(e,t,n,r){this.emit(`sendDataPacket`,{packet:new HI({destinationIdentities:[e],kind:UI.RELIABLE,value:{case:`rpcResponse`,value:new $I({requestId:t,value:r?{case:`error`,value:r.toProto()}:{case:`payload`,value:n??``}})}})})}publishRpcResponse(e,t,n){return J(this,void 0,void 0,function*(){if(this.getRemoteParticipantClientProtocol(e)>=1){yield this.outgoingDataStreamManager.sendText(n,{topic:cJ,destinationIdentities:[e],attributes:{[lJ.RPC_REQUEST_ID]:t}});return}if(fJ(n)>oJ){this.log.warn(`RPC Response payload too large for request ${t}. To send larger responses, consider updating the sending client.`),this.publishRpcResponsePacket(e,t,null,aJ.builtIn(`RESPONSE_PAYLOAD_TOO_LARGE`));return}this.publishRpcResponsePacket(e,t,n,null)})}},gJ=class extends _U{constructor(e,t,n,r,i,a){super(e,t,$.Kind.Audio,n,a),this.monitorReceiver=()=>J(this,void 0,void 0,function*(){if(!this.receiver){this._currentBitrate=0;return}let e=yield this.getReceiverStats();e&&this.prevStats&&this.receiver&&(this._currentBitrate=gU(e,this.prevStats)),this.prevStats=e}),this.audioContext=r,this.webAudioPluginNodes=[],i&&(this.sinkId=i.deviceId)}setVolume(e){var t;for(let n of this.attachedElements)this.audioContext?(t=this.gainNode)==null||t.gain.setTargetAtTime(e,0,.1):n.volume=e;eH()&&this._mediaStreamTrack._setVolume(e),this.elementVolume=e}getVolume(){if(this.elementVolume)return this.elementVolume;if(eH())return 1;let e=0;return this.attachedElements.forEach(t=>{t.volume>e&&(e=t.volume)}),e}setSinkId(e){return J(this,void 0,void 0,function*(){this.sinkId=e,yield Promise.all(this.attachedElements.map(t=>{if(HV(t))return t.setSinkId(e)}))})}attach(e){let t=this.attachedElements.length===0;return e?super.attach(e):e=super.attach(),this.sinkId&&HV(e)&&e.setSinkId(this.sinkId).catch(e=>{this.log.error(`Failed to set sink id on remote audio track`,e,this.logContext)}),this.audioContext&&t&&(this.log.debug(`using audio context mapping`,this.logContext),this.connectWebAudio(this.audioContext,e),e.volume=0,e.muted=!0),this.elementVolume&&this.setVolume(this.elementVolume),e}detach(e){let t;return e?(t=super.detach(e),this.audioContext&&(this.attachedElements.length>0?this.connectWebAudio(this.audioContext,this.attachedElements[0]):this.disconnectWebAudio())):(t=super.detach(),this.disconnectWebAudio()),t}setAudioContext(e){this.audioContext=e,e&&this.attachedElements.length>0?this.connectWebAudio(e,this.attachedElements[0]):e||this.disconnectWebAudio()}setWebAudioPlugins(e){this.webAudioPluginNodes=e,this.attachedElements.length>0&&this.audioContext&&this.connectWebAudio(this.audioContext,this.attachedElements[0])}connectWebAudio(e,t){this.disconnectWebAudio(),this.sourceNode=e.createMediaStreamSource(t.srcObject);let n=this.sourceNode;this.webAudioPluginNodes.forEach(e=>{n.connect(e),n=e}),this.gainNode=e.createGain(),n.connect(this.gainNode),this.gainNode.connect(e.destination),this.elementVolume&&this.gainNode.gain.setTargetAtTime(this.elementVolume,0,.1),e.state!==`running`&&e.resume().then(()=>{e.state!==`running`&&this.emit(Q.AudioPlaybackFailed,Error(`Audio Context couldn't be started automatically`))}).catch(e=>{this.emit(Q.AudioPlaybackFailed,e)})}disconnectWebAudio(){var e,t;(e=this.gainNode)==null||e.disconnect(),(t=this.sourceNode)==null||t.disconnect(),this.gainNode=void 0,this.sourceNode=void 0}getReceiverStats(){return J(this,void 0,void 0,function*(){if(!this.receiver||!this.receiver.getStats)return;let e=yield this.receiver.getStats(),t;return e.forEach(e=>{e.type===`inbound-rtp`&&(t={type:`audio`,streamId:e.id,timestamp:e.timestamp,jitter:e.jitter,bytesReceived:e.bytesReceived,concealedSamples:e.concealedSamples,concealmentEvents:e.concealmentEvents,silentConcealedSamples:e.silentConcealedSamples,silentConcealmentEvents:e.silentConcealmentEvents,totalAudioEnergy:e.totalAudioEnergy,totalSamplesDuration:e.totalSamplesDuration})}),t})}},_J=class extends az.EventEmitter{constructor(e,t,n,r){super(),this.metadataMuted=!1,this.encryption=OI.NONE,this.log=BR,this.handleMuted=()=>{this.emit(Q.Muted)},this.handleUnmuted=()=>{this.emit(Q.Unmuted)},this.log=VR(r?.loggerName??zR.Publication),this.loggerContextCb=this.loggerContextCb,this.setMaxListeners(100),this.kind=e,this.trackSid=t,this.trackName=n,this.source=$.Source.Unknown}setTrack(e){this.track&&(this.track.off(Q.Muted,this.handleMuted),this.track.off(Q.Unmuted,this.handleUnmuted)),this.track=e,e&&(e.on(Q.Muted,this.handleMuted),e.on(Q.Unmuted,this.handleUnmuted))}get logContext(){return Object.assign(Object.assign({},this.loggerContextCb?.call(this)),gV(this))}get isMuted(){return this.metadataMuted}get isEnabled(){return!0}get isSubscribed(){return this.track!==void 0}get isEncrypted(){return this.encryption!==OI.NONE}get audioTrack(){if(OH(this.track))return this.track}get videoTrack(){if(kH(this.track))return this.track}updateInfo(e){this.trackSid=e.sid,this.trackName=e.name,this.source=$.sourceFromProto(e.source),this.mimeType=e.mimeType,this.kind===$.Kind.Video&&e.width>0&&(this.dimensions={width:e.width,height:e.height},this.simulcasted=e.simulcast),this.encryption=e.encryption,this.trackInfo=e,this.log.debug(`update publication info`,Object.assign(Object.assign({},this.logContext),{info:e}))}};(function(e){(function(e){e.Desired=`desired`,e.Subscribed=`subscribed`,e.Unsubscribed=`unsubscribed`})(e.SubscriptionStatus||={}),(function(e){e.Allowed=`allowed`,e.NotAllowed=`not_allowed`})(e.PermissionStatus||={})})(_J||={});var vJ=class extends _J{get isUpstreamPaused(){return this.track?.isUpstreamPaused}constructor(e,t,n,r){super(e,t.sid,t.name,r),this.track=void 0,this.handleTrackEnded=()=>{this.emit(Q.Ended)},this.handleCpuConstrained=()=>{this.track&&kH(this.track)&&this.emit(Q.CpuConstrained,this.track)},this.updateInfo(t),this.setTrack(n)}setTrack(e){this.track&&(this.track.off(Q.Ended,this.handleTrackEnded),this.track.off(Q.CpuConstrained,this.handleCpuConstrained)),super.setTrack(e),e&&(e.on(Q.Ended,this.handleTrackEnded),e.on(Q.CpuConstrained,this.handleCpuConstrained))}get isMuted(){return this.track?this.track.isMuted:super.isMuted}get audioTrack(){return super.audioTrack}get videoTrack(){return super.videoTrack}get isLocal(){return!0}mute(){return J(this,void 0,void 0,function*(){return this.track?.mute()})}unmute(){return J(this,void 0,void 0,function*(){return this.track?.unmute()})}pauseUpstream(){return J(this,void 0,void 0,function*(){yield this.track?.pauseUpstream()})}resumeUpstream(){return J(this,void 0,void 0,function*(){yield this.track?.resumeUpstream()})}getTrackFeatures(){if(OH(this.track)){let e=this.track.getSourceTrackSettings(),t=new Set;return e.autoGainControl&&t.add(yI.TF_AUTO_GAIN_CONTROL),e.echoCancellation&&t.add(yI.TF_ECHO_CANCELLATION),e.noiseSuppression&&t.add(yI.TF_NOISE_SUPPRESSION),e.channelCount&&e.channelCount>1&&t.add(yI.TF_STEREO),this.options?.dtx||t.add(yI.TF_NO_DTX),this.track.enhancedNoiseCancellation&&t.add(yI.TF_ENHANCED_NOISE_CANCELLATION),Array.from(t.values())}return[]}};function yJ(e,t){return J(this,void 0,void 0,function*(){e??={};let n=!1,r=yV(e),i=r.audioProcessor,a=r.videoProcessor,o=r.optionsWithoutProcessor,s=o.audio,c=o.video;if(i&&typeof o.audio==`object`&&(o.audio.processor=i),a&&typeof o.video==`object`&&(o.video.processor=a),e.audio&&typeof o.audio==`object`&&typeof o.audio.deviceId==`string`){let e=o.audio.deviceId;o.audio.deviceId={exact:e},n=!0,s=Object.assign(Object.assign({},o.audio),{deviceId:{ideal:e}})}if(o.video&&typeof o.video==`object`&&typeof o.video.deviceId==`string`){let e=o.video.deviceId;o.video.deviceId={exact:e},n=!0,c=Object.assign(Object.assign({},o.video),{deviceId:{ideal:e}})}o.audio===!0?o.audio={deviceId:`default`}:typeof o.audio==`object`&&o.audio!==null&&(o.audio=Object.assign(Object.assign({},o.audio),{deviceId:o.audio.deviceId||`default`})),o.video===!0?o.video={deviceId:`default`}:typeof o.video==`object`&&!o.video.deviceId&&(o.video.deviceId=`default`);let l=cV(oV(o,oG,sG)),u=navigator.mediaDevices.getUserMedia(l);o.audio&&(jU.userMediaPromiseMap.set(`audioinput`,u),u.catch(()=>jU.userMediaPromiseMap.delete(`audioinput`))),o.video&&(jU.userMediaPromiseMap.set(`videoinput`,u),u.catch(()=>jU.userMediaPromiseMap.delete(`videoinput`)));try{let e=yield u;return yield Promise.all(e.getTracks().map(n=>J(this,void 0,void 0,function*(){let r=n.kind===`audio`,o,s=r?l.audio:l.video;typeof s!=`boolean`&&(o=s);let c=n.getSettings().deviceId;o?.deviceId&&yH(o.deviceId)!==c?o.deviceId=c:o||={deviceId:c};let u=FG(n,o,t);return u.kind===$.Kind.Video?u.source=$.Source.Camera:u.kind===$.Kind.Audio&&(u.source=$.Source.Microphone),u.mediaStream=e,OH(u)&&i?yield u.setProcessor(i):kH(u)&&a&&(yield u.setProcessor(a)),u})))}catch(r){if(!n)throw r;return yJ(Object.assign(Object.assign({},e),{audio:s,video:c}),t)}})}var bJ;(function(e){e.Excellent=`excellent`,e.Good=`good`,e.Poor=`poor`,e.Lost=`lost`,e.Unknown=`unknown`})(bJ||={});function xJ(e){switch(e){case mI.EXCELLENT:return bJ.Excellent;case mI.GOOD:return bJ.Good;case mI.POOR:return bJ.Poor;case mI.LOST:return bJ.Lost;default:return bJ.Unknown}}var SJ=class extends az.EventEmitter{get logContext(){var e;return Object.assign({},((e=this.loggerOptions)?.loggerContextCb)?.call(e))}get isEncrypted(){return this.trackPublications.size>0&&Array.from(this.trackPublications.values()).every(e=>e.isEncrypted)}get isAgent(){return this.permissions?.agent||this.kind===EI.AGENT}get isActive(){return this.participantInfo?.state===TI.ACTIVE}get kind(){return this._kind}get attributes(){return Object.freeze(Object.assign({},this._attributes))}constructor(e,t,n,r,i,a){let o=arguments.length>6&&arguments[6]!==void 0?arguments[6]:EI.STANDARD;super(),this.audioLevel=0,this.isSpeaking=!1,this._connectionQuality=bJ.Unknown,this.log=BR,this.loggerOptions=a,this.log=VR(a?.loggerName??zR.Participant,()=>this.logContext),this.setMaxListeners(100),this.sid=e,this.identity=t,this.name=n,this.metadata=r,this.audioTrackPublications=new Map,this.videoTrackPublications=new Map,this.trackPublications=new Map,this._kind=o,this._attributes=i??{}}getTrackPublications(){return Array.from(this.trackPublications.values())}getTrackPublication(e){for(let t of this.trackPublications){let n=zP(t,2)[1];if(n.source===e)return n}}getTrackPublicationByName(e){for(let t of this.trackPublications){let n=zP(t,2)[1];if(n.trackName===e)return n}}waitUntilActive(){return this.isActive?Promise.resolve():this.activeFuture?this.activeFuture.promise:(this.activeFuture=new _H,this.once(X.Active,()=>{var e,t;(t=(e=this.activeFuture)?.resolve)==null||t.call(e),this.activeFuture=void 0}),this.activeFuture.promise)}get connectionQuality(){return this._connectionQuality}get isCameraEnabled(){return!(this.getTrackPublication($.Source.Camera)?.isMuted??!0)}get isMicrophoneEnabled(){return!(this.getTrackPublication($.Source.Microphone)?.isMuted??!0)}get isScreenShareEnabled(){return!!this.getTrackPublication($.Source.ScreenShare)}get isLocal(){return!1}get joinedAt(){return this.participantInfo?new Date(Number.parseInt(this.participantInfo.joinedAt.toString())*1e3):new Date}updateInfo(e){return this.participantInfo&&this.participantInfo.sid===e.sid&&this.participantInfo.version>e.version?!1:(this.identity=e.identity,this.sid=e.sid,this._setName(e.name),this._setMetadata(e.metadata),this._setAttributes(e.attributes),e.state===TI.ACTIVE&&this.participantInfo?.state!==TI.ACTIVE&&this.emit(X.Active),e.permission&&this.setPermissions(e.permission),this.participantInfo=e,!0)}_setMetadata(e){let t=this.metadata!==e,n=this.metadata;this.metadata=e,t&&this.emit(X.ParticipantMetadataChanged,n)}_setName(e){let t=this.name!==e;this.name=e,t&&this.emit(X.ParticipantNameChanged,e)}_setAttributes(e){let t=vV(this.attributes,e);this._attributes=e,Object.keys(t).length>0&&this.emit(X.AttributesChanged,t)}setPermissions(e){let t=this.permissions,n=e.canPublish!==this.permissions?.canPublish||e.canSubscribe!==this.permissions?.canSubscribe||e.canPublishData!==this.permissions?.canPublishData||e.hidden!==this.permissions?.hidden||e.recorder!==this.permissions?.recorder||e.canPublishSources.length!==this.permissions.canPublishSources.length||e.canPublishSources.some((e,t)=>e!==this.permissions?.canPublishSources[t])||e.canSubscribeMetrics!==this.permissions?.canSubscribeMetrics;return this.permissions=e,n&&this.emit(X.ParticipantPermissionsChanged,t),n}setIsSpeaking(e){e!==this.isSpeaking&&(this.isSpeaking=e,e&&(this.lastSpokeAt=new Date),this.emit(X.IsSpeakingChanged,e))}setConnectionQuality(e){let t=this._connectionQuality;this._connectionQuality=xJ(e),t!==this._connectionQuality&&this.emit(X.ConnectionQualityChanged,this._connectionQuality)}setDisconnected(){var e,t;this.activeFuture&&=((t=(e=this.activeFuture).reject)==null||t.call(e,Error(`Participant disconnected`)),void 0)}setAudioContext(e){this.audioContext=e,this.audioTrackPublications.forEach(t=>OH(t.track)&&t.track.setAudioContext(e))}addTrackPublication(e){this.log.debug(`adding track publication`,{trackSid:e.trackSid,source:e.source,kind:e.kind}),e.on(Q.Muted,()=>{this.emit(X.TrackMuted,e)}),e.on(Q.Unmuted,()=>{this.emit(X.TrackUnmuted,e)});let t=e;switch(t.track&&(t.track.sid=e.trackSid),this.trackPublications.set(e.trackSid,e),e.kind){case $.Kind.Audio:this.audioTrackPublications.set(e.trackSid,e);break;case $.Kind.Video:this.videoTrackPublications.set(e.trackSid,e)}}};function CJ(e){if(!e.participantSid&&!e.participantIdentity)throw Error(`Invalid track permission, must provide at least one of participantIdentity and participantSid`);return new dR({participantIdentity:e.participantIdentity??``,participantSid:e.participantSid??``,allTracks:e.allowAll??!1,trackSids:e.allowedTrackSids||[]})}var wJ=class extends SJ{constructor(e,t,n,r,i,a,o,s){super(e,t,void 0,void 0,void 0,{loggerName:r.loggerName,loggerContextCb:()=>this.engine.logContext}),this.pendingPublishing=new Set,this.pendingPublishPromises=new Map,this.participantTrackPermissions=[],this.allParticipantsAllowedToSubscribe=!0,this.encryptionType=OI.NONE,this.e2eeStateMutex=new KN,this.enabledPublishVideoCodecs=[],this.handleReconnecting=()=>{this.reconnectFuture||=new _H},this.handleReconnected=()=>{var e,t;(t=(e=this.reconnectFuture)?.resolve)==null||t.call(e),this.reconnectFuture=void 0,this.updateTrackSubscriptionPermissions()},this.handleClosing=()=>{var e,t,n,r,i,a;this.reconnectFuture&&=(this.reconnectFuture.promise.catch(e=>this.log.warn(e.message)),(t=(e=this.reconnectFuture)?.reject)==null||t.call(e,Error(`Got disconnected during reconnection attempt`)),void 0),this.signalConnectedFuture&&=((r=(n=this.signalConnectedFuture).reject)==null||r.call(n,Error(`Got disconnected without signal connected`)),void 0),(a=(i=this.activeAgentFuture)?.reject)==null||a.call(i,Error(`Got disconnected without active agent present`)),this.activeAgentFuture=void 0,this.firstActiveAgent=void 0},this.handleSignalConnected=e=>{var t,n;e.participant&&this.updateInfo(e.participant),this.signalConnectedFuture||=new _H,(n=(t=this.signalConnectedFuture).resolve)==null||n.call(t)},this.handleSignalRequestResponse=e=>{let t=e.requestId,n=e.reason,r=e.message,i=this.pendingSignalRequests.get(t);switch(i&&(n!==TR.OK&&i.reject(new LB(r,n)),this.pendingSignalRequests.delete(t)),e.request.case){case`publishDataTrack`:{let t;switch(e.reason){case TR.NOT_ALLOWED:t=Jq.notAllowed(e.message);break;case TR.DUPLICATE_NAME:t=Jq.duplicateName(e.message);break;case TR.INVALID_NAME:t=Jq.invalidName(e.message);break;case TR.LIMIT_EXCEEDED:t=Jq.limitReached(e.message);break;default:t=Jq.unknown(e.reason,e.message)}this.roomOutgoingDataTrackManager.receivedSfuPublishResponse(e.request.value.pubHandle,{type:`error`,error:t});break}}},this.updateTrackSubscriptionPermissions=()=>{this.log.debug(`updating track subscription permissions`,{allParticipantsAllowed:this.allParticipantsAllowedToSubscribe,participantTrackPermissions:this.participantTrackPermissions}),this.engine.client.sendUpdateSubscriptionPermissions(this.allParticipantsAllowedToSubscribe,this.participantTrackPermissions.map(e=>CJ(e)))},this.onTrackUnmuted=e=>{this.onTrackMuted(e,e.isUpstreamPaused)},this.onTrackMuted=(e,t)=>{if(t===void 0&&(t=!0),!e.sid){this.log.error(`could not update mute status for unpublished track`,gV(e));return}this.engine.updateMuteStatus(e.sid,t)},this.onTrackUpstreamPaused=e=>{this.log.debug(`upstream paused`,gV(e)),this.onTrackMuted(e,!0)},this.onTrackUpstreamResumed=e=>{this.log.debug(`upstream resumed`,gV(e)),this.onTrackMuted(e,e.isMuted)},this.onTrackFeatureUpdate=e=>{let t=this.audioTrackPublications.get(e.sid);if(!t){this.log.warn(`Could not update local audio track settings, missing publication for track ${e.sid}`);return}this.engine.client.sendUpdateLocalAudioTrack(t.trackSid,t.getTrackFeatures())},this.onTrackCpuConstrained=(e,t)=>{this.log.debug(`track cpu constrained`,gV(t)),this.emit(X.LocalTrackCpuConstrained,e,t)},this.handleSubscribedQualityUpdate=e=>J(this,void 0,void 0,function*(){var t,n,r,i;if(!this.roomOptions?.dynacast)return;let a=this.videoTrackPublications.get(e.trackSid);if(!a){this.log.warn(`received subscribed quality update for unknown track`,{trackSid:e.trackSid});return}if(!a.videoTrack)return;let o=yield a.videoTrack.setPublishingCodecs(e.subscribedCodecs);try{for(var s=!0,c=tz(o),l;l=yield c.next(),t=l.done,!t;s=!0){i=l.value,s=!1;let e=i;eV(e)&&(this.log.debug(`publish ${e} for ${a.videoTrack.sid}`,gV(a)),yield this.publishAdditionalCodecForTrack(a.videoTrack,e,a.options))}}catch(e){n={error:e}}finally{try{!s&&!t&&(r=c.return)&&(yield r.call(c))}finally{if(n)throw n.error}}}),this.handleLocalTrackUnpublished=e=>{let t=this.trackPublications.get(e.trackSid);if(!t){this.log.warn(`received unpublished event for unknown track`,{trackSid:e.trackSid});return}this.unpublishTrack(t.track)},this.handleTrackEnded=e=>J(this,void 0,void 0,function*(){if(e.source===$.Source.ScreenShare||e.source===$.Source.ScreenShareAudio)this.log.debug(`unpublishing local track due to TrackEnded`,gV(e)),this.unpublishTrack(e);else if(e.isUserProvided)yield e.mute();else if(jH(e)||AH(e))try{if($V())try{let t=yield navigator==null?void 0:navigator.permissions.query({name:e.source===$.Source.Camera?`camera`:`microphone`});if(t&&t.state===`denied`)throw this.log.warn(`user has revoked access to ${e.source}`,gV(e)),t.onchange=()=>{t.state!==`denied`&&(e.isMuted||e.restartTrack(),t.onchange=null)},Error(`GetUserMedia Permission denied`)}catch{}e.isMuted||(this.log.debug(`track ended, attempting to use a different device`,gV(e)),jH(e)?yield e.restartTrack({deviceId:`default`}):yield e.restartTrack())}catch{this.log.warn(`could not restart track, muting instead`,gV(e)),yield e.mute()}}),this.audioTrackPublications=new Map,this.videoTrackPublications=new Map,this.trackPublications=new Map,this.engine=n,this.roomOptions=r,this.setupEngine(n),this.activeDeviceMap=new Map([[`audioinput`,`default`],[`videoinput`,`default`],[`audiooutput`,`default`]]),this.pendingSignalRequests=new Map,this.roomOutgoingDataStreamManager=i,this.roomOutgoingDataTrackManager=a,this.rpcClientManager=o,this.rpcServerManager=s}get lastCameraError(){return this.cameraError}get lastMicrophoneError(){return this.microphoneError}get isE2EEEnabled(){return this.encryptionType!==OI.NONE}getTrackPublication(e){let t=super.getTrackPublication(e);if(t)return t}getTrackPublicationByName(e){let t=super.getTrackPublicationByName(e);if(t)return t}setupEngine(e){this.engine=e,this.engine.on(Z.RemoteMute,(e,t)=>{let n=this.trackPublications.get(e);n&&n.track&&(t?n.mute():n.unmute())}),this.signalConnectedFuture?.isResolved&&(this.signalConnectedFuture=void 0),this.engine.on(Z.Connected,this.handleReconnected).on(Z.SignalConnected,this.handleSignalConnected).on(Z.SignalRestarted,this.handleReconnected).on(Z.SignalResumed,this.handleReconnected).on(Z.Restarting,this.handleReconnecting).on(Z.Resuming,this.handleReconnecting).on(Z.LocalTrackUnpublished,this.handleLocalTrackUnpublished).on(Z.SubscribedQualityUpdate,this.handleSubscribedQualityUpdate).on(Z.Closing,this.handleClosing).on(Z.SignalRequestResponse,this.handleSignalRequestResponse)}setMetadata(e){return J(this,void 0,void 0,function*(){yield this.requestMetadataUpdate({metadata:e})})}setName(e){return J(this,void 0,void 0,function*(){yield this.requestMetadataUpdate({name:e})})}setAttributes(e){return J(this,void 0,void 0,function*(){yield this.requestMetadataUpdate({attributes:e})})}requestMetadataUpdate(e){return J(this,arguments,void 0,function(e){var t=this;let n=e.metadata,r=e.name,i=e.attributes;return function*(){return new vB((e,a)=>J(t,void 0,void 0,function*(){try{let t=!1,o=yield this.engine.client.sendUpdateLocalMetadata(n??this.metadata??``,r??this.name??``,i),s=performance.now();for(this.pendingSignalRequests.set(o,{resolve:e,reject:e=>{a(e),t=!0},values:{name:r,metadata:n,attributes:i}});performance.now()-s<5e3&&!t;){if((!r||this.name===r)&&(!n||this.metadata===n)&&(!i||Object.entries(i).every(e=>{let t=zP(e,2),n=t[0],r=t[1];return this.attributes[n]===r||r===``&&!this.attributes[n]}))){this.pendingSignalRequests.delete(o),e();return}yield jV(50)}a(new LB(`Request to update local metadata timed out`,`TimeoutError`))}catch(e){e instanceof Error?a(e):a(Error(String(e)))}}))}()})}setCameraEnabled(e,t,n){return this.setTrackEnabled($.Source.Camera,e,t,n)}setMicrophoneEnabled(e,t,n){return this.setTrackEnabled($.Source.Microphone,e,t,n)}setScreenShareEnabled(e,t,n){return this.setTrackEnabled($.Source.ScreenShare,e,t,n)}setE2EEEnabled(e){return J(this,void 0,void 0,function*(){let t=yield this.e2eeStateMutex.lock();try{if(this.encryptionType=e?OI.GCM:OI.NONE,yield Promise.all(this.pendingPublishPromises.values()),this.trackPublications.size===0||Array.from(this.trackPublications.values()).every(t=>t.isEncrypted===e))return;yield this.republishAllTracks(void 0,!1)}finally{t()}})}setTrackEnabled(e,t,n,r){return J(this,void 0,void 0,function*(){this.log.debug(`setTrackEnabled`,{source:e,enabled:t}),this.republishPromise&&(yield this.republishPromise);let i=this.getTrackPublication(e);if(t){if(i)yield i.unmute();else{let t;if(this.pendingPublishing.has(e)){let t=yield this.waitForPendingPublicationOfSource(e);return t||this.log.info(`waiting for pending publication promise timed out`,{source:e}),yield t?.unmute(),t}this.pendingPublishing.add(e);try{switch(e){case $.Source.Camera:t=yield this.createTracks({video:n??!0});break;case $.Source.Microphone:t=yield this.createTracks({audio:n??!0});break;case $.Source.ScreenShare:t=yield this.createScreenTracks(Object.assign({},n));break;default:throw new jB(e)}}catch(n){throw t?.forEach(e=>{e.stop()}),n instanceof Error&&this.emit(X.MediaDevicesError,n,fV(e)),this.pendingPublishing.delete(e),n}for(let r of t){let t=Object.assign(Object.assign({},this.roomOptions.publishDefaults),n);e===$.Source.Microphone&&OH(r)&&t.preConnectBuffer&&(this.log.info(`starting preconnect buffer for microphone`),r.startPreConnectBuffer())}try{let e=[];for(let n of t)this.log.info(`publishing track`,gV(n)),e.push(this.publishTrack(n,r));i=zP(yield Promise.all(e),1)[0]}catch(e){throw t?.forEach(e=>{e.stop()}),e}finally{this.pendingPublishing.delete(e)}}}else if(!i?.track&&this.pendingPublishing.has(e)&&(i=yield this.waitForPendingPublicationOfSource(e),i||this.log.info(`waiting for pending publication promise timed out`,{source:e})),i&&i.track){if(e===$.Source.ScreenShare){let e=[this.unpublishTrack(i.track)],t=this.getTrackPublication($.Source.ScreenShareAudio);t&&t.track&&e.push(this.unpublishTrack(t.track)),i=zP(yield Promise.all(e),1)[0]}else yield i.mute()}return i})}enableCameraAndMicrophone(){return J(this,void 0,void 0,function*(){if(!(this.pendingPublishing.has($.Source.Camera)||this.pendingPublishing.has($.Source.Microphone))){this.pendingPublishing.add($.Source.Camera),this.pendingPublishing.add($.Source.Microphone);try{let e=yield this.createTracks({audio:!0,video:!0});yield Promise.all(e.map(e=>this.publishTrack(e)))}finally{this.pendingPublishing.delete($.Source.Camera),this.pendingPublishing.delete($.Source.Microphone)}}})}createTracks(e){return J(this,void 0,void 0,function*(){e??={};let t=oV(e,this.roomOptions?.audioCaptureDefaults,this.roomOptions?.videoCaptureDefaults);try{return(yield yJ(t,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext})).map(e=>(OH(e)&&(this.microphoneError=void 0,e.setAudioContext(this.audioContext),e.source=$.Source.Microphone,this.emit(X.AudioStreamAcquired)),kH(e)&&(this.cameraError=void 0,e.source=$.Source.Camera),e))}catch(t){throw t instanceof Error&&(e.audio&&(this.microphoneError=t),e.video&&(this.cameraError=t)),t}})}createScreenTracks(e){return J(this,void 0,void 0,function*(){if(e===void 0&&(e={}),navigator.mediaDevices.getDisplayMedia===void 0)throw new AB(`getDisplayMedia not supported`);e.resolution===void 0&&!YV()&&(e.resolution=aV.h1080fps30.resolution);let t=pV(e),n=yield navigator.mediaDevices.getDisplayMedia(t),r=n.getVideoTracks();if(r.length===0)throw new jB(`no video track found`);let i=new eK(r[0],void 0,!1,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext});i.source=$.Source.ScreenShare,e.contentHint&&(i.mediaStreamTrack.contentHint=e.contentHint);let a=[i];if(n.getAudioTracks().length>0){this.emit(X.AudioStreamAcquired);let e=new PG(n.getAudioTracks()[0],void 0,!1,this.audioContext,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext});e.source=$.Source.ScreenShareAudio,a.push(e)}return a})}publishTrack(e,t){return J(this,void 0,void 0,function*(){return this.publishOrRepublishTrack(e,t)})}waitForNextEngineRestart(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:15e3;return new Promise((t,n)=>{let r=()=>{clearTimeout(o),this.engine.off(Z.Restarted,i),this.engine.off(Z.Closing,a)},i=()=>{r(),t()},a=()=>{r(),n(Error(`engine closed before restart completed`))},o=setTimeout(()=>{r(),n(Error(`timed out waiting for engine restart`))},e);this.engine.once(Z.Restarted,i),this.engine.once(Z.Closing,a)})}publishOrRepublishTrack(e,t){return J(this,arguments,void 0,function(e,t){var n=this;let r=arguments.length>2&&arguments[2]!==void 0&&arguments[2],i=arguments.length>3&&arguments[3]!==void 0&&arguments[3];return function*(){jH(e)&&e.setAudioContext(n.audioContext),yield n.reconnectFuture?.promise,n.republishPromise&&!r&&(yield n.republishPromise),DH(e)&&n.pendingPublishPromises.has(e)&&(yield n.pendingPublishPromises.get(e));let a;if(e instanceof MediaStreamTrack)a=e.getConstraints();else{a=e.constraints;let t;switch(e.source){case $.Source.Microphone:t=`audioinput`;break;case $.Source.Camera:t=`videoinput`}t&&n.activeDeviceMap.has(t)&&(a=Object.assign(Object.assign({},a),{deviceId:n.activeDeviceMap.get(t)}))}if(e instanceof MediaStreamTrack)switch(e.kind){case`audio`:e=new PG(e,a,!0,n.audioContext,{loggerName:n.roomOptions.loggerName,loggerContextCb:()=>n.logContext});break;case`video`:e=new eK(e,a,!0,{loggerName:n.roomOptions.loggerName,loggerContextCb:()=>n.logContext});break;default:throw new jB(`unsupported MediaStreamTrack kind ${e.kind}`)}else e.updateLoggerOptions({loggerName:n.roomOptions.loggerName,loggerContextCb:()=>n.logContext});let o;if(n.trackPublications.forEach(t=>{t.track&&t.track===e&&(o=t)}),o)return n.log.warn(`track has already been published, skipping`,gV(o)),o;let s=Object.assign(Object.assign({},n.roomOptions.publishDefaults),t),c=`channelCount`in e.mediaStreamTrack.getSettings()&&e.mediaStreamTrack.getSettings().channelCount===2||e.mediaStreamTrack.getConstraints().channelCount===2,l=s.forceStereo??c;l&&(s.dtx===void 0&&n.log.debug(`Opus DTX will be disabled for stereo tracks by default. Enable them explicitly to make it work.`,gV(e)),s.red===void 0&&n.log.debug(`Opus RED will be disabled for stereo tracks by default. Enable them explicitly to make it work.`),s.dtx??=!1,s.red??=!1),!QV()&&n.roomOptions.e2ee&&(n.log.info(`End-to-end encryption is set up, simulcast publishing will be disabled on Safari versions and iOS browsers running iOS < v17.2`),s.simulcast=!1),s.source&&(e.source=s.source);let u=new Promise((t,r)=>J(n,void 0,void 0,function*(){try{if(this.engine.client.currentState!==_W.CONNECTED){this.log.debug(`deferring track publication until signal is connected`,{track:gV(e)});let n=!1,i=setTimeout(()=>{n=!0,e.stop(),r(new IB(`publishing rejected as engine not connected within timeout`,408))},15e3);if(yield this.waitUntilEngineConnected(),clearTimeout(i),n)return;t(yield this.publish(e,s,l))}else try{t(yield this.publish(e,s,l))}catch(e){r(e)}}catch(e){r(e)}}));n.pendingPublishPromises.set(e,u);try{return yield u}catch(a){if(!i&&a instanceof PB)return n.log.warn(`negotiation due to track publish failed, retrying after reconnect`,{error:a}),n.pendingPublishPromises.delete(e),yield n.waitForNextEngineRestart(),yield n.publishOrRepublishTrack(e,t,r,!0);throw a}finally{n.pendingPublishPromises.delete(e)}}()})}waitUntilEngineConnected(){return this.signalConnectedFuture||=new _H,this.signalConnectedFuture.promise}hasPermissionsToPublish(e){if(!this.permissions)return this.log.warn(`no permissions present for publishing track`,gV(e)),!1;let t=this.permissions,n=t.canPublish,r=t.canPublishSources;return n&&(r.length===0||r.map(e=>bV(e)).includes(e.source))?!0:(this.log.warn(`insufficient permissions to publish`,gV(e)),!1)}publish(e,t,n){return J(this,void 0,void 0,function*(){if(!this.hasPermissionsToPublish(e))throw new IB(`failed to publish track, insufficient permissions`,403);Array.from(this.trackPublications.values()).find(t=>DH(e)&&t.source===e.source)&&e.source!==$.Source.Unknown&&this.log.info(`publishing a second track with the same source: ${e.source}`,gV(e)),t.stopMicTrackOnMute&&OH(e)&&(e.stopOnMute=!0),e.source===$.Source.ScreenShare&&WV()&&(t.simulcast=!1),t.videoCodec===`av1`&&!PV()&&(t.videoCodec=void 0),t.videoCodec===`vp9`&&!FV()&&(t.videoCodec=void 0),t.videoCodec===void 0&&(t.videoCodec=iG),this.enabledPublishVideoCodecs.length>0&&(this.enabledPublishVideoCodecs.some(e=>t.videoCodec===mV(e.mime))||(t.videoCodec=mV(this.enabledPublishVideoCodecs[0].mime)));let r=t.videoCodec;e.on(Q.Muted,this.onTrackMuted),e.on(Q.Unmuted,this.onTrackUnmuted),e.on(Q.Ended,this.handleTrackEnded),e.on(Q.UpstreamPaused,this.onTrackUpstreamPaused),e.on(Q.UpstreamResumed,this.onTrackUpstreamResumed),e.on(Q.AudioTrackFeatureUpdate,this.onTrackFeatureUpdate);let i=[],a=!(t.dtx??!0),o=e.getSourceTrackSettings();o.autoGainControl&&i.push(yI.TF_AUTO_GAIN_CONTROL),o.echoCancellation&&i.push(yI.TF_ECHO_CANCELLATION),o.noiseSuppression&&i.push(yI.TF_NOISE_SUPPRESSION),o.channelCount&&o.channelCount>1&&i.push(yI.TF_STEREO),a&&i.push(yI.TF_NO_DTX),jH(e)&&e.hasPreConnectBuffer&&i.push(yI.TF_PRECONNECT_BUFFER);let s=this.normalizeRequestedFrameMetadataOptions(e,t),c=new TL({cid:e.mediaStreamTrack.id,name:t.name,type:$.kindToProto(e.kind),muted:e.isMuted,source:$.sourceToProto(e.source),disableDtx:a,encryption:this.encryptionType,stereo:n,disableRed:this.isE2EEEnabled||!(t.red??!0),stream:t?.stream,backupCodecPolicy:t?.backupCodecPolicy,audioFeatures:i,packetTrailerFeatures:s}),l;if(e.kind===$.Kind.Video){let n;try{n=yield e.waitForDimensions()}catch{let t=this.roomOptions.videoCaptureDefaults?.resolution??rV.h720.resolution;n={width:t.width,height:t.height},this.log.error(`could not determine track dimensions, using defaults`,Object.assign(Object.assign({},gV(e)),{dims:n}))}if(c.width=n.width,c.height=n.height,AH(e)){RV(r,t)&&(zV()||!VV(this.engine?.serverVersion))&&(t.simulcast=!1,this.log.info(`SVC simulcast is not supported, disabling simulcast.`,gV(e)));let n=RV(r,t);IV(r)&&!n&&(e.source===$.Source.ScreenShare&&(t.scalabilityMode=`L1T3`,`contentHint`in e.mediaStreamTrack&&(e.mediaStreamTrack.contentHint=`motion`,this.log.debug(`forcing contentHint to motion for screenshare with SVC codecs`,gV(e)))),t.scalabilityMode=t.scalabilityMode??`L3T3_KEY`);let i=new wL({codec:r,cid:e.mediaStreamTrack.id});n&&(i.videoLayerMode=VI.ONE_SPATIAL_LAYER_PER_STREAM),c.simulcastCodecs=[i],t.backupCodec===!0&&(t.backupCodec={codec:iG}),t.backupCodec&&r!==t.backupCodec.codec&&c.encryption===OI.NONE&&(this.roomOptions.dynacast||(this.roomOptions.dynacast=!0),c.simulcastCodecs.push(new wL({codec:t.backupCodec.codec,cid:``})))}l=UG(e.source===$.Source.ScreenShare,c.width,c.height,t),c.layers=rK(c.width,c.height,l,IV(t.videoCodec)&&!RV(t.videoCodec,t))}else e.kind===$.Kind.Audio&&(l=[{maxBitrate:t.audioPreset?.maxBitrate,priority:t.audioPreset?.priority??`high`,networkPriority:t.audioPreset?.priority??`high`}]);if(!this.engine||this.engine.isClosed)throw new NB(`cannot publish track when not connected`);let u=()=>J(this,void 0,void 0,function*(){if(!this.engine.pcManager)throw new NB(`pcManager is not ready`);if(e.sender=yield this.engine.createSender(e,t,l),AH(e)&&(e.publishOptions=t),this.emit(X.LocalSenderCreated,e.sender,e),AH(e)&&(t.degradationPreference??=QG(e),e.setDegradationPreference(t.degradationPreference)),l){if(WV()&&e.kind===$.Kind.Audio){let t;for(let n of this.engine.pcManager.publisher.getTransceivers())if(n.sender===e.sender){t=n;break}t&&this.engine.pcManager.publisher.setTrackCodecBitrate({transceiver:t,codec:`opus`,maxbr:l[0]?.maxBitrate?l[0].maxBitrate/1e3:0})}else if(e.codec&&vH(e.codec)){let n=WG(e.codec,t,l);n>0&&this.engine.pcManager.publisher.setTrackCodecBitrate({cid:c.cid,codec:e.codec,maxbr:n/1e3,isScreenShare:e.source===$.Source.ScreenShare})}}yield this.engine.negotiate()}),d,f=new Promise((t,n)=>J(this,void 0,void 0,function*(){try{d=yield this.engine.addTrack(c),t(d)}catch(t){if(e.sender&&this.engine.pcManager?.publisher){try{this.engine.pcManager.publisher.removeTrack(e.sender)}catch(e){this.log.error(e)}yield this.engine.negotiate().catch(t=>{this.log.error(`failed to negotiate after removing track due to failed add track request`,Object.assign(Object.assign({},gV(e)),{error:t}))})}n(t)}}));if(this.enabledPublishVideoCodecs.length>0&&s.length===0)d=(yield Promise.all([f,u()]))[0];else{d=yield f;let n;if(d.codecs.forEach(e=>{n===void 0&&(n=e.mimeType)}),n&&e.kind===$.Kind.Video){let i=mV(n);i!==r&&(this.log.debug(`falling back to server selected codec`,Object.assign(Object.assign({},gV(e)),{codec:i})),t.videoCodec=i,l=UG(e.source===$.Source.ScreenShare,c.width,c.height,t))}yield u()}let p=new vJ(e.kind,d,e,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext});if(p.on(Q.CpuConstrained,e=>this.onTrackCpuConstrained(e,p)),p.options=t,e.sid=d.sid,AH(e)&&(e.publishOptions=t,c.width&&c.height&&(e.lastEncodedDimensions={width:c.width,height:c.height})),this.log.debug(`publishing ${e.kind} with encodings`,{encodings:l,trackInfo:d}),AH(e)?e.startMonitor(this.engine.client):jH(e)&&e.startMonitor(),this.addTrackPublication(p),this.emit(X.LocalTrackPublished,p),jH(e)&&d.audioFeatures.includes(yI.TF_PRECONNECT_BUFFER)){let t=e.getPreConnectBuffer(),n=e.getPreConnectBufferMimeType();this.on(X.LocalTrackSubscribed,t=>{if(t.trackSid===d.sid){if(!e.hasPreConnectBuffer){this.log.warn(`subscribe event came to late, buffer already closed`);return}this.log.debug(`finished recording preconnect buffer`,gV(e)),e.stopPreConnectBuffer()}}),t&&new Promise((r,i)=>J(this,void 0,void 0,function*(){var a,s,c,l;try{this.log.debug(`waiting for agent`,gV(e));let m=setTimeout(()=>{i(Error(`agent not active within 10 seconds`))},1e4),h=yield this.waitUntilActiveAgentPresent();clearTimeout(m),this.log.debug(`sending preconnect buffer`,gV(e));let g=yield this.streamBytes({name:`preconnect-buffer`,mimeType:n,topic:`lk.agent.pre-connect-audio-buffer`,destinationIdentities:[h.identity],attributes:{trackId:p.trackSid,sampleRate:String(o.sampleRate??`48000`),channels:String(o.channelCount??`1`)}});try{for(var u=!0,d=tz(t),f;f=yield d.next(),a=f.done,!a;u=!0){l=f.value,u=!1;let e=l;yield g.write(e)}}catch(e){s={error:e}}finally{try{!u&&!a&&(c=d.return)&&(yield c.call(d))}finally{if(s)throw s.error}}yield g.close(),r()}catch(e){i(e)}})).then(()=>{this.log.debug(`preconnect buffer sent successfully`,gV(e))}).catch(t=>{this.log.error(`error sending preconnect buffer`,Object.assign(Object.assign({},gV(e)),{error:t}))})}return p})}canPublishFrameMetadata(){return!!(this.roomOptions.e2ee||this.roomOptions.encryption||uU(this.roomOptions.frameMetadata??this.roomOptions.packetTrailer))}normalizeRequestedFrameMetadataOptions(e,t){let n=t.frameMetadata??t.packetTrailer;if(e.kind!==$.Kind.Video||!dU(n))return t.frameMetadata=void 0,t.packetTrailer=void 0,[];if(!this.canPublishFrameMetadata())return this.log.warn(`frame metadata transform not supported; not advertising features`,Object.assign(Object.assign({},this.logContext),gV(e))),t.frameMetadata=void 0,t.packetTrailer=void 0,[];let r=fU(n),i=pU(r);return t.frameMetadata=i,t.packetTrailer=i,r}get isLocal(){return!0}publishAdditionalCodecForTrack(e,t,n){return J(this,void 0,void 0,function*(){if(this.encryptionType!==OI.NONE)return;let r;if(this.trackPublications.forEach(t=>{t.track&&t.track===e&&(r=t)}),!r)throw new jB(`track is not published`);if(!AH(e))throw new jB(`track is not a video track`);let i=Object.assign(Object.assign({},this.roomOptions?.publishDefaults),n),a=GG(e,t,i);if(!a){this.log.info(`backup codec has been disabled, ignoring request to add additional codec for track`,gV(e));return}let o=e.addSimulcastTrack(t,a);if(!o)return;let s=this.normalizeRequestedFrameMetadataOptions(e,i),c=new TL({cid:o.mediaStreamTrack.id,type:$.kindToProto(e.kind),muted:e.isMuted,source:$.sourceToProto(e.source),sid:e.sid,packetTrailerFeatures:s,simulcastCodecs:[{codec:i.videoCodec,cid:o.mediaStreamTrack.id}]});if(c.layers=rK(c.width,c.height,a),!this.engine||this.engine.isClosed)throw new NB(`cannot publish track when not connected`);let l=(yield Promise.all([this.engine.addTrack(c),J(this,void 0,void 0,function*(){yield this.engine.createSimulcastSender(e,o,i,a),yield this.engine.negotiate()})]))[0];this.log.debug(`published ${t} for track ${e.sid}`,{encodings:a,trackInfo:l})})}unpublishTrack(e,t){return J(this,void 0,void 0,function*(){if(DH(e)){let t=this.pendingPublishPromises.get(e);t&&(this.log.debug(`awaiting publish promise before attempting to unpublish`,gV(e)),yield t)}let n=this.getPublicationForTrack(e),r=n?gV(n):void 0;if(this.log.info(`unpublishing track`,r),!n||!n.track){this.log.warn(`track was not unpublished because no publication was found`,r);return}e=n.track,e.off(Q.Muted,this.onTrackMuted),e.off(Q.Unmuted,this.onTrackUnmuted),e.off(Q.Ended,this.handleTrackEnded),e.off(Q.UpstreamPaused,this.onTrackUpstreamPaused),e.off(Q.UpstreamResumed,this.onTrackUpstreamResumed),e.off(Q.AudioTrackFeatureUpdate,this.onTrackFeatureUpdate),t===void 0&&(t=this.roomOptions?.stopLocalTrackOnUnpublish??!0),t?e.stop():e.stopMonitor();let i=!1,a=e.sender;if(e.sender=void 0,this.engine.pcManager&&this.engine.pcManager.currentState<uG.FAILED&&a)try{for(let e of this.engine.pcManager.publisher.getTransceivers())e.sender===a&&(e.direction=`inactive`,i=!0);try{i=this.engine.removeTrack(a)}catch(e){this.log.warn(e),i=!0}if(AH(e)){for(let t of e.simulcastCodecs){let e=zP(t,2)[1];if(e.sender){try{i=this.engine.removeTrack(e.sender)}catch(e){this.log.warn(e),i=!0}e.sender=void 0}}e.simulcastCodecs.clear()}}catch(e){this.log.warn(`failed to unpublish track`,Object.assign(Object.assign({},r),{error:e}))}switch(this.trackPublications.delete(n.trackSid),n.kind){case $.Kind.Audio:this.audioTrackPublications.delete(n.trackSid);break;case $.Kind.Video:this.videoTrackPublications.delete(n.trackSid)}return this.emit(X.LocalTrackUnpublished,n),n.setTrack(void 0),i&&(yield this.engine.negotiate()),n})}unpublishTracks(e){return J(this,void 0,void 0,function*(){return(yield Promise.all(e.map(e=>this.unpublishTrack(e)))).filter(e=>!!e)})}republishAllTracks(e){return J(this,arguments,void 0,function(e){var t=this;let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return function*(){t.republishPromise&&(yield t.republishPromise),t.republishPromise=new vB((r,i)=>J(t,void 0,void 0,function*(){try{let t=[];this.trackPublications.forEach(n=>{n.track&&(e&&(n.options=Object.assign(Object.assign({},n.options),e)),t.push(n))}),yield Promise.all(t.map(e=>J(this,void 0,void 0,function*(){let t=e.track;yield this.unpublishTrack(t,!1),n&&!t.isMuted&&t.source!==$.Source.ScreenShare&&t.source!==$.Source.ScreenShareAudio&&(jH(t)||AH(t))&&!t.isUserProvided&&(this.log.debug(`restarting existing track`,{track:e.trackSid}),yield t.restartTrack()),yield this.publishOrRepublishTrack(t,e.options,!0)}))),r()}catch(e){e instanceof Error?i(e):i(Error(String(e)))}finally{this.republishPromise=void 0}})),yield t.republishPromise}()})}publishData(e){return J(this,arguments,void 0,function(e){var t=this;let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return function*(){let r=n.reliable?gG.RELIABLE:gG.LOSSY,i=n.reliable?UI.RELIABLE:UI.LOSSY,a=n.destinationIdentities,o=n.topic,s=new HI({kind:i,value:{case:`user`,value:new JI({participantIdentity:t.identity,payload:e,destinationIdentities:a,topic:o})}});yield t.engine.sendDataPacket(s,r)}()})}publishDtmf(e,t){return J(this,void 0,void 0,function*(){let n=new HI({kind:UI.RELIABLE,value:{case:`sipDtmf`,value:new YI({code:e,digit:t})}});yield this.engine.sendDataPacket(n,gG.RELIABLE)})}sendChatMessage(e,t){return J(this,void 0,void 0,function*(){let n={id:crypto.randomUUID(),message:e,timestamp:Date.now(),attachedFiles:t?.attachments},r=new HI({value:{case:`chatMessage`,value:new XI(Object.assign(Object.assign({},n),{timestamp:CP.parse(n.timestamp)}))}});return yield this.engine.sendDataPacket(r,gG.RELIABLE),this.emit(X.ChatMessage,n),n})}editChatMessage(e,t){return J(this,void 0,void 0,function*(){let n=Object.assign(Object.assign({},t),{message:e,editTimestamp:Date.now()}),r=new HI({value:{case:`chatMessage`,value:new XI(Object.assign(Object.assign({},n),{timestamp:CP.parse(n.timestamp),editTimestamp:CP.parse(n.editTimestamp)}))}});return yield this.engine.sendDataPacket(r,gG.RELIABLE),this.emit(X.ChatMessage,n),n})}sendText(e,t){return J(this,void 0,void 0,function*(){return this.roomOutgoingDataStreamManager.sendText(e,t)})}streamText(e){return J(this,void 0,void 0,function*(){return this.roomOutgoingDataStreamManager.streamText(e)})}sendFile(e,t){return J(this,void 0,void 0,function*(){return this.roomOutgoingDataStreamManager.sendFile(e,t)})}sendBytes(e,t){return J(this,void 0,void 0,function*(){return this.roomOutgoingDataStreamManager.sendBytes(e,t)})}streamBytes(e){return J(this,void 0,void 0,function*(){return this.roomOutgoingDataStreamManager.streamBytes(e)})}performRpc(e){return this.rpcClientManager.performRpc(e).then(e=>{let t=zP(e,2);return t[0],t[1]})}registerRpcMethod(e,t){this.rpcServerManager.registerRpcMethod(e,t)}unregisterRpcMethod(e){this.rpcServerManager.unregisterRpcMethod(e)}setTrackSubscriptionPermissions(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];this.participantTrackPermissions=t,this.allParticipantsAllowedToSubscribe=e,this.engine.client.isDisconnected||this.updateTrackSubscriptionPermissions()}setEnabledPublishCodecs(e){this.enabledPublishVideoCodecs=e.filter(e=>e.mime.split(`/`)[0].toLowerCase()===`video`)}updateInfo(e){return super.updateInfo(e)?(e.tracks.forEach(e=>{let t=this.trackPublications.get(e.sid);if(t){let n=t.isMuted||(t.track?.isUpstreamPaused??!1);n!==e.muted&&(this.log.debug(`updating server mute state after reconcile`,Object.assign(Object.assign({},gV(t)),{mutedOnServer:n})),this.engine.client.sendMuteTrack(e.sid,n))}}),!0):!1}setActiveAgent(e){var t,n,r,i;this.firstActiveAgent=e,e&&!this.firstActiveAgent&&(this.firstActiveAgent=e),e?(n=(t=this.activeAgentFuture)?.resolve)==null||n.call(t,e):(i=(r=this.activeAgentFuture)?.reject)==null||i.call(r,Error(`Agent disconnected`)),this.activeAgentFuture=void 0}waitUntilActiveAgentPresent(){return this.firstActiveAgent?Promise.resolve(this.firstActiveAgent):(this.activeAgentFuture||=new _H,this.activeAgentFuture.promise)}getPublicationForTrack(e){let t;return this.trackPublications.forEach(n=>{let r=n.track;r&&(e instanceof MediaStreamTrack?(jH(r)||AH(r))&&r.mediaStreamTrack===e&&(t=n):e===r&&(t=n))}),t}waitForPendingPublicationOfSource(e){return J(this,void 0,void 0,function*(){let t=Date.now();for(;Date.now()<t+1e4;){let t=Array.from(this.pendingPublishPromises.entries()).find(t=>zP(t,1)[0].source===e);if(t)return t[1];yield jV(20)}})}publishDataTrack(e){return J(this,void 0,void 0,function*(){let t=new $q(e,this.roomOutgoingDataTrackManager);return yield t.publish(),t})}},TJ=class extends DOMException{constructor(e,t){super(e,`AbortError`),this.reason=t}},EJ=class extends Map{constructor(){super(...arguments),this.pending=new Map}set(e,t){var n;super.set(e,t);let r=this.pending?.get(e);if(r){for(let e of r)e.isResolved||(n=e.resolve)==null||n.call(e,t);this.pending.delete(e)}return this}get[Symbol.toStringTag](){return`DeferrableMap`}getDeferred(e,t){return J(this,void 0,void 0,function*(){let n=this.get(e);if(n!==void 0)return n;if(t?.aborted)throw new TJ(`The operation was aborted.`,t.reason);let r=new _H(void 0,()=>{let t=this.pending.get(e);if(!t)return;let n=t.indexOf(r);n!==-1&&t.splice(n,1),t.length===0&&this.pending.delete(e)}),i=this.pending.get(e);if(i?i.push(r):this.pending.set(e,[r]),t){let e=()=>{var e;r.isResolved||(e=r.reject)==null||e.call(r,new TJ(`The operation was aborted.`,t.reason))};t.addEventListener(`abort`,e,{once:!0}),r.promise.finally(()=>{t.removeEventListener(`abort`,e)})}return r.promise})}},DJ=class extends _J{constructor(e,t,n,r){super(e,t.sid,t.name,r),this.track=void 0,this.allowed=!0,this.requestedDisabled=void 0,this.visible=!0,this.handleEnded=e=>{this.setTrack(void 0),this.emit(Q.Ended,e)},this.handleVisibilityChange=e=>{this.log.debug(`adaptivestream video visibility ${this.trackSid}, visible=${e}`,this.logContext),this.visible=e,this.emitTrackUpdate()},this.handleVideoDimensionsChange=e=>{this.log.debug(`adaptivestream video dimensions ${e.width}x${e.height}`,this.logContext),this.videoDimensionsAdaptiveStream=e,this.emitTrackUpdate()},this.subscribed=n,this.updateInfo(t)}setSubscribed(e){let t=this.subscriptionStatus,n=this.permissionStatus;this.subscribed=e,e&&(this.allowed=!0);let r=new BL({trackSids:[this.trackSid],subscribe:this.subscribed,participantTracks:[new tL({participantSid:``,trackSids:[this.trackSid]})]});this.emit(Q.UpdateSubscription,r),this.emitSubscriptionUpdateIfChanged(t),this.emitPermissionUpdateIfChanged(n)}get subscriptionStatus(){return this.subscribed===!1?_J.SubscriptionStatus.Unsubscribed:super.isSubscribed?_J.SubscriptionStatus.Subscribed:_J.SubscriptionStatus.Desired}get permissionStatus(){return this.allowed?_J.PermissionStatus.Allowed:_J.PermissionStatus.NotAllowed}get isSubscribed(){return this.subscribed!==!1&&super.isSubscribed}get isDesired(){return this.subscribed!==!1}get isEnabled(){return this.requestedDisabled===void 0?!this.isAdaptiveStream||this.visible:!this.requestedDisabled}get isLocal(){return!1}setEnabled(e){this.isManualOperationAllowed()&&this.requestedDisabled!==!e&&(this.requestedDisabled=!e,this.emitTrackUpdate())}setVideoQuality(e){this.isManualOperationAllowed()&&this.requestedMaxQuality!==e&&(this.requestedMaxQuality=e,this.requestedVideoDimensions=void 0,this.emitTrackUpdate())}setVideoDimensions(e){this.isManualOperationAllowed()&&(this.requestedVideoDimensions?.width!==e.width||this.requestedVideoDimensions?.height!==e.height)&&(PH(this.track)&&(this.requestedVideoDimensions=e),this.requestedMaxQuality=void 0,this.emitTrackUpdate())}setVideoFPS(e){this.isManualOperationAllowed()&&PH(this.track)&&this.fps!==e&&(this.fps=e,this.emitTrackUpdate())}get videoQuality(){return this.requestedMaxQuality??TV.HIGH}setTrack(e){let t=this.subscriptionStatus,n=this.permissionStatus,r=this.track;r!==e&&(r&&(r.off(Q.VideoDimensionsChanged,this.handleVideoDimensionsChange),r.off(Q.VisibilityChanged,this.handleVisibilityChange),r.off(Q.Ended,this.handleEnded),r.detach(),r.stopMonitor(),this.emit(Q.Unsubscribed,r)),super.setTrack(e),e&&(e.sid=this.trackSid,e.on(Q.VideoDimensionsChanged,this.handleVideoDimensionsChange),e.on(Q.VisibilityChanged,this.handleVisibilityChange),e.on(Q.Ended,this.handleEnded),this.emit(Q.Subscribed,e)),this.emitPermissionUpdateIfChanged(n),this.emitSubscriptionUpdateIfChanged(t))}setAllowed(e){let t=this.subscriptionStatus,n=this.permissionStatus;this.allowed=e,this.emitPermissionUpdateIfChanged(n),this.emitSubscriptionUpdateIfChanged(t)}setSubscriptionError(e){this.emit(Q.SubscriptionFailed,e)}updateInfo(e){super.updateInfo(e);let t=this.metadataMuted;this.metadataMuted=e.muted,this.track?this.track.setMuted(e.muted):t!==e.muted&&this.emit(e.muted?Q.Muted:Q.Unmuted)}emitSubscriptionUpdateIfChanged(e){let t=this.subscriptionStatus;e!==t&&this.emit(Q.SubscriptionStatusChanged,t,e)}emitPermissionUpdateIfChanged(e){this.permissionStatus!==e&&this.emit(Q.SubscriptionPermissionChanged,this.permissionStatus,e)}isManualOperationAllowed(){return this.isDesired?!0:(this.log.warn(`cannot update track settings when not subscribed`,this.logContext),!1)}get isAdaptiveStream(){return PH(this.track)&&this.track.isAdaptiveStream}emitTrackUpdate(){let e=new qL({trackSids:[this.trackSid],disabled:!this.isEnabled,fps:this.fps});if(this.kind===$.Kind.Video){let t=this.requestedVideoDimensions;if(this.videoDimensionsAdaptiveStream!==void 0){if(t)xV(this.videoDimensionsAdaptiveStream,t)&&(this.log.debug(`using adaptive stream dimensions instead of requested`,Object.assign(Object.assign({},this.logContext),this.videoDimensionsAdaptiveStream)),t=this.videoDimensionsAdaptiveStream);else if(this.requestedMaxQuality!==void 0&&this.trackInfo){let e=SV(this.trackInfo,this.requestedMaxQuality);e&&xV(this.videoDimensionsAdaptiveStream,e)&&(this.log.debug(`using adaptive stream dimensions instead of max quality layer`,Object.assign(Object.assign({},this.logContext),this.videoDimensionsAdaptiveStream)),t=this.videoDimensionsAdaptiveStream)}else this.log.debug(`using adaptive stream dimensions`,Object.assign(Object.assign({},this.logContext),this.videoDimensionsAdaptiveStream)),t=this.videoDimensionsAdaptiveStream}t?(e.width=Math.ceil(t.width),e.height=Math.ceil(t.height)):this.requestedMaxQuality===void 0?(this.log.debug(`using default quality`,Object.assign(Object.assign({},this.logContext),{quality:TV.HIGH})),e.quality=TV.HIGH):(this.log.debug(`using requested max quality`,Object.assign(Object.assign({},this.logContext),{quality:this.requestedMaxQuality})),e.quality=this.requestedMaxQuality)}this.emit(Q.UpdateSettings,e)}},OJ=class e extends SJ{static fromParticipantInfo(t,n,r,i){return new e(t,n.sid,n.identity,n.name,n.metadata,n.attributes,r,n.kind,n.dataTracks.map(e=>new Oq(HU.from(e),i,{publisherIdentity:n.identity})),n.clientProtocol,n.capabilities)}get logContext(){return Object.assign(Object.assign({},super.logContext),{remoteParticipantID:this.sid,remoteParticipant:this.identity})}constructor(e,t,n,r,i,a,o){let s=arguments.length>7&&arguments[7]!==void 0?arguments[7]:EI.STANDARD,c=arguments.length>8&&arguments[8]!==void 0?arguments[8]:[],l=arguments.length>9&&arguments[9]!==void 0?arguments[9]:0,u=arguments.length>10&&arguments[10]!==void 0?arguments[10]:[];super(t,n||``,r,i,a,o,s),this.signalClient=e,this.trackPublications=new Map,this.audioTrackPublications=new Map,this.videoTrackPublications=new Map,this.dataTracks=new EJ(c.map(e=>[e.info.name,e])),this.volumeMap=new Map,this.clientProtocol=l,this.capabilities=u}addTrackPublication(e){super.addTrackPublication(e),e.on(Q.UpdateSettings,t=>{this.log.debug(`send update settings`,Object.assign(Object.assign(Object.assign({},this.logContext),gV(e)),{settings:t})),this.signalClient.sendUpdateTrackSettings(t)}),e.on(Q.UpdateSubscription,e=>{e.participantTracks.forEach(e=>{e.participantSid=this.sid}),this.signalClient.sendUpdateSubscription(e)}),e.on(Q.SubscriptionPermissionChanged,t=>{this.emit(X.TrackSubscriptionPermissionChanged,e,t)}),e.on(Q.SubscriptionStatusChanged,t=>{this.emit(X.TrackSubscriptionStatusChanged,e,t)}),e.on(Q.Subscribed,t=>{this.emit(X.TrackSubscribed,t,e)}),e.on(Q.Unsubscribed,t=>{this.emit(X.TrackUnsubscribed,t,e)}),e.on(Q.SubscriptionFailed,t=>{this.emit(X.TrackSubscriptionFailed,e.trackSid,t)})}getTrackPublication(e){let t=super.getTrackPublication(e);if(t)return t}getTrackPublicationByName(e){let t=super.getTrackPublicationByName(e);if(t)return t}setVolume(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:$.Source.Microphone;this.volumeMap.set(t,e);let n=this.getTrackPublication(t);n&&n.track&&n.track.setVolume(e)}getVolume(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:$.Source.Microphone,t=this.getTrackPublication(e);return t&&t.track?t.track.getVolume():this.volumeMap.get(e)}addSubscribedMediaTrack(e,t,n,r,i,a){let o=this.getTrackPublicationBySid(t);if(o||t.startsWith(`TR`)||this.trackPublications.forEach(t=>{!o&&e.kind===t.kind.toString()&&(o=t)}),!o){if(a===0){this.log.error(`could not find published track`,Object.assign(Object.assign({},this.logContext),{trackSid:t})),this.emit(X.TrackSubscriptionFailed,t);return}a===void 0&&(a=20),setTimeout(()=>{this.addSubscribedMediaTrack(e,t,n,r,i,a-1)},150);return}if(e.readyState===`ended`){this.log.error(`unable to subscribe because MediaStreamTrack is ended. Do not call MediaStreamTrack.stop()`,Object.assign(Object.assign({},this.logContext),gV(o))),this.emit(X.TrackSubscriptionFailed,t);return}let s=e.kind===`video`,c;return c=s?new yU(e,t,r,i):new gJ(e,t,r,this.audioContext,this.audioOutput),c.source=o.source,c.isMuted=o.isMuted,c.setMediaStream(n),c.start(),o.setTrack(c),this.volumeMap.has(o.source)&&MH(c)&&OH(c)&&c.setVolume(this.volumeMap.get(o.source)),o}get hasMetadata(){return!!this.participantInfo}getTrackPublicationBySid(e){return this.trackPublications.get(e)}updateInfo(e){if(!super.updateInfo(e))return!1;let t=new Map,n=new Map;return e.tracks.forEach(e=>{let r=this.getTrackPublicationBySid(e.sid);if(r)r.updateInfo(e);else{let t=$.kindFromProto(e.type);if(!t)return;r=new DJ(t,e,this.signalClient.connectOptions?.autoSubscribe,{loggerContextCb:()=>this.logContext,loggerName:this.loggerOptions?.loggerName}),r.updateInfo(e),n.set(e.sid,r);let i=Array.from(this.trackPublications.values()).find(e=>e.source===r?.source);i&&r.source!==$.Source.Unknown&&this.log.debug(`received a second track publication for ${this.identity} with the same source: ${r.source}`,Object.assign(Object.assign({},this.logContext),{oldTrack:gV(i),newTrack:gV(r)})),this.addTrackPublication(r)}t.set(e.sid,r)}),this.trackPublications.forEach(e=>{t.has(e.trackSid)||(this.log.trace(`detected removed track on remote participant, unpublishing`,Object.assign(Object.assign({},this.logContext),gV(e))),this.unpublishTrack(e.trackSid,!0))}),n.forEach(e=>{this.emit(X.TrackPublished,e)}),!0}unpublishTrack(e,t){let n=this.trackPublications.get(e);if(!n)return;let r=n.track;switch(r&&(r.stop(),n.setTrack(void 0)),this.trackPublications.delete(e),n.kind){case $.Kind.Audio:this.audioTrackPublications.delete(e);break;case $.Kind.Video:this.videoTrackPublications.delete(e)}t&&this.emit(X.TrackUnpublished,n)}setAudioOutput(e){return J(this,void 0,void 0,function*(){this.audioOutput=e;let t=[];this.audioTrackPublications.forEach(n=>{OH(n.track)&&MH(n.track)&&t.push(n.track.setSinkId(e.deviceId??`default`))}),yield Promise.all(t)})}addRemoteDataTrack(e){this.dataTracks.set(e.info.name,e)}removeRemoteDataTrack(e){for(let n of this.dataTracks.entries()){var t=zP(n,2);let r=t[0];e===t[1].info.sid&&this.dataTracks.delete(r)}}emit(e){var t=[...arguments].slice(1);return this.log.trace(`participant event`,Object.assign(Object.assign({},this.logContext),{event:e,args:t})),super.emit(e,...t)}},kJ;(function(e){e.Disconnected=`disconnected`,e.Connecting=`connecting`,e.Connected=`connected`,e.Reconnecting=`reconnecting`,e.SignalReconnecting=`signalReconnecting`})(kJ||={});var AJ=4e3,jJ=3e4,MJ=class e extends az.EventEmitter{get hasE2EESetup(){return this.e2eeManager!==void 0}constructor(t){var n,r,i;if(super(),n=this,this.state=kJ.Disconnected,this.activeSpeakers=[],this.isE2EEEnabled=!1,this.audioEnabled=!0,this.e2eeStateMutex=new KN,this.isVideoPlaybackBlocked=!1,this.log=BR,this.statsLog=BR,this.bufferedEvents=[],this.isResuming=!1,this.pendingTrackAddedCallbacks=new Map,this.connect=(e,t,n)=>J(this,void 0,void 0,function*(){if(!UV())throw eH()?Error(`WebRTC isn't detected, have you called registerGlobals?`):Error(`LiveKit doesn't seem to be supported on this browser. Try to update your browser and make sure no browser extensions are disabling webRTC.`);let r=yield this.disconnectLock.lock();if(this.state===kJ.Connected)return this.log.info(`already connected to room ${this.name}`),r(),Promise.resolve();if(this.connectFuture)return r(),this.connectFuture.promise;this.setAndEmitConnectionState(kJ.Connecting),this.regionUrlProvider?.getServerUrl().toString()!==KH(e)&&(this.regionUrl=void 0,this.regionUrlProvider=void 0),tH(new URL(e))&&(this.regionUrlProvider===void 0?this.regionUrlProvider=new _K(e,t):this.regionUrlProvider.updateToken(t),this.regionUrlProvider.fetchRegionSettings().then(e=>{var t;(t=this.regionUrlProvider)==null||t.setServerReportedRegions(e)}).catch(e=>{this.log.warn(`could not fetch region settings`,{error:e})}));let i=(a,o,s)=>J(this,void 0,void 0,function*(){this.abortController&&this.abortController.abort();let c=new AbortController;this.abortController=c,r?.();try{if(yield kU.getInstance().getBackOffPromise(e),c.signal.aborted)throw kB.cancelled(`Connection attempt aborted`);yield this.attemptConnection(s??e,t,n,c),this.abortController=void 0,a()}catch(t){if(this.regionUrlProvider&&t instanceof kB&&t.reason!==OB.Cancelled&&t.reason!==OB.NotAllowed){let n=null;try{this.log.debug(`Fetching next region`),n=yield this.regionUrlProvider.getNextBestRegionUrl(this.abortController?.signal)}catch(e){if(e instanceof kB&&(e.status===401||e.reason===OB.Cancelled)){this.handleDisconnect(this.options.stopLocalTrackOnUnpublish),o(e);return}}[OB.InternalError,OB.ServerUnreachable,OB.Timeout].includes(t.reason)&&(this.log.debug(`Adding failed connection attempt to back off`),kU.getInstance().addFailedConnectionAttempt(e)),n&&!this.abortController?.signal.aborted?(this.log.info(`Initial connection failed with ConnectionError: ${t.message}. Retrying with another region: ${n}`),this.recreateEngine(!0),yield i(a,o,n)):(this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,wH(t)),o(t))}else{let e=gI.UNKNOWN_REASON;t instanceof kB&&(e=wH(t)),this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,e),o(t)}}}),a=this.regionUrl;return this.regionUrl=void 0,this.connectFuture=new _H((e,t)=>{i(e,t,a)},()=>{this.clearConnectionFutures()}),this.connectFuture.promise}),this.connectSignal=(e,t,n,r,i,a)=>J(this,void 0,void 0,function*(){let o=yield n.join(e,t,{autoSubscribe:r.autoSubscribe,adaptiveStream:typeof i.adaptiveStream==`object`||i.adaptiveStream,clientInfoCapabilities:this.getClientInfoCapabilities(i),maxRetries:r.maxRetries,e2eeEnabled:!!this.e2eeManager,websocketTimeout:r.websocketTimeout},a.signal,!i.singlePeerConnection),s=o.joinResponse,c=o.serverInfo;if(this.serverInfo=c,!c.version)throw new MB(`unknown server version`);return c.version===`0.15.1`&&this.options.dynacast&&(this.log.debug(`disabling dynacast due to server version`),i.dynacast=!1),s}),this.applyJoinResponse=e=>{let t=e.participant;if(this.localParticipant.sid=t.sid,this.localParticipant.identity=t.identity,this.localParticipant.setEnabledPublishCodecs(e.enabledPublishCodecs),this.e2eeManager)try{this.e2eeManager.setSifTrailer(e.sifTrailer)}catch(e){this.log.error(e instanceof Error?e.message:`Could not set SifTrailer`,{error:e})}this.handleParticipantUpdates([t,...e.otherParticipants]),e.room&&this.handleRoomUpdate(e.room)},this.attemptConnection=(e,t,n,r)=>J(this,void 0,void 0,function*(){this.state===kJ.Reconnecting||this.isResuming||this.engine?.pendingReconnect?(this.log.info(`Reconnection attempt replaced by new connection attempt`),this.recreateEngine(!0)):this.maybeCreateEngine(),this.regionUrlProvider?.isCloud()&&this.engine.setRegionStrategy(this.createRegionStrategy()),this.acquireAudioContext(),this.connOptions=Object.assign(Object.assign({},lG),n),this.connOptions.rtcConfig&&(this.engine.rtcConfig=this.connOptions.rtcConfig),this.connOptions.peerConnectionTimeout&&(this.engine.peerConnectionTimeout=this.connOptions.peerConnectionTimeout);try{let n=yield this.connectSignal(e,t,this.engine,this.connOptions,this.options,r);this.applyJoinResponse(n),this.setupLocalParticipantEvents(),this.emit(Y.SignalConnected)}catch(e){yield this.engine.close(),this.recreateEngine();let t=r.signal.aborted?kB.cancelled(`Signal connection aborted`):kB.serverUnreachable(`could not establish signal connection`);throw e instanceof Error&&(t.message=`${t.message}: ${e.message}`),e instanceof kB&&(t.reason=e.reason,t.status=e.status),this.log.debug(`error trying to establish signal connection`,{error:e}),t}if(r.signal.aborted)throw yield this.engine.close(),this.recreateEngine(),kB.cancelled(`Connection attempt aborted`);try{yield this.engine.waitForPCInitialConnection(this.connOptions.peerConnectionTimeout,r)}catch(e){throw yield this.engine.close(),this.recreateEngine(),e}$V()&&this.options.disconnectOnPageLeave&&(window.addEventListener(`pagehide`,this.onPageLeave),window.addEventListener(`beforeunload`,this.onPageLeave)),$V()&&window.addEventListener(`freeze`,this.onPageLeave),this.setAndEmitConnectionState(kJ.Connected),this.emit(Y.Connected),kU.getInstance().resetFailedConnectionAttempts(e),this.registerConnectionReconcile(),this.regionUrlProvider&&this.regionUrlProvider.notifyConnected()}),this.disconnect=function(){return J(n,[...arguments],void 0,function(){var e=this;let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return function*(){var n,r,i;let a=yield e.disconnectLock.lock();try{if(e.state===kJ.Disconnected){e.log.debug(`already disconnected`);return}if(e.log.info(`disconnect from room`),e.state===kJ.Connecting||e.state===kJ.Reconnecting||e.isResuming){let t=`Abort connection attempt due to user initiated disconnect`;e.log.warn(t),(n=e.abortController)==null||n.abort(t),(i=(r=e.connectFuture)?.reject)==null||i.call(r,kB.cancelled(`Client initiated disconnect`)),e.connectFuture=void 0}e.engine&&(e.engine.client.isDisconnected||(yield e.engine.client.sendLeave()),yield e.engine.close()),e.handleDisconnect(t,gI.CLIENT_INITIATED),e.engine=void 0}finally{a()}}()})},this.onPageLeave=()=>J(this,void 0,void 0,function*(){this.log.info(`Page leave detected, disconnecting`),yield this.disconnect()}),this.startAudio=()=>J(this,void 0,void 0,function*(){let e=[],t=xB();if(t&&t.os===`iOS`){let t=`livekit-dummy-audio-el`,n=document.getElementById(t);if(!n){n=document.createElement(`audio`),n.id=t,n.autoplay=!0,n.hidden=!0;let e=gH();e.enabled=!0;let r=new MediaStream([e]);n.srcObject=r,document.addEventListener(`visibilitychange`,()=>{n&&(n.srcObject=document.hidden?null:r,document.hidden||(this.log.debug(`page visible again, triggering startAudio to resume playback and update playback status`),this.startAudio()))}),document.body.append(n),this.once(Y.Disconnected,()=>{n?.remove(),n=null})}e.push(n)}this.remoteParticipants.forEach(t=>{t.audioTrackPublications.forEach(t=>{t.track&&t.track.attachedElements.forEach(t=>{e.push(t)})})});try{yield Promise.all([this.acquireAudioContext(),...e.map(e=>(this.options.webAudioMix||(e.muted=!1),e.play()))]),this.handleAudioPlaybackStarted()}catch(e){throw this.handleAudioPlaybackFailed(e),e}}),this.startVideo=()=>J(this,void 0,void 0,function*(){let e=[];for(let t of this.remoteParticipants.values())t.videoTrackPublications.forEach(t=>{var n;(n=t.track)==null||n.attachedElements.forEach(t=>{e.includes(t)||e.push(t)})});yield Promise.all(e.map(e=>e.play())).then(()=>{this.handleVideoPlaybackStarted()}).catch(e=>{e.name===`NotAllowedError`?this.handleVideoPlaybackFailed():this.log.warn("Resuming video playback failed, make sure you call `startVideo` directly in a user gesture handler")})}),this.handleRestarting=()=>{this.clearConnectionReconcile(),this.isResuming=!1;for(let e of this.remoteParticipants.values())this.handleParticipantDisconnected(e.identity,e);this.setAndEmitConnectionState(kJ.Reconnecting)&&this.emit(Y.Reconnecting)},this.handleRestarted=()=>{this.outgoingDataTrackManager.sfuWillRepublishTracks(),this.incomingDataTrackManager.resendSubscriptionUpdates()},this.handleSignalRestarted=e=>J(this,void 0,void 0,function*(){this.log.debug(`signal reconnected to server, region ${e.serverRegion}`,{region:e.serverRegion}),this.bufferedEvents=[],this.applyJoinResponse(e);try{yield this.localParticipant.republishAllTracks(void 0,!0)}catch(e){this.log.error(`error trying to re-publish tracks after reconnection`,{error:e})}try{yield this.engine.waitForRestarted(),this.log.debug(`fully reconnected to server`,{region:e.serverRegion})}catch{return}this.setAndEmitConnectionState(kJ.Connected),this.emit(Y.Reconnected),this.registerConnectionReconcile(),this.emitBufferedEvents()}),this.handleParticipantUpdates=e=>{for(let t of e){if(t.identity===this.localParticipant.identity){this.localParticipant.updateInfo(t);continue}t.identity===``&&(t.identity=this.sidToIdentity.get(t.sid)??``);let e=this.remoteParticipants.get(t.identity);t.state===TI.DISCONNECTED?this.handleParticipantDisconnected(t.identity,e,t.disconnectReason===gI.UNKNOWN_REASON?void 0:t.disconnectReason):this.getOrCreateParticipant(t.identity,t)}let t=new Map(e.filter(e=>e.identity!==this.localParticipant.identity).map(e=>[e.identity,e.dataTracks.map(e=>HU.from(e))]));this.incomingDataTrackManager.receiveSfuPublicationUpdates(t)},this.handleActiveSpeakersUpdate=e=>{let t=[],n={};e.forEach(e=>{if(n[e.sid]=!0,e.sid===this.localParticipant.sid)this.localParticipant.audioLevel=e.level,this.localParticipant.setIsSpeaking(!0),t.push(this.localParticipant);else{let n=this.getRemoteParticipantBySid(e.sid);n&&(n.audioLevel=e.level,n.setIsSpeaking(!0),t.push(n))}}),n[this.localParticipant.sid]||(this.localParticipant.audioLevel=0,this.localParticipant.setIsSpeaking(!1)),this.remoteParticipants.forEach(e=>{n[e.sid]||(e.audioLevel=0,e.setIsSpeaking(!1))}),this.activeSpeakers=t,this.emitWhenConnected(Y.ActiveSpeakersChanged,t)},this.handleSpeakersChanged=e=>{let t=new Map;this.activeSpeakers.forEach(e=>{let n=this.remoteParticipants.get(e.identity);n&&n.sid!==e.sid||t.set(e.sid,e)}),e.forEach(e=>{let n=this.getRemoteParticipantBySid(e.sid);e.sid===this.localParticipant.sid&&(n=this.localParticipant),n&&(n.audioLevel=e.level,n.setIsSpeaking(e.active),e.active?t.set(e.sid,n):t.delete(e.sid))});let n=Array.from(t.values());n.sort((e,t)=>t.audioLevel-e.audioLevel),this.activeSpeakers=n,this.emitWhenConnected(Y.ActiveSpeakersChanged,n)},this.handleStreamStateUpdate=e=>{e.streamStates.forEach(e=>{let t=this.getRemoteParticipantBySid(e.participantSid);if(!t)return;let n=t.getTrackPublicationBySid(e.trackSid);if(!n||!n.track)return;let r=$.streamStateFromProto(e.state),i=n.track.streamState;n.track.setStreamState(r),r!==i&&(t.emit(X.TrackStreamStateChanged,n,n.track.streamState),this.emitWhenConnected(Y.TrackStreamStateChanged,n,n.track.streamState,t))})},this.handleSubscriptionPermissionUpdate=e=>{let t=this.getRemoteParticipantBySid(e.participantSid);if(!t)return;let n=t.getTrackPublicationBySid(e.trackSid);n&&n.setAllowed(e.allowed)},this.handleSubscriptionError=e=>{this.cancelPendingTrackAdded(e.trackSid);let t=Array.from(this.remoteParticipants.values()).find(t=>t.trackPublications.has(e.trackSid));if(!t)return;let n=t.getTrackPublicationBySid(e.trackSid);n&&n.setSubscriptionError(e.err)},this.handleDataPacket=(e,t)=>{let n=this.remoteParticipants.get(e.participantIdentity);if(e.value.case===`user`)this.handleUserPacket(n,e.value.value,e.kind,t);else if(e.value.case===`transcription`)this.handleTranscription(n,e.value.value);else if(e.value.case===`sipDtmf`)this.handleSipDtmf(n,e.value.value);else if(e.value.case===`chatMessage`)this.handleChatMessage(n,e.value.value);else if(e.value.case===`metrics`)this.handleMetrics(e.value.value,n);else if(e.value.case===`streamHeader`||e.value.case===`streamChunk`||e.value.case===`streamTrailer`)this.handleDataStream(e,t);else if(e.value.case===`rpcRequest`){let t=e.value.value;this.rpcServerManager.handleIncomingRpcRequest(e.participantIdentity,t)}else if(e.value.case===`rpcResponse`){let t=e.value.value;switch(t.value.case){case`payload`:this.rpcClientManager.handleIncomingRpcResponseSuccess(t.requestId,t.value.value);break;case`error`:this.rpcClientManager.handleIncomingRpcResponseFailure(t.requestId,aJ.fromProto(t.value.value));break;default:this.log.warn(`Unknown rpcResponse.value.case: ${t.value.case}`,this.logContext)}}else e.value.case===`rpcAck`&&this.rpcClientManager.handleIncomingRpcAck(e.value.value.requestId)},this.handleUserPacket=(e,t,n,r)=>{this.emit(Y.DataReceived,t.payload,e,n,t.topic,r),e?.emit(X.DataReceived,t.payload,n,r)},this.handleSipDtmf=(e,t)=>{this.emit(Y.SipDTMFReceived,t,e),e?.emit(X.SipDTMFReceived,t)},this.handleTranscription=(e,t)=>{let n=t.transcribedParticipantIdentity===this.localParticipant.identity?this.localParticipant:this.getParticipantByIdentity(t.transcribedParticipantIdentity),r=n?.trackPublications.get(t.trackId),i=SH(t,this.transcriptionReceivedTimes);r?.emit(Q.TranscriptionReceived,i),n?.emit(X.TranscriptionReceived,i,r),this.emit(Y.TranscriptionReceived,i,n,r)},this.handleChatMessage=(e,t)=>{let n=CH(t);this.emit(Y.ChatMessage,n,e)},this.handleMetrics=(e,t)=>{this.emit(Y.MetricsReceived,e,t)},this.handleDataStream=(e,t)=>{this.incomingDataStreamManager.handleDataStreamPacket(e,t)},this.bufferedSegments=new Map,this.handleAudioPlaybackStarted=()=>{this.canPlaybackAudio||(this.audioEnabled=!0,this.emit(Y.AudioPlaybackStatusChanged,!0))},this.handleAudioPlaybackFailed=e=>{this.log.warn(`could not playback audio`,{error:e}),this.canPlaybackAudio&&(this.audioEnabled=!1,this.emit(Y.AudioPlaybackStatusChanged,!1))},this.handleVideoPlaybackStarted=()=>{this.isVideoPlaybackBlocked&&(this.isVideoPlaybackBlocked=!1,this.emit(Y.VideoPlaybackStatusChanged,!0))},this.handleVideoPlaybackFailed=()=>{this.isVideoPlaybackBlocked||(this.isVideoPlaybackBlocked=!0,this.emit(Y.VideoPlaybackStatusChanged,!1))},this.handleDeviceChange=()=>J(this,void 0,void 0,function*(){xB()?.os!==`iOS`&&(yield this.selectDefaultDevices()),this.emit(Y.MediaDevicesChanged)}),this.handleRoomUpdate=e=>{let t=this.roomInfo;this.roomInfo=e,t&&t.metadata!==e.metadata&&this.emitWhenConnected(Y.RoomMetadataChanged,e.metadata),t?.activeRecording!==e.activeRecording&&this.emitWhenConnected(Y.RecordingStatusChanged,e.activeRecording)},this.handleConnectionQualityUpdate=e=>{e.updates.forEach(e=>{if(e.participantSid===this.localParticipant.sid){this.localParticipant.setConnectionQuality(e.quality);return}let t=this.getRemoteParticipantBySid(e.participantSid);t&&t.setConnectionQuality(e.quality)})},this.getRemoteParticipantClientProtocol=e=>this.remoteParticipants.get(e)?.clientProtocol??0,this.getRemoteParticipantCapabilities=e=>this.remoteParticipants.get(e)?.capabilities??[],this.getAllRemoteParticipantIdentities=()=>Array.from(this.remoteParticipants.keys()),this.logWebRTCStats=()=>J(this,void 0,void 0,function*(){let e=this.engine?.pcManager;if(e)try{let t=zP(yield Promise.all([e.publisher.getStats(),e.subscriber?.getStats()]),2),n=t[0],r=t[1],i=n&&JB(n),a=r&&JB(r);this.statsLog.info(`webrtc stats`,{publisher:i?.connection,subscriber:a?.connection,inbound:[...i?.inbound??[],...a?.inbound??[]],outbound:i?.outbound})}catch(e){this.statsLog.debug(`could not collect webrtc stats`,{error:e})}}),this.onLocalParticipantMetadataChanged=e=>{this.emit(Y.ParticipantMetadataChanged,e,this.localParticipant)},this.onLocalParticipantNameChanged=e=>{this.emit(Y.ParticipantNameChanged,e,this.localParticipant)},this.onLocalAttributesChanged=e=>{this.emit(Y.ParticipantAttributesChanged,e,this.localParticipant)},this.onLocalTrackMuted=e=>{this.emit(Y.TrackMuted,e,this.localParticipant)},this.onLocalTrackUnmuted=e=>{this.emit(Y.TrackUnmuted,e,this.localParticipant)},this.onTrackProcessorUpdate=e=>{var t;(t=e?.onPublish)==null||t.call(e,this)},this.onLocalTrackPublished=e=>J(this,void 0,void 0,function*(){var t,n,r,i;(t=e.track)==null||t.on(Q.TrackProcessorUpdate,this.onTrackProcessorUpdate),(n=e.track)==null||n.on(Q.Restarted,this.onLocalTrackRestarted),(i=(r=e.track?.getProcessor())?.onPublish)==null||i.call(r,this),this.emit(Y.LocalTrackPublished,e,this.localParticipant),jH(e.track)&&(yield e.track.checkForSilence())&&this.emit(Y.LocalAudioSilenceDetected,e);let a=yield e.track?.getDeviceId(!1),o=fV(e.source);o&&a&&a!==this.localParticipant.activeDeviceMap.get(o)&&(this.localParticipant.activeDeviceMap.set(o,a),this.emit(Y.ActiveDeviceChanged,o,a))}),this.onLocalTrackUnpublished=e=>{var t,n;(t=e.track)==null||t.off(Q.TrackProcessorUpdate,this.onTrackProcessorUpdate),(n=e.track)==null||n.off(Q.Restarted,this.onLocalTrackRestarted),this.emit(Y.LocalTrackUnpublished,e,this.localParticipant)},this.onLocalTrackRestarted=e=>J(this,void 0,void 0,function*(){let t=yield e.getDeviceId(!1),n=fV(e.source);n&&t&&t!==this.localParticipant.activeDeviceMap.get(n)&&(this.log.debug(`local track restarted, setting ${n} ${t} active`),this.localParticipant.activeDeviceMap.set(n,t),this.emit(Y.ActiveDeviceChanged,n,t))}),this.onLocalConnectionQualityChanged=e=>{this.emit(Y.ConnectionQualityChanged,e,this.localParticipant)},this.onMediaDevicesError=(e,t)=>{this.emit(Y.MediaDevicesError,e,t)},this.onLocalParticipantPermissionsChanged=e=>{this.emit(Y.ParticipantPermissionsChanged,e,this.localParticipant)},this.onLocalChatMessageSent=e=>{this.emit(Y.ChatMessage,e,this.localParticipant)},this.setMaxListeners(100),this.remoteParticipants=new Map,this.sidToIdentity=new Map,this.options=Object.assign(Object.assign({},cG),t),this.log=VR(this.options.loggerName??zR.Room,()=>this.logContext),this.statsLog=VR(zR.Stats,()=>this.logContext),this.transcriptionReceivedTimes=new Map,this.options.audioCaptureDefaults=Object.assign(Object.assign({},oG),t?.audioCaptureDefaults),this.options.videoCaptureDefaults=Object.assign(Object.assign({},sG),t?.videoCaptureDefaults),this.options.publishDefaults=Object.assign(Object.assign({},aG),t?.publishDefaults),this.maybeCreateEngine(),this.incomingDataStreamManager=new OK(this.options.dataStream?.maxPayloadByteLength),this.outgoingDataStreamManager=new WK(this.engine,this.log,this.getRemoteParticipantClientProtocol,this.getRemoteParticipantCapabilities,this.getAllRemoteParticipantIdentities),this.incomingDataTrackManager=new Uq({e2eeManager:this.e2eeManager}),this.incomingDataTrackManager.on(`sfuUpdateSubscription`,e=>{this.engine.client.sendUpdateDataSubscription(e.sid,e.subscribe)}).on(`trackPublished`,e=>{var t;e.track.publisherIdentity!==this.localParticipant.identity&&(this.emit(Y.DataTrackPublished,e.track),(t=this.remoteParticipants.get(e.track.publisherIdentity))==null||t.addRemoteDataTrack(e.track))}).on(`trackUnpublished`,e=>{var t;e.publisherIdentity!==this.localParticipant.identity&&(this.emit(Y.DataTrackUnpublished,e.sid),(t=this.remoteParticipants.get(e.publisherIdentity))==null||t.removeRemoteDataTrack(e.sid))}),this.outgoingDataTrackManager=new iJ({e2eeManager:this.e2eeManager}),this.outgoingDataTrackManager.on(`sfuPublishRequest`,e=>{this.engine.client.sendPublishDataTrackRequest(e.handle,e.name,e.usesE2ee)}).on(`sfuUnpublishRequest`,e=>{this.engine.client.sendUnPublishDataTrackRequest(e.handle)}).on(`trackPublished`,e=>{this.emit(Y.LocalDataTrackPublished,e.track)}).on(`trackUnpublished`,e=>{this.emit(Y.LocalDataTrackUnpublished,e.sid)}).on(`packetAvailable`,e=>{let t=e.handle,n=e.bytes;this.engine.sendDataTrackFrame(n).finally(()=>this.outgoingDataTrackManager.handlePacketSendComplete(t))}),this.registerRpcDataStreamHandler(),this.rpcClientManager=new mJ(this.log,this.outgoingDataStreamManager,this.getRemoteParticipantClientProtocol,()=>this.engine?.serverVersion),this.rpcClientManager.on(`sendDataPacket`,e=>{let t=e.packet;var n;(n=this.engine)==null||n.sendDataPacket(t,gG.RELIABLE)}),this.rpcServerManager=new hJ(this.log,this.outgoingDataStreamManager,this.getRemoteParticipantClientProtocol),this.rpcServerManager.on(`sendDataPacket`,e=>{let t=e.packet;var n;(n=this.engine)==null||n.sendDataPacket(t,gG.RELIABLE)}),this.disconnectLock=new KN,this.localParticipant=new wJ(``,``,this.engine,this.options,this.outgoingDataStreamManager,this.outgoingDataTrackManager,this.rpcClientManager,this.rpcServerManager),this.setupFrameMetadata(),(this.options.e2ee||this.options.encryption)&&this.setupE2EE(),this.engine.e2eeManager=this.e2eeManager,this.incomingDataTrackManager.updateE2eeManager(this.e2eeManager??null),this.outgoingDataTrackManager.updateE2eeManager(this.e2eeManager??null),this.options.videoCaptureDefaults.deviceId&&this.localParticipant.activeDeviceMap.set(`videoinput`,yH(this.options.videoCaptureDefaults.deviceId)),this.options.audioCaptureDefaults.deviceId&&this.localParticipant.activeDeviceMap.set(`audioinput`,yH(this.options.audioCaptureDefaults.deviceId)),this.options.audioOutput?.deviceId&&this.switchActiveDevice(`audiooutput`,yH(this.options.audioOutput.deviceId)).catch(e=>this.log.warn(`Could not set audio output: ${e.message}`)),$V()){let t=new AbortController,n;if(e.cleanupRegistry){let r=new WeakRef(this);n=()=>{let e=r.deref();e&&e.handleDeviceChange()},e.cleanupRegistry.register(this,()=>{t.abort()})}else n=this.handleDeviceChange;(i=(r=navigator.mediaDevices)?.addEventListener)==null||i.call(r,`devicechange`,n,{signal:t.signal})}}registerTextStreamHandler(e,t){return this.incomingDataStreamManager.registerTextStreamHandler(e,t)}unregisterTextStreamHandler(e){return this.incomingDataStreamManager.unregisterTextStreamHandler(e)}registerByteStreamHandler(e,t){return this.incomingDataStreamManager.registerByteStreamHandler(e,t)}unregisterByteStreamHandler(e){return this.incomingDataStreamManager.unregisterByteStreamHandler(e)}registerRpcMethod(e,t){this.rpcServerManager.registerRpcMethod(e,t)}unregisterRpcMethod(e){this.rpcServerManager.unregisterRpcMethod(e)}setE2EEEnabled(e){return J(this,void 0,void 0,function*(){let t=yield this.e2eeStateMutex.lock();try{if(this.e2eeManager)this.isE2EEEnabled!==e&&(yield this.localParticipant.setE2EEEnabled(e),this.localParticipant.identity!==``&&this.e2eeManager.setParticipantCryptorEnabled(e,this.localParticipant.identity));else throw Error(`e2ee not configured, please set e2ee settings within the room options`)}finally{t()}})}setupE2EE(){var e,t;let n=!!this.options.encryption,r=this.options.encryption||this.options.e2ee;r&&(`e2eeManager`in r?(this.e2eeManager=r.e2eeManager,this.e2eeManager.isDataChannelEncryptionEnabled=n):this.e2eeManager=new CU(r,n),this.e2eeManager.on(tU.ParticipantEncryptionStatusChanged,(e,t)=>{FH(t)&&(this.isE2EEEnabled=e),this.emit(Y.ParticipantEncryptionStatusChanged,e,t)}),this.e2eeManager.on(tU.EncryptionError,(e,t)=>{let n=t?this.getParticipantByIdentity(t):void 0;this.emit(Y.EncryptionError,e,n)}),(e=this.e2eeManager)==null||e.setup(this),(t=this.e2eeManager)==null||t.setupEngine(this.engine))}setupFrameMetadata(){let e=this.options.frameMetadata??this.options.packetTrailer;this.frameMetadataManager=new EU(e),this.frameMetadataManager.setup(this)}get logContext(){return{room:this.name,roomID:this.roomInfo?.sid,participant:this.localParticipant?.identity,participantID:this.localParticipant?.sid}}get isRecording(){return this.roomInfo?.activeRecording??!1}getSid(){return this.state===kJ.Disconnected?vB.resolve(``):this.roomInfo&&this.roomInfo.sid!==``?vB.resolve(this.roomInfo.sid):new vB((e,t)=>{let n=t=>{t.sid!==``&&(this.engine.off(Z.RoomUpdate,n),e(t.sid))};this.engine.on(Z.RoomUpdate,n),this.once(Y.Disconnected,()=>{this.engine.off(Z.RoomUpdate,n),t(new NB(`Room disconnected before room server id was available`))})})}get name(){return this.roomInfo?.name??``}get metadata(){return this.roomInfo?.metadata}get numParticipants(){return this.roomInfo?.numParticipants??0}get numPublishers(){return this.roomInfo?.numPublishers??0}maybeCreateEngine(){(!this.engine||!this.engine.isNewlyCreated&&this.engine.isClosed)&&(this.engine=new fK(this.options),this.engine.e2eeManager=this.e2eeManager,this.engine.on(Z.ParticipantUpdate,this.handleParticipantUpdates).on(Z.RoomUpdate,this.handleRoomUpdate).on(Z.SpeakersChanged,this.handleSpeakersChanged).on(Z.StreamStateChanged,this.handleStreamStateUpdate).on(Z.ConnectionQualityUpdate,this.handleConnectionQualityUpdate).on(Z.SubscriptionError,this.handleSubscriptionError).on(Z.SubscriptionPermissionUpdate,this.handleSubscriptionPermissionUpdate).on(Z.MediaTrackAdded,(e,t,n)=>{this.onTrackAdded(e,t,n)}).on(Z.Disconnected,e=>{this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,e)}).on(Z.ActiveSpeakersUpdate,this.handleActiveSpeakersUpdate).on(Z.DataPacketReceived,this.handleDataPacket).on(Z.Resuming,()=>{this.clearConnectionReconcile(),this.isResuming=!0,this.log.debug(`Resuming signal connection`),this.setAndEmitConnectionState(kJ.SignalReconnecting)&&this.emit(Y.SignalReconnecting)}).on(Z.Resumed,()=>{this.registerConnectionReconcile(),this.isResuming=!1,this.log.debug(`Resumed signal connection`),this.updateSubscriptions(),this.setAndEmitConnectionState(kJ.Connected)&&this.emit(Y.Reconnected),this.emitBufferedEvents()}).on(Z.SignalResumed,()=>{(this.state===kJ.Reconnecting||this.isResuming)&&this.sendSyncState(),this.emitBufferedEvents()}).on(Z.Restarting,this.handleRestarting).on(Z.Restarted,this.handleRestarted).on(Z.SignalRestarted,this.handleSignalRestarted).on(Z.Offline,()=>{this.setAndEmitConnectionState(kJ.Reconnecting)&&this.emit(Y.Reconnecting)}).on(Z.DCBufferStatusChanged,(e,t)=>{this.emit(Y.DCBufferStatusChanged,e,t)}).on(Z.LocalTrackSubscribed,e=>{this.handleLocalTrackSubscribed(e)}).on(Z.RoomMoved,e=>{this.log.debug(`room moved`,e),e.room&&this.handleRoomUpdate(e.room),this.remoteParticipants.forEach((e,t)=>{this.handleParticipantDisconnected(t,e)}),this.emit(Y.Moved,e.room.name),e.participant?this.handleParticipantUpdates([e.participant,...e.otherParticipants]):this.handleParticipantUpdates(e.otherParticipants)}).on(Z.PublishDataTrackResponse,e=>{if(!e.info){this.log.warn(`received PublishDataTrackResponse, but event.info was ${e.info}, so skipping.`);return}this.outgoingDataTrackManager.receivedSfuPublishResponse(e.info.pubHandle,{type:`ok`,data:{sid:e.info.sid,pubHandle:e.info.pubHandle,name:e.info.name,usesE2ee:e.info.encryption!==OI.NONE}})}).on(Z.UnPublishDataTrackResponse,e=>{if(!e.info){this.log.warn(`received UnPublishDataTrackResponse, but event.info was ${e.info}, so skipping.`);return}this.outgoingDataTrackManager.receivedSfuUnpublishResponse(e.info.pubHandle)}).on(Z.DataTrackSubscriberHandles,e=>{let t=new Map(Object.entries(e.subHandles).map(e=>{let t=zP(e,2),n=t[0],r=t[1];return[parseInt(n,10),r.trackSid]}));this.incomingDataTrackManager.receivedSfuSubscriberHandles(t)}).on(Z.DataTrackPacketReceived,e=>{try{this.incomingDataTrackManager.packetReceived(e)}catch(e){throw e}}).on(Z.Joined,e=>{let t=new Map(e.otherParticipants.map(e=>[e.identity,e.dataTracks.map(e=>HU.from(e))]));this.incomingDataTrackManager.receiveSfuPublicationUpdates(t)}).on(Z.TokenRefreshed,e=>{var t;(t=this.regionUrlProvider)==null||t.updateToken(e)}).on(Z.ServerRegionsReported,e=>{var t;(t=this.regionUrlProvider)==null||t.setServerReportedRegions({regionSettings:e,updatedAtInMs:Date.now(),maxAgeInMs:hK})}),this.localParticipant&&this.localParticipant.setupEngine(this.engine),this.e2eeManager&&this.e2eeManager.setupEngine(this.engine),this.outgoingDataStreamManager&&this.outgoingDataStreamManager.setupEngine(this.engine))}createRegionStrategy(){return{getNextUrl:e=>J(this,void 0,void 0,function*(){return this.regionUrlProvider?this.regionUrlProvider.getNextBestRegionUrl(e):null}),resetAttempts:()=>this.regionUrlProvider?.resetAttempts()}}static getLocalDevices(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return jU.getInstance().getDevices(e,t)}prepareConnection(e,t){return J(this,void 0,void 0,function*(){if(this.state===kJ.Disconnected){this.log.debug(`prepareConnection to ${e}`);try{if(tH(new URL(e))&&t){this.regionUrlProvider=new _K(e,t);let n=yield this.regionUrlProvider.getNextBestRegionUrl();n&&this.state===kJ.Disconnected&&(this.regionUrl=n,yield fetch(xH(n),{method:`HEAD`}),this.log.debug(`prepared connection to ${n}`))}else yield fetch(xH(e),{method:`HEAD`})}catch(e){this.log.warn(`could not prepare connection`,{error:e})}}})}getParticipantByIdentity(e){return this.localParticipant.identity===e?this.localParticipant:this.remoteParticipants.get(e)}clearConnectionFutures(){this.connectFuture=void 0}simulateScenario(e,t){return J(this,void 0,void 0,function*(){let n=()=>J(this,void 0,void 0,function*(){}),r;switch(e){case`signal-reconnect`:yield this.engine.client.handleOnClose(`simulate disconnect`);break;case`fail-on-v1-path`:this.engine.failNextV1Path();break;case`speaker`:r=new vR({scenario:{case:`speakerUpdate`,value:3}});break;case`node-failure`:r=new vR({scenario:{case:`nodeFailure`,value:!0}});break;case`server-leave`:r=new vR({scenario:{case:`serverLeave`,value:!0}});break;case`migration`:r=new vR({scenario:{case:`migration`,value:!0}});break;case`resume-reconnect`:this.engine.failNext(),yield this.engine.client.handleOnClose(`simulate resume-disconnect`);break;case`disconnect-signal-on-resume`:n=()=>J(this,void 0,void 0,function*(){yield this.engine.client.handleOnClose(`simulate resume-disconnect`)}),r=new vR({scenario:{case:`disconnectSignalOnResume`,value:!0}});break;case`disconnect-signal-on-resume-no-messages`:n=()=>J(this,void 0,void 0,function*(){yield this.engine.client.handleOnClose(`simulate resume-disconnect`)}),r=new vR({scenario:{case:`disconnectSignalOnResumeNoMessages`,value:!0}});break;case`full-reconnect`:this.engine.fullReconnectOnNext=!0,yield this.engine.client.handleOnClose(`simulate full-reconnect`);break;case`force-tcp`:case`force-tls`:r=new vR({scenario:{case:`switchCandidateProtocol`,value:e===`force-tls`?2:1}}),n=()=>J(this,void 0,void 0,function*(){let e=this.engine.client.onLeave;e&&e(new XL({reason:gI.CLIENT_INITIATED,action:ZL.RECONNECT}))});break;case`subscriber-bandwidth`:if(t===void 0||typeof t!=`number`)throw Error(`subscriber-bandwidth requires a number as argument`);r=new vR({scenario:{case:`subscriberBandwidth`,value:EH(t)}});break;case`leave-full-reconnect`:r=new vR({scenario:{case:`leaveRequestFullReconnect`,value:!0}})}r&&(yield this.engine.client.sendSimulateScenario(r),yield n())})}get canPlaybackAudio(){return this.audioEnabled}get canPlaybackVideo(){return!this.isVideoPlaybackBlocked}getActiveDevice(e){return this.localParticipant.activeDeviceMap.get(e)}switchActiveDevice(e,t){return J(this,arguments,void 0,function(e,t){var n=this;let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;return function*(){var i,a;let o=!0,s=!1,c=r?{exact:t}:t;if(e===`audioinput`){s=n.localParticipant.audioTrackPublications.size===0;let t=n.getActiveDevice(e)??n.options.audioCaptureDefaults.deviceId;n.options.audioCaptureDefaults.deviceId=c;let r=Array.from(n.localParticipant.audioTrackPublications.values()).filter(e=>e.source===$.Source.Microphone);try{o=(yield Promise.all(r.map(e=>e.audioTrack?.setDeviceId(c)))).every(e=>e===!0)}catch(e){throw n.options.audioCaptureDefaults.deviceId=t,e}let i=r.some(e=>e.track?.isMuted??!1);o&&i&&(s=!0)}else if(e===`videoinput`){s=n.localParticipant.videoTrackPublications.size===0;let t=n.getActiveDevice(e)??n.options.videoCaptureDefaults.deviceId;n.options.videoCaptureDefaults.deviceId=c;let r=Array.from(n.localParticipant.videoTrackPublications.values()).filter(e=>e.source===$.Source.Camera);try{o=(yield Promise.all(r.map(e=>e.videoTrack?.setDeviceId(c)))).every(e=>e===!0)}catch(e){throw n.options.videoCaptureDefaults.deviceId=t,e}let i=r.some(e=>e.track?.isMuted??!1);o&&i&&(s=!0)}else if(e===`audiooutput`){if(s=!0,!HV()&&!n.options.webAudioMix||n.options.webAudioMix&&n.audioContext&&!(`setSinkId`in n.audioContext))throw Error(`cannot switch audio output, the current browser does not support it`);n.options.webAudioMix&&(t=(yield jU.getInstance().normalizeDeviceId(`audiooutput`,t))??``),(a=n.options).audioOutput??(a.audioOutput={});let r=n.getActiveDevice(e)??n.options.audioOutput.deviceId;n.options.audioOutput.deviceId=t;try{n.options.webAudioMix&&((i=n.audioContext)==null||i.setSinkId(t)),yield Promise.all(Array.from(n.remoteParticipants.values()).map(e=>e.setAudioOutput({deviceId:t})))}catch(e){throw n.options.audioOutput.deviceId=r,e}}return s&&(n.localParticipant.activeDeviceMap.set(e,t),n.emit(Y.ActiveDeviceChanged,e,t)),o}()})}setupLocalParticipantEvents(){this.localParticipant.on(X.ParticipantMetadataChanged,this.onLocalParticipantMetadataChanged).on(X.ParticipantNameChanged,this.onLocalParticipantNameChanged).on(X.AttributesChanged,this.onLocalAttributesChanged).on(X.TrackMuted,this.onLocalTrackMuted).on(X.TrackUnmuted,this.onLocalTrackUnmuted).on(X.LocalTrackPublished,this.onLocalTrackPublished).on(X.LocalTrackUnpublished,this.onLocalTrackUnpublished).on(X.ConnectionQualityChanged,this.onLocalConnectionQualityChanged).on(X.MediaDevicesError,this.onMediaDevicesError).on(X.AudioStreamAcquired,this.startAudio).on(X.ChatMessage,this.onLocalChatMessageSent).on(X.ParticipantPermissionsChanged,this.onLocalParticipantPermissionsChanged)}recreateEngine(e){let t=this.engine;e&&t&&!t.client.isDisconnected?t.client.sendLeave().finally(()=>t.close()):t?.close(),this.engine=void 0,this.isResuming=!1,this.remoteParticipants.clear(),this.sidToIdentity.clear(),this.bufferedEvents=[],this.maybeCreateEngine()}onTrackAdded(e,t,n){if([kJ.Connecting,kJ.Reconnecting].includes(this.state)){let r=HH(e,t);this.log.debug(`deferring on track for later`,{mediaTrackId:e.id,mediaStreamId:t.id,tracksInStream:t.getTracks().map(e=>e.id)});let i=()=>{a(),this.onTrackAdded(e,t,n)},a=()=>{if(this.off(Y.Reconnected,i),this.off(Y.Connected,i),this.off(Y.Disconnected,a),r){let e=this.pendingTrackAddedCallbacks.get(r);e?.delete(a),e?.size===0&&this.pendingTrackAddedCallbacks.delete(r)}};if(this.once(Y.Reconnected,i),this.once(Y.Connected,i),this.once(Y.Disconnected,a),r){let e=this.pendingTrackAddedCallbacks.get(r)??new Set;e.add(a),this.pendingTrackAddedCallbacks.set(r,e)}return}if(this.state===kJ.Disconnected){this.log.warn(`skipping incoming track after Room disconnected`);return}if(e.readyState===`ended`){this.log.debug(`skipping incoming track as it already ended`);return}let r=AV(t.id),i=r[0],a=r[1],o=HH(e,t)??e.id;if(i===this.localParticipant.sid){this.log.warn(`tried to create RemoteParticipant for local participant`);return}let s=Array.from(this.remoteParticipants.values()).find(e=>e.sid===i);if(!s){i.startsWith(`PA`)&&this.log.error(`Tried to add a track for a participant, that's not present. Sid: ${i}`);return}if(!o.startsWith(`TR`)){let e=this.engine.getTrackIdForReceiver(n);if(!e){this.log.error(`Tried to add a track whose 'sid' could not be found for a participant, that's not present. Sid: ${i}`);return}o=e}o.startsWith(`TR`)||this.log.warn(`Tried to add a track whose 'sid' could not be determined for a participant, that's not present. Sid: ${i}, streamId: ${a}, trackId: ${o}`,{remoteParticipantID:i,streamId:a,trackId:o});let c;this.options.adaptiveStream&&(c=typeof this.options.adaptiveStream==`object`?this.options.adaptiveStream:{});let l=s.addSubscribedMediaTrack(e,o,t,n,c);l?.isEncrypted&&!this.e2eeManager&&this.emit(Y.EncryptionError,Error(`Encrypted ${l.source} track received from participant ${s.sid}, but room does not have encryption enabled!`))}cancelPendingTrackAdded(e){var t;(t=this.pendingTrackAddedCallbacks.get(e))==null||t.forEach(e=>e())}handleLocalTrackSubscribed(e){let t=()=>this.localParticipant.getTrackPublications().find(t=>t.trackSid===e),n=t();if(n){this.emitLocalTrackSubscribed(n);return}this.log.debug(`deferring LocalTrackSubscribed, publication not yet available`,{subscribedSid:e});let r,i=t=>{t.trackSid===e&&(a(),this.emitLocalTrackSubscribed(t))},a=()=>{clearTimeout(r),this.localParticipant.off(X.LocalTrackPublished,i),this.off(Y.Disconnected,a)};this.localParticipant.on(X.LocalTrackPublished,i),this.once(Y.Disconnected,a),r=setTimeout(()=>{a();let n=t();n?this.emitLocalTrackSubscribed(n):this.log.warn(`could not find local track publication for LocalTrackSubscribed event after timeout`,{subscribedSid:e})},1e4)}emitLocalTrackSubscribed(e){this.localParticipant.emit(X.LocalTrackSubscribed,e),this.emitWhenConnected(Y.LocalTrackSubscribed,e,this.localParticipant)}handleDisconnect(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,t=arguments.length>1?arguments[1]:void 0;var n,r;if(this.clearConnectionReconcile(),this.isResuming=!1,this.bufferedEvents=[],this.transcriptionReceivedTimes.clear(),this.incomingDataStreamManager.clearControllers(),this.incomingDataTrackManager.reset(),this.outgoingDataTrackManager.reset(),this.state!==kJ.Disconnected){this.regionUrl=void 0,this.regionUrlProvider&&this.regionUrlProvider.notifyDisconnected();try{this.remoteParticipants.forEach(e=>{e.trackPublications.forEach(t=>{e.unpublishTrack(t.trackSid)})}),this.localParticipant.trackPublications.forEach(t=>{var n,r,i;t.track&&this.localParticipant.unpublishTrack(t.track,e),e?((n=t.track)==null||n.detach(),(r=t.track)==null||r.stop()):(i=t.track)==null||i.stopMonitor()}),this.localParticipant.off(X.ParticipantMetadataChanged,this.onLocalParticipantMetadataChanged).off(X.ParticipantNameChanged,this.onLocalParticipantNameChanged).off(X.AttributesChanged,this.onLocalAttributesChanged).off(X.TrackMuted,this.onLocalTrackMuted).off(X.TrackUnmuted,this.onLocalTrackUnmuted).off(X.LocalTrackPublished,this.onLocalTrackPublished).off(X.LocalTrackUnpublished,this.onLocalTrackUnpublished).off(X.ConnectionQualityChanged,this.onLocalConnectionQualityChanged).off(X.MediaDevicesError,this.onMediaDevicesError).off(X.AudioStreamAcquired,this.startAudio).off(X.ChatMessage,this.onLocalChatMessageSent).off(X.ParticipantPermissionsChanged,this.onLocalParticipantPermissionsChanged),this.localParticipant.trackPublications.clear(),this.localParticipant.videoTrackPublications.clear(),this.localParticipant.audioTrackPublications.clear(),this.remoteParticipants.clear(),this.sidToIdentity.clear(),this.activeSpeakers=[],this.audioContext&&typeof this.options.webAudioMix==`boolean`&&(this.audioContext.close(),this.audioContext=void 0),$V()&&(window.removeEventListener(`beforeunload`,this.onPageLeave),window.removeEventListener(`pagehide`,this.onPageLeave),window.removeEventListener(`freeze`,this.onPageLeave),(r=(n=navigator.mediaDevices)?.removeEventListener)==null||r.call(n,`devicechange`,this.handleDeviceChange))}finally{this.setAndEmitConnectionState(kJ.Disconnected),this.emit(Y.Disconnected,t)}}}handleParticipantDisconnected(e,t,n){this.remoteParticipants.delete(e),t&&(this.incomingDataStreamManager.validateParticipantHasNoActiveDataStreams(e),this.incomingDataTrackManager.handleRemoteParticipantDisconnected(e),t.trackPublications.forEach(e=>{t.unpublishTrack(e.trackSid,!0)}),this.emit(Y.ParticipantDisconnected,t,n),t.setDisconnected(),this.rpcClientManager.handleParticipantDisconnected(t.identity))}selectDefaultDevices(){return J(this,void 0,void 0,function*(){let e=jU.getInstance().previousDevices,t=yield jU.getInstance().getDevices(void 0,!1),n=xB();if(n?.name===`Chrome`&&n.os!==`iOS`)for(let n of t){let t=e.find(e=>e.deviceId===n.deviceId);t&&t.label!==``&&t.kind===n.kind&&t.label!==n.label&&this.getActiveDevice(n.kind)==="default"&&this.emit(Y.ActiveDeviceChanged,n.kind,n.deviceId)}for(let n of[`audiooutput`,`audioinput`,`videoinput`]){let r=dV(n),i=this.localParticipant.getTrackPublication(r);if(i&&i.track?.isUserProvided)continue;let a=t.filter(e=>e.kind===n),o=this.getActiveDevice(n);if(o===e.filter(e=>e.kind===n)[0]?.deviceId&&a.length>0&&a[0]?.deviceId!==o){yield this.switchActiveDevice(n,a[0].deviceId);continue}n===`audioinput`&&!JV()||n===`videoinput`||a.length>0&&!a.find(e=>e.deviceId===this.getActiveDevice(n))&&(n!==`audiooutput`||!JV())&&(yield this.switchActiveDevice(n,a[0].deviceId))}})}acquireAudioContext(){return J(this,void 0,void 0,function*(){if(typeof this.options.webAudioMix!=`boolean`&&this.options.webAudioMix.audioContext?this.audioContext=this.options.webAudioMix.audioContext:(!this.audioContext||this.audioContext.state===`closed`)&&(this.audioContext=uV()??void 0),this.options.webAudioMix&&this.remoteParticipants.forEach(e=>e.setAudioContext(this.audioContext)),this.localParticipant.setAudioContext(this.audioContext),this.audioContext&&this.audioContext.state===`suspended`)try{yield Promise.race([this.audioContext.resume(),jV(200)])}catch(e){this.log.warn(`Could not resume audio context`,{error:e})}let e=this.audioContext?.state===`running`;e!==this.canPlaybackAudio&&(this.audioEnabled=e,this.emit(Y.AudioPlaybackStatusChanged,e))})}createParticipant(e,t){let n;return n=t?OJ.fromParticipantInfo(this.engine.client,t,{loggerContextCb:()=>this.logContext,loggerName:this.options.loggerName},this.incomingDataTrackManager):new OJ(this.engine.client,``,e,void 0,void 0,void 0,{loggerContextCb:()=>this.logContext,loggerName:this.options.loggerName}),this.options.webAudioMix&&n.setAudioContext(this.audioContext),this.options.audioOutput?.deviceId&&n.setAudioOutput(this.options.audioOutput).catch(e=>this.log.warn(`Could not set audio output: ${e.message}`)),n}getOrCreateParticipant(e,t){if(this.remoteParticipants.has(e)){let n=this.remoteParticipants.get(e);return t&&n.updateInfo(t)&&this.sidToIdentity.set(t.sid,t.identity),n}let n=this.createParticipant(e,t);return this.remoteParticipants.set(e,n),this.sidToIdentity.set(t.sid,t.identity),this.emitWhenConnected(Y.ParticipantConnected,n),n.on(X.TrackPublished,e=>{this.emitWhenConnected(Y.TrackPublished,e,n)}).on(X.TrackSubscribed,(e,t)=>{e.kind===$.Kind.Audio?(e.on(Q.AudioPlaybackStarted,this.handleAudioPlaybackStarted),e.on(Q.AudioPlaybackFailed,this.handleAudioPlaybackFailed)):e.kind===$.Kind.Video&&(e.on(Q.VideoPlaybackFailed,this.handleVideoPlaybackFailed),e.on(Q.VideoPlaybackStarted,this.handleVideoPlaybackStarted)),this.emitWhenConnected(Y.TrackSubscribed,e,t,n)}).on(X.TrackUnpublished,e=>{this.cancelPendingTrackAdded(e.trackSid),this.emit(Y.TrackUnpublished,e,n)}).on(X.TrackUnsubscribed,(e,t)=>{this.emit(Y.TrackUnsubscribed,e,t,n)}).on(X.TrackMuted,e=>{this.emitWhenConnected(Y.TrackMuted,e,n)}).on(X.TrackUnmuted,e=>{this.emitWhenConnected(Y.TrackUnmuted,e,n)}).on(X.ParticipantMetadataChanged,e=>{this.emitWhenConnected(Y.ParticipantMetadataChanged,e,n)}).on(X.ParticipantNameChanged,e=>{this.emitWhenConnected(Y.ParticipantNameChanged,e,n)}).on(X.AttributesChanged,e=>{this.emitWhenConnected(Y.ParticipantAttributesChanged,e,n)}).on(X.ConnectionQualityChanged,e=>{this.emitWhenConnected(Y.ConnectionQualityChanged,e,n)}).on(X.ParticipantPermissionsChanged,e=>{this.emitWhenConnected(Y.ParticipantPermissionsChanged,e,n)}).on(X.TrackSubscriptionStatusChanged,(e,t)=>{this.emitWhenConnected(Y.TrackSubscriptionStatusChanged,e,t,n)}).on(X.TrackSubscriptionFailed,(e,t)=>{this.emit(Y.TrackSubscriptionFailed,e,n,t)}).on(X.TrackSubscriptionPermissionChanged,(e,t)=>{this.emitWhenConnected(Y.TrackSubscriptionPermissionChanged,e,t,n)}).on(X.Active,()=>{this.emitWhenConnected(Y.ParticipantActive,n),n.kind===EI.AGENT&&this.localParticipant.setActiveAgent(n)}),t&&n.updateInfo(t),n}sendSyncState(){let e=Array.from(this.remoteParticipants.values()).reduce((e,t)=>(e.push(...t.getTrackPublications()),e),[]),t=this.localParticipant.getTrackPublications(),n=this.outgoingDataTrackManager.queryPublished();this.engine.sendSyncState(e,t,n)}updateSubscriptions(){for(let e of this.remoteParticipants.values())for(let t of e.videoTrackPublications.values())t.isSubscribed&&NH(t)&&t.emitTrackUpdate()}getRemoteParticipantBySid(e){let t=this.sidToIdentity.get(e);if(t)return this.remoteParticipants.get(t)}getClientInfoCapabilities(e){let t=[];return(uU(e.frameMetadata??e.packetTrailer)||this.e2eeManager)&&t.push(oL.CAP_PACKET_TRAILER),BH()&&t.push(oL.CAP_COMPRESSION_DEFLATE_RAW),t}registerRpcDataStreamHandler(){this.incomingDataStreamManager.registerTextStreamHandler(sJ,(e,t)=>J(this,[e,t],void 0,function(e,t){var n=this;let r=t.identity;return function*(){let t=e.info.attributes??{};yield n.rpcServerManager.handleIncomingDataStream(e,r,t)}()})),this.incomingDataStreamManager.registerTextStreamHandler(cJ,(e,t)=>J(this,[e,t],void 0,function(e,t){var n=this;let r=t.identity;return function*(){let t=e.info.attributes??{};yield n.rpcClientManager.handleIncomingDataStream(e,r,t)}()}))}setStatsLogging(e){e?this.statsLogInterval||=HB.setInterval(()=>{this.logWebRTCStats()},jJ):this.statsLogInterval&&=(HB.clearInterval(this.statsLogInterval),void 0)}registerConnectionReconcile(){this.clearConnectionReconcile();let e=0;this.connectionReconcileInterval=HB.setInterval(()=>{!this.engine||this.engine.isClosed||!this.engine.verifyTransport()?(e++,this.log.warn(`detected connection state mismatch`,{numFailures:e,engine:this.engine?{closed:this.engine.isClosed,transportsConnectedOrConnecting:this.engine.verifyTransport()}:void 0}),e>=3&&(this.clearConnectionReconcile(),this.engine&&!this.engine.isClosed?(this.log.warn(`detected connection state mismatch, attempting full reconnect`),this.engine.reconnect()):(this.recreateEngine(),this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,gI.STATE_MISMATCH)))):e=0},AJ)}clearConnectionReconcile(){this.connectionReconcileInterval&&HB.clearInterval(this.connectionReconcileInterval)}setAndEmitConnectionState(e){return e!==this.state&&(this.log.info(`connection state changed: ${this.state} -> ${e}`),this.state=e,this.incomingDataStreamManager.setConnected(e===kJ.Connected),this.setStatsLogging(e===kJ.Connected),this.emit(Y.ConnectionStateChanged,this.state),!0)}emitBufferedEvents(){this.bufferedEvents.forEach(e=>{let t=zP(e,2),n=t[0],r=t[1];this.emit(n,...r)}),this.bufferedEvents=[]}emitWhenConnected(e){var t=[...arguments].slice(1);if(this.state===kJ.Reconnecting||this.isResuming||!this.engine||this.engine.pendingReconnect)this.bufferedEvents.push([e,t]);else if(this.state===kJ.Connected)return this.emit(e,...t);return!1}simulateParticipants(e){return J(this,void 0,void 0,function*(){let t=Object.assign({audio:!0,video:!0,useRealTracks:!1},e.publish),n=Object.assign({count:9,audio:!1,video:!0,aspectRatios:[1.66,1.7,1.3]},e.participants);if(this.handleDisconnect(),this.roomInfo=new xI({sid:`RM_SIMULATED`,name:`simulated-room`,emptyTimeout:0,maxParticipants:0,creationTime:CP.parse(new Date().getTime()),metadata:``,numParticipants:1,numPublishers:1,turnPassword:``,enabledCodecs:[],activeRecording:!1}),this.localParticipant.updateInfo(new wI({identity:`simulated-local`,name:`local-name`})),this.setupLocalParticipantEvents(),this.emit(Y.SignalConnected),this.emit(Y.Connected),this.setAndEmitConnectionState(kJ.Connected),t.video){let e=new vJ($.Kind.Video,new AI({source:fI.CAMERA,sid:Math.floor(Math.random()*1e4).toString(),type:dI.AUDIO,name:`video-dummy`}),new eK(t.useRealTracks&&window.navigator.mediaDevices?.getUserMedia?(yield window.navigator.mediaDevices.getUserMedia({video:!0})).getVideoTracks()[0]:mH(160*(n.aspectRatios[0]??1),160,!0,!0),void 0,!1,{loggerName:this.options.loggerName,loggerContextCb:()=>this.logContext}),{loggerName:this.options.loggerName,loggerContextCb:()=>this.logContext});this.localParticipant.addTrackPublication(e),this.localParticipant.emit(X.LocalTrackPublished,e)}if(t.audio){let e=new vJ($.Kind.Audio,new AI({source:fI.MICROPHONE,sid:Math.floor(Math.random()*1e4).toString(),type:dI.AUDIO}),new PG(t.useRealTracks&&navigator.mediaDevices?.getUserMedia?(yield navigator.mediaDevices.getUserMedia({audio:!0})).getAudioTracks()[0]:gH(),void 0,!1,this.audioContext,{loggerName:this.options.loggerName,loggerContextCb:()=>this.logContext}),{loggerName:this.options.loggerName,loggerContextCb:()=>this.logContext});this.localParticipant.addTrackPublication(e),this.localParticipant.emit(X.LocalTrackPublished,e)}for(let e=0;e<n.count-1;e+=1){let t=new wI({sid:Math.floor(Math.random()*1e4).toString(),identity:`simulated-${e}`,state:TI.ACTIVE,tracks:[],joinedAt:CP.parse(Date.now())}),r=this.getOrCreateParticipant(t.identity,t);if(n.video){let i=mH(160*(n.aspectRatios[e%n.aspectRatios.length]??1),160,!1,!0),a=new AI({source:fI.CAMERA,sid:Math.floor(Math.random()*1e4).toString(),type:dI.AUDIO});r.addSubscribedMediaTrack(i,a.sid,new MediaStream([i]),new RTCRtpReceiver),t.tracks=[...t.tracks,a]}if(n.audio){let e=gH(),n=new AI({source:fI.MICROPHONE,sid:Math.floor(Math.random()*1e4).toString(),type:dI.AUDIO});r.addSubscribedMediaTrack(e,n.sid,new MediaStream([e]),new RTCRtpReceiver),t.tracks=[...t.tracks,n]}r.updateInfo(t)}})}emit(e){var t=[...arguments].slice(1);if(e!==Y.ActiveSpeakersChanged&&e!==Y.TranscriptionReceived){let n=NJ(t).filter(e=>e!==void 0);(e===Y.TrackSubscribed||e===Y.TrackUnsubscribed)&&this.log.trace(`subscribe trace: ${e}`,{event:e,args:n}),this.log.debug(`room event ${e}`,{event:e,args:n})}return super.emit(e,...t)}};MJ.cleanupRegistry=typeof FinalizationRegistry<`u`&&typeof WeakRef<`u`&&new FinalizationRegistry(e=>{e()});function NJ(e){return e.map(e=>{if(e)return Array.isArray(e)?NJ(e):typeof e==`object`?`logContext`in e?e.logContext:void 0:e})}var PJ;(function(e){e[e.IDLE=0]=`IDLE`,e[e.RUNNING=1]=`RUNNING`,e[e.SKIPPED=2]=`SKIPPED`,e[e.SUCCESS=3]=`SUCCESS`,e[e.FAILED=4]=`FAILED`})(PJ||={}),az.EventEmitter,az.EventEmitter,new TextEncoder,new TextDecoder,new TextDecoder(`utf-8`,{fatal:!0});var FJ=class extends Error{constructor(e,t){var n;super(e,t),jP(this,`code`,`ERR_JOSE_GENERIC`),this.name=this.constructor.name,(n=Error.captureStackTrace)==null||n.call(Error,this,this.constructor)}};jP(FJ,`code`,`ERR_JOSE_GENERIC`),jP(class extends FJ{constructor(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:`unspecified`,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:`unspecified`;super(e,{cause:{claim:n,reason:r,payload:t}}),jP(this,`code`,`ERR_JWT_CLAIM_VALIDATION_FAILED`),jP(this,`claim`,void 0),jP(this,`reason`,void 0),jP(this,`payload`,void 0),this.claim=n,this.reason=r,this.payload=t}},`code`,`ERR_JWT_CLAIM_VALIDATION_FAILED`),jP(class extends FJ{constructor(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:`unspecified`,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:`unspecified`;super(e,{cause:{claim:n,reason:r,payload:t}}),jP(this,`code`,`ERR_JWT_EXPIRED`),jP(this,`claim`,void 0),jP(this,`reason`,void 0),jP(this,`payload`,void 0),this.claim=n,this.reason=r,this.payload=t}},`code`,`ERR_JWT_EXPIRED`),jP(class extends FJ{constructor(){super(...arguments),jP(this,`code`,`ERR_JOSE_ALG_NOT_ALLOWED`)}},`code`,`ERR_JOSE_ALG_NOT_ALLOWED`),jP(class extends FJ{constructor(){super(...arguments),jP(this,`code`,`ERR_JOSE_NOT_SUPPORTED`)}},`code`,`ERR_JOSE_NOT_SUPPORTED`),jP(class extends FJ{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:`decryption operation failed`,t=arguments.length>1?arguments[1]:void 0;super(e,t),jP(this,`code`,`ERR_JWE_DECRYPTION_FAILED`)}},`code`,`ERR_JWE_DECRYPTION_FAILED`),jP(class extends FJ{constructor(){super(...arguments),jP(this,`code`,`ERR_JWE_INVALID`)}},`code`,`ERR_JWE_INVALID`),jP(class extends FJ{constructor(){super(...arguments),jP(this,`code`,`ERR_JWS_INVALID`)}},`code`,`ERR_JWS_INVALID`),jP(class extends FJ{constructor(){super(...arguments),jP(this,`code`,`ERR_JWT_INVALID`)}},`code`,`ERR_JWT_INVALID`),jP(class extends FJ{constructor(){super(...arguments),jP(this,`code`,`ERR_JWK_INVALID`)}},`code`,`ERR_JWK_INVALID`),jP(class extends FJ{constructor(){super(...arguments),jP(this,`code`,`ERR_JWKS_INVALID`)}},`code`,`ERR_JWKS_INVALID`),jP(class extends FJ{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:`no applicable key found in the JSON Web Key Set`,t=arguments.length>1?arguments[1]:void 0;super(e,t),jP(this,`code`,`ERR_JWKS_NO_MATCHING_KEY`)}},`code`,`ERR_JWKS_NO_MATCHING_KEY`),jP(class extends FJ{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:`multiple matching keys found in the JSON Web Key Set`,t=arguments.length>1?arguments[1]:void 0;super(e,t),jP(this,Symbol.asyncIterator,WP(function*(){})),jP(this,`code`,`ERR_JWKS_MULTIPLE_MATCHING_KEYS`)}},`code`,`ERR_JWKS_MULTIPLE_MATCHING_KEYS`),jP(class extends FJ{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:`request timed out`,t=arguments.length>1?arguments[1]:void 0;super(e,t),jP(this,`code`,`ERR_JWKS_TIMEOUT`)}},`code`,`ERR_JWKS_TIMEOUT`),jP(class extends FJ{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:`signature verification failed`,t=arguments.length>1?arguments[1]:void 0;super(e,t),jP(this,`code`,`ERR_JWS_SIGNATURE_VERIFICATION_FAILED`)}},`code`,`ERR_JWS_SIGNATURE_VERIFICATION_FAILED`);var IJ=z({server_url:P(),participant_token:P(),identity:P()});async function LJ(e,t,n){return IJ.parse(await la(e,`/v1/calls/${t}/${n}`,{}))}function RJ(e){let t=M(),[n,r]=(0,O.useState)(`off`),[i,a]=(0,O.useState)(null),o=(0,O.useRef)(null),s=(0,O.useRef)([]),c=(0,O.useRef)(!1),l=(0,O.useCallback)(async()=>{r(`joining`),a(null);try{let n=await LJ(t,e,`listen`),i=new MJ;o.current=i,i.on(Y.TrackSubscribed,e=>{if(e.kind!==$.Kind.Audio)return;let t=e.attach();t.muted=!c.current,t.style.display=`none`,document.body.append(t),s.current.push(t)}),i.on(Y.TrackUnsubscribed,e=>{for(let t of e.detach())t.remove(),s.current=s.current.filter(e=>e!==t)}),i.on(Y.Disconnected,()=>r(`off`)),await i.connect(n.server_url,n.participant_token),r(`muted`)}catch(e){a(e instanceof Error?e.message:String(e)),r(`failed`)}},[e,t]),u=(0,O.useCallback)(e=>{c.current=e;for(let t of s.current)t.muted=!e;r(e?`on`:`muted`)},[]),d=(0,O.useCallback)(async()=>{await o.current?.disconnect(),o.current=null},[]);return(0,O.useEffect)(()=>()=>{o.current?.disconnect()},[]),{listening:n,error:i,join:l,hear:u,leave:d}}var zJ=wp(`verb`,[B({verb:jp(`say`),text:P()}),B({verb:jp(`whisper`),text:P()}),B({verb:jp(`takeover`)}),B({verb:jp(`release`)}),B({verb:jp(`transfer`),to:P(),mode:hw.nullish()}),B({verb:jp(`end`),reason:P().nullish()})]);async function BJ(e,t,n){await la(e,`/v1/calls/${t}/verbs`,zJ.parse(n))}var VJ=`cold`,HJ=class{#e;#t;#n;#r=null;constructor(e,t,n){this.#e=e,this.#t=t,this.#n=n}get spoken(){return this.#n}async send(e){await BJ(this.#e,this.#t,e)}async take(){this.#n&&await(await this.#i()).localParticipant.setMicrophoneEnabled(!0),await this.send({verb:`takeover`})}async give(){await this.send({verb:`release`}),await this.#a()}async leave(){await this.#a(),await this.#r?.disconnect(),this.#r=null}async#i(){if(this.#r!==null)return this.#r;let e=await LJ(this.#e,this.#t,`supervise`),t=new MJ;return await t.connect(e.server_url,e.participant_token,{autoSubscribe:!1}),this.#r=t,t}async#a(){let e=this.#r?.localParticipant,t=e?.getTrackPublication($.Source.Microphone);e!==void 0&&t?.track!==void 0&&await e.unpublishTrack(t.track,!0)}};function UJ(e,t){let n=M(),[r,i]=(0,O.useState)(!1),[a,o]=(0,O.useState)(null),s=(0,O.useRef)(null),c=(0,O.useCallback)(()=>((s.current===null||s.current.spoken!==t)&&(s.current=new HJ(n,e,t)),s.current),[e,n,t]),l=(0,O.useCallback)(async(e,t)=>{o(null);try{await e(c()),t!==null&&i(t)}catch(e){o(e instanceof Error?e.message:String(e))}},[c]),u=(0,O.useCallback)(e=>l(t=>t.send({verb:`whisper`,text:e}),null),[l]),d=(0,O.useCallback)(e=>l(t=>t.send({verb:`say`,text:e}),null),[l]),f=(0,O.useCallback)(()=>l(e=>e.take(),!0),[l]),p=(0,O.useCallback)(()=>l(e=>e.give(),!1),[l]),m=(0,O.useCallback)(e=>l(t=>t.send({verb:`transfer`,to:e,mode:VJ}),null),[l]),h=(0,O.useCallback)(()=>l(e=>e.send({verb:`end`}),null),[l]);return(0,O.useEffect)(()=>()=>{s.current?.leave(),s.current=null},[]),{whisper:u,say:d,takeOver:f,release:p,transfer:m,end:h,holding:r,error:a}}var WJ={whisper:e=>`Whisper to the agent — the caller never ${e?`hears`:`reads`} it`,say:e=>`Say it to the caller, ${e?`in the agent's voice`:`as the agent`}, verbatim`};function GJ({call:e,live:t,spoken:n,asked:r=null}){let i=RJ(e),a=UJ(e,n),o=(0,O.useRef)(!1);(0,O.useEffect)(()=>{t&&n&&!o.current&&(o.current=!0,i.join())},[t,n,i]);let s=i.error??a.error;return(0,j.jsxs)(`div`,{className:`call-desk`,role:`group`,"aria-label":`the supervisor's desk`,children:[t&&r?.status===`open`&&(0,j.jsx)(KJ,{asked:r,spoken:n}),n&&(0,j.jsx)(JJ,{ear:i,live:t}),t?(0,j.jsx)(YJ,{desk:a,spoken:n}):(0,j.jsx)(`span`,{className:`call-desk-note`,children:n?`The call is over: nothing is left to supervise. Read its log below, or play its recording.`:`The conversation is over: nothing is left to supervise. Read it below.`}),s!==null&&(0,j.jsx)(`span`,{className:`call-desk-refused`,children:s})]})}function KJ({asked:e,spoken:t}){return(0,j.jsxs)(`div`,{className:`call-desk-asked`,role:`status`,children:[(0,j.jsx)(`span`,{className:`call-desk-dot call-desk-dot-warm`}),(0,j.jsxs)(`span`,{children:[`The agent asked for a person: `,(0,j.jsx)(`b`,{children:e.reason})]}),(0,j.jsxs)(`span`,{className:`call-desk-waiting`,children:[t?`on hold`:`waiting`,` · `,e.wait_s,`s`]})]})}function qJ({verb:e,asks:t,send:n,loud:r=!1}){let[i,a]=(0,O.useState)(``),o=()=>{i.trim()!==``&&(n(i),a(``))};return(0,j.jsxs)(`div`,{className:`call-desk-say`,children:[(0,j.jsx)(G,{size:`sm`,className:`call-desk-text`,value:i,placeholder:t,"aria-label":t,onChange:e=>a(e.target.value),onKeyDown:e=>{e.key===`Enter`&&o()}}),(0,j.jsx)(W,{size:`sm`,kind:r?`primary`:void 0,disabled:i.trim()===``,onClick:o,children:e})]})}function JJ({ear:e,live:t}){if(!t)return null;switch(e.listening){case`off`:case`failed`:return(0,j.jsxs)(W,{size:`sm`,pill:!0,onClick:()=>void e.join(),children:[(0,j.jsx)(`span`,{className:`call-desk-dot`}),`Listen`]});case`joining`:return(0,j.jsxs)(W,{size:`sm`,pill:!0,disabled:!0,children:[(0,j.jsx)(`span`,{className:`call-desk-dot call-desk-dot-warm`}),`Joining…`]});case`muted`:return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(W,{size:`sm`,pill:!0,onClick:()=>e.hear(!0),children:[(0,j.jsx)(`span`,{className:`call-desk-dot call-desk-dot-warm`}),`Hear it`]}),(0,j.jsx)(W,{size:`sm`,pill:!0,onClick:()=>void e.leave(),children:`Stop`})]});case`on`:return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(W,{size:`sm`,pill:!0,onClick:()=>e.hear(!1),children:[(0,j.jsx)(`span`,{className:`call-desk-dot call-desk-dot-on`}),`Listening · mute`]}),(0,j.jsx)(W,{size:`sm`,pill:!0,onClick:()=>void e.leave(),children:`Stop`})]})}}function YJ({desk:e,spoken:t}){let[n,r]=(0,O.useState)(null),[i,a]=(0,O.useState)(!1),o=()=>{n!==null&&n.trim()!==``&&(e.transfer(n.trim()),r(null))};return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(qJ,{verb:`Whisper`,asks:WJ.whisper(t),send:t=>e.whisper(t)}),(0,j.jsx)(qJ,{verb:`Say`,asks:WJ.say(t),send:t=>e.say(t),loud:!0}),(0,j.jsx)(W,{size:`sm`,className:e.holding?`call-desk-holding`:void 0,title:e.holding?t?`the agent hears and speaks again, and your microphone stops`:`the agent answers again`:t?`your microphone takes the line: the agent stops speaking`:`you answer from here with Say: the agent writes nothing more`,onClick:()=>void(e.holding?e.release():e.takeOver()),children:e.holding?`Hand back`:t?`Take the line`:`Take the thread`}),t?n===null?(0,j.jsx)(W,{size:`sm`,onClick:()=>r(``),children:`Transfer`}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(G,{size:`sm`,className:`call-desk-number`,autoFocus:!0,value:n,placeholder:`+34… then Enter`,onChange:e=>r(e.target.value),onKeyDown:e=>{e.key===`Enter`&&o(),e.key===`Escape`&&r(null)}}),(0,j.jsx)(W,{size:`sm`,disabled:n.trim()===``,onClick:o,children:`Transfer`}),(0,j.jsx)(W,{size:`sm`,onClick:()=>r(null),children:`Cancel`})]}):null,(0,j.jsx)(W,{size:`sm`,kind:`danger`,className:i?`call-desk-armed`:void 0,onClick:()=>{i&&e.end(),a(!i)},onBlur:()=>a(!1),children:i?`End · sure?`:t?`End call`:`End thread`})]})}var XJ=new Set([`tag`,`name`,`id`,`flag`]);function ZJ({rows:e}){return(0,j.jsx)(`div`,{className:`call-readings`,children:e.map(e=>(0,j.jsxs)(`div`,{className:`call-reading`,children:[(0,j.jsx)(`span`,{className:`call-reading-name`,children:e.field}),(0,j.jsxs)(`span`,{className:`call-reading-value`,title:String(e.value),children:[QJ(String(e.value)),e.unit!==null&&!XJ.has(e.unit)&&(0,j.jsxs)(`span`,{className:`call-seen`,children:[` `,e.unit]})]})]},e.field))})}function QJ(e){return/^-?\d+\.\d{4,}$/.test(e)?Number(e).toFixed(3):e}function $J({metrics:e,entries:t}){let n=SM(t),r=Math.max(...n.filter(e=>e.name!==fM).map(e=>e.seconds),0),i=(e,t)=>e===`talk_share`?t:r===0?0:t/r,a=hM();return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(Nh,{ruled:!0,children:`Metrics`}),(0,j.jsxs)(`div`,{className:`call-pane-body`,children:[n.length===0&&(0,j.jsx)(`div`,{className:`call-sub`,children:`Nothing measured yet: the first turn fills this in.`}),n.map(e=>(0,j.jsxs)(`div`,{className:`call-meter`,title:e.name===`talk_share`?`of the time anybody spoke`:`median over ${String(e.turns)} turns`,children:[(0,j.jsx)(`span`,{className:`call-meter-name`,children:e.name}),(0,j.jsx)(OC,{share:i(e.name,e.seconds)}),(0,j.jsx)(`span`,{className:`call-meter-value`,children:gM(e.name,e.seconds)})]},e.name)),Object.entries(e).map(([e,t])=>(0,j.jsx)(eY,{kind:e,blocks:t,shape:a.get(e)},e))]})]})}function eY({kind:e,blocks:t,shape:n}){return t.length===0?null:(0,j.jsxs)(`details`,{className:`call-blocks`,children:[(0,j.jsxs)(`summary`,{children:[`metrics.`,e,` · `,t.length]}),t.map((t,r)=>(0,j.jsx)(ZJ,{rows:mM(t,n)},`${e}-${String(r)}`))]})}var tY=[{status:`pending`,title:`Waiting for you`},{status:`approved`,title:`Played every night`},{status:`dismissed`,title:`Dismissed`}];function nY({agent:e,listed:t,asking:n,open:r}){let i=t=>(0,j.jsxs)(Wi,{to:`/a/${encodeURIComponent(e)}/cases/${encodeURIComponent(t.name)}`,className:t.name===r?`cs-row cs-row-on`:`cs-row`,children:[(0,j.jsxs)(`span`,{className:`cs-row-top`,children:[t.broke.length===0?(0,j.jsx)(xC,{tone:`gray`,small:!0,children:`kept by hand`}):t.broke.map(e=>(0,j.jsx)(xC,{tone:t.status===`pending`?`red`:`muted`,small:!0,children:e.judge},e.judge)),(0,j.jsx)(`span`,{className:`cs-row-age`,children:_E(t.created_at)})]}),(0,j.jsx)(`span`,{className:`cs-row-said`,children:t.golden.input?.[0]??t.name}),(0,j.jsxs)(`span`,{className:`cs-row-from`,children:[t.source_env,t.kept_in_repo&&` · in the repository`]})]},t.id);return(0,j.jsxs)(`aside`,{className:`cs-side`,"aria-label":`${e}'s cases`,children:[(0,j.jsxs)(`div`,{className:`cs-side-head`,children:[(0,j.jsx)(`span`,{className:`cs-title`,children:`Cases`}),(0,j.jsxs)(`p`,{className:`cs-lede`,children:[`Real calls of `,e,` a judge broke on. Each one waits here until you fix it and approve it, or dismiss it.`]}),t!==null&&(0,j.jsxs)(`span`,{className:t.pending>=t.pendingAtMost?`cs-count cs-count-full`:`cs-count`,children:[t.pending,` waiting of at most `,t.pendingAtMost]})]}),(0,j.jsxs)(`div`,{className:`cs-list`,children:[t?.cases.length===0&&(0,j.jsxs)(`p`,{className:`cs-empty`,children:[`No call of `,e,` has broken a judge yet. When one does, it lands here on its own, at hang-up.`]}),t!==null&&tY.map(({status:e,title:n})=>{let r=t.cases.filter(t=>t.status===e);return r.length===0?null:(0,j.jsxs)(`section`,{className:`cs-group`,children:[(0,j.jsxs)(`h2`,{className:`cs-group-title`,children:[n,` `,(0,j.jsx)(`span`,{className:`cs-group-count`,children:r.length})]}),r.map(i)]},e)}),t===null&&(0,j.jsx)(`p`,{className:`cs-empty`,children:n??`Asking the gateway…`})]}),t!==null&&t.pending>=t.pendingAtMost&&(0,j.jsx)(`p`,{className:`cs-foot cs-bad`,children:`The inbox is full: a call that breaks now is judged as ever and not kept, until you decide some of these.`})]})}var rY=` · `;function iY(e,t,n){return[t,e,n].join(rY)}function aY(e){if(e===null)return{held:0,judgments:0};let t=e.runs.flatMap(e=>e.scores);return{held:t.filter(e=>e.passed).length,judgments:t.length}}function oY(e,t){if(t?.matrix==null||e.matrix===null)return null;let n=sY(t.matrix),r=sY(e.matrix),i=[...r.keys()].filter(e=>n.has(e));return{broke:i.filter(e=>n.get(e)===!0&&r.get(e)===!1),recovered:i.filter(e=>n.get(e)===!1&&r.get(e)===!0)}}function sY(e){let t=new Map;for(let n of e.runs)for(let e of n.scores)t.set(iY(n.model,n.golden,e.metric),e.passed);return t}var cY=z({golden:P(),model:P(),call:P()}),lY=z({metric:P(),score:F(),passed:L(),reason:P(),criteria:P(),judge_calls:I()}),uY=z({model:P(),golden:P(),scores:R(lY),summary:Op(P(),hp()).nullable()}),dY=z({models:R(P()),goldens:R(P()),metrics:R(P()),judge_calls:I(),runs:R(uY),failures:R(z({model:P(),golden:P(),metric:P()}))}),fY=z({id:P(),agent:P(),started_at:F(),finished_at:F().nullable(),status:V([`running`,`done`,`failed`]),calls:R(cY),matrix:dY.nullable(),error:P().nullable()}),pY=z({runs:R(fY)}),mY=200;async function hY(e){return pY.parse(await A(e,`/v1/evals/runs`,{limit:mY})).runs}async function gY(e,t){return pY.parse(await A(e,`/v1/evals/runs`,{agent:t,limit:mY})).runs}async function _Y(e,t,n,r){return fY.parse(await la(e,`/v1/evals/run`,{agent:t,cases:n,...r===void 0?{}:{version:r}}))}var vY=z({check:P(),status:P(),detail:P()}),yY=z({call:P(),agent:P(),passed:L(),verdicts:R(vY)});async function bY(e,t){return yY.parse(await la(e,`/v1/evals/replay/${encodeURIComponent(t)}`,{}))}var xY=z({path:P(),candidate:z({name:P(),input:R(P())}),notes:R(P())});async function SY(e,t,n){return xY.parse(await ON(e,t,`promote.write`,{call:n}))}var CY=z({run:P(),folder:P(),goldens:R(P())}),wY=z({run:P(),agent:P(),golden:P(),model:P(),call:P(),declared:hp(),verdicts:R(z({metric:P(),passed:L(),criteria:P(),reason:P()})),asked:hp()});async function TY(e,t,n){return CY.parse(await ON(e,t,`reproductions.roster`,{run:n}))}async function EY(e,t,n,r){return wY.parse(await ON(e,t,`reproductions.read`,{run:n,golden:r}))}function DY({run:e}){let t=M(),n=xr().agent??``,[r,i]=(0,O.useState)(null),[a,o]=(0,O.useState)(``),[s,c]=(0,O.useState)(null),[l,u]=(0,O.useState)(null);if((0,O.useEffect)(()=>{let r=!1;return c(null),u(null),TY(t,n,e).then(e=>{r||(i(e.goldens),o(e.folder))},()=>{r||i([])}),()=>{r=!0}},[t,n,e]),r===null||r.length===0)return null;let d=async r=>{u(null);try{c(await EY(t,n,e,r))}catch(e){u(e instanceof na?e.message:String(e))}};return(0,j.jsxs)(`div`,{className:`ev-repro`,children:[(0,j.jsx)(Nh,{ruled:!0,children:`Reproductions`}),(0,j.jsxs)(`div`,{className:`ev-repro-body`,children:[(0,j.jsxs)(`div`,{className:`ui-note`,children:[r.length,` in `,(0,j.jsxs)(`span`,{className:`ui-fixed`,children:[a,`/`]}),` — the golden as written, every verdict on it, and the requests the model answered.`]}),(0,j.jsx)(`div`,{className:`ui-chips`,children:r.map(e=>(0,j.jsx)(`button`,{type:`button`,className:s?.golden===e?`ui-chip ui-chip-on`:`ui-chip`,onClick:()=>void d(e),children:e},e))}),(0,j.jsx)(Ah,{children:l}),s!==null&&(0,j.jsxs)(`div`,{className:`ev-repro-open`,children:[(0,j.jsxs)(`div`,{className:`ev-repro-title`,children:[s.golden,` · `,s.model,` `,(0,j.jsx)(`span`,{className:`ui-cell-faint`,children:s.call})]}),s.verdicts.filter(e=>!e.passed).map(e=>(0,j.jsxs)(`div`,{className:`ev-repro-verdict`,children:[(0,j.jsx)(xC,{tone:`red`,small:!0,children:e.metric}),(0,j.jsx)(`span`,{className:`ev-reason`,children:e.reason})]},e.metric)),(0,j.jsx)(`pre`,{className:`ui-code ev-asked`,children:JSON.stringify(s.asked,null,2)})]})]})]})}var OY=`minmax(0,1.1fr) 120px 84px 70px 80px minmax(0,1.6fr)`,kY={done:`green`,running:`amber`,failed:`red`};function AY({runs:e,selected:t,onSelect:n}){return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(NC,{columns:OY,labels:[`Run`,`Started`,`Status`,`Held>`,`Judge calls>`,`Since the run before`]}),e.map((r,i)=>{let a=aY(r.matrix),o=r.id===t;return(0,j.jsxs)(`div`,{className:o?`ui-table-row ui-table-row-link ev-row-open`:`ui-table-row ui-table-row-link`,style:{gridTemplateColumns:OY},onClick:()=>n(r.id),children:[(0,j.jsx)(`span`,{className:`ui-cell-link ui-clip`,children:r.id}),(0,j.jsx)(`span`,{className:`ui-cell-faint`,children:hE(r.started_at)}),(0,j.jsx)(`span`,{children:(0,j.jsx)(xC,{tone:kY[r.status],children:r.status})}),(0,j.jsx)(`span`,{className:a.judgments>0&&a.held<a.judgments?`ev-num ev-num-bad`:`ev-num`,children:a.judgments===0?`—`:`${a.held}/${a.judgments}`}),(0,j.jsx)(`span`,{className:`ev-num ev-num-faint`,children:r.matrix?.judge_calls??`—`}),(0,j.jsx)(jY,{delta:oY(r,e[i+1])})]},r.id)})]})}function jY({delta:e}){return e===null?(0,j.jsx)(`span`,{className:`ui-cell-faint`,children:`first of its kind`}):e.broke.length===0&&e.recovered.length===0?(0,j.jsx)(`span`,{className:`ui-cell-faint`,children:`±0`}):(0,j.jsxs)(`span`,{className:`ui-tags`,children:[e.broke.map(e=>(0,j.jsxs)(xC,{tone:`red`,small:!0,children:[`broke · `,e]},`broke-${e}`)),e.recovered.map(e=>(0,j.jsxs)(xC,{tone:`green`,small:!0,children:[`held again · `,e]},`held-${e}`))]})}var MY=`minmax(0,1.1fr) minmax(0,.8fr) 110px 120px 84px minmax(0,1.6fr)`,NY={done:`green`,running:`amber`,failed:`red`};function PY({run:e,before:t}){return(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:e.id,meta:`${e.agent} · ${e.matrix?.judge_calls??0} judge calls`,children:(0,j.jsx)(`span`,{className:`ev-head-end`,children:(0,j.jsx)(xC,{tone:NY[e.status],children:e.status})})}),(0,j.jsxs)(`div`,{className:`ev-facts`,children:[(0,j.jsx)(Ph,{label:`Started`,children:hE(e.started_at)}),(0,j.jsx)(Ph,{label:`Finished`,children:hE(e.finished_at)}),e.error!==null&&(0,j.jsx)(Ph,{label:`Error`,children:e.error}),(0,j.jsx)(Ph,{label:`Since before`,children:(0,j.jsx)(jY,{delta:oY(e,t)})})]}),e.matrix===null?(0,j.jsx)(kh,{children:`No matrix yet — the run is still opening its calls, or it failed before a judge answered.`}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(NC,{columns:MY,labels:[`Golden`,`Model`,`Metric`,`Score`,`Held`,`The judge's own sentence`]}),e.matrix.runs.flatMap(t=>t.scores.map(n=>(0,j.jsx)(FY,{run:e,cell:t,score:n},`${t.golden}/${t.model}/${n.metric}`))),(0,j.jsx)(`div`,{className:`ui-card-foot`,children:`A hard policy writes the seqs into its reason on purpose, so the sentence is the way into the log.`})]}),(0,j.jsx)(DY,{run:e.id})]})}function FY({run:e,cell:t,score:n}){let r=e.calls.find(e=>e.golden===t.golden&&e.model===t.model);return(0,j.jsxs)(`div`,{className:`ui-table-row`,style:{gridTemplateColumns:MY},children:[(0,j.jsxs)(`span`,{className:`ev-golden`,children:[(0,j.jsx)(`span`,{className:`ev-golden-says ui-clip`,children:t.golden}),r!==void 0&&(0,j.jsx)(Wi,{className:`ev-golden-call ui-clip`,to:`/calls/${r.call}`,children:r.call})]}),(0,j.jsx)(`span`,{className:`ui-cell-faint ui-clip`,children:t.model}),(0,j.jsx)(`span`,{className:`ui-cell-ink ui-clip`,children:n.metric}),(0,j.jsxs)(`span`,{className:`ev-score`,children:[(0,j.jsx)(`span`,{className:`ev-score-value`,children:n.score.toFixed(2)}),(0,j.jsx)(OC,{share:n.score,color:n.passed?`var(--green-dot)`:`var(--red)`,height:5})]}),(0,j.jsx)(`span`,{children:n.passed?(0,j.jsx)(xC,{tone:`green`,children:`held`}):(0,j.jsx)(xC,{tone:`red`,children:`did not hold`})}),(0,j.jsx)(`span`,{className:`ev-reason`,title:n.criteria,children:n.reason})]})}var IY=z({name:P(),input:R(P()),expect:Op(P(),hp())}),LY=z({agent:P().nullable(),goldens:R(IY)}),RY=z({run:P()});async function zY(e,t){return LY.parse(await ON(e,t,`goldens.roster`))}async function BY(e,t){return RY.parse(await ON(e,t.agent,`goldens.run`,t)).run}var VY=15,HY=0;function UY({agent:e,roster:t,onOpened:n}){let r=M(),[i,a]=(0,O.useState)(()=>new Set(t.goldens.map(e=>e.name))),[o,s]=(0,O.useState)(``),[c,l]=(0,O.useState)(!1),[u,d]=(0,O.useState)(!1),[f,p]=(0,O.useState)(VY),[m,h]=(0,O.useState)(HY),[g,_]=(0,O.useState)(!1),[v,y]=(0,O.useState)(null),b=(e,t)=>{let n=new Set(i);t?n.add(e):n.delete(e),a(n)},x=i.size===t.goldens.length,S=async a=>{a.preventDefault(),_(!0),y(null);try{let a=o.split(`,`).map(e=>e.trim()).filter(e=>e!==``);n(await BY(r,{agent:e,goldens:t.goldens.map(e=>e.name).filter(e=>i.has(e)),...a.length===0?{}:{models:a},voice:c,...c&&u?{background_noise:f,packet_loss:m/100}:{}}))}catch(e){y(e instanceof na?e.message:String(e))}finally{_(!1)}};return(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Run a suite`,meta:`through the class in the directory pinecall start runs in, scored by this gateway`}),(0,j.jsxs)(`form`,{onSubmit:e=>void S(e),children:[(0,j.jsxs)(`div`,{className:`ev-suite-controls`,children:[(0,j.jsxs)(`div`,{className:`ev-suite-models`,children:[(0,j.jsx)(Rh,{children:`Models`}),(0,j.jsx)(G,{size:`sm`,value:o,placeholder:`the one the settings name · vendor/model, comma separated`,onChange:e=>s(e.target.value)})]}),(0,j.jsx)(Wh,{checked:c,onChange:l,children:`Voice — ring 2, a real line`}),c&&(0,j.jsx)(Wh,{checked:u,onChange:d,children:`Noisy line`}),c&&u&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`div`,{className:`ev-suite-number`,children:[(0,j.jsx)(Rh,{children:`Noise, dB under`}),(0,j.jsx)(G,{size:`sm`,type:`number`,min:0,max:60,value:f,onChange:e=>p(Number(e.target.value))})]}),(0,j.jsxs)(`div`,{className:`ev-suite-number`,children:[(0,j.jsx)(Rh,{children:`Packets lost, %`}),(0,j.jsx)(G,{size:`sm`,type:`number`,min:0,max:100,value:m,onChange:e=>h(Number(e.target.value))})]})]}),(0,j.jsx)(W,{kind:`primary`,size:`md`,type:`submit`,className:`ev-suite-go`,disabled:g||i.size===0,children:g?`Opening…`:`Run ${x?`the suite`:`${i.size} golden${i.size===1?``:`s`}`}`})]}),(0,j.jsx)(`div`,{className:`ev-suite-all`,children:(0,j.jsxs)(Wh,{checked:x,onChange:e=>a(new Set(e?t.goldens.map(e=>e.name):[])),children:[i.size,` of `,t.goldens.length]})}),t.goldens.map(e=>(0,j.jsxs)(`div`,{className:`ev-suite-golden`,children:[(0,j.jsx)(Wh,{checked:i.has(e.name),onChange:t=>b(e.name,t),children:(0,j.jsx)(`span`,{className:`ev-suite-name`,children:e.name})}),(0,j.jsx)(`span`,{className:`ev-suite-says ui-clip`,children:e.input[0]??``}),(0,j.jsx)(`span`,{className:`ev-suite-expects ui-clip`,children:WY(e)})]},e.name))]}),(0,j.jsx)(Ah,{children:v})]})}function WY(e){let t=Object.entries(e.expect).map(([e,t])=>`${e}: ${GY(t)}`);return t.length===0?`consent only`:t.join(` · `)}function GY(e){return Array.isArray(e)?e.map(String).join(`, `):String(e)}var KY=3e3;function qY(e){let t=M(),[n,r]=(0,O.useState)([]),[i,a]=(0,O.useState)(!0),[o,s]=(0,O.useState)(null);return(0,O.useEffect)(()=>{let n=!1,i=async()=>{try{let i=await gY(t,e);n||(r(i),s(null))}catch(e){n||s(String(e))}finally{n||a(!1)}};i();let o=window.setInterval(()=>void i(),KY);return()=>{n=!0,window.clearInterval(o)}},[e,t]),{runs:n,reading:i,error:o}}var JY=`minmax(0,1fr) 110px 90px`;function YY(e){let t=Object.keys(e.expect);return t.includes(`tools`)||t.includes(`not_tools`)?`tool call`:t.includes(`says`)||t.includes(`not`)?`exact phrase`:t.includes(`grounded`)||t.includes(`register`)?`judge`:t.includes(`replies`)?`a reply`:t.length===0?`consent`:t[0]??`—`}function XY(e){let t=new Map;for(let n of e?.matrix?.runs??[]){let e=n.scores.every(e=>e.passed);t.set(n.golden,(t.get(n.golden)??!0)&&e)}return t}function ZY(){let e=xr().agent??``,t=M(),[n,r]=Xi(),i=qY(e),[a,o]=(0,O.useState)(null),[s,c]=(0,O.useState)(null),[l,u]=(0,O.useState)(!1),[d,f]=(0,O.useState)(null),p=nh===`sandbox`;(0,O.useEffect)(()=>{let n=!1;return zY(t,e).then(e=>{n||o(e)},e=>{n||c(e instanceof Error?e.message:String(e))}),()=>{n=!0}},[t,e]);let m=n.get(`run`),h=i.runs.find(e=>e.id===m)??null,g=i.runs.find(e=>e.matrix!==null),_=XY(g),v=a!==null&&a.agent===e?a.goldens:[],y=v.length>0?v.map(e=>e.name):[..._.keys()],b=[..._.values()].filter(Boolean).length,x=_.size-b,S=e=>{let t=new URLSearchParams(n);for(let[n,r]of Object.entries(e))r===null?t.delete(n):t.set(n,r);r(t)},C=async()=>{u(!0),f(null);try{let n=await BY(t,{agent:e,goldens:v.map(e=>e.name),voice:!1});S({run:n})}catch(e){f(e instanceof Error?e.message:String(e))}finally{u(!1)}};return(0,j.jsxs)(kC,{width:1060,tight:!0,children:[(0,j.jsx)(AC,{title:`Goldens`,ledeWidth:640,lede:`Fixed questions replayed against the agent as it is now: is a change safe to ship? A golden is fixed and the agent is the variable — never soften one so a change can pass.`}),(0,j.jsxs)(jC,{min:150,children:[(0,j.jsx)(MC,{size:`small`,label:`Goldens`,value:y.length===0?`—`:y.length}),(0,j.jsx)(MC,{size:`small`,label:`Passing`,value:g===void 0?`—`:b,tone:g===void 0?void 0:`green`}),(0,j.jsx)(MC,{size:`small`,label:`Failing`,value:g===void 0?`—`:x,tone:g===void 0||x===0?void 0:`red`}),(0,j.jsxs)(`div`,{className:`ui-stat ui-stat-small`,children:[(0,j.jsx)(`div`,{className:`ui-stat-label`,children:`Last run`}),(0,j.jsx)(`div`,{className:`ev-last`,children:i.runs[0]===void 0?`never`:hE(i.runs[0].started_at)})]})]}),(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Golden questions`,action:p?v.length>0&&(0,j.jsx)(W,{kind:`primary`,size:`sm`,disabled:l,onClick:()=>void C(),children:l?`Opening…`:`Run all`}):(0,j.jsx)(W,{size:`sm`,onClick:()=>window.location.assign(th(window.location.pathname)),children:`Run them in the sandbox`})}),y.length===0&&(0,j.jsx)(kh,{children:a!==null&&a.agent!==e?a.agent===null?"No agent class in the directory the agent's `pinecall start` runs in, so no goldens to read.":`The process holding the agent runs in ${a.agent}'s directory; its goldens are that agent's.`:s!==null&&i.runs.length===0?`The goldens are files beside the class, read by the process holding the agent — and no run has been stored yet to list them from.`:`No goldens for this agent yet: write one in its goldens folder — test/goldens, or test/goldens/<name> in a project of several.`}),(0,j.jsx)(`div`,{className:`ev-goldens`,children:y.map(e=>{let t=v.find(t=>t.name===e),n=_.get(e);return(0,j.jsxs)(`div`,{className:`ui-table-row`,style:{gridTemplateColumns:JY},children:[(0,j.jsx)(`span`,{className:`ev-golden-says ui-clip`,title:e,children:t?.input[0]??e}),(0,j.jsx)(`span`,{className:`ui-cell-faint`,children:t===void 0?`—`:YY(t)}),(0,j.jsx)(`span`,{className:`ui-cell-end`,children:n===void 0?(0,j.jsx)(xC,{tone:`muted`,children:`not run`}):n?(0,j.jsx)(xC,{tone:`green`,children:`pass`}):(0,j.jsx)(xC,{tone:`red`,children:`fail`})})]},e)})})]}),(0,j.jsx)(Ah,{children:d}),p?(0,j.jsxs)(j.Fragment,{children:[a!==null&&a.agent===e&&v.length>0&&(0,j.jsx)(UY,{agent:e,roster:a,onOpened:e=>S({run:e})}),(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Runs`,meta:`${i.runs.length} · the same rows pinecall runs list prints`}),(0,j.jsx)(Ah,{children:i.error}),i.runs.length>0?(0,j.jsx)(AY,{runs:i.runs,selected:m,onSelect:e=>S({run:e})}):(0,j.jsx)(kh,{children:i.reading?`Reading…`:`No run has been stored yet. A run appears here the moment one opens — from this page, a laptop or CI.`})]}),h!==null&&(0,j.jsx)(PY,{run:h,before:i.runs[i.runs.indexOf(h)+1]})]}):(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Runs`,meta:`${i.runs.length} · the same rows pinecall runs list prints`}),(0,j.jsx)(Ah,{children:i.error}),i.runs.length>0?(0,j.jsx)(AY,{runs:i.runs,selected:m,onSelect:e=>S({run:e})}):(0,j.jsx)(kh,{children:`No run has been stored yet. Suites run from a developer's directory — the sandbox's console, a laptop or CI — and appear here the moment one opens.`})]}),!p&&h!==null&&(0,j.jsx)(PY,{run:h,before:i.runs[i.runs.indexOf(h)+1]})]})}function QY(e){let t=new Map;for(let n of e)t.has(n.agent)||n.status!==`done`||n.matrix===null||t.set(n.agent,{agent:n.agent,at:n.started_at,cells:n.matrix.runs.length,held:n.matrix.runs.filter(e=>e.scores.every(e=>e.passed)).length,failing:[...new Set(n.matrix.failures.map(e=>e.golden))]});return t}function $Y(){let e=M(),[t,n]=(0,O.useState)(new Map);return(0,O.useEffect)(()=>{let t=!1;return hY(e).then(e=>{t||n(QY(e))},()=>void 0),()=>{t=!0}},[e]),t}var eX=B({asks:P(),expects:P(),found:R(P())}),tX=B({base:P(),model:P(),questions:I(),k:I(),recall_at_k:F(),ndcg_at_10:F(),took_ms:F(),misses:R(eX)}),nX=B({base:P(),chunks:I(),took_ms:F()}),rX=B({bases:R(B({base:P(),chunks:I(),model:P(),pushed_at:F()}))}),iX=B({facts:R(B({id:P().nullish(),text:P(),category:P().nullish(),source:P().nullish(),valid_from:F(),invalidated_at:F().nullable()}))}),aX=B({forgotten:I()}),oX=B({asks:P(),missing:R(P()),found:R(P())}),sX=B({model:P(),questions:I(),k:I(),recall_at_k:F(),ndcg_at_10:F(),took_ms:F(),misses:R(oX)}),cX=B({check:P(),detail:P()}),lX=B({name:P(),held:L(),wrote:R(P()).nullish(),refused:R(P()).nullish(),broke:R(cX).nullish()}),uX=B({agent:P(),model:P(),cases:I(),held:I(),took_ms:F(),results:R(lX)}),dX=B({path:P(),chars:I(),chunks:I(),pushed_at:F()}),fX=B({base:P(),kept:L(),files:R(dX)}),pX=B({path:P(),text:P(),chunks:I(),pushed_at:F()}),mX=B({base:P(),path:P(),chunks:I(),took_ms:F()}),hX=B({bases:R(B({base:P(),agents:R(P())}))}),gX=z({agent:P().nullable(),base:P().nullable(),directory:P().nullable(),files:I(),golden:P().nullable(),questions:I()}),_X=nX.extend({files:I()});async function vX(e){return rX.parse(await A(e,`/v1/knowledge`))}async function yX(e,t){return gX.parse(await ON(e,t,`knowledge.roster`,{agent:t}))}async function bX(e,t,n){return _X.parse(await ON(e,t,`knowledge.push`,{agent:t,...n===``?{}:{base:n}}))}async function xX(e,t,n){return tX.parse(await ON(e,t,`knowledge.eval`,{agent:t,...n===``?{}:{base:n}}))}async function SX(e,t){await ua(e,`/v1/knowledge/${encodeURIComponent(t)}`)}var CX=z({vendor:P(),model:P().nullable(),voice_id:P().nullable(),language:P().nullable()}),wX=z({name:V(dM),seconds:F(),turns:I()}),TX=z({say:P().nullable(),reply:P().nullable(),allow_interruptions:L().nullable()}),EX=z({agent:P(),hears:CX,decides:CX,speaks:CX,greeting:TX.nullable(),voices:R(P()),providers:R(tT),defaults:Op(P(),P()),models:Op(P(),R(P())),calls:I(),medians:R(wX),unavailable_reasons:Op(P(),P())});async function DX(e,t){return EX.parse(await A(e,OX(t)))}function OX(e){return`/v1/agents/${encodeURIComponent(e)}/pipeline`}var kX=z({played:V([`default`,`off`,`custom`]),name:P().nullable(),seconds:F().nullable(),sha256:P().nullable()});async function AX(e,t){return kX.parse(await A(e,`${OX(t)}/hold-audio`))}async function jX(e,t,n){let r=await fetch(da(e,`${OX(t)}/hold-audio`,{name:n.name}),{method:`PUT`,headers:{...ia(e),"content-type":n.type||`application/octet-stream`},body:n});return kX.parse(await ma(r))}async function MX(e,t,n){return kX.parse(await sa(e,`${OX(t)}/hold-audio/played`,{played:n}))}async function NX(e,t){let n=await fetch(da(e,`${OX(t)}/hold-audio/audio`),{headers:ia(e)});return n.ok||await ma(n),URL.createObjectURL(await n.blob())}function PX(e){return`/v1/agents/${encodeURIComponent(e)}/settings`}async function FX(e,t){return Jw.parse(await A(e,PX(t)))}async function IX(e,t,n){return Jw.parse(await sa(e,PX(t),n))}async function LX(e,t,n){return oee.parse(await A(e,`${PX(t)}/history`,{team:String(n)}))}async function RX(e,t,n,r){return Jw.parse(await la(e,`${PX(t)}/rollback`,{version:n,team:r}))}var zX=[`voice`,`tts`,`tts_model`,`stt`,`language`,`llm`,`greeting`,`hangup`,`turn`,`memory`,`record`,`max_duration_s`,`knowledge`,`bases`],BX={voice:`Voice`,tts:`Voice vendor`,tts_model:`Voice model`,stt:`STT`,language:`Language`,llm:`LLM`,greeting:`Opening`,hangup:`Hang up when`,turn:`Turn`,memory:`Memory`,record:`Recording`,max_duration_s:`Longest voice call`,knowledge:`Knowledge`,bases:`Bases`};function VX(e,t){if(t===`greeting`){let t=e.greeting??void 0;if(t===void 0)return;let n=t.say??void 0;return n===void 0?`reply: ${t.reply??``}`:`"${n}"`}if(t===`hangup`){let t=e.hangup??void 0;return t===void 0?void 0:t.when?`when ${t.when}`:`may hang up`}if(t===`turn`){let t=e.turn??void 0;if(t===void 0)return;let n=[];return typeof t.endpointing_ms==`number`&&n.push(`endpointing ${t.endpointing_ms} ms`),typeof t.min_interruption_words==`number`&&n.push(`interrupt at ${t.min_interruption_words} words`),n.join(` · `)}if(t===`memory`){let t=e.memory??void 0;return t===void 0?void 0:`remember ${t.remember?.length??0} · forget ${t.forget?.length??0}`}if(t===`record`){let t=e.record??void 0;return t===void 0?void 0:t?`keeps the audio`:`keeps none`}if(t===`max_duration_s`){let t=e.max_duration_s??void 0;return t===void 0?void 0:t===0?`no limit`:`${t/60} min`}if(t===`knowledge`){let t=e.knowledge??void 0;return t===void 0?void 0:`${t.length.toLocaleString(`en-US`)} chars`}if(t===`bases`){let t=e.bases??void 0;return t===void 0||t.length===0?void 0:t.map(e=>`${e.base}${typeof e.k==`number`?` (k ${e.k})`:``}`).join(` · `)}let n=e[t];return typeof n==`string`?n:void 0}function HX(e,t){let n=[];for(let r of zX){let i=VX(e,r),a=VX(t,r);i!==a&&n.push(`${BX[r]} ${i??`—`} → ${a??`—`}`)}return n}function UX(e,t){return t?e.team:e.yours}var WX=``,GX=[`2`,`4`,`6`,`8`,`12`,`16`],KX=[`0.2`,`0.3`,`0.4`,`0.5`,`0.6`,`0.7`];function qX(e,t){return e===``||t.includes(e)?t:[e,...t]}function JX({rows:e,offered:t,onChange:n}){let r=new Set(e.map(e=>e.base)),i=(t??[]).filter(e=>!r.has(e.base)),a=(t,r)=>n(e.map((e,n)=>n===t?r:e)),o=t=>n(e.filter((e,n)=>n!==t));return(0,j.jsxs)(`section`,{className:`set-section`,children:[(0,j.jsxs)(`div`,{className:`set-section-head`,children:[(0,j.jsx)(`h2`,{className:`set-section-title`,children:`Bases`}),(0,j.jsx)(`p`,{className:`set-section-blurb`,children:"The documents the agent searches on every turn, by the name each folder was pushed under. A base is pushed from a project with `pinecall docs push`; the Docs tab lists them."})]}),e.length===0?(0,j.jsx)(`p`,{className:`set-help`,children:`Nothing attached: the agent answers from what it knows by heart and from its tools alone. Attach one below, and every turn searches it before the model speaks.`}):(0,j.jsxs)(`div`,{className:`set-bases`,children:[(0,j.jsxs)(`div`,{className:`set-bases-head`,children:[(0,j.jsx)(`span`,{children:`Base`}),(0,j.jsx)(`span`,{children:`Chunks a turn reads`}),(0,j.jsx)(`span`,{children:`Searched by`}),(0,j.jsx)(`span`,{children:`Least score kept`}),(0,j.jsx)(`span`,{})]}),e.map((e,n)=>(0,j.jsxs)(`div`,{className:`set-bases-row`,children:[(0,j.jsxs)(vC,{value:e.base,"aria-label":`Base`,onValueChange:t=>a(n,{...e,base:t}),children:[(t??[]).some(t=>t.base===e.base)?null:(0,j.jsxs)(yC,{value:e.base,children:[e.base,` · not pushed in this world`]}),(t??[]).map(t=>(0,j.jsxs)(yC,{value:t.base,disabled:t.base!==e.base&&r.has(t.base),children:[t.base,` · `,t.chunks,` chunks`]},t.base))]}),(0,j.jsxs)(vC,{value:e.k,"aria-label":`Chunks a turn reads`,onValueChange:t=>a(n,{...e,k:t}),children:[(0,j.jsx)(yC,{value:``,children:`Runtime default · 8`}),qX(e.k,GX).map(e=>(0,j.jsx)(yC,{value:e,children:e},e))]}),(0,j.jsxs)(vC,{value:e.mode,"aria-label":`Searched by`,onValueChange:t=>a(n,{...e,mode:t===`tool`?`tool`:`retrieved`}),children:[(0,j.jsx)(yC,{value:`retrieved`,children:`The platform, before every turn`}),(0,j.jsx)(yC,{value:`tool`,children:`The model, when it decides`})]}),(0,j.jsxs)(vC,{value:e.min_score,"aria-label":`Least score kept`,onValueChange:t=>a(n,{...e,min_score:t}),children:[(0,j.jsx)(yC,{value:``,children:`Keep them all`}),qX(e.min_score,KX).map(e=>(0,j.jsx)(yC,{value:e,children:e},e))]}),(0,j.jsx)(W,{size:`xs`,onClick:()=>o(n),children:`Detach`})]},`${e.base}-${n}`))]}),e.length>1&&(0,j.jsxs)(`p`,{className:`set-help`,children:[`Several bases are one search, not several: they are read together and ranked against each other, so a collection with nothing to say about the question takes none of the turn's chunks. The turn is handed the most generous `,(0,j.jsx)(`strong`,{children:`chunks a turn reads`}),` of the rows above, and each `,(0,j.jsx)(`strong`,{children:`least score kept`}),` is read against the base that set it.`]}),(0,j.jsx)(`div`,{className:`set-row`,children:(0,j.jsxs)(`div`,{className:`set-field`,children:[(0,j.jsx)(Rh,{children:`Attach a base`}),(0,j.jsxs)(vC,{value:WX,"aria-label":`Attach a base`,disabled:i.length===0,onValueChange:t=>t!==WX&&n([...e,{base:t,k:``,mode:`retrieved`,min_score:``}]),children:[(0,j.jsx)(yC,{value:WX,children:t===null?`Asking the gateway…`:i.length===0?`Every pushed base is attached`:`Pick one…`}),i.map(e=>(0,j.jsxs)(yC,{value:e.base,children:[e.base,` · `,e.chunks,` chunks`]},e.base))]}),(0,j.jsx)(`p`,{className:`set-help`,children:`Only bases pushed in this world appear. A base a colleague pushed to their own corner is theirs until they push it for the team.`})]})})]})}var YX=[{value:`say`,label:`Say these words`},{value:`reply`,label:`Let the model open`}],XX=[`500`,`700`,`1000`,`1500`,`2000`,`3000`],ZX=[`1`,`2`,`3`,`4`,`5`],QX=[`300`,`900`,`1200`,`1800`,`2700`,`3600`],$X=[{value:``,label:`Not set`},{value:`on`,label:`Keep the audio`},{value:`off`,label:`Keep none`}];function eZ({typed:e,wordsOnly:t,change:n}){return(0,j.jsxs)(`section`,{className:`set-section`,children:[(0,j.jsxs)(`div`,{className:`set-section-head`,children:[(0,j.jsx)(`h2`,{className:`set-section-title`,children:`Conversation`}),(0,j.jsx)(`p`,{className:`set-section-blurb`,children:`The first thing a caller hears, when the agent may hang up, and how quickly a turn is cut.`})]}),(0,j.jsxs)(`div`,{className:`set-field set-wide`,children:[(0,j.jsx)(Rh,{children:`Opening`}),!t&&(0,j.jsx)(Vh,{options:YX,value:e.opening,onChange:e=>n(`opening`,e)}),e.opening===`say`||t?(0,j.jsx)(zh,{value:e.say,rows:2,"aria-label":`Opening`,placeholder:`The exact words the caller hears first`,onChange:e=>n(`say`,e.target.value)}):(0,j.jsx)(zh,{value:e.reply,rows:2,"aria-label":`Opening`,placeholder:`What the model is told about how to open the call`,onChange:e=>n(`reply`,e.target.value)}),(0,j.jsx)(`p`,{className:`set-help`,children:e.opening===`say`||t?`Said exactly as written, before the model runs: the caller hears it at once.`:`An instruction the model reads to find its own opening. It costs a model round trip before the caller hears anything.`})]}),!t&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`div`,{className:`set-field set-wide`,children:[(0,j.jsx)(Rh,{children:`May hang up when`}),(0,j.jsx)(G,{value:e.hangup,"aria-label":`May hang up when`,placeholder:`the person has what they came for, or asks you to end the call`,onChange:e=>n(`hangup`,e.target.value)}),(0,j.jsx)(`p`,{className:`set-help`,children:`In your words. Empty: the agent never ends the call itself.`})]}),(0,j.jsxs)(`div`,{className:`set-row`,children:[(0,j.jsxs)(`div`,{className:`set-field`,children:[(0,j.jsx)(Rh,{children:`Silence that ends a turn`}),(0,j.jsxs)(vC,{value:e.endpointing_ms,"aria-label":`Silence that ends a turn`,onValueChange:e=>n(`endpointing_ms`,e),children:[(0,j.jsx)(yC,{value:``,children:`Runtime default · 1 second`}),tZ(XX,e.endpointing_ms).map(e=>(0,j.jsxs)(yC,{value:e,children:[Number(e)/1e3,` s`]},e))]}),(0,j.jsx)(`p`,{className:`set-help`,children:`How long the caller stays quiet before the agent answers. Shorter answers faster, and cuts off a slow speaker.`})]}),(0,j.jsxs)(`div`,{className:`set-field`,children:[(0,j.jsx)(Rh,{children:`Words before an interruption counts`}),(0,j.jsxs)(vC,{value:e.min_interruption_words,"aria-label":`Words before an interruption counts`,onValueChange:e=>n(`min_interruption_words`,e),children:[(0,j.jsx)(yC,{value:``,children:`Runtime default · 2 words`}),tZ(ZX,e.min_interruption_words).map(e=>(0,j.jsx)(yC,{value:e,children:e===`1`?`1 word`:`${e} words`},e))]}),(0,j.jsx)(`p`,{className:`set-help`,children:`How many words a caller says over the agent before it stops talking. A cough is not an interruption.`})]})]}),(0,j.jsxs)(`div`,{className:`set-field set-wide`,children:[(0,j.jsx)(Rh,{children:`Longest voice call`}),(0,j.jsxs)(vC,{value:e.max_duration_s,"aria-label":`Longest voice call`,onValueChange:e=>n(`max_duration_s`,e),children:[(0,j.jsx)(yC,{value:``,children:`Runtime default · 10 minutes`}),tZ(QX,e.max_duration_s).filter(e=>e!==`0`).map(e=>(0,j.jsxs)(yC,{value:e,children:[Number(e)/60,` minutes`]},e)),(0,j.jsx)(yC,{value:`0`,children:`No limit`})]}),(0,j.jsx)(`p`,{className:`set-help`,children:`A minute before it the agent is told to wrap up and say goodbye; at it the call ends, logged as a timeout. Phone and web voice calls only: a written conversation is never cut. A supervisor on the line does not stop the clock.`})]}),(0,j.jsxs)(`div`,{className:`set-field set-wide`,children:[(0,j.jsx)(Rh,{children:`Recording`}),(0,j.jsx)(Vh,{options:$X,value:e.record,onChange:e=>n(`record`,e)}),(0,j.jsx)(`p`,{className:`set-help`,children:`Whether this agent's calls keep their audio, which is what a session is played back from. The box records the whole room: the caller, the agent, the hold music and a supervisor who took the line. Not set: what the corner below says, and calls are kept unless somebody said otherwise.`})]})]})]})}function tZ(e,t){return t===``||e.includes(t)?e:[t,...e]}var nZ={en:`English`,es:`Spanish`,pt:`Portuguese`,fr:`French`,de:`German`,it:`Italian`};function rZ(e){return tZ(Object.keys(nZ),e)}function iZ({language:e,onChange:t}){return(0,j.jsx)(`div`,{className:`set-row`,children:(0,j.jsxs)(`div`,{className:`set-field`,children:[(0,j.jsx)(Rh,{children:`Language`}),(0,j.jsxs)(vC,{value:e,"aria-label":`Language`,onValueChange:t,children:[(0,j.jsx)(yC,{value:``,children:`Not set — the vendor's default`}),rZ(e).map(e=>(0,j.jsx)(yC,{value:e,children:nZ[e]===void 0?`${e} · as set`:`${nZ[e]} · ${e}`},e))]}),(0,j.jsx)(`p`,{className:`set-help`,children:`The language the caller is heard in and the agent speaks, handed to the vendors of the call. Not set: no language is pinned, and each vendor runs its own default.`})]})})}var aZ=B({personas:R(B({name:P(),about:P(),goal:P(),style:P(),facts:Op(P(),P()),state:Op(P(),hp()),llm:P().nullable(),tts:P().nullable(),voice:P().nullable(),accepts_when:P(),declines_when:P(),author:P(),set_at:F()}))});B({about:P().nullish(),goal:P(),style:P(),facts:Op(P(),P()).nullish(),state:Op(P(),hp()).nullish(),llm:P().nullable().nullish(),tts:P().nullable().nullish(),voice:P().nullable().nullish(),accepts_when:P().nullish(),declines_when:P().nullish(),was:P().nullish()});var oZ=B({runs:R(B({call:P(),agent:P(),started_at:F(),ended_at:F().nullable(),turns:I(),end_reason:fw.nullable(),outcome:P().nullable(),cost_usd:F().nullable(),score:ZT.nullable()})),total:I(),next:P().nullable()}),sZ=B({id:P(),name:P(),language:P(),description:P(),gender:P(),country:P(),accent:P()}),cZ=B({tts:P(),language:P().nullable(),voices:R(sZ)});B({tts:P(),voice:P(),model:P().nullable().nullish(),language:P().nullable().nullish(),text:P().nullable().nullish()});var lZ=V([`every-call`,`simulations`]),uZ=B({judges:R(B({name:P(),question:P(),runs_on:lZ,author:P(),set_at:F()}))});B({question:P(),runs_on:lZ.nullish()});var dZ=B({tools:R(P()).optional(),not_tools:R(P()).optional(),not:R(P()).optional(),says:R(P()).optional(),says_any:R(P()).optional(),grounded:L().optional(),register:V([`tu`,`usted`]).nullable().optional(),replies:L().nullable().optional(),judges:R(P()).optional()}),fZ=B({after_turn:F().optional(),name:P(),data:Op(P(),hp()).optional()}),pZ=B({name:P(),state:Op(P(),hp()).optional(),input:R(P()).optional(),memory:R(P()).optional(),events:R(fZ).optional(),today:P().nullable().optional(),expect:dZ.optional(),promoted_from:P().nullable().optional()}),mZ=V([`pending`,`approved`,`dismissed`]),hZ=B({id:P(),agent:P(),name:P(),golden:pZ,source_call:P(),source_env:V([`production`,`sandbox`]),held_out:L(),author:P(),created_at:F(),status:mZ,broke:R(B({judge:P(),reason:P()})),source_version:F().nullable(),kept_in_repo:L(),decided_by:P().nullable()}),gZ=B({cases:R(hZ),pending:F(),pending_at_most:F()});B({status:mZ.optional(),held_out:L().optional(),kept_in_repo:L().optional(),judge_was_wrong:P().optional(),note:P().optional()});async function _Z(e,t,n){let r=n===null?{tts:t}:{tts:t,language:n};return cZ.parse(await A(e,`/v1/voices`,r)).voices}async function vZ(e,t){let n=await fetch(da(e,`/v1/voices/sample`),{method:`POST`,headers:{...ia(e),"content-type":`application/json`},body:JSON.stringify(t)});return n.ok||await ma(n),{url:URL.createObjectURL(await n.blob()),firstAudioMs:yZ(n.headers.get(`server-timing`)??``)}}function yZ(e){let t=/(?:^|,)\s*first-audio;dur=([0-9.]+)/.exec(e);return t===null?null:Math.round(Number(t[1]))}function bZ(e,t,n){let r=e.trim();return r!==``&&r===t&&r!==n}function xZ({vendor:e,model:t,language:n,opening:r,voice:i,onChange:a,label:o}){let s=M(),[c,l]=(0,O.useState)(``),[u,d]=(0,O.useState)(!1),[f,p]=(0,O.useState)(null),[m,h]=(0,O.useState)(null),[g,_]=(0,O.useState)(null),v=(0,O.useRef)(null),y=(0,O.useRef)(null);(0,O.useEffect)(()=>()=>{v.current?.pause(),y.current!==null&&URL.revokeObjectURL(y.current)},[]);let b=async()=>{let i=c.trim();v.current?.pause(),y.current!==null&&URL.revokeObjectURL(y.current),y.current=null,d(!0),_(null);try{let a=r.trim(),o=await vZ(s,{tts:e,voice:i,model:t,language:n,...a===``?{}:{text:a}});y.current=o.url,p(i),h(o.firstAudioMs),v.current=new Audio(o.url),await v.current.play()}catch(e){p(null),_(ra(e))}finally{d(!1)}},x=c.trim();return(0,j.jsxs)(`div`,{className:`set-voices-line`,children:[(0,j.jsx)(Rh,{children:o}),(0,j.jsxs)(`div`,{className:`set-voices-by-id`,children:[(0,j.jsx)(G,{value:c,placeholder:`The id ${e} gives the voice`,"aria-label":`Voice id`,onChange:e=>{l(e.target.value),_(null)}}),(0,j.jsx)(W,{size:`xs`,disabled:x===``||u,onClick:()=>void b(),children:u?`…`:`Listen`}),(0,j.jsx)(W,{size:`xs`,kind:`primary`,disabled:!bZ(c,f,i),onClick:()=>a(x),children:`Use`})]}),g!==null&&(0,j.jsx)(`p`,{className:`set-help set-voices-refused`,children:g}),g===null&&f===x&&x!==``&&(0,j.jsxs)(`p`,{className:`set-help`,children:[m===null?`${e} said it.`:`${e} said it: ${m} ms to the first audio.`,` Use it, then save.`]})]})}var SZ=[{value:`any`,label:`Any`},{value:`feminine`,label:`Female`},{value:`masculine`,label:`Male`}],CZ=new Intl.DisplayNames([`en`],{type:`region`});function wZ(e){try{return CZ.of(e)??e}catch{return e}}function TZ(e){let t=new Map;for(let n of e)n.country!==``&&t.set(n.country,(t.get(n.country)??0)+1);return[...t.entries()].sort((e,t)=>t[1]-e[1]||e[0].localeCompare(t[0])).map(([e])=>e)}function EZ(e,t,n,r){let i=r.trim().toLowerCase();return e.filter(e=>(t===``||e.country===t)&&(n===`any`||e.gender===n)&&(i===``||`${e.name} ${e.description}`.toLowerCase().includes(i)))}function DZ({vendor:e,model:t,language:n,opening:r,voice:i,onChange:a}){let o=M(),[s,c]=(0,O.useState)(null),[l,u]=(0,O.useState)(null),[d,f]=(0,O.useState)(``),[p,m]=(0,O.useState)(`any`),[h,g]=(0,O.useState)(``),[_,v]=(0,O.useState)(r.trim()),[y,b]=(0,O.useState)(null),[x,S]=(0,O.useState)(null),[C,w]=(0,O.useState)(new Map),T=(0,O.useRef)(C),ee=(0,O.useRef)(null),te=(0,O.useRef)(!1),E=_.trim(),ne=n=>`${e}\n${t??``}\n${E}\n${n}`;(0,O.useEffect)(()=>{T.current=C},[C]),(0,O.useEffect)(()=>{let t=!1;return c(null),u(null),_Z(o,e,n).then(e=>!t&&c(e),e=>!t&&u(ra(e))),()=>{t=!0}},[o,e,n]),(0,O.useEffect)(()=>(w(e=>e.size===0?e:new Map),()=>{ee.current?.pause(),b(null);for(let e of T.current.values())URL.revokeObjectURL(e.url)}),[e,t,E]),(0,O.useEffect)(()=>(te.current=!1,()=>{te.current=!0}),[]);let D=(0,O.useMemo)(()=>TZ(s??[]),[s]),re=(0,O.useMemo)(()=>(s??[]).some(e=>e.gender!==``),[s]),ie=(0,O.useMemo)(()=>EZ(s??[],d,re?p:`any`,h),[s,d,re,p,h]),ae=s?.find(e=>e.id===i),oe=async r=>{if(ee.current?.pause(),y===r){b(null);return}let i=C.get(ne(r));if(i===void 0){S(r),u(null);try{i=await vZ(o,{tts:e,voice:r,model:t,language:n,...E===``?{}:{text:E}})}catch(e){te.current||u(ra(e));return}finally{te.current||S(null)}if(te.current){URL.revokeObjectURL(i.url);return}let a=i;w(e=>new Map(e).set(ne(r),a))}let a=new Audio(i.url);ee.current=a,a.onended=()=>b(e=>e===r?null:e),a.onerror=()=>b(e=>e===r?null:e),b(r);try{await a.play()}catch(e){b(null),u(ra(e))}},k=e=>{if(x===e)return`…`;let t=C.get(ne(e))?.firstAudioMs;return t==null?``:`${t} ms`};return(0,j.jsxs)(`div`,{className:`set-voices`,children:[(0,j.jsxs)(`div`,{className:`set-voices-now`,children:[(0,j.jsx)(Rh,{children:`Voice`}),(0,j.jsx)(`span`,{className:`set-voices-in-use`,children:i===``?`${e}'s own default`:ae===void 0?`${i}, by its id`:`${ae.name}${ae.country===``?``:` · ${wZ(ae.country)}`}`})]}),(0,j.jsxs)(`div`,{className:`set-voices-filters`,children:[(0,j.jsx)(G,{value:h,placeholder:`Search by name or manner`,"aria-label":`Search voices`,onChange:e=>g(e.target.value)}),D.length>1&&(0,j.jsxs)(vC,{value:d,"aria-label":`Country`,onValueChange:e=>f(e),children:[(0,j.jsx)(yC,{value:``,children:`Every country`}),D.map(e=>(0,j.jsx)(yC,{value:e,children:wZ(e)},e))]}),re&&(0,j.jsx)(Vh,{options:SZ,value:p,onChange:m})]}),(0,j.jsxs)(`div`,{className:`set-voices-line`,children:[(0,j.jsx)(Rh,{children:`What each voice says`}),(0,j.jsx)(G,{value:_,placeholder:`One line in the agent's language, unless you write one`,"aria-label":`What each voice says`,onChange:e=>v(e.target.value)})]}),l!==null&&(0,j.jsx)(`p`,{className:`set-help set-voices-refused`,children:l}),s===null&&l===null&&(0,j.jsxs)(`p`,{className:`set-help`,children:[`Asking `,e,` for its voices…`]}),s!==null&&(0,j.jsxs)(`ul`,{className:`set-voices-list`,"aria-label":`Voices`,children:[ie.map(e=>(0,j.jsxs)(`li`,{className:e.id===i?`set-voice on`:`set-voice`,children:[(0,j.jsx)(`button`,{type:`button`,className:`set-voice-play`,"aria-label":y===e.id?`Stop ${e.name}`:`Play ${e.name}`,"aria-pressed":y===e.id,disabled:x!==null&&x!==e.id,onClick:()=>void oe(e.id),children:(0,j.jsx)(Kh,{name:y===e.id?`stop`:`play`,size:14})}),(0,j.jsxs)(`span`,{className:`set-voice-name`,children:[e.name,(0,j.jsx)(`span`,{className:`set-voice-about`,children:[e.gender===`feminine`?`female`:e.gender===`masculine`?`male`:``,e.country===``?``:wZ(e.country),e.accent].filter(e=>e!==``).join(` · `)})]}),(0,j.jsx)(`span`,{className:`set-voice-wait`,children:k(e.id)}),e.id===i?(0,j.jsx)(`span`,{className:`set-voice-chosen`,children:`In use`}):(0,j.jsx)(W,{size:`xs`,onClick:()=>a(e.id),children:`Use`})]},e.id)),ie.length===0&&(0,j.jsx)(`li`,{className:`set-help`,children:`No voice matches.`})]}),(0,j.jsx)(xZ,{vendor:e,model:t,language:n,opening:E,voice:i,onChange:a,label:`A voice not in this list — your own, a clone — by its id`}),(0,j.jsxs)(`p`,{className:`set-help`,children:[`Each voice says the line above — or one line in the agent's language when it is empty — with `,t??`${e}'s default model`,`, on your org's key for `,e,` or the box's: what a caller would hear. The number is the wait from the words to the first audio over the vendor's stream; a call keeps that connection warm, so its own wait sits a little under. Nothing changes until you save.`]})]})}var OZ=`not on this box`;function kZ({modality:e,title:t,blurb:n,knob:r,providers:i,defaults:a,models:o,onChange:s,children:c}){let l=oT(i,e).filter(t=>t.ready&&(o[`${e}/${t.name}`]??[]).length>0),u=a[e]??``,d=r.vendor===``?u:r.vendor,f=l.some(e=>e.name===r.vendor)||r.vendor===``?l:[{name:r.vendor,ready:!1},...l],p=o[`${e}/${d}`]??[],m=p.includes(r.model)||r.model===``?p:[r.model,...p];return(0,j.jsxs)(`section`,{className:`set-section`,children:[(0,j.jsxs)(`div`,{className:`set-section-head`,children:[(0,j.jsx)(`h2`,{className:`set-section-title`,children:t}),(0,j.jsx)(`p`,{className:`set-section-blurb`,children:n})]}),(0,j.jsxs)(`div`,{className:`set-row`,children:[(0,j.jsxs)(`div`,{className:`set-field`,children:[(0,j.jsx)(Rh,{children:`Vendor`}),(0,j.jsxs)(vC,{value:r.vendor,"aria-label":`Vendor`,onValueChange:e=>s({vendor:e,model:``}),children:[(0,j.jsxs)(yC,{value:``,children:[`Runtime default · `,u]}),f.map(e=>(0,j.jsxs)(yC,{value:e.name,children:[e.name,e.ready?``:` · ${OZ}`]},e.name))]}),(0,j.jsx)(`p`,{className:`set-help`,children:`The vendors this box has a key for. Another one appears here once its key is added in Providers.`})]}),(0,j.jsxs)(`div`,{className:`set-field`,children:[(0,j.jsx)(Rh,{children:`Model`}),(0,j.jsxs)(vC,{value:r.model,"aria-label":`Model`,onValueChange:e=>s({...r,model:e}),children:[(0,j.jsxs)(yC,{value:``,children:[d,`'s default`,p[0]===void 0?``:` · ${p[0]}`]}),m.map(e=>(0,j.jsxs)(yC,{value:e,children:[e,p.includes(e)?``:` · as set`]},e))]}),(0,j.jsx)(`p`,{className:`set-help`,children:p.length===0?`${d} runs its own default; there is no model to pick.`:`The models that run on this box. The default is the one tuned for phone calls.`})]})]}),c]})}function AZ({vendor:e,providers:t,model:n,language:r,opening:i,voice:a,onChange:o}){return e===null?(0,j.jsx)(jZ,{children:`Asking the gateway which vendor speaks…`}):nT(t,e)?.voices_listed===!0?(0,j.jsx)(DZ,{vendor:e,model:n,language:r,opening:i,voice:a,onChange:o}):(0,j.jsx)(`div`,{className:`set-row`,children:(0,j.jsxs)(`div`,{className:`set-field`,children:[(0,j.jsx)(Rh,{children:`Voice`}),(0,j.jsxs)(`p`,{className:`set-help`,children:[a===``?`${e} speaks in its model's own voice.`:`${e} speaks as ${a}.`,` `,e,` lists no voices here: write the id `,e,` gives the one you want, listen to it, and use it.`]}),(0,j.jsx)(xZ,{vendor:e,model:n,language:r,opening:i,voice:a,onChange:o,label:`A voice by its id`})]})})}function jZ({children:e}){return(0,j.jsx)(`div`,{className:`set-row`,children:(0,j.jsxs)(`div`,{className:`set-field`,children:[(0,j.jsx)(Rh,{children:`Voice`}),(0,j.jsx)(`p`,{className:`set-help`,children:e})]})})}function MZ(e,t){if(e==null||e===``)return{vendor:``,model:``};let n=e.lastIndexOf(`/`);return n>=0?{vendor:e.slice(0,n),model:e.slice(n+1)}:t.has(e)?{vendor:e,model:``}:{vendor:``,model:e}}function NZ(e){return e.vendor===``?e.model:e.model===``?e.vendor:`${e.vendor}/${e.model}`}function PZ(e,t){let n=e.turn??void 0,r=e.memory??void 0,i=MZ(e.tts,t),a=e.tts_model??void 0,o=e.greeting?.reply??``;return{stt:MZ(e.stt,t),llm:MZ(e.llm,t),tts:a===void 0||a===``?i:{...i,model:a},voice:e.voice??``,language:e.language??``,opening:o===``?`say`:`reply`,say:e.greeting?.say??``,reply:o,hangup:e.hangup?.when??``,endpointing_ms:typeof n?.endpointing_ms==`number`?String(n.endpointing_ms):``,min_interruption_words:typeof n?.min_interruption_words==`number`?String(n.min_interruption_words):``,record:typeof e.record==`boolean`?e.record?`on`:`off`:``,max_duration_s:typeof e.max_duration_s==`number`?String(e.max_duration_s):``,remember:(r?.remember??[]).join(`
141
+ `),forget:(r?.forget??[]).join(`
142
+ `),knowledge:e.knowledge??``,bases:(e.bases??[]).map(e=>({base:e.base,k:typeof e.k==`number`?String(e.k):``,mode:e.mode===`tool`?`tool`:`retrieved`,min_score:typeof e.min_score==`number`?String(e.min_score):``})),note:``}}function FZ(e,t,n){let r=t?{...n}:{};if(!t){for(let t of[`stt`,`llm`,`tts`]){let n=NZ(e[t]);n!==``&&(r[t]=n)}let t=e.voice.trim();t!==``&&(r.voice=t);let n=e.language.trim();n!==``&&(r.language=n);let i=e.hangup.trim();i!==``&&(r.hangup={when:i});let a={};e.endpointing_ms.trim()!==``&&(a.endpointing_ms=Number(e.endpointing_ms)),e.min_interruption_words.trim()!==``&&(a.min_interruption_words=Number(e.min_interruption_words)),Object.keys(a).length>0&&(r.turn=a),e.record!==``&&(r.record=e.record===`on`),e.max_duration_s!==``&&(r.max_duration_s=Number(e.max_duration_s)),r.bases=e.bases.filter(e=>e.base.trim()!==``).map(IZ)}let i=e.say.trim(),a=e.reply.trim();e.opening===`say`&&i!==``?r.greeting={say:i}:e.opening===`reply`&&a!==``&&!t?r.greeting={reply:a}:delete r.greeting;let o=LZ(e.remember),s=LZ(e.forget);return o.length>0||s.length>0?r.memory={remember:o,forget:s}:delete r.memory,e.knowledge.trim()===``?delete r.knowledge:r.knowledge=e.knowledge,r}function IZ(e){let t={base:e.base.trim()};return e.k.trim()!==``&&(t.k=Number(e.k)),e.mode===`tool`&&(t.mode=`tool`),e.min_score.trim()!==``&&(t.min_score=Number(e.min_score)),t}function LZ(e){return e.split(`
143
+ `).map(e=>e.trim()).filter(e=>e!==``)}function RZ({typed:e,change:t}){return(0,j.jsxs)(`section`,{className:`set-section`,children:[(0,j.jsxs)(`div`,{className:`set-section-head`,children:[(0,j.jsx)(`h2`,{className:`set-section-title`,children:`Memory`}),(0,j.jsx)(`p`,{className:`set-section-blurb`,children:`What the agent writes down about a caller when the call ends, and hands back the next time that number calls.`})]}),(0,j.jsxs)(`div`,{className:`set-row`,children:[(0,j.jsxs)(`div`,{className:`set-field`,children:[(0,j.jsx)(Rh,{children:`Remember`}),(0,j.jsx)(zh,{value:e.remember,rows:5,"aria-label":`Remember`,placeholder:`their name and phone
144
+ allergies
145
+ the morning or the afternoon they prefer`,onChange:e=>t(`remember`,e.target.value)}),(0,j.jsx)(`p`,{className:`set-help`,children:`One kind of fact per line, in your words. The extraction keeps only these.`})]}),(0,j.jsxs)(`div`,{className:`set-field`,children:[(0,j.jsx)(Rh,{children:`Never keep`}),(0,j.jsx)(zh,{value:e.forget,rows:5,"aria-label":`Never keep`,placeholder:`card numbers
146
+ anything about payment`,onChange:e=>t(`forget`,e.target.value)}),(0,j.jsx)(`p`,{className:`set-help`,children:`One per line. What is named here is never written down, whatever a caller says.`})]})]})]})}function zZ({typed:e,change:t}){return(0,j.jsxs)(`section`,{className:`set-section`,children:[(0,j.jsxs)(`div`,{className:`set-section-head`,children:[(0,j.jsx)(`h2`,{className:`set-section-title`,children:`Knowledge`}),(0,j.jsx)(`p`,{className:`set-section-blurb`,children:`What the agent knows by heart: the business as you would tell a new receptionist. Read whole on every call, so keep it to what every call may need.`})]}),(0,j.jsxs)(`div`,{className:`set-field set-wide`,children:[(0,j.jsx)(Rh,{children:`By heart, in Markdown`}),(0,j.jsx)(zh,{value:e.knowledge,"aria-label":`By heart, in Markdown`,rows:16,spellCheck:!1,placeholder:`# Clínica Norte
147
+
148
+ ## Hours
149
+ Monday to Friday, 9:00 to 20:00.
150
+
151
+ ## Prices
152
+ A first visit is 60 euros.
153
+
154
+ ## Needs an authorisation
155
+ An X-ray, an extraction, anything over 300 euros.`,onChange:e=>t(`knowledge`,e.target.value)}),(0,j.jsxs)(`p`,{className:`set-help`,children:[e.knowledge.length.toLocaleString(`en-US`),` characters. The documents it searches are not this: those are the Docs tab, attached under Bases.`]})]})]})}var BZ=[{tab:`hears`,name:`STT`},{tab:`decides`,name:`LLM`},{tab:`speaks`,name:`Voice`},{tab:`conversation`,name:`Conversation`},{tab:`memory`,name:`Memory`},{tab:`knowledge`,name:`Knowledge`},{tab:`bases`,name:`Bases`}],VZ=[`conversation`,`memory`,`knowledge`];function HZ(e){return e?BZ.filter(e=>VZ.includes(e.tab)):BZ}function UZ({standing:e,version:t,wordsOnly:n,language:r,providers:i,defaults:a,models:o,bases:s,section:c,onPickSection:l,saving:u,error:d,onSave:f}){let p=new Set(i.map(e=>e.name)),[m,h]=(0,O.useState)(()=>PZ(e,p)),[g,_]=(0,O.useState)(!1),v=(e,t)=>{_(!1),h({...m,[e]:t})},y=e=>t=>{_(!1),h(e===`tts`&&t.vendor!==m.tts.vendor?{...m,tts:t,voice:``}:{...m,[e]:t})},b=m.tts.vendor===``?a.tts??null:m.tts.vendor,x=async r=>{r.preventDefault(),await f(FZ(m,n,e),t,m.note.trim()===``?null:m.note.trim()),_(!0)};return(0,j.jsxs)(`form`,{className:`ui-card set-form`,onSubmit:e=>void x(e),children:[(0,j.jsx)(`div`,{className:`set-tabs`,children:(0,j.jsx)(GC,{label:`Settings`,tabs:HZ(n),on:c,onPick:l})}),c===`hears`&&(0,j.jsx)(kZ,{modality:`stt`,title:`Speech to text`,blurb:`What turns the caller's voice into words, and in which language.`,knob:m.stt,providers:i,defaults:a,models:o,onChange:y(`stt`),children:(0,j.jsx)(iZ,{language:m.language,onChange:e=>v(`language`,e)})}),c===`decides`&&(0,j.jsx)(kZ,{modality:`llm`,title:`Language model`,blurb:`The model that reads what the caller said and writes the answer.`,knob:m.llm,providers:i,defaults:a,models:o,onChange:y(`llm`)}),c===`speaks`&&(0,j.jsx)(kZ,{modality:`tts`,title:`Voice`,blurb:`What says the answer out loud, and in which voice.`,knob:m.tts,providers:i,defaults:a,models:o,onChange:y(`tts`),children:(0,j.jsx)(AZ,{vendor:b,providers:i,model:m.tts.model===``?null:m.tts.model,language:r,opening:m.say,voice:m.voice,onChange:e=>v(`voice`,e)})}),c===`conversation`&&(0,j.jsx)(eZ,{typed:m,wordsOnly:n,change:v}),c===`memory`&&(0,j.jsx)(RZ,{typed:m,change:v}),c===`knowledge`&&(0,j.jsx)(zZ,{typed:m,change:v}),c===`bases`&&(0,j.jsx)(JX,{rows:m.bases,offered:s,onChange:e=>{_(!1),h({...m,bases:e})}}),(0,j.jsxs)(`div`,{className:`set-save`,children:[(0,j.jsx)(G,{className:`set-save-note`,value:m.note,placeholder:`Why, for the history (optional)`,"aria-label":`Why, for the history (optional)`,onChange:e=>v(`note`,e.target.value)}),(0,j.jsx)(W,{kind:`primary`,size:`form`,type:`submit`,disabled:u,children:u?`Saving…`:t===null?`Save as the first version`:`Save as v${t+1}`}),(0,j.jsx)(`span`,{className:d===null?`set-save-said`:`set-save-said set-save-error`,children:d===null?g?`Kept. The next call runs on it.`:`Every section is saved together, as one version. An empty field is the runtime's default.`:d})]})]})}function WZ({kept:e,canRollBack:t,onRollBack:n}){return(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`History`,meta:e===null?void 0:e.holder===``?`the org's own corner`:`corner ${e.holder}`}),e===null?(0,j.jsx)(kh,{children:`Asking the gateway…`}):e.rows.length===0?(0,j.jsx)(kh,{children:`Nothing set in this corner yet: the next call runs on what the corner falls back to.`}):e.rows.map((r,i)=>{let a=e.rows[i+1],o=HX(a?.config??{},r.config);return(0,j.jsxs)(`div`,{className:`set-version`,children:[(0,j.jsxs)(`div`,{className:`set-version-head`,children:[(0,j.jsxs)(`b`,{children:[`v`,r.version]}),(0,j.jsxs)(`span`,{className:`ui-cell-faint`,children:[r.author,` · `,hE(r.set_at)]}),r.note!==null&&(0,j.jsxs)(`span`,{className:`set-version-note`,children:[`“`,r.note,`”`]}),t&&i>0&&(0,j.jsx)(W,{size:`xs`,onClick:()=>void n(r.version),children:`Roll back to this`})]}),o.length>0&&(0,j.jsx)(`div`,{className:`set-version-changes`,children:o.join(` · `)})]},r.version)})]})}var GZ={yours:`Yours`,team:`Team`,production:`Production`};function KZ({answer:e,corners:t,first:n}){let[r,i]=(0,O.useState)(n),a=e[r];return(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`What is set now`,meta:e.world}),t.length>1&&(0,j.jsx)(`div`,{className:`set-now-pick`,children:(0,j.jsx)(Vh,{options:t.map(e=>({value:e,label:GZ[e]})),value:r,onChange:i})}),(0,j.jsx)(`dl`,{className:`set-now`,children:zX.map(e=>(0,j.jsxs)(`div`,{className:`set-now-row`,children:[(0,j.jsx)(`dt`,{children:BX[e]}),(0,j.jsx)(`dd`,{className:JZ(a,e,r)===qZ[r]?`set-now-none`:void 0,children:JZ(a,e,r)})]},e))}),(0,j.jsx)(`div`,{className:`set-now-foot`,children:a===null?`Nothing saved in this corner yet.`:YZ(a)})]})}var qZ={yours:`the team's`,team:`—`,production:`—`};function JZ(e,t,n){return e===null?qZ[n]:VX(e.config,t)??qZ[n]}function YZ(e){return`v${e.version} · ${e.author} · ${hE(e.set_at)}${e.note===null?``:` · “${e.note}”`}`}function XZ(e){return e instanceof Error?e.message:String(e)}function ZZ(){let e=M(),t=xr().agent??``,n=rw(),[r,i]=Xi(),[a,o]=(0,O.useState)(null),[s,c]=(0,O.useState)(null),[l,u]=(0,O.useState)(null),[d,f]=(0,O.useState)(null),[p,m]=(0,O.useState)(!1),[h,g]=(0,O.useState)(!1),[_,v]=(0,O.useState)(null),[y,b]=(0,O.useState)(null),x=n!==null&&!n.includes(`pipeline`),S=nh===`production`,C=HZ(x),w=r.get(`section`),T=C.some(e=>e.tab===w)?w:C[0].tab,ee=(0,O.useCallback)(async()=>{o(await FX(e,t)),c(await LX(e,t,S||p)),v(null)},[e,t,p,S]);(0,O.useEffect)(()=>{let n=!1;return ee().catch(e=>{n||v(XZ(e))}),DX(e,t).then(e=>!n&&u(e),e=>{!n&&!(e instanceof na&&(e.status===403||e.status===404))&&v(XZ(e))}),vX(e).then(e=>!n&&f(e.bases),()=>!n&&f([])),()=>{n=!0}},[e,t,ee]),(0,O.useEffect)(()=>{let e=()=>void ee().catch(()=>void 0);return window.addEventListener(`focus`,e),()=>window.removeEventListener(`focus`,e)},[ee]);let te=async(n,r,i)=>{g(!0),v(null);try{o(await IX(e,t,{config:n,if_version:r,note:i,team:p})),c(await LX(e,t,S||p))}catch(e){v(XZ(e))}finally{g(!1)}},E=async n=>{v(null);try{o(await RX(e,t,n,S||p)),c(await LX(e,t,S||p)),b(`v${n} is the newest again, as a new version.`)}catch(e){v(XZ(e))}},ne=a===null?null:UX(a,S||p),D=ne??(a===null||S||p?null:a.team),re=WC({name:`settings.now`,initial:340,min:280,max:560,side:`right`}),ie=S?[`production`]:[`yours`,`team`,`production`];return(0,j.jsxs)(`div`,{className:`set-grid`,style:re.style,children:[re.handle,(0,j.jsxs)(kC,{width:1060,children:[(0,j.jsx)(AC,{title:`Configure`,ledeWidth:660,lede:S?`What this agent runs on in production. Every save is a new version with your name on it, and any version can be rolled back.`:`What this agent runs on in the sandbox: yours to try in your own corner, or the team's, which every corner falls back to. Every save is a version; production has its own page.`}),a===null&&(0,j.jsx)(kh,{children:_??`Asking the gateway…`}),a!==null&&(0,j.jsxs)(`div`,{className:`set-main`,children:[!x&&!S&&(0,j.jsx)(`div`,{className:`set-corner-pick`,children:(0,j.jsx)(Wh,{checked:p,onChange:m,children:`Write the team's corner, which every corner falls back to — not only yours`})}),(0,j.jsx)(UZ,{standing:D?.config??{},version:ne?.version??null,wordsOnly:x,language:l?.speaks.language??null,providers:l?.providers??[],defaults:l?.defaults??{},models:l?.models??{},bases:d,section:T,onPickSection:e=>i(e===C[0].tab?{}:{section:e}),saving:h,error:_,onSave:te},`${t}-${p}-${ne?.version??0}-${D?.version??0}-${l===null?`asking`:`read`}`)]}),y!==null&&(0,j.jsx)(`div`,{className:`ui-empty`,children:y}),a!==null&&(0,j.jsx)(Ah,{children:_})]}),(0,j.jsx)(`aside`,{className:`set-pane`,"aria-label":`what is set, and its history`,children:a===null?(0,j.jsx)(`p`,{className:`set-pane-empty`,children:`Asking the gateway…`}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(KZ,{answer:a,corners:ie,first:S?`production`:p?`team`:`yours`},p?`team`:`yours`),(0,j.jsx)(WZ,{kept:s,canRollBack:!x,onRollBack:E})]})})]})}function QZ({title:e,hint:t,children:n}){return(0,j.jsxs)(`section`,{className:`cs-sec`,children:[(0,j.jsx)(`h2`,{className:`cs-sec-title`,children:e}),(0,j.jsx)(`p`,{className:`cs-sec-hint`,children:t}),n]})}var $Z=``,eQ=`Through the agent you hold with pinecall start, in the sandbox: a case is a real caller's words, never played through production's tools.`;function tQ({agent:e,kept:t}){if(nh===`production`){let n=eh(`sandbox`,`/a/${encodeURIComponent(e)}/cases/${encodeURIComponent(t.name)}`);return(0,j.jsx)(QZ,{title:`Run it`,hint:eQ,children:(0,j.jsx)(`a`,{className:`cs-elsewhere`,href:n,children:`Open this case in the sandbox to run it →`})})}return(0,j.jsx)(nQ,{agent:e,kept:t})}function nQ({agent:e,kept:t}){let n=M(),[r,i]=(0,O.useState)([]),[a,o]=(0,O.useState)($Z),[s,c]=(0,O.useState)(!1),[l,u]=(0,O.useState)(null),[d,f]=(0,O.useState)(null);(0,O.useEffect)(()=>{let t=!0;return LX(n,e,!1).then(e=>t&&i(e.rows)).catch(()=>t&&i([])),()=>{t=!1}},[n,e]);let p=async()=>{c(!0),f(null),u(null);try{u(await _Y(n,e,[t.name],a===$Z?void 0:Number(a)))}catch(e){f(ra(e))}finally{c(!1)}},m=l?.matrix?.runs[0],h=m!==void 0&&m.scores.every(e=>e.passed);return(0,j.jsxs)(QZ,{title:`Run it`,hint:eQ,children:[(0,j.jsxs)(`div`,{className:`cs-run`,children:[(0,j.jsxs)(vC,{value:a,onValueChange:o,"aria-label":`Settings version`,children:[(0,j.jsx)(yC,{value:$Z,children:`Your settings as they stand`}),r.map(e=>(0,j.jsxs)(yC,{value:String(e.version),children:[`v`,e.version,` · `,e.note??`no note`,` · `,_E(e.set_at)]},e.version))]}),(0,j.jsx)(W,{kind:`primary`,size:`sm`,disabled:s,onClick:()=>void p(),children:s?`Playing the caller…`:`Run it`})]}),d!==null&&(0,j.jsxs)(`p`,{className:`cs-bad`,children:[d,/no app|holds the agent|nobody/i.test(d)&&` — start the agent with pinecall start in its directory, then run it again.`]}),l!==null&&m===void 0&&(0,j.jsx)(`p`,{className:`cs-bad`,children:l.error??`The run judged nothing.`}),m!==void 0&&(0,j.jsxs)(`div`,{className:`cs-result`,children:[(0,j.jsxs)(`p`,{className:`cs-result-head`,children:[h?(0,j.jsx)(xC,{tone:`green`,children:`holds now`}):(0,j.jsx)(xC,{tone:`red`,children:`still breaks`}),(0,j.jsxs)(`span`,{children:[h?`Approve it, and the nightly keeps it holding.`:`Reproduced. Fix it, then run it again.`,` `,l?.calls[0]!==void 0&&(0,j.jsx)(`a`,{href:eh(`sandbox`,`/calls/${encodeURIComponent(l.calls[0].call)}`),children:`The call it made →`})]})]}),(0,j.jsx)(`ul`,{className:`cs-scores`,children:m.scores.map(e=>(0,j.jsxs)(`li`,{children:[(0,j.jsx)(xC,{tone:e.passed?`green`:`red`,small:!0,children:e.metric}),(0,j.jsx)(`span`,{children:e.reason})]},e.metric))})]})]})}async function rQ(e,t){let n=gZ.parse(await A(e,`/v1/evals/cases`,{agent:t}));return{cases:n.cases,pending:n.pending,pendingAtMost:n.pending_at_most}}async function iQ(e,t,n){return hZ.parse(await ca(e,`/v1/evals/cases/${encodeURIComponent(t)}`,n))}async function aQ(e,t,n){return hZ.parse(await la(e,`/v1/evals/cases`,{call:t,name:n}))}function oQ({kept:e,onDecided:t}){let n=M(),[r,i]=(0,O.useState)(!1),[a,o]=(0,O.useState)(``),[s,c]=(0,O.useState)(!1),[l,u]=(0,O.useState)(null),d=async r=>{if(!s){c(!0),u(null);try{t(await iQ(n,e.id,r)),i(!1),o(``)}catch(e){u(ra(e))}finally{c(!1)}}},f=a.trim()===``?{}:{note:a.trim()};return(0,j.jsxs)(`div`,{className:`cs-decide`,children:[(0,j.jsx)(`div`,{className:`cs-doc-actions`,children:e.status===`pending`?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(W,{kind:`primary`,size:`sm`,disabled:s,title:`The nightly plays it from now on`,onClick:()=>void d({status:`approved`}),children:`Approve`}),(0,j.jsx)(W,{size:`sm`,disabled:s,onClick:()=>i(!r),children:`Dismiss…`})]}):(0,j.jsx)(W,{size:`sm`,disabled:s,onClick:()=>void d({status:`pending`}),children:`Open it again`})}),r&&(0,j.jsxs)(`div`,{className:`cs-dismiss`,children:[(0,j.jsx)(G,{value:a,placeholder:`Why, for the judge's calibration (optional)`,"aria-label":`Why`,onChange:e=>o(e.target.value)}),e.broke.map(e=>(0,j.jsxs)(W,{size:`sm`,disabled:s,onClick:()=>void d({status:`dismissed`,judge_was_wrong:e.judge,...f}),children:[e.judge,` was wrong: it should have held`]},e.judge)),(0,j.jsx)(W,{size:`sm`,disabled:s,onClick:()=>void d({status:`dismissed`}),children:`Not worth keeping`})]}),l!==null&&(0,j.jsx)(`p`,{className:`cs-bad`,children:l})]})}function sQ(e){let t=[];for(let n of e.tools??[])t.push(`calls ${n}`);for(let n of e.not_tools??[])t.push(`never calls ${n}`);for(let n of e.says??[])t.push(`says “${n}”`);(e.says_any??[]).length>0&&t.push(`says one of ${(e.says_any??[]).map(e=>`“${e}”`).join(`, `)}`);for(let n of e.not??[])t.push(`never says “${n}”`);e.grounded===!0&&t.push(`states no price, hour, date or name the call did not carry (grounded)`),e.register!==void 0&&e.register!==null&&t.push(`addresses the caller as ${e.register}`),e.replies===!0&&t.push(`takes up what your backend sent mid-call`),e.replies===!1&&t.push(`carries on without taking up what your backend sent`);for(let n of e.judges??[])t.push(`${n} holds when the judge is asked again`);return t.length===0&&t.push(`nothing yet: a call that held gives no expectation. Write what the agent must keep doing.`),t}var cQ=[[`a price, an hour, a policy, what to say when asked`,`Knowledge`],[`how the call opens or ends`,`the greeting, the hang-up`],[`a fact kept, or one that should never be`,`the memory policy`],[`the model guessed, cut the caller off`,`the model, turn taking`]],lQ=[[`did the wrong thing in this stage`,`render(), the view`],[`used a tool for the wrong thing, or did not wait for a yes`,`the tool's docstring`],[`the same slip everywhere: tone, inventing, two questions at once`,`the class docstring`]];function uQ({agent:e,kept:t}){let n=`/a/${encodeURIComponent(e)}/configure`;return(0,j.jsx)(QZ,{title:`Fix it where it belongs`,hint:`Read the reason, then the request the model answered (pinecall test --case writes it, as asked). Its block says which half.`,children:(0,j.jsxs)(`div`,{className:`cs-fix`,children:[(0,j.jsxs)(`div`,{className:`cs-fix-half`,children:[(0,j.jsx)(`h3`,{className:`cs-fix-title`,children:`In the settings — a new version, no deploy`}),(0,j.jsx)(`dl`,{className:`cs-fix-rows`,children:cQ.map(([e,t])=>(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:e}),(0,j.jsx)(`dd`,{children:t})]},e))}),(0,j.jsx)(`p`,{className:`cs-fix-how`,children:`Saved in your own corner, nobody else hears it. Run the case on that version below; once it holds, apply it to the team, then to production.`}),(0,j.jsx)(Ih,{size:`sm`,to:n,children:`Open Configure`})]}),(0,j.jsxs)(`div`,{className:`cs-fix-half`,children:[(0,j.jsx)(`h3`,{className:`cs-fix-title`,children:`In the code — a pull request`}),(0,j.jsx)(`dl`,{className:`cs-fix-rows`,children:lQ.map(([e,t])=>(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`dt`,{children:e}),(0,j.jsx)(`dd`,{children:t})]},e))}),(0,j.jsx)(`p`,{className:`cs-fix-how`,children:`In the agent's directory, play it on every save, then put it in the repository so the pull request carries it:`}),(0,j.jsx)(`pre`,{className:`cs-cmd`,children:`pinecall test --case ${t.name} --watch\npinecall cases pull ${t.name}`})]})]})})}var dQ={pending:`amber`,approved:`green`,dismissed:`gray`},fQ={pending:`waiting for you`,approved:`played every night`,dismissed:`dismissed`};function pQ({agent:e,kept:t,onDecided:n}){let r=t.golden,i=r.input??[],a=hQ(r.state??{}),o=r.events??[];return(0,j.jsxs)(`article`,{className:`cs-doc`,children:[(0,j.jsxs)(`header`,{className:`cs-doc-head`,children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`h1`,{className:`cs-doc-name`,children:t.name}),(0,j.jsxs)(`p`,{className:`cs-doc-about`,children:[(0,j.jsx)(xC,{tone:dQ[t.status],children:fQ[t.status]}),t.kept_in_repo&&(0,j.jsx)(xC,{tone:`indigo`,children:`in the repository`})]})]}),(0,j.jsx)(oQ,{kept:t,onDecided:n})]}),(0,j.jsx)(QZ,{title:`What broke`,hint:`The judges that did not hold when the call hung up, in their own words.`,children:t.broke.length===0?(0,j.jsx)(`p`,{className:`cs-none`,children:`Nothing: a person kept this call by hand, and what it expects is theirs.`}):(0,j.jsx)(`ul`,{className:`cs-broke`,children:t.broke.map(e=>(0,j.jsxs)(`li`,{children:[(0,j.jsx)(xC,{tone:`red`,children:e.judge}),(0,j.jsx)(`span`,{children:e.reason})]},e.judge))})}),(0,j.jsxs)(QZ,{title:`The call, as it will be played again`,hint:`The caller's own lines, in the state the call opened in, with what memory recalled and what your backend sent mid-call.`,children:[a.length>0&&(0,j.jsx)(`dl`,{className:`cs-facts`,children:a.map(([e,t])=>(0,j.jsxs)(`div`,{className:`cs-fact`,children:[(0,j.jsx)(`dt`,{children:e}),(0,j.jsx)(`dd`,{children:t})]},e))}),(r.memory??[]).length>0&&(0,j.jsxs)(`p`,{className:`cs-memory`,children:[`Memory recalled: `,(r.memory??[]).join(` · `)]}),(0,j.jsxs)(`ol`,{className:`cs-lines`,children:[o.filter(e=>(e.after_turn??0)===0).map(e=>(0,j.jsx)(mQ,{name:e.name,data:e.data},e.name)),i.map((e,t)=>(0,j.jsxs)(`li`,{className:`cs-line`,children:[(0,j.jsxs)(`span`,{className:`cs-line-said`,children:[`“`,e,`”`]}),o.filter(e=>e.after_turn===t+1).map(e=>(0,j.jsx)(mQ,{name:e.name,data:e.data},e.name))]},`${t}-${e}`))]}),r.today!==void 0&&r.today!==null&&(0,j.jsxs)(`p`,{className:`cs-memory`,children:[`Played as if today were `,r.today,`.`]})]}),(0,j.jsx)(QZ,{title:`What it expects now`,hint:`What the broken verdicts forbid from now on. A verdict knows what broke, never what was right.`,children:(0,j.jsx)(`ul`,{className:`cs-expects`,children:sQ(r.expect??{}).map(e=>(0,j.jsx)(`li`,{children:e},e))})}),(0,j.jsx)(uQ,{agent:e,kept:t}),(0,j.jsx)(tQ,{agent:e,kept:t}),(0,j.jsxs)(`footer`,{className:`cs-doc-foot`,children:[`Kept `,t.author===`the hang-up panel`?`at hang-up`:`by ${t.author}`,`, `,hE(t.created_at),`, from a`,` `,(0,j.jsxs)(`a`,{href:eh(t.source_env,`/calls/${encodeURIComponent(t.source_call)}`),children:[t.source_env,` call`]}),t.source_version!==null&&` on settings v${t.source_version}`,`.`,t.decided_by!==null&&` Decided by ${t.decided_by}.`]})]})}function mQ({name:e,data:t}){return(0,j.jsxs)(`span`,{className:`cs-event`,children:[`your backend sent `,(0,j.jsx)(`code`,{children:e}),` `,t===void 0?``:JSON.stringify(t)]})}function hQ(e){return Object.entries(e).flatMap(([e,t])=>typeof t==`object`&&t&&!Array.isArray(t)?Object.entries(t).map(([t,n])=>[`${e}.${t}`,typeof n==`string`?n:JSON.stringify(n)]):[[e,typeof t==`string`?t:JSON.stringify(t)]])}function gQ({agent:e,listed:t}){let n=e=>t?.cases.filter(t=>t.status===e).length??0,r=[{said:`A judge breaks`,how:(0,j.jsxs)(j.Fragment,{children:[`Every real call of `,e,` is judged at hang-up. One that does not pass is kept here on its own: the caller's words, the state it opened in, what memory recalled, and what the broken judges forbid from now on.`]}),now:`${t?.pending??0} waiting for you`},{said:`You play it again`,how:(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`b`,{children:`Run it`}),` plays the same caller against the agent you hold with `,(0,j.jsx)(`code`,{children:`pinecall start`}),`, on the version of the settings you pick. Red means you reproduced it.`]}),now:`in the sandbox, never through production`},{said:`You fix it where it belongs`,how:(0,j.jsxs)(j.Fragment,{children:[`A price, an hour, what to say: the agent's `,(0,j.jsx)(`b`,{children:`settings`}),`, a new version and no deploy. What it did in a stage, or a tool used wrong: the `,(0,j.jsx)(`b`,{children:`code`}),`, in a pull request that carries the case with `,(0,j.jsx)(`code`,{children:`pinecall cases pull`}),`.`]}),now:`run it again until it holds`},{said:`You approve it, or dismiss it`,how:(0,j.jsxs)(j.Fragment,{children:[`Approved, the nightly plays it every night from now on, so the same mistake cannot come back unseen. `,(0,j.jsx)(`b`,{children:`The judge was wrong`}),` `,`dismisses it and teaches the judge, through its calibration.`]}),now:`${n(`approved`)} played every night · ${n(`dismissed`)} dismissed`}];return(0,j.jsxs)(`article`,{className:`cs-loop`,children:[(0,j.jsx)(`h1`,{className:`cs-loop-title`,children:`How a broken call stops breaking`}),(0,j.jsx)(`p`,{className:`cs-loop-lede`,children:`Nobody writes these cases. The calls do; a person decides. Pick one on the left.`}),(0,j.jsx)(`ol`,{className:`cs-steps`,children:r.map((e,t)=>(0,j.jsxs)(`li`,{className:`cs-step`,children:[(0,j.jsx)(`span`,{className:`cs-step-n`,children:t+1}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`h2`,{className:`cs-step-said`,children:e.said}),(0,j.jsx)(`p`,{className:`cs-step-how`,children:e.how}),(0,j.jsx)(`span`,{className:`cs-step-now`,children:e.now})]})]},e.said))}),(0,j.jsx)(`p`,{className:`cs-loop-note`,children:`A case is never softened so a change can pass. A verdict knows what broke, not what was right: when the right answer names the code, write it in the repository's golden.`})]})}function _Q(e){let t=M(),[n,r]=(0,O.useState)(null),[i,a]=(0,O.useState)(null);return(0,O.useEffect)(()=>{let n=!0;return r(null),rQ(t,e).then(e=>n&&(r(e),a(null))).catch(e=>n&&a(ra(e))),()=>{n=!1}},[t,e]),{listed:n,asking:i,decided:(0,O.useCallback)(e=>{r(t=>{if(t===null)return t;let n=t.cases.map(t=>t.id===e.id?e:t);return{...t,cases:n,pending:n.filter(e=>e.status===`pending`).length}})},[])}}function vQ(){let e=xr().agent??``,t=xr().call,n=WC({name:`cases.list`,initial:340,min:280,max:520,side:`left`}),{listed:r,asking:i,decided:a}=_Q(e),o=r?.cases.find(e=>e.name===t);return(0,j.jsxs)(`div`,{className:`cs`,style:n.style,children:[n.handle,(0,j.jsx)(nY,{agent:e,listed:r,asking:i,open:o?.name}),(0,j.jsx)(`main`,{className:`cs-main`,children:o===void 0?(0,j.jsx)(gQ,{agent:e,listed:r}):(0,j.jsx)(pQ,{agent:e,kept:o,onDecided:a},o.id)})]})}var yQ=z({id:F(),at:F(),what:V([`call`,`contact`,`org`]),subject:P(),env:V([`production`,`sandbox`]).nullable(),asked_by:P(),calls:F(),entries:F(),memories:F(),recordings:F()}),bQ=z({erasures:R(yQ)}),xQ=z({retention_days:F().nullish(),calling_hours:z({from:F(),until:F()}).nullish(),per_number_day:F().nullish(),consent_everywhere:L().nullish(),disclosure:P().nullish(),recording_notice:L().nullish()}),SQ={retention_days:null,calling_hours:null,per_number_day:null,consent_everywhere:!1,disclosure:null,recording_notice:!0},CQ=z({policy:xQ,set_by:P().nullable(),set_at:F().nullable()});async function wQ(e){return CQ.parse(await A(e,`/v1/org/policy`))}async function TQ(e,t,n){return CQ.parse(await sa(e,`/v1/org/policy`,{...t,...n}))}async function EQ(e){return bQ.parse(await A(e,`/v1/org/erasures`)).erasures}var DQ=z({subject:P(),what:V([`log`,`recording`,`traceback`]),env:V([`production`,`sandbox`]).nullable(),reader:P(),at:F()});async function OQ(e,t){let n=t===null?{}:{subject:t};return z({reads:R(DQ)}).parse(await A(e,`/v1/org/reads`,n)).reads}async function kQ(e,t){return yQ.parse(await ua(e,`/v1/contacts/${encodeURIComponent(t)}`))}async function AQ(e,t){return yQ.parse(await ua(e,`/v1/calls/${encodeURIComponent(t)}`))}async function jQ(e){let t=await fetch(da(e,`/v1/org/export`),{headers:ia(e)});if(!t.ok)throw new na(t.status,await t.text());let n=t.headers.get(`content-disposition`)??``,r=/filename="([^"]+)"/.exec(n)?.[1]??`pinecall-export.jsonl`;return{file:await t.blob(),name:r}}var MQ=z({number:P(),standing:V([`consented`,`opted_out`,`unknown`]),rows:R(z({kind:V([`express`,`written`,`opt_out`]),source:P(),text:P().nullable(),evidence:P().nullable(),given_by:P(),call:P().nullable(),given_at:F()}))}),NQ=z({numbers:R(z({number:P(),since:F(),source:P(),given_by:P()})),next:P().nullable()}),PQ=z({added:F(),refused:R(P())});async function FQ(e,t){return MQ.parse(await A(e,`/v1/org/consents/${encodeURIComponent(t)}`))}async function IQ(e,t){return MQ.parse(await la(e,`/v1/org/consents`,t))}async function LQ(e,t){return MQ.parse(await ua(e,`/v1/org/consents/${encodeURIComponent(t)}`))}async function RQ(e,t){return NQ.parse(await A(e,`/v1/org/dnc`,t===null?{}:{after:t}))}async function zQ(e,t,n){return PQ.parse(await la(e,`/v1/org/dnc`,{numbers:t,source:n}))}var BQ=`This is an automated assistant calling on behalf of {your org}.`;function VQ({policy:e,onSaved:t,onRefused:n}){let r=M(),i=e?.policy??SQ,[a,o]=(0,O.useState)(``),[s,c]=(0,O.useState)(!1),l=i.disclosure??null,u=async e=>{c(!0),n(null);try{t(await TQ(r,i,e)),o(``)}catch(e){n(ra(e))}finally{c(!1)}},[d,f]=l===null?[`gray`,`the platform's`]:l===``?[`red`,`none`]:[`green`,`your own words`];return(0,j.jsxs)(H,{pad:!0,children:[(0,j.jsx)(U,{title:`What a call says first`,meta:`every world`}),(0,j.jsxs)(`p`,{className:`data-sentence`,children:[(0,j.jsx)(`b`,{children:`An outbound call opens with`}),` `,(0,j.jsx)(xC,{tone:d,children:f}),` `,l===null&&(0,j.jsxs)(j.Fragment,{children:[`“`,BQ,`”, in the agent's language.`]}),l!==null&&l!==``&&(0,j.jsxs)(j.Fragment,{children:[`“`,l,`”`]})]}),l===``&&(0,j.jsx)(`p`,{className:`data-sentence data-warn`,children:`Nothing is said before the greeting, so the agent's own greeting must say it is an automated assistant and whom it calls for: some US states require it, and the FCC treats an AI voice as an artificial one.`}),(0,j.jsxs)(`div`,{className:`data-import`,children:[(0,j.jsx)(zh,{rows:2,maxLength:500,"aria-label":`Your own opening sentence`,value:a,placeholder:`Hi, this is Ana, Clínica Norte's virtual assistant.`,onChange:e=>o(e.target.value)}),(0,j.jsxs)(`div`,{className:`data-form`,children:[(0,j.jsx)(W,{kind:`primary`,size:`form`,disabled:s||a.trim()===``,onClick:()=>void u({disclosure:a.trim()}),children:`Say these words`}),l!==null&&(0,j.jsx)(W,{size:`form`,disabled:s,onClick:()=>void u({disclosure:null}),children:`Use the platform's sentence`}),l!==``&&(0,j.jsx)(W,{size:`form`,kind:`danger`,disabled:s,onClick:()=>void u({disclosure:``}),children:`Say nothing`})]})]}),(0,j.jsxs)(`div`,{className:`data-form data-sentence-next`,children:[(0,j.jsx)(Uh,{label:`Recording notice`,on:i.recording_notice!==!1,onChange:e=>void u({recording_notice:e})}),(0,j.jsx)(`span`,{className:`data-sentence`,children:i.recording_notice===!1?`A recorded call says nothing of it: California, Florida and the other all-party states need the caller told.`:`A recorded call, inbound or outbound, then says “This call may be recorded.” An agent that records nothing says nothing.`})]})]})}var HQ=[`qa`,`supervisor`,`manager`,`admin`,`developer`],UQ=z({id:P(),email:P(),name:P(),role:V(HQ),agents:R(P()),status:V([`invited`,`active`,`disabled`]),scopes:R(P()),production:L()});async function WQ(e){return z({members:R(UQ)}).parse(await A(e,`/v1/members`)).members}var GQ=`150px 100px minmax(0,1.4fr) minmax(0,1fr) 100px`,KQ={log:`the log`,recording:`the recording`,traceback:`a traceback`};function qQ({onRefused:e}){let t=M(),[n,r]=(0,O.useState)(null),[i,a]=(0,O.useState)({}),[o,s]=(0,O.useState)(``);(0,O.useEffect)(()=>{let n=!1;return OQ(t,null).then(e=>{n||r(e)},t=>{n||e(ra(t))}),WQ(t).then(e=>{n||a(Object.fromEntries(e.map(e=>[e.id,e.name])))},()=>void 0),()=>{n=!0}},[t,e]);let c=async n=>{n.preventDefault();try{r(await OQ(t,o.trim()===``?null:o.trim()))}catch(t){e(ra(t))}};return(0,j.jsxs)(H,{pad:!0,children:[(0,j.jsx)(U,{title:`Who read what`,meta:`newest first · once an hour per reader`}),(0,j.jsx)(`p`,{className:`data-sentence`,children:`A person reading a call's log or its recording, here or with their key, and the operator reading one off the box or looking a number up for a carrier's traceback. A server's key and a visitor's page write nothing.`}),(0,j.jsxs)(`form`,{className:`data-form`,onSubmit:e=>void c(e),children:[(0,j.jsx)(G,{value:o,"aria-label":`A call id or a number`,placeholder:`a call id or a number, or empty for all`,onChange:e=>s(e.target.value)}),(0,j.jsx)(W,{type:`submit`,size:`form`,children:`Show`})]}),(0,j.jsx)(`div`,{className:`data-list`,children:n!==null&&n.length===0?(0,j.jsx)(kh,{children:`Nobody read a call of this org yet.`}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(NC,{columns:GQ,labels:[`When`,`Read`,`Which`,`Who`,`World`]}),(n??[]).map((e,t)=>(0,j.jsxs)(`div`,{className:`ui-table-row data-row`,style:{gridTemplateColumns:GQ},children:[(0,j.jsx)(`span`,{className:`ui-cell-faint`,children:hE(e.at)}),(0,j.jsx)(`span`,{children:KQ[e.what]}),(0,j.jsx)(`span`,{className:`ui-cell-ink ui-clip ui-fixed`,children:e.subject}),(0,j.jsx)(`span`,{className:`ui-clip`,children:e.reader===`operator`?(0,j.jsx)(xC,{tone:`violet`,children:`the operator`}):i[e.reader]??e.reader}),(0,j.jsx)(`span`,{className:`ui-cell-faint`,children:e.env??`—`})]},`${e.at}-${t}`))]})})]})}var JQ=`minmax(0,1fr) 150px minmax(0,1.4fr) minmax(0,1fr)`,YQ={consented:[`green`,`consented`],opted_out:[`red`,`do not call`],unknown:[`gray`,`nothing on file`]};function XQ({onRefused:e}){let t=M(),{world:n}=ow(),[r,i]=(0,O.useState)(null),[a,o]=(0,O.useState)(null),s=async n=>{try{i(await RQ(t,n)),o(n)}catch(t){e(ra(t))}};return(0,O.useEffect)(()=>{let n=!1;return RQ(t,null).then(e=>{n||i(e)},t=>{n||e(ra(t))}),()=>{n=!0}},[t,e]),(0,j.jsxs)(H,{pad:!0,children:[(0,j.jsx)(U,{title:`Consent and do-not-call`,meta:`this console's world`}),(0,j.jsxs)(`p`,{className:`data-sentence`,children:[n===`production`?`A call to a US or Canadian number needs a consent on file or sent with the dial. A number on the list is never dialled, whatever consent a dial carries: only a consent given here, or at the API, lifts it.`:`This is the sandbox's own list, for trying the doors: the sandbox dials without looking at consent or the list, and production keeps a list of its own.`,` `,`The agent puts a caller on the list the moment they ask (`,(0,j.jsx)(`code`,{className:`ui-fixed`,children:`this.call.optOut()`}),`).`]}),(0,j.jsx)(ZQ,{onChanged:()=>s(a),onRefused:e}),(0,j.jsx)(QQ,{onImported:()=>s(null),onRefused:e}),(0,j.jsx)(`div`,{className:`data-list`,children:r!==null&&r.numbers.length===0?(0,j.jsx)(kh,{children:`Nobody is on the do-not-call list.`}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(NC,{columns:JQ,labels:[`Number`,`Since`,`From`,`Who`]}),(r?.numbers??[]).map(e=>(0,j.jsxs)(`div`,{className:`ui-table-row data-row`,style:{gridTemplateColumns:JQ},children:[(0,j.jsx)(`span`,{className:`ui-cell-ink ui-fixed`,children:e.number}),(0,j.jsx)(`span`,{className:`ui-cell-faint`,children:hE(e.since)}),(0,j.jsx)(`span`,{className:`ui-cell-faint ui-clip`,children:e.source}),(0,j.jsx)(`span`,{className:`ui-cell-faint ui-clip`,children:e.given_by})]},e.number)),r?.next!=null&&(0,j.jsx)(`div`,{className:`data-more`,children:(0,j.jsx)(W,{size:`sm`,onClick:()=>void s(r.next),children:`Older`})})]})})]})}function ZQ({onChanged:e,onRefused:t}){let n=M(),[r,i]=(0,O.useState)(``),[a,o]=(0,O.useState)(null),[s,c]=(0,O.useState)(`express`),[l,u]=(0,O.useState)(``),[d,f]=(0,O.useState)(``),[p,m]=(0,O.useState)(!1),h=async n=>{m(!0),t(null);try{o(await n()),await e()}catch(e){t(ra(e))}finally{m(!1)}},g=e=>{e.preventDefault(),r.trim()!==``&&h(()=>FQ(n,r.trim()))},_=e=>{if(e.preventDefault(),a===null||l.trim()===``){t(`A consent says where it came from: a form, a call, a signed paper.`);return}h(()=>IQ(n,{number:a.number,kind:s,source:l.trim(),text:d.trim()===``?null:d.trim()}))},[v,y]=a===null?[`gray`,``]:YQ[a.standing];return(0,j.jsxs)(`div`,{className:`data-lookup`,children:[(0,j.jsxs)(`form`,{className:`data-form`,onSubmit:g,children:[(0,j.jsx)(G,{value:r,"aria-label":`A number to look up`,placeholder:`+14155550142`,onChange:e=>i(e.target.value)}),(0,j.jsx)(W,{type:`submit`,size:`form`,disabled:p||r.trim()===``,children:`Look up`})]}),a!==null&&(0,j.jsxs)(`div`,{className:`data-consent`,children:[(0,j.jsxs)(`div`,{className:`data-consent-head`,children:[(0,j.jsx)(`span`,{className:`ui-fixed`,children:a.number}),(0,j.jsx)(xC,{tone:v,children:y}),a.standing!==`opted_out`&&(0,j.jsx)(W,{size:`xs`,kind:`danger`,disabled:p,onClick:()=>void h(()=>LQ(n,a.number)),children:`Put on the do-not-call list`})]}),a.rows.map((e,t)=>(0,j.jsxs)(`div`,{className:`data-consent-row`,children:[(0,j.jsx)(`span`,{className:`ui-cell-faint`,children:hE(e.given_at)}),(0,j.jsx)(`span`,{children:e.kind===`opt_out`?`opt-out`:`${e.kind} consent`}),(0,j.jsxs)(`span`,{className:`ui-cell-faint ui-clip`,children:[e.source,` · `,e.given_by,e.call===null?``:` · ${e.call}`]})]},`${e.given_at}-${t}`)),(0,j.jsxs)(`form`,{className:`data-form data-give`,onSubmit:_,children:[(0,j.jsxs)(vC,{className:`data-kind`,"aria-label":`Kind of consent`,value:s,onValueChange:e=>c(e===`written`?`written`:`express`),children:[(0,j.jsx)(yC,{value:`express`,children:`express consent`}),(0,j.jsx)(yC,{value:`written`,children:`written consent`})]}),(0,j.jsx)(G,{value:l,"aria-label":`Where the consent came from`,placeholder:`where it came from: the booking form`,onChange:e=>u(e.target.value)}),(0,j.jsx)(G,{value:d,"aria-label":`The words they agreed to`,placeholder:`the words they agreed to (optional)`,onChange:e=>f(e.target.value)}),(0,j.jsx)(W,{type:`submit`,kind:`primary`,size:`form`,disabled:p,children:`Record consent`})]})]})]})}function QQ({onImported:e,onRefused:t}){let n=M(),[r,i]=(0,O.useState)(``),[a,o]=(0,O.useState)(``),[s,c]=(0,O.useState)(!1),[l,u]=(0,O.useState)(null),d=async o=>{o.preventDefault();let s=r.split(/\r?\n/).map(e=>e.trim()).filter(e=>e!==``);if(s.length===0||a.trim()===``){t(`An import needs numbers, one a line, and where the list came from.`);return}c(!0),u(null),t(null);try{let t=await zQ(n,s,a.trim());u(`${t.added} on the list${t.refused.length===0?``:` · not numbers: ${t.refused.join(`, `)}`}`),i(``),await e()}catch(e){t(ra(e))}finally{c(!1)}};return(0,j.jsxs)(`form`,{className:`data-import`,onSubmit:e=>void d(e),children:[(0,j.jsx)(zh,{rows:3,"aria-label":`Numbers to put on the list, one a line`,value:r,placeholder:`+14155550142
156
+ +14155550143`,onChange:e=>i(e.target.value)}),(0,j.jsxs)(`div`,{className:`data-form`,children:[(0,j.jsx)(G,{value:a,"aria-label":`Where the list came from`,placeholder:`where the list came from: our Registry scrub, Sept 2026`,onChange:e=>o(e.target.value)}),(0,j.jsx)(W,{type:`submit`,size:`form`,disabled:s,children:s?`Importing…`:`Import to the list`}),l!==null&&(0,j.jsx)(`span`,{className:`data-done`,children:l})]})]})}var $Q=`150px 90px minmax(0,1.2fr) minmax(0,1.6fr) minmax(0,1fr) 90px`;function e$(){let e=M(),{world:t}=ow(),[n,r]=(0,O.useState)(null),[i,a]=(0,O.useState)(null),[o,s]=(0,O.useState)(null);return(0,O.useEffect)(()=>{let t=!1;return Promise.all([wQ(e),EQ(e)]).then(([e,n])=>{t||(r(e),a(n))},e=>{t||s(ra(e))}),()=>{t=!0}},[e]),(0,j.jsxs)(kC,{tight:!0,children:[(0,j.jsx)(AC,{title:`Data & privacy`,ledeWidth:660,lede:`What this org keeps in ${t}, for how long, and how it comes out or goes away. An erasure cannot be undone: the call's log, its facts, the memories it taught and its recording go in one transaction, and a row below says so.`}),(0,j.jsx)(Ah,{children:o}),(0,j.jsx)(n$,{policy:n,onSaved:r,onRefused:s}),(0,j.jsx)(VQ,{policy:n,onSaved:r,onRefused:s}),(0,j.jsx)(XQ,{onRefused:s}),(0,j.jsx)(r$,{onRefused:s}),(0,j.jsx)(i$,{onErased:async()=>{let[t,n]=await Promise.all([wQ(e),EQ(e)]);r(t),a(n)},onRefused:s}),(0,j.jsx)(a$,{rows:i}),(0,j.jsx)(qQ,{onRefused:s})]})}var t$=Array.from({length:25},(e,t)=>t);function n$({policy:e,onSaved:t,onRefused:n}){let r=M(),[i,a]=(0,O.useState)(``),[o,s]=(0,O.useState)(``),[c,l]=(0,O.useState)(!1),u=e?.policy??SQ,d=u.calling_hours??null,f=async e=>{l(!0),n(null);try{t(await TQ(r,u,e)),a(``),s(``)}catch(e){n(ra(e))}finally{l(!1)}},p=(e,t)=>{let r=Number(e);if(Number.isInteger(r)&&r>=1)return r;n(`${t} is a whole number, 1 or more.`)},m=e=>{e.preventDefault();let t=p(i,`Retention`);t!==void 0&&f({retention_days:t})},h=e=>{e.preventDefault();let t=p(o,`The count`);t!==void 0&&f({per_number_day:t})},g=(e,t)=>{if(e>=t){n(`Calling hours are a window of the day: from before until.`);return}f({calling_hours:{from:e,until:t}})},_=e?.set_by?`set by ${e.set_by}${e.set_at===null?``:` · ${hE(e.set_at)}`}`:`nobody set it`;return(0,j.jsxs)(H,{pad:!0,children:[(0,j.jsx)(U,{title:`Rules`,meta:_}),(0,j.jsxs)(`p`,{className:`data-sentence`,children:[(0,j.jsx)(`b`,{children:`Retention.`}),` `,u.retention_days==null?`Every sealed call is kept until somebody erases it.`:`A sealed call is erased ${u.retention_days} day${u.retention_days===1?``:`s`} after it started, by the box's run at 04:00.`]}),(0,j.jsxs)(`form`,{className:`data-form`,onSubmit:m,children:[(0,j.jsx)(`label`,{className:`ui-label`,htmlFor:`data-days`,children:`Keep a call for`}),(0,j.jsx)(G,{id:`data-days`,value:i,inputMode:`numeric`,placeholder:u.retention_days==null?`365`:String(u.retention_days),onChange:e=>a(e.target.value)}),(0,j.jsx)(`span`,{className:`data-unit`,children:`days`}),(0,j.jsx)(W,{type:`submit`,kind:`primary`,size:`form`,disabled:c||i===``,children:`Save`}),u.retention_days!=null&&(0,j.jsx)(W,{size:`form`,disabled:c,onClick:()=>void f({retention_days:null}),children:`Keep everything`})]}),(0,j.jsxs)(`p`,{className:`data-sentence data-sentence-next`,children:[(0,j.jsx)(`b`,{children:`Calling hours.`}),` `,d===null?`A number is rung at any hour of its own day; a US or Canadian number from 8:00 to 21:00 whatever is set here.`:`A number is rung from ${d.from}:00 to ${d.until}:00 of its own day; a US or Canadian number never before 8:00 or after 21:00.`,` `,`The sandbox and your own verified phone are never held to them.`]}),(0,j.jsxs)(`div`,{className:`data-form`,children:[(0,j.jsx)(`label`,{className:`ui-label`,htmlFor:`data-from`,children:`From`}),(0,j.jsx)(vC,{id:`data-from`,className:`data-hour`,"aria-label":`From`,value:String(d?.from??8),disabled:c,onValueChange:e=>g(Number(e),d?.until??21),children:t$.slice(0,24).map(e=>(0,j.jsxs)(yC,{value:String(e),children:[e,`:00`]},e))}),(0,j.jsx)(`label`,{className:`ui-label`,htmlFor:`data-until`,children:`until`}),(0,j.jsx)(vC,{id:`data-until`,className:`data-hour`,"aria-label":`Until`,value:String(d?.until??21),disabled:c,onValueChange:e=>g(d?.from??8,Number(e)),children:t$.slice(1).map(e=>(0,j.jsxs)(yC,{value:String(e),children:[e,`:00`]},e))}),d!==null&&(0,j.jsx)(W,{size:`form`,disabled:c,onClick:()=>void f({calling_hours:null}),children:`Any hour`})]}),(0,j.jsxs)(`p`,{className:`data-sentence data-sentence-next`,children:[(0,j.jsx)(`b`,{children:`Calls to one number a day.`}),` `,u.per_number_day==null?`No limit of the org's own; a US or Canadian number is rung at most three times in 24 hours.`:`One number is rung at most ${u.per_number_day} time${u.per_number_day===1?``:`s`} in 24 hours.`]}),(0,j.jsxs)(`form`,{className:`data-form`,onSubmit:h,children:[(0,j.jsx)(`label`,{className:`ui-label`,htmlFor:`data-count`,children:`At most`}),(0,j.jsx)(G,{id:`data-count`,value:o,inputMode:`numeric`,placeholder:u.per_number_day==null?`3`:String(u.per_number_day),onChange:e=>s(e.target.value)}),(0,j.jsx)(`span`,{className:`data-unit`,children:`calls a day`}),(0,j.jsx)(W,{type:`submit`,kind:`primary`,size:`form`,disabled:c||o===``,children:`Save`}),u.per_number_day!=null&&(0,j.jsx)(W,{size:`form`,disabled:c,onClick:()=>void f({per_number_day:null}),children:`No limit`})]}),(0,j.jsxs)(`p`,{className:`data-sentence data-sentence-next`,children:[(0,j.jsx)(`b`,{children:`Consent in every country.`}),` `,u.consent_everywhere===!0?`A call to any number in production needs a consent on file or sent with the dial.`:`A call to a US or Canadian number in production needs a consent on file; other countries do not, unless this is on.`]}),(0,j.jsx)(W,{size:`form`,disabled:c,onClick:()=>void f({consent_everywhere:u.consent_everywhere!==!0}),children:u.consent_everywhere===!0?`Only where the law asks`:`Ask for consent everywhere`})]})}function r$({onRefused:e}){let t=M(),{world:n}=ow(),[r,i]=(0,O.useState)(!1),a=async()=>{i(!0),e(null);try{let{file:e,name:n}=await jQ(t),r=document.createElement(`a`);r.href=URL.createObjectURL(e),r.download=n,r.click(),setTimeout(()=>URL.revokeObjectURL(r.href),6e4)}catch(t){e(ra(t))}finally{i(!1)}};return(0,j.jsxs)(H,{pad:!0,children:[(0,j.jsx)(U,{title:`Export`,meta:`${n}, whole`}),(0,j.jsx)(`p`,{className:`data-sentence`,children:`Every call with its whole log, every memory, every version of every agent's settings and words, and every knowledge document, as one file of JSON Lines. Recordings stay on each call's page.`}),(0,j.jsx)(W,{size:`form`,disabled:r,onClick:()=>void a(),children:r?`Exporting…`:`Download the export`})]})}function i$({onErased:e,onRefused:t}){let n=M(),[r,i]=(0,O.useState)(``),[a,o]=(0,O.useState)(!1),[s,c]=(0,O.useState)(!1),[l,u]=(0,O.useState)(null),d=async s=>{if(s.preventDefault(),r.trim()!==``){if(!a){o(!0);return}c(!0),t(null);try{u(await kQ(n,r.trim())),i(``),o(!1)}catch(e){t(ra(e)),c(!1);return}await e(),c(!1)}};return(0,j.jsxs)(H,{pad:!0,children:[(0,j.jsx)(U,{title:`Erase a contact`,meta:`cannot be undone`}),(0,j.jsx)(`p`,{className:`data-sentence`,children:`The number or the id a call carried. Every call they were on in this world goes, with every fact the agents kept of them. The dial ledger keeps the numbers and the time, for a carrier's traceback.`}),(0,j.jsxs)(`form`,{className:`data-form`,onSubmit:e=>void d(e),children:[(0,j.jsx)(G,{value:r,"aria-label":`The number or the id a call carried`,placeholder:`+14155550142`,onChange:e=>{i(e.target.value),o(!1)}}),(0,j.jsx)(W,{type:`submit`,kind:a?`danger`:`primary`,size:`form`,disabled:s||r.trim()===``,children:s?`Erasing…`:a?`Erase ${r.trim()} for good`:`Erase`})]}),l!==null&&(0,j.jsx)(`p`,{className:`data-done`,children:o$(l)})]})}function a$({rows:e}){return(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Erasures`,meta:`both worlds · newest first · kept after the org`}),e!==null&&e.length===0?(0,j.jsx)(kh,{children:`Nothing erased yet.`}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(NC,{columns:$Q,labels:[`When`,`What`,`Which`,`What went`,`Who asked`,`World`]}),(e??[]).map(e=>(0,j.jsxs)(`div`,{className:`ui-table-row data-row`,style:{gridTemplateColumns:$Q},children:[(0,j.jsx)(`span`,{className:`ui-cell-faint`,children:hE(e.at)}),(0,j.jsx)(`span`,{children:(0,j.jsx)(xC,{tone:e.what===`org`?`red`:`gray`,children:e.what})}),(0,j.jsx)(`span`,{className:`ui-cell-ink ui-clip`,title:e.subject,children:e.subject}),(0,j.jsx)(`span`,{className:`ui-cell-faint ui-clip`,children:o$(e)}),(0,j.jsx)(`span`,{className:`ui-cell-faint ui-clip`,children:e.asked_by}),(0,j.jsx)(`span`,{className:`ui-cell-faint`,children:e.env??`—`})]},e.id))]})]})}function o$(e){return`${e.calls} call${e.calls===1?``:`s`}, ${e.entries} entries, ${e.memories} memories, ${e.recordings} recording${e.recordings===1?``:`s`}`}var s$={held:`green`,broken:`red`,deferred:`amber`,skipped:`muted`};function c$({agent:e,call:t,number:n}){let r=M(),i=_r(),a=rw(),[o,s]=(0,O.useState)(``),[c,l]=(0,O.useState)(!1),[u,d]=(0,O.useState)(!1),[f,p]=(0,O.useState)(null),[m,h]=(0,O.useState)(null),[g,_]=(0,O.useState)(null),[v,y]=(0,O.useState)(null),b=async n=>{s(n),y(null);try{n===`check`?p(await bY(r,t)):n===`keep`?_((await aQ(r,t,`kept-${t.slice(-6).toLowerCase()}`)).name):h(await SY(r,e,t))}catch(e){y(ra(e))}finally{s(``)}},x=async()=>{if(!c){l(!0);return}s(`erase`),y(null);try{await AQ(r,t),i(`/calls`)}catch(e){y(ra(e)),s(``)}},S=async()=>{if(n!==null){s(`list`),y(null);try{await LQ(r,n),d(!0)}catch(e){y(ra(e))}finally{s(``)}}},C=n!==null&&n.startsWith(`+`)&&(a===null||a.includes(`talk`));return(0,j.jsxs)(`div`,{className:`over-acts`,children:[(0,j.jsxs)(`div`,{className:`over-buttons`,onMouseLeave:()=>l(!1),children:[(0,j.jsx)(W,{size:`sm`,disabled:o!==``,onClick:()=>void b(`check`),children:o===`check`?`Checking…`:`Re-check by code`}),(0,j.jsx)(W,{size:`sm`,disabled:o!==``||e===``||g!==null,title:`The org's Cases: approved, the nightly plays it`,onClick:()=>void b(`keep`),children:o===`keep`?`Keeping…`:g===null?`Keep as a case`:`Kept as a case`}),(0,j.jsx)(W,{size:`sm`,disabled:o!==``||e===``,title:`A golden file in test/candidates, in the directory of pinecall start`,onClick:()=>void b(`promote`),children:o===`promote`?`Writing…`:`Write as a candidate`}),(0,j.jsx)(W,{size:`sm`,kind:c?`danger`:`secondary`,disabled:o!==``,onClick:()=>void x(),children:o===`erase`?`Erasing…`:c?`Erase it for good`:`Erase this call`}),C&&(0,j.jsx)(W,{size:`sm`,disabled:o!==``||u,onClick:()=>void S(),children:o===`list`?`Listing…`:u?`${n} on the do-not-call list`:`Do not call this number`})]}),f!==null&&(0,j.jsxs)(`div`,{className:`over-result`,children:[(0,j.jsx)(`span`,{className:`over-result-lead`,children:f.passed?`Holds by code`:`Does not hold by code`}),f.verdicts.map(e=>(0,j.jsxs)(xC,{tone:s$[e.status]??`muted`,children:[e.check,` `,e.status]},e.check))]}),g!==null&&(0,j.jsxs)(`div`,{className:`over-result`,children:[(0,j.jsx)(`span`,{className:`over-result-lead`,children:`Kept`}),(0,j.jsxs)(Wi,{to:`/a/${encodeURIComponent(e)}/cases/${encodeURIComponent(g)}`,children:[`Open `,g,` in Cases →`]})]}),m!==null&&(0,j.jsxs)(`div`,{className:`over-result`,children:[(0,j.jsx)(`span`,{className:`over-result-lead`,children:`Written down`}),(0,j.jsx)(`span`,{className:`ui-fixed over-path`,children:m.path}),(0,j.jsxs)(`span`,{className:`over-result-note`,children:[m.candidate.input.length,` caller `,m.candidate.input.length===1?`turn`:`turns`]}),m.notes.map(e=>(0,j.jsx)(`span`,{className:`over-result-note over-result-line`,children:e},e))]}),v!==null&&(0,j.jsx)(`div`,{className:`ui-refused`,children:v})]})}var l$=`confirm.`,u$=`tool.call`;function d$(e){let t=new Map;for(let n of e){if(!n.type.startsWith(l$))continue;let e=b$(n,`call_id`),r=t.get(e)??v$(e,b$(n,`tool`));t.set(e,{...r,..._$(n)})}for(let n of e){let e=n.type===u$?t.get(b$(n,`call_id`)):void 0;e!==void 0&&(e.ran=n)}return[...t.values()]}function f$({rows:e}){return e.length===0?null:(0,j.jsx)(`div`,{className:`over-consents`,children:e.map(e=>(0,j.jsx)(p$,{consent:e},e.callId))})}function p$({consent:e}){let t=h$(e);return(0,j.jsxs)(`div`,{className:`over-consent`,children:[(0,j.jsxs)(`div`,{className:`over-consent-join`,children:[(0,j.jsx)(`span`,{className:`over-consent-tool`,children:e.tool}),(0,j.jsx)(`span`,{className:`over-consent-seqs`,children:m$(e)}),(0,j.jsx)(`span`,{className:`over-consent-id ui-fixed`,children:e.callId})]}),e.requested!==null&&(0,j.jsx)(`div`,{className:`over-consent-said`,children:b$(e.requested,`phrase`)}),e.granted!==null&&(0,j.jsxs)(`div`,{className:`over-consent-said`,children:[`“`,b$(e.granted,`said`),`”`]}),(0,j.jsxs)(`div`,{className:`over-consent-audience`,children:[`audience `,g$(e)]}),t!==null&&(0,j.jsx)(`div`,{className:`ui-refused`,children:t})]})}function m$(e){return e.granted===null?e.declined===null?`seq ${y$(e.requested)} asked and nothing answered`:`seq ${y$(e.declined)} declined seq ${y$(e.ran)}`:`seq ${e.granted.seq} authorised seq ${y$(e.ran)}`}function h$(e){let{granted:t,ran:n,requested:r}=e;if(t===null||n===null)return null;if(t.seq>n.seq)return`${e.tool} ran at seq ${n.seq}, before its confirm.granted at seq ${t.seq}`;let i=r===null?null:b$(r,`audience`);return i!==null&&i!==b$(t,`audience`)?`${e.tool} was confirmed by another audience than the one asked at seq ${r?.seq??0}`:null}function g$(e){let t=e.granted??e.declined??e.requested;return t===null?`—`:b$(t,`audience`)}function _$(e){return e.type===`confirm.granted`?{granted:e}:e.type===`confirm.declined`?{declined:e}:{requested:e}}function v$(e,t){return{callId:e,tool:t,requested:null,granted:null,declined:null,ran:null}}function y$(e){return e===null?`—`:String(e.seq)}function b$(e,t){let n=e.data[t];return typeof n==`string`?n:``}var x$={"turn.user":`user`,"turn.agent":`agent`},S$=/^#seq-(\d+)$/;function C$({lines:e,turns:t}){let[n,r]=(0,O.useState)(new Set),[i,a]=(0,O.useState)(!1),o=k$(t),s=w$(hr().hash),c=e.length;(0,O.useEffect)(()=>{s!==null&&c>0&&document.getElementById(T$(s))?.scrollIntoView({block:`center`})},[s,c]);let l=e=>r(t=>{let n=new Set(t);return n.delete(e)||n.add(e),n});return(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`The log`,meta:`${e.length} entries, append-only, numbered by seq`,action:(0,j.jsx)(`span`,{className:`over-log-action`,children:(0,j.jsx)(W,{size:`sm`,onClick:()=>a(!i),children:i?`Hide the fields`:`Show every field`})})}),(0,j.jsx)(`div`,{className:`over-log`,children:e.map(e=>(0,j.jsx)(E$,{line:e,turn:o.get(A$(e.entry.type,e.entry.data)),open:i||n.has(e.entry.seq),cited:e.entry.seq===s,onToggle:()=>l(e.entry.seq)},e.entry.seq))})]})}function w$(e){let t=S$.exec(e)?.[1];return t===void 0?null:Number(t)}function T$(e){return`seq-${e}`}function E$({line:e,turn:t,open:n,cited:r,onToggle:i}){let a=e.fields.length>0,o=[`over-entry`,`over-entry-${D$(e.entry.type)}`];return a&&o.push(`over-entry-opens`),r&&o.push(`over-entry-cited`),(0,j.jsxs)(`div`,{id:T$(e.entry.seq),className:o.join(` `),onClick:a?i:void 0,children:[(0,j.jsx)(`span`,{className:`over-entry-seq`,children:e.entry.seq}),(0,j.jsx)(`span`,{className:`over-entry-since`,children:e.since}),(0,j.jsxs)(`span`,{className:`over-entry-type`,children:[e.mark!==``&&(0,j.jsxs)(`span`,{className:`over-entry-mark`,children:[e.mark,` `]}),e.entry.type]}),(0,j.jsxs)(`span`,{className:`over-entry-payload`,children:[e.payload,a&&(0,j.jsxs)(`span`,{className:`over-entry-caret`,children:[` `,n?`▾`:`▸`]}),t!==void 0&&(0,j.jsx)(O$,{turn:t}),n&&(0,j.jsx)(`span`,{className:`over-fields`,children:e.fields.map(e=>(0,j.jsxs)(`span`,{className:`over-field`,children:[(0,j.jsx)(`span`,{className:`over-field-name`,children:e.name}),(0,j.jsx)(`span`,{className:`over-field-value`,children:e.value})]},e.name))})]})]})}function D$(e){return e.startsWith(`turn.`)?`turn`:e.startsWith(`state.`)?`state`:e.startsWith(`tool.`)||e.startsWith(`confirm.`)?`tool`:e.startsWith(`call.`)?`call`:`quiet`}function O$({turn:e}){return(0,j.jsx)(`span`,{className:`over-chips`,children:pM(e).map(e=>(0,j.jsxs)(`span`,{className:`over-chip`,children:[e.field,` `,(0,j.jsx)(`b`,{children:e.value})]},e.field))})}function k$(e){return new Map(e.map(e=>[j$(e.role,e.item_id,e.speech_id),e]))}function A$(e,t){return j$(x$[e]??``,t.item_id,t.speech_id)}function j$(e,t,n){let r=typeof t==`string`&&t!==``?t:n;return`${e}:${typeof r==`string`?r:``}`}function M$(e){return e.ops.map(I$).join(`; `)}function N$(e){return e.ops.flatMap(e=>e.facts.map(e=>e.category?`${e.text} (${e.category})`:e.text))}function P$(e){return`${e.sources.length} sources · ${L$(e.took_ms)}`}function F$(e){return e.sources.map(e=>`${e.heading?`${e.path} › ${e.heading}`:e.path} · ${e.score.toFixed(3)}`)}function I$(e){return`${e.op} · ${e.facts.length} facts · ${L$(e.took_ms)}`}function L$(e){return`${Math.round(e)} ms`}var R$=[`turn.user`,`turn.agent`],z$=`metrics.`,B$=`memory.ops`,V$=`docs.sources`,H$={"tool.call":`→`,"tool.result":`←`},U$=`!`;function W$(e){let t=tM(e.map(e=>e.type)),n=e[0]?.ts??0;return e.map(e=>K$(e,n,t.get(e.type)))}function G$(e,t){return`+${(e-t).toFixed(3)}`}function K$(e,t,n){return{entry:e,mark:q$(e.type),since:G$(e.ts,t),payload:J$(e,n),fields:Y$(e,n)}}function q$(e){return e.startsWith(`confirm.`)?U$:H$[e]??``}function J$(e,t){return R$.includes(e.type)?nM(Object.fromEntries(Object.entries(e.data).filter(([e])=>e!==`metrics`)),t):e.type.startsWith(z$)?``:e.type===B$?M$(e.data):e.type===V$?P$(e.data):nM(e.data,t)}function Y$(e,t){if(R$.includes(e.type)){let n=e.data.metrics,r=t?.properties?.metrics;return $$(n)?X$(n,z$,r):[]}return e.type.startsWith(z$)?X$(e.data,``,t):e.type===B$?N$(e.data).map(e=>({name:`fact`,value:e})):e.type===V$?F$(e.data).map(e=>({name:`source`,value:e})):[]}function X$(e,t,n){return Z$(e,t,n,Q$(e,n))}function Z$(e,t,n,r){let i=[];for(let a of r){let r=e[a],o=n?.properties?.[a];$$(r)?i.push(...Z$(r,`${t}${a}.`,o,Object.keys(r))):i.push({name:`${t}${a}`,value:rM(r,o)})}return i}function Q$(e,t){let n=Object.keys(t?.properties??{}).filter(t=>t in e);return[...n,...Object.keys(e).filter(e=>!n.includes(e))]}function $$(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var e1=/^#seq-\d+$/;function t1({state:e,entries:t,beside:n}){let{hash:r}=hr(),[i,a]=(0,O.useState)(()=>e1.test(r)),o=(0,O.useMemo)(()=>({consented:d$(t),lines:W$(t)}),[t]);return(0,O.useEffect)(()=>{e1.test(r)&&a(!0)},[r]),(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`div`,{className:`over-bar`,children:[(0,j.jsxs)(`button`,{type:`button`,className:`over-details`,"aria-expanded":i,onClick:()=>a(!i),children:[(0,j.jsx)(`span`,{className:`over-details-caret`,children:i?`▾`:`▸`}),(0,j.jsx)(`span`,{className:`over-details-name`,children:`Details`}),(0,j.jsx)(`span`,{className:`over-details-what`,children:`consent, prompt blocks, the full log`})]}),n]}),i&&o.consented.length>0&&(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Consent proof`,meta:`each grant joined to the tool call it authorised`}),(0,j.jsx)(f$,{rows:o.consented})]}),i&&Object.keys(e.prompt).length>0&&(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`The prompt, block by block`,meta:`by name, hash and length — the text never enters the log`}),(0,j.jsx)(`div`,{className:`over-prompt`,children:Object.entries(e.prompt).map(([e,t])=>(0,j.jsxs)(Ph,{label:e,children:[(0,j.jsx)(`span`,{className:`ui-fixed over-hash`,children:t.hash}),` · `,t.chars,` chars · seq `,t.seq]},e))}),(0,j.jsxs)(`div`,{className:`over-note`,children:[(0,j.jsx)(`span`,{className:`ui-fixed`,children:`pinecall prompt --state`}),` prints the text offline.`]})]}),i&&(0,j.jsx)(C$,{lines:o.lines,turns:e.turns})]})}function n1({state:e,events:t}){return(0,j.jsx)(`div`,{className:`over-facts`,children:(0,j.jsxs)(jC,{min:130,children:[(0,j.jsx)(MC,{size:`fact`,label:`Agent`,value:e.agent}),(0,j.jsx)(MC,{size:`fact`,label:`Channel`,value:e.direction===`outbound`?`${e.channel??`—`} · outbound`:e.channel??`—`}),(0,j.jsx)(MC,{size:`fact`,label:`Started`,value:hE(e.started_at)}),(0,j.jsx)(MC,{size:`fact`,label:`Duration`,value:e.ended_at===null?`still going`:dE(e)}),(0,j.jsx)(MC,{size:`fact`,label:`Ended`,value:e.end_reason===null?`not yet`:e.end_reason.replace(/_/g,` `)}),(0,j.jsx)(MC,{size:`fact`,label:`Cost`,value:fE(e.cost?.usd)}),(0,j.jsx)(MC,{size:`fact`,label:`Turns · events`,value:`${e.turns.length} · ${t}`})]})})}function r1({state:e}){return(0,j.jsxs)(H,{pad:!0,children:[(0,j.jsx)(`div`,{className:`over-outcome-label`,children:`Outcome`}),(0,j.jsx)(`div`,{className:`over-outcome`,children:e.outcome??(e.end_reason===null?`The call is still going.`:`The call left no outcome sentence.`)})]})}function i1({cost:e}){return(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Cost`,children:(0,j.jsx)(`span`,{className:`over-total`,children:fE(e.usd)})}),(0,j.jsx)(`div`,{children:e.rows.map((e,t)=>(0,j.jsxs)(`div`,{className:`over-cost`,children:[(0,j.jsxs)(`span`,{className:`over-cost-model`,children:[e.model,` `,(0,j.jsxs)(`span`,{className:`over-cost-kind`,children:[`· `,e.unit.replace(/_/g,` `)]})]}),(0,j.jsx)(`span`,{className:`over-cost-units`,children:a1(e.quantity)}),(0,j.jsx)(`span`,{className:`over-cost-usd`,children:fE(e.usd)})]},`${t}/${e.provider}/${e.model}/${e.unit}`))}),e.unpriced.length>0&&(0,j.jsxs)(`div`,{className:`over-note`,children:[`unpriced: `,e.unpriced.map(e=>`${e.provider}/${e.model}`).join(`, `)]})]})}function a1(e){let[t,n]=String(Math.round(e*100)/100).split(`.`),r=(t??``).replace(/\B(?=(\d{3})+(?!\d))/g,` `);return n===void 0?r:`${r}.${n}`}function o1(e){let t=e?.recording;return typeof t==`string`&&t!==``?t:null}function s1({call:e,onNothing:t}){let n=M(),[r,i]=(0,O.useState)(null),[a,o]=(0,O.useState)(null);return(0,O.useEffect)(()=>{let r=null,a=!1;return(async()=>{try{let o=await fetch(da(n,`/v1/calls/${e}/recording`),{headers:ia(n)});if(o.status===404&&t!==void 0){a||t();return}if(!o.ok)throw Error(await u1(o));r=URL.createObjectURL(await o.blob()),a?URL.revokeObjectURL(r):i(r)}catch(e){a||o(e instanceof Error?e.message:String(e))}})(),()=>{a=!0,r!==null&&URL.revokeObjectURL(r)}},[e,n,t]),a===null?r===null?(0,j.jsx)(`p`,{className:`over-tape-note`,children:`Reading the recording…`}):(0,j.jsx)(c1,{src:r}):(0,j.jsx)(`p`,{className:`over-tape-note`,children:a})}function c1({src:e}){let t=(0,O.useRef)(null),[n,r]=(0,O.useState)(!1),[i,a]=(0,O.useState)(0),[o,s]=(0,O.useState)(0);return(0,j.jsxs)(`div`,{className:`over-tape`,children:[(0,j.jsx)(`audio`,{ref:t,src:e,preload:`metadata`,onPlay:()=>r(!0),onPause:()=>r(!1),onEnded:()=>r(!1),onTimeUpdate:e=>a(e.currentTarget.currentTime),onLoadedMetadata:e=>s(Number.isFinite(e.currentTarget.duration)?e.currentTarget.duration:0)}),(0,j.jsx)(`button`,{type:`button`,className:`over-tape-play`,onClick:()=>{let e=t.current;e!==null&&(e.paused?e.play():e.pause())},"aria-label":n?`Pause the recording`:`Play the recording`,children:n?`❚❚`:`▶`}),(0,j.jsx)(`span`,{className:`over-tape-time`,children:l1(i)}),(0,j.jsx)(`input`,{className:`over-tape-bar`,type:`range`,min:0,max:o||1,step:.1,value:i,"aria-label":`Where in the recording`,style:{"--played":`${o>0?i/o*100:0}%`},onChange:e=>{let n=t.current;n!==null&&(n.currentTime=Number(e.target.value))}}),(0,j.jsx)(`span`,{className:`over-tape-time`,children:l1(o)})]})}function l1(e){let t=Math.floor(e);return`${Math.floor(t/60)}:${String(t%60).padStart(2,`0`)}`}async function u1(e){try{let t=(await e.json()).detail;if(typeof t==`string`)return t}catch{}return`the recording answered ${e.status}`}var d1={held:`green`,broken:`red`,deferred:`amber`,skipped:`muted`};function f1(e){let t=[...e].reverse().find(e=>e.type===GD);return t===void 0?null:ND.parse(t.data)}function p1({call:e,base:t,score:n,turns:r,ended:i}){let[a,o]=(0,O.useState)(null),s=a??n;return(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Score`,meta:s!==null&&s.passed!=null?`${g1(s)} of ${s.judges.length} held`:void 0}),(0,j.jsx)(`div`,{className:`ui-card-body`,children:s===null?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`div`,{className:`over-standing over-standing-amber`,children:`Not scored yet`}),(0,j.jsxs)(`p`,{className:`over-sentence`,children:[`The call is still running, or its log was sealed before the judges existed. Ask for one with`,` `,(0,j.jsxs)(`span`,{className:`ui-fixed`,children:[`pinecall eval `,e]}),`.`]}),i&&(0,j.jsx)(v1,{call:e,onJudged:o})]}):s.passed==null?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`div`,{className:`over-standing over-standing-amber`,children:`No judge was given to this session`}),h1(s.not_judged)&&(0,j.jsx)(`p`,{className:`over-sentence`,children:s.not_judged}),(0,j.jsx)(`p`,{className:`over-sentence`,children:_1(s,r)}),i&&(0,j.jsx)(v1,{call:e,onJudged:o})]}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`div`,{className:s.passed?`over-standing over-standing-green`:`over-standing over-standing-red`,children:s.passed?`Passed`:`Did not pass`}),(0,j.jsxs)(`div`,{className:`over-judges`,children:[s.judges.map(n=>(0,j.jsx)(m1,{base:t,call:e,judgment:n},n.name)),(s.panel??[]).filter(e=>!s.judges.some(t=>t.name===e)).map(e=>(0,j.jsxs)(`div`,{className:`over-judge`,children:[(0,j.jsxs)(`div`,{className:`over-judge-line`,children:[(0,j.jsx)(`span`,{className:`over-judge-name`,children:e}),(0,j.jsx)(xC,{tone:`muted`,children:`on the panel`})]}),(0,j.jsx)(`div`,{className:`over-judge-reason`,children:`Was run over this call and answered nothing.`})]},e))]}),(0,j.jsx)(`p`,{className:`over-sentence`,children:_1(s,r)})]})})]})}function m1({base:e,call:t,judgment:n}){return(0,j.jsxs)(`div`,{className:`over-judge`,children:[(0,j.jsxs)(`div`,{className:`over-judge-line`,children:[(0,j.jsx)(`span`,{className:`over-judge-name`,children:n.name}),(0,j.jsx)(xC,{tone:d1[n.verdict]??`muted`,children:n.verdict}),n.evidence.seqs.map(n=>(0,j.jsxs)(Wi,{className:`over-seq`,to:`${e}/${t}#seq-${n}`,children:[`seq `,n]},n))]}),(0,j.jsxs)(`div`,{className:`over-judge-reason`,children:[n.reason,n.evidence.said!=null&&(0,j.jsxs)(`span`,{className:`over-judge-said`,children:[` “`,n.evidence.said,`”`]})]})]})}function h1(e){return e!=null&&e.trim().toLowerCase()!==`no judge was given to this session`}function g1(e){return e.judges.filter(e=>e.verdict===`held`).length}function _1(e,t){let n=`${t===1?`One turn`:`${t} turns`} replayed from the log`;return e.judge_calls===0?`${n}; the hard policies alone, and they cost nothing.`:`${n}; ${e.judge_calls} judge call${e.judge_calls===1?``:`s`} for ${fE(e.judge_cost_usd)}.`}function v1({call:e,onJudged:t}){let n=M(),r=rw(),[i,a]=(0,O.useState)(!1),[o,s]=(0,O.useState)(null);if(r!==null&&!r.includes(`evals`))return null;let c=async()=>{a(!0),s(null);try{t(ND.parse(await la(n,`/v1/evals/judge/${encodeURIComponent(e)}`,{})))}catch(e){s(e instanceof na?e.message:String(e))}finally{a(!1)}};return(0,j.jsxs)(`div`,{className:`over-attach`,children:[(0,j.jsx)(W,{size:`md`,disabled:i,onClick:()=>void c(),children:i?`Judging…`:`Attach a judge`}),o!==null&&(0,j.jsx)(`p`,{className:`over-sentence over-refused-line`,children:o})]})}var y1={llm_node_ttft:`LLM first token`,e2e_latency:`End to end`,tts_node_ttfb:`Speech starts`,transcription_delay:`Transcription`,end_of_turn_delay:`End of turn`,dead_air:`Silence before a reply`,talk_share:`Agent talks`},b1=[`llm_node_ttft`,`e2e_latency`];function x1({rows:e}){let t=[...e.filter(e=>b1.includes(e.name)).sort((e,t)=>b1.indexOf(e.name)-b1.indexOf(t.name)),...e.filter(e=>!b1.includes(e.name))];return(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Latency across this call`}),t.length===0?(0,j.jsx)(`p`,{className:`over-sentence over-latency-none`,children:`No turn in this session carried a metric — a chat session times nothing, and a voice call that dropped before its first answer has nothing to time.`}):(0,j.jsx)(`div`,{className:`over-latency`,children:t.map(e=>(0,j.jsxs)(`div`,{title:e.name===`talk_share`?`${e.name} · of the time anybody spoke`:`${e.name} · median over ${e.turns} ${e.turns===1?`turn`:`turns`}`,children:[(0,j.jsx)(`div`,{className:`over-latency-label`,children:y1[e.name]??e.name}),(0,j.jsx)(`div`,{className:`over-latency-value`,children:gM(e.name,e.seconds)}),e.name!==`talk_share`&&(0,j.jsxs)(`div`,{className:`over-latency-max`,children:[`max `,gM(e.name,e.max)]})]},e.name))})]})}var S1=[`caller`,`eou`,`llm`,`tool`,`voice`,`agent`];function C1(e,t){let n=t.started_at??e[0]?.ts??0,r=e=>e-n,i=[],a=(e,t)=>{t!==null&&i.push({speech:e??``,bar:t})};t.turns.forEach((e,t)=>a(e.speech_id,T1(e,t,r))),t.metrics.eou.forEach((e,t)=>{let n=w1(e.timestamp,e.end_of_utterance_delay+e.on_user_turn_completed_delay);a(e.speech_id,{id:`eou-${String(t)}`,kind:`eou`,label:`end of turn`,from:r(n.from),to:r(n.to),tick:r(n.from+e.transcription_delay),cut:!1,behind:{kind:`block`,block:`eou`,at:e}})}),t.metrics.llm.forEach((e,t)=>{let n=w1(e.timestamp,e.duration);a(e.speech_id,{id:`llm-${String(t)}`,kind:`llm`,label:e.metadata?.model_name??`llm`,from:r(n.from),to:r(n.to),tick:e.ttft<0?null:r(n.from+e.ttft),cut:e.cancelled,behind:{kind:`block`,block:`llm`,at:e}})}),t.metrics.tts.forEach((e,t)=>{let n=w1(e.timestamp,e.duration);a(e.speech_id,{id:`voice-${String(t)}`,kind:`voice`,label:`voice`,from:r(n.from),to:r(n.to),tick:e.ttfb<0?null:r(n.from+e.ttfb),cut:e.cancelled,behind:{kind:`block`,block:`tts`,at:e}})});let o=new Map(e.map(e=>[e.seq,e.ts]));for(let e of t.tools)a(e.speech_id,E1(e,o.get(e.seq),r));return{span:Math.max(0,...i.map(({bar:e})=>e.to),r(e.at(-1)?.ts??n)),rows:D1(i,t.turns)}}function w1(e,t){return{from:e-t,to:e}}function T1(e,t,n){let r=e.metrics.started_speaking_at,i=e.metrics.stopped_speaking_at;return typeof r!=`number`||typeof i!=`number`?null:{id:`turn-${String(t)}`,kind:e.role===`user`?`caller`:`agent`,label:e.role===`user`?`caller`:`agent`,from:n(r),to:n(i),tick:null,cut:e.role===`agent`&&e.interrupted,behind:{kind:`turn`,turn:e}}}function E1(e,t,n){return t===void 0?null:{id:`tool-${e.call_id}`,kind:`tool`,label:e.name,from:n(t),to:n(t+(e.duration_s??0)),tick:null,cut:e.status===`failed`,behind:{kind:`tool`,run:e}}}function D1(e,t){let n=new Map;for(let{speech:t,bar:r}of e)n.set(t,[...n.get(t)??[],r]);return[...n.entries()].map(([e,n])=>({speech:e,said:O1(t,e),bars:[...n].sort((e,t)=>e.from-t.from||S1.indexOf(e.kind)-S1.indexOf(t.kind))})).sort((e,t)=>(e.bars[0]?.from??0)-(t.bars[0]?.from??0))}function O1(e,t){let n=e.filter(e=>e.speech_id===t);return(n.find(e=>e.role===`user`)??n[0])?.text??null}var k1=[`before`,`caller`,`agent`,`both`,`on_the_agent`,`tool`,`on_the_caller`,`person`];function A1(e,t){if(t.started_at===null||t.ended_at===null)return null;let n=t.ended_at-t.started_at;return N1(C1(e,t),n,M1(e,t.started_at,n))}var j1=new Set([`supervisor.took_over`,`supervisor.released`,`call.transferred`]);function M1(e,t,n){let r=[],i=null;for(let a of e.filter(e=>j1.has(e.type))){let e=a.ts-t,o=JD(a);if(o.type===`supervisor.took_over`&&i===null&&(i=e),o.type===`supervisor.released`&&i!==null&&(r.push({from:i,to:e}),i=null),o.type===`call.transferred`&&o.data.ok)return r.push({from:i??e,to:n}),r}return i!==null&&r.push({from:i,to:n}),r}function N1(e,t,n){let r=e.rows.flatMap(e=>e.bars),i=r.filter(e=>e.kind===`caller`||e.kind===`agent`).map(e=>I1(e,t)).filter(e=>e.to>e.from);if(i.length===0||t<=0)return null;let a=r.filter(e=>e.kind===`tool`).map(e=>I1(e,t)).filter(e=>e.to>e.from),o=n.map(e=>I1(e,t)).filter(e=>e.to>e.from),s=[...new Set([0,t,...[...i,...a,...o].flatMap(e=>[e.from,e.to])])].sort((e,t)=>e-t),c=new Map;return s.slice(1).forEach((e,t)=>{let n=s[t]??e,r=(n+e)/2,l=o.some(e=>e.from<=r&&r<e.to)?`person`:P1(r,n,i,a);c.set(l,(c.get(l)??0)+(e-n))}),{length:t,parts:k1.filter(e=>c.has(e)).map(e=>({kind:e,seconds:c.get(e)??0}))}}function P1(e,t,n,r){let i=t=>t.from<=e&&e<t.to,a=n.some(e=>e.kind===`caller`&&i(e)),o=n.some(e=>e.kind===`agent`&&i(e));if(a&&o)return`both`;if(a)return`caller`;if(o)return`agent`;if(r.some(i))return`tool`;let s=F1(n,t);return s===null?`before`:s===`caller`?`on_the_agent`:`on_the_caller`}function F1(e,t){let n=null;for(let r of e)r.to<=t&&(n===null||r.to>n.to)&&(n=r);return n?.kind??null}function I1(e,t){return{...e,from:Math.max(0,e.from),to:Math.min(t,e.to)}}var L1={before:{name:`Before the first word`,means:`From the call's start until anybody spoke`},caller:{name:`Caller speaking`,means:`The caller alone`},agent:{name:`Agent speaking`,means:`The agent alone`},both:{name:`Both at once`,means:`Talking over each other: an interruption, or a word of agreement`},on_the_agent:{name:`Waiting on the agent`,means:`Silence after the caller spoke, while no tool ran`},tool:{name:`Waiting on a tool`,means:`Silence while a tool ran`},on_the_caller:{name:`Waiting on the caller`,means:`Silence after the agent spoke`},person:{name:`With a person`,means:`After a transfer, or while a supervisor held the line: the agent was out of it`}};function R1({spent:e}){return(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Where the time went`,meta:_M(e.length)}),(0,j.jsxs)(`div`,{className:`over-spent`,children:[(0,j.jsx)(`div`,{className:`over-spent-bar`,role:`img`,"aria-label":`the call's time, part by part`,children:e.parts.map(e=>(0,j.jsx)(`span`,{className:`over-spent-part over-spent-${e.kind}`,style:{flexGrow:e.seconds},title:L1[e.kind].name},e.kind))}),e.parts.map(t=>(0,j.jsxs)(`div`,{className:`over-spent-row`,title:L1[t.kind].means,children:[(0,j.jsx)(`span`,{className:`over-spent-swatch over-spent-${t.kind}`,"aria-hidden":!0}),(0,j.jsx)(`span`,{className:`over-spent-name`,children:L1[t.kind].name}),(0,j.jsx)(`span`,{className:`over-spent-seconds`,children:_M(t.seconds)}),(0,j.jsx)(`span`,{className:`over-spent-share`,children:SE(t.seconds/e.length)})]},t.kind))]})]})}function z1({prompt:e,cost:t}){let n=Object.entries(e);return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(Nh,{ruled:!0,children:`Prompt`}),(0,j.jsxs)(`div`,{className:`call-pane-body call-pane-body-tight`,children:[n.length===0&&(0,j.jsx)(`div`,{className:`call-sub`,children:`The app has written no block yet.`}),n.map(([e,t])=>(0,j.jsxs)(`div`,{className:`call-prompt-row`,children:[(0,j.jsx)(`span`,{className:`call-prompt-name`,children:e}),(0,j.jsx)(`span`,{className:`call-prompt-hash`,title:t.hash,children:t.hash.slice(0,8)}),(0,j.jsxs)(`span`,{className:`call-prompt-chars`,children:[t.chars.toLocaleString(`en`).replace(/,/g,` `),` chars`]})]},e)),t!==null&&(0,j.jsx)(Ph,{label:`cost so far`,children:fE(t.usd)})]})]})}function B1({room:e,from:t,over:n}){return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(Nh,{ruled:!0,children:`Room`}),e===null?(0,j.jsx)(`div`,{className:`call-pane-text`,children:`No room: this session carries no media.`}):(0,j.jsxs)(`div`,{className:`call-pane-text`,children:[n?`Audio room closed`:`Audio room open`,` · `,e.participants.length,` `,e.participants.length===1?`participant`:`participants`,t!==null&&(0,j.jsxs)(j.Fragment,{children:[` · rang from `,t]}),(0,j.jsx)(`ul`,{className:`call-people`,children:e.participants.map(e=>(0,j.jsx)(`li`,{className:`call-person`,children:(0,j.jsxs)(`details`,{children:[(0,j.jsxs)(`summary`,{children:[(0,j.jsx)(CC,{tone:e.speaking?`green`:void 0,small:!0}),(0,j.jsx)(`span`,{children:e.name??e.identity}),(0,j.jsx)(`span`,{className:`call-person-kind`,children:e.kind})]}),(0,j.jsx)(`pre`,{className:`call-data`,children:JSON.stringify(e.attributes,null,2)})]})},e.identity))})]})]})}var V1=`***`,H1=`tenant`;function U1({fields:e,declared:t}){let n=Object.keys(e).sort();return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(Nh,{children:`State`}),n.length===0?(0,j.jsx)(`div`,{className:`call-pane-text`,children:`The app has declared no state yet.`}):(0,j.jsx)(`div`,{className:`call-pane-body`,children:n.map(n=>{let r=W1(e[n],t[n]);return(0,j.jsxs)(Ph,{label:n,children:[G1(e[n]),r!==H1&&(0,j.jsx)(`span`,{className:r===`pii`?`call-seen call-seen-pii`:`call-seen`,children:r})]},n)})})]})}function W1(e,t){return e===V1?`pii`:t===`public`?`public`:H1}function G1(e){return typeof e==`string`?e:JSON.stringify(e)}var K1=80;function q1({entries:e,state:t,after:n}){let r=(0,O.useRef)(null),i=(0,O.useRef)(!0),a=t.live.agent;return(0,O.useEffect)(()=>{let e=r.current;e!==null&&i.current&&(e.scrollTop=e.scrollHeight)},[e,t.live.user,a]),(0,j.jsx)(`div`,{className:`call-chat`,ref:r,onScroll:e=>{let t=e.currentTarget;i.current=t.scrollHeight-t.scrollTop-t.clientHeight<K1},children:(0,j.jsxs)(`div`,{className:`call-chat-column`,children:[dN(e,t).map(e=>{switch(e.kind){case`turn`:return(0,j.jsx)(J1,{who:e.turn.role===`agent`?`agent`:`caller`,text:e.turn.text},`t-${e.seq}`);case`tool`:return(0,j.jsxs)(`div`,{className:`call-chat-tool`,children:[(0,j.jsx)(`span`,{className:`call-chat-tool-name`,children:e.run.name}),(0,j.jsx)(`span`,{className:e.run.status===`failed`?`call-chat-tool-bad`:e.run.status===`running`?`call-chat-tool-running`:`call-chat-tool-ok`,children:e.run.status===`failed`?`✗ failed`:e.run.status===`running`?`running…`:`✓`})]},`x-${e.seq}`);case`supervisor`:case`line`:return(0,j.jsx)(`div`,{className:`call-chat-note`,children:e.mark.said},`m-${e.seq}`);default:return null}}),t.live.user!==null&&(0,j.jsx)(J1,{who:`caller`,text:t.live.user,unsettled:!0}),a!==null&&(0,j.jsx)(J1,{who:`agent`,text:a,unsettled:!0}),n]})})}function J1({who:e,text:t,unsettled:n=!1}){let r=[`call-chat-bubble`,e===`caller`?`call-chat-caller`:`call-chat-agent`];return n&&r.push(`call-chat-unsettled`),(0,j.jsx)(`div`,{className:e===`caller`?`call-chat-line call-chat-line-caller`:`call-chat-line`,children:(0,j.jsx)(`p`,{className:r.join(` `),children:t})})}function Y1({seq:e,kind:t,tone:n,who:r,said:i,note:a=[],children:o}){let s=a.filter(e=>e!=null&&e!==``),c=(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`span`,{className:`call-seq`,children:e}),(0,j.jsx)(`span`,{className:`call-kind call-kind-${n}`,children:t}),(0,j.jsxs)(`span`,{className:n===`turn`?`call-text call-text-turn`:n===`quiet`?`call-text call-text-quiet`:`call-text`,children:[r!==void 0&&(0,j.jsx)(`span`,{className:r===`agent`?`call-who call-who-agent`:`call-who`,children:r}),i,s.length>0&&(0,j.jsx)(`span`,{className:`call-note`,children:s.map((e,t)=>(0,j.jsxs)(`span`,{children:[t>0&&` · `,e]},t))})]})]}),l=`call-row call-${n}`;return o==null||o===!1?(0,j.jsx)(`div`,{className:l,children:(0,j.jsx)(`div`,{className:`call-line`,children:c})}):(0,j.jsxs)(`details`,{className:l,children:[(0,j.jsx)(`summary`,{className:`call-line`,children:c}),(0,j.jsx)(`div`,{className:`call-more`,children:o})]})}function X1({ops:e,seq:t}){return(0,j.jsx)(Q1,{kind:`memory`,said:M$(e),lines:N$(e),seq:t})}function Z1({sources:e,seq:t}){return(0,j.jsx)(Q1,{kind:`sources`,said:P$(e),lines:F$(e),seq:t})}function Q1({kind:e,said:t,lines:n,seq:r}){return(0,j.jsx)(Y1,{seq:r,kind:e,tone:`lookup`,said:t,children:(0,j.jsx)(`ul`,{className:`call-list`,children:n.map(e=>(0,j.jsx)(`li`,{children:e},e))})})}function $1({changed:e,cause:t,seq:n}){return(0,j.jsx)(Y1,{seq:n,kind:`state`,tone:`state`,said:`${e.join(`, `)} ← ${a0(t)}`})}function e0({mark:e,seq:t}){return(0,j.jsx)(Y1,{seq:t,kind:`supervisor`,tone:`supervisor`,said:e.said,note:[e.by]})}function t0({mark:e,seq:t}){return(0,j.jsx)(Y1,{seq:t,kind:`line`,tone:`handing`,said:e.said,note:[e.note]})}function n0({confirm:e,seq:t}){let n=[{field:`tool`,value:e.tool,unit:null},{field:`audience`,value:e.audience,unit:null},...e.said==null?[]:[{field:`said`,value:e.said,unit:null}],...e.reason==null?[]:[{field:`reason`,value:e.reason,unit:null}]];return(0,j.jsx)(Y1,{seq:t,kind:`confirm`,tone:`confirm`,said:e.phrase,note:[e.status],children:(0,j.jsx)(ZJ,{rows:n})})}function r0({name:e,source:t,data:n,seq:r}){return(0,j.jsx)(Y1,{seq:r,kind:`event`,tone:`event`,said:e,note:[t],children:(0,j.jsx)(`pre`,{className:`call-data`,children:JSON.stringify(n,null,2)})})}function i0({entries:e}){return(0,j.jsx)(Y1,{seq:e[0]?.seq,kind:`quiet`,tone:`quiet`,said:e.length===1?`1 entry`:`${e.length} entries`,children:(0,j.jsx)(`ul`,{className:`call-list`,children:e.map(e=>(0,j.jsxs)(`li`,{children:[e.seq,` `,e.type]},`${String(e.seq)}-${e.type}`))})})}function a0(e){return e===null?`the app`:e.kind===`tool`?e.tool:`${e.name} (seq ${String(e.seq)})`}function o0({run:e,seq:t}){return(0,j.jsx)(Y1,{seq:t,kind:`tool`,tone:`tool`,said:`${e.name}(${l0(e)})`,note:[(0,j.jsx)(`span`,{className:e.status===`failed`?`call-failed`:``,children:u0(e)})],children:(0,j.jsx)(ZJ,{rows:s0(e)})})}function s0(e){return[{field:`arguments`,value:JSON.stringify(e.arguments,null,2),unit:null},...c0(e.output)?[{field:`output`,value:JSON.stringify(e.output,null,2),unit:null}]:[],...c0(e.error)?[{field:`error`,value:e.error,unit:null}]:[],...c0(e.duration_s)?[{field:`duration_s`,value:_M(e.duration_s),unit:null}]:[]]}function c0(e){return e!=null}function l0(e){return Object.entries(e.arguments).map(([e,t])=>`${e}=${d0(t)}`).join(`, `)}function u0(e){return e.status===`running`?`…`:e.error??e.summary??d0(e.output)}function d0(e){let t=typeof e==`string`?e:JSON.stringify(e);return t===void 0?``:t.slice(0,60)}var f0={transcription_delay:`stt`,end_of_turn_delay:`eot`,llm_node_ttft:`ttft`,tts_node_ttfb:`ttfb`,e2e_latency:`e2e`};function p0({turn:e,seq:t,metrics:n,terse:r=!1}){let i=bM(n,e.speech_id),a=pM(e).map(e=>`${f0[e.field]??e.field} ${e.value}`),o=e.role===`agent`&&e.interrupted?[`interrupted`]:[],s=e.role===`user`&&e.language!==void 0&&e.language!==null?[e.language]:[],c=r?o:e.role===`user`?[...a,e.speech_id,...s]:[...a,...o];return(0,j.jsx)(Y1,{seq:t,kind:`turn`,tone:`turn`,who:e.role===`agent`?`agent`:`caller`,said:e.text,note:c,children:r||i.length===0?null:i.map((e,t)=>(0,j.jsxs)(`section`,{children:[(0,j.jsxs)(`h4`,{className:`call-block-name`,children:[`metrics.`,e.kind]}),(0,j.jsx)(ZJ,{rows:e.readings})]},`${e.kind}-${String(t)}`))})}var m0=80,h0=[`turn`,`tool`,`confirm`,`event`,`supervisor`,`line`];function g0({entries:e,state:t,after:n,terse:r=!1}){let i=t.live.agent,a=(0,O.useRef)(null),o=(0,O.useRef)(!0);return(0,O.useEffect)(()=>{let e=a.current;e!==null&&o.current&&(e.scrollTop=e.scrollHeight)},[e,t.live.user,i]),(0,j.jsxs)(`div`,{className:`call-rows`,ref:a,onScroll:e=>{let t=e.currentTarget;o.current=t.scrollHeight-t.scrollTop-t.clientHeight<m0},children:[dN(e,t).filter(e=>!r||h0.includes(e.kind)).map(e=>(0,j.jsx)(_0,{row:e,state:t,terse:r},`${e.kind}-${String(e.seq)}`)),(0,j.jsx)(v0,{said:t.live.user,who:`caller`}),(0,j.jsx)(v0,{said:i,who:`agent`}),n]})}function _0({row:e,state:t,terse:n}){switch(e.kind){case`turn`:return(0,j.jsx)(p0,{turn:e.turn,seq:e.seq,metrics:t.metrics,terse:n});case`tool`:return(0,j.jsx)(o0,{run:e.run,seq:e.seq});case`state`:return(0,j.jsx)($1,{changed:e.changed,cause:e.cause,seq:e.seq});case`confirm`:return(0,j.jsx)(n0,{confirm:e.confirm,seq:e.seq});case`event`:return(0,j.jsx)(r0,{name:e.name,source:e.source,data:e.data,seq:e.seq});case`supervisor`:return(0,j.jsx)(e0,{mark:e.mark,seq:e.seq});case`line`:return(0,j.jsx)(t0,{mark:e.mark,seq:e.seq});case`memory`:return(0,j.jsx)(X1,{ops:e.ops,seq:e.seq});case`sources`:return(0,j.jsx)(Z1,{sources:e.sources,seq:e.seq});case`quiet`:return(0,j.jsx)(i0,{entries:e.entries})}}function v0({said:e,who:t}){if(e===null)return null;let n=e.split(/\s+/).filter(e=>e!==``);return(0,j.jsx)(`div`,{className:`call-saying`,children:(0,j.jsx)(Y1,{seq:void 0,kind:`turn`,tone:`turn`,who:t,said:(0,j.jsxs)(j.Fragment,{children:[n.map((e,t)=>(0,j.jsxs)(`span`,{className:t===n.length-1?`call-word call-word-now`:`call-word`,children:[e,` `]},t)),(0,j.jsx)(`span`,{className:`call-caret`,"aria-hidden":!0})]})})})}function y0({bar:e,onClose:t}){let n=e.to-e.from;return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(Nh,{ruled:!0,children:[`Step `,(0,j.jsx)(Lh,{onClick:t,children:`close`})]}),(0,j.jsxs)(`div`,{className:`call-pane-body`,children:[(0,j.jsxs)(`div`,{className:`trace-step-head`,children:[(0,j.jsx)(`span`,{className:`trace-step-name`,children:e.label}),(0,j.jsxs)(`span`,{className:`trace-step-when`,children:[`at `,e.from.toFixed(2),` s`,n>0&&` · ${_M(n)}`,e.cut&&(e.kind===`tool`?` · failed`:e.kind===`agent`?` · interrupted`:` · cancelled`)]})]}),(0,j.jsx)(b0,{behind:e.behind})]})]})}function b0({behind:e}){switch(e.kind){case`block`:return(0,j.jsx)(ZJ,{rows:mM(e.at,hM().get(e.block))});case`tool`:return(0,j.jsx)(ZJ,{rows:s0(e.run)});case`turn`:return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`p`,{className:`trace-step-said`,children:e.turn.text}),(0,j.jsx)(ZJ,{rows:pM(e.turn)})]})}}var x0=24,S0=5,C0=80;function w0({trace:e,picked:t,onPick:n,after:r}){let i=(0,O.useRef)(null),a=(0,O.useRef)(!0),o=Math.max(e.span,1);(0,O.useEffect)(()=>{let e=i.current;e!==null&&a.current&&(e.scrollTop=e.scrollHeight,e.scrollLeft=e.scrollWidth)},[e]);let s={"--trace-width":`${String(Math.ceil(o*x0))}px`};return(0,j.jsxs)(`div`,{className:`trace`,ref:i,onScroll:e=>{let t=e.currentTarget;a.current=t.scrollHeight-t.scrollTop-t.clientHeight<C0&&t.scrollWidth-t.scrollLeft-t.clientWidth<C0},children:[e.rows.length===0?(0,j.jsx)(`div`,{className:`trace-nothing`,children:`Nothing measured yet: the first turn fills this in.`}):(0,j.jsxs)(`div`,{className:`trace-sheet`,style:s,children:[(0,j.jsx)(T0,{span:o}),e.rows.map(e=>(0,j.jsxs)(`section`,{className:`trace-exchange`,children:[(0,j.jsx)(`div`,{className:`trace-said`,children:e.said??`—`}),e.bars.map(e=>(0,j.jsx)(E0,{bar:e,span:o,picked:e.id===t,onPick:()=>n(e.id===t?null:e.id)},e.id))]},e.speech))]}),r]})}function T0({span:e}){let t=Array.from({length:Math.floor(e/S0)+1},(e,t)=>t*S0);return(0,j.jsxs)(`div`,{className:`trace-line trace-axis`,children:[(0,j.jsx)(`span`,{className:`trace-name`}),(0,j.jsx)(`span`,{className:`trace-lane`,children:t.map(t=>(0,j.jsxs)(`span`,{className:`trace-mark`,style:{left:D0(t,e)},children:[t,` s`]},t))})]})}function E0({bar:e,span:t,picked:n,onPick:r}){let i=e.to-e.from,a=i>0?_M(i):``;return(0,j.jsxs)(`div`,{className:n?`trace-line trace-picked`:`trace-line`,children:[(0,j.jsx)(`span`,{className:`trace-name`,title:e.label,children:e.label}),(0,j.jsxs)(`span`,{className:`trace-lane`,children:[(0,j.jsx)(`button`,{type:`button`,className:`trace-bar trace-${e.kind}${e.cut?` trace-cut`:``}`,style:{left:D0(e.from,t),width:`max(3px, ${D0(i,t)})`},title:`${e.label} · ${a===``?`no length measured`:a}`,"aria-pressed":n,onClick:r}),e.tick!==null&&(0,j.jsx)(`span`,{className:`trace-tick`,style:{left:D0(e.tick,t)},"aria-hidden":!0}),(0,j.jsx)(`span`,{className:`trace-took`,style:{left:`calc(${D0(e.to,t)} + 6px)`},children:a})]})]})}function D0(e,t){return`${String(e/t*100)}%`}function O0({call:e,agent:t,supervised:n=!0,name:r,beside:i,foot:a,aside:o}){let s=YM(e),c=s.state,l=VN(c.agent),u=rw(),d=c.status===`ended`,f=o1(N0(s.entries)),p=nE(c),m=n&&(u===null||u.includes(`supervise`)),h=(0,O.useMemo)(()=>({latencies:SM(s.entries),score:f1(s.entries),spent:A1(s.entries,c)}),[s.entries,c]),g=WC({name:`call.pane`,initial:360,min:280,max:640,side:`right`}),[_,v]=(0,O.useState)(()=>VC()??`chat`),y=e=>{v(e),HC(e)},b=(0,O.useMemo)(()=>_===`trace`?C1(s.entries,c):null,[_,s.entries,c]),[x,S]=(0,O.useState)(null),C=b?.rows.flatMap(e=>e.bars).find(e=>e.id===x),w=(0,j.jsxs)(j.Fragment,{children:[f!==null&&(0,j.jsx)(P0,{call:e}),d&&(0,j.jsx)(`div`,{className:`call-foot`,children:(0,j.jsx)(t1,{state:c,entries:s.entries,beside:(0,j.jsx)(c$,{agent:c.agent||t||``,call:e,number:(c.direction===`outbound`?c.to:c.from)??null})})})]});return(0,j.jsxs)(`div`,{className:`call`,style:g.style,children:[g.handle,(0,j.jsxs)(`div`,{className:`call-middle`,children:[(0,j.jsxs)(A0,{call:e,agent:t,name:r,state:c,connection:s.connection,failed:s.error,children:[(0,j.jsx)(`span`,{className:`call-view`,role:`group`,"aria-label":`how the call is read`,children:[`chat`,`transcript`,`log`,`trace`].map(e=>(0,j.jsx)(`button`,{type:`button`,className:_===e?`call-view-one call-view-on`:`call-view-one`,onClick:()=>y(e),children:k0[e]},e))}),i?.(d)]}),_===`chat`?(0,j.jsx)(q1,{entries:s.entries,state:c,after:w}):b===null?(0,j.jsx)(g0,{entries:s.entries,state:c,terse:_===`transcript`,after:w}):(0,j.jsx)(w0,{trace:b,picked:x,onPick:S,after:w}),a]}),(0,j.jsxs)(`aside`,{className:`call-pane`,"aria-label":`what the call holds`,children:[C!==void 0&&(0,j.jsx)(y0,{bar:C,onClose:()=>S(null)}),!d&&m&&(0,j.jsx)(GJ,{call:e,live:!0,spoken:p,asked:c.attention??null}),d&&(0,j.jsxs)(`div`,{className:`call-over`,children:[(0,j.jsx)(r1,{state:c}),(0,j.jsx)(p1,{call:e,base:`/calls/${e}`,score:h.score,turns:c.turns.length,ended:!0}),(0,j.jsx)(x1,{rows:h.latencies}),h.spent!==null&&(0,j.jsx)(R1,{spent:h.spent}),c.cost!==null&&c.cost.rows.length>0&&(0,j.jsx)(i1,{cost:c.cost}),(0,j.jsx)(n1,{state:c,events:s.entries.length})]}),(0,j.jsx)(U1,{fields:c.app_state,declared:l}),(0,j.jsx)(B1,{room:c.room,from:c.from,over:d}),(0,j.jsx)(z1,{prompt:c.prompt,cost:c.cost}),(0,j.jsx)($J,{metrics:c.metrics,entries:s.entries}),o]})]})}var k0={chat:`Chat`,transcript:`Transcript`,log:`Log`,trace:`Trace`};function A0({call:e,agent:t,name:n,state:r,connection:i,failed:a,children:o}){let s=M0(r.status!==`ended`),c=r.status===`ended`,l=r.direction===`outbound`?r.to:r.from,u=n??r.caller?.name??TE(l)??(l===null?`A caller`:j0(l)),d=!c&&r.attention?.status===`open`;return(0,j.jsxs)(`div`,{className:`call-head`,children:[(0,j.jsx)(DC,{name:u,size:36,round:!0,tint:d?`amber`:c?void 0:`green`}),(0,j.jsxs)(`div`,{className:`call-who`,children:[(0,j.jsxs)(`div`,{className:`call-who-line`,children:[(0,j.jsx)(`span`,{className:`call-who-name`,title:e,children:u}),d?(0,j.jsxs)(xC,{tone:`amber`,small:!0,children:[`wants a person · `,iE(r.started_at,s)]}):c?(0,j.jsx)(xC,{tone:`gray`,small:!0,children:(r.end_reason??`ended`).replace(/_/g,` `)}):(0,j.jsx)(xC,{tone:`green`,small:!0,children:r.status===`active`?`on a call · ${iE(r.started_at,s)}`:r.status})]}),(0,j.jsxs)(`div`,{className:`call-who-sub`,children:[[l!==null&&TE(l)===null&&j0(l)!==u?j0(l):null,r.channel,r.direction===`outbound`?`outbound`:null,r.agent||t||null].filter(e=>e!==null&&e!==``).join(` · `),a===null?!c&&i!==`live`&&(0,j.jsxs)(`span`,{className:`call-connection`,children:[` · `,i]}):(0,j.jsxs)(`span`,{className:`call-connection-bad`,children:[` · `,a]})]})]}),(0,j.jsx)(`div`,{className:`call-head-moves`,children:o})]})}function j0(e){return e.startsWith(`+`)?aE(e):e}function M0(e){let[t,n]=(0,O.useState)(()=>Date.now()/1e3);return(0,O.useEffect)(()=>{if(!e)return;let t=window.setInterval(()=>n(Date.now()/1e3),1e3);return()=>window.clearInterval(t)},[e]),t}function N0(e){return[...e].reverse().find(e=>e.type===`call.summary`)?.data}function P0({call:e}){let[t,n]=(0,O.useState)(!1),r=(0,O.useCallback)(()=>n(!0),[]);return t?null:(0,j.jsx)(`div`,{className:`call-recording`,children:(0,j.jsx)(s1,{call:e,onNothing:r})})}var F0={neutral:`gray`,good:`green`,warn:`amber`,bad:`red`};function I0({nodes:e}){return(0,j.jsx)(j.Fragment,{children:e.map((e,t)=>(0,j.jsx)(L0,{node:e},t))})}function L0({node:e}){switch(e.tag){case`panel`:return(0,j.jsxs)(`div`,{className:`ib-panel`,children:[e.title!==null&&(0,j.jsx)(Nh,{children:e.title}),(0,j.jsx)(I0,{nodes:e.children})]});case`rows`:return(0,j.jsx)(`div`,{className:`ib-panel-rows`,children:(0,j.jsx)(I0,{nodes:e.children})});case`row`:return(0,j.jsx)(Ph,{label:e.label,children:e.value});case`stat`:return(0,j.jsxs)(`div`,{className:`ib-panel-stat`,children:[(0,j.jsx)(`span`,{className:`ib-panel-stat-value`,children:e.value}),(0,j.jsx)(`span`,{className:`ib-panel-stat-label`,children:e.label})]});case`table`:return(0,j.jsx)(R0,{columns:e.columns,rows:e.rows});case`badge`:return(0,j.jsx)(`div`,{className:`ib-panel-badge`,children:(0,j.jsx)(xC,{tone:F0[e.tone],small:!0,children:e.text})});case`text`:return(0,j.jsx)(`p`,{className:`ib-panel-text`,children:e.text})}}function R0({columns:e,rows:t}){if(t.length===0)return(0,j.jsx)(`p`,{className:`ib-panel-text`,children:`—`});let n=`repeat(${String(Math.max(e.length,t[0]?.length??1))}, minmax(0, 1fr))`;return(0,j.jsxs)(`div`,{className:`ib-panel-table`,children:[e.length>0&&(0,j.jsx)(NC,{columns:n,labels:e,padding:`5px 2px`}),t.map((e,t)=>(0,j.jsx)(PC,{columns:n,padding:`6px 2px`,children:e.map((e,t)=>(0,j.jsx)(`span`,{className:`ui-clip`,children:e},t))},t))]})}function z0(e){let t={conversations:e.length,seconds:0,first:null,last:null,channels:[],held:0,judged:0,flags:[],live:!1};for(let n of e){n.started_at!==null&&n.ended_at!==null&&(t.seconds+=Math.max(0,n.ended_at-n.started_at)),n.started_at!==null&&(t.first=t.first===null?n.started_at:Math.min(t.first,n.started_at),t.last=t.last===null?n.started_at:Math.max(t.last,n.started_at)),n.channel!==null&&!t.channels.includes(n.channel)&&t.channels.push(n.channel),n.score!=null&&(t.held+=n.score.held,t.judged+=n.score.judged);for(let e of n.flags??[])t.flags.includes(e)||t.flags.push(e);n.status!==`ended`&&(t.live=!0)}return t}var B0={escalated:`a person took part`,low_score:`a judge broke`,promise:`a promise was made`};function V0(e){return B0[e]}var H0=$p(()=>Sp([z({tag:jp(`panel`),title:P().nullable(),children:R(H0)}),z({tag:jp(`rows`),children:R(H0)}),z({tag:jp(`row`),label:P(),value:P()}),z({tag:jp(`stat`),label:P(),value:P()}),z({tag:jp(`table`),columns:R(P()),rows:R(R(P()))}),z({tag:jp(`badge`),tone:V([`neutral`,`good`,`warn`,`bad`]),text:P()}),z({tag:jp(`text`),text:P()})])),U0=bp({name:P(),nodes:R(H0)}),W0=bp({view:P().nullish()});async function G0(e,t){return W0.parse(await A(e,`/v1/agents/${encodeURIComponent(t)}/config`)).view??null}async function K0(e,t,n,r){try{return U0.parse(await ON(e,t,`view.render`,{contact:n,call:r}))}catch(e){if(e instanceof na&&(e.status===404||e.status===405))return null;throw e}}function q0({agent:e,thread:t,name:n,shown:r,hrefOf:i}){let a=z0(t.lines);return(0,j.jsxs)(`div`,{className:`ib-aside`,"aria-label":`About ${n}`,children:[(0,j.jsx)(Y0,{agent:e,contact:t.contact,call:t.latest.call}),(0,j.jsx)(Nh,{children:`Contact`}),(0,j.jsxs)(`div`,{className:`ib-aside-rows`,children:[(0,j.jsx)(Ph,{label:`Reached by`,children:a.channels.join(` · `)||`—`}),(0,j.jsx)(Ph,{label:`Handle`,children:t.handle}),(0,j.jsx)(Ph,{label:`First seen`,children:a.first===null?`—`:gE(a.first)}),(0,j.jsx)(Ph,{label:`Last`,children:a.last===null?`—`:_E(a.last)})]}),(0,j.jsx)(Nh,{ruled:!0,children:`Standing`}),(0,j.jsxs)(`div`,{className:`ib-aside-facts`,children:[(0,j.jsx)(J0,{value:String(a.conversations),label:a.conversations===1?`conversation`:`conversations`}),(0,j.jsx)(J0,{value:dE({started_at:0,ended_at:a.seconds}),label:`on the line`}),a.judged>0&&(0,j.jsx)(J0,{value:`${String(a.held)}/${String(a.judged)}`,label:`judges held`})]}),a.flags.length>0&&(0,j.jsx)(`div`,{className:`ib-aside-flags`,children:a.flags.map(e=>(0,j.jsx)(xC,{tone:e===`low_score`?`red`:`amber`,small:!0,children:V0(e)},e))}),(0,j.jsx)(Nh,{ruled:!0,children:`Conversations`}),(0,j.jsx)(`div`,{className:`ib-aside-list`,children:t.lines.map(e=>(0,j.jsx)(Mh,{name:(0,j.jsxs)(`span`,{className:e.call===r?`ib-aside-shown`:void 0,children:[e.started_at===null?e.call:gE(e.started_at),e.call===r&&` · shown`]}),sub:`${e.channel??`—`} · ${e.status===`ended`?dE(e):`on the line now`}`,end:e.outcome!==null&&e.outcome!==``?(0,j.jsx)(`span`,{className:`ib-aside-outcome`,children:e.outcome}):void 0,to:i(e.call)},e.call))})]})}function J0({value:e,label:t}){return(0,j.jsxs)(`div`,{className:`ib-panel-stat`,children:[(0,j.jsx)(`span`,{className:`ib-panel-stat-value`,children:e}),(0,j.jsx)(`span`,{className:`ib-panel-stat-label`,children:t})]})}function Y0({agent:e,contact:t,call:n}){let r=M(),[i,a]=(0,O.useState)(null),[o,s]=(0,O.useState)(null),[c,l]=(0,O.useState)(null),[u,d]=(0,O.useState)(!1);return(0,O.useEffect)(()=>{let t=!1;return G0(r,e).then(e=>{t||a(e)},()=>void 0),()=>{t=!0}},[r,e]),(0,O.useEffect)(()=>{if(i===null)return;let a=!1;return d(!0),l(null),K0(r,e,t,n).then(e=>{a||(s(e),d(!1))},e=>{a||(l(e instanceof na?e.message:String(e)),d(!1))}),()=>{a=!0}},[r,e,t,n,i]),i===null?null:(0,j.jsxs)(`div`,{className:`ib-aside-own`,children:[u&&o===null&&c===null&&(0,j.jsxs)(kh,{children:[`Drawing `,i,`…`]}),(0,j.jsx)(Ah,{children:c}),o!==null&&o.nodes.length===0&&(0,j.jsxs)(kh,{children:[i,` has nothing for this conversation.`]}),o!==null&&(0,j.jsx)(I0,{nodes:o.nodes})]})}var X0=/^\+[1-9]\d{4,14}$/;function Z0(){let e=M(),[t,n]=(0,O.useState)(null);return(0,O.useEffect)(()=>{let t=!1;return qO(e).then(e=>{t||n(e!==null&&e.ready?e:null)},()=>void 0),()=>{t=!0}},[e]),t}function Q0({outbound:e,value:t,onChange:n}){return e.from_numbers.length<2?null:(0,j.jsx)(Bh,{label:`From`,children:(0,j.jsxs)(vC,{size:`sm`,value:t,onValueChange:e=>n(e),children:[(0,j.jsx)(yC,{value:``,children:`the agent's own number`}),e.from_numbers.map(e=>(0,j.jsx)(yC,{value:e,children:aE(e)},e))]})})}function $0({agent:e,to:t,outbound:n,onClose:r,onRefused:i}){let a=M(),o=_r(),[s,c]=(0,O.useState)(``),[l,u]=(0,O.useState)(!1),d=(0,O.useRef)(null);(0,O.useEffect)(()=>{let e=e=>{e.key===`Escape`&&r()},t=e=>{let t=d.current?.parentElement;t!=null&&!t.contains(e.target)&&r()};return document.addEventListener(`keydown`,e),document.addEventListener(`mousedown`,t),()=>{document.removeEventListener(`keydown`,e),document.removeEventListener(`mousedown`,t)}},[r]);let f=async()=>{u(!0);try{let n=await XO(a,e,t,s);o(`/calls/${n}`)}catch(e){i(e instanceof na?e.message:String(e)),r()}finally{u(!1)}};return(0,j.jsxs)(`div`,{className:`dial-pop`,role:`dialog`,"aria-label":`call back`,ref:d,children:[(0,j.jsxs)(`div`,{className:`dial-ask`,children:[`Call `,aE(t),` as `,e,`?`]}),(0,j.jsx)(Q0,{outbound:n,value:s,onChange:c}),(0,j.jsxs)(`div`,{className:`dial-moves`,children:[(0,j.jsx)(W,{kind:`primary`,size:`md`,disabled:l,onClick:()=>void f(),children:l?`Calling…`:`Call`}),(0,j.jsx)(W,{size:`md`,disabled:l,onClick:r,children:`Cancel`})]})]})}function e2({agent:e,outbound:t,onClose:n}){let r=M(),i=_r(),[a,o]=(0,O.useState)(``),[s,c]=(0,O.useState)(``),[l,u]=(0,O.useState)(!1),[d,f]=(0,O.useState)(null),p=a.replace(/[\s()-]/g,``),m=async t=>{if(t.preventDefault(),!X0.test(p)){f(`A number is written whole, with its country: +14176743169.`);return}u(!0),f(null);try{let t=await XO(r,e,p,s);n(),i(`/calls/${t}`)}catch(e){f(e instanceof na?e.message:String(e))}finally{u(!1)}};return(0,j.jsxs)(`form`,{className:`dial-form`,onSubmit:e=>void m(e),children:[(0,j.jsx)(Bh,{label:`Number`,children:(0,j.jsx)(G,{size:`sm`,value:a,placeholder:`+1 417 674 3169`,autoFocus:!0,autoComplete:`off`,onChange:e=>o(e.target.value)})}),(0,j.jsx)(Q0,{outbound:t,value:s,onChange:c}),(0,j.jsx)(`p`,{className:`dial-note`,children:t.guards.dial_anywhere?`${e} places the call and speaks first.`:`${e} places the call and speaks first. Only a number that has already called or written to you is dialled.`}),d!==null&&(0,j.jsx)(`p`,{className:`dial-refused`,children:d}),(0,j.jsx)(W,{kind:`primary`,size:`md`,type:`submit`,disabled:l||p===``,children:l?`Calling…`:`Call`})]})}var t2=bp({threads:R(bp({contact:P(),name:P().nullish(),unread:F().nullish()}))});async function n2(e,t){try{let n=t2.parse(await A(e,`/v1/agents/${encodeURIComponent(t)}/threads`));return new Map(n.threads.map(e=>[e.contact,e]))}catch(e){if(e instanceof na&&(e.status===404||e.status===405))return null;throw e}}async function r2(e,t,n){await la(e,`/v1/agents/${encodeURIComponent(t)}/threads/${encodeURIComponent(n)}/read`,{})}async function i2(e,t,n,r){await la(e,`/v1/agents/${encodeURIComponent(t)}/threads/${encodeURIComponent(n)}/messages`,{text:r})}function a2(e){return e.direction===`outbound`?e.to:e.from}function o2(e){let t=new Map;for(let n of e){let e=n.caller?.id??n.caller?.phone??a2(n)??n.call,r=t.get(e);if(r===void 0){t.set(e,{contact:e,name:n.caller?.name??null,handle:s2(n),lines:[n],latest:n});continue}r.lines.push(n),r.name??=n.caller?.name??null,(n.started_at??0)>(r.latest.started_at??0)&&(r.latest=n)}let n=[...t.values()];for(let e of n)e.lines.sort((e,t)=>(t.started_at??0)-(e.started_at??0));return n.sort((e,t)=>Number(rE(t.latest))-Number(rE(e.latest))||(t.latest.started_at??0)-(e.latest.started_at??0))}function s2(e){let t=a2(e);return t===null?e.channel===`web`?`web visitor`:`—`:t.startsWith(`+`)?aE(t):e.channel===`web`?`web visitor`:t}function c2(e){return e.name!==null&&e.name!==``?e.name:e.contact.startsWith(`+`)?aE(e.contact):TE(e.contact)??e.contact}function l2(e){return CE(e.name,e.handle===`web visitor`?`web`:e.contact)}function u2(e){let t=e.latest;return t.status===`ended`?t.outcome!==null&&t.outcome!==``?t.outcome:`${t.channel??`a`} call · ${dE(t)}`:`On a call now`}function d2({listed:e,focus:t,onFocus:n}){let r=xr(),i=r.agent??``,a=r.call,o=_r(),{search:s}=hr(),c=M(),{floorError:l}=uO(),u=(0,O.useMemo)(()=>o2(e),[e]),[d,f]=(0,O.useState)(``),p=WC({name:`agent.conversations`,initial:292,min:200,max:520,side:`left`}),[m,h]=(0,O.useState)(!1),g=Z0(),[_,v]=p2(i,e.length),[y,b]=(0,O.useState)(null),x=u.find(e=>a!==void 0&&e.lines.some(e=>e.call===a))??u[0],S=x===void 0?void 0:x.lines.find(e=>e.call===a)??x.latest,C=i===``?`/calls`:`/a/${encodeURIComponent(i)}/calls`,w=e=>`${C}/${e}${s}`,T=d.trim().toLowerCase(),ee=u.filter(e=>T===``||`${f2(e,_)} ${e.handle} ${u2(e)}`.toLowerCase().includes(T));(0,O.useEffect)(()=>{x!==void 0&&_!==null&&(_.get(x.contact)?.unread??0)!==0&&(v(x.contact),r2(c,i,x.contact).catch(()=>void 0))},[x?.contact,_,c,i,v]);let te=x?.latest.agent??i;return(0,j.jsxs)(`div`,{className:t?`ib ib-focus`:`ib`,style:p.style,children:[!t&&p.handle,(0,j.jsxs)(`div`,{className:`ib-list`,children:[(0,j.jsxs)(`div`,{className:`ib-list-head`,children:[(0,j.jsx)(`input`,{className:`ib-search`,placeholder:`Search a caller or number`,value:d,onChange:e=>f(e.target.value)}),g!==null&&i!==``&&(0,j.jsx)(`button`,{type:`button`,className:`ib-call`,title:`Call a number`,"aria-expanded":m,onClick:()=>h(!m),children:`+`}),m&&g!==null&&i!==``&&(0,j.jsx)(`div`,{className:`ib-dial`,children:(0,j.jsxs)(`div`,{className:`dial-panel`,children:[(0,j.jsxs)(`div`,{className:`dial-panel-head`,children:[(0,j.jsx)(`span`,{className:`dial-panel-title`,children:`Call a number`}),(0,j.jsx)(`button`,{type:`button`,className:`dial-panel-close`,onClick:()=>h(!1),"aria-label":`close`,children:`×`})]}),(0,j.jsx)(e2,{agent:i,outbound:g,onClose:()=>h(!1)})]})})]}),(0,j.jsxs)(`div`,{className:`ib-threads`,children:[l!==null&&(0,j.jsx)(`p`,{className:`ib-empty ib-refused`,children:l}),l===null&&u.length===0&&(0,j.jsxs)(`p`,{className:`ib-empty`,children:[`No conversations yet. The first call to reach `,i===``?`an agent`:i,` opens a thread here as it rings.`]}),u.length>0&&ee.length===0&&(0,j.jsxs)(`p`,{className:`ib-empty`,children:[`Nobody here matches “`,d,`”.`]}),ee.map(e=>(0,j.jsx)(m2,{thread:e,name:f2(e,_),whose:i===``?e.latest.agent:void 0,fresh:(_?.get(e.contact)?.unread??0)>0,on:e===x,onOpen:()=>void o(w(e.latest.call))},e.contact))]})]}),x===void 0||S===void 0?(0,j.jsx)(`div`,{className:`ib-open`,children:(0,j.jsx)(`p`,{className:`ib-nothing`,children:l===null?`Pick a conversation on the left.`:``})}):(0,j.jsxs)(`div`,{className:`ib-open`,children:[y!==null&&(0,j.jsx)(`p`,{className:`ib-refused-line ib-refused-head`,children:y}),(0,j.jsx)(O0,{call:S.call,agent:te,name:f2(x,_),beside:()=>(0,j.jsx)(_2,{agent:te,thread:x,outbound:g,focus:t,onFocus:n,onRefused:b}),foot:_!==null&&S.status===`ended`&&S.channel===`whatsapp`?(0,j.jsx)(v2,{agent:te,contact:x.contact}):void 0,aside:(0,j.jsx)(q0,{agent:te,thread:x,name:f2(x,_),shown:S.call,hrefOf:w},`${x.contact}-aside`)},S.call)]})]})}function f2(e,t){return t?.get(e.contact)?.name??c2(e)}function p2(e,t){let n=M(),[r,i]=(0,O.useState)(null),a=(0,O.useCallback)(e=>{i(t=>{let n=t?.get(e);return t===null||n===void 0||(n.unread??0)===0?t:new Map(t).set(e,{...n,unread:0})})},[]),[o,s]=(0,O.useState)(!1);return(0,O.useEffect)(()=>{if(o||e===``)return;let t=!1;return n2(n,e).then(e=>{t||(e===null&&s(!0),i(e))},()=>void 0),()=>{t=!0}},[n,e,t,o]),[r,a]}function m2({thread:e,name:t,whose:n,fresh:r,on:i,onOpen:a}){return(0,j.jsxs)(`button`,{type:`button`,className:i?`ib-row ib-row-on`:`ib-row`,onClick:a,children:[(0,j.jsx)(DC,{name:t,letters:l2(e),size:28,round:!0}),(0,j.jsxs)(`span`,{className:`ib-row-main`,children:[(0,j.jsxs)(`span`,{className:`ib-row-top`,children:[(0,j.jsx)(`span`,{className:`ib-row-name`,children:t}),(0,j.jsx)(`span`,{className:`ib-row-time`,children:g2(e.latest.started_at)})]}),(0,j.jsxs)(`span`,{className:`ib-row-bottom`,children:[rE(e.latest)?(0,j.jsx)(`span`,{className:`ib-row-last ib-row-asked`,children:`wants a person`}):(0,j.jsx)(`span`,{className:e.latest.status===`ended`?`ib-row-last`:`ib-row-last ib-row-last-live`,children:u2(e)}),h2(e.latest,r)??(n!==void 0&&(0,j.jsx)(`span`,{className:`ib-row-agent`,children:n}))]})]})]})}function h2(e,t){if(e.status!==`ended`)return(0,j.jsx)(`span`,{className:rE(e)?`ib-mark ib-mark-live ib-mark-asked`:`ib-mark ib-mark-live`,"aria-label":`live`});if(t)return(0,j.jsx)(`span`,{className:`ib-new`,"aria-label":`new`});let n=e.score;return n==null||n.judged===0||n.passed?null:(0,j.jsxs)(`span`,{className:`ib-mark ib-mark-broke`,children:[n.held,`/`,n.judged]})}function g2(e){if(e===null)return``;let t=yE(),n=vE(e);return n===t.today?mE(e).slice(0,5):n===t.yesterday?`Yesterday`:gE(e)}function _2({agent:e,thread:t,outbound:n,focus:r,onFocus:i,onRefused:a}){let[o,s]=(0,O.useState)(!1),c=(0,O.useCallback)(()=>s(!1),[]),l=n!==null&&t.contact.startsWith(`+`);return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`button`,{type:`button`,className:`ui-button ui-button-sm`,onClick:i,title:r?`Show the conversations beside the call`:`Give the call the whole screen`,children:r?`Show the list`:`Focus`}),l&&n!==null&&(0,j.jsxs)(`span`,{className:`dial-anchor`,children:[(0,j.jsx)(`button`,{type:`button`,className:`ui-button ui-button-primary ui-button-sm`,"aria-expanded":o,onClick:()=>s(!o),children:`Call back`}),o&&(0,j.jsx)($0,{agent:e,to:t.contact,outbound:n,onClose:c,onRefused:a})]})]})}function v2({agent:e,contact:t}){let n=M(),[r,i]=(0,O.useState)(``),[a,o]=(0,O.useState)(!1),[s,c]=(0,O.useState)(null),l=async()=>{if(r.trim()!==``){o(!0),c(null);try{await i2(n,e,t,r.trim()),i(``)}catch(e){c(e instanceof na?e.message:String(e))}finally{o(!1)}}};return(0,j.jsxs)(j.Fragment,{children:[s!==null&&(0,j.jsx)(`p`,{className:`ib-refused-line ib-refused-foot`,children:s}),(0,j.jsxs)(`form`,{className:`ib-composer`,onSubmit:e=>{e.preventDefault(),l()},children:[(0,j.jsx)(`input`,{className:`ib-write`,value:r,placeholder:`Write as ${e} — the agent keeps the thread from here`,disabled:a,onChange:e=>i(e.target.value)}),(0,j.jsx)(`button`,{type:`submit`,className:`ib-send`,disabled:a||r.trim()===``,children:`Send`})]})]})}var y2=$T.loose(),b2=50,x2=250;function S2(e,t,n,r,i=!0){let a=M(),[o,s]=(0,O.useState)(null),[c,l]=(0,O.useState)(!1);return(0,O.useEffect)(()=>{if(c||!i)return;let r=!1,o=window.setTimeout(()=>{(async()=>{let i=e===``?`/v1/sessions`:`/v1/agents/${encodeURIComponent(e)}/sessions`,o={limit:b2};t.query.trim()!==``&&(o.q=t.query.trim()),t.agent!==``&&(o.agent=t.agent),t.channel!==``&&(o.channel=t.channel);try{let e=[],t=0,c=null;for(let s=0;s<n&&!(s>0&&c===null);s+=1){let n=await A(a,i,c===null?o:{...o,before:c});if(r)return;if(typeof n.total!=`number`){l(!0);return}let s=Array.isArray(n.calls)?n.calls:[];e.push(...s.map(e=>y2.parse(e))),t=n.total,c=typeof n.next==`string`?n.next:null}s({rows:e,total:t,next:c})}catch{r||l(!0)}})()},x2);return()=>{r=!0,window.clearTimeout(o)}},[a,e,t.query,t.agent,t.channel,n,c,r,i]),{found:c||!i?null:o,searches:!c}}function C2(e){return`${e.length}:${e[0]?.call??``}:${e.filter(tE).length}`}function w2(e,t){let n=t.trim().toLowerCase();if(n===``)return!0;let r=n.replace(/[^\d]/g,``);if([e.call,e.agent,e.from,e.to,e.caller?.name,e.outcome,e.channel].filter(Boolean).join(` `).toLowerCase().includes(n))return!0;if(r.length>=3){let t=`${e.from??``} ${e.to??``} ${e.call}`.replace(/[^\d ]/g,``);return t.replace(/ /g,``).includes(r)||t.includes(r)}return!1}var T2=[{value:``,name:`All`},{value:`live`,name:`Live`},{value:`asking`,name:`Wants a person`},{value:`broke`,name:`Did not hold`}];function E2(e){return T2.find(t=>t.value===e)?.value??``}function D2(e,t){switch(e){case``:return!0;case`live`:return tE(t);case`asking`:return rE(t);case`broke`:return t.score?.passed===!1}}var O2=/^call[_-][\w+-]{6,}$/,k2=`28px minmax(0,2fr) minmax(90px,0.7fr) 84px 132px 70px 60px 52px`,A2=`28px minmax(0,2fr) 84px 132px 70px 60px 52px`,j2=[``,`Who`,`Agent`,`Channel`,`Ended`,`Judges`,`Length>`,`At>`],M2=[``,`Who`,`Channel`,`Ended`,`Judges`,`Length>`,`At>`],N2=[`web`,`phone`,`whatsapp`];function P2({lines:e,error:t,agent:n,agents:r,status:i}){let a=_r(),[o,s]=Xi(),[c,l]=(0,O.useState)(1),u=n===``,d={query:o.get(`q`)??``,agent:u?o.get(`agent`)??``:``,channel:o.get(`channel`)??``},f=S2(n,d,c,C2(e)).found,p=(e,t)=>{let n=new URLSearchParams(o);t===``?n.delete(e):n.set(e,t),s(n,{replace:!0})},m=uE((f===null?e.filter(e=>w2(e,d.query)&&(d.agent===``||e.agent===d.agent)&&(d.channel===``||e.channel===d.channel)):f.rows).filter(e=>D2(i,e))),h=e=>{let t=d.query.trim();e.key===`Enter`&&O2.test(t)&&a(`${_}/${t}`)},g=u?k2:A2,_=u?`/calls`:`/a/${encodeURIComponent(n)}/calls`,v=d.query!==``||d.agent!==``||d.channel!==``||i!==``;return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`div`,{className:`calls-filters`,children:[(0,j.jsx)(G,{size:`sm`,className:`calls-search`,placeholder:`Search a call id, number or outcome`,"aria-label":`Search a call id, number or outcome`,value:d.query,onChange:e=>p(`q`,e.target.value),onKeyDown:h}),u&&(0,j.jsxs)(vC,{size:`sm`,className:`calls-select`,"aria-label":`Filter by agent`,value:d.agent,onValueChange:e=>p(`agent`,e),children:[(0,j.jsx)(yC,{value:``,children:`Every agent`}),r.map(e=>(0,j.jsx)(yC,{value:e,children:e},e))]}),(0,j.jsxs)(vC,{size:`sm`,className:`calls-select`,"aria-label":`Filter by channel`,value:d.channel,onValueChange:e=>p(`channel`,e),children:[(0,j.jsx)(yC,{value:``,children:`Every channel`}),N2.map(e=>(0,j.jsx)(yC,{value:e,children:e},e))]})]}),(0,j.jsx)(Ah,{children:t}),(0,j.jsxs)(H,{children:[m.length===0?(0,j.jsx)(kh,{children:v?O2.test(d.query.trim())?(0,j.jsxs)(j.Fragment,{children:[`Not on this page — press Enter to open `,d.query.trim(),` by its id.`]}):(0,j.jsx)(j.Fragment,{children:`No call here matches. The search reads the calls this page has listed.`}):(0,j.jsxs)(j.Fragment,{children:[`No call yet. The log is written during the call, so one appears here the moment it starts — from the browser, from`,` `,(0,j.jsx)(`span`,{className:`ui-fixed`,children:`pinecall chat`}),`, or from the telephone.`]})}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(NC,{columns:g,labels:u?j2:M2}),cE(m,vE).map(e=>(0,j.jsxs)(O.Fragment,{children:[(0,j.jsxs)(`div`,{className:`calls-day`,children:[(0,j.jsx)(`span`,{className:`calls-day-name`,children:z2(e)}),(0,j.jsxs)(`span`,{className:`calls-day-count`,children:[e.lines.length,` `,e.lines.length===1?`call`:`calls`]})]}),e.lines.map(e=>(0,j.jsx)(F2,{line:e,columns:g,org:u,base:_},e.call))]},e.key))]}),f!==null&&f.total>f.rows.length&&(0,j.jsxs)(Oh,{children:[(0,j.jsxs)(`span`,{children:[f.rows.length,` of `,f.total]}),(0,j.jsx)(`span`,{className:`calls-more`,children:(0,j.jsx)(W,{size:`sm`,onClick:()=>l(c+1),children:`Load more`})})]})]})]})}function F2({line:e,columns:t,org:n,base:r}){let i=sE(e,wE),a=tE(e),o=L2(e);return(0,j.jsxs)(PC,{columns:t,to:`${r}/${e.call}`,children:[(0,j.jsx)(`span`,{className:a?`calls-who-avatar calls-who-avatar-live`:`calls-who-avatar`,title:e.call,children:(0,j.jsx)(DC,{name:i,letters:CE(e.caller?.name,e.direction===`outbound`?e.to:e.from),size:28,round:!0})}),(0,j.jsxs)(`span`,{className:`calls-who`,children:[(0,j.jsx)(`span`,{className:`calls-who-name ui-clip`,children:i}),(0,j.jsx)(`span`,{className:`calls-who-said ui-clip`,children:e.outcome??(a?`on the line now`:`nothing was said`)})]}),n&&(0,j.jsx)(`span`,{className:`ui-cell-ink ui-clip`,children:e.agent}),(0,j.jsxs)(`span`,{className:`ui-cell`,children:[e.channel??`—`,e.direction===`outbound`&&(0,j.jsx)(`span`,{className:`calls-out`,children:` · out`})]}),(0,j.jsx)(`span`,{children:(0,j.jsx)(xC,{tone:o.tone,small:!0,children:o.text})}),(0,j.jsxs)(`span`,{children:[e.score!=null&&(0,j.jsxs)(xC,{tone:e.score.passed?`green`:`red`,small:!0,children:[e.score.held,`/`,e.score.judged]}),e.score==null&&(e.flags??[]).includes(`escalated`)&&(0,j.jsx)(xC,{tone:`amber`,small:!0,children:`escalated`})]}),(0,j.jsx)(`span`,{className:`ui-cell ui-cell-right calls-num`,children:a?``:dE(e)}),(0,j.jsx)(`span`,{className:`ui-cell ui-cell-right calls-num`,children:mE(e.started_at).slice(0,5)})]})}var I2={caller_hung_up:{text:`caller hung up`,tone:`gray`},agent_hung_up:{text:`agent hung up`,tone:`gray`},supervisor_ended:{text:`supervisor ended`,tone:`indigo`},transferred:{text:`transferred`,tone:`amber`},no_answer:{text:`no answer`,tone:`muted`},busy:{text:`busy`,tone:`muted`},dial_failed:{text:`dial failed`,tone:`red`},timeout:{text:`timed out`,tone:`red`},drained:{text:`drained`,tone:`red`},app_detached:{text:`app detached`,tone:`red`},error:{text:`error`,tone:`red`}};function L2(e){return tE(e)&&e.attention?.status===`open`?{text:`● wants a person`,tone:`amber`}:tE(e)?{text:e.status===`active`?`● live`:e.status,tone:`green`}:e.end_reason===null?{text:`ended`,tone:`gray`}:I2[e.end_reason]??{text:e.end_reason.replace(/_/g,` `),tone:`gray`}}var R2=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`];function z2(e){switch(e.name){case`live`:return`On a call now`;case`unstarted`:return`Not started`;case`today`:return`Today`;case`yesterday`:return`Yesterday`;case`before`:return`${R2[new Date(e.at*1e3).getUTCDay()]} ${gE(e.at)}`}}function B2(){let e=xr().agent??``,[t,n]=Xi(),{lines:r,floorError:i,agents:a}=uO(),o=t.get(`view`)===`table`,s=E2(t.get(`status`)),c=t.get(`focus`)===`1`,l=e===``?r:r.filter(t=>t.agent===e),u=l.filter(e=>D2(s,e)),d=[...new Set([...a.map(e=>e.slug),...r.map(e=>e.agent)])].sort(),f=(e,r)=>{let i=new URLSearchParams(t);r===``?i.delete(e):i.set(e,r),n(i,{replace:!0})};return(0,j.jsxs)(`div`,{className:`calls`,children:[!c&&(0,j.jsxs)(`div`,{className:`calls-bar`,children:[(0,j.jsx)(`h1`,{className:`calls-title`,children:`Calls`}),(0,j.jsx)(`div`,{className:`calls-chips`,role:`group`,"aria-label":`which calls`,children:T2.map(e=>{let t=l.filter(t=>D2(e.value,t)).length;return(0,j.jsxs)(`button`,{type:`button`,className:s===e.value?`calls-chip calls-chip-on`:`calls-chip`,"aria-pressed":s===e.value,onClick:()=>f(`status`,e.value),children:[e.name,(0,j.jsx)(`span`,{className:e.value===`asking`&&t>0?`calls-chip-count calls-chip-count-asking`:`calls-chip-count`,children:t})]},e.value)})}),(0,j.jsx)(`span`,{className:`calls-grow`}),(0,j.jsx)(Vh,{options:[{value:`threads`,label:`Threads`},{value:`table`,label:`Table`}],value:o?`table`:`threads`,onChange:e=>f(`view`,e===`table`?`table`:``)})]}),o?(0,j.jsx)(`div`,{className:`calls-table`,children:(0,j.jsx)(P2,{lines:u,error:i,agent:e,agents:d,status:s})}):(0,j.jsx)(d2,{listed:u,focus:c,onFocus:()=>f(`focus`,c?``:`1`)})]})}var V2=z({agent:P().nullable(),golden:P().nullable(),questions:I(),cases:R(P())});async function H2(e,t){return iX.parse(await A(e,`/v1/contacts/${encodeURIComponent(t)}/memory`))}async function U2(e,t){return aX.parse(await ua(e,`/v1/contacts/${encodeURIComponent(t)}/memory`))}async function W2(e,t){return V2.parse(await ON(e,t,`memory.roster`,{agent:t}))}async function G2(e,t){return sX.parse(await ON(e,t,`memory.eval`,{agent:t}))}async function K2(e,t){return uX.parse(await ON(e,t,`memory.extraction`,{agent:t}))}var q2=z({facts:R(z({id:P(),contact:P(),text:P(),category:P().nullish(),written_at:F()})),next:Sp([P(),F()]).nullish()});async function J2(e,t){try{return q2.parse(await A(e,`/v1/agents/${encodeURIComponent(t)}/memory`)).facts}catch(e){if(e instanceof na&&e.status===404)return null;throw e}}async function Y2(e,t){await ua(e,`/v1/memory/facts/${encodeURIComponent(t)}`)}var X2=z({facts:R(z({id:P(),agent:P(),contact:P(),text:P(),category:P().nullish(),written_at:F()})),next:P().nullish()});async function Z2(e,t,n){let r={};t!==``&&(r.q=t),n!==null&&(r.after=n);try{return X2.parse(await A(e,`/v1/memory`,r))}catch(e){if(e instanceof na&&e.status===404)return null;throw e}}var Q2=`150px 140px minmax(0,1fr) 100px 64px`;function $2(e){return e.startsWith(`+`)?aE(e):e}function e4(e){return e instanceof Error?e.message:String(e)}function t4(){let e=M(),[t,n]=(0,O.useState)(``),[r,i]=(0,O.useState)(``),[a,o]=(0,O.useState)(void 0),[s,c]=(0,O.useState)(null),[l,u]=(0,O.useState)(null);(0,O.useEffect)(()=>{let e=window.setTimeout(()=>i(t.trim()),300);return()=>window.clearTimeout(e)},[t]),(0,O.useEffect)(()=>{let t=!1;return u(null),Z2(e,r,null).then(e=>{t||(o(e===null?null:e.facts),c(e?.next??null))},e=>{t||u(e4(e))}),()=>{t=!0}},[e,r]);let d=async()=>{if(s!==null)try{let t=await Z2(e,r,s);if(t===null)return;o(e=>[...e??[],...t.facts]),c(t.next??null)}catch(e){u(e4(e))}},f=async t=>{if(window.confirm(`Drop "${t.text}"? The rest of what memory keeps about ${$2(t.contact)} stays.`)){u(null);try{await Y2(e,t.id),o(e=>(e??[]).filter(e=>e.id!==t.id))}catch(e){u(e4(e))}}};return(0,j.jsxs)(kC,{width:1060,tight:!0,children:[(0,j.jsx)(AC,{title:`Memory`,ledeWidth:640,lede:`What every agent carries between calls with the same caller — newest first, each fact with the agent whose call taught it, droppable one row at a time.`}),(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Remembered`,meta:a?`${a.length}${s===null?``:`+`} facts`:void 0,children:(0,j.jsx)(`div`,{className:`mem-look`,children:(0,j.jsx)(G,{size:`sm`,value:t,placeholder:`Search a caller, a word, a category`,onChange:e=>n(e.target.value)})})}),a===void 0?(0,j.jsx)(kh,{children:`Asking the gateway what the agents remember…`}):a===null?(0,j.jsx)(kh,{children:`This gateway keeps no memory: it runs without the database memory lives in.`}):a.length===0?(0,j.jsx)(kh,{children:r===``?"No agent remembers anything about any caller yet. An agent that declares `memory` writes what it learns when a call hangs up.":`Nothing remembered matches.`}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(NC,{columns:Q2,labels:[`Caller`,`Agent`,`Remembered`,`Written`,`Action>`]}),a.map(e=>(0,j.jsxs)(`div`,{className:`ui-table-row`,style:{gridTemplateColumns:Q2},children:[(0,j.jsx)(`span`,{className:`mem-caller ui-clip`,title:e.contact,children:$2(e.contact)}),(0,j.jsx)(`span`,{className:`ui-clip`,children:(0,j.jsx)(Wi,{to:`/a/${encodeURIComponent(e.agent)}/memory`,children:e.agent})}),(0,j.jsxs)(`span`,{className:`mem-fact`,children:[e.text,e.category?(0,j.jsxs)(`span`,{className:`mem-superseded`,children:[` · `,e.category]}):null]}),(0,j.jsx)(`span`,{className:`ui-cell-faint`,children:gE(e.written_at)}),(0,j.jsx)(`span`,{className:`ui-cell-end`,children:(0,j.jsx)(Lh,{danger:!0,onClick:()=>void f(e),children:`Drop`})})]},e.id)),s!==null&&(0,j.jsx)(`div`,{className:`ui-card-foot`,children:(0,j.jsx)(W,{size:`sm`,onClick:()=>void d(),children:`Load more`})})]})]}),(0,j.jsx)(Ah,{children:l})]})}var n4=(0,O.createContext)(null);function r4({children:e}){let{pathname:t,search:n}=hr(),r=`${t}${n}`,i=(0,O.useRef)({now:r,before:null});return i.current.now!==r&&(i.current={now:r,before:i.current.now}),(0,j.jsx)(n4.Provider,{value:i.current.before,children:e})}function i4(){return(0,O.useContext)(n4)}function a4(e){let t=i4(),{pathname:n,search:r}=hr(),i=t!==null&&t.startsWith(`/`)&&!t.startsWith(`//`)&&t!==`${n}${r}`?t:e;return{to:i,name:_h(i)?.name??`Back`}}async function o4(e){let[t,n]=await Promise.all([rX.parse(await A(e,`/v1/knowledge`)),hX.parse(await A(e,`/v1/knowledge/attached`))]),r=new Map(n.bases.map(e=>[e.base,e.agents]));return t.bases.map(e=>({...e,agents:r.get(e.base)??[]}))}function s4(e,t){return`/v1/knowledge/${encodeURIComponent(e)}/files/${t.split(`/`).map(encodeURIComponent).join(`/`)}`}async function c4(e,t){return fX.parse(await A(e,`/v1/knowledge/${encodeURIComponent(t)}`))}async function l4(e,t,n){return pX.parse(await A(e,s4(t,n)))}async function u4(e,t,n,r){return mX.parse(await sa(e,s4(t,n),{text:r}))}async function d4(e,t,n){await ua(e,s4(t,n))}var f4=`minmax(0,1fr) 110px 90px 150px 70px`,p4=`new`;function m4(e){return e instanceof Error?e.message:String(e)}function h4(){let e=M(),t=xr().base??``,[n,r]=Xi(),i=n.get(`file`),[a,o]=(0,O.useState)(null),[s,c]=(0,O.useState)(``),[l,u]=(0,O.useState)(``),[d,f]=(0,O.useState)(``),[p,m]=(0,O.useState)(!1),[h,g]=(0,O.useState)(null),[_,v]=(0,O.useState)(null),y=(0,O.useCallback)(async()=>{o(await c4(e,t))},[e,t]);(0,O.useEffect)(()=>{let e=!1;return y().catch(t=>{e||v(m4(t))}),()=>{e=!0}},[y]),(0,O.useEffect)(()=>{let n=!1;if(g(null),i!==null){if(i===p4){c(``),u(``),f(``);return}return l4(e,t,i).then(e=>{n||(c(e.path),u(e.text),f(e.text))},e=>{n||v(m4(e))}),()=>{n=!0}}},[e,t,i]);let b=e=>r(e===null?{}:{file:e}),x=async()=>{let n=s.trim();if(n===``){v(`name the file first: a path like faq/horarios.md`);return}m(!0),v(null);try{let r=await u4(e,t,n,l);f(l),g(`${r.path} kept · ${r.chunks} chunk${r.chunks===1?``:`s`} · ${Math.round(r.took_ms)} ms`),await y(),i!==n&&b(n)}catch(e){v(m4(e))}finally{m(!1)}},S=async n=>{if(window.confirm(`Take ${n} out of ${t}? The agent stops searching it on the next call.`)){v(null);try{await d4(e,t,n),i===n&&b(null),await y()}catch(e){v(m4(e))}}},C=async n=>{let r=Array.from(n.target.files??[]);if(n.target.value=``,r.length!==0){m(!0),v(null);try{for(let n of r)await u4(e,t,n.name,await n.text());await y(),b(r[r.length-1].name),g(`${r.length} file${r.length===1?``:`s`} added`)}catch(e){v(m4(e))}finally{m(!1)}}},w=l!==d||i===p4&&s.trim()!==``,T=a4(`/docs`);return(0,j.jsxs)(kC,{width:1060,children:[(0,j.jsx)(AC,{title:t,back:(0,j.jsxs)(Wi,{to:T.to,children:[`← `,T.name]}),ledeWidth:640,lede:`The documents the agent searches, one file each. Open one to read or change it, add one from your disk or write it here, take one out. Every change is searchable on the next call.`,actions:(0,j.jsxs)(`div`,{className:`od-actions`,children:[(0,j.jsxs)(`label`,{className:p?`ui-button ui-button-form od-upload od-busy`:`ui-button ui-button-form od-upload`,children:[`Add files…`,(0,j.jsx)(`input`,{type:`file`,accept:`.md,.markdown,.txt,text/markdown,text/plain`,multiple:!0,disabled:p,"aria-label":`Add files to this base`,onChange:e=>void C(e)})]}),(0,j.jsx)(W,{kind:`primary`,size:`form`,disabled:p,onClick:()=>b(p4),children:`Write one`})]})}),(0,j.jsx)(Ah,{children:_}),(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Files`,meta:a===null?void 0:`${a.files.length} file${a.files.length===1?``:`s`}`}),a===null?(0,j.jsx)(kh,{children:_===null?`Asking the gateway…`:`The files could not be read.`}):a.kept?a.files.length===0?(0,j.jsx)(kh,{children:`No file in this base. Add one above.`}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(NC,{columns:f4,labels:[`File`,`Characters`,`Chunks`,`Arrived`,``]}),a.files.map(e=>(0,j.jsxs)(PC,{columns:f4,onClick:()=>b(e.path),children:[(0,j.jsx)(`span`,{className:i===e.path?`ui-cell-strong ui-clip od-open`:`ui-cell-strong ui-clip`,children:e.path}),(0,j.jsx)(`span`,{className:`ui-cell`,children:e.chars.toLocaleString(`en-US`)}),(0,j.jsx)(`span`,{className:`ui-cell`,children:e.chunks}),(0,j.jsx)(`span`,{className:`ui-cell`,children:hE(e.pushed_at)}),(0,j.jsx)(`span`,{className:`ui-cell od-row-end`,children:(0,j.jsx)(Lh,{danger:!0,onClick:()=>void S(e.path),children:`Take out`})})]},e.path))]}):(0,j.jsx)(kh,{children:"This base was pushed before its files were kept, so there is nothing to open here yet. Push it again from its project (`pinecall docs push`), or add a file: from then on the files are kept."})]}),i!==null&&(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:i===p4?`A new file`:i,meta:i===p4?void 0:`${l.length.toLocaleString(`en-US`)} characters`,children:(0,j.jsx)(Lh,{onClick:()=>b(null),children:`Close`})}),(0,j.jsxs)(`div`,{className:`od-editor`,children:[i===p4&&(0,j.jsx)(`input`,{className:`ui-input od-path`,value:s,placeholder:`its path in the base: faq/horarios.md`,spellCheck:!1,"aria-label":`Its path in the base`,onChange:e=>c(e.target.value)}),(0,j.jsx)(`textarea`,{className:`ui-textarea od-text`,value:l,spellCheck:!1,"aria-label":i===p4?`The new file`:i,placeholder:`# Horarios
157
+
158
+ De lunes a viernes, de 9:00 a 20:00.`,onChange:e=>u(e.target.value)}),(0,j.jsxs)(`div`,{className:`od-editor-foot`,children:[(0,j.jsx)(W,{kind:`primary`,size:`form`,disabled:p||!w,onClick:()=>void x(),children:p?`Keeping…`:i===p4?`Add to the base`:`Save`}),(0,j.jsx)(`span`,{className:`od-said`,children:h??(w?`Not kept yet.`:`Markdown. Headings are what a search finds a passage by.`)})]})]})]})]})}var g4=/^[a-z0-9]+(?:-[a-z0-9]+)*$/;function _4({taken:e,onCancel:t}){let n=M(),r=_r(),[i,a]=(0,O.useState)(``),[o,s]=(0,O.useState)(`upload`),[c,l]=(0,O.useState)([]),[u,d]=(0,O.useState)(``),[f,p]=(0,O.useState)(``),[m,h]=(0,O.useState)(!1),[g,_]=(0,O.useState)(null),[v,y]=(0,O.useState)([]),b=g4.test(i),x=e.includes(i),S=o===`upload`?c.length>0:u.trim()!==``&&f.trim()!==``,C=b&&!x&&S&&!m,w=o===`upload`?c.length:1,T=e=>l(Array.from(e.target.files??[])),ee=async()=>{h(!0),_(null),y([]);let e=[];try{if(o===`upload`)for(let t of c)await u4(n,i,t.name,await t.text()),e.push(t.name);else await u4(n,i,u.trim(),f),e.push(u.trim());r(`/docs/${encodeURIComponent(i)}`)}catch(t){_(t instanceof Error?t.message:String(t)),y(e),h(!1)}};return(0,j.jsxs)(`div`,{className:`ui-card nb`,children:[(0,j.jsxs)(`div`,{className:`ui-card-head`,children:[(0,j.jsx)(`span`,{className:`ui-card-title`,children:`New base`}),(0,j.jsx)(`span`,{className:`ui-card-meta`,children:`a set of documents an agent searches`})]}),(0,j.jsxs)(`div`,{className:`nb-body`,children:[(0,j.jsxs)(`label`,{className:`nb-field`,children:[(0,j.jsx)(`span`,{className:`nb-label`,children:`Name`}),(0,j.jsx)(`span`,{className:`nb-hint`,children:`How agents attach it, in their Settings ▸ Bases. Lower-case words joined by hyphens.`}),(0,j.jsx)(G,{value:i,spellCheck:!1,placeholder:`cleaning-services`,onChange:e=>a(e.target.value.toLowerCase().replace(/\s+/g,`-`))}),i!==``&&!b&&(0,j.jsx)(`span`,{className:`nb-bad`,children:`Only a–z, 0–9 and single hyphens between words.`}),x&&(0,j.jsxs)(`span`,{className:`nb-bad`,children:[`There is a base called `,i,` already: open it to add files.`]})]}),(0,j.jsxs)(`div`,{className:`nb-field`,children:[(0,j.jsx)(`span`,{className:`nb-label`,children:`First documents`}),(0,j.jsx)(`span`,{className:`nb-hint`,children:`A base starts with at least one. Markdown works best: its headings are what a search finds a passage by.`}),(0,j.jsx)(Vh,{options:[{value:`upload`,label:`Upload files`},{value:`write`,label:`Write one`}],value:o,onChange:s}),o===`upload`?(0,j.jsxs)(`label`,{className:`nb-drop`,children:[(0,j.jsx)(`input`,{type:`file`,accept:`.md,.markdown,.txt,text/markdown,text/plain`,multiple:!0,"aria-label":`The base’s first files`,onChange:T}),c.length===0?(0,j.jsx)(`span`,{children:`Choose .md or .txt files — several at once`}):(0,j.jsxs)(`span`,{children:[c.length,` file`,c.length===1?``:`s`,`: `,c.map(e=>e.name).join(`, `)]})]}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(G,{value:u,spellCheck:!1,placeholder:`its path in the base: services/move-out.md`,"aria-label":`Its path in the base`,onChange:e=>d(e.target.value)}),(0,j.jsx)(zh,{rows:8,value:f,spellCheck:!1,"aria-label":`The document`,placeholder:`# Move-out cleaning
159
+
160
+ What is included, how long it takes, how to prepare.`,onChange:e=>p(e.target.value)})]})]})]}),(0,j.jsxs)(`div`,{className:`nb-foot`,children:[(0,j.jsx)(W,{kind:`primary`,size:`form`,disabled:!C,onClick:()=>void ee(),children:m?`Creating…`:`Create base`}),(0,j.jsx)(W,{size:`form`,onClick:t,children:`Cancel`})]}),g!==null&&(0,j.jsxs)(`p`,{className:`nb-landed`,children:[(0,j.jsx)(`span`,{className:`nb-bad`,children:g}),v.length===0?(0,j.jsxs)(`span`,{children:[`Nothing landed: there is no base called `,i,`. Nothing was made under that name, so create it again once the refusal above is answered.`]}):(0,j.jsxs)(`span`,{children:[v.length,` of `,w,` landed, so the base `,(0,j.jsx)(`b`,{children:i}),` exists already with `,v.join(`, `),`. Create again to send the rest — a file that is in is written over, not doubled — or `,(0,j.jsxs)(Wi,{to:`/docs/${encodeURIComponent(i)}`,children:[`open `,i]}),` and add them there.`]})]})]})}var v4=`minmax(0,1fr) 90px 140px 150px minmax(0,1fr)`;function y4(e){return e instanceof Error?e.message:String(e)}function b4(){let e=M(),[t,n]=(0,O.useState)(null),[r,i]=(0,O.useState)(null),[a,o]=(0,O.useState)(!1);return(0,O.useEffect)(()=>{let t=!1;return o4(e).then(e=>{t||n(e)},e=>{t||i(y4(e))}),()=>{t=!0}},[e]),(0,j.jsxs)(kC,{width:1060,tight:!0,children:[(0,j.jsx)(AC,{title:`Docs`,ledeWidth:640,lede:"Every base of documents in this world, and which agents search it. Create one here, or push a whole folder from a project with `pinecall docs push`; open a base to read, add, edit or take out its files, and attach it to an agent in its Settings.",actions:!a&&(0,j.jsx)(W,{kind:`primary`,size:`form`,onClick:()=>o(!0),children:`New base`})}),a&&(0,j.jsx)(_4,{taken:(t??[]).map(e=>e.base),onCancel:()=>o(!1)}),(0,j.jsx)(Ah,{children:r}),(0,j.jsx)(H,{children:t===null?(0,j.jsx)(kh,{children:r===null?`Asking the gateway…`:`The bases could not be read.`}):t.length===0?(0,j.jsx)(kh,{children:"No base yet. Create one with New base, or push a folder from a project with `pinecall docs push`."}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(NC,{columns:v4,labels:[`Base`,`Chunks`,`Embedder`,`Pushed`,`Read by`]}),t.map(e=>(0,j.jsxs)(PC,{columns:v4,to:`/docs/${encodeURIComponent(e.base)}`,children:[(0,j.jsx)(`span`,{className:`ui-cell-strong ui-clip`,children:e.base}),(0,j.jsx)(`span`,{className:`ui-cell-ink`,children:e.chunks}),(0,j.jsx)(`span`,{className:`ui-cell ui-clip`,children:e.model}),(0,j.jsx)(`span`,{className:`ui-cell`,children:hE(e.pushed_at)}),(0,j.jsx)(`span`,{className:`ui-cell ui-clip`,children:e.agents.length===0?`nobody`:e.agents.map((e,t)=>(0,j.jsxs)(`span`,{children:[t>0&&`, `,(0,j.jsx)(Wi,{to:`/a/${encodeURIComponent(e)}/configure`,children:e})]},e))})]},e.base))]})})]})}var x4=`minmax(0,1.2fr) 96px minmax(0,1fr) 150px 92px`;function S4(){let e=M(),{world:t}=ow(),n=rw(),[r,i]=(0,O.useState)(null),[a,o]=(0,O.useState)(``),[s,c]=(0,O.useState)(!1),[l,u]=(0,O.useState)(null),[d,f]=(0,O.useState)(!1),[p,m]=(0,O.useState)(null),h=n!==null&&n.includes(`app`),g=async()=>i(await _O(e));(0,O.useEffect)(()=>{let t=!1;return _O(e).then(e=>{t||i(e)},e=>{t||m(e instanceof Error?e.message:String(e))}),()=>{t=!0}},[e]);let _=async n=>{if(n.preventDefault(),a.trim()===``){m(`Name what the token is for — the server or the job it will run on.`);return}c(!0),m(null);try{u(await vO(e,{label:a.trim(),env:t})),f(!1),o(``),await g()}catch(e){m(e instanceof na?e.message:String(e))}finally{c(!1)}},v=async t=>{m(null);try{await yO(e,t),await g()}catch(e){m(e instanceof na?e.message:String(e))}},y=async e=>{try{await navigator.clipboard.writeText(e),f(!0)}catch{f(!1)}};return(0,j.jsxs)(kC,{tight:!0,children:[(0,j.jsx)(AC,{title:`Tokens`,ledeWidth:640,lede:`Your own keys on this console — one per device — and the tokens this org's servers run on in ${t}. A server's token is the org's: it opens ${t} alone, and it stays when the person who made it leaves.`}),h&&(0,j.jsx)(H,{pad:!0,children:(0,j.jsxs)(`form`,{className:`keys-form`,onSubmit:e=>void _(e),children:[(0,j.jsxs)(`div`,{className:`keys-label-field`,children:[(0,j.jsxs)(`label`,{className:`ui-label`,htmlFor:`token-label`,children:[`New `,t,` server token`]}),(0,j.jsx)(G,{id:`token-label`,value:a,placeholder:`clinica-norte web`,onChange:e=>o(e.target.value)})]}),(0,j.jsx)(W,{type:`submit`,kind:`primary`,size:`form`,disabled:s,children:s?`Making…`:`Create`}),(0,j.jsxs)(`div`,{className:`keys-form-note`,children:[`It opens `,t,` — this console's world — and holds the agent there and pushes its knowledge base in a release, nothing else.`,t===`sandbox`?` Production's is made on production's console.`:` The sandbox's is made on the sandbox's console.`]})]})}),l!==null&&(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`${l.label??`A new token`} · ${l.env}`,meta:`shown once`,action:(0,j.jsxs)(`span`,{className:`keys-minted-actions`,children:[(0,j.jsx)(W,{size:`xs`,onClick:()=>void y(`PINECALL_KEY=${l.key}`),children:d?`Copied`:`Copy`}),(0,j.jsx)(W,{size:`xs`,onClick:()=>u(null),children:`Done`})]})}),(0,j.jsxs)(`pre`,{className:`ui-code`,children:[`PINECALL_KEY=`,l.key]}),(0,j.jsx)(`div`,{className:`keys-minted-warn`,children:`Copy it now and put it in your server's secrets: the gateway keeps its fingerprint, and this token is never shown again.`})]}),(0,j.jsx)(Ah,{children:p}),(0,j.jsx)(H,{children:r!==null&&r.length===0?(0,j.jsx)(kh,{children:"No token yet. A server's is made above; yours is made by `pinecall link`."}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(NC,{columns:x4,labels:[`Name`,`World`,`Whose`,`Last used`,`Status>`]}),(r??[]).map(e=>(0,j.jsx)(C4,{row:e,stop:v},e.fingerprint))]})})]})}function C4({row:e,stop:t}){let[n,r]=(0,O.useState)(!1),i=e.revoked_at!==null,a=e.kind===`person`?`${e.name??`a person`} · their own`:`the org's${e.created_by===null?``:` · made by ${e.created_by}`}`;return(0,j.jsxs)(`div`,{className:`ui-table-row keys-row`,style:{gridTemplateColumns:x4},onMouseLeave:()=>r(!1),children:[(0,j.jsx)(`span`,{className:i?`keys-name keys-name-gone`:`keys-name`,title:e.fingerprint,children:e.label??e.fingerprint.slice(0,12)}),(0,j.jsx)(`span`,{className:`ui-cell-faint`,children:e.env??`—`}),(0,j.jsx)(`span`,{className:`ui-cell-ink ui-clip`,children:a}),(0,j.jsx)(`span`,{className:`ui-cell-faint`,children:e.last_used_at===null?`never`:hE(Date.parse(e.last_used_at)/1e3)}),(0,j.jsxs)(`span`,{className:`ui-cell-end`,children:[!i&&(0,j.jsx)(`span`,{className:n?`keys-revoke keys-revoke-sure`:`keys-revoke`,children:(0,j.jsx)(Lh,{danger:!0,onClick:()=>n?void t(e.fingerprint):r(!0),children:n?`Revoke it`:`Revoke`})}),i?(0,j.jsx)(xC,{tone:`gray`,children:`revoked`}):(0,j.jsx)(xC,{tone:`green`,children:`active`})]})]})}var w4=e=>`/v1/agents/${encodeURIComponent(e)}/lexicon`;async function T4(e,t){return Xw.parse(await A(e,w4(t)))}async function E4(e,t,n,r,i,a){return Xw.parse(await sa(e,w4(t),{lexicon:n,if_version:r,note:i,team:a}))}function D4(e){return e instanceof Error?e.message:String(e)}function O4(e){return{said:[...e?.lexicon.said??[]],heard:[...e?.lexicon.heard??[]]}}var k4={yours:`your copy`,team:`the team's`},A4=[{tab:`said`,name:`Pronunciation`},{tab:`heard`,name:`Recognition`}];function j4(){let e=M(),t=xr().agent??``,[n,r]=Xi(),i=n.get(`tab`)===`heard`?`heard`:`said`,[a,o]=(0,O.useState)(null),[s,c]=(0,O.useState)({said:[],heard:[]}),[l,u]=(0,O.useState)({said:[],heard:[]}),[d,f]=(0,O.useState)(`yours`),[p,m]=(0,O.useState)(``),[h,g]=(0,O.useState)(!1),[_,v]=(0,O.useState)(!1),[y,b]=(0,O.useState)(null),[x,S]=(0,O.useState)(null),C=nh===`production`,w=(e,t)=>{let n=O4(C?e.production:t===`team`?e.team:e.yours??e.team);c(n),u(n)};(0,O.useEffect)(()=>{let n=!1;return T4(e,t).then(e=>{n||(o(e),w(e,`yours`))},e=>!n&&b(D4(e))),()=>{n=!0}},[e,t]);let T=a===null?null:C?a.production:d===`team`?a.team:a.yours,ee=JSON.stringify(s)!==JSON.stringify(l),te=e=>{e!==d&&a!==null&&(!ee||window.confirm(`Unsaved words in ${k4[d]}. Switching to ${k4[e]} discards them.`))&&(f(e),S(null),w(a,e))},E=async n=>{if(n.preventDefault(),a===null)return;g(!0),b(null),S(null);let r={said:s.said,heard:s.heard};try{let n=await E4(e,t,r,T?.version??null,p.trim()===``?null:p.trim(),d===`team`);o(n),w(n,d),m(``),S(`Saved. ${t} uses it from its next call.`)}catch(e){b(D4(e))}finally{g(!1)}};return(0,j.jsxs)(kC,{width:900,tight:!0,children:[(0,j.jsx)(AC,{title:`Lexicon`,ledeWidth:640,lede:`${t}'s own words: how the voice pronounces a brand, a surname or an acronym, and which names the speech recognition must expect. A change applies from its next call — no developer, no deploy.`}),a===null?(0,j.jsx)(kh,{children:y??`Asking the gateway…`}):(0,j.jsxs)(`form`,{className:`ui-card lex`,onSubmit:e=>void E(e),children:[(0,j.jsxs)(`div`,{className:`lex-where`,children:[C?(0,j.jsxs)(`span`,{className:`lex-where-words`,children:[`Editing `,(0,j.jsx)(`b`,{children:`production`}),` — what customers hear.`]}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`span`,{className:`lex-where-words`,children:`Editing`}),(0,j.jsx)(Vh,{options:[{value:`yours`,label:`Your copy`},{value:`team`,label:`The team's`}],value:d,onChange:te}),(0,j.jsx)(`span`,{className:`lex-where-hint`,children:d===`yours`?`Only your sandbox copy hears it.`:`Every copy without words of its own hears it.`})]}),(0,j.jsx)(`span`,{className:`lex-version`,children:T===null?`nothing saved yet`:`v${T.version} · ${T.author} · ${hE(T.set_at)}`})]}),(0,j.jsxs)(`div`,{className:`lex-tabs`,children:[(0,j.jsx)(GC,{label:`Lexicon`,tabs:A4.map(e=>({...e,mark:(0,j.jsx)(`span`,{className:`lex-count`,children:e.tab===`said`?s.said.length:s.heard.length})})),on:i,onPick:e=>r(e===`said`?{}:{tab:e})}),(0,j.jsx)(`button`,{type:`button`,className:`lex-help`,onClick:()=>v(!0),children:`How this works`})]}),i===`said`?(0,j.jsx)(N4,{words:s,onChange:c}):(0,j.jsx)(P4,{words:s,onChange:c}),(0,j.jsxs)(`div`,{className:`lex-save`,children:[(0,j.jsx)(G,{className:`lex-note`,value:p,placeholder:`Why, for the history (optional)`,"aria-label":`Why, for the history (optional)`,onChange:e=>m(e.target.value)}),(0,j.jsx)(W,{kind:`primary`,size:`form`,type:`submit`,disabled:h||!ee,children:h?`Saving…`:`Save changes`}),(0,j.jsx)(`span`,{className:ee?`lex-state lex-state-dirty`:`lex-state`,children:ee?`Unsaved changes`:x??`Up to date`})]})]}),_&&(0,j.jsx)(M4,{onClose:()=>v(!1)}),a!==null&&(0,j.jsx)(Ah,{children:y})]})}function M4({onClose:e}){return(0,O.useEffect)(()=>{let t=t=>{t.key===`Escape`&&e()};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e]),(0,j.jsx)(`div`,{className:`lex-veil`,onMouseDown:e,children:(0,j.jsxs)(`div`,{className:`lex-help-box`,role:`dialog`,"aria-label":`How the lexicon works`,onMouseDown:e=>e.stopPropagation(),children:[(0,j.jsxs)(`div`,{className:`lex-help-head`,children:[(0,j.jsx)(`b`,{children:`How this works`}),(0,j.jsx)(`button`,{type:`button`,className:`lex-help-x`,"aria-label":`Close`,onClick:e,children:`×`})]}),(0,j.jsxs)(`section`,{className:`lex-help-part`,children:[(0,j.jsx)(`h3`,{children:`Pronunciation`}),(0,j.jsx)(`p`,{children:`When the voice reads a word as it is written and gets it wrong, write it the way it should sound. The voice says the second spelling every time the first appears.`}),(0,j.jsxs)(`p`,{className:`lex-help-eg`,children:[(0,j.jsx)(`b`,{children:`Vidal`}),` → “Bidal” · `,(0,j.jsx)(`b`,{children:`SQL`}),` → “sequel”`]})]}),(0,j.jsxs)(`section`,{className:`lex-help-part`,children:[(0,j.jsx)(`h3`,{children:`Recognition`}),(0,j.jsx)(`p`,{children:`Words a caller says that the speech recognition would otherwise mishear: brand names, surnames, streets, product codes. The agent's ears expect them on every call.`}),(0,j.jsxs)(`p`,{className:`lex-help-eg`,children:[(0,j.jsx)(`b`,{children:`Clínica Norte`}),` · `,(0,j.jsx)(`b`,{children:`Coral Gables`}),` · `,(0,j.jsx)(`b`,{children:`Ferrán`})]})]})]})})}function N4({words:e,onChange:t}){let[n,r]=(0,O.useState)(``),[i,a]=(0,O.useState)(``),o=()=>{n.trim()!==``&&i.trim()!==``&&(t({...e,said:[...e.said.filter(e=>e.word!==n.trim()),{word:n.trim(),spoken:i.trim()}]}),r(``),a(``))};return(0,j.jsxs)(`section`,{className:`lex-panel`,children:[e.said.length===0?(0,j.jsx)(`p`,{className:`lex-none`,children:`No word is pronounced any other way than it is written.`}):(0,j.jsxs)(`div`,{className:`lex-table`,children:[(0,j.jsxs)(`div`,{className:`lex-row lex-row-head`,children:[(0,j.jsx)(`span`,{children:`Written as`}),(0,j.jsx)(`span`,{children:`Said as`}),(0,j.jsx)(`span`,{})]}),e.said.map(n=>(0,j.jsxs)(`div`,{className:`lex-row`,children:[(0,j.jsx)(`span`,{className:`lex-word`,children:n.word}),(0,j.jsxs)(`span`,{className:`lex-spoken`,children:[`“`,n.spoken,`”`]}),(0,j.jsx)(`button`,{type:`button`,className:`lex-x`,"aria-label":`remove ${n.word}`,onClick:()=>t({...e,said:e.said.filter(e=>e.word!==n.word)}),children:`Remove`})]},n.word))]}),(0,j.jsxs)(`div`,{className:`lex-add`,children:[(0,j.jsx)(G,{size:`sm`,value:n,placeholder:`Written as — Vidal`,"aria-label":`Written as`,onChange:e=>r(e.target.value),onKeyDown:e=>e.key===`Enter`&&(e.preventDefault(),o())}),(0,j.jsx)(`span`,{className:`lex-arrow`,"aria-hidden":!0,children:`→`}),(0,j.jsx)(G,{size:`sm`,value:i,placeholder:`Said as — Bidal`,"aria-label":`Said as`,onChange:e=>a(e.target.value),onKeyDown:e=>e.key===`Enter`&&(e.preventDefault(),o())}),(0,j.jsx)(W,{size:`sm`,disabled:n.trim()===``||i.trim()===``,onClick:o,children:`Add`})]})]})}function P4({words:e,onChange:t}){let[n,r]=(0,O.useState)(``),i=()=>{let i=n.split(/[,\n]/).map(e=>e.trim()).filter(t=>t!==``&&!e.heard.includes(t));i.length>0&&t({...e,heard:[...e.heard,...i]}),r(``)};return(0,j.jsxs)(`section`,{className:`lex-panel`,children:[e.heard.length===0?(0,j.jsx)(`p`,{className:`lex-none`,children:`No extra words: the ears know only the names the call's state carries.`}):(0,j.jsx)(`div`,{className:`lex-chips`,children:e.heard.map(n=>(0,j.jsxs)(`span`,{className:`lex-chip`,children:[n,(0,j.jsx)(`button`,{type:`button`,className:`lex-chip-x`,"aria-label":`remove ${n}`,onClick:()=>t({...e,heard:e.heard.filter(e=>e!==n)}),children:`×`})]},n))}),(0,j.jsxs)(`div`,{className:`lex-add`,children:[(0,j.jsx)(G,{size:`sm`,value:n,placeholder:`Add words — several at once, separated by commas`,"aria-label":`Words the ears must expect`,onChange:e=>r(e.target.value),onKeyDown:e=>e.key===`Enter`&&(e.preventDefault(),i())}),(0,j.jsx)(W,{size:`sm`,disabled:n.trim()===``,onClick:i,children:`Add`})]})]})}var F4=[`all`,...rT],I4=`130px minmax(0,1.6fr) 110px 92px`,L4={[Zw]:0,[$w]:1,[eT]:2,[Qw]:3};function R4(){let e=M(),[t,n]=(0,O.useState)(null),[r,i]=(0,O.useState)(null),[a,o]=(0,O.useState)(``),[s,c]=(0,O.useState)(``),[l,u]=(0,O.useState)(`all`),[d,f]=(0,O.useState)(!1),[p,m]=(0,O.useState)(null),h=async()=>i(await $O(e));(0,O.useEffect)(()=>{let t=!1,r=e=>{t||m(e instanceof Error?e.message:String(e))};return aT(e).then(e=>{t||n(e)},r),$O(e).then(e=>{t||i(e)},r),()=>{t=!0}},[e]);let g=async t=>{t.preventDefault(),f(!0),m(null);try{await ek(e,a.trim(),s),c(``),o(``),await h()}catch(e){m(e instanceof na?e.message:String(e))}finally{f(!1)}},_=async t=>{m(null);try{await tk(e,t),await h()}catch(e){m(e instanceof na?e.message:String(e))}},v=t?.providers??[],y=new Set(r??[]),b=(l===`all`?v:oT(v,l)).slice().sort((e,t)=>Number(y.has(t.name))-Number(y.has(e.name))||L4[e.standing]-L4[t.standing]||e.name.localeCompare(t.name));return(0,j.jsxs)(kC,{tight:!0,children:[(0,j.jsx)(AC,{title:`Providers`,ledeWidth:660,lede:`Every vendor the runtime can reach, and what each one still wants on this box. Nothing reads a key back — not this page, not the CLI, not the log.`}),(0,j.jsxs)(H,{pad:!0,children:[(0,j.jsxs)(`form`,{className:`ui-form`,onSubmit:e=>void g(e),children:[(0,j.jsx)(Bh,{label:`Bring one`,minWidth:180,children:(0,j.jsxs)(vC,{value:a,onValueChange:e=>o(e),children:[(0,j.jsx)(yC,{value:``,children:`Choose a vendor…`}),v.filter(e=>e.env!==null).map(e=>(0,j.jsxs)(yC,{value:e.name,children:[e.name,` · `,e.does.join(` `)]},e.name))]})}),(0,j.jsx)(Bh,{label:`The key, sent once`,grow:!0,minWidth:220,children:(0,j.jsx)(G,{type:`password`,value:s,placeholder:`sk-…`,autoComplete:`off`,onChange:e=>c(e.target.value)})}),(0,j.jsx)(W,{kind:`primary`,size:`form`,type:`submit`,disabled:d||a.trim()===``||s===``,children:d?`Sending…`:`Bring it`})]}),(0,j.jsx)(`div`,{className:`prov-hint`,children:`A key brought here runs every call of this org from the next one; every vendor nobody brought runs on the box's own key.`})]}),(0,j.jsx)(Ah,{children:p}),(0,j.jsx)(Hh,{options:F4.map(e=>({value:e,label:e===`all`?`All ${v.length}`:`${e.toUpperCase()} ${oT(v,e).length}`})),value:l,onChange:u}),(0,j.jsx)(H,{children:b.map(e=>(0,j.jsxs)(`div`,{className:`prov-row`,style:{gridTemplateColumns:I4},title:e.aliases.length>0?`also ${e.aliases.join(` · `)}`:void 0,children:[(0,j.jsx)(`span`,{className:`prov-name`,children:e.name}),(0,j.jsxs)(`span`,{className:`prov-note`,children:[(0,j.jsx)(`span`,{className:`ui-clip`,children:sT(e)}),y.has(e.name)&&(0,j.jsx)(Lh,{danger:!0,onClick:()=>void _(e.name),children:`Give back`})]}),(0,j.jsx)(`span`,{className:`prov-kinds`,children:e.does.join(` `)}),(0,j.jsx)(`span`,{className:`ui-cell-end`,children:(0,j.jsx)(z4,{provider:e,brought:y.has(e.name)})})]},e.name))})]})}function z4({provider:e,brought:t}){return t?(0,j.jsx)(xC,{tone:`green`,children:`your key`}):e.standing===`ready`?(0,j.jsx)(xC,{tone:`green`,children:`ready`}):(0,j.jsx)(xC,{tone:`gray`,children:e.standing})}var B4=z({secrets:R(z({name:P(),set_by:P(),set_at:F()}))}),V4=e=>`/v1/secrets/${encodeURIComponent(e)}`;async function H4(e){return B4.parse(await A(e,`/v1/secrets`)).secrets}async function U4(e,t,n){return B4.parse(await sa(e,V4(t),{value:n})).secrets}async function W4(e,t){return B4.parse(await ua(e,V4(t))).secrets}var G4=/^[A-Z][A-Z0-9_]*$/;function K4(e){return e===``?`Name it: the variable the app reads, like CRM_TOKEN.`:G4.test(e)?e.startsWith(`PINECALL_`)?`A name starting with PINECALL_ is the box's own: it sets those itself.`:null:`A name is an environment variable's: capitals, digits and underscores, starting with a capital.`}var q4=`minmax(0,1.2fr) minmax(0,1fr) 150px 80px`;function J4(){let e=M(),{world:t}=ow(),[n,r]=(0,O.useState)(null),[i,a]=(0,O.useState)(``),[o,s]=(0,O.useState)(``),[c,l]=(0,O.useState)(!1),[u,d]=(0,O.useState)(null);(0,O.useEffect)(()=>{let t=!1;return H4(e).then(e=>{t||r(e)},e=>{t||d(ra(e))}),()=>{t=!0}},[e]);let f=async t=>{t.preventDefault();let n=i.trim(),c=K4(n)??(o===``?`A secret needs a value.`:null);if(c!==null){d(c);return}l(!0),d(null);try{r(await U4(e,n,o)),s(``),a(``)}catch(e){d(ra(e))}finally{l(!1)}},p=async n=>{if(window.confirm(`Delete ${n}? Every hosted app of the org in ${t} restarts without it.`)){d(null);try{r(await W4(e,n))}catch(e){d(ra(e))}}};return(0,j.jsxs)(kC,{tight:!0,children:[(0,j.jsx)(AC,{title:`Secrets`,ledeWidth:660,lede:`What the org's hosted apps are started with in ${t}, as environment variables. A value is set or replaced here and never read back — not by this page, not by the CLI.`}),(0,j.jsxs)(H,{pad:!0,children:[(0,j.jsxs)(`form`,{className:`ui-form`,onSubmit:e=>void f(e),children:[(0,j.jsx)(Bh,{label:`Name`,minWidth:200,children:(0,j.jsx)(G,{value:i,placeholder:`CRM_TOKEN`,autoComplete:`off`,spellCheck:!1,onChange:e=>a(e.target.value)})}),(0,j.jsx)(Bh,{label:`Value, sent once`,grow:!0,minWidth:220,children:(0,j.jsx)(G,{type:`password`,value:o,autoComplete:`new-password`,onChange:e=>s(e.target.value)})}),(0,j.jsx)(W,{kind:`primary`,size:`form`,type:`submit`,disabled:c||i.trim()===``||o===``,children:c?`Saving…`:`Save`})]}),(0,j.jsxs)(`div`,{className:`secrets-note`,children:[`Setting or removing one restarts every hosted app of the org in `,t,`; the old process answers until the new one registers. A name starting with `,(0,j.jsx)(`span`,{className:`ui-fixed`,children:`PINECALL_`}),` is the box's own.`]})]}),(0,j.jsx)(Ah,{children:u}),(0,j.jsx)(H,{children:n!==null&&n.length===0?(0,j.jsxs)(kh,{children:[`No secret in `,t," yet. One set above, or with `pinecall secrets set`, is in every hosted app's environment from its next start."]}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(NC,{columns:q4,labels:[`Name`,`Set by`,`Set`,``]}),(n??[]).map(e=>(0,j.jsxs)(`div`,{className:`ui-table-row`,style:{gridTemplateColumns:q4},children:[(0,j.jsx)(`span`,{className:`ui-cell-strong ui-clip ui-fixed`,children:e.name}),(0,j.jsx)(`span`,{className:`ui-cell-ink ui-clip`,children:e.set_by}),(0,j.jsx)(`span`,{className:`ui-cell-faint`,children:hE(e.set_at)}),(0,j.jsx)(`span`,{className:`ui-cell-end`,children:(0,j.jsx)(Lh,{danger:!0,onClick:()=>void p(e.name),children:`Delete`})})]},e.name))]})})]})}function Y4(e){return e instanceof Error?e.message:String(e)}function X4(e){return(nh===`production`?e.production:e.yours??e.team)?.config.bases??[]}function Z4({agent:e}){let t=M(),[n,r]=(0,O.useState)(null),[i,a]=(0,O.useState)(null);return(0,O.useEffect)(()=>{let n=!1;return FX(t,e).then(e=>{n||r(X4(e))},e=>{n||a(Y4(e))}),()=>{n=!0}},[t,e]),(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Attached bases`,meta:`what this agent reads on every call — set in Settings, per corner and versioned`}),i===null?n===null?(0,j.jsx)(kh,{children:`Asking the gateway…`}):n.length===0?(0,j.jsxs)(kh,{children:[`No base attached: this agent searches nothing. Attach one in `,(0,j.jsx)(Wi,{to:`/a/${encodeURIComponent(e)}/configure`,children:`Configure`}),", or `pinecall docs attach <base>`."]}):(0,j.jsxs)(`div`,{className:`kb-attached`,children:[n.map(e=>(0,j.jsxs)(`div`,{className:`kb-attached-row`,children:[(0,j.jsx)(`span`,{className:`ui-cell-strong`,children:e.base}),(0,j.jsxs)(`span`,{className:`ui-cell-faint`,children:[e.mode??`retrieved`,` · k `,e.k??8,e.min_score===void 0||e.min_score===null?``:` · min score ${e.min_score}`]})]},e.base)),(0,j.jsxs)(`div`,{className:`ui-card-foot`,children:[n.length>1&&`They are one search: read together and ranked against each other, so a base with nothing to say about the question takes none of the turn's chunks. `,`Change them in `,(0,j.jsx)(Wi,{to:`/a/${encodeURIComponent(e)}/configure`,children:`Configure`}),`.`]})]}):(0,j.jsx)(kh,{children:i})]})}var Q4=`minmax(0,1fr) 90px 140px 150px 80px`;function $4(){let e=M(),t=xr().agent??``,[n,r]=(0,O.useState)(null),[i,a]=(0,O.useState)(null),[o,s]=(0,O.useState)(null),[c,l]=(0,O.useState)(``),[u,d]=(0,O.useState)(``),[f,p]=(0,O.useState)(null),[m,h]=(0,O.useState)(null),[g,_]=(0,O.useState)(null),v=(0,O.useCallback)(async()=>{s((await vX(e)).bases)},[e]);(0,O.useEffect)(()=>{let n=!1;return v().catch(e=>{n||_(t3(e))}),yX(e,t).then(e=>{n||(r(e),l(e.base??t))},e=>{n||a(t3(e))}),()=>{n=!0}},[e,t,v]);let y=async n=>{d(n),_(null);try{n===`push`?(p(await bX(e,t,c)),await v()):h(await xX(e,t,c))}catch(e){_(t3(e))}finally{d(``)}},b=async t=>{if(window.confirm(`Drop the base ${t}? Nothing brings it back but another push.`)){_(null);try{await SX(e,t),await v()}catch(e){_(t3(e))}}},x=n!==null&&n.agent===t;return(0,j.jsxs)(kC,{width:1060,tight:!0,children:[(0,j.jsx)(AC,{title:`Docs`,ledeWidth:620,lede:`The documents this agent searches on a turn — the RAG. A base opens onto its files, read and edited one at a time; a project pushes its folder whole from here. Which bases the agent reads is its Configure screen; what it knows by heart is Configure ▸ Knowledge, not a document.`}),(0,j.jsx)(Z4,{agent:t}),(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`This directory`,children:x&&(0,j.jsxs)(`label`,{className:`kb-base`,children:[(0,j.jsx)(`span`,{className:`kb-base-label`,children:`base`}),(0,j.jsx)(`input`,{className:`kb-base-input`,value:c,size:Math.max(6,c.length),onChange:e=>l(e.target.value)})]})}),n===null&&i===null&&(0,j.jsxs)(kh,{children:[`Asking the process that holds `,t,`…`]}),n===null&&i!==null&&(0,j.jsxs)(kh,{children:[`The directory is read by the process holding `,t,`, and it did not answer: `,i,`. Bases already pushed are listed below.`]}),n!==null&&!x&&(0,j.jsx)(kh,{children:n.agent===null?"No agent class in the project the agent's `pinecall start` runs in, so there is nothing here to push.":`The process holding the agent runs in ${n.agent}'s project: to push ${t}'s documents, run \`pinecall start\` there.`}),x&&(0,j.jsxs)(`div`,{className:`kb-here`,children:[(0,j.jsx)(`span`,{className:`kb-path`,children:n.directory??`—`}),(0,j.jsxs)(`span`,{className:`kb-count`,children:[n.files,` markdown file`,n.files===1?``:`s`]}),(0,j.jsx)(W,{size:`md`,disabled:u!==``||n.files===0,onClick:()=>void y(`push`),children:u===`push`?`Pushing…`:`Push the folder`}),(0,j.jsx)(`span`,{className:`kb-path`,children:n.golden===null?`no golden beside it`:`${n.questions} questions`}),(0,j.jsx)(W,{size:`md`,disabled:u!==``||n.golden===null,onClick:()=>void y(`eval`),children:u===`eval`?`Asking…`:`Run the golden`})]}),f!==null&&(0,j.jsxs)(`div`,{className:`ui-card-foot`,children:[`Pushed `,f.base,` · `,f.files,` files · `,f.chunks,` chunks · `,Math.round(f.took_ms),` ms`]})]}),(0,j.jsx)(Ah,{children:g}),m!==null&&(0,j.jsx)(e3,{score:m}),(0,j.jsx)(H,{children:o!==null&&o.length===0?(0,j.jsx)(kh,{children:"No base pushed yet. Push the folder above, or `pinecall docs push` from the project."}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(NC,{columns:Q4,labels:[`Base`,`Chunks`,`Embedder`,`Pushed`,``]}),(o??[]).map(e=>(0,j.jsxs)(PC,{columns:Q4,to:`/docs/${encodeURIComponent(e.base)}`,children:[(0,j.jsx)(`span`,{className:`ui-cell-strong ui-clip`,children:e.base}),(0,j.jsx)(`span`,{className:`ui-cell-ink`,children:e.chunks}),(0,j.jsx)(`span`,{className:`ui-cell ui-clip`,children:e.model}),(0,j.jsx)(`span`,{className:`ui-cell`,children:hE(e.pushed_at)}),(0,j.jsx)(`span`,{className:`ui-cell-end`,children:(0,j.jsx)(Lh,{danger:!0,onClick:()=>void b(e.base),children:`Drop`})})]},e.base))]})})]})}function e3({score:e}){return(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`The golden`,meta:`${e.base} · ${e.model} · ${e.questions} questions · ${Math.round(e.took_ms)} ms`}),(0,j.jsxs)(`div`,{className:`kb-figures`,children:[(0,j.jsxs)(`div`,{children:[(0,j.jsxs)(`div`,{className:`kb-figure-label`,children:[`recall@`,e.k]}),(0,j.jsx)(`div`,{className:`kb-figure`,children:e.recall_at_k.toFixed(2)})]}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`div`,{className:`kb-figure-label`,children:`nDCG@10`}),(0,j.jsx)(`div`,{className:`kb-figure`,children:e.ndcg_at_10.toFixed(2)})]})]}),e.misses.length===0?(0,j.jsx)(`div`,{className:`ui-card-foot`,children:`Every question found what it asked for.`}):e.misses.map(e=>(0,j.jsxs)(`div`,{className:`kb-miss`,children:[(0,j.jsx)(`div`,{className:`kb-miss-asks`,children:e.asks}),(0,j.jsxs)(`div`,{className:`kb-miss-why`,children:[`wanted `,e.expects,` · got `,e.found[0]??`nothing`]})]},e.asks))]})}function t3(e){return e instanceof na||e instanceof Error?e.message:String(e)}var n3=`150px minmax(0,1fr) 110px 76px`;function r3(e){return e.startsWith(`+`)?aE(e):e}function i3(){let e=M(),t=xr().agent??``,[n,r]=(0,O.useState)(void 0),[i,a]=(0,O.useState)(``),[o,s]=(0,O.useState)(null),[c,l]=(0,O.useState)(null),[u,d]=(0,O.useState)(null),f=(0,O.useCallback)(async()=>{r(await J2(e,t))},[e,t]);(0,O.useEffect)(()=>{let n=!1;return J2(e,t).then(e=>{n||r(e)},e=>{n||(r(null),d(s3(e)))}),()=>{n=!0}},[e,t]);let p=async t=>{t.preventDefault();let n=i.trim();d(null),l(null);try{s({contact:n,facts:(await H2(e,n)).facts})}catch(e){d(s3(e))}},m=async t=>{if(window.confirm(`Erase everything memory kept about ${t}? There is no undo.`)){d(null);try{let r=(await U2(e,t)).forgotten;l(`${r} fact${r===1?``:`s`} about ${r3(t)} forgotten.`),s({contact:t,facts:[]}),n!=null&&await f()}catch(e){d(s3(e))}}},h=async t=>{if(window.confirm(`Drop "${t.text}"? The rest of what memory keeps about ${r3(t.contact)} stays.`)){d(null);try{await Y2(e,t.id),await f()}catch(e){d(s3(e))}}},g=n!=null,_=g?n.filter(e=>i.trim()===``||e.contact.includes(i.trim())):[];return(0,j.jsxs)(kC,{width:900,tight:!0,children:[(0,j.jsx)(AC,{title:`Memory`,ledeWidth:620,lede:`What this agent carries between calls with the same caller — written by the agent, readable here, and droppable one row at a time.`}),(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Callers`,children:(0,j.jsxs)(`form`,{className:`mem-look`,onSubmit:e=>void p(e),children:[(0,j.jsx)(G,{size:`sm`,value:i,placeholder:`Look up a caller — a number or an id`,onChange:e=>a(e.target.value)}),!g&&(0,j.jsx)(W,{size:`sm`,type:`submit`,disabled:i.trim()===``,children:`Look up`}),o!==null&&o.facts.length>0&&(0,j.jsx)(W,{size:`sm`,kind:`danger`,onClick:()=>void m(o.contact),children:`Forget`})]})}),c!==null&&(0,j.jsx)(`div`,{className:`ui-card-foot`,children:c}),g?_.length===0?(0,j.jsx)(kh,{children:n.length===0?`Memory keeps nothing about any caller of this agent yet.`:`No caller matches.`}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(NC,{columns:n3,labels:[`Caller`,`Remembered`,`Written`,`Action>`]}),_.map(e=>(0,j.jsxs)(`div`,{className:`ui-table-row`,style:{gridTemplateColumns:n3},children:[(0,j.jsx)(`span`,{className:`mem-caller ui-clip`,title:e.contact,children:r3(e.contact)}),(0,j.jsx)(`span`,{className:`mem-fact`,children:e.text}),(0,j.jsx)(`span`,{className:`ui-cell-faint`,children:gE(e.written_at)}),(0,j.jsx)(`span`,{className:`ui-cell-end`,children:(0,j.jsx)(Lh,{danger:!0,onClick:()=>void h(e),children:`Drop`})})]},e.id))]}):o===null?(0,j.jsx)(kh,{children:`Look up a caller by the number they called from, or by the id your app named them with, to read what memory keeps about them.`}):o.facts.length===0?(0,j.jsxs)(kh,{children:[`Memory keeps nothing about `,r3(o.contact),`.`]}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(NC,{columns:n3,labels:[`Caller`,`Remembered`,`Written`,`Category>`]}),o.facts.map((e,t)=>(0,j.jsxs)(`div`,{className:e.invalidated_at===null?`ui-table-row`:`ui-table-row mem-gone`,style:{gridTemplateColumns:n3},children:[(0,j.jsx)(`span`,{className:`mem-caller ui-clip`,children:r3(o.contact)}),(0,j.jsxs)(`span`,{className:`mem-fact`,children:[e.text,e.invalidated_at!==null&&(0,j.jsxs)(`span`,{className:`mem-superseded`,children:[` · superseded `,gE(e.invalidated_at)]})]}),(0,j.jsx)(`span`,{className:`ui-cell-faint`,children:gE(e.valid_from)}),(0,j.jsx)(`span`,{className:`ui-cell-faint ui-clip mem-category`,children:e.category??`—`})]},e.id??`${t}`))]})]}),(0,j.jsx)(Ah,{children:u}),(0,j.jsx)(a3,{agent:t})]})}function a3({agent:e}){let t=M(),[n,r]=(0,O.useState)(null),[i,a]=(0,O.useState)(null),[o,s]=(0,O.useState)(``),[c,l]=(0,O.useState)(null),[u,d]=(0,O.useState)(null),[f,p]=(0,O.useState)(null);(0,O.useEffect)(()=>{let n=!1;return W2(t,e).then(e=>{n||r(e)},e=>{n||a(s3(e))}),()=>{n=!0}},[t,e]);let m=async n=>{s(n),p(null);try{n===`recall`?l(await G2(t,e)):d(await K2(t,e))}catch(e){p(s3(e))}finally{s(``)}};return n===null?i===null?null:(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`The goldens of this directory`}),(0,j.jsxs)(kh,{children:[`They are read by the process holding `,e,`, and it did not answer: `,i,`.`]})]}):n.agent===e?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`div`,{className:`mem-goldens`,children:[(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Recall`,meta:`${n.questions} questions`}),(0,j.jsxs)(`div`,{className:`mem-run`,children:[(0,j.jsx)(`p`,{className:`mem-say`,children:`Every question asked of the ranking, scored by code with no model. No contact of yours is read: each question brings its own facts to a scratch contact.`}),(0,j.jsx)(W,{size:`md`,disabled:o!==``||n.questions===0,onClick:()=>void m(`recall`),children:o===`recall`?`Asking…`:`Run it`})]}),c!==null&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`div`,{className:`mem-figures`,children:[(0,j.jsx)(o3,{label:`recall@${c.k}`,value:c.recall_at_k.toFixed(2)}),(0,j.jsx)(o3,{label:`nDCG@10`,value:c.ndcg_at_10.toFixed(2)}),(0,j.jsx)(o3,{label:`missed`,value:String(c.misses.length)})]}),c.misses.map(e=>(0,j.jsxs)(`div`,{className:`mem-miss`,children:[(0,j.jsx)(`div`,{className:`mem-miss-asks`,children:e.asks}),(0,j.jsxs)(`div`,{className:`mem-miss-why`,children:[`wanted `,e.missing.join(`, `),` · got `,e.found[0]??`nothing`]})]},e.asks))]})]}),(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Extraction`,meta:`${n.cases.length} cases`}),(0,j.jsxs)(`div`,{className:`mem-run`,children:[(0,j.jsx)(`p`,{className:`mem-say`,children:`One call written down per case, and one model call each — the very one a hang-up makes. Which categories got a fact, which never did, what must not survive.`}),(0,j.jsx)(W,{size:`md`,disabled:o!==``||n.cases.length===0,onClick:()=>void m(`extraction`),children:o===`extraction`?`Running…`:`Run them`})]}),u!==null&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`div`,{className:`mem-figures`,children:[(0,j.jsx)(o3,{label:`held`,value:`${u.held}/${u.cases}`}),(0,j.jsx)(o3,{label:`model`,value:u.model})]}),u.results.filter(e=>!e.held).map(e=>(0,j.jsxs)(`div`,{className:`mem-miss`,children:[(0,j.jsx)(`div`,{className:`mem-miss-asks`,children:e.name}),(0,j.jsx)(`div`,{className:`mem-miss-why`,children:(e.broke??[]).map(e=>`${e.check}: ${e.detail}`).join(` · `)})]},e.name))]})]})]}),(0,j.jsx)(Ah,{children:f})]}):(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`The goldens of this directory`}),(0,j.jsx)(kh,{children:n.agent===null?"No agent class in the directory the agent's `pinecall start` runs in, so its goldens are not here.":`The process holding the agent runs in ${n.agent}'s directory: to run ${e}'s memory goldens, run \`pinecall start\` there.`})]})}function o3({label:e,value:t}){return(0,j.jsxs)(`div`,{style:{minWidth:0},children:[(0,j.jsx)(`div`,{className:`mem-figure-label`,children:e}),(0,j.jsx)(`div`,{className:`mem-figure ui-clip`,children:t})]})}function s3(e){return e instanceof na||e instanceof Error?e.message:String(e)}var c3={twilio:`Twilio`,sip:`SIP peer`,whatsapp:`WhatsApp`},l3={twilio:`Tw`,sip:`IP`,whatsapp:`WA`};function u3({carriers:e,outbound:t,busy:n,onDrop:r}){return e.length===0?(0,j.jsx)(H,{children:(0,j.jsxs)(`div`,{className:`num-hero`,children:[(0,j.jsx)(`div`,{className:`num-hero-title`,children:`No account yet`}),(0,j.jsx)(`p`,{className:`num-hero-say`,children:`An account is connected the first time you add a number through it: Twilio, your PBX, or WhatsApp.`})]})}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`div`,{className:`num-accounts`,children:e.map(e=>(0,j.jsxs)(`div`,{className:`num-account`,children:[(0,j.jsxs)(`div`,{className:`num-account-top`,children:[(0,j.jsx)(`span`,{className:`num-logo num-logo-${e.kind}`,children:l3[e.kind]}),(0,j.jsxs)(`span`,{children:[(0,j.jsx)(`span`,{className:`num-account-name`,children:e.label===``?c3[e.kind]:`${c3[e.kind]} · ${e.label}`}),(0,j.jsx)(`span`,{className:`num-account-id`,children:e.account})]})]}),(0,j.jsx)(`ul`,{className:`num-caps`,children:d3(e,t).map(([e,t])=>(0,j.jsx)(f3,{state:e,text:t},t))}),(0,j.jsx)(`div`,{className:`num-account-foot`,children:(0,j.jsx)(W,{size:`xs`,kind:`danger`,onClick:()=>void r(e.account),disabled:n,title:`Its numbers keep ringing until each is removed.`,children:`Remove`})})]},e.account))}),(0,j.jsx)(`div`,{className:`num-foot`,children:`Credentials are stored encrypted and never shown again. Removing an account leaves its numbers ringing until you remove each one.`})]})}function d3(e,t){if(e.kind===`twilio`){let e=t?.kind===`twilio`&&t.ready;return[[`yes`,`Lists your numbers`],[`yes`,`Points them here for you`],[e?`yes`:`no`,e?`Calls out · ready`:`Calls out once turned on`]]}if(e.kind===`whatsapp`)return[[`yes`,`Receives messages`],[`yes`,`Replies from this number`],[`no`,`Calls: not on WhatsApp`]];let n=[[`no`,`Lists numbers: a PBX cannot`]];for(let t of e.networks)n.push([t.state===`approved`?`yes`:t.state===`waiting`?`waiting`:`no`,`${t.network} ${t.state===`approved`?`admitted`:t.state===`waiting`?`waits for the box operator`:`refused by the box operator`}`]);return n}function f3({state:e,text:t}){return(0,j.jsxs)(`li`,{className:e===`no`?`num-cap num-cap-no`:`num-cap`,children:[e===`no`?(0,j.jsx)(`span`,{className:`num-cap-off`}):(0,j.jsx)(CC,{tone:e===`yes`?`green`:`amber`,small:!0}),t]})}function p3(){let e=new Uint8Array(18);return crypto.getRandomValues(e),Array.from(e,e=>e.toString(36).padStart(2,`0`)).join(``).slice(0,24)}function m3({kind:e,busy:t,onBring:n}){let[r,i]=(0,O.useState)(``),[a,o]=(0,O.useState)(``),[s,c]=(0,O.useState)(``),[l,u]=(0,O.useState)(``),[d,f]=(0,O.useState)(``),[p,m]=(0,O.useState)(``);return(0,j.jsxs)(`form`,{className:`num-connect`,onSubmit:t=>{t.preventDefault();let i=r.trim()===``?{}:{label:r.trim()};n(e===`twilio`?{kind:e,account_sid:a.trim(),user:s.trim()||a.trim(),secret:l,...i}:{kind:e,phone_number_id:d.trim(),access_token:p.trim(),...i})},children:[(0,j.jsxs)(`div`,{className:`num-fields num-fields-flush`,children:[e===`twilio`?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(Rh,{children:`Account SID`}),(0,j.jsx)(G,{value:a,onChange:e=>o(e.target.value),placeholder:`AC…`,required:!0,autoComplete:`off`})]}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(Rh,{children:`API key SID · or the account SID`}),(0,j.jsx)(G,{value:s,onChange:e=>c(e.target.value),placeholder:`SK…`,autoComplete:`off`})]}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(Rh,{children:`Secret · the key's, or the auth token`}),(0,j.jsx)(G,{type:`password`,value:l,onChange:e=>u(e.target.value),required:!0,autoComplete:`new-password`})]})]}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(Rh,{children:`Phone number ID · from Meta's WhatsApp settings`}),(0,j.jsx)(G,{value:d,onChange:e=>f(e.target.value),placeholder:`1171462246041897`,required:!0,autoComplete:`off`})]}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(Rh,{children:`Access token · a system user's, so it does not expire`}),(0,j.jsx)(G,{type:`password`,value:p,onChange:e=>m(e.target.value),required:!0,autoComplete:`new-password`})]})]}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(Rh,{children:`Name · optional`}),(0,j.jsx)(G,{value:r,onChange:e=>i(e.target.value),placeholder:`Clínica`,autoComplete:`off`})]})]}),(0,j.jsxs)(`div`,{className:`num-actions num-actions-flush`,children:[(0,j.jsx)(W,{kind:`primary`,type:`submit`,disabled:t,children:t?`Connecting…`:`Connect ${e===`twilio`?`Twilio`:`WhatsApp`}`}),(0,j.jsx)(`span`,{className:`num-note`,children:e===`twilio`?`Checked once with Twilio, stored encrypted, never shown again.`:`Replies go out on this token.`})]})]})}function h3({steps:e}){return(0,j.jsx)(`ol`,{className:`num-steps`,children:e.map((e,t)=>{let[n,...r]=e.split(/\s+/);return(0,j.jsxs)(`li`,{children:[(0,j.jsx)(`span`,{className:`num-step-kind`,children:n}),(0,j.jsx)(`span`,{className:`num-step-text`,children:r.join(` `)})]},t)})})}function g3({plan:e,busy:t,confirm:n,onConfirm:r,onCancel:i}){return(0,j.jsxs)(`div`,{className:`num-plan`,children:[(0,j.jsx)(`div`,{className:`num-plan-title`,children:`What will happen. Nothing is changed until you confirm, and nothing is deleted.`}),(0,j.jsx)(h3,{steps:e.steps}),(0,j.jsxs)(`div`,{className:`num-plan-moves`,children:[(0,j.jsx)(W,{kind:`primary`,size:`md`,onClick:r,disabled:t,children:t?`Working…`:n}),(0,j.jsx)(W,{size:`md`,onClick:i,disabled:t,children:`Cancel`})]})]})}function _3({agents:e,agent:t,onAgent:n}){return(0,j.jsx)(`div`,{className:`num-fields num-fields-flush`,children:(0,j.jsxs)(`div`,{children:[(0,j.jsx)(Rh,{children:`Agent that picks up`}),e.length>0?(0,j.jsx)(vC,{value:t,onValueChange:n,required:!0,children:e.map(e=>(0,j.jsx)(yC,{value:e.slug,children:e.slug},e.slug))}):(0,j.jsx)(G,{value:t,onChange:e=>n(e.target.value),placeholder:`the agent's slug`,required:!0,autoComplete:`off`})]})})}function v3({title:e,meta:t,children:n}){return(0,j.jsxs)(`div`,{className:`num-setup`,children:[(0,j.jsxs)(`div`,{className:`num-setup-head`,children:[(0,j.jsx)(`span`,{className:`num-setup-title`,children:e}),(0,j.jsx)(`span`,{className:`num-setup-meta`,children:t})]}),(0,j.jsx)(`dl`,{className:`num-setup-list`,children:n})]})}function y3({text:e}){let[t,n]=(0,O.useState)(!1);return(0,j.jsxs)(`span`,{className:`num-copy`,children:[(0,j.jsx)(`code`,{children:e}),(0,j.jsx)(W,{size:`xs`,type:`button`,onClick:()=>void navigator.clipboard.writeText(e).then(()=>n(!0),()=>void 0),children:t?`Copied`:`Copy`})]})}function b3({number:e,onReached:t}){let n=M(),[r,i]=(0,O.useState)(!1);return(0,O.useEffect)(()=>{if(r)return;let t=()=>void PO(n,e).then(e=>i(e.last_call_at!=null),()=>void 0);t();let a=window.setInterval(t,5e3);return()=>window.clearInterval(a)},[n,e,r]),(0,j.jsxs)(`div`,{className:`num-waiting`,children:[(0,j.jsx)(CC,{tone:r?`green`:`amber`}),(0,j.jsxs)(`span`,{children:[(0,j.jsx)(`span`,{className:`num-waiting-title`,children:r?`A call reached the box`:`Waiting for the first call`}),(0,j.jsx)(`span`,{className:`num-waiting-say`,children:r?`The number rings the agent.`:`Call ${aE(e)} from any phone once the portal is set. This turns green the moment the call reaches the box.`})]}),r&&(0,j.jsx)(W,{kind:`primary`,size:`sm`,onClick:t,children:`Done`})]})}function x3(){return new URL(ih()).hostname}function S3({carriers:e,agents:t,available:n,busy:r,move:i,onAdded:a}){let o=M(),s=e.filter(e=>e.kind===`twilio`),[c,l]=(0,O.useState)(s[0]?.account??``),[u,d]=(0,O.useState)(``),[f,p]=(0,O.useState)(t[0]?.slug??``),[m,h]=(0,O.useState)(null),g=s.find(e=>e.account===c)?.account??s[0]?.account??``,_=(n?.numbers??[]).filter(e=>e.account===g);if(s.length===0)return(0,j.jsx)(m3,{kind:`twilio`,busy:r,onBring:e=>i(()=>RO(o,e))});let v={number:u,agent:f,channel:`phone`,account:g};return(0,j.jsxs)(`form`,{className:`num-way`,onSubmit:e=>{e.preventDefault(),i(()=>VO(o,v,!0)).then(h,()=>void 0)},children:[s.length>1&&(0,j.jsxs)(`div`,{children:[(0,j.jsx)(Rh,{children:`Twilio account`}),(0,j.jsx)(vC,{value:g,onValueChange:e=>{l(e),h(null)},children:s.map(e=>(0,j.jsx)(yC,{value:e.account,children:e.label===``?e.account:`${e.label} · ${e.account}`},e.account))})]}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`div`,{className:`num-q`,children:`Which number?`}),(0,j.jsx)(`div`,{className:`num-q-sub`,children:`Every number on the account, read from Twilio just now.`})]}),(0,j.jsxs)(`div`,{className:`num-list`,role:`radiogroup`,children:[_.length===0&&(0,j.jsx)(`div`,{className:`num-list-empty`,children:`This account owns no number Twilio lists.`}),_.map(e=>(0,j.jsxs)(`label`,{className:`num-list-row`,children:[(0,j.jsx)(`input`,{type:`radio`,name:`twilio-number`,value:e.number,disabled:e.imported,checked:u===e.number,onChange:()=>{d(e.number),h(null)}}),(0,j.jsx)(`span`,{className:`num-list-number`,children:aE(e.number)}),(0,j.jsx)(`span`,{className:`num-list-name`,children:e.name===e.number?``:e.name}),e.imported&&(0,j.jsx)(`span`,{className:`num-list-note`,children:`already here`})]},e.number))]}),(0,j.jsx)(_3,{agents:t,agent:f,onAgent:e=>{p(e),h(null)}}),m===null?(0,j.jsx)(`div`,{className:`num-actions-flush`,children:(0,j.jsx)(W,{kind:`primary`,type:`submit`,disabled:r||u===``||f===``,children:r?`Checking…`:`Review`})}):(0,j.jsx)(g3,{plan:m,busy:r,confirm:`Connect number`,onConfirm:()=>void i(()=>VO(o,v,!1)).then(()=>a(u),()=>void 0),onCancel:()=>h(null)})]})}function C3({way:e,agents:t,busy:n,move:r,onAdded:i}){let a=M(),[o,s]=(0,O.useState)(``),[c,l]=(0,O.useState)(t[0]?.slug??``),[u,d]=(0,O.useState)(null),f=o.replace(/[\s()-]/g,``);return(0,j.jsxs)(`form`,{className:`num-way`,onSubmit:t=>{t.preventDefault(),r(()=>VO(a,{number:f,agent:c,channel:`phone`,hooked:!0,...e.via===void 0?{}:{via:e.via}},!1)).then(()=>d(f),()=>void 0)},children:[(0,j.jsx)(`div`,{className:`num-fields num-fields-flush`,children:(0,j.jsxs)(`div`,{children:[(0,j.jsxs)(Rh,{children:[`Your `,e.name,` number`]}),(0,j.jsx)(G,{value:o,onChange:e=>s(e.target.value),placeholder:`+34 910 555 019`,required:!0,autoComplete:`off`,disabled:u!==null})]})}),(0,j.jsx)(_3,{agents:t,agent:c,onAgent:l}),(0,j.jsxs)(v3,{title:`In ${e.name}'s portal`,meta:`a SIP connection pointing here, then the number on it`,children:[(0,j.jsx)(`dt`,{children:`Send calls to`}),(0,j.jsx)(`dd`,{children:(0,j.jsx)(y3,{text:`sip:${f===``?`+…`:f}@${x3()}`})}),(0,j.jsx)(`dt`,{children:`Port and transport`}),(0,j.jsx)(`dd`,{className:`num-mono`,children:`5060 · UDP`}),(0,j.jsx)(`dt`,{children:`Number format`}),(0,j.jsx)(`dd`,{children:`E.164, with the +`}),(0,j.jsx)(`dt`,{children:`Authentication`}),(0,j.jsxs)(`dd`,{children:[`By IP. This box already accepts `,e.name,`'s networks.`]})]}),u===null?(0,j.jsx)(`div`,{className:`num-actions-flush`,children:(0,j.jsx)(W,{kind:`primary`,type:`submit`,disabled:n||f===``||c===``,children:n?`Adding…`:`Add number`})}):(0,j.jsx)(b3,{number:u,onReached:()=>i(u)})]})}function w3({carriers:e,agents:t,busy:n,move:r,onAdded:i}){let a=M(),o=e.filter(e=>e.kind===`sip`),[s,c]=(0,O.useState)(o[0]?.account??``),[l,u]=(0,O.useState)(``),[d,f]=(0,O.useState)(``),[p,m]=(0,O.useState)(``),[h,g]=(0,O.useState)(``),[_,v]=(0,O.useState)(t[0]?.slug??``),[y]=(0,O.useState)(p3),[b,x]=(0,O.useState)(null),S=o.length===0||s===``,C=S?D3(l)||`pbx`:s;return b===null?(0,j.jsxs)(`form`,{className:`num-way`,onSubmit:e=>{e.preventDefault();let t=h.replace(/[\s()-]/g,``),n=S?()=>RO(a,{kind:`sip`,username:C,password:y,addresses:d.split(/[\s,]+/).filter(Boolean),...l.trim()===``?{}:{label:l.trim()},...p.trim()===``?{}:{outbound_host:p.trim()}}):async()=>void 0;r(async()=>(await n(),VO(a,{number:t,agent:_,channel:`phone`,account:C},!1))).then(()=>x({username:C,password:S?y:null}),()=>void 0)},children:[o.length>0&&(0,j.jsxs)(`div`,{children:[(0,j.jsx)(Rh,{children:`PBX`}),(0,j.jsxs)(vC,{value:s,onValueChange:c,children:[o.map(e=>(0,j.jsx)(yC,{value:e.account,children:e.label===``?e.account:e.label},e.account)),(0,j.jsx)(yC,{value:``,children:`+ Another PBX`})]})]}),(0,j.jsxs)(`div`,{className:`num-fields num-fields-flush`,children:[S&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(Rh,{children:`Name`}),(0,j.jsx)(G,{value:l,onChange:e=>u(e.target.value),placeholder:`FreePBX · Oficina Madrid`,required:!0,autoComplete:`off`})]}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(Rh,{children:`It calls from · an IP, or a /24 at most`}),(0,j.jsx)(G,{value:d,onChange:e=>f(e.target.value),placeholder:`198.51.100.10`,required:!0,autoComplete:`off`})]}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(Rh,{children:`Calls go out through · optional`}),(0,j.jsx)(G,{value:p,onChange:e=>m(e.target.value),placeholder:`pbx.example.com`,autoComplete:`off`})]})]}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(Rh,{children:`Number it sends`}),(0,j.jsx)(G,{value:h,onChange:e=>g(e.target.value),placeholder:`+34 910 123 456`,required:!0,autoComplete:`off`})]})]}),(0,j.jsx)(_3,{agents:t,agent:_,onAgent:v}),(0,j.jsxs)(`div`,{className:`num-actions-flush`,children:[(0,j.jsx)(W,{kind:`primary`,type:`submit`,disabled:n||_===``,children:n?`Sending…`:S?`Ask for approval`:`Add number`}),(0,j.jsx)(`span`,{className:`num-note`,children:`The box makes the PBX's username and password; you type them into the PBX.`})]})]}):(0,j.jsxs)(`div`,{className:`num-way`,children:[(0,j.jsxs)(v3,{title:`In your PBX`,meta:`a SIP trunk to Pinecall`,children:[(0,j.jsx)(`dt`,{children:`Host`}),(0,j.jsx)(`dd`,{children:(0,j.jsx)(y3,{text:x3()})}),(0,j.jsx)(`dt`,{children:`Port and transport`}),(0,j.jsx)(`dd`,{className:`num-mono`,children:`5060 · UDP or TCP`}),(0,j.jsx)(`dt`,{children:`Username`}),(0,j.jsx)(`dd`,{children:(0,j.jsx)(y3,{text:b.username})}),b.password!==null&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`dt`,{children:`Password · shown once`}),(0,j.jsx)(`dd`,{children:(0,j.jsx)(y3,{text:b.password})})]}),(0,j.jsx)(`dt`,{children:`Codecs`}),(0,j.jsx)(`dd`,{children:`G.722, G.711 µ-law, G.711 A-law`})]}),(0,j.jsxs)(`div`,{className:`num-waiting`,children:[(0,j.jsx)(CC,{tone:`amber`}),(0,j.jsxs)(`span`,{children:[(0,j.jsx)(`span`,{className:`num-waiting-title`,children:`The box operator approves your addresses once`}),(0,j.jsx)(`span`,{className:`num-waiting-say`,children:`Set the PBX up now; calls reach the agent as soon as they are approved. Every other number from this PBX is admitted right away.`})]})]}),(0,j.jsx)(`div`,{className:`num-actions-flush`,children:(0,j.jsx)(W,{kind:`primary`,onClick:()=>i(h),children:`Done`})})]})}function T3({agents:e,busy:t,move:n,onAdded:r}){let i=M(),[a,o]=(0,O.useState)(`US`),[s,c]=(0,O.useState)(``),[l,u]=(0,O.useState)(e[0]?.slug??``),[d,f]=(0,O.useState)(null),p={country:a.trim().toUpperCase(),...s.trim()===``?{}:{area_code:s.trim()},agent:l,channel:`phone`};return(0,j.jsxs)(`form`,{className:`num-way`,onSubmit:e=>{e.preventDefault(),n(()=>HO(i,p,!0)).then(f,()=>void 0)},children:[(0,j.jsxs)(`div`,{className:`num-fields num-fields-flush`,children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(Rh,{children:`Country · two letters`}),(0,j.jsx)(G,{value:a,onChange:e=>{o(e.target.value),f(null)},maxLength:2,required:!0,autoComplete:`off`})]}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(Rh,{children:`Area code · optional`}),(0,j.jsx)(G,{value:s,onChange:e=>{c(e.target.value),f(null)},placeholder:`415`,autoComplete:`off`})]})]}),(0,j.jsx)(_3,{agents:e,agent:l,onAgent:e=>{u(e),f(null)}}),d===null?(0,j.jsxs)(`div`,{className:`num-actions-flush`,children:[(0,j.jsx)(W,{kind:`primary`,type:`submit`,disabled:t||l===``,children:t?`Looking…`:`Find a number`}),(0,j.jsx)(`span`,{className:`num-note`,children:`Nothing is bought until you confirm the number found.`})]}):(0,j.jsx)(g3,{plan:d,busy:t,confirm:`Buy ${aE(d.route.number??``)} and connect`,onConfirm:()=>void n(()=>HO(i,p,!1)).then(e=>r(e.route.number??``),()=>void 0),onCancel:()=>f(null)})]})}function E3({carriers:e,agents:t,available:n,busy:r,move:i,onAdded:a}){let o=M(),s=e.filter(e=>e.kind===`whatsapp`),c=(n?.numbers??[]).filter(e=>s.some(t=>t.account===e.account)&&!e.imported),[l,u]=(0,O.useState)(c[0]?.number??``),[d,f]=(0,O.useState)(t[0]?.slug??``);if(s.length===0)return(0,j.jsx)(m3,{kind:`whatsapp`,busy:r,onBring:e=>i(()=>RO(o,e))});let p=c.find(e=>e.number===l)?.account;return(0,j.jsxs)(`form`,{className:`num-way`,onSubmit:e=>{e.preventDefault(),i(()=>VO(o,{number:l,agent:d,channel:`whatsapp`,...p===void 0?{}:{account:p}},!1)).then(()=>a(l),()=>void 0)},children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(Rh,{children:`WhatsApp number`}),(0,j.jsx)(vC,{value:l,onValueChange:u,children:c.map(e=>(0,j.jsx)(yC,{value:e.number,children:`${e.name} · ${aE(e.number)}`},e.number))})]}),(0,j.jsx)(_3,{agents:t,agent:d,onAgent:f}),(0,j.jsx)(`div`,{className:`num-actions-flush`,children:(0,j.jsx)(W,{kind:`primary`,type:`submit`,disabled:r||l===``||d===``,children:r?`Connecting…`:`Connect`})})]})}function D3(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,32)}var O3={ok:{tone:`green`,text:`Rings the agent`},waiting:{tone:`amber`,text:`Not reaching us yet`},broken:{tone:`red`,text:`Not answered`}},k3={imported:{tone:`gray`,text:`your account`},hooked:{tone:`indigo`,text:`pointed by you`},bought:{tone:`violet`,text:`bought here`},typed:{tone:`amber`,text:`added by the box operator`}},A3={twilio:`Twilio`,sip:`Your PBX`,whatsapp:`WhatsApp`};function j3(e,t,n){if(e.route.managed)return{name:`Pinecall`,sub:`bought for you`};let r=t.find(t=>t.account===e.account);return r===void 0?e.via==null?e.origin===`typed`?{name:`The box operator`,sub:`no account`}:e.origin===`imported`?{name:`An account since removed`,sub:`it still rings`}:{name:`Your carrier`,sub:`pointed here by you`}:{name:n?.carriers.find(t=>t.kind===e.via)?.name??e.via,sub:`pointed here by you`}:{name:r.kind===`sip`&&r.label!==``?r.label:A3[r.kind],sub:r.label!==``&&r.kind!==`sip`?`${r.label} · ${r.account}`:r.account}}function M3(e){let t=[];e.sells&&t.push({id:`buy`,name:`Buy a number here`,how:`automatic`,says:`Pick a country. It works in seconds and is billed with Pinecall.`});for(let n of e.carriers)t.push(n.how===`automatic`?{id:n.kind,name:n.name,how:`automatic`,says:`Connect your account once. We list your numbers and point them here for you.`}:{id:`via:${n.kind}`,name:n.name,how:`guided`,says:`Paste one address in ${n.name}'s portal. This box already trusts ${n.name}.`,via:n.kind});return t.push({id:`pbx`,name:`Your own PBX or another carrier`,how:`reviewed`,says:`Asterisk, FreePBX, 3CX, a local carrier. The box operator approves your IP addresses once.`}),t.push({id:`whatsapp`,name:`WhatsApp`,how:`automatic`,says:`A number on WhatsApp Business. Messages reach the agent, replies go out from it.`}),t}function N3(e){let t={ok:0,waiting:0,broken:0};for(let n of e)t[n.rings]+=1;return t}var P3={automatic:`Automatic`,guided:`Guided`,reviewed:`Reviewed`},F3={buy:`P`,twilio:`Tw`,pbx:`IP`,whatsapp:`WA`};function I3({catalog:e,world:t,way:n,onWay:r,onClose:i,...a}){let o=M3(e),s=o.find(e=>e.id===n)??null;return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(AC,{back:(0,j.jsx)(`button`,{type:`button`,className:`ui-back num-back`,onClick:i,children:`← Phone numbers`}),title:`Add a number`,lede:`In ${t}: where the number lives decides how much of it is yours to do.`}),(0,j.jsx)(H,{children:(0,j.jsxs)(`div`,{className:`num-add`,children:[(0,j.jsxs)(`div`,{className:`num-wizard`,children:[(0,j.jsx)(`b`,{children:`1 Where it lives`}),(0,j.jsx)(`i`,{children:`›`}),s===null?(0,j.jsx)(`span`,{children:`2 Connect`}):(0,j.jsxs)(`b`,{children:[`2 `,s.name]})]}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`div`,{className:`num-q`,children:`Where does the number live?`}),(0,j.jsx)(`div`,{className:`num-q-sub`,children:`Automatic: we set everything up. Guided: you paste one address in their portal. Reviewed: the box operator approves your addresses once.`})]}),(0,j.jsx)(`div`,{className:`num-choices`,children:o.map(e=>(0,j.jsxs)(`button`,{type:`button`,className:`num-choice`,"aria-pressed":e.id===n,onClick:()=>r(e.id),children:[(0,j.jsx)(`span`,{className:`num-logo num-logo-${e.via??e.id}`,children:F3[e.id]??e.name.slice(0,2)}),(0,j.jsxs)(`span`,{children:[(0,j.jsxs)(`span`,{className:`num-choice-name`,children:[e.name,` `,(0,j.jsx)(`span`,{className:`num-how num-how-${e.how}`,children:P3[e.how]})]}),(0,j.jsx)(`span`,{className:`num-choice-says`,children:e.says})]})]},e.id))}),s!==null&&(0,j.jsxs)(`div`,{className:`num-section-label`,children:[`2 · `,s.name]}),s?.id===`buy`&&(0,j.jsx)(T3,{...a}),s?.id===`twilio`&&(0,j.jsx)(S3,{...a}),s?.via!==void 0&&(0,O.createElement)(C3,{...a,way:s,key:s.id}),s?.id===`pbx`&&(0,j.jsx)(w3,{...a}),s?.id===`whatsapp`&&(0,j.jsx)(E3,{...a})]})})]})}var L3=/^\+[1-9]\d{6,14}$/;function R3(e){let t=e.toLowerCase();return t.includes(`no outbound trunk`)?`Outbound calls are not turned on yet.`:t.includes(`carrier`)?(0,j.jsxs)(j.Fragment,{children:[`Connect a carrier first — `,(0,j.jsx)(Wi,{to:`/numbers?add=`,children:`Add a number`}),`.`]}):t.includes(`number`)?(0,j.jsxs)(j.Fragment,{children:[`Add a number first — `,(0,j.jsx)(Wi,{to:`/numbers`,children:`Numbers`}),`.`]}):e.replace(/:?\s*(POST|PUT|GET|DELETE) \/v1\/\S+.*$/,``).trim()}function z3(e){return[e.dial_anywhere?`Agents can call any number`:`Agents can only call numbers that already contacted you`,`${e.per_minute} a minute`,`${e.per_day} a day`,`${Math.round(e.max_duration_s/60)} min per call`].join(` · `)}function B3({outbound:e,agents:t,busy:n,onProvision:r}){let[i,a]=(0,O.useState)(null);if(e===null)return(0,j.jsx)(H,{children:(0,j.jsxs)(`div`,{className:`num-hero`,children:[(0,j.jsx)(`div`,{className:`num-hero-title`,children:`Let your agents call people back`}),(0,j.jsxs)(`p`,{className:`num-hero-say`,children:[`Calls go out from your own numbers through your carrier account. Connect a carrier first — `,(0,j.jsx)(Wi,{to:`/numbers?add=`,children:`Add a number`}),`.`]})]})});let o=()=>void r(!0).then(a,()=>void 0),s=i!==null&&(0,j.jsxs)(`div`,{className:`num-plan`,children:[(0,j.jsx)(`div`,{className:`num-plan-title`,children:`What will happen — on your carrier account and on this gateway. Nothing is deleted.`}),(0,j.jsx)(h3,{steps:i.steps}),(0,j.jsxs)(`div`,{className:`num-plan-moves`,children:[(0,j.jsx)(W,{kind:`primary`,size:`md`,onClick:()=>void r(!1).then(()=>a(null),()=>void 0),disabled:n,children:n?`Working…`:`Confirm`}),(0,j.jsx)(W,{size:`md`,onClick:()=>a(null),disabled:n,children:`Cancel`})]})]});if(!e.ready){let t=e.steps_missing.every(e=>e.toLowerCase().includes(`no outbound trunk`));return(0,j.jsxs)(H,{children:[(0,j.jsxs)(`div`,{className:`num-hero`,children:[(0,j.jsx)(`div`,{className:`num-hero-title`,children:`Let your agents call people back`}),(0,j.jsx)(`p`,{className:`num-hero-say`,children:`Calls go out from your own numbers through your carrier account.`}),e.steps_missing.filter(e=>!e.toLowerCase().includes(`no outbound trunk`)).map(e=>(0,j.jsx)(`p`,{className:`num-hero-missing`,children:R3(e)},e)),t&&(0,j.jsxs)(`div`,{className:`num-hero-move`,children:[(0,j.jsx)(W,{kind:`primary`,onClick:o,disabled:n||i!==null,children:n&&i===null?`Checking…`:`Turn on outbound calls`}),(0,j.jsx)(`span`,{className:`num-note`,children:`You will see what is going to happen, and confirm.`})]})]}),s]})}let[c,...l]=e.from_numbers;return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`div`,{className:`num-on`,children:[(0,j.jsx)(CC,{tone:`green`}),(0,j.jsxs)(`span`,{children:[(0,j.jsx)(`b`,{children:`On`}),` — agents call from `,aE(c),l.length>0&&` and ${l.length} more`]})]}),(0,j.jsx)(V3,{agents:t,from:e.from_numbers}),(0,j.jsxs)(`div`,{className:`num-limits`,children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`div`,{className:`num-limits-say`,children:z3(e.guards)}),(0,j.jsx)(`div`,{className:`num-limits-who`,children:`Limits are set by whoever runs this gateway.`})]}),(0,j.jsx)(Lh,{onClick:o,disabled:n||i!==null,children:`Repair the setup`})]}),i!==null&&(0,j.jsx)(H,{children:s})]})}function V3({agents:e,from:t}){let n=M(),[r,i]=(0,O.useState)(e[0]?.slug??``),[a,o]=(0,O.useState)(``),[s,c]=(0,O.useState)(t[0]??``),[l,u]=(0,O.useState)(!1),[d,f]=(0,O.useState)(null),[p,m]=(0,O.useState)(null);(0,O.useEffect)(()=>{r===``&&e[0]!==void 0&&i(e[0].slug)},[e,r]);let h=async e=>{e.preventDefault();let i=a.replace(/[\s()-]/g,``);if(f(null),!L3.test(i)){m(`Write the number with its country code, like +34600000000.`);return}u(!0),m(null);try{f(await XO(n,r,i,t.length>1?s:void 0))}catch(e){m(e instanceof na?e.message:String(e))}finally{u(!1)}};return(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Make a test call`,meta:`the agent rings the number and talks when it is answered`}),(0,j.jsxs)(`form`,{onSubmit:e=>void h(e),children:[(0,j.jsxs)(`div`,{className:t.length>1?`num-fields num-fields-3`:`num-fields`,children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(Rh,{children:`Agent`}),(0,j.jsx)(vC,{value:r,onValueChange:e=>i(e),required:!0,children:e.map(e=>(0,j.jsx)(yC,{value:e.slug,children:e.slug},e.slug))})]}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(Rh,{children:`Number to call`}),(0,j.jsx)(G,{value:a,onChange:e=>o(e.target.value),placeholder:`+34 600 000 000`,required:!0,autoComplete:`off`})]}),t.length>1&&(0,j.jsxs)(`div`,{children:[(0,j.jsx)(Rh,{children:`From`}),(0,j.jsx)(vC,{value:s,onValueChange:e=>c(e),children:t.map(e=>(0,j.jsx)(yC,{value:e,children:aE(e)},e))})]})]}),(0,j.jsxs)(`div`,{className:`num-actions`,children:[(0,j.jsx)(W,{kind:`primary`,type:`submit`,disabled:l||r===``,children:l?`Calling…`:`Call`}),d!==null&&(0,j.jsxs)(`span`,{className:`num-placed`,children:[`Ringing. `,(0,j.jsx)(Wi,{to:`/calls/${d}`,children:`Watch it live`})]})]}),p!==null&&(0,j.jsx)(`div`,{className:`num-refused`,children:(0,j.jsx)(Ah,{children:p})})]})]})}var H3={carrier:`Carrier`,fence:`Fence`,world:`World`,agent:`Agent`},U3={ok:`✓`,waiting:`…`,broken:`!`};function W3({row:e,busy:t,onMove:n,onRemove:r}){let i=M(),a=e.route.number??``,[o,s]=(0,O.useState)(null),[c,l]=(0,O.useState)(null);(0,O.useEffect)(()=>{let e=!1;return PO(i,a).then(t=>{e||s(t)},t=>{e||l(t instanceof Error?t.message:String(t))}),()=>{e=!0}},[i,a,e.rings,e.last_call_at]);let u=e.route.env===`production`?`sandbox`:`production`;return(0,j.jsxs)(`div`,{className:`num-path`,children:[(0,j.jsxs)(`div`,{className:`num-path-title`,children:[`What a call to `,aE(a),` goes through`]}),o===null?(0,j.jsx)(`div`,{className:`num-path-reading`,children:c??`Reading…`}):(0,j.jsx)(`ol`,{className:`num-steps-path`,children:o.steps.map(e=>(0,j.jsxs)(`li`,{className:`num-step-path`,children:[(0,j.jsx)(`span`,{className:`num-step-mark num-step-${e.state}`,"aria-label":e.state,children:U3[e.state]}),(0,j.jsx)(`span`,{className:`num-step-name`,children:H3[e.step]}),(0,j.jsx)(`span`,{className:`num-step-says`,children:e.says}),e.fix!=null&&(0,j.jsx)(`span`,{className:`num-step-fix`,children:e.fix})]},e.step))}),(0,j.jsxs)(`div`,{className:`num-path-foot`,children:[(0,j.jsx)(`span`,{children:e.last_call_at==null?`No call has reached the box yet`:`Last call ${_E(e.last_call_at)}`}),(0,j.jsxs)(`span`,{className:`num-path-moves`,children:[(0,j.jsxs)(W,{size:`sm`,onClick:n,disabled:t,title:`Its row and the two rules; the carrier is not touched.`,children:[`Move to `,u]}),(0,j.jsx)(W,{size:`sm`,kind:`danger`,onClick:r,disabled:t,title:`The number stops reaching this agent. It stays in your account.`,children:`Remove`})]})]})]})}var G3=[{tab:`numbers`,name:`Numbers`},{tab:`accounts`,name:`Accounts`},{tab:`outbound`,name:`Calling out`}];function K3(){let e=M(),{agents:t}=uO(),{world:n}=ow(),[r,i]=Xi(),a=G3.some(e=>e.tab===r.get(`tab`))?r.get(`tab`):`numbers`,o=r.has(`add`),[s,c]=(0,O.useState)(void 0),[l,u]=(0,O.useState)(null),[d,f]=(0,O.useState)(null),[p,m]=(0,O.useState)(null),[h,g]=(0,O.useState)(null),[_,v]=(0,O.useState)(null),[y,b]=(0,O.useState)(null),[x,S]=(0,O.useState)(!1),[C,w]=(0,O.useState)(null),[T,ee]=(0,O.useState)(null),te=(0,O.useCallback)(async()=>{let[t,n,r]=await Promise.all([LO(e),NO(e),FO(e).catch(()=>null)]);c(t),u(n),m(r),f(t.length===0?null:await BO(e).catch(()=>null));let i=t.filter(e=>e.kind!==`whatsapp`),a=i.find(e=>e.account===_)??i[0];v(a?.account??null),g(a===void 0?null:await qO(e,i.length>1?a.account:void 0).catch(()=>null))},[e,_]);(0,O.useEffect)(()=>{let e=!1;return te().catch(t=>{e||w(q3(t))}),()=>{e=!0}},[te]);let E=async e=>{S(!0),w(null);try{let t=await e();return await te(),t}catch(e){throw w(q3(e)),e}finally{S(!1)}},ne=e=>{let t=new URLSearchParams(r);for(let[n,r]of Object.entries(e))r===null?t.delete(n):t.set(n,r);i(t)};if(o&&p!==null&&s!==void 0)return(0,j.jsxs)(kC,{width:900,children:[(0,j.jsx)(I3,{catalog:p,world:n,way:r.get(`add`)||null,onWay:e=>ne({add:e??``}),onClose:()=>ne({add:null}),carriers:s,agents:t,available:d,busy:x,move:E,onAdded:e=>{ee(e),b(e),ne({add:null})}}),(0,j.jsx)(Ah,{children:C})]});let D=l??[],re=N3(D),ie=(s??[]).filter(e=>e.kind!==`whatsapp`);return(0,j.jsxs)(kC,{width:900,children:[(0,j.jsx)(AC,{title:`Phone numbers`,lede:`The numbers people call or write to, and which agent picks up.`,actions:(0,j.jsx)(W,{kind:`primary`,onClick:()=>ne({add:``,tab:null}),disabled:p===null,children:`Add a number`})}),(0,j.jsx)(GC,{label:`Phone numbers`,tabs:G3.map(e=>e.tab===`numbers`&&re.waiting+re.broken>0?{...e,mark:(0,j.jsx)(CC,{tone:`amber`,small:!0})}:e),on:a,onPick:e=>ne({tab:e===`numbers`?null:e})}),(0,j.jsx)(Ah,{children:C}),a===`numbers`&&l!==null&&s!==void 0&&(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Numbers in ${n}`,meta:`${D.length} · ${re.ok} ring the agent${re.waiting>0?` · ${re.waiting} not reaching us yet`:``}${re.broken>0?` · ${re.broken} not answered`:``}`}),D.length===0?(0,j.jsxs)(kh,{children:[`No number rings or writes to an agent in `,n,` yet.`]}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`div`,{className:`num-table-head`,children:[(0,j.jsx)(`span`,{children:`Number`}),(0,j.jsx)(`span`,{children:`Agent`}),(0,j.jsx)(`span`,{children:`Comes through`}),(0,j.jsx)(`span`,{children:`If it rings now`})]}),D.map(t=>{let n=t.route.number??``,r=j3(t,s,p),i=O3[t.rings],a=k3[t.origin],o=y===n;return(0,j.jsxs)(O.Fragment,{children:[(0,j.jsxs)(`button`,{type:`button`,className:`num-table-row`,"aria-expanded":o,onClick:()=>b(o?null:n),children:[(0,j.jsxs)(`span`,{className:`num-cell-number`,children:[aE(n),t.route.channel===`whatsapp`&&(0,j.jsx)(`span`,{className:`num-cell-sub`,children:`WhatsApp`})]}),(0,j.jsxs)(`span`,{className:`num-cell-agent`,children:[`→ `,t.route.agent]}),(0,j.jsxs)(`span`,{className:`num-cell-through`,children:[r.name,(0,j.jsx)(`span`,{className:`num-cell-sub`,children:r.sub})]}),(0,j.jsxs)(`span`,{className:`num-cell-pills`,children:[(0,j.jsx)(xC,{tone:i.tone,small:!0,children:i.text}),(0,j.jsx)(xC,{tone:a.tone,small:!0,children:a.text})]}),(0,j.jsx)(`span`,{className:`num-caret`,"aria-hidden":!0,children:`›`})]}),o&&(0,j.jsx)(W3,{row:t,busy:x,onMove:()=>void E(()=>IO(e,n,t.route.env===`production`?`sandbox`:`production`)).catch(()=>void 0),onRemove:()=>void E(()=>UO(e,n)).then(()=>b(null),()=>void 0)})]},`${t.route.channel}:${n}`)})]}),T!==null&&(0,j.jsxs)(`div`,{className:`num-added`,children:[`Done. `,aE(T),` is added; open it to see what a call to it goes through.`]}),(0,j.jsx)(`div`,{className:`num-foot`,children:`Every agent is on the web with nothing to turn on: this page is the telephone and WhatsApp. Move a number to another agent by adding it again; it moves on the next call, with nothing deployed.`})]}),a===`accounts`&&s!==void 0&&(0,j.jsx)(u3,{carriers:s,outbound:h,busy:x,onDrop:t=>E(()=>zO(e,t)).catch(()=>void 0)}),a===`outbound`&&s!==void 0&&(0,j.jsxs)(j.Fragment,{children:[ie.length>1&&(0,j.jsx)(`div`,{className:`num-fields num-fields-3`,children:(0,j.jsx)(`div`,{children:(0,j.jsx)(vC,{value:_??``,onValueChange:e=>v(e),children:ie.map(e=>(0,j.jsx)(yC,{value:e.account,children:e.label===``?e.account:`${e.label} · ${e.account}`},e.account))})})}),(0,j.jsx)(B3,{outbound:h,agents:t,busy:x,onProvision:t=>E(()=>JO(e,t,ie.length>1?_??void 0:void 0))})]})]})}function q3(e){return e instanceof na?e.message:String(e)}function J3(){let e=M(),t=pT(nw()),[n,r]=(0,O.useState)(null),[i,a]=(0,O.useState)([]);(0,O.useEffect)(()=>{let t=!1;return A(e,`/v1/line/numbers`).then(e=>{if(t)return;let n=e;r(n.numbers),a(n.calling??[])},()=>void 0),()=>{t=!0}},[e]);let o=uO().held.filter(e=>t!==null&&e.holder?.holder===t);return(0,j.jsxs)(kC,{width:900,children:[(0,j.jsx)(AC,{title:`Phone testing`,ledeWidth:660,lede:(0,j.jsxs)(j.Fragment,{children:[`Call the number your customers call, from your own mobile, and `,(0,j.jsx)(`b`,{children:`your copy answers`}),`. Everybody else who calls still reaches production. You do not need a sandbox number.`]})}),(0,j.jsxs)(H,{children:[(0,j.jsx)(Nh,{children:`Once per machine`}),(0,j.jsx)(`pre`,{className:`ui-code`,children:`pinecall line from +1XXXXXXXXXX # this mobile is mine`}),(0,j.jsx)(Nh,{ruled:!0,children:`While you work`}),(0,j.jsx)(`pre`,{className:`ui-code`,children:`pinecall start --serve # your copies up, and this console
161
+ pinecall line forget # give your calls back to production`}),(0,j.jsx)(`div`,{className:`ui-card-foot`,children:(0,j.jsxs)(`span`,{children:[`The call shows up here, in Calls, marked `,(0,j.jsx)(`span`,{className:`ui-fixed`,children:`diverted_from: production`}),`.`]})})]}),n!==null&&(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`The numbers to call`}),n.length===0&&(0,j.jsx)(kh,{children:`This org has no phone number in production yet. The gateway's console adds one, under Numbers.`}),n.map(e=>{let t=o.some(t=>t.slug===e.agent),n=t&&i.length>0;return(0,j.jsxs)(`div`,{className:`num-row`,children:[(0,j.jsx)(`span`,{className:`num-number`,children:aE(e.number)}),(0,j.jsx)(`span`,{className:`num-arrow`,"aria-hidden":!0,children:`→`}),(0,j.jsx)(`span`,{className:`num-agent`,children:e.agent}),(0,j.jsx)(`span`,{className:`num-end`,children:n?(0,j.jsxs)(xC,{tone:`green`,children:[`your copy answers `,i.map(aE).join(`, `)]}):t?(0,j.jsx)(xC,{tone:`amber`,children:`production answers: say which phone is yours`}):(0,j.jsx)(xC,{tone:`gray`,children:`production answers: you are not running it`})})]},e.number)})]}),(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`What a call from your phone reaches right now`}),(0,j.jsx)(`div`,{className:`num-body`,children:o.length===0?(0,j.jsxs)(j.Fragment,{children:[`Nothing: no copy of yours is running, so your calls reach production. Start `,(0,j.jsx)(`span`,{className:`ui-fixed`,children:`pinecall start`}),` in the project.`]}):i.length===0?(0,j.jsxs)(j.Fragment,{children:[`Production, still: you are running `,o.map(e=>e.slug).join(`, `),`, and the gateway does not know which phone is yours.`,` `,(0,j.jsx)(`span`,{className:`ui-fixed`,children:`pinecall line from +1…`}),`, once.`]}):(0,j.jsxs)(j.Fragment,{children:[`Your copy of `,o.map(e=>e.slug).join(`, `),`, from `,i.map(aE).join(`, `),` — for as long as`,` `,(0,j.jsx)(`span`,{className:`ui-fixed`,children:`pinecall start`}),` stays up.`]})})]})]})}var Y3=6e4;function X3(){let e=M(),[t,n]=(0,O.useState)(null);return(0,O.useEffect)(()=>{let t=!1,r,i=async()=>{try{let r=Vw.parse(await A(e,`/v1/limits`));t||n(r)}catch(e){e instanceof na&&e.status===404&&(window.clearInterval(r),t||n(null))}};return i(),r=window.setInterval(()=>void i(),Y3),()=>{t=!0,window.clearInterval(r)}},[e]),t}function Z3(e){return e===null||e.minutes.limit===null?null:{used:Math.min(e.minutes.used,e.minutes.limit),limit:e.minutes.limit,billing:e.billing_url}}function Q3(e,t){let n=window.open(`about:blank`,`_blank`),r=t=>{let r=new URL(e);t!==null&&r.searchParams.set(`login`,t),n===null?window.location.assign(r.toString()):n.location.href=r.toString()};om(t).then(r,()=>r(null))}function $3({meter:e,size:t}){let n=M(),r=e.billing,i=r===null?null:(0,j.jsx)(`a`,{className:`ui-text-action`,href:r,onClick:e=>{e.preventDefault(),Q3(r,n)},children:`Upgrade`}),a=(0,j.jsxs)(j.Fragment,{children:[`of `,e.limit,i!==null&&(0,j.jsxs)(j.Fragment,{children:[` · `,i]})]}),o=Math.round(e.used*10)/10;return t===`big`?(0,j.jsx)(MC,{size:`big`,label:`Minutes used`,value:o,delta:a,tone:`flat`}):(0,j.jsx)(MC,{size:`small`,label:`Minutes used`,value:o,of:a,accent:!0})}var e6=`minmax(0,1.6fr) 110px 80px minmax(0,1fr) 100px`;function t6({agents:e,live:t,counted:n,suites:r,said:i}){let a=[...new Set([...e.map(e=>e.slug),...(n?.agents??[]).map(e=>e.slug)])].sort();return a.length===0?null:(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Agents`,meta:`calls ${i} · a row puts that agent in view`,action:(0,j.jsx)(Dh,{to:`/agents`,children:`Every agent`})}),(0,j.jsx)(NC,{columns:e6,labels:[`Agent`,`On the line`,`Calls>`,`Held by the judges`,`Goldens>`]}),a.map(i=>{let a=e.find(e=>e.slug===i),o=n?.agents.find(e=>e.slug===i),s=t.filter(e=>e.agent===i).length,c=r.get(i);return(0,j.jsxs)(PC,{columns:e6,to:`/a/${encodeURIComponent(i)}/overview`,children:[(0,j.jsxs)(`span`,{className:`ovw-agent`,children:[(0,j.jsx)(DC,{size:26,name:i,letters:i.slice(0,1).toUpperCase()}),(0,j.jsxs)(`span`,{className:`ovw-agent-words`,children:[(0,j.jsx)(`span`,{className:`ui-cell-strong ui-clip`,children:i}),(0,j.jsx)(`span`,{className:`ui-cell-faint ui-clip`,children:a===void 0?`not held right now`:a.channels.join(` · `)||`no doors`})]})]}),(0,j.jsx)(`span`,{children:s>0?(0,j.jsxs)(xC,{tone:`green`,small:!0,children:[s,` live`]}):(0,j.jsx)(`span`,{className:`ui-cell-faint`,children:`quiet`})}),(0,j.jsx)(`span`,{className:`ui-cell-ink ui-cell-right ovw-num`,children:o?.calls??0}),(0,j.jsx)(`span`,{className:`ovw-held`,children:o?.score==null?(0,j.jsx)(`span`,{className:`ui-cell-faint`,children:`nothing judged`}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(OC,{share:o.score}),(0,j.jsx)(`span`,{className:`ui-cell-ink ovw-num`,children:SE(o.score)})]})}),(0,j.jsx)(`span`,{className:`ui-cell-right`,children:c===void 0?(0,j.jsx)(`span`,{className:`ui-cell-faint`,children:`no run`}):(0,j.jsxs)(xC,{tone:c.held===c.cells?`green`:`red`,small:!0,children:[c.held,`/`,c.cells]})})]},i)})]})}var n6=[`phone`,`web`,`whatsapp`],r6=6;function i6(e){return e.map(e=>({day:e.day,calls:{phone:e.phone,web:e.web,whatsapp:e.whatsapp},spend:e.spend_usd,held:e.passed,judged:e.judged}))}function a6(e){return e.filter(e=>(e.flags?.length??0)>0).slice(0,r6)}function o6(e){return n6.reduce((t,n)=>t+e.calls[n],0)}function s6(e){let t=t=>e.slice(-t).reduce((e,t)=>e+o6(t),0);return t(1)>0?1:t(7)>0?7:30}var c6=640,l6=180,u6=30,d6=8,f6=150,p6={phone:`Phone`,web:`Web`,whatsapp:`WhatsApp`};function m6(e){let t=Math.max(1,Math.ceil(e/3));return[0,t,t*2,t*3]}function h6(e){return gE(Date.parse(`${e}T12:00:00Z`)/1e3)}function g6({days:e}){let[t,n]=(0,O.useState)(null),r=m6(Math.max(1,...e.map(o6))),i=r[r.length-1]??1,a=610/e.length,o=Math.min(26,a*.62),s=e=>158-e/i*f6,c=t===null?void 0:e[t];return(0,j.jsxs)(`div`,{className:`ovw-chart`,children:[(0,j.jsxs)(`svg`,{viewBox:`0 0 ${c6} ${l6}`,role:`img`,"aria-label":`Calls a day, by channel`,onMouseLeave:()=>n(null),children:[r.map(e=>(0,j.jsxs)(`g`,{children:[(0,j.jsx)(`line`,{x1:u6,x2:c6,y1:s(e),y2:s(e),className:`ovw-grid`}),(0,j.jsx)(`text`,{x:22,y:s(e)+3.5,className:`ovw-tick`,textAnchor:`end`,children:e})]},e)),e.map((r,i)=>{let c=u6+i*a+(a-o)/2,l=0;return(0,j.jsxs)(`g`,{onMouseEnter:()=>n(i),className:t===i?`ovw-bar ovw-bar-on`:`ovw-bar`,children:[(0,j.jsx)(`rect`,{x:u6+i*a,y:d6,width:a,height:f6,className:`ovw-hit`}),n6.map(e=>{let t=r.calls[e];if(t===0)return null;let n=s(l);l+=t;let i=Math.max(0,n-s(l)-2);return(0,j.jsx)(`rect`,{x:c,y:s(l),width:o,height:Math.max(i,1.5),rx:3,className:`ovw-fill ovw-fill-${e}`},e)}),(i%2==e.length%2||e.length<=8)&&(0,j.jsx)(`text`,{x:c+o/2,y:174,className:`ovw-tick`,textAnchor:`middle`,children:h6(r.day)})]},r.day)})]}),c!==void 0&&t!==null&&(0,j.jsxs)(`div`,{className:`ovw-tip`,style:{left:`${(u6+(t+.5)*a)/c6*100}%`},children:[(0,j.jsxs)(`div`,{className:`ovw-tip-head`,children:[h6(c.day),` · `,o6(c),` calls`]}),n6.filter(e=>c.calls[e]>0).map(e=>(0,j.jsxs)(`div`,{className:`ovw-tip-row`,children:[(0,j.jsx)(`span`,{className:`ovw-key ovw-key-${e}`}),p6[e],(0,j.jsx)(`span`,{className:`ovw-tip-value`,children:c.calls[e]})]},e))]})]})}function _6({rows:e,tone:t}){let n=Math.max(1,...e.map(e=>e.count)),r=e.reduce((e,t)=>e+t.count,0);return(0,j.jsx)(`div`,{className:`ovw-shares`,children:e.map(e=>(0,j.jsxs)(`div`,{className:`ovw-share`,children:[(0,j.jsx)(`span`,{className:`ovw-share-name`,children:e.name}),(0,j.jsx)(`span`,{className:`ovw-share-track`,children:(0,j.jsx)(`span`,{className:t===`channel`&&e.key!==void 0?`ovw-share-fill ovw-fill-${e.key}`:`ovw-share-fill`,style:{width:`${Math.max(2,e.count/n*100)}%`}})}),(0,j.jsxs)(`span`,{className:`ovw-share-count`,children:[e.count,(0,j.jsx)(`span`,{className:`ovw-share-pct`,children:r===0?``:` · ${Math.round(e.count/r*100)}%`})]})]},e.name))})}function v6(){return(0,j.jsx)(`span`,{className:`ovw-legend`,children:n6.map(e=>(0,j.jsxs)(`span`,{className:`ovw-legend-item`,children:[(0,j.jsx)(`span`,{className:`ovw-key ovw-key-${e}`}),p6[e]]},e))})}var y6={escalated:`A person took part`,low_score:`A judge said no`,promise:`A promise no tool recorded`};function b6(e,t,n){let r=a6(e).map(e=>{let t=e.flags?.[0]??`escalated`;return{key:e.call,severe:t===`low_score`,title:`${sE(e,wE)} · ${y6[t]}`,why:e.score?.reason??e.outcome??`—`,when:_E(e.started_at),to:n===``?`/calls/${e.call}`:`/a/${encodeURIComponent(n)}/calls/${e.call}`,go:`Open the call`}});return[...t.filter(e=>e.failing.length>0).map(e=>({key:`suite:${e.agent}`,severe:!0,title:`${e.failing.length} ${e.failing.length===1?`golden`:`goldens`} failing${n===``?` · ${e.agent}`:``}`,why:`${e.held} of ${e.cells} held in the newest run: ${e.failing.slice(0,2).join(`, `)}${e.failing.length>2?`…`:``}`,when:_E(e.at),to:`/a/${encodeURIComponent(e.agent)}/goldens`,go:`Open Test`})),...r]}function x6({lines:e,suites:t,agent:n}){let r=b6(e,t,n);return(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Needs a look`,meta:r.length===0?void 0:`${r.length} open`}),r.length===0?(0,j.jsx)(`p`,{className:`ovw-quiet ovw-quiet-card`,children:`Nothing needs a look: no call went to a person or broke a judge, and every golden held.`}):(0,j.jsx)(`div`,{className:`ovw-looks`,children:r.map(e=>(0,j.jsxs)(Wi,{to:e.to,className:`ovw-look`,children:[(0,j.jsx)(`span`,{className:e.severe?`ovw-look-mark ovw-look-mark-severe`:`ovw-look-mark`,"aria-hidden":!0}),(0,j.jsxs)(`span`,{className:`ovw-look-words`,children:[(0,j.jsx)(`span`,{className:`ovw-look-title`,children:e.title}),(0,j.jsx)(`span`,{className:`ovw-look-why`,children:e.why})]}),(0,j.jsxs)(`span`,{className:`ovw-look-end`,children:[(0,j.jsxs)(`span`,{className:`ovw-look-go`,children:[e.go,` →`]}),(0,j.jsx)(`span`,{className:`ovw-look-when`,children:e.when})]})]},e.key))})]})}var S6=6;function C6({live:e,agent:t}){let n=t===``?`/calls`:`/a/${encodeURIComponent(t)}/calls`,r=[...e].sort((e,t)=>Number(rE(t))-Number(rE(e))).slice(0,S6);return r.length===0?(0,j.jsx)(`p`,{className:`ovw-quiet`,children:`Nobody is on the line. A call appears here the moment it rings.`}):(0,j.jsx)(`div`,{className:`ovw-live`,children:r.map(e=>{let r=rE(e);return(0,j.jsxs)(`div`,{className:r?`ovw-call ovw-call-asking`:`ovw-call`,children:[(0,j.jsxs)(`div`,{className:`ovw-call-who`,children:[(0,j.jsx)(DC,{name:sE(e,wE),size:28,round:!0,tint:r?`amber`:`green`}),(0,j.jsxs)(`div`,{className:`ovw-call-words`,children:[(0,j.jsx)(`div`,{className:`ovw-call-name ui-clip`,children:sE(e,wE)}),(0,j.jsxs)(`div`,{className:`ovw-call-sub ui-clip`,children:[t===``&&`${e.agent} · `,e.channel??`—`,` · `,(0,j.jsx)(`span`,{className:`ovw-call-clock`,children:iE(e.started_at)})]})]})]}),(0,j.jsx)(`div`,{className:r?`ovw-call-said ovw-call-said-asking`:`ovw-call-said`,children:r?`Wants a person: ${e.attention?.reason??`the agent asked for one`}`:e.outcome??`On a call now`}),(0,j.jsx)(`div`,{className:`ovw-call-moves`,children:(0,j.jsx)(Ih,{to:`${n}/${e.call}`,size:`xs`,kind:r?`primary`:void 0,children:r?`Take the line`:`Listen`})})]},e.call)})})}var w6=z({member:UQ,token:P().nullable(),expires_at:P().nullable(),mailed:L()});async function T6(e,t){return w6.parse(await la(e,`/v1/members`,t))}async function E6(e,t){return w6.parse(await la(e,`/v1/members/${encodeURIComponent(t)}/reset`,{}))}async function D6(e,t){await ua(e,`/v1/members/${encodeURIComponent(t)}`)}async function O6(e,t,n){let r=await fetch(ha(e.base,`/v1/members/${encodeURIComponent(t)}`),{method:`PATCH`,headers:{...ia(e),"content-type":`application/json`},body:JSON.stringify(n)});return UQ.parse(await ma(r))}var k6=z({configured:L(),issuer:P().nullish(),client_id:P().nullish(),domains:R(P()),role:P().nullish(),required:L(),redirect_uri:P()});async function A6(e){try{return k6.parse(await A(e,`/v1/org/sso`))}catch(e){if(e instanceof na&&(e.status===404||e.status===405))return null;throw e}}async function j6(e,t){return k6.parse(await sa(e,`/v1/org/sso`,t))}async function M6(e){await ua(e,`/v1/org/sso`)}var N6=z({on:L(),ceiling_usd:F().nullable()});function P6(){let e=M(),t=rw(),[n,r]=(0,O.useState)(null),i=fh(ch,`numbers`)&&t!==null&&fO(t,`numbers`),a=fh(ch,`team`)&&t!==null&&fO(t,`team`),[o,s]=(0,O.useState)(0);return(0,O.useEffect)(()=>{if(t===null)return;let n=!1;return(async()=>{let o=[];if(i){let[t,n]=await Promise.all([LO(e).catch(()=>[]),NO(e).catch(()=>[])]);o.push({done:t.length>0,name:`Connect a carrier account`,action:`Connect`,to:`/numbers?add=`});let r=n.filter(e=>e.route.number!==null).length;o.push({done:r>0,name:r>1?`Point ${r} numbers at an agent`:`Point a number at an agent`,action:`Add`,to:`/numbers`})}let c=await A(e,`/v1/org/judging`).then(e=>N6.parse(e),()=>null);if(c!==null&&t!==null&&t.includes(`usage`)&&o.push({done:c.on,name:`Add a judge so calls get scored`,action:`Turn on`,run:async()=>{await sa(e,`/v1/org/judging`,{on:!0}),s(e=>e+1)}}),a){let t=await WQ(e).catch(()=>[]);o.push({done:t.filter(e=>e.status!==`disabled`).length>1,name:`Invite your team`,action:`Invite`,to:`/team`})}n||r(o)})(),()=>{n=!0}},[e,i,a,t,o]),n===null||n.length===0||n.every(e=>e.done)?null:(0,j.jsxs)(H,{children:[(0,j.jsx)(`div`,{className:`ui-card-head`,children:(0,j.jsx)(`span`,{className:`ui-card-title`,children:`Finish setting up`})}),(0,j.jsx)(`div`,{className:`ovw-steps`,children:n.map(e=>e.done?(0,j.jsxs)(`div`,{className:`ovw-step`,children:[(0,j.jsx)(`span`,{className:`ovw-step-done`,children:`✓`}),(0,j.jsx)(`span`,{className:`ovw-step-name ovw-step-name-done`,children:e.name})]},e.name):e.run===void 0?(0,j.jsxs)(Wi,{to:e.to??`/`,className:`ovw-step ovw-step-open`,children:[(0,j.jsx)(`span`,{className:`ovw-step-todo`}),(0,j.jsx)(`span`,{className:`ovw-step-name`,children:e.name}),(0,j.jsx)(`span`,{className:`ovw-step-action`,children:e.action})]},e.name):(0,j.jsxs)(`button`,{type:`button`,className:`ovw-step ovw-step-open ovw-step-button`,onClick:()=>void e.run?.(),children:[(0,j.jsx)(`span`,{className:`ovw-step-todo`}),(0,j.jsx)(`span`,{className:`ovw-step-name`,children:e.name}),(0,j.jsx)(`span`,{className:`ovw-step-action`,children:e.action})]},e.name))})]})}function F6(e){let t=M(),[n,r]=(0,O.useState)(void 0),[i,a]=(0,O.useState)(null);return(0,O.useEffect)(()=>{let n=!1;return DX(t,e).then(e=>{n||r(e)},e=>{n||(r(null),a(e instanceof Error?e.message:String(e)))}),()=>{n=!0}},[t,e]),{report:n,refused:i}}function I6({agent:e}){let{report:t,refused:n}=F6(e);return(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`How fast it answers`,meta:t===void 0?`reading…`:t===null?void 0:`median over ${t.calls} calls`}),t===void 0?null:t===null?(0,j.jsx)(kh,{children:n}):t.medians.length===0?(0,j.jsx)(kh,{children:`No turn has been measured yet.`}):(0,j.jsx)(`div`,{className:`ovw-speed`,children:t.medians.map(e=>(0,j.jsxs)(`div`,{className:`ovw-speed-one`,children:[(0,j.jsx)(`span`,{className:`ovw-speed-value`,children:e.name===`talk_share`?SE(e.seconds):_M(e.seconds)}),(0,j.jsx)(`span`,{className:`ovw-speed-name`,children:y1[e.name]??e.name})]},e.name))})]})}function L6(){let e=new Date().getHours();return e<12?`Good morning`:e<19?`Good afternoon`:`Good evening`}function R6(){let e=xr().agent??``,t=nw(),{lines:n,live:r,agents:i}=uO(),a=e===``?void 0:e,o=AE({agent:a,days:30}),s=o===null?void 0:s6(i6(o.series)),[c,l,u]=jE(s??1),d=AE({agent:a,days:c}),f=AE({agent:a,day:vE(Date.now()/1e3-c*86400),days:c}),p=(u||s!==void 0)&&d?.days===c?d:null,m=(0,O.useMemo)(()=>i6(p?.series??[]),[p]),h=$Y(),g=Z3(X3()),_=e===``?n:n.filter(t=>t.agent===e),v=e===``?r:r.filter(t=>t.agent===e),y=[...h.values()].filter(t=>e===``||t.agent===e),b=(t?.name??``).split(` `)[0]??``,x=ME(c);return(0,j.jsx)(kC,{children:(0,j.jsxs)(`div`,{className:`ovw`,children:[(0,j.jsx)(AC,{title:e===``?b===``?L6():`${L6()}, ${b}`:e,lede:z6(v.length,v.some(e=>e.attention?.status===`open`),e),actions:(0,j.jsx)(NE,{days:c,onPick:l})}),(0,j.jsxs)(`section`,{className:`ovw-section`,"aria-label":`On the line now`,children:[(0,j.jsxs)(`div`,{className:`ovw-section-head`,children:[(0,j.jsx)(`span`,{className:v.length>0?`ovw-pulse ovw-pulse-on`:`ovw-pulse`,"aria-hidden":!0}),`On the line now`]}),(0,j.jsx)(C6,{live:v,agent:e})]}),(0,j.jsxs)(jC,{min:170,children:[(0,j.jsx)(B6,{counted:p,before:f,said:x}),e===``&&g!==null&&(0,j.jsx)($3,{meter:g,size:`big`})]}),(0,j.jsxs)(`div`,{className:`ovw-split`,children:[(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Calls a day`,meta:(0,j.jsx)(v6,{})}),p===null?(0,j.jsx)(kh,{children:`Counting the calls…`}):(0,j.jsx)(g6,{days:m})]}),(0,j.jsx)(x6,{lines:_,suites:y,agent:e})]}),(0,j.jsxs)(`div`,{className:`ovw-pair`,children:[(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`How calls end`,meta:x}),(p?.endings.length??0)===0?(0,j.jsxs)(kh,{children:[`No call has ended `,x,`.`]}):(0,j.jsx)(_6,{rows:(p?.endings??[]).slice(0,6).map(e=>({name:e.reason.replace(/_/g,` `),count:e.count}))})]}),e===``?(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Where calls come in`,meta:x}),(0,j.jsx)(_6,{tone:`channel`,rows:n6.map(e=>({name:p6[e],count:p?.channels[e]??0,key:e}))})]}):(0,j.jsx)(I6,{agent:e})]}),e===``&&(0,j.jsx)(P6,{}),e===``&&(0,j.jsx)(t6,{agents:i,live:r,counted:p,suites:h,said:x})]})})}function z6(e,t,n){let r=n===``?``:` with ${n}`;if(e===0)return`Nobody is on the line${r} right now.`;let i=e===1?`One call is on the line${r}`:`${e} calls are on the line${r}`;return t?`${i}, and a caller is waiting for a person.`:`${i}.`}function B6({counted:e,before:t,said:n}){if(e===null)return[`Calls`,`Resolved without a person`,`Held by the judges`,`Median answer`,`Spend`].map(e=>(0,j.jsx)(MC,{size:`big`,label:e,value:`—`},e));let r=e.conversations.now,i=xE(r,e.conversations.before),a=e.resolved_rate,o=t?.resolved_rate??null,s=a===null||o===null?null:Math.round((a-o)*100),c=e.median_e2e_s,l=t?.median_e2e_s??null,u=c===null||l===null?null:Math.round((c-l)*10)/10,d=e.budget.limit_usd;return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(MC,{size:`big`,label:`Calls`,value:r,delta:i?.text??n,tone:i?.tone??`flat`}),(0,j.jsx)(MC,{size:`big`,label:`Resolved without a person`,value:a===null?`—`:SE(a),delta:s===null?n:s===0?`steady`:`${s>0?`+`:`−`}${Math.abs(s)} pts`,tone:s===null||s===0?`flat`:s>0?`up`:`down`}),(0,j.jsx)(MC,{size:`big`,label:`Held by the judges`,value:e.judged===0?`—`:SE(e.passed/e.judged),delta:e.judged===0?`nothing judged`:`${e.passed} of ${e.judged}`,tone:`flat`}),(0,j.jsx)(MC,{size:`big`,label:`Median answer`,value:c===null?`—`:_M(c),delta:u===null?n:Math.abs(u)<.1?`steady`:`${u>0?`+`:`−`}${Math.abs(u).toFixed(1)}s`,tone:u===null||Math.abs(u)<.1?`flat`:u>0?`down`:`up`}),(0,j.jsx)(MC,{size:`big`,label:`Spend`,value:pE(e.spend_usd),delta:d===null?n:`of $${d} a month`,tone:`flat`})]})}function V6(e){let[t,n]=(0,O.useState)(`unknown`),[r,i]=(0,O.useState)(null);(0,O.useEffect)(()=>{let t=!1;return(async()=>{if(!Bm())return n(`unsupported`);if(Vm()===`denied`)return n(`blocked`);let r=await Hm();if(r!==null){let n=await Om(Fm(e),{platform:`web`,token:Wm(r),label:Km()});t||i(n)}t||n(r===null?`off`:`on`)})(),()=>{t=!0}},[e]);let a=(0,O.useCallback)(async t=>{let r=Fm(e),a=await Nm(r);if(a===null)throw Error(`The notifier has no key for browsers yet.`);let o=await Um(a,{anew:t});if(o===null){n(Vm()===`denied`?`blocked`:`off`),Rm();return}i(await Om(r,{platform:`web`,token:Wm(o),label:Km()})),n(`on`),Rm()},[e]),o=(0,O.useCallback)(()=>a(!1),[a]),s=(0,O.useCallback)(()=>a(!0),[a]);return{standing:t,deviceId:r,turnOn:o,turnOff:(0,O.useCallback)(async()=>{let t=await Hm();t!==null&&(await km(Fm(e),{platform:`web`,token:Wm(t)}),await t.unsubscribe()),i(null),n(`off`),Rm()},[e]),renew:s}}var H6={unknown:`Checking this browser…`,unsupported:`This browser cannot show notifications from a page.`,blocked:`Notifications are blocked for this site: allow them in the browser's site settings.`,off:`Off. Turn it on to be told even with the console closed.`,on:`On. This browser is told about the calls below.`},U6={web:`Browser`,android:`Android phone`,ios:`iPhone`};function W6(){let e=M(),t=Fm(e),n=aA((0,O.useCallback)(()=>Em(Fm(e)),[e])),r=V6(e),i=sA(),[a,o]=(0,O.useState)(void 0),[s,c]=(0,O.useState)(null);(0,O.useEffect)(()=>o(n.value),[n.value]);let l=e=>{i.move(async()=>o(await Dm(t,e)))},u=()=>{c(null),i.move(async()=>{let e=await Mm(t);if(e.failed.find(e=>e.device===r.deviceId)?.dead){await r.renew(),await n.reread(),c(`This browser's subscription had expired; it was renewed. Send the test again.`);return}let i=e.sent===0?`No device took it`:`Sent to ${e.sent} device${e.sent===1?``:`s`}`,a=e.failed.map(e=>`${d(e.device)}: ${e.error}`).join(`; `);c(a===``?`${i}.`:`${i}. Failed — ${a}.`)})},d=e=>{let t=a?.devices.find(t=>t.id===e);return t===void 0?`a device since forgotten`:t.label??U6[t.platform]??t.platform},f=e=>{i.move(async()=>{await e(),await n.reread()})},p=a?.org_name??`this org`,m=nh===`sandbox`?`sandbox calls`:`calls`;return(0,j.jsxs)(kC,{width:760,children:[(0,j.jsx)(AC,{title:`Notifications`,lede:`What you are told about ${p}'s ${m}, on this browser and on your phone, even when nothing of Pinecall is open.`}),(0,j.jsx)(Ah,{children:n.refused??i.refused}),(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`This browser`,meta:H6[r.standing]}),(0,j.jsxs)(`div`,{className:`notices-line`,children:[r.standing===`off`&&(0,j.jsx)(W,{kind:`primary`,size:`md`,disabled:i.busy,onClick:()=>f(r.turnOn),children:`Turn on`}),r.standing===`on`&&(0,j.jsx)(W,{size:`md`,disabled:i.busy,onClick:()=>f(r.turnOff),children:`Turn off`}),(0,j.jsx)(W,{size:`md`,disabled:i.busy||(a?.devices.length??0)===0,onClick:u,children:`Send a test`}),s!==null&&(0,j.jsx)(`span`,{className:`notices-done`,children:s})]})]}),a!==void 0&&(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`What to tell you`,meta:`of ${p}'s ${m}, on every device of yours`}),(0,j.jsx)(G6,{name:`A call asks for a person`,sub:`The agent put the caller on hold and is waiting for somebody to take the line.`,on:a.events.attention,onChange:e=>l({events:{attention:e}})}),(0,j.jsx)(G6,{name:`Every incoming call`,sub:`Each call as it starts ringing, whoever answers it.`,on:a.events.ringing,onChange:e=>l({events:{ringing:e}})})]}),a!==void 0&&(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Your devices`,meta:`yours in every org you belong to; what each org tells them is the choice above`}),a.devices.length===0?(0,j.jsx)(kh,{children:`No device yet. Turn this browser on, or open Notificaciones in Pinecall on your phone.`}):a.devices.map(e=>{let n=e.id===r.deviceId,a=n?r.turnOff:()=>Am(t,e.id);return(0,j.jsx)(Mh,{name:e.label??U6[e.platform],sub:n?`${U6[e.platform]} · this one`:U6[e.platform],end:(0,j.jsx)(W,{size:`xs`,disabled:i.busy,onClick:()=>f(a),children:`Remove`})},e.id)})]})]})}function G6({name:e,sub:t,on:n,onChange:r}){return(0,j.jsx)(Mh,{name:e,sub:t,end:(0,j.jsx)(Uh,{on:n,onChange:r,label:e})})}function K6({agent:e}){let t=M(),[n,r]=(0,O.useState)(null),[i,a]=(0,O.useState)(null),[o,s]=(0,O.useState)(null),[c,l]=(0,O.useState)(null),u=(0,O.useRef)(null);(0,O.useEffect)(()=>{let n=!1;return AX(t,e).then(e=>!n&&r(e),e=>!n&&s(e instanceof Error?e.message:String(e))),()=>{n=!0}},[t,e]),(0,O.useEffect)(()=>()=>{c!==null&&URL.revokeObjectURL(c)},[c]);let d=async(e,t)=>{a(e),s(null);try{r(await t()),l(null)}catch(e){s(e instanceof Error?e.message:String(e))}finally{a(null)}},f=async()=>{s(null);try{l(await NX(t,e))}catch(e){s(e instanceof Error?e.message:String(e))}},p=n=>{n!==void 0&&(d(`Converting…`,()=>jX(t,e,n)),u.current!==null&&(u.current.value=``))};return(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Hold melody`,meta:`what the caller hears while a tool runs — phone and web alike, from the next call`}),(0,j.jsxs)(`div`,{className:`pipe-hold`,children:[(0,j.jsxs)(`div`,{className:`pipe-hold-now`,children:[(0,j.jsx)(`b`,{children:n===null?`…`:n.played===`off`?`Off`:n.name??`Your file`}),(0,j.jsx)(`span`,{className:`pipe-note`,children:n===null?`Asking the gateway.`:n.played===`off`?`Silence while a tool runs.`:`${n.played==="default"?`The runtime's own`:`Uploaded`} · ${n.seconds??`?`} s, looped under the wait at 60 %, after 0.6 s.`})]}),(0,j.jsxs)(`div`,{className:`pipe-hold-actions`,children:[n!==null&&n.played!==`off`&&(0,j.jsx)(W,{size:`sm`,onClick:()=>void f(),disabled:i!==null,children:`Listen`}),(0,j.jsx)(W,{size:`sm`,onClick:()=>u.current?.click(),disabled:i!==null,children:i??`Upload a file…`}),n!==null&&n.played!=="default"&&(0,j.jsx)(W,{size:`sm`,onClick:()=>void d(`Saving…`,()=>MX(t,e,`default`)),disabled:i!==null,children:`Use the default`}),n!==null&&n.played!==`off`&&(0,j.jsx)(W,{size:`sm`,onClick:()=>void d(`Saving…`,()=>MX(t,e,`off`)),disabled:i!==null,children:`Turn off`}),(0,j.jsx)(`input`,{ref:u,type:`file`,accept:`audio/*,.mp3,.wav,.ogg,.m4a`,hidden:!0,onChange:e=>p(e.target.files?.[0])})]}),c!==null&&(0,j.jsx)(`audio`,{className:`pipe-hold-player`,controls:!0,autoPlay:!0,src:c}),o===null?(0,j.jsx)(`span`,{className:`pipe-save-note`,children:`A wav, an mp3, an ogg or an m4a, up to 20 MB and five minutes: the gateway converts it.`}):(0,j.jsx)(`span`,{className:`pipe-save-error`,children:o})]})]})}function q6({stage:e,unavailable:t}){return(0,j.jsxs)(X6,{job:`hears`,stage:e,unavailable:t,children:[(0,j.jsx)(Z6,{label:`Language`,value:e.language??`the vendor's default`,note:`What the ear is told to expect; the runtime adds the names the state carries.`}),e.model!==null&&e.model!==``&&(0,j.jsx)(Z6,{label:`Model`,value:e.model}),(0,j.jsx)(Z6,{label:`Switchable to`,value:`Any STT provider on file`,note:`Effective on the next session.`})]})}function J6({stage:e,unavailable:t}){return(0,j.jsxs)(X6,{job:`decides`,stage:e,unavailable:t,children:[(0,j.jsx)(Z6,{label:`Model`,value:e.model??`the vendor's default`}),(0,j.jsx)(Z6,{label:`Prompt`,value:`identity · knowledge · tools · history · view`,note:`Named blocks in two regions, never reordered: the static ones are cached, the dynamic ones rewritten every turn.`}),(0,j.jsx)(Z6,{label:`Tools`,value:`The class's @tool methods`})]})}function Y6({stage:e,unavailable:t}){return(0,j.jsxs)(X6,{job:`speaks`,stage:e,unavailable:t,children:[(0,j.jsx)(Z6,{label:`Voice`,value:e.voice_id??`the vendor's default`,note:`One of the voices this build curates, by name; the id is the vendor's.`}),e.model!==null&&e.model!==``&&(0,j.jsx)(Z6,{label:`Model`,value:e.model}),(0,j.jsx)(Z6,{label:`Aligned transcript`,value:`On`,note:`Timed words, so the log knows when each word was spoken.`})]})}function X6({job:e,stage:t,unavailable:n,children:r}){return(0,j.jsxs)(`div`,{className:`ui-card`,children:[(0,j.jsxs)(`div`,{className:`pipe-leg-head`,children:[(0,j.jsx)(`span`,{className:`pipe-leg-vendor`,children:t.vendor}),(0,j.jsx)(`span`,{className:`pipe-leg-job`,children:e})]}),(0,j.jsxs)(`div`,{className:`pipe-leg-body`,children:[r,n!==null&&(0,j.jsxs)(`div`,{className:`pipe-field`,children:[(0,j.jsx)(`div`,{className:`pipe-label`,children:`Not right now`}),(0,j.jsx)(`div`,{className:`pipe-refused`,children:n})]})]})]})}function Z6({label:e,value:t,note:n}){return(0,j.jsxs)(`div`,{className:`pipe-field`,children:[(0,j.jsx)(`div`,{className:`pipe-label`,children:e}),(0,j.jsx)(`div`,{className:`pipe-value`,children:t}),n!==void 0&&(0,j.jsx)(`div`,{className:`pipe-note`,children:n})]})}function Q6(e){let t=M(),[n,r]=(0,O.useState)(null),[i,a]=(0,O.useState)(null);return(0,O.useEffect)(()=>{let n=!1;return r(null),DX(t,e).then(e=>{n||r(e)},e=>{n||a(ra(e))}),()=>{n=!0}},[e,t]),{report:n,error:i}}var $6={transcription_delay:{label:`Transcription`,note:`from the end of speech to the ear's final transcript`,color:`var(--accent-3)`},end_of_turn_delay:{label:`End of turn`,note:`silence the turn detector waits through before it believes the caller stopped`,color:`var(--accent-3)`},llm_node_ttft:{label:`LLM first token`,note:`to the model's first token`,color:`var(--accent)`},tts_node_ttfb:{label:`Speech starts`,note:`to the voice's first audio byte`,color:`var(--accent-2)`},e2e_latency:{label:`End to end`,note:`what the caller actually waits: their last word to the agent's first audio`,color:`var(--accent-hover)`}};function e8({medians:e,calls:t,agent:n}){let r=new Map(e.map(e=>[e.name,e])),i=Math.max(0,...e.map(e=>e.seconds)),a=Math.max(0,...e.map(e=>e.turns));return(0,j.jsxs)(`div`,{className:`ui-card`,children:[(0,j.jsxs)(`div`,{className:`ui-card-head`,children:[(0,j.jsx)(`span`,{className:`ui-card-title`,children:`Anatomy of a turn`}),i>0&&(0,j.jsxs)(`span`,{className:`ui-card-meta`,children:[`medians over the last `,t,` call`,t===1?``:`s`,` · `,a,` turns`]})]}),(0,j.jsx)(`div`,{className:`pipe-anatomy`,children:uM.map((e,t)=>{let n=$6[e],a=r.get(e)?.seconds??null;return(0,j.jsxs)(`div`,{className:t===uM.length-1?`pipe-turn-row pipe-turn-row-last`:`pipe-turn-row`,title:n.note,children:[(0,j.jsx)(`span`,{className:`pipe-turn-label`,children:n.label}),(0,j.jsx)(`span`,{className:`pipe-track`,children:a!==null&&i>0&&(0,j.jsx)(`span`,{className:`pipe-bar`,style:{width:`${Math.max(a/i*100,.8)}%`,background:n.color}})}),(0,j.jsx)(`span`,{className:a===null?`pipe-ms pipe-ms-none`:`pipe-ms`,children:a===null?`—`:`${Math.round(a*1e3)} ms`})]},e)})}),i===0&&(0,j.jsx)(`div`,{className:`ui-card-foot`,children:t8(t,n)})]})}function t8(e,t){return e===0?`No call stored for ${t} yet — place one and the bars fill.`:`${e} stored call${e===1?``:`s`} for ${t}, and not one turn carries a latency — a text session measures none.`}function n8(){let e=xr().agent??``,{report:t,error:n}=Q6(e);return(0,j.jsxs)(kC,{tight:!0,children:[(0,j.jsx)(AC,{title:`Pipeline`,ledeWidth:660,lede:`The three legs of a voice turn as data, not prose: what hears, what decides, what speaks — every value read from the gateway with this agent's settings already laid over the class.`}),t===null?(0,j.jsx)(H,{children:(0,j.jsx)(kh,{children:n??`Asking the gateway what ${e} runs on…`})}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`div`,{className:`pipe-legs`,children:[(0,j.jsx)(q6,{stage:t.hears,unavailable:t.unavailable_reasons.hears??null}),(0,j.jsx)(J6,{stage:t.decides,unavailable:t.unavailable_reasons.decides??null}),(0,j.jsx)(Y6,{stage:t.speaks,unavailable:t.unavailable_reasons.speaks??null})]}),(0,j.jsx)(e8,{medians:t.medians,calls:t.calls,agent:e}),(0,j.jsx)(H,{children:(0,j.jsxs)(kh,{children:[`Changing any of it is the `,(0,j.jsx)(Wi,{to:`/a/${encodeURIComponent(e)}/configure`,children:`Configure`}),` tab: the vendors and models with the opening, the cut of a turn and what is remembered, per corner and versioned.`]})}),(0,j.jsx)(K6,{agent:e},`hold-${e}`)]})]})}var r8=(e,t)=>`/v1/agents/${encodeURIComponent(e)}/personas${t===void 0?``:`/${encodeURIComponent(t)}`}`;async function i8(e,t){return aZ.parse(await A(e,r8(t))).personas}async function a8(e,t,n,r){return aZ.parse(await sa(e,r8(t,n),r)).personas}async function o8(e,t,n){return aZ.parse(await ua(e,r8(t,n))).personas}async function s8(e,t,n,r={}){let i={...r.before===void 0?{}:{before:r.before},...r.limit===void 0?{}:{limit:r.limit}};return oZ.parse(await A(e,`${r8(t,n)}/runs`,i))}var c8=/^[a-z0-9]+(?:-[a-z0-9]+)*$/;function l8({agent:e,was:t,onSaved:n,onCancel:r}){let i=M(),[a,o]=(0,O.useState)(t?.name??``),[s,c]=(0,O.useState)(()=>t===void 0?{about:``,goal:``,style:``,facts:{},llm:``,tts:``,voice:``,accepts_when:``,declines_when:``}:{about:t.about,goal:t.goal,style:t.style,facts:t.facts,llm:t.llm??``,tts:t.tts??``,voice:t.voice??``,accepts_when:t.accepts_when,declines_when:t.declines_when}),[l,u]=(0,O.useState)(()=>{let e=Object.entries(s.facts??{});return e.length>0?e:[[``,``]]}),[d,f]=(0,O.useState)(!1),[p,m]=(0,O.useState)(null),h=(e,t)=>c({...s,[e]:t}),g=(e,t)=>u(l.map((n,r)=>r===e?t:n)),_=c8.test(a),v=_&&s.goal.trim()!==``&&s.style.trim()!==``,y=async()=>{f(!0),m(null);try{let r=Object.fromEntries(l.filter(([e])=>e.trim()!==``).map(([e,t])=>[e.trim(),t.trim()])),o={...s,facts:r,state:t?.state??{},...t===void 0||t.name===a?{}:{was:t.name}};n(await a8(i,e,a,o),a)}catch(e){m(e instanceof na?e.message:String(e))}finally{f(!1)}};return(0,j.jsxs)(`form`,{className:`psn-doc psn-form`,onSubmit:e=>{e.preventDefault(),v&&y()},children:[(0,j.jsx)(`header`,{className:`psn-doc-head`,children:(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`h1`,{className:`psn-doc-name`,children:t===void 0?`New persona`:`Editing ${t.name}`}),(0,j.jsxs)(`p`,{className:`psn-doc-about`,children:[`Kept by the gateway, one list for the whole org: for this console and for `,(0,j.jsxs)(`code`,{children:[`pinecall simulate --persona `,a||`<name>`]}),`.`]})]})}),(0,j.jsxs)(u8,{title:`Name`,hint:`What pinecall simulate --persona takes, and how the list names them. Lower-case words joined by hyphens.`,children:[(0,j.jsx)(G,{value:a,spellCheck:!1,"aria-label":`Name`,placeholder:`price-shopper`,onChange:e=>o(e.target.value.toLowerCase().replace(/\s+/g,`-`))}),a!==``&&!_&&(0,j.jsx)(`p`,{className:`psn-bad`,children:`Only a–z, 0–9 and single hyphens between words.`})]}),(0,j.jsx)(u8,{title:`Who they are`,hint:`One line for people reading the list. The model is not told it.`,children:(0,j.jsx)(G,{value:s.about??``,"aria-label":`Who they are`,placeholder:`A landlord who only wants a number`,onChange:e=>h(`about`,e.target.value)})}),(0,j.jsx)(u8,{title:`What they want`,hint:`The goal the model pursues on every turn. Say it the way the caller would: specific, with the deadline if there is one.`,children:(0,j.jsx)(zh,{rows:3,value:s.goal,"aria-label":`What they want`,placeholder:`get a price for a deep clean of a three bedroom house before Friday`,onChange:e=>h(`goal`,e.target.value)})}),(0,j.jsx)(u8,{title:`How they talk`,hint:`The manner, not the content: hurried, polite, suspicious, switches into Spanish, answers only what is asked.`,children:(0,j.jsx)(zh,{rows:2,value:s.style,"aria-label":`How they talk`,placeholder:`blunt, impatient, keeps asking for the price`,onChange:e=>h(`style`,e.target.value)})}),(0,j.jsx)(u8,{title:`They accept the call when`,hint:`What has to have happened for them to hang up satisfied. A judge named persona reads every call of theirs against it at hang-up — the model playing them is never told it.`,children:(0,j.jsx)(zh,{rows:2,value:s.accepts_when??``,"aria-label":`They accept the call when`,placeholder:`they were given a price and a day this week`,onChange:e=>h(`accepts_when`,e.target.value)})}),(0,j.jsx)(u8,{title:`They decline it when`,hint:`What on the call makes them hang up unsatisfied. Leave both empty and no judge reads their calls for it.`,children:(0,j.jsx)(zh,{rows:2,value:s.declines_when??``,"aria-label":`They decline it when`,placeholder:`they were asked to call back, or nobody could say the price`,onChange:e=>h(`declines_when`,e.target.value)})}),(0,j.jsx)(u8,{title:`How they are played`,hint:`The same three words as an agent's settings: the model that improvises them, the vendor that reads their lines, the voice. Empty is the runtime's choice — its default model, a voice the agent does not have. A name this box does not have is refused on save.`,children:(0,j.jsxs)(`div`,{className:`psn-knobs`,children:[(0,j.jsx)(G,{size:`sm`,value:s.llm??``,spellCheck:!1,"aria-label":`Model`,placeholder:`anthropic/claude-haiku-5-5`,onChange:e=>h(`llm`,e.target.value.trim())}),(0,j.jsx)(G,{size:`sm`,value:s.tts??``,spellCheck:!1,"aria-label":`Voice vendor`,placeholder:`elevenlabs`,onChange:e=>h(`tts`,e.target.value.trim())}),(0,j.jsx)(G,{size:`sm`,value:s.voice??``,spellCheck:!1,"aria-label":`Voice`,placeholder:`carolina, or the vendor's own id`,onChange:e=>h(`voice`,e.target.value.trim())})]})}),(0,j.jsx)(u8,{title:`What they know about themselves`,hint:`The only facts they may state — asked for anything else, they say they do not know. One per row: what it is, and what they say.`,children:(0,j.jsxs)(`div`,{className:`psn-fact-rows`,children:[l.map(([e,t],n)=>(0,j.jsxs)(`div`,{className:`psn-fact-row`,children:[(0,j.jsx)(G,{size:`sm`,value:e,placeholder:`their phone`,"aria-label":`what it is`,onChange:e=>g(n,[e.target.value,t])}),(0,j.jsx)(G,{size:`sm`,value:t,placeholder:`305 555 0101`,"aria-label":`what they say`,onChange:t=>g(n,[e,t.target.value])}),(0,j.jsx)(`button`,{type:`button`,className:`psn-x`,"aria-label":`remove this fact`,onClick:()=>u(l.filter((e,t)=>t!==n)),children:`×`})]},n)),(0,j.jsx)(`button`,{type:`button`,className:`psn-add`,onClick:()=>u([...l,[``,``]]),children:`+ Add a fact`})]})}),(0,j.jsxs)(`footer`,{className:`psn-form-foot`,children:[(0,j.jsx)(W,{type:`submit`,kind:`primary`,disabled:!v||d,children:d?`Saving…`:t===void 0?`Create persona`:`Save`}),(0,j.jsx)(W,{type:`button`,onClick:r,children:`Cancel`}),!v&&(0,j.jsx)(`span`,{className:`psn-form-need`,children:`A name, what they want and how they talk are needed.`})]}),p!==null&&(0,j.jsx)(`p`,{className:`psn-refused`,children:p})]})}function u8({title:e,hint:t,children:n}){return(0,j.jsxs)(`div`,{className:`psn-field`,children:[(0,j.jsxs)(`div`,{className:`psn-field-words`,children:[(0,j.jsx)(`span`,{className:`psn-sec-title`,children:e}),(0,j.jsx)(`span`,{className:`psn-sec-hint`,children:t})]}),(0,j.jsx)(`div`,{className:`psn-field-input`,children:n})]})}var d8=`the runtime's choice`;function f8({agent:e,persona:t,onEdit:n,onDropped:r}){let i=M(),[a,o]=(0,O.useState)(!1),[s,c]=(0,O.useState)(!1),[l,u]=(0,O.useState)(null),d=Object.entries(t.facts),f=async()=>{if(!s){c(!0),o(!1),u(null);try{r(await o8(i,e,t.name))}catch(e){u(e instanceof na?e.message:String(e)),c(!1)}}};return(0,j.jsxs)(`article`,{className:`psn-doc`,children:[(0,j.jsxs)(`header`,{className:`psn-doc-head`,children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`h1`,{className:`psn-doc-name`,children:t.name}),t.about!==``&&(0,j.jsx)(`p`,{className:`psn-doc-about`,children:t.about})]}),(0,j.jsxs)(`div`,{className:`psn-doc-actions`,children:[(0,j.jsx)(Ih,{kind:`primary`,size:`sm`,to:`/a/${encodeURIComponent(e)}/simulations?persona=${encodeURIComponent(t.name)}`,children:`Use in a simulation`}),(0,j.jsx)(W,{size:`sm`,onClick:n,children:`Edit`}),(0,j.jsx)(W,{size:`sm`,kind:`danger`,disabled:s,onClick:()=>a?void f():o(!0),onBlur:()=>o(!1),children:s?`Deleting…`:a?`Delete · sure?`:`Delete`})]})]}),(0,j.jsx)(p8,{title:`What they want`,hint:`The goal the model pursues on every turn, until it has it or sees it will not.`,children:(0,j.jsx)(`p`,{className:`psn-doc-text`,children:t.goal})}),(0,j.jsx)(p8,{title:`How they talk`,hint:`The manner: hurried, polite, switching language mid-sentence. It shapes every line, not what they ask for.`,children:(0,j.jsx)(`p`,{className:`psn-doc-text`,children:t.style})}),(0,j.jsx)(p8,{title:`When they accept the call`,hint:`Their own rule. A judge named persona reads every call of theirs against it at hang-up; the model playing them is never told it.`,children:t.accepts_when===``&&t.declines_when===``?(0,j.jsx)(`p`,{className:`psn-doc-none`,children:`No rule: nobody judges whether this caller got what it came for.`}):(0,j.jsxs)(`dl`,{className:`psn-facts`,children:[t.accepts_when!==``&&(0,j.jsxs)(`div`,{className:`psn-fact`,children:[(0,j.jsx)(`dt`,{children:`accepts when`}),(0,j.jsx)(`dd`,{children:t.accepts_when})]}),t.declines_when!==``&&(0,j.jsxs)(`div`,{className:`psn-fact`,children:[(0,j.jsx)(`dt`,{children:`declines when`}),(0,j.jsx)(`dd`,{children:t.declines_when})]})]})}),(0,j.jsx)(p8,{title:`How they are played`,hint:`The model that improvises them and the voice their lines are read in, in an agent's own words.`,children:(0,j.jsx)(`dl`,{className:`psn-facts`,children:[[`model`,t.llm],[`voice vendor`,t.tts],[`voice`,t.voice]].map(([e,t])=>(0,j.jsxs)(`div`,{className:`psn-fact`,children:[(0,j.jsx)(`dt`,{children:e}),(0,j.jsx)(`dd`,{children:t??d8})]},e))})}),(0,j.jsx)(p8,{title:`What they know about themselves`,hint:`The only facts they may state. Asked for anything else, they say they do not know — they never invent.`,children:d.length===0?(0,j.jsx)(`p`,{className:`psn-doc-none`,children:`Nothing: this caller states no fact about themselves.`}):(0,j.jsx)(`dl`,{className:`psn-facts`,children:d.map(([e,t])=>(0,j.jsxs)(`div`,{className:`psn-fact`,children:[(0,j.jsx)(`dt`,{children:e}),(0,j.jsx)(`dd`,{children:t})]},e))})}),(0,j.jsx)(`footer`,{className:`psn-doc-foot`,children:(0,j.jsxs)(`span`,{className:`psn-doc-note`,children:[t.author===``?`Kept by the gateway.`:`Last written by ${t.author}, ${hE(t.set_at)}.`,Object.keys(t.state).length>0&&` It opens the call in a state, written from a project.`]})}),l!==null&&(0,j.jsx)(`p`,{className:`psn-refused`,children:l})]})}function p8({title:e,hint:t,children:n}){return(0,j.jsxs)(`section`,{className:`psn-sec`,children:[(0,j.jsx)(`h2`,{className:`psn-sec-title`,children:e}),(0,j.jsx)(`p`,{className:`psn-sec-hint`,children:t}),n]})}var m8=`minmax(0,1fr) minmax(0,1fr) 92px 70px 104px`,h8=12;function g8({agent:e,personas:t,standings:n,onNew:r}){let i=`/a/${encodeURIComponent(e)}`,a=y8(n.by),o=t.filter(e=>n.by[e.name]?.total===0),s=a[0];return t.length===0?(0,j.jsx)(_8,{onNew:r}):(0,j.jsxs)(kC,{children:[(0,j.jsx)(AC,{title:`Personas`,lede:(0,j.jsxs)(j.Fragment,{children:[`The synthetic callers written for `,e,`. A model plays one and improvises every line — in Simulations, or in`,` `,(0,j.jsx)(`span`,{className:`ui-fixed`,children:`pinecall simulate`}),`.`]})}),(0,j.jsxs)(jC,{min:170,children:[(0,j.jsx)(MC,{label:`Callers`,value:t.length,of:o.length===0?void 0:`· ${o.length} never called`}),(0,j.jsx)(MC,{label:`Runs`,value:n.read?a.length:`—`,of:n.read?`among the newest`:void 0}),(0,j.jsx)(MC,{label:`Last run`,value:s===void 0?`—`:_E(s.started_at),of:s===void 0?void 0:`· ${s.persona}`}),(0,j.jsx)(MC,{label:`On a call`,value:a.filter(e=>e.ended_at===null).length})]}),(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Latest runs`,meta:`newest first, whichever caller — a row opens the conversation`}),n.read&&a.length===0&&(0,j.jsxs)(kh,{children:[`No caller has called `,e,` yet. `,(0,j.jsx)(Wi,{to:`${i}/simulations`,children:`Simulations`}),` puts one on it, and `,(0,j.jsx)(`span`,{className:`ui-fixed`,children:`pinecall simulate --persona`}),` does the same from a terminal.`]}),a.length>0&&(0,j.jsx)(NC,{columns:m8,padding:`9px 16px`,labels:[`Caller`,`Agent`,`When`,`Turns>`,`How it went`]}),a.slice(0,h8).map(e=>(0,j.jsxs)(PC,{columns:m8,to:`/calls/${e.call}`,children:[(0,j.jsx)(`span`,{className:`psn-over-name`,children:e.persona}),(0,j.jsx)(`span`,{className:`psn-over-goal`,children:e.agent}),(0,j.jsx)(`span`,{className:`psn-over-when`,children:_E(e.started_at)}),(0,j.jsx)(`span`,{className:`psn-over-count`,children:e.turns}),(0,j.jsx)(`span`,{children:(0,j.jsx)(v8,{run:e})})]},e.call))]}),o.length>0&&(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Never called`,meta:`written, and still only a description`}),o.map(t=>(0,j.jsx)(Mh,{name:t.name,sub:t.goal,to:`${i}/simulations?persona=${encodeURIComponent(t.name)}`,end:(0,j.jsxs)(`span`,{className:`psn-over-when`,children:[`Call `,e,` as them →`]})},t.name))]})]})}function _8({onNew:e}){return(0,j.jsxs)(kC,{children:[(0,j.jsx)(AC,{title:`Personas`,lede:`A persona is somebody who calls this business wanting something: a goal, a manner, and the few facts they may state about themselves. A model plays them against an agent and improvises every line — there is no script to write.`,ledeWidth:640,actions:(0,j.jsx)(W,{kind:`primary`,size:`base`,onClick:e,children:`New persona`})}),(0,j.jsx)(H,{children:(0,j.jsx)(kh,{children:`No callers yet. The first one takes a minute: what they want, how they talk, and what they know about themselves.`})})]})}function v8({run:e}){return e.ended_at===null?(0,j.jsx)(xC,{tone:`green`,small:!0,children:`on a call`}):e.score===null?(0,j.jsxs)(`span`,{className:`psn-over-when`,children:[dE(e),` · not judged`]}):(0,j.jsxs)(xC,{tone:e.score.passed?`green`:`red`,small:!0,children:[e.score.passed?`held`:`broke`,` `,String(e.score.held),`/`,String(e.score.judged)]})}function y8(e){return Object.entries(e).flatMap(([e,t])=>t.newest.map(t=>({...t,persona:e}))).sort((e,t)=>t.started_at-e.started_at)}function b8({agent:e,personas:t,asking:n,open:r,onNew:i}){return(0,j.jsxs)(`aside`,{className:`psn-side`,"aria-label":`${e}'s personas`,children:[(0,j.jsxs)(`div`,{className:`psn-side-head`,children:[(0,j.jsxs)(`div`,{className:`psn-titles`,children:[(0,j.jsx)(`span`,{className:`psn-title`,children:`Personas`}),(0,j.jsx)(`span`,{className:`psn-count`,children:t===null?``:t.length})]}),(0,j.jsxs)(`p`,{className:`psn-lede`,children:[`The callers a model plays against `,e,`, in Simulations and in `,(0,j.jsx)(`code`,{children:`pinecall simulate`}),`.`]}),(0,j.jsx)(W,{size:`sm`,kind:`primary`,onClick:i,children:`New persona`})]}),(0,j.jsxs)(`div`,{className:`psn-list`,children:[t?.map(t=>(0,j.jsxs)(Wi,{to:`/a/${encodeURIComponent(e)}/personas/${encodeURIComponent(t.name)}`,className:t.name===r?`psn-row psn-row-on`:`psn-row`,children:[(0,j.jsx)(`span`,{className:`psn-row-top`,children:(0,j.jsx)(`span`,{className:`psn-row-name`,children:t.name})}),(0,j.jsx)(`span`,{className:`psn-row-sub`,children:t.about===``?t.goal:t.about})]},t.name)),t!==null&&t.length===0&&n===null&&(0,j.jsxs)(`p`,{className:`psn-empty`,children:[`No caller is written for `,e,` yet. Write one: somebody who calls this business wanting something.`]}),t===null&&(0,j.jsx)(`p`,{className:`psn-empty`,children:n??`Asking the gateway…`})]}),n!==null&&t!==null&&(0,j.jsx)(`p`,{className:`psn-empty psn-bad`,children:n}),(0,j.jsxs)(`p`,{className:`psn-foot`,children:[`Kept by the gateway, one list for `,e,` in both worlds: another agent of the org has callers of its own.`]})]})}function x8(e,t){let n=M(),[r,i]=(0,O.useState)(null),[a,o]=(0,O.useState)(0),[s,c]=(0,O.useState)(null),[l,u]=(0,O.useState)(!0),[d,f]=(0,O.useState)(null),p=e=>e instanceof Error?e.message:String(e);(0,O.useEffect)(()=>{let r=!1;return i(null),o(0),c(null),u(!0),f(null),s8(n,e,t).then(e=>{r||(i(e.runs),o(e.total),c(e.next),u(!1))},e=>{r||(f(p(e)),u(!1))}),()=>{r=!0}},[n,e,t]);let m=(0,O.useCallback)(()=>{s!==null&&(u(!0),f(null),s8(n,e,t,{before:s}).then(e=>{i(t=>[...t??[],...e.runs]),o(e.total),c(e.next),u(!1)},e=>{f(p(e)),u(!1)}))},[n,e,t,s]);return{runs:r,total:a,asking:l,error:d,more:s===null?null:m}}function S8({agent:e,persona:t}){let{runs:n,total:r,asking:i,error:a,more:o}=x8(e,t.name);return(0,j.jsxs)(`aside`,{className:`psn-runs`,"aria-label":`what ${t.name} has done`,children:[(0,j.jsxs)(`div`,{className:`psn-runs-head`,children:[(0,j.jsxs)(`div`,{className:`psn-titles`,children:[(0,j.jsx)(`span`,{className:`psn-title`,children:`Runs`}),(0,j.jsx)(`span`,{className:`psn-count`,children:n===null?``:r})]}),(0,j.jsx)(`p`,{className:`psn-lede`,children:`Every simulation this caller has run, newest first. A row opens the conversation it was.`})]}),(0,j.jsxs)(`div`,{className:`psn-runs-list`,children:[n?.map(e=>(0,j.jsx)(C8,{run:e},e.call)),n!==null&&n.length===0&&!i&&(0,j.jsxs)(`p`,{className:`psn-empty`,children:[`Nobody has called as `,t.name,` yet. Put them on `,e,` in `,(0,j.jsx)(Wi,{to:`/a/${encodeURIComponent(e)}/simulations?persona=${encodeURIComponent(t.name)}`,children:`Simulations`}),`, or run `,(0,j.jsxs)(`code`,{children:[`pinecall simulate --persona `,t.name]}),`.`]}),n===null&&i&&(0,j.jsx)(`p`,{className:`psn-empty`,children:`Asking the gateway…`}),o!==null&&(0,j.jsx)(`div`,{className:`psn-runs-more`,children:(0,j.jsx)(W,{size:`sm`,disabled:i,onClick:o,children:i?`Reading…`:`Show more (${String(r-(n?.length??0))} older)`})})]}),a!==null&&(0,j.jsx)(`p`,{className:`psn-empty psn-bad`,children:a})]})}function C8({run:e}){let t=e.ended_at===null;return(0,j.jsxs)(Wi,{to:`/calls/${e.call}`,className:`psn-run`,children:[(0,j.jsxs)(`span`,{className:`psn-run-top`,children:[(0,j.jsx)(`span`,{className:`psn-run-agent`,children:e.agent}),t&&(0,j.jsx)(CC,{tone:`green`,small:!0}),(0,j.jsx)(`span`,{className:`psn-run-when`,children:_E(e.started_at)})]}),(0,j.jsxs)(`span`,{className:`psn-run-marks`,children:[(0,j.jsx)(w8,{run:e}),(0,j.jsxs)(`span`,{className:`psn-run-fact`,children:[String(e.turns),` `,e.turns===1?`turn`:`turns`]}),!t&&(0,j.jsx)(`span`,{className:`psn-run-fact`,children:dE(e)}),e.cost_usd!==null&&(0,j.jsx)(`span`,{className:`psn-run-fact`,children:fE(e.cost_usd)})]}),e.outcome!==null&&(0,j.jsx)(`span`,{className:`psn-run-outcome`,children:e.outcome}),e.score?.passed===!1&&e.score.reason!==null&&(0,j.jsx)(`span`,{className:`psn-run-broke`,children:e.score.reason})]})}function w8({run:e}){return e.ended_at===null?(0,j.jsx)(xC,{tone:`green`,small:!0,children:`on a call`}):e.score===null?(0,j.jsx)(xC,{tone:`muted`,small:!0,children:e.end_reason===null?`not judged`:e.end_reason.replace(/_/g,` `)}):(0,j.jsxs)(xC,{tone:e.score.passed?`green`:`red`,small:!0,children:[e.score.passed?`held`:`broke`,` `,String(e.score.held),`/`,String(e.score.judged)]})}function T8(e){let t=M(),[n,r]=(0,O.useState)(null),[i,a]=(0,O.useState)(null);return(0,O.useEffect)(()=>{let n=!1;return a(`Asking the gateway…`),i8(t,e).then(e=>{n||(r(e),a(null))},e=>{n||a(e instanceof Error?e.message:String(e))}),()=>{n=!0}},[t,e]),{personas:n,asking:i,setPersonas:r}}var E8=5;function D8(e,t){let n=M(),[r,i]=(0,O.useState)({by:{},read:!1}),a=t===null?null:t.join(`\0`);return(0,O.useEffect)(()=>{if(a===null)return;if(a===``){i({by:{},read:!0});return}let t=!1;return i({by:{},read:!1}),Promise.all(a.split(`\0`).map(async t=>{try{let r=await s8(n,e,t,{limit:E8});return[t,{total:r.total,newest:r.runs}]}catch{return null}})).then(e=>{t||i({by:Object.fromEntries(e.filter(e=>e!==null)),read:!0})}),()=>{t=!0}},[n,e,a]),r}function O8(){let e=xr().agent??``,t=`/a/${encodeURIComponent(e)}`,n=xr().call,[r]=Xi(),i=_r(),a=WC({name:`personas.list`,initial:320,min:260,max:480,side:`left`}),o=WC({name:`personas.runs`,initial:340,min:280,max:560,side:`right`}),{personas:s,asking:c,setPersonas:l}=T8(e),u=D8(e,s===null?null:s.map(e=>e.name)),d=r.get(`new`)===`1`,f=r.get(`edit`)===`1`,p=n??void 0,m=s?.find(e=>e.name===p),h=m!==void 0&&!d&&!f?m:null,g=(e,n=``)=>{let r=n===``?``:`?${n}=1`;i(`${t}/personas${e===null?``:`/${encodeURIComponent(e)}`}${r}`)},_=(e,t)=>{l(e),g(t)};return(0,j.jsxs)(`div`,{className:`psn`,style:a.style,children:[a.handle,(0,j.jsx)(b8,{agent:e,personas:s,asking:c,open:m?.name,onNew:()=>g(null,`new`)}),(0,j.jsxs)(`div`,{className:h===null?`psn-right`:`psn-right psn-right-runs`,style:o.style,children:[h!==null&&o.handle,(0,j.jsx)(`main`,{className:`psn-main`,children:d?(0,j.jsx)(l8,{agent:e,was:void 0,onSaved:_,onCancel:()=>g(p??null)},`new`):m===void 0?(0,j.jsx)(g8,{agent:e,personas:s??[],standings:u,onNew:()=>g(null,`new`)}):f?(0,j.jsx)(l8,{agent:e,was:m,onSaved:_,onCancel:()=>g(m.name)},m.name):(0,j.jsx)(f8,{agent:e,persona:m,onEdit:()=>g(m.name,`edit`),onDropped:e=>{l(e),g(null)}},m.name)}),h!==null&&(0,j.jsx)(S8,{agent:e,persona:h},h.name)]})]})}var k8=z({call:P()});async function A8(e,t){return k8.parse(await ON(e,t.agent,`simulate.start`,t)).call}var j8=15,M8=15,N8=0;function P8({agent:e,personas:t,asking:n,preferred:r,onStarted:i}){let a=M(),[o,s]=(0,O.useState)(``),[c,l]=(0,O.useState)(!0),[u,d]=(0,O.useState)(!1),[f,p]=(0,O.useState)(j8),[m,h]=(0,O.useState)(M8),[g,_]=(0,O.useState)(N8),[v,y]=(0,O.useState)(!1),[b,x]=(0,O.useState)(!1),[S,C]=(0,O.useState)(null),w=t?.map(e=>e.name).join(`
162
+ `)??``;(0,O.useEffect)(()=>{let e=w===``?[]:w.split(`
163
+ `);e.includes(o)||s(r!==void 0&&e.includes(r)?r:e[0]??``)},[w,o,r]);let T=t?.find(e=>e.name===o),ee=I8(t),te=async t=>{t.preventDefault(),x(!0),C(null);try{i(await A8(a,{agent:e,persona:o,voice:c,judge:u,turns:f,...c&&v?{background_noise:m,packet_loss:g}:{}}),c)}catch(e){C(e instanceof na?e.message:String(e))}finally{x(!1)}};return(0,j.jsxs)(`form`,{className:`sim`,onSubmit:e=>void te(e),children:[(0,j.jsx)(`div`,{className:`sim-head`,children:(0,j.jsx)(`span`,{className:`sim-title`,children:`Simulate a caller`})}),t===null&&n!==null&&(0,j.jsx)(`p`,{className:`sim-note`,children:n}),ee!==null&&(0,j.jsx)(`p`,{className:`sim-note`,children:ee}),t!==null&&ee===null&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(Bh,{label:(0,j.jsxs)(`span`,{className:`sim-label-row`,children:[`Persona`,(0,j.jsx)(Wi,{className:`sim-manage`,to:`/a/${encodeURIComponent(e)}/personas${o===``?``:`/${encodeURIComponent(o)}`}`,children:`Manage`})]}),children:(0,j.jsx)(vC,{size:`sm`,"aria-label":`Persona`,value:o,onValueChange:e=>s(e),children:t.map(e=>(0,j.jsx)(yC,{value:e.name,children:e.name},e.name))})}),T!==void 0&&(0,j.jsxs)(`p`,{className:`sim-note`,children:[`Goal: `,T.goal]}),(0,j.jsxs)(`div`,{className:`sim-pair`,children:[(0,j.jsxs)(Bh,{label:`Max turns`,children:[(0,j.jsx)(G,{size:`sm`,type:`number`,"aria-label":`Max turns`,min:1,max:30,value:f,onChange:e=>p(Number(e.target.value))}),(0,j.jsx)(`p`,{className:`sim-aside sim-under`,children:`the lines the caller says; the agent answers each one`})]}),c&&v&&(0,j.jsx)(Bh,{label:`Noise, dB under`,children:(0,j.jsx)(G,{size:`sm`,type:`number`,"aria-label":`Noise, dB under`,min:0,max:60,value:m,onChange:e=>h(Number(e.target.value))})}),c&&v&&(0,j.jsx)(Bh,{label:`Packets lost, %`,children:(0,j.jsx)(G,{size:`sm`,type:`number`,"aria-label":`Packets lost, %`,min:0,max:100,value:g,onChange:e=>_(Number(e.target.value))})})]}),(0,j.jsxs)(`div`,{className:`sim-checks`,children:[(0,j.jsx)(F8,{on:c,onChange:l,name:`Voice`,says:`a real line, and you can listen`}),(0,j.jsx)(F8,{on:u,onChange:d,name:`Judge at hang-up`,says:`the panel scores the call the moment it ends`}),c&&(0,j.jsx)(F8,{on:v,onChange:y,name:`Noisy line`,says:`a TV behind the caller, packets lost`})]}),(0,j.jsx)(W,{type:`submit`,kind:`primary`,size:`md`,disabled:b||o===``,children:b?`Calling…`:`Call the agent`})]}),S!==null&&(0,j.jsx)(`p`,{className:`sim-refused`,children:S})]})}function F8({on:e,onChange:t,name:n,says:r}){return(0,j.jsxs)(`div`,{className:`sim-check`,children:[(0,j.jsx)(Wh,{checked:e,onChange:t,children:n}),(0,j.jsx)(`p`,{className:`sim-aside`,children:r})]})}function I8(e){return e===null?null:e.length===0?`No personas yet: write the first caller in Personas.`:null}function L8(){let e=xr().agent??``,t=xr().call,[n]=Xi(),r=_r(),i=WC({name:`simulations.form`,initial:340,min:280,max:520,side:`left`}),a=n.get(`spoken`)===`1`,o=n.get(`persona`)??void 0,{personas:s,asking:c}=T8(e);return(0,j.jsxs)(`div`,{className:`sims`,style:i.style,children:[i.handle,(0,j.jsxs)(`aside`,{className:`sims-side`,"aria-label":`start a simulation`,children:[(0,j.jsx)(P8,{agent:e,personas:s,asking:c,preferred:o,onStarted:(t,n)=>{r(`/a/${encodeURIComponent(e)}/simulations/${t}${n?`?spoken=1`:``}`)}}),(0,j.jsx)(`p`,{className:`sims-note`,children:`A model plays the persona against the agent, improvising every line from its goal, its manner and its own facts. With Voice on, the call is a real line and you hear both of them here as it happens.`})]}),t===void 0?(0,j.jsx)(`div`,{className:`sims-nothing`,children:`Pick an agent and a persona, then call. The simulation opens here, and you hear it live.`}):(0,j.jsxs)(`div`,{className:`sims-watch`,children:[a&&(0,j.jsx)(V8,{call:t}),(0,j.jsx)(O0,{call:t,agent:e,supervised:!1,beside:e=>(0,j.jsx)(R8,{call:t,spoken:a,over:e})})]},t)]})}function R8({call:e,spoken:t,over:n}){let r=rw(),i=UJ(e,t),[a,o]=(0,O.useState)(!1);if(n)return(0,j.jsx)(`span`,{className:`sims-stopped`,children:`the simulation is over`});if(r!==null&&!r.includes(`supervise`))return(0,j.jsx)(`span`,{className:`sims-stopped`,children:`a key that supervises stops a simulation`});let s=a&&i.error===null;return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(W,{size:`sm`,kind:`danger`,disabled:s,onClick:()=>{o(!0),i.end()},children:s?`Stopping…`:`Stop`}),i.error!==null&&(0,j.jsx)(`span`,{className:`sims-refused`,children:i.error})]})}var z8=1e3,B8=30;function V8({call:e}){let t=RJ(e),n=(0,O.useRef)(0),r=(0,O.useRef)(!1);(0,O.useEffect)(()=>{if(t.listening===`off`&&!r.current&&n.current===0&&(n.current=1,t.join()),t.listening===`failed`&&!r.current&&n.current<B8){let e=window.setTimeout(()=>{n.current+=1,t.join()},z8);return()=>window.clearTimeout(e)}t.listening===`muted`&&!r.current&&(r.current=!0,t.hear(!0))},[t]);let i=(()=>{switch(t.listening){case`on`:return`Listening live · the caller and the agent`;case`muted`:return`Muted`;case`joining`:return`Joining the call…`;case`failed`:return n.current<B8?`Waiting for the call's room to open…`:`Could not join the call: ${t.error??`no room`}`;case`off`:return r.current?`The call is over`:`Joining the call…`}})();return(0,j.jsxs)(`div`,{className:`sims-ear`,role:`status`,children:[(0,j.jsx)(`span`,{className:t.listening===`on`?`sims-ear-dot sims-ear-dot-on`:`sims-ear-dot`}),(0,j.jsx)(`span`,{className:`sims-ear-said`,children:i}),t.listening===`on`&&(0,j.jsx)(W,{size:`sm`,pill:!0,onClick:()=>t.hear(!1),children:`Mute`}),t.listening===`muted`&&(0,j.jsx)(W,{size:`sm`,pill:!0,onClick:()=>t.hear(!0),children:`Unmute`})]})}var H8=[`Wrong information`,`Didn't use a tool`,`Wrong tool or arguments`,`Made something up`,`Ignored the caller`,`Tone`,`Too long`],U8=`The gateway does not keep a correction yet: this is the record it will take.`;function W8({text:e}){let[t,n]=(0,O.useState)(!1),[r,i]=(0,O.useState)(null),[a,o]=(0,O.useState)([]),[s,c]=(0,O.useState)(``),l=async()=>{await navigator.clipboard.writeText(e),n(!0),window.setTimeout(()=>n(!1),1200)},u=e=>o(a.includes(e)?a.filter(t=>t!==e):[...a,e]);return(0,j.jsxs)(`div`,{className:`talk-fb`,children:[(0,j.jsxs)(`div`,{className:`talk-fb-row`,children:[(0,j.jsx)(`button`,{type:`button`,className:`talk-fb-btn`,onClick:()=>void l(),"data-tip":t?`Copied`:`Copy`,"aria-label":`Copy the reply`,children:(0,j.jsx)(Kh,{name:t?`check`:`copy`,size:15})}),(0,j.jsx)(`button`,{type:`button`,className:r===`good`?`talk-fb-btn talk-fb-on`:`talk-fb-btn`,onClick:()=>i(r===`good`?null:`good`),"data-tip":`Good reply`,"aria-pressed":r===`good`,children:(0,j.jsx)(Kh,{name:`up`,size:15})}),(0,j.jsx)(`button`,{type:`button`,className:r===`bad`?`talk-fb-btn talk-fb-on-bad`:`talk-fb-btn`,onClick:()=>i(r===`bad`?null:`bad`),"data-tip":`Bad reply — say what was wrong`,"aria-pressed":r===`bad`,children:(0,j.jsx)(Kh,{name:`down`,size:15})})]}),r===`bad`&&(0,j.jsxs)(`div`,{className:`talk-fb-form`,children:[(0,j.jsx)(`div`,{className:`talk-fb-title`,children:`What was wrong with this reply?`}),(0,j.jsx)(`div`,{className:`talk-fb-reasons`,children:H8.map(e=>(0,j.jsx)(`button`,{type:`button`,className:a.includes(e)?`talk-fb-chip talk-fb-chip-on`:`talk-fb-chip`,onClick:()=>u(e),"aria-pressed":a.includes(e),children:e},e))}),(0,j.jsx)(`textarea`,{className:`talk-fb-text`,rows:2,placeholder:`What should it have said? It becomes the answer the agent is tested against.`,value:s,onChange:e=>c(e.target.value)}),(0,j.jsxs)(`div`,{className:`talk-fb-foot`,children:[(0,j.jsx)(`span`,{className:`talk-fb-note`,children:U8}),(0,j.jsx)(W,{size:`sm`,onClick:()=>i(null),children:`Cancel`}),(0,j.jsx)(W,{size:`sm`,kind:`primary`,disabled:!0,"data-tip":U8,children:`Save`})]})]})]})}var G8=`lk.transcription`,K8=`lk.transcription_final`,q8=`lk.chat`,J8=1500,Y8=`✗`;function X8(e,t){let n=e.findIndex(e=>e.id===t.id);if(n===-1)return[...e,t];let r=e.slice();return r[n]=t,r}function Z8(e){return e.split(/(\s+)/).filter(e=>e.length>0)}function Q8(e,t){return t.args===null?{...t,args:e.args,name:e.name}:{...e,args:t.args}}function $8(e){let t=cN(e);if(t!==null)return{kind:`mark`,id:`mark-${e.seq}`,tone:`supervisor`,text:t.said};let n=e.data;switch(e.type){case`tool.call`:return{kind:`tool`,id:`tool-${String(n.call_id)}`,name:String(n.name),args:n.arguments??{},status:`running`,result:null,seconds:null};case`tool.result`:{let e=n.error!==void 0&&n.error!==null;return{kind:`tool`,id:`tool-${String(n.call_id)}`,name:String(n.name),args:null,status:e?`failed`:`ok`,result:e5(n),seconds:typeof n.duration_s==`number`?n.duration_s:null}}case`error`:return{kind:`mark`,id:`mark-${e.seq}`,tone:`error`,text:`${Y8} ${String(n.message)}`};default:return null}}function e5(e){return e.error!==void 0&&e.error!==null?t5(e.error):e.output===void 0?typeof e.summary==`string`?e.summary:`nothing`:t5(e.output)}function t5(e){return typeof e==`string`?e:JSON.stringify(e,null,2)??String(e)}function n5({lines:e}){let t=(0,O.useRef)(null);return(0,O.useEffect)(()=>{let e=t.current;e&&(e.scrollTop=e.scrollHeight)},[e]),(0,j.jsx)(`div`,{className:`talk-stream`,ref:t,children:(0,j.jsx)(`div`,{className:`talk-column`,children:e.map(e=>e.kind===`said`?e.speaker===`user`?(0,j.jsx)(a5,{line:e},e.id):(0,j.jsx)(i5,{line:e},e.id):e.kind===`tool`?(0,j.jsx)(o5,{run:e},e.id):(0,j.jsx)(s5,{mark:e},e.id))})})}function r5({line:e}){return(0,j.jsxs)(j.Fragment,{children:[Z8(e.text).map((e,t)=>(0,j.jsx)(`span`,{className:`talk-word`,children:e},t)),!e.final&&(0,j.jsx)(`span`,{className:`talk-cursor`,"aria-hidden":!0})]})}function i5({line:e}){return(0,j.jsxs)(`div`,{className:`talk-reply`,children:[(0,j.jsx)(`p`,{className:e.final?`talk-reply-text`:`talk-reply-text talk-reply-unsettled`,children:(0,j.jsx)(r5,{line:e})}),e.final&&(0,j.jsx)(W8,{text:e.text})]})}function a5({line:e}){let t=[`talk-bubble`];return e.pending===!0&&t.push(`talk-bubble-pending`),e.final||t.push(`talk-bubble-unsettled`),(0,j.jsx)(`div`,{className:`talk-yours`,children:(0,j.jsx)(`p`,{className:t.join(` `),children:(0,j.jsx)(r5,{line:e})})})}function o5({run:e}){let[t,n]=(0,O.useState)(!1),r=Object.entries(e.args??{});return(0,j.jsxs)(`div`,{className:e.status===`failed`?`talk-tool talk-tool-failed`:`talk-tool`,children:[(0,j.jsxs)(`button`,{type:`button`,className:`talk-tool-head`,onClick:()=>n(!t),"aria-expanded":t,disabled:e.result===null,children:[(0,j.jsx)(`span`,{className:`talk-tool-icon`,"aria-hidden":!0,children:(0,j.jsx)(Kh,{name:`sliders`,size:13})}),(0,j.jsxs)(`span`,{className:`talk-tool-call`,children:[(0,j.jsx)(`span`,{className:`talk-tool-name`,children:e.name}),(0,j.jsx)(`span`,{className:`talk-tool-paren`,children:`(`}),r.map(([e,t],n)=>(0,j.jsxs)(`span`,{children:[(0,j.jsx)(`span`,{className:`talk-tool-key`,children:e}),`=`,(0,j.jsx)(`span`,{className:`talk-tool-value`,children:typeof t==`string`?`"${t}"`:JSON.stringify(t)}),n<r.length-1&&`, `]},e)),(0,j.jsx)(`span`,{className:`talk-tool-paren`,children:`)`})]}),(0,j.jsx)(`span`,{className:`talk-tool-status talk-tool-status-${e.status}`,children:e.status===`running`?`running…`:e.status===`ok`?`✓ ok`:`✗ failed`}),e.seconds!==null&&(0,j.jsxs)(`span`,{className:`talk-tool-time`,children:[Math.round(e.seconds*1e3),`ms`]}),e.result!==null&&(0,j.jsx)(`span`,{className:t?`talk-tool-caret talk-tool-caret-open`:`talk-tool-caret`,children:`▾`})]}),t&&e.result!==null&&(0,j.jsxs)(`div`,{className:`talk-tool-body`,children:[(0,j.jsx)(`span`,{className:`talk-tool-label`,children:`result`}),(0,j.jsx)(`pre`,{className:`talk-tool-result`,children:e.result})]})]})}function s5({mark:e}){return(0,j.jsx)(`div`,{className:`talk-note-wrap`,children:(0,j.jsx)(`span`,{className:`talk-note talk-note-${e.tone}`,children:e.text})})}function c5({placeholder:e,disabled:t,onWrite:n,lead:r,trail:i}){let[a,o]=(0,O.useState)(``),s=a.trim()!==``;return(0,j.jsxs)(`form`,{className:`talk-composer`,onSubmit:e=>{e.preventDefault(),s&&!t&&(o(``),n(a.trim()))},children:[r,(0,j.jsx)(`input`,{className:`talk-write`,"aria-label":`Write to the agent`,value:a,disabled:t,placeholder:e,onChange:e=>o(e.target.value)}),s?(0,j.jsx)(`button`,{type:`submit`,className:`talk-send`,disabled:t,"aria-label":`Send`,"data-tip":`Send`,children:(0,j.jsx)(Kh,{name:`arrow`,size:17})}):i]})}var l5=new Set;function u5(e){l5.add(e)}function d5(e){return l5.has(e)}var f5=z({server_url:P(),participant_token:P(),call:P()});function p5(e){let t=M(),[n,r]=(0,O.useState)(`idle`),[i,a]=(0,O.useState)(`talk`),[o,s]=(0,O.useState)(null),[c,l]=(0,O.useState)(!1),[u,d]=(0,O.useState)(null),[f,p]=(0,O.useState)([]),[m,h]=(0,O.useState)(null),g=(0,O.useRef)(null),_=(0,O.useRef)(new Set),v=(0,O.useRef)(null),y=(0,O.useRef)([]),b=(0,O.useRef)(new Set),x=(0,O.useRef)(null),S=(0,O.useRef)(()=>void 0),C=(0,O.useRef)(null),w=(0,O.useRef)(null),T=(0,O.useCallback)(()=>{w.current!==null&&(window.clearTimeout(w.current),w.current=null);let e=y.current;y.current=[];for(let t of e)b.current.add(t.id);e.length>0&&p(t=>[...t,...e])},[]),ee=(0,O.useCallback)(e=>{_.current.has(e.id)?p(t=>X8(t,e)):(_.current.add(e.id),e.speaker===`user`&&T(),p(t=>X8(t,e)),v.current=e.speaker,e.speaker===`agent`&&T(),e.speaker===`agent`&&C.current!==null&&(window.clearTimeout(C.current),C.current=null)),e.speaker===`agent`&&e.final&&S.current()},[T]),te=(0,O.useRef)(0),E=(0,O.useCallback)(async e=>{let t=g.current;if(t===null)return;te.current+=1;let n=`typed-${te.current}`;T(),p(t=>[...t,{kind:`said`,id:n,speaker:`user`,text:e,final:!0,pending:!0}]),v.current=`user`;try{await t.localParticipant.sendText(e,{topic:q8})}catch(e){p(e=>e.filter(e=>e.id!==n)),h(e instanceof Error?e.message:String(e))}},[T]),ne=(0,O.useCallback)(e=>{if(e.type===`turn.user`){let t=String(e.data.text??``).trim();p(e=>{let n=e.findIndex(e=>e.kind===`said`&&e.pending===!0&&e.text.trim()===t);if(n===-1)return e;let r=e.slice();return r[n]={...e[n],pending:!1},r});return}let t=$8(e);if(t!==null){if(t.kind===`tool`){let e=y.current.findIndex(e=>e.id===t.id);if(e!==-1){y.current[e]=Q8(y.current[e],t);return}if(b.current.has(t.id)){p(e=>e.map(e=>e.id===t.id&&e.kind===`tool`?Q8(e,t):e));return}}if(v.current===`agent`){b.current.add(t.id),p(e=>[...e,t]);return}y.current.push(t),w.current!==null&&window.clearTimeout(w.current),w.current=window.setTimeout(T,J8)}},[T]),D=(0,O.useCallback)(async(n,i)=>{r(`connecting`),a(n),l(!1),s(null),h(null),p([]),_.current.clear(),b.current.clear(),v.current=null,y.current=[],x.current=i!==void 0&&i.trim()!==``?i.trim():null,C.current!==null&&window.clearTimeout(C.current),C.current=null,S.current=()=>{let e=x.current;e!==null&&(x.current=null,C.current!==null&&window.clearTimeout(C.current),C.current=null,E(e))};let o=()=>{x.current!==null&&C.current===null&&(C.current=window.setTimeout(()=>S.current(),J8))};try{let i=f5.parse(await la(t,`/v1/tokens`,{agent:e,scope:n})),a=new MJ;g.current=a,a.registerTextStreamHandler(G8,(e,t)=>{m5(a,e,t.identity,ee)}),n===`talk`&&a.on(Y.TrackSubscribed,h5),a.on(Y.TrackUnsubscribed,e=>e.detach().forEach(e=>e.remove())),a.on(Y.Disconnected,()=>r(`ended`)),a.on(Y.ParticipantConnected,e=>{e.kind===EI.AGENT&&o()}),u5(i.call),d(i.call),await a.connect(i.server_url,i.participant_token),n===`talk`&&await a.localParticipant.setMicrophoneEnabled(!0),s(Date.now()/1e3),r(`live`),[...a.remoteParticipants.values()].some(e=>e.kind===EI.AGENT)&&o()}catch(e){h(e instanceof Error?e.message:String(e)),r(`failed`)}},[e,t,ee,E]),re=(0,O.useCallback)(async()=>{await g.current?.disconnect()},[]),ie=(0,O.useCallback)(async()=>{let e=g.current;e!==null&&(await e.localParticipant.setMicrophoneEnabled(c),l(!c))},[c]);return(0,O.useEffect)(()=>()=>{g.current?.disconnect()},[]),{phase:n,mode:i,call:u,lines:f,error:m,since:o,muted:c,open:D,close:re,toggleMic:ie,write:E,heard:ne}}async function m5(e,t,n,r){let i=t.info.attributes?.[`lk.segment_id`]??t.info.id,a=e.remoteParticipants.get(n)?.kind===EI.AGENT?`agent`:`user`,o=``;for await(let e of t)o+=e,r({kind:`said`,id:i,speaker:a,text:o,final:!1});r({kind:`said`,id:i,speaker:a,text:o,final:t.info.attributes?.[K8]===`true`})}function h5(e){if(e.kind!==$.Kind.Audio)return;let t=e.attach();t.style.display=`none`,document.body.append(t)}function g5(){let e=xr().agent??``,t=p5(e),n=WC({name:`agent.inspector`,initial:330,min:260,max:620,side:`right`}),r=t.lines.length===0&&t.phase!==`live`;return(0,j.jsxs)(`div`,{className:`talk-grid`,style:n.style,children:[n.handle,(0,j.jsxs)(`section`,{className:r?`talk-stage talk-stage-fresh`:`talk-stage`,"aria-label":`Chat with ${e}`,children:[t.phase!==`idle`&&(0,j.jsx)(_5,{live:t}),(0,j.jsx)(Ah,{children:t.error}),r?(0,j.jsxs)(`div`,{className:`talk-hello`,children:[(0,j.jsx)(`h2`,{className:`talk-hello-title`,children:t.phase===`connecting`?`Joining the room…`:`What should ${e} help with?`}),(0,j.jsx)(v5,{agent:e,live:t})]}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(n5,{lines:t.lines}),(0,j.jsx)(v5,{agent:e,live:t})]}),t.call!==null&&(0,j.jsx)(y5,{call:t.call,heard:t.heard})]}),(0,j.jsx)(XM,{agent:e,call:t.call})]})}function _5({live:e}){let t=x5(e.phase===`live`);return(0,j.jsxs)(`header`,{className:`talk-bar`,children:[(0,j.jsxs)(`span`,{className:`talk-state talk-state-${e.phase}`,children:[(0,j.jsx)(`span`,{className:`talk-state-dot`,"aria-hidden":!0}),(0,j.jsxs)(`span`,{className:`talk-state-mode`,children:[(0,j.jsx)(Kh,{name:e.mode===`talk`?`phone`:`chat`,size:13}),e.mode===`talk`?`Voice`:`Text`]}),b5(e),e.phase===`live`&&(0,j.jsx)(`span`,{className:`talk-clock`,children:iE(e.since,t)})]}),e.phase===`ended`&&e.call!==null&&(0,j.jsx)(Wi,{to:`/calls/${e.call}`,className:`talk-open`,children:`Open the conversation ↗`})]})}function v5({agent:e,live:t}){let n=t.phase===`live`||t.phase===`connecting`,r=n&&t.mode===`talk`,i=async e=>n?t.write(e):t.open(`chat`,e),a=r&&(0,j.jsx)(`button`,{type:`button`,className:t.muted?`talk-mic talk-mic-off`:`talk-mic`,disabled:t.phase!==`live`,onClick:()=>void t.toggleMic(),"aria-label":t.muted?`Unmute`:`Mute`,"data-tip":t.muted?`Unmute`:`Mute`,children:(0,j.jsxs)(`span`,{className:t.muted?`talk-bars`:`talk-bars talk-bars-on`,"aria-hidden":!0,children:[(0,j.jsx)(`span`,{}),(0,j.jsx)(`span`,{}),(0,j.jsx)(`span`,{}),(0,j.jsx)(`span`,{})]})}),o=n?(0,j.jsx)(`button`,{type:`button`,className:`talk-hangup`,disabled:t.phase===`connecting`,onClick:()=>void t.close(),"aria-label":r?`Hang up`:`End the chat`,"data-tip":r?`Hang up`:`End the chat`,children:(0,j.jsx)(Kh,{name:`phone`,size:16})}):(0,j.jsx)(`button`,{type:`button`,className:`talk-voice`,onClick:()=>void t.open(`talk`),"aria-label":`Call ${e}`,"data-tip":`Call ${e} — your microphone, its voice`,children:(0,j.jsx)(Kh,{name:`wave`,size:17})});return(0,j.jsx)(`div`,{className:`talk-dock`,children:(0,j.jsx)(c5,{placeholder:r?`Type into the call — a number, an address…`:`Message ${e}…`,disabled:t.phase===`connecting`,onWrite:i,lead:a,trail:o})})}function y5({call:e,heard:t}){return KM(e,{onEntry:t}),null}function b5(e){let t=e.mode===`talk`;switch(e.phase){case`idle`:return`Ready`;case`connecting`:return`Joining…`;case`live`:return t?e.muted?`On a call · muted`:`On a call`:`Writing`;case`ended`:return t?`Call ended`:`Chat ended`;case`failed`:return`The room did not open`}}function x5(e){let[t,n]=(0,O.useState)(()=>Date.now()/1e3);return(0,O.useEffect)(()=>{if(!e)return;let t=window.setInterval(()=>n(Date.now()/1e3),1e3);return()=>window.clearInterval(t)},[e]),t}function S5(){let e=M(),[t]=Xi(),n=t.get(`plan`),[r,i]=(0,O.useState)(null);return(0,O.useEffect)(()=>{let t=!1;return(async()=>{let r=Vw.parse(await A(e,`/v1/limits`));if(r.billing_url===null)throw Error(C5);let i=new URL(r.billing_url);i.searchParams.set(`login`,await om(e)),n!==null&&i.searchParams.set(`plan`,n),t||window.location.replace(i.toString())})().catch(e=>{t||i(e instanceof Error?e.message:String(e))}),()=>{t=!0}},[e,n]),(0,j.jsx)(`div`,{className:`billing-hop`,children:(0,j.jsxs)(`div`,{className:`billing-hop-card`,children:[(0,j.jsx)(`img`,{className:`billing-hop-mark`,src:`/pinecall-mark.png`,alt:``}),(0,j.jsx)(`h1`,{children:r===null?`Opening billing…`:`Billing did not open`}),(0,j.jsx)(`p`,{children:r??`Taking you to your plan, signed in as you.`})]})})}var C5=`This box does not bill: nothing to buy here.`,w5=z({device:P().nullable(),expires_at:F(),answered:L()}),T5=z({device:P().nullable(),org:P(),org_name:P()});function E5(e){return`/v1/login/pairings/${encodeURIComponent(e)}`}async function D5(e,t){return w5.parse(await A(e,E5(t)))}async function O5(e,t){return T5.parse(await la(e,E5(t),{})).org_name}var k5=`c`,A5=`a terminal`;function j5(){let e=M(),[t]=Xi(),n=t.get(k5),[r,i]=(0,O.useState)(null),[a,o]=(0,O.useState)(!1),[s,c]=(0,O.useState)(null),[l,u]=(0,O.useState)(null);(0,O.useEffect)(()=>{if(n===null)return;let t=!1;return D5(e,n).then(e=>{t||i(e)},e=>{t||u(e instanceof na?e.message:String(e))}),()=>{t=!0}},[e,n]);let d=async()=>{if(n!==null){o(!0),u(null);try{c(await O5(e,n))}catch(e){u(e instanceof na?e.message:String(e))}finally{o(!1)}}};return n===null?(0,j.jsx)(N5,{title:`No terminal is asking`,lede:M5}):s===null?l!==null&&r===null?(0,j.jsx)(N5,{title:`That link is no good`,lede:l}):(0,j.jsxs)(N5,{title:`Sign this terminal in?`,lede:`A terminal calling itself ${r?.device??A5} asked to be signed in as you. Approve it only if you just ran "pinecall login" on that machine yourself.`,children:[(0,j.jsx)(W,{kind:`primary`,size:`lg`,onClick:()=>void d(),disabled:a||r===null,children:a?`Signing in…`:`Yes, that is my terminal`}),l!==null&&(0,j.jsx)(`p`,{className:`terminal-refused`,children:l})]}):(0,j.jsx)(N5,{title:`Your terminal is signed in`,lede:`Go back to it. You are in ${s}.`})}var M5="Run `pinecall login` in your terminal — it prints a link, and that link comes back here.";function N5({title:e,lede:t,children:n}){return(0,j.jsx)(`div`,{className:`terminal`,children:(0,j.jsxs)(`div`,{className:`terminal-card`,children:[(0,j.jsx)(`img`,{className:`terminal-mark`,src:`/pinecall-mark.png`,alt:``}),(0,j.jsx)(`h1`,{className:`terminal-title`,children:e}),(0,j.jsx)(`p`,{className:`terminal-lede`,children:t}),n]})})}var P5=`minmax(0,1fr) minmax(0,1.3fr) 110px 110px 96px 90px 230px`,F5={active:`green`,invited:`amber`,disabled:`gray`};function I5({member:e,onChange:t,onResend:n,onReset:r,onRemove:i,yourself:a=!1}){let[o,s]=(0,O.useState)(!1),[c,l]=(0,O.useState)(null),[u,d]=(0,O.useState)(e.agents.join(` `)),[f,p]=(0,O.useState)(!1),m=async e=>{p(!0);try{await e()}finally{p(!1)}},h=()=>{l(null);let n=u.split(/[\s,]+/).filter(e=>e!==``);n.join(` `)!==e.agents.join(` `)&&m(()=>t({agents:n}))};return(0,j.jsxs)(`div`,{className:`ui-table-row`,style:{gridTemplateColumns:P5},children:[(0,j.jsx)(`span`,{className:`ui-cell-strong ui-clip`,children:e.name}),(0,j.jsx)(`span`,{className:`ui-cell ui-clip`,children:e.email}),c===`role`?(0,j.jsx)(vC,{size:`sm`,defaultOpen:!0,value:e.role,onOpenChange:e=>{e||l(null)},onValueChange:e=>{l(null),m(()=>t({role:e}))},"aria-label":`${e.name}'s role`,children:HQ.map(e=>(0,j.jsx)(yC,{value:e,children:e},e))}):(0,j.jsx)(`button`,{type:`button`,className:`team-editable team-role`,onClick:()=>l(`role`),title:`Change the role`,children:e.role}),c===`agents`?(0,j.jsx)(G,{size:`sm`,autoFocus:!0,value:u,placeholder:`every agent`,onChange:e=>d(e.target.value),onBlur:h,onKeyDown:t=>{t.key===`Enter`&&h(),t.key===`Escape`&&(d(e.agents.join(` `)),l(null))},"aria-label":`${e.name}'s agents`}):(0,j.jsx)(`button`,{type:`button`,className:`team-editable team-agents ui-clip`,onClick:()=>l(`agents`),title:`Change the agents`,children:e.agents.length===0?`every agent`:e.agents.join(`, `)}),(0,j.jsx)(`span`,{className:`ui-cell`,children:e.role===`admin`?(0,j.jsx)(`span`,{className:`ui-cell-faint`,children:`always`}):(0,j.jsx)(Uh,{on:e.production,label:`${e.name} acts in production`,onChange:e=>void m(()=>t({production:e}))})}),(0,j.jsx)(`span`,{className:`ui-cell-end`,children:(0,j.jsx)(xC,{tone:F5[e.status],children:e.status})}),(0,j.jsx)(`span`,{className:`ui-cell-end`,children:o?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`span`,{className:`team-sure`,children:`Remove for good?`}),(0,j.jsx)(Lh,{danger:!0,disabled:f,onClick:()=>void m(i),children:`Remove`}),(0,j.jsx)(Lh,{disabled:f,onClick:()=>s(!1),children:`Keep`})]}):(0,j.jsxs)(j.Fragment,{children:[e.status===`active`&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(Lh,{disabled:f,onClick:()=>void m(r),title:`A one-use link to choose a new password`,children:`Reset password`}),!a&&(0,j.jsx)(Lh,{disabled:f,onClick:()=>void m(()=>t({status:`disabled`})),children:`Disable`})]}),e.status===`disabled`&&(0,j.jsx)(Lh,{disabled:f,onClick:()=>void m(()=>t({status:`active`})),children:`Bring back`}),e.status===`invited`&&(0,j.jsx)(Lh,{disabled:f,onClick:()=>void m(n),children:`Resend invite`}),!a&&(0,j.jsx)(Lh,{danger:!0,disabled:f,onClick:()=>s(!0),title:`Out of the org for good: every key revoked, the seat freed`,children:`Remove`})]})})]})}var L5={qa:{who:`Reads finished calls and the suites`,opens:`calls · evals`},supervisor:{who:`Sits beside a live call: listens, whispers, takes it over`,opens:`calls · evals · supervise · talk · memory · words`},manager:{who:`Runs the floor and the org's accounts, never the agent's declaration`,opens:`calls · evals · supervise · talk · memory · numbers · keys · providers · usage · team · words`},developer:{who:`Writes and runs the agent`,opens:`app · calls · talk · supervise · pipeline · knowledge · memory · evals · words`},admin:{who:`The org's owner`,opens:`every door`}},R5=[`qa`,`supervisor`,`manager`,`developer`,`admin`],z5=`110px minmax(0,1fr) minmax(0,1.4fr)`;function B5(){return(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Roles`,meta:`a preset of what a person's keys open — and where: the sandbox always, production when their switch is on (an admin's always is)`}),(0,j.jsx)(NC,{columns:z5,labels:[`Role`,`Who`,`Opens`]}),R5.map(e=>(0,j.jsxs)(PC,{columns:z5,children:[(0,j.jsx)(`span`,{className:`ui-cell-strong`,children:e}),(0,j.jsx)(`span`,{className:`ui-cell-ink`,children:L5[e].who}),(0,j.jsx)(`span`,{className:`ui-cell-faint team-role-opens`,children:L5[e].opens})]},e))]})}var V5=``;function H5(){let e=M(),[t,n]=(0,O.useState)(null),[r,i]=(0,O.useState)(null),[a,o]=(0,O.useState)(!1),[s,c]=(0,O.useState)(!1);if((0,O.useEffect)(()=>{let t=!1;return A6(e).then(e=>{t||n(e)},e=>{t||i(G5(e))}),()=>{t=!0}},[e]),t===null)return r===null?null:(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Single sign-on`}),(0,j.jsx)(`div`,{className:`ui-card-body`,children:(0,j.jsx)(Ah,{children:r})})]});let l=async()=>{if(!s){c(!0);return}i(null);try{await M6(e),n(await A6(e)),c(!1)}catch(e){i(G5(e))}};return(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Single sign-on`,meta:t.configured?`this org's people sign in with its identity provider`:`sign in with Google Workspace, Okta or Entra instead of a password`,children:t.configured&&!a&&(0,j.jsxs)(`span`,{className:`team-link-moves`,children:[(0,j.jsx)(W,{size:`xs`,onClick:()=>o(!0),children:`Change`}),(0,j.jsx)(W,{size:`xs`,kind:`danger`,onClick:()=>void l(),onBlur:()=>c(!1),children:s?`Remove · sure?`:`Remove`})]})}),t.configured&&!a?(0,j.jsxs)(`div`,{className:`team-sso-values`,children:[(0,j.jsx)(Ph,{label:`Issuer`,children:t.issuer}),(0,j.jsx)(Ph,{label:`Client ID`,children:t.client_id}),(0,j.jsx)(Ph,{label:`Client secret`,children:`kept, and never shown`}),(0,j.jsx)(Ph,{label:`Allowed domains`,children:t.domains.join(`, `)||`—`}),(0,j.jsx)(Ph,{label:`Arriving new`,children:t.role??`nobody: invite first`}),(0,j.jsx)(Ph,{label:`Passwords`,children:t.required?`stopped for this org`:`still work beside it`})]}):(0,j.jsx)(U5,{sso:t,onSaved:e=>{n(e),o(!1)},onCancel:t.configured?()=>o(!1):void 0}),(0,j.jsx)(W5,{uri:t.redirect_uri}),r!==null&&(0,j.jsx)(`div`,{className:`ui-card-body`,children:(0,j.jsx)(Ah,{children:r})})]})}function U5({sso:e,onSaved:t,onCancel:n}){let r=M(),[i,a]=(0,O.useState)(e.issuer??``),[o,s]=(0,O.useState)(e.client_id??``),[c,l]=(0,O.useState)(``),[u,d]=(0,O.useState)(e.domains.join(` `)),[f,p]=(0,O.useState)(e.role??V5),[m,h]=(0,O.useState)(e.required),[g,_]=(0,O.useState)(!1),[v,y]=(0,O.useState)(null),b=async e=>{e.preventDefault(),_(!0),y(null);try{t(await j6(r,{issuer:i.trim(),client_id:o.trim(),client_secret:c,domains:u.split(/[\s,]+/).filter(e=>e!==``),role:f===V5?null:f,required:m}))}catch(e){y(G5(e))}finally{_(!1)}};return(0,j.jsxs)(`form`,{className:`team-sso-form`,onSubmit:e=>void b(e),children:[(0,j.jsxs)(`div`,{className:`team-sso-grid`,children:[(0,j.jsx)(Bh,{label:`Issuer URL`,children:(0,j.jsx)(G,{type:`url`,placeholder:`https://accounts.google.com`,value:i,onChange:e=>a(e.target.value),required:!0})}),(0,j.jsx)(Bh,{label:`Client ID`,children:(0,j.jsx)(G,{value:o,onChange:e=>s(e.target.value),required:!0})}),(0,j.jsx)(Bh,{label:`Client secret, sent once`,children:(0,j.jsx)(G,{type:`password`,autoComplete:`off`,placeholder:`never shown again`,value:c,onChange:e=>l(e.target.value),required:!0})}),(0,j.jsx)(Bh,{label:`Allowed domains`,children:(0,j.jsx)(G,{placeholder:`company.com other.com`,value:u,onChange:e=>d(e.target.value),required:!0})}),(0,j.jsx)(Bh,{label:`Role for people who arrive new`,children:(0,j.jsxs)(vC,{value:f,onValueChange:e=>p(e),children:[(0,j.jsx)(yC,{value:V5,children:`nobody: invite first`}),HQ.map(e=>(0,j.jsx)(yC,{value:e,children:e},e))]})}),(0,j.jsxs)(`div`,{className:`team-sso-required`,children:[(0,j.jsx)(`span`,{className:`team-sso-required-words`,children:`Passwords stop working for this org`}),(0,j.jsx)(Uh,{on:m,onChange:h,label:`Passwords stop working for this org`})]})]}),(0,j.jsxs)(`div`,{className:`team-sso-moves`,children:[(0,j.jsx)(W,{kind:`primary`,size:`form`,type:`submit`,disabled:g,children:g?`Asking the issuer…`:`Save`}),n!==void 0&&(0,j.jsx)(W,{size:`form`,onClick:n,children:`Cancel`}),(0,j.jsx)(`span`,{className:`ui-note`,children:`The gateway asks the issuer for its discovery document before it keeps anything.`})]}),(0,j.jsx)(Ah,{children:v})]})}function W5({uri:e}){let[t,n]=(0,O.useState)(!1);return(0,j.jsxs)(`div`,{className:`team-sso-redirect`,children:[(0,j.jsxs)(`div`,{className:`team-sso-redirect-head`,children:[(0,j.jsx)(`span`,{className:`ui-note`,children:`Register this at your identity provider as the redirect URI`}),(0,j.jsx)(W,{size:`xs`,onClick:()=>{navigator.clipboard.writeText(e).then(()=>n(!0))},children:t?`Copied`:`Copy`})]}),(0,j.jsx)(`pre`,{className:`ui-code`,children:e})]})}function G5(e){return e instanceof na?e.message:String(e)}var K5=[{tab:`people`,name:`People`},{tab:`roles`,name:`Roles`},{tab:`sso`,name:`Single sign-on`}];function q5(){let e=M(),t=pT(nw()),[n,r]=Xi(),i=K5.some(e=>e.tab===n.get(`tab`))?n.get(`tab`):`people`,[a,o]=(0,O.useState)(null),[s,c]=(0,O.useState)(!1),[l,u]=(0,O.useState)(null),[d,f]=(0,O.useState)(null),p=async()=>o(await WQ(e)),m=e=>r(e===`people`?{}:{tab:e});(0,O.useEffect)(()=>{let t=!1;return WQ(e).then(e=>{t||o(e)},e=>{t||f(X5(e))}),()=>{t=!0}},[e]);let h=async(t,n)=>{f(null);try{await O6(e,t,n),await p()}catch(e){f(X5(e))}},g=async t=>{f(null);try{return u({link:await T6(e,t),kind:`invitation`}),await p(),!0}catch(e){return f(X5(e)),!1}},_=async t=>{f(null);try{await D6(e,t),await p()}catch(e){f(X5(e))}},v=async t=>{f(null);try{u({link:await E6(e,t),kind:`reset`})}catch(e){f(X5(e))}},y=e=>(a??[]).filter(t=>t.status===e).length;return(0,j.jsxs)(kC,{width:1060,tight:!0,children:[(0,j.jsx)(AC,{title:`Team`,lede:`The org's people: who they are, what their keys may do, and how they sign in.`}),(0,j.jsx)(GC,{label:`Team`,tabs:K5,on:i,onPick:m}),i===`people`&&(0,j.jsxs)(j.Fragment,{children:[l!==null&&(0,j.jsx)(J5,{invited:l.link,kind:l.kind,onClose:()=>u(null)}),(0,j.jsx)(Ah,{children:d}),a!==null&&(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`People`,meta:[`${y(`active`)} active`,y(`invited`)>0&&`${y(`invited`)} invited`,y(`disabled`)>0&&`${y(`disabled`)} disabled`].filter(Boolean).join(` · `),action:s?void 0:(0,j.jsx)(W,{kind:`primary`,size:`sm`,className:`ui-card-action`,onClick:()=>c(!0),children:`Invite someone`})}),s&&(0,j.jsx)(Y5,{onInvite:async e=>{await g(e)&&c(!1)},onClose:()=>c(!1),onRoles:()=>m(`roles`)}),a.length===0?(0,j.jsx)(kh,{children:`Nobody is a member yet: the org's machine key alone opens its doors. Invite the first person.`}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(NC,{columns:`minmax(0,1fr) minmax(0,1.3fr) 110px 110px 96px 90px 230px`,labels:[`Name`,`Email`,`Role`,`Agents`,`Production`,`Status>`,``]}),a.map(e=>(0,j.jsx)(I5,{member:e,onChange:t=>h(e.id,t),onResend:async()=>{await g({email:e.email,name:e.name,role:e.role,agents:e.agents,production:e.production})},onReset:()=>v(e.id),onRemove:()=>_(e.id),yourself:e.id===t},e.id))]})]})]}),i===`roles`&&(0,j.jsx)(B5,{}),i===`sso`&&(0,j.jsx)(H5,{})]})}function J5({invited:e,kind:t,onClose:n}){let[r,i]=(0,O.useState)(!1),a=t===`reset`?`A new password for ${e.member.name}`:`${e.member.name} is invited`;if(e.token===null)return(0,j.jsx)(H,{children:(0,j.jsx)(U,{title:a,meta:Z5(e,t),children:(0,j.jsx)(W,{size:`xs`,onClick:n,children:`Done`})})});let o=Q5(e.token);return(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:a,meta:`copy it now: the table keeps the fingerprint, and it is never shown again`,children:(0,j.jsxs)(`span`,{className:`team-link-moves`,children:[(0,j.jsx)(W,{size:`xs`,onClick:()=>{navigator.clipboard.writeText(o).then(()=>i(!0))},children:r?`Copied`:`Copy`}),(0,j.jsx)(W,{size:`xs`,onClick:n,children:`Done`})]})}),(0,j.jsx)(`pre`,{className:`ui-code`,children:o}),(0,j.jsx)(`div`,{className:`ui-card-foot`,children:t===`reset`?`One use · dies ${e.expires_at} · hand it to them: it opens the card where they choose a new password. Any older link of theirs no longer opens.`:`One use · dies ${e.expires_at} · it opens a card where they choose their password and take their first key.`})]})}function Y5({onInvite:e,onClose:t,onRoles:n}){let[r,i]=(0,O.useState)(``),[a,o]=(0,O.useState)(``),[s,c]=(0,O.useState)(`qa`),[l,u]=(0,O.useState)(``),[d,f]=(0,O.useState)(!1),[p,m]=(0,O.useState)(!1),h=async t=>{t.preventDefault(),m(!0);try{await e({email:r.trim(),name:a.trim(),role:s,agents:l.split(/[\s,]+/).filter(e=>e!==``),production:d})}finally{m(!1)}};return(0,j.jsxs)(`div`,{className:`team-invite`,children:[(0,j.jsxs)(`form`,{className:`ui-form`,onSubmit:e=>void h(e),children:[(0,j.jsx)(Bh,{label:`Email`,grow:!0,minWidth:180,children:(0,j.jsx)(G,{placeholder:`name@company.com`,type:`email`,value:r,onChange:e=>i(e.target.value),required:!0,autoFocus:!0})}),(0,j.jsx)(Bh,{label:`Name`,grow:!0,minWidth:150,children:(0,j.jsx)(G,{placeholder:`Full name`,value:a,onChange:e=>o(e.target.value),required:!0})}),(0,j.jsx)(Bh,{label:`Role`,minWidth:130,children:(0,j.jsx)(vC,{value:s,onValueChange:e=>c(e),children:HQ.map(e=>(0,j.jsx)(yC,{value:e,children:e},e))})}),(0,j.jsx)(Bh,{label:`Agents`,minWidth:150,children:(0,j.jsx)(G,{placeholder:`every agent`,value:l,onChange:e=>u(e.target.value)})}),(0,j.jsx)(Bh,{label:`Production`,minWidth:90,children:s===`admin`?(0,j.jsx)(`span`,{className:`ui-cell-faint`,children:`always`}):(0,j.jsx)(Uh,{on:d,label:`acts in production`,onChange:f})}),(0,j.jsx)(W,{kind:`primary`,size:`form`,type:`submit`,disabled:p,children:p?`Inviting…`:`Invite`})]}),(0,j.jsxs)(`div`,{className:`team-roles`,children:[`A role is a preset of what their keys open — `,(0,j.jsx)(Lh,{onClick:n,children:`see what each one does`}),(0,j.jsx)(`span`,{className:`team-invite-close`,children:(0,j.jsx)(Lh,{onClick:t,children:`Close`})})]})]})}function X5(e){return e instanceof na?e.message:String(e)}function Z5(e,t){return t===`invitation`&&e.member.status===`active`?`already a person on this box: seated, they sign in with the password they have`:`also somebody else's on this box, so the link is theirs alone — ${e.mailed?`it was posted to them`:`this box posts no mail, so they use the link their other org sent, or Forgot your password? where mail is set up`}`}function Q5(e){return`${window.location.origin}/invitations/${encodeURIComponent(e)}`}var $5=z({cursor:F(),org:P(),agent:P(),call:P(),type:P(),at:F(),minutes:F(),messages:F(),input_tokens:F(),output_tokens:F(),characters:F(),judge_calls:F(),cost_usd:F()}),e7=z({minutes:F(),messages:F(),input_tokens:F(),output_tokens:F(),characters:F(),judge_calls:F(),cost_usd:F(),calls:F()}),t7=z({rows:R($5),totals:e7.nullable(),next:F().nullable()});async function n7(e,t=0){return t7.parse(await A(e,`/v1/usage`,{after:t}))}function r7(e){let t=new Map;for(let n of e){let e=t.get(n.call)??{call:n.call,agent:n.agent,at:n.at,calls:1,minutes:0,messages:0,judge_calls:0,cost_usd:0};e.minutes+=n.minutes,e.messages+=n.messages,e.judge_calls+=n.judge_calls,e.cost_usd+=n.cost_usd,e.at=Math.min(e.at,n.at),t.set(n.call,e)}return[...t.values()].sort((e,t)=>t.at-e.at)}function i7(e,t){let n=new Map;for(let r of e){let e=t(r),i=n.get(e)??{name:e,calls:0,minutes:0,messages:0,judge_calls:0,cost_usd:0};i.calls+=1,i.minutes+=r.minutes,i.messages+=r.messages,i.judge_calls+=r.judge_calls,i.cost_usd+=r.cost_usd,n.set(e,i)}return[...n.values()]}function a7(e){return i7(e,e=>vE(e.at)).sort((e,t)=>t.name.localeCompare(e.name))}function o7(e){return i7(e,e=>e.agent).sort((e,t)=>t.cost_usd-e.cost_usd)}function s7(e){return i7(e,()=>``)[0]??{calls:0,minutes:0,messages:0,judge_calls:0,cost_usd:0}}var c7=[{tab:`days`,name:`By day`},{tab:`agents`,name:`By agent`},{tab:`calls`,name:`Call by call`}],l7=`minmax(0,1.2fr) 70px 80px 90px minmax(0,1fr) 90px`,u7=`130px 140px minmax(0,1fr) 70px 80px 90px`,d7=40;function f7(){let e=M(),t=AE(),n=Z3(X3()),[r,i]=Xi(),a=c7.some(e=>e.tab===r.get(`tab`))?r.get(`tab`):`days`,[o,s]=(0,O.useState)(null),[c,l]=(0,O.useState)(null);(0,O.useEffect)(()=>{let t=!1;return(async()=>{try{let n=[],r=0;for(let i=0;i<d7;i+=1){let i=await n7(e,r);if(t)return;if(n.push(...i.rows),s([...n]),i.next===null)break;r=i.next}}catch(e){t||l(e instanceof na?e.message:String(e))}})(),()=>{t=!0}},[e]);let u=r7(o??[]),d=s7(u),f=a7(u),p=f.find(e=>e.name===yE().today)?.cost_usd??0,m=t?.budget??null;return(0,j.jsxs)(kC,{tight:!0,children:[(0,j.jsx)(AC,{title:`Usage`,lede:`What this org spent: the providers' bill as the call log knows it, never a price of ours.`}),(0,j.jsx)(Ah,{children:c}),o!==null&&(0,j.jsxs)(jC,{min:150,children:[(0,j.jsx)(MC,{size:`small`,label:m===null?`Spent in all`:`Spent this month`,value:fE(m===null?d.cost_usd:m.spent_usd_month),of:m!==null&&m.limit_usd!==null?`of ${fE(m.limit_usd)}`:void 0,accent:!0}),n!==null&&(0,j.jsx)($3,{meter:n,size:`small`}),(0,j.jsx)(MC,{size:`small`,label:`Today`,value:fE(p)}),(0,j.jsx)(MC,{size:`small`,label:`Calls`,value:d.calls}),(0,j.jsx)(MC,{size:`small`,label:`Minutes`,value:d.minutes.toFixed(1)}),(0,j.jsx)(MC,{size:`small`,label:`Per call`,value:d.calls===0?`—`:fE(d.cost_usd/d.calls)}),(0,j.jsx)(MC,{size:`small`,label:`Per minute`,value:d.minutes===0?`—`:fE(d.cost_usd/d.minutes)})]}),(0,j.jsx)(GC,{label:`Usage`,tabs:c7,on:a,onPick:e=>i(e===`days`?{}:{tab:e})}),o!==null&&u.length===0&&(0,j.jsx)(H,{children:(0,j.jsx)(kh,{children:`Nothing metered yet: the first call to end writes the first row.`})}),u.length>0&&a!==`calls`&&(0,j.jsx)(p7,{label:a===`days`?`Day`:`Agent`,groups:a===`days`?f:o7(u)}),u.length>0&&a===`calls`&&(0,j.jsxs)(H,{children:[(0,j.jsx)(NC,{columns:u7,labels:[`Started`,`Agent`,`Call`,`Min>`,`Messages>`,`Cost>`]}),u.map(e=>(0,j.jsxs)(PC,{columns:u7,children:[(0,j.jsx)(`span`,{className:`ui-cell-faint`,children:hE(e.at)}),(0,j.jsx)(`span`,{className:`ui-cell-ink ui-clip`,children:e.agent}),(0,j.jsx)(Wi,{to:`/calls/${e.call}`,className:`usage-call ui-clip`,children:e.call}),(0,j.jsx)(`span`,{className:`ui-cell-ink usage-right`,children:e.minutes.toFixed(1)}),(0,j.jsx)(`span`,{className:`ui-cell-ink usage-right`,children:e.messages}),(0,j.jsx)(`span`,{className:`usage-cost`,children:fE(e.cost_usd)})]},e.call)),(0,j.jsx)(Oh,{children:(0,j.jsxs)(`span`,{children:[u.length,` calls`,d.judge_calls>0&&` · ${d.judge_calls} judge calls`,` · a call's judging is folded into its line`]})})]})]})}function p7({label:e,groups:t}){let n=Math.max(...t.map(e=>e.cost_usd),0);return(0,j.jsxs)(H,{children:[(0,j.jsx)(NC,{columns:l7,labels:[e,`Calls>`,`Min>`,`Per call>`,``,`Cost>`]}),t.map(e=>(0,j.jsxs)(PC,{columns:l7,children:[(0,j.jsx)(`span`,{className:`ui-cell-strong ui-clip`,children:e.name}),(0,j.jsx)(`span`,{className:`ui-cell-ink usage-right`,children:e.calls}),(0,j.jsx)(`span`,{className:`ui-cell-ink usage-right`,children:e.minutes.toFixed(1)}),(0,j.jsx)(`span`,{className:`ui-cell-faint usage-right`,children:fE(e.cost_usd/e.calls)}),(0,j.jsx)(`span`,{className:`usage-bar`,children:(0,j.jsx)(OC,{share:n===0?0:e.cost_usd/n})}),(0,j.jsx)(`span`,{className:`usage-cost`,children:fE(e.cost_usd)})]},e.name))]})}async function m7(e,t,n){if(n<=0)return null;let r=XT.parse(await A(e,`/v1/calls/${encodeURIComponent(t)}/events`,{after:n-1,types:GD,limit:1})).entries.find(e=>e.type===GD);return r===void 0?null:ND.parse(r.data)}var h7=20;function g7(e){let t=M(),n=(0,O.useRef)(new Map),[r,i]=(0,O.useState)(n.current),a=e.filter(e=>!tE(e)).slice(0,h7),o=a.map(e=>`${e.call}@${e.last_seq}`).join(` `);return(0,O.useEffect)(()=>{let e=!1,r=a.filter(e=>!n.current.has(e.call));return(async()=>{let a=await Promise.all(r.map(e=>_7(t,e)));if(!(e||a.length===0)){for(let e of a)n.current.set(e.line.call,e);i(new Map(n.current))}})(),()=>{e=!0}},[o,t]),a.map(e=>r.get(e.call)??v7(e))}async function _7(e,t){try{return{line:t,read:!0,score:await m7(e,t.call,t.last_seq),refused:null}}catch(e){return{line:t,read:!0,score:null,refused:String(e)}}}function v7(e){return{line:e,read:!1,score:null,refused:null}}var y7=z({held:I(),settled:I(),percent:F()}),b7=z({judge:P(),before:y7.nullable(),now:y7.nullable(),delta:F().nullable()}),x7=z({call:P(),judge:P(),seqs:R(I()),reason:P()}),S7=z({agent:P(),window:F(),baseline:F(),threshold:F(),drift:z({judges:R(b7),notJudged:z({now:I(),before:I()}),broke:R(x7),worst:F().nullable()})});async function C7(e,t,n,r){return S7.parse(await ON(e,t,`drift.read`,{agent:t,window:n,baseline:r}))}var w7=86400;function T7(e){let t=M(),[n,r]=(0,O.useState)(null);return(0,O.useEffect)(()=>{let n=!1;if(r(null),e!==``)return C7(t,e,7*w7,30*w7).then(e=>{n||r(e)},()=>void 0),()=>{n=!0}},[t,e]),n}var E7=640,D7=170,O7=38,k7=10,A7=138;function j7(e){return gE(Date.parse(`${e}T12:00:00Z`)/1e3)}function M7({series:e}){let[t,n]=(0,O.useState)(null),r=e.map(e=>e.judged===0?null:e.passed/e.judged),i=r.filter(e=>e!==null);if(i.length===0)return(0,j.jsx)(`p`,{className:`qly-quiet`,children:`No call was judged in these days.`});let a=Math.max(0,Math.floor(Math.min(...i)*10)/10-.1),o=602/Math.max(1,e.length-1),s=e=>O7+e*o,c=e=>148-(e-a)/(1-a)*A7,l=[],u=[];r.forEach((e,t)=>{if(e===null){u.length>0&&l.push(u.join(` `)),u=[];return}u.push(`${u.length===0?`M`:`L`}${s(t)} ${c(e)}`)}),u.length>0&&l.push(u.join(` `));let d=r.reduce((e,t,n)=>t===null?e:n,null),f=t===null?void 0:e[t],p=t===null?null:r[t]??null,m=[a,(a+1)/2,1];return(0,j.jsxs)(`div`,{className:`qly-chart`,children:[(0,j.jsxs)(`svg`,{viewBox:`0 0 ${E7} ${D7}`,role:`img`,"aria-label":`Share of judged calls that held, a day at a time`,onMouseLeave:()=>n(null),children:[m.map(e=>(0,j.jsxs)(`g`,{children:[(0,j.jsx)(`line`,{x1:O7,x2:E7,y1:c(e),y2:c(e),className:`qly-grid`}),(0,j.jsxs)(`text`,{x:30,y:c(e)+3.5,className:`qly-tick`,textAnchor:`end`,children:[Math.round(e*100),`%`]})]},e)),l.map(e=>(0,j.jsx)(`path`,{d:e,className:`qly-line`},e)),d!==null&&r[d]!==null&&(0,j.jsx)(`circle`,{cx:s(d),cy:c(r[d]??1),r:3.5,className:`qly-dot`}),t!==null&&(0,j.jsx)(`line`,{x1:s(t),x2:s(t),y1:k7,y2:148,className:`qly-cross`}),t!==null&&p!==null&&(0,j.jsx)(`circle`,{cx:s(t),cy:c(p),r:4.5,className:`qly-dot`}),e.map((t,r)=>(0,j.jsxs)(`g`,{onMouseEnter:()=>n(r),children:[(0,j.jsx)(`rect`,{x:s(r)-o/2,y:k7,width:o,height:A7,className:`qly-hit`}),(r===0||r===e.length-1||r===Math.floor((e.length-1)/2))&&(0,j.jsx)(`text`,{x:s(r),y:164,className:`qly-tick`,textAnchor:r===0?`start`:r===e.length-1?`end`:`middle`,children:j7(t.day)})]},t.day))]}),f!==void 0&&t!==null&&(0,j.jsxs)(`div`,{className:`qly-tip`,style:{left:`${s(t)/E7*100}%`},children:[(0,j.jsx)(`div`,{className:`qly-tip-head`,children:j7(f.day)}),(0,j.jsx)(`div`,{className:`qly-tip-row`,children:f.judged===0?`Nothing judged`:`${Math.round(f.passed/f.judged*100)}% held · ${f.passed} of ${f.judged}`})]})]})}var N7=(e,t)=>`${e===null?`/v1/org`:`/v1/agents/${encodeURIComponent(e)}`}/judges${t===void 0?``:`/${encodeURIComponent(t)}`}`;async function P7(e,t){return uZ.parse(await A(e,N7(t))).judges}async function F7(e,t,n,r){return uZ.parse(await sa(e,N7(t,n),r)).judges}async function I7(e,t,n){return uZ.parse(await ua(e,N7(t,n))).judges}var L7=/^[a-z0-9]+(?:-[a-z0-9]+)*$/;function R7({whose:e,onSaved:t,onClose:n}){let r=M(),[i,a]=(0,O.useState)(``),[o,s]=(0,O.useState)(``),[c,l]=(0,O.useState)(`every-call`),[u,d]=(0,O.useState)(!1),[f,p]=(0,O.useState)(null),m=L7.test(i),h=m&&o.trim()!==``&&!u,g=async()=>{d(!0),p(null);try{t(await F7(r,e,i,{question:o.trim(),runs_on:c}))}catch(e){p(e instanceof na?e.message:String(e))}finally{d(!1)}};return(0,j.jsxs)(`form`,{className:`qly-form`,onSubmit:e=>{e.preventDefault(),h&&g()},children:[(0,j.jsxs)(Bh,{label:`Name`,children:[(0,j.jsx)(G,{size:`sm`,placeholder:`offers-next-slot`,value:i,spellCheck:!1,onChange:e=>a(e.target.value.toLowerCase().replace(/\s+/g,`-`))}),(0,j.jsx)(`p`,{className:`qly-hint`,children:`Lower-case words joined by hyphens, as a verdict names it in call.score. The same name again replaces the judge.`}),i!==``&&!m&&(0,j.jsx)(`p`,{className:`qly-bad`,children:`Only a–z, 0–9 and single hyphens between words.`})]}),(0,j.jsxs)(Bh,{label:`The question`,children:[(0,j.jsx)(zh,{rows:3,placeholder:`The agent offered the next free slot before the caller asked twice.`,value:o,onChange:e=>s(e.target.value)}),(0,j.jsxs)(`p`,{className:`qly-hint`,children:[`One sentence the judge model answers held or broken about the whole call, with the tool calls between the turns in front of it. `,e===null?`Asked of every agent's calls: what any call of this business has to have done.`:`About ${e}'s job alone.`,` The panel already asks what every call is held to.`]})]}),(0,j.jsxs)(Bh,{label:`Runs on`,children:[(0,j.jsx)(Vh,{options:[{value:`every-call`,label:`every call`},{value:`simulations`,label:`simulations only`}],value:c,onChange:l}),(0,j.jsx)(`p`,{className:`qly-hint`,children:`Every call is one model call per call at hang-up, under the box's judging ceiling; simulations only costs nothing on real traffic.`})]}),(0,j.jsxs)(`div`,{className:`qly-form-foot`,children:[(0,j.jsx)(W,{size:`sm`,onClick:n,children:`Cancel`}),(0,j.jsx)(W,{size:`sm`,kind:`primary`,type:`submit`,disabled:!h,children:u?`Saving…`:`Save`}),f!==null&&(0,j.jsx)(`span`,{className:`qly-bad`,children:f})]})]})}var z7=[{name:`consent`,asks:`Every irreversible tool call ran after a confirm.granted for the same call and the same audience.`,by:`code`,on:`every call`},{name:`grounded`,asks:`Every concrete fact the agent stated appears in the evidence this call carried.`,by:`code, then a model`,on:`every call`},{name:`promises`,asks:`Every commitment the agent made on the business's behalf is recorded by a tool call.`,by:`code, then a model`,on:`every call`},{name:`persona`,asks:`The caller hangs up satisfied, by its own rule: what it wrote under accepts when and declines when.`,by:`a model`,on:`a simulated call whose caller wrote a rule`}];function B7(e){let t=new Map;for(let n of e)for(let e of n.judges){if(e.verdict!==`held`&&e.verdict!==`broken`)continue;let n=t.get(e.name)??{held:0,settled:0};t.set(e.name,{held:n.held+ +(e.verdict===`held`),settled:n.settled+1})}return t}function V7(e){let t=M(),[n,r]=(0,O.useState)(null),[i,a]=(0,O.useState)(null);return(0,O.useEffect)(()=>{let n=!1;return r(null),a(null),P7(t,e).then(e=>{n||r(e)},e=>{n||a(e instanceof Error?e.message:String(e))}),()=>{n=!0}},[t,e]),{judges:n,error:i,setJudges:r}}var H7={"every-call":`every call`,simulations:`simulations only`};function U7({agent:e,rates:t,read:n,drifted:r}){let i=V7(null),a=V7(e===``?null:e),[o,s]=(0,O.useState)(!1),c=e===``?null:e,l=r===null?null:new Map(r.drift.judges.map(e=>[e.judge,e])),u=l===null?`150px minmax(0,2fr) 140px 120px 96px 56px`:`150px minmax(0,2fr) 140px 96px 74px 74px 64px 56px`,d=[{title:`The panel · the runtime's`,rows:z7.map(e=>({name:e.name,asks:e.asks,by:e.by,on:e.on,drops:void 0}))},{title:e===``?`The org's · asked of every agent`:`The org's · written with every agent in view`,rows:(i.judges??[]).map(t=>({name:t.name,asks:t.question,by:`a model`,on:H7[t.runs_on],drops:e===``?null:void 0}))},...e===``?[]:[{title:`${e}'s own`,rows:(a.judges??[]).map(t=>({name:t.name,asks:t.question,by:`a model`,on:H7[t.runs_on],drops:e}))}]];return(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Judges`,meta:l===null?`held over the newest ${n} judged calls`:`held over the newest ${n} judged calls · drift: the last 7 days against the last 30`,action:(0,j.jsx)(W,{size:`sm`,onClick:()=>s(!0),disabled:o,children:e===``?`New judge for every agent`:`New judge for ${e}`})}),o&&(0,j.jsx)(R7,{whose:c,onSaved:t=>{(e===``?i:a).setJudges(t),s(!1)},onClose:()=>s(!1)}),(0,j.jsx)(Ah,{children:i.error??a.error}),(0,j.jsx)(NC,{columns:u,labels:l===null?[`Judge`,`Asks`,`Answered by`,`Runs on`,`Held>`,``]:[`Judge`,`Asks`,`Answered by`,`Runs on`,`7 days>`,`30 days>`,`Drift>`,``]}),d.map(n=>(0,j.jsx)(W7,{title:n.title,rows:n.rows,columns:u,rates:t,drift:l,threshold:r?.threshold??null,onDropped:t=>(e===``?i:a).setJudges(t)},n.title)),e!==``&&a.judges?.length===0&&!o&&(0,j.jsxs)(kh,{children:[`No judge of `,e,`'s own yet. The first one is one sentence: what a good call of this agent has to have done.`]})]})}function W7({title:e,rows:t,columns:n,rates:r,drift:i,threshold:a,onDropped:o}){let s=M(),[c,l]=(0,O.useState)(null);if(t.length===0)return null;let u=async(e,t)=>{l(null);try{o(await I7(s,e,t))}catch(e){l(e instanceof na?e.message:String(e))}};return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`div`,{className:`qly-group`,children:e}),(0,j.jsx)(Ah,{children:c}),t.map(e=>{let t=i?.get(e.name);return(0,j.jsxs)(PC,{columns:n,children:[(0,j.jsx)(`span`,{className:`qly-name`,children:e.name}),(0,j.jsx)(`span`,{className:`qly-asks`,children:e.asks}),(0,j.jsx)(`span`,{className:`ui-cell-faint`,children:e.by}),(0,j.jsx)(`span`,{className:`ui-cell-faint`,children:e.on}),i===null?(0,j.jsx)(G7,{rate:r.get(e.name)}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(K7,{standing:t?.now??null}),(0,j.jsx)(K7,{standing:t?.before??null,faint:!0}),(0,j.jsx)(q7,{delta:t?.delta??null,threshold:a})]}),(0,j.jsx)(`span`,{className:`qly-drop`,children:e.drops!==void 0&&(0,j.jsx)(Lh,{danger:!0,onClick:()=>void u(e.drops??null,e.name),children:`Drop`})})]},e.name)})]})}function G7({rate:e}){return e===void 0||e.settled===0?(0,j.jsx)(`span`,{className:`qly-rate ui-cell-faint`,children:`—`}):(0,j.jsxs)(`span`,{className:`qly-rate`,children:[(0,j.jsx)(`span`,{className:e.held===e.settled?`qly-pct`:`qly-pct qly-pct-bad`,children:SE(e.held/e.settled)}),(0,j.jsxs)(`span`,{className:`ui-cell-faint`,children:[e.held,`/`,e.settled]})]})}function K7({standing:e,faint:t=!1}){return e===null?(0,j.jsx)(`span`,{className:`qly-rate ui-cell-faint`,children:`—`}):(0,j.jsxs)(`span`,{className:`qly-rate`,children:[(0,j.jsxs)(`span`,{className:t?`qly-pct qly-pct-faint`:`qly-pct`,children:[e.percent.toFixed(0),`%`]}),(0,j.jsxs)(`span`,{className:`ui-cell-faint`,children:[e.held,`/`,e.settled]})]})}function q7({delta:e,threshold:t}){if(e===null)return(0,j.jsx)(`span`,{className:`qly-rate ui-cell-faint`,children:`—`});let n=t!==null&&e<-Math.abs(t);return(0,j.jsx)(`span`,{className:n?`qly-rate qly-drift-bad`:`qly-rate ui-cell-faint`,children:`${e>0?`+`:e<0?`−`:`±`}${Math.abs(e).toFixed(0)} pts`})}var J7=7,Y7=30,X7=8,Z7=`minmax(0,1.4fr) 90px minmax(0,1fr)`;function Q7(){let e=xr().agent??``,{lines:t}=uO(),n=e===``?void 0:e,r=AE({agent:n,days:J7}),i=AE({agent:n,days:Y7}),a=(0,O.useMemo)(()=>e===``?t:t.filter(t=>t.agent===e),[t,e]),o=g7(a).flatMap(e=>e.score===null?[]:[e.score]),s=B7(o),c=T7(e),l=a.filter(e=>e.score?.passed===!1).slice(0,X7),u=e===``?`/calls`:`/a/${encodeURIComponent(e)}/calls`,d=r?.judged??0;return(0,j.jsxs)(kC,{children:[(0,j.jsx)(AC,{title:`Quality`,lede:e===``?`How every agent's real calls are going, judged at hang-up.`:`How ${e}'s real calls are going, judged at hang-up.`}),(0,j.jsxs)(jC,{min:170,children:[(0,j.jsx)(MC,{size:`big`,label:`Calls judged`,value:r===null?`—`:d,delta:`the last 7 days`,tone:`flat`}),(0,j.jsx)(MC,{size:`big`,label:`Held`,value:r===null||d===0?`—`:SE(r.passed/d),delta:d===0?`nothing judged`:`${r?.passed??0} of ${d}`,tone:`flat`}),(0,j.jsx)(MC,{size:`big`,label:`Did not hold`,value:r===null?`—`:d-(r.passed??0),delta:(0,j.jsx)(Wi,{to:`${u}?status=broke`,children:`See them in Calls`}),tone:`flat`})]}),(0,j.jsxs)(`div`,{className:`qly-split`,children:[(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`Held, a day at a time`,meta:`share of judged calls where every judge held · the last 30 days`}),i===null?(0,j.jsx)(`p`,{className:`qly-quiet`,children:`Counting the verdicts…`}):(0,j.jsx)(M7,{series:i.series})]}),(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`What broke`,meta:`the judge's own reason`}),l.length===0?(0,j.jsx)(`p`,{className:`qly-quiet`,children:`Every judged call the page follows held.`}):(0,j.jsx)(`div`,{className:`qly-broke`,children:l.map(t=>(0,j.jsxs)(Wi,{to:`${u}/${t.call}`,className:`qly-broke-one`,children:[(0,j.jsx)(`span`,{className:`qly-broke-mark`,"aria-hidden":!0}),(0,j.jsxs)(`span`,{className:`qly-broke-words`,children:[(0,j.jsxs)(`span`,{className:`qly-broke-who`,children:[sE(t,wE),e===``&&(0,j.jsxs)(`span`,{className:`qly-broke-agent`,children:[` · `,t.agent]})]}),(0,j.jsx)(`span`,{className:`qly-broke-why`,children:t.score?.reason??`A judge answered broken.`})]}),(0,j.jsxs)(`span`,{className:`qly-broke-when`,children:[t.score?.held,`/`,t.score?.judged,` · `,_E(t.started_at)]})]},t.call))})]})]}),e===``&&(r?.agents.length??0)>0&&(0,j.jsxs)(H,{children:[(0,j.jsx)(U,{title:`By agent`,meta:`the last 7 days · a row puts that agent in view`}),(0,j.jsx)(NC,{columns:Z7,labels:[`Agent`,`Calls>`,`Held by the judges`]}),(r?.agents??[]).map(e=>(0,j.jsxs)(PC,{columns:Z7,to:`/a/${encodeURIComponent(e.slug)}/quality`,children:[(0,j.jsx)(`span`,{className:`ui-cell-strong ui-clip`,children:e.slug}),(0,j.jsx)(`span`,{className:`ui-cell-ink ui-cell-right qly-num`,children:e.calls}),(0,j.jsx)(`span`,{className:`qly-held`,children:e.score===null?(0,j.jsx)(`span`,{className:`ui-cell-faint`,children:`nothing judged`}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(OC,{share:e.score}),(0,j.jsx)(`span`,{className:`ui-cell-ink qly-num`,children:SE(e.score)})]})})]},e.slug))]}),(0,j.jsx)(U7,{agent:e,rates:s,read:o.length,drifted:c})]})}var $7=z({title:P().nullable(),tagline:P().nullable(),greeting:P().nullable(),accent:P().nullable(),autostart:L(),theme:V([`auto`,`light`,`dark`]).nullish()});async function e9(e,t){try{return $7.parse(await A(e,`/v1/agents/${encodeURIComponent(t)}/widget`))}catch(e){if(e instanceof na&&e.status===404)return null;throw e}}async function t9(e,t,n){return $7.parse(await sa(e,`/v1/agents/${encodeURIComponent(t)}/widget`,n))}function n9(){return`${ih()}/widget/pinecall-widget.js`}var r9=null;function i9(){return r9??=yi(()=>import(n9()).then(()=>void 0,e=>{throw r9=null,Error(`the widget did not load from ${n9()}: ${e instanceof Error?e.message:String(e)}`)}),[]),r9}function a9(e,t,n,r,i=!1){let a=document.createElement(`pinecall-widget`);a.setAttribute(`agent`,n);for(let[e,t]of Object.entries(r))a.setAttribute(e,t);return a.tokenProvider=e=>la(t,`/v1/tokens`,{agent:n,scope:e,ttl_s:60,metadata:{page:`console preview`,scope:e}}),i&&(a.codeProvider=()=>la(t,`/v1/codes`,{agent:n})),e.replaceChildren(a),a}var o9=[`#5b3df5`,`#101014`,`#0f766e`,`#be185d`],s9=[{value:`auto`,label:`Auto`},{value:`light`,label:`Light`},{value:`dark`,label:`Dark`}];function c9(){let e=M(),t=xr().agent??``,[n,r]=(0,O.useState)(`Assistant`),[i,a]=(0,O.useState)(``),[o,s]=(0,O.useState)(``),[c,l]=(0,O.useState)(``),[u,d]=(0,O.useState)(``),[f,p]=(0,O.useState)(!1),[m,h]=(0,O.useState)(o9[0]),[g,_]=(0,O.useState)(`auto`),[v,y]=(0,O.useState)(null),[b,x]=(0,O.useState)(!1),[S,C]=(0,O.useState)(null),[w,T]=(0,O.useState)(!1),[ee,te]=(0,O.useState)(!1),E={greeting:S!==null,autostart:S!==null,theme:S?.theme!==void 0},ne=rw(),D=S!==null&&(ne===null||ne.includes(`pipeline`)),re=(0,O.useRef)(null);(0,O.useEffect)(()=>{let n=!1;return e9(e,t).then(e=>{n||e===null||(C(e),e.title!==null&&r(e.title),e.tagline!==null&&s(e.tagline),e.greeting!==null&&d(e.greeting),e.accent!==null&&h(e.accent),p(e.autostart),_(e.theme??`auto`))},()=>void 0),()=>{n=!0}},[e,t]),(0,O.useEffect)(()=>{let n=!1;return NO(e).then(e=>{let r=e.find(e=>e.route.agent===t&&e.route.number!==null)?.route.number;!n&&r!=null&&l(e=>e===``?aE(r):e)},()=>void 0),()=>{n=!0}},[e,t]);let ie={title:n.trim()===``?null:n.trim(),tagline:o.trim()===``?null:o.trim(),greeting:u.trim()===``?null:u.trim(),accent:m,autostart:f,...E.theme?{theme:g}:{}},ae=S!==null&&((S.title??`Assistant`)!==n.trim()||(S.tagline??``)!==o.trim()||(S.greeting??``)!==u.trim()||(S.accent??o9[0])!==m||S.autostart!==f||E.theme&&(S.theme??`auto`)!==g),oe=async()=>{T(!0),y(null);try{C(await t9(e,t,ie)),te(!0),window.setTimeout(()=>te(!1),1500)}catch(e){y(e instanceof na?e.message:String(e))}finally{T(!1)}};(0,O.useEffect)(()=>{let r=!1;return i9().then(()=>{if(r||re.current===null)return;let a={name:n,position:`inline`};i&&(a.company=i),o&&(a.tagline=o),u&&(a.greeting=u),g!==`auto`&&(a.theme=g),a9(re.current,e,t,a,c!==``).style.setProperty(`--pc-accent`,m),y(null)},e=>{r||y(e instanceof Error?e.message:String(e))}),()=>{r=!0}},[e,t,n,i,o,c,u,m,g]);let k=[`agent="${t}"`,`name="${n}"`,i&&`company="${i}"`,o&&`tagline="${o}"`,E.greeting&&u&&`greeting="${u}"`,E.autostart&&f&&`autostart`,E.theme&&g!==`auto`&&`theme="${g}"`,`token-url="/pinecall/token"`,`log-url="/pinecall/log"`,c&&`code-url="/pinecall/code"`].filter(Boolean),se=m===o9[0]?``:`\n<style>pinecall-widget { --pc-accent: ${m}; }</style>`,ce=`<script type="module" src="${n9()}"><\/script>\n<pinecall-widget ${k.join(`
164
+ `)}></pinecall-widget>${se}`,le=new URLSearchParams({name:n,company:i,tagline:o,phone:c,accent:m,...E.greeting&&u?{greeting:u}:{},...E.theme&&g!==`auto`?{theme:g}:{}});return(0,j.jsxs)(kC,{width:900,tight:!0,children:[(0,j.jsx)(AC,{title:`Widget`,ledeWidth:620,lede:`The web door for ${t} — one script tag on your site, and the call lands in the same log as the phone.`}),(0,j.jsxs)(`div`,{className:`ui-card`,children:[(0,j.jsxs)(`div`,{className:`ui-card-head`,children:[(0,j.jsx)(`span`,{className:`ui-card-title`,children:`Embed`}),(0,j.jsx)(W,{size:`xs`,className:`widget-copy`,onClick:()=>{navigator.clipboard.writeText(ce).then(()=>{x(!0),window.setTimeout(()=>x(!1),1500)})},children:b?`Copied`:`Copy`})]}),(0,j.jsx)(`pre`,{className:`ui-code`,children:ce}),(0,j.jsxs)(`div`,{className:`widget-endpoints`,children:[(0,j.jsx)(`span`,{className:`ui-fixed`,children:`token-url`}),` and `,(0,j.jsx)(`span`,{className:`ui-fixed`,children:`log-url`}),` are your site's: the first mints a visit token at `,(0,j.jsx)(`span`,{className:`ui-fixed`,children:`/v1/tokens`}),` with a key holding `,(0,j.jsx)(`span`,{className:`ui-fixed`,children:`talk`}),`, the second relays the call's log with a key holding `,(0,j.jsx)(`span`,{className:`ui-fixed`,children:`calls`}),`.`,c&&(0,j.jsxs)(j.Fragment,{children:[` `,(0,j.jsx)(`span`,{className:`ui-fixed`,children:`code-url`}),` asks `,(0,j.jsx)(`span`,{className:`ui-fixed`,children:`/v1/codes`}),` with the same`,` `,(0,j.jsx)(`span`,{className:`ui-fixed`,children:`talk`}),` key: the visitor calls the number and keys four digits, and the panel follows that very call.`]}),` `,`Ready-made PHP and Laravel endpoints:`,` `,(0,j.jsx)(`a`,{href:`https://github.com/pinecall/widget`,target:`_blank`,rel:`noreferrer`,children:`github.com/pinecall/widget`}),`.`]})]}),(0,j.jsxs)(`div`,{className:`widget-split`,children:[(0,j.jsxs)(`div`,{className:`ui-card`,children:[(0,j.jsxs)(`div`,{className:`ui-card-head`,children:[(0,j.jsx)(`span`,{className:`ui-card-title`,children:`Appearance`}),D&&(0,j.jsx)(W,{kind:ae?`primary`:`secondary`,size:`xs`,className:`widget-copy`,disabled:w||!ae,onClick:()=>void oe(),children:w?`Saving…`:ee?`Saved`:`Save`})]}),(0,j.jsxs)(`div`,{className:`widget-fields`,children:[(0,j.jsx)(Bh,{label:`Name`,children:(0,j.jsx)(G,{value:n,onChange:e=>r(e.target.value)})}),(0,j.jsx)(Bh,{label:`Tagline`,children:(0,j.jsx)(G,{value:o,placeholder:`the line under the name`,onChange:e=>s(e.target.value)})}),E.greeting&&(0,j.jsx)(Bh,{label:`Greeting`,children:(0,j.jsx)(G,{value:u,placeholder:`what the widget says before the call starts`,onChange:e=>d(e.target.value)})}),(0,j.jsxs)(`div`,{className:`widget-pair`,children:[(0,j.jsx)(Bh,{label:`Company`,children:(0,j.jsx)(G,{value:i,placeholder:`whose agent it is`,onChange:e=>a(e.target.value)})}),(0,j.jsx)(Bh,{label:`Phone`,children:(0,j.jsx)(G,{value:c,placeholder:`the number it answers, if it has one`,onChange:e=>l(e.target.value)})})]}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`div`,{className:`widget-accent-label`,children:`Accent`}),(0,j.jsx)(`div`,{className:`widget-accents`,role:`group`,"aria-label":`accent`,children:(o9.includes(m)?o9:[...o9,m]).map(e=>(0,j.jsx)(`button`,{type:`button`,className:`widget-accent`,style:{background:e,boxShadow:e===m?`0 0 0 2px var(--ground),0 0 0 4px ${e}`:void 0},onClick:()=>h(e),"aria-label":e,"aria-pressed":e===m},e))})]}),E.theme&&(0,j.jsx)(Bh,{label:`Theme`,children:(0,j.jsx)(Vh,{options:s9,value:g,onChange:_})}),E.autostart&&(0,j.jsxs)(`div`,{className:`widget-toggle`,children:[(0,j.jsx)(`span`,{className:`widget-toggle-label`,children:`Open with the microphone ready`}),(0,j.jsx)(Uh,{on:f,onChange:p,label:`Open with the microphone ready`})]})]})]}),(0,j.jsxs)(`div`,{className:`widget-preview`,children:[(0,j.jsx)(`div`,{className:`widget-preview-label`,children:`Preview`}),(0,j.jsx)(`div`,{className:`widget-stage`,ref:re}),(0,j.jsx)(Ah,{children:v}),(0,j.jsx)(Wi,{className:`widget-open`,to:`/a/${t}/widget/preview?${le.toString()}`,target:`_blank`,children:`Open on a blank page ↗`})]})]})]})}function l9(){let e=M(),t=xr().agent??``,[n]=Xi(),[r,i]=(0,O.useState)(null),a=(0,O.useRef)(null);return(0,O.useEffect)(()=>{let r=!1;return i9().then(()=>{if(r||a.current===null)return;let i={};for(let e of[`name`,`company`,`tagline`,`phone`,`greeting`,`theme`]){let t=n.get(e);t&&(i[e]=t)}let o=a9(a.current,e,t,i),s=n.get(`accent`);s&&o.style.setProperty(`--pc-accent`,s)},e=>{r||i(e instanceof Error?e.message:String(e))}),()=>{r=!0}},[e,t,n]),(0,j.jsxs)(`div`,{className:`widget-blank`,children:[(0,j.jsx)(`div`,{ref:a}),(0,j.jsxs)(`span`,{className:`widget-blank-mark`,children:[`pinecall · `,t,` · preview`]}),r!==null&&(0,j.jsx)(`p`,{className:`widget-blank-refused`,children:r})]})}function u9({agent:e}){let t=rw(),{pathname:n}=hr(),r=e===``?[...ch,...lh]:uh,i=_h(n);if(i===void 0)return null;let a=gh(r,i),o=mh(r,a).filter(e=>t===null||fO(t,e.key));if(o.length<2)return null;let s=e===``?``:`/a/${encodeURIComponent(e)}`;return(0,j.jsx)(`nav`,{className:`tabs`,"aria-label":`${a.name}'s screens`,children:o.map(e=>(0,j.jsx)(Gi,{to:`${s}/${e.path}`,end:e.path===``,className:({isActive:t})=>t||i.key===e.key?`tabs-tab tabs-tab-on`:`tabs-tab`,children:hh(e)},e.key))})}function d9(){let e=xr().agent??``,t=rw(),{pathname:n}=hr(),r=e===``?ch:uh,i=_h(n);if(i===void 0||t===null)return null;let a=mh(r,i).find(e=>fO(t,e.key));return a===void 0?(0,j.jsx)(Yr,{to:`/`,replace:!0}):(0,j.jsx)(Yr,{to:`${e===``?``:`/a/${encodeURIComponent(e)}`}/${a.path}`,replace:!0})}function f9(){let e=nw(),{moveTo:t}=ow(),{pathname:n,search:r}=hr(),i=_r(),a=new URLSearchParams(r).get(`org`);return(0,O.useEffect)(()=>{a!==null&&e!==null&&(a===e.org?i(n,{replace:!0}):t(a,n).catch(()=>i(n,{replace:!0})))},[a,e,n,t,i]),null}var p9=/^call_[\w+-]{6,}$/,m9=40;function h9({agent:e,onClose:t}){let[n,r]=(0,O.useState)(``),[i,a]=(0,O.useState)(0),{agents:o,lines:s,operator:c}=uO(),l=rw(),u=_r(),d=(0,O.useRef)(null);(0,O.useEffect)(()=>d.current?.focus(),[]);let f=(0,O.useMemo)(()=>{let t=e=>l===null||fO(l,e),r=n.trim().toLowerCase(),i=[];if(p9.test(n.trim())){let e=s.find(e=>e.call===n.trim());i.push({group:`Open`,label:n.trim(),sub:e?.agent??`by its id`,to:`/calls/${n.trim()}`})}for(let e of dh(ch).filter(e=>t(e.key)))i.push({group:`Screens`,label:e.name,sub:``,to:`/${e.path}`});for(let e of dh(lh,nh,c===!0))i.push({group:`Box`,label:e.name,sub:``,to:`/${e.path}`});for(let e of o)i.push({group:`Agents`,label:e.slug,sub:e.channels.join(` · `),to:`/a/${e.slug}/overview`});let a=e===``?o[0]?.slug:e;if(a!==void 0)for(let e of dh(uh).filter(e=>t(e.key)))i.push({group:`${a}`,label:e.name,sub:a,to:`/a/${a}/${e.path}`});for(let e of s){let t=e.caller?.name??e.from??``;i.push({group:`Calls`,label:e.call,sub:[e.agent,e.channel,t,e.outcome].filter(Boolean).join(` · `),to:`/calls/${e.call}`})}return r===``?i.filter(e=>e.group!==`Calls`).slice(0,m9):i.filter(e=>`${e.label} ${e.sub}`.toLowerCase().includes(r)).slice(0,m9)},[n,o,s,e,l,c]);(0,O.useEffect)(()=>a(0),[n]);let p=e=>{e!==void 0&&(t(),u(e.to))},m=e=>{e.key===`Escape`&&t(),e.key===`ArrowDown`&&(e.preventDefault(),a(e=>Math.min(f.length-1,e+1))),e.key===`ArrowUp`&&(e.preventDefault(),a(e=>Math.max(0,e-1))),e.key===`Enter`&&p(f[i])},h=``;return(0,j.jsx)(`div`,{className:`palette-veil`,onMouseDown:t,children:(0,j.jsxs)(`div`,{className:`palette`,role:`dialog`,"aria-label":`Search`,onMouseDown:e=>e.stopPropagation(),children:[(0,j.jsxs)(`div`,{className:`palette-input-row`,children:[(0,j.jsx)(Kh,{name:`search`,size:16}),(0,j.jsx)(`input`,{ref:d,className:`palette-input`,placeholder:`Search a screen, an agent, a call id, a number or an outcome`,value:n,onChange:e=>r(e.target.value),onKeyDown:m})]}),(0,j.jsxs)(`div`,{className:`palette-list`,children:[f.length===0&&(0,j.jsx)(`div`,{className:`palette-none`,children:`Nothing here matches — the conversations searched are the ones the org's list holds.`}),f.map((e,t)=>{let n=e.group===h?null:e.group;return h=e.group,(0,j.jsxs)(`div`,{children:[n!==null&&(0,j.jsx)(`div`,{className:`palette-group`,children:n}),(0,j.jsxs)(`button`,{type:`button`,className:t===i?`palette-item palette-item-on`:`palette-item`,onMouseEnter:()=>a(t),onClick:()=>p(e),children:[(0,j.jsx)(`span`,{className:`ui-clip`,children:e.label}),e.sub!==``&&(0,j.jsx)(`span`,{className:`palette-item-sub`,children:e.sub})]})]},`${e.group}:${e.to}`)})]})]})})}var g9=3,_9=5e3;function v9(){let{live:e,lines:t}=uO(),n=_r(),r=hr().pathname,i=(0,O.useRef)(null),a=(0,O.useRef)(new Set),[o,s]=(0,O.useState)([]),c=C9(o.length>0);(0,O.useEffect)(()=>{if(i.current===null){if(t.length===0&&e.length===0)return;i.current=new Set(e.map(e=>e.call));return}let n=i.current,r=e.filter(e=>!n.has(e.call)&&!d5(e.call));e.forEach(e=>n.add(e.call)),r.forEach(e=>n.add(e.call));let o=e.filter(e=>rE(e)&&!a.current.has(e.call));o.forEach(e=>a.current.add(e.call)),e.filter(e=>!rE(e)).forEach(e=>a.current.delete(e.call)),s(e=>{let n=e.map(e=>{let n=t.find(t=>t.call===e.call);return n===void 0?e:{...e,line:n,ended:!n.live}}).filter(e=>!e.asked||e.ended||rE(e.line)),i=[...o.map(e=>({call:e.call,line:e,ended:!1,asked:!0})),...r.map(e=>({call:e.call,line:e,ended:!1,asked:!1}))],a=n.filter(e=>!i.some(t=>t.call===e.call&&t.asked===e.asked));return[...i,...a].slice(0,g9)})},[e,t]),(0,O.useEffect)(()=>{if(!o.some(e=>e.ended))return;let e=window.setTimeout(()=>s(e=>e.filter(e=>!e.ended)),_9);return()=>window.clearTimeout(e)},[o]);let l=e=>s(t=>t.filter(t=>t.call!==e)),u=o.filter(e=>r!==`/calls/${e.call}`);return u.length===0?null:(0,j.jsx)(`div`,{className:`ring-stack`,role:`region`,"aria-label":`Calls coming in`,"aria-live":`polite`,children:u.map(e=>(0,j.jsxs)(`div`,{className:y9(e),children:[(0,j.jsxs)(`button`,{type:`button`,className:`ring-body`,onClick:()=>{l(e.call),n(`/calls/${e.call}`)},children:[(0,j.jsx)(`span`,{className:e.ended?`ring-icon ring-icon-ended`:e.asked?`ring-icon ring-icon-asked`:`ring-icon`,"aria-hidden":!0,children:e.asked&&!e.ended?(0,j.jsx)(x9,{}):(0,j.jsx)(S9,{})}),(0,j.jsxs)(`span`,{className:`ring-words`,children:[(0,j.jsxs)(`span`,{className:`ring-top`,children:[(0,j.jsx)(`span`,{className:`ring-kicker`,children:b9(e)}),!e.ended&&(0,j.jsx)(`span`,{className:`ring-watch`,children:e.asked?`Take the line →`:`Watch live →`})]}),(0,j.jsx)(`span`,{className:`ring-who`,children:sE(e.line,wE)}),(0,j.jsxs)(`span`,{className:`ring-sub`,children:[e.asked&&e.line.attention!==null&&e.line.attention!==void 0&&`${e.line.attention.reason} · `,e.line.agent,e.line.channel!==null&&` · ${e.line.channel}`,e.line.direction===`outbound`&&` · outbound`,!e.ended&&e.line.started_at!==null&&` · ${iE(e.line.started_at,c)}`]})]})]}),(0,j.jsx)(`button`,{type:`button`,className:`ring-close`,"aria-label":`Dismiss`,onClick:()=>l(e.call),children:`×`})]},`${e.call}${e.asked?`-asked`:``}`))})}function y9(e){return e.ended?`ring ring-ended`:e.asked?`ring ring-asked`:`ring`}function b9(e){return e.ended?`Call ended`:e.asked?`Wants a person`:e.line.direction===`outbound`?`Calling out`:e.line.channel===`web`?`New conversation`:e.line.channel===`whatsapp`?`New WhatsApp chat`:e.line.status===`active`?`New call · answered`:`New call ringing`}function x9(){return(0,j.jsx)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,j.jsx)(`path`,{d:`M12 2a2 2 0 0 1 2 2v7M8 13V6a2 2 0 1 1 4 0M16 13V7a2 2 0 1 1 4 0v7a7 7 0 0 1-7 7h-1a7 7 0 0 1-7-7v-2a2 2 0 1 1 4 0`})})}function S9(){return(0,j.jsx)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,j.jsx)(`path`,{d:`M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.5c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z`})})}function C9(e){let[t,n]=(0,O.useState)(()=>Date.now()/1e3);return(0,O.useEffect)(()=>{if(!e)return;let t=window.setInterval(()=>n(Date.now()/1e3),1e3);return()=>window.clearInterval(t)},[e]),t}var w9=new Set([`calls`,`quality`]);function T9(e,t){let n=_h(e),r=n!==void 0&&w9.has(n.key)?n.path:null;return t===``?r===null?`/`:`/${r}`:`/a/${encodeURIComponent(t)}/${r??uh[0]?.path??`overview`}`}function E9({agent:e}){let t=nw(),n=pT(t),{world:r,corner:i,lookInto:a}=ow(),{held:o,live:s}=uO(),[c,l]=(0,O.useState)(!1),[u,d]=(0,O.useState)(``),f=(0,O.useRef)(null),p=_r(),{pathname:m}=hr();(0,O.useEffect)(()=>l(!1),[m]),(0,O.useEffect)(()=>{if(!c)return;let e=e=>{f.current!==null&&!f.current.contains(e.target)&&l(!1)},t=e=>{e.key===`Escape`&&l(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[c]);let h=r===`production`,g=!h&&t?.scopes.includes(`team`)===!0,_=e=>e.holder?.holder??null,v=e=>h?_(e)===null:_(e)!==null&&(_(e)===n||g),y=t=>t.slug===e&&(h?_(t)===null:_(t)===(i??n)),b=e=>{let t=_(e);return t===null?h?`deployed`:`shared`:t===n?`your copy`:`${e.holder?.name??t}'s copy`},x=u.trim().toLowerCase(),S=[...o].filter(e=>x===``||e.slug.toLowerCase().includes(x)).sort((e,t)=>e.slug.localeCompare(t.slug)||Number(lT(e,n))-Number(lT(t,n))),C=i===null?void 0:o.find(e=>_(e)===i),w=e=>s.filter(t=>t.agent===e).length,T=e=>{if(l(!1),e===null){i!==null&&a(null),p(T9(m,``));return}let t=_(e);h||a(t===n?null:t),p(T9(m,e.slug))};return(0,j.jsxs)(`div`,{ref:f,className:`view`,children:[(0,j.jsxs)(`button`,{type:`button`,className:c?`view-trigger view-trigger-open`:`view-trigger`,onClick:()=>l(!c),"aria-expanded":c,"aria-haspopup":`listbox`,children:[e===``?(0,j.jsx)(`span`,{className:`view-all`,"aria-hidden":!0,children:(0,j.jsx)(Kh,{name:`bot`,size:15})}):(0,j.jsx)(DC,{size:26,name:e,letters:e.slice(0,1).toUpperCase()}),(0,j.jsxs)(`span`,{className:`view-words`,children:[(0,j.jsx)(`span`,{className:`view-label`,children:`Viewing`}),(0,j.jsx)(`span`,{className:`view-name`,children:e===``?`All agents`:e})]}),(0,j.jsx)(`span`,{className:`view-caret`,children:(0,j.jsx)(Kh,{name:`chevrons`,size:14})})]}),c&&(0,j.jsxs)(`div`,{className:`view-menu`,role:`listbox`,"aria-label":`whose calls are on screen`,children:[o.length>6&&(0,j.jsx)(`input`,{className:`view-find`,autoFocus:!0,placeholder:`Find an agent`,value:u,onChange:e=>d(e.target.value)}),(0,j.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":e===``,className:e===``?`view-row view-row-on`:`view-row`,onClick:()=>T(null),children:[(0,j.jsx)(`span`,{className:`view-all`,"aria-hidden":!0,children:(0,j.jsx)(Kh,{name:`bot`,size:15})}),(0,j.jsxs)(`span`,{className:`view-words`,children:[(0,j.jsx)(`span`,{className:`view-row-name`,children:`All agents`}),(0,j.jsxs)(`span`,{className:`view-row-sub`,children:[t===null?`the org`:QC(t),` · `,r]})]})]}),S.length>0&&(0,j.jsx)(`div`,{className:`view-rule`}),S.map(e=>{let t=v(e),n=w(e.slug);return(0,j.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":y(e),className:y(e)?`view-row view-row-on`:`view-row`,disabled:!t,title:t?void 0:`their copy: it answers them, and they open it from their own console`,onClick:()=>T(e),children:[(0,j.jsx)(DC,{size:26,name:e.slug,letters:e.slug.slice(0,1).toUpperCase()}),(0,j.jsxs)(`span`,{className:`view-words`,children:[(0,j.jsx)(`span`,{className:`view-row-name`,children:e.slug}),(0,j.jsxs)(`span`,{className:`view-row-sub`,children:[b(e),` · `,e.channels.join(` · `)||`no doors`]})]}),n>0&&(0,j.jsxs)(`span`,{className:`view-live`,children:[n,` live`]})]},`${e.slug}:${_(e)??`org`}`)}),S.length===0&&x===``&&(0,j.jsx)(`div`,{className:`view-none`,children:h?`Nothing is deployed in production yet: pinecall start --prod on your server holds it.`:`Nothing is running here: pinecall start in a project puts its agents on this list.`}),i!==null&&(0,j.jsxs)(`div`,{className:`view-corner`,children:[(0,j.jsxs)(`span`,{children:[`Looking at `,(0,j.jsx)(`b`,{children:C?.holder?.name??i}),`'s copy`]}),(0,j.jsx)(`button`,{type:`button`,className:`ui-text-action`,onClick:()=>a(null),children:`Back to yours`})]})]})]})}function D9(e,t,n){let r=_h(e);return r!==void 0&&t.includes(r)&&gh(t,r).key===n.key}function O9({agent:e,onSearch:t}){let[n,r]=(0,O.useState)(!1),i=rw(),a=nw(),{live:o,here:s,operator:c}=uO(),{pathname:l}=hr(),u=e=>i===null||fO(i,e.key),d=a?.name??a?.label??``,f=s?.role??(a===null?``:a.subject===null||a.subject===void 0?`a machine's key`:``),p=e===``?ch:uh,m=e===``?``:`/a/${encodeURIComponent(e)}`,h=e===``?o:o.filter(t=>t.agent===e),g=h.some(rE),_=(e,t,n)=>{let r=mh(e,t).filter(u)[0];return r===void 0?null:`${n}/${r.path}`},v=(e,t,n)=>{let r=_(e,t,n);if(r===null)return null;let i=D9(l,e,t);return(0,j.jsxs)(Gi,{to:r,end:t.path===``,title:t.name,className:i?`side-link side-link-on`:`side-link`,children:[(0,j.jsx)(`span`,{className:`side-icon`,children:t.icon!==void 0&&(0,j.jsx)(Kh,{name:t.icon,size:16})}),(0,j.jsx)(`span`,{className:`side-name`,children:t.name}),t.key===`calls`&&h.length>0&&(0,j.jsxs)(`span`,{className:g?`side-badge side-badge-asking`:`side-badge`,title:g?`a caller wants a person`:void 0,children:[h.length,` live`]})]},t.key)},y=ph(p),b=y.filter(e=>e.group===void 0),x=y.filter(e=>e.group===`build`),S=ph(ch).filter(e=>e.group===`workspace`),C=ph(lh,nh,c===!0);return(0,j.jsxs)(`aside`,{className:n?`side side-folded`:`side`,"aria-label":`Screens`,children:[(0,j.jsxs)(`div`,{className:`side-top`,children:[(0,j.jsx)(j9,{}),(0,j.jsx)(A9,{}),(0,j.jsx)(E9,{agent:e})]}),(0,j.jsxs)(`nav`,{className:`side-nav`,children:[(0,j.jsxs)(`button`,{type:`button`,className:`side-link side-search`,onClick:t,title:`Search`,children:[(0,j.jsx)(`span`,{className:`side-icon`,children:(0,j.jsx)(Kh,{name:`search`,size:16})}),(0,j.jsx)(`span`,{className:`side-name`,children:`Search`}),(0,j.jsx)(`span`,{className:`side-kbd`,children:`⌘K`})]}),b.map(e=>v(p,e,m)),x.length>0&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`div`,{className:`side-group`,children:`Build`}),x.map(e=>v(p,e,m))]})]}),(0,j.jsxs)(`nav`,{className:`side-nav side-nav-foot`,children:[(0,j.jsx)(`div`,{className:`side-group`,children:`Workspace`}),S.map(e=>v(ch,e,``)),C.length>0&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`div`,{className:`side-group`,children:`Box`}),C.map(e=>(0,j.jsxs)(Gi,{to:`/${e.path}`,title:e.name,className:({isActive:e})=>e?`side-link side-link-on`:`side-link`,children:[(0,j.jsx)(`span`,{className:`side-icon`,children:e.icon!==void 0&&(0,j.jsx)(Kh,{name:e.icon,size:16})}),(0,j.jsx)(`span`,{className:`side-name`,children:e.name})]},e.key))]})]}),(0,j.jsxs)(`div`,{className:`side-foot`,children:[(0,j.jsxs)(`div`,{className:`side-user`,title:a===null?d:`${d} · key ${a.key_id}`,children:[(0,j.jsx)(`span`,{className:`side-user-avatar`,children:bC(d||(a===null?`?`:QC(a)))}),(0,j.jsxs)(`span`,{className:`side-words`,children:[(0,j.jsx)(`span`,{className:`side-user-name`,children:d||`—`}),(0,j.jsx)(`span`,{className:`side-user-role`,children:k9(f)})]})]}),(0,j.jsx)(`button`,{type:`button`,className:`side-fold`,onClick:()=>r(!n),title:n?`Open the sidebar`:`Collapse the sidebar`,children:(0,j.jsx)(Kh,{name:`panel`,size:15})})]})]})}function k9(e){return e===``?``:e.charAt(0).toUpperCase()+e.slice(1)}function A9(){let{world:e}=ow(),t=()=>window.location.assign(th(window.location.pathname));return(0,j.jsx)(`div`,{className:`side-worlds`,role:`group`,"aria-label":`world`,children:[`production`,`sandbox`].map(n=>(0,j.jsxs)(`button`,{type:`button`,className:e===n?`side-world side-world-on side-world-${n}`:`side-world`,"aria-pressed":e===n,onClick:e===n?void 0:t,children:[(0,j.jsx)(`span`,{className:`side-world-dot`,"aria-hidden":!0}),n===`production`?`Production`:`Sandbox`]},n))})}function j9(){let e=nw(),{orgs:t}=uO(),{moveTo:n}=ow(),[r,i]=(0,O.useState)(!1),[a,o]=(0,O.useState)(null),[s,c]=(0,O.useState)(!1),l=(0,O.useRef)(null),u=hr().pathname;(0,O.useEffect)(()=>i(!1),[u]),(0,O.useEffect)(()=>{if(!r)return;let e=e=>{l.current!==null&&!l.current.contains(e.target)&&i(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[r]);let d=e===null?``:QC(e),f=t!==null&&t.length>1,p=async e=>{c(!0),o(null);try{await n(e)}catch(e){o(e instanceof na?e.message:String(e)),c(!1)}};return(0,j.jsxs)(`div`,{ref:l,className:`side-org-wrap`,children:[(0,j.jsxs)(`button`,{type:`button`,className:`side-org`,onClick:()=>f&&i(!r),title:d,"aria-expanded":r,disabled:!f,children:[(0,j.jsx)(`span`,{className:`side-tile`,children:bC(d||`?`).slice(0,1)}),(0,j.jsxs)(`span`,{className:`side-org-name`,children:[d||`…`,e?.visiting===!0&&(0,j.jsx)(`span`,{className:`side-org-visit`,children:` · as operator`})]}),f&&(0,j.jsx)(`span`,{className:`side-caret`,children:(0,j.jsx)(Kh,{name:`chevrons`,size:13})})]}),r&&t!==null&&(0,j.jsxs)(`div`,{className:`side-orgs`,role:`menu`,children:[[{label:`Your organizations`,rows:t.filter(e=>e.member!==!1)},{label:`Every other org on this box · as operator`,rows:t.filter(e=>e.member===!1)}].filter(e=>e.rows.length>0).map(e=>(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`div`,{className:`side-orgs-label`,children:e.label}),e.rows.map(e=>(0,j.jsxs)(`button`,{type:`button`,className:`side-orgs-row`,disabled:s||e.here,onClick:()=>void p(e.org),children:[(0,j.jsx)(`span`,{className:`side-tile`,children:bC(e.slug??e.name??e.org).slice(0,1)}),(0,j.jsx)(`span`,{className:`ui-clip`,children:e.slug??e.name??e.org}),(0,j.jsx)(`span`,{className:`side-orgs-role`,children:e.here?`here`:e.role})]},e.org))]},e.label)),a!==null&&(0,j.jsx)(`div`,{className:`ui-refused side-orgs-refused`,children:a})]})]})}function M9(){let{pathname:e}=hr(),t=M(),[n,r]=(0,O.useState)(null);return(0,O.useEffect)(()=>{let e=!1,n=!1,i=()=>{if(!Bm()||Vm()===`denied`)return r(null);Hm().then(i=>{e||(r(i!==null),!(i===null||n||t.key===``)&&(n=!0,Om(Fm(t),{platform:`web`,token:Wm(i),label:Km()}).catch(()=>n=!1)))})};i();let a=zm(i);return()=>{e=!0,a()}},[e,t]),n}function N9(){let e=M9(),t=_r(),n=()=>void t(`/notifications`);return e===!1?(0,j.jsxs)(`button`,{type:`button`,className:`top-notices top-notices-off`,onClick:n,children:[(0,j.jsx)(Kh,{name:`bell`}),`Turn on notifications`]}):(0,j.jsx)(`button`,{type:`button`,className:`top-theme`,onClick:n,"aria-label":`Notifications`,title:`Notifications`,children:(0,j.jsx)(Kh,{name:`bell`})})}function P9(){let e=(0,O.useSyncExternalStore)(Aa,Oa)===`dark`?`light`:`dark`;return(0,j.jsx)(`button`,{type:`button`,className:`top-theme`,onClick:()=>ka(),"aria-label":`Switch to the ${e} theme`,title:`${e===`dark`?`Dark`:`Light`} theme`,children:(0,j.jsx)(Kh,{name:e===`dark`?`moon`:`sun`})})}function F9(e,t){let n=e.split(`/`).filter(Boolean);if(n[0]===`cli`)return`Sign in a terminal`;if(n[0]===`box`){let e=lh.find(e=>e.path===`box/${n[1]??``}`);return e===void 0?`Box`:e.key===`box-orgs`&&n[2]!==void 0?`Organization`:e.name}let r=_h(e);if(r===void 0)return`Overview`;let i=gh(t===``?ch:uh,r),a=r.key===`numbers`?`Phone numbers`:r.name;return i.key===r.key?a:`${i.name} · ${hh(r)}`}function I9({agent:e}){let t=Xm(),{pathname:n}=hr(),r=_h(n),i=n.startsWith(`/box/`)?`Box`:e===``?r===void 0||r.group===`workspace`||r.under!==void 0&&ch.find(e=>e.key===r.under)?.group===`workspace`?null:`All agents`:e;return(0,j.jsxs)(`header`,{className:`top`,children:[i!==null&&(0,j.jsx)(`span`,{className:`top-crumb`,children:i}),i!==null&&(0,j.jsx)(`span`,{className:`top-sep`,children:`/`}),(0,j.jsx)(`span`,{className:`top-title`,children:F9(n,e)}),(0,j.jsxs)(`div`,{className:`top-right`,children:[(0,j.jsx)(N9,{}),(0,j.jsx)(P9,{}),(0,j.jsx)(`button`,{type:`button`,className:`top-leave`,onClick:t,children:`Sign out`})]})]})}var L9=`No agent called {agent} is held here`;function R9(){return(0,j.jsx)(lO,{children:(0,j.jsx)(r4,{children:(0,j.jsx)(z9,{})})})}function z9(){let e=xr().agent??``,{agents:t,agentsLoaded:n}=uO(),[r,i]=(0,O.useState)(!1),a=e!==``&&n&&!t.some(t=>t.slug===e);return(0,O.useEffect)(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&e.key.toLowerCase()===`k`&&(e.preventDefault(),i(e=>!e))};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[]),(0,j.jsxs)(`div`,{className:`frame`,children:[(0,j.jsx)(O9,{agent:a?``:e,onSearch:()=>i(!0)}),(0,j.jsxs)(`div`,{className:`frame-main`,children:[(0,j.jsx)(I9,{agent:e}),!a&&(0,j.jsx)(u9,{agent:e}),(0,j.jsx)(`div`,{className:`frame-screen`,children:a?(0,j.jsx)(B9,{agent:e}):(0,j.jsx)(Xr,{})})]}),(0,j.jsx)(v9,{}),(0,j.jsx)(f9,{}),r&&(0,j.jsx)(h9,{agent:a?``:e,onClose:()=>i(!1)})]})}function B9({agent:e}){return(0,j.jsxs)(`p`,{className:`missing`,children:[L9.replace(`{agent}`,e),nh===`sandbox`?" — no copy of yours is running. Start `pinecall start` in the project, and it appears.":` — nothing by that name is deployed in this org. Check the org you signed in with; a copy somebody is running themselves is in the sandbox, on the other console.`]})}var V9={overview:(0,j.jsx)(R6,{}),agents:(0,j.jsx)(ik,{}),calls:(0,j.jsx)(B2,{}),quality:(0,j.jsx)(Q7,{}),"org-memory":(0,j.jsx)(t4,{}),"org-docs":(0,j.jsx)(b4,{}),"org-settings":(0,j.jsx)(d9,{}),numbers:(0,j.jsx)(K3,{}),phone:(0,j.jsx)(J3,{}),tokens:(0,j.jsx)(S4,{}),providers:(0,j.jsx)(R4,{}),apps:(0,j.jsx)(Ik,{}),secrets:(0,j.jsx)(J4,{}),team:(0,j.jsx)(q5,{}),usage:(0,j.jsx)(f7,{}),notifications:(0,j.jsx)(W6,{}),"org-data":(0,j.jsx)(e$,{})},H9={"box-orgs":(0,j.jsx)($j,{children:(0,j.jsx)(dj,{})}),"box-fleet":(0,j.jsx)($j,{children:(0,j.jsx)(hA,{})}),"box-carriers":(0,j.jsx)($j,{children:(0,j.jsx)(dA,{})}),"box-routes":(0,j.jsx)($j,{children:(0,j.jsx)(_j,{})}),"box-usage":(0,j.jsx)($j,{children:(0,j.jsx)(Xj,{})}),"box-settings":(0,j.jsx)($j,{children:(0,j.jsx)(Vj,{})}),"box-traceback":(0,j.jsx)($j,{children:(0,j.jsx)(Kj,{})})},U9={"agent-overview":(0,j.jsx)(R6,{}),talk:(0,j.jsx)(g5,{}),devchat:(0,j.jsx)(FN,{}),calls:(0,j.jsx)(B2,{}),quality:(0,j.jsx)(Q7,{}),test:(0,j.jsx)(d9,{}),cases:(0,j.jsx)(vQ,{}),personas:(0,j.jsx)(O8,{}),simulations:(0,j.jsx)(L8,{}),evals:(0,j.jsx)(ZY,{}),knowledge:(0,j.jsx)(d9,{}),docs:(0,j.jsx)($4,{}),memory:(0,j.jsx)(i3,{}),settings:(0,j.jsx)(ZZ,{}),pipeline:(0,j.jsx)(n8,{}),lexicon:(0,j.jsx)(j4,{}),widget:(0,j.jsx)(c9,{})},W9={devchat:(0,j.jsx)(FN,{}),calls:(0,j.jsx)(B2,{}),simulations:(0,j.jsx)(L8,{}),personas:(0,j.jsx)(O8,{}),cases:(0,j.jsx)(vQ,{})},G9={calls:(0,j.jsx)(B2,{})},K9=[{path:`live`,to:`/calls?status=live`},{path:`live/:call`,to:`/calls/:call`},{path:`sessions`,to:`/calls`},{path:`sessions/:call`,to:`/calls/:call`},{path:`conversations`,to:`/calls`},{path:`c/:call`,to:`/calls/:call`},{path:`inbox`,to:`/calls`},{path:`inbox/:call`,to:`/calls/:call`},{path:`personas`,to:`/`},{path:`personas/:call`,to:`/`},{path:`simulations`,to:`/`},{path:`simulations/:call`,to:`/`},{path:`lexicon`,to:`/`},{path:`overview`,to:`/agents`},{path:`list`,to:`/calls?view=table`},{path:`evals`,to:`/quality`}],q9=[{path:`sessions`,to:`/a/:agent/calls`},{path:`sessions/:call`,to:`/calls/:call`},{path:`conversations`,to:`/a/:agent/calls`},{path:`inbox`,to:`/a/:agent/calls`},{path:`inbox/:call`,to:`/a/:agent/calls/:call`},{path:`talk`,to:`/a/:agent/playground`},{path:`settings`,to:`/a/:agent/configure`},{path:`evals`,to:`/a/:agent/goldens`},{path:`judges`,to:`/a/:agent/quality`}];function J9({to:e}){let t=xr(),{search:n,hash:r}=hr(),[i=``,a=``]=e.replace(/:(\w+)/g,(e,n)=>encodeURIComponent(t[n]??``)).split(`?`),o=new URLSearchParams(n);for(let[e,t]of new URLSearchParams(a))o.set(e,t);let s=o.toString();return(0,j.jsx)(Yr,{to:`${i}${s===``?``:`?${s}`}${r}`,replace:!0})}function Y9(e){return e.map(({path:e,to:t})=>({path:e,element:(0,j.jsx)(J9,{to:t})}))}function X9(e,t){return dh(e,nh,!0).flatMap(e=>{let n=t[e.key];if(e.path===``)return[{index:!0,element:n}];let r=(t===U9?W9:G9)[e.key];return r===void 0?[{path:e.path,element:n}]:[{path:e.path,element:n},{path:`${e.path}/:call`,element:r}]})}var uee=Vi([{path:`/`,element:(0,j.jsx)(R9,{}),children:[...X9(ch,V9),...X9(lh,H9),...Y9(K9),...nh===`production`?[{path:`box/orgs/:org`,element:(0,j.jsx)($j,{children:(0,j.jsx)(lj,{})})}]:[],...nh===`production`?[{path:`cli`,element:(0,j.jsx)(j5,{})}]:[],...nh===`production`?[{path:`billing`,element:(0,j.jsx)(S5,{})}]:[],{path:`docs/:base`,element:(0,j.jsx)(h4,{})}]},{path:`/a/:agent`,element:(0,j.jsx)(R9,{}),children:[{index:!0,element:(0,j.jsx)(Yr,{to:`overview`,replace:!0})},...X9(uh,U9),...Y9(q9)]},{path:`/a/:agent/widget/preview`,element:(0,j.jsx)(l9,{})},{path:`*`,element:(0,j.jsx)(Yr,{to:`/`,replace:!0})}],{basename:rh}),dee=bp({version:P(),cloud:L().optional(),signup:L(),min_password:F(),mail:L().optional(),google:L().optional()});async function Z9(e){try{let t=await fetch(ha(e,`/.well-known/pinecall`));return dee.parse(await ma(t))}catch{return{version:``,cloud:!1,signup:!1,min_password:0}}}function fee({base:e,onSigned:t}){let[n,r]=(0,O.useState)(``),[i,a]=(0,O.useState)(``),[o,s]=(0,O.useState)(``),[c,l]=(0,O.useState)(!1),[u,d]=(0,O.useState)(()=>new URLSearchParams(window.location.search).get(`refused`)),[f,p]=(0,O.useState)(!1),[m,h]=(0,O.useState)(!1),[g,_]=(0,O.useState)(null),[v,y]=(0,O.useState)(!0),b=(0,O.useRef)(``),[x,S]=(0,O.useState)(!1),[C,w]=(0,O.useState)(null),[T,ee]=(0,O.useState)(null),[te,E]=(0,O.useState)(!1);(0,O.useEffect)(()=>{let t=!1;return gm(e).then(e=>{t||S(e)}),Z9(e).then(e=>{t||h(e.google===!0)}),()=>{t=!0}},[e]);let ne=async()=>{if(ee(null),w(null),i.trim()===``){ee(`Type your work email first: it says which workspace signs you in.`);return}E(!0);try{let t=await _m(e,i.trim()),n=t[0];t.length===1&&n!==void 0?window.location.assign(vm(e,n.slug??n.org)):t.length===0?ee(`No workspace signs in with a provider for that address.`):w(t)}catch(e){ee(e instanceof na?e.message:String(e))}finally{E(!1)}},D=async()=>{let t=`${i.trim()}\n${o}`;if(i.trim()!==``&&o!==``&&t!==b.current){b.current=t;try{let t=await pm(e,i.trim(),o);if(t===null){y(!1);return}_(t);let a=t[0];t.length>0&&!t.some(e=>(e.slug??e.org)===n)&&a!==void 0&&r(a.slug??a.org)}catch{_(null)}}},re=async r=>{r.preventDefault(),l(!0),d(null);try{t(await sm(e,{org:n.trim(),email:i.trim(),password:o},ja))}catch(e){d(e instanceof na?e.message:String(e))}finally{l(!1)}};return(0,j.jsx)(KC,{children:(0,j.jsxs)(`form`,{onSubmit:e=>void re(e),children:[(0,j.jsx)(`h1`,{className:`login-title`,children:`Sign in`}),(0,j.jsx)(`p`,{className:`login-lede`,children:`Use the email and password you were invited with.`}),(0,j.jsx)(`label`,{className:`login-label`,htmlFor:`login-email`,children:`Email`}),(0,j.jsx)(`input`,{id:`login-email`,className:`login-input`,type:`email`,value:i,onChange:e=>a(e.target.value),autoComplete:`username`,autoFocus:!0,required:!0}),(0,j.jsxs)(`div`,{className:`login-label-row`,children:[(0,j.jsx)(`label`,{className:`login-label`,htmlFor:`login-password`,children:`Password`}),(0,j.jsx)(`button`,{type:`button`,className:`login-link`,onClick:()=>p(!f),children:`Forgot password`})]}),(0,j.jsx)(`input`,{id:`login-password`,className:`login-input login-input-secret`,type:`password`,value:o,onChange:e=>s(e.target.value),onBlur:()=>void D(),autoComplete:`current-password`,required:!0}),f&&(0,j.jsx)(`p`,{className:`login-forgot`,children:`Ask an admin of your workspace: from Team they hand you a one-use link where you choose a new password.`}),g!==null&&g.length>0?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`label`,{className:`login-label`,htmlFor:`login-org`,children:`Workspace`}),(0,j.jsxs)(`div`,{className:`login-workspace`,children:[(0,j.jsx)(`span`,{className:`login-workspace-tile`,children:(n[0]??`·`).toUpperCase()}),(0,j.jsx)(`select`,{id:`login-org`,className:`login-workspace-input`,value:n,onChange:e=>r(e.target.value),disabled:g.length===1,children:g.map(e=>(0,j.jsx)(`option`,{value:e.slug??e.org,children:e.name??e.slug??e.org},e.org))})]})]}):!v&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`div`,{className:`login-label-row`,children:[(0,j.jsx)(`label`,{className:`login-label`,htmlFor:`login-org`,children:`Workspace`}),(0,j.jsx)(`span`,{className:`login-hint`,children:`only if you belong to several`})]}),(0,j.jsxs)(`div`,{className:`login-workspace`,children:[(0,j.jsx)(`span`,{className:`login-workspace-tile`,children:(n.trim()[0]??`·`).toUpperCase()}),(0,j.jsx)(`input`,{id:`login-org`,className:`login-workspace-input`,value:n,onChange:e=>r(e.target.value),autoComplete:`organization`,placeholder:`the oldest of yours`})]})]}),(0,j.jsx)(`button`,{className:`login-go`,type:`submit`,disabled:c,children:c?`Signing in…`:`Sign in`}),u!==null&&(0,j.jsx)(`p`,{className:`login-refused`,children:u}),(x||m)&&(0,j.jsxs)(`div`,{className:`login-or`,children:[(0,j.jsx)(`span`,{className:`login-or-line`}),(0,j.jsx)(`span`,{className:`login-or-word`,children:`or`}),(0,j.jsx)(`span`,{className:`login-or-line`})]}),m&&(0,j.jsxs)(`button`,{type:`button`,className:`login-sso login-google`,onClick:()=>window.location.assign(ym(e)),children:[(0,j.jsx)(pee,{}),`Continue with Google`]}),x&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`button`,{type:`button`,className:`login-sso`,disabled:te,onClick:()=>void ne(),children:[(0,j.jsx)(`span`,{className:`login-sso-glyph`}),te?`Looking for your workspace…`:`Continue with SSO`]}),C!==null&&(0,j.jsxs)(`div`,{className:`login-sso-pick`,children:[(0,j.jsx)(`label`,{className:`login-label`,htmlFor:`login-sso-org`,children:`Which workspace`}),(0,j.jsxs)(`div`,{className:`login-workspace`,children:[(0,j.jsx)(`span`,{className:`login-workspace-tile`,children:`·`}),(0,j.jsxs)(`select`,{id:`login-sso-org`,className:`login-workspace-input`,defaultValue:``,onChange:t=>t.target.value!==``&&window.location.assign(vm(e,t.target.value)),children:[(0,j.jsx)(`option`,{value:``,disabled:!0,children:`Choose one…`}),C.map(e=>(0,j.jsx)(`option`,{value:e.slug??e.org,children:e.name??e.slug??e.org},e.org))]})]})]}),T!==null&&(0,j.jsx)(`p`,{className:`login-sso-note`,children:T})]}),(0,j.jsx)(`p`,{className:`login-note`,children:`Invited and no password yet? Open the link in your invitation — that is where you choose one.`})]})})}function pee(){return(0,j.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 48 48`,"aria-hidden":!0,children:[(0,j.jsx)(`path`,{fill:`#EA4335`,d:`M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z`}),(0,j.jsx)(`path`,{fill:`#4285F4`,d:`M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z`}),(0,j.jsx)(`path`,{fill:`#FBBC05`,d:`M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z`}),(0,j.jsx)(`path`,{fill:`#34A853`,d:`M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z`})]})}function mee({base:e,token:t,onSigned:n}){let[r,i]=(0,O.useState)(``),[a,o]=(0,O.useState)(``),[s,c]=(0,O.useState)(null),[l,u]=(0,O.useState)(!1),[d,f]=(0,O.useState)(null);(0,O.useEffect)(()=>{let t=!1;return Z9(e).then(e=>{t||c(e.min_password)}),()=>{t=!0}},[e]);let p=async i=>{if(i.preventDefault(),r!==a){f(`The two passwords differ.`);return}u(!0),f(null);try{n(await dm(e,t,r,ja))}catch(e){f(e instanceof na?e.message:String(e))}finally{u(!1)}};return(0,j.jsx)(KC,{children:(0,j.jsxs)(`form`,{onSubmit:e=>void p(e),children:[(0,j.jsx)(`h1`,{className:`login-title`,children:`Choose your password`}),(0,j.jsx)(`p`,{className:`login-lede`,children:`This link came from an invitation, or from an admin resetting your password. It opens once; the password you pick here is the one you sign in with from now on.`}),(0,j.jsxs)(`div`,{className:`login-label-row`,children:[(0,j.jsx)(`label`,{className:`login-label`,htmlFor:`accept-password`,children:`Password`}),s!==null&&s>0&&(0,j.jsxs)(`span`,{className:`login-hint`,children:[s,` characters at least`]})]}),(0,j.jsx)(`input`,{id:`accept-password`,className:`login-input login-input-secret`,type:`password`,value:r,minLength:s??void 0,onChange:e=>i(e.target.value),autoComplete:`new-password`,autoFocus:!0,required:!0}),(0,j.jsx)(`label`,{className:`login-label`,htmlFor:`accept-again`,children:`Again`}),(0,j.jsx)(`input`,{id:`accept-again`,className:`login-input login-input-secret`,type:`password`,value:a,onChange:e=>o(e.target.value),autoComplete:`new-password`,required:!0}),(0,j.jsx)(`button`,{className:`login-go`,type:`submit`,disabled:l,style:{marginTop:8},children:l?`Joining…`:`Join`}),d!==null&&(0,j.jsx)(`p`,{className:`login-refused`,children:d})]})})}var Q9=document.getElementById(`root`);if(Q9===null)throw Error(`index.html has no #root for the console to mount in`);Da();var $9=`login`,hee=/^\/invitations\/([^/]+)\/?$/;function gee(){let e=hee.exec(window.location.pathname);return e===null?null:decodeURIComponent(e[1]??``)}async function _ee(){let e=new URL(window.location.href),t=e.searchParams.get($9);if(t!==null){e.searchParams.delete($9),window.history.replaceState(null,``,e.toString());try{let e=await im(`/`,t,ja);return await Sh(e.key),e.key}catch{}}return xh()}function vee({startingWith:e}){let[t,n]=(0,O.useState)(e),[r,i]=(0,O.useState)(()=>nh===`sandbox`?Th():null),a=(0,O.useCallback)(e=>{Eh(e),i(e)},[]);oa(()=>{Ch().then(()=>n(null))});let o=(0,O.useCallback)(async(e,n=`/`)=>{if(t===null)return;let r=await um({base:`/`,key:t},e);Eh(null),await Sh(r.key),window.location.assign(eh(nh,n))},[t]),s=(0,O.useMemo)(()=>({world:nh,moveTo:o,corner:r,lookInto:a}),[o,r,a]),c=(0,O.useMemo)(()=>({base:`/`,key:t??``,corner:r,world:nh}),[t,r]),l=(0,O.useCallback)(()=>{t!==null&&Gm({base:`/`,key:t}),Ch(),Eh(null),i(null),n(null)},[t]),u=e=>{Sh(e.key),n(e.key)};if(t===null){let e=gee();return e===null?(0,j.jsx)(fee,{base:`/`,onSigned:u}):(0,j.jsx)(mee,{base:`/`,token:e,onSigned:e=>{window.history.replaceState(null,``,rh),u(e)}})}return(0,j.jsx)(Pa,{value:c,children:(0,j.jsx)(tw,{children:(0,j.jsx)(aw,{value:s,children:(0,j.jsx)(Ym,{value:l,children:(0,j.jsx)(Gr,{router:uee})})})})})}_ee().then(e=>{(0,hi.createRoot)(Q9).render((0,j.jsx)(O.StrictMode,{children:(0,j.jsx)(vee,{startingWith:e})}))});