@ai-accounts/vue-styled 0.3.6 → 0.3.7

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.
@@ -1,4 +1,4 @@
1
- "use strict";var Xc=Object.defineProperty;var Zc=(n,e,a)=>e in n?Xc(n,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):n[e]=a;var ne=(n,e,a)=>Zc(n,typeof e!="symbol"?e+"":e,a);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("vue"),Ie=require("@ai-accounts/vue-headless");function cc(n,e,a){if(!n)return n;let r;try{r=new URL(n)}catch{return n}if(a==="google")r.searchParams.set("prompt","select_account consent");else if(a==="claude")r.searchParams.set("prompt","login");else return n;return e&&r.searchParams.set("login_hint",e),r.toString()}const Jc={class:"aia-login-stream"},jc={key:0,class:"aia-url-section"},e_=["href"],t_={class:"aia-url-actions"},n_=["aria-pressed"],a_={key:0,class:"aia-incognito-hint"},r_={key:1,class:"aia-device-code"},i_={class:"aia-device-code__value"},o_={class:"aia-text-section__label"},s_={key:0,class:"aia-text-section__queued"},l_={class:"aia-text-section__row"},c_=["disabled"],__=["disabled"],d_={key:1,class:"aia-menu-section"},u_={class:"aia-menu-section__title"},p_={class:"aia-menu-options"},m_=["onClick"],E_={class:"aia-menu-option__num"},g_={class:"aia-menu-option__body"},S_={class:"aia-menu-option__label"},T_={key:0,class:"aia-menu-option__desc"},b_={class:"aia-text-section__label"},f_={class:"aia-text-section__row"},R_=["type","placeholder"],C_=["disabled"],N_={key:3,class:"aia-terminal"},O_={class:"aia-terminal__output"},v_={key:4,class:"aia-error-card"},h_=t.defineComponent({__name:"LoginStream",props:{session:{},showStdout:{type:Boolean,default:!0},backendKind:{default:""},email:{default:""}},setup(n){const e=n,a=t.ref(""),r=t.ref(""),i=t.ref("idle");let s=null;async function l(){const g=a.value;a.value="",await e.session.respond(g)}async function o(){const g=r.value.trim();if(g){if(s=g,r.value="",e.session.textPrompt.value){s=null,i.value="sent",await e.session.respond(g);return}i.value="queued"}}t.watch(()=>e.session.textPrompt.value,async g=>{if(g&&s){const b=s;s=null,i.value="sent",await e.session.respond(b)}});async function d(g){await e.session.respond(String(g))}const c=t.computed(()=>{var f;const g=(f=e.session.urlPrompt.value)==null?void 0:f.url;if(!g)return"";const b=e.backendKind==="gemini"||e.backendKind==="codex"?"google":e.backendKind==="claude"?"claude":"none";return b==="none"?g:cc(g,e.email??"",b)});let _="";t.watch(()=>c.value,g=>{g&&g!==_&&(_=g,window.open(g,"_blank","noopener"))},{immediate:!0});const u=t.ref(!1),m=t.ref(!1);let p=null;async function E(){var b;const g=c.value;if(g)try{(b=navigator==null?void 0:navigator.clipboard)!=null&&b.writeText&&await navigator.clipboard.writeText(g),u.value=!0,m.value=!0,p&&clearTimeout(p),p=setTimeout(()=>{u.value=!1},2500)}catch{m.value=!0}}function T(){m.value=!1}return(g,b)=>(t.openBlock(),t.createElementBlock("div",Jc,[n.session.urlPrompt.value?(t.openBlock(),t.createElementBlock("div",jc,[b[9]||(b[9]=t.createStaticVNode('<div class="aia-url-badge" data-v-b48a7361><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="16" height="16" data-v-b48a7361><path d="M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6" data-v-b48a7361></path><polyline points="15 3 21 3 21 9" data-v-b48a7361></polyline><line x1="10" y1="14" x2="21" y2="3" data-v-b48a7361></line></svg><span data-v-b48a7361>A browser window should have opened. If not, click the link below:</span></div>',1)),t.createElementVNode("a",{href:c.value,target:"_blank",rel:"noopener",class:"aia-url-link"},t.toDisplayString(c.value),9,e_),t.createElementVNode("div",t_,[t.createElementVNode("button",{type:"button",class:t.normalizeClass(["aia-copy-incognito-btn",{"aia-copy-incognito-btn--copied":u.value}]),"aria-pressed":m.value,onClick:E},[b[3]||(b[3]=t.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[t.createElementVNode("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),t.createElementVNode("path",{d:"M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1"})],-1)),t.createElementVNode("span",null,t.toDisplayString(u.value?"Copied!":"Copy for Incognito"),1)],10,n_)]),m.value?(t.openBlock(),t.createElementBlock("div",a_,[t.createElementVNode("button",{type:"button",class:"aia-incognito-hint__close","aria-label":"Dismiss",onClick:T},"×"),b[4]||(b[4]=t.createElementVNode("strong",{class:"aia-incognito-hint__title"},"Open in an incognito window",-1)),b[5]||(b[5]=t.createElementVNode("p",{class:"aia-incognito-hint__body"},[t.createTextVNode(" Press "),t.createElementVNode("kbd",null,"⌘"),t.createElementVNode("kbd",null,"⇧"),t.createElementVNode("kbd",null,"N"),t.createTextVNode(" (Mac) or "),t.createElementVNode("kbd",null,"Ctrl"),t.createElementVNode("kbd",null,"Shift"),t.createElementVNode("kbd",null,"N"),t.createTextVNode(" (Windows / Linux) to open an incognito window, then paste the URL. ")],-1))])):t.createCommentVNode("",!0),n.session.urlPrompt.value.user_code?(t.openBlock(),t.createElementBlock("div",r_,[b[6]||(b[6]=t.createElementVNode("span",{class:"aia-device-code__label"},"Your device code:",-1)),t.createElementVNode("code",i_,t.toDisplayString(n.session.urlPrompt.value.user_code),1)])):t.createCommentVNode("",!0),!n.session.textPrompt.value&&i.value!=="sent"?(t.openBlock(),t.createElementBlock("form",{key:2,class:"aia-text-section aia-text-section--eager",onSubmit:t.withModifiers(o,["prevent"])},[t.createElementVNode("label",o_,[b[7]||(b[7]=t.createTextVNode(" After signing in, paste the authorization code here: ",-1)),i.value==="queued"?(t.openBlock(),t.createElementBlock("span",s_,"(queued — waiting for CLI prompt)")):t.createCommentVNode("",!0)]),t.createElementVNode("div",l_,[b[8]||(b[8]=t.createElementVNode("span",{class:"aia-text-section__prompt"},">",-1)),t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":b[0]||(b[0]=f=>r.value=f),class:"aia-text-section__input",type:"text",placeholder:"Paste code from browser…",autocomplete:"off",autofocus:"",disabled:i.value==="queued"},null,8,c_),[[t.vModelText,r.value]]),t.createElementVNode("button",{type:"submit",class:"aia-text-section__btn",disabled:!r.value.trim()||i.value==="queued"},t.toDisplayString(i.value==="queued"?"Waiting…":"Send"),9,__)])],32)):t.createCommentVNode("",!0)])):t.createCommentVNode("",!0),n.session.menuPrompt.value?(t.openBlock(),t.createElementBlock("div",d_,[t.createElementVNode("p",u_,t.toDisplayString(n.session.menuPrompt.value.prompt),1),t.createElementVNode("div",p_,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(n.session.menuPrompt.value.options,f=>(t.openBlock(),t.createElementBlock("button",{key:f.number,type:"button",class:"aia-menu-option",onClick:C=>d(f.number)},[t.createElementVNode("span",E_,t.toDisplayString(f.number),1),t.createElementVNode("div",g_,[t.createElementVNode("span",S_,t.toDisplayString(f.label),1),f.description?(t.openBlock(),t.createElementBlock("span",T_,t.toDisplayString(f.description),1)):t.createCommentVNode("",!0)]),b[10]||(b[10]=t.createElementVNode("svg",{class:"aia-menu-option__arrow",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[t.createElementVNode("polyline",{points:"9 18 15 12 9 6"})],-1))],8,m_))),128))])])):t.createCommentVNode("",!0),n.session.textPrompt.value?(t.openBlock(),t.createElementBlock("form",{key:2,class:"aia-text-section",onSubmit:t.withModifiers(l,["prevent"])},[t.createElementVNode("label",b_,t.toDisplayString(n.session.textPrompt.value.prompt),1),t.createElementVNode("div",f_,[b[11]||(b[11]=t.createElementVNode("span",{class:"aia-text-section__prompt"},">",-1)),t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":b[1]||(b[1]=f=>a.value=f),class:"aia-text-section__input",type:n.session.textPrompt.value.hidden?"password":"text",placeholder:n.session.textPrompt.value.hidden?"••••••••":"Type here…",autocomplete:"off",autofocus:""},null,8,R_),[[t.vModelDynamic,a.value]]),t.createElementVNode("button",{type:"submit",class:"aia-text-section__btn",disabled:!a.value.trim()},"Send",8,C_)])],32)):t.createCommentVNode("",!0),n.showStdout&&n.session.stdoutLines.value.length>0?(t.openBlock(),t.createElementBlock("div",N_,[t.createElementVNode("div",O_,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(n.session.stdoutLines.value,(f,C)=>(t.openBlock(),t.createElementBlock("div",{key:C,class:"aia-terminal__line"},t.toDisplayString(f),1))),128))])])):t.createCommentVNode("",!0),n.session.status.value==="failed"?(t.openBlock(),t.createElementBlock("div",v_,[b[12]||(b[12]=t.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"16",height:"16"},[t.createElementVNode("circle",{cx:"12",cy:"12",r:"10"}),t.createElementVNode("line",{x1:"15",y1:"9",x2:"9",y2:"15"}),t.createElementVNode("line",{x1:"9",y1:"9",x2:"15",y2:"15"})],-1)),t.createElementVNode("div",null,[t.createElementVNode("strong",null,t.toDisplayString(n.session.errorCode.value),1),t.createElementVNode("p",null,t.toDisplayString(n.session.errorMessage.value),1)])])):t.createCommentVNode("",!0),n.session.status.value==="running"?(t.openBlock(),t.createElementBlock("button",{key:5,type:"button",class:"aia-cancel-btn",onClick:b[2]||(b[2]=f=>n.session.cancel())}," Cancel ")):t.createCommentVNode("",!0)]))}}),Se=(n,e)=>{const a=n.__vccOpts||n;for(const[r,i]of e)a[r]=i;return a},_c=Se(h_,[["__scopeId","data-v-b48a7361"]]),I_={class:"aia-backend-picker"},A_=["onClick"],y_=["src","alt"],D_={class:"aia-backend-info"},M_={key:0,class:"aia-installed"},L_={key:1,class:"aia-not-installed"},x_=t.defineComponent({__name:"BackendPicker",props:{installStatus:{}},emits:["pick"],setup(n,{emit:e}){const a=n,r=e,i=Ie.useBackendRegistry();function s(l){return a.installStatus?a.installStatus[l]:void 0}return t.onMounted(async()=>{i.loaded.value||await i.load()}),(l,o)=>(t.openBlock(),t.createElementBlock("ul",I_,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(i).backends.value,d=>(t.openBlock(),t.createElementBlock("li",{key:d.kind},[t.createElementVNode("button",{type:"button",onClick:c=>r("pick",d.kind)},[d.icon_url?(t.openBlock(),t.createElementBlock("img",{key:0,src:d.icon_url,alt:d.display_name},null,8,y_)):t.createCommentVNode("",!0),t.createElementVNode("div",D_,[t.createElementVNode("strong",null,t.toDisplayString(d.display_name),1),s(d.kind)?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[s(d.kind).installed?(t.openBlock(),t.createElementBlock("span",M_," installed"+t.toDisplayString(s(d.kind).version?" v"+s(d.kind).version:""),1)):(t.openBlock(),t.createElementBlock("span",L_,"not detected"))],64)):t.createCommentVNode("",!0)])],8,A_)]))),128))]))}}),dc=Se(x_,[["__scopeId","data-v-2500895f"]]),w_={class:"wizard-container","data-tour":"account-wizard"},k_={class:"wizard-header"},P_={key:0,class:"wizard-step"},U_={class:"step-body"},B_={class:"step-actions"},F_={key:1,class:"wizard-steps"},G_=["onClick"],Y_={class:"step-number"},V_={key:0,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"3",width:"12",height:"12"},q_={class:"step-label"},H_={key:2,class:"wizard-step"},z_={class:"step-body"},$_={class:"step-question"},W_={class:"radio-group"},K_={class:"radio-card-content"},Q_={class:"radio-card-title"},X_={class:"radio-card-desc"},Z_={class:"radio-card-content"},J_={class:"radio-card-title"},j_={class:"radio-card-desc"},ed={key:0,class:"account-fields"},td={class:"form-group"},nd={for:"wiz-name"},ad=["placeholder"],rd={class:"account-name-hint"},id={class:"form-group"},od={for:"wiz-email"},sd=["placeholder"],ld={class:"step-actions"},cd=["disabled"],_d={key:3,class:"wizard-step"},dd={class:"step-body"},ud={class:"status-icon"},pd={key:0,class:"spinner-sm"},md={key:1,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},Ed={key:2,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},gd={class:"status-info"},Sd={class:"status-title"},Td={key:0,class:"status-detail"},bd={key:1,class:"status-detail"},fd={key:1,class:"spinner-sm"},Rd={key:0,class:"error-text"},Cd={key:1,class:"install-success-text"},Nd={key:2,class:"install-stderr"},Od={key:3,class:"config-dir-section"},vd={class:"config-dir-label"},hd={class:"config-dir-path"},Id=["disabled"],Ad={key:1,class:"dir-created-badge"},yd={key:0,class:"error-text"},Dd={class:"config-path-edit"},Md={key:1,class:"form-group compact"},Ld=["placeholder"],xd={key:4,class:"api-key-info"},wd={class:"api-key-label"},kd={class:"step-actions"},Pd={key:4,class:"wizard-step"},Ud={class:"step-body"},Bd={key:0,class:"login-status login-connecting"},Fd={key:2,class:"login-status login-completed"},Gd={class:"login-status login-error"},Yd={class:"step-actions"},Vd={key:5,class:"wizard-step"},qd={class:"step-body"},Hd={key:0,class:"cliproxy-install-block"},zd=["disabled"],$d={key:0,class:"spinner-sm"},Wd={key:0},Kd={key:0,class:"install-success-text"},Qd={key:1},Xd={key:0,class:"install-stderr"},Zd={key:1,class:"proxy-step-body"},Jd={key:1,class:"login-status login-started"},jd={key:2,class:"proxy-device-auth"},eu=["href"],tu={key:1,class:"proxy-device-code-card"},nu={class:"proxy-device-code-value"},au={class:"proxy-callback-section"},ru={class:"proxy-callback-row"},iu=["disabled"],ou={key:0,class:"error-text"},su={key:3,class:"login-status login-completed"},lu={key:4,class:"proxy-skipped"},cu={key:5,class:"proxy-error"},_u={class:"error-text"},du={key:2,class:"proxy-loading"},uu={class:"step-actions"},pu={key:6,class:"wizard-step"},mu={class:"step-body"},Eu={class:"review-card"},gu={class:"review-row"},Su={class:"review-label"},Tu={class:"review-value"},bu={key:0,class:"review-row"},fu={class:"review-label"},Ru={class:"review-value"},Cu={key:1,class:"review-row"},Nu={class:"review-label"},Ou={class:"review-value"},vu={key:2,class:"review-row"},hu={class:"review-label"},Iu={class:"review-value"},Au={key:0,class:"form-group"},yu={for:"wiz-plan"},Du={value:""},Mu=["value"],Lu={class:"form-group checkbox"},xu={key:1,class:"error-text"},wu={class:"step-actions"},ku=["disabled"],Pu={key:0,class:"spinner-sm"},Uu={key:7,class:"wizard-step"},Bu={class:"step-body done-body"},Fu={class:"done-actions"},Gu=t.defineComponent({__name:"AccountWizard",props:{initialBackendKind:{},backendName:{},allowSkip:{type:Boolean},translate:{type:Function}},emits:["close","saved","skip","addAnother","done"],setup(n,{emit:e}){const a=(h,R)=>({"accountWizard.addAccount":"Add Account","accountWizard.stepSubscription":"Subscription","accountWizard.stepCliSetup":"CLI Setup","accountWizard.stepLogin":"Login","accountWizard.stepPlanSave":"Plan & Save","accountWizard.stepDone":"Done","accountWizard.yesHaveAccount":"Yes, I have an account","accountWizard.yesHaveAccountDesc":"I already have a subscription for this backend","accountWizard.noSkip":"Skip for now","accountWizard.noSkipDesc":"I will set this up later","accountWizard.accountName":"Account name","accountWizard.accountNamePlaceholder":"e.g., Personal, Work","accountWizard.accountNameHint":"(optional — leave blank to use the default config directory)","accountWizard.copyForIncognito":"Copy for Incognito","accountWizard.copiedLabel":"Copied!","accountWizard.incognitoHint":"Press ⌘⇧N (Mac) or Ctrl+Shift+N (Windows/Linux) to open an incognito window, then paste the URL.","accountWizard.email":"Email","accountWizard.emailPlaceholder":"name@example.com","accountWizard.emailHelp":"Optional — used to tag the account","accountWizard.cliInstalled":"CLI detected","accountWizard.cliNotInstalled":"CLI not detected","accountWizard.installCli":"Install CLI","accountWizard.configPath":"Config path","accountWizard.createDir":"Create","accountWizard.creating":"Creating...","accountWizard.configCreated":"Created","accountWizard.customizePath":"Customize path","accountWizard.apiKeyEnv":"API key env var","accountWizard.startingLogin":"Starting login session...","accountWizard.loginCompleted":"Login completed","accountWizard.tryAgain":"Try again","accountWizard.connectionLost":"Connection lost","accountWizard.send":"Send","accountWizard.waitingForResponse":"Waiting for response...","accountWizard.plan":"Plan","accountWizard.selectPlan":"Select a plan","accountWizard.setDefault":"Set as default account","accountWizard.saving":"Saving...","accountWizard.saveAccount":"Save account","accountWizard.accountCreated":"Account created!","accountWizard.addAnother":"Add another","accountWizard.doneNextBackend":"Done","accountWizard.continueBtn":"Continue","common.cancel":"Cancel","common.back":"Back","common.skip":"Skip"})[h]??h,r=n,i=(h,R)=>r.translate?r.translate(h,R):a(h),s=e,{client:l,emit:o}=Ie.useAiAccounts(),d=Ie.useBackendRegistry(),c=Ie.useLoginSession(),_=t.ref(r.initialBackendKind??""),u=t.computed(()=>_.value?d.get(_.value):void 0),m=t.computed(()=>{var h;return r.backendName||((h=u.value)==null?void 0:h.display_name)||_.value||"Backend"}),p=t.ref("subscription"),E=["claude","codex","gemini"],T=t.computed(()=>E.includes(_.value??"")),g=t.computed(()=>{const h=["subscription","cli","login"];return T.value&&h.push("proxy"),h.push("plan"),h}),b=t.computed(()=>g.value.indexOf(p.value)),f=t.computed(()=>({subscription:i("accountWizard.stepSubscription"),cli:i("accountWizard.stepCliSetup"),login:i("accountWizard.stepLogin"),proxy:"API Proxy",plan:i("accountWizard.stepPlanSave"),done:i("accountWizard.stepDone")}));function C(){const h=g.value,R=h.indexOf(p.value);R>=0&&R<h.length-1?p.value=h[R+1]:p.value===h[h.length-1]&&(p.value="done")}function O(){const h=g.value,R=h.indexOf(p.value);R>0&&(p.value=h[R-1])}const I=t.ref(""),v=t.ref(""),M=t.ref(""),A=t.computed(()=>I.value!=="");function k(){if(I.value==="no"){De();return}C()}const P=t.ref(""),x=t.ref(!1);function q(h){return h.toLowerCase().replace(/\s+/g,"").replace(/[^a-z0-9]/g,"")}const te={claude:".claude",codex:".codex",gemini:".gemini",opencode:".opencode"};function oe(h){const R=h||"";return`~/${te[R]||(R?`.${R}`:".backend")}`}function $(){if(x.value)return;const h=v.value.trim();if(!h){P.value=oe(_.value);return}const R=q(h),G=te[_.value||""]||(_.value?`.${_.value}`:".backend");P.value=`~/${G}-${R}`}function N(h){const R=v.value.trim();return R||h&&h.trim()||"default"}const D=t.computed(()=>{const h=v.value.trim();if(!h)return"";const R={claude:"ANTHROPIC",codex:"OPENAI",gemini:"GOOGLE",opencode:"OPENCODE"},G=_.value||"",Me=R[G]||(G?G.toUpperCase():"BACKEND"),ut=q(h).replace(/-/g,"_").toUpperCase();return`${Me}_API_KEY_${ut}`}),w=t.ref(!1),F=t.ref(""),W=t.ref(!1),ee=t.ref(!1),_e=t.ref(!1),de=t.ref(!1),X=t.ref(""),z=t.ref("");async function le(){if(_.value){W.value=!0;try{const h=d.get(_.value);w.value=!!h,F.value=""}catch(h){console.warn("[AccountWizard] CLI check failed:",h)}finally{W.value=!1}}}const Y=t.ref(null);async function Q(){if(_.value){ee.value=!0,z.value="",Y.value=null;try{const h=await l.installBackendCli(_.value);Y.value=h,h.success?(w.value=!0,F.value=""):z.value=h.stderr||h.stdout||"Installation failed"}catch(h){z.value=h instanceof Error?h.message:String(h),Y.value={kind:_.value,success:!1,display:"install failed",stdout:"",stderr:z.value,exit_code:-1,binary_path:null}}finally{ee.value=!1}}}async function ae(){P.value&&(de.value=!0)}t.onMounted(async()=>{d.loaded.value||await d.load(),le(),$(),o({type:"wizard.opened",backendKind:_.value}),Ge()}),t.watch(_,()=>{x.value||$()}),t.watch(P,()=>{de.value=!1,X.value=""});const j=t.ref("");t.watch(p,async h=>{h==="login"&&c.status.value==="idle"&&await ce()},{immediate:!0});async function ce(){const h=u.value;if(h)try{if(!j.value){const G=await l.createBackend({kind:h.kind,display_name:N(h.display_name),config:ve()});j.value=G.id}const R=me(h);o({type:"wizard.step",backendKind:h.kind,step:"login.start"}),await c.start(j.value,R,ge(h))}catch(R){console.warn("[AccountWizard] login failed:",R)}}function me(h){const R=h.login_flows.map(G=>G.kind);return R.includes("cli_browser")?"cli_browser":R.includes("oauth_device")?"oauth_device":"api_key"}function ge(h){return{}}function ve(){return{email:M.value.trim()||void 0,config_path:P.value.trim()||void 0,api_key_env:D.value||void 0}}t.watch(()=>c.status.value,h=>{h==="complete"&&p.value==="login"&&C()}),t.onUnmounted(()=>{c.status.value==="running"&&c.cancel().catch(()=>{})});const pe=t.computed(()=>{switch(c.status.value){case"running":return c.urlPrompt.value||c.textPrompt.value||c.menuPrompt.value||c.stdoutLines.value.length>0?"streaming":"connecting";case"complete":return"completed";case"failed":case"cancelled":return"error";default:return"idle"}}),Ae=t.computed(()=>c.errorMessage.value||"");function he(){c.status.value==="running"&&c.cancel().catch(()=>{})}const U=t.computed(()=>{var h;return((h=u.value)==null?void 0:h.plan_options)??[]}),Ne=t.ref(""),se=t.ref(!1),H=t.ref(!1),fe=t.ref(""),ie=t.ref("idle"),Ee=t.ref(""),Te=t.ref(""),y=t.ref(""),L=t.ref(""),B=t.ref(""),V=t.ref(!1),re=t.ref(!1),ue=t.ref(null),ye=t.ref(!1);async function Ge(){try{const h=await l.cliproxyStatus();V.value=h.installed}catch(h){console.warn("[AccountWizard] cliproxy status check failed:",h),V.value=!1}finally{ye.value=!0}}async function Xe(){re.value=!0,ue.value=null;try{const h=await l.cliproxyInstall();ue.value=h,h.success&&(V.value=!0)}catch(h){ue.value={success:!1,display:"install failed",stdout:"",stderr:h instanceof Error?h.message:String(h),binary_path:null}}finally{re.value=!1}}function He(){ie.value="idle",Ee.value="",Te.value="",y.value="",L.value="",B.value=""}async function Ze(){var h;if(_.value){ie.value="running",Ee.value=`Registering ${m.value} account with API proxy…`,B.value="";try{const R=await l.cliproxyLoginBegin(_.value,((h=P.value)==null?void 0:h.trim())||void 0);Ee.value=R.message,R.status==="imported"?ie.value="success":R.status==="started"&&R.oauth_url?(ie.value="device_auth",Te.value=R.oauth_url,y.value=R.device_code??"",window.open(R.oauth_url,"_blank","noopener"),R.device_code?Ee.value=`Open the URL and enter code ${R.device_code}`:Ee.value="Complete OAuth in the browser; paste the callback URL below if it fails to redirect"):R.status==="skipped"?ie.value="skipped":ie.value="error"}catch(R){ie.value="error",Ee.value=R instanceof Error?R.message:String(R)}}}async function Je(){if(L.value.trim()){B.value="";try{const h=await l.cliproxyCallbackForward(L.value.trim());h.status==="completed"?(ie.value="success",Ee.value="API proxy login completed"):B.value=h.message}catch(h){B.value=h instanceof Error?h.message:String(h)}}}async function je(){H.value=!0,fe.value="";try{const h=u.value;if(!h)throw new Error("No backend metadata available");const R={...ve(),plan:Ne.value||void 0,is_default:se.value};if(j.value)await l.updateBackend(j.value,{display_name:N(h.display_name),config:R});else{const G=await l.createBackend({kind:h.kind,display_name:N(h.display_name),config:R});j.value=G.id}p.value="done",s("saved"),o({type:"wizard.account.created",backendKind:h.kind,accountId:j.value}),o({type:"wizard.step",backendKind:h.kind,step:"done"})}catch(h){fe.value=h instanceof Error?h.message:"Failed to save account"}finally{H.value=!1}}function et(){I.value="",v.value="",M.value="",P.value="",x.value=!1,Ne.value="",se.value=!1,he(),j.value="",de.value=!1,p.value="subscription",$(),s("addAnother"),_.value&&o({type:"wizard.step",backendKind:_.value,step:"add-another"})}function J(){_.value&&o({type:"wizard.closed",backendKind:_.value,reason:"cancel"}),s("close")}function we(){_.value&&o({type:"wizard.closed",backendKind:_.value,reason:"done"}),s("done",{accountId:j.value})}function De(){_.value&&o({type:"wizard.closed",backendKind:_.value,reason:"skip"}),s("skip")}return(h,R)=>(t.openBlock(),t.createElementBlock("div",w_,[t.createElementVNode("div",k_,[t.createElementVNode("h3",null,t.toDisplayString(i("accountWizard.addAccount")),1),t.createElementVNode("button",{class:"wizard-close",onClick:J},"×")]),_.value?p.value!=="done"?(t.openBlock(),t.createElementBlock("div",F_,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(g.value,(G,Me)=>(t.openBlock(),t.createElementBlock("div",{key:G,class:t.normalizeClass(["step-indicator",{active:p.value===G,completed:b.value>Me,clickable:Me<b.value}]),onClick:ut=>Me<b.value?p.value=G:void 0},[t.createElementVNode("span",Y_,[b.value>Me?(t.openBlock(),t.createElementBlock("svg",V_,[...R[11]||(R[11]=[t.createElementVNode("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createTextVNode(t.toDisplayString(Me+1),1)],64))]),t.createElementVNode("span",q_,t.toDisplayString(f.value[G]),1)],10,G_))),128))])):t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("div",P_,[t.createElementVNode("div",U_,[R[10]||(R[10]=t.createElementVNode("p",{class:"step-question"},"Select a backend to connect:",-1)),t.createVNode(dc,{onPick:R[0]||(R[0]=G=>{_.value=G,le()})})]),t.createElementVNode("div",B_,[t.createElementVNode("button",{class:"btn btn-secondary",onClick:J},t.toDisplayString(i("common.cancel")),1)])])),_.value&&p.value==="subscription"?(t.openBlock(),t.createElementBlock("div",H_,[t.createElementVNode("div",z_,[t.createElementVNode("p",$_,"Do you already have a "+t.toDisplayString(m.value)+" account?",1),t.createElementVNode("div",W_,[t.createElementVNode("label",{class:t.normalizeClass(["radio-card",{selected:I.value==="yes"}])},[t.withDirectives(t.createElementVNode("input",{type:"radio","onUpdate:modelValue":R[1]||(R[1]=G=>I.value=G),value:"yes"},null,512),[[t.vModelRadio,I.value]]),t.createElementVNode("div",K_,[t.createElementVNode("span",Q_,t.toDisplayString(i("accountWizard.yesHaveAccount")),1),t.createElementVNode("span",X_,t.toDisplayString(i("accountWizard.yesHaveAccountDesc")),1)])],2),t.createElementVNode("label",{class:t.normalizeClass(["radio-card",{selected:I.value==="no"}])},[t.withDirectives(t.createElementVNode("input",{type:"radio","onUpdate:modelValue":R[2]||(R[2]=G=>I.value=G),value:"no"},null,512),[[t.vModelRadio,I.value]]),t.createElementVNode("div",Z_,[t.createElementVNode("span",J_,t.toDisplayString(i("accountWizard.noSkip")),1),t.createElementVNode("span",j_,t.toDisplayString(i("accountWizard.noSkipDesc")),1)])],2)]),t.createVNode(t.Transition,{name:"slide-down"},{default:t.withCtx(()=>[I.value==="yes"?(t.openBlock(),t.createElementBlock("div",ed,[t.createElementVNode("div",td,[t.createElementVNode("label",nd,[t.createTextVNode(t.toDisplayString(i("accountWizard.accountName"))+" ",1),R[12]||(R[12]=t.createElementVNode("span",{class:"optional"},"(optional)",-1))]),t.withDirectives(t.createElementVNode("input",{id:"wiz-name","onUpdate:modelValue":R[3]||(R[3]=G=>v.value=G),type:"text",placeholder:i("accountWizard.accountNamePlaceholder"),autofocus:"",onInput:$},null,40,ad),[[t.vModelText,v.value]]),t.createElementVNode("small",rd,t.toDisplayString(i("accountWizard.accountNameHint")),1)]),t.createElementVNode("div",id,[t.createElementVNode("label",od,t.toDisplayString(i("accountWizard.email")),1),t.withDirectives(t.createElementVNode("input",{id:"wiz-email","onUpdate:modelValue":R[4]||(R[4]=G=>M.value=G),type:"email",placeholder:i("accountWizard.emailPlaceholder")},null,8,sd),[[t.vModelText,M.value]]),t.createElementVNode("small",null,t.toDisplayString(i("accountWizard.emailHelp")),1)])])):t.createCommentVNode("",!0)]),_:1})]),t.createElementVNode("div",ld,[t.createElementVNode("button",{class:"btn btn-secondary",onClick:J},t.toDisplayString(i("common.cancel")),1),t.createElementVNode("button",{class:t.normalizeClass(["btn",I.value==="no"?"btn-outline":"btn-primary"]),disabled:!A.value,onClick:k},[t.createTextVNode(t.toDisplayString(I.value==="no"?i("accountWizard.noSkip"):i("accountWizard.continueBtn"))+" ",1),R[13]||(R[13]=t.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[t.createElementVNode("polyline",{points:"9 18 15 12 9 6"})],-1))],10,cd)])])):t.createCommentVNode("",!0),_.value&&p.value==="cli"?(t.openBlock(),t.createElementBlock("div",_d,[t.createElementVNode("div",dd,[t.createElementVNode("div",{class:t.normalizeClass(["status-card",w.value?"status-ok":"status-warn"])},[t.createElementVNode("div",ud,[W.value?(t.openBlock(),t.createElementBlock("div",pd)):w.value?(t.openBlock(),t.createElementBlock("svg",md,[...R[14]||(R[14]=[t.createElementVNode("path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14"},null,-1),t.createElementVNode("polyline",{points:"22 4 12 14.01 9 11.01"},null,-1)])])):(t.openBlock(),t.createElementBlock("svg",Ed,[...R[15]||(R[15]=[t.createElementVNode("circle",{cx:"12",cy:"12",r:"10"},null,-1),t.createElementVNode("line",{x1:"12",y1:"8",x2:"12",y2:"12"},null,-1),t.createElementVNode("line",{x1:"12",y1:"16",x2:"12.01",y2:"16"},null,-1)])]))]),t.createElementVNode("div",gd,[t.createElementVNode("span",Sd,t.toDisplayString(m.value)+" CLI",1),w.value?(t.openBlock(),t.createElementBlock("span",Td,t.toDisplayString(i("accountWizard.cliInstalled"))+t.toDisplayString(F.value?` (${F.value})`:""),1)):(t.openBlock(),t.createElementBlock("span",bd,t.toDisplayString(i("accountWizard.cliNotInstalled")),1))]),!w.value&&!ee.value?(t.openBlock(),t.createElementBlock("button",{key:0,class:"btn btn-primary btn-sm",onClick:Q},t.toDisplayString(i("accountWizard.installCli")),1)):t.createCommentVNode("",!0),ee.value?(t.openBlock(),t.createElementBlock("div",fd)):t.createCommentVNode("",!0)],2),z.value?(t.openBlock(),t.createElementBlock("div",Rd,t.toDisplayString(z.value),1)):t.createCommentVNode("",!0),Y.value&&Y.value.success?(t.openBlock(),t.createElementBlock("div",Cd," Installed"+t.toDisplayString(Y.value.binary_path?` at ${Y.value.binary_path}`:""),1)):t.createCommentVNode("",!0),Y.value&&!Y.value.success&&Y.value.stderr?(t.openBlock(),t.createElementBlock("pre",Nd,t.toDisplayString(Y.value.stderr),1)):t.createCommentVNode("",!0),P.value?(t.openBlock(),t.createElementBlock("div",Od,[t.createElementVNode("div",vd,t.toDisplayString(i("accountWizard.configPath")),1),t.createElementVNode("div",hd,[t.createElementVNode("code",null,t.toDisplayString(P.value),1),de.value?(t.openBlock(),t.createElementBlock("span",Ad,[R[16]||(R[16]=t.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"12",height:"12"},[t.createElementVNode("polyline",{points:"20 6 9 17 4 12"})],-1)),t.createTextVNode(" "+t.toDisplayString(i("accountWizard.configCreated")),1)])):(t.openBlock(),t.createElementBlock("button",{key:0,class:"btn btn-outline btn-sm",disabled:_e.value,onClick:ae},t.toDisplayString(_e.value?i("accountWizard.creating"):i("accountWizard.createDir")),9,Id))]),X.value?(t.openBlock(),t.createElementBlock("div",yd,t.toDisplayString(X.value),1)):t.createCommentVNode("",!0),t.createElementVNode("div",Dd,[x.value?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("button",{key:0,class:"btn-link-sm",onClick:R[5]||(R[5]=G=>x.value=!0)},t.toDisplayString(i("accountWizard.customizePath")),1)),x.value?(t.openBlock(),t.createElementBlock("div",Md,[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":R[6]||(R[6]=G=>P.value=G),type:"text",placeholder:`e.g., ~/.${_.value}-personal`},null,8,Ld),[[t.vModelText,P.value]])])):t.createCommentVNode("",!0)])])):t.createCommentVNode("",!0),D.value?(t.openBlock(),t.createElementBlock("div",xd,[t.createElementVNode("span",wd,t.toDisplayString(i("accountWizard.apiKeyEnv")),1),t.createElementVNode("code",null,t.toDisplayString(D.value),1)])):t.createCommentVNode("",!0)]),t.createElementVNode("div",kd,[t.createElementVNode("button",{class:"btn btn-secondary",onClick:O},[R[17]||(R[17]=t.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[t.createElementVNode("polyline",{points:"15 18 9 12 15 6"})],-1)),t.createTextVNode(" "+t.toDisplayString(i("common.back")),1)]),t.createElementVNode("button",{class:"btn btn-primary",onClick:C},[t.createTextVNode(t.toDisplayString(i("accountWizard.continueBtn"))+" ",1),R[18]||(R[18]=t.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[t.createElementVNode("polyline",{points:"9 18 15 12 9 6"})],-1))])])])):t.createCommentVNode("",!0),_.value&&p.value==="login"?(t.openBlock(),t.createElementBlock("div",Pd,[t.createElementVNode("div",Ud,[pe.value==="idle"||pe.value==="connecting"?(t.openBlock(),t.createElementBlock("div",Bd,[R[19]||(R[19]=t.createElementVNode("div",{class:"spinner-sm"},null,-1)),t.createElementVNode("span",null,t.toDisplayString(i("accountWizard.startingLogin")),1)])):pe.value==="streaming"?(t.openBlock(),t.createBlock(_c,{key:1,session:t.unref(c),"backend-kind":_.value,email:M.value},null,8,["session","backend-kind","email"])):pe.value==="completed"?(t.openBlock(),t.createElementBlock("div",Fd,[R[20]||(R[20]=t.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},[t.createElementVNode("polyline",{points:"20 6 9 17 4 12"})],-1)),t.createElementVNode("span",null,t.toDisplayString(i("accountWizard.loginCompleted")),1)])):pe.value==="error"?(t.openBlock(),t.createElementBlock(t.Fragment,{key:3},[t.createElementVNode("div",Gd,[R[21]||(R[21]=t.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"16",height:"16"},[t.createElementVNode("circle",{cx:"12",cy:"12",r:"10"}),t.createElementVNode("line",{x1:"15",y1:"9",x2:"9",y2:"15"}),t.createElementVNode("line",{x1:"9",y1:"9",x2:"15",y2:"15"})],-1)),t.createElementVNode("span",null,t.toDisplayString(Ae.value),1)]),t.createElementVNode("button",{class:"btn btn-secondary",style:{"margin-top":"12px"},onClick:ce},t.toDisplayString(i("accountWizard.tryAgain")),1)],64)):t.createCommentVNode("",!0)]),t.createElementVNode("div",Yd,[t.createElementVNode("button",{class:"btn btn-secondary",onClick:O},[R[22]||(R[22]=t.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[t.createElementVNode("polyline",{points:"15 18 9 12 15 6"})],-1)),t.createTextVNode(" "+t.toDisplayString(i("common.back")),1)]),t.createElementVNode("button",{class:"btn btn-primary",onClick:C},[t.createTextVNode(t.toDisplayString(pe.value==="idle"?i("common.skip"):i("accountWizard.continueBtn"))+" ",1),R[23]||(R[23]=t.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[t.createElementVNode("polyline",{points:"9 18 15 12 9 6"})],-1))])])])):t.createCommentVNode("",!0),_.value&&p.value==="proxy"?(t.openBlock(),t.createElementBlock("div",Vd,[t.createElementVNode("div",qd,[ye.value&&!V.value?(t.openBlock(),t.createElementBlock("div",Hd,[R[25]||(R[25]=t.createElementVNode("p",{class:"step-description"}," CLIProxyAPI is not installed. Install it to expose this account through an OpenAI-compatible endpoint for other tools. ",-1)),t.createElementVNode("button",{class:"btn btn-primary",disabled:re.value,onClick:Xe},[re.value?(t.openBlock(),t.createElementBlock("div",$d)):t.createCommentVNode("",!0),t.createTextVNode(" "+t.toDisplayString(re.value?"Installing cliproxyapi…":"Install CLIProxyAPI"),1)],8,zd),ue.value?(t.openBlock(),t.createElementBlock("div",Wd,[ue.value.success?(t.openBlock(),t.createElementBlock("p",Kd," Installed"+t.toDisplayString(ue.value.binary_path?` at ${ue.value.binary_path}`:""),1)):(t.openBlock(),t.createElementBlock("div",Qd,[R[24]||(R[24]=t.createElementVNode("p",{class:"error-text"},"Install failed",-1)),ue.value.stderr?(t.openBlock(),t.createElementBlock("pre",Xd,t.toDisplayString(ue.value.stderr),1)):t.createCommentVNode("",!0)]))])):t.createCommentVNode("",!0)])):V.value?(t.openBlock(),t.createElementBlock("div",Zd,[R[32]||(R[32]=t.createElementVNode("h4",{class:"proxy-heading"},"Register with API proxy",-1)),R[33]||(R[33]=t.createElementVNode("p",{class:"step-description"}," Optional: register this account with CLIProxyAPI so other tools can reach it through an OpenAI-compatible endpoint. ",-1)),ie.value==="idle"?(t.openBlock(),t.createElementBlock("button",{key:0,class:"btn btn-primary",onClick:Ze}," Start proxy registration ")):t.createCommentVNode("",!0),ie.value==="running"?(t.openBlock(),t.createElementBlock("div",Jd,[R[26]||(R[26]=t.createElementVNode("div",{class:"spinner-sm"},null,-1)),t.createElementVNode("span",null,t.toDisplayString(Ee.value),1)])):t.createCommentVNode("",!0),ie.value==="device_auth"?(t.openBlock(),t.createElementBlock("div",jd,[R[29]||(R[29]=t.createStaticVNode('<div class="proxy-url-badge" data-v-9fe4368c><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="16" height="16" data-v-9fe4368c><path d="M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6" data-v-9fe4368c></path><polyline points="15 3 21 3 21 9" data-v-9fe4368c></polyline><line x1="10" y1="14" x2="21" y2="3" data-v-9fe4368c></line></svg><span data-v-9fe4368c>A browser window should have opened. Sign in, then the page will redirect to <code data-v-9fe4368c>localhost</code> — that redirect will fail (this is normal). Copy the full URL from the browser address bar and paste it below.</span></div>',1)),Te.value?(t.openBlock(),t.createElementBlock("a",{key:0,href:Te.value,target:"_blank",rel:"noopener",class:"proxy-oauth-link"},t.toDisplayString(Te.value),9,eu)):t.createCommentVNode("",!0),y.value?(t.openBlock(),t.createElementBlock("div",tu,[R[27]||(R[27]=t.createElementVNode("span",{class:"proxy-device-code-label"},"Your device code:",-1)),t.createElementVNode("code",nu,t.toDisplayString(y.value),1)])):t.createCommentVNode("",!0),t.createElementVNode("div",au,[R[28]||(R[28]=t.createElementVNode("p",{class:"proxy-callback-hint"},"If the redirect to localhost fails, paste the callback URL:",-1)),t.createElementVNode("div",ru,[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":R[7]||(R[7]=G=>L.value=G),class:"proxy-callback-input",type:"url",placeholder:"http://localhost:54545/callback?code=..."},null,512),[[t.vModelText,L.value]]),t.createElementVNode("button",{class:"btn btn-primary btn-sm",onClick:Je,disabled:!L.value.trim()}," Submit ",8,iu)]),B.value?(t.openBlock(),t.createElementBlock("p",ou,t.toDisplayString(B.value),1)):t.createCommentVNode("",!0)])])):t.createCommentVNode("",!0),ie.value==="success"?(t.openBlock(),t.createElementBlock("div",su,[R[30]||(R[30]=t.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"16",height:"16"},[t.createElementVNode("polyline",{points:"20 6 9 17 4 12"})],-1)),t.createElementVNode("span",null,t.toDisplayString(Ee.value||"Registered successfully"),1)])):t.createCommentVNode("",!0),ie.value==="skipped"?(t.openBlock(),t.createElementBlock("div",lu,[t.createElementVNode("p",null,t.toDisplayString(Ee.value),1),t.createElementVNode("button",{class:"btn btn-outline btn-sm",onClick:He},"Retry")])):t.createCommentVNode("",!0),ie.value==="error"?(t.openBlock(),t.createElementBlock("div",cu,[t.createElementVNode("p",_u,[R[31]||(R[31]=t.createElementVNode("strong",null,"Error:",-1)),t.createTextVNode(" "+t.toDisplayString(Ee.value),1)]),t.createElementVNode("button",{class:"btn btn-outline btn-sm",onClick:He},"Retry")])):t.createCommentVNode("",!0)])):(t.openBlock(),t.createElementBlock("div",du,[...R[34]||(R[34]=[t.createElementVNode("div",{class:"spinner-sm"},null,-1),t.createElementVNode("span",null,"Checking CLIProxyAPI status…",-1)])]))]),t.createElementVNode("div",uu,[t.createElementVNode("button",{class:"btn btn-secondary",onClick:O},[R[35]||(R[35]=t.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[t.createElementVNode("polyline",{points:"15 18 9 12 15 6"})],-1)),t.createTextVNode(" "+t.toDisplayString(i("common.back")),1)]),t.createElementVNode("button",{class:"btn btn-primary",onClick:C},[t.createTextVNode(t.toDisplayString(ie.value==="success"?i("accountWizard.continueBtn"):i("common.skip"))+" ",1),R[36]||(R[36]=t.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[t.createElementVNode("polyline",{points:"9 18 15 12 9 6"})],-1))])])])):t.createCommentVNode("",!0),_.value&&p.value==="plan"?(t.openBlock(),t.createElementBlock("div",pu,[t.createElementVNode("div",mu,[t.createElementVNode("div",Eu,[t.createElementVNode("div",gu,[t.createElementVNode("span",Su,t.toDisplayString(i("accountWizard.accountName")),1),t.createElementVNode("span",Tu,t.toDisplayString(v.value),1)]),M.value?(t.openBlock(),t.createElementBlock("div",bu,[t.createElementVNode("span",fu,t.toDisplayString(i("accountWizard.email")),1),t.createElementVNode("span",Ru,t.toDisplayString(M.value),1)])):t.createCommentVNode("",!0),P.value?(t.openBlock(),t.createElementBlock("div",Cu,[t.createElementVNode("span",Nu,t.toDisplayString(i("accountWizard.configPath")),1),t.createElementVNode("code",Ou,t.toDisplayString(P.value),1)])):t.createCommentVNode("",!0),D.value?(t.openBlock(),t.createElementBlock("div",vu,[t.createElementVNode("span",hu,t.toDisplayString(i("accountWizard.apiKeyEnv")),1),t.createElementVNode("code",Iu,t.toDisplayString(D.value),1)])):t.createCommentVNode("",!0)]),U.value.length>0?(t.openBlock(),t.createElementBlock("div",Au,[t.createElementVNode("label",yu,t.toDisplayString(i("accountWizard.plan")),1),t.withDirectives(t.createElementVNode("select",{id:"wiz-plan","onUpdate:modelValue":R[8]||(R[8]=G=>Ne.value=G)},[t.createElementVNode("option",Du,t.toDisplayString(i("accountWizard.selectPlan")),1),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(U.value,G=>(t.openBlock(),t.createElementBlock("option",{key:G.id,value:G.id},t.toDisplayString(G.label),9,Mu))),128))],512),[[t.vModelSelect,Ne.value]])])):t.createCommentVNode("",!0),t.createElementVNode("div",Lu,[t.createElementVNode("label",null,[t.withDirectives(t.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":R[9]||(R[9]=G=>se.value=G)},null,512),[[t.vModelCheckbox,se.value]]),t.createTextVNode(" "+t.toDisplayString(i("accountWizard.setDefault")),1)])]),fe.value?(t.openBlock(),t.createElementBlock("div",xu,t.toDisplayString(fe.value),1)):t.createCommentVNode("",!0)]),t.createElementVNode("div",wu,[t.createElementVNode("button",{class:"btn btn-secondary",onClick:O},[R[37]||(R[37]=t.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[t.createElementVNode("polyline",{points:"15 18 9 12 15 6"})],-1)),t.createTextVNode(" "+t.toDisplayString(i("common.back")),1)]),t.createElementVNode("button",{class:"btn btn-primary",disabled:H.value,onClick:je},[H.value?(t.openBlock(),t.createElementBlock("div",Pu)):t.createCommentVNode("",!0),t.createTextVNode(" "+t.toDisplayString(H.value?i("accountWizard.saving"):i("accountWizard.saveAccount")),1)],8,ku)])])):t.createCommentVNode("",!0),_.value&&p.value==="done"?(t.openBlock(),t.createElementBlock("div",Uu,[t.createElementVNode("div",Bu,[R[38]||(R[38]=t.createElementVNode("div",{class:"done-icon"},[t.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"40",height:"40"},[t.createElementVNode("path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14"}),t.createElementVNode("polyline",{points:"22 4 12 14.01 9 11.01"})])],-1)),t.createElementVNode("h4",null,t.toDisplayString(i("accountWizard.accountCreated")),1),t.createElementVNode("p",null,t.toDisplayString(v.value)+" has been added to "+t.toDisplayString(m.value)+".",1),t.createElementVNode("div",Fu,[t.createElementVNode("button",{class:"btn btn-outline",onClick:et},t.toDisplayString(i("accountWizard.addAnother")),1),t.createElementVNode("button",{class:"btn btn-primary",onClick:we},t.toDisplayString(i("accountWizard.doneNextBackend")),1)])])])):t.createCommentVNode("",!0)]))}}),Yu=Se(Gu,[["__scopeId","data-v-9fe4368c"]]),Vu={class:"aia-onboarding"},qu={class:"aia-onboarding__header"},Hu={key:0,class:"aia-onboarding__welcome"},zu={key:1,class:"aia-onboarding__status"},$u={key:2,class:"aia-onboarding__kind-grid"},Wu=["disabled","onClick"],Ku={class:"aia-kind-card__name"},Qu={key:0,class:"aia-kind-card__badge"},Xu={key:1,class:"aia-kind-card__badge aia-kind-card__badge--missing"},Zu={key:3,class:"aia-onboarding__login"},Ju={class:"aia-onboarding__tabs"},ju={class:"aia-label"},ep={key:1,class:"aia-onboarding__oauth-start"},tp={key:4,class:"aia-onboarding__oauth-challenge"},np=["href"],ap={class:"aia-code-display"},rp={key:5,class:"aia-onboarding__status"},ip={key:6,class:"aia-onboarding__success"},op={key:7,class:"aia-onboarding__error"},sp=t.defineComponent({__name:"OnboardingFlow",props:{client:{},kinds:{},supportedFlowsByKind:{}},emits:["done","cancel"],setup(n,{emit:e}){const a=n,r=e,i=Ie.useOnboarding({client:a.client}),s=t.ref(""),l=t.ref("api_key"),o=[{id:"claude",display:"Claude"},{id:"opencode",display:"OpenCode"},{id:"gemini",display:"Gemini"},{id:"codex",display:"Codex"}],d={claude:["api_key"],opencode:["api_key"],gemini:["api_key","oauth_device"],codex:["api_key","oauth_device"]},c=t.computed(()=>a.kinds??o),_=t.computed(()=>a.supportedFlowsByKind??d),u=t.computed(()=>{const C=i.selectedKind.value;return C?_.value[C]??["api_key"]:["api_key"]});async function m(){await i.start(),i.state.value!=="error"&&await i.detect()}async function p(C){await i.pickKind(C);const O=u.value;l.value=O[0]??"api_key"}async function E(){await i.submitApiKey(s.value)}async function T(){await i.submitOauthDevice()}t.watch(()=>i.state.value,C=>{C==="done"&&i.createdBackendId.value&&r("done",i.createdBackendId.value)},{immediate:!1});function g(){i.reset()}function b(){var O;const C=(O=i.oauthChallenge.value)==null?void 0:O.user_code;C&&typeof navigator<"u"&&navigator.clipboard&&navigator.clipboard.writeText(C)}function f(C){var O,I;return(I=(O=i.kinds.value)==null?void 0:O.find(v=>v.id===C))==null?void 0:I.detection}return(C,O)=>{var I,v,M;return t.openBlock(),t.createElementBlock("section",Vu,[t.createElementVNode("header",qu,[t.renderSlot(C.$slots,"header",{},()=>[O[4]||(O[4]=t.createElementVNode("h2",null,"Set up an AI backend",-1))],!0)]),t.unref(i).state.value==="idle"?(t.openBlock(),t.createElementBlock("div",Hu,[O[5]||(O[5]=t.createElementVNode("p",null,"Connect one of the supported AI CLIs to get started.",-1)),t.createElementVNode("button",{type:"button",class:"aia-btn aia-btn--primary",onClick:m}," Get started ")])):t.unref(i).state.value==="started"||t.unref(i).state.value==="detecting"?(t.openBlock(),t.createElementBlock("div",zu," Detecting installed CLIs… ")):t.unref(i).state.value==="picking_kind"?(t.openBlock(),t.createElementBlock("div",$u,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(c.value,A=>{var k,P,x,q;return t.openBlock(),t.createElementBlock("button",{key:A.id,type:"button",class:t.normalizeClass(["aia-kind-card",{"aia-kind-card--installed":(k=f(A.id))==null?void 0:k.installed,"aia-kind-card--missing":f(A.id)&&!((P=f(A.id))!=null&&P.installed)}]),disabled:!((x=f(A.id))!=null&&x.installed),onClick:te=>p(A.id)},[t.createElementVNode("span",Ku,t.toDisplayString(A.display),1),(q=f(A.id))!=null&&q.installed?(t.openBlock(),t.createElementBlock("span",Qu," Installed ")):(t.openBlock(),t.createElementBlock("span",Xu," Not installed "))],10,Wu)}),128))])):t.unref(i).state.value==="entering_credential"?(t.openBlock(),t.createElementBlock("div",Zu,[t.createElementVNode("div",Ju,[u.value.includes("api_key")?(t.openBlock(),t.createElementBlock("button",{key:0,type:"button",class:t.normalizeClass(["aia-tab",{"aia-tab--active":l.value==="api_key"}]),onClick:O[0]||(O[0]=A=>l.value="api_key")}," API key ",2)):t.createCommentVNode("",!0),u.value.includes("oauth_device")?(t.openBlock(),t.createElementBlock("button",{key:1,type:"button",class:t.normalizeClass(["aia-tab",{"aia-tab--active":l.value==="oauth_device"}]),onClick:O[1]||(O[1]=A=>l.value="oauth_device")}," Login with browser ",2)):t.createCommentVNode("",!0)]),l.value==="api_key"?(t.openBlock(),t.createElementBlock("form",{key:0,class:"aia-onboarding__form",onSubmit:t.withModifiers(E,["prevent"])},[t.createElementVNode("label",ju,[O[6]||(O[6]=t.createTextVNode(" API key ",-1)),t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":O[2]||(O[2]=A=>s.value=A),type:"password",class:"aia-input",autocomplete:"off",required:""},null,512),[[t.vModelText,s.value]])]),O[7]||(O[7]=t.createElementVNode("button",{type:"submit",class:"aia-btn aia-btn--primary"},"Connect",-1))],32)):l.value==="oauth_device"?(t.openBlock(),t.createElementBlock("div",ep,[O[8]||(O[8]=t.createElementVNode("p",null,"You'll be shown a verification URL and code. Open it in your browser to sign in.",-1)),t.createElementVNode("button",{type:"button",class:"aia-btn aia-btn--primary",onClick:T}," Start browser login ")])):t.createCommentVNode("",!0)])):t.unref(i).state.value==="oauth_challenge"||t.unref(i).state.value==="oauth_polling"?(t.openBlock(),t.createElementBlock("div",tp,[O[9]||(O[9]=t.createElementVNode("p",null,"Open this URL in your browser and enter the code:",-1)),t.createElementVNode("a",{href:(I=t.unref(i).oauthChallenge.value)==null?void 0:I.verification_uri,target:"_blank",rel:"noopener noreferrer",class:"aia-onboarding__oauth-uri"},t.toDisplayString((v=t.unref(i).oauthChallenge.value)==null?void 0:v.verification_uri),9,np),t.createElementVNode("div",ap,[t.createElementVNode("code",null,t.toDisplayString((M=t.unref(i).oauthChallenge.value)==null?void 0:M.user_code),1),t.createElementVNode("button",{type:"button",class:"aia-copy-btn",onClick:b},"Copy")]),O[10]||(O[10]=t.createElementVNode("p",{class:"aia-onboarding__hint"},"Waiting for you to complete sign-in…",-1)),t.createElementVNode("button",{type:"button",class:"aia-btn",onClick:O[3]||(O[3]=(...A)=>t.unref(i).cancelOAuth&&t.unref(i).cancelOAuth(...A))},"Cancel")])):t.unref(i).state.value==="validating"?(t.openBlock(),t.createElementBlock("div",rp," Validating credential… ")):t.unref(i).state.value==="done"?(t.openBlock(),t.createElementBlock("div",ip,[t.renderSlot(C.$slots,"success",{},()=>[O[11]||(O[11]=t.createElementVNode("p",null,"✓ Connected successfully",-1))],!0)])):t.unref(i).state.value==="error"?(t.openBlock(),t.createElementBlock("div",op,[t.createElementVNode("p",null,t.toDisplayString(t.unref(i).error.value),1),t.createElementVNode("button",{type:"button",class:"aia-btn",onClick:g},"Try again")])):t.createCommentVNode("",!0)])}}}),lp=Se(sp,[["__scopeId","data-v-8c20d7e7"]]),cp=["value","type","onInput"],_p={class:"aia-actions"},dp=["disabled"],up={key:0,class:"aia-error"},pp=t.defineComponent({__name:"AccountEditForm",props:{account:{},metadata:{}},emits:["saved","cancel"],setup(n,{emit:e}){const a=n,r=e,{client:i}=Ie.useAiAccounts(),s=t.reactive({display_name:a.account.display_name,config:{...a.account.config}}),l=t.ref(!1),o=t.ref(null),d=t.computed(()=>{var _;return((_=a.metadata.config_schema)==null?void 0:_.properties)??{}});async function c(){l.value=!0,o.value=null;try{const _=await i.updateBackend(a.account.id,{display_name:s.display_name,config:s.config});r("saved",_)}catch(_){o.value=_ instanceof Error?_.message:String(_)}finally{l.value=!1}}return(_,u)=>(t.openBlock(),t.createElementBlock("form",{class:"aia-account-edit",onSubmit:t.withModifiers(c,["prevent"])},[t.createElementVNode("label",null,[u[2]||(u[2]=t.createTextVNode(" Display name ",-1)),t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":u[0]||(u[0]=m=>s.display_name=m),type:"text",required:""},null,512),[[t.vModelText,s.display_name]])]),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(d.value,(m,p)=>(t.openBlock(),t.createElementBlock("div",{key:p,class:"aia-field"},[t.createElementVNode("label",null,[t.createTextVNode(t.toDisplayString(p)+" ",1),t.createElementVNode("input",{value:s.config[p]??"",type:String(p).toLowerCase().includes("secret")||String(p).toLowerCase().includes("key")?"password":"text",onInput:E=>s.config[p]=E.target.value},null,40,cp)])]))),128)),t.createElementVNode("div",_p,[t.createElementVNode("button",{type:"submit",disabled:l.value},t.toDisplayString(l.value?"Saving…":"Save"),9,dp),t.createElementVNode("button",{type:"button",onClick:u[1]||(u[1]=m=>r("cancel"))},"Cancel")]),o.value?(t.openBlock(),t.createElementBlock("p",up,t.toDisplayString(o.value),1)):t.createCommentVNode("",!0)],32))}}),mp=Se(pp,[["__scopeId","data-v-56b7b8c3"]]),Ep={class:"aia-chat-message__role"},gp={class:"aia-chat-message__content"},Sp={key:0,class:"aia-chat-message__meta"},Tp={key:0},bp={key:1},fp={key:2},Rp=t.defineComponent({__name:"ChatMessage",props:{role:{},content:{},model:{},tokensIn:{},tokensOut:{},streaming:{type:Boolean}},setup(n){return(e,a)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["aia-chat-message",[`aia-chat-message--${n.role}`,{"aia-chat-message--streaming":n.streaming}]])},[t.createElementVNode("div",Ep,t.toDisplayString(n.role),1),t.createElementVNode("div",gp,t.toDisplayString(n.content),1),n.tokensIn||n.tokensOut?(t.openBlock(),t.createElementBlock("div",Sp,[n.tokensIn?(t.openBlock(),t.createElementBlock("span",Tp,t.toDisplayString(n.tokensIn)+" in",1)):t.createCommentVNode("",!0),n.tokensOut?(t.openBlock(),t.createElementBlock("span",bp,t.toDisplayString(n.tokensOut)+" out",1)):t.createCommentVNode("",!0),n.model?(t.openBlock(),t.createElementBlock("span",fp,t.toDisplayString(n.model),1)):t.createCommentVNode("",!0)])):t.createCommentVNode("",!0)],2))}}),Wr=Se(Rp,[["__scopeId","data-v-52897838"]]),Cp={class:"aia-chat-panel"},Np={class:"aia-chat-panel__messages"},Op={class:"aia-chat-panel__input"},vp=["disabled"],hp=["disabled"],Ip=t.defineComponent({__name:"ChatPanel",props:{messages:{},streamingText:{},isStreaming:{type:Boolean},disabled:{type:Boolean}},emits:["send"],setup(n,{emit:e}){const a=n,r=e,i=t.ref(""),s=t.ref(null);function l(){const d=i.value.trim();!d||a.disabled||a.isStreaming||(r("send",d),i.value="")}function o(d){d.key==="Enter"&&!d.shiftKey&&(d.preventDefault(),l())}return t.watch(()=>a.messages.length,()=>t.nextTick(()=>{var d;return(d=s.value)==null?void 0:d.scrollIntoView({behavior:"smooth"})})),(d,c)=>(t.openBlock(),t.createElementBlock("div",Cp,[t.createElementVNode("div",Np,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(n.messages,_=>(t.openBlock(),t.createBlock(Wr,{key:_.id,role:_.role,content:_.content,model:_.model||void 0,"tokens-in":_.tokens_in||void 0,"tokens-out":_.tokens_out||void 0},null,8,["role","content","model","tokens-in","tokens-out"]))),128)),n.isStreaming&&n.streamingText?(t.openBlock(),t.createBlock(Wr,{key:0,role:"assistant",content:n.streamingText,streaming:!0},null,8,["content"])):t.createCommentVNode("",!0),t.createElementVNode("div",{ref_key:"messagesEnd",ref:s},null,512)]),t.createElementVNode("div",Op,[t.withDirectives(t.createElementVNode("textarea",{"onUpdate:modelValue":c[0]||(c[0]=_=>i.value=_),class:"aia-chat-panel__textarea",placeholder:"Type a message...",rows:"2",disabled:n.disabled||n.isStreaming,onKeydown:o},null,40,vp),[[t.vModelText,i.value]]),t.createElementVNode("button",{class:"aia-chat-panel__send",disabled:!i.value.trim()||n.disabled||n.isStreaming,onClick:l},"Send",8,hp)])]))}}),Ap=Se(Ip,[["__scopeId","data-v-2904376c"]]);function Jr(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var Be=Jr();function uc(n){Be=n}var ke={exec:()=>null};function K(n,e=""){let a=typeof n=="string"?n:n.source,r={replace:(i,s)=>{let l=typeof s=="string"?s:s.source;return l=l.replace(be.caret,"$1"),a=a.replace(i,l),r},getRegex:()=>new RegExp(a,e)};return r}var yp=(()=>{try{return!!new RegExp("(?<=1)(?<!1)")}catch{return!1}})(),be={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:n=>new RegExp(`^( {0,3}${n})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}#`),htmlBeginRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}<(?:[a-z].*>|!--)`,"i"),blockquoteBeginRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}>`)},Dp=/^(?:[ \t]*(?:\n|$))+/,Mp=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Lp=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Qe=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,xp=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,jr=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,pc=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,mc=K(pc).replace(/bull/g,jr).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),wp=K(pc).replace(/bull/g,jr).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),ei=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,kp=/^[^\n]+/,ti=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,Pp=K(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",ti).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Up=K(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,jr).getRegex(),ct="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",ni=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,Bp=K("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",ni).replace("tag",ct).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Ec=K(ei).replace("hr",Qe).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",ct).getRegex(),Fp=K(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Ec).getRegex(),ai={blockquote:Fp,code:Mp,def:Pp,fences:Lp,heading:xp,hr:Qe,html:Bp,lheading:mc,list:Up,newline:Dp,paragraph:Ec,table:ke,text:kp},Ti=K("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Qe).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",ct).getRegex(),Gp={...ai,lheading:wp,table:Ti,paragraph:K(ei).replace("hr",Qe).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Ti).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",ct).getRegex()},Yp={...ai,html:K(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",ni).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:ke,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:K(ei).replace("hr",Qe).replace("heading",` *#{1,6} *[^
1
+ "use strict";var Xc=Object.defineProperty;var Zc=(n,e,a)=>e in n?Xc(n,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):n[e]=a;var ne=(n,e,a)=>Zc(n,typeof e!="symbol"?e+"":e,a);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("vue"),Ie=require("@ai-accounts/vue-headless");function cc(n,e,a){if(!n)return n;let r;try{r=new URL(n)}catch{return n}if(a==="google")r.searchParams.set("prompt","select_account consent");else if(a==="claude")r.searchParams.set("prompt","login");else return n;return e&&r.searchParams.set("login_hint",e),r.toString()}const Jc={class:"aia-login-stream"},jc={key:0,class:"aia-url-section"},e_=["href"],t_={class:"aia-url-actions"},n_=["aria-pressed"],a_={key:0,class:"aia-incognito-hint"},r_={key:1,class:"aia-device-code"},i_={class:"aia-device-code__value"},o_={class:"aia-text-section__label"},s_={key:0,class:"aia-text-section__queued"},l_={class:"aia-text-section__row"},c_=["disabled"],__=["disabled"],d_={key:1,class:"aia-menu-section"},u_={class:"aia-menu-section__title"},p_={class:"aia-menu-options"},m_=["onClick"],E_={class:"aia-menu-option__num"},g_={class:"aia-menu-option__body"},S_={class:"aia-menu-option__label"},T_={key:0,class:"aia-menu-option__desc"},b_={class:"aia-text-section__label"},f_={class:"aia-text-section__row"},R_=["type","placeholder"],C_=["disabled"],N_={key:3,class:"aia-terminal"},O_={class:"aia-terminal__output"},v_={key:4,class:"aia-error-card"},h_=t.defineComponent({__name:"LoginStream",props:{session:{},showStdout:{type:Boolean,default:!0},backendKind:{default:""},email:{default:""}},setup(n){const e=n,a=t.ref(""),r=t.ref(""),i=t.ref("idle");let s=null;async function l(){const g=a.value;a.value="",await e.session.respond(g)}async function o(){const g=r.value.trim();if(g){r.value="",i.value="sent";try{await e.session.writeEager(g)}catch{s=g,i.value="queued"}}}t.watch(()=>e.session.textPrompt.value,async g=>{if(g&&s){const b=s;s=null,i.value="sent",await e.session.respond(b)}});async function d(g){await e.session.respond(String(g))}const c=t.computed(()=>{var f;const g=(f=e.session.urlPrompt.value)==null?void 0:f.url;if(!g)return"";const b=e.backendKind==="gemini"||e.backendKind==="codex"?"google":e.backendKind==="claude"?"claude":"none";return b==="none"?g:cc(g,e.email??"",b)});let _="";t.watch(()=>c.value,g=>{g&&g!==_&&(_=g,window.open(g,"_blank","noopener"))},{immediate:!0});const u=t.ref(!1),m=t.ref(!1);let p=null;async function E(){var b;const g=c.value;if(g)try{(b=navigator==null?void 0:navigator.clipboard)!=null&&b.writeText&&await navigator.clipboard.writeText(g),u.value=!0,m.value=!0,p&&clearTimeout(p),p=setTimeout(()=>{u.value=!1},2500)}catch{m.value=!0}}function T(){m.value=!1}return(g,b)=>(t.openBlock(),t.createElementBlock("div",Jc,[n.session.urlPrompt.value?(t.openBlock(),t.createElementBlock("div",jc,[b[9]||(b[9]=t.createStaticVNode('<div class="aia-url-badge" data-v-da6f26ca><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="16" height="16" data-v-da6f26ca><path d="M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6" data-v-da6f26ca></path><polyline points="15 3 21 3 21 9" data-v-da6f26ca></polyline><line x1="10" y1="14" x2="21" y2="3" data-v-da6f26ca></line></svg><span data-v-da6f26ca>A browser window should have opened. If not, click the link below:</span></div>',1)),t.createElementVNode("a",{href:c.value,target:"_blank",rel:"noopener",class:"aia-url-link"},t.toDisplayString(c.value),9,e_),t.createElementVNode("div",t_,[t.createElementVNode("button",{type:"button",class:t.normalizeClass(["aia-copy-incognito-btn",{"aia-copy-incognito-btn--copied":u.value}]),"aria-pressed":m.value,onClick:E},[b[3]||(b[3]=t.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[t.createElementVNode("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),t.createElementVNode("path",{d:"M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1"})],-1)),t.createElementVNode("span",null,t.toDisplayString(u.value?"Copied!":"Copy for Incognito"),1)],10,n_)]),m.value?(t.openBlock(),t.createElementBlock("div",a_,[t.createElementVNode("button",{type:"button",class:"aia-incognito-hint__close","aria-label":"Dismiss",onClick:T},"×"),b[4]||(b[4]=t.createElementVNode("strong",{class:"aia-incognito-hint__title"},"Open in an incognito window",-1)),b[5]||(b[5]=t.createElementVNode("p",{class:"aia-incognito-hint__body"},[t.createTextVNode(" Press "),t.createElementVNode("kbd",null,"⌘"),t.createElementVNode("kbd",null,"⇧"),t.createElementVNode("kbd",null,"N"),t.createTextVNode(" (Mac) or "),t.createElementVNode("kbd",null,"Ctrl"),t.createElementVNode("kbd",null,"Shift"),t.createElementVNode("kbd",null,"N"),t.createTextVNode(" (Windows / Linux) to open an incognito window, then paste the URL. ")],-1))])):t.createCommentVNode("",!0),n.session.urlPrompt.value.user_code?(t.openBlock(),t.createElementBlock("div",r_,[b[6]||(b[6]=t.createElementVNode("span",{class:"aia-device-code__label"},"Your device code:",-1)),t.createElementVNode("code",i_,t.toDisplayString(n.session.urlPrompt.value.user_code),1)])):t.createCommentVNode("",!0),!n.session.textPrompt.value&&i.value!=="sent"?(t.openBlock(),t.createElementBlock("form",{key:2,class:"aia-text-section aia-text-section--eager",onSubmit:t.withModifiers(o,["prevent"])},[t.createElementVNode("label",o_,[b[7]||(b[7]=t.createTextVNode(" After signing in, paste the authorization code here: ",-1)),i.value==="queued"?(t.openBlock(),t.createElementBlock("span",s_,"(queued — waiting for CLI prompt)")):t.createCommentVNode("",!0)]),t.createElementVNode("div",l_,[b[8]||(b[8]=t.createElementVNode("span",{class:"aia-text-section__prompt"},">",-1)),t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":b[0]||(b[0]=f=>r.value=f),class:"aia-text-section__input",type:"text",placeholder:"Paste code from browser…",autocomplete:"off",autofocus:"",disabled:i.value==="queued"},null,8,c_),[[t.vModelText,r.value]]),t.createElementVNode("button",{type:"submit",class:"aia-text-section__btn",disabled:!r.value.trim()||i.value==="queued"},t.toDisplayString(i.value==="queued"?"Waiting…":"Send"),9,__)])],32)):t.createCommentVNode("",!0)])):t.createCommentVNode("",!0),n.session.menuPrompt.value?(t.openBlock(),t.createElementBlock("div",d_,[t.createElementVNode("p",u_,t.toDisplayString(n.session.menuPrompt.value.prompt),1),t.createElementVNode("div",p_,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(n.session.menuPrompt.value.options,f=>(t.openBlock(),t.createElementBlock("button",{key:f.number,type:"button",class:"aia-menu-option",onClick:C=>d(f.number)},[t.createElementVNode("span",E_,t.toDisplayString(f.number),1),t.createElementVNode("div",g_,[t.createElementVNode("span",S_,t.toDisplayString(f.label),1),f.description?(t.openBlock(),t.createElementBlock("span",T_,t.toDisplayString(f.description),1)):t.createCommentVNode("",!0)]),b[10]||(b[10]=t.createElementVNode("svg",{class:"aia-menu-option__arrow",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[t.createElementVNode("polyline",{points:"9 18 15 12 9 6"})],-1))],8,m_))),128))])])):t.createCommentVNode("",!0),n.session.textPrompt.value?(t.openBlock(),t.createElementBlock("form",{key:2,class:"aia-text-section",onSubmit:t.withModifiers(l,["prevent"])},[t.createElementVNode("label",b_,t.toDisplayString(n.session.textPrompt.value.prompt),1),t.createElementVNode("div",f_,[b[11]||(b[11]=t.createElementVNode("span",{class:"aia-text-section__prompt"},">",-1)),t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":b[1]||(b[1]=f=>a.value=f),class:"aia-text-section__input",type:n.session.textPrompt.value.hidden?"password":"text",placeholder:n.session.textPrompt.value.hidden?"••••••••":"Type here…",autocomplete:"off",autofocus:""},null,8,R_),[[t.vModelDynamic,a.value]]),t.createElementVNode("button",{type:"submit",class:"aia-text-section__btn",disabled:!a.value.trim()},"Send",8,C_)])],32)):t.createCommentVNode("",!0),n.showStdout&&n.session.stdoutLines.value.length>0?(t.openBlock(),t.createElementBlock("div",N_,[t.createElementVNode("div",O_,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(n.session.stdoutLines.value,(f,C)=>(t.openBlock(),t.createElementBlock("div",{key:C,class:"aia-terminal__line"},t.toDisplayString(f),1))),128))])])):t.createCommentVNode("",!0),n.session.status.value==="failed"?(t.openBlock(),t.createElementBlock("div",v_,[b[12]||(b[12]=t.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"16",height:"16"},[t.createElementVNode("circle",{cx:"12",cy:"12",r:"10"}),t.createElementVNode("line",{x1:"15",y1:"9",x2:"9",y2:"15"}),t.createElementVNode("line",{x1:"9",y1:"9",x2:"15",y2:"15"})],-1)),t.createElementVNode("div",null,[t.createElementVNode("strong",null,t.toDisplayString(n.session.errorCode.value),1),t.createElementVNode("p",null,t.toDisplayString(n.session.errorMessage.value),1)])])):t.createCommentVNode("",!0),n.session.status.value==="running"?(t.openBlock(),t.createElementBlock("button",{key:5,type:"button",class:"aia-cancel-btn",onClick:b[2]||(b[2]=f=>n.session.cancel())}," Cancel ")):t.createCommentVNode("",!0)]))}}),Se=(n,e)=>{const a=n.__vccOpts||n;for(const[r,i]of e)a[r]=i;return a},_c=Se(h_,[["__scopeId","data-v-da6f26ca"]]),I_={class:"aia-backend-picker"},A_=["onClick"],y_=["src","alt"],D_={class:"aia-backend-info"},M_={key:0,class:"aia-installed"},L_={key:1,class:"aia-not-installed"},x_=t.defineComponent({__name:"BackendPicker",props:{installStatus:{}},emits:["pick"],setup(n,{emit:e}){const a=n,r=e,i=Ie.useBackendRegistry();function s(l){return a.installStatus?a.installStatus[l]:void 0}return t.onMounted(async()=>{i.loaded.value||await i.load()}),(l,o)=>(t.openBlock(),t.createElementBlock("ul",I_,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(i).backends.value,d=>(t.openBlock(),t.createElementBlock("li",{key:d.kind},[t.createElementVNode("button",{type:"button",onClick:c=>r("pick",d.kind)},[d.icon_url?(t.openBlock(),t.createElementBlock("img",{key:0,src:d.icon_url,alt:d.display_name},null,8,y_)):t.createCommentVNode("",!0),t.createElementVNode("div",D_,[t.createElementVNode("strong",null,t.toDisplayString(d.display_name),1),s(d.kind)?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[s(d.kind).installed?(t.openBlock(),t.createElementBlock("span",M_," installed"+t.toDisplayString(s(d.kind).version?" v"+s(d.kind).version:""),1)):(t.openBlock(),t.createElementBlock("span",L_,"not detected"))],64)):t.createCommentVNode("",!0)])],8,A_)]))),128))]))}}),dc=Se(x_,[["__scopeId","data-v-2500895f"]]),w_={class:"wizard-container","data-tour":"account-wizard"},k_={class:"wizard-header"},P_={key:0,class:"wizard-step"},U_={class:"step-body"},B_={class:"step-actions"},F_={key:1,class:"wizard-steps"},G_=["onClick"],Y_={class:"step-number"},V_={key:0,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"3",width:"12",height:"12"},q_={class:"step-label"},H_={key:2,class:"wizard-step"},z_={class:"step-body"},$_={class:"step-question"},W_={class:"radio-group"},K_={class:"radio-card-content"},Q_={class:"radio-card-title"},X_={class:"radio-card-desc"},Z_={class:"radio-card-content"},J_={class:"radio-card-title"},j_={class:"radio-card-desc"},ed={key:0,class:"account-fields"},td={class:"form-group"},nd={for:"wiz-name"},ad=["placeholder"],rd={class:"account-name-hint"},id={class:"form-group"},od={for:"wiz-email"},sd=["placeholder"],ld={class:"step-actions"},cd=["disabled"],_d={key:3,class:"wizard-step"},dd={class:"step-body"},ud={class:"status-icon"},pd={key:0,class:"spinner-sm"},md={key:1,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},Ed={key:2,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},gd={class:"status-info"},Sd={class:"status-title"},Td={key:0,class:"status-detail"},bd={key:1,class:"status-detail"},fd={key:1,class:"spinner-sm"},Rd={key:0,class:"error-text"},Cd={key:1,class:"install-success-text"},Nd={key:2,class:"install-stderr"},Od={key:3,class:"config-dir-section"},vd={class:"config-dir-label"},hd={class:"config-dir-path"},Id=["disabled"],Ad={key:1,class:"dir-created-badge"},yd={key:0,class:"error-text"},Dd={class:"config-path-edit"},Md={key:1,class:"form-group compact"},Ld=["placeholder"],xd={key:4,class:"api-key-info"},wd={class:"api-key-label"},kd={class:"step-actions"},Pd={key:4,class:"wizard-step"},Ud={class:"step-body"},Bd={key:0,class:"login-status login-connecting"},Fd={key:2,class:"login-status login-completed"},Gd={class:"login-status login-error"},Yd={class:"step-actions"},Vd={key:5,class:"wizard-step"},qd={class:"step-body"},Hd={key:0,class:"cliproxy-install-block"},zd=["disabled"],$d={key:0,class:"spinner-sm"},Wd={key:0},Kd={key:0,class:"install-success-text"},Qd={key:1},Xd={key:0,class:"install-stderr"},Zd={key:1,class:"proxy-step-body"},Jd={key:1,class:"login-status login-started"},jd={key:2,class:"proxy-device-auth"},eu=["href"],tu={key:1,class:"proxy-device-code-card"},nu={class:"proxy-device-code-value"},au={class:"proxy-callback-section"},ru={class:"proxy-callback-row"},iu=["disabled"],ou={key:0,class:"error-text"},su={key:3,class:"login-status login-completed"},lu={key:4,class:"proxy-skipped"},cu={key:5,class:"proxy-error"},_u={class:"error-text"},du={key:2,class:"proxy-loading"},uu={class:"step-actions"},pu={key:6,class:"wizard-step"},mu={class:"step-body"},Eu={class:"review-card"},gu={class:"review-row"},Su={class:"review-label"},Tu={class:"review-value"},bu={key:0,class:"review-row"},fu={class:"review-label"},Ru={class:"review-value"},Cu={key:1,class:"review-row"},Nu={class:"review-label"},Ou={class:"review-value"},vu={key:2,class:"review-row"},hu={class:"review-label"},Iu={class:"review-value"},Au={key:0,class:"form-group"},yu={for:"wiz-plan"},Du={value:""},Mu=["value"],Lu={class:"form-group checkbox"},xu={key:1,class:"error-text"},wu={class:"step-actions"},ku=["disabled"],Pu={key:0,class:"spinner-sm"},Uu={key:7,class:"wizard-step"},Bu={class:"step-body done-body"},Fu={class:"done-actions"},Gu=t.defineComponent({__name:"AccountWizard",props:{initialBackendKind:{},backendName:{},allowSkip:{type:Boolean},translate:{type:Function}},emits:["close","saved","skip","addAnother","done"],setup(n,{emit:e}){const a=(h,R)=>({"accountWizard.addAccount":"Add Account","accountWizard.stepSubscription":"Subscription","accountWizard.stepCliSetup":"CLI Setup","accountWizard.stepLogin":"Login","accountWizard.stepPlanSave":"Plan & Save","accountWizard.stepDone":"Done","accountWizard.yesHaveAccount":"Yes, I have an account","accountWizard.yesHaveAccountDesc":"I already have a subscription for this backend","accountWizard.noSkip":"Skip for now","accountWizard.noSkipDesc":"I will set this up later","accountWizard.accountName":"Account name","accountWizard.accountNamePlaceholder":"e.g., Personal, Work","accountWizard.accountNameHint":"(optional — leave blank to use the default config directory)","accountWizard.copyForIncognito":"Copy for Incognito","accountWizard.copiedLabel":"Copied!","accountWizard.incognitoHint":"Press ⌘⇧N (Mac) or Ctrl+Shift+N (Windows/Linux) to open an incognito window, then paste the URL.","accountWizard.email":"Email","accountWizard.emailPlaceholder":"name@example.com","accountWizard.emailHelp":"Optional — used to tag the account","accountWizard.cliInstalled":"CLI detected","accountWizard.cliNotInstalled":"CLI not detected","accountWizard.installCli":"Install CLI","accountWizard.configPath":"Config path","accountWizard.createDir":"Create","accountWizard.creating":"Creating...","accountWizard.configCreated":"Created","accountWizard.customizePath":"Customize path","accountWizard.apiKeyEnv":"API key env var","accountWizard.startingLogin":"Starting login session...","accountWizard.loginCompleted":"Login completed","accountWizard.tryAgain":"Try again","accountWizard.connectionLost":"Connection lost","accountWizard.send":"Send","accountWizard.waitingForResponse":"Waiting for response...","accountWizard.plan":"Plan","accountWizard.selectPlan":"Select a plan","accountWizard.setDefault":"Set as default account","accountWizard.saving":"Saving...","accountWizard.saveAccount":"Save account","accountWizard.accountCreated":"Account created!","accountWizard.addAnother":"Add another","accountWizard.doneNextBackend":"Done","accountWizard.continueBtn":"Continue","common.cancel":"Cancel","common.back":"Back","common.skip":"Skip"})[h]??h,r=n,i=(h,R)=>r.translate?r.translate(h,R):a(h),s=e,{client:l,emit:o}=Ie.useAiAccounts(),d=Ie.useBackendRegistry(),c=Ie.useLoginSession(),_=t.ref(r.initialBackendKind??""),u=t.computed(()=>_.value?d.get(_.value):void 0),m=t.computed(()=>{var h;return r.backendName||((h=u.value)==null?void 0:h.display_name)||_.value||"Backend"}),p=t.ref("subscription"),E=["claude","codex","gemini"],T=t.computed(()=>E.includes(_.value??"")),g=t.computed(()=>{const h=["subscription","cli","login"];return T.value&&h.push("proxy"),h.push("plan"),h}),b=t.computed(()=>g.value.indexOf(p.value)),f=t.computed(()=>({subscription:i("accountWizard.stepSubscription"),cli:i("accountWizard.stepCliSetup"),login:i("accountWizard.stepLogin"),proxy:"API Proxy",plan:i("accountWizard.stepPlanSave"),done:i("accountWizard.stepDone")}));function C(){const h=g.value,R=h.indexOf(p.value);R>=0&&R<h.length-1?p.value=h[R+1]:p.value===h[h.length-1]&&(p.value="done")}function O(){const h=g.value,R=h.indexOf(p.value);R>0&&(p.value=h[R-1])}const I=t.ref(""),v=t.ref(""),M=t.ref(""),A=t.computed(()=>I.value!=="");function k(){if(I.value==="no"){De();return}C()}const P=t.ref(""),x=t.ref(!1);function q(h){return h.toLowerCase().replace(/\s+/g,"").replace(/[^a-z0-9]/g,"")}const te={claude:".claude",codex:".codex",gemini:".gemini",opencode:".opencode"};function oe(h){const R=h||"";return`~/${te[R]||(R?`.${R}`:".backend")}`}function $(){if(x.value)return;const h=v.value.trim();if(!h){P.value=oe(_.value);return}const R=q(h),G=te[_.value||""]||(_.value?`.${_.value}`:".backend");P.value=`~/${G}-${R}`}function N(h){const R=v.value.trim();return R||h&&h.trim()||"default"}const D=t.computed(()=>{const h=v.value.trim();if(!h)return"";const R={claude:"ANTHROPIC",codex:"OPENAI",gemini:"GOOGLE",opencode:"OPENCODE"},G=_.value||"",Me=R[G]||(G?G.toUpperCase():"BACKEND"),ut=q(h).replace(/-/g,"_").toUpperCase();return`${Me}_API_KEY_${ut}`}),w=t.ref(!1),F=t.ref(""),W=t.ref(!1),ee=t.ref(!1),_e=t.ref(!1),de=t.ref(!1),X=t.ref(""),z=t.ref("");async function le(){if(_.value){W.value=!0;try{const h=d.get(_.value);w.value=!!h,F.value=""}catch(h){console.warn("[AccountWizard] CLI check failed:",h)}finally{W.value=!1}}}const Y=t.ref(null);async function Q(){if(_.value){ee.value=!0,z.value="",Y.value=null;try{const h=await l.installBackendCli(_.value);Y.value=h,h.success?(w.value=!0,F.value=""):z.value=h.stderr||h.stdout||"Installation failed"}catch(h){z.value=h instanceof Error?h.message:String(h),Y.value={kind:_.value,success:!1,display:"install failed",stdout:"",stderr:z.value,exit_code:-1,binary_path:null}}finally{ee.value=!1}}}async function ae(){P.value&&(de.value=!0)}t.onMounted(async()=>{d.loaded.value||await d.load(),le(),$(),o({type:"wizard.opened",backendKind:_.value}),Ge()}),t.watch(_,()=>{x.value||$()}),t.watch(P,()=>{de.value=!1,X.value=""});const j=t.ref("");t.watch(p,async h=>{h==="login"&&c.status.value==="idle"&&await ce()},{immediate:!0});async function ce(){const h=u.value;if(h)try{if(!j.value){const G=await l.createBackend({kind:h.kind,display_name:N(h.display_name),config:ve()});j.value=G.id}const R=me(h);o({type:"wizard.step",backendKind:h.kind,step:"login.start"}),await c.start(j.value,R,ge(h))}catch(R){console.warn("[AccountWizard] login failed:",R)}}function me(h){const R=h.login_flows.map(G=>G.kind);return R.includes("cli_browser")?"cli_browser":R.includes("oauth_device")?"oauth_device":"api_key"}function ge(h){return{}}function ve(){return{email:M.value.trim()||void 0,config_path:P.value.trim()||void 0,api_key_env:D.value||void 0}}t.watch(()=>c.status.value,h=>{h==="complete"&&p.value==="login"&&C()}),t.onUnmounted(()=>{c.status.value==="running"&&c.cancel().catch(()=>{})});const pe=t.computed(()=>{switch(c.status.value){case"running":return c.urlPrompt.value||c.textPrompt.value||c.menuPrompt.value||c.stdoutLines.value.length>0?"streaming":"connecting";case"complete":return"completed";case"failed":case"cancelled":return"error";default:return"idle"}}),Ae=t.computed(()=>c.errorMessage.value||"");function he(){c.status.value==="running"&&c.cancel().catch(()=>{})}const U=t.computed(()=>{var h;return((h=u.value)==null?void 0:h.plan_options)??[]}),Ne=t.ref(""),se=t.ref(!1),H=t.ref(!1),fe=t.ref(""),ie=t.ref("idle"),Ee=t.ref(""),Te=t.ref(""),y=t.ref(""),L=t.ref(""),B=t.ref(""),V=t.ref(!1),re=t.ref(!1),ue=t.ref(null),ye=t.ref(!1);async function Ge(){try{const h=await l.cliproxyStatus();V.value=h.installed}catch(h){console.warn("[AccountWizard] cliproxy status check failed:",h),V.value=!1}finally{ye.value=!0}}async function Xe(){re.value=!0,ue.value=null;try{const h=await l.cliproxyInstall();ue.value=h,h.success&&(V.value=!0)}catch(h){ue.value={success:!1,display:"install failed",stdout:"",stderr:h instanceof Error?h.message:String(h),binary_path:null}}finally{re.value=!1}}function He(){ie.value="idle",Ee.value="",Te.value="",y.value="",L.value="",B.value=""}async function Ze(){var h;if(_.value){ie.value="running",Ee.value=`Registering ${m.value} account with API proxy…`,B.value="";try{const R=await l.cliproxyLoginBegin(_.value,((h=P.value)==null?void 0:h.trim())||void 0);Ee.value=R.message,R.status==="imported"?ie.value="success":R.status==="started"&&R.oauth_url?(ie.value="device_auth",Te.value=R.oauth_url,y.value=R.device_code??"",window.open(R.oauth_url,"_blank","noopener"),R.device_code?Ee.value=`Open the URL and enter code ${R.device_code}`:Ee.value="Complete OAuth in the browser; paste the callback URL below if it fails to redirect"):R.status==="skipped"?ie.value="skipped":ie.value="error"}catch(R){ie.value="error",Ee.value=R instanceof Error?R.message:String(R)}}}async function Je(){if(L.value.trim()){B.value="";try{const h=await l.cliproxyCallbackForward(L.value.trim());h.status==="completed"?(ie.value="success",Ee.value="API proxy login completed"):B.value=h.message}catch(h){B.value=h instanceof Error?h.message:String(h)}}}async function je(){H.value=!0,fe.value="";try{const h=u.value;if(!h)throw new Error("No backend metadata available");const R={...ve(),plan:Ne.value||void 0,is_default:se.value};if(j.value)await l.updateBackend(j.value,{display_name:N(h.display_name),config:R});else{const G=await l.createBackend({kind:h.kind,display_name:N(h.display_name),config:R});j.value=G.id}p.value="done",s("saved"),o({type:"wizard.account.created",backendKind:h.kind,accountId:j.value}),o({type:"wizard.step",backendKind:h.kind,step:"done"})}catch(h){fe.value=h instanceof Error?h.message:"Failed to save account"}finally{H.value=!1}}function et(){I.value="",v.value="",M.value="",P.value="",x.value=!1,Ne.value="",se.value=!1,he(),j.value="",de.value=!1,p.value="subscription",$(),s("addAnother"),_.value&&o({type:"wizard.step",backendKind:_.value,step:"add-another"})}function J(){_.value&&o({type:"wizard.closed",backendKind:_.value,reason:"cancel"}),s("close")}function we(){_.value&&o({type:"wizard.closed",backendKind:_.value,reason:"done"}),s("done",{accountId:j.value})}function De(){_.value&&o({type:"wizard.closed",backendKind:_.value,reason:"skip"}),s("skip")}return(h,R)=>(t.openBlock(),t.createElementBlock("div",w_,[t.createElementVNode("div",k_,[t.createElementVNode("h3",null,t.toDisplayString(i("accountWizard.addAccount")),1),t.createElementVNode("button",{class:"wizard-close",onClick:J},"×")]),_.value?p.value!=="done"?(t.openBlock(),t.createElementBlock("div",F_,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(g.value,(G,Me)=>(t.openBlock(),t.createElementBlock("div",{key:G,class:t.normalizeClass(["step-indicator",{active:p.value===G,completed:b.value>Me,clickable:Me<b.value}]),onClick:ut=>Me<b.value?p.value=G:void 0},[t.createElementVNode("span",Y_,[b.value>Me?(t.openBlock(),t.createElementBlock("svg",V_,[...R[11]||(R[11]=[t.createElementVNode("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createTextVNode(t.toDisplayString(Me+1),1)],64))]),t.createElementVNode("span",q_,t.toDisplayString(f.value[G]),1)],10,G_))),128))])):t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("div",P_,[t.createElementVNode("div",U_,[R[10]||(R[10]=t.createElementVNode("p",{class:"step-question"},"Select a backend to connect:",-1)),t.createVNode(dc,{onPick:R[0]||(R[0]=G=>{_.value=G,le()})})]),t.createElementVNode("div",B_,[t.createElementVNode("button",{class:"btn btn-secondary",onClick:J},t.toDisplayString(i("common.cancel")),1)])])),_.value&&p.value==="subscription"?(t.openBlock(),t.createElementBlock("div",H_,[t.createElementVNode("div",z_,[t.createElementVNode("p",$_,"Do you already have a "+t.toDisplayString(m.value)+" account?",1),t.createElementVNode("div",W_,[t.createElementVNode("label",{class:t.normalizeClass(["radio-card",{selected:I.value==="yes"}])},[t.withDirectives(t.createElementVNode("input",{type:"radio","onUpdate:modelValue":R[1]||(R[1]=G=>I.value=G),value:"yes"},null,512),[[t.vModelRadio,I.value]]),t.createElementVNode("div",K_,[t.createElementVNode("span",Q_,t.toDisplayString(i("accountWizard.yesHaveAccount")),1),t.createElementVNode("span",X_,t.toDisplayString(i("accountWizard.yesHaveAccountDesc")),1)])],2),t.createElementVNode("label",{class:t.normalizeClass(["radio-card",{selected:I.value==="no"}])},[t.withDirectives(t.createElementVNode("input",{type:"radio","onUpdate:modelValue":R[2]||(R[2]=G=>I.value=G),value:"no"},null,512),[[t.vModelRadio,I.value]]),t.createElementVNode("div",Z_,[t.createElementVNode("span",J_,t.toDisplayString(i("accountWizard.noSkip")),1),t.createElementVNode("span",j_,t.toDisplayString(i("accountWizard.noSkipDesc")),1)])],2)]),t.createVNode(t.Transition,{name:"slide-down"},{default:t.withCtx(()=>[I.value==="yes"?(t.openBlock(),t.createElementBlock("div",ed,[t.createElementVNode("div",td,[t.createElementVNode("label",nd,[t.createTextVNode(t.toDisplayString(i("accountWizard.accountName"))+" ",1),R[12]||(R[12]=t.createElementVNode("span",{class:"optional"},"(optional)",-1))]),t.withDirectives(t.createElementVNode("input",{id:"wiz-name","onUpdate:modelValue":R[3]||(R[3]=G=>v.value=G),type:"text",placeholder:i("accountWizard.accountNamePlaceholder"),autofocus:"",onInput:$},null,40,ad),[[t.vModelText,v.value]]),t.createElementVNode("small",rd,t.toDisplayString(i("accountWizard.accountNameHint")),1)]),t.createElementVNode("div",id,[t.createElementVNode("label",od,t.toDisplayString(i("accountWizard.email")),1),t.withDirectives(t.createElementVNode("input",{id:"wiz-email","onUpdate:modelValue":R[4]||(R[4]=G=>M.value=G),type:"email",placeholder:i("accountWizard.emailPlaceholder")},null,8,sd),[[t.vModelText,M.value]]),t.createElementVNode("small",null,t.toDisplayString(i("accountWizard.emailHelp")),1)])])):t.createCommentVNode("",!0)]),_:1})]),t.createElementVNode("div",ld,[t.createElementVNode("button",{class:"btn btn-secondary",onClick:J},t.toDisplayString(i("common.cancel")),1),t.createElementVNode("button",{class:t.normalizeClass(["btn",I.value==="no"?"btn-outline":"btn-primary"]),disabled:!A.value,onClick:k},[t.createTextVNode(t.toDisplayString(I.value==="no"?i("accountWizard.noSkip"):i("accountWizard.continueBtn"))+" ",1),R[13]||(R[13]=t.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[t.createElementVNode("polyline",{points:"9 18 15 12 9 6"})],-1))],10,cd)])])):t.createCommentVNode("",!0),_.value&&p.value==="cli"?(t.openBlock(),t.createElementBlock("div",_d,[t.createElementVNode("div",dd,[t.createElementVNode("div",{class:t.normalizeClass(["status-card",w.value?"status-ok":"status-warn"])},[t.createElementVNode("div",ud,[W.value?(t.openBlock(),t.createElementBlock("div",pd)):w.value?(t.openBlock(),t.createElementBlock("svg",md,[...R[14]||(R[14]=[t.createElementVNode("path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14"},null,-1),t.createElementVNode("polyline",{points:"22 4 12 14.01 9 11.01"},null,-1)])])):(t.openBlock(),t.createElementBlock("svg",Ed,[...R[15]||(R[15]=[t.createElementVNode("circle",{cx:"12",cy:"12",r:"10"},null,-1),t.createElementVNode("line",{x1:"12",y1:"8",x2:"12",y2:"12"},null,-1),t.createElementVNode("line",{x1:"12",y1:"16",x2:"12.01",y2:"16"},null,-1)])]))]),t.createElementVNode("div",gd,[t.createElementVNode("span",Sd,t.toDisplayString(m.value)+" CLI",1),w.value?(t.openBlock(),t.createElementBlock("span",Td,t.toDisplayString(i("accountWizard.cliInstalled"))+t.toDisplayString(F.value?` (${F.value})`:""),1)):(t.openBlock(),t.createElementBlock("span",bd,t.toDisplayString(i("accountWizard.cliNotInstalled")),1))]),!w.value&&!ee.value?(t.openBlock(),t.createElementBlock("button",{key:0,class:"btn btn-primary btn-sm",onClick:Q},t.toDisplayString(i("accountWizard.installCli")),1)):t.createCommentVNode("",!0),ee.value?(t.openBlock(),t.createElementBlock("div",fd)):t.createCommentVNode("",!0)],2),z.value?(t.openBlock(),t.createElementBlock("div",Rd,t.toDisplayString(z.value),1)):t.createCommentVNode("",!0),Y.value&&Y.value.success?(t.openBlock(),t.createElementBlock("div",Cd," Installed"+t.toDisplayString(Y.value.binary_path?` at ${Y.value.binary_path}`:""),1)):t.createCommentVNode("",!0),Y.value&&!Y.value.success&&Y.value.stderr?(t.openBlock(),t.createElementBlock("pre",Nd,t.toDisplayString(Y.value.stderr),1)):t.createCommentVNode("",!0),P.value?(t.openBlock(),t.createElementBlock("div",Od,[t.createElementVNode("div",vd,t.toDisplayString(i("accountWizard.configPath")),1),t.createElementVNode("div",hd,[t.createElementVNode("code",null,t.toDisplayString(P.value),1),de.value?(t.openBlock(),t.createElementBlock("span",Ad,[R[16]||(R[16]=t.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"12",height:"12"},[t.createElementVNode("polyline",{points:"20 6 9 17 4 12"})],-1)),t.createTextVNode(" "+t.toDisplayString(i("accountWizard.configCreated")),1)])):(t.openBlock(),t.createElementBlock("button",{key:0,class:"btn btn-outline btn-sm",disabled:_e.value,onClick:ae},t.toDisplayString(_e.value?i("accountWizard.creating"):i("accountWizard.createDir")),9,Id))]),X.value?(t.openBlock(),t.createElementBlock("div",yd,t.toDisplayString(X.value),1)):t.createCommentVNode("",!0),t.createElementVNode("div",Dd,[x.value?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("button",{key:0,class:"btn-link-sm",onClick:R[5]||(R[5]=G=>x.value=!0)},t.toDisplayString(i("accountWizard.customizePath")),1)),x.value?(t.openBlock(),t.createElementBlock("div",Md,[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":R[6]||(R[6]=G=>P.value=G),type:"text",placeholder:`e.g., ~/.${_.value}-personal`},null,8,Ld),[[t.vModelText,P.value]])])):t.createCommentVNode("",!0)])])):t.createCommentVNode("",!0),D.value?(t.openBlock(),t.createElementBlock("div",xd,[t.createElementVNode("span",wd,t.toDisplayString(i("accountWizard.apiKeyEnv")),1),t.createElementVNode("code",null,t.toDisplayString(D.value),1)])):t.createCommentVNode("",!0)]),t.createElementVNode("div",kd,[t.createElementVNode("button",{class:"btn btn-secondary",onClick:O},[R[17]||(R[17]=t.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[t.createElementVNode("polyline",{points:"15 18 9 12 15 6"})],-1)),t.createTextVNode(" "+t.toDisplayString(i("common.back")),1)]),t.createElementVNode("button",{class:"btn btn-primary",onClick:C},[t.createTextVNode(t.toDisplayString(i("accountWizard.continueBtn"))+" ",1),R[18]||(R[18]=t.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[t.createElementVNode("polyline",{points:"9 18 15 12 9 6"})],-1))])])])):t.createCommentVNode("",!0),_.value&&p.value==="login"?(t.openBlock(),t.createElementBlock("div",Pd,[t.createElementVNode("div",Ud,[pe.value==="idle"||pe.value==="connecting"?(t.openBlock(),t.createElementBlock("div",Bd,[R[19]||(R[19]=t.createElementVNode("div",{class:"spinner-sm"},null,-1)),t.createElementVNode("span",null,t.toDisplayString(i("accountWizard.startingLogin")),1)])):pe.value==="streaming"?(t.openBlock(),t.createBlock(_c,{key:1,session:t.unref(c),"backend-kind":_.value,email:M.value},null,8,["session","backend-kind","email"])):pe.value==="completed"?(t.openBlock(),t.createElementBlock("div",Fd,[R[20]||(R[20]=t.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},[t.createElementVNode("polyline",{points:"20 6 9 17 4 12"})],-1)),t.createElementVNode("span",null,t.toDisplayString(i("accountWizard.loginCompleted")),1)])):pe.value==="error"?(t.openBlock(),t.createElementBlock(t.Fragment,{key:3},[t.createElementVNode("div",Gd,[R[21]||(R[21]=t.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"16",height:"16"},[t.createElementVNode("circle",{cx:"12",cy:"12",r:"10"}),t.createElementVNode("line",{x1:"15",y1:"9",x2:"9",y2:"15"}),t.createElementVNode("line",{x1:"9",y1:"9",x2:"15",y2:"15"})],-1)),t.createElementVNode("span",null,t.toDisplayString(Ae.value),1)]),t.createElementVNode("button",{class:"btn btn-secondary",style:{"margin-top":"12px"},onClick:ce},t.toDisplayString(i("accountWizard.tryAgain")),1)],64)):t.createCommentVNode("",!0)]),t.createElementVNode("div",Yd,[t.createElementVNode("button",{class:"btn btn-secondary",onClick:O},[R[22]||(R[22]=t.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[t.createElementVNode("polyline",{points:"15 18 9 12 15 6"})],-1)),t.createTextVNode(" "+t.toDisplayString(i("common.back")),1)]),t.createElementVNode("button",{class:"btn btn-primary",onClick:C},[t.createTextVNode(t.toDisplayString(pe.value==="idle"?i("common.skip"):i("accountWizard.continueBtn"))+" ",1),R[23]||(R[23]=t.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[t.createElementVNode("polyline",{points:"9 18 15 12 9 6"})],-1))])])])):t.createCommentVNode("",!0),_.value&&p.value==="proxy"?(t.openBlock(),t.createElementBlock("div",Vd,[t.createElementVNode("div",qd,[ye.value&&!V.value?(t.openBlock(),t.createElementBlock("div",Hd,[R[25]||(R[25]=t.createElementVNode("p",{class:"step-description"}," CLIProxyAPI is not installed. Install it to expose this account through an OpenAI-compatible endpoint for other tools. ",-1)),t.createElementVNode("button",{class:"btn btn-primary",disabled:re.value,onClick:Xe},[re.value?(t.openBlock(),t.createElementBlock("div",$d)):t.createCommentVNode("",!0),t.createTextVNode(" "+t.toDisplayString(re.value?"Installing cliproxyapi…":"Install CLIProxyAPI"),1)],8,zd),ue.value?(t.openBlock(),t.createElementBlock("div",Wd,[ue.value.success?(t.openBlock(),t.createElementBlock("p",Kd," Installed"+t.toDisplayString(ue.value.binary_path?` at ${ue.value.binary_path}`:""),1)):(t.openBlock(),t.createElementBlock("div",Qd,[R[24]||(R[24]=t.createElementVNode("p",{class:"error-text"},"Install failed",-1)),ue.value.stderr?(t.openBlock(),t.createElementBlock("pre",Xd,t.toDisplayString(ue.value.stderr),1)):t.createCommentVNode("",!0)]))])):t.createCommentVNode("",!0)])):V.value?(t.openBlock(),t.createElementBlock("div",Zd,[R[32]||(R[32]=t.createElementVNode("h4",{class:"proxy-heading"},"Register with API proxy",-1)),R[33]||(R[33]=t.createElementVNode("p",{class:"step-description"}," Optional: register this account with CLIProxyAPI so other tools can reach it through an OpenAI-compatible endpoint. ",-1)),ie.value==="idle"?(t.openBlock(),t.createElementBlock("button",{key:0,class:"btn btn-primary",onClick:Ze}," Start proxy registration ")):t.createCommentVNode("",!0),ie.value==="running"?(t.openBlock(),t.createElementBlock("div",Jd,[R[26]||(R[26]=t.createElementVNode("div",{class:"spinner-sm"},null,-1)),t.createElementVNode("span",null,t.toDisplayString(Ee.value),1)])):t.createCommentVNode("",!0),ie.value==="device_auth"?(t.openBlock(),t.createElementBlock("div",jd,[R[29]||(R[29]=t.createStaticVNode('<div class="proxy-url-badge" data-v-9fe4368c><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="16" height="16" data-v-9fe4368c><path d="M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6" data-v-9fe4368c></path><polyline points="15 3 21 3 21 9" data-v-9fe4368c></polyline><line x1="10" y1="14" x2="21" y2="3" data-v-9fe4368c></line></svg><span data-v-9fe4368c>A browser window should have opened. Sign in, then the page will redirect to <code data-v-9fe4368c>localhost</code> — that redirect will fail (this is normal). Copy the full URL from the browser address bar and paste it below.</span></div>',1)),Te.value?(t.openBlock(),t.createElementBlock("a",{key:0,href:Te.value,target:"_blank",rel:"noopener",class:"proxy-oauth-link"},t.toDisplayString(Te.value),9,eu)):t.createCommentVNode("",!0),y.value?(t.openBlock(),t.createElementBlock("div",tu,[R[27]||(R[27]=t.createElementVNode("span",{class:"proxy-device-code-label"},"Your device code:",-1)),t.createElementVNode("code",nu,t.toDisplayString(y.value),1)])):t.createCommentVNode("",!0),t.createElementVNode("div",au,[R[28]||(R[28]=t.createElementVNode("p",{class:"proxy-callback-hint"},"If the redirect to localhost fails, paste the callback URL:",-1)),t.createElementVNode("div",ru,[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":R[7]||(R[7]=G=>L.value=G),class:"proxy-callback-input",type:"url",placeholder:"http://localhost:54545/callback?code=..."},null,512),[[t.vModelText,L.value]]),t.createElementVNode("button",{class:"btn btn-primary btn-sm",onClick:Je,disabled:!L.value.trim()}," Submit ",8,iu)]),B.value?(t.openBlock(),t.createElementBlock("p",ou,t.toDisplayString(B.value),1)):t.createCommentVNode("",!0)])])):t.createCommentVNode("",!0),ie.value==="success"?(t.openBlock(),t.createElementBlock("div",su,[R[30]||(R[30]=t.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"16",height:"16"},[t.createElementVNode("polyline",{points:"20 6 9 17 4 12"})],-1)),t.createElementVNode("span",null,t.toDisplayString(Ee.value||"Registered successfully"),1)])):t.createCommentVNode("",!0),ie.value==="skipped"?(t.openBlock(),t.createElementBlock("div",lu,[t.createElementVNode("p",null,t.toDisplayString(Ee.value),1),t.createElementVNode("button",{class:"btn btn-outline btn-sm",onClick:He},"Retry")])):t.createCommentVNode("",!0),ie.value==="error"?(t.openBlock(),t.createElementBlock("div",cu,[t.createElementVNode("p",_u,[R[31]||(R[31]=t.createElementVNode("strong",null,"Error:",-1)),t.createTextVNode(" "+t.toDisplayString(Ee.value),1)]),t.createElementVNode("button",{class:"btn btn-outline btn-sm",onClick:He},"Retry")])):t.createCommentVNode("",!0)])):(t.openBlock(),t.createElementBlock("div",du,[...R[34]||(R[34]=[t.createElementVNode("div",{class:"spinner-sm"},null,-1),t.createElementVNode("span",null,"Checking CLIProxyAPI status…",-1)])]))]),t.createElementVNode("div",uu,[t.createElementVNode("button",{class:"btn btn-secondary",onClick:O},[R[35]||(R[35]=t.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[t.createElementVNode("polyline",{points:"15 18 9 12 15 6"})],-1)),t.createTextVNode(" "+t.toDisplayString(i("common.back")),1)]),t.createElementVNode("button",{class:"btn btn-primary",onClick:C},[t.createTextVNode(t.toDisplayString(ie.value==="success"?i("accountWizard.continueBtn"):i("common.skip"))+" ",1),R[36]||(R[36]=t.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[t.createElementVNode("polyline",{points:"9 18 15 12 9 6"})],-1))])])])):t.createCommentVNode("",!0),_.value&&p.value==="plan"?(t.openBlock(),t.createElementBlock("div",pu,[t.createElementVNode("div",mu,[t.createElementVNode("div",Eu,[t.createElementVNode("div",gu,[t.createElementVNode("span",Su,t.toDisplayString(i("accountWizard.accountName")),1),t.createElementVNode("span",Tu,t.toDisplayString(v.value),1)]),M.value?(t.openBlock(),t.createElementBlock("div",bu,[t.createElementVNode("span",fu,t.toDisplayString(i("accountWizard.email")),1),t.createElementVNode("span",Ru,t.toDisplayString(M.value),1)])):t.createCommentVNode("",!0),P.value?(t.openBlock(),t.createElementBlock("div",Cu,[t.createElementVNode("span",Nu,t.toDisplayString(i("accountWizard.configPath")),1),t.createElementVNode("code",Ou,t.toDisplayString(P.value),1)])):t.createCommentVNode("",!0),D.value?(t.openBlock(),t.createElementBlock("div",vu,[t.createElementVNode("span",hu,t.toDisplayString(i("accountWizard.apiKeyEnv")),1),t.createElementVNode("code",Iu,t.toDisplayString(D.value),1)])):t.createCommentVNode("",!0)]),U.value.length>0?(t.openBlock(),t.createElementBlock("div",Au,[t.createElementVNode("label",yu,t.toDisplayString(i("accountWizard.plan")),1),t.withDirectives(t.createElementVNode("select",{id:"wiz-plan","onUpdate:modelValue":R[8]||(R[8]=G=>Ne.value=G)},[t.createElementVNode("option",Du,t.toDisplayString(i("accountWizard.selectPlan")),1),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(U.value,G=>(t.openBlock(),t.createElementBlock("option",{key:G.id,value:G.id},t.toDisplayString(G.label),9,Mu))),128))],512),[[t.vModelSelect,Ne.value]])])):t.createCommentVNode("",!0),t.createElementVNode("div",Lu,[t.createElementVNode("label",null,[t.withDirectives(t.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":R[9]||(R[9]=G=>se.value=G)},null,512),[[t.vModelCheckbox,se.value]]),t.createTextVNode(" "+t.toDisplayString(i("accountWizard.setDefault")),1)])]),fe.value?(t.openBlock(),t.createElementBlock("div",xu,t.toDisplayString(fe.value),1)):t.createCommentVNode("",!0)]),t.createElementVNode("div",wu,[t.createElementVNode("button",{class:"btn btn-secondary",onClick:O},[R[37]||(R[37]=t.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[t.createElementVNode("polyline",{points:"15 18 9 12 15 6"})],-1)),t.createTextVNode(" "+t.toDisplayString(i("common.back")),1)]),t.createElementVNode("button",{class:"btn btn-primary",disabled:H.value,onClick:je},[H.value?(t.openBlock(),t.createElementBlock("div",Pu)):t.createCommentVNode("",!0),t.createTextVNode(" "+t.toDisplayString(H.value?i("accountWizard.saving"):i("accountWizard.saveAccount")),1)],8,ku)])])):t.createCommentVNode("",!0),_.value&&p.value==="done"?(t.openBlock(),t.createElementBlock("div",Uu,[t.createElementVNode("div",Bu,[R[38]||(R[38]=t.createElementVNode("div",{class:"done-icon"},[t.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"40",height:"40"},[t.createElementVNode("path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14"}),t.createElementVNode("polyline",{points:"22 4 12 14.01 9 11.01"})])],-1)),t.createElementVNode("h4",null,t.toDisplayString(i("accountWizard.accountCreated")),1),t.createElementVNode("p",null,t.toDisplayString(v.value)+" has been added to "+t.toDisplayString(m.value)+".",1),t.createElementVNode("div",Fu,[t.createElementVNode("button",{class:"btn btn-outline",onClick:et},t.toDisplayString(i("accountWizard.addAnother")),1),t.createElementVNode("button",{class:"btn btn-primary",onClick:we},t.toDisplayString(i("accountWizard.doneNextBackend")),1)])])])):t.createCommentVNode("",!0)]))}}),Yu=Se(Gu,[["__scopeId","data-v-9fe4368c"]]),Vu={class:"aia-onboarding"},qu={class:"aia-onboarding__header"},Hu={key:0,class:"aia-onboarding__welcome"},zu={key:1,class:"aia-onboarding__status"},$u={key:2,class:"aia-onboarding__kind-grid"},Wu=["disabled","onClick"],Ku={class:"aia-kind-card__name"},Qu={key:0,class:"aia-kind-card__badge"},Xu={key:1,class:"aia-kind-card__badge aia-kind-card__badge--missing"},Zu={key:3,class:"aia-onboarding__login"},Ju={class:"aia-onboarding__tabs"},ju={class:"aia-label"},ep={key:1,class:"aia-onboarding__oauth-start"},tp={key:4,class:"aia-onboarding__oauth-challenge"},np=["href"],ap={class:"aia-code-display"},rp={key:5,class:"aia-onboarding__status"},ip={key:6,class:"aia-onboarding__success"},op={key:7,class:"aia-onboarding__error"},sp=t.defineComponent({__name:"OnboardingFlow",props:{client:{},kinds:{},supportedFlowsByKind:{}},emits:["done","cancel"],setup(n,{emit:e}){const a=n,r=e,i=Ie.useOnboarding({client:a.client}),s=t.ref(""),l=t.ref("api_key"),o=[{id:"claude",display:"Claude"},{id:"opencode",display:"OpenCode"},{id:"gemini",display:"Gemini"},{id:"codex",display:"Codex"}],d={claude:["api_key"],opencode:["api_key"],gemini:["api_key","oauth_device"],codex:["api_key","oauth_device"]},c=t.computed(()=>a.kinds??o),_=t.computed(()=>a.supportedFlowsByKind??d),u=t.computed(()=>{const C=i.selectedKind.value;return C?_.value[C]??["api_key"]:["api_key"]});async function m(){await i.start(),i.state.value!=="error"&&await i.detect()}async function p(C){await i.pickKind(C);const O=u.value;l.value=O[0]??"api_key"}async function E(){await i.submitApiKey(s.value)}async function T(){await i.submitOauthDevice()}t.watch(()=>i.state.value,C=>{C==="done"&&i.createdBackendId.value&&r("done",i.createdBackendId.value)},{immediate:!1});function g(){i.reset()}function b(){var O;const C=(O=i.oauthChallenge.value)==null?void 0:O.user_code;C&&typeof navigator<"u"&&navigator.clipboard&&navigator.clipboard.writeText(C)}function f(C){var O,I;return(I=(O=i.kinds.value)==null?void 0:O.find(v=>v.id===C))==null?void 0:I.detection}return(C,O)=>{var I,v,M;return t.openBlock(),t.createElementBlock("section",Vu,[t.createElementVNode("header",qu,[t.renderSlot(C.$slots,"header",{},()=>[O[4]||(O[4]=t.createElementVNode("h2",null,"Set up an AI backend",-1))],!0)]),t.unref(i).state.value==="idle"?(t.openBlock(),t.createElementBlock("div",Hu,[O[5]||(O[5]=t.createElementVNode("p",null,"Connect one of the supported AI CLIs to get started.",-1)),t.createElementVNode("button",{type:"button",class:"aia-btn aia-btn--primary",onClick:m}," Get started ")])):t.unref(i).state.value==="started"||t.unref(i).state.value==="detecting"?(t.openBlock(),t.createElementBlock("div",zu," Detecting installed CLIs… ")):t.unref(i).state.value==="picking_kind"?(t.openBlock(),t.createElementBlock("div",$u,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(c.value,A=>{var k,P,x,q;return t.openBlock(),t.createElementBlock("button",{key:A.id,type:"button",class:t.normalizeClass(["aia-kind-card",{"aia-kind-card--installed":(k=f(A.id))==null?void 0:k.installed,"aia-kind-card--missing":f(A.id)&&!((P=f(A.id))!=null&&P.installed)}]),disabled:!((x=f(A.id))!=null&&x.installed),onClick:te=>p(A.id)},[t.createElementVNode("span",Ku,t.toDisplayString(A.display),1),(q=f(A.id))!=null&&q.installed?(t.openBlock(),t.createElementBlock("span",Qu," Installed ")):(t.openBlock(),t.createElementBlock("span",Xu," Not installed "))],10,Wu)}),128))])):t.unref(i).state.value==="entering_credential"?(t.openBlock(),t.createElementBlock("div",Zu,[t.createElementVNode("div",Ju,[u.value.includes("api_key")?(t.openBlock(),t.createElementBlock("button",{key:0,type:"button",class:t.normalizeClass(["aia-tab",{"aia-tab--active":l.value==="api_key"}]),onClick:O[0]||(O[0]=A=>l.value="api_key")}," API key ",2)):t.createCommentVNode("",!0),u.value.includes("oauth_device")?(t.openBlock(),t.createElementBlock("button",{key:1,type:"button",class:t.normalizeClass(["aia-tab",{"aia-tab--active":l.value==="oauth_device"}]),onClick:O[1]||(O[1]=A=>l.value="oauth_device")}," Login with browser ",2)):t.createCommentVNode("",!0)]),l.value==="api_key"?(t.openBlock(),t.createElementBlock("form",{key:0,class:"aia-onboarding__form",onSubmit:t.withModifiers(E,["prevent"])},[t.createElementVNode("label",ju,[O[6]||(O[6]=t.createTextVNode(" API key ",-1)),t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":O[2]||(O[2]=A=>s.value=A),type:"password",class:"aia-input",autocomplete:"off",required:""},null,512),[[t.vModelText,s.value]])]),O[7]||(O[7]=t.createElementVNode("button",{type:"submit",class:"aia-btn aia-btn--primary"},"Connect",-1))],32)):l.value==="oauth_device"?(t.openBlock(),t.createElementBlock("div",ep,[O[8]||(O[8]=t.createElementVNode("p",null,"You'll be shown a verification URL and code. Open it in your browser to sign in.",-1)),t.createElementVNode("button",{type:"button",class:"aia-btn aia-btn--primary",onClick:T}," Start browser login ")])):t.createCommentVNode("",!0)])):t.unref(i).state.value==="oauth_challenge"||t.unref(i).state.value==="oauth_polling"?(t.openBlock(),t.createElementBlock("div",tp,[O[9]||(O[9]=t.createElementVNode("p",null,"Open this URL in your browser and enter the code:",-1)),t.createElementVNode("a",{href:(I=t.unref(i).oauthChallenge.value)==null?void 0:I.verification_uri,target:"_blank",rel:"noopener noreferrer",class:"aia-onboarding__oauth-uri"},t.toDisplayString((v=t.unref(i).oauthChallenge.value)==null?void 0:v.verification_uri),9,np),t.createElementVNode("div",ap,[t.createElementVNode("code",null,t.toDisplayString((M=t.unref(i).oauthChallenge.value)==null?void 0:M.user_code),1),t.createElementVNode("button",{type:"button",class:"aia-copy-btn",onClick:b},"Copy")]),O[10]||(O[10]=t.createElementVNode("p",{class:"aia-onboarding__hint"},"Waiting for you to complete sign-in…",-1)),t.createElementVNode("button",{type:"button",class:"aia-btn",onClick:O[3]||(O[3]=(...A)=>t.unref(i).cancelOAuth&&t.unref(i).cancelOAuth(...A))},"Cancel")])):t.unref(i).state.value==="validating"?(t.openBlock(),t.createElementBlock("div",rp," Validating credential… ")):t.unref(i).state.value==="done"?(t.openBlock(),t.createElementBlock("div",ip,[t.renderSlot(C.$slots,"success",{},()=>[O[11]||(O[11]=t.createElementVNode("p",null,"✓ Connected successfully",-1))],!0)])):t.unref(i).state.value==="error"?(t.openBlock(),t.createElementBlock("div",op,[t.createElementVNode("p",null,t.toDisplayString(t.unref(i).error.value),1),t.createElementVNode("button",{type:"button",class:"aia-btn",onClick:g},"Try again")])):t.createCommentVNode("",!0)])}}}),lp=Se(sp,[["__scopeId","data-v-8c20d7e7"]]),cp=["value","type","onInput"],_p={class:"aia-actions"},dp=["disabled"],up={key:0,class:"aia-error"},pp=t.defineComponent({__name:"AccountEditForm",props:{account:{},metadata:{}},emits:["saved","cancel"],setup(n,{emit:e}){const a=n,r=e,{client:i}=Ie.useAiAccounts(),s=t.reactive({display_name:a.account.display_name,config:{...a.account.config}}),l=t.ref(!1),o=t.ref(null),d=t.computed(()=>{var _;return((_=a.metadata.config_schema)==null?void 0:_.properties)??{}});async function c(){l.value=!0,o.value=null;try{const _=await i.updateBackend(a.account.id,{display_name:s.display_name,config:s.config});r("saved",_)}catch(_){o.value=_ instanceof Error?_.message:String(_)}finally{l.value=!1}}return(_,u)=>(t.openBlock(),t.createElementBlock("form",{class:"aia-account-edit",onSubmit:t.withModifiers(c,["prevent"])},[t.createElementVNode("label",null,[u[2]||(u[2]=t.createTextVNode(" Display name ",-1)),t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":u[0]||(u[0]=m=>s.display_name=m),type:"text",required:""},null,512),[[t.vModelText,s.display_name]])]),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(d.value,(m,p)=>(t.openBlock(),t.createElementBlock("div",{key:p,class:"aia-field"},[t.createElementVNode("label",null,[t.createTextVNode(t.toDisplayString(p)+" ",1),t.createElementVNode("input",{value:s.config[p]??"",type:String(p).toLowerCase().includes("secret")||String(p).toLowerCase().includes("key")?"password":"text",onInput:E=>s.config[p]=E.target.value},null,40,cp)])]))),128)),t.createElementVNode("div",_p,[t.createElementVNode("button",{type:"submit",disabled:l.value},t.toDisplayString(l.value?"Saving…":"Save"),9,dp),t.createElementVNode("button",{type:"button",onClick:u[1]||(u[1]=m=>r("cancel"))},"Cancel")]),o.value?(t.openBlock(),t.createElementBlock("p",up,t.toDisplayString(o.value),1)):t.createCommentVNode("",!0)],32))}}),mp=Se(pp,[["__scopeId","data-v-56b7b8c3"]]),Ep={class:"aia-chat-message__role"},gp={class:"aia-chat-message__content"},Sp={key:0,class:"aia-chat-message__meta"},Tp={key:0},bp={key:1},fp={key:2},Rp=t.defineComponent({__name:"ChatMessage",props:{role:{},content:{},model:{},tokensIn:{},tokensOut:{},streaming:{type:Boolean}},setup(n){return(e,a)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["aia-chat-message",[`aia-chat-message--${n.role}`,{"aia-chat-message--streaming":n.streaming}]])},[t.createElementVNode("div",Ep,t.toDisplayString(n.role),1),t.createElementVNode("div",gp,t.toDisplayString(n.content),1),n.tokensIn||n.tokensOut?(t.openBlock(),t.createElementBlock("div",Sp,[n.tokensIn?(t.openBlock(),t.createElementBlock("span",Tp,t.toDisplayString(n.tokensIn)+" in",1)):t.createCommentVNode("",!0),n.tokensOut?(t.openBlock(),t.createElementBlock("span",bp,t.toDisplayString(n.tokensOut)+" out",1)):t.createCommentVNode("",!0),n.model?(t.openBlock(),t.createElementBlock("span",fp,t.toDisplayString(n.model),1)):t.createCommentVNode("",!0)])):t.createCommentVNode("",!0)],2))}}),Wr=Se(Rp,[["__scopeId","data-v-52897838"]]),Cp={class:"aia-chat-panel"},Np={class:"aia-chat-panel__messages"},Op={class:"aia-chat-panel__input"},vp=["disabled"],hp=["disabled"],Ip=t.defineComponent({__name:"ChatPanel",props:{messages:{},streamingText:{},isStreaming:{type:Boolean},disabled:{type:Boolean}},emits:["send"],setup(n,{emit:e}){const a=n,r=e,i=t.ref(""),s=t.ref(null);function l(){const d=i.value.trim();!d||a.disabled||a.isStreaming||(r("send",d),i.value="")}function o(d){d.key==="Enter"&&!d.shiftKey&&(d.preventDefault(),l())}return t.watch(()=>a.messages.length,()=>t.nextTick(()=>{var d;return(d=s.value)==null?void 0:d.scrollIntoView({behavior:"smooth"})})),(d,c)=>(t.openBlock(),t.createElementBlock("div",Cp,[t.createElementVNode("div",Np,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(n.messages,_=>(t.openBlock(),t.createBlock(Wr,{key:_.id,role:_.role,content:_.content,model:_.model||void 0,"tokens-in":_.tokens_in||void 0,"tokens-out":_.tokens_out||void 0},null,8,["role","content","model","tokens-in","tokens-out"]))),128)),n.isStreaming&&n.streamingText?(t.openBlock(),t.createBlock(Wr,{key:0,role:"assistant",content:n.streamingText,streaming:!0},null,8,["content"])):t.createCommentVNode("",!0),t.createElementVNode("div",{ref_key:"messagesEnd",ref:s},null,512)]),t.createElementVNode("div",Op,[t.withDirectives(t.createElementVNode("textarea",{"onUpdate:modelValue":c[0]||(c[0]=_=>i.value=_),class:"aia-chat-panel__textarea",placeholder:"Type a message...",rows:"2",disabled:n.disabled||n.isStreaming,onKeydown:o},null,40,vp),[[t.vModelText,i.value]]),t.createElementVNode("button",{class:"aia-chat-panel__send",disabled:!i.value.trim()||n.disabled||n.isStreaming,onClick:l},"Send",8,hp)])]))}}),Ap=Se(Ip,[["__scopeId","data-v-2904376c"]]);function Jr(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var Be=Jr();function uc(n){Be=n}var ke={exec:()=>null};function K(n,e=""){let a=typeof n=="string"?n:n.source,r={replace:(i,s)=>{let l=typeof s=="string"?s:s.source;return l=l.replace(be.caret,"$1"),a=a.replace(i,l),r},getRegex:()=>new RegExp(a,e)};return r}var yp=(()=>{try{return!!new RegExp("(?<=1)(?<!1)")}catch{return!1}})(),be={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:n=>new RegExp(`^( {0,3}${n})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}#`),htmlBeginRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}<(?:[a-z].*>|!--)`,"i"),blockquoteBeginRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}>`)},Dp=/^(?:[ \t]*(?:\n|$))+/,Mp=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Lp=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Qe=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,xp=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,jr=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,pc=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,mc=K(pc).replace(/bull/g,jr).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),wp=K(pc).replace(/bull/g,jr).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),ei=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,kp=/^[^\n]+/,ti=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,Pp=K(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",ti).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Up=K(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,jr).getRegex(),ct="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",ni=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,Bp=K("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",ni).replace("tag",ct).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Ec=K(ei).replace("hr",Qe).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",ct).getRegex(),Fp=K(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Ec).getRegex(),ai={blockquote:Fp,code:Mp,def:Pp,fences:Lp,heading:xp,hr:Qe,html:Bp,lheading:mc,list:Up,newline:Dp,paragraph:Ec,table:ke,text:kp},Ti=K("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Qe).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",ct).getRegex(),Gp={...ai,lheading:wp,table:Ti,paragraph:K(ei).replace("hr",Qe).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Ti).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",ct).getRegex()},Yp={...ai,html:K(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",ni).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:ke,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:K(ei).replace("hr",Qe).replace("heading",` *#{1,6} *[^
2
2
  ]`).replace("lheading",mc).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},Vp=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,qp=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,gc=/^( {2,}|\\)\n(?!\s*$)/,Hp=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,qe=/[\p{P}\p{S}]/u,_t=/[\s\p{P}\p{S}]/u,ri=/[^\s\p{P}\p{S}]/u,zp=K(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,_t).getRegex(),Sc=/(?!~)[\p{P}\p{S}]/u,$p=/(?!~)[\s\p{P}\p{S}]/u,Wp=/(?:[^\s\p{P}\p{S}]|~)/u,Kp=K(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",yp?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),Tc=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,Qp=K(Tc,"u").replace(/punct/g,qe).getRegex(),Xp=K(Tc,"u").replace(/punct/g,Sc).getRegex(),bc="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",Zp=K(bc,"gu").replace(/notPunctSpace/g,ri).replace(/punctSpace/g,_t).replace(/punct/g,qe).getRegex(),Jp=K(bc,"gu").replace(/notPunctSpace/g,Wp).replace(/punctSpace/g,$p).replace(/punct/g,Sc).getRegex(),jp=K("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,ri).replace(/punctSpace/g,_t).replace(/punct/g,qe).getRegex(),em=K(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,qe).getRegex(),tm="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",nm=K(tm,"gu").replace(/notPunctSpace/g,ri).replace(/punctSpace/g,_t).replace(/punct/g,qe).getRegex(),am=K(/\\(punct)/,"gu").replace(/punct/g,qe).getRegex(),rm=K(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),im=K(ni).replace("(?:-->|$)","-->").getRegex(),om=K("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",im).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),it=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,sm=K(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",it).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),fc=K(/^!?\[(label)\]\[(ref)\]/).replace("label",it).replace("ref",ti).getRegex(),Rc=K(/^!?\[(ref)\](?:\[\])?/).replace("ref",ti).getRegex(),lm=K("reflink|nolink(?!\\()","g").replace("reflink",fc).replace("nolink",Rc).getRegex(),bi=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,ii={_backpedal:ke,anyPunctuation:am,autolink:rm,blockSkip:Kp,br:gc,code:qp,del:ke,delLDelim:ke,delRDelim:ke,emStrongLDelim:Qp,emStrongRDelimAst:Zp,emStrongRDelimUnd:jp,escape:Vp,link:sm,nolink:Rc,punctuation:zp,reflink:fc,reflinkSearch:lm,tag:om,text:Hp,url:ke},cm={...ii,link:K(/^!?\[(label)\]\((.*?)\)/).replace("label",it).getRegex(),reflink:K(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",it).getRegex()},Kr={...ii,emStrongRDelimAst:Jp,emStrongLDelim:Xp,delLDelim:em,delRDelim:nm,url:K(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",bi).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:K(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",bi).getRegex()},_m={...Kr,br:K(gc).replace("{2,}","*").getRegex(),text:K(Kr.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},nt={normal:ai,gfm:Gp,pedantic:Yp},ze={normal:ii,gfm:Kr,breaks:_m,pedantic:cm},dm={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},fi=n=>dm[n];function Oe(n,e){if(e){if(be.escapeTest.test(n))return n.replace(be.escapeReplace,fi)}else if(be.escapeTestNoEncode.test(n))return n.replace(be.escapeReplaceNoEncode,fi);return n}function Ri(n){try{n=encodeURI(n).replace(be.percentDecode,"%")}catch{return null}return n}function Ci(n,e){var s;let a=n.replace(be.findPipe,(l,o,d)=>{let c=!1,_=o;for(;--_>=0&&d[_]==="\\";)c=!c;return c?"|":" |"}),r=a.split(be.splitPipe),i=0;if(r[0].trim()||r.shift(),r.length>0&&!((s=r.at(-1))!=null&&s.trim())&&r.pop(),e)if(r.length>e)r.splice(e);else for(;r.length<e;)r.push("");for(;i<r.length;i++)r[i]=r[i].trim().replace(be.slashPipe,"|");return r}function Le(n,e,a){let r=n.length;if(r===0)return"";let i=0;for(;i<r&&n.charAt(r-i-1)===e;)i++;return n.slice(0,r-i)}function Ni(n){let e=n.split(`
3
3
  `),a=e.length-1;for(;a>=0&&!e[a].trim();)a--;return e.length-a<=2?n:e.slice(0,a+1).join(`
4
4
  `)}function um(n,e){if(n.indexOf(e[1])===-1)return-1;let a=0;for(let r=0;r<n.length;r++)if(n[r]==="\\")r++;else if(n[r]===e[0])a++;else if(n[r]===e[1]&&(a--,a<0))return r;return a>0?-2:-1}function pm(n,e=0){let a=e,r="";for(let i of n)if(i===" "){let s=4-a%4;r+=" ".repeat(s),a+=s}else r+=i,a++;return r}function Oi(n,e,a,r,i){let s=e.href,l=e.title||null,o=n[1].replace(i.other.outputLinkReplace,"$1");r.state.inLink=!0;let d={type:n[0].charAt(0)==="!"?"image":"link",raw:a,href:s,title:l,text:o,tokens:r.inlineTokens(o)};return r.state.inLink=!1,d}function mm(n,e,a){let r=n.match(a.other.indentCodeCompensation);if(r===null)return e;let i=r[1];return e.split(`
@@ -75,4 +75,4 @@ ${l.content}`).join(`
75
75
 
76
76
  ---
77
77
 
78
- `)}function i(s){const l=r(s),o=new Blob([l],{type:"text/plain"}),d=URL.createObjectURL(o),c=document.createElement("a");c.href=d,c.download=`conversation-${new Date().toISOString().slice(0,19)}.txt`,c.click(),URL.revokeObjectURL(d)}return(s,l)=>(t.openBlock(),t.createElementBlock("div",YT,[t.createElementVNode("button",{class:"action-btn action-copy",title:"Copy message",onClick:l[0]||(l[0]=o=>a(n.content))},[e.value==="idle"?(t.openBlock(),t.createElementBlock("span",VT,"Copy")):e.value==="success"?(t.openBlock(),t.createElementBlock("span",qT,"Copied")):(t.openBlock(),t.createElementBlock("span",HT,"Failed"))]),n.allMessages?(t.openBlock(),t.createElementBlock("button",{key:0,class:"action-btn action-copy-all",title:"Copy conversation",onClick:l[1]||(l[1]=o=>a(r(n.allMessages)))}," Copy All ")):t.createCommentVNode("",!0),n.allMessages?(t.openBlock(),t.createElementBlock("button",{key:1,class:"action-btn action-export",title:"Export conversation",onClick:l[2]||(l[2]=o=>i(n.allMessages))}," Export ")):t.createCommentVNode("",!0)]))}}),wc=Se(zT,[["__scopeId","data-v-56c16ef7"]]),$T={class:"aia-bubble__avatar"},WT={class:"aia-bubble__body"},KT={class:"aia-bubble__header"},QT={class:"aia-bubble__role"},XT={key:0,class:"aia-bubble__backend"},ZT={key:1,class:"aia-bubble__time"},JT=["innerHTML"],jT=t.defineComponent({__name:"ChatBubble",props:{role:{},content:{},backend:{},timestamp:{},streaming:{type:Boolean},showActions:{type:Boolean},allMessages:{}},setup(n){const e={code({text:l,lang:o}){let d;return o&&$r.getLanguage(o)?d=$r.highlight(l,{language:o}).value:d=$r.highlightAuto(l).value,`<pre><code${o?` class="language-${o}"`:""}>${d}</code></pre>`}};Z.use({renderer:e});const a=n,r=t.computed(()=>Z.parse(a.content||"")),i=t.computed(()=>{if(!a.timestamp)return"";try{return new Date(a.timestamp).toLocaleTimeString()}catch{return""}});function s(l){var c;const o=l.target.closest(".aia-copy-btn");if(!o)return;const d=(c=o.closest(".aia-code-block"))==null?void 0:c.querySelector("code");d&&navigator.clipboard.writeText(d.textContent||"")}return(l,o)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["aia-bubble",[`aia-bubble--${n.role}`,{"aia-bubble--streaming":n.streaming}]])},[t.createElementVNode("div",$T,t.toDisplayString(n.role==="user"?"U":n.role==="tool"?"T":"AI"),1),t.createElementVNode("div",WT,[t.createElementVNode("div",KT,[t.createElementVNode("span",QT,t.toDisplayString(n.role),1),n.backend?(t.openBlock(),t.createElementBlock("span",XT,t.toDisplayString(n.backend),1)):t.createCommentVNode("",!0),i.value?(t.openBlock(),t.createElementBlock("span",ZT,t.toDisplayString(i.value),1)):t.createCommentVNode("",!0)]),t.createElementVNode("div",{class:"aia-bubble__content",onClick:s,innerHTML:r.value},null,8,JT)]),n.showActions?(t.openBlock(),t.createBlock(wc,t.mergeProps({key:0,content:n.content},n.allMessages!==void 0?{allMessages:n.allMessages}:{}),null,16,["content"])):t.createCommentVNode("",!0)],2))}}),Zr=Se(jT,[["__scopeId","data-v-ffa5ceee"]]),eb={class:"aia-controls"},tb={class:"aia-controls__group"},nb=["value"],ab=["value"],rb={class:"aia-controls__group"},ib=["disabled"],ob={value:""},sb=["value"],lb={class:"aia-controls__group"},cb=["disabled","value"],_b={value:""},db=["value"],ub={class:"aia-controls__group aia-controls__group--mode"},pb={class:"aia-controls__modes"},mb=["onClick"],Eb=t.defineComponent({__name:"ChatControls",props:{chatMode:{},selectedBackend:{},selectedModel:{},backends:{}},emits:["update:chatMode","update:selectedBackend","update:selectedModel"],setup(n,{emit:e}){const a=n,r=e,i=[{value:"single",label:"Single"},{value:"all",label:"All"},{value:"compound",label:"Compound"}],s=t.computed(()=>!a.selectedBackend),l=t.computed(()=>a.backends.find(c=>c.kind===a.selectedBackend)),o=t.computed(()=>{var c;return((c=l.value)==null?void 0:c.accounts)??[]}),d=t.computed(()=>{var c;return((c=l.value)==null?void 0:c.models)??[]});return(c,_)=>(t.openBlock(),t.createElementBlock("div",eb,[t.createElementVNode("div",tb,[_[3]||(_[3]=t.createElementVNode("label",{class:"aia-controls__label"},"Backend",-1)),t.createElementVNode("select",{class:"aia-controls__select",value:n.selectedBackend??"",onChange:_[0]||(_[0]=u=>r("update:selectedBackend",u.target.value||null))},[_[2]||(_[2]=t.createElementVNode("option",{value:""},"Auto",-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(n.backends,u=>(t.openBlock(),t.createElementBlock("option",{key:u.kind,value:u.kind},t.toDisplayString(u.displayName),9,ab))),128))],40,nb)]),t.createElementVNode("div",rb,[_[4]||(_[4]=t.createElementVNode("label",{class:"aia-controls__label"},"Account",-1)),t.createElementVNode("select",{class:"aia-controls__select",disabled:s.value},[t.createElementVNode("option",ob,t.toDisplayString(s.value?"--":"Default"),1),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(o.value,u=>(t.openBlock(),t.createElementBlock("option",{key:u,value:u},t.toDisplayString(u),9,sb))),128))],8,ib)]),t.createElementVNode("div",lb,[_[5]||(_[5]=t.createElementVNode("label",{class:"aia-controls__label"},"Model",-1)),t.createElementVNode("select",{class:"aia-controls__select",disabled:s.value,value:n.selectedModel??"",onChange:_[1]||(_[1]=u=>r("update:selectedModel",u.target.value||null))},[t.createElementVNode("option",_b,t.toDisplayString(s.value?"--":"Default"),1),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(d.value,u=>(t.openBlock(),t.createElementBlock("option",{key:u,value:u},t.toDisplayString(u),9,db))),128))],40,cb)]),t.createElementVNode("div",ub,[_[6]||(_[6]=t.createElementVNode("label",{class:"aia-controls__label"},"Mode",-1)),t.createElementVNode("div",pb,[(t.openBlock(),t.createElementBlock(t.Fragment,null,t.renderList(i,u=>t.createElementVNode("button",{key:u.value,class:t.normalizeClass(["aia-controls__mode-btn",{"aia-controls__mode-btn--active":n.chatMode===u.value}]),onClick:m=>r("update:chatMode",u.value)},t.toDisplayString(u.label),11,mb)),64))])])]))}}),kc=Se(Eb,[["__scopeId","data-v-85010e74"]]),gb={class:"aia-input"},Sb=["placeholder","disabled"],Tb=["disabled"],bb=t.defineComponent({__name:"ChatInput",props:{placeholder:{default:"Type a message..."},disabled:{type:Boolean},isStreaming:{type:Boolean}},emits:["send"],setup(n,{emit:e}){const a=n,r=e,i=t.ref(""),s=t.ref(null);function l(){const c=i.value.trim();!c||a.disabled||a.isStreaming||(r("send",c),i.value="",t.nextTick(d))}function o(c){c.key==="Enter"&&!c.shiftKey&&(c.preventDefault(),l())}function d(){const c=s.value;c&&(c.style.height="auto",c.style.height=Math.min(c.scrollHeight,120)+"px")}return t.watch(i,()=>t.nextTick(d)),(c,_)=>(t.openBlock(),t.createElementBlock("div",gb,[t.withDirectives(t.createElementVNode("textarea",{ref_key:"textareaRef",ref:s,"onUpdate:modelValue":_[0]||(_[0]=u=>i.value=u),class:"aia-input__textarea",placeholder:n.placeholder,rows:"1",disabled:n.disabled||n.isStreaming,onKeydown:o,onInput:d},null,40,Sb),[[t.vModelText,i.value]]),t.createElementVNode("button",{class:"aia-input__send",disabled:!i.value.trim()||n.disabled||n.isStreaming,onClick:l},t.toDisplayString(n.isStreaming?"...":"Send"),9,Tb)]))}}),Pc=Se(bb,[["__scopeId","data-v-51976e76"]]),fb={class:"aia-responses"},Rb=["open"],Cb={class:"aia-resp__header"},Nb=["innerHTML"],Ob={key:0,class:"aia-resp__error"},vb=t.defineComponent({__name:"AllModeResponses",props:{responses:{},collapsible:{type:Boolean,default:!1}},setup(n){const e=n,a={claude:{bg:"rgba(139,92,246,0.15)",fg:"#a78bfa",label:"Claude"},codex:{bg:"rgba(16,185,129,0.15)",fg:"#34d399",label:"Codex"},gemini:{bg:"rgba(96,165,250,0.15)",fg:"#60a5fa",label:"Gemini"},opencode:{bg:"rgba(251,191,36,0.15)",fg:"#fbbf24",label:"OpenCode"}};function r(o){return a[o]??{bg:"rgba(161,161,170,0.15)",fg:"#a1a1aa",label:o}}function i(o){switch(o){case"streaming":return{text:"Streaming",cls:"aia-resp__badge--streaming"};case"complete":return{text:"Done",cls:"aia-resp__badge--complete"};case"error":return{text:"Error",cls:"aia-resp__badge--error"};case"timeout":return{text:"Timeout",cls:"aia-resp__badge--timeout"};default:return{text:o,cls:""}}}const s=t.computed(()=>Array.from(e.responses.entries()));function l(o){return Z.parse(o||"")}return(o,d)=>(t.openBlock(),t.createElementBlock("div",fb,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.value,([c,_])=>(t.openBlock(),t.createElementBlock("div",{key:c,class:"aia-resp",style:t.normalizeStyle({"--resp-bg":r(_.backend).bg,"--resp-fg":r(_.backend).fg})},[t.createElementVNode("details",{open:!n.collapsible||void 0},[t.createElementVNode("summary",Cb,[t.createElementVNode("span",{class:"aia-resp__name",style:t.normalizeStyle({color:r(_.backend).fg})},t.toDisplayString(r(_.backend).label),5),t.createElementVNode("span",{class:t.normalizeClass(["aia-resp__badge",i(_.status).cls])},t.toDisplayString(i(_.status).text),3)]),t.createElementVNode("div",{class:"aia-resp__body",innerHTML:l(_.content)},null,8,Nb),_.error?(t.openBlock(),t.createElementBlock("div",Ob,t.toDisplayString(_.error),1)):t.createCommentVNode("",!0)],8,Rb)],4))),128))]))}}),Uc=Se(vb,[["__scopeId","data-v-bde6df1f"]]),hb={class:"aia-synth__header"},Ib={key:0,class:"aia-synth__via"},Ab={key:0,class:"aia-synth__sources"},yb=["innerHTML"],Db={key:1,class:"aia-synth__error"},Mb=t.defineComponent({__name:"CompoundSynthesis",props:{state:{}},setup(n){const e=n,a=t.computed(()=>Z.parse(e.state.content||"")),r=t.computed(()=>e.state.status==="streaming");function i(s){switch(s){case"waiting":return{text:"Waiting...",cls:"aia-synth__badge--waiting"};case"streaming":return{text:"Synthesizing",cls:"aia-synth__badge--streaming"};case"complete":return{text:"Complete",cls:"aia-synth__badge--complete"};case"error":return{text:"Error",cls:"aia-synth__badge--error"};default:return{text:s,cls:""}}}return(s,l)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["aia-synth",{"aia-synth--streaming":r.value}])},[t.createElementVNode("div",hb,[l[0]||(l[0]=t.createElementVNode("span",{class:"aia-synth__label"},"Compound Synthesis",-1)),n.state.primaryBackend?(t.openBlock(),t.createElementBlock("span",Ib,"via "+t.toDisplayString(n.state.primaryBackend),1)):t.createCommentVNode("",!0),t.createElementVNode("span",{class:t.normalizeClass(["aia-synth__badge",i(n.state.status).cls])},t.toDisplayString(i(n.state.status).text),3)]),n.state.backendsCollected.length?(t.openBlock(),t.createElementBlock("div",Ab," Sources: "+t.toDisplayString(n.state.backendsCollected.join(", ")),1)):t.createCommentVNode("",!0),t.createElementVNode("div",{class:"aia-synth__content",innerHTML:a.value},null,8,yb),n.state.error?(t.openBlock(),t.createElementBlock("div",Db,t.toDisplayString(n.state.error),1)):t.createCommentVNode("",!0)],2))}}),Bc=Se(Mb,[["__scopeId","data-v-446c73a3"]]),Lb={class:"finalization-banner"},xb={class:"banner-content"},wb={class:"banner-title"},kb={class:"banner-description"},Pb=["disabled"],Ub=t.defineComponent({__name:"FinalizationBanner",props:{title:{},buttonLabel:{},entityLabel:{},entityName:{},isFinalizing:{type:Boolean,default:!1}},emits:["finalize"],setup(n,{emit:e}){const a=e;return(r,i)=>(t.openBlock(),t.createElementBlock("div",Lb,[t.createElementVNode("div",xb,[t.createElementVNode("h3",wb,t.toDisplayString(n.title),1),t.createElementVNode("p",kb," Your "+t.toDisplayString(n.entityLabel)+t.toDisplayString(n.entityName?": "+n.entityName:"")+" is ready. Click the button to finalize. ",1)]),t.createElementVNode("button",{class:"banner-button",disabled:n.isFinalizing,onClick:i[0]||(i[0]=s=>a("finalize"))},t.toDisplayString(n.isFinalizing?"Creating...":n.buttonLabel),9,Pb)]))}}),Fc=Se(Ub,[["__scopeId","data-v-bde99def"]]),Bb={class:"process-group-label"},Fb={key:0,class:"process-group-time"},Gb={class:"process-group-chevron"},Yb={key:0,class:"process-group-body"},Vb=t.defineComponent({__name:"ProcessGroup",props:{id:{},type:{},label:{},timestamp:{},isExpanded:{type:Boolean,default:!0}},emits:["toggle"],setup(n,{emit:e}){const a=e,r={tool_call:"Tool",reasoning:"Thinking",code_execution:"Code"},i={tool_call:"var(--aia-cyan, #22d3ee)",reasoning:"var(--aia-violet, #a78bfa)",code_execution:"var(--aia-amber, #fbbf24)"};return(s,l)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["process-group",[`process-group--${n.type}`]])},[t.createElementVNode("div",{class:"process-group-header",onClick:l[0]||(l[0]=o=>a("toggle"))},[t.createElementVNode("span",{class:"process-group-badge",style:t.normalizeStyle({background:i[n.type]})},t.toDisplayString(r[n.type]),5),t.createElementVNode("span",Bb,t.toDisplayString(n.label),1),n.timestamp?(t.openBlock(),t.createElementBlock("span",Fb,t.toDisplayString(new Date(n.timestamp).toLocaleTimeString()),1)):t.createCommentVNode("",!0),t.createElementVNode("span",Gb,t.toDisplayString(n.isExpanded?"▼":"▶"),1)]),n.isExpanded?(t.openBlock(),t.createElementBlock("div",Yb,[t.renderSlot(s.$slots,"default",{},void 0,!0)])):t.createCommentVNode("",!0)],2))}}),Gc=Se(Vb,[["__scopeId","data-v-4607873c"]]),qb={class:"aia-smart-panel"},Hb={ref:"scroll.containerRef",class:"aia-smart-panel__messages"},zb={key:0,class:"aia-smart-panel__welcome"},$b={class:"aia-smart-panel__welcome-title"},Wb={class:"aia-smart-panel__welcome-sub"},Kb={key:4,class:"process-groups"},Qb={key:2,class:"aia-smart-panel__error"},Xb=t.defineComponent({__name:"AiChatPanel",props:{density:{default:"minimal"},defaultBackend:{},defaultModel:{},placeholder:{default:"Type a message..."},welcomeTitle:{default:"AI Chat"},welcomeSubtitle:{default:"Send a message to get started"},readOnly:{type:Boolean},entityLabel:{},bannerTitle:{},bannerButtonLabel:{},configParser:{},showProcessGroups:{type:Boolean,default:void 0},showActions:{type:Boolean,default:void 0}},emits:["finalize"],setup(n,{emit:e}){const a=n,r=t.computed(()=>a.showProcessGroups??a.density==="detailed"),i=t.computed(()=>a.showActions??a.density==="detailed"),s=e,l=Ie.useSmartChat(),o=Ie.useSmartScroll(),{client:d}=Ie.useAiAccounts(),c=t.ref([]),_=t.computed(()=>Array.from(new Set(c.value.map(E=>E.kind))).map(E=>{const T=c.value.filter(g=>g.kind===E);return{kind:E,displayName:E,accounts:T.map(g=>g.id),models:[]}}));t.watchEffect(()=>{l.setConfigParser(a.configParser??null)}),t.onMounted(async()=>{try{const E=await d.listBackends();c.value=E.items??[]}catch{}});function u(E){const T=E?c.value.filter(g=>g.kind===E):c.value;return T.find(g=>g.status==="ready")??T[0]??null}async function m(E){if(!l.sessionId.value){if(c.value.length===0)try{const f=await d.listBackends();c.value=f.items??[]}catch{l.error.value="Unable to load backends from sidecar";return}const T=l.selectedBackend.value??a.defaultBackend??null,g=u(T);if(!g){l.error.value="No backend available — add an account first";return}const b=l.selectedModel.value??a.defaultModel??"";try{await l.createSession(g.id,b)}catch(f){l.error.value=f instanceof Error?f.message:String(f);return}}await l.send(E)}async function p(){const E=await l.finalize();s("finalize",E)}return(E,T)=>(t.openBlock(),t.createElementBlock("div",qb,[n.density==="detailed"?(t.openBlock(),t.createBlock(kc,{key:0,"chat-mode":t.unref(l).chatMode.value,"selected-backend":t.unref(l).selectedBackend.value,"selected-model":t.unref(l).selectedModel.value,backends:_.value,"onUpdate:chatMode":t.unref(l).setMode,"onUpdate:selectedBackend":t.unref(l).selectBackend,"onUpdate:selectedModel":T[0]||(T[0]=g=>t.unref(l).selectedModel.value=g)},null,8,["chat-mode","selected-backend","selected-model","backends","onUpdate:chatMode","onUpdate:selectedBackend"])):t.createCommentVNode("",!0),t.createElementVNode("div",Hb,[t.unref(l).messages.value.length===0&&!t.unref(l).isStreaming.value?(t.openBlock(),t.createElementBlock("div",zb,[T[2]||(T[2]=t.createElementVNode("div",{class:"aia-smart-panel__welcome-icon"},"AI",-1)),t.createElementVNode("h3",$b,t.toDisplayString(n.welcomeTitle),1),t.createElementVNode("p",Wb,t.toDisplayString(n.welcomeSubtitle),1)])):t.createCommentVNode("",!0),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(l).messages.value,g=>(t.openBlock(),t.createBlock(Zr,{key:g.id,role:g.role,content:g.content,timestamp:g.created_at,"show-actions":i.value,"all-messages":t.unref(l).messages.value},null,8,["role","content","timestamp","show-actions","all-messages"]))),128)),t.unref(l).isStreaming.value&&t.unref(l).chatMode.value==="single"&&t.unref(l).streamingContent.value?(t.openBlock(),t.createBlock(Zr,{key:1,role:"assistant",content:t.unref(l).streamingContent.value,streaming:!0},null,8,["content"])):t.createCommentVNode("",!0),t.unref(l).backendResponses.value.size>0?(t.openBlock(),t.createBlock(Uc,{key:2,responses:t.unref(l).backendResponses.value,collapsible:t.unref(l).chatMode.value==="compound"},null,8,["responses","collapsible"])):t.createCommentVNode("",!0),t.unref(l).synthesisState.value?(t.openBlock(),t.createBlock(Bc,{key:3,state:t.unref(l).synthesisState.value},null,8,["state"])):t.createCommentVNode("",!0),r.value&&t.unref(l).processGroups.groups.value.size>0?(t.openBlock(),t.createElementBlock("div",Kb,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(l).processGroups.groups.value,([g,b])=>(t.openBlock(),t.createBlock(Gc,{key:g,id:b.id,type:b.type,label:b.label,timestamp:b.timestamp,"is-expanded":b.isExpanded,onToggle:f=>t.unref(l).processGroups.toggleGroup(g)},{default:t.withCtx(()=>[t.createElementVNode("pre",null,t.toDisplayString(b.content),1)]),_:2},1032,["id","type","label","timestamp","is-expanded","onToggle"]))),128))])):t.createCommentVNode("",!0),E.$slots.finalization?t.renderSlot(E.$slots,"finalization",{key:5,state:{canFinalize:t.unref(l).canFinalize,isFinalizing:t.unref(l).isFinalizing}},void 0,!0):t.unref(l).canFinalize.value&&n.entityLabel?(t.openBlock(),t.createBlock(Fc,{key:6,title:n.bannerTitle??"Ready to finalize","button-label":n.bannerButtonLabel??"Finalize","entity-label":n.entityLabel,"is-finalizing":t.unref(l).isFinalizing.value,onFinalize:p},null,8,["title","button-label","entity-label","is-finalizing"])):t.createCommentVNode("",!0),T[3]||(T[3]=t.createElementVNode("div",{class:"aia-smart-panel__anchor"},null,-1))],512),t.unref(o).showScrollButton.value?(t.openBlock(),t.createElementBlock("button",{key:1,class:"aia-smart-panel__scroll-btn",onClick:T[1]||(T[1]=(...g)=>t.unref(o).scrollToBottom&&t.unref(o).scrollToBottom(...g))}," ↓ ")):t.createCommentVNode("",!0),t.unref(l).error.value?(t.openBlock(),t.createElementBlock("div",Qb,t.toDisplayString(t.unref(l).error.value),1)):t.createCommentVNode("",!0),n.readOnly?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(Pc,{key:3,placeholder:n.placeholder,"is-streaming":t.unref(l).isStreaming.value,onSend:m},null,8,["placeholder","is-streaming"]))]))}}),Zb=Se(Xb,[["__scopeId","data-v-b27251f6"]]),Jb="0.3.6";exports.AccountEditForm=mp;exports.AccountWizard=Yu;exports.AiChatPanel=Zb;exports.AllModeResponses=Uc;exports.BackendPicker=dc;exports.ChatBubble=Zr;exports.ChatControls=kc;exports.ChatInput=Pc;exports.ChatMessage=Wr;exports.ChatPanel=Ap;exports.CompoundSynthesis=Bc;exports.FinalizationBanner=Fc;exports.LoginStream=_c;exports.MessageActions=wc;exports.OnboardingFlow=lp;exports.ProcessGroup=Gc;exports.forceFreshAccountPrompt=cc;exports.version=Jb;
78
+ `)}function i(s){const l=r(s),o=new Blob([l],{type:"text/plain"}),d=URL.createObjectURL(o),c=document.createElement("a");c.href=d,c.download=`conversation-${new Date().toISOString().slice(0,19)}.txt`,c.click(),URL.revokeObjectURL(d)}return(s,l)=>(t.openBlock(),t.createElementBlock("div",YT,[t.createElementVNode("button",{class:"action-btn action-copy",title:"Copy message",onClick:l[0]||(l[0]=o=>a(n.content))},[e.value==="idle"?(t.openBlock(),t.createElementBlock("span",VT,"Copy")):e.value==="success"?(t.openBlock(),t.createElementBlock("span",qT,"Copied")):(t.openBlock(),t.createElementBlock("span",HT,"Failed"))]),n.allMessages?(t.openBlock(),t.createElementBlock("button",{key:0,class:"action-btn action-copy-all",title:"Copy conversation",onClick:l[1]||(l[1]=o=>a(r(n.allMessages)))}," Copy All ")):t.createCommentVNode("",!0),n.allMessages?(t.openBlock(),t.createElementBlock("button",{key:1,class:"action-btn action-export",title:"Export conversation",onClick:l[2]||(l[2]=o=>i(n.allMessages))}," Export ")):t.createCommentVNode("",!0)]))}}),wc=Se(zT,[["__scopeId","data-v-56c16ef7"]]),$T={class:"aia-bubble__avatar"},WT={class:"aia-bubble__body"},KT={class:"aia-bubble__header"},QT={class:"aia-bubble__role"},XT={key:0,class:"aia-bubble__backend"},ZT={key:1,class:"aia-bubble__time"},JT=["innerHTML"],jT=t.defineComponent({__name:"ChatBubble",props:{role:{},content:{},backend:{},timestamp:{},streaming:{type:Boolean},showActions:{type:Boolean},allMessages:{}},setup(n){const e={code({text:l,lang:o}){let d;return o&&$r.getLanguage(o)?d=$r.highlight(l,{language:o}).value:d=$r.highlightAuto(l).value,`<pre><code${o?` class="language-${o}"`:""}>${d}</code></pre>`}};Z.use({renderer:e});const a=n,r=t.computed(()=>Z.parse(a.content||"")),i=t.computed(()=>{if(!a.timestamp)return"";try{return new Date(a.timestamp).toLocaleTimeString()}catch{return""}});function s(l){var c;const o=l.target.closest(".aia-copy-btn");if(!o)return;const d=(c=o.closest(".aia-code-block"))==null?void 0:c.querySelector("code");d&&navigator.clipboard.writeText(d.textContent||"")}return(l,o)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["aia-bubble",[`aia-bubble--${n.role}`,{"aia-bubble--streaming":n.streaming}]])},[t.createElementVNode("div",$T,t.toDisplayString(n.role==="user"?"U":n.role==="tool"?"T":"AI"),1),t.createElementVNode("div",WT,[t.createElementVNode("div",KT,[t.createElementVNode("span",QT,t.toDisplayString(n.role),1),n.backend?(t.openBlock(),t.createElementBlock("span",XT,t.toDisplayString(n.backend),1)):t.createCommentVNode("",!0),i.value?(t.openBlock(),t.createElementBlock("span",ZT,t.toDisplayString(i.value),1)):t.createCommentVNode("",!0)]),t.createElementVNode("div",{class:"aia-bubble__content",onClick:s,innerHTML:r.value},null,8,JT)]),n.showActions?(t.openBlock(),t.createBlock(wc,t.mergeProps({key:0,content:n.content},n.allMessages!==void 0?{allMessages:n.allMessages}:{}),null,16,["content"])):t.createCommentVNode("",!0)],2))}}),Zr=Se(jT,[["__scopeId","data-v-ffa5ceee"]]),eb={class:"aia-controls"},tb={class:"aia-controls__group"},nb=["value"],ab=["value"],rb={class:"aia-controls__group"},ib=["disabled"],ob={value:""},sb=["value"],lb={class:"aia-controls__group"},cb=["disabled","value"],_b={value:""},db=["value"],ub={class:"aia-controls__group aia-controls__group--mode"},pb={class:"aia-controls__modes"},mb=["onClick"],Eb=t.defineComponent({__name:"ChatControls",props:{chatMode:{},selectedBackend:{},selectedModel:{},backends:{}},emits:["update:chatMode","update:selectedBackend","update:selectedModel"],setup(n,{emit:e}){const a=n,r=e,i=[{value:"single",label:"Single"},{value:"all",label:"All"},{value:"compound",label:"Compound"}],s=t.computed(()=>!a.selectedBackend),l=t.computed(()=>a.backends.find(c=>c.kind===a.selectedBackend)),o=t.computed(()=>{var c;return((c=l.value)==null?void 0:c.accounts)??[]}),d=t.computed(()=>{var c;return((c=l.value)==null?void 0:c.models)??[]});return(c,_)=>(t.openBlock(),t.createElementBlock("div",eb,[t.createElementVNode("div",tb,[_[3]||(_[3]=t.createElementVNode("label",{class:"aia-controls__label"},"Backend",-1)),t.createElementVNode("select",{class:"aia-controls__select",value:n.selectedBackend??"",onChange:_[0]||(_[0]=u=>r("update:selectedBackend",u.target.value||null))},[_[2]||(_[2]=t.createElementVNode("option",{value:""},"Auto",-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(n.backends,u=>(t.openBlock(),t.createElementBlock("option",{key:u.kind,value:u.kind},t.toDisplayString(u.displayName),9,ab))),128))],40,nb)]),t.createElementVNode("div",rb,[_[4]||(_[4]=t.createElementVNode("label",{class:"aia-controls__label"},"Account",-1)),t.createElementVNode("select",{class:"aia-controls__select",disabled:s.value},[t.createElementVNode("option",ob,t.toDisplayString(s.value?"--":"Default"),1),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(o.value,u=>(t.openBlock(),t.createElementBlock("option",{key:u,value:u},t.toDisplayString(u),9,sb))),128))],8,ib)]),t.createElementVNode("div",lb,[_[5]||(_[5]=t.createElementVNode("label",{class:"aia-controls__label"},"Model",-1)),t.createElementVNode("select",{class:"aia-controls__select",disabled:s.value,value:n.selectedModel??"",onChange:_[1]||(_[1]=u=>r("update:selectedModel",u.target.value||null))},[t.createElementVNode("option",_b,t.toDisplayString(s.value?"--":"Default"),1),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(d.value,u=>(t.openBlock(),t.createElementBlock("option",{key:u,value:u},t.toDisplayString(u),9,db))),128))],40,cb)]),t.createElementVNode("div",ub,[_[6]||(_[6]=t.createElementVNode("label",{class:"aia-controls__label"},"Mode",-1)),t.createElementVNode("div",pb,[(t.openBlock(),t.createElementBlock(t.Fragment,null,t.renderList(i,u=>t.createElementVNode("button",{key:u.value,class:t.normalizeClass(["aia-controls__mode-btn",{"aia-controls__mode-btn--active":n.chatMode===u.value}]),onClick:m=>r("update:chatMode",u.value)},t.toDisplayString(u.label),11,mb)),64))])])]))}}),kc=Se(Eb,[["__scopeId","data-v-85010e74"]]),gb={class:"aia-input"},Sb=["placeholder","disabled"],Tb=["disabled"],bb=t.defineComponent({__name:"ChatInput",props:{placeholder:{default:"Type a message..."},disabled:{type:Boolean},isStreaming:{type:Boolean}},emits:["send"],setup(n,{emit:e}){const a=n,r=e,i=t.ref(""),s=t.ref(null);function l(){const c=i.value.trim();!c||a.disabled||a.isStreaming||(r("send",c),i.value="",t.nextTick(d))}function o(c){c.key==="Enter"&&!c.shiftKey&&(c.preventDefault(),l())}function d(){const c=s.value;c&&(c.style.height="auto",c.style.height=Math.min(c.scrollHeight,120)+"px")}return t.watch(i,()=>t.nextTick(d)),(c,_)=>(t.openBlock(),t.createElementBlock("div",gb,[t.withDirectives(t.createElementVNode("textarea",{ref_key:"textareaRef",ref:s,"onUpdate:modelValue":_[0]||(_[0]=u=>i.value=u),class:"aia-input__textarea",placeholder:n.placeholder,rows:"1",disabled:n.disabled||n.isStreaming,onKeydown:o,onInput:d},null,40,Sb),[[t.vModelText,i.value]]),t.createElementVNode("button",{class:"aia-input__send",disabled:!i.value.trim()||n.disabled||n.isStreaming,onClick:l},t.toDisplayString(n.isStreaming?"...":"Send"),9,Tb)]))}}),Pc=Se(bb,[["__scopeId","data-v-51976e76"]]),fb={class:"aia-responses"},Rb=["open"],Cb={class:"aia-resp__header"},Nb=["innerHTML"],Ob={key:0,class:"aia-resp__error"},vb=t.defineComponent({__name:"AllModeResponses",props:{responses:{},collapsible:{type:Boolean,default:!1}},setup(n){const e=n,a={claude:{bg:"rgba(139,92,246,0.15)",fg:"#a78bfa",label:"Claude"},codex:{bg:"rgba(16,185,129,0.15)",fg:"#34d399",label:"Codex"},gemini:{bg:"rgba(96,165,250,0.15)",fg:"#60a5fa",label:"Gemini"},opencode:{bg:"rgba(251,191,36,0.15)",fg:"#fbbf24",label:"OpenCode"}};function r(o){return a[o]??{bg:"rgba(161,161,170,0.15)",fg:"#a1a1aa",label:o}}function i(o){switch(o){case"streaming":return{text:"Streaming",cls:"aia-resp__badge--streaming"};case"complete":return{text:"Done",cls:"aia-resp__badge--complete"};case"error":return{text:"Error",cls:"aia-resp__badge--error"};case"timeout":return{text:"Timeout",cls:"aia-resp__badge--timeout"};default:return{text:o,cls:""}}}const s=t.computed(()=>Array.from(e.responses.entries()));function l(o){return Z.parse(o||"")}return(o,d)=>(t.openBlock(),t.createElementBlock("div",fb,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.value,([c,_])=>(t.openBlock(),t.createElementBlock("div",{key:c,class:"aia-resp",style:t.normalizeStyle({"--resp-bg":r(_.backend).bg,"--resp-fg":r(_.backend).fg})},[t.createElementVNode("details",{open:!n.collapsible||void 0},[t.createElementVNode("summary",Cb,[t.createElementVNode("span",{class:"aia-resp__name",style:t.normalizeStyle({color:r(_.backend).fg})},t.toDisplayString(r(_.backend).label),5),t.createElementVNode("span",{class:t.normalizeClass(["aia-resp__badge",i(_.status).cls])},t.toDisplayString(i(_.status).text),3)]),t.createElementVNode("div",{class:"aia-resp__body",innerHTML:l(_.content)},null,8,Nb),_.error?(t.openBlock(),t.createElementBlock("div",Ob,t.toDisplayString(_.error),1)):t.createCommentVNode("",!0)],8,Rb)],4))),128))]))}}),Uc=Se(vb,[["__scopeId","data-v-bde6df1f"]]),hb={class:"aia-synth__header"},Ib={key:0,class:"aia-synth__via"},Ab={key:0,class:"aia-synth__sources"},yb=["innerHTML"],Db={key:1,class:"aia-synth__error"},Mb=t.defineComponent({__name:"CompoundSynthesis",props:{state:{}},setup(n){const e=n,a=t.computed(()=>Z.parse(e.state.content||"")),r=t.computed(()=>e.state.status==="streaming");function i(s){switch(s){case"waiting":return{text:"Waiting...",cls:"aia-synth__badge--waiting"};case"streaming":return{text:"Synthesizing",cls:"aia-synth__badge--streaming"};case"complete":return{text:"Complete",cls:"aia-synth__badge--complete"};case"error":return{text:"Error",cls:"aia-synth__badge--error"};default:return{text:s,cls:""}}}return(s,l)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["aia-synth",{"aia-synth--streaming":r.value}])},[t.createElementVNode("div",hb,[l[0]||(l[0]=t.createElementVNode("span",{class:"aia-synth__label"},"Compound Synthesis",-1)),n.state.primaryBackend?(t.openBlock(),t.createElementBlock("span",Ib,"via "+t.toDisplayString(n.state.primaryBackend),1)):t.createCommentVNode("",!0),t.createElementVNode("span",{class:t.normalizeClass(["aia-synth__badge",i(n.state.status).cls])},t.toDisplayString(i(n.state.status).text),3)]),n.state.backendsCollected.length?(t.openBlock(),t.createElementBlock("div",Ab," Sources: "+t.toDisplayString(n.state.backendsCollected.join(", ")),1)):t.createCommentVNode("",!0),t.createElementVNode("div",{class:"aia-synth__content",innerHTML:a.value},null,8,yb),n.state.error?(t.openBlock(),t.createElementBlock("div",Db,t.toDisplayString(n.state.error),1)):t.createCommentVNode("",!0)],2))}}),Bc=Se(Mb,[["__scopeId","data-v-446c73a3"]]),Lb={class:"finalization-banner"},xb={class:"banner-content"},wb={class:"banner-title"},kb={class:"banner-description"},Pb=["disabled"],Ub=t.defineComponent({__name:"FinalizationBanner",props:{title:{},buttonLabel:{},entityLabel:{},entityName:{},isFinalizing:{type:Boolean,default:!1}},emits:["finalize"],setup(n,{emit:e}){const a=e;return(r,i)=>(t.openBlock(),t.createElementBlock("div",Lb,[t.createElementVNode("div",xb,[t.createElementVNode("h3",wb,t.toDisplayString(n.title),1),t.createElementVNode("p",kb," Your "+t.toDisplayString(n.entityLabel)+t.toDisplayString(n.entityName?": "+n.entityName:"")+" is ready. Click the button to finalize. ",1)]),t.createElementVNode("button",{class:"banner-button",disabled:n.isFinalizing,onClick:i[0]||(i[0]=s=>a("finalize"))},t.toDisplayString(n.isFinalizing?"Creating...":n.buttonLabel),9,Pb)]))}}),Fc=Se(Ub,[["__scopeId","data-v-bde99def"]]),Bb={class:"process-group-label"},Fb={key:0,class:"process-group-time"},Gb={class:"process-group-chevron"},Yb={key:0,class:"process-group-body"},Vb=t.defineComponent({__name:"ProcessGroup",props:{id:{},type:{},label:{},timestamp:{},isExpanded:{type:Boolean,default:!0}},emits:["toggle"],setup(n,{emit:e}){const a=e,r={tool_call:"Tool",reasoning:"Thinking",code_execution:"Code"},i={tool_call:"var(--aia-cyan, #22d3ee)",reasoning:"var(--aia-violet, #a78bfa)",code_execution:"var(--aia-amber, #fbbf24)"};return(s,l)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["process-group",[`process-group--${n.type}`]])},[t.createElementVNode("div",{class:"process-group-header",onClick:l[0]||(l[0]=o=>a("toggle"))},[t.createElementVNode("span",{class:"process-group-badge",style:t.normalizeStyle({background:i[n.type]})},t.toDisplayString(r[n.type]),5),t.createElementVNode("span",Bb,t.toDisplayString(n.label),1),n.timestamp?(t.openBlock(),t.createElementBlock("span",Fb,t.toDisplayString(new Date(n.timestamp).toLocaleTimeString()),1)):t.createCommentVNode("",!0),t.createElementVNode("span",Gb,t.toDisplayString(n.isExpanded?"▼":"▶"),1)]),n.isExpanded?(t.openBlock(),t.createElementBlock("div",Yb,[t.renderSlot(s.$slots,"default",{},void 0,!0)])):t.createCommentVNode("",!0)],2))}}),Gc=Se(Vb,[["__scopeId","data-v-4607873c"]]),qb={class:"aia-smart-panel"},Hb={ref:"scroll.containerRef",class:"aia-smart-panel__messages"},zb={key:0,class:"aia-smart-panel__welcome"},$b={class:"aia-smart-panel__welcome-title"},Wb={class:"aia-smart-panel__welcome-sub"},Kb={key:4,class:"process-groups"},Qb={key:2,class:"aia-smart-panel__error"},Xb=t.defineComponent({__name:"AiChatPanel",props:{density:{default:"minimal"},defaultBackend:{},defaultModel:{},placeholder:{default:"Type a message..."},welcomeTitle:{default:"AI Chat"},welcomeSubtitle:{default:"Send a message to get started"},readOnly:{type:Boolean},entityLabel:{},bannerTitle:{},bannerButtonLabel:{},configParser:{},showProcessGroups:{type:Boolean,default:void 0},showActions:{type:Boolean,default:void 0}},emits:["finalize"],setup(n,{emit:e}){const a=n,r=t.computed(()=>a.showProcessGroups??a.density==="detailed"),i=t.computed(()=>a.showActions??a.density==="detailed"),s=e,l=Ie.useSmartChat(),o=Ie.useSmartScroll(),{client:d}=Ie.useAiAccounts(),c=t.ref([]),_=t.computed(()=>Array.from(new Set(c.value.map(E=>E.kind))).map(E=>{const T=c.value.filter(g=>g.kind===E);return{kind:E,displayName:E,accounts:T.map(g=>g.id),models:[]}}));t.watchEffect(()=>{l.setConfigParser(a.configParser??null)}),t.onMounted(async()=>{try{const E=await d.listBackends();c.value=E.items??[]}catch{}});function u(E){const T=E?c.value.filter(g=>g.kind===E):c.value;return T.find(g=>g.status==="ready")??T[0]??null}async function m(E){if(!l.sessionId.value){if(c.value.length===0)try{const f=await d.listBackends();c.value=f.items??[]}catch{l.error.value="Unable to load backends from sidecar";return}const T=l.selectedBackend.value??a.defaultBackend??null,g=u(T);if(!g){l.error.value="No backend available — add an account first";return}const b=l.selectedModel.value??a.defaultModel??"";try{await l.createSession(g.id,b)}catch(f){l.error.value=f instanceof Error?f.message:String(f);return}}await l.send(E)}async function p(){const E=await l.finalize();s("finalize",E)}return(E,T)=>(t.openBlock(),t.createElementBlock("div",qb,[n.density==="detailed"?(t.openBlock(),t.createBlock(kc,{key:0,"chat-mode":t.unref(l).chatMode.value,"selected-backend":t.unref(l).selectedBackend.value,"selected-model":t.unref(l).selectedModel.value,backends:_.value,"onUpdate:chatMode":t.unref(l).setMode,"onUpdate:selectedBackend":t.unref(l).selectBackend,"onUpdate:selectedModel":T[0]||(T[0]=g=>t.unref(l).selectedModel.value=g)},null,8,["chat-mode","selected-backend","selected-model","backends","onUpdate:chatMode","onUpdate:selectedBackend"])):t.createCommentVNode("",!0),t.createElementVNode("div",Hb,[t.unref(l).messages.value.length===0&&!t.unref(l).isStreaming.value?(t.openBlock(),t.createElementBlock("div",zb,[T[2]||(T[2]=t.createElementVNode("div",{class:"aia-smart-panel__welcome-icon"},"AI",-1)),t.createElementVNode("h3",$b,t.toDisplayString(n.welcomeTitle),1),t.createElementVNode("p",Wb,t.toDisplayString(n.welcomeSubtitle),1)])):t.createCommentVNode("",!0),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(l).messages.value,g=>(t.openBlock(),t.createBlock(Zr,{key:g.id,role:g.role,content:g.content,timestamp:g.created_at,"show-actions":i.value,"all-messages":t.unref(l).messages.value},null,8,["role","content","timestamp","show-actions","all-messages"]))),128)),t.unref(l).isStreaming.value&&t.unref(l).chatMode.value==="single"&&t.unref(l).streamingContent.value?(t.openBlock(),t.createBlock(Zr,{key:1,role:"assistant",content:t.unref(l).streamingContent.value,streaming:!0},null,8,["content"])):t.createCommentVNode("",!0),t.unref(l).backendResponses.value.size>0?(t.openBlock(),t.createBlock(Uc,{key:2,responses:t.unref(l).backendResponses.value,collapsible:t.unref(l).chatMode.value==="compound"},null,8,["responses","collapsible"])):t.createCommentVNode("",!0),t.unref(l).synthesisState.value?(t.openBlock(),t.createBlock(Bc,{key:3,state:t.unref(l).synthesisState.value},null,8,["state"])):t.createCommentVNode("",!0),r.value&&t.unref(l).processGroups.groups.value.size>0?(t.openBlock(),t.createElementBlock("div",Kb,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(l).processGroups.groups.value,([g,b])=>(t.openBlock(),t.createBlock(Gc,{key:g,id:b.id,type:b.type,label:b.label,timestamp:b.timestamp,"is-expanded":b.isExpanded,onToggle:f=>t.unref(l).processGroups.toggleGroup(g)},{default:t.withCtx(()=>[t.createElementVNode("pre",null,t.toDisplayString(b.content),1)]),_:2},1032,["id","type","label","timestamp","is-expanded","onToggle"]))),128))])):t.createCommentVNode("",!0),E.$slots.finalization?t.renderSlot(E.$slots,"finalization",{key:5,state:{canFinalize:t.unref(l).canFinalize,isFinalizing:t.unref(l).isFinalizing}},void 0,!0):t.unref(l).canFinalize.value&&n.entityLabel?(t.openBlock(),t.createBlock(Fc,{key:6,title:n.bannerTitle??"Ready to finalize","button-label":n.bannerButtonLabel??"Finalize","entity-label":n.entityLabel,"is-finalizing":t.unref(l).isFinalizing.value,onFinalize:p},null,8,["title","button-label","entity-label","is-finalizing"])):t.createCommentVNode("",!0),T[3]||(T[3]=t.createElementVNode("div",{class:"aia-smart-panel__anchor"},null,-1))],512),t.unref(o).showScrollButton.value?(t.openBlock(),t.createElementBlock("button",{key:1,class:"aia-smart-panel__scroll-btn",onClick:T[1]||(T[1]=(...g)=>t.unref(o).scrollToBottom&&t.unref(o).scrollToBottom(...g))}," ↓ ")):t.createCommentVNode("",!0),t.unref(l).error.value?(t.openBlock(),t.createElementBlock("div",Qb,t.toDisplayString(t.unref(l).error.value),1)):t.createCommentVNode("",!0),n.readOnly?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(Pc,{key:3,placeholder:n.placeholder,"is-streaming":t.unref(l).isStreaming.value,onSend:m},null,8,["placeholder","is-streaming"]))]))}}),Zb=Se(Xb,[["__scopeId","data-v-b27251f6"]]),Jb="0.3.7";exports.AccountEditForm=mp;exports.AccountWizard=Yu;exports.AiChatPanel=Zb;exports.AllModeResponses=Uc;exports.BackendPicker=dc;exports.ChatBubble=Zr;exports.ChatControls=kc;exports.ChatInput=Pc;exports.ChatMessage=Wr;exports.ChatPanel=Ap;exports.CompoundSynthesis=Bc;exports.FinalizationBanner=Fc;exports.LoginStream=_c;exports.MessageActions=wc;exports.OnboardingFlow=lp;exports.ProcessGroup=Gc;exports.forceFreshAccountPrompt=cc;exports.version=Jb;
@@ -61,11 +61,12 @@ const I_ = { class: "aia-login-stream" }, A_ = {
61
61
  async function i() {
62
62
  const g = a.value.trim();
63
63
  if (g) {
64
- if (o = g, a.value = "", e.session.textPrompt.value) {
65
- o = null, r.value = "sent", await e.session.respond(g);
66
- return;
64
+ a.value = "", r.value = "sent";
65
+ try {
66
+ await e.session.writeEager(g);
67
+ } catch {
68
+ o = g, r.value = "queued";
67
69
  }
68
- r.value = "queued";
69
70
  }
70
71
  }
71
72
  Ye(
@@ -114,7 +115,7 @@ const I_ = { class: "aia-login-stream" }, A_ = {
114
115
  }
115
116
  return (g, b) => (f(), R("div", I_, [
116
117
  t.session.urlPrompt.value ? (f(), R("div", A_, [
117
- b[9] || (b[9] = Lc('<div class="aia-url-badge" data-v-b48a7361><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="16" height="16" data-v-b48a7361><path d="M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6" data-v-b48a7361></path><polyline points="15 3 21 3 21 9" data-v-b48a7361></polyline><line x1="10" y1="14" x2="21" y2="3" data-v-b48a7361></line></svg><span data-v-b48a7361>A browser window should have opened. If not, click the link below:</span></div>', 1)),
118
+ b[9] || (b[9] = Lc('<div class="aia-url-badge" data-v-da6f26ca><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="16" height="16" data-v-da6f26ca><path d="M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6" data-v-da6f26ca></path><polyline points="15 3 21 3 21 9" data-v-da6f26ca></polyline><line x1="10" y1="14" x2="21" y2="3" data-v-da6f26ca></line></svg><span data-v-da6f26ca>A browser window should have opened. If not, click the link below:</span></div>', 1)),
118
119
  u("a", {
119
120
  href: l.value,
120
121
  target: "_blank",
@@ -309,7 +310,7 @@ const I_ = { class: "aia-login-stream" }, A_ = {
309
310
  for (const [a, r] of e)
310
311
  n[a] = r;
311
312
  return n;
312
- }, nd = /* @__PURE__ */ Ae(td, [["__scopeId", "data-v-b48a7361"]]), ad = { class: "aia-backend-picker" }, rd = ["onClick"], id = ["src", "alt"], od = { class: "aia-backend-info" }, sd = {
313
+ }, nd = /* @__PURE__ */ Ae(td, [["__scopeId", "data-v-da6f26ca"]]), ad = { class: "aia-backend-picker" }, rd = ["onClick"], id = ["src", "alt"], od = { class: "aia-backend-info" }, sd = {
313
314
  key: 0,
314
315
  class: "aia-installed"
315
316
  }, ld = {
@@ -52921,7 +52922,7 @@ ${s.content}`).join(`
52921
52922
  }, null, 8, ["placeholder", "is-streaming"]))
52922
52923
  ]));
52923
52924
  }
52924
- }), xR = /* @__PURE__ */ Ae(Mf, [["__scopeId", "data-v-b27251f6"]]), wR = "0.3.6";
52925
+ }), xR = /* @__PURE__ */ Ae(Mf, [["__scopeId", "data-v-b27251f6"]]), wR = "0.3.7";
52925
52926
  export {
52926
52927
  MR as AccountEditForm,
52927
52928
  yR as AccountWizard,
package/dist/index.d.ts CHANGED
@@ -16,5 +16,5 @@ export { default as ProcessGroup } from './components/ProcessGroup.vue';
16
16
  export { default as MessageActions } from './components/MessageActions.vue';
17
17
  export { default as FinalizationBanner } from './components/FinalizationBanner.vue';
18
18
  export { forceFreshAccountPrompt } from './components/forceFreshAccountPrompt';
19
- export declare const version = "0.3.6";
19
+ export declare const version = "0.3.7";
20
20
  //# sourceMappingURL=index.d.ts.map
package/dist/styles.css CHANGED
@@ -1 +1 @@
1
- :root{--aia-bg: #0a0a0a;--aia-bg-elevated: #141414;--aia-bg-hover: #1f1f1f;--aia-fg: #fafafa;--aia-fg-muted: #a1a1aa;--aia-fg-subtle: #71717a;--aia-border: #27272a;--aia-border-hover: #3f3f46;--aia-primary: #7c3aed;--aia-primary-hover: #8b5cf6;--aia-primary-fg: #ffffff;--aia-success: #10b981;--aia-warning: #f59e0b;--aia-danger: #ef4444;--aia-radius-sm: 4px;--aia-radius: 8px;--aia-radius-lg: 12px;--aia-space-1: 4px;--aia-space-2: 8px;--aia-space-3: 12px;--aia-space-4: 16px;--aia-space-6: 24px;--aia-space-8: 32px;--aia-font-sans: system-ui, -apple-system, "Segoe UI", sans-serif;--aia-font-mono: "JetBrains Mono", "Fira Code", monospace;--aia-text-xs: 12px;--aia-text-sm: 14px;--aia-text-base: 16px;--aia-text-lg: 18px;--aia-text-xl: 24px;--aia-shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--aia-shadow: 0 4px 12px rgba(0, 0, 0, .3);--aia-transition: .15s ease-out}.aia-login-stream[data-v-b48a7361]{display:flex;flex-direction:column;gap:1rem;font-family:var(--aia-font-sans, system-ui, -apple-system, sans-serif);color:var(--text-primary, var(--aia-fg, #fafafa))}.aia-url-section[data-v-b48a7361]{display:flex;flex-direction:column;gap:.75rem}.aia-url-badge[data-v-b48a7361]{display:flex;align-items:center;gap:.5rem;padding:.625rem .875rem;background:#60a5fa1a;border:1px solid rgba(96,165,250,.2);border-radius:8px;font-size:.8125rem;color:var(--accent-cyan, #60a5fa)}.aia-url-link[data-v-b48a7361]{display:block;padding:.625rem .875rem;background:#0000004d;border:1px solid var(--border-default, var(--aia-border, #27272a));border-radius:8px;font-family:var(--aia-font-mono, "SF Mono", Monaco, monospace);font-size:.75rem;color:var(--accent-cyan, var(--aia-primary, #60a5fa));word-break:break-all;text-decoration:none;transition:border-color .15s}.aia-url-link[data-v-b48a7361]:hover{border-color:var(--accent-cyan, var(--aia-primary, #60a5fa))}.aia-url-actions[data-v-b48a7361]{display:flex;gap:.5rem;flex-wrap:wrap}.aia-copy-incognito-btn[data-v-b48a7361]{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;background:#8b5cf61a;border:1px solid rgba(139,92,246,.35);border-radius:6px;color:#a78bfa;font-size:.8125rem;font-family:inherit;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.aia-copy-incognito-btn[data-v-b48a7361]:hover{background:#8b5cf62e;border-color:#8b5cf699;color:#c4b5fd}.aia-copy-incognito-btn--copied[data-v-b48a7361]{background:#22c55e1f;border-color:#22c55e73;color:#4ade80}.aia-incognito-hint[data-v-b48a7361]{position:relative;padding:.75rem 2rem .75rem .875rem;background:#8b5cf614;border:1px solid rgba(139,92,246,.45);border-radius:8px;color:var(--text-primary, #e4e4e7);font-size:.8125rem;line-height:1.5}.aia-incognito-hint__title[data-v-b48a7361]{display:block;margin-bottom:.25rem;color:#c4b5fd;font-weight:600;font-size:.8125rem}.aia-incognito-hint__body[data-v-b48a7361]{margin:0;color:var(--text-secondary, #a1a1aa)}.aia-incognito-hint__body kbd[data-v-b48a7361]{display:inline-block;margin:0 .125rem;padding:.0625rem .375rem;background:#0006;border:1px solid rgba(139,92,246,.3);border-radius:4px;font-family:var(--aia-font-mono, "SF Mono", Monaco, monospace);font-size:.75rem;color:#c4b5fd}.aia-incognito-hint__close[data-v-b48a7361]{position:absolute;top:.25rem;right:.375rem;width:20px;height:20px;padding:0;background:transparent;border:none;color:var(--text-tertiary, #71717a);font-size:1.125rem;line-height:1;cursor:pointer;transition:color .15s}.aia-incognito-hint__close[data-v-b48a7361]:hover{color:var(--text-primary, #e4e4e7)}.aia-device-code[data-v-b48a7361]{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:.75rem;background:#0000004d;border:1px solid var(--border-default, var(--aia-border, #27272a));border-radius:8px}.aia-device-code__label[data-v-b48a7361]{font-size:.8125rem;color:var(--text-secondary, var(--aia-fg-muted, #a1a1aa))}.aia-device-code__value[data-v-b48a7361]{font-family:var(--aia-font-mono, "SF Mono", Monaco, monospace);font-size:1.25rem;font-weight:700;letter-spacing:.1em;color:var(--text-primary, var(--aia-fg, #e4e4e7));padding:.375rem 1rem;background:var(--bg-tertiary, rgba(0, 0, 0, .4));border-radius:6px}.aia-menu-section[data-v-b48a7361]{display:flex;flex-direction:column;gap:.5rem}.aia-menu-section__title[data-v-b48a7361]{margin:0;font-size:.8125rem;font-weight:500;color:var(--text-secondary, var(--aia-fg-muted, #a1a1aa))}.aia-menu-options[data-v-b48a7361]{display:flex;flex-direction:column;gap:.5rem}.aia-menu-option[data-v-b48a7361]{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--bg-secondary, var(--aia-bg-elevated, #141414));border:1px solid var(--border-default, var(--aia-border, #27272a));border-radius:8px;cursor:pointer;text-align:left;font-family:inherit;color:inherit;transition:border-color .15s,background .15s}.aia-menu-option[data-v-b48a7361]:hover{border-color:var(--accent-cyan, var(--aia-primary, #60a5fa));background:#00cffd0d}.aia-menu-option__num[data-v-b48a7361]{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;background:var(--bg-tertiary, rgba(0, 0, 0, .3));color:var(--text-secondary, var(--aia-fg-muted, #a1a1aa));font-size:.75rem;font-weight:600;flex-shrink:0}.aia-menu-option__body[data-v-b48a7361]{display:flex;flex-direction:column;gap:.125rem;flex:1}.aia-menu-option__label[data-v-b48a7361]{font-size:.8125rem;font-weight:500;color:var(--text-primary, var(--aia-fg, #fafafa))}.aia-menu-option__desc[data-v-b48a7361]{font-size:.75rem;color:var(--text-secondary, var(--aia-fg-muted, #a1a1aa))}.aia-menu-option__arrow[data-v-b48a7361]{color:var(--text-tertiary, var(--aia-fg-subtle, #52525b));flex-shrink:0}.aia-text-section[data-v-b48a7361]{display:flex;flex-direction:column;gap:.5rem}.aia-text-section__queued[data-v-b48a7361]{margin-left:6px;font-size:12px;color:#fbbf24;font-weight:400}.aia-text-section__label[data-v-b48a7361]{font-size:.8125rem;color:var(--text-secondary, var(--aia-fg-muted, #a1a1aa))}.aia-text-section__row[data-v-b48a7361]{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#0000004d;border:1px solid var(--border-default, var(--aia-border, #27272a));border-radius:8px}.aia-text-section__prompt[data-v-b48a7361]{color:var(--accent-cyan, #60a5fa);font-family:var(--aia-font-mono, monospace);font-weight:600;flex-shrink:0}.aia-text-section__input[data-v-b48a7361]{flex:1;background:transparent;border:none;color:var(--text-primary, var(--aia-fg, #fafafa));font-family:var(--aia-font-mono, monospace);font-size:.8125rem;outline:none}.aia-text-section__input[data-v-b48a7361]::placeholder{color:var(--text-tertiary, #52525b)}.aia-text-section__btn[data-v-b48a7361]{padding:.375rem .75rem;background:var(--primary-color, var(--aia-primary, #7c3aed));color:#fff;border:none;border-radius:6px;font-size:.8125rem;font-weight:500;cursor:pointer;font-family:inherit;transition:background .15s}.aia-text-section__btn[data-v-b48a7361]:hover{background:var(--primary-hover, var(--aia-primary-hover, #8b5cf6))}.aia-text-section__btn[data-v-b48a7361]:disabled{opacity:.5;cursor:not-allowed}.aia-terminal[data-v-b48a7361]{background:#0a0a0f;border:1px solid var(--border-default, var(--aia-border, #27272a));border-radius:8px;overflow:hidden}.aia-terminal__output[data-v-b48a7361]{padding:.75rem 1rem;font-family:var(--aia-font-mono, "SF Mono", Monaco, monospace);font-size:.75rem;line-height:1.6;color:var(--text-tertiary, #71717a);max-height:200px;overflow-y:auto;white-space:pre-wrap;word-break:break-word}.aia-terminal__line[data-v-b48a7361]{min-height:1.2em}.aia-error-card[data-v-b48a7361]{display:flex;align-items:flex-start;gap:.5rem;padding:.75rem 1rem;background:#ef444414;border:1px solid rgba(239,68,68,.2);border-radius:8px;font-size:.8125rem;color:var(--accent-crimson, #ef4444)}.aia-error-card p[data-v-b48a7361]{margin:.25rem 0 0}.aia-error-card strong[data-v-b48a7361]{font-weight:600}.aia-cancel-btn[data-v-b48a7361]{align-self:flex-start;padding:.375rem .75rem;background:transparent;border:1px solid var(--border-default, var(--aia-border, #27272a));border-radius:6px;color:var(--text-secondary, var(--aia-fg-muted, #a1a1aa));font-size:.8125rem;font-family:inherit;cursor:pointer;transition:all .15s}.aia-cancel-btn[data-v-b48a7361]:hover{background:var(--bg-secondary, rgba(255, 255, 255, .05));color:var(--text-primary, var(--aia-fg, #fafafa))}.aia-backend-picker[data-v-2500895f]{display:grid;gap:.75rem;list-style:none;padding:0}.aia-backend-picker button[data-v-2500895f]{display:flex;gap:.75rem;width:100%;padding:.75rem 1rem;background:var(--aia-card-bg, #1a1a1a);color:var(--aia-card-fg, #eee);border:1px solid var(--aia-border, #333);border-radius:8px;cursor:pointer;text-align:left}.aia-backend-picker button[data-v-2500895f]:hover{background:var(--aia-card-hover, #222)}.aia-installed[data-v-2500895f]{color:var(--aia-ok, #4c8)}.aia-not-installed[data-v-2500895f]{color:var(--aia-warn, #c83)}.wizard-container[data-v-9fe4368c]{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem;animation:wizardIn-9fe4368c .3s ease}@keyframes wizardIn-9fe4368c{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.wizard-header[data-v-9fe4368c]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem}.wizard-header h3[data-v-9fe4368c]{margin:0;font-size:1.125rem;font-weight:600;color:var(--text-primary)}.wizard-close[data-v-9fe4368c]{background:none;border:none;color:var(--text-secondary);font-size:1.5rem;cursor:pointer;padding:0 .25rem;line-height:1}.wizard-close[data-v-9fe4368c]:hover{color:var(--text-primary)}.wizard-steps[data-v-9fe4368c]{display:flex;gap:0;margin-bottom:1.5rem;border-bottom:1px solid var(--border-default);padding-bottom:1rem}.step-indicator[data-v-9fe4368c]{display:flex;align-items:center;gap:.5rem;flex:1;padding:.5rem 0;position:relative}.step-indicator.clickable[data-v-9fe4368c]{cursor:pointer}.step-indicator[data-v-9fe4368c]:after{content:"";position:absolute;right:0;top:50%;transform:translateY(-50%);width:24px;height:1px;background:var(--border-default)}.step-indicator[data-v-9fe4368c]:last-child:after{display:none}.step-number[data-v-9fe4368c]{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:.75rem;font-weight:600;flex-shrink:0;background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-default);transition:all .2s ease}.step-indicator.active .step-number[data-v-9fe4368c]{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.step-indicator.completed .step-number[data-v-9fe4368c]{background:var(--accent-emerald);color:#fff;border-color:var(--accent-emerald)}.step-label[data-v-9fe4368c]{font-size:.8125rem;color:var(--text-tertiary);white-space:nowrap;transition:color .2s ease}.step-indicator.active .step-label[data-v-9fe4368c]{color:var(--text-primary);font-weight:500}.step-indicator.completed .step-label[data-v-9fe4368c]{color:var(--text-secondary)}.wizard-step[data-v-9fe4368c]{animation:stepIn-9fe4368c .25s ease}@keyframes stepIn-9fe4368c{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}.step-body[data-v-9fe4368c]{min-height:160px}.step-question[data-v-9fe4368c]{font-size:1rem;font-weight:500;color:var(--text-primary);margin:0 0 1.25rem}.step-description[data-v-9fe4368c]{color:var(--text-secondary);font-size:.875rem;margin:0 0 1rem}.radio-group[data-v-9fe4368c]{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.25rem}.radio-card[data-v-9fe4368c]{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background:var(--bg-secondary);border:1.5px solid var(--border-default);border-radius:8px;cursor:pointer;transition:all .15s ease}.radio-card[data-v-9fe4368c]:hover{border-color:var(--primary-color);background:var(--bg-hover, var(--bg-secondary))}.radio-card.selected[data-v-9fe4368c]{border-color:var(--primary-color);background:#6366f10f}.radio-card input[type=radio][data-v-9fe4368c]{margin-top:2px;accent-color:var(--primary-color);width:16px;height:16px;flex-shrink:0}.radio-card-content[data-v-9fe4368c]{display:flex;flex-direction:column;gap:.25rem}.radio-card-title[data-v-9fe4368c]{font-size:.875rem;font-weight:600;color:var(--text-primary)}.radio-card-desc[data-v-9fe4368c]{font-size:.75rem;color:var(--text-secondary);line-height:1.4}.account-fields[data-v-9fe4368c]{padding-top:.25rem}.slide-down-enter-active[data-v-9fe4368c],.slide-down-leave-active[data-v-9fe4368c]{transition:all .25s ease;overflow:hidden}.slide-down-enter-from[data-v-9fe4368c],.slide-down-leave-to[data-v-9fe4368c]{opacity:0;transform:translateY(-8px);max-height:0}.slide-down-enter-to[data-v-9fe4368c],.slide-down-leave-from[data-v-9fe4368c]{opacity:1;transform:translateY(0);max-height:300px}.step-actions[data-v-9fe4368c]{display:flex;justify-content:space-between;gap:.75rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border-default)}.step-actions .btn[data-v-9fe4368c]{display:inline-flex;align-items:center;gap:.375rem}.form-group[data-v-9fe4368c]{margin-bottom:1rem}.form-group.compact[data-v-9fe4368c]{margin-bottom:0;margin-top:.5rem}.form-group label[data-v-9fe4368c]{display:block;margin-bottom:.375rem;font-size:.8125rem;font-weight:500;color:var(--text-primary)}.required[data-v-9fe4368c]{color:var(--accent-crimson)}.form-group input[type=text][data-v-9fe4368c],.form-group input[type=email][data-v-9fe4368c]{width:100%;padding:8px 12px;background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:6px;color:var(--text-primary);font-size:14px;font-family:inherit}.form-group input[data-v-9fe4368c]:focus,.form-group select[data-v-9fe4368c]:focus{outline:none;border-color:var(--primary-color)}.form-group small[data-v-9fe4368c]{display:block;margin-top:.25rem;font-size:.75rem;color:var(--text-secondary)}.form-group select[data-v-9fe4368c]{width:100%;padding:8px 12px;background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:6px;color:var(--text-primary);font-size:14px;font-family:inherit}.form-group.checkbox label[data-v-9fe4368c]{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:400}.form-group.checkbox input[type=checkbox][data-v-9fe4368c]{width:16px;height:16px}.status-card[data-v-9fe4368c]{display:flex;align-items:center;gap:.75rem;padding:1rem;border-radius:8px;background:var(--bg-secondary);border:1px solid var(--border-default);margin-bottom:1rem}.status-card.status-ok[data-v-9fe4368c]{border-color:#34d3994d}.status-card.status-warn[data-v-9fe4368c]{border-color:#fbbf244d}.status-icon[data-v-9fe4368c]{display:flex;align-items:center;flex-shrink:0}.status-card.status-ok .status-icon[data-v-9fe4368c]{color:var(--accent-emerald)}.status-card.status-warn .status-icon[data-v-9fe4368c]{color:var(--accent-amber, #fbbf24)}.status-info[data-v-9fe4368c]{display:flex;flex-direction:column;flex:1}.status-title[data-v-9fe4368c]{font-size:.875rem;font-weight:600;color:var(--text-primary)}.status-detail[data-v-9fe4368c]{font-size:.75rem;color:var(--text-secondary)}.config-dir-section[data-v-9fe4368c]{margin-bottom:1rem}.config-dir-label[data-v-9fe4368c]{font-size:.8125rem;font-weight:500;color:var(--text-primary);margin-bottom:.375rem}.config-dir-path[data-v-9fe4368c]{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:6px}.config-dir-path code[data-v-9fe4368c]{font-family:var(--font-mono, monospace);font-size:.8125rem;color:var(--text-primary);flex:1}.dir-created-badge[data-v-9fe4368c]{display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem;color:var(--accent-emerald);font-weight:500}.config-path-edit[data-v-9fe4368c]{margin-top:.375rem}.btn-link-sm[data-v-9fe4368c]{background:none;border:none;color:var(--text-tertiary);font-size:.75rem;cursor:pointer;padding:0;text-decoration:underline;font-family:inherit}.btn-link-sm[data-v-9fe4368c]:hover{color:var(--text-secondary)}.api-key-info[data-v-9fe4368c]{padding:.75rem;background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:6px;display:flex;flex-direction:column;gap:.25rem}.api-key-label[data-v-9fe4368c]{font-size:.75rem;font-weight:500;color:var(--text-secondary)}.api-key-info code[data-v-9fe4368c]{font-family:var(--font-mono, monospace);font-size:.8125rem;color:var(--text-primary)}.login-start-btn[data-v-9fe4368c]{display:inline-flex;align-items:center;gap:8px;margin-bottom:16px}.login-terminal[data-v-9fe4368c]{background:#0a0a0f;border:1px solid var(--border-default);border-radius:8px;overflow:hidden}.login-terminal-output[data-v-9fe4368c]{padding:12px 16px;font-family:Geist Mono,SF Mono,Monaco,monospace;font-size:12px;line-height:1.6;color:#a1a1aa;min-height:120px;max-height:250px;overflow-y:auto;white-space:pre-wrap;word-break:break-word}.terminal-line[data-v-9fe4368c]{min-height:1.2em}.login-terminal-input[data-v-9fe4368c]{display:flex;align-items:center;gap:8px;padding:8px 16px;border-top:1px solid var(--border-default);background:#ffffff05}.terminal-prompt[data-v-9fe4368c]{color:var(--accent-cyan);font-family:Geist Mono,monospace;font-weight:600;flex-shrink:0}.terminal-input[data-v-9fe4368c]{flex:1;background:transparent;border:none;color:var(--text-primary);font-family:Geist Mono,monospace;font-size:12px;outline:none}.terminal-input[data-v-9fe4368c]::placeholder{color:#52525b}.login-connecting[data-v-9fe4368c]{color:var(--accent-cyan)}.login-terminal-waiting[data-v-9fe4368c]{display:flex;align-items:center;gap:8px;padding:10px 16px;border-top:1px solid var(--border-default);color:var(--text-tertiary);font-size:12px}.login-options[data-v-9fe4368c]{display:flex;flex-direction:column;gap:8px;padding:12px 16px;border-top:1px solid var(--border-default)}.login-question-text[data-v-9fe4368c]{margin:0 0 8px;font-size:13px;color:var(--text-secondary);line-height:1.4}.login-option[data-v-9fe4368c]{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:8px;cursor:pointer;transition:border-color .15s ease,background .15s ease;text-align:left;font-family:inherit}.login-option[data-v-9fe4368c]:hover{border-color:var(--accent-cyan);background:#00cffd0d}.login-option-number[data-v-9fe4368c]{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;background:var(--bg-tertiary);color:var(--text-secondary);font-size:12px;font-weight:600;flex-shrink:0}.login-option-label[data-v-9fe4368c]{font-size:13px;font-weight:500;color:var(--text-primary)}.login-option-arrow[data-v-9fe4368c]{color:var(--text-tertiary);flex-shrink:0}.login-status[data-v-9fe4368c]{display:flex;align-items:center;gap:.5rem;padding:.75rem;border-radius:6px;font-size:.8125rem;margin-bottom:.75rem}.login-started[data-v-9fe4368c]{background:#60a5fa1a;color:var(--accent-cyan, #60a5fa);border:1px solid rgba(96,165,250,.2)}.login-error[data-v-9fe4368c]{background:var(--accent-crimson-dim, rgba(239, 68, 68, .1));color:var(--accent-crimson);border:1px solid rgba(239,68,68,.2)}.login-completed[data-v-9fe4368c]{background:var(--accent-emerald-dim, rgba(52, 211, 153, .1));color:var(--accent-emerald);border:1px solid rgba(52,211,153,.2)}.device-code-section[data-v-9fe4368c]{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem;background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:8px;margin-bottom:.75rem}.device-code-label[data-v-9fe4368c]{font-size:.8125rem;color:var(--text-secondary)}.device-code[data-v-9fe4368c]{font-family:var(--font-mono, monospace);font-size:1.5rem;font-weight:700;color:var(--primary-color);letter-spacing:.1em;padding:.5rem 1rem;background:var(--bg-tertiary);border-radius:6px}.skip-note[data-v-9fe4368c]{font-size:.75rem;color:var(--text-tertiary);text-align:center;margin-top:.5rem}.review-card[data-v-9fe4368c]{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:8px;padding:1rem;margin-bottom:1rem;display:flex;flex-direction:column;gap:.5rem}.review-row[data-v-9fe4368c]{display:flex;justify-content:space-between;align-items:center;font-size:.8125rem}.review-label[data-v-9fe4368c]{color:var(--text-secondary)}.review-value[data-v-9fe4368c]{color:var(--text-primary);font-weight:500}code.review-value[data-v-9fe4368c]{font-family:var(--font-mono, monospace);font-weight:400;font-size:.8125rem}.done-body[data-v-9fe4368c]{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2rem 0}.done-icon[data-v-9fe4368c]{color:var(--accent-emerald);margin-bottom:1rem}.done-body h4[data-v-9fe4368c]{margin:0 0 .5rem;font-size:1.125rem;font-weight:600;color:var(--text-primary)}.done-body p[data-v-9fe4368c]{margin:0 0 1.5rem;font-size:.875rem;color:var(--text-secondary)}.done-actions[data-v-9fe4368c]{display:flex;gap:.75rem}.proxy-login-status[data-v-9fe4368c]{width:100%;padding:.75rem 1rem;border-radius:8px;margin-bottom:1.25rem;font-size:.8125rem}.proxy-status-row[data-v-9fe4368c]{display:flex;align-items:center;gap:.5rem}.proxy-running[data-v-9fe4368c]{background:#3b82f61a;border:1px solid rgba(59,130,246,.2);color:var(--text-secondary)}.proxy-success[data-v-9fe4368c]{background:#22c55e1a;border:1px solid rgba(34,197,94,.2);color:var(--accent-emerald)}.proxy-device_auth[data-v-9fe4368c]{background:#3b82f61a;border:1px solid rgba(59,130,246,.2);color:var(--text-secondary)}.proxy-device-auth[data-v-9fe4368c]{display:flex;flex-direction:column;gap:.75rem}.proxy-url-badge[data-v-9fe4368c]{display:flex;align-items:center;gap:.5rem;padding:.625rem .875rem;background:#60a5fa1a;border:1px solid rgba(96,165,250,.2);border-radius:8px;font-size:.8125rem;color:var(--accent-cyan, #60a5fa)}.proxy-oauth-link[data-v-9fe4368c]{display:block;padding:.625rem .875rem;background:#0000004d;border:1px solid var(--border-default, #27272a);border-radius:8px;font-family:SF Mono,Monaco,monospace;font-size:.75rem;color:var(--accent-cyan, #60a5fa);word-break:break-all;text-decoration:none;transition:border-color .15s}.proxy-oauth-link[data-v-9fe4368c]:hover{border-color:var(--accent-cyan, #60a5fa)}.proxy-device-code-card[data-v-9fe4368c]{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:.75rem;background:#0000004d;border:1px solid var(--border-default, #27272a);border-radius:8px}.proxy-device-code-label[data-v-9fe4368c]{font-size:.8125rem;color:var(--text-secondary)}.proxy-device-code-value[data-v-9fe4368c]{font-family:SF Mono,Monaco,Cascadia Code,monospace;font-size:1.25rem;font-weight:700;color:#e4e4e7;letter-spacing:2px;padding:.375rem 1rem;background:var(--bg-tertiary, rgba(0, 0, 0, .4));border-radius:6px}.proxy-callback-section[data-v-9fe4368c]{width:100%;margin-top:.25rem}.proxy-callback-hint[data-v-9fe4368c]{margin:0 0 .5rem;font-size:.75rem;color:var(--text-tertiary);line-height:1.4}.proxy-callback-row[data-v-9fe4368c]{display:flex;gap:.5rem;align-items:center}.proxy-callback-input[data-v-9fe4368c]{flex:1;font-size:.75rem;padding:.5rem .75rem;background:#0000004d;border:1px solid var(--border-default, #27272a);border-radius:6px;color:var(--text-primary);font-family:SF Mono,monospace;outline:none;transition:border-color .15s}.proxy-callback-input[data-v-9fe4368c]:focus{border-color:var(--accent-cyan, #60a5fa)}.proxy-callback-input[data-v-9fe4368c]::placeholder{color:var(--text-tertiary, #52525b)}.proxy-skipped[data-v-9fe4368c]{background:#eab30814;border:1px solid rgba(234,179,8,.15);color:var(--text-tertiary)}.proxy-error[data-v-9fe4368c]{background:#ef444414;border:1px solid rgba(239,68,68,.15);color:var(--accent-red, #ef4444)}.error-text[data-v-9fe4368c]{font-size:.8125rem;color:var(--accent-crimson);margin-top:.375rem}.btn[data-v-9fe4368c]{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease;font-family:inherit;border:none}.btn-sm[data-v-9fe4368c]{padding:.375rem .75rem;font-size:.8125rem}.btn-primary[data-v-9fe4368c]{background:var(--primary-color);color:#fff}.btn-primary[data-v-9fe4368c]:hover:not(:disabled){background:var(--primary-hover)}.btn-primary[data-v-9fe4368c]:disabled{opacity:.6;cursor:not-allowed}.btn-secondary[data-v-9fe4368c]{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-default)}.btn-secondary[data-v-9fe4368c]:hover{background:var(--bg-hover, var(--bg-secondary))}.btn-outline[data-v-9fe4368c]{background:transparent;color:var(--text-secondary);border:1px solid var(--border-default)}.btn-outline[data-v-9fe4368c]:hover{background:var(--bg-tertiary);color:var(--text-primary)}.spinner-sm[data-v-9fe4368c]{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:currentColor;border-radius:50%;animation:spin-9fe4368c .6s linear infinite;display:inline-block;flex-shrink:0}@keyframes spin-9fe4368c{to{transform:rotate(360deg)}}.aia-onboarding[data-v-8c20d7e7]{background:var(--aia-bg-elevated);border:1px solid var(--aia-border);border-radius:var(--aia-radius-lg);padding:var(--aia-space-6);font-family:var(--aia-font-sans);color:var(--aia-fg);max-width:640px}.aia-onboarding__header h2[data-v-8c20d7e7]{margin:0 0 var(--aia-space-4);font-size:var(--aia-text-xl)}.aia-onboarding__welcome[data-v-8c20d7e7]{display:flex;flex-direction:column;gap:var(--aia-space-4)}.aia-onboarding__kind-grid[data-v-8c20d7e7]{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--aia-space-3)}.aia-kind-card[data-v-8c20d7e7]{display:flex;flex-direction:column;align-items:flex-start;gap:var(--aia-space-2);background:var(--aia-bg);color:var(--aia-fg);border:1px solid var(--aia-border);border-radius:var(--aia-radius);padding:var(--aia-space-4);font:inherit;cursor:pointer;transition:all var(--aia-transition)}.aia-kind-card[data-v-8c20d7e7]:disabled{opacity:.5;cursor:not-allowed}.aia-kind-card--installed[data-v-8c20d7e7]:hover{background:var(--aia-bg-hover);border-color:var(--aia-border-hover)}.aia-kind-card__name[data-v-8c20d7e7]{font-size:var(--aia-text-base);font-weight:600}.aia-kind-card__badge[data-v-8c20d7e7]{font-size:var(--aia-text-xs);color:var(--aia-success);padding:var(--aia-space-1) var(--aia-space-2);background:color-mix(in srgb,var(--aia-success) 15%,transparent);border-radius:var(--aia-radius-sm)}.aia-kind-card__badge--missing[data-v-8c20d7e7]{color:var(--aia-fg-muted);background:color-mix(in srgb,var(--aia-fg-muted) 15%,transparent)}.aia-onboarding__tabs[data-v-8c20d7e7]{display:flex;gap:var(--aia-space-2);margin-bottom:var(--aia-space-4);border-bottom:1px solid var(--aia-border)}.aia-tab[data-v-8c20d7e7]{background:transparent;color:var(--aia-fg-muted);border:none;border-bottom:2px solid transparent;padding:var(--aia-space-2) var(--aia-space-4);font:inherit;cursor:pointer;transition:all var(--aia-transition)}.aia-tab[data-v-8c20d7e7]:hover{color:var(--aia-fg)}.aia-tab--active[data-v-8c20d7e7]{color:var(--aia-fg);border-bottom-color:var(--aia-primary)}.aia-onboarding__form[data-v-8c20d7e7],.aia-onboarding__oauth-start[data-v-8c20d7e7]{display:flex;flex-direction:column;gap:var(--aia-space-4)}.aia-label[data-v-8c20d7e7]{display:flex;flex-direction:column;gap:var(--aia-space-2);font-size:var(--aia-text-sm);color:var(--aia-fg-muted)}.aia-input[data-v-8c20d7e7]{background:var(--aia-bg);color:var(--aia-fg);border:1px solid var(--aia-border);border-radius:var(--aia-radius);padding:var(--aia-space-3);font:inherit;font-family:var(--aia-font-mono)}.aia-btn[data-v-8c20d7e7]{background:var(--aia-bg);color:var(--aia-fg);border:1px solid var(--aia-border);border-radius:var(--aia-radius);padding:var(--aia-space-3) var(--aia-space-4);font:inherit;cursor:pointer;transition:all var(--aia-transition)}.aia-btn[data-v-8c20d7e7]:hover{background:var(--aia-bg-hover);border-color:var(--aia-border-hover)}.aia-btn--primary[data-v-8c20d7e7]{background:var(--aia-primary);color:var(--aia-primary-fg);border-color:var(--aia-primary)}.aia-btn--primary[data-v-8c20d7e7]:hover{background:var(--aia-primary-hover)}.aia-onboarding__oauth-challenge[data-v-8c20d7e7]{display:flex;flex-direction:column;gap:var(--aia-space-4)}.aia-onboarding__oauth-uri[data-v-8c20d7e7]{color:var(--aia-primary);font-family:var(--aia-font-mono);word-break:break-all}.aia-code-display[data-v-8c20d7e7]{display:flex;align-items:center;gap:var(--aia-space-3);background:var(--aia-bg);border:1px solid var(--aia-border);border-radius:var(--aia-radius);padding:var(--aia-space-3)}.aia-code-display code[data-v-8c20d7e7]{flex:1;font-family:var(--aia-font-mono);font-size:var(--aia-text-lg);font-weight:600;letter-spacing:.1em}.aia-copy-btn[data-v-8c20d7e7]{background:transparent;color:var(--aia-fg-muted);border:1px solid var(--aia-border);border-radius:var(--aia-radius-sm);padding:var(--aia-space-1) var(--aia-space-3);font:inherit;font-size:var(--aia-text-sm);cursor:pointer}.aia-onboarding__hint[data-v-8c20d7e7]{color:var(--aia-fg-muted);font-size:var(--aia-text-sm)}.aia-onboarding__status[data-v-8c20d7e7],.aia-onboarding__success[data-v-8c20d7e7],.aia-onboarding__error[data-v-8c20d7e7]{padding:var(--aia-space-4) 0}.aia-onboarding__success[data-v-8c20d7e7]{color:var(--aia-success)}.aia-onboarding__error[data-v-8c20d7e7]{color:var(--aia-danger)}.aia-account-edit[data-v-56b7b8c3]{display:flex;flex-direction:column;gap:.75rem}.aia-field[data-v-56b7b8c3]{display:flex}.aia-actions[data-v-56b7b8c3]{display:flex;gap:.5rem}.aia-error[data-v-56b7b8c3]{color:var(--aia-error, #c00)}.aia-chat-message[data-v-52897838]{padding:var(--aia-space-3, 12px);border-radius:var(--aia-radius-md, 8px);margin-bottom:var(--aia-space-2, 8px)}.aia-chat-message--user[data-v-52897838]{background:var(--aia-color-surface-alt, #f0f0f0);margin-left:var(--aia-space-6, 48px)}.aia-chat-message--assistant[data-v-52897838]{background:var(--aia-color-surface, #fff);border:1px solid var(--aia-color-border, #e0e0e0);margin-right:var(--aia-space-6, 48px)}.aia-chat-message__role[data-v-52897838]{font-size:var(--aia-text-xs, 11px);font-weight:600;text-transform:uppercase;color:var(--aia-color-text-muted, #888);margin-bottom:var(--aia-space-1, 4px)}.aia-chat-message__content[data-v-52897838]{white-space:pre-wrap;word-break:break-word;line-height:1.5}.aia-chat-message__meta[data-v-52897838]{font-size:var(--aia-text-xs, 11px);color:var(--aia-color-text-muted, #888);margin-top:var(--aia-space-1, 4px);display:flex;gap:var(--aia-space-2, 8px)}.aia-chat-message--streaming .aia-chat-message__content[data-v-52897838]:after{content:"▮";animation:blink-52897838 1s step-end infinite}@keyframes blink-52897838{50%{opacity:0}}.aia-chat-panel[data-v-2904376c]{display:flex;flex-direction:column;height:100%;font-family:var(--aia-font-sans, system-ui, sans-serif)}.aia-chat-panel__messages[data-v-2904376c]{flex:1;overflow-y:auto;padding:var(--aia-space-3, 12px)}.aia-chat-panel__input[data-v-2904376c]{display:flex;gap:var(--aia-space-2, 8px);padding:var(--aia-space-3, 12px);border-top:1px solid var(--aia-color-border, #e0e0e0)}.aia-chat-panel__textarea[data-v-2904376c]{flex:1;resize:none;padding:var(--aia-space-2, 8px);border:1px solid var(--aia-color-border, #e0e0e0);border-radius:var(--aia-radius-md, 8px);font-family:inherit;font-size:var(--aia-text-sm, 14px)}.aia-chat-panel__send[data-v-2904376c]{padding:var(--aia-space-2, 8px) var(--aia-space-4, 16px);background:var(--aia-color-primary, #2563eb);color:#fff;border:none;border-radius:var(--aia-radius-md, 8px);cursor:pointer;font-weight:500}.aia-chat-panel__send[data-v-2904376c]:disabled{opacity:.5;cursor:not-allowed}.message-actions[data-v-56c16ef7]{display:flex;gap:4px;opacity:0;transition:opacity .15s;position:absolute;top:4px;right:4px}.action-btn[data-v-56c16ef7]{background:var(--aia-bg-secondary, #1a1a2e);border:1px solid var(--aia-border, #333);border-radius:4px;padding:2px 6px;cursor:pointer;font-size:11px;color:var(--aia-text-muted, #888)}.action-btn[data-v-56c16ef7]:hover{background:var(--aia-bg-hover, #252540);color:var(--aia-text, #e0e0e0)}.aia-bubble[data-v-ffa5ceee]{display:flex;gap:.75rem;padding:.75rem 0;position:relative}.aia-bubble[data-v-ffa5ceee]:hover .message-actions{opacity:1}.aia-bubble--user[data-v-ffa5ceee]{flex-direction:row-reverse}.aia-bubble__avatar[data-v-ffa5ceee]{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;flex-shrink:0}.aia-bubble--user .aia-bubble__avatar[data-v-ffa5ceee]{background:#60a5fa33;color:var(--accent-cyan, #60a5fa)}.aia-bubble--assistant .aia-bubble__avatar[data-v-ffa5ceee]{background:#7c3aed33;color:var(--accent-violet, #8b5cf6)}.aia-bubble--system .aia-bubble__avatar[data-v-ffa5ceee]{background:#71717a33;color:var(--aia-fg-subtle, #71717a)}.aia-bubble--tool .aia-bubble__avatar[data-v-ffa5ceee]{background:#10b98133;color:var(--aia-success, #10b981)}.aia-bubble__body[data-v-ffa5ceee]{flex:1;min-width:0}.aia-bubble__header[data-v-ffa5ceee]{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.aia-bubble__role[data-v-ffa5ceee]{font-size:var(--aia-text-xs, 12px);font-weight:600;text-transform:capitalize;color:var(--aia-fg-muted, #a1a1aa)}.aia-bubble__backend[data-v-ffa5ceee]{font-size:.65rem;padding:1px 6px;border-radius:var(--aia-radius-sm, 4px);background:var(--aia-bg-hover, #1f1f1f);color:var(--aia-fg-subtle, #71717a)}.aia-bubble__time[data-v-ffa5ceee]{font-size:.65rem;color:var(--aia-fg-subtle, #71717a);margin-left:auto}.aia-bubble__content[data-v-ffa5ceee]{font-size:var(--aia-text-sm, 14px);line-height:1.6;color:var(--aia-fg, #fafafa)}.aia-bubble__content[data-v-ffa5ceee] pre{background:var(--aia-bg, #0a0a0a);border-radius:var(--aia-radius, 8px);padding:.75rem;overflow-x:auto;margin:.5rem 0;font-size:.8rem}.aia-bubble__content[data-v-ffa5ceee] code{font-family:var(--aia-font-mono, monospace)}.aia-bubble__content[data-v-ffa5ceee] p{margin:.25rem 0}.aia-bubble--streaming .aia-bubble__content[data-v-ffa5ceee]:after{content:"▮";animation:aia-blink-ffa5ceee 1s step-end infinite}@keyframes aia-blink-ffa5ceee{50%{opacity:0}}.aia-controls[data-v-85010e74]{display:flex;flex-wrap:wrap;gap:var(--aia-space-3, 12px);padding:var(--aia-space-3, 12px);border-bottom:1px solid var(--aia-border, #27272a);background:var(--aia-bg-elevated, #141414)}.aia-controls__group[data-v-85010e74]{display:flex;flex-direction:column;gap:var(--aia-space-1, 4px);min-width:120px}.aia-controls__group--mode[data-v-85010e74]{margin-left:auto}.aia-controls__label[data-v-85010e74]{font-size:var(--aia-text-xs, 12px);font-weight:600;color:var(--aia-fg-muted, #a1a1aa);text-transform:uppercase;letter-spacing:.04em}.aia-controls__select[data-v-85010e74]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--aia-bg, #0a0a0a);color:var(--aia-fg, #fafafa);border:1px solid var(--aia-border, #27272a);border-radius:var(--aia-radius-sm, 4px);padding:var(--aia-space-1, 4px) var(--aia-space-2, 8px);font-size:var(--aia-text-sm, 14px);cursor:pointer;transition:border-color var(--aia-transition, .15s ease-out)}.aia-controls__select[data-v-85010e74]:hover:not(:disabled){border-color:var(--aia-border-hover, #3f3f46)}.aia-controls__select[data-v-85010e74]:disabled{opacity:.4;cursor:not-allowed}.aia-controls__modes[data-v-85010e74]{display:flex;gap:2px;background:var(--aia-bg, #0a0a0a);border-radius:var(--aia-radius-sm, 4px);padding:2px}.aia-controls__mode-btn[data-v-85010e74]{padding:var(--aia-space-1, 4px) var(--aia-space-2, 8px);border:none;border-radius:3px;background:transparent;color:var(--aia-fg-muted, #a1a1aa);font-size:var(--aia-text-xs, 12px);font-weight:500;cursor:pointer;transition:all var(--aia-transition, .15s ease-out)}.aia-controls__mode-btn[data-v-85010e74]:hover{color:var(--aia-fg, #fafafa)}.aia-controls__mode-btn--active[data-v-85010e74]{background:var(--aia-primary, #7c3aed);color:var(--aia-primary-fg, #fff)}.aia-input[data-v-51976e76]{display:flex;gap:var(--aia-space-2, 8px);padding:var(--aia-space-3, 12px);border-top:1px solid var(--aia-border, #27272a);background:var(--aia-bg-elevated, #141414)}.aia-input__textarea[data-v-51976e76]{flex:1;resize:none;padding:var(--aia-space-2, 8px) var(--aia-space-3, 12px);background:var(--aia-bg, #0a0a0a);color:var(--aia-fg, #fafafa);border:1px solid var(--aia-border, #27272a);border-radius:var(--aia-radius, 8px);font-family:var(--aia-font-sans, system-ui, sans-serif);font-size:var(--aia-text-sm, 14px);line-height:1.5;max-height:120px;overflow-y:auto;transition:border-color var(--aia-transition, .15s ease-out)}.aia-input__textarea[data-v-51976e76]:focus{outline:none;border-color:var(--aia-primary, #7c3aed)}.aia-input__textarea[data-v-51976e76]::placeholder{color:var(--aia-fg-subtle, #71717a)}.aia-input__textarea[data-v-51976e76]:disabled{opacity:.5;cursor:not-allowed}.aia-input__send[data-v-51976e76]{align-self:flex-end;padding:var(--aia-space-2, 8px) var(--aia-space-4, 16px);background:var(--aia-primary, #7c3aed);color:var(--aia-primary-fg, #fff);border:none;border-radius:var(--aia-radius, 8px);font-weight:600;font-size:var(--aia-text-sm, 14px);cursor:pointer;transition:background var(--aia-transition, .15s ease-out)}.aia-input__send[data-v-51976e76]:hover:not(:disabled){background:var(--aia-primary-hover, #8b5cf6)}.aia-input__send[data-v-51976e76]:disabled{opacity:.5;cursor:not-allowed}.aia-responses[data-v-bde6df1f]{display:flex;flex-direction:column;gap:var(--aia-space-2, 8px);padding:var(--aia-space-2, 8px) 0}.aia-resp[data-v-bde6df1f]{border:1px solid var(--aia-border, #27272a);border-radius:var(--aia-radius, 8px);background:var(--aia-bg-elevated, #141414);overflow:hidden}.aia-resp__header[data-v-bde6df1f]{display:flex;align-items:center;gap:var(--aia-space-2, 8px);padding:var(--aia-space-2, 8px) var(--aia-space-3, 12px);background:var(--resp-bg);cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none}.aia-resp__header[data-v-bde6df1f]::-webkit-details-marker{display:none}.aia-resp__name[data-v-bde6df1f]{font-weight:600;font-size:var(--aia-text-sm, 14px)}.aia-resp__badge[data-v-bde6df1f]{font-size:var(--aia-text-xs, 12px);padding:1px 8px;border-radius:var(--aia-radius-sm, 4px);margin-left:auto;font-weight:500}.aia-resp__badge--streaming[data-v-bde6df1f]{background:#60a5fa26;color:#60a5fa}.aia-resp__badge--complete[data-v-bde6df1f]{background:#10b98126;color:#34d399}.aia-resp__badge--error[data-v-bde6df1f]{background:#ef444426;color:#ef4444}.aia-resp__badge--timeout[data-v-bde6df1f]{background:#f59e0b26;color:#f59e0b}.aia-resp__body[data-v-bde6df1f]{padding:var(--aia-space-3, 12px);font-size:var(--aia-text-sm, 14px);line-height:1.6;color:var(--aia-fg, #fafafa)}.aia-resp__body[data-v-bde6df1f] pre{background:var(--aia-bg, #0a0a0a);border-radius:var(--aia-radius, 8px);padding:.75rem;overflow-x:auto;margin:.5rem 0;font-size:.8rem}.aia-resp__body[data-v-bde6df1f] code{font-family:var(--aia-font-mono, monospace)}.aia-resp__body[data-v-bde6df1f] p{margin:.25rem 0}.aia-resp__error[data-v-bde6df1f]{padding:var(--aia-space-2, 8px) var(--aia-space-3, 12px);font-size:var(--aia-text-xs, 12px);color:var(--aia-danger, #ef4444)}.aia-synth[data-v-446c73a3]{border:1px solid var(--aia-border, #27272a);border-radius:var(--aia-radius, 8px);background:var(--aia-bg-elevated, #141414);overflow:hidden;margin:var(--aia-space-2, 8px) 0;border-left:3px solid var(--aia-primary, #7c3aed)}.aia-synth__header[data-v-446c73a3]{display:flex;align-items:center;gap:var(--aia-space-2, 8px);padding:var(--aia-space-2, 8px) var(--aia-space-3, 12px);background:#7c3aed14}.aia-synth__label[data-v-446c73a3]{font-weight:700;font-size:var(--aia-text-sm, 14px);color:var(--aia-primary-hover, #8b5cf6)}.aia-synth__via[data-v-446c73a3]{font-size:var(--aia-text-xs, 12px);color:var(--aia-fg-subtle, #71717a)}.aia-synth__badge[data-v-446c73a3]{font-size:var(--aia-text-xs, 12px);padding:1px 8px;border-radius:var(--aia-radius-sm, 4px);margin-left:auto;font-weight:500}.aia-synth__badge--waiting[data-v-446c73a3]{background:#a1a1aa26;color:#a1a1aa}.aia-synth__badge--streaming[data-v-446c73a3]{background:#60a5fa26;color:#60a5fa}.aia-synth__badge--complete[data-v-446c73a3]{background:#10b98126;color:#34d399}.aia-synth__badge--error[data-v-446c73a3]{background:#ef444426;color:#ef4444}.aia-synth__sources[data-v-446c73a3]{padding:var(--aia-space-1, 4px) var(--aia-space-3, 12px);font-size:var(--aia-text-xs, 12px);color:var(--aia-fg-subtle, #71717a)}.aia-synth__content[data-v-446c73a3]{padding:var(--aia-space-3, 12px);font-size:var(--aia-text-sm, 14px);line-height:1.6;color:var(--aia-fg, #fafafa)}.aia-synth__content[data-v-446c73a3] pre{background:var(--aia-bg, #0a0a0a);border-radius:var(--aia-radius, 8px);padding:.75rem;overflow-x:auto;margin:.5rem 0;font-size:.8rem}.aia-synth__content[data-v-446c73a3] code{font-family:var(--aia-font-mono, monospace)}.aia-synth__content[data-v-446c73a3] p{margin:.25rem 0}.aia-synth--streaming .aia-synth__content[data-v-446c73a3]:after{content:"▮";animation:aia-synth-blink-446c73a3 1s step-end infinite}.aia-synth__error[data-v-446c73a3]{padding:var(--aia-space-2, 8px) var(--aia-space-3, 12px);font-size:var(--aia-text-xs, 12px);color:var(--aia-danger, #ef4444)}@keyframes aia-synth-blink-446c73a3{50%{opacity:0}}.finalization-banner[data-v-bde99def]{display:flex;align-items:center;gap:12px;padding:12px 16px;margin:8px 0;border-radius:8px;background:linear-gradient(135deg,var(--aia-accent-bg, #1a2744),var(--aia-bg-secondary, #1a1a2e));border:1px solid var(--aia-accent, #3b82f6)}.banner-content[data-v-bde99def]{flex:1;min-width:0}.banner-title[data-v-bde99def]{margin:0;font-size:14px;font-weight:600;color:var(--aia-text, #e0e0e0)}.banner-description[data-v-bde99def]{margin:2px 0 0;font-size:12px;color:var(--aia-text-muted, #888)}.banner-button[data-v-bde99def]{flex-shrink:0;padding:8px 16px;border-radius:6px;border:none;background:var(--aia-accent, #3b82f6);color:#fff;font-weight:600;font-size:13px;cursor:pointer}.banner-button[data-v-bde99def]:disabled{opacity:.5;cursor:not-allowed}.banner-button[data-v-bde99def]:hover:not(:disabled){filter:brightness(1.1)}.process-group[data-v-4607873c]{border:1px solid var(--aia-border, #333);border-radius:8px;margin:8px 0;overflow:hidden}.process-group-header[data-v-4607873c]{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;background:var(--aia-bg-secondary, #1a1a2e);-webkit-user-select:none;user-select:none}.process-group-badge[data-v-4607873c]{font-size:11px;font-weight:600;padding:2px 8px;border-radius:4px;color:#000}.process-group-label[data-v-4607873c]{font-family:monospace;font-size:13px;color:var(--aia-text, #e0e0e0);flex:1}.process-group-time[data-v-4607873c]{font-size:11px;color:var(--aia-text-muted, #888)}.process-group-chevron[data-v-4607873c]{font-size:10px;color:var(--aia-text-muted, #888)}.process-group-body[data-v-4607873c]{padding:8px 12px;max-height:300px;overflow-y:auto;font-family:monospace;font-size:13px;white-space:pre-wrap;color:var(--aia-text, #e0e0e0);border-top:1px solid var(--aia-border, #333)}.aia-smart-panel[data-v-b27251f6]{display:flex;flex-direction:column;height:100%;font-family:var(--aia-font-sans, system-ui, sans-serif);background:var(--aia-bg, #0a0a0a);color:var(--aia-fg, #fafafa);position:relative}.aia-smart-panel__messages[data-v-b27251f6]{flex:1;overflow-y:auto;padding:var(--aia-space-3, 12px) var(--aia-space-4, 16px)}.aia-smart-panel__welcome[data-v-b27251f6]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;gap:var(--aia-space-2, 8px);text-align:center;padding:var(--aia-space-8, 32px)}.aia-smart-panel__welcome-icon[data-v-b27251f6]{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#7c3aed26;color:var(--aia-primary-hover, #8b5cf6);font-weight:700;font-size:var(--aia-text-lg, 18px);margin-bottom:var(--aia-space-2, 8px)}.aia-smart-panel__welcome-title[data-v-b27251f6]{margin:0;font-size:var(--aia-text-xl, 24px);font-weight:700;color:var(--aia-fg, #fafafa)}.aia-smart-panel__welcome-sub[data-v-b27251f6]{margin:0;font-size:var(--aia-text-sm, 14px);color:var(--aia-fg-muted, #a1a1aa)}.aia-smart-panel__scroll-btn[data-v-b27251f6]{position:absolute;bottom:80px;right:var(--aia-space-4, 16px);width:36px;height:36px;border-radius:50%;border:1px solid var(--aia-border, #27272a);background:var(--aia-bg-elevated, #141414);color:var(--aia-fg, #fafafa);cursor:pointer;font-size:var(--aia-text-base, 16px);display:flex;align-items:center;justify-content:center;box-shadow:var(--aia-shadow-sm, 0 1px 2px rgba(0,0,0,.4));transition:background var(--aia-transition, .15s ease-out)}.aia-smart-panel__scroll-btn[data-v-b27251f6]:hover{background:var(--aia-bg-hover, #1f1f1f)}.aia-smart-panel__error[data-v-b27251f6]{padding:var(--aia-space-2, 8px) var(--aia-space-3, 12px);background:#ef44441a;color:var(--aia-danger, #ef4444);font-size:var(--aia-text-sm, 14px);border-top:1px solid rgba(239,68,68,.2)}.aia-smart-panel__anchor[data-v-b27251f6]{height:1px}
1
+ :root{--aia-bg: #0a0a0a;--aia-bg-elevated: #141414;--aia-bg-hover: #1f1f1f;--aia-fg: #fafafa;--aia-fg-muted: #a1a1aa;--aia-fg-subtle: #71717a;--aia-border: #27272a;--aia-border-hover: #3f3f46;--aia-primary: #7c3aed;--aia-primary-hover: #8b5cf6;--aia-primary-fg: #ffffff;--aia-success: #10b981;--aia-warning: #f59e0b;--aia-danger: #ef4444;--aia-radius-sm: 4px;--aia-radius: 8px;--aia-radius-lg: 12px;--aia-space-1: 4px;--aia-space-2: 8px;--aia-space-3: 12px;--aia-space-4: 16px;--aia-space-6: 24px;--aia-space-8: 32px;--aia-font-sans: system-ui, -apple-system, "Segoe UI", sans-serif;--aia-font-mono: "JetBrains Mono", "Fira Code", monospace;--aia-text-xs: 12px;--aia-text-sm: 14px;--aia-text-base: 16px;--aia-text-lg: 18px;--aia-text-xl: 24px;--aia-shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--aia-shadow: 0 4px 12px rgba(0, 0, 0, .3);--aia-transition: .15s ease-out}.aia-login-stream[data-v-da6f26ca]{display:flex;flex-direction:column;gap:1rem;font-family:var(--aia-font-sans, system-ui, -apple-system, sans-serif);color:var(--text-primary, var(--aia-fg, #fafafa))}.aia-url-section[data-v-da6f26ca]{display:flex;flex-direction:column;gap:.75rem}.aia-url-badge[data-v-da6f26ca]{display:flex;align-items:center;gap:.5rem;padding:.625rem .875rem;background:#60a5fa1a;border:1px solid rgba(96,165,250,.2);border-radius:8px;font-size:.8125rem;color:var(--accent-cyan, #60a5fa)}.aia-url-link[data-v-da6f26ca]{display:block;padding:.625rem .875rem;background:#0000004d;border:1px solid var(--border-default, var(--aia-border, #27272a));border-radius:8px;font-family:var(--aia-font-mono, "SF Mono", Monaco, monospace);font-size:.75rem;color:var(--accent-cyan, var(--aia-primary, #60a5fa));word-break:break-all;text-decoration:none;transition:border-color .15s}.aia-url-link[data-v-da6f26ca]:hover{border-color:var(--accent-cyan, var(--aia-primary, #60a5fa))}.aia-url-actions[data-v-da6f26ca]{display:flex;gap:.5rem;flex-wrap:wrap}.aia-copy-incognito-btn[data-v-da6f26ca]{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;background:#8b5cf61a;border:1px solid rgba(139,92,246,.35);border-radius:6px;color:#a78bfa;font-size:.8125rem;font-family:inherit;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.aia-copy-incognito-btn[data-v-da6f26ca]:hover{background:#8b5cf62e;border-color:#8b5cf699;color:#c4b5fd}.aia-copy-incognito-btn--copied[data-v-da6f26ca]{background:#22c55e1f;border-color:#22c55e73;color:#4ade80}.aia-incognito-hint[data-v-da6f26ca]{position:relative;padding:.75rem 2rem .75rem .875rem;background:#8b5cf614;border:1px solid rgba(139,92,246,.45);border-radius:8px;color:var(--text-primary, #e4e4e7);font-size:.8125rem;line-height:1.5}.aia-incognito-hint__title[data-v-da6f26ca]{display:block;margin-bottom:.25rem;color:#c4b5fd;font-weight:600;font-size:.8125rem}.aia-incognito-hint__body[data-v-da6f26ca]{margin:0;color:var(--text-secondary, #a1a1aa)}.aia-incognito-hint__body kbd[data-v-da6f26ca]{display:inline-block;margin:0 .125rem;padding:.0625rem .375rem;background:#0006;border:1px solid rgba(139,92,246,.3);border-radius:4px;font-family:var(--aia-font-mono, "SF Mono", Monaco, monospace);font-size:.75rem;color:#c4b5fd}.aia-incognito-hint__close[data-v-da6f26ca]{position:absolute;top:.25rem;right:.375rem;width:20px;height:20px;padding:0;background:transparent;border:none;color:var(--text-tertiary, #71717a);font-size:1.125rem;line-height:1;cursor:pointer;transition:color .15s}.aia-incognito-hint__close[data-v-da6f26ca]:hover{color:var(--text-primary, #e4e4e7)}.aia-device-code[data-v-da6f26ca]{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:.75rem;background:#0000004d;border:1px solid var(--border-default, var(--aia-border, #27272a));border-radius:8px}.aia-device-code__label[data-v-da6f26ca]{font-size:.8125rem;color:var(--text-secondary, var(--aia-fg-muted, #a1a1aa))}.aia-device-code__value[data-v-da6f26ca]{font-family:var(--aia-font-mono, "SF Mono", Monaco, monospace);font-size:1.25rem;font-weight:700;letter-spacing:.1em;color:var(--text-primary, var(--aia-fg, #e4e4e7));padding:.375rem 1rem;background:var(--bg-tertiary, rgba(0, 0, 0, .4));border-radius:6px}.aia-menu-section[data-v-da6f26ca]{display:flex;flex-direction:column;gap:.5rem}.aia-menu-section__title[data-v-da6f26ca]{margin:0;font-size:.8125rem;font-weight:500;color:var(--text-secondary, var(--aia-fg-muted, #a1a1aa))}.aia-menu-options[data-v-da6f26ca]{display:flex;flex-direction:column;gap:.5rem}.aia-menu-option[data-v-da6f26ca]{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--bg-secondary, var(--aia-bg-elevated, #141414));border:1px solid var(--border-default, var(--aia-border, #27272a));border-radius:8px;cursor:pointer;text-align:left;font-family:inherit;color:inherit;transition:border-color .15s,background .15s}.aia-menu-option[data-v-da6f26ca]:hover{border-color:var(--accent-cyan, var(--aia-primary, #60a5fa));background:#00cffd0d}.aia-menu-option__num[data-v-da6f26ca]{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;background:var(--bg-tertiary, rgba(0, 0, 0, .3));color:var(--text-secondary, var(--aia-fg-muted, #a1a1aa));font-size:.75rem;font-weight:600;flex-shrink:0}.aia-menu-option__body[data-v-da6f26ca]{display:flex;flex-direction:column;gap:.125rem;flex:1}.aia-menu-option__label[data-v-da6f26ca]{font-size:.8125rem;font-weight:500;color:var(--text-primary, var(--aia-fg, #fafafa))}.aia-menu-option__desc[data-v-da6f26ca]{font-size:.75rem;color:var(--text-secondary, var(--aia-fg-muted, #a1a1aa))}.aia-menu-option__arrow[data-v-da6f26ca]{color:var(--text-tertiary, var(--aia-fg-subtle, #52525b));flex-shrink:0}.aia-text-section[data-v-da6f26ca]{display:flex;flex-direction:column;gap:.5rem}.aia-text-section__queued[data-v-da6f26ca]{margin-left:6px;font-size:12px;color:#fbbf24;font-weight:400}.aia-text-section__label[data-v-da6f26ca]{font-size:.8125rem;color:var(--text-secondary, var(--aia-fg-muted, #a1a1aa))}.aia-text-section__row[data-v-da6f26ca]{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#0000004d;border:1px solid var(--border-default, var(--aia-border, #27272a));border-radius:8px}.aia-text-section__prompt[data-v-da6f26ca]{color:var(--accent-cyan, #60a5fa);font-family:var(--aia-font-mono, monospace);font-weight:600;flex-shrink:0}.aia-text-section__input[data-v-da6f26ca]{flex:1;background:transparent;border:none;color:var(--text-primary, var(--aia-fg, #fafafa));font-family:var(--aia-font-mono, monospace);font-size:.8125rem;outline:none}.aia-text-section__input[data-v-da6f26ca]::placeholder{color:var(--text-tertiary, #52525b)}.aia-text-section__btn[data-v-da6f26ca]{padding:.375rem .75rem;background:var(--primary-color, var(--aia-primary, #7c3aed));color:#fff;border:none;border-radius:6px;font-size:.8125rem;font-weight:500;cursor:pointer;font-family:inherit;transition:background .15s}.aia-text-section__btn[data-v-da6f26ca]:hover{background:var(--primary-hover, var(--aia-primary-hover, #8b5cf6))}.aia-text-section__btn[data-v-da6f26ca]:disabled{opacity:.5;cursor:not-allowed}.aia-terminal[data-v-da6f26ca]{background:#0a0a0f;border:1px solid var(--border-default, var(--aia-border, #27272a));border-radius:8px;overflow:hidden}.aia-terminal__output[data-v-da6f26ca]{padding:.75rem 1rem;font-family:var(--aia-font-mono, "SF Mono", Monaco, monospace);font-size:.75rem;line-height:1.6;color:var(--text-tertiary, #71717a);max-height:200px;overflow-y:auto;white-space:pre-wrap;word-break:break-word}.aia-terminal__line[data-v-da6f26ca]{min-height:1.2em}.aia-error-card[data-v-da6f26ca]{display:flex;align-items:flex-start;gap:.5rem;padding:.75rem 1rem;background:#ef444414;border:1px solid rgba(239,68,68,.2);border-radius:8px;font-size:.8125rem;color:var(--accent-crimson, #ef4444)}.aia-error-card p[data-v-da6f26ca]{margin:.25rem 0 0}.aia-error-card strong[data-v-da6f26ca]{font-weight:600}.aia-cancel-btn[data-v-da6f26ca]{align-self:flex-start;padding:.375rem .75rem;background:transparent;border:1px solid var(--border-default, var(--aia-border, #27272a));border-radius:6px;color:var(--text-secondary, var(--aia-fg-muted, #a1a1aa));font-size:.8125rem;font-family:inherit;cursor:pointer;transition:all .15s}.aia-cancel-btn[data-v-da6f26ca]:hover{background:var(--bg-secondary, rgba(255, 255, 255, .05));color:var(--text-primary, var(--aia-fg, #fafafa))}.aia-backend-picker[data-v-2500895f]{display:grid;gap:.75rem;list-style:none;padding:0}.aia-backend-picker button[data-v-2500895f]{display:flex;gap:.75rem;width:100%;padding:.75rem 1rem;background:var(--aia-card-bg, #1a1a1a);color:var(--aia-card-fg, #eee);border:1px solid var(--aia-border, #333);border-radius:8px;cursor:pointer;text-align:left}.aia-backend-picker button[data-v-2500895f]:hover{background:var(--aia-card-hover, #222)}.aia-installed[data-v-2500895f]{color:var(--aia-ok, #4c8)}.aia-not-installed[data-v-2500895f]{color:var(--aia-warn, #c83)}.wizard-container[data-v-9fe4368c]{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem;animation:wizardIn-9fe4368c .3s ease}@keyframes wizardIn-9fe4368c{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.wizard-header[data-v-9fe4368c]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem}.wizard-header h3[data-v-9fe4368c]{margin:0;font-size:1.125rem;font-weight:600;color:var(--text-primary)}.wizard-close[data-v-9fe4368c]{background:none;border:none;color:var(--text-secondary);font-size:1.5rem;cursor:pointer;padding:0 .25rem;line-height:1}.wizard-close[data-v-9fe4368c]:hover{color:var(--text-primary)}.wizard-steps[data-v-9fe4368c]{display:flex;gap:0;margin-bottom:1.5rem;border-bottom:1px solid var(--border-default);padding-bottom:1rem}.step-indicator[data-v-9fe4368c]{display:flex;align-items:center;gap:.5rem;flex:1;padding:.5rem 0;position:relative}.step-indicator.clickable[data-v-9fe4368c]{cursor:pointer}.step-indicator[data-v-9fe4368c]:after{content:"";position:absolute;right:0;top:50%;transform:translateY(-50%);width:24px;height:1px;background:var(--border-default)}.step-indicator[data-v-9fe4368c]:last-child:after{display:none}.step-number[data-v-9fe4368c]{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:.75rem;font-weight:600;flex-shrink:0;background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-default);transition:all .2s ease}.step-indicator.active .step-number[data-v-9fe4368c]{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.step-indicator.completed .step-number[data-v-9fe4368c]{background:var(--accent-emerald);color:#fff;border-color:var(--accent-emerald)}.step-label[data-v-9fe4368c]{font-size:.8125rem;color:var(--text-tertiary);white-space:nowrap;transition:color .2s ease}.step-indicator.active .step-label[data-v-9fe4368c]{color:var(--text-primary);font-weight:500}.step-indicator.completed .step-label[data-v-9fe4368c]{color:var(--text-secondary)}.wizard-step[data-v-9fe4368c]{animation:stepIn-9fe4368c .25s ease}@keyframes stepIn-9fe4368c{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}.step-body[data-v-9fe4368c]{min-height:160px}.step-question[data-v-9fe4368c]{font-size:1rem;font-weight:500;color:var(--text-primary);margin:0 0 1.25rem}.step-description[data-v-9fe4368c]{color:var(--text-secondary);font-size:.875rem;margin:0 0 1rem}.radio-group[data-v-9fe4368c]{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.25rem}.radio-card[data-v-9fe4368c]{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background:var(--bg-secondary);border:1.5px solid var(--border-default);border-radius:8px;cursor:pointer;transition:all .15s ease}.radio-card[data-v-9fe4368c]:hover{border-color:var(--primary-color);background:var(--bg-hover, var(--bg-secondary))}.radio-card.selected[data-v-9fe4368c]{border-color:var(--primary-color);background:#6366f10f}.radio-card input[type=radio][data-v-9fe4368c]{margin-top:2px;accent-color:var(--primary-color);width:16px;height:16px;flex-shrink:0}.radio-card-content[data-v-9fe4368c]{display:flex;flex-direction:column;gap:.25rem}.radio-card-title[data-v-9fe4368c]{font-size:.875rem;font-weight:600;color:var(--text-primary)}.radio-card-desc[data-v-9fe4368c]{font-size:.75rem;color:var(--text-secondary);line-height:1.4}.account-fields[data-v-9fe4368c]{padding-top:.25rem}.slide-down-enter-active[data-v-9fe4368c],.slide-down-leave-active[data-v-9fe4368c]{transition:all .25s ease;overflow:hidden}.slide-down-enter-from[data-v-9fe4368c],.slide-down-leave-to[data-v-9fe4368c]{opacity:0;transform:translateY(-8px);max-height:0}.slide-down-enter-to[data-v-9fe4368c],.slide-down-leave-from[data-v-9fe4368c]{opacity:1;transform:translateY(0);max-height:300px}.step-actions[data-v-9fe4368c]{display:flex;justify-content:space-between;gap:.75rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border-default)}.step-actions .btn[data-v-9fe4368c]{display:inline-flex;align-items:center;gap:.375rem}.form-group[data-v-9fe4368c]{margin-bottom:1rem}.form-group.compact[data-v-9fe4368c]{margin-bottom:0;margin-top:.5rem}.form-group label[data-v-9fe4368c]{display:block;margin-bottom:.375rem;font-size:.8125rem;font-weight:500;color:var(--text-primary)}.required[data-v-9fe4368c]{color:var(--accent-crimson)}.form-group input[type=text][data-v-9fe4368c],.form-group input[type=email][data-v-9fe4368c]{width:100%;padding:8px 12px;background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:6px;color:var(--text-primary);font-size:14px;font-family:inherit}.form-group input[data-v-9fe4368c]:focus,.form-group select[data-v-9fe4368c]:focus{outline:none;border-color:var(--primary-color)}.form-group small[data-v-9fe4368c]{display:block;margin-top:.25rem;font-size:.75rem;color:var(--text-secondary)}.form-group select[data-v-9fe4368c]{width:100%;padding:8px 12px;background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:6px;color:var(--text-primary);font-size:14px;font-family:inherit}.form-group.checkbox label[data-v-9fe4368c]{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:400}.form-group.checkbox input[type=checkbox][data-v-9fe4368c]{width:16px;height:16px}.status-card[data-v-9fe4368c]{display:flex;align-items:center;gap:.75rem;padding:1rem;border-radius:8px;background:var(--bg-secondary);border:1px solid var(--border-default);margin-bottom:1rem}.status-card.status-ok[data-v-9fe4368c]{border-color:#34d3994d}.status-card.status-warn[data-v-9fe4368c]{border-color:#fbbf244d}.status-icon[data-v-9fe4368c]{display:flex;align-items:center;flex-shrink:0}.status-card.status-ok .status-icon[data-v-9fe4368c]{color:var(--accent-emerald)}.status-card.status-warn .status-icon[data-v-9fe4368c]{color:var(--accent-amber, #fbbf24)}.status-info[data-v-9fe4368c]{display:flex;flex-direction:column;flex:1}.status-title[data-v-9fe4368c]{font-size:.875rem;font-weight:600;color:var(--text-primary)}.status-detail[data-v-9fe4368c]{font-size:.75rem;color:var(--text-secondary)}.config-dir-section[data-v-9fe4368c]{margin-bottom:1rem}.config-dir-label[data-v-9fe4368c]{font-size:.8125rem;font-weight:500;color:var(--text-primary);margin-bottom:.375rem}.config-dir-path[data-v-9fe4368c]{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:6px}.config-dir-path code[data-v-9fe4368c]{font-family:var(--font-mono, monospace);font-size:.8125rem;color:var(--text-primary);flex:1}.dir-created-badge[data-v-9fe4368c]{display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem;color:var(--accent-emerald);font-weight:500}.config-path-edit[data-v-9fe4368c]{margin-top:.375rem}.btn-link-sm[data-v-9fe4368c]{background:none;border:none;color:var(--text-tertiary);font-size:.75rem;cursor:pointer;padding:0;text-decoration:underline;font-family:inherit}.btn-link-sm[data-v-9fe4368c]:hover{color:var(--text-secondary)}.api-key-info[data-v-9fe4368c]{padding:.75rem;background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:6px;display:flex;flex-direction:column;gap:.25rem}.api-key-label[data-v-9fe4368c]{font-size:.75rem;font-weight:500;color:var(--text-secondary)}.api-key-info code[data-v-9fe4368c]{font-family:var(--font-mono, monospace);font-size:.8125rem;color:var(--text-primary)}.login-start-btn[data-v-9fe4368c]{display:inline-flex;align-items:center;gap:8px;margin-bottom:16px}.login-terminal[data-v-9fe4368c]{background:#0a0a0f;border:1px solid var(--border-default);border-radius:8px;overflow:hidden}.login-terminal-output[data-v-9fe4368c]{padding:12px 16px;font-family:Geist Mono,SF Mono,Monaco,monospace;font-size:12px;line-height:1.6;color:#a1a1aa;min-height:120px;max-height:250px;overflow-y:auto;white-space:pre-wrap;word-break:break-word}.terminal-line[data-v-9fe4368c]{min-height:1.2em}.login-terminal-input[data-v-9fe4368c]{display:flex;align-items:center;gap:8px;padding:8px 16px;border-top:1px solid var(--border-default);background:#ffffff05}.terminal-prompt[data-v-9fe4368c]{color:var(--accent-cyan);font-family:Geist Mono,monospace;font-weight:600;flex-shrink:0}.terminal-input[data-v-9fe4368c]{flex:1;background:transparent;border:none;color:var(--text-primary);font-family:Geist Mono,monospace;font-size:12px;outline:none}.terminal-input[data-v-9fe4368c]::placeholder{color:#52525b}.login-connecting[data-v-9fe4368c]{color:var(--accent-cyan)}.login-terminal-waiting[data-v-9fe4368c]{display:flex;align-items:center;gap:8px;padding:10px 16px;border-top:1px solid var(--border-default);color:var(--text-tertiary);font-size:12px}.login-options[data-v-9fe4368c]{display:flex;flex-direction:column;gap:8px;padding:12px 16px;border-top:1px solid var(--border-default)}.login-question-text[data-v-9fe4368c]{margin:0 0 8px;font-size:13px;color:var(--text-secondary);line-height:1.4}.login-option[data-v-9fe4368c]{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:8px;cursor:pointer;transition:border-color .15s ease,background .15s ease;text-align:left;font-family:inherit}.login-option[data-v-9fe4368c]:hover{border-color:var(--accent-cyan);background:#00cffd0d}.login-option-number[data-v-9fe4368c]{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;background:var(--bg-tertiary);color:var(--text-secondary);font-size:12px;font-weight:600;flex-shrink:0}.login-option-label[data-v-9fe4368c]{font-size:13px;font-weight:500;color:var(--text-primary)}.login-option-arrow[data-v-9fe4368c]{color:var(--text-tertiary);flex-shrink:0}.login-status[data-v-9fe4368c]{display:flex;align-items:center;gap:.5rem;padding:.75rem;border-radius:6px;font-size:.8125rem;margin-bottom:.75rem}.login-started[data-v-9fe4368c]{background:#60a5fa1a;color:var(--accent-cyan, #60a5fa);border:1px solid rgba(96,165,250,.2)}.login-error[data-v-9fe4368c]{background:var(--accent-crimson-dim, rgba(239, 68, 68, .1));color:var(--accent-crimson);border:1px solid rgba(239,68,68,.2)}.login-completed[data-v-9fe4368c]{background:var(--accent-emerald-dim, rgba(52, 211, 153, .1));color:var(--accent-emerald);border:1px solid rgba(52,211,153,.2)}.device-code-section[data-v-9fe4368c]{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem;background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:8px;margin-bottom:.75rem}.device-code-label[data-v-9fe4368c]{font-size:.8125rem;color:var(--text-secondary)}.device-code[data-v-9fe4368c]{font-family:var(--font-mono, monospace);font-size:1.5rem;font-weight:700;color:var(--primary-color);letter-spacing:.1em;padding:.5rem 1rem;background:var(--bg-tertiary);border-radius:6px}.skip-note[data-v-9fe4368c]{font-size:.75rem;color:var(--text-tertiary);text-align:center;margin-top:.5rem}.review-card[data-v-9fe4368c]{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:8px;padding:1rem;margin-bottom:1rem;display:flex;flex-direction:column;gap:.5rem}.review-row[data-v-9fe4368c]{display:flex;justify-content:space-between;align-items:center;font-size:.8125rem}.review-label[data-v-9fe4368c]{color:var(--text-secondary)}.review-value[data-v-9fe4368c]{color:var(--text-primary);font-weight:500}code.review-value[data-v-9fe4368c]{font-family:var(--font-mono, monospace);font-weight:400;font-size:.8125rem}.done-body[data-v-9fe4368c]{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2rem 0}.done-icon[data-v-9fe4368c]{color:var(--accent-emerald);margin-bottom:1rem}.done-body h4[data-v-9fe4368c]{margin:0 0 .5rem;font-size:1.125rem;font-weight:600;color:var(--text-primary)}.done-body p[data-v-9fe4368c]{margin:0 0 1.5rem;font-size:.875rem;color:var(--text-secondary)}.done-actions[data-v-9fe4368c]{display:flex;gap:.75rem}.proxy-login-status[data-v-9fe4368c]{width:100%;padding:.75rem 1rem;border-radius:8px;margin-bottom:1.25rem;font-size:.8125rem}.proxy-status-row[data-v-9fe4368c]{display:flex;align-items:center;gap:.5rem}.proxy-running[data-v-9fe4368c]{background:#3b82f61a;border:1px solid rgba(59,130,246,.2);color:var(--text-secondary)}.proxy-success[data-v-9fe4368c]{background:#22c55e1a;border:1px solid rgba(34,197,94,.2);color:var(--accent-emerald)}.proxy-device_auth[data-v-9fe4368c]{background:#3b82f61a;border:1px solid rgba(59,130,246,.2);color:var(--text-secondary)}.proxy-device-auth[data-v-9fe4368c]{display:flex;flex-direction:column;gap:.75rem}.proxy-url-badge[data-v-9fe4368c]{display:flex;align-items:center;gap:.5rem;padding:.625rem .875rem;background:#60a5fa1a;border:1px solid rgba(96,165,250,.2);border-radius:8px;font-size:.8125rem;color:var(--accent-cyan, #60a5fa)}.proxy-oauth-link[data-v-9fe4368c]{display:block;padding:.625rem .875rem;background:#0000004d;border:1px solid var(--border-default, #27272a);border-radius:8px;font-family:SF Mono,Monaco,monospace;font-size:.75rem;color:var(--accent-cyan, #60a5fa);word-break:break-all;text-decoration:none;transition:border-color .15s}.proxy-oauth-link[data-v-9fe4368c]:hover{border-color:var(--accent-cyan, #60a5fa)}.proxy-device-code-card[data-v-9fe4368c]{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:.75rem;background:#0000004d;border:1px solid var(--border-default, #27272a);border-radius:8px}.proxy-device-code-label[data-v-9fe4368c]{font-size:.8125rem;color:var(--text-secondary)}.proxy-device-code-value[data-v-9fe4368c]{font-family:SF Mono,Monaco,Cascadia Code,monospace;font-size:1.25rem;font-weight:700;color:#e4e4e7;letter-spacing:2px;padding:.375rem 1rem;background:var(--bg-tertiary, rgba(0, 0, 0, .4));border-radius:6px}.proxy-callback-section[data-v-9fe4368c]{width:100%;margin-top:.25rem}.proxy-callback-hint[data-v-9fe4368c]{margin:0 0 .5rem;font-size:.75rem;color:var(--text-tertiary);line-height:1.4}.proxy-callback-row[data-v-9fe4368c]{display:flex;gap:.5rem;align-items:center}.proxy-callback-input[data-v-9fe4368c]{flex:1;font-size:.75rem;padding:.5rem .75rem;background:#0000004d;border:1px solid var(--border-default, #27272a);border-radius:6px;color:var(--text-primary);font-family:SF Mono,monospace;outline:none;transition:border-color .15s}.proxy-callback-input[data-v-9fe4368c]:focus{border-color:var(--accent-cyan, #60a5fa)}.proxy-callback-input[data-v-9fe4368c]::placeholder{color:var(--text-tertiary, #52525b)}.proxy-skipped[data-v-9fe4368c]{background:#eab30814;border:1px solid rgba(234,179,8,.15);color:var(--text-tertiary)}.proxy-error[data-v-9fe4368c]{background:#ef444414;border:1px solid rgba(239,68,68,.15);color:var(--accent-red, #ef4444)}.error-text[data-v-9fe4368c]{font-size:.8125rem;color:var(--accent-crimson);margin-top:.375rem}.btn[data-v-9fe4368c]{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease;font-family:inherit;border:none}.btn-sm[data-v-9fe4368c]{padding:.375rem .75rem;font-size:.8125rem}.btn-primary[data-v-9fe4368c]{background:var(--primary-color);color:#fff}.btn-primary[data-v-9fe4368c]:hover:not(:disabled){background:var(--primary-hover)}.btn-primary[data-v-9fe4368c]:disabled{opacity:.6;cursor:not-allowed}.btn-secondary[data-v-9fe4368c]{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-default)}.btn-secondary[data-v-9fe4368c]:hover{background:var(--bg-hover, var(--bg-secondary))}.btn-outline[data-v-9fe4368c]{background:transparent;color:var(--text-secondary);border:1px solid var(--border-default)}.btn-outline[data-v-9fe4368c]:hover{background:var(--bg-tertiary);color:var(--text-primary)}.spinner-sm[data-v-9fe4368c]{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:currentColor;border-radius:50%;animation:spin-9fe4368c .6s linear infinite;display:inline-block;flex-shrink:0}@keyframes spin-9fe4368c{to{transform:rotate(360deg)}}.aia-onboarding[data-v-8c20d7e7]{background:var(--aia-bg-elevated);border:1px solid var(--aia-border);border-radius:var(--aia-radius-lg);padding:var(--aia-space-6);font-family:var(--aia-font-sans);color:var(--aia-fg);max-width:640px}.aia-onboarding__header h2[data-v-8c20d7e7]{margin:0 0 var(--aia-space-4);font-size:var(--aia-text-xl)}.aia-onboarding__welcome[data-v-8c20d7e7]{display:flex;flex-direction:column;gap:var(--aia-space-4)}.aia-onboarding__kind-grid[data-v-8c20d7e7]{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--aia-space-3)}.aia-kind-card[data-v-8c20d7e7]{display:flex;flex-direction:column;align-items:flex-start;gap:var(--aia-space-2);background:var(--aia-bg);color:var(--aia-fg);border:1px solid var(--aia-border);border-radius:var(--aia-radius);padding:var(--aia-space-4);font:inherit;cursor:pointer;transition:all var(--aia-transition)}.aia-kind-card[data-v-8c20d7e7]:disabled{opacity:.5;cursor:not-allowed}.aia-kind-card--installed[data-v-8c20d7e7]:hover{background:var(--aia-bg-hover);border-color:var(--aia-border-hover)}.aia-kind-card__name[data-v-8c20d7e7]{font-size:var(--aia-text-base);font-weight:600}.aia-kind-card__badge[data-v-8c20d7e7]{font-size:var(--aia-text-xs);color:var(--aia-success);padding:var(--aia-space-1) var(--aia-space-2);background:color-mix(in srgb,var(--aia-success) 15%,transparent);border-radius:var(--aia-radius-sm)}.aia-kind-card__badge--missing[data-v-8c20d7e7]{color:var(--aia-fg-muted);background:color-mix(in srgb,var(--aia-fg-muted) 15%,transparent)}.aia-onboarding__tabs[data-v-8c20d7e7]{display:flex;gap:var(--aia-space-2);margin-bottom:var(--aia-space-4);border-bottom:1px solid var(--aia-border)}.aia-tab[data-v-8c20d7e7]{background:transparent;color:var(--aia-fg-muted);border:none;border-bottom:2px solid transparent;padding:var(--aia-space-2) var(--aia-space-4);font:inherit;cursor:pointer;transition:all var(--aia-transition)}.aia-tab[data-v-8c20d7e7]:hover{color:var(--aia-fg)}.aia-tab--active[data-v-8c20d7e7]{color:var(--aia-fg);border-bottom-color:var(--aia-primary)}.aia-onboarding__form[data-v-8c20d7e7],.aia-onboarding__oauth-start[data-v-8c20d7e7]{display:flex;flex-direction:column;gap:var(--aia-space-4)}.aia-label[data-v-8c20d7e7]{display:flex;flex-direction:column;gap:var(--aia-space-2);font-size:var(--aia-text-sm);color:var(--aia-fg-muted)}.aia-input[data-v-8c20d7e7]{background:var(--aia-bg);color:var(--aia-fg);border:1px solid var(--aia-border);border-radius:var(--aia-radius);padding:var(--aia-space-3);font:inherit;font-family:var(--aia-font-mono)}.aia-btn[data-v-8c20d7e7]{background:var(--aia-bg);color:var(--aia-fg);border:1px solid var(--aia-border);border-radius:var(--aia-radius);padding:var(--aia-space-3) var(--aia-space-4);font:inherit;cursor:pointer;transition:all var(--aia-transition)}.aia-btn[data-v-8c20d7e7]:hover{background:var(--aia-bg-hover);border-color:var(--aia-border-hover)}.aia-btn--primary[data-v-8c20d7e7]{background:var(--aia-primary);color:var(--aia-primary-fg);border-color:var(--aia-primary)}.aia-btn--primary[data-v-8c20d7e7]:hover{background:var(--aia-primary-hover)}.aia-onboarding__oauth-challenge[data-v-8c20d7e7]{display:flex;flex-direction:column;gap:var(--aia-space-4)}.aia-onboarding__oauth-uri[data-v-8c20d7e7]{color:var(--aia-primary);font-family:var(--aia-font-mono);word-break:break-all}.aia-code-display[data-v-8c20d7e7]{display:flex;align-items:center;gap:var(--aia-space-3);background:var(--aia-bg);border:1px solid var(--aia-border);border-radius:var(--aia-radius);padding:var(--aia-space-3)}.aia-code-display code[data-v-8c20d7e7]{flex:1;font-family:var(--aia-font-mono);font-size:var(--aia-text-lg);font-weight:600;letter-spacing:.1em}.aia-copy-btn[data-v-8c20d7e7]{background:transparent;color:var(--aia-fg-muted);border:1px solid var(--aia-border);border-radius:var(--aia-radius-sm);padding:var(--aia-space-1) var(--aia-space-3);font:inherit;font-size:var(--aia-text-sm);cursor:pointer}.aia-onboarding__hint[data-v-8c20d7e7]{color:var(--aia-fg-muted);font-size:var(--aia-text-sm)}.aia-onboarding__status[data-v-8c20d7e7],.aia-onboarding__success[data-v-8c20d7e7],.aia-onboarding__error[data-v-8c20d7e7]{padding:var(--aia-space-4) 0}.aia-onboarding__success[data-v-8c20d7e7]{color:var(--aia-success)}.aia-onboarding__error[data-v-8c20d7e7]{color:var(--aia-danger)}.aia-account-edit[data-v-56b7b8c3]{display:flex;flex-direction:column;gap:.75rem}.aia-field[data-v-56b7b8c3]{display:flex}.aia-actions[data-v-56b7b8c3]{display:flex;gap:.5rem}.aia-error[data-v-56b7b8c3]{color:var(--aia-error, #c00)}.aia-chat-message[data-v-52897838]{padding:var(--aia-space-3, 12px);border-radius:var(--aia-radius-md, 8px);margin-bottom:var(--aia-space-2, 8px)}.aia-chat-message--user[data-v-52897838]{background:var(--aia-color-surface-alt, #f0f0f0);margin-left:var(--aia-space-6, 48px)}.aia-chat-message--assistant[data-v-52897838]{background:var(--aia-color-surface, #fff);border:1px solid var(--aia-color-border, #e0e0e0);margin-right:var(--aia-space-6, 48px)}.aia-chat-message__role[data-v-52897838]{font-size:var(--aia-text-xs, 11px);font-weight:600;text-transform:uppercase;color:var(--aia-color-text-muted, #888);margin-bottom:var(--aia-space-1, 4px)}.aia-chat-message__content[data-v-52897838]{white-space:pre-wrap;word-break:break-word;line-height:1.5}.aia-chat-message__meta[data-v-52897838]{font-size:var(--aia-text-xs, 11px);color:var(--aia-color-text-muted, #888);margin-top:var(--aia-space-1, 4px);display:flex;gap:var(--aia-space-2, 8px)}.aia-chat-message--streaming .aia-chat-message__content[data-v-52897838]:after{content:"▮";animation:blink-52897838 1s step-end infinite}@keyframes blink-52897838{50%{opacity:0}}.aia-chat-panel[data-v-2904376c]{display:flex;flex-direction:column;height:100%;font-family:var(--aia-font-sans, system-ui, sans-serif)}.aia-chat-panel__messages[data-v-2904376c]{flex:1;overflow-y:auto;padding:var(--aia-space-3, 12px)}.aia-chat-panel__input[data-v-2904376c]{display:flex;gap:var(--aia-space-2, 8px);padding:var(--aia-space-3, 12px);border-top:1px solid var(--aia-color-border, #e0e0e0)}.aia-chat-panel__textarea[data-v-2904376c]{flex:1;resize:none;padding:var(--aia-space-2, 8px);border:1px solid var(--aia-color-border, #e0e0e0);border-radius:var(--aia-radius-md, 8px);font-family:inherit;font-size:var(--aia-text-sm, 14px)}.aia-chat-panel__send[data-v-2904376c]{padding:var(--aia-space-2, 8px) var(--aia-space-4, 16px);background:var(--aia-color-primary, #2563eb);color:#fff;border:none;border-radius:var(--aia-radius-md, 8px);cursor:pointer;font-weight:500}.aia-chat-panel__send[data-v-2904376c]:disabled{opacity:.5;cursor:not-allowed}.message-actions[data-v-56c16ef7]{display:flex;gap:4px;opacity:0;transition:opacity .15s;position:absolute;top:4px;right:4px}.action-btn[data-v-56c16ef7]{background:var(--aia-bg-secondary, #1a1a2e);border:1px solid var(--aia-border, #333);border-radius:4px;padding:2px 6px;cursor:pointer;font-size:11px;color:var(--aia-text-muted, #888)}.action-btn[data-v-56c16ef7]:hover{background:var(--aia-bg-hover, #252540);color:var(--aia-text, #e0e0e0)}.aia-bubble[data-v-ffa5ceee]{display:flex;gap:.75rem;padding:.75rem 0;position:relative}.aia-bubble[data-v-ffa5ceee]:hover .message-actions{opacity:1}.aia-bubble--user[data-v-ffa5ceee]{flex-direction:row-reverse}.aia-bubble__avatar[data-v-ffa5ceee]{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;flex-shrink:0}.aia-bubble--user .aia-bubble__avatar[data-v-ffa5ceee]{background:#60a5fa33;color:var(--accent-cyan, #60a5fa)}.aia-bubble--assistant .aia-bubble__avatar[data-v-ffa5ceee]{background:#7c3aed33;color:var(--accent-violet, #8b5cf6)}.aia-bubble--system .aia-bubble__avatar[data-v-ffa5ceee]{background:#71717a33;color:var(--aia-fg-subtle, #71717a)}.aia-bubble--tool .aia-bubble__avatar[data-v-ffa5ceee]{background:#10b98133;color:var(--aia-success, #10b981)}.aia-bubble__body[data-v-ffa5ceee]{flex:1;min-width:0}.aia-bubble__header[data-v-ffa5ceee]{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.aia-bubble__role[data-v-ffa5ceee]{font-size:var(--aia-text-xs, 12px);font-weight:600;text-transform:capitalize;color:var(--aia-fg-muted, #a1a1aa)}.aia-bubble__backend[data-v-ffa5ceee]{font-size:.65rem;padding:1px 6px;border-radius:var(--aia-radius-sm, 4px);background:var(--aia-bg-hover, #1f1f1f);color:var(--aia-fg-subtle, #71717a)}.aia-bubble__time[data-v-ffa5ceee]{font-size:.65rem;color:var(--aia-fg-subtle, #71717a);margin-left:auto}.aia-bubble__content[data-v-ffa5ceee]{font-size:var(--aia-text-sm, 14px);line-height:1.6;color:var(--aia-fg, #fafafa)}.aia-bubble__content[data-v-ffa5ceee] pre{background:var(--aia-bg, #0a0a0a);border-radius:var(--aia-radius, 8px);padding:.75rem;overflow-x:auto;margin:.5rem 0;font-size:.8rem}.aia-bubble__content[data-v-ffa5ceee] code{font-family:var(--aia-font-mono, monospace)}.aia-bubble__content[data-v-ffa5ceee] p{margin:.25rem 0}.aia-bubble--streaming .aia-bubble__content[data-v-ffa5ceee]:after{content:"▮";animation:aia-blink-ffa5ceee 1s step-end infinite}@keyframes aia-blink-ffa5ceee{50%{opacity:0}}.aia-controls[data-v-85010e74]{display:flex;flex-wrap:wrap;gap:var(--aia-space-3, 12px);padding:var(--aia-space-3, 12px);border-bottom:1px solid var(--aia-border, #27272a);background:var(--aia-bg-elevated, #141414)}.aia-controls__group[data-v-85010e74]{display:flex;flex-direction:column;gap:var(--aia-space-1, 4px);min-width:120px}.aia-controls__group--mode[data-v-85010e74]{margin-left:auto}.aia-controls__label[data-v-85010e74]{font-size:var(--aia-text-xs, 12px);font-weight:600;color:var(--aia-fg-muted, #a1a1aa);text-transform:uppercase;letter-spacing:.04em}.aia-controls__select[data-v-85010e74]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--aia-bg, #0a0a0a);color:var(--aia-fg, #fafafa);border:1px solid var(--aia-border, #27272a);border-radius:var(--aia-radius-sm, 4px);padding:var(--aia-space-1, 4px) var(--aia-space-2, 8px);font-size:var(--aia-text-sm, 14px);cursor:pointer;transition:border-color var(--aia-transition, .15s ease-out)}.aia-controls__select[data-v-85010e74]:hover:not(:disabled){border-color:var(--aia-border-hover, #3f3f46)}.aia-controls__select[data-v-85010e74]:disabled{opacity:.4;cursor:not-allowed}.aia-controls__modes[data-v-85010e74]{display:flex;gap:2px;background:var(--aia-bg, #0a0a0a);border-radius:var(--aia-radius-sm, 4px);padding:2px}.aia-controls__mode-btn[data-v-85010e74]{padding:var(--aia-space-1, 4px) var(--aia-space-2, 8px);border:none;border-radius:3px;background:transparent;color:var(--aia-fg-muted, #a1a1aa);font-size:var(--aia-text-xs, 12px);font-weight:500;cursor:pointer;transition:all var(--aia-transition, .15s ease-out)}.aia-controls__mode-btn[data-v-85010e74]:hover{color:var(--aia-fg, #fafafa)}.aia-controls__mode-btn--active[data-v-85010e74]{background:var(--aia-primary, #7c3aed);color:var(--aia-primary-fg, #fff)}.aia-input[data-v-51976e76]{display:flex;gap:var(--aia-space-2, 8px);padding:var(--aia-space-3, 12px);border-top:1px solid var(--aia-border, #27272a);background:var(--aia-bg-elevated, #141414)}.aia-input__textarea[data-v-51976e76]{flex:1;resize:none;padding:var(--aia-space-2, 8px) var(--aia-space-3, 12px);background:var(--aia-bg, #0a0a0a);color:var(--aia-fg, #fafafa);border:1px solid var(--aia-border, #27272a);border-radius:var(--aia-radius, 8px);font-family:var(--aia-font-sans, system-ui, sans-serif);font-size:var(--aia-text-sm, 14px);line-height:1.5;max-height:120px;overflow-y:auto;transition:border-color var(--aia-transition, .15s ease-out)}.aia-input__textarea[data-v-51976e76]:focus{outline:none;border-color:var(--aia-primary, #7c3aed)}.aia-input__textarea[data-v-51976e76]::placeholder{color:var(--aia-fg-subtle, #71717a)}.aia-input__textarea[data-v-51976e76]:disabled{opacity:.5;cursor:not-allowed}.aia-input__send[data-v-51976e76]{align-self:flex-end;padding:var(--aia-space-2, 8px) var(--aia-space-4, 16px);background:var(--aia-primary, #7c3aed);color:var(--aia-primary-fg, #fff);border:none;border-radius:var(--aia-radius, 8px);font-weight:600;font-size:var(--aia-text-sm, 14px);cursor:pointer;transition:background var(--aia-transition, .15s ease-out)}.aia-input__send[data-v-51976e76]:hover:not(:disabled){background:var(--aia-primary-hover, #8b5cf6)}.aia-input__send[data-v-51976e76]:disabled{opacity:.5;cursor:not-allowed}.aia-responses[data-v-bde6df1f]{display:flex;flex-direction:column;gap:var(--aia-space-2, 8px);padding:var(--aia-space-2, 8px) 0}.aia-resp[data-v-bde6df1f]{border:1px solid var(--aia-border, #27272a);border-radius:var(--aia-radius, 8px);background:var(--aia-bg-elevated, #141414);overflow:hidden}.aia-resp__header[data-v-bde6df1f]{display:flex;align-items:center;gap:var(--aia-space-2, 8px);padding:var(--aia-space-2, 8px) var(--aia-space-3, 12px);background:var(--resp-bg);cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none}.aia-resp__header[data-v-bde6df1f]::-webkit-details-marker{display:none}.aia-resp__name[data-v-bde6df1f]{font-weight:600;font-size:var(--aia-text-sm, 14px)}.aia-resp__badge[data-v-bde6df1f]{font-size:var(--aia-text-xs, 12px);padding:1px 8px;border-radius:var(--aia-radius-sm, 4px);margin-left:auto;font-weight:500}.aia-resp__badge--streaming[data-v-bde6df1f]{background:#60a5fa26;color:#60a5fa}.aia-resp__badge--complete[data-v-bde6df1f]{background:#10b98126;color:#34d399}.aia-resp__badge--error[data-v-bde6df1f]{background:#ef444426;color:#ef4444}.aia-resp__badge--timeout[data-v-bde6df1f]{background:#f59e0b26;color:#f59e0b}.aia-resp__body[data-v-bde6df1f]{padding:var(--aia-space-3, 12px);font-size:var(--aia-text-sm, 14px);line-height:1.6;color:var(--aia-fg, #fafafa)}.aia-resp__body[data-v-bde6df1f] pre{background:var(--aia-bg, #0a0a0a);border-radius:var(--aia-radius, 8px);padding:.75rem;overflow-x:auto;margin:.5rem 0;font-size:.8rem}.aia-resp__body[data-v-bde6df1f] code{font-family:var(--aia-font-mono, monospace)}.aia-resp__body[data-v-bde6df1f] p{margin:.25rem 0}.aia-resp__error[data-v-bde6df1f]{padding:var(--aia-space-2, 8px) var(--aia-space-3, 12px);font-size:var(--aia-text-xs, 12px);color:var(--aia-danger, #ef4444)}.aia-synth[data-v-446c73a3]{border:1px solid var(--aia-border, #27272a);border-radius:var(--aia-radius, 8px);background:var(--aia-bg-elevated, #141414);overflow:hidden;margin:var(--aia-space-2, 8px) 0;border-left:3px solid var(--aia-primary, #7c3aed)}.aia-synth__header[data-v-446c73a3]{display:flex;align-items:center;gap:var(--aia-space-2, 8px);padding:var(--aia-space-2, 8px) var(--aia-space-3, 12px);background:#7c3aed14}.aia-synth__label[data-v-446c73a3]{font-weight:700;font-size:var(--aia-text-sm, 14px);color:var(--aia-primary-hover, #8b5cf6)}.aia-synth__via[data-v-446c73a3]{font-size:var(--aia-text-xs, 12px);color:var(--aia-fg-subtle, #71717a)}.aia-synth__badge[data-v-446c73a3]{font-size:var(--aia-text-xs, 12px);padding:1px 8px;border-radius:var(--aia-radius-sm, 4px);margin-left:auto;font-weight:500}.aia-synth__badge--waiting[data-v-446c73a3]{background:#a1a1aa26;color:#a1a1aa}.aia-synth__badge--streaming[data-v-446c73a3]{background:#60a5fa26;color:#60a5fa}.aia-synth__badge--complete[data-v-446c73a3]{background:#10b98126;color:#34d399}.aia-synth__badge--error[data-v-446c73a3]{background:#ef444426;color:#ef4444}.aia-synth__sources[data-v-446c73a3]{padding:var(--aia-space-1, 4px) var(--aia-space-3, 12px);font-size:var(--aia-text-xs, 12px);color:var(--aia-fg-subtle, #71717a)}.aia-synth__content[data-v-446c73a3]{padding:var(--aia-space-3, 12px);font-size:var(--aia-text-sm, 14px);line-height:1.6;color:var(--aia-fg, #fafafa)}.aia-synth__content[data-v-446c73a3] pre{background:var(--aia-bg, #0a0a0a);border-radius:var(--aia-radius, 8px);padding:.75rem;overflow-x:auto;margin:.5rem 0;font-size:.8rem}.aia-synth__content[data-v-446c73a3] code{font-family:var(--aia-font-mono, monospace)}.aia-synth__content[data-v-446c73a3] p{margin:.25rem 0}.aia-synth--streaming .aia-synth__content[data-v-446c73a3]:after{content:"▮";animation:aia-synth-blink-446c73a3 1s step-end infinite}.aia-synth__error[data-v-446c73a3]{padding:var(--aia-space-2, 8px) var(--aia-space-3, 12px);font-size:var(--aia-text-xs, 12px);color:var(--aia-danger, #ef4444)}@keyframes aia-synth-blink-446c73a3{50%{opacity:0}}.finalization-banner[data-v-bde99def]{display:flex;align-items:center;gap:12px;padding:12px 16px;margin:8px 0;border-radius:8px;background:linear-gradient(135deg,var(--aia-accent-bg, #1a2744),var(--aia-bg-secondary, #1a1a2e));border:1px solid var(--aia-accent, #3b82f6)}.banner-content[data-v-bde99def]{flex:1;min-width:0}.banner-title[data-v-bde99def]{margin:0;font-size:14px;font-weight:600;color:var(--aia-text, #e0e0e0)}.banner-description[data-v-bde99def]{margin:2px 0 0;font-size:12px;color:var(--aia-text-muted, #888)}.banner-button[data-v-bde99def]{flex-shrink:0;padding:8px 16px;border-radius:6px;border:none;background:var(--aia-accent, #3b82f6);color:#fff;font-weight:600;font-size:13px;cursor:pointer}.banner-button[data-v-bde99def]:disabled{opacity:.5;cursor:not-allowed}.banner-button[data-v-bde99def]:hover:not(:disabled){filter:brightness(1.1)}.process-group[data-v-4607873c]{border:1px solid var(--aia-border, #333);border-radius:8px;margin:8px 0;overflow:hidden}.process-group-header[data-v-4607873c]{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;background:var(--aia-bg-secondary, #1a1a2e);-webkit-user-select:none;user-select:none}.process-group-badge[data-v-4607873c]{font-size:11px;font-weight:600;padding:2px 8px;border-radius:4px;color:#000}.process-group-label[data-v-4607873c]{font-family:monospace;font-size:13px;color:var(--aia-text, #e0e0e0);flex:1}.process-group-time[data-v-4607873c]{font-size:11px;color:var(--aia-text-muted, #888)}.process-group-chevron[data-v-4607873c]{font-size:10px;color:var(--aia-text-muted, #888)}.process-group-body[data-v-4607873c]{padding:8px 12px;max-height:300px;overflow-y:auto;font-family:monospace;font-size:13px;white-space:pre-wrap;color:var(--aia-text, #e0e0e0);border-top:1px solid var(--aia-border, #333)}.aia-smart-panel[data-v-b27251f6]{display:flex;flex-direction:column;height:100%;font-family:var(--aia-font-sans, system-ui, sans-serif);background:var(--aia-bg, #0a0a0a);color:var(--aia-fg, #fafafa);position:relative}.aia-smart-panel__messages[data-v-b27251f6]{flex:1;overflow-y:auto;padding:var(--aia-space-3, 12px) var(--aia-space-4, 16px)}.aia-smart-panel__welcome[data-v-b27251f6]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;gap:var(--aia-space-2, 8px);text-align:center;padding:var(--aia-space-8, 32px)}.aia-smart-panel__welcome-icon[data-v-b27251f6]{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#7c3aed26;color:var(--aia-primary-hover, #8b5cf6);font-weight:700;font-size:var(--aia-text-lg, 18px);margin-bottom:var(--aia-space-2, 8px)}.aia-smart-panel__welcome-title[data-v-b27251f6]{margin:0;font-size:var(--aia-text-xl, 24px);font-weight:700;color:var(--aia-fg, #fafafa)}.aia-smart-panel__welcome-sub[data-v-b27251f6]{margin:0;font-size:var(--aia-text-sm, 14px);color:var(--aia-fg-muted, #a1a1aa)}.aia-smart-panel__scroll-btn[data-v-b27251f6]{position:absolute;bottom:80px;right:var(--aia-space-4, 16px);width:36px;height:36px;border-radius:50%;border:1px solid var(--aia-border, #27272a);background:var(--aia-bg-elevated, #141414);color:var(--aia-fg, #fafafa);cursor:pointer;font-size:var(--aia-text-base, 16px);display:flex;align-items:center;justify-content:center;box-shadow:var(--aia-shadow-sm, 0 1px 2px rgba(0,0,0,.4));transition:background var(--aia-transition, .15s ease-out)}.aia-smart-panel__scroll-btn[data-v-b27251f6]:hover{background:var(--aia-bg-hover, #1f1f1f)}.aia-smart-panel__error[data-v-b27251f6]{padding:var(--aia-space-2, 8px) var(--aia-space-3, 12px);background:#ef44441a;color:var(--aia-danger, #ef4444);font-size:var(--aia-text-sm, 14px);border-top:1px solid rgba(239,68,68,.2)}.aia-smart-panel__anchor[data-v-b27251f6]{height:1px}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-accounts/vue-styled",
3
- "version": "0.3.6",
3
+ "version": "0.3.7",
4
4
  "description": "Vue 3 styled components for ai-accounts",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",