vibe64 0.1.21 → 0.1.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/dist/assets/ProjectTypeGate-B3NHteXC.js +1 -0
  2. package/dist/assets/ProjectTypeGate-fJcYj6sR.css +1 -0
  3. package/dist/assets/{SetupReadinessGate-DkkorR2Y.js → SetupReadinessGate-2twHjoYZ.js} +1 -1
  4. package/dist/assets/{ShellLayout-BcKS2HG9.js → ShellLayout-BjAbXfzf.js} +1 -1
  5. package/dist/assets/{VTabs-BJ8MKoig.js → VTabs-BLGGdbms.js} +1 -1
  6. package/dist/assets/{error-CwT53qTu.js → error-DvUPciuh.js} +1 -1
  7. package/dist/assets/history-DfM4ewyV.js +1 -0
  8. package/dist/assets/home-sh4v0vz7.js +1 -0
  9. package/dist/assets/index-C4JbNnml.css +1 -0
  10. package/dist/assets/{index-BJxDQvyK.js → index-CdFWokfE.js} +1 -1
  11. package/dist/assets/index-D4oqjV9n.js +132 -0
  12. package/dist/assets/{index-CY-wDjNv.js → index-DqoYKexs.js} +15 -15
  13. package/dist/assets/{placement-7FCYadh2.js → placement-QfRaYTFY.js} +1 -1
  14. package/dist/assets/{setup-BzzdD38G.js → setup-B-WOti3H.js} +2 -2
  15. package/dist/assets/{streamEvents-Ba9kHw-1.js → streamEvents-CIqegoLa.js} +1 -1
  16. package/dist/assets/{studioGateApi-hkZdLr1Y.js → studioGateApi-CFtez6lH.js} +1 -1
  17. package/dist/assets/{target-scripts-8hczu84t.js → target-scripts-CI-nAISO.js} +1 -1
  18. package/dist/assets/useStudioTerminal-I8tuBymw.js +1 -0
  19. package/dist/assets/vibe64SessionPanelModel-DLdexNxC.js +1 -0
  20. package/dist/index.html +1 -1
  21. package/node_modules/@local/setup-doctor-core/src/server/doctorToolchain.js +4 -0
  22. package/node_modules/@local/studio-terminal-core/src/server/gitGithubTransport.js +33 -0
  23. package/node_modules/@local/studio-terminal-core/src/server/index.js +1 -0
  24. package/node_modules/@local/studio-terminal-core/src/server/terminalSessions.js +51 -1
  25. package/node_modules/@local/vibe64-adapters/src/server/adapter.js +4 -0
  26. package/node_modules/@local/vibe64-adapters/src/server/adapters/laravel/adapter.js +5 -0
  27. package/node_modules/@local/vibe64-adapters/src/server/adapters/laravel/databaseRuntime.js +50 -0
  28. package/node_modules/@local/vibe64-adapters/src/server/configStore.js +22 -1
  29. package/node_modules/@local/vibe64-adapters/src/server/systemPrompts/agent_conversation.txt +0 -2
  30. package/node_modules/@local/vibe64-adapters/src/server/systemPrompts/draft_issue.txt +18 -0
  31. package/node_modules/@local/vibe64-adapters/src/server/systemPrompts/make_plan.txt +14 -2
  32. package/node_modules/@local/vibe64-adapters/src/server/systemPrompts/prepare_for_merge.txt +2 -0
  33. package/node_modules/@local/vibe64-adapters/src/server/systemPrompts/resolve_pull_request.txt +1 -0
  34. package/node_modules/@local/vibe64-adapters/src/server/systemPrompts/run_deep_ui_check.txt +7 -3
  35. package/node_modules/@local/vibe64-adapters/src/server/workflowCommandTerminal/commitPush.js +4 -22
  36. package/node_modules/@local/vibe64-adapters/src/server/workflowCommandTerminal/factMetadata.js +21 -20
  37. package/node_modules/@local/vibe64-adapters/src/server/workflowCommandTerminal/issuePr.js +27 -4
  38. package/node_modules/@local/vibe64-adapters/src/server/workflowCommandTerminal/mergeSync.js +65 -8
  39. package/node_modules/@local/vibe64-adapters/src/server/workflowCommandTerminal/worktreeDependencies.js +12 -25
  40. package/node_modules/@local/vibe64-adapters/src/server/workflowSessionActions.js +77 -20
  41. package/node_modules/@local/vibe64-core/src/server/terminalWebSocketRoutes.js +14 -5
  42. package/node_modules/@local/vibe64-project/src/server/actions.js +21 -0
  43. package/node_modules/@local/vibe64-project/src/server/registerRoutes.js +6 -0
  44. package/node_modules/@local/vibe64-project/src/server/service.js +125 -8
  45. package/node_modules/@local/vibe64-runtime/src/server/coreProjectTools.js +135 -0
  46. package/node_modules/@local/vibe64-runtime/src/server/index.js +4 -0
  47. package/node_modules/@local/vibe64-runtime/src/server/projectToolRegistry.js +434 -0
  48. package/node_modules/@local/vibe64-runtime/src/server/runtime.js +40 -16
  49. package/node_modules/@local/vibe64-runtime/src/server/sessionWorktreeState.js +25 -0
  50. package/node_modules/@local/vibe64-runtime/src/server/terminalFailureFixRequest.js +112 -0
  51. package/node_modules/@local/vibe64-runtime/src/server/workflowArtifacts.js +2 -2
  52. package/node_modules/@local/vibe64-runtime/src/server/workflowDefinitionBuilders.js +1 -0
  53. package/node_modules/@local/vibe64-runtime/src/server/workflowDefinitionComposers.js +192 -0
  54. package/node_modules/@local/vibe64-runtime/src/server/workflowMachine.js +5 -0
  55. package/node_modules/@local/vibe64-runtime/src/server/workflowModules/coreCoding.js +1309 -419
  56. package/node_modules/@local/vibe64-runtime/src/server/workflowModules/coreLifecycle.js +540 -358
  57. package/node_modules/@local/vibe64-runtime/src/server/workflowModules/coreMaintenance.js +5 -26
  58. package/node_modules/@local/vibe64-runtime/src/server/workflowPresentation.js +153 -26
  59. package/node_modules/@local/vibe64-runtime/src/server/workflowStepMachineHelpers.js +63 -10
  60. package/node_modules/@local/vibe64-runtime/src/server/workflowStepMachines.js +63 -2
  61. package/node_modules/@local/vibe64-sessions/src/server/inputSchemas.js +5 -0
  62. package/node_modules/@local/vibe64-sessions/src/server/service.js +8 -9
  63. package/node_modules/@local/vibe64-terminals/src/server/actions.js +65 -0
  64. package/node_modules/@local/vibe64-terminals/src/server/codexTerminal.js +608 -23
  65. package/node_modules/@local/vibe64-terminals/src/server/commandTerminal.js +261 -4
  66. package/node_modules/@local/vibe64-terminals/src/server/fixCodexJobs.js +420 -0
  67. package/node_modules/@local/vibe64-terminals/src/server/inputSchemas.js +240 -0
  68. package/node_modules/@local/vibe64-terminals/src/server/launchTargetTerminal.js +2 -0
  69. package/node_modules/@local/vibe64-terminals/src/server/registerRoutes.js +226 -0
  70. package/node_modules/@local/vibe64-terminals/src/server/service.js +140 -1
  71. package/node_modules/@local/vibe64-terminals/src/server/targetToolchainTerminal.js +1 -1
  72. package/node_modules/@local/vibe64-terminals/src/server/terminalShared.js +34 -0
  73. package/node_modules/node-pty/build/Makefile +369 -0
  74. package/node_modules/node-pty/build/Release/pty.node +0 -0
  75. package/node_modules/node-pty/build/binding.Makefile +6 -0
  76. package/node_modules/node-pty/build/config.gypi +440 -0
  77. package/node_modules/node-pty/build/pty.target.mk +166 -0
  78. package/node_modules/node-pty/node-addon-api/node_addon_api.Makefile +6 -0
  79. package/node_modules/node-pty/node-addon-api/node_addon_api.target.mk +104 -0
  80. package/node_modules/node-pty/node-addon-api/node_addon_api_except.target.mk +108 -0
  81. package/node_modules/node-pty/node-addon-api/node_addon_api_maybe.target.mk +104 -0
  82. package/node_modules/which/CHANGELOG.md +166 -0
  83. package/package.json +2 -2
  84. package/packages/setup-doctor-core/src/server/doctorToolchain.js +4 -0
  85. package/packages/studio-terminal-core/src/server/gitGithubTransport.js +33 -0
  86. package/packages/studio-terminal-core/src/server/index.js +1 -0
  87. package/packages/studio-terminal-core/src/server/terminalSessions.js +51 -1
  88. package/packages/vibe64-adapters/src/server/adapter.js +4 -0
  89. package/packages/vibe64-adapters/src/server/adapters/laravel/adapter.js +5 -0
  90. package/packages/vibe64-adapters/src/server/adapters/laravel/databaseRuntime.js +50 -0
  91. package/packages/vibe64-adapters/src/server/configStore.js +22 -1
  92. package/packages/vibe64-adapters/src/server/systemPrompts/agent_conversation.txt +0 -2
  93. package/packages/vibe64-adapters/src/server/systemPrompts/draft_issue.txt +18 -0
  94. package/packages/vibe64-adapters/src/server/systemPrompts/make_plan.txt +14 -2
  95. package/packages/vibe64-adapters/src/server/systemPrompts/prepare_for_merge.txt +2 -0
  96. package/packages/vibe64-adapters/src/server/systemPrompts/resolve_pull_request.txt +1 -0
  97. package/packages/vibe64-adapters/src/server/systemPrompts/run_deep_ui_check.txt +7 -3
  98. package/packages/vibe64-adapters/src/server/workflowCommandTerminal/commitPush.js +4 -22
  99. package/packages/vibe64-adapters/src/server/workflowCommandTerminal/factMetadata.js +21 -20
  100. package/packages/vibe64-adapters/src/server/workflowCommandTerminal/issuePr.js +27 -4
  101. package/packages/vibe64-adapters/src/server/workflowCommandTerminal/mergeSync.js +65 -8
  102. package/packages/vibe64-adapters/src/server/workflowCommandTerminal/worktreeDependencies.js +12 -25
  103. package/packages/vibe64-adapters/src/server/workflowSessionActions.js +77 -20
  104. package/packages/vibe64-core/src/server/terminalWebSocketRoutes.js +14 -5
  105. package/packages/vibe64-project/src/server/actions.js +21 -0
  106. package/packages/vibe64-project/src/server/registerRoutes.js +6 -0
  107. package/packages/vibe64-project/src/server/service.js +125 -8
  108. package/packages/vibe64-runtime/src/server/coreProjectTools.js +135 -0
  109. package/packages/vibe64-runtime/src/server/index.js +4 -0
  110. package/packages/vibe64-runtime/src/server/projectToolRegistry.js +434 -0
  111. package/packages/vibe64-runtime/src/server/runtime.js +40 -16
  112. package/packages/vibe64-runtime/src/server/sessionWorktreeState.js +25 -0
  113. package/packages/vibe64-runtime/src/server/terminalFailureFixRequest.js +112 -0
  114. package/packages/vibe64-runtime/src/server/workflowArtifacts.js +2 -2
  115. package/packages/vibe64-runtime/src/server/workflowDefinitionBuilders.js +1 -0
  116. package/packages/vibe64-runtime/src/server/workflowDefinitionComposers.js +192 -0
  117. package/packages/vibe64-runtime/src/server/workflowMachine.js +5 -0
  118. package/packages/vibe64-runtime/src/server/workflowModules/coreCoding.js +1309 -419
  119. package/packages/vibe64-runtime/src/server/workflowModules/coreLifecycle.js +540 -358
  120. package/packages/vibe64-runtime/src/server/workflowModules/coreMaintenance.js +5 -26
  121. package/packages/vibe64-runtime/src/server/workflowPresentation.js +153 -26
  122. package/packages/vibe64-runtime/src/server/workflowStepMachineHelpers.js +63 -10
  123. package/packages/vibe64-runtime/src/server/workflowStepMachines.js +63 -2
  124. package/packages/vibe64-sessions/src/server/inputSchemas.js +5 -0
  125. package/packages/vibe64-sessions/src/server/service.js +8 -9
  126. package/packages/vibe64-terminals/src/server/actions.js +65 -0
  127. package/packages/vibe64-terminals/src/server/codexTerminal.js +608 -23
  128. package/packages/vibe64-terminals/src/server/commandTerminal.js +261 -4
  129. package/packages/vibe64-terminals/src/server/fixCodexJobs.js +420 -0
  130. package/packages/vibe64-terminals/src/server/inputSchemas.js +240 -0
  131. package/packages/vibe64-terminals/src/server/launchTargetTerminal.js +2 -0
  132. package/packages/vibe64-terminals/src/server/registerRoutes.js +226 -0
  133. package/packages/vibe64-terminals/src/server/service.js +140 -1
  134. package/packages/vibe64-terminals/src/server/targetToolchainTerminal.js +1 -1
  135. package/packages/vibe64-terminals/src/server/terminalShared.js +34 -0
  136. package/dist/assets/ProjectTypeGate-DStq4W4X.js +0 -1
  137. package/dist/assets/ProjectTypeGate-Dh2ycSoM.css +0 -1
  138. package/dist/assets/history-HQ_XliX2.js +0 -1
  139. package/dist/assets/home-B89EbUmA.js +0 -1
  140. package/dist/assets/index-16P0GeGq.js +0 -134
  141. package/dist/assets/index-eMhOXhf_.css +0 -1
  142. package/dist/assets/useStudioTerminal-D9TNb50w.js +0 -1
  143. package/dist/assets/vibe64SessionPanelModel-DvY_IbW3.js +0 -1
@@ -1 +1 @@
1
- import{a9 as u}from"./index-CY-wDjNv.js";function d({entries:o=[]}={}){const a=[],n=new Set;function i(t={}){const r=u(t);return n.has(r.id)?!1:(n.add(r.id),a.push(r),!0)}for(const t of Array.isArray(o)?o:[])i(t);function c(t){return n.has(String(t||"").trim())}function l(){return Object.freeze([...a])}return Object.freeze({addPlacement:i,hasPlacement:c,build:l})}const s=d(),{addPlacement:e}=s;function h(){return s.build()}e({id:"vibe64.home.menu.setup",target:"shell.secondary-nav",kind:"link",surfaces:["home"],order:40,props:{label:"Setup",to:"/setup",exact:!0}});e({id:"vibe64.home.menu.configure",target:"shell.secondary-nav",kind:"link",surfaces:["home"],order:50,props:{label:"Configure",to:"/home?configure=project",exact:!0}});e({id:"vibe64.home.menu.history",target:"shell.secondary-nav",kind:"link",surfaces:["home"],order:70,props:{label:"Session History",to:"/home/history",exact:!0}});e({id:"vibe64.home.menu.home",target:"shell.primary-nav",kind:"link",surfaces:["home"],order:40,props:{label:"Sessions",to:"/home",exact:!1}});e({id:"ui-generator.page.home.target-scripts.link",target:"shell.secondary-nav",kind:"component",surfaces:["home"],order:60,componentToken:"local.main.ui.vibe64-target-scripts-nav-link"});e({id:"realtime.connection.indicator",target:"shell.status",kind:"component",surfaces:["*"],order:950,componentToken:"realtime.web.connection.indicator"});export{e as addPlacement,h as default};
1
+ import{a9 as u}from"./index-DqoYKexs.js";function d({entries:o=[]}={}){const a=[],n=new Set;function i(t={}){const r=u(t);return n.has(r.id)?!1:(n.add(r.id),a.push(r),!0)}for(const t of Array.isArray(o)?o:[])i(t);function c(t){return n.has(String(t||"").trim())}function l(){return Object.freeze([...a])}return Object.freeze({addPlacement:i,hasPlacement:c,build:l})}const s=d(),{addPlacement:e}=s;function h(){return s.build()}e({id:"vibe64.home.menu.setup",target:"shell.secondary-nav",kind:"link",surfaces:["home"],order:40,props:{label:"Setup",to:"/setup",exact:!0}});e({id:"vibe64.home.menu.configure",target:"shell.secondary-nav",kind:"link",surfaces:["home"],order:50,props:{label:"Configure",to:"/home?configure=project",exact:!0}});e({id:"vibe64.home.menu.history",target:"shell.secondary-nav",kind:"link",surfaces:["home"],order:70,props:{label:"Session History",to:"/home/history",exact:!0}});e({id:"vibe64.home.menu.home",target:"shell.primary-nav",kind:"link",surfaces:["home"],order:40,props:{label:"Sessions",to:"/home",exact:!1}});e({id:"ui-generator.page.home.target-scripts.link",target:"shell.secondary-nav",kind:"component",surfaces:["home"],order:60,componentToken:"local.main.ui.vibe64-target-scripts-nav-link"});e({id:"realtime.connection.indicator",target:"shell.status",kind:"component",surfaces:["*"],order:950,componentToken:"realtime.web.connection.indicator"});export{e as addPlacement,h as default};
@@ -1,4 +1,4 @@
1
- import{cx as se,Y as b,R as Ye,c8 as Xe,cb as h,c9 as Me,cE as l,_ as _e,b$ as Re,b_ as Oe,c1 as _,a3 as Q,$ as c,a6 as B,dg as T,a4 as N,cA as x,bv as Ze,i as X,a0 as L,a1 as j,V as ke,F as ge,cc as he,u as Ae,b0 as De,aY as We,bc as Rt,bO as ce,A as Ce,bu as et,b8 as tt,bb as xt,o as at,de as Te,bL as It,bd as wt,be as $t,ax as Ve,d0 as Et,d1 as Pt}from"./index-CY-wDjNv.js";import{_ as Vt}from"./ShellLayout-BcKS2HG9.js";import{K as Lt,a as Ot,k as nt,V as Dt,L as Ut,b as qt,A as He,l as Bt,d as Ft,c as jt,y as Ue,u as rt,v as lt,f as Nt,e as Mt,w as Ht,h as Gt,S as zt}from"./studioGateApi-hkZdLr1Y.js";import{p as Kt,V as ot,d as ye,f as Qt,P as Jt}from"./ProjectTypeGate-DStq4W4X.js";import{c as Yt,V as Xt,b as Zt,a as Wt,e as ea,d as ta}from"./VTabs-BJ8MKoig.js";import{p as pe,a as Y,w as aa}from"./streamEvents-Ba9kHw-1.js";import{D as na,o as ra}from"./xterm-BADreHn8.js";import{b as Ge}from"./route-block-B_A1xBdJ.js";function la(){return b(()=>Bt(nt,Ye))}function oa(){const e=h(!1),f=Lt({client:se,enabled:!0,fallbackLoadError:"Account status could not load.",path:Ot,queryKey:la(),readQuery:b(()=>e.value?{refresh:!0}:null),refreshOnPull:!0}),r=Kt({access:"never",apiSuffix:Dt,buildCommandOptions:()=>({method:"POST",options:Ut}),buildRawPayload:(i,{context:v})=>({accountId:String(v.accountId||""),mode:String(v.mode||"browser")}),fallbackRunError:"Account login could not start.",messages:{error:"Account login could not start.",success:"Account login started."},ownershipFilter:Ye,placementSource:"vibe64.accounts.auth.start",surfaceId:nt,writeMethod:"POST"});async function s(i,v="browser"){return r.run({accountId:i,mode:v})}async function d(i){return se.get(`${He}/${encodeURIComponent(i)}`)}async function m(i){return se.delete(`${He}/${encodeURIComponent(i)}`)}async function y(i){return se.post(qt,{accountId:String(i||"")})}async function t(){e.value=!0;try{return await f.reload()}finally{e.value=!1}}return Xe({cancelAuthSession:m,isLoading:f.isLoading,loadError:f.loadError,readAuthSession:d,refresh:t,logout:y,startAuth:s,startAuthCommand:r,status:f.data,statusResource:f})}const ua=1e3;function ia(e,{accountRows:f,browserWindow:r=sa(),clearIntervalFn:s,clipboard:d=ca(r),pollIntervalMs:m=ua,setIntervalFn:y}={}){const t=Me({}),i=Me({}),v=h(""),C=h(""),g=da({browserWindow:r,clearIntervalFn:s,setIntervalFn:y});let o=null;const u=b(()=>Object.values(t).some(p=>(p==null?void 0:p.status)==="authenticating")),k=b(()=>!!C.value),S=b(()=>{var p;return v.value||e.loadError?v.value||e.loadError:((p=e.startAuthCommand)==null?void 0:p.messageType)==="error"?e.startAuthCommand.message:""});function O(p){return t[p]||null}function D(p={}){return u.value||k.value||p.connected===!0}async function E(){await e.refresh()}async function J(p){await F(p,"browser")}async function w(){await F("codex","device")}async function F(p,P="browser"){var $;if(v.value="",(($=W(p))==null?void 0:$.connected)!==!0)try{const U=await e.startAuth(p,P);if(!(U!=null&&U.id))throw new Error("Login did not return an auth session.");le(U),A()}catch(U){v.value=String((U==null?void 0:U.message)||U||"Login could not start.")}}async function M(p){v.value="",C.value=String(p||"");try{await e.logout(p),await E()}catch(P){v.value=String((P==null?void 0:P.message)||P||"Logout failed.")}finally{C.value=""}}async function I(p={}){p.id&&(await e.cancelAuthSession(p.id).catch(()=>null),ue(p),await E(),Z())}async function G(p={}){const P=String(p.id||""),$=String(p.authUrl||"").trim();if(!P||!$)return!1;if(typeof(d==null?void 0:d.writeText)!="function")return v.value="Auth link could not be copied because clipboard access is unavailable.",!1;try{return await d.writeText($),i[P]="Auth link copied.",!0}catch(U){return v.value=String((U==null?void 0:U.message)||U||"Auth link could not be copied."),!1}}async function H(){const p=Object.values(t).filter(P=>(P==null?void 0:P.id)&&P.status==="authenticating");if(!p.length){V();return}for(const P of p){const $=await e.readAuthSession(P.id);le($),$.status==="connected"?(ue($),await E()):$.status==="failed"&&await E()}Z()}function A(){o||(o=g.setInterval(()=>{H().catch(p=>{v.value=String((p==null?void 0:p.message)||p||"Login polling failed.")})},m))}function V(){o&&(g.clearInterval(o),o=null)}function Z(){Object.values(t).some(p=>(p==null?void 0:p.status)==="authenticating")||V()}function W(p){return(Array.isArray(l(f))?l(f):[]).find($=>$.id===p)||null}function re(p={}){var $;const P=String(p.authUrl||"").trim();P&&(($=r==null?void 0:r.open)==null||$.call(r,P,"_blank","noopener"))}function le(p={}){var $;const P=(($=p.account)==null?void 0:$.id)||p.account||"";!P||!p.id||(t[P]=p)}function ue(p={}){var $;const P=(($=p.account)==null?void 0:$.id)||p.account||"";P&&(p.id&&delete i[p.id],delete t[P])}return Xe({activeSessionFor:O,authLinkCopyStatus:i,authBusy:u,cancelSession:I,copyAuthUrl:G,errorMessage:S,localError:v,loginDisabled:D,logoutAccount:M,logoutAccountId:C,logoutBusy:k,openAuthUrl:re,pollAuthSessions:H,refreshStatus:E,startBrowserAuth:J,startDeviceAuth:w,stopPolling:V})}function sa(){return typeof window>"u"?null:window}function ca(e){var f,r;return((f=e==null?void 0:e.navigator)==null?void 0:f.clipboard)||((r=globalThis.navigator)==null?void 0:r.clipboard)||null}function da({browserWindow:e,clearIntervalFn:f,setIntervalFn:r}){var s,d;return{clearInterval:f||((s=e==null?void 0:e.clearInterval)==null?void 0:s.bind(e))||globalThis.clearInterval,setInterval:r||((d=e==null?void 0:e.setInterval)==null?void 0:d.bind(e))||globalThis.setInterval}}const fa={class:"accounts-setup"},pa={class:"accounts-setup__header"},ma={class:"accounts-setup__header-actions"},va={class:"accounts-setup__items"},ga={class:"accounts-setup__item-main"},ya={class:"accounts-setup__item-title"},_a={class:"accounts-setup__item-message"},ba={key:0,class:"accounts-setup__identity"},Sa={class:"accounts-setup__actions"},ha={key:0,class:"accounts-setup__session"},Ca={key:0,class:"accounts-setup__code-block"},ka={class:"accounts-setup__code"},Aa={key:0,class:"accounts-setup__code-help"},Ta={class:"accounts-setup__session-actions"},Ra={key:1,class:"accounts-setup__copy-status"},xa={class:"accounts-setup__session-status"},Ia={key:2,class:"accounts-setup__logs",open:""},wa={__name:"AccountsSetup",emits:["continue"],setup(e,{emit:f}){const r=f,s=oa(),d=b(()=>s.status||null),m=b(()=>{var g;return((g=d.value)==null?void 0:g.ready)===!0}),y=b(()=>{var o;const g=Array.isArray((o=d.value)==null?void 0:o.accounts)?d.value.accounts:[];return g.length?g:[{connected:!1,id:"codex",label:"Codex",message:"Codex status has not loaded yet.",status:"unknown"},{connected:!1,id:"github",label:"GitHub",message:"GitHub status has not loaded yet.",status:"unknown"}]}),t=ia(s,{accountRows:y}),i=b(()=>t.errorMessage);function v(g={}){return g.connected?`${g.label} is connected.`:`${g.label} is not connected.`}function C(g={}){var o;return g.status==="connected"?`${((o=g.account)==null?void 0:o.label)||"Account"} is connected.`:g.status==="failed"?"Login did not finish cleanly. Review the logs and try again.":g.authUrl?"Browser login is open. Complete authorization there, then Studio will continue.":"Starting login and waiting for the browser URL."}return Re(()=>{t.refreshStatus()}),Oe(()=>{t.stopPolling()}),(g,o)=>(_(),Q("section",fa,[c("header",pa,[o[3]||(o[3]=c("div",null,[c("h1",{class:"accounts-setup__title"},"Accounts"),c("p",{class:"accounts-setup__lede"}," Connect the accounts Studio uses for Codex sessions and GitHub issue, pull request, and merge actions. ")],-1)),c("div",ma,[B(ot,{color:m.value?"success":"warning",variant:"tonal"},{default:T(()=>[N(x(m.value?"Accounts ready":"Accounts needed"),1)]),_:1},8,["color"]),B(X,{color:"primary",variant:"tonal",loading:l(s).isLoading,"prepend-icon":l(Ze),onClick:l(t).refreshStatus},{default:T(()=>[...o[1]||(o[1]=[N(" Refresh ",-1)])]),_:1},8,["loading","prepend-icon","onClick"]),m.value?(_(),L(X,{key:0,color:"primary",variant:"flat",onClick:o[0]||(o[0]=u=>r("continue"))},{default:T(()=>[...o[2]||(o[2]=[N(" Continue to Adapter Setup ",-1)])]),_:1})):j("",!0)])]),i.value?(_(),L(ke,{key:0,type:"error",variant:"tonal",border:"start"},{default:T(()=>[N(x(i.value),1)]),_:1})):j("",!0),l(s).isLoading&&!d.value?(_(),L(Ce,{key:1,color:"primary",height:"6",indeterminate:"",rounded:""})):j("",!0),c("div",va,[(_(!0),Q(ge,null,he(y.value,u=>(_(),L(ye,{key:u.id,rounded:"lg",border:"",class:ce(["accounts-setup__item",u.connected?"accounts-setup__item--connected":"accounts-setup__item--missing"])},{default:T(()=>{var k,S,O,D,E,J,w,F;return[c("div",ga,[B(Ae,{icon:u.connected?l(De):l(We),color:u.connected?"success":"warning",size:"30"},null,8,["icon","color"]),c("div",null,[c("h2",ya,x(u.label),1),c("p",_a,x(u.message||v(u)),1),u.username?(_(),Q("p",ba,x(u.username),1)):j("",!0)])]),c("div",Sa,[B(X,{color:"primary",variant:"flat",disabled:l(t).loginDisabled(u),loading:((k=l(t).activeSessionFor(u.id))==null?void 0:k.status)==="authenticating",onClick:M=>l(t).startBrowserAuth(u.id)},{default:T(()=>[N(x(u.id==="github"?"Auth GitHub":"Auth Codex"),1)]),_:2},1032,["disabled","loading","onClick"]),u.id==="codex"?(_(),L(X,{key:0,color:"primary",variant:"tonal",disabled:l(t).loginDisabled(u),onClick:l(t).startDeviceAuth},{default:T(()=>[...o[4]||(o[4]=[N(" Use code login ",-1)])]),_:1},8,["disabled","onClick"])):j("",!0),B(X,{color:"warning",variant:"tonal",disabled:l(t).authBusy||!u.connected,loading:l(t).logoutAccountId===u.id,onClick:M=>l(t).logoutAccount(u.id)},{default:T(()=>[...o[5]||(o[5]=[N(" Logout ",-1)])]),_:1},8,["disabled","loading","onClick"])]),l(t).activeSessionFor(u.id)?(_(),Q("div",ha,[(S=l(t).activeSessionFor(u.id))!=null&&S.userCode?(_(),Q("div",Ca,[o[6]||(o[6]=c("p",{class:"accounts-setup__code-label"},"One-time code",-1)),c("p",ka,x(l(t).activeSessionFor(u.id).userCode),1),((O=l(t).activeSessionFor(u.id))==null?void 0:O.mode)==="device"?(_(),Q("p",Aa," Enable code login in ChatGPT settings or workspace permissions, then enter this code on the login page. ")):j("",!0)])):j("",!0),c("div",Ta,[(D=l(t).activeSessionFor(u.id))!=null&&D.authUrl?(_(),L(X,{key:0,color:"primary",variant:"tonal",onClick:M=>l(t).openAuthUrl(l(t).activeSessionFor(u.id))},{default:T(()=>[...o[7]||(o[7]=[N(" Open browser ",-1)])]),_:1},8,["onClick"])):j("",!0),(E=l(t).activeSessionFor(u.id))!=null&&E.authUrl?(_(),L(X,{key:1,color:"primary",variant:"tonal","prepend-icon":l(Rt),onClick:M=>l(t).copyAuthUrl(l(t).activeSessionFor(u.id))},{default:T(()=>[...o[8]||(o[8]=[N(" Copy auth link ",-1)])]),_:1},8,["prepend-icon","onClick"])):j("",!0),B(X,{variant:"tonal",disabled:((J=l(t).activeSessionFor(u.id))==null?void 0:J.terminalStatus)!=="running",onClick:M=>l(t).cancelSession(l(t).activeSessionFor(u.id))},{default:T(()=>[...o[9]||(o[9]=[N(" Cancel ",-1)])]),_:1},8,["disabled","onClick"])]),l(t).authLinkCopyStatus[(w=l(t).activeSessionFor(u.id))==null?void 0:w.id]?(_(),Q("p",Ra,x(l(t).authLinkCopyStatus[l(t).activeSessionFor(u.id).id]),1)):j("",!0),c("p",xa,x(C(l(t).activeSessionFor(u.id))),1),((F=l(t).activeSessionFor(u.id))==null?void 0:F.status)==="failed"?(_(),Q("details",Ia,[o[10]||(o[10]=c("summary",null,"Show login logs",-1)),c("pre",null,x(l(t).activeSessionFor(u.id).output),1)])):j("",!0)])):j("",!0)]}),_:2},1032,["class"]))),128))])]))}},$a=_e(wa,[["__scopeId","data-v-239ad440"]]);function Ea(e=""){return e==="pass"?"success":e==="running"?"primary":["blocked","fail","hard-stop"].includes(e)?"error":"warning"}function Pa(e=""){return e==="pass"?De:e==="running"?et:["blocked","fail","hard-stop"].includes(e)?tt:We}function Va(e=""){return e==="pass"?"Ready":e==="running"?"Running":e==="hard-stop"?"Hard stop":["blocked","fail"].includes(e)?"Needs attention":"Pending"}function La(e=""){return e==="pass"?"doctor-status__status-badge--pass":e==="running"?"doctor-status__status-badge--running":["blocked","fail","hard-stop"].includes(e)?"doctor-status__status-badge--fail":"doctor-status__status-badge--unknown"}function ze(e=""){return e==="pass"?De:e==="checking"?et:tt}const Oa={class:"doctor-status__checks"},Da={class:"doctor-status__check-body"},Ua={class:"doctor-status__check-header"},qa={class:"text-subtitle-2 mb-1"},Ba={class:"text-body-2 text-medium-emphasis mb-0"},Fa={class:"doctor-status__facts"},ja={class:"text-caption text-medium-emphasis mb-0 doctor-status__fact-line"},Na={class:"doctor-status__fact"},Ma={class:"doctor-status__fact doctor-status__observed"},Ha={key:0,class:"doctor-status__command"},Ga={key:0,class:"doctor-status__actions"},za={__name:"DoctorCheckList",props:{actionInFlight:{type:String,default:""},checks:{type:Array,default:()=>[]},repairCommandPreview:{type:Function,required:!0},repairRequiresInput:{type:Function,required:!0},visibleCheckRepairs:{type:Function,required:!0}},emits:["confirm-repair","run-repair"],setup(e,{emit:f}){const r=e,s=f;function d(m){return r.visibleCheckRepairs(m)}return(m,y)=>(_(),Q("div",Oa,[(_(!0),Q(ge,null,he(e.checks,t=>(_(),L(ye,{key:t.id,rounded:"lg",border:"",class:ce(["doctor-status__check",`doctor-status__check--${t.status}`])},{default:T(()=>[c("div",{class:ce(["doctor-status__status-badge",l(La)(t.status)])},[B(Ae,{class:"doctor-status__status-icon",icon:l(Pa)(t.status),color:l(Ea)(t.status),"aria-label":l(Va)(t.status),size:"30"},null,8,["icon","color","aria-label"])],2),c("div",Da,[c("div",Ua,[c("div",null,[c("h3",qa,x(t.label),1),c("p",Ba,x(t.explanation),1)])]),c("div",Fa,[c("p",ja,[c("span",Na,[y[0]||(y[0]=c("strong",{class:"text-high-emphasis"},"Expected:",-1)),N(" "+x(t.expected),1)]),c("span",Ma,[y[1]||(y[1]=c("strong",{class:"text-high-emphasis"},"Observed:",-1)),N(" "+x(t.observed),1)])])]),d(t).length?(_(),Q("pre",Ha,x(e.repairCommandPreview(t)),1)):j("",!0)]),d(t).length?(_(),Q("div",Ga,[(_(!0),Q(ge,null,he(d(t),i=>(_(),Q(ge,{key:i.actionId},[i.kind==="terminal"?(_(),L(X,{key:0,color:"primary",class:"doctor-status__repair-button",variant:"flat","prepend-icon":l(xt),disabled:!!e.actionInFlight,onClick:v=>e.repairRequiresInput(i)?s("confirm-repair",{check:t,repair:i}):s("run-repair",i)},{default:T(()=>[N(x(i.label||"Open terminal"),1)]),_:2},1032,["prepend-icon","disabled","onClick"])):(_(),L(X,{key:1,class:"doctor-status__repair-button",variant:"tonal",color:"warning",disabled:""},{default:T(()=>[N(x(i.label||"Manual repair required"),1)]),_:2},1024))],64))),128))])):j("",!0)]),_:2},1032,["class"]))),128))]))}},Ka=_e(za,[["__scopeId","data-v-32db6030"]]),Qa={key:0,class:"doctor-repair-dialog__field-grid mb-3"},Ja={class:"doctor-repair-dialog__command mb-3"},Ya={class:"d-flex justify-end ga-2"},Xa={__name:"DoctorRepairDialog",props:{canRun:{type:Boolean,default:!1},commandPreview:{type:String,default:""},fields:{type:Array,default:()=>[]},modelValue:{type:Boolean,default:!1},running:{type:Boolean,default:!1},values:{type:Object,default:()=>({})}},emits:["run","update:modelValue","update:values"],setup(e,{emit:f}){const r=e,s=f;function d(y=""){var t;return((t=r.values)==null?void 0:t[y])||""}function m(y="",t=""){s("update:values",{...r.values,[y]:t})}return(y,t)=>(_(),L(at,{"model-value":e.modelValue,"max-width":"760","onUpdate:modelValue":t[2]||(t[2]=i=>s("update:modelValue",i))},{default:T(()=>[B(ye,{rounded:"lg",class:"doctor-repair-dialog"},{default:T(()=>[t[5]||(t[5]=c("h2",{class:"text-subtitle-1 mb-2"},"Confirm repair",-1)),t[6]||(t[6]=c("p",{class:"text-body-2 text-medium-emphasis mb-3"}," Studio will run this command locally after confirmation. ",-1)),e.fields.length?(_(),Q("div",Qa,[(_(!0),Q(ge,null,he(e.fields,i=>(_(),L(Qt,{key:i.id,"model-value":d(i.id),autocomplete:i.autocomplete||void 0,density:"compact","hide-details":"auto",label:i.label,placeholder:i.placeholder||"",type:i.type||"text",variant:"outlined","onUpdate:modelValue":v=>m(i.id,v)},null,8,["model-value","autocomplete","label","placeholder","type","onUpdate:modelValue"]))),128))])):j("",!0),c("pre",Ja,x(e.commandPreview),1),c("div",Ya,[B(X,{variant:"text",disabled:e.running,onClick:t[0]||(t[0]=i=>s("update:modelValue",!1))},{default:T(()=>[...t[3]||(t[3]=[N("Close",-1)])]),_:1},8,["disabled"]),B(X,{color:"primary",disabled:!e.canRun,loading:e.running,onClick:t[1]||(t[1]=i=>s("run"))},{default:T(()=>[...t[4]||(t[4]=[N(" Run repair ",-1)])]),_:1},8,["disabled","loading"])])]),_:1})]),_:1},8,["model-value"]))}},Za=_e(Xa,[["__scopeId","data-v-929eeb97"]]),Wa={class:"d-flex align-center justify-space-between ga-3 mb-3"},en={class:"text-subtitle-1 mb-1"},tn={class:"text-caption text-medium-emphasis mb-0 doctor-terminal-dialog__command"},an={class:"doctor-terminal-dialog__details-command"},nn={class:"doctor-terminal-dialog__copy-bar mb-2"},rn={key:0,class:"text-caption text-medium-emphasis mb-0"},ln={class:"d-flex justify-end ga-2 mt-3"},on={__name:"DoctorTerminalDialog",props:{commandDetails:{type:String,default:""},commandPreview:{type:String,default:""},copyStatus:{type:String,default:""},error:{type:String,default:""},modelValue:{type:Boolean,default:!1},selectedText:{type:String,default:""},sessionId:{type:String,default:""},setHost:{type:Function,required:!0},status:{type:String,default:""},title:{type:String,default:"Terminal"}},emits:["close","copy-selection","send-ctrl-c","update:modelValue"],setup(e,{emit:f}){const r=e,s=b(()=>["starting","running","closing"].includes(r.status||"starting")),d=b(()=>{const y=String(r.status||"starting").trim();return y?`${y[0].toUpperCase()}${y.slice(1)}`:"Starting"}),m=f;return(y,t)=>(_(),L(at,{"model-value":e.modelValue,"max-width":"980",persistent:"","onUpdate:modelValue":t[3]||(t[3]=i=>m("update:modelValue",i))},{default:T(()=>[B(ye,{rounded:"lg",class:"doctor-terminal-dialog"},{default:T(()=>[c("div",Wa,[c("div",null,[c("h2",en,x(e.title),1),c("p",tn,x(e.commandPreview),1)]),c("div",{"aria-live":"polite",class:ce(["doctor-terminal-dialog__status",{"doctor-terminal-dialog__status--running":s.value}]),role:"status"},x(d.value),3)]),e.commandDetails?(_(),L(Yt,{key:0,class:"doctor-terminal-dialog__details mb-3",variant:"accordion"},{default:T(()=>[B(Xt,null,{default:T(()=>[B(Zt,null,{default:T(()=>[...t[4]||(t[4]=[N("Command details",-1)])]),_:1}),B(Wt,null,{default:T(()=>[c("pre",an,x(e.commandDetails),1)]),_:1})]),_:1})]),_:1})):j("",!0),e.error?(_(),L(ke,{key:1,type:"error",variant:"tonal",class:"mb-3"},{default:T(()=>[N(x(e.error),1)]),_:1})):j("",!0),c("div",nn,[B(X,{variant:"tonal",disabled:!e.selectedText,onClick:t[0]||(t[0]=i=>m("copy-selection"))},{default:T(()=>[...t[5]||(t[5]=[N(" Copy selection ",-1)])]),_:1},8,["disabled"]),e.copyStatus?(_(),Q("p",rn,x(e.copyStatus),1)):j("",!0)]),c("div",{ref:e.setHost,class:"doctor-terminal-dialog__host"},null,512),c("div",ln,[B(X,{variant:"tonal",disabled:!e.sessionId,onClick:t[1]||(t[1]=i=>m("send-ctrl-c"))},{default:T(()=>[...t[6]||(t[6]=[N("Send Ctrl-C",-1)])]),_:1},8,["disabled"]),B(X,{color:"primary",variant:"flat",onClick:t[2]||(t[2]=i=>m("close"))},{default:T(()=>[...t[7]||(t[7]=[N("Close",-1)])]),_:1})])]),_:1})]),_:1},8,["model-value"]))}},un=_e(on,[["__scopeId","data-v-b8c2eeed"]]);function ut(e="checks",f=null){return e==="stages"?"stages":e==="checks"?"checks":Array.isArray(f==null?void 0:f.stages)?"stages":"checks"}function Ke(e=null,f="checks"){return e?{...e,checks:Array.isArray(e.checks)?[...e.checks]:e.checks,stages:Array.isArray(e.stages)?[...e.stages]:e.stages}:{ok:!0,ready:!1,[ut(f,null)]:[]}}function sn(e,f=!1){return f?`${e}${e.includes("?")?"&":"?"}refresh=true`:e}function cn({onRefresh:e=null,onStatusUpdated:f=null,statusItemsKey:r=()=>"checks",streamAutoStart:s=()=>!0,streamEnabled:d=()=>!1,streamEndpoint:m=()=>"",status:y=()=>null}={}){const t=h(null),i=h(""),v=h(""),C=h(!1);let g=null,o="";const u=typeof e=="function"?e:()=>null,k=typeof f=="function"?f:()=>null;function S(w=t.value||y()){return ut(r(),w)}function O(w=g){w&&w.close(),(!w||w===g)&&(g=null,o="")}function D(w){const F=Ke(t.value||y(),r()),M=S(F),I=Array.isArray(F[M])?[...F[M]]:[],G=I.findIndex(H=>H.id===w.id);G>=0?I[G]={...I[G],...w}:I.push(w),F[M]=I,F.ready=!1,t.value=F}function E({force:w=!1,refresh:F=!1}={}){const M=sn(String(m()||""),F);if(!M||!d())return!1;if(typeof EventSource!="function")return u({refresh:F}),!1;if(!w&&g&&C.value&&o===M)return!0;O(),i.value="",v.value="",C.value=!0,t.value=Ke(y(),r());const I=new EventSource(M,{withCredentials:!0});g=I,o=M;const G=()=>I===g;return I.addEventListener("run.started",()=>{G()&&(C.value=!0,i.value="",v.value="Starting setup checks.")}),I.addEventListener("check.started",H=>{if(!G())return;const A=pe(H),V=A.label||A.id;v.value=`Checking ${V}.`,D({explanation:"Studio is checking this now.",expected:"Check is running.",id:A.id,label:V,observed:"Running...",required:!0,status:"running"})}),I.addEventListener("check.finished",H=>{var V;if(!G())return;const A=pe(H);(V=A.check)!=null&&V.id&&D(A.check)}),I.addEventListener("repair.started",H=>{if(!G())return;const A=pe(H),V=A.label||A.actionId||"automatic repair";v.value=`Running automatic repair: ${V}.`,A.checkId&&D({explanation:`Studio is running ${V}.`,expected:"Automatic repair completes successfully.",id:A.checkId,label:A.checkLabel||A.checkId,observed:v.value,required:!0,status:"running"})}),I.addEventListener("repair.finished",H=>{if(!G())return;const A=pe(H),V=A.label||A.actionId||"automatic repair";v.value=A.ok===!1?`Automatic repair failed: ${V}.`:`Finished automatic repair: ${V}.`}),I.addEventListener("check.error",H=>{if(!G())return;const A=pe(H);v.value=`Check failed: ${A.label||A.id}.`,D({explanation:"The check raised an unexpected error.",expected:"Check completes without throwing.",id:A.id,label:A.label||A.id,observed:A.error||"Check failed.",required:!0,status:"fail"})}),I.addEventListener("run.finished",H=>{if(!G())return;const A=pe(H);t.value=A.status||t.value,A.status&&k(A.status),v.value="",C.value=!1,O(I)}),I.addEventListener("run.error",H=>{if(!G())return;const A=pe(H);i.value=A.error||"Doctor stream failed.",v.value="",C.value=!1,O(I)}),I.onerror=()=>{G()&&(C.value&&(i.value="Doctor stream disconnected.",v.value="",C.value=!1),O(I))},!0}function J(){E({force:!0,refresh:!0})||u({refresh:!0})}return Te(y,w=>{w&&!C.value&&(t.value=w)},{immediate:!0}),Te(()=>[m(),d(),s()],()=>{if(d()&&m()&&s()){E();return}(!d()||!m())&&(O(),C.value=!1)},{immediate:!0}),Oe(()=>{O()}),{closeDoctorStream:O,liveStatus:t,refreshDoctorStatus:J,startDoctorStream:E,streamError:i,streamOperation:v,streamRunning:C}}const Qe=Object.freeze(["blocked","fail","hard-stop"]);function dn(e){return String(e).replace(/["\\]/gu,"\\$&")}function Je(e){return Array.isArray(e==null?void 0:e.repairs)&&e.repairs.length?e.repairs.filter(Boolean):[e==null?void 0:e.repair].filter(Boolean)}function fn(e){return Array.isArray(e==null?void 0:e.fields)&&e.fields.length>0}function pn(e){const f=e!=null&&e.input&&typeof e.input=="object"&&!Array.isArray(e.input)?{...e.input}:{};for(const r of Array.isArray(e==null?void 0:e.fields)?e.fields:[]){const s=String(r.defaultValue||"").trim();if(r.required&&!s)return null;f[r.id]=s}return f}function mn(e,f,r){return[(e==null?void 0:e.id)||"",(f==null?void 0:f.actionId)||"",JSON.stringify(r||{})].join(":")}function vn({alwaysRepairCheckIds:e=()=>[],autoRepairEnabled:f=()=>!1,checks:r=()=>[],isLoading:s=()=>!1,openTerminal:d=null,ready:m=()=>!1,streamRunning:y=()=>!1,terminalCloseError:t=()=>"",terminalDialogOpen:i=()=>!1,terminalError:v=()=>"",terminalExitCode:C=()=>null,terminalOutput:g=()=>""}={}){const o=h(""),u=h(null),k=h(""),S=h(""),O=h(!1),D=h(null),E=h({}),J=h(!1),w=h([]),F=b({get(){return!!D.value},set(a){a||de()}}),M=b(()=>!!P()),I=b(()=>{var a,n;return Array.isArray((n=(a=D.value)==null?void 0:a.repair)==null?void 0:n.fields)?D.value.repair.fields:[]}),G=b(()=>{var n,R;let a=((R=(n=D.value)==null?void 0:n.repair)==null?void 0:R.commandPreview)||"";for(const q of I.value){const fe=String(E.value[q.id]||"").trim();fe&&(a=a.replaceAll(`<${q.id}>`,dn(fe)))}return a}),H=b(()=>{for(const a of I.value){const n=String(E.value[a.id]||"").trim();if(a.required&&!n||a.type==="email"&&n&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/u.test(n))return!1}return!0}),A=b(()=>{var a;return!O.value||!((a=u.value)!=null&&a.checkId)?Y(r):Y(r).map(n=>n.id!==u.value.checkId?n:{...n,explanation:`Studio is running ${u.value.label}. This can take a few minutes.`,expected:"The automatic repair completes successfully.",observed:"Running in the setup terminal.",repair:null,repairs:[],status:"running"})}),V=b(()=>{const a=String(Y(g)||"").trim();return a?a.length>4e3?a.slice(a.length-4e3):a:""});function Z(){k.value="",S.value=""}function W(a){const n=Je(a);return Qe.includes(a==null?void 0:a.status)||Y(e).includes(a==null?void 0:a.id)?n:[]}function re(a){var R;const n=W(a);return n.length<=1?((R=n[0])==null?void 0:R.commandPreview)||"":n.map(q=>`${q.label||q.actionId}:
1
+ import{cz as se,Y as b,R as Ye,cb as Xe,ce as h,cc as Me,cG as l,_ as _e,c2 as Re,c1 as Oe,c4 as _,a3 as Q,$ as c,a6 as B,di as T,a4 as N,cC as x,bx as Ze,i as X,a0 as L,a1 as j,V as ke,F as ge,cf as he,u as Ae,b1 as De,aZ as We,bd as Rt,bR as ce,A as Ce,bw as et,b9 as tt,bc as xt,o as at,dg as Te,bO as wt,be as It,bf as $t,ax as Ve,d2 as Et,d3 as Pt}from"./index-DqoYKexs.js";import{_ as Vt}from"./ShellLayout-BjAbXfzf.js";import{K as Lt,a as Ot,k as nt,V as Dt,L as Ut,b as qt,A as He,l as Bt,d as Ft,c as jt,y as Ue,u as rt,v as lt,f as Nt,e as Mt,w as Ht,h as Gt,S as zt}from"./studioGateApi-CFtez6lH.js";import{w as Kt,V as ot,e as ye,g as Qt,P as Jt}from"./ProjectTypeGate-B3NHteXC.js";import{c as Yt,V as Xt,b as Zt,a as Wt,e as ea,d as ta}from"./VTabs-BLGGdbms.js";import{p as pe,a as Y,w as aa}from"./streamEvents-CIqegoLa.js";import{D as na,o as ra}from"./xterm-BADreHn8.js";import{b as Ge}from"./route-block-B_A1xBdJ.js";function la(){return b(()=>Bt(nt,Ye))}function oa(){const e=h(!1),f=Lt({client:se,enabled:!0,fallbackLoadError:"Account status could not load.",path:Ot,queryKey:la(),readQuery:b(()=>e.value?{refresh:!0}:null),refreshOnPull:!0}),r=Kt({access:"never",apiSuffix:Dt,buildCommandOptions:()=>({method:"POST",options:Ut}),buildRawPayload:(i,{context:v})=>({accountId:String(v.accountId||""),mode:String(v.mode||"browser")}),fallbackRunError:"Account login could not start.",messages:{error:"Account login could not start.",success:"Account login started."},ownershipFilter:Ye,placementSource:"vibe64.accounts.auth.start",surfaceId:nt,writeMethod:"POST"});async function s(i,v="browser"){return r.run({accountId:i,mode:v})}async function d(i){return se.get(`${He}/${encodeURIComponent(i)}`)}async function m(i){return se.delete(`${He}/${encodeURIComponent(i)}`)}async function y(i){return se.post(qt,{accountId:String(i||"")})}async function t(){e.value=!0;try{return await f.reload()}finally{e.value=!1}}return Xe({cancelAuthSession:m,isLoading:f.isLoading,loadError:f.loadError,readAuthSession:d,refresh:t,logout:y,startAuth:s,startAuthCommand:r,status:f.data,statusResource:f})}const ua=1e3;function ia(e,{accountRows:f,browserWindow:r=sa(),clearIntervalFn:s,clipboard:d=ca(r),pollIntervalMs:m=ua,setIntervalFn:y}={}){const t=Me({}),i=Me({}),v=h(""),C=h(""),g=da({browserWindow:r,clearIntervalFn:s,setIntervalFn:y});let o=null;const u=b(()=>Object.values(t).some(p=>(p==null?void 0:p.status)==="authenticating")),k=b(()=>!!C.value),S=b(()=>{var p;return v.value||e.loadError?v.value||e.loadError:((p=e.startAuthCommand)==null?void 0:p.messageType)==="error"?e.startAuthCommand.message:""});function O(p){return t[p]||null}function D(p={}){return u.value||k.value||p.connected===!0}async function E(){await e.refresh()}async function J(p){await F(p,"browser")}async function I(){await F("codex","device")}async function F(p,P="browser"){var $;if(v.value="",(($=W(p))==null?void 0:$.connected)!==!0)try{const U=await e.startAuth(p,P);if(!(U!=null&&U.id))throw new Error("Login did not return an auth session.");le(U),A()}catch(U){v.value=String((U==null?void 0:U.message)||U||"Login could not start.")}}async function M(p){v.value="",C.value=String(p||"");try{await e.logout(p),await E()}catch(P){v.value=String((P==null?void 0:P.message)||P||"Logout failed.")}finally{C.value=""}}async function w(p={}){p.id&&(await e.cancelAuthSession(p.id).catch(()=>null),ue(p),await E(),Z())}async function G(p={}){const P=String(p.id||""),$=String(p.authUrl||"").trim();if(!P||!$)return!1;if(typeof(d==null?void 0:d.writeText)!="function")return v.value="Auth link could not be copied because clipboard access is unavailable.",!1;try{return await d.writeText($),i[P]="Auth link copied.",!0}catch(U){return v.value=String((U==null?void 0:U.message)||U||"Auth link could not be copied."),!1}}async function H(){const p=Object.values(t).filter(P=>(P==null?void 0:P.id)&&P.status==="authenticating");if(!p.length){V();return}for(const P of p){const $=await e.readAuthSession(P.id);le($),$.status==="connected"?(ue($),await E()):$.status==="failed"&&await E()}Z()}function A(){o||(o=g.setInterval(()=>{H().catch(p=>{v.value=String((p==null?void 0:p.message)||p||"Login polling failed.")})},m))}function V(){o&&(g.clearInterval(o),o=null)}function Z(){Object.values(t).some(p=>(p==null?void 0:p.status)==="authenticating")||V()}function W(p){return(Array.isArray(l(f))?l(f):[]).find($=>$.id===p)||null}function re(p={}){var $;const P=String(p.authUrl||"").trim();P&&(($=r==null?void 0:r.open)==null||$.call(r,P,"_blank","noopener"))}function le(p={}){var $;const P=(($=p.account)==null?void 0:$.id)||p.account||"";!P||!p.id||(t[P]=p)}function ue(p={}){var $;const P=(($=p.account)==null?void 0:$.id)||p.account||"";P&&(p.id&&delete i[p.id],delete t[P])}return Xe({activeSessionFor:O,authLinkCopyStatus:i,authBusy:u,cancelSession:w,copyAuthUrl:G,errorMessage:S,localError:v,loginDisabled:D,logoutAccount:M,logoutAccountId:C,logoutBusy:k,openAuthUrl:re,pollAuthSessions:H,refreshStatus:E,startBrowserAuth:J,startDeviceAuth:I,stopPolling:V})}function sa(){return typeof window>"u"?null:window}function ca(e){var f,r;return((f=e==null?void 0:e.navigator)==null?void 0:f.clipboard)||((r=globalThis.navigator)==null?void 0:r.clipboard)||null}function da({browserWindow:e,clearIntervalFn:f,setIntervalFn:r}){var s,d;return{clearInterval:f||((s=e==null?void 0:e.clearInterval)==null?void 0:s.bind(e))||globalThis.clearInterval,setInterval:r||((d=e==null?void 0:e.setInterval)==null?void 0:d.bind(e))||globalThis.setInterval}}const fa={class:"accounts-setup"},pa={class:"accounts-setup__header"},ma={class:"accounts-setup__header-actions"},va={class:"accounts-setup__items"},ga={class:"accounts-setup__item-main"},ya={class:"accounts-setup__item-title"},_a={class:"accounts-setup__item-message"},ba={key:0,class:"accounts-setup__identity"},Sa={class:"accounts-setup__actions"},ha={key:0,class:"accounts-setup__session"},Ca={key:0,class:"accounts-setup__code-block"},ka={class:"accounts-setup__code"},Aa={key:0,class:"accounts-setup__code-help"},Ta={class:"accounts-setup__session-actions"},Ra={key:1,class:"accounts-setup__copy-status"},xa={class:"accounts-setup__session-status"},wa={key:2,class:"accounts-setup__logs",open:""},Ia={__name:"AccountsSetup",emits:["continue"],setup(e,{emit:f}){const r=f,s=oa(),d=b(()=>s.status||null),m=b(()=>{var g;return((g=d.value)==null?void 0:g.ready)===!0}),y=b(()=>{var o;const g=Array.isArray((o=d.value)==null?void 0:o.accounts)?d.value.accounts:[];return g.length?g:[{connected:!1,id:"codex",label:"Codex",message:"Codex status has not loaded yet.",status:"unknown"},{connected:!1,id:"github",label:"GitHub",message:"GitHub status has not loaded yet.",status:"unknown"}]}),t=ia(s,{accountRows:y}),i=b(()=>t.errorMessage);function v(g={}){return g.connected?`${g.label} is connected.`:`${g.label} is not connected.`}function C(g={}){var o;return g.status==="connected"?`${((o=g.account)==null?void 0:o.label)||"Account"} is connected.`:g.status==="failed"?"Login did not finish cleanly. Review the logs and try again.":g.authUrl?"Browser login is open. Complete authorization there, then Studio will continue.":"Starting login and waiting for the browser URL."}return Re(()=>{t.refreshStatus()}),Oe(()=>{t.stopPolling()}),(g,o)=>(_(),Q("section",fa,[c("header",pa,[o[3]||(o[3]=c("div",null,[c("h1",{class:"accounts-setup__title"},"Accounts"),c("p",{class:"accounts-setup__lede"}," Connect the accounts Studio uses for Codex sessions and GitHub issue, pull request, and merge actions. ")],-1)),c("div",ma,[B(ot,{color:m.value?"success":"warning",variant:"tonal"},{default:T(()=>[N(x(m.value?"Accounts ready":"Accounts needed"),1)]),_:1},8,["color"]),B(X,{color:"primary",variant:"tonal",loading:l(s).isLoading,"prepend-icon":l(Ze),onClick:l(t).refreshStatus},{default:T(()=>[...o[1]||(o[1]=[N(" Refresh ",-1)])]),_:1},8,["loading","prepend-icon","onClick"]),m.value?(_(),L(X,{key:0,color:"primary",variant:"flat",onClick:o[0]||(o[0]=u=>r("continue"))},{default:T(()=>[...o[2]||(o[2]=[N(" Continue to Adapter Setup ",-1)])]),_:1})):j("",!0)])]),i.value?(_(),L(ke,{key:0,type:"error",variant:"tonal",border:"start"},{default:T(()=>[N(x(i.value),1)]),_:1})):j("",!0),l(s).isLoading&&!d.value?(_(),L(Ce,{key:1,color:"primary",height:"6",indeterminate:"",rounded:""})):j("",!0),c("div",va,[(_(!0),Q(ge,null,he(y.value,u=>(_(),L(ye,{key:u.id,rounded:"lg",border:"",class:ce(["accounts-setup__item",u.connected?"accounts-setup__item--connected":"accounts-setup__item--missing"])},{default:T(()=>{var k,S,O,D,E,J,I,F;return[c("div",ga,[B(Ae,{icon:u.connected?l(De):l(We),color:u.connected?"success":"warning",size:"30"},null,8,["icon","color"]),c("div",null,[c("h2",ya,x(u.label),1),c("p",_a,x(u.message||v(u)),1),u.username?(_(),Q("p",ba,x(u.username),1)):j("",!0)])]),c("div",Sa,[B(X,{color:"primary",variant:"flat",disabled:l(t).loginDisabled(u),loading:((k=l(t).activeSessionFor(u.id))==null?void 0:k.status)==="authenticating",onClick:M=>l(t).startBrowserAuth(u.id)},{default:T(()=>[N(x(u.id==="github"?"Auth GitHub":"Auth Codex"),1)]),_:2},1032,["disabled","loading","onClick"]),u.id==="codex"?(_(),L(X,{key:0,color:"primary",variant:"tonal",disabled:l(t).loginDisabled(u),onClick:l(t).startDeviceAuth},{default:T(()=>[...o[4]||(o[4]=[N(" Use code login ",-1)])]),_:1},8,["disabled","onClick"])):j("",!0),B(X,{color:"warning",variant:"tonal",disabled:l(t).authBusy||!u.connected,loading:l(t).logoutAccountId===u.id,onClick:M=>l(t).logoutAccount(u.id)},{default:T(()=>[...o[5]||(o[5]=[N(" Logout ",-1)])]),_:1},8,["disabled","loading","onClick"])]),l(t).activeSessionFor(u.id)?(_(),Q("div",ha,[(S=l(t).activeSessionFor(u.id))!=null&&S.userCode?(_(),Q("div",Ca,[o[6]||(o[6]=c("p",{class:"accounts-setup__code-label"},"One-time code",-1)),c("p",ka,x(l(t).activeSessionFor(u.id).userCode),1),((O=l(t).activeSessionFor(u.id))==null?void 0:O.mode)==="device"?(_(),Q("p",Aa," Enable code login in ChatGPT settings or workspace permissions, then enter this code on the login page. ")):j("",!0)])):j("",!0),c("div",Ta,[(D=l(t).activeSessionFor(u.id))!=null&&D.authUrl?(_(),L(X,{key:0,color:"primary",variant:"tonal",onClick:M=>l(t).openAuthUrl(l(t).activeSessionFor(u.id))},{default:T(()=>[...o[7]||(o[7]=[N(" Open browser ",-1)])]),_:1},8,["onClick"])):j("",!0),(E=l(t).activeSessionFor(u.id))!=null&&E.authUrl?(_(),L(X,{key:1,color:"primary",variant:"tonal","prepend-icon":l(Rt),onClick:M=>l(t).copyAuthUrl(l(t).activeSessionFor(u.id))},{default:T(()=>[...o[8]||(o[8]=[N(" Copy auth link ",-1)])]),_:1},8,["prepend-icon","onClick"])):j("",!0),B(X,{variant:"tonal",disabled:((J=l(t).activeSessionFor(u.id))==null?void 0:J.terminalStatus)!=="running",onClick:M=>l(t).cancelSession(l(t).activeSessionFor(u.id))},{default:T(()=>[...o[9]||(o[9]=[N(" Cancel ",-1)])]),_:1},8,["disabled","onClick"])]),l(t).authLinkCopyStatus[(I=l(t).activeSessionFor(u.id))==null?void 0:I.id]?(_(),Q("p",Ra,x(l(t).authLinkCopyStatus[l(t).activeSessionFor(u.id).id]),1)):j("",!0),c("p",xa,x(C(l(t).activeSessionFor(u.id))),1),((F=l(t).activeSessionFor(u.id))==null?void 0:F.status)==="failed"?(_(),Q("details",wa,[o[10]||(o[10]=c("summary",null,"Show login logs",-1)),c("pre",null,x(l(t).activeSessionFor(u.id).output),1)])):j("",!0)])):j("",!0)]}),_:2},1032,["class"]))),128))])]))}},$a=_e(Ia,[["__scopeId","data-v-239ad440"]]);function Ea(e=""){return e==="pass"?"success":e==="running"?"primary":["blocked","fail","hard-stop"].includes(e)?"error":"warning"}function Pa(e=""){return e==="pass"?De:e==="running"?et:["blocked","fail","hard-stop"].includes(e)?tt:We}function Va(e=""){return e==="pass"?"Ready":e==="running"?"Running":e==="hard-stop"?"Hard stop":["blocked","fail"].includes(e)?"Needs attention":"Pending"}function La(e=""){return e==="pass"?"doctor-status__status-badge--pass":e==="running"?"doctor-status__status-badge--running":["blocked","fail","hard-stop"].includes(e)?"doctor-status__status-badge--fail":"doctor-status__status-badge--unknown"}function ze(e=""){return e==="pass"?De:e==="checking"?et:tt}const Oa={class:"doctor-status__checks"},Da={class:"doctor-status__check-body"},Ua={class:"doctor-status__check-header"},qa={class:"text-subtitle-2 mb-1"},Ba={class:"text-body-2 text-medium-emphasis mb-0"},Fa={class:"doctor-status__facts"},ja={class:"text-caption text-medium-emphasis mb-0 doctor-status__fact-line"},Na={class:"doctor-status__fact"},Ma={class:"doctor-status__fact doctor-status__observed"},Ha={key:0,class:"doctor-status__command"},Ga={key:0,class:"doctor-status__actions"},za={__name:"DoctorCheckList",props:{actionInFlight:{type:String,default:""},checks:{type:Array,default:()=>[]},repairCommandPreview:{type:Function,required:!0},repairRequiresInput:{type:Function,required:!0},visibleCheckRepairs:{type:Function,required:!0}},emits:["confirm-repair","run-repair"],setup(e,{emit:f}){const r=e,s=f;function d(m){return r.visibleCheckRepairs(m)}return(m,y)=>(_(),Q("div",Oa,[(_(!0),Q(ge,null,he(e.checks,t=>(_(),L(ye,{key:t.id,rounded:"lg",border:"",class:ce(["doctor-status__check",`doctor-status__check--${t.status}`])},{default:T(()=>[c("div",{class:ce(["doctor-status__status-badge",l(La)(t.status)])},[B(Ae,{class:"doctor-status__status-icon",icon:l(Pa)(t.status),color:l(Ea)(t.status),"aria-label":l(Va)(t.status),size:"30"},null,8,["icon","color","aria-label"])],2),c("div",Da,[c("div",Ua,[c("div",null,[c("h3",qa,x(t.label),1),c("p",Ba,x(t.explanation),1)])]),c("div",Fa,[c("p",ja,[c("span",Na,[y[0]||(y[0]=c("strong",{class:"text-high-emphasis"},"Expected:",-1)),N(" "+x(t.expected),1)]),c("span",Ma,[y[1]||(y[1]=c("strong",{class:"text-high-emphasis"},"Observed:",-1)),N(" "+x(t.observed),1)])])]),d(t).length?(_(),Q("pre",Ha,x(e.repairCommandPreview(t)),1)):j("",!0)]),d(t).length?(_(),Q("div",Ga,[(_(!0),Q(ge,null,he(d(t),i=>(_(),Q(ge,{key:i.actionId},[i.kind==="terminal"?(_(),L(X,{key:0,color:"primary",class:"doctor-status__repair-button",variant:"flat","prepend-icon":l(xt),disabled:!!e.actionInFlight,onClick:v=>e.repairRequiresInput(i)?s("confirm-repair",{check:t,repair:i}):s("run-repair",i)},{default:T(()=>[N(x(i.label||"Open terminal"),1)]),_:2},1032,["prepend-icon","disabled","onClick"])):(_(),L(X,{key:1,class:"doctor-status__repair-button",variant:"tonal",color:"warning",disabled:""},{default:T(()=>[N(x(i.label||"Manual repair required"),1)]),_:2},1024))],64))),128))])):j("",!0)]),_:2},1032,["class"]))),128))]))}},Ka=_e(za,[["__scopeId","data-v-32db6030"]]),Qa={key:0,class:"doctor-repair-dialog__field-grid mb-3"},Ja={class:"doctor-repair-dialog__command mb-3"},Ya={class:"d-flex justify-end ga-2"},Xa={__name:"DoctorRepairDialog",props:{canRun:{type:Boolean,default:!1},commandPreview:{type:String,default:""},fields:{type:Array,default:()=>[]},modelValue:{type:Boolean,default:!1},running:{type:Boolean,default:!1},values:{type:Object,default:()=>({})}},emits:["run","update:modelValue","update:values"],setup(e,{emit:f}){const r=e,s=f;function d(y=""){var t;return((t=r.values)==null?void 0:t[y])||""}function m(y="",t=""){s("update:values",{...r.values,[y]:t})}return(y,t)=>(_(),L(at,{"model-value":e.modelValue,"max-width":"760","onUpdate:modelValue":t[2]||(t[2]=i=>s("update:modelValue",i))},{default:T(()=>[B(ye,{rounded:"lg",class:"doctor-repair-dialog"},{default:T(()=>[t[5]||(t[5]=c("h2",{class:"text-subtitle-1 mb-2"},"Confirm repair",-1)),t[6]||(t[6]=c("p",{class:"text-body-2 text-medium-emphasis mb-3"}," Studio will run this command locally after confirmation. ",-1)),e.fields.length?(_(),Q("div",Qa,[(_(!0),Q(ge,null,he(e.fields,i=>(_(),L(Qt,{key:i.id,"model-value":d(i.id),autocomplete:i.autocomplete||void 0,density:"compact","hide-details":"auto",label:i.label,placeholder:i.placeholder||"",type:i.type||"text",variant:"outlined","onUpdate:modelValue":v=>m(i.id,v)},null,8,["model-value","autocomplete","label","placeholder","type","onUpdate:modelValue"]))),128))])):j("",!0),c("pre",Ja,x(e.commandPreview),1),c("div",Ya,[B(X,{variant:"text",disabled:e.running,onClick:t[0]||(t[0]=i=>s("update:modelValue",!1))},{default:T(()=>[...t[3]||(t[3]=[N("Close",-1)])]),_:1},8,["disabled"]),B(X,{color:"primary",disabled:!e.canRun,loading:e.running,onClick:t[1]||(t[1]=i=>s("run"))},{default:T(()=>[...t[4]||(t[4]=[N(" Run repair ",-1)])]),_:1},8,["disabled","loading"])])]),_:1})]),_:1},8,["model-value"]))}},Za=_e(Xa,[["__scopeId","data-v-929eeb97"]]),Wa={class:"d-flex align-center justify-space-between ga-3 mb-3"},en={class:"text-subtitle-1 mb-1"},tn={class:"text-caption text-medium-emphasis mb-0 doctor-terminal-dialog__command"},an={class:"doctor-terminal-dialog__details-command"},nn={class:"doctor-terminal-dialog__copy-bar mb-2"},rn={key:0,class:"text-caption text-medium-emphasis mb-0"},ln={class:"d-flex justify-end ga-2 mt-3"},on={__name:"DoctorTerminalDialog",props:{commandDetails:{type:String,default:""},commandPreview:{type:String,default:""},copyStatus:{type:String,default:""},error:{type:String,default:""},modelValue:{type:Boolean,default:!1},selectedText:{type:String,default:""},sessionId:{type:String,default:""},setHost:{type:Function,required:!0},status:{type:String,default:""},title:{type:String,default:"Terminal"}},emits:["close","copy-selection","send-ctrl-c","update:modelValue"],setup(e,{emit:f}){const r=e,s=b(()=>["starting","running","closing"].includes(r.status||"starting")),d=b(()=>{const y=String(r.status||"starting").trim();return y?`${y[0].toUpperCase()}${y.slice(1)}`:"Starting"}),m=f;return(y,t)=>(_(),L(at,{"model-value":e.modelValue,"max-width":"980",persistent:"","onUpdate:modelValue":t[3]||(t[3]=i=>m("update:modelValue",i))},{default:T(()=>[B(ye,{rounded:"lg",class:"doctor-terminal-dialog"},{default:T(()=>[c("div",Wa,[c("div",null,[c("h2",en,x(e.title),1),c("p",tn,x(e.commandPreview),1)]),c("div",{"aria-live":"polite",class:ce(["doctor-terminal-dialog__status",{"doctor-terminal-dialog__status--running":s.value}]),role:"status"},x(d.value),3)]),e.commandDetails?(_(),L(Yt,{key:0,class:"doctor-terminal-dialog__details mb-3",variant:"accordion"},{default:T(()=>[B(Xt,null,{default:T(()=>[B(Zt,null,{default:T(()=>[...t[4]||(t[4]=[N("Command details",-1)])]),_:1}),B(Wt,null,{default:T(()=>[c("pre",an,x(e.commandDetails),1)]),_:1})]),_:1})]),_:1})):j("",!0),e.error?(_(),L(ke,{key:1,type:"error",variant:"tonal",class:"mb-3"},{default:T(()=>[N(x(e.error),1)]),_:1})):j("",!0),c("div",nn,[B(X,{variant:"tonal",disabled:!e.selectedText,onClick:t[0]||(t[0]=i=>m("copy-selection"))},{default:T(()=>[...t[5]||(t[5]=[N(" Copy selection ",-1)])]),_:1},8,["disabled"]),e.copyStatus?(_(),Q("p",rn,x(e.copyStatus),1)):j("",!0)]),c("div",{ref:e.setHost,class:"doctor-terminal-dialog__host"},null,512),c("div",ln,[B(X,{variant:"tonal",disabled:!e.sessionId,onClick:t[1]||(t[1]=i=>m("send-ctrl-c"))},{default:T(()=>[...t[6]||(t[6]=[N("Send Ctrl-C",-1)])]),_:1},8,["disabled"]),B(X,{color:"primary",variant:"flat",onClick:t[2]||(t[2]=i=>m("close"))},{default:T(()=>[...t[7]||(t[7]=[N("Close",-1)])]),_:1})])]),_:1})]),_:1},8,["model-value"]))}},un=_e(on,[["__scopeId","data-v-b8c2eeed"]]);function ut(e="checks",f=null){return e==="stages"?"stages":e==="checks"?"checks":Array.isArray(f==null?void 0:f.stages)?"stages":"checks"}function Ke(e=null,f="checks"){return e?{...e,checks:Array.isArray(e.checks)?[...e.checks]:e.checks,stages:Array.isArray(e.stages)?[...e.stages]:e.stages}:{ok:!0,ready:!1,[ut(f,null)]:[]}}function sn(e,f=!1){return f?`${e}${e.includes("?")?"&":"?"}refresh=true`:e}function cn({onRefresh:e=null,onStatusUpdated:f=null,statusItemsKey:r=()=>"checks",streamAutoStart:s=()=>!0,streamEnabled:d=()=>!1,streamEndpoint:m=()=>"",status:y=()=>null}={}){const t=h(null),i=h(""),v=h(""),C=h(!1);let g=null,o="";const u=typeof e=="function"?e:()=>null,k=typeof f=="function"?f:()=>null;function S(I=t.value||y()){return ut(r(),I)}function O(I=g){I&&I.close(),(!I||I===g)&&(g=null,o="")}function D(I){const F=Ke(t.value||y(),r()),M=S(F),w=Array.isArray(F[M])?[...F[M]]:[],G=w.findIndex(H=>H.id===I.id);G>=0?w[G]={...w[G],...I}:w.push(I),F[M]=w,F.ready=!1,t.value=F}function E({force:I=!1,refresh:F=!1}={}){const M=sn(String(m()||""),F);if(!M||!d())return!1;if(typeof EventSource!="function")return u({refresh:F}),!1;if(!I&&g&&C.value&&o===M)return!0;O(),i.value="",v.value="",C.value=!0,t.value=Ke(y(),r());const w=new EventSource(M,{withCredentials:!0});g=w,o=M;const G=()=>w===g;return w.addEventListener("run.started",()=>{G()&&(C.value=!0,i.value="",v.value="Starting setup checks.")}),w.addEventListener("check.started",H=>{if(!G())return;const A=pe(H),V=A.label||A.id;v.value=`Checking ${V}.`,D({explanation:"Studio is checking this now.",expected:"Check is running.",id:A.id,label:V,observed:"Running...",required:!0,status:"running"})}),w.addEventListener("check.finished",H=>{var V;if(!G())return;const A=pe(H);(V=A.check)!=null&&V.id&&D(A.check)}),w.addEventListener("repair.started",H=>{if(!G())return;const A=pe(H),V=A.label||A.actionId||"automatic repair";v.value=`Running automatic repair: ${V}.`,A.checkId&&D({explanation:`Studio is running ${V}.`,expected:"Automatic repair completes successfully.",id:A.checkId,label:A.checkLabel||A.checkId,observed:v.value,required:!0,status:"running"})}),w.addEventListener("repair.finished",H=>{if(!G())return;const A=pe(H),V=A.label||A.actionId||"automatic repair";v.value=A.ok===!1?`Automatic repair failed: ${V}.`:`Finished automatic repair: ${V}.`}),w.addEventListener("check.error",H=>{if(!G())return;const A=pe(H);v.value=`Check failed: ${A.label||A.id}.`,D({explanation:"The check raised an unexpected error.",expected:"Check completes without throwing.",id:A.id,label:A.label||A.id,observed:A.error||"Check failed.",required:!0,status:"fail"})}),w.addEventListener("run.finished",H=>{if(!G())return;const A=pe(H);t.value=A.status||t.value,A.status&&k(A.status),v.value="",C.value=!1,O(w)}),w.addEventListener("run.error",H=>{if(!G())return;const A=pe(H);i.value=A.error||"Doctor stream failed.",v.value="",C.value=!1,O(w)}),w.onerror=()=>{G()&&(C.value&&(i.value="Doctor stream disconnected.",v.value="",C.value=!1),O(w))},!0}function J(){E({force:!0,refresh:!0})||u({refresh:!0})}return Te(y,I=>{I&&!C.value&&(t.value=I)},{immediate:!0}),Te(()=>[m(),d(),s()],()=>{if(d()&&m()&&s()){E();return}(!d()||!m())&&(O(),C.value=!1)},{immediate:!0}),Oe(()=>{O()}),{closeDoctorStream:O,liveStatus:t,refreshDoctorStatus:J,startDoctorStream:E,streamError:i,streamOperation:v,streamRunning:C}}const Qe=Object.freeze(["blocked","fail","hard-stop"]);function dn(e){return String(e).replace(/["\\]/gu,"\\$&")}function Je(e){return Array.isArray(e==null?void 0:e.repairs)&&e.repairs.length?e.repairs.filter(Boolean):[e==null?void 0:e.repair].filter(Boolean)}function fn(e){return Array.isArray(e==null?void 0:e.fields)&&e.fields.length>0}function pn(e){const f=e!=null&&e.input&&typeof e.input=="object"&&!Array.isArray(e.input)?{...e.input}:{};for(const r of Array.isArray(e==null?void 0:e.fields)?e.fields:[]){const s=String(r.defaultValue||"").trim();if(r.required&&!s)return null;f[r.id]=s}return f}function mn(e,f,r){return[(e==null?void 0:e.id)||"",(f==null?void 0:f.actionId)||"",JSON.stringify(r||{})].join(":")}function vn({alwaysRepairCheckIds:e=()=>[],autoRepairEnabled:f=()=>!1,checks:r=()=>[],isLoading:s=()=>!1,openTerminal:d=null,ready:m=()=>!1,streamRunning:y=()=>!1,terminalCloseError:t=()=>"",terminalDialogOpen:i=()=>!1,terminalError:v=()=>"",terminalExitCode:C=()=>null,terminalOutput:g=()=>""}={}){const o=h(""),u=h(null),k=h(""),S=h(""),O=h(!1),D=h(null),E=h({}),J=h(!1),I=h([]),F=b({get(){return!!D.value},set(a){a||de()}}),M=b(()=>!!P()),w=b(()=>{var a,n;return Array.isArray((n=(a=D.value)==null?void 0:a.repair)==null?void 0:n.fields)?D.value.repair.fields:[]}),G=b(()=>{var n,R;let a=((R=(n=D.value)==null?void 0:n.repair)==null?void 0:R.commandPreview)||"";for(const q of w.value){const fe=String(E.value[q.id]||"").trim();fe&&(a=a.replaceAll(`<${q.id}>`,dn(fe)))}return a}),H=b(()=>{for(const a of w.value){const n=String(E.value[a.id]||"").trim();if(a.required&&!n||a.type==="email"&&n&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/u.test(n))return!1}return!0}),A=b(()=>{var a;return!O.value||!((a=u.value)!=null&&a.checkId)?Y(r):Y(r).map(n=>n.id!==u.value.checkId?n:{...n,explanation:`Studio is running ${u.value.label}. This can take a few minutes.`,expected:"The automatic repair completes successfully.",observed:"Running in the setup terminal.",repair:null,repairs:[],status:"running"})}),V=b(()=>{const a=String(Y(g)||"").trim();return a?a.length>4e3?a.slice(a.length-4e3):a:""});function Z(){k.value="",S.value=""}function W(a){const n=Je(a);return Qe.includes(a==null?void 0:a.status)||Y(e).includes(a==null?void 0:a.id)?n:[]}function re(a){var R;const n=W(a);return n.length<=1?((R=n[0])==null?void 0:R.commandPreview)||"":n.map(q=>`${q.label||q.actionId}:
2
2
  ${q.commandPreview}`).join(`
3
3
 
4
- `)}function le(a){return w.value.includes(a)}function ue(a){le(a)||(w.value=[...w.value,a])}function p(a,n){if((n==null?void 0:n.autoRun)!==!0||(n==null?void 0:n.kind)!=="terminal"||!(n!=null&&n.actionId))return null;const R=pn(n);if(R===null)return null;const q=mn(a,n,R);return le(q)?null:{check:a,inputs:R,key:q,repair:n}}function P(){for(const a of Y(r))if(Qe.includes(a==null?void 0:a.status))for(const n of Je(a)){const R=p(a,n);if(R)return R}return null}function $(){const a={};for(const n of I.value)a[n.id]=String(E.value[n.id]||"").trim();return a}async function U(a,{inputs:n={},visible:R=!0,waitForExit:q=!1}={}){if(!(a!=null&&a.actionId)||typeof d!="function")return null;o.value=a.actionId;try{return await d({inputs:n,repair:a,visible:R,waitForExit:q})}finally{o.value=""}}function oe(a,n=a==null?void 0:a.repair){const R={};for(const q of Array.isArray(n==null?void 0:n.fields)?n.fields:[])R[q.id]=q.defaultValue||"";E.value=R,D.value={check:a,repair:n}}function de(){J.value||(D.value=null,E.value={})}async function me(){var R,q;if(!((q=(R=D.value)==null?void 0:R.repair)!=null&&q.actionId))return;const a=D.value.repair,n=$();D.value=null,E.value={},k.value="",S.value="",J.value=!0;try{await U(a,{inputs:n})}finally{J.value=!1}}async function ee(){if(Y(m)){Z();return}if(!Y(f)||Y(s)||Y(y)||k.value||O.value||F.value||Y(i)||o.value)return;const a=P();if(!a){S.value="";return}ue(a.key),u.value={actionId:a.repair.actionId,checkId:a.check.id,label:a.repair.label||a.repair.actionId},O.value=!0,k.value="",S.value=`Running automatic repair: ${a.repair.label||a.repair.actionId}`;try{const n=await U(a.repair,{inputs:a.inputs,visible:!1,waitForExit:!0}),R=Number.isInteger(n==null?void 0:n.exitCode)?n.exitCode:Y(C),q=(n==null?void 0:n.closeError)||Y(t)||"";((n==null?void 0:n.ok)===!1||R!==0||q)&&(k.value=[`Automatic repair failed: ${a.repair.label||a.repair.actionId}`,q||Y(v)||(Number.isInteger(R)?`Exit code ${R}.`:"")].filter(Boolean).join(" "))}finally{u.value=null,O.value=!1}}return Te(()=>[Y(f),Y(m),Y(s),Y(y),O.value,Y(i),o.value,Y(r).map(a=>`${a.id}:${a.status}`).join("|")],()=>{ee()},{immediate:!0}),{actionInFlight:o,automaticRepair:u,automaticRepairError:k,automaticRepairAvailable:M,automaticRepairLog:V,automaticRepairMessage:S,automaticRepairRunning:O,canRunConfirmedRepair:H,clearRepairMessages:Z,closeRepairDialog:de,confirmRepairAction:oe,confirmRepairCommandPreview:G,confirmRepairFields:I,displayChecks:A,executeConfirmedRepair:me,repairCommandPreview:re,repairDialogOpen:F,repairFieldValues:E,repairRequiresInput:fn,repairRunning:J,runRepair:U,visibleCheckRepairs:W}}function gn({onTerminalSettled:e=null,terminalEndpoint:f=()=>""}={}){const r=h(!1),s=h(""),d=h(null),m=h(""),y=h(""),t=h("Terminal"),i=h(""),v=h(""),C=h(""),g=h(null),o=h(""),u=h(""),k=h("");let S=null,O=null,D=null,E=null,J=null,w=null,F=null,M=0,I="",G=!1;const H=typeof e=="function"?e:()=>null;function A(a=""){return`${f()}${a}`}function V(a=null){G||(G=!0,H(a))}function Z(a){return new Promise(n=>{window.setTimeout(n,a)})}async function W(a,n){const R=String(a||"");if(!R)return!1;try{return await aa(R),k.value=`${n} copied.`,!0}catch(q){return k.value=String((q==null?void 0:q.message)||q||"Copy failed."),!1}}function re(){var a;return u.value=(a=S==null?void 0:S.hasSelection)!=null&&a.call(S)?S.getSelection():"",u.value}function le(){const a=re();F&&(window.clearTimeout(F),F=null),!(!a||a===I)&&(F=window.setTimeout(async()=>{const n=re();!n||n===I||await W(n,"Selection")&&(I=n)},250))}async function ue(){const a=re();await W(a,"Selection")&&(I=a)}function p(){var a,n,R;w&&(window.clearInterval(w),w=null),F&&(window.clearTimeout(F),F=null),(a=D==null?void 0:D.dispose)==null||a.call(D),D=null,(n=E==null?void 0:E.dispose)==null||n.call(E),E=null,J&&(window.removeEventListener("resize",J),J=null),(R=S==null?void 0:S.dispose)==null||R.call(S),S=null,O=null,u.value="",M=0,I=""}async function P(){if(await It(),p(),!d.value)throw new Error("Terminal view is not ready yet.");S=new na({convertEol:!0,cursorBlink:!0,fontFamily:"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace",fontSize:13,theme:{background:"#111318",foreground:"#f4f6fb"}}),O=new ra,S.loadAddon(O),S.open(d.value),O.fit(),D=S.onData(a=>{oe(a)}),E=S.onSelectionChange(()=>{le()}),J=()=>{O==null||O.fit()},window.addEventListener("resize",J)}function $(a){if(!S)return;const n=String(a||"");n.length<M&&(M=0,S.reset());const R=n.slice(M);R&&(S.write(R),M=n.length)}async function U(){var a;if(m.value)try{const n=await se.get(A(`/${encodeURIComponent(m.value)}`));return C.value=n.closeError||"",g.value=Number.isInteger(n.exitCode)?n.exitCode:null,o.value=n.output||"",y.value=n.status||"",i.value=n.commandPreview||i.value,v.value=((a=n.metadata)==null?void 0:a.commandDetails)||v.value,$(n.output),n.status==="exited"&&(w&&(window.clearInterval(w),w=null),V(n)),n}catch(n){return s.value=String((n==null?void 0:n.message)||n||"Terminal polling failed."),null}}async function oe(a){if(!(!m.value||y.value==="exited"))try{await se.post(A(`/${encodeURIComponent(m.value)}/input`),{data:a})}catch(n){s.value=String((n==null?void 0:n.message)||n||"Terminal input failed.")}}async function de(){await oe("")}async function me({inputs:a={},repair:n,visible:R=!0,waitForExit:q=!1}){var fe;r.value=R,s.value="",C.value="",k.value="",g.value=null,o.value="",u.value="",I="",G=!1,t.value=(n==null?void 0:n.label)||"Terminal",i.value=(n==null?void 0:n.commandPreview)||"",v.value="",m.value="",y.value="starting",p();try{R&&await P();const z=await se.post(f(),{actionId:n.actionId,inputs:a});if(z.ok===!1)throw new Error(z.error||"Terminal start failed.");if(m.value=z.id||"",y.value=z.status||"running",i.value=z.commandPreview||i.value,v.value=((fe=z.metadata)==null?void 0:fe.commandDetails)||v.value,C.value=z.closeError||"",g.value=Number.isInteger(z.exitCode)?z.exitCode:null,o.value=z.output||"",$(z.output),q){let ie=z;for(;m.value&&(ie==null?void 0:ie.status)!=="exited"&&(await Z(750),ie=await U(),!!ie););return ie||z}return w=window.setInterval(()=>{U()},750),await U(),z}catch(z){return s.value=String((z==null?void 0:z.message)||z||"Terminal start failed."),{error:s.value,ok:!1}}}async function ee(){const a=m.value;r.value=!1,m.value="",y.value="",a&&await se.delete(A(`/${encodeURIComponent(a)}`)).catch(()=>null),p(),V()}return Oe(()=>{p()}),{closeTerminal:ee,copyTerminalSelection:ue,openTerminal:me,sendCtrlC:de,terminalCloseError:C,terminalCommandDetails:v,terminalCommandPreview:i,terminalCopyStatus:k,terminalDialogOpen:r,terminalError:s,terminalExitCode:g,terminalHost:d,terminalOutput:o,terminalSelectedText:u,terminalSessionId:m,terminalStatus:y,terminalTitle:t}}function Le({checking:e,passedCheckCount:f,requiredCheckCount:r}){return r?`${f} of ${r} required checks ${e?"have passed so far":"are ready"}.`:e?"Checks are starting.":"No required checks were reported."}function yn({blockedLabel:e="Blocked",blockedTitle:f="Blocked",checkingLabel:r="Checking",checkingTitle:s="Checking",isLoading:d=!1,passedCheckCount:m=0,ready:y=!1,readyLabel:t="Ready",readyTitle:i="Ready",requiredCheckCount:v=0}={}){return d?{color:"primary",label:r,progressIndeterminate:v===0,progressText:Le({checking:!0,passedCheckCount:m,requiredCheckCount:v}),state:"checking",title:s}:y?{color:"success",label:t,progressIndeterminate:!1,progressText:Le({checking:!1,passedCheckCount:m,requiredCheckCount:v}),state:"pass",title:i}:{color:"error",label:e,progressIndeterminate:!1,progressText:Le({checking:!1,passedCheckCount:m,requiredCheckCount:v}),state:"fail",title:f}}const _n={class:"generated-ui-screen generated-ui-screen--studio studio-screen d-flex flex-column ga-3"},bn={class:"studio-screen__header d-flex flex-column flex-md-row ga-3 align-md-end justify-space-between"},Sn={class:"studio-screen__title"},hn={class:"text-body-2 text-medium-emphasis mb-0 studio-screen__lede"},Cn={class:"d-flex ga-2 align-center flex-wrap"},kn={class:"d-flex flex-column ga-2"},An={key:0,class:"doctor-status__command mb-0"},Tn={class:"doctor-status__quiet-copy"},Rn={class:"doctor-status__quiet-title"},xn={class:"doctor-status__quiet-message"},In={class:"doctor-status__summary-main"},wn={class:"text-subtitle-1 mb-1"},$n={class:"text-body-2 text-medium-emphasis mb-2"},En={__name:"DoctorStatusPage",props:{alwaysRepairCheckIds:{type:Array,default:()=>[]},autoRepairEnabled:{type:Boolean,default:!1},blockedLabel:{type:String,default:"Blocked"},blockedTitle:{type:String,default:"Blocked"},continueLabel:{type:String,default:"Continue"},continueTo:{type:String,default:""},continueEmits:{type:Boolean,default:!1},doctorClass:{type:String,default:""},error:{type:String,default:""},lede:{type:String,default:""},loading:{type:Boolean,default:!1},readyLabel:{type:String,default:"Ready"},readyTitle:{type:String,default:"Ready"},quiet:{type:Boolean,default:!0},quietLede:{type:String,default:"Vibe64 is checking the project and preparing anything it can handle automatically."},quietTitle:{type:String,default:"Getting things ready"},status:{type:Object,default:null},statusItemsKey:{type:String,default:"checks"},streamEnabled:{type:Boolean,default:!1},streamEndpoint:{type:String,default:""},streamAutoStart:{type:Boolean,default:!0},terminalEndpoint:{type:String,required:!0},title:{type:String,required:!0}},emits:["continue","refresh","status-updated"],setup(e,{emit:f}){const r=e,s=f,d=h(!1),{liveStatus:m,refreshDoctorStatus:y,streamError:t,streamOperation:i,streamRunning:v}=cn({onRefresh(K={}){s("refresh",K)},onStatusUpdated(K){s("status-updated",K)},status:()=>r.status,statusItemsKey:()=>r.statusItemsKey,streamAutoStart:()=>r.streamAutoStart,streamEnabled:()=>r.streamEnabled,streamEndpoint:()=>r.streamEndpoint}),{closeTerminal:C,copyTerminalSelection:g,openTerminal:o,sendCtrlC:u,terminalCloseError:k,terminalCommandDetails:S,terminalCommandPreview:O,terminalCopyStatus:D,terminalDialogOpen:E,terminalError:J,terminalExitCode:w,terminalHost:F,terminalOutput:M,terminalSelectedText:I,terminalSessionId:G,terminalStatus:H,terminalTitle:A}=gn({onTerminalSettled(){y()},terminalEndpoint:()=>r.terminalEndpoint}),V=b(()=>m.value||r.status),Z=b(()=>r.loading||v.value),W=b(()=>{var K;return((K=V.value)==null?void 0:K.ready)===!0}),re=b(()=>!!r.continueTo||r.continueEmits);function le(){r.continueEmits&&s("continue")}function ue(){n(),y()}const p=b(()=>{var ae,ne;const K=(ae=V.value)==null?void 0:ae[r.statusItemsKey];return Array.isArray(K)?K:Array.isArray((ne=V.value)==null?void 0:ne.checks)?V.value.checks:[]}),{actionInFlight:P,automaticRepair:$,automaticRepairError:U,automaticRepairAvailable:oe,automaticRepairLog:de,automaticRepairMessage:me,automaticRepairRunning:ee,canRunConfirmedRepair:a,clearRepairMessages:n,confirmRepairAction:R,confirmRepairCommandPreview:q,confirmRepairFields:fe,displayChecks:z,executeConfirmedRepair:ie,repairCommandPreview:st,repairDialogOpen:xe,repairFieldValues:Ie,repairRequiresInput:ct,repairRunning:dt,runRepair:ft,visibleCheckRepairs:pt}=vn({alwaysRepairCheckIds:()=>r.alwaysRepairCheckIds,autoRepairEnabled:()=>r.autoRepairEnabled,checks:()=>p.value,isLoading:()=>Z.value,openTerminal:o,ready:()=>W.value,streamRunning:()=>v.value,terminalCloseError:()=>k.value,terminalDialogOpen:()=>E.value,terminalError:()=>J.value,terminalExitCode:()=>w.value,terminalOutput:()=>M.value}),we=b(()=>ee.value&&!U.value?"":r.error||t.value),ve=b(()=>{var K;return ee.value&&((K=$.value)!=null&&K.label)?`Running automatic repair: ${$.value.label}.`:i.value||""}),Be=b(()=>z.value.filter(K=>K.required!==!1)),$e=b(()=>Be.value.length),Fe=b(()=>Be.value.filter(K=>K.status==="pass").length),je=b(()=>$e.value?Math.round(Fe.value/$e.value*100):0),te=b(()=>ee.value&&$.value?{color:"primary",label:"Repairing setup",progressIndeterminate:!0,progressText:ve.value||`Studio is running ${$.value.label}. This can take a few minutes.`,state:"checking",title:$.value.label}:Z.value&&ve.value?{color:"primary",label:"Preparing setup",progressIndeterminate:!0,progressText:ve.value,state:"checking",title:"Preparing setup"}:yn({blockedLabel:r.blockedLabel,blockedTitle:r.blockedTitle,isLoading:Z.value,passedCheckCount:Fe.value,ready:W.value,readyLabel:r.readyLabel,readyTitle:r.readyTitle,requiredCheckCount:$e.value})),mt=b(()=>!!(V.value&&W.value!==!0&&te.value.state==="fail"&&!Z.value&&!ee.value&&!oe.value)),Ee=b(()=>!!(we.value||U.value||mt.value)),be=b(()=>r.quiet!==!0||d.value||Ee.value),Pe=b(()=>r.quiet===!0&&!be.value),vt=b(()=>r.quiet===!0&&!Ee.value),gt=b(()=>!!(U.value||be.value&&me.value)),yt=b(()=>Pe.value?r.quietTitle:r.title),_t=b(()=>Pe.value?r.quietLede:r.lede),Se=b(()=>!V.value&&!Ee.value?{color:"primary",progressIndeterminate:!0,state:"checking"}:te.value),bt=b(()=>!!(Z.value||ee.value||oe.value||Se.value.progressIndeterminate)),St=b(()=>W.value?"Ready":ee.value?"Preparing automatically":ve.value?"Preparing setup":Z.value?"Checking setup":oe.value?"Preparing automatically":"Getting things ready"),ht=b(()=>{var K;return W.value?"Everything needed for this step is ready.":ee.value&&((K=$.value)!=null&&K.label)?`Vibe64 is running ${$.value.label}.`:ve.value?ve.value:ee.value||oe.value?"Vibe64 is handling this setup step automatically.":Z.value?"Vibe64 is checking what this project needs.":"Vibe64 is getting the project ready."}),Ct=b(()=>te.value.state==="checking"),Ne=b(()=>ze(te.value.state)),kt=b(()=>ze(Se.value.state));function At(K){F.value=K}function Tt(){d.value=!d.value}return(K,ae)=>(_(),Q("section",_n,[c("header",bn,[c("div",null,[c("h1",Sn,x(yt.value),1),c("p",hn,x(_t.value),1)]),c("div",Cn,[V.value&&be.value?(_(),L(ot,{key:0,color:te.value.color,"prepend-icon":Ne.value,variant:"tonal"},{default:T(()=>[N(x(te.value.label),1)]),_:1},8,["color","prepend-icon"])):j("",!0),W.value&&!Ct.value&&re.value?(_(),L(X,{key:1,color:"primary",variant:"flat",to:e.continueTo||void 0,class:"studio-screen__action-button",onClick:le},{default:T(()=>[N(x(e.continueLabel),1)]),_:1},8,["to"])):j("",!0),vt.value?(_(),L(X,{key:2,color:"primary",variant:"tonal","prepend-icon":d.value?l(wt):l($t),class:"studio-screen__action-button",onClick:Tt},{default:T(()=>[N(x(d.value?"Hide details":"Show details"),1)]),_:1},8,["prepend-icon"])):j("",!0),B(X,{variant:"tonal",color:"primary",loading:Z.value||l(ee),"prepend-icon":l(Ze),class:"studio-screen__action-button",onClick:ue},{default:T(()=>[...ae[4]||(ae[4]=[N(" Refresh ",-1)])]),_:1},8,["loading","prepend-icon"])])]),we.value?(_(),L(ke,{key:0,type:"error",variant:"tonal",border:"start",class:"studio-screen__alert"},{default:T(()=>[N(x(we.value),1)]),_:1})):j("",!0),gt.value?(_(),L(ke,{key:1,type:l(U)?"error":"info",variant:"tonal",border:"start",class:"studio-screen__alert"},{default:T(()=>[c("div",kn,[c("span",null,x(l(U)||l(me)),1),l(U)&&l(de)?(_(),Q("pre",An,x(l(de)),1)):j("",!0)])]),_:1},8,["type"])):j("",!0),Pe.value?(_(),L(ye,{key:2,rounded:"lg",border:"",class:"doctor-status__quiet"},{default:T(()=>[c("div",{class:ce(["doctor-status__quiet-icon",`doctor-status__quiet-icon--${Se.value.state}`])},[B(Ae,{icon:kt.value,color:Se.value.color,size:"40"},null,8,["icon","color"])],2),c("div",Tn,[c("h2",Rn,x(St.value),1),c("p",xn,x(ht.value),1)]),B(Ce,{"model-value":je.value,color:Se.value.color,height:"8",indeterminate:bt.value,rounded:""},null,8,["model-value","color","indeterminate"])]),_:1})):j("",!0),be.value&&Z.value&&!V.value?(_(),L(Ce,{key:3,color:"primary",height:"6",indeterminate:"",rounded:""})):j("",!0),V.value&&be.value?(_(),Q("section",{key:4,class:ce(["doctor-status",e.doctorClass,"d-flex","flex-column","ga-2"])},[B(ye,{rounded:"lg",border:"",class:ce(["doctor-status__summary",`doctor-status__summary--${te.value.state}`])},{default:T(()=>[c("div",In,[c("div",{class:ce(["doctor-status__summary-icon",`doctor-status__summary-icon--${te.value.state}`])},[B(Ae,{icon:Ne.value,color:te.value.color,size:"32"},null,8,["icon","color"])],2),c("div",null,[c("h2",wn,x(te.value.title),1),c("p",$n,x(te.value.progressText),1),B(Ce,{"model-value":je.value,color:te.value.color,height:"8",indeterminate:te.value.progressIndeterminate,rounded:""},null,8,["model-value","color","indeterminate"])])])]),_:1},8,["class"]),B(Ka,{"action-in-flight":l(P),checks:l(z),"repair-command-preview":l(st),"repair-requires-input":l(ct),"visible-check-repairs":l(pt),onConfirmRepair:ae[0]||(ae[0]=ne=>l(R)(ne.check,ne.repair)),onRunRepair:l(ft)},null,8,["action-in-flight","checks","repair-command-preview","repair-requires-input","visible-check-repairs","onRunRepair"])],2)):j("",!0),B(Za,{modelValue:l(xe),"onUpdate:modelValue":ae[1]||(ae[1]=ne=>Ve(xe)?xe.value=ne:null),values:l(Ie),"onUpdate:values":ae[2]||(ae[2]=ne=>Ve(Ie)?Ie.value=ne:null),"can-run":l(a),"command-preview":l(q),fields:l(fe),running:l(dt),onRun:l(ie)},null,8,["modelValue","values","can-run","command-preview","fields","running","onRun"]),B(un,{modelValue:l(E),"onUpdate:modelValue":ae[3]||(ae[3]=ne=>Ve(E)?E.value=ne:null),"command-preview":l(O),"command-details":l(S),"copy-status":l(D),error:l(J),"selected-text":l(I),"session-id":l(G),"set-host":At,status:l(H),title:l(A),onClose:l(C),onCopySelection:l(g),onSendCtrlC:l(u)},null,8,["modelValue","command-preview","command-details","copy-status","error","selected-text","session-id","status","title","onClose","onCopySelection","onSendCtrlC"])]))}},qe=_e(En,[["__scopeId","data-v-2b4cfebf"]]),Pn={__name:"AdapterSetupDoctorScreen",emits:["select-tab"],setup(e,{emit:f}){const r=f,s=h(null),d=h(null),m=h(!1),y=h(""),t=h(!1),i=h(!0),v=b(()=>{var o,u;return m.value&&!t.value?"Checking Studio Setup and Accounts before Adapter Setup runs.":(o=d.value)!=null&&o.ready?`Adapter Setup is ready for: ${d.value.targetRoot||"current directory"}`:`Checking Adapter Setup for: ${((u=d.value)==null?void 0:u.targetRoot)||"current directory"}`});async function C({autoStart:o=!0,refresh:u=!1}={}){var k;m.value=!0,y.value="",t.value=!1,i.value=o;try{if(s.value=await Ue(),((k=s.value)==null?void 0:k.ready)!==!0){r("select-tab","studio-setup");return}const S=await rt();if((S==null?void 0:S.ready)!==!0){r("select-tab","accounts");return}if(u&&typeof EventSource!="function"){d.value=await lt({refresh:!0});return}t.value=!0}catch(S){y.value=String((S==null?void 0:S.message)||S||"Adapter Setup check failed.")}finally{m.value=!1}}function g(o){d.value=o}return Re(()=>{C()}),(o,u)=>(_(),L(qe,{title:"Adapter Setup",lede:v.value,status:d.value,loading:m.value,error:y.value,"stream-enabled":t.value,"auto-repair-enabled":"","stream-auto-start":i.value,"stream-endpoint":l(jt),"terminal-endpoint":l(Ft),"blocked-label":"Adapter Setup blocked","ready-label":"Adapter Setup ready","blocked-title":"Adapter Setup blocked","ready-title":"Adapter Setup ready","quiet-title":"Checking project access","quiet-lede":"Vibe64 is checking Git, GitHub, and project access before it starts working.","continue-label":"Continue to Project Setup","continue-emits":"","doctor-class":"adapter-setup-doctor",onContinue:u[0]||(u[0]=k=>r("select-tab","project-setup")),onRefresh:C,onStatusUpdated:g},null,8,["lede","status","loading","error","stream-enabled","stream-auto-start","stream-endpoint","terminal-endpoint"]))}},Vn={__name:"ProjectSetupDoctorScreen",emits:["select-tab"],setup(e,{emit:f}){const r=f,s=h(null),d=h(!1),m=h(""),y=h(!1),t=h(!0),i=b(()=>{var g,o;return d.value&&!y.value?"Checking Studio Setup, Accounts, and Adapter Setup before Project Setup runs.":(g=s.value)!=null&&g.ready?`Project Setup is ready for: ${s.value.targetRoot||"current directory"}`:`Checking Project Setup for: ${((o=s.value)==null?void 0:o.targetRoot)||"current directory"}`});async function v({autoStart:g=!0,refresh:o=!1}={}){d.value=!0,m.value="",y.value=!1,t.value=g;try{const u=await Ue();if((u==null?void 0:u.ready)!==!0){r("select-tab","studio-setup");return}const k=await rt();if((k==null?void 0:k.ready)!==!0){r("select-tab","accounts");return}const S=await lt();if((S==null?void 0:S.ready)!==!0){r("select-tab","adapter-setup");return}if(o&&typeof EventSource!="function"){s.value=await Ht({refresh:!0});return}y.value=!0}catch(u){m.value=String((u==null?void 0:u.message)||u||"Project Setup check failed.")}finally{d.value=!1}}function C(g){s.value=g}return Re(()=>{v()}),(g,o)=>(_(),L(qe,{title:"Project Setup",lede:i.value,status:s.value,"status-items-key":"stages",loading:d.value,error:m.value,"stream-enabled":y.value,"auto-repair-enabled":"","stream-auto-start":t.value,"stream-endpoint":l(Mt),"terminal-endpoint":l(Nt),"blocked-label":"Project Setup blocked","ready-label":"Project Setup ready","blocked-title":"Project Setup blocked","ready-title":"Project Setup ready","quiet-title":"Preparing your project","quiet-lede":"Vibe64 is creating the starter files, installing dependencies, and checking the project before Autopilot starts.","continue-label":"Continue to home","continue-to":"/home","doctor-class":"project-setup-doctor","always-repair-check-ids":["dependencies"],onRefresh:v,onStatusUpdated:C},null,8,["lede","status","loading","error","stream-enabled","stream-auto-start","stream-endpoint","terminal-endpoint"]))}},Ln={__name:"StudioSetupDoctorScreen",emits:["select-tab"],setup(e,{emit:f}){const r=f,s=h(null),d=h(!1),m=h(""),y=h(!1),t=b(()=>{var C;return(C=s.value)!=null&&C.ready?"Machine runtime is ready. Continue to connect Codex and GitHub.":"Machine runtime must be ready before Studio can operate on the target project."});async function i({refresh:C=!1}={}){d.value=!0,m.value="";try{s.value=await Ue({refresh:C})}catch(g){m.value=String((g==null?void 0:g.message)||g||"Studio Setup check failed.")}finally{d.value=!1}}function v(C){s.value=C}return Re(()=>{y.value=!0}),(C,g)=>(_(),L(qe,{title:"Studio Setup",lede:t.value,status:s.value,loading:d.value,error:m.value,"stream-enabled":"","auto-repair-enabled":"","stream-endpoint":l(zt),"stream-auto-start":y.value,"terminal-endpoint":l(Gt),"blocked-label":"Studio Setup blocked","ready-label":"Studio Setup ready","blocked-title":"Studio Setup blocked","ready-title":"Studio Setup ready","quiet-title":"Checking your machine","quiet-lede":"Vibe64 is checking Docker and local tools before it starts.","continue-label":"Continue to Accounts","continue-emits":"",onContinue:g[0]||(g[0]=o=>r("select-tab","accounts")),onRefresh:i,onStatusUpdated:v},null,8,["lede","status","loading","error","stream-endpoint","stream-auto-start","terminal-endpoint"]))}},On={class:"setup","aria-labelledby":"setup-title"},Dn={class:"setup__tabs"},Un=["id","aria-labelledby"],it={__name:"setup",setup(e){const f=[{label:"Studio Setup",value:"studio-setup"},{label:"Accounts",value:"accounts"},{label:"Adapter Setup",value:"adapter-setup"},{label:"Project Setup",value:"project-setup"}],r=new Set(f.map(o=>o.value)),s=Et(),d=Pt();function m(o){return typeof o=="string"&&r.has(o)?o:""}function y(){return"studio-setup"}const t=b(()=>m(s.query.tab)||y());function i(o){return`setup-tab-${o}`}function v(o){return`setup-panel-${o}`}function C(o){return{path:"/setup",query:{...s.query,tab:o}}}function g(o,{replace:u=!1}={}){const k=m(o)||"studio-setup";if(!(s.path==="/setup"&&s.query.tab===k))return u?d.replace(C(k)):d.push(C(k))}return Te(()=>s.query.tab,o=>{m(o)||g(y(),{replace:!0})},{immediate:!0}),(o,u)=>(_(),L(Vt,null,{default:T(()=>[c("section",On,[u[1]||(u[1]=c("header",{class:"setup__header"},[c("p",{class:"setup__eyebrow"},"Studio readiness"),c("h1",{id:"setup-title",class:"setup__title"},"Setup")],-1)),B(Jt,null,{default:T(()=>[c("div",Dn,[B(ea,{"model-value":t.value,"aria-label":"Setup sections",color:"primary",density:"comfortable","show-arrows":"","onUpdate:modelValue":g},{default:T(()=>[(_(),Q(ge,null,he(f,k=>B(ta,{id:i(k.value),key:k.value,"aria-controls":v(k.value),value:k.value},{default:T(()=>[N(x(k.label),1)]),_:2},1032,["id","aria-controls","value"])),64))]),_:1},8,["model-value"])]),c("div",{id:v(t.value),class:"setup__panel",role:"tabpanel",tabindex:"0","aria-labelledby":i(t.value)},[t.value==="studio-setup"?(_(),L(Ln,{key:0,onSelectTab:g})):t.value==="accounts"?(_(),L($a,{key:1,onContinue:u[0]||(u[0]=k=>g("adapter-setup"))})):t.value==="adapter-setup"?(_(),L(Pn,{key:2,onSelectTab:g})):t.value==="project-setup"?(_(),L(Vn,{key:3,onSelectTab:g})):j("",!0)],8,Un)]),_:1})])]),_:1}))}};typeof Ge=="function"&&Ge(it);const zn=_e(it,[["__scopeId","data-v-f2d68bbd"]]);export{zn as default};
4
+ `)}function le(a){return I.value.includes(a)}function ue(a){le(a)||(I.value=[...I.value,a])}function p(a,n){if((n==null?void 0:n.autoRun)!==!0||(n==null?void 0:n.kind)!=="terminal"||!(n!=null&&n.actionId))return null;const R=pn(n);if(R===null)return null;const q=mn(a,n,R);return le(q)?null:{check:a,inputs:R,key:q,repair:n}}function P(){for(const a of Y(r))if(Qe.includes(a==null?void 0:a.status))for(const n of Je(a)){const R=p(a,n);if(R)return R}return null}function $(){const a={};for(const n of w.value)a[n.id]=String(E.value[n.id]||"").trim();return a}async function U(a,{inputs:n={},visible:R=!0,waitForExit:q=!1}={}){if(!(a!=null&&a.actionId)||typeof d!="function")return null;o.value=a.actionId;try{return await d({inputs:n,repair:a,visible:R,waitForExit:q})}finally{o.value=""}}function oe(a,n=a==null?void 0:a.repair){const R={};for(const q of Array.isArray(n==null?void 0:n.fields)?n.fields:[])R[q.id]=q.defaultValue||"";E.value=R,D.value={check:a,repair:n}}function de(){J.value||(D.value=null,E.value={})}async function me(){var R,q;if(!((q=(R=D.value)==null?void 0:R.repair)!=null&&q.actionId))return;const a=D.value.repair,n=$();D.value=null,E.value={},k.value="",S.value="",J.value=!0;try{await U(a,{inputs:n})}finally{J.value=!1}}async function ee(){if(Y(m)){Z();return}if(!Y(f)||Y(s)||Y(y)||k.value||O.value||F.value||Y(i)||o.value)return;const a=P();if(!a){S.value="";return}ue(a.key),u.value={actionId:a.repair.actionId,checkId:a.check.id,label:a.repair.label||a.repair.actionId},O.value=!0,k.value="",S.value=`Running automatic repair: ${a.repair.label||a.repair.actionId}`;try{const n=await U(a.repair,{inputs:a.inputs,visible:!1,waitForExit:!0}),R=Number.isInteger(n==null?void 0:n.exitCode)?n.exitCode:Y(C),q=(n==null?void 0:n.closeError)||Y(t)||"";((n==null?void 0:n.ok)===!1||R!==0||q)&&(k.value=[`Automatic repair failed: ${a.repair.label||a.repair.actionId}`,q||Y(v)||(Number.isInteger(R)?`Exit code ${R}.`:"")].filter(Boolean).join(" "))}finally{u.value=null,O.value=!1}}return Te(()=>[Y(f),Y(m),Y(s),Y(y),O.value,Y(i),o.value,Y(r).map(a=>`${a.id}:${a.status}`).join("|")],()=>{ee()},{immediate:!0}),{actionInFlight:o,automaticRepair:u,automaticRepairError:k,automaticRepairAvailable:M,automaticRepairLog:V,automaticRepairMessage:S,automaticRepairRunning:O,canRunConfirmedRepair:H,clearRepairMessages:Z,closeRepairDialog:de,confirmRepairAction:oe,confirmRepairCommandPreview:G,confirmRepairFields:w,displayChecks:A,executeConfirmedRepair:me,repairCommandPreview:re,repairDialogOpen:F,repairFieldValues:E,repairRequiresInput:fn,repairRunning:J,runRepair:U,visibleCheckRepairs:W}}function gn({onTerminalSettled:e=null,terminalEndpoint:f=()=>""}={}){const r=h(!1),s=h(""),d=h(null),m=h(""),y=h(""),t=h("Terminal"),i=h(""),v=h(""),C=h(""),g=h(null),o=h(""),u=h(""),k=h("");let S=null,O=null,D=null,E=null,J=null,I=null,F=null,M=0,w="",G=!1;const H=typeof e=="function"?e:()=>null;function A(a=""){return`${f()}${a}`}function V(a=null){G||(G=!0,H(a))}function Z(a){return new Promise(n=>{window.setTimeout(n,a)})}async function W(a,n){const R=String(a||"");if(!R)return!1;try{return await aa(R),k.value=`${n} copied.`,!0}catch(q){return k.value=String((q==null?void 0:q.message)||q||"Copy failed."),!1}}function re(){var a;return u.value=(a=S==null?void 0:S.hasSelection)!=null&&a.call(S)?S.getSelection():"",u.value}function le(){const a=re();F&&(window.clearTimeout(F),F=null),!(!a||a===w)&&(F=window.setTimeout(async()=>{const n=re();!n||n===w||await W(n,"Selection")&&(w=n)},250))}async function ue(){const a=re();await W(a,"Selection")&&(w=a)}function p(){var a,n,R;I&&(window.clearInterval(I),I=null),F&&(window.clearTimeout(F),F=null),(a=D==null?void 0:D.dispose)==null||a.call(D),D=null,(n=E==null?void 0:E.dispose)==null||n.call(E),E=null,J&&(window.removeEventListener("resize",J),J=null),(R=S==null?void 0:S.dispose)==null||R.call(S),S=null,O=null,u.value="",M=0,w=""}async function P(){if(await wt(),p(),!d.value)throw new Error("Terminal view is not ready yet.");S=new na({convertEol:!0,cursorBlink:!0,fontFamily:"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace",fontSize:13,theme:{background:"#111318",foreground:"#f4f6fb"}}),O=new ra,S.loadAddon(O),S.open(d.value),O.fit(),D=S.onData(a=>{oe(a)}),E=S.onSelectionChange(()=>{le()}),J=()=>{O==null||O.fit()},window.addEventListener("resize",J)}function $(a){if(!S)return;const n=String(a||"");n.length<M&&(M=0,S.reset());const R=n.slice(M);R&&(S.write(R),M=n.length)}async function U(){var a;if(m.value)try{const n=await se.get(A(`/${encodeURIComponent(m.value)}`));return C.value=n.closeError||"",g.value=Number.isInteger(n.exitCode)?n.exitCode:null,o.value=n.output||"",y.value=n.status||"",i.value=n.commandPreview||i.value,v.value=((a=n.metadata)==null?void 0:a.commandDetails)||v.value,$(n.output),n.status==="exited"&&(I&&(window.clearInterval(I),I=null),V(n)),n}catch(n){return s.value=String((n==null?void 0:n.message)||n||"Terminal polling failed."),null}}async function oe(a){if(!(!m.value||y.value==="exited"))try{await se.post(A(`/${encodeURIComponent(m.value)}/input`),{data:a})}catch(n){s.value=String((n==null?void 0:n.message)||n||"Terminal input failed.")}}async function de(){await oe("")}async function me({inputs:a={},repair:n,visible:R=!0,waitForExit:q=!1}){var fe;r.value=R,s.value="",C.value="",k.value="",g.value=null,o.value="",u.value="",w="",G=!1,t.value=(n==null?void 0:n.label)||"Terminal",i.value=(n==null?void 0:n.commandPreview)||"",v.value="",m.value="",y.value="starting",p();try{R&&await P();const z=await se.post(f(),{actionId:n.actionId,inputs:a});if(z.ok===!1)throw new Error(z.error||"Terminal start failed.");if(m.value=z.id||"",y.value=z.status||"running",i.value=z.commandPreview||i.value,v.value=((fe=z.metadata)==null?void 0:fe.commandDetails)||v.value,C.value=z.closeError||"",g.value=Number.isInteger(z.exitCode)?z.exitCode:null,o.value=z.output||"",$(z.output),q){let ie=z;for(;m.value&&(ie==null?void 0:ie.status)!=="exited"&&(await Z(750),ie=await U(),!!ie););return ie||z}return I=window.setInterval(()=>{U()},750),await U(),z}catch(z){return s.value=String((z==null?void 0:z.message)||z||"Terminal start failed."),{error:s.value,ok:!1}}}async function ee(){const a=m.value;r.value=!1,m.value="",y.value="",a&&await se.delete(A(`/${encodeURIComponent(a)}`)).catch(()=>null),p(),V()}return Oe(()=>{p()}),{closeTerminal:ee,copyTerminalSelection:ue,openTerminal:me,sendCtrlC:de,terminalCloseError:C,terminalCommandDetails:v,terminalCommandPreview:i,terminalCopyStatus:k,terminalDialogOpen:r,terminalError:s,terminalExitCode:g,terminalHost:d,terminalOutput:o,terminalSelectedText:u,terminalSessionId:m,terminalStatus:y,terminalTitle:t}}function Le({checking:e,passedCheckCount:f,requiredCheckCount:r}){return r?`${f} of ${r} required checks ${e?"have passed so far":"are ready"}.`:e?"Checks are starting.":"No required checks were reported."}function yn({blockedLabel:e="Blocked",blockedTitle:f="Blocked",checkingLabel:r="Checking",checkingTitle:s="Checking",isLoading:d=!1,passedCheckCount:m=0,ready:y=!1,readyLabel:t="Ready",readyTitle:i="Ready",requiredCheckCount:v=0}={}){return d?{color:"primary",label:r,progressIndeterminate:v===0,progressText:Le({checking:!0,passedCheckCount:m,requiredCheckCount:v}),state:"checking",title:s}:y?{color:"success",label:t,progressIndeterminate:!1,progressText:Le({checking:!1,passedCheckCount:m,requiredCheckCount:v}),state:"pass",title:i}:{color:"error",label:e,progressIndeterminate:!1,progressText:Le({checking:!1,passedCheckCount:m,requiredCheckCount:v}),state:"fail",title:f}}const _n={class:"generated-ui-screen generated-ui-screen--studio studio-screen d-flex flex-column ga-3"},bn={class:"studio-screen__header d-flex flex-column flex-md-row ga-3 align-md-end justify-space-between"},Sn={class:"studio-screen__title"},hn={class:"text-body-2 text-medium-emphasis mb-0 studio-screen__lede"},Cn={class:"d-flex ga-2 align-center flex-wrap"},kn={class:"d-flex flex-column ga-2"},An={key:0,class:"doctor-status__command mb-0"},Tn={class:"doctor-status__quiet-copy"},Rn={class:"doctor-status__quiet-title"},xn={class:"doctor-status__quiet-message"},wn={class:"doctor-status__summary-main"},In={class:"text-subtitle-1 mb-1"},$n={class:"text-body-2 text-medium-emphasis mb-2"},En={__name:"DoctorStatusPage",props:{alwaysRepairCheckIds:{type:Array,default:()=>[]},autoRepairEnabled:{type:Boolean,default:!1},blockedLabel:{type:String,default:"Blocked"},blockedTitle:{type:String,default:"Blocked"},continueLabel:{type:String,default:"Continue"},continueTo:{type:String,default:""},continueEmits:{type:Boolean,default:!1},doctorClass:{type:String,default:""},error:{type:String,default:""},lede:{type:String,default:""},loading:{type:Boolean,default:!1},readyLabel:{type:String,default:"Ready"},readyTitle:{type:String,default:"Ready"},quiet:{type:Boolean,default:!0},quietLede:{type:String,default:"Vibe64 is checking the project and preparing anything it can handle automatically."},quietTitle:{type:String,default:"Getting things ready"},status:{type:Object,default:null},statusItemsKey:{type:String,default:"checks"},streamEnabled:{type:Boolean,default:!1},streamEndpoint:{type:String,default:""},streamAutoStart:{type:Boolean,default:!0},terminalEndpoint:{type:String,required:!0},title:{type:String,required:!0}},emits:["continue","refresh","status-updated"],setup(e,{emit:f}){const r=e,s=f,d=h(!1),{liveStatus:m,refreshDoctorStatus:y,streamError:t,streamOperation:i,streamRunning:v}=cn({onRefresh(K={}){s("refresh",K)},onStatusUpdated(K){s("status-updated",K)},status:()=>r.status,statusItemsKey:()=>r.statusItemsKey,streamAutoStart:()=>r.streamAutoStart,streamEnabled:()=>r.streamEnabled,streamEndpoint:()=>r.streamEndpoint}),{closeTerminal:C,copyTerminalSelection:g,openTerminal:o,sendCtrlC:u,terminalCloseError:k,terminalCommandDetails:S,terminalCommandPreview:O,terminalCopyStatus:D,terminalDialogOpen:E,terminalError:J,terminalExitCode:I,terminalHost:F,terminalOutput:M,terminalSelectedText:w,terminalSessionId:G,terminalStatus:H,terminalTitle:A}=gn({onTerminalSettled(){y()},terminalEndpoint:()=>r.terminalEndpoint}),V=b(()=>m.value||r.status),Z=b(()=>r.loading||v.value),W=b(()=>{var K;return((K=V.value)==null?void 0:K.ready)===!0}),re=b(()=>!!r.continueTo||r.continueEmits);function le(){r.continueEmits&&s("continue")}function ue(){n(),y()}const p=b(()=>{var ae,ne;const K=(ae=V.value)==null?void 0:ae[r.statusItemsKey];return Array.isArray(K)?K:Array.isArray((ne=V.value)==null?void 0:ne.checks)?V.value.checks:[]}),{actionInFlight:P,automaticRepair:$,automaticRepairError:U,automaticRepairAvailable:oe,automaticRepairLog:de,automaticRepairMessage:me,automaticRepairRunning:ee,canRunConfirmedRepair:a,clearRepairMessages:n,confirmRepairAction:R,confirmRepairCommandPreview:q,confirmRepairFields:fe,displayChecks:z,executeConfirmedRepair:ie,repairCommandPreview:st,repairDialogOpen:xe,repairFieldValues:we,repairRequiresInput:ct,repairRunning:dt,runRepair:ft,visibleCheckRepairs:pt}=vn({alwaysRepairCheckIds:()=>r.alwaysRepairCheckIds,autoRepairEnabled:()=>r.autoRepairEnabled,checks:()=>p.value,isLoading:()=>Z.value,openTerminal:o,ready:()=>W.value,streamRunning:()=>v.value,terminalCloseError:()=>k.value,terminalDialogOpen:()=>E.value,terminalError:()=>J.value,terminalExitCode:()=>I.value,terminalOutput:()=>M.value}),Ie=b(()=>ee.value&&!U.value?"":r.error||t.value),ve=b(()=>{var K;return ee.value&&((K=$.value)!=null&&K.label)?`Running automatic repair: ${$.value.label}.`:i.value||""}),Be=b(()=>z.value.filter(K=>K.required!==!1)),$e=b(()=>Be.value.length),Fe=b(()=>Be.value.filter(K=>K.status==="pass").length),je=b(()=>$e.value?Math.round(Fe.value/$e.value*100):0),te=b(()=>ee.value&&$.value?{color:"primary",label:"Repairing setup",progressIndeterminate:!0,progressText:ve.value||`Studio is running ${$.value.label}. This can take a few minutes.`,state:"checking",title:$.value.label}:Z.value&&ve.value?{color:"primary",label:"Preparing setup",progressIndeterminate:!0,progressText:ve.value,state:"checking",title:"Preparing setup"}:yn({blockedLabel:r.blockedLabel,blockedTitle:r.blockedTitle,isLoading:Z.value,passedCheckCount:Fe.value,ready:W.value,readyLabel:r.readyLabel,readyTitle:r.readyTitle,requiredCheckCount:$e.value})),mt=b(()=>!!(V.value&&W.value!==!0&&te.value.state==="fail"&&!Z.value&&!ee.value&&!oe.value)),Ee=b(()=>!!(Ie.value||U.value||mt.value)),be=b(()=>r.quiet!==!0||d.value||Ee.value),Pe=b(()=>r.quiet===!0&&!be.value),vt=b(()=>r.quiet===!0&&!Ee.value),gt=b(()=>!!(U.value||be.value&&me.value)),yt=b(()=>Pe.value?r.quietTitle:r.title),_t=b(()=>Pe.value?r.quietLede:r.lede),Se=b(()=>!V.value&&!Ee.value?{color:"primary",progressIndeterminate:!0,state:"checking"}:te.value),bt=b(()=>!!(Z.value||ee.value||oe.value||Se.value.progressIndeterminate)),St=b(()=>W.value?"Ready":ee.value?"Preparing automatically":ve.value?"Preparing setup":Z.value?"Checking setup":oe.value?"Preparing automatically":"Getting things ready"),ht=b(()=>{var K;return W.value?"Everything needed for this step is ready.":ee.value&&((K=$.value)!=null&&K.label)?`Vibe64 is running ${$.value.label}.`:ve.value?ve.value:ee.value||oe.value?"Vibe64 is handling this setup step automatically.":Z.value?"Vibe64 is checking what this project needs.":"Vibe64 is getting the project ready."}),Ct=b(()=>te.value.state==="checking"),Ne=b(()=>ze(te.value.state)),kt=b(()=>ze(Se.value.state));function At(K){F.value=K}function Tt(){d.value=!d.value}return(K,ae)=>(_(),Q("section",_n,[c("header",bn,[c("div",null,[c("h1",Sn,x(yt.value),1),c("p",hn,x(_t.value),1)]),c("div",Cn,[V.value&&be.value?(_(),L(ot,{key:0,color:te.value.color,"prepend-icon":Ne.value,variant:"tonal"},{default:T(()=>[N(x(te.value.label),1)]),_:1},8,["color","prepend-icon"])):j("",!0),W.value&&!Ct.value&&re.value?(_(),L(X,{key:1,color:"primary",variant:"flat",to:e.continueTo||void 0,class:"studio-screen__action-button",onClick:le},{default:T(()=>[N(x(e.continueLabel),1)]),_:1},8,["to"])):j("",!0),vt.value?(_(),L(X,{key:2,color:"primary",variant:"tonal","prepend-icon":d.value?l(It):l($t),class:"studio-screen__action-button",onClick:Tt},{default:T(()=>[N(x(d.value?"Hide details":"Show details"),1)]),_:1},8,["prepend-icon"])):j("",!0),B(X,{variant:"tonal",color:"primary",loading:Z.value||l(ee),"prepend-icon":l(Ze),class:"studio-screen__action-button",onClick:ue},{default:T(()=>[...ae[4]||(ae[4]=[N(" Refresh ",-1)])]),_:1},8,["loading","prepend-icon"])])]),Ie.value?(_(),L(ke,{key:0,type:"error",variant:"tonal",border:"start",class:"studio-screen__alert"},{default:T(()=>[N(x(Ie.value),1)]),_:1})):j("",!0),gt.value?(_(),L(ke,{key:1,type:l(U)?"error":"info",variant:"tonal",border:"start",class:"studio-screen__alert"},{default:T(()=>[c("div",kn,[c("span",null,x(l(U)||l(me)),1),l(U)&&l(de)?(_(),Q("pre",An,x(l(de)),1)):j("",!0)])]),_:1},8,["type"])):j("",!0),Pe.value?(_(),L(ye,{key:2,rounded:"lg",border:"",class:"doctor-status__quiet"},{default:T(()=>[c("div",{class:ce(["doctor-status__quiet-icon",`doctor-status__quiet-icon--${Se.value.state}`])},[B(Ae,{icon:kt.value,color:Se.value.color,size:"40"},null,8,["icon","color"])],2),c("div",Tn,[c("h2",Rn,x(St.value),1),c("p",xn,x(ht.value),1)]),B(Ce,{"model-value":je.value,color:Se.value.color,height:"8",indeterminate:bt.value,rounded:""},null,8,["model-value","color","indeterminate"])]),_:1})):j("",!0),be.value&&Z.value&&!V.value?(_(),L(Ce,{key:3,color:"primary",height:"6",indeterminate:"",rounded:""})):j("",!0),V.value&&be.value?(_(),Q("section",{key:4,class:ce(["doctor-status",e.doctorClass,"d-flex","flex-column","ga-2"])},[B(ye,{rounded:"lg",border:"",class:ce(["doctor-status__summary",`doctor-status__summary--${te.value.state}`])},{default:T(()=>[c("div",wn,[c("div",{class:ce(["doctor-status__summary-icon",`doctor-status__summary-icon--${te.value.state}`])},[B(Ae,{icon:Ne.value,color:te.value.color,size:"32"},null,8,["icon","color"])],2),c("div",null,[c("h2",In,x(te.value.title),1),c("p",$n,x(te.value.progressText),1),B(Ce,{"model-value":je.value,color:te.value.color,height:"8",indeterminate:te.value.progressIndeterminate,rounded:""},null,8,["model-value","color","indeterminate"])])])]),_:1},8,["class"]),B(Ka,{"action-in-flight":l(P),checks:l(z),"repair-command-preview":l(st),"repair-requires-input":l(ct),"visible-check-repairs":l(pt),onConfirmRepair:ae[0]||(ae[0]=ne=>l(R)(ne.check,ne.repair)),onRunRepair:l(ft)},null,8,["action-in-flight","checks","repair-command-preview","repair-requires-input","visible-check-repairs","onRunRepair"])],2)):j("",!0),B(Za,{modelValue:l(xe),"onUpdate:modelValue":ae[1]||(ae[1]=ne=>Ve(xe)?xe.value=ne:null),values:l(we),"onUpdate:values":ae[2]||(ae[2]=ne=>Ve(we)?we.value=ne:null),"can-run":l(a),"command-preview":l(q),fields:l(fe),running:l(dt),onRun:l(ie)},null,8,["modelValue","values","can-run","command-preview","fields","running","onRun"]),B(un,{modelValue:l(E),"onUpdate:modelValue":ae[3]||(ae[3]=ne=>Ve(E)?E.value=ne:null),"command-preview":l(O),"command-details":l(S),"copy-status":l(D),error:l(J),"selected-text":l(w),"session-id":l(G),"set-host":At,status:l(H),title:l(A),onClose:l(C),onCopySelection:l(g),onSendCtrlC:l(u)},null,8,["modelValue","command-preview","command-details","copy-status","error","selected-text","session-id","status","title","onClose","onCopySelection","onSendCtrlC"])]))}},qe=_e(En,[["__scopeId","data-v-2b4cfebf"]]),Pn={__name:"AdapterSetupDoctorScreen",emits:["select-tab"],setup(e,{emit:f}){const r=f,s=h(null),d=h(null),m=h(!1),y=h(""),t=h(!1),i=h(!0),v=b(()=>{var o,u;return m.value&&!t.value?"Checking Studio Setup and Accounts before Adapter Setup runs.":(o=d.value)!=null&&o.ready?`Adapter Setup is ready for: ${d.value.targetRoot||"current directory"}`:`Checking Adapter Setup for: ${((u=d.value)==null?void 0:u.targetRoot)||"current directory"}`});async function C({autoStart:o=!0,refresh:u=!1}={}){var k;m.value=!0,y.value="",t.value=!1,i.value=o;try{if(s.value=await Ue(),((k=s.value)==null?void 0:k.ready)!==!0){r("select-tab","studio-setup");return}const S=await rt();if((S==null?void 0:S.ready)!==!0){r("select-tab","accounts");return}if(u&&typeof EventSource!="function"){d.value=await lt({refresh:!0});return}t.value=!0}catch(S){y.value=String((S==null?void 0:S.message)||S||"Adapter Setup check failed.")}finally{m.value=!1}}function g(o){d.value=o}return Re(()=>{C()}),(o,u)=>(_(),L(qe,{title:"Adapter Setup",lede:v.value,status:d.value,loading:m.value,error:y.value,"stream-enabled":t.value,"auto-repair-enabled":"","stream-auto-start":i.value,"stream-endpoint":l(jt),"terminal-endpoint":l(Ft),"blocked-label":"Adapter Setup blocked","ready-label":"Adapter Setup ready","blocked-title":"Adapter Setup blocked","ready-title":"Adapter Setup ready","quiet-title":"Checking project access","quiet-lede":"Vibe64 is checking Git, GitHub, and project access before it starts working.","continue-label":"Continue to Project Setup","continue-emits":"","doctor-class":"adapter-setup-doctor",onContinue:u[0]||(u[0]=k=>r("select-tab","project-setup")),onRefresh:C,onStatusUpdated:g},null,8,["lede","status","loading","error","stream-enabled","stream-auto-start","stream-endpoint","terminal-endpoint"]))}},Vn={__name:"ProjectSetupDoctorScreen",emits:["select-tab"],setup(e,{emit:f}){const r=f,s=h(null),d=h(!1),m=h(""),y=h(!1),t=h(!0),i=b(()=>{var g,o;return d.value&&!y.value?"Checking Studio Setup, Accounts, and Adapter Setup before Project Setup runs.":(g=s.value)!=null&&g.ready?`Project Setup is ready for: ${s.value.targetRoot||"current directory"}`:`Checking Project Setup for: ${((o=s.value)==null?void 0:o.targetRoot)||"current directory"}`});async function v({autoStart:g=!0,refresh:o=!1}={}){d.value=!0,m.value="",y.value=!1,t.value=g;try{const u=await Ue();if((u==null?void 0:u.ready)!==!0){r("select-tab","studio-setup");return}const k=await rt();if((k==null?void 0:k.ready)!==!0){r("select-tab","accounts");return}const S=await lt();if((S==null?void 0:S.ready)!==!0){r("select-tab","adapter-setup");return}if(o&&typeof EventSource!="function"){s.value=await Ht({refresh:!0});return}y.value=!0}catch(u){m.value=String((u==null?void 0:u.message)||u||"Project Setup check failed.")}finally{d.value=!1}}function C(g){s.value=g}return Re(()=>{v()}),(g,o)=>(_(),L(qe,{title:"Project Setup",lede:i.value,status:s.value,"status-items-key":"stages",loading:d.value,error:m.value,"stream-enabled":y.value,"auto-repair-enabled":"","stream-auto-start":t.value,"stream-endpoint":l(Mt),"terminal-endpoint":l(Nt),"blocked-label":"Project Setup blocked","ready-label":"Project Setup ready","blocked-title":"Project Setup blocked","ready-title":"Project Setup ready","quiet-title":"Preparing your project","quiet-lede":"Vibe64 is creating the starter files, installing dependencies, and checking the project before Autopilot starts.","continue-label":"Continue to home","continue-to":"/home","doctor-class":"project-setup-doctor","always-repair-check-ids":["dependencies"],onRefresh:v,onStatusUpdated:C},null,8,["lede","status","loading","error","stream-enabled","stream-auto-start","stream-endpoint","terminal-endpoint"]))}},Ln={__name:"StudioSetupDoctorScreen",emits:["select-tab"],setup(e,{emit:f}){const r=f,s=h(null),d=h(!1),m=h(""),y=h(!1),t=b(()=>{var C;return(C=s.value)!=null&&C.ready?"Machine runtime is ready. Continue to connect Codex and GitHub.":"Machine runtime must be ready before Studio can operate on the target project."});async function i({refresh:C=!1}={}){d.value=!0,m.value="";try{s.value=await Ue({refresh:C})}catch(g){m.value=String((g==null?void 0:g.message)||g||"Studio Setup check failed.")}finally{d.value=!1}}function v(C){s.value=C}return Re(()=>{y.value=!0}),(C,g)=>(_(),L(qe,{title:"Studio Setup",lede:t.value,status:s.value,loading:d.value,error:m.value,"stream-enabled":"","auto-repair-enabled":"","stream-endpoint":l(zt),"stream-auto-start":y.value,"terminal-endpoint":l(Gt),"blocked-label":"Studio Setup blocked","ready-label":"Studio Setup ready","blocked-title":"Studio Setup blocked","ready-title":"Studio Setup ready","quiet-title":"Checking your machine","quiet-lede":"Vibe64 is checking Docker and local tools before it starts.","continue-label":"Continue to Accounts","continue-emits":"",onContinue:g[0]||(g[0]=o=>r("select-tab","accounts")),onRefresh:i,onStatusUpdated:v},null,8,["lede","status","loading","error","stream-endpoint","stream-auto-start","terminal-endpoint"]))}},On={class:"setup","aria-labelledby":"setup-title"},Dn={class:"setup__tabs"},Un=["id","aria-labelledby"],it={__name:"setup",setup(e){const f=[{label:"Studio Setup",value:"studio-setup"},{label:"Accounts",value:"accounts"},{label:"Adapter Setup",value:"adapter-setup"},{label:"Project Setup",value:"project-setup"}],r=new Set(f.map(o=>o.value)),s=Et(),d=Pt();function m(o){return typeof o=="string"&&r.has(o)?o:""}function y(){return"studio-setup"}const t=b(()=>m(s.query.tab)||y());function i(o){return`setup-tab-${o}`}function v(o){return`setup-panel-${o}`}function C(o){return{path:"/setup",query:{...s.query,tab:o}}}function g(o,{replace:u=!1}={}){const k=m(o)||"studio-setup";if(!(s.path==="/setup"&&s.query.tab===k))return u?d.replace(C(k)):d.push(C(k))}return Te(()=>s.query.tab,o=>{m(o)||g(y(),{replace:!0})},{immediate:!0}),(o,u)=>(_(),L(Vt,null,{default:T(()=>[c("section",On,[u[1]||(u[1]=c("header",{class:"setup__header"},[c("p",{class:"setup__eyebrow"},"Studio readiness"),c("h1",{id:"setup-title",class:"setup__title"},"Setup")],-1)),B(Jt,null,{default:T(()=>[c("div",Dn,[B(ea,{"model-value":t.value,"aria-label":"Setup sections",color:"primary",density:"comfortable","show-arrows":"","onUpdate:modelValue":g},{default:T(()=>[(_(),Q(ge,null,he(f,k=>B(ta,{id:i(k.value),key:k.value,"aria-controls":v(k.value),value:k.value},{default:T(()=>[N(x(k.label),1)]),_:2},1032,["id","aria-controls","value"])),64))]),_:1},8,["model-value"])]),c("div",{id:v(t.value),class:"setup__panel",role:"tabpanel",tabindex:"0","aria-labelledby":i(t.value)},[t.value==="studio-setup"?(_(),L(Ln,{key:0,onSelectTab:g})):t.value==="accounts"?(_(),L($a,{key:1,onContinue:u[0]||(u[0]=k=>g("adapter-setup"))})):t.value==="adapter-setup"?(_(),L(Pn,{key:2,onSelectTab:g})):t.value==="project-setup"?(_(),L(Vn,{key:3,onSelectTab:g})):j("",!0)],8,Un)]),_:1})])]),_:1}))}};typeof Ge=="function"&&Ge(it);const zn=_e(it,[["__scopeId","data-v-f2d68bbd"]]);export{zn as default};
@@ -1 +1 @@
1
- import{cE as n}from"./index-CY-wDjNv.js";function a(e){return typeof e=="function"?e():n(e)}function u(e){return!!a(e)}function o(e){if(typeof document>"u")return!1;const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly","readonly"),t.style.position="fixed",t.style.left="-9999px",document.body.append(t),t.select();const r=document.execCommand("copy");return t.remove(),r}async function c(e){var r;const t=String(e||"");if(!t)return!1;if(typeof navigator<"u"&&((r=navigator.clipboard)!=null&&r.writeText))return await navigator.clipboard.writeText(t),!0;if(o(t))return!0;throw new Error("Clipboard API is unavailable.")}function f(e){try{return JSON.parse((e==null?void 0:e.data)||"{}")}catch{return{}}}export{a,f as p,u as r,c as w};
1
+ import{cG as n}from"./index-DqoYKexs.js";function a(e){return typeof e=="function"?e():n(e)}function u(e){return!!a(e)}function o(e){if(typeof document>"u")return!1;const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly","readonly"),t.style.position="fixed",t.style.left="-9999px",document.body.append(t),t.select();const r=document.execCommand("copy");return t.remove(),r}async function c(e){var r;const t=String(e||"");if(!t)return!1;if(typeof navigator<"u"&&((r=navigator.clipboard)!=null&&r.writeText))return await navigator.clipboard.writeText(t),!0;if(o(t))return!0;throw new Error("Clipboard API is unavailable.")}function f(e){try{return JSON.parse((e==null?void 0:e.data)||"{}")}catch{return{}}}export{a,f as p,u as r,c as w};
@@ -1 +1 @@
1
- var zt=e=>{throw TypeError(e)};var mt=(e,t,s)=>t.has(e)||zt("Cannot "+s);var i=(e,t,s)=>(mt(e,t,"read from private field"),s?s.call(e):t.get(e)),y=(e,t,s)=>t.has(e)?zt("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,s),d=(e,t,s,n)=>(mt(e,t,"write to private field"),n?n.call(e,s):t.set(e,s),s),p=(e,t,s)=>(mt(e,t,"access private method"),s);import{g as Xt,c2 as Bt,ci as w,cq as pt,cm as rt,bM as me,ab as kt,ay as xt,cy as ve,cz as ft,ae as Ee,ac as Oe,ce as qt,bW as Zt,au as Kt,an as Re,ar as Se,av as ge,aj as Te,cr as te,c9 as ee,de as G,c0 as se,cs as ne,ca as ie,Y as E,cC as re,cu as vt,cF as Et,W as oe,R as ae,d as ue,a5 as Ie,cE as B,bU as Ot,cY as Ce,cw as st,cx as ct}from"./index-CY-wDjNv.js";var C,c,at,S,q,X,N,Q,ut,Z,tt,K,$,F,et,f,it,Rt,St,gt,Tt,It,Ct,Pt,ce,Yt,Pe=(Yt=class extends Xt{constructor(t,s){super();y(this,f);y(this,C);y(this,c);y(this,at);y(this,S);y(this,q);y(this,X);y(this,N);y(this,Q);y(this,ut);y(this,Z);y(this,tt);y(this,K);y(this,$);y(this,F);y(this,et,new Set);this.options=s,d(this,C,t),d(this,Q,null),d(this,N,Bt()),this.bindMethods(),this.setOptions(s)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(i(this,c).addObserver(this),$t(i(this,c),this.options)?p(this,f,it).call(this):this.updateResult(),p(this,f,Tt).call(this))}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return _t(i(this,c),this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return _t(i(this,c),this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,p(this,f,It).call(this),p(this,f,Ct).call(this),i(this,c).removeObserver(this)}setOptions(t){const s=this.options,n=i(this,c);if(this.options=i(this,C).defaultQueryOptions(t),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof w(this.options.enabled,i(this,c))!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");p(this,f,Pt).call(this),i(this,c).setOptions(this.options),s._defaulted&&!pt(this.options,s)&&i(this,C).getQueryCache().notify({type:"observerOptionsUpdated",query:i(this,c),observer:this});const r=this.hasListeners();r&&Vt(i(this,c),n,this.options,s)&&p(this,f,it).call(this),this.updateResult(),r&&(i(this,c)!==n||w(this.options.enabled,i(this,c))!==w(s.enabled,i(this,c))||rt(this.options.staleTime,i(this,c))!==rt(s.staleTime,i(this,c)))&&p(this,f,Rt).call(this);const o=p(this,f,St).call(this);r&&(i(this,c)!==n||w(this.options.enabled,i(this,c))!==w(s.enabled,i(this,c))||o!==i(this,F))&&p(this,f,gt).call(this,o)}getOptimisticResult(t){const s=i(this,C).getQueryCache().build(i(this,C),t),n=this.createResult(s,t);return we(this,n)&&(d(this,S,n),d(this,X,this.options),d(this,q,i(this,c).state)),n}getCurrentResult(){return i(this,S)}trackResult(t,s){return new Proxy(t,{get:(n,r)=>(this.trackProp(r),s==null||s(r),r==="promise"&&(this.trackProp("data"),!this.options.experimental_prefetchInRender&&i(this,N).status==="pending"&&i(this,N).reject(new Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(n,r))})}trackProp(t){i(this,et).add(t)}getCurrentQuery(){return i(this,c)}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){const s=i(this,C).defaultQueryOptions(t),n=i(this,C).getQueryCache().build(i(this,C),s);return n.fetch().then(()=>this.createResult(n,s))}fetch(t){return p(this,f,it).call(this,{...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),i(this,S)))}createResult(t,s){var lt;const n=i(this,c),r=this.options,o=i(this,S),h=i(this,q),b=i(this,X),O=t!==n?t.state:i(this,at),{state:u}=t;let l={...u},g=!1,a;if(s._optimisticResults){const I=this.hasListeners(),x=!I&&$t(t,s),J=I&&Vt(t,n,s,r);(x||J)&&(l={...l,...Oe(u.data,t.options)}),s._optimisticResults==="isRestoring"&&(l.fetchStatus="idle")}let{error:R,errorUpdatedAt:T,status:m}=l;a=l.data;let k=!1;if(s.placeholderData!==void 0&&a===void 0&&m==="pending"){let I;o!=null&&o.isPlaceholderData&&s.placeholderData===(b==null?void 0:b.placeholderData)?(I=o.data,k=!0):I=typeof s.placeholderData=="function"?s.placeholderData((lt=i(this,tt))==null?void 0:lt.state.data,i(this,tt)):s.placeholderData,I!==void 0&&(m="success",a=qt(o==null?void 0:o.data,I,s),g=!0)}if(s.select&&a!==void 0&&!k)if(o&&a===(h==null?void 0:h.data)&&s.select===i(this,ut))a=i(this,Z);else try{d(this,ut,s.select),a=s.select(a),a=qt(o==null?void 0:o.data,a,s),d(this,Z,a),d(this,Q,null)}catch(I){d(this,Q,I)}i(this,Q)&&(R=i(this,Q),a=i(this,Z),T=Date.now(),m="error");const A=l.fetchStatus==="fetching",V=m==="pending",nt=m==="error",H=V&&A,W=a!==void 0,U={status:m,fetchStatus:l.fetchStatus,isPending:V,isSuccess:m==="success",isError:nt,isInitialLoading:H,isLoading:H,data:a,dataUpdatedAt:l.dataUpdatedAt,error:R,errorUpdatedAt:T,failureCount:l.fetchFailureCount,failureReason:l.fetchFailureReason,errorUpdateCount:l.errorUpdateCount,isFetched:t.isFetched(),isFetchedAfterMount:l.dataUpdateCount>O.dataUpdateCount||l.errorUpdateCount>O.errorUpdateCount,isFetching:A,isRefetching:A&&!V,isLoadingError:nt&&!W,isPaused:l.fetchStatus==="paused",isPlaceholderData:g,isRefetchError:nt&&W,isStale:jt(t,s),refetch:this.refetch,promise:i(this,N),isEnabled:w(s.enabled,t)!==!1};if(this.options.experimental_prefetchInRender){const I=U.data!==void 0,x=U.status==="error"&&!I,J=_=>{x?_.reject(U.error):I&&_.resolve(U.data)},ht=()=>{const _=d(this,N,U.promise=Bt());J(_)},j=i(this,N);switch(j.status){case"pending":t.queryHash===n.queryHash&&J(j);break;case"fulfilled":(x||U.data!==j.value)&&ht();break;case"rejected":(!x||U.error!==j.reason)&&ht();break}}return U}updateResult(){const t=i(this,S),s=this.createResult(i(this,c),this.options);if(d(this,q,i(this,c).state),d(this,X,this.options),i(this,q).data!==void 0&&d(this,tt,i(this,c)),pt(s,t))return;d(this,S,s);const n=()=>{if(!t)return!0;const{notifyOnChangeProps:r}=this.options,o=typeof r=="function"?r():r;if(o==="all"||!o&&!i(this,et).size)return!0;const h=new Set(o??i(this,et));return this.options.throwOnError&&h.add("error"),Object.keys(i(this,S)).some(b=>{const v=b;return i(this,S)[v]!==t[v]&&h.has(v)})};p(this,f,ce).call(this,{listeners:n()})}onQueryUpdate(){this.updateResult(),this.hasListeners()&&p(this,f,Tt).call(this)}},C=new WeakMap,c=new WeakMap,at=new WeakMap,S=new WeakMap,q=new WeakMap,X=new WeakMap,N=new WeakMap,Q=new WeakMap,ut=new WeakMap,Z=new WeakMap,tt=new WeakMap,K=new WeakMap,$=new WeakMap,F=new WeakMap,et=new WeakMap,f=new WeakSet,it=function(t){p(this,f,Pt).call(this);let s=i(this,c).fetch(this.options,t);return t!=null&&t.throwOnError||(s=s.catch(me)),s},Rt=function(){p(this,f,It).call(this);const t=rt(this.options.staleTime,i(this,c));if(kt.isServer()||i(this,S).isStale||!xt(t))return;const n=ve(i(this,S).dataUpdatedAt,t)+1;d(this,K,ft.setTimeout(()=>{i(this,S).isStale||this.updateResult()},n))},St=function(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(i(this,c)):this.options.refetchInterval)??!1},gt=function(t){p(this,f,Ct).call(this),d(this,F,t),!(kt.isServer()||w(this.options.enabled,i(this,c))===!1||!xt(i(this,F))||i(this,F)===0)&&d(this,$,ft.setInterval(()=>{(this.options.refetchIntervalInBackground||Ee.isFocused())&&p(this,f,it).call(this)},i(this,F)))},Tt=function(){p(this,f,Rt).call(this),p(this,f,gt).call(this,p(this,f,St).call(this))},It=function(){i(this,K)!==void 0&&(ft.clearTimeout(i(this,K)),d(this,K,void 0))},Ct=function(){i(this,$)!==void 0&&(ft.clearInterval(i(this,$)),d(this,$,void 0))},Pt=function(){const t=i(this,C).getQueryCache().build(i(this,C),this.options);if(t===i(this,c))return;const s=i(this,c);d(this,c,t),d(this,at,t.state),this.hasListeners()&&(s==null||s.removeObserver(this),t.addObserver(this))},ce=function(t){Zt.batch(()=>{t.listeners&&this.listeners.forEach(s=>{s(i(this,S))}),i(this,C).getQueryCache().notify({query:i(this,c),type:"observerResultsUpdated"})})},Yt);function _e(e,t){return w(t.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status==="error"&&w(t.retryOnMount,e)===!1)}function $t(e,t){return _e(e,t)||e.state.data!==void 0&&_t(e,t,t.refetchOnMount)}function _t(e,t,s){if(w(t.enabled,e)!==!1&&rt(t.staleTime,e)!=="static"){const n=typeof s=="function"?s(e):s;return n==="always"||n!==!1&&jt(e,t)}return!1}function Vt(e,t,s,n){return(e!==t||w(n.enabled,e)===!1)&&(!s.suspense||e.state.status!=="error")&&jt(e,s)}function jt(e,t){return w(t.enabled,e)!==!1&&e.isStaleByTime(rt(t.staleTime,e))}function we(e,t){return!pt(e.getCurrentResult(),t)}var D,z,P,M,L,dt,wt,Gt,Ae=(Gt=class extends Xt{constructor(t,s){super();y(this,L);y(this,D);y(this,z);y(this,P);y(this,M);d(this,D,t),this.setOptions(s),this.bindMethods(),p(this,L,dt).call(this)}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(t){var n;const s=this.options;this.options=i(this,D).defaultMutationOptions(t),pt(this.options,s)||i(this,D).getMutationCache().notify({type:"observerOptionsUpdated",mutation:i(this,P),observer:this}),s!=null&&s.mutationKey&&this.options.mutationKey&&Kt(s.mutationKey)!==Kt(this.options.mutationKey)?this.reset():((n=i(this,P))==null?void 0:n.state.status)==="pending"&&i(this,P).setOptions(this.options)}onUnsubscribe(){var t;this.hasListeners()||(t=i(this,P))==null||t.removeObserver(this)}onMutationUpdate(t){p(this,L,dt).call(this),p(this,L,wt).call(this,t)}getCurrentResult(){return i(this,z)}reset(){var t;(t=i(this,P))==null||t.removeObserver(this),d(this,P,void 0),p(this,L,dt).call(this),p(this,L,wt).call(this)}mutate(t,s){var n;return d(this,M,s),(n=i(this,P))==null||n.removeObserver(this),d(this,P,i(this,D).getMutationCache().build(i(this,D),this.options)),i(this,P).addObserver(this),i(this,P).execute(t)}},D=new WeakMap,z=new WeakMap,P=new WeakMap,M=new WeakMap,L=new WeakSet,dt=function(){var s;const t=((s=i(this,P))==null?void 0:s.state)??Re();d(this,z,{...t,isPending:t.status==="pending",isSuccess:t.status==="success",isError:t.status==="error",isIdle:t.status==="idle",mutate:this.mutate,reset:this.reset})},wt=function(t){Zt.batch(()=>{var s,n,r,o,h,b,v,O;if(i(this,M)&&this.hasListeners()){const u=i(this,z).variables,l=i(this,z).context,g={client:i(this,D),meta:this.options.meta,mutationKey:this.options.mutationKey};if((t==null?void 0:t.type)==="success"){try{(n=(s=i(this,M)).onSuccess)==null||n.call(s,t.data,u,l,g)}catch(a){Promise.reject(a)}try{(o=(r=i(this,M)).onSettled)==null||o.call(r,t.data,null,u,l,g)}catch(a){Promise.reject(a)}}else if((t==null?void 0:t.type)==="error"){try{(b=(h=i(this,M)).onError)==null||b.call(h,t.error,u,l,g)}catch(a){Promise.reject(a)}try{(O=(v=i(this,M)).onSettled)==null||O.call(v,void 0,t.error,u,l,g)}catch(a){Promise.reject(a)}}}this.listeners.forEach(u=>{u(i(this,z))})})},Gt);function Ut(e=""){if(!Se())throw new Error("vue-query hooks can only be used inside setup() function or functions that support injection context.");const t=Te(e),s=ge(t);if(!s)throw new Error("No 'queryClient' found in Vue context, use 'VueQueryPlugin' to properly initialize the library.");return s}function je(e,t,s){const n=Ut(),r=E(()=>{var m;let a=t;typeof a=="function"&&(a=a());const R=oe(a);typeof R.enabled=="function"&&(R.enabled=R.enabled());const T=n.defaultQueryOptions(R);return T._optimisticResults=(m=n.isRestoring)!=null&&m.value?"isRestoring":"optimistic",T}),o=new e(n,r.value),h=r.value.shallow?te(o.getCurrentResult()):ee(o.getCurrentResult());let b=()=>{};n.isRestoring&&G(n.isRestoring,a=>{a||(b(),b=o.subscribe(R=>{Et(h,R)}))},{immediate:!0});const v=()=>{o.setOptions(r.value),Et(h,o.getCurrentResult())};G(r,v),se(()=>{b()});const O=(...a)=>(v(),h.refetch(...a)),u=()=>new Promise((a,R)=>{let T=()=>{};const m=()=>{if(r.value.enabled!==!1){o.setOptions(r.value);const k=o.getOptimisticResult(r.value);k.isStale?(T(),o.fetchOptimistic(r.value).then(a,A=>{vt(r.value.throwOnError,[A,o.getCurrentQuery()])?R(A):a(o.getCurrentResult())})):(T(),a(k))}};m(),T=G(r,m)});G(()=>h.error,a=>{if(h.isError&&!h.isFetching&&vt(r.value.throwOnError,[a,o.getCurrentQuery()]))throw a});const l=r.value.shallow?ne(h):ie(h),g=re(l);for(const a in h)typeof h[a]=="function"&&(g[a]=h[a]);return g.suspense=u,g.refetch=O,g}function Ue(e,t){return je(Pe,e)}function Ne(e,t){const s=Ut(),n=E(()=>{const u=typeof e=="function"?e():e;return s.defaultMutationOptions(oe(u))}),r=new Ae(s,n.value),o=n.value.shallow?te(r.getCurrentResult()):ee(r.getCurrentResult()),h=r.subscribe(u=>{Et(o,u)}),b=(u,l)=>{r.mutate(u,l).catch(()=>{})};G(n,()=>{r.setOptions(n.value)}),se(()=>{h()});const v=n.value.shallow?ne(o):ie(o),O=re(v);return G(()=>o.error,u=>{if(u&&vt(n.value.throwOnError,[u]))throw u}),{...O,mutate:b,mutateAsync:o.mutate,reset:o.reset}}const De=Object.freeze([ae,ue]);new Set(De);const ot="workspace",le="workspace_user",he=Object.freeze([ae,ue,ot,le]);new Set(he);const Me=Ie({credentials:"include",csrf:{sessionPath:"/api/session"}});function fe(e){return e===void 0?!0:typeof e=="function"?!!e():!!B(e)}function yt(e){return String(B(e)||"").trim()}const Ht=he,Le=new Set([ot,le]),Wt=Object.freeze(["auto","always","never"]);function Y(e){return!e||typeof e!="object"||Array.isArray(e)?{}:e}function ts(e){if(Array.isArray(e))return e.map(s=>String(s||"").trim()).filter(Boolean);const t=String(e||"").trim();return t?[t]:[]}function es(e,t=[]){return t.length<1?!0:e.canAny(t)}function de(e="auto"){const t=String(e||"auto").trim().toLowerCase();if(Wt.includes(t))return t;throw new TypeError(`access must be one of: ${Wt.join(", ")}. Received: ${String(e||"")||"(empty)"}`)}function ss(e="auto",{hasPermissionRequirements:t=!1}={}){const s=de(e);return s==="always"?!0:s==="never"?!1:t===!0}function ns({accessMode:e="auto",hasPermissionRequirements:t=!1,caller:s="users-web"}={}){const n=de(e);if(n==="never"&&t)throw new TypeError(`${s} cannot use access:"never" when permission requirements are configured.`);return n}function is(e,t={}){return yt(typeof e=="function"?e(t):e)}function rs(e,t={}){return typeof e=="function"?!!e(t):fe(e)}function os(e=ot){const t=String(e||ot).trim().toLowerCase();if(Ht.includes(t))return t;throw new TypeError(`ownershipFilter must be one of: ${Ht.join(", ")}. Received: ${String(e||"")||"(empty)"}`)}function Qe(e){return Le.has(e)}function as(e,{surfaceId:t="",scopeParamValue:s="",ownershipFilter:n=ot}={}){if(typeof e!="function")throw new TypeError("queryKeyFactory is required.");return Qe(n)?e(t,s,n):e(t,n)}function Fe(e){if(e==null||typeof e!="object")return null;const t=Object.prototype.hasOwnProperty.call(e,"status"),s=Object.prototype.hasOwnProperty.call(e,"statusCode");if(!t&&!s)return null;const n=Number(t?e.status:e.statusCode);return Number.isInteger(n)?n:null}function ze(e){const t=String((e==null?void 0:e.message)||"").trim();if(!t)return!1;const s=Fe(e);return s===0?!0:s!=null&&s>=400&&t===`Request failed with status ${s}.`}function Jt(e,t="",s="Request failed."){if(!e)return"";const n=String(t||"").trim(),r=String((e==null?void 0:e.message)||"").trim();return r&&!ze(e)?r:n||r||String(s||"Request failed.").trim()}function us(e,t="",s="Request failed."){const n=String(t||"").trim();if(n)return n;const r=String((e==null?void 0:e.message)||"").trim();return r||String(s||"Request failed.").trim()}function Be(e={}){if(e==null||e===!1)return{};if(typeof e!="object"||Array.isArray(e))throw new TypeError("realtime must be an object when configured.");return e}function At(e){return typeof e>"u"?!0:!!B(e)}function ke(e){const t=typeof e=="function"?e():B(e);return!Array.isArray(t)||t.length<1?[]:Array.isArray(t[0])?t.filter(s=>Array.isArray(s)&&s.length>0).map(s=>Object.freeze([...s])):[Object.freeze([...t])]}function xe({event:e="",enabled:t=!0,matches:s=null,queryKey:n=null,onEvent:r=null}={}){const o=Ut(),h=E(()=>Ot(B(e))),b=E(()=>At(t)&&!!h.value),v=Ce({event:h,enabled:b,matches:s,onEvent:async O=>{typeof r=="function"&&await r(O);const u=ke(n);for(const l of u)await o.invalidateQueries({queryKey:l})}});return Object.freeze({active:v.active})}function qe({realtime:e=null,queryKey:t=null,enabled:s=!0}={}){const n=Be(e),r=[];if(Object.hasOwn(n,"event")){const u=Ot(n.event);u&&r.push(u)}if(Object.hasOwn(n,"events")){if(!Array.isArray(n.events))throw new TypeError("realtime.events must be an array when configured.");for(const u of n.events){const l=Ot(u);!l||r.includes(l)||r.push(l)}}if(r.length<1)return null;const o=typeof n.matches=="function"?n.matches:null,h=typeof n.onEvent=="function"?n.onEvent:null,b=Object.hasOwn(n,"queryKey")?n.queryKey:t,v=E(()=>{const u=Object.hasOwn(n,"enabled")?n.enabled:!0;return At(s)&&At(u)}),O=r.map(u=>xe({event:u,enabled:v,matches:o,queryKey:b,onEvent:h}));return Object.freeze({active:E(()=>O.some(u=>{var l;return!!((l=u==null?void 0:u.active)!=null&&l.value)}))})}function Ke({query:e=null,data:t=null}={}){const s=!!B(e==null?void 0:e.isSuccess),n=B(t)!=null;return s||n}function $e(e=null,t={}){const s=e&&typeof e=="object"&&!Array.isArray(e)?e:{},n=s.meta&&typeof s.meta=="object"&&!Array.isArray(s.meta)?s.meta:{},r=n.jskit&&typeof n.jskit=="object"&&!Array.isArray(n.jskit)?n.jskit:{},o=t.jskit&&typeof t.jskit=="object"&&!Array.isArray(t.jskit)?t.jskit:{};return{...s,meta:{...n,...t,jskit:{...r,...o}}}}function Ve({method:e="GET",query:t=null,transport:s=null}={}){const n={method:String(e||"GET").toUpperCase()},r=He(t);return r&&(n.query=r),s&&typeof s=="object"&&(n.transport=s),n}function He(e=null){const t=B(e);return!t||typeof t!="object"||Array.isArray(t)?null:t}function We({method:e="PATCH",body:t=void 0,options:s=null,transport:n=null}={}){const r={method:String(e||"PATCH").toUpperCase(),...Y(s)};return t!==void 0&&(r.body=t),n&&typeof n=="object"&&(r.transport=n),r}function cs({queryKey:e,path:t="",enabled:s=!0,client:n=Me,readMethod:r="GET",writeMethod:o="PATCH",readQuery:h=null,transport:b=null,refreshOnPull:v=!1,realtime:O=null,queryOptions:u=null,mutationOptions:l=null,fallbackLoadError:g="Unable to load resource.",fallbackSaveError:a="Unable to save resource."}={}){if(!n||typeof n.request!="function")throw new TypeError("useEndpointResource requires a client with request().");const R=E(()=>yt(t)),T=E(()=>fe(s)&&!!R.value),m=Ue({queryKey:e,queryFn:()=>{const j=R.value;if(!j)throw new Error("Resource path is required.");return n.request(j,{...Ve({method:r,query:h,transport:b})})},enabled:T,...v?$e(Y(u),{jskit:{refreshOnPull:!0}}):Y(u)}),k=qe({realtime:O,queryKey:e,enabled:T}),A=Ne({mutationFn:async(j={})=>{const _=Y(j),Ft=yt(_.path||R.value);if(!Ft)throw new Error("Resource path is required.");const ye=String(_.method||o||"PATCH").toUpperCase(),be=Object.hasOwn(_,"body")?_.body:_.payload;return n.request(Ft,We({method:ye,body:be,options:_.options,transport:b}))},...Y(l)}),V=E(()=>m.data.value),nt=E(()=>Ke({query:m,data:V})),H=E(()=>!!(T.value&&m.isPending.value&&!nt.value)),W=E(()=>!!(T.value&&m.isFetching.value)),Qt=E(()=>!!(W.value&&!H.value)),U=E(()=>!!(H.value||W.value)),lt=E(()=>!!A.isPending.value),I=E(()=>Jt(m.error.value,g,"Request failed.")),x=E(()=>Jt(A.error.value,a,"Request failed."));async function J(){return m.refetch()}async function ht(j,_={}){return A.mutateAsync({...Y(_),payload:j})}return Object.freeze({query:m,mutation:A,data:V,isInitialLoading:H,isFetching:W,isRefetching:Qt,isLoading:U,isSaving:lt,loadError:I,saveError:x,realtime:k,reload:J,save:ht})}const ls="home",hs=Object.freeze({headers:Object.freeze({"csrf-token":"vibe64-local-command"})}),fs="/vibe64/accounts/auth",ds="/vibe64/project-config",ps="/vibe64/project-type",Nt=st("vibe64/accounts"),Dt=st("studio/studio-setup"),Mt=st("studio/adapter-setup"),Lt=st("studio/project-setup"),Je=st("studio/current-app"),Ye=`${Je}/setup-readiness`,pe=st("vibe64"),ys=`${pe}/project-config`,bs=`${pe}/project-type`,ms=`${Nt}/auth`,vs=`${Nt}/logout`,Es=`${Dt}/terminal`,Os=`${Mt}/terminal`,Rs=`${Lt}/terminal`,Ss=`${Dt}/stream`,gs=`${Mt}/stream`,Ts=`${Lt}/stream`;function bt(e,{refresh:t=!1}={}){return t?`${e}${e.includes("?")?"&":"?"}refresh=true`:e}function Is(e,t){return["vibe64",e,t,"project-type"]}function Cs(e,t){return["vibe64",e,t,"project-config"]}function Ps(e,t){return["vibe64",e,t,"accounts"]}async function _s(e={}){return ct.get(bt(Nt,e))}async function ws(e={}){return ct.get(bt(Dt,e))}async function As(e={}){return ct.get(bt(Mt,e))}async function js(e={}){return ct.get(bt(Lt,e))}async function Us(){return ct.get(Ye)}export{ms as A,is as B,rs as C,fe as D,es as E,as as F,yt as G,Jt as H,us as I,je as J,cs as K,hs as L,qe as M,Ut as N,Me as O,ys as P,Pe as Q,ot as R,Ss as S,fs as V,Nt as a,vs as b,gs as c,Os as d,Ts as e,Rs as f,bs as g,Es as h,ds as i,ps as j,ls as k,Ps as l,Y as m,ns as n,$e as o,de as p,os as q,ts as r,Cs as s,Is as t,_s as u,As as v,js as w,Us as x,ws as y,ss as z};
1
+ var Bt=e=>{throw TypeError(e)};var mt=(e,t,s)=>t.has(e)||Bt("Cannot "+s);var i=(e,t,s)=>(mt(e,t,"read from private field"),s?s.call(e):t.get(e)),y=(e,t,s)=>t.has(e)?Bt("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,s),d=(e,t,s,n)=>(mt(e,t,"write to private field"),n?n.call(e,s):t.set(e,s),s),p=(e,t,s)=>(mt(e,t,"access private method"),s);import{g as Xt,c5 as Ft,ck as w,cs as pt,co as rt,bP as me,ab as kt,ay as xt,cA as ve,cB as ft,ae as Ee,ac as Oe,ch as Kt,bZ as Zt,au as qt,an as Re,ar as Se,av as ge,aj as Te,ct as te,cc as ee,dg as Y,c3 as se,cu as ne,cd as ie,Y as E,cE as re,cw as vt,cH as Et,W as oe,R as ae,d as ue,a5 as Ie,cG as F,bX as Ot,c_ as Pe,cy as st,cz as ct}from"./index-DqoYKexs.js";var P,c,at,S,K,X,N,Q,ut,Z,tt,q,$,z,et,f,it,Rt,St,gt,Tt,It,Pt,Ct,ce,Gt,Ce=(Gt=class extends Xt{constructor(t,s){super();y(this,f);y(this,P);y(this,c);y(this,at);y(this,S);y(this,K);y(this,X);y(this,N);y(this,Q);y(this,ut);y(this,Z);y(this,tt);y(this,q);y(this,$);y(this,z);y(this,et,new Set);this.options=s,d(this,P,t),d(this,Q,null),d(this,N,Ft()),this.bindMethods(),this.setOptions(s)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(i(this,c).addObserver(this),$t(i(this,c),this.options)?p(this,f,it).call(this):this.updateResult(),p(this,f,Tt).call(this))}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return _t(i(this,c),this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return _t(i(this,c),this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,p(this,f,It).call(this),p(this,f,Pt).call(this),i(this,c).removeObserver(this)}setOptions(t){const s=this.options,n=i(this,c);if(this.options=i(this,P).defaultQueryOptions(t),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof w(this.options.enabled,i(this,c))!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");p(this,f,Ct).call(this),i(this,c).setOptions(this.options),s._defaulted&&!pt(this.options,s)&&i(this,P).getQueryCache().notify({type:"observerOptionsUpdated",query:i(this,c),observer:this});const r=this.hasListeners();r&&Vt(i(this,c),n,this.options,s)&&p(this,f,it).call(this),this.updateResult(),r&&(i(this,c)!==n||w(this.options.enabled,i(this,c))!==w(s.enabled,i(this,c))||rt(this.options.staleTime,i(this,c))!==rt(s.staleTime,i(this,c)))&&p(this,f,Rt).call(this);const o=p(this,f,St).call(this);r&&(i(this,c)!==n||w(this.options.enabled,i(this,c))!==w(s.enabled,i(this,c))||o!==i(this,z))&&p(this,f,gt).call(this,o)}getOptimisticResult(t){const s=i(this,P).getQueryCache().build(i(this,P),t),n=this.createResult(s,t);return we(this,n)&&(d(this,S,n),d(this,X,this.options),d(this,K,i(this,c).state)),n}getCurrentResult(){return i(this,S)}trackResult(t,s){return new Proxy(t,{get:(n,r)=>(this.trackProp(r),s==null||s(r),r==="promise"&&(this.trackProp("data"),!this.options.experimental_prefetchInRender&&i(this,N).status==="pending"&&i(this,N).reject(new Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(n,r))})}trackProp(t){i(this,et).add(t)}getCurrentQuery(){return i(this,c)}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){const s=i(this,P).defaultQueryOptions(t),n=i(this,P).getQueryCache().build(i(this,P),s);return n.fetch().then(()=>this.createResult(n,s))}fetch(t){return p(this,f,it).call(this,{...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),i(this,S)))}createResult(t,s){var lt;const n=i(this,c),r=this.options,o=i(this,S),h=i(this,K),b=i(this,X),O=t!==n?t.state:i(this,at),{state:u}=t;let l={...u},g=!1,a;if(s._optimisticResults){const I=this.hasListeners(),x=!I&&$t(t,s),J=I&&Vt(t,n,s,r);(x||J)&&(l={...l,...Oe(u.data,t.options)}),s._optimisticResults==="isRestoring"&&(l.fetchStatus="idle")}let{error:R,errorUpdatedAt:T,status:m}=l;a=l.data;let k=!1;if(s.placeholderData!==void 0&&a===void 0&&m==="pending"){let I;o!=null&&o.isPlaceholderData&&s.placeholderData===(b==null?void 0:b.placeholderData)?(I=o.data,k=!0):I=typeof s.placeholderData=="function"?s.placeholderData((lt=i(this,tt))==null?void 0:lt.state.data,i(this,tt)):s.placeholderData,I!==void 0&&(m="success",a=Kt(o==null?void 0:o.data,I,s),g=!0)}if(s.select&&a!==void 0&&!k)if(o&&a===(h==null?void 0:h.data)&&s.select===i(this,ut))a=i(this,Z);else try{d(this,ut,s.select),a=s.select(a),a=Kt(o==null?void 0:o.data,a,s),d(this,Z,a),d(this,Q,null)}catch(I){d(this,Q,I)}i(this,Q)&&(R=i(this,Q),a=i(this,Z),T=Date.now(),m="error");const A=l.fetchStatus==="fetching",V=m==="pending",nt=m==="error",H=V&&A,W=a!==void 0,U={status:m,fetchStatus:l.fetchStatus,isPending:V,isSuccess:m==="success",isError:nt,isInitialLoading:H,isLoading:H,data:a,dataUpdatedAt:l.dataUpdatedAt,error:R,errorUpdatedAt:T,failureCount:l.fetchFailureCount,failureReason:l.fetchFailureReason,errorUpdateCount:l.errorUpdateCount,isFetched:t.isFetched(),isFetchedAfterMount:l.dataUpdateCount>O.dataUpdateCount||l.errorUpdateCount>O.errorUpdateCount,isFetching:A,isRefetching:A&&!V,isLoadingError:nt&&!W,isPaused:l.fetchStatus==="paused",isPlaceholderData:g,isRefetchError:nt&&W,isStale:jt(t,s),refetch:this.refetch,promise:i(this,N),isEnabled:w(s.enabled,t)!==!1};if(this.options.experimental_prefetchInRender){const I=U.data!==void 0,x=U.status==="error"&&!I,J=_=>{x?_.reject(U.error):I&&_.resolve(U.data)},ht=()=>{const _=d(this,N,U.promise=Ft());J(_)},j=i(this,N);switch(j.status){case"pending":t.queryHash===n.queryHash&&J(j);break;case"fulfilled":(x||U.data!==j.value)&&ht();break;case"rejected":(!x||U.error!==j.reason)&&ht();break}}return U}updateResult(){const t=i(this,S),s=this.createResult(i(this,c),this.options);if(d(this,K,i(this,c).state),d(this,X,this.options),i(this,K).data!==void 0&&d(this,tt,i(this,c)),pt(s,t))return;d(this,S,s);const n=()=>{if(!t)return!0;const{notifyOnChangeProps:r}=this.options,o=typeof r=="function"?r():r;if(o==="all"||!o&&!i(this,et).size)return!0;const h=new Set(o??i(this,et));return this.options.throwOnError&&h.add("error"),Object.keys(i(this,S)).some(b=>{const v=b;return i(this,S)[v]!==t[v]&&h.has(v)})};p(this,f,ce).call(this,{listeners:n()})}onQueryUpdate(){this.updateResult(),this.hasListeners()&&p(this,f,Tt).call(this)}},P=new WeakMap,c=new WeakMap,at=new WeakMap,S=new WeakMap,K=new WeakMap,X=new WeakMap,N=new WeakMap,Q=new WeakMap,ut=new WeakMap,Z=new WeakMap,tt=new WeakMap,q=new WeakMap,$=new WeakMap,z=new WeakMap,et=new WeakMap,f=new WeakSet,it=function(t){p(this,f,Ct).call(this);let s=i(this,c).fetch(this.options,t);return t!=null&&t.throwOnError||(s=s.catch(me)),s},Rt=function(){p(this,f,It).call(this);const t=rt(this.options.staleTime,i(this,c));if(kt.isServer()||i(this,S).isStale||!xt(t))return;const n=ve(i(this,S).dataUpdatedAt,t)+1;d(this,q,ft.setTimeout(()=>{i(this,S).isStale||this.updateResult()},n))},St=function(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(i(this,c)):this.options.refetchInterval)??!1},gt=function(t){p(this,f,Pt).call(this),d(this,z,t),!(kt.isServer()||w(this.options.enabled,i(this,c))===!1||!xt(i(this,z))||i(this,z)===0)&&d(this,$,ft.setInterval(()=>{(this.options.refetchIntervalInBackground||Ee.isFocused())&&p(this,f,it).call(this)},i(this,z)))},Tt=function(){p(this,f,Rt).call(this),p(this,f,gt).call(this,p(this,f,St).call(this))},It=function(){i(this,q)!==void 0&&(ft.clearTimeout(i(this,q)),d(this,q,void 0))},Pt=function(){i(this,$)!==void 0&&(ft.clearInterval(i(this,$)),d(this,$,void 0))},Ct=function(){const t=i(this,P).getQueryCache().build(i(this,P),this.options);if(t===i(this,c))return;const s=i(this,c);d(this,c,t),d(this,at,t.state),this.hasListeners()&&(s==null||s.removeObserver(this),t.addObserver(this))},ce=function(t){Zt.batch(()=>{t.listeners&&this.listeners.forEach(s=>{s(i(this,S))}),i(this,P).getQueryCache().notify({query:i(this,c),type:"observerResultsUpdated"})})},Gt);function _e(e,t){return w(t.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status==="error"&&w(t.retryOnMount,e)===!1)}function $t(e,t){return _e(e,t)||e.state.data!==void 0&&_t(e,t,t.refetchOnMount)}function _t(e,t,s){if(w(t.enabled,e)!==!1&&rt(t.staleTime,e)!=="static"){const n=typeof s=="function"?s(e):s;return n==="always"||n!==!1&&jt(e,t)}return!1}function Vt(e,t,s,n){return(e!==t||w(n.enabled,e)===!1)&&(!s.suspense||e.state.status!=="error")&&jt(e,s)}function jt(e,t){return w(t.enabled,e)!==!1&&e.isStaleByTime(rt(t.staleTime,e))}function we(e,t){return!pt(e.getCurrentResult(),t)}var D,B,C,M,L,dt,wt,Yt,Ae=(Yt=class extends Xt{constructor(t,s){super();y(this,L);y(this,D);y(this,B);y(this,C);y(this,M);d(this,D,t),this.setOptions(s),this.bindMethods(),p(this,L,dt).call(this)}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(t){var n;const s=this.options;this.options=i(this,D).defaultMutationOptions(t),pt(this.options,s)||i(this,D).getMutationCache().notify({type:"observerOptionsUpdated",mutation:i(this,C),observer:this}),s!=null&&s.mutationKey&&this.options.mutationKey&&qt(s.mutationKey)!==qt(this.options.mutationKey)?this.reset():((n=i(this,C))==null?void 0:n.state.status)==="pending"&&i(this,C).setOptions(this.options)}onUnsubscribe(){var t;this.hasListeners()||(t=i(this,C))==null||t.removeObserver(this)}onMutationUpdate(t){p(this,L,dt).call(this),p(this,L,wt).call(this,t)}getCurrentResult(){return i(this,B)}reset(){var t;(t=i(this,C))==null||t.removeObserver(this),d(this,C,void 0),p(this,L,dt).call(this),p(this,L,wt).call(this)}mutate(t,s){var n;return d(this,M,s),(n=i(this,C))==null||n.removeObserver(this),d(this,C,i(this,D).getMutationCache().build(i(this,D),this.options)),i(this,C).addObserver(this),i(this,C).execute(t)}},D=new WeakMap,B=new WeakMap,C=new WeakMap,M=new WeakMap,L=new WeakSet,dt=function(){var s;const t=((s=i(this,C))==null?void 0:s.state)??Re();d(this,B,{...t,isPending:t.status==="pending",isSuccess:t.status==="success",isError:t.status==="error",isIdle:t.status==="idle",mutate:this.mutate,reset:this.reset})},wt=function(t){Zt.batch(()=>{var s,n,r,o,h,b,v,O;if(i(this,M)&&this.hasListeners()){const u=i(this,B).variables,l=i(this,B).context,g={client:i(this,D),meta:this.options.meta,mutationKey:this.options.mutationKey};if((t==null?void 0:t.type)==="success"){try{(n=(s=i(this,M)).onSuccess)==null||n.call(s,t.data,u,l,g)}catch(a){Promise.reject(a)}try{(o=(r=i(this,M)).onSettled)==null||o.call(r,t.data,null,u,l,g)}catch(a){Promise.reject(a)}}else if((t==null?void 0:t.type)==="error"){try{(b=(h=i(this,M)).onError)==null||b.call(h,t.error,u,l,g)}catch(a){Promise.reject(a)}try{(O=(v=i(this,M)).onSettled)==null||O.call(v,void 0,t.error,u,l,g)}catch(a){Promise.reject(a)}}}this.listeners.forEach(u=>{u(i(this,B))})})},Yt);function Ut(e=""){if(!Se())throw new Error("vue-query hooks can only be used inside setup() function or functions that support injection context.");const t=Te(e),s=ge(t);if(!s)throw new Error("No 'queryClient' found in Vue context, use 'VueQueryPlugin' to properly initialize the library.");return s}function je(e,t,s){const n=Ut(),r=E(()=>{var m;let a=t;typeof a=="function"&&(a=a());const R=oe(a);typeof R.enabled=="function"&&(R.enabled=R.enabled());const T=n.defaultQueryOptions(R);return T._optimisticResults=(m=n.isRestoring)!=null&&m.value?"isRestoring":"optimistic",T}),o=new e(n,r.value),h=r.value.shallow?te(o.getCurrentResult()):ee(o.getCurrentResult());let b=()=>{};n.isRestoring&&Y(n.isRestoring,a=>{a||(b(),b=o.subscribe(R=>{Et(h,R)}))},{immediate:!0});const v=()=>{o.setOptions(r.value),Et(h,o.getCurrentResult())};Y(r,v),se(()=>{b()});const O=(...a)=>(v(),h.refetch(...a)),u=()=>new Promise((a,R)=>{let T=()=>{};const m=()=>{if(r.value.enabled!==!1){o.setOptions(r.value);const k=o.getOptimisticResult(r.value);k.isStale?(T(),o.fetchOptimistic(r.value).then(a,A=>{vt(r.value.throwOnError,[A,o.getCurrentQuery()])?R(A):a(o.getCurrentResult())})):(T(),a(k))}};m(),T=Y(r,m)});Y(()=>h.error,a=>{if(h.isError&&!h.isFetching&&vt(r.value.throwOnError,[a,o.getCurrentQuery()]))throw a});const l=r.value.shallow?ne(h):ie(h),g=re(l);for(const a in h)typeof h[a]=="function"&&(g[a]=h[a]);return g.suspense=u,g.refetch=O,g}function Ue(e,t){return je(Ce,e)}function Ne(e,t){const s=Ut(),n=E(()=>{const u=typeof e=="function"?e():e;return s.defaultMutationOptions(oe(u))}),r=new Ae(s,n.value),o=n.value.shallow?te(r.getCurrentResult()):ee(r.getCurrentResult()),h=r.subscribe(u=>{Et(o,u)}),b=(u,l)=>{r.mutate(u,l).catch(()=>{})};Y(n,()=>{r.setOptions(n.value)}),se(()=>{h()});const v=n.value.shallow?ne(o):ie(o),O=re(v);return Y(()=>o.error,u=>{if(u&&vt(n.value.throwOnError,[u]))throw u}),{...O,mutate:b,mutateAsync:o.mutate,reset:o.reset}}const De=Object.freeze([ae,ue]);new Set(De);const ot="workspace",le="workspace_user",he=Object.freeze([ae,ue,ot,le]);new Set(he);const Me=Ie({credentials:"include",csrf:{sessionPath:"/api/session"}});function fe(e){return e===void 0?!0:typeof e=="function"?!!e():!!F(e)}function yt(e){return String(F(e)||"").trim()}const Ht=he,Le=new Set([ot,le]),Wt=Object.freeze(["auto","always","never"]);function G(e){return!e||typeof e!="object"||Array.isArray(e)?{}:e}function ts(e){if(Array.isArray(e))return e.map(s=>String(s||"").trim()).filter(Boolean);const t=String(e||"").trim();return t?[t]:[]}function es(e,t=[]){return t.length<1?!0:e.canAny(t)}function de(e="auto"){const t=String(e||"auto").trim().toLowerCase();if(Wt.includes(t))return t;throw new TypeError(`access must be one of: ${Wt.join(", ")}. Received: ${String(e||"")||"(empty)"}`)}function ss(e="auto",{hasPermissionRequirements:t=!1}={}){const s=de(e);return s==="always"?!0:s==="never"?!1:t===!0}function ns({accessMode:e="auto",hasPermissionRequirements:t=!1,caller:s="users-web"}={}){const n=de(e);if(n==="never"&&t)throw new TypeError(`${s} cannot use access:"never" when permission requirements are configured.`);return n}function is(e,t={}){return yt(typeof e=="function"?e(t):e)}function rs(e,t={}){return typeof e=="function"?!!e(t):fe(e)}function os(e=ot){const t=String(e||ot).trim().toLowerCase();if(Ht.includes(t))return t;throw new TypeError(`ownershipFilter must be one of: ${Ht.join(", ")}. Received: ${String(e||"")||"(empty)"}`)}function Qe(e){return Le.has(e)}function as(e,{surfaceId:t="",scopeParamValue:s="",ownershipFilter:n=ot}={}){if(typeof e!="function")throw new TypeError("queryKeyFactory is required.");return Qe(n)?e(t,s,n):e(t,n)}function ze(e){if(e==null||typeof e!="object")return null;const t=Object.prototype.hasOwnProperty.call(e,"status"),s=Object.prototype.hasOwnProperty.call(e,"statusCode");if(!t&&!s)return null;const n=Number(t?e.status:e.statusCode);return Number.isInteger(n)?n:null}function Be(e){const t=String((e==null?void 0:e.message)||"").trim();if(!t)return!1;const s=ze(e);return s===0?!0:s!=null&&s>=400&&t===`Request failed with status ${s}.`}function Jt(e,t="",s="Request failed."){if(!e)return"";const n=String(t||"").trim(),r=String((e==null?void 0:e.message)||"").trim();return r&&!Be(e)?r:n||r||String(s||"Request failed.").trim()}function us(e,t="",s="Request failed."){const n=String(t||"").trim();if(n)return n;const r=String((e==null?void 0:e.message)||"").trim();return r||String(s||"Request failed.").trim()}function Fe(e={}){if(e==null||e===!1)return{};if(typeof e!="object"||Array.isArray(e))throw new TypeError("realtime must be an object when configured.");return e}function At(e){return typeof e>"u"?!0:!!F(e)}function ke(e){const t=typeof e=="function"?e():F(e);return!Array.isArray(t)||t.length<1?[]:Array.isArray(t[0])?t.filter(s=>Array.isArray(s)&&s.length>0).map(s=>Object.freeze([...s])):[Object.freeze([...t])]}function xe({event:e="",enabled:t=!0,matches:s=null,queryKey:n=null,onEvent:r=null}={}){const o=Ut(),h=E(()=>Ot(F(e))),b=E(()=>At(t)&&!!h.value),v=Pe({event:h,enabled:b,matches:s,onEvent:async O=>{typeof r=="function"&&await r(O);const u=ke(n);for(const l of u)await o.invalidateQueries({queryKey:l})}});return Object.freeze({active:v.active})}function Ke({realtime:e=null,queryKey:t=null,enabled:s=!0}={}){const n=Fe(e),r=[];if(Object.hasOwn(n,"event")){const u=Ot(n.event);u&&r.push(u)}if(Object.hasOwn(n,"events")){if(!Array.isArray(n.events))throw new TypeError("realtime.events must be an array when configured.");for(const u of n.events){const l=Ot(u);!l||r.includes(l)||r.push(l)}}if(r.length<1)return null;const o=typeof n.matches=="function"?n.matches:null,h=typeof n.onEvent=="function"?n.onEvent:null,b=Object.hasOwn(n,"queryKey")?n.queryKey:t,v=E(()=>{const u=Object.hasOwn(n,"enabled")?n.enabled:!0;return At(s)&&At(u)}),O=r.map(u=>xe({event:u,enabled:v,matches:o,queryKey:b,onEvent:h}));return Object.freeze({active:E(()=>O.some(u=>{var l;return!!((l=u==null?void 0:u.active)!=null&&l.value)}))})}function qe({query:e=null,data:t=null}={}){const s=!!F(e==null?void 0:e.isSuccess),n=F(t)!=null;return s||n}function $e(e=null,t={}){const s=e&&typeof e=="object"&&!Array.isArray(e)?e:{},n=s.meta&&typeof s.meta=="object"&&!Array.isArray(s.meta)?s.meta:{},r=n.jskit&&typeof n.jskit=="object"&&!Array.isArray(n.jskit)?n.jskit:{},o=t.jskit&&typeof t.jskit=="object"&&!Array.isArray(t.jskit)?t.jskit:{};return{...s,meta:{...n,...t,jskit:{...r,...o}}}}function Ve({method:e="GET",query:t=null,transport:s=null}={}){const n={method:String(e||"GET").toUpperCase()},r=He(t);return r&&(n.query=r),s&&typeof s=="object"&&(n.transport=s),n}function He(e=null){const t=F(e);return!t||typeof t!="object"||Array.isArray(t)?null:t}function We({method:e="PATCH",body:t=void 0,options:s=null,transport:n=null}={}){const r={method:String(e||"PATCH").toUpperCase(),...G(s)};return t!==void 0&&(r.body=t),n&&typeof n=="object"&&(r.transport=n),r}function cs({queryKey:e,path:t="",enabled:s=!0,client:n=Me,readMethod:r="GET",writeMethod:o="PATCH",readQuery:h=null,transport:b=null,refreshOnPull:v=!1,realtime:O=null,queryOptions:u=null,mutationOptions:l=null,fallbackLoadError:g="Unable to load resource.",fallbackSaveError:a="Unable to save resource."}={}){if(!n||typeof n.request!="function")throw new TypeError("useEndpointResource requires a client with request().");const R=E(()=>yt(t)),T=E(()=>fe(s)&&!!R.value),m=Ue({queryKey:e,queryFn:()=>{const j=R.value;if(!j)throw new Error("Resource path is required.");return n.request(j,{...Ve({method:r,query:h,transport:b})})},enabled:T,...v?$e(G(u),{jskit:{refreshOnPull:!0}}):G(u)}),k=Ke({realtime:O,queryKey:e,enabled:T}),A=Ne({mutationFn:async(j={})=>{const _=G(j),zt=yt(_.path||R.value);if(!zt)throw new Error("Resource path is required.");const ye=String(_.method||o||"PATCH").toUpperCase(),be=Object.hasOwn(_,"body")?_.body:_.payload;return n.request(zt,We({method:ye,body:be,options:_.options,transport:b}))},...G(l)}),V=E(()=>m.data.value),nt=E(()=>qe({query:m,data:V})),H=E(()=>!!(T.value&&m.isPending.value&&!nt.value)),W=E(()=>!!(T.value&&m.isFetching.value)),Qt=E(()=>!!(W.value&&!H.value)),U=E(()=>!!(H.value||W.value)),lt=E(()=>!!A.isPending.value),I=E(()=>Jt(m.error.value,g,"Request failed.")),x=E(()=>Jt(A.error.value,a,"Request failed."));async function J(){return m.refetch()}async function ht(j,_={}){return A.mutateAsync({...G(_),payload:j})}return Object.freeze({query:m,mutation:A,data:V,isInitialLoading:H,isFetching:W,isRefetching:Qt,isLoading:U,isSaving:lt,loadError:I,saveError:x,realtime:k,reload:J,save:ht})}const ls="home",hs=Object.freeze({headers:Object.freeze({"csrf-token":"vibe64-local-command"})}),fs="/vibe64/accounts/auth",ds="/vibe64/project-config",ps="/vibe64/project-type",Nt=st("vibe64/accounts"),Dt=st("studio/studio-setup"),Mt=st("studio/adapter-setup"),Lt=st("studio/project-setup"),Je=st("studio/current-app"),Ge=`${Je}/setup-readiness`,pe=st("vibe64"),ys=`${pe}/project-config`,bs=`${pe}/project-type`,ms=`${Nt}/auth`,vs=`${Nt}/logout`,Es=`${Dt}/terminal`,Os=`${Mt}/terminal`,Rs=`${Lt}/terminal`,Ss=`${Dt}/stream`,gs=`${Mt}/stream`,Ts=`${Lt}/stream`;function bt(e,{refresh:t=!1}={}){return t?`${e}${e.includes("?")?"&":"?"}refresh=true`:e}function Is(e,t){return["vibe64",e,t,"project-type"]}function Ps(e,t){return["vibe64",e,t,"project-config"]}function Cs(e,t){return["vibe64",e,t,"accounts"]}async function _s(e={}){return ct.get(bt(Nt,e))}async function ws(e={}){return ct.get(bt(Dt,e))}async function As(e={}){return ct.get(bt(Mt,e))}async function js(e={}){return ct.get(bt(Lt,e))}async function Us(){return ct.get(Ge)}export{ms as A,is as B,rs as C,fe as D,es as E,as as F,yt as G,Jt as H,us as I,je as J,cs as K,hs as L,Ke as M,Ut as N,Me as O,ys as P,Ce as Q,ot as R,Ss as S,fs as V,Nt as a,vs as b,gs as c,Os as d,Ts as e,Rs as f,bs as g,Es as h,ds as i,ps as j,ls as k,Cs as l,G as m,ns as n,$e as o,de as p,os as q,ts as r,Ps as s,Is as t,_s as u,As as v,js as w,Us as x,ws as y,ss as z};
@@ -1 +1 @@
1
- import{cw as _e,cp as fe,R as F,b_ as be,Y as l,cb as N,cE as e,_ as me,c1 as o,a3 as I,$ as p,a6 as u,bv as ye,i as C,a0 as S,dg as c,a4 as y,bx as Te,a1 as v,cA as _,V as Ce,F as oe,cc as ce,bO as se,bD as Ie,bE as he,bq as Ee,j as de,H as ke,b7 as we,J as Re,G as Pe,l as xe,ax as Ae,o as Le,A as Be,d0 as Ve}from"./index-CY-wDjNv.js";import{w as $e,p as K,S as ue,V as ie,P as Ue}from"./ProjectTypeGate-DStq4W4X.js";import{k as P,L as W}from"./studioGateApi-hkZdLr1Y.js";import{u as Oe,S as Me}from"./SetupReadinessGate-DkkorR2Y.js";import{u as De}from"./useStudioTerminal-D9TNb50w.js";import"./xterm-BADreHn8.js";const X="/studio/current-app/target-scripts",ne="/studio/current-app/target-script-terminal",pe=_e("studio/current-app/target-script-terminal");function Fe(d=""){return d?`${pe}/${encodeURIComponent(d)}`:pe}function Ne(d){return fe(`${Fe(d)}/ws`)}function ze(d,T){return["vibe64",d,T,"target-scripts"]}function Y(d){return d.messageType==="error"?String(d.message||""):""}function Ge({showAllScripts:d=!0}={}){const T=$e(),m=N(""),h=N(""),x=N(!1),A=N(""),V=N(""),$=l(()=>T.api(X,{surface:P})),E=l(()=>T.api(ne,{surface:P})),g=Oe({access:"never",apiSuffix:X,fallbackLoadError:"Target scripts could not be loaded.",ownershipFilter:F,placementSource:"vibe64.target-scripts.list",queryKeyFactory:ze,selectItems:t=>Array.isArray(t==null?void 0:t.scripts)?t.scripts:[],surfaceId:P}),f=K({access:"never",apiSuffix:X,buildCommandOptions:()=>({method:"PUT",options:W,path:`${$.value}/starred`}),buildRawPayload:(t,{context:n})=>({scriptIds:Array.isArray(n.scriptIds)?n.scriptIds:[]}),fallbackRunError:"Could not update starred target scripts.",messages:{error:"Could not update starred target scripts."},onRunSuccess:async()=>{await i()},ownershipFilter:F,placementSource:"vibe64.target-scripts.starred.save",suppressSuccessMessage:!0,surfaceId:P,writeMethod:"PUT"}),L=K({access:"never",apiSuffix:X,buildCommandOptions:()=>({method:"DELETE",options:W,path:`${$.value}/starred`}),fallbackRunError:"Could not reset starred target scripts.",messages:{error:"Could not reset starred target scripts."},onRunSuccess:async()=>{await i()},ownershipFilter:F,placementSource:"vibe64.target-scripts.starred.reset",suppressSuccessMessage:!0,surfaceId:P,writeMethod:"DELETE"}),k=K({access:"never",apiSuffix:ne,buildCommandOptions:()=>({method:"POST",options:W,path:E.value}),buildRawPayload:(t,{context:n})=>({scriptId:String(n.scriptId||"")}),fallbackRunError:"Target script terminal failed to start.",messages:{error:"Target script terminal failed to start."},ownershipFilter:F,placementSource:"vibe64.target-scripts.terminal.start",suppressSuccessMessage:!0,surfaceId:P,writeMethod:"POST"}),z=K({access:"never",apiSuffix:ne,buildCommandOptions:(t,{context:n})=>({method:"DELETE",options:W,path:`${E.value}/${encodeURIComponent(String(n.terminalSessionId||""))}`}),fallbackRunError:"Target script terminal could not close.",messages:{error:"Target script terminal could not close."},ownershipFilter:F,placementSource:"vibe64.target-scripts.terminal.close",suppressSuccessMessage:!0,surfaceId:P,writeMethod:"DELETE"}),a=De({webSocketUrl(t){return Ne(t)}}),U=l(()=>Array.isArray(g.pages)&&g.pages.length>0?g.pages[0]:{}),B=l(()=>Array.isArray(g.items)?g.items:[]),G=l(()=>new Map(B.value.map(t=>[t.id,t]))),O=l(()=>e(d)!==!1),w=l(()=>{var t;return Array.isArray((t=U.value)==null?void 0:t.starredScriptIds)?U.value.starredScriptIds:[]}),M=l(()=>new Set(w.value)),D=l(()=>w.value.map(t=>G.value.get(t)).filter(Boolean)),H=l(()=>B.value.filter(t=>!M.value.has(t.id))),J=l(()=>{const t=[{ariaLabel:"Starred target scripts",id:"starred",label:"Starred",showLabel:O.value&&H.value.length>0,scripts:D.value}];return O.value&&t.push({ariaLabel:"Other target scripts",id:"other-scripts",label:"Other scripts",showLabel:!0,scripts:H.value}),t.filter(n=>n.scripts.length>0)}),Q=l(()=>O.value?B.value:D.value),Z=l(()=>a.terminalExited.value&&a.terminalExitCode.value!==0&&!!A.value),q=l(()=>!!g.isLoading),R=l(()=>!!L.isRunning),ee=l(()=>!!m.value),j=l(()=>String(g.loadError||Y(f)||Y(L)||Y(k)||Y(z)||""));function te(t){return M.value.has(t)}function r(t){return m.value===t}async function i(){await g.reload()}async function s(t){const n=String((t==null?void 0:t.id)||"");if(!(!n||m.value)){m.value=n;try{const b=te(n)?w.value.filter(ve=>ve!==n):[...w.value,n];await f.run({scriptIds:b})}catch{}finally{m.value=""}}}async function ae(){if(!R.value)try{await L.run()}catch{}}async function re(){const t=a.terminalSessionId.value;a.closeTerminalSocket(),t&&await z.run({terminalSessionId:t}).catch(()=>null)}async function le(t){const n=String((t==null?void 0:t.id)||"");if(!n||h.value)return!1;h.value=n,a.terminalStarting.value=!0,x.value=!0,A.value=n,V.value=String((t==null?void 0:t.label)||(t==null?void 0:t.name)||n),a.terminalError.value="";try{if(await re(),a.resetTerminalSessionState(),a.resetTerminalDisplay(),!await a.setupTerminalUi())throw new Error("Terminal view is not ready yet.");const b=await k.run({scriptId:n});return b?(a.applyTerminalSession(b,{fallbackStatus:"running"}),await a.connectTerminalSocket(),!0):!1}catch(b){return a.terminalError.value=String((b==null?void 0:b.message)||b||"Target script terminal failed to start."),!1}finally{a.terminalStarting.value=!1,h.value=""}}async function ge(){const t=G.value.get(A.value);t&&await le(t)}async function Se(){await re(),a.resetTerminalSessionState(),a.resetTerminalDisplay(),a.disposeTerminalUi(),A.value="",V.value="",x.value=!1}return be(()=>{re(),a.disposeTerminalUi()}),{canRetry:Z,closeTerminal:Se,currentTerminalScriptLabel:V,isStarBusy:r,isStarred:te,loadError:j,loading:q,refreshScripts:i,resetBusy:R,resetStarred:ae,retryTerminal:ge,runBusyId:h,runScript:le,scriptSections:J,scripts:B,sendCtrlC:a.sendCtrlC,starBusy:ee,terminalCommandPreview:a.terminalCommandPreview,terminalError:a.terminalError,terminalExited:a.terminalExited,terminalHost:a.terminalHost,terminalSessionId:a.terminalSessionId,terminalStarting:a.terminalStarting,terminalStatus:a.terminalStatus,terminalVisible:x,toggleStar:s,visibleScripts:Q}}const He={class:"target-scripts-panel"},qe={class:"target-scripts-panel__toolbar"},je={key:2,class:"target-scripts-panel__retry"},Ke={key:4,class:"target-scripts-panel__body"},We=["aria-label"],Xe={key:0,class:"target-scripts-panel__section-marker"},Ye={class:"target-script-tile__top"},Je={class:"target-script-tile__heading"},Qe=["title"],Ze={class:"target-script-tile__command"},et={class:"target-script-terminal__title"},tt={class:"target-script-terminal__subtitle"},at={class:"target-script-terminal__actions"},rt={class:"target-script-terminal__footer"},st={__name:"TargetScriptsPanel",props:{mode:{type:String,default:"autopilot",validator:d=>["autopilot","inspect"].includes(d)}},setup(d){const T=d,m=l(()=>T.mode==="inspect"),h=l(()=>m.value?"No target scripts are available.":"No starred target scripts are available."),{canRetry:x,closeTerminal:A,currentTerminalScriptLabel:V,isStarBusy:$,isStarred:E,loadError:g,loading:f,refreshScripts:L,resetBusy:k,resetStarred:z,retryTerminal:a,runBusyId:U,runScript:B,scriptSections:G,sendCtrlC:O,starBusy:w,terminalCommandPreview:M,terminalError:D,terminalExited:H,terminalHost:J,terminalSessionId:Q,terminalStarting:Z,terminalStatus:q,terminalVisible:R,toggleStar:ee,visibleScripts:j}=Ge({showAllScripts:m});return(te,r)=>(o(),I("div",He,[p("div",qe,[u(C,{disabled:e(f),icon:e(ye),"aria-label":"Refresh target scripts",size:"small",title:"Refresh target scripts",variant:"text",onClick:r[0]||(r[0]=i=>e(L)())},null,8,["disabled","icon"]),m.value?(o(),S(C,{key:0,disabled:e(f)||e(k)||e(w),loading:e(k),"prepend-icon":e(Te),size:"small",variant:"tonal",onClick:r[1]||(r[1]=i=>e(z)())},{default:c(()=>[...r[6]||(r[6]=[y(" Reset starred ",-1)])]),_:1},8,["disabled","loading","prepend-icon"])):v("",!0)]),e(f)?(o(),S(Be,{key:0,color:"primary",height:"4",indeterminate:"",rounded:"",class:"mb-3"})):v("",!0),e(g)?(o(),S(ue,{key:1,title:"Target scripts need attention",error:e(g),compact:"",class:"mb-2"},null,8,["error"])):v("",!0),e(g)?(o(),I("div",je,[u(C,{disabled:e(f),loading:e(f),color:"primary",size:"small",variant:"tonal",onClick:r[2]||(r[2]=i=>e(L)())},{default:c(()=>[...r[7]||(r[7]=[y(" Retry ",-1)])]),_:1},8,["disabled","loading"])])):!e(f)&&e(j).length===0?(o(),S(Ce,{key:3,type:"info",variant:"tonal",density:"compact",class:"mb-0"},{default:c(()=>[y(_(h.value),1)]),_:1})):e(j).length>0?(o(),I("div",Ke,[(o(!0),I(oe,null,ce(e(G),i=>(o(),I("section",{key:i.id,class:se(["target-scripts-panel__section",`target-scripts-panel__${i.id}`]),"aria-label":i.ariaLabel},[i.showLabel?(o(),I("div",Xe,[p("span",null,_(i.label),1),u(ie,{size:"x-small",variant:"tonal"},{default:c(()=>[y(_(i.scripts.length),1)]),_:2},1024)])):v("",!0),p("div",{class:se(["target-scripts-panel__grid",{"target-scripts-panel__grid--starred":i.id==="starred"}])},[(o(!0),I(oe,null,ce(i.scripts,s=>(o(),S(de,{key:`${i.id}-${s.id}`,border:"",class:se(["target-script-tile",{"target-script-tile--starred":e(E)(s.id)}]),elevation:"0"},{default:c(()=>[p("div",Ye,[p("div",Je,[p("code",{class:"target-script-tile__name",title:s.id},_(s.label||s.name||s.id),9,Qe),u(ie,{class:"target-script-tile__source",size:"x-small",variant:"tonal"},{default:c(()=>[y(_(s.source),1)]),_:2},1024)]),m.value?(o(),S(C,{key:0,"aria-label":e(E)(s.id)?`Unstar ${s.id}`:`Star ${s.id}`,disabled:e(w)||e(k),icon:e(E)(s.id)?e(Ie):e(he),loading:e($)(s.id),color:"amber",size:"small",title:e(E)(s.id)?"Unstar target script":"Star target script",variant:"text",onClick:ae=>e(ee)(s)},null,8,["aria-label","disabled","icon","loading","title","onClick"])):v("",!0)]),p("code",Ze,_(s.command),1),u(C,{"aria-label":`Run ${s.id}`,disabled:!!e(U)||e($)(s.id)||e(k),loading:e(U)===s.id,"prepend-icon":e(Ee),block:"",class:"target-script-tile__run",color:"primary",size:"large",title:"Run target script",variant:"flat",onClick:ae=>e(B)(s)},{default:c(()=>[...r[8]||(r[8]=[y(" Run ",-1)])]),_:1},8,["aria-label","disabled","loading","prepend-icon","onClick"])]),_:2},1032,["class"]))),128))],2)],10,We))),128))])):v("",!0),e(R)?(o(),S(Le,{key:5,modelValue:e(R),"onUpdate:modelValue":r[5]||(r[5]=i=>Ae(R)?R.value=i:null),"aria-label":"Target script terminal",eager:"",fullscreen:"",persistent:"",transition:"dialog-bottom-transition"},{default:c(()=>[u(de,{class:"target-script-terminal"},{default:c(()=>[u(ke,{border:"",class:"target-script-terminal__toolbar",color:"surface",density:"comfortable"},{default:c(()=>[u(C,{icon:e(we),"aria-label":"Close target script terminal",title:"Close target script terminal",variant:"text",onClick:r[3]||(r[3]=i=>e(A)())},null,8,["icon"]),u(Re,{class:"target-script-terminal__toolbar-title"},{default:c(()=>[p("span",et,_(e(V)||"Target script"),1),p("span",tt,_(e(M)||"Ready."),1)]),_:1}),u(Pe),p("div",at,[e(x)?(o(),S(C,{key:0,loading:e(Z),color:"primary",size:"small",variant:"flat",onClick:r[4]||(r[4]=i=>e(a)())},{default:c(()=>[...r[9]||(r[9]=[y(" Retry ",-1)])]),_:1},8,["loading"])):v("",!0),u(C,{disabled:!e(Q)||e(H),size:"small",variant:"text",onClick:e(O)},{default:c(()=>[...r[10]||(r[10]=[y(" Ctrl-C ",-1)])]),_:1},8,["disabled","onClick"])])]),_:1}),u(xe,{class:"target-script-terminal__body"},{default:c(()=>[e(D)?(o(),S(ue,{key:0,title:"Target script terminal needs attention",error:e(D),compact:"",class:"mb-2"},null,8,["error"])):v("",!0),p("div",{ref_key:"terminalHost",ref:J,class:"target-script-terminal__host"},null,512),p("div",rt,[p("span",null,_(e(M)||"Ready."),1),e(q)?(o(),S(ie,{key:0,size:"x-small",variant:"tonal"},{default:c(()=>[y(_(e(q)),1)]),_:1})):v("",!0)])]),_:1})]),_:1})]),_:1},8,["modelValue"])):v("",!0)]))}},it=me(st,[["__scopeId","data-v-df6ac34e"]]),nt={class:"generated-ui-screen generated-ui-screen--studio studio-target-scripts"},lt={__name:"target-scripts",setup(d){const T=Ve(),m=l(()=>T.query.mode==="inspect"?"inspect":"autopilot");return(h,x)=>(o(),I("section",nt,[u(Ue,null,{default:c(()=>[u(Me,null,{default:c(()=>[u(it,{mode:m.value},null,8,["mode"])]),_:1})]),_:1})]))}},gt=me(lt,[["__scopeId","data-v-3cae53bc"]]);export{gt as default};
1
+ import{cy as _e,cr as fe,R as z,c1 as be,Y as l,ce as N,cG as e,_ as me,c4 as o,a3 as I,$ as p,a6 as u,bx as ye,i as C,a0 as S,di as c,a4 as y,bz as Te,a1 as v,cC as _,V as Ce,F as oe,cf as ce,bR as se,bF as Ie,bG as he,bs as Ee,j as de,H as ke,b8 as Re,J as we,G as Pe,l as xe,ax as Ae,o as Le,A as Be,d2 as Ve}from"./index-DqoYKexs.js";import{z as $e,w as K,S as ue,V as ie,P as Ue}from"./ProjectTypeGate-B3NHteXC.js";import{k as P,L as W}from"./studioGateApi-CFtez6lH.js";import{u as Me,S as Oe}from"./SetupReadinessGate-2twHjoYZ.js";import{u as Fe}from"./useStudioTerminal-I8tuBymw.js";import"./xterm-BADreHn8.js";const X="/studio/current-app/target-scripts",ne="/studio/current-app/target-script-terminal",pe=_e("studio/current-app/target-script-terminal");function ze(d=""){return d?`${pe}/${encodeURIComponent(d)}`:pe}function Ne(d){return fe(`${ze(d)}/ws`)}function De(d,T){return["vibe64",d,T,"target-scripts"]}function Y(d){return d.messageType==="error"?String(d.message||""):""}function Ge({showAllScripts:d=!0}={}){const T=$e(),m=N(""),h=N(""),x=N(!1),A=N(""),V=N(""),$=l(()=>T.api(X,{surface:P})),E=l(()=>T.api(ne,{surface:P})),g=Me({access:"never",apiSuffix:X,fallbackLoadError:"Target scripts could not be loaded.",ownershipFilter:z,placementSource:"vibe64.target-scripts.list",queryKeyFactory:De,selectItems:t=>Array.isArray(t==null?void 0:t.scripts)?t.scripts:[],surfaceId:P}),f=K({access:"never",apiSuffix:X,buildCommandOptions:()=>({method:"PUT",options:W,path:`${$.value}/starred`}),buildRawPayload:(t,{context:n})=>({scriptIds:Array.isArray(n.scriptIds)?n.scriptIds:[]}),fallbackRunError:"Could not update starred target scripts.",messages:{error:"Could not update starred target scripts."},onRunSuccess:async()=>{await i()},ownershipFilter:z,placementSource:"vibe64.target-scripts.starred.save",suppressSuccessMessage:!0,surfaceId:P,writeMethod:"PUT"}),L=K({access:"never",apiSuffix:X,buildCommandOptions:()=>({method:"DELETE",options:W,path:`${$.value}/starred`}),fallbackRunError:"Could not reset starred target scripts.",messages:{error:"Could not reset starred target scripts."},onRunSuccess:async()=>{await i()},ownershipFilter:z,placementSource:"vibe64.target-scripts.starred.reset",suppressSuccessMessage:!0,surfaceId:P,writeMethod:"DELETE"}),k=K({access:"never",apiSuffix:ne,buildCommandOptions:()=>({method:"POST",options:W,path:E.value}),buildRawPayload:(t,{context:n})=>({scriptId:String(n.scriptId||"")}),fallbackRunError:"Target script terminal failed to start.",messages:{error:"Target script terminal failed to start."},ownershipFilter:z,placementSource:"vibe64.target-scripts.terminal.start",suppressSuccessMessage:!0,surfaceId:P,writeMethod:"POST"}),D=K({access:"never",apiSuffix:ne,buildCommandOptions:(t,{context:n})=>({method:"DELETE",options:W,path:`${E.value}/${encodeURIComponent(String(n.terminalSessionId||""))}`}),fallbackRunError:"Target script terminal could not close.",messages:{error:"Target script terminal could not close."},ownershipFilter:z,placementSource:"vibe64.target-scripts.terminal.close",suppressSuccessMessage:!0,surfaceId:P,writeMethod:"DELETE"}),a=Fe({webSocketUrl(t){return Ne(t)}}),U=l(()=>Array.isArray(g.pages)&&g.pages.length>0?g.pages[0]:{}),B=l(()=>Array.isArray(g.items)?g.items:[]),G=l(()=>new Map(B.value.map(t=>[t.id,t]))),M=l(()=>e(d)!==!1),R=l(()=>{var t;return Array.isArray((t=U.value)==null?void 0:t.starredScriptIds)?U.value.starredScriptIds:[]}),O=l(()=>new Set(R.value)),F=l(()=>R.value.map(t=>G.value.get(t)).filter(Boolean)),H=l(()=>B.value.filter(t=>!O.value.has(t.id))),J=l(()=>{const t=[{ariaLabel:"Starred target scripts",id:"starred",label:"Starred",showLabel:M.value&&H.value.length>0,scripts:F.value}];return M.value&&t.push({ariaLabel:"Other target scripts",id:"other-scripts",label:"Other scripts",showLabel:!0,scripts:H.value}),t.filter(n=>n.scripts.length>0)}),Q=l(()=>M.value?B.value:F.value),Z=l(()=>a.terminalExited.value&&a.terminalExitCode.value!==0&&!!A.value),j=l(()=>!!g.isLoading),w=l(()=>!!L.isRunning),ee=l(()=>!!m.value),q=l(()=>String(g.loadError||Y(f)||Y(L)||Y(k)||Y(D)||""));function te(t){return O.value.has(t)}function r(t){return m.value===t}async function i(){await g.reload()}async function s(t){const n=String((t==null?void 0:t.id)||"");if(!(!n||m.value)){m.value=n;try{const b=te(n)?R.value.filter(ve=>ve!==n):[...R.value,n];await f.run({scriptIds:b})}catch{}finally{m.value=""}}}async function ae(){if(!w.value)try{await L.run()}catch{}}async function re(){const t=a.terminalSessionId.value;a.closeTerminalSocket(),t&&await D.run({terminalSessionId:t}).catch(()=>null)}async function le(t){const n=String((t==null?void 0:t.id)||"");if(!n||h.value)return!1;h.value=n,a.terminalStarting.value=!0,x.value=!0,A.value=n,V.value=String((t==null?void 0:t.label)||(t==null?void 0:t.name)||n),a.terminalError.value="";try{if(await re(),a.resetTerminalSessionState(),a.resetTerminalDisplay(),!await a.setupTerminalUi())throw new Error("Terminal view is not ready yet.");const b=await k.run({scriptId:n});return b?(a.applyTerminalSession(b,{fallbackStatus:"running"}),await a.connectTerminalSocket(),!0):!1}catch(b){return a.terminalError.value=String((b==null?void 0:b.message)||b||"Target script terminal failed to start."),!1}finally{a.terminalStarting.value=!1,h.value=""}}async function ge(){const t=G.value.get(A.value);t&&await le(t)}async function Se(){await re(),a.resetTerminalSessionState(),a.resetTerminalDisplay(),a.disposeTerminalUi(),A.value="",V.value="",x.value=!1}return be(()=>{re(),a.disposeTerminalUi()}),{canRetry:Z,closeTerminal:Se,currentTerminalScriptLabel:V,isStarBusy:r,isStarred:te,loadError:q,loading:j,refreshScripts:i,resetBusy:w,resetStarred:ae,retryTerminal:ge,runBusyId:h,runScript:le,scriptSections:J,scripts:B,sendCtrlC:a.sendCtrlC,starBusy:ee,terminalCommandPreview:a.terminalCommandPreview,terminalError:a.terminalError,terminalExited:a.terminalExited,terminalHost:a.terminalHost,terminalSessionId:a.terminalSessionId,terminalStarting:a.terminalStarting,terminalStatus:a.terminalStatus,terminalVisible:x,toggleStar:s,visibleScripts:Q}}const He={class:"target-scripts-panel"},je={class:"target-scripts-panel__toolbar"},qe={key:2,class:"target-scripts-panel__retry"},Ke={key:4,class:"target-scripts-panel__body"},We=["aria-label"],Xe={key:0,class:"target-scripts-panel__section-marker"},Ye={class:"target-script-tile__top"},Je={class:"target-script-tile__heading"},Qe=["title"],Ze={class:"target-script-tile__command"},et={class:"target-script-terminal__title"},tt={class:"target-script-terminal__subtitle"},at={class:"target-script-terminal__actions"},rt={class:"target-script-terminal__footer"},st={__name:"TargetScriptsPanel",props:{mode:{type:String,default:"autopilot",validator:d=>["autopilot","inspect"].includes(d)}},setup(d){const T=d,m=l(()=>T.mode==="inspect"),h=l(()=>m.value?"No target scripts are available.":"No starred target scripts are available."),{canRetry:x,closeTerminal:A,currentTerminalScriptLabel:V,isStarBusy:$,isStarred:E,loadError:g,loading:f,refreshScripts:L,resetBusy:k,resetStarred:D,retryTerminal:a,runBusyId:U,runScript:B,scriptSections:G,sendCtrlC:M,starBusy:R,terminalCommandPreview:O,terminalError:F,terminalExited:H,terminalHost:J,terminalSessionId:Q,terminalStarting:Z,terminalStatus:j,terminalVisible:w,toggleStar:ee,visibleScripts:q}=Ge({showAllScripts:m});return(te,r)=>(o(),I("div",He,[p("div",je,[u(C,{disabled:e(f),icon:e(ye),"aria-label":"Refresh target scripts",size:"small",title:"Refresh target scripts",variant:"text",onClick:r[0]||(r[0]=i=>e(L)())},null,8,["disabled","icon"]),m.value?(o(),S(C,{key:0,disabled:e(f)||e(k)||e(R),loading:e(k),"prepend-icon":e(Te),size:"small",variant:"tonal",onClick:r[1]||(r[1]=i=>e(D)())},{default:c(()=>[...r[6]||(r[6]=[y(" Reset starred ",-1)])]),_:1},8,["disabled","loading","prepend-icon"])):v("",!0)]),e(f)?(o(),S(Be,{key:0,color:"primary",height:"4",indeterminate:"",rounded:"",class:"mb-3"})):v("",!0),e(g)?(o(),S(ue,{key:1,title:"Target scripts need attention",error:e(g),compact:"",class:"mb-2"},null,8,["error"])):v("",!0),e(g)?(o(),I("div",qe,[u(C,{disabled:e(f),loading:e(f),color:"primary",size:"small",variant:"tonal",onClick:r[2]||(r[2]=i=>e(L)())},{default:c(()=>[...r[7]||(r[7]=[y(" Retry ",-1)])]),_:1},8,["disabled","loading"])])):!e(f)&&e(q).length===0?(o(),S(Ce,{key:3,type:"info",variant:"tonal",density:"compact",class:"mb-0"},{default:c(()=>[y(_(h.value),1)]),_:1})):e(q).length>0?(o(),I("div",Ke,[(o(!0),I(oe,null,ce(e(G),i=>(o(),I("section",{key:i.id,class:se(["target-scripts-panel__section",`target-scripts-panel__${i.id}`]),"aria-label":i.ariaLabel},[i.showLabel?(o(),I("div",Xe,[p("span",null,_(i.label),1),u(ie,{size:"x-small",variant:"tonal"},{default:c(()=>[y(_(i.scripts.length),1)]),_:2},1024)])):v("",!0),p("div",{class:se(["target-scripts-panel__grid",{"target-scripts-panel__grid--starred":i.id==="starred"}])},[(o(!0),I(oe,null,ce(i.scripts,s=>(o(),S(de,{key:`${i.id}-${s.id}`,border:"",class:se(["target-script-tile",{"target-script-tile--starred":e(E)(s.id)}]),elevation:"0"},{default:c(()=>[p("div",Ye,[p("div",Je,[p("code",{class:"target-script-tile__name",title:s.id},_(s.label||s.name||s.id),9,Qe),u(ie,{class:"target-script-tile__source",size:"x-small",variant:"tonal"},{default:c(()=>[y(_(s.source),1)]),_:2},1024)]),m.value?(o(),S(C,{key:0,"aria-label":e(E)(s.id)?`Unstar ${s.id}`:`Star ${s.id}`,disabled:e(R)||e(k),icon:e(E)(s.id)?e(Ie):e(he),loading:e($)(s.id),color:"amber",size:"small",title:e(E)(s.id)?"Unstar target script":"Star target script",variant:"text",onClick:ae=>e(ee)(s)},null,8,["aria-label","disabled","icon","loading","title","onClick"])):v("",!0)]),p("code",Ze,_(s.command),1),u(C,{"aria-label":`Run ${s.id}`,disabled:!!e(U)||e($)(s.id)||e(k),loading:e(U)===s.id,"prepend-icon":e(Ee),block:"",class:"target-script-tile__run",color:"primary",size:"large",title:"Run target script",variant:"flat",onClick:ae=>e(B)(s)},{default:c(()=>[...r[8]||(r[8]=[y(" Run ",-1)])]),_:1},8,["aria-label","disabled","loading","prepend-icon","onClick"])]),_:2},1032,["class"]))),128))],2)],10,We))),128))])):v("",!0),e(w)?(o(),S(Le,{key:5,modelValue:e(w),"onUpdate:modelValue":r[5]||(r[5]=i=>Ae(w)?w.value=i:null),"aria-label":"Target script terminal",eager:"",fullscreen:"",persistent:"",transition:"dialog-bottom-transition"},{default:c(()=>[u(de,{class:"target-script-terminal"},{default:c(()=>[u(ke,{border:"",class:"target-script-terminal__toolbar",color:"surface",density:"comfortable"},{default:c(()=>[u(C,{icon:e(Re),"aria-label":"Close target script terminal",title:"Close target script terminal",variant:"text",onClick:r[3]||(r[3]=i=>e(A)())},null,8,["icon"]),u(we,{class:"target-script-terminal__toolbar-title"},{default:c(()=>[p("span",et,_(e(V)||"Target script"),1),p("span",tt,_(e(O)||"Ready."),1)]),_:1}),u(Pe),p("div",at,[e(x)?(o(),S(C,{key:0,loading:e(Z),color:"primary",size:"small",variant:"flat",onClick:r[4]||(r[4]=i=>e(a)())},{default:c(()=>[...r[9]||(r[9]=[y(" Retry ",-1)])]),_:1},8,["loading"])):v("",!0),u(C,{disabled:!e(Q)||e(H),size:"small",variant:"text",onClick:e(M)},{default:c(()=>[...r[10]||(r[10]=[y(" Ctrl-C ",-1)])]),_:1},8,["disabled","onClick"])])]),_:1}),u(xe,{class:"target-script-terminal__body"},{default:c(()=>[e(F)?(o(),S(ue,{key:0,title:"Target script terminal needs attention",error:e(F),compact:"",class:"mb-2"},null,8,["error"])):v("",!0),p("div",{ref_key:"terminalHost",ref:J,class:"target-script-terminal__host"},null,512),p("div",rt,[p("span",null,_(e(O)||"Ready."),1),e(j)?(o(),S(ie,{key:0,size:"x-small",variant:"tonal"},{default:c(()=>[y(_(e(j)),1)]),_:1})):v("",!0)])]),_:1})]),_:1})]),_:1},8,["modelValue"])):v("",!0)]))}},it=me(st,[["__scopeId","data-v-df6ac34e"]]),nt={class:"generated-ui-screen generated-ui-screen--studio studio-target-scripts"},lt={__name:"target-scripts",setup(d){const T=Ve(),m=l(()=>T.query.mode==="inspect"?"inspect":"autopilot");return(h,x)=>(o(),I("section",nt,[u(Ue,null,{default:c(()=>[u(Oe,null,{default:c(()=>[u(it,{mode:m.value},null,8,["mode"])]),_:1})]),_:1})]))}},gt=me(lt,[["__scopeId","data-v-3cae53bc"]]);export{gt as default};
@@ -0,0 +1 @@
1
+ import{D as ce,o as de}from"./xterm-BADreHn8.js";import{ce as f,Y as ve,bO as K}from"./index-DqoYKexs.js";const Se="Terminal size must include valid cols and rows.",me=20,pe=5;function Te(u={}){const i=Math.floor(Number(u.cols)),C=Math.floor(Number(u.rows));return!Number.isFinite(i)||!Number.isFinite(C)||i<me||C<pe?null:{cols:i,rows:C}}function ye(u=""){return String(u||"")===Se}const Q=16e4;function I(u){const i=String(u||"");return i.length<=Q?i:i.slice(i.length-Q)}function D(u,i){return typeof u=="function"?u:i}function Ce({displayFilter:u=null,onSessionUpdate:i=null,onStatusUpdate:C=null,webSocketUrl:F=null}={}){const h=f(null),o=f(""),a=f(""),M=f(""),d=f(""),T=f(null),k=f({}),L=f(""),ee=f(!1);let n=null,O=null,l=null,y="",v=null,g="",S=null,N=null,c=null,R=0,A=0,s="",m=0,w=null;const j=typeof(u==null?void 0:u.filterChunk)=="function"?e=>u.filterChunk(e):e=>String(e||""),H=D(i,()=>null),J=D(C,()=>null),te=D(F,()=>""),ne=ve(()=>a.value==="exited");function z(){var e;(e=u==null?void 0:u.reset)==null||e.call(u)}function _(){R=0,A=0}function re(){return Te({cols:n==null?void 0:n.cols,rows:n==null?void 0:n.rows})}function ue(e={}){return e.cols===R&&e.rows===A}function b(){var e;!O||!n||(O.fit(),(e=n.refresh)==null||e.call(n,0,Math.max(0,n.rows-1)),q())}async function G(){if(n)return await K(),b(),!0;if(w)return w;w=(async()=>(await K(),n?(b(),!0):h.value?(h.value.replaceChildren(),n=new ce({convertEol:!0,cursorBlink:!1,disableStdin:!1,fontFamily:"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace",fontSize:13,theme:{background:"#101216",foreground:"#f5f7fb"}}),O=new de,n.loadAddon(O),n.open(h.value),b(),S=n.onData(e=>{U(e)}),N=()=>{b()},window.addEventListener("resize",N),typeof ResizeObserver<"u"&&(c=new ResizeObserver(()=>{b()}),c.observe(h.value)),Y(s),!0):!1))();try{return await w}finally{w=null}}function x(){const e=l;l=null,y="",v=null,g="",_(),e&&e.readyState!==WebSocket.CLOSED&&e.readyState!==WebSocket.CLOSING&&e.close()}function $(){var e,t,r;(e=S==null?void 0:S.dispose)==null||e.call(S),S=null,N&&(window.removeEventListener("resize",N),N=null),(t=c==null?void 0:c.disconnect)==null||t.call(c),c=null,(r=n==null?void 0:n.dispose)==null||r.call(n),n=null,O=null,w=null,m=0,z(),_()}function oe(){x(),$()}function V(){var e;s="",m=0,L.value="",z(),_(),(e=n==null?void 0:n.reset)==null||e.call(n)}function le(){o.value="",a.value="",M.value="",T.value=null,d.value="",k.value={}}function X(){var e;(e=n==null?void 0:n.scrollToBottom)==null||e.call(n)}function Y(e){if(s=I(e),L.value=s,!n)return;s.length<m&&(n.reset(),m=0,z());const t=s.slice(m);if(t){const r=j(t);r&&n.write(r,X)}m=s.length}function ie(e){const t=String(e||"");if(!t||(s=I(`${s}${t}`),L.value=s,!n))return;const r=j(t);r&&n.write(r,X),m=s.length}function Z(e={},{fallbackStatus:t=""}={}){const r=e&&typeof e=="object"&&!Array.isArray(e)?e:{},E=String(r.id||"");!!(E&&o.value&&E!==o.value)&&(x(),V()),o.value=E,a.value=String(r.status||t||""),T.value=a.value==="exited"?r.exitCode??null:null,M.value=String(r.commandPreview||""),k.value=r.metadata&&typeof r.metadata=="object"&&!Array.isArray(r.metadata)?r.metadata:{},Y(r.output||""),q(),H(r),J({closeError:String(r.closeError||""),exitCode:T.value,id:o.value,status:a.value})}function ae(e){let t;try{t=JSON.parse(String(e||""))}catch{d.value="Terminal stream returned an invalid message.";return}if((t==null?void 0:t.type)==="snapshot"){Z(t.session||{});return}if((t==null?void 0:t.type)==="output"){ie(t.chunk);return}if((t==null?void 0:t.type)==="metadata"){k.value=t.metadata&&typeof t.metadata=="object"&&!Array.isArray(t.metadata)?t.metadata:{},H({id:o.value,metadata:k.value,status:a.value});return}if((t==null?void 0:t.type)==="status"){a.value=String(t.status||a.value||""),T.value=t.status==="exited"?t.exitCode??null:null,J({closeError:String(t.closeError||""),exitCode:T.value,id:o.value,status:a.value});return}if((t==null?void 0:t.type)!=="resize.error"&&(t==null?void 0:t.type)==="error"){const r=String(t.error||"Terminal stream failed.");if(ye(r))return;d.value=r}}async function P(){if(!o.value)return!1;if(y&&y!==o.value&&x(),(l==null?void 0:l.readyState)===WebSocket.OPEN&&y===o.value)return!0;if(v&&g===o.value)return v;v&&x();const e=String(te(o.value)||"");if(!e)return!1;const t=o.value;return v=new Promise(r=>{let E=!1;const p=new WebSocket(e);l=p,y=t,g=t;const W=B=>{E||(E=!0,r(B))};p.addEventListener("open",()=>{d.value="",W(!0)}),p.addEventListener("message",B=>{ae(B.data)}),p.addEventListener("error",()=>{d.value="Terminal stream failed.",W(!1)}),p.addEventListener("close",()=>{l===p&&(l=null,y=""),g===t&&(v=null,g=""),W(!1)})}),v}async function U(e){return!o.value||a.value==="exited"?!1:!await P()||(l==null?void 0:l.readyState)!==WebSocket.OPEN?(d.value="Terminal stream is not connected.",!1):(l.send(JSON.stringify({data:String(e||""),type:"input"})),!0)}async function q(){if(!o.value||a.value==="exited")return!1;const e=re();return!e||ue(e)||!await P()||(l==null?void 0:l.readyState)!==WebSocket.OPEN?!1:(R=e.cols,A=e.rows,l.send(JSON.stringify({cols:e.cols,rows:e.rows,type:"resize"})),!0)}async function se(){await U("")}async function fe(){var e;return await G()?((e=n==null?void 0:n.focus)==null||e.call(n),!0):!1}return{applyTerminalSession:Z,closeTerminalSocket:x,connectTerminalSocket:P,disposeTerminalDisplay:$,disposeTerminalUi:oe,focusTerminal:fe,resetTerminalDisplay:V,resetTerminalSessionState:le,sendCtrlC:se,sendTerminalData:U,setupTerminalUi:G,terminalCommandPreview:M,terminalError:d,terminalExited:ne,terminalExitCode:T,terminalHost:h,terminalMetadata:k,terminalOutput:L,terminalSessionId:o,terminalStarting:ee,terminalStatus:a}}export{ye as t,Ce as u};
@@ -0,0 +1 @@
1
+ import{bJ as B,b0 as $,bs as L,bM as V,bm as N,bj as w,bD as x,bA as _,ba as h,bC as I,bi as O,bv as F,bk as g,bh as P}from"./index-DqoYKexs.js";const re="/vibe64/sessions",te="/vibe64",ne="vibe64.session.changed",D=5,ae="vibe64:selected-session-id";function ie(e,r){return["vibe64",e,r,"sessions"]}function ue(e,r){return["vibe64",e,r,"session"]}function u(e=""){return encodeURIComponent(String(e||"").trim())}function d(e="",r="",t=""){return`${e}/${u(r)}${t}`}function T(e="",r="",t=""){return`${e}/tools/${u(r)}${t}`}function oe(e="",r=""){return T(e,r,"/run")}function le(e="",r="",t=""){return T(e,r,t?`/terminal/${u(t)}`:"/terminal")}function ce(e="",r="",t=""){return d(e,r,`/actions/${u(t)}`)}function be(e="",r="",t=""){return d(e,r,`/intents/${u(t)}`)}function de(e="",r=""){return d(e,r,"/artifact-preview")}function pe(e="",r=""){return d(e,r,"/codex-attachments")}function fe(e="",r=""){return d(e,r,"/conversation-log")}function he(e="",r="",t=""){return d(e,r,t?`/command-terminal/${u(t)}`:"/command-terminal")}function Se(e="",r=""){return d(e,r,"/launch-targets")}function j(e="",r="",t=""){return d(e,r,t?`/launch-terminal/${u(t)}`:"/launch-terminal")}function me(e="",r="",t=""){return`${j(e,r,t)}/stop`}function ve(e="",r="",t=""){return d(e,r,t?`/shell-terminal/${u(t)}`:"/shell-terminal")}function se(e,r,t="",n=""){const i=["vibe64",e,r,"artifact-preview",u(t)],b=u(n);return b&&i.push(b),i}function ge(e,r,t=""){return["vibe64",e,r,"conversation-log",u(t)]}function Pe(e,r,t=""){return["vibe64",e,r,"launch-targets",u(t)]}function ke(e={}){return e!=null&&e.input&&typeof e.input=="object"&&!Array.isArray(e.input)?e.input:{}}function G(e={}){return(e==null?void 0:e.worktreeReady)===!0||Array.isArray(e==null?void 0:e.completedSteps)&&e.completedSteps.includes("worktree_created")}function K(e={}){const r=String((e==null?void 0:e.sessionRoot)||"").trim().replace(/\/+$/u,"");return r&&G(e)?`${r}/worktree`:""}function M(e={}){const r=(e==null?void 0:e.metadata)||{};return String(r.worktree_path||r.worktree||(e==null?void 0:e.worktree)||(e==null?void 0:e.worktreePath)||"").trim()||K(e)}const q=new Set(["abandoned","finished"]),H="Report";function m(e){return String(e||"").replace(/^\d{4}-/u,"")}function ye(e={}){var i;const r=c(e==null?void 0:e.sessionName)||c((i=e==null?void 0:e.metadata)==null?void 0:i.issue_word);if(r)return r;const t=c(e==null?void 0:e.issueTitle);if(t)return t;const n=m(e==null?void 0:e.sessionId);return n?`Session ${n}`:""}function W(e,r){try{const t=new URL(String(e||"")),[,n,i,b,l]=t.pathname.split("/"),o=r==="pr"?"pull":"issues";if(t.hostname==="github.com"&&n&&i&&b===o&&l)return{number:l,owner:n,repo:i}}catch{return null}return null}function S(e,r){const t=r==="pr"?"Pull request":"Issue",n=W(e,r);return n?{label:`${r==="pr"?"PR":"Issue"} #${n.number}`,repo:`${n.owner}/${n.repo}`}:{label:t,repo:""}}function Q(e){return String(e||"pending").replaceAll("_"," ")}function we(e){const r=String(e||"");return r==="finished"?"success":["abandoned","failed","blocked"].includes(r)?"error":r==="waiting_for_user"?"warning":"primary"}function z(e={}){return q.has(String((e==null?void 0:e.status)||""))}function v(e={}){return!z(e)}function s(e){return String(e||"").trim()}function c(...e){return e.map(s).find(Boolean)||""}function X(e={},r=[]){const t=s(e==null?void 0:e.currentStep),n=r.find(i=>i.id===t);return c(n==null?void 0:n.label,t,"No active step")}function k(e){const r=s(e);return!r||!r.startsWith("/")?"":`file://${r.split("/").map(t=>encodeURIComponent(t)).join("/")}`}function J(e={},r=[]){const t=c(e.issueTitle),n=S(e.issueUrl,"issue"),i=S(e.prUrl,"pr"),b=Array.isArray(e.completedSteps)?e.completedSteps.length:0,l=X(e,r),o=c(e.blueprintPath),a=e.prOutcome&&typeof e.prOutcome=="object"?e.prOutcome:null,p=c(e.reportPath),f=c(e.workSource),R=S(e.sourcePrUrl,"pr"),U=f==="existing_pr"?c(e.sourcePrTitle,e.sourcePrUpdateMode==="stacked"?"Stacked PR base":e.sourcePrUpdateMode):f==="existing_issue"?t:"New branch",A=f==="existing_pr"?e.sourcePrUrl||"":f==="existing_issue"&&e.issueUrl||"",C=f==="existing_pr"?`Stack on ${R.label}`:f==="existing_issue"?n.label:"New branch";return[{detail:r.length?`${b} of ${r.length} steps complete`:"",icon:"step",key:"step",label:"Current Step",value:l,visible:!!l},{copyValue:e.sessionRoot||e.sessionId||"",detail:e.sessionRoot||"",icon:"session",key:"session",label:"Session",value:m(e.sessionId),visible:!!e.sessionId},{copyValue:e.worktree||"",detail:"Git worktree ready",icon:"worktree",key:"worktree",label:"Worktree",value:e.worktree||"",visible:!!(e.worktreeReady&&e.worktree)},{copyValue:e.codexThreadId||"",detail:"Used by codex resume",icon:"codex",key:"codex",label:"Codex Session",value:e.codexThreadId||"",visible:!!e.codexThreadId},{copyValue:e.branch||"",detail:"Session branch remains recoverable in Git",icon:"branch",key:"branch",label:"Branch",value:e.branch||"",visible:!!e.branch},{detail:U,href:A,icon:"github",key:"work-source",label:"Work Source",value:C,visible:!!f},{detail:t,href:e.issueUrl||"",icon:"github",key:"issue",label:"GitHub Issue",value:e.issueUrl?n.label:"",visible:!!e.issueUrl},{detail:t,href:e.prUrl||"",icon:"github",key:"pr",label:"Pull Request",value:e.prUrl?i.label:"",visible:!!e.prUrl},{copyValue:o,detail:o,href:k(o),icon:"blueprint",key:"blueprint",label:"Blueprint",value:"APP_BLUEPRINT.md",visible:!!(e.blueprintExists&&o)},{copyValue:p,detail:p,href:k(p),icon:"report",key:"session-report",label:"Report",value:H,visible:!!p},{detail:c(a==null?void 0:a.reason,a==null?void 0:a.mergedAt),icon:"github",key:"pr-outcome",label:"PR Outcome",value:Q((a==null?void 0:a.outcome)||""),visible:!!(a!=null&&a.outcome)}].filter(E=>E.visible)}function y(e={}){var r;return String(e.createdAt||((r=e.manifest)==null?void 0:r.createdAt)||e.sessionId||"")}function _e(e=[]){return e.filter(v).sort((r,t)=>y(r).localeCompare(y(t)))}function Ie({payloadLimits:e={},sessions:r=[]}={}){return{maxOpenSessions:Number(e.maxOpenSessions||D),openSessionCount:Number(e.openSessionCount||r.filter(v).length)}}function Te({diff:e={},selectedSession:r=null,sessionMode:t=""}={}){return t==="inspect"&&(r==null?void 0:r.worktreeReady)===!0&&typeof e.openDialog=="function"}function Re(e=null){if(!e)return null;const r=e.metadata||{},t=M(e);return{...e,branch:e.branch||r.branch||r.session_branch||"",issueTitle:e.issueTitle||r.issue_title||"",issueUrl:e.issueUrl||r.issue_url||"",prUrl:e.prUrl||r.pr_url||"",pullRequestPath:e.pullRequestPath||r.pull_request_path||"",sessionName:e.sessionName||r.issue_word||"",sourcePrTitle:r.source_pr_title||"",sourcePrUpdateMode:r.source_pr_update_mode||"",sourcePrUrl:r.source_pr_url||"",workSource:r.work_source||"",worktree:t,worktreeReady:e.worktreeReady===!0||!!t}}function Y(e={}){const r=String((e==null?void 0:e.currentStep)||""),t=v(e||{});return((e==null?void 0:e.stepDefinitions)||[]).map((n,i)=>{const b=String(n.status||""),l=b==="current"||n.id===r,o=b==="done"||n.done===!0,a=String(n.description||""),p=t&&o&&!l&&n.rewindable!==!1;return{badges:[],canExpand:o&&!l&&(!!a||p),canRewind:p,current:l,description:a,done:o,id:n.id,index:Number.isFinite(Number(n.index))?Number(n.index):i,label:n.label||n.id,rewindLabel:n.label||n.id,rewindStepId:n.id,state:l?"current":o?"done":"pending",title:a||void 0}})}function Ue(e={}){return Y(e)}function Z(e){return{blueprint:P,branch:I,codex:_,github:w,report:P,session:g,step:F,worktree:O}[e]||g}function Ae(e={}){return J(e,(e==null?void 0:e.stepDefinitions)||[]).map(r=>({...r,icon:Z(r.icon)}))}function Ce(e={}){const r=String(e.icon||"");return r?{branch:I,code:h,codex:_,commit:x,github:w,"message-square-plus":N,"rotate-ccw":V,run:L,success:$,sync:B}[r]||h:h}function Ee(e=[],r=null){const t=e.find(n=>n.enabled!==!0&&n.disabledReason);return t?t.disabledReason:r!=null&&r.visible&&r.enabled!==!0&&r.disabledReason||""}function Be(e,r){return e.messageType===r?e.message:""}function $e(e=""){return m(e)}export{oe as A,le as B,ye as C,Ae as D,Ie as E,d as F,ue as G,we as H,Q as I,M as J,ie as K,ve as L,_e as M,ae as S,te as V,re as a,ne as b,Ue as c,Y as d,ke as e,Be as f,Ee as g,Re as h,Te as i,z as j,m as k,ce as l,de as m,se as n,pe as o,S as p,he as q,fe as r,$e as s,ge as t,be as u,Ce as v,Se as w,Pe as x,j as y,me as z};
package/dist/index.html CHANGED
@@ -5,7 +5,7 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <link rel="icon" type="image/svg+xml" href="/assets/favicon-B93tlu1U.svg" />
7
7
  <title>Studio</title>
8
- <script type="module" crossorigin src="/assets/index-CY-wDjNv.js"></script>
8
+ <script type="module" crossorigin src="/assets/index-DqoYKexs.js"></script>
9
9
  <link rel="stylesheet" crossorigin href="/assets/index-Bf6YPMks.css">
10
10
  </head>
11
11
  <body>
@@ -3,6 +3,9 @@ import process from "node:process";
3
3
  import {
4
4
  gitToolchainMountArgs
5
5
  } from "@local/studio-terminal-core/server/gitToolchainMounts";
6
+ import {
7
+ githubSshToHttpsGitDockerEnvArgs
8
+ } from "@local/studio-terminal-core/server/gitGithubTransport";
6
9
  import {
7
10
  targetRuntimeNetworkDockerArgs
8
11
  } from "@local/studio-terminal-core/server/runtimeContainers";
@@ -108,6 +111,7 @@ function buildDoctorToolchainArgs(commandArgs, options = {}) {
108
111
  "run",
109
112
  "--rm",
110
113
  ...toolchainHomeDockerArgs(extraArgs),
114
+ ...githubSshToHttpsGitDockerEnvArgs(),
111
115
  "--label",
112
116
  STUDIO_TOOLCHAIN_CONTAINER_LABEL,
113
117
  "--label",
@@ -0,0 +1,33 @@
1
+ const GITHUB_SSH_TO_HTTPS_GIT_CONFIG = Object.freeze([
2
+ {
3
+ key: "url.https://github.com/.insteadOf",
4
+ value: "git@github.com:"
5
+ },
6
+ {
7
+ key: "url.https://github.com/.insteadOf",
8
+ value: "ssh://git@github.com/"
9
+ }
10
+ ]);
11
+
12
+ function githubSshToHttpsGitEnv() {
13
+ return Object.fromEntries([
14
+ ["GIT_CONFIG_COUNT", String(GITHUB_SSH_TO_HTTPS_GIT_CONFIG.length)],
15
+ ...GITHUB_SSH_TO_HTTPS_GIT_CONFIG.flatMap((entry, index) => [
16
+ [`GIT_CONFIG_KEY_${index}`, entry.key],
17
+ [`GIT_CONFIG_VALUE_${index}`, entry.value]
18
+ ])
19
+ ]);
20
+ }
21
+
22
+ function githubSshToHttpsGitDockerEnvArgs() {
23
+ return Object.entries(githubSshToHttpsGitEnv()).flatMap(([key, value]) => [
24
+ "-e",
25
+ `${key}=${value}`
26
+ ]);
27
+ }
28
+
29
+ export {
30
+ GITHUB_SSH_TO_HTTPS_GIT_CONFIG,
31
+ githubSshToHttpsGitDockerEnvArgs,
32
+ githubSshToHttpsGitEnv
33
+ };