@ai-accounts/vue-styled 0.3.0-alpha.1 → 0.3.0-alpha.2
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 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),O=require("@ai-accounts/vue-headless"),De={class:"aia-login-stream"},We={key:0,class:"aia-url-prompt"},Ie=["href"],Pe={key:0,class:"aia-code"},Ae=["type"],$e={key:2,class:"aia-stdout"},Le={key:3,class:"aia-error"},Te=e.defineComponent({__name:"LoginStream",props:{session:{},showStdout:{type:Boolean,default:!0}},setup(r){const N=r,n=e.ref("");async function f(){const a=n.value;n.value="",await N.session.respond(a)}return(a,c)=>(e.openBlock(),e.createElementBlock("div",De,[r.session.urlPrompt.value?(e.openBlock(),e.createElementBlock("div",We,[c[3]||(c[3]=e.createElementVNode("p",{class:"aia-label"},"Open this URL to authenticate:",-1)),e.createElementVNode("a",{href:r.session.urlPrompt.value.url,target:"_blank",rel:"noopener"},e.toDisplayString(r.session.urlPrompt.value.url),9,Ie),r.session.urlPrompt.value.user_code?(e.openBlock(),e.createElementBlock("p",Pe,[c[2]||(c[2]=e.createTextVNode(" Code: ",-1)),e.createElementVNode("code",null,e.toDisplayString(r.session.urlPrompt.value.user_code),1)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),r.session.textPrompt.value?(e.openBlock(),e.createElementBlock("form",{key:1,class:"aia-text-prompt",onSubmit:e.withModifiers(f,["prevent"])},[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(r.session.textPrompt.value.prompt)+" ",1),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":c[0]||(c[0]=d=>n.value=d),type:r.session.textPrompt.value.hidden?"password":"text",autocomplete:"off"},null,8,Ae),[[e.vModelDynamic,n.value]])]),c[4]||(c[4]=e.createElementVNode("button",{type:"submit"},"Continue",-1))],32)):e.createCommentVNode("",!0),r.showStdout&&r.session.stdoutLines.value.length>0?(e.openBlock(),e.createElementBlock("pre",$e,e.toDisplayString(r.session.stdoutLines.value.join("")),1)):e.createCommentVNode("",!0),r.session.status.value==="failed"?(e.openBlock(),e.createElementBlock("div",Le,[e.createElementVNode("strong",null,e.toDisplayString(r.session.errorCode.value),1),e.createElementVNode("p",null,e.toDisplayString(r.session.errorMessage.value),1)])):e.createCommentVNode("",!0),r.session.status.value==="running"?(e.openBlock(),e.createElementBlock("button",{key:4,type:"button",class:"aia-cancel",onClick:c[1]||(c[1]=d=>r.session.cancel())}," Cancel ")):e.createCommentVNode("",!0)]))}}),G=(r,N)=>{const n=r.__vccOpts||r;for(const[f,a]of N)n[f]=a;return n},ke=G(Te,[["__scopeId","data-v-133adf55"]]),Oe={class:"aia-backend-picker"},Fe=["onClick"],Ke=["src","alt"],Me={class:"aia-backend-info"},Ue={key:0,class:"aia-installed"},Re={key:1,class:"aia-not-installed"},He=e.defineComponent({__name:"BackendPicker",props:{installStatus:{}},emits:["pick"],setup(r,{emit:N}){const n=r,f=N,a=O.useBackendRegistry();function c(d){return n.installStatus?n.installStatus[d]:void 0}return e.onMounted(async()=>{a.loaded.value||await a.load()}),(d,b)=>(e.openBlock(),e.createElementBlock("ul",Oe,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(a).backends.value,u=>(e.openBlock(),e.createElementBlock("li",{key:u.kind},[e.createElementVNode("button",{type:"button",onClick:i=>f("pick",u.kind)},[u.icon_url?(e.openBlock(),e.createElementBlock("img",{key:0,src:u.icon_url,alt:u.display_name},null,8,Ke)):e.createCommentVNode("",!0),e.createElementVNode("div",Me,[e.createElementVNode("strong",null,e.toDisplayString(u.display_name),1),c(u.kind)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[c(u.kind).installed?(e.openBlock(),e.createElementBlock("span",Ue," installed"+e.toDisplayString(c(u.kind).version?" v"+c(u.kind).version:""),1)):(e.openBlock(),e.createElementBlock("span",Re,"not detected"))],64)):e.createCommentVNode("",!0)])],8,Fe)]))),128))]))}}),ye=G(He,[["__scopeId","data-v-2500895f"]]),qe={class:"wizard-container","data-tour":"account-wizard"},Ge={class:"wizard-header"},Ye={key:0,class:"wizard-step"},je={class:"step-body"},Xe={class:"step-actions"},Je={key:1,class:"wizard-steps"},Qe=["onClick"],Ze={class:"step-number"},et={key:0,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"3",width:"12",height:"12"},tt={class:"step-label"},ot={key:2,class:"wizard-step"},nt={class:"step-body"},at={class:"step-question"},lt={class:"radio-group"},st={class:"radio-card-content"},it={class:"radio-card-title"},ct={class:"radio-card-desc"},rt={class:"radio-card-content"},dt={class:"radio-card-title"},ut={class:"radio-card-desc"},pt={key:0,class:"account-fields"},mt={class:"form-group"},vt={for:"wiz-name"},kt=["placeholder"],yt={class:"form-group"},gt={for:"wiz-email"},Et=["placeholder"],_t={class:"step-actions"},ft=["disabled"],bt={key:3,class:"wizard-step"},ht={class:"step-body"},Nt={class:"status-icon"},Vt={key:0,class:"spinner-sm"},Bt={key:1,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},Ct={key:2,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},wt={class:"status-info"},St={class:"status-title"},xt={key:0,class:"status-detail"},zt={key:1,class:"status-detail"},Dt={key:1,class:"spinner-sm"},Wt={key:0,class:"error-text"},It={key:1,class:"install-success-text"},Pt={key:2,class:"install-stderr"},At={key:3,class:"config-dir-section"},$t={class:"config-dir-label"},Lt={class:"config-dir-path"},Tt=["disabled"],Ot={key:1,class:"dir-created-badge"},Ft={key:0,class:"error-text"},Kt={class:"config-path-edit"},Mt={key:1,class:"form-group compact"},Ut=["placeholder"],Rt={key:4,class:"api-key-info"},Ht={class:"api-key-label"},qt={class:"step-actions"},Gt={key:4,class:"wizard-step"},Yt={class:"step-body"},jt={key:0,class:"login-status login-connecting"},Xt={key:2,class:"login-status login-completed"},Jt={class:"login-status login-error"},Qt={class:"step-actions"},Zt={key:5,class:"wizard-step"},eo={class:"step-body"},to={key:0,class:"cliproxy-install-block"},oo=["disabled"],no={key:0,class:"spinner-sm"},ao={key:0},lo={key:0,class:"install-success-text"},so={key:1},io={key:0,class:"install-stderr"},co={key:1,class:"proxy-step-body"},ro={key:1,class:"proxy-running"},uo={key:2,class:"proxy-device-auth"},po=["href"],mo={key:1,class:"proxy-code"},vo={class:"callback-paste"},ko={class:"callback-label"},yo={key:0,class:"error-text"},go={key:3,class:"proxy-success"},Eo={key:4,class:"proxy-skipped"},_o={key:5,class:"proxy-error"},fo={class:"error-text"},bo={key:2,class:"proxy-loading"},ho={class:"step-actions"},No={key:6,class:"wizard-step"},Vo={class:"step-body"},Bo={class:"review-card"},Co={class:"review-row"},wo={class:"review-label"},So={class:"review-value"},xo={key:0,class:"review-row"},zo={class:"review-label"},Do={class:"review-value"},Wo={key:1,class:"review-row"},Io={class:"review-label"},Po={class:"review-value"},Ao={key:2,class:"review-row"},$o={class:"review-label"},Lo={class:"review-value"},To={key:0,class:"form-group"},Oo={for:"wiz-plan"},Fo={value:""},Ko=["value"],Mo={class:"form-group checkbox"},Uo={key:1,class:"error-text"},Ro={class:"step-actions"},Ho=["disabled"],qo={key:0,class:"spinner-sm"},Go={key:7,class:"wizard-step"},Yo={class:"step-body done-body"},jo={class:"done-actions"},Xo=e.defineComponent({__name:"AccountWizard",props:{initialBackendKind:{},backendName:{},allowSkip:{type:Boolean}},emits:["close","saved","skip","addAnother","done"],setup(r,{emit:N}){const n=(o,t)=>({"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.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"})[o]??o,f=r,a=N,{client:c,emit:d}=O.useAiAccounts(),b=O.useBackendRegistry(),u=O.useLoginSession(),i=e.ref(f.initialBackendKind??""),k=e.computed(()=>i.value?b.get(i.value):void 0),E=e.computed(()=>{var o;return f.backendName||((o=k.value)==null?void 0:o.display_name)||i.value||"Backend"}),p=e.ref("subscription"),S=["claude","codex","gemini"],F=e.computed(()=>S.includes(i.value??"")),I=e.computed(()=>{const o=["subscription","cli","login"];return F.value&&o.push("proxy"),o.push("plan"),o}),P=e.computed(()=>I.value.indexOf(p.value)),ae=e.computed(()=>({subscription:n("accountWizard.stepSubscription"),cli:n("accountWizard.stepCliSetup"),login:n("accountWizard.stepLogin"),proxy:"API Proxy",plan:n("accountWizard.stepPlanSave"),done:n("accountWizard.stepDone")}));function V(){const o=I.value,t=o.indexOf(p.value);t>=0&&t<o.length-1?p.value=o[t+1]:p.value===o[o.length-1]&&(p.value="done")}function m(){const o=I.value,t=o.indexOf(p.value);t>0&&(p.value=o[t-1])}const l=e.ref(""),v=e.ref(""),B=e.ref(""),Y=e.computed(()=>l.value==="no"?!0:l.value==="yes"?v.value.trim().length>0:!1);function y(){if(l.value==="no"){ze();return}V()}const g=e.ref(""),D=e.ref(!1);function K(o){return o.toLowerCase().replace(/\s+/g,"").replace(/[^a-z0-9]/g,"")}function j(){if(D.value)return;const o=v.value.trim();if(!o){g.value="";return}const t=K(o),s={claude:".claude",codex:".codex",gemini:".gemini",opencode:".opencode"},w=i.value||"",ne=s[w]||(w?`.${w}`:".backend");g.value=`~/${ne}-${t}`}const A=e.computed(()=>{const o=v.value.trim();if(!o)return"";const t={claude:"ANTHROPIC",codex:"OPENAI",gemini:"GOOGLE",opencode:"OPENCODE"},s=i.value||"",w=t[s]||(s?s.toUpperCase():"BACKEND"),ne=K(o).replace(/-/g,"_").toUpperCase();return`${w}_API_KEY_${ne}`}),$=e.ref(!1),X=e.ref(""),le=e.ref(!1),J=e.ref(!1),ce=e.ref(!1),Q=e.ref(!1),se=e.ref(""),L=e.ref("");async function re(){if(i.value){le.value=!0;try{const o=b.get(i.value);$.value=!!o,X.value=""}catch(o){console.warn("[AccountWizard] CLI check failed:",o)}finally{le.value=!1}}}const C=e.ref(null);async function ge(){if(i.value){J.value=!0,L.value="",C.value=null;try{const o=await c.installBackendCli(i.value);C.value=o,o.success?($.value=!0,X.value=""):L.value=o.stderr||o.stdout||"Installation failed"}catch(o){L.value=o instanceof Error?o.message:String(o),C.value={kind:i.value,success:!1,display:"install failed",stdout:"",stderr:L.value,exit_code:-1,binary_path:null}}finally{J.value=!1}}}async function Ee(){g.value&&(Q.value=!0)}e.onMounted(async()=>{b.loaded.value||await b.load(),re(),d({type:"wizard.opened",backendKind:i.value}),Ne()}),e.watch(g,()=>{Q.value=!1,se.value=""});const x=e.ref("");e.watch(p,async o=>{o==="login"&&u.status.value==="idle"&&await de()},{immediate:!0});async function de(){const o=k.value;if(o)try{if(!x.value){const s=await c.createBackend({kind:o.kind,display_name:v.value.trim()||o.display_name,config:ue()});x.value=s.id}const t=_e(o);d({type:"wizard.step",backendKind:o.kind,step:"login.start"}),await u.start(x.value,t,fe(o))}catch(t){console.warn("[AccountWizard] login failed:",t)}}function _e(o){const t=o.login_flows.map(s=>s.kind);return t.includes("cli_browser")?"cli_browser":t.includes("oauth_device")?"oauth_device":"api_key"}function fe(o){return{}}function ue(){return{email:B.value.trim()||void 0,config_path:g.value.trim()||void 0,api_key_env:A.value||void 0}}e.watch(()=>u.status.value,o=>{o==="complete"&&p.value==="login"&&V()}),e.onUnmounted(()=>{u.status.value==="running"&&u.cancel().catch(()=>{})});const T=e.computed(()=>{switch(u.status.value){case"running":return u.urlPrompt.value||u.stdoutLines.value.length>0?"streaming":"connecting";case"complete":return"completed";case"failed":case"cancelled":return"error";default:return"idle"}}),be=e.computed(()=>u.errorMessage.value||"");function he(){u.status.value==="running"&&u.cancel().catch(()=>{})}const pe=e.computed(()=>{var o;return((o=k.value)==null?void 0:o.plan_options)??[]}),Z=e.ref(""),ee=e.ref(!1),M=e.ref(!1),te=e.ref(""),_=e.ref("idle"),h=e.ref(""),U=e.ref(""),oe=e.ref(""),R=e.ref(""),W=e.ref(""),H=e.ref(!1),q=e.ref(!1),z=e.ref(null),me=e.ref(!1);async function Ne(){try{const o=await c.cliproxyStatus();H.value=o.installed}catch(o){console.warn("[AccountWizard] cliproxy status check failed:",o),H.value=!1}finally{me.value=!0}}async function Ve(){q.value=!0,z.value=null;try{const o=await c.cliproxyInstall();z.value=o,o.success&&(H.value=!0)}catch(o){z.value={success:!1,display:"install failed",stdout:"",stderr:o instanceof Error?o.message:String(o),binary_path:null}}finally{q.value=!1}}function ve(){_.value="idle",h.value="",U.value="",oe.value="",R.value="",W.value=""}async function Be(){var o;if(i.value){_.value="running",h.value=`Registering ${E.value} account with API proxy…`,W.value="";try{const t=await c.cliproxyLoginBegin(i.value,((o=g.value)==null?void 0:o.trim())||void 0);h.value=t.message,t.status==="imported"?_.value="success":t.status==="started"&&t.oauth_url?(_.value="device_auth",U.value=t.oauth_url,oe.value=t.device_code??"",t.device_code?h.value=`Open the URL and enter code ${t.device_code}`:h.value="Complete OAuth in the browser; paste the callback URL below if it fails to redirect"):t.status==="skipped"?_.value="skipped":_.value="error"}catch(t){_.value="error",h.value=t instanceof Error?t.message:String(t)}}}async function Ce(){if(R.value.trim()){W.value="";try{const o=await c.cliproxyCallbackForward(R.value.trim());o.status==="completed"?(_.value="success",h.value="API proxy login completed"):W.value=o.message}catch(o){W.value=o instanceof Error?o.message:String(o)}}}async function we(){M.value=!0,te.value="";try{const o=k.value;if(!o)throw new Error("No backend metadata available");const t={...ue(),plan:Z.value||void 0,is_default:ee.value};if(x.value)await c.updateBackend(x.value,{display_name:v.value.trim()||o.display_name,config:t});else{const s=await c.createBackend({kind:o.kind,display_name:v.value.trim()||o.display_name,config:t});x.value=s.id}p.value="done",a("saved"),d({type:"wizard.account.created",backendKind:o.kind,accountId:x.value}),d({type:"wizard.step",backendKind:o.kind,step:"done"})}catch(o){te.value=o instanceof Error?o.message:"Failed to save account"}finally{M.value=!1}}function Se(){l.value="",v.value="",B.value="",g.value="",D.value=!1,Z.value="",ee.value=!1,he(),x.value="",Q.value=!1,p.value="subscription",a("addAnother"),i.value&&d({type:"wizard.step",backendKind:i.value,step:"add-another"})}function ie(){i.value&&d({type:"wizard.closed",backendKind:i.value,reason:"cancel"}),a("close")}function xe(){i.value&&d({type:"wizard.closed",backendKind:i.value,reason:"done"}),a("done",{accountId:x.value})}function ze(){i.value&&d({type:"wizard.closed",backendKind:i.value,reason:"skip"}),a("skip")}return(o,t)=>(e.openBlock(),e.createElementBlock("div",qe,[e.createElementVNode("div",Ge,[e.createElementVNode("h3",null,e.toDisplayString(n("accountWizard.addAccount")),1),e.createElementVNode("button",{class:"wizard-close",onClick:ie},"×")]),i.value?p.value!=="done"?(e.openBlock(),e.createElementBlock("div",Je,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(I.value,(s,w)=>(e.openBlock(),e.createElementBlock("div",{key:s,class:e.normalizeClass(["step-indicator",{active:p.value===s,completed:P.value>w,clickable:w<P.value}]),onClick:ne=>w<P.value?p.value=s:void 0},[e.createElementVNode("span",Ze,[P.value>w?(e.openBlock(),e.createElementBlock("svg",et,[...t[11]||(t[11]=[e.createElementVNode("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(w+1),1)],64))]),e.createElementVNode("span",tt,e.toDisplayString(ae.value[s]),1)],10,Qe))),128))])):e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Ye,[e.createElementVNode("div",je,[t[10]||(t[10]=e.createElementVNode("p",{class:"step-question"},"Select a backend to connect:",-1)),e.createVNode(ye,{onPick:t[0]||(t[0]=s=>{i.value=s,re()})})]),e.createElementVNode("div",Xe,[e.createElementVNode("button",{class:"btn btn-secondary",onClick:ie},e.toDisplayString(n("common.cancel")),1)])])),i.value&&p.value==="subscription"?(e.openBlock(),e.createElementBlock("div",ot,[e.createElementVNode("div",nt,[e.createElementVNode("p",at,"Do you already have a "+e.toDisplayString(E.value)+" account?",1),e.createElementVNode("div",lt,[e.createElementVNode("label",{class:e.normalizeClass(["radio-card",{selected:l.value==="yes"}])},[e.withDirectives(e.createElementVNode("input",{type:"radio","onUpdate:modelValue":t[1]||(t[1]=s=>l.value=s),value:"yes"},null,512),[[e.vModelRadio,l.value]]),e.createElementVNode("div",st,[e.createElementVNode("span",it,e.toDisplayString(n("accountWizard.yesHaveAccount")),1),e.createElementVNode("span",ct,e.toDisplayString(n("accountWizard.yesHaveAccountDesc")),1)])],2),e.createElementVNode("label",{class:e.normalizeClass(["radio-card",{selected:l.value==="no"}])},[e.withDirectives(e.createElementVNode("input",{type:"radio","onUpdate:modelValue":t[2]||(t[2]=s=>l.value=s),value:"no"},null,512),[[e.vModelRadio,l.value]]),e.createElementVNode("div",rt,[e.createElementVNode("span",dt,e.toDisplayString(n("accountWizard.noSkip")),1),e.createElementVNode("span",ut,e.toDisplayString(n("accountWizard.noSkipDesc")),1)])],2)]),e.createVNode(e.Transition,{name:"slide-down"},{default:e.withCtx(()=>[l.value==="yes"?(e.openBlock(),e.createElementBlock("div",pt,[e.createElementVNode("div",mt,[e.createElementVNode("label",vt,[e.createTextVNode(e.toDisplayString(n("accountWizard.accountName"))+" ",1),t[12]||(t[12]=e.createElementVNode("span",{class:"required"},"*",-1))]),e.withDirectives(e.createElementVNode("input",{id:"wiz-name","onUpdate:modelValue":t[3]||(t[3]=s=>v.value=s),type:"text",placeholder:n("accountWizard.accountNamePlaceholder"),autofocus:"",onInput:j},null,40,kt),[[e.vModelText,v.value]])]),e.createElementVNode("div",yt,[e.createElementVNode("label",gt,e.toDisplayString(n("accountWizard.email")),1),e.withDirectives(e.createElementVNode("input",{id:"wiz-email","onUpdate:modelValue":t[4]||(t[4]=s=>B.value=s),type:"email",placeholder:n("accountWizard.emailPlaceholder")},null,8,Et),[[e.vModelText,B.value]]),e.createElementVNode("small",null,e.toDisplayString(n("accountWizard.emailHelp")),1)])])):e.createCommentVNode("",!0)]),_:1})]),e.createElementVNode("div",_t,[e.createElementVNode("button",{class:"btn btn-secondary",onClick:ie},e.toDisplayString(n("common.cancel")),1),e.createElementVNode("button",{class:e.normalizeClass(["btn",l.value==="no"?"btn-outline":"btn-primary"]),disabled:!Y.value,onClick:y},[e.createTextVNode(e.toDisplayString(l.value==="no"?n("accountWizard.noSkip"):n("accountWizard.continueBtn"))+" ",1),t[13]||(t[13]=e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[e.createElementVNode("polyline",{points:"9 18 15 12 9 6"})],-1))],10,ft)])])):e.createCommentVNode("",!0),i.value&&p.value==="cli"?(e.openBlock(),e.createElementBlock("div",bt,[e.createElementVNode("div",ht,[e.createElementVNode("div",{class:e.normalizeClass(["status-card",$.value?"status-ok":"status-warn"])},[e.createElementVNode("div",Nt,[le.value?(e.openBlock(),e.createElementBlock("div",Vt)):$.value?(e.openBlock(),e.createElementBlock("svg",Bt,[...t[14]||(t[14]=[e.createElementVNode("path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14"},null,-1),e.createElementVNode("polyline",{points:"22 4 12 14.01 9 11.01"},null,-1)])])):(e.openBlock(),e.createElementBlock("svg",Ct,[...t[15]||(t[15]=[e.createElementVNode("circle",{cx:"12",cy:"12",r:"10"},null,-1),e.createElementVNode("line",{x1:"12",y1:"8",x2:"12",y2:"12"},null,-1),e.createElementVNode("line",{x1:"12",y1:"16",x2:"12.01",y2:"16"},null,-1)])]))]),e.createElementVNode("div",wt,[e.createElementVNode("span",St,e.toDisplayString(E.value)+" CLI",1),$.value?(e.openBlock(),e.createElementBlock("span",xt,e.toDisplayString(n("accountWizard.cliInstalled"))+e.toDisplayString(X.value?` (${X.value})`:""),1)):(e.openBlock(),e.createElementBlock("span",zt,e.toDisplayString(n("accountWizard.cliNotInstalled")),1))]),!$.value&&!J.value?(e.openBlock(),e.createElementBlock("button",{key:0,class:"btn btn-primary btn-sm",onClick:ge},e.toDisplayString(n("accountWizard.installCli")),1)):e.createCommentVNode("",!0),J.value?(e.openBlock(),e.createElementBlock("div",Dt)):e.createCommentVNode("",!0)],2),L.value?(e.openBlock(),e.createElementBlock("div",Wt,e.toDisplayString(L.value),1)):e.createCommentVNode("",!0),C.value&&C.value.success?(e.openBlock(),e.createElementBlock("div",It," Installed"+e.toDisplayString(C.value.binary_path?` at ${C.value.binary_path}`:""),1)):e.createCommentVNode("",!0),C.value&&!C.value.success&&C.value.stderr?(e.openBlock(),e.createElementBlock("pre",Pt,e.toDisplayString(C.value.stderr),1)):e.createCommentVNode("",!0),g.value?(e.openBlock(),e.createElementBlock("div",At,[e.createElementVNode("div",$t,e.toDisplayString(n("accountWizard.configPath")),1),e.createElementVNode("div",Lt,[e.createElementVNode("code",null,e.toDisplayString(g.value),1),Q.value?(e.openBlock(),e.createElementBlock("span",Ot,[t[16]||(t[16]=e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"12",height:"12"},[e.createElementVNode("polyline",{points:"20 6 9 17 4 12"})],-1)),e.createTextVNode(" "+e.toDisplayString(n("accountWizard.configCreated")),1)])):(e.openBlock(),e.createElementBlock("button",{key:0,class:"btn btn-outline btn-sm",disabled:ce.value,onClick:Ee},e.toDisplayString(ce.value?n("accountWizard.creating"):n("accountWizard.createDir")),9,Tt))]),se.value?(e.openBlock(),e.createElementBlock("div",Ft,e.toDisplayString(se.value),1)):e.createCommentVNode("",!0),e.createElementVNode("div",Kt,[D.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:0,class:"btn-link-sm",onClick:t[5]||(t[5]=s=>D.value=!0)},e.toDisplayString(n("accountWizard.customizePath")),1)),D.value?(e.openBlock(),e.createElementBlock("div",Mt,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":t[6]||(t[6]=s=>g.value=s),type:"text",placeholder:`e.g., ~/.${i.value}-personal`},null,8,Ut),[[e.vModelText,g.value]])])):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0),A.value?(e.openBlock(),e.createElementBlock("div",Rt,[e.createElementVNode("span",Ht,e.toDisplayString(n("accountWizard.apiKeyEnv")),1),e.createElementVNode("code",null,e.toDisplayString(A.value),1)])):e.createCommentVNode("",!0)]),e.createElementVNode("div",qt,[e.createElementVNode("button",{class:"btn btn-secondary",onClick:m},[t[17]||(t[17]=e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[e.createElementVNode("polyline",{points:"15 18 9 12 15 6"})],-1)),e.createTextVNode(" "+e.toDisplayString(n("common.back")),1)]),e.createElementVNode("button",{class:"btn btn-primary",onClick:V},[e.createTextVNode(e.toDisplayString(n("accountWizard.continueBtn"))+" ",1),t[18]||(t[18]=e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[e.createElementVNode("polyline",{points:"9 18 15 12 9 6"})],-1))])])])):e.createCommentVNode("",!0),i.value&&p.value==="login"?(e.openBlock(),e.createElementBlock("div",Gt,[e.createElementVNode("div",Yt,[T.value==="idle"||T.value==="connecting"?(e.openBlock(),e.createElementBlock("div",jt,[t[19]||(t[19]=e.createElementVNode("div",{class:"spinner-sm"},null,-1)),e.createElementVNode("span",null,e.toDisplayString(n("accountWizard.startingLogin")),1)])):T.value==="streaming"?(e.openBlock(),e.createBlock(ke,{key:1,session:e.unref(u)},null,8,["session"])):T.value==="completed"?(e.openBlock(),e.createElementBlock("div",Xt,[t[20]||(t[20]=e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},[e.createElementVNode("polyline",{points:"20 6 9 17 4 12"})],-1)),e.createElementVNode("span",null,e.toDisplayString(n("accountWizard.loginCompleted")),1)])):T.value==="error"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[e.createElementVNode("div",Jt,[t[21]||(t[21]=e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"16",height:"16"},[e.createElementVNode("circle",{cx:"12",cy:"12",r:"10"}),e.createElementVNode("line",{x1:"15",y1:"9",x2:"9",y2:"15"}),e.createElementVNode("line",{x1:"9",y1:"9",x2:"15",y2:"15"})],-1)),e.createElementVNode("span",null,e.toDisplayString(be.value),1)]),e.createElementVNode("button",{class:"btn btn-secondary",style:{"margin-top":"12px"},onClick:de},e.toDisplayString(n("accountWizard.tryAgain")),1)],64)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Qt,[e.createElementVNode("button",{class:"btn btn-secondary",onClick:m},[t[22]||(t[22]=e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[e.createElementVNode("polyline",{points:"15 18 9 12 15 6"})],-1)),e.createTextVNode(" "+e.toDisplayString(n("common.back")),1)]),e.createElementVNode("button",{class:"btn btn-primary",onClick:V},[e.createTextVNode(e.toDisplayString(T.value==="idle"?n("common.skip"):n("accountWizard.continueBtn"))+" ",1),t[23]||(t[23]=e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[e.createElementVNode("polyline",{points:"9 18 15 12 9 6"})],-1))])])])):e.createCommentVNode("",!0),i.value&&p.value==="proxy"?(e.openBlock(),e.createElementBlock("div",Zt,[e.createElementVNode("div",eo,[me.value&&!H.value?(e.openBlock(),e.createElementBlock("div",to,[t[25]||(t[25]=e.createElementVNode("p",{class:"step-description"}," CLIProxyAPI is not installed. Install it to expose this account through an OpenAI-compatible endpoint for other tools. ",-1)),e.createElementVNode("button",{class:"btn btn-primary",disabled:q.value,onClick:Ve},[q.value?(e.openBlock(),e.createElementBlock("div",no)):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(q.value?"Installing cliproxyapi…":"Install CLIProxyAPI"),1)],8,oo),z.value?(e.openBlock(),e.createElementBlock("div",ao,[z.value.success?(e.openBlock(),e.createElementBlock("p",lo," Installed"+e.toDisplayString(z.value.binary_path?` at ${z.value.binary_path}`:""),1)):(e.openBlock(),e.createElementBlock("div",so,[t[24]||(t[24]=e.createElementVNode("p",{class:"error-text"},"Install failed",-1)),z.value.stderr?(e.openBlock(),e.createElementBlock("pre",io,e.toDisplayString(z.value.stderr),1)):e.createCommentVNode("",!0)]))])):e.createCommentVNode("",!0)])):H.value?(e.openBlock(),e.createElementBlock("div",co,[t[31]||(t[31]=e.createElementVNode("h4",{class:"proxy-heading"},"Register with API proxy",-1)),t[32]||(t[32]=e.createElementVNode("p",{class:"step-description"}," Optional: register this account with CLIProxyAPI so other tools can reach it through an OpenAI-compatible endpoint. ",-1)),_.value==="idle"?(e.openBlock(),e.createElementBlock("button",{key:0,class:"btn btn-primary",onClick:Be}," Start proxy registration ")):e.createCommentVNode("",!0),_.value==="running"?(e.openBlock(),e.createElementBlock("div",ro,[t[26]||(t[26]=e.createElementVNode("div",{class:"spinner-sm"},null,-1)),e.createElementVNode("span",null,e.toDisplayString(h.value),1)])):e.createCommentVNode("",!0),_.value==="device_auth"?(e.openBlock(),e.createElementBlock("div",uo,[e.createElementVNode("p",null,e.toDisplayString(h.value),1),U.value?(e.openBlock(),e.createElementBlock("a",{key:0,href:U.value,target:"_blank",rel:"noopener",class:"proxy-oauth-link"},e.toDisplayString(U.value),9,po)):e.createCommentVNode("",!0),oe.value?(e.openBlock(),e.createElementBlock("p",mo,[t[27]||(t[27]=e.createTextVNode(" Code: ",-1)),e.createElementVNode("code",null,e.toDisplayString(oe.value),1)])):e.createCommentVNode("",!0),e.createElementVNode("div",vo,[e.createElementVNode("label",ko,[t[28]||(t[28]=e.createTextVNode(" If the redirect to localhost fails, paste the callback URL: ",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":t[7]||(t[7]=s=>R.value=s),type:"url",placeholder:"http://localhost:8085/callback?code=..."},null,512),[[e.vModelText,R.value]])]),e.createElementVNode("button",{class:"btn btn-outline btn-sm",onClick:Ce}," Submit callback "),W.value?(e.openBlock(),e.createElementBlock("p",yo,e.toDisplayString(W.value),1)):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0),_.value==="success"?(e.openBlock(),e.createElementBlock("div",go,[t[29]||(t[29]=e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},[e.createElementVNode("polyline",{points:"20 6 9 17 4 12"})],-1)),e.createElementVNode("strong",null,e.toDisplayString(h.value||"Registered successfully"),1)])):e.createCommentVNode("",!0),_.value==="skipped"?(e.openBlock(),e.createElementBlock("div",Eo,[e.createElementVNode("p",null,e.toDisplayString(h.value),1),e.createElementVNode("button",{class:"btn btn-outline btn-sm",onClick:ve},"Retry")])):e.createCommentVNode("",!0),_.value==="error"?(e.openBlock(),e.createElementBlock("div",_o,[e.createElementVNode("p",fo,[t[30]||(t[30]=e.createElementVNode("strong",null,"Error:",-1)),e.createTextVNode(" "+e.toDisplayString(h.value),1)]),e.createElementVNode("button",{class:"btn btn-outline btn-sm",onClick:ve},"Retry")])):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("div",bo,[...t[33]||(t[33]=[e.createElementVNode("div",{class:"spinner-sm"},null,-1),e.createElementVNode("span",null,"Checking CLIProxyAPI status…",-1)])]))]),e.createElementVNode("div",ho,[e.createElementVNode("button",{class:"btn btn-secondary",onClick:m},[t[34]||(t[34]=e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[e.createElementVNode("polyline",{points:"15 18 9 12 15 6"})],-1)),e.createTextVNode(" "+e.toDisplayString(n("common.back")),1)]),e.createElementVNode("button",{class:"btn btn-primary",onClick:V},[e.createTextVNode(e.toDisplayString(_.value==="success"?n("accountWizard.continueBtn"):n("common.skip"))+" ",1),t[35]||(t[35]=e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[e.createElementVNode("polyline",{points:"9 18 15 12 9 6"})],-1))])])])):e.createCommentVNode("",!0),i.value&&p.value==="plan"?(e.openBlock(),e.createElementBlock("div",No,[e.createElementVNode("div",Vo,[e.createElementVNode("div",Bo,[e.createElementVNode("div",Co,[e.createElementVNode("span",wo,e.toDisplayString(n("accountWizard.accountName")),1),e.createElementVNode("span",So,e.toDisplayString(v.value),1)]),B.value?(e.openBlock(),e.createElementBlock("div",xo,[e.createElementVNode("span",zo,e.toDisplayString(n("accountWizard.email")),1),e.createElementVNode("span",Do,e.toDisplayString(B.value),1)])):e.createCommentVNode("",!0),g.value?(e.openBlock(),e.createElementBlock("div",Wo,[e.createElementVNode("span",Io,e.toDisplayString(n("accountWizard.configPath")),1),e.createElementVNode("code",Po,e.toDisplayString(g.value),1)])):e.createCommentVNode("",!0),A.value?(e.openBlock(),e.createElementBlock("div",Ao,[e.createElementVNode("span",$o,e.toDisplayString(n("accountWizard.apiKeyEnv")),1),e.createElementVNode("code",Lo,e.toDisplayString(A.value),1)])):e.createCommentVNode("",!0)]),pe.value.length>0?(e.openBlock(),e.createElementBlock("div",To,[e.createElementVNode("label",Oo,e.toDisplayString(n("accountWizard.plan")),1),e.withDirectives(e.createElementVNode("select",{id:"wiz-plan","onUpdate:modelValue":t[8]||(t[8]=s=>Z.value=s)},[e.createElementVNode("option",Fo,e.toDisplayString(n("accountWizard.selectPlan")),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(pe.value,s=>(e.openBlock(),e.createElementBlock("option",{key:s.id,value:s.id},e.toDisplayString(s.label),9,Ko))),128))],512),[[e.vModelSelect,Z.value]])])):e.createCommentVNode("",!0),e.createElementVNode("div",Mo,[e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":t[9]||(t[9]=s=>ee.value=s)},null,512),[[e.vModelCheckbox,ee.value]]),e.createTextVNode(" "+e.toDisplayString(n("accountWizard.setDefault")),1)])]),te.value?(e.openBlock(),e.createElementBlock("div",Uo,e.toDisplayString(te.value),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Ro,[e.createElementVNode("button",{class:"btn btn-secondary",onClick:m},[t[36]||(t[36]=e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[e.createElementVNode("polyline",{points:"15 18 9 12 15 6"})],-1)),e.createTextVNode(" "+e.toDisplayString(n("common.back")),1)]),e.createElementVNode("button",{class:"btn btn-primary",disabled:M.value,onClick:we},[M.value?(e.openBlock(),e.createElementBlock("div",qo)):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(M.value?n("accountWizard.saving"):n("accountWizard.saveAccount")),1)],8,Ho)])])):e.createCommentVNode("",!0),i.value&&p.value==="done"?(e.openBlock(),e.createElementBlock("div",Go,[e.createElementVNode("div",Yo,[t[37]||(t[37]=e.createElementVNode("div",{class:"done-icon"},[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"40",height:"40"},[e.createElementVNode("path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14"}),e.createElementVNode("polyline",{points:"22 4 12 14.01 9 11.01"})])],-1)),e.createElementVNode("h4",null,e.toDisplayString(n("accountWizard.accountCreated")),1),e.createElementVNode("p",null,e.toDisplayString(v.value)+" has been added to "+e.toDisplayString(E.value)+".",1),e.createElementVNode("div",jo,[e.createElementVNode("button",{class:"btn btn-outline",onClick:Se},e.toDisplayString(n("accountWizard.addAnother")),1),e.createElementVNode("button",{class:"btn btn-primary",onClick:xe},e.toDisplayString(n("accountWizard.doneNextBackend")),1)])])])):e.createCommentVNode("",!0)]))}}),Jo=G(Xo,[["__scopeId","data-v-69b009aa"]]),Qo={class:"aia-onboarding"},Zo={class:"aia-onboarding__header"},en={key:0,class:"aia-onboarding__welcome"},tn={key:1,class:"aia-onboarding__status"},on={key:2,class:"aia-onboarding__kind-grid"},nn=["disabled","onClick"],an={class:"aia-kind-card__name"},ln={key:0,class:"aia-kind-card__badge"},sn={key:1,class:"aia-kind-card__badge aia-kind-card__badge--missing"},cn={key:3,class:"aia-onboarding__login"},rn={class:"aia-onboarding__tabs"},dn={class:"aia-label"},un={key:1,class:"aia-onboarding__oauth-start"},pn={key:4,class:"aia-onboarding__oauth-challenge"},mn=["href"],vn={class:"aia-code-display"},kn={key:5,class:"aia-onboarding__status"},yn={key:6,class:"aia-onboarding__success"},gn={key:7,class:"aia-onboarding__error"},En=e.defineComponent({__name:"OnboardingFlow",props:{client:{},kinds:{},supportedFlowsByKind:{}},emits:["done","cancel"],setup(r,{emit:N}){const n=r,f=N,a=O.useOnboarding({client:n.client}),c=e.ref(""),d=e.ref("api_key"),b=[{id:"claude",display:"Claude"},{id:"opencode",display:"OpenCode"},{id:"gemini",display:"Gemini"},{id:"codex",display:"Codex"}],u={claude:["api_key"],opencode:["api_key"],gemini:["api_key","oauth_device"],codex:["api_key","oauth_device"]},i=e.computed(()=>n.kinds??b),k=e.computed(()=>n.supportedFlowsByKind??u),E=e.computed(()=>{const m=a.selectedKind.value;return m?k.value[m]??["api_key"]:["api_key"]});async function p(){await a.start(),a.state.value!=="error"&&await a.detect()}async function S(m){await a.pickKind(m);const l=E.value;d.value=l[0]??"api_key"}async function F(){await a.submitApiKey(c.value)}async function I(){await a.submitOauthDevice()}e.watch(()=>a.state.value,m=>{m==="done"&&a.createdBackendId.value&&f("done",a.createdBackendId.value)},{immediate:!1});function P(){a.reset()}function ae(){var l;const m=(l=a.oauthChallenge.value)==null?void 0:l.user_code;m&&typeof navigator<"u"&&navigator.clipboard&&navigator.clipboard.writeText(m)}function V(m){var l,v;return(v=(l=a.kinds.value)==null?void 0:l.find(B=>B.id===m))==null?void 0:v.detection}return(m,l)=>{var v,B,Y;return e.openBlock(),e.createElementBlock("section",Qo,[e.createElementVNode("header",Zo,[e.renderSlot(m.$slots,"header",{},()=>[l[4]||(l[4]=e.createElementVNode("h2",null,"Set up an AI backend",-1))],!0)]),e.unref(a).state.value==="idle"?(e.openBlock(),e.createElementBlock("div",en,[l[5]||(l[5]=e.createElementVNode("p",null,"Connect one of the supported AI CLIs to get started.",-1)),e.createElementVNode("button",{type:"button",class:"aia-btn aia-btn--primary",onClick:p}," Get started ")])):e.unref(a).state.value==="started"||e.unref(a).state.value==="detecting"?(e.openBlock(),e.createElementBlock("div",tn," Detecting installed CLIs… ")):e.unref(a).state.value==="picking_kind"?(e.openBlock(),e.createElementBlock("div",on,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,y=>{var g,D,K,j;return e.openBlock(),e.createElementBlock("button",{key:y.id,type:"button",class:e.normalizeClass(["aia-kind-card",{"aia-kind-card--installed":(g=V(y.id))==null?void 0:g.installed,"aia-kind-card--missing":V(y.id)&&!((D=V(y.id))!=null&&D.installed)}]),disabled:!((K=V(y.id))!=null&&K.installed),onClick:A=>S(y.id)},[e.createElementVNode("span",an,e.toDisplayString(y.display),1),(j=V(y.id))!=null&&j.installed?(e.openBlock(),e.createElementBlock("span",ln," Installed ")):(e.openBlock(),e.createElementBlock("span",sn," Not installed "))],10,nn)}),128))])):e.unref(a).state.value==="entering_credential"?(e.openBlock(),e.createElementBlock("div",cn,[e.createElementVNode("div",rn,[E.value.includes("api_key")?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:e.normalizeClass(["aia-tab",{"aia-tab--active":d.value==="api_key"}]),onClick:l[0]||(l[0]=y=>d.value="api_key")}," API key ",2)):e.createCommentVNode("",!0),E.value.includes("oauth_device")?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:e.normalizeClass(["aia-tab",{"aia-tab--active":d.value==="oauth_device"}]),onClick:l[1]||(l[1]=y=>d.value="oauth_device")}," Login with browser ",2)):e.createCommentVNode("",!0)]),d.value==="api_key"?(e.openBlock(),e.createElementBlock("form",{key:0,class:"aia-onboarding__form",onSubmit:e.withModifiers(F,["prevent"])},[e.createElementVNode("label",dn,[l[6]||(l[6]=e.createTextVNode(" API key ",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":l[2]||(l[2]=y=>c.value=y),type:"password",class:"aia-input",autocomplete:"off",required:""},null,512),[[e.vModelText,c.value]])]),l[7]||(l[7]=e.createElementVNode("button",{type:"submit",class:"aia-btn aia-btn--primary"},"Connect",-1))],32)):d.value==="oauth_device"?(e.openBlock(),e.createElementBlock("div",un,[l[8]||(l[8]=e.createElementVNode("p",null,"You'll be shown a verification URL and code. Open it in your browser to sign in.",-1)),e.createElementVNode("button",{type:"button",class:"aia-btn aia-btn--primary",onClick:I}," Start browser login ")])):e.createCommentVNode("",!0)])):e.unref(a).state.value==="oauth_challenge"||e.unref(a).state.value==="oauth_polling"?(e.openBlock(),e.createElementBlock("div",pn,[l[9]||(l[9]=e.createElementVNode("p",null,"Open this URL in your browser and enter the code:",-1)),e.createElementVNode("a",{href:(v=e.unref(a).oauthChallenge.value)==null?void 0:v.verification_uri,target:"_blank",rel:"noopener noreferrer",class:"aia-onboarding__oauth-uri"},e.toDisplayString((B=e.unref(a).oauthChallenge.value)==null?void 0:B.verification_uri),9,mn),e.createElementVNode("div",vn,[e.createElementVNode("code",null,e.toDisplayString((Y=e.unref(a).oauthChallenge.value)==null?void 0:Y.user_code),1),e.createElementVNode("button",{type:"button",class:"aia-copy-btn",onClick:ae},"Copy")]),l[10]||(l[10]=e.createElementVNode("p",{class:"aia-onboarding__hint"},"Waiting for you to complete sign-in…",-1)),e.createElementVNode("button",{type:"button",class:"aia-btn",onClick:l[3]||(l[3]=(...y)=>e.unref(a).cancelOAuth&&e.unref(a).cancelOAuth(...y))},"Cancel")])):e.unref(a).state.value==="validating"?(e.openBlock(),e.createElementBlock("div",kn," Validating credential… ")):e.unref(a).state.value==="done"?(e.openBlock(),e.createElementBlock("div",yn,[e.renderSlot(m.$slots,"success",{},()=>[l[11]||(l[11]=e.createElementVNode("p",null,"✓ Connected successfully",-1))],!0)])):e.unref(a).state.value==="error"?(e.openBlock(),e.createElementBlock("div",gn,[e.createElementVNode("p",null,e.toDisplayString(e.unref(a).error.value),1),e.createElementVNode("button",{type:"button",class:"aia-btn",onClick:P},"Try again")])):e.createCommentVNode("",!0)])}}}),_n=G(En,[["__scopeId","data-v-8c20d7e7"]]),fn=["value","type","onInput"],bn={class:"aia-actions"},hn=["disabled"],Nn={key:0,class:"aia-error"},Vn=e.defineComponent({__name:"AccountEditForm",props:{account:{},metadata:{}},emits:["saved","cancel"],setup(r,{emit:N}){const n=r,f=N,{client:a}=O.useAiAccounts(),c=e.reactive({display_name:n.account.display_name,config:{...n.account.config}}),d=e.ref(!1),b=e.ref(null),u=e.computed(()=>{var k;return((k=n.metadata.config_schema)==null?void 0:k.properties)??{}});async function i(){d.value=!0,b.value=null;try{const k=await a.updateBackend(n.account.id,{display_name:c.display_name,config:c.config});f("saved",k)}catch(k){b.value=k instanceof Error?k.message:String(k)}finally{d.value=!1}}return(k,E)=>(e.openBlock(),e.createElementBlock("form",{class:"aia-account-edit",onSubmit:e.withModifiers(i,["prevent"])},[e.createElementVNode("label",null,[E[2]||(E[2]=e.createTextVNode(" Display name ",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":E[0]||(E[0]=p=>c.display_name=p),type:"text",required:""},null,512),[[e.vModelText,c.display_name]])]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,(p,S)=>(e.openBlock(),e.createElementBlock("div",{key:S,class:"aia-field"},[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(S)+" ",1),e.createElementVNode("input",{value:c.config[S]??"",type:String(S).toLowerCase().includes("secret")||String(S).toLowerCase().includes("key")?"password":"text",onInput:F=>c.config[S]=F.target.value},null,40,fn)])]))),128)),e.createElementVNode("div",bn,[e.createElementVNode("button",{type:"submit",disabled:d.value},e.toDisplayString(d.value?"Saving…":"Save"),9,hn),e.createElementVNode("button",{type:"button",onClick:E[1]||(E[1]=p=>f("cancel"))},"Cancel")]),b.value?(e.openBlock(),e.createElementBlock("p",Nn,e.toDisplayString(b.value),1)):e.createCommentVNode("",!0)],32))}}),Bn=G(Vn,[["__scopeId","data-v-56b7b8c3"]]),Cn="0.2.0";exports.AccountEditForm=Bn;exports.AccountWizard=Jo;exports.BackendPicker=ye;exports.LoginStream=ke;exports.OnboardingFlow=_n;exports.version=Cn;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),O=require("@ai-accounts/vue-headless"),De={class:"aia-login-stream"},We={key:0,class:"aia-url-prompt"},Ie=["href"],Pe={key:0,class:"aia-code"},Ae=["type"],$e={key:2,class:"aia-stdout"},Le={key:3,class:"aia-error"},Te=e.defineComponent({__name:"LoginStream",props:{session:{},showStdout:{type:Boolean,default:!0}},setup(r){const h=r,n=e.ref("");async function f(){const a=n.value;n.value="",await h.session.respond(a)}return(a,c)=>(e.openBlock(),e.createElementBlock("div",De,[r.session.urlPrompt.value?(e.openBlock(),e.createElementBlock("div",We,[c[3]||(c[3]=e.createElementVNode("p",{class:"aia-label"},"Open this URL to authenticate:",-1)),e.createElementVNode("a",{href:r.session.urlPrompt.value.url,target:"_blank",rel:"noopener"},e.toDisplayString(r.session.urlPrompt.value.url),9,Ie),r.session.urlPrompt.value.user_code?(e.openBlock(),e.createElementBlock("p",Pe,[c[2]||(c[2]=e.createTextVNode(" Code: ",-1)),e.createElementVNode("code",null,e.toDisplayString(r.session.urlPrompt.value.user_code),1)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),r.session.textPrompt.value?(e.openBlock(),e.createElementBlock("form",{key:1,class:"aia-text-prompt",onSubmit:e.withModifiers(f,["prevent"])},[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(r.session.textPrompt.value.prompt)+" ",1),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":c[0]||(c[0]=d=>n.value=d),type:r.session.textPrompt.value.hidden?"password":"text",autocomplete:"off"},null,8,Ae),[[e.vModelDynamic,n.value]])]),c[4]||(c[4]=e.createElementVNode("button",{type:"submit"},"Continue",-1))],32)):e.createCommentVNode("",!0),r.showStdout&&r.session.stdoutLines.value.length>0?(e.openBlock(),e.createElementBlock("pre",$e,e.toDisplayString(r.session.stdoutLines.value.join("")),1)):e.createCommentVNode("",!0),r.session.status.value==="failed"?(e.openBlock(),e.createElementBlock("div",Le,[e.createElementVNode("strong",null,e.toDisplayString(r.session.errorCode.value),1),e.createElementVNode("p",null,e.toDisplayString(r.session.errorMessage.value),1)])):e.createCommentVNode("",!0),r.session.status.value==="running"?(e.openBlock(),e.createElementBlock("button",{key:4,type:"button",class:"aia-cancel",onClick:c[1]||(c[1]=d=>r.session.cancel())}," Cancel ")):e.createCommentVNode("",!0)]))}}),G=(r,h)=>{const n=r.__vccOpts||r;for(const[f,a]of h)n[f]=a;return n},ke=G(Te,[["__scopeId","data-v-133adf55"]]),Oe={class:"aia-backend-picker"},Fe=["onClick"],Ke=["src","alt"],Me={class:"aia-backend-info"},Ue={key:0,class:"aia-installed"},Re={key:1,class:"aia-not-installed"},He=e.defineComponent({__name:"BackendPicker",props:{installStatus:{}},emits:["pick"],setup(r,{emit:h}){const n=r,f=h,a=O.useBackendRegistry();function c(d){return n.installStatus?n.installStatus[d]:void 0}return e.onMounted(async()=>{a.loaded.value||await a.load()}),(d,b)=>(e.openBlock(),e.createElementBlock("ul",Oe,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(a).backends.value,u=>(e.openBlock(),e.createElementBlock("li",{key:u.kind},[e.createElementVNode("button",{type:"button",onClick:i=>f("pick",u.kind)},[u.icon_url?(e.openBlock(),e.createElementBlock("img",{key:0,src:u.icon_url,alt:u.display_name},null,8,Ke)):e.createCommentVNode("",!0),e.createElementVNode("div",Me,[e.createElementVNode("strong",null,e.toDisplayString(u.display_name),1),c(u.kind)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[c(u.kind).installed?(e.openBlock(),e.createElementBlock("span",Ue," installed"+e.toDisplayString(c(u.kind).version?" v"+c(u.kind).version:""),1)):(e.openBlock(),e.createElementBlock("span",Re,"not detected"))],64)):e.createCommentVNode("",!0)])],8,Fe)]))),128))]))}}),ye=G(He,[["__scopeId","data-v-2500895f"]]),qe={class:"wizard-container","data-tour":"account-wizard"},Ge={class:"wizard-header"},Ye={key:0,class:"wizard-step"},je={class:"step-body"},Xe={class:"step-actions"},Je={key:1,class:"wizard-steps"},Qe=["onClick"],Ze={class:"step-number"},et={key:0,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"3",width:"12",height:"12"},tt={class:"step-label"},ot={key:2,class:"wizard-step"},nt={class:"step-body"},at={class:"step-question"},lt={class:"radio-group"},st={class:"radio-card-content"},it={class:"radio-card-title"},ct={class:"radio-card-desc"},rt={class:"radio-card-content"},dt={class:"radio-card-title"},ut={class:"radio-card-desc"},pt={key:0,class:"account-fields"},mt={class:"form-group"},vt={for:"wiz-name"},kt=["placeholder"],yt={class:"form-group"},gt={for:"wiz-email"},Et=["placeholder"],_t={class:"step-actions"},ft=["disabled"],bt={key:3,class:"wizard-step"},Nt={class:"step-body"},ht={class:"status-icon"},Vt={key:0,class:"spinner-sm"},Bt={key:1,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},Ct={key:2,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},wt={class:"status-info"},St={class:"status-title"},xt={key:0,class:"status-detail"},zt={key:1,class:"status-detail"},Dt={key:1,class:"spinner-sm"},Wt={key:0,class:"error-text"},It={key:1,class:"install-success-text"},Pt={key:2,class:"install-stderr"},At={key:3,class:"config-dir-section"},$t={class:"config-dir-label"},Lt={class:"config-dir-path"},Tt=["disabled"],Ot={key:1,class:"dir-created-badge"},Ft={key:0,class:"error-text"},Kt={class:"config-path-edit"},Mt={key:1,class:"form-group compact"},Ut=["placeholder"],Rt={key:4,class:"api-key-info"},Ht={class:"api-key-label"},qt={class:"step-actions"},Gt={key:4,class:"wizard-step"},Yt={class:"step-body"},jt={key:0,class:"login-status login-connecting"},Xt={key:2,class:"login-status login-completed"},Jt={class:"login-status login-error"},Qt={class:"step-actions"},Zt={key:5,class:"wizard-step"},eo={class:"step-body"},to={key:0,class:"cliproxy-install-block"},oo=["disabled"],no={key:0,class:"spinner-sm"},ao={key:0},lo={key:0,class:"install-success-text"},so={key:1},io={key:0,class:"install-stderr"},co={key:1,class:"proxy-step-body"},ro={key:1,class:"proxy-running"},uo={key:2,class:"proxy-device-auth"},po=["href"],mo={key:1,class:"proxy-code"},vo={class:"callback-paste"},ko={class:"callback-label"},yo={key:0,class:"error-text"},go={key:3,class:"proxy-success"},Eo={key:4,class:"proxy-skipped"},_o={key:5,class:"proxy-error"},fo={class:"error-text"},bo={key:2,class:"proxy-loading"},No={class:"step-actions"},ho={key:6,class:"wizard-step"},Vo={class:"step-body"},Bo={class:"review-card"},Co={class:"review-row"},wo={class:"review-label"},So={class:"review-value"},xo={key:0,class:"review-row"},zo={class:"review-label"},Do={class:"review-value"},Wo={key:1,class:"review-row"},Io={class:"review-label"},Po={class:"review-value"},Ao={key:2,class:"review-row"},$o={class:"review-label"},Lo={class:"review-value"},To={key:0,class:"form-group"},Oo={for:"wiz-plan"},Fo={value:""},Ko=["value"],Mo={class:"form-group checkbox"},Uo={key:1,class:"error-text"},Ro={class:"step-actions"},Ho=["disabled"],qo={key:0,class:"spinner-sm"},Go={key:7,class:"wizard-step"},Yo={class:"step-body done-body"},jo={class:"done-actions"},Xo=e.defineComponent({__name:"AccountWizard",props:{initialBackendKind:{},backendName:{},allowSkip:{type:Boolean}},emits:["close","saved","skip","addAnother","done"],setup(r,{emit:h}){const n=(o,t)=>({"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.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"})[o]??o,f=r,a=h,{client:c,emit:d}=O.useAiAccounts(),b=O.useBackendRegistry(),u=O.useLoginSession(),i=e.ref(f.initialBackendKind??""),v=e.computed(()=>i.value?b.get(i.value):void 0),E=e.computed(()=>{var o;return f.backendName||((o=v.value)==null?void 0:o.display_name)||i.value||"Backend"}),p=e.ref("subscription"),S=["claude","codex","gemini"],F=e.computed(()=>S.includes(i.value??"")),I=e.computed(()=>{const o=["subscription","cli","login"];return F.value&&o.push("proxy"),o.push("plan"),o}),P=e.computed(()=>I.value.indexOf(p.value)),ae=e.computed(()=>({subscription:n("accountWizard.stepSubscription"),cli:n("accountWizard.stepCliSetup"),login:n("accountWizard.stepLogin"),proxy:"API Proxy",plan:n("accountWizard.stepPlanSave"),done:n("accountWizard.stepDone")}));function V(){const o=I.value,t=o.indexOf(p.value);t>=0&&t<o.length-1?p.value=o[t+1]:p.value===o[o.length-1]&&(p.value="done")}function m(){const o=I.value,t=o.indexOf(p.value);t>0&&(p.value=o[t-1])}const l=e.ref(""),k=e.ref(""),B=e.ref(""),Y=e.computed(()=>l.value!=="");function y(){if(l.value==="no"){ze();return}V()}const g=e.ref(""),D=e.ref(!1);function K(o){return o.toLowerCase().replace(/\s+/g,"").replace(/[^a-z0-9]/g,"")}function j(){if(D.value)return;const o=k.value.trim();if(!o){g.value="";return}const t=K(o),s={claude:".claude",codex:".codex",gemini:".gemini",opencode:".opencode"},w=i.value||"",ne=s[w]||(w?`.${w}`:".backend");g.value=`~/${ne}-${t}`}const A=e.computed(()=>{const o=k.value.trim();if(!o)return"";const t={claude:"ANTHROPIC",codex:"OPENAI",gemini:"GOOGLE",opencode:"OPENCODE"},s=i.value||"",w=t[s]||(s?s.toUpperCase():"BACKEND"),ne=K(o).replace(/-/g,"_").toUpperCase();return`${w}_API_KEY_${ne}`}),$=e.ref(!1),X=e.ref(""),le=e.ref(!1),J=e.ref(!1),ce=e.ref(!1),Q=e.ref(!1),se=e.ref(""),L=e.ref("");async function re(){if(i.value){le.value=!0;try{const o=b.get(i.value);$.value=!!o,X.value=""}catch(o){console.warn("[AccountWizard] CLI check failed:",o)}finally{le.value=!1}}}const C=e.ref(null);async function ge(){if(i.value){J.value=!0,L.value="",C.value=null;try{const o=await c.installBackendCli(i.value);C.value=o,o.success?($.value=!0,X.value=""):L.value=o.stderr||o.stdout||"Installation failed"}catch(o){L.value=o instanceof Error?o.message:String(o),C.value={kind:i.value,success:!1,display:"install failed",stdout:"",stderr:L.value,exit_code:-1,binary_path:null}}finally{J.value=!1}}}async function Ee(){g.value&&(Q.value=!0)}e.onMounted(async()=>{b.loaded.value||await b.load(),re(),d({type:"wizard.opened",backendKind:i.value}),he()}),e.watch(g,()=>{Q.value=!1,se.value=""});const x=e.ref("");e.watch(p,async o=>{o==="login"&&u.status.value==="idle"&&await de()},{immediate:!0});async function de(){const o=v.value;if(o)try{if(!x.value){const s=await c.createBackend({kind:o.kind,display_name:k.value.trim()||o.display_name,config:ue()});x.value=s.id}const t=_e(o);d({type:"wizard.step",backendKind:o.kind,step:"login.start"}),await u.start(x.value,t,fe(o))}catch(t){console.warn("[AccountWizard] login failed:",t)}}function _e(o){const t=o.login_flows.map(s=>s.kind);return t.includes("cli_browser")?"cli_browser":t.includes("oauth_device")?"oauth_device":"api_key"}function fe(o){return{}}function ue(){return{email:B.value.trim()||void 0,config_path:g.value.trim()||void 0,api_key_env:A.value||void 0}}e.watch(()=>u.status.value,o=>{o==="complete"&&p.value==="login"&&V()}),e.onUnmounted(()=>{u.status.value==="running"&&u.cancel().catch(()=>{})});const T=e.computed(()=>{switch(u.status.value){case"running":return u.urlPrompt.value||u.stdoutLines.value.length>0?"streaming":"connecting";case"complete":return"completed";case"failed":case"cancelled":return"error";default:return"idle"}}),be=e.computed(()=>u.errorMessage.value||"");function Ne(){u.status.value==="running"&&u.cancel().catch(()=>{})}const pe=e.computed(()=>{var o;return((o=v.value)==null?void 0:o.plan_options)??[]}),Z=e.ref(""),ee=e.ref(!1),M=e.ref(!1),te=e.ref(""),_=e.ref("idle"),N=e.ref(""),U=e.ref(""),oe=e.ref(""),R=e.ref(""),W=e.ref(""),H=e.ref(!1),q=e.ref(!1),z=e.ref(null),me=e.ref(!1);async function he(){try{const o=await c.cliproxyStatus();H.value=o.installed}catch(o){console.warn("[AccountWizard] cliproxy status check failed:",o),H.value=!1}finally{me.value=!0}}async function Ve(){q.value=!0,z.value=null;try{const o=await c.cliproxyInstall();z.value=o,o.success&&(H.value=!0)}catch(o){z.value={success:!1,display:"install failed",stdout:"",stderr:o instanceof Error?o.message:String(o),binary_path:null}}finally{q.value=!1}}function ve(){_.value="idle",N.value="",U.value="",oe.value="",R.value="",W.value=""}async function Be(){var o;if(i.value){_.value="running",N.value=`Registering ${E.value} account with API proxy…`,W.value="";try{const t=await c.cliproxyLoginBegin(i.value,((o=g.value)==null?void 0:o.trim())||void 0);N.value=t.message,t.status==="imported"?_.value="success":t.status==="started"&&t.oauth_url?(_.value="device_auth",U.value=t.oauth_url,oe.value=t.device_code??"",t.device_code?N.value=`Open the URL and enter code ${t.device_code}`:N.value="Complete OAuth in the browser; paste the callback URL below if it fails to redirect"):t.status==="skipped"?_.value="skipped":_.value="error"}catch(t){_.value="error",N.value=t instanceof Error?t.message:String(t)}}}async function Ce(){if(R.value.trim()){W.value="";try{const o=await c.cliproxyCallbackForward(R.value.trim());o.status==="completed"?(_.value="success",N.value="API proxy login completed"):W.value=o.message}catch(o){W.value=o instanceof Error?o.message:String(o)}}}async function we(){M.value=!0,te.value="";try{const o=v.value;if(!o)throw new Error("No backend metadata available");const t={...ue(),plan:Z.value||void 0,is_default:ee.value};if(x.value)await c.updateBackend(x.value,{display_name:k.value.trim()||o.display_name,config:t});else{const s=await c.createBackend({kind:o.kind,display_name:k.value.trim()||o.display_name,config:t});x.value=s.id}p.value="done",a("saved"),d({type:"wizard.account.created",backendKind:o.kind,accountId:x.value}),d({type:"wizard.step",backendKind:o.kind,step:"done"})}catch(o){te.value=o instanceof Error?o.message:"Failed to save account"}finally{M.value=!1}}function Se(){l.value="",k.value="",B.value="",g.value="",D.value=!1,Z.value="",ee.value=!1,Ne(),x.value="",Q.value=!1,p.value="subscription",a("addAnother"),i.value&&d({type:"wizard.step",backendKind:i.value,step:"add-another"})}function ie(){i.value&&d({type:"wizard.closed",backendKind:i.value,reason:"cancel"}),a("close")}function xe(){i.value&&d({type:"wizard.closed",backendKind:i.value,reason:"done"}),a("done",{accountId:x.value})}function ze(){i.value&&d({type:"wizard.closed",backendKind:i.value,reason:"skip"}),a("skip")}return(o,t)=>(e.openBlock(),e.createElementBlock("div",qe,[e.createElementVNode("div",Ge,[e.createElementVNode("h3",null,e.toDisplayString(n("accountWizard.addAccount")),1),e.createElementVNode("button",{class:"wizard-close",onClick:ie},"×")]),i.value?p.value!=="done"?(e.openBlock(),e.createElementBlock("div",Je,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(I.value,(s,w)=>(e.openBlock(),e.createElementBlock("div",{key:s,class:e.normalizeClass(["step-indicator",{active:p.value===s,completed:P.value>w,clickable:w<P.value}]),onClick:ne=>w<P.value?p.value=s:void 0},[e.createElementVNode("span",Ze,[P.value>w?(e.openBlock(),e.createElementBlock("svg",et,[...t[11]||(t[11]=[e.createElementVNode("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(w+1),1)],64))]),e.createElementVNode("span",tt,e.toDisplayString(ae.value[s]),1)],10,Qe))),128))])):e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Ye,[e.createElementVNode("div",je,[t[10]||(t[10]=e.createElementVNode("p",{class:"step-question"},"Select a backend to connect:",-1)),e.createVNode(ye,{onPick:t[0]||(t[0]=s=>{i.value=s,re()})})]),e.createElementVNode("div",Xe,[e.createElementVNode("button",{class:"btn btn-secondary",onClick:ie},e.toDisplayString(n("common.cancel")),1)])])),i.value&&p.value==="subscription"?(e.openBlock(),e.createElementBlock("div",ot,[e.createElementVNode("div",nt,[e.createElementVNode("p",at,"Do you already have a "+e.toDisplayString(E.value)+" account?",1),e.createElementVNode("div",lt,[e.createElementVNode("label",{class:e.normalizeClass(["radio-card",{selected:l.value==="yes"}])},[e.withDirectives(e.createElementVNode("input",{type:"radio","onUpdate:modelValue":t[1]||(t[1]=s=>l.value=s),value:"yes"},null,512),[[e.vModelRadio,l.value]]),e.createElementVNode("div",st,[e.createElementVNode("span",it,e.toDisplayString(n("accountWizard.yesHaveAccount")),1),e.createElementVNode("span",ct,e.toDisplayString(n("accountWizard.yesHaveAccountDesc")),1)])],2),e.createElementVNode("label",{class:e.normalizeClass(["radio-card",{selected:l.value==="no"}])},[e.withDirectives(e.createElementVNode("input",{type:"radio","onUpdate:modelValue":t[2]||(t[2]=s=>l.value=s),value:"no"},null,512),[[e.vModelRadio,l.value]]),e.createElementVNode("div",rt,[e.createElementVNode("span",dt,e.toDisplayString(n("accountWizard.noSkip")),1),e.createElementVNode("span",ut,e.toDisplayString(n("accountWizard.noSkipDesc")),1)])],2)]),e.createVNode(e.Transition,{name:"slide-down"},{default:e.withCtx(()=>[l.value==="yes"?(e.openBlock(),e.createElementBlock("div",pt,[e.createElementVNode("div",mt,[e.createElementVNode("label",vt,[e.createTextVNode(e.toDisplayString(n("accountWizard.accountName"))+" ",1),t[12]||(t[12]=e.createElementVNode("span",{class:"optional"},"(optional)",-1))]),e.withDirectives(e.createElementVNode("input",{id:"wiz-name","onUpdate:modelValue":t[3]||(t[3]=s=>k.value=s),type:"text",placeholder:n("accountWizard.accountNamePlaceholder"),autofocus:"",onInput:j},null,40,kt),[[e.vModelText,k.value]])]),e.createElementVNode("div",yt,[e.createElementVNode("label",gt,e.toDisplayString(n("accountWizard.email")),1),e.withDirectives(e.createElementVNode("input",{id:"wiz-email","onUpdate:modelValue":t[4]||(t[4]=s=>B.value=s),type:"email",placeholder:n("accountWizard.emailPlaceholder")},null,8,Et),[[e.vModelText,B.value]]),e.createElementVNode("small",null,e.toDisplayString(n("accountWizard.emailHelp")),1)])])):e.createCommentVNode("",!0)]),_:1})]),e.createElementVNode("div",_t,[e.createElementVNode("button",{class:"btn btn-secondary",onClick:ie},e.toDisplayString(n("common.cancel")),1),e.createElementVNode("button",{class:e.normalizeClass(["btn",l.value==="no"?"btn-outline":"btn-primary"]),disabled:!Y.value,onClick:y},[e.createTextVNode(e.toDisplayString(l.value==="no"?n("accountWizard.noSkip"):n("accountWizard.continueBtn"))+" ",1),t[13]||(t[13]=e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[e.createElementVNode("polyline",{points:"9 18 15 12 9 6"})],-1))],10,ft)])])):e.createCommentVNode("",!0),i.value&&p.value==="cli"?(e.openBlock(),e.createElementBlock("div",bt,[e.createElementVNode("div",Nt,[e.createElementVNode("div",{class:e.normalizeClass(["status-card",$.value?"status-ok":"status-warn"])},[e.createElementVNode("div",ht,[le.value?(e.openBlock(),e.createElementBlock("div",Vt)):$.value?(e.openBlock(),e.createElementBlock("svg",Bt,[...t[14]||(t[14]=[e.createElementVNode("path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14"},null,-1),e.createElementVNode("polyline",{points:"22 4 12 14.01 9 11.01"},null,-1)])])):(e.openBlock(),e.createElementBlock("svg",Ct,[...t[15]||(t[15]=[e.createElementVNode("circle",{cx:"12",cy:"12",r:"10"},null,-1),e.createElementVNode("line",{x1:"12",y1:"8",x2:"12",y2:"12"},null,-1),e.createElementVNode("line",{x1:"12",y1:"16",x2:"12.01",y2:"16"},null,-1)])]))]),e.createElementVNode("div",wt,[e.createElementVNode("span",St,e.toDisplayString(E.value)+" CLI",1),$.value?(e.openBlock(),e.createElementBlock("span",xt,e.toDisplayString(n("accountWizard.cliInstalled"))+e.toDisplayString(X.value?` (${X.value})`:""),1)):(e.openBlock(),e.createElementBlock("span",zt,e.toDisplayString(n("accountWizard.cliNotInstalled")),1))]),!$.value&&!J.value?(e.openBlock(),e.createElementBlock("button",{key:0,class:"btn btn-primary btn-sm",onClick:ge},e.toDisplayString(n("accountWizard.installCli")),1)):e.createCommentVNode("",!0),J.value?(e.openBlock(),e.createElementBlock("div",Dt)):e.createCommentVNode("",!0)],2),L.value?(e.openBlock(),e.createElementBlock("div",Wt,e.toDisplayString(L.value),1)):e.createCommentVNode("",!0),C.value&&C.value.success?(e.openBlock(),e.createElementBlock("div",It," Installed"+e.toDisplayString(C.value.binary_path?` at ${C.value.binary_path}`:""),1)):e.createCommentVNode("",!0),C.value&&!C.value.success&&C.value.stderr?(e.openBlock(),e.createElementBlock("pre",Pt,e.toDisplayString(C.value.stderr),1)):e.createCommentVNode("",!0),g.value?(e.openBlock(),e.createElementBlock("div",At,[e.createElementVNode("div",$t,e.toDisplayString(n("accountWizard.configPath")),1),e.createElementVNode("div",Lt,[e.createElementVNode("code",null,e.toDisplayString(g.value),1),Q.value?(e.openBlock(),e.createElementBlock("span",Ot,[t[16]||(t[16]=e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"12",height:"12"},[e.createElementVNode("polyline",{points:"20 6 9 17 4 12"})],-1)),e.createTextVNode(" "+e.toDisplayString(n("accountWizard.configCreated")),1)])):(e.openBlock(),e.createElementBlock("button",{key:0,class:"btn btn-outline btn-sm",disabled:ce.value,onClick:Ee},e.toDisplayString(ce.value?n("accountWizard.creating"):n("accountWizard.createDir")),9,Tt))]),se.value?(e.openBlock(),e.createElementBlock("div",Ft,e.toDisplayString(se.value),1)):e.createCommentVNode("",!0),e.createElementVNode("div",Kt,[D.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:0,class:"btn-link-sm",onClick:t[5]||(t[5]=s=>D.value=!0)},e.toDisplayString(n("accountWizard.customizePath")),1)),D.value?(e.openBlock(),e.createElementBlock("div",Mt,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":t[6]||(t[6]=s=>g.value=s),type:"text",placeholder:`e.g., ~/.${i.value}-personal`},null,8,Ut),[[e.vModelText,g.value]])])):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0),A.value?(e.openBlock(),e.createElementBlock("div",Rt,[e.createElementVNode("span",Ht,e.toDisplayString(n("accountWizard.apiKeyEnv")),1),e.createElementVNode("code",null,e.toDisplayString(A.value),1)])):e.createCommentVNode("",!0)]),e.createElementVNode("div",qt,[e.createElementVNode("button",{class:"btn btn-secondary",onClick:m},[t[17]||(t[17]=e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[e.createElementVNode("polyline",{points:"15 18 9 12 15 6"})],-1)),e.createTextVNode(" "+e.toDisplayString(n("common.back")),1)]),e.createElementVNode("button",{class:"btn btn-primary",onClick:V},[e.createTextVNode(e.toDisplayString(n("accountWizard.continueBtn"))+" ",1),t[18]||(t[18]=e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[e.createElementVNode("polyline",{points:"9 18 15 12 9 6"})],-1))])])])):e.createCommentVNode("",!0),i.value&&p.value==="login"?(e.openBlock(),e.createElementBlock("div",Gt,[e.createElementVNode("div",Yt,[T.value==="idle"||T.value==="connecting"?(e.openBlock(),e.createElementBlock("div",jt,[t[19]||(t[19]=e.createElementVNode("div",{class:"spinner-sm"},null,-1)),e.createElementVNode("span",null,e.toDisplayString(n("accountWizard.startingLogin")),1)])):T.value==="streaming"?(e.openBlock(),e.createBlock(ke,{key:1,session:e.unref(u)},null,8,["session"])):T.value==="completed"?(e.openBlock(),e.createElementBlock("div",Xt,[t[20]||(t[20]=e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},[e.createElementVNode("polyline",{points:"20 6 9 17 4 12"})],-1)),e.createElementVNode("span",null,e.toDisplayString(n("accountWizard.loginCompleted")),1)])):T.value==="error"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[e.createElementVNode("div",Jt,[t[21]||(t[21]=e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"16",height:"16"},[e.createElementVNode("circle",{cx:"12",cy:"12",r:"10"}),e.createElementVNode("line",{x1:"15",y1:"9",x2:"9",y2:"15"}),e.createElementVNode("line",{x1:"9",y1:"9",x2:"15",y2:"15"})],-1)),e.createElementVNode("span",null,e.toDisplayString(be.value),1)]),e.createElementVNode("button",{class:"btn btn-secondary",style:{"margin-top":"12px"},onClick:de},e.toDisplayString(n("accountWizard.tryAgain")),1)],64)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Qt,[e.createElementVNode("button",{class:"btn btn-secondary",onClick:m},[t[22]||(t[22]=e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[e.createElementVNode("polyline",{points:"15 18 9 12 15 6"})],-1)),e.createTextVNode(" "+e.toDisplayString(n("common.back")),1)]),e.createElementVNode("button",{class:"btn btn-primary",onClick:V},[e.createTextVNode(e.toDisplayString(T.value==="idle"?n("common.skip"):n("accountWizard.continueBtn"))+" ",1),t[23]||(t[23]=e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[e.createElementVNode("polyline",{points:"9 18 15 12 9 6"})],-1))])])])):e.createCommentVNode("",!0),i.value&&p.value==="proxy"?(e.openBlock(),e.createElementBlock("div",Zt,[e.createElementVNode("div",eo,[me.value&&!H.value?(e.openBlock(),e.createElementBlock("div",to,[t[25]||(t[25]=e.createElementVNode("p",{class:"step-description"}," CLIProxyAPI is not installed. Install it to expose this account through an OpenAI-compatible endpoint for other tools. ",-1)),e.createElementVNode("button",{class:"btn btn-primary",disabled:q.value,onClick:Ve},[q.value?(e.openBlock(),e.createElementBlock("div",no)):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(q.value?"Installing cliproxyapi…":"Install CLIProxyAPI"),1)],8,oo),z.value?(e.openBlock(),e.createElementBlock("div",ao,[z.value.success?(e.openBlock(),e.createElementBlock("p",lo," Installed"+e.toDisplayString(z.value.binary_path?` at ${z.value.binary_path}`:""),1)):(e.openBlock(),e.createElementBlock("div",so,[t[24]||(t[24]=e.createElementVNode("p",{class:"error-text"},"Install failed",-1)),z.value.stderr?(e.openBlock(),e.createElementBlock("pre",io,e.toDisplayString(z.value.stderr),1)):e.createCommentVNode("",!0)]))])):e.createCommentVNode("",!0)])):H.value?(e.openBlock(),e.createElementBlock("div",co,[t[31]||(t[31]=e.createElementVNode("h4",{class:"proxy-heading"},"Register with API proxy",-1)),t[32]||(t[32]=e.createElementVNode("p",{class:"step-description"}," Optional: register this account with CLIProxyAPI so other tools can reach it through an OpenAI-compatible endpoint. ",-1)),_.value==="idle"?(e.openBlock(),e.createElementBlock("button",{key:0,class:"btn btn-primary",onClick:Be}," Start proxy registration ")):e.createCommentVNode("",!0),_.value==="running"?(e.openBlock(),e.createElementBlock("div",ro,[t[26]||(t[26]=e.createElementVNode("div",{class:"spinner-sm"},null,-1)),e.createElementVNode("span",null,e.toDisplayString(N.value),1)])):e.createCommentVNode("",!0),_.value==="device_auth"?(e.openBlock(),e.createElementBlock("div",uo,[e.createElementVNode("p",null,e.toDisplayString(N.value),1),U.value?(e.openBlock(),e.createElementBlock("a",{key:0,href:U.value,target:"_blank",rel:"noopener",class:"proxy-oauth-link"},e.toDisplayString(U.value),9,po)):e.createCommentVNode("",!0),oe.value?(e.openBlock(),e.createElementBlock("p",mo,[t[27]||(t[27]=e.createTextVNode(" Code: ",-1)),e.createElementVNode("code",null,e.toDisplayString(oe.value),1)])):e.createCommentVNode("",!0),e.createElementVNode("div",vo,[e.createElementVNode("label",ko,[t[28]||(t[28]=e.createTextVNode(" If the redirect to localhost fails, paste the callback URL: ",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":t[7]||(t[7]=s=>R.value=s),type:"url",placeholder:"http://localhost:8085/callback?code=..."},null,512),[[e.vModelText,R.value]])]),e.createElementVNode("button",{class:"btn btn-outline btn-sm",onClick:Ce}," Submit callback "),W.value?(e.openBlock(),e.createElementBlock("p",yo,e.toDisplayString(W.value),1)):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0),_.value==="success"?(e.openBlock(),e.createElementBlock("div",go,[t[29]||(t[29]=e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},[e.createElementVNode("polyline",{points:"20 6 9 17 4 12"})],-1)),e.createElementVNode("strong",null,e.toDisplayString(N.value||"Registered successfully"),1)])):e.createCommentVNode("",!0),_.value==="skipped"?(e.openBlock(),e.createElementBlock("div",Eo,[e.createElementVNode("p",null,e.toDisplayString(N.value),1),e.createElementVNode("button",{class:"btn btn-outline btn-sm",onClick:ve},"Retry")])):e.createCommentVNode("",!0),_.value==="error"?(e.openBlock(),e.createElementBlock("div",_o,[e.createElementVNode("p",fo,[t[30]||(t[30]=e.createElementVNode("strong",null,"Error:",-1)),e.createTextVNode(" "+e.toDisplayString(N.value),1)]),e.createElementVNode("button",{class:"btn btn-outline btn-sm",onClick:ve},"Retry")])):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("div",bo,[...t[33]||(t[33]=[e.createElementVNode("div",{class:"spinner-sm"},null,-1),e.createElementVNode("span",null,"Checking CLIProxyAPI status…",-1)])]))]),e.createElementVNode("div",No,[e.createElementVNode("button",{class:"btn btn-secondary",onClick:m},[t[34]||(t[34]=e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[e.createElementVNode("polyline",{points:"15 18 9 12 15 6"})],-1)),e.createTextVNode(" "+e.toDisplayString(n("common.back")),1)]),e.createElementVNode("button",{class:"btn btn-primary",onClick:V},[e.createTextVNode(e.toDisplayString(_.value==="success"?n("accountWizard.continueBtn"):n("common.skip"))+" ",1),t[35]||(t[35]=e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[e.createElementVNode("polyline",{points:"9 18 15 12 9 6"})],-1))])])])):e.createCommentVNode("",!0),i.value&&p.value==="plan"?(e.openBlock(),e.createElementBlock("div",ho,[e.createElementVNode("div",Vo,[e.createElementVNode("div",Bo,[e.createElementVNode("div",Co,[e.createElementVNode("span",wo,e.toDisplayString(n("accountWizard.accountName")),1),e.createElementVNode("span",So,e.toDisplayString(k.value),1)]),B.value?(e.openBlock(),e.createElementBlock("div",xo,[e.createElementVNode("span",zo,e.toDisplayString(n("accountWizard.email")),1),e.createElementVNode("span",Do,e.toDisplayString(B.value),1)])):e.createCommentVNode("",!0),g.value?(e.openBlock(),e.createElementBlock("div",Wo,[e.createElementVNode("span",Io,e.toDisplayString(n("accountWizard.configPath")),1),e.createElementVNode("code",Po,e.toDisplayString(g.value),1)])):e.createCommentVNode("",!0),A.value?(e.openBlock(),e.createElementBlock("div",Ao,[e.createElementVNode("span",$o,e.toDisplayString(n("accountWizard.apiKeyEnv")),1),e.createElementVNode("code",Lo,e.toDisplayString(A.value),1)])):e.createCommentVNode("",!0)]),pe.value.length>0?(e.openBlock(),e.createElementBlock("div",To,[e.createElementVNode("label",Oo,e.toDisplayString(n("accountWizard.plan")),1),e.withDirectives(e.createElementVNode("select",{id:"wiz-plan","onUpdate:modelValue":t[8]||(t[8]=s=>Z.value=s)},[e.createElementVNode("option",Fo,e.toDisplayString(n("accountWizard.selectPlan")),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(pe.value,s=>(e.openBlock(),e.createElementBlock("option",{key:s.id,value:s.id},e.toDisplayString(s.label),9,Ko))),128))],512),[[e.vModelSelect,Z.value]])])):e.createCommentVNode("",!0),e.createElementVNode("div",Mo,[e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":t[9]||(t[9]=s=>ee.value=s)},null,512),[[e.vModelCheckbox,ee.value]]),e.createTextVNode(" "+e.toDisplayString(n("accountWizard.setDefault")),1)])]),te.value?(e.openBlock(),e.createElementBlock("div",Uo,e.toDisplayString(te.value),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Ro,[e.createElementVNode("button",{class:"btn btn-secondary",onClick:m},[t[36]||(t[36]=e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[e.createElementVNode("polyline",{points:"15 18 9 12 15 6"})],-1)),e.createTextVNode(" "+e.toDisplayString(n("common.back")),1)]),e.createElementVNode("button",{class:"btn btn-primary",disabled:M.value,onClick:we},[M.value?(e.openBlock(),e.createElementBlock("div",qo)):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(M.value?n("accountWizard.saving"):n("accountWizard.saveAccount")),1)],8,Ho)])])):e.createCommentVNode("",!0),i.value&&p.value==="done"?(e.openBlock(),e.createElementBlock("div",Go,[e.createElementVNode("div",Yo,[t[37]||(t[37]=e.createElementVNode("div",{class:"done-icon"},[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"40",height:"40"},[e.createElementVNode("path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14"}),e.createElementVNode("polyline",{points:"22 4 12 14.01 9 11.01"})])],-1)),e.createElementVNode("h4",null,e.toDisplayString(n("accountWizard.accountCreated")),1),e.createElementVNode("p",null,e.toDisplayString(k.value)+" has been added to "+e.toDisplayString(E.value)+".",1),e.createElementVNode("div",jo,[e.createElementVNode("button",{class:"btn btn-outline",onClick:Se},e.toDisplayString(n("accountWizard.addAnother")),1),e.createElementVNode("button",{class:"btn btn-primary",onClick:xe},e.toDisplayString(n("accountWizard.doneNextBackend")),1)])])])):e.createCommentVNode("",!0)]))}}),Jo=G(Xo,[["__scopeId","data-v-446a4d65"]]),Qo={class:"aia-onboarding"},Zo={class:"aia-onboarding__header"},en={key:0,class:"aia-onboarding__welcome"},tn={key:1,class:"aia-onboarding__status"},on={key:2,class:"aia-onboarding__kind-grid"},nn=["disabled","onClick"],an={class:"aia-kind-card__name"},ln={key:0,class:"aia-kind-card__badge"},sn={key:1,class:"aia-kind-card__badge aia-kind-card__badge--missing"},cn={key:3,class:"aia-onboarding__login"},rn={class:"aia-onboarding__tabs"},dn={class:"aia-label"},un={key:1,class:"aia-onboarding__oauth-start"},pn={key:4,class:"aia-onboarding__oauth-challenge"},mn=["href"],vn={class:"aia-code-display"},kn={key:5,class:"aia-onboarding__status"},yn={key:6,class:"aia-onboarding__success"},gn={key:7,class:"aia-onboarding__error"},En=e.defineComponent({__name:"OnboardingFlow",props:{client:{},kinds:{},supportedFlowsByKind:{}},emits:["done","cancel"],setup(r,{emit:h}){const n=r,f=h,a=O.useOnboarding({client:n.client}),c=e.ref(""),d=e.ref("api_key"),b=[{id:"claude",display:"Claude"},{id:"opencode",display:"OpenCode"},{id:"gemini",display:"Gemini"},{id:"codex",display:"Codex"}],u={claude:["api_key"],opencode:["api_key"],gemini:["api_key","oauth_device"],codex:["api_key","oauth_device"]},i=e.computed(()=>n.kinds??b),v=e.computed(()=>n.supportedFlowsByKind??u),E=e.computed(()=>{const m=a.selectedKind.value;return m?v.value[m]??["api_key"]:["api_key"]});async function p(){await a.start(),a.state.value!=="error"&&await a.detect()}async function S(m){await a.pickKind(m);const l=E.value;d.value=l[0]??"api_key"}async function F(){await a.submitApiKey(c.value)}async function I(){await a.submitOauthDevice()}e.watch(()=>a.state.value,m=>{m==="done"&&a.createdBackendId.value&&f("done",a.createdBackendId.value)},{immediate:!1});function P(){a.reset()}function ae(){var l;const m=(l=a.oauthChallenge.value)==null?void 0:l.user_code;m&&typeof navigator<"u"&&navigator.clipboard&&navigator.clipboard.writeText(m)}function V(m){var l,k;return(k=(l=a.kinds.value)==null?void 0:l.find(B=>B.id===m))==null?void 0:k.detection}return(m,l)=>{var k,B,Y;return e.openBlock(),e.createElementBlock("section",Qo,[e.createElementVNode("header",Zo,[e.renderSlot(m.$slots,"header",{},()=>[l[4]||(l[4]=e.createElementVNode("h2",null,"Set up an AI backend",-1))],!0)]),e.unref(a).state.value==="idle"?(e.openBlock(),e.createElementBlock("div",en,[l[5]||(l[5]=e.createElementVNode("p",null,"Connect one of the supported AI CLIs to get started.",-1)),e.createElementVNode("button",{type:"button",class:"aia-btn aia-btn--primary",onClick:p}," Get started ")])):e.unref(a).state.value==="started"||e.unref(a).state.value==="detecting"?(e.openBlock(),e.createElementBlock("div",tn," Detecting installed CLIs… ")):e.unref(a).state.value==="picking_kind"?(e.openBlock(),e.createElementBlock("div",on,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,y=>{var g,D,K,j;return e.openBlock(),e.createElementBlock("button",{key:y.id,type:"button",class:e.normalizeClass(["aia-kind-card",{"aia-kind-card--installed":(g=V(y.id))==null?void 0:g.installed,"aia-kind-card--missing":V(y.id)&&!((D=V(y.id))!=null&&D.installed)}]),disabled:!((K=V(y.id))!=null&&K.installed),onClick:A=>S(y.id)},[e.createElementVNode("span",an,e.toDisplayString(y.display),1),(j=V(y.id))!=null&&j.installed?(e.openBlock(),e.createElementBlock("span",ln," Installed ")):(e.openBlock(),e.createElementBlock("span",sn," Not installed "))],10,nn)}),128))])):e.unref(a).state.value==="entering_credential"?(e.openBlock(),e.createElementBlock("div",cn,[e.createElementVNode("div",rn,[E.value.includes("api_key")?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:e.normalizeClass(["aia-tab",{"aia-tab--active":d.value==="api_key"}]),onClick:l[0]||(l[0]=y=>d.value="api_key")}," API key ",2)):e.createCommentVNode("",!0),E.value.includes("oauth_device")?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:e.normalizeClass(["aia-tab",{"aia-tab--active":d.value==="oauth_device"}]),onClick:l[1]||(l[1]=y=>d.value="oauth_device")}," Login with browser ",2)):e.createCommentVNode("",!0)]),d.value==="api_key"?(e.openBlock(),e.createElementBlock("form",{key:0,class:"aia-onboarding__form",onSubmit:e.withModifiers(F,["prevent"])},[e.createElementVNode("label",dn,[l[6]||(l[6]=e.createTextVNode(" API key ",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":l[2]||(l[2]=y=>c.value=y),type:"password",class:"aia-input",autocomplete:"off",required:""},null,512),[[e.vModelText,c.value]])]),l[7]||(l[7]=e.createElementVNode("button",{type:"submit",class:"aia-btn aia-btn--primary"},"Connect",-1))],32)):d.value==="oauth_device"?(e.openBlock(),e.createElementBlock("div",un,[l[8]||(l[8]=e.createElementVNode("p",null,"You'll be shown a verification URL and code. Open it in your browser to sign in.",-1)),e.createElementVNode("button",{type:"button",class:"aia-btn aia-btn--primary",onClick:I}," Start browser login ")])):e.createCommentVNode("",!0)])):e.unref(a).state.value==="oauth_challenge"||e.unref(a).state.value==="oauth_polling"?(e.openBlock(),e.createElementBlock("div",pn,[l[9]||(l[9]=e.createElementVNode("p",null,"Open this URL in your browser and enter the code:",-1)),e.createElementVNode("a",{href:(k=e.unref(a).oauthChallenge.value)==null?void 0:k.verification_uri,target:"_blank",rel:"noopener noreferrer",class:"aia-onboarding__oauth-uri"},e.toDisplayString((B=e.unref(a).oauthChallenge.value)==null?void 0:B.verification_uri),9,mn),e.createElementVNode("div",vn,[e.createElementVNode("code",null,e.toDisplayString((Y=e.unref(a).oauthChallenge.value)==null?void 0:Y.user_code),1),e.createElementVNode("button",{type:"button",class:"aia-copy-btn",onClick:ae},"Copy")]),l[10]||(l[10]=e.createElementVNode("p",{class:"aia-onboarding__hint"},"Waiting for you to complete sign-in…",-1)),e.createElementVNode("button",{type:"button",class:"aia-btn",onClick:l[3]||(l[3]=(...y)=>e.unref(a).cancelOAuth&&e.unref(a).cancelOAuth(...y))},"Cancel")])):e.unref(a).state.value==="validating"?(e.openBlock(),e.createElementBlock("div",kn," Validating credential… ")):e.unref(a).state.value==="done"?(e.openBlock(),e.createElementBlock("div",yn,[e.renderSlot(m.$slots,"success",{},()=>[l[11]||(l[11]=e.createElementVNode("p",null,"✓ Connected successfully",-1))],!0)])):e.unref(a).state.value==="error"?(e.openBlock(),e.createElementBlock("div",gn,[e.createElementVNode("p",null,e.toDisplayString(e.unref(a).error.value),1),e.createElementVNode("button",{type:"button",class:"aia-btn",onClick:P},"Try again")])):e.createCommentVNode("",!0)])}}}),_n=G(En,[["__scopeId","data-v-8c20d7e7"]]),fn=["value","type","onInput"],bn={class:"aia-actions"},Nn=["disabled"],hn={key:0,class:"aia-error"},Vn=e.defineComponent({__name:"AccountEditForm",props:{account:{},metadata:{}},emits:["saved","cancel"],setup(r,{emit:h}){const n=r,f=h,{client:a}=O.useAiAccounts(),c=e.reactive({display_name:n.account.display_name,config:{...n.account.config}}),d=e.ref(!1),b=e.ref(null),u=e.computed(()=>{var v;return((v=n.metadata.config_schema)==null?void 0:v.properties)??{}});async function i(){d.value=!0,b.value=null;try{const v=await a.updateBackend(n.account.id,{display_name:c.display_name,config:c.config});f("saved",v)}catch(v){b.value=v instanceof Error?v.message:String(v)}finally{d.value=!1}}return(v,E)=>(e.openBlock(),e.createElementBlock("form",{class:"aia-account-edit",onSubmit:e.withModifiers(i,["prevent"])},[e.createElementVNode("label",null,[E[2]||(E[2]=e.createTextVNode(" Display name ",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":E[0]||(E[0]=p=>c.display_name=p),type:"text",required:""},null,512),[[e.vModelText,c.display_name]])]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,(p,S)=>(e.openBlock(),e.createElementBlock("div",{key:S,class:"aia-field"},[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(S)+" ",1),e.createElementVNode("input",{value:c.config[S]??"",type:String(S).toLowerCase().includes("secret")||String(S).toLowerCase().includes("key")?"password":"text",onInput:F=>c.config[S]=F.target.value},null,40,fn)])]))),128)),e.createElementVNode("div",bn,[e.createElementVNode("button",{type:"submit",disabled:d.value},e.toDisplayString(d.value?"Saving…":"Save"),9,Nn),e.createElementVNode("button",{type:"button",onClick:E[1]||(E[1]=p=>f("cancel"))},"Cancel")]),b.value?(e.openBlock(),e.createElementBlock("p",hn,e.toDisplayString(b.value),1)):e.createCommentVNode("",!0)],32))}}),Bn=G(Vn,[["__scopeId","data-v-56b7b8c3"]]),Cn="0.2.0";exports.AccountEditForm=Bn;exports.AccountWizard=Jo;exports.BackendPicker=ye;exports.LoginStream=ke;exports.OnboardingFlow=_n;exports.version=Cn;
|
|
@@ -319,12 +319,12 @@ const it = { class: "aia-login-stream" }, lt = {
|
|
|
319
319
|
"common.cancel": "Cancel",
|
|
320
320
|
"common.back": "Back",
|
|
321
321
|
"common.skip": "Skip"
|
|
322
|
-
})[s] ?? s, I = y, c = A, { client: p, emit: _ } = Oe(), P = Ee(), k = st(), d = v(I.initialBackendKind ?? ""),
|
|
322
|
+
})[s] ?? s, I = y, c = A, { client: p, emit: _ } = Oe(), P = Ee(), k = st(), d = v(I.initialBackendKind ?? ""), f = S(
|
|
323
323
|
() => d.value ? P.get(d.value) : void 0
|
|
324
324
|
), x = S(
|
|
325
325
|
() => {
|
|
326
326
|
var s;
|
|
327
|
-
return I.backendName || ((s =
|
|
327
|
+
return I.backendName || ((s = f.value) == null ? void 0 : s.display_name) || d.value || "Backend";
|
|
328
328
|
}
|
|
329
329
|
), b = v("subscription"), K = ["claude", "codex", "gemini"], J = S(
|
|
330
330
|
() => K.includes(
|
|
@@ -351,7 +351,7 @@ const it = { class: "aia-login-stream" }, lt = {
|
|
|
351
351
|
const s = T.value, t = s.indexOf(b.value);
|
|
352
352
|
t > 0 && (b.value = s[t - 1]);
|
|
353
353
|
}
|
|
354
|
-
const u = v(""),
|
|
354
|
+
const u = v(""), w = v(""), B = v(""), le = S(() => u.value !== "");
|
|
355
355
|
function C() {
|
|
356
356
|
if (u.value === "no") {
|
|
357
357
|
je();
|
|
@@ -365,7 +365,7 @@ const it = { class: "aia-login-stream" }, lt = {
|
|
|
365
365
|
}
|
|
366
366
|
function ce() {
|
|
367
367
|
if (R.value) return;
|
|
368
|
-
const s =
|
|
368
|
+
const s = w.value.trim();
|
|
369
369
|
if (!s) {
|
|
370
370
|
z.value = "";
|
|
371
371
|
return;
|
|
@@ -379,7 +379,7 @@ const it = { class: "aia-login-stream" }, lt = {
|
|
|
379
379
|
z.value = `~/${ke}-${t}`;
|
|
380
380
|
}
|
|
381
381
|
const q = S(() => {
|
|
382
|
-
const s =
|
|
382
|
+
const s = w.value.trim();
|
|
383
383
|
if (!s) return "";
|
|
384
384
|
const t = {
|
|
385
385
|
claude: "ANTHROPIC",
|
|
@@ -437,13 +437,13 @@ const it = { class: "aia-login-stream" }, lt = {
|
|
|
437
437
|
s === "login" && k.status.value === "idle" && await xe();
|
|
438
438
|
}, { immediate: !0 });
|
|
439
439
|
async function xe() {
|
|
440
|
-
const s =
|
|
440
|
+
const s = f.value;
|
|
441
441
|
if (s)
|
|
442
442
|
try {
|
|
443
443
|
if (!N.value) {
|
|
444
444
|
const r = await p.createBackend({
|
|
445
445
|
kind: s.kind,
|
|
446
|
-
display_name:
|
|
446
|
+
display_name: w.value.trim() || s.display_name,
|
|
447
447
|
config: We()
|
|
448
448
|
});
|
|
449
449
|
N.value = r.id;
|
|
@@ -500,7 +500,7 @@ const it = { class: "aia-login-stream" }, lt = {
|
|
|
500
500
|
}
|
|
501
501
|
const Se = S(() => {
|
|
502
502
|
var s;
|
|
503
|
-
return ((s =
|
|
503
|
+
return ((s = f.value) == null ? void 0 : s.plan_options) ?? [];
|
|
504
504
|
}), ve = v(""), pe = v(!1), Z = v(!1), ye = v(""), W = v("idle"), $ = v(""), ee = v(""), _e = v(""), te = v(""), M = v(""), ae = v(!1), ne = v(!1), U = v(null), Ie = v(!1);
|
|
505
505
|
async function Fe() {
|
|
506
506
|
try {
|
|
@@ -563,7 +563,7 @@ const it = { class: "aia-login-stream" }, lt = {
|
|
|
563
563
|
async function qe() {
|
|
564
564
|
Z.value = !0, ye.value = "";
|
|
565
565
|
try {
|
|
566
|
-
const s =
|
|
566
|
+
const s = f.value;
|
|
567
567
|
if (!s) throw new Error("No backend metadata available");
|
|
568
568
|
const t = {
|
|
569
569
|
...We(),
|
|
@@ -572,13 +572,13 @@ const it = { class: "aia-login-stream" }, lt = {
|
|
|
572
572
|
};
|
|
573
573
|
if (N.value)
|
|
574
574
|
await p.updateBackend(N.value, {
|
|
575
|
-
display_name:
|
|
575
|
+
display_name: w.value.trim() || s.display_name,
|
|
576
576
|
config: t
|
|
577
577
|
});
|
|
578
578
|
else {
|
|
579
579
|
const r = await p.createBackend({
|
|
580
580
|
kind: s.kind,
|
|
581
|
-
display_name:
|
|
581
|
+
display_name: w.value.trim() || s.display_name,
|
|
582
582
|
config: t
|
|
583
583
|
});
|
|
584
584
|
N.value = r.id;
|
|
@@ -599,7 +599,7 @@ const it = { class: "aia-login-stream" }, lt = {
|
|
|
599
599
|
}
|
|
600
600
|
}
|
|
601
601
|
function Ge() {
|
|
602
|
-
u.value = "",
|
|
602
|
+
u.value = "", w.value = "", B.value = "", z.value = "", R.value = !1, ve.value = "", pe.value = !1, Ve(), N.value = "", de.value = !1, b.value = "subscription", c("addAnother"), d.value && _({ type: "wizard.step", backendKind: d.value, step: "add-another" });
|
|
603
603
|
}
|
|
604
604
|
function fe() {
|
|
605
605
|
d.value && _({ type: "wizard.closed", backendKind: d.value, reason: "cancel" }), c("close");
|
|
@@ -694,17 +694,17 @@ const it = { class: "aia-login-stream" }, lt = {
|
|
|
694
694
|
e("div", Tt, [
|
|
695
695
|
e("label", Ht, [
|
|
696
696
|
h(o(i("accountWizard.accountName")) + " ", 1),
|
|
697
|
-
t[12] || (t[12] = e("span", { class: "
|
|
697
|
+
t[12] || (t[12] = e("span", { class: "optional" }, "(optional)", -1))
|
|
698
698
|
]),
|
|
699
699
|
D(e("input", {
|
|
700
700
|
id: "wiz-name",
|
|
701
|
-
"onUpdate:modelValue": t[3] || (t[3] = (r) =>
|
|
701
|
+
"onUpdate:modelValue": t[3] || (t[3] = (r) => w.value = r),
|
|
702
702
|
type: "text",
|
|
703
703
|
placeholder: i("accountWizard.accountNamePlaceholder"),
|
|
704
704
|
autofocus: "",
|
|
705
705
|
onInput: ce
|
|
706
706
|
}, null, 40, qt), [
|
|
707
|
-
[X,
|
|
707
|
+
[X, w.value]
|
|
708
708
|
])
|
|
709
709
|
]),
|
|
710
710
|
e("div", Gt, [
|
|
@@ -1100,7 +1100,7 @@ const it = { class: "aia-login-stream" }, lt = {
|
|
|
1100
1100
|
e("div", tn, [
|
|
1101
1101
|
e("div", an, [
|
|
1102
1102
|
e("span", nn, o(i("accountWizard.accountName")), 1),
|
|
1103
|
-
e("span", sn, o(
|
|
1103
|
+
e("span", sn, o(w.value), 1)
|
|
1104
1104
|
]),
|
|
1105
1105
|
B.value ? (a(), n("div", on, [
|
|
1106
1106
|
e("span", ln, o(i("accountWizard.email")), 1),
|
|
@@ -1186,7 +1186,7 @@ const it = { class: "aia-login-stream" }, lt = {
|
|
|
1186
1186
|
])
|
|
1187
1187
|
], -1)),
|
|
1188
1188
|
e("h4", null, o(i("accountWizard.accountCreated")), 1),
|
|
1189
|
-
e("p", null, o(
|
|
1189
|
+
e("p", null, o(w.value) + " has been added to " + o(x.value) + ".", 1),
|
|
1190
1190
|
e("div", Wn, [
|
|
1191
1191
|
e("button", {
|
|
1192
1192
|
class: "btn btn-outline",
|
|
@@ -1201,7 +1201,7 @@ const it = { class: "aia-login-stream" }, lt = {
|
|
|
1201
1201
|
])) : l("", !0)
|
|
1202
1202
|
]));
|
|
1203
1203
|
}
|
|
1204
|
-
}), ts = /* @__PURE__ */ ie(Sn, [["__scopeId", "data-v-
|
|
1204
|
+
}), ts = /* @__PURE__ */ ie(Sn, [["__scopeId", "data-v-446a4d65"]]), In = { class: "aia-onboarding" }, Pn = { class: "aia-onboarding__header" }, $n = {
|
|
1205
1205
|
key: 0,
|
|
1206
1206
|
class: "aia-onboarding__welcome"
|
|
1207
1207
|
}, An = {
|
|
@@ -1253,11 +1253,11 @@ const it = { class: "aia-login-stream" }, lt = {
|
|
|
1253
1253
|
opencode: ["api_key"],
|
|
1254
1254
|
gemini: ["api_key", "oauth_device"],
|
|
1255
1255
|
codex: ["api_key", "oauth_device"]
|
|
1256
|
-
}, d = S(() => i.kinds ?? P),
|
|
1256
|
+
}, d = S(() => i.kinds ?? P), f = S(
|
|
1257
1257
|
() => i.supportedFlowsByKind ?? k
|
|
1258
1258
|
), x = S(() => {
|
|
1259
1259
|
const g = c.selectedKind.value;
|
|
1260
|
-
return g ?
|
|
1260
|
+
return g ? f.value[g] ?? ["api_key"] : ["api_key"];
|
|
1261
1261
|
});
|
|
1262
1262
|
async function b() {
|
|
1263
1263
|
await c.start(), c.state.value !== "error" && await c.detect();
|
|
@@ -1289,11 +1289,11 @@ const it = { class: "aia-login-stream" }, lt = {
|
|
|
1289
1289
|
g && typeof navigator < "u" && navigator.clipboard && navigator.clipboard.writeText(g);
|
|
1290
1290
|
}
|
|
1291
1291
|
function L(g) {
|
|
1292
|
-
var u,
|
|
1293
|
-
return (
|
|
1292
|
+
var u, w;
|
|
1293
|
+
return (w = (u = c.kinds.value) == null ? void 0 : u.find((B) => B.id === g)) == null ? void 0 : w.detection;
|
|
1294
1294
|
}
|
|
1295
1295
|
return (g, u) => {
|
|
1296
|
-
var
|
|
1296
|
+
var w, B, le;
|
|
1297
1297
|
return a(), n("section", In, [
|
|
1298
1298
|
e("header", Pn, [
|
|
1299
1299
|
Le(g.$slots, "header", {}, () => [
|
|
@@ -1371,7 +1371,7 @@ const it = { class: "aia-login-stream" }, lt = {
|
|
|
1371
1371
|
])) : m(c).state.value === "oauth_challenge" || m(c).state.value === "oauth_polling" ? (a(), n("div", Vn, [
|
|
1372
1372
|
u[9] || (u[9] = e("p", null, "Open this URL in your browser and enter the code:", -1)),
|
|
1373
1373
|
e("a", {
|
|
1374
|
-
href: (
|
|
1374
|
+
href: (w = m(c).oauthChallenge.value) == null ? void 0 : w.verification_uri,
|
|
1375
1375
|
target: "_blank",
|
|
1376
1376
|
rel: "noopener noreferrer",
|
|
1377
1377
|
class: "aia-onboarding__oauth-uri"
|
|
@@ -1422,25 +1422,25 @@ const it = { class: "aia-login-stream" }, lt = {
|
|
|
1422
1422
|
config: { ...i.account.config }
|
|
1423
1423
|
}), _ = v(!1), P = v(null), k = S(
|
|
1424
1424
|
() => {
|
|
1425
|
-
var
|
|
1426
|
-
return ((
|
|
1425
|
+
var f;
|
|
1426
|
+
return ((f = i.metadata.config_schema) == null ? void 0 : f.properties) ?? {};
|
|
1427
1427
|
}
|
|
1428
1428
|
);
|
|
1429
1429
|
async function d() {
|
|
1430
1430
|
_.value = !0, P.value = null;
|
|
1431
1431
|
try {
|
|
1432
|
-
const
|
|
1432
|
+
const f = await c.updateBackend(i.account.id, {
|
|
1433
1433
|
display_name: p.display_name,
|
|
1434
1434
|
config: p.config
|
|
1435
1435
|
});
|
|
1436
|
-
I("saved",
|
|
1437
|
-
} catch (
|
|
1438
|
-
P.value =
|
|
1436
|
+
I("saved", f);
|
|
1437
|
+
} catch (f) {
|
|
1438
|
+
P.value = f instanceof Error ? f.message : String(f);
|
|
1439
1439
|
} finally {
|
|
1440
1440
|
_.value = !1;
|
|
1441
1441
|
}
|
|
1442
1442
|
}
|
|
1443
|
-
return (
|
|
1443
|
+
return (f, x) => (a(), n("form", {
|
|
1444
1444
|
class: "aia-account-edit",
|
|
1445
1445
|
onSubmit: we(d, ["prevent"])
|
|
1446
1446
|
}, [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountWizard.vue.d.ts","sourceRoot":"","sources":["../../src/components/AccountWizard.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AccountWizard.vue.d.ts","sourceRoot":"","sources":["../../src/components/AccountWizard.vue"],"names":[],"mappings":"AA4jEA,KAAK,WAAW,GAAG;IACjB,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;;;mBAQ6B,MAAM;;;;;;;;mBAAN,MAAM;;;;;;;AAi4DrC,wBAOG"}
|
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-133adf55]{display:flex;flex-direction:column;gap:1rem}.aia-url-prompt a[data-v-133adf55]{word-break:break-all}.aia-code code[data-v-133adf55]{font-family:var(--aia-font-mono, monospace);font-size:1.2em}.aia-stdout[data-v-133adf55]{background:var(--aia-stdout-bg, #111);color:var(--aia-stdout-fg, #eee);padding:.75rem;max-height:240px;overflow:auto;font-family:var(--aia-font-mono, monospace);font-size:.85em}.aia-error[data-v-133adf55]{color:var(--aia-error, #c00)}.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-69b009aa]{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem;animation:wizardIn-69b009aa .3s ease}@keyframes wizardIn-69b009aa{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.wizard-header[data-v-69b009aa]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem}.wizard-header h3[data-v-69b009aa]{margin:0;font-size:1.125rem;font-weight:600;color:var(--text-primary)}.wizard-close[data-v-69b009aa]{background:none;border:none;color:var(--text-secondary);font-size:1.5rem;cursor:pointer;padding:0 .25rem;line-height:1}.wizard-close[data-v-69b009aa]:hover{color:var(--text-primary)}.wizard-steps[data-v-69b009aa]{display:flex;gap:0;margin-bottom:1.5rem;border-bottom:1px solid var(--border-default);padding-bottom:1rem}.step-indicator[data-v-69b009aa]{display:flex;align-items:center;gap:.5rem;flex:1;padding:.5rem 0;position:relative}.step-indicator.clickable[data-v-69b009aa]{cursor:pointer}.step-indicator[data-v-69b009aa]:after{content:"";position:absolute;right:0;top:50%;transform:translateY(-50%);width:24px;height:1px;background:var(--border-default)}.step-indicator[data-v-69b009aa]:last-child:after{display:none}.step-number[data-v-69b009aa]{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-69b009aa]{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.step-indicator.completed .step-number[data-v-69b009aa]{background:var(--accent-emerald);color:#fff;border-color:var(--accent-emerald)}.step-label[data-v-69b009aa]{font-size:.8125rem;color:var(--text-tertiary);white-space:nowrap;transition:color .2s ease}.step-indicator.active .step-label[data-v-69b009aa]{color:var(--text-primary);font-weight:500}.step-indicator.completed .step-label[data-v-69b009aa]{color:var(--text-secondary)}.wizard-step[data-v-69b009aa]{animation:stepIn-69b009aa .25s ease}@keyframes stepIn-69b009aa{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}.step-body[data-v-69b009aa]{min-height:160px}.step-question[data-v-69b009aa]{font-size:1rem;font-weight:500;color:var(--text-primary);margin:0 0 1.25rem}.step-description[data-v-69b009aa]{color:var(--text-secondary);font-size:.875rem;margin:0 0 1rem}.radio-group[data-v-69b009aa]{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.25rem}.radio-card[data-v-69b009aa]{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-69b009aa]:hover{border-color:var(--primary-color);background:var(--bg-hover, var(--bg-secondary))}.radio-card.selected[data-v-69b009aa]{border-color:var(--primary-color);background:#6366f10f}.radio-card input[type=radio][data-v-69b009aa]{margin-top:2px;accent-color:var(--primary-color);width:16px;height:16px;flex-shrink:0}.radio-card-content[data-v-69b009aa]{display:flex;flex-direction:column;gap:.25rem}.radio-card-title[data-v-69b009aa]{font-size:.875rem;font-weight:600;color:var(--text-primary)}.radio-card-desc[data-v-69b009aa]{font-size:.75rem;color:var(--text-secondary);line-height:1.4}.account-fields[data-v-69b009aa]{padding-top:.25rem}.slide-down-enter-active[data-v-69b009aa],.slide-down-leave-active[data-v-69b009aa]{transition:all .25s ease;overflow:hidden}.slide-down-enter-from[data-v-69b009aa],.slide-down-leave-to[data-v-69b009aa]{opacity:0;transform:translateY(-8px);max-height:0}.slide-down-enter-to[data-v-69b009aa],.slide-down-leave-from[data-v-69b009aa]{opacity:1;transform:translateY(0);max-height:300px}.step-actions[data-v-69b009aa]{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-69b009aa]{display:inline-flex;align-items:center;gap:.375rem}.form-group[data-v-69b009aa]{margin-bottom:1rem}.form-group.compact[data-v-69b009aa]{margin-bottom:0;margin-top:.5rem}.form-group label[data-v-69b009aa]{display:block;margin-bottom:.375rem;font-size:.8125rem;font-weight:500;color:var(--text-primary)}.required[data-v-69b009aa]{color:var(--accent-crimson)}.form-group input[type=text][data-v-69b009aa],.form-group input[type=email][data-v-69b009aa]{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-69b009aa]:focus,.form-group select[data-v-69b009aa]:focus{outline:none;border-color:var(--primary-color)}.form-group small[data-v-69b009aa]{display:block;margin-top:.25rem;font-size:.75rem;color:var(--text-secondary)}.form-group select[data-v-69b009aa]{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-69b009aa]{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:400}.form-group.checkbox input[type=checkbox][data-v-69b009aa]{width:16px;height:16px}.status-card[data-v-69b009aa]{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-69b009aa]{border-color:#34d3994d}.status-card.status-warn[data-v-69b009aa]{border-color:#fbbf244d}.status-icon[data-v-69b009aa]{display:flex;align-items:center;flex-shrink:0}.status-card.status-ok .status-icon[data-v-69b009aa]{color:var(--accent-emerald)}.status-card.status-warn .status-icon[data-v-69b009aa]{color:var(--accent-amber, #fbbf24)}.status-info[data-v-69b009aa]{display:flex;flex-direction:column;flex:1}.status-title[data-v-69b009aa]{font-size:.875rem;font-weight:600;color:var(--text-primary)}.status-detail[data-v-69b009aa]{font-size:.75rem;color:var(--text-secondary)}.config-dir-section[data-v-69b009aa]{margin-bottom:1rem}.config-dir-label[data-v-69b009aa]{font-size:.8125rem;font-weight:500;color:var(--text-primary);margin-bottom:.375rem}.config-dir-path[data-v-69b009aa]{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-69b009aa]{font-family:var(--font-mono, monospace);font-size:.8125rem;color:var(--text-primary);flex:1}.dir-created-badge[data-v-69b009aa]{display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem;color:var(--accent-emerald);font-weight:500}.config-path-edit[data-v-69b009aa]{margin-top:.375rem}.btn-link-sm[data-v-69b009aa]{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-69b009aa]:hover{color:var(--text-secondary)}.api-key-info[data-v-69b009aa]{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-69b009aa]{font-size:.75rem;font-weight:500;color:var(--text-secondary)}.api-key-info code[data-v-69b009aa]{font-family:var(--font-mono, monospace);font-size:.8125rem;color:var(--text-primary)}.login-start-btn[data-v-69b009aa]{display:inline-flex;align-items:center;gap:8px;margin-bottom:16px}.login-terminal[data-v-69b009aa]{background:#0a0a0f;border:1px solid var(--border-default);border-radius:8px;overflow:hidden}.login-terminal-output[data-v-69b009aa]{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-69b009aa]{min-height:1.2em}.login-terminal-input[data-v-69b009aa]{display:flex;align-items:center;gap:8px;padding:8px 16px;border-top:1px solid var(--border-default);background:#ffffff05}.terminal-prompt[data-v-69b009aa]{color:var(--accent-cyan);font-family:Geist Mono,monospace;font-weight:600;flex-shrink:0}.terminal-input[data-v-69b009aa]{flex:1;background:transparent;border:none;color:var(--text-primary);font-family:Geist Mono,monospace;font-size:12px;outline:none}.terminal-input[data-v-69b009aa]::placeholder{color:#52525b}.login-connecting[data-v-69b009aa]{color:var(--accent-cyan)}.login-terminal-waiting[data-v-69b009aa]{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-69b009aa]{display:flex;flex-direction:column;gap:8px;padding:12px 16px;border-top:1px solid var(--border-default)}.login-question-text[data-v-69b009aa]{margin:0 0 8px;font-size:13px;color:var(--text-secondary);line-height:1.4}.login-option[data-v-69b009aa]{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-69b009aa]:hover{border-color:var(--accent-cyan);background:#00cffd0d}.login-option-number[data-v-69b009aa]{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-69b009aa]{font-size:13px;font-weight:500;color:var(--text-primary)}.login-option-arrow[data-v-69b009aa]{color:var(--text-tertiary);flex-shrink:0}.login-status[data-v-69b009aa]{display:flex;align-items:center;gap:.5rem;padding:.75rem;border-radius:6px;font-size:.8125rem;margin-bottom:.75rem}.login-started[data-v-69b009aa]{background:#60a5fa1a;color:var(--accent-cyan, #60a5fa);border:1px solid rgba(96,165,250,.2)}.login-error[data-v-69b009aa]{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-69b009aa]{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-69b009aa]{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-69b009aa]{font-size:.8125rem;color:var(--text-secondary)}.device-code[data-v-69b009aa]{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-69b009aa]{font-size:.75rem;color:var(--text-tertiary);text-align:center;margin-top:.5rem}.review-card[data-v-69b009aa]{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-69b009aa]{display:flex;justify-content:space-between;align-items:center;font-size:.8125rem}.review-label[data-v-69b009aa]{color:var(--text-secondary)}.review-value[data-v-69b009aa]{color:var(--text-primary);font-weight:500}code.review-value[data-v-69b009aa]{font-family:var(--font-mono, monospace);font-weight:400;font-size:.8125rem}.done-body[data-v-69b009aa]{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2rem 0}.done-icon[data-v-69b009aa]{color:var(--accent-emerald);margin-bottom:1rem}.done-body h4[data-v-69b009aa]{margin:0 0 .5rem;font-size:1.125rem;font-weight:600;color:var(--text-primary)}.done-body p[data-v-69b009aa]{margin:0 0 1.5rem;font-size:.875rem;color:var(--text-secondary)}.done-actions[data-v-69b009aa]{display:flex;gap:.75rem}.proxy-login-status[data-v-69b009aa]{width:100%;padding:.75rem 1rem;border-radius:8px;margin-bottom:1.25rem;font-size:.8125rem}.proxy-status-row[data-v-69b009aa]{display:flex;align-items:center;gap:.5rem}.proxy-running[data-v-69b009aa]{background:#3b82f61a;border:1px solid rgba(59,130,246,.2);color:var(--text-secondary)}.proxy-success[data-v-69b009aa]{background:#22c55e1a;border:1px solid rgba(34,197,94,.2);color:var(--accent-emerald)}.proxy-device_auth[data-v-69b009aa]{background:#3b82f61a;border:1px solid rgba(59,130,246,.2);color:var(--text-secondary)}.proxy-device-auth[data-v-69b009aa]{display:flex;flex-direction:column;align-items:center;gap:.75rem}.proxy-device-msg[data-v-69b009aa]{margin:0;font-size:.8125rem;color:var(--text-secondary)}.proxy-device-code[data-v-69b009aa]{padding:.5rem 1.5rem;background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:8px}.proxy-device-code code[data-v-69b009aa]{font-family:SF Mono,Monaco,Cascadia Code,monospace;font-size:1.25rem;font-weight:700;color:#e4e4e7;letter-spacing:2px}.proxy-open-link[data-v-69b009aa]{font-size:.75rem;display:inline-flex;align-items:center;gap:.375rem}.proxy-callback-section[data-v-69b009aa]{width:100%;margin-top:.25rem}.proxy-callback-hint[data-v-69b009aa]{margin:0 0 .5rem;font-size:.75rem;color:var(--text-tertiary);line-height:1.4}.proxy-callback-input[data-v-69b009aa]{display:flex;gap:.375rem}.proxy-callback-input input[data-v-69b009aa]{flex:1;font-size:.75rem;padding:.375rem .5rem;background:#0003;border:1px solid var(--border-subtle);border-radius:6px;color:var(--text-primary);font-family:SF Mono,monospace}.proxy-skipped[data-v-69b009aa]{background:#eab30814;border:1px solid rgba(234,179,8,.15);color:var(--text-tertiary)}.proxy-error[data-v-69b009aa]{background:#ef444414;border:1px solid rgba(239,68,68,.15);color:var(--accent-red, #ef4444)}.error-text[data-v-69b009aa]{font-size:.8125rem;color:var(--accent-crimson);margin-top:.375rem}.btn[data-v-69b009aa]{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-69b009aa]{padding:.375rem .75rem;font-size:.8125rem}.btn-primary[data-v-69b009aa]{background:var(--primary-color);color:#fff}.btn-primary[data-v-69b009aa]:hover:not(:disabled){background:var(--primary-hover)}.btn-primary[data-v-69b009aa]:disabled{opacity:.6;cursor:not-allowed}.btn-secondary[data-v-69b009aa]{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-default)}.btn-secondary[data-v-69b009aa]:hover{background:var(--bg-hover, var(--bg-secondary))}.btn-outline[data-v-69b009aa]{background:transparent;color:var(--text-secondary);border:1px solid var(--border-default)}.btn-outline[data-v-69b009aa]:hover{background:var(--bg-tertiary);color:var(--text-primary)}.spinner-sm[data-v-69b009aa]{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:currentColor;border-radius:50%;animation:spin-69b009aa .6s linear infinite;display:inline-block;flex-shrink:0}@keyframes spin-69b009aa{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)}
|
|
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-133adf55]{display:flex;flex-direction:column;gap:1rem}.aia-url-prompt a[data-v-133adf55]{word-break:break-all}.aia-code code[data-v-133adf55]{font-family:var(--aia-font-mono, monospace);font-size:1.2em}.aia-stdout[data-v-133adf55]{background:var(--aia-stdout-bg, #111);color:var(--aia-stdout-fg, #eee);padding:.75rem;max-height:240px;overflow:auto;font-family:var(--aia-font-mono, monospace);font-size:.85em}.aia-error[data-v-133adf55]{color:var(--aia-error, #c00)}.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-446a4d65]{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem;animation:wizardIn-446a4d65 .3s ease}@keyframes wizardIn-446a4d65{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.wizard-header[data-v-446a4d65]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem}.wizard-header h3[data-v-446a4d65]{margin:0;font-size:1.125rem;font-weight:600;color:var(--text-primary)}.wizard-close[data-v-446a4d65]{background:none;border:none;color:var(--text-secondary);font-size:1.5rem;cursor:pointer;padding:0 .25rem;line-height:1}.wizard-close[data-v-446a4d65]:hover{color:var(--text-primary)}.wizard-steps[data-v-446a4d65]{display:flex;gap:0;margin-bottom:1.5rem;border-bottom:1px solid var(--border-default);padding-bottom:1rem}.step-indicator[data-v-446a4d65]{display:flex;align-items:center;gap:.5rem;flex:1;padding:.5rem 0;position:relative}.step-indicator.clickable[data-v-446a4d65]{cursor:pointer}.step-indicator[data-v-446a4d65]:after{content:"";position:absolute;right:0;top:50%;transform:translateY(-50%);width:24px;height:1px;background:var(--border-default)}.step-indicator[data-v-446a4d65]:last-child:after{display:none}.step-number[data-v-446a4d65]{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-446a4d65]{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.step-indicator.completed .step-number[data-v-446a4d65]{background:var(--accent-emerald);color:#fff;border-color:var(--accent-emerald)}.step-label[data-v-446a4d65]{font-size:.8125rem;color:var(--text-tertiary);white-space:nowrap;transition:color .2s ease}.step-indicator.active .step-label[data-v-446a4d65]{color:var(--text-primary);font-weight:500}.step-indicator.completed .step-label[data-v-446a4d65]{color:var(--text-secondary)}.wizard-step[data-v-446a4d65]{animation:stepIn-446a4d65 .25s ease}@keyframes stepIn-446a4d65{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}.step-body[data-v-446a4d65]{min-height:160px}.step-question[data-v-446a4d65]{font-size:1rem;font-weight:500;color:var(--text-primary);margin:0 0 1.25rem}.step-description[data-v-446a4d65]{color:var(--text-secondary);font-size:.875rem;margin:0 0 1rem}.radio-group[data-v-446a4d65]{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.25rem}.radio-card[data-v-446a4d65]{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-446a4d65]:hover{border-color:var(--primary-color);background:var(--bg-hover, var(--bg-secondary))}.radio-card.selected[data-v-446a4d65]{border-color:var(--primary-color);background:#6366f10f}.radio-card input[type=radio][data-v-446a4d65]{margin-top:2px;accent-color:var(--primary-color);width:16px;height:16px;flex-shrink:0}.radio-card-content[data-v-446a4d65]{display:flex;flex-direction:column;gap:.25rem}.radio-card-title[data-v-446a4d65]{font-size:.875rem;font-weight:600;color:var(--text-primary)}.radio-card-desc[data-v-446a4d65]{font-size:.75rem;color:var(--text-secondary);line-height:1.4}.account-fields[data-v-446a4d65]{padding-top:.25rem}.slide-down-enter-active[data-v-446a4d65],.slide-down-leave-active[data-v-446a4d65]{transition:all .25s ease;overflow:hidden}.slide-down-enter-from[data-v-446a4d65],.slide-down-leave-to[data-v-446a4d65]{opacity:0;transform:translateY(-8px);max-height:0}.slide-down-enter-to[data-v-446a4d65],.slide-down-leave-from[data-v-446a4d65]{opacity:1;transform:translateY(0);max-height:300px}.step-actions[data-v-446a4d65]{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-446a4d65]{display:inline-flex;align-items:center;gap:.375rem}.form-group[data-v-446a4d65]{margin-bottom:1rem}.form-group.compact[data-v-446a4d65]{margin-bottom:0;margin-top:.5rem}.form-group label[data-v-446a4d65]{display:block;margin-bottom:.375rem;font-size:.8125rem;font-weight:500;color:var(--text-primary)}.required[data-v-446a4d65]{color:var(--accent-crimson)}.form-group input[type=text][data-v-446a4d65],.form-group input[type=email][data-v-446a4d65]{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-446a4d65]:focus,.form-group select[data-v-446a4d65]:focus{outline:none;border-color:var(--primary-color)}.form-group small[data-v-446a4d65]{display:block;margin-top:.25rem;font-size:.75rem;color:var(--text-secondary)}.form-group select[data-v-446a4d65]{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-446a4d65]{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:400}.form-group.checkbox input[type=checkbox][data-v-446a4d65]{width:16px;height:16px}.status-card[data-v-446a4d65]{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-446a4d65]{border-color:#34d3994d}.status-card.status-warn[data-v-446a4d65]{border-color:#fbbf244d}.status-icon[data-v-446a4d65]{display:flex;align-items:center;flex-shrink:0}.status-card.status-ok .status-icon[data-v-446a4d65]{color:var(--accent-emerald)}.status-card.status-warn .status-icon[data-v-446a4d65]{color:var(--accent-amber, #fbbf24)}.status-info[data-v-446a4d65]{display:flex;flex-direction:column;flex:1}.status-title[data-v-446a4d65]{font-size:.875rem;font-weight:600;color:var(--text-primary)}.status-detail[data-v-446a4d65]{font-size:.75rem;color:var(--text-secondary)}.config-dir-section[data-v-446a4d65]{margin-bottom:1rem}.config-dir-label[data-v-446a4d65]{font-size:.8125rem;font-weight:500;color:var(--text-primary);margin-bottom:.375rem}.config-dir-path[data-v-446a4d65]{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-446a4d65]{font-family:var(--font-mono, monospace);font-size:.8125rem;color:var(--text-primary);flex:1}.dir-created-badge[data-v-446a4d65]{display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem;color:var(--accent-emerald);font-weight:500}.config-path-edit[data-v-446a4d65]{margin-top:.375rem}.btn-link-sm[data-v-446a4d65]{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-446a4d65]:hover{color:var(--text-secondary)}.api-key-info[data-v-446a4d65]{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-446a4d65]{font-size:.75rem;font-weight:500;color:var(--text-secondary)}.api-key-info code[data-v-446a4d65]{font-family:var(--font-mono, monospace);font-size:.8125rem;color:var(--text-primary)}.login-start-btn[data-v-446a4d65]{display:inline-flex;align-items:center;gap:8px;margin-bottom:16px}.login-terminal[data-v-446a4d65]{background:#0a0a0f;border:1px solid var(--border-default);border-radius:8px;overflow:hidden}.login-terminal-output[data-v-446a4d65]{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-446a4d65]{min-height:1.2em}.login-terminal-input[data-v-446a4d65]{display:flex;align-items:center;gap:8px;padding:8px 16px;border-top:1px solid var(--border-default);background:#ffffff05}.terminal-prompt[data-v-446a4d65]{color:var(--accent-cyan);font-family:Geist Mono,monospace;font-weight:600;flex-shrink:0}.terminal-input[data-v-446a4d65]{flex:1;background:transparent;border:none;color:var(--text-primary);font-family:Geist Mono,monospace;font-size:12px;outline:none}.terminal-input[data-v-446a4d65]::placeholder{color:#52525b}.login-connecting[data-v-446a4d65]{color:var(--accent-cyan)}.login-terminal-waiting[data-v-446a4d65]{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-446a4d65]{display:flex;flex-direction:column;gap:8px;padding:12px 16px;border-top:1px solid var(--border-default)}.login-question-text[data-v-446a4d65]{margin:0 0 8px;font-size:13px;color:var(--text-secondary);line-height:1.4}.login-option[data-v-446a4d65]{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-446a4d65]:hover{border-color:var(--accent-cyan);background:#00cffd0d}.login-option-number[data-v-446a4d65]{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-446a4d65]{font-size:13px;font-weight:500;color:var(--text-primary)}.login-option-arrow[data-v-446a4d65]{color:var(--text-tertiary);flex-shrink:0}.login-status[data-v-446a4d65]{display:flex;align-items:center;gap:.5rem;padding:.75rem;border-radius:6px;font-size:.8125rem;margin-bottom:.75rem}.login-started[data-v-446a4d65]{background:#60a5fa1a;color:var(--accent-cyan, #60a5fa);border:1px solid rgba(96,165,250,.2)}.login-error[data-v-446a4d65]{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-446a4d65]{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-446a4d65]{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-446a4d65]{font-size:.8125rem;color:var(--text-secondary)}.device-code[data-v-446a4d65]{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-446a4d65]{font-size:.75rem;color:var(--text-tertiary);text-align:center;margin-top:.5rem}.review-card[data-v-446a4d65]{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-446a4d65]{display:flex;justify-content:space-between;align-items:center;font-size:.8125rem}.review-label[data-v-446a4d65]{color:var(--text-secondary)}.review-value[data-v-446a4d65]{color:var(--text-primary);font-weight:500}code.review-value[data-v-446a4d65]{font-family:var(--font-mono, monospace);font-weight:400;font-size:.8125rem}.done-body[data-v-446a4d65]{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2rem 0}.done-icon[data-v-446a4d65]{color:var(--accent-emerald);margin-bottom:1rem}.done-body h4[data-v-446a4d65]{margin:0 0 .5rem;font-size:1.125rem;font-weight:600;color:var(--text-primary)}.done-body p[data-v-446a4d65]{margin:0 0 1.5rem;font-size:.875rem;color:var(--text-secondary)}.done-actions[data-v-446a4d65]{display:flex;gap:.75rem}.proxy-login-status[data-v-446a4d65]{width:100%;padding:.75rem 1rem;border-radius:8px;margin-bottom:1.25rem;font-size:.8125rem}.proxy-status-row[data-v-446a4d65]{display:flex;align-items:center;gap:.5rem}.proxy-running[data-v-446a4d65]{background:#3b82f61a;border:1px solid rgba(59,130,246,.2);color:var(--text-secondary)}.proxy-success[data-v-446a4d65]{background:#22c55e1a;border:1px solid rgba(34,197,94,.2);color:var(--accent-emerald)}.proxy-device_auth[data-v-446a4d65]{background:#3b82f61a;border:1px solid rgba(59,130,246,.2);color:var(--text-secondary)}.proxy-device-auth[data-v-446a4d65]{display:flex;flex-direction:column;align-items:center;gap:.75rem}.proxy-device-msg[data-v-446a4d65]{margin:0;font-size:.8125rem;color:var(--text-secondary)}.proxy-device-code[data-v-446a4d65]{padding:.5rem 1.5rem;background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:8px}.proxy-device-code code[data-v-446a4d65]{font-family:SF Mono,Monaco,Cascadia Code,monospace;font-size:1.25rem;font-weight:700;color:#e4e4e7;letter-spacing:2px}.proxy-open-link[data-v-446a4d65]{font-size:.75rem;display:inline-flex;align-items:center;gap:.375rem}.proxy-callback-section[data-v-446a4d65]{width:100%;margin-top:.25rem}.proxy-callback-hint[data-v-446a4d65]{margin:0 0 .5rem;font-size:.75rem;color:var(--text-tertiary);line-height:1.4}.proxy-callback-input[data-v-446a4d65]{display:flex;gap:.375rem}.proxy-callback-input input[data-v-446a4d65]{flex:1;font-size:.75rem;padding:.375rem .5rem;background:#0003;border:1px solid var(--border-subtle);border-radius:6px;color:var(--text-primary);font-family:SF Mono,monospace}.proxy-skipped[data-v-446a4d65]{background:#eab30814;border:1px solid rgba(234,179,8,.15);color:var(--text-tertiary)}.proxy-error[data-v-446a4d65]{background:#ef444414;border:1px solid rgba(239,68,68,.15);color:var(--accent-red, #ef4444)}.error-text[data-v-446a4d65]{font-size:.8125rem;color:var(--accent-crimson);margin-top:.375rem}.btn[data-v-446a4d65]{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-446a4d65]{padding:.375rem .75rem;font-size:.8125rem}.btn-primary[data-v-446a4d65]{background:var(--primary-color);color:#fff}.btn-primary[data-v-446a4d65]:hover:not(:disabled){background:var(--primary-hover)}.btn-primary[data-v-446a4d65]:disabled{opacity:.6;cursor:not-allowed}.btn-secondary[data-v-446a4d65]{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-default)}.btn-secondary[data-v-446a4d65]:hover{background:var(--bg-hover, var(--bg-secondary))}.btn-outline[data-v-446a4d65]{background:transparent;color:var(--text-secondary);border:1px solid var(--border-default)}.btn-outline[data-v-446a4d65]:hover{background:var(--bg-tertiary);color:var(--text-primary)}.spinner-sm[data-v-446a4d65]{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:currentColor;border-radius:50%;animation:spin-446a4d65 .6s linear infinite;display:inline-block;flex-shrink:0}@keyframes spin-446a4d65{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)}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-accounts/vue-styled",
|
|
3
|
-
"version": "0.3.0-alpha.
|
|
3
|
+
"version": "0.3.0-alpha.2",
|
|
4
4
|
"description": "Vue 3 styled components for ai-accounts",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
"vue": "^3.4.0"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@ai-accounts/
|
|
26
|
-
"@ai-accounts/
|
|
25
|
+
"@ai-accounts/vue-headless": "0.3.0-alpha.2",
|
|
26
|
+
"@ai-accounts/ts-core": "0.3.0-alpha.2"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"vue": "^3.4.0",
|