agentstudio 0.2.2 → 0.2.4

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 (89) hide show
  1. package/index.js +2 -2
  2. package/index.js.map +1 -1
  3. package/package.json +1 -1
  4. package/public/assets/{AgentsPage-DgoZNP6l.js → AgentsPage-rLPOC44M.js} +1 -1
  5. package/public/assets/{Button-BHiMThm4.js → Button-CfU7z0eT.js} +1 -1
  6. package/public/assets/{ChatPage-LoTJrT43.js → ChatPage-Cl0wXezZ.js} +88 -88
  7. package/public/assets/{CommandsPage-CwEoyASk.js → CommandsPage-BgFvm2GI.js} +1 -1
  8. package/public/assets/{DashboardPage-BSi_T1tY.js → DashboardPage-BoonTnMH.js} +1 -1
  9. package/public/assets/{FileBrowser-Df-zwNDa.js → FileBrowser-BiAm3yrg.js} +1 -1
  10. package/public/assets/{GeneralSettingsPage-DcGmAzci.js → GeneralSettingsPage-BDayH81k.js} +1 -1
  11. package/public/assets/{LandingPage-DPKvTTja.js → LandingPage-DqS5qWgL.js} +1 -1
  12. package/public/assets/{LoginPage-BPJUgLru.js → LoginPage-C87yR34d.js} +1 -1
  13. package/public/assets/{McpAdminSettingsPage-CZZS-pa0.js → McpAdminSettingsPage-DIJs6UrH.js} +1 -1
  14. package/public/assets/{McpPage-CPF7txxc.js → McpPage-Dc4U_68i.js} +1 -1
  15. package/public/assets/{MemorySettingsPage-YenW4l-g.js → MemorySettingsPage-TErKrnR2.js} +1 -1
  16. package/public/assets/{PluginsPage-zlAB63Im.js → PluginsPage-DmCoLCdj.js} +1 -1
  17. package/public/assets/{ProjectSelector-Bq0NQ_bV.js → ProjectSelector-CFrsNw4L.js} +1 -1
  18. package/public/assets/{ProjectsPage-BMBRp4RN.js → ProjectsPage-DjumWKPo.js} +1 -1
  19. package/public/assets/{ScheduledTasksPage-B_hOD6AS.js → ScheduledTasksPage-CsFL7MD9.js} +1 -1
  20. package/public/assets/{SettingsLayout-CY9Siffq.js → SettingsLayout-D18ZK4TY.js} +1 -1
  21. package/public/assets/{SkillsPage-X-LMnwZd.js → SkillsPage-DxIdnjRM.js} +1 -1
  22. package/public/assets/{SubagentsPage-DIG_rKjQ.js → SubagentsPage-DWCgPFzI.js} +1 -1
  23. package/public/assets/{SystemInfoPage-CWgKWnQg.js → SystemInfoPage-C_kd76VQ.js} +1 -1
  24. package/public/assets/{TelemetrySettingsPage-BLnMagRZ.js → TelemetrySettingsPage-recK8TS7.js} +1 -1
  25. package/public/assets/{ToastTestPage-CQ0nobQd.js → ToastTestPage-DYwSASe6.js} +1 -1
  26. package/public/assets/{VersionSettingsPage-BxjDPWm0.js → VersionSettingsPage-DC_PL1Lo.js} +1 -1
  27. package/public/assets/{_basePickBy-D_S4EWYL.js → _basePickBy-DtI5oYel.js} +1 -1
  28. package/public/assets/{_baseUniq-BmQef9o6.js → _baseUniq-kP1SFZPO.js} +1 -1
  29. package/public/assets/{arc-DzCTkvPU.js → arc-cZ3PN_u0.js} +1 -1
  30. package/public/assets/{architectureDiagram-VXUJARFQ-8nWlVbiO.js → architectureDiagram-VXUJARFQ-BRn1b9Ct.js} +1 -1
  31. package/public/assets/{blockDiagram-VD42YOAC-DbHo3vzo.js → blockDiagram-VD42YOAC-B6Fmf92Z.js} +1 -1
  32. package/public/assets/{c4Diagram-YG6GDRKO-DqFGiZ7Y.js → c4Diagram-YG6GDRKO-BdApn9Kl.js} +1 -1
  33. package/public/assets/channel-CIc09SLj.js +1 -0
  34. package/public/assets/{chunk-4BX2VUAB-KZtUHSw3.js → chunk-4BX2VUAB-CFByNt-E.js} +1 -1
  35. package/public/assets/{chunk-55IACEB6-DTotxzVH.js → chunk-55IACEB6-DOcPvMrL.js} +1 -1
  36. package/public/assets/{chunk-B4BG7PRW-CkjDO6x_.js → chunk-B4BG7PRW-CYQhDwZH.js} +1 -1
  37. package/public/assets/{chunk-DI55MBZ5-ZN0hc9BQ.js → chunk-DI55MBZ5-fO-G4DQE.js} +1 -1
  38. package/public/assets/{chunk-FMBD7UC4--jXmtjeY.js → chunk-FMBD7UC4-CvFCkBe9.js} +1 -1
  39. package/public/assets/{chunk-QN33PNHL-D-FiWiLB.js → chunk-QN33PNHL-C4dfuLJX.js} +1 -1
  40. package/public/assets/{chunk-QZHKN3VN-BRs4hln6.js → chunk-QZHKN3VN-BHcbArKX.js} +1 -1
  41. package/public/assets/{chunk-TZMSLE5B-BUZTflc7.js → chunk-TZMSLE5B-NAHq3aeT.js} +1 -1
  42. package/public/assets/{classDiagram-2ON5EDUG-7Lo3C-C9.js → classDiagram-2ON5EDUG-BX8bS8-I.js} +1 -1
  43. package/public/assets/{classDiagram-v2-WZHVMYZB-7Lo3C-C9.js → classDiagram-v2-WZHVMYZB-BX8bS8-I.js} +1 -1
  44. package/public/assets/clone-CPcgYjA1.js +1 -0
  45. package/public/assets/{cose-bilkent-S5V4N54A-s2WN1XmV.js → cose-bilkent-S5V4N54A-C06C9ZJa.js} +1 -1
  46. package/public/assets/{dagre-6UL2VRFP-CxaKwQyB.js → dagre-6UL2VRFP-DCPyTNLq.js} +1 -1
  47. package/public/assets/{diagram-PSM6KHXK-SU1hlbjn.js → diagram-PSM6KHXK-D_EHe21D.js} +1 -1
  48. package/public/assets/{diagram-QEK2KX5R-hcM85tep.js → diagram-QEK2KX5R-BlulhQOc.js} +1 -1
  49. package/public/assets/{diagram-S2PKOQOG-BOmtKWhQ.js → diagram-S2PKOQOG-DeNVHhsT.js} +1 -1
  50. package/public/assets/{erDiagram-Q2GNP2WA-CsTay3Qr.js → erDiagram-Q2GNP2WA-Bnz9kE57.js} +1 -1
  51. package/public/assets/{flowDiagram-NV44I4VS-QLwVU4W3.js → flowDiagram-NV44I4VS-CFn031Y3.js} +1 -1
  52. package/public/assets/{ganttDiagram-LVOFAZNH-CEJd76u6.js → ganttDiagram-LVOFAZNH-BSduoCu_.js} +1 -1
  53. package/public/assets/{gitGraphDiagram-NY62KEGX-Cr7KuVc8.js → gitGraphDiagram-NY62KEGX-Bjbb7yAS.js} +1 -1
  54. package/public/assets/{graph-B12xs1JB.js → graph-D2RBy8e5.js} +1 -1
  55. package/public/assets/{index-BFYHztzB.js → index-BLjehayc.js} +2 -2
  56. package/public/assets/{infoDiagram-F6ZHWCRC-B6PyESp0.js → infoDiagram-F6ZHWCRC-BfeoDjKc.js} +1 -1
  57. package/public/assets/{journeyDiagram-XKPGCS4Q-DSlyGZSv.js → journeyDiagram-XKPGCS4Q-8tSVYPVe.js} +1 -1
  58. package/public/assets/{kanban-definition-3W4ZIXB7-DbDLw__g.js → kanban-definition-3W4ZIXB7-DwrpLyOH.js} +1 -1
  59. package/public/assets/{layout-OtboCb25.js → layout-B6w-fMcI.js} +1 -1
  60. package/public/assets/{linear-Bg3HtxIB.js → linear-ClbokBhh.js} +1 -1
  61. package/public/assets/{mindmap-definition-VGOIOE7T-DZ4bp0qm.js → mindmap-definition-VGOIOE7T-BurOGP_m.js} +1 -1
  62. package/public/assets/{pieDiagram-ADFJNKIX-Am2n8jc0.js → pieDiagram-ADFJNKIX-MUQTeIhp.js} +1 -1
  63. package/public/assets/{quadrantDiagram-AYHSOK5B-DPm8iQzH.js → quadrantDiagram-AYHSOK5B-COgCGFdz.js} +1 -1
  64. package/public/assets/{requirementDiagram-UZGBJVZJ-hVW5YE3R.js → requirementDiagram-UZGBJVZJ-DlYkINPo.js} +1 -1
  65. package/public/assets/{sankeyDiagram-TZEHDZUN-DX8gGHoq.js → sankeyDiagram-TZEHDZUN-oj7WNP67.js} +1 -1
  66. package/public/assets/{sequenceDiagram-WL72ISMW-Brl8T0m9.js → sequenceDiagram-WL72ISMW-TUi1zhlp.js} +1 -1
  67. package/public/assets/{stateDiagram-FKZM4ZOC-CxrXSnfX.js → stateDiagram-FKZM4ZOC-B7tNjdp0.js} +1 -1
  68. package/public/assets/{stateDiagram-v2-4FDKWEC3-BJfGHaLv.js → stateDiagram-v2-4FDKWEC3-9TkkItno.js} +1 -1
  69. package/public/assets/{table-D-FJ6K6j.js → table-Br8ioTXr.js} +1 -1
  70. package/public/assets/{timeline-definition-IT6M3QCI-CO6fKxuR.js → timeline-definition-IT6M3QCI-CSSGR7Wj.js} +1 -1
  71. package/public/assets/{treemap-KMMF4GRG-BsoblFM5.js → treemap-KMMF4GRG-BAb3Fz4w.js} +1 -1
  72. package/public/assets/{xychartDiagram-PRI3JC2R-B6g-H_PO.js → xychartDiagram-PRI3JC2R-Cd2BfyOw.js} +1 -1
  73. package/public/index.html +1 -1
  74. package/routes/sessions.d.ts.map +1 -1
  75. package/routes/sessions.js +17 -3
  76. package/routes/sessions.js.map +1 -1
  77. package/services/__tests__/projectMetadataStorage.test.d.ts +5 -0
  78. package/services/__tests__/projectMetadataStorage.test.d.ts.map +1 -0
  79. package/services/__tests__/projectMetadataStorage.test.js +154 -0
  80. package/services/__tests__/projectMetadataStorage.test.js.map +1 -0
  81. package/services/projectMetadataStorage.d.ts +7 -1
  82. package/services/projectMetadataStorage.d.ts.map +1 -1
  83. package/services/projectMetadataStorage.js +102 -27
  84. package/services/projectMetadataStorage.js.map +1 -1
  85. package/services/sessionManager.d.ts.map +1 -1
  86. package/services/sessionManager.js +17 -3
  87. package/services/sessionManager.js.map +1 -1
  88. package/public/assets/channel-DlGw39mX.js +0 -1
  89. package/public/assets/clone-180En6VP.js +0 -1
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DashboardPage-BSi_T1tY.js","assets/data-structures-C0h9Oap1.js","assets/monaco-editor-DHKm5-VF.js","assets/syntax-highlighting-CnREyncB.js","assets/useProjects-cgsJNlsy.js","assets/agents-D9dWnZr0.js","assets/tools-zTM46-tZ.js","assets/ui-components-BsYwJvCF.js","assets/agents-DwCY2K8p.css","assets/useAgents-BlQGwXjx.js","assets/useSessions-BAxZ6l2n.js","assets/AgentsPage-DgoZNP6l.js","assets/table-D-FJ6K6j.js","assets/ProjectSelector-Bq0NQ_bV.js","assets/FileBrowser-Df-zwNDa.js","assets/UnifiedToolSelector-Bw-E7HW4.js","assets/ToolsList-C9LELdNX.js","assets/ProjectsPage-BMBRp4RN.js","assets/dateFormat-CXa8VnEC.js","assets/useCommands-DOxDeFSx.js","assets/CommandForm-CZRscRtm.js","assets/SubagentForm-Cq06CQqr.js","assets/useClaudeVersions-DJ6VKG1y.js","assets/McpPage-CPF7txxc.js","assets/SettingsLayout-CY9Siffq.js","assets/GeneralSettingsPage-DcGmAzci.js","assets/VersionSettingsPage-BxjDPWm0.js","assets/MemorySettingsPage-YenW4l-g.js","assets/SubagentsPage-DIG_rKjQ.js","assets/McpAdminSettingsPage-CZZS-pa0.js","assets/TelemetrySettingsPage-BLnMagRZ.js","assets/SystemInfoPage-CWgKWnQg.js","assets/WebSocketTunnelPage-CQWcZK_H.js","assets/CommandsPage-CwEoyASk.js","assets/SkillsPage-X-LMnwZd.js","assets/Button-BHiMThm4.js","assets/FileExplorer-BB3suHzW.js","assets/PluginsPage-zlAB63Im.js","assets/ScheduledTasksPage-B_hOD6AS.js","assets/ChatPage-LoTJrT43.js","assets/ChatPage-BvQmXfcP.css","assets/LandingPage-DPKvTTja.js","assets/LoginPage-BPJUgLru.js","assets/ToastTestPage-CQ0nobQd.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DashboardPage-BoonTnMH.js","assets/data-structures-C0h9Oap1.js","assets/monaco-editor-DHKm5-VF.js","assets/syntax-highlighting-CnREyncB.js","assets/useProjects-cgsJNlsy.js","assets/agents-D9dWnZr0.js","assets/tools-zTM46-tZ.js","assets/ui-components-BsYwJvCF.js","assets/agents-DwCY2K8p.css","assets/useAgents-BlQGwXjx.js","assets/useSessions-BAxZ6l2n.js","assets/AgentsPage-rLPOC44M.js","assets/table-Br8ioTXr.js","assets/ProjectSelector-CFrsNw4L.js","assets/FileBrowser-BiAm3yrg.js","assets/UnifiedToolSelector-Bw-E7HW4.js","assets/ToolsList-C9LELdNX.js","assets/ProjectsPage-DjumWKPo.js","assets/dateFormat-CXa8VnEC.js","assets/useCommands-DOxDeFSx.js","assets/CommandForm-CZRscRtm.js","assets/SubagentForm-Cq06CQqr.js","assets/useClaudeVersions-DJ6VKG1y.js","assets/McpPage-Dc4U_68i.js","assets/SettingsLayout-D18ZK4TY.js","assets/GeneralSettingsPage-BDayH81k.js","assets/VersionSettingsPage-DC_PL1Lo.js","assets/MemorySettingsPage-TErKrnR2.js","assets/SubagentsPage-DWCgPFzI.js","assets/McpAdminSettingsPage-DIJs6UrH.js","assets/TelemetrySettingsPage-recK8TS7.js","assets/SystemInfoPage-C_kd76VQ.js","assets/WebSocketTunnelPage-CQWcZK_H.js","assets/CommandsPage-BgFvm2GI.js","assets/SkillsPage-DxIdnjRM.js","assets/Button-CfU7z0eT.js","assets/FileExplorer-BB3suHzW.js","assets/PluginsPage-DmCoLCdj.js","assets/ScheduledTasksPage-CsFL7MD9.js","assets/ChatPage-Cl0wXezZ.js","assets/ChatPage-BvQmXfcP.css","assets/LandingPage-DqS5qWgL.js","assets/LoginPage-C87yR34d.js","assets/ToastTestPage-DYwSASe6.js"])))=>i.map(i=>d[i]);
2
2
  import{j as g}from"./data-structures-C0h9Oap1.js";import{a as ob,r as S,g as nw,W as gi,R as aw}from"./monaco-editor-DHKm5-VF.js";import{c as rt}from"./syntax-highlighting-CnREyncB.js";import{l as iw,s as sw,d as rw,e as ow,r as lw,f as cw,g as mn,h as Zf,u as uw,b as lb,c as dw,A as uf,j as df,k as Cv,m as Il,Q as fw,n as hw}from"./agents-D9dWnZr0.js";import{u as Fn,i as pw,a as mw}from"./tools-zTM46-tZ.js";import{_ as ao,aT as gw,r as dc,C as An,n as Yl,X as xi,v as ff,a3 as vw,aU as yw,Y as kv,ap as Rd,aV as bw,y as _w,aW as Sw,a8 as xw,E as ww,z as Wf,K as Av,M as Ev,aX as Cw,f as kw,t as Tv,m as Aw,V as Ew,aK as Tw,Z as Nw,aY as Mw,al as jw,T as Rw,a4 as Dw,a7 as Pw,G as Ow,k as Lw,l as Fw,aZ as Uw,ar as zw,e as Iw,aE as Hw,a_ as Bw,ak as qw,L as cb,aB as $w,j as Vw,U as hf,a6 as Gw,I as Nv,b as Yw,a$ as Kw}from"./ui-components-BsYwJvCF.js";(function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))r(l);new MutationObserver(l=>{for(const c of l)if(c.type==="childList")for(const f of c.addedNodes)f.tagName==="LINK"&&f.rel==="modulepreload"&&r(f)}).observe(document,{childList:!0,subtree:!0});function a(l){const c={};return l.integrity&&(c.integrity=l.integrity),l.referrerPolicy&&(c.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?c.credentials="include":l.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function r(l){if(l.ep)return;l.ep=!0;const c=a(l);fetch(l.href,c)}})();var Dd={exports:{}},Er={},Pd={exports:{}},Od={};/**
3
3
  * @license React
4
4
  * scheduler.production.js
@@ -84,7 +84,7 @@ pnpm run dev:backend`,E=async()=>{try{await navigator.clipboard.writeText(k),C(!
84
84
  `),p=c;p<h.length;p++){var m=h[p];if(!(m.length>1024)){var y=uy.test(m)?m.replace(uy,"$1"):m;if(!y.match(/\S*Error: /)){for(var _ of a){var x=_(y,s);if(x){f.push(x);break}}if(f.length>=dy)break}}}return(function(A){if(!A.length)return[];var C=Array.from(A);return C.reverse(),C.slice(0,dy).map((k=>{return ee({},k,{filename:k.filename||(E=C,E[E.length-1]||{}).filename,function:k.function||ks});var E}))})(f)}})("web:javascript",XE,WE)}class eT{match(n){return this.isDOMException(n)||this.isDOMError(n)}coerce(n,a){var r=mt(n.stack);return{type:this.getType(n),value:this.getValue(n),stack:r?n.stack:void 0,cause:n.cause?a.next(n.cause):void 0,synthetic:!1}}getType(n){return this.isDOMError(n)?"DOMError":"DOMException"}getValue(n){var a=n.name||(this.isDOMError(n)?"DOMError":"DOMException");return n.message?a+": "+n.message:a}isDOMException(n){return Xl(n,"DOMException")}isDOMError(n){return Xl(n,"DOMError")}}class tT{match(n){return(a=>a instanceof Error)(n)}coerce(n,a){return{type:this.getType(n),value:this.getMessage(n,a),stack:this.getStack(n),cause:n.cause?a.next(n.cause):void 0,synthetic:!1}}getType(n){return n.name||n.constructor.name}getMessage(n,a){var r=n.message;return r.error&&typeof r.error.message=="string"?String(r.error.message):String(r)}getStack(n){return n.stacktrace||n.stack||void 0}}class nT{constructor(){}match(n){return Xl(n,"ErrorEvent")&&n.error!=null}coerce(n,a){var r,l=a.apply(n.error);return l||{type:"ErrorEvent",value:n.message,stack:(r=a.syntheticException)==null?void 0:r.stack,synthetic:!0}}}var aT=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;class iT{match(n){return typeof n=="string"}coerce(n,a){var r,[l,c]=this.getInfos(n);return{type:l??"Error",value:c??n,stack:(r=a.syntheticException)==null?void 0:r.stack,synthetic:!0}}getInfos(n){var a="Error",r=n,l=n.match(aT);return l&&(a=l[1],r=l[2]),[a,r]}}var sT=["fatal","error","warning","log","info","debug"];function H0(s,n){n===void 0&&(n=40);var a=Object.keys(s);if(a.sort(),!a.length)return"[object has no keys]";for(var r=a.length;r>0;r--){var l=a.slice(0,r).join(", ");if(!(l.length>n))return r===a.length||l.length<=n?l:l.slice(0,n)+"..."}return""}class rT{match(n){return typeof n=="object"&&n!==null}coerce(n,a){var r,l=this.getErrorPropertyFromObject(n);return l?a.apply(l):{type:this.getType(n),value:this.getValue(n),stack:(r=a.syntheticException)==null?void 0:r.stack,level:this.isSeverityLevel(n.level)?n.level:"error",synthetic:!0}}getType(n){return w0(n)?n.constructor.name:"Error"}getValue(n){if("name"in n&&typeof n.name=="string"){var a="'"+n.name+"' captured as exception";return"message"in n&&typeof n.message=="string"&&(a+=" with message: '"+n.message+"'"),a}if("message"in n&&typeof n.message=="string")return n.message;var r=this.getObjectClassName(n);return(r&&r!=="Object"?"'"+r+"'":"Object")+" captured as exception with keys: "+H0(n)}isSeverityLevel(n){return mt(n)&&!Nf(n)&&sT.indexOf(n)>=0}getErrorPropertyFromObject(n){for(var a in n)if(Object.prototype.hasOwnProperty.call(n,a)){var r=n[a];if(qE(r))return r}}getObjectClassName(n){try{var a=Object.getPrototypeOf(n);return a?a.constructor.name:void 0}catch{return}}}class oT{match(n){return w0(n)}coerce(n,a){var r,l=n.constructor.name;return{type:l,value:l+" captured as exception with keys: "+H0(n),stack:(r=a.syntheticException)==null?void 0:r.stack,synthetic:!0}}}class lT{match(n){return Mf(n)}coerce(n,a){var r;return{type:"Error",value:"Primitive value captured as exception: "+String(n),stack:(r=a.syntheticException)==null?void 0:r.stack,synthetic:!0}}}class cT{match(n){return Xl(n,"PromiseRejectionEvent")}coerce(n,a){var r,l=this.getUnhandledRejectionReason(n);return Mf(l)?{type:"UnhandledRejection",value:"Non-Error promise rejection captured with value: "+String(l),stack:(r=a.syntheticException)==null?void 0:r.stack,synthetic:!0}:a.apply(l)}getUnhandledRejectionReason(n){if(Mf(n))return n;try{if("reason"in n)return n.reason;if("detail"in n&&"reason"in n.detail)return n.detail.reason}catch{}return n}}var B0=function(s,n){var{debugEnabled:a}=n===void 0?{}:n,r={k:function(l){if(U&&(oa.DEBUG||ce.POSTHOG_DEBUG||a)&&!X(U.console)&&U.console){for(var c=("__rrweb_original__"in U.console[l])?U.console[l].__rrweb_original__:U.console[l],f=arguments.length,h=new Array(f>1?f-1:0),p=1;p<f;p++)h[p-1]=arguments[p];c(s,...h)}},info:function(){for(var l=arguments.length,c=new Array(l),f=0;f<l;f++)c[f]=arguments[f];r.k("log",...c)},warn:function(){for(var l=arguments.length,c=new Array(l),f=0;f<l;f++)c[f]=arguments[f];r.k("warn",...c)},error:function(){for(var l=arguments.length,c=new Array(l),f=0;f<l;f++)c[f]=arguments[f];r.k("error",...c)},critical:function(){for(var l=arguments.length,c=new Array(l),f=0;f<l;f++)c[f]=arguments[f];console.error(s,...c)},uninitializedWarning:l=>{r.error("You must initialize PostHog before calling "+l)},createLogger:(l,c)=>B0(s+" "+l,c)};return r},W=B0("[PostHog.js]"),nt=W.createLogger,uT=nt("[ExternalScriptsLoader]"),fy=(s,n,a)=>{if(s.config.disable_external_dependency_loading)return uT.warn(n+" was requested but loading of external scripts is disabled."),a("Loading of external scripts is disabled");var r=J?.querySelectorAll("script");if(r){for(var l,c=function(){if(r[f].src===n){var p=r[f];return p.__posthog_loading_callback_fired?{v:a()}:(p.addEventListener("load",(m=>{p.__posthog_loading_callback_fired=!0,a(void 0,m)})),p.onerror=m=>a(m),{v:void 0})}},f=0;f<r.length;f++)if(l=c())return l.v}var h=()=>{if(!J)return a("document not found");var p=J.createElement("script");if(p.type="text/javascript",p.crossOrigin="anonymous",p.src=n,p.onload=_=>{p.__posthog_loading_callback_fired=!0,a(void 0,_)},p.onerror=_=>a(_),s.config.prepare_external_dependency_script&&(p=s.config.prepare_external_dependency_script(p)),!p)return a("prepare_external_dependency_script returned null");var m,y=J.querySelectorAll("body > script");y.length>0?(m=y[0].parentNode)==null||m.insertBefore(p,y[0]):J.body.appendChild(p)};J!=null&&J.body?h():J?.addEventListener("DOMContentLoaded",h)};ce.__PosthogExtensions__=ce.__PosthogExtensions__||{},ce.__PosthogExtensions__.loadExternalDependency=(s,n,a)=>{var r="/static/"+n+".js?v="+s.version;if(n==="remote-config"&&(r="/array/"+s.config.token+"/config.js"),n==="toolbar"){var l=3e5;r=r+"&t="+Math.floor(Date.now()/l)*l}var c=s.requestRouter.endpointFor("assets",r);fy(s,c,a)},ce.__PosthogExtensions__.loadSiteApp=(s,n,a)=>{var r=s.requestRouter.endpointFor("api",n);fy(s,r,a)};var Zl={};function Xa(s,n,a){if(Pe(s)){if(ty&&s.forEach===ty)s.forEach(n,a);else if("length"in s&&s.length===+s.length){for(var r=0,l=s.length;r<l;r++)if(r in s&&n.call(a,s[r],r)===Zl)return}}}function $e(s,n,a){if(!Re(s)){if(Pe(s))return Xa(s,n,a);if(TE(s)){for(var r of s.entries())if(n.call(a,r[1],r[0])===Zl)return}else for(var l in s)if(x0.call(s,l)&&n.call(a,s[l],l)===Zl)return}}var st=function(s){for(var n=arguments.length,a=new Array(n>1?n-1:0),r=1;r<n;r++)a[r-1]=arguments[r];return Xa(a,(function(l){for(var c in l)l[c]!==void 0&&(s[c]=l[c])})),s},Ds=function(s){for(var n=arguments.length,a=new Array(n>1?n-1:0),r=1;r<n;r++)a[r-1]=arguments[r];return Xa(a,(function(l){Xa(l,(function(c){s.push(c)}))})),s};function Vl(s){for(var n=Object.keys(s),a=n.length,r=new Array(a);a--;)r[a]=[n[a],s[n[a]]];return r}var hy=function(s){try{return s()}catch{return}},dT=function(s){return function(){try{for(var n=arguments.length,a=new Array(n),r=0;r<n;r++)a[r]=arguments[r];return s.apply(this,a)}catch(l){W.critical("Implementation error. Please turn on debug mode and open a ticket on https://app.posthog.com/home#panel=support%3Asupport%3A."),W.critical(l)}}},yh=function(s){var n={};return $e(s,(function(a,r){(mt(a)&&a.length>0||ma(a))&&(n[r]=a)})),n};function fT(s,n){return a=s,r=c=>mt(c)&&!Nn(n)?c.slice(0,n):c,l=new Set,(function c(f,h){return f!==Object(f)?r?r(f,h):f:l.has(f)?void 0:(l.add(f),Pe(f)?(p=[],Xa(f,(m=>{p.push(c(m))}))):(p={},$e(f,((m,y)=>{l.has(m)||(p[y]=c(m,y))}))),p);var p})(a);var a,r,l}var hT=["herokuapp.com","vercel.app","netlify.app"];function pT(s){var n=s?.hostname;if(!mt(n))return!1;var a=n.split(".").slice(-2).join(".");for(var r of hT)if(a===r)return!1;return!0}function q0(s,n){for(var a=0;a<s.length;a++)if(n(s[a]))return s[a]}function dt(s,n,a,r){var{capture:l=!1,passive:c=!0}=r??{};s?.addEventListener(n,a,{capture:l,passive:c})}var $0="$people_distinct_id",Ir="__alias",Hr="__timers",py="$autocapture_disabled_server_side",Of="$heatmaps_enabled_server_side",my="$exception_capture_enabled_server_side",Lf="$error_tracking_suppression_rules",gy="$error_tracking_capture_extension_exceptions",vy="$web_vitals_enabled_server_side",V0="$dead_clicks_enabled_server_side",yy="$product_tours_enabled_server_side",by="$web_vitals_allowed_metrics",Kd="$session_recording_remote_config",Wl="$sesid",G0="$session_is_sampled",Ss="$enabled_feature_flags",Br="$early_access_features",Ff="$feature_flag_details",qr="$stored_person_properties",Si="$stored_group_properties",Uf="$surveys",Jl="$flag_call_reported",la="$user_state",zf="$client_session_props",If="$capture_rate_limit",Hf="$initial_campaign_params",Bf="$initial_referrer_info",ec="$initial_person_info",tc="$epp",Y0="__POSTHOG_TOOLBAR__",Mr="$posthog_cookieless",mT=[$0,Ir,"__cmpns",Hr,"$session_recording_enabled_server_side",Of,Wl,Ss,Lf,la,Br,Ff,Si,qr,Uf,Jl,zf,If,Hf,Bf,tc,ec,"$conversations_widget_session_id","$conversations_ticket_id","$conversations_widget_state","$conversations_user_traits"];function _y(s){return s instanceof Element&&(s.id===Y0||!(s.closest==null||!s.closest(".toolbar-global-fade-container")))}function yc(s){return!!s&&s.nodeType===1}function Qa(s,n){return!!s&&!!s.tagName&&s.tagName.toLowerCase()===n.toLowerCase()}function K0(s){return!!s&&s.nodeType===3}function X0(s){return!!s&&s.nodeType===11}function bh(s){return s?gc(s).split(/\s+/):[]}function Sy(s){var n=U?.location.href;return!!(n&&s&&s.some((a=>n.match(a))))}function nc(s){var n="";switch(typeof s.className){case"string":n=s.className;break;case"object":n=(s.className&&"baseVal"in s.className?s.className.baseVal:null)||s.getAttribute("class")||"";break;default:n=""}return bh(n)}function Q0(s){return Re(s)?null:gc(s).split(/(\s+)/).filter((n=>no(n))).join("").replace(/[\r\n]/g," ").replace(/[ ]+/g," ").substring(0,255)}function co(s){var n="";return qf(s)&&!t_(s)&&s.childNodes&&s.childNodes.length&&$e(s.childNodes,(function(a){var r;K0(a)&&a.textContent&&(n+=(r=Q0(a.textContent))!==null&&r!==void 0?r:"")})),gc(n)}function Z0(s){return X(s.target)?s.srcElement||null:(n=s.target)!=null&&n.shadowRoot?s.composedPath()[0]||null:s.target||null;var n}var _h=["a","button","form","input","select","textarea","label"];function W0(s,n){if(X(n))return!0;var a,r=function(c){if(n.some((f=>c.matches(f))))return{v:!0}};for(var l of s)if(a=r(l))return a.v;return!1}function J0(s){var n=s.parentNode;return!(!n||!yc(n))&&n}var gT=["next","previous","prev",">","<"],xy=10,wy=[".ph-no-rageclick",".ph-no-capture"];function vT(s,n){if(!U||Sh(s))return!1;var a,r,l;if(ha(n)?(a=!!n&&wy,r=void 0):(a=(l=n?.css_selector_ignorelist)!==null&&l!==void 0?l:wy,r=n?.content_ignorelist),a===!1)return!1;var{targetElementList:c}=e_(s,!1);return!(function(f,h){if(f===!1||X(f))return!1;var p;if(f===!0)p=gT;else{if(!Pe(f))return!1;if(f.length>xy)return W.error("[PostHog] content_ignorelist array cannot exceed "+xy+" items. Use css_selector_ignorelist for more complex matching."),!1;p=f.map((m=>m.toLowerCase()))}return h.some((m=>{var{safeText:y,ariaLabel:_}=m;return p.some((x=>y.includes(x)||_.includes(x)))}))})(r,c.map((f=>{var h;return{safeText:co(f).toLowerCase(),ariaLabel:((h=f.getAttribute("aria-label"))==null?void 0:h.toLowerCase().trim())||""}})))&&!W0(c,a)}var Sh=s=>!s||Qa(s,"html")||!yc(s),e_=(s,n)=>{if(!U||Sh(s))return{parentIsUsefulElement:!1,targetElementList:[]};for(var a=!1,r=[s],l=s;l.parentNode&&!Qa(l,"body");)if(X0(l.parentNode))r.push(l.parentNode.host),l=l.parentNode.host;else{var c=J0(l);if(!c)break;if(n||_h.indexOf(c.tagName.toLowerCase())>-1)a=!0;else{var f=U.getComputedStyle(c);f&&f.getPropertyValue("cursor")==="pointer"&&(a=!0)}r.push(c),l=c}return{parentIsUsefulElement:a,targetElementList:r}};function yT(s,n,a,r,l){var c,f,h,p;if(a===void 0&&(a=void 0),!U||Sh(s)||(c=a)!=null&&c.url_allowlist&&!Sy(a.url_allowlist)||(f=a)!=null&&f.url_ignorelist&&Sy(a.url_ignorelist))return!1;if((h=a)!=null&&h.dom_event_allowlist){var m=a.dom_event_allowlist;if(m&&!m.some((C=>n.type===C)))return!1}var{parentIsUsefulElement:y,targetElementList:_}=e_(s,r);if(!(function(C,k){var E=k?.element_allowlist;if(X(E))return!0;var M,j=function(Y){if(E.some((G=>Y.tagName.toLowerCase()===G)))return{v:!0}};for(var z of C)if(M=j(z))return M.v;return!1})(_,a)||!W0(_,(p=a)==null?void 0:p.css_selector_allowlist))return!1;var x=U.getComputedStyle(s);if(x&&x.getPropertyValue("cursor")==="pointer"&&n.type==="click")return!0;var A=s.tagName.toLowerCase();switch(A){case"html":return!1;case"form":return(l||["submit"]).indexOf(n.type)>=0;case"input":case"select":case"textarea":return(l||["change","click"]).indexOf(n.type)>=0;default:return y?(l||["click"]).indexOf(n.type)>=0:(l||["click"]).indexOf(n.type)>=0&&(_h.indexOf(A)>-1||s.getAttribute("contenteditable")==="true")}}function qf(s){for(var n=s;n.parentNode&&!Qa(n,"body");n=n.parentNode){var a=nc(n);if(Ce(a,"ph-sensitive")||Ce(a,"ph-no-capture"))return!1}if(Ce(nc(s),"ph-include"))return!0;var r=s.type||"";if(mt(r))switch(r.toLowerCase()){case"hidden":case"password":return!1}var l=s.name||s.id||"";return!(mt(l)&&/^cc|cardnum|ccnum|creditcard|csc|cvc|cvv|exp|pass|pwd|routing|seccode|securitycode|securitynum|socialsec|socsec|ssn/i.test(l.replace(/[^a-zA-Z0-9]/g,"")))}function t_(s){return!!(Qa(s,"input")&&!["button","checkbox","submit","reset"].includes(s.type)||Qa(s,"select")||Qa(s,"textarea")||s.getAttribute("contenteditable")==="true")}var n_="(4[0-9]{12}(?:[0-9]{3})?)|(5[1-5][0-9]{14})|(6(?:011|5[0-9]{2})[0-9]{12})|(3[47][0-9]{13})|(3(?:0[0-5]|[68][0-9])[0-9]{11})|((?:2131|1800|35[0-9]{3})[0-9]{11})",bT=new RegExp("^(?:"+n_+")$"),_T=new RegExp(n_),a_="\\d{3}-?\\d{2}-?\\d{4}",ST=new RegExp("^("+a_+")$"),xT=new RegExp("("+a_+")");function no(s,n){return n===void 0&&(n=!0),!(Re(s)||mt(s)&&(s=gc(s),(n?bT:_T).test((s||"").replace(/[- ]/g,""))||(n?ST:xT).test(s)))}function i_(s){var n=co(s);return no(n=(n+" "+s_(s)).trim())?n:""}function s_(s){var n="";return s&&s.childNodes&&s.childNodes.length&&$e(s.childNodes,(function(a){var r;if(a&&((r=a.tagName)==null?void 0:r.toLowerCase())==="span")try{var l=co(a);n=(n+" "+l).trim(),a.childNodes&&a.childNodes.length&&(n=(n+" "+s_(a)).trim())}catch(c){W.error("[AutoCapture]",c)}})),n}function wT(s){return(function(n){var a=n.map((r=>{var l,c,f="";if(r.tag_name&&(f+=r.tag_name),r.attr_class)for(var h of(r.attr_class.sort(),r.attr_class))f+="."+h.replace(/"/g,"");var p=ee({},r.text?{text:r.text}:{},{"nth-child":(l=r.nth_child)!==null&&l!==void 0?l:0,"nth-of-type":(c=r.nth_of_type)!==null&&c!==void 0?c:0},r.href?{href:r.href}:{},r.attr_id?{attr_id:r.attr_id}:{},r.attributes),m={};return Vl(p).sort(((y,_)=>{var[x]=y,[A]=_;return x.localeCompare(A)})).forEach((y=>{var[_,x]=y;return m[Cy(_.toString())]=Cy(x.toString())})),f+=":",f+=Vl(m).map((y=>{var[_,x]=y;return _+'="'+x+'"'})).join("")}));return a.join(";")})((function(n){return n.map((a=>{var r,l,c={text:(r=a.$el_text)==null?void 0:r.slice(0,400),tag_name:a.tag_name,href:(l=a.attr__href)==null?void 0:l.slice(0,2048),attr_class:CT(a),attr_id:a.attr__id,nth_child:a.nth_child,nth_of_type:a.nth_of_type,attributes:{}};return Vl(a).filter((f=>{var[h]=f;return h.indexOf("attr__")===0})).forEach((f=>{var[h,p]=f;return c.attributes[h]=p})),c}))})(s))}function Cy(s){return s.replace(/"|\\"/g,'\\"')}function CT(s){var n=s.attr__class;return n?Pe(n)?n:bh(n):void 0}class r_{constructor(n){this.disabled=n===!1;var a=yt(n)?n:{};this.thresholdPx=a.threshold_px||30,this.timeoutMs=a.timeout_ms||1e3,this.clickCount=a.click_count||3,this.clicks=[]}isRageClick(n,a,r){if(this.disabled)return!1;var l=this.clicks[this.clicks.length-1];if(l&&Math.abs(n-l.x)+Math.abs(a-l.y)<this.thresholdPx&&r-l.timestamp<this.timeoutMs){if(this.clicks.push({x:n,y:a,timestamp:r}),this.clicks.length===this.clickCount)return!0}else this.clicks=[{x:n,y:a,timestamp:r}];return!1}}var ac=s=>{var n=J?.createElement("a");return X(n)?null:(n.href=s,n)},kT=function(s,n){var a,r;n===void 0&&(n="&");var l=[];return $e(s,(function(c,f){X(c)||X(f)||f==="undefined"||(a=encodeURIComponent((h=>h instanceof File)(c)?c.name:c.toString()),r=encodeURIComponent(f),l[l.length]=r+"="+a)})),l.join(n)},ic=function(s,n){for(var a,r=((s.split("#")[0]||"").split(/\?(.*)/)[1]||"").replace(/^\?+/g,"").split("&"),l=0;l<r.length;l++){var c=r[l].split("=");if(c[0]===n){a=c;break}}if(!Pe(a)||a.length<2)return"";var f=a[1];try{f=decodeURIComponent(f)}catch{W.error("Skipping decoding for malformed query param: "+f)}return f.replace(/\+/g," ")},uo=function(s,n,a){if(!s||!n||!n.length)return s;for(var r=s.split("#"),l=r[0]||"",c=r[1],f=l.split("?"),h=f[1],p=f[0],m=(h||"").split("&"),y=[],_=0;_<m.length;_++){var x=m[_].split("=");Pe(x)&&(n.includes(x[0])?y.push(x[0]+"="+a):y.push(m[_]))}var A=p;return h!=null&&(A+="?"+y.join("&")),c!=null&&(A+="#"+c),A},sc=function(s,n){var a=s.match(new RegExp(n+"=([^&]*)"));return a?a[1]:null},Xd="$copy_autocapture",ky=nt("[AutoCapture]");function Qd(s,n){return n.length>s?n.slice(0,s)+"...":n}function AT(s){if(s.previousElementSibling)return s.previousElementSibling;var n=s;do n=n.previousSibling;while(n&&!yc(n));return n}function ET(s,n,a,r){var l=s.tagName.toLowerCase(),c={tag_name:l};_h.indexOf(l)>-1&&!a&&(l.toLowerCase()==="a"||l.toLowerCase()==="button"?c.$el_text=Qd(1024,i_(s)):c.$el_text=Qd(1024,co(s)));var f=nc(s);f.length>0&&(c.classes=f.filter((function(y){return y!==""}))),$e(s.attributes,(function(y){var _;if((!t_(s)||["name","id","class","aria-label"].indexOf(y.name)!==-1)&&(r==null||!r.includes(y.name))&&!n&&no(y.value)&&(_=y.name,!mt(_)||_.substring(0,10)!=="_ngcontent"&&_.substring(0,7)!=="_nghost")){var x=y.value;y.name==="class"&&(x=bh(x).join(" ")),c["attr__"+y.name]=Qd(1024,x)}}));for(var h=1,p=1,m=s;m=AT(m);)h++,m.tagName===s.tagName&&p++;return c.nth_child=h,c.nth_of_type=p,c}function TT(s,n){for(var a,r,{e:l,maskAllElementAttributes:c,maskAllText:f,elementAttributeIgnoreList:h,elementsChainAsString:p}=n,m=[s],y=s;y.parentNode&&!Qa(y,"body");)X0(y.parentNode)?(m.push(y.parentNode.host),y=y.parentNode.host):(m.push(y.parentNode),y=y.parentNode);var _,x=[],A={},C=!1,k=!1;if($e(m,(Y=>{var G=qf(Y);Y.tagName.toLowerCase()==="a"&&(C=Y.getAttribute("href"),C=G&&C&&no(C)&&C),Ce(nc(Y),"ph-no-capture")&&(k=!0),x.push(ET(Y,c,f,h));var $=(function(I){if(!qf(I))return{};var O={};return $e(I.attributes,(function(Q){if(Q.name&&Q.name.indexOf("data-ph-capture-attribute")===0){var re=Q.name.replace("data-ph-capture-attribute-",""),ke=Q.value;re&&ke&&no(ke)&&(O[re]=ke)}})),O})(Y);st(A,$)})),k)return{props:{},explicitNoCapture:k};if(f||(s.tagName.toLowerCase()==="a"||s.tagName.toLowerCase()==="button"?x[0].$el_text=i_(s):x[0].$el_text=co(s)),C){var E,M;x[0].attr__href=C;var j=(E=ac(C))==null?void 0:E.host,z=U==null||(M=U.location)==null?void 0:M.host;j&&z&&j!==z&&(_=C)}return{props:st({$event_type:l.type,$ce_version:1},p?{}:{$elements:x},{$elements_chain:wT(x)},(a=x[0])!=null&&a.$el_text?{$el_text:(r=x[0])==null?void 0:r.$el_text}:{},_&&l.type==="click"?{$external_click_url:_}:{},A)}}class NT{constructor(n){this.P=!1,this.T=null,this.I=!1,this.instance=n,this.rageclicks=new r_(n.config.rageclick),this.C=null}get R(){var n,a,r=yt(this.instance.config.autocapture)?this.instance.config.autocapture:{};return r.url_allowlist=(n=r.url_allowlist)==null?void 0:n.map((l=>new RegExp(l))),r.url_ignorelist=(a=r.url_ignorelist)==null?void 0:a.map((l=>new RegExp(l))),r}F(){if(this.isBrowserSupported()){if(U&&J){var n=r=>{r=r||U?.event;try{this.M(r)}catch(l){ky.error("Failed to capture event",l)}};if(dt(J,"submit",n,{capture:!0}),dt(J,"change",n,{capture:!0}),dt(J,"click",n,{capture:!0}),this.R.capture_copied_text){var a=r=>{r=r||U?.event,this.M(r,Xd)};dt(J,"copy",a,{capture:!0}),dt(J,"cut",a,{capture:!0})}}}else ky.info("Disabling Automatic Event Collection because this browser is not supported")}startIfEnabled(){this.isEnabled&&!this.P&&(this.F(),this.P=!0)}onRemoteConfig(n){n.elementsChainAsString&&(this.I=n.elementsChainAsString),this.instance.persistence&&this.instance.persistence.register({[py]:!!n.autocapture_opt_out}),this.T=!!n.autocapture_opt_out,this.startIfEnabled()}setElementSelectors(n){this.C=n}getElementSelectors(n){var a,r=[];return(a=this.C)==null||a.forEach((l=>{var c=J?.querySelectorAll(l);c?.forEach((f=>{n===f&&r.push(l)}))})),r}get isEnabled(){var n,a,r=(n=this.instance.persistence)==null?void 0:n.props[py],l=this.T;if(Nn(l)&&!ha(r)&&!this.instance.O())return!1;var c=(a=this.T)!==null&&a!==void 0?a:!!r;return!!this.instance.config.autocapture&&!c}M(n,a){if(a===void 0&&(a="$autocapture"),this.isEnabled){var r,l=Z0(n);K0(l)&&(l=l.parentNode||null),a==="$autocapture"&&n.type==="click"&&n instanceof MouseEvent&&this.instance.config.rageclick&&(r=this.rageclicks)!=null&&r.isRageClick(n.clientX,n.clientY,n.timeStamp||new Date().getTime())&&vT(l,this.instance.config.rageclick)&&this.M(n,"$rageclick");var c=a===Xd;if(l&&yT(l,n,this.R,c,c?["copy","cut"]:void 0)){var{props:f,explicitNoCapture:h}=TT(l,{e:n,maskAllElementAttributes:this.instance.config.mask_all_element_attributes,maskAllText:this.instance.config.mask_all_text,elementAttributeIgnoreList:this.R.element_attribute_ignorelist,elementsChainAsString:this.I});if(h)return!1;var p=this.getElementSelectors(l);if(p&&p.length>0&&(f.$element_selectors=p),a===Xd){var m,y=Q0(U==null||(m=U.getSelection())==null?void 0:m.toString()),_=n.type||"clipboard";if(!y)return!1;f.$selected_content=y,f.$copy_type=_}return this.instance.capture(a,f),!0}}}isBrowserSupported(){return Ka(J?.querySelectorAll)}}Math.trunc||(Math.trunc=function(s){return s<0?Math.ceil(s):Math.floor(s)}),Number.isInteger||(Number.isInteger=function(s){return ma(s)&&isFinite(s)&&Math.floor(s)===s});var Ay="0123456789abcdef";class rc{constructor(n){if(this.bytes=n,n.length!==16)throw new TypeError("not 128-bit length")}static fromFieldsV7(n,a,r,l){if(!Number.isInteger(n)||!Number.isInteger(a)||!Number.isInteger(r)||!Number.isInteger(l)||n<0||a<0||r<0||l<0||n>0xffffffffffff||a>4095||r>1073741823||l>4294967295)throw new RangeError("invalid field value");var c=new Uint8Array(16);return c[0]=n/Math.pow(2,40),c[1]=n/Math.pow(2,32),c[2]=n/Math.pow(2,24),c[3]=n/Math.pow(2,16),c[4]=n/Math.pow(2,8),c[5]=n,c[6]=112|a>>>8,c[7]=a,c[8]=128|r>>>24,c[9]=r>>>16,c[10]=r>>>8,c[11]=r,c[12]=l>>>24,c[13]=l>>>16,c[14]=l>>>8,c[15]=l,new rc(c)}toString(){for(var n="",a=0;a<this.bytes.length;a++)n=n+Ay.charAt(this.bytes[a]>>>4)+Ay.charAt(15&this.bytes[a]),a!==3&&a!==5&&a!==7&&a!==9||(n+="-");if(n.length!==36)throw new Error("Invalid UUIDv7 was generated");return n}clone(){return new rc(this.bytes.slice(0))}equals(n){return this.compareTo(n)===0}compareTo(n){for(var a=0;a<16;a++){var r=this.bytes[a]-n.bytes[a];if(r!==0)return Math.sign(r)}return 0}}class MT{constructor(){this.A=0,this.D=0,this.j=new jT}generate(){var n=this.generateOrAbort();if(X(n)){this.A=0;var a=this.generateOrAbort();if(X(a))throw new Error("Could not generate UUID after timestamp reset");return a}return n}generateOrAbort(){var n=Date.now();if(n>this.A)this.A=n,this.L();else{if(!(n+1e4>this.A))return;this.D++,this.D>4398046511103&&(this.A++,this.L())}return rc.fromFieldsV7(this.A,Math.trunc(this.D/Math.pow(2,30)),this.D&Math.pow(2,30)-1,this.j.nextUint32())}L(){this.D=1024*this.j.nextUint32()+(1023&this.j.nextUint32())}}var Ey,o_=s=>{if(typeof UUIDV7_DENY_WEAK_RNG<"u"&&UUIDV7_DENY_WEAK_RNG)throw new Error("no cryptographically strong RNG available");for(var n=0;n<s.length;n++)s[n]=65536*Math.trunc(65536*Math.random())+Math.trunc(65536*Math.random());return s};U&&!X(U.crypto)&&crypto.getRandomValues&&(o_=s=>crypto.getRandomValues(s));class jT{constructor(){this.N=new Uint32Array(8),this.U=1/0}nextUint32(){return this.U>=this.N.length&&(o_(this.N),this.U=0),this.N[this.U++]}}var Ya=()=>RT().toString(),RT=()=>(Ey||(Ey=new MT)).generate(),jr="",DT=/[a-z0-9][a-z0-9-]+\.[a-z]{2,}$/i;function PT(s,n){if(n){var a=(function(l,c){if(c===void 0&&(c=J),jr)return jr;if(!c||["localhost","127.0.0.1"].includes(l))return"";for(var f=l.split("."),h=Math.min(f.length,8),p="dmn_chk_"+Ya();!jr&&h--;){var m=f.slice(h).join("."),y=p+"=1;domain=."+m+";path=/";c.cookie=y+";max-age=3",c.cookie.includes(p)&&(c.cookie=y+";max-age=0",jr=m)}return jr})(s);if(!a){var r=(l=>{var c=l.match(DT);return c?c[0]:""})(s);r!==a&&W.info("Warning: cookie subdomain discovery mismatch",r,a),a=r}return a?"; domain=."+a:""}return""}var On={H:()=>!!J,B:function(s){W.error("cookieStore error: "+s)},q:function(s){if(J){try{for(var n=s+"=",a=J.cookie.split(";").filter((c=>c.length)),r=0;r<a.length;r++){for(var l=a[r];l.charAt(0)==" ";)l=l.substring(1,l.length);if(l.indexOf(n)===0)return decodeURIComponent(l.substring(n.length,l.length))}}catch{}return null}},W:function(s){var n;try{n=JSON.parse(On.q(s))||{}}catch{}return n},G:function(s,n,a,r,l){if(J)try{var c="",f="",h=PT(J.location.hostname,r);if(a){var p=new Date;p.setTime(p.getTime()+24*a*60*60*1e3),c="; expires="+p.toUTCString()}l&&(f="; secure");var m=s+"="+encodeURIComponent(JSON.stringify(n))+c+"; SameSite=Lax; path=/"+h+f;return m.length>3686.4&&W.warn("cookieStore warning: large cookie, len="+m.length),J.cookie=m,m}catch{return}},V:function(s,n){if(J!=null&&J.cookie)try{On.G(s,"",-1,n)}catch{return}}},Zd=null,We={H:function(){if(!Nn(Zd))return Zd;var s=!0;if(X(U))s=!1;else try{var n="__mplssupport__";We.G(n,"xyz"),We.q(n)!=='"xyz"'&&(s=!1),We.V(n)}catch{s=!1}return s||W.error("localStorage unsupported; falling back to cookie store"),Zd=s,s},B:function(s){W.error("localStorage error: "+s)},q:function(s){try{return U?.localStorage.getItem(s)}catch(n){We.B(n)}return null},W:function(s){try{return JSON.parse(We.q(s))||{}}catch{}return null},G:function(s,n){try{U?.localStorage.setItem(s,JSON.stringify(n))}catch(a){We.B(a)}},V:function(s){try{U?.localStorage.removeItem(s)}catch(n){We.B(n)}}},OT=["$device_id","distinct_id",Wl,G0,tc,ec],Ll={},LT={H:function(){return!0},B:function(s){W.error("memoryStorage error: "+s)},q:function(s){return Ll[s]||null},W:function(s){return Ll[s]||null},G:function(s,n){Ll[s]=n},V:function(s){delete Ll[s]}},yi=null,kt={H:function(){if(!Nn(yi))return yi;if(yi=!0,X(U))yi=!1;else try{var s="__support__";kt.G(s,"xyz"),kt.q(s)!=='"xyz"'&&(yi=!1),kt.V(s)}catch{yi=!1}return yi},B:function(s){W.error("sessionStorage error: ",s)},q:function(s){try{return U?.sessionStorage.getItem(s)}catch(n){kt.B(n)}return null},W:function(s){try{return JSON.parse(kt.q(s))||null}catch{}return null},G:function(s,n){try{U?.sessionStorage.setItem(s,JSON.stringify(n))}catch(a){kt.B(a)}},V:function(s){try{U?.sessionStorage.removeItem(s)}catch(n){kt.B(n)}}},ca=(function(s){return s[s.PENDING=-1]="PENDING",s[s.DENIED=0]="DENIED",s[s.GRANTED=1]="GRANTED",s})({});class FT{constructor(n){this._instance=n}get R(){return this._instance.config}get consent(){return this.J()?ca.DENIED:this.K}isOptedOut(){return this.R.cookieless_mode==="always"||this.consent===ca.DENIED||this.consent===ca.PENDING&&(this.R.opt_out_capturing_by_default||this.R.cookieless_mode==="on_reject")}isOptedIn(){return!this.isOptedOut()}isExplicitlyOptedOut(){return this.consent===ca.DENIED}optInOut(n){this.Y.G(this.X,n?1:0,this.R.cookie_expiration,this.R.cross_subdomain_cookie,this.R.secure_cookie)}reset(){this.Y.V(this.X,this.R.cross_subdomain_cookie)}get X(){var{token:n,opt_out_capturing_cookie_prefix:a,consent_persistence_name:r}=this._instance.config;return r||(a?a+n:"__ph_opt_in_out_"+n)}get K(){var n=this.Y.q(this.X);return Vd(n)?ca.GRANTED:Ce(jE,n)?ca.DENIED:ca.PENDING}get Y(){if(!this.Z){var n=this.R.opt_out_capturing_persistence_type;this.Z=n==="localStorage"?We:On;var a=n==="localStorage"?On:We;a.q(this.X)&&(this.Z.q(this.X)||this.optInOut(Vd(a.q(this.X))),a.V(this.X,this.R.cross_subdomain_cookie))}return this.Z}J(){return!!this.R.respect_dnt&&!!q0([tn?.doNotTrack,tn?.msDoNotTrack,ce.doNotTrack],(n=>Vd(n)))}}var Fl=nt("[Dead Clicks]"),UT=()=>!0,zT=s=>{var n,a=!((n=s.instance.persistence)==null||!n.get_property(V0)),r=s.instance.config.capture_dead_clicks;return ha(r)?r:!!yt(r)||a};class l_{get lazyLoadedDeadClicksAutocapture(){return this.tt}constructor(n,a,r){this.instance=n,this.isEnabled=a,this.onCapture=r,this.startIfEnabled()}onRemoteConfig(n){this.instance.persistence&&this.instance.persistence.register({[V0]:n?.captureDeadClicks}),this.startIfEnabled()}startIfEnabled(){this.isEnabled(this)&&this.it((()=>{this.et()}))}it(n){var a,r;(a=ce.__PosthogExtensions__)!=null&&a.initDeadClicksAutocapture&&n(),(r=ce.__PosthogExtensions__)==null||r.loadExternalDependency==null||r.loadExternalDependency(this.instance,"dead-clicks-autocapture",(l=>{l?Fl.error("failed to load script",l):n()}))}et(){var n;if(J){if(!this.tt&&(n=ce.__PosthogExtensions__)!=null&&n.initDeadClicksAutocapture){var a=yt(this.instance.config.capture_dead_clicks)?this.instance.config.capture_dead_clicks:{};a.__onCapture=this.onCapture,this.tt=ce.__PosthogExtensions__.initDeadClicksAutocapture(this.instance,a),this.tt.start(J),Fl.info("starting...")}}else Fl.error("`document` not found. Cannot start.")}stop(){this.tt&&(this.tt.stop(),this.tt=void 0,Fl.info("stopping..."))}}var Rr=nt("[ExceptionAutocapture]");class IT{constructor(n){var a,r,l;this.rt=()=>{var c;if(U&&this.isEnabled&&(c=ce.__PosthogExtensions__)!=null&&c.errorWrappingFunctions){var f=ce.__PosthogExtensions__.errorWrappingFunctions.wrapOnError,h=ce.__PosthogExtensions__.errorWrappingFunctions.wrapUnhandledRejection,p=ce.__PosthogExtensions__.errorWrappingFunctions.wrapConsoleError;try{!this.st&&this.R.capture_unhandled_errors&&(this.st=f(this.captureException.bind(this))),!this.nt&&this.R.capture_unhandled_rejections&&(this.nt=h(this.captureException.bind(this))),!this.ot&&this.R.capture_console_errors&&(this.ot=p(this.captureException.bind(this)))}catch(m){Rr.error("failed to start",m),this.ut()}}},this._instance=n,this.ht=!((a=this._instance.persistence)==null||!a.props[my]),this.dt=new RE({refillRate:(r=this._instance.config.error_tracking.__exceptionRateLimiterRefillRate)!==null&&r!==void 0?r:1,bucketSize:(l=this._instance.config.error_tracking.__exceptionRateLimiterBucketSize)!==null&&l!==void 0?l:10,refillInterval:1e4,h:Rr}),this.R=this.vt(),this.startIfEnabledOrStop()}vt(){var n=this._instance.config.capture_exceptions,a={capture_unhandled_errors:!1,capture_unhandled_rejections:!1,capture_console_errors:!1};return yt(n)?a=ee({},a,n):(X(n)?this.ht:n)&&(a=ee({},a,{capture_unhandled_errors:!0,capture_unhandled_rejections:!0})),a}get isEnabled(){return this.R.capture_console_errors||this.R.capture_unhandled_errors||this.R.capture_unhandled_rejections}startIfEnabledOrStop(){this.isEnabled?(Rr.info("enabled"),this.ut(),this.it(this.rt)):this.ut()}it(n){var a,r;(a=ce.__PosthogExtensions__)!=null&&a.errorWrappingFunctions&&n(),(r=ce.__PosthogExtensions__)==null||r.loadExternalDependency==null||r.loadExternalDependency(this._instance,"exception-autocapture",(l=>{if(l)return Rr.error("failed to load script",l);n()}))}ut(){var n,a,r;(n=this.st)==null||n.call(this),this.st=void 0,(a=this.nt)==null||a.call(this),this.nt=void 0,(r=this.ot)==null||r.call(this),this.ot=void 0}onRemoteConfig(n){var a=n.autocaptureExceptions;this.ht=!!a||!1,this._instance.persistence&&this._instance.persistence.register({[my]:this.ht}),this.R=this.vt(),this.startIfEnabledOrStop()}onConfigChange(){this.R=this.vt()}captureException(n){var a,r,l=(a=n==null||(r=n.$exception_list)==null||(r=r[0])==null?void 0:r.type)!==null&&a!==void 0?a:"Exception";this.dt.consumeRateLimit(l)?Rr.info("Skipping exception capture because of client rate limiting.",{exception:l}):this._instance.exceptions.sendExceptionEvent(n)}}function Ty(s,n,a){try{if(!(n in s))return()=>{};var r=s[n],l=a(r);return Ka(l)&&(l.prototype=l.prototype||{},Object.defineProperties(l,{__posthog_wrapped__:{enumerable:!1,value:!0}})),s[n]=l,()=>{s[n]=r}}catch{return()=>{}}}class HT{constructor(n){var a;this._instance=n,this.ct=(U==null||(a=U.location)==null?void 0:a.pathname)||""}get isEnabled(){return this._instance.config.capture_pageview==="history_change"}startIfEnabled(){this.isEnabled&&(W.info("History API monitoring enabled, starting..."),this.monitorHistoryChanges())}stop(){this.ft&&this.ft(),this.ft=void 0,W.info("History API monitoring stopped")}monitorHistoryChanges(){var n,a;if(U&&U.history){var r=this;(n=U.history.pushState)!=null&&n.__posthog_wrapped__||Ty(U.history,"pushState",(l=>function(c,f,h){l.call(this,c,f,h),r._t("pushState")})),(a=U.history.replaceState)!=null&&a.__posthog_wrapped__||Ty(U.history,"replaceState",(l=>function(c,f,h){l.call(this,c,f,h),r._t("replaceState")})),this.yt()}}_t(n){try{var a,r=U==null||(a=U.location)==null?void 0:a.pathname;if(!r)return;r!==this.ct&&this.isEnabled&&this._instance.capture("$pageview",{navigation_type:n}),this.ct=r}catch(l){W.error("Error capturing "+n+" pageview",l)}}yt(){if(!this.ft){var n=()=>{this._t("popstate")};dt(U,"popstate",n),this.ft=()=>{U&&U.removeEventListener("popstate",n)}}}}var Wd=nt("[SegmentIntegration]");function BT(s,n){var a=s.config.segment;if(!a)return n();(function(r,l){var c=r.config.segment;if(!c)return l();var f=p=>{var m=()=>p.anonymousId()||Ya();r.config.get_device_id=m,p.id()&&(r.register({distinct_id:p.id(),$device_id:m()}),r.persistence.set_property(la,"identified")),l()},h=c.user();"then"in h&&Ka(h.then)?h.then(f):f(h)})(s,(()=>{a.register((r=>{Promise&&Promise.resolve||Wd.warn("This browser does not have Promise support, and can not use the segment integration");var l=(c,f)=>{if(!f)return c;c.event.userId||c.event.anonymousId===r.get_distinct_id()||(Wd.info("No userId set, resetting PostHog"),r.reset()),c.event.userId&&c.event.userId!==r.get_distinct_id()&&(Wd.info("UserId set, identifying with PostHog"),r.identify(c.event.userId));var h=r.calculateEventProperties(f,c.event.properties);return c.event.properties=Object.assign({},h,c.event.properties),c};return{name:"PostHog JS",type:"enrichment",version:"1.0.0",isLoaded:()=>!0,load:()=>Promise.resolve(),track:c=>l(c,c.event.event),page:c=>l(c,"$pageview"),identify:c=>l(c,"$identify"),screen:c=>l(c,"$screen")}})(s)).then((()=>{n()}))}))}var c_="posthog-js";function u_(s,n){var{organization:a,projectId:r,prefix:l,severityAllowList:c=["error"],sendExceptionsToPostHog:f=!0}=n===void 0?{}:n;return h=>{var p,m,y,_,x;if(!(c==="*"||c.includes(h.level))||!s.__loaded)return h;h.tags||(h.tags={});var A=s.requestRouter.endpointFor("ui","/project/"+s.config.token+"/person/"+s.get_distinct_id());h.tags["PostHog Person URL"]=A,s.sessionRecordingStarted()&&(h.tags["PostHog Recording URL"]=s.get_session_replay_url({withTimestamp:!0}));var C=((p=h.exception)==null?void 0:p.values)||[],k=C.map((M=>ee({},M,{stacktrace:M.stacktrace?ee({},M.stacktrace,{type:"raw",frames:(M.stacktrace.frames||[]).map((j=>ee({},j,{platform:"web:javascript"})))}):void 0}))),E={$exception_message:((m=C[0])==null?void 0:m.value)||h.message,$exception_type:(y=C[0])==null?void 0:y.type,$exception_level:h.level,$exception_list:k,$sentry_event_id:h.event_id,$sentry_exception:h.exception,$sentry_exception_message:((_=C[0])==null?void 0:_.value)||h.message,$sentry_exception_type:(x=C[0])==null?void 0:x.type,$sentry_tags:h.tags};return a&&r&&(E.$sentry_url=(l||"https://sentry.io/organizations/")+a+"/issues/?project="+r+"&query="+h.event_id),f&&s.exceptions.sendExceptionEvent(E),h}}class qT{constructor(n,a,r,l,c,f){this.name=c_,this.setupOnce=function(h){h(u_(n,{organization:a,projectId:r,prefix:l,severityAllowList:c,sendExceptionsToPostHog:f==null||f}))}}}var $T=U!=null&&U.location?sc(U.location.hash,"__posthog")||sc(location.hash,"state"):null,Ny="_postHogToolbarParams",My=nt("[Toolbar]"),Ga=(function(s){return s[s.UNINITIALIZED=0]="UNINITIALIZED",s[s.LOADING=1]="LOADING",s[s.LOADED=2]="LOADED",s})(Ga||{});class VT{constructor(n){this.instance=n}bt(n){ce.ph_toolbar_state=n}wt(){var n;return(n=ce.ph_toolbar_state)!==null&&n!==void 0?n:Ga.UNINITIALIZED}maybeLoadToolbar(n,a,r){if(n===void 0&&(n=void 0),a===void 0&&(a=void 0),r===void 0&&(r=void 0),!U||!J)return!1;n=n??U.location,r=r??U.history;try{if(!a){try{U.localStorage.setItem("test","test"),U.localStorage.removeItem("test")}catch{return!1}a=U?.localStorage}var l,c=$T||sc(n.hash,"__posthog")||sc(n.hash,"state"),f=c?hy((()=>JSON.parse(atob(decodeURIComponent(c)))))||hy((()=>JSON.parse(decodeURIComponent(c)))):null;return f&&f.action==="ph_authorize"?((l=f).source="url",l&&Object.keys(l).length>0&&(f.desiredHash?n.hash=f.desiredHash:r?r.replaceState(r.state,"",n.pathname+n.search):n.hash="")):((l=JSON.parse(a.getItem(Ny)||"{}")).source="localstorage",delete l.userIntent),!(!l.token||this.instance.config.token!==l.token)&&(this.loadToolbar(l),!0)}catch{return!1}}xt(n){var a=ce.ph_load_toolbar||ce.ph_load_editor;!Re(a)&&Ka(a)?a(n,this.instance):My.warn("No toolbar load function found")}loadToolbar(n){var a=!(J==null||!J.getElementById(Y0));if(!U||a)return!1;var r=this.instance.requestRouter.region==="custom"&&this.instance.config.advanced_disable_toolbar_metrics,l=ee({token:this.instance.config.token},n,{apiURL:this.instance.requestRouter.endpointFor("ui")},r?{instrument:!1}:{});if(U.localStorage.setItem(Ny,JSON.stringify(ee({},l,{source:void 0}))),this.wt()===Ga.LOADED)this.xt(l);else if(this.wt()===Ga.UNINITIALIZED){var c;this.bt(Ga.LOADING),(c=ce.__PosthogExtensions__)==null||c.loadExternalDependency==null||c.loadExternalDependency(this.instance,"toolbar",(f=>{if(f)return My.error("[Toolbar] Failed to load",f),void this.bt(Ga.UNINITIALIZED);this.bt(Ga.LOADED),this.xt(l)})),dt(U,"turbolinks:load",(()=>{this.bt(Ga.UNINITIALIZED),this.loadToolbar(l)}))}return!0}Et(n){return this.loadToolbar(n)}maybeLoadEditor(n,a,r){return n===void 0&&(n=void 0),a===void 0&&(a=void 0),r===void 0&&(r=void 0),this.maybeLoadToolbar(n,a,r)}}var GT=nt("[TracingHeaders]");class YT{constructor(n){this.$t=void 0,this.St=void 0,this.rt=()=>{var a,r;X(this.$t)&&((a=ce.__PosthogExtensions__)==null||(a=a.tracingHeadersPatchFns)==null||a._patchXHR(this._instance.config.__add_tracing_headers||[],this._instance.get_distinct_id(),this._instance.sessionManager)),X(this.St)&&((r=ce.__PosthogExtensions__)==null||(r=r.tracingHeadersPatchFns)==null||r._patchFetch(this._instance.config.__add_tracing_headers||[],this._instance.get_distinct_id(),this._instance.sessionManager))},this._instance=n}it(n){var a,r;(a=ce.__PosthogExtensions__)!=null&&a.tracingHeadersPatchFns&&n(),(r=ce.__PosthogExtensions__)==null||r.loadExternalDependency==null||r.loadExternalDependency(this._instance,"tracing-headers",(l=>{if(l)return GT.error("failed to load script",l);n()}))}startIfEnabledOrStop(){var n,a;this._instance.config.__add_tracing_headers?this.it(this.rt):((n=this.$t)==null||n.call(this),(a=this.St)==null||a.call(this),this.$t=void 0,this.St=void 0)}}var Ul="https?://(.*)",Ps=["gclid","gclsrc","dclid","gbraid","wbraid","fbclid","msclkid","twclid","li_fat_id","igshid","ttclid","rdt_cid","epik","qclid","sccid","irclid","_kx"],KT=Ds(["utm_source","utm_medium","utm_campaign","utm_content","utm_term","gad_source","mc_cid"],Ps),fo="<masked>",XT=["li_fat_id"];function d_(s,n,a){if(!J)return{};var r,l=n?Ds([],Ps,a||[]):[],c=f_(uo(J.URL,l,fo),s),f=(r={},$e(XT,(function(h){var p=On.q(h);r[h]=p||null})),r);return st(f,c)}function f_(s,n){var a=KT.concat(n||[]),r={};return $e(a,(function(l){var c=ic(s,l);r[l]=c||null})),r}function h_(s){var n=(function(c){return c?c.search(Ul+"google.([^/?]*)")===0?"google":c.search(Ul+"bing.com")===0?"bing":c.search(Ul+"yahoo.com")===0?"yahoo":c.search(Ul+"duckduckgo.com")===0?"duckduckgo":null:null})(s),a=n!="yahoo"?"q":"p",r={};if(!Nn(n)){r.$search_engine=n;var l=J?ic(J.referrer,a):"";l.length&&(r.ph_keyword=l)}return r}function jy(){return navigator.language||navigator.userLanguage}function p_(){return J?.referrer||"$direct"}function m_(s,n){var a=s?Ds([],Ps,n||[]):[],r=It?.href.substring(0,1e3);return{r:p_().substring(0,1e3),u:r?uo(r,a,fo):void 0}}function g_(s){var n,{r:a,u:r}=s,l={$referrer:a,$referring_domain:a==null?void 0:a=="$direct"?"$direct":(n=ac(a))==null?void 0:n.host};if(r){l.$current_url=r;var c=ac(r);l.$host=c?.host,l.$pathname=c?.pathname;var f=f_(r);st(l,f)}if(a){var h=h_(a);st(l,h)}return l}function v_(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch{return}}function QT(){try{return new Date().getTimezoneOffset()}catch{return}}function ZT(s,n){if(!zt)return{};var a,r,l,c=s?Ds([],Ps,n||[]):[],[f,h]=(function(p){for(var m=0;m<ly.length;m++){var[y,_]=ly[m],x=y.exec(p),A=x&&(Ka(_)?_(x,p):_);if(A)return A}return["",""]})(zt);return st(yh({$os:f,$os_version:h,$browser:z0(zt,navigator.vendor),$device:cy(zt),$device_type:(r=zt,l=cy(r),l===k0||l===C0||l==="Kobo"||l==="Kindle Fire"||l===U0?Wr:l===eo||l===ws||l===to||l===Rf?"Console":l===E0?"Wearable":l?gn:"Desktop"),$timezone:v_(),$timezone_offset:QT()}),{$current_url:uo(It?.href,c,fo),$host:It?.host,$pathname:It?.pathname,$raw_user_agent:zt.length>1e3?zt.substring(0,997)+"...":zt,$browser_version:BE(zt,navigator.vendor),$browser_language:jy(),$browser_language_prefix:(a=jy(),typeof a=="string"?a.split("-")[0]:void 0),$screen_height:U?.screen.height,$screen_width:U?.screen.width,$viewport_height:U?.innerHeight,$viewport_width:U?.innerWidth,$lib:"web",$lib_version:oa.LIB_VERSION,$insert_id:Math.random().toString(36).substring(2,10)+Math.random().toString(36).substring(2,10),$time:Date.now()/1e3})}var $a=nt("[Web Vitals]"),Ry=9e5;class WT{constructor(n){var a;this.kt=!1,this.P=!1,this.N={url:void 0,metrics:[],firstMetricTimestamp:void 0},this.Pt=()=>{clearTimeout(this.Tt),this.N.metrics.length!==0&&(this._instance.capture("$web_vitals",this.N.metrics.reduce(((r,l)=>ee({},r,{["$web_vitals_"+l.name+"_event"]:ee({},l),["$web_vitals_"+l.name+"_value"]:l.value})),{})),this.N={url:void 0,metrics:[],firstMetricTimestamp:void 0})},this.It=r=>{var l,c=(l=this._instance.sessionManager)==null?void 0:l.checkAndGetSessionAndWindowId(!0);if(X(c))$a.error("Could not read session ID. Dropping metrics!");else{this.N=this.N||{url:void 0,metrics:[],firstMetricTimestamp:void 0};var f=this.Ct();X(f)||(Re(r?.name)||Re(r?.value)?$a.error("Invalid metric received",r):this.Rt&&r.value>=this.Rt?$a.error("Ignoring metric with value >= "+this.Rt,r):(this.N.url!==f&&(this.Pt(),this.Tt=setTimeout(this.Pt,this.flushToCaptureTimeoutMs)),X(this.N.url)&&(this.N.url=f),this.N.firstMetricTimestamp=X(this.N.firstMetricTimestamp)?Date.now():this.N.firstMetricTimestamp,r.attribution&&r.attribution.interactionTargetElement&&(r.attribution.interactionTargetElement=void 0),this.N.metrics.push(ee({},r,{$current_url:f,$session_id:c.sessionId,$window_id:c.windowId,timestamp:Date.now()})),this.N.metrics.length===this.allowedMetrics.length&&this.Pt()))}},this.rt=()=>{var r,l,c,f,h=ce.__PosthogExtensions__;X(h)||X(h.postHogWebVitalsCallbacks)||({onLCP:r,onCLS:l,onFCP:c,onINP:f}=h.postHogWebVitalsCallbacks),r&&l&&c&&f?(this.allowedMetrics.indexOf("LCP")>-1&&r(this.It.bind(this)),this.allowedMetrics.indexOf("CLS")>-1&&l(this.It.bind(this)),this.allowedMetrics.indexOf("FCP")>-1&&c(this.It.bind(this)),this.allowedMetrics.indexOf("INP")>-1&&f(this.It.bind(this)),this.P=!0):$a.error("web vitals callbacks not loaded - not starting")},this._instance=n,this.kt=!((a=this._instance.persistence)==null||!a.props[vy]),this.startIfEnabled()}get allowedMetrics(){var n,a,r=yt(this._instance.config.capture_performance)?(n=this._instance.config.capture_performance)==null?void 0:n.web_vitals_allowed_metrics:void 0;return X(r)?((a=this._instance.persistence)==null?void 0:a.props[by])||["CLS","FCP","INP","LCP"]:r}get flushToCaptureTimeoutMs(){return(yt(this._instance.config.capture_performance)?this._instance.config.capture_performance.web_vitals_delayed_flush_ms:void 0)||5e3}get Rt(){var n=yt(this._instance.config.capture_performance)&&ma(this._instance.config.capture_performance.__web_vitals_max_value)?this._instance.config.capture_performance.__web_vitals_max_value:Ry;return 0<n&&n<=6e4?Ry:n}get isEnabled(){var n=It?.protocol;if(n!=="http:"&&n!=="https:")return $a.info("Web Vitals are disabled on non-http/https protocols"),!1;var a=yt(this._instance.config.capture_performance)?this._instance.config.capture_performance.web_vitals:ha(this._instance.config.capture_performance)?this._instance.config.capture_performance:void 0;return ha(a)?a:this.kt}startIfEnabled(){this.isEnabled&&!this.P&&($a.info("enabled, starting..."),this.it(this.rt))}onRemoteConfig(n){var a=yt(n.capturePerformance)&&!!n.capturePerformance.web_vitals,r=yt(n.capturePerformance)?n.capturePerformance.web_vitals_allowed_metrics:void 0;this._instance.persistence&&(this._instance.persistence.register({[vy]:a}),this._instance.persistence.register({[by]:r})),this.kt=a,this.startIfEnabled()}it(n){var a,r;(a=ce.__PosthogExtensions__)!=null&&a.postHogWebVitalsCallbacks&&n(),(r=ce.__PosthogExtensions__)==null||r.loadExternalDependency==null||r.loadExternalDependency(this._instance,"web-vitals",(l=>{l?$a.error("failed to load script",l):n()}))}Ct(){var n=U?U.location.href:void 0;if(n){var a=this._instance.config.mask_personal_data_properties,r=this._instance.config.custom_personal_data_properties,l=a?Ds([],Ps,r||[]):[];return uo(n,l,fo)}$a.error("Could not determine current URL")}}var JT=nt("[Heatmaps]");function Dy(s){return yt(s)&&"clientX"in s&&"clientY"in s&&ma(s.clientX)&&ma(s.clientY)}class e1{constructor(n){var a;this.kt=!1,this.P=!1,this.Ft=null,this.instance=n,this.kt=!((a=this.instance.persistence)==null||!a.props[Of]),this.rageclicks=new r_(n.config.rageclick)}get flushIntervalMilliseconds(){var n=5e3;return yt(this.instance.config.capture_heatmaps)&&this.instance.config.capture_heatmaps.flush_interval_milliseconds&&(n=this.instance.config.capture_heatmaps.flush_interval_milliseconds),n}get isEnabled(){return X(this.instance.config.capture_heatmaps)?X(this.instance.config.enable_heatmaps)?this.kt:this.instance.config.enable_heatmaps:this.instance.config.capture_heatmaps!==!1}startIfEnabled(){if(this.isEnabled){if(this.P)return;JT.info("starting..."),this.Mt(),this.Ot()}else{var n;clearInterval((n=this.Ft)!==null&&n!==void 0?n:void 0),this.At(),this.getAndClearBuffer()}}onRemoteConfig(n){var a=!!n.heatmaps;this.instance.persistence&&this.instance.persistence.register({[Of]:a}),this.kt=a,this.startIfEnabled()}getAndClearBuffer(){var n=this.N;return this.N=void 0,n}Dt(n){this.jt(n.originalEvent,"deadclick")}Ot(){this.Ft&&clearInterval(this.Ft),this.Ft=(function(n){return n?.visibilityState==="visible"})(J)?setInterval(this.Lt.bind(this),this.flushIntervalMilliseconds):null}Mt(){U&&J&&(this.Nt=this.Lt.bind(this),dt(U,"beforeunload",this.Nt),this.Ut=n=>this.jt(n||U?.event),dt(J,"click",this.Ut,{capture:!0}),this.zt=n=>this.Ht(n||U?.event),dt(J,"mousemove",this.zt,{capture:!0}),this.Bt=new l_(this.instance,UT,this.Dt.bind(this)),this.Bt.startIfEnabled(),this.qt=this.Ot.bind(this),dt(J,"visibilitychange",this.qt),this.P=!0)}At(){var n;U&&J&&(this.Nt&&U.removeEventListener("beforeunload",this.Nt),this.Ut&&J.removeEventListener("click",this.Ut,{capture:!0}),this.zt&&J.removeEventListener("mousemove",this.zt,{capture:!0}),this.qt&&J.removeEventListener("visibilitychange",this.qt),clearTimeout(this.Wt),(n=this.Bt)==null||n.stop(),this.P=!1)}Gt(n,a){var r=this.instance.scrollManager.scrollY(),l=this.instance.scrollManager.scrollX(),c=this.instance.scrollManager.scrollElement(),f=(function(h,p,m){for(var y=h;y&&yc(y)&&!Qa(y,"body");){if(y===m)return!1;if(Ce(p,U?.getComputedStyle(y).position))return!0;y=J0(y)}return!1})(Z0(n),["fixed","sticky"],c);return{x:n.clientX+(f?0:l),y:n.clientY+(f?0:r),target_fixed:f,type:a}}jt(n,a){var r;if(a===void 0&&(a="click"),!_y(n.target)&&Dy(n)){var l=this.Gt(n,a);(r=this.rageclicks)!=null&&r.isRageClick(n.clientX,n.clientY,new Date().getTime())&&this.Vt(ee({},l,{type:"rageclick"})),this.Vt(l)}}Ht(n){!_y(n.target)&&Dy(n)&&(clearTimeout(this.Wt),this.Wt=setTimeout((()=>{this.Vt(this.Gt(n,"mousemove"))}),500))}Vt(n){if(U){var a=U.location.href,r=this.instance.config.mask_personal_data_properties,l=this.instance.config.custom_personal_data_properties,c=r?Ds([],Ps,l||[]):[],f=uo(a,c,fo);this.N=this.N||{},this.N[f]||(this.N[f]=[]),this.N[f].push(n)}}Lt(){this.N&&!_s(this.N)&&this.instance.capture("$$heatmap",{$heatmap_data:this.getAndClearBuffer()})}}class Py{constructor(n){this.Jt=(a,r,l)=>{l&&(l.noSessionId||l.activityTimeout||l.sessionPastMaximumLength)&&(W.info("[PageViewManager] Session rotated, clearing pageview state",{sessionId:a,changeReason:l}),this.Kt=void 0,this._instance.scrollManager.resetContext())},this._instance=n,this.Yt()}Yt(){var n;this.Xt=(n=this._instance.sessionManager)==null?void 0:n.onSessionId(this.Jt)}destroy(){var n;(n=this.Xt)==null||n.call(this),this.Xt=void 0}doPageView(n,a){var r,l=this.Qt(n,a);return this.Kt={pathname:(r=U?.location.pathname)!==null&&r!==void 0?r:"",pageViewId:a,timestamp:n},this._instance.scrollManager.resetContext(),l}doPageLeave(n){var a;return this.Qt(n,(a=this.Kt)==null?void 0:a.pageViewId)}doEvent(){var n;return{$pageview_id:(n=this.Kt)==null?void 0:n.pageViewId}}Qt(n,a){var r=this.Kt;if(!r)return{$pageview_id:a};var l={$pageview_id:a,$prev_pageview_id:r.pageViewId},c=this._instance.scrollManager.getContext();if(c&&!this._instance.config.disable_scroll_properties){var{maxScrollHeight:f,lastScrollY:h,maxScrollY:p,maxContentHeight:m,lastContentY:y,maxContentY:_}=c;if(!(X(f)||X(h)||X(p)||X(m)||X(y)||X(_))){f=Math.ceil(f),h=Math.ceil(h),p=Math.ceil(p),m=Math.ceil(m),y=Math.ceil(y),_=Math.ceil(_);var x=f<=1?1:Ln(h/f,0,1,W),A=f<=1?1:Ln(p/f,0,1,W),C=m<=1?1:Ln(y/m,0,1,W),k=m<=1?1:Ln(_/m,0,1,W);l=st(l,{$prev_pageview_last_scroll:h,$prev_pageview_last_scroll_percentage:x,$prev_pageview_max_scroll:p,$prev_pageview_max_scroll_percentage:A,$prev_pageview_last_content:y,$prev_pageview_last_content_percentage:C,$prev_pageview_max_content:_,$prev_pageview_max_content_percentage:k})}}return r.pathname&&(l.$prev_pageview_pathname=r.pathname),r.timestamp&&(l.$prev_pageview_duration=(n.getTime()-r.timestamp.getTime())/1e3),l}}var ua=(function(s){return s.GZipJS="gzip-js",s.Base64="base64",s})({}),vn=Uint8Array,Ht=Uint16Array,As=Uint32Array,xh=new vn([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),wh=new vn([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),Oy=new vn([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),y_=function(s,n){for(var a=new Ht(31),r=0;r<31;++r)a[r]=n+=1<<s[r-1];var l=new As(a[30]);for(r=1;r<30;++r)for(var c=a[r];c<a[r+1];++c)l[c]=c-a[r]<<5|r;return[a,l]},b_=y_(xh,2),t1=b_[0],$f=b_[1];t1[28]=258,$f[258]=28;for(var Ly=y_(wh,0)[1],__=new Ht(32768),Ke=0;Ke<32768;++Ke){var bi=(43690&Ke)>>>1|(21845&Ke)<<1;bi=(61680&(bi=(52428&bi)>>>2|(13107&bi)<<2))>>>4|(3855&bi)<<4,__[Ke]=((65280&bi)>>>8|(255&bi)<<8)>>>1}var Kr=function(s,n,a){for(var r=s.length,l=0,c=new Ht(n);l<r;++l)++c[s[l]-1];var f,h=new Ht(n);for(l=0;l<n;++l)h[l]=h[l-1]+c[l-1]<<1;for(f=new Ht(r),l=0;l<r;++l)f[l]=__[h[s[l]-1]++]>>>15-s[l];return f},Ai=new vn(288);for(Ke=0;Ke<144;++Ke)Ai[Ke]=8;for(Ke=144;Ke<256;++Ke)Ai[Ke]=9;for(Ke=256;Ke<280;++Ke)Ai[Ke]=7;for(Ke=280;Ke<288;++Ke)Ai[Ke]=8;var oc=new vn(32);for(Ke=0;Ke<32;++Ke)oc[Ke]=5;var n1=Kr(Ai,9),a1=Kr(oc,5),S_=function(s){return(s/8>>0)+(7&s&&1)},x_=function(s,n,a){(a==null||a>s.length)&&(a=s.length);var r=new(s instanceof Ht?Ht:s instanceof As?As:vn)(a-n);return r.set(s.subarray(n,a)),r},sa=function(s,n,a){a<<=7&n;var r=n/8>>0;s[r]|=a,s[r+1]|=a>>>8},Dr=function(s,n,a){a<<=7&n;var r=n/8>>0;s[r]|=a,s[r+1]|=a>>>8,s[r+2]|=a>>>16},Jd=function(s,n){for(var a=[],r=0;r<s.length;++r)s[r]&&a.push({s:r,f:s[r]});var l=a.length,c=a.slice();if(!l)return[new vn(0),0];if(l==1){var f=new vn(a[0].s+1);return f[a[0].s]=1,[f,1]}a.sort((function(G,$){return G.f-$.f})),a.push({s:-1,f:25001});var h=a[0],p=a[1],m=0,y=1,_=2;for(a[0]={s:-1,f:h.f+p.f,l:h,r:p};y!=l-1;)h=a[a[m].f<a[_].f?m++:_++],p=a[m!=y&&a[m].f<a[_].f?m++:_++],a[y++]={s:-1,f:h.f+p.f,l:h,r:p};var x=c[0].s;for(r=1;r<l;++r)c[r].s>x&&(x=c[r].s);var A=new Ht(x+1),C=Vf(a[y-1],A,0);if(C>n){r=0;var k=0,E=C-n,M=1<<E;for(c.sort((function(G,$){return A[$.s]-A[G.s]||G.f-$.f}));r<l;++r){var j=c[r].s;if(!(A[j]>n))break;k+=M-(1<<C-A[j]),A[j]=n}for(k>>>=E;k>0;){var z=c[r].s;A[z]<n?k-=1<<n-A[z]++-1:++r}for(;r>=0&&k;--r){var Y=c[r].s;A[Y]==n&&(--A[Y],++k)}C=n}return[new vn(A),C]},Vf=function(s,n,a){return s.s==-1?Math.max(Vf(s.l,n,a+1),Vf(s.r,n,a+1)):n[s.s]=a},Fy=function(s){for(var n=s.length;n&&!s[--n];);for(var a=new Ht(++n),r=0,l=s[0],c=1,f=function(p){a[r++]=p},h=1;h<=n;++h)if(s[h]==l&&h!=n)++c;else{if(!l&&c>2){for(;c>138;c-=138)f(32754);c>2&&(f(c>10?c-11<<5|28690:c-3<<5|12305),c=0)}else if(c>3){for(f(l),--c;c>6;c-=6)f(8304);c>2&&(f(c-3<<5|8208),c=0)}for(;c--;)f(l);c=1,l=s[h]}return[a.subarray(0,r),n]},Pr=function(s,n){for(var a=0,r=0;r<n.length;++r)a+=s[r]*n[r];return a},Gf=function(s,n,a){var r=a.length,l=S_(n+2);s[l]=255&r,s[l+1]=r>>>8,s[l+2]=255^s[l],s[l+3]=255^s[l+1];for(var c=0;c<r;++c)s[l+c+4]=a[c];return 8*(l+4+r)},Uy=function(s,n,a,r,l,c,f,h,p,m,y){sa(n,y++,a),++l[256];for(var _=Jd(l,15),x=_[0],A=_[1],C=Jd(c,15),k=C[0],E=C[1],M=Fy(x),j=M[0],z=M[1],Y=Fy(k),G=Y[0],$=Y[1],I=new Ht(19),O=0;O<j.length;++O)I[31&j[O]]++;for(O=0;O<G.length;++O)I[31&G[O]]++;for(var Q=Jd(I,7),re=Q[0],ke=Q[1],_e=19;_e>4&&!re[Oy[_e-1]];--_e);var Fe,oe,ve,L,K=m+5<<3,V=Pr(l,Ai)+Pr(c,oc)+f,he=Pr(l,x)+Pr(c,k)+f+14+3*_e+Pr(I,re)+(2*I[16]+3*I[17]+7*I[18]);if(K<=V&&K<=he)return Gf(n,y,s.subarray(p,p+m));if(sa(n,y,1+(he<V)),y+=2,he<V){Fe=Kr(x,A),oe=x,ve=Kr(k,E),L=k;var pe=Kr(re,ke);for(sa(n,y,z-257),sa(n,y+5,$-1),sa(n,y+10,_e-4),y+=14,O=0;O<_e;++O)sa(n,y+3*O,re[Oy[O]]);y+=3*_e;for(var De=[j,G],fe=0;fe<2;++fe){var te=De[fe];for(O=0;O<te.length;++O){var ue=31&te[O];sa(n,y,pe[ue]),y+=re[ue],ue>15&&(sa(n,y,te[O]>>>5&127),y+=te[O]>>>12)}}}else Fe=n1,oe=Ai,ve=a1,L=oc;for(O=0;O<h;++O)if(r[O]>255){ue=r[O]>>>18&31,Dr(n,y,Fe[ue+257]),y+=oe[ue+257],ue>7&&(sa(n,y,r[O]>>>23&31),y+=xh[ue]);var Xe=31&r[O];Dr(n,y,ve[Xe]),y+=L[Xe],Xe>3&&(Dr(n,y,r[O]>>>5&8191),y+=wh[Xe])}else Dr(n,y,Fe[r[O]]),y+=oe[r[O]];return Dr(n,y,Fe[256]),y+oe[256]},i1=new As([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),s1=(function(){for(var s=new As(256),n=0;n<256;++n){for(var a=n,r=9;--r;)a=(1&a&&3988292384)^a>>>1;s[n]=a}return s})(),r1=function(s,n,a,r,l){return(function(c,f,h,p,m,y){var _=c.length,x=new vn(p+_+5*(1+Math.floor(_/7e3))+m),A=x.subarray(p,x.length-m),C=0;if(!f||_<8)for(var k=0;k<=_;k+=65535){var E=k+65535;E<_?C=Gf(A,C,c.subarray(k,E)):(A[k]=y,C=Gf(A,C,c.subarray(k,_)))}else{for(var M=i1[f-1],j=M>>>13,z=8191&M,Y=(1<<h)-1,G=new Ht(32768),$=new Ht(Y+1),I=Math.ceil(h/3),O=2*I,Q=function(Se){return(c[Se]^c[Se+1]<<I^c[Se+2]<<O)&Y},re=new As(25e3),ke=new Ht(288),_e=new Ht(32),Fe=0,oe=0,ve=(k=0,0),L=0,K=0;k<_;++k){var V=Q(k),he=32767&k,pe=$[V];if(G[he]=pe,$[V]=he,L<=k){var De=_-k;if((Fe>7e3||ve>24576)&&De>423){C=Uy(c,A,0,re,ke,_e,oe,ve,K,k-K,C),ve=Fe=oe=0,K=k;for(var fe=0;fe<286;++fe)ke[fe]=0;for(fe=0;fe<30;++fe)_e[fe]=0}var te=2,ue=0,Xe=z,Je=he-pe&32767;if(De>2&&V==Q(k-Je))for(var He=Math.min(j,De)-1,_n=Math.min(32767,k),Nt=Math.min(258,De);Je<=_n&&--Xe&&he!=pe;){if(c[k+te]==c[k+te-Je]){for(var ft=0;ft<Nt&&c[k+ft]==c[k+ft-Je];++ft);if(ft>te){if(te=ft,ue=Je,ft>He)break;var nn=Math.min(Je,ft-2),Bt=0;for(fe=0;fe<nn;++fe){var ga=k-Je+fe+32768&32767,an=ga-G[ga]+32768&32767;an>Bt&&(Bt=an,pe=ga)}}}Je+=(he=pe)-(pe=G[he])+32768&32767}if(ue){re[ve++]=268435456|$f[te]<<18|Ly[ue];var Z=31&$f[te],ye=31&Ly[ue];oe+=xh[Z]+wh[ye],++ke[257+Z],++_e[ye],L=k+te,++Fe}else re[ve++]=c[k],++ke[c[k]]}}C=Uy(c,A,y,re,ke,_e,oe,ve,K,k-K,C)}return x_(x,0,p+S_(C)+m)})(s,n.level==null?6:n.level,n.mem==null?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(s.length)))):12+n.mem,a,r,!0)},ef=function(s,n,a){for(;a;++n)s[n]=a,a>>>=8};function o1(s,n){n===void 0&&(n={});var a=(function(){var h=4294967295;return{p:function(p){for(var m=h,y=0;y<p.length;++y)m=s1[255&m^p[y]]^m>>>8;h=m},d:function(){return 4294967295^h}}})(),r=s.length;a.p(s);var l,c=r1(s,n,10+((l=n).filename&&l.filename.length+1||0),8),f=c.length;return(function(h,p){var m=p.filename;if(h[0]=31,h[1]=139,h[2]=8,h[8]=p.level<2?4:p.level==9?2:0,h[9]=3,p.mtime!=0&&ef(h,4,Math.floor(new Date(p.mtime||Date.now())/1e3)),m){h[3]=8;for(var y=0;y<=m.length;++y)h[y+10]=m.charCodeAt(y)}})(c,n),ef(c,f-8,a.d()),ef(c,f-4,r),c}var l1=function(s){var n,a,r,l,c="";for(n=a=0,r=(s=(s+"").replace(/\r\n/g,`
85
85
  `).replace(/\r/g,`
86
86
  `)).length,l=0;l<r;l++){var f=s.charCodeAt(l),h=null;f<128?a++:h=f>127&&f<2048?String.fromCharCode(f>>6|192,63&f|128):String.fromCharCode(f>>12|224,f>>6&63|128,63&f|128),Nn(h)||(a>n&&(c+=s.substring(n,a)),c+=h,n=a=l+1)}return a>n&&(c+=s.substring(n,s.length)),c},c1=!!Ef||!!Af,zy="text/plain",lc=function(s,n,a){var r;a===void 0&&(a=!0);var[l,c]=s.split("?"),f=ee({},n),h=(r=c?.split("&").map((m=>{var y,[_,x]=m.split("="),A=a&&(y=f[_])!==null&&y!==void 0?y:x;return delete f[_],_+"="+A})))!==null&&r!==void 0?r:[],p=kT(f);return p&&h.push(p),l+"?"+h.join("&")},$r=(s,n)=>JSON.stringify(s,((a,r)=>typeof r=="bigint"?r.toString():r),n),tf=s=>{var{data:n,compression:a}=s;if(n){if(a===ua.GZipJS){var r=o1((function(p,m){var y=p.length;if(typeof TextEncoder<"u")return new TextEncoder().encode(p);for(var _=new vn(p.length+(p.length>>>1)),x=0,A=function(M){_[x++]=M},C=0;C<y;++C){if(x+5>_.length){var k=new vn(x+8+(y-C<<1));k.set(_),_=k}var E=p.charCodeAt(C);E<128||m?A(E):E<2048?(A(192|E>>>6),A(128|63&E)):E>55295&&E<57344?(A(240|(E=65536+(1047552&E)|1023&p.charCodeAt(++C))>>>18),A(128|E>>>12&63),A(128|E>>>6&63),A(128|63&E)):(A(224|E>>>12),A(128|E>>>6&63),A(128|63&E))}return x_(_,0,x)})($r(n)),{mtime:0}),l=new Blob([r],{type:zy});return{contentType:zy,body:l,estimatedSize:l.size}}if(a===ua.Base64){var c=(function(p){var m,y,_,x,A,C="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",k=0,E=0,M="",j=[];if(!p)return p;p=l1(p);do m=(A=p.charCodeAt(k++)<<16|p.charCodeAt(k++)<<8|p.charCodeAt(k++))>>18&63,y=A>>12&63,_=A>>6&63,x=63&A,j[E++]=C.charAt(m)+C.charAt(y)+C.charAt(_)+C.charAt(x);while(k<p.length);switch(M=j.join(""),p.length%3){case 1:M=M.slice(0,-2)+"==";break;case 2:M=M.slice(0,-1)+"="}return M})($r(n)),f=(p=>"data="+encodeURIComponent(typeof p=="string"?p:$r(p)))(c);return{contentType:"application/x-www-form-urlencoded",body:f,estimatedSize:new Blob([f]).size}}var h=$r(n);return{contentType:"application/json",body:h,estimatedSize:new Blob([h]).size}}},Gl=[];Af&&Gl.push({transport:"fetch",method:s=>{var n,a,{contentType:r,body:l,estimatedSize:c}=(n=tf(s))!==null&&n!==void 0?n:{},f=new Headers;$e(s.headers,(function(y,_){f.append(_,y)})),r&&f.append("Content-Type",r);var h=s.url,p=null;if(ay){var m=new ay;p={signal:m.signal,timeout:setTimeout((()=>m.abort()),s.timeout)}}Af(h,ee({method:s?.method||"GET",headers:f,keepalive:s.method==="POST"&&(c||0)<52428.8,body:l,signal:(a=p)==null?void 0:a.signal},s.fetchOptions)).then((y=>y.text().then((_=>{var x={statusCode:y.status,text:_};if(y.status===200)try{x.json=JSON.parse(_)}catch(A){W.error(A)}s.callback==null||s.callback(x)})))).catch((y=>{W.error(y),s.callback==null||s.callback({statusCode:0,text:y})})).finally((()=>p?clearTimeout(p.timeout):null))}}),Ef&&Gl.push({transport:"XHR",method:s=>{var n,a=new Ef;a.open(s.method||"GET",s.url,!0);var{contentType:r,body:l}=(n=tf(s))!==null&&n!==void 0?n:{};$e(s.headers,(function(c,f){a.setRequestHeader(f,c)})),r&&a.setRequestHeader("Content-Type",r),s.timeout&&(a.timeout=s.timeout),s.disableXHRCredentials||(a.withCredentials=!0),a.onreadystatechange=()=>{if(a.readyState===4){var c={statusCode:a.status,text:a.responseText};if(a.status===200)try{c.json=JSON.parse(a.responseText)}catch{}s.callback==null||s.callback(c)}},a.send(l)}}),tn!=null&&tn.sendBeacon&&Gl.push({transport:"sendBeacon",method:s=>{var n=lc(s.url,{beacon:"1"});try{var a,{contentType:r,body:l}=(a=tf(s))!==null&&a!==void 0?a:{},c=typeof l=="string"?new Blob([l],{type:r}):l;tn.sendBeacon(n,c)}catch{}}});var cc=function(s,n){if(!(function(a){try{new RegExp(a)}catch{return!1}return!0})(n))return!1;try{return new RegExp(n).test(s)}catch{return!1}};function Iy(s,n,a){return $r({distinct_id:s,userPropertiesToSet:n,userPropertiesToSetOnce:a})}var w_={exact:(s,n)=>n.some((a=>s.some((r=>a===r)))),is_not:(s,n)=>n.every((a=>s.every((r=>a!==r)))),regex:(s,n)=>n.some((a=>s.some((r=>cc(a,r))))),not_regex:(s,n)=>n.every((a=>s.every((r=>!cc(a,r))))),icontains:(s,n)=>n.map(zl).some((a=>s.map(zl).some((r=>a.includes(r))))),not_icontains:(s,n)=>n.map(zl).every((a=>s.map(zl).every((r=>!a.includes(r))))),gt:(s,n)=>n.some((a=>{var r=parseFloat(a);return!isNaN(r)&&s.some((l=>r>parseFloat(l)))})),lt:(s,n)=>n.some((a=>{var r=parseFloat(a);return!isNaN(r)&&s.some((l=>r<parseFloat(l)))}))},zl=s=>s.toLowerCase();function C_(s,n){return!s||Object.entries(s).every((a=>{var[r,l]=a,c=n?.[r];if(X(c)||Nn(c))return!1;var f=[String(c)],h=w_[l.operator];return!!h&&h(l.values,f)}))}var nf=nt("[Error tracking]");class u1{constructor(n){var a,r;this.Zt=[],this.ti=new VE([new eT,new cT,new nT,new tT,new oT,new rT,new iT,new lT],JE()),this._instance=n,this.Zt=(a=(r=this._instance.persistence)==null?void 0:r.get_property(Lf))!==null&&a!==void 0?a:[]}onRemoteConfig(n){var a,r,l,c=(a=(r=n.errorTracking)==null?void 0:r.suppressionRules)!==null&&a!==void 0?a:[],f=(l=n.errorTracking)==null?void 0:l.captureExtensionExceptions;this.Zt=c,this._instance.persistence&&this._instance.persistence.register({[Lf]:this.Zt,[gy]:f})}get ii(){var n,a=!!this._instance.get_property(gy),r=this._instance.config.error_tracking.captureExtensionExceptions;return(n=r??a)!==null&&n!==void 0&&n}buildProperties(n,a){return this.ti.buildFromUnknown(n,{syntheticException:a?.syntheticException,mechanism:{handled:a?.handled}})}sendExceptionEvent(n){var a=n.$exception_list;if(this.ei(a)){if(this.ri(a))return void nf.info("Skipping exception capture because a suppression rule matched");if(!this.ii&&this.si(a))return void nf.info("Skipping exception capture because it was thrown by an extension");if(!this._instance.config.error_tracking.__capturePostHogExceptions&&this.ni(a))return void nf.info("Skipping exception capture because it was thrown by the PostHog SDK")}return this._instance.capture("$exception",n,{_noTruncate:!0,_batchKey:"exceptionEvent"})}ri(n){if(n.length===0)return!1;var a=n.reduce(((r,l)=>{var{type:c,value:f}=l;return mt(c)&&c.length>0&&r.$exception_types.push(c),mt(f)&&f.length>0&&r.$exception_values.push(f),r}),{$exception_types:[],$exception_values:[]});return this.Zt.some((r=>{var l=r.values.map((c=>{var f,h=w_[c.operator],p=Pe(c.value)?c.value:[c.value],m=(f=a[c.key])!==null&&f!==void 0?f:[];return p.length>0&&h(p,m)}));return r.type==="OR"?l.some(Boolean):l.every(Boolean)}))}si(n){return n.flatMap((a=>{var r,l;return(r=(l=a.stacktrace)==null?void 0:l.frames)!==null&&r!==void 0?r:[]})).some((a=>a.filename&&a.filename.startsWith("chrome-extension://")))}ni(n){if(n.length>0){var a,r,l,c,f=(a=(r=n[0].stacktrace)==null?void 0:r.frames)!==null&&a!==void 0?a:[],h=f[f.length-1];return(l=h==null||(c=h.filename)==null?void 0:c.includes("posthog.com/static"))!==null&&l!==void 0&&l}return!1}ei(n){return!Re(n)&&Pe(n)}}var kn=nt("[FeatureFlags]"),Or=nt("[FeatureFlags]",{debugEnabled:!0}),af="$active_feature_flags",hs="$override_feature_flags",Hy="$feature_flag_payloads",Lr="$override_feature_flag_payloads",By="$feature_flag_request_id",qy="$feature_flag_evaluated_at",$y=s=>{var n={};for(var[a,r]of Vl(s||{}))r&&(n[a]=r);return n},d1=s=>{var n=s.flags;return n?(s.featureFlags=Object.fromEntries(Object.keys(n).map((a=>{var r;return[a,(r=n[a].variant)!==null&&r!==void 0?r:n[a].enabled]}))),s.featureFlagPayloads=Object.fromEntries(Object.keys(n).filter((a=>n[a].enabled)).filter((a=>{var r;return(r=n[a].metadata)==null?void 0:r.payload})).map((a=>{var r;return[a,(r=n[a].metadata)==null?void 0:r.payload]})))):kn.warn("Using an older version of the feature flags endpoint. Please upgrade your PostHog server to the latest version"),s},f1=(function(s){return s.FeatureFlags="feature_flags",s.Recordings="recordings",s})({});class h1{constructor(n){this.oi=!1,this.ai=!1,this.li=!1,this.ui=!1,this.hi=!1,this.di=!1,this.vi=!1,this._instance=n,this.featureFlagEventHandlers=[]}ci(){var n=this._instance.config.evaluation_environments;return n!=null&&n.length?n.filter((a=>{var r=a&&typeof a=="string"&&a.trim().length>0;return r||kn.error("Invalid evaluation environment found:",a,"Expected non-empty string"),r})):[]}fi(){return this.ci().length>0}flags(){if(this._instance.config.__preview_remote_config)this.di=!0;else{var n=!this.pi&&(this._instance.config.advanced_disable_feature_flags||this._instance.config.advanced_disable_feature_flags_on_first_load);this.gi({disableFlags:n})}}get hasLoadedFlags(){return this.ai}getFlags(){return Object.keys(this.getFlagVariants())}getFlagsWithDetails(){var n=this._instance.get_property(Ff),a=this._instance.get_property(hs),r=this._instance.get_property(Lr);if(!r&&!a)return n||{};var l=st({},n||{}),c=[...new Set([...Object.keys(r||{}),...Object.keys(a||{})])];for(var f of c){var h,p,m=l[f],y=a?.[f],_=X(y)?(h=m?.enabled)!==null&&h!==void 0&&h:!!y,x=X(y)?m.variant:typeof y=="string"?y:void 0,A=r?.[f],C=ee({},m,{enabled:_,variant:_?x??m?.variant:void 0});_!==m?.enabled&&(C.original_enabled=m?.enabled),x!==m?.variant&&(C.original_variant=m?.variant),A&&(C.metadata=ee({},m?.metadata,{payload:A,original_payload:m==null||(p=m.metadata)==null?void 0:p.payload})),l[f]=C}return this.oi||(kn.warn(" Overriding feature flag details!",{flagDetails:n,overriddenPayloads:r,finalDetails:l}),this.oi=!0),l}getFlagVariants(){var n=this._instance.get_property(Ss),a=this._instance.get_property(hs);if(!a)return n||{};for(var r=st({},n),l=Object.keys(a),c=0;c<l.length;c++)r[l[c]]=a[l[c]];return this.oi||(kn.warn(" Overriding feature flags!",{enabledFlags:n,overriddenFlags:a,finalFlags:r}),this.oi=!0),r}getFlagPayloads(){var n=this._instance.get_property(Hy),a=this._instance.get_property(Lr);if(!a)return n||{};for(var r=st({},n||{}),l=Object.keys(a),c=0;c<l.length;c++)r[l[c]]=a[l[c]];return this.oi||(kn.warn(" Overriding feature flag payloads!",{flagPayloads:n,overriddenPayloads:a,finalPayloads:r}),this.oi=!0),r}reloadFeatureFlags(){this.ui||this._instance.config.advanced_disable_feature_flags||this.pi||(this.pi=setTimeout((()=>{this.gi()}),5))}mi(){clearTimeout(this.pi),this.pi=void 0}ensureFlagsLoaded(){this.ai||this.li||this.pi||this.reloadFeatureFlags()}setAnonymousDistinctId(n){this.$anon_distinct_id=n}setReloadingPaused(n){this.ui=n}gi(n){var a;if(this.mi(),!this._instance.O())if(this.li)this.hi=!0;else{var r=this._instance.config.token,l=this._instance.get_property("$device_id"),c={token:r,distinct_id:this._instance.get_distinct_id(),groups:this._instance.getGroups(),$anon_distinct_id:this.$anon_distinct_id,person_properties:ee({},((a=this._instance.persistence)==null?void 0:a.get_initial_props())||{},this._instance.get_property(qr)||{}),group_properties:this._instance.get_property(Si)};Nn(l)||X(l)||(c.$device_id=l),(n!=null&&n.disableFlags||this._instance.config.advanced_disable_feature_flags)&&(c.disable_flags=!0),this.fi()&&(c.evaluation_environments=this.ci());var f=this._instance.config.__preview_remote_config,h=f?"/flags/?v=2":"/flags/?v=2&config=true",p=this._instance.config.advanced_only_evaluate_survey_feature_flags?"&only_evaluate_survey_feature_flags=true":"",m=this._instance.requestRouter.endpointFor("flags",h+p);f&&(c.timezone=v_()),this.li=!0,this._instance._send_request({method:"POST",url:m,data:c,compression:this._instance.config.disable_compression?void 0:ua.Base64,timeout:this._instance.config.feature_flag_request_timeout_ms,callback:y=>{var _,x,A=!0;if(y.statusCode===200&&(this.hi||(this.$anon_distinct_id=void 0),A=!1),this.li=!1,this.di||(this.di=!0,this._instance.yi((x=y.json)!==null&&x!==void 0?x:{})),!c.disable_flags||this.hi)if(this.vi=!A,y.json&&(_=y.json.quotaLimited)!=null&&_.includes(f1.FeatureFlags))kn.warn("You have hit your feature flags quota limit, and will not be able to load feature flags until the quota is reset. Please visit https://posthog.com/docs/billing/limits-alerts to learn more.");else{var C;c.disable_flags||this.receivedFeatureFlags((C=y.json)!==null&&C!==void 0?C:{},A),this.hi&&(this.hi=!1,this.gi())}}})}}getFeatureFlag(n,a){if(a===void 0&&(a={}),this.ai||this.getFlags()&&this.getFlags().length>0){var r=this.getFlagVariants()[n],l=""+r,c=this._instance.get_property(By)||void 0,f=this._instance.get_property(qy)||void 0,h=this._instance.get_property(Jl)||{};if((a.send_event||!("send_event"in a))&&(!(n in h)||!h[n].includes(l))){var p,m,y,_,x,A,C,k,E;Pe(h[n])?h[n].push(l):h[n]=[l],(p=this._instance.persistence)==null||p.register({[Jl]:h});var M=this.getFeatureFlagDetails(n),j={$feature_flag:n,$feature_flag_response:r,$feature_flag_payload:this.getFeatureFlagPayload(n)||null,$feature_flag_request_id:c,$feature_flag_evaluated_at:f,$feature_flag_bootstrapped_response:((m=this._instance.config.bootstrap)==null||(m=m.featureFlags)==null?void 0:m[n])||null,$feature_flag_bootstrapped_payload:((y=this._instance.config.bootstrap)==null||(y=y.featureFlagPayloads)==null?void 0:y[n])||null,$used_bootstrap_value:!this.vi};X(M==null||(_=M.metadata)==null?void 0:_.version)||(j.$feature_flag_version=M.metadata.version);var z,Y=(x=M==null||(A=M.reason)==null?void 0:A.description)!==null&&x!==void 0?x:M==null||(C=M.reason)==null?void 0:C.code;Y&&(j.$feature_flag_reason=Y),M!=null&&(k=M.metadata)!=null&&k.id&&(j.$feature_flag_id=M.metadata.id),X(M?.original_variant)&&X(M?.original_enabled)||(j.$feature_flag_original_response=X(M.original_variant)?M.original_enabled:M.original_variant),M!=null&&(E=M.metadata)!=null&&E.original_payload&&(j.$feature_flag_original_payload=M==null||(z=M.metadata)==null?void 0:z.original_payload),this._instance.capture("$feature_flag_called",j)}return r}kn.warn('getFeatureFlag for key "'+n+`" failed. Feature flags didn't load in time.`)}getFeatureFlagDetails(n){return this.getFlagsWithDetails()[n]}getFeatureFlagPayload(n){return this.getFlagPayloads()[n]}getRemoteConfigPayload(n,a){var r=this._instance.config.token,l={distinct_id:this._instance.get_distinct_id(),token:r};this.fi()&&(l.evaluation_environments=this.ci()),this._instance._send_request({method:"POST",url:this._instance.requestRouter.endpointFor("flags","/flags/?v=2&config=true"),data:l,compression:this._instance.config.disable_compression?void 0:ua.Base64,timeout:this._instance.config.feature_flag_request_timeout_ms,callback:c=>{var f,h=(f=c.json)==null?void 0:f.featureFlagPayloads;a(h?.[n]||void 0)}})}isFeatureEnabled(n,a){if(a===void 0&&(a={}),this.ai||this.getFlags()&&this.getFlags().length>0){var r=this.getFeatureFlag(n,a);return X(r)?void 0:!!r}kn.warn('isFeatureEnabled for key "'+n+`" failed. Feature flags didn't load in time.`)}addFeatureFlagsHandler(n){this.featureFlagEventHandlers.push(n)}removeFeatureFlagsHandler(n){this.featureFlagEventHandlers=this.featureFlagEventHandlers.filter((a=>a!==n))}receivedFeatureFlags(n,a){if(this._instance.persistence){this.ai=!0;var r=this.getFlagVariants(),l=this.getFlagPayloads(),c=this.getFlagsWithDetails();(function(f,h,p,m,y){p===void 0&&(p={}),m===void 0&&(m={}),y===void 0&&(y={});var _=d1(f),x=_.flags,A=_.featureFlags,C=_.featureFlagPayloads;if(A){var k=f.requestId,E=f.evaluatedAt;if(Pe(A)){kn.warn("v1 of the feature flags endpoint is deprecated. Please use the latest version.");var M={};if(A)for(var j=0;j<A.length;j++)M[A[j]]=!0;h&&h.register({[af]:A,[Ss]:M})}else{var z=A,Y=C,G=x;f.errorsWhileComputingFlags&&(z=ee({},p,z),Y=ee({},m,Y),G=ee({},y,G)),h&&h.register(ee({[af]:Object.keys($y(z)),[Ss]:z||{},[Hy]:Y||{},[Ff]:G||{}},k?{[By]:k}:{},E?{[qy]:E}:{}))}}})(n,this._instance.persistence,r,l,c),this.bi(a)}}override(n,a){a===void 0&&(a=!1),kn.warn("override is deprecated. Please use overrideFeatureFlags instead."),this.overrideFeatureFlags({flags:n,suppressWarning:a})}overrideFeatureFlags(n){if(!this._instance.__loaded||!this._instance.persistence)return kn.uninitializedWarning("posthog.featureFlags.overrideFeatureFlags");if(n===!1)return this._instance.persistence.unregister(hs),this._instance.persistence.unregister(Lr),this.bi(),Or.info("All overrides cleared");if(n&&typeof n=="object"&&("flags"in n||"payloads"in n)){var a,r=n;if(this.oi=!!((a=r.suppressWarning)!==null&&a!==void 0&&a),"flags"in r){if(r.flags===!1)this._instance.persistence.unregister(hs),Or.info("Flag overrides cleared");else if(r.flags){if(Pe(r.flags)){for(var l={},c=0;c<r.flags.length;c++)l[r.flags[c]]=!0;this._instance.persistence.register({[hs]:l})}else this._instance.persistence.register({[hs]:r.flags});Or.info("Flag overrides set",{flags:r.flags})}}return"payloads"in r&&(r.payloads===!1?(this._instance.persistence.unregister(Lr),Or.info("Payload overrides cleared")):r.payloads&&(this._instance.persistence.register({[Lr]:r.payloads}),Or.info("Payload overrides set",{payloads:r.payloads}))),void this.bi()}this.bi()}onFeatureFlags(n){if(this.addFeatureFlagsHandler(n),this.ai){var{flags:a,flagVariants:r}=this.wi();n(a,r)}return()=>this.removeFeatureFlagsHandler(n)}updateEarlyAccessFeatureEnrollment(n,a,r){var l,c=(this._instance.get_property(Br)||[]).find((m=>m.flagKey===n)),f={["$feature_enrollment/"+n]:a},h={$feature_flag:n,$feature_enrollment:a,$set:f};c&&(h.$early_access_feature_name=c.name),r&&(h.$feature_enrollment_stage=r),this._instance.capture("$feature_enrollment_update",h),this.setPersonPropertiesForFlags(f,!1);var p=ee({},this.getFlagVariants(),{[n]:a});(l=this._instance.persistence)==null||l.register({[af]:Object.keys($y(p)),[Ss]:p}),this.bi()}getEarlyAccessFeatures(n,a,r){a===void 0&&(a=!1);var l=this._instance.get_property(Br),c=r?"&"+r.map((f=>"stage="+f)).join("&"):"";if(l&&!a)return n(l);this._instance._send_request({url:this._instance.requestRouter.endpointFor("api","/api/early_access_features/?token="+this._instance.config.token+c),method:"GET",callback:f=>{var h,p;if(f.json){var m=f.json.earlyAccessFeatures;return(h=this._instance.persistence)==null||h.unregister(Br),(p=this._instance.persistence)==null||p.register({[Br]:m}),n(m)}}})}wi(){var n=this.getFlags(),a=this.getFlagVariants();return{flags:n.filter((r=>a[r])),flagVariants:Object.keys(a).filter((r=>a[r])).reduce(((r,l)=>(r[l]=a[l],r)),{})}}bi(n){var{flags:a,flagVariants:r}=this.wi();this.featureFlagEventHandlers.forEach((l=>l(a,r,{errorsLoading:n})))}setPersonPropertiesForFlags(n,a){a===void 0&&(a=!0);var r=this._instance.get_property(qr)||{};this._instance.register({[qr]:ee({},r,n)}),a&&this._instance.reloadFeatureFlags()}resetPersonPropertiesForFlags(){this._instance.unregister(qr)}setGroupPropertiesForFlags(n,a){a===void 0&&(a=!0);var r=this._instance.get_property(Si)||{};Object.keys(r).length!==0&&Object.keys(r).forEach((l=>{r[l]=ee({},r[l],n[l]),delete n[l]})),this._instance.register({[Si]:ee({},r,n)}),a&&this._instance.reloadFeatureFlags()}resetGroupPropertiesForFlags(n){if(n){var a=this._instance.get_property(Si)||{};this._instance.register({[Si]:ee({},a,{[n]:{}})})}else this._instance.unregister(Si)}reset(){this.ai=!1,this.li=!1,this.ui=!1,this.hi=!1,this.di=!1,this.vi=!1,this.$anon_distinct_id=void 0,this.mi(),this.oi=!1}}var p1=["cookie","localstorage","localstorage+cookie","sessionstorage","memory"];class sf{constructor(n,a){this.R=n,this.props={},this.xi=!1,this.Ei=(r=>{var l="";return r.token&&(l=r.token.replace(/\+/g,"PL").replace(/\//g,"SL").replace(/=/g,"EQ")),r.persistence_name?"ph_"+r.persistence_name:"ph_"+l+"_posthog"})(n),this.Y=this.$i(n),this.load(),n.debug&&W.info("Persistence loaded",n.persistence,ee({},this.props)),this.update_config(n,n,a),this.save()}isDisabled(){return!!this.Si}$i(n){p1.indexOf(n.persistence.toLowerCase())===-1&&(W.critical("Unknown persistence type "+n.persistence+"; falling back to localStorage+cookie"),n.persistence="localStorage+cookie");var a=(function(l){l===void 0&&(l=[]);var c=[...OT,...l];return ee({},We,{W:function(f){try{var h={};try{h=On.W(f)||{}}catch{}var p=st(h,JSON.parse(We.q(f)||"{}"));return We.G(f,p),p}catch{}return null},G:function(f,h,p,m,y,_){try{We.G(f,h,void 0,void 0,_);var x={};c.forEach((A=>{h[A]&&(x[A]=h[A])})),Object.keys(x).length&&On.G(f,x,p,m,y,_)}catch(A){We.B(A)}},V:function(f,h){try{U?.localStorage.removeItem(f),On.V(f,h)}catch(p){We.B(p)}}})})(n.cookie_persisted_properties||[]),r=n.persistence.toLowerCase();return r==="localstorage"&&We.H()?We:r==="localstorage+cookie"&&a.H()?a:r==="sessionstorage"&&kt.H()?kt:r==="memory"?LT:r==="cookie"?On:a.H()?a:On}properties(){var n={};return $e(this.props,(function(a,r){if(r===Ss&&yt(a))for(var l=Object.keys(a),c=0;c<l.length;c++)n["$feature/"+l[c]]=a[l[c]];else h=r,p=!1,(Nn(f=mT)?p:ny&&f.indexOf===ny?f.indexOf(h)!=-1:($e(f,(function(m){if(p||(p=m===h))return Zl})),p))||(n[r]=a);var f,h,p})),n}load(){if(!this.Si){var n=this.Y.W(this.Ei);n&&(this.props=st({},n))}}save(){this.Si||this.Y.G(this.Ei,this.props,this.ki,this.Pi,this.Ti,this.R.debug)}remove(){this.Y.V(this.Ei,!1),this.Y.V(this.Ei,!0)}clear(){this.remove(),this.props={}}register_once(n,a,r){if(yt(n)){X(a)&&(a="None"),this.ki=X(r)?this.Ii:r;var l=!1;if($e(n,((c,f)=>{this.props.hasOwnProperty(f)&&this.props[f]!==a||(this.props[f]=c,l=!0)})),l)return this.save(),!0}return!1}register(n,a){if(yt(n)){this.ki=X(a)?this.Ii:a;var r=!1;if($e(n,((l,c)=>{n.hasOwnProperty(c)&&this.props[c]!==l&&(this.props[c]=l,r=!0)})),r)return this.save(),!0}return!1}unregister(n){n in this.props&&(delete this.props[n],this.save())}update_campaign_params(){if(!this.xi){var n=d_(this.R.custom_campaign_params,this.R.mask_personal_data_properties,this.R.custom_personal_data_properties);_s(yh(n))||this.register(n),this.xi=!0}}update_search_keyword(){var n;this.register((n=J?.referrer)?h_(n):{})}update_referrer_info(){var n;this.register_once({$referrer:p_(),$referring_domain:J!=null&&J.referrer&&((n=ac(J.referrer))==null?void 0:n.host)||"$direct"},void 0)}set_initial_person_info(){this.props[Hf]||this.props[Bf]||this.register_once({[ec]:m_(this.R.mask_personal_data_properties,this.R.custom_personal_data_properties)},void 0)}get_initial_props(){var n={};$e([Bf,Hf],(f=>{var h=this.props[f];h&&$e(h,(function(p,m){n["$initial_"+Tf(m)]=p}))}));var a,r,l=this.props[ec];if(l){var c=(a=g_(l),r={},$e(a,(function(f,h){r["$initial_"+Tf(h)]=f})),r);st(n,c)}return n}safe_merge(n){return $e(this.props,(function(a,r){r in n||(n[r]=a)})),n}update_config(n,a,r){if(this.Ii=this.ki=n.cookie_expiration,this.set_disabled(n.disable_persistence||!!r),this.set_cross_subdomain(n.cross_subdomain_cookie),this.set_secure(n.secure_cookie),n.persistence!==a.persistence||!((f,h)=>{if(f.length!==h.length)return!1;var p=[...f].sort(),m=[...h].sort();return p.every(((y,_)=>y===m[_]))})(n.cookie_persisted_properties||[],a.cookie_persisted_properties||[])){var l=this.$i(n),c=this.props;this.clear(),this.Y=l,this.props=c,this.save()}}set_disabled(n){this.Si=n,this.Si?this.remove():this.save()}set_cross_subdomain(n){n!==this.Pi&&(this.Pi=n,this.remove(),this.save())}set_secure(n){n!==this.Ti&&(this.Ti=n,this.remove(),this.save())}set_event_timer(n,a){var r=this.props[Hr]||{};r[n]=a,this.props[Hr]=r,this.save()}remove_event_timer(n){var a=(this.props[Hr]||{})[n];return X(a)||(delete this.props[Hr][n],this.save()),a}get_property(n){return this.props[n]}set_property(n,a){this.props[n]=a,this.save()}}var Vy=nt("[Product Tours]"),rf="ph_product_tours";class m1{constructor(n){this.Ci=null,this.Ri=null,this._instance=n}onRemoteConfig(n){this._instance.persistence&&this._instance.persistence.register({[yy]:!(n==null||!n.productTours)}),this.loadIfEnabled()}loadIfEnabled(){var n,a;this.Ci||(n=this._instance).config.disable_product_tours||(a=n.persistence)==null||!a.get_property(yy)||this.it((()=>this.Fi()))}it(n){var a,r;(a=ce.__PosthogExtensions__)!=null&&a.generateProductTours?n():(r=ce.__PosthogExtensions__)==null||r.loadExternalDependency==null||r.loadExternalDependency(this._instance,"product-tours",(l=>{l?Vy.error("Could not load product tours script",l):n()}))}Fi(){var n;!this.Ci&&(n=ce.__PosthogExtensions__)!=null&&n.generateProductTours&&(this.Ci=ce.__PosthogExtensions__.generateProductTours(this._instance,!0))}getProductTours(n,a){if(a===void 0&&(a=!1),!Pe(this.Ri)||a){var r=this._instance.persistence;if(r){var l=r.props[rf];if(Pe(l)&&!a)return this.Ri=l,void n(l,{isLoaded:!0})}this._instance._send_request({url:this._instance.requestRouter.endpointFor("api","/api/product_tours/?token="+this._instance.config.token),method:"GET",callback:c=>{var f=c.statusCode;if(f!==200||!c.json){var h="Product Tours API could not be loaded, status: "+f;return Vy.error(h),void n([],{isLoaded:!1,error:h})}var p=Pe(c.json.product_tours)?c.json.product_tours:[];this.Ri=p,r&&r.register({[rf]:p}),n(p,{isLoaded:!0})}})}else n(this.Ri,{isLoaded:!0})}getActiveProductTours(n){Re(this.Ci)?n([],{isLoaded:!1,error:"Product tours not loaded"}):this.Ci.getActiveProductTours(n)}showProductTour(n){var a;(a=this.Ci)==null||a.showTourById(n)}previewTour(n){this.Ci?this.Ci.previewTour(n):this.it((()=>{var a;this.Fi(),(a=this.Ci)==null||a.previewTour(n)}))}dismissProductTour(){var n;(n=this.Ci)==null||n.dismissTour("user_clicked_skip")}nextStep(){var n;(n=this.Ci)==null||n.nextStep()}previousStep(){var n;(n=this.Ci)==null||n.previousStep()}clearCache(){var n;this.Ri=null,(n=this._instance.persistence)==null||n.unregister(rf)}resetTour(n){var a;(a=this.Ci)==null||a.resetTour(n)}resetAllTours(){var n;(n=this.Ci)==null||n.resetAllTours()}cancelPendingTour(n){var a;(a=this.Ci)==null||a.cancelPendingTour(n)}}var Fr=(function(s){return s.Activation="events",s.Cancellation="cancelEvents",s})({});(function(s){return s.Button="button",s.Tab="tab",s.Selector="selector",s})({});(function(s){return s.TopLeft="top_left",s.TopRight="top_right",s.TopCenter="top_center",s.MiddleLeft="middle_left",s.MiddleRight="middle_right",s.MiddleCenter="middle_center",s.Left="left",s.Center="center",s.Right="right",s.NextToTrigger="next_to_trigger",s})({});(function(s){return s.Top="top",s.Left="left",s.Right="right",s.Bottom="bottom",s})({});var of=(function(s){return s.Popover="popover",s.API="api",s.Widget="widget",s.ExternalSurvey="external_survey",s})({});(function(s){return s.Open="open",s.MultipleChoice="multiple_choice",s.SingleChoice="single_choice",s.Rating="rating",s.Link="link",s})({});(function(s){return s.NextQuestion="next_question",s.End="end",s.ResponseBased="response_based",s.SpecificQuestion="specific_question",s})({});(function(s){return s.Once="once",s.Recurring="recurring",s.Always="always",s})({});var Vr=(function(s){return s.SHOWN="survey shown",s.DISMISSED="survey dismissed",s.SENT="survey sent",s.ABANDONED="survey abandoned",s})({}),lf=(function(s){return s.SURVEY_ID="$survey_id",s.SURVEY_NAME="$survey_name",s.SURVEY_RESPONSE="$survey_response",s.SURVEY_ITERATION="$survey_iteration",s.SURVEY_ITERATION_START_DATE="$survey_iteration_start_date",s.SURVEY_PARTIALLY_COMPLETED="$survey_partially_completed",s.SURVEY_SUBMISSION_ID="$survey_submission_id",s.SURVEY_QUESTIONS="$survey_questions",s.SURVEY_COMPLETED="$survey_completed",s.PRODUCT_TOUR_ID="$product_tour_id",s.SURVEY_LAST_SEEN_DATE="$survey_last_seen_date",s})({}),k_=(function(s){return s.Popover="popover",s.Inline="inline",s})({}),qe=nt("[Surveys]"),A_="seenSurvey_",g1=(s,n)=>{var a="$survey_"+n+"/"+s.id;return s.current_iteration&&s.current_iteration>0&&(a="$survey_"+n+"/"+s.id+"/"+s.current_iteration),a},Gy=s=>((n,a)=>{var r=""+n+a.id;return a.current_iteration&&a.current_iteration>0&&(r=""+n+a.id+"_"+a.current_iteration),r})(A_,s),v1=[of.Popover,of.Widget,of.API],y1={ignoreConditions:!1,ignoreDelay:!1,displayType:k_.Popover};class Ch{constructor(){this.Mi={},this.Mi={}}on(n,a){return this.Mi[n]||(this.Mi[n]=[]),this.Mi[n].push(a),()=>{this.Mi[n]=this.Mi[n].filter((r=>r!==a))}}emit(n,a){for(var r of this.Mi[n]||[])r(a);for(var l of this.Mi["*"]||[])l(n,a)}}function ps(s,n,a){if(Re(s))return!1;switch(a){case"exact":return s===n;case"contains":var r=n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/_/g,".").replace(/%/g,".*");return new RegExp(r,"i").test(s);case"regex":try{return new RegExp(n).test(s)}catch{return!1}default:return!1}}class b1{constructor(n){this.Oi=new Ch,this.Ai=(a,r)=>this.Di(a,r)&&this.ji(a,r)&&this.Li(a,r)&&this.Ni(a,r),this.Di=(a,r)=>r==null||!r.event||a?.event===r?.event,this._instance=n,this.Ui=new Set,this.zi=new Set}init(){var n;if(!X((n=this._instance)==null?void 0:n.Hi)){var a;(a=this._instance)==null||a.Hi(((r,l)=>{this.on(r,l)}))}}register(n){var a,r;if(!X((a=this._instance)==null?void 0:a.Hi)&&(n.forEach((f=>{var h,p;(h=this.zi)==null||h.add(f),(p=f.steps)==null||p.forEach((m=>{var y;(y=this.Ui)==null||y.add(m?.event||"")}))})),(r=this._instance)!=null&&r.autocapture)){var l,c=new Set;n.forEach((f=>{var h;(h=f.steps)==null||h.forEach((p=>{p!=null&&p.selector&&c.add(p?.selector)}))})),(l=this._instance)==null||l.autocapture.setElementSelectors(c)}}on(n,a){var r;a!=null&&n.length!=0&&(this.Ui.has(n)||this.Ui.has(a?.event))&&this.zi&&((r=this.zi)==null?void 0:r.size)>0&&this.zi.forEach((l=>{this.Bi(a,l)&&this.Oi.emit("actionCaptured",l.name)}))}qi(n){this.onAction("actionCaptured",(a=>n(a)))}Bi(n,a){if(a?.steps==null)return!1;for(var r of a.steps)if(this.Ai(n,r))return!0;return!1}onAction(n,a){return this.Oi.on(n,a)}ji(n,a){if(a!=null&&a.url){var r,l=n==null||(r=n.properties)==null?void 0:r.$current_url;if(!l||typeof l!="string"||!ps(l,a.url,a.url_matching||"contains"))return!1}return!0}Li(n,a){return!!this.Wi(n,a)&&!!this.Gi(n,a)&&!!this.Vi(n,a)}Wi(n,a){var r;if(a==null||!a.href)return!0;var l=this.Ji(n);if(l.length>0)return l.some((h=>ps(h.href,a.href,a.href_matching||"exact")));var c,f=(n==null||(r=n.properties)==null?void 0:r.$elements_chain)||"";return!!f&&ps((c=f.match(/(?::|")href="(.*?)"/))?c[1]:"",a.href,a.href_matching||"exact")}Gi(n,a){var r;if(a==null||!a.text)return!0;var l=this.Ji(n);if(l.length>0)return l.some((m=>ps(m.text,a.text,a.text_matching||"exact")||ps(m.$el_text,a.text,a.text_matching||"exact")));var c,f,h,p=(n==null||(r=n.properties)==null?void 0:r.$elements_chain)||"";return!!p&&(c=(function(m){for(var y,_=[],x=/(?::|")text="(.*?)"/g;!Re(y=x.exec(m));)_.includes(y[1])||_.push(y[1]);return _})(p),f=a.text,h=a.text_matching||"exact",c.some((m=>ps(m,f,h))))}Vi(n,a){var r,l;if(a==null||!a.selector)return!0;var c=n==null||(r=n.properties)==null?void 0:r.$element_selectors;if(c!=null&&c.includes(a.selector))return!0;var f=(n==null||(l=n.properties)==null?void 0:l.$elements_chain)||"";if(a.selector_regex&&f)try{return new RegExp(a.selector_regex).test(f)}catch{return!1}return!1}Ji(n){var a;return(n==null||(a=n.properties)==null?void 0:a.$elements)==null?[]:n?.properties.$elements}Ni(n,a){return a==null||!a.properties||a.properties.length===0||C_(a.properties.reduce(((r,l)=>{var c=Pe(l.value)?l.value.map(String):l.value!=null?[String(l.value)]:[];return r[l.key]={values:c,operator:l.operator||"exact"},r}),{}),n?.properties)}}class _1{constructor(n){this._instance=n,this.Ki=new Map,this.Yi=new Map,this.Xi=new Map}Qi(n,a){return!!n&&C_(n.propertyFilters,a?.properties)}Zi(n,a){var r=new Map;return n.forEach((l=>{var c;(c=l.conditions)==null||(c=c[a])==null||(c=c.values)==null||c.forEach((f=>{if(f!=null&&f.name){var h=r.get(f.name)||[];h.push(l.id),r.set(f.name,h)}}))})),r}te(n,a,r){var l=(r===Fr.Activation?this.Ki:this.Yi).get(n),c=[];return this.ie((f=>{c=f.filter((h=>l?.includes(h.id)))})),c.filter((f=>{var h,p=(h=f.conditions)==null||(h=h[r])==null||(h=h.values)==null?void 0:h.find((m=>m.name===n));return this.Qi(p,a)}))}register(n){var a;X((a=this._instance)==null?void 0:a.Hi)||(this.ee(n),this.re(n))}re(n){var a=n.filter((r=>{var l,c;return((l=r.conditions)==null?void 0:l.actions)&&((c=r.conditions)==null||(c=c.actions)==null||(c=c.values)==null?void 0:c.length)>0}));a.length!==0&&(this.se==null&&(this.se=new b1(this._instance),this.se.init(),this.se.qi((r=>{this.onAction(r)}))),a.forEach((r=>{var l,c,f,h,p;r.conditions&&(l=r.conditions)!=null&&l.actions&&(c=r.conditions)!=null&&(c=c.actions)!=null&&c.values&&((f=r.conditions)==null||(f=f.actions)==null||(f=f.values)==null?void 0:f.length)>0&&((h=this.se)==null||h.register(r.conditions.actions.values),(p=r.conditions)==null||(p=p.actions)==null||(p=p.values)==null||p.forEach((m=>{if(m&&m.name){var y=this.Xi.get(m.name);y&&y.push(r.id),this.Xi.set(m.name,y||[r.id])}})))})))}ee(n){var a,r=n.filter((c=>{var f,h;return((f=c.conditions)==null?void 0:f.events)&&((h=c.conditions)==null||(h=h.events)==null||(h=h.values)==null?void 0:h.length)>0})),l=n.filter((c=>{var f,h;return((f=c.conditions)==null?void 0:f.cancelEvents)&&((h=c.conditions)==null||(h=h.cancelEvents)==null||(h=h.values)==null?void 0:h.length)>0}));(r.length!==0||l.length!==0)&&((a=this._instance)==null||a.Hi(((c,f)=>{this.onEvent(c,f)})),this.Ki=this.Zi(n,Fr.Activation),this.Yi=this.Zi(n,Fr.Cancellation))}onEvent(n,a){var r,l=this.ne(),c=this.oe(),f=this.ae(),h=((r=this._instance)==null||(r=r.persistence)==null?void 0:r.props[c])||[];if(f===n&&a&&h.length>0){var p,m;l.info("event matched, removing item from activated items",{event:n,eventPayload:a,existingActivatedItems:h});var y=(a==null||(p=a.properties)==null?void 0:p.$survey_id)||(a==null||(m=a.properties)==null?void 0:m.$product_tour_id);if(y){var _=h.indexOf(y);_>=0&&(h.splice(_,1),this.le(h))}}else{if(this.Yi.has(n)){var x=this.te(n,a,Fr.Cancellation);x.length>0&&(l.info("cancel event matched, cancelling items",{event:n,itemsToCancel:x.map((C=>C.id))}),x.forEach((C=>{var k=h.indexOf(C.id);k>=0&&h.splice(k,1),this.ue(C.id)})),this.le(h))}if(this.Ki.has(n)){l.info("event name matched",{event:n,eventPayload:a,items:this.Ki.get(n)});var A=this.te(n,a,Fr.Activation);this.le(h.concat(A.map((C=>C.id))||[]))}}}onAction(n){var a,r=this.oe(),l=((a=this._instance)==null||(a=a.persistence)==null?void 0:a.props[r])||[];this.Xi.has(n)&&this.le(l.concat(this.Xi.get(n)||[]))}le(n){var a,r=this.ne(),l=this.oe(),c=[...new Set(n)].filter((f=>!this.he(f)));r.info("updating activated items",{activatedItems:c}),(a=this._instance)==null||(a=a.persistence)==null||a.register({[l]:c})}getActivatedIds(){var n,a=this.oe(),r=(n=this._instance)==null||(n=n.persistence)==null?void 0:n.props[a];return r||[]}getEventToItemsMap(){return this.Ki}de(){return this.se}}class S1 extends _1{constructor(n){super(n)}oe(){return"$surveys_activated"}ae(){return Vr.SHOWN}ie(n){var a;(a=this._instance)==null||a.getSurveys(n)}ue(n){var a;(a=this._instance)==null||a.cancelPendingSurvey(n)}ne(){return qe}he(){return!1}getSurveys(){return this.getActivatedIds()}getEventToSurveys(){return this.getEventToItemsMap()}}class x1{constructor(n){this.ve=void 0,this._surveyManager=null,this.ce=!1,this.fe=[],this.pe=null,this._instance=n,this._surveyEventReceiver=null}onRemoteConfig(n){if(!this._instance.config.disable_surveys){var a=n.surveys;if(Re(a))return qe.warn("Flags not loaded yet. Not loading surveys.");var r=Pe(a);this.ve=r?a.length>0:a,qe.info("flags response received, isSurveysEnabled: "+this.ve),this.loadIfEnabled()}}reset(){localStorage.removeItem("lastSeenSurveyDate");for(var n=[],a=0;a<localStorage.length;a++){var r=localStorage.key(a);(r!=null&&r.startsWith(A_)||r!=null&&r.startsWith("inProgressSurvey_"))&&n.push(r)}n.forEach((l=>localStorage.removeItem(l)))}loadIfEnabled(){if(!this._surveyManager)if(this.ce)qe.info("Already initializing surveys, skipping...");else if(this._instance.config.disable_surveys)qe.info("Disabled. Not loading surveys.");else if(this._instance.config.cookieless_mode&&this._instance.consent.isOptedOut())qe.info("Not loading surveys in cookieless mode without consent.");else{var n=ce?.__PosthogExtensions__;if(n){if(!X(this.ve)||this._instance.config.advanced_enable_surveys){var a=this.ve||this._instance.config.advanced_enable_surveys;this.ce=!0;try{var r=n.generateSurveys;if(r)return void this.ge(r,a);var l=n.loadExternalDependency;if(!l)return void this._e("PostHog loadExternalDependency extension not found.");l(this._instance,"surveys",(c=>{c||!n.generateSurveys?this._e("Could not load surveys script",c):this.ge(n.generateSurveys,a)}))}catch(c){throw this._e("Error initializing surveys",c),c}finally{this.ce=!1}}}else qe.error("PostHog Extensions not found.")}}ge(n,a){this._surveyManager=n(this._instance,a),this._surveyEventReceiver=new S1(this._instance),qe.info("Surveys loaded successfully"),this.me({isLoaded:!0})}_e(n,a){qe.error(n,a),this.me({isLoaded:!1,error:n})}onSurveysLoaded(n){return this.fe.push(n),this._surveyManager&&this.me({isLoaded:!0}),()=>{this.fe=this.fe.filter((a=>a!==n))}}getSurveys(n,a){if(a===void 0&&(a=!1),this._instance.config.disable_surveys)return qe.info("Disabled. Not loading surveys."),n([]);var r,l=this._instance.get_property(Uf);if(l&&!a)return n(l,{isLoaded:!0});typeof Promise<"u"&&this.pe?this.pe.then((c=>{var{surveys:f,context:h}=c;return n(f,h)})):(typeof Promise<"u"&&(this.pe=new Promise((c=>{r=c}))),this._instance._send_request({url:this._instance.requestRouter.endpointFor("api","/api/surveys/?token="+this._instance.config.token),method:"GET",timeout:this._instance.config.surveys_request_timeout_ms,callback:c=>{var f;this.pe=null;var h=c.statusCode;if(h!==200||!c.json){var p="Surveys API could not be loaded, status: "+h;qe.error(p);var m={isLoaded:!1,error:p};return n([],m),void(r==null||r({surveys:[],context:m}))}var y,_=c.json.surveys||[],x=_.filter((C=>(function(k){return!(!k.start_date||k.end_date)})(C)&&((function(k){var E;return!((E=k.conditions)==null||(E=E.events)==null||(E=E.values)==null||!E.length)})(C)||(function(k){var E;return!((E=k.conditions)==null||(E=E.actions)==null||(E=E.values)==null||!E.length)})(C))));x.length>0&&((y=this._surveyEventReceiver)==null||y.register(x)),(f=this._instance.persistence)==null||f.register({[Uf]:_});var A={isLoaded:!0};n(_,A),r?.({surveys:_,context:A})}}))}me(n){for(var a of this.fe)try{if(!n.isLoaded)return a([],n);this.getSurveys(a)}catch(r){qe.error("Error in survey callback",r)}}getActiveMatchingSurveys(n,a){if(a===void 0&&(a=!1),!Re(this._surveyManager))return this._surveyManager.getActiveMatchingSurveys(n,a);qe.warn("init was not called")}ye(n){var a=null;return this.getSurveys((r=>{var l;a=(l=r.find((c=>c.id===n)))!==null&&l!==void 0?l:null})),a}be(n){if(Re(this._surveyManager))return{eligible:!1,reason:"SDK is not enabled or survey functionality is not yet loaded"};var a=typeof n=="string"?this.ye(n):n;return a?this._surveyManager.checkSurveyEligibility(a):{eligible:!1,reason:"Survey not found"}}canRenderSurvey(n){if(Re(this._surveyManager))return qe.warn("init was not called"),{visible:!1,disabledReason:"SDK is not enabled or survey functionality is not yet loaded"};var a=this.be(n);return{visible:a.eligible,disabledReason:a.reason}}canRenderSurveyAsync(n,a){return Re(this._surveyManager)?(qe.warn("init was not called"),Promise.resolve({visible:!1,disabledReason:"SDK is not enabled or survey functionality is not yet loaded"})):new Promise((r=>{this.getSurveys((l=>{var c,f=(c=l.find((p=>p.id===n)))!==null&&c!==void 0?c:null;if(f){var h=this.be(f);r({visible:h.eligible,disabledReason:h.reason})}else r({visible:!1,disabledReason:"Survey not found"})}),a)}))}renderSurvey(n,a,r){var l;if(Re(this._surveyManager))qe.warn("init was not called");else{var c=typeof n=="string"?this.ye(n):n;if(c!=null&&c.id)if(v1.includes(c.type)){var f=J?.querySelector(a);if(f)return(l=c.appearance)!=null&&l.surveyPopupDelaySeconds?(qe.info("Rendering survey "+c.id+" with delay of "+c.appearance.surveyPopupDelaySeconds+" seconds"),void setTimeout((()=>{var h,p;qe.info("Rendering survey "+c.id+" with delay of "+((h=c.appearance)==null?void 0:h.surveyPopupDelaySeconds)+" seconds"),(p=this._surveyManager)==null||p.renderSurvey(c,f,r),qe.info("Survey "+c.id+" rendered")}),1e3*c.appearance.surveyPopupDelaySeconds)):void this._surveyManager.renderSurvey(c,f,r);qe.warn("Survey element not found")}else qe.warn("Surveys of type "+c.type+" cannot be rendered in the app");else qe.warn("Survey not found")}}displaySurvey(n,a){var r;if(Re(this._surveyManager))qe.warn("init was not called");else{var l=this.ye(n);if(l){var c=l;if((r=l.appearance)!=null&&r.surveyPopupDelaySeconds&&a.ignoreDelay&&(c=ee({},l,{appearance:ee({},l.appearance,{surveyPopupDelaySeconds:0})})),a.ignoreConditions===!1){var f=this.canRenderSurvey(l);if(!f.visible)return void qe.warn("Survey is not eligible to be displayed: ",f.disabledReason)}a.displayType!==k_.Inline?this._surveyManager.handlePopoverSurvey(c,a.properties):this.renderSurvey(c,a.selector,a.properties)}else qe.warn("Survey not found")}}cancelPendingSurvey(n){Re(this._surveyManager)?qe.warn("init was not called"):this._surveyManager.cancelSurvey(n)}handlePageUnload(){var n;(n=this._surveyManager)==null||n.handlePageUnload()}}var ra=nt("[Conversations]");class w1{constructor(n){this.we=void 0,this._conversationsManager=null,this.xe=!1,this.Ee=null,this._instance=n}onRemoteConfig(n){if(!this._instance.config.disable_conversations){var a=n.conversations;Re(a)||(ha(a)?this.we=a:(this.we=a.enabled,this.Ee=a),this.loadIfEnabled())}}reset(){var n;(n=this._conversationsManager)==null||n.reset(),this._conversationsManager=null,this.we=void 0,this.Ee=null}loadIfEnabled(){if(!this._conversationsManager&&!this.xe&&!(this._instance.config.disable_conversations||this._instance.config.cookieless_mode&&this._instance.consent.isOptedOut())){var n=ce?.__PosthogExtensions__;if(n&&!X(this.we)&&this.we)if(this.Ee&&this.Ee.token){this.xe=!0;try{var a=n.initConversations;if(a)return this.$e(a),void(this.xe=!1);var r=n.loadExternalDependency;if(!r)return void this.Se("PostHog loadExternalDependency extension not found.");r(this._instance,"conversations",(l=>{l||!n.initConversations?this.Se("Could not load conversations script",l):this.$e(n.initConversations),this.xe=!1}))}catch(l){this.Se("Error initializing conversations",l),this.xe=!1}}else ra.error("Conversations enabled but missing token in remote config.")}}$e(n){if(this.Ee)try{this._conversationsManager=n(this.Ee,this._instance),ra.info("Conversations loaded successfully")}catch(a){this.Se("Error completing conversations initialization",a)}else ra.error("Cannot complete initialization: remote config is null")}Se(n,a){ra.error(n,a),this._conversationsManager=null,this.xe=!1}show(){this._conversationsManager?this._conversationsManager.show():ra.warn("Conversations not loaded yet.")}hide(){this._conversationsManager&&this._conversationsManager.hide()}isAvailable(){return this.we===!0&&!Nn(this._conversationsManager)}isVisible(){var n,a;return(n=(a=this._conversationsManager)==null?void 0:a.isVisible())!==null&&n!==void 0&&n}sendMessage(n,a,r){var l=this;return bs((function*(){return l._conversationsManager?l._conversationsManager.sendMessage(n,a,r):(ra.warn("Conversations not available yet."),null)}))()}getMessages(n,a){var r=this;return bs((function*(){return r._conversationsManager?r._conversationsManager.getMessages(n,a):(ra.warn("Conversations not available yet."),null)}))()}markAsRead(n){var a=this;return bs((function*(){return a._conversationsManager?a._conversationsManager.markAsRead(n):(ra.warn("Conversations not available yet."),null)}))()}getTickets(n){var a=this;return bs((function*(){return a._conversationsManager?a._conversationsManager.getTickets(n):(ra.warn("Conversations not available yet."),null)}))()}getCurrentTicketId(){var n,a;return(n=(a=this._conversationsManager)==null?void 0:a.getCurrentTicketId())!==null&&n!==void 0?n:null}getWidgetSessionId(){var n,a;return(n=(a=this._conversationsManager)==null?void 0:a.getWidgetSessionId())!==null&&n!==void 0?n:null}}class C1{constructor(n){var a;this.ke=!1,this.Pe=!1,this._instance=n,this._instance&&(a=this._instance.config.logs)!=null&&a.captureConsoleLogs&&(this.ke=!0)}onRemoteConfig(n){var a,r=(a=n.logs)==null?void 0:a.captureConsoleLogs;!Re(r)&&r&&(this.ke=!0,this.loadIfEnabled())}reset(){}loadIfEnabled(){if(this.ke&&!this.Pe){var n=nt("[logs]"),a=ce?.__PosthogExtensions__;if(a){var r=a.loadExternalDependency;r?r(this._instance,"logs",(l=>{var c;l||(c=a.logs)==null||!c.initializeLogs?n.error("Could not load logs script",l):(a.logs.initializeLogs(this._instance),this.Pe=!0)})):n.error("PostHog loadExternalDependency extension not found.")}else n.error("PostHog Extensions not found.")}}}var Yy=nt("[RateLimiter]");class k1{constructor(n){var a,r;this.serverLimits={},this.lastEventRateLimited=!1,this.checkForLimiting=l=>{var c=l.text;if(c&&c.length)try{(JSON.parse(c).quota_limited||[]).forEach((f=>{Yy.info((f||"events")+" is quota limited."),this.serverLimits[f]=new Date().getTime()+6e4}))}catch(f){return void Yy.warn('could not rate limit - continuing. Error: "'+f?.message+'"',{text:c})}},this.instance=n,this.captureEventsPerSecond=((a=n.config.rate_limiting)==null?void 0:a.events_per_second)||10,this.captureEventsBurstLimit=Math.max(((r=n.config.rate_limiting)==null?void 0:r.events_burst_limit)||10*this.captureEventsPerSecond,this.captureEventsPerSecond),this.lastEventRateLimited=this.clientRateLimitContext(!0).isRateLimited}clientRateLimitContext(n){var a,r,l;n===void 0&&(n=!1);var c=new Date().getTime(),f=(a=(r=this.instance.persistence)==null?void 0:r.get_property(If))!==null&&a!==void 0?a:{tokens:this.captureEventsBurstLimit,last:c};f.tokens+=(c-f.last)/1e3*this.captureEventsPerSecond,f.last=c,f.tokens>this.captureEventsBurstLimit&&(f.tokens=this.captureEventsBurstLimit);var h=f.tokens<1;return h||n||(f.tokens=Math.max(0,f.tokens-1)),!h||this.lastEventRateLimited||n||this.instance.capture("$$client_ingestion_warning",{$$client_ingestion_warning_message:"posthog-js client rate limited. Config is set to "+this.captureEventsPerSecond+" events per second and "+this.captureEventsBurstLimit+" events burst limit."},{skip_client_rate_limiting:!0}),this.lastEventRateLimited=h,(l=this.instance.persistence)==null||l.set_property(If,f),{isRateLimited:h,remainingTokens:f.tokens}}isServerRateLimited(n){var a=this.serverLimits[n||"events"]||!1;return a!==!1&&new Date().getTime()<a}}var _i=nt("[RemoteConfig]");class A1{constructor(n){this._instance=n}get remoteConfig(){var n;return(n=ce._POSTHOG_REMOTE_CONFIG)==null||(n=n[this._instance.config.token])==null?void 0:n.config}Te(n){var a,r;(a=ce.__PosthogExtensions__)!=null&&a.loadExternalDependency?(r=ce.__PosthogExtensions__)==null||r.loadExternalDependency==null||r.loadExternalDependency(this._instance,"remote-config",(()=>n(this.remoteConfig))):(_i.error("PostHog Extensions not found. Cannot load remote config."),n())}Ie(n){this._instance._send_request({method:"GET",url:this._instance.requestRouter.endpointFor("assets","/array/"+this._instance.config.token+"/config"),callback:a=>{n(a.json)}})}load(){try{if(this.remoteConfig)return _i.info("Using preloaded remote config",this.remoteConfig),void this.yi(this.remoteConfig);if(this._instance.O())return void _i.warn("Remote config is disabled. Falling back to local config.");this.Te((n=>{if(!n)return _i.info("No config found after loading remote JS config. Falling back to JSON."),void this.Ie((a=>{this.yi(a)}));this.yi(n)}))}catch(n){_i.error("Error loading remote config",n)}}yi(n){n?this._instance.config.__preview_remote_config?(this._instance.yi(n),n.hasFeatureFlags!==!1&&this._instance.featureFlags.ensureFlagsLoaded()):_i.info("__preview_remote_config is disabled. Logging config instead",n):_i.error("Failed to fetch remote config from PostHog.")}}var Yf=3e3;class E1{constructor(n,a){this.Ce=!0,this.Re=[],this.Fe=Ln(a?.flush_interval_ms||Yf,250,5e3,W.createLogger("flush interval"),Yf),this.Me=n}enqueue(n){this.Re.push(n),this.Oe||this.Ae()}unload(){this.De();var n=this.Re.length>0?this.je():{},a=Object.values(n);[...a.filter((r=>r.url.indexOf("/e")===0)),...a.filter((r=>r.url.indexOf("/e")!==0))].map((r=>{this.Me(ee({},r,{transport:"sendBeacon"}))}))}enable(){this.Ce=!1,this.Ae()}Ae(){var n=this;this.Ce||(this.Oe=setTimeout((()=>{if(this.De(),this.Re.length>0){var a=this.je(),r=function(){var c=a[l],f=new Date().getTime();c.data&&Pe(c.data)&&$e(c.data,(h=>{h.offset=Math.abs(h.timestamp-f),delete h.timestamp})),n.Me(c)};for(var l in a)r()}}),this.Fe))}De(){clearTimeout(this.Oe),this.Oe=void 0}je(){var n={};return $e(this.Re,(a=>{var r,l=a,c=(l?l.batchKey:null)||l.url;X(n[c])&&(n[c]=ee({},l,{data:[]})),(r=n[c].data)==null||r.push(l.data)})),this.Re=[],n}}var T1=["retriesPerformedSoFar"];class N1{constructor(n){this.Le=!1,this.Ne=3e3,this.Re=[],this._instance=n,this.Re=[],this.Ue=!0,!X(U)&&"onLine"in U.navigator&&(this.Ue=U.navigator.onLine,this.ze=()=>{this.Ue=!0,this.Lt()},this.He=()=>{this.Ue=!1},dt(U,"online",this.ze),dt(U,"offline",this.He))}get length(){return this.Re.length}retriableRequest(n){var{retriesPerformedSoFar:a}=n,r=_0(n,T1);vs(a)&&(r.url=lc(r.url,{retry_count:a})),this._instance._send_request(ee({},r,{callback:l=>{l.statusCode!==200&&(l.statusCode<400||l.statusCode>=500)&&(a??0)<10?this.Be(ee({retriesPerformedSoFar:a},r)):r.callback==null||r.callback(l)}}))}Be(n){var a=n.retriesPerformedSoFar||0;n.retriesPerformedSoFar=a+1;var r=(function(f){var h=3e3*Math.pow(2,f),p=h/2,m=Math.min(18e5,h),y=(Math.random()-.5)*(m-p);return Math.ceil(m+y)})(a),l=Date.now()+r;this.Re.push({retryAt:l,requestOptions:n});var c="Enqueued failed request for retry in "+r;navigator.onLine||(c+=" (Browser is offline)"),W.warn(c),this.Le||(this.Le=!0,this.qe())}qe(){if(this.We&&clearTimeout(this.We),this.Re.length===0)return this.Le=!1,void(this.We=void 0);this.We=setTimeout((()=>{this.Ue&&this.Re.length>0&&this.Lt(),this.qe()}),this.Ne)}Lt(){var n=Date.now(),a=[],r=this.Re.filter((c=>c.retryAt<n||(a.push(c),!1)));if(this.Re=a,r.length>0)for(var{requestOptions:l}of r)this.retriableRequest(l)}unload(){for(var{requestOptions:n}of(this.We&&(clearTimeout(this.We),this.We=void 0),this.Le=!1,X(U)||(this.ze&&(U.removeEventListener("online",this.ze),this.ze=void 0),this.He&&(U.removeEventListener("offline",this.He),this.He=void 0)),this.Re))try{this._instance._send_request(ee({},n,{transport:"sendBeacon"}))}catch(a){W.error(a)}this.Re=[]}}class M1{constructor(n){this.Ge=()=>{var a,r,l,c;this.Ve||(this.Ve={});var f=this.scrollElement(),h=this.scrollY(),p=f?Math.max(0,f.scrollHeight-f.clientHeight):0,m=h+(f?.clientHeight||0),y=f?.scrollHeight||0;this.Ve.lastScrollY=Math.ceil(h),this.Ve.maxScrollY=Math.max(h,(a=this.Ve.maxScrollY)!==null&&a!==void 0?a:0),this.Ve.maxScrollHeight=Math.max(p,(r=this.Ve.maxScrollHeight)!==null&&r!==void 0?r:0),this.Ve.lastContentY=m,this.Ve.maxContentY=Math.max(m,(l=this.Ve.maxContentY)!==null&&l!==void 0?l:0),this.Ve.maxContentHeight=Math.max(y,(c=this.Ve.maxContentHeight)!==null&&c!==void 0?c:0)},this._instance=n}getContext(){return this.Ve}resetContext(){var n=this.Ve;return setTimeout(this.Ge,0),n}startMeasuringScrollPosition(){dt(U,"scroll",this.Ge,{capture:!0}),dt(U,"scrollend",this.Ge,{capture:!0}),dt(U,"resize",this.Ge)}scrollElement(){if(!this._instance.config.scroll_root_selector)return U?.document.documentElement;var n=Pe(this._instance.config.scroll_root_selector)?this._instance.config.scroll_root_selector:[this._instance.config.scroll_root_selector];for(var a of n){var r=U?.document.querySelector(a);if(r)return r}}scrollY(){if(this._instance.config.scroll_root_selector){var n=this.scrollElement();return n&&n.scrollTop||0}return U&&(U.scrollY||U.pageYOffset||U.document.documentElement.scrollTop)||0}scrollX(){if(this._instance.config.scroll_root_selector){var n=this.scrollElement();return n&&n.scrollLeft||0}return U&&(U.scrollX||U.pageXOffset||U.document.documentElement.scrollLeft)||0}}var j1=s=>m_(s?.config.mask_personal_data_properties,s?.config.custom_personal_data_properties);class Ky{constructor(n,a,r,l){this.Je=c=>{var f=this.Ke();if(!f||f.sessionId!==c){var h={sessionId:c,props:this.Ye(this._instance)};this.Xe.register({[zf]:h})}},this._instance=n,this.Qe=a,this.Xe=r,this.Ye=l||j1,this.Qe.onSessionId(this.Je)}Ke(){return this.Xe.props[zf]}getSetOnceProps(){var n,a=(n=this.Ke())==null?void 0:n.props;return a?"r"in a?g_(a):{$referring_domain:a.referringDomain,$pathname:a.initialPathName,utm_source:a.utm_source,utm_campaign:a.utm_campaign,utm_medium:a.utm_medium,utm_content:a.utm_content,utm_term:a.utm_term}:{}}getSessionProps(){var n={};return $e(yh(this.getSetOnceProps()),((a,r)=>{r==="$current_url"&&(r="url"),n["$session_entry_"+Tf(r)]=a})),n}}var cf=nt("[SessionId]");class Xy{on(n,a){return this.Ze.on(n,a)}constructor(n,a,r){var l;if(this.tr=[],this.ir=void 0,this.Ze=new Ch,this.er=(y,_)=>!(!vs(y)||!vs(_))&&Math.abs(y-_)>this.sessionTimeoutMs,!n.persistence)throw new Error("SessionIdManager requires a PostHogPersistence instance");if(n.config.cookieless_mode==="always")throw new Error('SessionIdManager cannot be used with cookieless_mode="always"');this.R=n.config,this.Xe=n.persistence,this.rr=void 0,this.sr=void 0,this._sessionStartTimestamp=null,this._sessionActivityTimestamp=null,this.nr=a||Ya,this.ar=r||Ya;var c=this.R.persistence_name||this.R.token,f=this.R.session_idle_timeout_seconds||1800;if(this._sessionTimeoutMs=1e3*Ln(f,60,36e3,cf.createLogger("session_idle_timeout_seconds"),1800),n.register({$configured_session_timeout_ms:this._sessionTimeoutMs}),this.lr(),this.ur="ph_"+c+"_window_id",this.hr="ph_"+c+"_primary_window_exists",this.dr()){var h=kt.W(this.ur),p=kt.W(this.hr);h&&!p?this.rr=h:kt.V(this.ur),kt.G(this.hr,!0)}if((l=this.R.bootstrap)!=null&&l.sessionID)try{var m=(y=>{var _=y.replace(/-/g,"");if(_.length!==32)throw new Error("Not a valid UUID");if(_[12]!=="7")throw new Error("Not a UUIDv7");return parseInt(_.substring(0,12),16)})(this.R.bootstrap.sessionID);this.vr(this.R.bootstrap.sessionID,new Date().getTime(),m)}catch(y){cf.error("Invalid sessionID in bootstrap",y)}this.cr()}get sessionTimeoutMs(){return this._sessionTimeoutMs}onSessionId(n){return X(this.tr)&&(this.tr=[]),this.tr.push(n),this.sr&&n(this.sr,this.rr),()=>{this.tr=this.tr.filter((a=>a!==n))}}dr(){return this.R.persistence!=="memory"&&!this.Xe.Si&&kt.H()}pr(n){n!==this.rr&&(this.rr=n,this.dr()&&kt.G(this.ur,n))}gr(){return this.rr?this.rr:this.dr()?kt.W(this.ur):null}vr(n,a,r){n===this.sr&&a===this._sessionActivityTimestamp&&r===this._sessionStartTimestamp||(this._sessionStartTimestamp=r,this._sessionActivityTimestamp=a,this.sr=n,this.Xe.register({[Wl]:[a,n,r]}))}_r(){var n=this.Xe.props[Wl];return Pe(n)&&n.length===2&&n.push(n[0]),n||[0,null,0]}resetSessionId(){this.vr(null,null,null)}destroy(){clearTimeout(this.mr),this.mr=void 0,this.ir&&U&&(U.removeEventListener("beforeunload",this.ir,{capture:!1}),this.ir=void 0),this.tr=[]}cr(){this.ir=()=>{this.dr()&&kt.V(this.hr)},dt(U,"beforeunload",this.ir,{capture:!1})}checkAndGetSessionAndWindowId(n,a){if(n===void 0&&(n=!1),a===void 0&&(a=null),this.R.cookieless_mode==="always")throw new Error('checkAndGetSessionAndWindowId should not be called with cookieless_mode="always"');var r=a||new Date().getTime(),[l,c,f]=this._r(),h=this.gr(),p=vs(f)&&Math.abs(r-f)>864e5,m=!1,y=!c,_=!y&&!n&&this.er(r,l);y||_||p?(c=this.nr(),h=this.ar(),cf.info("new session ID generated",{sessionId:c,windowId:h,changeReason:{noSessionId:y,activityTimeout:_,sessionPastMaximumLength:p}}),f=r,m=!0):h||(h=this.ar(),m=!0);var x=vs(l)&&n&&!p?l:r,A=vs(f)?f:new Date().getTime();return this.pr(h),this.vr(c,x,A),n||this.lr(),m&&this.tr.forEach((C=>C(c,h,m?{noSessionId:y,activityTimeout:_,sessionPastMaximumLength:p}:void 0))),{sessionId:c,windowId:h,sessionStartTimestamp:A,changeReason:m?{noSessionId:y,activityTimeout:_,sessionPastMaximumLength:p}:void 0,lastActivityTimestamp:l}}lr(){clearTimeout(this.mr),this.mr=setTimeout((()=>{var[n]=this._r();if(this.er(new Date().getTime(),n)){var a=this.sr;this.resetSessionId(),this.Ze.emit("forcedIdleReset",{idleSessionId:a})}}),1.1*this.sessionTimeoutMs)}}var R1=["$set_once","$set"],Va=nt("[SiteApps]");class D1{constructor(n){this._instance=n,this.yr=[],this.apps={}}get isEnabled(){return!!this._instance.config.opt_in_site_apps}br(n,a){if(a){var r=this.globalsForEvent(a);this.yr.push(r),this.yr.length>1e3&&(this.yr=this.yr.slice(10))}}get siteAppLoaders(){var n;return(n=ce._POSTHOG_REMOTE_CONFIG)==null||(n=n[this._instance.config.token])==null?void 0:n.siteApps}init(){if(this.isEnabled){var n=this._instance.Hi(this.br.bind(this));this.wr=()=>{n(),this.yr=[],this.wr=void 0}}}globalsForEvent(n){var a,r,l,c,f,h,p;if(!n)throw new Error("Event payload is required");var m={},y=this._instance.get_property("$groups")||[],_=this._instance.get_property("$stored_group_properties")||{};for(var[x,A]of Object.entries(_))m[x]={id:y[x],type:x,properties:A};var{$set_once:C,$set:k}=n;return{event:ee({},_0(n,R1),{properties:ee({},n.properties,k?{$set:ee({},(a=(r=n.properties)==null?void 0:r.$set)!==null&&a!==void 0?a:{},k)}:{},C?{$set_once:ee({},(l=(c=n.properties)==null?void 0:c.$set_once)!==null&&l!==void 0?l:{},C)}:{}),elements_chain:(f=(h=n.properties)==null?void 0:h.$elements_chain)!==null&&f!==void 0?f:"",distinct_id:(p=n.properties)==null?void 0:p.distinct_id}),person:{properties:this._instance.get_property("$stored_person_properties")},groups:m}}setupSiteApp(n){var a=this.apps[n.id],r=()=>{var h;!a.errored&&this.yr.length&&(Va.info("Processing "+this.yr.length+" events for site app with id "+n.id),this.yr.forEach((p=>a.processEvent==null?void 0:a.processEvent(p))),a.processedBuffer=!0),Object.values(this.apps).every((p=>p.processedBuffer||p.errored))&&((h=this.wr)==null||h.call(this))},l=!1,c=h=>{a.errored=!h,a.loaded=!0,Va.info("Site app with id "+n.id+" "+(h?"loaded":"errored")),l&&r()};try{var{processEvent:f}=n.init({posthog:this._instance,callback:h=>{c(h)}});f&&(a.processEvent=f),l=!0}catch(h){Va.error("Error while initializing PostHog app with config id "+n.id,h),c(!1)}if(l&&a.loaded)try{r()}catch(h){Va.error("Error while processing buffered events PostHog app with config id "+n.id,h),a.errored=!0}}Er(){var n=this.siteAppLoaders||[];for(var a of n)this.apps[a.id]={id:a.id,loaded:!1,errored:!1,processedBuffer:!1};for(var r of n)this.setupSiteApp(r)}$r(n){if(Object.keys(this.apps).length!==0){var a=this.globalsForEvent(n);for(var r of Object.values(this.apps))try{r.processEvent==null||r.processEvent(a)}catch(l){Va.error("Error while processing event "+n.event+" for site app "+r.id,l)}}}onRemoteConfig(n){var a,r,l,c=this;if((a=this.siteAppLoaders)!=null&&a.length)return this.isEnabled?(this.Er(),void this._instance.on("eventCaptured",(m=>this.$r(m)))):void Va.error('PostHog site apps are disabled. Enable the "opt_in_site_apps" config to proceed.');if((r=this.wr)==null||r.call(this),(l=n.siteApps)!=null&&l.length)if(this.isEnabled){var f=function(m){var y;ce["__$$ph_site_app_"+m]=c._instance,(y=ce.__PosthogExtensions__)==null||y.loadSiteApp==null||y.loadSiteApp(c._instance,p,(_=>{if(_)return Va.error("Error while initializing PostHog app with config id "+m,_)}))};for(var{id:h,url:p}of n.siteApps)f(h)}else Va.error('PostHog site apps are disabled. Enable the "opt_in_site_apps" config to proceed.')}}var E_=function(s,n){if(!s)return!1;var a=s.userAgent;if(a&&sy(a,n))return!0;try{var r=s?.userAgentData;if(r!=null&&r.brands&&r.brands.some((l=>sy(l?.brand,n))))return!0}catch{}return!!s.webdriver},Gr=(function(s){return s.US="us",s.EU="eu",s.CUSTOM="custom",s})({}),Qy="i.posthog.com";class P1{constructor(n){this.Sr={},this.instance=n}get apiHost(){var n=this.instance.config.api_host.trim().replace(/\/$/,"");return n==="https://app.posthog.com"?"https://us.i.posthog.com":n}get flagsApiHost(){var n=this.instance.config.flags_api_host;return n?n.trim().replace(/\/$/,""):this.apiHost}get uiHost(){var n,a=(n=this.instance.config.ui_host)==null?void 0:n.replace(/\/$/,"");return a||(a=this.apiHost.replace("."+Qy,".posthog.com")),a==="https://app.posthog.com"?"https://us.posthog.com":a}get region(){return this.Sr[this.apiHost]||(/https:\/\/(app|us|us-assets)(\.i)?\.posthog\.com/i.test(this.apiHost)?this.Sr[this.apiHost]=Gr.US:/https:\/\/(eu|eu-assets)(\.i)?\.posthog\.com/i.test(this.apiHost)?this.Sr[this.apiHost]=Gr.EU:this.Sr[this.apiHost]=Gr.CUSTOM),this.Sr[this.apiHost]}endpointFor(n,a){if(a===void 0&&(a=""),a&&(a=a[0]==="/"?a:"/"+a),n==="ui")return this.uiHost+a;if(n==="flags")return this.flagsApiHost+a;if(this.region===Gr.CUSTOM)return this.apiHost+a;var r=Qy+a;switch(n){case"assets":return"https://"+this.region+"-assets."+r;case"api":return"https://"+this.region+"."+r}}}var O1={icontains:(s,n)=>!!U&&n.href.toLowerCase().indexOf(s.toLowerCase())>-1,not_icontains:(s,n)=>!!U&&n.href.toLowerCase().indexOf(s.toLowerCase())===-1,regex:(s,n)=>!!U&&cc(n.href,s),not_regex:(s,n)=>!!U&&!cc(n.href,s),exact:(s,n)=>n.href===s,is_not:(s,n)=>n.href!==s};class Tt{constructor(n){var a=this;this.getWebExperimentsAndEvaluateDisplayLogic=function(r){r===void 0&&(r=!1),a.getWebExperiments((l=>{Tt.kr("retrieved web experiments from the server"),a.Pr=new Map,l.forEach((c=>{if(c.feature_flag_key){var f;a.Pr&&(Tt.kr("setting flag key ",c.feature_flag_key," to web experiment ",c),(f=a.Pr)==null||f.set(c.feature_flag_key,c));var h=a._instance.getFeatureFlag(c.feature_flag_key);mt(h)&&c.variants[h]&&a.Tr(c.name,h,c.variants[h].transforms)}else if(c.variants)for(var p in c.variants){var m=c.variants[p];Tt.Ir(m)&&a.Tr(c.name,p,m.transforms)}}))}),r)},this._instance=n,this._instance.onFeatureFlags((r=>{this.onFeatureFlags(r)}))}onFeatureFlags(n){if(this._is_bot())Tt.kr("Refusing to render web experiment since the viewer is a likely bot");else if(!this._instance.config.disable_web_experiments){if(Re(this.Pr))return this.Pr=new Map,this.loadIfEnabled(),void this.previewWebExperiment();Tt.kr("applying feature flags",n),n.forEach((a=>{var r;if(this.Pr&&(r=this.Pr)!=null&&r.has(a)){var l,c=this._instance.getFeatureFlag(a),f=(l=this.Pr)==null?void 0:l.get(a);c&&f!=null&&f.variants[c]&&this.Tr(f.name,c,f.variants[c].transforms)}}))}}previewWebExperiment(){var n=Tt.getWindowLocation();if(n!=null&&n.search){var a=ic(n?.search,"__experiment_id"),r=ic(n?.search,"__experiment_variant");a&&r&&(Tt.kr("previewing web experiments "+a+" && "+r),this.getWebExperiments((l=>{this.Cr(parseInt(a),r,l)}),!1,!0))}}loadIfEnabled(){this._instance.config.disable_web_experiments||this.getWebExperimentsAndEvaluateDisplayLogic()}getWebExperiments(n,a,r){if(this._instance.config.disable_web_experiments&&!r)return n([]);var l=this._instance.get_property("$web_experiments");if(l&&!a)return n(l);this._instance._send_request({url:this._instance.requestRouter.endpointFor("api","/api/web_experiments/?token="+this._instance.config.token),method:"GET",callback:c=>{if(c.statusCode!==200||!c.json)return n([]);var f=c.json.experiments||[];return n(f)}})}Cr(n,a,r){var l=r.filter((c=>c.id===n));l&&l.length>0&&(Tt.kr("Previewing web experiment ["+l[0].name+"] with variant ["+a+"]"),this.Tr(l[0].name,a,l[0].variants[a].transforms))}static Ir(n){return!Re(n.conditions)&&Tt.Rr(n)&&Tt.Fr(n)}static Rr(n){var a;if(Re(n.conditions)||Re((a=n.conditions)==null?void 0:a.url))return!0;var r,l,c,f=Tt.getWindowLocation();return!!f&&((r=n.conditions)==null||!r.url||O1[(l=(c=n.conditions)==null?void 0:c.urlMatchType)!==null&&l!==void 0?l:"icontains"](n.conditions.url,f))}static getWindowLocation(){return U?.location}static Fr(n){var a;if(Re(n.conditions)||Re((a=n.conditions)==null?void 0:a.utm))return!0;var r=d_();if(r.utm_source){var l,c,f,h,p,m,y,_,x=(l=n.conditions)==null||(l=l.utm)==null||!l.utm_campaign||((c=n.conditions)==null||(c=c.utm)==null?void 0:c.utm_campaign)==r.utm_campaign,A=(f=n.conditions)==null||(f=f.utm)==null||!f.utm_source||((h=n.conditions)==null||(h=h.utm)==null?void 0:h.utm_source)==r.utm_source,C=(p=n.conditions)==null||(p=p.utm)==null||!p.utm_medium||((m=n.conditions)==null||(m=m.utm)==null?void 0:m.utm_medium)==r.utm_medium,k=(y=n.conditions)==null||(y=y.utm)==null||!y.utm_term||((_=n.conditions)==null||(_=_.utm)==null?void 0:_.utm_term)==r.utm_term;return x&&C&&k&&A}return!1}static kr(n){for(var a=arguments.length,r=new Array(a>1?a-1:0),l=1;l<a;l++)r[l-1]=arguments[l];W.info("[WebExperiments] "+n,r)}Tr(n,a,r){this._is_bot()?Tt.kr("Refusing to render web experiment since the viewer is a likely bot"):a!=="control"?r.forEach((l=>{if(l.selector){var c;Tt.kr("applying transform of variant "+a+" for experiment "+n+" ",l);var f=(c=document)==null?void 0:c.querySelectorAll(l.selector);f?.forEach((h=>{var p=h;l.html&&(p.innerHTML=l.html),l.css&&p.setAttribute("style",l.css)}))}})):Tt.kr("Control variants leave the page unmodified.")}_is_bot(){return tn&&this._instance?E_(tn,this._instance.config.custom_blocked_useragents):void 0}}var L1=nt("[PostHog ExternalIntegrations]"),F1={intercom:"intercom-integration",crispChat:"crisp-chat-integration"};class U1{constructor(n){this._instance=n}it(n,a){var r;(r=ce.__PosthogExtensions__)==null||r.loadExternalDependency==null||r.loadExternalDependency(this._instance,n,(l=>{if(l)return L1.error("failed to load script",l);a()}))}startIfEnabledOrStop(){var n=this,a=function(f){var h,p,m;!l||(h=ce.__PosthogExtensions__)!=null&&(h=h.integrations)!=null&&h[f]||n.it(F1[f],(()=>{var y;(y=ce.__PosthogExtensions__)==null||(y=y.integrations)==null||(y=y[f])==null||y.start(n._instance)})),!l&&(p=ce.__PosthogExtensions__)!=null&&(p=p.integrations)!=null&&p[f]&&((m=ce.__PosthogExtensions__)==null||(m=m.integrations)==null||(m=m[f])==null||m.stop())};for(var[r,l]of Object.entries((c=this._instance.config.integrations)!==null&&c!==void 0?c:{})){var c;a(r)}}}var Kf="[SessionRecording]",Ur=nt(Kf);class Zy{get started(){var n;return!((n=this.Mr)==null||!n.isStarted)}get status(){return this.Mr?this.Mr.status:this.Or&&!this.Ar?"disabled":"lazy_loading"}constructor(n){if(this._forceAllowLocalhostNetworkCapture=!1,this.Or=!1,this.Dr=void 0,this._instance=n,!this._instance.sessionManager)throw Ur.error("started without valid sessionManager"),new Error(Kf+" started without valid sessionManager. This is a bug.");if(this._instance.config.cookieless_mode==="always")throw new Error(Kf+' cannot be used with cookieless_mode="always"')}get Ar(){var n,a=!((n=this._instance.get_property(Kd))==null||!n.enabled),r=!this._instance.config.disable_session_recording,l=this._instance.config.disable_session_recording||this._instance.consent.isOptedOut();return U&&a&&r&&!l}startIfEnabledOrStop(n){var a;if(!this.Ar||(a=this.Mr)==null||!a.isStarted){var r=!X(Object.assign)&&!X(Array.from);this.Ar&&r?(this.jr(n),Ur.info("starting")):this.stopRecording()}}jr(n){var a,r,l;this.Ar&&(ce!=null&&(a=ce.__PosthogExtensions__)!=null&&(a=a.rrweb)!=null&&a.record&&(r=ce.__PosthogExtensions__)!=null&&r.initSessionRecording?this.Lr(n):(l=ce.__PosthogExtensions__)==null||l.loadExternalDependency==null||l.loadExternalDependency(this._instance,this.Nr,(c=>{if(c)return Ur.error("could not load recorder",c);this.Lr(n)})))}stopRecording(){var n,a;(n=this.Dr)==null||n.call(this),this.Dr=void 0,(a=this.Mr)==null||a.stop()}Ur(){var n;(n=this._instance.persistence)==null||n.unregister(G0)}zr(n){if(this._instance.persistence){var a,r,l=this._instance.persistence,c=()=>{var f=n.sessionRecording===!1?void 0:n.sessionRecording,h=f?.sampleRate,p=Re(h)?null:parseFloat(h);Re(p)&&this.Ur();var m=f?.minimumDurationMilliseconds;l.register({[Kd]:ee({enabled:!!f},f,{networkPayloadCapture:ee({capturePerformance:n.capturePerformance},f?.networkPayloadCapture),canvasRecording:{enabled:f?.recordCanvas,fps:f?.canvasFps,quality:f?.canvasQuality},sampleRate:p,minimumDurationMilliseconds:X(m)?null:m,endpoint:f?.endpoint,triggerMatchType:f?.triggerMatchType,masking:f?.masking,urlTriggers:f?.urlTriggers})})};c(),(a=this.Dr)==null||a.call(this),this.Dr=(r=this._instance.sessionManager)==null?void 0:r.onSessionId(c)}}onRemoteConfig(n){"sessionRecording"in n?n.sessionRecording!==!1?(this.zr(n),this.Or=!0,this.startIfEnabledOrStop()):this.Or=!0:Ur.info("skipping remote config with no sessionRecording",n)}log(n,a){var r;a===void 0&&(a="log"),(r=this.Mr)!=null&&r.log?this.Mr.log(n,a):Ur.warn("log called before recorder was ready")}get Nr(){var n,a,r=(n=this._instance)==null||(n=n.persistence)==null?void 0:n.get_property(Kd);return(r==null||(a=r.scriptConfig)==null?void 0:a.script)||"lazy-recorder"}Lr(n){var a,r;if((a=ce.__PosthogExtensions__)==null||!a.initSessionRecording)throw Error("Called on script loaded before session recording is available");this.Mr||(this.Mr=(r=ce.__PosthogExtensions__)==null?void 0:r.initSessionRecording(this._instance),this.Mr._forceAllowLocalhostNetworkCapture=this._forceAllowLocalhostNetworkCapture),this.Mr.start(n)}onRRwebEmit(n){var a;(a=this.Mr)==null||a.onRRwebEmit==null||a.onRRwebEmit(n)}overrideLinkedFlag(){var n,a;this.Mr||(a=this._instance.persistence)==null||a.register({$replay_override_linked_flag:!0}),(n=this.Mr)==null||n.overrideLinkedFlag()}overrideSampling(){var n,a;this.Mr||(a=this._instance.persistence)==null||a.register({$replay_override_sampling:!0}),(n=this.Mr)==null||n.overrideSampling()}overrideTrigger(n){var a,r;this.Mr||(r=this._instance.persistence)==null||r.register({[n==="url"?"$replay_override_url_trigger":"$replay_override_event_trigger"]:!0}),(a=this.Mr)==null||a.overrideTrigger(n)}get sdkDebugProperties(){var n;return((n=this.Mr)==null?void 0:n.sdkDebugProperties)||{$recording_status:this.status}}tryAddCustomEvent(n,a){var r;return!((r=this.Mr)==null||!r.tryAddCustomEvent(n,a))}}var Xr={},Xf=()=>{},ys="posthog",T_=!c1&&zt?.indexOf("MSIE")===-1&&zt?.indexOf("Mozilla")===-1,Wy=s=>{var n;return ee({api_host:"https://us.i.posthog.com",flags_api_host:null,ui_host:null,token:"",autocapture:!0,cross_subdomain_cookie:pT(J?.location),persistence:"localStorage+cookie",persistence_name:"",cookie_persisted_properties:[],loaded:Xf,save_campaign_params:!0,custom_campaign_params:[],custom_blocked_useragents:[],save_referrer:!0,capture_pageleave:"if_capture_pageview",defaults:s??"unset",__preview_deferred_init_extensions:!1,debug:It&&mt(It?.search)&&It.search.indexOf("__posthog_debug=true")!==-1||!1,cookie_expiration:365,upgrade:!1,disable_session_recording:!1,disable_persistence:!1,disable_web_experiments:!0,disable_surveys:!1,disable_surveys_automatic_display:!1,disable_conversations:!1,disable_product_tours:!0,disable_external_dependency_loading:!1,enable_recording_console_log:void 0,secure_cookie:(U==null||(n=U.location)==null?void 0:n.protocol)==="https:",ip:!1,opt_out_capturing_by_default:!1,opt_out_persistence_by_default:!1,opt_out_useragent_filter:!1,opt_out_capturing_persistence_type:"localStorage",consent_persistence_name:null,opt_out_capturing_cookie_prefix:null,opt_in_site_apps:!1,property_denylist:[],respect_dnt:!1,sanitize_properties:null,request_headers:{},request_batching:!0,properties_string_max_length:65535,mask_all_element_attributes:!1,mask_all_text:!1,mask_personal_data_properties:!1,custom_personal_data_properties:[],advanced_disable_flags:!1,advanced_disable_decide:!1,advanced_disable_feature_flags:!1,advanced_disable_feature_flags_on_first_load:!1,advanced_only_evaluate_survey_feature_flags:!1,advanced_enable_surveys:!1,advanced_disable_toolbar_metrics:!1,feature_flag_request_timeout_ms:3e3,surveys_request_timeout_ms:1e4,on_request_error:a=>{var r="Bad HTTP status: "+a.statusCode+" "+a.text;W.error(r)},get_device_id:a=>a,capture_performance:void 0,name:"posthog",bootstrap:{},disable_compression:!1,session_idle_timeout_seconds:1800,person_profiles:"identified_only",before_send:void 0,request_queue_config:{flush_interval_ms:Yf},error_tracking:{},_onCapture:Xf,__preview_eager_load_replay:!1},(a=>({rageclick:!(a&&a>="2025-11-30")||{content_ignorelist:!0},capture_pageview:!(a&&a>="2025-05-24")||"history_change",session_recording:a&&a>="2025-11-30"?{strictMinimumDuration:!0}:{}}))(s))},Jy=s=>{var n={};X(s.process_person)||(n.person_profiles=s.process_person),X(s.xhr_headers)||(n.request_headers=s.xhr_headers),X(s.cookie_name)||(n.persistence_name=s.cookie_name),X(s.disable_cookie)||(n.disable_persistence=s.disable_cookie),X(s.store_google)||(n.save_campaign_params=s.store_google),X(s.verbose)||(n.debug=s.verbose);var a=st({},n,s);return Pe(s.property_blacklist)&&(X(s.property_denylist)?a.property_denylist=s.property_blacklist:Pe(s.property_denylist)?a.property_denylist=[...s.property_blacklist,...s.property_denylist]:W.error("Invalid value for property_denylist config: "+s.property_denylist)),a};class z1{constructor(){this.__forceAllowLocalhost=!1}get Hr(){return this.__forceAllowLocalhost}set Hr(n){W.error("WebPerformanceObserver is deprecated and has no impact on network capture. Use `_forceAllowLocalhostNetworkCapture` on `posthog.sessionRecording`"),this.__forceAllowLocalhost=n}}class bc{get decideEndpointWasHit(){var n,a;return(n=(a=this.featureFlags)==null?void 0:a.hasLoadedFlags)!==null&&n!==void 0&&n}get flagsEndpointWasHit(){var n,a;return(n=(a=this.featureFlags)==null?void 0:a.hasLoadedFlags)!==null&&n!==void 0&&n}constructor(){this.webPerformance=new z1,this.Br=!1,this.version=oa.LIB_VERSION,this.qr=new Ch,this._calculate_event_properties=this.calculateEventProperties.bind(this),this.config=Wy(),this.SentryIntegration=qT,this.sentryIntegration=n=>(function(a,r){var l=u_(a,r);return{name:c_,processEvent:c=>l(c)}})(this,n),this.__request_queue=[],this.__loaded=!1,this.analyticsDefaultEndpoint="/e/",this.Wr=!1,this.Gr=null,this.Vr=null,this.Jr=null,this.featureFlags=new h1(this),this.toolbar=new VT(this),this.scrollManager=new M1(this),this.pageViewManager=new Py(this),this.surveys=new x1(this),this.conversations=new w1(this),this.logs=new C1(this),this.experiments=new Tt(this),this.exceptions=new u1(this),this.rateLimiter=new k1(this),this.requestRouter=new P1(this),this.consent=new FT(this),this.externalIntegrations=new U1(this),this.people={set:(n,a,r)=>{var l=mt(n)?{[n]:a}:n;this.setPersonProperties(l),r?.({})},set_once:(n,a,r)=>{var l=mt(n)?{[n]:a}:n;this.setPersonProperties(void 0,l),r?.({})}},this.on("eventCaptured",(n=>W.info('send "'+n?.event+'"',n)))}init(n,a,r){if(r&&r!==ys){var l,c=(l=Xr[r])!==null&&l!==void 0?l:new bc;return c._init(n,a,r),Xr[r]=c,Xr[ys][r]=c,c}return this._init(n,a,r)}_init(n,a,r){var l;if(a===void 0&&(a={}),X(n)||Nf(n))return W.critical("PostHog was initialized without a token. This likely indicates a misconfiguration. Please check the first argument passed to posthog.init()"),this;if(this.__loaded)return console.warn("[PostHog.js]","You have already initialized PostHog! Re-initializing is a no-op"),this;this.__loaded=!0,this.config={},a.debug=this.Kr(a.debug),this.Yr=a,this.Xr=[],a.person_profiles&&(this.Vr=a.person_profiles),this.set_config(st({},Wy(a.defaults),Jy(a),{name:r,token:n})),this.config.on_xhr_error&&W.error("on_xhr_error is deprecated. Use on_request_error instead"),this.compression=a.disable_compression?void 0:ua.GZipJS;var c=this.Qr();this.persistence=new sf(this.config,c),this.sessionPersistence=this.config.persistence==="sessionStorage"||this.config.persistence==="memory"?this.persistence:new sf(ee({},this.config,{persistence:"sessionStorage"}),c);var f=ee({},this.persistence.props),h=ee({},this.sessionPersistence.props);this.register({$initialization_time:new Date().toISOString()}),this.Zr=new E1((j=>this.ts(j)),this.config.request_queue_config),this.es=new N1(this),this.__request_queue=[];var p=this.config.cookieless_mode==="always"||this.config.cookieless_mode==="on_reject"&&this.consent.isExplicitlyOptedOut();if(p||(this.sessionManager=new Xy(this),this.sessionPropsManager=new Ky(this,this.sessionManager,this.persistence)),this.config.__preview_deferred_init_extensions?(W.info("Deferring extension initialization to improve startup performance"),setTimeout((()=>{this.rs(p)}),0)):(W.info("Initializing extensions synchronously"),this.rs(p)),oa.DEBUG=oa.DEBUG||this.config.debug,oa.DEBUG&&W.info("Starting in debug mode",{this:this,config:a,thisC:ee({},this.config),p:f,s:h}),((l=a.bootstrap)==null?void 0:l.distinctID)!==void 0){var m,y,_=this.config.get_device_id(Ya()),x=(m=a.bootstrap)!=null&&m.isIdentifiedID?_:a.bootstrap.distinctID;this.persistence.set_property(la,(y=a.bootstrap)!=null&&y.isIdentifiedID?"identified":"anonymous"),this.register({distinct_id:a.bootstrap.distinctID,$device_id:x})}if(this.ss()){var A,C,k=Object.keys(((A=a.bootstrap)==null?void 0:A.featureFlags)||{}).filter((j=>{var z;return!((z=a.bootstrap)==null||(z=z.featureFlags)==null||!z[j])})).reduce(((j,z)=>{var Y;return j[z]=((Y=a.bootstrap)==null||(Y=Y.featureFlags)==null?void 0:Y[z])||!1,j}),{}),E=Object.keys(((C=a.bootstrap)==null?void 0:C.featureFlagPayloads)||{}).filter((j=>k[j])).reduce(((j,z)=>{var Y,G;return(Y=a.bootstrap)!=null&&(Y=Y.featureFlagPayloads)!=null&&Y[z]&&(j[z]=(G=a.bootstrap)==null||(G=G.featureFlagPayloads)==null?void 0:G[z]),j}),{});this.featureFlags.receivedFeatureFlags({featureFlags:k,featureFlagPayloads:E})}if(p)this.register_once({distinct_id:Mr,$device_id:null},"");else if(!this.get_distinct_id()){var M=this.config.get_device_id(Ya());this.register_once({distinct_id:M,$device_id:M},""),this.persistence.set_property(la,"anonymous")}return dt(U,"onpagehide"in self?"pagehide":"unload",this._handle_unload.bind(this),{passive:!1}),this.toolbar.maybeLoadToolbar(),a.segment?BT(this,(()=>this.ns())):this.ns(),Ka(this.config._onCapture)&&this.config._onCapture!==Xf&&(W.warn("onCapture is deprecated. Please use `before_send` instead"),this.on("eventCaptured",(j=>this.config._onCapture(j.event,j)))),this.config.ip&&W.warn('The `ip` config option has NO EFFECT AT ALL and has been deprecated. Use a custom transformation or "Discard IP data" project setting instead. See https://posthog.com/tutorials/web-redact-properties#hiding-customer-ip-address for more information.'),this}rs(n){var a=performance.now();this.historyAutocapture=new HT(this),this.historyAutocapture.startIfEnabled();var r=[];r.push((()=>{new YT(this).startIfEnabledOrStop()})),r.push((()=>{var l;this.siteApps=new D1(this),(l=this.siteApps)==null||l.init()})),n||r.push((()=>{this.sessionRecording=new Zy(this),this.sessionRecording.startIfEnabledOrStop()})),this.config.disable_scroll_properties||r.push((()=>{this.scrollManager.startMeasuringScrollPosition()})),r.push((()=>{this.autocapture=new NT(this),this.autocapture.startIfEnabled()})),r.push((()=>{this.surveys.loadIfEnabled()})),r.push((()=>{this.logs.loadIfEnabled()})),r.push((()=>{this.conversations.loadIfEnabled()})),r.push((()=>{this.productTours=new m1(this),this.productTours.loadIfEnabled()})),r.push((()=>{this.heatmaps=new e1(this),this.heatmaps.startIfEnabled()})),r.push((()=>{this.webVitalsAutocapture=new WT(this)})),r.push((()=>{this.exceptionObserver=new IT(this),this.exceptionObserver.startIfEnabledOrStop()})),r.push((()=>{this.deadClicksAutocapture=new l_(this,zT),this.deadClicksAutocapture.startIfEnabled()})),r.push((()=>{if(this.os){var l=this.os;this.os=void 0,this.yi(l)}})),this.ls(r,a)}ls(n,a){for(;n.length>0;){if(this.config.__preview_deferred_init_extensions&&performance.now()-a>=30&&n.length>0)return void setTimeout((()=>{this.ls(n,a)}),0);var r=n.shift();if(r)try{r()}catch(c){W.error("Error initializing extension:",c)}}var l=Math.round(performance.now()-a);this.register_for_session({$sdk_debug_extensions_init_method:this.config.__preview_deferred_init_extensions?"deferred":"synchronous",$sdk_debug_extensions_init_time_ms:l}),this.config.__preview_deferred_init_extensions&&W.info("PostHog extensions initialized ("+l+"ms)")}yi(n){var a,r,l,c,f,h,p,m,y;if(!J||!J.body)return W.info("document not ready yet, trying again in 500 milliseconds..."),void setTimeout((()=>{this.yi(n)}),500);this.config.__preview_deferred_init_extensions&&(this.os=n),this.compression=void 0,n.supportedCompression&&!this.config.disable_compression&&(this.compression=Ce(n.supportedCompression,ua.GZipJS)?ua.GZipJS:Ce(n.supportedCompression,ua.Base64)?ua.Base64:void 0),(a=n.analytics)!=null&&a.endpoint&&(this.analyticsDefaultEndpoint=n.analytics.endpoint),this.set_config({person_profiles:this.Vr?this.Vr:"identified_only"}),(r=this.siteApps)==null||r.onRemoteConfig(n),(l=this.sessionRecording)==null||l.onRemoteConfig(n),(c=this.autocapture)==null||c.onRemoteConfig(n),(f=this.heatmaps)==null||f.onRemoteConfig(n),this.surveys.onRemoteConfig(n),this.logs.onRemoteConfig(n),this.conversations.onRemoteConfig(n),(h=this.productTours)==null||h.onRemoteConfig(n),(p=this.webVitalsAutocapture)==null||p.onRemoteConfig(n),(m=this.exceptionObserver)==null||m.onRemoteConfig(n),this.exceptions.onRemoteConfig(n),(y=this.deadClicksAutocapture)==null||y.onRemoteConfig(n)}ns(){try{this.config.loaded(this)}catch(n){W.critical("`loaded` function failed",n)}this.us(),this.config.capture_pageview&&setTimeout((()=>{(this.consent.isOptedIn()||this.config.cookieless_mode==="always")&&this.hs()}),1),new A1(this).load(),this.featureFlags.flags()}us(){var n;this.is_capturing()&&this.config.request_batching&&((n=this.Zr)==null||n.enable())}_dom_loaded(){this.is_capturing()&&Xa(this.__request_queue,(n=>this.ts(n))),this.__request_queue=[],this.us()}_handle_unload(){var n,a;this.surveys.handlePageUnload(),this.config.request_batching?(this.ds()&&this.capture("$pageleave"),(n=this.Zr)==null||n.unload(),(a=this.es)==null||a.unload()):this.ds()&&this.capture("$pageleave",null,{transport:"sendBeacon"})}_send_request(n){this.__loaded&&(T_?this.__request_queue.push(n):this.rateLimiter.isServerRateLimited(n.batchKey)||(n.transport=n.transport||this.config.api_transport,n.url=lc(n.url,{ip:this.config.ip?1:0}),n.headers=ee({},this.config.request_headers,n.headers),n.compression=n.compression==="best-available"?this.compression:n.compression,n.disableXHRCredentials=this.config.__preview_disable_xhr_credentials,this.config.__preview_disable_beacon&&(n.disableTransport=["sendBeacon"]),n.fetchOptions=n.fetchOptions||this.config.fetch_options,(a=>{var r,l,c,f=ee({},a);f.timeout=f.timeout||6e4,f.url=lc(f.url,{_:new Date().getTime().toString(),ver:oa.LIB_VERSION,compression:f.compression});var h=(r=f.transport)!==null&&r!==void 0?r:"fetch",p=Gl.filter((y=>!f.disableTransport||!y.transport||!f.disableTransport.includes(y.transport))),m=(l=(c=q0(p,(y=>y.transport===h)))==null?void 0:c.method)!==null&&l!==void 0?l:p[0].method;if(!m)throw new Error("No available transport method");m(f)})(ee({},n,{callback:a=>{var r,l;this.rateLimiter.checkForLimiting(a),a.statusCode>=400&&((r=(l=this.config).on_request_error)==null||r.call(l,a)),n.callback==null||n.callback(a)}}))))}ts(n){this.es?this.es.retriableRequest(n):this._send_request(n)}_execute_array(n){var a,r=[],l=[],c=[];Xa(n,(h=>{h&&(a=h[0],Pe(a)?c.push(h):Ka(h)?h.call(this):Pe(h)&&a==="alias"?r.push(h):Pe(h)&&a.indexOf("capture")!==-1&&Ka(this[a])?c.push(h):l.push(h))}));var f=function(h,p){Xa(h,(function(m){if(Pe(m[0])){var y=p;$e(m,(function(_){y=y[_[0]].apply(y,_.slice(1))}))}else this[m[0]].apply(this,m.slice(1))}),p)};f(r,this),f(l,this),f(c,this)}ss(){var n,a;return((n=this.config.bootstrap)==null?void 0:n.featureFlags)&&Object.keys((a=this.config.bootstrap)==null?void 0:a.featureFlags).length>0||!1}push(n){this._execute_array([n])}capture(n,a,r){var l;if(this.__loaded&&this.persistence&&this.sessionPersistence&&this.Zr){if(this.is_capturing())if(!X(n)&&mt(n)){var c=!this.config.opt_out_useragent_filter&&this._is_bot();if(!(c&&!this.config.__preview_capture_bot_pageviews)){var f=r!=null&&r.skip_client_rate_limiting?void 0:this.rateLimiter.clientRateLimitContext();if(f==null||!f.isRateLimited){a!=null&&a.$current_url&&!mt(a?.$current_url)&&(W.error("Invalid `$current_url` property provided to `posthog.capture`. Input must be a string. Ignoring provided value."),a==null||delete a.$current_url),this.sessionPersistence.update_search_keyword(),this.config.save_campaign_params&&this.sessionPersistence.update_campaign_params(),this.config.save_referrer&&this.sessionPersistence.update_referrer_info(),(this.config.save_campaign_params||this.config.save_referrer)&&this.persistence.set_initial_person_info();var h=new Date,p=r?.timestamp||h,m=Ya(),y={uuid:m,event:n,properties:this.calculateEventProperties(n,a||{},p,m)};n==="$pageview"&&this.config.__preview_capture_bot_pageviews&&c&&(y.event="$bot_pageview",y.properties.$browser_type="bot"),f&&(y.properties.$lib_rate_limit_remaining_tokens=f.remainingTokens),r?.$set&&(y.$set=r?.$set);var _,x=n!=="$groupidentify",A=this.vs(r?.$set_once,x);if(A&&(y.$set_once=A),(y=fT(y,r!=null&&r._noTruncate?null:this.config.properties_string_max_length)).timestamp=p,X(r?.timestamp)||(y.properties.$event_time_override_provided=!0,y.properties.$event_time_override_system_time=h),n===Vr.DISMISSED||n===Vr.SENT){var C=a?.[lf.SURVEY_ID],k=a?.[lf.SURVEY_ITERATION];_={id:C,current_iteration:k},localStorage.getItem(Gy(_))||localStorage.setItem(Gy(_),"true"),y.$set=ee({},y.$set,{[g1({id:C,current_iteration:k},n===Vr.SENT?"responded":"dismissed")]:!0})}else n===Vr.SHOWN&&(y.$set=ee({},y.$set,{[lf.SURVEY_LAST_SEEN_DATE]:new Date().toISOString()}));var E=ee({},y.properties.$set,y.$set);if(_s(E)||this.setPersonPropertiesForFlags(E),!Re(this.config.before_send)){var M=this.cs(y);if(!M)return;y=M}this.qr.emit("eventCaptured",y);var j={method:"POST",url:(l=r?._url)!==null&&l!==void 0?l:this.requestRouter.endpointFor("api",this.analyticsDefaultEndpoint),data:y,compression:"best-available",batchKey:r?._batchKey};return!this.config.request_batching||r&&(r==null||!r._batchKey)||r!=null&&r.send_instantly?this.ts(j):this.Zr.enqueue(j),y}W.critical("This capture call is ignored due to client rate limiting.")}}else W.error("No event name provided to posthog.capture")}else W.uninitializedWarning("posthog.capture")}Hi(n){return this.on("eventCaptured",(a=>n(a.event,a)))}calculateEventProperties(n,a,r,l,c){if(r=r||new Date,!this.persistence||!this.sessionPersistence)return a;var f=c?void 0:this.persistence.remove_event_timer(n),h=ee({},a);if(h.token=this.config.token,h.$config_defaults=this.config.defaults,(this.config.cookieless_mode=="always"||this.config.cookieless_mode=="on_reject"&&this.consent.isExplicitlyOptedOut())&&(h.$cookieless_mode=!0),n==="$snapshot"){var p=ee({},this.persistence.properties(),this.sessionPersistence.properties());return h.distinct_id=p.distinct_id,(!mt(h.distinct_id)&&!ma(h.distinct_id)||Nf(h.distinct_id))&&W.error("Invalid distinct_id for replay event. This indicates a bug in your implementation"),h}var m,y=ZT(this.config.mask_personal_data_properties,this.config.custom_personal_data_properties);if(this.sessionManager){var{sessionId:_,windowId:x}=this.sessionManager.checkAndGetSessionAndWindowId(c,r.getTime());h.$session_id=_,h.$window_id=x}this.sessionPropsManager&&st(h,this.sessionPropsManager.getSessionProps());try{var A;this.sessionRecording&&st(h,this.sessionRecording.sdkDebugProperties),h.$sdk_debug_retry_queue_size=(A=this.es)==null?void 0:A.length}catch(M){h.$sdk_debug_error_capturing_properties=String(M)}if(this.requestRouter.region===Gr.CUSTOM&&(h.$lib_custom_api_host=this.config.api_host),m=n!=="$pageview"||c?n!=="$pageleave"||c?this.pageViewManager.doEvent():this.pageViewManager.doPageLeave(r):this.pageViewManager.doPageView(r,l),h=st(h,m),n==="$pageview"&&J&&(h.title=J.title),!X(f)){var C=r.getTime()-f;h.$duration=parseFloat((C/1e3).toFixed(3))}zt&&this.config.opt_out_useragent_filter&&(h.$browser_type=this._is_bot()?"bot":"browser"),(h=st({},y,this.persistence.properties(),this.sessionPersistence.properties(),h)).$is_identified=this._isIdentified(),Pe(this.config.property_denylist)?$e(this.config.property_denylist,(function(M){delete h[M]})):W.error("Invalid value for property_denylist config: "+this.config.property_denylist+" or property_blacklist config: "+this.config.property_blacklist);var k=this.config.sanitize_properties;k&&(W.error("sanitize_properties is deprecated. Use before_send instead"),h=k(h,n));var E=this.fs();return h.$process_person_profile=E,E&&!c&&this.ps("_calculate_event_properties"),h}vs(n,a){var r;if(a===void 0&&(a=!0),!this.persistence||!this.fs()||this.Br)return n;var l=this.persistence.get_initial_props(),c=(r=this.sessionPropsManager)==null?void 0:r.getSetOnceProps(),f=st({},l,c||{},n||{}),h=this.config.sanitize_properties;return h&&(W.error("sanitize_properties is deprecated. Use before_send instead"),f=h(f,"$set_once")),a&&(this.Br=!0),_s(f)?void 0:f}register(n,a){var r;(r=this.persistence)==null||r.register(n,a)}register_once(n,a,r){var l;(l=this.persistence)==null||l.register_once(n,a,r)}register_for_session(n){var a;(a=this.sessionPersistence)==null||a.register(n)}unregister(n){var a;(a=this.persistence)==null||a.unregister(n)}unregister_for_session(n){var a;(a=this.sessionPersistence)==null||a.unregister(n)}gs(n,a){this.register({[n]:a})}getFeatureFlag(n,a){return this.featureFlags.getFeatureFlag(n,a)}getFeatureFlagPayload(n){var a=this.featureFlags.getFeatureFlagPayload(n);try{return JSON.parse(a)}catch{return a}}isFeatureEnabled(n,a){return this.featureFlags.isFeatureEnabled(n,a)}reloadFeatureFlags(){this.featureFlags.reloadFeatureFlags()}updateFlags(n,a,r){var l=r!=null&&r.merge?this.featureFlags.getFlagVariants():{},c=r!=null&&r.merge?this.featureFlags.getFlagPayloads():{},f=ee({},l,n),h=ee({},c,a),p={};for(var[m,y]of Object.entries(f)){var _=typeof y=="string";p[m]={key:m,enabled:!!_||!!y,variant:_?y:void 0,reason:void 0,metadata:X(h?.[m])?void 0:{id:0,version:void 0,description:void 0,payload:h[m]}}}this.featureFlags.receivedFeatureFlags({flags:p})}updateEarlyAccessFeatureEnrollment(n,a,r){this.featureFlags.updateEarlyAccessFeatureEnrollment(n,a,r)}getEarlyAccessFeatures(n,a,r){return a===void 0&&(a=!1),this.featureFlags.getEarlyAccessFeatures(n,a,r)}on(n,a){return this.qr.on(n,a)}onFeatureFlags(n){return this.featureFlags.onFeatureFlags(n)}onSurveysLoaded(n){return this.surveys.onSurveysLoaded(n)}onSessionId(n){var a,r;return(a=(r=this.sessionManager)==null?void 0:r.onSessionId(n))!==null&&a!==void 0?a:()=>{}}getSurveys(n,a){a===void 0&&(a=!1),this.surveys.getSurveys(n,a)}getActiveMatchingSurveys(n,a){a===void 0&&(a=!1),this.surveys.getActiveMatchingSurveys(n,a)}renderSurvey(n,a){this.surveys.renderSurvey(n,a)}displaySurvey(n,a){a===void 0&&(a=y1),this.surveys.displaySurvey(n,a)}cancelPendingSurvey(n){this.surveys.cancelPendingSurvey(n)}canRenderSurvey(n){return this.surveys.canRenderSurvey(n)}canRenderSurveyAsync(n,a){return a===void 0&&(a=!1),this.surveys.canRenderSurveyAsync(n,a)}identify(n,a,r){if(!this.__loaded||!this.persistence)return W.uninitializedWarning("posthog.identify");if(ma(n)&&(n=n.toString(),W.warn("The first argument to posthog.identify was a number, but it should be a string. It has been converted to a string.")),n)if(["distinct_id","distinctid"].includes(n.toLowerCase()))W.critical('The string "'+n+'" was set in posthog.identify which indicates an error. This ID should be unique to the user and not a hardcoded string.');else if(n!==Mr){if(this.ps("posthog.identify")){var l=this.get_distinct_id();if(this.register({$user_id:n}),!this.get_property("$device_id")){var c=l;this.register_once({$had_persisted_distinct_id:!0,$device_id:c},"")}n!==l&&n!==this.get_property(Ir)&&(this.unregister(Ir),this.register({distinct_id:n}));var f=(this.persistence.get_property(la)||"anonymous")==="anonymous";n!==l&&f?(this.persistence.set_property(la,"identified"),this.setPersonPropertiesForFlags(ee({},r||{},a||{}),!1),this.capture("$identify",{distinct_id:n,$anon_distinct_id:l},{$set:a||{},$set_once:r||{}}),this.Jr=Iy(n,a,r),this.featureFlags.setAnonymousDistinctId(l)):(a||r)&&this.setPersonProperties(a,r),n!==l&&(this.reloadFeatureFlags(),this.unregister(Jl))}}else W.critical('The string "'+Mr+'" was set in posthog.identify which indicates an error. This ID is only used as a sentinel value.');else W.error("Unique user id has not been set in posthog.identify")}setPersonProperties(n,a){if((n||a)&&this.ps("posthog.setPersonProperties")){var r=Iy(this.get_distinct_id(),n,a);this.Jr!==r?(this.setPersonPropertiesForFlags(ee({},a||{},n||{})),this.capture("$set",{$set:n||{},$set_once:a||{}}),this.Jr=r):W.info("A duplicate setPersonProperties call was made with the same properties. It has been ignored.")}}group(n,a,r){if(n&&a){var l=this.getGroups();l[n]!==a&&this.resetGroupPropertiesForFlags(n),this.register({$groups:ee({},l,{[n]:a})}),r&&(this.capture("$groupidentify",{$group_type:n,$group_key:a,$group_set:r}),this.setGroupPropertiesForFlags({[n]:r})),l[n]===a||r||this.reloadFeatureFlags()}else W.error("posthog.group requires a group type and group key")}resetGroups(){this.register({$groups:{}}),this.resetGroupPropertiesForFlags(),this.reloadFeatureFlags()}setPersonPropertiesForFlags(n,a){a===void 0&&(a=!0),this.featureFlags.setPersonPropertiesForFlags(n,a)}resetPersonPropertiesForFlags(){this.featureFlags.resetPersonPropertiesForFlags()}setGroupPropertiesForFlags(n,a){a===void 0&&(a=!0),this.ps("posthog.setGroupPropertiesForFlags")&&this.featureFlags.setGroupPropertiesForFlags(n,a)}resetGroupPropertiesForFlags(n){this.featureFlags.resetGroupPropertiesForFlags(n)}reset(n){var a,r,l,c;if(W.info("reset"),!this.__loaded)return W.uninitializedWarning("posthog.reset");var f=this.get_property("$device_id");if(this.consent.reset(),(a=this.persistence)==null||a.clear(),(r=this.sessionPersistence)==null||r.clear(),this.surveys.reset(),this.featureFlags.reset(),(l=this.persistence)==null||l.set_property(la,"anonymous"),(c=this.sessionManager)==null||c.resetSessionId(),this.Jr=null,this.config.cookieless_mode==="always")this.register_once({distinct_id:Mr,$device_id:null},"");else{var h=this.config.get_device_id(Ya());this.register_once({distinct_id:h,$device_id:n?h:f},"")}this.register({$last_posthog_reset:new Date().toISOString()},1)}get_distinct_id(){return this.get_property("distinct_id")}getGroups(){return this.get_property("$groups")||{}}get_session_id(){var n,a;return(n=(a=this.sessionManager)==null?void 0:a.checkAndGetSessionAndWindowId(!0).sessionId)!==null&&n!==void 0?n:""}get_session_replay_url(n){if(!this.sessionManager)return"";var{sessionId:a,sessionStartTimestamp:r}=this.sessionManager.checkAndGetSessionAndWindowId(!0),l=this.requestRouter.endpointFor("ui","/project/"+this.config.token+"/replay/"+a);if(n!=null&&n.withTimestamp&&r){var c,f=(c=n.timestampLookBack)!==null&&c!==void 0?c:10;if(!r)return l;l+="?t="+Math.max(Math.floor((new Date().getTime()-r)/1e3)-f,0)}return l}alias(n,a){return n===this.get_property($0)?(W.critical("Attempting to create alias for existing People user - aborting."),-2):this.ps("posthog.alias")?(X(a)&&(a=this.get_distinct_id()),n!==a?(this.gs(Ir,n),this.capture("$create_alias",{alias:n,distinct_id:a})):(W.warn("alias matches current distinct_id - skipping api call."),this.identify(n),-1)):void 0}set_config(n){var a=ee({},this.config);if(yt(n)){var r,l,c,f,h,p,m;st(this.config,Jy(n));var y=this.Qr();(r=this.persistence)==null||r.update_config(this.config,a,y),this.sessionPersistence=this.config.persistence==="sessionStorage"||this.config.persistence==="memory"?this.persistence:new sf(ee({},this.config,{persistence:"sessionStorage"}),y);var _=this.Kr(this.config.debug);ha(_)&&(this.config.debug=_),ha(this.config.debug)&&(this.config.debug?(oa.DEBUG=!0,We.H()&&We.G("ph_debug","true"),W.info("set_config",{config:n,oldConfig:a,newConfig:ee({},this.config)})):(oa.DEBUG=!1,We.H()&&We.V("ph_debug"))),(l=this.exceptionObserver)==null||l.onConfigChange(),(c=this.sessionRecording)==null||c.startIfEnabledOrStop(),(f=this.autocapture)==null||f.startIfEnabled(),(h=this.heatmaps)==null||h.startIfEnabled(),(p=this.exceptionObserver)==null||p.startIfEnabledOrStop(),this.surveys.loadIfEnabled(),this._s(),(m=this.externalIntegrations)==null||m.startIfEnabledOrStop()}}startSessionRecording(n){var a=n===!0,r={sampling:a||!(n==null||!n.sampling),linked_flag:a||!(n==null||!n.linked_flag),url_trigger:a||!(n==null||!n.url_trigger),event_trigger:a||!(n==null||!n.event_trigger)};if(Object.values(r).some(Boolean)){var l,c,f,h,p;(l=this.sessionManager)==null||l.checkAndGetSessionAndWindowId(),r.sampling&&((c=this.sessionRecording)==null||c.overrideSampling()),r.linked_flag&&((f=this.sessionRecording)==null||f.overrideLinkedFlag()),r.url_trigger&&((h=this.sessionRecording)==null||h.overrideTrigger("url")),r.event_trigger&&((p=this.sessionRecording)==null||p.overrideTrigger("event"))}this.set_config({disable_session_recording:!1})}stopSessionRecording(){this.set_config({disable_session_recording:!0})}sessionRecordingStarted(){var n;return!((n=this.sessionRecording)==null||!n.started)}captureException(n,a){var r=new Error("PostHog syntheticException"),l=this.exceptions.buildProperties(n,{handled:!0,syntheticException:r});return this.exceptions.sendExceptionEvent(ee({},l,a))}startExceptionAutocapture(n){this.set_config({capture_exceptions:n==null||n})}stopExceptionAutocapture(){this.set_config({capture_exceptions:!1})}loadToolbar(n){return this.toolbar.loadToolbar(n)}get_property(n){var a;return(a=this.persistence)==null?void 0:a.props[n]}getSessionProperty(n){var a;return(a=this.sessionPersistence)==null?void 0:a.props[n]}toString(){var n,a=(n=this.config.name)!==null&&n!==void 0?n:ys;return a!==ys&&(a=ys+"."+a),a}_isIdentified(){var n,a;return((n=this.persistence)==null?void 0:n.get_property(la))==="identified"||((a=this.sessionPersistence)==null?void 0:a.get_property(la))==="identified"}fs(){var n,a;return!(this.config.person_profiles==="never"||this.config.person_profiles==="identified_only"&&!this._isIdentified()&&_s(this.getGroups())&&((n=this.persistence)==null||(n=n.props)==null||!n[Ir])&&((a=this.persistence)==null||(a=a.props)==null||!a[tc]))}ds(){return this.config.capture_pageleave===!0||this.config.capture_pageleave==="if_capture_pageview"&&(this.config.capture_pageview===!0||this.config.capture_pageview==="history_change")}createPersonProfile(){this.fs()||this.ps("posthog.createPersonProfile")&&this.setPersonProperties({},{})}ps(n){return this.config.person_profiles==="never"?(W.error(n+' was called, but process_person is set to "never". This call will be ignored.'),!1):(this.gs(tc,!0),!0)}Qr(){if(this.config.cookieless_mode==="always")return!0;var n=this.consent.isOptedOut(),a=this.config.opt_out_persistence_by_default||this.config.cookieless_mode==="on_reject";return this.config.disable_persistence||n&&!!a}_s(){var n,a,r,l,c=this.Qr();return((n=this.persistence)==null?void 0:n.Si)!==c&&((r=this.persistence)==null||r.set_disabled(c)),((a=this.sessionPersistence)==null?void 0:a.Si)!==c&&((l=this.sessionPersistence)==null||l.set_disabled(c)),c}opt_in_capturing(n){var a;if(this.config.cookieless_mode!=="always"){var r,l,c;this.config.cookieless_mode==="on_reject"&&this.consent.isExplicitlyOptedOut()&&(this.reset(!0),(r=this.sessionManager)==null||r.destroy(),(l=this.pageViewManager)==null||l.destroy(),this.sessionManager=new Xy(this),this.pageViewManager=new Py(this),this.persistence&&(this.sessionPropsManager=new Ky(this,this.sessionManager,this.persistence)),this.sessionRecording=new Zy(this),this.sessionRecording.startIfEnabledOrStop()),this.consent.optInOut(!0),this._s(),this.us(),(a=this.sessionRecording)==null||a.startIfEnabledOrStop(),this.config.cookieless_mode=="on_reject"&&this.surveys.loadIfEnabled(),(X(n?.captureEventName)||n!=null&&n.captureEventName)&&this.capture((c=n?.captureEventName)!==null&&c!==void 0?c:"$opt_in",n?.captureProperties,{send_instantly:!0}),this.config.capture_pageview&&this.hs()}else W.warn('Consent opt in/out is not valid with cookieless_mode="always" and will be ignored')}opt_out_capturing(){var n,a,r;this.config.cookieless_mode!=="always"?(this.config.cookieless_mode==="on_reject"&&this.consent.isOptedIn()&&this.reset(!0),this.consent.optInOut(!1),this._s(),this.config.cookieless_mode==="on_reject"&&(this.register({distinct_id:Mr,$device_id:null}),(n=this.sessionManager)==null||n.destroy(),(a=this.pageViewManager)==null||a.destroy(),this.sessionManager=void 0,this.sessionPropsManager=void 0,(r=this.sessionRecording)==null||r.stopRecording(),this.sessionRecording=void 0,this.hs())):W.warn('Consent opt in/out is not valid with cookieless_mode="always" and will be ignored')}has_opted_in_capturing(){return this.consent.isOptedIn()}has_opted_out_capturing(){return this.consent.isOptedOut()}get_explicit_consent_status(){var n=this.consent.consent;return n===ca.GRANTED?"granted":n===ca.DENIED?"denied":"pending"}is_capturing(){return this.config.cookieless_mode==="always"||(this.config.cookieless_mode==="on_reject"?this.consent.isExplicitlyOptedOut()||this.consent.isOptedIn():!this.has_opted_out_capturing())}clear_opt_in_out_capturing(){this.consent.reset(),this._s()}_is_bot(){return tn?E_(tn,this.config.custom_blocked_useragents):void 0}hs(){J&&(J.visibilityState==="visible"?this.Wr||(this.Wr=!0,this.capture("$pageview",{title:J.title},{send_instantly:!0}),this.Gr&&(J.removeEventListener("visibilitychange",this.Gr),this.Gr=null)):this.Gr||(this.Gr=this.hs.bind(this),dt(J,"visibilitychange",this.Gr)))}debug(n){n===!1?(U?.console.log("You've disabled debug mode."),this.set_config({debug:!1})):(U?.console.log("You're now in debug mode. All calls to PostHog will be logged in your console.\nYou can disable this with `posthog.debug(false)`."),this.set_config({debug:!0}))}O(){var n,a,r,l,c,f,h,p=this.Yr||{};return"advanced_disable_flags"in p?!!p.advanced_disable_flags:this.config.advanced_disable_flags!==!1?!!this.config.advanced_disable_flags:this.config.advanced_disable_decide===!0?(W.warn("Config field 'advanced_disable_decide' is deprecated. Please use 'advanced_disable_flags' instead. The old field will be removed in a future major version."),!0):(r="advanced_disable_decide",l=!1,c=W,f=(a="advanced_disable_flags")in(n=p)&&!X(n[a]),h=r in n&&!X(n[r]),f?n[a]:h?(c&&c.warn("Config field '"+r+"' is deprecated. Please use '"+a+"' instead. The old field will be removed in a future major version."),n[r]):l)}cs(n){if(Re(this.config.before_send))return n;var a=Pe(this.config.before_send)?this.config.before_send:[this.config.before_send],r=n;for(var l of a){if(r=l(r),Re(r)){var c="Event '"+n.event+"' was rejected in beforeSend function";return NE(n.event)?W.warn(c+". This can cause unexpected behavior."):W.info(c),null}r.properties&&!_s(r.properties)||W.warn("Event '"+n.event+"' has no properties after beforeSend function, this is likely an error.")}return r}getPageViewId(){var n;return(n=this.pageViewManager.Kt)==null?void 0:n.pageViewId}captureTraceFeedback(n,a){this.capture("$ai_feedback",{$ai_trace_id:String(n),$ai_feedback_text:a})}captureTraceMetric(n,a,r){this.capture("$ai_metric",{$ai_trace_id:String(n),$ai_metric_name:a,$ai_metric_value:String(r)})}Kr(n){var a=ha(n)&&!n,r=We.H()&&We.q("ph_debug")==="true";return!a&&(!!r||n)}}(function(s,n){for(var a=0;a<n.length;a++)s.prototype[n[a]]=dT(s.prototype[n[a]])})(bc,["identify"]);var eb,uc=(eb=Xr[ys]=new bc,(function(){function s(){s.done||(s.done=!0,T_=!1,$e(Xr,(function(n){n._dom_loaded()})))}J!=null&&J.addEventListener?J.readyState==="complete"?s():dt(J,"DOMContentLoaded",s,{capture:!1}):U&&W.error("Browser doesn't support `document.addEventListener` so PostHog couldn't be initialized")})(),eb);const I1="phc_5knpC9zvXXFaTJw4EMwrRBSYHIYW7b8ig6E14N8jYDp",H1="https://app.posthog.com",tb="0.2.0",N_="agentstudio_telemetry_enabled";function M_(){return localStorage.getItem(N_)!=="false"}function oP(s){localStorage.setItem(N_,s?"true":"false"),s?uc.opt_in_capturing():uc.opt_out_capturing()}function Qf(s,n){if(!M_())return;const a=r=>r.replace(/(?:\/[^\s:]+)+/g,"[PATH]").replace(/(?:[A-Za-z]:\\[^\s:]+)+/g,"[PATH]").replace(/[a-zA-Z0-9]{32,}/g,"[REDACTED]").substring(0,256);uc.capture("app_error",{message:a(s.message),errorType:s.name,component:n||"unknown"})}const B1=({children:s})=>{const[n,a]=S.useState(!1);return S.useEffect(()=>(uc.init(I1,{api_host:H1,persistence:"localStorage",autocapture:!1,capture_pageview:!0,capture_pageleave:!0,disable_session_recording:!0,loaded:r=>{r.register({platform:"frontend",app_version:tb}),M_()||r.opt_out_capturing(),console.log("[Telemetry] PostHog initialized"),a(!0),r.capture("app_start",{platform:"frontend",app_version:tb})}}),()=>{}),[]),S.useEffect(()=>{if(!n)return;const r=c=>{Qf(c.error||new Error(c.message),"global")},l=c=>{const f=c.reason instanceof Error?c.reason:new Error(String(c.reason));Qf(f,"unhandledRejection")};return window.addEventListener("error",r),window.addEventListener("unhandledrejection",l),()=>{window.removeEventListener("error",r),window.removeEventListener("unhandledrejection",l)}},[n]),g.jsx(g.Fragment,{children:s})};class q1 extends S.Component{constructor(n){super(n),this.state={hasError:!1,error:null}}static getDerivedStateFromError(n){return{hasError:!0,error:n}}componentDidCatch(n,a){Qf(n,a.componentStack?.split(`
87
- `)[1]?.trim()||"unknown"),console.error("ErrorBoundary caught an error:",n,a)}handleReload=()=>{window.location.reload()};handleReset=()=>{this.setState({hasError:!1,error:null})};render(){return this.state.hasError?this.props.fallback?this.props.fallback:g.jsx("div",{className:"min-h-screen bg-gray-50 dark:bg-gray-900 flex items-center justify-center p-4",children:g.jsxs("div",{className:"max-w-md w-full bg-white dark:bg-gray-800 rounded-2xl shadow-xl p-8 text-center",children:[g.jsx("div",{className:"w-16 h-16 mx-auto bg-red-100 dark:bg-red-900/30 rounded-full flex items-center justify-center mb-6",children:g.jsx(Wf,{className:"w-8 h-8 text-red-600 dark:text-red-400"})}),g.jsx("h1",{className:"text-xl font-bold text-gray-900 dark:text-white mb-2",children:"Something went wrong"}),g.jsx("p",{className:"text-gray-600 dark:text-gray-400 mb-6",children:"An unexpected error occurred. Our team has been notified."}),this.state.error&&g.jsx("div",{className:"bg-gray-100 dark:bg-gray-700 rounded-lg p-4 mb-6 text-left",children:g.jsx("p",{className:"text-sm font-mono text-red-600 dark:text-red-400 break-all",children:this.state.error.message})}),g.jsxs("div",{className:"flex gap-3 justify-center",children:[g.jsx("button",{onClick:this.handleReset,className:"px-4 py-2 text-sm font-medium text-gray-700 dark:text-gray-300 bg-gray-100 dark:bg-gray-700 rounded-lg hover:bg-gray-200 dark:hover:bg-gray-600 transition-colors",children:"Try Again"}),g.jsxs("button",{onClick:this.handleReload,className:"px-4 py-2 text-sm font-medium text-white bg-blue-600 rounded-lg hover:bg-blue-700 transition-colors flex items-center gap-2",children:[g.jsx(hf,{className:"w-4 h-4"}),"Reload Page"]})]})]})}):this.props.children}}const $1=({url:s})=>(S.useEffect(()=>{window.location.href=s},[s]),g.jsx("div",{className:"flex items-center justify-center h-screen",children:"Redirecting..."})),V1=S.lazy(()=>rt(()=>import("./DashboardPage-BSi_T1tY.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])).then(s=>({default:s.DashboardPage}))),G1=S.lazy(()=>rt(()=>import("./AgentsPage-DgoZNP6l.js"),__vite__mapDeps([11,1,2,3,12,9,5,6,7,8,13,14,15,16])).then(s=>({default:s.AgentsPage}))),Y1=S.lazy(()=>rt(()=>import("./ProjectsPage-BMBRp4RN.js"),__vite__mapDeps([17,1,2,3,5,6,7,8,18,9,14,12,19,20,15,21,4,22])).then(s=>({default:s.ProjectsPage}))),K1=S.lazy(()=>rt(()=>import("./McpPage-CPF7txxc.js"),__vite__mapDeps([23,1,2,3,5,6,7,8,12])).then(s=>({default:s.McpPage}))),X1=S.lazy(()=>rt(()=>import("./SettingsLayout-CY9Siffq.js"),__vite__mapDeps([24,1,2,3,5,6,7,8])).then(s=>({default:s.SettingsLayout}))),nb=S.lazy(()=>rt(()=>import("./GeneralSettingsPage-DcGmAzci.js"),__vite__mapDeps([25,1,2,3,6,7,5,8])).then(s=>({default:s.GeneralSettingsPage}))),Q1=S.lazy(()=>rt(()=>import("./VersionSettingsPage-BxjDPWm0.js"),__vite__mapDeps([26,1,2,3,22,5,6,7,8,14])).then(s=>({default:s.VersionSettingsPage}))),Z1=S.lazy(()=>rt(()=>import("./MemorySettingsPage-YenW4l-g.js"),__vite__mapDeps([27,1,2,3,5,6,7,8])).then(s=>({default:s.MemorySettingsPage}))),W1=S.lazy(()=>rt(()=>import("./SubagentsPage-DIG_rKjQ.js"),__vite__mapDeps([28,1,2,3,12,21,5,6,7,8,15,18,16])).then(s=>({default:s.SubagentsPage}))),J1=S.lazy(()=>rt(()=>import("./McpAdminSettingsPage-CZZS-pa0.js"),__vite__mapDeps([29,1,2,3,5,6,7,8])).then(s=>({default:s.McpAdminSettingsPage}))),eN=S.lazy(()=>rt(()=>import("./TelemetrySettingsPage-BLnMagRZ.js"),__vite__mapDeps([30,1,2,3,6,7,5,8])).then(s=>({default:s.TelemetrySettingsPage}))),tN=S.lazy(()=>rt(()=>import("./SystemInfoPage-CWgKWnQg.js"),__vite__mapDeps([31,1,2,3,6,7,5,8])).then(s=>({default:s.SystemInfoPage}))),nN=S.lazy(()=>rt(()=>import("./WebSocketTunnelPage-CQWcZK_H.js"),__vite__mapDeps([32,1,2,3,7])).then(s=>({default:s.WebSocketTunnelPage}))),aN=S.lazy(()=>rt(()=>import("./CommandsPage-CwEoyASk.js"),__vite__mapDeps([33,1,2,3,12,19,5,6,7,8,20,15,18,16])).then(s=>({default:s.CommandsPage}))),iN=S.lazy(()=>rt(()=>import("./SkillsPage-X-LMnwZd.js"),__vite__mapDeps([34,1,2,3,12,5,6,7,8,15,35,36,16])).then(s=>({default:s.SkillsPage}))),sN=S.lazy(()=>rt(()=>import("./PluginsPage-zlAB63Im.js"),__vite__mapDeps([37,1,2,3,5,6,7,8,35,36])).then(s=>({default:s.PluginsPage}))),rN=S.lazy(()=>rt(()=>import("./ScheduledTasksPage-B_hOD6AS.js"),__vite__mapDeps([38,1,2,3,12,5,6,7,8,9,4,22])).then(s=>({default:s.ScheduledTasksPage}))),oN=S.lazy(()=>rt(()=>import("./ChatPage-LoTJrT43.js").then(s=>s.bC),__vite__mapDeps([39,1,2,3,5,6,7,8,9,10,19,22,36,15,14,13,40])).then(s=>({default:s.ChatPage}))),lN=S.lazy(()=>rt(()=>import("./LandingPage-DPKvTTja.js"),__vite__mapDeps([41,1,2,3,6,7,5,8])).then(s=>({default:s.default}))),cN=S.lazy(()=>rt(()=>import("./LoginPage-BPJUgLru.js"),__vite__mapDeps([42,1,2,3,7,6,5,8])).then(s=>({default:s.LoginPage}))),uN=S.lazy(()=>rt(()=>import("./ToastTestPage-CQ0nobQd.js"),__vite__mapDeps([43,1,2,3,5,6,7,8])).then(s=>({default:s.ToastTestPage}))),dN=()=>g.jsx("div",{className:"flex items-center justify-center h-64",children:g.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-gray-900"})}),fN=new fw({defaultOptions:{queries:{refetchOnWindowFocus:!1,retry:1}}}),hN=()=>(S.useEffect(()=>{(()=>{const n=localStorage.getItem("theme")||"auto";if(n==="dark")document.documentElement.classList.add("dark");else if(n==="light")document.documentElement.classList.remove("dark");else{const a=window.matchMedia("(prefers-color-scheme: dark)");a.matches?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark");const r=l=>{localStorage.getItem("theme")==="auto"&&(l.matches?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark"))};return a.addEventListener("change",r),()=>a.removeEventListener("change",r)}})()},[]),g.jsx(vk,{children:g.jsx(S.Suspense,{fallback:g.jsx(dN,{}),children:g.jsxs(YC,{children:[g.jsx(Ye,{path:"/",element:g.jsx(lN,{})}),g.jsx(Ye,{path:"/login",element:g.jsx(cN,{})}),g.jsx(Ye,{path:"/chat/:agentId",element:g.jsx(Cn,{children:g.jsx(oN,{})})}),g.jsx(Ye,{path:"/dashboard",element:g.jsx(Cn,{children:g.jsx(Pn,{children:g.jsx(V1,{})})})}),g.jsx(Ye,{path:"/agents",element:g.jsx(Cn,{children:g.jsx(Pn,{children:g.jsx(G1,{})})})}),g.jsx(Ye,{path:"/projects",element:g.jsx(Cn,{children:g.jsx(Pn,{children:g.jsx(Y1,{})})})}),g.jsx(Ye,{path:"/mcp",element:g.jsx(Cn,{children:g.jsx(Pn,{children:g.jsx(K1,{})})})}),g.jsx(Ye,{path:"/skills",element:g.jsx(Cn,{children:g.jsx(Pn,{children:g.jsx(iN,{})})})}),g.jsx(Ye,{path:"/plugins",element:g.jsx(Cn,{children:g.jsx(Pn,{children:g.jsx(sN,{})})})}),g.jsx(Ye,{path:"/scheduled-tasks",element:g.jsx(Cn,{children:g.jsx(Pn,{children:g.jsx(rN,{})})})}),g.jsxs(Ye,{path:"/settings",element:g.jsx(Cn,{children:g.jsx(Pn,{children:g.jsx(X1,{})})}),children:[g.jsx(Ye,{index:!0,element:g.jsx(nb,{})}),g.jsx(Ye,{path:"general",element:g.jsx(nb,{})}),g.jsx(Ye,{path:"suppliers",element:g.jsx(Q1,{})}),g.jsx(Ye,{path:"memory",element:g.jsx(Z1,{})}),g.jsx(Ye,{path:"commands",element:g.jsx(aN,{})}),g.jsx(Ye,{path:"subagents",element:g.jsx(W1,{})}),g.jsx(Ye,{path:"mcp-admin",element:g.jsx(J1,{})}),g.jsx(Ye,{path:"telemetry",element:g.jsx(eN,{})}),g.jsx(Ye,{path:"system-info",element:g.jsx(tN,{})}),g.jsx(Ye,{path:"tunnel",element:g.jsx(nN,{})})]}),g.jsx(Ye,{path:"/toast-test",element:g.jsx(Cn,{children:g.jsx(Pn,{children:g.jsx(uN,{})})})}),g.jsx(Ye,{path:"/discord",element:g.jsx($1,{url:"https://discord.gg/6uYsrr66"})}),g.jsx(Ye,{path:"*",element:g.jsx(Cn,{children:g.jsx(Pn,{children:g.jsx("div",{className:"p-4 text-center",children:"Page not found"})})})})]})})}));function pN(){return g.jsx(q1,{children:g.jsx(hw,{client:fN,children:g.jsx(zk,{children:g.jsxs(B1,{children:[g.jsx(hN,{}),g.jsx(CE,{})]})})})})}const{slice:mN,forEach:gN}=[];function vN(s){return gN.call(mN.call(arguments,1),n=>{if(n)for(const a in n)s[a]===void 0&&(s[a]=n[a])}),s}function yN(s){return typeof s!="string"?!1:[/<\s*script.*?>/i,/<\s*\/\s*script\s*>/i,/<\s*img.*?on\w+\s*=/i,/<\s*\w+\s*on\w+\s*=.*?>/i,/javascript\s*:/i,/vbscript\s*:/i,/expression\s*\(/i,/eval\s*\(/i,/alert\s*\(/i,/document\.cookie/i,/document\.write\s*\(/i,/window\.location/i,/innerHTML/i].some(a=>a.test(s))}const ab=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/,bN=function(s,n){const r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{path:"/"},l=encodeURIComponent(n);let c=`${s}=${l}`;if(r.maxAge>0){const f=r.maxAge-0;if(Number.isNaN(f))throw new Error("maxAge should be a Number");c+=`; Max-Age=${Math.floor(f)}`}if(r.domain){if(!ab.test(r.domain))throw new TypeError("option domain is invalid");c+=`; Domain=${r.domain}`}if(r.path){if(!ab.test(r.path))throw new TypeError("option path is invalid");c+=`; Path=${r.path}`}if(r.expires){if(typeof r.expires.toUTCString!="function")throw new TypeError("option expires is invalid");c+=`; Expires=${r.expires.toUTCString()}`}if(r.httpOnly&&(c+="; HttpOnly"),r.secure&&(c+="; Secure"),r.sameSite)switch(typeof r.sameSite=="string"?r.sameSite.toLowerCase():r.sameSite){case!0:c+="; SameSite=Strict";break;case"lax":c+="; SameSite=Lax";break;case"strict":c+="; SameSite=Strict";break;case"none":c+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}return r.partitioned&&(c+="; Partitioned"),c},ib={create(s,n,a,r){let l=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{path:"/",sameSite:"strict"};a&&(l.expires=new Date,l.expires.setTime(l.expires.getTime()+a*60*1e3)),r&&(l.domain=r),document.cookie=bN(s,n,l)},read(s){const n=`${s}=`,a=document.cookie.split(";");for(let r=0;r<a.length;r++){let l=a[r];for(;l.charAt(0)===" ";)l=l.substring(1,l.length);if(l.indexOf(n)===0)return l.substring(n.length,l.length)}return null},remove(s,n){this.create(s,"",-1,n)}};var _N={name:"cookie",lookup(s){let{lookupCookie:n}=s;if(n&&typeof document<"u")return ib.read(n)||void 0},cacheUserLanguage(s,n){let{lookupCookie:a,cookieMinutes:r,cookieDomain:l,cookieOptions:c}=n;a&&typeof document<"u"&&ib.create(a,s,r,l,c)}},SN={name:"querystring",lookup(s){let{lookupQuerystring:n}=s,a;if(typeof window<"u"){let{search:r}=window.location;!window.location.search&&window.location.hash?.indexOf("?")>-1&&(r=window.location.hash.substring(window.location.hash.indexOf("?")));const c=r.substring(1).split("&");for(let f=0;f<c.length;f++){const h=c[f].indexOf("=");h>0&&c[f].substring(0,h)===n&&(a=c[f].substring(h+1))}}return a}},xN={name:"hash",lookup(s){let{lookupHash:n,lookupFromHashIndex:a}=s,r;if(typeof window<"u"){const{hash:l}=window.location;if(l&&l.length>2){const c=l.substring(1);if(n){const f=c.split("&");for(let h=0;h<f.length;h++){const p=f[h].indexOf("=");p>0&&f[h].substring(0,p)===n&&(r=f[h].substring(p+1))}}if(r)return r;if(!r&&a>-1){const f=l.match(/\/([a-zA-Z-]*)/g);return Array.isArray(f)?f[typeof a=="number"?a:0]?.replace("/",""):void 0}}}return r}};let ms=null;const sb=()=>{if(ms!==null)return ms;try{if(ms=typeof window<"u"&&window.localStorage!==null,!ms)return!1;const s="i18next.translate.boo";window.localStorage.setItem(s,"foo"),window.localStorage.removeItem(s)}catch{ms=!1}return ms};var wN={name:"localStorage",lookup(s){let{lookupLocalStorage:n}=s;if(n&&sb())return window.localStorage.getItem(n)||void 0},cacheUserLanguage(s,n){let{lookupLocalStorage:a}=n;a&&sb()&&window.localStorage.setItem(a,s)}};let gs=null;const rb=()=>{if(gs!==null)return gs;try{if(gs=typeof window<"u"&&window.sessionStorage!==null,!gs)return!1;const s="i18next.translate.boo";window.sessionStorage.setItem(s,"foo"),window.sessionStorage.removeItem(s)}catch{gs=!1}return gs};var CN={name:"sessionStorage",lookup(s){let{lookupSessionStorage:n}=s;if(n&&rb())return window.sessionStorage.getItem(n)||void 0},cacheUserLanguage(s,n){let{lookupSessionStorage:a}=n;a&&rb()&&window.sessionStorage.setItem(a,s)}},kN={name:"navigator",lookup(s){const n=[];if(typeof navigator<"u"){const{languages:a,userLanguage:r,language:l}=navigator;if(a)for(let c=0;c<a.length;c++)n.push(a[c]);r&&n.push(r),l&&n.push(l)}return n.length>0?n:void 0}},AN={name:"htmlTag",lookup(s){let{htmlTag:n}=s,a;const r=n||(typeof document<"u"?document.documentElement:null);return r&&typeof r.getAttribute=="function"&&(a=r.getAttribute("lang")),a}},EN={name:"path",lookup(s){let{lookupFromPathIndex:n}=s;if(typeof window>"u")return;const a=window.location.pathname.match(/\/([a-zA-Z-]*)/g);return Array.isArray(a)?a[typeof n=="number"?n:0]?.replace("/",""):void 0}},TN={name:"subdomain",lookup(s){let{lookupFromSubdomainIndex:n}=s;const a=typeof n=="number"?n+1:1,r=typeof window<"u"&&window.location?.hostname?.match(/^(\w{2,5})\.(([a-z0-9-]{1,63}\.[a-z]{2,6})|localhost)/i);if(r)return r[a]}};let j_=!1;try{document.cookie,j_=!0}catch{}const R_=["querystring","cookie","localStorage","sessionStorage","navigator","htmlTag"];j_||R_.splice(1,1);const NN=()=>({order:R_,lookupQuerystring:"lng",lookupCookie:"i18next",lookupLocalStorage:"i18nextLng",lookupSessionStorage:"i18nextLng",caches:["localStorage"],excludeCacheFor:["cimode"],convertDetectedLanguage:s=>s});class D_{constructor(n){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.type="languageDetector",this.detectors={},this.init(n,a)}init(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{languageUtils:{}},a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};this.services=n,this.options=vN(a,this.options||{},NN()),typeof this.options.convertDetectedLanguage=="string"&&this.options.convertDetectedLanguage.indexOf("15897")>-1&&(this.options.convertDetectedLanguage=l=>l.replace("-","_")),this.options.lookupFromUrlIndex&&(this.options.lookupFromPathIndex=this.options.lookupFromUrlIndex),this.i18nOptions=r,this.addDetector(_N),this.addDetector(SN),this.addDetector(wN),this.addDetector(CN),this.addDetector(kN),this.addDetector(AN),this.addDetector(EN),this.addDetector(TN),this.addDetector(xN)}addDetector(n){return this.detectors[n.name]=n,this}detect(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.options.order,a=[];return n.forEach(r=>{if(this.detectors[r]){let l=this.detectors[r].lookup(this.options);l&&typeof l=="string"&&(l=[l]),l&&(a=a.concat(l))}}),a=a.filter(r=>r!=null&&!yN(r)).map(r=>this.options.convertDetectedLanguage(r)),this.services&&this.services.languageUtils&&this.services.languageUtils.getBestMatchFromCodes?a:a.length>0?a[0]:null}cacheUserLanguage(n){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.options.caches;a&&(this.options.excludeCacheFor&&this.options.excludeCacheFor.indexOf(n)>-1||a.forEach(r=>{this.detectors[r]&&this.detectors[r].cacheUserLanguage(n,this.options)}))}}D_.type="languageDetector";const MN={create:"创建",delete:"删除",save:"保存",cancel:"取消",confirm:"确定",edit:"编辑",close:"关闭",back:"返回",next:"下一步",refresh:"刷新",submit:"提交",reset:"重置",search:"搜索",add:"添加",remove:"移除",update:"更新",upload:"上传",download:"下载",export:"导出",import:"导入",copy:"复制",paste:"粘贴",cut:"剪切"},jN={loading:"加载中...",processing:"处理中...",success:"操作成功",failed:"操作失败",saving:"保存中...",deleting:"删除中...",uploading:"上传中...",downloading:"下载中...",completed:"已完成",pending:"待处理",active:"活跃",inactive:"未激活",enabled:"已启用",disabled:"已禁用"},RN={yes:"是",no:"否",ok:"好的",all:"全部",none:"无",or:"或",and:"和",more:"更多",less:"更少",unknown:"未知",optional:"可选",required:"必填",default:"默认",custom:"自定义"},DN="路径",PN="创建时间",ON={init:{description:""},clear:{description:""},compact:{description:""},agents:{description:""},settings:{description:""},help:{description:""}},LN={sendImage:""},FN={chinese:"",english:""},UN={pageTitle:"",metaDescription:"",nav:{enterWorkspace:""},hero:{title:"",subtitle:"",description:"",startNow:"",viewSource:""},features:{title:"",subtitle:"",modernWeb:{title:"",description:""},multiModel:{title:"",description:""},agentSystem:{title:"",description:""},fileManagement:{title:"",description:""},professionalTools:{title:"",description:""},secureReliable:{title:"",description:""}},quickStart:{title:"",subtitle:"",endUserTitle:"",endUserDescription:"",developerTitle:"",developerDescription:""},cta:{title:"",subtitle:"",start:""},footer:{description:"",copyright:"",product:"",workspace:"",sourceCode:"",releases:"",support:"",documentation:"",issues:"",discussions:""}},zN={actions:MN,status:jN,common:RN,path:DN,createdAt:PN,systemCommands:ON,agentChat:LN,languageSwitcher:FN,landing:UN},IN={backToHome:"返回首页",documentation:"文档目录"},HN={dashboard:"首页",projects:"项目管理",agents:"Agent管理",scheduledTasks:"定时任务",extensions:"扩展能力",skills:"技能管理",plugins:"插件管理",mcp:"MCP服务",commands:"自定义命令",subagents:"Subagent管理",settings:"系统管理",settingsSubmenu:{general:"通用设置",suppliers:"供应商管理",memory:"全局记忆",mcpAdmin:"MCP Admin",tunnel:"隧道接入"}},BN={newVersionAvailable:"新版本 v{{version}} 已发布",updateAvailableTitle:"有新版本可用",currentVersion:"当前版本",viewUpdate:"查看更新",dismiss:"忽略",remindLater:"稍后提醒"},qN={version:"版本 {{version}}",apiServerStatus:{connected:"API服务器设置 - 连接正常",disconnected:"API服务器设置 - 连接失败",checking:"API服务器设置 - 检查中..."},serviceStatus:{normal:"服务正常",unavailable:"服务不可用",checking:"检查中..."}},$N={title:"登录",subtitle:"请输入密码以继续",passwordLabel:"密码",passwordPlaceholder:"请输入密码",loginButton:"登录",loggingIn:"登录中...",footer:"如果您忘记了密码,请联系管理员",manageServices:"管理后端服务",serviceName:"服务名称",serviceUrl:"服务地址",current:"当前",testConnection:"测试连接",switchTo:"切换到此服务",edit:"编辑",delete:"删除",save:"保存",cancel:"取消",add:"添加",addService:"添加新服务",rerunOnboarding:"重新运行配置向导",checkingConnection:"正在检查连接...",autoLoggingIn:"正在自动登录...",noPasswordRequired:"此服务未设置密码,可直接登录",enterSystem:"进入系统"},VN={pageTitle:"AgentStudio - Agent 工作台 | Claude Agent SDK 驱动",metaDescription:"Agent for Work - 本地的 Agent 工作台,由 Claude Agent SDK 强力驱动。数据完全私有,支持定时任务、A2A 协议、自定义 Agent。",nav:{enterWorkspace:"进入工作台",docs:"文档",wechat:"微信群"},hero:{badge:"由 Claude Agent SDK 强力驱动",title:"Agent for Work",subtitle:"本地的 Agent 工作台",description:"真正运行在你电脑上的私人 AI 助理。数据完全私有,安全可控,支持定时任务自动化和多 Agent 协作。",startNow:"开始使用",viewSource:"查看源码",copyCommand:"复制命令",installHint:"复制下面的命令到终端运行,即可开始使用",copy:"复制",copied:"已复制"},preview:{title:"产品预览",subtitle:"直观的 Web 界面,让 AI 工作更高效",chatAlt:"聊天界面截图",chatCaption:"聊天界面 - 与 Agent 对话,可视化展示工具调用",mcpAlt:"MCP 服务管理截图",mcpCaption:"MCP 服务管理 - 一键导入 Claude Code 配置"},features:{title:"核心特性",subtitle:"为 AI 工作自动化设计的完整解决方案",localWorkspace:{title:"本地的 Agent 工作台",point1:"运行在你的电脑上,真正意义的本地工作台",point2:"数据完全私有,不上传云端",point3:"文件、代码、对话记录都在掌控之中"},webExperience:{title:"Web 版交互体验",point1:"告别命令行,拥抱友好的 Web 界面",point2:"工具调用可视化呈现,对话体验更鲜活",point3:"内置文件浏览器,对话同时查看项目文件"},sdkFeatures:{title:"Claude Agent SDK 全家桶",skills:"技能系统",commands:"自定义命令",plugins:"插件生态",memory:"项目记忆",subagent:"子 Agent",multiModel:"多模型支持",anthropicCompat:"支持 Claude、GLM、DeepSeek、Kimi K2、MiniMax 等兼容 Anthropic 接口规范的模型"}},scheduler:{badge:"定时任务调度",title:"让 Agent 按计划自动执行",description:"真正实现 AI 工作自动化!设定时间规则,Agent 将自动完成重复性工作,解放你的时间。",scenariosTitle:"典型应用场景",scenario1:{title:"每日进度日报",desc:"每天早上 9 点,自动生成项目进度日报"},scenario2:{title:"代码自动审查",desc:"每 2 小时检查代码仓库,自动提交审查意见"},scenario3:{title:"周会纪要整理",desc:"每周五自动整理本周会议纪要并归档"},scenario4:{title:"月度数据分析",desc:"每月 1 号自动生成业务数据分析报告"}},a2a:{badge:"A2A 协议",title:"智能体协作网络",description:"让多个 Agent 形成协同工作的网络。本地 Agent、远程 Agent 互联互通,构建你的私人 AI 团队。",scenariosTitle:"典型应用场景",scenario1:{title:"秘书 Agent 调度",desc:"一个秘书 Agent 统一接收任务,自动调度其他项目 Agent 执行具体工作"},scenario2:{title:"本地 ↔ 远程协作",desc:"本地电脑与远程开发机上的 Agent 互相通讯,协同完成任务"},scenario3:{title:"移动端随时访问",desc:"通过移动通讯端与本地 Agent 交互,随时随地工作(内测中)"}},customAgent:{badge:"自定义 Agent",title:"打造你的专属 Agent",description:"无需编写代码,通过界面配置即可定制专属 Agent。内置 Claude Code Agent 开箱即用,满足各种工作场景。",example1:"PPT 制作 Agent",example2:"秘书 Agent",example3:"文档写作 Agent",example4:"代码审查 Agent"},comparison:{title:"AgentStudio vs Claude Code",subtitle:"同样的 Claude Agent SDK,更友好的使用体验",dimension:"对比维度",interface:"交互形态",webInterface:"界面",cli:"命令行 (CLI)",targetUsers:"目标用户",everyone:"所有人",developers:"主要开发者",toolDisplay:"工具展示",visual:"可视化呈现",textOnly:"纯文本",fileBrowser:"文件浏览器",agentCustom:"Agent 定制",scheduler:"定时任务",a2a:"A2A 协议",mobileAccess:"移动端访问",beta:"内测中"},cta:{title:"准备好开始你的 AI 工作自动化了吗?",subtitle:"一行命令,即刻启动你的本地 Agent 工作台",start:"开始使用"},footer:{description:"Agent for Work - 本地的 Agent 工作台,由 Claude Agent SDK 强力驱动。",copyright:"© 2026 AgentStudio. GPL v3 License.",product:"产品",workspace:"工作台",sourceCode:"源码",releases:"发布版本",support:"支持",documentation:"文档",issues:"问题反馈",wechat:"微信群"},wechat:{title:"加入微信群",fallback:"二维码失效?请添加微信号:",wechatId:"talk4kong",tip:"扫码或添加微信号,即可加入交流群"}},GN={title:"Agent管理",subtitle:"管理专门的 AI 代理",createButton:"创建助手",editButton:"编辑助手",deleteButton:"删除助手",enableButton:"启用助手",disableButton:"禁用助手",useButton:"使用",startUsingButton:"开始使用助手",noAgents:"暂无助手",noAgentsSearch:"未找到匹配的助手",searchPlaceholder:"搜索助手...",createFirst:"创建你的第一个智能助手",adjustSearch:"尝试调整搜索条件",loading:"正在加载智能助手...",filter:{all:"全部",enabled:"已启用",disabled:"已禁用"},table:{agent:"智能助手",type:"类型",config:"配置",tools:"工具",status:"状态",actions:"操作",maxTurns:"最大轮次",unlimited:"不限制",permission:"权限",toolsCount:"{{count}} 个工具"},form:{create:"创建助手",edit:"编辑助手",name:"名称",description:"描述",maxTurns:"最大轮次",maxTurnsPlaceholder:"不限制",maxTurnsError:"最大轮次必须在1-100之间",maxTurnsExceeded:"最大轮次不能超过{{maximum}}",permissionMode:"权限模式",icon:"图标",primaryColor:"主题颜色",enabledTools:"启用的工具",selectTools:"选择工具",toolsRegular:"常规工具 {{count}} 个",toolsMcp:"MCP工具 {{count}} 个",systemPrompt:"系统提示词",systemPromptPlaceholder:"输入助手的系统提示词...",nameRequired:"请填写助手名称",save:"保存",cancel:"取消"},permissions:{default:"默认",acceptEdits:"自动接受编辑",bypassPermissions:"绕过权限检查",plan:"规划模式"},status:{enabled:"已启用",disabled:"已禁用"},errors:{createFailed:"创建失败,请重试。",saveFailed:"保存失败,请重试。",deleteFailed:"删除失败,请重试。",toggleFailed:"操作失败,请重试。",builtinCannotDelete:"内置助手无法删除,但可以禁用。"},confirmDelete:`确定要删除助手"{{name}}"吗?
87
+ `)[1]?.trim()||"unknown"),console.error("ErrorBoundary caught an error:",n,a)}handleReload=()=>{window.location.reload()};handleReset=()=>{this.setState({hasError:!1,error:null})};render(){return this.state.hasError?this.props.fallback?this.props.fallback:g.jsx("div",{className:"min-h-screen bg-gray-50 dark:bg-gray-900 flex items-center justify-center p-4",children:g.jsxs("div",{className:"max-w-md w-full bg-white dark:bg-gray-800 rounded-2xl shadow-xl p-8 text-center",children:[g.jsx("div",{className:"w-16 h-16 mx-auto bg-red-100 dark:bg-red-900/30 rounded-full flex items-center justify-center mb-6",children:g.jsx(Wf,{className:"w-8 h-8 text-red-600 dark:text-red-400"})}),g.jsx("h1",{className:"text-xl font-bold text-gray-900 dark:text-white mb-2",children:"Something went wrong"}),g.jsx("p",{className:"text-gray-600 dark:text-gray-400 mb-6",children:"An unexpected error occurred. Our team has been notified."}),this.state.error&&g.jsx("div",{className:"bg-gray-100 dark:bg-gray-700 rounded-lg p-4 mb-6 text-left",children:g.jsx("p",{className:"text-sm font-mono text-red-600 dark:text-red-400 break-all",children:this.state.error.message})}),g.jsxs("div",{className:"flex gap-3 justify-center",children:[g.jsx("button",{onClick:this.handleReset,className:"px-4 py-2 text-sm font-medium text-gray-700 dark:text-gray-300 bg-gray-100 dark:bg-gray-700 rounded-lg hover:bg-gray-200 dark:hover:bg-gray-600 transition-colors",children:"Try Again"}),g.jsxs("button",{onClick:this.handleReload,className:"px-4 py-2 text-sm font-medium text-white bg-blue-600 rounded-lg hover:bg-blue-700 transition-colors flex items-center gap-2",children:[g.jsx(hf,{className:"w-4 h-4"}),"Reload Page"]})]})]})}):this.props.children}}const $1=({url:s})=>(S.useEffect(()=>{window.location.href=s},[s]),g.jsx("div",{className:"flex items-center justify-center h-screen",children:"Redirecting..."})),V1=S.lazy(()=>rt(()=>import("./DashboardPage-BoonTnMH.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])).then(s=>({default:s.DashboardPage}))),G1=S.lazy(()=>rt(()=>import("./AgentsPage-rLPOC44M.js"),__vite__mapDeps([11,1,2,3,12,9,5,6,7,8,13,14,15,16])).then(s=>({default:s.AgentsPage}))),Y1=S.lazy(()=>rt(()=>import("./ProjectsPage-DjumWKPo.js"),__vite__mapDeps([17,1,2,3,5,6,7,8,18,9,14,12,19,20,15,21,4,22])).then(s=>({default:s.ProjectsPage}))),K1=S.lazy(()=>rt(()=>import("./McpPage-Dc4U_68i.js"),__vite__mapDeps([23,1,2,3,5,6,7,8,12])).then(s=>({default:s.McpPage}))),X1=S.lazy(()=>rt(()=>import("./SettingsLayout-D18ZK4TY.js"),__vite__mapDeps([24,1,2,3,5,6,7,8])).then(s=>({default:s.SettingsLayout}))),nb=S.lazy(()=>rt(()=>import("./GeneralSettingsPage-BDayH81k.js"),__vite__mapDeps([25,1,2,3,6,7,5,8])).then(s=>({default:s.GeneralSettingsPage}))),Q1=S.lazy(()=>rt(()=>import("./VersionSettingsPage-DC_PL1Lo.js"),__vite__mapDeps([26,1,2,3,22,5,6,7,8,14])).then(s=>({default:s.VersionSettingsPage}))),Z1=S.lazy(()=>rt(()=>import("./MemorySettingsPage-TErKrnR2.js"),__vite__mapDeps([27,1,2,3,5,6,7,8])).then(s=>({default:s.MemorySettingsPage}))),W1=S.lazy(()=>rt(()=>import("./SubagentsPage-DWCgPFzI.js"),__vite__mapDeps([28,1,2,3,12,21,5,6,7,8,15,18,16])).then(s=>({default:s.SubagentsPage}))),J1=S.lazy(()=>rt(()=>import("./McpAdminSettingsPage-DIJs6UrH.js"),__vite__mapDeps([29,1,2,3,5,6,7,8])).then(s=>({default:s.McpAdminSettingsPage}))),eN=S.lazy(()=>rt(()=>import("./TelemetrySettingsPage-recK8TS7.js"),__vite__mapDeps([30,1,2,3,6,7,5,8])).then(s=>({default:s.TelemetrySettingsPage}))),tN=S.lazy(()=>rt(()=>import("./SystemInfoPage-C_kd76VQ.js"),__vite__mapDeps([31,1,2,3,6,7,5,8])).then(s=>({default:s.SystemInfoPage}))),nN=S.lazy(()=>rt(()=>import("./WebSocketTunnelPage-CQWcZK_H.js"),__vite__mapDeps([32,1,2,3,7])).then(s=>({default:s.WebSocketTunnelPage}))),aN=S.lazy(()=>rt(()=>import("./CommandsPage-BgFvm2GI.js"),__vite__mapDeps([33,1,2,3,12,19,5,6,7,8,20,15,18,16])).then(s=>({default:s.CommandsPage}))),iN=S.lazy(()=>rt(()=>import("./SkillsPage-DxIdnjRM.js"),__vite__mapDeps([34,1,2,3,12,5,6,7,8,15,35,36,16])).then(s=>({default:s.SkillsPage}))),sN=S.lazy(()=>rt(()=>import("./PluginsPage-DmCoLCdj.js"),__vite__mapDeps([37,1,2,3,5,6,7,8,35,36])).then(s=>({default:s.PluginsPage}))),rN=S.lazy(()=>rt(()=>import("./ScheduledTasksPage-CsFL7MD9.js"),__vite__mapDeps([38,1,2,3,12,5,6,7,8,9,4,22])).then(s=>({default:s.ScheduledTasksPage}))),oN=S.lazy(()=>rt(()=>import("./ChatPage-Cl0wXezZ.js").then(s=>s.bC),__vite__mapDeps([39,1,2,3,5,6,7,8,9,10,19,22,36,15,14,13,40])).then(s=>({default:s.ChatPage}))),lN=S.lazy(()=>rt(()=>import("./LandingPage-DqS5qWgL.js"),__vite__mapDeps([41,1,2,3,6,7,5,8])).then(s=>({default:s.default}))),cN=S.lazy(()=>rt(()=>import("./LoginPage-C87yR34d.js"),__vite__mapDeps([42,1,2,3,7,6,5,8])).then(s=>({default:s.LoginPage}))),uN=S.lazy(()=>rt(()=>import("./ToastTestPage-DYwSASe6.js"),__vite__mapDeps([43,1,2,3,5,6,7,8])).then(s=>({default:s.ToastTestPage}))),dN=()=>g.jsx("div",{className:"flex items-center justify-center h-64",children:g.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-gray-900"})}),fN=new fw({defaultOptions:{queries:{refetchOnWindowFocus:!1,retry:1}}}),hN=()=>(S.useEffect(()=>{(()=>{const n=localStorage.getItem("theme")||"auto";if(n==="dark")document.documentElement.classList.add("dark");else if(n==="light")document.documentElement.classList.remove("dark");else{const a=window.matchMedia("(prefers-color-scheme: dark)");a.matches?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark");const r=l=>{localStorage.getItem("theme")==="auto"&&(l.matches?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark"))};return a.addEventListener("change",r),()=>a.removeEventListener("change",r)}})()},[]),g.jsx(vk,{children:g.jsx(S.Suspense,{fallback:g.jsx(dN,{}),children:g.jsxs(YC,{children:[g.jsx(Ye,{path:"/",element:g.jsx(lN,{})}),g.jsx(Ye,{path:"/login",element:g.jsx(cN,{})}),g.jsx(Ye,{path:"/chat/:agentId",element:g.jsx(Cn,{children:g.jsx(oN,{})})}),g.jsx(Ye,{path:"/dashboard",element:g.jsx(Cn,{children:g.jsx(Pn,{children:g.jsx(V1,{})})})}),g.jsx(Ye,{path:"/agents",element:g.jsx(Cn,{children:g.jsx(Pn,{children:g.jsx(G1,{})})})}),g.jsx(Ye,{path:"/projects",element:g.jsx(Cn,{children:g.jsx(Pn,{children:g.jsx(Y1,{})})})}),g.jsx(Ye,{path:"/mcp",element:g.jsx(Cn,{children:g.jsx(Pn,{children:g.jsx(K1,{})})})}),g.jsx(Ye,{path:"/skills",element:g.jsx(Cn,{children:g.jsx(Pn,{children:g.jsx(iN,{})})})}),g.jsx(Ye,{path:"/plugins",element:g.jsx(Cn,{children:g.jsx(Pn,{children:g.jsx(sN,{})})})}),g.jsx(Ye,{path:"/scheduled-tasks",element:g.jsx(Cn,{children:g.jsx(Pn,{children:g.jsx(rN,{})})})}),g.jsxs(Ye,{path:"/settings",element:g.jsx(Cn,{children:g.jsx(Pn,{children:g.jsx(X1,{})})}),children:[g.jsx(Ye,{index:!0,element:g.jsx(nb,{})}),g.jsx(Ye,{path:"general",element:g.jsx(nb,{})}),g.jsx(Ye,{path:"suppliers",element:g.jsx(Q1,{})}),g.jsx(Ye,{path:"memory",element:g.jsx(Z1,{})}),g.jsx(Ye,{path:"commands",element:g.jsx(aN,{})}),g.jsx(Ye,{path:"subagents",element:g.jsx(W1,{})}),g.jsx(Ye,{path:"mcp-admin",element:g.jsx(J1,{})}),g.jsx(Ye,{path:"telemetry",element:g.jsx(eN,{})}),g.jsx(Ye,{path:"system-info",element:g.jsx(tN,{})}),g.jsx(Ye,{path:"tunnel",element:g.jsx(nN,{})})]}),g.jsx(Ye,{path:"/toast-test",element:g.jsx(Cn,{children:g.jsx(Pn,{children:g.jsx(uN,{})})})}),g.jsx(Ye,{path:"/discord",element:g.jsx($1,{url:"https://discord.gg/6uYsrr66"})}),g.jsx(Ye,{path:"*",element:g.jsx(Cn,{children:g.jsx(Pn,{children:g.jsx("div",{className:"p-4 text-center",children:"Page not found"})})})})]})})}));function pN(){return g.jsx(q1,{children:g.jsx(hw,{client:fN,children:g.jsx(zk,{children:g.jsxs(B1,{children:[g.jsx(hN,{}),g.jsx(CE,{})]})})})})}const{slice:mN,forEach:gN}=[];function vN(s){return gN.call(mN.call(arguments,1),n=>{if(n)for(const a in n)s[a]===void 0&&(s[a]=n[a])}),s}function yN(s){return typeof s!="string"?!1:[/<\s*script.*?>/i,/<\s*\/\s*script\s*>/i,/<\s*img.*?on\w+\s*=/i,/<\s*\w+\s*on\w+\s*=.*?>/i,/javascript\s*:/i,/vbscript\s*:/i,/expression\s*\(/i,/eval\s*\(/i,/alert\s*\(/i,/document\.cookie/i,/document\.write\s*\(/i,/window\.location/i,/innerHTML/i].some(a=>a.test(s))}const ab=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/,bN=function(s,n){const r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{path:"/"},l=encodeURIComponent(n);let c=`${s}=${l}`;if(r.maxAge>0){const f=r.maxAge-0;if(Number.isNaN(f))throw new Error("maxAge should be a Number");c+=`; Max-Age=${Math.floor(f)}`}if(r.domain){if(!ab.test(r.domain))throw new TypeError("option domain is invalid");c+=`; Domain=${r.domain}`}if(r.path){if(!ab.test(r.path))throw new TypeError("option path is invalid");c+=`; Path=${r.path}`}if(r.expires){if(typeof r.expires.toUTCString!="function")throw new TypeError("option expires is invalid");c+=`; Expires=${r.expires.toUTCString()}`}if(r.httpOnly&&(c+="; HttpOnly"),r.secure&&(c+="; Secure"),r.sameSite)switch(typeof r.sameSite=="string"?r.sameSite.toLowerCase():r.sameSite){case!0:c+="; SameSite=Strict";break;case"lax":c+="; SameSite=Lax";break;case"strict":c+="; SameSite=Strict";break;case"none":c+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}return r.partitioned&&(c+="; Partitioned"),c},ib={create(s,n,a,r){let l=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{path:"/",sameSite:"strict"};a&&(l.expires=new Date,l.expires.setTime(l.expires.getTime()+a*60*1e3)),r&&(l.domain=r),document.cookie=bN(s,n,l)},read(s){const n=`${s}=`,a=document.cookie.split(";");for(let r=0;r<a.length;r++){let l=a[r];for(;l.charAt(0)===" ";)l=l.substring(1,l.length);if(l.indexOf(n)===0)return l.substring(n.length,l.length)}return null},remove(s,n){this.create(s,"",-1,n)}};var _N={name:"cookie",lookup(s){let{lookupCookie:n}=s;if(n&&typeof document<"u")return ib.read(n)||void 0},cacheUserLanguage(s,n){let{lookupCookie:a,cookieMinutes:r,cookieDomain:l,cookieOptions:c}=n;a&&typeof document<"u"&&ib.create(a,s,r,l,c)}},SN={name:"querystring",lookup(s){let{lookupQuerystring:n}=s,a;if(typeof window<"u"){let{search:r}=window.location;!window.location.search&&window.location.hash?.indexOf("?")>-1&&(r=window.location.hash.substring(window.location.hash.indexOf("?")));const c=r.substring(1).split("&");for(let f=0;f<c.length;f++){const h=c[f].indexOf("=");h>0&&c[f].substring(0,h)===n&&(a=c[f].substring(h+1))}}return a}},xN={name:"hash",lookup(s){let{lookupHash:n,lookupFromHashIndex:a}=s,r;if(typeof window<"u"){const{hash:l}=window.location;if(l&&l.length>2){const c=l.substring(1);if(n){const f=c.split("&");for(let h=0;h<f.length;h++){const p=f[h].indexOf("=");p>0&&f[h].substring(0,p)===n&&(r=f[h].substring(p+1))}}if(r)return r;if(!r&&a>-1){const f=l.match(/\/([a-zA-Z-]*)/g);return Array.isArray(f)?f[typeof a=="number"?a:0]?.replace("/",""):void 0}}}return r}};let ms=null;const sb=()=>{if(ms!==null)return ms;try{if(ms=typeof window<"u"&&window.localStorage!==null,!ms)return!1;const s="i18next.translate.boo";window.localStorage.setItem(s,"foo"),window.localStorage.removeItem(s)}catch{ms=!1}return ms};var wN={name:"localStorage",lookup(s){let{lookupLocalStorage:n}=s;if(n&&sb())return window.localStorage.getItem(n)||void 0},cacheUserLanguage(s,n){let{lookupLocalStorage:a}=n;a&&sb()&&window.localStorage.setItem(a,s)}};let gs=null;const rb=()=>{if(gs!==null)return gs;try{if(gs=typeof window<"u"&&window.sessionStorage!==null,!gs)return!1;const s="i18next.translate.boo";window.sessionStorage.setItem(s,"foo"),window.sessionStorage.removeItem(s)}catch{gs=!1}return gs};var CN={name:"sessionStorage",lookup(s){let{lookupSessionStorage:n}=s;if(n&&rb())return window.sessionStorage.getItem(n)||void 0},cacheUserLanguage(s,n){let{lookupSessionStorage:a}=n;a&&rb()&&window.sessionStorage.setItem(a,s)}},kN={name:"navigator",lookup(s){const n=[];if(typeof navigator<"u"){const{languages:a,userLanguage:r,language:l}=navigator;if(a)for(let c=0;c<a.length;c++)n.push(a[c]);r&&n.push(r),l&&n.push(l)}return n.length>0?n:void 0}},AN={name:"htmlTag",lookup(s){let{htmlTag:n}=s,a;const r=n||(typeof document<"u"?document.documentElement:null);return r&&typeof r.getAttribute=="function"&&(a=r.getAttribute("lang")),a}},EN={name:"path",lookup(s){let{lookupFromPathIndex:n}=s;if(typeof window>"u")return;const a=window.location.pathname.match(/\/([a-zA-Z-]*)/g);return Array.isArray(a)?a[typeof n=="number"?n:0]?.replace("/",""):void 0}},TN={name:"subdomain",lookup(s){let{lookupFromSubdomainIndex:n}=s;const a=typeof n=="number"?n+1:1,r=typeof window<"u"&&window.location?.hostname?.match(/^(\w{2,5})\.(([a-z0-9-]{1,63}\.[a-z]{2,6})|localhost)/i);if(r)return r[a]}};let j_=!1;try{document.cookie,j_=!0}catch{}const R_=["querystring","cookie","localStorage","sessionStorage","navigator","htmlTag"];j_||R_.splice(1,1);const NN=()=>({order:R_,lookupQuerystring:"lng",lookupCookie:"i18next",lookupLocalStorage:"i18nextLng",lookupSessionStorage:"i18nextLng",caches:["localStorage"],excludeCacheFor:["cimode"],convertDetectedLanguage:s=>s});class D_{constructor(n){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.type="languageDetector",this.detectors={},this.init(n,a)}init(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{languageUtils:{}},a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};this.services=n,this.options=vN(a,this.options||{},NN()),typeof this.options.convertDetectedLanguage=="string"&&this.options.convertDetectedLanguage.indexOf("15897")>-1&&(this.options.convertDetectedLanguage=l=>l.replace("-","_")),this.options.lookupFromUrlIndex&&(this.options.lookupFromPathIndex=this.options.lookupFromUrlIndex),this.i18nOptions=r,this.addDetector(_N),this.addDetector(SN),this.addDetector(wN),this.addDetector(CN),this.addDetector(kN),this.addDetector(AN),this.addDetector(EN),this.addDetector(TN),this.addDetector(xN)}addDetector(n){return this.detectors[n.name]=n,this}detect(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.options.order,a=[];return n.forEach(r=>{if(this.detectors[r]){let l=this.detectors[r].lookup(this.options);l&&typeof l=="string"&&(l=[l]),l&&(a=a.concat(l))}}),a=a.filter(r=>r!=null&&!yN(r)).map(r=>this.options.convertDetectedLanguage(r)),this.services&&this.services.languageUtils&&this.services.languageUtils.getBestMatchFromCodes?a:a.length>0?a[0]:null}cacheUserLanguage(n){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.options.caches;a&&(this.options.excludeCacheFor&&this.options.excludeCacheFor.indexOf(n)>-1||a.forEach(r=>{this.detectors[r]&&this.detectors[r].cacheUserLanguage(n,this.options)}))}}D_.type="languageDetector";const MN={create:"创建",delete:"删除",save:"保存",cancel:"取消",confirm:"确定",edit:"编辑",close:"关闭",back:"返回",next:"下一步",refresh:"刷新",submit:"提交",reset:"重置",search:"搜索",add:"添加",remove:"移除",update:"更新",upload:"上传",download:"下载",export:"导出",import:"导入",copy:"复制",paste:"粘贴",cut:"剪切"},jN={loading:"加载中...",processing:"处理中...",success:"操作成功",failed:"操作失败",saving:"保存中...",deleting:"删除中...",uploading:"上传中...",downloading:"下载中...",completed:"已完成",pending:"待处理",active:"活跃",inactive:"未激活",enabled:"已启用",disabled:"已禁用"},RN={yes:"是",no:"否",ok:"好的",all:"全部",none:"无",or:"或",and:"和",more:"更多",less:"更少",unknown:"未知",optional:"可选",required:"必填",default:"默认",custom:"自定义"},DN="路径",PN="创建时间",ON={init:{description:""},clear:{description:""},compact:{description:""},agents:{description:""},settings:{description:""},help:{description:""}},LN={sendImage:""},FN={chinese:"",english:""},UN={pageTitle:"",metaDescription:"",nav:{enterWorkspace:""},hero:{title:"",subtitle:"",description:"",startNow:"",viewSource:""},features:{title:"",subtitle:"",modernWeb:{title:"",description:""},multiModel:{title:"",description:""},agentSystem:{title:"",description:""},fileManagement:{title:"",description:""},professionalTools:{title:"",description:""},secureReliable:{title:"",description:""}},quickStart:{title:"",subtitle:"",endUserTitle:"",endUserDescription:"",developerTitle:"",developerDescription:""},cta:{title:"",subtitle:"",start:""},footer:{description:"",copyright:"",product:"",workspace:"",sourceCode:"",releases:"",support:"",documentation:"",issues:"",discussions:""}},zN={actions:MN,status:jN,common:RN,path:DN,createdAt:PN,systemCommands:ON,agentChat:LN,languageSwitcher:FN,landing:UN},IN={backToHome:"返回首页",documentation:"文档目录"},HN={dashboard:"首页",projects:"项目管理",agents:"Agent管理",scheduledTasks:"定时任务",extensions:"扩展能力",skills:"技能管理",plugins:"插件管理",mcp:"MCP服务",commands:"自定义命令",subagents:"Subagent管理",settings:"系统管理",settingsSubmenu:{general:"通用设置",suppliers:"供应商管理",memory:"全局记忆",mcpAdmin:"MCP Admin",tunnel:"隧道接入"}},BN={newVersionAvailable:"新版本 v{{version}} 已发布",updateAvailableTitle:"有新版本可用",currentVersion:"当前版本",viewUpdate:"查看更新",dismiss:"忽略",remindLater:"稍后提醒"},qN={version:"版本 {{version}}",apiServerStatus:{connected:"API服务器设置 - 连接正常",disconnected:"API服务器设置 - 连接失败",checking:"API服务器设置 - 检查中..."},serviceStatus:{normal:"服务正常",unavailable:"服务不可用",checking:"检查中..."}},$N={title:"登录",subtitle:"请输入密码以继续",passwordLabel:"密码",passwordPlaceholder:"请输入密码",loginButton:"登录",loggingIn:"登录中...",footer:"如果您忘记了密码,请联系管理员",manageServices:"管理后端服务",serviceName:"服务名称",serviceUrl:"服务地址",current:"当前",testConnection:"测试连接",switchTo:"切换到此服务",edit:"编辑",delete:"删除",save:"保存",cancel:"取消",add:"添加",addService:"添加新服务",rerunOnboarding:"重新运行配置向导",checkingConnection:"正在检查连接...",autoLoggingIn:"正在自动登录...",noPasswordRequired:"此服务未设置密码,可直接登录",enterSystem:"进入系统"},VN={pageTitle:"AgentStudio - Agent 工作台 | Claude Agent SDK 驱动",metaDescription:"Agent for Work - 本地的 Agent 工作台,由 Claude Agent SDK 强力驱动。数据完全私有,支持定时任务、A2A 协议、自定义 Agent。",nav:{enterWorkspace:"进入工作台",docs:"文档",wechat:"微信群"},hero:{badge:"由 Claude Agent SDK 强力驱动",title:"Agent for Work",subtitle:"本地的 Agent 工作台",description:"真正运行在你电脑上的私人 AI 助理。数据完全私有,安全可控,支持定时任务自动化和多 Agent 协作。",startNow:"开始使用",viewSource:"查看源码",copyCommand:"复制命令",installHint:"复制下面的命令到终端运行,即可开始使用",copy:"复制",copied:"已复制"},preview:{title:"产品预览",subtitle:"直观的 Web 界面,让 AI 工作更高效",chatAlt:"聊天界面截图",chatCaption:"聊天界面 - 与 Agent 对话,可视化展示工具调用",mcpAlt:"MCP 服务管理截图",mcpCaption:"MCP 服务管理 - 一键导入 Claude Code 配置"},features:{title:"核心特性",subtitle:"为 AI 工作自动化设计的完整解决方案",localWorkspace:{title:"本地的 Agent 工作台",point1:"运行在你的电脑上,真正意义的本地工作台",point2:"数据完全私有,不上传云端",point3:"文件、代码、对话记录都在掌控之中"},webExperience:{title:"Web 版交互体验",point1:"告别命令行,拥抱友好的 Web 界面",point2:"工具调用可视化呈现,对话体验更鲜活",point3:"内置文件浏览器,对话同时查看项目文件"},sdkFeatures:{title:"Claude Agent SDK 全家桶",skills:"技能系统",commands:"自定义命令",plugins:"插件生态",memory:"项目记忆",subagent:"子 Agent",multiModel:"多模型支持",anthropicCompat:"支持 Claude、GLM、DeepSeek、Kimi K2、MiniMax 等兼容 Anthropic 接口规范的模型"}},scheduler:{badge:"定时任务调度",title:"让 Agent 按计划自动执行",description:"真正实现 AI 工作自动化!设定时间规则,Agent 将自动完成重复性工作,解放你的时间。",scenariosTitle:"典型应用场景",scenario1:{title:"每日进度日报",desc:"每天早上 9 点,自动生成项目进度日报"},scenario2:{title:"代码自动审查",desc:"每 2 小时检查代码仓库,自动提交审查意见"},scenario3:{title:"周会纪要整理",desc:"每周五自动整理本周会议纪要并归档"},scenario4:{title:"月度数据分析",desc:"每月 1 号自动生成业务数据分析报告"}},a2a:{badge:"A2A 协议",title:"智能体协作网络",description:"让多个 Agent 形成协同工作的网络。本地 Agent、远程 Agent 互联互通,构建你的私人 AI 团队。",scenariosTitle:"典型应用场景",scenario1:{title:"秘书 Agent 调度",desc:"一个秘书 Agent 统一接收任务,自动调度其他项目 Agent 执行具体工作"},scenario2:{title:"本地 ↔ 远程协作",desc:"本地电脑与远程开发机上的 Agent 互相通讯,协同完成任务"},scenario3:{title:"移动端随时访问",desc:"通过移动通讯端与本地 Agent 交互,随时随地工作(内测中)"}},customAgent:{badge:"自定义 Agent",title:"打造你的专属 Agent",description:"无需编写代码,通过界面配置即可定制专属 Agent。内置 Claude Code Agent 开箱即用,满足各种工作场景。",example1:"PPT 制作 Agent",example2:"秘书 Agent",example3:"文档写作 Agent",example4:"代码审查 Agent"},comparison:{title:"AgentStudio vs Claude Code",subtitle:"同样的 Claude Agent SDK,更友好的使用体验",dimension:"对比维度",interface:"交互形态",webInterface:"界面",cli:"命令行 (CLI)",targetUsers:"目标用户",everyone:"所有人",developers:"主要开发者",toolDisplay:"工具展示",visual:"可视化呈现",textOnly:"纯文本",fileBrowser:"文件浏览器",agentCustom:"Agent 定制",scheduler:"定时任务",a2a:"A2A 协议",mobileAccess:"移动端访问",beta:"内测中"},cta:{title:"准备好开始你的 AI 工作自动化了吗?",subtitle:"一行命令,即刻启动你的本地 Agent 工作台",start:"开始使用"},footer:{description:"Agent for Work - 本地的 Agent 工作台,由 Claude Agent SDK 强力驱动。",copyright:"© 2026 AgentStudio. GPL v3 License.",product:"产品",workspace:"工作台",sourceCode:"源码",releases:"发布版本",support:"支持",documentation:"文档",issues:"问题反馈",wechat:"微信群"},wechat:{title:"加入微信群",fallback:"二维码失效?请添加微信号:",wechatId:"talk4kong",tip:"扫码或添加微信号,即可加入交流群"}},GN={title:"Agent管理",subtitle:"管理专门的 AI 代理",createButton:"创建助手",editButton:"编辑助手",deleteButton:"删除助手",enableButton:"启用助手",disableButton:"禁用助手",useButton:"使用",startUsingButton:"开始使用助手",noAgents:"暂无助手",noAgentsSearch:"未找到匹配的助手",searchPlaceholder:"搜索助手...",createFirst:"创建你的第一个智能助手",adjustSearch:"尝试调整搜索条件",loading:"正在加载智能助手...",filter:{all:"全部",enabled:"已启用",disabled:"已禁用"},table:{agent:"智能助手",type:"类型",config:"配置",tools:"工具",status:"状态",actions:"操作",maxTurns:"最大轮次",unlimited:"不限制",permission:"权限",toolsCount:"{{count}} 个工具"},form:{create:"创建助手",edit:"编辑助手",name:"名称",description:"描述",maxTurns:"最大轮次",maxTurnsPlaceholder:"不限制",maxTurnsError:"最大轮次必须在1-100之间",maxTurnsExceeded:"最大轮次不能超过{{maximum}}",permissionMode:"权限模式",icon:"图标",primaryColor:"主题颜色",enabledTools:"启用的工具",selectTools:"选择工具",toolsRegular:"常规工具 {{count}} 个",toolsMcp:"MCP工具 {{count}} 个",systemPrompt:"系统提示词",systemPromptPlaceholder:"输入助手的系统提示词...",nameRequired:"请填写助手名称",save:"保存",cancel:"取消"},permissions:{default:"默认",acceptEdits:"自动接受编辑",bypassPermissions:"绕过权限检查",plan:"规划模式"},status:{enabled:"已启用",disabled:"已禁用"},errors:{createFailed:"创建失败,请重试。",saveFailed:"保存失败,请重试。",deleteFailed:"删除失败,请重试。",toggleFailed:"操作失败,请重试。",builtinCannotDelete:"内置助手无法删除,但可以禁用。"},confirmDelete:`确定要删除助手"{{name}}"吗?
88
88
 
89
89
  此操作无法撤销,相关的所有会话也会被删除。`},YN={title:"项目管理",subtitle:"管理你的所有工作项目",createButton:"创建新项目",selectType:"选择助手类型创建工作项目",noProjects:"暂无项目",searchPlaceholder:"搜索项目...",loading:"正在加载项目...",filter:{all:"全部",active:"活跃",inactive:"未活跃"},table:{project:"项目",agent:"助手",lastActive:"最后活跃",sessions:"会话",actions:"操作",sessionsCount:"{{count}} 个会话"},form:{create:"创建项目",edit:"编辑项目",name:"项目名称",namePlaceholder:"输入项目名称",nameRequired:"项目名称 *",agentType:"选择助手类型 *",agentTypePlaceholder:"选择一个助手类型",directory:"项目目录",directoryNote:"项目将在此目录下创建一个新文件夹",description:"项目描述",descriptionPlaceholder:"简单描述这个项目的用途...",save:"保存",cancel:"取消"},actions:{open:"打开",openInNewTab:"在新标签页打开",edit:"编辑",delete:"删除"},status:{active:"活跃",inactive:"未活跃",never:"从未"},errors:{createFailed:"创建项目失败",updateFailed:"更新项目失败",deleteFailed:"删除项目失败",loadFailed:"加载项目失败"},deleteConfirm:"确定要删除项目吗?",deleteNote:"注意:这只会从列表中移除项目,不会删除实际的文件目录。",deleteSuccess:"项目已删除"},KN={title:"对话",inputPlaceholder:"输入消息...",aiTyping:"AI正在输入中",newSession:"新对话",sessionHistory:"历史会话",loading:"正在加载智能助手...",agentNotFound:"助手未找到",agentNotFoundDesc:"无法找到指定的智能助手,可能已被删除或禁用。",agentDisabled:"助手已禁用",agentDisabledDesc:'智能助手 "{{name}}" 目前已被禁用,无法使用。',closePage:"关闭页面",tabNotification:{working:"🤖 正在工作",completed:"✅ 已完成",error:"❌ 发生错误"}},XN={title:"首页",welcome:{title:"让我们开始工作吧",subtitle:"选择一个项目,开始与 AI 协作完成任务"},defaultProjectName:"默认工作空间",loading:"加载中...",creatingDefaultProject:"正在创建默认工作空间...",noAgentsEnabled:"没有可用的 Agent,请先启用一个 Agent",goToAgents:"前往 Agent 管理",selectProject:"选择项目",noProjects:"暂无项目",createNewProject:"创建新项目",noProjectsHint:{title:"还没有项目",description:"创建一个项目来开始与 AI 协作",createButton:"一键创建默认项目",creating:"创建中..."},projectCreated:{title:"项目创建成功",message:"已经为您创建项目:{{name}},你现在可以开始与 Agent 工作了。"},quickLinks:{title:"快捷入口",projects:"项目管理",modelSettings:"模型供应商",scheduledTasks:"定时任务",customAgents:"自定义 Agent"},sessions:{title:"活跃会话",clearAll:"清除全部",close:"关闭会话",closed:"会话已关闭",closedMessage:"会话已成功关闭",closeFailed:"关闭失败",closeError:"无法关闭会话",allCleared:"全部清除",allClearedMessage:"已清除 {{count}} 个会话",clearFailed:"清除失败",clearError:"无法清除会话",confirmed:"已确认",pending:"等待中",idle:"空闲",heartbeatTimeout:"心跳超时",session:"会话"},selectProjectToStart:"请选择一个项目开始聊天",stats:{agentManagement:"Agent管理",workProjects:"工作项目",slashCommands:"Slash命令",activeSessions:"活跃会话"},recentAgents:{title:"常用助手",viewAll:"查看全部",types:{slides:"演示文稿","claude-code":"Claude Code"},noAgents:"暂无可用助手",goEnable:"去启用助手"},quickActions:{title:"快速操作",createProject:{title:"创建新项目",description:"选择助手类型创建工作项目"},createAgent:{title:"创建新助手",description:"配置自定义AI助手"},addMcp:{title:"添加MCP服务",description:"连接新的MCP服务器"},viewAnalytics:{title:"查看统计",description:"分析使用情况和性能"}},overview:"概览",statistics:"统计信息",recentActivity:"最近活动",templates:{organizeFiles:"整理文件",analyzeFiles:"文件分析",writeDoc:"写一份文档",codeReview:"代码审查",checkWeather:"查深圳天气",quickTask:"自由提问"}},QN=JSON.parse('{"title":"设置","general":{"title":"通用设置","description":"配置界面外观、查看系统信息和隐私设置","interfaceSettings":"外观设置","theme":{"label":"主题","description":"选择界面主题模式","auto":"跟随系统","light":"浅色模式","dark":"深色模式"},"language":{"label":"语言","description":"选择界面语言"},"password":{"title":"访问密码","checking":"正在检查...","currentlySet":"当前已设置访问密码","currentlyNotSet":"当前未设置密码,可免密登录","description":"设置密码后,登录时需要输入密码。留空并保存可清除密码,启用免密登录。","newPassword":"新密码","newPasswordPlaceholder":"输入新密码(留空则清除密码)","confirmPassword":"确认密码","confirmPasswordPlaceholder":"再次输入密码","save":"保存密码","clear":"清除密码","mismatch":"两次输入的密码不一致","tooShort":"密码长度至少为4位","setSuccess":"密码设置成功,下次登录时生效","clearSuccess":"密码已清除,系统现在可以免密登录","saveFailed":"保存密码失败","clearFailed":"清除密码失败"}},"api":"API服务器设置","memory":"全局记忆","memorySettings":{"title":"全局记忆设置","description":"全局记忆是所有AI助手共享的背景信息,包含您的工作偏好、项目信息等","fileSourceInfo":"内容来自用户目录下的 ~/.claude/CLAUDE.md 文件。","memoryContent":"记忆内容","edit":"编辑","cancelEdit":"取消编辑","refresh":"刷新","refreshing":"刷新中...","placeholder":"在这里编写您的全局记忆内容...","cancel":"取消","saveMemory":"保存记忆","loading":"正在加载全局记忆...","noMemory":"暂无全局记忆内容","clickEditToStart":"点击\\"编辑\\"按钮开始添加","infoAutoLoad":"全局记忆将在每次对话时自动加载,为AI提供背景信息","infoSuggestions":"建议包含:工作偏好、项目背景、个人信息等","infoFileLocation":"文件位置:~/.claude/CLAUDE.md","saveSuccess":"全局记忆已保存","saveFailed":"保存失败,请重试"},"supplier":{"title":"供应商管理","subtitle":"管理多个模型供应商,指定可执行路径、别名和环境变量","addSupplier":"添加供应商","noSuppliers":"还没有配置模型供应商","clickToAddFirst":"点击\\"添加供应商\\"来配置第一个模型供应商","systemLabel":"系统","defaultLabel":"默认","pathLabel":"路径","envVarsLabel":"环境变量","modelsLabel":"支持的模型","setAsDefault":"设为默认","copyCommand":"复制命令","edit":"编辑","delete":"删除","confirmDelete":"确定要删除供应商 \\"{{alias}}\\" 吗?","currentSupplier":{"title":"当前供应商","checking":"检查中...","checkVersion":"检查供应商","claudeDesc":"AI编程助手","updating":"更新中...","update":"更新","willUse":"将使用","toUpdate":"更新","nodejsDesc":"JavaScript运行环境","preferred":"推荐","packageManager":"包管理器","lastChecked":"最后检查时间","clickToCheck":"点击\\"检查供应商\\"获取供应商信息","updateSuccess":"更新成功","updateFailed":"更新失败","info1":"Claude Code 是 AI 编程助手,支持代码生成、编辑和项目管理","info2":"Node.js 是系统运行的基础环境","info3":"支持多种包管理器:npm、pnpm、yarn(优先级:pnpm > yarn > npm)","info4":"系统会自动选择推荐的包管理器进行更新操作","info5":"建议保持 Claude Code 为最新版本以获得最佳体验"},"templates":{"title":"供应商快速配置模板","description":"选择预设模板快速配置第三方API供应商,自动填充环境变量配置","providers":{"glm":{"name":"GLM (智谱AI)","description":"使用智谱AI的GLM模型服务,兼容Anthropic API"},"deepseek":{"name":"DeepSeek","description":"使用DeepSeek的高性能模型服务"},"kimi":{"name":"Kimi K2 (月之暗面)","description":"使用Kimi K2模型服务,支持Anthropic API兼容"},"minimax":{"name":"MiniMax","description":"使用MiniMax的高性能模型服务,支持Anthropic API兼容"}}},"form":{"createTitle":"添加新供应商","editTitle":"编辑供应商","supplierName":"供应商名称","supplierNamePlaceholder":"例如: Claude Code v1.2.3","alias":"别名","aliasPlaceholder":"例如: claude-1.2.3","description":"描述","descriptionPlaceholder":"供应商描述(可选)","executablePath":"可执行文件路径","executablePathPlaceholder":"不指定则使用系统默认路径","browseFile":"浏览文件","envVars":"环境变量","varName":"变量名","varValue":"变量值","emptyValue":"未设置","getApiKey":"获取密钥","models":"模型配置","modelId":"模型ID","modelName":"模型名称","visionModel":"视觉模型","addModel":"添加模型","cancel":"取消","saving":"保存中...","update":"更新","create":"创建","selectExecutable":"选择Claude可执行文件"},"errors":{"requiredFields":"请填写所有必填字段","saveFailed":"保存失败","deleteFailed":"删除失败","setDefaultFailed":"设置默认供应商失败","cannotDeleteSystem":"不能删除系统供应商","copyFailed":"复制失败,请手动复制以下命令:"},"success":{"createVersion":"供应商创建成功","updateVersion":"供应商更新成功","deleteVersion":"供应商删除成功","setDefault":"已将 \\"{{alias}}\\" 设置为默认供应商","copyCommand":"命令已复制到剪贴板"}},"cloudflare":{"title":"Cloudflare Tunnel","description":"一键启用外网访问,通过 Cloudflare Tunnel 将本地服务暴露到公网","wizard":{"showGuide":"显示设置向导","steps":{"intro":"介绍","credentials":"配置凭证","create":"创建隧道","start":"启动服务","done":"完成"},"intro":{"title":"欢迎使用 Cloudflare Tunnel","description":"Cloudflare Tunnel 可以让你无需公网 IP,就能将本地运行的 AgentStudio 暴露到公网,实现随时随地访问。","benefit1":"无需公网 IP 或路由器配置","benefit2":"自动 HTTPS 加密,安全可靠","benefit3":"利用 Cloudflare 全球 CDN 加速","benefit4":"免费使用,快速部署","requirements":"前置要求","req1":"一个 Cloudflare 免费账号","req2":"Python 3 环境(用于调用 API)","req3":"Docker 或 cloudflared CLI(用于启动隧道)","getStarted":"开始设置"},"credentials":{"howToGet":"如何获取 Cloudflare 凭证?","step1":"访问 Cloudflare Dashboard 创建 API Token","step2":"配置权限:Cloudflare Tunnel - Edit","step3":"复制 Account ID 和 API Token","openDashboard":"打开 Cloudflare Dashboard","saveAndContinue":"保存并继续"},"create":{"description":"现在可以创建你的第一个 Tunnel 了。你可以自定义子域名前缀,或者留空让系统自动生成。","createButton":"一键创建 Tunnel"},"start":{"tunnelCreated":"Tunnel 创建成功!","nextStep":"现在需要启动 cloudflared 客户端来建立连接。","yourPublicUrl":"你的公网访问地址","importantNote":"重要提示","needToStartClient":"Tunnel 已创建,但还需要启动 cloudflared 客户端才能真正建立连接。请按照下方步骤操作。","howToStart":"如何启动 Tunnel?","option1":"方式一:使用 Docker","option2":"方式二:使用 cloudflared CLI","recommended":"推荐","copy":"复制","copied":"已复制","installCloudfared":"安装 cloudflared","runCommand":"运行命令","finishSetup":"完成设置"},"done":{"title":"设置完成!","description":"你的 AgentStudio 现在可以通过公网访问了","deleteTunnel":"删除 Tunnel","reminder":"温馨提示","keepClientRunning":"请保持 cloudflared 客户端运行,关闭后将无法访问公网地址。"}},"credentials":{"title":"Cloudflare 凭证配置","configured":"凭证已配置","update":"更新凭证","apiToken":"API Token","accountId":"Account ID","save":"保存","saving":"保存中...","cancel":"取消","help":"获取 API Token 和 Account ID,请访问"},"tunnel":{"title":"Tunnel 管理","active":"当前激活的 Tunnel","publicUrl":"公网访问地址","name":"Tunnel 名称","localPort":"本地端口","createdAt":"创建时间","subdomain":"子域名前缀(可选)","subdomainPlaceholder":"留空自动生成随机子域名","subdomainHelp":"留空将自动生成一个随机子域名","create":"一键启用外网访问","creating":"创建中...","details":"Tunnel 详情","token":"Tunnel Token","cliCommand":"CLI 启动命令"},"credentialsSaved":"Cloudflare 凭证保存成功","tunnelCreated":"Tunnel 创建成功!现在可以通过公网 URL 访问","tunnelDeleted":"Tunnel 已删除","confirmDelete":"确定要删除这个 Tunnel 吗?","errors":{"credentialsRequired":"请填写 API Token 和 Account ID"}},"language":"语言设置","subagents":{"title":"Subagent 管理","subtitle":"管理专门的 AI 子代理","loading":"正在加载 Subagents...","loadFailed":"加载失败","loadFailedMessage":"无法加载 Subagents 列表","retry":"重试","searchPlaceholder":"搜索 Subagents...","createButton":"新建 Subagent","noSubagents":"还没有 Subagents","noSubagentsSearch":"未找到匹配的 Subagents","adjustSearch":"尝试调整搜索条件","createFirst":"创建你的第一个专门的 AI 子代理来处理特定任务","table":{"subagent":"Subagent","tools":"工具","createdAt":"创建时间","actions":"操作","toolsCount":"{{count}} 个工具","inheritSettings":"继承对话设置"},"actions":{"edit":"编辑","view":"查看","editTitle":"编辑 Subagent","viewTitle":"查看 Subagent","deleteTitle":"删除 Subagent"},"source":{"local":"本地","plugin":"插件"},"deleteConfirm":{"title":"确认删除","message":"确定要删除 Subagent \\"{{name}}\\" 吗?","warning":"此操作无法撤销。","cancel":"取消","delete":"删除"}},"mcpAdmin":{"title":"MCP Admin Server","subtitle":"配置 MCP Admin API,允许外部 AI 工具管理您的 AgentStudio","refresh":"刷新","serverStatus":"服务器状态","status":{"status":"状态","active":"运行中","version":"版本","tools":"可用工具","activeKeys":"活跃密钥","unavailable":"服务不可用"},"endpoint":"端点","apiKeys":"API 密钥","createKey":"创建密钥","noKeys":"暂无 API 密钥","noKeysHint":"创建一个 API 密钥以允许外部工具访问","createdAt":"创建于","lastUsed":"最后使用","revoked":"已撤销","revokeKey":"撤销密钥","confirmRevoke":"确定要撤销此 API 密钥吗?此操作无法撤销。","availableTools":"可用管理工具","createKeyTitle":"创建 API 密钥","keyDescription":"密钥描述","keyDescriptionPlaceholder":"例如:Cursor MCP 连接","fullPermissions":"此密钥将拥有完整管理权限","cancel":"取消","create":"创建","creating":"创建中...","keyCreated":"API 密钥已创建!","configTitle":"MCP 配置","saveKeyWarning":"请立即保存此密钥!它只会显示这一次,无法再次查看。","yourApiKey":"您的 API 密钥","configFile":"配置文件","copyConfig":"复制配置","done":"完成","showKey":"显示密钥","hideKey":"隐藏密钥","copyKey":"复制密钥","viewConfig":"查看配置","limitTools":"限制可用工具","selectAll":"全选","deselectAll":"取消全选","selectedToolsCount":"已选择 {{count}} 个工具","limitedTools":"限制 {{count}} 个工具","allToolsAccess":"所有工具","disabled":"已停用","enableKey":"启用密钥","disableKey":"停用密钥","editKey":"编辑密钥","editKeyTitle":"编辑 API 密钥","save":"保存","saving":"保存中...","toolParams":"参数","noParams":"无参数","success":{"copied":"已复制到剪贴板","keyRevoked":"API 密钥已撤销","keyUpdated":"API 密钥已更新","keyEnabled":"API 密钥已启用","keyDisabled":"API 密钥已停用"},"errors":{"configFetch":"获取配置失败","createFailed":"创建密钥失败","revokeFailed":"撤销密钥失败","copyFailed":"复制失败","descriptionRequired":"请输入密钥描述","updateFailed":"更新密钥失败","toggleFailed":"切换密钥状态失败"},"help":{"button":"使用帮助","title":"MCP Admin Server 使用帮助","whatIs":"什么是 MCP Admin Server?","whatIsDesc":"MCP Admin Server 是一个标准的 MCP(Model Context Protocol)服务器,允许其他 AI 工具(如 Cursor、Claude Desktop)通过 MCP 协议远程管理您的 AgentStudio。通过这个接口,您可以在其他 AI 工具中直接查询和管理 AgentStudio 的项目、智能体、MCP 服务器等。","howToUse":"如何使用?","step1":"在本页面创建一个 Admin API 密钥","step2":"点击「查看配置」获取配置代码片段","step3":"将配置添加到 Cursor 或 Claude Desktop 的 MCP 配置文件中","step4":"重启 Cursor/Claude Desktop,然后就可以在对话中使用管理工具了","availableTools":"可用工具示例","toolListProjects":"列出所有项目","toolGetProject":"获取项目详情","toolListAgents":"列出所有智能体","toolGetAgent":"获取智能体详情","toolHealthCheck":"系统健康检查","examples":"使用示例","examplePrompt":"在 Cursor 中,你可以直接对 AI 说:"}},"apiSettings":{"title":"API服务器设置","hostLabel":"API服务器地址","hostPlaceholder":"http://localhost:4936 或 https://your-domain.com","testConnection":"测试连接","quickSelect":"快捷选择:","connectionStatus":"连接状态","status":{"success":"连接成功","error":"连接失败","untested":"未测试"},"serverError":"服务器响应错误: {{status}} {{statusText}}","connectionFailed":"连接失败: {{message}}","connectionUnknownError":"连接失败: 未知错误","enterApiHost":"请输入API服务器地址","settingsSavedRefresh":"设置已保存,页面将刷新以应用新设置","usage":{"title":"使用说明:","localDev":"在本地开发时,使用","production":"在生产环境中,使用您的服务器域名,如","cors":"确保服务器支持CORS访问,允许前端域名访问","refresh":"修改后需要刷新页面才能生效"},"resetToDefault":"重置为默认","saveSettings":"保存设置"},"telemetry":{"title":"遥测与分析","description":"管理匿名使用数据收集","enableTelemetry":"启用匿名遥测","enableDescription":"分享匿名使用数据,帮助我们改进 AgentStudio","statusEnabled":"遥测已启用。感谢您帮助改进 AgentStudio!","statusDisabled":"遥测已禁用。不会收集任何数据。","whatWeCollect":"我们收集的数据","whatWeNeverCollect":"我们绝不收集的数据","collect":{"installId":"匿名安装 ID","installIdDesc":"一个随机 UUID 用于区分安装实例,不与您的身份关联","version":"应用版本和操作系统","versionDesc":"帮助我们了解哪些版本和平台使用最多","features":"功能使用统计","featuresDesc":"哪些功能被使用(不包含内容或个人数据)","errors":"错误报告","errorsDesc":"脱敏的错误信息和堆栈跟踪(文件路径已移除)"},"neverCollect":{"files":"文件内容、代码或项目数据","keys":"API 密钥、密码或凭据","pii":"个人身份信息(姓名、邮箱、IP)","conversations":"聊天对话或 AI 回复"},"privacyNote":"隐私优先","privacyNoteDesc":"所有遥测数据都是匿名和聚合的。我们无法识别个人用户。您可以随时禁用遥测。","consent":{"title":"帮助改进 AgentStudio","subtitle":"匿名使用数据","description":"我们收集匿名使用数据,以了解 AgentStudio 的使用方式并改善用户体验。不会收集任何个人信息。","whatWeCollect":"我们收集的数据","item1":"匿名安装 ID","item2":"应用版本和操作系统类型","item3":"功能使用统计","item4":"错误报告(不含个人数据)","whatWeDoNotCollect":"我们绝不收集","notItem1":"文件内容或代码","notItem2":"API 密钥或凭据","notItem3":"个人身份信息","changeAnytime":"您可以随时在 设置 → 遥测与分析 中更改此设置。","accept":"是的,我愿意帮助","decline":"不了,谢谢"}},"systemInfo":{"title":"系统信息","subtitle":"查看系统版本和运行时信息","checkUpdate":"检查更新","updateAvailable":"有新版本可用!","versionInfo":"版本信息","appName":"应用名称","currentVersion":"当前版本","latestVersion":"最新版本","upToDate":"已是最新","version":"版本","runtimeInfo":"运行时信息","platform":"操作系统","architecture":"架构","links":"相关链接","viewSource":"查看源代码","viewReleases":"查看发布版本","viewChangelog":"查看更新日志","viewNpm":"在 npm 查看"}}'),ZN={title:"数据分析",usage:"使用统计",performance:"性能指标"},WN={title:"MCP服务",subtitle:"管理和监控Model Context Protocol服务器",loading:"正在加载MCP配置...",searchPlaceholder:"搜索配置名称、命令或参数...",addServer:"添加服务",noServers:"还没有MCP服务配置",noResults:"未找到匹配的配置",adjustSearch:"尝试调整搜索条件",addFirstServer:"添加你的第一个MCP服务配置",confirmDelete:'确定要删除 "{{name}}" 配置吗?',validateAll:"验证全部",stats:{total:"总计",active:"活动",error:"错误",validating:"验证中",tools:"工具"},import:{button:"从Claude Code导入",importing:"导入中...",noConfigFound:"没有找到Claude Code的MCP配置(从 ~/.claude.json 读取)",success:"成功导入 {{imported}} 个MCP服务器配置{{skipped, select, 0{} other{,跳过 {{skipped}} 个已存在的配置}}",allExist:"所有配置都已存在,没有导入新的配置"},table:{server:"服务",type:"类型",status:"状态",tools:"可用工具",actions:"操作",toolsCount:"{{count}} 个工具",noTools:"无工具"},status:{active:"可用",error:"错误",validating:"验证中",unvalidated:"未验证"},actions:{validate:"重新验证",copyCommand:"复制命令",edit:"编辑",view:"查看",delete:"删除配置"},source:{local:"本地",plugin:"插件"},modal:{addTitle:"添加MCP服务配置",editTitle:"编辑MCP服务配置",saving:"保存中...",saveConfig:"保存配置",addConfig:"添加配置"},form:{serverName:"服务名称 *",serverNamePlaceholder:"例如:playwright",nameNotEditable:"服务名称不可修改",nameRequired:"请输入服务名称",mcpType:"MCP 类型 *",stdioOption:"Stdio (本地进程)",httpOption:"HTTP (远程服务)",selectConnectionType:"选择 MCP 服务器的连接类型",configuration:"配置 * (JSON格式)",configInvalid:"配置格式不正确,请确保包含必需的 {{fields}} 字段,并且格式正确",configFormatError:"⚠️ 配置格式不正确,请确保包含必需的 {{fields}} 字段",requiredFields:"必需字段:",requiredFieldsStdio:"type, command 和 args",requiredFieldsHttp:"type 和 url",optionalFields:"可选字段:",typeField:'字符串,MCP 类型("stdio" 或 "http")',commandField:'字符串,执行命令(如 "npx", "uvx")',argsField:"数组,命令参数",urlField:"字符串,HTTP MCP 服务器的 URL",timeoutField:"数字,超时时间(毫秒)",autoApproveField:"数组,自动批准的操作"},errors:{validationFailed:"验证失败",networkError:"网络错误或服务不可用",deleteFailed:"删除配置失败",importFailed:"导入失败",saveFailed:"保存配置失败",copyFailed:"复制失败"},commandCopied:"命令已复制到剪贴板"},JN={title:"自定义命令",subtitle:"管理 Slash Commands",loading:"加载命令中...",searchPlaceholder:"搜索命令...",createButton:"新建命令",error:{loadFailed:"加载失败",cannotLoadCommands:"无法加载自定义命令",retry:"重试"},empty:{noCommands:"还没有自定义命令",noMatchingCommands:"未找到匹配的命令",adjustSearch:"尝试调整搜索条件或筛选器",createFirst:"创建你的第一个自定义 Slash Command"},table:{command:"命令",model:"模型",tools:"工具",createdAt:"创建时间",actions:"操作",inheritSettings:"继承对话设置",toolsCount:"{{count}} 个工具"},actions:{edit:"编辑",view:"查看",editCommand:"编辑命令",deleteCommand:"删除命令"},source:{local:"本地",plugin:"插件"},delete:{title:"删除命令",confirmMessage:'确定要删除命令 "/{{name}}" 吗?此操作无法撤销。',cancel:"取消",delete:"删除",deleting:"删除中..."}},eM={title:"插件管理",subtitle:"管理插件市场和已安装插件",tabs:{marketplaces:"插件市场",browse:"浏览插件",installed:"已安装插件"},marketplaces:{title:"插件市场",subtitle:"管理插件市场源",addButton:"添加市场",searchPlaceholder:"搜索市场...",noMarketplaces:"还没有配置插件市场",addFirst:"添加你的第一个插件市场",table:{marketplace:"市场",type:"类型",plugins:"插件数",lastSync:"最后同步",actions:"操作"},types:{git:"Git 仓库",github:"GitHub",local:"本地目录"},actions:{sync:"同步",syncing:"同步中...",edit:"编辑",delete:"删除"},addModal:{title:"添加市场",editTitle:"编辑市场",name:"市场名称",namePlaceholder:"例如:official-plugins",type:"来源类型",typePlaceholder:"选择来源类型",source:"来源",sourcePlaceholderGit:"Git 仓库 URL",sourcePlaceholderGithub:"owner/repo 或完整 URL",sourcePlaceholderLocal:"本地目录路径",branch:"分支(可选)",branchPlaceholder:"main",description:"描述(可选)",descriptionPlaceholder:"市场描述",cancel:"取消",add:"添加",adding:"添加中...",save:"保存",saving:"保存中..."},confirmDelete:'确定要删除市场 "{{name}}" 吗?该市场的所有插件都会被卸载。'},browse:{title:"浏览插件",subtitle:"从市场发现和安装插件",searchPlaceholder:"搜索插件...",filters:{allMarketplaces:"所有市场",allTypes:"所有类型",showOnlyInstalled:"只显示已安装"},noPlugins:"没有可用插件",noMarketplaces:"还没有添加市场",goAddMarketplace:"添加市场以浏览插件",noResults:"未找到插件",adjustSearch:"尝试调整搜索条件",card:{from:"来自",version:"v{{version}}",by:"作者",installed:"已安装",install:"安装",installing:"安装中...",viewDetails:"查看详情"},actions:{details:"详情",install:"安装",uninstall:"卸载"},confirmUninstall:'确定要卸载插件 "{{name}}" 吗?',components:{commands:"{{count}} 个命令",agents:"{{count}} 个 Agent",skills:"{{count}} 个技能",hooks:"{{count}} 个钩子",mcpServers:"{{count}} 个 MCP 服务"},detailModal:{title:"插件详情",version:"版本",author:"作者",marketplace:"市场",updated:"最后更新",components:"组件",files:"文件",readme:"说明文档",noReadme:"无说明文档",install:"安装插件",installing:"安装中...",installed:"已安装",close:"关闭"}},installed:{title:"已安装插件",subtitle:"管理已安装的插件",searchPlaceholder:"搜索已安装插件...",filters:{all:"全部",enabled:"已启用",disabled:"已禁用",allMarketplaces:"所有市场"},noPlugins:"还没有安装插件",goBrowse:"浏览插件以安装",noResults:"未找到匹配的插件",table:{plugin:"插件",marketplace:"市场",version:"版本",status:"状态",components:"组件",actions:"操作"},status:{enabled:"已启用",disabled:"已禁用"},actions:{details:"详情",viewDetails:"查看详情",enable:"启用",enabling:"启用中...",disable:"禁用",disabling:"禁用中...",uninstall:"卸载"},confirmUninstall:'确定要卸载插件 "{{name}}" 吗?',detailModal:{title:"插件详情",basicInfo:"基本信息",version:"版本",author:"作者",marketplace:"市场",installedAt:"安装时间",status:"状态",components:"组件",commands:"命令",agents:"Agents",skills:"技能",hooks:"钩子",mcpServers:"MCP 服务",none:"无",files:"插件文件",viewFile:"查看文件",close:"关闭",enable:"启用",disable:"禁用",uninstall:"卸载"},fileViewer:{title:"文件查看器",loading:"加载中...",error:"加载文件失败",close:"关闭"}},messages:{installSuccess:"插件安装成功,请刷新以使用新插件",installError:"安装插件失败",enableSuccess:"插件启用成功,请刷新以使用该插件",enableError:"启用插件失败",disableSuccess:"插件已成功禁用",disableError:"禁用插件失败",uninstallSuccess:"插件已成功卸载",uninstallError:"卸载插件失败",marketplaceAddSuccess:"市场添加成功",marketplaceAddError:"添加市场失败",marketplaceSyncSuccess:"市场同步成功",marketplaceSyncError:"同步市场失败",marketplaceRemoveSuccess:"市场移除成功",marketplaceRemoveError:"移除市场失败"},detail:{back:"返回",root:"根目录",noDescription:"无描述",version:"版本",author:"作者",license:"许可证",components:"组件",type:"类型",name:"名称",description:"描述",actions:"操作",viewEntryFile:"查看入口文件",browseDirectory:"浏览目录",noComponents:"未找到组件",loadFailed:"加载插件详情失败",componentTypes:{command:"命令",agent:"Agent",skill:"技能",hook:"钩子",mcp:"MCP 服务"}}},tM={title:"技能管理",subtitle:"管理你的专业技能库",loading:"加载技能中...",searchPlaceholder:"搜索技能...",createButton:"创建新技能",noSkills:"还没有技能",noSkillsSearch:"未找到匹配的技能",createFirst:"创建你的第一个专业技能",adjustSearch:"尝试调整搜索条件",card:{viewDetails:"查看详情",tools:"{{count}} 个工具",editSkill:"编辑技能",deleteSkill:"删除技能"},form:{name:"技能名称",namePlaceholder:"例如:网页开发专家",nameRequired:"请输入技能名称",description:"技能描述",descriptionPlaceholder:"描述这个技能的作用和适用场景...",systemPrompt:"系统提示词",systemPromptPlaceholder:"定义AI助手在启用此技能时的行为和专业知识...",tags:"标签",tagsPlaceholder:"添加相关标签,用逗号分隔",enabledTools:"启用的工具",selectTools:"选择工具",tools:"工具",allTools:"所有工具",save:"保存技能",cancel:"取消",saving:"保存中...",preview:{title:"预览",name:"技能名称",description:"技能描述",tools:"可用工具"}},modal:{createTitle:"创建新技能",editTitle:"编辑技能",saveSkill:"保存技能",updateSkill:"更新技能",close:"关闭"},delete:{title:"删除技能",confirmMessage:'确定要删除技能 "{{name}}" 吗?此操作无法撤销。',cancel:"取消",delete:"删除",deleting:"删除中..."},errors:{createFailed:"创建技能失败",updateFailed:"更新技能失败",deleteFailed:"删除技能失败",loadFailed:"加载技能失败"},success:{create:"技能创建成功",update:"技能更新成功",delete:"技能删除成功"},editor:{title:"技能编辑器",files:{title:"技能文件",addFile:"添加文件",createFile:"新建文件",uploadFile:"上传文件",noFiles:"还没有技能文件",fileActions:"文件操作",deleteFile:"删除文件",renameFile:"重命名文件",saveFile:"保存文件"},manifest:{title:"技能清单",name:"技能名称",description:"描述",version:"版本",author:"作者",license:"许可证",tags:"标签"},validation:{invalidYaml:"YAML 格式错误",missingFields:"缺少必需字段",invalidSkillName:"技能名称无效"}}},nM={title:"A2A Protocol 管理",subtitle:"管理 Agent-to-Agent 通信协议",tabs:{overview:"概览",keys:"API密钥",external:"外部Agent",tasks:"任务监控"},overview:{agentIdentity:"Agent Identity",a2aAgentId:"A2A Agent ID",copy:"复制",projectId:"项目ID",agentType:"Agent类型",notEnabled:"此项目尚未启用A2A功能",enableHint:"创建API密钥后自动启用",agentCard:"Agent Card",quickStats:"快速统计",apiKeys:"API密钥",externalAgents:"外部Agent",activeTasks:"活跃任务"},keys:{title:"API密钥管理",createButton:"创建密钥",noKeys:"还没有API密钥",createFirst:"创建第一个API密钥",active:"Active",description:"描述",createdAt:"创建时间",lastUsed:"最后使用",usageCount:"使用次数",show:"显示",hide:"隐藏",delete:"删除",deleteConfirm:"确定要删除这个API密钥吗?此操作不可撤销。",createModal:{title:"创建API密钥",descriptionLabel:"描述 *",descriptionPlaceholder:"例如:生产环境密钥",descriptionHint:"用于标识此API密钥的用途,最多100个字符",descriptionRequired:"描述不能为空",descriptionTooLong:"描述不能超过100个字符",importantNote:"重要提示:",importantHint:"API密钥创建后只会完整显示一次,请妥善保存。",cancel:"取消",creating:"创建中...",createKey:"创建密钥"},copySuccess:"已复制到剪贴板",copyFailed:"复制失败"},external:{title:"外部Agent配置",addButton:"添加Agent",noAgents:"还没有配置外部Agent",addFirst:"添加第一个外部Agent",name:"Agent名称",url:"URL",apiKey:"API密钥",description:"描述",enabled:"启用",disabled:"禁用",enable:"启用",disable:"禁用",edit:"编辑",delete:"删除",deleteConfirm:"确定要删除这个外部Agent吗?此操作不可撤销。",addModal:{title:"添加外部Agent",editTitle:"编辑外部Agent",nameLabel:"Agent名称 *",namePlaceholder:"例如:数据分析Agent",nameRequired:"Agent名称不能为空",nameTooLong:"Agent名称不能超过50个字符",urlLabel:"URL *",urlPlaceholder:"https://agent.example.com/a2a/uuid",urlRequired:"URL不能为空",urlInvalid:"URL格式无效",urlHint:"必须是完整的HTTP或HTTPS URL",apiKeyLabel:"API密钥 *",apiKeyRequired:"API密钥不能为空",apiKeyPlaceholder:"agt_proj_external_key_here",descriptionLabel:"描述",descriptionPlaceholder:"可选的Agent功能描述",enabledLabel:"启用此Agent",cancel:"取消",addAgent:"添加Agent",saveChanges:"保存修改"},errors:{createFailed:"创建外部Agent失败",updateFailed:"更新外部Agent失败",deleteFailed:"删除外部Agent失败"},success:{create:"外部Agent创建成功",update:"外部Agent更新成功",delete:"外部Agent删除成功"}},tasks:{title:"任务监控",noTasks:"还没有任务记录",notEnabled:"需要先启用A2A功能",refresh:"刷新",status:{pending:"等待中",running:"运行中",completed:"已完成",failed:"失败",canceled:"已取消"},taskId:"任务ID",createdAt:"创建时间",startedAt:"开始时间",completedAt:"完成时间",cancel:"取消任务",cancelConfirm:"确定要取消这个任务吗?",cancelSuccess:"任务已取消",cancelFailed:"取消任务失败"},errors:{createKeyFailed:"创建API密钥失败",deleteKeyFailed:"删除API密钥失败",loadConfigFailed:"加载A2A配置失败",updateConfigFailed:"更新A2A配置失败",loadMappingFailed:"加载Agent映射失败",loadCardFailed:"加载Agent Card失败",loadTasksFailed:"加载任务列表失败"},success:{createKey:"API密钥创建成功",deleteKey:"API密钥删除成功",updateConfig:"A2A配置更新成功"}},aM={docs:IN,nav:HN,version:BN,footer:qN,login:$N,landing:VN,agents:GN,projects:YN,chat:KN,dashboard:XN,settings:QN,analytics:ZN,mcp:WN,commands:JN,plugins:eM,skills:tM,a2a:nM},iM="AgentStudio",sM="选择一个智能助手开始工作",rM="正在加载...",oM="可用的智能助手",lM="已禁用的助手",cM="共 {{count}} 个助手",uM="创建自定义助手",dM="自定义助手功能即将推出!",fM="还没有可用的智能助手",hM="启用一些内置助手或创建自己的自定义助手开始使用",pM="管理智能助手",mM="开始使用",gM="编辑助手",vM="禁用助手",yM="启用助手",bM="已禁用",_M="启用助手",SM={slides:"幻灯片",chat:"对话","claude-code":"Claude Code"},xM={toggleFailed:"操作失败,请重试"},wM={title:iM,subtitle:sM,loading:rM,availableAgents:oM,disabledAgents:lM,agentCount:cM,createCustomAgent:uM,customAgentComingSoon:dM,noAgentsTitle:fM,noAgentsDescription:hM,manageAgents:pM,startUsing:mM,editAgent:gM,disableAgent:vM,enableAgent:yM,disabledStatus:bM,enableAgentButton:_M,componentTypes:SM,errors:xM},CM={enabled:"已启用",disabled:"已禁用"},kM={name:"项目名称",nameRequired:"项目名称 *",namePlaceholder:"输入项目名称",description:"项目描述",descriptionPlaceholder:"简单描述这个项目的用途...",directory:"项目目录",directoryNote:"项目将在此目录下创建一个新文件夹",agentType:"选择助手类型 *",agentTypePlaceholder:"选择一个助手类型"},AM={name:"助手名称",namePlaceholder:"输入助手名称",description:"助手描述",descriptionPlaceholder:"描述这个助手的功能...",systemPrompt:"系统提示",systemPromptPlaceholder:"输入系统提示词...",tools:"可用工具",selectTools:"选择工具"},EM={editTitle:"编辑命令",createTitle:"新建命令",formMode:"表单",codeMode:"代码",saveChanges:"保存更改",createCommand:"创建命令",nameLabel:"命令名称",nameHint:"只能包含字母、数字、下划线和短划线",modelLabel:"指定模型",inheritModel:"继承对话设置",modelHint:"为此命令指定特定的 AI 模型。",namespaceLabel:"命名空间",namespaceHint:"用于组织命令,可以包含 / 分隔符",argumentHintLabel:"参数提示",argumentHintHint:"在自动完成时显示的参数提示",descriptionLabel:"描述",descriptionPlaceholder:"优化代码性能和可读性",descriptionHint:"命令的简短描述,如果不填写将使用内容的第一行",allowedToolsLabel:"允许的工具",selectTools:"选择工具",regularToolsCount:"常规工具 {{count}} 个",mcpToolsCount:"MCP工具 {{count}} 个",allowedToolsHint:"留空则继承对话权限",contentLabel:"命令内容",contentPlaceholder:`分析这段代码的性能问题并提供优化建议:
90
90