@happyvertical/smrt-planner 0.60.13 → 0.60.15

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 (535) hide show
  1. package/app/404.html +18 -18
  2. package/app/_app/immutable/assets/{icons.D6X8tgCK.css → icons.ByhkLIMv.css} +1 -1
  3. package/app/_app/immutable/chunks/{C4h_pFjw.js → B-QbNQ20.js} +1 -1
  4. package/app/_app/immutable/chunks/{DEMOujRJ.js → B4B88unW.js} +1 -1
  5. package/app/_app/immutable/chunks/{B5Hi1VWI.js → B5yIG6Bm.js} +1 -1
  6. package/app/_app/immutable/chunks/{But0ITT-.js → BBenmy2D.js} +1 -1
  7. package/app/_app/immutable/chunks/{C3KQXl2l.js → BW617Cdd.js} +1 -1
  8. package/app/_app/immutable/chunks/{B51N8lPp.js → BZwXiPsG.js} +1 -1
  9. package/app/_app/immutable/chunks/{DWT84qRc.js → BxO54NEj.js} +1 -1
  10. package/app/_app/immutable/chunks/{Bv5X8BNy.js → C17UjKjh.js} +1 -1
  11. package/app/_app/immutable/chunks/{Br6uY3Yq.js → C4P1kzl6.js} +1 -1
  12. package/app/_app/immutable/chunks/{nHXWSv3N.js → C6pcemFo.js} +1 -1
  13. package/app/_app/immutable/chunks/CFhKn4Ro.js +29 -0
  14. package/app/_app/immutable/chunks/{BGQ-W9bn.js → CMTsSJV6.js} +1 -1
  15. package/app/_app/immutable/chunks/CPRaO-Ts.js +1 -0
  16. package/app/_app/immutable/chunks/{D7pmElUN.js → CUH3ig_v.js} +1 -1
  17. package/app/_app/immutable/chunks/{CJ2Zllj9.js → Caow5nDc.js} +3 -3
  18. package/app/_app/immutable/chunks/{CNDSLfdy.js → CcnQIGXF.js} +1 -1
  19. package/app/_app/immutable/chunks/{DwjSIdzz.js → Ctv1P5Pf.js} +1 -1
  20. package/app/_app/immutable/chunks/{B4RZaVLJ.js → Czxq5aIS.js} +1 -1
  21. package/app/_app/immutable/chunks/{q4NZ65-X.js → D-TD1e4P.js} +34 -34
  22. package/app/_app/immutable/chunks/D5oVPPQ5.js +1 -0
  23. package/app/_app/immutable/chunks/{C2fMJvwo.js → D6pDEqtp.js} +1 -1
  24. package/app/_app/immutable/chunks/{BBW1vRik.js → D8bhdH7S.js} +1 -1
  25. package/app/_app/immutable/chunks/{B7faC4d1.js → DA7q6c4M.js} +1 -1
  26. package/app/_app/immutable/chunks/{CKeqIK18.js → DZWuoKFS.js} +2 -2
  27. package/app/_app/immutable/chunks/DaDBCP1x.js +1 -0
  28. package/app/_app/immutable/chunks/{By9bP9S3.js → DiVlkX9H.js} +1 -1
  29. package/app/_app/immutable/chunks/{Dvi40siQ.js → KyvWo5ZG.js} +1 -1
  30. package/app/_app/immutable/chunks/{DFcwqo0O.js → YV-88d-U.js} +1 -1
  31. package/app/_app/immutable/chunks/{DHzXY4VB.js → Z2AywRWF.js} +1 -1
  32. package/app/_app/immutable/entry/{app.BjndgPSr.js → app.DqE5bk3g.js} +2 -2
  33. package/app/_app/immutable/entry/start.BUeSfiAE.js +1 -0
  34. package/app/_app/immutable/nodes/{0.rI80aPf8.js → 0.vvdLgo4F.js} +1 -1
  35. package/app/_app/immutable/nodes/{1.Lw8Leydt.js → 1.5751otcH.js} +1 -1
  36. package/app/_app/immutable/nodes/{10.CqJKKK_s.js → 10.CYe09E3W.js} +1 -1
  37. package/app/_app/immutable/nodes/{11.OK70ZQv0.js → 11.ChjRaejD.js} +1 -1
  38. package/app/_app/immutable/nodes/{12.XlRr7THQ.js → 12.B-0khEQm.js} +1 -1
  39. package/app/_app/immutable/nodes/{13.B1dzCWGd.js → 13.BZcNq7oI.js} +1 -1
  40. package/app/_app/immutable/nodes/{14.CWOnaYcf.js → 14.B1VO18GU.js} +1 -1
  41. package/app/_app/immutable/nodes/{2.DFAv8si-.js → 2.CuJMBorh.js} +3 -3
  42. package/app/_app/immutable/nodes/{3.Cd3k1iaV.js → 3.DR4wyJoZ.js} +1 -1
  43. package/app/_app/immutable/nodes/{4.CYkRXq0B.js → 4.WuD1RnOX.js} +1 -1
  44. package/app/_app/immutable/nodes/{5.Ca82uRca.js → 5.CpjmpM9A.js} +1 -1
  45. package/app/_app/immutable/nodes/{6.DSg_M0vQ.js → 6.BYdd3qET.js} +1 -1
  46. package/app/_app/immutable/nodes/{7.DpmQrBzO.js → 7.BjevUsH5.js} +1 -1
  47. package/app/_app/immutable/nodes/{8.Bgfw55ai.js → 8.DLEzZtHo.js} +1 -1
  48. package/app/_app/immutable/nodes/{9.CBVAQ1rV.js → 9.QyEKPSOX.js} +1 -1
  49. package/app/_app/version.json +1 -1
  50. package/app/advanced-styles/index.html +21 -21
  51. package/app/ai/index.html +25 -25
  52. package/app/blueprint/index.html +19 -19
  53. package/app/cookbook/index.html +19 -19
  54. package/app/index.html +28 -28
  55. package/app/m/ads/AdDeliveryTier/index.html +23 -23
  56. package/app/m/ads/AdEvent/index.html +23 -23
  57. package/app/m/ads/AdFormat/index.html +23 -23
  58. package/app/m/ads/AdGroup/index.html +23 -23
  59. package/app/m/ads/AdVariation/index.html +23 -23
  60. package/app/m/analytics/AnalyticsDataStream/index.html +23 -23
  61. package/app/m/analytics/AnalyticsEvent/index.html +23 -23
  62. package/app/m/analytics/AnalyticsProperty/index.html +23 -23
  63. package/app/m/analytics/AnalyticsReport/index.html +23 -23
  64. package/app/m/approvals/ApprovalEvent/index.html +23 -23
  65. package/app/m/approvals/ApprovalPolicy/index.html +23 -23
  66. package/app/m/approvals/ApprovalRequest/index.html +23 -23
  67. package/app/m/assets/Asset/attachments/index.html +24 -24
  68. package/app/m/assets/Asset/index.html +23 -23
  69. package/app/m/assets/AssetAssociation/index.html +23 -23
  70. package/app/m/assets/AssetMetafield/index.html +23 -23
  71. package/app/m/assets/AssetStatus/index.html +23 -23
  72. package/app/m/assets/AssetType/index.html +23 -23
  73. package/app/m/assets/Folder/index.html +23 -23
  74. package/app/m/chat/AgentSession/index.html +23 -23
  75. package/app/m/chat/ChatMessage/index.html +23 -23
  76. package/app/m/chat/ChatParticipant/index.html +23 -23
  77. package/app/m/chat/ChatReaction/index.html +23 -23
  78. package/app/m/chat/ChatRoom/index.html +23 -23
  79. package/app/m/chat/ChatThread/index.html +23 -23
  80. package/app/m/chat/VoiceGatewayTurn/index.html +23 -23
  81. package/app/m/chat/VoiceSession/index.html +23 -23
  82. package/app/m/commerce/Agreement/index.html +23 -23
  83. package/app/m/commerce/Cart/index.html +23 -23
  84. package/app/m/commerce/Contract/index.html +23 -23
  85. package/app/m/commerce/ContractLineItem/index.html +23 -23
  86. package/app/m/commerce/Customer/index.html +23 -23
  87. package/app/m/commerce/DocumentTax/index.html +23 -23
  88. package/app/m/commerce/Estimate/index.html +23 -23
  89. package/app/m/commerce/Fulfillment/index.html +23 -23
  90. package/app/m/commerce/FulfillmentLineItem/index.html +23 -23
  91. package/app/m/commerce/HistoricalCustomerFunds/index.html +23 -23
  92. package/app/m/commerce/HistoricalCustomerFundsAllocation/index.html +23 -23
  93. package/app/m/commerce/HistoricalSalesLine/index.html +23 -23
  94. package/app/m/commerce/Invoice/index.html +23 -23
  95. package/app/m/commerce/InvoiceLineItem/index.html +23 -23
  96. package/app/m/commerce/Lease/index.html +23 -23
  97. package/app/m/commerce/LicenseSale/index.html +23 -23
  98. package/app/m/commerce/Order/index.html +23 -23
  99. package/app/m/commerce/Payment/index.html +23 -23
  100. package/app/m/commerce/PaymentAllocation/index.html +23 -23
  101. package/app/m/commerce/PaymentInstrument/index.html +23 -23
  102. package/app/m/commerce/PaymentIntent/index.html +23 -23
  103. package/app/m/commerce/Payout/index.html +23 -23
  104. package/app/m/commerce/ProductionOrder/index.html +23 -23
  105. package/app/m/commerce/PurchaseContract/index.html +23 -23
  106. package/app/m/commerce/PurchaseOrder/index.html +23 -23
  107. package/app/m/commerce/SalesContract/index.html +23 -23
  108. package/app/m/commerce/SupplierQuote/index.html +23 -23
  109. package/app/m/commerce/TaxCode/index.html +23 -23
  110. package/app/m/commerce/TaxComponent/index.html +23 -23
  111. package/app/m/commerce/TaxSettings/index.html +23 -23
  112. package/app/m/commerce/TaxSummaryReport/index.html +23 -23
  113. package/app/m/commerce/TenantPaymentAccount/index.html +23 -23
  114. package/app/m/commerce/Vendor/index.html +23 -23
  115. package/app/m/commerce/WholesaleOrder/index.html +23 -23
  116. package/app/m/content/Content/articles/index.html +24 -24
  117. package/app/m/content/Content/index.html +23 -23
  118. package/app/m/content/ContentContribution/index.html +23 -23
  119. package/app/m/content/ContentContributionAttachment/index.html +23 -23
  120. package/app/m/content/ContentContributionRevision/index.html +23 -23
  121. package/app/m/content/ContentContributionType/index.html +23 -23
  122. package/app/m/content/ContentContributor/index.html +23 -23
  123. package/app/m/content/ContentCorrection/index.html +23 -23
  124. package/app/m/content/ContentFeedSource/index.html +23 -23
  125. package/app/m/content/ContentGovernanceAssignment/index.html +23 -23
  126. package/app/m/content/ContentGovernancePolicy/index.html +23 -23
  127. package/app/m/content/ContentGovernanceProfile/index.html +23 -23
  128. package/app/m/content/ContentReference/index.html +23 -23
  129. package/app/m/content/ContentReview/index.html +23 -23
  130. package/app/m/content/ContentVersion/index.html +23 -23
  131. package/app/m/events/Event/index.html +23 -23
  132. package/app/m/events/EventParticipant/index.html +23 -23
  133. package/app/m/events/EventSeries/index.html +23 -23
  134. package/app/m/events/EventType/index.html +23 -23
  135. package/app/m/expenses/Expense/index.html +23 -23
  136. package/app/m/facts/Fact/index.html +23 -23
  137. package/app/m/facts/FactContent/index.html +23 -23
  138. package/app/m/facts/FactEvidence/index.html +23 -23
  139. package/app/m/facts/FactSource/index.html +23 -23
  140. package/app/m/facts/FactSubject/index.html +23 -23
  141. package/app/m/facts/FactTag/index.html +23 -23
  142. package/app/m/fields/FieldPolicy/index.html +23 -23
  143. package/app/m/fields/FieldPolicySuggestion/index.html +23 -23
  144. package/app/m/fields/FieldUsageCounter/index.html +23 -23
  145. package/app/m/human-resources/Employment/index.html +23 -23
  146. package/app/m/human-resources/EmploymentTerm/index.html +23 -23
  147. package/app/m/human-resources/HeldQualification/index.html +23 -23
  148. package/app/m/human-resources/Qualification/index.html +23 -23
  149. package/app/m/images/Image/index.html +23 -23
  150. package/app/m/inventory/InventoryLocation/index.html +23 -23
  151. package/app/m/inventory/Lot/index.html +23 -23
  152. package/app/m/inventory/LotCorrection/index.html +23 -23
  153. package/app/m/inventory/LotDocument/index.html +23 -23
  154. package/app/m/inventory/LotStockLevel/index.html +23 -23
  155. package/app/m/inventory/LotUsage/index.html +23 -23
  156. package/app/m/inventory/StockLevel/index.html +23 -23
  157. package/app/m/inventory/StockMovement/index.html +23 -23
  158. package/app/m/ledgers/Account/index.html +23 -23
  159. package/app/m/ledgers/Journal/index.html +23 -23
  160. package/app/m/ledgers/JournalEntry/index.html +23 -23
  161. package/app/m/ledgers/Ledger/index.html +23 -23
  162. package/app/m/manufacturing/Assembly/index.html +23 -23
  163. package/app/m/manufacturing/BillOfMaterials/index.html +23 -23
  164. package/app/m/manufacturing/BomLine/index.html +23 -23
  165. package/app/m/manufacturing/Operation/index.html +23 -23
  166. package/app/m/manufacturing/ProductionRun/index.html +23 -23
  167. package/app/m/manufacturing/ProductionRunCompletion/index.html +23 -23
  168. package/app/m/manufacturing/RoutingStep/index.html +23 -23
  169. package/app/m/marketing/Campaign/index.html +23 -23
  170. package/app/m/marketing/CampaignChannel/index.html +23 -23
  171. package/app/m/marketing/CampaignMetricSnapshot/index.html +23 -23
  172. package/app/m/messages/Account/index.html +23 -23
  173. package/app/m/messages/Attachment/index.html +23 -23
  174. package/app/m/messages/Blacklist/index.html +23 -23
  175. package/app/m/messages/Email/failed-sends/index.html +24 -24
  176. package/app/m/messages/Email/index.html +23 -23
  177. package/app/m/messages/Email/mailbox/index.html +24 -24
  178. package/app/m/messages/EmailAccount/index.html +23 -23
  179. package/app/m/messages/EmailAttachment/index.html +23 -23
  180. package/app/m/messages/EmailFolder/index.html +23 -23
  181. package/app/m/messages/Message/index.html +23 -23
  182. package/app/m/messages/MessagingEndpoint/index.html +23 -23
  183. package/app/m/messages/PersonaMessageRoute/index.html +23 -23
  184. package/app/m/messages/SlackAccount/index.html +23 -23
  185. package/app/m/messages/SlackMessage/index.html +23 -23
  186. package/app/m/messages/SlackMessage/slack-messages/index.html +24 -24
  187. package/app/m/messages/TelegramAccount/index.html +23 -23
  188. package/app/m/messages/Tweet/index.html +23 -23
  189. package/app/m/messages/TwitterAccount/index.html +23 -23
  190. package/app/m/messages/Whitelist/index.html +23 -23
  191. package/app/m/messages/ZulipAccount/index.html +23 -23
  192. package/app/m/places/Place/index.html +23 -23
  193. package/app/m/places/PlaceType/index.html +23 -23
  194. package/app/m/products/Category/index.html +23 -23
  195. package/app/m/products/Material/index.html +23 -23
  196. package/app/m/products/Product/index.html +23 -23
  197. package/app/m/products/Product/ingredients/index.html +24 -24
  198. package/app/m/products/ProductVariant/index.html +23 -23
  199. package/app/m/products/Sku/index.html +23 -23
  200. package/app/m/profiles/ApiKey/index.html +23 -23
  201. package/app/m/profiles/Bot/index.html +23 -23
  202. package/app/m/profiles/MagicLinkToken/index.html +23 -23
  203. package/app/m/profiles/NostrIdentity/index.html +23 -23
  204. package/app/m/profiles/OidcIdentity/index.html +23 -23
  205. package/app/m/profiles/Organization/index.html +23 -23
  206. package/app/m/profiles/Person/index.html +23 -23
  207. package/app/m/profiles/Profile/index.html +23 -23
  208. package/app/m/profiles/ProfileMetadata/index.html +23 -23
  209. package/app/m/profiles/ProfileMetafield/index.html +23 -23
  210. package/app/m/profiles/ProfileRelationship/index.html +23 -23
  211. package/app/m/profiles/ProfileRelationshipTerm/index.html +23 -23
  212. package/app/m/profiles/ProfileRelationshipType/index.html +23 -23
  213. package/app/m/profiles/ProfileType/index.html +23 -23
  214. package/app/m/projects/Comment/index.html +23 -23
  215. package/app/m/projects/Issue/index.html +23 -23
  216. package/app/m/projects/Label/index.html +23 -23
  217. package/app/m/projects/Project/index.html +23 -23
  218. package/app/m/projects/ProjectIntegration/index.html +23 -23
  219. package/app/m/projects/PullRequest/index.html +23 -23
  220. package/app/m/projects/Repository/index.html +23 -23
  221. package/app/m/properties/Property/index.html +23 -23
  222. package/app/m/properties/Zone/index.html +23 -23
  223. package/app/m/reports/RuntimeReport/index.html +23 -23
  224. package/app/m/reports/SmrtPrincipalReportRefreshTask/index.html +23 -23
  225. package/app/m/reports/SmrtReportLock/index.html +23 -23
  226. package/app/m/reports/SmrtReportRefreshTask/index.html +23 -23
  227. package/app/m/reports/SmrtReportRun/index.html +23 -23
  228. package/app/m/reports/SmrtReportSchedule/index.html +23 -23
  229. package/app/m/reports/SmrtReportWatermark/index.html +23 -23
  230. package/app/m/sales/Agreement/index.html +23 -23
  231. package/app/m/sales/AttributionException/index.html +23 -23
  232. package/app/m/sales/AttributionPolicy/index.html +23 -23
  233. package/app/m/sales/Commission/index.html +23 -23
  234. package/app/m/sales/CommissionAdjustment/index.html +23 -23
  235. package/app/m/sales/CommissionPayout/index.html +23 -23
  236. package/app/m/sales/CommissionPlan/index.html +23 -23
  237. package/app/m/sales/Earner/index.html +23 -23
  238. package/app/m/sales/EarnerSourceAttribution/index.html +23 -23
  239. package/app/m/sales/EarningEvent/index.html +23 -23
  240. package/app/m/sales/ExecutedAgreement/index.html +23 -23
  241. package/app/m/sales/Lead/index.html +23 -23
  242. package/app/m/sales/Opportunity/index.html +23 -23
  243. package/app/m/sales/OpportunityConversion/index.html +23 -23
  244. package/app/m/sales/PipelineDefinition/index.html +23 -23
  245. package/app/m/sales/PipelineStage/index.html +23 -23
  246. package/app/m/sales/Referral/index.html +23 -23
  247. package/app/m/sales/ReferralAgreement/index.html +23 -23
  248. package/app/m/sales/ReferralLink/index.html +23 -23
  249. package/app/m/sales/ReferralProgram/index.html +23 -23
  250. package/app/m/sales/ReferralTermSnapshot/index.html +23 -23
  251. package/app/m/sales/ReferralTouch/index.html +23 -23
  252. package/app/m/sales/Referrer/index.html +23 -23
  253. package/app/m/sales/ReferrerIdentifier/index.html +23 -23
  254. package/app/m/sales/SalesActivity/index.html +23 -23
  255. package/app/m/sales/SalesRepresentative/index.html +23 -23
  256. package/app/m/sites/Site/index.html +23 -23
  257. package/app/m/sites/SiteAgentBinding/index.html +23 -23
  258. package/app/m/social/OAuthState/index.html +23 -23
  259. package/app/m/social/SocialAccount/index.html +23 -23
  260. package/app/m/social/SocialPost/index.html +23 -23
  261. package/app/m/social/SocialPostAnalyticsSnapshot/index.html +23 -23
  262. package/app/m/subscriptions/BillingAdjustment/index.html +23 -23
  263. package/app/m/subscriptions/ClientCharge/index.html +23 -23
  264. package/app/m/subscriptions/CreditGrant/index.html +23 -23
  265. package/app/m/subscriptions/PricingRule/index.html +23 -23
  266. package/app/m/subscriptions/RetailCharge/index.html +23 -23
  267. package/app/m/subscriptions/SpendingPolicy/index.html +23 -23
  268. package/app/m/subscriptions/SubscriptionPlan/index.html +23 -23
  269. package/app/m/subscriptions/SubscriptionPlanVersion/index.html +23 -23
  270. package/app/m/subscriptions/TenantSubscription/index.html +23 -23
  271. package/app/m/subscriptions/TenantUsageMetric/index.html +23 -23
  272. package/app/m/support/ServiceTimeEntry/index.html +23 -23
  273. package/app/m/support/SupportAiRun/index.html +23 -23
  274. package/app/m/support/SupportAvailability/index.html +23 -23
  275. package/app/m/support/SupportCase/index.html +23 -23
  276. package/app/m/support/SupportCaseEvent/index.html +23 -23
  277. package/app/m/support/SupportChannelBinding/index.html +23 -23
  278. package/app/m/support/SupportCharge/index.html +23 -23
  279. package/app/m/support/SupportCompensation/index.html +23 -23
  280. package/app/m/support/SupportCompensationPlan/index.html +23 -23
  281. package/app/m/support/SupportEscalation/index.html +23 -23
  282. package/app/m/support/SupportInteraction/index.html +23 -23
  283. package/app/m/support/SupportPlan/index.html +23 -23
  284. package/app/m/support/SupportPolicy/index.html +23 -23
  285. package/app/m/support/SupportQualification/index.html +23 -23
  286. package/app/m/support/SupportServiceTarget/index.html +23 -23
  287. package/app/m/support/SupportSpecialist/index.html +23 -23
  288. package/app/m/support/SupportWorkLink/index.html +23 -23
  289. package/app/m/tags/Tag/index.html +23 -23
  290. package/app/m/tags/TagAlias/index.html +23 -23
  291. package/app/m/timesheets/AttendanceBreak/index.html +23 -23
  292. package/app/m/timesheets/AttendancePunch/index.html +23 -23
  293. package/app/m/timesheets/AttendanceSegment/index.html +23 -23
  294. package/app/m/timesheets/ServiceChargeSnapshot/index.html +23 -23
  295. package/app/m/timesheets/ServiceCompensationSnapshot/index.html +23 -23
  296. package/app/m/timesheets/ServiceTimeEntry/index.html +23 -23
  297. package/app/m/users/Group/index.html +23 -23
  298. package/app/m/users/GroupMember/index.html +23 -23
  299. package/app/m/users/GroupRole/index.html +23 -23
  300. package/app/m/users/Membership/index.html +23 -23
  301. package/app/m/users/MembershipOverride/index.html +23 -23
  302. package/app/m/users/Permission/index.html +23 -23
  303. package/app/m/users/Role/index.html +23 -23
  304. package/app/m/users/RolePermission/index.html +23 -23
  305. package/app/m/users/Session/index.html +23 -23
  306. package/app/m/users/Tenant/index.html +23 -23
  307. package/app/m/users/TenantIntegration/index.html +23 -23
  308. package/app/m/users/TenantPermissionOverride/index.html +23 -23
  309. package/app/m/users/User/index.html +23 -23
  310. package/app/m/video/Character/index.html +23 -23
  311. package/app/m/video/CharacterAsset/index.html +23 -23
  312. package/app/m/video/CompositeJob/index.html +23 -23
  313. package/app/m/video/Performer/index.html +23 -23
  314. package/app/m/video/PerformerAsset/index.html +23 -23
  315. package/app/m/video/Scene/index.html +23 -23
  316. package/app/m/video/SceneAsset/index.html +23 -23
  317. package/app/m/video/VideoComposition/index.html +23 -23
  318. package/app/m/video/VideoCompositionAsset/index.html +23 -23
  319. package/app/m/video/VideoSequence/index.html +23 -23
  320. package/app/m/video/VideoSequenceAsset/index.html +23 -23
  321. package/app/m/video/VideoShot/index.html +23 -23
  322. package/app/m/video/VideoShotAsset/index.html +23 -23
  323. package/app/m/video/VideoShotCharacter/index.html +23 -23
  324. package/app/m/video/VideoWorkflow/index.html +23 -23
  325. package/app/m/voice/VoiceOutput/index.html +23 -23
  326. package/app/m/voice/VoiceProfile/index.html +23 -23
  327. package/app/m/voice/VoiceSample/index.html +23 -23
  328. package/app/mcp.html +2 -2
  329. package/app/packages/ads/index.html +21 -21
  330. package/app/packages/analytics/index.html +21 -21
  331. package/app/packages/approvals/index.html +21 -21
  332. package/app/packages/assets/index.html +21 -21
  333. package/app/packages/chat/index.html +21 -21
  334. package/app/packages/comments/index.html +21 -21
  335. package/app/packages/commerce/index.html +21 -21
  336. package/app/packages/content/index.html +21 -21
  337. package/app/packages/events/index.html +21 -21
  338. package/app/packages/expenses/index.html +22 -22
  339. package/app/packages/facts/index.html +21 -21
  340. package/app/packages/fields/index.html +21 -21
  341. package/app/packages/human-resources/index.html +21 -21
  342. package/app/packages/images/index.html +21 -21
  343. package/app/packages/index.html +21 -21
  344. package/app/packages/inference/index.html +82 -0
  345. package/app/packages/ingestion/index.html +21 -21
  346. package/app/packages/inventory/index.html +21 -21
  347. package/app/packages/ledgers/index.html +21 -21
  348. package/app/packages/manufacturing/index.html +21 -21
  349. package/app/packages/marketing/index.html +21 -21
  350. package/app/packages/messages/index.html +22 -22
  351. package/app/packages/places/index.html +21 -21
  352. package/app/packages/preferences/index.html +21 -21
  353. package/app/packages/products/index.html +21 -21
  354. package/app/packages/profiles/index.html +21 -21
  355. package/app/packages/projects/index.html +21 -21
  356. package/app/packages/properties/index.html +21 -21
  357. package/app/packages/reactions/index.html +21 -21
  358. package/app/packages/reports/index.html +21 -21
  359. package/app/packages/sales/index.html +21 -21
  360. package/app/packages/sites/index.html +21 -21
  361. package/app/packages/social/index.html +21 -21
  362. package/app/packages/subscriptions/index.html +21 -21
  363. package/app/packages/support/index.html +21 -21
  364. package/app/packages/tags/index.html +21 -21
  365. package/app/packages/timesheets/index.html +21 -21
  366. package/app/packages/users/index.html +21 -21
  367. package/app/packages/video/index.html +21 -21
  368. package/app/packages/voice/index.html +21 -21
  369. package/app/packages/webhooks/index.html +21 -21
  370. package/app/recipes/account-access/help/index.html +21 -21
  371. package/app/recipes/account-access/index.html +23 -23
  372. package/app/recipes/activity/help/index.html +21 -21
  373. package/app/recipes/activity/index.html +23 -23
  374. package/app/recipes/ads.campaigns/help/index.html +21 -21
  375. package/app/recipes/ads.campaigns/index.html +23 -23
  376. package/app/recipes/affiliates.referrals/help/index.html +21 -21
  377. package/app/recipes/affiliates.referrals/index.html +23 -23
  378. package/app/recipes/agreements/help/index.html +21 -21
  379. package/app/recipes/agreements/index.html +23 -23
  380. package/app/recipes/analytics.reports/help/index.html +21 -21
  381. package/app/recipes/analytics.reports/index.html +23 -23
  382. package/app/recipes/approvals.requests/help/index.html +21 -21
  383. package/app/recipes/approvals.requests/index.html +23 -23
  384. package/app/recipes/assets/help/index.html +21 -21
  385. package/app/recipes/assets/index.html +23 -23
  386. package/app/recipes/billing/help/index.html +21 -21
  387. package/app/recipes/billing/index.html +23 -23
  388. package/app/recipes/chat.assistant/help/index.html +21 -21
  389. package/app/recipes/chat.assistant/index.html +23 -23
  390. package/app/recipes/comments/help/index.html +21 -21
  391. package/app/recipes/comments/index.html +23 -23
  392. package/app/recipes/commerce.customers/help/index.html +21 -21
  393. package/app/recipes/commerce.customers/index.html +23 -23
  394. package/app/recipes/commerce.estimates/help/index.html +21 -21
  395. package/app/recipes/commerce.estimates/index.html +23 -23
  396. package/app/recipes/commerce.purchases/help/index.html +21 -21
  397. package/app/recipes/commerce.purchases/index.html +23 -23
  398. package/app/recipes/commerce.sales/help/index.html +21 -21
  399. package/app/recipes/commerce.sales/index.html +23 -23
  400. package/app/recipes/commerce.vendors/help/index.html +21 -21
  401. package/app/recipes/commerce.vendors/index.html +23 -23
  402. package/app/recipes/commerce.wholesale/help/index.html +21 -21
  403. package/app/recipes/commerce.wholesale/index.html +23 -23
  404. package/app/recipes/content.articles/help/index.html +21 -21
  405. package/app/recipes/content.articles/index.html +23 -23
  406. package/app/recipes/events.calendar/help/index.html +21 -21
  407. package/app/recipes/events.calendar/index.html +23 -23
  408. package/app/recipes/expenses.tracking/help/index.html +22 -22
  409. package/app/recipes/expenses.tracking/index.html +23 -23
  410. package/app/recipes/fields.form-customization/help/index.html +21 -21
  411. package/app/recipes/fields.form-customization/index.html +23 -23
  412. package/app/recipes/human-resources.people/help/index.html +21 -21
  413. package/app/recipes/human-resources.people/index.html +23 -23
  414. package/app/recipes/human-resources.qualifications/help/index.html +21 -21
  415. package/app/recipes/human-resources.qualifications/index.html +23 -23
  416. package/app/recipes/ingestion/help/index.html +21 -21
  417. package/app/recipes/ingestion/index.html +23 -23
  418. package/app/recipes/integrations/help/index.html +21 -21
  419. package/app/recipes/integrations/index.html +23 -23
  420. package/app/recipes/inventory.stock/help/index.html +21 -21
  421. package/app/recipes/inventory.stock/index.html +23 -23
  422. package/app/recipes/ledgers.bookkeeping/help/index.html +21 -21
  423. package/app/recipes/ledgers.bookkeeping/index.html +23 -23
  424. package/app/recipes/manufacturing.assemblies/help/index.html +21 -21
  425. package/app/recipes/manufacturing.assemblies/index.html +23 -23
  426. package/app/recipes/manufacturing.production/help/index.html +21 -21
  427. package/app/recipes/manufacturing.production/index.html +23 -23
  428. package/app/recipes/marketing.campaigns/help/index.html +21 -21
  429. package/app/recipes/marketing.campaigns/index.html +23 -23
  430. package/app/recipes/messages/help/index.html +22 -22
  431. package/app/recipes/messages/index.html +23 -23
  432. package/app/recipes/places.locations/help/index.html +21 -21
  433. package/app/recipes/places.locations/index.html +23 -23
  434. package/app/recipes/products/help/index.html +21 -21
  435. package/app/recipes/products/index.html +23 -23
  436. package/app/recipes/projects.tracker/help/index.html +21 -21
  437. package/app/recipes/projects.tracker/index.html +23 -23
  438. package/app/recipes/reports.materialized/help/index.html +21 -21
  439. package/app/recipes/reports.materialized/index.html +23 -23
  440. package/app/recipes/reports.runtime/help/index.html +21 -21
  441. package/app/recipes/reports.runtime/index.html +23 -23
  442. package/app/recipes/sales.pipeline/help/index.html +21 -21
  443. package/app/recipes/sales.pipeline/index.html +23 -23
  444. package/app/recipes/social.posts/help/index.html +21 -21
  445. package/app/recipes/social.posts/index.html +23 -23
  446. package/app/recipes/subscriptions.plans/help/index.html +21 -21
  447. package/app/recipes/subscriptions.plans/index.html +23 -23
  448. package/app/recipes/support.tickets/help/index.html +21 -21
  449. package/app/recipes/support.tickets/index.html +23 -23
  450. package/app/recipes/tags.taxonomy/help/index.html +21 -21
  451. package/app/recipes/tags.taxonomy/index.html +23 -23
  452. package/app/recipes/team-collaboration/help/index.html +21 -21
  453. package/app/recipes/team-collaboration/index.html +23 -23
  454. package/app/recipes/timesheets.time-entries/help/index.html +21 -21
  455. package/app/recipes/timesheets.time-entries/index.html +23 -23
  456. package/app/recipes/video.library/help/index.html +21 -21
  457. package/app/recipes/video.library/index.html +23 -23
  458. package/app/recipes/voice.profiles/help/index.html +21 -21
  459. package/app/recipes/voice.profiles/index.html +23 -23
  460. package/app/s/custom-accounts/index.html +19 -19
  461. package/app/s/custom-appointments/index.html +19 -19
  462. package/app/s/custom-billing/index.html +19 -19
  463. package/app/s/custom-bookings/index.html +19 -19
  464. package/app/s/custom-buying/index.html +19 -19
  465. package/app/s/custom-checkout/index.html +19 -19
  466. package/app/s/custom-classes/index.html +19 -19
  467. package/app/s/custom-clients/index.html +19 -19
  468. package/app/s/custom-events/index.html +19 -19
  469. package/app/s/custom-fleet/index.html +19 -19
  470. package/app/s/custom-gigs/index.html +19 -19
  471. package/app/s/custom-giving/index.html +19 -19
  472. package/app/s/custom-instruments/index.html +19 -19
  473. package/app/s/custom-jobs/index.html +19 -19
  474. package/app/s/custom-kitchen/index.html +19 -19
  475. package/app/s/custom-lessons/index.html +19 -19
  476. package/app/s/custom-material/index.html +19 -19
  477. package/app/s/custom-meetings/index.html +19 -19
  478. package/app/s/custom-members/index.html +19 -19
  479. package/app/s/custom-merch/index.html +19 -19
  480. package/app/s/custom-money/index.html +19 -19
  481. package/app/s/custom-paint/index.html +19 -19
  482. package/app/s/custom-parts/index.html +19 -19
  483. package/app/s/custom-rentals/index.html +19 -19
  484. package/app/s/custom-roastery/index.html +19 -19
  485. package/app/s/custom-schedule/index.html +19 -19
  486. package/app/s/custom-shelf/index.html +19 -19
  487. package/app/s/custom-shop/index.html +19 -19
  488. package/app/s/custom-students/index.html +19 -19
  489. package/app/s/custom-wholesale/index.html +19 -19
  490. package/app/s/custom-work/index.html +19 -19
  491. package/app/s/custom-yard/index.html +19 -19
  492. package/app/s/section-access-control/index.html +19 -19
  493. package/app/s/section-account-security/index.html +19 -19
  494. package/app/s/section-accounting/index.html +19 -19
  495. package/app/s/section-activity/index.html +19 -19
  496. package/app/s/section-agreements/index.html +19 -19
  497. package/app/s/section-analytics/index.html +19 -19
  498. package/app/s/section-approvals/index.html +19 -19
  499. package/app/s/section-assets/index.html +19 -19
  500. package/app/s/section-billing/index.html +19 -19
  501. package/app/s/section-calendar/index.html +19 -19
  502. package/app/s/section-catalog/index.html +19 -19
  503. package/app/s/section-chat.assistant/index.html +19 -19
  504. package/app/s/section-comments/index.html +19 -19
  505. package/app/s/section-fields.form-customization/index.html +19 -19
  506. package/app/s/section-grow/index.html +19 -19
  507. package/app/s/section-ingestion/index.html +19 -19
  508. package/app/s/section-integrations/index.html +19 -19
  509. package/app/s/section-make/index.html +19 -19
  510. package/app/s/section-messages/index.html +19 -19
  511. package/app/s/section-more/index.html +19 -19
  512. package/app/s/section-operations/index.html +19 -19
  513. package/app/s/section-places/index.html +19 -19
  514. package/app/s/section-projects/index.html +19 -19
  515. package/app/s/section-publish/index.html +19 -19
  516. package/app/s/section-purchasing/index.html +19 -19
  517. package/app/s/section-reports.materialized/index.html +19 -19
  518. package/app/s/section-reports.runtime/index.html +19 -19
  519. package/app/s/section-sales/index.html +19 -19
  520. package/app/s/section-staff/index.html +19 -19
  521. package/app/s/section-support/index.html +19 -19
  522. package/app/s/section-taxonomy/index.html +19 -19
  523. package/app/s/section-team/index.html +19 -19
  524. package/app/s/section-work/index.html +19 -19
  525. package/dist/catalog/catalog.json +679 -40
  526. package/dist/core/index.js +1172 -592
  527. package/dist/smrt-knowledge.okf.md +3 -2
  528. package/dist/smrt-version.d.ts +1 -1
  529. package/dist/smrt-version.js +1 -1
  530. package/package.json +56 -55
  531. package/app/_app/immutable/chunks/BiIR6hYE.js +0 -1
  532. package/app/_app/immutable/chunks/DYaOo5kp.js +0 -1
  533. package/app/_app/immutable/chunks/DmK2c-4s.js +0 -1
  534. package/app/_app/immutable/chunks/KYQTW01W.js +0 -29
  535. package/app/_app/immutable/entry/start.B9yIQ_AO.js +0 -1
@@ -0,0 +1,29 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./BGpjZKOE.js","./BaNbYf_w.js","./eBF8D7GD.js"])))=>i.map(i=>d[i]);
2
+ import{$ as e,B as t,Ct as n,Dt as r,E as i,Et as a,F as o,Ft as s,G as c,H as l,I as u,J as d,K as f,L as p,Lt as m,Mt as h,Ot as g,P as _,Pt as v,R as y,Rt as b,T as x,U as S,W as C,X as w,Y as T,Z as E,_ as D,_t as O,a as k,bt as A,ct as j,d as M,dt as N,f as P,ft as F,gt as I,ht as L,k as ee,kt as R,lt as te,mt as z,n as ne,nt as re,ot as B,pt as V,q as ie,rt as ae,st as H,tt as oe,v as U,vt as W,xt as se,yt as ce,z as G}from"./DG3qFFTE.js";import{t as le}from"./BaNbYf_w.js";import"./xihTtKlq.js";import{r as ue}from"./BLUInGBV.js";import{a as K,t as q}from"./Bq8E3AWP.js";import{B as de,Pt as fe,R as J,W as pe}from"./D-TD1e4P.js";import{n as Y}from"./DK8Blf1Y.js";import{C as me,S as X,b as he,x as ge}from"./Caow5nDc.js";import{n as _e,r as ve}from"./v8gneLl4.js";import{i as ye}from"./KyvWo5ZG.js";import{_ as be,b as xe,c as Se,d as Ce,g as we,h as Te,i as Ee,m as De,n as Oe,p as ke,s as Ae}from"./CGVkRTMI.js";import{n as je}from"./BW617Cdd.js";import{n as Me,r as Ne}from"./CsPuvW_W.js";import{c as Pe,t as Fe}from"./eBF8D7GD.js";import{_ as Ie,a as Le,g as Re,h as ze,l as Be,n as Ve,p as He,u as Ue}from"./DZWuoKFS.js";import{Q as Z,b as We,t as Ge}from"./CUH3ig_v.js";import{C as Ke,_ as qe,h as Je,i as Ye,m as Xe,o as Ze,r as Qe,t as $e,u as et}from"./DiVlkX9H.js";import{n as tt,t as nt}from"./C4P1kzl6.js";function rt(e,t){let n=t.trim();if(!n)return;let r=e.value,i=typeof document<`u`&&document.activeElement===e,a=e.selectionStart??r.length,o=e.selectionEnd??r.length;!i&&a===0&&o===0&&r.length>0&&(a=r.length,o=r.length);let s=r.slice(0,a),c=r.slice(o),l=`${s.length>0&&!/\s$/.test(s)?` `:``}${n}${/^[\p{L}\p{N}]/u.test(c)?` `:``}`;e.value=`${s}${l}${c}`;let u=s.length+l.length;try{e.setSelectionRange(u,u)}catch{}e.dispatchEvent(new Event(`input`,{bubbles:!0}))}function it(e){let t=e,n=null,r=null,i=0,a=0,o=null,s=!1,c=!1,l=null;function u(){n&&clearTimeout(n),n=null}function d(){u(),r=null,o=null,s=!1}function f(){n&&(d(),t.onCancel?.())}function p(e){let n=!t.filter||t.filter(e);return n?n===!0?e.target instanceof Element?e.target:null:n:null}function m(){c=!0,l&&clearTimeout(l),l=setTimeout(()=>{c=!1,l=null},400)}return{handlePointerDown(e){if(t.disabled||!e.isPrimary||e.pointerType===`mouse`&&e.button!==0)return;let c=p(e);if(!c)return;d(),r=e.pointerId,i=e.clientX,a=e.clientY,o={target:c,pointerType:e.pointerType||`mouse`,clientX:e.clientX,clientY:e.clientY},t.onPressStart?.(o);let l=o;n=setTimeout(()=>{n=null,s=!0,t.onLongPress(l)},t.delay??500)},handlePointerMove(e){if(!n||e.pointerId!==r)return;let o=t.moveTolerance??10;Math.hypot(e.clientX-i,e.clientY-a)>o&&f()},handlePointerUp(e){if(e.pointerId===r){if(n)f();else if(s&&o){let e=o;m(),d(),t.onRelease?.(e)}else d()}},handlePointerCancel(e){if(e.pointerId===r){if(n)f();else if(s&&o){let e=o;d(),t.onRelease?.(e)}else d()}},handleDragStart(){f()},handleContextMenu(e){t.preventContextMenu&&(n||s)&&e.preventDefault()},handleClick(e){c&&(c=!1,l&&clearTimeout(l),l=null,e.preventDefault(),e.stopPropagation())},cancel(){d()},update(e){t=e,e.disabled&&d()},get pending(){return n!==null},get fired(){return s}}}function at(e,t){let n=it(t),r=e=>n.handlePointerDown(e),i=e=>n.handlePointerMove(e),a=e=>n.handlePointerUp(e),o=e=>n.handlePointerCancel(e),s=()=>n.handleDragStart(),c=e=>n.handleContextMenu(e),l=e=>n.handleClick(e);return e.addEventListener(`pointerdown`,r),e.addEventListener(`dragstart`,s),e.addEventListener(`contextmenu`,c),e.addEventListener(`click`,l,!0),window.addEventListener(`pointermove`,i),window.addEventListener(`pointerup`,a),window.addEventListener(`pointercancel`,o),{update(e){n.update(e)},destroy(){n.cancel(),e.removeEventListener(`pointerdown`,r),e.removeEventListener(`dragstart`,s),e.removeEventListener(`contextmenu`,c),e.removeEventListener(`click`,l,!0),window.removeEventListener(`pointermove`,i),window.removeEventListener(`pointerup`,a),window.removeEventListener(`pointercancel`,o)}}}var ot=new WeakMap;async function st(e,t={}){let n=Math.max(0,t.quietMs??120),r=Math.max(0,t.timeoutMs??5e3),i=Date.now(),a=()=>Math.max(0,r-(Date.now()-i)),o=e=>new Promise(t=>setTimeout(t,e));for(;;){let n=ot.get(e);if(!n||n.size===0||t.signal?.aborted)break;let r=a();if(r===0)return;await Promise.race([Promise.all([...n]),o(r)])}t.signal?.aborted||a()===0||await new Promise(r=>{let i=null,o=[],s=()=>{i&&clearTimeout(i),clearTimeout(l);for(let e of o)e();t.signal?.removeEventListener(`abort`,s),r()},c=()=>{i&&clearTimeout(i),i=setTimeout(s,n)},l=setTimeout(s,a());t.signal?.addEventListener(`abort`,s,{once:!0}),o.push(e.subscribe(e=>{(e.type===`registered`||e.type===`unregistered`)&&c()}));for(let e of t.alsoWatch??[]){let t=e?.subscribe?.(()=>c());t&&o.push(t)}c()})}async function ct(e={}){let t=e.window??(typeof window<`u`?window:void 0),n=e.navigator??(typeof navigator<`u`?navigator:void 0);return!t||!(`SpeechRecognition`in t)&&!(`webkitSpeechRecognition`in t)?`missing`:n&&`brave`in n&&n.brave||/\bElectron\//.test(n?.userAgent??``)?`unreliable`:`works`}function lt(e){return new Worker(new URL(`../workers/local-speech.worker-BzGX7Qdn.js`,import.meta.url).href,{name:e?.name})}var ut=2**28,dt=16,ft=.95;function pt(e){if(e===0)return 1;let t=Math.PI*e;return Math.sin(t)/t}function mt(e,t,n){for(let[e,r]of[[`fromRate`,t],[`toRate`,n]])if(!Number.isFinite(r)||r<=0)throw new Pe(`invalid_argument`,`${e} must be a positive finite number (got ${String(r)})`);let r=Math.floor(e.length*n/t);if(r>ut)throw new Pe(`invalid_argument`,`resampled output would be ${r} samples; the limit is ${ut}`);if(t===n)return e.slice();let i=new Float32Array(r),a=t/n,o=a>1?ft/a:1,s=dt/o,c=e.length-1;for(let t=0;t<r;t+=1){let n=t*a,r=Math.max(0,Math.ceil(n-s)),l=Math.min(c,Math.floor(n+s)),u=0,d=0;for(let t=r;t<=l;t+=1){let r=t-n,i=.5+.5*Math.cos(Math.PI*r/s),a=o*pt(o*r)*i;u+=a*e[t],d+=a}i[t]=d===0?0:u/d}return i}var ht={silenceMs:800,minSpeechMs:150,preRollMs:300,maxUtteranceMs:3e4,sensitivity:.5,calibrateMs:300},gt=.0015,_t=.003,vt=.006,yt=.2,bt=.02,xt=2e3,St=250;function Ct(e,t,n){return Math.min(n,Math.max(t,e))}function wt(e={}){let t=(e,t,n)=>typeof e==`number`&&Number.isFinite(e)?Math.max(n,e):t;return{silenceMs:t(e.silenceMs,ht.silenceMs,20),minSpeechMs:t(e.minSpeechMs,ht.minSpeechMs,0),preRollMs:t(e.preRollMs,ht.preRollMs,0),maxUtteranceMs:t(e.maxUtteranceMs,ht.maxUtteranceMs,1e3),sensitivity:Ct(typeof e.sensitivity==`number`&&Number.isFinite(e.sensitivity)?e.sensitivity:ht.sensitivity,0,1),calibrateMs:t(e.calibrateMs,ht.calibrateMs,0)}}function Tt(e){let t=e.length;if(t===0)return 0;let n=0;for(let r=0;r<t;r++){let t=e[r];n+=t*t}return Math.sqrt(n/t)}function Et(e={}){let t=wt(e),n=6-4*t.sensitivity,r=.02-.015*t.sensitivity,i=_t,a=0,o=[],s=!1,c=0,l=0,u=0,d=()=>Math.max(i*n,r),f=()=>Math.max(d()*.6,i*1.5),p=()=>{s=!1,c=0,l=0,u=0};return{get speaking(){return s},get noiseFloor(){return i},get threshold(){return d()},push(e,n=20){let r=[],m=Number.isFinite(e)?Math.max(0,e):0,h=Ct(m/(d()*3),0,1),g=a<t.calibrateMs;if(g&&(a+=n,!s)){o.push(m);let e=[...o].sort((e,t)=>e-t);i=Ct(e[Math.min(e.length-1,Math.floor(e.length*yt))]??_t,gt,vt)}if(!s){if(m>d())c+=n,c>=t.minSpeechMs&&(s=!0,l=0,u=c,r.push({type:`start`,leadMs:t.preRollMs+c}),c=0);else if(g)c=0;else{c=0;let e=n/xt*(m<i?4:1);i=Ct(i+(m-i)*Math.min(1,e),gt,bt)}return{events:r,level:h,speaking:s}}return u+=n,m>f()?l=0:l+=n,l>=t.silenceMs?(r.push({type:`end`,reason:`silence`,trailingSilenceMs:l}),p()):u>=t.maxUtteranceMs&&(r.push({type:`split`}),u=0,l=0),{events:r,level:h,speaking:s}},flush(){let e=[];return s&&e.push({type:`end`,reason:`flush`,trailingSilenceMs:l}),p(),e}}}function Dt(e){let t=wt(e),n=Et(t),r=Math.max(1,Math.round(e.sampleRate*20/1e3)),i=r/e.sampleRate*1e3,a=Math.ceil((t.preRollMs+t.minSpeechMs)/i)+1,o=[],s=new Float32Array,c=null,l=!1,u=(t,n,r)=>{let a=Math.max(0,Math.floor((r-St)/i)),o=t.slice(0,Math.max(1,t.length-a)),s=0;for(let e of o)s+=e.length;let c=new Float32Array(s),l=0;for(let e of o)c.set(e,l),l+=e.length;e.onUtterance({pcm:c,sampleRate:e.sampleRate,durationMs:s/e.sampleRate*1e3,reason:n})},d=t=>{t!==l&&(l=t,e.onSpeaking?.(t))},f=s=>{let l=n.push(Tt(s),i);e.onLevel?.(l.level),o.push(s),o.length>a&&o.shift(),c&&c.push(s);for(let e of l.events)if(e.type===`start`){c=[...o];let e=Math.ceil(t.preRollMs/i),n=Math.max(0,o.length-Math.ceil(t.minSpeechMs/i));for(let t=n;t<e;t++)c.unshift(new Float32Array(r))}else if(e.type===`end`){let t=c??[];c=null,o.length=0,t.length>0&&u(t,e.reason,e.trailingSilenceMs)}else if(e.type===`split`){let e=c??[];c=[],e.length>0&&u(e,`max`,0)}d(n.speaking)};return{get speaking(){return n.speaking},segmenter:n,push(e){let t=e;s.length>0&&(t=new Float32Array(s.length+e.length),t.set(s,0),t.set(e,s.length));let n=0;for(;n+r<=t.length;)f(t.slice(n,n+r)),n+=r;s=t.slice(n)},flush(){let t=n.flush();for(let e of t)e.type===`end`&&c&&c.length>0&&u(c,`flush`,e.trailingSilenceMs);c=null,o.length=0,s=new Float32Array,d(!1),e.onLevel?.(0)},discard(){n.flush(),c=null,o.length=0,s=new Float32Array,d(!1),e.onLevel?.(0)}}}var Ot=44,kt=4294967295,At=1;function jt(e){let t=new Int16Array(e.length);for(let n=0;n<e.length;n+=1){let r=e[n];Number.isNaN(r)||(t[n]=Math.min(32767,Math.round((r>1?1:r<-1?-1:r)*32768)))}return t}function Mt(e,t){if(!Number.isInteger(e)||e<1||e*2>kt)throw new Pe(`invalid_argument`,`${t} must be a positive integer sample rate (got ${String(e)})`)}function Nt(e,t,n){for(let r=0;r<n.length;r+=1)e.setUint8(t+r,n.charCodeAt(r))}function Pt(e,t){Mt(t,`sampleRate`);let n=e.length*2;if(n+Ot-8>kt)throw new Pe(`invalid_argument`,`too many samples for a single WAV (4 GiB limit)`);let r=e instanceof Int16Array?e:jt(e),i=new Uint8Array(Ot+n),a=new DataView(i.buffer);Nt(a,0,`RIFF`),a.setUint32(4,36+n,!0),Nt(a,8,`WAVE`),Nt(a,12,`fmt `),a.setUint32(16,16,!0),a.setUint16(20,At,!0),a.setUint16(22,1,!0),a.setUint32(24,t,!0),a.setUint32(28,t*2,!0),a.setUint16(32,2,!0),a.setUint16(34,16,!0),Nt(a,36,`data`),a.setUint32(40,n,!0);for(let e=0;e<r.length;e+=1)a.setInt16(Ot+e*2,r[e],!0);return i}var Ft=`hv-pcm-tap`,It=`
3
+ class HvPcmTap extends AudioWorkletProcessor {
4
+ process(inputs) {
5
+ const channels = inputs[0];
6
+ if (channels && channels.length > 0 && channels[0].length > 0) {
7
+ const frames = channels[0].length;
8
+ const mono = new Float32Array(frames);
9
+ for (let c = 0; c < channels.length; c += 1) {
10
+ const data = channels[c];
11
+ for (let i = 0; i < frames; i += 1) mono[i] += data[i];
12
+ }
13
+ if (channels.length > 1) {
14
+ for (let i = 0; i < frames; i += 1) mono[i] /= channels.length;
15
+ }
16
+ this.port.postMessage(mono, [mono.buffer]);
17
+ }
18
+ return true;
19
+ }
20
+ }
21
+ registerProcessor('${Ft}', HvPcmTap);
22
+ `;function Lt(){return typeof AudioContext<`u`&&typeof AudioWorkletNode<`u`&&typeof Blob<`u`&&typeof URL<`u`&&typeof URL.createObjectURL==`function`}function Rt(e,t){let{sampleRate:n,maxDurationMs:r}=t;if(!Number.isInteger(n)||n<1)throw RangeError(`sampleRate must be a positive integer`);if(!Number.isFinite(r)||r<=0)throw RangeError(`maxDurationMs must be a positive number`);if(!Lt())throw new Fe(`unsupported`,`PCM capture needs AudioContext, AudioWorkletNode and Blob URLs`);let i=new AudioContext,a=Math.ceil(r/1e3*i.sampleRate),o=[],s=0,c=!1,l=!1,u=!1,d=!1,f,p,m,h,g=e=>{if(d)return;let n=e.data;if(t.onSamples?.(n,i.sampleRate),t.retain===!1)return;let r=a-s;n.length>r&&(n=n.subarray(0,Math.max(0,r)),c=!0),n.length>0&&(o.push(n),s+=n.length),s>=a&&!l&&(l=!0,t.onLimit?.())},_=()=>{if(f!==void 0){let e=f;f=void 0;try{URL.revokeObjectURL(e)}catch{}}},v=()=>{if(h)return h;d=!0,_(),m&&(m.port.onmessage=null);try{p?.disconnect(),m?.disconnect()}catch{}return h=(async()=>{try{i.state!==`closed`&&await i.close()}catch{}})(),h},y=(async()=>{f=URL.createObjectURL(new Blob([It],{type:`text/javascript`}));try{await i.audioWorklet.addModule(f)}finally{_()}d||(p=i.createMediaStreamSource(e),m=new AudioWorkletNode(i,Ft,{numberOfInputs:1,numberOfOutputs:1,outputChannelCount:[1]}),m.port.onmessage=g,p.connect(m),m.connect(i.destination),i.state===`suspended`&&await i.resume())})();y.catch(()=>void 0);let b;return{ready:y,stop(){return b??=(async()=>{try{await y}catch(e){throw await v(),new Fe(`setup_failed`,`PCM capture could not start`,e)}if(await v(),u)throw new Fe(`cancelled`,`PCM capture was cancelled`);let e=new Float32Array(s),t=0;for(let n of o.splice(0))e.set(n,t),t+=n.length;let r=mt(e,i.sampleRate,n);return{samples:r,wav:Pt(r,n),truncated:c}})(),b},cancel(){u||(u=!0,o.length=0,v())}}}var zt=16e3;function Bt(){return Lt()&&typeof navigator<`u`&&typeof navigator.mediaDevices?.getUserMedia==`function`}var Vt=36e5;async function Ht(e={}){let t=e.createCapture??Rt;if(!e.createCapture&&!Bt()&&!e.stream)throw new Fe(`unsupported`,`Hands-free capture needs the microphone API and Web Audio`);let n=!e.stream,r=e.stream??await navigator.mediaDevices.getUserMedia(e.constraints??{audio:{echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0}}),i={speechstart:new Set,speechend:new Set,level:new Set},a=(e,t)=>{for(let n of[...i[e]])try{n(t)}catch{}},o,s=!1,c=!1,l=0,u=Math.max(0,e.resumeGuardMs??350),d=()=>{if(n)for(let e of r.getTracks())e.stop()},f;try{f=t(r,{sampleRate:zt,maxDurationMs:Vt,retain:!1,onSamples:(t,n)=>{s||c||(l>0?l-=t.length/n*1e3:(o??=Dt({...e,sampleRate:n,onSpeaking:e=>{e&&a(`speechstart`,{})},onLevel:e=>a(`level`,{level:e}),onUtterance:e=>{let t=mt(e.pcm,e.sampleRate,zt);a(`speechend`,{samples:t,sampleRate:zt,durationMs:e.durationMs,reason:e.reason})}}),o.push(t)))}})}catch(e){throw d(),e}if(f.ready)try{await f.ready}catch(e){throw s=!0,f.cancel(),d(),new Fe(`setup_failed`,`Hands-free capture could not start`,e)}let p=async e=>{s||(e&&o?.flush(),s=!0,f.cancel(),d())};return{on(e,t){let n=i[e];return n.add(t),()=>{n.delete(t)}},get speaking(){return o?.speaking??!1},get suspended(){return c},suspend(){s||c||(c=!0,l=0,o?.discard(),a(`level`,{level:0}))},resume(){!s&&c&&(c=!1,l=u)},stop:()=>p(!0),cancel:()=>{p(!1)}}}var Ut=e=>{let t=null,n=!1,r=!1,i=!1;return{async start(){let a=await Ht({...e.vad,...e.constraints?{constraints:e.constraints}:{}});n||r?a.cancel():(t=a,i&&a.suspend(),a.on(`speechstart`,()=>e.onSpeaking?.(!0)),a.on(`level`,({level:t})=>e.onLevel?.(t)),a.on(`speechend`,t=>{e.onSpeaking?.(!1),e.onUtterance({pcm:t.samples,sampleRate:t.sampleRate,durationMs:t.durationMs,reason:t.reason})}))},suspend(){i=!0,t?.suspend(),e.onSpeaking?.(!1)},resume(){i=!1,t?.resume()},stop(){r=!0;let n=t;t=null,n?.stop().catch(t=>{e.onError?.(t instanceof Error?t:Error(String(t)))})},cancel(){n=!0,t?.cancel(),t=null}}};function Wt(e){return Ne({model:e,createWorker:()=>new lt,loadSpeech:()=>le(()=>import(`./BGpjZKOE.js`),__vite__mapDeps([0,1,2]),import.meta.url)})}var Gt=`Qwen3-1.7B-q4f16_1-MLC`,Kt=[{id:Gt,label:`Qwen3 1.7B (recommended)`,downloadMB:1100,vramMB:2037},{id:`Llama-3.2-1B-Instruct-q4f16_1-MLC`,label:`Llama 3.2 1B (smallest)`,downloadMB:700,vramMB:879},{id:`Qwen3-4B-q4f16_1-MLC`,label:`Qwen3 4B (smarter, larger)`,downloadMB:2300,vramMB:3432}];function qt(e){return Kt.find(t=>t.id===e)}function Jt(e){return e>=1e3?`about ${(e/1e3).toFixed(1)} GB`:`about ${e} MB`}function Yt(e){return e.label.replace(/\s*\(.*\)\s*$/,``)}var Xt=`Qwen3-4B-q4f16_1-MLC`;function Zt(e,t){return t>=e.vramMB*1e6*1.2}async function Qt(e=typeof navigator>`u`?void 0:navigator){try{return(await e?.gpu?.requestAdapter())?.limits?.maxBufferSize??0}catch{return 0}}function $t(e){return typeof e==`string`?e:e.filter(e=>e.type===`text`).map(e=>e.text).join(`
23
+ `)}var en=class extends Error{code;provider;model;retryable;constructor(e,t,n,r,i=!1){super(e),this.code=t,this.provider=n,this.model=r,this.retryable=i,this.name=`AIError`}},tn=class extends en{constructor(e,t){super(`Model not found: ${e}`,`MODEL_NOT_FOUND`,t,e,!1),this.name=`ModelNotFoundError`}},nn=class extends en{constructor(e,t){super(`Input exceeds maximum context length`,`CONTEXT_LENGTH_EXCEEDED`,e,t,!1),this.name=`ContextLengthError`}},rn=class extends en{constructor(e=`webllm`,t){super(t??`WebGPU is not available in this environment (navigator.gpu is missing); on-device inference cannot run.`,`WEBGPU_UNAVAILABLE`,e,void 0,!1),this.name=`WebGPUUnavailableError`}},an=class extends en{constructor(e){super("The webllm provider needs the optional peer dependency @mlc-ai/web-llm. Install it with `pnpm add @mlc-ai/web-llm` (or the npm/yarn equivalent).",`WEBLLM_PEER_MISSING`,`webllm`,void 0,!1),this.name=`WebLLMPeerMissingError`,e!==void 0&&(this.cause=e)}},on=/claude-(opus|sonnet|haiku|fable|mythos)-(\d+)(?:-(\d{1,2})(?!\d))?/i;function sn(e){let t=e?on.exec(e):null;if(t)return{family:t[1].toLowerCase(),major:Number(t[2]),minor:t[3]?Number(t[3]):0}}function cn(e,t,n){return e.major>t||e.major===t&&e.minor>=n}function ln(e){let t=sn(e);if(!t)return!1;switch(t.family){case`fable`:case`mythos`:return!0;case`haiku`:return t.major>=5;default:return cn(t,4,6)}}var un=12e4,dn=Object.freeze({maxOutputTokens:131072,defaultOutputTokens:4096,maxReasoningTokens:1024,maxImagesPerRequest:1,onExceeded:`error`});function fn(e,t,n){if(e===void 0)return t;if(!Number.isFinite(e)||e<=0)throw new en(`${n} must be a positive finite number`,`AI_LIMIT_INVALID`);return Math.trunc(e)}function pn(e){let t=e.generationLimits||{},n={maxOutputTokens:fn(t.maxOutputTokens,dn.maxOutputTokens,`generationLimits.maxOutputTokens`),defaultOutputTokens:Math.min(fn(t.defaultOutputTokens,dn.defaultOutputTokens,`generationLimits.defaultOutputTokens`),fn(t.maxOutputTokens,dn.maxOutputTokens,`generationLimits.maxOutputTokens`)),maxReasoningTokens:fn(t.maxReasoningTokens,dn.maxReasoningTokens,`generationLimits.maxReasoningTokens`),maxImagesPerRequest:fn(t.maxImagesPerRequest,dn.maxImagesPerRequest,`generationLimits.maxImagesPerRequest`),onExceeded:t.onExceeded||dn.onExceeded};if(![`error`,`clamp`].includes(n.onExceeded))throw new en(`generationLimits.onExceeded must be "error" or "clamp"`,`AI_LIMIT_INVALID`);return{...e,timeout:fn(e.timeout,un,`timeout`),maxRetries:(()=>{if(e.maxRetries===void 0)return 0;if(!Number.isFinite(e.maxRetries)||e.maxRetries<0)throw new en(`maxRetries must be a non-negative finite number`,`AI_LIMIT_INVALID`);return Math.trunc(e.maxRetries)})(),generationLimits:n}}function mn(e){switch(e){case!1:case`none`:return 0;case`minimal`:return 1024;case`low`:return 2048;case`medium`:return 4096;case`high`:return 8192;default:return}}function hn(e,t,n,r,i,a){if(!Number.isFinite(e)||e<0)throw new en(`${r} must be a non-negative finite number`,`AI_LIMIT_INVALID`,i,a);let o=Math.trunc(e);if(o<=t)return o;if(n===`clamp`)return t;throw new en(`${r} ${o} exceeds configured ceiling ${t}`,`AI_LIMIT_EXCEEDED`,i,a)}function gn(e,t,n,r){let i=pn(e).generationLimits,a=t.maxTokens??i.defaultOutputTokens??i.maxOutputTokens,o=t.thinkingLevel??e.thinkingLevel,s=t.reasoning!==void 0||o!==void 0||t.includeThoughts===!0,c=t.reasoning?.effort!==void 0&&t.reasoning.maxTokens===void 0&&ln(r),l=s?t.reasoning?.maxTokens??(c?0:void 0)??mn(t.reasoning?.effort??o)??i.maxReasoningTokens:0;return{...t,maxTokens:hn(a,i.maxOutputTokens,i.onExceeded,`maxTokens`,n,r),reasoning:{...t.reasoning,maxTokens:hn(l,i.maxReasoningTokens,i.onExceeded,`reasoning.maxTokens`,n,r),includeThoughts:t.reasoning?.includeThoughts??t.includeThoughts}}}function _n(e,t={}){let n=pn(e),r=fn(t.timeout,n.timeout,`timeout`),i=new AbortController,a=!1,o=()=>i.abort(t.signal?.reason);t.signal?.aborted?o():t.signal?.addEventListener(`abort`,o,{once:!0});let s=setTimeout(()=>{a=!0,i.abort(Error(`AI request timed out after ${r}ms`))},r);return{signal:i.signal,timeout:r,didTimeout:()=>a,cleanup:()=>{clearTimeout(s),t.signal?.removeEventListener(`abort`,o)}}}[...new Set([`getVideoGenerationJob`,`fetchVideoGenerationResult`,`cancelVideoGenerationJob`])];function vn(e,t,n,r,i,a,o){if(!e.onUsage)return;let s=e.usageTags,c=s||o?{...s,...o}:void 0;try{e.onUsage({provider:t,model:r,operation:n,usage:i,duration:Date.now()-a,timestamp:new Date,tags:c})}catch{}}var yn=`webllm`,bn=4096,xn={chat:!0,completion:!0,embeddings:!1,streaming:!0,functions:!0,vision:!1,fineTuning:!1,imageEmbeddings:!1,imageGeneration:!1,videoGeneration:!1,tts:!1,voiceCloning:!1,voiceDesign:!1,maxContextLength:bn,supportedOperations:[`chat`,`completion`,`streaming`,`functions`]},Sn=new WeakMap,Cn=new Map;async function wn(){try{let e=await le(()=>import(`./DL8aLXmX.js`),[],import.meta.url),t=typeof e?.CreateMLCEngine==`function`?e:e?.default;if(typeof t?.CreateMLCEngine!=`function`)throw Error(`@mlc-ai/web-llm did not export CreateMLCEngine`);return t}catch(e){throw new an(e)}}function Tn(){return!!globalThis.navigator?.gpu}function En(e){throw new en(`${e} is not supported by the webllm provider.`,`NOT_SUPPORTED`,yn)}function Dn(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}var On=class{options;explicitModel;factoryEngine;localEngines=new Map;constructor(e){this.explicitModel=e.defaultModel??e.model,this.options=pn({...e,defaultModel:this.explicitModel??`Llama-3.2-1B-Instruct-q4f16_1-MLC`})}async acquireEngine(e,t){let n=this.options.engine;if(n)return typeof n==`function`?(this.factoryEngine??=n().catch(e=>{throw this.factoryEngine=void 0,e}),Mn(this.factoryEngine,t)):n;if(!Tn())throw new rn(yn);let r=this.options.appConfig?this.localEngines:Cn,i=r.get(e);if(!i){let t=new Set,n={listeners:t,promise:this.createEngine(e,t)};n.promise.catch(()=>{r.get(e)===n&&r.delete(e)}),r.set(e,n),i=n}let a=this.options.onLoadProgress;a&&i.listeners.add(a);try{return await Mn(i.promise,t)}finally{a&&i.listeners.delete(a)}}async createEngine(e,t){return(await wn()).CreateMLCEngine(e,{...this.options.appConfig?{appConfig:this.options.appConfig}:{},initProgressCallback:e=>{for(let n of t)try{n(e)}catch{}}})}mapMessages(e){return e.map(e=>{if(e.role===`user`&&Array.isArray(e.content))return{role:`user`,content:e.content.map(e=>e.type===`text`?{type:`text`,text:e.text}:{type:`image_url`,image_url:{url:e.image_url.url}}),...e.name?{name:e.name}:{}};let t=$t(e.content);return e.role===`tool`||e.role===`function`?{role:`tool`,content:t,tool_call_id:e.tool_call_id??e.name??``}:e.role===`assistant`?Dn({role:`assistant`,content:t||(e.tool_calls?.length?null:``),tool_calls:e.tool_calls?.map(e=>({id:e.id,type:e.type,function:{name:e.function.name,arguments:e.function.arguments}}))}):{role:e.role,content:t,...e.name?{name:e.name}:{}}})}mapResponseFormat(e){return e.responseSchema===void 0?e.responseFormat?.type===`json_object`?{type:`json_object`}:void 0:{type:`json_object`,schema:typeof e.responseSchema==`string`?e.responseSchema:JSON.stringify(e.responseSchema)}}buildRequest(e,t,n,r,i){let a=i&&t.tools?.length?t.tools.map(e=>({type:`function`,function:{name:e.function.name,description:e.function.description,parameters:e.function.parameters}})):void 0;return Dn({model:n,messages:this.mapMessages(e),max_tokens:t.maxTokens,temperature:t.temperature,top_p:t.topP,n:t.n,stop:t.stop,frequency_penalty:t.frequencyPenalty,presence_penalty:t.presencePenalty,seed:t.seed,tools:a,tool_choice:a?t.toolChoice:void 0,response_format:this.mapResponseFormat(t),stream:r,stream_options:r?{include_usage:!0}:void 0})}requestModel(e,t){return this.options.engine?t.model??this.explicitModel:e}mapUsage(e){let t=e;if(t)return{promptTokens:t.prompt_tokens??0,completionTokens:t.completion_tokens??0,totalTokens:t.total_tokens??0}}mapFinishReason(e){switch(e){case`length`:return`length`;case`tool_calls`:return`tool_calls`;default:return`stop`}}assertNotInterrupted(e,t){if(e===`abort`)throw new en(`Generation was interrupted before it finished`,`AI_INTERRUPTED`,yn,t,!0)}mapError(e,t){if(e instanceof en)return e;let n=e?.name??``,r=e instanceof Error?e.message:String(e);if(n===`WebGPUNotAvailableError`||n===`WebGPUNotFoundError`)return new rn(yn,r);if(n===`ContextWindowSizeExceededError`||n===`PrefillChunkSizeSmallerThanImageError`)return new nn(yn,t);if(n===`ModelNotFoundError`||n===`SpecifiedModelNotFoundError`||n===`UnsupportedModelIdError`||n===`ModelNotLoadedError`)return new tn(t??r,yn);let i=new en(r,n===`DeviceLostError`?`WEBGPU_DEVICE_LOST`:`API_ERROR`,yn,t);return i.cause=e,i}abortError(e,t,n){if(e?.didTimeout())return new en(`AI request timed out after ${e.timeout}ms`,`AI_TIMEOUT`,yn,n);if(t.signal?.aborted)return new en(`AI request aborted by caller`,`AI_ABORTED`,yn,n)}async lockEngine(e,t){let n=Sn.get(e)??Promise.resolve(),r=()=>{},i=new Promise(e=>{r=e});Sn.set(e,n.then(()=>i));try{await Mn(n,t)}catch(e){throw r(),e}return r}bindInterrupt(e,t){let n=()=>{try{Promise.resolve(e.interruptGenerate()).catch(()=>{})}catch{}};return t.aborted&&n(),t.addEventListener(`abort`,n,{once:!0}),()=>t.removeEventListener(`abort`,n)}async chat(e,t={}){let n=Date.now(),r,i,a,o,s,c=t.model||this.options.defaultModel||`Llama-3.2-1B-Instruct-q4f16_1-MLC`;try{t=gn(this.options,t,yn,c);let l=await this.acquireEngine(c,t.signal);r=_n(this.options,t),a=await this.lockEngine(l,r.signal),i=this.bindInterrupt(l,r.signal),o=l.chat.completions.create(this.buildRequest(e,t,this.requestModel(c,t),!1,!0));let u=o,d=!1,f=()=>{d=!0};u.then(f,f),s=()=>d?void 0:u;let p=await Mn(o,r.signal);if(r.signal.aborted)throw this.abortError(r,t,c)??r.signal.reason;let m=p?.choices?.[0];if(this.assertNotInterrupted(m?.finish_reason,c),!m)throw new en(`No choices returned from webllm`,`NO_CHOICES`,yn);let h=this.mapUsage(p.usage);vn(this.options,yn,`chat`,p.model||c,h,n,t.usageTags);let g=m.message?.tool_calls?.map(e=>({id:e.id,type:`function`,function:{name:e.function.name,arguments:e.function.arguments}}));return{content:m.message?.content||``,usage:h,model:p.model||c,finishReason:this.mapFinishReason(m.finish_reason),...g?.length?{toolCalls:g}:{}}}catch(e){throw this.abortError(r,t,c)??this.mapError(e,c)}finally{i?.(),An(a,s?.()),r?.cleanup()}}async complete(e,t={}){return this.chat([{role:`user`,content:e}],{model:t.model,maxTokens:t.maxTokens,temperature:t.temperature,topP:t.topP,n:t.n,stop:t.stop,stream:t.stream,onProgress:t.onProgress,signal:t.signal,timeout:t.timeout,reasoning:t.reasoning,usageTags:t.usageTags,continueOnLength:t.continueOnLength})}async message(e,t={}){let n=[...t.history||[],{role:t.role||`user`,content:e}];return(await this.chat(n,{model:t.model,maxTokens:t.maxTokens,temperature:t.temperature,topP:t.topP,stop:t.stop,stream:t.stream,frequencyPenalty:t.frequencyPenalty,presencePenalty:t.presencePenalty,responseFormat:t.responseFormat,responseSchema:t.responseSchema,seed:t.seed,tools:t.tools,toolChoice:t.toolChoice,onProgress:t.onProgress,signal:t.signal,timeout:t.timeout,reasoning:t.reasoning,usageTags:t.usageTags,continueOnLength:t.continueOnLength})).content}async*stream(e,t={}){let n=Date.now(),r,i,a,o,s,c=!1,l,u=t.model||this.options.defaultModel||`Llama-3.2-1B-Instruct-q4f16_1-MLC`;try{t=gn(this.options,t,yn,u),a=await this.acquireEngine(u,t.signal),r=_n(this.options,t),o=await this.lockEngine(a,r.signal),i=this.bindInterrupt(a,r.signal);let d=a.chat.completions.create(this.buildRequest(e,t,this.requestModel(u,t),!0,!1)),f;try{f=await Mn(d,r.signal)}catch(e){throw l=d.then(e=>jn(e[Symbol.asyncIterator](),a),()=>{}),e}s=f[Symbol.asyncIterator]();let p,m;for(;;){let e=await s.next();if(e.done){c=!0;break}let n=e.value,r=n.choices?.[0];p=r?.finish_reason??p,n.usage&&(m=this.mapUsage(n.usage));let i=r?.delta?.content;i&&(t.onProgress?.(i),yield i)}if(r.signal.aborted)throw this.abortError(r,t,u)??r.signal.reason;this.assertNotInterrupted(p,u),t.onFinishReason?.(this.mapFinishReason(p)),vn(this.options,yn,`stream`,u,m,n,t.usageTags)}catch(e){throw this.abortError(r,t,u)??this.mapError(e,u)}finally{if(s&&!c&&a){try{Promise.resolve(a.interruptGenerate()).catch(()=>{})}catch{}await kn(s)}i?.(),An(o,l),r?.cleanup()}}async countTokens(e){return Math.ceil(e.length/4)}async getModels(){let e=await wn(),t=this.options.appConfig?.model_list??e.prebuiltAppConfig.model_list,n=new Set(e.functionCallingModelIds??[]);return t.filter(e=>e.model_type!==1).map(e=>{let t=e.model_type===2,r=n.has(e.model_id);return{id:e.model_id,name:e.model_id,description:e.vram_required_MB?`Runs on-device via WebGPU (~${Math.round(e.vram_required_MB)} MB VRAM)`:`Runs on-device via WebGPU`,contextLength:e.overrides?.context_window_size??bn,capabilities:[`text`,`chat`,...r?[`functions`]:[],...t?[`vision`]:[]],supportsFunctions:r,supportsVision:t}})}async getCapabilities(){return{...xn}}async embed(e,t={}){return En(`Embeddings`)}async embedImage(e,t={}){return En(`Image embeddings`)}async describeImage(e,t,n={}){return En(`Image description`)}async generateImage(e,t={}){return En(`Image generation`)}async submitVideoGenerationJob(e){return En(`Video generation`)}async getVideoGenerationJob(e){return En(`Video generation`)}async fetchVideoGenerationResult(e){return En(`Video generation`)}async cancelVideoGenerationJob(e){return En(`Video generation`)}async validateVideoGenerationAccess(){return En(`Video generation`)}async synthesizeSpeech(e,t){return En(`Text-to-speech`)}streamSpeech(e,t){let n=new en(`Text-to-speech streaming is not supported by the webllm provider.`,`NOT_SUPPORTED`,yn);return{[Symbol.asyncIterator]:()=>({next:()=>Promise.reject(n)})}}async cloneVoice(e){return En(`Voice cloning`)}async designVoice(e){return En(`Voice design`)}async getVoices(e){return En(`Voice listing`)}};async function kn(e){try{for(;!(await e.next()).done;);}catch{}}function An(e,t){e&&(t?t.then(e,e):e())}async function jn(e,t){try{if((await e.next()).done)return;await Promise.resolve(t?.interruptGenerate())}catch{return}await kn(e)}function Mn(e,t){return t?t.aborted?Promise.reject(new en(`AI request aborted by caller`,`AI_ABORTED`,yn)):new Promise((n,r)=>{let i=()=>r(new en(`AI request aborted by caller`,`AI_ABORTED`,yn));t.addEventListener(`abort`,i,{once:!0}),e.then(e=>{t.removeEventListener(`abort`,i),n(e)},e=>{t.removeEventListener(`abort`,i),r(e)})}):e}var Nn={createWorker:()=>new Worker(new URL(new URL(`../workers/llm.worker-BYu-MLm1.js`,import.meta.url).href,``+import.meta.url),{type:`module`}),createEngine:async(e,t,n)=>{let{CreateWebWorkerMLCEngine:r}=await le(async()=>{let{CreateWebWorkerMLCEngine:e}=await import(`./DL8aLXmX.js`);return{CreateWebWorkerMLCEngine:e}},[],import.meta.url);return r(e,t,{initProgressCallback:e=>n(e)})}};async function Pn(e,t,n,r=Nn){if(n?.aborted)throw new DOMException(`Cancelled`,`AbortError`);let i=r.createWorker(),a=()=>i.terminate(),o,s=new Promise((e,t)=>{o=()=>{a(),t(new DOMException(`Cancelled`,`AbortError`))},n?.addEventListener(`abort`,o,{once:!0})});try{return{engine:await Promise.race([r.createEngine(i,e,t),s]),dispose:a}}catch(e){throw a(),e}finally{o&&n?.removeEventListener(`abort`,o)}}var Fn=e=>!!e&&typeof e==`object`&&e.kind===`cookbook-offer`&&typeof e.offerId==`string`,In=class{find;#e=A(I({}));get offers(){return e(this.#e)}set offers(e){W(this.#e,e,!0)}applier=null;counter=0;constructor(e){this.find=e}pending(){return Object.values(this.offers).find(e=>e.status===`pending`)}engaged(){return Object.values(this.offers).some(e=>e.status===`pending`||e.status===`applied`)}offer(e){let t=this.pending();if(t?.cookbookId===e)return null;t&&(t.status=`replaced`);let n=`offer-${++this.counter}`;return this.offers[n]={id:n,cookbookId:e,status:`pending`,error:``},{kind:`cookbook-offer`,offerId:n}}accept(e){let t=this.offers[e];if(t?.status!==`pending`)return;let n=this.find(t.cookbookId),r=n?this.applier?this.applier(n):`Not ready yet.`:`Unknown cookbook.`;r||!n?(t.status=`failed`,t.error=r??`Could not set it up.`):t.status=`applied`}decline(e){let t=this.offers[e];t?.status===`pending`&&(t.status=`declined`)}},Ln=`smrt-planner:assistant:v1`;function Rn(){return{modelId:Gt,consented:[]}}function zn(e){let t=Rn();try{let n=e?.getItem(Ln);if(!n)return t;let r=JSON.parse(n);typeof r.modelId==`string`&&qt(r.modelId)&&(t.modelId=r.modelId),Array.isArray(r.consented)&&(t.consented=r.consented.filter(e=>typeof e==`string`&&!!qt(e)))}catch{}return t}function Bn(e,t){try{e?.setItem(Ln,JSON.stringify(t))}catch{}}var Vn=e=>!!e&&typeof e==`object`&&e.kind===`theme-undo`&&typeof e.undoId==`string`,Hn=class{store;controller;#e=A(I({}));get undos(){return e(this.#e)}set undos(e){W(this.#e,e,!0)}counter=0;constructor(e,t){this.store=e,this.controller=t}record(e,t){let n=`theme-undo-${++this.counter}`;return this.undos[n]={id:n,previous:e?structuredClone(h(e)):void 0,status:`available`,...t?{commandUndoId:t}:{}},{kind:`theme-undo`,undoId:n}}undo(e){let t=this.undos[e];t?.status===`available`&&(t.commandUndoId&&this.controller?.run({name:`undo`,input:{undoId:t.commandUndoId}}).ok||this.store.write(t.previous),t.status=`undone`)}},Un={name:`@happyvertical/smrt-chat`,displayName:`Chat`,description:`Real-time chat rooms, DMs, threads, and agent conversations`,uiSlots:{"chat-layout":{id:`chat-layout`,label:`Chat Layout`,description:`Discord/Slack-style chat layout with sidebar`,icon:`message-square`,category:`display`,order:1,propsInterface:`ChatLayoutProps`},"room-list":{id:`room-list`,label:`Room List`,description:`Sidebar room navigation with unread badges`,icon:`list`,category:`list`,order:2,propsInterface:`RoomListProps`},"message-list":{id:`message-list`,label:`Message List`,description:`Scrollable chat message feed`,icon:`message-circle`,category:`list`,order:3,propsInterface:`MessageListProps`},"message-input":{id:`message-input`,label:`Message Input`,description:`Chat message input with attachments`,icon:`edit-2`,category:`form`,order:4,propsInterface:`MessageInputProps`},"chat-tabs":{id:`chat-tabs`,label:`Chat Tabs`,description:`Facebook-style expandable chat tabs`,icon:`columns`,category:`display`,order:5,propsInterface:`ChatTabsProps`},"agent-chat":{id:`agent-chat`,label:`Agent Chat`,description:`Full agent conversation interface`,icon:`bot`,category:`display`,order:6,propsInterface:`AgentChatProps`},"thread-panel":{id:`thread-panel`,label:`Thread Panel`,description:`Threaded conversation side panel`,icon:`git-branch`,category:`display`,order:7,propsInterface:`ThreadPanelProps`}},models:[`ChatRoom`,`ChatThread`,`ChatMessage`,`ChatParticipant`,`ChatReaction`,`AgentSession`,`VoiceSession`],collections:[`ChatRoomCollection`,`ChatThreadCollection`,`ChatMessageCollection`,`ChatParticipantCollection`,`ChatReactionCollection`,`AgentSessionCollection`,`VoiceSessionCollection`]},Q=K({"chat.character_conversation.saved_conversation":`Saved character conversation`,"chat.character_conversation.saved_character":`Saved photographic character`,"chat.character_conversation.listening_notice":`Listening mode keeps the conversation and confirmations active while hiding message history.`,"chat.character_conversation.voice_input":`Voice input`,"chat.character_conversation.speak":`Speak to your assistant`,"chat.character_conversation.unavailable":`Speech input is unavailable. Type your message below.`,"chat.character_conversation.message":`Type your message`,"chat.character_conversation.send":`Send message`,"chat.character_conversation.assistant_reply":`Assistant reply`,"chat.character_conversation.speech_failed":`Could not play the spoken reply. The reply is shown below.`,"chat.caption_overlay.scroll_up":`Scroll captions up`,"chat.caption_overlay.scroll_down":`Scroll captions down`,"chat.agent_chat.conversation":`Agent conversation`,"chat.agent_chat.inactive_notice":`Session {status}. Cannot send messages.`,"chat.agent_chat.input_placeholder":`Ask the AI to write or edit content...`,"chat.agent_chat.message_input":`Message input`,"chat.agent_chat.send_message":`Send message`,"chat.agent_chat.messages":`Conversation messages`,"chat.agent_chat.updated_fields":`✓ Updated {count} field{plural}`,"chat.agent_chat.empty":`Ask the AI to write or edit your content`,"chat.agent_chat.field_changes":`Field Changes`,"chat.agent_selector.select_an_agent":`Select an agent`,"chat.agent_selector.title":`Choose an Agent`,"chat.agent_selector.available_agents":`Available agents`,"chat.agent_selector.empty":`No agents available`,"chat.agent_session_panel.sessions":`Agent sessions`,"chat.agent_session_panel.new_session":`New session`,"chat.agent_session_panel.session_list":`Session list`,"chat.agent_session_panel.empty":`No sessions yet`,"chat.tool_call_display.tool_call":`Tool call: {toolName}`,"chat.tool_call_display.running":`Running`,"chat.tool_call_display.applied_successfully":`Change applied successfully.`,"chat.tool_call_display.confirm":`Confirm`,"chat.tool_call_display.reject":`Reject`,"chat.model_picker.label":`Model`,"chat.assistant_composer.attach_files":`Attach files`,"chat.assistant_composer.message_label":`Message`,"chat.assistant_composer.send":`Send`,"chat.assistant_composer.remove_attachment":`Remove {name}`,"chat.assistant_composer.send_error":`Could not send: {message}`,"chat.assistant_composer.send_failed":`Send failed`,"chat.assistant_composer.upload_error":`Could not attach file: {message}`,"chat.assistant_composer.upload_failed":`Attachment failed`,"chat.assistant_thread_list.conversations_label":`Assistant conversations`,"chat.assistant_thread_list.new_conversation":`+ New conversation`,"chat.assistant_thread_list.untitled":`Untitled`,"chat.floating_assistant.collapse":`Collapse assistant`,"chat.floating_assistant.close":`Close`,"chat.assistant_dock.conversation_starters":`Conversation starters`,"chat.assistant_dock.no_surfaces":`Nothing on this page can be changed from the chat. You can still ask questions.`,"chat.assistant_dock.loading_conversations":`Loading conversations…`,"chat.assistant_dock.choose_conversation":`Choose a conversation`,"chat.assistant_dock.choose_conversation_hint":`Select a conversation to start chatting with the assistant.`,"chat.assistant_dock.view_conversations":`View conversations`,"chat.assistant_question.submit":`Continue`,"chat.assistant_question.choose":`Choose…`,"chat.assistant_dock.start_conversation":`Start a conversation`,"chat.assistant_dock.start_conversation_hint":`Create a conversation to start chatting with the assistant.`,"chat.assistant_dock.start_new_conversation":`Create conversation`,"chat.assistant_dock.no_conversations":`No conversations available`,"chat.assistant_dock.no_conversations_hint":`There is not a conversation available for this workspace yet.`,"chat.assistant_dock.stop":`Stop`,"chat.assistant_dock.tool_request_title":`The assistant wants to do this:`,"chat.assistant_dock.choices_pick":`Pick one to use it.`,"chat.assistant_dock.choices_none":`None of these`,"chat.assistant_dock.choices_applying":`Using your pick…`,"chat.assistant_dock.choices_applied":`Used: {label}`,"chat.assistant_dock.choices_failed":`That did not work: {message}. Pick again.`,"chat.assistant_dock.choices_making":`Making…`,"chat.assistant_dock.choices_unavailable":`That could not be made: {message}`,"chat.assistant_dock.tool_request_allow":`Allow`,"chat.assistant_dock.tool_request_decline":`Don't allow`,"chat.assistant_dock.tool_request_destructive":`This can't be undone.`,"chat.assistant_dock.tool_request_details":`Details`,"chat.assistant_dock.steps_label":`What the assistant did`,"chat.assistant_dock.reply_in_progress":`Reply in progress`,"chat.assistant_dock.taking_longer":`The assistant is taking longer than expected.`,"chat.assistant_dock.retry":`Retry "{content}"`,"chat.assistant_dock.error":`Something went wrong: {message}`,"chat.ai_unavailable.off":`AI is off.`,"chat.ai_unavailable.unconfigured":`AI is not set up yet.`,"chat.ai_unavailable.entitlement":`AI is not included in your plan.`,"chat.ai_unavailable.capability":`The configured AI model cannot do this.`,"chat.ai_unavailable.open_settings":`Open AI settings`,"chat.assistant_dock.send_failed":`A message failed to send. You can retry it below.`,"chat.assistant_dock.attachments":`Attachments`,"chat.assistant_dock.conversations_toggle":`Conversations`,"chat.assistant_dock.opening_conversation":`Opening the assistant…`,"chat.assistant_dock.retry_conversation":`Try again`,"chat.assistant_dock.clear_conversation":`Clear conversation`,"chat.assistant_dock.action_outcome_unknown":`We couldn't confirm whether this change was applied. Checking again is safe: it resends the same request, so the change can't be applied twice.`,"chat.assistant_dock.action_check_again":`Check again`,"chat.room_create_dialog.close":`Close room creation dialog`,"chat.room_create_dialog.title":`Create a Room`,"chat.room_create_dialog.room_name":`Room Name`,"chat.room_create_dialog.required":`required`,"chat.room_create_dialog.name_placeholder":`e.g. general, project-updates`,"chat.room_create_dialog.room_type":`Room Type`,"chat.room_create_dialog.description_placeholder":`What is this room about?`,"chat.room_create_dialog.create_room":`Create Room`,"chat.search_messages.search":`Search messages`,"chat.search_messages.title":`Search Messages`,"chat.search_messages.close":`Close search`,"chat.search_messages.input_placeholder":`Search messages...`,"chat.search_messages.query":`Search query`,"chat.search_messages.clear":`Clear search`,"chat.search_messages.results":`Search results`,"chat.search_messages.results_count":`{count} result{plural} found`,"chat.search_messages.no_results":`No messages found for "{query}"`,"chat.search_messages.no_results_hint":`Try different keywords or check your spelling`,"chat.search_messages.empty":`Enter a search term to find messages`,"chat.file_upload.preview":`Files to upload`,"chat.file_upload.remove":`Remove {name}`,"chat.file_upload.upload_files":`Upload {count} file{plural}`,"chat.file_upload.disabled":`Upload disabled`,"chat.file_upload.drop_files":`Drop files here or click to browse`,"chat.file_upload.max_size":`Max {size} per file`,"chat.mention_autocomplete.suggestions":`Mention suggestions`,"chat.reaction_picker.reactions":`Emoji reactions`,"chat.reaction_picker.react_with":`React with {emoji}`,"chat.read_receipts.read_status":`{readCount} of {total} read`});function Wn(t,r){let i=k(r,`size`,3,`md`),a=n(()=>r.onlineStatus===`dnd`?`busy`:r.onlineStatus);fe(t,{get name(){return r.name},get src(){return r.avatarUrl},get size(){return i()},get status(){return e(a)}})}function Gn(e){if(!e)return[];let t=/```(json|markdown)[ \t]*\r?\n([\s\S]*?)```/gi,n=[],r=0,i=t.exec(e);for(;i!==null;){i.index>r&&n.push({type:`text`,content:e.slice(r,i.index)});let a=i[1].toLowerCase(),o=i[2].trim();if(a===`json`)try{let e=JSON.parse(o);e.fields&&typeof e.fields==`object`?n.push({type:`fields`,fields:e.fields}):n.push({type:`text`,content:i[0]})}catch{n.push({type:`text`,content:i[0]})}else n.push({type:`markdown`,content:o});r=t.lastIndex,i=t.exec(e)}return r<e.length&&n.push({type:`text`,content:e.slice(r)}),n}var Kn=c(`<span class="tool-call__duration svelte-rtpofh"> </span>`),qn=c(`<div class="tool-call__section svelte-rtpofh"><span class="tool-call__section-label svelte-rtpofh">Arguments</span> <pre class="tool-call__json svelte-rtpofh"> </pre></div>`),Jn=c(`<div class="tool-call__section svelte-rtpofh"><span class="tool-call__section-label svelte-rtpofh">Result</span> <pre class="tool-call__json tool-call__json--result svelte-rtpofh"> </pre></div>`),Yn=c(`<div class="tool-call__section svelte-rtpofh"><span class="tool-call__section-label svelte-rtpofh">Error</span> <pre class="tool-call__json tool-call__json--error svelte-rtpofh"> </pre></div>`),Xn=c(`<div class="tool-call__running svelte-rtpofh"><div class="tool-call__spinner svelte-rtpofh"></div> <span class="svelte-rtpofh">Executing...</span></div>`),Zn=c(`<pre class="tool-call__json svelte-rtpofh"> </pre>`),Qn=c(`<p class="tool-call__applied-fallback svelte-rtpofh"> </p>`),$n=c(`<div class="tool-call__data-surface-action-buttons svelte-rtpofh"><!> <!></div>`),er=c(`<!> <!>`,1),tr=c(`<pre class="tool-call__json tool-call__json--error svelte-rtpofh"> </pre>`),nr=c(`<div class="tool-call__section tool-call__data-surface-action svelte-rtpofh"><span class="tool-call__section-label svelte-rtpofh"> </span> <!></div>`),rr=c(`<div class="tool-call__body svelte-rtpofh"><!> <!> <!> <!> <!></div>`),ir=c(`<div data-smrt-component="ToolCallDisplay"><button class="tool-call__header svelte-rtpofh" type="button"><div class="tool-call__status-dot svelte-rtpofh"></div> <span class="tool-call__name svelte-rtpofh"> </span> <div class="tool-call__header-right svelte-rtpofh"><!> <span class="tool-call__status-label svelte-rtpofh"> </span> <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6z" class="svelte-rtpofh"></path></svg></div></button> <!></div>`);function ar(a,o){g(o,!0);let{t:c}=q(),u=n(()=>o.actionResult?o.actionResult.ok?o.actionResult.phase===`preview`?`awaiting-confirmation`:`applied`:`error`:o.toolCall.status),f=A(null),p=n(()=>e(u)===`awaiting-confirmation`||e(u)===`applied`||o.toolCall.status===`running`||!!o.actionResult&&e(u)===`error`),m=n(()=>e(f)??e(p)),h=n(()=>{switch(e(u)){case`pending`:return`Pending`;case`running`:return`Running`;case`success`:return`Completed`;case`error`:return o.actionResult?`Failed`:`Error`;case`awaiting-confirmation`:return`Awaiting confirmation`;case`applied`:return`Applied`;default:return e(u)}});function _(e){try{return JSON.stringify(e,null,2)}catch{return String(e)}}function y(e){return e===void 0?``:e<1e3?`${e}ms`:`${(e/1e3).toFixed(1)}s`}var b=ir(),x=F(b),C=F(x),T=L(C,2),E=z(T,!0),D=L(T,2),O=F(D),k=e=>{var t=Kn(),n=z(t,!0);H(e=>l(n,e),[()=>y(o.toolCall.duration)]),S(e,t)};t(O,e=>{o.toolCall.duration!==void 0&&e(k)});var j=L(O,2),M=z(j,!0),N=L(j,2);let P;s(D),s(x);var I=L(x,2),ee=r=>{var i=rr(),a=F(i),u=e=>{var t=qn(),n=L(F(t),2),r=z(n,!0);s(t),H(e=>l(r,e),[()=>_(o.toolCall.arguments)]),S(e,t)},f=n(()=>o.toolCall.arguments&&Object.keys(o.toolCall.arguments).length>0);t(a,t=>{e(f)&&t(u)});var p=L(a,2),m=e=>{var t=Jn(),n=L(F(t),2),r=z(n,!0);s(t),H(e=>l(r,e),[()=>_(o.toolCall.result)]),S(e,t)};t(p,e=>{o.toolCall.status===`success`&&o.toolCall.result!==void 0&&e(m)});var h=L(p,2),g=e=>{var t=Yn(),n=L(F(t),2),r=z(n,!0);s(t),H(()=>l(r,o.toolCall.error)),S(e,t)};t(h,e=>{o.toolCall.status===`error`&&o.toolCall.error&&e(g)});var y=L(h,2),b=e=>{var t=Xn(),n=F(t);v(2),s(t),H(e=>U(n,`aria-label`,e),[()=>c(Q[`chat.tool_call_display.running`])]),S(e,t)};t(y,e=>{o.toolCall.status===`running`&&e(b)});var x=L(y,2),C=e=>{var n=nr(),r=F(n),i=z(r,!0),a=L(r,2),u=e=>{var n=er(),r=V(n),i=e=>{var t=Zn(),n=z(t,!0);H(e=>l(n,e),[()=>_(o.actionResult.details)]),S(e,t)},a=e=>{var t=Qn(),n=z(t,!0);H(e=>l(n,e),[()=>c(Q[`chat.tool_call_display.applied_successfully`])]),S(e,t)};t(r,e=>{o.actionResult.details?e(i):o.actionResult.phase===`apply`&&e(a,1)});var u=L(r,2),f=e=>{var t=$n(),n=F(t);Y(n,{type:`button`,size:`sm`,onclick:()=>o.onconfirmaction?.(),children:(e,t)=>{v();var n=d();H(e=>l(n,e),[()=>c(Q[`chat.tool_call_display.confirm`])]),S(e,n)},$$slots:{default:!0}});var r=L(n,2);Y(r,{type:`button`,variant:`secondary`,size:`sm`,onclick:()=>o.onrejectaction?.(),children:(e,t)=>{v();var n=d();H(e=>l(n,e),[()=>c(Q[`chat.tool_call_display.reject`])]),S(e,n)},$$slots:{default:!0}}),s(t),S(e,t)};t(u,e=>{o.actionResult.phase===`preview`&&e(f)}),S(e,n)},f=e=>{var t=tr(),n=z(t,!0);H(()=>l(n,o.actionResult.reason??`Action failed`)),S(e,t)};t(a,e=>{o.actionResult.ok?e(u):e(f,-1)}),s(n),H(()=>{U(n,`data-phase`,o.actionResult.phase),U(n,`data-ok`,o.actionResult.ok),l(i,o.actionResult.phase===`preview`?`Proposed change`:`Applied change`)}),S(e,n)};t(x,e=>{o.actionResult&&e(C)}),s(i),H(()=>U(i,`id`,`tool-call-body-${o.toolCall.toolCallId??``}`)),S(r,i)};t(I,t=>{e(m)&&t(ee)}),s(b),H(t=>{i(b,1,`tool-call tool-call--${e(u)??``}`,`svelte-rtpofh`),U(b,`aria-label`,t),U(x,`aria-expanded`,e(m)),U(x,`aria-controls`,`tool-call-body-${o.toolCall.toolCallId??``}`),U(C,`aria-label`,e(h)),l(E,o.toolCall.toolName),l(M,e(h)),P=i(N,0,`tool-call__chevron svelte-rtpofh`,null,P,{"tool-call__chevron--open":e(m)})},[()=>c(Q[`chat.tool_call_display.tool_call`],{toolName:o.toolCall.toolName})]),w(`click`,x,()=>W(f,!e(m))),S(a,b),r()}T([`click`]);var or=c(`<div class="agent-chat__inactive-notice svelte-h8qbdq"> </div>`),sr=f(`<svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="svelte-h8qbdq"><path d="M2.01 21L23 12 2.01 3 2 10l15 2-15 2z" class="svelte-h8qbdq"></path></svg>`),cr=c(`<!> <!>`,1),lr=c(`<div class="agent-chat__tool-row svelte-h8qbdq"><!></div>`),ur=c(`<span class="text-block svelte-h8qbdq"> </span>`),dr=c(`<div class="field-update-block svelte-h8qbdq"><span class="applied-badge svelte-h8qbdq"> </span> <!></div>`),fr=c(`<div class="markdown-block svelte-h8qbdq"><pre class="markdown-block__content svelte-h8qbdq"><code class="svelte-h8qbdq"> </code></pre> <!></div>`),pr=c(`<div><div><div class="agent-chat__msg-content svelte-h8qbdq"><!></div> <time class="agent-chat__msg-time svelte-h8qbdq"> </time></div></div>`),mr=c(`<div class="agent-chat__msg agent-chat__msg--agent svelte-h8qbdq"><div class="agent-chat__bubble agent-chat__bubble--agent agent-chat__thinking svelte-h8qbdq"><span class="thinking-dots svelte-h8qbdq"><span class="svelte-h8qbdq"></span><span class="svelte-h8qbdq"></span><span class="svelte-h8qbdq"></span></span></div></div>`),hr=c(`<div class="agent-chat__empty svelte-h8qbdq"><span class="agent-chat__empty-text svelte-h8qbdq"> </span></div>`),gr=c(`<div class="diff-field svelte-h8qbdq"><span class="diff-field__name svelte-h8qbdq"> </span> <pre class="diff-field__value svelte-h8qbdq"> </pre></div>`),_r=c(`<div class="diff-dialog__body svelte-h8qbdq"></div>`),vr=c(`<div class="agent-chat svelte-h8qbdq" data-smrt-component="AgentChat"><!> <div class="agent-chat__messages svelte-h8qbdq" role="log"><!> <!> <!></div></div> <dialog class="diff-dialog svelte-h8qbdq" data-smrt-component="AgentChat"><div class="diff-dialog__header svelte-h8qbdq"><h4 class="svelte-h8qbdq"> </h4> <!></div> <!></dialog>`,1);function yr(a,o){g(o,!0);let{t:c}=q(),u=k(o,`loading`,3,!1),f=A(``),m=A(void 0),h=n(()=>o.session.status===`active`),_=A(null),x=A(void 0);function w(t){W(_,t,!0),e(x)?.showModal()}function T(){e(x)?.close(),W(_,null)}function E(t){t.preventDefault();let n=e(f).trim();n&&e(h)&&(o.onsend(n),W(f,``))}function D(e){e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),E(e))}function O(e){return(typeof e==`string`?new Date(e):e).toLocaleTimeString(`en-US`,{hour:`numeric`,minute:`2-digit`})}j(()=>{o.messages.length&&e(m)&&(e(m).scrollTop=0)});var N=vr(),P=V(N),I=F(P);Ce(I,{class:`agent-chat__input-bar`,onsubmit:e=>E(e),children:(r,i)=>{var a=C(),s=V(a),u=e=>{var t=or(),n=z(t,!0);H(e=>l(n,e),[()=>c(Q[`chat.agent_chat.inactive_notice`],{status:o.session.status})]),S(e,t)},d=t=>{var r=cr(),i=V(r);{let t=n(()=>c(Q[`chat.agent_chat.input_placeholder`])),r=n(()=>!e(h)),a=n(()=>c(Q[`chat.agent_chat.message_input`]));Oe(i,{class:`agent-chat__input`,get placeholder(){return e(t)},onkeydown:D,rows:1,get disabled(){return e(r)},get"aria-label"(){return e(a)},get value(){return e(f)},set value(e){W(f,e,!0)}})}var a=L(i,2);{let t=n(()=>!e(f).trim()||!e(h)),r=n(()=>c(Q[`chat.agent_chat.send_message`]));Y(a,{variant:`ghost`,class:`agent-chat__send-btn`,type:`submit`,get disabled(){return e(t)},get"aria-label"(){return e(r)},children:(e,t)=>{var n=sr();S(e,n)},$$slots:{default:!0}})}S(t,r)};t(s,t=>{e(h)?t(d,-1):t(u)}),S(r,a)},$$slots:{default:!0}});var ee=L(I,2),R=F(ee);p(R,17,()=>o.messages,e=>e.id,(r,a)=>{let u=n(()=>e(a).role===`user`),f=n(()=>e(a).messageType===`tool_call`||e(a).messageType===`tool_result`);var m=C(),h=V(m),g=t=>{var n=lr();ar(F(n),{get toolCall(){return e(a).toolCallData}}),s(n),S(t,n)},_=n=>{var r=pr();let m;var h=F(r);let g;var _=F(h),b=F(_),x=t=>{var n=d();H(()=>l(n,e(a).content)),S(t,n)},T=n=>{var r=C(),i=V(r);p(i,17,()=>Gn(e(a).content||``),y,(n,r)=>{var i=C(),a=V(i),u=t=>{var n=ur(),i=z(n,!0);H(()=>l(i,e(r).content)),S(t,n)},f=t=>{var n=dr(),i=F(n),a=z(i,!0),o=L(i,2);Y(o,{variant:`ghost`,size:`sm`,class:`diff-btn`,type:`button`,onclick:()=>w(e(r).fields),children:(e,t)=>{v();var n=d(`Diff`);S(e,n)},$$slots:{default:!0}}),s(n),H(e=>l(a,e),[()=>c(Q[`chat.agent_chat.updated_fields`],{count:Object.keys(e(r).fields).length,plural:Object.keys(e(r).fields).length===1?``:`s`})]),S(t,n)},p=n=>{var i=fr(),a=F(i),c=F(a),u=z(c,!0);s(a);var f=L(a,2),p=t=>{Y(t,{variant:`ghost`,size:`sm`,class:`diff-btn`,type:`button`,onclick:()=>o.onapplychange(e(r).content),children:(e,t)=>{v();var n=d(`Apply`);S(e,n)},$$slots:{default:!0}})};t(f,e=>{o.onapplychange&&e(p)}),s(i),H(()=>l(u,e(r).content)),S(n,i)};t(a,t=>{e(r).type===`text`?t(u):e(r).type===`fields`?t(f,1):e(r).type===`markdown`&&t(p,2)}),S(n,i)}),S(n,r)};t(b,t=>{e(u)?t(x):t(T,-1)}),s(_);var E=L(_,2),D=z(E,!0);s(h),s(r),H(t=>{m=i(r,1,`agent-chat__msg svelte-h8qbdq`,null,m,{"agent-chat__msg--user":e(u),"agent-chat__msg--agent":!e(u)&&!e(f),"agent-chat__msg--system":e(a).role===`system`}),g=i(h,1,`agent-chat__bubble svelte-h8qbdq`,null,g,{"agent-chat__bubble--user":e(u),"agent-chat__bubble--agent":!e(u)}),l(D,t)},[()=>O(e(a).createdAt)]),S(n,r)};t(h,t=>{e(f)&&e(a).toolCallData?t(g):t(_,-1)}),S(r,m)});var te=L(R,2),ne=e=>{var t=mr();S(e,t)};t(te,e=>{u()&&e(ne)});var re=L(te,2),B=e=>{var t=hr(),n=F(t),r=z(n,!0);s(t),H(e=>l(r,e),[()=>c(Q[`chat.agent_chat.empty`])]),S(e,t)};t(re,e=>{o.messages.length===0&&!u()&&e(B)}),s(ee),M(ee,e=>W(m,e),()=>e(m)),s(P);var ie=L(P,2),ae=F(ie),oe=F(ae),se=z(oe,!0),ce=L(oe,2);Y(ce,{variant:`ghost`,size:`sm`,class:`diff-dialog__close`,type:`button`,onclick:T,children:(e,t)=>{v();var n=d(`✕`);S(e,n)},$$slots:{default:!0}}),s(ae);var G=L(ae,2),le=t=>{var r=_r();p(r,21,()=>Object.entries(e(_)),y,(t,r)=>{var i=n(()=>b(e(r),2));let a=()=>e(i)[0],o=()=>e(i)[1];var c=gr(),u=F(c),d=z(u,!0),f=L(u,2),p=z(f,!0);s(c),H(()=>{l(d,a()),l(p,o())}),S(t,c)}),s(r),S(t,r)};t(G,t=>{e(_)&&t(le)}),s(ie),M(ie,e=>W(x,e),()=>e(x)),H((e,t,n)=>{U(P,`aria-label`,e),U(ee,`aria-label`,t),l(se,n)},[()=>c(Q[`chat.agent_chat.conversation`]),()=>c(Q[`chat.agent_chat.messages`]),()=>c(Q[`chat.agent_chat.field_changes`])]),S(a,N),r()}var br=c(`<span class="agent-selector__unavailable-badge svelte-3xwzgp">Unavailable</span>`),xr=c(`<button type="button" role="option"><!> <div class="agent-selector__card-body svelte-3xwzgp"><span class="agent-selector__card-name svelte-3xwzgp"> </span> <span class="agent-selector__card-desc svelte-3xwzgp"> </span></div> <!></button>`),Sr=c(`<div class="agent-selector__empty svelte-3xwzgp"><span class="agent-selector__empty-text svelte-3xwzgp"> </span></div>`),Cr=c(`<div class="agent-selector svelte-3xwzgp" data-smrt-component="AgentSelector"><h3 class="agent-selector__title svelte-3xwzgp"> </h3> <div class="agent-selector__grid svelte-3xwzgp" role="listbox"></div> <!></div>`);function wr(n,a){g(a,!0);let{t:o}=q();var c=Cr(),u=F(c),d=z(u,!0),f=L(u,2);p(f,21,()=>a.agents,e=>e.id,(n,r)=>{var o=xr();let c;U(o,`aria-selected`,!1);var u=F(o);Wn(u,{get name(){return e(r).name},get avatarUrl(){return e(r).avatarUrl},size:`lg`});var d=L(u,2),f=F(d),p=z(f,!0),m=L(f,2),h=z(m,!0);s(d);var g=L(d,2),_=e=>{var t=br();S(e,t)};t(g,t=>{e(r).isAvailable||t(_)}),s(o),H(()=>{c=i(o,1,`agent-selector__card svelte-3xwzgp`,null,c,{"agent-selector__card--unavailable":!e(r).isAvailable}),U(o,`aria-disabled`,!e(r).isAvailable),o.disabled=!e(r).isAvailable,l(p,e(r).name),l(h,e(r).description)}),w(`click`,o,()=>a.onselect(e(r).id)),S(n,o)}),s(f);var m=L(f,2),h=e=>{var t=Sr(),n=F(t),r=z(n,!0);s(t),H(e=>l(r,e),[()=>o(Q[`chat.agent_selector.empty`])]),S(e,t)};t(m,e=>{a.agents.length===0&&e(h)}),s(c),H((e,t,n)=>{U(c,`aria-label`,e),l(d,t),U(f,`aria-label`,n)},[()=>o(Q[`chat.agent_selector.select_an_agent`]),()=>o(Q[`chat.agent_selector.title`]),()=>o(Q[`chat.agent_selector.available_agents`])]),S(n,c),r()}T([`click`]);var Tr=f(`<svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"></path></svg>`),Er=c(`<span class="session-panel__tool-chip svelte-1l3fy3e"> </span>`),Dr=c(`<span class="session-panel__tool-chip session-panel__tool-chip--more svelte-1l3fy3e"> </span>`),Or=c(`<div class="session-panel__item-tools svelte-1l3fy3e"><!> <!></div>`),kr=c(`<button type="button" role="option"><!> <div class="session-panel__item-body svelte-1l3fy3e"><div class="session-panel__item-header svelte-1l3fy3e"><span class="session-panel__item-name svelte-1l3fy3e"> </span> <time class="session-panel__item-date svelte-1l3fy3e"> </time></div> <div class="session-panel__item-meta svelte-1l3fy3e"><span> </span> <span class="session-panel__item-count svelte-1l3fy3e"> </span></div> <!></div></button>`),Ar=c(`<div class="session-panel__empty svelte-1l3fy3e"><span class="session-panel__empty-text svelte-1l3fy3e"> </span></div>`),jr=c(`<aside class="session-panel svelte-1l3fy3e" data-smrt-component="AgentSessionPanel"><div class="session-panel__header svelte-1l3fy3e"><h2 class="session-panel__title svelte-1l3fy3e">Sessions</h2> <!></div> <div class="session-panel__list svelte-1l3fy3e" role="listbox"><!> <!></div></aside>`);function Mr(a,o){g(o,!0);let{t:c}=q();function u(e){let t=typeof e==`string`?new Date(e):e,n=new Date;return t.toDateString()===n.toDateString()?t.toLocaleTimeString(`en-US`,{hour:`numeric`,minute:`2-digit`}):t.toLocaleDateString(`en-US`,{month:`short`,day:`numeric`})}let d={active:`Active`,closed:`Closed`,expired:`Expired`};var f=jr(),m=F(f),h=L(F(m),2),_=t=>{{let r=n(()=>c(Q[`chat.agent_session_panel.new_session`])),i=n(()=>c(Q[`chat.agent_session_panel.new_session`]));Y(t,{variant:`ghost`,class:`session-panel__new-btn`,type:`button`,get onclick(){return o.onnewsession},get"aria-label"(){return e(r)},get title(){return e(i)},children:(e,t)=>{var n=Tr();S(e,n)},$$slots:{default:!0}})}};t(h,e=>{o.onnewsession&&e(_)}),s(m);var v=L(m,2),b=F(v);p(b,17,()=>o.sessions,e=>e.id,(r,a)=>{let c=n(()=>e(a).id===o.currentSessionId);var f=kr();let m;var h=F(f);Wn(h,{get name(){return e(a).agentName},get avatarUrl(){return e(a).agentAvatarUrl},size:`sm`});var g=L(h,2),_=F(g),v=F(_),b=z(v,!0),x=L(v,2),C=z(x,!0);s(_);var T=L(_,2),E=F(T);let D;var O=z(E,!0),k=L(E,2),A=z(k);s(T);var j=L(T,2),M=n=>{var r=Or(),i=F(r);p(i,17,()=>e(a).allowedTools.slice(0,3),y,(t,n)=>{var r=Er(),i=z(r,!0);H(()=>l(i,e(n))),S(t,r)});var o=L(i,2),c=t=>{var n=Dr(),r=z(n);H(()=>l(r,`+${e(a).allowedTools.length-3}`)),S(t,n)};t(o,t=>{e(a).allowedTools.length>3&&t(c)}),s(r),S(n,r)};t(j,t=>{e(a).allowedTools.length>0&&t(M)}),s(g),s(f),H(t=>{m=i(f,1,`session-panel__item svelte-1l3fy3e`,null,m,{"session-panel__item--active":e(c)}),U(f,`aria-selected`,e(c)),l(b,e(a).agentName),l(C,t),D=i(E,1,`session-panel__item-status svelte-1l3fy3e`,null,D,{"session-panel__item-status--active":e(a).status===`active`,"session-panel__item-status--closed":e(a).status===`closed`,"session-panel__item-status--expired":e(a).status===`expired`}),l(O,d[e(a).status]??e(a).status),l(A,`${e(a).messageCount??``} msg${e(a).messageCount===1?``:`s`}`)},[()=>u(e(a).createdAt)]),w(`click`,f,()=>o.onselectsession(e(a).id)),S(r,f)});var x=L(b,2),C=e=>{var t=Ar(),n=F(t),r=z(n,!0);s(t),H(e=>l(r,e),[()=>c(Q[`chat.agent_session_panel.empty`])]),S(e,t)};t(x,e=>{o.sessions.length===0&&e(C)}),s(v),s(f),H((e,t)=>{U(f,`aria-label`,e),U(v,`aria-label`,t)},[()=>c(Q[`chat.agent_session_panel.sessions`]),()=>c(Q[`chat.agent_session_panel.session_list`])]),S(a,f),r()}T([`click`]);var Nr=Symbol(`caption-overlay`),Pr=c(`<div class="caption-overlay-controls svelte-x4r42u"><!> <!></div>`),Fr=c(`<section class="caption-overlay svelte-x4r42u" data-smrt-component="CaptionOverlay"><div class="caption-overlay-viewport svelte-x4r42u"><div class="caption-overlay-content svelte-x4r42u"><!></div></div> <!></section>`);function Ir(n,i){g(i,!0);let a=k(i,`label`,3,`Captions`),{t:c}=q();R(Nr,!0);let u,f,p,m=A(!1),h=A(!0),_=A(!1);function y(){W(h,f.scrollTop<=0),W(_,Math.ceil(f.scrollTop+f.clientHeight)>=f.scrollHeight)}function b(e){f.scrollBy({top:e*f.clientHeight,behavior:`instant`}),y()}j(()=>{let e=new ResizeObserver(()=>{W(m,p.scrollHeight>u.clientHeight),y()});return e.observe(u),e.observe(f),e.observe(p),()=>e.disconnect()});var x=Fr(),C=F(x),w=F(C),T=F(w);o(T,()=>i.children),s(w),M(w,e=>p=e,()=>p),s(C),M(C,e=>f=e,()=>f);var D=L(C,2),O=t=>{var n=Pr(),r=F(n);Y(r,{size:`sm`,get disabled(){return e(h)},onclick:()=>b(-1),children:(e,t)=>{v();var n=d();H(e=>l(n,e),[()=>c(Q[`chat.caption_overlay.scroll_up`])]),S(e,n)},$$slots:{default:!0}});var i=L(r,2);Y(i,{size:`sm`,get disabled(){return e(_)},onclick:()=>b(1),children:(e,t)=>{v();var n=d();H(e=>l(n,e),[()=>c(Q[`chat.caption_overlay.scroll_down`])]),S(e,n)},$$slots:{default:!0}}),s(n),S(t,n)};t(D,t=>{e(m)&&t(O)}),s(x),M(x,e=>u=e,()=>u),H(()=>U(x,`aria-label`,a())),E(`scroll`,C,y),S(n,x),r()}var Lr=c(`<p class="svelte-s0z1g9"> </p>`),Rr=c(`<p class="interim svelte-s0z1g9" aria-hidden="true"> </p>`),zr=c(`<section class="heard-captions svelte-s0z1g9" data-smrt-component="HeardCaptions"><p class="speaker svelte-s0z1g9"> </p> <div class="caption-lines svelte-s0z1g9" aria-live="polite" aria-atomic="false"></div> <!></section>`);function Br(i,o){g(o,!0);let c=n=>{var r=zr(),i=F(r),a=z(i,!0),o=L(i,2);p(o,21,()=>e(y),e=>e.id,(t,n)=>{var r=Lr(),i=z(r,!0);H(()=>l(i,e(n).text)),S(t,r)}),s(o);var c=L(o,2),u=e=>{var t=Rr(),n=z(t,!0);H(()=>l(n,f())),S(e,t)};t(c,e=>{f()&&e(u)}),s(r),H(()=>{U(r,`aria-label`,_()),l(a,_())}),S(n,r)},u=k(o,`enabled`,3,!1),d=k(o,`lines`,19,()=>[]),f=k(o,`interim`,3,``),m=k(o,`placement`,3,`bottom`),h=k(o,`maxLines`,3,3),_=k(o,`speakerLabel`,3,`You said`),v=a(Nr)??!1,y=n(()=>d().slice(-Math.max(1,h())));var b=C(),x=V(b),w=e=>{var n=C(),r=V(n),i=e=>{Ir(e,{children:(e,t)=>{c(e)},$$slots:{default:!0}})},a=e=>{c(e)};t(r,e=>{m()===`bottom`&&!v?e(i):e(a,-1)}),S(e,n)};t(x,t=>{u()&&(e(y).length>0||f())&&t(w)}),S(i,b),r()}var Vr=c(`<p class="svelte-1h07s25"> </p>`),Hr=c(`<p class="interim svelte-1h07s25" aria-hidden="true"> </p>`),Ur=c(`<section class="spoken-captions svelte-1h07s25" data-smrt-component="SpokenCaptions"><p class="speaker svelte-1h07s25"><span aria-hidden="true">◈</span> </p> <div class="caption-lines svelte-1h07s25" aria-atomic="false"></div> <!></section>`);function Wr(i,o){g(o,!0);let c=n=>{var r=Ur(),i=F(r),a=L(F(i));s(i);var o=L(i,2);p(o,21,()=>e(b),e=>e.id,(t,n)=>{var r=Vr(),i=z(r,!0);H(()=>l(i,e(n).text)),S(t,r)}),s(o);var c=L(o,2),u=e=>{var t=Hr(),n=z(t,!0);H(()=>l(n,f())),S(e,t)};t(c,e=>{f()&&e(u)}),s(r),H(()=>{U(r,`aria-label`,_()),l(a,` ${_()??``}`),U(o,`aria-live`,v()?`polite`:`off`)}),S(n,r)},u=k(o,`enabled`,3,!1),d=k(o,`lines`,19,()=>[]),f=k(o,`interim`,3,``),m=k(o,`placement`,3,`bottom`),h=k(o,`maxLines`,3,3),_=k(o,`speakerLabel`,3,`Assistant is speaking`),v=k(o,`announce`,3,!1),y=a(Nr)??!1,b=n(()=>d().slice(-Math.max(1,h())));var x=C(),w=V(x),T=e=>{var n=C(),r=V(n),i=e=>{Ir(e,{children:(e,t)=>{c(e)},$$slots:{default:!0}})},a=e=>{c(e)};t(r,e=>{m()===`bottom`&&!y?e(i):e(a,-1)}),S(e,n)};t(w,t=>{u()&&(e(b).length>0||f())&&t(T)}),S(i,x),r()}var Gr=c(`<!> <!>`,1),Kr=c(`<label><input type="radio" name="roomType" class="type-option__radio svelte-ig2cks"/> <span class="type-option__content svelte-ig2cks"><span class="type-option__label svelte-ig2cks"> </span> <span class="type-option__description svelte-ig2cks"> </span></span></label>`),qr=c(`<div class="field svelte-ig2cks"><label class="field__label svelte-ig2cks" for="room-name"> <span class="field__required svelte-ig2cks">*</span></label> <!></div> <fieldset class="field svelte-ig2cks"><legend class="field__label svelte-ig2cks"> </legend> <div class="type-options svelte-ig2cks"></div></fieldset> <div class="field svelte-ig2cks"><label class="field__label svelte-ig2cks" for="room-description">Description</label> <!> <span class="field__hint svelte-ig2cks"> </span></div> <button type="submit" class="visually-hidden svelte-ig2cks" tabindex="-1" aria-hidden="true"></button>`,1);function Jr(t,a){g(a,!0);let o=[],{t:c}=q(),u=A(``),f=A(`public`),m=A(``),h=n(()=>e(u).trim().length>0),_=[{value:`public`,label:`Public Channel`,description:`Anyone can join and view messages`},{value:`private`,label:`Private Channel`,description:`Invite-only, hidden from non-members`},{value:`dm`,label:`Direct Message`,description:`Private conversation between users`},{value:`agent`,label:`Agent`,description:`Conversation with an AI agent`}];function y(){e(h)&&(a.oncreate({name:e(u).trim(),roomType:e(f),description:e(m).trim()}),x())}function b(){x(),a.onclose()}function x(){W(u,``),W(f,`public`),W(m,``)}j(()=>{if(a.isOpen&&typeof document<`u`){let e=requestAnimationFrame(()=>{document.getElementById(`room-name`)?.focus()});return()=>cancelAnimationFrame(e)}});{let r=t=>{var r=Gr(),i=V(r);Y(i,{variant:`secondary`,type:`button`,onclick:b,children:(e,t)=>{v();var n=d(`Cancel`);S(e,n)},$$slots:{default:!0}});var a=L(i,2);{let t=n(()=>!e(h));Y(a,{variant:`primary`,type:`button`,get disabled(){return e(t)},onclick:y,children:(e,t)=>{v();var n=d();H(e=>l(n,e),[()=>c(Q[`chat.room_create_dialog.create_room`])]),S(e,n)},$$slots:{default:!0}})}S(t,r)},g=n(()=>c(Q[`chat.room_create_dialog.title`])),x=n(()=>c(Q[`chat.room_create_dialog.title`]));ue(t,{get open(){return a.isOpen},onClose:b,get title(){return e(g)},size:`md`,get ariaLabel(){return e(x)},footer:r,children:(t,r)=>{Ce(t,{class:`dialog__form`,onsubmit:e=>{e.preventDefault(),y()},children:(t,r)=>{var a=qr(),d=V(a),g=F(d),v=F(g),y=L(v);s(g);var b=L(g,2);{let t=n(()=>c(Q[`chat.room_create_dialog.name_placeholder`]));_e(b,{id:`room-name`,type:`text`,get placeholder(){return e(t)},maxlength:100,autocomplete:`off`,get value(){return e(u)},set value(e){W(u,e,!0)}})}s(d);var x=L(d,2),C=F(x),w=z(C,!0),T=L(C,2);p(T,21,()=>_,e=>e.value,(t,n)=>{var r=Kr();let a;var c=F(r);D(c);var u,d=L(c,2),p=F(d),m=z(p,!0),h=L(p,2),g=z(h,!0);s(d),s(r),H(()=>{a=i(r,1,`type-option svelte-ig2cks`,null,a,{"type-option--selected":e(f)===e(n).value}),u!==(u=e(n).value)&&(c.value=(c.__value=u)??``),l(m,e(n).label),l(g,e(n).description)}),P(o,[],c,()=>(e(n).value,e(f)),e=>W(f,e)),S(t,r)}),s(T),s(x);var E=L(x,2),O=L(F(E),2);{let t=n(()=>c(Q[`chat.room_create_dialog.description_placeholder`]));Oe(O,{id:`room-description`,get placeholder(){return e(t)},rows:3,maxlength:500,get value(){return e(m)},set value(e){W(m,e,!0)}})}var k=L(O,2),A=z(k);s(E);var j=L(E,2);H((t,n,r)=>{l(v,`${t??``} `),U(y,`aria-label`,n),l(w,r),l(A,`${e(m).length??``}/500`),j.disabled=!e(h)},[()=>c(Q[`chat.room_create_dialog.room_name`]),()=>c(Q[`chat.room_create_dialog.required`]),()=>c(Q[`chat.room_create_dialog.room_type`])]),S(t,a)},$$slots:{default:!0}})},$$slots:{footer:!0,default:!0}})}r()}var Yr=f(`<svg class="close-btn__icon svelte-qy9dvp" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg>`),Xr=f(`<svg class="clear-btn__icon svelte-qy9dvp" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg>`),Zr=c(`<div class="search-input-wrap svelte-qy9dvp"><svg class="search-icon svelte-qy9dvp" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.35-4.35"></path></svg> <!> <!></div>`),Qr=c(`<img class="result-item__avatar svelte-qy9dvp" alt=""/>`),$r=c(`<span class="result-item__avatar-placeholder svelte-qy9dvp"> </span>`),ei=c(`<li class="results-list__item svelte-qy9dvp"><button class="result-item svelte-qy9dvp" type="button"><div class="result-item__header svelte-qy9dvp"><!> <span class="result-item__sender svelte-qy9dvp"> </span> <span class="result-item__date svelte-qy9dvp"> </span></div> <p class="result-item__content svelte-qy9dvp"></p></button></li>`),ti=c(`<p class="results-count svelte-qy9dvp"> </p> <ul class="results-list svelte-qy9dvp"></ul>`,1),ni=c(`<div class="search-empty svelte-qy9dvp" role="status"><p class="search-empty__text svelte-qy9dvp"> </p> <p class="search-empty__hint svelte-qy9dvp"> </p></div>`),ri=c(`<div class="search-empty svelte-qy9dvp" role="status"><p class="search-empty__text svelte-qy9dvp"> </p></div>`),ii=c(`<div class="search-panel svelte-qy9dvp" role="search" data-smrt-component="SearchMessages"><div class="search-panel__header svelte-qy9dvp"><h2 class="search-panel__title svelte-qy9dvp"> </h2> <!></div> <!> <div class="search-results svelte-qy9dvp"><!></div></div>`);function ai(i,a){g(a,!0);let{t:o}=q(),c=A(``),d=n(()=>a.results.length>0),f=n(()=>e(c).trim().length>0);function m(){typeof document<`u`&&document.getElementById(`search-messages-input`)?.focus()}function h(){let t=e(c).trim();t.length>0&&a.onsearch(t)}function _(){W(c,``),a.onclose()}function v(e){e.key===`Escape`&&_()}function y(e){return(typeof e==`string`?new Date(e):e).toLocaleDateString(void 0,{month:`short`,day:`numeric`,year:`numeric`,hour:`numeric`,minute:`2-digit`})}function b(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#039;`)}function x(e,t){let n=b(e);if(!t.trim())return n;let r=t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);return n.replace(RegExp(`(${r})`,`gi`),`<mark class="highlight">$1</mark>`)}j(()=>{if(!a.isOpen||typeof window>`u`)return;let e=e=>{v(e)};return window.addEventListener(`keydown`,e),()=>{window.removeEventListener(`keydown`,e)}}),j(()=>{if(a.isOpen){let e=requestAnimationFrame(m);return()=>cancelAnimationFrame(e)}});var T=C(),E=V(T),D=r=>{var i=ii(),g=F(i),v=F(g),b=z(v,!0),C=L(v,2);{let t=n(()=>o(Q[`chat.search_messages.close`]));Y(C,{variant:`ghost`,size:`sm`,class:`close-btn`,type:`button`,onclick:_,get"aria-label"(){return e(t)},children:(e,t)=>{var n=Yr();S(e,n)},$$slots:{default:!0}})}s(g);var T=L(g,2);Ce(T,{class:`search-form`,onsubmit:e=>{e.preventDefault(),h()},children:(r,i)=>{var a=Zr(),l=L(F(a),2);{let t=n(()=>o(Q[`chat.search_messages.input_placeholder`])),r=n(()=>o(Q[`chat.search_messages.query`]));_e(l,{id:`search-messages-input`,type:`search`,class:`search-input`,get placeholder(){return e(t)},autocomplete:`off`,get"aria-label"(){return e(r)},get value(){return e(c)},set value(e){W(c,e,!0)}})}var u=L(l,2),d=t=>{{let r=n(()=>o(Q[`chat.search_messages.clear`]));Y(t,{variant:`ghost`,size:`sm`,class:`clear-btn`,type:`button`,onclick:()=>{W(c,``),m()},get"aria-label"(){return e(r)},children:(e,t)=>{var n=Xr();S(e,n)},$$slots:{default:!0}})}};t(u,t=>{e(f)&&t(d)}),s(a),S(r,a)},$$slots:{default:!0}});var E=L(T,2),D=F(E),O=n=>{var r=ti(),i=V(r),d=z(i,!0),f=L(i,2);p(f,21,()=>a.results,e=>e.id,(n,r)=>{var i=ei(),o=F(i),d=F(o),f=F(d),p=t=>{var n=Qr();H(()=>U(n,`src`,e(r).senderAvatarUrl)),S(t,n)},m=t=>{var n=$r(),i=z(n,!0);H(e=>l(i,e),[()=>e(r).senderName.charAt(0).toUpperCase()]),S(t,n)};t(f,t=>{e(r).senderAvatarUrl?t(p):t(m,-1)});var h=L(f,2),g=z(h,!0),_=L(h,2),v=z(_,!0);s(d);var b=L(d,2);u(b,()=>x(e(r).content.length>200?e(r).content.slice(0,200)+`...`:e(r).content,e(c)),!0),s(b),s(o),s(i),H(t=>{l(g,e(r).senderName),l(v,t)},[()=>y(e(r).createdAt)]),w(`click`,o,()=>a.onselectresult?.(e(r).id)),S(n,i)}),s(f),H((e,t)=>{l(d,e),U(f,`aria-label`,t)},[()=>o(Q[`chat.search_messages.results_count`],{count:a.results.length,plural:a.results.length===1?``:`s`}),()=>o(Q[`chat.search_messages.results`])]),S(n,r)},k=t=>{var n=ni(),r=F(n),i=z(r,!0),a=L(r,2),u=z(a,!0);s(n),H((e,t)=>{l(i,e),l(u,t)},[()=>o(Q[`chat.search_messages.no_results`],{query:e(c)}),()=>o(Q[`chat.search_messages.no_results_hint`])]),S(t,n)},A=e=>{var t=ri(),n=F(t),r=z(n,!0);s(t),H(e=>l(r,e),[()=>o(Q[`chat.search_messages.empty`])]),S(e,t)};t(D,t=>{e(d)?t(O):e(f)?t(k,1):t(A,-1)}),s(E),s(i),H((e,t,n)=>{U(i,`aria-label`,e),l(b,t),U(E,`aria-label`,n)},[()=>o(Q[`chat.search_messages.search`]),()=>o(Q[`chat.search_messages.title`]),()=>o(Q[`chat.search_messages.results`])]),S(r,i)};t(E,e=>{a.isOpen&&e(D)}),S(i,T),r()}T([`click`]);var $=K({"chat.helper.title":`Helper settings`,"chat.helper.loading":`Loading helper settings…`,"chat.helper.unavailable":`Helper settings are unavailable for this application.`,"chat.helper.gallery":`Helper gallery`,"chat.helper.add_style":`Add {style}`,"chat.helper.name":`Display name`,"chat.helper.voice":`Voice`,"chat.helper.placement":`Placement`,"chat.helper.bottom_left":`Bottom left`,"chat.helper.bottom_right":`Bottom right`,"chat.helper.heard_subtitles":`Show heard subtitles`,"chat.helper.spoken_subtitles":`Show spoken subtitles`,"chat.helper.save":`Save settings`,"chat.helper.save_changes":`Save changes`,"chat.helper.saving":`Saving…`,"chat.helper.unsaved_changes":`You have unsaved changes.`,"chat.helper.photo_saved_apply":`Photo saved. Save settings to use it.`,"chat.helper.custom_setup":`Create a photographic helper`,"chat.helper.back_to_settings":`Back to helper settings`,"chat.helper.reset_button":`Reset to application defaults`,"chat.helper.saved":`Helper settings saved.`,"chat.helper.reset":`Helper settings reset.`,"chat.helper.load_failed":`Could not load helper settings.`,"chat.helper.save_failed":`Could not save helper settings.`,"chat.helper.reset_failed":`Could not reset helper settings.`,"chat.helper.open_settings_to_choose":`Open Helper settings to choose a saved helper.`,"chat.helper.selected_style_unavailable":`The selected helper style is unavailable.`,"chat.helper.load_renderer_failed":`Could not load the selected helper.`,"chat.helper.preview":`Selected helper preview`,"chat.helper.preview_failed":`Could not preview the selected helper.`,"chat.helper.opening_assistant":`Opening the assistant. Start listening when it is ready.`,"chat.helper.conversation_unavailable":`The assistant could not be opened. Try again before starting listening mode.`,"chat.chat_layout.rooms_label":`Chat rooms`,"chat.chat_layout.resize_sidebar":`Resize sidebar`,"chat.member_list.room_members":`Room members`,"chat.member_list.close":`Close member list`,"chat.member_list.empty":`No members`,"chat.room_header.room_label":`Room: {name}`,"chat.room_header.show_members":`Show members ({count})`,"chat.room_header.members":`Members`,"chat.room_header.search_messages":`Search messages`,"chat.room_header.search":`Search`,"chat.room_list.rooms_label":`Chat rooms`,"chat.room_list.create_new_room":`Create new room`,"chat.room_list.new_room":`+ New Room`,"chat.room_list.direct_messages":`Direct Messages`,"chat.room_list.unread_messages":`{count} unread messages`,"chat.room_list.no_rooms":`No rooms yet`,"chat.room_list.create_first_room":`Create your first room`,"chat.message_input.cancel_reply":`Cancel reply`,"chat.message_input.input_label":`Message input`,"chat.message_input.send":`Send message`,"chat.message_item.message_from":`Message from {name}`,"chat.message_item.add_reaction":`Add reaction`,"chat.message_item.reply":`Reply`,"chat.message_item.edit":`Edit`,"chat.message_item.delete":`Delete`,"chat.message_item.more_actions":`Message actions`,"chat.message_list.messages_label":`Messages`,"chat.message_list.no_messages":`No messages yet`,"chat.thread_panel.thread_label":`Thread: {title}`,"chat.thread_panel.close":`Close thread`,"chat.thread_panel.reply_placeholder":`Reply in thread...`,"chat.chat_tab.chat_with":`Chat with {name}`,"chat.chat_tab.collapse":`Collapse chat`,"chat.chat_tab.minimize":`Minimize`,"chat.chat_tab.close":`Close`,"chat.chat_tab.open_chat_with":`Open chat with {name}`,"chat.chat_tab.unread":`{count} unread`,"chat.chat_tab_list.minimized_chats":`Minimized chats`,"chat.chat_tab_list.open_chat_with":`Open chat with {name}`,"chat.chat_tab_list.unread":`{count} unread`,"chat.chat_tab_list.close_chat_with":`Close chat with {name}`,"chat.chat_tab_list.close":`Close`,"chat.chat_tabs.tabs_label":`Chat tabs`,"chat.mini_chat.messages_label":`Chat messages`,"chat.mini_chat.no_messages":`No messages yet`,"chat.mini_chat.placeholder":`Type a message...`,"chat.mini_chat.input_label":`Message input`,"chat.mini_chat.send":`Send message`}),oi=c(`<p class="message svelte-1ocwb6j"> </p>`),si=c(`<p class="message svelte-1ocwb6j" role="status"> </p>`),ci=c(`<p> </p>`),li=c(`<div class="preview svelte-1ocwb6j"></div>`),ui=c(`<div class="setup-actions svelte-1ocwb6j"></div>`),di=c(`<section class="custom-setup svelte-1ocwb6j"><!> <!></section>`),fi=c(`<option> </option>`),pi=c(`<option> </option><option> </option>`,1),mi=c(`<label class="svelte-1ocwb6j"> <!></label> <label class="svelte-1ocwb6j"> <!></label> <label class="svelte-1ocwb6j"> <!></label> <!> <!>`,1),hi=c(`<fieldset class="svelte-1ocwb6j"><legend> </legend> <div class="gallery svelte-1ocwb6j" role="radiogroup" tabindex="-1"></div> <!> <!> <!> <!> <!></fieldset> <!> <div class="actions svelte-1ocwb6j"><!><!></div>`,1),gi=c(`<section class="helper-panel svelte-1ocwb6j" aria-labelledby="helper-panel-title" data-smrt-component="HelperControlPanel"><h2 id="helper-panel-title"> </h2> <!> <!> <!></section>`);function _i(i,a){let o=ie();g(a,!0);let{t:c}=q(),u=k(a,`snapshot`,15),f=A(!u()),m=A(!1),h=A(null),y=A(!1),b=A(I(u()?.preferences?{...u().preferences}:u()?.recoveryDraft?{...u().recoveryDraft}:null)),x=null,T=null,E=A(null),D=A(void 0),O=A(void 0),N=A(null);j(()=>{if(!u())return;let e=T===ce(u())?x:null;e||(x=null,T=null),W(b,e??(u().preferences?{...u().preferences}:u().recoveryDraft?{...u().recoveryDraft}:null),!0)}),j(()=>{if(u()){W(f,!1);return}let e=!0;return a.client.load().then(t=>{e&&(u(t),W(b,t.preferences?{...t.preferences}:t.recoveryDraft?{...t.recoveryDraft}:null,!0))}).catch(t=>{e&&W(h,t instanceof Error?t.message:c($[`chat.helper.load_failed`]),!0)}).finally(()=>{e&&W(f,!1)}),()=>{e=!1}});let P=e=>!!u()?.permissions.editableFields.includes(e),ee=n(()=>!!e(b)&&(u()?.permissions.editableFields.length??0)>0),R=n(()=>u()?.preferences??null),te=n(()=>!!e(b)&&(!e(R)||e(b).offeringId!==e(R).offeringId||e(b).name!==e(R).name||e(b).voiceId!==e(R).voiceId||e(b).placement!==e(R).placement||e(b).heardSubtitles!==e(R).heardSubtitles||e(b).spokenSubtitles!==e(R).spokenSubtitles)),ne=n(()=>(u()?.offerings??[]).filter(e=>a.registry.get(e.styleId))),re=n(()=>P(`offeringId`)?Math.max(0,e(ne).findIndex(t=>t.id===e(b)?.offeringId)):-1),B=n(()=>a.registry.list().filter(e=>e.Setup&&u()?.permissions.customStyleIds.includes(e.id))),ae=n(()=>e(b)?e(ne).find(t=>t.id===e(b)?.offeringId)??null:u()?.offering??null);j(()=>{let t=e(ae),n=t?a.registry.get(t.styleId):void 0,r=e(O),i=!1,o=null;if(W(N,null),t&&n&&r)return(async()=>{try{let e=a.loadPayload?await a.loadPayload(t):null,s=await n.mount({target:r,offering:t,payload:e});i?s.destroy():o=s}catch(e){i||W(N,e instanceof Error?e.message:c($[`chat.helper.preview_failed`]),!0)}})(),()=>{i=!0,o?.destroy(),o=null}});function se(t,n){e(b)&&(W(b,{...e(b),[t]:n},!0),e(y)||W(h,null))}function ce(e){return JSON.stringify({preferences:e.preferences,offering:e.offering,offerings:e.offerings,voices:e.voices,permissions:e.permissions,selection:e.selection,source:e.source,recovery:e.recovery,recoveryDraft:e.recoveryDraft})}function G(t){let n=e(ne).findIndex(e=>e.id===t);oe().then(()=>document.getElementById(`${o}-offering-${n}`)?.focus())}function le(){let t=e(E);W(E,null),t&&oe().then(()=>document.getElementById(`${o}-setup-${t}`)?.focus())}function ue(t){W(E,t,!0),oe().then(()=>e(D)?.querySelector(`button`)?.focus())}function K(t){if(!e(b)||!P(`offeringId`))return;let n=e(ne);if(!n.length)return;let r=Math.max(0,n.findIndex(t=>t.id===e(b)?.offeringId)),i=null;(t.key===`ArrowRight`||t.key===`ArrowDown`)&&(i=(r+1)%n.length),(t.key===`ArrowLeft`||t.key===`ArrowUp`)&&(i=(r-1+n.length)%n.length),t.key===`Home`&&(i=0),t.key===`End`&&(i=n.length-1),i!==null&&(t.preventDefault(),se(`offeringId`,n[i].id),G(n[i].id))}async function de(){if(e(b)&&!e(m)){W(m,!0),W(h,null),W(y,!1);try{J(await a.client.save(e(b))),W(h,c($[`chat.helper.saved`]),!0)}catch(e){W(h,e instanceof Error?e.message:c($[`chat.helper.save_failed`]),!0),W(y,!0)}finally{W(m,!1)}}}async function fe(){if(!e(m)&&u()?.permissions.canReset){W(m,!0),W(h,null),W(y,!1);try{J(await a.client.reset()),W(h,c($[`chat.helper.reset`]),!0)}catch(e){W(h,e instanceof Error?e.message:c($[`chat.helper.reset_failed`]),!0),W(y,!0)}finally{W(m,!1)}}}function J(e){x=null,T=null,u(e),W(b,e.preferences?{...e.preferences}:e.recoveryDraft?{...e.recoveryDraft}:null,!0),a.onchanged?.(e)}async function pe(t){a.oncustomsaved?.(t);try{let n=e(b),r=await a.client.load();u(r);let i=r.preferences??r.recoveryDraft??null,o=r.offerings.find(e=>e.id===t.id&&!!a.registry.get(e.styleId));if(i&&o&&r.permissions.editableFields.includes(`offeringId`)){let e={...i};for(let t of r.permissions.editableFields)n&&(e[t]=n[t]);x={...e,offeringId:o.id},T=ce(r)}else x=null,T=null;W(b,x??(i?{...i}:null),!0),a.onchanged?.(r),W(E,null),W(h,c($[`chat.helper.photo_saved_apply`]),!0),W(y,!1),o&&G(o.id)}catch(e){W(h,e instanceof Error?e.message:c($[`chat.helper.load_failed`]),!0),W(y,!0)}}var me=gi(),X=F(me),he=z(X,!0),ge=L(X,2),ve=t=>{var n=oi(),r=z(n,!0);H(()=>{U(n,`role`,e(y)?`alert`:`status`),U(n,`aria-live`,e(y)?`assertive`:`polite`),l(r,e(h))}),S(t,n)};t(ge,t=>{e(h)&&t(ve)});var ye=L(ge,2),be=e=>{var t=si(),n=z(t,!0);H(()=>l(n,u().recovery.message)),S(e,t)};t(ye,e=>{u()?.recovery&&e(be)});var Se=L(ye,2),Ce=e=>{var t=ci(),n=z(t,!0);H(e=>l(n,e),[()=>c($[`chat.helper.loading`])]),S(e,t)},we=e=>{var t=ci(),n=z(t,!0);H(e=>l(n,e),[()=>c($[`chat.helper.unavailable`])]),S(e,t)},Te=r=>{var i=hi(),f=V(i),h=F(f),g=z(h,!0),y=L(h,2);p(y,23,()=>e(ne),e=>e.id,(t,r,i)=>{{let a=n(()=>`${o}-offering-${e(i)}`),s=n(()=>e(re)===e(i)?0:-1),c=n(()=>e(b)?.offeringId===e(r).id?`selected`:``),u=n(()=>e(b)?.offeringId===e(r).id),f=n(()=>!e(b)||!P(`offeringId`));Y(t,{get id(){return e(a)},get tabindex(){return e(s)},type:`button`,variant:`secondary`,get class(){return e(c)},role:`radio`,get"aria-checked"(){return e(u)},get disabled(){return e(f)},onclick:()=>se(`offeringId`,e(r).id),children:(t,n)=>{v();var i=d();H(()=>l(i,e(r).label)),S(t,i)},$$slots:{default:!0}})}}),s(y);var x=L(y,2),T=t=>{var n=li();M(n,e=>W(O,e),()=>e(O)),H(e=>U(n,`aria-label`,e),[()=>c($[`chat.helper.preview`])]),S(t,n)};t(x,t=>{e(ae)&&t(T)});var k=L(x,2),A=t=>{var n=si(),r=z(n,!0);H(()=>l(r,e(N))),S(t,n)};t(k,t=>{e(N)&&t(A)});var j=L(k,2),I=t=>{var r=ui();p(r,21,()=>e(B),e=>e.id,(t,r)=>{{let i=n(()=>`${o}-setup-${e(r).id}`),a=n(()=>!P(`offeringId`));Y(t,{get id(){return e(i)},type:`button`,variant:`secondary`,get disabled(){return e(a)},onclick:()=>ue(e(r).id),children:(t,n)=>{v();var i=d();H(e=>l(i,e),[()=>c($[`chat.helper.add_style`],{style:e(r).label})]),S(t,i)},$$slots:{default:!0}})}}),s(r),S(t,r)};t(j,t=>{e(B).length&&t(I)});var R=L(j,2),ie=r=>{let i=n(()=>a.registry.get(e(E))?.Setup);var o=di(),u=F(o);Y(u,{type:`button`,variant:`secondary`,onclick:le,children:(e,t)=>{v();var n=d();H(e=>l(n,e),[()=>c($[`chat.helper.back_to_settings`])]),S(e,n)},$$slots:{default:!0}});var f=L(u,2),p=t=>{var n=C(),r=V(n);_(r,()=>e(i),(e,t)=>{t(e,{onsaved:pe,oncancel:le})}),S(t,n)};t(f,t=>{e(i)&&t(p)}),s(o),M(o,e=>W(D,e),()=>e(D)),H(e=>U(o,`aria-label`,e),[()=>c($[`chat.helper.custom_setup`])]),S(r,o)},oe=n(()=>e(E)&&a.registry.get(e(E))?.Setup);t(R,t=>{e(oe)&&t(ie)});var ce=L(R,2),G=t=>{var r=mi(),i=V(r),a=F(i,!0),o=L(a);{let t=n(()=>!P(`name`));_e(o,{get value(){return e(b).name},get disabled(){return e(t)},oninput:e=>se(`name`,e.currentTarget.value)})}s(i);var d=L(i,2),f=F(d,!0),m=L(f);{let t=n(()=>!P(`voiceId`));xe(m,{get value(){return e(b).voiceId},get disabled(){return e(t)},onchange:e=>se(`voiceId`,e.currentTarget.value),children:(t,n)=>{var r=C(),i=V(r);p(i,17,()=>u().voices,e=>e.id,(t,n)=>{var r=fi(),i=z(r,!0),a={};H(()=>{l(i,e(n).label),a!==(a=e(n).id)&&(r.value=(r.__value=a)??``)}),S(t,r)}),S(t,r)},$$slots:{default:!0}})}s(d);var h=L(d,2),g=F(h,!0),_=L(g);{let t=n(()=>!P(`placement`));xe(_,{get value(){return e(b).placement},get disabled(){return e(t)},onchange:e=>se(`placement`,e.currentTarget.value),children:(e,t)=>{var n=pi(),r=V(n),i=z(r,!0);r.value=r.__value=`bottom-left`;var a=L(r),o=z(a,!0);a.value=a.__value=`bottom-right`,H((e,t)=>{l(i,e),l(o,t)},[()=>c($[`chat.helper.bottom_left`]),()=>c($[`chat.helper.bottom_right`])]),S(e,n)},$$slots:{default:!0}})}s(h);var v=L(h,2);{let t=n(()=>c($[`chat.helper.heard_subtitles`])),r=n(()=>!P(`heardSubtitles`));Ee(v,{get label(){return e(t)},get checked(){return e(b).heardSubtitles},get disabled(){return e(r)},onchange:e=>se(`heardSubtitles`,e.currentTarget.checked)})}var y=L(v,2);{let t=n(()=>c($[`chat.helper.spoken_subtitles`])),r=n(()=>!P(`spokenSubtitles`));Ee(y,{get label(){return e(t)},get checked(){return e(b).spokenSubtitles},get disabled(){return e(r)},onchange:e=>se(`spokenSubtitles`,e.currentTarget.checked)})}H((e,t,n)=>{l(a,e),l(f,t),l(g,n)},[()=>c($[`chat.helper.name`]),()=>c($[`chat.helper.voice`]),()=>c($[`chat.helper.placement`])]),S(t,r)},q=e=>{var t=oi(),n=z(t,!0);H(e=>l(n,e),[()=>c($[`chat.helper.unavailable`])]),S(e,t)};t(ce,t=>{e(b)?t(G):t(q,-1)}),s(f);var J=L(f,2),me=e=>{var t=si(),n=z(t,!0);H(e=>l(n,e),[()=>c($[`chat.helper.unsaved_changes`])]),S(e,t)};t(J,t=>{e(te)&&t(me)});var X=L(J,2),he=F(X),ge=t=>{{let r=n(()=>e(m)||!e(te));Y(t,{type:`button`,onclick:de,get disabled(){return e(r)},children:(t,n)=>{v();var r=d();H(e=>l(r,e),[()=>e(m)?c($[`chat.helper.saving`]):c($[`chat.helper.save_changes`])]),S(t,r)},$$slots:{default:!0}})}};t(he,t=>{e(ee)&&t(ge)});var ve=L(he),ye=t=>{Y(t,{type:`button`,variant:`secondary`,onclick:fe,get disabled(){return e(m)},children:(e,t)=>{v();var n=d();H(e=>l(n,e),[()=>c($[`chat.helper.reset_button`])]),S(e,n)},$$slots:{default:!0}})};t(ve,e=>{u().permissions.canReset&&e(ye)}),s(X),H((t,n)=>{f.disabled=e(m),l(g,t),U(y,`aria-label`,n)},[()=>c($[`chat.helper.gallery`]),()=>c($[`chat.helper.gallery`])]),w(`keydown`,y,K),S(r,i)};t(Se,t=>{e(f)?t(Ce):u()?t(Te,-1):t(we,1)}),s(me),H(t=>{U(me,`aria-busy`,e(f)||e(m)),l(he,t)},[()=>c($[`chat.helper.title`])]),S(i,me),r()}T([`keydown`]);var vi=c(`<div class="room-list__header svelte-p0wx6n"><!></div>`),yi=c(`<span class="unread-badge svelte-p0wx6n"> </span>`),bi=c(`<li><button type="button"><span class="room-item__icon svelte-p0wx6n"> </span> <span class="room-item__name svelte-p0wx6n"> </span> <!></button></li>`),xi=c(`<ul class="room-group__list svelte-p0wx6n" role="list"></ul>`),Si=c(`<section class="room-group svelte-p0wx6n"><button class="room-group__header svelte-p0wx6n" type="button"><span>&#9662;</span> <span class="room-group__label svelte-p0wx6n">Channels</span> <span class="room-group__count svelte-p0wx6n"> </span></button> <!></section>`),Ci=c(`<img class="room-item__avatar svelte-p0wx6n" alt=""/>`),wi=c(`<span class="room-item__avatar-placeholder svelte-p0wx6n"> </span>`),Ti=c(`<span class="room-item__preview svelte-p0wx6n"> </span>`),Ei=c(`<span class="room-item__time svelte-p0wx6n"> </span>`),Di=c(`<li><button type="button"><!> <span class="room-item__details svelte-p0wx6n"><span class="room-item__name svelte-p0wx6n"> </span> <!></span> <span class="room-item__meta svelte-p0wx6n"><!> <!></span></button></li>`),Oi=c(`<section class="room-group svelte-p0wx6n"><button class="room-group__header svelte-p0wx6n" type="button"><span>&#9662;</span> <span class="room-group__label svelte-p0wx6n"> </span> <span class="room-group__count svelte-p0wx6n"> </span></button> <!></section>`),ki=c(`<li><button type="button"><span class="room-item__agent-icon svelte-p0wx6n" aria-hidden="true">&#9881;</span> <span class="room-item__name svelte-p0wx6n"> </span> <!></button></li>`),Ai=c(`<section class="room-group svelte-p0wx6n"><button class="room-group__header svelte-p0wx6n" type="button"><span>&#9662;</span> <span class="room-group__label svelte-p0wx6n">Agents</span> <span class="room-group__count svelte-p0wx6n"> </span></button> <!></section>`),ji=c(`<div class="room-list__empty svelte-p0wx6n"><p class="svelte-p0wx6n"> </p> <!></div>`),Mi=c(`<nav class="room-list svelte-p0wx6n" data-smrt-component="RoomList"><!> <!> <!> <!> <!></nav>`);function Ni(a,o){g(o,!0);let{t:c}=q(),u=I({}),f=n(()=>o.rooms.filter(e=>e.roomType===`public`||e.roomType===`private`)),m=n(()=>o.rooms.filter(e=>e.roomType===`dm`)),h=n(()=>o.rooms.filter(e=>e.roomType===`agent`));function _(e){u[e]=!u[e]}function y(e){switch(e.roomType){case`public`:return`#`;case`private`:return`🔒`;case`dm`:return``;case`agent`:return``;default:return`#`}}function b(e){if(!e)return``;let t=typeof e==`string`?new Date(e):e,n=new Date().getTime()-t.getTime(),r=864e5;return n<r?t.toLocaleTimeString(void 0,{hour:`numeric`,minute:`2-digit`}):n<7*r?t.toLocaleDateString(void 0,{weekday:`short`}):t.toLocaleDateString(void 0,{month:`short`,day:`numeric`})}var x=Mi(),C=F(x),T=t=>{var r=vi(),i=F(r);{let t=n(()=>c($[`chat.room_list.create_new_room`]));Y(i,{variant:`ghost`,fullWidth:!0,class:`create-room-btn`,type:`button`,get onclick(){return o.oncreateroom},get"aria-label"(){return e(t)},children:(e,t)=>{v();var n=d();H(e=>l(n,e),[()=>c($[`chat.room_list.new_room`])]),S(e,n)},$$slots:{default:!0}})}s(r),S(t,r)};t(C,e=>{o.oncreateroom&&e(T)});var E=L(C,2),D=n=>{var r=Si(),a=F(r),d=F(a);let m;var h=L(d,4),g=z(h,!0);s(a);var v=L(a,2),b=n=>{var r=xi();p(r,21,()=>e(f),e=>e.id,(n,r)=>{var a=bi(),u=F(a);let d;var f=F(u),p=z(f,!0),m=L(f,2),h=z(m,!0),g=L(m,2),_=t=>{var n=yi(),i=z(n,!0);H(t=>{U(n,`aria-label`,t),l(i,e(r).unreadCount>99?`99+`:e(r).unreadCount)},[()=>c($[`chat.room_list.unread_messages`],{count:e(r).unreadCount})]),S(t,n)};t(g,t=>{e(r).unreadCount>0&&t(_)}),s(u),s(a),H(t=>{d=i(u,1,`room-item svelte-p0wx6n`,null,d,{"room-item--active":e(r).id===o.currentRoomId,"room-item--muted":e(r).isMuted}),U(u,`aria-current`,e(r).id===o.currentRoomId?`true`:void 0),l(p,t),l(h,e(r).name)},[()=>y(e(r))]),w(`click`,u,()=>o.onselectroom(e(r).id)),S(n,a)}),s(r),S(n,r)};t(v,e=>{u.channels||e(b)}),s(r),H(()=>{U(a,`aria-expanded`,!u.channels),m=i(d,1,`room-group__chevron svelte-p0wx6n`,null,m,{"room-group__chevron--collapsed":u.channels}),l(g,e(f).length)}),w(`click`,a,()=>_(`channels`)),S(n,r)};t(E,t=>{e(f).length>0&&t(D)});var O=L(E,2),k=n=>{var r=Oi(),a=F(r),d=F(a);let f;var h=L(d,2),g=z(h,!0),v=L(h,2),y=z(v,!0);s(a);var x=L(a,2),C=n=>{var r=xi();p(r,21,()=>e(m),e=>e.id,(n,r)=>{var a=Di(),u=F(a);let d;var f=F(u),p=t=>{var n=Ci();H(()=>U(n,`src`,e(r).avatarUrl)),S(t,n)},m=t=>{var n=wi(),i=z(n,!0);H(e=>l(i,e),[()=>e(r).name.charAt(0).toUpperCase()]),S(t,n)};t(f,t=>{e(r).avatarUrl?t(p):t(m,-1)});var h=L(f,2),g=F(h),_=z(g,!0),v=L(g,2),y=t=>{var n=Ti(),i=z(n,!0);H(()=>l(i,e(r).lastMessage.content)),S(t,n)};t(v,t=>{e(r).lastMessage&&t(y)}),s(h);var x=L(h,2),C=F(x),T=t=>{var n=Ei(),i=z(n,!0);H(e=>l(i,e),[()=>b(e(r).lastMessageAt)]),S(t,n)};t(C,t=>{e(r).lastMessageAt&&t(T)});var E=L(C,2),D=t=>{var n=yi(),i=z(n,!0);H(t=>{U(n,`aria-label`,t),l(i,e(r).unreadCount>99?`99+`:e(r).unreadCount)},[()=>c($[`chat.room_list.unread_messages`],{count:e(r).unreadCount})]),S(t,n)};t(E,t=>{e(r).unreadCount>0&&t(D)}),s(x),s(u),s(a),H(()=>{d=i(u,1,`room-item svelte-p0wx6n`,null,d,{"room-item--active":e(r).id===o.currentRoomId,"room-item--muted":e(r).isMuted}),U(u,`aria-current`,e(r).id===o.currentRoomId?`true`:void 0),l(_,e(r).name)}),w(`click`,u,()=>o.onselectroom(e(r).id)),S(n,a)}),s(r),S(n,r)};t(x,e=>{u.dms||e(C)}),s(r),H(t=>{U(a,`aria-expanded`,!u.dms),f=i(d,1,`room-group__chevron svelte-p0wx6n`,null,f,{"room-group__chevron--collapsed":u.dms}),l(g,t),l(y,e(m).length)},[()=>c($[`chat.room_list.direct_messages`])]),w(`click`,a,()=>_(`dms`)),S(n,r)};t(O,t=>{e(m).length>0&&t(k)});var A=L(O,2),j=n=>{var r=Ai(),a=F(r),d=F(a);let f;var m=L(d,4),g=z(m,!0);s(a);var v=L(a,2),y=n=>{var r=xi();p(r,21,()=>e(h),e=>e.id,(n,r)=>{var a=ki(),u=F(a);let d;var f=L(F(u),2),p=z(f,!0),m=L(f,2),h=t=>{var n=yi(),i=z(n,!0);H(t=>{U(n,`aria-label`,t),l(i,e(r).unreadCount>99?`99+`:e(r).unreadCount)},[()=>c($[`chat.room_list.unread_messages`],{count:e(r).unreadCount})]),S(t,n)};t(m,t=>{e(r).unreadCount>0&&t(h)}),s(u),s(a),H(()=>{d=i(u,1,`room-item svelte-p0wx6n`,null,d,{"room-item--active":e(r).id===o.currentRoomId}),U(u,`aria-current`,e(r).id===o.currentRoomId?`true`:void 0),l(p,e(r).name)}),w(`click`,u,()=>o.onselectroom(e(r).id)),S(n,a)}),s(r),S(n,r)};t(v,e=>{u.agents||e(y)}),s(r),H(()=>{U(a,`aria-expanded`,!u.agents),f=i(d,1,`room-group__chevron svelte-p0wx6n`,null,f,{"room-group__chevron--collapsed":u.agents}),l(g,e(h).length)}),w(`click`,a,()=>_(`agents`)),S(n,r)};t(A,t=>{e(h).length>0&&t(j)});var M=L(A,2),N=e=>{var n=ji(),r=F(n),i=z(r,!0),a=L(r,2),u=e=>{Y(e,{variant:`ghost`,size:`sm`,class:`create-link`,type:`button`,get onclick(){return o.oncreateroom},children:(e,t)=>{v();var n=d();H(e=>l(n,e),[()=>c($[`chat.room_list.create_first_room`])]),S(e,n)},$$slots:{default:!0}})};t(a,e=>{o.oncreateroom&&e(u)}),s(n),H(e=>l(i,e),[()=>c($[`chat.room_list.no_rooms`])]),S(e,n)};t(M,e=>{o.rooms.length===0&&e(N)}),s(x),H(e=>U(x,`aria-label`,e),[()=>c($[`chat.room_list.rooms_label`])]),S(a,x),r()}T([`click`]);var Pi=c(`<div data-smrt-component="ChatLayout"><aside class="chat-layout__sidebar svelte-bpwn8w"><!></aside> <button type="button" class="chat-layout__resize-handle svelte-bpwn8w"></button> <main class="chat-layout__content svelte-bpwn8w"><!></main></div>`);function Fi(t,n){g(n,!0);let{t:a}=q(),c=A(260),l=A(!1);function u(e){W(l,!0),e.currentTarget.setPointerCapture(e.pointerId)}function d(t){if(!e(l))return;let n=Math.min(400,Math.max(200,t.clientX));W(c,n,!0)}function f(){W(l,!1)}var p=Pi();let m;var h=F(p);let _;Ni(F(h),{get rooms(){return n.rooms},get currentRoomId(){return n.currentRoomId},get onselectroom(){return n.onselectroom},get oncreateroom(){return n.oncreateroom}}),s(h);var v=L(h,2),y=L(v,2),b=F(y);o(b,()=>n.children),s(y),s(p),H((t,n)=>{m=i(p,1,`chat-layout svelte-bpwn8w`,null,m,{"chat-layout--resizing":e(l)}),U(h,`aria-label`,t),_=x(h,``,_,{"--smrt-chat-layout-sidebar-width":`${e(c)??``}px`}),U(v,`aria-label`,n)},[()=>a($[`chat.chat_layout.rooms_label`]),()=>a($[`chat.chat_layout.resize_sidebar`])]),w(`pointerdown`,v,u),w(`pointermove`,v,d),w(`pointerup`,v,f),w(`keydown`,v,t=>{t.key===`ArrowLeft`&&W(c,Math.max(200,e(c)-10),!0),t.key===`ArrowRight`&&W(c,Math.min(400,e(c)+10),!0)}),S(t,p),r()}T([`pointerdown`,`pointermove`,`pointerup`,`keydown`]);var Ii=f(`<svg class="close-btn__icon svelte-dnjj1q" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg>`),Li=c(`<img class="member-item__avatar svelte-dnjj1q" alt=""/>`),Ri=c(`<span class="member-item__avatar-placeholder svelte-dnjj1q"> </span>`),zi=c(`<span> </span>`),Bi=c(`<li class="member-item svelte-dnjj1q"><div class="member-item__avatar-wrap svelte-dnjj1q"><!> <span class="member-item__status-dot svelte-dnjj1q"></span></div> <span class="member-item__info svelte-dnjj1q"><span class="member-item__name svelte-dnjj1q"> </span> <!></span></li>`),Vi=c(`<section class="member-group svelte-dnjj1q"><h3 class="member-group__header svelte-dnjj1q">Online <span class="member-group__count svelte-dnjj1q"> </span></h3> <ul class="member-group__list svelte-dnjj1q" role="list"></ul></section>`),Hi=c(`<section class="member-group svelte-dnjj1q"><h3 class="member-group__header svelte-dnjj1q">Away <span class="member-group__count svelte-dnjj1q"> </span></h3> <ul class="member-group__list svelte-dnjj1q" role="list"></ul></section>`),Ui=c(`<li class="member-item member-item--offline svelte-dnjj1q"><div class="member-item__avatar-wrap svelte-dnjj1q"><!> <span class="member-item__status-dot svelte-dnjj1q"></span></div> <span class="member-item__info svelte-dnjj1q"><span class="member-item__name svelte-dnjj1q"> </span> <!></span></li>`),Wi=c(`<section class="member-group svelte-dnjj1q"><h3 class="member-group__header svelte-dnjj1q">Offline <span class="member-group__count svelte-dnjj1q"> </span></h3> <ul class="member-group__list svelte-dnjj1q" role="list"></ul></section>`),Gi=c(`<p class="member-list__empty svelte-dnjj1q"> </p>`),Ki=c(`<aside class="member-list svelte-dnjj1q" data-smrt-component="MemberList"><div class="member-list__header svelte-dnjj1q"><h2 class="member-list__title svelte-dnjj1q">Members</h2> <span class="member-list__count svelte-dnjj1q"> </span> <!></div> <div class="member-list__content svelte-dnjj1q"><!> <!> <!> <!></div></aside>`);function qi(a,o){g(o,!0);let{t:c}=q(),u=n(()=>o.participants.filter(e=>e.onlineStatus===`online`)),d=n(()=>o.participants.filter(e=>e.onlineStatus===`away`||e.onlineStatus===`dnd`)),f=n(()=>o.participants.filter(e=>e.onlineStatus===`offline`));function m(e){switch(e){case`online`:return`var(--smrt-color-success)`;case`away`:return`var(--smrt-color-warning)`;case`dnd`:return`var(--smrt-color-error)`;default:return`var(--smrt-color-outline)`}}function h(e){switch(e){case`online`:return`Online`;case`away`:return`Away`;case`dnd`:return`Do not disturb`;default:return`Offline`}}function _(e){switch(e){case`owner`:return`Owner`;case`admin`:return`Admin`;default:return``}}var v=Ki(),y=F(v),b=L(F(y),2),C=z(b,!0),w=L(b,2);{let t=n(()=>c($[`chat.member_list.close`]));Y(w,{variant:`ghost`,size:`sm`,class:`close-btn`,type:`button`,get onclick(){return o.onclose},get"aria-label"(){return e(t)},children:(e,t)=>{var n=Ii();S(e,n)},$$slots:{default:!0}})}s(y);var T=L(y,2),E=F(T),D=r=>{var a=Vi(),o=F(a),c=L(F(o)),d=z(c,!0);s(o);var f=L(o,2);p(f,21,()=>e(u),e=>e.id,(r,a)=>{var o=Bi(),c=F(o),u=F(c),d=t=>{var n=Li();H(()=>U(n,`src`,e(a).avatarUrl)),S(t,n)},f=t=>{var n=Ri(),r=z(n,!0);H(e=>l(r,e),[()=>(e(a).nickname||e(a).name).charAt(0).toUpperCase()]),S(t,n)};t(u,t=>{e(a).avatarUrl?t(d):t(f,-1)});var p=L(u,2);let g;s(c);var v=L(c,2),y=F(v),b=z(y,!0),C=L(y,2),w=t=>{var n=zi(),r=z(n,!0);H(t=>{i(n,1,`role-badge role-badge--${e(a).role??``}`,`svelte-dnjj1q`),l(r,t)},[()=>_(e(a).role)]),S(t,n)},T=n(()=>_(e(a).role));t(C,t=>{e(T)&&t(w)}),s(v),s(o),H((t,n)=>{U(p,`aria-label`,t),g=x(p,``,g,{background:n}),l(b,e(a).nickname||e(a).name)},[()=>h(e(a).onlineStatus),()=>m(e(a).onlineStatus)]),S(r,o)}),s(f),s(a),H(()=>l(d,e(u).length)),S(r,a)};t(E,t=>{e(u).length>0&&t(D)});var O=L(E,2),k=r=>{var a=Hi(),o=F(a),c=L(F(o)),u=z(c,!0);s(o);var f=L(o,2);p(f,21,()=>e(d),e=>e.id,(r,a)=>{var o=Bi(),c=F(o),u=F(c),d=t=>{var n=Li();H(()=>U(n,`src`,e(a).avatarUrl)),S(t,n)},f=t=>{var n=Ri(),r=z(n,!0);H(e=>l(r,e),[()=>(e(a).nickname||e(a).name).charAt(0).toUpperCase()]),S(t,n)};t(u,t=>{e(a).avatarUrl?t(d):t(f,-1)});var p=L(u,2);let g;s(c);var v=L(c,2),y=F(v),b=z(y,!0),C=L(y,2),w=t=>{var n=zi(),r=z(n,!0);H(t=>{i(n,1,`role-badge role-badge--${e(a).role??``}`,`svelte-dnjj1q`),l(r,t)},[()=>_(e(a).role)]),S(t,n)},T=n(()=>_(e(a).role));t(C,t=>{e(T)&&t(w)}),s(v),s(o),H((t,n)=>{U(p,`aria-label`,t),g=x(p,``,g,{background:n}),l(b,e(a).nickname||e(a).name)},[()=>h(e(a).onlineStatus),()=>m(e(a).onlineStatus)]),S(r,o)}),s(f),s(a),H(()=>l(u,e(d).length)),S(r,a)};t(O,t=>{e(d).length>0&&t(k)});var A=L(O,2),j=r=>{var a=Wi(),o=F(a),c=L(F(o)),u=z(c,!0);s(o);var d=L(o,2);p(d,21,()=>e(f),e=>e.id,(r,a)=>{var o=Ui(),c=F(o),u=F(c),d=t=>{var n=Li();H(()=>U(n,`src`,e(a).avatarUrl)),S(t,n)},f=t=>{var n=Ri(),r=z(n,!0);H(e=>l(r,e),[()=>(e(a).nickname||e(a).name).charAt(0).toUpperCase()]),S(t,n)};t(u,t=>{e(a).avatarUrl?t(d):t(f,-1)});var p=L(u,2);let g;s(c);var v=L(c,2),y=F(v),b=z(y,!0),C=L(y,2),w=t=>{var n=zi(),r=z(n,!0);H(t=>{i(n,1,`role-badge role-badge--${e(a).role??``}`,`svelte-dnjj1q`),l(r,t)},[()=>_(e(a).role)]),S(t,n)},T=n(()=>_(e(a).role));t(C,t=>{e(T)&&t(w)}),s(v),s(o),H((t,n)=>{U(p,`aria-label`,t),g=x(p,``,g,{background:n}),l(b,e(a).nickname||e(a).name)},[()=>h(e(a).onlineStatus),()=>m(e(a).onlineStatus)]),S(r,o)}),s(d),s(a),H(()=>l(u,e(f).length)),S(r,a)};t(A,t=>{e(f).length>0&&t(j)});var M=L(A,2),N=e=>{var t=Gi(),n=z(t,!0);H(e=>l(n,e),[()=>c($[`chat.member_list.empty`])]),S(e,t)};t(M,e=>{o.participants.length===0&&e(N)}),s(T),s(v),H(e=>{U(v,`aria-label`,e),l(C,o.participants.length)},[()=>c($[`chat.member_list.room_members`])]),S(a,v),r()}var Ji=c(`<span class="room-header__icon svelte-54tuky" aria-hidden="true"> </span>`),Yi=c(`<img class="room-header__avatar svelte-54tuky" alt=""/>`),Xi=c(`<span class="room-header__avatar-placeholder svelte-54tuky"> </span>`),Zi=c(`<p class="room-header__topic svelte-54tuky"> </p>`),Qi=c(`<svg class="header-btn__icon svelte-54tuky" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path><circle cx="9" cy="7" r="4"></circle><path d="M23 21v-2a4 4 0 0 0-3-3.87"></path><path d="M16 3.13a4 4 0 0 1 0 7.75"></path></svg> <span class="header-btn__count svelte-54tuky"> </span>`,1),$i=f(`<svg class="header-btn__icon svelte-54tuky" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.35-4.35"></path></svg>`),ea=c(`<header class="room-header svelte-54tuky" data-smrt-component="RoomHeader"><div class="room-header__info svelte-54tuky"><div class="room-header__title-row svelte-54tuky"><!> <h1 class="room-header__name svelte-54tuky"> </h1> <span class="room-header__type-badge svelte-54tuky"> </span></div> <!></div> <div class="room-header__actions svelte-54tuky"><!> <!></div></header>`);function ta(i,a){g(a,!0);let{t:o}=q(),c=n(()=>{switch(a.room.roomType){case`public`:return`#`;case`private`:return`🔒`;case`dm`:return``;case`agent`:return`⚙`;default:return`#`}}),u=n(()=>{switch(a.room.roomType){case`public`:return`Public channel`;case`private`:return`Private channel`;case`dm`:return`Direct message`;case`agent`:return`Agent conversation`;default:return`Channel`}});var d=ea(),f=F(d),p=F(f),m=F(p),h=t=>{var n=Ji(),r=z(n,!0);H(()=>l(r,e(c))),S(t,n)},_=e=>{var t=Yi();H(()=>U(t,`src`,a.room.avatarUrl)),S(e,t)},v=e=>{var t=Xi(),n=z(t,!0);H(e=>l(n,e),[()=>a.room.name.charAt(0).toUpperCase()]),S(e,t)};t(m,e=>{a.room.roomType===`dm`?a.room.avatarUrl?e(_,1):e(v,-1):e(h)});var y=L(m,2),b=z(y,!0),x=L(y,2),C=z(x,!0);s(p);var w=L(p,2),T=e=>{var t=Zi(),n=z(t,!0);H(()=>{U(t,`title`,a.room.topic),l(n,a.room.topic)}),S(e,t)};t(w,e=>{a.room.topic&&e(T)}),s(f);var E=L(f,2),D=F(E),O=t=>{{let r=n(()=>o($[`chat.room_header.show_members`],{count:a.participantCount})),i=n(()=>o($[`chat.room_header.members`]));Y(t,{variant:`ghost`,size:`sm`,class:`header-btn`,type:`button`,get onclick(){return a.onshowmembers},get"aria-label"(){return e(r)},get title(){return e(i)},children:(e,t)=>{var n=Qi(),r=L(V(n),2),i=z(r,!0);H(()=>l(i,a.participantCount)),S(e,n)},$$slots:{default:!0}})}};t(D,e=>{a.onshowmembers&&e(O)});var k=L(D,2),A=t=>{{let r=n(()=>o($[`chat.room_header.search_messages`])),i=n(()=>o($[`chat.room_header.search`]));Y(t,{variant:`ghost`,size:`sm`,class:`header-btn`,type:`button`,get onclick(){return a.onshowsearch},get"aria-label"(){return e(r)},get title(){return e(i)},children:(e,t)=>{var n=$i();S(e,n)},$$slots:{default:!0}})}};t(k,e=>{a.onshowsearch&&e(A)}),s(E),s(d),H(t=>{U(d,`aria-label`,t),l(b,a.room.name),l(C,e(u))},[()=>o($[`chat.room_header.room_label`],{name:a.room.name})]),S(i,d),r()}var na=c(`<button class="message-input__reply-close svelte-ucy6mj" type="button"><svg viewBox="0 0 16 16" width="14" height="14"><path d="M4 4l8 8M12 4l-8 8" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path></svg></button>`),ra=c(`<div class="message-input__reply svelte-ucy6mj"><div class="message-input__reply-body svelte-ucy6mj"><span class="message-input__reply-name svelte-ucy6mj"> </span> <span class="message-input__reply-text svelte-ucy6mj"> </span></div> <!></div>`),ia=c(`<div data-smrt-component="MessageInput"><!> <div class="message-input__bar svelte-ucy6mj"><!> <button class="message-input__send svelte-ucy6mj" type="button"><svg viewBox="0 0 20 20" width="18" height="18"><path d="M3.5 10L2 3l16 7-16 7 1.5-7zm0 0h7" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div></div>`);function aa(a,o){g(o,!0);let{t:c}=q(),u=k(o,`placeholder`,3,`Type a message...`),d=k(o,`disabled`,3,!1),f=k(o,`replyTo`,3,null),p=A(``),m;function h(){let t=e(p).trim();t&&!d()&&(o.onsend(t),W(p,``),m&&(m.style.height=`auto`))}function _(e){e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),h())}function v(e){let t=e.currentTarget;m=t,t.style.height=`auto`,t.style.height=`${Math.min(t.scrollHeight,120)}px`}var y=ia();let b;var x=F(y),C=e=>{var n=ra(),r=F(n),i=F(r),a=z(i,!0),u=L(i,2),d=z(u,!0);s(r);var p=L(r,2),m=e=>{var t=na();H(e=>U(t,`aria-label`,e),[()=>c($[`chat.message_input.cancel_reply`])]),w(`click`,t,function(...e){o.oncancelreply?.apply(this,e)}),S(e,t)};t(p,e=>{o.oncancelreply&&e(m)}),s(n),H(()=>{l(a,f().senderName),l(d,f().content)}),S(e,n)};t(x,e=>{f()&&e(C)});var T=L(x,2),E=F(T);{let t=n(()=>c($[`chat.message_input.input_label`]));Oe(E,{class:`message-input__textarea`,get placeholder(){return u()},get disabled(){return d()},rows:1,onkeydown:_,oninput:v,get"aria-label"(){return e(t)},get value(){return e(p)},set value(e){W(p,e,!0)}})}var D=L(E,2);s(T),s(y),H((e,t)=>{b=i(y,1,`message-input svelte-ucy6mj`,null,b,{disabled:d()}),D.disabled=e,U(D,`aria-label`,t)},[()=>d()||e(p).trim().length===0,()=>c($[`chat.message_input.send`])]),w(`click`,D,h),S(a,y),r()}T([`click`]);function oa(t,i){g(i,!0);let{t:a}=q(),o=k(i,`isOpen`,3,!1),s=[`👍`,`👎`,`❤️`,`😂`,`😮`,`😢`,`🔥`,`🎉`,`👏`,`🤔`,`😍`,`🚀`,`👀`,`✅`,`❌`,`💯`];{let r=n(()=>a(Q[`chat.reaction_picker.reactions`]));ge(t,{get emojis(){return s},get isOpen(){return o()},get label(){return e(r)},emojiLabel:e=>a(Q[`chat.reaction_picker.react_with`],{emoji:e}),get onpick(){return i.onreact}})}r()}var sa=c(`<div class="message-item message-item--system svelte-1g4tgey" data-smrt-component="MessageItem"><!></div>`),ca=c(`<div class="message-item__avatar svelte-1g4tgey"><!></div>`),la=c(`<span class="message-item__sender svelte-1g4tgey"> </span>`),ua=c(`<div class="message-item__reply-preview svelte-1g4tgey"><span class="message-item__reply-name svelte-1g4tgey"> </span> <span class="message-item__reply-text svelte-1g4tgey"> </span></div>`),da=c(`<span class="message-item__tool-duration svelte-1g4tgey"> </span>`),fa=c(`<span class="message-item__tool-error svelte-1g4tgey"> </span>`),pa=c(`<div class="message-item__tool-call svelte-1g4tgey"><span class="message-item__tool-name svelte-1g4tgey"> </span> <span> </span> <!> <!></div>`),ma=c(`<span class="message-item__reaction-emoji svelte-1g4tgey"> </span> <span class="message-item__reaction-count svelte-1g4tgey"> </span>`,1),ha=c(`<div class="message-item__reactions svelte-1g4tgey"></div>`),ga=c(`<span class="message-item__edited svelte-1g4tgey">(edited)</span>`),_a=f(`<svg viewBox="0 0 16 16" width="14" height="14" aria-hidden="true"><circle cx="3" cy="8" r="1.3" fill="currentColor"></circle><circle cx="8" cy="8" r="1.3" fill="currentColor"></circle><circle cx="13" cy="8" r="1.3" fill="currentColor"></circle></svg>`),va=f(`<svg viewBox="0 0 16 16" width="14" height="14"><circle cx="8" cy="8" r="7" fill="none" stroke="currentColor" stroke-width="1.2"></circle><circle cx="5.5" cy="6.5" r="0.8" fill="currentColor"></circle><circle cx="10.5" cy="6.5" r="0.8" fill="currentColor"></circle><path d="M5.5 9.5c.5 1.2 1.5 1.8 2.5 1.8s2-.6 2.5-1.8" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round"></path></svg>`),ya=f(`<svg viewBox="0 0 16 16" width="14" height="14"><path d="M6 3L2 7l4 4" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"></path><path d="M2 7h8c2.2 0 4 1.8 4 4v1" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"></path></svg>`),ba=f(`<svg viewBox="0 0 16 16" width="14" height="14"><path d="M11.5 1.5l3 3L5 14H2v-3z" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"></path></svg>`),xa=f(`<svg viewBox="0 0 16 16" width="14" height="14"><path d="M2 4h12M5.3 4V2.7A.7.7 0 016 2h4a.7.7 0 01.7.7V4m1.6 0v9.3a1.4 1.4 0 01-1.4 1.4H5.1a1.4 1.4 0 01-1.4-1.4V4" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"></path></svg>`),Sa=c(`<div class="message-item__picker-popover svelte-1g4tgey"><!></div>`),Ca=c(`<div class="message-item__actions svelte-1g4tgey" role="group"><!> <!> <!> <!></div> <!>`,1),wa=c(`<div role="article" data-smrt-component="MessageItem"><!> <div class="message-item__body svelte-1g4tgey"><!> <!> <!> <!> <!> <div class="message-item__meta svelte-1g4tgey"><span class="message-item__time svelte-1g4tgey"> </span> <!></div></div> <!> <!></div>`);function Ta(a,o){g(o,!0);let{t:c}=q(),u=A(!1),d=A(!1),f=n(()=>o.message.messageType===`system`||o.message.messageType===`action`?`system`:o.message.role===`assistant`||o.message.messageType===`tool_call`||o.message.messageType===`tool_result`?`agent`:`default`),m=n(()=>(o.message.createdAt instanceof Date?o.message.createdAt:new Date(o.message.createdAt)).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`})),h=n(()=>!!(o.onreact||o.onreply||o.isOwn&&(o.onedit||o.ondelete))),_=n(()=>`message-actions-${o.message.id}`);function v(e){o.onreact?.(o.message.id,e),W(u,!1)}function b(){W(u,!e(u))}function x(){W(d,!0)}function T(e){let t=e.relatedTarget,n=e.currentTarget;t&&n.contains(t)||(W(d,!1),W(u,!1))}function D(e){e.key===`Escape`&&(W(u,!1),W(d,!1))}var O=C();E(`keydown`,N,function(...t){(e(d)||e(u)?D:void 0)?.apply(this,t)});var k=V(O),j=e=>{var t=sa(),n=F(t);X(n,{get content(){return o.message.content},own:!1,variant:`system`}),s(t),S(e,t)},M=r=>{var a=wa();let g;var C=F(a),D=e=>{var t=ca();Wn(F(t),{get name(){return o.message.senderName},get avatarUrl(){return o.message.senderAvatarUrl},size:`sm`}),s(t),S(e,t)};t(C,e=>{o.isOwn||e(D)});var O=L(C,2),k=F(O),A=e=>{var t=la(),n=z(t,!0);H(()=>l(n,o.message.senderName)),S(e,t)};t(k,e=>{o.isOwn||e(A)});var j=L(k,2),M=e=>{var t=ua(),n=F(t),r=z(n,!0),i=L(n,2),a=z(i,!0);s(t),H(()=>{l(r,o.message.replyTo.senderName),l(a,o.message.replyTo.content)}),S(e,t)};t(j,e=>{o.message.replyTo&&e(M)});var N=L(j,2);X(N,{get content(){return o.message.content},get own(){return o.isOwn},get variant(){return e(f)}});var P=L(N,2),I=e=>{var n=pa(),r=F(n),a=z(r,!0),c=L(r,2),u=z(c,!0),d=L(c,2),f=e=>{var t=da(),n=z(t);H(()=>l(n,`${o.message.toolCallData.duration??``}ms`)),S(e,t)};t(d,e=>{o.message.toolCallData.duration&&e(f)});var p=L(d,2),m=e=>{var t=fa(),n=z(t,!0);H(()=>l(n,o.message.toolCallData.error)),S(e,t)};t(p,e=>{o.message.toolCallData.error&&e(m)}),s(n),H(()=>{l(a,o.message.toolCallData.toolName),i(c,1,`message-item__tool-status ${o.message.toolCallData.status??``}`,`svelte-1g4tgey`),l(u,o.message.toolCallData.status)}),S(e,n)};t(P,e=>{o.message.toolCallData&&e(I)});var ee=L(P,2),R=t=>{var r=ha();p(r,21,()=>o.message.reactions,y,(t,r)=>{{let i=n(()=>e(r).reacted?` message-item__reaction--active`:``);Y(t,{variant:`ghost`,size:`sm`,get class(){return`message-item__reaction${e(i)??``}`},type:`button`,onclick:()=>o.onreact?.(o.message.id,e(r).emoji),get"aria-label"(){return`${e(r).emoji??``} ${e(r).count??``}`},children:(t,n)=>{var i=ma(),a=V(i),o=z(a,!0),s=L(a,2),c=z(s,!0);H(()=>{l(o,e(r).emoji),l(c,e(r).count)}),S(t,i)},$$slots:{default:!0}})}}),s(r),S(t,r)};t(ee,e=>{o.message.reactions.length>0&&e(R)});var te=L(ee,2),ne=F(te),re=z(ne,!0),B=L(ne,2),ie=e=>{var t=ga();S(e,t)};t(B,e=>{o.message.isEdited&&e(ie)}),s(te),s(O);var ae=L(O,2),oe=t=>{{let r=n(()=>c($[`chat.message_item.more_actions`]));Y(t,{variant:`ghost`,size:`sm`,class:`message-item__more-btn`,type:`button`,onclick:x,onfocus:x,get"aria-label"(){return e(r)},get"aria-expanded"(){return e(d)},get"aria-controls"(){return e(_)},children:(e,t)=>{var n=_a();S(e,n)},$$slots:{default:!0}})}};t(ae,t=>{e(h)&&t(oe)});var se=L(ae,2),ce=r=>{var i=Ca(),a=V(i),l=F(a),d=t=>{{let r=n(()=>c($[`chat.message_item.add_reaction`]));Y(t,{variant:`ghost`,size:`sm`,class:`message-item__action-btn`,type:`button`,onclick:b,get"aria-label"(){return e(r)},children:(e,t)=>{var n=va();S(e,n)},$$slots:{default:!0}})}};t(l,e=>{o.onreact&&e(d)});var f=L(l,2),p=t=>{{let r=n(()=>c($[`chat.message_item.reply`]));Y(t,{variant:`ghost`,size:`sm`,class:`message-item__action-btn`,type:`button`,onclick:()=>o.onreply?.(o.message.id),get"aria-label"(){return e(r)},children:(e,t)=>{var n=ya();S(e,n)},$$slots:{default:!0}})}};t(f,e=>{o.onreply&&e(p)});var m=L(f,2),h=t=>{{let r=n(()=>c($[`chat.message_item.edit`]));Y(t,{variant:`ghost`,size:`sm`,class:`message-item__action-btn`,type:`button`,onclick:()=>o.onedit?.(o.message.id),get"aria-label"(){return e(r)},children:(e,t)=>{var n=ba();S(e,n)},$$slots:{default:!0}})}};t(m,e=>{o.isOwn&&o.onedit&&e(h)});var g=L(m,2),y=t=>{{let r=n(()=>c($[`chat.message_item.delete`]));Y(t,{variant:`ghost`,size:`sm`,class:`message-item__action-btn`,type:`button`,onclick:()=>o.ondelete?.(o.message.id),get"aria-label"(){return e(r)},children:(e,t)=>{var n=xa();S(e,n)},$$slots:{default:!0}})}};t(g,e=>{o.isOwn&&o.ondelete&&e(y)}),s(a);var x=L(a,2),C=e=>{var t=Sa();oa(F(t),{isOpen:!0,onreact:v}),s(t),S(e,t)};t(x,t=>{e(u)&&t(C)}),H(t=>{U(a,`id`,e(_)),U(a,`aria-label`,t)},[()=>c($[`chat.message_item.more_actions`])]),S(r,i)};t(se,t=>{e(d)&&t(ce)}),s(a),H(t=>{g=i(a,1,`message-item svelte-1g4tgey`,null,g,{"message-item--own":o.isOwn}),U(a,`aria-label`,t),l(re,e(m))},[()=>c($[`chat.message_item.message_from`],{name:o.message.senderName})]),E(`mouseenter`,a,()=>W(d,!0)),E(`mouseleave`,a,()=>{W(d,!1),W(u,!1)}),w(`focusout`,a,T),S(r,a)};t(k,e=>{o.message.messageType===`system`||o.message.messageType===`action`?e(j):e(M,-1)}),S(a,O),r()}T([`focusout`]);var Ea=c(`<div class="message-list__empty svelte-rbnc13"><span> </span></div>`),Da=c(`<div class="message-list__date-separator svelte-rbnc13" role="separator"><span class="message-list__date-label svelte-rbnc13"> </span></div> <!>`,1),Oa=c(`<div class="message-list svelte-rbnc13" role="log" data-smrt-component="MessageList"><!></div>`);function ka(i,a){g(a,!0);let{t:o}=q(),c=A(void 0),u=n(()=>{let e=[],t=``;for(let n of a.messages){let r=(n.createdAt instanceof Date?n.createdAt:new Date(n.createdAt)).toLocaleDateString(void 0,{year:`numeric`,month:`long`,day:`numeric`});r!==t&&(t=r,e.push({dateLabel:r,messages:[]})),e[e.length-1].messages.push(n)}return e});function d(e){a.onloadmore&&e.target.scrollTop<60&&a.onloadmore()}var f=Oa(),m=F(f),h=e=>{var t=Ea(),n=F(t),r=z(n,!0);s(t),H(e=>l(r,e),[()=>o($[`chat.message_list.no_messages`])]),S(e,t)},_=t=>{var r=C(),i=V(r);p(i,17,()=>e(u),y,(t,r)=>{var i=Da(),o=V(i),c=F(o),u=z(c,!0);s(o);var d=L(o,2);p(d,17,()=>e(r).messages,e=>e.id,(t,r)=>{{let i=n(()=>e(r).senderProfileId===a.currentProfileId);Ta(t,{get message(){return e(r)},get isOwn(){return e(i)},get onreply(){return a.onreply},get onreact(){return a.onreact}})}}),H(()=>l(u,e(r).dateLabel)),S(t,i)}),S(t,r)};t(m,e=>{a.messages.length===0?e(h):e(_,-1)}),s(f),M(f,e=>W(c,e),()=>e(c)),H(e=>U(f,`aria-label`,e),[()=>o($[`chat.message_list.messages_label`])]),E(`scroll`,f,d),S(i,f),r()}var Aa=c(`<span class="thread-panel__resolved svelte-o9q95w">Resolved</span>`),ja=f(`<svg viewBox="0 0 16 16" width="16" height="16"><path d="M4 4l8 8M12 4l-8 8" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path></svg>`),Ma=c(`<aside class="thread-panel svelte-o9q95w" data-smrt-component="ThreadPanel"><header class="thread-panel__header svelte-o9q95w"><div class="thread-panel__header-text svelte-o9q95w"><h3 class="thread-panel__title svelte-o9q95w"> </h3> <span class="thread-panel__meta svelte-o9q95w"> <!></span></div> <!> <!></header> <div class="thread-panel__messages svelte-o9q95w"><!></div> <div class="thread-panel__input svelte-o9q95w"><!></div></aside>`);function Na(i,a){g(a,!0);let{t:o}=q(),c=n(()=>a.thread.title||`Thread`),u=n(()=>a.thread.messageCount>0?a.thread.messageCount-1:0);var f=Ma(),p=F(f),m=F(p),h=F(m),_=z(h,!0),v=L(h,2),y=F(v),b=L(y),x=e=>{var t=d();H(()=>l(t,`· ${a.thread.participantCount??``} ${a.thread.participantCount===1?`participant`:`participants`}`)),S(e,t)};t(b,e=>{a.thread.participantCount>0&&e(x)}),s(v),s(m);var C=L(m,2),w=e=>{var t=Aa();S(e,t)};t(C,e=>{a.thread.isResolved&&e(w)});var T=L(C,2);{let t=n(()=>o($[`chat.thread_panel.close`]));Y(T,{variant:`ghost`,size:`sm`,class:`thread-panel__close`,type:`button`,get onclick(){return a.onclose},get"aria-label"(){return e(t)},children:(e,t)=>{var n=ja();S(e,n)},$$slots:{default:!0}})}s(p);var E=L(p,2);ka(F(E),{get messages(){return a.messages},get currentProfileId(){return a.currentProfileId}}),s(E);var D=L(E,2),O=F(D);{let t=n(()=>o($[`chat.thread_panel.reply_placeholder`]));aa(O,{get onsend(){return a.onsend},get placeholder(){return e(t)}})}s(D),s(f),H(t=>{U(f,`aria-label`,t),l(_,e(c)),l(y,`${e(u)??``} ${e(u)===1?`reply`:`replies`} `)},[()=>o($[`chat.thread_panel.thread_label`],{title:e(c)})]),S(i,f),r()}var Pa=f(`<svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></svg>`),Fa=c(`<div class="file-upload__file svelte-8f8u96"><span class="file-upload__file-icon svelte-8f8u96"> </span> <div class="file-upload__file-info svelte-8f8u96"><span class="file-upload__file-name svelte-8f8u96"> </span> <span class="file-upload__file-size svelte-8f8u96"> </span></div> <!></div>`),Ia=c(`<div class="file-upload__preview svelte-8f8u96"><!> <div class="file-upload__preview-actions svelte-8f8u96"><!> <!></div></div>`),La=c(`<div class="file-upload__error svelte-8f8u96" role="alert"> </div>`),Ra=c(`<div data-smrt-component="FileUpload"><!> <!> <div><label class="file-upload__label svelte-8f8u96"><input type="file" class="file-upload__input svelte-8f8u96" multiple=""/> <svg class="file-upload__icon svelte-8f8u96" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M9 16h6v-6h4l-7-7-7 7h4zm-4 2h14v2H5z"></path></svg> <span class="file-upload__text svelte-8f8u96"><!></span> <span class="file-upload__hint svelte-8f8u96"> </span></label></div></div>`);function za(a,o){g(o,!0);let{t:c}=q(),u=k(o,`maxSize`,3,26214400),f=k(o,`disabled`,3,!1),m=A(!1),h=A(I([])),_=A(``);function y(t){if(!t||t.length===0)return;W(_,``);let n=[],r=[];for(let e of Array.from(t))e.size>u()?r.push(e.name):n.push(e);r.length>0&&W(_,`${r.join(`, `)} exceed${r.length===1?`s`:``} the ${j(u())} limit`),W(h,[...e(h),...n],!0)}function b(e){e.preventDefault(),W(m,!1),!f()&&y(e.dataTransfer?.files??null)}function x(e){e.preventDefault(),f()||W(m,!0)}function C(){W(m,!1)}function T(e){let t=e.target;y(t.files),t.value=``}function D(t){W(h,e(h).filter((e,n)=>n!==t),!0),e(h).length===0&&W(_,``)}function O(){if(e(h).length===0)return;let t=new DataTransfer;for(let n of e(h))t.items.add(n);o.onupload(t.files),W(h,[],!0),W(_,``)}function j(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}function M(e){return e.startsWith(`image/`)?`img`:e.startsWith(`video/`)?`vid`:e.startsWith(`audio/`)?`aud`:e===`application/pdf`?`pdf`:`file`}var N=Ra();let P;var ee=F(N),R=t=>{var r=Ia(),i=F(r);p(i,19,()=>e(h),(e,t)=>e.name+t,(t,r,i)=>{var a=Fa(),o=F(a),u=z(o,!0),d=L(o,2),f=F(d),p=z(f,!0),m=L(f,2),h=z(m,!0);s(d);var g=L(d,2);{let t=n(()=>c(Q[`chat.file_upload.remove`],{name:e(r).name}));Y(g,{variant:`ghost`,size:`sm`,class:`file-upload__file-remove`,type:`button`,onclick:()=>D(e(i)),get"aria-label"(){return e(t)},children:(e,t)=>{var n=Pa();S(e,n)},$$slots:{default:!0}})}s(a),H((t,n)=>{l(u,t),l(p,e(r).name),l(h,n)},[()=>M(e(r).type),()=>j(e(r).size)]),S(t,a)});var a=L(i,2),o=F(a);Y(o,{variant:`primary`,size:`sm`,type:`button`,onclick:O,children:(t,n)=>{v();var r=d();H(e=>l(r,e),[()=>c(Q[`chat.file_upload.upload_files`],{count:e(h).length,plural:e(h).length===1?``:`s`})]),S(t,r)},$$slots:{default:!0}});var u=L(o,2);Y(u,{variant:`secondary`,size:`sm`,type:`button`,onclick:()=>{W(h,[],!0),W(_,``)},children:(e,t)=>{v();var n=d(`Clear`);S(e,n)},$$slots:{default:!0}}),s(a),s(r),H(e=>U(r,`aria-label`,e),[()=>c(Q[`chat.file_upload.preview`])]),S(t,r)};t(ee,t=>{e(h).length>0&&t(R)});var te=L(ee,2),ne=t=>{var n=La(),r=z(n,!0);H(()=>l(r,e(_))),S(t,n)};t(te,t=>{e(_)&&t(ne)});var re=L(te,2);let B;var V=F(re),ie=F(V),ae=L(ie,4),oe=F(ae),se=e=>{var t=d();H(e=>l(t,e),[()=>c(Q[`chat.file_upload.disabled`])]),S(e,t)},ce=e=>{var t=d();H(e=>l(t,e),[()=>c(Q[`chat.file_upload.drop_files`])]),S(e,t)};t(oe,e=>{f()?e(se):e(ce,-1)}),s(ae);var G=L(ae,2),le=z(G,!0);s(V),s(re),s(N),H(t=>{P=i(N,1,`file-upload svelte-8f8u96`,null,P,{"file-upload--disabled":f()}),B=i(re,1,`file-upload__drop-zone svelte-8f8u96`,null,B,{"file-upload__drop-zone--active":e(m),"file-upload__drop-zone--disabled":f()}),U(ie,`accept`,o.accept),ie.disabled=f(),l(le,t)},[()=>c(Q[`chat.file_upload.max_size`],{size:j(u())})]),E(`drop`,re,b),E(`dragover`,re,x),E(`dragleave`,re,C),w(`change`,ie,T),S(a,N),r()}T([`change`]);var Ba=c(`<div class="link-preview__image svelte-13jrn1d"><img class="svelte-13jrn1d"/></div>`),Va=c(`<span class="link-preview__title svelte-13jrn1d"> </span>`),Ha=c(`<span class="link-preview__description svelte-13jrn1d"> </span>`),Ua=c(`<a class="link-preview svelte-13jrn1d" target="_blank" rel="noopener noreferrer" data-smrt-component="LinkPreview"><!> <div class="link-preview__body svelte-13jrn1d"><!> <!> <span class="link-preview__domain svelte-13jrn1d"> </span></div></a>`);function Wa(i,a){g(a,!0);let o=n(()=>{try{return new URL(a.url).hostname}catch{return a.url}});var c=Ua(),u=F(c),d=e=>{var t=Ba(),n=z(t);H(()=>{U(n,`src`,a.imageUrl),U(n,`alt`,a.title??``)}),S(e,t)};t(u,e=>{a.imageUrl&&e(d)});var f=L(u,2),p=F(f),m=e=>{var t=Va(),n=z(t,!0);H(()=>l(n,a.title)),S(e,t)};t(p,e=>{a.title&&e(m)});var h=L(p,2),_=e=>{var t=Ha(),n=z(t,!0);H(()=>l(n,a.description)),S(e,t)};t(h,e=>{a.description&&e(_)});var v=L(h,2),y=z(v,!0);s(f),s(c),H(()=>{U(c,`href`,a.url),l(y,e(o))}),S(i,c),r()}var Ga=c(`<button type="button" role="option"><!> <span class="mention-autocomplete__name svelte-1cyjli3"> <mark class="mention-autocomplete__highlight svelte-1cyjli3"> </mark> </span></button>`),Ka=c(`<div class="mention-autocomplete svelte-1cyjli3" role="listbox" data-smrt-component="MentionAutocomplete"></div>`);function qa(a,o){g(o,!0);let{t:c}=q(),u=A(0);j(()=>{o.suggestions.length&&W(u,0)});function d(t){if(o.isVisible&&o.suggestions.length!==0)switch(t.key){case`ArrowDown`:t.preventDefault(),W(u,(e(u)+1)%o.suggestions.length);break;case`ArrowUp`:t.preventDefault(),W(u,(e(u)-1+o.suggestions.length)%o.suggestions.length);break;case`Enter`:case`Tab`:t.preventDefault(),o.onselect(o.suggestions[e(u)].id);break;case`Escape`:t.preventDefault(),o.oncancel?.()}}function f(e,t){if(!t)return{before:e,match:``,after:``};let n=e.toLowerCase().indexOf(t.toLowerCase());return n===-1?{before:e,match:``,after:``}:{before:e.slice(0,n),match:e.slice(n,n+t.length),after:e.slice(n+t.length)}}var m=C();E(`keydown`,N,function(...e){(o.isVisible?d:void 0)?.apply(this,e)});var h=V(m),_=t=>{var r=Ka();p(r,23,()=>o.suggestions,e=>e.id,(t,r,a)=>{let c=n(()=>f(e(r).name,o.query));var d=Ga();let p;var m=F(d);Wn(m,{get name(){return e(r).name},get avatarUrl(){return e(r).avatarUrl},size:`sm`});var h=L(m,2),g=F(h,!0),_=L(g),v=z(_,!0),y=L(_,1,!0);s(h),s(d),H(()=>{p=i(d,1,`mention-autocomplete__item svelte-1cyjli3`,null,p,{"mention-autocomplete__item--active":e(a)===e(u)}),U(d,`aria-selected`,e(a)===e(u)),l(g,e(c).before),l(v,e(c).match),l(y,e(c).after)}),w(`click`,d,()=>o.onselect(e(r).id)),E(`pointerenter`,d,()=>W(u,e(a),!0)),S(t,d)}),s(r),H(e=>U(r,`aria-label`,e),[()=>c(Q[`chat.mention_autocomplete.suggestions`])]),S(t,r)};t(h,e=>{o.isVisible&&o.suggestions.length>0&&e(_)}),S(a,m),r()}T([`click`]);var Ja=f(`<svg class="read-receipts__icon svelte-1sf2l8g" viewBox="0 0 16 16" width="14" height="14" aria-hidden="true"><path d="M13.5 4.5l-7 7L3 8" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg>`),Ya=c(`<svg class="read-receipts__icon read-receipts__icon--read svelte-1sf2l8g" viewBox="0 0 20 16" width="18" height="14" aria-hidden="true"><path d="M15.5 4.5l-7 7L5 8" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M19 4.5l-7 7" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg> <span class="read-receipts__count svelte-1sf2l8g"> </span>`,1),Xa=c(`<img class="read-receipts__mini-avatar svelte-1sf2l8g"/>`),Za=c(`<span class="read-receipts__mini-avatar read-receipts__mini-avatar--initials svelte-1sf2l8g"> </span>`),Qa=c(`<span class="read-receipts__mini-avatar read-receipts__mini-avatar--more svelte-1sf2l8g"> </span>`),$a=c(`<span class="read-receipts__avatars svelte-1sf2l8g"><!> <!></span>`),eo=f(`<svg viewBox="0 0 20 16" width="18" height="14" aria-hidden="true"><path d="M15.5 4.5l-7 7L5 8" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M19 4.5l-7 7" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg><!>`,1),to=c(`<span class="read-receipts svelte-1sf2l8g" data-smrt-component="ReadReceipts"><!></span>`);function no(a,o){g(o,!0);let{t:c}=q(),u=n(()=>o.readBy.length>=o.totalParticipants-1),d=n(()=>o.readBy.length<=5);function f(e){return(e[0]??`?`).toUpperCase()}var m=to(),h=F(m),_=e=>{var t=Ja();S(e,t)},v=e=>{var t=Ya(),n=L(V(t),2),r=z(n,!0);H(()=>l(r,o.readBy.length)),S(e,t)},b=n=>{var r=eo(),a=V(r);let c;var d=L(a),m=n=>{var r=$a(),i=F(r);p(i,17,()=>o.readBy.slice(0,3),y,(n,r)=>{var i=C(),a=V(i),o=t=>{var n=Xa();H(()=>{U(n,`src`,e(r).avatarUrl),U(n,`alt`,e(r).name)}),S(t,n)},s=t=>{var n=Za(),i=z(n,!0);H(t=>{U(n,`title`,e(r).name),l(i,t)},[()=>f(e(r).name)]),S(t,n)};t(a,t=>{e(r).avatarUrl?t(o):t(s,-1)}),S(n,i)});var a=L(i,2),c=e=>{var t=Qa(),n=z(t);H(()=>l(n,`+${o.readBy.length-3}`)),S(e,t)};t(a,e=>{o.readBy.length>3&&e(c)}),s(r),S(n,r)};t(d,e=>{o.readBy.length>0&&e(m)}),H(()=>c=i(a,0,`read-receipts__icon svelte-1sf2l8g`,null,c,{"read-receipts__icon--read":e(u)})),S(n,r)};t(h,t=>{o.readBy.length===0?t(_):e(d)?t(b,-1):t(v,1)}),s(m),H(e=>U(m,`aria-label`,e),[()=>c(Q[`chat.read_receipts.read_status`],{readCount:o.readBy.length,total:o.totalParticipants})]),S(a,m),r()}var ro=c(`<span class="presence__label svelte-k0r91z"> </span>`),io=c(`<span class="presence svelte-k0r91z" data-smrt-component="UserPresence"><span></span> <!></span>`);function ao(e,n){let r=k(n,`showLabel`,3,!1),a={online:`Online`,away:`Away`,dnd:`Do not disturb`,offline:`Offline`};var o=io(),c=F(o),u=L(c,2),d=e=>{var t=ro(),r=z(t,!0);H(()=>l(r,a[n.status])),S(e,t)};t(u,e=>{r()&&e(d)}),s(o),H(()=>{U(o,`aria-label`,a[n.status]),i(c,1,`presence__dot ${n.status??``}`,`svelte-k0r91z`)}),S(e,o)}var oo=c(`<span class="mini-chat__sender svelte-zo0sdr"> </span>`),so=c(`<div><!> <div><!> <span class="mini-chat__text svelte-zo0sdr"> </span> <time class="mini-chat__time svelte-zo0sdr"> </time></div></div>`),co=c(`<div class="mini-chat__empty svelte-zo0sdr"><span class="mini-chat__empty-text svelte-zo0sdr"> </span></div>`),lo=f(`<svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M2.01 21L23 12 2.01 3 2 10l15 2-15 2z"></path></svg>`),uo=c(`<!> <!>`,1),fo=c(`<div class="mini-chat svelte-zo0sdr" data-smrt-component="MiniChat"><div class="mini-chat__messages svelte-zo0sdr" role="log"><!> <!></div> <!></div>`);function po(a,o){g(o,!0);let{t:c}=q(),u=k(o,`maxHeight`,3,360),d=A(``),f=A(void 0);function m(t){t.preventDefault();let n=e(d).trim();n&&(o.onsend(n),W(d,``))}function h(e){e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),m(e))}function _(e){return(typeof e==`string`?new Date(e):e).toLocaleTimeString(`en-US`,{hour:`numeric`,minute:`2-digit`})}j(()=>{o.messages.length&&e(f)&&(e(f).scrollTop=e(f).scrollHeight)});var v=fo(),y=F(v);let b;var C=F(y);p(C,17,()=>o.messages,e=>e.id,(r,a)=>{let c=n(()=>e(a).senderProfileId===o.currentProfileId);var u=so();let d;var f=F(u),p=t=>{Wn(t,{get name(){return e(a).senderName},get avatarUrl(){return e(a).senderAvatarUrl},size:`sm`})};t(f,t=>{e(c)||t(p)});var m=L(f,2);let h;var g=F(m),v=t=>{var n=oo(),r=z(n,!0);H(()=>l(r,e(a).senderName)),S(t,n)};t(g,t=>{e(c)||t(v)});var y=L(g,2),b=z(y,!0),x=L(y,2),C=z(x,!0);s(m),s(u),H(t=>{d=i(u,1,`mini-chat__msg svelte-zo0sdr`,null,d,{"mini-chat__msg--own":e(c)}),h=i(m,1,`mini-chat__bubble svelte-zo0sdr`,null,h,{"mini-chat__bubble--own":e(c)}),l(b,e(a).content),l(C,t)},[()=>_(e(a).createdAt)]),S(r,u)});var w=L(C,2),T=e=>{var t=co(),n=F(t),r=z(n,!0);s(t),H(e=>l(r,e),[()=>c($[`chat.mini_chat.no_messages`])]),S(e,t)};t(w,e=>{o.messages.length===0&&e(T)}),s(y),M(y,e=>W(f,e),()=>e(f));var E=L(y,2);Ce(E,{class:`mini-chat__input-bar`,onsubmit:m,children:(t,r)=>{var i=uo(),a=V(i);{let t=n(()=>c($[`chat.mini_chat.placeholder`])),r=n(()=>c($[`chat.mini_chat.input_label`]));_e(a,{class:`mini-chat__input`,type:`text`,get placeholder(){return e(t)},onkeydown:h,get"aria-label"(){return e(r)},get value(){return e(d)},set value(e){W(d,e,!0)}})}var o=L(a,2);{let t=n(()=>!e(d).trim()),r=n(()=>c($[`chat.mini_chat.send`]));Y(o,{variant:`ghost`,class:`mini-chat__send-btn`,type:`submit`,get disabled(){return e(t)},get"aria-label"(){return e(r)},children:(e,t)=>{var n=lo();S(e,n)},$$slots:{default:!0}})}S(t,i)},$$slots:{default:!0}}),s(v),H(e=>{U(y,`aria-label`,e),b=x(y,``,b,{"max-height":`${u()??``}px`})},[()=>c($[`chat.mini_chat.messages_label`])]),S(a,v),r()}var mo=f(`<svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><rect x="3" y="12" width="10" height="2" rx="1"></rect></svg>`),ho=f(`<svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z"></path></svg>`),go=c(`<div class="chat-tab chat-tab--expanded svelte-1krwmy5" data-smrt-component="ChatTab"><div class="chat-tab__header svelte-1krwmy5"><button class="chat-tab__header-btn svelte-1krwmy5" type="button"><!> <span class="chat-tab__name svelte-1krwmy5"> </span></button> <div class="chat-tab__actions svelte-1krwmy5"><!> <!></div></div> <div class="chat-tab__body svelte-1krwmy5"><!></div></div>`),_o=c(`<span class="chat-tab__badge svelte-1krwmy5"> </span>`),vo=c(`<button class="chat-tab chat-tab--collapsed svelte-1krwmy5" type="button" data-smrt-component="ChatTab"><!> <span class="chat-tab__name svelte-1krwmy5"> </span> <!></button>`);function yo(i,a){g(a,!0);let{t:o}=q();var c=C(),u=V(c),d=t=>{var r=go(),i=F(r),c=F(i),u=F(c);Wn(u,{get name(){return a.tab.room.name},get avatarUrl(){return a.tab.room.avatarUrl},size:`sm`});var d=L(u,2),f=z(d,!0);s(c);var p=L(c,2),m=F(p);{let t=n(()=>o($[`chat.chat_tab.minimize`])),r=n(()=>o($[`chat.chat_tab.minimize`]));Y(m,{variant:`ghost`,size:`sm`,class:`chat-tab__icon-btn`,type:`button`,get onclick(){return a.oncollapse},get"aria-label"(){return e(t)},get title(){return e(r)},children:(e,t)=>{var n=mo();S(e,n)},$$slots:{default:!0}})}var h=L(m,2);{let t=n(()=>o($[`chat.chat_tab.close`])),r=n(()=>o($[`chat.chat_tab.close`]));Y(h,{variant:`ghost`,size:`sm`,class:`chat-tab__icon-btn`,type:`button`,get onclick(){return a.onclose},get"aria-label"(){return e(t)},get title(){return e(r)},children:(e,t)=>{var n=ho();S(e,n)},$$slots:{default:!0}})}s(p),s(i);var g=L(i,2);po(F(g),{get messages(){return a.messages},get currentProfileId(){return a.currentProfileId},get onsend(){return a.onsend},maxHeight:320}),s(g),s(r),H((e,t)=>{U(r,`aria-label`,e),U(c,`aria-label`,t),l(f,a.tab.room.name)},[()=>o($[`chat.chat_tab.chat_with`],{name:a.tab.room.name}),()=>o($[`chat.chat_tab.collapse`])]),w(`click`,c,function(...e){a.oncollapse?.apply(this,e)}),S(t,r)},f=e=>{var n=vo(),r=F(n);Wn(r,{get name(){return a.tab.room.name},get avatarUrl(){return a.tab.room.avatarUrl},size:`sm`});var i=L(r,2),c=z(i,!0),u=L(i,2),d=e=>{var t=_o(),n=z(t,!0);H(e=>{U(t,`aria-label`,e),l(n,a.tab.unreadCount)},[()=>o($[`chat.chat_tab.unread`],{count:a.tab.unreadCount})]),S(e,t)};t(u,e=>{a.tab.unreadCount>0&&e(d)}),s(n),H(e=>{U(n,`aria-label`,e),l(c,a.tab.room.name)},[()=>o($[`chat.chat_tab.open_chat_with`],{name:a.tab.room.name})]),w(`click`,n,function(...e){a.onexpand?.apply(this,e)}),S(e,n)};t(u,e=>{a.tab.isExpanded?e(d):e(f,-1)}),S(i,c),r()}T([`click`]);var bo=c(`<span class="tab-list__badge svelte-jqiu29"> </span>`),xo=f(`<svg width="12" height="12" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z"></path></svg>`),So=c(`<div class="tab-list__item svelte-jqiu29"><button class="tab-list__btn svelte-jqiu29" type="button"><!> <!></button> <!></div>`),Co=c(`<nav class="tab-list svelte-jqiu29" data-smrt-component="ChatTabList"></nav>`);function wo(i,a){g(a,!0);let{t:o}=q();var c=C(),u=V(c),d=r=>{var i=Co();p(i,21,()=>a.tabs,e=>e.roomId,(r,i)=>{var c=So(),u=F(c),d=F(u);Wn(d,{get name(){return e(i).room.name},get avatarUrl(){return e(i).room.avatarUrl},size:`sm`});var f=L(d,2),p=t=>{var n=bo(),r=z(n,!0);H(t=>{U(n,`aria-label`,t),l(r,e(i).unreadCount>99?`99+`:e(i).unreadCount)},[()=>o($[`chat.chat_tab_list.unread`],{count:e(i).unreadCount})]),S(t,n)};t(f,t=>{e(i).unreadCount>0&&t(p)}),s(u);var m=L(u,2);{let t=n(()=>o($[`chat.chat_tab_list.close_chat_with`],{name:e(i).room.name})),r=n(()=>o($[`chat.chat_tab_list.close`]));Y(m,{variant:`ghost`,size:`sm`,class:`tab-list__close`,type:`button`,onclick:t=>{t.stopPropagation(),a.onclose(e(i).roomId)},get"aria-label"(){return e(t)},get title(){return e(r)},children:(e,t)=>{var n=xo();S(e,n)},$$slots:{default:!0}})}s(c),H(t=>{U(u,`aria-label`,t),U(u,`title`,e(i).room.name)},[()=>o($[`chat.chat_tab_list.open_chat_with`],{name:e(i).room.name})]),w(`click`,u,()=>a.onselect(e(i).roomId)),S(r,c)}),s(i),H(e=>U(i,`aria-label`,e),[()=>o($[`chat.chat_tab_list.minimized_chats`])]),S(r,i)};t(u,e=>{a.tabs.length>0&&e(d)}),S(i,c),r()}T([`click`]);var To=c(`<div class="chat-tabs svelte-1vavi4c" data-smrt-component="ChatTabs"><div class="chat-tabs__expanded svelte-1vavi4c"></div> <!></div>`);function Eo(i,a){g(a,!0);let{t:o}=q(),c=k(a,`messagesByRoom`,19,()=>({})),l=k(a,`currentProfileId`,3,``),u=n(()=>a.tabs.filter(e=>e.isExpanded)),d=n(()=>a.tabs.filter(e=>!e.isExpanded));var f=To(),m=F(f);p(m,21,()=>e(u),e=>e.roomId,(t,r)=>{{let i=n(()=>c()[e(r).roomId]??[]);yo(t,{get tab(){return e(r)},get messages(){return e(i)},get currentProfileId(){return l()},onsend:t=>a.onsend?.(e(r).roomId,t),oncollapse:()=>a.oncollapse(e(r).roomId),onclose:()=>a.onclose(e(r).roomId),onexpand:()=>a.onexpand(e(r).roomId)})}}),s(m);var h=L(m,2),_=t=>{wo(t,{get tabs(){return e(d)},onselect:e=>a.onexpand(e),onclose:e=>a.onclose(e)})};t(h,t=>{e(d).length>0&&t(_)}),s(f),H(e=>U(f,`aria-label`,e),[()=>o($[`chat.chat_tabs.tabs_label`])]),S(i,f),r()}var Do=c(`<p class="assistant-dock-choices-status assistant-dock-choices-making svelte-hjhu1a" role="status"> </p>`),Oo=c(`<img loading="lazy" class="svelte-hjhu1a"/>`),ko=c(`<span class="assistant-dock-choice-description svelte-hjhu1a"> </span>`),Ao=c(`<li class="svelte-hjhu1a"><button type="button"><!> <span class="assistant-dock-choice-label svelte-hjhu1a"> </span> <!></button></li>`),jo=c(`<li class="assistant-dock-choice-pending svelte-hjhu1a" aria-hidden="true"><span class="assistant-dock-choice-placeholder svelte-hjhu1a"></span> <span class="assistant-dock-choice-label svelte-hjhu1a"> </span></li>`),Mo=c(`<ul class="assistant-dock-choice-list svelte-hjhu1a"><!> <!></ul>`),No=c(`<p class="assistant-dock-choices-status svelte-hjhu1a"> </p>`),Po=c(`<p class="assistant-dock-choices-status assistant-dock-choices-error svelte-hjhu1a" role="alert"> </p>`),Fo=c(`<div class="assistant-dock-choices-actions assistant-dock-choices-commit svelte-hjhu1a"><!> <!></div> <!>`,1),Io=c(`<div class="assistant-dock-choices-actions svelte-hjhu1a"><span class="svelte-hjhu1a"> </span> <!></div>`),Lo=c(`<p class="assistant-dock-choices-status svelte-hjhu1a" role="status"> </p>`),Ro=c(`<div class="assistant-dock-choices-actions svelte-hjhu1a"><p class="assistant-dock-choices-status assistant-dock-choices-error svelte-hjhu1a" role="alert"> </p> <!></div>`),zo=c(`<div class="assistant-dock-choices svelte-hjhu1a" role="group" data-smrt-component="AssistantChoiceCards"><p class="assistant-dock-choices-title svelte-hjhu1a"> </p> <!> <!> <!> <!></div>`);function Bo(a,o){g(o,!0);function c(e){return!!(e.previewable&&o.onpreview&&o.oncommit)}function u(e){(o.oncancel??o.ondismiss)(e.id)}function f(e,t){e.key===`Escape`&&c(t)&&(t.status===`waiting`||t.status===`failed`)&&(e.preventDefault(),e.stopPropagation(),u(t))}let{t:m}=q();var h=C(),_=V(h);p(_,17,()=>o.choices.filter(e=>e.status!==`dismissed`),e=>e.id,(r,a)=>{let h=n(()=>e(a).options.find(t=>t.id===e(a).chosenOptionId)),g=n(()=>e(a).status===`waiting`&&e(a).pending?e(a).pending:null),_=n(()=>c(e(a))),b=n(()=>e(a).status===`waiting`||e(a).status===`failed`),x=n(()=>e(a).previewOptionId),T=n(()=>e(_)&&e(a).previewPendingId!==void 0),E=n(()=>e(_)&&e(a).original?[e(a).original,...e(a).options]:e(a).options);var D=zo(),O=F(D),k=z(O,!0),A=L(O,2),j=t=>{var n=Do(),r=z(n,!0);H(()=>l(r,e(g).message)),S(t,n)};t(A,t=>{e(g)&&t(j)});var M=L(A,2),N=n=>{var r=Mo(),c=F(r);p(c,17,()=>e(E),e=>e.id,(n,r)=>{var c=Ao(),u=F(c);let d;var f=F(u),p=t=>{var n=Oo();H(()=>{U(n,`src`,e(r).imageUrl),U(n,`alt`,e(r).imageAlt??e(r).label)}),S(t,n)};t(f,t=>{e(r).imageUrl&&t(p)});var m=L(f,2),h=z(m,!0),g=L(m,2),v=t=>{var n=ko(),i=z(n,!0);H(()=>l(i,e(r).description)),S(t,n)};t(g,t=>{e(r).description&&t(v)}),s(u),s(c),H(()=>{d=i(u,1,`assistant-dock-choice svelte-hjhu1a`,null,d,{chosen:e(_)?e(x)===e(r).id:e(a).chosenOptionId===e(r).id}),U(u,`aria-pressed`,e(_)?e(x)===e(r).id:e(a).chosenOptionId===e(r).id),U(u,`aria-busy`,e(T)&&e(a).previewPendingId===e(r).id?`true`:void 0),u.disabled=!e(b)||e(T),l(h,e(r).label)}),w(`click`,u,()=>e(_)?o.onpreview?.(e(a).id,e(r).id):o.onchoose(e(a).id,e(r).id)),S(n,c)});var u=L(c,2),d=t=>{var n=C(),r=V(n);p(r,17,()=>({length:e(g).expected}),y,(e,t)=>{var n=jo(),r=L(F(n),2),i=z(r,!0);s(n),H(e=>l(i,e),[()=>m(Q[`chat.assistant_dock.choices_making`])]),S(e,n)}),S(t,n)};t(u,t=>{e(g)&&t(d)}),s(r),S(n,r)};t(M,t=>{e(_)&&e(a).status===`applied`||t(N)});var P=L(M,2),I=t=>{var n=No(),r=z(n,!0);H(()=>l(r,e(a).note)),S(t,n)};t(P,t=>{e(a).note&&e(a).status===`waiting`&&t(I)});var ee=L(P,2),R=r=>{var i=Fo(),c=V(i),f=F(c);{let t=n(()=>e(T)||!e(x)||e(x)===e(a).original?.id);Y(f,{type:`button`,class:`assistant-dock-choices-use`,get disabled(){return e(t)},onclick:()=>o.oncommit?.(e(a).id),children:(t,n)=>{v();var r=d();H(()=>l(r,e(a).commitLabel)),S(t,r)},$$slots:{default:!0}})}var p=L(f,2);Y(p,{type:`button`,variant:`ghost`,onclick:()=>u(e(a)),children:(t,n)=>{v();var r=d();H(()=>l(r,e(a).cancelLabel)),S(t,r)},$$slots:{default:!0}}),s(c);var h=L(c,2),g=t=>{var n=Po(),r=z(n,!0);H(e=>l(r,e),[()=>m(Q[`chat.assistant_dock.choices_failed`],{message:e(a).error??``})]),S(t,n)};t(h,t=>{e(a).status===`failed`&&t(g)}),S(r,i)},te=t=>{var n=Io(),r=F(n),i=z(r,!0),c=L(r,2);Y(c,{type:`button`,size:`sm`,variant:`ghost`,onclick:()=>o.ondismiss(e(a).id),children:(e,t)=>{v();var n=d();H(e=>l(n,e),[()=>m(Q[`chat.assistant_dock.choices_none`])]),S(e,n)},$$slots:{default:!0}}),s(n),H(e=>l(i,e),[()=>e(a).options.length>0?m(Q[`chat.assistant_dock.choices_pick`]):``]),S(t,n)},ne=e=>{var t=Lo(),n=z(t,!0);H(e=>l(n,e),[()=>m(Q[`chat.assistant_dock.choices_applying`])]),S(e,t)},re=t=>{var n=Lo(),r=z(n,!0);H(e=>l(r,e),[()=>e(a).outcome??m(Q[`chat.assistant_dock.choices_applied`],{label:e(h)?.label??``})]),S(t,n)},B=t=>{var n=Po(),r=z(n,!0);H(e=>l(r,e),[()=>m(Q[`chat.assistant_dock.choices_failed`],{message:e(a).error??``})]),S(t,n)},ie=t=>{var n=Ro(),r=F(n),i=z(r,!0),c=L(r,2);Y(c,{type:`button`,size:`sm`,variant:`ghost`,onclick:()=>o.ondismiss(e(a).id),children:(e,t)=>{v();var n=d();H(e=>l(n,e),[()=>m(Q[`chat.assistant_dock.choices_none`])]),S(e,n)},$$slots:{default:!0}}),s(n),H(e=>l(i,e),[()=>m(Q[`chat.assistant_dock.choices_unavailable`],{message:e(a).error??``})]),S(t,n)};t(ee,t=>{e(_)&&e(b)?t(R):e(a).status===`waiting`?t(te,1):e(a).status===`applying`?t(ne,2):e(a).status===`applied`?t(re,3):e(a).status===`failed`&&!e(_)?t(B,4):e(a).status===`unavailable`&&t(ie,5)}),s(D),H(()=>{U(D,`aria-label`,e(a).title),U(D,`aria-busy`,e(g)?`true`:void 0),l(k,e(a).title)}),w(`keydown`,D,t=>f(t,e(a))),S(r,D)}),S(a,h),r()}T([`keydown`,`click`]);var Vo=c(`<p class="assistant-composer-error svelte-17lqa16" role="alert"> </p>`),Ho=c(`<li class="assistant-composer-chip svelte-17lqa16"><span class="assistant-composer-chip-name svelte-17lqa16"> </span> <!></li>`),Uo=c(`<ul class="assistant-composer-attachments svelte-17lqa16"></ul>`),Wo=f(`<svg viewBox="0 0 20 20" width="18" height="18" aria-hidden="true"><path d="M14.5 6.5l-6 6a2.5 2.5 0 003.54 3.54l6-6a4.5 4.5 0 00-6.36-6.36l-6.5 6.5a6.5 6.5 0 009.19 9.19" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"></path></svg>`),Go=c(`<!> <input type="file" class="assistant-composer-file-input svelte-17lqa16" multiple="" tabindex="-1"/>`,1),Ko=c(`<div class="assistant-composer svelte-17lqa16" data-smrt-component="AssistantComposer"><!> <!> <!> <!> <div class="assistant-composer-row svelte-17lqa16"><!> <div class="assistant-composer-field svelte-17lqa16"><!></div> <!> <!></div></div>`);function qo(i,a){g(a,!0);let{t:o}=q(),c=k(a,`disabled`,3,!1),u=k(a,`placeholder`,3,`Ask the assistant…`),f=k(a,`value`,15,``),m=k(a,`dictation`,3,null),h=k(a,`transcribe`,3,null),_=k(a,`dictationMode`,3,`push`),y=k(a,`handsFreeCapture`,3,null),b=k(a,`sendOnPause`,3,!1),x=k(a,`sendOnPauseMs`,3,1200),C=k(a,`speaking`,3,!1),T=n(()=>!!(m()||h())),D=A(I([])),O=A(!1),N=A(!1),P=A(null),R=A(null),B=A(void 0),ie,ae=A(void 0);function oe(){return ie??=e(ae)?.getElement()??void 0,ie??null}function se(){oe()?.focus()}let ce=A(!1),G=A(!1),le=A(!1);function ue(){W(ce,!1),W(G,!1),W(le,!1)}let K=new De({source:()=>{if(!m())throw Error(`Speech input is not available.`);return m()()},onText:e=>{W(ce,!0);let t=oe();t?rt(t,e):f(f()?`${f()} ${e}`:e)}});te(()=>{K.setOptions({transcribe:h(),mode:_(),handsFreeCapture:y(),vad:a.handsFreeVad})}),ne(()=>K.dispose()),j(()=>{let e=C();re(()=>e?K.suspend():K.resume())}),j(()=>{if(!(b()&&e(ce)&&K.handsFree&&K.state===`listening`&&!K.speaking&&K.queued===0&&f().trim().length>0)){W(G,!1);return}W(G,!0);let t=setTimeout(()=>{W(G,!1),W(ce,!1),W(le,!0)},Math.max(0,x()));return()=>clearTimeout(t)}),j(()=>{e(le)&&(!b()||!K.handsFree||!f().trim()?W(le,!1):K.speaking||K.queued>0?(W(le,!1),W(ce,!0)):e(N)||c()||e(O)||(W(le,!1),me(!0)))}),j(()=>{K.handsFree||ue()});function de(){c()||e(O)||K.active||K.start()}function fe(e){e.style.height=`auto`,e.style.height=`${Math.min(e.scrollHeight,120)}px`}j(()=>{f(),ie??=e(ae)?.getElement()??void 0,ie&&fe(ie)});async function J(t){let n=t.currentTarget,r=n.files;if(!r||r.length===0)return;W(O,!0),W(R,null);let i=a.onupload;if(!i)W(O,!1),n.value=``;else try{let t=await i(r);W(D,[...e(D),...t],!0)}catch(e){W(R,e instanceof Error?e.message:o(Q[`chat.assistant_composer.upload_failed`]),!0)}finally{W(O,!1),n.value=``}}async function pe(t){let n=a.onupload;if(!n||(t.preventDefault(),c()||e(O)))return;let r=t.dataTransfer?.files;if(r&&r.length!==0){W(O,!0),W(R,null);try{let t=await n(r);W(D,[...e(D),...t],!0)}catch(e){W(R,e instanceof Error?e.message:o(Q[`chat.assistant_composer.upload_failed`]),!0)}finally{W(O,!1)}}}async function me(t=!1){if(c()||e(N))return;ue(),K.active&&!t&&(await K.stop(),await K.whenSettled());let n=f().trim();if(!n||c()||e(N))return;W(P,null),W(N,!0);let r=e(D);f(``),W(D,[],!0),ie&&(ie.style.height=`auto`);try{await a.onsend(n,r)}catch(t){let i=f().trim();f(i?`${n}\n${i}`:n),W(D,[...r,...e(D)],!0),W(P,t instanceof Error?t.message:o(Q[`chat.assistant_composer.send_failed`]),!0)}finally{W(N,!1)}}function X(t){t.key===`Escape`&&(K.active||e(ce))?(t.preventDefault(),ue(),K.active&&K.stop()):((t.key.length===1||t.key===`Backspace`)&&ue(),t.key===`Enter`&&!t.shiftKey&&!t.isComposing&&(t.preventDefault(),me()))}function he(e){let t=e.currentTarget;ie=t,fe(t)}function ge(t){W(D,e(D).filter(e=>e.id!==t),!0)}var _e={focus:se},ve=Ko(),ye=F(ve),xe=t=>{var n=Vo(),r=z(n,!0);H(e=>l(r,e),[()=>o(Q[`chat.assistant_composer.send_error`],{message:e(P)})]),S(t,n)};t(ye,t=>{e(P)&&t(xe)});var Se=L(ye,2),Ce=t=>{var n=Vo(),r=z(n,!0);H(e=>l(r,e),[()=>o(Q[`chat.assistant_composer.upload_error`],{message:e(R)})]),S(t,n)};t(Se,t=>{e(R)&&t(Ce)});var Ee=L(Se,2),ke=t=>{var r=Uo();p(r,21,()=>e(D),e=>e.id,(t,r)=>{var i=Ho(),a=F(i),c=z(a,!0),u=L(a,2);{let t=n(()=>o(Q[`chat.assistant_composer.remove_attachment`],{name:e(r).name}));Y(u,{type:`button`,variant:`ghost`,size:`sm`,class:`assistant-composer-chip-remove`,onclick:()=>ge(e(r).id),get"aria-label"(){return e(t)},children:(e,t)=>{v();var n=d(`×`);S(e,n)},$$slots:{default:!0}})}s(i),H(()=>l(c,e(r).name)),S(t,i)}),s(r),S(t,r)};t(Ee,t=>{e(D).length>0&&t(ke)});var Ae=L(Ee,2),je=t=>{{let r=n(()=>e(G)||e(le));Te(t,{get dictation(){return K},get sending(){return e(r)}})}};t(Ae,t=>{e(T)&&t(je)});var Me=L(Ae,2),Ne=F(Me),Pe=t=>{var r=Go(),i=V(r);{let t=n(()=>c()||e(O)),r=n(()=>o(Q[`chat.assistant_composer.attach_files`])),a=n(()=>o(Q[`chat.assistant_composer.attach_files`]));Y(i,{type:`button`,variant:`secondary`,size:`sm`,class:`assistant-composer-attach`,onclick:()=>e(B)?.click(),get disabled(){return e(t)},get"aria-label"(){return e(r)},get title(){return e(a)},children:(e,t)=>{var n=Wo();S(e,n)},$$slots:{default:!0}})}var a=L(i,2);M(a,e=>W(B,e),()=>e(B)),H(t=>{a.disabled=c()||e(O),U(a,`aria-label`,t)},[()=>o(Q[`chat.assistant_composer.attach_files`])]),w(`change`,a,J),S(t,r)};t(Ne,e=>{a.onupload&&e(Pe)});var Fe=L(Ne,2),Ie=F(Fe);{let t=n(()=>c()||e(O)),r=n(()=>o(Q[`chat.assistant_composer.message_label`]));M(Oe(Ie,{class:`assistant-composer-textarea`,get placeholder(){return u()},get disabled(){return e(t)},rows:1,onkeydown:X,oninput:he,get"aria-label"(){return e(r)},get value(){return f()},set value(e){f(e)}}),e=>W(ae,e,!0),()=>e(ae))}s(Fe),ee(Fe,(e,t)=>at?.(e,t),()=>({onPressStart:()=>be(),onLongPress:de,onRelease:()=>void K.unlock(),disabled:!e(T)||c()||e(O)}));var Le=L(Fe,2),Re=t=>{{let r=n(()=>c()||e(O));we(t,{get dictation(){return K},get disabled(){return e(r)}})}};t(Le,t=>{e(T)&&t(Re)});var ze=L(Le,2);{let t=n(()=>c()||e(O)||e(N)||!f().trim());Y(ze,{type:`button`,class:`assistant-composer-send`,onclick:()=>me(),get disabled(){return e(t)},children:(e,t)=>{v();var n=d();H(e=>l(n,e),[()=>o(Q[`chat.assistant_composer.send`])]),S(e,n)},$$slots:{default:!0}})}return s(Me),s(ve),E(`drop`,ve,function(...e){(a.onupload?pe:void 0)?.apply(this,e)}),E(`dragover`,ve,function(...e){(a.onupload?e=>e.preventDefault():void 0)?.apply(this,e)}),S(i,ve),r(_e)}T([`change`]);var Jo=c(`<a class="ai-unavailable-link svelte-p6jj8l"> </a>`),Yo=c(`<p class="ai-unavailable svelte-p6jj8l" role="status" data-smrt-component="AiUnavailableNotice"><span> </span> <!></p>`);function Xo(i,a){g(a,!0);let{t:o}=q(),c={off:Q[`chat.ai_unavailable.off`],unconfigured:Q[`chat.ai_unavailable.unconfigured`],entitlement:Q[`chat.ai_unavailable.entitlement`],capability:Q[`chat.ai_unavailable.capability`]},u=n(()=>o(c[a.status.reason]??c.off));var d=Yo(),f=F(d),p=z(f,!0),m=L(f,2),h=e=>{var t=Jo(),n=z(t,!0);H(e=>{U(t,`href`,a.settingsHref),l(n,e)},[()=>a.settingsLabel??o(Q[`chat.ai_unavailable.open_settings`])]),S(e,t)};t(m,e=>{a.settingsHref&&e(h)}),s(d),H(()=>{U(d,`data-reason`,a.status.reason),l(p,e(u))}),S(i,d),r()}var Zo=c(`<option> </option>`);function Qo(t,i){g(i,!0);let a=[{id:`gemini-2.5-pro`,label:`Gemini 2.5 Pro`},{id:`gemini-2.5-flash`,label:`Gemini 2.5 Flash`},{id:`claude-3-5-sonnet-latest`,label:`Claude 3.5 Sonnet`},{id:`claude-3-5-haiku-latest`,label:`Claude 3.5 Haiku`},{id:`gpt-4o`,label:`GPT-4o`},{id:`gpt-4o-mini`,label:`GPT-4o Mini`}],o=k(i,`models`,3,a),s=k(i,`allowedModelIds`,19,()=>[]),c=k(i,`value`,15),{t:u}=q(),d=n(()=>s().length>0?[...o().filter(e=>s().includes(e.id)),...s().filter(e=>!o().some(t=>t.id===e)).map(e=>({id:e,label:e}))]:o());function f(e){let t=e.target.value;c(t),i.onchange?.(t)}var m={DEFAULT_MODEL_OPTIONS:a};{let r=n(()=>i.ariaLabel??u(Q[`chat.model_picker.label`]));xe(t,{class:`smrt-select model-picker-select`,onchange:f,get"aria-label"(){return e(r)},get value(){return c()},set value(e){c(e)},children:(t,n)=>{var r=C(),i=V(r);p(i,17,()=>e(d),e=>e.id,(t,n)=>{var r=Zo(),i=z(r,!0),a={};H(()=>{l(i,e(n).label),a!==(a=e(n).id)&&(r.value=(r.__value=a)??``)}),S(t,r)}),S(t,r)},$$slots:{default:!0}})}return r(m)}var $o=`assistant-question`,es=6,ts=50,ns=200,rs=12,is=(e,t=ns)=>typeof e==`string`&&e.trim()&&e.trim().length<=t?e.trim():void 0;function as(e){if(!e||typeof e!=`object`)return null;let t=e,n=is(t.value),r=is(t.label);if(!n||!r)return null;let i=is(t.hint),a=Array.isArray(t.keywords)?t.keywords.flatMap(e=>is(e,60)??[]).slice(0,rs):[];return{value:n,label:r,...i?{hint:i}:{},...a.length?{keywords:a}:{}}}function os(e){if(!e||typeof e!=`object`)return null;let t=e,n=is(t.name,64),r=is(t.label);if(!n||!r||t.type!==`choice`||!Array.isArray(t.options))return null;let i=t.options.slice(0,ts).flatMap(e=>as(e)??[]),a=new Set(i.map(e=>e.value));if(i.length===0||a.size!==i.length)return null;let o=t.multiple===!0,s=(Array.isArray(t.default)?t.default:[t.default]).filter(e=>typeof e==`string`&&a.has(e));return{name:n,label:r,type:`choice`,options:i,...o?{multiple:o}:{},...s.length?{default:o?s:s[0]}:{},...t.required===!0?{required:!0}:{}}}function ss(e){if(!e||typeof e!=`object`)return null;let t=e;if(t.kind!==`assistant-question`)return null;let n=is(t.id,120),r=is(t.prompt,500);if(!n||!r||!Array.isArray(t.fields))return null;let i=t.fields.slice(0,es).flatMap(e=>os(e)??[]);if(i.length===0)return null;let a=is(t.submitLabel,60),o={kind:$o,id:n,prompt:r,fields:i,...a?{submitLabel:a}:{}},s=us(o,t.answer);return s?{...o,answer:s}:o}function cs(e){let t=e.toolCallData,n=Array.isArray(t)?t:[t];for(let e of n){let t=ss(e);if(t)return t}return null}function ls(e){let t={};for(let n of e.fields)n.default===void 0?!n.multiple&&n.required&&(t[n.name]=n.options[0].value):t[n.name]=n.default;return t}function us(e,t){if(!t||typeof t!=`object`||Array.isArray(t))return null;let n=t,r={};for(let t of e.fields){let e=new Set(t.options.map(e=>e.value)),i=n[t.name],a=(Array.isArray(i)?i:[i]).filter(t=>typeof t==`string`&&e.has(t));a.length!==0&&(r[t.name]=t.multiple?[...new Set(a)]:a[0])}return Object.keys(r).length?r:null}function ds(e,t){return e.fields.flatMap(e=>{let n=t[e.name];if(n===void 0)return[];let r=(Array.isArray(n)?n:[n]).map(t=>e.options.find(e=>e.value===t)?.label??t);return r.length?[`${e.label}: ${r.join(`, `)}`]:[]}).join(`; `)}var fs=new Set([`a`,`an`,`and`,`the`,`by`,`per`,`of`,`in`,`on`,`for`,`to`,`with`,`please`,`use`,`i`,`want`,`it`,`its`,`group`,`grouped`,`show`,`me`]);function ps(e){return e.toLowerCase().replace(/([a-z])([A-Z])/g,`$1 $2`).split(/[^a-z0-9]+/).filter(e=>e&&!fs.has(e)).map(e=>e.length>3&&e.endsWith(`s`)?e.slice(0,-1):e)}function ms(e,t){let n=new Set(ps(t));if(n.size===0)return null;let r={};for(let t of e.fields){let e=null;for(let r of t.options){let t=new Set(ps([r.label,r.value,r.hint??``,...r.keywords??[]].join(` `))),i=0;for(let e of n)t.has(e)&&(i+=1);i>0&&(!e||i>e.score)&&(e={value:r.value,score:i})}e&&(r[t.name]=t.multiple?[e.value]:e.value)}return Object.keys(r).length?r:null}var hs=c(`<p class="assistant-question-summary svelte-nrkrfu" role="status"><span class="assistant-question-prompt svelte-nrkrfu"> </span> </p>`),gs=c(`<option disabled=""> </option>`),_s=c(`<option> </option>`),vs=c(`<!> <!>`,1),ys=c(`<label class="assistant-question-select svelte-nrkrfu"><span> </span> <!></label>`),bs=c(`<!> <div class="assistant-question-actions svelte-nrkrfu"><!></div>`,1),xs=c(`<div class="assistant-question svelte-nrkrfu" data-smrt-component="AssistantQuestionForm"><!></div>`);function Ss(i,a){let o=ie();g(a,!0);let c=k(a,`answered`,3,null),u=k(a,`autofocus`,3,!1),f=k(a,`disabled`,3,!1),{t:m}=q(),h=A(I(ls(a.question))),_=A(!1),y=A(null),b=A(null),x=n(()=>c()??a.question.answer??e(y)),w=n(()=>us(a.question,e(h)));j(()=>{u()&&e(b)&&!e(x)&&e(b).querySelector(`input:not(:disabled), select:not(:disabled)`)?.focus()});function T(t,n){W(h,{...e(h),[t]:n},!0)}function E(t,n,r){let i=e(h)[t],a=Array.isArray(i)?i:i?[i]:[];W(h,{...e(h),[t]:r?[...new Set([...a,n])]:a.filter(e=>e!==n)},!0)}let D=(t,n)=>{let r=e(h)[t];return Array.isArray(r)?r.includes(n):r===n};async function O(){let t=us(a.question,e(h));if(!(!t||e(_)||e(x))){W(_,!0);try{await a.onsubmit(t),W(y,t,!0)}catch{}finally{W(_,!1)}}}var N=xs(),P=F(N),ee=t=>{var n=hs(),r=F(n),i=z(r,!0),o=L(r);s(n),H(e=>{l(i,a.question.prompt),l(o,` ${e??``}`)},[()=>ds(a.question,e(x))]),S(t,n)},R=r=>{Ce(r,{class:`assistant-question-form`,onsubmit:O,get"aria-label"(){return a.question.prompt},children:(r,i)=>{var c=bs(),u=V(c);ke(u,{get legend(){return a.question.prompt},stack:!0,children:r=>{var i=C(),c=V(i);p(c,17,()=>a.question.fields,e=>e.name,(r,i)=>{var a=C(),c=V(a),u=t=>{ke(t,{get legend(){return e(i).label},stack:!0,children:t=>{var r=C(),a=V(r);p(a,17,()=>e(i).options,e=>e.value,(t,r)=>{{let a=n(()=>`${o}-${e(i).name}`),s=n(()=>D(e(i).name,e(r).value));ve(t,{get name(){return e(a)},get value(){return e(r).value},get label(){return e(r).label},get checked(){return e(s)},get disabled(){return f()},onchange:t=>E(e(i).name,e(r).value,t.currentTarget.checked)})}}),S(t,r)},$$slots:{default:!0}})},d=r=>{var a=ys(),c=F(a),u=z(c,!0),d=L(c,2);{let r=n=>{var r=vs(),a=V(r),o=e=>{var t=gs(),n=z(t,!0);t.value=t.__value=``,H(e=>l(n,e),[()=>m(Q[`chat.assistant_question.choose`])]),S(e,t)};t(a,t=>{e(h)[e(i).name]===void 0&&t(o)});var s=L(a,2);p(s,17,()=>e(i).options,e=>e.value,(t,n)=>{var r=_s(),i=z(r,!0),a={};H(()=>{l(i,e(n).label),a!==(a=e(n).value)&&(r.value=(r.__value=a)??``)}),S(t,r)}),S(n,r)},a=n(()=>`${o}-${e(i).name}`),s=n(()=>typeof e(h)[e(i).name]==`string`?e(h)[e(i).name]:``);xe(d,{get name(){return e(a)},get value(){return e(s)},get required(){return e(i).required},get disabled(){return f()},interaction:!1,onchange:t=>T(e(i).name,t.currentTarget.value),children:r,$$slots:{default:!0}})}s(a),H(()=>l(u,e(i).label)),S(r,a)},g=t=>{{let r=t=>{var n=C(),r=V(n);p(r,17,()=>e(i).options,e=>e.value,(t,n)=>{Se(t,{get value(){return e(n).value},get label(){return e(n).label}})}),S(t,n)},a=n(()=>`${o}-${e(i).name}`),s=n(()=>typeof e(h)[e(i).name]==`string`?e(h)[e(i).name]:``);Ae(t,{get name(){return e(a)},get label(){return e(i).label},get value(){return e(s)},get required(){return e(i).required},get disabled(){return f()},interaction:!1,onvaluechange:t=>T(e(i).name,t),children:r,$$slots:{default:!0}})}};t(c,t=>{e(i).multiple?t(u):e(i).options.length>6?t(d,1):t(g,-1)}),S(r,a)}),S(r,i)},$$slots:{default:!0}});var g=L(u,2),y=F(g);{let t=n(()=>f()||e(_)||!e(w));Y(y,{type:`submit`,get disabled(){return e(t)},children:(e,t)=>{v();var n=d();H(e=>l(n,e),[()=>a.question.submitLabel??m(Q[`chat.assistant_question.submit`])]),S(e,n)},$$slots:{default:!0}})}s(g),S(r,c)},$$slots:{default:!0}})};t(P,t=>{e(x)?t(ee):t(R,-1)}),s(N),M(N,e=>W(b,e),()=>e(b)),S(i,N),r()}var Cs=c(`<span class="count svelte-1d7fq8s"> </span>`),ws=c(`<span class="title svelte-1d7fq8s"> </span> <!>`,1),Ts=c(`<li><!></li>`),Es=c(`<nav class="assistant-thread-list svelte-1d7fq8s" data-smrt-component="AssistantThreadList"><!> <ul class="svelte-1d7fq8s"></ul></nav>`);function Ds(i,a){g(a,!0);let{t:o}=q(),c=k(a,`activeThreadId`,3,null);var u=Es(),f=F(u),m=e=>{Y(e,{type:`button`,variant:`ghost`,class:`assistant-thread-list-new`,get onclick(){return a.oncreate},children:(e,t)=>{v();var n=d();H(e=>l(n,e),[()=>o(Q[`chat.assistant_thread_list.new_conversation`])]),S(e,n)},$$slots:{default:!0}})};t(f,e=>{a.oncreate&&e(m)});var h=L(f,2);p(h,21,()=>a.threads,e=>e.id,(r,i)=>{var u=Ts(),d=F(u);{let r=n(()=>e(i).id===c()?`assistant-thread-list-item active`:`assistant-thread-list-item`),s=n(()=>e(i).id===c()?`true`:void 0);Y(d,{type:`button`,variant:`ghost`,get class(){return e(r)},onclick:()=>a.onselect(e(i).id),get"aria-current"(){return e(s)},children:(n,r)=>{var a=ws(),s=V(a),c=z(s,!0),u=L(s,2),d=t=>{var n=Cs(),r=z(n,!0);H(()=>l(r,e(i).messageCount)),S(t,n)};t(u,t=>{e(i).messageCount>0&&t(d)}),H(e=>l(c,e),[()=>e(i).title||o(Q[`chat.assistant_thread_list.untitled`])]),S(n,a)},$$slots:{default:!0}})}s(u),S(r,u)}),s(h),s(u),H(e=>U(u,`aria-label`,e),[()=>o(Q[`chat.assistant_thread_list.conversations_label`])]),S(i,u),r()}function Os(e){return e===`failed`?`error`:e===`previewing`||e===`applying`?`running`:`success`}var ks={"&":`&amp;`,"<":`&lt;`,">":`&gt;`,'"':`&quot;`,"'":`&#39;`};function As(e){return e.replace(/[&<>"']/g,e=>ks[e])}var js=`\0`,Ms=/\u0000(\d+)\u0000/g,Ns=/^ {0,3}(`{3,}|~{3,})[ \t]*([A-Za-z0-9_+-]{0,32})[ \t]*$/,Ps=/^ {0,3}(#{1,3})[ \t]+(.*?)(?:[ \t]+#+)?[ \t]*$/,Fs=/^ {0,3}[-*+][ \t]+(.*)$/,Is=/^ {0,3}(\d{1,9})[.)][ \t]+(.*)$/,Ls=/^(?: {2,}|\t)\S/;function Rs(e){let t=e.replace(/&quot;/g,`"`).replace(/&#39;/g,`'`).replace(/&lt;/g,`<`).replace(/&gt;/g,`>`).replace(/&amp;/g,`&`),n;try{n=new URL(t)}catch{return null}return n.protocol!==`http:`&&n.protocol!==`https:`?null:As(n.href)}function zs(e){return e.replace(/\*\*(?=\S)([\s\S]*?\S)\*\*/g,`<strong>$1</strong>`).replace(/(^|[^\p{L}\p{N}_])__(?=\S)([\s\S]*?\S)__(?![\p{L}\p{N}_])/gu,`$1<strong>$2</strong>`).replace(/\*(?=[^\s*])([^*]*?[^\s*])\*/g,`<em>$1</em>`).replace(/(^|[^\p{L}\p{N}_])_(?=[^\s_])([^_]*?[^\s_]|[^\s_])_(?![\p{L}\p{N}_])/gu,`$1<em>$2</em>`)}var Bs=2e3;function Vs(e){if(e.length>Bs)return As(e);let t=[],n=e=>(t.push(e),`${js}${t.length-1}${js}`),r=As(e);r=r.replace(/(`{1,2})(?!`)([^\n]*?[^`\n]|[^`\n])\1(?!`)/g,(e,t,r)=>n(`<code>${r}</code>`)),r=r.replace(/\[([^\]\n]+)\]\(([^()\s]+)\)/g,(e,t,r)=>{let i=Rs(r);return i?n(`<a href="${i}" target="_blank" rel="noopener noreferrer">${zs(t)}</a>`):e}),r=zs(r);let i;do i=r,r=r.replace(Ms,(e,n)=>t[Number(n)]??``);while(r!==i);return r}function Hs(e){let t=String(e??``).split(js).join(``).replace(/\r\n?/g,`
24
+ `).split(`
25
+ `),n=[],r=[],i=null,a=()=>{r.length!==0&&(n.push(`<p>${r.map(Vs).join(`<br>`)}</p>`),r=[])},o=()=>{if(!i)return;let e=i.kind===`ol`&&i.start!==1?` start="${i.start}"`:``,t=i.items.map(e=>`<li>${e.map(Vs).join(`<br>`)}</li>`).join(``);n.push(`<${i.kind}${e}>${t}</${i.kind}>`),i=null},s=()=>{a(),o()};for(let e=0;e<t.length;e+=1){let c=t[e];if(c.length>Bs){o(),r.push(c);continue}let l=Ns.exec(c);if(l){s();let r=l[1],i=RegExp(`^ {0,3}${r[0]==="`"?"`":`~`}{${r.length},}[ \\t]*$`),a=[];for(e+=1;e<t.length&&!i.test(t[e]);)a.push(t[e]),e+=1;let o=l[2]?` class="language-${l[2]}"`:``;n.push(`<pre><code${o}>${As(a.join(`
26
+ `))}</code></pre>`);continue}if(c.trim()===``){s();continue}let u=Ps.exec(c);if(u){s();let e=u[1].length;n.push(`<h${e}>${Vs(u[2])}</h${e}>`);continue}let d=Fs.exec(c),f=d?null:Is.exec(c);if(d||f){a();let e=d?`ul`:`ol`;i&&i.kind!==e&&o(),i||={kind:e,start:f?Number(f[1]):1,items:[]},i.items.push([d?d[1]:f?.[2]??``])}else i&&Ls.test(c)?i.items[i.items.length-1].push(c.trim()):(o(),r.push(c))}return s(),n.join(``)}function Us(e){if(!e)return;let t;try{t=new URL(e,globalThis.location?.origin??`http://localhost`)}catch{return}if(t.protocol===`http:`||t.protocol===`https:`)return e}function Ws(e){return e.effect===`read`?`run`:e.effect===`destructive`?`confirm`:e.proposal===!0?`run`:`confirm`}function Gs(e,t){return e.effect===`destructive`?`confirm`:t?t(e):Ws(e)}function Ks(e,t=64){return e.slice(0,t).map(e=>({name:e.name,description:e.description,inputSchema:e.inputSchema,effect:e.effect}))}var qs=`assistant_propose_action`,Js=class extends Map{#e=new Map;#t=A(0);#n=A(0);#r=ae||-1;constructor(e){if(super(),e){for(var[t,n]of e)super.set(t,n);this.#n.v=super.size}}#i(e){return ae===this.#r?A(e):ce(e)}has(t){var n=this.#e,r=n.get(t);if(r===void 0){if(super.has(t))r=this.#i(0),n.set(t,r);else return e(this.#t),!1}return e(r),!0}forEach(e,t){this.#a(),super.forEach(e,t)}get(t){var n=this.#e,r=n.get(t);if(r===void 0){if(super.has(t))r=this.#i(0),n.set(t,r);else{e(this.#t);return}}return e(r),super.get(t)}getOrInsert(e,t){return super.has(e)||this.set(e,t),this.get(e)}getOrInsertComputed(e,t){return super.has(e)||this.set(e,t(e)),this.get(e)}set(e,t){var n=this.#e,r=n.get(e),i=super.get(e),a=super.set(e,t),o=this.#t;if(r===void 0)r=this.#i(0),n.set(e,r),W(this.#n,super.size),O(o);else if(i!==t){O(r);var s=o.reactions===null?null:new Set(o.reactions);(s===null||!r.reactions?.every(e=>s.has(e)))&&O(o)}return a}delete(e){var t=this.#e,n=t.get(e),r=super.delete(e);return n!==void 0&&(t.delete(e),W(n,-1)),r&&(W(this.#n,super.size),O(this.#t)),r}clear(){if(super.size!==0){super.clear();var e=this.#e;W(this.#n,0);for(var t of e.values())W(t,-1);O(this.#t),e.clear()}}#a(){e(this.#t);var t=this.#e;if(this.#n.v!==t.size){for(var n of super.keys())if(!t.has(n)){var r=this.#i(0);t.set(n,r)}}for([,r]of this.#e)e(r)}keys(){return e(this.#t),super.keys()}values(){return this.#a(),super.values()}entries(){return this.#a(),super.entries()}[Symbol.iterator](){return this.entries()}get size(){return e(this.#n),super.size}},Ys=`assistant_offer_`,Xs=/^[a-z][a-z0-9_]{0,39}$/;function Zs(e){return`${Ys}${e}`}function Qs(e){if(typeof e!=`string`)return null;let t=e.trim();return!/^\/(?![/\\])/.test(t)||/[\u0000-\u001f\s\\]/.test(t)?null:t}function $s(e,t){return typeof e==`string`?e.trim().slice(0,t):``}function ec(e){let t=new Set,n=[];for(let r of e){let e=$s(r?.id,120),i=$s(r?.label,80);if(!e||!i||t.has(e))continue;t.add(e);let a=$s(r.description,160),o=Qs(r.imageUrl);if(n.push({id:e,label:i,...a?{description:a}:{},...o?{imageUrl:o,imageAlt:$s(r.imageAlt,120)||i}:{},...r.value===void 0?{}:{value:r.value}}),n.length>=4)break}return n}var tc=class{getRegistry;hold;#e=A(I([]));get sets(){return e(this.#e)}set sets(e){W(this.#e,e,!0)}releases=new Map;previewQueues=new Map;previewRequests=new Map;fills=new Map;constructor(e,t){this.getRegistry=e,this.hold=t}syncHolds(){let e=new Set(this.sets.filter(e=>e.status===`waiting`||e.status===`failed`).map(e=>e.id));for(let[t,n]of this.releases)e.has(t)||(n(),this.releases.delete(t));if(this.hold)for(let t of this.sets)e.has(t.id)&&!this.releases.has(t.id)&&this.releases.set(t.id,this.hold(t))}sources(){return(this.getRegistry()?.list()??[]).filter(e=>Xs.test(e.id))}source(e){return this.sources().find(t=>t.id===e)}tools(){return this.sources().map(e=>({name:Zs(e.id),description:[e.description.slice(0,800),`Shows the options as cards in the chat; the person picks one and it is applied then. You cannot apply it yourself. Tell them to pick one.`].join(`
27
+ `),inputSchema:e.inputSchema??{type:`object`,additionalProperties:!1,properties:{}},effect:`read`}))}isChoiceTool(e){return e.startsWith(`assistant_offer_`)&&!!this.source(e.slice(16))}get waitingCount(){return this.sets.filter(e=>e.status===`waiting`).length}get pendingMessage(){return this.sets.find(e=>e.status===`waiting`&&e.pending&&e.options.length===0)?.pending?.message??null}update(e,t){this.sets=this.sets.map(n=>n.id===e?{...n,...t}:n),this.syncHolds()}async offerFromCall(e,t){let n=e.name.slice(16),r=this.source(n);if(!r)return{id:e.id,ok:!1,error:`not_available`};let i;try{i=await r.offer(e.args??{},{signal:t})}catch(t){return{id:e.id,ok:!1,error:t instanceof Error?t.message:String(t)}}let a=i?.pending&&typeof i.pending.fill==`function`?i.pending:null,o=ec(i?.options??[]);if(o.length===0&&!a)return{id:e.id,ok:!1,error:`Nothing to offer.`};let s=a?{message:$s(a.message,160)||`Making options…`,expected:Math.min(4-o.length,Math.max(1,Math.floor(Number(a.expected)||0)||4))}:void 0,c=typeof r.preview==`function`,l=c?ec(i?.original?[i.original]:[])[0]:void 0,u={id:e.id,sourceId:n,title:$s(i.title,120)||`Pick one`,options:o.filter(e=>e.id!==l?.id),status:`waiting`,...c?{previewable:!0,...l?{original:l}:{},commitLabel:$s(i.commitLabel,40)||`Use this`,cancelLabel:$s(i.cancelLabel,40)||`Cancel`}:{},...s&&s.expected>0?{pending:s,lasting:!0}:{}};return this.sets=[...this.sets.filter(t=>t.id!==e.id),u],this.syncHolds(),a&&u.pending&&this.fill(u.id,a),{id:e.id,ok:!0,result:JSON.stringify({offered:!0,waitingForUser:!0,...u.pending?{stillMaking:!0,progress:u.pending.message}:{},options:o.map(({id:e,label:t})=>({id:e,label:t}))})}}fill(e,t){let n=new AbortController;this.fills.get(e)?.abort(),this.fills.set(e,n);let r=()=>n.signal.aborted?void 0:this.sets.find(t=>t.id===e&&t.status!==`dismissed`),i={add:t=>{let n=r();if(!n)return;let i=ec([...n.options,...Array.isArray(t)?t:[]]),a=n.pending?Math.max(0,Math.min(4,n.options.length+n.pending.expected)-i.length):0;this.update(e,{options:i,...n.pending?{pending:{...n.pending,expected:a}}:{}})},status:t=>{let n=r(),i=$s(t,160);n?.pending&&i&&this.update(e,{pending:{...n.pending,message:i}})}},a=t=>{this.fills.get(e)===n&&this.fills.delete(e);let i=r();if(!i)return;let a=t==null?null:(t instanceof Error?t.message:String(t)).slice(0,200);i.options.length===0?this.update(e,{status:`unavailable`,pending:void 0,error:a||`Nothing came back. Try again.`}):this.update(e,{pending:void 0,...a?{note:a}:{}})};Promise.resolve().then(()=>t.fill(i,n.signal)).then(()=>a(null),e=>a(e??`Nothing came back. Try again.`))}stopFill(e){this.fills.get(e)?.abort(),this.fills.delete(e)}async choose(e,t){let n=this.sets.find(t=>t.id===e);if(!n||n.status!==`waiting`&&n.status!==`failed`)return;let r=n.options.find(e=>e.id===t);if(!r)return;let i=this.source(n.sourceId);if(!i)this.update(e,{status:`failed`,error:`This is no longer on the page.`});else{this.update(e,{status:`applying`,chosenOptionId:t,error:void 0});try{let t=await i.apply(r);this.stopFill(e),this.update(e,{status:`applied`,pending:void 0,previewOptionId:void 0,...typeof t==`string`&&t.trim()?{outcome:t.trim().slice(0,200)}:{}})}catch(t){this.update(e,{status:`failed`,error:t instanceof Error?t.message:String(t)})}}}dismiss(e){let t=this.sets.find(t=>t.id===e);t&&(t.status===`waiting`||t.status===`failed`||t.status===`unavailable`)&&(this.stopFill(e),this.restorePreview(e),this.update(e,{status:`dismissed`,pending:void 0,previewOptionId:void 0,previewPendingId:void 0}))}async restorePreview(e){let t=this.sets.find(t=>t.id===e);if(!t?.previewable||t.previewOptionId===void 0&&t.previewPendingId===void 0)return;this.previewRequests.set(e,(this.previewRequests.get(e)??0)+1);let{sourceId:n}=t,r=t.original??null,i=(this.previewQueues.get(e)??Promise.resolve()).then(async()=>{try{await this.source(n)?.preview?.(r)}catch{}});this.previewQueues.set(e,i),await i}async preview(e,t){let n=this.sets.find(t=>t.id===e);if(!n?.previewable||n.status!==`waiting`&&n.status!==`failed`)return;let r=n.original?.id===t?n.original:n.options.find(e=>e.id===t),i=this.source(n.sourceId);if(!r||!i?.preview)return;let a=(this.previewRequests.get(e)??0)+1;this.previewRequests.set(e,a);let o=()=>this.previewRequests.get(e)===a;this.update(e,{previewPendingId:t});let s=(this.previewQueues.get(e)??Promise.resolve()).then(async()=>{let n=this.sets.find(t=>t.id===e);if(o()&&n&&(n.status===`waiting`||n.status===`failed`)){for(let t of this.sets)t.id!==e&&t.previewOptionId!==void 0&&(await this.restorePreview(t.id),this.update(t.id,{previewOptionId:void 0}));try{if(await i.preview?.(r),!o())return;this.update(e,{status:`waiting`,previewOptionId:t,previewPendingId:void 0,error:void 0})}catch(t){if(!o())return;this.update(e,{status:`failed`,previewPendingId:void 0,error:t instanceof Error?t.message:String(t)})}}});this.previewQueues.set(e,s),await s}async commit(e){let t=this.sets.find(t=>t.id===e);if(!t?.previewable||t.previewPendingId!==void 0)return;let n=t.previewOptionId;!n||n===t.original?.id?this.cancel(e):await this.choose(e,n)}cancel(e){this.dismiss(e)}supersedeWaiting(){if(this.waitingCount!==0){for(let e of this.sets)e.status===`waiting`&&!e.lasting&&this.restorePreview(e.id);this.sets=this.sets.map(e=>e.status===`waiting`&&!e.lasting?{...e,status:`dismissed`,previewOptionId:void 0,previewPendingId:void 0}:e),this.syncHolds()}}clear(){for(let e of this.fills.values())e.abort();this.fills.clear();for(let e of this.sets)this.restorePreview(e.id);this.sets=[],this.syncHolds()}},nc=Object.freeze([`idempotency_in_progress`,`outcome_unknown`]);function rc(e){return e!==void 0&&nc.includes(e)}function ic(e){return`assistant-message-${e}-${globalThis.crypto?.randomUUID?.()??`${Date.now()}-${Math.random().toString(36).slice(2)}`}`}function ac(e){return JSON.stringify([e.kind,e.surfaceId,e.subject?[e.subject.type,e.subject.id]:null])}function oc(t){let n=t.now??(()=>Date.now()),r=t.activePollIntervalMs??3e3,i=t.idlePollIntervalMs??15e3,a=t.staleAfterMs??9e4,o=t.visible??(()=>!0),s=A(I([])),c=A(!0),l=A(null),u=A(I([])),d=A(I({})),f=A(I([])),p=A(I(t.surfaces??[])),m=A(I([])),h=A(void 0),g=A(null),_=A(I(t.initialDraft??``)),v=A(!1),y=A(null),b=A(I({state:`idle`,label:null})),x=A(0),S=A(I([])),C=A(``),w=A(I([])),T=null,E=new Map,D=new tc(()=>t.choiceSources,e=>H({id:`choice:${e.id}`,kind:`choice`,label:e.title})),O=A(null),k=new Js,M=null,N=0,P=()=>t.maxPauseMs??9e5;function F(e){let t=e.replace(/\s+/g,` `).trim();return t.length>80?`${t.slice(0,79).trimEnd()}…`:t}function L(e,t){R(!1),W(O,{id:e,goal:F(t),state:`running`,step:null,stepCount:0,pageTools:[],staged:0,acknowledged:!1,stoppedReason:null,error:null,startedAt:n(),endedAt:null},!0)}function ee(t,r){let i=e(O);i&&i.endedAt===null&&W(O,{...i,state:t===`done`?`done`:t===`cancelled`?`cancelled`:`failed`,stoppedReason:t===`error`?`error`:t===`cancelled`?i.stoppedReason??`user`:i.stoppedReason,error:t===`error`?r instanceof Error?r.message:String(r):null,endedAt:n()},!0)}function R(e){let t=M;M=null,t?.(e)}function te(t){return t.signal.aborted?Promise.resolve(!1):e(O)?.state===`paused`?new Promise(r=>{let i=setTimeout(()=>{e(O)&&W(O,{...e(O),stoppedReason:`paused_too_long`},!0),Le()},Math.max(0,N+P()-n()));M=e=>{clearTimeout(i),r(e&&!t.signal.aborted)}}):Promise.resolve(!0)}function z(t,n){let r=e(O);r&&r.endedAt===null&&W(O,{...r,pageTools:[...r.pageTools,t.name].slice(-50),staged:t.effect===`write`&&n===`run`?r.staged+1:r.staged},!0)}function ne(){e(v)&&e(O)?.state===`running`&&(N=n(),W(O,{...e(O),state:`paused`},!0))}function V(){e(O)?.state===`paused`&&(W(O,{...e(O),state:`running`},!0),R(!0))}function ie(){e(O)&&!e(O).acknowledged&&W(O,{...e(O),acknowledged:!0},!0)}function ae(){e(v)||W(O,null)}function H(e){let t={...e};return k.set(t.id,t),()=>{k.get(t.id)===t&&k.delete(t.id)}}function oe(t){let n=e(v)?e(w).filter(e=>e.status===`waiting`).length:0;if(n>0)return{kind:`confirm`,count:n};let r=[...k.values()],i=r.at(-1);if(i)return{kind:i.kind,count:r.length,...i.label?{label:i.label}:{}};if(t.state!==`done`)return null;let a=[...G.values()].filter(e=>e.status===`previewed`).length+(t.acknowledged?0:t.staged);return a>0?{kind:`review`,count:a}:!t.acknowledged&&(t.stoppedReason===`max_steps`||t.stoppedReason===`budget`)?{kind:`continue`,count:1}:null}function U(){let t=e(O);if(!t)return null;let n=t.state===`running`||t.state===`done`?oe(t):null;return{id:t.id,goal:t.goal,state:n?`waiting`:t.state,step:t.step,stepCount:t.stepCount,pageTools:[...t.pageTools],waitingFor:n,stoppedReason:t.stoppedReason,error:t.error,startedAt:t.startedAt,endedAt:t.endedAt}}function se(e){W(g,e,!0)}function ce(e){W(_,e,!0)}let G=new Js,le=new Map;function ue(e,t,n){return`${e}\n${t}\n${(n??[]).map(e=>e.id||e.url||e.name).sort().join(`\0`)}`}let K=null,q=null,de=null,fe=null,J=!1,pe=!1,Y=!1,me=0,X=0;function he(){let e=t.registry.list().map(e=>e.identity);if(!t.surfaces){W(p,e,!0);return}let n=new Set(e.map(e=>ac(e)));W(p,t.surfaces.filter(e=>n.has(ac(e))),!0)}function ge(t){return e(p).some(e=>ac(e)===ac(t))}function _e(e){for(let[t,n]of G)ac(n.request.identity)===ac(e)&&(n.status===`previewed`||n.status===`previewing`)&&G.set(t,{...n,status:`failed`,error:`AssistantDock: surface "${ac(e)}" was unmounted before this action was applied`})}function ve(e){return e.subscribe(e=>{(e.type===`registered`||e.type===`unregistered`)&&he(),e.type===`unregistered`&&_e(e.identity)})}function be(){Le(),W(O,null),k.clear(),W(s,[],!0),W(c,!0),W(l,null),W(u,[],!0),W(d,{},!0),W(f,[],!0),G.clear(),D.clear(),W(g,null),le.clear(),W(m,[],!0),W(h,void 0),pe=!1,me+=1,X+=1,ke(),Ae()}function xe(){if(J)return;let e=t.registry;e!==de&&(q?.(),de=e,q=ve(e),he(),be())}function Se(){if(J)return;let e=t.transport;e!==fe&&(fe=e,be())}function Ce(){if(J)return;let t=e(p);he();for(let e of t)ge(e)||_e(e)}he(),de=t.registry,q=ve(de),fe=t.transport;function we(){let t=n()-a;W(f,e(f).map(e=>e.status===`processing`&&e.sentAt<t?{...e,status:`stale`}:e),!0)}async function Te(){if(J||!o()||!e(l))return;we();let n=e(l),r=X,i;try{i=await t.transport.loadMessages(n)}catch(e){if(J||r!==X)return;pe||(pe=!0,W(g,e instanceof Error?e.message:String(e),!0));return}J||Y||r!==X||e(l)===n&&(pe&&(pe=!1,W(g,null)),W(u,i,!0),Ee(e(f).some(e=>e.status===`processing`)),W(f,e(f).filter(t=>{if(t.status===`sending`||t.threadId!==n)return!0;let r=t.clientRequestId?e(u).findIndex(e=>e.role===`user`&&e.clientRequestId===t.clientRequestId):-1,i=r>=0?r:e(u).findLastIndex(e=>e.role===`user`&&e.content===t.content);if(i<0)return!0;let a=e(u).slice(i+1).some(e=>e.role===`assistant`||e.role===`tool`);return a&&(le.delete(ue(t.threadId,t.content,t.attachments)),e(O)?.id===t.clientRequestId&&!e(v)&&ee(`done`)),!a}),!0))}function Ee(e){K&&clearInterval(K),K=J||Y?null:setInterval(()=>void Te(),e?r:i)}function De(){J||K||(Y=!1,Ee(e(f).some(e=>e.status===`processing`)))}function Oe(){Y=!0,K&&=(clearInterval(K),null)}async function ke(){let e=X;W(c,!0);try{let n=await t.transport.listThreads();if(J||e!==X)return;W(s,n,!0),W(c,!1),W(g,null)}catch(t){if(J||e!==X)return;W(c,!1),W(g,t instanceof Error?t.message:String(t),!0)}}async function Ae(){if(!t.transport.listModels){W(m,[],!0);return}let n=X,r;try{r=await t.transport.listModels()}catch(e){if(J||n!==X)return;W(g,e instanceof Error?e.message:String(e),!0);return}J||n!==X||(W(m,r,!0),e(m).length>0&&!e(h)&&W(h,e(m)[0].id,!0))}function je(e){W(h,e,!0)}async function Me(e){let n=++me,r=X;try{let i=await t.transport.loadMessages(e);if(J||n!==me||r!==X)return;W(l,e,!0),W(u,i,!0),W(g,null)}catch(e){if(J||n!==me||r!==X)return;W(g,e instanceof Error?e.message:String(e),!0)}}async function Ne(n){let r=t.transport.createThread;if(!r)throw Error(`AssistantDock: thread creation is not supported`);let i=X;try{let a=await r.call(t.transport,n);return!J&&i===X&&(W(s,[...e(s),a],!0),W(g,null)),a}catch(e){throw!J&&i===X&&W(g,e instanceof Error?e.message:String(e),!0),e}}async function Pe(r,i,a,o){let s=e(f).findIndex(e=>e.clientRequestId===a),c={clientRequestId:a,threadId:r,content:i,status:`sending`,sentAt:n(),attachments:o};W(f,s>=0?e(f).map((e,t)=>t===s?c:e):[...e(f),c],!0);let l=X,u=Fe();L(a,i);try{let n=await t.transport.sendMessage({threadId:r,content:i,attachments:o,clientRequestId:a,model:e(h),...Z(r,u,l)});if(J||l!==X){Ie(u,`discarded`);return}if(n.inProgress){Ie(u,`discarded`),W(f,e(f).map(e=>e.clientRequestId===a?{...e,status:`processing`}:e),!0),De();return}le.delete(ue(r,i,o)),Re(r,n);let s=n;for(;s.clientToolCalls&&!u.signal.aborted;){let n=s.clientToolCalls;if(!await te(u))break;let i=await Je(n.calls,u);if(u.signal.aborted||J||l!==X||(await Ve(u),u.signal.aborted||J||l!==X)||!await te(u))break;if(!t.transport.resumeTurn)throw Error(`AssistantDock: the transport returned browser tool calls but has no resumeTurn`);if(s=await t.transport.resumeTurn({threadId:r,clientRequestId:a,continuationId:n.continuationId,results:i,model:e(h),...Z(r,u,l)}),J||l!==X)break;Re(r,s)}W(f,e(f).filter(e=>e.clientRequestId!==a),!0),Ie(u,u.signal.aborted?`cancelled`:`done`)}catch(t){if(le.delete(ue(r,i,o)),u.signal.aborted){Ie(u,`cancelled`),!J&&l===X&&W(f,e(f).filter(e=>e.clientRequestId!==a),!0);return}throw Ie(u,`error`,t),!J&&l===X&&W(f,e(f).map(e=>e.clientRequestId===a?{...e,status:`failed`}:e),!0),t}}function Fe(){T?.abort();let e=new AbortController;return T=e,W(v,!0),W(y,{state:`working`,label:`Sending…`,cancellable:!0},!0),W(x,0),W(S,[],!0),W(C,``),W(w,[],!0),D.supersedeWaiting(),e}function Ie(t,n,r){if(T===t){T=null,W(v,!1),W(y,null),W(C,``);for(let[e,t]of E)E.delete(e),t(!1);R(!1),n!==`discarded`&&ee(n,r),n!==`discarded`&&W(b,n===`done`?{state:`done`,label:`Done`,changes:e(x)}:n===`cancelled`?{state:`idle`,label:`Stopped`}:{state:`error`,label:r instanceof Error?r.message:String(r)},!0)}}function Le(){let t=T;if(t){e(O)&&!e(O).stoppedReason&&W(O,{...e(O),stoppedReason:`user`},!0),t.abort(),R(!1);for(let[e,t]of E)E.delete(e),t(!1)}}function Re(t,n){if(e(l)!==t)return;let r=[n.userMessage,...n.messages??[],n.assistantMessage].filter(e=>!!e);if(r.length===0)return;let i=new Map(e(u).map(e=>[e.id,e]));for(let e of r)i.set(e.id,e);W(u,Array.from(i.values()),!0)}function ze(t,n,r,i){if(!(J||r!==X||T!==n))switch(i.type){case`status`:i.status.state===`working`&&(W(y,{...i.status,cancellable:!0},!0),e(O)&&i.status.label&&W(O,{...e(O),step:i.status.label},!0));return;case`token`:W(C,(e(C)+i.text).slice(-2e4),!0);return;case`step`:W(S,[...e(S),i.step].slice(-30),!0),e(O)&&i.step.kind===`tool_call`&&W(O,{...e(O),step:i.step.label,stepCount:e(O).stepCount+1},!0);return;case`message`:if(e(l)===t){let t=new Map(e(u).map(e=>[e.id,e]));t.set(i.message.id,i.message),W(u,Array.from(t.values()),!0)}i.message.role===`assistant`&&W(C,``);return;case`done`:W(C,``);{let t=i.stoppedReason===`max_steps`||i.stoppedReason===`budget`||i.stoppedReason===`repeated_calls`?i.stoppedReason:i.capReason;e(O)&&t&&W(O,{...e(O),stoppedReason:t},!0)}return;default:return}}function Be(){if(!t.actionClient)return null;let e=t.registry.list().filter(e=>ge(e.identity)&&e.actions.length>0);return e.length===0?null:{name:qs,description:[`Propose an action on something shown on this page. Nothing changes until the user confirms it in the chat.`,`Available:`,...e.map(e=>`${e.identity.surfaceId}: ${e.label} — ${e.actions.map(e=>`${e.id} (${e.label})`).join(`, `)}`)].join(`
28
+ `).slice(0,1e3),inputSchema:{type:`object`,required:[`surfaceId`,`actionId`],additionalProperties:!1,properties:{surfaceId:{type:`string`,enum:[...new Set(e.map(e=>e.identity.surfaceId))]},subjectId:{type:`string`},actionId:{type:`string`},rowIds:{type:`array`,items:{type:`string`},description:`The rows to act on; omit for the rows on screen.`},payload:{type:`object`}}},effect:`read`}}async function Ve(e){let r=t.settleTimeoutMs??5e3,i=n();if(t.settle){let e;try{await Promise.race([Promise.resolve(t.settle()),new Promise(t=>{e=setTimeout(t,r)})])}catch{}finally{e&&clearTimeout(e)}}e.signal.aborted||await st(t.registry,{timeoutMs:Math.max(0,r-(n()-i)),alsoWatch:[t.pageTools],signal:e.signal})}function He(){let e=t.pageTools?.list()??[],n=t.clientToolFilter;return n?e.filter(e=>{try{return n(e)}catch{return!1}}):e}function Ue(){let e=He(),t=Be();return[...e,...t?[t]:[],...D.tools()]}function Z(e,t,n){let r=Ue();return{...r.length>0?{clientTools:Ks(r)}:{},onEvent:r=>ze(e,t,n,r),signal:t.signal}}function We(t,n){W(w,e(w).map(e=>e.id===t?{...e,...n}:e),!0)}function Ge(e,t){return t.signal.aborted?Promise.resolve(!1):new Promise(t=>{E.set(e,t)})}function Ke(e,t){let n=E.get(e);n&&(E.delete(e),n(t))}async function qe(e){let n=e.args??{},r=typeof n.surfaceId==`string`?n.surfaceId:``,i=typeof n.actionId==`string`?n.actionId:``,a=typeof n.subjectId==`string`?n.subjectId:void 0,o=t.registry.list().find(e=>e.identity.surfaceId===r&&ge(e.identity)&&(a===void 0||e.identity.subject?.id===a));if(!o)return{id:e.id,ok:!1,error:`not_on_this_page`};if(!o.actions.some(e=>e.id===i))return{id:e.id,ok:!1,error:`unknown_action`};let s=Array.isArray(n.rowIds)?n.rowIds.filter(e=>typeof e==`string`||typeof e==`number`):[],c=n.payload&&typeof n.payload==`object`&&!Array.isArray(n.payload)?n.payload:void 0,l={version:1,requestId:`assistant-${e.id}`,identity:o.identity,actionId:i,phase:`preview`,selection:s.length>0?{scope:`explicit-ids`,rowIds:s}:{scope:`current-page`},...c===void 0?{}:{payload:c}};await rt(l);let u=G.get(l.requestId);return u?.status===`previewed`?{id:e.id,ok:!0,result:JSON.stringify({proposed:!0,waitingForUser:!0,preview:u.previewResult?.details??null})}:{id:e.id,ok:!1,error:u?.error??u?.previewResult?.reason??`not_proposed`}}async function Je(n,r){let i=[];for(let a of n){if(r.signal.aborted){i.push({id:a.id,ok:!1,error:`cancelled`});continue}if(a.name===`assistant_propose_action`&&Be()){i.push(await qe(a));continue}if(D.isChoiceTool(a.name)){i.push(await D.offerFromCall(a,r.signal));continue}let n=He().find(e=>e.name===a.name);if(!n||!t.pageTools){i.push({id:a.id,ok:!1,error:`not_available`});continue}let o=Gs(n,t.clientToolPolicy);if(o===`confirm`){if(W(w,[...e(w),{id:a.id,name:n.name,description:n.description,args:a.args??{},effect:n.effect,status:`waiting`}],!0),!await Ge(a.id,r)){We(a.id,{status:`declined`}),i.push({id:a.id,ok:!1,error:r.signal.aborted?`cancelled`:`declined`});continue}We(a.id,{status:`running`})}try{let s=await t.pageTools.execute(n.name,a.args??{},{signal:r.signal});o===`confirm`&&(We(a.id,{status:`done`}),n.effect!==`read`&&W(x,e(x)+1)),i.push({id:a.id,ok:!0,result:s}),z(n,o)}catch(e){let t=e instanceof Error?e.message:String(e);o===`confirm`&&We(a.id,{status:`failed`,error:t}),i.push({id:a.id,ok:!1,error:t})}}return i}function Ye(){if(e(v)&&e(O)?.state===`paused`)return{state:`working`,label:`Paused`,cancellable:!0};if(e(v))return e(w).some(e=>e.status===`waiting`)?{state:`working`,label:`Waiting for your OK…`,cancellable:!0}:{...e(y)??{state:`working`,label:`Working on it…`},state:`working`,cancellable:!0};let t=[...G.values()];if(t.some(e=>e.status===`applying`))return{state:`working`,label:`Making the change…`};if(t.some(e=>e.status===`previewing`))return{state:`working`,label:`Getting a change ready…`};if(D.sets.some(e=>e.status===`applying`))return{state:`working`,label:`Making the change…`};let n=D.pendingMessage;return n?{state:`working`,label:n}:D.waitingCount>0?{state:`done`,label:`Pick one of the options`}:e(f).some(e=>e.status===`processing`)?{state:`working`,label:`Working on it…`}:e(b)}let Xe=t.onRun?B(()=>{j(()=>{let e=U();re(()=>{try{t.onRun?.(e)}catch{}})})}):null,Ze=t.onStatus?B(()=>{j(()=>{let e=Ye();re(()=>{try{t.onStatus?.(e)}catch{}})})}):null;async function Qe(n,r,i){if(!e(l))throw Error(`AssistantDock: answerQuestion() called with no active thread`);let a=`${n}:${r.id}`,o=us(r,i);if(!o||e(d)[a])return;let s=e(l),c=X;W(d,{...e(d),[a]:o},!0);let u=t.transport.answerQuestion;if(!u)await $e(ds(r,o));else try{let e=await u.call(t.transport,{threadId:s,messageId:n,questionId:r.id,values:o,clientRequestId:t.createClientRequestId?.()??ic(s)});!J&&c===X&&(Re(s,e),W(g,null))}catch(t){if(!J&&c===X){let{[a]:n,...r}=e(d);W(d,r,!0),W(g,t instanceof Error?t.message:String(t),!0)}throw t}}async function $e(n,r){if(!e(l))throw Error(`AssistantDock: send() called with no active thread`);let i=e(l),a=ue(i,n,r),o=le.get(a);o||(o=t.createClientRequestId?.()??ic(i),le.set(a,o));let s=e(_),c=X;await Pe(i,n,o,r),!J&&c===X&&e(_)===s&&e(_).trim()===n.trim()&&W(_,``)}async function et(t){let n=e(f).find(e=>e.clientRequestId===t);if(!n)return;let r=X;try{if(await Pe(n.threadId,n.content,t,n.attachments),J||r!==X)return;W(g,null)}catch(e){if(J||r!==X)return;W(g,e instanceof Error?e.message:String(e),!0)}}function tt(e){return e.requestId}function nt(){return globalThis.crypto?.randomUUID?.()??`${Date.now()}-${Math.random().toString(36).slice(2)}`}async function rt(e){let n=G.get(tt(e));if(n&&(n.status===`applying`||n.outcomeUnknown===!0)){W(g,`AssistantDock: previewAction refused — action "${tt(e)}" has an apply in flight or an unknown outcome; retry it with applyAction instead.`);return}let r=t.createIdempotencyKey?.()??nt();if(!ge(e.identity)){G.set(tt(e),{request:e,status:`failed`,error:`AssistantDock: surface "${ac(e.identity)}" is not mounted`,idempotencyKey:r});return}let i;try{if(!t.actionClient)throw Error(`AssistantDock: previewAction requires an actionClient`);i=ye({...e,phase:`preview`})}catch(t){G.set(tt(e),{request:e,status:`failed`,error:t instanceof Error?t.message:String(t),idempotencyKey:r});return}G.set(tt(i),{request:i,status:`previewing`,idempotencyKey:r});let a=X,o;try{o=await t.actionClient.preview(i)}catch(e){let t=G.get(tt(i));t&&t.status===`previewing`&&t.idempotencyKey===r&&a===X&&G.set(tt(i),{request:i,status:`failed`,error:e instanceof Error?e.message:String(e),idempotencyKey:r});return}let s=G.get(tt(i));s&&a===X&&s.status===`previewing`&&s.idempotencyKey===r&&G.set(tt(i),{request:i,status:o.ok?`previewed`:`failed`,previewResult:o,error:o.ok?void 0:o.reason,idempotencyKey:r})}async function it(r){let i=G.get(r);if(!i||i.status===`applying`)return;let a=i.status===`failed`&&i.retryable===!0;if(i.status!==`previewed`&&!a){W(g,`AssistantDock: applyAction refused — action "${r}" is "${i.status}"${i.status===`failed`?` and not retryable (preview-phase failure)`:``}, not a confirmed preview or a retryable apply failure.`);return}let o=X;if(!ge(i.request.identity))G.set(r,{...i,status:`failed`,retryable:!0,error:`AssistantDock: surface "${ac(i.request.identity)}" is not mounted`});else try{if(!t.actionClient)throw Error(`AssistantDock: applyAction requires an actionClient`);let a=ye({...i.request,phase:`apply`,...i.previewResult?.confirmationToken?{confirmationToken:i.previewResult.confirmationToken}:{}});G.set(r,{...i,request:a,status:`applying`});let s=await t.actionClient.apply(a,i.idempotencyKey),c=G.get(r);c&&c.status===`applying`&&o===X?(G.set(r,{...c,request:a,status:s.ok?`applied`:`failed`,applyResult:s,error:s.ok?void 0:s.reason,retryable:!s.ok,outcomeUnknown:!s.ok&&rc(s.reason)}),s.ok?(at(a,s),ot(a,{status:`applied`,result:s})):rc(s.reason)?ot(a,{status:`unknown`,result:s}):ot(a,{status:`rejected`,by:`server`,result:s})):!c&&s.ok&&o===X&&(e(l)&&W(u,[...e(u),{id:`applied-after-reject-${r}`,threadId:e(l),content:`The action "${a.actionId}" you rejected was already applied by the server before the rejection took effect.`,role:`system`,createdAt:new Date(n())}],!0),at(a,s),ot(a,{status:`applied`,result:s}))}catch(e){let t=G.get(r);if(t&&t.status===`applying`&&o===X){let n=e instanceof Error?e.message:String(e);G.set(r,{...t,status:`failed`,error:n,retryable:!0,outcomeUnknown:!0}),ot(t.request,{status:`unknown`,error:n})}}}function at(e,n){try{t.onActionApplied?.(e,n)}catch{}}function ot(n,r){r.status===`applied`&&(e(v)?W(x,e(x)+1):W(b,{state:`done`,label:`Done`,changes:1},!0));try{t.onActionSettled?.(n,r)}catch{}}function ct(e){let t=G.get(e);t&&(t.status===`applying`||t.outcomeUnknown===!0?W(g,`AssistantDock: rejectAction refused — action "${e}" `+(t.status===`applying`?`is still applying.`:`has an unknown outcome; retry it to learn whether it applied.`)):(G.delete(e),ot(t.request,{status:`rejected`,by:`user`})))}function lt(){J||(J=!0,Le(),Ze?.(),Xe?.(),Oe(),q?.(),q=null,D.clear())}return{get threads(){return e(s)},get threadsLoading(){return e(c)},get activeThreadId(){return e(l)},get messages(){return e(u)},get pendingSends(){return e(f)},get surfaces(){return e(p)},get actions(){return G},get models(){return e(m)},get selectedModel(){return e(h)},get error(){return e(g)},get draft(){return e(_)},get status(){return Ye()},get steps(){return e(S)},get streamingText(){return e(C)},get toolRequests(){return e(w)},get run(){return U()},pauseRun:ne,continueRun:V,acknowledgeRun:ie,dismissRun:ae,holdForUser:H,get choices(){return D.sets},chooseOption:(e,t)=>D.choose(e,t),previewOption:(e,t)=>D.preview(e,t),commitOption:e=>D.commit(e),cancelChoices:e=>D.cancel(e),dismissChoices:e=>D.dismiss(e),approveToolRequest:e=>Ke(e,!0),declineToolRequest:e=>Ke(e,!1),cancel:Le,setDraft:ce,setError:se,loadThreads:ke,loadModels:Ae,setSelectedModel:je,openThread:Me,createThread:Ne,send:$e,retry:et,get answeredQuestions(){return e(d)},answerQuestion:Qe,previewAction:rt,applyAction:it,rejectAction:ct,startPolling:De,stopPolling:Oe,syncRegistry:xe,syncSurfaces:Ce,syncTransport:Se,dispose:lt}}var sc=c(`<div class="assistant-dock-message-content assistant-dock-markdown svelte-d0nc1n"></div>`),cc=c(`<p class="assistant-dock-message-content svelte-d0nc1n"> </p>`),lc=c(`<!> <div class="assistant-dock-threads svelte-d0nc1n"><!></div>`,1),uc=c(`<p class="assistant-dock-error svelte-d0nc1n" role="alert"> <!></p>`),dc=c(`<span> </span>`),fc=c(`<div class="assistant-dock-run svelte-d0nc1n" role="status" aria-live="polite"><span> </span> <!></div>`),pc=f(`<svg viewBox="0 0 20 20" width="18" height="18" aria-hidden="true"><path d="M4 6h12M8 6V4.5h4V6m-6.5 0l.7 9.5h7.6L15 6M8.5 9v4m3-4v4" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"></path></svg>`),mc=c(`<div class="assistant-dock-single-actions svelte-d0nc1n"><!></div>`),hc=c(`<p class="assistant-dock-empty svelte-d0nc1n"> </p>`),gc=c(`<div class="assistant-dock-thread-state assistant-dock-thread-loading svelte-d0nc1n" role="status"><p class="svelte-d0nc1n"> </p></div>`),_c=c(`<h2 class="svelte-d0nc1n"> </h2> <p class="svelte-d0nc1n"> </p> <div class="assistant-dock-thread-state-actions svelte-d0nc1n"><!> <!></div>`,1),vc=c(`<h2 class="svelte-d0nc1n"> </h2> <p class="svelte-d0nc1n"> </p> <!>`,1),yc=c(`<h2 class="svelte-d0nc1n"> </h2> <p class="svelte-d0nc1n"> </p>`,1),bc=c(`<section class="assistant-dock-thread-state svelte-d0nc1n"><!></section>`),xc=c(`<div class="assistant-dock-suggestions svelte-d0nc1n" role="group"></div>`),Sc=c(`<div class="assistant-dock-card svelte-d0nc1n"><!></div>`),Cc=c(`<a target="_blank" rel="noopener noreferrer" class="assistant-dock-attachment-link svelte-d0nc1n"> </a>`),wc=c(`<span class="assistant-dock-attachment-name svelte-d0nc1n"> </span>`),Tc=c(`<span class="assistant-dock-attachment-size svelte-d0nc1n"> </span>`),Ec=c(`<li class="assistant-dock-attachment svelte-d0nc1n"><!> <!></li>`),Dc=c(`<ul class="assistant-dock-attachments svelte-d0nc1n"></ul>`),Oc=c(`<!> <!>`,1),kc=c(`<div class="assistant-dock-card assistant-dock-tool-call svelte-d0nc1n"><!></div>`),Ac=c(`<li class="svelte-d0nc1n"><!> <!> <!></li>`),jc=c(`<div class="assistant-dock-streaming svelte-d0nc1n"><!></div>`),Mc=c(`<!> <!> <ul class="assistant-dock-messages svelte-d0nc1n"></ul> <!>`,1),Nc=c(`<p class="assistant-dock-tool-request-warning svelte-d0nc1n"> </p>`),Pc=c(`<div class="assistant-dock-tool-request svelte-d0nc1n" role="group"><p class="assistant-dock-tool-request-title svelte-d0nc1n"> </p> <p class="assistant-dock-tool-request-description svelte-d0nc1n"> </p> <!> <details class="assistant-dock-tool-request-details svelte-d0nc1n"><summary> </summary> <pre class="svelte-d0nc1n"> </pre></details> <div class="assistant-dock-tool-request-actions svelte-d0nc1n"><!> <!></div></div>`),Fc=c(`<div class="assistant-dock-action-unknown svelte-d0nc1n" role="status"><p class="svelte-d0nc1n"> </p> <!></div>`),Ic=c(`<li><!> <!></li>`),Lc=c(`<ul class="assistant-dock-actions svelte-d0nc1n"></ul>`),Rc=c(`<div class="assistant-dock-stale svelte-d0nc1n"><p class="svelte-d0nc1n"> </p> <!></div>`),zc=c(`<div class="assistant-dock-failed svelte-d0nc1n"><p class="svelte-d0nc1n"> </p> <!></div>`),Bc=c(`<div class="assistant-dock-status svelte-d0nc1n" role="status" aria-live="polite"><span class="assistant-dock-status-label"> </span> <!></div>`),Vc=c(`<div class="assistant-dock-composer-header svelte-d0nc1n"><!></div>`),Hc=c(`<div class="assistant-dock-composer"><!> <!></div>`),Uc=c(`<div class="assistant-dock svelte-d0nc1n" data-smrt-component="AssistantDock"><div class="assistant-dock-layout svelte-d0nc1n"><!> <div class="assistant-dock-main svelte-d0nc1n"><!> <!> <!> <!> <!> <div class="assistant-dock-scroll svelte-d0nc1n"><!> <!> <!> <!> <!> <!></div> <!> <!></div></div></div>`);function Wc(i,a){let c=ie();g(a,!0);let f=(e,n=m,r=m)=>{var i=C(),c=V(i),d=e=>{var t=C(),i=V(t);o(i,()=>a.renderMessage,()=>({message:n(),streaming:r()})),S(e,t)},f=e=>{var t=sc();u(t,()=>Hs(n().content),!0),s(t),S(e,t)},p=e=>{var t=cc(),r=z(t,!0);H(()=>l(r,n().content)),S(e,t)};t(c,e=>{a.renderMessage?e(d):N()===`markdown`?e(f,1):e(p,-1)}),S(e,i)};function h(e){return e===`system`?`system`:e===`user`?`default`:`agent`}function y(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}let x=k(a,`suggestions`,19,()=>[]),w=k(a,`contextMode`,3,`data-surfaces`),T=k(a,`visible`,3,!0),E=k(a,`presentation`,3,`full`),D=k(a,`conversations`,3,`multiple`),O=k(a,`threadList`,3,!0),N=k(a,`messageFormat`,3,`text`),P=k(a,`composerDisabled`,3,!1),I=k(a,`sendOnPause`,3,!1),ee=k(a,`speaking`,3,!1),{t:R}=q(),te=A(null);function ne(t){let n=t&&typeof t==`object`?t.unavailable:void 0;return W(te,n?.reason?n:null,!0),e(te)!==null}let B=oc({get transport(){return a.transport},get registry(){return a.registry},get actionClient(){return a.actionClient},get surfaces(){return a.surfaces},visible:()=>T(),onActionApplied:(e,t)=>a.onactionapplied?.(e,t),onActionSettled:(e,t)=>a.onactionsettled?.(e,t),initialDraft:re(()=>a.initialDraft),get pageTools(){return a.pageTools},clientToolPolicy:e=>(a.clientToolPolicy??Ws)(e),onStatus:e=>a.onstatus?.(e),settle:()=>a.settle?.(),clientToolFilter:e=>a.clientToolFilter?.(e)??!0,get maxPauseMs(){return a.maxPauseMs},onRun:e=>a.onrun?.(e),get choiceSources(){return a.choiceSources}});function ae(e){try{return JSON.stringify(e,null,2)}catch{return``}}j(()=>(re(()=>{B.loadThreads(),B.loadModels(),B.startPolling(),a.oncontroller?.(B)}),()=>B.dispose()));let ce=n(()=>B.run?.waitingFor?.kind===`choice`||B.toolRequests.some(e=>e.status===`waiting`)||[...B.actions.values()].some(e=>e.status===`previewed`||e.outcomeUnknown));j(()=>{a.onattentionchange?.(e(ce))});let le=A(0);j(()=>{a.registry,re(()=>{se(le),B.syncRegistry()})}),j(()=>{a.surfaces,re(()=>B.syncSurfaces())}),j(()=>{a.transport,re(()=>{se(le),B.syncTransport()})});let ue=A(!1),K=`assistant-dock-threads-${c}`,de=A(void 0),fe=`${K}-toggle`;function J(){if(!e(ue))return;let t=typeof document<`u`&&!!e(de)?.contains(document.activeElement);W(ue,!1),t&&oe().then(()=>{e(de)&&e(de).offsetParent===null&&document.getElementById(fe)?.focus()})}async function pe(){W(ue,!0),await oe(),e(de)?.querySelector(`.assistant-thread-list-item`)?.focus()}let he=A(void 0),ge=null;function _e(e){if(!e.lastMessageAt)return e.messageCount===0?1/0:-1/0;let t=new Date(e.lastMessageAt).getTime();return Number.isNaN(t)?-1/0:t}function ve(){let e;for(let t of B.threads){let n=_e(t);(!e||n>=e.at)&&(e={id:t.id,at:n})}return e?.id}async function ye(e=!1){let t=a.transport;ge=t;try{let n=e?void 0:ve();if(!n){if(!t.createThread){B.setError(R(Q[`chat.assistant_dock.no_conversations`]));return}n=(await B.createThread(`Conversation`)).id}if(a.transport!==t)return;await B.openThread(n)}catch{}finally{ge===t&&(ge=null)}}async function be(){B.setError(null),await B.loadThreads()}j(()=>{D()===`single`&&(B.threadsLoading||B.activeThreadId||B.error||ge!==a.transport&&re(()=>ye()))}),j(()=>{D()===`single`&&T()&&B.activeThreadId&&oe().then(()=>e(he)?.focus())}),j(()=>{if(typeof document>`u`)return;let t=t=>{let n=t.detail;t.defaultPrevented||typeof n?.prompt!=`string`||(t.preventDefault(),B.setDraft(n.prompt),oe().then(()=>e(he)?.focus()))};return document.addEventListener(me,t),()=>document.removeEventListener(me,t)});async function xe(){J(),B.setError(null),await ye(!0)}async function Se(e){J(),await B.openThread(e)}async function Ce(){J();try{let e=await B.createThread(`New conversation`);await B.openThread(e.id)}catch{}}async function we(e,t,n){try{await B.answerQuestion(e,t,n)}catch(e){throw ne(e)?B.setError(null):B.setError(e instanceof Error?e.message:String(e)),e}}async function Te(e,t){try{await B.send(e,t),B.setError(null),W(te,null)}catch(e){throw ne(e)?B.setError(null):B.setError(e instanceof Error?e.message:String(e)),e}}async function Ee(t){let n=a.transport,r=e(le),i=()=>a.transport===n&&e(le)===r;try{let e=n.uploadAttachment;if(!e)throw Error(`AssistantDock: attachment upload is not supported`);let r=[];for(let a of Array.from(t))if(r.push(await e.call(n,a)),!i())return[];return B.setError(null),r}catch(e){throw i()&&B.setError(e instanceof Error?e.message:String(e)),e}}async function De(e){await B.applyAction(e)}var Oe=Uc(),ke=F(Oe),Ae=F(ke),je=t=>{var r=lc(),i=V(r);Y(i,{type:`button`,variant:`ghost`,get id(){return fe},class:`assistant-dock-threads-toggle`,get"aria-expanded"(){return e(ue)},get"aria-controls"(){return K},onclick:()=>W(ue,!e(ue)),children:(e,t)=>{v();var n=d();H(e=>l(n,e),[()=>R(Q[`chat.assistant_dock.conversations_toggle`])]),S(e,n)},$$slots:{default:!0}});var o=L(i,2),c=F(o);{let t=n(()=>a.transport.createThread?Ce:void 0);Ds(c,{get threads(){return B.threads},get activeThreadId(){return B.activeThreadId},onselect:Se,get oncreate(){return e(t)}})}s(o),M(o,e=>W(de,e),()=>e(de)),H(()=>U(o,`id`,K)),S(t,r)};t(Ae,e=>{E()===`full`&&D()!==`single`&&O()&&e(je)});var Me=L(Ae,2),Ne=F(Me),Pe=t=>{Xo(t,{get status(){return e(te)},get settingsHref(){return a.aiSettingsHref}})};t(Ne,t=>{e(te)&&t(Pe)});var Fe=L(Ne,2),Ie=e=>{var n=uc(),r=F(n),i=L(r),a=e=>{Y(e,{type:`button`,size:`sm`,variant:`ghost`,onclick:be,children:(e,t)=>{v();var n=d();H(e=>l(n,e),[()=>R(Q[`chat.assistant_dock.retry_conversation`])]),S(e,n)},$$slots:{default:!0}})};t(i,e=>{D()===`single`&&!B.activeThreadId&&e(a)}),s(n),H(e=>l(r,`${e??``} `),[()=>R(Q[`chat.assistant_dock.error`],{message:B.error})]),S(e,n)};t(Fe,e=>{B.error&&e(Ie)});var Le=L(Fe,2),Re=e=>{var n=fc(),r=F(n),i=z(r,!0),a=L(r,2),o=e=>{Y(e,{type:`button`,size:`sm`,variant:`ghost`,onclick:()=>B.pauseRun(),children:(e,t)=>{v();var n=d(`Pause`);S(e,n)},$$slots:{default:!0}})},c=e=>{Y(e,{type:`button`,size:`sm`,onclick:()=>B.continueRun(),children:(e,t)=>{v();var n=d(`Continue`);S(e,n)},$$slots:{default:!0}})},u=e=>{var t=dc(),n=z(t,!0);H(()=>l(n,B.run.waitingFor.label??`Waiting for ${B.run.waitingFor.kind}`)),S(e,t)};t(a,e=>{B.run.state===`running`?e(o):B.run.state===`paused`?e(c,1):B.run.state===`waiting`&&B.run.waitingFor&&e(u,2)}),s(n),H(()=>l(i,B.run.goal)),S(e,n)};t(Le,e=>{B.run&&(E()===`controls`||B.run.state===`paused`)&&e(Re)});var ze=L(Le,2),Be=t=>{var r=mc(),i=F(r);{let t=n(()=>R(Q[`chat.assistant_dock.clear_conversation`])),r=n(()=>R(Q[`chat.assistant_dock.clear_conversation`]));Y(i,{type:`button`,size:`sm`,variant:`ghost`,class:`assistant-dock-clear`,onclick:xe,get"aria-label"(){return e(t)},get title(){return e(r)},children:(e,t)=>{var n=pc();S(e,n)},$$slots:{default:!0}})}s(r),S(t,r)};t(ze,e=>{D()===`single`&&B.activeThreadId&&a.transport.createThread&&B.messages.length>0&&e(Be)});var Ve=L(ze,2),He=e=>{var t=hc(),n=z(t,!0);H(e=>l(n,e),[()=>R(Q[`chat.assistant_dock.no_surfaces`])]),S(e,t)};t(Ve,e=>{w()===`data-surfaces`&&B.surfaces.length===0&&!a.pageTools&&e(He)});var Ue=L(Ve,2),Z=F(Ue),We=r=>{var i=Mc(),c=V(i),u=e=>{var n=C(),r=V(n),i=e=>{var t=gc(),n=F(t),r=z(n,!0);s(t),H((e,n)=>{U(t,`aria-label`,e),l(r,n)},[()=>R(Q[`chat.assistant_dock.opening_conversation`]),()=>R(Q[`chat.assistant_dock.opening_conversation`])]),S(e,t)};t(r,e=>{!B.activeThreadId&&!B.error&&e(i)}),S(e,n)},m=e=>{var t=gc(),n=F(t),r=z(n,!0);s(t),H((e,n)=>{U(t,`aria-label`,e),l(r,n)},[()=>R(Q[`chat.assistant_dock.loading_conversations`]),()=>R(Q[`chat.assistant_dock.loading_conversations`])]),S(e,t)},g=e=>{var n=bc(),r=F(n),i=e=>{var n=_c(),r=V(n),i=z(r,!0),o=L(r,2),c=z(o,!0),u=L(o,2),f=F(u);Y(f,{type:`button`,get"aria-controls"(){return K},onclick:pe,children:(e,t)=>{v();var n=d();H(e=>l(n,e),[()=>R(Q[`chat.assistant_dock.view_conversations`])]),S(e,n)},$$slots:{default:!0}});var p=L(f,2),m=e=>{Y(e,{type:`button`,variant:`ghost`,onclick:Ce,children:(e,t)=>{v();var n=d();H(e=>l(n,e),[()=>R(Q[`chat.assistant_dock.start_new_conversation`])]),S(e,n)},$$slots:{default:!0}})};t(p,e=>{a.transport.createThread&&e(m)}),s(u),H((e,t)=>{U(r,`id`,`${K}-empty-title`),l(i,e),l(c,t)},[()=>R(Q[`chat.assistant_dock.choose_conversation`]),()=>R(Q[`chat.assistant_dock.choose_conversation_hint`])]),S(e,n)},o=e=>{var t=vc(),n=V(t),r=z(n,!0),i=L(n,2),a=z(i,!0),o=L(i,2);Y(o,{type:`button`,onclick:Ce,children:(e,t)=>{v();var n=d();H(e=>l(n,e),[()=>R(Q[`chat.assistant_dock.start_new_conversation`])]),S(e,n)},$$slots:{default:!0}}),H((e,t)=>{U(n,`id`,`${K}-empty-title`),l(r,e),l(a,t)},[()=>R(Q[`chat.assistant_dock.start_conversation`]),()=>R(Q[`chat.assistant_dock.start_conversation_hint`])]),S(e,t)},c=e=>{var t=yc(),n=V(t),r=z(n,!0),i=L(n,2),a=z(i,!0);H((e,t)=>{U(n,`id`,`${K}-empty-title`),l(r,e),l(a,t)},[()=>R(Q[`chat.assistant_dock.no_conversations`]),()=>R(Q[`chat.assistant_dock.no_conversations_hint`])]),S(e,t)};t(r,e=>{O()&&B.threads.length>0?e(i):a.transport.createThread?e(o,1):e(c,-1)}),s(n),H(()=>U(n,`aria-labelledby`,`${K}-empty-title`)),S(e,n)};t(c,e=>{D()===`single`?e(u):!B.activeThreadId&&B.threadsLoading?e(m,1):!B.activeThreadId&&!B.error&&e(g,2)});var b=L(c,2),w=t=>{var n=xc();p(n,21,x,e=>e.prompt,(t,n)=>{Y(t,{variant:`secondary`,get disabled(){return P()},onclick:()=>{Te(e(n).prompt,[]).catch(()=>{})},children:(t,r)=>{v();var i=d();H(()=>l(i,e(n).label)),S(t,i)},$$slots:{default:!0}})}),s(n),H(e=>U(n,`aria-label`,e),[()=>R(Q[`chat.assistant_dock.conversation_starters`])]),S(t,n)},T=n(()=>B.activeThreadId&&!B.threadsLoading&&!B.messages.some(e=>e.role===`user`||e.role===`tool`)&&B.pendingSends.length===0&&x().length>0);t(b,t=>{e(T)&&t(w)});var E=L(b,2);p(E,21,()=>B.messages,e=>e.id,(r,i)=>{let c=n(()=>e(i).role===`tool`?a.toolResultComponent?.(e(i)):void 0),u=n(()=>e(i).role===`assistant`?cs(e(i)):null);var d=Ac(),m=F(d),g=t=>{var n=Sc(),r=F(n);_(r,()=>e(c),(t,n)=>{n(t,{get message(){return e(i)}})}),s(n),S(t,n)},v=r=>{{let a=r=>{var a=Oc(),o=V(a),c=t=>{f(t,()=>e(i),()=>!1)},u=t=>{var n=cc(),r=z(n,!0);H(()=>l(r,e(i).content)),S(t,n)};t(o,t=>{e(i).role===`assistant`?t(c):t(u,-1)});var d=L(o,2),m=r=>{var a=Dc();p(a,21,()=>e(i).attachments,e=>e.id,(r,i)=>{let a=n(()=>Us(e(i).url));var o=Ec(),c=F(o),u=t=>{var n=Cc(),r=z(n,!0);H(()=>{U(n,`href`,e(a)),l(r,e(i).name)}),S(t,n)},d=t=>{var n=wc(),r=z(n,!0);H(()=>l(r,e(i).name)),S(t,n)};t(c,t=>{e(a)?t(u):t(d,-1)});var f=L(c,2),p=t=>{var n=Tc(),r=z(n,!0);H(e=>l(r,e),[()=>y(e(i).size)]),S(t,n)};t(f,t=>{e(i).size!==void 0&&t(p)}),s(o),S(r,o)}),s(a),H(e=>U(a,`aria-label`,e),[()=>R(Q[`chat.assistant_dock.attachments`])]),S(r,a)};t(d,t=>{e(i).attachments&&e(i).attachments.length>0&&t(m)}),S(r,a)},o=n(()=>h(e(i).role)),c=n(()=>e(i).role===`user`);X(r,{get variant(){return e(o)},get own(){return e(c)},children:a,$$slots:{default:!0}})}};t(m,t=>{e(c)?t(g):t(v,-1)});var b=L(m,2),x=t=>{var r=Sc(),a=F(r);{let t=n(()=>B.answeredQuestions[`${e(i).id}:${e(u).id}`]??null),r=n(()=>e(i).id===B.messages.at(-1)?.id);Ss(a,{get question(){return e(u)},get answered(){return e(t)},get autofocus(){return e(r)},onsubmit:t=>we(e(i).id,e(u),t)})}s(r),S(t,r)};t(b,t=>{e(u)&&t(x)});var C=L(b,2),w=t=>{var n=kc(),r=F(n);o(r,()=>a.toolCall,()=>e(i)),s(n),S(t,n)};t(C,t=>{a.toolCall&&e(i).toolCallData!=null&&t(w)}),s(d),H(()=>U(d,`data-role`,e(i).role)),S(r,d)}),s(E);var k=L(E,2),A=e=>{var t=jc(),n=F(t);X(n,{variant:`agent`,own:!1,children:e=>{f(e,()=>({id:`assistant-dock-streaming`,threadId:B.activeThreadId??``,role:`assistant`,content:B.streamingText,createdAt:``}),()=>!0)},$$slots:{default:!0}}),s(t),H(e=>U(t,`aria-label`,e),[()=>R(Q[`chat.assistant_dock.reply_in_progress`])]),S(e,t)};t(k,e=>{B.streamingText&&e(A)}),S(r,i)};t(Z,e=>{E()===`full`&&e(We)});var Ge=L(Z,2);p(Ge,17,()=>B.toolRequests.filter(e=>e.status===`waiting`),e=>e.id,(n,r)=>{var i=Pc(),a=F(i),o=z(a,!0),c=L(a,2),u=z(c,!0),f=L(c,2),p=e=>{var t=Nc(),n=z(t,!0);H(e=>l(n,e),[()=>R(Q[`chat.assistant_dock.tool_request_destructive`])]),S(e,t)};t(f,t=>{e(r).effect===`destructive`&&t(p)});var m=L(f,2),h=F(m),g=z(h,!0),_=L(h,2),y=z(_,!0);s(m);var b=L(m,2),x=F(b);Y(x,{type:`button`,size:`sm`,onclick:()=>B.approveToolRequest(e(r).id),children:(e,t)=>{v();var n=d();H(e=>l(n,e),[()=>R(Q[`chat.assistant_dock.tool_request_allow`])]),S(e,n)},$$slots:{default:!0}});var C=L(x,2);Y(C,{type:`button`,size:`sm`,variant:`ghost`,onclick:()=>B.declineToolRequest(e(r).id),children:(e,t)=>{v();var n=d();H(e=>l(n,e),[()=>R(Q[`chat.assistant_dock.tool_request_decline`])]),S(e,n)},$$slots:{default:!0}}),s(b),s(i),H((t,n,a,s)=>{U(i,`aria-label`,t),l(o,n),l(u,e(r).description||e(r).name),l(g,a),l(y,s)},[()=>R(Q[`chat.assistant_dock.tool_request_title`]),()=>R(Q[`chat.assistant_dock.tool_request_title`]),()=>R(Q[`chat.assistant_dock.tool_request_details`]),()=>ae(e(r).args)]),S(n,i)});var Ke=L(Ge,2);Bo(Ke,{get choices(){return B.choices},onchoose:(e,t)=>void B.chooseOption(e,t),ondismiss:e=>B.dismissChoices(e),onpreview:(e,t)=>void B.previewOption(e,t),oncommit:e=>void B.commitOption(e),oncancel:e=>B.cancelChoices(e)});var qe=L(Ke,2),Je=r=>{var i=Lc();p(i,21,()=>[...B.actions.entries()],([e,t])=>e,(r,i)=>{var a=n(()=>b(e(i),2));let o=()=>e(a)[0],c=()=>e(a)[1];var u=Ic(),f=F(u);{let t=n(()=>({toolName:c().request.actionId,toolCallId:o(),status:Os(c().status),error:c().error})),r=n(()=>c().applyResult??(c().status===`previewed`?c().previewResult:void 0));ar(f,{get toolCall(){return e(t)},get actionResult(){return e(r)},onconfirmaction:()=>De(o()),onrejectaction:()=>B.rejectAction(o())})}var p=L(f,2),m=t=>{var r=Fc(),i=F(r),a=z(i,!0),u=L(i,2);{let t=n(()=>c().status===`applying`);Y(u,{type:`button`,size:`sm`,get disabled(){return e(t)},onclick:()=>De(o()),children:(e,t)=>{v();var n=d();H(e=>l(n,e),[()=>R(Q[`chat.assistant_dock.action_check_again`])]),S(e,n)},$$slots:{default:!0}})}s(r),H(e=>l(a,e),[()=>R(Q[`chat.assistant_dock.action_outcome_unknown`])]),S(t,r)};t(p,e=>{c().outcomeUnknown&&e(m)}),s(u),S(r,u)}),s(i),S(r,i)};t(qe,e=>{B.actions.size>0&&e(Je)});var Ye=L(qe,2),Xe=t=>{var n=Rc(),r=F(n),i=z(r,!0),a=L(r,2);p(a,17,()=>B.pendingSends.filter(e=>e.status===`stale`),e=>e.clientRequestId,(t,n)=>{Y(t,{type:`button`,size:`sm`,onclick:()=>B.retry(e(n).clientRequestId),children:(t,r)=>{v();var i=d();H(e=>l(i,e),[()=>R(Q[`chat.assistant_dock.retry`],{content:e(n).content})]),S(t,i)},$$slots:{default:!0}})}),s(n),H(e=>l(i,e),[()=>R(Q[`chat.assistant_dock.taking_longer`])]),S(t,n)},Ze=n(()=>B.pendingSends.some(e=>e.status===`stale`));t(Ye,t=>{e(Ze)&&t(Xe)});var Qe=L(Ye,2),$e=t=>{var n=zc(),r=F(n),i=z(r,!0),a=L(r,2);p(a,17,()=>B.pendingSends.filter(e=>e.status===`failed`),e=>e.clientRequestId,(t,n)=>{Y(t,{type:`button`,size:`sm`,onclick:()=>B.retry(e(n).clientRequestId),children:(t,r)=>{v();var i=d();H(e=>l(i,e),[()=>R(Q[`chat.assistant_dock.retry`],{content:e(n).content})]),S(t,i)},$$slots:{default:!0}})}),s(n),H(e=>l(i,e),[()=>R(Q[`chat.assistant_dock.send_failed`])]),S(t,n)},et=n(()=>B.pendingSends.some(e=>e.status===`failed`));t(Qe,t=>{e(et)&&t($e)}),s(Ue);var tt=L(Ue,2),nt=e=>{var n=Bc(),r=F(n),i=z(r,!0),a=L(r,2),o=e=>{Y(e,{type:`button`,size:`sm`,variant:`ghost`,onclick:()=>B.cancel(),children:(e,t)=>{v();var n=d();H(e=>l(n,e),[()=>R(Q[`chat.assistant_dock.stop`])]),S(e,n)},$$slots:{default:!0}})};t(a,e=>{B.status.cancellable&&e(o)}),s(n),H(()=>l(i,B.status.label)),S(e,n)};t(tt,e=>{B.status.state===`working`&&e(nt)});var rt=L(tt,2),it=r=>{var i=Hc(),o=F(i),c=t=>{var r=Vc(),i=F(r);{let t=n(()=>B.selectedModel??B.models[0].id);Qo(i,{get models(){return B.models},get value(){return e(t)},onchange:e=>B.setSelectedModel(e)})}s(r),S(t,r)};t(o,e=>{B.models.length>0&&e(c)});var l=L(o,2);G(l,()=>e(le),t=>{var r=()=>B.draft,i=e=>B.setDraft(e);{let o=n(()=>a.transport.uploadAttachment?Ee:void 0),s=n(()=>!B.activeThreadId||P());M(qo(t,{get value(){return r()},set value(e){i(e)},onsend:Te,get onupload(){return e(o)},get disabled(){return e(s)},get placeholder(){return a.composerPlaceholder},get dictation(){return a.dictation},get transcribe(){return a.transcribe},get dictationMode(){return a.dictationMode},get handsFreeCapture(){return a.handsFreeCapture},get handsFreeVad(){return a.handsFreeVad},get sendOnPause(){return I()},get sendOnPauseMs(){return a.sendOnPauseMs},get speaking(){return ee()}}),e=>W(he,e,!0),()=>e(he))}}),s(i),S(r,i)};t(rt,e=>{E()===`full`&&e(it)}),s(Me),s(ke),s(Oe),H(()=>U(ke,`data-threads-open`,e(ue)||void 0)),S(i,Oe),r()}Z.registerModule(Un),Z.register(`@happyvertical/smrt-chat`,`chat-layout`,Fi),Z.register(`@happyvertical/smrt-chat`,`room-list`,Ni),Z.register(`@happyvertical/smrt-chat`,`room-header`,ta),Z.register(`@happyvertical/smrt-chat`,`member-list`,qi),Z.register(`@happyvertical/smrt-chat`,`message-list`,ka),Z.register(`@happyvertical/smrt-chat`,`message-item`,Ta),Z.register(`@happyvertical/smrt-chat`,`message-input`,aa),Z.register(`@happyvertical/smrt-chat`,`thread-panel`,Na),Z.register(`@happyvertical/smrt-chat`,`chat-tabs`,Eo),Z.register(`@happyvertical/smrt-chat`,`chat-tab`,yo),Z.register(`@happyvertical/smrt-chat`,`chat-tab-list`,wo),Z.register(`@happyvertical/smrt-chat`,`mini-chat`,po),Z.register(`@happyvertical/smrt-chat`,`agent-chat`,yr),Z.register(`@happyvertical/smrt-chat`,`agent-selector`,wr),Z.register(`@happyvertical/smrt-chat`,`agent-session-panel`,Mr),Z.register(`@happyvertical/smrt-chat`,`tool-call-display`,ar),Z.register(`@happyvertical/smrt-chat`,`heard-captions`,Br),Z.register(`@happyvertical/smrt-chat`,`spoken-captions`,Wr),Z.register(`@happyvertical/smrt-chat`,`avatar`,Wn),Z.register(`@happyvertical/smrt-chat`,`file-upload`,za),Z.register(`@happyvertical/smrt-chat`,`link-preview`,Wa),Z.register(`@happyvertical/smrt-chat`,`mention-autocomplete`,qa),Z.register(`@happyvertical/smrt-chat`,`message-bubble`,X),Z.register(`@happyvertical/smrt-chat`,`reaction-picker`,oa),Z.register(`@happyvertical/smrt-chat`,`read-receipts`,no),Z.register(`@happyvertical/smrt-chat`,`typing-indicator`,he),Z.register(`@happyvertical/smrt-chat`,`user-presence`,ao),Z.register(`@happyvertical/smrt-chat`,`room-create-dialog`,Jr),Z.register(`@happyvertical/smrt-chat`,`search-messages`,ai),Z.register(`@happyvertical/smrt-chat`,`caption-overlay`,Ir),Z.register(`@happyvertical/smrt-chat`,`helper-control-panel`,_i);function Gc(e,t=[],n=!1,r=!1,i=[],a=[]){let o=e.map(e=>e.id),s={type:`array`,items:{enum:o},maxItems:o.length},c={reply:{type:`string`,maxLength:200},add:s,remove:s};return t.length&&(c.cookbook={enum:[...t.map(e=>e.id),null]}),n&&(c.settings={type:`object`,properties:{currency:{type:`string`,pattern:`^[A-Z]{3}$`},taxRate:{type:`number`,minimum:0,maximum:100},paymentTerms:{type:`string`,maxLength:40},pricesIncludeTax:{type:`boolean`},taxRounding:{enum:[`line`,`document`]}},additionalProperties:!1}),r&&(c.theme={type:`object`,properties:{preset:{enum:[...ze]},primary:{type:`string`,pattern:`^#[0-9a-fA-F]{6}$`},colorScheme:{enum:[`light`,`dark`]},borderRadius:{enum:[...Be]},density:{enum:[...He]},contrast:{enum:[...Ue]}},additionalProperties:!1}),i.length&&(c.open={enum:[...i,null]}),a.length&&(c.report=Qe(a)),{type:`object`,properties:c,required:[`reply`,`add`,`remove`],additionalProperties:!1}}function Kc(e){let t={};if(!e||typeof e!=`object`||Array.isArray(e))return t;let n=e;if(typeof n.currency==`string`){let e=n.currency.trim().toUpperCase();Ke.has(e)&&(t.currency=e)}let r=n.taxRate;if(typeof r==`number`&&Number.isFinite(r)&&r>=0&&r<=100&&(t.taxRate=r),typeof n.paymentTerms==`string`){let e=[...n.paymentTerms].map(e=>e.charCodeAt(0)<32||e.charCodeAt(0)===127?` `:e).join(``).trim();e&&e.length<=40&&(t.paymentTerms=e)}return typeof n.pricesIncludeTax==`boolean`&&(t.pricesIncludeTax=n.pricesIncludeTax),(n.taxRounding===`line`||n.taxRounding===`document`)&&(t.taxRounding=n.taxRounding),t}function qc(e){let t={};if(!e||typeof e!=`object`||Array.isArray(e))return t;let n=e;typeof n.preset==`string`&&ze.includes(n.preset)&&(t.preset=n.preset);let r=Ie(n.primary);return r&&(t.primary=r),(n.colorScheme===`light`||n.colorScheme===`dark`||n.colorScheme===`system`)&&(t.colorScheme=n.colorScheme),Be.includes(n.borderRadius)&&(t.borderRadius=n.borderRadius),He.includes(n.density)&&(t.density=n.density),Ue.includes(n.contrast)&&(t.contrast=n.contrast),t}function Jc(e){return e.replace(/<think>[\s\S]*?<\/think>/gi,``).replace(/<think>[\s\S]*$/i,``).trim()}function Yc(e){let t=/"reply"\s*:\s*"((?:[^"\\]|\\.)*)/.exec(e);if(!t)return null;let n=t[1];n=n.replace(/\\$/,``);try{n=JSON.parse(`"${n}"`)}catch{n=n.replace(/\\n/g,` `).replace(/\\"/g,`"`)}return n.trim()||null}function Xc(e,t,n=[],r={}){let i=new Set(t.map(e=>e.id)),a=Jc(e),o=e=>({reply:e,add:[],remove:[],cookbook:null,settings:{},theme:{}}),s=/^[\s`]*[{[]/.test(a)||/"reply"\s*:/.test(a),c=()=>o(s?Yc(a)??`Sorry, say that again?`:a),l;try{l=JSON.parse(a)}catch{return c()}if(!l||typeof l!=`object`||Array.isArray(l))return c();let u=l,d=e=>Array.isArray(e)?[...new Set(e.filter(e=>typeof e==`string`&&i.has(e)))]:[],f=d(u.add),p=d(u.remove),m=new Set(f.filter(e=>p.includes(e))),h=r.commands?de(u.sampleContext):void 0,g=r.commands?Zc(u.commands):[],_=r.reports?$e(u.report):null;return{reply:typeof u.reply==`string`?u.reply.trim():``,add:f.filter(e=>!m.has(e)),remove:p.filter(e=>!m.has(e)),cookbook:typeof u.cookbook==`string`&&n.some(e=>e.id===u.cookbook)?u.cookbook:null,settings:Kc(u.settings),theme:qc(u.theme),...g.length?{commands:g}:{},...h?{sampleContext:h}:{},...typeof u.open==`string`&&r.sections?.includes(u.open)?{open:u.open}:{},..._?{report:_}:{}}}function Zc(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(t.length>=8)break;if(!n||typeof n!=`object`)continue;let{name:e,input:r}=n;typeof e==`string`&&t.push({name:e,input:r??{}})}return t}function Qc(e,t){let n=e=>t.find(t=>t.id===e),r=e=>n(e)?.label??e,i=e=>e.map(r).join(`, `),a=[];e.added.length&&a.push(`Added ${i(e.added)}.`);let o=e.added.filter(e=>n(e)?.nav?.length===0);return o.length&&a.push(`${i(o)} ${o.length===1?`adds`:`add`} nothing to the menu.`),e.removed.length&&a.push(`Removed ${i(e.removed)}.`),e.kept.length&&a.push(`Kept ${i(e.kept)} (needed).`),a.join(` `)}function $c(e,t,n,r){if(!n.length||n.some(e=>!e.ok)||!n.some(e=>e.ok&&e.receipt.changed))return``;let i=t.sections.filter(e=>!e.hidden).find(e=>e.items.some(e=>!e.hidden)),a=i?.items.find(e=>!e.hidden),o=e.recipes.length===0&&t.recipes.length>0;return[o&&i&&a?`This is an interactive demo with fictional sample records. Open ${i.label} → ${a.label}, select a record to edit it, or use New to add your own.`:``,o&&a?`What else would you like your app to do?`:``].filter(Boolean).join(` `)}var el={name:10,synonym:6,keyword:4},tl=1.5,nl=new Set([`a`,`an`,`and`,`the`,`of`,`for`,`to`,`in`,`on`,`or`,`general`,`simple`]),rl=[`car`,`vehicle`,`metal`,`steel`,`gates`,`studio`,`classes`,`members`,`shop`,`order`,`item`,`material`,`customer`,`sales`,`stock`,`schedule`,`terms`];function il(e){return e.length<=3?e:e.endsWith(`ies`)?`${e.slice(0,-3)}y`:e.endsWith(`sses`)?e.slice(0,-2):/(us|ss|is)$/.test(e)?e:e.endsWith(`s`)?e.slice(0,-1):e}function al(e){return e.normalize(`NFD`).replace(/\p{M}/gu,``).toLowerCase().replace(/['’]s\b/g,``).replace(/['’]/g,``).replace(/[^a-z0-9]+/g,` `).trim().split(` `).filter(Boolean).map(il).join(` `)}var ol=new Set(rl.map(al)),sl={"commerce.customers":[`customer`,`client`,`contacts`,`patrons`],"commerce.purchases":[`purchase`,`buy supplies`,`reorder`,`order from suppliers`],"commerce.sales":[`sell`,`sale`,`sales order`,`point of sale`],"commerce.vendors":[`vendor`,`supplier`,`who we buy from`],"inventory.stock":[`inventory`,`track stock`,`stock levels`,`warehouse`,`count stock`],"products.simple":[`product`,`price list`,`menu`,`things we sell`],"products.clothing":[`clothes`,`shirts`,`fashion`,`sizes and colours`],"products.ingredients":[`ingredient`,`recipe`,`raw material`,`flour`,`components`],"commerce.estimates":[`estimate`,`quote`,`quotes for customers`,`price quote`,`bid`],"commerce.wholesale":[`wholesale`,`bulk`,`trade customers`,`resellers`],"commerce.invoicing":[`invoice`,`send invoices`,`bill customers`,`get paid`,`receipts`],"commerce.fulfillment":[`ship`,`shipping`,`courier`,`parcels`,`deliver`],"commerce.agreements":[`contract`,`agreement`,`sign contracts`],"commerce.leases":[`lease`,`rent out`,`equipment hire`],"commerce.licenses":[`licence`,`licence sales`,`software licenses`],"ledgers.bookkeeping":[`books`,`keep the books`,`bookkeeper`,`accountant`,`expenses`],"projects.tracker":[`project`,`task`,`to do list`,`bug`,`ticket`],"events.calendar":[`appointment`,`schedule appointments`,`event`,`meeting`,`reservation`],"sales.pipeline":[`lead`,`pipeline`,`prospect`,`follow up`,`sales funnel`]};function cl(e,t){let n=al(e);if(!n)return null;let r=n.split(` `);return r.length===1&&nl.has(n)?null:{text:n,tier:t,weak:t!==`name`&&r.every(e=>ol.has(e)),words:r.length}}function ll(e,t,n){let r=cl(t,n);if(!r)return;let i=e.terms.find(e=>e.text===r.text);i?el[r.tier]>el[i.tier]&&(i.tier=r.tier,i.weak=r.weak):e.terms.push(r)}function ul(e){return al(e).split(` `).filter(e=>e&&!nl.has(e))}var dl=[`theme`,`colour`,`color`,`colour scheme`,`dark mode`,`light mode`,`brand`,`branding`,`style`,`warmer`,`cooler`,`font`];function fl(e,t=[],n={}){let r=[];for(let t of e){let e={kind:`recipe`,id:t.id,terms:[],exact:al(t.label)};ll(e,t.label,`name`),ll(e,(t.id.split(`.`).pop()??``).replace(/[-_]/g,` `),`name`);for(let n of ul(t.label))ll(e,n,`synonym`);for(let n of t.synonyms)ll(e,n,`synonym`);for(let n of sl[t.id]??[])ll(e,n,`keyword`);r.push(e)}for(let e of t){let t={kind:`cookbook`,id:e.id,terms:[],exact:al(e.name)};ll(t,e.name,`name`),ll(t,e.id.replace(/[-_]/g,` `),`name`);for(let n of e.keywords??[])ll(t,n,`keyword`);r.push(t)}if(n.theme){let e={kind:`theme`,id:`theme`,terms:[]};for(let t of dl)ll(e,t,`keyword`);r.push(e)}return{entries:r}}function pl(e,t){let n=al(t),r=` ${n} `,i=[];for(let t of e.entries){let e=0,a=!1,o=[];for(let n of t.terms)r.includes(` ${n.text} `)&&(o.push(n.text),e+=el[n.tier]*(n.words>1?tl:1)*(n.weak?.5:1),n.weak||(a||=!0));o.length&&(t.exact&&t.exact===n&&(e+=1),i.push({kind:t.kind,id:t.id,score:e,confidence:a?`strong`:`weak`,terms:o}))}return i.sort((e,t)=>t.score-e.score||e.id.localeCompare(t.id))}var ml=5,hl=2,gl=[{says:`I run a bakery`,cookbook:`bakery`,answer:{reply:`The Bakery cookbook covers that.`,add:[],remove:[],cookbook:`bakery`}},{says:`I need to send invoices`,recipes:[`commerce.invoicing`],answer:{reply:`Added invoicing for billing customers.`,add:[`commerce.invoicing`],remove:[]}},{says:`we don't need the pipeline`,recipes:[`sales.pipeline`],answer:{reply:`Removed leads and pipeline.`,add:[],remove:[`sales.pipeline`]}},{says:`we're in Canada, 13% tax`,settings:!0,answer:{reply:`Set to Canadian dollars and 13% tax.`,add:[],remove:[],settings:{currency:`CAD`,taxRate:13}}},{says:`make it warmer`,theme:!0,answer:{reply:`Gave it a warm amber brand colour.`,add:[],remove:[],theme:{primary:`#d97706`}}},{says:`give me a summary of all sales last month`,report:`invoices`,answer:{reply:`Here is a summary of last month.`,add:[],remove:[],report:{source:`invoices`,range:`last month`}}},{says:`show me a report of sales by month`,report:`invoices`,answer:{reply:`Here are sales by month.`,add:[],remove:[],report:{source:`invoices`,bucket:`month`}}},{says:`hello`,answer:{reply:`Hi. What kind of business is it?`,add:[],remove:[]}}];function _l(e,t,n,r,i=new Set){return gl.filter(a=>(a.recipes??[]).every(t=>e.has(t))&&(!a.cookbook||t.has(a.cookbook))&&(!a.settings||n)&&(!a.theme||r)&&(!a.report||i.has(a.report))).map(e=>`"${e.says}" -> ${JSON.stringify(e.answer)}`)}var vl=`reports.runtime`;function yl(e){return`${Number((e*100).toFixed(4))}%`}function bl(e,t,n=[],r,i,a,o=[],s=[],c){let l=i!==void 0,u=(i??[]).filter(e=>e.kind===`recipe`).slice(0,ml).map(e=>e.id),d=(i??[]).filter(e=>e.kind===`cookbook`).slice(0,hl).map(e=>e.id),f=new Set([...u,...t]),p=new Set(d),m=e=>{let t=e.synonyms.length?` Also called: ${e.synonyms.join(`, `)}.`:``;return`- ${e.id}: ${e.label}. ${e.summary}${t}`},h=[`You help assemble a small business app. Reply as JSON.`,`"reply": answer what they just said in one sentence of 12 words or fewer. No greeting; never repeat a reply.`,`"add"/"remove": recipe ids, only what they ask to add or drop; else []. Dependencies are automatic.`,`Use stated needs/setup and catalog; no invented features/package tours.`];n.length&&h.push(`"cookbook": id only if their business clearly fits, else null.`),r&&h.push(`"settings": only what they state: currency (ISO), taxRate (percent), paymentTerms, pricesIncludeTax (true when their prices include tax), taxRounding (line|document); else omit, and do not mention them otherwise.`),a&&h.push(`"theme": only if they ask for a look: {"preset": material|glass|studio|smrt|happyvertical} or {"primary": "#rrggbb"}, optional "colorScheme": light|dark, "borderRadius": none|sm|md|lg|xl|full, "density": comfortable|touch, "contrast": auto|standard|more; else omit.`),o.length&&h.push(`"open": a menu section id only when they ask to see or go to one, else null.`),s.length&&h.push(`"report": only when they ask for a report, summary or totals of their records: {"source": a report source id, optional "measures": [{"fn": count|sum|avg|min|max, "field"}], "groupBy": a field (not a time word), "bucket": minute|hour|day|week|month|quarter|year for "by month"/"weekly"/"over time", "range": their period in words ("last month", "last 90 days", "Q3"), "filters": [{"field", "op": eq|ne|gt|gte|lt|lte|contains, "value"}]}; a summary needs only source and range; money values are in currency units (500 for $500). Else omit.`),h.push(`"reply" never claims anything beyond add, remove, cookbook, settings, theme, open${s.length?` and report`:``}: the app reports what changed.`),s.length?h.push(`A report or summary of their data is "report", never a recipe to add or a section to open: the app turns on ${vl} (Reports), builds the report, shows a preview and saves it only when they approve.`):e.some(e=>e.id===`reports.runtime`)&&h.push(`A report or summary of their data needs ${vl} (Reports): add it, and open only its section, never another. You cannot build the report itself here.`);let g=_l(new Set(e.map(e=>e.id)),new Set(n.map(e=>e.id)),!!r,!!a,new Set(s.map(e=>e.id)));g.length&&h.push(``,`Examples:`,...g);let _=!!a&&(i??[]).some(e=>e.kind===`theme`);if(u.length||d.length||_){let e=[];_&&e.push(`theming (use "theme")`),d.length&&e.push(`cookbook ${d.join(`, `)}`),u.length&&e.push(`recipes ${u.join(`, `)}`),h.push(``,`Looks relevant: ${e.join(`; `)}.`)}let v=e=>`- ${e.id}: ${e.name}. ${e.summary}`,y=e=>e.join(`, `),b=e.filter(e=>!l||f.has(e.id)),x=l?e.filter(e=>!f.has(e.id)):[];if(h.push(``),b.length&&h.push(`Recipes:`,...b.map(m)),x.length&&h.push(`Other recipes: ${y(x.map(e=>`${e.id} (${e.label})`))}.`),n.length){let e=n.filter(e=>!l||p.has(e.id)),t=l?n.filter(e=>!p.has(e.id)):[];h.push(``),e.length&&h.push(`Cookbooks:`,...e.map(v)),t.length&&h.push(`Other cookbooks: ${y(t.map(e=>`${e.id} (${e.name})`))}.`)}if(h.push(``,`Currently on: ${t.length?t.join(`, `):`none`}.`),r){let e=r.paymentTerms?`, terms ${r.paymentTerms}`:``,t=r.pricesIncludeTax?`, prices include tax`:`, prices exclude tax`,n=r.taxRounding===`document`?`, tax rounded per document`:``;h.push(`Settings: currency ${r.currency}, tax ${yl(r.taxRate)}${e}${t}${n}.`)}return a&&h.push(`Theme: ${Re(a.current)}.`),o.length&&h.push(`Menu: ${o.map(e=>`${e.id} (${e.label})`).join(`, `)}.`),s.length&&h.push(`Report sources: ${s.map(e=>`${e.id} (${e.label})`).join(`, `)}.`),c&&h.push(``,`Pending report question: "${c.prompt}" Options: ${c.options.join(`, `)}. If they answer it, set "report" with source "${c.source}" and what they chose (a grouping as "groupBy", a time grouping as "bucket").`),h.join(`
29
+ `)}var xl=`Plan your app`,Sl=`What would you like to build?`,Cl=400,wl=e=>Object.keys(e).length>0;function Tl(e,t,n){let r=e.run({name:t,input:n});return r.ok?{summary:r.receipt.summary,undoId:r.receipt.undoId}:{summary:``}}var El=(e,t,n)=>Tl(e,t,n).summary;function Dl(e,t){let n=[],r=[];for(let i of t){let t=e.run(i);if(r.push(t),!t.ok){n.push(`The server's ${i.name} was refused: ${t.error.message}`);break}t.receipt.summary&&n.push(t.receipt.summary)}return{summary:n.join(` `),results:r}}var Ol=`Nothing in the app changed.`,kl=`Building a report needs the planner app and its sample records; it will live under Reports.`,Al=`reports.runtime.define`;function jl(e,t){return{kind:$o,id:t,prompt:e.prompt,fields:[{name:e.field,label:e.label,type:`choice`,options:e.options.map(({value:e,label:t,keywords:n})=>({value:e,label:t,...n?{keywords:n}:{}})),default:e.default,required:!0}]}}function Ml(e,t){let n={...e};for(let[e,r]of Object.entries(t))r===void 0?delete n[e]:n[e]=r;return n}var Nl=new Set(`a.an.and.the.by.per.of.in.on.for.to.with.please.use.i.want.it.its.group.grouped.show.me.just.ok.okay.yes.that.one.option.last.this.past.previous.current.day.week.month.quarter.year.today.yesterday.ytd.date.time`.split(`.`)),Pl=e=>e.toLowerCase().replace(/([a-z])([A-Z])/g,`$1 $2`).split(/[^a-z0-9]+/).filter(Boolean).map(e=>e.length>3&&e.endsWith(`s`)?e.slice(0,-1):e);function Fl(e,t,n){let r=ms(t,n);if(!r)return;let i=new Set(e.options.flatMap(e=>Pl([e.label,e.value,...e.keywords??[]].join(` `)))),a=et(n,new Date)!==null;if(Pl(n).filter(e=>!i.has(e)&&!Nl.has(e)&&!(a&&(/^\d+$/.test(e)||/^q[1-4]$/.test(e)))).length)return;let o=r[e.field],s=Array.isArray(o)?o[0]:o;return e.options.find(e=>e.value===s)}var Il=(e,t)=>e.field===t.field&&e.prompt===t.prompt&&e.options.map(e=>e.value).join(`|`)===t.options.map(e=>e.value).join(`|`);function Ll(e,t){return`Here is a preview of ${e} (${t} ${t===1?`row`:`rows`}). Approve it to save it under Saved reports.`}var Rl=`item:reports:RuntimeReport`;function zl(e,t,n){return t||(n||e.trim().endsWith(`?`)?e:[e,Ol].filter(Boolean).join(` `))}function Bl(e,t,n){let r=n.find(e=>e.id===t)?.label??t,i=e.run({name:`focus`,input:{section:t}});return i.ok?`Opened ${r}.`:`Could not open ${r}: ${i.error.message}`}function Vl(e,t){let n=t.add.length?e.run({name:`add_recipes`,input:{ids:t.add}}):null,r=t.remove.length?e.run({name:`remove_recipes`,input:{ids:t.remove}}):null,i=n?.ok?n.receipt.changes?.added??[]:[],a=r?.ok?r.receipt.changes?.removed??[]:[];return{added:i.filter(e=>!a.includes(e)),removed:a.filter(e=>!i.includes(e)),kept:r?.ok?r.receipt.changes?.kept??[]:[]}}function Hl(e){let t=e.now??(()=>Date.now()),n=0,r=e=>`${e}-${++n}`,i={id:`planner`,title:xl,isResolved:!1,messageCount:0,lastMessageAt:null},a=[],o=new Map,s=new Set,c=new Set,l=!1,u=!1,d=0,f=()=>structuredClone(a),p=()=>{try{e.conversationStorage?.setItem(`smrt-planner:conversation:v1`,JSON.stringify({version:1,messages:a,sent:u,counter:n})),e.conversationStorage?.setItem(`smrt-planner:conversation-seed:v1`,JSON.stringify([...s]))}catch{}},m=()=>{p();for(let e of c)e(f())},h=()=>typeof e.cookbooks==`function`?e.cookbooks():e.cookbooks??[],g=null,_=e=>e.epoch===d&&g===e.controller,v=e=>_(e)&&!e.controller.signal.aborted,y=null,b=0;async function x(t,n,r,i,a){let o=await t.define(n,r);if(!a())return{added:[],text:`Stopped.`};if(o.ok)return y=null,{added:e.store.ids.includes(`reports.runtime`)?[]:Vl(E,{add:[vl],remove:[]}).added,ref:{name:Al,phase:`preview`,result:o.proposal},text:Ll(o.proposal.spec.title,o.proposal.preview.rowCount)};let s=o.followUp;if(!s)return y=null,{added:[],text:o.question};if(i&&Il(i,s)){let e=s.options.find(e=>e.value===s.default);if(e){let i=await x(t,Ml(n,e.apply),r,s,a);return a()?{...i,text:`I went with ${e.label}. ${i.text}`}:{added:[],text:`Stopped.`}}}let c=jl(s,`report-${++b}`);return y={intent:n,followUp:s,question:c,text:r},{added:[],ref:c,text:s.prompt}}function S(e,t){let n=t[e.field],r=Array.isArray(n)?n[0]:n;return e.options.find(e=>e.value===r)}async function C(t,n,r,i){let a=y;if(!a)return{content:``};let o=await x(t,Ml(a.intent,n.apply),`${a.text} ${r}`.trim(),a.followUp,i);if(!i())return{content:`Stopped.`};let s=[Qc({added:o.added,removed:[],kept:[]},e.recipes),o.text].filter(Boolean).join(` `);return s&&e.onReply?.(s),{content:s,refs:o.ref}}let w=()=>e.recipes.some(e=>e.id===`reports.runtime`)?e.reports?.()??null:null,T=(e,n,o,s,c=!0)=>{let l={id:r(`m`),threadId:i.id,content:n,role:e,createdAt:new Date(t()),...o?{clientRequestId:o}:{}};return s&&(l.toolCallData=s),a.push(l),i.messageCount=a.length,i.lastMessageAt=l.createdAt,c&&m(),l},E=e.controller??qe({store:e.store,settings:e.settings,theme:e.theme}),D=T(`assistant`,Sl,void 0,void 0,!1);try{let t=e.conversationStorage?.getItem(`smrt-planner:conversation:v1`),r=t&&t.length<=2e6?JSON.parse(t):null;if(r?.version===1&&Array.isArray(r.messages)&&r.messages.length<=2e3&&r.messages.every(e=>e&&typeof e.id==`string`&&[`user`,`assistant`].includes(e.role)&&typeof e.content==`string`&&e.content.length<=1e5)&&Number.isSafeInteger(r.counter)&&r.counter>=r.messages.length&&typeof r.sent==`boolean`){a.splice(0,a.length,...structuredClone(r.messages)),n=r.counter,u=r.sent,D=a[0]??T(`assistant`,`What would you like to build?`);let t=JSON.parse(e.conversationStorage?.getItem(`smrt-planner:conversation-seed:v1`)??`[]`);if(Array.isArray(t)&&t.length<=2e3&&t.every(e=>typeof e==`string`&&e.length<=200))for(let e of t)s.add(e)}}catch{}async function O(t,n){let r=o.get(t.clientRequestId);if(r)return r;if(l)throw Error(`The assistant is still answering.`);u=!0,l=!0;let i={epoch:d,controller:new AbortController};g=i.controller;try{let r=T(`user`,t.content,t.clientRequestId),a=null;if(!n&&e.hostTurn){try{a=await e.hostTurn({userMessage:structuredClone(r),conversation:f(),signal:i.controller.signal})}catch{a={content:`Your request could not be confirmed. Please retry the same request.`}}if(!_(i))return{inProgress:!1};i.controller.signal.aborted&&(a={content:`Stopped.`})}if(a??=await k(t.content,i),!_(i))return{inProgress:!1};let s={inProgress:!1,userMessage:r,assistantMessage:T(`assistant`,a.content,void 0,a.refs)};return o.set(t.clientRequestId,s),s}finally{_(i)&&(g=null,l=!1,m())}}async function k(t,n){let r=y?w():null;if(y&&r){let e=Fl(y.followUp,y.question,t);if(e)return C(r,e,t,()=>v(n))}let i=e.model();if(!i)return{content:(typeof e.unavailable==`function`?e.unavailable():e.unavailable)??`Download a model first, then I can help. The cards on the Planner page work without one.`};try{let r=h(),o=fl(e.recipes,r,{theme:!!e.theme}),s=a.filter(e=>e!==D).slice(0,-1).slice(-6).map(e=>({role:e.role,content:e.content})),c=pl(o,t),l=e.menu?.()??[],u=w(),d=u?.sources()??[],f=y,p=(typeof e.acceptCommands==`function`?e.acceptCommands():e.acceptCommands)?E.snapshot().revision:void 0,m=await i.message(t,{history:[{role:`system`,content:bl(e.recipes,e.store.ids,r,e.settings?.read(),c,e.theme?{current:e.theme.read()}:void 0,l,d.map(({id:e,label:t})=>({id:e,label:t})),f?{source:f.intent.source,prompt:f.followUp.prompt,options:f.followUp.options.map(e=>e.label)}:void 0)},...s],responseSchema:Gc(e.recipes,r,!!e.settings,!!e.theme,l.map(e=>e.id),d.map(e=>e.id)),temperature:0,maxTokens:Cl,signal:n.controller.signal});if(!v(n))return{content:`Stopped.`};if(p!==void 0&&E.snapshot().revision!==p)return{content:`The app changed while I was preparing that reply. I have kept your newer changes and applied nothing from this reply. Please try again.`};let g=Xc(m,e.recipes,r,{commands:typeof e.acceptCommands==`function`?e.acceptCommands():e.acceptCommands,sections:l.map(e=>e.id),reports:d.length>0});g.report&&(g.add=[],g.remove=[],delete g.open);let _=E.snapshot(),S=Vl(E,g),C=e.settings&&wl(g.settings)?El(E,`set_settings`,g.settings):``,T=e.theme?.read(),O=e.theme&&wl(g.theme)?Tl(E,`set_theme`,g.theme):null,k=O?.undoId&&e.themeUndos?e.themeUndos.record(T,O.undoId):void 0,A=(g.commands??[]).length?Dl(E,g.commands??[]):{summary:``,results:[]};g.sampleContext&&A.results.length===g.commands?.length&&A.results.every(e=>e.ok)&&A.results.some(e=>e.ok&&e.receipt.changed)&&J(g.sampleContext);let j=A.summary,M=$c(_,E.snapshot(),A.results,e.recipes),N=c.some(e=>e.kind===`recipe`&&e.id===`reports.runtime`),P=E.snapshot().sections.find(e=>e.items.some(e=>e.id===Rl))?.id,F=g.open&&(!N||g.open===P)?g.open:void 0,I=F?Bl(E,F,l):``,L=``,ee,R=null,te=t;f&&g.report?(R=Ml(f.intent,g.report),te=`${f.text} ${t}`):g.report&&(R=g.report);let z=S.added.length>0||S.removed.length>0||!!C||!!O?.summary||!!j||!!I||!!g.cookbook;if(u&&R){let e=await x(u,R,te,f?.followUp??null,()=>v(n));if(!v(n))return{content:`Stopped.`};S.added.push(...e.added),L=e.text,ee=e.ref}else if(u&&f&&!z){let e=f.followUp.options.find(e=>e.value===f.followUp.default);if(e){let t=await x(u,Ml(f.intent,e.apply),f.text,f.followUp,()=>v(n));if(!v(n))return{content:`Stopped.`};S.added.push(...t.added),L=`I went with ${e.label}. ${t.text}`,ee=t.ref}}else f&&(y=null);let ne=[Qc(S,e.recipes),C,O?.summary??``,j,I].filter(Boolean).join(` `);if((N||S.added.includes(`reports.runtime`))&&!g.report&&!f&&!I&&!S.removed.length){let e=u?Ye(d):null;if(e){let n=jl(e,`report-${++b}`);y={intent:{source:``},followUp:e,question:n,text:t},L=e.prompt,ee=n}else L=u?Ze(d):kl}let re=[ne,L].filter(Boolean).join(` `),B=c.find(e=>e.kind===`cookbook`&&e.confidence===`strong`)?.id,V=g.cookbook??(B&&e.offers?.engaged?.()===!1?B:null),ie=V?e.offers?.offer(V)??void 0:void 0,ae=ie?r.find(e=>e.id===V):void 0,H=[zl(g.reply||(ae?`Set up ${ae.name}?`:``),re,!!ie),M].filter(Boolean).join(` `);H&&e.onReply?.(H);let oe=[ie,k,ee].filter(Boolean);return{content:H,refs:oe.length>1?oe:oe[0]}}catch(e){return v(n)?{content:`Sorry, the model could not answer: ${e instanceof Error?e.message:String(e)}`}:{content:`Stopped.`}}}return{conversation:f,get resetRevision(){return d},get busy(){return l},subscribeConversation(e){return c.add(e),e(f()),()=>c.delete(e)},seed(e){if(!e||typeof e.id!=`string`||!e.id.trim()||!Array.isArray(e.messages)||e.messages.some(e=>!e||![`user`,`assistant`].includes(e.role)||typeof e.content!=`string`)||s.has(e.id)||l||u)return!1;s.add(e.id);for(let t of e.messages)T(t.role,t.content,void 0,void 0,!1);return m(),!0},async listThreads(){return[i]},async createThread(){return i},async loadMessages(){return[...a]},sendMessage(e){return O(e,!1)},sendHostMessage(e){return O(e,!0)},reset(){d+=1,g?.abort(),g=null,y=null,a.splice(0),o.clear(),s.clear(),u=!1,l=!1,n=0,D=T(`assistant`,Sl),m()},async answerQuestion(e){let t=o.get(e.clientRequestId);if(t)return t;if(l)throw Error(`The assistant is still answering.`);let n=w();if(!y||!n||y.question.id!==e.questionId)throw Error(`That question is no longer open. Ask again?`);let r=us(y.question,e.values),i=r?S(y.followUp,r):void 0;if(!r||!i)throw Error(`Choose one of the options.`);u=!0,l=!0;let s={epoch:d,controller:new AbortController};g=s.controller;try{let t=a.find(t=>t.id===e.messageId);if(t){let n=t=>{let n=t;return n?.kind===`assistant-question`&&n.id===e.questionId?{...n,answer:r}:t};t.toolCallData=Array.isArray(t.toolCallData)?t.toolCallData.map(n):n(t.toolCallData)}let c=await C(n,i,``,()=>v(s));if(!_(s))return{inProgress:!1};let l={inProgress:!1,...t?{messages:[t]}:{},assistantMessage:T(`assistant`,c.content,void 0,c.refs)};return o.set(e.clientRequestId,l),l}finally{_(s)&&(g=null,l=!1,m())}},recordReportOutcome(e,t){for(let n of a){let r=Array.isArray(n.toolCallData)?n.toolCallData:[n.toolCallData];for(let n of r){let r=n;r?.name===`reports.runtime.define`&&r.result?.specHash===e&&(r.outcome=t)}}m()},async uploadAttachment(e){throw Error(`The assistant cannot take attachments (${e.name}).`)},abort(){g?.abort()}}}function Ul(e,t){return/^qwen3/i.test(t)?{message:(t,n)=>e.message(`${t} /no_think`,n)}:e}var Wl=class{#e=A(`idle`);get status(){return e(this.#e)}set status(e){W(this.#e,e,!0)}#t=A(I({modelId:``,consented:[]}));get prefs(){return e(this.#t)}set prefs(e){W(this.#t,e,!0)}#n=A(I({progress:0,text:``}));get progress(){return e(this.#n)}set progress(e){W(this.#n,e,!0)}#r=A(``);get error(){return e(this.#r)}set error(e){W(this.#r,e,!0)}#i=A(`browser`);get mode(){return e(this.#i)}set mode(e){W(this.#i,e,!0)}#a=A(``);get remoteLabel(){return e(this.#a)}set remoteLabel(e){W(this.#a,e,!0)}transport;hostTurn;cookbookOffers=!0;offers=new In(nt);themeUndos;reports=null;loaded=null;chat=null;abort=null;loadGeneration=0;options;constructor(e){this.options=e,this.prefs=zn(e.storage),this.status=(e.webgpu??Tn)()?`idle`:`unsupported`,this.themeUndos=e.theme?new Hn(e.theme,e.controller):null,this.transport=Hl({model:()=>this.chat,conversationStorage:e.conversationStorage,hostTurn:async e=>this.hostTurn?.(e)??null,store:e.store,recipes:e.recipes,cookbooks:()=>this.cookbookOffers?tt:[],offers:this.offers,settings:e.settings,theme:e.theme,controller:e.controller,themeUndos:this.themeUndos??void 0,acceptCommands:()=>this.mode===`host`,unavailable:()=>this.mode===`byo`?`Connect your model on the AI page first, then I can help. The cards on the Planner page work without one.`:this.mode===`host`?`The assistant is not available right now. The cards on the Planner page work without it.`:this.mode===`manual`?`Inference is off. The cards on the Planner page work without it.`:`Download a model first, then I can help. The cards on the Planner page work without one.`,onReply:t=>e.onReply?.(t),menu:e.menu,reports:()=>this.reports})}setMode(e){e!==this.mode&&this.unload(),this.mode=e,this.status=e===`browser`?(this.options.webgpu??Tn)()?`idle`:`unsupported`:`idle`}useRemote(e,t){this.mode!==`browser`&&(this.chat=e,this.remoteLabel=e?t:``,this.status=e?`ready`:`idle`)}get consented(){return this.prefs.consented.includes(this.prefs.modelId)}select(e){qt(e)&&this.status!==`loading`&&(this.prefs={...this.prefs,modelId:e},Bn(this.options.storage,this.prefs))}async start(){if(this.status===`loading`||this.status===`unsupported`)return;let e=this.prefs.modelId;if(!qt(e))return;this.status=`loading`,this.error=``,this.progress={progress:0,text:`Starting`};let t=new AbortController,n=++this.loadGeneration;this.abort=t;try{let r=await Pn(e,e=>{this.progress=e},t.signal,this.options.host??Nn);if(n!==this.loadGeneration||this.mode!==`browser`){r.dispose();return}this.loaded=r,this.prefs={...this.prefs,consented:[...new Set([...this.prefs.consented,e])]},Bn(this.options.storage,this.prefs),this.chat=Ul(new On({type:`webllm`,engine:r.engine,model:e}),e),this.status=`ready`}catch(e){if(n!==this.loadGeneration)return;t.signal.aborted?this.status=`idle`:(this.error=e instanceof Error?e.message:String(e),this.status=`error`)}finally{n===this.loadGeneration&&(this.abort=null)}}cancel(){this.abort?.abort()}unload(){this.loadGeneration+=1;let e=this.abort;this.abort=null,e?.abort(),this.transport.abort(),this.loaded?.dispose(),this.loaded=null,this.chat=null,this.status!==`unsupported`&&(this.status=`idle`)}},Gl=[{id:`moonshine-base`,label:`Moonshine base`,note:`Accurate and still quick, best for talking as you go (default)`,adapter:`moonshine`,bytes:Me[`moonshine-base`]?.bytes??0},{id:`moonshine-tiny`,label:`Moonshine tiny`,note:`Fastest, less accurate`,adapter:`moonshine`,bytes:Me[`moonshine-tiny`]?.bytes??0},{id:`whisper-tiny.en`,label:`Whisper tiny`,note:`English, the original choice`,adapter:`whisper-local`,bytes:Me[`whisper-tiny.en`]?.bytes??0}],Kl=`moonshine-base`;function ql(e){return Gl.find(t=>t.id===e)??Gl[0]}var Jl=`smrt-planner:voice:v1`;function Yl(e){try{let t=e?.getItem(Jl);if(t){let e=JSON.parse(t),n=e.local===!0,r=Gl.find(t=>t.id===e.model)?.id;return{local:n,preferLocal:e.preferLocal===!0,model:r??(n?`whisper-tiny.en`:`moonshine-base`)}}}catch{}return{local:!1,preferLocal:!1,model:Kl}}function Xl(e,t){try{e?.setItem(Jl,JSON.stringify(t))}catch{}}function Zl(e){return Yl(e).local}function Ql(e,t){Xl(e,{...Yl(e),local:t})}function $l(e){return Yl(e).preferLocal}function eu(e){return Yl(e).model}function tu(e,t,n){return e===`works`?`browser`:t&&n?`enable-cached`:`offer`}var nu=class{#e=A(`checking`);get status(){return e(this.#e)}set status(e){W(this.#e,e,!0)}#t=A(!1);get cached(){return e(this.#t)}set cached(e){W(this.#t,e,!0)}#n=A(0);get progress(){return e(this.#n)}set progress(e){W(this.#n,e,!0)}#r=A(``);get error(){return e(this.#r)}set error(e){W(this.#r,e,!0)}#i=A(!1);get browserWorks(){return e(this.#i)}set browserWorks(e){W(this.#i,e,!0)}#a=A(!1);get preferLocal(){return e(this.#a)}set preferLocal(e){W(this.#a,e,!0)}#o=A(0);get size(){return e(this.#o)}set size(e){W(this.#o,e,!0)}#s=A(Kl);get model(){return e(this.#s)}set model(e){W(this.#s,e,!0)}#c=A(!1);get preparing(){return e(this.#c)}set preparing(e){W(this.#c,e,!0)}#l=A(null);get dictation(){return e(this.#l)}set dictation(e){W(this.#l,e)}handle=null;abort=null;options;generation=0;constructor(e){this.options=e}async init(){let e=++this.generation;try{await this.probeAndOffer(e)}catch(t){if(e!==this.generation)return;this.status=`error`,this.error=t instanceof Error?t.message:String(t)}}async probeAndOffer(e){let t=await(this.options.probe??ct)();if(e!==this.generation)return;this.browserWorks=t===`works`,this.preferLocal=$l(this.options.storage),this.model=eu(this.options.storage);let n=this.preferLocal&&t===`works`?`unreliable`:t;if(n===`works`){this.dictation=(this.options.browserSource??(()=>je({type:`browser-speech`})))(),this.status=`browser`;return}let r=this.options.createModel(this.model);this.handle?.dispose(),this.handle=r,this.size=r.estimateSize();let i=await r.isCached().catch(()=>!1);e===this.generation&&(this.cached=i,tu(n,Zl(this.options.storage),this.cached)===`enable-cached`?await this.enable():this.status=`offer`)}async enable(){let e=this.handle;if(!e||this.status===`downloading`)return;let t=++this.generation;this.status=`downloading`,this.error=``,this.progress=0,this.preparing=!1;let n=new AbortController;this.abort=n;try{if(await e.load({onProgress:e=>{t===this.generation&&(this.progress=e.bytesTotal>0?e.bytesLoaded/e.bytesTotal:0,this.preparing=e.state===`extracting`)},signal:n.signal}),t!==this.generation)return;Ql(this.options.storage,!0),this.cached=!0;let r=ql(this.model);this.dictation=(this.options.localSource??((e,t)=>je({type:t.adapter,modelHandle:e})))(e,r),this.status=`ready`}catch(e){if(t!==this.generation)return;n.signal.aborted?this.status=`offer`:(this.error=e instanceof Error?e.message:String(e),this.status=`error`)}finally{t===this.generation&&(this.abort=null,this.preparing=!1)}}async setPreferLocal(e){this.browserWorks&&e!==this.preferLocal&&await this.restart({preferLocal:e})}async setModel(e){e!==this.model&&Gl.some(t=>t.id===e)&&await this.restart({model:e})}async restart(e){this.generation++,this.abort?.abort(),this.abort=null,this.preparing=!1,this.handle?.dispose(),this.handle=null,this.dictation=null,Xl(this.options.storage,{...Yl(this.options.storage),...e}),this.status=`checking`,await this.init()}cancel(){this.abort?.abort()}dismiss(){this.status=`dismissed`}dispose(){this.generation++,this.abort?.abort(),this.handle?.dispose(),this.handle=null,this.dictation=null}},ru=[`json_schema`,`json_object`,`none`],iu=12e4;function au(e){try{let t=new URL(e.trim());if(t.protocol!==`http:`&&t.protocol!==`https:`||t.username||t.password)return null;for(let e of t.searchParams.keys())if(/^(?:api[-_]?key|key|token|authorization|secret|password)$/i.test(e))return null;return`${t.origin}${t.pathname.replace(/\/+$/,``)}`}catch{return null}}function ou(e){let t=e.toLowerCase().replace(/^\[|\]$/g,``);return t===`localhost`||t.endsWith(`.localhost`)||t===`::1`||/^127(\.\d{1,3}){3}$/.test(t)}function su(e){try{let t=new URL(e.trim());return t.protocol===`https:`||t.protocol===`http:`&&ou(t.hostname)}catch{return!1}}function cu(e){try{return new URL(e.trim()).origin}catch{return null}}var lu=class extends Error{status;constructor(e,t){super(e),this.status=t,this.name=`EndpointError`}};function uu(e){return e===401||e===403?`the endpoint refused the key (${e})`:e===404?`the endpoint or model was not found (404), check the address and model name`:e===429?`the endpoint is rate limiting you (429)`:`the endpoint answered ${e}`}function du(e){let t=(e?.choices?.[0])?.message?.content;if(typeof t==`string`)return t;if(Array.isArray(t))return t.map(e=>e&&typeof e==`object`&&`text`in e?String(e.text):``).join(``);throw new lu(`the endpoint sent no reply text`)}function fu(e,t){if(e!==`none`)return e===`json_schema`&&t&&typeof t==`object`?{type:`json_schema`,json_schema:{name:`planner_turn`,strict:!1,schema:t}}:{type:`json_object`}}function pu(e){let t=au(e.baseUrl);if(!t)throw new lu(`the address is not a valid http(s) URL`);if(e.apiKey&&!su(t))throw new lu(`a key is only sent over https, or to this computer; use an https address`);let n=`${t}/chat/completions`,r=e.fetch??fetch,i=Math.max(0,ru.indexOf(e.jsonMode??`json_schema`));async function a(t,i){let a=AbortSignal.timeout(iu);try{return await r(n,{method:`POST`,headers:{"content-type":`application/json`,...e.apiKey?{authorization:`Bearer ${e.apiKey}`}:{}},body:JSON.stringify(t),credentials:`omit`,signal:i?AbortSignal.any([i,a]):a})}catch(e){throw i?.aborted?e:new lu(`could not reach the endpoint. Is it running, and does it allow this page (CORS)?`)}}async function o(t,n={}){let r=n.json!==!1;for(;;){let o=r?ru[i]??`none`:`none`,s=fu(o,n.schema),c=await a({model:e.model,messages:t,stream:!1,temperature:n.temperature??0,...n.maxTokens?{max_tokens:n.maxTokens}:{},...s?{response_format:s}:{}},n.signal);if(c.ok)return r&&e.onJsonMode?.(o),du(await c.json().catch(()=>null));if(r&&(c.status===400||c.status===422)&&i<ru.length-1)i+=1;else throw new lu(uu(c.status),c.status)}}return{complete:o,message(e,t){return o([...(t?.history??[]).map(({role:e,content:t})=>({role:e,content:t})),{role:`user`,content:e}],{maxTokens:t?.maxTokens,signal:t?.signal,temperature:t?.temperature,schema:t?.responseSchema})}}}async function mu(e){try{return{ok:!0,message:(await pu({...e,jsonMode:`none`}).complete([{role:`user`,content:`Reply with the single word OK.`}],{maxTokens:8,json:!1})).trim()?`Connected to ${e.model}.`:`Connected to ${e.model}, but it sent an empty reply.`}}catch(e){return{ok:!1,message:e instanceof lu?`Could not connect: ${e.message}.`:`Could not connect.`}}}var hu=[{id:`ollama`,label:`Ollama (on this computer)`,baseUrl:`http://localhost:11434/v1`,model:`llama3.2`,keyless:!0,cors:`Ollama only answers pages it trusts. Start it with OLLAMA_ORIGINS set to this site, for example OLLAMA_ORIGINS=https://your-site.example ollama serve (on macOS: launchctl setenv OLLAMA_ORIGINS https://your-site.example, then restart Ollama). A page served from http://localhost needs no change.`},{id:`openrouter`,label:`OpenRouter`,baseUrl:`https://openrouter.ai/api/v1`,model:`openai/gpt-4o-mini`,cors:`OpenRouter accepts calls from any web page, so no setup is needed. Use a key with a spending limit.`},{id:`openai`,label:`OpenAI`,baseUrl:`https://api.openai.com/v1`,model:`gpt-4o-mini`,cors:`OpenAI accepts calls from web pages when the request carries a key. Use a restricted key with a low spending limit: anyone with access to this browser profile can read it.`},{id:`custom`,label:`Custom OpenAI-compatible endpoint`,baseUrl:``,customUrl:!0,cors:`The server must answer the browser's CORS preflight: allow this site's origin, the "authorization" and "content-type" headers, and the POST and OPTIONS methods.`}];function gu(e){if(!e?.length)return[...hu];let t=[];for(let n of e){let e=typeof n==`string`?hu.find(e=>e.id===n):n;e&&!t.some(t=>t.id===e.id)&&t.push(e)}return t.length?t:[...hu]}var _u=`smrt-planner:inference:v1`,vu=`smrt-planner:inference-key:v1`,yu=e=>!!e&&typeof e==`object`&&!Array.isArray(e);function bu(e){let t={preset:``,active:!1,entries:{}};try{let n=e?.getItem(_u);if(!n)return t;let r=JSON.parse(n);if(!yu(r))return t;typeof r.preset==`string`&&(t.preset=r.preset),t.active=r.active===!0;let i=!1;if(yu(r.entries)){for(let[e,n]of Object.entries(r.entries))if(yu(n)&&typeof n.baseUrl==`string`&&typeof n.model==`string`){let r=au(n.baseUrl)??``;i||=r!==n.baseUrl,t.entries[e]={baseUrl:r,model:n.model}}}i&&(t.active=!1,e?.setItem(_u,JSON.stringify(t)))}catch{}return t}function xu(e){let t={};try{let n=e?.getItem(vu),r=n?JSON.parse(n):null;if(yu(r))for(let[e,n]of Object.entries(r))yu(n)&&typeof n.key==`string`&&n.key&&typeof n.origin==`string`&&n.origin&&(t[e]={origin:n.origin,key:n.key})}catch{}return t}var Su=class{presets;#e=A(``);get presetId(){return e(this.#e)}set presetId(e){W(this.#e,e,!0)}#t=A(I({}));get entries(){return e(this.#t)}set entries(e){W(this.#t,e,!0)}#n=A(I({}));get keys(){return e(this.#n)}set keys(e){W(this.#n,e,!0)}#r=A(!1);get active(){return e(this.#r)}set active(e){W(this.#r,e,!0)}#i=A(`idle`);get testStatus(){return e(this.#i)}set testStatus(e){W(this.#i,e,!0)}#a=A(``);get testMessage(){return e(this.#a)}set testMessage(e){W(this.#a,e,!0)}options;credentialStorage;constructor(e){if(this.options=e,this.credentialStorage=e.credentialPersistence===`memory`?null:e.storage,e.credentialPersistence===`memory`)try{e.storage?.removeItem(vu)}catch{}this.presets=gu(e.presets);let t=bu(e.storage);this.keys=xu(this.credentialStorage),this.entries=t.entries,this.presetId=this.presets.some(e=>e.id===t.preset)?t.preset:this.presets[0]?.id??``,this.active=t.active&&this.complete}get preset(){return this.presets.find(e=>e.id===this.presetId)}get baseUrl(){return this.entries[this.presetId]?.baseUrl??this.preset?.baseUrl??``}get model(){return this.entries[this.presetId]?.model??this.preset?.model??``}get key(){let e=this.keys[this.presetId];return e&&e.origin===cu(this.baseUrl)?e.key:``}get keyForOtherAddress(){let e=this.keys[this.presetId];return!!e&&e.origin!==cu(this.baseUrl)}get complete(){let e=au(this.baseUrl);return!!e&&!!this.model.trim()&&(!!this.preset?.keyless||!!this.key.trim()&&su(e))}select(e){this.presets.some(t=>t.id===e)&&(this.presetId=e,this.resetTest(),this.save())}setBaseUrl(e){this.entries={...this.entries,[this.presetId]:{baseUrl:e,model:this.model}},this.edited()}setModel(e){this.entries={...this.entries,[this.presetId]:{baseUrl:this.baseUrl,model:e}},this.edited()}setKey(e){let t=cu(this.baseUrl),n=e.trim();!n||!t?this.forgetKey():(this.keys={...this.keys,[this.presetId]:{origin:t,key:n}},this.edited())}forgetKey(){let{[this.presetId]:e,...t}=this.keys;this.keys=t,this.edited()}chat(){if(!this.complete)return null;let e=au(this.baseUrl);return e?pu({baseUrl:e,model:this.model.trim(),apiKey:this.preset?.keyless?void 0:this.key,fetch:this.options.fetch}):null}async test(){let e=au(this.baseUrl);if(!e||!this.model.trim())return this.testStatus=`failed`,this.testMessage=`Enter an http(s) address and a model first.`,{ok:!1,message:this.testMessage};if(!this.preset?.keyless&&!this.key.trim())return this.testStatus=`failed`,this.testMessage=this.keyForOtherAddress?`The saved key was entered for another address. Enter it again for this one.`:`Enter a key first.`,{ok:!1,message:this.testMessage};if(!this.preset?.keyless&&!su(e))return this.testStatus=`failed`,this.testMessage=`A key is only sent over https, or to this computer. Use an https address.`,{ok:!1,message:this.testMessage};this.testStatus=`testing`,this.testMessage=``;let t=await mu({baseUrl:e,model:this.model.trim(),apiKey:this.preset?.keyless?void 0:this.key,fetch:this.options.fetch});return this.testStatus=t.ok?`ok`:`failed`,this.testMessage=t.message,t}use(){return this.complete?(this.active=!0,this.save(),this.options.onChange?.(),!0):!1}stop(){this.active=!1,this.save(),this.options.onChange?.()}resetTest(){this.testStatus=`idle`,this.testMessage=``}edited(){this.resetTest();let e=this.active;e&&!this.complete&&(this.active=!1),this.save(),e&&this.options.onChange?.()}save(){try{let e=Object.fromEntries(Object.entries(this.entries).map(([e,t])=>[e,{baseUrl:au(t.baseUrl)??``,model:t.model}])),t={preset:this.presetId,active:this.active,entries:e};this.options.storage?.setItem(_u,JSON.stringify(t)),this.credentialStorage?.setItem(vu,JSON.stringify(this.keys))}catch{}}};function Cu(e,t,n,r=`local`){let i=bu(e);if(!i.active)return null;let a=gu(t).find(e=>e.id===i.preset),o=i.entries[i.preset],s=au(o?.baseUrl??a?.baseUrl??``),c=(o?.model??a?.model??``).trim(),l=xu(r===`memory`?null:e)[i.preset],u=l&&l.origin===cu(s??``)?l.key:``;return!a||!s||!c||!a.keyless&&(!u||!su(s))?null:pu({baseUrl:s,model:c,apiKey:a.keyless?void 0:u,fetch:n})}var wu=`my-app`;function Tu(e){return(e??``).normalize(`NFD`).replace(/\p{M}/gu,``).toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``)}function Eu(e){return`${Tu(e)||`my-app`}.cookbook.json`}function Du(e){return new TextEncoder().encode(ku(e)).length}function Ou(e){if(e<1e3)return`${e} bytes`;let t=e/1024;return`${t<10?t.toFixed(1):Math.round(t)} KB`}function ku(e){return`${JSON.stringify(e,null,2)}\n`}function Au(e){let t=URL.createObjectURL(new Blob([e.text],{type:`application/json`})),n=document.createElement(`a`);n.href=t,n.download=e.fileName,document.body.append(n),n.click(),n.remove(),URL.revokeObjectURL(t)}var ju=`x-kitchen-token`,Mu=e=>!!e&&typeof e==`object`&&!Array.isArray(e);function Nu(e){if(typeof e!=`string`)return!1;let t=e.trim();try{let e=t.startsWith(`/`)&&!t.startsWith(`//`),n=new URL(t,e?`https://planner.invalid`:void 0);return!e&&n.protocol!==`http:`&&n.protocol!==`https:`||n.username||n.password||n.hash?!1:![...n.searchParams.keys()].some(e=>/^(?:api[-_]?key|key|token|authorization|secret|password)$/i.test(e))}catch{return!1}}function Pu(e){if(!Mu(e))return;let{endpoint:t}=e;if(Nu(t))return{endpoint:t.trim(),...Object.hasOwn(e,`token`)?{tokenInConfig:!0}:{}}}var Fu=e=>Array.isArray(e)?e.filter(e=>typeof e==`string`):[];async function Iu(e,t,n=fetch){let r;try{r=await n(e.endpoint,{method:`POST`,headers:{"content-type":`application/json`,accept:`application/json`,[ju]:e.token},body:ku(t)})}catch{return{ok:!1,errors:["The kitchen could not be reached. Is `smrt kitchen` still running?"]}}let i;try{i=await r.json()}catch{i=void 0}if(r.ok&&Mu(i)&&i.ok===!0)return{ok:!0,result:{dir:typeof i.dir==`string`?i.dir:``,mode:i.mode===`update`?`update`:`new`,installed:i.installed===!0,added:Fu(i.added),nextSteps:Fu(i.nextSteps)}};let a=Mu(i)?Fu(i.errors):[];return Mu(i)&&typeof i.error==`string`&&a.push(i.error),{ok:!1,errors:a.length?a:[`The kitchen answered ${r.status}.`]}}var Lu=[`manual`,`browser`,`host`,`byo`],Ru={mode:`browser`},zu={mode:`manual`},Bu=`planner.config.json`,Vu=e=>!!e&&typeof e==`object`&&!Array.isArray(e);function Hu(e){if(typeof e!=`string`)return!1;let t=e.trim();if(!t)return!1;try{let e=t.startsWith(`/`)&&!t.startsWith(`//`),n=new URL(t,e?`https://planner.invalid`:void 0);if(!e&&n.protocol!==`http:`&&n.protocol!==`https:`||n.username||n.password||n.hash)return!1;for(let e of n.searchParams.keys())if(/^(?:api[-_]?key|key|token|authorization|secret|password)$/i.test(e))return!1;return!0}catch{return!1}}function Uu(e){if(!Vu(e))return null;let{id:t,label:n,baseUrl:r,model:i,keyless:a,cors:o}=e;return typeof t!=`string`||!/^[a-z0-9][a-z0-9-]{0,31}$/.test(t)||typeof n!=`string`||!n.trim()||!Hu(r)||r.startsWith(`/`)?null:{id:t,label:n.trim(),baseUrl:r.trim(),...typeof i==`string`&&i.trim()?{model:i.trim()}:{},...a===!0?{keyless:!0}:{},...typeof o==`string`&&o.trim()?{cors:o.trim()}:{}}}var Wu=e=>({config:zu,notice:`The assistant settings could not be used (${e}), so inference is off. The planner still works manually.`});function Gu(e,t){if(e===void 0)return[];if(!Array.isArray(e)||e.length===0)return null;let n=[];for(let r of e){if(typeof r!=`string`||!Lu.includes(r)||r===t||n.includes(r))return null;n.push(r)}return n}function Ku(e){if(e===void 0)return{};if(!Vu(e))return null;if(e.presets===void 0)return{};if(!Array.isArray(e.presets)||e.presets.length===0)return null;let t=[];for(let n of e.presets){if(typeof n==`string`&&n.trim()){t.push(n.trim());continue}let e=Uu(n);if(!e)return null;t.push(e)}return{presets:t}}function qu(e){if(!Vu(e))return Wu(`not an object`);let t=e.inference;if(t===void 0)return{config:Ru};if(!Vu(t))return Wu(`"inference" is not an object`);let n=t.mode;if(n===void 0)return{config:Ru};if(!Lu.includes(n))return Wu(`unknown mode "${String(n)}"`);let r=n,i=Gu(t.alternatives,r);if(!i)return Wu(`alternatives must be unique supported modes other than mode`);let a=t.credentialPersistence;if(a!==void 0&&a!==`local`&&a!==`memory`)return Wu(`credentialPersistence must be "local" or "memory"`);let o=[r,...i],s;if(o.includes(`host`)){let e=t.host;if(!Vu(e)||!Hu(e.endpoint))return Wu(`host mode needs host.endpoint, an http(s) URL or path`);s={endpoint:e.endpoint.trim()}}let c;return o.includes(`byo`)&&(c=Ku(t.byo)??void 0,!c)?Wu(`byo.presets must be a non-empty valid list`):{config:{mode:r,...i.length?{alternatives:i}:{},...a?{credentialPersistence:a}:{},...s?{host:s}:{},...c?{byo:c}:{}}}}function Ju(e){try{let t=JSON.parse(e),n=qu(t),r=Vu(t)?Pu(t.kitchen):void 0;return r?{...n,kitchen:r}:n}catch{return Wu(`it is not valid JSON`)}}function Yu(e){return qu({inference:e})}async function Xu(e=``,t=fetch){let n;try{n=await t(`${e.replace(/\/$/,``)}/${Bu}`,{headers:{accept:`application/json`},cache:`no-cache`})}catch{return{config:Ru}}if(n.status===404)return{config:Ru};if(!n.ok)return Wu(`the file answered ${n.status}`);let r=await n.text();return/^\s*</.test(r)?{config:Ru}:Ju(r)}var Zu=1e3,Qu=2e3,$u=6e4,ed=(e,t)=>e.length>t?e.slice(0,t):e;function td(e){let t=e.fetch??fetch;return{async message(n,r){let i=(r?.history??[]).filter(e=>e.role===`user`||e.role===`assistant`).slice(-6).map(e=>({role:e.role,content:ed(e.content,Zu)})),a={version:1,message:ed(n,Qu),snapshot:e.snapshot(),...i.length?{history:i}:{}},o=AbortSignal.timeout($u),s=r?.signal?AbortSignal.any([r.signal,o]):o,c=await t(e.endpoint,{method:`POST`,headers:{"content-type":`application/json`,accept:`application/json`,...e.headers?.()},body:JSON.stringify(a),signal:s});if(!c.ok)throw Error(`the server answered ${c.status}`);return await c.text()}}}function nd(e){return[rd(e.think),ad(e.hear),od(e.speak)]}function rd(e){let t={id:`think`,name:`Think`};if(e.mode===`manual`)return{...t,state:`off`,label:`Think: inference off`,where:`Off`};if(e.mode===`host`)return{...t,state:e.status===`ready`?`ready`:`available`,label:`Think: Server`,where:`Server`};if(e.mode===`byo`){let n=e.remote?`Your model: ${e.remote}`:``;return e.status===`ready`&&e.remote?{...t,state:`ready`,label:`Think: ${n}`,where:n}:{...t,state:`available`,label:`Think: your own model not connected`,where:`Your model`}}return{...id(e),where:`In browser`}}function id(e){let t={id:`think`,name:`Think`};return e.status===`unsupported`?{...t,state:`off`,label:`Think: unavailable, this browser has no WebGPU`}:e.status===`ready`?{...t,state:`ready`,label:`Think: ${e.model} ready`}:e.status===`loading`?{...t,state:`available`,label:`Think: ${e.model} loading, ${Math.round(e.progress*100)}%`}:{...t,state:`available`,label:e.downloaded?`Think: ${e.model} downloaded, not loaded`:`Think: not set up`}}function ad(e){let t={id:`hear`,name:`Hear`};return e.mic?e.status===`browser`?{...t,state:`ready`,label:`Hear: voice typing ready, using your browser`}:e.status===`ready`?{...t,state:`ready`,label:`Hear: voice typing ready, using the downloaded model`}:e.status===`downloading`?{...t,state:`available`,label:`Hear: downloading the speech model`}:{...t,state:`available`,label:`Hear: not set up`}:{...t,state:`off`,label:`Hear: unavailable, this browser has no microphone access`}}function od(e){let t={id:`speak`,name:`Speak`};return e.supported?e.readAloud?{...t,state:`ready`,label:`Speak: reading replies aloud with browser voices`}:{...t,state:`available`,label:`Speak: not switched on`}:{...t,state:`off`,label:`Speak: unavailable, this browser has no speech synthesis`}}function sd(e){return e.dismissed||e.built?!1:!(e.thinkDownloaded||e.hearDownloaded||e.readAloud)}var cd=`smrt-planner:ai:v1`;function ld(e){let t={dismissed:!1,readAloud:!1,handsFree:!1,sendOnPause:!1};try{let n=e?.getItem(cd);if(!n)return t;let r=JSON.parse(n);t.dismissed=r.dismissed===!0,t.readAloud=r.readAloud===!0,t.handsFree=r.handsFree===!0,t.sendOnPause=r.sendOnPause===!0}catch{}return t}function ud(e,t){try{e?.setItem(cd,JSON.stringify(t))}catch{}}var dd=new class{session;voice;#e=A(I({dismissed:!1,readAloud:!1,handsFree:!1,sendOnPause:!1}));get prefs(){return e(this.#e)}set prefs(e){W(this.#e,e,!0)}#t=A(!1);get hydrated(){return e(this.#t)}set hydrated(e){W(this.#t,e,!0)}#n=A(!1);get firstRun(){return e(this.#n)}set firstRun(e){W(this.#n,e,!0)}#r=A(!1);get speaking(){return e(this.#r)}set speaking(e){W(this.#r,e,!0)}#i=A(I(Ru));get inference(){return e(this.#i)}set inference(e){W(this.#i,e,!0)}#a=A(I([`browser`]));get availableModes(){return e(this.#a)}set availableModes(e){W(this.#a,e,!0)}#o=A(``);get notice(){return e(this.#o)}set notice(e){W(this.#o,e,!0)}#s=A(null);get byo(){return e(this.#s)}set byo(e){W(this.#s,e,!0)}pending=0;generation=0;options;pendingConfig=!1;builtAtHydrate=!1;synth;mic;constructor(e){this.options=e,this.session=new Wl({...e.session,storage:e.storage,onReply:e=>this.speak(e)}),this.voice=new nu({...e.voice,storage:e.storage}),this.synth=e.synth===void 0?typeof speechSynthesis<`u`?speechSynthesis:null:e.synth,this.mic=e.mic??(typeof navigator<`u`&&!!navigator.mediaDevices)}hydrate(e){this.hydrated||(this.prefs=ld(this.options.storage),this.hydrated=!0,this.builtAtHydrate=e,this.pendingConfig||this.decideFirstRun(),this.voice.init())}awaitConfig(){this.pendingConfig=!0}configure(e){let{config:t,notice:n}=e;this.pendingConfig=!1,this.inference=t,this.notice=n??``;let r=[t.mode,...t.alternatives??[]];this.availableModes=[...r,...t.alternatives?.length&&!r.includes(`manual`)?[`manual`]:[]],this.byo=r.includes(`byo`)?new Su({storage:this.options.storage,credentialPersistence:t.credentialPersistence,presets:t.byo?.presets,fetch:this.options.fetch,onChange:()=>this.syncByo()}):null,this.applyMode(t.mode),this.hydrated&&this.decideFirstRun()}useChat(e,t){this.pendingConfig=!1,this.inference={mode:`host`},this.notice=``,this.availableModes=[`host`],this.byo=null,this.session.setMode(`host`);let n=()=>typeof e==`function`?e():e;this.session.useRemote({message:(e,t)=>{let r=n();if(!r)throw Error(`The host has not connected a model yet.`);return r.message(e,t)}},t),this.hydrated&&this.decideFirstRun()}get assistantReady(){return this.hydrated&&this.session.status===`ready`}selectInference(e){this.availableModes.includes(e)&&e!==this.inference.mode&&(this.inference={...this.inference,mode:e},this.notice=``,this.applyMode(e))}applyMode(e){if(this.session.setMode(e),e===`host`&&this.inference.host){let{controller:e,store:t,settings:n,theme:r}=this.options.session,i=e??qe({store:t,settings:n,theme:r});this.session.useRemote(td({endpoint:this.inference.host.endpoint,snapshot:()=>i.snapshot(),fetch:this.options.fetch}),`Server`)}else e===`byo`?this.syncByo():e===`manual`&&this.session.useRemote(null,``)}syncByo(){let e=this.byo;e&&this.session.useRemote(e.active?e.chat():null,e.model)}decideFirstRun(){this.firstRun=this.inference.mode!==`host`&&this.inference.mode!==`manual`&&sd({thinkDownloaded:this.session.prefs.consented.length>0||this.session.status===`ready`,hearDownloaded:Zl(this.options.storage),readAloud:this.prefs.readAloud,dismissed:this.prefs.dismissed,built:this.builtAtHydrate})}get capabilities(){let e=qt(this.session.prefs.modelId),t=this.hydrated;return nd({think:{status:t?this.session.status:`idle`,model:e?Yt(e):`model`,progress:this.session.progress.progress,downloaded:t&&this.session.prefs.consented.length>0,mode:this.session.mode,remote:this.session.remoteLabel},hear:{status:t?this.voice.status:`checking`,mic:!t||this.mic},speak:{supported:!t||this.synth!==null,readAloud:t&&this.prefs.readAloud}})}get privacyNote(){return this.inference.mode===`manual`?`Inference is off. Planning, validation and export still work without a model.`:this.inference.mode===`host`?`Your messages and a short summary of your plan go to this site's server. Voice typing and reading aloud stay on this device.`:this.inference.mode===`byo`?`Your messages and a short summary of your plan go to the model endpoint you choose, and nowhere else. Voice typing and reading aloud stay on this device.`:`Everything runs on this device. Nothing you type or say leaves the page.`}get speakSupported(){return this.synth!==null}continueFirstRun(){this.firstRun=!1}dismissFirstRun(){this.firstRun=!1,this.setPrefs({...this.prefs,dismissed:!0})}setReadAloud(e){(!e||this.synth)&&(e||this.cancelSpeech(),this.setPrefs({...this.prefs,readAloud:e}))}setHandsFree(e){this.setPrefs({...this.prefs,handsFree:e})}setSendOnPause(e){this.setPrefs({...this.prefs,sendOnPause:e})}get sendOnPauseActive(){return this.handsFreeActive&&this.prefs.sendOnPause}get handsFreeActive(){return this.prefs.handsFree&&this.voice.status===`ready`}speak(e){if(!this.prefs.readAloud||!this.synth||!e.trim())return;this.cancelSpeech();let t=e.split(/\n{2,}/).map(e=>e.trim()).filter(Boolean),n=this.generation;this.pending=t.length,this.speaking=!0;let r=()=>{n===this.generation&&(this.pending=Math.max(0,this.pending-1),this.pending===0&&(this.speaking=!1))};for(let e of t){let t=new SpeechSynthesisUtterance(e);t.onend=r,t.onerror=r,this.synth.speak(t)}}cancelSpeech(){this.generation+=1,this.pending=0,this.speaking=!1,this.synth?.cancel()}setPrefs(e){this.prefs=e,ud(this.options.storage,e)}}({storage:Le(),session:{conversationStorage:pe(),store:Ge,recipes:We,controller:Xe,settings:{read:()=>Ve.settings(),write:e=>Ve.setSettings(e)},theme:{read:()=>Ve.snapshot().theme,write:e=>Ve.setTheme(e)},menu:()=>Je.openSection?Xe.snapshot().sections.filter(e=>!e.hidden).map(({id:e,label:t})=>({id:e,label:t})):[]},voice:{createModel:Wt}}),fd=`M11 4.2C10.4 3 8.6 2.8 7.6 3.8C6.2 3.6 5 4.8 5.2 6.1C3.8 6.6 3.3 8.2 4.1 9.3C3 10.2 3 11.9 4 12.8C3.6 14.2 4.4 15.6 5.8 15.9C6.2 17.3 7.6 18.2 9 17.9C9.7 19.2 11 19.6 11 19.6ZM13 4.2 C13.6 3 15.4 2.8 16.4 3.8 C17.8 3.6 19 4.8 18.8 6.1 C20.2 6.6 20.7 8.2 19.9 9.3 C21 10.2 21 11.9 20 12.8 C20.4 14.2 19.6 15.6 18.2 15.9 C17.8 17.3 16.4 18.2 15 17.9 C14.3 19.2 13 19.6 13 19.6 ZM10.2 7.4C8.6 7.8 7.5 7 7 6.2L7.7 5.8C8.2 6.5 9 6.8 10 6.5ZM10.3 11C8.4 11.6 6.6 10.8 5.9 9.6L6.6 9.2C7.2 10.2 8.6 10.7 10.1 10.2ZM10.2 15C8.5 15.6 6.8 15 6 13.9L6.7 13.5C7.4 14.3 8.6 14.6 10 14.2ZM13.8 7.4 C15.4 7.8 16.5 7 17 6.2 L16.3 5.8 C15.8 6.5 15 6.8 14 6.5 ZM13.7 11 C15.6 11.6 17.4 10.8 18.1 9.6 L17.4 9.2 C16.8 10.2 15.4 10.7 13.9 10.2 ZM13.8 15 C15.5 15.6 17.2 15 18 13.9 L17.3 13.5 C16.6 14.3 15.4 14.6 14 14.2 Z`,pd=`M17 20c-.29 0-.56-.06-.76-.15-.71-.37-1.21-.88-1.71-2.38-.51-1.56-1.47-2.29-2.39-3-.79-.61-1.61-1.24-2.32-2.53C9.29 10.98 9 9.93 9 9c0-2.8 2.2-5 5-5s5 2.2 5 5h2c0-3.93-3.07-7-7-7S7 5.07 7 9c0 1.26.38 2.65 1.07 3.9.91 1.65 1.98 2.48 2.85 3.15.81.62 1.39 1.07 1.71 2.05.6 1.82 1.37 2.84 2.73 3.55.51.23 1.07.35 1.64.35 2.21 0 4-1.79 4-4h-2c0 1.1-.9 2-2 2zM7.64 2.64L6.22 1.22C4.23 3.21 3 5.96 3 9s1.23 5.79 3.22 7.78l1.41-1.41C6.01 13.74 5 11.49 5 9s1.01-4.74 2.64-6.36zM11.5 9c0 1.38 1.12 2.5 2.5 2.5s2.5-1.12 2.5-2.5-1.12-2.5-2.5-2.5-2.5 1.12-2.5 2.5z`,md=`M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z`;export{Yt as A,Fn as C,qt as D,Jt as E,ct as M,Qt as O,Vn as S,Xt as T,Gl as _,td as a,Wc as b,Iu as c,Eu as d,Du as f,Cu as g,Tu as h,dd as i,Ut as j,Zt as k,wu as l,ku as m,md as n,Yu as o,Ou as p,fd as r,Xu as s,pd as t,Au as u,ql as v,Kt as w,Hn as x,Hl as y};