cli-jaw 1.7.34 → 1.7.36

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 (169) hide show
  1. package/dist/bin/cli-jaw.js +5 -1
  2. package/dist/bin/cli-jaw.js.map +1 -1
  3. package/dist/bin/commands/dashboard.js +78 -0
  4. package/dist/bin/commands/dashboard.js.map +1 -0
  5. package/dist/lib/quota-copilot.js +5 -0
  6. package/dist/lib/quota-copilot.js.map +1 -1
  7. package/dist/src/agent/args.js +2 -4
  8. package/dist/src/agent/args.js.map +1 -1
  9. package/dist/src/agent/events.js +43 -1
  10. package/dist/src/agent/events.js.map +1 -1
  11. package/dist/src/manager/constants.js +9 -0
  12. package/dist/src/manager/constants.js.map +1 -0
  13. package/dist/src/manager/metadata.js +35 -0
  14. package/dist/src/manager/metadata.js.map +1 -0
  15. package/dist/src/manager/proxy.js +134 -0
  16. package/dist/src/manager/proxy.js.map +1 -0
  17. package/dist/src/manager/scan.js +111 -0
  18. package/dist/src/manager/scan.js.map +1 -0
  19. package/dist/src/manager/server.js +85 -0
  20. package/dist/src/manager/server.js.map +1 -0
  21. package/dist/src/manager/types.js +2 -0
  22. package/dist/src/manager/types.js.map +1 -0
  23. package/dist/src/routes/quota.js +134 -3
  24. package/dist/src/routes/quota.js.map +1 -1
  25. package/dist/src/routes/settings.js +5 -4
  26. package/dist/src/routes/settings.js.map +1 -1
  27. package/package.json +6 -1
  28. package/public/css/chat.css +27 -0
  29. package/public/css/diagram.css +48 -2
  30. package/public/dist/assets/api-Cl2oljO1.js +1 -0
  31. package/public/dist/assets/{index-wUWc2M5K.js → app-58Z9R8qM.js} +4 -4
  32. package/public/dist/assets/app-DWH_NZRE.css +1 -0
  33. package/public/dist/assets/architecture-YZFGNWBL-D4g_rKok.js +1 -0
  34. package/public/dist/assets/architectureDiagram-Q4EWVU46-DVbii_Pt.js +1 -0
  35. package/public/dist/assets/blockDiagram-DXYQGD6D-BStipezp.js +1 -0
  36. package/public/dist/assets/c4Diagram-AHTNJAMY-BYno4Snw.js +1 -0
  37. package/public/dist/assets/classDiagram-6PBFFD2Q-QzqRo_9X.js +1 -0
  38. package/public/dist/assets/classDiagram-v2-HSJHXN6E-CchGqJUH.js +1 -0
  39. package/public/dist/assets/{constants-BU8a_R5s.js → constants-fUXYKkoK.js} +1 -1
  40. package/public/dist/assets/cose-bilkent-S5V4N54A-TJS1iaqp.js +1 -0
  41. package/public/dist/assets/dagre-KV5264BT-C_DCJZ7t.js +1 -0
  42. package/public/dist/assets/diagram-5BDNPKRD-CKix1NRO.js +1 -0
  43. package/public/dist/assets/diagram-G4DWMVQ6-CoDTDNnx.js +1 -0
  44. package/public/dist/assets/diagram-MMDJMWI5-DYx0PwrY.js +1 -0
  45. package/public/dist/assets/diagram-TYMM5635-Bx1779dG.js +1 -0
  46. package/public/dist/assets/{employees-p53cgGmH.js → employees-CnA_uLbJ.js} +1 -1
  47. package/public/dist/assets/erDiagram-SMLLAGMA-C0INYE-d.js +1 -0
  48. package/public/dist/assets/flowDiagram-DWJPFMVM-DfQIgEdB.js +1 -0
  49. package/public/dist/assets/ganttDiagram-T4ZO3ILL-B8o_Hblo.js +1 -0
  50. package/public/dist/assets/gitGraph-7Q5UKJZL-DBMf1L33.js +1 -0
  51. package/public/dist/assets/gitGraphDiagram-UUTBAWPF-B2nqnLHi.js +1 -0
  52. package/public/dist/assets/idb-cache-C5ilDI6r.js +1 -0
  53. package/public/dist/assets/info-OMHHGYJF-C3gtg5Od.js +1 -0
  54. package/public/dist/assets/infoDiagram-42DDH7IO-Brz9iwrL.js +1 -0
  55. package/public/dist/assets/ishikawaDiagram-UXIWVN3A-C0YeQJh0.js +1 -0
  56. package/public/dist/assets/journeyDiagram-VCZTEJTY-BypDthzR.js +1 -0
  57. package/public/dist/assets/kanban-definition-6JOO6SKY-LkyDUgUP.js +1 -0
  58. package/public/dist/assets/katex-BL3z5Bli.js +1 -0
  59. package/public/dist/assets/manager-D4L7R_7R.css +1 -0
  60. package/public/dist/assets/manager-DtTAKPgY.js +9 -0
  61. package/public/dist/assets/memory-BN3grLR7.js +1 -0
  62. package/public/dist/assets/{memory-C2i7ZIvv.js → memory-RKpZbPTW.js} +1 -1
  63. package/public/dist/assets/mermaid.core-D6PDYVgC.js +1 -0
  64. package/public/dist/assets/mindmap-definition-QFDTVHPH-rV1Hipx-.js +1 -0
  65. package/public/dist/assets/packet-4T2RLAQJ-BuK6y2B7.js +1 -0
  66. package/public/dist/assets/pie-ZZUOXDRM-x8CPu972.js +1 -0
  67. package/public/dist/assets/pieDiagram-DEJITSTG-DpxKH4h4.js +1 -0
  68. package/public/dist/assets/quadrantDiagram-34T5L4WZ-BkRLuqoa.js +1 -0
  69. package/public/dist/assets/radar-PYXPWWZC-CsTAKlcV.js +1 -0
  70. package/public/dist/assets/render-D9bnLVR_.js +30 -0
  71. package/public/dist/assets/requirementDiagram-MS252O5E-BdqZlJ0O.js +1 -0
  72. package/public/dist/assets/sankeyDiagram-XADWPNL6-b3SwMAxC.js +1 -0
  73. package/public/dist/assets/sequenceDiagram-FGHM5R23-BmjI6n81.js +1 -0
  74. package/public/dist/assets/{settings-BUEiZgkm.js → settings-B8oUfDm4.js} +8 -8
  75. package/public/dist/assets/settings-DvGS6X_5.js +1 -0
  76. package/public/dist/assets/{skills-CSuSbBWa.js → skills-CHB_WsxF.js} +1 -1
  77. package/public/dist/assets/skills-WhnGcvvJ.js +1 -0
  78. package/public/dist/assets/{slash-commands-D-v0DlbY.js → slash-commands-CbsN2LqT.js} +1 -1
  79. package/public/dist/assets/slash-commands-DOh3zvJ7.js +1 -0
  80. package/public/dist/assets/stateDiagram-FHFEXIEX-DRsIDvF8.js +1 -0
  81. package/public/dist/assets/stateDiagram-v2-QKLJ7IA2-IJMg9fYC.js +1 -0
  82. package/public/dist/assets/timeline-definition-GMOUNBTQ-B-0E30rh.js +1 -0
  83. package/public/dist/assets/treeView-SZITEDCU-CRgtpI0K.js +1 -0
  84. package/public/dist/assets/treemap-W4RFUUIX-DB5B-smF.js +1 -0
  85. package/public/dist/assets/ui-Cg8zuDaT.js +131 -0
  86. package/public/dist/assets/ui-HckqJaBX.js +1 -0
  87. package/public/dist/assets/{vendor-mermaid-UktBx7L0.js → vendor-mermaid-DHVxHqbi.js} +6 -6
  88. package/public/dist/assets/{vendor-render-D2YP6GiF.js → vendor-render-BaFgDHeH.js} +1 -1
  89. package/public/dist/assets/vennDiagram-DHZGUBPP-BBd9TC4D.js +1 -0
  90. package/public/dist/assets/wardley-RL74JXVD-BzCH0WF9.js +1 -0
  91. package/public/dist/assets/wardleyDiagram-NUSXRM2D-DgenAPEz.js +1 -0
  92. package/public/dist/assets/ws-DSntry14.js +14 -0
  93. package/public/dist/assets/xychartDiagram-5P7HB3ND-BmvcJ6sg.js +1 -0
  94. package/public/dist/index.html +2 -2
  95. package/public/dist/manager/index.html +14 -0
  96. package/public/js/diagram/iframe-renderer.ts +196 -77
  97. package/public/js/features/process-block.ts +2 -2
  98. package/public/js/features/settings-cli-status.ts +20 -1
  99. package/public/js/features/settings-types.ts +1 -1
  100. package/public/js/render.ts +16 -3
  101. package/public/js/ui.ts +42 -0
  102. package/public/js/ws.ts +20 -4
  103. package/public/manager/index.html +13 -0
  104. package/public/manager/src/App.tsx +185 -0
  105. package/public/manager/src/InstancePreview.tsx +72 -0
  106. package/public/manager/src/api.ts +8 -0
  107. package/public/manager/src/main.tsx +9 -0
  108. package/public/manager/src/preview.ts +35 -0
  109. package/public/manager/src/styles.css +309 -0
  110. package/public/manager/src/types.ts +44 -0
  111. package/public/dist/assets/api-COrKYKcO.js +0 -1
  112. package/public/dist/assets/architecture-YZFGNWBL-B2Nc8YC_.js +0 -1
  113. package/public/dist/assets/architectureDiagram-Q4EWVU46-EML5rtmP.js +0 -1
  114. package/public/dist/assets/blockDiagram-DXYQGD6D-Ds9bBl-N.js +0 -1
  115. package/public/dist/assets/c4Diagram-AHTNJAMY-BVpUT3Om.js +0 -1
  116. package/public/dist/assets/classDiagram-6PBFFD2Q-DG8IYzhr.js +0 -1
  117. package/public/dist/assets/classDiagram-v2-HSJHXN6E-B5j0d5gs.js +0 -1
  118. package/public/dist/assets/cose-bilkent-S5V4N54A-kNrexiHE.js +0 -1
  119. package/public/dist/assets/dagre-KV5264BT-Ylb1W0yQ.js +0 -1
  120. package/public/dist/assets/diagram-5BDNPKRD-CPxqMVrp.js +0 -1
  121. package/public/dist/assets/diagram-G4DWMVQ6-Dm1xfj8I.js +0 -1
  122. package/public/dist/assets/diagram-MMDJMWI5-VsjfxFEK.js +0 -1
  123. package/public/dist/assets/diagram-TYMM5635-CrMZri_r.js +0 -1
  124. package/public/dist/assets/erDiagram-SMLLAGMA-Felxus25.js +0 -1
  125. package/public/dist/assets/flowDiagram-DWJPFMVM-kQrkSkw2.js +0 -1
  126. package/public/dist/assets/ganttDiagram-T4ZO3ILL-CulD-LkD.js +0 -1
  127. package/public/dist/assets/gitGraph-7Q5UKJZL-DbbbZYM5.js +0 -1
  128. package/public/dist/assets/gitGraphDiagram-UUTBAWPF-oTUYJsKL.js +0 -1
  129. package/public/dist/assets/idb-cache-C7z4qE00.js +0 -1
  130. package/public/dist/assets/index-CLKLbGzn.css +0 -1
  131. package/public/dist/assets/info-OMHHGYJF-auV0JwD8.js +0 -1
  132. package/public/dist/assets/infoDiagram-42DDH7IO-B2XOJXrL.js +0 -1
  133. package/public/dist/assets/ishikawaDiagram-UXIWVN3A-CsmszxH_.js +0 -1
  134. package/public/dist/assets/journeyDiagram-VCZTEJTY-MmzEBROj.js +0 -1
  135. package/public/dist/assets/kanban-definition-6JOO6SKY-DcbxzAKu.js +0 -1
  136. package/public/dist/assets/katex-Bh3QhMKY.js +0 -1
  137. package/public/dist/assets/memory-6zLEr-qI.js +0 -1
  138. package/public/dist/assets/mermaid.core-CoRN09Dx.js +0 -1
  139. package/public/dist/assets/mindmap-definition-QFDTVHPH-CMqZWcUf.js +0 -1
  140. package/public/dist/assets/packet-4T2RLAQJ-C_PFKo5G.js +0 -1
  141. package/public/dist/assets/pie-ZZUOXDRM-CcqLxwbG.js +0 -1
  142. package/public/dist/assets/pieDiagram-DEJITSTG-C9r3BQ9f.js +0 -1
  143. package/public/dist/assets/quadrantDiagram-34T5L4WZ-Du4pEL4T.js +0 -1
  144. package/public/dist/assets/radar-PYXPWWZC-BWOF5omS.js +0 -1
  145. package/public/dist/assets/render-CulTuvJs.js +0 -30
  146. package/public/dist/assets/requirementDiagram-MS252O5E-Dyz9eEFP.js +0 -1
  147. package/public/dist/assets/sankeyDiagram-XADWPNL6-DLgUCKs2.js +0 -1
  148. package/public/dist/assets/sequenceDiagram-FGHM5R23-c0nA9K_Q.js +0 -1
  149. package/public/dist/assets/settings-BhrOslae.js +0 -1
  150. package/public/dist/assets/skills-CgwxEvFx.js +0 -1
  151. package/public/dist/assets/slash-commands-Bo8jvBfI.js +0 -1
  152. package/public/dist/assets/stateDiagram-FHFEXIEX-D2aVOdby.js +0 -1
  153. package/public/dist/assets/stateDiagram-v2-QKLJ7IA2-DuwdzBLR.js +0 -1
  154. package/public/dist/assets/timeline-definition-GMOUNBTQ-PuaZYI31.js +0 -1
  155. package/public/dist/assets/treeView-SZITEDCU-D8mODguI.js +0 -1
  156. package/public/dist/assets/treemap-W4RFUUIX-DqqBuiM1.js +0 -1
  157. package/public/dist/assets/ui-4JiRyxJy.js +0 -131
  158. package/public/dist/assets/ui-Dx0MwI23.js +0 -1
  159. package/public/dist/assets/vennDiagram-DHZGUBPP-4blQ8E1z.js +0 -1
  160. package/public/dist/assets/wardley-RL74JXVD-Dn1IRCw2.js +0 -1
  161. package/public/dist/assets/wardleyDiagram-NUSXRM2D-OUBAKNJu.js +0 -1
  162. package/public/dist/assets/ws-DKtFfZsY.js +0 -14
  163. package/public/dist/assets/xychartDiagram-5P7HB3ND-CyZD7ovz.js +0 -1
  164. /package/public/dist/assets/{api-DygAf_G_.js → api-CnBOYa3F.js} +0 -0
  165. /package/public/dist/assets/{idb-cache-DbK81tgv.js → idb-cache-CjnC_K0x.js} +0 -0
  166. /package/public/dist/assets/{locale-CxI5nTcf.js → locale-heAuYK-3.js} +0 -0
  167. /package/public/dist/assets/{rolldown-runtime-FhOqtrmT.js → rolldown-runtime-DE9SaGGd.js} +0 -0
  168. /package/public/dist/assets/{state-O6NVkWcL.js → state-CPF7TImo.js} +0 -0
  169. /package/public/dist/assets/{vendor-icons-Bs4t7RP2.js → vendor-icons-D2l6ddC0.js} +0 -0
@@ -0,0 +1,30 @@
1
+ import{A as e,C as t,D as n,E as r,F as i,I as a,M as o,N as s,O as c,P as l,S as u,T as d,_ as f,b as ee,j as p,k as m,u as te,v as ne,w as h,x as re,y as ie}from"./vendor-render-BaFgDHeH.js";import{r as ae}from"./api-CnBOYa3F.js";import{Q as g,Z as _}from"./vendor-mermaid-DHVxHqbi.js";import{A as oe,B as se,C as ce,D as le,E as ue,F as de,G as fe,H as pe,I as me,J as he,K as ge,L as _e,M as ve,N as ye,O as be,P as xe,Q as Se,R as Ce,S as we,T as Te,U as Ee,V as De,W as Oe,X as ke,Y as Ae,Z as je,_ as Me,a as Ne,b as Pe,c as Fe,d as Ie,f as Le,g as Re,h as ze,i as Be,j as Ve,k as He,l as Ue,m as We,n as Ge,o as Ke,p as qe,q as Je,r as Ye,s as Xe,t as Ze,u as Qe,v as $e,w as et,x as tt,y as nt,z as rt}from"./vendor-icons-D2l6ddC0.js";var v=`ko`,y={},b={};async function it(){let e=null;try{e=localStorage.getItem(`claw_locale`)}catch{}if(!e){let t=(navigator.language||`ko`).split(/[-_]/)[0].toLowerCase();e=[`en`,`ko`].includes(t)?t:`ko`}b=await x(`ko`),y=e===`ko`?b:await x(e),v=e,at()}async function x(e){try{let{api:t}=await _(async()=>{let{api:e}=await import(`./api-Cl2oljO1.js`);return{api:e}},[]);return await t(`/api/i18n/${e}`)||{}}catch{return{}}}function S(e,t={}){let n=y[e]??b[e]??e;for(let[e,r]of Object.entries(t))n=n.replaceAll(`{${e}}`,String(r));return n}function at(){document.querySelectorAll(`[data-i18n]`).forEach(e=>{let t=e.getAttribute(`data-i18n`);t&&(e.textContent=S(t))}),document.querySelectorAll(`[data-i18n-placeholder]`).forEach(e=>{let t=e.getAttribute(`data-i18n-placeholder`);t&&(e.placeholder=S(t))}),document.querySelectorAll(`[data-i18n-title]`).forEach(e=>{let t=e.getAttribute(`data-i18n-title`);t&&(e.title=S(t))}),document.querySelectorAll(`[data-i18n-aria]`).forEach(e=>{let t=e.getAttribute(`data-i18n-aria`);t&&e.setAttribute(`aria-label`,S(t))})}async function ot(e){if(e!==v){y=e===`ko`?b:await x(e),v=e;try{localStorage.setItem(`claw_locale`,e)}catch{}at();try{let{loadEmployees:e}=await _(async()=>{let{loadEmployees:e}=await import(`./employees-CnA_uLbJ.js`);return{loadEmployees:e}},[]);e()}catch{}try{let{loadSkills:e}=await _(async()=>{let{loadSkills:e}=await import(`./skills-WhnGcvvJ.js`);return{loadSkills:e}},[]);e()}catch{}try{let{loadCommands:e}=await _(async()=>{let{loadCommands:e}=await import(`./slash-commands-DOh3zvJ7.js`);return{loadCommands:e}},[]);e()}catch{}try{let{loadSettings:e}=await _(async()=>{let{loadSettings:e}=await import(`./settings-DvGS6X_5.js`);return{loadSettings:e}},[]);e()}catch{}}}function st(){return v}function ct(e,t={}){let n=new URL(e,location.origin);return n.searchParams.has(`locale`)||n.searchParams.set(`locale`,v),fetch(n.toString(),t)}var lt=`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2 12c0 0 2-4 6-4 1 0 2 .5 3 1l3-6c0 0 1 5 3 7 1.5 1.5 5 2 5 2s-1 4-5 4c-1 0-2-.3-3-.8L12 18c0 0-2-1-4-1-4 0-6-5-6-5z"/><circle cx="17" cy="11" r="0.5" fill="currentColor" stroke="none"/><path d="M7 12l1 2"/><path d="M9.5 12l1 2"/></svg>`,C=14,ut=16;function w(e,t=ut){return Se(e,{size:t})}var T={check:w(De),error:w(rt),warning:w(Be),skip:w(Fe),tool:w(Ye),thinking:w(we),search:w(Ie),web:w(ve),exec:w(Ze),compacting:w(nt),plan:w(Pe),brain:w(Je),heartPulse:w(oe),lock:w(ce),lockOpen:w(et),key:w(le),settings:w(Ue),file:w(de),trash:w(Ne),lightbulb:w(ue),refresh:w(qe),mic:w(tt),clipboard:w(Ce),robot:w(he),palette:w($e),link:w(Te),salute:w(Ve),shark:lt,user:w(se),paperclip:w(Me),save:w(Le),gamepad:w(ye),house:w(be),radio:w(We),folder:w(xe),pencil:w(Re),chart:w(ge),hourglass:w(He),target:w(Ke),ban:w(Ae),play:w(ze),stop:w(Xe),close:w(Ge,C),send:w(Qe),copy:w(_e,C),download:w(me,C),checkSimple:w(fe,C),chevronLeft:w(Ee,C),chevronRight:w(pe,C),chevronDown:w(Oe,C),arrowLeft:w(je,C),arrowRight:w(ke,C)},dt={"✅":`check`,"❌":`error`,"🔧":`tool`,"⏭":`skip`,"🧠":`brain`,"💓":`heartPulse`,"🔒":`lock`,"🔓":`lockOpen`,"🔑":`key`,"⚙":`settings`,"⚙️":`settings`,"📄":`file`,"🗑":`trash`,"🗑️":`trash`,"⚠":`warning`,"⚠️":`warning`,"💡":`lightbulb`,"🦈":`shark`,"👤":`user`,"💭":`thinking`,"🔍":`search`,"🌐":`web`,"⚡":`exec`,"🗜":`compacting`,"🗜️":`compacting`,"📝":`plan`,"📑":`clipboard`,"🤖":`robot`,"📋":`clipboard`,"🔄":`refresh`,"🎨":`palette`,"🎤":`mic`,"🔗":`link`,"🫡":`salute`,"📎":`paperclip`,"💾":`save`,"🎮":`gamepad`,"🏠":`house`,"📡":`radio`,"📂":`folder`,"✏️":`pencil`,"📊":`chart`,"🎙️":`mic`,"⏳":`hourglass`,"🎯":`target`,"📨":`send`,"🚫":`ban`,"▶":`play`};function ft(e){let t=dt[e];return t?T[t]:e}function pt(e){return e===`✅`?`done`:e===`❌`?`error`:null}function mt(e=document.body){let t=e.querySelectorAll(`[data-icon]`);for(let e of t){let t=e.dataset.icon;t&&T[t]&&(e.innerHTML=T[t],e.classList.add(`icon-hydrated`))}}function ht(e){let t=[],n=e.replace(/```[\s\S]*?```/g,e=>(t.push(e),`\x00P${t.length-1}\x00`)).replace(/`[^`]+`/g,e=>(t.push(e),`\x00P${t.length-1}\x00`));return n=n.replace(/([\p{P}])\*\*(?=[^\s\p{P}])/gu,(e,t)=>t===`*`?e:t+`​**`),n=n.replace(/\x00P(\d+)\x00/g,(e,n)=>t[Number(n)]),n}var E=0;function gt(e){let t=new Map;return{text:e.replace(/^ {0,3}(`{3,}|~{3,})[^\n]*\n[\s\S]*?\n {0,3}\1[ \t]*$/gm,e=>{let n=`\x00FENCE-${E++}\x00`;return t.set(n,e),n}),fences:t}}function _t(e,t){for(let[n,r]of t)e=e.replace(n,()=>r);return e}function vt(e,t=!1){let n=[],r=``,i=0;for(;i<e.length;){let a=e.indexOf(`<svg`,i);if(a===-1){r+=e.slice(i);break}let o=e[a+4];if(o&&!/[\s\/>]/.test(o)){r+=e.slice(i,a+4),i=a+4;continue}r+=e.slice(i,a);let s=0,c=a,l=!1;for(;c<e.length;){let t=e.indexOf(`<svg`,c+1),o=e.indexOf(`</svg>`,c+(c===a?0:1));if(o===-1)break;if(t!==-1&&t<o){let n=e[t+4];n&&/[\s\/>]/.test(n)&&s++,c=t+4}else if(s===0){let t=o+6,s=e.slice(a,t),c=E++,u=`\n\n<div data-jaw-svg="${c}"></div>\n\n`;n.push({id:c,index:a,length:s.length,svg:s,kind:`complete`,placeholder:u}),r+=u,i=t,l=!0;break}else s--,c=o+6}if(!l){let o=E++;if(t){let t=e.slice(a),s=`\n\n<div data-jaw-svg="${o}" data-jaw-kind="partial"></div>\n\n`;n.push({id:o,index:a,length:t.length,svg:``,kind:`partial`,placeholder:s}),r+=s,i=e.length}else{let t=`\n\n<div data-jaw-svg="${o}" data-jaw-kind="error"></div>\n\n`,s=e.slice(a),c=s.search(/\n\s*\n/),l=c===-1?s.length:c;n.push({id:o,index:a,length:l,svg:``,kind:`error`,placeholder:t}),r+=t,i=a+l}}}return{text:r,blocks:n}}l.registerLanguage(`javascript`,s),l.registerLanguage(`js`,s),l.registerLanguage(`typescript`,o),l.registerLanguage(`ts`,o),l.registerLanguage(`python`,p),l.registerLanguage(`py`,p),l.registerLanguage(`bash`,e),l.registerLanguage(`shell`,m),l.registerLanguage(`sh`,m),l.registerLanguage(`json`,c),l.registerLanguage(`css`,n),l.registerLanguage(`xml`,r),l.registerLanguage(`html`,r),l.registerLanguage(`markdown`,d),l.registerLanguage(`md`,d),l.registerLanguage(`yaml`,h),l.registerLanguage(`yml`,h),l.registerLanguage(`sql`,t),l.registerLanguage(`rust`,u),l.registerLanguage(`rs`,u),l.registerLanguage(`go`,re),l.registerLanguage(`java`,ee),l.registerLanguage(`cpp`,ie),l.registerLanguage(`c`,ie),l.registerLanguage(`diff`,ne),l.registerLanguage(`plaintext`,f),l.registerLanguage(`text`,f);var D=null,O=Promise.resolve();function yt(){return document.documentElement.getAttribute(`data-theme`)===`light`?{primaryColor:`#e2e8f0`,primaryTextColor:`#1a202c`,primaryBorderColor:`#a0aec0`,lineColor:`#718096`,secondaryColor:`#ebf8ff`,tertiaryColor:`#f7fafc`,background:`transparent`,mainBkg:`#e2e8f0`,nodeBorder:`#a0aec0`,clusterBkg:`#f7fafc`,clusterBorder:`#cbd5e0`,titleColor:`#1a202c`,edgeLabelBackground:`#f7fafc`}:{primaryColor:`#2d3748`,primaryTextColor:`#e2e8f0`,primaryBorderColor:`#4a5568`,lineColor:`#718096`,secondaryColor:`#1a365d`,tertiaryColor:`#1a202c`,background:`transparent`,mainBkg:`#2d3748`,nodeBorder:`#4a5568`,clusterBkg:`#1a202c`,clusterBorder:`#2d3748`,titleColor:`#e2e8f0`,edgeLabelBackground:`#1a202c`}}async function k(){return D||(D=await _(()=>import(`./mermaid.core-D6PDYVgC.js`),[]),D.default.setParseErrorHandler(()=>{})),D.default}function A(){D.default.initialize({startOnLoad:!1,theme:`base`,htmlLabels:!1,themeVariables:yt(),securityLevel:`strict`,suppressErrorRendering:!0})}function j(e){let t=g.sanitize(e,{USE_PROFILES:{svg:!0,svgFilters:!0},FORBID_TAGS:[`script`,`iframe`,`object`,`embed`,`form`,`input`,`foreignObject`,`animate`,`set`,`animateTransform`,`animateMotion`],FORBID_ATTR:[`onerror`,`onclick`,`onload`,`onmouseover`,`onfocus`,`onblur`,`background`]}),n=document.createElement(`div`);n.innerHTML=t;for(let e of n.querySelectorAll(`style`)){let t=e.textContent||``;t=t.replace(/@import\b[^;]*;?/gi,`/* stripped */`),t=t.replace(/@font-face\s*\{[^}]*\}/gi,`/* stripped */`),t=t.replace(/url\s*\(\s*(?!['"]?#)[^)]*\)/gi,`none`),e.textContent=t}return n.innerHTML}function M(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#39;`)}function N(e){return g.sanitize(e,{USE_PROFILES:{html:!0,svg:!0,svgFilters:!0},FORBID_TAGS:[`script`,`style`,`iframe`,`object`,`embed`,`form`,`input`,`foreignObject`,`animate`,`set`,`animateTransform`,`animateMotion`],FORBID_ATTR:[`onerror`,`onclick`,`onload`,`onmouseover`,`onfocus`,`onblur`,`background`],ADD_TAGS:[`use`],ADD_ATTR:[`aria-hidden`,`xmlns`,`viewBox`,`role`,`aria-label`,`data-jaw-svg`,`data-jaw-kind`,`data-mermaid-code-raw`]})}var bt=`http://www.w3.org/2000/svg`,xt=new Set([`a`,`area`,`link`]);g.addHook(`afterSanitizeAttributes`,e=>{let t=e.tagName.toLowerCase();if(e.namespaceURI===bt||!xt.has(t)){let t=e.getAttribute(`href`)||``;t&&!t.startsWith(`#`)&&e.removeAttribute(`href`)}let n=e.getAttributeNS(`http://www.w3.org/1999/xlink`,`href`)||e.getAttribute(`xlink:href`)||``;if(n&&!n.startsWith(`#`)&&(e.removeAttributeNS(`http://www.w3.org/1999/xlink`,`href`),e.removeAttribute(`xlink:href`)),t===`image`||t===`feimage`){let t=e.getAttribute(`src`)||``;t&&!t.startsWith(`#`)&&e.removeAttribute(`src`)}let r=[`fill`,`stroke`,`filter`,`mask`,`clip-path`,`marker-start`,`marker-mid`,`marker-end`,`cursor`];if(e.hasAttribute(`style`)){let t=e.style?.cssText||``;if(/url\s*\(/i.test(t)){let n=t.replace(/url\s*\(\s*(?!['"]?#)[^)]*\)/gi,`none`);e.style.cssText=n}}for(let t of r)if(e.hasAttribute(t)){let n=e.getAttribute(t)||``;if(/url\s*\(/i.test(n)){let r=n.replace(/url\s*\(\s*(?!['"]?#)[^)]*\)/gi,`none`);e.setAttribute(t,r)}}});var St=/["'](?:subtasks|employee_config|agent_phases|orchestration_plan)["']\s*:/;function P(e){let t=e.replace(/```json\n([\s\S]*?)\n```/g,(e,t)=>St.test(t)?``:e);return t=t.replace(/\{[^{}]*"subtasks"\s*:\s*\[[\s\S]*?\]\s*\}/g,``).trim(),t}function Ct(e){let t=[],n=[],r=e.replace(/```[\s\S]*?```/g,e=>(n.push(e),`\x00C${n.length-1}\x00`)).replace(/`[^`]+`/g,e=>(n.push(e),`\x00C${n.length-1}\x00`));return r=r.replace(/\$\$([\s\S]+?)\$\$/g,(e,n)=>(t.push({tex:n.trim(),displayMode:!0}),`\x00MATH-${t.length-1}\x00`)),r=r.replace(/\\\[([\s\S]+?)\\\]/g,(e,n)=>(t.push({tex:n.trim(),displayMode:!0}),`\x00MATH-${t.length-1}\x00`)),r=r.replace(/(?<!\$)\$(?!\$)([^\n$]+?)\$(?!\$)/g,(e,n)=>(t.push({tex:n.trim(),displayMode:!1}),`\x00MATH-${t.length-1}\x00`)),r=r.replace(/\\\((.+?)\\\)/g,(e,n)=>(t.push({tex:n.trim(),displayMode:!1}),`\x00MATH-${t.length-1}\x00`)),r=r.replace(/\x00C(\d+)\x00/g,(e,t)=>n[Number(t)]),{text:r,blocks:t}}function wt(e,t,n=!1){return e.replace(/\x00MATH-(\d+)\x00/g,(e,r)=>{let i=t[Number(r)];if(!i)return`<code title="math placeholder error">[math error]</code>`;if(n)return i.displayMode?`<div class="math-placeholder">${M(i.tex)}</div>`:`<code class="math-placeholder">${M(i.tex)}</code>`;try{return te.renderToString(i.tex,{displayMode:i.displayMode,throwOnError:!1})}catch{return i.displayMode?`<pre><code>${M(i.tex)}</code></pre>`:`<code>${M(i.tex)}</code>`}})}var F=0;async function Tt(){let e=document.querySelectorAll(`.mermaid-rendered`);if(!e.length)return;let t=await k();for(let n of e){let e=n.dataset.mermaidCode;if(!e)continue;let r=`mermaid-${++F}`;try{A();let{svg:i}=await t.render(r,e);n.innerHTML=j(i),L(n),Z(n)}catch{}}}var I=null;function Et(){I||=new IntersectionObserver(e=>{for(let t of e){if(!t.isIntersecting)continue;let e=t.target;e.classList.contains(`mermaid-pending`)&&(I.unobserve(e),R(e))}},{rootMargin:`200px`})}function L(e){e.querySelector(`.mermaid-zoom-btn`)?.remove(),e.querySelector(`.mermaid-copy-btn`)?.remove(),e.querySelector(`.mermaid-save-btn`)?.remove();let t=document.createElement(`button`);t.className=`mermaid-zoom-btn`,t.type=`button`,t.ariaLabel=`Expand diagram`,t.title=`Expand`,t.textContent=`⤢`,e.appendChild(t);let n=document.createElement(`button`);n.className=`mermaid-save-btn`,n.type=`button`,n.ariaLabel=`Save as image`,n.title=`Save`,n.innerHTML=T.download,e.appendChild(n);let r=document.createElement(`button`);r.className=`mermaid-copy-btn`,r.type=`button`,r.ariaLabel=`Copy source`,r.title=`Copy`,r.innerHTML=T.copy,e.appendChild(r)}function Dt(e,t,n){e.classList.remove(`mermaid-rendered`),e.innerHTML=`
2
+ <div class="mermaid-error">
3
+ <div class="mermaid-error-title">${T.warning} ${M(S(`mermaid.renderFail`)||`Mermaid render failed`)}</div>
4
+ <div class="mermaid-error-msg">${M(n.slice(0,200))}</div>
5
+ <pre class="mermaid-error-code"><code>${M(t)}</code></pre>
6
+ </div>`}async function Ot(e){if(!e.isConnected){delete e.dataset.mermaidQueued;return}e.classList.remove(`mermaid-pending`);let t=e.dataset.mermaidCodeRaw||``,n=t?decodeURIComponent(t):e.textContent||``;e.dataset.mermaidCode=n;let r=`mermaid-${++F}`;try{let t=await k();A();let{svg:i}=await t.render(r,n);if(!e.isConnected){delete e.dataset.mermaidQueued;return}e.innerHTML=j(i),e.classList.add(`mermaid-rendered`),L(e),Z(e)}catch(t){Dt(e,n,t?.message||t?.str||`Unknown error`)}}function R(e){e.dataset.mermaidQueued!==`1`&&(e.dataset.mermaidQueued=`1`,O=O.then(()=>Ot(e)).catch(e=>{console.error(`[mermaid:queue] render failed, keeping queue alive:`,e)}))}async function z(e,t={}){let n=(e||document).querySelectorAll(`.mermaid-pending`);if(n.length){Et();for(let e of n)if(e.dataset.mermaidQueued!==`1`){if(t.immediate){let t=e.getBoundingClientRect(),n=window.innerHeight||document.documentElement.clientHeight;if(t.bottom>=-200&&t.top<=n+200){I.unobserve(e),R(e);continue}}I.observe(e)}}}function kt(){if(D)return;let e=()=>{k().catch(()=>{})};typeof window.requestIdleCallback==`function`?window.requestIdleCallback(e,{timeout:2e3}):setTimeout(e,500)}var B=!1;function At(){if(B)return!0;let e=new a;return e.code=function({text:e,lang:t}){if(t===`mermaid`)return`<div class="mermaid-container mermaid-pending" data-mermaid-code-raw="${encodeURIComponent(e)}" role="status" aria-label="Diagram loading">
7
+ <div class="mermaid-skeleton">
8
+ <div class="mermaid-skeleton-spinner"></div>
9
+ <div class="mermaid-skeleton-text">Rendering diagram…</div>
10
+ </div>
11
+ </div>`;if(t?.trim().toLowerCase()===`diagram-html`)return`<div class="diagram-widget-pending" data-diagram-html="${btoa(unescape(encodeURIComponent(e)))}"
12
+ role="status" aria-label="Interactive widget loading">
13
+ <div class="diagram-spinner"></div>
14
+ </div>`;let n=M(e);if(t&&l.getLanguage(t))try{n=l.highlight(e,{language:t}).value}catch{}else try{n=l.highlightAuto(e).value}catch{}let r=t?M(t):``,i=S(`code.copy`)||`Copy`;return`<div class="code-block"><div class="code-header"><span class="code-lang">${r}</span><button class="code-copy-btn" type="button" aria-label="${M(i)}">${M(i)}</button></div><pre><code class="hljs${t?` language-${M(t)}`:``}">${n}</code></pre></div>`},i.setOptions({renderer:e,gfm:!0,breaks:!1}),B=!0,!0}function jt(e){(e||document).querySelectorAll(`.code-block pre code, .code-block-wrapper pre code`).forEach(e=>{if(e.dataset.highlighted===`yes`)return;let t=[...e.classList].find(e=>e.startsWith(`language-`))?.replace(`language-`,``),n=e.textContent||``;try{t&&l.getLanguage(t)?e.innerHTML=l.highlight(n,{language:t}).value:e.innerHTML=l.highlightAuto(n).value,e.dataset.highlighted=`yes`}catch{}})}var V=/(?:~\/[^\s)`\]"'<>]+|\/(?:Users|home|tmp|var|opt|private)\/[^\s)`\]"'<>]+)/g,Mt=/[.,!?:;]+$/,Nt=/^(?:~\/|\/(?:Users|home|tmp|var|opt|private)\/)/;function Pt(e){return Nt.test(e)}function H(e,t){t&&t.classList.add(`opening`),ae(`/api/file/open`,`POST`,{path:e}).then(e=>{t?.classList.remove(`opening`),e?.ok===!1?(t?.classList.add(`open-failed`),t&&(t.title=e?.error||`Failed to open`),setTimeout(()=>{t?.classList.remove(`open-failed`),t&&(t.title=``)},2e3)):(t?.classList.add(`opened`),setTimeout(()=>t?.classList.remove(`opened`),1500))}).catch(()=>{t?.classList.remove(`opening`),t?.classList.add(`open-failed`),setTimeout(()=>t?.classList.remove(`open-failed`),2e3)})}function U(e){let t=new Set([`PRE`,`A`,`BUTTON`,`TEXTAREA`,`INPUT`,`SCRIPT`,`STYLE`]),n=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,{acceptNode(n){let r=n.parentElement;for(;r&&r!==e;){if(t.has(r.tagName)||r.classList.contains(`file-path-link`)||r.tagName===`CODE`&&r.parentElement?.tagName===`PRE`)return NodeFilter.FILTER_REJECT;r=r.parentElement}return NodeFilter.FILTER_ACCEPT}}),r=new Map,i;for(;i=n.nextNode();){let e=i.textContent||``;V.lastIndex=0;let t,n=[];for(;t=V.exec(e);){let e=t[0],r=e.replace(Mt,``);r.length<4||n.push({index:t.index,raw:e,clean:r})}n.length&&r.set(i,n)}for(let[e,t]of r){let n=e.textContent||``,r=e.parentNode;if(!r)continue;let i=document.createDocumentFragment(),a=0;for(let{index:e,raw:r,clean:o}of t){e>a&&i.appendChild(document.createTextNode(n.slice(a,e)));let t=document.createElement(`span`);t.className=`file-path-link`,t.setAttribute(`data-file-path`,o),t.setAttribute(`role`,`button`),t.setAttribute(`tabindex`,`0`),t.textContent=o,i.appendChild(t);let s=r.slice(o.length);s&&i.appendChild(document.createTextNode(s)),a=e+r.length}a<n.length&&i.appendChild(document.createTextNode(n.slice(a))),r.replaceChild(i,e)}}var W=!1;function Ft(){W||(W=!0,document.addEventListener(`click`,e=>{let t=e.target,n=t?.closest(`a`),r=n?.getAttribute(`href`)||``;if(n&&Pt(r)){e.preventDefault(),n.classList.add(`file-path-link`),H(r,n);return}let i=t?.closest(`.file-path-link`);if(!i)return;let a=i.getAttribute(`data-file-path`);a&&H(a,i)}),document.addEventListener(`keydown`,e=>{if(e.key!==`Enter`&&e.key!==` `)return;let t=e.target;t?.classList.contains(`file-path-link`)&&(e.preventDefault(),t.click())}))}var G=!1;function It(){G||(G=!0,document.addEventListener(`click`,e=>{let t=e.target,n=t?.closest(`.code-copy-btn`);if(n){let e=n.closest(`.code-block`);if(!e)return;let t=e.querySelector(`pre code`);if(!t)return;navigator.clipboard.writeText(t.textContent||``).then(()=>{let e=n.textContent||``;n.textContent=S(`code.copied`),n.classList.add(`copied`),setTimeout(()=>{n.textContent=e,n.classList.remove(`copied`)},1500)}).catch(()=>{});return}let r=t?.closest(`.code-lang-label`);if(!r)return;let i=r.closest(`.code-block-wrapper`);if(!i)return;let a=i.querySelector(`pre code`);a&&navigator.clipboard.writeText(a.textContent||``).then(()=>{let e=r.textContent||``;r.textContent=S(`code.copied`),r.classList.add(`copied`),setTimeout(()=>{r.textContent=e,r.classList.remove(`copied`)},1500)}).catch(()=>{})}))}var K=!1;function Lt(){K||(K=!0,document.addEventListener(`click`,e=>{let t=e.target,n=t?.closest(`.diagram-copy-btn`);if(n){let e=n.closest(`.diagram-container`);if(!e)return;let t=``;if(e.dataset.widgetHtml)try{t=decodeURIComponent(escape(atob(e.dataset.widgetHtml)))}catch{return}else{let n=e.querySelector(`svg`);n&&(t=n.outerHTML)}t&&q(n,t,`copy`);return}let r=t?.closest(`.mermaid-copy-btn`);if(r){let e=r.closest(`.mermaid-container`);if(!e)return;let t=e.dataset.mermaidCode||``;t&&q(r,t,`copy`);return}let i=t?.closest(`.diagram-save-btn`);if(i){let e=i.closest(`.diagram-container`);if(!e)return;if(e.dataset.widgetHtml){let t=e.querySelector(`iframe`);t?.contentWindow&&(t.contentWindow.postMessage({type:`jaw-request-screenshot`},`*`),q(i,``,`save`));return}let t=e.querySelector(`svg`);t&&Y(t,i);return}let a=t?.closest(`.mermaid-save-btn`);if(a){let e=a.closest(`.mermaid-container`);if(!e)return;let t=e.querySelector(`svg`);t&&Y(t,a);return}}))}function q(e,t,n){let r=()=>{let t=e.innerHTML;e.innerHTML=T.checkSimple,e.classList.add(`copied`),setTimeout(()=>{e.innerHTML=t,e.classList.remove(`copied`)},1500)};n===`copy`?navigator.clipboard.writeText(t).then(r).catch(()=>{}):r()}function J(e,t){let n=e.children,r=t.children,i=[`fill`,`stroke`,`stroke-width`,`color`,`opacity`,`rx`,`ry`,`font-size`,`font-weight`,`font-family`,`text-anchor`,`dominant-baseline`];for(let e=0;e<n.length;e++){let t=n[e],a=r[e];if(!t||!a)continue;let o=getComputedStyle(t);for(let e of i){let t=o.getPropertyValue(e);t&&a.style.setProperty(e,t)}t.children.length&&J(t,a)}}function Y(e,t){let n=e.cloneNode(!0);J(e,n);let r=e.getBoundingClientRect();n.getAttribute(`width`)||n.setAttribute(`width`,String(r.width)),n.getAttribute(`height`)||n.setAttribute(`height`,String(r.height));let i=new XMLSerializer().serializeToString(n),a=`data:image/svg+xml;charset=utf-8,`+encodeURIComponent(i),o=new Image;o.onload=()=>{let e=document.createElement(`canvas`);e.width=o.naturalWidth*2,e.height=o.naturalHeight*2;let n=e.getContext(`2d`);n.scale(2,2),n.drawImage(o,0,0),e.toBlob(e=>{e&&(X(e,`diagram-${Date.now()}.png`),q(t,``,`save`))},`image/png`)},o.onerror=()=>{X(new Blob([i],{type:`image/svg+xml;charset=utf-8`}),`diagram-${Date.now()}.svg`),q(t,``,`save`)},o.src=a}function X(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.click(),setTimeout(()=>URL.revokeObjectURL(n),1e3)}function Rt(e){return e.kind===`partial`?`<div class="diagram-container diagram-loading" role="status"
15
+ aria-label="Diagram loading"><div class="diagram-spinner"></div></div>`:e.kind===`error`?`<div class="diagram-container diagram-error" role="alert">
16
+ Malformed SVG: unclosed element</div>`:`<div class="diagram-container diagram-svg" tabindex="0"
17
+ role="figure" aria-label="SVG diagram">
18
+ ${N(e.svg)}
19
+ <button class="diagram-save-btn" type="button"
20
+ aria-label="Save as image" title="Save">${T.download}</button>
21
+ <button class="diagram-copy-btn" type="button"
22
+ aria-label="Copy source" title="Copy">${T.copy}</button>
23
+ <button class="diagram-zoom-btn" type="button"
24
+ aria-label="Expand diagram" title="Expand">⤢</button>
25
+ </div>`}function zt(e,t){for(let n of t){let t=`<div\\b[^>]*?\\bdata-jaw-svg="${n.id}"[^>]*></div>`,r=new RegExp(t,`g`),i=Rt(n);e=e.replace(r,()=>i)}return e}function Z(e){(e||document).querySelectorAll(`.diagram-zoom-btn, .mermaid-zoom-btn`).forEach(e=>{e.dataset.bound||(e.dataset.bound=`1`,e.addEventListener(`click`,()=>{if(e.closest(`.diagram-widget`))return;let t=e.closest(`.diagram-container, .mermaid-container`);if(!t)return;let n=t.cloneNode(!0);n.querySelectorAll(`.diagram-zoom-btn, .mermaid-zoom-btn, .diagram-copy-btn, .diagram-save-btn, .mermaid-copy-btn, .mermaid-save-btn`).forEach(e=>e.remove()),Bt(n.innerHTML)}))})}function Bt(e){let t=document.activeElement,n=document.createElement(`div`);n.className=`diagram-overlay`,n.setAttribute(`role`,`dialog`),n.setAttribute(`aria-modal`,`true`),n.setAttribute(`aria-label`,`Expanded diagram`),n.innerHTML=`
26
+ <div class="diagram-overlay-content">${N(e)}</div>
27
+ <button class="diagram-overlay-close" type="button" aria-label="Close">✕</button>
28
+ `,n.querySelectorAll(`.diagram-overlay-content svg`).forEach(e=>{if(!e.getAttribute(`viewBox`)){let t=e.getAttribute(`width`)||e.getBBox?.()?.width,n=e.getAttribute(`height`)||e.getBBox?.()?.height;t&&n&&e.setAttribute(`viewBox`,`0 0 ${parseFloat(String(t))} ${parseFloat(String(n))}`)}e.removeAttribute(`width`),e.removeAttribute(`height`)});let r=n.querySelector(`.diagram-overlay-close`),i=()=>{n.remove(),document.removeEventListener(`keydown`,a),t&&t.isConnected&&t.focus()},a=e=>{if(e.key===`Escape`){i();return}if(e.key===`Tab`){let t=n.querySelectorAll(`button, [href], [tabindex]:not([tabindex="-1"])`);if(t.length===0)return;let r=t[0],i=t[t.length-1];e.shiftKey&&document.activeElement===r?(e.preventDefault(),i.focus()):!e.shiftKey&&document.activeElement===i&&(e.preventDefault(),r.focus())}};r.addEventListener(`click`,i),document.addEventListener(`keydown`,a),document.body.appendChild(n),r.focus()}function Vt(e,t=!1){let n=P(e);if(!n)return`<em class="text-dim orchestrate-placeholder">${M(S(`orchestrator.dispatching`))}</em>`;let{text:r,fences:a}=gt(n.replace(/\n{3,}/g,`
29
+
30
+ `)),{text:o,blocks:s}=vt(r,t),{text:c,blocks:l}=Ct(_t(o,a));At();let u=ht(c),d=i.parse(u);return d=d.replace(/<table/g,`<div class="table-wrapper"><table`).replace(/<\/table>/g,`</table></div>`),d=wt(d,l,t),d=N(d),d=zt(d,s),t||Ht(),It(),Lt(),Ft(),d}var Q=null,$=null;function Ht(){$&&clearTimeout($),Q&&=(cancelAnimationFrame(Q),null),$=setTimeout(()=>{$=null,Q=requestAnimationFrame(()=>{Q=null,z(),jt(),Z();let e=document.getElementById(`chatMessages`);e&&U(e)})},100)}function Ut(){$&&=(clearTimeout($),null),Q&&=(cancelAnimationFrame(Q),null)}export{S as _,Vt as a,P as c,pt as d,mt as f,ot as g,it as h,kt as i,T as l,st as m,M as n,z as o,ct as p,U as r,Tt as s,Ut as t,ft as u};
@@ -0,0 +1 @@
1
+ import{u as e}from"./vendor-mermaid-DHVxHqbi.js";export{e as diagram};
@@ -0,0 +1 @@
1
+ import{l as e}from"./vendor-mermaid-DHVxHqbi.js";export{e as diagram};
@@ -0,0 +1 @@
1
+ import{c as e}from"./vendor-mermaid-DHVxHqbi.js";export{e as diagram};
@@ -1,4 +1,4 @@
1
- import{t as e}from"./state-O6NVkWcL.js";import{n as t,r as n,t as r}from"./api-DygAf_G_.js";import{_ as i,l as a,n as o}from"./render-CulTuvJs.js";import{n as s,r as c}from"./locale-CxI5nTcf.js";import{a as l,i as u,r as d,t as f}from"./constants-BU8a_R5s.js";function p(e){let t=document.getElementById(`sttEngine`),r=document.getElementById(`sttGeminiKey`),i=document.getElementById(`sttGeminiModel`),a=document.getElementById(`sttGeminiModelCustom`),o=document.getElementById(`sttWhisperModel`),s=document.getElementById(`sttOpenaiBaseUrl`),c=document.getElementById(`sttOpenaiKey`),l=document.getElementById(`sttOpenaiModel`),u=document.getElementById(`sttVertexJson`);if(t&&(t.value=e.engine||`auto`),r&&(r.placeholder=e.geminiKeySet?`✓ 입력됨 ····${e.geminiKeyLast4||``}`:`AIza...`),i){let t=e.geminiModel||`gemini-2.5-flash-lite`;Array.from(i.options).some(e=>e.value===t)?i.value=t:(i.value=`__custom__`,a&&(a.value=t,a.style.display=``))}o&&(o.value=e.whisperModel||`mlx-community/whisper-large-v3-turbo`),s&&(s.value=e.openaiBaseUrl||``),c&&(c.placeholder=e.openaiKeySet?`✓ 입력됨 ····${e.openaiKeyLast4||``}`:`sk-...`),l&&(l.value=e.openaiModel||``),u&&(u.value=e.vertexConfig||``);function d(){let e=t?.value||`auto`,n=e===`auto`||e===`gemini`,r=e===`openai`,i=e===`vertex`,a=e===`auto`||e===`whisper`;document.querySelectorAll(`.stt-gemini`).forEach(e=>e.style.display=n?``:`none`),document.querySelectorAll(`.stt-openai`).forEach(e=>e.style.display=r?``:`none`),document.querySelectorAll(`.stt-vertex`).forEach(e=>e.style.display=i?``:`none`),document.querySelectorAll(`.stt-whisper`).forEach(e=>e.style.display=a?``:`none`)}d();async function f(){let e={stt:{engine:t?.value||`auto`,geminiModel:(i?.value===`__custom__`?a?.value:i?.value)||`gemini-2.5-flash-lite`,whisperModel:o?.value||``,openaiBaseUrl:s?.value||``,openaiModel:l?.value||``,vertexConfig:u?.value||``}};r?.value&&(e.stt.geminiApiKey=r.value),c?.value&&(e.stt.openaiApiKey=c.value),console.log(`[stt] saving:`,{engine:e.stt.engine,hasGeminiKey:!!e.stt.geminiApiKey,hasOpenaiKey:!!e.stt.openaiApiKey});try{if(await n(`/api/settings`,`PUT`,e),r?.value){let e=r.value.slice(-4);r.value=``,r.placeholder=`✓ 입력됨 ····${e}`}if(c?.value){let e=c.value.slice(-4);c.value=``,c.placeholder=`✓ 입력됨 ····${e}`}}catch(e){console.error(`[stt] save failed:`,e)}}t?.addEventListener(`change`,()=>{d(),f()}),i?.addEventListener(`change`,()=>{a&&(a.style.display=i.value===`__custom__`?``:`none`),i.value!==`__custom__`&&f()}),a?.addEventListener(`blur`,f),r?.addEventListener(`blur`,()=>{r.value&&f()}),c?.addEventListener(`blur`,()=>{c.value&&f()}),s?.addEventListener(`blur`,f),l?.addEventListener(`blur`,f),o?.addEventListener(`blur`,f),u?.addEventListener(`blur`,f)}async function m(){let e=document.getElementById(`tgToken`)?.value.trim()||``,t=document.getElementById(`tgChatIds`)?.value.trim()||``;await n(`/api/settings`,`PUT`,{telegram:{token:e,allowedChatIds:t?t.split(`,`).map(e=>parseInt(e.trim(),10)).filter(e=>!isNaN(e)):[]}})}async function ee(e){document.getElementById(`tgOn`)?.classList.toggle(`active`,e),document.getElementById(`tgOff`)?.classList.toggle(`active`,!e),await n(`/api/settings`,`PUT`,{telegram:{enabled:e}})}async function te(e){document.getElementById(`tgForwardOn`)?.classList.toggle(`active`,e),document.getElementById(`tgForwardOff`)?.classList.toggle(`active`,!e),await n(`/api/settings`,`PUT`,{telegram:{forwardAll:e}})}async function ne(e){document.getElementById(`tgMentionOn`)?.classList.toggle(`active`,e),document.getElementById(`tgMentionOff`)?.classList.toggle(`active`,!e),await n(`/api/settings`,`PUT`,{telegram:{mentionOnly:e}})}function re(e){if(!e.telegram)return;let t=e.telegram;document.getElementById(`tgOn`)?.classList.toggle(`active`,!!t.enabled),document.getElementById(`tgOff`)?.classList.toggle(`active`,!t.enabled);let n=document.getElementById(`tgToken`);t.token&&n&&(n.value=t.token);let r=document.getElementById(`tgChatIds`);t.allowedChatIds?.length&&r&&(r.value=t.allowedChatIds.join(`, `));let i=t.forwardAll!==!1;document.getElementById(`tgForwardOn`)?.classList.toggle(`active`,i),document.getElementById(`tgForwardOff`)?.classList.toggle(`active`,!i);let a=t.mentionOnly!==!1;document.getElementById(`tgMentionOn`)?.classList.toggle(`active`,a),document.getElementById(`tgMentionOff`)?.classList.toggle(`active`,!a)}async function ie(){let e=document.getElementById(`dcToken`)?.value.trim()||``,t=document.getElementById(`dcGuildId`)?.value.trim()||``,r=document.getElementById(`dcChannelIds`)?.value.trim()||``;await n(`/api/settings`,`PUT`,{discord:{token:e,guildId:t,channelIds:r?r.split(`,`).map(e=>e.trim()).filter(Boolean):[]}})}async function ae(e){document.getElementById(`dcOn`)?.classList.toggle(`active`,e),document.getElementById(`dcOff`)?.classList.toggle(`active`,!e),await n(`/api/settings`,`PUT`,{discord:{enabled:e}})}async function oe(e){document.getElementById(`dcForwardOn`)?.classList.toggle(`active`,e),document.getElementById(`dcForwardOff`)?.classList.toggle(`active`,!e),await n(`/api/settings`,`PUT`,{discord:{forwardAll:e}})}async function se(e){document.getElementById(`dcAllowBotsOn`)?.classList.toggle(`active`,e),document.getElementById(`dcAllowBotsOff`)?.classList.toggle(`active`,!e),await n(`/api/settings`,`PUT`,{discord:{allowBots:e}})}async function h(e){document.getElementById(`dcMentionOn`)?.classList.toggle(`active`,e),document.getElementById(`dcMentionOff`)?.classList.toggle(`active`,!e),await n(`/api/settings`,`PUT`,{discord:{mentionOnly:e}})}function g(e){if(!e.discord)return;let t=e.discord;document.getElementById(`dcOn`)?.classList.toggle(`active`,!!t.enabled),document.getElementById(`dcOff`)?.classList.toggle(`active`,!t.enabled);let n=document.getElementById(`dcToken`);t.token&&n&&(n.value=t.token);let r=document.getElementById(`dcGuildId`);t.guildId&&r&&(r.value=t.guildId);let i=document.getElementById(`dcChannelIds`);t.channelIds?.length&&i&&(i.value=t.channelIds.join(`, `));let a=t.forwardAll!==!1;document.getElementById(`dcForwardOn`)?.classList.toggle(`active`,a),document.getElementById(`dcForwardOff`)?.classList.toggle(`active`,!a);let o=!!t.allowBots;document.getElementById(`dcAllowBotsOn`)?.classList.toggle(`active`,o),document.getElementById(`dcAllowBotsOff`)?.classList.toggle(`active`,!o);let s=!!t.mentionOnly;document.getElementById(`dcMentionOn`)?.classList.toggle(`active`,s),document.getElementById(`dcMentionOff`)?.classList.toggle(`active`,!s)}async function _(e){document.getElementById(`chTelegram`)?.classList.toggle(`active`,e===`telegram`),document.getElementById(`chDiscord`)?.classList.toggle(`active`,e===`discord`),document.getElementById(`channelTelegramSettings`)?.style.setProperty(`display`,e===`telegram`?``:`none`),document.getElementById(`channelDiscordSettings`)?.style.setProperty(`display`,e===`discord`?``:`none`),await n(`/api/settings`,`PUT`,{channel:e})}function v(e){let t=e.channel||`telegram`;document.getElementById(`chTelegram`)?.classList.toggle(`active`,t===`telegram`),document.getElementById(`chDiscord`)?.classList.toggle(`active`,t===`discord`),document.getElementById(`channelTelegramSettings`)?.style.setProperty(`display`,t===`telegram`?``:`none`),document.getElementById(`channelDiscordSettings`)?.style.setProperty(`display`,t===`discord`?``:`none`)}function y(e){let t=document.getElementById(`fallbackOrderList`);if(!t)return;let n=Object.keys(e.perCli||{}),r=e.fallbackOrder||[],a=Math.min(n.length-1,3),s=``;for(let e=0;e<a;e++){let t=r[e]||``,a=n.map(e=>`<option value="${o(e)}" ${e===t?`selected`:``}>${o(e)}</option>`).join(``);s+=`
1
+ import{t as e}from"./state-CPF7TImo.js";import{n as t,r as n,t as r}from"./api-CnBOYa3F.js";import{_ as i,l as a,n as o}from"./render-D9bnLVR_.js";import{n as s,r as c}from"./locale-heAuYK-3.js";import{a as l,i as u,r as d,t as f}from"./constants-fUXYKkoK.js";function p(e){let t=document.getElementById(`sttEngine`),r=document.getElementById(`sttGeminiKey`),i=document.getElementById(`sttGeminiModel`),a=document.getElementById(`sttGeminiModelCustom`),o=document.getElementById(`sttWhisperModel`),s=document.getElementById(`sttOpenaiBaseUrl`),c=document.getElementById(`sttOpenaiKey`),l=document.getElementById(`sttOpenaiModel`),u=document.getElementById(`sttVertexJson`);if(t&&(t.value=e.engine||`auto`),r&&(r.placeholder=e.geminiKeySet?`✓ 입력됨 ····${e.geminiKeyLast4||``}`:`AIza...`),i){let t=e.geminiModel||`gemini-2.5-flash-lite`;Array.from(i.options).some(e=>e.value===t)?i.value=t:(i.value=`__custom__`,a&&(a.value=t,a.style.display=``))}o&&(o.value=e.whisperModel||`mlx-community/whisper-large-v3-turbo`),s&&(s.value=e.openaiBaseUrl||``),c&&(c.placeholder=e.openaiKeySet?`✓ 입력됨 ····${e.openaiKeyLast4||``}`:`sk-...`),l&&(l.value=e.openaiModel||``),u&&(u.value=e.vertexConfig||``);function d(){let e=t?.value||`auto`,n=e===`auto`||e===`gemini`,r=e===`openai`,i=e===`vertex`,a=e===`auto`||e===`whisper`;document.querySelectorAll(`.stt-gemini`).forEach(e=>e.style.display=n?``:`none`),document.querySelectorAll(`.stt-openai`).forEach(e=>e.style.display=r?``:`none`),document.querySelectorAll(`.stt-vertex`).forEach(e=>e.style.display=i?``:`none`),document.querySelectorAll(`.stt-whisper`).forEach(e=>e.style.display=a?``:`none`)}d();async function f(){let e={stt:{engine:t?.value||`auto`,geminiModel:(i?.value===`__custom__`?a?.value:i?.value)||`gemini-2.5-flash-lite`,whisperModel:o?.value||``,openaiBaseUrl:s?.value||``,openaiModel:l?.value||``,vertexConfig:u?.value||``}};r?.value&&(e.stt.geminiApiKey=r.value),c?.value&&(e.stt.openaiApiKey=c.value),console.log(`[stt] saving:`,{engine:e.stt.engine,hasGeminiKey:!!e.stt.geminiApiKey,hasOpenaiKey:!!e.stt.openaiApiKey});try{if(await n(`/api/settings`,`PUT`,e),r?.value){let e=r.value.slice(-4);r.value=``,r.placeholder=`✓ 입력됨 ····${e}`}if(c?.value){let e=c.value.slice(-4);c.value=``,c.placeholder=`✓ 입력됨 ····${e}`}}catch(e){console.error(`[stt] save failed:`,e)}}t?.addEventListener(`change`,()=>{d(),f()}),i?.addEventListener(`change`,()=>{a&&(a.style.display=i.value===`__custom__`?``:`none`),i.value!==`__custom__`&&f()}),a?.addEventListener(`blur`,f),r?.addEventListener(`blur`,()=>{r.value&&f()}),c?.addEventListener(`blur`,()=>{c.value&&f()}),s?.addEventListener(`blur`,f),l?.addEventListener(`blur`,f),o?.addEventListener(`blur`,f),u?.addEventListener(`blur`,f)}async function m(){let e=document.getElementById(`tgToken`)?.value.trim()||``,t=document.getElementById(`tgChatIds`)?.value.trim()||``;await n(`/api/settings`,`PUT`,{telegram:{token:e,allowedChatIds:t?t.split(`,`).map(e=>parseInt(e.trim(),10)).filter(e=>!isNaN(e)):[]}})}async function ee(e){document.getElementById(`tgOn`)?.classList.toggle(`active`,e),document.getElementById(`tgOff`)?.classList.toggle(`active`,!e),await n(`/api/settings`,`PUT`,{telegram:{enabled:e}})}async function te(e){document.getElementById(`tgForwardOn`)?.classList.toggle(`active`,e),document.getElementById(`tgForwardOff`)?.classList.toggle(`active`,!e),await n(`/api/settings`,`PUT`,{telegram:{forwardAll:e}})}async function ne(e){document.getElementById(`tgMentionOn`)?.classList.toggle(`active`,e),document.getElementById(`tgMentionOff`)?.classList.toggle(`active`,!e),await n(`/api/settings`,`PUT`,{telegram:{mentionOnly:e}})}function re(e){if(!e.telegram)return;let t=e.telegram;document.getElementById(`tgOn`)?.classList.toggle(`active`,!!t.enabled),document.getElementById(`tgOff`)?.classList.toggle(`active`,!t.enabled);let n=document.getElementById(`tgToken`);t.token&&n&&(n.value=t.token);let r=document.getElementById(`tgChatIds`);t.allowedChatIds?.length&&r&&(r.value=t.allowedChatIds.join(`, `));let i=t.forwardAll!==!1;document.getElementById(`tgForwardOn`)?.classList.toggle(`active`,i),document.getElementById(`tgForwardOff`)?.classList.toggle(`active`,!i);let a=t.mentionOnly!==!1;document.getElementById(`tgMentionOn`)?.classList.toggle(`active`,a),document.getElementById(`tgMentionOff`)?.classList.toggle(`active`,!a)}async function ie(){let e=document.getElementById(`dcToken`)?.value.trim()||``,t=document.getElementById(`dcGuildId`)?.value.trim()||``,r=document.getElementById(`dcChannelIds`)?.value.trim()||``;await n(`/api/settings`,`PUT`,{discord:{token:e,guildId:t,channelIds:r?r.split(`,`).map(e=>e.trim()).filter(Boolean):[]}})}async function ae(e){document.getElementById(`dcOn`)?.classList.toggle(`active`,e),document.getElementById(`dcOff`)?.classList.toggle(`active`,!e),await n(`/api/settings`,`PUT`,{discord:{enabled:e}})}async function oe(e){document.getElementById(`dcForwardOn`)?.classList.toggle(`active`,e),document.getElementById(`dcForwardOff`)?.classList.toggle(`active`,!e),await n(`/api/settings`,`PUT`,{discord:{forwardAll:e}})}async function se(e){document.getElementById(`dcAllowBotsOn`)?.classList.toggle(`active`,e),document.getElementById(`dcAllowBotsOff`)?.classList.toggle(`active`,!e),await n(`/api/settings`,`PUT`,{discord:{allowBots:e}})}async function h(e){document.getElementById(`dcMentionOn`)?.classList.toggle(`active`,e),document.getElementById(`dcMentionOff`)?.classList.toggle(`active`,!e),await n(`/api/settings`,`PUT`,{discord:{mentionOnly:e}})}function g(e){if(!e.discord)return;let t=e.discord;document.getElementById(`dcOn`)?.classList.toggle(`active`,!!t.enabled),document.getElementById(`dcOff`)?.classList.toggle(`active`,!t.enabled);let n=document.getElementById(`dcToken`);t.token&&n&&(n.value=t.token);let r=document.getElementById(`dcGuildId`);t.guildId&&r&&(r.value=t.guildId);let i=document.getElementById(`dcChannelIds`);t.channelIds?.length&&i&&(i.value=t.channelIds.join(`, `));let a=t.forwardAll!==!1;document.getElementById(`dcForwardOn`)?.classList.toggle(`active`,a),document.getElementById(`dcForwardOff`)?.classList.toggle(`active`,!a);let o=!!t.allowBots;document.getElementById(`dcAllowBotsOn`)?.classList.toggle(`active`,o),document.getElementById(`dcAllowBotsOff`)?.classList.toggle(`active`,!o);let s=!!t.mentionOnly;document.getElementById(`dcMentionOn`)?.classList.toggle(`active`,s),document.getElementById(`dcMentionOff`)?.classList.toggle(`active`,!s)}async function _(e){document.getElementById(`chTelegram`)?.classList.toggle(`active`,e===`telegram`),document.getElementById(`chDiscord`)?.classList.toggle(`active`,e===`discord`),document.getElementById(`channelTelegramSettings`)?.style.setProperty(`display`,e===`telegram`?``:`none`),document.getElementById(`channelDiscordSettings`)?.style.setProperty(`display`,e===`discord`?``:`none`),await n(`/api/settings`,`PUT`,{channel:e})}function v(e){let t=e.channel||`telegram`;document.getElementById(`chTelegram`)?.classList.toggle(`active`,t===`telegram`),document.getElementById(`chDiscord`)?.classList.toggle(`active`,t===`discord`),document.getElementById(`channelTelegramSettings`)?.style.setProperty(`display`,t===`telegram`?``:`none`),document.getElementById(`channelDiscordSettings`)?.style.setProperty(`display`,t===`discord`?``:`none`)}function y(e){let t=document.getElementById(`fallbackOrderList`);if(!t)return;let n=Object.keys(e.perCli||{}),r=e.fallbackOrder||[],a=Math.min(n.length-1,3),s=``;for(let e=0;e<a;e++){let t=r[e]||``,a=n.map(e=>`<option value="${o(e)}" ${e===t?`selected`:``}>${o(e)}</option>`).join(``);s+=`
2
2
  <div class="settings-row sub-row">
3
3
  <label style="min-width:60px">Fallback ${e+1}</label>
4
4
  <select id="fallback${e}"
@@ -9,20 +9,20 @@ import{t as e}from"./state-O6NVkWcL.js";import{n as t,r as n,t as r}from"./api-D
9
9
  </div>`}t.innerHTML=s}async function b(){await n(`/api/settings`,`PUT`,{fallbackOrder:[...document.querySelectorAll(`#fallbackOrderList select`)].map(e=>e.value).filter(Boolean)})}async function x(){try{let e=await r(`/api/mcp`);if(!e)return;let t=document.getElementById(`mcpServerList`);if(!t)return;let n=Object.entries(e.servers||{});if(!n.length){t.textContent=i(`mcp.noServers`);return}t.innerHTML=n.map(([e,t])=>`<div style="padding:2px 0">• <b>${o(e)}</b> <span style="opacity:.6">${o(t.command)} ${(t.args||[]).slice(0,2).map(e=>o(e)).join(` `)}</span></div>`).join(``)}catch{}}async function ce(){let e=document.getElementById(`mcpSyncResult`);if(e){e.style.display=`block`,e.textContent=i(`mcp.syncing`);try{let t=await n(`/api/mcp/sync`,`POST`,{});if(!t){e.innerHTML=`${a.error} sync failed`;return}let r=t.results||{};e.innerHTML=Object.entries(r).map(([e,t])=>`${t?a.check:a.skip} ${o(e)}`).join(` &nbsp; `)}catch(t){e.innerHTML=`${a.error} ${o(t.message)}`}}}async function le(){let e=document.getElementById(`mcpSyncResult`);if(e){e.style.display=`block`,e.textContent=i(`mcp.installing`);try{let t=await n(`/api/mcp/install`,`POST`,{});if(!t){e.innerHTML=`${a.error} install failed`;return}e.innerHTML=Object.entries(t.results||{}).map(([e,t])=>`${t.status===`installed`?a.check:t.status===`skip`?a.skip:a.error} <b>${o(e)}</b>: ${o(t.status)}${t.bin?` ${a.arrowRight} `+o(t.bin):``}`).join(`<br>`),x()}catch(t){e.innerHTML=`${a.error} ${o(t.message)}`}}}var ue=`<svg height="1em" style="flex:none;line-height:1" viewBox="0 0 24 24" width="1em" xmlns="http://www.w3.org/2000/svg"><title>Claude</title><path d="M4.709 15.955l4.72-2.647.08-.23-.08-.128H9.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L0 11.784l.055-.352.48-.321.686.06 1.52.103 2.278.158 1.652.097 2.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686 1.908 1.476 2.491 1.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a2.97 2.97 0 01-.104-.729L6.283.134 6.696 0l.996.134.42.364.62 1.414 1.002 2.229 1.555 3.03.456.898.243.832.091.255h.158V9.01l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286 1.851-.559 2.903-.364 1.942h.212l.243-.242.985-1.306 1.652-2.064.73-.82.85-.904.547-.431h1.033l.76 1.129-.34 1.166-1.064 1.347-.881 1.142-1.264 1.7-.79 1.36.073.11.188-.02 2.856-.606 1.543-.28 1.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061 1.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093 1.068 2.006 1.81 2.509 2.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649 2.345 3.521.122 1.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674 7.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434 1.967-2.18 2.945-1.726 1.845-.414.164-.717-.37.067-.662.401-.589 2.388-3.036 1.44-1.882.93-1.086-.006-.158h-.055L4.132 18.56l-1.13.146-.487-.456.061-.746.231-.243 1.908-1.312-.006.006z" fill="#D97757" fill-rule="nonzero"></path></svg>`,S=`<svg fill="currentColor" fill-rule="evenodd" height="1em" style="flex:none;line-height:1" viewBox="0 0 24 24" width="1em" xmlns="http://www.w3.org/2000/svg"><title>OpenAI</title><path d="M9.205 8.658v-2.26c0-.19.072-.333.238-.428l4.543-2.616c.619-.357 1.356-.523 2.117-.523 2.854 0 4.662 2.212 4.662 4.566 0 .167 0 .357-.024.547l-4.71-2.759a.797.797 0 00-.856 0l-5.97 3.473zm10.609 8.8V12.06c0-.333-.143-.57-.429-.737l-5.97-3.473 1.95-1.118a.433.433 0 01.476 0l4.543 2.617c1.309.76 2.189 2.378 2.189 3.948 0 1.808-1.07 3.473-2.76 4.163zM7.802 12.703l-1.95-1.142c-.167-.095-.239-.238-.239-.428V5.899c0-2.545 1.95-4.472 4.591-4.472 1 0 1.927.333 2.712.928L8.23 5.067c-.285.166-.428.404-.428.737v6.898zM12 15.128l-2.795-1.57v-3.33L12 8.658l2.795 1.57v3.33L12 15.128zm1.796 7.23c-1 0-1.927-.332-2.712-.927l4.686-2.712c.285-.166.428-.404.428-.737v-6.898l1.974 1.142c.167.095.238.238.238.428v5.233c0 2.545-1.974 4.472-4.614 4.472zm-5.637-5.303l-4.544-2.617c-1.308-.761-2.188-2.378-2.188-3.948A4.482 4.482 0 014.21 6.327v5.423c0 .333.143.571.428.738l5.947 3.449-1.95 1.118a.432.432 0 01-.476 0zm-.262 3.9c-2.688 0-4.662-2.021-4.662-4.519 0-.19.024-.38.047-.57l4.686 2.71c.286.167.571.167.856 0l5.97-3.448v2.26c0 .19-.07.333-.237.428l-4.543 2.616c-.619.357-1.356.523-2.117.523zm5.899 2.83a5.947 5.947 0 005.827-4.756C22.287 18.339 24 15.84 24 13.296c0-1.665-.713-3.282-1.998-4.448.119-.5.19-.999.19-1.498 0-3.401-2.759-5.947-5.946-5.947-.642 0-1.26.095-1.88.31A5.962 5.962 0 0010.205 0a5.947 5.947 0 00-5.827 4.757C1.713 5.447 0 7.945 0 10.49c0 1.666.713 3.283 1.998 4.448-.119.5-.19 1-.19 1.499 0 3.401 2.759 5.946 5.946 5.946.642 0 1.26-.095 1.88-.309a5.96 5.96 0 004.162 1.713z"></path></svg>`,de=`<svg height="1em" style="flex:none;line-height:1" viewBox="0 0 24 24" width="1em" xmlns="http://www.w3.org/2000/svg"><title>Gemini</title><path d="M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z" fill="#3186FF"></path><path d="M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z" fill="url(#lobe-icons-gemini-0-_R_0_)"></path><path d="M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z" fill="url(#lobe-icons-gemini-1-_R_0_)"></path><path d="M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z" fill="url(#lobe-icons-gemini-2-_R_0_)"></path><defs><linearGradient gradientUnits="userSpaceOnUse" id="lobe-icons-gemini-0-_R_0_" x1="7" x2="11" y1="15.5" y2="12"><stop stop-color="#08B962"></stop><stop offset="1" stop-color="#08B962" stop-opacity="0"></stop></linearGradient><linearGradient gradientUnits="userSpaceOnUse" id="lobe-icons-gemini-1-_R_0_" x1="8" x2="11.5" y1="5.5" y2="11"><stop stop-color="#F94543"></stop><stop offset="1" stop-color="#F94543" stop-opacity="0"></stop></linearGradient><linearGradient gradientUnits="userSpaceOnUse" id="lobe-icons-gemini-2-_R_0_" x1="3.5" x2="17.5" y1="13.5" y2="12"><stop stop-color="#FABC12"></stop><stop offset=".46" stop-color="#FABC12" stop-opacity="0"></stop></linearGradient></defs></svg>`,fe=`<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="currentColor"><title>GitHub Copilot</title><path d="M23.922 16.997C23.061 18.492 18.063 22.02 12 22.02 5.937 22.02.939 18.492.078 16.997A.641.641 0 0 1 0 16.741v-2.869a.883.883 0 0 1 .053-.22c.372-.935 1.347-2.292 2.605-2.656.167-.429.414-1.055.644-1.517a10.098 10.098 0 0 1-.052-1.086c0-1.331.282-2.499 1.132-3.368.397-.406.89-.717 1.474-.952C7.255 2.937 9.248 1.98 11.978 1.98c2.731 0 4.767.957 6.166 2.093.584.235 1.077.546 1.474.952.85.869 1.132 2.037 1.132 3.368 0 .368-.014.733-.052 1.086.23.462.477 1.088.644 1.517 1.258.364 2.233 1.721 2.605 2.656a.841.841 0 0 1 .053.22v2.869a.641.641 0 0 1-.078.256Zm-11.75-5.992h-.344a4.359 4.359 0 0 1-.355.508c-.77.947-1.918 1.492-3.508 1.492-1.725 0-2.989-.359-3.782-1.259a2.137 2.137 0 0 1-.085-.104L4 11.746v6.585c1.435.779 4.514 2.179 8 2.179 3.486 0 6.565-1.4 8-2.179v-6.585l-.098-.104s-.033.045-.085.104c-.793.9-2.057 1.259-3.782 1.259-1.59 0-2.738-.545-3.508-1.492a4.359 4.359 0 0 1-.355-.508Zm2.328 3.25c.549 0 1 .451 1 1v2c0 .549-.451 1-1 1-.549 0-1-.451-1-1v-2c0-.549.451-1 1-1Zm-5 0c.549 0 1 .451 1 1v2c0 .549-.451 1-1 1-.549 0-1-.451-1-1v-2c0-.549.451-1 1-1Zm3.313-6.185c.136 1.057.403 1.913.878 2.497.442.544 1.134.938 2.344.938 1.573 0 2.292-.337 2.657-.751.384-.435.558-1.15.558-2.361 0-1.14-.243-1.847-.705-2.319-.477-.488-1.319-.862-2.824-1.025-1.487-.161-2.192.138-2.533.529-.269.307-.437.808-.438 1.578v.021c0 .265.021.562.063.893Zm-1.626 0c.042-.331.063-.628.063-.894v-.02c-.001-.77-.169-1.271-.438-1.578-.341-.391-1.046-.69-2.533-.529-1.505.163-2.347.537-2.824 1.025-.462.472-.705 1.179-.705 2.319 0 1.211.175 1.926.558 2.361.365.414 1.084.751 2.657.751 1.21 0 1.902-.394 2.344-.938.475-.584.742-1.44.878-2.497Z"/></svg>
10
10
  `,pe=`<svg fill="currentColor" fill-rule="evenodd" height="1em" style="flex:none;line-height:1" viewBox="0 0 24 24" width="1em" xmlns="http://www.w3.org/2000/svg"><title>Claude</title><path d="M4.709 15.955l4.72-2.647.08-.23-.08-.128H9.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L0 11.784l.055-.352.48-.321.686.06 1.52.103 2.278.158 1.652.097 2.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686 1.908 1.476 2.491 1.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a2.97 2.97 0 01-.104-.729L6.283.134 6.696 0l.996.134.42.364.62 1.414 1.002 2.229 1.555 3.03.456.898.243.832.091.255h.158V9.01l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286 1.851-.559 2.903-.364 1.942h.212l.243-.242.985-1.306 1.652-2.064.73-.82.85-.904.547-.431h1.033l.76 1.129-.34 1.166-1.064 1.347-.881 1.142-1.264 1.7-.79 1.36.073.11.188-.02 2.856-.606 1.543-.28 1.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061 1.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093 1.068 2.006 1.81 2.509 2.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649 2.345 3.521.122 1.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674 7.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434 1.967-2.18 2.945-1.726 1.845-.414.164-.717-.37.067-.662.401-.589 2.388-3.036 1.44-1.882.93-1.086-.006-.158h-.055L4.132 18.56l-1.13.146-.487-.456.061-.746.231-.243 1.908-1.312-.006.006z"></path></svg>`,me=`<svg fill="currentColor" fill-rule="evenodd" height="1em" style="flex:none;line-height:1" viewBox="0 0 24 24" width="1em" xmlns="http://www.w3.org/2000/svg"><title>Gemini</title><path d="M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z"></path></svg>`,he=`<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="currentColor"><title>GitHub Copilot</title><path d="M23.922 16.997C23.061 18.492 18.063 22.02 12 22.02 5.937 22.02.939 18.492.078 16.997A.641.641 0 0 1 0 16.741v-2.869a.883.883 0 0 1 .053-.22c.372-.935 1.347-2.292 2.605-2.656.167-.429.414-1.055.644-1.517a10.098 10.098 0 0 1-.052-1.086c0-1.331.282-2.499 1.132-3.368.397-.406.89-.717 1.474-.952C7.255 2.937 9.248 1.98 11.978 1.98c2.731 0 4.767.957 6.166 2.093.584.235 1.077.546 1.474.952.85.869 1.132 2.037 1.132 3.368 0 .368-.014.733-.052 1.086.23.462.477 1.088.644 1.517 1.258.364 2.233 1.721 2.605 2.656a.841.841 0 0 1 .053.22v2.869a.641.641 0 0 1-.078.256Zm-11.75-5.992h-.344a4.359 4.359 0 0 1-.355.508c-.77.947-1.918 1.492-3.508 1.492-1.725 0-2.989-.359-3.782-1.259a2.137 2.137 0 0 1-.085-.104L4 11.746v6.585c1.435.779 4.514 2.179 8 2.179 3.486 0 6.565-1.4 8-2.179v-6.585l-.098-.104s-.033.045-.085.104c-.793.9-2.057 1.259-3.782 1.259-1.59 0-2.738-.545-3.508-1.492a4.359 4.359 0 0 1-.355-.508Zm2.328 3.25c.549 0 1 .451 1 1v2c0 .549-.451 1-1 1-.549 0-1-.451-1-1v-2c0-.549.451-1 1-1Zm-5 0c.549 0 1 .451 1 1v2c0 .549-.451 1-1 1-.549 0-1-.451-1-1v-2c0-.549.451-1 1-1Zm3.313-6.185c.136 1.057.403 1.913.878 2.497.442.544 1.134.938 2.344.938 1.573 0 2.292-.337 2.657-.751.384-.435.558-1.15.558-2.361 0-1.14-.243-1.847-.705-2.319-.477-.488-1.319-.862-2.824-1.025-1.487-.161-2.192.138-2.533.529-.269.307-.437.808-.438 1.578v.021c0 .265.021.562.063.893Zm-1.626 0c.042-.331.063-.628.063-.894v-.02c-.001-.77-.169-1.271-.438-1.578-.341-.391-1.046-.69-2.533-.529-1.505.163-2.347.537-2.824 1.025-.462.472-.705 1.179-.705 2.319 0 1.211.175 1.926.558 2.361.365.414 1.084.751 2.657.751 1.21 0 1.902-.394 2.344-.938.475-.584.742-1.44.878-2.497Z"/></svg>
11
11
  `,C=`<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="currentColor"><title>Discord</title><path d="M20.317 4.3698a19.7913 19.7913 0 00-4.8851-1.5152.0741.0741 0 00-.0785.0371c-.211.3753-.4447.8648-.6083 1.2495-1.8447-.2762-3.68-.2762-5.4868 0-.1636-.3933-.4058-.8742-.6177-1.2495a.077.077 0 00-.0785-.037 19.7363 19.7363 0 00-4.8852 1.515.0699.0699 0 00-.0321.0277C.5334 9.0458-.319 13.5799.0992 18.0578a.0824.0824 0 00.0312.0561c2.0528 1.5076 4.0413 2.4228 5.9929 3.0294a.0777.0777 0 00.0842-.0276c.4616-.6304.8731-1.2952 1.226-1.9942a.076.076 0 00-.0416-.1057c-.6528-.2476-1.2743-.5495-1.8722-.8923a.077.077 0 01-.0076-.1277c.1258-.0943.2517-.1923.3718-.2914a.0743.0743 0 01.0776-.0105c3.9278 1.7933 8.18 1.7933 12.0614 0a.0739.0739 0 01.0785.0095c.1202.099.246.1981.3728.2924a.077.077 0 01-.0066.1276 12.2986 12.2986 0 01-1.873.8914.0766.0766 0 00-.0407.1067c.3604.698.7719 1.3628 1.225 1.9932a.076.076 0 00.0842.0286c1.961-.6067 3.9495-1.5219 6.0023-3.0294a.077.077 0 00.0313-.0552c.5004-5.177-.8382-9.6739-3.5485-13.6604a.061.061 0 00-.0312-.0286zM8.02 15.3312c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9555-2.4189 2.157-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.9555 2.4189-2.1569 2.4189zm7.9748 0c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9554-2.4189 2.1569-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.946 2.4189-2.1568 2.4189Z"/></svg>`,w=`<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="currentColor"><title>Telegram</title><path d="M11.944 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0a12 12 0 0 0-.056 0zm4.962 7.224c.1-.002.321.023.465.14a.506.506 0 0 1 .171.325c.016.093.036.306.02.472-.18 1.898-.962 6.502-1.36 8.627-.168.9-.499 1.201-.82 1.23-.696.065-1.225-.46-1.9-.902-1.056-.693-1.653-1.124-2.678-1.8-1.185-.78-.417-1.21.258-1.91.177-.184 3.247-2.977 3.307-3.23.007-.032.014-.15-.056-.212s-.174-.041-.249-.024c-.106.024-1.793 1.14-5.061 3.345-.48.33-.913.49-1.302.48-.428-.008-1.252-.241-1.865-.44-.752-.245-1.349-.374-1.297-.789.027-.216.325-.437.893-.663 3.498-1.524 5.83-2.529 6.998-3.014 3.332-1.386 4.025-1.627 4.476-1.635z"/></svg>`,T=`<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="4 17 10 11 4 5"/><line x1="12" y1="19" x2="20" y2="19"/></svg>
12
- `,ge={claude:{color:ue,mono:pe,label:`Claude`},openai:{color:S,mono:S,label:`OpenAI`},gemini:{color:de,mono:me,label:`Gemini`},copilot:{color:fe,mono:he,label:`GitHub Copilot`},codex:{color:S,mono:S,label:`Codex (OpenAI)`},opencode:{color:T,mono:T,label:`OpenCode`},discord:{color:C,mono:C,label:`Discord`},telegram:{color:w,mono:w,label:`Telegram`}};function E(e,t=`color`){let n=e.toLowerCase().replace(/[-_\s]/g,``),r;if(n===`claude`||n.startsWith(`claude`))r=`claude`;else if(n===`gemini`||n.startsWith(`gemini`))r=`gemini`;else if(n.startsWith(`copilot`)||n===`githubcopilot`)r=`copilot`;else if(n===`codex`)r=`codex`;else if(n===`opencode`)r=`opencode`;else if(n===`openai`||n.startsWith(`gpt`)||n.startsWith(`o1`)||n.startsWith(`o3`)||n.startsWith(`o4`))r=`openai`;else if(n===`discord`)r=`discord`;else if(n===`telegram`)r=`telegram`;else return``;let i=ge[r];return t===`mono`?i.mono:i.color}function _e(e=document.body){let t=e.querySelectorAll(`[data-provider]`);for(let e of t){let t=E(e.dataset.provider||``);t&&(e.innerHTML=t,e.classList.add(`cli-provider-icon`))}}var D=null;function O(e){let t=document.getElementById(`headerCli`);if(!t)return;let n=E(e);t.innerHTML=n?`${n} ${o(e)}`:o(e)}function k(e){let t=e.finally(()=>{D===t&&(D=null)});return D=t,t}async function A(){let e=D;e&&await e}function j(e){return e.charAt(0).toUpperCase()+e.slice(1)}function M(e){return document.getElementById(`model`+j(e))}function N(e){return document.getElementById(`customModel`+j(e))}function P(e){return document.getElementById(`effort`+j(e))}function F(e,t,{includeCustom:n=!1,includeDefault:r=!1,selected:a=``}={}){if(!e)return;let s=r?`<option value="default">default</option>`:``,c=n?`<option value="__custom__">${i(`model.customOption`)}</option>`:``;e.innerHTML=s+(t||[]).map(e=>`<option value="${o(e)}">${o(e)}</option>`).join(``)+c,a&&Array.from(e.options).some(e=>e.value===a)&&(e.value=a)}function I(e,t){if(!e||!t||Array.from(e.options).some(e=>e.value===t))return;let n=document.createElement(`option`);n.value=t,n.textContent=t;let r=e.querySelector(`option[value="__custom__"]`);r?e.insertBefore(n,r):e.appendChild(n)}function ve(e=null){let t=d(),n=document.getElementById(`selCli`);if(n){let r=e?.cli||n.value||t[0]||`claude`;n.innerHTML=t.map(e=>{let t=u(e)?.label||e;return`<option value="${o(e)}">${o(t)}</option>`}).join(``),Array.from(n.options).some(e=>e.value===r)&&(n.value=r)}let r=document.getElementById(`flushCli`);if(r){let n=e?.memory?.cli||r.value||``;r.innerHTML=`<option value="">(active CLI)</option>`+t.map(e=>`<option value="${o(e)}">${o(e)}</option>`).join(``),Array.from(r.options).some(e=>e.value===n)&&(r.value=n)}}function L(e,t){if(e!==`claude`)return t;let n=(t||``).trim();switch(n){case`claude-opus-4-6[1m]`:case`claude-opus-4-6`:case`claude-opus-4-7[1m]`:case`claude-opus-4-7`:case`opus[1m]`:return`opus`;case`claude-sonnet-4-6[1m]`:return`sonnet[1m]`;case`claude-sonnet-4-6`:case`claude-sonnet-4-5`:return`sonnet`;case`claude-haiku-4-5`:case`claude-haiku-4-5-20251001`:return`haiku`;default:return n}}function ye(e=null){for(let t of d()){let n=M(t);if(n){let r=L(t,e?.perCli?.[t]?.model||n.value||``);F(n,f[t]||[],{includeCustom:!0,selected:r}),r&&!Array.from(n.options).some(e=>e.value===r)&&(I(n,r),n.value=r)}let r=P(t);if(r){let n=u(t),i=[``].concat(n?.efforts||[]),a=e?.perCli?.[t]?.effort||r.value||``,s=[...new Set(i)],c=n?.efforts?.length===0&&n?.effortNote?n.effortNote:`— none`;r.innerHTML=s.map(e=>e?`<option value="${o(e)}">${o(e)}</option>`:`<option value="">${o(c)}</option>`).join(``),n?.effortNote&&(r.title=n.effortNote),r.disabled=n?.efforts?.length===0&&!!n?.effortNote,Array.from(r.options).some(e=>e.value===a)&&(r.value=a)}}}function R(e,t=``){let n=document.getElementById(`selEffort`);if(!n)return;let r=u(e);if(r?.effortNote){n.innerHTML=`<option value="">${o(r.effortNote)}</option>`,n.title=r.effortNote,n.disabled=!0;return}let i=[``].concat(r?.efforts||[]);n.innerHTML=[...new Set(i)].map(e=>e?`<option value="${o(e)}">${o(e)}</option>`:`<option value="">— none</option>`).join(``),n.disabled=!1,n.title=``,Array.from(n.options).some(e=>e.value===t)&&(n.value=t)}async function z(){await l();let e=await r(`/api/settings`);if(!e)return;s(e.locale??``),ve(e),ye(e);let t=document.getElementById(`selCli`);t&&Array.from(t.options).some(t=>t.value===e.cli)&&(t.value=e.cli);let n=document.getElementById(`inpCwd`);n&&(n.textContent=e.workingDir);let i=document.getElementById(`headerCli`);if(i){let t=E(e.cli);i.innerHTML=t?`${t} ${o(e.cli)}`:o(e.cli)}if(V(e.permissions,!1),e.perCli)for(let[t,n]of Object.entries(e.perCli)){let e=M(t),r=P(t);if(e&&n.model){let r=L(t,n.model);I(e,r),e.value=r}if(r&&(r.value=n.effort||``),t===`codex`&&n.fastMode!==void 0&&(document.getElementById(`codexFastOn`)?.classList.toggle(`active`,n.fastMode),document.getElementById(`codexFastOff`)?.classList.toggle(`active`,!n.fastMode)),t===`codex`){let e=!!n.contextWindow;document.getElementById(`codexCtxOn`)?.classList.toggle(`active`,e),document.getElementById(`codexCtxOff`)?.classList.toggle(`active`,!e);let t=document.getElementById(`codexCtxValues`);t&&(t.style.display=e?``:`none`);let r=document.getElementById(`codexCtxWindow`),i=document.getElementById(`codexCtxCompact`);r&&n.contextWindowSize&&(r.value=String(n.contextWindowSize)),i&&n.contextCompactLimit&&(i.value=String(n.contextCompactLimit))}if(t===`claude`){let e=!!(n.model&&String(n.model).endsWith(`[1m]`));document.getElementById(`claude1mOn`)?.classList.toggle(`active`,e),document.getElementById(`claude1mOff`)?.classList.toggle(`active`,!e)}}G(!1);let a=e.activeOverrides?.[e.cli]||{},c=e.perCli?.[e.cli]||{},u=a.model||c.model,d=a.effort||c.effort||``,f=document.getElementById(`selModel`);if(u&&f){let t=L(e.cli,u);t&&!Array.from(f.options).some(e=>e.value===t)&&I(f,t),f.value=t}R(e.cli,d),re(e),g(e),v(e),y(e),x(),p(e.stt||{})}async function B(){let e={cli:document.getElementById(`selCli`)?.value||`claude`};return k((async()=>{let t=await n(`/api/settings`,`PUT`,e);if(!t){await z();return}let r=t.cli||e.cli,i=document.getElementById(`selCli`);i&&Array.from(i.options).some(e=>e.value===r)&&(i.value=r),O(r)})())}function V(e,n=!0){n&&t(`/api/settings`,`PUT`,{permissions:`auto`})}function H(e){let t=M(e);return t?t.value===`__custom__`?N(e)?.value?.trim()||t.options[0]?.value||`default`:t.value:`default`}function be(e,t){let n=N(e);n&&(t.value===`__custom__`?(n.style.display=`block`,n.focus()):(n.style.display=`none`,e===`claude`&&U(t.value),W()))}function U(e){let t=!!(e&&e.endsWith(`[1m]`));document.getElementById(`claude1mOn`)?.classList.toggle(`active`,t),document.getElementById(`claude1mOff`)?.classList.toggle(`active`,!t)}function xe(e,t){let n=t.value.trim();if(!n)return;let r=M(e);r&&(I(r,n),r.value=n,t.style.display=`none`,e===`claude`&&U(n),W())}async function W(){let e={};for(let t of d()){if(!M(t))continue;let n=P(t),r={model:H(t),effort:n?n.value:``};if(t===`codex`){r.fastMode=document.getElementById(`codexFastOn`)?.classList.contains(`active`)??!1,r.contextWindow=document.getElementById(`codexCtxOn`)?.classList.contains(`active`)??!1;let e=document.getElementById(`codexCtxWindow`),t=document.getElementById(`codexCtxCompact`);r.contextWindowSize=parseInt(e?.value||`1000000`,10),r.contextCompactLimit=parseInt(t?.value||`900000`,10)}e[t]=r}await n(`/api/settings`,`PUT`,{perCli:e})}function G(e=!0){let t=document.getElementById(`selCli`)?.value||`claude`,n=f[t]||[],a=document.getElementById(`selModel`);F(a,n,{includeCustom:!0,includeDefault:!0}),O(t),R(t);let o=document.getElementById(`selModelCustom`);o&&o.remove();let s=document.createElement(`input`);if(s.type=`text`,s.id=`selModelCustom`,s.className=`custom-model-input`,s.placeholder=i(`model.placeholder`),s.style.display=`none`,s.onchange=function(){let e=this.value.trim();!e||!a||(I(a,e),a.value=e,this.style.display=`none`,K())},!a){e&&B();return}a.parentElement?.appendChild(s),a.onchange=function(){this.value===`__custom__`?(s.style.display=`block`,s.focus()):(s.style.display=`none`,K())},r(`/api/settings`).then(e=>{if(!e)return;let n=e.activeOverrides?.[t]||{},r=e.perCli?.[t]||{},i=n.model||r.model,o=n.effort||r.effort||``;if(i&&a){let e=L(t,i);I(a,e),a.value=e}R(t,o)}),e&&B()}async function K(){let e=document.getElementById(`selCli`)?.value||`claude`,t=document.getElementById(`selModel`)?.value||`default`;t===`__custom__`&&(t=document.getElementById(`selModelCustom`)?.value?.trim()||`default`);let r=document.getElementById(`selEffort`),i={};i[e]={model:t},r&&!r.disabled&&(i[e].effort=r.value||``),await n(`/api/settings`,`PUT`,{activeOverrides:i})}function Se(){let e=f[document.getElementById(`flushCli`)?.value||document.getElementById(`selCli`)?.value||`claude`]||[];F(document.getElementById(`flushModel`),e,{includeDefault:!0}),q(),we()}async function Ce(){let e=await r(`/api/memory-files`);if(!e)return;let t=document.getElementById(`flushCli`),n=document.getElementById(`flushModel`);t&&e.cli&&(t.value=e.cli),F(n,f[e.cli||document.getElementById(`selCli`)?.value||`claude`]||[],{includeDefault:!0}),n&&e.model&&(I(n,e.model),n.value=e.model),q()}async function we(){await n(`/api/memory-files/settings`,`PUT`,{cli:document.getElementById(`flushCli`)?.value||``,model:document.getElementById(`flushModel`)?.value||``})}function q(){let e=document.getElementById(`flushAgentBadge`);if(!e)return;let t=document.getElementById(`flushCli`)?.value||``,n=document.getElementById(`flushModel`)?.value||``,r=t||document.getElementById(`selCli`)?.value||``,i=[];r&&i.push(t?r:`${r}*`),n&&n!==`default`&&i.push(n),e.textContent=i.length?`(${i.join(` / `)})`:``}async function J(t=!1){let n=Number(localStorage.getItem(`cliStatusInterval`)||300);if(!t&&e.cliStatusCache&&n>0&&Date.now()-e.cliStatusTs<n*1e3){Y({cliStatus:e.cliStatusCache?.cliStatus,quota:e.cliStatusCache?.quota});return}let i=document.getElementById(`cliStatusList`);i&&(i.innerHTML=`<div style="color:var(--text-dim);font-size:11px">Loading...</div>`);let[a,o]=await Promise.all([r(`/api/cli-status`),r(`/api/quota`)]);e.cliStatusCache={cliStatus:a,quota:o},e.cliStatusTs=Date.now(),Y({cliStatus:a,quota:o})}function Y(e){let{cliStatus:t,quota:n}=e,s=document.getElementById(`cliStatusList`),c={claude:{install:`npm i -g @anthropic-ai/claude-code`,auth:`claude auth`},codex:{install:`npm i -g @openai/codex`,auth:`codex login`},gemini:{install:`npm i -g @google/gemini-cli`,auth:`gemini (${i(`cli.gemini.auth`)})`},opencode:{install:`npm i -g opencode-ai`,auth:`opencode auth`},copilot:{install:`npm i -g copilot`,auth:`copilot login 또는 gh auth login`}},l=``;if(!t||typeof t!=`object`){s&&(s.innerHTML=`<div style="color:var(--text-dim);font-size:11px">Failed to load CLI status</div>`);return}for(let[e,r]of Object.entries(t)){let t=n?.[e],s;s=r.available?!t||t.error?`ok`:t.authenticated===!1?`warn`:`ok`:`missing`;let u=``;if(t?.account){let e=[];t.account.email&&e.push(t.account.email),t.account.type&&e.push(t.account.type),t.account.plan&&e.push(t.account.plan),t.account.tier&&e.push(t.account.tier),e.length&&(u=`<div style="font-size:10px;color:var(--text-dim);margin:2px 0 4px 16px">${o(e.join(` · `))}</div>`)}let d=``;if(!r.available||s===`warn`){let t=c[e];if(t){let e=!r.available,n=i(e?`cli.authRequired`:`cli.notAuthenticated`),a=e?`#ef4444`:`#fbbf24`;d=`
12
+ `,ge={claude:{color:ue,mono:pe,label:`Claude`},openai:{color:S,mono:S,label:`OpenAI`},gemini:{color:de,mono:me,label:`Gemini`},copilot:{color:fe,mono:he,label:`GitHub Copilot`},codex:{color:S,mono:S,label:`Codex (OpenAI)`},opencode:{color:T,mono:T,label:`OpenCode`},discord:{color:C,mono:C,label:`Discord`},telegram:{color:w,mono:w,label:`Telegram`}};function E(e,t=`color`){let n=e.toLowerCase().replace(/[-_\s]/g,``),r;if(n===`claude`||n.startsWith(`claude`))r=`claude`;else if(n===`gemini`||n.startsWith(`gemini`))r=`gemini`;else if(n.startsWith(`copilot`)||n===`githubcopilot`)r=`copilot`;else if(n===`codex`)r=`codex`;else if(n===`opencode`)r=`opencode`;else if(n===`openai`||n.startsWith(`gpt`)||n.startsWith(`o1`)||n.startsWith(`o3`)||n.startsWith(`o4`))r=`openai`;else if(n===`discord`)r=`discord`;else if(n===`telegram`)r=`telegram`;else return``;let i=ge[r];return t===`mono`?i.mono:i.color}function _e(e=document.body){let t=e.querySelectorAll(`[data-provider]`);for(let e of t){let t=E(e.dataset.provider||``);t&&(e.innerHTML=t,e.classList.add(`cli-provider-icon`))}}var D=null;function O(e){let t=document.getElementById(`headerCli`);if(!t)return;let n=E(e);t.innerHTML=n?`${n} ${o(e)}`:o(e)}function k(e){let t=e.finally(()=>{D===t&&(D=null)});return D=t,t}async function A(){let e=D;e&&await e}function j(e){return e.charAt(0).toUpperCase()+e.slice(1)}function M(e){return document.getElementById(`model`+j(e))}function N(e){return document.getElementById(`customModel`+j(e))}function P(e){return document.getElementById(`effort`+j(e))}function F(e,t,{includeCustom:n=!1,includeDefault:r=!1,selected:a=``}={}){if(!e)return;let s=r?`<option value="default">default</option>`:``,c=n?`<option value="__custom__">${i(`model.customOption`)}</option>`:``;e.innerHTML=s+(t||[]).map(e=>`<option value="${o(e)}">${o(e)}</option>`).join(``)+c,a&&Array.from(e.options).some(e=>e.value===a)&&(e.value=a)}function I(e,t){if(!e||!t||Array.from(e.options).some(e=>e.value===t))return;let n=document.createElement(`option`);n.value=t,n.textContent=t;let r=e.querySelector(`option[value="__custom__"]`);r?e.insertBefore(n,r):e.appendChild(n)}function ve(e=null){let t=d(),n=document.getElementById(`selCli`);if(n){let r=e?.cli||n.value||t[0]||`claude`;n.innerHTML=t.map(e=>{let t=u(e)?.label||e;return`<option value="${o(e)}">${o(t)}</option>`}).join(``),Array.from(n.options).some(e=>e.value===r)&&(n.value=r)}let r=document.getElementById(`flushCli`);if(r){let n=e?.memory?.cli||r.value||``;r.innerHTML=`<option value="">(active CLI)</option>`+t.map(e=>`<option value="${o(e)}">${o(e)}</option>`).join(``),Array.from(r.options).some(e=>e.value===n)&&(r.value=n)}}function L(e,t){if(e!==`claude`)return t;let n=(t||``).trim();switch(n){case`claude-opus-4-6[1m]`:case`claude-opus-4-6`:case`claude-opus-4-7[1m]`:case`claude-opus-4-7`:case`opus[1m]`:return`opus`;case`claude-sonnet-4-6[1m]`:return`sonnet[1m]`;case`claude-sonnet-4-6`:case`claude-sonnet-4-5`:return`sonnet`;case`claude-haiku-4-5`:case`claude-haiku-4-5-20251001`:return`haiku`;default:return n}}function ye(e=null){for(let t of d()){let n=M(t);if(n){let r=L(t,e?.perCli?.[t]?.model||n.value||``);F(n,f[t]||[],{includeCustom:!0,selected:r}),r&&!Array.from(n.options).some(e=>e.value===r)&&(I(n,r),n.value=r)}let r=P(t);if(r){let n=u(t),i=[``].concat(n?.efforts||[]),a=e?.perCli?.[t]?.effort||r.value||``,s=[...new Set(i)],c=n?.efforts?.length===0&&n?.effortNote?n.effortNote:`— none`;r.innerHTML=s.map(e=>e?`<option value="${o(e)}">${o(e)}</option>`:`<option value="">${o(c)}</option>`).join(``),n?.effortNote&&(r.title=n.effortNote),r.disabled=n?.efforts?.length===0&&!!n?.effortNote,Array.from(r.options).some(e=>e.value===a)&&(r.value=a)}}}function R(e,t=``){let n=document.getElementById(`selEffort`);if(!n)return;let r=u(e);if(r?.effortNote){n.innerHTML=`<option value="">${o(r.effortNote)}</option>`,n.title=r.effortNote,n.disabled=!0;return}let i=[``].concat(r?.efforts||[]);n.innerHTML=[...new Set(i)].map(e=>e?`<option value="${o(e)}">${o(e)}</option>`:`<option value="">— none</option>`).join(``),n.disabled=!1,n.title=``,Array.from(n.options).some(e=>e.value===t)&&(n.value=t)}async function z(){await l();let e=await r(`/api/settings`);if(!e)return;s(e.locale??``),ve(e),ye(e);let t=document.getElementById(`selCli`);t&&Array.from(t.options).some(t=>t.value===e.cli)&&(t.value=e.cli);let n=document.getElementById(`inpCwd`);n&&(n.textContent=e.workingDir);let i=document.getElementById(`headerCli`);if(i){let t=E(e.cli);i.innerHTML=t?`${t} ${o(e.cli)}`:o(e.cli)}if(V(e.permissions,!1),e.perCli)for(let[t,n]of Object.entries(e.perCli)){let e=M(t),r=P(t);if(e&&n.model){let r=L(t,n.model);I(e,r),e.value=r}if(r&&(r.value=n.effort||``),t===`codex`&&n.fastMode!==void 0&&(document.getElementById(`codexFastOn`)?.classList.toggle(`active`,n.fastMode),document.getElementById(`codexFastOff`)?.classList.toggle(`active`,!n.fastMode)),t===`codex`){let e=!!n.contextWindow;document.getElementById(`codexCtxOn`)?.classList.toggle(`active`,e),document.getElementById(`codexCtxOff`)?.classList.toggle(`active`,!e);let t=document.getElementById(`codexCtxValues`);t&&(t.style.display=e?``:`none`);let r=document.getElementById(`codexCtxWindow`),i=document.getElementById(`codexCtxCompact`);r&&n.contextWindowSize&&(r.value=String(n.contextWindowSize)),i&&n.contextCompactLimit&&(i.value=String(n.contextCompactLimit))}if(t===`claude`){let e=!!(n.model&&String(n.model).endsWith(`[1m]`));document.getElementById(`claude1mOn`)?.classList.toggle(`active`,e),document.getElementById(`claude1mOff`)?.classList.toggle(`active`,!e)}}G(!1);let a=e.activeOverrides?.[e.cli]||{},c=e.perCli?.[e.cli]||{},u=a.model||c.model,d=a.effort||c.effort||``,f=document.getElementById(`selModel`);if(u&&f){let t=L(e.cli,u);t&&!Array.from(f.options).some(e=>e.value===t)&&I(f,t),f.value=t}R(e.cli,d),re(e),g(e),v(e),y(e),x(),p(e.stt||{})}async function B(){let e={cli:document.getElementById(`selCli`)?.value||`claude`};return k((async()=>{let t=await n(`/api/settings`,`PUT`,e);if(!t){await z();return}let r=t.cli||e.cli,i=document.getElementById(`selCli`);i&&Array.from(i.options).some(e=>e.value===r)&&(i.value=r),O(r)})())}function V(e,n=!0){n&&t(`/api/settings`,`PUT`,{permissions:`auto`})}function H(e){let t=M(e);return t?t.value===`__custom__`?N(e)?.value?.trim()||t.options[0]?.value||`default`:t.value:`default`}function be(e,t){let n=N(e);n&&(t.value===`__custom__`?(n.style.display=`block`,n.focus()):(n.style.display=`none`,e===`claude`&&U(t.value),W()))}function U(e){let t=!!(e&&e.endsWith(`[1m]`));document.getElementById(`claude1mOn`)?.classList.toggle(`active`,t),document.getElementById(`claude1mOff`)?.classList.toggle(`active`,!t)}function xe(e,t){let n=t.value.trim();if(!n)return;let r=M(e);r&&(I(r,n),r.value=n,t.style.display=`none`,e===`claude`&&U(n),W())}async function W(){let e={};for(let t of d()){if(!M(t))continue;let n=P(t),r={model:H(t),effort:n?n.value:``};if(t===`codex`){r.fastMode=document.getElementById(`codexFastOn`)?.classList.contains(`active`)??!1,r.contextWindow=document.getElementById(`codexCtxOn`)?.classList.contains(`active`)??!1;let e=document.getElementById(`codexCtxWindow`),t=document.getElementById(`codexCtxCompact`);r.contextWindowSize=parseInt(e?.value||`1000000`,10),r.contextCompactLimit=parseInt(t?.value||`900000`,10)}e[t]=r}await n(`/api/settings`,`PUT`,{perCli:e})}function G(e=!0){let t=document.getElementById(`selCli`)?.value||`claude`,n=f[t]||[],a=document.getElementById(`selModel`);F(a,n,{includeCustom:!0,includeDefault:!0}),O(t),R(t);let o=document.getElementById(`selModelCustom`);o&&o.remove();let s=document.createElement(`input`);if(s.type=`text`,s.id=`selModelCustom`,s.className=`custom-model-input`,s.placeholder=i(`model.placeholder`),s.style.display=`none`,s.onchange=function(){let e=this.value.trim();!e||!a||(I(a,e),a.value=e,this.style.display=`none`,K())},!a){e&&B();return}a.parentElement?.appendChild(s),a.onchange=function(){this.value===`__custom__`?(s.style.display=`block`,s.focus()):(s.style.display=`none`,K())},r(`/api/settings`).then(e=>{if(!e)return;let n=e.activeOverrides?.[t]||{},r=e.perCli?.[t]||{},i=n.model||r.model,o=n.effort||r.effort||``;if(i&&a){let e=L(t,i);I(a,e),a.value=e}R(t,o)}),e&&B()}async function K(){let e=document.getElementById(`selCli`)?.value||`claude`,t=document.getElementById(`selModel`)?.value||`default`;t===`__custom__`&&(t=document.getElementById(`selModelCustom`)?.value?.trim()||`default`);let r=document.getElementById(`selEffort`),i={};i[e]={model:t},r&&!r.disabled&&(i[e].effort=r.value||``),await n(`/api/settings`,`PUT`,{activeOverrides:i})}function Se(){let e=f[document.getElementById(`flushCli`)?.value||document.getElementById(`selCli`)?.value||`claude`]||[];F(document.getElementById(`flushModel`),e,{includeDefault:!0}),q(),we()}async function Ce(){let e=await r(`/api/memory-files`);if(!e)return;let t=document.getElementById(`flushCli`),n=document.getElementById(`flushModel`);t&&e.cli&&(t.value=e.cli),F(n,f[e.cli||document.getElementById(`selCli`)?.value||`claude`]||[],{includeDefault:!0}),n&&e.model&&(I(n,e.model),n.value=e.model),q()}async function we(){await n(`/api/memory-files/settings`,`PUT`,{cli:document.getElementById(`flushCli`)?.value||``,model:document.getElementById(`flushModel`)?.value||``})}function q(){let e=document.getElementById(`flushAgentBadge`);if(!e)return;let t=document.getElementById(`flushCli`)?.value||``,n=document.getElementById(`flushModel`)?.value||``,r=t||document.getElementById(`selCli`)?.value||``,i=[];r&&i.push(t?r:`${r}*`),n&&n!==`default`&&i.push(n),e.textContent=i.length?`(${i.join(` / `)})`:``}function Te(e,t){return e===`gemini`?t===`Pro`||t===`P`?`P`:t===`Flash`||t===`F`?`F`:t:e===`copilot`&&(t===`Premium`||t===`Prem`||t.includes(`plus monthly subscriber quota`))?`30d`:t.replace(`-hour`,`h`).replace(`-day`,`d`).replace(` Sonnet`,``).replace(` Opus`,``)}async function J(t=!1){let n=Number(localStorage.getItem(`cliStatusInterval`)||300);if(!t&&e.cliStatusCache&&n>0&&Date.now()-e.cliStatusTs<n*1e3){Y({cliStatus:e.cliStatusCache?.cliStatus,quota:e.cliStatusCache?.quota});return}let i=document.getElementById(`cliStatusList`);i&&(i.innerHTML=`<div style="color:var(--text-dim);font-size:11px">Loading...</div>`);let[a,o]=await Promise.all([r(`/api/cli-status`),r(`/api/quota`)]);e.cliStatusCache={cliStatus:a,quota:o},e.cliStatusTs=Date.now(),Y({cliStatus:a,quota:o})}function Y(e){let{cliStatus:t,quota:n}=e,s=document.getElementById(`cliStatusList`),c={claude:{install:`npm i -g @anthropic-ai/claude-code`,auth:`claude auth`},codex:{install:`npm i -g @openai/codex`,auth:`codex login`},gemini:{install:`npm i -g @google/gemini-cli`,auth:`gemini (${i(`cli.gemini.auth`)})`},opencode:{install:`npm i -g opencode-ai`,auth:`opencode auth`},copilot:{install:`npm i -g copilot`,auth:`copilot login 또는 gh auth login`}},l=``;if(!t||typeof t!=`object`){s&&(s.innerHTML=`<div style="color:var(--text-dim);font-size:11px">Failed to load CLI status</div>`);return}for(let[e,r]of Object.entries(t)){let t=n?.[e],s;s=r.available?!t||t.error?`ok`:t.authenticated===!1?`warn`:`ok`:`missing`;let u=``;if(t?.account){let e=[];t.account.email&&e.push(t.account.email),t.account.type&&e.push(t.account.type),t.account.plan&&e.push(t.account.plan),t.account.tier&&e.push(t.account.tier),e.length&&(u=`<div style="font-size:10px;color:var(--text-dim);margin:2px 0 4px 16px">${o(e.join(` · `))}</div>`)}let d=``;if(!r.available||s===`warn`){let t=c[e];if(t){let e=!r.available,n=i(e?`cli.authRequired`:`cli.notAuthenticated`),a=e?`#ef4444`:`#fbbf24`;d=`
13
13
  <div style="font-size:10px;margin:4px 0 2px 16px;padding:6px 8px;background:var(--bg-dim, #1e1e2e);border-radius:4px;border-left:2px solid ${a}">
14
14
  <div style="color:${a};margin-bottom:3px">${n}</div>
15
15
  ${e?`<div style="color:var(--text-dim)"><code style="font-size:10px;background:var(--border);padding:1px 4px;border-radius:2px">${o(t.install)}</code></div>`:``}
16
16
  <div style="color:var(--text-dim)${e?`;margin-top:2px`:``}"><code style="font-size:10px;background:var(--border);padding:1px 4px;border-radius:2px">${o(t.auth)}</code></div>
17
17
  </div>
18
- `}}let f=``;if(t?.windows?.length)f=t.windows.map(e=>{let t=Math.round(e.percent),n=t>80?`#ef4444`:t>50?`#fbbf24`:`#38bdf8`,r=e.label.replace(`-hour`,`h`).replace(`-day`,`d`).replace(` Sonnet`,``).replace(` Opus`,``).replace(`plus monthly subscriber quota`,`plus`).replace(`Premium`,`Prem`),i=``;if(e.resetsAt){let t=new Date(typeof e.resetsAt==`number`?e.resetsAt*1e3:e.resetsAt),n=new Date;i=t.toDateString()===n.toDateString()?`${t.getHours()}:${String(t.getMinutes()).padStart(2,`0`)}`:`${t.getMonth()+1}/${t.getDate()}`}return`
18
+ `}}let f=``;if(t?.windows?.length)f=t.windows.map(t=>{let n=Math.round(t.percent),r=n>80?`#ef4444`:n>50?`#fbbf24`:`#38bdf8`,i=Te(e,t.label),a=``;if(t.resetsAt){let e=new Date(typeof t.resetsAt==`number`?t.resetsAt*1e3:t.resetsAt),n=new Date;a=e.toDateString()===n.toDateString()?`${e.getHours()}:${String(e.getMinutes()).padStart(2,`0`)}`:`${e.getMonth()+1}/${e.getDate()}`}return`
19
19
  <div style="display:flex;align-items:center;gap:4px;margin-left:16px;font-size:10px;color:var(--text-dim)">
20
- <span style="min-width:18px;max-width:48px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">${o(r)}</span>
20
+ <span style="min-width:18px;max-width:48px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">${o(i)}</span>
21
21
  <div style="flex:1;height:4px;background:var(--border);border-radius:2px;overflow:hidden">
22
- <div style="width:${t}%;height:100%;background:${n};border-radius:2px"></div>
22
+ <div style="width:${n}%;height:100%;background:${r};border-radius:2px"></div>
23
23
  </div>
24
- <span style="width:24px;text-align:right">${t}%</span>
25
- ${i?`<span style="width:30px;text-align:right;opacity:0.6">${i}</span>`:``}
24
+ <span style="width:24px;text-align:right">${n}%</span>
25
+ ${a?`<span style="width:30px;text-align:right;opacity:0.6">${a}</span>`:``}
26
26
  </div>
27
27
  `}).join(``);else if(t?.error&&r.available){let e=t.reason===`rate_limited`?`Rate limited — retry in a moment`:`Usage data unavailable`;f=`<div style="font-size:10px;color:var(--text-dim);margin:2px 0 0 16px;opacity:0.7">${a.warning} ${e}</div>`}l+=`
28
28
  <div class="settings-group" style="margin-bottom:6px;padding:8px 10px">
@@ -37,4 +37,4 @@ import{t as e}from"./state-O6NVkWcL.js";import{n as t,r as n,t as r}from"./api-D
37
37
  </div>
38
38
  `}s&&(s.innerHTML=l);let u=Object.entries(t);!u.some(([e,t])=>{if(!t.available)return!1;let r=n?.[e];return!r||r.authenticated!==!1})&&u.length>0&&s&&s.insertAdjacentHTML(`afterbegin`,`<div style="padding:8px 10px;margin-bottom:8px;background:#fbbf2422;border:1px solid #fbbf24;border-radius:6px;font-size:11px;color:#fbbf24">
39
39
  ${a.warning} ${i(`cli.noReadyCli`)}
40
- </div>`);let d=document.getElementById(`copilotKeychainBtn`);d&&d.addEventListener(`click`,async()=>{let e=d;e.disabled=!0,e.innerHTML=a.hourglass;try{let t=await r(`/api/copilot/refresh`,{method:`POST`});e.innerHTML=t?.ok?a.check:a.error,t?.ok&&await J(!0)}catch{e.innerHTML=a.error}setTimeout(()=>{e.innerHTML=a.key,e.disabled=!1},2e3)})}function Te(){r(`/api/prompt`).then(e=>{if(!e)return;let t=document.getElementById(`modalPromptEditor`);t&&(t.value=e.content||``),document.getElementById(`promptModal`)?.classList.add(`open`)})}function Ee(e){e&&e.target!==e.currentTarget||document.getElementById(`promptModal`)?.classList.remove(`open`)}async function De(){await n(`/api/prompt`,`PUT`,{content:document.getElementById(`modalPromptEditor`)?.value||``}),document.getElementById(`promptModal`)?.classList.remove(`open`)}var X=[],Z=!1;async function Oe(){let e=await r(`/api/prompt-templates`);e&&(X=e.templates,Z=!1,Q(e.tree),$(`tree`),document.getElementById(`templateModal`)?.classList.add(`open`))}function Q(e){let t=document.getElementById(`templateTree`);if(t){t.innerHTML=``;for(let n of e){let e=document.createElement(`div`);e.style.cssText=`background:var(--bg);border:1px solid var(--accent);border-radius:6px;padding:8px 10px;margin:8px 0 4px;font-size:12px;color:var(--accent);font-weight:600`,e.textContent=`${n.emoji} ${n.label}`,t.appendChild(e);for(let e of n.children){let n=X.find(t=>t.id===e);if(!n)continue;let r=document.createElement(`div`);r.style.cssText=`background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:6px 10px;margin:2px 0 2px 24px;font-size:12px;cursor:pointer;transition:border-color .15s`,r.innerHTML=`${a.file} ${o(n.filename)}`,r.addEventListener(`mouseenter`,()=>{r.style.borderColor=`var(--accent2)`}),r.addEventListener(`mouseleave`,()=>{r.style.borderColor=`var(--border)`}),r.addEventListener(`click`,()=>{ke(n)}),t.appendChild(r)}}}}function ke(e){let t=document.getElementById(`templateEditor`);t.value=e.content,t.dataset.templateId=e.id,t.readOnly=!0,Z=!1;let n=document.getElementById(`templateEditorLabel`);n&&(n.innerHTML=`${a.file} ${o(e.filename)}`);let r=e.content.match(/\{\{[A-Z_]+\}\}/g),i=document.getElementById(`templateVars`);i&&(i.textContent=r?`vars: ${[...new Set(r)].join(`, `)}`:`no variables`);let s=document.getElementById(`templateSaveBtn`);s&&(s.style.display=`none`);let l=document.getElementById(`templateDevToggle`);l&&(l.style.color=`var(--text-dim)`,l.style.borderColor=`var(--border)`,l.innerHTML=`${a.tool} ${c(`devMode`)}`);let u=document.getElementById(`templateModalTitle`);u&&(u.innerHTML=`${a.file} ${o(e.filename)}`),$(`editor`)}function Ae(){if(!Z&&!confirm(c(`promptEditWarning`)))return;Z=!Z;let e=document.getElementById(`templateEditor`);e.readOnly=!Z;let t=document.getElementById(`templateSaveBtn`);t&&(t.style.display=Z?``:`none`);let n=document.getElementById(`templateDevToggle`);n&&(n.style.color=Z?`var(--stop-btn)`:`var(--text-dim)`,n.style.borderColor=Z?`var(--stop-btn)`:`var(--border)`,n.innerHTML=Z?`${a.lockOpen} ${c(`devModeOn`)}`:`${a.tool} ${c(`devMode`)}`)}async function je(){let e=document.getElementById(`templateEditor`),t=e.dataset.templateId;if(!t)return;await n(`/api/prompt-templates/${t}`,`PUT`,{content:e.value});let r=document.getElementById(`templateEditorLabel`);r&&(r.innerHTML=`${a.check} ${c(`savedAndReloaded`)}`,setTimeout(()=>{r.innerHTML=`${a.file} ${o(t)}.md`},2e3));let i=X.find(e=>e.id===t);i&&(i.content=e.value)}function $(e){let t=document.getElementById(`templateTreeView`),n=document.getElementById(`templateEditorView`);t&&(t.style.display=e===`tree`?``:`none`),n&&(n.style.display=e===`editor`?`flex`:`none`);let r=document.getElementById(`templateModalTitle`);r&&e===`tree`&&(r.innerHTML=`${a.plan} ${c(`promptStructure`)}`)}function Me(){$(`tree`)}function Ne(e){e&&e.target!==e.currentTarget||document.getElementById(`templateModal`)?.classList.remove(`open`)}export{ae as A,le as C,b as D,y as E,te as F,ee as I,ne as L,oe as M,h as N,_ as O,m as P,p as R,_e as S,ce as T,K as _,De as a,B as b,Ae as c,H as d,be as f,Se as g,G as h,Oe as i,se as j,ie as k,J as l,z as m,Ne as n,je as o,Ce as p,Te as r,Me as s,Ee as t,xe as u,W as v,x as w,A as x,V as y};
40
+ </div>`);let d=document.getElementById(`copilotKeychainBtn`);d&&d.addEventListener(`click`,async()=>{let e=d;e.disabled=!0,e.innerHTML=a.hourglass;try{let t=await r(`/api/copilot/refresh`,{method:`POST`});e.innerHTML=t?.ok?a.check:a.error,t?.ok&&await J(!0)}catch{e.innerHTML=a.error}setTimeout(()=>{e.innerHTML=a.key,e.disabled=!1},2e3)})}function Ee(){r(`/api/prompt`).then(e=>{if(!e)return;let t=document.getElementById(`modalPromptEditor`);t&&(t.value=e.content||``),document.getElementById(`promptModal`)?.classList.add(`open`)})}function De(e){e&&e.target!==e.currentTarget||document.getElementById(`promptModal`)?.classList.remove(`open`)}async function Oe(){await n(`/api/prompt`,`PUT`,{content:document.getElementById(`modalPromptEditor`)?.value||``}),document.getElementById(`promptModal`)?.classList.remove(`open`)}var X=[],Z=!1;async function Q(){let e=await r(`/api/prompt-templates`);e&&(X=e.templates,Z=!1,ke(e.tree),$(`tree`),document.getElementById(`templateModal`)?.classList.add(`open`))}function ke(e){let t=document.getElementById(`templateTree`);if(t){t.innerHTML=``;for(let n of e){let e=document.createElement(`div`);e.style.cssText=`background:var(--bg);border:1px solid var(--accent);border-radius:6px;padding:8px 10px;margin:8px 0 4px;font-size:12px;color:var(--accent);font-weight:600`,e.textContent=`${n.emoji} ${n.label}`,t.appendChild(e);for(let e of n.children){let n=X.find(t=>t.id===e);if(!n)continue;let r=document.createElement(`div`);r.style.cssText=`background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:6px 10px;margin:2px 0 2px 24px;font-size:12px;cursor:pointer;transition:border-color .15s`,r.innerHTML=`${a.file} ${o(n.filename)}`,r.addEventListener(`mouseenter`,()=>{r.style.borderColor=`var(--accent2)`}),r.addEventListener(`mouseleave`,()=>{r.style.borderColor=`var(--border)`}),r.addEventListener(`click`,()=>{Ae(n)}),t.appendChild(r)}}}}function Ae(e){let t=document.getElementById(`templateEditor`);t.value=e.content,t.dataset.templateId=e.id,t.readOnly=!0,Z=!1;let n=document.getElementById(`templateEditorLabel`);n&&(n.innerHTML=`${a.file} ${o(e.filename)}`);let r=e.content.match(/\{\{[A-Z_]+\}\}/g),i=document.getElementById(`templateVars`);i&&(i.textContent=r?`vars: ${[...new Set(r)].join(`, `)}`:`no variables`);let s=document.getElementById(`templateSaveBtn`);s&&(s.style.display=`none`);let l=document.getElementById(`templateDevToggle`);l&&(l.style.color=`var(--text-dim)`,l.style.borderColor=`var(--border)`,l.innerHTML=`${a.tool} ${c(`devMode`)}`);let u=document.getElementById(`templateModalTitle`);u&&(u.innerHTML=`${a.file} ${o(e.filename)}`),$(`editor`)}function je(){if(!Z&&!confirm(c(`promptEditWarning`)))return;Z=!Z;let e=document.getElementById(`templateEditor`);e.readOnly=!Z;let t=document.getElementById(`templateSaveBtn`);t&&(t.style.display=Z?``:`none`);let n=document.getElementById(`templateDevToggle`);n&&(n.style.color=Z?`var(--stop-btn)`:`var(--text-dim)`,n.style.borderColor=Z?`var(--stop-btn)`:`var(--border)`,n.innerHTML=Z?`${a.lockOpen} ${c(`devModeOn`)}`:`${a.tool} ${c(`devMode`)}`)}async function Me(){let e=document.getElementById(`templateEditor`),t=e.dataset.templateId;if(!t)return;await n(`/api/prompt-templates/${t}`,`PUT`,{content:e.value});let r=document.getElementById(`templateEditorLabel`);r&&(r.innerHTML=`${a.check} ${c(`savedAndReloaded`)}`,setTimeout(()=>{r.innerHTML=`${a.file} ${o(t)}.md`},2e3));let i=X.find(e=>e.id===t);i&&(i.content=e.value)}function $(e){let t=document.getElementById(`templateTreeView`),n=document.getElementById(`templateEditorView`);t&&(t.style.display=e===`tree`?``:`none`),n&&(n.style.display=e===`editor`?`flex`:`none`);let r=document.getElementById(`templateModalTitle`);r&&e===`tree`&&(r.innerHTML=`${a.plan} ${c(`promptStructure`)}`)}function Ne(){$(`tree`)}function Pe(e){e&&e.target!==e.currentTarget||document.getElementById(`templateModal`)?.classList.remove(`open`)}export{ae as A,le as C,b as D,y as E,te as F,ee as I,ne as L,oe as M,h as N,_ as O,m as P,p as R,_e as S,ce as T,K as _,Oe as a,B as b,je as c,H as d,be as f,Se as g,G as h,Q as i,se as j,ie as k,J as l,z as m,Pe as n,Me as o,Ce as p,Ee as r,Ne as s,De as t,xe as u,W as v,x as w,A as x,V as y};
@@ -0,0 +1 @@
1
+ import{b as e,m as t,v as n}from"./settings-B8oUfDm4.js";export{t as loadSettings,n as savePerCli,e as updateSettings};
@@ -1,4 +1,4 @@
1
- import{t as e}from"./state-O6NVkWcL.js";import{r as t}from"./api-DygAf_G_.js";import{_ as n,l as r,n as i,p as a,u as o}from"./render-CulTuvJs.js";var s=[`productivity`,`communication`,`devtools`,`ai-media`,`utility`,`smarthome`,`automation`];async function c(){try{e.allSkills=await(await a(`/api/skills`)).json(),l()}catch{let e=document.getElementById(`skillsList`);e&&(e.innerHTML=`<div style="color:var(--text-dim);font-size:11px">${n(`skill.loadFail`)}</div>`)}}function l(){let t=document.getElementById(`skillsList`),a=document.getElementById(`skillsCount`);if(!t||!a)return;let c=e.allSkills,l=c;e.currentSkillFilter===`installed`?l=c.filter(e=>e.enabled):e.currentSkillFilter===`other`?l=c.filter(e=>!s.includes(e.category||``)):e.currentSkillFilter!==`all`&&(l=c.filter(t=>t.category===e.currentSkillFilter));let u=c.filter(e=>e.enabled).length;a.textContent=n(`skill.count`,{active:u,total:c.length}),t.innerHTML=l.map(e=>{let t=[];return e.requires?.env&&t.push(`${r.key} `+e.requires.env.map(e=>i(e)).join(`, `)),e.requires?.bins&&t.push(`${r.settings} `+e.requires.bins.map(e=>i(e)).join(`, `)),e.install&&t.push(i(e.install)),`
1
+ import{t as e}from"./state-CPF7TImo.js";import{r as t}from"./api-CnBOYa3F.js";import{_ as n,l as r,n as i,p as a,u as o}from"./render-D9bnLVR_.js";var s=[`productivity`,`communication`,`devtools`,`ai-media`,`utility`,`smarthome`,`automation`];async function c(){try{e.allSkills=await(await a(`/api/skills`)).json(),l()}catch{let e=document.getElementById(`skillsList`);e&&(e.innerHTML=`<div style="color:var(--text-dim);font-size:11px">${n(`skill.loadFail`)}</div>`)}}function l(){let t=document.getElementById(`skillsList`),a=document.getElementById(`skillsCount`);if(!t||!a)return;let c=e.allSkills,l=c;e.currentSkillFilter===`installed`?l=c.filter(e=>e.enabled):e.currentSkillFilter===`other`?l=c.filter(e=>!s.includes(e.category||``)):e.currentSkillFilter!==`all`&&(l=c.filter(t=>t.category===e.currentSkillFilter));let u=c.filter(e=>e.enabled).length;a.textContent=n(`skill.count`,{active:u,total:c.length}),t.innerHTML=l.map(e=>{let t=[];return e.requires?.env&&t.push(`${r.key} `+e.requires.env.map(e=>i(e)).join(`, `)),e.requires?.bins&&t.push(`${r.settings} `+e.requires.bins.map(e=>i(e)).join(`, `)),e.install&&t.push(i(e.install)),`
2
2
  <div class="skill-card ${e.enabled?`enabled`:``}">
3
3
  <div class="skill-card-header">
4
4
  <span class="skill-emoji">${e.emoji?o(e.emoji):r.tool}</span>
@@ -0,0 +1 @@
1
+ import{n as e}from"./skills-CHB_WsxF.js";export{e as loadSkills};
@@ -1,4 +1,4 @@
1
- import{t as e}from"./api-DygAf_G_.js";import{_ as t,n}from"./render-CulTuvJs.js";import{t as r}from"./locale-CxI5nTcf.js";var i=[],a=[],o=-1,s=!1,c=null;function l(e){let t=String(e||``).slice(1).trim().split(/\s+/)[0]||``;return t.includes(`/`)||t.includes(`\\`)}var u=()=>document.getElementById(`cmdDropdown`),d=()=>document.getElementById(`chatInput`);function f(e){let t=String(e||``).toLowerCase();return i.filter(e=>`/${e.name}`.startsWith(t))}function p(){let e=u(),t=d();!e||!t||(c&&=(clearTimeout(c),null),e.style.display=`block`,requestAnimationFrame(()=>e.classList.add(`visible`)),s=!0,t.setAttribute(`aria-expanded`,`true`))}function m(){let e=u(),r=d();if(!e||!r)return;if(!a.length){if(!r.value.startsWith(`/`)||l(r.value)){_();return}e.innerHTML=`
1
+ import{t as e}from"./api-CnBOYa3F.js";import{_ as t,n}from"./render-D9bnLVR_.js";import{t as r}from"./locale-heAuYK-3.js";var i=[],a=[],o=-1,s=!1,c=null;function l(e){let t=String(e||``).slice(1).trim().split(/\s+/)[0]||``;return t.includes(`/`)||t.includes(`\\`)}var u=()=>document.getElementById(`cmdDropdown`),d=()=>document.getElementById(`chatInput`);function f(e){let t=String(e||``).toLowerCase();return i.filter(e=>`/${e.name}`.startsWith(t))}function p(){let e=u(),t=d();!e||!t||(c&&=(clearTimeout(c),null),e.style.display=`block`,requestAnimationFrame(()=>e.classList.add(`visible`)),s=!0,t.setAttribute(`aria-expanded`,`true`))}function m(){let e=u(),r=d();if(!e||!r)return;if(!a.length){if(!r.value.startsWith(`/`)||l(r.value)){_();return}e.innerHTML=`
2
2
  <div class="cmd-item cmd-empty" role="option" aria-disabled="true">
3
3
  ${t(`cmd.noMatch`)}
4
4
  </div>
@@ -0,0 +1 @@
1
+ import{a as e}from"./slash-commands-CbsN2LqT.js";export{e as loadCommands};
@@ -0,0 +1 @@
1
+ import{s as e}from"./vendor-mermaid-DHVxHqbi.js";export{e as diagram};
@@ -0,0 +1 @@
1
+ import{o as e}from"./vendor-mermaid-DHVxHqbi.js";export{e as diagram};
@@ -0,0 +1 @@
1
+ import{a as e}from"./vendor-mermaid-DHVxHqbi.js";export{e as diagram};
@@ -0,0 +1 @@
1
+ import{R as e}from"./vendor-mermaid-DHVxHqbi.js";export{e as createTreeViewServices};
@@ -0,0 +1 @@
1
+ import{I as e}from"./vendor-mermaid-DHVxHqbi.js";export{e as createTreemapServices};