@oro.ad/nuxt-claude-devtools 1.2.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/README.md +107 -14
  2. package/dist/client/200.html +1 -1
  3. package/dist/client/404.html +1 -1
  4. package/dist/client/_nuxt/{CSlPuO5s.js → 0BAoaFXM.js} +1 -1
  5. package/dist/client/_nuxt/88aFj9mk.js +1 -0
  6. package/dist/client/_nuxt/{CLKqRoht.js → B5vRr8Ti.js} +1 -1
  7. package/dist/client/_nuxt/BI4BFakr.js +1 -0
  8. package/dist/client/_nuxt/{o1jjB-UO.js → BJuQJ8yP.js} +1 -1
  9. package/dist/client/_nuxt/BMxGt8ZG.js +1 -0
  10. package/dist/client/_nuxt/Baq9Hzkz.js +1 -0
  11. package/dist/client/_nuxt/Bf779K50.js +1 -0
  12. package/dist/client/_nuxt/BmF8r-gh.js +1 -0
  13. package/dist/client/_nuxt/BryQ1L4F.js +1 -0
  14. package/dist/client/_nuxt/BsG0VKct.js +1 -0
  15. package/dist/client/_nuxt/Bt-DdLhQ.js +12 -0
  16. package/dist/client/_nuxt/C6Xm_PzB.js +1 -0
  17. package/dist/client/_nuxt/C8AkZ-W3.js +1 -0
  18. package/dist/client/_nuxt/CEM1iRz_.js +1 -0
  19. package/dist/client/_nuxt/CETmet01.js +1 -0
  20. package/dist/client/_nuxt/CG1tBJBN.js +1 -0
  21. package/dist/client/_nuxt/CXOn8Upj.js +1 -0
  22. package/dist/client/_nuxt/CYomf6PL.js +1 -0
  23. package/dist/client/_nuxt/CrhTgxiU.js +1 -0
  24. package/dist/client/_nuxt/{08Mb3FOO.js → CtWfW1XP.js} +1 -1
  25. package/dist/client/_nuxt/CuUOvg0u.js +1 -0
  26. package/dist/client/_nuxt/CxYvL5O5.js +1 -0
  27. package/dist/client/_nuxt/D8DUrd91.js +1 -0
  28. package/dist/client/_nuxt/DFkDlupw.js +4 -0
  29. package/dist/client/_nuxt/DG-9quB_.js +1 -0
  30. package/dist/client/_nuxt/DHlhBFAg.js +1 -0
  31. package/dist/client/_nuxt/DJw5U4z8.js +1 -0
  32. package/dist/client/_nuxt/DRReoGGV.js +1 -0
  33. package/dist/client/_nuxt/{b4Upel01.js → DSMailoF.js} +1 -1
  34. package/dist/client/_nuxt/DUPgidXP.js +1 -0
  35. package/dist/client/_nuxt/D_JyZ6Hh.js +1 -0
  36. package/dist/client/_nuxt/Dgm9zqhP.js +12 -0
  37. package/dist/client/_nuxt/builds/latest.json +1 -1
  38. package/dist/client/_nuxt/builds/meta/9c3f4183-f791-4377-86dc-370ce38cc49b.json +1 -0
  39. package/dist/client/_nuxt/entry.BMxUr06A.css +1 -0
  40. package/dist/client/_nuxt/h1c4XpR7.js +1 -0
  41. package/dist/client/_nuxt/kN0L7CSs.js +1 -0
  42. package/dist/client/_nuxt/n4TwJfzb.js +1 -0
  43. package/dist/client/_nuxt/zY60w9UT.js +1 -0
  44. package/dist/client/agents/index.html +1 -1
  45. package/dist/client/commands/index.html +1 -1
  46. package/dist/client/docs/index.html +1 -1
  47. package/dist/client/index.html +1 -1
  48. package/dist/client/mcp/index.html +1 -1
  49. package/dist/client/plugins/index.html +1 -0
  50. package/dist/client/settings/index.html +1 -0
  51. package/dist/client/skills/index.html +1 -1
  52. package/dist/module.d.mts +12 -1
  53. package/dist/module.json +1 -1
  54. package/dist/module.mjs +23 -5
  55. package/dist/runtime/constants.d.ts +29 -0
  56. package/dist/runtime/constants.js +5 -0
  57. package/dist/runtime/overlay/components/ChatOverlay.d.vue.ts +6 -0
  58. package/dist/runtime/overlay/components/ChatOverlay.vue +383 -0
  59. package/dist/runtime/overlay/components/ChatOverlay.vue.d.ts +6 -0
  60. package/dist/runtime/overlay/components/MarkdownContent.d.vue.ts +6 -0
  61. package/dist/runtime/overlay/components/MarkdownContent.vue +31 -0
  62. package/dist/runtime/overlay/components/MarkdownContent.vue.d.ts +6 -0
  63. package/dist/runtime/overlay/components/ToolCallBlock.d.vue.ts +8 -0
  64. package/dist/runtime/overlay/components/ToolCallBlock.vue +77 -0
  65. package/dist/runtime/overlay/components/ToolCallBlock.vue.d.ts +8 -0
  66. package/dist/runtime/overlay/components/chat/ChatHeader.d.vue.ts +18 -0
  67. package/dist/runtime/overlay/components/chat/ChatHeader.vue +82 -0
  68. package/dist/runtime/overlay/components/chat/ChatHeader.vue.d.ts +18 -0
  69. package/dist/runtime/overlay/components/chat/ChatInput.d.vue.ts +22 -0
  70. package/dist/runtime/overlay/components/chat/ChatInput.vue +526 -0
  71. package/dist/runtime/overlay/components/chat/ChatInput.vue.d.ts +22 -0
  72. package/dist/runtime/overlay/components/chat/ChatMessages.d.vue.ts +13 -0
  73. package/dist/runtime/overlay/components/chat/ChatMessages.vue +160 -0
  74. package/dist/runtime/overlay/components/chat/ChatMessages.vue.d.ts +13 -0
  75. package/dist/runtime/overlay/components/chat/ClaudeBadge.d.vue.ts +22 -0
  76. package/dist/runtime/overlay/components/chat/ClaudeBadge.vue +85 -0
  77. package/dist/runtime/overlay/components/chat/ClaudeBadge.vue.d.ts +22 -0
  78. package/dist/runtime/overlay/components/chat/HistoryPanel.d.vue.ts +17 -0
  79. package/dist/runtime/overlay/components/chat/HistoryPanel.vue +65 -0
  80. package/dist/runtime/overlay/components/chat/HistoryPanel.vue.d.ts +17 -0
  81. package/dist/runtime/overlay/components/chat/NicknameModal.d.vue.ts +13 -0
  82. package/dist/runtime/overlay/components/chat/NicknameModal.vue +89 -0
  83. package/dist/runtime/overlay/components/chat/NicknameModal.vue.d.ts +13 -0
  84. package/dist/runtime/overlay/components/chat/index.d.ts +6 -0
  85. package/dist/runtime/overlay/components/chat/index.js +6 -0
  86. package/dist/runtime/overlay/composables/index.d.ts +3 -0
  87. package/dist/runtime/overlay/composables/index.js +3 -0
  88. package/dist/runtime/overlay/composables/useMessageContext.d.ts +25 -0
  89. package/dist/runtime/overlay/composables/useMessageContext.js +29 -0
  90. package/dist/runtime/overlay/composables/useMobileSwipe.d.ts +15 -0
  91. package/dist/runtime/overlay/composables/useMobileSwipe.js +79 -0
  92. package/dist/runtime/overlay/composables/usePanelInteraction.d.ts +30 -0
  93. package/dist/runtime/overlay/composables/usePanelInteraction.js +184 -0
  94. package/dist/runtime/overlay/composables/usePanelPosition.d.ts +69 -0
  95. package/dist/runtime/overlay/composables/usePanelPosition.js +147 -0
  96. package/dist/runtime/overlay/plugin.client.d.ts +6 -0
  97. package/dist/runtime/overlay/plugin.client.js +29 -0
  98. package/dist/runtime/server/agents-manager.d.ts +17 -4
  99. package/dist/runtime/server/agents-manager.js +38 -109
  100. package/dist/runtime/server/base-resource-manager.d.ts +90 -0
  101. package/dist/runtime/server/base-resource-manager.js +201 -0
  102. package/dist/runtime/server/claude-session.d.ts +22 -1
  103. package/dist/runtime/server/claude-session.js +408 -29
  104. package/dist/runtime/server/commands-manager.d.ts +12 -4
  105. package/dist/runtime/server/commands-manager.js +25 -100
  106. package/dist/runtime/server/constants.d.ts +94 -0
  107. package/dist/runtime/server/constants.js +18 -0
  108. package/dist/runtime/server/docs-manager.d.ts +7 -0
  109. package/dist/runtime/server/docs-manager.js +112 -3
  110. package/dist/runtime/server/history-manager.d.ts +1 -0
  111. package/dist/runtime/server/history-manager.js +25 -3
  112. package/dist/runtime/server/plugins/socket.io.js +5 -3
  113. package/dist/runtime/server/plugins-manager.d.ts +84 -0
  114. package/dist/runtime/server/plugins-manager.js +338 -0
  115. package/dist/runtime/server/settings-manager.d.ts +17 -0
  116. package/dist/runtime/server/settings-manager.js +70 -0
  117. package/dist/runtime/server/share-manager.d.ts +24 -0
  118. package/dist/runtime/server/share-manager.js +96 -0
  119. package/dist/runtime/server/skills-manager.d.ts +18 -4
  120. package/dist/runtime/server/skills-manager.js +32 -159
  121. package/dist/runtime/shared/composables/useClaudeChat.d.ts +39 -0
  122. package/dist/runtime/shared/composables/useClaudeChat.js +40 -0
  123. package/dist/runtime/shared/composables/useClaudeChatCore.d.ts +40 -0
  124. package/dist/runtime/shared/composables/useClaudeChatCore.js +350 -0
  125. package/dist/runtime/shared/composables/useMessageContext.d.ts +54 -0
  126. package/dist/runtime/shared/composables/useMessageContext.js +195 -0
  127. package/dist/runtime/shared/composables/useShare.d.ts +52 -0
  128. package/dist/runtime/shared/composables/useShare.js +214 -0
  129. package/dist/runtime/shared/composables/useVoiceInput.d.ts +8 -0
  130. package/dist/runtime/shared/composables/useVoiceInput.js +106 -0
  131. package/dist/runtime/shared/constants.d.ts +28 -0
  132. package/dist/runtime/shared/constants.js +6 -0
  133. package/dist/runtime/shared/index.d.ts +9 -0
  134. package/dist/runtime/shared/index.js +5 -0
  135. package/dist/runtime/shared/types.d.ts +84 -0
  136. package/dist/runtime/shared/types.js +0 -0
  137. package/dist/runtime/types.d.ts +16 -0
  138. package/dist/types.d.mts +1 -1
  139. package/package.json +5 -3
  140. package/dist/client/_nuxt/BMi2eT6G.js +0 -1
  141. package/dist/client/_nuxt/BiBLVxWh.js +0 -1
  142. package/dist/client/_nuxt/BnRGpZsC.js +0 -8
  143. package/dist/client/_nuxt/C2GhPw5d.js +0 -7
  144. package/dist/client/_nuxt/CPQSDiF7.js +0 -12
  145. package/dist/client/_nuxt/D8683igF.js +0 -7
  146. package/dist/client/_nuxt/DBIw6BGF.js +0 -1
  147. package/dist/client/_nuxt/DCgjfr8H.js +0 -9
  148. package/dist/client/_nuxt/bl5iU4Kz.js +0 -1
  149. package/dist/client/_nuxt/builds/meta/35284331-5e85-46e0-9058-988fea05336c.json +0 -1
  150. package/dist/client/_nuxt/entry.BhHeZ_Nj.css +0 -1
  151. package/dist/client/_nuxt/nKfsBgPE.js +0 -4
@@ -1 +0,0 @@
1
- import{_ as me}from"./bl5iU4Kz.js";import{c as te,o as I,n as _e,g as be,L as J,H as C,a as we,s as ve,l as Ee,M as ke,q as x}from"./nKfsBgPE.js";const se={__name:"NIcon",props:{icon:{type:String,required:!1}},setup(n){return(e,t)=>(I(),te("div",{class:_e(["n-icon",n.icon])},null,2))}},At=be({name:"NButton",props:{to:String,icon:String,border:{type:Boolean,default:!0},disabled:Boolean,type:{type:String,default:"button"}},setup(n,{attrs:e,slots:t}){return()=>J(n.to?me:"button",{to:n.to,...e,...!n.to&&{type:n.type},...n.disabled?{disabled:!0}:{tabindex:0},class:[n.border?"n-button-base active:n-button-active focus-visible:n-focus-base hover:n-button-hover":"",t.default?"":"n-icon-button","n-button n-transition n-disabled:n-disabled"].join(" ")},{default:()=>[C(t,"icon",{},()=>n.icon?[J(se,{icon:n.icon,class:t.default?"n-button-icon":""})]:[]),C(t,"default")]})}}),Ae={class:"n-tip n-tip-base"},Tt={__name:"NTip",props:{icon:{type:String,required:!1}},setup(n){return(e,t)=>{const s=se;return I(),te("div",Ae,[C(e.$slots,"icon",{},()=>[n.icon?(I(),ve(s,{key:0,icon:n.icon,class:"n-tip-icon"},null,8,["icon"])):Ee("",!0)]),we("div",null,[C(e.$slots,"default")])])}}},y=Object.create(null);y.open="0";y.close="1";y.ping="2";y.pong="3";y.message="4";y.upgrade="5";y.noop="6";const T=Object.create(null);Object.keys(y).forEach(n=>{T[y[n]]=n});const V={type:"error",data:"parser error"},ne=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",ie=typeof ArrayBuffer=="function",re=n=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(n):n&&n.buffer instanceof ArrayBuffer,K=({type:n,data:e},t,s)=>ne&&e instanceof Blob?t?s(e):Q(e,s):ie&&(e instanceof ArrayBuffer||re(e))?t?s(e):Q(new Blob([e]),s):s(y[n]+(e||"")),Q=(n,e)=>{const t=new FileReader;return t.onload=function(){const s=t.result.split(",")[1];e("b"+(s||""))},t.readAsDataURL(n)};function j(n){return n instanceof Uint8Array?n:n instanceof ArrayBuffer?new Uint8Array(n):new Uint8Array(n.buffer,n.byteOffset,n.byteLength)}let L;function Te(n,e){if(ne&&n.data instanceof Blob)return n.data.arrayBuffer().then(j).then(e);if(ie&&(n.data instanceof ArrayBuffer||re(n.data)))return e(j(n.data));K(n,!1,t=>{L||(L=new TextEncoder),e(L.encode(t))})}const G="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",E=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let n=0;n<G.length;n++)E[G.charCodeAt(n)]=n;const Re=n=>{let e=n.length*.75,t=n.length,s,i=0,r,o,c,h;n[n.length-1]==="="&&(e--,n[n.length-2]==="="&&e--);const g=new ArrayBuffer(e),f=new Uint8Array(g);for(s=0;s<t;s+=4)r=E[n.charCodeAt(s)],o=E[n.charCodeAt(s+1)],c=E[n.charCodeAt(s+2)],h=E[n.charCodeAt(s+3)],f[i++]=r<<2|o>>4,f[i++]=(o&15)<<4|c>>2,f[i++]=(c&3)<<6|h&63;return g},Oe=typeof ArrayBuffer=="function",W=(n,e)=>{if(typeof n!="string")return{type:"message",data:oe(n,e)};const t=n.charAt(0);return t==="b"?{type:"message",data:Ce(n.substring(1),e)}:T[t]?n.length>1?{type:T[t],data:n.substring(1)}:{type:T[t]}:V},Ce=(n,e)=>{if(Oe){const t=Re(n);return oe(t,e)}else return{base64:!0,data:n}},oe=(n,e)=>e==="blob"?n instanceof Blob?n:new Blob([n]):n instanceof ArrayBuffer?n:n.buffer,ae="",Be=(n,e)=>{const t=n.length,s=new Array(t);let i=0;n.forEach((r,o)=>{K(r,!1,c=>{s[o]=c,++i===t&&e(s.join(ae))})})},Se=(n,e)=>{const t=n.split(ae),s=[];for(let i=0;i<t.length;i++){const r=W(t[i],e);if(s.push(r),r.type==="error")break}return s};function Ne(){return new TransformStream({transform(n,e){Te(n,t=>{const s=t.length;let i;if(s<126)i=new Uint8Array(1),new DataView(i.buffer).setUint8(0,s);else if(s<65536){i=new Uint8Array(3);const r=new DataView(i.buffer);r.setUint8(0,126),r.setUint16(1,s)}else{i=new Uint8Array(9);const r=new DataView(i.buffer);r.setUint8(0,127),r.setBigUint64(1,BigInt(s))}n.data&&typeof n.data!="string"&&(i[0]|=128),e.enqueue(i),e.enqueue(t)})}})}let q;function k(n){return n.reduce((e,t)=>e+t.length,0)}function A(n,e){if(n[0].length===e)return n.shift();const t=new Uint8Array(e);let s=0;for(let i=0;i<e;i++)t[i]=n[0][s++],s===n[0].length&&(n.shift(),s=0);return n.length&&s<n[0].length&&(n[0]=n[0].slice(s)),t}function xe(n,e){q||(q=new TextDecoder);const t=[];let s=0,i=-1,r=!1;return new TransformStream({transform(o,c){for(t.push(o);;){if(s===0){if(k(t)<1)break;const h=A(t,1);r=(h[0]&128)===128,i=h[0]&127,i<126?s=3:i===126?s=1:s=2}else if(s===1){if(k(t)<2)break;const h=A(t,2);i=new DataView(h.buffer,h.byteOffset,h.length).getUint16(0),s=3}else if(s===2){if(k(t)<8)break;const h=A(t,8),g=new DataView(h.buffer,h.byteOffset,h.length),f=g.getUint32(0);if(f>Math.pow(2,21)-1){c.enqueue(V);break}i=f*Math.pow(2,32)+g.getUint32(4),s=3}else{if(k(t)<i)break;const h=A(t,i);c.enqueue(W(r?h:q.decode(h),e)),s=0}if(i===0||i>n){c.enqueue(V);break}}}})}const ce=4;function u(n){if(n)return Le(n)}function Le(n){for(var e in u.prototype)n[e]=u.prototype[e];return n}u.prototype.on=u.prototype.addEventListener=function(n,e){return this._callbacks=this._callbacks||{},(this._callbacks["$"+n]=this._callbacks["$"+n]||[]).push(e),this};u.prototype.once=function(n,e){function t(){this.off(n,t),e.apply(this,arguments)}return t.fn=e,this.on(n,t),this};u.prototype.off=u.prototype.removeListener=u.prototype.removeAllListeners=u.prototype.removeEventListener=function(n,e){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var t=this._callbacks["$"+n];if(!t)return this;if(arguments.length==1)return delete this._callbacks["$"+n],this;for(var s,i=0;i<t.length;i++)if(s=t[i],s===e||s.fn===e){t.splice(i,1);break}return t.length===0&&delete this._callbacks["$"+n],this};u.prototype.emit=function(n){this._callbacks=this._callbacks||{};for(var e=new Array(arguments.length-1),t=this._callbacks["$"+n],s=1;s<arguments.length;s++)e[s-1]=arguments[s];if(t){t=t.slice(0);for(var s=0,i=t.length;s<i;++s)t[s].apply(this,e)}return this};u.prototype.emitReserved=u.prototype.emit;u.prototype.listeners=function(n){return this._callbacks=this._callbacks||{},this._callbacks["$"+n]||[]};u.prototype.hasListeners=function(n){return!!this.listeners(n).length};const S=typeof Promise=="function"&&typeof Promise.resolve=="function"?e=>Promise.resolve().then(e):(e,t)=>t(e,0),l=typeof self<"u"?self:typeof window<"u"?window:Function("return this")(),qe="arraybuffer";function he(n,...e){return e.reduce((t,s)=>(n.hasOwnProperty(s)&&(t[s]=n[s]),t),{})}const Pe=l.setTimeout,De=l.clearTimeout;function N(n,e){e.useNativeTimers?(n.setTimeoutFn=Pe.bind(l),n.clearTimeoutFn=De.bind(l)):(n.setTimeoutFn=l.setTimeout.bind(l),n.clearTimeoutFn=l.clearTimeout.bind(l))}const Ie=1.33;function Ve(n){return typeof n=="string"?Ue(n):Math.ceil((n.byteLength||n.size)*Ie)}function Ue(n){let e=0,t=0;for(let s=0,i=n.length;s<i;s++)e=n.charCodeAt(s),e<128?t+=1:e<2048?t+=2:e<55296||e>=57344?t+=3:(s++,t+=4);return t}function ue(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}function Fe(n){let e="";for(let t in n)n.hasOwnProperty(t)&&(e.length&&(e+="&"),e+=encodeURIComponent(t)+"="+encodeURIComponent(n[t]));return e}function Me(n){let e={},t=n.split("&");for(let s=0,i=t.length;s<i;s++){let r=t[s].split("=");e[decodeURIComponent(r[0])]=decodeURIComponent(r[1])}return e}class $e extends Error{constructor(e,t,s){super(e),this.description=t,this.context=s,this.type="TransportError"}}class Y extends u{constructor(e){super(),this.writable=!1,N(this,e),this.opts=e,this.query=e.query,this.socket=e.socket,this.supportsBinary=!e.forceBase64}onError(e,t,s){return super.emitReserved("error",new $e(e,t,s)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return(this.readyState==="opening"||this.readyState==="open")&&(this.doClose(),this.onClose()),this}send(e){this.readyState==="open"&&this.write(e)}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(e){const t=W(e,this.socket.binaryType);this.onPacket(t)}onPacket(e){super.emitReserved("packet",e)}onClose(e){this.readyState="closed",super.emitReserved("close",e)}pause(e){}createUri(e,t={}){return e+"://"+this._hostname()+this._port()+this.opts.path+this._query(t)}_hostname(){const e=this.opts.hostname;return e.indexOf(":")===-1?e:"["+e+"]"}_port(){return this.opts.port&&(this.opts.secure&&Number(this.opts.port)!==443||!this.opts.secure&&Number(this.opts.port)!==80)?":"+this.opts.port:""}_query(e){const t=Fe(e);return t.length?"?"+t:""}}class He extends Y{constructor(){super(...arguments),this._polling=!1}get name(){return"polling"}doOpen(){this._poll()}pause(e){this.readyState="pausing";const t=()=>{this.readyState="paused",e()};if(this._polling||!this.writable){let s=0;this._polling&&(s++,this.once("pollComplete",function(){--s||t()})),this.writable||(s++,this.once("drain",function(){--s||t()}))}else t()}_poll(){this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(e){const t=s=>{if(this.readyState==="opening"&&s.type==="open"&&this.onOpen(),s.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(s)};Se(e,this.socket.binaryType).forEach(t),this.readyState!=="closed"&&(this._polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"&&this._poll())}doClose(){const e=()=>{this.write([{type:"close"}])};this.readyState==="open"?e():this.once("open",e)}write(e){this.writable=!1,Be(e,t=>{this.doWrite(t,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){const e=this.opts.secure?"https":"http",t=this.query||{};return this.opts.timestampRequests!==!1&&(t[this.opts.timestampParam]=ue()),!this.supportsBinary&&!t.sid&&(t.b64=1),this.createUri(e,t)}}let fe=!1;try{fe=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}const Ke=fe;function We(){}class Ye extends He{constructor(e){if(super(e),typeof location<"u"){const t=location.protocol==="https:";let s=location.port;s||(s=t?"443":"80"),this.xd=typeof location<"u"&&e.hostname!==location.hostname||s!==e.port}}doWrite(e,t){const s=this.request({method:"POST",data:e});s.on("success",t),s.on("error",(i,r)=>{this.onError("xhr post error",i,r)})}doPoll(){const e=this.request();e.on("data",this.onData.bind(this)),e.on("error",(t,s)=>{this.onError("xhr poll error",t,s)}),this.pollXhr=e}}class d extends u{constructor(e,t,s){super(),this.createRequest=e,N(this,s),this._opts=s,this._method=s.method||"GET",this._uri=t,this._data=s.data!==void 0?s.data:null,this._create()}_create(){var e;const t=he(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");t.xdomain=!!this._opts.xd;const s=this._xhr=this.createRequest(t);try{s.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){s.setDisableHeaderCheck&&s.setDisableHeaderCheck(!0);for(let i in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(i)&&s.setRequestHeader(i,this._opts.extraHeaders[i])}}catch{}if(this._method==="POST")try{s.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{s.setRequestHeader("Accept","*/*")}catch{}(e=this._opts.cookieJar)===null||e===void 0||e.addCookies(s),"withCredentials"in s&&(s.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(s.timeout=this._opts.requestTimeout),s.onreadystatechange=()=>{var i;s.readyState===3&&((i=this._opts.cookieJar)===null||i===void 0||i.parseCookies(s.getResponseHeader("set-cookie"))),s.readyState===4&&(s.status===200||s.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof s.status=="number"?s.status:0)},0))},s.send(this._data)}catch(i){this.setTimeoutFn(()=>{this._onError(i)},0);return}typeof document<"u"&&(this._index=d.requestsCount++,d.requests[this._index]=this)}_onError(e){this.emitReserved("error",e,this._xhr),this._cleanup(!0)}_cleanup(e){if(!(typeof this._xhr>"u"||this._xhr===null)){if(this._xhr.onreadystatechange=We,e)try{this._xhr.abort()}catch{}typeof document<"u"&&delete d.requests[this._index],this._xhr=null}}_onLoad(){const e=this._xhr.responseText;e!==null&&(this.emitReserved("data",e),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}}d.requestsCount=0;d.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",Z);else if(typeof addEventListener=="function"){const n="onpagehide"in l?"pagehide":"unload";addEventListener(n,Z,!1)}}function Z(){for(let n in d.requests)d.requests.hasOwnProperty(n)&&d.requests[n].abort()}const ze=(function(){const n=le({xdomain:!1});return n&&n.responseType!==null})();class Xe extends Ye{constructor(e){super(e);const t=e&&e.forceBase64;this.supportsBinary=ze&&!t}request(e={}){return Object.assign(e,{xd:this.xd},this.opts),new d(le,this.uri(),e)}}function le(n){const e=n.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!e||Ke))return new XMLHttpRequest}catch{}if(!e)try{return new l[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}const pe=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";class Je extends Y{get name(){return"websocket"}doOpen(){const e=this.uri(),t=this.opts.protocols,s=pe?{}:he(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(s.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(e,t,s)}catch(i){return this.emitReserved("error",i)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=e=>this.onClose({description:"websocket connection closed",context:e}),this.ws.onmessage=e=>this.onData(e.data),this.ws.onerror=e=>this.onError("websocket error",e)}write(e){this.writable=!1;for(let t=0;t<e.length;t++){const s=e[t],i=t===e.length-1;K(s,this.supportsBinary,r=>{try{this.doWrite(s,r)}catch{}i&&S(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.onerror=()=>{},this.ws.close(),this.ws=null)}uri(){const e=this.opts.secure?"wss":"ws",t=this.query||{};return this.opts.timestampRequests&&(t[this.opts.timestampParam]=ue()),this.supportsBinary||(t.b64=1),this.createUri(e,t)}}const P=l.WebSocket||l.MozWebSocket;class Qe extends Je{createSocket(e,t,s){return pe?new P(e,t,s):t?new P(e,t):new P(e)}doWrite(e,t){this.ws.send(t)}}class je extends Y{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(e){return this.emitReserved("error",e)}this._transport.closed.then(()=>{this.onClose()}).catch(e=>{this.onError("webtransport error",e)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(e=>{const t=xe(Number.MAX_SAFE_INTEGER,this.socket.binaryType),s=e.readable.pipeThrough(t).getReader(),i=Ne();i.readable.pipeTo(e.writable),this._writer=i.writable.getWriter();const r=()=>{s.read().then(({done:c,value:h})=>{c||(this.onPacket(h),r())}).catch(c=>{})};r();const o={type:"open"};this.query.sid&&(o.data=`{"sid":"${this.query.sid}"}`),this._writer.write(o).then(()=>this.onOpen())})})}write(e){this.writable=!1;for(let t=0;t<e.length;t++){const s=e[t],i=t===e.length-1;this._writer.write(s).then(()=>{i&&S(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var e;(e=this._transport)===null||e===void 0||e.close()}}const Ge={websocket:Qe,webtransport:je,polling:Xe},Ze=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,et=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function U(n){if(n.length>8e3)throw"URI too long";const e=n,t=n.indexOf("["),s=n.indexOf("]");t!=-1&&s!=-1&&(n=n.substring(0,t)+n.substring(t,s).replace(/:/g,";")+n.substring(s,n.length));let i=Ze.exec(n||""),r={},o=14;for(;o--;)r[et[o]]=i[o]||"";return t!=-1&&s!=-1&&(r.source=e,r.host=r.host.substring(1,r.host.length-1).replace(/;/g,":"),r.authority=r.authority.replace("[","").replace("]","").replace(/;/g,":"),r.ipv6uri=!0),r.pathNames=tt(r,r.path),r.queryKey=st(r,r.query),r}function tt(n,e){const t=/\/{2,9}/g,s=e.replace(t,"/").split("/");return(e.slice(0,1)=="/"||e.length===0)&&s.splice(0,1),e.slice(-1)=="/"&&s.splice(s.length-1,1),s}function st(n,e){const t={};return e.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(s,i,r){i&&(t[i]=r)}),t}const F=typeof addEventListener=="function"&&typeof removeEventListener=="function",R=[];F&&addEventListener("offline",()=>{R.forEach(n=>n())},!1);class _ extends u{constructor(e,t){if(super(),this.binaryType=qe,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,e&&typeof e=="object"&&(t=e,e=null),e){const s=U(e);t.hostname=s.host,t.secure=s.protocol==="https"||s.protocol==="wss",t.port=s.port,s.query&&(t.query=s.query)}else t.host&&(t.hostname=U(t.host).host);N(this,t),this.secure=t.secure!=null?t.secure:typeof location<"u"&&location.protocol==="https:",t.hostname&&!t.port&&(t.port=this.secure?"443":"80"),this.hostname=t.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=t.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},t.transports.forEach(s=>{const i=s.prototype.name;this.transports.push(i),this._transportsByName[i]=s}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},t),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=Me(this.opts.query)),F&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},R.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(e){const t=Object.assign({},this.opts.query);t.EIO=ce,t.transport=e,this.id&&(t.sid=this.id);const s=Object.assign({},this.opts,{query:t,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[e]);return new this._transportsByName[e](s)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}const e=this.opts.rememberUpgrade&&_.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1?"websocket":this.transports[0];this.readyState="opening";const t=this.createTransport(e);t.open(),this.setTransport(t)}setTransport(e){this.transport&&this.transport.removeAllListeners(),this.transport=e,e.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",t=>this._onClose("transport close",t))}onOpen(){this.readyState="open",_.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush()}_onPacket(e){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")switch(this.emitReserved("packet",e),this.emitReserved("heartbeat"),e.type){case"open":this.onHandshake(JSON.parse(e.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":const t=new Error("server error");t.code=e.data,this._onError(t);break;case"message":this.emitReserved("data",e.data),this.emitReserved("message",e.data);break}}onHandshake(e){this.emitReserved("handshake",e),this.id=e.sid,this.transport.query.sid=e.sid,this._pingInterval=e.pingInterval,this._pingTimeout=e.pingTimeout,this._maxPayload=e.maxPayload,this.onOpen(),this.readyState!=="closed"&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);const e=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+e,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},e),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const e=this._getWritablePackets();this.transport.send(e),this._prevBufferLen=e.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let t=1;for(let s=0;s<this.writeBuffer.length;s++){const i=this.writeBuffer[s].data;if(i&&(t+=Ve(i)),s>0&&t>this._maxPayload)return this.writeBuffer.slice(0,s);t+=2}return this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;const e=Date.now()>this._pingTimeoutTime;return e&&(this._pingTimeoutTime=0,S(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),e}write(e,t,s){return this._sendPacket("message",e,t,s),this}send(e,t,s){return this._sendPacket("message",e,t,s),this}_sendPacket(e,t,s,i){if(typeof t=="function"&&(i=t,t=void 0),typeof s=="function"&&(i=s,s=null),this.readyState==="closing"||this.readyState==="closed")return;s=s||{},s.compress=s.compress!==!1;const r={type:e,data:t,options:s};this.emitReserved("packetCreate",r),this.writeBuffer.push(r),i&&this.once("flush",i),this.flush()}close(){const e=()=>{this._onClose("forced close"),this.transport.close()},t=()=>{this.off("upgrade",t),this.off("upgradeError",t),e()},s=()=>{this.once("upgrade",t),this.once("upgradeError",t)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?s():e()}):this.upgrading?s():e()),this}_onError(e){if(_.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return this.transports.shift(),this._open();this.emitReserved("error",e),this._onClose("transport error",e)}_onClose(e,t){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing"){if(this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),F&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){const s=R.indexOf(this._offlineEventListener);s!==-1&&R.splice(s,1)}this.readyState="closed",this.id=null,this.emitReserved("close",e,t),this.writeBuffer=[],this._prevBufferLen=0}}}_.protocol=ce;class nt extends _{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade)for(let e=0;e<this._upgrades.length;e++)this._probe(this._upgrades[e])}_probe(e){let t=this.createTransport(e),s=!1;_.priorWebsocketSuccess=!1;const i=()=>{s||(t.send([{type:"ping",data:"probe"}]),t.once("packet",m=>{if(!s)if(m.type==="pong"&&m.data==="probe"){if(this.upgrading=!0,this.emitReserved("upgrading",t),!t)return;_.priorWebsocketSuccess=t.name==="websocket",this.transport.pause(()=>{s||this.readyState!=="closed"&&(f(),this.setTransport(t),t.send([{type:"upgrade"}]),this.emitReserved("upgrade",t),t=null,this.upgrading=!1,this.flush())})}else{const w=new Error("probe error");w.transport=t.name,this.emitReserved("upgradeError",w)}}))};function r(){s||(s=!0,f(),t.close(),t=null)}const o=m=>{const w=new Error("probe error: "+m);w.transport=t.name,r(),this.emitReserved("upgradeError",w)};function c(){o("transport closed")}function h(){o("socket closed")}function g(m){t&&m.name!==t.name&&r()}const f=()=>{t.removeListener("open",i),t.removeListener("error",o),t.removeListener("close",c),this.off("close",h),this.off("upgrading",g)};t.once("open",i),t.once("error",o),t.once("close",c),this.once("close",h),this.once("upgrading",g),this._upgrades.indexOf("webtransport")!==-1&&e!=="webtransport"?this.setTimeoutFn(()=>{s||t.open()},200):t.open()}onHandshake(e){this._upgrades=this._filterUpgrades(e.upgrades),super.onHandshake(e)}_filterUpgrades(e){const t=[];for(let s=0;s<e.length;s++)~this.transports.indexOf(e[s])&&t.push(e[s]);return t}}let it=class extends nt{constructor(e,t={}){const s=typeof e=="object"?e:t;(!s.transports||s.transports&&typeof s.transports[0]=="string")&&(s.transports=(s.transports||["polling","websocket","webtransport"]).map(i=>Ge[i]).filter(i=>!!i)),super(e,s)}};function rt(n,e="",t){let s=n;t=t||typeof location<"u"&&location,n==null&&(n=t.protocol+"//"+t.host),typeof n=="string"&&(n.charAt(0)==="/"&&(n.charAt(1)==="/"?n=t.protocol+n:n=t.host+n),/^(https?|wss?):\/\//.test(n)||(typeof t<"u"?n=t.protocol+"//"+n:n="https://"+n),s=U(n)),s.port||(/^(http|ws)$/.test(s.protocol)?s.port="80":/^(http|ws)s$/.test(s.protocol)&&(s.port="443")),s.path=s.path||"/";const r=s.host.indexOf(":")!==-1?"["+s.host+"]":s.host;return s.id=s.protocol+"://"+r+":"+s.port+e,s.href=s.protocol+"://"+r+(t&&t.port===s.port?"":":"+s.port),s}const ot=typeof ArrayBuffer=="function",at=n=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(n):n.buffer instanceof ArrayBuffer,de=Object.prototype.toString,ct=typeof Blob=="function"||typeof Blob<"u"&&de.call(Blob)==="[object BlobConstructor]",ht=typeof File=="function"||typeof File<"u"&&de.call(File)==="[object FileConstructor]";function z(n){return ot&&(n instanceof ArrayBuffer||at(n))||ct&&n instanceof Blob||ht&&n instanceof File}function O(n,e){if(!n||typeof n!="object")return!1;if(Array.isArray(n)){for(let t=0,s=n.length;t<s;t++)if(O(n[t]))return!0;return!1}if(z(n))return!0;if(n.toJSON&&typeof n.toJSON=="function"&&arguments.length===1)return O(n.toJSON(),!0);for(const t in n)if(Object.prototype.hasOwnProperty.call(n,t)&&O(n[t]))return!0;return!1}function ut(n){const e=[],t=n.data,s=n;return s.data=M(t,e),s.attachments=e.length,{packet:s,buffers:e}}function M(n,e){if(!n)return n;if(z(n)){const t={_placeholder:!0,num:e.length};return e.push(n),t}else if(Array.isArray(n)){const t=new Array(n.length);for(let s=0;s<n.length;s++)t[s]=M(n[s],e);return t}else if(typeof n=="object"&&!(n instanceof Date)){const t={};for(const s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=M(n[s],e));return t}return n}function ft(n,e){return n.data=$(n.data,e),delete n.attachments,n}function $(n,e){if(!n)return n;if(n&&n._placeholder===!0){if(typeof n.num=="number"&&n.num>=0&&n.num<e.length)return e[n.num];throw new Error("illegal attachments")}else if(Array.isArray(n))for(let t=0;t<n.length;t++)n[t]=$(n[t],e);else if(typeof n=="object")for(const t in n)Object.prototype.hasOwnProperty.call(n,t)&&(n[t]=$(n[t],e));return n}const ye=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"],lt=5;var a;(function(n){n[n.CONNECT=0]="CONNECT",n[n.DISCONNECT=1]="DISCONNECT",n[n.EVENT=2]="EVENT",n[n.ACK=3]="ACK",n[n.CONNECT_ERROR=4]="CONNECT_ERROR",n[n.BINARY_EVENT=5]="BINARY_EVENT",n[n.BINARY_ACK=6]="BINARY_ACK"})(a||(a={}));class pt{constructor(e){this.replacer=e}encode(e){return(e.type===a.EVENT||e.type===a.ACK)&&O(e)?this.encodeAsBinary({type:e.type===a.EVENT?a.BINARY_EVENT:a.BINARY_ACK,nsp:e.nsp,data:e.data,id:e.id}):[this.encodeAsString(e)]}encodeAsString(e){let t=""+e.type;return(e.type===a.BINARY_EVENT||e.type===a.BINARY_ACK)&&(t+=e.attachments+"-"),e.nsp&&e.nsp!=="/"&&(t+=e.nsp+","),e.id!=null&&(t+=e.id),e.data!=null&&(t+=JSON.stringify(e.data,this.replacer)),t}encodeAsBinary(e){const t=ut(e),s=this.encodeAsString(t.packet),i=t.buffers;return i.unshift(s),i}}class X extends u{constructor(e){super(),this.reviver=e}add(e){let t;if(typeof e=="string"){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");t=this.decodeString(e);const s=t.type===a.BINARY_EVENT;s||t.type===a.BINARY_ACK?(t.type=s?a.EVENT:a.ACK,this.reconstructor=new dt(t),t.attachments===0&&super.emitReserved("decoded",t)):super.emitReserved("decoded",t)}else if(z(e)||e.base64)if(this.reconstructor)t=this.reconstructor.takeBinaryData(e),t&&(this.reconstructor=null,super.emitReserved("decoded",t));else throw new Error("got binary data when not reconstructing a packet");else throw new Error("Unknown type: "+e)}decodeString(e){let t=0;const s={type:Number(e.charAt(0))};if(a[s.type]===void 0)throw new Error("unknown packet type "+s.type);if(s.type===a.BINARY_EVENT||s.type===a.BINARY_ACK){const r=t+1;for(;e.charAt(++t)!=="-"&&t!=e.length;);const o=e.substring(r,t);if(o!=Number(o)||e.charAt(t)!=="-")throw new Error("Illegal attachments");s.attachments=Number(o)}if(e.charAt(t+1)==="/"){const r=t+1;for(;++t&&!(e.charAt(t)===","||t===e.length););s.nsp=e.substring(r,t)}else s.nsp="/";const i=e.charAt(t+1);if(i!==""&&Number(i)==i){const r=t+1;for(;++t;){const o=e.charAt(t);if(o==null||Number(o)!=o){--t;break}if(t===e.length)break}s.id=Number(e.substring(r,t+1))}if(e.charAt(++t)){const r=this.tryParse(e.substr(t));if(X.isPayloadValid(s.type,r))s.data=r;else throw new Error("invalid payload")}return s}tryParse(e){try{return JSON.parse(e,this.reviver)}catch{return!1}}static isPayloadValid(e,t){switch(e){case a.CONNECT:return B(t);case a.DISCONNECT:return t===void 0;case a.CONNECT_ERROR:return typeof t=="string"||B(t);case a.EVENT:case a.BINARY_EVENT:return Array.isArray(t)&&(typeof t[0]=="number"||typeof t[0]=="string"&&ye.indexOf(t[0])===-1);case a.ACK:case a.BINARY_ACK:return Array.isArray(t)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}class dt{constructor(e){this.packet=e,this.buffers=[],this.reconPack=e}takeBinaryData(e){if(this.buffers.push(e),this.buffers.length===this.reconPack.attachments){const t=ft(this.reconPack,this.buffers);return this.finishedReconstruction(),t}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}function yt(n){return typeof n=="string"}const gt=Number.isInteger||function(n){return typeof n=="number"&&isFinite(n)&&Math.floor(n)===n};function mt(n){return n===void 0||gt(n)}function B(n){return Object.prototype.toString.call(n)==="[object Object]"}function _t(n,e){switch(n){case a.CONNECT:return e===void 0||B(e);case a.DISCONNECT:return e===void 0;case a.EVENT:return Array.isArray(e)&&(typeof e[0]=="number"||typeof e[0]=="string"&&ye.indexOf(e[0])===-1);case a.ACK:return Array.isArray(e);case a.CONNECT_ERROR:return typeof e=="string"||B(e);default:return!1}}function bt(n){return yt(n.nsp)&&mt(n.id)&&_t(n.type,n.data)}const wt=Object.freeze(Object.defineProperty({__proto__:null,Decoder:X,Encoder:pt,get PacketType(){return a},isPacketValid:bt,protocol:lt},Symbol.toStringTag,{value:"Module"}));function p(n,e,t){return n.on(e,t),function(){n.off(e,t)}}const vt=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class ge extends u{constructor(e,t,s){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=e,this.nsp=t,s&&s.auth&&(this.auth=s.auth),this._opts=Object.assign({},s),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;const e=this.io;this.subs=[p(e,"open",this.onopen.bind(this)),p(e,"packet",this.onpacket.bind(this)),p(e,"error",this.onerror.bind(this)),p(e,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected?this:(this.subEvents(),this.io._reconnecting||this.io.open(),this.io._readyState==="open"&&this.onopen(),this)}open(){return this.connect()}send(...e){return e.unshift("message"),this.emit.apply(this,e),this}emit(e,...t){var s,i,r;if(vt.hasOwnProperty(e))throw new Error('"'+e.toString()+'" is a reserved event name');if(t.unshift(e),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(t),this;const o={type:a.EVENT,data:t};if(o.options={},o.options.compress=this.flags.compress!==!1,typeof t[t.length-1]=="function"){const f=this.ids++,m=t.pop();this._registerAckCallback(f,m),o.id=f}const c=(i=(s=this.io.engine)===null||s===void 0?void 0:s.transport)===null||i===void 0?void 0:i.writable,h=this.connected&&!(!((r=this.io.engine)===null||r===void 0)&&r._hasPingExpired());return this.flags.volatile&&!c||(h?(this.notifyOutgoingListeners(o),this.packet(o)):this.sendBuffer.push(o)),this.flags={},this}_registerAckCallback(e,t){var s;const i=(s=this.flags.timeout)!==null&&s!==void 0?s:this._opts.ackTimeout;if(i===void 0){this.acks[e]=t;return}const r=this.io.setTimeoutFn(()=>{delete this.acks[e];for(let c=0;c<this.sendBuffer.length;c++)this.sendBuffer[c].id===e&&this.sendBuffer.splice(c,1);t.call(this,new Error("operation has timed out"))},i),o=(...c)=>{this.io.clearTimeoutFn(r),t.apply(this,c)};o.withError=!0,this.acks[e]=o}emitWithAck(e,...t){return new Promise((s,i)=>{const r=(o,c)=>o?i(o):s(c);r.withError=!0,t.push(r),this.emit(e,...t)})}_addToQueue(e){let t;typeof e[e.length-1]=="function"&&(t=e.pop());const s={id:this._queueSeq++,tryCount:0,pending:!1,args:e,flags:Object.assign({fromQueue:!0},this.flags)};e.push((i,...r)=>(this._queue[0],i!==null?s.tryCount>this._opts.retries&&(this._queue.shift(),t&&t(i)):(this._queue.shift(),t&&t(null,...r)),s.pending=!1,this._drainQueue())),this._queue.push(s),this._drainQueue()}_drainQueue(e=!1){if(!this.connected||this._queue.length===0)return;const t=this._queue[0];t.pending&&!e||(t.pending=!0,t.tryCount++,this.flags=t.flags,this.emit.apply(this,t.args))}packet(e){e.nsp=this.nsp,this.io._packet(e)}onopen(){typeof this.auth=="function"?this.auth(e=>{this._sendConnectPacket(e)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(e){this.packet({type:a.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},e):e})}onerror(e){this.connected||this.emitReserved("connect_error",e)}onclose(e,t){this.connected=!1,delete this.id,this.emitReserved("disconnect",e,t),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(e=>{if(!this.sendBuffer.some(s=>String(s.id)===e)){const s=this.acks[e];delete this.acks[e],s.withError&&s.call(this,new Error("socket has been disconnected"))}})}onpacket(e){if(e.nsp===this.nsp)switch(e.type){case a.CONNECT:e.data&&e.data.sid?this.onconnect(e.data.sid,e.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case a.EVENT:case a.BINARY_EVENT:this.onevent(e);break;case a.ACK:case a.BINARY_ACK:this.onack(e);break;case a.DISCONNECT:this.ondisconnect();break;case a.CONNECT_ERROR:this.destroy();const s=new Error(e.data.message);s.data=e.data.data,this.emitReserved("connect_error",s);break}}onevent(e){const t=e.data||[];e.id!=null&&t.push(this.ack(e.id)),this.connected?this.emitEvent(t):this.receiveBuffer.push(Object.freeze(t))}emitEvent(e){if(this._anyListeners&&this._anyListeners.length){const t=this._anyListeners.slice();for(const s of t)s.apply(this,e)}super.emit.apply(this,e),this._pid&&e.length&&typeof e[e.length-1]=="string"&&(this._lastOffset=e[e.length-1])}ack(e){const t=this;let s=!1;return function(...i){s||(s=!0,t.packet({type:a.ACK,id:e,data:i}))}}onack(e){const t=this.acks[e.id];typeof t=="function"&&(delete this.acks[e.id],t.withError&&e.data.unshift(null),t.apply(this,e.data))}onconnect(e,t){this.id=e,this.recovered=t&&this._pid===t,this._pid=t,this.connected=!0,this.emitBuffered(),this._drainQueue(!0),this.emitReserved("connect")}emitBuffered(){this.receiveBuffer.forEach(e=>this.emitEvent(e)),this.receiveBuffer=[],this.sendBuffer.forEach(e=>{this.notifyOutgoingListeners(e),this.packet(e)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(e=>e()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:a.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(e){return this.flags.compress=e,this}get volatile(){return this.flags.volatile=!0,this}timeout(e){return this.flags.timeout=e,this}onAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(e),this}prependAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(e),this}offAny(e){if(!this._anyListeners)return this;if(e){const t=this._anyListeners;for(let s=0;s<t.length;s++)if(e===t[s])return t.splice(s,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(e),this}prependAnyOutgoing(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(e),this}offAnyOutgoing(e){if(!this._anyOutgoingListeners)return this;if(e){const t=this._anyOutgoingListeners;for(let s=0;s<t.length;s++)if(e===t[s])return t.splice(s,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(e){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){const t=this._anyOutgoingListeners.slice();for(const s of t)s.apply(this,e.data)}}}function b(n){n=n||{},this.ms=n.min||100,this.max=n.max||1e4,this.factor=n.factor||2,this.jitter=n.jitter>0&&n.jitter<=1?n.jitter:0,this.attempts=0}b.prototype.duration=function(){var n=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var e=Math.random(),t=Math.floor(e*this.jitter*n);n=(Math.floor(e*10)&1)==0?n-t:n+t}return Math.min(n,this.max)|0};b.prototype.reset=function(){this.attempts=0};b.prototype.setMin=function(n){this.ms=n};b.prototype.setMax=function(n){this.max=n};b.prototype.setJitter=function(n){this.jitter=n};class H extends u{constructor(e,t){var s;super(),this.nsps={},this.subs=[],e&&typeof e=="object"&&(t=e,e=void 0),t=t||{},t.path=t.path||"/socket.io",this.opts=t,N(this,t),this.reconnection(t.reconnection!==!1),this.reconnectionAttempts(t.reconnectionAttempts||1/0),this.reconnectionDelay(t.reconnectionDelay||1e3),this.reconnectionDelayMax(t.reconnectionDelayMax||5e3),this.randomizationFactor((s=t.randomizationFactor)!==null&&s!==void 0?s:.5),this.backoff=new b({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(t.timeout==null?2e4:t.timeout),this._readyState="closed",this.uri=e;const i=t.parser||wt;this.encoder=new i.Encoder,this.decoder=new i.Decoder,this._autoConnect=t.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(e){return arguments.length?(this._reconnection=!!e,e||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(e){return e===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=e,this)}reconnectionDelay(e){var t;return e===void 0?this._reconnectionDelay:(this._reconnectionDelay=e,(t=this.backoff)===null||t===void 0||t.setMin(e),this)}randomizationFactor(e){var t;return e===void 0?this._randomizationFactor:(this._randomizationFactor=e,(t=this.backoff)===null||t===void 0||t.setJitter(e),this)}reconnectionDelayMax(e){var t;return e===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=e,(t=this.backoff)===null||t===void 0||t.setMax(e),this)}timeout(e){return arguments.length?(this._timeout=e,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(e){if(~this._readyState.indexOf("open"))return this;this.engine=new it(this.uri,this.opts);const t=this.engine,s=this;this._readyState="opening",this.skipReconnect=!1;const i=p(t,"open",function(){s.onopen(),e&&e()}),r=c=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",c),e?e(c):this.maybeReconnectOnOpen()},o=p(t,"error",r);if(this._timeout!==!1){const c=this._timeout,h=this.setTimeoutFn(()=>{i(),r(new Error("timeout")),t.close()},c);this.opts.autoUnref&&h.unref(),this.subs.push(()=>{this.clearTimeoutFn(h)})}return this.subs.push(i),this.subs.push(o),this}connect(e){return this.open(e)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const e=this.engine;this.subs.push(p(e,"ping",this.onping.bind(this)),p(e,"data",this.ondata.bind(this)),p(e,"error",this.onerror.bind(this)),p(e,"close",this.onclose.bind(this)),p(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(e){try{this.decoder.add(e)}catch(t){this.onclose("parse error",t)}}ondecoded(e){S(()=>{this.emitReserved("packet",e)},this.setTimeoutFn)}onerror(e){this.emitReserved("error",e)}socket(e,t){let s=this.nsps[e];return s?this._autoConnect&&!s.active&&s.connect():(s=new ge(this,e,t),this.nsps[e]=s),s}_destroy(e){const t=Object.keys(this.nsps);for(const s of t)if(this.nsps[s].active)return;this._close()}_packet(e){const t=this.encoder.encode(e);for(let s=0;s<t.length;s++)this.engine.write(t[s],e.options)}cleanup(){this.subs.forEach(e=>e()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(e,t){var s;this.cleanup(),(s=this.engine)===null||s===void 0||s.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",e,t),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const e=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const t=this.backoff.duration();this._reconnecting=!0;const s=this.setTimeoutFn(()=>{e.skipReconnect||(this.emitReserved("reconnect_attempt",e.backoff.attempts),!e.skipReconnect&&e.open(i=>{i?(e._reconnecting=!1,e.reconnect(),this.emitReserved("reconnect_error",i)):e.onreconnect()}))},t);this.opts.autoUnref&&s.unref(),this.subs.push(()=>{this.clearTimeoutFn(s)})}}onreconnect(){const e=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",e)}}const v={};function D(n,e){typeof n=="object"&&(e=n,n=void 0),e=e||{};const t=rt(n,e.path||"/socket.io"),s=t.source,i=t.id,r=t.path,o=v[i]&&r in v[i].nsps,c=e.forceNew||e["force new connection"]||e.multiplex===!1||o;let h;return c?h=new H(s,e):(v[i]||(v[i]=new H(s,e)),h=v[i]),t.query&&!e.query&&(e.query=t.queryKey),h.socket(t.path,e)}Object.assign(D,{Manager:H,Socket:ge,io:D,connect:D});const ee="[claude-devtools]";function Ot(n){const e=window.location.hash.includes("debug=true"),t=n?`${ee} [${n}]`:ee;function s(i,...r){e&&(r.length>0?console.log(`${t} ${i}`,...r):console.log(`${t} ${i}`))}return{log:s}}function Ct(){const e=ke().public?.claudeDevtoolsBc?.tunnel;return{isActive:x(()=>!!e),origin:x(()=>e?.origin??null),host:x(()=>e?.host??null),config:e??null}}export{se as _,Ot as a,At as b,Tt as c,D as l,Ct as u};
@@ -1,8 +0,0 @@
1
- import{_ as W}from"./bl5iU4Kz.js";import{u as Y,a as J,l as Q,b as X,c as Z,_ as ee}from"./BiBLVxWh.js";import{_ as te}from"./DBIw6BGF.js";import{_ as ne}from"./CLKqRoht.js";import{_ as le}from"./CSlPuO5s.js";import{g as oe,r as p,j as se,k as ae,c as r,a as t,b as o,w as d,d as a,l as x,F as _,p as ie,m as H,E as L,x as F,t as b,s as M,o as i,n as I,y as ue}from"./nKfsBgPE.js";const re={class:"relative flex flex-col h-screen n-bg-base"},de={class:"flex items-center justify-between p-4"},ce={class:"flex items-center gap-3"},me={class:"text-xl font-bold flex items-center gap-2"},ve={class:"flex items-center gap-2"},pe={class:"flex-1 overflow-auto p-4"},fe={class:"flex gap-4 h-full"},be={class:"w-64 flex-shrink-0 space-y-4"},ge={key:0,class:"n-bg-active rounded-lg p-4 opacity-50 text-sm"},ke={class:"space-y-1"},xe=["onClick"],_e={class:"flex items-center justify-between"},we={class:"flex items-center gap-2 truncate"},ye={class:"font-medium"},Ce={key:0,class:"text-xs opacity-50 pl-6 truncate"},Se={class:"flex-1 flex flex-col n-bg-active rounded-lg overflow-hidden"},Ve={class:"flex-1 overflow-auto"},He={class:"p-4 border-b border-neutral-200 dark:border-neutral-800"},Ne={key:0,class:"mb-4"},Ue={class:"space-y-4"},De={class:"p-4"},Me={class:"p-4 border-t border-neutral-200 dark:border-neutral-800 flex gap-2 flex-shrink-0"},Ae={class:"p-4 border-b border-neutral-200 dark:border-neutral-800 flex items-center justify-between"},Be={class:"font-bold flex items-center gap-2"},Ee={key:0,class:"text-sm opacity-70"},$e={class:"flex gap-2"},Le={key:0,class:"px-4 pt-4"},Fe={class:"flex-1 p-4 overflow-auto"},Ie={class:"space-y-4 mb-4"},Te={class:"flex flex-wrap gap-2 mb-4"},je={class:"text-xs opacity-50 mb-4"},qe={key:2,class:"flex-1 flex items-center justify-center opacity-50"},he={class:"text-center"},Ye=oe({__name:"skills",setup(ze){const N=Y(),{log:C}=J("skills"),u=p(null),S=p(!1),w=p(!1),U=p([]),n=p(null),g=p(!1),V=p(!1),c=p({name:"",description:"",content:"",argumentHint:"",model:""}),m=p({name:"",description:"",content:"",argumentHint:"",model:""}),v=p("");function T(){return N.isActive.value&&N.origin.value?N.origin.value:window.location.origin}function j(){const s=T();C("Connecting to socket at",s),u.value=Q(s,{path:"/__claude_devtools_socket",transports:["websocket","polling"],reconnection:!0,reconnectionAttempts:5}),u.value.on("connect",()=>{C("Connected"),S.value=!0,A()}),u.value.on("disconnect",()=>{C("Disconnected"),S.value=!1}),u.value.on("skills:list",e=>{C("Skills list received",e),U.value=e,w.value=!1}),u.value.on("skills:saved",e=>{e.success&&e.skill?(n.value=e.skill,g.value=!1,V.value=!1,B(),v.value=""):v.value=e.error||"Failed to save skill"}),u.value.on("skills:deleted",e=>{e.success&&n.value?.name===e.name&&(n.value=null)})}function A(){u.value&&(w.value=!0,u.value.emit("skills:list"))}function B(){c.value={name:"",description:"",content:"",argumentHint:"",model:""},v.value=""}function q(s){n.value=s,m.value={name:s.name,description:s.description,content:s.content,argumentHint:s.argumentHint||"",model:s.model||""},g.value=!1}function h(){n.value&&(m.value={name:n.value.name,description:n.value.description,content:n.value.content,argumentHint:n.value.argumentHint||"",model:n.value.model||""},g.value=!0)}function E(){const s=g.value?m.value:c.value;if(!s.name){v.value="Name is required";return}if(!s.description){v.value="Description is required";return}if(!s.content){v.value="Content is required";return}u.value&&u.value.emit("skills:save",{name:s.name,description:s.description,content:s.content,argumentHint:s.argumentHint||void 0,model:s.model||void 0})}function z(){n.value&&(m.value={name:n.value.name,description:n.value.description,content:n.value.content,argumentHint:n.value.argumentHint||"",model:n.value.model||""}),g.value=!1,v.value=""}function O(s){return new Date(s).toLocaleDateString()}function G(s){confirm(`Delete skill "${s}"?`)&&u.value&&u.value.emit("skills:delete",s)}return se(()=>{j()}),ae(()=>{u.value&&u.value.disconnect()}),(s,e)=>{const K=W,f=ee,k=X,D=Z,y=te,$=ne,P=le;return i(),r("div",re,[t("div",de,[t("div",ce,[o(K,{class:"text-sm opacity-50 hover:opacity-100",to:"/"},{default:d(()=>[...e[11]||(e[11]=[a(" ← Chat ",-1)])]),_:1}),t("h1",me,[o(f,{class:"text-orange",icon:"carbon:lightning"}),e[12]||(e[12]=a(" Skills ",-1))])]),t("div",ve,[o(k,{disabled:!S.value,n:"orange",onClick:e[0]||(e[0]=l=>{V.value=!0,n.value=null})},{default:d(()=>[o(f,{class:"mr-1",icon:"carbon:add"}),e[13]||(e[13]=a(" New Skill ",-1))]),_:1},8,["disabled"]),o(k,{disabled:!S.value||w.value,n:"gray",onClick:A},{default:d(()=>[o(f,{class:I([{"animate-spin":w.value},"mr-1"]),icon:"carbon:restart"},null,8,["class"]),e[14]||(e[14]=a(" Refresh ",-1))]),_:1},8,["disabled"])])]),t("div",pe,[t("div",fe,[t("div",be,[o(D,{class:"text-xs",icon:"carbon:information",n:"orange"},{default:d(()=>[...e[15]||(e[15]=[a(" Skills extend Claude's capabilities with custom knowledge. ",-1),t("br",null,null,-1),a(" Stored as ",-1),t("code",{class:"font-mono"},".claude/skills/<name>/SKILL.md",-1)])]),_:1}),U.value.length===0&&!w.value?(i(),r("div",ge,[...e[16]||(e[16]=[a(" No skills configured yet. ",-1),t("br",null,null,-1),a(" Create one to get started. ",-1)])])):x("",!0),t("div",ke,[(i(!0),r(_,null,ie(U.value,l=>(i(),r("div",{key:l.name,class:I([n.value?.name===l.name?"n-bg-active ring-1 ring-orange-500":"hover:n-bg-active","rounded-lg p-2 cursor-pointer group"]),onClick:R=>q(l)},[t("div",_e,[t("div",we,[o(f,{class:"opacity-50 text-orange-500",icon:"carbon:lightning"}),t("span",ye,b(l.name),1)]),o(k,{class:"opacity-0 group-hover:opacity-100",n:"red xs",onClick:ue(R=>G(l.name),["stop"])},{default:d(()=>[o(f,{icon:"carbon:trash-can"})]),_:1},8,["onClick"])]),l.description?(i(),r("div",Ce,b(l.description),1)):x("",!0)],10,xe))),128))])]),t("div",Se,[V.value?(i(),r(_,{key:0},[t("div",Ve,[t("div",He,[e[23]||(e[23]=t("h3",{class:"font-bold mb-4"}," Create New Skill ",-1)),v.value?(i(),r("div",Ne,[o(D,{icon:"carbon:warning",n:"red"},{default:d(()=>[a(b(v.value),1)]),_:1})])):x("",!0),t("div",Ue,[t("div",null,[e[17]||(e[17]=t("label",{class:"block text-sm font-medium mb-1"},"Name",-1)),o(y,{modelValue:c.value.name,"onUpdate:modelValue":e[1]||(e[1]=l=>c.value.name=l),class:"w-full font-mono",placeholder:"e.g. vue-expert, code-reviewer"},null,8,["modelValue"])]),t("div",null,[e[18]||(e[18]=t("label",{class:"block text-sm font-medium mb-1"},"Description",-1)),o(y,{modelValue:c.value.description,"onUpdate:modelValue":e[2]||(e[2]=l=>c.value.description=l),class:"w-full",placeholder:"Brief description of what this skill does"},null,8,["modelValue"])]),t("div",null,[e[19]||(e[19]=t("label",{class:"block text-sm font-medium mb-1"},"Argument Hint (optional)",-1)),o(y,{modelValue:c.value.argumentHint,"onUpdate:modelValue":e[3]||(e[3]=l=>c.value.argumentHint=l),class:"w-full",placeholder:"e.g. <query>"},null,8,["modelValue"]),e[20]||(e[20]=t("div",{class:"text-xs opacity-50 mt-1"}," Hint for argument when using /skillname ",-1))]),t("div",null,[e[22]||(e[22]=t("label",{class:"block text-sm font-medium mb-1"},"Model (optional)",-1)),H(t("select",{"onUpdate:modelValue":e[4]||(e[4]=l=>c.value.model=l),class:"w-full p-2 n-bg-base rounded-lg border border-neutral-200 dark:border-neutral-800"},[...e[21]||(e[21]=[t("option",{value:""}," Inherit (default) ",-1),t("option",{value:"sonnet"}," Sonnet ",-1),t("option",{value:"opus"}," Opus ",-1),t("option",{value:"haiku"}," Haiku ",-1)])],512),[[L,c.value.model]])])])]),t("div",De,[e[24]||(e[24]=t("label",{class:"block text-sm font-medium mb-1"},"Content (Markdown)",-1)),H(t("textarea",{"onUpdate:modelValue":e[5]||(e[5]=l=>c.value.content=l),class:"w-full min-h-[200px] p-3 font-mono text-sm n-bg-base rounded-lg border border-neutral-200 dark:border-neutral-800 resize-y",placeholder:`Write the skill instructions in markdown...
2
-
3
- Example:
4
- You are an expert in Vue 3 Composition API.
5
-
6
- ## Guidelines
7
- - Always use <script setup>
8
- - Follow TypeScript best practices`},null,512),[[F,c.value.content]])])]),t("div",Me,[o(k,{n:"orange",onClick:E},{default:d(()=>[...e[25]||(e[25]=[a(" Create Skill ",-1)])]),_:1}),o(k,{n:"gray",onClick:e[6]||(e[6]=l=>{V.value=!1,B()})},{default:d(()=>[...e[26]||(e[26]=[a(" Cancel ",-1)])]),_:1})])],64)):n.value?(i(),r(_,{key:1},[t("div",Ae,[t("div",null,[t("h3",Be,[o(f,{class:"text-orange-500",icon:"carbon:lightning"}),a(" "+b(n.value.name),1)]),n.value.description?(i(),r("div",Ee,b(n.value.description),1)):x("",!0)]),t("div",$e,[g.value?(i(),r(_,{key:0},[o(k,{n:"green",onClick:E},{default:d(()=>[o(f,{class:"mr-1",icon:"carbon:save"}),e[27]||(e[27]=a(" Save ",-1))]),_:1}),o(k,{n:"gray",onClick:z},{default:d(()=>[...e[28]||(e[28]=[a(" Cancel ",-1)])]),_:1})],64)):(i(),M(k,{key:1,n:"blue",onClick:h},{default:d(()=>[o(f,{class:"mr-1",icon:"carbon:edit"}),e[29]||(e[29]=a(" Edit ",-1))]),_:1}))])]),v.value&&g.value?(i(),r("div",Le,[o(D,{icon:"carbon:warning",n:"red"},{default:d(()=>[a(b(v.value),1)]),_:1})])):x("",!0),t("div",Fe,[g.value?(i(),r(_,{key:0},[t("div",Ie,[t("div",null,[e[30]||(e[30]=t("label",{class:"block text-sm font-medium mb-1"},"Description",-1)),o(y,{modelValue:m.value.description,"onUpdate:modelValue":e[7]||(e[7]=l=>m.value.description=l),class:"w-full",placeholder:"Brief description"},null,8,["modelValue"])]),t("div",null,[e[31]||(e[31]=t("label",{class:"block text-sm font-medium mb-1"},"Argument Hint",-1)),o(y,{modelValue:m.value.argumentHint,"onUpdate:modelValue":e[8]||(e[8]=l=>m.value.argumentHint=l),class:"w-full",placeholder:"e.g. <query>"},null,8,["modelValue"])]),t("div",null,[e[33]||(e[33]=t("label",{class:"block text-sm font-medium mb-1"},"Model",-1)),H(t("select",{"onUpdate:modelValue":e[9]||(e[9]=l=>m.value.model=l),class:"w-full p-2 n-bg-base rounded-lg border border-neutral-200 dark:border-neutral-800"},[...e[32]||(e[32]=[t("option",{value:""}," Inherit (default) ",-1),t("option",{value:"sonnet"}," Sonnet ",-1),t("option",{value:"opus"}," Opus ",-1),t("option",{value:"haiku"}," Haiku ",-1)])],512),[[L,m.value.model]])])]),e[34]||(e[34]=t("label",{class:"block text-sm font-medium mb-1"},"Content (Markdown)",-1)),H(t("textarea",{"onUpdate:modelValue":e[10]||(e[10]=l=>m.value.content=l),class:"w-full h-full min-h-[300px] p-3 font-mono text-sm n-bg-base rounded-lg border border-neutral-200 dark:border-neutral-800 resize-none"},null,512),[[F,m.value.content]])],64)):(i(),r(_,{key:1},[t("div",Te,[n.value.model?(i(),M($,{key:0,n:"blue"},{default:d(()=>[a(" Model: "+b(n.value.model),1)]),_:1})):x("",!0),n.value.argumentHint?(i(),M($,{key:1,n:"gray"},{default:d(()=>[a(" Arg: "+b(n.value.argumentHint),1)]),_:1})):x("",!0)]),t("div",je," Updated: "+b(O(n.value.updatedAt)),1),o(P,{content:n.value.content,class:"max-w-none"},null,8,["content"])],64))])],64)):(i(),r("div",qe,[t("div",he,[o(f,{class:"text-4xl mb-2",icon:"carbon:lightning"}),e[35]||(e[35]=t("p",null,"Select a skill or create a new one",-1))])]))])])])])}}});export{Ye as default};
@@ -1,7 +0,0 @@
1
- import{_ as J}from"./bl5iU4Kz.js";import{u as K,a as O,l as Q,b as X,c as Z,_ as ee}from"./BiBLVxWh.js";import{_ as oe}from"./DBIw6BGF.js";import{_ as le}from"./CLKqRoht.js";import{_ as ne}from"./CSlPuO5s.js";import{g as te,r as f,j as se,k as ae,c as i,a as o,b as t,w as u,d,l as w,F as g,p as j,t as p,m as $,x as A,s as L,o as a,n as F,y as ie}from"./nKfsBgPE.js";const de={class:"relative flex flex-col h-screen n-bg-base"},re={class:"flex items-center justify-between p-4"},ue={class:"flex items-center gap-3"},me={class:"text-xl font-bold flex items-center gap-2"},ce={class:"flex items-center gap-2"},ve={class:"flex-1 overflow-auto p-4"},fe={class:"flex gap-4 h-full"},pe={class:"w-64 flex-shrink-0 space-y-4"},be={key:0,class:"n-bg-active rounded-lg p-4 opacity-50 text-sm"},xe={class:"space-y-1"},_e=["onClick"],ge={class:"flex items-center justify-between"},we={class:"flex items-center gap-2 truncate"},ke={class:"font-mono"},ye={key:0,class:"text-xs opacity-50 pl-6 truncate"},Ce={class:"flex-1 flex flex-col n-bg-active rounded-lg overflow-hidden"},Te={class:"flex-1 overflow-auto"},Ve={class:"p-4 border-b border-neutral-200 dark:border-neutral-800"},he={key:0,class:"mb-4"},Ne={class:"space-y-4"},Be={class:"text-xs opacity-50 mt-1"},Se={class:"p-4"},Ue={class:"p-4 border-t border-neutral-200 dark:border-neutral-800 flex gap-2 flex-shrink-0"},De={class:"p-4 border-b border-neutral-200 dark:border-neutral-800 flex items-center justify-between"},Ee={class:"font-bold font-mono"},je={key:0,class:"text-sm opacity-70"},$e={class:"text-xs opacity-50 mt-1"},Ae={class:"flex gap-2"},Le={key:0,class:"px-4 pt-4"},Fe={class:"flex-1 p-4 overflow-auto"},Me={class:"space-y-4 mb-4"},Pe={key:0,class:"mb-4"},Re={class:"flex flex-wrap gap-1"},qe={key:2,class:"flex-1 flex items-center justify-center opacity-50"},ze={class:"text-center"},Oe=te({__name:"commands",setup(Ie){const N=K(),{log:T}=O("commands"),r=f(null),V=f(!1),k=f(!1),B=f([]),n=f(null),b=f(!1),h=f(!1),m=f({name:"",description:"",content:"",allowedTools:""}),c=f({name:"",description:"",content:"",allowedTools:""}),v=f("");function M(){return N.isActive.value&&N.origin.value?N.origin.value:window.location.origin}function P(){const s=M();T("Connecting to socket at",s),r.value=Q(s,{path:"/__claude_devtools_socket",transports:["websocket","polling"],reconnection:!0,reconnectionAttempts:5}),r.value.on("connect",()=>{T("Connected"),V.value=!0,U()}),r.value.on("disconnect",()=>{T("Disconnected"),V.value=!1}),r.value.on("commands:list",e=>{T("Commands list received",e),B.value=e,k.value=!1}),r.value.on("commands:saved",e=>{e.success&&e.command?(n.value=e.command,b.value=!1,h.value=!1,D(),v.value=""):v.value=e.error||"Failed to save command"}),r.value.on("commands:deleted",e=>{e.success&&n.value?.name===e.name&&(n.value=null)})}function U(){r.value&&(k.value=!0,r.value.emit("commands:list"))}function D(){m.value={name:"",description:"",content:"",allowedTools:""},v.value=""}function R(s){n.value=s,c.value={name:s.name,description:s.description||"",content:s.content,allowedTools:s.allowedTools?.join(", ")||""},b.value=!1}function q(){n.value&&(c.value={name:n.value.name,description:n.value.description||"",content:n.value.content,allowedTools:n.value.allowedTools?.join(", ")||""},b.value=!0)}function E(){const s=b.value?c.value:m.value;if(!s.name){v.value="Name is required";return}if(!s.content){v.value="Content is required";return}if(r.value){const e=s.allowedTools.split(",").map(y=>y.trim()).filter(y=>y.length>0);r.value.emit("commands:save",{name:s.name,content:s.content,description:s.description||void 0,allowedTools:e.length>0?e:void 0})}}function z(){n.value&&(c.value={name:n.value.name,description:n.value.description||"",content:n.value.content,allowedTools:n.value.allowedTools?.join(", ")||""}),b.value=!1,v.value=""}function I(s){confirm(`Delete command "/${s}"?`)&&r.value&&r.value.emit("commands:delete",s)}function W(s){return new Date(s).toLocaleDateString()}return se(()=>{P()}),ae(()=>{r.value&&r.value.disconnect()}),(s,e)=>{const y=J,x=ee,_=X,S=Z,C=oe,Y=le,G=ne;return a(),i("div",de,[o("div",re,[o("div",ue,[t(y,{class:"text-sm opacity-50 hover:opacity-100",to:"/"},{default:u(()=>[...e[9]||(e[9]=[d(" ← Chat ",-1)])]),_:1}),o("h1",me,[t(x,{class:"text-green",icon:"carbon:terminal"}),e[10]||(e[10]=d(" Slash Commands ",-1))])]),o("div",ce,[t(_,{disabled:!V.value,n:"green",onClick:e[0]||(e[0]=l=>{h.value=!0,n.value=null})},{default:u(()=>[t(x,{class:"mr-1",icon:"carbon:add"}),e[11]||(e[11]=d(" New Command ",-1))]),_:1},8,["disabled"]),t(_,{disabled:!V.value||k.value,n:"gray",onClick:U},{default:u(()=>[t(x,{class:F([{"animate-spin":k.value},"mr-1"]),icon:"carbon:restart"},null,8,["class"]),e[12]||(e[12]=d(" Refresh ",-1))]),_:1},8,["disabled"])])]),o("div",ve,[o("div",fe,[o("div",pe,[t(S,{class:"text-xs",icon:"carbon:information",n:"green"},{default:u(()=>[...e[13]||(e[13]=[d(" Slash commands are markdown files with YAML frontmatter. ",-1),o("br",null,null,-1),d(" Stored as ",-1),o("code",{class:"font-mono"},".claude/commands/<name>.md",-1)])]),_:1}),B.value.length===0&&!k.value?(a(),i("div",be,[...e[14]||(e[14]=[d(" No slash commands yet. ",-1),o("br",null,null,-1),d(" Create one to get started. ",-1)])])):w("",!0),o("div",xe,[(a(!0),i(g,null,j(B.value,l=>(a(),i("div",{key:l.name,class:F([n.value?.name===l.name?"n-bg-active ring-1 ring-green-500":"hover:n-bg-active","rounded-lg p-2 cursor-pointer group"]),onClick:H=>R(l)},[o("div",ge,[o("div",we,[t(x,{class:"opacity-50 text-green-500",icon:"carbon:terminal"}),o("span",ke,"/"+p(l.name),1)]),t(_,{class:"opacity-0 group-hover:opacity-100",n:"red xs",onClick:ie(H=>I(l.name),["stop"])},{default:u(()=>[t(x,{icon:"carbon:trash-can"})]),_:1},8,["onClick"])]),l.description?(a(),i("div",ye,p(l.description),1)):w("",!0)],10,_e))),128))])]),o("div",Ce,[h.value?(a(),i(g,{key:0},[o("div",Te,[o("div",Ve,[e[19]||(e[19]=o("h3",{class:"font-bold mb-4"}," Create New Slash Command ",-1)),v.value?(a(),i("div",he,[t(S,{icon:"carbon:warning",n:"red"},{default:u(()=>[d(p(v.value),1)]),_:1})])):w("",!0),o("div",Ne,[o("div",null,[e[15]||(e[15]=o("label",{class:"block text-sm font-medium mb-1"},"Command Name",-1)),t(C,{modelValue:m.value.name,"onUpdate:modelValue":e[1]||(e[1]=l=>m.value.name=l),class:"w-full font-mono",placeholder:"e.g. review, deploy, test"},null,8,["modelValue"]),o("div",Be," Will be invoked as /"+p(m.value.name||"command-name"),1)]),o("div",null,[e[16]||(e[16]=o("label",{class:"block text-sm font-medium mb-1"},"Description (optional)",-1)),t(C,{modelValue:m.value.description,"onUpdate:modelValue":e[2]||(e[2]=l=>m.value.description=l),class:"w-full",placeholder:"Brief description of what this command does"},null,8,["modelValue"])]),o("div",null,[e[17]||(e[17]=o("label",{class:"block text-sm font-medium mb-1"},"Allowed Tools (optional)",-1)),t(C,{modelValue:m.value.allowedTools,"onUpdate:modelValue":e[3]||(e[3]=l=>m.value.allowedTools=l),class:"w-full font-mono",placeholder:"e.g. Bash(git:*), Read, Edit"},null,8,["modelValue"]),e[18]||(e[18]=o("div",{class:"text-xs opacity-50 mt-1"}," Comma-separated list of allowed tools ",-1))])])]),o("div",Se,[e[20]||(e[20]=o("label",{class:"block text-sm font-medium mb-1"},"Command Prompt",-1)),$(o("textarea",{"onUpdate:modelValue":e[4]||(e[4]=l=>m.value.content=l),class:"w-full min-h-[200px] p-3 font-mono text-sm n-bg-base rounded-lg border border-neutral-200 dark:border-neutral-800 resize-y",placeholder:`Write the prompt for this command...
2
-
3
- Example:
4
- Review the current code changes and provide feedback on:
5
- 1. Code quality
6
- 2. Potential bugs
7
- 3. Performance issues`},null,512),[[A,m.value.content]])])]),o("div",Ue,[t(_,{n:"green",onClick:E},{default:u(()=>[...e[21]||(e[21]=[d(" Create Command ",-1)])]),_:1}),t(_,{n:"gray",onClick:e[5]||(e[5]=l=>{h.value=!1,D()})},{default:u(()=>[...e[22]||(e[22]=[d(" Cancel ",-1)])]),_:1})])],64)):n.value?(a(),i(g,{key:1},[o("div",De,[o("div",null,[o("h3",Ee," /"+p(n.value.name),1),n.value.description?(a(),i("div",je,p(n.value.description),1)):w("",!0),o("div",$e," Updated: "+p(W(n.value.updatedAt)),1)]),o("div",Ae,[b.value?(a(),i(g,{key:0},[t(_,{n:"green",onClick:E},{default:u(()=>[t(x,{class:"mr-1",icon:"carbon:save"}),e[23]||(e[23]=d(" Save ",-1))]),_:1}),t(_,{n:"gray",onClick:z},{default:u(()=>[...e[24]||(e[24]=[d(" Cancel ",-1)])]),_:1})],64)):(a(),L(_,{key:1,n:"blue",onClick:q},{default:u(()=>[t(x,{class:"mr-1",icon:"carbon:edit"}),e[25]||(e[25]=d(" Edit ",-1))]),_:1}))])]),v.value&&b.value?(a(),i("div",Le,[t(S,{icon:"carbon:warning",n:"red"},{default:u(()=>[d(p(v.value),1)]),_:1})])):w("",!0),o("div",Fe,[b.value?(a(),i(g,{key:0},[o("div",Me,[o("div",null,[e[26]||(e[26]=o("label",{class:"block text-sm font-medium mb-1"},"Description",-1)),t(C,{modelValue:c.value.description,"onUpdate:modelValue":e[6]||(e[6]=l=>c.value.description=l),class:"w-full",placeholder:"Brief description"},null,8,["modelValue"])]),o("div",null,[e[27]||(e[27]=o("label",{class:"block text-sm font-medium mb-1"},"Allowed Tools",-1)),t(C,{modelValue:c.value.allowedTools,"onUpdate:modelValue":e[7]||(e[7]=l=>c.value.allowedTools=l),class:"w-full font-mono",placeholder:"e.g. Bash(git:*), Read, Edit"},null,8,["modelValue"])])]),e[28]||(e[28]=o("label",{class:"block text-sm font-medium mb-1"},"Command Prompt",-1)),$(o("textarea",{"onUpdate:modelValue":e[8]||(e[8]=l=>c.value.content=l),class:"w-full h-full min-h-[300px] p-3 font-mono text-sm n-bg-base rounded-lg border border-neutral-200 dark:border-neutral-800 resize-none"},null,512),[[A,c.value.content]])],64)):(a(),i(g,{key:1},[n.value.allowedTools&&n.value.allowedTools.length>0?(a(),i("div",Pe,[e[29]||(e[29]=o("div",{class:"text-xs font-medium opacity-50 mb-1"}," Allowed Tools ",-1)),o("div",Re,[(a(!0),i(g,null,j(n.value.allowedTools,l=>(a(),L(Y,{key:l,class:"font-mono text-xs",n:"blue"},{default:u(()=>[d(p(l),1)]),_:2},1024))),128))])])):w("",!0),t(G,{content:n.value.content,class:"max-w-none"},null,8,["content"])],64))])],64)):(a(),i("div",qe,[o("div",ze,[t(x,{class:"text-4xl mb-2",icon:"carbon:terminal"}),e[30]||(e[30]=o("p",null,"Select a command or create a new one",-1))])]))])])])])}}});export{Oe as default};
@@ -1,12 +0,0 @@
1
- import{_ as me}from"./bl5iU4Kz.js";import{u as fe,a as pe,l as be,b as xe,_ as ge,c as ye}from"./BiBLVxWh.js";import{_ as ke}from"./CSlPuO5s.js";import{_ as _e}from"./DBIw6BGF.js";import{g as Ce,r as c,q as we,j as Le,k as De,c as i,a as t,b as l,w as d,d as o,n as V,T as Ue,o as n,l as x,t as p,s as G,F as _,m as H,x as J,p as K,y as he}from"./nKfsBgPE.js";const Ae={class:"relative flex flex-col h-screen n-bg-base"},Se={class:"flex items-center justify-between p-4"},Ee={class:"flex items-center gap-3"},Ve={class:"text-xl font-bold flex items-center gap-2"},Me={class:"flex items-center gap-2"},Ne={class:"px-4 flex gap-2 border-b border-neutral-200 dark:border-neutral-800"},je={class:"flex-1 overflow-auto p-4"},$e={key:0,class:"h-full flex flex-col"},Te={class:"flex items-center justify-between mb-4"},Fe={class:"text-lg font-semibold flex items-center gap-2"},Pe={key:0,class:"text-xs opacity-40 mt-1"},Re={class:"flex gap-2"},Be={key:0,class:"mb-4"},ze={class:"flex-1 n-bg-active rounded-lg overflow-hidden"},Ie={key:1,class:"h-full p-4 overflow-auto"},We={key:2,class:"h-full flex items-center justify-center opacity-50"},qe={class:"text-center"},Ye={key:1,class:"flex gap-4 h-full"},Ge={class:"w-64 flex-shrink-0 space-y-4"},He={key:0,class:"n-bg-active rounded-lg p-4 opacity-50 text-sm"},Je={key:0,class:"text-xs opacity-50 font-medium px-2 pt-2"},Ke=["onClick"],Oe={class:"flex items-center justify-between"},Qe={class:"flex items-center gap-2 truncate"},Xe={class:"truncate"},Ze={class:"text-xs opacity-40 pl-6"},et={class:"flex-1 flex flex-col n-bg-active rounded-lg overflow-hidden"},tt={class:"p-4 border-b border-neutral-200 dark:border-neutral-800"},lt={key:0,class:"mb-4"},ot={class:"space-y-4"},nt={class:"flex-1 p-4"},st={class:"p-4 border-t border-neutral-200 dark:border-neutral-800 flex gap-2"},at={class:"p-4 border-b border-neutral-200 dark:border-neutral-800 flex items-center justify-between"},it={class:"font-bold"},ut={class:"text-xs opacity-50"},dt={class:"flex gap-2"},rt={class:"flex-1 p-4 overflow-auto"},ct={key:2,class:"flex-1 flex items-center justify-center opacity-50"},vt={class:"text-center"},mt={key:2,class:"space-y-4"},ft={key:0,class:"n-bg-active rounded-lg p-4"},pt={key:0,class:"mb-4"},bt={class:"space-y-4"},xt={class:"flex gap-2"},gt={key:1,class:"n-bg-active rounded-lg p-4 opacity-50"},yt={key:2,class:"space-y-2"},kt={class:"flex items-start justify-between"},_t={class:"flex-1"},Ct={class:"font-bold flex items-center gap-2"},wt={class:"text-sm opacity-70 font-mono mt-1"},Lt={key:0,class:"text-sm opacity-50 mt-1"},Dt={class:"text-xs opacity-40 mt-2"},Mt=Ce({__name:"docs",setup(Ut){const W=fe(),{log:C}=pe("docs"),a=c(null),w=c(!1),M=c(!1),q=c([]),v=c(null),y=c(!1),g=c(""),N=c(!1),L=c(""),j=c(""),Y=c([]),h=c(!1),A=c(""),$=c(""),T=c(""),S=c(""),F=c(!1),P=c(null),E=c(!1),k=c(""),m=c(""),b=c("claudemd"),X=we(()=>{const u={"":[]};for(const e of q.value){const B=e.path.split("/");if(B.length>1){const r=B.slice(0,-1).join("/");u[r]||(u[r]=[]),u[r].push(e)}else u[""].push(e)}return u});function Z(){return W.isActive.value&&W.origin.value?W.origin.value:window.location.origin}function ee(){const u=Z();C("Connecting to socket at",u),a.value=be(u,{path:"/__claude_devtools_socket",transports:["websocket","polling"],reconnection:!0,reconnectionAttempts:5}),a.value.on("connect",()=>{C("Connected"),w.value=!0,O()}),a.value.on("disconnect",()=>{C("Disconnected"),w.value=!1}),a.value.on("docs:list",e=>{C("Docs list received",e.length),q.value=e,M.value=!1}),a.value.on("docs:file",e=>{e&&(v.value=e,g.value=e.content)}),a.value.on("docs:saved",e=>{e.success&&e.file?(v.value=e.file,g.value=e.file.content,y.value=!1,N.value=!1,L.value="",j.value="",m.value=""):m.value=e.error||"Failed to save"}),a.value.on("docs:deleted",e=>{e.success&&v.value?.path===e.path&&(v.value=null,y.value=!1)}),a.value.on("llms:list",e=>{C("LLMS list received",e.length),Y.value=e}),a.value.on("llms:added",e=>{e.success?(h.value=!1,A.value="",$.value="",T.value="",m.value=""):m.value=e.error||"Failed to add"}),a.value.on("claudemd:data",e=>{C("CLAUDE.md data received",e.exists),S.value=e.content,F.value=e.exists,P.value=e.updatedAt,k.value=e.content}),a.value.on("claudemd:saved",e=>{e.success?(S.value=e.content||"",F.value=!0,P.value=e.updatedAt||null,k.value=e.content||"",E.value=!1,m.value=""):m.value=e.error||"Failed to save"})}function O(){a.value&&(M.value=!0,a.value.emit("docs:list"),a.value.emit("llms:list"),a.value.emit("claudemd:get"))}function te(){k.value=S.value,E.value=!0}function le(){a.value&&a.value.emit("claudemd:save",k.value)}function oe(){k.value=S.value,E.value=!1}function ne(u){v.value=u,g.value=u.content,y.value=!1}function se(){v.value&&(g.value=v.value.content,y.value=!0)}function ae(){a.value&&v.value&&a.value.emit("docs:save",{path:v.value.path,content:g.value})}function ie(){v.value&&(g.value=v.value.content),y.value=!1}function ue(){if(!L.value.trim()){m.value="Path is required";return}a.value&&a.value.emit("docs:save",{path:L.value.trim(),content:j.value||`# ${L.value.split("/").pop()?.replace(".md","")||"New Doc"}
2
-
3
- `})}function de(u){confirm(`Delete "${u}"?`)&&a.value&&a.value.emit("docs:delete",u)}function re(){if(!A.value.trim()){m.value="URL is required";return}let u=A.value.trim();!u.startsWith("http://")&&!u.startsWith("https://")&&(u="https://"+u),a.value&&a.value.emit("llms:add",{url:u,title:$.value.trim()||void 0,description:T.value.trim()||void 0})}function ce(u){confirm(`Remove "${u}"?`)&&a.value&&a.value.emit("llms:remove",u)}function R(u){return new Date(u).toLocaleDateString()}return Le(()=>{ee()}),De(()=>{a.value&&a.value.disconnect()}),(u,e)=>{const B=me,r=ge,f=xe,D=ye,Q=ke,z=_e;return n(),i("div",Ae,[t("div",Se,[t("div",Ee,[l(B,{class:"text-sm opacity-50 hover:opacity-100",to:"/"},{default:d(()=>[...e[14]||(e[14]=[o(" ← Chat ",-1)])]),_:1}),t("h1",Ve,[l(r,{class:"text-purple",icon:"carbon:document"}),e[15]||(e[15]=o(" Docs & LLMS ",-1))])]),t("div",Me,[l(f,{disabled:!w.value||M.value,n:"gray",onClick:O},{default:d(()=>[l(r,{class:V([{"animate-spin":M.value},"mr-1"]),icon:"carbon:restart"},null,8,["class"]),e[16]||(e[16]=o(" Refresh ",-1))]),_:1},8,["disabled"])])]),t("div",Ne,[t("button",{class:V([b.value==="claudemd"?"border-b-2 border-green-500 text-green-500":"opacity-60","px-4 py-2 font-medium"]),onClick:e[0]||(e[0]=s=>b.value="claudemd")},[l(r,{class:"mr-1",icon:"carbon:document-tasks"}),e[17]||(e[17]=o(" CLAUDE.md ",-1))],2),t("button",{class:V([b.value==="docs"?"border-b-2 border-purple-500 text-purple-500":"opacity-60","px-4 py-2 font-medium"]),onClick:e[1]||(e[1]=s=>b.value="docs")},[l(r,{class:"mr-1",icon:"carbon:folder"}),e[18]||(e[18]=o(" .claude/docs ",-1))],2),t("button",{class:V([b.value==="llms"?"border-b-2 border-blue-500 text-blue-500":"opacity-60","px-4 py-2 font-medium"]),onClick:e[2]||(e[2]=s=>b.value="llms")},[l(r,{class:"mr-1",icon:"carbon:link"}),e[19]||(e[19]=o(" LLMS Sources ",-1))],2)]),t("div",je,[l(Ue,{appear:"",mode:"out-in",name:"page"},{default:d(()=>[b.value==="claudemd"?(n(),i("div",$e,[t("div",Te,[t("div",null,[t("h2",Fe,[l(r,{icon:"carbon:document-tasks"}),e[20]||(e[20]=o(" CLAUDE.md ",-1))]),e[21]||(e[21]=t("p",{class:"text-sm opacity-50"}," Project-level instructions for Claude. Located at project root. ",-1)),P.value?(n(),i("p",Pe," Updated: "+p(R(P.value)),1)):x("",!0)]),t("div",Re,[E.value?(n(),i(_,{key:0},[l(f,{n:"green",onClick:le},{default:d(()=>[l(r,{class:"mr-1",icon:"carbon:save"}),e[22]||(e[22]=o(" Save ",-1))]),_:1}),l(f,{n:"gray",onClick:oe},{default:d(()=>[...e[23]||(e[23]=[o(" Cancel ",-1)])]),_:1})],64)):(n(),G(f,{key:1,disabled:!w.value,n:"blue",onClick:te},{default:d(()=>[l(r,{class:"mr-1",icon:"carbon:edit"}),o(" "+p(F.value?"Edit":"Create"),1)]),_:1},8,["disabled"]))])]),m.value&&b.value==="claudemd"?(n(),i("div",Be,[l(D,{icon:"carbon:warning",n:"red"},{default:d(()=>[o(p(m.value),1)]),_:1})])):x("",!0),t("div",ze,[E.value?H((n(),i("textarea",{key:0,"onUpdate:modelValue":e[3]||(e[3]=s=>k.value=s),class:"w-full h-full p-4 font-mono text-sm n-bg-base resize-none focus:outline-none",placeholder:`# CLAUDE.md
4
-
5
- Write project-level instructions for Claude here...
6
-
7
- Example:
8
- - This is a Vue 3 + Nuxt project
9
- - Use TypeScript
10
- - Follow existing code style`},null,512)),[[J,k.value]]):F.value?(n(),i("div",Ie,[l(Q,{content:S.value,class:"max-w-none"},null,8,["content"])])):(n(),i("div",We,[t("div",qe,[l(r,{class:"text-4xl mb-2",icon:"carbon:document-add"}),e[24]||(e[24]=t("p",null,"No CLAUDE.md file yet",-1)),e[25]||(e[25]=t("p",{class:"text-sm"},' Click "Create" to add project instructions ',-1))])]))]),l(D,{class:"mt-4",icon:"carbon:information",n:"gray"},{default:d(()=>[...e[26]||(e[26]=[o(" CLAUDE.md contains project-level instructions that Claude reads automatically. Use it to define coding standards, project structure, and preferences. ",-1)])]),_:1})])):b.value==="docs"?(n(),i("div",Ye,[t("div",Ge,[l(f,{disabled:!w.value,class:"w-full",n:"purple",onClick:e[4]||(e[4]=s=>{N.value=!0,v.value=null})},{default:d(()=>[l(r,{class:"mr-1",icon:"carbon:add"}),e[27]||(e[27]=o(" New Doc ",-1))]),_:1},8,["disabled"]),l(D,{class:"text-xs",icon:"carbon:information",n:"gray"},{default:d(()=>[...e[28]||(e[28]=[o(" Files are stored in ",-1),t("code",{class:"font-mono"},".claude/docs/",-1),t("br",null,null,-1),o(" Use ",-1),t("code",{class:"font-mono text-blue-500"},"@docs/filename",-1),o(" in chat to attach. ",-1)])]),_:1}),q.value.length===0?(n(),i("div",He,[...e[29]||(e[29]=[o(" No doc files yet. ",-1),t("br",null,null,-1),o(" Create one to get started. ",-1)])])):x("",!0),(n(!0),i(_,null,K(X.value,(s,I)=>(n(),i("div",{key:I,class:"space-y-1"},[I?(n(),i("div",Je,p(I)+"/ ",1)):x("",!0),(n(!0),i(_,null,K(s,U=>(n(),i("div",{key:U.path,class:V([v.value?.path===U.path?"n-bg-active ring-1 ring-purple-500":"hover:n-bg-active","rounded-lg p-2 cursor-pointer group"]),onClick:ve=>ne(U)},[t("div",Oe,[t("div",Qe,[l(r,{class:"opacity-50",icon:"carbon:document"}),t("span",Xe,p(U.name),1)]),l(f,{class:"opacity-0 group-hover:opacity-100",n:"red xs",onClick:he(ve=>de(U.path),["stop"])},{default:d(()=>[l(r,{icon:"carbon:trash-can"})]),_:1},8,["onClick"])]),t("div",Ze,p(R(U.updatedAt)),1)],10,Ke))),128))]))),128))]),t("div",et,[N.value?(n(),i(_,{key:0},[t("div",tt,[e[32]||(e[32]=t("h3",{class:"font-bold mb-4"}," Create New Doc ",-1)),m.value?(n(),i("div",lt,[l(D,{icon:"carbon:warning",n:"red"},{default:d(()=>[o(p(m.value),1)]),_:1})])):x("",!0),t("div",ot,[t("div",null,[e[30]||(e[30]=t("label",{class:"block text-sm font-medium mb-1"},"Path",-1)),l(z,{modelValue:L.value,"onUpdate:modelValue":e[5]||(e[5]=s=>L.value=s),class:"w-full font-mono",placeholder:"e.g. api/endpoints.md or readme.md"},null,8,["modelValue"]),e[31]||(e[31]=t("div",{class:"text-xs opacity-50 mt-1"}," Use / for subdirectories. .md extension added automatically. ",-1))])])]),t("div",nt,[e[33]||(e[33]=t("label",{class:"block text-sm font-medium mb-1"},"Content (optional)",-1)),H(t("textarea",{"onUpdate:modelValue":e[6]||(e[6]=s=>j.value=s),class:"w-full h-full min-h-[200px] p-3 font-mono text-sm n-bg-base rounded-lg border border-neutral-200 dark:border-neutral-800 resize-none",placeholder:`# Your doc title
11
-
12
- Write your documentation here...`},null,512),[[J,j.value]])]),t("div",st,[l(f,{n:"purple",onClick:ue},{default:d(()=>[...e[34]||(e[34]=[o(" Create ",-1)])]),_:1}),l(f,{n:"gray",onClick:e[7]||(e[7]=s=>{N.value=!1,m.value=""})},{default:d(()=>[...e[35]||(e[35]=[o(" Cancel ",-1)])]),_:1})])],64)):v.value?(n(),i(_,{key:1},[t("div",at,[t("div",null,[t("h3",it,p(v.value.path),1),t("div",ut," Updated: "+p(R(v.value.updatedAt)),1)]),t("div",dt,[y.value?(n(),i(_,{key:0},[l(f,{n:"green",onClick:ae},{default:d(()=>[l(r,{class:"mr-1",icon:"carbon:save"}),e[36]||(e[36]=o(" Save ",-1))]),_:1}),l(f,{n:"gray",onClick:ie},{default:d(()=>[...e[37]||(e[37]=[o(" Cancel ",-1)])]),_:1})],64)):(n(),G(f,{key:1,n:"blue",onClick:se},{default:d(()=>[l(r,{class:"mr-1",icon:"carbon:edit"}),e[38]||(e[38]=o(" Edit ",-1))]),_:1}))])]),t("div",rt,[y.value?H((n(),i("textarea",{key:0,"onUpdate:modelValue":e[8]||(e[8]=s=>g.value=s),class:"w-full h-full min-h-[300px] p-3 font-mono text-sm n-bg-base rounded-lg border border-neutral-200 dark:border-neutral-800 resize-none"},null,512)),[[J,g.value]]):(n(),G(Q,{key:1,content:v.value.content,class:"max-w-none"},null,8,["content"]))])],64)):(n(),i("div",ct,[t("div",vt,[l(r,{class:"text-4xl mb-2",icon:"carbon:document"}),e[39]||(e[39]=t("p",null,"Select a doc file or create a new one",-1))])]))])])):b.value==="llms"?(n(),i("div",mt,[l(f,{disabled:!w.value,n:"blue",onClick:e[9]||(e[9]=s=>h.value=!0)},{default:d(()=>[l(r,{class:"mr-1",icon:"carbon:add"}),e[40]||(e[40]=o(" Add LLMS Source ",-1))]),_:1},8,["disabled"]),h.value?(n(),i("div",ft,[e[47]||(e[47]=t("h3",{class:"font-bold mb-4"}," Add LLMS Source ",-1)),m.value?(n(),i("div",pt,[l(D,{icon:"carbon:warning",n:"red"},{default:d(()=>[o(p(m.value),1)]),_:1})])):x("",!0),t("div",bt,[t("div",null,[e[41]||(e[41]=t("label",{class:"block text-sm font-medium mb-1"},"URL",-1)),l(z,{modelValue:A.value,"onUpdate:modelValue":e[10]||(e[10]=s=>A.value=s),class:"w-full font-mono",placeholder:"e.g. https://example.com/llms.txt"},null,8,["modelValue"]),e[42]||(e[42]=t("div",{class:"text-xs opacity-50 mt-1"}," URL to the llms.txt file ",-1))]),t("div",null,[e[43]||(e[43]=t("label",{class:"block text-sm font-medium mb-1"},"Title (optional)",-1)),l(z,{modelValue:$.value,"onUpdate:modelValue":e[11]||(e[11]=s=>$.value=s),class:"w-full",placeholder:"e.g. Example Documentation"},null,8,["modelValue"])]),t("div",null,[e[44]||(e[44]=t("label",{class:"block text-sm font-medium mb-1"},"Description (optional)",-1)),l(z,{modelValue:T.value,"onUpdate:modelValue":e[12]||(e[12]=s=>T.value=s),class:"w-full",placeholder:"e.g. API documentation and guides"},null,8,["modelValue"])]),t("div",xt,[l(f,{n:"blue",onClick:re},{default:d(()=>[...e[45]||(e[45]=[o(" Add ",-1)])]),_:1}),l(f,{n:"gray",onClick:e[13]||(e[13]=s=>{h.value=!1,m.value=""})},{default:d(()=>[...e[46]||(e[46]=[o(" Cancel ",-1)])]),_:1})])])])):x("",!0),Y.value.length===0&&!h.value?(n(),i("div",gt,[...e[48]||(e[48]=[o(" No LLMS sources configured. ",-1),t("br",null,null,-1),o(" Add external llms.txt URLs to provide context to Claude. ",-1)])])):(n(),i("div",yt,[(n(!0),i(_,null,K(Y.value,s=>(n(),i("div",{key:s.url,class:"n-bg-active rounded-lg p-4"},[t("div",kt,[t("div",_t,[t("div",Ct,[l(r,{class:"text-blue",icon:"carbon:link"}),o(" "+p(s.title||s.domain),1)]),t("div",wt,p(s.url),1),s.description?(n(),i("div",Lt,p(s.description),1)):x("",!0),t("div",Dt," Added: "+p(R(s.addedAt)),1)]),l(f,{n:"red",onClick:I=>ce(s.url)},{default:d(()=>[l(r,{icon:"carbon:trash-can"})]),_:1},8,["onClick"])])]))),128))])),l(D,{icon:"carbon:information",n:"blue"},{default:d(()=>[...e[49]||(e[49]=[o(" LLMS sources are external llms.txt files that provide documentation context. Claude can use these to better understand APIs and libraries you're working with. ",-1)])]),_:1})])):x("",!0)]),_:1})])])}}});export{Mt as default};
@@ -1,7 +0,0 @@
1
- import{_ as Z}from"./bl5iU4Kz.js";import{u as ee,a as le,l as te,b as se,c as oe,_ as ne}from"./BiBLVxWh.js";import{_ as ae}from"./CLKqRoht.js";import{_ as ie}from"./DBIw6BGF.js";import{_ as ue}from"./CSlPuO5s.js";import{g as re,r as f,j as de,k as me,c as i,a as l,b as a,w as d,d as u,l as x,F as b,p as w,m as B,E as R,x as q,t as m,s as C,o as n,n as $,y as ve}from"./nKfsBgPE.js";const ce={class:"relative flex flex-col h-screen n-bg-base"},pe={class:"flex items-center justify-between p-4"},fe={class:"flex items-center gap-3"},be={class:"text-xl font-bold flex items-center gap-2"},xe={class:"flex items-center gap-2"},ke={class:"flex-1 overflow-auto p-4"},ge={class:"flex gap-4 h-full"},_e={class:"w-72 flex-shrink-0 space-y-4"},ye={key:0,class:"n-bg-active rounded-lg p-4 opacity-50 text-sm"},we={class:"space-y-2"},Ce=["onClick"],Se={class:"flex items-center justify-between"},Ve={class:"flex items-center gap-2"},he={class:"font-medium"},Ne={class:"text-sm opacity-60 mt-1 pl-6 truncate"},Ae={class:"flex flex-wrap gap-1 mt-1 pl-6"},Ue={class:"flex-1 flex flex-col n-bg-active rounded-lg overflow-hidden"},De={class:"flex-1 overflow-auto"},Be={class:"p-4 border-b border-neutral-200 dark:border-neutral-800"},$e={key:0,class:"mb-4"},je={class:"space-y-4"},Ee=["value"],Me={key:0},Te={class:"flex flex-wrap gap-2"},Le=["onClick"],Fe={class:"p-4"},ze={class:"p-4 border-t border-neutral-200 dark:border-neutral-800 flex gap-2 flex-shrink-0"},Ge={class:"p-4 border-b border-neutral-200 dark:border-neutral-800 flex items-center justify-between"},Pe={class:"font-bold flex items-center gap-2"},Re={class:"text-sm opacity-70"},qe={class:"flex gap-2"},Ie={key:0,class:"px-4 pt-4"},Oe={class:"flex-1 p-4 overflow-auto"},Ye={class:"space-y-4 mb-4"},He=["value"],We={key:0},Je={class:"flex flex-wrap gap-2"},Ke=["onClick"],Qe={key:1,class:"space-y-4"},Xe={class:"flex flex-wrap gap-2"},Ze={class:"text-xs opacity-50"},el={key:0},ll={class:"flex flex-wrap gap-1"},tl={key:1},sl={class:"flex flex-wrap gap-1"},ol={key:2,class:"flex-1 flex items-center justify-center opacity-50"},nl={class:"text-center"},cl=re({__name:"agents",setup(al){const j=ee(),{log:S}=le("agents"),r=f(null),U=f(!1),V=f(!1),E=f([]),s=f(null),g=f(!1),D=f(!1),h=f([]),v=f({name:"",description:"",prompt:"",model:"",tools:"",skills:[]}),c=f({name:"",description:"",prompt:"",model:"",tools:"",skills:[]}),p=f(""),L=[{value:"",label:"Default"},{value:"sonnet",label:"Sonnet (fast)"},{value:"opus",label:"Opus (powerful)"},{value:"haiku",label:"Haiku (fastest)"}];function I(){return j.isActive.value&&j.origin.value?j.origin.value:window.location.origin}function O(){const o=I();S("Connecting to socket at",o),r.value=te(o,{path:"/__claude_devtools_socket",transports:["websocket","polling"],reconnection:!0,reconnectionAttempts:5}),r.value.on("connect",()=>{S("Connected"),U.value=!0,F(),Y()}),r.value.on("skills:names",e=>{S("Skill names received",e),h.value=e}),r.value.on("disconnect",()=>{S("Disconnected"),U.value=!1}),r.value.on("agents:list",e=>{S("Agents list received",e),E.value=e,V.value=!1}),r.value.on("agents:saved",e=>{e.success&&e.agent?(s.value=e.agent,g.value=!1,D.value=!1,z(),p.value=""):p.value=e.error||"Failed to save agent"}),r.value.on("agents:deleted",e=>{e.success&&s.value?.name===e.name&&(s.value=null)})}function F(){r.value&&(V.value=!0,r.value.emit("agents:list"))}function Y(){r.value&&r.value.emit("skills:names")}function z(){v.value={name:"",description:"",prompt:"",model:"",tools:"",skills:[]},p.value=""}function H(o){s.value=o,c.value={name:o.name,description:o.description,prompt:o.prompt,model:o.model||"",tools:o.tools?.join(", ")||"",skills:o.skills||[]},g.value=!1}function W(){s.value&&(c.value={name:s.value.name,description:s.value.description,prompt:s.value.prompt,model:s.value.model||"",tools:s.value.tools?.join(", ")||"",skills:s.value.skills||[]},g.value=!0)}function G(){const o=g.value?c.value:v.value;if(!o.name){p.value="Name is required";return}if(!o.description){p.value="Description is required";return}if(!o.prompt){p.value="Prompt is required";return}if(r.value){const e=o.tools.split(",").map(_=>_.trim()).filter(_=>_.length>0);r.value.emit("agents:save",{name:o.name,description:o.description,prompt:o.prompt,model:o.model||void 0,tools:e.length>0?e:void 0,skills:o.skills.length>0?o.skills:void 0})}}function J(){s.value&&(c.value={name:s.value.name,description:s.value.description,prompt:s.value.prompt,model:s.value.model||"",tools:s.value.tools?.join(", ")||"",skills:s.value.skills||[]}),g.value=!1,p.value=""}function P(o,e){const _=e.skills.indexOf(o);_>=0?e.skills.splice(_,1):e.skills.push(o)}function K(o){return new Date(o).toLocaleDateString()}function Q(o){confirm(`Delete agent "${o}"?`)&&r.value&&r.value.emit("agents:delete",o)}return de(()=>{O()}),me(()=>{r.value&&r.value.disconnect()}),(o,e)=>{const _=Z,k=ne,y=se,M=oe,N=ae,A=ie,X=ue;return n(),i("div",ce,[l("div",pe,[l("div",fe,[a(_,{class:"text-sm opacity-50 hover:opacity-100",to:"/"},{default:d(()=>[...e[11]||(e[11]=[u(" ← Chat ",-1)])]),_:1}),l("h1",be,[a(k,{class:"text-purple",icon:"carbon:bot"}),e[12]||(e[12]=u(" Subagents ",-1))])]),l("div",xe,[a(y,{disabled:!U.value,n:"purple",onClick:e[0]||(e[0]=t=>{D.value=!0,s.value=null})},{default:d(()=>[a(k,{class:"mr-1",icon:"carbon:add"}),e[13]||(e[13]=u(" New Agent ",-1))]),_:1},8,["disabled"]),a(y,{disabled:!U.value||V.value,n:"gray",onClick:F},{default:d(()=>[a(k,{class:$([{"animate-spin":V.value},"mr-1"]),icon:"carbon:restart"},null,8,["class"]),e[14]||(e[14]=u(" Refresh ",-1))]),_:1},8,["disabled"])])]),l("div",ke,[l("div",ge,[l("div",_e,[a(M,{class:"text-xs",icon:"carbon:information",n:"purple"},{default:d(()=>[...e[15]||(e[15]=[u(" Subagents are specialized AI agents that Claude can delegate tasks to. ",-1),l("br",null,null,-1),u(" Stored as ",-1),l("code",{class:"font-mono"},".claude/agents/<name>.md",-1)])]),_:1}),E.value.length===0&&!V.value?(n(),i("div",ye,[...e[16]||(e[16]=[u(" No subagents configured. ",-1),l("br",null,null,-1),u(" Create one to get started. ",-1)])])):x("",!0),l("div",we,[(n(!0),i(b,null,w(E.value,t=>(n(),i("div",{key:t.name,class:$([s.value?.name===t.name?"n-bg-active ring-1 ring-purple-500":"hover:n-bg-active","rounded-lg p-3 cursor-pointer group"]),onClick:T=>H(t)},[l("div",Se,[l("div",Ve,[a(k,{class:"text-purple-500",icon:"carbon:bot"}),l("span",he,m(t.name),1)]),a(y,{class:"opacity-0 group-hover:opacity-100",n:"red xs",onClick:ve(T=>Q(t.name),["stop"])},{default:d(()=>[a(k,{icon:"carbon:trash-can"})]),_:1},8,["onClick"])]),l("div",Ne,m(t.description),1),l("div",Ae,[t.model?(n(),C(N,{key:0,class:"text-xs",n:"gray"},{default:d(()=>[u(m(t.model),1)]),_:2},1024)):x("",!0),t.skills&&t.skills.length>0?(n(),C(N,{key:1,class:"text-xs",n:"orange"},{default:d(()=>[u(m(t.skills.length)+" skill"+m(t.skills.length>1?"s":""),1)]),_:2},1024)):x("",!0)])],10,Ce))),128))])]),l("div",Ue,[D.value?(n(),i(b,{key:0},[l("div",De,[l("div",Be,[e[25]||(e[25]=l("h3",{class:"font-bold mb-4"}," Create New Subagent ",-1)),p.value?(n(),i("div",$e,[a(M,{icon:"carbon:warning",n:"red"},{default:d(()=>[u(m(p.value),1)]),_:1})])):x("",!0),l("div",je,[l("div",null,[e[17]||(e[17]=l("label",{class:"block text-sm font-medium mb-1"},"Name",-1)),a(A,{modelValue:v.value.name,"onUpdate:modelValue":e[1]||(e[1]=t=>v.value.name=t),class:"w-full font-mono",placeholder:"e.g. reviewer, test-runner, docs-writer"},null,8,["modelValue"]),e[18]||(e[18]=l("div",{class:"text-xs opacity-50 mt-1"}," Use lowercase with hyphens (kebab-case) ",-1))]),l("div",null,[e[19]||(e[19]=l("label",{class:"block text-sm font-medium mb-1"},"Description",-1)),a(A,{modelValue:v.value.description,"onUpdate:modelValue":e[2]||(e[2]=t=>v.value.description=t),class:"w-full",placeholder:"Brief description of what this agent does"},null,8,["modelValue"])]),l("div",null,[e[20]||(e[20]=l("label",{class:"block text-sm font-medium mb-1"},"Model (optional)",-1)),B(l("select",{"onUpdate:modelValue":e[3]||(e[3]=t=>v.value.model=t),class:"w-full p-2 rounded-lg n-bg-base border border-neutral-200 dark:border-neutral-800"},[(n(),i(b,null,w(L,t=>l("option",{key:t.value,value:t.value},m(t.label),9,Ee)),64))],512),[[R,v.value.model]])]),l("div",null,[e[21]||(e[21]=l("label",{class:"block text-sm font-medium mb-1"},"Tools (optional)",-1)),a(A,{modelValue:v.value.tools,"onUpdate:modelValue":e[4]||(e[4]=t=>v.value.tools=t),class:"w-full font-mono",placeholder:"e.g. Read, Grep, Glob, Bash"},null,8,["modelValue"]),e[22]||(e[22]=l("div",{class:"text-xs opacity-50 mt-1"}," Comma-separated list. Leave empty for all tools. ",-1))]),h.value.length>0?(n(),i("div",Me,[e[23]||(e[23]=l("label",{class:"block text-sm font-medium mb-1"},"Skills",-1)),l("div",Te,[(n(!0),i(b,null,w(h.value,t=>(n(),i("button",{key:t,class:$([v.value.skills.includes(t)?"bg-orange-500 text-white":"n-bg-base","px-2 py-1 rounded text-sm border border-neutral-200 dark:border-neutral-700"]),type:"button",onClick:T=>P(t,v.value)},m(t),11,Le))),128))]),e[24]||(e[24]=l("div",{class:"text-xs opacity-50 mt-1"}," Click to add/remove skills. Skills will be preloaded for the agent. ",-1))])):x("",!0)])]),l("div",Fe,[e[26]||(e[26]=l("label",{class:"block text-sm font-medium mb-1"},"System Prompt",-1)),B(l("textarea",{"onUpdate:modelValue":e[5]||(e[5]=t=>v.value.prompt=t),class:"w-full min-h-[200px] p-3 font-mono text-sm n-bg-base rounded-lg border border-neutral-200 dark:border-neutral-800 resize-y",placeholder:`Write the system prompt for this agent...
2
-
3
- Example:
4
- You are a code reviewer. Your job is to:
5
- 1. Review code for bugs and issues
6
- 2. Suggest improvements
7
- 3. Check for security vulnerabilities`},null,512),[[q,v.value.prompt]])])]),l("div",ze,[a(y,{n:"purple",onClick:G},{default:d(()=>[...e[27]||(e[27]=[u(" Create Agent ",-1)])]),_:1}),a(y,{n:"gray",onClick:e[6]||(e[6]=t=>{D.value=!1,z()})},{default:d(()=>[...e[28]||(e[28]=[u(" Cancel ",-1)])]),_:1})])],64)):s.value?(n(),i(b,{key:1},[l("div",Ge,[l("div",null,[l("h3",Pe,[a(k,{class:"text-purple-500",icon:"carbon:bot"}),u(" "+m(s.value.name),1)]),l("div",Re,m(s.value.description),1)]),l("div",qe,[g.value?(n(),i(b,{key:0},[a(y,{n:"green",onClick:G},{default:d(()=>[a(k,{class:"mr-1",icon:"carbon:save"}),e[29]||(e[29]=u(" Save ",-1))]),_:1}),a(y,{n:"gray",onClick:J},{default:d(()=>[...e[30]||(e[30]=[u(" Cancel ",-1)])]),_:1})],64)):(n(),C(y,{key:1,n:"blue",onClick:W},{default:d(()=>[a(k,{class:"mr-1",icon:"carbon:edit"}),e[31]||(e[31]=u(" Edit ",-1))]),_:1}))])]),p.value&&g.value?(n(),i("div",Ie,[a(M,{icon:"carbon:warning",n:"red"},{default:d(()=>[u(m(p.value),1)]),_:1})])):x("",!0),l("div",Oe,[g.value?(n(),i(b,{key:0},[l("div",Ye,[l("div",null,[e[32]||(e[32]=l("label",{class:"block text-sm font-medium mb-1"},"Description",-1)),a(A,{modelValue:c.value.description,"onUpdate:modelValue":e[7]||(e[7]=t=>c.value.description=t),class:"w-full",placeholder:"Brief description"},null,8,["modelValue"])]),l("div",null,[e[33]||(e[33]=l("label",{class:"block text-sm font-medium mb-1"},"Model",-1)),B(l("select",{"onUpdate:modelValue":e[8]||(e[8]=t=>c.value.model=t),class:"w-full p-2 rounded-lg n-bg-base border border-neutral-200 dark:border-neutral-800"},[(n(),i(b,null,w(L,t=>l("option",{key:t.value,value:t.value},m(t.label),9,He)),64))],512),[[R,c.value.model]])]),l("div",null,[e[34]||(e[34]=l("label",{class:"block text-sm font-medium mb-1"},"Tools",-1)),a(A,{modelValue:c.value.tools,"onUpdate:modelValue":e[9]||(e[9]=t=>c.value.tools=t),class:"w-full font-mono",placeholder:"e.g. Read, Grep, Glob, Bash"},null,8,["modelValue"])]),h.value.length>0?(n(),i("div",We,[e[35]||(e[35]=l("label",{class:"block text-sm font-medium mb-1"},"Skills",-1)),l("div",Je,[(n(!0),i(b,null,w(h.value,t=>(n(),i("button",{key:t,class:$([c.value.skills.includes(t)?"bg-orange-500 text-white":"n-bg-base","px-2 py-1 rounded text-sm border border-neutral-200 dark:border-neutral-700"]),type:"button",onClick:T=>P(t,c.value)},m(t),11,Ke))),128))])])):x("",!0)]),e[36]||(e[36]=l("label",{class:"block text-sm font-medium mb-1"},"System Prompt",-1)),B(l("textarea",{"onUpdate:modelValue":e[10]||(e[10]=t=>c.value.prompt=t),class:"w-full h-full min-h-[300px] p-3 font-mono text-sm n-bg-base rounded-lg border border-neutral-200 dark:border-neutral-800 resize-none"},null,512),[[q,c.value.prompt]])],64)):(n(),i("div",Qe,[l("div",Xe,[s.value.model?(n(),C(N,{key:0,n:"purple"},{default:d(()=>[u(" Model: "+m(s.value.model),1)]),_:1})):x("",!0)]),l("div",Ze," Updated: "+m(K(s.value.updatedAt)),1),s.value.tools&&s.value.tools.length>0?(n(),i("div",el,[e[37]||(e[37]=l("div",{class:"text-sm font-medium opacity-50 mb-1"}," Tools ",-1)),l("div",ll,[(n(!0),i(b,null,w(s.value.tools,t=>(n(),C(N,{key:t,class:"font-mono text-xs",n:"blue"},{default:d(()=>[u(m(t),1)]),_:2},1024))),128))])])):x("",!0),s.value.skills&&s.value.skills.length>0?(n(),i("div",tl,[e[38]||(e[38]=l("div",{class:"text-sm font-medium opacity-50 mb-1"}," Skills ",-1)),l("div",sl,[(n(!0),i(b,null,w(s.value.skills,t=>(n(),C(N,{key:t,class:"text-xs",n:"orange"},{default:d(()=>[u(m(t),1)]),_:2},1024))),128))])])):x("",!0),l("div",null,[e[39]||(e[39]=l("div",{class:"text-sm font-medium opacity-50 mb-2"}," System Prompt ",-1)),a(X,{content:s.value.prompt,class:"max-w-none"},null,8,["content"])])]))])],64)):(n(),i("div",ol,[l("div",nl,[a(k,{class:"text-4xl mb-2",icon:"carbon:bot"}),e[40]||(e[40]=l("p",null,"Select an agent or create a new one",-1))])]))])])])])}}});export{cl as default};
@@ -1 +0,0 @@
1
- import{_ as N}from"./BiBLVxWh.js";import{G as _,r as h,B as S,C as B,q as V,c as w,o as $,H as k,m as D,s as I,l as J,I as C,D as E,a as G,J as O,K as T}from"./nKfsBgPE.js";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const F=n=>typeof n<"u";function M(n){return JSON.parse(JSON.stringify(n))}function U(n,s,f,m={}){var i,o;const{clone:l=!1,passive:c=!1,eventName:d,deep:p=!1,defaultValue:q,shouldEmit:v}=m,e=_(),y=f||e?.emit||(e==null||(i=e.$emit)===null||i===void 0?void 0:i.bind(e))||(e==null||(o=e.proxy)===null||o===void 0||(o=o.$emit)===null||o===void 0?void 0:o.bind(e?.proxy));let r=d;r=r||`update:${s.toString()}`;const g=t=>l?typeof l=="function"?l(t):M(t):t,b=()=>F(n[s])?g(n[s]):q,x=t=>{v?v(t)&&y(r,t):y(r,t)};if(c){const t=h(b());let a=!1;return S(()=>n[s],u=>{a||(a=!0,t.value=g(u),B(()=>a=!1))}),S(t,u=>{!a&&(u!==n[s]||p)&&x(u)},{deep:p}),t}else return V({get(){return b()},set(t){x(t)}})}const W={class:"n-text-input flex flex items-center border n-border-base rounded n-bg-base py-1 pl-1 pr-2 focus-within:border-context focus-within:n-focus-base"},P={__name:"NTextInput",props:{modelValue:{type:[String,Number],required:!1,default:""},icon:{type:String,required:!1},placeholder:{type:String,required:!1},disabled:{type:Boolean,required:!1},autofocus:{type:Boolean,required:!1},autocomplete:{type:String,required:!1},readonly:{type:Boolean,required:!1},type:{type:String,required:!1,default:"text"}},emits:["keydown","keyup","change"],setup(n,{emit:s}){const i=U(n,"modelValue",s,{passive:!0});return(o,l)=>{const c=N;return $(),w("div",W,[k(o.$slots,"icon",{},()=>[n.icon?($(),I(c,{key:0,icon:n.icon,class:"ml-0.3em mr-0.1em text-1.1em op50"},null,8,["icon"])):J("",!0)]),D(G("input",O({"onUpdate:modelValue":l[0]||(l[0]=d=>T(i)?i.value=d:null)},o.$props,{class:"ml-0.4em w-full flex-auto n-bg-base !outline-none"}),null,16),[[C,E(i)]])])}}};export{P as _};
@@ -1,9 +0,0 @@
1
- import{_ as Q,b as we,l as tt,u as nt,a as ot,c as st}from"./BiBLVxWh.js";import{g as J,s as V,w as P,T as he,o as i,c as p,l as C,a,b as v,d as H,F as q,p as G,n as K,t as $,_ as xe,z as rt,A as lt,r as R,q as B,y as ie,B as ce,C as ae,j as at,k as it,D as g,m as ct,x as ut}from"./nKfsBgPE.js";import{_ as ke}from"./CLKqRoht.js";import{_ as dt}from"./bl5iU4Kz.js";import{_ as pt}from"./CSlPuO5s.js";const ft={key:0,class:"history-sidebar w-72 h-full border-r border-gray-200 dark:border-gray-700 flex flex-col n-bg-base absolute left-0 top-0 z-10 shadow-lg"},mt={class:"p-3 border-b border-gray-200 dark:border-gray-700 flex items-center justify-between"},vt={class:"p-3 border-b border-gray-200 dark:border-gray-700"},gt={class:"flex-1 overflow-y-auto"},ht=["onClick"],xt={class:"flex items-start justify-between gap-2"},bt={class:"flex-1 min-w-0"},_t={class:"font-medium text-sm truncate"},yt={class:"text-xs opacity-50 mt-1 flex items-center gap-2"},wt=["onClick"],kt={key:0,class:"p-4 text-center opacity-50 text-sm"},Ct=J({__name:"HistorySidebar",props:{conversations:{},activeId:{},isOpen:{type:Boolean}},emits:["select","delete","new","close"],setup(l,{emit:f}){const s=f;function _(n){const r=new Date(n),w=new Date().getTime()-r.getTime(),t=Math.floor(w/6e4),o=Math.floor(t/60),e=Math.floor(o/24);return t<1?"just now":t<60?`${t}m ago`:o<24?`${o}h ago`:e<7?`${e}d ago`:r.toLocaleDateString(void 0,{month:"short",day:"numeric"})}function y(n,r){n.stopPropagation(),confirm("Delete this conversation?")&&s("delete",r)}return(n,r)=>{const m=Q,w=we;return i(),V(he,{name:"slide"},{default:P(()=>[l.isOpen?(i(),p("div",ft,[a("div",mt,[r[2]||(r[2]=a("h2",{class:"font-semibold text-sm"}," Chat History ",-1)),a("button",{class:"p-1 hover:bg-gray-100 dark:hover:bg-gray-800 rounded transition-colors",onClick:r[0]||(r[0]=t=>s("close"))},[v(m,{icon:"carbon:close"})])]),a("div",vt,[v(w,{class:"w-full",n:"blue",onClick:r[1]||(r[1]=t=>s("new"))},{default:P(()=>[v(m,{class:"mr-1",icon:"carbon:add"}),r[3]||(r[3]=H(" New Chat ",-1))]),_:1})]),a("div",gt,[(i(!0),p(q,null,G(l.conversations,t=>(i(),p("div",{key:t.id,class:K([{"bg-blue-500/10 border-l-2 border-l-blue-500":t.id===l.activeId},"p-3 border-b border-gray-100 dark:border-gray-800 cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800 group transition-colors"]),onClick:o=>s("select",t.id)},[a("div",xt,[a("div",bt,[a("div",_t,$(t.title||"New conversation"),1),a("div",yt,[a("span",null,$(_(t.updatedAt)),1),r[4]||(r[4]=a("span",{class:"opacity-50"},"|",-1)),a("span",null,$(t.messages.length)+" msgs",1)])]),a("button",{class:"opacity-0 group-hover:opacity-100 p-1 hover:bg-red-100 dark:hover:bg-red-900/20 rounded transition-opacity",title:"Delete conversation",onClick:o=>y(o,t.id)},[v(m,{class:"text-red-500 text-sm",icon:"carbon:trash-can"})],8,wt)])],10,ht))),128)),l.conversations.length===0?(i(),p("div",kt,[v(m,{class:"text-2xl mb-2",icon:"carbon:chat"}),r[5]||(r[5]=a("p",null,"No conversations yet",-1))])):C("",!0)])])):C("",!0)]),_:1})}}}),$t=Object.assign(xe(Ct,[["__scopeId","data-v-797cdae6"]]),{__name:"HistorySidebar"});let ee;const le=[];function Ce(l){if(le.push(l),!(typeof window>"u"))return window.__NUXT_DEVTOOLS__&&le.forEach(f=>f(window.__NUXT_DEVTOOLS__)),Object.defineProperty(window,"__NUXT_DEVTOOLS__",{set(f){f&&le.forEach(s=>s(f))},get(){return ee.value},configurable:!0}),()=>{le.splice(le.indexOf(l),1)}}function $e(){ee||(ee=rt(),Ce(f));function l(){ee&&lt(ee)}function f(s){ee.value=s,s.host&&s.host.hooks.hook("host:update:reactivity",l)}return ee}const St={class:"tool-call-block rounded-lg border border-gray-200 dark:border-gray-700 my-2 overflow-hidden text-sm"},At={class:"flex items-center gap-2 px-3 py-2 bg-blue-500/10"},Dt={class:"font-medium"},Rt=["title"],Tt=["href","title"],Bt={key:2,class:"text-xs opacity-50 font-mono"},It={key:3,class:"ml-auto flex-shrink-0"},Mt={key:4,class:"ml-auto flex-shrink-0"},Ot={key:0,class:"border-t border-gray-200 dark:border-gray-700"},jt={class:"text-xs opacity-50"},Nt={key:0,class:"px-3 pb-2"},Pt={class:"text-xs n-bg-base p-2 rounded overflow-x-auto max-h-64 whitespace-pre-wrap"},Et={class:"font-medium opacity-70"},Ht={key:0,class:"px-3 pb-2"},Ut={class:"text-xs n-bg-base p-2 rounded overflow-x-auto max-h-96 whitespace-pre-wrap"},Lt={key:1,class:"px-3 pb-2"},Vt={class:"text-xs opacity-50 truncate font-mono"},qt=J({__name:"ToolCallBlock",props:{toolUse:{},toolResult:{}},setup(l){const f=$e(),s=l,_=R(!1),y=R(!1),n=B(()=>JSON.stringify(s.toolUse.input,null,2)),r=B(()=>Object.keys(s.toolUse.input).length),m=B(()=>s.toolResult?typeof s.toolResult.content=="string"?s.toolResult.content:JSON.stringify(s.toolResult.content,null,2):""),w=B(()=>{const u=m.value;return u.length<=100?u:u.substring(0,100)+"..."}),t=B(()=>({Read:"carbon:document",Write:"carbon:document-add",Edit:"carbon:edit",Bash:"carbon:terminal",Glob:"carbon:search",Grep:"carbon:search-locate",WebFetch:"carbon:cloud",WebSearch:"carbon:search",Task:"carbon:task",TodoWrite:"carbon:list-checked",AskUserQuestion:"carbon:help"})[s.toolUse.name]||"carbon:tool-box"),o=B(()=>s.toolUse.id.substring(0,12)),e=B(()=>{const u=s.toolUse.input,h=u.file_path||u.path||u.filePath||u.filename||u.file||null;return h?String(h):null}),d=B(()=>{const u=s.toolUse.input,h=u.url||u.uri||u.href||u.link||null;return h?String(h):null}),x=B(()=>{if(!d.value)return null;const u=d.value,h=50;if(u.length<=h)return u;try{const T=new URL(u),I=T.hostname,U=T.pathname+T.search;return U.length>h-I.length-3?I+U.substring(0,h-I.length-6)+"...":u}catch{return u.substring(0,h-3)+"..."}}),k=B(()=>{const u=s.toolUse.input;return u.line||u.lineNumber||u.offset||null}),S=B(()=>{if(!e.value)return null;const u=e.value,h=32;if(u.length<=h)return u;const T=u.slice(-h),I=T.indexOf("/");return I>0&&I<15?"..."+T.slice(I):"..."+T});async function M(){if(e.value)try{let u=e.value;if(k.value&&(u=`${u}:${k.value}`),f.value?.devtools?.rpc?.openInEditor&&await f.value.devtools.rpc.openInEditor(u))return;const h=`webstorm://open?file=${encodeURIComponent(e.value)}${k.value?`&line=${k.value}`:""}`;window.open(h,"_self")}catch(u){console.error("Failed to open file in IDE:",u)}}return(u,h)=>{const T=Q,I=ke;return i(),p("div",St,[a("div",At,[v(T,{icon:t.value,class:"text-blue-500 flex-shrink-0"},null,8,["icon"]),a("span",Dt,$(l.toolUse.name),1),S.value?(i(),p("button",{key:0,title:`${e.value} (click to open in IDE)`,class:"text-xs text-blue-600 dark:text-blue-400 font-mono hover:underline cursor-pointer truncate max-w-[300px] text-right",onClick:ie(M,["stop"])},$(S.value),9,Rt)):x.value?(i(),p("a",{key:1,href:d.value,title:d.value,class:"text-xs text-blue-600 dark:text-blue-400 font-mono hover:underline truncate max-w-[300px] text-right",rel:"noopener noreferrer",target:"_blank",onClick:h[0]||(h[0]=ie(()=>{},["stop"]))},$(x.value),9,Tt)):(i(),p("span",Bt,$(o.value),1)),l.toolResult?(i(),p("div",It,[l.toolResult.is_error?(i(),V(I,{key:0,n:"red"},{default:P(()=>[...h[3]||(h[3]=[H(" Error ",-1)])]),_:1})):(i(),V(I,{key:1,n:"green"},{default:P(()=>[...h[4]||(h[4]=[H(" Done ",-1)])]),_:1}))])):(i(),p("div",Mt,[v(I,{n:"yellow"},{default:P(()=>[...h[5]||(h[5]=[H(" Running ",-1)])]),_:1})]))]),r.value>0?(i(),p("div",Ot,[a("button",{class:"w-full px-3 py-2 text-left flex items-center gap-2 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors",onClick:h[1]||(h[1]=U=>_.value=!_.value)},[v(T,{icon:_.value?"carbon:chevron-down":"carbon:chevron-right",class:"text-xs opacity-70"},null,8,["icon"]),h[6]||(h[6]=a("span",{class:"font-medium opacity-70"},"Parameters",-1)),a("span",jt,$(r.value)+" "+$(r.value===1?"field":"fields"),1)]),_.value?(i(),p("div",Nt,[a("pre",Pt,$(n.value),1)])):C("",!0)])):C("",!0),l.toolResult?(i(),p("div",{key:1,class:K([{"bg-red-500/5":l.toolResult.is_error},"border-t border-gray-200 dark:border-gray-700"])},[a("button",{class:"w-full px-3 py-2 text-left flex items-center gap-2 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors",onClick:h[2]||(h[2]=U=>y.value=!y.value)},[v(T,{icon:y.value?"carbon:chevron-down":"carbon:chevron-right",class:"text-xs opacity-70"},null,8,["icon"]),a("span",Et,$(l.toolResult.is_error?"Error":"Result"),1),l.toolResult.is_error?(i(),V(T,{key:0,class:"text-red-500",icon:"carbon:warning"})):C("",!0)]),y.value?(i(),p("div",Ht,[a("pre",Ut,$(m.value),1)])):m.value?(i(),p("div",Lt,[a("div",Vt,$(w.value),1)])):C("",!0)],2)):C("",!0)])}}}),Wt=Object.assign(qt,{__name:"ToolCallBlock"}),zt={class:"thinking-block rounded-lg border border-purple-200 dark:border-purple-800 my-2 overflow-hidden text-sm bg-purple-500/5"},Ft={class:"text-xs opacity-50"},Kt={key:0,class:"px-3 pb-2"},Qt={class:"text-xs n-bg-base p-2 rounded overflow-x-auto max-h-96 whitespace-pre-wrap text-purple-800 dark:text-purple-200"},Jt={key:1,class:"px-3 pb-2"},Xt={class:"text-xs opacity-50 truncate font-mono text-purple-700 dark:text-purple-300"},Gt=J({__name:"ThinkingBlock",props:{thinking:{}},setup(l){const f=l,s=R(!1),_=B(()=>{const n=f.thinking;return n.length<=80?n:n.substring(0,80)+"..."}),y=B(()=>f.thinking.split(`
2
- `).length);return(n,r)=>{const m=Q;return i(),p("div",zt,[a("button",{class:"w-full px-3 py-2 text-left flex items-center gap-2 hover:bg-purple-500/10 transition-colors",onClick:r[0]||(r[0]=w=>s.value=!s.value)},[v(m,{icon:s.value?"carbon:chevron-down":"carbon:chevron-right",class:"text-xs text-purple-500"},null,8,["icon"]),v(m,{icon:"carbon:idea",class:"text-purple-500"}),r[1]||(r[1]=a("span",{class:"font-medium text-purple-700 dark:text-purple-300"},"Thinking",-1)),a("span",Ft,$(y.value)+" "+$(y.value===1?"line":"lines"),1)]),s.value?(i(),p("div",Kt,[a("pre",Qt,$(l.thinking),1)])):(i(),p("div",Jt,[a("div",Xt,$(_.value),1)]))])}}}),Yt=Object.assign(Gt,{__name:"ThinkingBlock"}),Zt={key:0,class:"flex flex-wrap gap-1.5 mb-2 pb-2 border-b border-neutral-200/50 dark:border-neutral-700/50"},en={key:0,class:"flex items-center gap-1 px-2 py-0.5 bg-blue-500/10 text-blue-600 dark:text-blue-400 rounded text-xs",title:"Viewport size"},tn=["title"],nn=["title"],on={class:"font-mono"},sn=["title"],rn={class:"font-mono truncate max-w-[150px]"},ln=["title"],an={class:"font-mono"},cn=["title"],un={class:"font-mono"},dn=J({__name:"MessageContext",props:{context:{}},setup(l){const f=l,s=B(()=>!!f.context.viewport),_=B(()=>!!f.context.userAgent),y=B(()=>!!f.context.routing),n=B(()=>f.context.components&&f.context.components.length>0),r=B(()=>s.value||_.value||y.value||n.value),m=B(()=>f.context.userAgent?f.context.userAgent:null);function w(t){return Object.entries(t).map(([o,e])=>`${o}=${Array.isArray(e)?e.join(","):e}`).join("&")}return(t,o)=>{const e=Q;return r.value?(i(),p("div",Zt,[s.value?(i(),p("div",en,[v(e,{class:"text-blue-500",icon:"carbon:fit-to-screen"}),a("span",null,$(l.context.viewport.width)+"×"+$(l.context.viewport.height),1)])):C("",!0),_.value&&m.value?(i(),p("div",{key:1,title:l.context.userAgent,class:"flex items-center gap-1 px-2 py-0.5 bg-orange-500/10 text-orange-600 dark:text-orange-400 rounded text-xs"},[v(e,{class:"text-orange-500",icon:"carbon:application-web"}),a("span",null,$(m.value),1)],8,tn)):C("",!0),y.value?(i(),p(q,{key:2},[a("div",{title:`Full path: ${l.context.routing.fullPath||l.context.routing.path}`,class:"flex items-center gap-1 px-2 py-0.5 bg-green-500/10 text-green-600 dark:text-green-400 rounded text-xs"},[v(e,{class:"text-green-500",icon:"carbon:location"}),a("span",on,$(l.context.routing.path),1)],8,nn),l.context.routing.query&&Object.keys(l.context.routing.query).length>0?(i(),p("div",{key:0,title:w(l.context.routing.query),class:"flex items-center gap-1 px-2 py-0.5 bg-green-500/10 text-green-600 dark:text-green-400 rounded text-xs"},[v(e,{class:"text-green-500",icon:"carbon:query"}),a("span",rn,"?"+$(w(l.context.routing.query)),1)],8,sn)):C("",!0),l.context.routing.pageComponent?(i(),p("div",{key:1,title:l.context.routing.pageComponent,class:"flex items-center gap-1 px-2 py-0.5 bg-teal-500/10 text-teal-600 dark:text-teal-400 rounded text-xs"},[v(e,{class:"text-teal-500",icon:"carbon:document"}),a("span",an,$(l.context.routing.pageComponent.split("/").pop()),1)],8,ln)):C("",!0)],64)):C("",!0),(i(!0),p(q,null,G(l.context.components,d=>(i(),p("div",{key:d,title:d,class:"flex items-center gap-1 px-2 py-0.5 bg-purple-500/10 text-purple-600 dark:text-purple-400 rounded text-xs"},[v(e,{class:"text-purple-500",icon:"carbon:application"}),a("span",un,$(d.split("/").pop()?.replace(".vue","")),1)],8,cn))),128))])):C("",!0)}}}),pn=Object.assign(dn,{__name:"MessageContext"}),fn={key:0,class:"mb-2"},mn={class:"flex flex-wrap gap-2 mb-2"},vn={class:"font-mono"},gn=["title"],hn=["onClick"],xn=J({__name:"ComponentContext",props:{components:{}},emits:["remove","toggle-picker","clear-all"],setup(l,{emit:f}){const s=l,_=f;function y(m){const w=m.split("/");return w[w.length-1].replace(".vue","")}function n(m){const w=m.match(/(?:components|pages|layouts|app)\/.*\.vue$/);return w?w[0]:m}const r=B(()=>s.components.length>0);return(m,w)=>{const t=Q;return r.value?(i(),p("div",fn,[a("div",mn,[(i(!0),p(q,null,G(l.components,o=>(i(),p("div",{key:o.filePath,class:"flex items-center gap-1 px-2 py-1 bg-purple-500/20 text-purple-600 dark:text-purple-400 rounded-md text-sm group"},[v(t,{class:"text-purple-500",icon:"carbon:application"}),a("span",vn,$(y(o.filePath)),1),a("span",{title:o.filePath,class:"text-xs opacity-50 hidden sm:inline"}," ("+$(n(o.filePath))+") ",9,gn),a("button",{class:"ml-1 opacity-50 hover:opacity-100 hover:text-red-500 transition-opacity",title:"Remove from context",onClick:ie(e=>_("remove",o.filePath),["stop"])},[v(t,{icon:"carbon:close"})],8,hn)]))),128)),l.components.length>1?(i(),p("button",{key:0,class:"flex items-center gap-1 px-2 py-1 text-xs opacity-50 hover:opacity-100 hover:text-red-500 transition-opacity",title:"Clear all components",onClick:w[0]||(w[0]=ie(o=>_("clear-all"),["stop"]))},[v(t,{icon:"carbon:trash-can"}),w[1]||(w[1]=H(" Clear all ",-1))])):C("",!0)])])):C("",!0)}}}),bn=Object.assign(xn,{__name:"ComponentContext"}),_n={class:"flex items-center gap-1"},yn={key:0,class:"text-xs opacity-50 mr-1"},wn=["title","onClick"],kn="bg-neutral-100 dark:bg-neutral-800 text-neutral-500 hover:bg-neutral-200 dark:hover:bg-neutral-700",Cn=J({__name:"ContextChips",props:{chips:{}},emits:["toggle"],setup(l,{emit:f}){const s=l,_=f;function y(r){switch(r.id){case"viewport":return"bg-blue-500/20 text-blue-600 dark:text-blue-400 ring-1 ring-blue-500/30";case"user-agent":return"bg-orange-500/20 text-orange-600 dark:text-orange-400 ring-1 ring-orange-500/30";case"routing":return"bg-green-500/20 text-green-600 dark:text-green-400 ring-1 ring-green-500/30";default:return"bg-gray-500/20 text-gray-600 dark:text-gray-400 ring-1 ring-gray-500/30"}}const n=B(()=>s.chips.some(r=>r.active));return(r,m)=>{const w=Q;return i(),p("div",_n,[n.value?(i(),p("span",yn,"Context:")):C("",!0),(i(!0),p(q,null,G(l.chips,t=>(i(),p("button",{key:t.id,class:K(["flex items-center gap-1 px-2 py-1 rounded-full text-xs font-medium transition-all",t.active?y(t):kn]),title:`${t.active?"Disable":"Enable"} ${t.label} context`,onClick:o=>_("toggle",t.id)},[v(w,{icon:t.icon,class:"text-sm"},null,8,["icon"]),a("span",null,$(t.label),1)],10,wn))),128))])}}}),$n=Object.assign(Cn,{__name:"ContextChips"}),Sn={key:0,class:"absolute bottom-full left-0 mb-1 w-full max-w-md z-50"},An={class:"n-bg-base border border-neutral-200 dark:border-neutral-700 rounded-lg shadow-lg overflow-hidden"},Dn={class:"px-3 py-2 border-b border-neutral-200 dark:border-neutral-700 text-xs opacity-60 flex items-center gap-2"},Rn={class:"max-h-48 overflow-y-auto"},Tn=["onClick","onMouseenter"],Bn={class:"truncate"},In={key:0,class:"px-3 py-4 text-center text-sm opacity-50"},Mn=J({__name:"DocsAutocomplete",props:{docs:{},inputValue:{},cursorPosition:{},visible:{type:Boolean}},emits:["select","close"],setup(l,{expose:f,emit:s}){const _=l,y=s,n=R(0),r=B(()=>{if(!_.visible)return"";const e=_.inputValue.slice(0,_.cursorPosition).match(/@docs\/(\S*)$/);return e?e[1].toLowerCase():""}),m=B(()=>{const o=r.value;return o?_.docs.filter(e=>e.path.toLowerCase().includes(o)||e.name.toLowerCase().includes(o)):_.docs});ce(m,()=>{n.value=0});function w(o){if(!_.visible||m.value.length===0)return!1;switch(o.key){case"ArrowDown":return o.preventDefault(),n.value=(n.value+1)%m.value.length,!0;case"ArrowUp":return o.preventDefault(),n.value=n.value===0?m.value.length-1:n.value-1,!0;case"Tab":case"Enter":return o.preventDefault(),t(m.value[n.value]),!0;case"Escape":return o.preventDefault(),y("close"),!0}return!1}function t(o){y("select",o.path)}return f({handleKeydown:w}),(o,e)=>{const d=Q;return i(),V(he,{name:"dropdown"},{default:P(()=>[l.visible&&m.value.length>0?(i(),p("div",Sn,[a("div",An,[a("div",Dn,[v(d,{icon:"carbon:document"}),e[0]||(e[0]=a("span",null,"Select a document",-1)),e[1]||(e[1]=a("span",{class:"ml-auto opacity-50"},"Tab/Enter to select",-1))]),a("div",Rn,[(i(!0),p(q,null,G(m.value,(x,k)=>(i(),p("button",{key:x.path,class:K(["w-full px-3 py-2 text-left flex items-center gap-2 text-sm transition-colors",k===n.value?"bg-blue-500/20 text-blue-600 dark:text-blue-400":"hover:bg-neutral-100 dark:hover:bg-neutral-800"]),type:"button",onClick:S=>t(x),onMouseenter:S=>n.value=k},[v(d,{class:"opacity-50",icon:"carbon:document"}),a("span",Bn,$(x.path),1)],42,Tn))),128))]),m.value.length===0?(i(),p("div",In," No documents found ")):C("",!0)])])):C("",!0)]),_:1})}}}),On=Object.assign(xe(Mn,[["__scopeId","data-v-9157fee2"]]),{__name:"DocsAutocomplete"}),jn={key:0,class:"absolute bottom-full left-0 mb-1 w-full max-w-md z-50"},Nn={class:"n-bg-base border border-neutral-200 dark:border-neutral-700 rounded-lg shadow-lg overflow-hidden"},Pn={class:"px-3 py-2 border-b border-neutral-200 dark:border-neutral-700 text-xs opacity-60 flex items-center gap-2"},En={class:"max-h-48 overflow-y-auto"},Hn=["onClick","onMouseenter"],Un={class:"flex-1 min-w-0"},Ln={class:"font-mono truncate"},Vn={key:0,class:"text-xs opacity-50 truncate"},qn=J({__name:"CommandsAutocomplete",props:{commands:{},inputValue:{},cursorPosition:{},visible:{type:Boolean}},emits:["select","close"],setup(l,{expose:f,emit:s}){const _=l,y=s,n=R(0),r=B(()=>{if(!_.visible)return"";const d=_.inputValue.slice(0,_.cursorPosition).match(/(?:^|\s)\/(\S*)$/);return d?d[1].toLowerCase():""}),m=B(()=>{const e=r.value;return _.commands.filter(x=>e?x.name.toLowerCase().includes(e)||x.description?.toLowerCase().includes(e):!0)}),w=B(()=>_.visible&&m.value.length>0);ce(m,()=>{n.value=0}),ce([m,r],([e,d])=>{_.visible&&e.length===0&&d.length>0&&y("close")});function t(e){if(!w.value)return!1;switch(e.key){case"ArrowDown":return e.preventDefault(),n.value=(n.value+1)%m.value.length,!0;case"ArrowUp":return e.preventDefault(),n.value=n.value===0?m.value.length-1:n.value-1,!0;case"Tab":case"Enter":return e.preventDefault(),o(m.value[n.value]),!0;case"Escape":return e.preventDefault(),y("close"),!0}return!1}function o(e){y("select",e.name)}return f({handleKeydown:t}),(e,d)=>{const x=Q;return i(),V(he,{name:"dropdown"},{default:P(()=>[w.value?(i(),p("div",jn,[a("div",Nn,[a("div",Pn,[v(x,{icon:"carbon:terminal"}),d[0]||(d[0]=a("span",null,"Slash Commands",-1)),d[1]||(d[1]=a("span",{class:"ml-auto opacity-50"},"Tab/Enter to select",-1))]),a("div",En,[(i(!0),p(q,null,G(m.value,(k,S)=>(i(),p("button",{key:k.name,class:K(["w-full px-3 py-2 text-left flex items-center gap-2 text-sm transition-colors",S===n.value?"bg-green-500/20 text-green-600 dark:text-green-400":"hover:bg-neutral-100 dark:hover:bg-neutral-800"]),type:"button",onClick:M=>o(k),onMouseenter:M=>n.value=S},[v(x,{class:"opacity-50 text-green-500",icon:"carbon:terminal"}),a("div",Un,[a("div",Ln," /"+$(k.name),1),k.description?(i(),p("div",Vn,$(k.description),1)):C("",!0)])],42,Hn))),128))])])])):C("",!0)]),_:1})}}}),Wn=Object.assign(xe(qn,[["__scopeId","data-v-58ca4e57"]]),{__name:"CommandsAutocomplete"});function zn(l,f={}){const{log:s=console.log,onDocsReceived:_,onCommandsReceived:y}=f,n=R(null),r=R([]),m=R([]),w=R(null),t=R(!1),o=R(!1),e=R(!1),d=R(!1),x=R(new Map),k=B(()=>t.value?e.value?"Processing...":"Ready":"Disconnected"),S=B(()=>t.value?e.value?"blue":"green":"red");function M(){return Math.random().toString(36).substring(2,9)}function u(j,Z,c=!1){const D={id:M(),role:j,content:Z,timestamp:new Date,streaming:c};return r.value.push(D),D}function h(){const j=l();return j.isActive&&j.origin?j.origin:window.location.origin}function T(){const j=h(),Z=l();s("Connecting to socket at",j,"tunnel active:",Z.isActive),n.value=tt(j,{path:"/__claude_devtools_socket",transports:["websocket","polling"],reconnection:!0,reconnectionAttempts:5}),n.value.on("connect",()=>{s("Connected to socket"),t.value=!0,n.value?.emit("docs:list"),n.value?.emit("commands:list")}),n.value.on("disconnect",()=>{s("Disconnected from socket"),t.value=!1,o.value=!1,e.value=!1,u("system","Disconnected from server")}),n.value.on("session:status",c=>{s("Session status:",c),o.value=c.active,e.value=c.processing}),n.value.on("history:loaded",c=>{s("History loaded:",c.id,c.messages.length,"messages"),w.value=c.id,r.value=c.messages.map(D=>({...D,timestamp:new Date(D.timestamp)}))}),n.value.on("history:list",c=>{s("Conversations list:",c.length),m.value=c}),n.value.on("history:switched",c=>{s("Switched to conversation:",c.id),w.value=c.id,r.value=c.messages.map(D=>({...D,timestamp:new Date(D.timestamp)})),d.value=!1}),n.value.on("history:deleted",c=>{s("Conversation deleted:",c)}),n.value.on("docs:list",c=>{s("Docs list received:",c.length),_?.(c)}),n.value.on("commands:list",c=>{s("Commands list received:",c.length),y?.(c)}),n.value.on("stream:message_start",c=>{s("Message start:",c.id),x.value.clear()}),n.value.on("stream:tool_use",c=>{s("Tool use:",c.name);const D={type:"tool_use",id:c.id,name:c.name,input:c.input};x.value.set(c.id,D);const N=r.value.findLast(te=>te.role==="assistant");N&&(N.contentBlocks||(N.contentBlocks=[]),N.contentBlocks.push(D))}),n.value.on("stream:tool_result",c=>{s("Tool result:",c.tool_use_id,c.is_error?"ERROR":"OK");const D={type:"tool_result",tool_use_id:c.tool_use_id,content:c.content,is_error:c.is_error},N=r.value.findLast(te=>te.role==="assistant");N&&(N.contentBlocks||(N.contentBlocks=[]),N.contentBlocks.push(D))}),n.value.on("stream:text_delta",c=>{const D=r.value.findLast(N=>N.role==="assistant");D&&D.streaming&&(D.content+=c.text)}),n.value.on("stream:message_complete",c=>{s("Message complete:",c.id);const D=r.value.findLast(N=>N.role==="assistant");D&&(D.streaming=!1,D.content=c.content,D.contentBlocks=c.contentBlocks,D.model=c.model),x.value.clear()}),n.value.on("stream:result",c=>{s("Result:",c.subtype,"cost:",c.cost_usd,"duration:",c.duration_ms)}),n.value.on("output:chunk",c=>{s("Output chunk:",c.length);const D=r.value.findLast(N=>N.role==="assistant");(!D||!D.streaming)&&u("assistant",c,!0)}),n.value.on("output:complete",()=>{s("Output complete");const c=r.value.findLast(D=>D.role==="assistant");c&&(c.streaming=!1)}),n.value.on("output:error",c=>{s("Output error:",c),u("system",`Error: ${c}`)}),n.value.on("session:error",c=>{s("Session error:",c),u("system",`Session error: ${c}`)}),n.value.on("session:closed",c=>{s("Session closed:",c),u("system",`Session ended (exit code: ${c.exitCode})`)})}function I(){n.value&&(n.value.emit("session:reset"),r.value=[],d.value=!1)}function U(j){return!j.trim()||e.value||!t.value?!1:(u("user",j),u("assistant","",!0),n.value&&n.value.emit("message:send",j),!0)}function L(){d.value=!d.value,d.value&&n.value&&n.value.emit("history:list")}function z(j){n.value&&n.value.emit("history:switch",j)}function F(j){n.value&&n.value.emit("history:delete",j)}function Y(){n.value&&n.value.disconnect()}function ue(j,Z){if(j)return j.find(c=>c.type==="tool_result"&&c.tool_use_id===Z)}return{socket:n,messages:r,conversations:m,activeConversationId:w,isConnected:t,isSessionActive:o,isProcessing:e,isHistoryOpen:d,statusText:k,statusColor:S,connectSocket:T,disconnect:Y,newChat:I,sendMessage:U,addMessage:u,toggleHistory:L,selectConversation:z,deleteConversation:F,findToolResult:ue}}function Fn(l,f){const s=R([{id:"viewport",label:"Viewport",icon:"carbon:fit-to-screen",active:!1},{id:"user-agent",label:"User Agent",icon:"carbon:application-web",active:!1},{id:"routing",label:"Routing",icon:"carbon:location",active:!1}]);function _(t){const o=s.value.find(e=>e.id===t);o&&(o.active=!o.active)}function y(){return l.value?.host?.nuxt?.vueApp?.config?.globalProperties?.$route}function n(){try{const t=l.value?.host;if(t){const e=t.nuxt?.vueApp?.config?.globalProperties?.window;if(e?.innerWidth)return{width:e.innerWidth,height:e.innerHeight}}if(window.top&&window.top!==window){const o=window.top.innerWidth;return{width:window.top.innerWidth,height:window.top.innerHeight}}if(window.parent?.parent&&window.parent.parent!==window){const o=window.parent.parent.innerWidth;return{width:window.parent.parent.innerWidth,height:window.parent.parent.innerHeight}}if(window.parent&&window.parent!==window){const o=window.parent.innerWidth;return{width:window.parent.innerWidth,height:window.parent.innerHeight}}}catch{}return null}function r(){const t={};let o=!1;if(s.value.find(e=>e.id==="viewport")?.active){const e=n();e?t.viewport=e:t.viewport={width:window.innerWidth,height:window.innerHeight},o=!0}if(s.value.find(e=>e.id==="user-agent")?.active&&(t.userAgent=navigator.userAgent,o=!0),s.value.find(e=>e.id==="routing")?.active){const e=y();if(e){const d=e.query&&Object.keys(e.query).length>0?Object.fromEntries(Object.entries(e.query).map(([u,h])=>[u,Array.isArray(h)?h.filter(Boolean).join(","):h||""])):void 0,x=e.params&&Object.keys(e.params).length>0?Object.fromEntries(Object.entries(e.params).map(([u,h])=>[u,Array.isArray(h)?h.join("/"):h||""])):void 0,M=e.matched?.[e.matched.length-1]?.components?.default?.__file;t.routing={path:e.path,fullPath:e.fullPath,query:d,params:x,name:e.name?.toString(),pageComponent:M},o=!0}}return f.value.length>0&&(t.components=f.value.map(e=>e.filePath),o=!0),o?t:null}function m(t){const o=[];if(t.viewport&&o.push(`viewport: ${t.viewport.width}x${t.viewport.height}`),t.userAgent){const e=t.userAgent;let d="Unknown";e.includes("Firefox/")?d="Firefox":e.includes("Edg/")?d="Edge":e.includes("Chrome/")?d="Chrome":e.includes("Safari/")&&!e.includes("Chrome")&&(d="Safari");let x="Unknown";e.includes("Windows")?x="Windows":e.includes("Mac OS")?x="macOS":e.includes("Linux")?x="Linux":e.includes("Android")?x="Android":(e.includes("iPhone")||e.includes("iPad"))&&(x="iOS"),o.push(`browser: ${d} on ${x}`)}if(t.routing){if(o.push(`route: ${t.routing.path}`),t.routing.query&&Object.keys(t.routing.query).length>0){const e=Object.entries(t.routing.query).map(([d,x])=>`${d}=${Array.isArray(x)?x.join(","):x}`).join("&");o.push(`query: ?${e}`)}if(t.routing.params&&Object.keys(t.routing.params).length>0){const e=Object.entries(t.routing.params).map(([d,x])=>`${d}=${x}`).join(", ");o.push(`params: ${e}`)}t.routing.pageComponent&&o.push(`page: ${t.routing.pageComponent}`)}return t.components&&t.components.length>0&&o.push(`components: ${t.components.join(", ")}`),`[context]
3
- ${o.join(`
4
- `)}
5
- [/context]`}function w(t){const o=/^\[context\]\n([\s\S]*?)\n\[\/context\]\n?/,e=t.match(o);if(!e||!e[1])return{context:null,body:t};const d=e[1];let x=t.slice(e[0].length);x=x.replace(/^(@\S+\s+)+/g,"").trim();try{const k={},S=d.match(/viewport:\s*(\d+)x(\d+)/);S&&S[1]&&S[2]&&(k.viewport={width:Number.parseInt(S[1]),height:Number.parseInt(S[2])});const M=d.match(/browser:\s*(\w+)\s+on\s+(\w+)/);M&&M[1]&&M[2]&&(k.userAgent=`${M[1]} on ${M[2]}`);const u=d.match(/route:\s*(\S+)/);if(u&&u[1]){k.routing={path:u[1]};const T=d.match(/query:\s*\?(.+)/);if(T&&T[1]&&k.routing){k.routing.query={};const L=T[1].split("&");for(const z of L){const[F,Y]=z.split("=");F&&k.routing.query&&(k.routing.query[F]=Y||"")}}const I=d.match(/params:\s*(.+)/);if(I&&I[1]&&k.routing){k.routing.params={};const L=I[1].split(",").map(z=>z.trim());for(const z of L){const[F,Y]=z.split("=");F&&k.routing.params&&(k.routing.params[F]=Y||"")}}const U=d.match(/page:\s*(\S+)/);U&&U[1]&&k.routing&&(k.routing.pageComponent=U[1])}const h=d.match(/components:\s*(.+)/);return h&&h[1]&&(k.components=h[1].split(",").map(T=>T.trim())),{context:Object.keys(k).length>0?k:null,body:x}}catch{return{context:null,body:t}}}return{contextChips:s,toggleContextChip:_,collectContext:r,generateContextBlock:m,parseMessageContext:w}}function Kn(){const l=R(!1),f=R(null),s=R(!1);function _(m){const w=window.SpeechRecognition||window.webkitSpeechRecognition;if(!w){s.value=!1;return}s.value=!0;const t=new w;t.continuous=!0,t.interimResults=!0,t.lang="ru-RU",t.onresult=o=>{let e="";for(let d=o.resultIndex;d<o.results.length;d++){const x=o.results[d][0].transcript;o.results[d].isFinal&&(e+=x)}e&&m(e)},t.onerror=o=>{console.error("Speech recognition error:",o.error),l.value=!1},t.onend=()=>{l.value=!1},f.value=t}function y(m){if(f.value||_(m),!f.value){alert("Speech recognition is not supported in this browser. Try Chrome or Edge.");return}l.value?(f.value.stop(),l.value=!1):(f.value.start(),l.value=!0)}function n(){l.value&&f.value&&(f.value.stop(),l.value=!1)}function r(){f.value&&l.value&&f.value.stop()}return{isRecording:l,isSpeechSupported:s,initSpeechRecognition:_,toggleVoiceInput:y,stopRecording:n,cleanup:r}}function Qn(l,f){const s=R([]),_=R([]),y=R(!1),n=R(!1),r=R(0);function m(){const S=f.value;if(!S)return;r.value=S.selectionStart||0;const u=l.value.slice(0,r.value).match(/@docs\/\S*$/);y.value=!!u,y.value&&(n.value=!1)}function w(){const S=f.value;if(!S||y.value)return;r.value=S.selectionStart||0;const u=l.value.slice(0,r.value).match(/(?:^|\s)\/\S*$/);n.value=!!u}function t(S){const M=f.value;if(!M)return;const u=l.value.slice(0,r.value),h=l.value.slice(r.value);if(u.match(/@docs\/\S*$/)){const I=u.lastIndexOf("@docs/"),U=u.slice(0,I)+`@docs/${S}`+h;l.value=U,ae(()=>{const L=I+`@docs/${S}`.length;M.setSelectionRange(L,L),M.focus()})}y.value=!1}function o(S){const M=f.value;if(!M)return;const u=l.value.slice(0,r.value),h=l.value.slice(r.value),T=u.match(/(?:^|\s)(\/\S*)$/);if(T&&T[1]){const I=u.length-T[1].length,U=u.slice(0,I)+`/${S} `+h;l.value=U,ae(()=>{const L=I+`/${S} `.length;M.setSelectionRange(L,L),M.focus()})}n.value=!1}function e(){y.value=!1}function d(){n.value=!1}function x(S){s.value=S}function k(S){_.value=S}return{docs:s,commands:_,showDocsAutocomplete:y,showCommandsAutocomplete:n,cursorPosition:r,checkDocsAutocomplete:m,checkCommandsAutocomplete:w,handleDocsSelect:t,handleCommandSelect:o,closeDocsAutocomplete:e,closeCommandsAutocomplete:d,setDocs:x,setCommands:k}}function Jn(l,f){const s=R([]);function _(){if(!l.value?.host?.inspector){console.warn("[claude-client] Inspector not available");return}l.value.host.inspector.toggle()}function y(t){if(f("Component selected:",t),s.value.some(x=>x.filePath===t))return;const o=t.split("/"),d=(o[o.length-1]||t).replace(".vue","");s.value.push({filePath:t,name:d,timestamp:Date.now()})}function n(t){s.value=s.value.filter(o=>o.filePath!==t)}function r(){s.value=[]}function m(){return window.location.pathname.includes("__claude-devtools")}function w(t){f("DevTools client connected");const o=t.host.hooks,e=o.callHook.bind(o);o.callHook=async(d,...x)=>{if(d==="host:inspector:click"&&x[0]&&m()){const k=x[0];f("Intercepted callHook:",d,k),y(k),t.host.inspector?.disable();return}return e(d,...x)},f("Monkey-patched hooks.callHook")}return{selectedComponents:s,toggleComponentPicker:_,handleComponentSelected:y,removeComponent:n,clearAllComponents:r,isClaudeTabActive:m,setupInspectorHook:w}}const Xn={class:"relative flex flex-col h-screen n-bg-base overflow-hidden"},Gn={class:"flex flex-col h-full"},Yn={class:"flex items-center justify-between p-4"},Zn={class:"flex items-center gap-3"},eo={class:"text-xl font-bold flex items-center gap-2"},to={class:"flex items-center gap-2"},no={class:"relative"},oo={key:0,class:"px-4 pt-4"},so={key:0,class:"text-xs opacity-50 mb-1"},ro={key:0,class:"ml-1"},lo={key:1,class:"ml-2"},ao={class:"whitespace-pre-wrap font-mono text-sm"},io={key:2,class:"whitespace-pre-wrap font-mono text-sm"},co={key:3,class:"opacity-50"},uo={class:"text-xs opacity-30 mt-1"},po={key:0,class:"flex items-center justify-center h-full opacity-50"},fo={class:"text-center"},mo={class:"p-4"},vo={class:"flex items-center justify-between gap-2 mb-2"},go={class:"flex items-center gap-2"},ho={class:"flex gap-2 items-center"},xo={class:"flex-1 relative"},bo=["disabled"],_o={key:0,class:"absolute right-2 top-1/2 -translate-y-1/2 flex items-center gap-1 text-red-500"},yo={class:"text-xs opacity-50 mt-2 flex items-center gap-3"},wo={key:0,class:"text-green-500/70"},ko={key:1,class:"text-blue-500/70"},Ro=J({__name:"index",setup(l){const f=$e(),s=nt(),{log:_}=ot("client"),y=R(null),n=R(null),r=R(""),m=R(!1),{selectedComponents:w,toggleComponentPicker:t,removeComponent:o,clearAllComponents:e,setupInspectorHook:d}=Jn(f,_),{contextChips:x,toggleContextChip:k,collectContext:S,generateContextBlock:M,parseMessageContext:u}=Fn(f,w),{docs:h,commands:T,showDocsAutocomplete:I,showCommandsAutocomplete:U,cursorPosition:L,checkDocsAutocomplete:z,checkCommandsAutocomplete:F,handleDocsSelect:Y,handleCommandSelect:ue,closeDocsAutocomplete:j,closeCommandsAutocomplete:Z,setDocs:c,setCommands:D}=Qn(r,n),{isRecording:N,isSpeechSupported:te,initSpeechRecognition:Se,toggleVoiceInput:Ae,stopRecording:De,cleanup:Re}=Kn(),{messages:de,conversations:Te,activeConversationId:Be,isConnected:ne,isProcessing:oe,isHistoryOpen:be,statusText:Ie,statusColor:Me,connectSocket:Oe,disconnect:je,newChat:_e,sendMessage:Ne,toggleHistory:Pe,selectConversation:Ee,deleteConversation:He,findToolResult:Ue}=zn(()=>({isActive:s.isActive.value,origin:s.origin.value}),{log:_,onDocsReceived:c,onCommandsReceived:D}),pe=R(null),fe=R(null);function ye(){ae(()=>{y.value&&(y.value.scrollTop=y.value.scrollHeight)})}function Le(O){return(O instanceof Date?O:new Date(O)).toLocaleTimeString()}function me(){const O=n.value;O&&(O.style.height="auto",O.style.height=Math.min(O.scrollHeight,200)+"px")}function Ve(){me(),z(),F()}function qe(O){I.value&&pe.value&&pe.value.handleKeydown(O)||U.value&&fe.value&&fe.value.handleKeydown(O)||O.key==="Enter"&&!O.shiftKey&&(O.preventDefault(),We())}function We(){if(!r.value.trim()||oe.value||!ne.value)return;De();const O=r.value.trim();r.value="",n.value&&(n.value.style.height="auto");const b=S();let se=O;if(b){const E=M(b);if(se=`${E}
6
- ${O}`,b.components&&b.components.length>0){const X=b.components.map(ve=>`@${ve}`).join(" ");se=`${E}
7
- ${X}
8
-
9
- ${O}`}}Ne(se),ye(),w.value=[]}function ze(){Ae(O=>{r.value+=O,ae(me)})}return ce(de,()=>{ye()},{deep:!0}),Ce(O=>{d(O)}),at(()=>{Oe(),Se(O=>{r.value+=O,ae(me)})}),it(()=>{je(),Re()}),(O,b)=>{const se=$t,E=Q,X=we,ve=ke,re=dt,Fe=st,ge=pt,Ke=Wt,Qe=Yt,Je=pn,Xe=bn,Ge=$n,Ye=On,Ze=Wn;return i(),p("div",Xn,[v(se,{"active-id":g(Be),conversations:g(Te),"is-open":g(be),onClose:b[0]||(b[0]=A=>be.value=!1),onDelete:g(He),onNew:g(_e),onSelect:g(Ee)},null,8,["active-id","conversations","is-open","onDelete","onNew","onSelect"]),a("div",Gn,[a("div",Yn,[a("div",Zn,[v(X,{n:"gray",title:"Chat History",onClick:g(Pe)},{default:P(()=>[v(E,{icon:"carbon:recently-viewed"})]),_:1},8,["onClick"]),a("h1",eo,[v(E,{class:"text-green",icon:"carbon:machine-learning-model"}),b[4]||(b[4]=H(" Claude AI ",-1))]),v(ve,{n:g(Me)},{default:P(()=>[H($(g(Ie)),1)]),_:1},8,["n"])]),a("div",to,[v(X,{disabled:!g(ne)||g(oe),n:"blue",onClick:g(_e)},{default:P(()=>[v(E,{class:"mr-1",icon:"carbon:add"}),b[5]||(b[5]=H(" New Chat ",-1))]),_:1},8,["disabled","onClick"]),v(re,{to:"/docs"},{default:P(()=>[v(X,{n:"gray"},{default:P(()=>[v(E,{class:"mr-1",icon:"carbon:document"}),b[6]||(b[6]=H(" Docs ",-1))]),_:1})]),_:1}),a("div",no,[v(X,{n:"gray",onClick:b[1]||(b[1]=A=>m.value=!m.value)},{default:P(()=>[v(E,{class:"mr-1",icon:"carbon:overflow-menu-horizontal"}),b[7]||(b[7]=H(" More ",-1)),v(E,{class:K([{"rotate-180":m.value},"ml-1 transition-transform"]),icon:"carbon:chevron-down"},null,8,["class"])]),_:1}),m.value?(i(),p("div",{key:0,class:"absolute right-0 top-full mt-1 z-50 min-w-[160px] rounded-lg n-bg-base border border-neutral-200 dark:border-neutral-800 shadow-lg overflow-hidden",onClick:b[2]||(b[2]=A=>m.value=!1)},[v(re,{class:"flex items-center gap-2 px-3 py-2 hover:n-bg-active transition-colors",to:"/mcp"},{default:P(()=>[v(E,{class:"text-blue-500",icon:"carbon:plug"}),b[8]||(b[8]=H(" MCP Servers ",-1))]),_:1}),v(re,{class:"flex items-center gap-2 px-3 py-2 hover:n-bg-active transition-colors",to:"/commands"},{default:P(()=>[v(E,{class:"text-green-500",icon:"carbon:terminal"}),b[9]||(b[9]=H(" Commands ",-1))]),_:1}),v(re,{class:"flex items-center gap-2 px-3 py-2 hover:n-bg-active transition-colors",to:"/skills"},{default:P(()=>[v(E,{class:"text-orange-500",icon:"carbon:lightning"}),b[10]||(b[10]=H(" Skills ",-1))]),_:1}),v(re,{class:"flex items-center gap-2 px-3 py-2 hover:n-bg-active transition-colors",to:"/agents"},{default:P(()=>[v(E,{class:"text-purple-500",icon:"carbon:bot"}),b[11]||(b[11]=H(" Agents ",-1))]),_:1})])):C("",!0)])])]),g(f)?C("",!0):(i(),p("div",oo,[v(Fe,{n:"yellow"},{default:P(()=>[...b[12]||(b[12]=[H(" Open this page inside Nuxt DevTools for best experience. ",-1)])]),_:1})])),a("div",{ref_key:"messagesContainer",ref:y,class:"flex-1 overflow-auto p-4 space-y-4"},[(i(!0),p(q,null,G(g(de),A=>(i(),p("div",{key:A.id,class:K([A.role==="user"?"justify-end":"justify-start","flex"])},[a("div",{class:K([{"bg-green-500/20 text-green-800 dark:text-green-100":A.role==="user","n-bg-active":A.role==="assistant","bg-yellow-500/20 text-yellow-800 dark:text-yellow-200 text-sm":A.role==="system"},"max-w-[85%] rounded-lg px-4 py-2"])},[A.role==="assistant"?(i(),p("div",so,[b[13]||(b[13]=H(" Claude ",-1)),A.model?(i(),p("span",ro,"("+$(A.model.split("-").slice(0,2).join("-"))+")",1)):C("",!0),A.streaming?(i(),p("span",lo,[v(E,{class:"animate-pulse",icon:"carbon:circle-filled"})])):C("",!0)])):C("",!0),A.contentBlocks&&A.contentBlocks.length>0?(i(),p(q,{key:1},[(i(!0),p(q,null,G(A.contentBlocks,(W,et)=>(i(),p(q,{key:et},[W.type==="text"&&W.text?(i(),V(ge,{key:0,content:W.text},null,8,["content"])):W.type==="tool_use"?(i(),V(Ke,{key:1,"tool-result":g(Ue)(A.contentBlocks,W.id),"tool-use":W},null,8,["tool-result","tool-use"])):W.type==="thinking"&&W.thinking?(i(),V(Qe,{key:2,thinking:W.thinking},null,8,["thinking"])):C("",!0)],64))),128)),A.content&&!A.contentBlocks.some(W=>W.type==="text")?(i(),V(ge,{key:0,content:A.content},null,8,["content"])):C("",!0)],64)):(i(),p(q,{key:2},[A.role==="assistant"&&A.content?(i(),V(ge,{key:0,content:A.content},null,8,["content"])):A.role==="user"&&A.content?(i(),p(q,{key:1},[g(u)(A.content).context?(i(),V(Je,{key:0,context:g(u)(A.content).context},null,8,["context"])):C("",!0),a("div",ao,$(g(u)(A.content).body),1)],64)):A.content?(i(),p("div",io,$(A.content),1)):C("",!0),A.streaming&&!A.content?(i(),p("span",co,"Thinking...")):C("",!0)],64)),a("div",uo,$(Le(A.timestamp)),1)],2)],2))),128)),g(de).length===0?(i(),p("div",po,[a("div",fo,[v(E,{class:"text-4xl mb-2",icon:"carbon:chat"}),b[14]||(b[14]=a("p",null,"Send a message to start chatting with Claude",-1))])])):C("",!0)],512),a("div",mo,[v(Xe,{components:g(w),onRemove:g(o),onClearAll:g(e),onTogglePicker:g(t)},null,8,["components","onRemove","onClearAll","onTogglePicker"]),a("div",vo,[a("div",go,[g(f)?(i(),V(X,{key:0,disabled:!g(ne),n:"purple",title:"Select a component from the page to add as context",onClick:g(t)},{default:P(()=>[v(E,{class:"mr-1",icon:"carbon:touch-1"}),b[15]||(b[15]=H(" Add Component ",-1))]),_:1},8,["disabled","onClick"])):C("",!0)]),v(Ge,{chips:g(x),onToggle:g(k)},null,8,["chips","onToggle"])]),a("div",ho,[a("div",xo,[v(Ye,{ref_key:"docsAutocompleteRef",ref:pe,"cursor-position":g(L),docs:g(h),"input-value":r.value,visible:g(I),onClose:g(j),onSelect:g(Y)},null,8,["cursor-position","docs","input-value","visible","onClose","onSelect"]),v(Ze,{ref_key:"commandsAutocompleteRef",ref:fe,commands:g(T),"cursor-position":g(L),"input-value":r.value,visible:g(U),onClose:g(Z),onSelect:g(ue)},null,8,["commands","cursor-position","input-value","visible","onClose","onSelect"]),ct(a("textarea",{ref_key:"textareaRef",ref:n,"onUpdate:modelValue":b[3]||(b[3]=A=>r.value=A),class:K([{"opacity-50":!g(ne)||g(oe)},"w-full px-3 py-2 n-bg-base border border-neutral-200 dark:border-neutral-800 rounded-lg font-mono text-sm resize-none focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent"]),disabled:!g(ne)||g(oe),placeholder:"Type your message... (Shift+Enter for new line)",rows:"1",style:{"min-height":"42px","max-height":"200px"},onInput:Ve,onKeydown:qe},null,42,bo),[[ut,r.value]]),g(N)?(i(),p("div",_o,[...b[16]||(b[16]=[a("span",{class:"w-2 h-2 bg-red-500 rounded-full animate-pulse"},null,-1),a("span",{class:"text-xs"},"Recording...",-1)])])):C("",!0)]),g(te)?(i(),V(X,{key:0,disabled:!g(ne)||g(oe),n:g(N)?"red":"gray",title:g(N)?"Stop recording":"Start voice input",class:"h-[42px] -mt-[6px]",onClick:ze},{default:P(()=>[v(E,{icon:g(N)?"carbon:stop-filled":"carbon:microphone"},null,8,["icon"])]),_:1},8,["disabled","n","title"])):C("",!0)]),a("div",yo,[a("span",null,"Enter to send | Shift+Enter for new line"+$(g(te)?" | Click mic for voice input":""),1),g(T).length>0?(i(),p("span",wo,[v(E,{class:"mr-1",icon:"carbon:terminal"}),b[17]||(b[17]=H("Type / for commands ",-1))])):C("",!0),g(h).length>0?(i(),p("span",ko,[v(E,{class:"mr-1",icon:"carbon:document"}),b[18]||(b[18]=H("@docs/ for docs ",-1))])):C("",!0)])])])])}}});export{Ro as default};
@@ -1 +0,0 @@
1
- import{g as O,N as q,z as j,r as B,e as k,j as N,O as T,P as U,Q as E,R as I,L,S as A,U as V,V as w,W as D,q as b,X as P,Y as F,M as H,Z as z,$ as M,a0 as W,a1 as $}from"./nKfsBgPE.js";const Q=(...t)=>t.find(o=>o!==void 0);function G(t){const o=t.componentName||"NuxtLink";function v(e){return typeof e=="string"&&e.startsWith("#")}function S(e,u,f){const r=f??t.trailingSlash;if(!e||r!=="append"&&r!=="remove")return e;if(typeof e=="string")return R(e,r);const l="path"in e&&e.path!==void 0?e.path:u(e).path;return{...e,name:void 0,path:R(l,r)}}function C(e){const u=q(),f=H(),r=b(()=>!!e.target&&e.target!=="_self"),l=b(()=>{const i=e.to||e.href||"";return typeof i=="string"&&P(i,{acceptRelative:!0})}),m=A("RouterLink"),h=typeof m!="string"?m.useLink:void 0,c=b(()=>{if(e.external)return!0;const i=e.to||e.href||"";return typeof i=="object"?!1:i===""||l.value}),n=b(()=>{const i=e.to||e.href||"";return c.value?i:S(i,u.resolve,e.trailingSlash)}),g=c.value?void 0:h?.({...e,to:n}),y=b(()=>{const i=e.trailingSlash??t.trailingSlash;if(!n.value||l.value||v(n.value))return n.value;if(c.value){const p=typeof n.value=="object"&&"path"in n.value?w(n.value):n.value,x=typeof p=="object"?u.resolve(p).href:p;return R(x,i)}return typeof n.value=="object"?u.resolve(n.value)?.href??null:R(F(f.app.baseURL,n.value),i)});return{to:n,hasTarget:r,isAbsoluteUrl:l,isExternal:c,href:y,isActive:g?.isActive??b(()=>n.value===u.currentRoute.value.path),isExactActive:g?.isExactActive??b(()=>n.value===u.currentRoute.value.path),route:g?.route??b(()=>u.resolve(n.value)),async navigate(i){await z(y.value,{replace:e.replace,external:c.value||r.value})}}}return O({name:o,props:{to:{type:[String,Object],default:void 0,required:!1},href:{type:[String,Object],default:void 0,required:!1},target:{type:String,default:void 0,required:!1},rel:{type:String,default:void 0,required:!1},noRel:{type:Boolean,default:void 0,required:!1},prefetch:{type:Boolean,default:void 0,required:!1},prefetchOn:{type:[String,Object],default:void 0,required:!1},noPrefetch:{type:Boolean,default:void 0,required:!1},activeClass:{type:String,default:void 0,required:!1},exactActiveClass:{type:String,default:void 0,required:!1},prefetchedClass:{type:String,default:void 0,required:!1},replace:{type:Boolean,default:void 0,required:!1},ariaCurrentValue:{type:String,default:void 0,required:!1},external:{type:Boolean,default:void 0,required:!1},custom:{type:Boolean,default:void 0,required:!1},trailingSlash:{type:String,default:void 0,required:!1}},useLink:C,setup(e,{slots:u}){const f=q(),{to:r,href:l,navigate:m,isExternal:h,hasTarget:c,isAbsoluteUrl:n}=C(e),g=j(!1),y=B(null),i=s=>{y.value=e.custom?s?.$el?.nextElementSibling:s?.$el};function p(s){return!g.value&&(typeof e.prefetchOn=="string"?e.prefetchOn===s:e.prefetchOn?.[s]??t.prefetchOn?.[s])&&(e.prefetch??t.prefetch)!==!1&&e.noPrefetch!==!0&&e.target!=="_blank"&&!Z()}async function x(s=k()){if(g.value)return;g.value=!0;const d=typeof r.value=="string"?r.value:h.value?w(r.value):f.resolve(r.value).fullPath,a=h.value?new URL(d,window.location.href).href:d;await Promise.all([s.hooks.callHook("link:prefetch",a).catch(()=>{}),!h.value&&!c.value&&D(r.value,f).catch(()=>{})])}if(p("visibility")){const s=k();let d,a=null;N(()=>{const _=X();T(()=>{d=U(()=>{y?.value?.tagName&&(a=_.observe(y.value,async()=>{a?.(),a=null,await x(s)}))})})}),E(()=>{d&&I(d),a?.(),a=null})}return()=>{if(!h.value&&!c.value&&!v(r.value)){const a={ref:i,to:r.value,activeClass:e.activeClass||t.activeClass,exactActiveClass:e.exactActiveClass||t.exactActiveClass,replace:e.replace,ariaCurrentValue:e.ariaCurrentValue,custom:e.custom};return e.custom||(p("interaction")&&(a.onPointerenter=x.bind(null,void 0),a.onFocus=x.bind(null,void 0)),g.value&&(a.class=e.prefetchedClass||t.prefetchedClass),a.rel=e.rel||void 0),L(A("RouterLink"),a,u.default)}const s=e.target||null,d=Q(e.noRel?"":e.rel,t.externalRelAttribute,n.value||c.value?"noopener noreferrer":"")||null;return e.custom?u.default?u.default({href:l.value,navigate:m,prefetch:x,get route(){if(!l.value)return;const a=new URL(l.value,window.location.href);return{path:a.pathname,fullPath:a.pathname,get query(){return V(a.search)},hash:a.hash,params:{},name:void 0,matched:[],redirectedFrom:void 0,meta:{},href:l.value}},rel:d,target:s,isExternal:h.value||c.value,isActive:!1,isExactActive:!1}):null:L("a",{ref:y,href:l.value||null,rel:d,target:s,onClick:a=>{if(!(h.value||c.value))return a.preventDefault(),e.replace?f.replace(l.value):f.push(l.value)}},u.default?.())}}})}const K=G($);function R(t,o){const v=o==="append"?M:W;return P(t)&&!t.startsWith("http")?t:v(t,!0)}function X(){const t=k();if(t._observer)return t._observer;let o=null;const v=new Map,S=(e,u)=>(o||=new IntersectionObserver(f=>{for(const r of f){const l=v.get(r.target);(r.isIntersecting||r.intersectionRatio>0)&&l&&l()}}),v.set(e,u),o.observe(e),()=>{v.delete(e),o?.unobserve(e),v.size===0&&(o?.disconnect(),o=null)});return t._observer={observe:S}}const Y=/2g/;function Z(){const t=navigator.connection;return!!(t&&(t.saveData||Y.test(t.effectiveType)))}export{K as _};
@@ -1 +0,0 @@
1
- {"id":"35284331-5e85-46e0-9058-988fea05336c","timestamp":1769481726690,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}
@@ -1 +0,0 @@
1
- :root{--nui-c-context:125,125,125}html{background-color:#fff}html.dark{background-color:#151515;color:#fff;color-scheme:dark}::-moz-selection{background:#8884}::selection{background:#8884}.shiki .line{display:inline-block;position:relative;width:100%}.shiki.diff .line>span{filter:saturate(.75);opacity:.75}.shiki.diff .line-added,.shiki.diff .line-removed{scroll-margin:5em}.shiki.diff .line-added>span,.shiki.diff .line-removed>span{opacity:1!important;position:inherit;scroll-margin:20px;z-index:100}.shiki.diff .line-added>span{color:#218c3b!important}.shiki.diff .line-removed>span{color:#d15547!important}.shiki .line-added:after{background-color:#43885420}.shiki .line-added:after,.shiki .line-removed:after{content:"";display:block;inset:0;position:absolute}.shiki .line-removed:after{background-color:#8f4c3926}::view-transition-new(root),::view-transition-old(root){animation:none;mix-blend-mode:normal}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:2147483646}.dark::view-transition-old(root){z-index:2147483646}.dark::view-transition-new(root){z-index:1}*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}@font-face{font-display:swap;font-family:DM Mono;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/dmmono/v16/aFTU7PB1QTsUX8KYthSQBK6PYK3EXw.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:DM Mono;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/dmmono/v16/aFTU7PB1QTsUX8KYthqQBK6PYK0.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:DM Sans;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/dmsans/v17/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAopxRR232RmYJp8I5zzw.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:DM Sans;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/dmsans/v17/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAopxRSW32RmYJp8I5.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.carbon\:add{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M17 15V8h-2v7H8v2h7v7h2v-7h7v-2z'/%3E%3C/svg%3E")}.carbon\:add,.carbon\:application{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:application{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M16 18H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2M6 6v10h10V6zm20 6v4h-4v-4zm0-2h-4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2m0 12v4h-4v-4zm0-2h-4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2m-10 2v4h-4v-4zm0-2h-4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2'/%3E%3C/svg%3E")}.carbon\:application-web{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M26 2h4v4h-4zm0 6h4v4h-4zm-6-6h4v4h-4zm0 6h4v4h-4z'/%3E%3Cpath fill='currentColor' d='M28 16v6H4V6h12V4H4a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h8v4H8v2h16v-2h-4v-4h8a2 2 0 0 0 2-2v-6ZM18 28h-4v-4h4Z'/%3E%3C/svg%3E")}.carbon\:application-web,.carbon\:bot{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:bot{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M18 10h2v2h-2zm-6 0h2v2h-2z'/%3E%3Cpath fill='currentColor' d='M26 20h-5v-2h1a2 2 0 0 0 2-2v-4h2v-2h-2V8a2 2 0 0 0-2-2h-2V2h-2v4h-4V2h-2v4h-2a2 2 0 0 0-2 2v2H6v2h2v4a2 2 0 0 0 2 2h1v2H6a2 2 0 0 0-2 2v8h2v-8h20v8h2v-8a2 2 0 0 0-2-2M10 8h12v8H10Zm3 10h6v2h-6Z'/%3E%3C/svg%3E")}.carbon\:chat{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M17.74 30L16 29l4-7h6a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h9v2H6a4 4 0 0 1-4-4V8a4 4 0 0 1 4-4h20a4 4 0 0 1 4 4v12a4 4 0 0 1-4 4h-4.84Z'/%3E%3Cpath fill='currentColor' d='M8 10h16v2H8zm0 6h10v2H8z'/%3E%3C/svg%3E")}.carbon\:chat,.carbon\:chevron-down{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:chevron-down{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M16 22L6 12l1.4-1.4l8.6 8.6l8.6-8.6L26 12z'/%3E%3C/svg%3E")}.carbon\:chevron-right{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M22 16L12 26l-1.4-1.4l8.6-8.6l-8.6-8.6L12 6z'/%3E%3C/svg%3E")}.carbon\:chevron-right,.carbon\:circle-filled{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:circle-filled{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Ccircle cx='16' cy='16' r='10' fill='currentColor'/%3E%3Cpath fill='currentColor' d='M16 30a14 14 0 1 1 14-14a14.016 14.016 0 0 1-14 14m0-26a12 12 0 1 0 12 12A12.014 12.014 0 0 0 16 4'/%3E%3C/svg%3E")}.carbon\:close{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M17.414 16L24 9.414L22.586 8L16 14.586L9.414 8L8 9.414L14.586 16L8 22.586L9.414 24L16 17.414L22.586 24L24 22.586z'/%3E%3C/svg%3E")}.carbon\:close,.carbon\:cloud{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:cloud{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M16 7a7.7 7.7 0 0 1 1.51.15a8 8 0 0 1 6.35 6.34l.26 1.35l1.35.24a5.5 5.5 0 0 1-1 10.92H7.5a5.5 5.5 0 0 1-1-10.92l1.34-.24l.26-1.35A8 8 0 0 1 16 7m0-2a10 10 0 0 0-9.83 8.12A7.5 7.5 0 0 0 7.49 28h17a7.5 7.5 0 0 0 1.32-14.88a10 10 0 0 0-7.94-7.94A10.3 10.3 0 0 0 16 5'/%3E%3C/svg%3E")}.carbon\:document{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='m25.7 9.3l-7-7c-.2-.2-.4-.3-.7-.3H8c-1.1 0-2 .9-2 2v24c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V10c0-.3-.1-.5-.3-.7M18 4.4l5.6 5.6H18zM24 28H8V4h8v6c0 1.1.9 2 2 2h6z'/%3E%3Cpath fill='currentColor' d='M10 22h12v2H10zm0-6h12v2H10z'/%3E%3C/svg%3E")}.carbon\:document,.carbon\:document-add{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:document-add{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M30 24h-4v-4h-2v4h-4v2h4v4h2v-4h4z'/%3E%3Cpath fill='currentColor' d='M16 28H8V4h8v6a2.006 2.006 0 0 0 2 2h6v4h2v-6a.91.91 0 0 0-.3-.7l-7-7A.9.9 0 0 0 18 2H8a2.006 2.006 0 0 0-2 2v24a2.006 2.006 0 0 0 2 2h8Zm2-23.6l5.6 5.6H18Z'/%3E%3C/svg%3E")}.carbon\:document-tasks{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='m22 27.18l-2.59-2.59L18 26l4 4l8-8l-1.41-1.41z'/%3E%3Cpath fill='currentColor' d='M15 28H8V4h8v6a2.006 2.006 0 0 0 2 2h6v6h2v-8a.91.91 0 0 0-.3-.7l-7-7A.9.9 0 0 0 18 2H8a2.006 2.006 0 0 0-2 2v24a2.006 2.006 0 0 0 2 2h7Zm3-23.6l5.6 5.6H18Z'/%3E%3C/svg%3E")}.carbon\:document-tasks,.carbon\:edit{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:edit{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M2 26h28v2H2zM25.4 9c.8-.8.8-2 0-2.8l-3.6-3.6c-.8-.8-2-.8-2.8 0l-15 15V24h6.4zm-5-5L24 7.6l-3 3L17.4 7zM6 22v-3.6l10-10l3.6 3.6l-10 10z'/%3E%3C/svg%3E")}.carbon\:fit-to-screen{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M22 16h2V8h-8v2h6zM8 24h8v-2h-6v-6H8z'/%3E%3Cpath fill='currentColor' d='M26 28H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h20a2 2 0 0 1 2 2v20a2 2 0 0 1-2 2M6 6v20h20.001L26 6Z'/%3E%3C/svg%3E")}.carbon\:fit-to-screen,.carbon\:folder{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:folder{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='m11.17 6l3.42 3.41l.58.59H28v16H4V6zm0-2H4a2 2 0 0 0-2 2v20a2 2 0 0 0 2 2h24a2 2 0 0 0 2-2V10a2 2 0 0 0-2-2H16l-3.41-3.41A2 2 0 0 0 11.17 4'/%3E%3C/svg%3E")}.carbon\:help{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M16 2a14 14 0 1 0 14 14A14 14 0 0 0 16 2m0 26a12 12 0 1 1 12-12a12 12 0 0 1-12 12'/%3E%3Ccircle cx='16' cy='23.5' r='1.5' fill='currentColor'/%3E%3Cpath fill='currentColor' d='M17 8h-1.5a4.49 4.49 0 0 0-4.5 4.5v.5h2v-.5a2.5 2.5 0 0 1 2.5-2.5H17a2.5 2.5 0 0 1 0 5h-2v4.5h2V17a4.5 4.5 0 0 0 0-9'/%3E%3C/svg%3E")}.carbon\:help,.carbon\:idea{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:idea{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M11 24h10v2H11zm2 4h6v2h-6zm3-26A10 10 0 0 0 6 12a9.19 9.19 0 0 0 3.46 7.62c1 .93 1.54 1.46 1.54 2.38h2c0-1.84-1.11-2.87-2.19-3.86A7.2 7.2 0 0 1 8 12a8 8 0 0 1 16 0a7.2 7.2 0 0 1-2.82 6.14c-1.07 1-2.18 2-2.18 3.86h2c0-.92.53-1.45 1.54-2.39A9.18 9.18 0 0 0 26 12A10 10 0 0 0 16 2'/%3E%3C/svg%3E")}.carbon\:information{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M17 22v-8h-4v2h2v6h-3v2h8v-2zM16 8a1.5 1.5 0 1 0 1.5 1.5A1.5 1.5 0 0 0 16 8'/%3E%3Cpath fill='currentColor' d='M16 30a14 14 0 1 1 14-14a14 14 0 0 1-14 14m0-26a12 12 0 1 0 12 12A12 12 0 0 0 16 4'/%3E%3C/svg%3E")}.carbon\:information,.carbon\:lightning{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:lightning{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M11.61 29.92a1 1 0 0 1-.6-1.07L12.83 17H8a1 1 0 0 1-1-1.23l3-13A1 1 0 0 1 11 2h10a1 1 0 0 1 .78.37a1 1 0 0 1 .2.85L20.25 11H25a1 1 0 0 1 .9.56a1 1 0 0 1-.11 1l-13 17A1 1 0 0 1 12 30a1.1 1.1 0 0 1-.39-.08M17.75 13l2-9H11.8L9.26 15h5.91l-1.59 10.28L23 13Z'/%3E%3C/svg%3E")}.carbon\:link{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M29.25 6.76a6 6 0 0 0-8.5 0l1.42 1.42a4 4 0 1 1 5.67 5.67l-8 8a4 4 0 1 1-5.67-5.66l1.41-1.42l-1.41-1.42l-1.42 1.42a6 6 0 0 0 0 8.5A6 6 0 0 0 17 25a6 6 0 0 0 4.27-1.76l8-8a6 6 0 0 0-.02-8.48'/%3E%3Cpath fill='currentColor' d='M4.19 24.82a4 4 0 0 1 0-5.67l8-8a4 4 0 0 1 5.67 0A3.94 3.94 0 0 1 19 14a4 4 0 0 1-1.17 2.85L15.71 19l1.42 1.42l2.12-2.12a6 6 0 0 0-8.51-8.51l-8 8a6 6 0 0 0 0 8.51A6 6 0 0 0 7 28a6.07 6.07 0 0 0 4.28-1.76l-1.42-1.42a4 4 0 0 1-5.67 0'/%3E%3C/svg%3E")}.carbon\:link,.carbon\:list-checked{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:list-checked{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M16 22h14v2H16zm-2-2.6L12.6 18L6 24.6L3.4 22L2 23.4l4 4zM16 8h14v2H16zm-2-2.6L12.6 4L6 10.6L3.4 8L2 9.4l4 4z'/%3E%3C/svg%3E")}.carbon\:location{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M16 18a5 5 0 1 1 5-5a5.006 5.006 0 0 1-5 5m0-8a3 3 0 1 0 3 3a3.003 3.003 0 0 0-3-3'/%3E%3Cpath fill='currentColor' d='m16 30l-8.436-9.949a35 35 0 0 1-.348-.451A10.9 10.9 0 0 1 5 13a11 11 0 0 1 22 0a10.9 10.9 0 0 1-2.215 6.597l-.001.003s-.3.394-.345.447ZM8.813 18.395s.233.308.286.374L16 26.908l6.91-8.15c.044-.055.278-.365.279-.366A8.9 8.9 0 0 0 25 13a9 9 0 1 0-18 0a8.9 8.9 0 0 0 1.813 5.395'/%3E%3C/svg%3E")}.carbon\:location,.carbon\:machine-learning-model{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:machine-learning-model{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M27 19c1.654 0 3-1.346 3-3s-1.346-3-3-3a2.995 2.995 0 0 0-2.816 2h-5.77l7.3-7.3c.392.187.824.3 1.286.3c1.654 0 3-1.346 3-3s-1.346-3-3-3s-3 1.346-3 3c0 .462.114.894.3 1.285L16 14.586V8c0-1.102.897-2 2-2h2V4h-2c-1.2 0-2.266.543-3 1.382A3.98 3.98 0 0 0 12 4h-1c-4.962 0-9 4.037-9 9v6c0 4.963 4.038 9 9 9h1c1.2 0 2.266-.542 3-1.382c.734.84 1.8 1.382 3 1.382h2v-2h-2c-1.103 0-2-.897-2-2v-6.586l8.3 8.301c-.187.391-.3.823-.3 1.285c0 1.655 1.346 3 3 3s3-1.345 3-3s-1.346-3-3-3a2.96 2.96 0 0 0-1.285.301l-7.301-7.3h5.77A2.995 2.995 0 0 0 27 19m0-4a1 1 0 0 1 0 2a1 1 0 0 1 0-2m0-11a1.001 1.001 0 0 1 0 2a1 1 0 0 1 0-2m-13 8h-2v2h2v4h-2c-1.654 0-3 1.346-3 3v2h2v-2a1 1 0 0 1 1-1h2v4c0 1.103-.897 2-2 2h-1c-3.52 0-6.432-2.613-6.92-6H6v-2H4v-4h3c1.654 0 3-1.346 3-3V9H8v2a1 1 0 0 1-1 1H4.08c.488-3.387 3.4-6 6.92-6h1c1.103 0 2 .898 2 2zm14 15a1.001 1.001 0 0 1-2 0c0-.551.449-1 1-1s1 .449 1 1'/%3E%3C/svg%3E")}.carbon\:microphone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M23 14v3a7 7 0 0 1-14 0v-3H7v3a9 9 0 0 0 8 8.94V28h-4v2h10v-2h-4v-2.06A9 9 0 0 0 25 17v-3Z'/%3E%3Cpath fill='currentColor' d='M16 22a5 5 0 0 0 5-5V7a5 5 0 0 0-10 0v10a5 5 0 0 0 5 5M13 7a3 3 0 0 1 6 0v10a3 3 0 0 1-6 0Z'/%3E%3C/svg%3E")}.carbon\:microphone,.carbon\:overflow-menu-horizontal{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:overflow-menu-horizontal{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Ccircle cx='8' cy='16' r='2' fill='currentColor'/%3E%3Ccircle cx='16' cy='16' r='2' fill='currentColor'/%3E%3Ccircle cx='24' cy='16' r='2' fill='currentColor'/%3E%3C/svg%3E")}.carbon\:plug{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M22 8h-1V2h-2v6h-6V2h-2v6h-1a2 2 0 0 0-2 2v6a8.01 8.01 0 0 0 7 7.93V30h2v-6.07A8.01 8.01 0 0 0 24 16v-6a2 2 0 0 0-2-2m0 8a6 6 0 0 1-12 0v-6h12Z'/%3E%3C/svg%3E")}.carbon\:plug,.carbon\:query{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:query{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Ccircle cx='11' cy='15.5' r='1.5' fill='currentColor'/%3E%3Cpath fill='currentColor' d='M12 12h-2V8h2a2 2 0 0 0 0-4h-2a2 2 0 0 0-2 2v.5H6V6a4.005 4.005 0 0 1 4-4h2a4 4 0 0 1 0 8Z'/%3E%3Cpath fill='currentColor' d='M22.448 21.034a10.97 10.97 0 0 0-2.527-16.29l-.999 1.73A8.997 8.997 0 1 1 5 14H3a10.992 10.992 0 0 0 18.034 8.448L28.586 30L30 28.586Z'/%3E%3C/svg%3E")}.carbon\:recently-viewed{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M20.59 22L15 16.41V7h2v8.58l5 5.01z'/%3E%3Cpath fill='currentColor' d='M16 2A13.94 13.94 0 0 0 6 6.23V2H4v8h8V8H7.08A12 12 0 1 1 4 16H2A14 14 0 1 0 16 2'/%3E%3C/svg%3E")}.carbon\:recently-viewed,.carbon\:restart{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:restart{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M26 18A10 10 0 1 1 16 8h6.182l-3.584 3.585L20 13l6-6l-6-6l-1.402 1.414L22.185 6H16a12 12 0 1 0 12 12Z'/%3E%3C/svg%3E")}.carbon\:save{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='m27.71 9.29l-5-5A1 1 0 0 0 22 4H6a2 2 0 0 0-2 2v20a2 2 0 0 0 2 2h20a2 2 0 0 0 2-2V10a1 1 0 0 0-.29-.71M12 6h8v4h-8Zm8 20h-8v-8h8Zm2 0v-8a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v8H6V6h4v4a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V6.41l4 4V26Z'/%3E%3C/svg%3E")}.carbon\:save,.carbon\:search{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:search{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='m29 27.586l-7.552-7.552a11.018 11.018 0 1 0-1.414 1.414L27.586 29ZM4 13a9 9 0 1 1 9 9a9.01 9.01 0 0 1-9-9'/%3E%3C/svg%3E")}.carbon\:search-locate{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='m30 28.586l-4.688-4.688a8.028 8.028 0 1 0-1.415 1.414L28.586 30zM19 25a6 6 0 1 1 6-6a6.007 6.007 0 0 1-6 6M2 12h8v2H2zM2 2h16v2H2zm0 5h16v2H2z'/%3E%3C/svg%3E")}.carbon\:search-locate,.carbon\:stop-filled{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:stop-filled{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M16 2a14 14 0 1 0 14 14A14 14 0 0 0 16 2m6 18a2 2 0 0 1-2 2h-8a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2Z'/%3E%3C/svg%3E")}.carbon\:task{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='m14 20.18l-3.59-3.59L9 18l5 5l9-9l-1.41-1.42z'/%3E%3Cpath fill='currentColor' d='M25 5h-3V4a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v1H7a2 2 0 0 0-2 2v21a2 2 0 0 0 2 2h18a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2M12 4h8v4h-8Zm13 24H7V7h3v3h12V7h3Z'/%3E%3C/svg%3E")}.carbon\:task,.carbon\:terminal{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:terminal{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M26 4.01H6a2 2 0 0 0-2 2v20a2 2 0 0 0 2 2h20a2 2 0 0 0 2-2v-20a2 2 0 0 0-2-2m0 2v4H6v-4Zm-20 20v-14h20v14Z'/%3E%3Cpath fill='currentColor' d='m10.76 16.18l2.82 2.83l-2.82 2.83l1.41 1.41l4.24-4.24l-4.24-4.24z'/%3E%3C/svg%3E")}.carbon\:tool-box{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M27 9h-3V6a2 2 0 0 0-2-2H10a2 2 0 0 0-2 2v3H5a3 3 0 0 0-3 3v14a2 2 0 0 0 2 2h24a2 2 0 0 0 2-2V12a3 3 0 0 0-3-3M10 6h12v3H10Zm18 20H4v-9h8v5h8v-5h8Zm-14-9h4v3h-4ZM4 15v-3a1 1 0 0 1 1-1h22a1 1 0 0 1 1 1v3Z'/%3E%3C/svg%3E")}.carbon\:tool-box,.carbon\:touch-1{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:touch-1{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M20 8h-2A5 5 0 0 0 8 8H6a7 7 0 0 1 14 0'/%3E%3Cpath fill='currentColor' d='M25 15a2.94 2.94 0 0 0-1.47.4A3 3 0 0 0 21 14a2.94 2.94 0 0 0-1.47.4A3 3 0 0 0 16 13.18V8a3 3 0 0 0-6 0v11.1l-2.23-1.52A2.93 2.93 0 0 0 6 17a3 3 0 0 0-2.12 5.13l8 7.3A6.16 6.16 0 0 0 16 31h5a7 7 0 0 0 7-7v-6a3 3 0 0 0-3-3m1 9a5 5 0 0 1-5 5h-5a4.17 4.17 0 0 1-2.76-1l-7.95-7.3A1 1 0 0 1 5 20a1 1 0 0 1 1.6-.8l5.4 3.7V8a1 1 0 0 1 2 0v11h2v-3a1 1 0 0 1 2 0v3h2v-2a1 1 0 0 1 2 0v2h2v-1a1 1 0 0 1 2 0Z'/%3E%3C/svg%3E")}.carbon\:trash-can{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M12 12h2v12h-2zm6 0h2v12h-2z'/%3E%3Cpath fill='currentColor' d='M4 6v2h2v20a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8h2V6zm4 22V8h16v20zm4-26h8v2h-8z'/%3E%3C/svg%3E")}.carbon\:trash-can,.carbon\:warning{background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.carbon\:warning{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M16 2a14 14 0 1 0 14 14A14 14 0 0 0 16 2m0 26a12 12 0 1 1 12-12a12 12 0 0 1-12 12'/%3E%3Cpath fill='currentColor' d='M15 8h2v11h-2zm1 14a1.5 1.5 0 1 0 1.5 1.5A1.5 1.5 0 0 0 16 22'/%3E%3C/svg%3E")}[carbon\:chevron-right~="carbon:idea"]{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' display='inline-block' vertical-align='middle' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M13.5 30.815a1 1 0 0 1-.493-.13l-8.5-4.815A1 1 0 0 1 4 25V15a1 1 0 0 1 .507-.87l8.5-4.815a1 1 0 0 1 .986 0l8.5 4.815A1 1 0 0 1 23 15v10a1 1 0 0 1-.507.87l-8.5 4.815a1 1 0 0 1-.493.13M6 24.417l7.5 4.249l7.5-4.249v-8.834l-7.5-4.248L6 15.583Z'/%3E%3Cpath fill='currentColor' d='M28 17h-2V7.583l-7.5-4.248l-8.007 4.535l-.986-1.74l8.5-4.815a1 1 0 0 1 .986 0l8.5 4.815A1 1 0 0 1 28 7Z'/%3E%3C/svg%3E");background-color:currentColor;color:inherit;display:inline-block;height:1.2em;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1.2em}.n-badge{background-color:rgba(var(--nui-c-context),.1);border-radius:.25rem;font-size:.75rem;line-height:1rem;margin-left:.125rem;margin-right:.125rem;padding:.125rem .375rem;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap;--un-text-opacity:1;color:rgba(var(--nui-c-context),var(--un-text-opacity))}.n-button-icon{font-size:1.1em;margin-left:-.2em;margin-right:.2em}.n-icon-button{aspect-ratio:1/1;height:1.6em;justify-content:center;opacity:.5;width:1.6em}.n-icon-button,.n-tip-base{align-items:center;border-radius:.25rem;display:flex}.n-tip-base{background-color:rgba(var(--nui-c-context),.04);gap:.5rem;padding:.4em 1em;--un-text-opacity:1;color:rgba(var(--nui-c-context),var(--un-text-opacity))}.n-button-base{align-items:center;border-color:#9ca3af33;border-radius:.25rem;border-width:1px;display:inline-flex;gap:.25rem;opacity:.8;padding:.25em 1em;touch-action:manipulation;--un-shadow:var(--un-shadow-inset) 0 1px 2px 0 var(--un-shadow-color,rgba(0,0,0,.05));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow);outline:2px solid transparent!important;outline-offset:2px!important}.n-icon{flex:none}.n-border-base{border-color:#9ca3af33}.hover\:n-button-hover:hover{--un-border-opacity:1!important;border-color:rgba(var(--nui-c-context),var(--un-border-opacity))!important;--un-text-opacity:1;color:rgba(var(--nui-c-context),var(--un-text-opacity));opacity:1}.n-bg-active{background-color:#9ca3af0d}.dark .n-bg-base{--un-bg-opacity:1;background-color:rgb(21 21 21/var(--un-bg-opacity))}.n-bg-base{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.dark .n-tip-base{background-color:rgba(var(--nui-c-context),.12)}.hover\:n-bg-active:hover,.n-icon-button:hover{background-color:#9ca3af0d}.n-icon-button:hover{opacity:1}.active\:n-button-active:active{background-color:rgba(var(--nui-c-context),.05);--un-ring-width:3px;--un-ring-offset-shadow:var(--un-ring-inset) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color);--un-ring-shadow:var(--un-ring-inset) 0 0 0 calc(var(--un-ring-width) + var(--un-ring-offset-width)) var(--un-ring-color);box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow);--un-ring-color:rgba(var(--nui-c-context),.1)}.focus-within\:n-focus-base:focus-within{--un-ring-width:2px;--un-ring-offset-shadow:var(--un-ring-inset) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color);--un-ring-shadow:var(--un-ring-inset) 0 0 0 calc(var(--un-ring-width) + var(--un-ring-offset-width)) var(--un-ring-color);box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow);--un-ring-color:rgba(var(--nui-c-context),.5)}.focus-visible\:n-focus-base:focus-visible{--un-ring-width:2px;--un-ring-offset-shadow:var(--un-ring-inset) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color);--un-ring-shadow:var(--un-ring-inset) 0 0 0 calc(var(--un-ring-width) + var(--un-ring-offset-width)) var(--un-ring-color);box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow);--un-ring-color:rgba(var(--nui-c-context),.5)}.n-transition{transition-duration:.15s;transition-duration:.2s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.bottom-full{bottom:100%}.left-0{left:0}.right-0{right:0}.right-2{right:.5rem}.top-0{top:0}.top-1\/2{top:50%}.top-full{top:100%}.z-10{z-index:10}.z-50{z-index:50}.grid{display:grid}[rows~="1"]{grid-template-rows:repeat(1,minmax(0,1fr))}.my-1{margin-bottom:.25rem;margin-top:.25rem}.my-2{margin-bottom:.5rem;margin-top:.5rem}.my-4{margin-bottom:1rem;margin-top:1rem}.-mt-\[6px\]{margin-top:-6px}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.ml-0\.3em{margin-left:.3em}.ml-0\.4em{margin-left:.4em}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.ml-auto{margin-left:auto}.mr-0\.1em{margin-right:.1em}.mr-1{margin-right:.25rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.block{display:block}.hidden{display:none}.h-\[42px\]{height:42px}.h-2,.h2{height:.5rem}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.h1{height:.25rem}.h3{height:.75rem}.max-h-48{max-height:12rem}.max-h-64{max-height:16rem}.max-h-96{max-height:24rem}.max-w-\[150px\]{max-width:150px}.max-w-\[300px\]{max-width:300px}.max-w-\[85\%\]{max-width:85%}.max-w-520px{max-width:520px}.max-w-full{max-width:100%}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.min-h-\[200px\]{min-height:200px}.min-h-\[300px\]{min-height:300px}.min-h-screen{min-height:100vh}.min-w-\[160px\]{min-width:160px}.min-w-0{min-width:0}.w-2{width:.5rem}.w-64{width:16rem}.w-72{width:18rem}.w-full{width:100%}.flex{display:flex}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-shrink-0{flex-shrink:0}[flex-shrink-0~="8,"],[flex-shrink-0~="["],[flex-shrink-0~="},"],[flex-shrink-0~="null,"]{flex-shrink:1}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.table{display:table}.border-collapse{border-collapse:collapse}.-translate-y-1\/2{--un-translate-y:-50%}.-translate-y-1\/2,.rotate-180{transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.rotate-180{--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-rotate:180deg}.transform{transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer,[cursor-pointer=""]{cursor:pointer}.resize-y{resize:vertical}.resize-none{resize:none}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.place-content-center{place-content:center}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.space-y-1>:not([hidden])~:not([hidden]){--un-space-y-reverse:0;margin-bottom:calc(.25rem*var(--un-space-y-reverse));margin-top:calc(.25rem*(1 - var(--un-space-y-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--un-space-y-reverse:0;margin-bottom:calc(.5rem*var(--un-space-y-reverse));margin-top:calc(.5rem*(1 - var(--un-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--un-space-y-reverse:0;margin-bottom:calc(1rem*var(--un-space-y-reverse));margin-top:calc(1rem*(1 - var(--un-space-y-reverse)))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate,[truncate=""]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l-2,[border-l-2=""]{border-left-width:2px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-blue-500{--un-border-opacity:1;border-color:rgb(59 130 246/var(--un-border-opacity))}.border-gray-100{--un-border-opacity:1;border-color:rgb(243 244 246/var(--un-border-opacity))}.border-gray-200{--un-border-opacity:1;border-color:rgb(229 231 235/var(--un-border-opacity))}.border-green-500{--un-border-opacity:1;border-color:rgb(34 197 94/var(--un-border-opacity))}.border-neutral-200{--un-border-opacity:1;border-color:rgb(229 229 229/var(--un-border-opacity))}.border-neutral-200\/50{border-color:#e6e6e680}.border-neutral-300{--un-border-opacity:1;border-color:rgb(212 212 212/var(--un-border-opacity))}.border-purple-200{--un-border-opacity:1;border-color:rgb(233 213 255/var(--un-border-opacity))}.border-purple-500{--un-border-opacity:1;border-color:rgb(168 85 247/var(--un-border-opacity))}.dark .dark\:border-gray-700{--un-border-opacity:1;border-color:rgb(55 65 81/var(--un-border-opacity))}.dark .dark\:border-gray-800{--un-border-opacity:1;border-color:rgb(31 41 55/var(--un-border-opacity))}.dark .dark\:border-neutral-600{--un-border-opacity:1;border-color:rgb(82 82 82/var(--un-border-opacity))}.dark .dark\:border-neutral-700{--un-border-opacity:1;border-color:rgb(64 64 64/var(--un-border-opacity))}.dark .dark\:border-neutral-700\/50{border-color:#40404080}.dark .dark\:border-neutral-800{--un-border-opacity:1;border-color:rgb(38 38 38/var(--un-border-opacity))}.dark .dark\:border-purple-800{--un-border-opacity:1;border-color:rgb(107 33 168/var(--un-border-opacity))}.focus-within\:border-context:focus-within{--un-border-opacity:1;border-color:rgba(var(--nui-c-context),var(--un-border-opacity))}.focus\:border-transparent:focus{border-color:transparent}.border-l-blue-500{--un-border-opacity:1;--un-border-left-opacity:var(--un-border-opacity);border-left-color:rgb(59 130 246/var(--un-border-left-opacity))}.rounded,[rounded=""]{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.bg-blue-500\/10{background-color:#3b82f61a}.bg-blue-500\/20{background-color:#3b82f633}.bg-gray-500\/20{background-color:#6b728033}.bg-green-500\/10{background-color:#22c55e1a}.bg-green-500\/20{background-color:#22c55e33}.bg-neutral-100{--un-bg-opacity:1;background-color:rgb(245 245 245/var(--un-bg-opacity))}.bg-neutral-200{--un-bg-opacity:1;background-color:rgb(229 229 229/var(--un-bg-opacity))}.bg-orange-500{--un-bg-opacity:1;background-color:rgb(249 115 22/var(--un-bg-opacity))}.bg-orange-500\/10{background-color:#f973161a}.bg-orange-500\/20{background-color:#f9731633}.bg-purple-500\/10{background-color:#a855f71a}.bg-purple-500\/20{background-color:#a855f733}.bg-purple-500\/5{background-color:#a855f70d}.bg-red-500{--un-bg-opacity:1;background-color:rgb(239 68 68/var(--un-bg-opacity))}.bg-red-500\/5{background-color:#ef44440d}.bg-teal-500\/10{background-color:#14b8a61a}.bg-transparent{background-color:transparent}.bg-white{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.bg-yellow-500\/20{background-color:#eab30833}.dark .dark\:bg-\[\#020420\]{--un-bg-opacity:1;background-color:rgb(2 4 32/var(--un-bg-opacity))}.dark .dark\:bg-neutral-700{--un-bg-opacity:1;background-color:rgb(64 64 64/var(--un-bg-opacity))}.dark .dark\:bg-neutral-800{--un-bg-opacity:1;background-color:rgb(38 38 38/var(--un-bg-opacity))}[bg-blue-500=""]{--un-bg-opacity:1;background-color:rgb(59 130 246/var(--un-bg-opacity))}.dark .dark\:hover\:bg-gray-800:hover{--un-bg-opacity:1;background-color:rgb(31 41 55/var(--un-bg-opacity))}.dark .dark\:hover\:bg-neutral-700:hover{--un-bg-opacity:1;background-color:rgb(64 64 64/var(--un-bg-opacity))}.dark .dark\:hover\:bg-neutral-800:hover{--un-bg-opacity:1;background-color:rgb(38 38 38/var(--un-bg-opacity))}.dark .dark\:hover\:bg-red-900\/20:hover{background-color:#7f1d1d33}.dark [dark\:hover\:bg-red-900=""]:hover{--un-bg-opacity:1;background-color:rgb(127 29 29/var(--un-bg-opacity))}.hover\:bg-gray-100:hover{--un-bg-opacity:1;background-color:rgb(243 244 246/var(--un-bg-opacity))}.hover\:bg-gray-50:hover{--un-bg-opacity:1;background-color:rgb(249 250 251/var(--un-bg-opacity))}.hover\:bg-neutral-100:hover{--un-bg-opacity:1;background-color:rgb(245 245 245/var(--un-bg-opacity))}.hover\:bg-neutral-200:hover{--un-bg-opacity:1;background-color:rgb(229 229 229/var(--un-bg-opacity))}.hover\:bg-purple-500\/10:hover{background-color:#a855f71a}.hover\:bg-red-100:hover,[hover\:bg-red-100=""]:hover{--un-bg-opacity:1;background-color:rgb(254 226 226/var(--un-bg-opacity))}.p-0{padding:0}.p-1,[p-1=""]{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.px,.px-4,[px=""]{padding-left:1rem;padding-right:1rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-4{padding-bottom:1rem;padding-top:1rem}.pb-2{padding-bottom:.5rem}.pl-1{padding-left:.25rem}.pl-4{padding-left:1rem}.pl-6{padding-left:1.5rem}.pr-2{padding-right:.5rem}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-\[80px\]{font-size:80px}.text-1\.1em{font-size:1.1em}.text-2xl,[text-2xl=""]{font-size:1.5rem;line-height:2rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs,[text-xs=""]{font-size:.75rem;line-height:1rem}.dark .dark\:text-blue-400,.dark [dark\:text-blue-400=""],.text-blue{--un-text-opacity:1;color:rgb(96 165 250/var(--un-text-opacity))}.dark .dark\:text-gray-400{--un-text-opacity:1;color:rgb(156 163 175/var(--un-text-opacity))}.dark .dark\:text-green-100{--un-text-opacity:1;color:rgb(220 252 231/var(--un-text-opacity))}.dark .dark\:text-green-400,.text-green{--un-text-opacity:1;color:rgb(74 222 128/var(--un-text-opacity))}.dark .dark\:text-orange-400,.text-orange{--un-text-opacity:1;color:rgb(251 146 60/var(--un-text-opacity))}.dark .dark\:text-purple-200{--un-text-opacity:1;color:rgb(233 213 255/var(--un-text-opacity))}.dark .dark\:text-purple-300{--un-text-opacity:1;color:rgb(216 180 254/var(--un-text-opacity))}.dark .dark\:text-purple-400,.text-purple{--un-text-opacity:1;color:rgb(192 132 252/var(--un-text-opacity))}.dark .dark\:text-teal-400{--un-text-opacity:1;color:rgb(45 212 191/var(--un-text-opacity))}.dark .dark\:text-white,.text-white{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}.dark .dark\:text-yellow-200{--un-text-opacity:1;color:rgb(254 240 138/var(--un-text-opacity))}.text-\[\#020420\]{--un-text-opacity:1;color:rgb(2 4 32/var(--un-text-opacity))}.text-\[\#64748B\]{--un-text-opacity:1;color:rgb(100 116 139/var(--un-text-opacity))}.text-blue-500,[text-blue-500=""]{--un-text-opacity:1;color:rgb(59 130 246/var(--un-text-opacity))}.text-blue-500\/70{color:#3b82f6b3}.text-blue-600,[text-blue-600=""]{--un-text-opacity:1;color:rgb(37 99 235/var(--un-text-opacity))}.text-gray-600{--un-text-opacity:1;color:rgb(75 85 99/var(--un-text-opacity))}.text-green-500{--un-text-opacity:1;color:rgb(34 197 94/var(--un-text-opacity))}.text-green-500\/70{color:#22c55eb3}.text-green-600{--un-text-opacity:1;color:rgb(22 163 74/var(--un-text-opacity))}.text-green-800{--un-text-opacity:1;color:rgb(22 101 52/var(--un-text-opacity))}.text-neutral-500{--un-text-opacity:1;color:rgb(115 115 115/var(--un-text-opacity))}.text-orange-500{--un-text-opacity:1;color:rgb(249 115 22/var(--un-text-opacity))}.text-orange-600{--un-text-opacity:1;color:rgb(234 88 12/var(--un-text-opacity))}.text-purple-500{--un-text-opacity:1;color:rgb(168 85 247/var(--un-text-opacity))}.text-purple-600{--un-text-opacity:1;color:rgb(147 51 234/var(--un-text-opacity))}.text-purple-700{--un-text-opacity:1;color:rgb(126 34 206/var(--un-text-opacity))}.text-purple-800{--un-text-opacity:1;color:rgb(107 33 168/var(--un-text-opacity))}.text-red-500,[text-red-500=""]{--un-text-opacity:1;color:rgb(239 68 68/var(--un-text-opacity))}.text-teal-500{--un-text-opacity:1;color:rgb(20 184 166/var(--un-text-opacity))}.text-teal-600{--un-text-opacity:1;color:rgb(13 148 136/var(--un-text-opacity))}.text-yellow-800{--un-text-opacity:1;color:rgb(133 77 14/var(--un-text-opacity))}.hover\:text-\[\#00DC82\]:hover{--un-text-opacity:1;color:rgb(0 220 130/var(--un-text-opacity))}.hover\:text-red-500:hover{--un-text-opacity:1;color:rgb(239 68 68/var(--un-text-opacity))}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.tracking-wide{letter-spacing:.025em}.font-mono,[font-mono=""]{font-family:DM Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:DM Sans,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.lowercase{text-transform:lowercase}.italic{font-style:italic}.tabular-nums{--un-numeric-spacing:tabular-nums;font-variant-numeric:var(--un-ordinal) var(--un-slashed-zero) var(--un-numeric-figure) var(--un-numeric-spacing) var(--un-numeric-fraction)}.hover\:underline:hover,.underline,[hover\:underline=""]:hover{text-decoration-line:underline}.underline-offset-3{text-underline-offset:3px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tab{-moz-tab-size:4;-o-tab-size:4;tab-size:4}.op50,.opacity-50{opacity:.5}.opacity-0,[opacity-0=""]{opacity:0}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.group:hover .group-hover\:opacity-100,.group:hover [group-hover\:opacity-100=""],.hover\:opacity-100:hover{opacity:1}.shadow-lg{--un-shadow:var(--un-shadow-inset) 0 10px 15px -3px var(--un-shadow-color,rgba(0,0,0,.1)),var(--un-shadow-inset) 0 4px 6px -4px var(--un-shadow-color,rgba(0,0,0,.1));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.\!outline-none{outline:2px solid transparent!important;outline-offset:2px!important}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.ring-1{--un-ring-width:1px;--un-ring-offset-shadow:var(--un-ring-inset) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color);--un-ring-shadow:var(--un-ring-inset) 0 0 0 calc(var(--un-ring-width) + var(--un-ring-offset-width)) var(--un-ring-color)}.focus\:ring-2:focus,.ring-1{box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.focus\:ring-2:focus{--un-ring-width:2px;--un-ring-offset-shadow:var(--un-ring-inset) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color);--un-ring-shadow:var(--un-ring-inset) 0 0 0 calc(var(--un-ring-width) + var(--un-ring-offset-width)) var(--un-ring-color)}.ring-blue-500\/30{--un-ring-color:rgba(59,130,246,.3)}.ring-gray-500\/30{--un-ring-color:hsla(220,9%,46%,.3)}.ring-green-500{--un-ring-opacity:1;--un-ring-color:rgb(34 197 94/var(--un-ring-opacity))}.ring-green-500\/30{--un-ring-color:rgba(34,197,94,.3)}.ring-orange-500{--un-ring-opacity:1;--un-ring-color:rgb(249 115 22/var(--un-ring-opacity))}.ring-orange-500\/30{--un-ring-color:rgba(249,115,22,.3)}.ring-purple-500{--un-ring-opacity:1;--un-ring-color:rgb(168 85 247/var(--un-ring-opacity))}.focus\:ring-blue-500:focus{--un-ring-opacity:1;--un-ring-color:rgb(59 130 246/var(--un-ring-opacity))}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease{transition-timing-function:cubic-bezier(.4,0,.2,1)}[n~=blue]{--nui-c-context:96,165,250}[n~=gray]{--nui-c-context:156,163,175}[n~=green]{--nui-c-context:74,222,128}[n~=orange]{--nui-c-context:251,146,60}[n~=purple]{--nui-c-context:192,132,252}[n~=red]{--nui-c-context:248,113,113}[n~=yellow]{--nui-c-context:250,204,21}[n~=xs]{font-size:.75rem}.n-disabled\:n-disabled[disabled],[disabled] .n-disabled\:n-disabled{filter:saturate(0);opacity:.6;pointer-events:none}@media(min-width:640px){.sm\:inline{display:inline}.sm\:text-\[110px\]{font-size:110px}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}}.page-enter-active,.page-leave-active{transition:opacity .15s ease}.page-enter-from,.page-leave-to{opacity:0}