@runtypelabs/persona 4.25.0 → 4.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (236) hide show
  1. package/dist/animations/glyph-cycle.d.cts +1 -1
  2. package/dist/animations/glyph-cycle.d.ts +1 -1
  3. package/dist/animations/{types-Db61aI9J.d.cts → types-BwKTZhg9.d.cts} +14 -0
  4. package/dist/animations/{types-Db61aI9J.d.ts → types-BwKTZhg9.d.ts} +14 -0
  5. package/dist/animations/wipe.d.cts +1 -1
  6. package/dist/animations/wipe.d.ts +1 -1
  7. package/dist/animations-extra.d.cts +14 -0
  8. package/dist/animations-extra.d.ts +14 -0
  9. package/dist/approval-ui-QAKWNFNM.js +1 -0
  10. package/dist/approval-ui.cjs +2 -2
  11. package/dist/approval-ui.d.cts +180 -8
  12. package/dist/approval-ui.d.ts +180 -8
  13. package/dist/approval-ui.js +2 -2
  14. package/dist/{artifacts-ui-IGB5YKLO.js → artifacts-ui-NJGMM27I.js} +1 -1
  15. package/dist/artifacts-ui.cjs +4 -4
  16. package/dist/artifacts-ui.d.cts +180 -8
  17. package/dist/artifacts-ui.d.ts +180 -8
  18. package/dist/artifacts-ui.js +5 -5
  19. package/dist/chunk-2ANTRKTV.js +1 -0
  20. package/dist/chunk-4HPTPUC6.js +1 -0
  21. package/dist/chunk-6V3MNEKB.js +1 -0
  22. package/dist/chunk-HGUCGM3K.js +9 -0
  23. package/dist/chunk-IO5VVUKP.js +3 -0
  24. package/dist/chunk-J4J3Y2P2.js +1 -0
  25. package/dist/chunk-K6HKIP5K.js +1 -0
  26. package/dist/chunk-K7NA7G7J.js +1 -0
  27. package/dist/chunk-MXUTS3LB.js +1 -0
  28. package/dist/chunk-PDPVORUF.js +1 -0
  29. package/dist/chunk-QPPJUSZH.js +1 -0
  30. package/dist/chunk-QRKGQPU7.js +1 -0
  31. package/dist/chunk-S6PBWE75.js +1 -0
  32. package/dist/chunk-T7QM7YMF.js +1 -0
  33. package/dist/chunk-TR2H475E.js +1 -0
  34. package/dist/chunk-UPO4GUFC.js +1 -0
  35. package/dist/chunk-ZC66NAIR.js +1 -0
  36. package/dist/client-history-YPEG45Q4.js +1 -0
  37. package/dist/client-history.js +1 -0
  38. package/dist/client-stream-42FOI3EC.js +4 -0
  39. package/dist/client-stream.js +5 -0
  40. package/dist/codegen.cjs +1 -1
  41. package/dist/codegen.js +1 -1
  42. package/dist/context-mentions-E7HJYWO6.js +161 -0
  43. package/dist/{context-mentions-inline-I2RDEBAK.js → context-mentions-inline-QVESLW55.js} +1 -1
  44. package/dist/context-mentions.cjs +7 -7
  45. package/dist/context-mentions.d.cts +180 -8
  46. package/dist/context-mentions.d.ts +180 -8
  47. package/dist/context-mentions.js +8 -8
  48. package/dist/event-stream-view-FOIJHFQO.js +1 -0
  49. package/dist/event-stream-view.cjs +1 -1
  50. package/dist/event-stream-view.d.cts +183 -31
  51. package/dist/event-stream-view.d.ts +183 -31
  52. package/dist/event-stream-view.js +1 -1
  53. package/dist/forms-ui.d.cts +221 -667
  54. package/dist/forms-ui.d.ts +221 -667
  55. package/dist/history-shell-QDQ44PSE.js +3 -0
  56. package/dist/history-shell.js +3 -0
  57. package/dist/{history-view-BD6OXLNA.js → history-view-NCFBI5GR.js} +2 -2
  58. package/dist/history-view.cjs +2 -2
  59. package/dist/history-view.d.cts +35 -1
  60. package/dist/history-view.d.ts +35 -1
  61. package/dist/history-view.js +2 -2
  62. package/dist/index.cjs +80 -74
  63. package/dist/index.cjs.map +1 -1
  64. package/dist/index.d.cts +227 -738
  65. package/dist/index.d.ts +227 -738
  66. package/dist/index.global.js +3 -215
  67. package/dist/index.global.js.map +1 -1
  68. package/dist/index.js +81 -75
  69. package/dist/index.js.map +1 -1
  70. package/dist/install.global.js +1 -1
  71. package/dist/install.global.js.map +1 -1
  72. package/dist/launcher.global.js +3 -67
  73. package/dist/launcher.global.js.map +1 -1
  74. package/dist/markdown-parsers.js +22 -22
  75. package/dist/runtype-tts-entry-NFBVWR7N.js +1 -0
  76. package/dist/runtype-tts.js +1 -1
  77. package/dist/session-actions-ISSKSI66.js +1 -0
  78. package/dist/session-actions.js +1 -0
  79. package/dist/session-reconnect.d.cts +180 -8
  80. package/dist/session-reconnect.d.ts +180 -8
  81. package/dist/smart-dom-reader.cjs +13 -13
  82. package/dist/smart-dom-reader.d.cts +180 -8
  83. package/dist/smart-dom-reader.d.ts +180 -8
  84. package/dist/smart-dom-reader.js +11 -11
  85. package/dist/theme-editor-preview.cjs +116 -98
  86. package/dist/theme-editor-preview.d.cts +182 -8
  87. package/dist/theme-editor-preview.d.ts +182 -8
  88. package/dist/theme-editor-preview.js +49 -54
  89. package/dist/theme-editor.cjs +2 -2
  90. package/dist/theme-editor.d.cts +181 -23
  91. package/dist/theme-editor.d.ts +181 -23
  92. package/dist/theme-editor.js +2 -2
  93. package/dist/theme-reference.d.cts +14 -0
  94. package/dist/theme-reference.d.ts +14 -0
  95. package/dist/ui-extras-entry-WAYFKVNW.js +3 -0
  96. package/dist/ui-extras.js +72 -0
  97. package/dist/voice-runtime-UOQOFAFY.js +17 -0
  98. package/dist/voice-runtime.cjs +17 -1
  99. package/dist/voice-runtime.d.cts +11650 -232
  100. package/dist/voice-runtime.d.ts +11650 -232
  101. package/dist/voice-runtime.js +17 -1
  102. package/dist/voice-worklet-player.cjs +19 -4
  103. package/dist/voice-worklet-player.d.cts +9 -10
  104. package/dist/voice-worklet-player.d.ts +9 -10
  105. package/dist/voice-worklet-player.js +19 -4
  106. package/dist/webmcp-polyfill.js +1 -1
  107. package/dist/webmcp-runtime-V6ZWW3PI.js +6 -0
  108. package/dist/webmcp-runtime.cjs +2 -2
  109. package/dist/webmcp-runtime.d.cts +1 -33
  110. package/dist/webmcp-runtime.d.ts +1 -33
  111. package/dist/webmcp-runtime.js +2 -2
  112. package/dist/widget.css +1 -1
  113. package/package.json +11 -5
  114. package/src/approval-paused-tool-settle.test.ts +221 -0
  115. package/src/client-approve.test.ts +311 -0
  116. package/src/client-history-eager.ts +9 -0
  117. package/src/client-history-loader.ts +23 -0
  118. package/src/client-history.ts +579 -0
  119. package/src/client-resume.ts +177 -0
  120. package/src/client-stream-eager.ts +12 -0
  121. package/src/client-stream-loader.ts +25 -0
  122. package/src/client-stream.ts +1880 -0
  123. package/src/client.test.ts +31 -1
  124. package/src/client.ts +293 -2607
  125. package/src/components/approval-actions.test.ts +27 -0
  126. package/src/components/approval-actions.ts +27 -3
  127. package/src/components/message-bubble.test.ts +19 -0
  128. package/src/components/message-bubble.ts +2 -0
  129. package/src/components/registry.ts +6 -6
  130. package/src/components/tool-bubble.test.ts +9 -0
  131. package/src/components/tool-bubble.ts +1 -0
  132. package/src/history-shell-bundle.test.ts +54 -0
  133. package/src/history-shell-eager.ts +12 -0
  134. package/src/history-shell-loader.ts +27 -0
  135. package/src/history-shell.ts +2362 -0
  136. package/src/history-view-loader.ts +2 -0
  137. package/src/history-view.ts +3 -0
  138. package/src/index-core.ts +6 -0
  139. package/src/index-global.ts +90 -248
  140. package/src/index.ts +13 -0
  141. package/src/install.ts +6 -4
  142. package/src/internal/runtype-history-provider.test.ts +1 -0
  143. package/src/internal/runtype-history-provider.ts +28 -13
  144. package/src/plugins/registry.ts +8 -8
  145. package/src/session-actions-chunk.test.ts +55 -0
  146. package/src/session-actions-eager.ts +11 -0
  147. package/src/session-actions-loader.ts +37 -0
  148. package/src/session-actions.ts +909 -0
  149. package/src/session-history.test.ts +3 -1
  150. package/src/session.ts +852 -1536
  151. package/src/session.voice.test.ts +1170 -5
  152. package/src/styles/widget.css +58 -0
  153. package/src/theme-editor/state.ts +91 -91
  154. package/src/types.ts +198 -5
  155. package/src/ui-ask-user-sheet.ts +382 -0
  156. package/src/ui-extras-eager.ts +10 -0
  157. package/src/ui-extras-entry.ts +9 -0
  158. package/src/ui-extras-loader.ts +26 -0
  159. package/src/ui.artifact-rail-resize.test.ts +2 -1
  160. package/src/ui.ask-user-chunk.test.ts +93 -0
  161. package/src/ui.history-chunk.test.ts +2 -1
  162. package/src/ui.history-config-provider.test.ts +2 -1
  163. package/src/ui.history-confirm-fallback.test.ts +142 -0
  164. package/src/ui.history-controller.test.ts +2 -1
  165. package/src/ui.history-lifecycle.test.ts +2 -1
  166. package/src/ui.history-render-hooks.test.ts +2 -1
  167. package/src/ui.history-shell.test.ts +2 -1
  168. package/src/ui.rail-overlay.test.ts +2 -1
  169. package/src/ui.rail-resize.test.ts +2 -1
  170. package/src/ui.rail-trigger-pending.test.ts +2 -1
  171. package/src/ui.ts +340 -2770
  172. package/src/utils/attachment-manager.ts +67 -67
  173. package/src/utils/constants.ts +3 -0
  174. package/src/utils/context-mention-controller.ts +323 -323
  175. package/src/utils/context-mention-manager.ts +40 -40
  176. package/src/utils/context-mention-orchestrator.ts +28 -0
  177. package/src/utils/event-stream-buffer.ts +50 -50
  178. package/src/utils/event-stream-store.ts +43 -43
  179. package/src/utils/throughput-tracker.ts +34 -34
  180. package/src/utils/virtual-scroller.ts +67 -67
  181. package/src/utils/visitor-store.test.ts +50 -0
  182. package/src/utils/visitor-store.ts +23 -5
  183. package/src/voice/__fixtures__/voice-wire/README.md +1 -0
  184. package/src/voice/__fixtures__/voice-wire/client/cancel.json +3 -0
  185. package/src/voice/__fixtures__/voice-wire/client/context.json +4 -0
  186. package/src/voice/__fixtures__/voice-wire/client/delegation_result.json +6 -0
  187. package/src/voice/__fixtures__/voice-wire/client/delegation_update.json +6 -0
  188. package/src/voice/__fixtures__/voice-wire/client/ping.json +3 -0
  189. package/src/voice/__fixtures__/voice-wire/client/playback_progress.json +5 -0
  190. package/src/voice/__fixtures__/voice-wire/client/start.json +3 -0
  191. package/src/voice/__fixtures__/voice-wire/server/artifact.json +11 -0
  192. package/src/voice/__fixtures__/voice-wire/server/attached.json +4 -0
  193. package/src/voice/__fixtures__/voice-wire/server/audio_clear.json +4 -0
  194. package/src/voice/__fixtures__/voice-wire/server/audio_end.json +3 -0
  195. package/src/voice/__fixtures__/voice-wire/server/delegation_cancelled.json +5 -0
  196. package/src/voice/__fixtures__/voice-wire/server/delegation_completed.json +8 -0
  197. package/src/voice/__fixtures__/voice-wire/server/delegation_started.json +15 -0
  198. package/src/voice/__fixtures__/voice-wire/server/error.json +6 -0
  199. package/src/voice/__fixtures__/voice-wire/server/metrics.json +10 -0
  200. package/src/voice/__fixtures__/voice-wire/server/pong.json +3 -0
  201. package/src/voice/__fixtures__/voice-wire/server/session_config.json +16 -0
  202. package/src/voice/__fixtures__/voice-wire/server/transcript_final.json +7 -0
  203. package/src/voice/__fixtures__/voice-wire/server/transcript_interim.json +4 -0
  204. package/src/voice/__fixtures__/voice-wire/server/transcript_partial.json +6 -0
  205. package/src/voice/__fixtures__/voice-wire/server/transcript_update.json +10 -0
  206. package/src/voice/__fixtures__/voice-wire/server/warning.json +5 -0
  207. package/src/voice/audio-playback-manager.test.ts +57 -0
  208. package/src/voice/audio-playback-manager.ts +120 -98
  209. package/src/voice/browser-voice-provider.ts +37 -37
  210. package/src/voice/fallback-speech-engine.ts +22 -16
  211. package/src/voice/keyed-voice-transcript.ts +314 -0
  212. package/src/voice/mic-state-styles.ts +182 -0
  213. package/src/voice/read-aloud-controller.ts +46 -44
  214. package/src/voice/runtype-speech-engine.ts +35 -33
  215. package/src/voice/runtype-voice-provider.ts +670 -189
  216. package/src/voice/session-voice-wiring.ts +266 -0
  217. package/src/voice/voice-delegation.test.ts +71 -0
  218. package/src/voice/voice-delegation.ts +364 -0
  219. package/src/voice/voice-turn-tracker.ts +6 -6
  220. package/src/voice/voice.test.ts +981 -8
  221. package/src/voice/worklet-playback-engine.test.ts +81 -0
  222. package/src/voice/worklet-playback-engine.ts +21 -3
  223. package/src/voice-runtime-loader.ts +4 -1
  224. package/src/voice-runtime.ts +7 -0
  225. package/src/webmcp-runtime-entry.ts +41 -39
  226. package/dist/approval-ui-3NMYNXBD.js +0 -1
  227. package/dist/chunk-5EIIHQLQ.js +0 -1
  228. package/dist/chunk-7CO4T5KB.js +0 -1
  229. package/dist/chunk-EFJBUH5F.js +0 -1
  230. package/dist/chunk-R2TMIMDI.js +0 -3
  231. package/dist/chunk-UTVLOTWB.js +0 -9
  232. package/dist/context-mentions-45MODWOY.js +0 -161
  233. package/dist/event-stream-view-GL3ADRY2.js +0 -1
  234. package/dist/runtype-tts-entry-UJAEF7NZ.js +0 -1
  235. package/dist/voice-runtime-7DA7MJH4.js +0 -1
  236. package/dist/webmcp-runtime-JI7T4QYF.js +0 -6
@@ -0,0 +1,3 @@
1
+ import{b as Xe}from"./chunk-MXUTS3LB.js";import{a as Mt,c as It,d as Ot,e as _t,f as kt}from"./chunk-J4J3Y2P2.js";import"./chunk-S6PBWE75.js";import{c as Lt}from"./chunk-2ANTRKTV.js";import{a as O,c as D,d as Tt}from"./chunk-76IELU7F.js";var Ye=(e,I)=>{console.warn(`[persona] ${e} threw`,I)},V=e=>Object.freeze({...e}),Bt=e=>Object.freeze({id:e.id,title:e.title,targetId:e.targetId,preview:e.preview,messageCount:e.messageCount,createdAt:e.createdAt,updatedAt:e.updatedAt}),Wt=e=>e?V(e):null;function Dt(e){let{plugins:I,config:g}=e,a=!1,h=!1,N=!1,l=!1,A=null,d=[],u=()=>{for(let i of d.splice(0))try{i()}catch(p){Ye("renderHistoryView cleanup",p)}},c=(i,p)=>{for(let k of I){let U=k[i];if(U)try{let G=U(p);if(G)return G}catch(G){Ye(i,G)}}return null},H=()=>({presentation:e.getPresentation(),config:g}),oe={header:i=>l?c("renderHistoryHeader",Object.freeze({...H(),returnSurface:e.getReturnSurface(),identityStatus:V(i.identityStatus),pendingAction:Wt(i.pendingAction),copy:V(i.copy),actions:Object.freeze({close:_.close,startNewConversation:_.startNewConversation}),defaultRenderer:i.defaultRenderer})):null,conversation:i=>l?c("renderHistoryConversation",Object.freeze({...H(),conversation:Bt(i.conversation),active:i.active,pending:i.pending,open:i.open,requestDelete:i.requestDelete,defaultRenderer:i.defaultRenderer})):null,state:i=>l?c("renderHistoryState",Object.freeze({...H(),state:V(i.state),identityStatus:V(i.identityStatus),copy:V(i.copy),...i.retry?{retry:i.retry}:{},...i.startNewConversation?{startNewConversation:i.startNewConversation}:{},defaultRenderer:i.defaultRenderer})):null},j=I.flatMap(i=>(i.railSections??[]).map(p=>({...p,placement:p.placement??"above-conversations",items:[],render:k=>p.render(Object.freeze({collapsed:k,presentation:e.getPresentation(),actions:_}))}))),b=e.createView({slots:oe,renderDom:!1,onModelChange:()=>$(),railSections:j}),_=Object.freeze({...b.operations,close:e.close}),Y=()=>(l=!0,b.setDomRenderEnabled(!0),b.element),ne=i=>Object.freeze({conversations:Object.freeze(i.conversations.map(Bt)),activeConversationId:i.activeConversationId,state:V(i.state),pendingAction:Wt(i.pendingAction),identityStatus:V(i.identityStatus),nextCursor:i.nextCursor,presentation:e.getPresentation(),returnSurface:e.getReturnSurface(),config:g,copy:V(b.copy),actions:_,defaultRenderer:Y,requestRender:()=>$(),onCleanup:p=>{d.push(p)}}),M=()=>{l=!1;let i=null;for(let k of I)if(k.renderHistoryView){try{i=k.renderHistoryView(ne(b.getModel()))}catch(U){Ye("renderHistoryView",U),i=null}if(i)break}let p=!i||i.contains(b.element);return l=p,b.setDomRenderEnabled(p),i??b.element};function $(){if(!(!N||a||h)){h=!0;try{u();let i=M();if(i===A)return;let p=A;A=i,e.onElementChanged(i,p)}finally{h=!1}}}return N=!0,$(),{view:b,get element(){return A??b.element},requestRender:$,dispose:()=>{a=!0,u()}}}var br=new Map([["not_found","not_found"],["conversation_deleted","not_found"],["rate_limited","rate_limited"],["authentication_required","authentication_required"],["invalid_identity_proof","authentication_required"],["visitor_identity_mismatch","authentication_required"],["visitor_required","authentication_required"],["identity_provider_failed","identity_provider_failed"],["proof_not_admitted","proof_not_admitted"],["identity_contract_violation","proof_not_admitted"],["unauthorized","authentication_failed"],["visitor_token_missing","authentication_failed"],["conversation_credential_missing","authentication_failed"]]),Cr=new Map([["not_found","That conversation is no longer available."],["rate_limited","Too many history requests."],["authentication_failed","History access was not authorized."],["authentication_required","Sign in again to view account history."],["identity_provider_failed","The identity provider did not respond."],["proof_not_admitted","Account history is not available for this configuration."],["unsupported_scope","This history scope is not supported."],["unavailable","Conversation history is unavailable right now."]]),Ge=e=>Cr.get(e)??"Conversation history is unavailable right now.";function Sr(e,{HistoryClientError:I,HistoryProviderError:g}){if(e instanceof g)return e;if(e instanceof I){let a=br.get(e.code)??"unavailable";return new g(a,Ge(a),{...e.retryAfterSeconds!==void 0?{retryAfterSeconds:e.retryAfterSeconds}:{}})}return new g("unavailable",Ge("unavailable"))}function Vt(e){let{HistoryProviderError:I}=e.errors,g=()=>e.getClient?.()??e.client,a=e.getIdentityProofConfigured()?["browser","verified-user"]:["browser"],h={scopes:a},N=d=>{if(!a.includes(d))throw new I("unsupported_scope",Ge("unsupported_scope"))},l=async(d,u)=>{N(d);try{return await u()}catch(c){throw Sr(c,e.errors)}},A=d=>{let u=!1;return{conversationId:d.session.conversationId??"",conversationRevision:d.session.conversationRevision??"",async commit(){u||(u=!0,d.commit(),await e.onActivationCommitted(d.session))},discard(){u||(u=!0,d.discard())}}};return{capabilities:h,getIdentityStatus(){return g().getHistoryIdentityStatus()},subscribeIdentityStatus(d){return g().subscribeHistoryIdentityStatus(d)},subscribeAvailability(d){return g().subscribeHistoryAvailability(d)},async list(d){return l(d.context.scope,async()=>{let u=await g().listConversations({...d.cursor?{cursor:d.cursor}:{},...d.limit!==void 0?{limit:d.limit}:{},...d.targetId?{targetId:d.targetId}:{},scope:d.context.scope});return{items:u.data,nextCursor:u.nextCursor}})},async getPage(d,u){return l(u.context.scope,async()=>{let c=await g().getConversation(d,{...u.cursor?{messageCursor:u.cursor}:{},scope:u.context.scope}),H=Mt(c.messages,{...u.beforeCreatedAt?{beforeCreatedAt:u.beforeCreatedAt}:{}});return{summary:c.summary,messages:It([],H),conversationRevision:c.conversationRevision??"",nextCursor:c.nextMessageCursor}})},async prepareOpen(d,u){return l(u.context.scope,async()=>A(await g().prepareConversationSession(d)))},async prepareStartNew(d){return l(d.context.scope,async()=>A(await g().prepareNewConversationSession()))},async delete(d,u){await l(u.context.scope,()=>g().deleteConversation(d,{scope:u.context.scope}))},async deleteAll(d){return l(d.context.scope,()=>g().deleteAllConversations({...d.targetId!==void 0?{targetId:d.targetId}:{},scope:d.context.scope}))},async resetDevice(){try{return await g().resetVisitor(),{remoteRevocationConfirmed:!0}}catch{return{remoteRevocationConfirmed:!1}}}}}var Or=e=>{let a=Xe(e.config.features?.history?.copy),h=null,N=!1,l=null,A=null,d="conversation",u=null,c=null,H=null,oe=null,j=0,b=null,_=null,Y=null,ne=`persona-history-${Math.random().toString(36).slice(2,8)}`,M=()=>e.historyFeatureEnabled()&&!!h&&!N,$=()=>{let t=e.session.getStatus();return e.isStreaming||t==="paused"||t==="resuming"},i=()=>{let t=e.config.features?.history?.scope;if(t)return t;let r=e.config.getIdentityProof?"verified-user":"browser",o=h?.capabilities.scopes;return!o||o.includes(r)?r:o[0]??r},p=()=>A?.scope??i(),k=()=>e.session.getClientSession()?.targetId??null,U=t=>`${t.state}:${"reason"in t?t.reason:""}`,G=t=>{let r=U(t);r!==oe&&(oe=r,e.eventBus.emit("history:identityStatusChanged",{status:t,timestamp:Date.now()}))},Ze=null,Je=null,Nt=()=>{if(!e.historyFeatureEnabled())return null;let t=e.getHistoryProviderFactory();if(t)return t();let r=e.config.features?.history?.provider;return r?typeof r!="function"?r:(Ze!==r&&(Ze=r,Je=r()),Je):e.session.isClientTokenMode()?Vt({errors:e.historyErrors,client:e.session.getClient(),getIdentityProofConfigured:()=>typeof e.config.getIdentityProof=="function",onActivationCommitted:o=>e.session.bindActivatedSession(o),getClient:()=>e.session.getClient()}):null},Qe=()=>{_?.(),_=null,Y?.(),Y=null,N=!1,h=Nt();let t={...e.historyInternals};h?t.historyProvider=h:delete t.historyProvider,e.historyInternals=t,e.session.setHistoryInternals(e.historyInternals),h&&(_=h.subscribeAvailability?.(r=>{N=!r,r||S({restoreFocus:!1}),z()})??null,Y=h.subscribeIdentityStatus(r=>G(r)),oe=U(h.getIdentityStatus()))},Le=()=>{let t=e.config.features?.history?.presentation??"panel";if(t==="panel"||t==="auto"&&!(!e.launcherEnabled||e.isDockedMountMode(e.config)))return"panel";let r=e.artifactSplitRoot??e.container;return(r.getBoundingClientRect().width||r.clientWidth)>=720?"rail":"panel"},R=(t,r)=>{r?(t.setAttribute("aria-hidden","true"),t.setAttribute("inert","")):(t.removeAttribute("aria-hidden"),t.removeAttribute("inert"))},pe="data-persona-history-suppressed",C=null,q=null,K=null,ie=null,Me=null,xe="",et=()=>e.header===Me?xe:e.config.layout?.showHeader===!1?"none":"",qt=()=>e.historyPresentation==="panel"&&!!K&&ie===K.element&&e.config.layout?.showHeader!==!1&&et()!=="none",Ft=()=>{for(let t of Array.from(e.header.children))t!==C&&t.setAttribute(pe,"")},zt=()=>{for(let t of Array.from(e.container.querySelectorAll(`[${pe}]`)))t.removeAttribute(pe)},jt=()=>{let t=K;if(!t)return;if(Array.from(e.header.children).some(n=>n!==C&&!n.hasAttribute(pe))){q&&q!==e.header&&(q.style.removeProperty("min-height"),q=null);let n=e.header.offsetHeight;n>0&&(e.header.style.minHeight=`${n}px`,q=e.header)}C||(C=O("div","persona-history-header-host")),t.setHeaderPlacement("external");let o=t.getHeaderElement();o.parentNode!==C&&C.replaceChildren(o),C.parentNode!==e.header&&e.header.appendChild(C),Ft()},tt=()=>{q&&(q.style.removeProperty("min-height"),q=null),C&&(K?.setHeaderPlacement("inline"),C.remove(),C=null,zt())},fe=null,Ie=()=>{if(fe){if(e.body.style.display="none",R(e.body,!0),e.footer.hidden=!0,R(e.footer,!0),qt()){jt(),e.header.style.display=et(),R(e.header,!1);return}tt(),e.header.style.display="none",R(e.header,!0)}};e.reapplyHistoryHostChrome=Ie;let $t=t=>{let r=e.body.style.display,o=e.footer.hidden,n=e.footer,s=e.header,m=e.header.style.display;Me=s,xe=m,fe=()=>{fe=null,tt(),Me=null,e.body.style.display=r,R(e.body,!1),n.hidden=o,R(n,!1),e.footer!==n&&(e.footer.hidden=!1,R(e.footer,!1)),s.style.display=m,R(s,!1),e.header!==s&&(e.header.style.display=e.config.layout?.showHeader===!1?"none":"",R(e.header,!1))},e.footer.parentNode?.insertBefore(t,e.footer),Ie()},Z=null,J=null,me=null,Q=null,rt=()=>[e.header,e.panelElements.closeButtonWrapper,e.panelElements.clearChatButtonWrapper,e.body,e.footer],Ut=52,ve=()=>e.config.features?.history?.rail?.collapsible!==!1,x=()=>e.config.features?.history?.rail?.side==="right"?"right":"left",Oe=200,_e=400,ke=t=>Math.min(_e,Math.max(Oe,Math.round(t))),Kt=()=>e.config.features?.history?.rail?.resizable===!0,se,Xt=()=>{if(se===void 0&&(se=null,e.config.persistState!==!1))try{let t=Number(window.localStorage.getItem(`${e.currentKeyPrefix()}rail-width`));t&&(se=t)}catch{}return se},ae=()=>ke(Xt()??e.config.features?.history?.rail?.width??260),Yt=t=>{if(se=t,e.config.persistState!==!1)try{window.localStorage.setItem(`${e.currentKeyPrefix()}rail-width`,String(t))}catch{}},ge=()=>ve()&&e.config.features?.history?.rail?.collapsedBehavior==="overlay",f=!1,ot=t=>{let r=O("img");return r.src=t,r.alt="",r.setAttribute("aria-hidden","true"),r},Gt=()=>{let t=e.config.features?.history?.rail?.brand;if(!t)return;let r=!1,o;return n=>{if(t.render)try{return t.render({collapsed:n})??null}catch(s){return r||(r=!0,console.warn("[persona] history rail brand threw",s)),null}return o===void 0&&(t.iconUrl?o=ot(t.iconUrl):o=t.icon?e.renderLucideIcon(t.icon,20):null),o?o.cloneNode(!0):null}},Zt=()=>e.config.features?.history?.rail?.sections?.map(t=>{let r=!1,o=n=>{r||(r=!0,console.warn("[persona] history rail section threw",t.id,n))};return{id:t.id,title:t.title,placement:t.placement??"above-conversations",items:t.items.map(n=>{let s;return{id:n.id,label:n.label,badge:n.badge,iconNode:()=>{if(s!==void 0)return s;try{n.renderIcon?s=n.renderIcon()??null:n.iconUrl?s=ot(n.iconUrl):s=n.icon?e.renderLucideIcon(n.icon,20):null}catch(m){o(m),s=null}return s},onSelect:()=>{try{n.onSelect()}catch(m){o(m)}}}})}})??[],Jt=t=>{let r=Zt();for(let o of t)r.some(n=>n.id===o.id)?console.warn("[persona] duplicate history rail section id",o.id):r.push(o);return r.length?r:void 0},le=null,nt=()=>`${e.currentKeyPrefix()}rail-collapsed`,Be=()=>{if(le===null&&(le=e.config.features?.history?.rail?.defaultCollapsed===!0,e.config.persistState!==!1))try{let t=window.localStorage.getItem(nt());t&&(le=t==="1")}catch{}return le},We=t=>{if(le=t,e.config.persistState!==!1)try{window.localStorage.setItem(nt(),t?"1":"0")}catch{}},de=()=>e.historyPresentation==="rail"&&ve()&&!ge()&&Be(),De=()=>{},it=()=>{if(ge()){De();return}We(!Be()),l?.view.setCollapsed(de()),e.applyRailChrome(),e.repinAnchoredMessage()},Ve=()=>{let t=e.config.features?.history?.rail?.collapseShortcut;return!t||!Ot(t)?null:{combo:t,hint:_t(t),aria:kt(t)}},Qt=300,he="var(--persona-history-overlay-margin,8px)",P=null,B=null,He=0,W=null,ee=null,X=!1,Ne=0,st=()=>window.matchMedia?.("(pointer: coarse)").matches===!0,te=()=>M()&&ge()&&(e.historyPresentation??Le())==="rail",xt=()=>e.historyVisible&&!f,ue=()=>{ee!==null&&clearTimeout(ee),ee=null},er=()=>{e.loadHistoryView().catch(()=>{})},at=()=>{ue(),f&&(ee=setTimeout(()=>{ee=null,!(X||!f)&&(W?.contains(document.activeElement)||S({restoreFocus:!1}))},Qt))},tr=(t,r)=>{let o=W?.getBoundingClientRect();if(!o)return!1;let n=P?.getBoundingClientRect(),s=n?Math.min(n.top,o.top):o.top;return t>=o.left&&t<=o.right&&r>=s&&r<=o.bottom||!!n&&t>=n.left&&t<=n.right&&r>=n.top&&r<=n.bottom},qe=t=>{f&&(X=tr(t.clientX,t.clientY),X?ue():ee===null&&at())},lt=t=>{e.historyVisible||!te()||(f=!0,ye({invoker:P,keyboard:t?.keyboard===!0}).then(()=>{e.historyVisible?!X&&document.activeElement!==P&&S():f=!1}))},dt=()=>{let t=ie?.querySelector('[data-persona-history-focus="collapse"]');t&&(t.setAttribute("aria-label",f?a.expandLabel:a.collapseLabel),t.setAttribute("aria-expanded",f?"false":"true"))},ut=()=>{We(!1);let t=l;if(!f||!t){ye({invoker:P});return}let r=document.activeElement===P;f=!1,be(),t.element.remove(),ze(t.element),dt(),r&&Ce(),e.repinAnchoredMessage(),z()},rr=()=>{We(!0),S()};De=()=>{!e.historyVisible||f?ut():rr()};let or=()=>{let t=Ve(),r=e.createHeaderIconButton({ariaLabel:a.expandLabel,iconName:"panel-left",wrapperClassName:"persona-relative persona-inline-flex persona-items-center persona-justify-center",extraClassName:"persona-rail-trigger",tooltip:!1,attrs:{"data-persona-rail-trigger":"","aria-controls":ne,...t?{"aria-keyshortcuts":t.aria}:{}}}),o=r.button;o.addEventListener("mouseenter",()=>{X=!0,ue(),!(st()||Date.now()<Ne)&&lt()}),o.addEventListener("mouseleave",()=>{X=!1,Ne=0,at()}),o.addEventListener("focus",()=>{e.historyVisible||er()}),o.addEventListener("click",n=>{M()&&(n.detail!==0&&st()&&!e.historyVisible?lt():ut())}),P=o,B=r.wrapper},ce=()=>{if(B&&!B.isConnected&&(B=null,P=null),!te()){B?.remove(),B=null,P=null;return}P||or();let t=B,r=P;if(!t||!r)return;let o=x()!=="right"?e.header.firstChild:null;(o??e.header.lastChild)!==t&&e.header.insertBefore(t,o),t.style.display=xt()||He>0?"none":"",r.setAttribute("aria-label",a.expandLabel),r.setAttribute("aria-expanded",e.historyVisible?"true":"false"),W&&e.applyRailChrome()},ct=t=>{if(!f)return;let r=t.target;r instanceof Node&&(W?.contains(r)||B?.contains(r)||r instanceof Element&&r.closest('.persona-dropdown-menu,[role="alertdialog"]')||S({restoreFocus:!1}))};document.addEventListener("pointerdown",ct,!0),e.destroyCallbacks.push(()=>{document.removeEventListener("pointerdown",ct,!0),document.removeEventListener("pointermove",qe),re?.(),ue()});let Fe=null,re=null,yt=16,pt=t=>{Yt(ke(t)),e.applyRailChrome(),e.repinAnchoredMessage()},nr=()=>{let t=O("div","persona-rail-resizer");return t.tabIndex=0,t.setAttribute("role","separator"),t.setAttribute("aria-orientation","vertical"),t.setAttribute("aria-valuemin",String(Oe)),t.setAttribute("aria-valuemax",String(_e)),t.addEventListener("pointerdown",r=>{let o=J;if(!o||r.button!==0)return;r.preventDefault(),re?.();let n=r.clientX,s=o.getBoundingClientRect().width||ae(),m=x()==="right"?-1:1,v=s,y=e.mount.ownerDocument;o.style.transition="none";let L=E=>{v=ke(s+m*(E.clientX-n)),o.style.flex=`0 0 ${v}px`,t.setAttribute("aria-valuenow",String(v))},w=()=>{re=null,y.removeEventListener("pointermove",L),y.removeEventListener("pointerup",w),y.removeEventListener("pointercancel",w),o.style.removeProperty("transition");try{t.releasePointerCapture(r.pointerId)}catch{}pt(v)};re=w,y.addEventListener("pointermove",L),y.addEventListener("pointerup",w),y.addEventListener("pointercancel",w);try{t.setPointerCapture(r.pointerId)}catch{}}),t.addEventListener("keydown",r=>{let o=x()==="right"?-yt:yt,n=ae(),s=r.key==="ArrowRight"?n+o:r.key==="ArrowLeft"?n-o:r.key==="Home"?Oe:r.key==="End"?_e:null;s!==null&&(r.preventDefault(),pt(s))}),t},ir=(t,r)=>{if(!Kt()||de()){re?.(),Fe?.remove();return}let o=Fe??nr();Fe=o,o.setAttribute("aria-label",a.resizeLabel),o.setAttribute("aria-valuenow",String(ae())),o.nextElementSibling!==r&&t.insertBefore(o,r)};e.applyRailChrome=()=>{l?.view.setRailSide(x());let t=x()==="right",r=W;if(r){let y=P?P.getBoundingClientRect().bottom-e.container.getBoundingClientRect().top:0;r.style.top=`calc(${Math.max(0,Math.round(y))}px + ${he})`,r.style.width=`${ae()}px`,r.style.left=t?"":he,r.style.right=t?he:""}let o=J,n=Z,s=me;if(!o||!n||!s)return;o.style.flex=`0 0 ${de()?Ut:ae()}px`;let m="1px solid var(--persona-divider,#e5e7eb)";o.style.borderRight=t?"":m,o.style.borderLeft=t?m:"";let v=t?s:o;n.firstElementChild!==v&&n.append(v,t?o:s),ir(n,t?o:s)};let ft=t=>{if(Q&&J){Q.replaceWith(t),Q=null,e.applyRailChrome();return}let r=O("div","persona-history-rail-shell");r.style.cssText="display:flex;flex-direction:row;flex:1 1 auto;min-height:0";let o=O("div","persona-history-rail-conversation");o.style.cssText="display:flex;flex-direction:column;flex:1 1 auto;min-width:0;min-height:0;position:relative";let n=O("div","persona-history-rail-host");n.style.cssText="display:flex;min-height:0;overflow:hidden",e.container.insertBefore(r,e.header.parentNode===e.container?e.header:e.body);for(let s of rt())s?.parentNode===e.container&&o.appendChild(s);r.append(n,o),n.appendChild(t),Z=r,J=n,me=o,e.applyRailChrome()},sr=()=>{if(Z)return;let t=O("div","persona-history-rail-placeholder");t.style.cssText="flex:1 1 auto;min-height:0",Q=t,ft(t),e.repinAnchoredMessage()},mt=()=>{Q&&(be(),e.repinAnchoredMessage())},ar=t=>{let r=O("div","persona-history-rail-overlay");r.style.cssText=`position:absolute;bottom:${he};display:flex;overflow:hidden;z-index:${Lt-1};border-radius:var(--persona-history-overlay-radius,16px);background:var(--persona-history-overlay-bg,var(--persona-container,#f7f7f8));box-shadow:var(--persona-history-overlay-shadow,0 12px 40px rgba(0,0,0,0.25))`,e.container.style.position="relative",e.container.appendChild(r),r.appendChild(t),document.addEventListener("pointermove",qe),W=r,e.applyRailChrome(),dt()},be=()=>{fe?.(),W&&(X&&(Ne=Date.now()+150),document.removeEventListener("pointermove",qe),W.remove(),W=null);let t=Z;if(t){re?.();for(let r of rt())r&&t.contains(r)&&e.container.insertBefore(r,t);t.remove(),Z=null,J=null,me=null,Q=null}},vt=t=>{ie=t,t.id=ne,t.style.flex="1 1 auto",t.style.minHeight="0"},ze=t=>{vt(t),(e.historyPresentation!=="rail"||f)&&mt(),e.historyPresentation!=="rail"?$t(t):f?ar(t):ft(t)},lr=()=>{if(ce(),Pt(),!e.historyVisible||!l)return;let t=Le();if(t===e.historyPresentation)return;let r=document.activeElement,o=r instanceof HTMLElement&&(l.element.contains(r)||C?.contains(r)===!0)?r:null;be(),l.element.remove(),l.view.setHeaderPlacement("inline"),e.historyPresentation=t,l.view.setPresentation(t),l.view.setCollapsed(de()),l.requestRender(),l.element.isConnected||ze(l.element),o?.isConnected?o.focus():Ce(),e.syncScrollToBottomButton(),e.repinAnchoredMessage(),z()},gt=(t,r)=>C?.querySelector(r)??t.querySelector(r),Ce=()=>{let t=l?.element??ie;if(!t)return;let r=gt(t,'[data-persona-history-focus="close"],[data-persona-history-focus="collapse"]');if(r){r.focus();return}let o=gt(t,".persona-history-title")??t;o.tabIndex=-1,o.focus()},ye=async t=>{if(!M()||e.historyVisible)return;let r=h;if(!r)return;if(!f&&te()&&Be()){ce();return}Se();let o=++j;d=t?.returnSurface??"conversation",u=t?.invoker??c;let n=te()&&!f;n&&(He+=1,ce(),sr());let s;try{s=await e.loadHistoryView()}catch{e.announceHistory(a.openHistoryLabel),n&&(He-=1,o===j&&(mt(),ce()));return}if(n&&(He-=1),o!==j||e.historyVisible)return;A={scope:i()},e.historyPresentation=Le(),e.historyVisible=!0;let m=e.historyPresentation==="panel"&&e.config.layout?.showHeader!==!1&&e.header.style.display!=="none"?"external":"inline",v=e.config.features?.history?.rowAvatar,y=Ve(),L=y?{hint:y.hint,aria:y.aria}:null,w={provider:r,context:A,targetId:k(),presentation:e.historyPresentation,collapsible:ve(),collapsed:de(),railSide:x(),renderRailHeader:e.config.features?.history?.rail?.renderHeader,railBrand:Gt(),onToggleCollapse:it,...L?{collapseShortcut:L}:{},headerPlacement:m,showScopeStatus:e.config.features?.history?.showScopeStatus!==!1,showDelete:e.config.features?.history?.showDelete!==!1,showDeleteAll:e.config.features?.history?.showDeleteAll!==!1,...e.config.features?.history?.listActions?.length?{listActions:e.config.features.history.listActions}:{},rowAvatar:v===!1?!1:typeof v=="string"?v:e.config.launcher?.iconUrl,activeConversationId:e.session.getActiveConversationId(),...e.config.features?.history?.grouping?{grouping:e.config.features.history.grouping}:{},...e.config.features?.history?.copy?{copy:e.config.features.history.copy}:{},...e.config.features?.history?.pageSize!==void 0?{pageSize:e.config.features.history.pageSize}:{},onSelect:E=>$e(E,{focusComposer:!0}).catch(()=>{}),onActiveConversationChange:E=>e.setActiveConversationSummary(E),attachTooltip:e.attachTooltip,onStartNew:()=>St({focusComposer:!0}),onClose:()=>S(),onRequestDeleteConversation:E=>Rt(E),onRequestClearHistory:()=>fr(),...r.resetDevice?{onRequestResetIdentity:()=>mr()}:{}};l=Dt({plugins:e.plugins,config:e.config,getPresentation:()=>e.historyPresentation??"panel",getReturnSurface:()=>d,close:()=>S(),createView:({slots:E,renderDom:Te,onModelChange:hr,railSections:Hr})=>(K=s.createHistoryView({...w,railSections:Jt(Hr),slots:E,renderDom:Te,onModelChange:hr,onAnnounce:e.announceHistory}),K),onElementChanged:(E,Te)=>{if(!Te?.isConnected)return ze(E);vt(E),Te.replaceWith(E),Ie()}}),l.view.setNewConversationRequired(e.historySessionState.recovery==="new_conversation_required"),t?.focus!==!1&&(e.historyPresentation!=="rail"||t?.keyboard===!0)&&Ce(),e.syncScrollToBottomButton(),e.repinAnchoredMessage(),z(),e.eventBus.emit("history:opened",{presentation:e.historyPresentation,returnSurface:d,timestamp:Date.now()})},Se=()=>{},S=t=>{if(!e.historyVisible)return;j+=1;let r=d,o=u,n=l,s=t?.restoreFocus!==!1;e.historyVisible=!1;let m=!1,v=null,y=()=>{if(!m){if(m=!0,Se=()=>{},v!==null&&clearTimeout(v),f=!1,ue(),be(),n?.dispose(),n?.view.destroy(),n?.element.remove(),l===n&&(l=null,K=null,ie=null,e.historyPresentation=null,A=null,u=null),e.syncScrollToBottomButton(),e.repinAnchoredMessage(),z(),s){let w=o??c;w?.isConnected?w.focus():e.maybeFocusInput()}e.eventBus.emit("history:closed",{returnSurface:r,timestamp:Date.now()})}},L=n&&n.element===n.view.element?n.view.playExit():null;if(!L){y();return}Se=y,v=setTimeout(y,250),L.then(y)},ht=t=>{if(!(t.key!=="Escape"||!e.historyVisible||!l)){if(e.historyPresentation==="rail"){let r=t.target;if(!(r instanceof Node)||!(l.element.contains(r)||f&&B?.contains(r)===!0))return}t.preventDefault(),t.stopPropagation(),S()}};e.container.addEventListener("keydown",ht),e.destroyCallbacks.push(()=>e.container.removeEventListener("keydown",ht));let we=0,dr=250,Ee=null,Ae=()=>{Ee&&clearTimeout(Ee),Ee=null};e.destroyCallbacks.push(Ae);let Ht=()=>{Ae();let t=e.conversationOpenPendingEl;t&&(e.conversationOpenTakeover=!0,t.hidden=!1,e.messagesWrapper.style.display="none",e.updateWelcome())},Re=()=>{we+=1,Ae(),e.conversationOpenPendingEl&&(e.conversationOpenPendingEl.remove(),e.conversationOpenPendingEl=null,e.conversationOpenTakeover=!1,e.messagesWrapper.style.removeProperty("display"),R(e.footer,!1),e.updateWelcome())},ur=()=>{try{if(window.matchMedia?.("(prefers-reduced-motion: reduce)")?.matches)return;e.messagesWrapper.animate([{opacity:0},{opacity:1}],{duration:150,easing:"ease-out"})}catch{}},je=(t,r)=>D("div",{className:Tt("persona-conversation-loading-bubble",r&&"persona-conversation-loading-bubble--trailing"),attrs:{"aria-hidden":"true"},style:{width:t}}),bt=()=>D("div",{className:"persona-conversation-loading-body"},je("58%",!1),je("72%",!0),je("44%",!1)),Ct=t=>{e.conversationOpenPendingEl?.remove(),e.conversationOpenPendingEl=t,t.hidden=!e.conversationOpenTakeover,e.body.insertBefore(t,e.messagesWrapper),Ae(),e.conversationOpenTakeover||(Ee=setTimeout(Ht,dr)),R(e.footer,!0)},cr=()=>{let t={config:e.config,streaming:!1,location:"conversation-open",defaultRenderer:bt},r=null,o=e.plugins.find(n=>n.renderLoadingIndicator);o?.renderLoadingIndicator&&(r=o.renderLoadingIndicator(t)),r===null&&e.config.loadingIndicator?.render&&(r=e.config.loadingIndicator.render(t)),Ct(D("div",{className:"persona-conversation-loading",attrs:{role:"status","aria-label":a.openConversationLoadingLabel}},r??bt()))},yr=t=>{let r=()=>{$e(t,{focusComposer:!0}).catch(()=>{})},o=M()?()=>{Re(),ye()}:void 0,n=(y,L)=>{let w=D("button",{className:"persona-conversation-loading-error-action",attrs:{type:"button"},text:y});return w.addEventListener("click",L),w},s=()=>D("div",{className:"persona-conversation-loading-error-body"},D("p",{className:"persona-conversation-loading-error-title",text:a.openConversationErrorTitle}),D("div",{className:"persona-conversation-loading-error-actions"},n(a.openConversationRetryLabel,r),o?n(a.openConversationBackLabel,o):null)),m=Object.freeze({conversationId:t,config:e.config,copy:Object.freeze({title:a.openConversationErrorTitle,retryLabel:a.openConversationRetryLabel,backLabel:a.openConversationBackLabel}),retry:r,...o?{back:o}:{},defaultRenderer:s}),v=null;for(let y of e.plugins)if(y.renderHistoryOpenError){try{v=y.renderHistoryOpenError(m)}catch(L){console.warn("[persona] renderHistoryOpenError threw",L),v=null}if(v)break}Ct(D("div",{className:"persona-conversation-loading-error",attrs:{role:"alert"}},v??s())),Ht()};e.eventBus.on("history:closed",()=>{e.conversationOpenPendingEl&&R(e.footer,!0)});let $e=async(t,{focusComposer:r=!1}={})=>{let o=p(),n=!!l;l?.view.setActiveConversationId(t),Re();let s=we;cr(),e.historyVisible&&(e.historyPresentation==="panel"||f)&&S({restoreFocus:!1}),e.suppressScrollSend=!0;try{await e.session.openConversation(t,{scope:o})}catch(m){throw s===we&&yr(t),m}finally{e.suppressScrollSend=!1}s===we&&(Re(),e.messageCache.clear(),e.resetAnchorState(),e.resumeAutoScroll(),e.restoreScrollPosition()||e.jumpToBottomInstant(),ur(),F(),n||e.setActiveConversationSummary(null),e.eventBus.emit("history:conversationOpened",{conversationId:t,title:e.activeConversationTitle,scope:o,timestamp:Date.now()}),r&&e.maybeFocusInput())},St=async({focusComposer:t=!1}={})=>{Re(),await e.session.startNewConversation({scope:p()}),e.setActiveConversationSummary(null),e.messageCache.clear(),e.resetAnchorState(),e.resumeAutoScroll(),e.jumpToBottomInstant(),F();let r=e.session.getActiveConversationId();l?.view.setActiveConversationId(r),e.eventBus.emit("history:conversationStarted",{conversationId:r,timestamp:Date.now()}),e.historyVisible&&(e.historyPresentation==="panel"||f)&&S({restoreFocus:!1}),t&&e.maybeFocusInput()},pr=async(t,r)=>{let o=await e.session.updateConversation(t,{...r,...r.title!==void 0?{title:r.title.trim()}:{}});return l?.view.applyConversationSummary(o),!l&&t===e.session.getActiveConversationId()&&e.setActiveConversationSummary(o),o},wt=async t=>{let r=p(),o=e.session.getActiveConversationId()===t;await e.session.deleteConversation(t,{scope:r}),l?.view.removeConversationSummary(t),o&&(e.setActiveConversationSummary(null),e.messageCache.clear(),e.resetAnchorState(),e.resumeAutoScroll(),F()),e.eventBus.emit("history:conversationDeleted",{conversationId:t,scope:r,wasActive:o,timestamp:Date.now()})},Et=async t=>{let r=t?.scope??p(),o=t?.allTargets?null:t?.targetId??k(),n=await e.session.clearConversationHistory({...o?{targetId:o}:{},scope:r});return e.setActiveConversationSummary(null),e.messageCache.clear(),e.resetAnchorState(),e.resumeAutoScroll(),F(),e.eventBus.emit("history:cleared",{deleted:n.deleted,scope:r,targetId:o,timestamp:Date.now()}),n},At=async()=>{if(!h?.resetDevice)throw new Error("[Persona] resetHistoryIdentity() requires a history provider that can reset this device");let t=!1;try{t=(await e.session.resetHistoryDevice()).remoteRevocationConfirmed}finally{e.setActiveConversationSummary(null),e.session.clearArtifacts(),e.messageCache.clear(),e.lastAppliedMessages=null,e.config.clearStoredSessionId?.(),e.config.clearStoredConversationId?.(),e.persistentMetadata={},e.actionManager.syncFromMetadata();let r=e.storageAdapter;r?.clear&&e.runStorageMutation(()=>r.clear(),"[AgentWidget] Failed to clear storage adapter:"),e.resetAnchorState(),e.resumeAutoScroll(),F(),S({restoreFocus:!1}),e.maybeFocusInput(),e.open||e.launcherSurfaceInstance?.launcher.element.focus()}return e.announceHistory(t?a.identityResetNotice:a.identityResetUnconfirmedNotice),e.eventBus.emit("history:identityReset",{remoteRevocationConfirmed:t,timestamp:Date.now()}),{remoteRevocationConfirmed:t}},Ue=()=>e.artifactSplitRoot?e.panel:e.container,Ke=async t=>{let r=await e.loadHistoryView().catch(()=>null);return typeof r?.showHistoryConfirm=="function"?r.showHistoryConfirm(t):window.confirm(`${t.title}
2
+
3
+ ${t.description}`)},Rt=async t=>await Ke({host:Ue(),title:a.deleteConversationConfirmTitle,description:a.deleteConversationConfirm,confirmLabel:a.deleteConversationConfirmLabel,cancelLabel:a.confirmCancelLabel})?(await wt(t),"deleted"):"cancelled",fr=async()=>{let t=p()==="verified-user";return await Ke({host:Ue(),title:a.clearHistoryConfirmTitle,description:t?a.clearHistoryVerifiedConfirm:a.clearHistoryConfirm,confirmLabel:a.clearHistoryConfirmLabel,cancelLabel:a.confirmCancelLabel})?(await Et(),"cleared"):"cancelled"},mr=async()=>{if(!await Ke({host:Ue(),title:a.resetIdentityConfirmTitle,description:a.resetIdentityConfirm,confirmLabel:a.resetIdentityConfirmLabel,cancelLabel:a.confirmCancelLabel}))return{outcome:"cancelled"};let{remoteRevocationConfirmed:r}=await At();return{outcome:"reset",remoteRevocationConfirmed:r}},T=O("button","persona-history-earlier");T.type="button",T.textContent=a.showEarlierMessagesLabel,T.setAttribute("data-persona-history-earlier",""),Object.assign(T.style,{alignSelf:"center",minHeight:"44px",padding:"0 16px",borderRadius:"999px",border:"1px solid var(--persona-border, rgba(0,0,0,0.12))",background:"transparent",color:"inherit",font:"inherit",cursor:"pointer",flexShrink:"0"});let F=()=>{if(!(M()&&!!e.historySessionState.nextMessageCursor&&!!e.session.getActiveConversationId())){T.remove();return}T.textContent=a.showEarlierMessagesLabel,T.parentNode!==e.body&&e.body.insertBefore(T,e.body.firstChild)};T.addEventListener("click",()=>{let t=e.session.getActiveConversationId(),r=e.historySessionState.nextMessageCursor;if(!t||!r||T.disabled)return;T.disabled=!0;let o=e.body.scrollHeight,n=e.body.scrollTop;e.session.loadOlderMessages(t,r,{scope:p()}).then(()=>{e.body.scrollTop=n+(e.body.scrollHeight-o),e.repinAnchoredMessage()}).catch(()=>{}).finally(()=>{T.disabled=!1,F()})});let vr=()=>{let t=e.createHeaderIconButton({ariaLabel:a.openHistoryLabel,iconName:"history",wrapperClassName:"persona-relative persona-inline-flex persona-items-center persona-justify-center",extraClassName:"persona-history-toggle",attrs:{"data-persona-history-toggle":""}});return t.button.addEventListener("click",r=>{if(!(!M()||$())){if(e.historyVisible){S();return}ye({invoker:t.button,keyboard:r.detail===0})}}),t},Pt=()=>{if(!M()){H?.remove(),c=null,H=null;return}if(H&&!H.isConnected&&(c=null,H=null),!c&&e.header){let n=vr();c=n.button,H=n.wrapper;let s=e.panelElements.clearChatButtonWrapper||e.panelElements.closeButtonWrapper;s?.parentNode&&e.header.contains(s)?s.parentNode.insertBefore(H,s):e.header.appendChild(H)}if(!c||!H)return;let t=te()||e.historyVisible&&e.historyPresentation==="rail";if(H.style.display=t?"none":"",t){document.activeElement===c&&Ce();return}let r=$();c.disabled=r,c.setAttribute("aria-disabled",r?"true":"false");let o=r?a.openHistoryBusyLabel:a.openHistoryLabel;c.setAttribute("aria-label",o),(e.config.features?.history?.presentation??"panel")==="panel"?(c.removeAttribute("aria-expanded"),c.removeAttribute("aria-controls")):(c.setAttribute("aria-expanded",e.historyVisible?"true":"false"),c.setAttribute("aria-controls",ne))},Pe=!1,gr=()=>{let t=e.panelElements.clearChatButton;if(t){if(M()){Pe||(b=t.getAttribute("aria-label")??"",Pe=!0),t.setAttribute("aria-label",a.newConversationLabel),t.removeAttribute("title");return}Pe&&(Pe=!1,b&&t.setAttribute("aria-label",b))}},z=()=>{a=Xe(e.config.features?.history?.copy),Pt(),ce(),gr(),F()};return e.historyChromeSync=z,Qe(),z(),e.destroyCallbacks.push(()=>{_?.(),Y?.(),j+=1,Se(),l?.dispose(),l?.view.destroy(),l=null}),{historyAvailable:M,historyScope:i,installHistoryProvider:Qe,syncHistoryChromeImpl:z,syncHistoryPresentation:lr,syncEarlierMessagesPill:F,openHistory:ye,closeHistory:S,openHistoryConversation:$e,startNewConversation:St,updateHistoryConversation:pr,deleteHistoryConversation:wt,requestDeleteConversation:Rt,clearConversationHistory:Et,resetHistoryIdentity:At,railCollapseShortcut:Ve,railCollapsible:ve,railTriggerApplies:te,railOverlayMode:ge,toggleRailCollapsed:it,toggleRailPinned:()=>De(),get historyProvider(){return h},get historySurface(){return l},get railShell(){return Z},get railHost(){return J},get railColumn(){return me}}};export{Or as createHistoryShell};
@@ -0,0 +1,3 @@
1
+ var _n=["viewTitle","openHistoryLabel","openHistoryBusyLabel","newConversationLabel","expandLabel","collapseLabel","resizeLabel","showEarlierMessagesLabel","openConversationLoadingLabel","openConversationErrorTitle","openConversationRetryLabel","openConversationBackLabel","confirmCancelLabel","deleteConversationConfirmTitle","deleteConversationConfirm","deleteConversationConfirmLabel","clearHistoryConfirmTitle","clearHistoryConfirm","clearHistoryVerifiedConfirm","clearHistoryConfirmLabel","resetIdentityConfirmTitle","resetIdentityConfirm","resetIdentityConfirmLabel","conversationDeletedNotice","identityResetNotice","identityResetUnconfirmedNotice"],Pt={viewTitle:"Messages",openHistoryLabel:"Messages",openHistoryBusyLabel:"Messages, available once the reply finishes",newConversationLabel:"New conversation",expandLabel:"Expand conversation list",collapseLabel:"Collapse conversation list",resizeLabel:"Resize conversation list",showEarlierMessagesLabel:"Show earlier messages",openConversationLoadingLabel:"Loading conversation",openConversationErrorTitle:"Could not open the conversation.",openConversationRetryLabel:"Try again",openConversationBackLabel:"Back to messages",confirmCancelLabel:"Cancel",deleteConversationConfirmTitle:"Delete conversation",deleteConversationConfirm:"Delete this conversation? This cannot be undone.",deleteConversationConfirmLabel:"Delete",clearHistoryConfirmTitle:"Delete all conversations",clearHistoryConfirm:"Delete all conversations for this assistant on this browser? This cannot be undone.",clearHistoryVerifiedConfirm:"Delete all conversations for this assistant and signed-in user? This cannot be undone.",clearHistoryConfirmLabel:"Delete all",resetIdentityConfirmTitle:"Forget this device",resetIdentityConfirm:"Forget this device? All Persona data stored in this browser is cleared. Records are not deleted elsewhere.",resetIdentityConfirmLabel:"Forget this device",conversationDeletedNotice:"That conversation was deleted. You are now in a new conversation.",identityResetNotice:"This device was forgotten.",identityResetUnconfirmedNotice:"This device was cleared here, but the server could not confirm it."};function Xe(e){if(!e)return Pt;let i={...Pt};for(let u of _n){let o=e[u];typeof o=="string"&&o.length>0&&(i[u]=o)}return i}var Ge=(e,i)=>{console.warn(`[persona] ${e} threw`,i)},F=e=>Object.freeze({...e}),It=e=>Object.freeze({id:e.id,title:e.title,targetId:e.targetId,preview:e.preview,messageCount:e.messageCount,createdAt:e.createdAt,updatedAt:e.updatedAt}),Ot=e=>e?F(e):null;function _t(e){let{plugins:i,config:u}=e,o=!1,l=!1,p=!1,a=!1,m=null,d=[],f=()=>{for(let c of d.splice(0))try{c()}catch(h){Ge("renderHistoryView cleanup",h)}},g=(c,h)=>{for(let k of i){let j=k[c];if(j)try{let Z=j(h);if(Z)return Z}catch(Z){Ge(c,Z)}}return null},S=()=>({presentation:e.getPresentation(),config:u}),L={header:c=>a?g("renderHistoryHeader",Object.freeze({...S(),returnSurface:e.getReturnSurface(),identityStatus:F(c.identityStatus),pendingAction:Ot(c.pendingAction),copy:F(c.copy),actions:Object.freeze({close:N.close,startNewConversation:N.startNewConversation}),defaultRenderer:c.defaultRenderer})):null,conversation:c=>a?g("renderHistoryConversation",Object.freeze({...S(),conversation:It(c.conversation),active:c.active,pending:c.pending,open:c.open,requestDelete:c.requestDelete,defaultRenderer:c.defaultRenderer})):null,state:c=>a?g("renderHistoryState",Object.freeze({...S(),state:F(c.state),identityStatus:F(c.identityStatus),copy:F(c.copy),...c.retry?{retry:c.retry}:{},...c.startNewConversation?{startNewConversation:c.startNewConversation}:{},defaultRenderer:c.defaultRenderer})):null},U=i.flatMap(c=>(c.railSections??[]).map(h=>({...h,placement:h.placement??"above-conversations",items:[],render:k=>h.render(Object.freeze({collapsed:k,presentation:e.getPresentation(),actions:N}))}))),w=e.createView({slots:L,renderDom:!1,onModelChange:()=>q(),railSections:U}),N=Object.freeze({...w.operations,close:e.close}),G=()=>(a=!0,w.setDomRenderEnabled(!0),w.element),oe=c=>Object.freeze({conversations:Object.freeze(c.conversations.map(It)),activeConversationId:c.activeConversationId,state:F(c.state),pendingAction:Ot(c.pendingAction),identityStatus:F(c.identityStatus),nextCursor:c.nextCursor,presentation:e.getPresentation(),returnSurface:e.getReturnSurface(),config:u,copy:F(w.copy),actions:N,defaultRenderer:G,requestRender:()=>q(),onCleanup:h=>{d.push(h)}}),_=()=>{a=!1;let c=null;for(let k of i)if(k.renderHistoryView){try{c=k.renderHistoryView(oe(w.getModel()))}catch(j){Ge("renderHistoryView",j),c=null}if(c)break}let h=!c||c.contains(w.element);return a=h,w.setDomRenderEnabled(h),c??w.element};function q(){if(!(!p||o||l)){l=!0;try{f();let c=_();if(c===m)return;let h=m;m=c,e.onElementChanged(c,h)}finally{l=!1}}}return p=!0,q(),{view:w,get element(){return m??w.element},requestRender:q,dispose:()=>{o=!0,f()}}}var D=(e,i)=>{let u=document.createElement(e);return i&&(u.className=i),u};var V=(e,i={},...u)=>{let o=document.createElement(e);if(i.className&&(o.className=i.className),i.text!==void 0&&(o.textContent=i.text),i.attrs)for(let[p,a]of Object.entries(i.attrs))o.setAttribute(p,a);if(i.style){let p=o.style,a=i.style;for(let m of Object.keys(a)){let d=a[m];d!=null&&(p[m]=d)}}let l=u.filter(p=>p!=null);return l.length>0&&o.append(...l),o},Dt=(...e)=>e.filter(Boolean).join(" ");var Nt=null;var Dn=()=>{if(Nt!==null)return Nt;if(typeof navigator>"u")return!1;let i=navigator.userAgentData?.platform??navigator.platform??"";return/mac|iphone|ipad|ipod/i.test(i)},Nn="ArrowUp ArrowDown ArrowLeft ArrowRight PageUp PageDown Space",kt=(e,i)=>{console.warn(`[persona] ${e} shortcut: ${i}`)},Ze=e=>{let i=e.toLowerCase().split("+").map(l=>l.trim()),u=i.pop(),o={key:u,mod:!1,shift:!1,alt:!1};for(let l of i)if(l==="mod"||l==="cmd"||l==="ctrl")o.mod=!0;else if(l==="shift")o.shift=!0;else if(l==="alt"||l==="option")o.alt=!0;else return kt("unknown modifier in",e),null;return!o.mod||o.shift&&o.alt||/^(enter|esc(ape)?)$/.test(u)||!/^([^+\s]|[a-z]{2,12})$/.test(u)?(kt("unsupported",e),null):(u==="space"&&(o.key=" "),o)},kn=e=>Nn.split(" ").find(i=>i.toLowerCase()===e)??(e===" "?"Space":e.length===1?e.toUpperCase():e[0].toUpperCase()+e.slice(1)),Wt=(e,i)=>{let u=Ze(e);if(!u)return"";let o=Dn(),l=kn(u.key);if(!i&&o)return`${u.alt?"\u2325":""}${u.shift?"\u21E7":""}\u2318${l}`;let p=[i?o?"Meta":"Control":"Ctrl"];return u.alt&&p.push("Alt"),u.shift&&p.push("Shift"),p.push(l),p.join("+")},Bt=e=>Wt(e,!1),Ft=e=>Wt(e,!0);var Wn=1e5,Vt=Wn+1;var zt="[Image]";function Kt(e){return typeof e=="string"?e:e.filter(i=>i.type==="text").map(i=>i.text).join("")}function $t(e){return typeof e=="string"?!1:e.some(i=>i.type==="image")}function Ut(e){return{type:"text",text:e}}function qt(e,i){return{type:"image",image:e,...i?.mimeType&&{mimeType:i.mimeType},...i?.alt&&{alt:i.alt}}}var Bn=["image/png","image/jpeg","image/gif","image/webp","image/svg+xml","image/bmp"],Fn=["application/pdf","text/plain","text/markdown","text/csv","application/msword","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.ms-excel","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/json"],Qn=[...Bn,...Fn];function jt(e,i,u){return{type:"file",data:e,mimeType:i,filename:u}}var Vn=["user","assistant","system"],zn=0;function Yt(e){if(typeof e!="string"||e==="")return null;let i=Date.parse(e);return Number.isNaN(i)?null:i}function Re(e){return typeof e=="string"?e:void 0}function Kn(e){if(typeof e!="object"||e===null)return null;let i=e;switch(i.type){case"text":return typeof i.text=="string"?Ut(i.text):null;case"image":return typeof i.image=="string"?qt(i.image,{mimeType:Re(i.mimeType),alt:Re(i.alt)}):null;case"file":return typeof i.data=="string"&&typeof i.mimeType=="string"&&typeof i.filename=="string"?jt(i.data,i.mimeType,i.filename):null;case"audio":return typeof i.audio=="string"?{type:"audio",audio:i.audio,...Re(i.mimeType)!==void 0&&{mimeType:i.mimeType}}:null;case"video":return typeof i.video=="string"?{type:"video",video:i.video,...Re(i.mimeType)!==void 0&&{mimeType:i.mimeType}}:null;default:return null}}function $n(e,i){let u=Yt(i),o=e.map(a=>Yt(a.timestamp)),l=new Array(e.length),p=0;for(;p<o.length;){let a=o[p];if(a!==null){l[p]=a,p+=1;continue}let m=p;for(;m+1<o.length&&o[m+1]===null;)m+=1;let d=m-p+1,f=p>0?l[p-1]:null,g=m+1<o.length?o[m+1]:null,S=g!==null&&u!==null?Math.min(g,u):g??u;for(let L=0;L<d;L+=1)l[p+L]=S!==null?S-(d-L):f!==null?f+L+1:zn+L;p=m+1}return l.map(a=>new Date(a).toISOString())}function Xt(e,i){let u=$n(e,i?.beforeCreatedAt),o=[];return e.forEach((l,p)=>{if(typeof l?.id!="string"||l.id===""||!Vn.includes(l.role))return;let a=l.role,m=u[p];if(l.displayAvailable===!1){let d={historyDisplayUnavailable:!0};o.push({id:l.id,role:a,content:"",createdAt:m,agentMetadata:d});return}if(typeof l.displayContent=="string"){o.push({id:l.id,role:a,content:l.displayContent,createdAt:m});return}if(typeof l.content=="string"){o.push({id:l.id,role:a,content:l.content,createdAt:m});return}if(Array.isArray(l.content)){let d=l.content.map(Kn).filter(g=>g!==null),f=Kt(d);o.push({id:l.id,role:a,content:f||($t(d)?zt:""),createdAt:m,...d.length>0&&{contentParts:d}});return}o.push({id:l.id,role:a,content:"",createdAt:m})}),o}function Gt(e,i){let u=new Map;for(let o of e)u.set(o.id,o);for(let o of i)u.set(o.id,o);return[...u.values()].sort((o,l)=>{let p=new Date(o.createdAt).getTime(),a=new Date(l.createdAt).getTime();if(!Number.isNaN(p)&&!Number.isNaN(a)&&p!==a)return p-a;let m=o.sequence??0,d=l.sequence??0;return m!==d?m-d:o.id.localeCompare(l.id)})}var Un=new Map([["not_found","not_found"],["conversation_deleted","not_found"],["rate_limited","rate_limited"],["authentication_required","authentication_required"],["invalid_identity_proof","authentication_required"],["visitor_identity_mismatch","authentication_required"],["visitor_required","authentication_required"],["identity_provider_failed","identity_provider_failed"],["proof_not_admitted","proof_not_admitted"],["identity_contract_violation","proof_not_admitted"],["unauthorized","authentication_failed"],["visitor_token_missing","authentication_failed"],["conversation_credential_missing","authentication_failed"]]),qn=new Map([["not_found","That conversation is no longer available."],["rate_limited","Too many history requests."],["authentication_failed","History access was not authorized."],["authentication_required","Sign in again to view account history."],["identity_provider_failed","The identity provider did not respond."],["proof_not_admitted","Account history is not available for this configuration."],["unsupported_scope","This history scope is not supported."],["unavailable","Conversation history is unavailable right now."]]),Je=e=>qn.get(e)??"Conversation history is unavailable right now.";function jn(e,{HistoryClientError:i,HistoryProviderError:u}){if(e instanceof u)return e;if(e instanceof i){let o=Un.get(e.code)??"unavailable";return new u(o,Je(o),{...e.retryAfterSeconds!==void 0?{retryAfterSeconds:e.retryAfterSeconds}:{}})}return new u("unavailable",Je("unavailable"))}function Zt(e){let{HistoryProviderError:i}=e.errors,u=()=>e.getClient?.()??e.client,o=e.getIdentityProofConfigured()?["browser","verified-user"]:["browser"],l={scopes:o},p=d=>{if(!o.includes(d))throw new i("unsupported_scope",Je("unsupported_scope"))},a=async(d,f)=>{p(d);try{return await f()}catch(g){throw jn(g,e.errors)}},m=d=>{let f=!1;return{conversationId:d.session.conversationId??"",conversationRevision:d.session.conversationRevision??"",async commit(){f||(f=!0,d.commit(),await e.onActivationCommitted(d.session))},discard(){f||(f=!0,d.discard())}}};return{capabilities:l,getIdentityStatus(){return u().getHistoryIdentityStatus()},subscribeIdentityStatus(d){return u().subscribeHistoryIdentityStatus(d)},subscribeAvailability(d){return u().subscribeHistoryAvailability(d)},async list(d){return a(d.context.scope,async()=>{let f=await u().listConversations({...d.cursor?{cursor:d.cursor}:{},...d.limit!==void 0?{limit:d.limit}:{},...d.targetId?{targetId:d.targetId}:{},scope:d.context.scope});return{items:f.data,nextCursor:f.nextCursor}})},async getPage(d,f){return a(f.context.scope,async()=>{let g=await u().getConversation(d,{...f.cursor?{messageCursor:f.cursor}:{},scope:f.context.scope}),S=Xt(g.messages,{...f.beforeCreatedAt?{beforeCreatedAt:f.beforeCreatedAt}:{}});return{summary:g.summary,messages:Gt([],S),conversationRevision:g.conversationRevision??"",nextCursor:g.nextMessageCursor}})},async prepareOpen(d,f){return a(f.context.scope,async()=>m(await u().prepareConversationSession(d)))},async prepareStartNew(d){return a(d.context.scope,async()=>m(await u().prepareNewConversationSession()))},async delete(d,f){await a(f.context.scope,()=>u().deleteConversation(d,{scope:f.context.scope}))},async deleteAll(d){return a(d.context.scope,()=>u().deleteAllConversations({...d.targetId!==void 0?{targetId:d.targetId}:{},scope:d.context.scope}))},async resetDevice(){try{return await u().resetVisitor(),{remoteRevocationConfirmed:!0}}catch{return{remoteRevocationConfirmed:!1}}}}}var ur=e=>{let o=Xe(e.config.features?.history?.copy),l=null,p=!1,a=null,m=null,d="conversation",f=null,g=null,S=null,L=null,U=0,w=null,N=null,G=null,oe=`persona-history-${Math.random().toString(36).slice(2,8)}`,_=()=>e.historyFeatureEnabled()&&!!l&&!p,q=()=>{let t=e.session.getStatus();return e.isStreaming||t==="paused"||t==="resuming"},c=()=>{let t=e.config.features?.history?.scope;if(t)return t;let n=e.config.getIdentityProof?"verified-user":"browser",r=l?.capabilities.scopes;return!r||r.includes(n)?n:r[0]??n},h=()=>m?.scope??c(),k=()=>e.session.getClientSession()?.targetId??null,j=t=>`${t.state}:${"reason"in t?t.reason:""}`,Z=t=>{let n=j(t);n!==L&&(L=n,e.eventBus.emit("history:identityStatusChanged",{status:t,timestamp:Date.now()}))},Qe=null,xe=null,Jt=()=>{if(!e.historyFeatureEnabled())return null;let t=e.getHistoryProviderFactory();if(t)return t();let n=e.config.features?.history?.provider;return n?typeof n!="function"?n:(Qe!==n&&(Qe=n,xe=n()),xe):e.session.isClientTokenMode()?Zt({errors:e.historyErrors,client:e.session.getClient(),getIdentityProofConfigured:()=>typeof e.config.getIdentityProof=="function",onActivationCommitted:r=>e.session.bindActivatedSession(r),getClient:()=>e.session.getClient()}):null},et=()=>{N?.(),N=null,G?.(),G=null,p=!1,l=Jt();let t={...e.historyInternals};l?t.historyProvider=l:delete t.historyProvider,e.historyInternals=t,e.session.setHistoryInternals(e.historyInternals),l&&(N=l.subscribeAvailability?.(n=>{p=!n,n||A({restoreFocus:!1}),$()})??null,G=l.subscribeIdentityStatus(n=>Z(n)),L=j(l.getIdentityStatus()))},Pe=()=>{let t=e.config.features?.history?.presentation??"panel";if(t==="panel"||t==="auto"&&!(!e.launcherEnabled||e.isDockedMountMode(e.config)))return"panel";let n=e.artifactSplitRoot??e.container;return(n.getBoundingClientRect().width||n.clientWidth)>=720?"rail":"panel"},R=(t,n)=>{n?(t.setAttribute("aria-hidden","true"),t.setAttribute("inert","")):(t.removeAttribute("aria-hidden"),t.removeAttribute("inert"))},pe="data-persona-history-suppressed",E=null,z=null,Y=null,ie=null,Ie=null,tt="",nt=()=>e.header===Ie?tt:e.config.layout?.showHeader===!1?"none":"",Qt=()=>e.historyPresentation==="panel"&&!!Y&&ie===Y.element&&e.config.layout?.showHeader!==!1&&nt()!=="none",xt=()=>{for(let t of Array.from(e.header.children))t!==E&&t.setAttribute(pe,"")},en=()=>{for(let t of Array.from(e.container.querySelectorAll(`[${pe}]`)))t.removeAttribute(pe)},tn=()=>{let t=Y;if(!t)return;if(Array.from(e.header.children).some(s=>s!==E&&!s.hasAttribute(pe))){z&&z!==e.header&&(z.style.removeProperty("min-height"),z=null);let s=e.header.offsetHeight;s>0&&(e.header.style.minHeight=`${s}px`,z=e.header)}E||(E=D("div","persona-history-header-host")),t.setHeaderPlacement("external");let r=t.getHeaderElement();r.parentNode!==E&&E.replaceChildren(r),E.parentNode!==e.header&&e.header.appendChild(E),xt()},rt=()=>{z&&(z.style.removeProperty("min-height"),z=null),E&&(Y?.setHeaderPlacement("inline"),E.remove(),E=null,en())},fe=null,Oe=()=>{if(fe){if(e.body.style.display="none",R(e.body,!0),e.footer.hidden=!0,R(e.footer,!0),Qt()){tn(),e.header.style.display=nt(),R(e.header,!1);return}rt(),e.header.style.display="none",R(e.header,!0)}};e.reapplyHistoryHostChrome=Oe;let nn=t=>{let n=e.body.style.display,r=e.footer.hidden,s=e.footer,y=e.header,b=e.header.style.display;Ie=y,tt=b,fe=()=>{fe=null,rt(),Ie=null,e.body.style.display=n,R(e.body,!1),s.hidden=r,R(s,!1),e.footer!==s&&(e.footer.hidden=!1,R(e.footer,!1)),y.style.display=b,R(y,!1),e.header!==y&&(e.header.style.display=e.config.layout?.showHeader===!1?"none":"",R(e.header,!1))},e.footer.parentNode?.insertBefore(t,e.footer),Oe()},J=null,Q=null,me=null,x=null,ot=()=>[e.header,e.panelElements.closeButtonWrapper,e.panelElements.clearChatButtonWrapper,e.body,e.footer],rn=52,ge=()=>e.config.features?.history?.rail?.collapsible!==!1,ee=()=>e.config.features?.history?.rail?.side==="right"?"right":"left",_e=200,De=400,Ne=t=>Math.min(De,Math.max(_e,Math.round(t))),on=()=>e.config.features?.history?.rail?.resizable===!0,se,sn=()=>{if(se===void 0&&(se=null,e.config.persistState!==!1))try{let t=Number(window.localStorage.getItem(`${e.currentKeyPrefix()}rail-width`));t&&(se=t)}catch{}return se},ae=()=>Ne(sn()??e.config.features?.history?.rail?.width??260),an=t=>{if(se=t,e.config.persistState!==!1)try{window.localStorage.setItem(`${e.currentKeyPrefix()}rail-width`,String(t))}catch{}},ve=()=>ge()&&e.config.features?.history?.rail?.collapsedBehavior==="overlay",C=!1,it=t=>{let n=D("img");return n.src=t,n.alt="",n.setAttribute("aria-hidden","true"),n},ln=()=>{let t=e.config.features?.history?.rail?.brand;if(!t)return;let n=!1,r;return s=>{if(t.render)try{return t.render({collapsed:s})??null}catch(y){return n||(n=!0,console.warn("[persona] history rail brand threw",y)),null}return r===void 0&&(t.iconUrl?r=it(t.iconUrl):r=t.icon?e.renderLucideIcon(t.icon,20):null),r?r.cloneNode(!0):null}},dn=()=>e.config.features?.history?.rail?.sections?.map(t=>{let n=!1,r=s=>{n||(n=!0,console.warn("[persona] history rail section threw",t.id,s))};return{id:t.id,title:t.title,placement:t.placement??"above-conversations",items:t.items.map(s=>{let y;return{id:s.id,label:s.label,badge:s.badge,iconNode:()=>{if(y!==void 0)return y;try{s.renderIcon?y=s.renderIcon()??null:s.iconUrl?y=it(s.iconUrl):y=s.icon?e.renderLucideIcon(s.icon,20):null}catch(b){r(b),y=null}return y},onSelect:()=>{try{s.onSelect()}catch(b){r(b)}}}})}})??[],un=t=>{let n=dn();for(let r of t)n.some(s=>s.id===r.id)?console.warn("[persona] duplicate history rail section id",r.id):n.push(r);return n.length?n:void 0},le=null,st=()=>`${e.currentKeyPrefix()}rail-collapsed`,ke=()=>{if(le===null&&(le=e.config.features?.history?.rail?.defaultCollapsed===!0,e.config.persistState!==!1))try{let t=window.localStorage.getItem(st());t&&(le=t==="1")}catch{}return le},We=t=>{if(le=t,e.config.persistState!==!1)try{window.localStorage.setItem(st(),t?"1":"0")}catch{}},de=()=>e.historyPresentation==="rail"&&ge()&&!ve()&&ke(),Be=()=>{},at=()=>{if(ve()){Be();return}We(!ke()),a?.view.setCollapsed(de()),e.applyRailChrome(),e.repinAnchoredMessage()},Fe=()=>{let t=e.config.features?.history?.rail?.collapseShortcut;return!t||!Ze(t)?null:{combo:t,hint:Bt(t),aria:Ft(t)}},cn=300,he="var(--persona-history-overlay-margin,8px)",P=null,W=null,Ce=0,B=null,te=null,X=!1,Ve=0,lt=()=>window.matchMedia?.("(pointer: coarse)").matches===!0,ne=()=>_()&&ve()&&(e.historyPresentation??Pe())==="rail",yn=()=>e.historyVisible&&!C,ue=()=>{te!==null&&clearTimeout(te),te=null},pn=()=>{e.loadHistoryView().catch(()=>{})},dt=()=>{ue(),C&&(te=setTimeout(()=>{te=null,!(X||!C)&&(B?.contains(document.activeElement)||A({restoreFocus:!1}))},cn))},fn=(t,n)=>{let r=B?.getBoundingClientRect();if(!r)return!1;let s=P?.getBoundingClientRect(),y=s?Math.min(s.top,r.top):r.top;return t>=r.left&&t<=r.right&&n>=y&&n<=r.bottom||!!s&&t>=s.left&&t<=s.right&&n>=s.top&&n<=s.bottom},ze=t=>{C&&(X=fn(t.clientX,t.clientY),X?ue():te===null&&dt())},ut=t=>{e.historyVisible||!ne()||(C=!0,ye({invoker:P,keyboard:t?.keyboard===!0}).then(()=>{e.historyVisible?!X&&document.activeElement!==P&&A():C=!1}))},ct=()=>{let t=ie?.querySelector('[data-persona-history-focus="collapse"]');t&&(t.setAttribute("aria-label",C?o.expandLabel:o.collapseLabel),t.setAttribute("aria-expanded",C?"false":"true"))},yt=()=>{We(!1);let t=a;if(!C||!t){ye({invoker:P});return}let n=document.activeElement===P;C=!1,be(),t.element.remove(),$e(t.element),ct(),n&&He(),e.repinAnchoredMessage(),$()},mn=()=>{We(!0),A()};Be=()=>{!e.historyVisible||C?yt():mn()};let gn=()=>{let t=Fe(),n=e.createHeaderIconButton({ariaLabel:o.expandLabel,iconName:"panel-left",wrapperClassName:"persona-relative persona-inline-flex persona-items-center persona-justify-center",extraClassName:"persona-rail-trigger",tooltip:!1,attrs:{"data-persona-rail-trigger":"","aria-controls":oe,...t?{"aria-keyshortcuts":t.aria}:{}}}),r=n.button;r.addEventListener("mouseenter",()=>{X=!0,ue(),!(lt()||Date.now()<Ve)&&ut()}),r.addEventListener("mouseleave",()=>{X=!1,Ve=0,dt()}),r.addEventListener("focus",()=>{e.historyVisible||pn()}),r.addEventListener("click",s=>{_()&&(s.detail!==0&&lt()&&!e.historyVisible?ut():yt())}),P=r,W=n.wrapper},ce=()=>{if(W&&!W.isConnected&&(W=null,P=null),!ne()){W?.remove(),W=null,P=null;return}P||gn();let t=W,n=P;if(!t||!n)return;let r=ee()!=="right"?e.header.firstChild:null;(r??e.header.lastChild)!==t&&e.header.insertBefore(t,r),t.style.display=yn()||Ce>0?"none":"",n.setAttribute("aria-label",o.expandLabel),n.setAttribute("aria-expanded",e.historyVisible?"true":"false"),B&&e.applyRailChrome()},pt=t=>{if(!C)return;let n=t.target;n instanceof Node&&(B?.contains(n)||W?.contains(n)||n instanceof Element&&n.closest('.persona-dropdown-menu,[role="alertdialog"]')||A({restoreFocus:!1}))};document.addEventListener("pointerdown",pt,!0),e.destroyCallbacks.push(()=>{document.removeEventListener("pointerdown",pt,!0),document.removeEventListener("pointermove",ze),re?.(),ue()});let Ke=null,re=null,ft=16,mt=t=>{an(Ne(t)),e.applyRailChrome(),e.repinAnchoredMessage()},vn=()=>{let t=D("div","persona-rail-resizer");return t.tabIndex=0,t.setAttribute("role","separator"),t.setAttribute("aria-orientation","vertical"),t.setAttribute("aria-valuemin",String(_e)),t.setAttribute("aria-valuemax",String(De)),t.addEventListener("pointerdown",n=>{let r=Q;if(!r||n.button!==0)return;n.preventDefault(),re?.();let s=n.clientX,y=r.getBoundingClientRect().width||ae(),b=ee()==="right"?-1:1,H=y,v=e.mount.ownerDocument;r.style.transition="none";let O=M=>{H=Ne(y+b*(M.clientX-s)),r.style.flex=`0 0 ${H}px`,t.setAttribute("aria-valuenow",String(H))},T=()=>{re=null,v.removeEventListener("pointermove",O),v.removeEventListener("pointerup",T),v.removeEventListener("pointercancel",T),r.style.removeProperty("transition");try{t.releasePointerCapture(n.pointerId)}catch{}mt(H)};re=T,v.addEventListener("pointermove",O),v.addEventListener("pointerup",T),v.addEventListener("pointercancel",T);try{t.setPointerCapture(n.pointerId)}catch{}}),t.addEventListener("keydown",n=>{let r=ee()==="right"?-ft:ft,s=ae(),y=n.key==="ArrowRight"?s+r:n.key==="ArrowLeft"?s-r:n.key==="Home"?_e:n.key==="End"?De:null;y!==null&&(n.preventDefault(),mt(y))}),t},hn=(t,n)=>{if(!on()||de()){re?.(),Ke?.remove();return}let r=Ke??vn();Ke=r,r.setAttribute("aria-label",o.resizeLabel),r.setAttribute("aria-valuenow",String(ae())),r.nextElementSibling!==n&&t.insertBefore(r,n)};e.applyRailChrome=()=>{a?.view.setRailSide(ee());let t=ee()==="right",n=B;if(n){let v=P?P.getBoundingClientRect().bottom-e.container.getBoundingClientRect().top:0;n.style.top=`calc(${Math.max(0,Math.round(v))}px + ${he})`,n.style.width=`${ae()}px`,n.style.left=t?"":he,n.style.right=t?he:""}let r=Q,s=J,y=me;if(!r||!s||!y)return;r.style.flex=`0 0 ${de()?rn:ae()}px`;let b="1px solid var(--persona-divider,#e5e7eb)";r.style.borderRight=t?"":b,r.style.borderLeft=t?b:"";let H=t?y:r;s.firstElementChild!==H&&s.append(H,t?r:y),hn(s,t?r:y)};let gt=t=>{if(x&&Q){x.replaceWith(t),x=null,e.applyRailChrome();return}let n=D("div","persona-history-rail-shell");n.style.cssText="display:flex;flex-direction:row;flex:1 1 auto;min-height:0";let r=D("div","persona-history-rail-conversation");r.style.cssText="display:flex;flex-direction:column;flex:1 1 auto;min-width:0;min-height:0;position:relative";let s=D("div","persona-history-rail-host");s.style.cssText="display:flex;min-height:0;overflow:hidden",e.container.insertBefore(n,e.header.parentNode===e.container?e.header:e.body);for(let y of ot())y?.parentNode===e.container&&r.appendChild(y);n.append(s,r),s.appendChild(t),J=n,Q=s,me=r,e.applyRailChrome()},Cn=()=>{if(J)return;let t=D("div","persona-history-rail-placeholder");t.style.cssText="flex:1 1 auto;min-height:0",x=t,gt(t),e.repinAnchoredMessage()},vt=()=>{x&&(be(),e.repinAnchoredMessage())},bn=t=>{let n=D("div","persona-history-rail-overlay");n.style.cssText=`position:absolute;bottom:${he};display:flex;overflow:hidden;z-index:${Vt-1};border-radius:var(--persona-history-overlay-radius,16px);background:var(--persona-history-overlay-bg,var(--persona-container,#f7f7f8));box-shadow:var(--persona-history-overlay-shadow,0 12px 40px rgba(0,0,0,0.25))`,e.container.style.position="relative",e.container.appendChild(n),n.appendChild(t),document.addEventListener("pointermove",ze),B=n,e.applyRailChrome(),ct()},be=()=>{fe?.(),B&&(X&&(Ve=Date.now()+150),document.removeEventListener("pointermove",ze),B.remove(),B=null);let t=J;if(t){re?.();for(let n of ot())n&&t.contains(n)&&e.container.insertBefore(n,t);t.remove(),J=null,Q=null,me=null,x=null}},ht=t=>{ie=t,t.id=oe,t.style.flex="1 1 auto",t.style.minHeight="0"},$e=t=>{ht(t),(e.historyPresentation!=="rail"||C)&&vt(),e.historyPresentation!=="rail"?nn(t):C?bn(t):gt(t)},Hn=()=>{if(ce(),Rt(),!e.historyVisible||!a)return;let t=Pe();if(t===e.historyPresentation)return;let n=document.activeElement,r=n instanceof HTMLElement&&(a.element.contains(n)||E?.contains(n)===!0)?n:null;be(),a.element.remove(),a.view.setHeaderPlacement("inline"),e.historyPresentation=t,a.view.setPresentation(t),a.view.setCollapsed(de()),a.requestRender(),a.element.isConnected||$e(a.element),r?.isConnected?r.focus():He(),e.syncScrollToBottomButton(),e.repinAnchoredMessage(),$()},Ct=(t,n)=>E?.querySelector(n)??t.querySelector(n),He=()=>{let t=a?.element??ie;if(!t)return;let n=Ct(t,'[data-persona-history-focus="close"],[data-persona-history-focus="collapse"]');if(n){n.focus();return}let r=Ct(t,".persona-history-title")??t;r.tabIndex=-1,r.focus()},ye=async t=>{if(!_()||e.historyVisible)return;let n=l;if(!n)return;if(!C&&ne()&&ke()){ce();return}Se();let r=++U;d=t?.returnSurface??"conversation",f=t?.invoker??g;let s=ne()&&!C;s&&(Ce+=1,ce(),Cn());let y;try{y=await e.loadHistoryView()}catch{e.announceHistory(o.openHistoryLabel),s&&(Ce-=1,r===U&&(vt(),ce()));return}if(s&&(Ce-=1),r!==U||e.historyVisible)return;m={scope:c()},e.historyPresentation=Pe(),e.historyVisible=!0;let b=e.historyPresentation==="panel"&&e.config.layout?.showHeader!==!1&&e.header.style.display!=="none"?"external":"inline",H=e.config.features?.history?.rowAvatar,v=Fe(),O=v?{hint:v.hint,aria:v.aria}:null,T={provider:n,context:m,targetId:k(),presentation:e.historyPresentation,collapsible:ge(),collapsed:de(),railSide:ee(),renderRailHeader:e.config.features?.history?.rail?.renderHeader,railBrand:ln(),onToggleCollapse:at,...O?{collapseShortcut:O}:{},headerPlacement:b,showScopeStatus:e.config.features?.history?.showScopeStatus!==!1,showDelete:e.config.features?.history?.showDelete!==!1,showDeleteAll:e.config.features?.history?.showDeleteAll!==!1,...e.config.features?.history?.listActions?.length?{listActions:e.config.features.history.listActions}:{},rowAvatar:H===!1?!1:typeof H=="string"?H:e.config.launcher?.iconUrl,activeConversationId:e.session.getActiveConversationId(),...e.config.features?.history?.grouping?{grouping:e.config.features.history.grouping}:{},...e.config.features?.history?.copy?{copy:e.config.features.history.copy}:{},...e.config.features?.history?.pageSize!==void 0?{pageSize:e.config.features.history.pageSize}:{},onSelect:M=>qe(M,{focusComposer:!0}).catch(()=>{}),onActiveConversationChange:M=>e.setActiveConversationSummary(M),attachTooltip:e.attachTooltip,onStartNew:()=>Et({focusComposer:!0}),onClose:()=>A(),onRequestDeleteConversation:M=>Lt(M),onRequestClearHistory:()=>Mn(),...n.resetDevice?{onRequestResetIdentity:()=>Ln()}:{}};a=_t({plugins:e.plugins,config:e.config,getPresentation:()=>e.historyPresentation??"panel",getReturnSurface:()=>d,close:()=>A(),createView:({slots:M,renderDom:Le,onModelChange:In,railSections:On})=>(Y=y.createHistoryView({...T,railSections:un(On),slots:M,renderDom:Le,onModelChange:In,onAnnounce:e.announceHistory}),Y),onElementChanged:(M,Le)=>{if(!Le?.isConnected)return $e(M);ht(M),Le.replaceWith(M),Oe()}}),a.view.setNewConversationRequired(e.historySessionState.recovery==="new_conversation_required"),t?.focus!==!1&&(e.historyPresentation!=="rail"||t?.keyboard===!0)&&He(),e.syncScrollToBottomButton(),e.repinAnchoredMessage(),$(),e.eventBus.emit("history:opened",{presentation:e.historyPresentation,returnSurface:d,timestamp:Date.now()})},Se=()=>{},A=t=>{if(!e.historyVisible)return;U+=1;let n=d,r=f,s=a,y=t?.restoreFocus!==!1;e.historyVisible=!1;let b=!1,H=null,v=()=>{if(!b){if(b=!0,Se=()=>{},H!==null&&clearTimeout(H),C=!1,ue(),be(),s?.dispose(),s?.view.destroy(),s?.element.remove(),a===s&&(a=null,Y=null,ie=null,e.historyPresentation=null,m=null,f=null),e.syncScrollToBottomButton(),e.repinAnchoredMessage(),$(),y){let T=r??g;T?.isConnected?T.focus():e.maybeFocusInput()}e.eventBus.emit("history:closed",{returnSurface:n,timestamp:Date.now()})}},O=s&&s.element===s.view.element?s.view.playExit():null;if(!O){v();return}Se=v,H=setTimeout(v,250),O.then(v)},bt=t=>{if(!(t.key!=="Escape"||!e.historyVisible||!a)){if(e.historyPresentation==="rail"){let n=t.target;if(!(n instanceof Node)||!(a.element.contains(n)||C&&W?.contains(n)===!0))return}t.preventDefault(),t.stopPropagation(),A()}};e.container.addEventListener("keydown",bt),e.destroyCallbacks.push(()=>e.container.removeEventListener("keydown",bt));let we=0,Sn=250,Ee=null,Ae=()=>{Ee&&clearTimeout(Ee),Ee=null};e.destroyCallbacks.push(Ae);let Ht=()=>{Ae();let t=e.conversationOpenPendingEl;t&&(e.conversationOpenTakeover=!0,t.hidden=!1,e.messagesWrapper.style.display="none",e.updateWelcome())},Te=()=>{we+=1,Ae(),e.conversationOpenPendingEl&&(e.conversationOpenPendingEl.remove(),e.conversationOpenPendingEl=null,e.conversationOpenTakeover=!1,e.messagesWrapper.style.removeProperty("display"),R(e.footer,!1),e.updateWelcome())},wn=()=>{try{if(window.matchMedia?.("(prefers-reduced-motion: reduce)")?.matches)return;e.messagesWrapper.animate([{opacity:0},{opacity:1}],{duration:150,easing:"ease-out"})}catch{}},Ue=(t,n)=>V("div",{className:Dt("persona-conversation-loading-bubble",n&&"persona-conversation-loading-bubble--trailing"),attrs:{"aria-hidden":"true"},style:{width:t}}),St=()=>V("div",{className:"persona-conversation-loading-body"},Ue("58%",!1),Ue("72%",!0),Ue("44%",!1)),wt=t=>{e.conversationOpenPendingEl?.remove(),e.conversationOpenPendingEl=t,t.hidden=!e.conversationOpenTakeover,e.body.insertBefore(t,e.messagesWrapper),Ae(),e.conversationOpenTakeover||(Ee=setTimeout(Ht,Sn)),R(e.footer,!0)},En=()=>{let t={config:e.config,streaming:!1,location:"conversation-open",defaultRenderer:St},n=null,r=e.plugins.find(s=>s.renderLoadingIndicator);r?.renderLoadingIndicator&&(n=r.renderLoadingIndicator(t)),n===null&&e.config.loadingIndicator?.render&&(n=e.config.loadingIndicator.render(t)),wt(V("div",{className:"persona-conversation-loading",attrs:{role:"status","aria-label":o.openConversationLoadingLabel}},n??St()))},An=t=>{let n=()=>{qe(t,{focusComposer:!0}).catch(()=>{})},r=_()?()=>{Te(),ye()}:void 0,s=(v,O)=>{let T=V("button",{className:"persona-conversation-loading-error-action",attrs:{type:"button"},text:v});return T.addEventListener("click",O),T},y=()=>V("div",{className:"persona-conversation-loading-error-body"},V("p",{className:"persona-conversation-loading-error-title",text:o.openConversationErrorTitle}),V("div",{className:"persona-conversation-loading-error-actions"},s(o.openConversationRetryLabel,n),r?s(o.openConversationBackLabel,r):null)),b=Object.freeze({conversationId:t,config:e.config,copy:Object.freeze({title:o.openConversationErrorTitle,retryLabel:o.openConversationRetryLabel,backLabel:o.openConversationBackLabel}),retry:n,...r?{back:r}:{},defaultRenderer:y}),H=null;for(let v of e.plugins)if(v.renderHistoryOpenError){try{H=v.renderHistoryOpenError(b)}catch(O){console.warn("[persona] renderHistoryOpenError threw",O),H=null}if(H)break}wt(V("div",{className:"persona-conversation-loading-error",attrs:{role:"alert"}},H??y())),Ht()};e.eventBus.on("history:closed",()=>{e.conversationOpenPendingEl&&R(e.footer,!0)});let qe=async(t,{focusComposer:n=!1}={})=>{let r=h(),s=!!a;a?.view.setActiveConversationId(t),Te();let y=we;En(),e.historyVisible&&(e.historyPresentation==="panel"||C)&&A({restoreFocus:!1}),e.suppressScrollSend=!0;try{await e.session.openConversation(t,{scope:r})}catch(b){throw y===we&&An(t),b}finally{e.suppressScrollSend=!1}y===we&&(Te(),e.messageCache.clear(),e.resetAnchorState(),e.resumeAutoScroll(),e.restoreScrollPosition()||e.jumpToBottomInstant(),wn(),K(),s||e.setActiveConversationSummary(null),e.eventBus.emit("history:conversationOpened",{conversationId:t,title:e.activeConversationTitle,scope:r,timestamp:Date.now()}),n&&e.maybeFocusInput())},Et=async({focusComposer:t=!1}={})=>{Te(),await e.session.startNewConversation({scope:h()}),e.setActiveConversationSummary(null),e.messageCache.clear(),e.resetAnchorState(),e.resumeAutoScroll(),e.jumpToBottomInstant(),K();let n=e.session.getActiveConversationId();a?.view.setActiveConversationId(n),e.eventBus.emit("history:conversationStarted",{conversationId:n,timestamp:Date.now()}),e.historyVisible&&(e.historyPresentation==="panel"||C)&&A({restoreFocus:!1}),t&&e.maybeFocusInput()},Tn=async(t,n)=>{let r=await e.session.updateConversation(t,{...n,...n.title!==void 0?{title:n.title.trim()}:{}});return a?.view.applyConversationSummary(r),!a&&t===e.session.getActiveConversationId()&&e.setActiveConversationSummary(r),r},At=async t=>{let n=h(),r=e.session.getActiveConversationId()===t;await e.session.deleteConversation(t,{scope:n}),a?.view.removeConversationSummary(t),r&&(e.setActiveConversationSummary(null),e.messageCache.clear(),e.resetAnchorState(),e.resumeAutoScroll(),K()),e.eventBus.emit("history:conversationDeleted",{conversationId:t,scope:n,wasActive:r,timestamp:Date.now()})},Tt=async t=>{let n=t?.scope??h(),r=t?.allTargets?null:t?.targetId??k(),s=await e.session.clearConversationHistory({...r?{targetId:r}:{},scope:n});return e.setActiveConversationSummary(null),e.messageCache.clear(),e.resetAnchorState(),e.resumeAutoScroll(),K(),e.eventBus.emit("history:cleared",{deleted:s.deleted,scope:n,targetId:r,timestamp:Date.now()}),s},Mt=async()=>{if(!l?.resetDevice)throw new Error("[Persona] resetHistoryIdentity() requires a history provider that can reset this device");let t=!1;try{t=(await e.session.resetHistoryDevice()).remoteRevocationConfirmed}finally{e.setActiveConversationSummary(null),e.session.clearArtifacts(),e.messageCache.clear(),e.lastAppliedMessages=null,e.config.clearStoredSessionId?.(),e.config.clearStoredConversationId?.(),e.persistentMetadata={},e.actionManager.syncFromMetadata();let n=e.storageAdapter;n?.clear&&e.runStorageMutation(()=>n.clear(),"[AgentWidget] Failed to clear storage adapter:"),e.resetAnchorState(),e.resumeAutoScroll(),K(),A({restoreFocus:!1}),e.maybeFocusInput(),e.open||e.launcherSurfaceInstance?.launcher.element.focus()}return e.announceHistory(t?o.identityResetNotice:o.identityResetUnconfirmedNotice),e.eventBus.emit("history:identityReset",{remoteRevocationConfirmed:t,timestamp:Date.now()}),{remoteRevocationConfirmed:t}},je=()=>e.artifactSplitRoot?e.panel:e.container,Ye=async t=>{let n=await e.loadHistoryView().catch(()=>null);return typeof n?.showHistoryConfirm=="function"?n.showHistoryConfirm(t):window.confirm(`${t.title}
2
+
3
+ ${t.description}`)},Lt=async t=>await Ye({host:je(),title:o.deleteConversationConfirmTitle,description:o.deleteConversationConfirm,confirmLabel:o.deleteConversationConfirmLabel,cancelLabel:o.confirmCancelLabel})?(await At(t),"deleted"):"cancelled",Mn=async()=>{let t=h()==="verified-user";return await Ye({host:je(),title:o.clearHistoryConfirmTitle,description:t?o.clearHistoryVerifiedConfirm:o.clearHistoryConfirm,confirmLabel:o.clearHistoryConfirmLabel,cancelLabel:o.confirmCancelLabel})?(await Tt(),"cleared"):"cancelled"},Ln=async()=>{if(!await Ye({host:je(),title:o.resetIdentityConfirmTitle,description:o.resetIdentityConfirm,confirmLabel:o.resetIdentityConfirmLabel,cancelLabel:o.confirmCancelLabel}))return{outcome:"cancelled"};let{remoteRevocationConfirmed:n}=await Mt();return{outcome:"reset",remoteRevocationConfirmed:n}},I=D("button","persona-history-earlier");I.type="button",I.textContent=o.showEarlierMessagesLabel,I.setAttribute("data-persona-history-earlier",""),Object.assign(I.style,{alignSelf:"center",minHeight:"44px",padding:"0 16px",borderRadius:"999px",border:"1px solid var(--persona-border, rgba(0,0,0,0.12))",background:"transparent",color:"inherit",font:"inherit",cursor:"pointer",flexShrink:"0"});let K=()=>{if(!(_()&&!!e.historySessionState.nextMessageCursor&&!!e.session.getActiveConversationId())){I.remove();return}I.textContent=o.showEarlierMessagesLabel,I.parentNode!==e.body&&e.body.insertBefore(I,e.body.firstChild)};I.addEventListener("click",()=>{let t=e.session.getActiveConversationId(),n=e.historySessionState.nextMessageCursor;if(!t||!n||I.disabled)return;I.disabled=!0;let r=e.body.scrollHeight,s=e.body.scrollTop;e.session.loadOlderMessages(t,n,{scope:h()}).then(()=>{e.body.scrollTop=s+(e.body.scrollHeight-r),e.repinAnchoredMessage()}).catch(()=>{}).finally(()=>{I.disabled=!1,K()})});let Rn=()=>{let t=e.createHeaderIconButton({ariaLabel:o.openHistoryLabel,iconName:"history",wrapperClassName:"persona-relative persona-inline-flex persona-items-center persona-justify-center",extraClassName:"persona-history-toggle",attrs:{"data-persona-history-toggle":""}});return t.button.addEventListener("click",n=>{if(!(!_()||q())){if(e.historyVisible){A();return}ye({invoker:t.button,keyboard:n.detail===0})}}),t},Rt=()=>{if(!_()){S?.remove(),g=null,S=null;return}if(S&&!S.isConnected&&(g=null,S=null),!g&&e.header){let s=Rn();g=s.button,S=s.wrapper;let y=e.panelElements.clearChatButtonWrapper||e.panelElements.closeButtonWrapper;y?.parentNode&&e.header.contains(y)?y.parentNode.insertBefore(S,y):e.header.appendChild(S)}if(!g||!S)return;let t=ne()||e.historyVisible&&e.historyPresentation==="rail";if(S.style.display=t?"none":"",t){document.activeElement===g&&He();return}let n=q();g.disabled=n,g.setAttribute("aria-disabled",n?"true":"false");let r=n?o.openHistoryBusyLabel:o.openHistoryLabel;g.setAttribute("aria-label",r),(e.config.features?.history?.presentation??"panel")==="panel"?(g.removeAttribute("aria-expanded"),g.removeAttribute("aria-controls")):(g.setAttribute("aria-expanded",e.historyVisible?"true":"false"),g.setAttribute("aria-controls",oe))},Me=!1,Pn=()=>{let t=e.panelElements.clearChatButton;if(t){if(_()){Me||(w=t.getAttribute("aria-label")??"",Me=!0),t.setAttribute("aria-label",o.newConversationLabel),t.removeAttribute("title");return}Me&&(Me=!1,w&&t.setAttribute("aria-label",w))}},$=()=>{o=Xe(e.config.features?.history?.copy),Rt(),ce(),Pn(),K()};return e.historyChromeSync=$,et(),$(),e.destroyCallbacks.push(()=>{N?.(),G?.(),U+=1,Se(),a?.dispose(),a?.view.destroy(),a=null}),{historyAvailable:_,historyScope:c,installHistoryProvider:et,syncHistoryChromeImpl:$,syncHistoryPresentation:Hn,syncEarlierMessagesPill:K,openHistory:ye,closeHistory:A,openHistoryConversation:qe,startNewConversation:Et,updateHistoryConversation:Tn,deleteHistoryConversation:At,requestDeleteConversation:Lt,clearConversationHistory:Tt,resetHistoryIdentity:Mt,railCollapseShortcut:Fe,railCollapsible:ge,railTriggerApplies:ne,railOverlayMode:ve,toggleRailCollapsed:at,toggleRailPinned:()=>Be(),get historyProvider(){return l},get historySurface(){return a},get railShell(){return J},get railHost(){return Q},get railColumn(){return me}}};export{ur as createHistoryShell};
@@ -1,4 +1,4 @@
1
- import{b as ye,c as ot}from"./chunk-EFJBUH5F.js";import{a as rt}from"./chunk-Q735PSZL.js";import{c as n,d as T}from"./chunk-76IELU7F.js";function it(){let e=document.createElement("div");e.className="persona-history-sr-only",e.setAttribute("role","status"),e.setAttribute("aria-live","polite"),e.setAttribute("aria-atomic","true"),e.setAttribute("data-persona-history-live-region","");let r;return{element:e,announce(i){r!==void 0&&clearTimeout(r),e.textContent="",r=setTimeout(()=>{r=void 0,e.textContent=i},0)},destroy(){r!==void 0&&clearTimeout(r),e.remove()}}}var nt=`
1
+ import{a as it}from"./chunk-MXUTS3LB.js";import{b as ue}from"./chunk-4HPTPUC6.js";import{a as ot}from"./chunk-Q735PSZL.js";import{c as n,d as E}from"./chunk-76IELU7F.js";function nt(){let e=document.createElement("div");e.className="persona-history-sr-only",e.setAttribute("role","status"),e.setAttribute("aria-live","polite"),e.setAttribute("aria-atomic","true"),e.setAttribute("data-persona-history-live-region","");let r;return{element:e,announce(i){r!==void 0&&clearTimeout(r),e.textContent="",r=setTimeout(()=>{r=void 0,e.textContent=i},0)},destroy(){r!==void 0&&clearTimeout(r),e.remove()}}}var st=`
2
2
  .persona-history-view {
3
3
  --persona-history-surface-bg: var(--persona-surface, #ffffff);
4
4
  --persona-history-topbar-bg: var(--persona-header-bg, var(--persona-surface, #ffffff));
@@ -895,4 +895,4 @@ import{b as ye,c as ot}from"./chunk-EFJBUH5F.js";import{a as rt}from"./chunk-Q73
895
895
  .persona-history-view .persona-history-skeleton-bar { animation: none; }
896
896
  .persona-history-rail-host { transition: none; }
897
897
  }
898
- `;var ue={...ot,emptyTitle:"No conversations yet",emptyDescription:"Start a conversation and it will show up here.",errorTitle:"Could not load conversations",errorDescription:"Something went wrong. Please try again.",retryLabel:"Retry",rateLimitedTitle:"Too many requests",rateLimitedDescription:"Please wait a moment before trying again.",groupStarred:"Starred",groupToday:"Today",groupYesterday:"Yesterday",groupPrevious7Days:"Previous 7 days",groupPrevious30Days:"Previous 30 days",groupMonthYear:"{month} {year}",browserOnlyTitle:"On this device",browserOnlyDescription:"Another browser or device keeps its own separate history.",verifyingTitle:"Checking your account",verifyingDescription:"Looking for messages linked to your account.",verifiedTitle:"Available across signed-in devices",verifiedDescription:"This list refreshes when the chat opens rather than syncing live.",authenticationRequiredTitle:"Sign in to see your messages",authenticationRequiredDescription:"Your session expired. Sign in again to load account history.",identityProviderFailedTitle:"Account history is unavailable",identityProviderFailedDescription:"We could not verify your account, so account history is not shown here.",proofNotAdmittedTitle:"Account history is unavailable",proofNotAdmittedDescription:"This assistant is not set up to accept your account identity.",retryIdentityLabel:"Try again",backLabel:"Back to conversation",closeLabel:"Close conversation list",loadingLabel:"Loading conversations",loadMoreLabel:"Load more",loadingMoreLabel:"Loading more conversations",conversationsTitle:"Conversations",rowActionsLabel:"Conversation options",listOptionsLabel:"Conversation options",deleteConversationLabel:"Delete",clearHistoryLabel:"Delete all conversations",resetIdentityLabel:"Forget this device",messageCountLabel:"{count} messages",messageCountLabelOne:"1 message",conversationRemovedNotice:"Conversation deleted.",historyClearedNotice:"All conversations were deleted.",unavailableTitle:"Conversation history is unavailable",unavailableDescription:"Try again later.",newConversationRequiredTitle:"Start a new conversation",newConversationRequiredDescription:"The previous conversation is gone. Start a new one to keep chatting.",rateLimitedWaitDescription:"You can try again in {seconds} seconds.",openFailedLabel:"Could not open that conversation.",deleteFailedLabel:"Could not delete that conversation.",relativeNow:"now",relativeMinutes:"{value}m",relativeHours:"{value}h",relativeDays:"{value}d",relativeWeeks:"{value}w",relativeYears:"{value}y"};function he(e){if(!e)return ue;let r={...ue};for(let[i,s]of Object.entries(e))typeof s=="string"&&s.length>0&&(r[i]=s);return r}function A(e,r){return e.replace(/\{(\w+)\}/g,(i,s)=>s in r?String(r[s]):i)}var Pe=864e5;function Vt(e){let r=new Date(e);return r.setHours(0,0,0,0),r.getTime()}function _e(e,r){let i=Date.parse(e);return Number.isFinite(i)?i:r}function Ot(e,r){let i=_e(e,r),s=Vt(r);if(i>=s)return"today";if(i>=s-Pe)return"yesterday";if(i>=s-7*Pe)return"previous-7-days";if(i>=s-30*Pe)return"previous-30-days";let l=new Date(i);return`month:${l.getFullYear()}-${l.getMonth()}`}function qt(e,r,i,s){if(e==="today")return s.groupToday;if(e==="yesterday")return s.groupYesterday;if(e==="previous-7-days")return s.groupPrevious7Days;if(e==="previous-30-days")return s.groupPrevious30Days;let l=new Date(_e(r,i));return A(s.groupMonthYear,{month:l.toLocaleString(void 0,{month:"long"}),year:l.getFullYear()})}function st(e,r,i,s="time"){let l=e.filter(h=>h.starred),p=l.length>0?[{key:"starred",label:i.groupStarred,items:l}]:[];if(s==="none"){let h=e.filter(y=>!y.starred);return h.length>0&&p.push({key:"recent",label:i.conversationsTitle,items:h}),p}for(let h of e){if(h.starred)continue;let y=Ot(h.updatedAt,r),u=p[p.length-1];if(u&&u.key===y){u.items.push(h);continue}p.push({key:y,label:qt(y,h.updatedAt,r,i),items:[h]})}return p}function at(e,r,i){let s=Math.max(0,r-_e(e,r)),l=Math.floor(s/6e4);if(l<1)return i.relativeNow;if(l<60)return A(i.relativeMinutes,{value:l});let p=Math.floor(l/60);if(p<24)return A(i.relativeHours,{value:p});let h=Math.floor(p/24);if(h<7)return A(i.relativeDays,{value:h});let y=Math.floor(h/7);return h<365?A(i.relativeWeeks,{value:y}):A(i.relativeYears,{value:Math.floor(h/365)})}function lt(e,r){return e===1?r.messageCountLabelOne:A(r.messageCountLabel,{count:e})}var me="http://www.w3.org/2000/svg",Ft={"arrow-left":["m12 19-7-7 7-7","M19 12H5"],plus:["M5 12h14","M12 5v14"],star:["m12 2 2.9 6.2 6.8.7-5.1 4.5 1.4 6.6-6-3.4-6 3.4 1.4-6.6-5.1-4.5 6.8-.7z"],x:["M18 6 6 18","m6 6 12 12"],"panel-left":["M9 3v18"],monitor:["M8 21h8","M12 17v4"],ellipsis:[]},zt={"panel-left":[3,3,18,18],monitor:[2,3,20,14]};function _(e,r=20){let i=document.createElementNS(me,"svg");if(i.setAttribute("width",String(r)),i.setAttribute("height",String(r)),i.setAttribute("viewBox","0 0 24 24"),i.setAttribute("fill","none"),i.setAttribute("stroke","currentColor"),i.setAttribute("stroke-width","2"),i.setAttribute("stroke-linecap","round"),i.setAttribute("stroke-linejoin","round"),i.setAttribute("aria-hidden","true"),i.setAttribute("focusable","false"),e==="ellipsis"){for(let l of[12,19,5]){let p=document.createElementNS(me,"circle");p.setAttribute("cx",String(l)),p.setAttribute("cy","12"),p.setAttribute("r","1"),i.appendChild(p)}return i}let s=zt[e];if(s){let l=document.createElementNS(me,"rect");l.setAttribute("x",String(s[0])),l.setAttribute("y",String(s[1])),l.setAttribute("width",String(s[2])),l.setAttribute("height",String(s[3])),l.setAttribute("rx","2"),i.appendChild(l)}for(let l of Ft[e]){let p=document.createElementNS(me,"path");p.setAttribute("d",l),i.appendChild(p)}return i}var $t=/^(https?:|\/|data:)/i;function Kt(e){let r=n("span",{className:"persona-history-row-avatar",attrs:{"aria-hidden":"true"}});return $t.test(e)?r.appendChild(n("img",{attrs:{src:e,alt:"",loading:"lazy"}})):r.textContent=e,r}var Bt=e=>`row:${e}`,Wt=e=>`menu:${e}`,te=e=>`menu-item:${e}`;function pt(e){let{conversation:r,copy:i,busy:s,pending:l}=e,p=s||l!==null,h=r.title.trim().length>0,y=r.starred?(()=>{let M=_("star",11);return M.setAttribute("fill","currentColor"),M.setAttribute("stroke-width","1"),n("span",{className:"persona-history-row-star"},M,n("span",{className:"persona-history-sr-only",text:i.groupStarred}))})():null,u=n("div",{className:"persona-history-row-head"},n("span",{className:"persona-history-row-title persona-history-truncate",text:h?r.title:r.preview??""}),y,n("time",{className:"persona-history-row-time",attrs:{datetime:r.updatedAt},text:at(r.updatedAt,e.nowMs,i)})),S=h&&r.preview?n("span",{className:"persona-history-row-preview persona-history-truncate",text:r.preview}):null,b=n("button",{className:T("persona-history-row",e.active&&"persona-history-row--active",l&&`persona-history-row--${l}`),attrs:{type:"button","data-persona-history-focus":Bt(r.id),"data-persona-history-conversation":r.id,...e.active?{"aria-current":"page"}:{},...p?{"aria-disabled":"true"}:{},...l?{"aria-busy":"true"}:{}}},e.avatar?Kt(e.avatar):null,n("div",{className:"persona-history-row-body"},u,S,n("span",{className:"persona-history-row-count persona-history-sr-only",text:lt(r.messageCount,i)})));b.addEventListener("click",()=>{p||e.onOpen()});let oe=e.showDelete?Ie({className:"persona-history-row-menu-button",label:`${i.rowActionsLabel}: ${r.title}`,focusKey:Wt(r.id),open:e.menuOpen,inert:p,onToggle:e.onToggleMenu}):null;return n("li",{className:T("persona-history-item",!e.showDelete&&"persona-history-item--no-menu"),attrs:{"data-persona-history-item":r.id}},b,oe,e.menuOpen&&e.showDelete?Yt(e):null,e.error?Gt(e.error,i,r.id):null)}function Yt(e){let{conversation:r,copy:i}=e;return Ve({label:`${i.rowActionsLabel}: ${r.title}`,items:[{label:i.deleteConversationLabel,focusKey:te(r.id),danger:!0,onSelect:e.onDelete}],onCloseMenu:e.onCloseMenu})}function Ie(e){let r=n("button",{className:T("persona-history-icon-button",e.className),attrs:{type:"button","aria-label":e.label,"aria-haspopup":"menu","aria-expanded":e.open?"true":"false","data-persona-history-focus":e.focusKey,...e.inert?{"aria-disabled":"true"}:{}}});r.appendChild(_("ellipsis",e.iconSize));let i=()=>r.getAttribute("aria-disabled")==="true";return r.addEventListener("click",s=>{s.stopPropagation(),!i()&&e.onToggle()}),r.addEventListener("keydown",s=>{s.key!=="ArrowDown"&&s.key!=="ArrowUp"||(s.preventDefault(),!(i()||r.getAttribute("aria-expanded")==="true")&&e.onToggle())}),r}function Ve(e){let r=n("div",{className:"persona-history-menu",attrs:{role:"menu","aria-label":e.label}});for(let i of e.items){let s=n("button",{className:T("persona-history-menu-item",i.danger&&"persona-history-menu-item--danger"),text:i.label,attrs:{type:"button",role:"menuitem",tabindex:"0","data-persona-history-focus":i.focusKey}});s.addEventListener("click",()=>{e.onCloseMenu(),i.onSelect()}),r.appendChild(s)}return r.addEventListener("keydown",i=>{let s=Array.from(r.querySelectorAll('[role="menuitem"]'));if(s.length===0)return;let l=s.indexOf(document.activeElement);if(i.key==="Tab"){e.onCloseMenu({restoreFocus:!0});return}if(i.key==="ArrowDown"){i.preventDefault(),s[(l+1+s.length)%s.length]?.focus();return}if(i.key==="ArrowUp"){i.preventDefault(),s[(l-1+s.length)%s.length]?.focus();return}if(i.key==="Home"){i.preventDefault(),s[0]?.focus();return}i.key==="End"&&(i.preventDefault(),s[s.length-1]?.focus())}),r}function Gt(e,r,i){let s=n("button",{className:"persona-history-secondary persona-history-state-action",text:r.retryLabel,attrs:{type:"button","data-persona-history-focus":`row-retry:${i}`}});return s.addEventListener("click",e.retry),n("div",{className:"persona-history-row-error",attrs:{role:"alert"}},n("span",{text:e.message}),s)}function jt(e){switch(e){case"authentication_failed":case"authentication_required":case"identity_provider_failed":case"proof_not_admitted":case"unsupported_scope":case"unavailable":return e;default:return"unknown"}}function dt(e){if(ye(e)){if(e.code==="rate_limited")return{kind:"rate_limited",retryAfterSeconds:e.retryAfterSeconds??0};let r=jt(e.code);return{kind:"error",reason:r,retryable:r!=="unsupported_scope"}}return{kind:"error",reason:"unknown",retryable:!0}}function Ut(e,r){switch(e.state){case"authentication_required":return{title:r.authenticationRequiredTitle,description:r.authenticationRequiredDescription};case"identity_provider_failed":return{title:r.identityProviderFailedTitle,description:r.identityProviderFailedDescription};case"configuration_error":return{title:r.proofNotAdmittedTitle,description:r.proofNotAdmittedDescription};default:return null}}function Xt(e,r){switch(e){case"authentication_required":case"authentication_failed":return{title:r.authenticationRequiredTitle,description:r.authenticationRequiredDescription};case"identity_provider_failed":return{title:r.identityProviderFailedTitle,description:r.identityProviderFailedDescription};case"proof_not_admitted":case"unsupported_scope":return{title:r.proofNotAdmittedTitle,description:r.proofNotAdmittedDescription};case"unavailable":return{title:r.unavailableTitle,description:r.unavailableDescription};default:return{title:r.errorTitle,description:r.errorDescription}}}function ve(e,r,i,s){let l=n("button",{className:"persona-history-secondary persona-history-state-action",text:e,attrs:{type:"button","data-persona-history-focus":r,...i?{"aria-disabled":"true"}:{}}});return l.addEventListener("click",()=>{i||s()}),l}function re(e,r,i,s,l){return n("div",{className:"persona-history-state",attrs:{"data-persona-history-state":e,...l?{role:"alert"}:{role:"status"}}},n("p",{className:"persona-history-state-title",text:r}),n("p",{className:"persona-history-state-description",text:i}),s)}function Zt(e){let r=["42%","58%","34%"],i=["94%","78%","88%"],s=[0,1,2].map(l=>n("div",{className:"persona-history-skeleton-row",attrs:{"aria-hidden":"true"}},n("div",{className:"persona-history-skeleton-head"},n("div",{className:"persona-history-skeleton-bar persona-history-skeleton-bar--title",style:{width:r[l]}}),n("div",{className:"persona-history-skeleton-bar persona-history-skeleton-bar--time"})),n("div",{className:"persona-history-skeleton-bar persona-history-skeleton-bar--preview",style:{width:i[l]}})));return n("div",{className:"persona-history-view-loading",attrs:{"data-persona-history-state":"loading",role:"status","aria-label":e.loadingLabel}},...s)}function ct(e){let{state:r,copy:i,busy:s}=e;if(r.kind==="loading")return Zt(i);if(r.kind==="empty"){let y=Ut(e.identityStatus,i);return y?re("identity",y.title,y.description,e.onRetry?ve(i.retryIdentityLabel,"state-retry",s,e.onRetry):null,!0):re("empty",i.emptyTitle,i.emptyDescription,null,!1)}if(r.kind==="rate_limited"){let y=r.retryAfterSeconds>0?A(i.rateLimitedWaitDescription,{seconds:r.retryAfterSeconds}):i.rateLimitedDescription;return re("rate_limited",i.rateLimitedTitle,y,e.onRetry?ve(i.retryLabel,"state-retry",s,e.onRetry):null,!1)}if(r.kind==="new_conversation_required")return re("new_conversation_required",i.newConversationRequiredTitle,i.newConversationRequiredDescription,e.onStartNew?ve(i.newConversationLabel,"state-retry",s,e.onStartNew):null,!0);let{title:l,description:p}=Xt(r.reason,i),h=r.reason==="authentication_required"||r.reason==="authentication_failed"||r.reason==="identity_provider_failed"?i.retryIdentityLabel:i.retryLabel;return re("error",l,p,r.retryable&&e.onRetry?ve(h,"state-retry",s,e.onRetry):null,!0)}var Jt=25,F="persona:list-options",Qt=180,yt=120,er=160,tr="cubic-bezier(0.4, 0, 1, 1)",rr={panel:20,rail:12},or=()=>typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,ir=e=>e.finished?e.finished.then(()=>{},()=>{}):Promise.resolve();function ge(e){return`${e.state}:${"reason"in e?e.reason:""}`}function ut(e,r){switch(e.state){case"verified":return{title:r.verifiedTitle,description:r.verifiedDescription,pending:!1};case"verifying":case"resetting":return{title:r.verifyingTitle,description:r.verifyingDescription,pending:!0};case"authentication_required":return{title:r.authenticationRequiredTitle,description:r.authenticationRequiredDescription,pending:!1};case"identity_provider_failed":return{title:r.identityProviderFailedTitle,description:r.identityProviderFailedDescription,pending:!1};case"configuration_error":return{title:r.proofNotAdmittedTitle,description:r.proofNotAdmittedDescription,pending:!1};case"unavailable":return{title:r.unavailableTitle,description:r.unavailableDescription,pending:!1};default:return{title:r.browserOnlyTitle,description:r.browserOnlyDescription,pending:!1}}}function nr(e){return e.state==="verified"||e.state==="browser_only"}function sr(e){return e.state==="authentication_required"||e.state==="identity_provider_failed"||e.state==="configuration_error"}function ht(e){let r=he(e.copy),i=e.now??(()=>Date.now()),s=e.pageSize??Jt,l=`persona-history-title-${Math.random().toString(36).slice(2,8)}`,p=[],h=null,y={kind:"loading",phase:"initial"},u=null,S=e.activeConversationId,b=e.provider.getIdentityStatus(),oe=ge(b),x=null,M=!1,m=!1,Y=0,k=e.presentation,mt=e.collapsible!==!1,R=e.collapsed===!0,Oe=e.railSide==="right",G=e.renderDom!==!1,I=new Map,E=null,fe=it(),ie=t=>{!G&&e.onAnnounce?e.onAnnounce(t):fe.announce(t)},w=()=>u!==null,qe=`${l}-body`,f=n("button",{className:"persona-history-icon-button persona-history-back",attrs:{type:"button"}}),j=()=>k==="rail"&&mt,ne,vt=()=>{if(e.railBrand){if(!j()){f.classList.remove("persona-history-back--branded");return}if(ne===void 0){let t=e.railBrand(!0);ne=t?n("span",{className:"persona-history-brand-mark persona-history-toggle-brand",attrs:{"aria-hidden":"true"}},t):null}ne&&(f.classList.add("persona-history-back--branded"),f.appendChild(ne))}},be=()=>{let t=j(),o=k==="rail";f.setAttribute("data-persona-history-focus",t?"collapse":"close"),f.setAttribute("aria-label",t?R?r.expandLabel:r.collapseLabel:o?r.closeLabel:r.backLabel),t?(f.setAttribute("aria-expanded",R?"false":"true"),f.setAttribute("aria-controls",qe),e.collapseShortcut?.aria&&f.setAttribute("aria-keyshortcuts",e.collapseShortcut.aria)):(f.removeAttribute("aria-expanded"),f.removeAttribute("aria-controls"),f.removeAttribute("aria-keyshortcuts")),f.replaceChildren(_(t?"panel-left":o?"x":"arrow-left")),vt()};be(),f.addEventListener("click",()=>{j()?e.onToggleCollapse?.():e.onClose()});let we=n("h2",{className:"persona-history-title",text:r.viewTitle,attrs:{id:l}}),Fe=n("span",{className:"persona-history-scope-title"}),z=n("p",{className:"persona-history-scope"},n("span",{className:"persona-history-scope-icon",attrs:{"aria-hidden":"true"}},_("monitor",14)),Fe),se=n("div",{className:"persona-history-heading-group"},we),ze=!1,ae,xe=()=>{let t=k==="rail",o=t?e.renderRailHeader:void 0,a=null,c=o!==void 0;if(o)try{a=o({collapsed:R,defaultTitle:r.viewTitle})}catch(d){c=!1,ze||(ze=!0,console.warn("[persona] history rail renderHeader threw",d))}if(!c&&t&&e.railBrand){if(ae===void 0){let d=e.railBrand(!1);ae=d?n("span",{className:"persona-history-heading-brand",attrs:{"aria-hidden":"true"}},n("span",{className:"persona-history-brand-mark"},d),n("span",{className:"persona-history-wordmark",text:r.viewTitle})):null}ae&&(c=!0,a=ae)}we.classList.toggle("persona-history-sr-only",c),se.replaceChildren(we),a&&se.appendChild(a)};xe();let $=n("button",{className:"persona-history-icon-button persona-history-new-icon",attrs:{type:"button","data-persona-history-focus":"new-icon","aria-label":r.newConversationLabel}});$.appendChild(_("plus")),$.addEventListener("click",()=>{ee()});let gt=[f,$].map(t=>e.attachTooltip?.({anchor:t,text:()=>t.getAttribute("aria-label")??"",...t===f&&e.collapseShortcut?{hint:()=>j()?e.collapseShortcut.hint:""}:{}})),C=n("div",{className:"persona-history-topbar"}),$e=null,He=()=>{let t=k==="rail",o=t?Oe?"rail-right":"rail":"panel";o!==$e&&($e=o,o==="rail"?C.append(se,f):C.append(f,se),t?$.remove():C.appendChild($),v.classList.toggle("persona-history-view--rail-right",o==="rail-right"))},V=n("div",{className:"persona-history-scope-alert"}),Ke=`${l}-scope`,ft=_("plus",18),Se=n("button",{className:"persona-history-new",attrs:{type:"button","data-persona-history-focus":"new"}},ft,n("span",{text:r.newConversationLabel}));Se.addEventListener("click",()=>{ee()});let ke=n("div",{className:"persona-history-list-region"}),Be=e.showDeleteAll!==!1,We=!!e.provider.resetDevice,Ye=e.listActions??[],O=Be||We||Ye.length>0?Ie({className:"persona-history-list-options",label:r.listOptionsLabel,focusKey:`menu:${F}`,open:!1,inert:!0,iconSize:16,onToggle:()=>Qe(F)}):null,bt=n("h3",{className:"persona-history-conversations-title",text:r.conversationsTitle}),K=n("div",{className:"persona-history-caption",attrs:{"data-persona-history-item":F}},bt,e.showScopeStatus?z:null,O),B=n("div",{className:"persona-history-body",attrs:{id:qe}},e.showScopeStatus?V:null,Se,K,ke),U=e.headerPlacement??"inline";U==="external"&&C.classList.add("persona-history-topbar--shell","persona-history-topbar--shell-enter");let v=n("div",{className:T("persona-history-view",`persona-history-view--${e.presentation}`,"persona-history-view--enter"),attrs:{role:"region","aria-labelledby":l,"data-persona-history-presentation":e.presentation}},fe.element,U==="inline"?C:null,B),Ce=()=>{v.classList.toggle("persona-history-view--rail-collapsed",R&&j())};Ce(),He();let wt=(t,o)=>{let a=`${l}-s${o}`,c=n("div",{className:T("persona-history-nav",t.placement==="footer"&&"persona-history-nav--footer"),attrs:{role:"group","data-persona-rail-section":t.id,...t.title?{"aria-labelledby":a}:{"aria-label":t.id}}});t.title&&c.appendChild(n("h3",{className:"persona-history-group-heading",text:t.title,attrs:{id:a}}));for(let d of t.items){let H=d.iconNode?.()??null,P=n("button",{className:T("persona-history-nav-item",H&&"persona-history-nav-item--icon"),attrs:{type:"button","aria-label":d.label,"data-persona-rail-item":d.id}},H?n("span",{className:"persona-history-nav-icon"},H):null,n("span",{className:"persona-history-nav-label persona-history-truncate",text:d.label}),d.badge?n("span",{className:"persona-history-nav-badge",text:d.badge}):null);P.addEventListener("click",()=>d.onSelect()),c.appendChild(P)}return c},X=null,Ge=null,Le=()=>{!X||!G||k!=="rail"||R===Ge||(Ge=R,e.railSections.forEach((t,o)=>{if(!t.render)return;let a=X[o],c=t.title?a.firstElementChild:null,d=null;try{d=t.render(R)}catch(H){t.render=void 0,console.warn("[persona] history rail section threw",t.id,H)}a.replaceChildren(...c?[c]:[],...d?[d]:[]),a.hidden=!d}))},je=()=>{let t=e.railSections;if(v.classList.toggle("persona-history-view--has-nav",k==="rail"&&!!t?.some(o=>o.placement==="above-conversations")),!!t?.length){if(k!=="rail"){X?.forEach(o=>o.remove());return}X??(X=t.map(wt));for(let o of["above-conversations","below-conversations","footer"]){let a=o==="above-conversations"?K.parentNode===B?K:ke:null;t.forEach((c,d)=>{c.placement===o&&B.insertBefore(X[d],a)})}Le()}};je(),rt(v,"persona-history-view",nt);let Ue=(t,o)=>{let a=v.ownerDocument.defaultView?.getComputedStyle(v).getPropertyValue(t),c=Number.parseFloat(a??"");return Number.isFinite(c)&&c>=0?c:o},xt=(t,o)=>v.ownerDocument.defaultView?.getComputedStyle(v).getPropertyValue(t).trim()||o,Z=null,q=()=>{Z!==null&&(clearTimeout(Z),Z=null),v.removeEventListener("animationend",q),v.classList.remove("persona-history-view--enter")};v.addEventListener("animationend",q),Z=setTimeout(()=>{Z=setTimeout(q,Ue("--persona-history-enter-ms",Qt)+60)},0);let J=null,Q=()=>{J!==null&&(clearTimeout(J),J=null),C.classList.remove("persona-history-topbar--shell-enter")},Ht=()=>{Q(),C.classList.add("persona-history-topbar--shell-enter"),J=setTimeout(Q,yt+60)};U==="external"&&(J=setTimeout(Q,yt+60));let le=[],pe=null,St=()=>{if(pe)return pe;if(m||or()||typeof v.animate!="function")return q(),null;let t=v.ownerDocument.defaultView?.getComputedStyle(B).opacity||"1";q(),v.style.pointerEvents="none",D.style.pointerEvents="none";let o={duration:Ue("--persona-history-exit-ms",er),easing:xt("--persona-history-exit-easing",tr),fill:"forwards"},a=rr[k];return le=[B.animate([{opacity:t,transform:"none"},{opacity:0,transform:`translateX(${a}px)`}],o)],pe=Promise.all(le.map(ir)).then(()=>{}),pe},Te=(t,o)=>{t&&(o?t.setAttribute("aria-disabled","true"):t.removeAttribute("aria-disabled"))},D=C,Ae=null,kt=()=>{let t=e.slots?.header;if(!t)return;let o=`${k}|${ge(b)}|${u?`${u.kind}:${"conversationId"in u?u.conversationId:""}`:""}`;if(o===Ae)return;Ae=o;let a=t({identityStatus:b,pendingAction:u,copy:r,defaultRenderer:()=>C})??C;a!==D&&(D.replaceWith(a),D=a)},Xe=null,Ct=()=>{if(!e.showScopeStatus)return;let t=ge(b);if(t===Xe)return;Xe=t;let o=ut(b,r);Fe.textContent=o.title;let a=nr(b);if(z.hidden=!a,V.replaceChildren(...a?[]:[n("span",{className:"persona-history-scope-alert-title",text:o.title})],n("span",{className:"persona-history-scope-description",text:o.description,attrs:{id:Ke}})),V.setAttribute("data-persona-history-scope-tone",a?"ambient":"attention"),a?z.setAttribute("aria-describedby",Ke):z.removeAttribute("aria-describedby"),o.pending?V.setAttribute("role","status"):V.removeAttribute("role"),V.setAttribute("data-persona-history-identity",b.state),z.setAttribute("data-persona-history-identity",b.state),sr(b)){let c=n("button",{className:"persona-history-secondary persona-history-state-action",text:r.retryIdentityLabel,attrs:{type:"button","data-persona-history-focus":"identity-retry"}});c.addEventListener("click",()=>{w()||N("refresh")}),V.appendChild(c)}},Ze=t=>u?u.kind==="open"&&u.conversationId===t?"opening":u.kind==="delete"&&u.conversationId===t?"deleting":null:null,Lt=()=>{let t=document.activeElement;return!(t instanceof HTMLElement)||!v.contains(t)?null:t.getAttribute("data-persona-history-focus")},Tt=t=>{if(M&&x){M=!1;let o=v.querySelector(`[data-persona-history-focus="${te(x)}"]`);if(o){o.focus();return}}t&&v.querySelector(`[data-persona-history-focus="${t}"]`)?.focus()},At=()=>{if(!E)return null;let t=n("button",{className:"persona-history-secondary persona-history-state-action",text:r.retryLabel,attrs:{type:"button","data-persona-history-focus":"action-retry"}}),o=E;return t.addEventListener("click",()=>{w()||o.retry()}),n("div",{className:"persona-history-row-error",attrs:{role:"alert"}},n("span",{text:o.message}),t)},Rt=()=>st(p,i(),r,e.grouping).map((t,o)=>{let a=`${l}-g${o}`,c=n("ul",{className:"persona-history-list",attrs:{"aria-labelledby":a}});for(let d of t.items){let H=()=>pt({conversation:d,active:d.id===S,pending:Ze(d.id),busy:w(),menuOpen:x===d.id,error:I.get(d.id)??null,avatar:e.rowAvatar,showDelete:e.showDelete!==!1,nowMs:i(),copy:r,onOpen:()=>{de(d.id)},onToggleMenu:()=>Qe(d.id),onCloseMenu:De=>L(De),onDelete:()=>{ce(d.id)}}),W=e.slots?.conversation?.({conversation:d,active:d.id===S,pending:Ze(d.id),open:()=>de(d.id),requestDelete:()=>ce(d.id),defaultRenderer:H})??H();c.appendChild(W instanceof HTMLLIElement?W:n("li",{className:"persona-history-item"},W))}return n("div",{className:"persona-history-group",attrs:{"data-persona-history-group":t.key}},n("h3",{className:T("persona-history-group-heading",t.key==="recent"&&"persona-history-sr-only"),text:t.label,attrs:{id:a}}),c)}),Et=()=>{if(!h)return null;let t=u?.kind==="load-more"||y.kind==="loading"&&y.phase==="load-more",o=n("button",{className:"persona-history-secondary persona-history-load-more",text:t?r.loadingMoreLabel:r.loadMoreLabel,attrs:{type:"button","data-persona-history-focus":"load-more",...t?{"aria-busy":"true","aria-disabled":"true"}:{},...w()&&!t?{"aria-disabled":"true"}:{}}});return o.addEventListener("click",()=>{w()||N("load-more")}),o},Nt=()=>{let t=Lt(),o=[At()],a=p.length>0;if(a&&(o.push(...Rt()),o.push(Et())),y.kind!=="ready"&&!(y.kind==="loading"&&y.phase!=="initial"&&a)){let d=y,H=d.kind==="loading"?void 0:()=>N("refresh"),P=d.kind==="new_conversation_required"?()=>ee():void 0,W=()=>ct({state:d,copy:r,identityStatus:b,busy:w(),...H?{onRetry:()=>{H()}}:{},...P?{onStartNew:()=>{P()}}:{}}),De=e.slots?.state?.({state:d,identityStatus:b,copy:r,...H?{retry:H}:{},...P?{startNewConversation:P}:{},defaultRenderer:W});o.push(De??W())}ke.replaceChildren(...o.filter(d=>!!d)),Tt(t)},Mt=()=>{let t=y.kind==="loading"&&p.length===0,o=[],a=()=>o.length===0?te(F):`${te(F)}-${o.length}`;if(!t)for(let c of Ye)o.push({label:c.label,focusKey:a(),danger:c.danger===!0,onSelect:()=>{c.onSelect({conversations:[...p]})}});return Be&&!(p.length===0&&(y.kind==="empty"||t))&&o.push({label:r.clearHistoryLabel,focusKey:a(),danger:!0,onSelect:()=>{Ee()}}),We&&!t&&o.push({label:r.resetIdentityLabel,focusKey:a(),danger:!0,onSelect:()=>{Me()}}),o},Dt=()=>{if(Te(Se,w()),Te($,w()),O){let t=Mt(),o=y.kind==="loading"&&p.length===0;O.hidden=t.length===0&&!o,Te(O,w()||t.length===0),O.setAttribute("aria-expanded",x===F?"true":"false");let a=K.querySelector(".persona-history-menu");if(x!==F||t.length===0)a?.remove();else{let c=Ve({label:r.listOptionsLabel,items:t,onCloseMenu:d=>L(d)});a?a.replaceWith(c):K.appendChild(c)}}K.hidden=k!=="rail"&&(!O||O.hidden)&&(!e.showScopeStatus||z.hidden)},Je,Pt=()=>{let t=e.onActiveConversationChange;if(!t)return;let o=p.find(c=>c.id===S)??null,a=o?`${o.id}\0${o.title}\0${o.starred?1:0}`:"";a!==Je&&(Je=a,t(o))},g=()=>{if(!m){if(Pt(),!G){e.onModelChange?.();return}kt(),Ct(),Dt(),Nt(),Le()}},L=t=>{if(!x)return;let o=x;x=null,M=!1,g(),t?.restoreFocus&&v.querySelector(`[data-persona-history-focus="menu:${o}"]`)?.focus()},Qe=t=>{if(x===t){L({restoreFocus:!0});return}x=t,M=!0,g()},et=t=>{if(!x)return;let o=t.target;o instanceof Node&&v.contains(o)&&o.closest?.(`[data-persona-history-item="${x}"]`)||L()};document.addEventListener("pointerdown",et,!0);let tt=t=>{t.key!=="Escape"||!x||(t.stopPropagation(),L({restoreFocus:!0}))};v.addEventListener("keydown",tt);async function N(t){if(m)return;let o=++Y,a=t==="load-more"?h:null;if(!(t==="load-more"&&!a)){u={kind:t==="load-more"?"load-more":"refresh"},y={kind:"loading",phase:t},t!=="load-more"&&(I.clear(),E=null),L(),g();try{let c=await e.provider.list({limit:s,context:e.context,...a?{cursor:a}:{},...e.targetId?{targetId:e.targetId}:{}});if(m||o!==Y)return;p=a?[...p,...c.items]:c.items,h=c.nextCursor,y=p.length===0?{kind:"empty"}:{kind:"ready"}}catch(c){if(m||o!==Y)return;y=dt(c)}finally{!m&&o===Y&&(u=null,g())}}}let Re=t=>{p=p.filter(o=>o.id!==t),I.delete(t),S===t&&(S=null),p.length===0&&!h&&(y={kind:"empty"})};async function de(t){if(!(w()||m)){I.delete(t),L(),u={kind:"open",conversationId:t},g();try{if(await e.onSelect(t),m)return;S=t}catch{if(m)return;I.set(t,{message:r.openFailedLabel,retry:()=>{de(t)}})}finally{m||(u=null,g())}}}async function ce(t){if(w()||m)return"cancelled";I.delete(t),u={kind:"delete",conversationId:t},g();try{let o=await e.onRequestDeleteConversation(t);return m||o==="deleted"&&(Re(t),ie(r.conversationRemovedNotice)),o}catch(o){return m||(ye(o)&&o.code==="not_found"?Re(t):I.set(t,{message:r.deleteFailedLabel,retry:()=>{ce(t)}})),"cancelled"}finally{m||(u=null,g())}}async function ee(){if(!(w()||m)){E=null,L(),u={kind:"start-new"},g();try{if(await e.onStartNew(),m)return;y.kind==="new_conversation_required"&&(y=p.length===0?{kind:"empty"}:{kind:"ready"})}catch{if(m)return;E={message:r.errorDescription,retry:()=>{ee()}}}finally{m||(u=null,g())}}}async function Ee(){if(w()||m)return"cancelled";E=null,L(),u={kind:"clear"},g();try{let t=await e.onRequestClearHistory();return m||t==="cleared"&&(p=[],h=null,S=null,y={kind:"empty"},ie(r.historyClearedNotice)),t}catch{return m||(E={message:r.errorDescription,retry:()=>{Ee()}}),"cancelled"}finally{m||(u=null,g())}}let Ne={outcome:"cancelled"};async function Me(){if(w()||m||!e.onRequestResetIdentity)return Ne;E=null,L(),u={kind:"reset"},g();try{let t=await e.onRequestResetIdentity();return m||t.outcome==="reset"&&(ie(t.remoteRevocationConfirmed?r.identityResetNotice:r.identityResetUnconfirmedNotice),u=null,await N("refresh")),t}catch{return m||(E={message:r.errorDescription,retry:()=>{Me()}}),Ne}finally{!m&&u?.kind==="reset"&&(u=null,g())}}let _t=e.provider.subscribeIdentityStatus(t=>{if(m)return;let o=ge(t),a=o!==oe;b=t,oe=o,g(),a&&t.state!=="verifying"&&ie(ut(t,r).title)}),It=e.provider.subscribeAvailability?.(t=>{if(!m){if(t){N("refresh");return}p=[],h=null,y={kind:"error",reason:"unavailable",retryable:!1},g()}});return g(),N("initial"),{element:v,copy:r,getModel:()=>({conversations:p,activeConversationId:S,state:y,pendingAction:u,identityStatus:b,nextCursor:h}),operations:{refresh:async()=>{w()||await N("refresh")},loadMore:async()=>{w()||await N("load-more")},openConversation:t=>de(t),startNewConversation:()=>ee(),requestDeleteConversation:t=>ce(t),requestClearConversationHistory:()=>Ee(),requestResetHistoryIdentity:()=>Me()},setDomRenderEnabled:t=>{t!==G&&(G=t,t&&g())},refresh:()=>{N("refresh")},setPresentation:t=>{if(t===k)return;q(),k=t,Ae=null;let o=t==="rail";v.classList.toggle("persona-history-view--panel",!o),v.classList.toggle("persona-history-view--rail",o),v.setAttribute("data-persona-history-presentation",t),be(),Ce(),He(),xe(),je(),g()},setCollapsed:t=>{t!==R&&(R=t,Ce(),be(),xe(),Le())},setRailSide:t=>{Oe=t==="right",He()},getHeaderElement:()=>D,setHeaderPlacement:t=>{if(t===U)return;U=t;let o=t==="external";if(C.classList.toggle("persona-history-topbar--shell",o),o){Ht(),D.remove();return}Q(),v.insertBefore(D,B)},setActiveConversationId:t=>{S!==t&&(S=t,g())},applyConversationSummary:t=>{let o=p.findIndex(a=>a.id===t.id);o!==-1&&(p[o]=t,g())},removeConversationSummary:t=>{p.some(o=>o.id===t)&&(Re(t),g())},setNewConversationRequired:t=>{t?y={kind:"new_conversation_required"}:y.kind==="new_conversation_required"&&(y=p.length===0?{kind:"empty"}:{kind:"ready"}),g()},playExit:St,destroy:()=>{m=!0,Y+=1,q(),Q(),gt.forEach(t=>t?.destroy()),D.remove(),le.forEach(t=>t.cancel()),le=[],_t(),It?.(),document.removeEventListener("pointerdown",et,!0),v.removeEventListener("keydown",tt),fe.destroy(),v.remove(),v.replaceChildren()}}}export{ue as HISTORY_VIEW_COPY_DEFAULTS,ht as createHistoryView,he as resolveHistoryViewCopy};
898
+ `;var he={...it,emptyTitle:"No conversations yet",emptyDescription:"Start a conversation and it will show up here.",errorTitle:"Could not load conversations",errorDescription:"Something went wrong. Please try again.",retryLabel:"Retry",rateLimitedTitle:"Too many requests",rateLimitedDescription:"Please wait a moment before trying again.",groupStarred:"Starred",groupToday:"Today",groupYesterday:"Yesterday",groupPrevious7Days:"Previous 7 days",groupPrevious30Days:"Previous 30 days",groupMonthYear:"{month} {year}",browserOnlyTitle:"On this device",browserOnlyDescription:"Another browser or device keeps its own separate history.",verifyingTitle:"Checking your account",verifyingDescription:"Looking for messages linked to your account.",verifiedTitle:"Available across signed-in devices",verifiedDescription:"This list refreshes when the chat opens rather than syncing live.",authenticationRequiredTitle:"Sign in to see your messages",authenticationRequiredDescription:"Your session expired. Sign in again to load account history.",identityProviderFailedTitle:"Account history is unavailable",identityProviderFailedDescription:"We could not verify your account, so account history is not shown here.",proofNotAdmittedTitle:"Account history is unavailable",proofNotAdmittedDescription:"This assistant is not set up to accept your account identity.",retryIdentityLabel:"Try again",backLabel:"Back to conversation",closeLabel:"Close conversation list",loadingLabel:"Loading conversations",loadMoreLabel:"Load more",loadingMoreLabel:"Loading more conversations",conversationsTitle:"Conversations",rowActionsLabel:"Conversation options",listOptionsLabel:"Conversation options",deleteConversationLabel:"Delete",clearHistoryLabel:"Delete all conversations",resetIdentityLabel:"Forget this device",messageCountLabel:"{count} messages",messageCountLabelOne:"1 message",conversationRemovedNotice:"Conversation deleted.",historyClearedNotice:"All conversations were deleted.",unavailableTitle:"Conversation history is unavailable",unavailableDescription:"Try again later.",newConversationRequiredTitle:"Start a new conversation",newConversationRequiredDescription:"The previous conversation is gone. Start a new one to keep chatting.",rateLimitedWaitDescription:"You can try again in {seconds} seconds.",openFailedLabel:"Could not open that conversation.",deleteFailedLabel:"Could not delete that conversation.",relativeNow:"now",relativeMinutes:"{value}m",relativeHours:"{value}h",relativeDays:"{value}d",relativeWeeks:"{value}w",relativeYears:"{value}y"};function me(e){if(!e)return he;let r={...he};for(let[i,s]of Object.entries(e))typeof s=="string"&&s.length>0&&(r[i]=s);return r}function A(e,r){return e.replace(/\{(\w+)\}/g,(i,s)=>s in r?String(r[s]):i)}var Pe=864e5;function Vt(e){let r=new Date(e);return r.setHours(0,0,0,0),r.getTime()}function Ie(e,r){let i=Date.parse(e);return Number.isFinite(i)?i:r}function Ot(e,r){let i=Ie(e,r),s=Vt(r);if(i>=s)return"today";if(i>=s-Pe)return"yesterday";if(i>=s-7*Pe)return"previous-7-days";if(i>=s-30*Pe)return"previous-30-days";let p=new Date(i);return`month:${p.getFullYear()}-${p.getMonth()}`}function qt(e,r,i,s){if(e==="today")return s.groupToday;if(e==="yesterday")return s.groupYesterday;if(e==="previous-7-days")return s.groupPrevious7Days;if(e==="previous-30-days")return s.groupPrevious30Days;let p=new Date(Ie(r,i));return A(s.groupMonthYear,{month:p.toLocaleString(void 0,{month:"long"}),year:p.getFullYear()})}function at(e,r,i,s="time"){let p=e.filter(h=>h.starred),a=p.length>0?[{key:"starred",label:i.groupStarred,items:p}]:[];if(s==="none"){let h=e.filter(c=>!c.starred);return h.length>0&&a.push({key:"recent",label:i.conversationsTitle,items:h}),a}for(let h of e){if(h.starred)continue;let c=Ot(h.updatedAt,r),y=a[a.length-1];if(y&&y.key===c){y.items.push(h);continue}a.push({key:c,label:qt(c,h.updatedAt,r,i),items:[h]})}return a}function lt(e,r,i){let s=Math.max(0,r-Ie(e,r)),p=Math.floor(s/6e4);if(p<1)return i.relativeNow;if(p<60)return A(i.relativeMinutes,{value:p});let a=Math.floor(p/60);if(a<24)return A(i.relativeHours,{value:a});let h=Math.floor(a/24);if(h<7)return A(i.relativeDays,{value:h});let c=Math.floor(h/7);return h<365?A(i.relativeWeeks,{value:c}):A(i.relativeYears,{value:Math.floor(h/365)})}function pt(e,r){return e===1?r.messageCountLabelOne:A(r.messageCountLabel,{count:e})}var ve="http://www.w3.org/2000/svg",zt={"arrow-left":["m12 19-7-7 7-7","M19 12H5"],plus:["M5 12h14","M12 5v14"],star:["m12 2 2.9 6.2 6.8.7-5.1 4.5 1.4 6.6-6-3.4-6 3.4 1.4-6.6-5.1-4.5 6.8-.7z"],x:["M18 6 6 18","m6 6 12 12"],"panel-left":["M9 3v18"],monitor:["M8 21h8","M12 17v4"],ellipsis:[]},Ft={"panel-left":[3,3,18,18],monitor:[2,3,20,14]};function V(e,r=20){let i=document.createElementNS(ve,"svg");if(i.setAttribute("width",String(r)),i.setAttribute("height",String(r)),i.setAttribute("viewBox","0 0 24 24"),i.setAttribute("fill","none"),i.setAttribute("stroke","currentColor"),i.setAttribute("stroke-width","2"),i.setAttribute("stroke-linecap","round"),i.setAttribute("stroke-linejoin","round"),i.setAttribute("aria-hidden","true"),i.setAttribute("focusable","false"),e==="ellipsis"){for(let p of[12,19,5]){let a=document.createElementNS(ve,"circle");a.setAttribute("cx",String(p)),a.setAttribute("cy","12"),a.setAttribute("r","1"),i.appendChild(a)}return i}let s=Ft[e];if(s){let p=document.createElementNS(ve,"rect");p.setAttribute("x",String(s[0])),p.setAttribute("y",String(s[1])),p.setAttribute("width",String(s[2])),p.setAttribute("height",String(s[3])),p.setAttribute("rx","2"),i.appendChild(p)}for(let p of zt[e]){let a=document.createElementNS(ve,"path");a.setAttribute("d",p),i.appendChild(a)}return i}var $t=/^(https?:|\/|data:)/i;function Kt(e){let r=n("span",{className:"persona-history-row-avatar",attrs:{"aria-hidden":"true"}});return $t.test(e)?r.appendChild(n("img",{attrs:{src:e,alt:"",loading:"lazy"}})):r.textContent=e,r}var Wt=e=>`row:${e}`,Bt=e=>`menu:${e}`,oe=e=>`menu-item:${e}`;function dt(e){let{conversation:r,copy:i,busy:s,pending:p}=e,a=s||p!==null,h=r.title.trim().length>0,c=r.starred?(()=>{let b=V("star",11);return b.setAttribute("fill","currentColor"),b.setAttribute("stroke-width","1"),n("span",{className:"persona-history-row-star"},b,n("span",{className:"persona-history-sr-only",text:i.groupStarred}))})():null,y=n("div",{className:"persona-history-row-head"},n("span",{className:"persona-history-row-title persona-history-truncate",text:h?r.title:r.preview??""}),c,n("time",{className:"persona-history-row-time",attrs:{datetime:r.updatedAt},text:lt(r.updatedAt,e.nowMs,i)})),f=h&&r.preview?n("span",{className:"persona-history-row-preview persona-history-truncate",text:r.preview}):null,w=n("button",{className:E("persona-history-row",e.active&&"persona-history-row--active",p&&`persona-history-row--${p}`),attrs:{type:"button","data-persona-history-focus":Wt(r.id),"data-persona-history-conversation":r.id,...e.active?{"aria-current":"page"}:{},...a?{"aria-disabled":"true"}:{},...p?{"aria-busy":"true"}:{}}},e.avatar?Kt(e.avatar):null,n("div",{className:"persona-history-row-body"},y,f,n("span",{className:"persona-history-row-count persona-history-sr-only",text:pt(r.messageCount,i)})));w.addEventListener("click",()=>{a||e.onOpen()});let R=e.showDelete?Ve({className:"persona-history-row-menu-button",label:`${i.rowActionsLabel}: ${r.title}`,focusKey:Bt(r.id),open:e.menuOpen,inert:a,onToggle:e.onToggleMenu}):null;return n("li",{className:E("persona-history-item",!e.showDelete&&"persona-history-item--no-menu"),attrs:{"data-persona-history-item":r.id}},w,R,e.menuOpen&&e.showDelete?Yt(e):null,e.error?Gt(e.error,i,r.id):null)}function Yt(e){let{conversation:r,copy:i}=e;return Oe({label:`${i.rowActionsLabel}: ${r.title}`,items:[{label:i.deleteConversationLabel,focusKey:oe(r.id),danger:!0,onSelect:e.onDelete}],onCloseMenu:e.onCloseMenu})}function Ve(e){let r=n("button",{className:E("persona-history-icon-button",e.className),attrs:{type:"button","aria-label":e.label,"aria-haspopup":"menu","aria-expanded":e.open?"true":"false","data-persona-history-focus":e.focusKey,...e.inert?{"aria-disabled":"true"}:{}}});r.appendChild(V("ellipsis",e.iconSize));let i=()=>r.getAttribute("aria-disabled")==="true";return r.addEventListener("click",s=>{s.stopPropagation(),!i()&&e.onToggle()}),r.addEventListener("keydown",s=>{s.key!=="ArrowDown"&&s.key!=="ArrowUp"||(s.preventDefault(),!(i()||r.getAttribute("aria-expanded")==="true")&&e.onToggle())}),r}function Oe(e){let r=n("div",{className:"persona-history-menu",attrs:{role:"menu","aria-label":e.label}});for(let i of e.items){let s=n("button",{className:E("persona-history-menu-item",i.danger&&"persona-history-menu-item--danger"),text:i.label,attrs:{type:"button",role:"menuitem",tabindex:"0","data-persona-history-focus":i.focusKey}});s.addEventListener("click",()=>{e.onCloseMenu(),i.onSelect()}),r.appendChild(s)}return r.addEventListener("keydown",i=>{let s=Array.from(r.querySelectorAll('[role="menuitem"]'));if(s.length===0)return;let p=s.indexOf(document.activeElement);if(i.key==="Tab"){e.onCloseMenu({restoreFocus:!0});return}if(i.key==="ArrowDown"){i.preventDefault(),s[(p+1+s.length)%s.length]?.focus();return}if(i.key==="ArrowUp"){i.preventDefault(),s[(p-1+s.length)%s.length]?.focus();return}if(i.key==="Home"){i.preventDefault(),s[0]?.focus();return}i.key==="End"&&(i.preventDefault(),s[s.length-1]?.focus())}),r}function Gt(e,r,i){let s=n("button",{className:"persona-history-secondary persona-history-state-action",text:r.retryLabel,attrs:{type:"button","data-persona-history-focus":`row-retry:${i}`}});return s.addEventListener("click",e.retry),n("div",{className:"persona-history-row-error",attrs:{role:"alert"}},n("span",{text:e.message}),s)}function jt(e){switch(e){case"authentication_failed":case"authentication_required":case"identity_provider_failed":case"proof_not_admitted":case"unsupported_scope":case"unavailable":return e;default:return"unknown"}}function ct(e){if(ue(e)){if(e.code==="rate_limited")return{kind:"rate_limited",retryAfterSeconds:e.retryAfterSeconds??0};let r=jt(e.code);return{kind:"error",reason:r,retryable:r!=="unsupported_scope"}}return{kind:"error",reason:"unknown",retryable:!0}}function Ut(e,r){switch(e.state){case"authentication_required":return{title:r.authenticationRequiredTitle,description:r.authenticationRequiredDescription};case"identity_provider_failed":return{title:r.identityProviderFailedTitle,description:r.identityProviderFailedDescription};case"configuration_error":return{title:r.proofNotAdmittedTitle,description:r.proofNotAdmittedDescription};default:return null}}function Xt(e,r){switch(e){case"authentication_required":case"authentication_failed":return{title:r.authenticationRequiredTitle,description:r.authenticationRequiredDescription};case"identity_provider_failed":return{title:r.identityProviderFailedTitle,description:r.identityProviderFailedDescription};case"proof_not_admitted":case"unsupported_scope":return{title:r.proofNotAdmittedTitle,description:r.proofNotAdmittedDescription};case"unavailable":return{title:r.unavailableTitle,description:r.unavailableDescription};default:return{title:r.errorTitle,description:r.errorDescription}}}function ge(e,r,i,s){let p=n("button",{className:"persona-history-secondary persona-history-state-action",text:e,attrs:{type:"button","data-persona-history-focus":r,...i?{"aria-disabled":"true"}:{}}});return p.addEventListener("click",()=>{i||s()}),p}function ie(e,r,i,s,p){return n("div",{className:"persona-history-state",attrs:{"data-persona-history-state":e,...p?{role:"alert"}:{role:"status"}}},n("p",{className:"persona-history-state-title",text:r}),n("p",{className:"persona-history-state-description",text:i}),s)}function Zt(e){let r=["42%","58%","34%"],i=["94%","78%","88%"],s=[0,1,2].map(p=>n("div",{className:"persona-history-skeleton-row",attrs:{"aria-hidden":"true"}},n("div",{className:"persona-history-skeleton-head"},n("div",{className:"persona-history-skeleton-bar persona-history-skeleton-bar--title",style:{width:r[p]}}),n("div",{className:"persona-history-skeleton-bar persona-history-skeleton-bar--time"})),n("div",{className:"persona-history-skeleton-bar persona-history-skeleton-bar--preview",style:{width:i[p]}})));return n("div",{className:"persona-history-view-loading",attrs:{"data-persona-history-state":"loading",role:"status","aria-label":e.loadingLabel}},...s)}function yt(e){let{state:r,copy:i,busy:s}=e;if(r.kind==="loading")return Zt(i);if(r.kind==="empty"){let c=Ut(e.identityStatus,i);return c?ie("identity",c.title,c.description,e.onRetry?ge(i.retryIdentityLabel,"state-retry",s,e.onRetry):null,!0):ie("empty",i.emptyTitle,i.emptyDescription,null,!1)}if(r.kind==="rate_limited"){let c=r.retryAfterSeconds>0?A(i.rateLimitedWaitDescription,{seconds:r.retryAfterSeconds}):i.rateLimitedDescription;return ie("rate_limited",i.rateLimitedTitle,c,e.onRetry?ge(i.retryLabel,"state-retry",s,e.onRetry):null,!1)}if(r.kind==="new_conversation_required")return ie("new_conversation_required",i.newConversationRequiredTitle,i.newConversationRequiredDescription,e.onStartNew?ge(i.newConversationLabel,"state-retry",s,e.onStartNew):null,!0);let{title:p,description:a}=Xt(r.reason,i),h=r.reason==="authentication_required"||r.reason==="authentication_failed"||r.reason==="identity_provider_failed"?i.retryIdentityLabel:i.retryLabel;return ie("error",p,a,r.retryable&&e.onRetry?ge(h,"state-retry",s,e.onRetry):null,!0)}var Jt=25,$="persona:list-options",Qt=180,ut=120,er=160,tr="cubic-bezier(0.4, 0, 1, 1)",rr={panel:20,rail:12},or=()=>typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,ir=e=>e.finished?e.finished.then(()=>{},()=>{}):Promise.resolve();function fe(e){return`${e.state}:${"reason"in e?e.reason:""}`}function ht(e,r){switch(e.state){case"verified":return{title:r.verifiedTitle,description:r.verifiedDescription,pending:!1};case"verifying":case"resetting":return{title:r.verifyingTitle,description:r.verifyingDescription,pending:!0};case"authentication_required":return{title:r.authenticationRequiredTitle,description:r.authenticationRequiredDescription,pending:!1};case"identity_provider_failed":return{title:r.identityProviderFailedTitle,description:r.identityProviderFailedDescription,pending:!1};case"configuration_error":return{title:r.proofNotAdmittedTitle,description:r.proofNotAdmittedDescription,pending:!1};case"unavailable":return{title:r.unavailableTitle,description:r.unavailableDescription,pending:!1};default:return{title:r.browserOnlyTitle,description:r.browserOnlyDescription,pending:!1}}}function nr(e){return e.state==="verified"||e.state==="browser_only"}function sr(e){return e.state==="authentication_required"||e.state==="identity_provider_failed"||e.state==="configuration_error"}function mt(e){let r=me(e.copy),i=e.now??(()=>Date.now()),s=e.pageSize??Jt,p=`persona-history-title-${Math.random().toString(36).slice(2,8)}`,a=[],h=null,c={kind:"loading",phase:"initial"},y=null,f=e.activeConversationId,w=e.provider.getIdentityStatus(),R=fe(w),x=null,b=!1,m=!1,D=0,S=e.presentation,j=e.collapsible!==!1,N=e.collapsed===!0,qe=e.railSide==="right",U=e.renderDom!==!1,O=new Map,M=null,be=nt(),ne=t=>{!U&&e.onAnnounce?e.onAnnounce(t):be.announce(t)},k=()=>y!==null,ze=`${p}-body`,H=n("button",{className:"persona-history-icon-button persona-history-back",attrs:{type:"button"}}),X=()=>S==="rail"&&j,se,vt=()=>{if(e.railBrand){if(!X()){H.classList.remove("persona-history-back--branded");return}if(se===void 0){let t=e.railBrand(!0);se=t?n("span",{className:"persona-history-brand-mark persona-history-toggle-brand",attrs:{"aria-hidden":"true"}},t):null}se&&(H.classList.add("persona-history-back--branded"),H.appendChild(se))}},we=()=>{let t=X(),o=S==="rail";H.setAttribute("data-persona-history-focus",t?"collapse":"close"),H.setAttribute("aria-label",t?N?r.expandLabel:r.collapseLabel:o?r.closeLabel:r.backLabel),t?(H.setAttribute("aria-expanded",N?"false":"true"),H.setAttribute("aria-controls",ze),e.collapseShortcut?.aria&&H.setAttribute("aria-keyshortcuts",e.collapseShortcut.aria)):(H.removeAttribute("aria-expanded"),H.removeAttribute("aria-controls"),H.removeAttribute("aria-keyshortcuts")),H.replaceChildren(V(t?"panel-left":o?"x":"arrow-left")),vt()};we(),H.addEventListener("click",()=>{X()?e.onToggleCollapse?.():e.onClose()});let xe=n("h2",{className:"persona-history-title",text:r.viewTitle,attrs:{id:p}}),Fe=n("span",{className:"persona-history-scope-title"}),K=n("p",{className:"persona-history-scope"},n("span",{className:"persona-history-scope-icon",attrs:{"aria-hidden":"true"}},V("monitor",14)),Fe),ae=n("div",{className:"persona-history-heading-group"},xe),$e=!1,le,He=()=>{let t=S==="rail",o=t?e.renderRailHeader:void 0,l=null,u=o!==void 0;if(o)try{l=o({collapsed:N,defaultTitle:r.viewTitle})}catch(d){u=!1,$e||($e=!0,console.warn("[persona] history rail renderHeader threw",d))}if(!u&&t&&e.railBrand){if(le===void 0){let d=e.railBrand(!1);le=d?n("span",{className:"persona-history-heading-brand",attrs:{"aria-hidden":"true"}},n("span",{className:"persona-history-brand-mark"},d),n("span",{className:"persona-history-wordmark",text:r.viewTitle})):null}le&&(u=!0,l=le)}xe.classList.toggle("persona-history-sr-only",u),ae.replaceChildren(xe),l&&ae.appendChild(l)};He();let W=n("button",{className:"persona-history-icon-button persona-history-new-icon",attrs:{type:"button","data-persona-history-focus":"new-icon","aria-label":r.newConversationLabel}});W.appendChild(V("plus")),W.addEventListener("click",()=>{re()});let gt=[H,W].map(t=>e.attachTooltip?.({anchor:t,text:()=>t.getAttribute("aria-label")??"",...t===H&&e.collapseShortcut?{hint:()=>X()?e.collapseShortcut.hint:""}:{}})),L=n("div",{className:"persona-history-topbar"}),Ke=null,ke=()=>{let t=S==="rail",o=t?qe?"rail-right":"rail":"panel";o!==Ke&&(Ke=o,o==="rail"?L.append(ae,H):L.append(H,ae),t?W.remove():L.appendChild(W),v.classList.toggle("persona-history-view--rail-right",o==="rail-right"))},q=n("div",{className:"persona-history-scope-alert"}),We=`${p}-scope`,ft=V("plus",18),Se=n("button",{className:"persona-history-new",attrs:{type:"button","data-persona-history-focus":"new"}},ft,n("span",{text:r.newConversationLabel}));Se.addEventListener("click",()=>{re()});let Ce=n("div",{className:"persona-history-list-region"}),Be=e.showDeleteAll!==!1,Ye=!!e.provider.resetDevice,Ge=e.listActions??[],z=Be||Ye||Ge.length>0?Ve({className:"persona-history-list-options",label:r.listOptionsLabel,focusKey:`menu:${$}`,open:!1,inert:!0,iconSize:16,onToggle:()=>et($)}):null,bt=n("h3",{className:"persona-history-conversations-title",text:r.conversationsTitle}),B=n("div",{className:"persona-history-caption",attrs:{"data-persona-history-item":$}},bt,e.showScopeStatus?K:null,z),Y=n("div",{className:"persona-history-body",attrs:{id:ze}},e.showScopeStatus?q:null,Se,B,Ce),Z=e.headerPlacement??"inline";Z==="external"&&L.classList.add("persona-history-topbar--shell","persona-history-topbar--shell-enter");let v=n("div",{className:E("persona-history-view",`persona-history-view--${e.presentation}`,"persona-history-view--enter"),attrs:{role:"region","aria-labelledby":p,"data-persona-history-presentation":e.presentation}},be.element,Z==="inline"?L:null,Y),Le=()=>{v.classList.toggle("persona-history-view--rail-collapsed",N&&X())};Le(),ke();let wt=(t,o)=>{let l=`${p}-s${o}`,u=n("div",{className:E("persona-history-nav",t.placement==="footer"&&"persona-history-nav--footer"),attrs:{role:"group","data-persona-rail-section":t.id,...t.title?{"aria-labelledby":l}:{"aria-label":t.id}}});t.title&&u.appendChild(n("h3",{className:"persona-history-group-heading",text:t.title,attrs:{id:l}}));for(let d of t.items){let C=d.iconNode?.()??null,I=n("button",{className:E("persona-history-nav-item",C&&"persona-history-nav-item--icon"),attrs:{type:"button","aria-label":d.label,"data-persona-rail-item":d.id}},C?n("span",{className:"persona-history-nav-icon"},C):null,n("span",{className:"persona-history-nav-label persona-history-truncate",text:d.label}),d.badge?n("span",{className:"persona-history-nav-badge",text:d.badge}):null);I.addEventListener("click",()=>d.onSelect()),u.appendChild(I)}return u},J=null,je=null,Te=()=>{!J||!U||S!=="rail"||N===je||(je=N,e.railSections.forEach((t,o)=>{if(!t.render)return;let l=J[o],u=t.title?l.firstElementChild:null,d=null;try{d=t.render(N)}catch(C){t.render=void 0,console.warn("[persona] history rail section threw",t.id,C)}l.replaceChildren(...u?[u]:[],...d?[d]:[]),l.hidden=!d}))},Ue=()=>{let t=e.railSections;if(v.classList.toggle("persona-history-view--has-nav",S==="rail"&&!!t?.some(o=>o.placement==="above-conversations")),!!t?.length){if(S!=="rail"){J?.forEach(o=>o.remove());return}J??=t.map(wt);for(let o of["above-conversations","below-conversations","footer"]){let l=o==="above-conversations"?B.parentNode===Y?B:Ce:null;t.forEach((u,d)=>{u.placement===o&&Y.insertBefore(J[d],l)})}Te()}};Ue(),ot(v,"persona-history-view",st);let Xe=(t,o)=>{let l=v.ownerDocument.defaultView?.getComputedStyle(v).getPropertyValue(t),u=Number.parseFloat(l??"");return Number.isFinite(u)&&u>=0?u:o},xt=(t,o)=>v.ownerDocument.defaultView?.getComputedStyle(v).getPropertyValue(t).trim()||o,Q=null,F=()=>{Q!==null&&(clearTimeout(Q),Q=null),v.removeEventListener("animationend",F),v.classList.remove("persona-history-view--enter")};v.addEventListener("animationend",F),Q=setTimeout(()=>{Q=setTimeout(F,Xe("--persona-history-enter-ms",Qt)+60)},0);let ee=null,te=()=>{ee!==null&&(clearTimeout(ee),ee=null),L.classList.remove("persona-history-topbar--shell-enter")},Ht=()=>{te(),L.classList.add("persona-history-topbar--shell-enter"),ee=setTimeout(te,ut+60)};Z==="external"&&(ee=setTimeout(te,ut+60));let pe=[],de=null,kt=()=>{if(de)return de;if(m||or()||typeof v.animate!="function")return F(),null;let t=v.ownerDocument.defaultView?.getComputedStyle(Y).opacity||"1";F(),v.style.pointerEvents="none",P.style.pointerEvents="none";let o={duration:Xe("--persona-history-exit-ms",er),easing:xt("--persona-history-exit-easing",tr),fill:"forwards"},l=rr[S];return pe=[Y.animate([{opacity:t,transform:"none"},{opacity:0,transform:`translateX(${l}px)`}],o)],de=Promise.all(pe.map(ir)).then(()=>{}),de},Ee=(t,o)=>{t&&(o?t.setAttribute("aria-disabled","true"):t.removeAttribute("aria-disabled"))},P=L,Ae=null,St=()=>{let t=e.slots?.header;if(!t)return;let o=`${S}|${fe(w)}|${y?`${y.kind}:${"conversationId"in y?y.conversationId:""}`:""}`;if(o===Ae)return;Ae=o;let l=t({identityStatus:w,pendingAction:y,copy:r,defaultRenderer:()=>L})??L;l!==P&&(P.replaceWith(l),P=l)},Ze=null,Ct=()=>{if(!e.showScopeStatus)return;let t=fe(w);if(t===Ze)return;Ze=t;let o=ht(w,r);Fe.textContent=o.title;let l=nr(w);if(K.hidden=!l,q.replaceChildren(...l?[]:[n("span",{className:"persona-history-scope-alert-title",text:o.title})],n("span",{className:"persona-history-scope-description",text:o.description,attrs:{id:We}})),q.setAttribute("data-persona-history-scope-tone",l?"ambient":"attention"),l?K.setAttribute("aria-describedby",We):K.removeAttribute("aria-describedby"),o.pending?q.setAttribute("role","status"):q.removeAttribute("role"),q.setAttribute("data-persona-history-identity",w.state),K.setAttribute("data-persona-history-identity",w.state),sr(w)){let u=n("button",{className:"persona-history-secondary persona-history-state-action",text:r.retryIdentityLabel,attrs:{type:"button","data-persona-history-focus":"identity-retry"}});u.addEventListener("click",()=>{k()||_("refresh")}),q.appendChild(u)}},Je=t=>y?y.kind==="open"&&y.conversationId===t?"opening":y.kind==="delete"&&y.conversationId===t?"deleting":null:null,Lt=()=>{let t=document.activeElement;return!(t instanceof HTMLElement)||!v.contains(t)?null:t.getAttribute("data-persona-history-focus")},Tt=t=>{if(b&&x){b=!1;let o=v.querySelector(`[data-persona-history-focus="${oe(x)}"]`);if(o){o.focus();return}}t&&v.querySelector(`[data-persona-history-focus="${t}"]`)?.focus()},Et=()=>{if(!M)return null;let t=n("button",{className:"persona-history-secondary persona-history-state-action",text:r.retryLabel,attrs:{type:"button","data-persona-history-focus":"action-retry"}}),o=M;return t.addEventListener("click",()=>{k()||o.retry()}),n("div",{className:"persona-history-row-error",attrs:{role:"alert"}},n("span",{text:o.message}),t)},At=()=>at(a,i(),r,e.grouping).map((t,o)=>{let l=`${p}-g${o}`,u=n("ul",{className:"persona-history-list",attrs:{"aria-labelledby":l}});for(let d of t.items){let C=()=>dt({conversation:d,active:d.id===f,pending:Je(d.id),busy:k(),menuOpen:x===d.id,error:O.get(d.id)??null,avatar:e.rowAvatar,showDelete:e.showDelete!==!1,nowMs:i(),copy:r,onOpen:()=>{ce(d.id)},onToggleMenu:()=>et(d.id),onCloseMenu:De=>T(De),onDelete:()=>{ye(d.id)}}),G=e.slots?.conversation?.({conversation:d,active:d.id===f,pending:Je(d.id),open:()=>ce(d.id),requestDelete:()=>ye(d.id),defaultRenderer:C})??C();u.appendChild(G instanceof HTMLLIElement?G:n("li",{className:"persona-history-item"},G))}return n("div",{className:"persona-history-group",attrs:{"data-persona-history-group":t.key}},n("h3",{className:E("persona-history-group-heading",t.key==="recent"&&"persona-history-sr-only"),text:t.label,attrs:{id:l}}),u)}),Rt=()=>{if(!h)return null;let t=y?.kind==="load-more"||c.kind==="loading"&&c.phase==="load-more",o=n("button",{className:"persona-history-secondary persona-history-load-more",text:t?r.loadingMoreLabel:r.loadMoreLabel,attrs:{type:"button","data-persona-history-focus":"load-more",...t?{"aria-busy":"true","aria-disabled":"true"}:{},...k()&&!t?{"aria-disabled":"true"}:{}}});return o.addEventListener("click",()=>{k()||_("load-more")}),o},Nt=()=>{let t=Lt(),o=[Et()],l=a.length>0;if(l&&(o.push(...At()),o.push(Rt())),c.kind!=="ready"&&!(c.kind==="loading"&&c.phase!=="initial"&&l)){let d=c,C=d.kind==="loading"?void 0:()=>_("refresh"),I=d.kind==="new_conversation_required"?()=>re():void 0,G=()=>yt({state:d,copy:r,identityStatus:w,busy:k(),...C?{onRetry:()=>{C()}}:{},...I?{onStartNew:()=>{I()}}:{}}),De=e.slots?.state?.({state:d,identityStatus:w,copy:r,...C?{retry:C}:{},...I?{startNewConversation:I}:{},defaultRenderer:G});o.push(De??G())}Ce.replaceChildren(...o.filter(d=>!!d)),Tt(t)},Mt=()=>{let t=c.kind==="loading"&&a.length===0,o=[],l=()=>o.length===0?oe($):`${oe($)}-${o.length}`;if(!t)for(let u of Ge)o.push({label:u.label,focusKey:l(),danger:u.danger===!0,onSelect:()=>{u.onSelect({conversations:[...a]})}});return Be&&!(a.length===0&&(c.kind==="empty"||t))&&o.push({label:r.clearHistoryLabel,focusKey:l(),danger:!0,onSelect:()=>{Ne()}}),Ye&&!t&&o.push({label:r.resetIdentityLabel,focusKey:l(),danger:!0,onSelect:()=>{_e()}}),o},_t=()=>{if(Ee(Se,k()),Ee(W,k()),z){let t=Mt(),o=c.kind==="loading"&&a.length===0;z.hidden=t.length===0&&!o,Ee(z,k()||t.length===0),z.setAttribute("aria-expanded",x===$?"true":"false");let l=B.querySelector(".persona-history-menu");if(x!==$||t.length===0)l?.remove();else{let u=Oe({label:r.listOptionsLabel,items:t,onCloseMenu:d=>T(d)});l?l.replaceWith(u):B.appendChild(u)}}B.hidden=S!=="rail"&&(!z||z.hidden)&&(!e.showScopeStatus||K.hidden)},Qe,Dt=()=>{let t=e.onActiveConversationChange;if(!t)return;let o=a.find(u=>u.id===f)??null,l=o?`${o.id}\0${o.title}\0${o.starred?1:0}`:"";l!==Qe&&(Qe=l,t(o))},g=()=>{if(!m){if(Dt(),!U){e.onModelChange?.();return}St(),Ct(),_t(),Nt(),Te()}},T=t=>{if(!x)return;let o=x;x=null,b=!1,g(),t?.restoreFocus&&v.querySelector(`[data-persona-history-focus="menu:${o}"]`)?.focus()},et=t=>{if(x===t){T({restoreFocus:!0});return}x=t,b=!0,g()},tt=t=>{if(!x)return;let o=t.target;o instanceof Node&&v.contains(o)&&o.closest?.(`[data-persona-history-item="${x}"]`)||T()};document.addEventListener("pointerdown",tt,!0);let rt=t=>{t.key!=="Escape"||!x||(t.stopPropagation(),T({restoreFocus:!0}))};v.addEventListener("keydown",rt);async function _(t){if(m)return;let o=++D,l=t==="load-more"?h:null;if(!(t==="load-more"&&!l)){y={kind:t==="load-more"?"load-more":"refresh"},c={kind:"loading",phase:t},t!=="load-more"&&(O.clear(),M=null),T(),g();try{let u=await e.provider.list({limit:s,context:e.context,...l?{cursor:l}:{},...e.targetId?{targetId:e.targetId}:{}});if(m||o!==D)return;a=l?[...a,...u.items]:u.items,h=u.nextCursor,c=a.length===0?{kind:"empty"}:{kind:"ready"}}catch(u){if(m||o!==D)return;c=ct(u)}finally{!m&&o===D&&(y=null,g())}}}let Re=t=>{a=a.filter(o=>o.id!==t),O.delete(t),f===t&&(f=null),a.length===0&&!h&&(c={kind:"empty"})};async function ce(t){if(!(k()||m)){O.delete(t),T(),y={kind:"open",conversationId:t},g();try{if(await e.onSelect(t),m)return;f=t}catch{if(m)return;O.set(t,{message:r.openFailedLabel,retry:()=>{ce(t)}})}finally{m||(y=null,g())}}}async function ye(t){if(k()||m)return"cancelled";O.delete(t),y={kind:"delete",conversationId:t},g();try{let o=await e.onRequestDeleteConversation(t);return m||o==="deleted"&&(Re(t),ne(r.conversationRemovedNotice)),o}catch(o){return m||(ue(o)&&o.code==="not_found"?Re(t):O.set(t,{message:r.deleteFailedLabel,retry:()=>{ye(t)}})),"cancelled"}finally{m||(y=null,g())}}async function re(){if(!(k()||m)){M=null,T(),y={kind:"start-new"},g();try{if(await e.onStartNew(),m)return;c.kind==="new_conversation_required"&&(c=a.length===0?{kind:"empty"}:{kind:"ready"})}catch{if(m)return;M={message:r.errorDescription,retry:()=>{re()}}}finally{m||(y=null,g())}}}async function Ne(){if(k()||m)return"cancelled";M=null,T(),y={kind:"clear"},g();try{let t=await e.onRequestClearHistory();return m||t==="cleared"&&(a=[],h=null,f=null,c={kind:"empty"},ne(r.historyClearedNotice)),t}catch{return m||(M={message:r.errorDescription,retry:()=>{Ne()}}),"cancelled"}finally{m||(y=null,g())}}let Me={outcome:"cancelled"};async function _e(){if(k()||m||!e.onRequestResetIdentity)return Me;M=null,T(),y={kind:"reset"},g();try{let t=await e.onRequestResetIdentity();return m||t.outcome==="reset"&&(ne(t.remoteRevocationConfirmed?r.identityResetNotice:r.identityResetUnconfirmedNotice),y=null,await _("refresh")),t}catch{return m||(M={message:r.errorDescription,retry:()=>{_e()}}),Me}finally{!m&&y?.kind==="reset"&&(y=null,g())}}let Pt=e.provider.subscribeIdentityStatus(t=>{if(m)return;let o=fe(t),l=o!==R;w=t,R=o,g(),l&&t.state!=="verifying"&&ne(ht(t,r).title)}),It=e.provider.subscribeAvailability?.(t=>{if(!m){if(t){_("refresh");return}a=[],h=null,c={kind:"error",reason:"unavailable",retryable:!1},g()}});return g(),_("initial"),{element:v,copy:r,getModel:()=>({conversations:a,activeConversationId:f,state:c,pendingAction:y,identityStatus:w,nextCursor:h}),operations:{refresh:async()=>{k()||await _("refresh")},loadMore:async()=>{k()||await _("load-more")},openConversation:t=>ce(t),startNewConversation:()=>re(),requestDeleteConversation:t=>ye(t),requestClearConversationHistory:()=>Ne(),requestResetHistoryIdentity:()=>_e()},setDomRenderEnabled:t=>{t!==U&&(U=t,t&&g())},refresh:()=>{_("refresh")},setPresentation:t=>{if(t===S)return;F(),S=t,Ae=null;let o=t==="rail";v.classList.toggle("persona-history-view--panel",!o),v.classList.toggle("persona-history-view--rail",o),v.setAttribute("data-persona-history-presentation",t),we(),Le(),ke(),He(),Ue(),g()},setCollapsed:t=>{t!==N&&(N=t,Le(),we(),He(),Te())},setRailSide:t=>{qe=t==="right",ke()},getHeaderElement:()=>P,setHeaderPlacement:t=>{if(t===Z)return;Z=t;let o=t==="external";if(L.classList.toggle("persona-history-topbar--shell",o),o){Ht(),P.remove();return}te(),v.insertBefore(P,Y)},setActiveConversationId:t=>{f!==t&&(f=t,g())},applyConversationSummary:t=>{let o=a.findIndex(l=>l.id===t.id);o!==-1&&(a[o]=t,g())},removeConversationSummary:t=>{a.some(o=>o.id===t)&&(Re(t),g())},setNewConversationRequired:t=>{t?c={kind:"new_conversation_required"}:c.kind==="new_conversation_required"&&(c=a.length===0?{kind:"empty"}:{kind:"ready"}),g()},playExit:kt,destroy:()=>{m=!0,D+=1,F(),te(),gt.forEach(t=>t?.destroy()),P.remove(),pe.forEach(t=>t.cancel()),pe=[],Pt(),It?.(),document.removeEventListener("pointerdown",tt,!0),v.removeEventListener("keydown",rt),be.destroy(),v.remove(),v.replaceChildren()}}}var ar="button:not([disabled])";function lr(e){let r=document.activeElement instanceof HTMLElement?document.activeElement:null,i=Math.random().toString(36).slice(2,8),s=`persona-history-confirm-title-${i}`,p=`persona-history-confirm-desc-${i}`,a=n("button",{className:"persona-history-confirm__cancel",text:e.cancelLabel,attrs:{type:"button"}}),h=n("button",{className:"persona-history-confirm__confirm",text:e.confirmLabel,attrs:{type:"button","data-persona-destructive":"true"}}),c=n("div",{className:"persona-history-confirm__dialog",attrs:{role:"alertdialog","aria-modal":"true","aria-labelledby":s,"aria-describedby":p},style:{maxWidth:"22rem",width:"100%",borderRadius:"var(--persona-radius-lg, 0.75rem)",background:"var(--persona-surface, #ffffff)",color:"var(--persona-text, #111827)",boxShadow:"var(--persona-history-confirm-shadow, 0 20px 40px -12px rgba(0, 0, 0, 0.35))",padding:"20px",display:"flex",flexDirection:"column",gap:"12px"}},n("h2",{className:"persona-history-confirm__title",text:e.title,attrs:{id:s},style:{margin:"0",fontSize:"1rem",fontWeight:"600"}}),n("p",{className:"persona-history-confirm__description",text:e.description,attrs:{id:p},style:{margin:"0",fontSize:"0.875rem",lineHeight:"1.4"}}),n("div",{className:"persona-history-confirm__actions",style:{display:"flex",gap:"8px",justifyContent:"flex-end",flexWrap:"wrap"}},a,h));for(let f of[a,h])f.style.minHeight="44px",f.style.minWidth="88px",f.style.padding="0 16px",f.style.borderRadius="var(--persona-radius-md, 0.5rem)",f.style.cursor="pointer",f.style.font="inherit";a.style.border="1px solid var(--persona-border, rgba(0,0,0,0.12))",a.style.background="transparent",a.style.color="inherit",h.style.border="none",h.style.background="var(--persona-danger, #b42318)",h.style.color="var(--persona-danger-fg, #ffffff)";let y=n("div",{className:"persona-history-confirm",style:{position:"absolute",inset:"0",zIndex:"40",display:"flex",alignItems:"center",justifyContent:"center",padding:"16px",background:"var(--persona-history-confirm-scrim, rgba(15, 23, 42, 0.45))"}},c);return new Promise(f=>{let w=!1,R=b=>{w||(w=!0,y.removeEventListener("keydown",x,!0),y.remove(),r?.focus(),f(b))};function x(b){if(b.key==="Escape"){b.preventDefault(),b.stopPropagation(),R(!1);return}if(b.key!=="Tab")return;let m=Array.from(c.querySelectorAll(ar));if(m.length===0)return;let D=m[0],S=m[m.length-1],j=document.activeElement;b.shiftKey&&(j===D||!c.contains(j))?(b.preventDefault(),S.focus()):!b.shiftKey&&j===S&&(b.preventDefault(),D.focus())}y.addEventListener("keydown",x,!0),y.addEventListener("pointerdown",b=>{b.target===y&&R(!1)}),a.addEventListener("click",()=>R(!1)),h.addEventListener("click",()=>R(!0)),e.host.appendChild(y),a.focus()})}export{he as HISTORY_VIEW_COPY_DEFAULTS,mt as createHistoryView,me as resolveHistoryViewCopy,lr as showHistoryConfirm};