vibe64 0.1.40 → 0.1.41

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 (67) hide show
  1. package/bin/run.js +1841 -1837
  2. package/bin/upgrade-state.js +2693 -2685
  3. package/dist/assets/{GithubBrowserTabs-BoDkGFtY.js → GithubBrowserTabs-YvIe2BdE.js} +1 -1
  4. package/dist/assets/{Vibe64AuthSettingsButton-CmiidAs5.js → Vibe64AuthSettingsButton-DLdfT68V.js} +1 -1
  5. package/dist/assets/{Vibe64DashboardShell-MCzEQCWu.js → Vibe64DashboardShell-DMPz6fIx.js} +1 -1
  6. package/dist/assets/{Vibe64DatabaseWorkspace-DM9V017v.js → Vibe64DatabaseWorkspace-BCEIOlSg.js} +1 -1
  7. package/dist/assets/{Vibe64OutputControls-CU9H0Dur.js → Vibe64OutputControls-DMoqL0VD.js} +1 -1
  8. package/dist/assets/{Vibe64RepositoryWorkspace-DaAChLA8.js → Vibe64RepositoryWorkspace-BdwRwbxp.js} +1 -1
  9. package/dist/assets/{Vibe64SessionFiles-CM2EzXBf.js → Vibe64SessionFiles-ChJWUOqm.js} +1 -1
  10. package/dist/assets/{_sessionId_-DVHd6D5V.js → _sessionId_-Bw0KfJeR.js} +1 -1
  11. package/dist/assets/_slug_-CAmuBm-M.css +1 -0
  12. package/dist/assets/_slug_-q9prK_gX.js +25 -0
  13. package/dist/assets/{access-BbzSuMt5.js → access-C05Nkq6r.js} +1 -1
  14. package/dist/assets/{app-BNh2oZg-.js → app-D1CGY9Xm.js} +1 -1
  15. package/dist/assets/{changes-D8Koqrqg.js → changes-D17XpgGz.js} +1 -1
  16. package/dist/assets/{client-CybfBKCn.js → client-BxGiylrJ.js} +1 -1
  17. package/dist/assets/{client-D6UGamrv.css → client-C8jwAMY9.css} +1 -1
  18. package/dist/assets/{dashboard-DLrmf5ed.js → dashboard-BXXgeQ0Q.js} +1 -1
  19. package/dist/assets/{definitions-DgyQJgn-.js → definitions-SNvFDEFS.js} +1 -1
  20. package/dist/assets/{env-rVQwLtYr.js → env-sXAQqKWk.js} +1 -1
  21. package/dist/assets/{health-B6r9LLrd.js → health-Cr34pf2p.js} +1 -1
  22. package/dist/assets/{history-C6xLWUxL.js → history-N1iRZaab.js} +1 -1
  23. package/dist/assets/{index-BC29JK2e.css → index-B17d4wpZ.css} +1 -1
  24. package/dist/assets/index-Mxalhei8.js +138 -0
  25. package/dist/assets/{integrations-CcrqPXxj.js → integrations-BmwFvHgZ.js} +1 -1
  26. package/dist/assets/{issues-DEjIlMdl.js → issues-BbiG7dCV.js} +1 -1
  27. package/dist/assets/{learning-BP1xvd8w.js → learning-CUCuuoHM.js} +1 -1
  28. package/dist/assets/{publish-CVXolnAG.js → publish-4r_4K5IY.js} +1 -1
  29. package/dist/assets/{publish-CPWnztCc.css → publish-BFTsAMCF.css} +1 -1
  30. package/dist/assets/{pull-requests-DdgzLzY_.js → pull-requests-DY9jg3cE.js} +1 -1
  31. package/dist/assets/{repository-5S0LzRq3.js → repository-DhXdoMP6.js} +1 -1
  32. package/dist/assets/{settings-BKP_eQ3F.js → settings-Cj4u-76p.js} +1 -1
  33. package/dist/assets/{useArchivedVibe64Sessions-D8DWpcSy.js → useArchivedVibe64Sessions-BXNg8oES.js} +1 -1
  34. package/dist/assets/{useVibe64ConversationLog-D-Vkq0sK.js → useVibe64ConversationLog-C1xjhFtS.js} +1 -1
  35. package/dist/assets/{useVibe64DatabaseTools-Dpm53ruL.js → useVibe64DatabaseTools-H6H-YJQX.js} +1 -1
  36. package/dist/assets/{useVibe64SessionData-CGJXj3r7.js → useVibe64SessionData-CnDOFFHb.js} +1 -1
  37. package/dist/assets/{useVibe64SessionSelection-BEqKR412.js → useVibe64SessionSelection-J87nJ9p5.js} +1 -1
  38. package/dist/assets/{vibe64SessionFocus-tv2wz7_H.js → vibe64SessionFocus-DlN8NwcE.js} +1 -1
  39. package/dist/index.html +5 -5
  40. package/docs/colleague-usage/ai-onboarding.md +3 -1
  41. package/docs/colleague-usage/learning-environment.md +39 -25
  42. package/docs/colleague-usage/learning-mode-ui.md +18 -9
  43. package/docs/colleague-usage/learning-practice-projects.md +2 -2
  44. package/docs/colleague-usage/learning-teacher-guide.md +2 -1
  45. package/docs/colleague-usage/learning-with-colleague.md +3 -3
  46. package/docs/colleague-usage/lesson-authoring.md +1 -1
  47. package/docs/colleague-usage/lesson-step-bar.md +38 -24
  48. package/docs/colleague-usage/preview-starting-application.md +10 -1
  49. package/docs/colleague-usage/project-setup.md +2 -2
  50. package/docs/colleague-usage/publishing.md +3 -1
  51. package/docs/colleague-usage/starter-apps.md +2 -2
  52. package/docs/training-content.md +2 -2
  53. package/node_modules/@jskit-ai/assistant-core/package.json +1 -1
  54. package/node_modules/@jskit-ai/assistant-runtime/package.json +1 -1
  55. package/node_modules/@jskit-ai/assistant-voice/package.json +1 -1
  56. package/node_modules/@jskit-ai/connectors-catalog/package.json +1 -1
  57. package/node_modules/@jskit-ai/realtime/package.json +1 -1
  58. package/node_modules/@local/vibe64-genesis/bin/vibe64-genesis-host-context +77 -80
  59. package/node_modules/@local/vibe64-genesis/src/server/agentSpecs.js +6 -6
  60. package/node_modules/@local/vibe64-genesis/src/server/index.js +195 -194
  61. package/node_modules/@local/vibe64-genesis/src/server/promptContext.js +144 -149
  62. package/node_modules/@local/vibe64-terminals/src/server/sessionWorkOperationCommand.js +8 -7
  63. package/package.json +8 -8
  64. package/server.bundle.mjs +14269 -14252
  65. package/dist/assets/_slug_-DsfaE8Vh.js +0 -25
  66. package/dist/assets/_slug_-_qfQqdHb.css +0 -1
  67. package/dist/assets/index-B9P6KjvH.js +0 -138
@@ -1,4 +1,4 @@
1
- import{a as __toESM,t as __commonJSMin}from"./rolldown-runtime-DBalRfVu.js";import{D as createVNode,E as createTextVNode,Ht as watch,On as unref,Pt as useId,Zn as normalizeClass,_ as createBaseVNode,b as createElementBlock,bt as renderList,ct as onMounted,er as normalizeStyle,g as computed,gn as reactive,it as onBeforeUnmount,mt as openBlock,o as Fragment,pn as onScopeDispose,qt as withCtx,tr as toDisplayString,v as createBlock,vn as ref,w as createSlots,y as createCommentVNode}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{d as VProgressLinear,h as VIcon}from"./ripple-EFNA8EBu.js";import{u as getHttpWebClient}from"./vibe64ProjectScope.local-B06ABkhI.js";import{t as VChip}from"./VChip-VVdtjfq-.js";import{Sr as mdiSourceMerge,U as mdiChevronRight,X as mdiClose,Y as mdiClockOutline,br as mdiSourceBranchSync,c as mdiAccountOutline,et as mdiCloudRefreshOutline,jt as mdiFileCompare,wr as mdiSourceRepository,xr as mdiSourceCommit}from"./mdi-Bt90Ns76.js";import{t as VBtn}from"./VBtn-BhVEwXLX.js";import{t as VAlert}from"./VAlert-gwuhYlYb.js";import{t as VDivider}from"./VDivider-Dq25WsKu.js";import{t as VSheet}from"./VSheet-DxYEFfnM.js";import{t as VDialog}from"./VDialog-CQDhjRiV.js";import{i as VCardTitle,n as VCardText,o as VCardActions,t as VCard}from"./VCard-C3Hx769y.js";import{t as VSpacer}from"./VSpacer-CgWOWvBh.js";import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper-DNW4j-dv.js";import{n as useRealtimeEvent}from"./useRealtimeEvent-DrOiU8lJ.js";import{t as StudioErrorNotice_default}from"./StudioErrorNotice-C_jbvp9V.js";import{r as writeLocalStorageJson,t as readLocalStorageJson}from"./browserLocalStorage-B4C7rHrs.js";import"./shared-BEwrtWSp.js";import{n as vibe64ApiResponseError}from"./vibe64ApiResponses-DNLY1Kel.js";import{J as vibe64RepositoryVersionDiffPath,O as VIBE64_SESSION_CHANGED_EVENT,Q as vibe64SessionCheckUpdatesPath,X as vibe64SessionChangeDiffPath,Y as vibe64RepositoryVersionFilesPath,Z as vibe64SessionChangesPath,b as readRefOrGetterValue,k as VIBE64_SOURCE_EDITOR_FILE_CHANGED_EVENT,q as vibe64RepositoryHistoryPath}from"./index-B9P6KjvH.js";import{t as Vibe64TemporaryAiFixAction_default}from"./Vibe64TemporaryAiFixAction-CIePbdW8.js";import{n as diffWordsWithSpace,r as diffChars}from"./libesm-CR-iGldz.js";import{n as repositoryStatusRealtimeShouldRefresh,r as repositoryStatusSessionId,t as repositoryStatusRealtimeNeedsCanonicalCheck}from"./vibe64RepositoryRealtime-DXk0Jai3.js";import{t as Vibe64DashboardPageHeader_default}from"./Vibe64DashboardPageHeader-BMrdRph6.js";function nonnegativeInteger(value){const number=Number(value);return Number.isSafeInteger(number)&&number>=0?number:0}function repositoryUpdateRelationship(aheadValue=0,behindValue=0){const ahead=nonnegativeInteger(aheadValue);const behind=nonnegativeInteger(behindValue);if(ahead>0&&behind>0)return`diverged`;if(behind>0)return`behind`;if(ahead>0)return`ahead`;return`current`}var LineType;(function(LineType){LineType[`INSERT`]=`insert`;LineType[`DELETE`]=`delete`;LineType[`CONTEXT`]=`context`})(LineType||(LineType={}));var OutputFormatType={LINE_BY_LINE:`line-by-line`,SIDE_BY_SIDE:`side-by-side`};var LineMatchingType={LINES:`lines`,WORDS:`words`,NONE:`none`};var DiffStyleType={WORD:`word`,CHAR:`char`};var ColorSchemeType;(function(ColorSchemeType){ColorSchemeType[`AUTO`]=`auto`;ColorSchemeType[`DARK`]=`dark`;ColorSchemeType[`LIGHT`]=`light`})(ColorSchemeType||(ColorSchemeType={}));var regex=RegExp(`[`+[`-`,`[`,`]`,`/`,`{`,`}`,`(`,`)`,`*`,`+`,`?`,`.`,`\\`,`^`,`$`,`|`].join(`\\`)+`]`,`g`);function escapeForRegExp(str){return str.replace(regex,`\\$&`)}function unifyPath(path){return path?path.replace(/\\/g,`/`):path}function hashCode(text){let i,chr,len;let hash=0;for(i=0,len=text.length;i<len;i++){chr=text.charCodeAt(i);hash=(hash<<5)-hash+chr;hash|=0}return hash}function max(arr){const length=arr.length;let max=-Infinity;for(let i=0;i<length;i++)max=Math.max(max,arr[i]);return max}function getExtension(filename,language){const filenameParts=filename.split(`.`);return filenameParts.length>1?filenameParts[filenameParts.length-1]:language}function startsWithAny(str,prefixes){return prefixes.reduce((startsWith,prefix)=>startsWith||str.startsWith(prefix),false)}var baseDiffFilenamePrefixes=[`a/`,`b/`,`i/`,`w/`,`c/`,`o/`];function getFilename(line,linePrefix,extraPrefix){const prefixes=extraPrefix!==void 0?[...baseDiffFilenamePrefixes,extraPrefix]:baseDiffFilenamePrefixes;const[,filename=``]=(linePrefix?new RegExp(`^${escapeForRegExp(linePrefix)} "?(.+?)"?$`):new RegExp(`^"?(.+?)"?$`)).exec(line)||[];const matchingPrefix=prefixes.find(p=>filename.indexOf(p)===0);return(matchingPrefix?filename.slice(matchingPrefix.length):filename).replace(/\s+\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:\.\d+)? [+-]\d{4}.*$/,``)}function getSrcFilename(line,srcPrefix){return getFilename(line,`---`,srcPrefix)}function getDstFilename(line,dstPrefix){return getFilename(line,`+++`,dstPrefix)}function parse(diffInput,config={}){const files=[];let currentFile=null;let currentBlock=null;let oldLine=null;let oldLine2=null;let newLine=null;let possibleOldName=null;let possibleNewName=null;const oldFileNameHeader=`--- `;const newFileNameHeader=`+++ `;const hunkHeaderPrefix=`@@`;const oldMode=/^old mode (\d{6})/;const newMode=/^new mode (\d{6})/;const deletedFileMode=/^deleted file mode (\d{6})/;const newFileMode=/^new file mode (\d{6})/;const copyFrom=/^copy from "?(.+)"?/;const copyTo=/^copy to "?(.+)"?/;const renameFrom=/^rename from "?(.+)"?/;const renameTo=/^rename to "?(.+)"?/;const similarityIndex=/^similarity index (\d+)%/;const dissimilarityIndex=/^dissimilarity index (\d+)%/;const index=/^index ([\da-z]+)\.\.([\da-z]+)\s*(\d{6})?/;const binaryFiles=/^Binary files (.*) and (.*) differ/;const binaryDiff=/^GIT binary patch/;const combinedIndex=/^index ([\da-z]+),([\da-z]+)\.\.([\da-z]+)/;const combinedMode=/^mode (\d{6}),(\d{6})\.\.(\d{6})/;const combinedNewFile=/^new file mode (\d{6})/;const combinedDeletedFile=/^deleted file mode (\d{6}),(\d{6})/;const diffLines=diffInput.replace(/\/g,``).replace(/\r\n?/g,`
1
+ import{a as __toESM,t as __commonJSMin}from"./rolldown-runtime-DBalRfVu.js";import{D as createVNode,E as createTextVNode,Ht as watch,On as unref,Pt as useId,Zn as normalizeClass,_ as createBaseVNode,b as createElementBlock,bt as renderList,ct as onMounted,er as normalizeStyle,g as computed,gn as reactive,it as onBeforeUnmount,mt as openBlock,o as Fragment,pn as onScopeDispose,qt as withCtx,tr as toDisplayString,v as createBlock,vn as ref,w as createSlots,y as createCommentVNode}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{d as VProgressLinear,h as VIcon}from"./ripple-EFNA8EBu.js";import{u as getHttpWebClient}from"./vibe64ProjectScope.local-B06ABkhI.js";import{t as VChip}from"./VChip-VVdtjfq-.js";import{Sr as mdiSourceMerge,U as mdiChevronRight,X as mdiClose,Y as mdiClockOutline,br as mdiSourceBranchSync,c as mdiAccountOutline,et as mdiCloudRefreshOutline,jt as mdiFileCompare,wr as mdiSourceRepository,xr as mdiSourceCommit}from"./mdi-Bt90Ns76.js";import{t as VBtn}from"./VBtn-BhVEwXLX.js";import{t as VAlert}from"./VAlert-gwuhYlYb.js";import{t as VDivider}from"./VDivider-Dq25WsKu.js";import{t as VSheet}from"./VSheet-DxYEFfnM.js";import{t as VDialog}from"./VDialog-CQDhjRiV.js";import{i as VCardTitle,n as VCardText,o as VCardActions,t as VCard}from"./VCard-C3Hx769y.js";import{t as VSpacer}from"./VSpacer-CgWOWvBh.js";import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper-DNW4j-dv.js";import{n as useRealtimeEvent}from"./useRealtimeEvent-DrOiU8lJ.js";import{t as StudioErrorNotice_default}from"./StudioErrorNotice-C_jbvp9V.js";import{r as writeLocalStorageJson,t as readLocalStorageJson}from"./browserLocalStorage-B4C7rHrs.js";import"./shared-BEwrtWSp.js";import{n as vibe64ApiResponseError}from"./vibe64ApiResponses-DNLY1Kel.js";import{J as vibe64RepositoryVersionDiffPath,O as VIBE64_SESSION_CHANGED_EVENT,Q as vibe64SessionCheckUpdatesPath,X as vibe64SessionChangeDiffPath,Y as vibe64RepositoryVersionFilesPath,Z as vibe64SessionChangesPath,b as readRefOrGetterValue,k as VIBE64_SOURCE_EDITOR_FILE_CHANGED_EVENT,q as vibe64RepositoryHistoryPath}from"./index-Mxalhei8.js";import{t as Vibe64TemporaryAiFixAction_default}from"./Vibe64TemporaryAiFixAction-CIePbdW8.js";import{n as diffWordsWithSpace,r as diffChars}from"./libesm-CR-iGldz.js";import{n as repositoryStatusRealtimeShouldRefresh,r as repositoryStatusSessionId,t as repositoryStatusRealtimeNeedsCanonicalCheck}from"./vibe64RepositoryRealtime-DXk0Jai3.js";import{t as Vibe64DashboardPageHeader_default}from"./Vibe64DashboardPageHeader-BMrdRph6.js";function nonnegativeInteger(value){const number=Number(value);return Number.isSafeInteger(number)&&number>=0?number:0}function repositoryUpdateRelationship(aheadValue=0,behindValue=0){const ahead=nonnegativeInteger(aheadValue);const behind=nonnegativeInteger(behindValue);if(ahead>0&&behind>0)return`diverged`;if(behind>0)return`behind`;if(ahead>0)return`ahead`;return`current`}var LineType;(function(LineType){LineType[`INSERT`]=`insert`;LineType[`DELETE`]=`delete`;LineType[`CONTEXT`]=`context`})(LineType||(LineType={}));var OutputFormatType={LINE_BY_LINE:`line-by-line`,SIDE_BY_SIDE:`side-by-side`};var LineMatchingType={LINES:`lines`,WORDS:`words`,NONE:`none`};var DiffStyleType={WORD:`word`,CHAR:`char`};var ColorSchemeType;(function(ColorSchemeType){ColorSchemeType[`AUTO`]=`auto`;ColorSchemeType[`DARK`]=`dark`;ColorSchemeType[`LIGHT`]=`light`})(ColorSchemeType||(ColorSchemeType={}));var regex=RegExp(`[`+[`-`,`[`,`]`,`/`,`{`,`}`,`(`,`)`,`*`,`+`,`?`,`.`,`\\`,`^`,`$`,`|`].join(`\\`)+`]`,`g`);function escapeForRegExp(str){return str.replace(regex,`\\$&`)}function unifyPath(path){return path?path.replace(/\\/g,`/`):path}function hashCode(text){let i,chr,len;let hash=0;for(i=0,len=text.length;i<len;i++){chr=text.charCodeAt(i);hash=(hash<<5)-hash+chr;hash|=0}return hash}function max(arr){const length=arr.length;let max=-Infinity;for(let i=0;i<length;i++)max=Math.max(max,arr[i]);return max}function getExtension(filename,language){const filenameParts=filename.split(`.`);return filenameParts.length>1?filenameParts[filenameParts.length-1]:language}function startsWithAny(str,prefixes){return prefixes.reduce((startsWith,prefix)=>startsWith||str.startsWith(prefix),false)}var baseDiffFilenamePrefixes=[`a/`,`b/`,`i/`,`w/`,`c/`,`o/`];function getFilename(line,linePrefix,extraPrefix){const prefixes=extraPrefix!==void 0?[...baseDiffFilenamePrefixes,extraPrefix]:baseDiffFilenamePrefixes;const[,filename=``]=(linePrefix?new RegExp(`^${escapeForRegExp(linePrefix)} "?(.+?)"?$`):new RegExp(`^"?(.+?)"?$`)).exec(line)||[];const matchingPrefix=prefixes.find(p=>filename.indexOf(p)===0);return(matchingPrefix?filename.slice(matchingPrefix.length):filename).replace(/\s+\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:\.\d+)? [+-]\d{4}.*$/,``)}function getSrcFilename(line,srcPrefix){return getFilename(line,`---`,srcPrefix)}function getDstFilename(line,dstPrefix){return getFilename(line,`+++`,dstPrefix)}function parse(diffInput,config={}){const files=[];let currentFile=null;let currentBlock=null;let oldLine=null;let oldLine2=null;let newLine=null;let possibleOldName=null;let possibleNewName=null;const oldFileNameHeader=`--- `;const newFileNameHeader=`+++ `;const hunkHeaderPrefix=`@@`;const oldMode=/^old mode (\d{6})/;const newMode=/^new mode (\d{6})/;const deletedFileMode=/^deleted file mode (\d{6})/;const newFileMode=/^new file mode (\d{6})/;const copyFrom=/^copy from "?(.+)"?/;const copyTo=/^copy to "?(.+)"?/;const renameFrom=/^rename from "?(.+)"?/;const renameTo=/^rename to "?(.+)"?/;const similarityIndex=/^similarity index (\d+)%/;const dissimilarityIndex=/^dissimilarity index (\d+)%/;const index=/^index ([\da-z]+)\.\.([\da-z]+)\s*(\d{6})?/;const binaryFiles=/^Binary files (.*) and (.*) differ/;const binaryDiff=/^GIT binary patch/;const combinedIndex=/^index ([\da-z]+),([\da-z]+)\.\.([\da-z]+)/;const combinedMode=/^mode (\d{6}),(\d{6})\.\.(\d{6})/;const combinedNewFile=/^new file mode (\d{6})/;const combinedDeletedFile=/^deleted file mode (\d{6}),(\d{6})/;const diffLines=diffInput.replace(/\/g,``).replace(/\r\n?/g,`
2
2
  `).split(`
3
3
  `);function saveBlock(){if(currentBlock!==null&&currentFile!==null){currentFile.blocks.push(currentBlock);currentBlock=null}}function saveFile(){if(currentFile!==null){if(!currentFile.oldName&&possibleOldName!==null)currentFile.oldName=possibleOldName;if(!currentFile.newName&&possibleNewName!==null)currentFile.newName=possibleNewName;if(currentFile.newName){files.push(currentFile);currentFile=null}}possibleOldName=null;possibleNewName=null}function startFile(){saveBlock();saveFile();currentFile={blocks:[],deletedLines:0,addedLines:0}}function startBlock(line){saveBlock();let values;if(currentFile!==null){if(values=/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@.*/.exec(line)){currentFile.isCombined=false;oldLine=parseInt(values[1],10);newLine=parseInt(values[2],10)}else if(values=/^@@@ -(\d+)(?:,\d+)? -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@@.*/.exec(line)){currentFile.isCombined=true;oldLine=parseInt(values[1],10);oldLine2=parseInt(values[2],10);newLine=parseInt(values[3],10)}else{if(line.startsWith(hunkHeaderPrefix))console.error(`Failed to parse lines, starting in 0!`);oldLine=0;newLine=0;currentFile.isCombined=false}}currentBlock={lines:[],oldStartLine:oldLine,oldStartLine2:oldLine2,newStartLine:newLine,header:line}}function createLine(line){if(currentFile===null||currentBlock===null||oldLine===null||newLine===null)return;const currentLine={content:line};const addedPrefixes=currentFile.isCombined?[`+ `,` +`,`++`]:[`+`];const deletedPrefixes=currentFile.isCombined?[`- `,` -`,`--`]:[`-`];if(startsWithAny(line,addedPrefixes)){currentFile.addedLines++;currentLine.type=LineType.INSERT;currentLine.oldNumber=void 0;currentLine.newNumber=newLine++}else if(startsWithAny(line,deletedPrefixes)){currentFile.deletedLines++;currentLine.type=LineType.DELETE;currentLine.oldNumber=oldLine++;currentLine.newNumber=void 0}else{currentLine.type=LineType.CONTEXT;currentLine.oldNumber=oldLine++;currentLine.newNumber=newLine++}currentBlock.lines.push(currentLine)}function existHunkHeader(line,lineIdx){let idx=lineIdx;while(idx<diffLines.length-3){if(line.startsWith(`diff`))return false;if(diffLines[idx].startsWith(oldFileNameHeader)&&diffLines[idx+1].startsWith(newFileNameHeader)&&diffLines[idx+2].startsWith(hunkHeaderPrefix))return true;idx++}return false}diffLines.forEach((line,lineIndex)=>{if(!line||line.startsWith(`*`))return;let values;const prevLine=diffLines[lineIndex-1];const nxtLine=diffLines[lineIndex+1];const afterNxtLine=diffLines[lineIndex+2];if(line.startsWith(`diff --git`)||line.startsWith(`diff --combined`)){startFile();if(values=/^diff --git "?([a-ciow]\/.+)"? "?([a-ciow]\/.+)"?/.exec(line)){possibleOldName=getFilename(values[1],void 0,config.dstPrefix);possibleNewName=getFilename(values[2],void 0,config.srcPrefix)}if(currentFile===null)throw new Error(`Where is my file !!!`);currentFile.isGitDiff=true;return}if(line.startsWith(`Binary files`)&&!(currentFile===null||currentFile===void 0?void 0:currentFile.isGitDiff)){startFile();if(values=/^Binary files "?([a-ciow]\/.+)"? and "?([a-ciow]\/.+)"? differ/.exec(line)){possibleOldName=getFilename(values[1],void 0,config.dstPrefix);possibleNewName=getFilename(values[2],void 0,config.srcPrefix)}if(currentFile===null)throw new Error(`Where is my file !!!`);currentFile.isBinary=true;return}if(!currentFile||!currentFile.isGitDiff&&currentFile&&line.startsWith(oldFileNameHeader)&&nxtLine.startsWith(newFileNameHeader)&&afterNxtLine.startsWith(hunkHeaderPrefix))startFile();if(currentFile===null||currentFile===void 0?void 0:currentFile.isTooBig)return;if(currentFile&&(typeof config.diffMaxChanges===`number`&&currentFile.addedLines+currentFile.deletedLines>config.diffMaxChanges||typeof config.diffMaxLineLength===`number`&&line.length>config.diffMaxLineLength)){currentFile.isTooBig=true;currentFile.addedLines=0;currentFile.deletedLines=0;currentFile.blocks=[];currentBlock=null;startBlock(typeof config.diffTooBigMessage===`function`?config.diffTooBigMessage(files.length):`Diff too big to be displayed`);return}if(line.startsWith(oldFileNameHeader)&&nxtLine.startsWith(newFileNameHeader)||line.startsWith(newFileNameHeader)&&prevLine.startsWith(oldFileNameHeader)){if(currentFile&&!currentFile.oldName&&line.startsWith(`--- `)&&(values=getSrcFilename(line,config.srcPrefix))){currentFile.oldName=values;currentFile.language=getExtension(currentFile.oldName,currentFile.language);return}if(currentFile&&!currentFile.newName&&line.startsWith(`+++ `)&&(values=getDstFilename(line,config.dstPrefix))){currentFile.newName=values;currentFile.language=getExtension(currentFile.newName,currentFile.language);return}}if(currentFile&&(line.startsWith(hunkHeaderPrefix)||currentFile.isGitDiff&&currentFile.oldName&&currentFile.newName&&!currentBlock)){startBlock(line);return}if(currentBlock&&(line.startsWith(`+`)||line.startsWith(`-`)||line.startsWith(` `))){createLine(line);return}const doesNotExistHunkHeader=!existHunkHeader(line,lineIndex);if(currentFile===null)throw new Error(`Where is my file !!!`);if(values=oldMode.exec(line))currentFile.oldMode=values[1];else if(values=newMode.exec(line))currentFile.newMode=values[1];else if(values=deletedFileMode.exec(line)){currentFile.deletedFileMode=values[1];currentFile.isDeleted=true}else if(values=newFileMode.exec(line)){currentFile.newFileMode=values[1];currentFile.isNew=true}else if(values=copyFrom.exec(line)){if(doesNotExistHunkHeader)currentFile.oldName=values[1];currentFile.isCopy=true}else if(values=copyTo.exec(line)){if(doesNotExistHunkHeader)currentFile.newName=values[1];currentFile.isCopy=true}else if(values=renameFrom.exec(line)){if(doesNotExistHunkHeader)currentFile.oldName=values[1];currentFile.isRename=true}else if(values=renameTo.exec(line)){if(doesNotExistHunkHeader)currentFile.newName=values[1];currentFile.isRename=true}else if(values=binaryFiles.exec(line)){currentFile.isBinary=true;currentFile.oldName=getFilename(values[1],void 0,config.srcPrefix);currentFile.newName=getFilename(values[2],void 0,config.dstPrefix);startBlock(`Binary file`)}else if(binaryDiff.test(line)){currentFile.isBinary=true;startBlock(line)}else if(values=similarityIndex.exec(line))currentFile.unchangedPercentage=parseInt(values[1],10);else if(values=dissimilarityIndex.exec(line))currentFile.changedPercentage=parseInt(values[1],10);else if(values=index.exec(line)){currentFile.checksumBefore=values[1];currentFile.checksumAfter=values[2];if(values[3])currentFile.mode=values[3]}else if(values=combinedIndex.exec(line)){currentFile.checksumBefore=[values[2],values[3]];currentFile.checksumAfter=values[1]}else if(values=combinedMode.exec(line)){currentFile.oldMode=[values[2],values[3]];currentFile.newMode=values[1]}else if(values=combinedNewFile.exec(line)){currentFile.newFileMode=values[1];currentFile.isNew=true}else if(values=combinedDeletedFile.exec(line)){currentFile.deletedFileMode=values[1];currentFile.isDeleted=true}});saveBlock();saveFile();return files}function levenshtein(a,b){if(a.length===0)return b.length;if(b.length===0)return a.length;const matrix=[];let i=0;for(;i<=b.length;i++)matrix[i]=[i];let j=0;for(;j<=a.length;j++)matrix[0][j]=j;for(i=1;i<=b.length;i++)for(j=1;j<=a.length;j++)if(b.charAt(i-1)===a.charAt(j-1))matrix[i][j]=matrix[i-1][j-1];else matrix[i][j]=Math.min(matrix[i-1][j-1]+1,Math.min(matrix[i][j-1]+1,matrix[i-1][j]+1));return matrix[b.length][a.length]}function newDistanceFn(str){return(x,y)=>{const xValue=str(x).trim();const yValue=str(y).trim();return levenshtein(xValue,yValue)/(xValue.length+yValue.length)}}function newMatcherFn(distance){function findBestMatch(a,b,cache=new Map){let bestMatchDist=Infinity;let bestMatch;for(let i=0;i<a.length;++i)for(let j=0;j<b.length;++j){const cacheKey=JSON.stringify([a[i],b[j]]);let md;if(!(cache.has(cacheKey)&&(md=cache.get(cacheKey)))){md=distance(a[i],b[j]);cache.set(cacheKey,md)}if(md<bestMatchDist){bestMatchDist=md;bestMatch={indexA:i,indexB:j,score:bestMatchDist}}}return bestMatch}function group(a,b,level=0,cache=new Map){const bm=findBestMatch(a,b,cache);if(!bm||a.length+b.length<3)return[[a,b]];const a1=a.slice(0,bm.indexA);const b1=b.slice(0,bm.indexB);const aMatch=[a[bm.indexA]];const bMatch=[b[bm.indexB]];const tailA=bm.indexA+1;const tailB=bm.indexB+1;const a2=a.slice(tailA);const b2=b.slice(tailB);const group1=group(a1,b1,level+1,cache);const groupMatch=group(aMatch,bMatch,level+1,cache);const group2=group(a2,b2,level+1,cache);let result=groupMatch;if(bm.indexA>0||bm.indexB>0)result=group1.concat(result);if(a.length>tailA||b.length>tailB)result=result.concat(group2);return result}return group}var CSSLineClass={INSERTS:`d2h-ins`,DELETES:`d2h-del`,CONTEXT:`d2h-cntx`,INFO:`d2h-info`,INSERT_CHANGES:`d2h-ins d2h-change`,DELETE_CHANGES:`d2h-del d2h-change`};var defaultRenderConfig={matching:LineMatchingType.NONE,matchWordsThreshold:.25,maxLineLengthHighlight:1e4,diffStyle:DiffStyleType.WORD,colorScheme:ColorSchemeType.LIGHT};var separator=`/`;var distance=newDistanceFn(change=>change.value);var matcher=newMatcherFn(distance);function isDevNullName(name){return name.indexOf(`dev/null`)!==-1}function removeInsElements(line){return line.replace(/(<ins[^>]*>((.|\n)*?)<\/ins>)/g,``)}function removeDelElements(line){return line.replace(/(<del[^>]*>((.|\n)*?)<\/del>)/g,``)}function toCSSClass(lineType){switch(lineType){case LineType.CONTEXT:return CSSLineClass.CONTEXT;case LineType.INSERT:return CSSLineClass.INSERTS;case LineType.DELETE:return CSSLineClass.DELETES}}function colorSchemeToCss(colorScheme){switch(colorScheme){case ColorSchemeType.DARK:return`d2h-dark-color-scheme`;case ColorSchemeType.AUTO:return`d2h-auto-color-scheme`;case ColorSchemeType.LIGHT:default:return`d2h-light-color-scheme`}}function prefixLength(isCombined){return isCombined?2:1}function escapeForHtml(str){return str.slice(0).replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#x27;`).replace(/\//g,`&#x2F;`)}function deconstructLine(line,isCombined,escape=true){const indexToSplit=prefixLength(isCombined);return{prefix:line.substring(0,indexToSplit),content:escape?escapeForHtml(line.substring(indexToSplit)):line.substring(indexToSplit)}}function filenameDiff(file){const oldFilename=unifyPath(file.oldName);const newFilename=unifyPath(file.newName);if(oldFilename!==newFilename&&!isDevNullName(oldFilename)&&!isDevNullName(newFilename)){const prefixPaths=[];const suffixPaths=[];const oldFilenameParts=oldFilename.split(separator);const newFilenameParts=newFilename.split(separator);const oldFilenamePartsSize=oldFilenameParts.length;const newFilenamePartsSize=newFilenameParts.length;let i=0;let j=oldFilenamePartsSize-1;let k=newFilenamePartsSize-1;while(i<j&&i<k)if(oldFilenameParts[i]===newFilenameParts[i]){prefixPaths.push(newFilenameParts[i]);i+=1}else break;while(j>i&&k>i)if(oldFilenameParts[j]===newFilenameParts[k]){suffixPaths.unshift(newFilenameParts[k]);j-=1;k-=1}else break;const finalPrefix=prefixPaths.join(separator);const finalSuffix=suffixPaths.join(separator);const oldRemainingPath=oldFilenameParts.slice(i,j+1).join(separator);const newRemainingPath=newFilenameParts.slice(i,k+1).join(separator);if(finalPrefix.length&&finalSuffix.length)return finalPrefix+`/{`+oldRemainingPath+` → `+newRemainingPath+`}/`+finalSuffix;else if(finalPrefix.length)return finalPrefix+`/{`+oldRemainingPath+` → `+newRemainingPath+`}`;else if(finalSuffix.length)return`{`+oldRemainingPath+` → `+newRemainingPath+`}/`+finalSuffix;return oldFilename+` → `+newFilename}else if(!isDevNullName(newFilename))return newFilename;else return oldFilename}function getHtmlId(file){return`d2h-${hashCode(filenameDiff(file)).toString().slice(-6)}`}function getFileIcon(file){let templateName=`file-changed`;if(file.isRename)templateName=`file-renamed`;else if(file.isCopy)templateName=`file-renamed`;else if(file.isNew)templateName=`file-added`;else if(file.isDeleted)templateName=`file-deleted`;else if(file.newName!==file.oldName)templateName=`file-renamed`;return templateName}function diffHighlight(diffLine1,diffLine2,isCombined,config={}){const{matching,maxLineLengthHighlight,matchWordsThreshold,diffStyle}=Object.assign(Object.assign({},defaultRenderConfig),config);const line1=deconstructLine(diffLine1,isCombined,false);const line2=deconstructLine(diffLine2,isCombined,false);if(line1.content.length>maxLineLengthHighlight||line2.content.length>maxLineLengthHighlight)return{oldLine:{prefix:line1.prefix,content:escapeForHtml(line1.content)},newLine:{prefix:line2.prefix,content:escapeForHtml(line2.content)}};const diff=diffStyle===`char`?diffChars(line1.content,line2.content):diffWordsWithSpace(line1.content,line2.content);const changedWords=[];if(diffStyle===`word`&&matching===`words`){const removed=diff.filter(element=>element.removed);const added=diff.filter(element=>element.added);matcher(added,removed).forEach(chunk=>{if(chunk[0].length===1&&chunk[1].length===1){if(distance(chunk[0][0],chunk[1][0])<matchWordsThreshold){changedWords.push(chunk[0][0]);changedWords.push(chunk[1][0])}}})}const highlightedLine=diff.reduce((highlightedLine,part)=>{const elemType=part.added?`ins`:part.removed?`del`:null;const addClass=changedWords.indexOf(part)>-1?` class="d2h-change"`:``;const escapedValue=escapeForHtml(part.value);return elemType!==null?`${highlightedLine}<${elemType}${addClass}>${escapedValue}</${elemType}>`:`${highlightedLine}${escapedValue}`},``);return{oldLine:{prefix:line1.prefix,content:removeInsElements(highlightedLine)},newLine:{prefix:line2.prefix,content:removeDelElements(highlightedLine)}}}var baseTemplatesPath$2=`file-summary`;var iconsBaseTemplatesPath$2=`icon`;var defaultFileListRendererConfig={colorScheme:defaultRenderConfig.colorScheme};var FileListRenderer=class{constructor(hoganUtils,config={}){this.hoganUtils=hoganUtils;this.config=Object.assign(Object.assign({},defaultFileListRendererConfig),config)}render(diffFiles){const files=diffFiles.map(file=>this.hoganUtils.render(baseTemplatesPath$2,`line`,{fileHtmlId:getHtmlId(file),oldName:file.oldName,newName:file.newName,fileName:filenameDiff(file),deletedLines:`-`+file.deletedLines,addedLines:`+`+file.addedLines},{fileIcon:this.hoganUtils.template(iconsBaseTemplatesPath$2,getFileIcon(file))})).join(`
4
4
  `);return this.hoganUtils.render(baseTemplatesPath$2,`wrapper`,{colorScheme:colorSchemeToCss(this.config.colorScheme),filesNumber:diffFiles.length,files})}};var defaultLineByLineRendererConfig=Object.assign(Object.assign({},defaultRenderConfig),{renderNothingWhenEmpty:false,matchingMaxComparisons:2500,maxLineSizeInBlockForComparison:200});var genericTemplatesPath$1=`generic`;var baseTemplatesPath$1=`line-by-line`;var iconsBaseTemplatesPath$1=`icon`;var tagsBaseTemplatesPath$1=`tag`;var LineByLineRenderer=class{constructor(hoganUtils,config={}){this.hoganUtils=hoganUtils;this.config=Object.assign(Object.assign({},defaultLineByLineRendererConfig),config)}render(diffFiles){const diffsHtml=diffFiles.map(file=>{let diffs;if(file.blocks.length)diffs=this.generateFileHtml(file);else diffs=this.generateEmptyDiff();return this.makeFileDiffHtml(file,diffs)}).join(`
@@ -1,4 +1,4 @@
1
- import{$n as normalizeProps,D as createVNode,E as createTextVNode,En as toValue,Ht as watch,On as unref,St as resolveComponent,Yt as withDirectives,Zn as normalizeClass,_ as createBaseVNode,an as getCurrentScope,b as createElementBlock,bt as renderList,ct as onMounted,er as normalizeStyle,et as mergeProps,g as computed,gn as reactive,it as onBeforeUnmount,mt as openBlock,o as Fragment,pn as onScopeDispose,qt as withCtx,tr as toDisplayString,tt as nextTick,v as createBlock,vn as ref,w as createSlots,wn as toRef,wt as resolveDynamicComponent,xt as renderSlot,y as createCommentVNode,z as guardReactiveProps}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{B as useTextColor,E as useDensity,Gn as isString,H as useDimension,I as makeRoundedProps,L as useRounded,Mt as makeComponentProps,Nt as propsFactory,R as useBackgroundColor,Sn as pick,T as makeDensityProps,U as VDefaultsProvider,V as makeDimensionProps,Y as makeTagProps,_t as useRender,ar as vShow,h as VIcon,i as useLink,kt as provideDefaults,mt as IconValue,n as makeRouterProps,or as withKeys,ot as useDisplay,sr as withModifiers,wt as genericComponent}from"./ripple-EFNA8EBu.js";import{T as ROUTE_VISIBILITY_PUBLIC,t as useEndpointResource}from"./useEndpointResource-Ds8EDBZ2.js";import{u as getHttpWebClient}from"./vibe64ProjectScope.local-B06ABkhI.js";import{n as VList,s as VListItem,t as VMenu}from"./VMenu-CDcBLYWR.js";import{t as VChip}from"./VChip-VVdtjfq-.js";import{t as VTextField}from"./VTextField-C0b_0cSa.js";import{r as scopedDevelopmentApiUrl,t as resolveStudioRequestUrl}from"./studioUrls-DpSS-0z1.js";import{Br as mdiUndoVariant,Ct as mdiDotsVertical,Dr as mdiStop,Er as mdiStarOutline,Ft as mdiFileOutline,Gr as mdiVolumeOff,H as mdiChevronLeft,Ht as mdiFolderOutline,Ir as mdiTrayArrowUp,It as mdiFilePlusOutline,Lt as mdiFileSearchOutline,Mn as mdiMicrophone,Nn as mdiMicrophoneOff,Nt as mdiFileDocumentOutline,S as mdiArrowLeft,Tr as mdiStar,U as mdiChevronRight,Ut as mdiFolderPlusOutline,Vr as mdiUpload,Wn as mdiPencilOutline,Wr as mdiVolumeHigh,X as mdiClose,ar as mdiRestore,at as mdiCollapseAllOutline,bt as mdiDeleteOutline,dr as mdiSend,ft as mdiContentSaveOutline,kn as mdiMagnify,kt as mdiFileCodeOutline,nr as mdiRefresh,sr as mdiRobotOutline,t as mdiAccountCheckOutline,tr as mdiRedoVariant,ut as mdiContentCopy,wr as mdiSourceRepository,wt as mdiDownload,xt as mdiDotsHorizontal,y as mdiArchiveClockOutline}from"./mdi-Bt90Ns76.js";import{t as VBtn}from"./VBtn-BhVEwXLX.js";import{t as VAlert}from"./VAlert-gwuhYlYb.js";import{t as VDialog}from"./VDialog-CQDhjRiV.js";import{i as VCardTitle,n as VCardText,o as VCardActions,t as VCard}from"./VCard-C3Hx769y.js";import{t as VSpacer}from"./VSpacer-CgWOWvBh.js";import{t as VSkeletonLoader}from"./VSkeletonLoader-Cync3lZZ.js";import{t as VTextarea}from"./VTextarea-B7sZd1JY.js";import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper-DNW4j-dv.js";import{_ as parseLongTextReviewBlocks,a as AssistantAttachmentQueue_default,c as AssistantPromptInput_default,g as LongTextPreviewBlocks_default,h as _sfc_main$14,m as useScrollToBottom,n as AssistantConversationElement_default,t as AssistantAttachmentPreview_default,u as scrollElementNearBottom,v as AssistantMessageAttachments_default}from"./conversation-DZW4-Wck.js";import{n as useRealtimeEvent}from"./useRealtimeEvent-DrOiU8lJ.js";import{t as usePaths}from"./usePaths-Db88-HOm.js";import{a as conversationAttachmentReference,c as vibe64AssistantSelectionLabel,i as conversationAttachmentContentType,m as vibe64AgentExecutionProfileAuditSnapshot,o as normalizeVibe64ConversationAttachments}from"./shared-DZETtWRH.js";import{c as assistantGoalManagementMessage,l as assistantGoalObjective,u as assistantModeLabel}from"./assistantRouting-DeE8jvtE.js";import{t as useCommand}from"./useCommand-nWFczmJy.js";import{t as useUiFeedback}from"./useUiFeedback-CMwE4MLs.js";import{n as stableLocalStorageKeyPart,r as writeLocalStorageJson,t as readLocalStorageJson}from"./browserLocalStorage-B4C7rHrs.js";import{t as writeClipboardText}from"./clipboard-CZs9aH3L.js";import"./shared-BEwrtWSp.js";import{n as vibe64ApiResponseError,t as vibe64ApiError}from"./vibe64ApiResponses-DNLY1Kel.js";import{r as vibe64RealtimePayloadFromCurrentTab,t as vibe64BrowserTabOriginId}from"./vibe64BrowserTabOrigin-SF9E31vi.js";import{t as useVibe64SystemGraph}from"./useVibe64SystemGraph-DbSfrYF8.js";import{A as VIBE64_SOURCE_EDITOR_SYNC_ERROR_EVENT,Bt as VoiceConversationHost_default,D as VIBE64_SESSIONS_API_SUFFIX,F as vibe64AgentAttachmentPath,Ft as createProjectVoiceBinding,Ht as VoiceConversationControls_default,Jt as VTab,O as VIBE64_SESSION_CHANGED_EVENT,P as vibe64AgentAttachmentFilePath,Ut as useVoiceLauncher,Vt as VoiceConversationSettings_default,Wt as VoiceAvatar_default,_t as vibe64SourceEditorSearchPath,at as vibe64SessionsQueryKey,b as readRefOrGetterValue,ct as vibe64SourceEditorDownloadPath,dt as vibe64SourceEditorExplanationStopPath,ft as vibe64SourceEditorExplanationsCleanupPath,gt as vibe64SourceEditorResolvePathPath,h as F,ht as vibe64SourceEditorFilesPath,j as VIBE64_SOURCE_EDITOR_SYNC_READY_EVENT,k as VIBE64_SOURCE_EDITOR_FILE_CHANGED_EVENT,lt as vibe64SourceEditorExplanationFollowupsStreamPath,m as GithubMarkdown_default,mt as vibe64SourceEditorFilePath,nn as usePageActivity,ot as vibe64SourceEditorChangesStreamPath,pt as vibe64SourceEditorExplanationsStreamPath,qt as VTabs,st as vibe64SourceEditorCreateFilePath,ut as vibe64SourceEditorExplanationPath,yt as vibe64SourceEditorTreePath,zt as useVibe64Voice}from"./index-B9P6KjvH.js";import{$ as rectangularSelection,A as foldService,B as tags$1,C as continuedIndent,Ct as NodeWeakMap,D as flatIndent,E as delimitedIndent,Et as parseMixed,F as sublanguageProp,G as drawSelection,H as EditorView,I as syntaxHighlighting,J as getPanel,K as dropCursor,L as syntaxTree,M as indentOnInput,N as indentUnit,O as foldInside,P as languageDataProp,Q as lineNumbers,R as Tag,S as bracketMatchingHandle,St as NodeType,T as defineLanguageFacet,Tt as Tree,U as ViewPlugin,V as Decoration,W as crosshairCursor,X as highlightActiveLineGutter,Z as keymap,_ as LanguageDescription,_t as findClusterBreak,a as redo,at as Compartment,b as StreamLanguage,bt as NodeProp,c as completeFromList,ct as Facet,d as ContextTracker,dt as StateEffect,et as runScopeHandlers,f as ExternalTokenizer,ft as StateField,g as Language,gt as countColumn,h as LRLanguage,ht as combineConfig,i as indentWithTab,it as CharCategory,j as indentNodeProp,k as foldNodeProp,l as ifNotIn,lt as Prec,m as LocalTokenGroup,mt as codePointSize,n as history,nt as showPanel,o as undo,ot as EditorSelection,p as LRParser,pt as codePointAt,q as getDialog,r as historyKeymap,rt as crelt,s as CompletionContext,st as EditorState,t as defaultKeymap,tt as showDialog,u as snippetCompletion,ut as RangeSetBuilder,v as LanguageSupport,vt as fromCodePoint,w as defaultHighlightStyle,wt as Parser,x as bracketMatching,xt as NodeSet,y as ParseContext,yt as IterMode,z as styleTags}from"./dist-CDa9Iec1.js";import{a as vibe64SessionDebugError,o as vibe64SessionDebugLog}from"./vibe64SessionPanelModel-DDorOuiL.js";import{t as diffLines}from"./libesm-CR-iGldz.js";var makeVBreadcrumbsDividerProps=propsFactory({divider:[Number,String],...makeComponentProps()},`VBreadcrumbsDivider`);var VBreadcrumbsDivider=genericComponent()({name:`VBreadcrumbsDivider`,props:makeVBreadcrumbsDividerProps(),setup(props,{slots}){useRender(()=>createBaseVNode(`li`,{"aria-hidden":`true`,"class":normalizeClass([`v-breadcrumbs-divider`,props.class]),"style":normalizeStyle(props.style)},[slots?.default?.()??props.divider]));return{}}});var makeVBreadcrumbsItemProps=propsFactory({active:Boolean,activeClass:String,activeColor:String,color:String,disabled:Boolean,title:String,...makeComponentProps(),...pick(makeDimensionProps(),[`width`,`maxWidth`]),...makeRouterProps(),...makeTagProps({tag:`li`})},`VBreadcrumbsItem`);var VBreadcrumbsItem=genericComponent()({name:`VBreadcrumbsItem`,props:makeVBreadcrumbsItemProps(),setup(props,{slots,attrs}){const link=useLink(props,attrs);const isActive=computed(()=>props.active||link.isActive?.value);const{dimensionStyles}=useDimension(props);const{textColorClasses,textColorStyles}=useTextColor(()=>isActive.value?props.activeColor:props.color);useRender(()=>{return createVNode(props.tag,{"class":normalizeClass([`v-breadcrumbs-item`,{"v-breadcrumbs-item--active":isActive.value,"v-breadcrumbs-item--disabled":props.disabled,[`${props.activeClass}`]:isActive.value&&props.activeClass},textColorClasses.value,props.class]),"style":normalizeStyle([textColorStyles.value,dimensionStyles.value,props.style]),"aria-current":isActive.value?`page`:void 0},{default:()=>[!link.isLink.value?slots.default?.()??props.title:createBaseVNode(`a`,mergeProps({"class":`v-breadcrumbs-item--link`,"onClick":link.navigate.value},link.linkProps),[slots.default?.()??props.title])]})});return{}}});var makeVBreadcrumbsProps=propsFactory({activeClass:String,activeColor:String,bgColor:String,color:String,disabled:Boolean,divider:{type:String,default:`/`},icon:IconValue,items:{type:Array,default:()=>[]},...makeComponentProps(),...makeDensityProps(),...makeRoundedProps(),...makeTagProps({tag:`ul`})},`VBreadcrumbs`);var VBreadcrumbs=genericComponent()({name:`VBreadcrumbs`,props:makeVBreadcrumbsProps(),setup(props,{slots}){const{backgroundColorClasses,backgroundColorStyles}=useBackgroundColor(()=>props.bgColor);const{densityClasses}=useDensity(props);const{roundedClasses,roundedStyles}=useRounded(props);provideDefaults({VBreadcrumbsDivider:{divider:toRef(()=>props.divider)},VBreadcrumbsItem:{activeClass:toRef(()=>props.activeClass),activeColor:toRef(()=>props.activeColor),color:toRef(()=>props.color),disabled:toRef(()=>props.disabled)}});const items=computed(()=>props.items.map(item=>{return isString(item)?{item:{title:item},raw:item}:{item,raw:item}}));useRender(()=>{const hasPrepend=!!(slots.prepend||props.icon);return createVNode(props.tag,{"class":normalizeClass([`v-breadcrumbs`,backgroundColorClasses.value,densityClasses.value,roundedClasses.value,props.class]),"style":normalizeStyle([backgroundColorStyles.value,roundedStyles.value,props.style])},{default:()=>[hasPrepend&&createBaseVNode(`li`,{"key":`prepend`,"class":`v-breadcrumbs__prepend`},[!slots.prepend?createVNode(VIcon,{"key":`prepend-icon`,"start":true,"icon":props.icon},null):createVNode(VDefaultsProvider,{"key":`prepend-defaults`,"disabled":!props.icon,"defaults":{VIcon:{icon:props.icon,start:true}}},slots.prepend)]),items.value.map(({item,raw},index,array)=>createBaseVNode(Fragment,null,[slots.item?.({item,index})??createVNode(VBreadcrumbsItem,mergeProps({"key":index,"disabled":index>=array.length-1},isString(item)?{title:item}:item),{default:slots.title?()=>slots.title?.({item,index}):void 0}),index<array.length-1&&createVNode(VBreadcrumbsDivider,null,{default:slots.divider?()=>slots.divider?.({item:raw,index}):void 0})])),slots.default?.()]})});return{}}});function assistantAttachmentSessionId(sessionId){return String(toValue(sessionId)||``).trim()}function assistantAttachmentUploadAllowed(canUpload){return toValue(canUpload)!==false}function assistantAttachmentFiles(fileList=[]){return Array.from(fileList||[]).filter(file=>file&&file.size>=0)}function assistantAttachmentFilesFromTransferItems(items=[]){return assistantAttachmentFiles(Array.from(items||[]).map(item=>{if(item?.kind!==`file`||typeof item.getAsFile!==`function`)return null;return item.getAsFile()}))}function assistantAttachmentFilesFromDropEvent(event){const dataTransfer=event?.dataTransfer;const itemFiles=assistantAttachmentFilesFromTransferItems(dataTransfer?.items);if(itemFiles.length>0)return itemFiles;return assistantAttachmentFiles(dataTransfer?.files)}function assistantAttachmentFilesFromPasteEvent(event){const clipboardData=event?.clipboardData;const itemFiles=assistantAttachmentFilesFromTransferItems(clipboardData?.items);if(itemFiles.length>0)return itemFiles;return assistantAttachmentFiles(clipboardData?.files)}function assistantAttachmentEventHasFiles(event){const dataTransfer=event?.dataTransfer;return assistantAttachmentFilesFromDropEvent(event).length>0||Array.from(dataTransfer?.items||[]).some(item=>item?.kind===`file`)||Array.from(dataTransfer?.types||[]).some(type=>type===`Files`||type===`application/x-moz-file`)}function assistantAttachmentClipboardText(event){if(typeof event?.clipboardData?.getData!==`function`)return``;return String(event.clipboardData.getData(`text/plain`)||``)}function assistantAttachmentClipboardLocalFileReference(event){const clipboardData=event?.clipboardData;if(!clipboardData||typeof clipboardData.getData!==`function`)return``;const types=Array.from(clipboardData.types||[]);const text=[clipboardData.getData(`x-special/gnome-copied-files`),clipboardData.getData(`text/uri-list`),clipboardData.getData(`text/plain`)].map(value=>String(value||``).trim()).filter(Boolean).join(`
1
+ import{$n as normalizeProps,D as createVNode,E as createTextVNode,En as toValue,Ht as watch,On as unref,St as resolveComponent,Yt as withDirectives,Zn as normalizeClass,_ as createBaseVNode,an as getCurrentScope,b as createElementBlock,bt as renderList,ct as onMounted,er as normalizeStyle,et as mergeProps,g as computed,gn as reactive,it as onBeforeUnmount,mt as openBlock,o as Fragment,pn as onScopeDispose,qt as withCtx,tr as toDisplayString,tt as nextTick,v as createBlock,vn as ref,w as createSlots,wn as toRef,wt as resolveDynamicComponent,xt as renderSlot,y as createCommentVNode,z as guardReactiveProps}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{B as useTextColor,E as useDensity,Gn as isString,H as useDimension,I as makeRoundedProps,L as useRounded,Mt as makeComponentProps,Nt as propsFactory,R as useBackgroundColor,Sn as pick,T as makeDensityProps,U as VDefaultsProvider,V as makeDimensionProps,Y as makeTagProps,_t as useRender,ar as vShow,h as VIcon,i as useLink,kt as provideDefaults,mt as IconValue,n as makeRouterProps,or as withKeys,ot as useDisplay,sr as withModifiers,wt as genericComponent}from"./ripple-EFNA8EBu.js";import{T as ROUTE_VISIBILITY_PUBLIC,t as useEndpointResource}from"./useEndpointResource-Ds8EDBZ2.js";import{u as getHttpWebClient}from"./vibe64ProjectScope.local-B06ABkhI.js";import{n as VList,s as VListItem,t as VMenu}from"./VMenu-CDcBLYWR.js";import{t as VChip}from"./VChip-VVdtjfq-.js";import{t as VTextField}from"./VTextField-C0b_0cSa.js";import{r as scopedDevelopmentApiUrl,t as resolveStudioRequestUrl}from"./studioUrls-DpSS-0z1.js";import{Br as mdiUndoVariant,Ct as mdiDotsVertical,Dr as mdiStop,Er as mdiStarOutline,Ft as mdiFileOutline,Gr as mdiVolumeOff,H as mdiChevronLeft,Ht as mdiFolderOutline,Ir as mdiTrayArrowUp,It as mdiFilePlusOutline,Lt as mdiFileSearchOutline,Mn as mdiMicrophone,Nn as mdiMicrophoneOff,Nt as mdiFileDocumentOutline,S as mdiArrowLeft,Tr as mdiStar,U as mdiChevronRight,Ut as mdiFolderPlusOutline,Vr as mdiUpload,Wn as mdiPencilOutline,Wr as mdiVolumeHigh,X as mdiClose,ar as mdiRestore,at as mdiCollapseAllOutline,bt as mdiDeleteOutline,dr as mdiSend,ft as mdiContentSaveOutline,kn as mdiMagnify,kt as mdiFileCodeOutline,nr as mdiRefresh,sr as mdiRobotOutline,t as mdiAccountCheckOutline,tr as mdiRedoVariant,ut as mdiContentCopy,wr as mdiSourceRepository,wt as mdiDownload,xt as mdiDotsHorizontal,y as mdiArchiveClockOutline}from"./mdi-Bt90Ns76.js";import{t as VBtn}from"./VBtn-BhVEwXLX.js";import{t as VAlert}from"./VAlert-gwuhYlYb.js";import{t as VDialog}from"./VDialog-CQDhjRiV.js";import{i as VCardTitle,n as VCardText,o as VCardActions,t as VCard}from"./VCard-C3Hx769y.js";import{t as VSpacer}from"./VSpacer-CgWOWvBh.js";import{t as VSkeletonLoader}from"./VSkeletonLoader-Cync3lZZ.js";import{t as VTextarea}from"./VTextarea-B7sZd1JY.js";import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper-DNW4j-dv.js";import{_ as parseLongTextReviewBlocks,a as AssistantAttachmentQueue_default,c as AssistantPromptInput_default,g as LongTextPreviewBlocks_default,h as _sfc_main$14,m as useScrollToBottom,n as AssistantConversationElement_default,t as AssistantAttachmentPreview_default,u as scrollElementNearBottom,v as AssistantMessageAttachments_default}from"./conversation-DZW4-Wck.js";import{n as useRealtimeEvent}from"./useRealtimeEvent-DrOiU8lJ.js";import{t as usePaths}from"./usePaths-Db88-HOm.js";import{a as conversationAttachmentReference,c as vibe64AssistantSelectionLabel,i as conversationAttachmentContentType,m as vibe64AgentExecutionProfileAuditSnapshot,o as normalizeVibe64ConversationAttachments}from"./shared-DZETtWRH.js";import{c as assistantGoalManagementMessage,l as assistantGoalObjective,u as assistantModeLabel}from"./assistantRouting-DeE8jvtE.js";import{t as useCommand}from"./useCommand-nWFczmJy.js";import{t as useUiFeedback}from"./useUiFeedback-CMwE4MLs.js";import{n as stableLocalStorageKeyPart,r as writeLocalStorageJson,t as readLocalStorageJson}from"./browserLocalStorage-B4C7rHrs.js";import{t as writeClipboardText}from"./clipboard-CZs9aH3L.js";import"./shared-BEwrtWSp.js";import{n as vibe64ApiResponseError,t as vibe64ApiError}from"./vibe64ApiResponses-DNLY1Kel.js";import{r as vibe64RealtimePayloadFromCurrentTab,t as vibe64BrowserTabOriginId}from"./vibe64BrowserTabOrigin-SF9E31vi.js";import{t as useVibe64SystemGraph}from"./useVibe64SystemGraph-DbSfrYF8.js";import{A as VIBE64_SOURCE_EDITOR_SYNC_ERROR_EVENT,Bt as VoiceConversationHost_default,D as VIBE64_SESSIONS_API_SUFFIX,F as vibe64AgentAttachmentPath,Ft as createProjectVoiceBinding,Ht as VoiceConversationControls_default,Jt as VTab,O as VIBE64_SESSION_CHANGED_EVENT,P as vibe64AgentAttachmentFilePath,Ut as useVoiceLauncher,Vt as VoiceConversationSettings_default,Wt as VoiceAvatar_default,_t as vibe64SourceEditorSearchPath,at as vibe64SessionsQueryKey,b as readRefOrGetterValue,ct as vibe64SourceEditorDownloadPath,dt as vibe64SourceEditorExplanationStopPath,ft as vibe64SourceEditorExplanationsCleanupPath,gt as vibe64SourceEditorResolvePathPath,h as F,ht as vibe64SourceEditorFilesPath,j as VIBE64_SOURCE_EDITOR_SYNC_READY_EVENT,k as VIBE64_SOURCE_EDITOR_FILE_CHANGED_EVENT,lt as vibe64SourceEditorExplanationFollowupsStreamPath,m as GithubMarkdown_default,mt as vibe64SourceEditorFilePath,nn as usePageActivity,ot as vibe64SourceEditorChangesStreamPath,pt as vibe64SourceEditorExplanationsStreamPath,qt as VTabs,st as vibe64SourceEditorCreateFilePath,ut as vibe64SourceEditorExplanationPath,yt as vibe64SourceEditorTreePath,zt as useVibe64Voice}from"./index-Mxalhei8.js";import{$ as rectangularSelection,A as foldService,B as tags$1,C as continuedIndent,Ct as NodeWeakMap,D as flatIndent,E as delimitedIndent,Et as parseMixed,F as sublanguageProp,G as drawSelection,H as EditorView,I as syntaxHighlighting,J as getPanel,K as dropCursor,L as syntaxTree,M as indentOnInput,N as indentUnit,O as foldInside,P as languageDataProp,Q as lineNumbers,R as Tag,S as bracketMatchingHandle,St as NodeType,T as defineLanguageFacet,Tt as Tree,U as ViewPlugin,V as Decoration,W as crosshairCursor,X as highlightActiveLineGutter,Z as keymap,_ as LanguageDescription,_t as findClusterBreak,a as redo,at as Compartment,b as StreamLanguage,bt as NodeProp,c as completeFromList,ct as Facet,d as ContextTracker,dt as StateEffect,et as runScopeHandlers,f as ExternalTokenizer,ft as StateField,g as Language,gt as countColumn,h as LRLanguage,ht as combineConfig,i as indentWithTab,it as CharCategory,j as indentNodeProp,k as foldNodeProp,l as ifNotIn,lt as Prec,m as LocalTokenGroup,mt as codePointSize,n as history,nt as showPanel,o as undo,ot as EditorSelection,p as LRParser,pt as codePointAt,q as getDialog,r as historyKeymap,rt as crelt,s as CompletionContext,st as EditorState,t as defaultKeymap,tt as showDialog,u as snippetCompletion,ut as RangeSetBuilder,v as LanguageSupport,vt as fromCodePoint,w as defaultHighlightStyle,wt as Parser,x as bracketMatching,xt as NodeSet,y as ParseContext,yt as IterMode,z as styleTags}from"./dist-CDa9Iec1.js";import{a as vibe64SessionDebugError,o as vibe64SessionDebugLog}from"./vibe64SessionPanelModel-DDorOuiL.js";import{t as diffLines}from"./libesm-CR-iGldz.js";var makeVBreadcrumbsDividerProps=propsFactory({divider:[Number,String],...makeComponentProps()},`VBreadcrumbsDivider`);var VBreadcrumbsDivider=genericComponent()({name:`VBreadcrumbsDivider`,props:makeVBreadcrumbsDividerProps(),setup(props,{slots}){useRender(()=>createBaseVNode(`li`,{"aria-hidden":`true`,"class":normalizeClass([`v-breadcrumbs-divider`,props.class]),"style":normalizeStyle(props.style)},[slots?.default?.()??props.divider]));return{}}});var makeVBreadcrumbsItemProps=propsFactory({active:Boolean,activeClass:String,activeColor:String,color:String,disabled:Boolean,title:String,...makeComponentProps(),...pick(makeDimensionProps(),[`width`,`maxWidth`]),...makeRouterProps(),...makeTagProps({tag:`li`})},`VBreadcrumbsItem`);var VBreadcrumbsItem=genericComponent()({name:`VBreadcrumbsItem`,props:makeVBreadcrumbsItemProps(),setup(props,{slots,attrs}){const link=useLink(props,attrs);const isActive=computed(()=>props.active||link.isActive?.value);const{dimensionStyles}=useDimension(props);const{textColorClasses,textColorStyles}=useTextColor(()=>isActive.value?props.activeColor:props.color);useRender(()=>{return createVNode(props.tag,{"class":normalizeClass([`v-breadcrumbs-item`,{"v-breadcrumbs-item--active":isActive.value,"v-breadcrumbs-item--disabled":props.disabled,[`${props.activeClass}`]:isActive.value&&props.activeClass},textColorClasses.value,props.class]),"style":normalizeStyle([textColorStyles.value,dimensionStyles.value,props.style]),"aria-current":isActive.value?`page`:void 0},{default:()=>[!link.isLink.value?slots.default?.()??props.title:createBaseVNode(`a`,mergeProps({"class":`v-breadcrumbs-item--link`,"onClick":link.navigate.value},link.linkProps),[slots.default?.()??props.title])]})});return{}}});var makeVBreadcrumbsProps=propsFactory({activeClass:String,activeColor:String,bgColor:String,color:String,disabled:Boolean,divider:{type:String,default:`/`},icon:IconValue,items:{type:Array,default:()=>[]},...makeComponentProps(),...makeDensityProps(),...makeRoundedProps(),...makeTagProps({tag:`ul`})},`VBreadcrumbs`);var VBreadcrumbs=genericComponent()({name:`VBreadcrumbs`,props:makeVBreadcrumbsProps(),setup(props,{slots}){const{backgroundColorClasses,backgroundColorStyles}=useBackgroundColor(()=>props.bgColor);const{densityClasses}=useDensity(props);const{roundedClasses,roundedStyles}=useRounded(props);provideDefaults({VBreadcrumbsDivider:{divider:toRef(()=>props.divider)},VBreadcrumbsItem:{activeClass:toRef(()=>props.activeClass),activeColor:toRef(()=>props.activeColor),color:toRef(()=>props.color),disabled:toRef(()=>props.disabled)}});const items=computed(()=>props.items.map(item=>{return isString(item)?{item:{title:item},raw:item}:{item,raw:item}}));useRender(()=>{const hasPrepend=!!(slots.prepend||props.icon);return createVNode(props.tag,{"class":normalizeClass([`v-breadcrumbs`,backgroundColorClasses.value,densityClasses.value,roundedClasses.value,props.class]),"style":normalizeStyle([backgroundColorStyles.value,roundedStyles.value,props.style])},{default:()=>[hasPrepend&&createBaseVNode(`li`,{"key":`prepend`,"class":`v-breadcrumbs__prepend`},[!slots.prepend?createVNode(VIcon,{"key":`prepend-icon`,"start":true,"icon":props.icon},null):createVNode(VDefaultsProvider,{"key":`prepend-defaults`,"disabled":!props.icon,"defaults":{VIcon:{icon:props.icon,start:true}}},slots.prepend)]),items.value.map(({item,raw},index,array)=>createBaseVNode(Fragment,null,[slots.item?.({item,index})??createVNode(VBreadcrumbsItem,mergeProps({"key":index,"disabled":index>=array.length-1},isString(item)?{title:item}:item),{default:slots.title?()=>slots.title?.({item,index}):void 0}),index<array.length-1&&createVNode(VBreadcrumbsDivider,null,{default:slots.divider?()=>slots.divider?.({item:raw,index}):void 0})])),slots.default?.()]})});return{}}});function assistantAttachmentSessionId(sessionId){return String(toValue(sessionId)||``).trim()}function assistantAttachmentUploadAllowed(canUpload){return toValue(canUpload)!==false}function assistantAttachmentFiles(fileList=[]){return Array.from(fileList||[]).filter(file=>file&&file.size>=0)}function assistantAttachmentFilesFromTransferItems(items=[]){return assistantAttachmentFiles(Array.from(items||[]).map(item=>{if(item?.kind!==`file`||typeof item.getAsFile!==`function`)return null;return item.getAsFile()}))}function assistantAttachmentFilesFromDropEvent(event){const dataTransfer=event?.dataTransfer;const itemFiles=assistantAttachmentFilesFromTransferItems(dataTransfer?.items);if(itemFiles.length>0)return itemFiles;return assistantAttachmentFiles(dataTransfer?.files)}function assistantAttachmentFilesFromPasteEvent(event){const clipboardData=event?.clipboardData;const itemFiles=assistantAttachmentFilesFromTransferItems(clipboardData?.items);if(itemFiles.length>0)return itemFiles;return assistantAttachmentFiles(clipboardData?.files)}function assistantAttachmentEventHasFiles(event){const dataTransfer=event?.dataTransfer;return assistantAttachmentFilesFromDropEvent(event).length>0||Array.from(dataTransfer?.items||[]).some(item=>item?.kind===`file`)||Array.from(dataTransfer?.types||[]).some(type=>type===`Files`||type===`application/x-moz-file`)}function assistantAttachmentClipboardText(event){if(typeof event?.clipboardData?.getData!==`function`)return``;return String(event.clipboardData.getData(`text/plain`)||``)}function assistantAttachmentClipboardLocalFileReference(event){const clipboardData=event?.clipboardData;if(!clipboardData||typeof clipboardData.getData!==`function`)return``;const types=Array.from(clipboardData.types||[]);const text=[clipboardData.getData(`x-special/gnome-copied-files`),clipboardData.getData(`text/uri-list`),clipboardData.getData(`text/plain`)].map(value=>String(value||``).trim()).filter(Boolean).join(`
2
2
  `);if(types.includes(`Files`)||types.includes(`application/x-moz-file`)||types.includes(`x-special/gnome-copied-files`)||/^file:/imu.test(text))return text||`file://`;return``}function attachmentUploadError(attachment={}){return attachment?.error||attachment?.errors?.[0]?.message||``}function attachmentIdentity(attachment={}){return String(attachment?.clientId||attachment?.attachmentId||attachment?.path||attachment?.fileName||``)}var ASSISTANT_ATTACHMENT_MAX_BYTES=1e8;var ASSISTANT_ATTACHMENT_MAX_ITEMS=10;var ASSISTANT_ATTACHMENT_UPLOAD_CONCURRENCY=2;var ASSISTANT_ATTACHMENT_UNRESOLVED_PHASES=new Set([`preparing`,`queued`,`uploading`,`delivering`,`failed`]);var attachmentClientSequence=0;function nextAttachmentClientId(){attachmentClientSequence+=1;return`attachment-${Date.now().toString(36)}-${attachmentClientSequence.toString(36)}`}function attachmentFileName(file={}){return String(file?.name||`attachment`)}function attachmentUploadResult(upload=null){if(upload&&typeof upload.then===`function`)return{cancel:typeof upload.cancel===`function`?()=>upload.cancel():null,promise:upload};if(upload?.promise&&typeof upload.promise.then===`function`)return{cancel:typeof upload.abort===`function`?()=>upload.abort():typeof upload.cancel===`function`?()=>upload.cancel():null,promise:upload.promise};return{cancel:null,promise:Promise.resolve(upload)}}function attachmentProgress(progress={},possibleTotal,fallbackTotal=0){const directNumericProgress=typeof progress===`number`?progress:null;const progressObject=progress&&typeof progress===`object`?progress:{};const totalBytes=Math.max(0,Number(progressObject.totalBytes??progressObject.total??possibleTotal??fallbackTotal)||0);const bytesValue=progressObject.bytesSent??progressObject.loaded??progressObject.uploadedBytes??directNumericProgress;const bytesKnown=bytesValue!==null&&bytesValue!==void 0&&bytesValue!==``;let bytesSent=bytesKnown?Number(bytesValue)||0:0;const directPercent=progressObject.percent;let percent=directPercent!==null&&directPercent!==void 0&&directPercent!==``?Number(directPercent):null;const progressValue=progressObject.progress;if(!Number.isFinite(percent)&&progressValue!==null&&progressValue!==void 0&&progressValue!==``){const numericProgressValue=Number(progressValue);if(Number.isFinite(numericProgressValue))percent=numericProgressValue<=1?numericProgressValue*100:numericProgressValue}if(!Number.isFinite(percent))percent=bytesKnown&&totalBytes>0?bytesSent/totalBytes*100:null;if(percent!==null)percent=Math.max(0,Math.min(100,percent));if(totalBytes>0){const inferredBytes=percent===null?0:totalBytes*percent/100;bytesSent=Math.max(0,Math.min(totalBytes,bytesSent||inferredBytes))}else bytesSent=Math.max(0,bytesSent);return{bytesSent,percent,totalBytes}}function attachmentReceipt(row,uploaded={}){return{...uploaded,attachmentId:String(uploaded?.attachmentId||``),clientId:row.clientId,fileName:String(uploaded?.fileName||row.fileName),sessionId:row.sessionId,size:Number(uploaded?.size??row.size)||0}}function useAssistantAttachments({canUpload=()=>true,deleteAttachment=null,onError=null,onUploaded=async()=>null,sessionId,uploadAttachment,maxBytes=ASSISTANT_ATTACHMENT_MAX_BYTES,maxItems=10,uploadConcurrency=2}={}){if(![maxBytes,maxItems,uploadConcurrency].every(value=>Number.isSafeInteger(value)&&value>0))throw new TypeError(`Attachment limits must be positive integers.`);const maxSizeLabel=maxBytes%1048576===0?`${maxBytes/1048576} MiB`:`${maxBytes/1e6} MB`;const attachments=ref([]);const queueItems=ref([]);const dragDepth=ref(0);const status=ref(``);const activeUploadCount=ref(0);const uploadQueue=[];const rowsById=new Map;const activeAttempts=new Map;const cleanupTasks=new Set;const receiptCleanupById=new Map;const cleanedReceiptIds=new Set;let disposed=false;let stopSessionWatch=null;const dragActive=computed(()=>dragDepth.value>0);const uploading=computed(()=>activeUploadCount.value>0||queueItems.value.some(item=>[`preparing`,`uploading`,`delivering`].includes(item.phase)));const hasUnresolved=computed(()=>queueItems.value.some(item=>ASSISTANT_ATTACHMENT_UNRESOLVED_PHASES.has(item.phase)));const canSubmit=computed(()=>!hasUnresolved.value);const retainedItemCount=computed(()=>queueItems.value.filter(item=>item.phase!==`cancelled`).length);const atCapacity=computed(()=>retainedItemCount.value>=maxItems);const canAddFiles=computed(()=>Boolean(!disposed&&assistantAttachmentSessionId(sessionId)&&assistantAttachmentUploadAllowed(canUpload)&&!atCapacity.value&&typeof uploadAttachment===`function`));const aggregateProgress=computed(()=>{const retainedItems=queueItems.value.filter(item=>item.phase!==`cancelled`);const totalBytes=retainedItems.reduce((sum,item)=>sum+item.totalBytes,0);const bytesSent=retainedItems.reduce((sum,item)=>sum+item.bytesSent,0);return{bytesSent,percent:totalBytes>0?Math.round(bytesSent/totalBytes*100):0,totalBytes}});function reportAttachmentError(error,fallbackMessage=`Attachment upload failed.`,{notify=true}={}){const message=String(error?.message||error||fallbackMessage);status.value=message;if(notify&&typeof onError===`function`)try{onError(error||new Error(message),fallbackMessage)}catch{}return message}function resetDragState(){dragDepth.value=0}function clearStatus(){status.value=``}function createWaiter(row){let resolve=null;row.waiter={promise:new Promise(currentResolve=>{resolve=currentResolve}),resolve,settled:false};return row.waiter}function settleWaiter(row,value=null,waiter=row.waiter){if(!waiter||waiter.settled)return;waiter.settled=true;waiter.resolve(value)}function canonicalRow(attachment={}){const identity=attachmentIdentity(attachment);return identity?rowsById.get(identity)||queueItems.value.find(row=>attachmentIdentity(row)===identity||row.attachmentId===identity):null}function trackCleanup(task){const cleanup=Promise.resolve(task).catch(error=>{reportAttachmentError(error,`Attachment cleanup failed.`);return false});cleanupTasks.add(cleanup);cleanup.finally(()=>cleanupTasks.delete(cleanup));return cleanup}async function deleteUploadedAttachment(currentSessionId,attachment={}){const attachmentId=String(attachment?.attachmentId||``).trim();if(!attachmentId||typeof deleteAttachment!==`function`)return false;const response=await deleteAttachment(currentSessionId,attachmentId);if(response?.ok===false)throw new Error(attachmentUploadError(response)||`Attachment cleanup failed.`);return true}function cleanupReceipt(currentSessionId,receipt={}){const attachmentId=String(receipt?.attachmentId||``).trim();const cleanupId=`${currentSessionId}:${attachmentId}`;if(!attachmentId)return Promise.resolve(false);if(cleanedReceiptIds.has(cleanupId))return Promise.resolve(false);if(receiptCleanupById.has(cleanupId))return receiptCleanupById.get(cleanupId);const cleanup=trackCleanup(deleteUploadedAttachment(currentSessionId,receipt)).then(deleted=>{if(deleted)cleanedReceiptIds.add(cleanupId);return deleted});receiptCleanupById.set(cleanupId,cleanup);cleanup.finally(()=>receiptCleanupById.delete(cleanupId));return cleanup}function updateProgress(row,progress,total){if(!row.retained||row.phase!==`uploading`)return;const next=attachmentProgress(progress,total,row.totalBytes);row.bytesSent=Math.max(row.bytesSent,next.bytesSent);row.totalBytes=next.totalBytes||row.totalBytes;if(next.percent!==null)row.progress=Math.max(Number(row.progress)||0,next.percent)}function removeReadyReceipt(row){const removed=attachments.value.filter(attachment=>attachment.clientId===row.clientId);attachments.value=attachments.value.filter(attachment=>attachment.clientId!==row.clientId);return removed}async function handOffUploadedAttachment(row,receipt,waiter=row.waiter){const token=Symbol(`${row.clientId}-handoff`);row.activeHandoffToken=token;row.phase=`delivering`;if(!attachments.value.some(attachment=>attachment.clientId===row.clientId))attachments.value.push(receipt);try{const accepted=(await onUploaded([receipt]))?.accepted===true;if(row.activeHandoffToken!==token||!row.retained||row.phase===`cancelled`){removeReadyReceipt(row);if(!accepted)await cleanupReceipt(row.sessionId,receipt);settleWaiter(row,null,waiter);return null}row.activeHandoffToken=null;row.error=``;row.failureStage=``;if(accepted){removeReadyReceipt(row);row.retained=false;rowsById.delete(row.clientId);queueItems.value=queueItems.value.filter(candidate=>candidate.clientId!==row.clientId);settleWaiter(row,receipt,waiter);return receipt}row.phase=`ready`;settleWaiter(row,receipt,waiter);return receipt}catch(error){if(row.activeHandoffToken!==token||!row.retained||row.phase===`cancelled`){await cleanupReceipt(row.sessionId,receipt);settleWaiter(row,null,waiter);return null}row.activeHandoffToken=null;removeReadyReceipt(row);row.error=String(error?.message||error||`Uploaded attachment could not be used.`);row.failureStage=`handoff`;row.phase=`failed`;settleWaiter(row,null,waiter);reportAttachmentError(error,`Uploaded attachment could not be used.`,{notify:false});return null}}async function finishUploadAttempt(attempt,uploaded,uploadError=null){activeAttempts.delete(attempt.token);activeUploadCount.value=activeAttempts.size;pumpQueue();const{row}=attempt;const isCurrentAttempt=row.activeToken===attempt.token;const uploadSucceeded=Boolean(!uploadError&&uploaded&&uploaded.ok!==false&&String(uploaded.attachmentId||``).trim());if(!isCurrentAttempt||!row.retained||disposed){if(uploadSucceeded)await cleanupReceipt(attempt.sessionId,uploaded);settleWaiter(row,null,attempt.waiter);pumpQueue();return}row.activeToken=null;if(uploadSucceeded){const receipt=attachmentReceipt(row,uploaded);row.receipt=receipt;row.attachmentId=receipt.attachmentId;row.path=String(receipt.path||``);row.bytesSent=row.totalBytes;row.progress=100;row.error=``;row.failureStage=``;await handOffUploadedAttachment(row,receipt,attempt.waiter)}else{const error=uploadError||new Error(attachmentUploadError(uploaded)||`Attachment upload failed.`);row.error=String(error?.message||error||`Attachment upload failed.`);row.failureStage=`upload`;row.phase=`failed`;settleWaiter(row,null,attempt.waiter);reportAttachmentError(error,`Attachment upload failed.`,{notify:false})}pumpQueue()}function startUpload(row){const token=Symbol(row.clientId);const abortController=typeof AbortController===`function`?new AbortController:null;const attempt={abortController,cancel:null,row,sessionId:row.sessionId,settled:null,token,waiter:row.waiter};row.activeToken=token;row.phase=`uploading`;row.error=``;activeAttempts.set(token,attempt);activeUploadCount.value=activeAttempts.size;try{const transport=attachmentUploadResult(uploadAttachment(row.sessionId,row.file,{onProgress:(progress,total)=>updateProgress(row,progress,total),signal:abortController?.signal}));attempt.cancel=transport.cancel;attempt.settled=transport.promise.then(uploaded=>finishUploadAttempt(attempt,uploaded),error=>finishUploadAttempt(attempt,null,error))}catch(error){attempt.settled=finishUploadAttempt(attempt,null,error)}}function pumpQueue(){if(disposed)return;while(activeAttempts.size<uploadConcurrency&&uploadQueue.length>0){const row=uploadQueue.shift();if(!row?.retained||row.phase!==`queued`)continue;startUpload(row)}}function cancelAttachment(attachment={}){const row=canonicalRow(attachment);if(!row||!row.retained||![`preparing`,`queued`,`uploading`].includes(row.phase))return false;const token=row.activeToken;row.activeToken=null;row.activeHandoffToken=null;row.phase=`cancelled`;row.error=``;const receipt=row.receipt;removeReadyReceipt(row);if(receipt)cleanupReceipt(row.sessionId,receipt);row.receipt=null;row.failureStage=``;settleWaiter(row,null);const attempt=token?activeAttempts.get(token):null;try{row.producerAbortController?.abort();attempt?.abortController?.abort();attempt?.cancel?.()}catch{}row.producerAbortController=null;row.producerToken=null;pumpQueue();return true}function retryAttachment(attachment={}){const row=canonicalRow(attachment);if(!row||!row.retained||![`failed`,`cancelled`].includes(row.phase)||row.sessionId!==assistantAttachmentSessionId(sessionId)||!assistantAttachmentUploadAllowed(canUpload)||typeof uploadAttachment!==`function`)return Promise.resolve(null);if(row.phase===`cancelled`&&retainedItemCount.value>=maxItems){reportAttachmentError(`A message can keep at most ${maxItems} attachments.`);return Promise.resolve(null)}if(row.failureStage===`handoff`&&row.receipt){row.error=``;row.phase=`uploading`;const waiter=createWaiter(row);handOffUploadedAttachment(row,row.receipt,waiter);return waiter.promise}if(row.producer&&!row.file){const waiter=createWaiter(row);startAttachmentProducer(row);return waiter.promise}if(row.size>maxBytes){row.error=`${row.fileName} is larger than the ${maxSizeLabel} attachment limit.`;row.failureStage=`validation`;row.phase=`failed`;reportAttachmentError(row.error,`Attachment upload failed.`,{notify:false});return Promise.resolve(null)}row.bytesSent=0;row.progress=null;row.error=``;row.failureStage=``;row.phase=`queued`;const waiter=createWaiter(row);uploadQueue.push(row);pumpQueue();return waiter.promise}function detachRow(row){if([`preparing`,`queued`,`uploading`].includes(row.phase))cancelAttachment(row);row.retained=false;rowsById.delete(row.clientId);settleWaiter(row,null)}function removeAttachment(attachment={}){const row=canonicalRow(attachment);if(!row)return[];const removedReceipts=removeReadyReceipt(row);const removed=removedReceipts.length>0?removedReceipts:[row];const receiptToClean=removedReceipts[0]||row.receipt;detachRow(row);queueItems.value=queueItems.value.filter(candidate=>candidate.clientId!==row.clientId);if(receiptToClean)cleanupReceipt(row.sessionId,receiptToClean);return removed}function clearAttachments({accepted=true,attachmentIds=null}={}){if(!accepted)return abandonAttachments();const selectedIds=Array.isArray(attachmentIds)?new Set(attachmentIds):null;const cleared=attachments.value.filter(attachment=>!selectedIds||selectedIds.has(attachment.attachmentId));const readyIds=new Set(cleared.map(attachment=>attachment.clientId));const remaining=[];for(const row of[...queueItems.value]){if(selectedIds&&!readyIds.has(row.clientId)){remaining.push(row);continue}if(readyIds.has(row.clientId)){row.retained=false;rowsById.delete(row.clientId);continue}detachRow(row);if(row.receipt)cleanupReceipt(row.sessionId,row.receipt)}attachments.value=attachments.value.filter(attachment=>!readyIds.has(attachment.clientId));queueItems.value=remaining;return cleared}async function abandonAttachments({onlySessionId=``}={}){const normalizedSessionId=String(onlySessionId||``).trim();const rows=queueItems.value.filter(row=>!normalizedSessionId||row.sessionId===normalizedSessionId);const rowIds=new Set(rows.map(row=>row.clientId));const readyReceipts=rows.map(row=>row.receipt).filter(Boolean);const attempts=[...activeAttempts.values()].filter(attempt=>rowIds.has(attempt.row.clientId));for(const row of rows)detachRow(row);queueItems.value=queueItems.value.filter(row=>!rowIds.has(row.clientId));attachments.value=attachments.value.filter(attachment=>!rowIds.has(attachment.clientId));const readyCleanup=readyReceipts.map(attachment=>cleanupReceipt(attachment.sessionId,attachment));await Promise.allSettled([...readyCleanup,...attempts.map(attempt=>attempt.settled).filter(Boolean)]);await waitForAttachmentCleanup();return rows}async function waitForAttachmentCleanup(){while(cleanupTasks.size>0)await Promise.allSettled([...cleanupTasks])}async function disposeAttachments(){if(disposed){await waitForAttachmentCleanup();return[]}disposed=true;stopSessionWatch?.();stopSessionWatch=null;return abandonAttachments()}function handleDragEnter(event){if(!assistantAttachmentEventHasFiles(event))return;dragDepth.value+=1;if(event?.dataTransfer)event.dataTransfer.dropEffect=`copy`}function handleDragOver(event){if(event?.dataTransfer)event.dataTransfer.dropEffect=`copy`}function handleDragLeave(){dragDepth.value=Math.max(0,dragDepth.value-1)}function createQueueRow({currentSessionId,file=null,fileName=`attachment`,phase=`queued`,producer=null,size=0}={}){const normalizedSize=Number(file?.size??size)||0;const row=reactive({activeHandoffToken:null,activeToken:null,attachmentId:``,bytesSent:0,clientId:nextAttachmentClientId(),error:``,failureStage:``,file,fileName:file?attachmentFileName(file):String(fileName||`attachment`),path:``,phase,producer,producerAbortController:null,producerToken:null,progress:null,receipt:null,retained:true,sessionId:currentSessionId,size:normalizedSize,totalBytes:normalizedSize,waiter:null});rowsById.set(row.clientId,row);queueItems.value.push(row);createWaiter(row);return row}function queuePreparedFile(row,file,waiter=row.waiter){const preparedFile=assistantAttachmentFiles([file])[0];if(!preparedFile)throw new Error(`The prepared attachment did not produce a file.`);row.file=preparedFile;row.fileName=attachmentFileName(preparedFile);row.size=Number(preparedFile.size)||0;row.totalBytes=row.size;if(row.size>maxBytes){row.error=`${row.fileName} is larger than the ${maxSizeLabel} attachment limit.`;row.failureStage=`validation`;row.phase=`failed`;settleWaiter(row,null,waiter);reportAttachmentError(row.error,`Attachment upload failed.`,{notify:false});return false}row.phase=`queued`;uploadQueue.push(row);pumpQueue();return true}function startAttachmentProducer(row){const token=Symbol(`${row.clientId}-producer`);const waiter=row.waiter;const abortController=typeof AbortController===`function`?new AbortController:null;row.file=null;row.producerAbortController=abortController;row.producerToken=token;row.phase=`preparing`;row.error=``;row.failureStage=``;row.producerSettled=Promise.resolve().then(()=>row.producer({signal:abortController?.signal})).then(file=>{if(row.producerToken!==token||!row.retained||disposed){settleWaiter(row,null,waiter);return null}row.producerAbortController=null;row.producerToken=null;try{queuePreparedFile(row,file,waiter)}catch(error){row.error=String(error?.message||error||`Attachment preparation failed.`);row.failureStage=`preparing`;row.phase=`failed`;settleWaiter(row,null,waiter);reportAttachmentError(error,`Attachment preparation failed.`,{notify:false})}return file},error=>{if(row.producerToken!==token||!row.retained||disposed){settleWaiter(row,null,waiter);return null}row.producerAbortController=null;row.producerToken=null;if(error?.name===`AbortError`){row.phase=`cancelled`;row.error=``}else{row.error=String(error?.message||error||`Attachment preparation failed.`);row.failureStage=`preparing`;row.phase=`failed`;reportAttachmentError(error,`Attachment preparation failed.`,{notify:false})}settleWaiter(row,null,waiter);return null})}function uploadFileProducer({fileName=`Preparing attachment…`,produce}={}){const currentSessionId=assistantAttachmentSessionId(sessionId);if(!canAddFiles.value||typeof produce!==`function`){if(atCapacity.value)reportAttachmentError(`A message can keep at most ${maxItems} attachments.`);return Promise.resolve(null)}status.value=``;const row=createQueueRow({currentSessionId,fileName,phase:`preparing`,producer:produce});const waiter=row.waiter;startAttachmentProducer(row);return waiter.promise}async function uploadFiles(files=[]){const uploadableFiles=assistantAttachmentFiles(files);const currentSessionId=assistantAttachmentSessionId(sessionId);if(uploadableFiles.length<1||!currentSessionId||disposed||!assistantAttachmentUploadAllowed(canUpload)||typeof uploadAttachment!==`function`)return[];status.value=``;const availableSlots=Math.max(0,maxItems-retainedItemCount.value);const acceptedFiles=uploadableFiles.slice(0,availableSlots);if(acceptedFiles.length<uploadableFiles.length)reportAttachmentError(`A message can keep at most ${maxItems} attachments.`);const waiters=[];for(const file of acceptedFiles){const row=createQueueRow({currentSessionId,file});const waiter=row.waiter;waiters.push(waiter.promise);if(row.size>maxBytes){row.error=`${row.fileName} is larger than the ${maxSizeLabel} attachment limit.`;row.failureStage=`validation`;row.phase=`failed`;settleWaiter(row,null);reportAttachmentError(row.error,`Attachment upload failed.`,{notify:false})}else uploadQueue.push(row)}pumpQueue();return(await Promise.all(waiters)).filter(attachment=>attachment&&attachments.value.some(candidate=>candidate.clientId===attachment.clientId))}async function handleDrop(event){resetDragState();return uploadFiles(assistantAttachmentFilesFromDropEvent(event))}async function handlePaste(event){const files=assistantAttachmentFilesFromPasteEvent(event);if(files.length<1){if(assistantAttachmentClipboardLocalFileReference(event))reportAttachmentError(`Copied local files cannot be pasted from this browser. Drop the file or use Attach files.`);return[]}if(!assistantAttachmentClipboardText(event))event?.preventDefault?.();return uploadFiles(files)}stopSessionWatch=watch(()=>assistantAttachmentSessionId(sessionId),(nextSessionId,previousSessionId)=>{if(nextSessionId!==previousSessionId&&previousSessionId)abandonAttachments({onlySessionId:previousSessionId})},{flush:`sync`});if(getCurrentScope())onScopeDispose(()=>{disposeAttachments()});return{maxBytes,maxItems,abandonAttachments,aggregateProgress,attachments,atCapacity,canAddFiles,cancelAttachment,canSubmit,clearAttachments,clearStatus,disposeAttachments,dragActive,hasUnresolved,handleDragEnter,handleDragLeave,handleDragOver,handleDrop,handlePaste,queueItems,removeAttachment,resetDragState,retryAttachment,status,uploading,uploadFiles,uploadFileProducer,waitForAttachmentCleanup}}function parseIntegrationSetupRequest(message){if(message?.role!==`assistant`||typeof message.text!==`string`)return null;const lines=message.text.replace(/\r\n/gu,`
3
3
  `).split(`
4
4
  `);let fence=null;for(let index=0;index<lines.length;index+=1){const line=lines[index];if(fence){const closing=/^ {0,3}(`{3,}|~{3,})\s*$/u.exec(line);if(!closing||closing[1][0]!==fence.character||closing[1].length<fence.length)continue;if(fence.request){if(lines.slice(index+1).some(tail=>tail.trim()))return null;const payload=lines.slice(fence.start+1,index).join(`
@@ -1 +1 @@
1
- import{D as createVNode,E as createTextVNode,On as unref,_ as createBaseVNode,b as createElementBlock,bt as renderList,g as computed,mt as openBlock,o as Fragment,qt as withCtx,tr as toDisplayString,v as createBlock,y as createCommentVNode}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{d as VProgressLinear,h as VIcon}from"./ripple-EFNA8EBu.js";import{S as mdiArrowLeft,_ as mdiArchiveCancelOutline,nr as mdiRefresh}from"./mdi-Bt90Ns76.js";import{t as VBtn}from"./VBtn-BhVEwXLX.js";import{t as VAlert}from"./VAlert-gwuhYlYb.js";import{t as VSheet}from"./VSheet-DxYEFfnM.js";import{r as Vibe64ConversationLog_default,t as Vibe64SessionFiles_default}from"./Vibe64SessionFiles-CM2EzXBf.js";import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper-DNW4j-dv.js";import{a as useArchivedVibe64SessionDetail,i as shortSessionId,t as archiveFactRows}from"./useArchivedVibe64Sessions-D8DWpcSy.js";var _hoisted_1$1={class:`studio-archived-session-detail__header`};var _hoisted_2$1={class:`studio-archived-session-detail__title`};var _hoisted_3={class:`studio-archived-session-detail__grid`};var _hoisted_4={class:`studio-archived-session-detail__section`};var _hoisted_5={class:`studio-archived-session-detail__fact-list`};var _hoisted_6={class:`studio-archived-session-detail__section studio-archived-session-detail__conversation`};var _hoisted_7={key:0,class:`studio-archived-session-detail__muted`};var _sfc_main$1={__name:`ArchivedVibe64SessionDetail`,props:{sessionsApiPath:{type:String,default:``},projectSlug:{type:String,default:``},backTo:{default:null,type:[Object,String]},conversationLog:{default:()=>({}),type:Object},session:{default:null,type:Object}},setup(__props){const props=__props;const archiveIcon=mdiArchiveCancelOutline;const conversationTurns=computed(()=>Array.isArray(props.conversationLog?.turns)?props.conversationLog.turns:[]);const conversationError=computed(()=>String(props.conversationLog?.error||``));const conversationLoadMoreError=computed(()=>String(props.conversationLog?.loadMoreError||``));const conversationHasMoreBefore=computed(()=>Boolean(props.conversationLog?.hasMoreBefore));const conversationLoading=computed(()=>Boolean(props.conversationLog?.loading));const conversationLoadingMore=computed(()=>Boolean(props.conversationLog?.loadingMore));return(_ctx,_cache)=>{return __props.session?(openBlock(),createBlock(VSheet,{key:0,class:`studio-archived-session-detail`,rounded:`lg`,border:``},{default:withCtx(()=>[createBaseVNode(`div`,_hoisted_1$1,[createBaseVNode(`div`,_hoisted_2$1,[createVNode(VIcon,{icon:unref(archiveIcon),size:`20`},null,8,[`icon`]),createBaseVNode(`div`,null,[createBaseVNode(`h2`,null,`Archived session `+toDisplayString(unref(shortSessionId)(__props.session.sessionId)),1),_cache[0]||(_cache[0]=createBaseVNode(`p`,null,`Read-only history. Source restore is not available from archived sessions.`,-1))])]),__props.backTo?(openBlock(),createBlock(VBtn,{key:0,class:`studio-archived-session-detail__back`,"prepend-icon":unref(mdiArrowLeft),size:`small`,to:__props.backTo,variant:`tonal`},{default:withCtx(()=>[..._cache[1]||(_cache[1]=[createTextVNode(` Back to sessions `,-1)])]),_:1},8,[`prepend-icon`,`to`])):createCommentVNode(``,true)]),createBaseVNode(`div`,_hoisted_3,[createBaseVNode(`section`,_hoisted_4,[_cache[2]||(_cache[2]=createBaseVNode(`h3`,null,`Facts`,-1)),createBaseVNode(`dl`,_hoisted_5,[(openBlock(true),createElementBlock(Fragment,null,renderList(unref(archiveFactRows)(__props.session),fact=>{return openBlock(),createElementBlock(`div`,{key:fact.label,class:`studio-archived-session-detail__fact-row`},[createBaseVNode(`dt`,null,[createVNode(VIcon,{icon:fact.icon,size:`16`},null,8,[`icon`]),createBaseVNode(`span`,null,toDisplayString(fact.label),1)]),createBaseVNode(`dd`,null,toDisplayString(fact.value),1)])}),128))])])]),__props.sessionsApiPath?(openBlock(),createBlock(Vibe64SessionFiles_default,{key:0,archived:``,"session-id":__props.session.sessionId,"sessions-api-path":__props.sessionsApiPath,"project-slug":__props.projectSlug,style:{"height":`30rem`}},null,8,[`session-id`,`sessions-api-path`,`project-slug`])):createCommentVNode(``,true),createBaseVNode(`section`,_hoisted_6,[_cache[3]||(_cache[3]=createBaseVNode(`h3`,null,`Conversation`,-1)),createVNode(Vibe64ConversationLog_default,{"session-id":__props.session.sessionId,error:conversationError.value,"has-more-before":conversationHasMoreBefore.value,loading:conversationLoading.value,"loading-more":conversationLoadingMore.value,"load-more-error":conversationLoadMoreError.value,reloadable:true,reloading:conversationLoading.value,"source-root":__props.session.source||``,turns:conversationTurns.value,visible:true,onLoadMore:__props.conversationLog.loadMore,onReload:__props.conversationLog.reload},null,8,[`session-id`,`error`,`has-more-before`,`loading`,`loading-more`,`load-more-error`,`reloading`,`source-root`,`turns`,`onLoadMore`,`onReload`]),!conversationLoading.value&&!conversationError.value&&conversationTurns.value.length<1?(openBlock(),createElementBlock(`p`,_hoisted_7,` No conversation messages were recorded for this archive. `)):createCommentVNode(``,true)])]),_:1})):createCommentVNode(``,true)}}};var ArchivedVibe64SessionDetail_default=_plugin_vue_export_helper_default(_sfc_main$1,[[`__scopeId`,`data-v-36f98390`]]);var _hoisted_1={class:`vibe64-dashboard-page vibe64-dashboard-page--archive-detail`};var _hoisted_2={class:`vibe64-dashboard-page__empty-actions`};var _sfc_main={__name:`[sessionId]`,setup(__props){const{backTo,conversationLog,error,loading,reload,session,sessionId,sessionsApiPath,projectSlug}=useArchivedVibe64SessionDetail();return(_ctx,_cache)=>{return openBlock(),createElementBlock(`section`,_hoisted_1,[_cache[3]||(_cache[3]=createBaseVNode(`header`,{class:`vibe64-dashboard-page__header`},[createBaseVNode(`h1`,{class:`text-headline-small font-weight-bold ma-0`},`Archived Session`)],-1)),unref(error)?(openBlock(),createBlock(VAlert,{key:0,type:`error`,variant:`tonal`,density:`comfortable`},{default:withCtx(()=>[createTextVNode(toDisplayString(unref(error)),1)]),_:1})):createCommentVNode(``,true),unref(loading)&&!unref(session)?(openBlock(),createBlock(VProgressLinear,{key:1,color:`primary`,height:`6`,indeterminate:``,rounded:``})):createCommentVNode(``,true),unref(session)?(openBlock(),createBlock(ArchivedVibe64SessionDetail_default,{key:2,"back-to":unref(backTo),"conversation-log":unref(conversationLog),session:unref(session),"sessions-api-path":unref(sessionsApiPath),"project-slug":unref(projectSlug)},null,8,[`back-to`,`conversation-log`,`session`,`sessions-api-path`,`project-slug`])):!unref(loading)?(openBlock(),createBlock(VSheet,{key:3,class:`vibe64-dashboard-page__empty`,rounded:`lg`,border:``},{default:withCtx(()=>[_cache[2]||(_cache[2]=createBaseVNode(`h2`,null,`Archived session unavailable`,-1)),createBaseVNode(`p`,null,`Session `+toDisplayString(unref(sessionId)||`unknown`)+` could not be loaded.`,1),createBaseVNode(`div`,_hoisted_2,[createVNode(VBtn,{"prepend-icon":unref(mdiArrowLeft),to:unref(backTo),variant:`tonal`},{default:withCtx(()=>[..._cache[0]||(_cache[0]=[createTextVNode(` Back to sessions `,-1)])]),_:1},8,[`prepend-icon`,`to`]),createVNode(VBtn,{"prepend-icon":unref(mdiRefresh),variant:`text`,onClick:unref(reload)},{default:withCtx(()=>[..._cache[1]||(_cache[1]=[createTextVNode(` Retry `,-1)])]),_:1},8,[`prepend-icon`,`onClick`])])]),_:1})):createCommentVNode(``,true)])}}};var _sessionId__default=_plugin_vue_export_helper_default(_sfc_main,[[`__scopeId`,`data-v-9d04455c`]]);export{_sessionId__default as default};
1
+ import{D as createVNode,E as createTextVNode,On as unref,_ as createBaseVNode,b as createElementBlock,bt as renderList,g as computed,mt as openBlock,o as Fragment,qt as withCtx,tr as toDisplayString,v as createBlock,y as createCommentVNode}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{d as VProgressLinear,h as VIcon}from"./ripple-EFNA8EBu.js";import{S as mdiArrowLeft,_ as mdiArchiveCancelOutline,nr as mdiRefresh}from"./mdi-Bt90Ns76.js";import{t as VBtn}from"./VBtn-BhVEwXLX.js";import{t as VAlert}from"./VAlert-gwuhYlYb.js";import{t as VSheet}from"./VSheet-DxYEFfnM.js";import{r as Vibe64ConversationLog_default,t as Vibe64SessionFiles_default}from"./Vibe64SessionFiles-ChJWUOqm.js";import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper-DNW4j-dv.js";import{a as useArchivedVibe64SessionDetail,i as shortSessionId,t as archiveFactRows}from"./useArchivedVibe64Sessions-BXNg8oES.js";var _hoisted_1$1={class:`studio-archived-session-detail__header`};var _hoisted_2$1={class:`studio-archived-session-detail__title`};var _hoisted_3={class:`studio-archived-session-detail__grid`};var _hoisted_4={class:`studio-archived-session-detail__section`};var _hoisted_5={class:`studio-archived-session-detail__fact-list`};var _hoisted_6={class:`studio-archived-session-detail__section studio-archived-session-detail__conversation`};var _hoisted_7={key:0,class:`studio-archived-session-detail__muted`};var _sfc_main$1={__name:`ArchivedVibe64SessionDetail`,props:{sessionsApiPath:{type:String,default:``},projectSlug:{type:String,default:``},backTo:{default:null,type:[Object,String]},conversationLog:{default:()=>({}),type:Object},session:{default:null,type:Object}},setup(__props){const props=__props;const archiveIcon=mdiArchiveCancelOutline;const conversationTurns=computed(()=>Array.isArray(props.conversationLog?.turns)?props.conversationLog.turns:[]);const conversationError=computed(()=>String(props.conversationLog?.error||``));const conversationLoadMoreError=computed(()=>String(props.conversationLog?.loadMoreError||``));const conversationHasMoreBefore=computed(()=>Boolean(props.conversationLog?.hasMoreBefore));const conversationLoading=computed(()=>Boolean(props.conversationLog?.loading));const conversationLoadingMore=computed(()=>Boolean(props.conversationLog?.loadingMore));return(_ctx,_cache)=>{return __props.session?(openBlock(),createBlock(VSheet,{key:0,class:`studio-archived-session-detail`,rounded:`lg`,border:``},{default:withCtx(()=>[createBaseVNode(`div`,_hoisted_1$1,[createBaseVNode(`div`,_hoisted_2$1,[createVNode(VIcon,{icon:unref(archiveIcon),size:`20`},null,8,[`icon`]),createBaseVNode(`div`,null,[createBaseVNode(`h2`,null,`Archived session `+toDisplayString(unref(shortSessionId)(__props.session.sessionId)),1),_cache[0]||(_cache[0]=createBaseVNode(`p`,null,`Read-only history. Source restore is not available from archived sessions.`,-1))])]),__props.backTo?(openBlock(),createBlock(VBtn,{key:0,class:`studio-archived-session-detail__back`,"prepend-icon":unref(mdiArrowLeft),size:`small`,to:__props.backTo,variant:`tonal`},{default:withCtx(()=>[..._cache[1]||(_cache[1]=[createTextVNode(` Back to sessions `,-1)])]),_:1},8,[`prepend-icon`,`to`])):createCommentVNode(``,true)]),createBaseVNode(`div`,_hoisted_3,[createBaseVNode(`section`,_hoisted_4,[_cache[2]||(_cache[2]=createBaseVNode(`h3`,null,`Facts`,-1)),createBaseVNode(`dl`,_hoisted_5,[(openBlock(true),createElementBlock(Fragment,null,renderList(unref(archiveFactRows)(__props.session),fact=>{return openBlock(),createElementBlock(`div`,{key:fact.label,class:`studio-archived-session-detail__fact-row`},[createBaseVNode(`dt`,null,[createVNode(VIcon,{icon:fact.icon,size:`16`},null,8,[`icon`]),createBaseVNode(`span`,null,toDisplayString(fact.label),1)]),createBaseVNode(`dd`,null,toDisplayString(fact.value),1)])}),128))])])]),__props.sessionsApiPath?(openBlock(),createBlock(Vibe64SessionFiles_default,{key:0,archived:``,"session-id":__props.session.sessionId,"sessions-api-path":__props.sessionsApiPath,"project-slug":__props.projectSlug,style:{"height":`30rem`}},null,8,[`session-id`,`sessions-api-path`,`project-slug`])):createCommentVNode(``,true),createBaseVNode(`section`,_hoisted_6,[_cache[3]||(_cache[3]=createBaseVNode(`h3`,null,`Conversation`,-1)),createVNode(Vibe64ConversationLog_default,{"session-id":__props.session.sessionId,error:conversationError.value,"has-more-before":conversationHasMoreBefore.value,loading:conversationLoading.value,"loading-more":conversationLoadingMore.value,"load-more-error":conversationLoadMoreError.value,reloadable:true,reloading:conversationLoading.value,"source-root":__props.session.source||``,turns:conversationTurns.value,visible:true,onLoadMore:__props.conversationLog.loadMore,onReload:__props.conversationLog.reload},null,8,[`session-id`,`error`,`has-more-before`,`loading`,`loading-more`,`load-more-error`,`reloading`,`source-root`,`turns`,`onLoadMore`,`onReload`]),!conversationLoading.value&&!conversationError.value&&conversationTurns.value.length<1?(openBlock(),createElementBlock(`p`,_hoisted_7,` No conversation messages were recorded for this archive. `)):createCommentVNode(``,true)])]),_:1})):createCommentVNode(``,true)}}};var ArchivedVibe64SessionDetail_default=_plugin_vue_export_helper_default(_sfc_main$1,[[`__scopeId`,`data-v-36f98390`]]);var _hoisted_1={class:`vibe64-dashboard-page vibe64-dashboard-page--archive-detail`};var _hoisted_2={class:`vibe64-dashboard-page__empty-actions`};var _sfc_main={__name:`[sessionId]`,setup(__props){const{backTo,conversationLog,error,loading,reload,session,sessionId,sessionsApiPath,projectSlug}=useArchivedVibe64SessionDetail();return(_ctx,_cache)=>{return openBlock(),createElementBlock(`section`,_hoisted_1,[_cache[3]||(_cache[3]=createBaseVNode(`header`,{class:`vibe64-dashboard-page__header`},[createBaseVNode(`h1`,{class:`text-headline-small font-weight-bold ma-0`},`Archived Session`)],-1)),unref(error)?(openBlock(),createBlock(VAlert,{key:0,type:`error`,variant:`tonal`,density:`comfortable`},{default:withCtx(()=>[createTextVNode(toDisplayString(unref(error)),1)]),_:1})):createCommentVNode(``,true),unref(loading)&&!unref(session)?(openBlock(),createBlock(VProgressLinear,{key:1,color:`primary`,height:`6`,indeterminate:``,rounded:``})):createCommentVNode(``,true),unref(session)?(openBlock(),createBlock(ArchivedVibe64SessionDetail_default,{key:2,"back-to":unref(backTo),"conversation-log":unref(conversationLog),session:unref(session),"sessions-api-path":unref(sessionsApiPath),"project-slug":unref(projectSlug)},null,8,[`back-to`,`conversation-log`,`session`,`sessions-api-path`,`project-slug`])):!unref(loading)?(openBlock(),createBlock(VSheet,{key:3,class:`vibe64-dashboard-page__empty`,rounded:`lg`,border:``},{default:withCtx(()=>[_cache[2]||(_cache[2]=createBaseVNode(`h2`,null,`Archived session unavailable`,-1)),createBaseVNode(`p`,null,`Session `+toDisplayString(unref(sessionId)||`unknown`)+` could not be loaded.`,1),createBaseVNode(`div`,_hoisted_2,[createVNode(VBtn,{"prepend-icon":unref(mdiArrowLeft),to:unref(backTo),variant:`tonal`},{default:withCtx(()=>[..._cache[0]||(_cache[0]=[createTextVNode(` Back to sessions `,-1)])]),_:1},8,[`prepend-icon`,`to`]),createVNode(VBtn,{"prepend-icon":unref(mdiRefresh),variant:`text`,onClick:unref(reload)},{default:withCtx(()=>[..._cache[1]||(_cache[1]=[createTextVNode(` Retry `,-1)])]),_:1},8,[`prepend-icon`,`onClick`])])]),_:1})):createCommentVNode(``,true)])}}};var _sessionId__default=_plugin_vue_export_helper_default(_sfc_main,[[`__scopeId`,`data-v-9d04455c`]]);export{_sessionId__default as default};
@@ -0,0 +1 @@
1
+ .vibe64-team-ai-gate[data-v-206f9f1c]{justify-items:start;gap:.75rem;width:100%;max-width:min(36rem,100%);margin-inline:auto;padding:1.5rem;display:grid}.vibe64-team-ai-gate__icon[data-v-206f9f1c]{background:rgba(var(--v-theme-primary), .12);color:rgb(var(--v-theme-primary));border-radius:50%;justify-content:center;align-items:center;width:3rem;height:3rem;display:inline-flex}.vibe64-team-ai-gate__title[data-v-206f9f1c]{letter-spacing:0;margin:0;font-size:1.25rem;font-weight:760;line-height:1.2}.vibe64-team-ai-gate__text[data-v-206f9f1c]{color:rgba(var(--v-theme-on-surface), .72);margin:0}.vibe64-team-ai-gate__ask[data-v-206f9f1c]{background:rgba(var(--v-theme-on-surface), .05);border:1px solid rgba(var(--v-theme-on-surface), .12);border-radius:.5rem;width:100%;margin:.25rem 0;padding:.85rem 1rem;font-weight:600}.vibe64-team-ai-gate__actions[data-v-206f9f1c]{flex-wrap:wrap;gap:.5rem;display:flex}@media (width<=599px){.vibe64-team-ai-gate[data-v-206f9f1c]{padding:1.25rem 1rem}.vibe64-team-ai-gate__actions[data-v-206f9f1c]{width:100%;display:grid}}.project-selection-gate[data-v-0578f026]{align-content:start;gap:.85rem;min-width:0;display:grid}.project-selection-gate__deleted[data-v-0578f026]{justify-items:start;gap:.75rem;width:100%;max-width:min(36rem,100%);margin-inline:auto;padding:1.25rem;display:grid}.project-selection-gate__learning-note[data-v-0578f026]{background:var(--v64-learning-container,#f5c5183d);color:var(--v64-on-learning-container,inherit);border-radius:.5rem;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem .75rem;padding:.5rem .75rem;display:flex}.project-selection-gate__team-ai[data-v-0578f026]{background:rgb(var(--v-theme-warning-container));border:1px solid rgba(var(--v-theme-warning), .35);color:rgb(var(--v-theme-on-warning-container));border-radius:.5rem;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.project-selection-gate__team-ai-text[data-v-0578f026]{gap:.15rem;min-width:min(100%,16rem);display:grid}.project-selection-gate__team-ai-text span[data-v-0578f026]{opacity:.8}.project-selection-gate__project-name[data-v-0578f026]{align-items:center;gap:.5rem;display:inline-flex}.project-selection-gate__deleted-text[data-v-0578f026]{color:rgba(var(--v-theme-on-surface), .72);margin:0}.project-selection-gate__loading[data-v-0578f026]{flex:auto;min-height:18rem}.project-selection-gate__picker[data-v-0578f026]{gap:1rem;width:100%;max-width:min(48rem,100%);margin-inline:auto;padding:1rem;display:grid}.project-selection-gate__header[data-v-0578f026]{justify-content:space-between;align-items:start;min-width:0;display:flex}.project-selection-gate__eyebrow[data-v-0578f026]{color:rgba(var(--v-theme-on-surface), .62);letter-spacing:0;text-transform:uppercase;margin:0 0 .15rem;font-size:.76rem;font-weight:680}.project-selection-gate__title[data-v-0578f026]{letter-spacing:0;margin:0;font-size:1.25rem;font-weight:760;line-height:1.15}.project-selection-gate__path[data-v-0578f026]{color:rgba(var(--v-theme-on-surface), .62);overflow-wrap:anywhere;margin:.35rem 0 0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.82rem}.project-selection-gate__list[data-v-0578f026]{gap:.45rem;display:grid}.project-selection-gate__project[data-v-0578f026]{text-transform:none;justify-content:flex-start;min-height:3.1rem}.project-selection-gate__project[data-v-0578f026] .v-btn__content{place-items:flex-start start;gap:.1rem;min-width:0;display:grid}.project-selection-gate__project-path[data-v-0578f026]{color:rgba(var(--v-theme-on-surface), .62);text-overflow:ellipsis;white-space:nowrap;max-width:min(38rem,70vw);font-size:.75rem;overflow:hidden}.project-selection-gate__create[data-v-0578f026]{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:.65rem;display:grid}@media (width<=640px){.project-selection-gate__create[data-v-0578f026]{grid-template-columns:1fr}.project-selection-gate__team-ai .v-btn[data-v-0578f026]{width:100%}}.local-remotes[data-v-f775cba6]{flex:none;min-width:0}.local-remotes__branch[data-v-f775cba6]{min-width:0;max-width:100%}.local-remotes__branch-name[data-v-f775cba6]{text-overflow:ellipsis;max-width:8rem;display:block;overflow:hidden}.local-remotes__status[data-v-f775cba6]{color:rgba(var(--v-theme-on-surface), var(--v-medium-emphasis-opacity));align-items:center;gap:.375rem;display:flex}.local-remotes__count[data-v-f775cba6]{font-variant-numeric:tabular-nums}.local-remotes__details[data-v-f775cba6]{grid-template-columns:auto minmax(0,1fr);gap:.75rem 1rem;display:grid}.local-remotes__details dt[data-v-f775cba6]{color:rgba(var(--v-theme-on-surface), var(--v-medium-emphasis-opacity))}.local-remotes__details dd[data-v-f775cba6],.local-remotes__message[data-v-f775cba6]{overflow-wrap:anywhere;margin:0}.local-remotes__url[data-v-f775cba6]{overflow-wrap:anywhere}.studio-autopilot__composer-delivery[data-v-9e56f63d]{flex-shrink:0;align-items:center;gap:.25rem;min-width:0;margin-inline-start:auto;display:flex}.studio-autopilot__composer-action[data-v-9e56f63d]{flex-shrink:0}@container studio-chat-pane (width<=32rem){.studio-autopilot__composer-delivery[data-v-9e56f63d]{gap:0}.studio-autopilot__composer-action[data-v-9e56f63d]{width:clamp(2rem,10cqi,2.5rem)}}@media (pointer:coarse){.studio-autopilot__composer-action[data-v-9e56f63d]{min-width:3rem;min-height:3rem}}.chat-modes__trigger[data-v-ca241837]{flex-shrink:0}.chat-modes__details[data-v-ca241837]{flex-direction:column;max-height:min(560px,75dvh);display:flex}.chat-modes__details-body[data-v-ca241837]{min-height:0;overflow-y:auto}.chat-modes__model[data-v-ca241837]{white-space:normal;overflow-wrap:anywhere}.vibe64-temporary-ai__composer-actions[data-v-70ff554d]{align-items:center;gap:.25rem;width:100%;min-width:0;display:flex}.vibe64-temporary-ai.vibe64-temporary-ai--host[data-v-70ff554d]{border-color:rgba(var(--v-theme-secondary), .65);grid-template-rows:auto minmax(0,1fr)}.vibe64-temporary-ai--host .vibe64-temporary-ai__tabs[data-v-70ff554d]{background:rgba(var(--v-theme-secondary), .12)}.vibe64-temporary-ai__host-tab[data-v-70ff554d]{flex:none}.vibe64-temporary-ai__host-content[data-v-70ff554d]{min-width:0;min-height:0}.vibe64-temporary-ai__unread[data-v-70ff554d]{background:rgb(var(--v-theme-primary));border-radius:50%;flex:0 0 8px;height:8px}.vibe64-temporary-ai[data-v-70ff554d]{background:rgb(var(--v-theme-surface));border:2px solid rgba(var(--v-theme-tertiary), .42);z-index:12;border-radius:12px;grid-row:3/-1;grid-template-rows:auto auto minmax(0,1fr);grid-template-columns:minmax(0,1fr);min-height:0;display:grid;position:absolute;inset:0 .3rem .3rem;overflow:hidden;box-shadow:0 14px 38px #0f172a38}.vibe64-temporary-ai__tabs[data-v-70ff554d]{background:rgba(var(--v-theme-tertiary), .06);border-bottom:1px solid rgba(var(--v-theme-tertiary), .18);align-items:flex-start;gap:.25rem;padding:.25rem .35rem;display:flex}.vibe64-temporary-ai__task-tabs[data-v-70ff554d]{scrollbar-width:thin;flex:auto;gap:.25rem;min-width:0;display:flex;overflow-x:auto}.vibe64-temporary-ai__tab[data-v-70ff554d]{background:rgba(var(--v-theme-on-surface), .05);color:inherit;border:1px solid #0000;border-radius:999px;flex:none;align-items:center;max-width:100%;min-height:2rem;padding-left:.15rem;display:inline-flex}.vibe64-temporary-ai__tab-select[data-v-70ff554d]{color:inherit;cursor:pointer;background:0 0;border:0;align-self:stretch;align-items:center;gap:.35rem;min-width:0;padding:.2rem .35rem .2rem .55rem;display:inline-flex}.vibe64-temporary-ai__tab-select>span[data-v-70ff554d]:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.vibe64-temporary-ai__tab-rename[data-v-70ff554d],.vibe64-temporary-ai__tab-close[data-v-70ff554d]{flex:none}.vibe64-temporary-ai[data-v-70ff554d]:focus-visible,.vibe64-temporary-ai__tab-select[data-v-70ff554d]:focus-visible{outline:2px solid rgb(var(--v-theme-primary));outline-offset:2px}.vibe64-temporary-ai__tab--active[data-v-70ff554d]{background:rgb(var(--v-theme-surface));border-color:rgba(var(--v-theme-tertiary), .35);font-weight:650}.vibe64-temporary-ai__tab--main[data-v-70ff554d]{background:rgb(var(--v-theme-surface));border-color:rgba(var(--v-theme-tertiary), .22)}.vibe64-temporary-ai__new-task[data-v-70ff554d]{flex:none}.vibe64-temporary-ai__tabs-spacer[data-v-70ff554d]{flex:auto}.vibe64-temporary-ai__busy[data-v-70ff554d]{background:rgb(var(--v-theme-primary));border-radius:50%;width:.45rem;height:.45rem}.vibe64-temporary-ai__recovery[data-v-70ff554d]{overflow-wrap:anywhere;flex-wrap:wrap;align-items:start;gap:.5rem;padding:.4rem;font-size:.85rem;display:flex}.vibe64-temporary-ai__recovery-row[data-v-70ff554d]:not(:empty){max-height:min(20dvh,8rem);padding:.35rem .55rem 0;overflow-y:auto}.vibe64-temporary-ai__recovery-summary[data-v-70ff554d]{flex:1;min-width:0}.vibe64-temporary-ai__recovery strong[data-v-70ff554d]{font-size:.95rem;line-height:1.4}.vibe64-temporary-ai__recovery summary[data-v-70ff554d]{cursor:pointer}.vibe64-temporary-ai__check-update[data-v-70ff554d],.vibe64-temporary-ai__composer[data-v-70ff554d]{flex:none}.vibe64-temporary-ai__return[data-v-70ff554d]{justify-self:start;margin-top:.4rem;scroll-margin-block:.55rem}.vibe64-temporary-ai__recovery p[data-v-70ff554d]{margin:0}.vibe64-temporary-ai__recovery p+p[data-v-70ff554d]{margin-top:.3rem}.vibe64-temporary-ai__error[data-v-70ff554d]{color:rgba(var(--v-theme-on-surface), .66);font-size:.82rem}.vibe64-temporary-ai__feedback[data-v-70ff554d]{flex:none;min-width:0;max-height:min(12dvh,6rem);overflow-y:auto}.vibe64-temporary-ai__error[data-v-70ff554d]{color:rgb(var(--v-theme-error));padding:.3rem .55rem}.vibe64-temporary-ai__error--recovered[data-v-70ff554d]{color:rgba(var(--v-theme-on-surface), .66)}@media (width<=720px){.vibe64-temporary-ai[data-v-70ff554d]{z-index:30;border:0;border-radius:0;inset:0}}@media (pointer:coarse){.vibe64-temporary-ai__tab-select[data-v-70ff554d],.vibe64-temporary-ai__new-task[data-v-70ff554d],.vibe64-temporary-ai__tab-rename[data-v-70ff554d],.vibe64-temporary-ai__tab-close[data-v-70ff554d],.vibe64-temporary-ai__check-update[data-v-70ff554d],.vibe64-temporary-ai__return[data-v-70ff554d]{min-width:3rem!important;min-height:3rem!important}}.studio-ai-session-archive-dialog[data-v-6853144f]{border:1px solid rgba(var(--v-theme-primary), .32)}.studio-ai-session-archive-dialog__title[data-v-6853144f],.studio-ai-session-archive-dialog__actions[data-v-6853144f]{align-items:center;gap:.55rem;display:flex}.studio-ai-session-archive-dialog__actions[data-v-6853144f]{justify-content:flex-end;padding:0 1rem 1rem}.project-preview[data-v-618a4528]{flex-direction:column;min-width:0;height:100%;min-height:0;display:flex}.project-preview__output[data-v-618a4528]{flex:1;min-height:0}.project-preview__warning[data-v-618a4528]{overflow-wrap:anywhere;flex:none;max-height:35%;overflow-y:auto}.project-preview__warning p[data-v-618a4528]{margin:.25rem 0}.project-preview__warning-actions[data-v-618a4528]{flex-wrap:wrap;align-items:center;gap:.25rem .5rem;margin-top:.25rem;display:flex}.project-preview__warning-actions button[data-v-618a4528]:disabled{opacity:.6}.project-onboarding[data-v-618a4528]{width:min(100%,52rem);margin:auto;padding:clamp(1rem,3vw,2.5rem);overflow-y:auto}.project-onboarding h2[data-v-618a4528]{margin-bottom:1rem;font-size:1.6rem;line-height:1.25}.project-onboarding p[data-v-618a4528]{margin-bottom:1.25rem;line-height:1.6}.project-onboarding__eyebrow[data-v-618a4528]{letter-spacing:.06em;text-transform:uppercase;opacity:.65;font-size:.8rem;font-weight:700}.project-onboarding__group[data-v-618a4528]{margin-block:1.5rem}.project-onboarding__group h3[data-v-618a4528]{margin-bottom:.75rem}.project-onboarding__choices[data-v-618a4528]{grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:1rem;display:grid}.project-onboarding__choice[data-v-618a4528]{text-align:left;border:1px solid rgba(var(--v-theme-on-surface), .16);background:rgb(var(--v-theme-surface));color:inherit;border-radius:1rem;flex-direction:column;gap:.7rem;padding:1.25rem;display:flex}.project-onboarding__choice[data-v-618a4528]:not(:disabled):hover{border-color:rgb(var(--v-theme-primary));background:rgba(var(--v-theme-primary), .05)}.project-onboarding__choice[data-v-618a4528]:focus-visible{outline:2px solid rgb(var(--v-theme-primary));outline-offset:3px}.project-onboarding__choice[data-v-618a4528]:disabled{opacity:.55}.project-onboarding__choice span[data-v-618a4528]{font-size:.9rem;line-height:1.5}.project-onboarding__choose[data-v-618a4528]{color:rgb(var(--v-theme-primary));margin-top:auto;padding-top:.5rem;font-weight:600}.project-onboarding__actions[data-v-618a4528]{flex-wrap:wrap;gap:.75rem;display:flex}.agent-plan-usage[data-v-8fc2288d]{text-transform:none;max-width:100%;font-size:.7rem}.agent-plan-usage__details[data-v-8fc2288d]{white-space:pre-line;margin-block:.5rem}.agent-plan-usage__goal-text[data-v-8fc2288d]{white-space:pre-wrap;overflow-wrap:anywhere}.action-label-pending[data-v-9ad2c448]{visibility:hidden}.vibe64-routing-notice[data-v-9ad2c448] .v-alert__content{flex-wrap:wrap;align-items:center;gap:4px 8px;display:flex}details[data-v-9ad2c448]{flex:13rem;min-width:0}details[open][data-v-9ad2c448]{flex-basis:100%}.vibe64-routing-notice__actions[data-v-9ad2c448]{flex:none;max-width:100%}.vibe64-routing-notice__actions[data-v-9ad2c448] .v-btn{min-height:32px;padding-inline:8px}summary[data-v-9ad2c448]{cursor:pointer;overflow-wrap:anywhere;align-content:center;min-height:32px}@media (pointer:coarse){summary[data-v-9ad2c448],.vibe64-routing-notice__actions[data-v-9ad2c448] .v-btn{min-height:44px}}.work-plan-control[data-v-1813ffe2]{flex:none;align-items:center;display:inline-flex}@media (pointer:coarse){.work-plan-control>.v-btn[data-v-1813ffe2]{min-width:48px;min-height:48px}}.work-plan-content[data-v-1813ffe2]{overflow-wrap:anywhere;min-height:0}.work-plan-archive-context[data-v-1813ffe2]{flex:none;align-items:center;gap:.5rem;display:flex}.work-plan-archive-copy[data-v-1813ffe2]{min-width:0}.work-plan-history-title[data-v-1813ffe2]{white-space:normal;overflow-wrap:anywhere;flex:1;min-width:0}.work-plan-empty[data-v-1813ffe2]{flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:12rem;display:flex}.work-plan-item[data-v-1813ffe2]{align-items:flex-start;gap:.75rem;margin-block:.5rem;display:flex}.work-plan-item input[data-v-1813ffe2]{opacity:1;width:1.1rem;height:1.1rem;accent-color:rgb(var(--v-theme-primary));flex:none;margin-top:.25rem}.work-plan-item[data-v-1813ffe2]>:last-child{flex:1;min-width:0}.starred-files-menu[data-v-b86a8fd5]{flex-direction:column;gap:.5rem;width:min(25rem,100vw - 1rem);max-height:min(32rem,75dvh);padding:.75rem;display:flex}.starred-files-menu__header[data-v-b86a8fd5]{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.5rem;display:grid}.starred-files-menu__list[data-v-b86a8fd5]{overscroll-behavior:contain;min-height:0;overflow-y:auto}@media (width<=599px){.starred-files-menu[data-v-b86a8fd5]{width:100%;padding-bottom:max(.75rem, env(safe-area-inset-bottom))}}@media (pointer:coarse){.starred-files-menu__trigger[data-v-b86a8fd5]{min-width:3rem;min-height:3rem}}.setup-tools[data-v-cf5a6945]{gap:var(--v64-space-2,8px);margin-top:var(--v64-space-2,8px);display:grid}.setup-tools__header[data-v-cf5a6945]{gap:2px;padding-inline:2px;display:grid}.setup-tools__header strong[data-v-cf5a6945]{font:var(--v64-type-title-md);font-size:.9375rem}.setup-tools__header span[data-v-cf5a6945]{color:var(--v64-on-surface-variant);font:var(--v64-type-body-md)}.setup-tools__found[data-v-cf5a6945]{color:var(--v64-on-surface-variant);align-items:baseline;gap:6px;margin:0;padding-inline:2px;font-size:.8125rem;display:flex}.setup-tools__found .v-icon[data-v-cf5a6945]{color:var(--v64-success);flex:none;transform:translateY(2px)}.setup-tools__found-item[data-v-cf5a6945]{margin-left:4px}.setup-tools__found-item code[data-v-cf5a6945]{overflow-wrap:anywhere;background:0 0;margin-left:4px;padding:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem}.vibe64-temporary-action-terminal--error{border-inline-start:.25rem solid rgb(var(--v-theme-error))}.vibe64-temporary-action-terminal .vibe64-terminal-surface__header{flex-direction:column;align-items:stretch;gap:.5rem;margin-bottom:0}.vibe64-temporary-action-terminal .vibe64-terminal-surface__body{margin-top:.5rem}.vibe64-temporary-action-terminal__summary[data-v-228a4f92]{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title status";align-items:center;gap:.5rem;min-width:0;display:grid}.vibe64-temporary-action-terminal__title[data-v-228a4f92]{grid-area:title;font-size:.88rem}.vibe64-temporary-action-terminal__status[data-v-228a4f92]{grid-area:status}.vibe64-temporary-action-terminal--error .vibe64-temporary-action-terminal__line[data-v-228a4f92]{-webkit-line-clamp:3;line-clamp:3;overflow-wrap:anywhere;white-space:normal;-webkit-box-orient:vertical;flex-basis:100%;display:-webkit-box}.vibe64-temporary-action-terminal__title[data-v-228a4f92],.vibe64-temporary-action-terminal__line[data-v-228a4f92]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.vibe64-temporary-action-terminal__line[data-v-228a4f92]{color:rgba(var(--v-theme-on-surface), .72);flex:1 1 0;order:-1;min-width:0;font-size:.82rem}.studio-ai-sessions__create-button[data-v-63a40b7b]{border:1px solid #0000;border-radius:999px;width:3rem;min-width:3rem;height:3rem;min-height:3rem;position:relative;overflow:visible;background:var(--studio-control-rest-bg,#f7f7f8)!important;box-shadow:none!important;color:var(--v64-primary)!important}.studio-ai-sessions__create-button[data-v-63a40b7b]:hover{background:var(--studio-control-active-bg,#e7e7e7)!important}.studio-ai-sessions__create-button[data-v-63a40b7b] .v-icon{color:currentColor;font-size:1.15rem}.studio-ai-sessions__create-button--attention[data-v-63a40b7b]:not(.v-btn--disabled){border-color:color-mix(in srgb, var(--v64-primary) 36%, transparent)}.studio-ai-sessions__create-button--attention[data-v-63a40b7b]:not(.v-btn--disabled):after{border-radius:inherit;content:"";opacity:0;pointer-events:none;transform-origin:50%;will-change:opacity, transform;border:2px solid;animation:6s ease-out infinite studio-ai-session-create-pulse-63a40b7b;position:absolute;inset:-.18rem;transform:scale(1)translateZ(0)}.studio-ai-sessions__preview-create-button[data-v-63a40b7b]{border-radius:var(--studio-control-radius,7px);letter-spacing:0;border:1px solid #0000;min-width:12rem;min-height:3rem;font-weight:500;background:var(--studio-control-active-bg,#e7e7e7)!important;box-shadow:none!important;color:var(--studio-control-text,#202124)!important}.studio-ai-sessions__preview-create-button[data-v-63a40b7b]:hover{background:var(--studio-control-rest-bg,#f7f7f8)!important}.studio-ai-sessions__create-button--unavailable[data-v-63a40b7b]{cursor:not-allowed;opacity:var(--v-disabled-opacity,.38)}.studio-ai-sessions__create-button--unavailable[data-v-63a40b7b]:hover{background:var(--studio-control-rest-bg,#f7f7f8)!important}@keyframes studio-ai-session-create-pulse-63a40b7b{0%{opacity:.48;transform:scale(1)translateZ(0)}14%{opacity:0;transform:scale(1.34)translateZ(0)}to{opacity:0;transform:scale(1.34)translateZ(0)}}@media (prefers-reduced-motion:reduce){.studio-ai-sessions__create-button--attention[data-v-63a40b7b]:not(.v-btn--disabled):after{animation:none}}.studio-ai-sessions__archive-progress[data-v-daaea8eb]{background:rgba(var(--v-theme-primary), .08);overflow-wrap:anywhere;border-radius:.5rem;align-items:flex-start;gap:.5rem;width:100%;padding:.5rem;font-size:.8rem;display:flex}.studio-ai-sessions__archive-detail[data-v-daaea8eb]{opacity:.8;margin-top:.2rem}.studio-ai-sessions__toolbar[data-v-daaea8eb]{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:.75rem;width:100%;min-width:0;display:flex}.studio-ai-sessions__tabs[data-v-daaea8eb]{flex-wrap:wrap;align-items:center;gap:.45rem;width:100%;min-width:0;display:flex}.studio-ai-sessions__tab[data-v-daaea8eb]{border:0;border-radius:999px;align-items:stretch;max-width:18rem;font-weight:500;position:relative;overflow:visible;box-shadow:none!important;color:var(--studio-control-text,#202124)!important;background:0 0!important;padding:0!important}.studio-ai-sessions__tab[data-v-daaea8eb] .v-chip__content{align-items:stretch;min-width:0;display:inline-flex}.studio-ai-sessions__tab-main[data-v-daaea8eb]{--studio-ai-sessions-chip-rest:color-mix(in srgb, var(--v64-on-surface) 5%, var(--v64-surface));background:var(--studio-ai-sessions-chip-rest);border:1px solid var(--v64-outline-variant);box-sizing:border-box;color:var(--studio-control-text,#202124);border-radius:999px;flex:auto;align-items:center;min-width:0;padding-inline:.85rem;display:inline-flex}.studio-ai-sessions__tab--active[data-v-daaea8eb]{font-weight:560;color:var(--studio-control-text,#202124)!important}.studio-ai-sessions__tab--archiving .studio-ai-sessions__tab-main[data-v-daaea8eb]{background:rgba(var(--v-theme-on-surface), .06);color:rgba(var(--v-theme-on-surface), .55)}.studio-ai-sessions__tab--archiving .studio-ai-sessions__status-dot[data-v-daaea8eb]{background:currentColor}.studio-ai-sessions__tab-main[data-v-daaea8eb],.studio-ai-sessions__tab-close-slot[data-v-daaea8eb]{transition:background-color var(--v64-duration-short) var(--v64-ease-standard), color var(--v64-duration-short) var(--v64-ease-standard)}.studio-ai-sessions__tab--active .studio-ai-sessions__tab-main[data-v-daaea8eb]{background:var(--studio-control-active-bg,#e7e7e7);color:var(--v64-on-secondary-container);border-color:#0000;border-radius:999px 0 0 999px;padding-inline-end:.34rem}.studio-ai-sessions__tab:not(.studio-ai-sessions__tab--active) .studio-ai-sessions__tab-main[data-v-daaea8eb]:hover{background:color-mix(in srgb, var(--v64-on-surface) 8%, var(--studio-ai-sessions-chip-rest))}.studio-ai-sessions__tab--active .studio-ai-sessions__tab-main[data-v-daaea8eb]:hover,.studio-ai-sessions__tab--active .studio-ai-sessions__tab-main:hover+.studio-ai-sessions__tab-close-slot[data-v-daaea8eb]{background:color-mix(in srgb, var(--v64-on-secondary-container) 8%, var(--studio-control-active-bg,#e7e7e7))}.studio-ai-sessions__tab[data-v-daaea8eb]:focus-visible{outline:var(--v64-focus-ring-width) solid var(--v64-focus-ring-color);outline-offset:var(--v64-focus-ring-offset)}.studio-ai-sessions__tab[data-v-daaea8eb] .v-chip__overlay,.studio-ai-sessions__tab[data-v-daaea8eb] .v-chip__underlay{display:none}.studio-ai-sessions__tab-label[data-v-daaea8eb]{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.studio-ai-sessions__repository-state[data-v-daaea8eb]{color:rgba(var(--v-theme-on-surface), .52);flex:none;margin-inline-start:.42rem}.studio-ai-sessions__tab-info[data-v-daaea8eb]{color:inherit;flex-shrink:0;display:none}.studio-ai-sessions__info[data-v-daaea8eb]{overflow-wrap:anywhere;max-width:100%;padding:.25rem}.studio-ai-sessions__info-facts[data-v-daaea8eb]{grid-template-columns:auto minmax(0,1fr);gap:.3rem .75rem;margin:.5rem 0 0;display:grid}.studio-ai-sessions__info-facts dt[data-v-daaea8eb]{opacity:.75}.studio-ai-sessions__info-facts dd[data-v-daaea8eb]{margin:0}.studio-ai-sessions__repository-state--saved[data-v-daaea8eb]{color:rgb(var(--v-theme-success))}.studio-ai-sessions__repository-state--unsaved[data-v-daaea8eb],.studio-ai-sessions__repository-state--unavailable[data-v-daaea8eb]{color:rgb(var(--v-theme-error))}.studio-ai-sessions__tab-close-slot[data-v-daaea8eb]{background:var(--studio-control-active-bg,#e7e7e7);box-sizing:border-box;color:rgba(var(--v-theme-on-surface), .68);border:1px solid #0000;border-left:0;border-radius:0 999px 999px 0;flex:none;justify-content:center;align-items:center;padding-inline:.14rem .28rem;display:inline-flex}.studio-ai-sessions__tab-archive[data-v-daaea8eb]{flex:0 0 1.38rem;min-width:1.38rem;min-height:1.38rem;color:currentColor!important;background:0 0!important;width:1.38rem!important;height:1.38rem!important;padding:0!important}.studio-ai-sessions__tab-archive[data-v-daaea8eb]:hover,.studio-ai-sessions__tab-archive[data-v-daaea8eb]:focus-visible{opacity:1;pointer-events:auto;background:color-mix(in srgb, currentColor 14%, transparent)!important}.studio-ai-sessions__tab-archive[data-v-daaea8eb] .v-icon{font-size:.98rem}.studio-ai-sessions__status-dot[data-v-daaea8eb]{background:rgb(var(--v-theme-primary));contain:paint;border-radius:999px;flex:none;width:.52rem;height:.52rem;margin-right:.42rem;display:inline-block;position:relative}.studio-ai-sessions__tab--thinking .studio-ai-sessions__status-dot[data-v-daaea8eb]{animation:1.3s steps(2,end) infinite studio-ai-sessions-thinking-pulse-daaea8eb}.studio-ai-sessions__status-dot--blocked[data-v-daaea8eb],.studio-ai-sessions__status-dot--failed[data-v-daaea8eb]{background:rgb(var(--v-theme-error))}@keyframes studio-ai-sessions-thinking-pulse-daaea8eb{0%,to{opacity:.45}50%{opacity:1}}.studio-ai-sessions__toolbar--compact .studio-ai-sessions__tabs[data-v-daaea8eb]{flex-wrap:nowrap;gap:.34rem}.studio-ai-sessions__toolbar--compact[data-v-daaea8eb]{min-height:2rem}.studio-ai-sessions__toolbar--compact .studio-ai-sessions__tab[data-v-daaea8eb]{letter-spacing:0;flex:1 1 0;min-width:0;max-width:12.5rem;height:2rem;min-height:2rem;font-size:.92rem}.studio-ai-sessions__toolbar--compact .studio-ai-sessions__tab[data-v-daaea8eb] .v-chip__content{flex:auto;width:100%}.studio-ai-sessions__toolbar--compact .studio-ai-sessions__tab-main[data-v-daaea8eb]{padding-inline:.5rem .25rem}.studio-ai-sessions__toolbar--compact .studio-ai-sessions__tab--active[data-v-daaea8eb]{flex-basis:1.7rem}.studio-ai-sessions__toolbar--compact .studio-ai-sessions__tab--active .studio-ai-sessions__tab-main[data-v-daaea8eb]{padding-inline-end:.28rem}.studio-ai-sessions__toolbar--compact .studio-ai-sessions__tab-close-slot[data-v-daaea8eb]{padding-inline:.08rem .22rem}.studio-ai-sessions__toolbar--compact .studio-ai-sessions__status-dot[data-v-daaea8eb]{width:.58rem;height:.58rem;margin-right:.25rem}.studio-ai-sessions__toolbar--compact .studio-ai-sessions__repository-state[data-v-daaea8eb]{margin-inline-start:.25rem}.studio-ai-sessions__toolbar--compact .studio-ai-sessions__tab-archive[data-v-daaea8eb]{flex-basis:1.42rem;min-width:1.42rem;min-height:1.42rem;width:1.42rem!important;height:1.42rem!important}.studio-ai-sessions__toolbar--compact .studio-ai-sessions__tab-archive[data-v-daaea8eb] .v-icon{font-size:1rem}@media (width<=640px){.studio-ai-sessions__toolbar[data-v-daaea8eb]{flex-direction:column;align-items:stretch}}@media (hover:none),(pointer:coarse){.studio-ai-sessions__tab-info[data-v-daaea8eb]{display:inline-flex}.studio-ai-sessions__repository-state--desktop[data-v-daaea8eb]{display:none}.studio-ai-sessions__tab .studio-ai-sessions__tab-archive[data-v-daaea8eb]{box-shadow:none;opacity:1;pointer-events:auto}}@media (prefers-reduced-motion:reduce){.studio-ai-sessions__tab--thinking .studio-ai-sessions__status-dot[data-v-daaea8eb]{opacity:1;animation:none}}.vibe64-approvals[data-v-26d38d3c]{min-width:0}.vibe64-approvals__stack[data-v-26d38d3c]{max-height:min(40vh,26rem);padding:0 0 .5rem;display:block;overflow-y:auto}.vibe64-approvals--phone .vibe64-approvals__stack[data-v-26d38d3c]{max-height:none;padding:0}.vibe64-approvals__panel[data-v-26d38d3c]{background:0 0}.vibe64-approvals__panel--sheet[data-v-26d38d3c]{background:rgb(var(--v-theme-surface));max-height:85vh;padding:0 1rem calc(1rem + env(safe-area-inset-bottom));overflow-y:auto}.vibe64-approvals__sheet-header[data-v-26d38d3c]{justify-content:space-between;align-items:center;min-height:3.5rem;display:flex}.vibe64-approvals__list[data-v-26d38d3c]{flex-direction:column;gap:.5rem;display:flex}.vibe64-approvals__card[data-v-26d38d3c]{border-color:rgba(var(--v-theme-secondary), .45);background:rgba(var(--v-theme-secondary), .05);padding:.75rem}.vibe64-approvals__head[data-v-26d38d3c]{align-items:center;gap:.625rem;min-width:0;display:flex}.vibe64-approvals__avatar[data-v-26d38d3c]{font-weight:600}.vibe64-approvals__who[data-v-26d38d3c]{flex:auto;min-width:0}.vibe64-approvals__text[data-v-26d38d3c]{overflow-wrap:anywhere;white-space:pre-wrap;margin:.5rem 0 0}.vibe64-approvals__note[data-v-26d38d3c]{margin:.375rem 0 0}.vibe64-approvals__draft[data-v-26d38d3c]{margin-top:.5rem}.vibe64-approvals__actions[data-v-26d38d3c]{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;margin-top:.5rem;display:flex}.vibe64-approvals__actions--owner[data-v-26d38d3c]{justify-content:flex-start}.vibe64-approvals--phone .vibe64-approvals__actions[data-v-26d38d3c]{flex-direction:column-reverse}.vibe64-approvals--phone .vibe64-approvals__actions--owner[data-v-26d38d3c]{flex-direction:column}.vibe64-approvals--phone .vibe64-approvals__actions[data-v-26d38d3c] .v-btn{min-height:48px}.vibe64-approvals__decided[data-v-26d38d3c]{flex-direction:column;gap:.25rem;margin:0;padding:0 .25rem;list-style:none;display:flex}.vibe64-approvals__row-line[data-v-26d38d3c]{align-items:center;gap:.5rem;min-width:0;min-height:2rem;display:flex}.vibe64-approvals__row-text[data-v-26d38d3c]{overflow-wrap:anywhere;flex:auto;min-width:0}.vibe64-approvals__show[data-v-26d38d3c]{flex-shrink:0}.vibe64-approvals__excerpt[data-v-26d38d3c]{color:rgba(var(--v-theme-on-surface), var(--v-medium-emphasis-opacity));min-width:0;margin:0 0 .25rem 1.625rem}p.vibe64-approvals__excerpt[data-v-26d38d3c],.vibe64-approvals__excerpt summary[data-v-26d38d3c]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.vibe64-approvals__excerpt summary[data-v-26d38d3c]{cursor:pointer;display:block}.vibe64-approvals__excerpt[open] summary[data-v-26d38d3c]{overflow-wrap:anywhere;white-space:pre-wrap}.vibe64-approvals__quote[data-v-26d38d3c]{border-inline-start:3px solid rgba(var(--v-theme-error), .5);color:rgba(var(--v-theme-on-surface), var(--v-medium-emphasis-opacity));overflow-wrap:anywhere;margin:0 0 .25rem 1.625rem;padding-inline-start:.5rem}.vibe64-approvals__bar[data-v-26d38d3c]{background:rgba(var(--v-theme-secondary), .08);border:1px solid rgba(var(--v-theme-secondary), .35);color:rgb(var(--v-theme-on-surface));text-align:start;border-radius:12px;align-items:center;gap:.5rem;width:100%;min-height:48px;margin-bottom:.5rem;padding:0 .75rem;display:flex}.vibe64-approvals__bar-label[data-v-26d38d3c]{flex:auto;min-width:0;font-weight:500}.vibe64-learning-finished[data-v-ff2faf60]{gap:var(--v64-space-3,12px);max-width:40rem;padding:var(--v64-space-6,32px) var(--v64-space-5,24px);justify-items:start;max-height:100%;margin:0 auto;display:grid;overflow-y:auto}.vibe64-learning-finished[data-v-ff2faf60]>*{max-width:100%;margin:0}.vibe64-learning-finished__mark[data-v-ff2faf60]{color:rgb(var(--v-theme-success))}.vibe64-learning-finished__eyebrow[data-v-ff2faf60]{font:var(--v64-type-label-md,500 .75rem/1rem system-ui, sans-serif);letter-spacing:.06em;text-transform:uppercase;color:var(--v64-on-surface-variant,inherit)}.vibe64-learning-finished h2[data-v-ff2faf60]{font:var(--v64-type-headline-sm,600 1.5rem/2rem system-ui, sans-serif);overflow-wrap:anywhere}.vibe64-learning-finished__hint[data-v-ff2faf60]{color:var(--v64-on-surface-variant,inherit);align-items:center;display:flex}.vibe64-learning-finished__actions[data-v-ff2faf60]{gap:var(--v64-space-2,8px);flex-wrap:wrap;display:flex}.vibe64-learning-finished__error[data-v-ff2faf60]{color:rgb(var(--v-theme-error))}.vibe64-learning-finished .v-btn[data-v-ff2faf60]{letter-spacing:0;text-transform:none}.vibe64-training-visual[data-v-f3080af2]{gap:var(--v64-space-2,8px);flex-direction:column;min-width:0;display:flex}.vibe64-training-visual__frame[data-v-f3080af2]{border:1px solid var(--v64-outline-variant,rgba(var(--v-theme-on-surface), .12));border-radius:var(--v64-shape-lg,16px);background:var(--v64-surface-container-lowest,rgb(var(--v-theme-surface)));box-shadow:var(--v64-elevation-1,0 1px 3px #0000001f);animation:vibe64-training-visual-rise-f3080af2 var(--v64-duration-long,.5s) var(--v64-ease-emphasized-decelerate,ease-out);overflow:hidden}.vibe64-training-visual__bar[data-v-f3080af2]{align-items:center;gap:var(--v64-space-2,8px);min-height:40px;padding:0 var(--v64-space-4,16px);background:var(--v64-surface-container,rgba(var(--v-theme-primary), .05));border-bottom:1px solid var(--v64-outline-variant,rgba(var(--v-theme-on-surface), .12));display:flex}.vibe64-training-visual__bar-icon[data-v-f3080af2]{width:18px;height:18px;fill:rgb(var(--v-theme-primary));flex:none}.vibe64-training-visual__bar-title[data-v-f3080af2]{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:var(--v64-type-label-lg,500 .875rem/1.25rem system-ui, sans-serif);overflow:hidden}.vibe64-training-visual__canvas[data-v-f3080af2]{position:relative}.vibe64-training-visual iframe[data-v-f3080af2]{border:0;width:100%;height:min(60vh,32rem);min-height:16rem;display:block}.vibe64-training-visual__loading[data-v-f3080af2]{position:absolute;inset:0}.vibe64-training-visual p[data-v-f3080af2]{overflow-wrap:anywhere;margin:0}.vibe64-training-visual__caption[data-v-f3080af2]{padding:var(--v64-space-3,12px) var(--v64-space-4,16px);border-radius:var(--v64-shape-md,12px);border-inline-start:4px solid var(--v64-learning,#f5c518);background:var(--v64-surface-container-low,rgba(var(--v-theme-primary), .03))}.vibe64-training-visual__error[data-v-f3080af2]{align-items:center;gap:var(--v64-space-3,12px);padding:var(--v64-space-3,12px) var(--v64-space-4,16px);border-radius:var(--v64-shape-lg,16px);background:var(--v64-error-container,rgba(var(--v-theme-error), .12));color:rgb(var(--v-theme-on-surface));flex-wrap:wrap;display:flex}.vibe64-training-visual__error p[data-v-f3080af2]{flex:12rem;min-width:0}.vibe64-training-visual__error-icon[data-v-f3080af2]{width:24px;height:24px;fill:rgb(var(--v-theme-error));flex:none}.vibe64-training-visual__error .v-btn[data-v-f3080af2]{letter-spacing:0;text-transform:none}@keyframes vibe64-training-visual-rise-f3080af2{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.vibe64-training-visual__frame[data-v-f3080af2]{animation:none}}.vibe64-learning-step h2[data-v-f4d2fb43]{font:var(--v64-type-headline-sm,600 1.5rem/2rem system-ui, sans-serif);margin:0 0 var(--v64-space-3,12px);overflow-wrap:anywhere}.vibe64-learning-step__eyebrow[data-v-f4d2fb43]{font:var(--v64-type-label-md,500 .75rem/1rem system-ui, sans-serif);letter-spacing:.06em;text-transform:uppercase;color:var(--v64-on-surface-variant,inherit);margin:0 0 4px}.vibe64-learning-step__visual[data-v-f4d2fb43],.vibe64-learning-step__check[data-v-f4d2fb43]{gap:var(--v64-space-3,12px);margin-block:var(--v64-space-5,24px);justify-items:start;display:grid}.vibe64-learning-step__visual[data-v-f4d2fb43]>:first-child{justify-self:stretch}.vibe64-learning-step__check[data-v-f4d2fb43]{padding:var(--v64-space-4,16px);border-radius:var(--v64-shape-lg,16px);background:var(--v64-surface-container-low,#00000008)}.vibe64-learning-step__check h3[data-v-f4d2fb43]{font:var(--v64-type-title-md,600 1.125rem/1.5rem system-ui, sans-serif);margin:0}.vibe64-learning-step__hint[data-v-f4d2fb43],.vibe64-learning-step__note[data-v-f4d2fb43]{color:var(--v64-on-surface-variant,inherit);margin:0}.vibe64-learning-step__status[data-v-f4d2fb43]{font-weight:600}.vibe64-learning-step__status.is-passed[data-v-f4d2fb43]{color:rgb(var(--v-theme-success))}.vibe64-learning-step__error[data-v-f4d2fb43]{color:rgb(var(--v-theme-error))}.vibe64-learning-step__actions[data-v-f4d2fb43],.vibe64-learning-step__pager[data-v-f4d2fb43]{gap:var(--v64-space-2,8px);margin-top:var(--v64-space-4,16px);flex-wrap:wrap;display:flex}.vibe64-learning-step__pager[data-v-f4d2fb43]{justify-content:space-between;align-items:center}.vibe64-learning-step__pager-end[data-v-f4d2fb43]{justify-content:flex-end;align-items:center;gap:var(--v64-space-2,8px);flex-wrap:wrap;margin-inline-start:auto;display:flex}.vibe64-learning-step .v-btn[data-v-f4d2fb43]{letter-spacing:0;text-transform:none}.vibe64-learning-reader-frame[data-v-17df61de]{height:100%;min-height:0;container-type:inline-size}.vibe64-learning-reader[data-v-17df61de]{gap:var(--v64-space-4,16px);grid-template-columns:minmax(14rem,18rem) minmax(0,1fr);height:100%;min-height:0;display:grid}.vibe64-learning-reader__alert[data-v-17df61de]{grid-column:1/-1}.vibe64-learning-reader__steps[data-v-17df61de]{min-height:0;padding:var(--v64-space-4,16px);border-inline-end:1px solid var(--v64-outline-variant,#0000001f);overflow-y:auto}.vibe64-learning-reader__steps ol[data-v-17df61de]{margin:var(--v64-space-3,12px) 0;gap:4px;padding:0;list-style:none;display:grid}.vibe64-learning-reader__lesson[data-v-17df61de]{gap:2px;margin:0;display:grid}.vibe64-learning-reader__code[data-v-17df61de]{font:var(--v64-type-label-md,500 .75rem/1rem system-ui, sans-serif);color:var(--v64-on-surface-variant,inherit)}.vibe64-learning-reader__step[data-v-17df61de]{border-radius:var(--v64-shape-md,12px);color:inherit;cursor:pointer;align-items:center;gap:2px var(--v64-space-3,12px);min-height:48px;padding:6px var(--v64-space-2,8px);text-align:start;background:0 0;border:0;grid-template-columns:28px minmax(0,1fr);width:100%;display:grid}.vibe64-learning-reader__step[data-v-17df61de]:hover{background:var(--v64-surface-container,#0000000a)}.vibe64-learning-reader__step.is-current[data-v-17df61de]{background:rgb(var(--v-theme-surface));box-shadow:inset 0 0 0 2px var(--v64-learning-strong,#c99a00);color:rgb(var(--v-theme-on-surface))}.vibe64-learning-reader__step[data-v-17df61de]:focus-visible{outline:2px solid rgb(var(--v-theme-primary));outline-offset:2px}.vibe64-learning-reader__step-mark[data-v-17df61de]{border:1.5px solid;border-radius:50%;grid-row:span 2;justify-content:center;align-items:center;width:26px;height:26px;font-size:.8rem;font-weight:700;display:inline-flex}.vibe64-learning-reader__step.is-passed .vibe64-learning-reader__step-mark[data-v-17df61de]{background:rgb(var(--v-theme-success));border-color:rgb(var(--v-theme-success));color:rgb(var(--v-theme-on-success))}.vibe64-learning-reader__step-title[data-v-17df61de]{overflow-wrap:anywhere;font-weight:600}.vibe64-learning-reader__step-status[data-v-17df61de]{color:var(--v64-on-surface-variant,inherit);font-size:.75rem}.vibe64-learning-reader__summary[data-v-17df61de]{gap:var(--v64-space-2,8px);justify-items:start;display:grid}.vibe64-learning-reader__complete[data-v-17df61de]{color:rgb(var(--v-theme-success));margin:0;font-weight:600}.vibe64-learning-reader__complete-short[data-v-17df61de]{display:none}.vibe64-learning-reader__body[data-v-17df61de]{min-height:0;padding:var(--v64-space-4,16px) var(--v64-space-5,24px) var(--v64-space-6,32px);width:100%;max-width:52rem;overflow-y:auto}.vibe64-learning-reader__notes[data-v-17df61de]{margin-top:var(--v64-space-5,24px)}.vibe64-learning-reader .v-btn[data-v-17df61de]{letter-spacing:0;text-transform:none}@container (width<=760px){.vibe64-learning-reader[data-v-17df61de]{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr);gap:0}.vibe64-learning-reader__steps[data-v-17df61de]{border-inline-end:0;border-bottom:1px solid var(--v64-outline-variant,#0000001f);padding:var(--v64-space-2,8px) var(--v64-space-3,12px)}.vibe64-learning-reader__steps ol[data-v-17df61de]{margin:var(--v64-space-2,8px) 0 0;display:flex;overflow-x:auto}.vibe64-learning-reader__step[data-v-17df61de]{grid-template-columns:28px;justify-items:center;min-width:48px}.vibe64-learning-reader__step-title[data-v-17df61de],.vibe64-learning-reader__step-status[data-v-17df61de]{display:none}.vibe64-learning-reader__summary[data-v-17df61de]{align-items:center;gap:4px var(--v64-space-2,8px);margin-top:var(--v64-space-2,8px);flex-wrap:wrap;display:flex}.vibe64-learning-reader__complete[data-v-17df61de]{font-size:.875rem}.vibe64-learning-reader__complete-long[data-v-17df61de]{display:none}.vibe64-learning-reader__complete-short[data-v-17df61de]{display:inline}.vibe64-learning-reader__body[data-v-17df61de]{padding:var(--v64-space-3,12px) var(--v64-space-4,16px) var(--v64-space-6,32px)}}.vibe64-learning-lesson-pane[data-v-6c96393e]{background:var(--v64-learning-container,rgb(var(--v-theme-surface)));color:rgb(var(--v-theme-on-surface));min-width:0;height:100%;min-height:0;overflow:hidden}.vibe64-learning-lesson-pane__scroll[data-v-6c96393e]{height:100%;overflow-y:auto}.vibe64-lesson-sheet[data-v-36a33e16]{background:var(--v64-learning-container,rgb(var(--v-theme-surface)));border:1px solid var(--v64-learning-strong,#f5c518);border-radius:var(--v64-shape-md,12px);z-index:3;flex-direction:column;min-height:0;display:flex;position:absolute;inset:0;overflow:hidden;box-shadow:0 6px 24px #00000038}.vibe64-lesson-sheet__header[data-v-36a33e16]{border-bottom:1px solid var(--v64-learning-strong,#f5c518);color:var(--v64-on-learning-container,inherit);align-items:center;gap:var(--v64-space-2,8px);flex:none;min-height:44px;padding:4px 8px 4px 12px;display:flex}.vibe64-lesson-sheet__title[data-v-36a33e16]{flex:auto;font-weight:700}.vibe64-lesson-sheet__hide[data-v-36a33e16]{letter-spacing:0;text-transform:none}.vibe64-lesson-sheet__pane[data-v-36a33e16]{flex:auto;height:auto}.studio-autopilot__reasoning-dots[data-v-d1bc93f0]{clip-path:inset(0 66.666% 0 0);animation:1.5s step-end infinite reasoning-dots-d1bc93f0;display:inline-block}@keyframes reasoning-dots-d1bc93f0{33%{clip-path:inset(0 33.333% 0 0)}66%{clip-path:inset(0)}}@media (prefers-reduced-motion:reduce){.studio-autopilot__reasoning-dots[data-v-d1bc93f0]{clip-path:none;animation:none}}.studio-autopilot__checkpoint-notice summary[data-v-d1bc93f0]{cursor:pointer}.studio-autopilot__checkpoint-details[data-v-d1bc93f0]{overflow-wrap:anywhere;white-space:pre-wrap;max-height:8rem;overflow:auto}.studio-autopilot[data-v-d1bc93f0]{background:rgb(var(--v-theme-background));grid-template-columns:minmax(20rem,38%) minmax(0,1fr);min-width:0;height:100%;min-height:0;display:grid;overflow:hidden}.studio-home-shell-session-github-actor[data-v-d1bc93f0]{color:rgba(var(--v-theme-on-surface), .72);white-space:nowrap;align-items:center;gap:.24rem;min-width:0;max-width:100%;padding:0 .36rem;font-size:.72rem;font-weight:650;line-height:1;display:inline-flex}.studio-home-shell-session-github-actor span[data-v-d1bc93f0]{text-overflow:ellipsis;min-width:0;overflow:hidden}.studio-home-shell-session-github-actor--inactive[data-v-d1bc93f0]{color:rgba(var(--v-theme-on-surface), .46)}.studio-autopilot--chat-collapsed[data-v-d1bc93f0]{grid-template-columns:0 minmax(0,1fr)}.studio-autopilot__chat-panel[data-v-d1bc93f0]{background:rgb(var(--v-theme-surface));border-right:1px solid rgba(var(--v-theme-outline), .14);grid-template-rows:auto auto minmax(0,1fr);min-width:0;min-height:0;display:grid;position:relative;overflow:hidden;container:studio-chat-pane/inline-size}.studio-autopilot--chat-collapsed .studio-autopilot__chat-panel[data-v-d1bc93f0]{visibility:hidden}.studio-autopilot__session-header[data-v-d1bc93f0]{border-bottom:1px solid rgba(var(--v-theme-outline), .12);box-sizing:border-box;grid-row:1;justify-content:space-between;align-items:center;gap:0;width:100%;min-width:0;min-height:3rem;padding:.4rem .25rem;display:flex;overflow:hidden}.studio-autopilot__session-header[data-v-d1bc93f0] .studio-ai-sessions__toolbar{flex:auto;min-width:0;margin-inline-end:.35rem;overflow:hidden}.studio-autopilot__session-header[data-v-d1bc93f0] .studio-ai-sessions__tabs{min-width:0;overflow:hidden}.studio-autopilot__header-actions[data-v-d1bc93f0],.studio-autopilot__session-tool-header[data-v-d1bc93f0]{align-items:center;gap:.4rem;display:flex}.studio-autopilot__header-actions[data-v-d1bc93f0]{flex:none;margin-inline-start:auto}.studio-autopilot__header-actions--compact[data-v-d1bc93f0]{display:none}@container studio-chat-pane (width>=32.01rem) and (width<=40rem){.studio-autopilot__session-header[data-v-d1bc93f0]{--session-action-size:44px}.studio-autopilot__header-actions[data-v-d1bc93f0]{gap:0}.studio-autopilot__header-actions[data-v-d1bc93f0] .v-icon,.studio-autopilot__save-work[data-v-d1bc93f0] .v-btn__content>.v-icon{width:20px;height:20px;font-size:20px}.studio-autopilot__save-symbol[data-v-d1bc93f0]{transform:scale(.85)}}@container studio-chat-pane (width<=32rem){.studio-autopilot__header-actions--compact[data-v-d1bc93f0]{display:flex}.studio-autopilot__header-actions--expanded[data-v-d1bc93f0]{display:none}}.studio-autopilot__session-action-item[data-v-d1bc93f0]{min-height:3rem}.studio-autopilot__conversation[data-v-d1bc93f0]{grid-row:3;min-width:0;min-height:0}.studio-autopilot__activity[data-v-d1bc93f0]{grid-row:2;grid-auto-rows:max-content;gap:.3rem;min-width:0;max-height:min(24dvh,12rem);padding:.35rem .5rem;display:grid;overflow:auto}.studio-autopilot__activity[data-v-d1bc93f0]:has(.db-server--attention){max-height:min(80dvh,52rem)}.studio-autopilot__activity[data-v-d1bc93f0]:has(.setup-tools:not(.setup-tools--quiet)){max-height:min(60dvh,34rem)}.studio-autopilot__activity[data-v-d1bc93f0]:has(.git-stand-in){max-height:min(60dvh,26rem)}.studio-autopilot__activity[data-v-d1bc93f0]:empty{padding:0;display:none}.studio-autopilot__connection-recovery[data-v-d1bc93f0]{background:rgba(var(--v-theme-primary), .08);border:1px solid rgba(var(--v-theme-primary), .24);color:rgb(var(--v-theme-on-surface));grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:.5rem;padding:.25rem .5rem;display:grid}.studio-autopilot__connection-recovery>span[data-v-d1bc93f0]{overflow-wrap:anywhere;min-width:0}.studio-autopilot__connection-actions[data-v-d1bc93f0]{flex-direction:column;align-items:flex-start;gap:.25rem;display:flex}.studio-autopilot__composer[data-v-d1bc93f0]{border-top:1px solid rgba(var(--v-theme-outline), .1);box-sizing:border-box;flex:none;width:100%;min-width:0;max-width:100%;padding:4px;overflow:hidden}.studio-autopilot__composer-actions[data-v-d1bc93f0]{align-items:center;gap:.25rem clamp(0rem,4% - 1.25rem,.5rem);width:100%;min-width:0;display:flex}.studio-autopilot__approval-send[data-v-d1bc93f0]{flex-shrink:0;margin-inline-start:auto}@media (pointer:coarse){.studio-autopilot__approval-send[data-v-d1bc93f0]{min-height:3rem}}.studio-autopilot__approvals-chip[data-v-d1bc93f0]{flex-shrink:0;align-self:center}.studio-autopilot__settings-access[data-v-d1bc93f0]{grid-column:1/-1}.studio-autopilot__composer-action[data-v-d1bc93f0]{flex-shrink:0}.studio-autopilot__assistant-button[data-v-d1bc93f0]{align-items:center;display:flex;position:relative}.studio-autopilot__assistant-button-label[data-v-d1bc93f0]{z-index:1;border:1px solid rgba(var(--v-theme-on-surface), .25);background:rgb(var(--v-theme-surface-light));color:rgb(var(--v-theme-on-surface));white-space:nowrap;letter-spacing:0;text-transform:none;border-radius:3px;padding:0 4px;font-size:9px;font-weight:600;line-height:11px;position:absolute;top:100%;left:50%;transform:translate(max(-50%,-2.5rem))}.studio-autopilot__composer-tools[data-v-d1bc93f0]{flex-shrink:0;display:flex}.studio-autopilot__composer-tools[data-v-d1bc93f0]:empty{display:none}@container studio-chat-pane (width<=32rem){.studio-autopilot__composer-actions[data-v-d1bc93f0]{gap:0}.studio-autopilot__composer-actions .studio-autopilot__composer-action[data-v-d1bc93f0]{width:clamp(2rem,10cqi,2.5rem)}.studio-autopilot__composer-actions[data-v-d1bc93f0] button{flex-shrink:1;min-width:min-content;padding-inline:.25rem}}.studio-autopilot__composer-menu[data-v-d1bc93f0]{flex-direction:column;gap:.4rem;max-width:calc(100vw - 24px);display:flex}.studio-autopilot__save-work[data-v-d1bc93f0]{flex:none}.studio-autopilot__save-work--check[data-v-d1bc93f0]{opacity:var(--v-disabled-opacity)}.studio-autopilot__save-symbol[data-v-d1bc93f0]{width:34px;height:32px;position:relative}.studio-autopilot__save-symbol-disk[data-v-d1bc93f0],.studio-autopilot__save-symbol-commit[data-v-d1bc93f0]{opacity:.72;position:absolute}.studio-autopilot__save-symbol-disk[data-v-d1bc93f0]{bottom:0;left:0}.studio-autopilot__save-symbol-commit[data-v-d1bc93f0]{top:0;right:0}.studio-autopilot__project-panel[data-v-d1bc93f0],.studio-autopilot__dashboard-shell[data-v-d1bc93f0],.studio-autopilot__right-pane-page[data-v-d1bc93f0],.studio-autopilot__session-tool-pane[data-v-d1bc93f0],.studio-autopilot__session-tool-content[data-v-d1bc93f0]{min-width:0;height:100%;min-height:0}.studio-autopilot__project-panel[data-v-d1bc93f0]{contain:strict;position:relative;overflow:hidden}.studio-autopilot__right-pane-page[data-v-d1bc93f0]{overflow:auto}.studio-autopilot__session-tool-pane[data-v-d1bc93f0]{grid-template-rows:auto minmax(0,1fr);display:grid}.studio-autopilot__architecture-pane[data-v-d1bc93f0]{grid-template-rows:minmax(0,1fr);overflow:hidden}.studio-autopilot__session-tool-header[data-v-d1bc93f0]{background:var(--v64-surface-container-low);border-bottom:1px solid var(--v64-outline-variant);min-height:3rem;padding:var(--v64-space-1) var(--v64-space-2)}.studio-autopilot__session-tool-pane>.studio-autopilot__right-pane-page[data-v-d1bc93f0]{padding:var(--v64-space-3) var(--v64-space-4) var(--v64-space-4)}.studio-autopilot__session-tool-content[data-v-d1bc93f0]{overflow:hidden}.studio-autopilot__preview-launch[data-v-d1bc93f0]{height:100%}@media (width>=981px){.studio-autopilot[data-v-d1bc93f0]{gap:var(--studio-home-project-gap,.75rem);grid-template-columns:var(--studio-home-chat-column-width,32rem) minmax(0, 1fr)}.studio-autopilot--chat-collapsed[data-v-d1bc93f0]{grid-template-columns:0 minmax(0,1fr);gap:0}}@media (width<=980px){.studio-autopilot[data-v-d1bc93f0]:not(.studio-autopilot--chat-collapsed){grid-template-columns:minmax(0,1fr) 0}.studio-autopilot:not(.studio-autopilot--chat-collapsed) .studio-autopilot__project-panel[data-v-d1bc93f0]{visibility:hidden}}@media (pointer:coarse){.studio-autopilot__composer-actions .studio-autopilot__composer-action[data-v-d1bc93f0]{min-width:3rem;min-height:3rem}}.studio-autopilot__voice-feedback[data-v-d1bc93f0]{flex:100%;min-width:0}.studio-autopilot__architecture-file[data-v-d1bc93f0]{background:rgb(var(--v-theme-surface));border-radius:12px;flex-direction:column;height:min(84dvh,850px);min-height:0;display:flex;overflow:hidden}.studio-autopilot__architecture-file>header[data-v-d1bc93f0]{border-bottom:1px solid rgba(var(--v-theme-on-surface), .12);justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.studio-autopilot__architecture-file>header strong[data-v-d1bc93f0]{overflow-wrap:anywhere;font-size:14px}.studio-autopilot__architecture-file>.vibe64-source-editor[data-v-d1bc93f0]{flex:1;min-height:0}.vibe64-codex-session[data-v-25875427]{min-width:0;height:100%;min-height:0;position:relative}.vibe64-codex-session--headless[data-v-25875427]{pointer-events:none;width:0;height:0;position:absolute;overflow:hidden}.vibe64-codex-session--focused[data-v-25875427] .vibe64-terminal-surface{border-color:rgba(var(--v-theme-primary), .72)}.vibe64-codex-session__drop-overlay[data-v-25875427],.vibe64-codex-session__start-panel[data-v-25875427]{justify-content:center;align-items:center;padding:1rem;display:flex;position:absolute;inset:0}.vibe64-codex-session__drop-overlay[data-v-25875427]{background:rgba(var(--v-theme-scrim,var(--v-theme-on-surface)), .68);pointer-events:none;z-index:5}.vibe64-codex-session__drop-card[data-v-25875427]{align-items:center;gap:.7rem;padding:1rem 1.15rem;display:flex}.vibe64-codex-session__start-panel[data-v-25875427]{background:rgba(var(--v-theme-scrim), .8);z-index:3}.vibe64-codex-session__start-card[data-v-25875427]{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.85rem;width:100%;max-width:min(42rem,100%);padding:1rem;display:grid}.vibe64-codex-session__start-icon[data-v-25875427]{background:rgba(var(--v-theme-primary), .14);color:rgb(var(--v-theme-primary));border-radius:50%;justify-content:center;align-items:center;width:3rem;height:3rem;display:flex}.vibe64-codex-session__start-copy[data-v-25875427]{gap:.15rem;min-width:0;display:grid}.vibe64-codex-session__start-copy strong[data-v-25875427]{font-size:.95rem}.vibe64-codex-session__start-copy span[data-v-25875427]{color:rgba(var(--v-theme-on-surface), .72);font-size:.8rem;line-height:1.35}.vibe64-codex-session__command[data-v-25875427]{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.vibe64-codex-session__start-action[data-v-25875427]{min-inline-size:10rem}.vibe64-codex-session__attachment-action[data-v-25875427]{min-width:2.5rem;min-height:2.5rem}@media (pointer:coarse){.vibe64-codex-session__attachment-action[data-v-25875427]{min-width:3rem;min-height:3rem}}@media (width<=700px){.vibe64-codex-session__start-card[data-v-25875427]{grid-template-columns:auto minmax(0,1fr)}.vibe64-codex-session__start-action[data-v-25875427]{grid-column:1/-1;width:100%}}.vibe64-native-agent-session[data-v-957305bf]{block-size:100%;min-block-size:0;min-inline-size:0;position:relative}.vibe64-native-agent-session--headless[data-v-957305bf]{block-size:0;inline-size:0;position:absolute;overflow:hidden}.vibe64-native-agent-session__drop-overlay[data-v-957305bf]{background:rgba(var(--v-theme-surface), .8);pointer-events:none;z-index:3;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.vibe64-native-agent-session__drop-card[data-v-957305bf]{align-items:center;gap:.5rem;padding:1rem;display:flex}.vibe64-native-agent-session__start-panel[data-v-957305bf]{justify-content:center;align-items:center;padding:1rem;display:flex;position:absolute;inset:0}.vibe64-native-agent-session__start-card[data-v-957305bf]{max-inline-size:48rem;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.9rem;width:100%;padding:1rem;display:grid}.vibe64-native-agent-session__start-icon[data-v-957305bf]{background:rgb(var(--v-theme-secondary-container));color:rgb(var(--v-theme-on-secondary-container));border-radius:50%;justify-content:center;align-items:center;width:3.25rem;height:3.25rem;display:flex}.vibe64-native-agent-session__start-copy[data-v-957305bf]{gap:.2rem;display:grid}.vibe64-native-agent-session__start-copy span[data-v-957305bf],.vibe64-native-agent-session__command[data-v-957305bf]{color:rgba(var(--v-theme-on-surface), var(--v-medium-emphasis-opacity));font-size:.82rem}@media (width<=600px){.vibe64-native-agent-session__start-card[data-v-957305bf]{grid-template-columns:auto minmax(0,1fr)}.vibe64-native-agent-session__start-action[data-v-957305bf]{grid-column:1/-1}}.studio-renewal-assistant[data-v-c35da031]{border:1px solid rgba(var(--v-theme-outline), .22);border-radius:.75rem;gap:.75rem;padding:.85rem;display:grid}.studio-renewal-assistant__heading[data-v-c35da031],.studio-renewal-assistant__error[data-v-c35da031]{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.studio-renewal-assistant__heading>span[data-v-c35da031]{gap:.15rem;display:grid}.studio-renewal-assistant__heading small[data-v-c35da031],.studio-renewal-assistant__summary[data-v-c35da031]{color:rgba(var(--v-theme-on-surface), .68)}.studio-renewal-assistant__fields[data-v-c35da031]{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.studio-renewal-assistant__summary[data-v-c35da031]{margin:0}@media (width<=600px){.studio-renewal-assistant__heading[data-v-c35da031]{align-items:flex-start}.studio-renewal-assistant__fields[data-v-c35da031]{grid-template-columns:minmax(0,1fr)}}.studio-session-renewal[data-v-d2693057]{max-height:min(46rem,100dvh - 2rem)}.studio-session-renewal__header[data-v-d2693057],.studio-session-renewal__heading[data-v-d2693057],.studio-session-renewal__assurance[data-v-d2693057],.studio-session-renewal__success[data-v-d2693057],.studio-session-renewal__progress-copy[data-v-d2693057]{align-items:center;display:flex}.studio-session-renewal__header[data-v-d2693057]{justify-content:space-between;gap:1rem;min-height:4.5rem;padding:.75rem 1rem}.studio-session-renewal__heading[data-v-d2693057]{gap:.75rem;min-width:0}.studio-session-renewal__heading>span[data-v-d2693057]:last-child,.studio-session-renewal__assurance>span[data-v-d2693057],.studio-session-renewal__success>span[data-v-d2693057]{gap:.12rem;min-width:0;display:grid}.studio-session-renewal__heading h2[data-v-d2693057]{margin:0}.studio-session-renewal__subtitle[data-v-d2693057]{color:rgba(var(--v-theme-on-surface), .68)}.studio-session-renewal__icon[data-v-d2693057]{background:rgba(var(--v-theme-primary), .12);color:rgb(var(--v-theme-primary));border-radius:50%;flex:none;justify-content:center;align-items:center;width:2.6rem;height:2.6rem;display:inline-flex}.studio-session-renewal__body[data-v-d2693057]{gap:1rem;min-height:22rem;padding:1.25rem;display:grid}.studio-session-renewal__lead[data-v-d2693057],.studio-session-renewal__supporting[data-v-d2693057]{overflow-wrap:anywhere;margin:0}.studio-session-renewal__lead[data-v-d2693057]{color:rgb(var(--v-theme-on-surface))}.studio-session-renewal__supporting[data-v-d2693057]{color:rgba(var(--v-theme-on-surface), .7)}.studio-session-renewal__assurance[data-v-d2693057],.studio-session-renewal__success[data-v-d2693057]{gap:.75rem;padding:1rem;line-height:1.45}.studio-session-renewal__skeleton[data-v-d2693057]{gap:1rem;display:grid}.studio-session-renewal__progress-copy[data-v-d2693057]{align-items:flex-start;gap:.25rem;display:grid}.studio-session-renewal__progress-copy span[data-v-d2693057]{color:rgba(var(--v-theme-on-surface), .68)}.studio-session-renewal__progress-line[data-v-d2693057]{margin-block:.1rem .25rem}.studio-session-renewal__steps[data-v-d2693057]{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.studio-session-renewal__steps li[data-v-d2693057]{color:rgba(var(--v-theme-on-surface), .58);border-radius:.75rem;align-items:center;gap:.7rem;min-height:2.75rem;padding:.55rem .7rem;display:flex}.studio-session-renewal__step--active[data-v-d2693057]{background:rgba(var(--v-theme-primary), .1);color:rgb(var(--v-theme-on-surface))}.studio-session-renewal__step--complete[data-v-d2693057]{color:rgb(var(--v-theme-primary))}.studio-session-renewal__step-icon[data-v-d2693057]{flex:none;justify-content:center;align-items:center;width:1.25rem;display:inline-flex}.studio-session-renewal__draft[data-v-d2693057]{min-width:0}.studio-session-renewal__notice[data-v-d2693057]{margin:0}.studio-session-renewal__notice-copy[data-v-d2693057]{gap:.25rem;display:grid}.studio-session-renewal__source-details[data-v-d2693057]{grid-template-columns:max-content minmax(0,1fr);gap:.25rem .75rem;margin:.75rem 0 0;display:grid}.studio-session-renewal__source-details dt[data-v-d2693057]{color:rgba(var(--v-theme-on-surface), .68)}.studio-session-renewal__source-details dd[data-v-d2693057]{overflow-wrap:anywhere;min-width:0;margin:0}.studio-session-renewal__notice-with-action[data-v-d2693057]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;display:flex}.studio-session-renewal__notice-with-action .studio-session-renewal__notice-copy[data-v-d2693057]{flex:18rem}.studio-session-renewal__inline-actions[data-v-d2693057]{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;margin-top:.75rem;display:flex}.studio-session-renewal__actions[data-v-d2693057]{flex-wrap:wrap;gap:.5rem;min-height:4.5rem;padding:.75rem 1rem}.studio-session-renewal__actions-spacer[data-v-d2693057]{flex:auto}.studio-session-renewal--fullscreen[data-v-d2693057]{height:100dvh;max-height:100dvh}.studio-session-renewal--fullscreen .studio-session-renewal__body[data-v-d2693057]{min-height:0;padding:1rem}.studio-session-renewal--fullscreen .studio-session-renewal__inline-actions[data-v-d2693057],.studio-session-renewal--fullscreen .studio-session-renewal__notice-with-action[data-v-d2693057]{align-items:stretch}.studio-session-renewal--fullscreen .studio-session-renewal__inline-actions[data-v-d2693057]>*,.studio-session-renewal--fullscreen .studio-session-renewal__notice-with-action[data-v-d2693057]>:last-child{flex:100%}.studio-session-renewal__actions--compact[data-v-d2693057]{align-items:stretch}.studio-session-renewal__actions--compact .studio-session-renewal__actions-spacer[data-v-d2693057]{display:none}.studio-session-renewal__actions--compact .studio-session-renewal__action[data-v-d2693057]{flex:calc(50% - .25rem)}.studio-session-renewal__actions--compact .studio-session-renewal__action--primary[data-v-d2693057]{flex-basis:100%}@media (prefers-reduced-motion:reduce){.studio-session-renewal__progress-line[data-v-d2693057]{display:none}}.studio-ai-session-runtime[data-v-0c74af0e]{min-width:0;max-width:100%;height:100%;min-height:0;display:grid;overflow:hidden}.studio-ai-sessions__tab-terminal[data-v-0c74af0e]{min-width:0;height:100%;min-height:0}.studio-ai-sessions__tab-terminal[data-v-0c74af0e] .studio-ai-sessions__codex-terminal-shell,.studio-ai-sessions__tab-terminal[data-v-0c74af0e] .studio-ai-sessions__codex-terminal{height:100%}.studio-ai-sessions__terminal-unavailable[data-v-0c74af0e]{color:rgba(var(--v-theme-on-surface), .68);text-align:center;align-content:center;justify-items:center;gap:.4rem;height:100%;padding:2rem;display:grid}.studio-ai-sessions__terminal-unavailable strong[data-v-0c74af0e]{color:rgb(var(--v-theme-on-surface))}.studio-ai-sessions__terminal-unavailable span[data-v-0c74af0e]{max-width:32rem}.studio-ai-sessions__empty-main[data-v-7724f9c1],.studio-ai-sessions__empty-project-panel[data-v-7724f9c1]{position:relative}.studio-ai-sessions__empty-layout[data-v-7724f9c1]{gap:var(--studio-home-project-gap,.75rem);min-width:0;height:100%;min-height:0;display:grid;overflow:hidden}.studio-ai-sessions__empty-main[data-v-7724f9c1],.studio-ai-sessions__empty-project-panel[data-v-7724f9c1]{background:rgb(var(--v-theme-surface));border:1px solid rgba(var(--v-theme-outline), .14);border-radius:14px;min-width:0;min-height:0;overflow:hidden;box-shadow:0 .75rem 2rem #0f172a0f}.studio-ai-sessions__empty-main[data-v-7724f9c1],.studio-ai-sessions__empty-project-panel[data-v-7724f9c1],.studio-ai-sessions__preview-empty-pane[data-v-7724f9c1]{display:grid}.studio-ai-sessions__empty-main[data-v-7724f9c1]{grid-template-rows:auto minmax(0,1fr) auto auto auto;gap:.16rem;padding:.05rem .65rem .18rem;overflow:visible}.studio-ai-sessions__empty-session-header[data-v-7724f9c1]{gap:.28rem;min-width:0;display:grid}.studio-ai-sessions__empty-chat-body[data-v-7724f9c1]{scrollbar-gutter:stable;align-items:start;min-height:0;padding:.25rem .1rem 0 0;display:grid;overflow:hidden}.studio-ai-sessions__empty-hint[data-v-7724f9c1]{background:rgba(var(--v-theme-primary), .08);border:1px solid rgba(var(--v-theme-primary), .16);color:rgba(var(--v-theme-on-surface), .76);border-radius:10px;max-width:100%;padding:.55rem .65rem;font-size:.86rem;line-height:1.35}.studio-ai-sessions__empty-thinking[data-v-7724f9c1]{color:rgba(var(--v-theme-on-surface), .72);align-items:center;gap:.38rem;min-height:1.35rem;font-size:.86rem;display:flex}.studio-ai-sessions__empty-thinking--empty[data-v-7724f9c1]{visibility:hidden}.studio-ai-sessions__empty-thinking-mark[data-v-7724f9c1]{background:rgb(var(--v-theme-primary));box-shadow:0 0 0 .24rem rgba(var(--v-theme-primary), .12);border-radius:999px;width:.48rem;height:.48rem}.studio-ai-sessions__empty-runtime-status[data-v-7724f9c1]{display:none}.studio-ai-sessions__empty-composer[data-v-7724f9c1]{min-width:0;min-height:.35rem}.studio-ai-sessions__dashboard-empty-pane[data-v-7724f9c1]{scrollbar-gutter:stable;align-content:start;gap:.75rem;min-width:0;min-height:0;padding:.85rem;display:grid;overflow-y:auto}.studio-ai-sessions__preview-empty-pane[data-v-7724f9c1]{place-items:center;min-width:0;min-height:0;padding:1rem}.studio-ai-sessions__preview-empty-content[data-v-7724f9c1]{text-align:center;place-items:center;gap:.65rem;max-width:min(100%,26rem);display:grid}.studio-ai-sessions__preview-empty-title[data-v-7724f9c1]{color:rgba(var(--v-theme-on-surface), .78);margin:0;font-size:.98rem;line-height:1.35}.studio-ai-sessions__preview-empty-detail[data-v-7724f9c1]{color:rgba(var(--v-theme-on-surface), .62);max-width:24rem;margin:-.25rem 0 0;font-size:.86rem;line-height:1.35}@media (width>=981px){.studio-ai-sessions__empty-layout[data-v-7724f9c1]{grid-template-columns:var(--studio-home-chat-column-width,32rem) minmax(0, 1fr)}.studio-ai-sessions__empty-layout--chat-collapsed[data-v-7724f9c1]{grid-template-columns:minmax(0,1fr)}.studio-ai-sessions__empty-layout--chat-collapsed .studio-ai-sessions__empty-main[data-v-7724f9c1]{display:none}.studio-ai-sessions__empty-layout--dashboard[data-v-7724f9c1]{align-items:stretch;height:100%;overflow:hidden}}@media (width<=980px){.studio-ai-sessions__empty-layout[data-v-7724f9c1]{grid-template-rows:minmax(0,1fr)}.studio-ai-sessions__empty-project-panel[data-v-7724f9c1],.studio-ai-sessions__empty-layout--chat-collapsed .studio-ai-sessions__empty-main[data-v-7724f9c1]{display:none}.studio-ai-sessions__empty-layout--chat-collapsed .studio-ai-sessions__empty-project-panel[data-v-7724f9c1]{display:grid}}.studio-ai-sessions[data-v-07990013]{gap:.85rem;height:100%;min-height:0;display:grid;position:relative;overflow:hidden}.studio-ai-sessions--autopilot[data-v-07990013]{box-shadow:none;background:0 0;grid-template-rows:minmax(0,1fr);gap:0;padding:0;border-radius:0!important}.studio-ai-sessions__chat-column-separator[data-v-07990013]{cursor:col-resize;bottom:0;left:var(--studio-home-chat-column-width,32rem);touch-action:none;-webkit-user-select:none;user-select:none;width:var(--studio-home-project-gap,.75rem);z-index:10;background:0 0;outline:none;position:absolute;top:0}.studio-ai-sessions__chat-column-separator[data-v-07990013]:before{background:rgba(var(--v-theme-on-surface), .14);content:"";width:1px;transition:background-color .12s,width .12s;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.studio-ai-sessions__chat-column-separator[data-v-07990013]:hover:before,.studio-ai-sessions__chat-column-separator[data-v-07990013]:focus-visible:before,.studio-ai-sessions__chat-column-separator--resizing[data-v-07990013]:before{background:rgb(var(--v-theme-primary));width:2px}.studio-ai-sessions--resizing[data-v-07990013]{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}@media (width>=981px){.studio-ai-sessions[data-v-07990013]{grid-template-rows:auto minmax(0,1fr)}.studio-ai-sessions--autopilot[data-v-07990013]{grid-template-rows:minmax(0,1fr)}}@media (width<=980px){.studio-ai-sessions__chat-column-separator[data-v-07990013]{display:none!important}}.studio-ai-sessions--autopilot.studio-ai-sessions--unavailable[data-v-07990013]{grid-template-rows:auto minmax(0,1fr)}.studio-ai-sessions__empty-main>.studio-ai-sessions__empty-host-conversation[data-v-9feb2da1]{grid-row:2/-1}.studio-ai-sessions__preview-empty-loading[data-v-9feb2da1]{width:10rem}.studio-ai-sessions__preview-empty-skeleton[data-v-9feb2da1]{width:100%}.studio-ai-sessions__error-overlay[data-v-9feb2da1]{z-index:12;max-width:min(42rem,100% - 1.7rem);position:absolute;top:.85rem;left:.85rem}.studio-ai-sessions-error-enter-active[data-v-9feb2da1],.studio-ai-sessions-error-leave-active[data-v-9feb2da1]{transition:opacity .12s,transform .12s}.studio-ai-sessions-error-enter-from[data-v-9feb2da1],.studio-ai-sessions-error-leave-to[data-v-9feb2da1]{opacity:0;transform:translateY(-.35rem)}.studio-ai-sessions__runtime-stack[data-v-9feb2da1]{min-width:0;height:100%;min-height:0;display:grid;overflow:hidden}@media (width>=981px){.studio-ai-sessions__runtime-stack[data-v-9feb2da1]{min-height:0}}.vibe64-lesson-toggle[data-v-f8ec48b9]{border:1px solid var(--v64-outline,#7f7f7f99);border-radius:var(--v64-shape-full,999px);color:var(--v64-on-surface,inherit);cursor:pointer;font:inherit;white-space:nowrap;background:0 0;flex:none;align-items:center;gap:6px;height:32px;padding:0 10px 0 8px;font-size:.875rem;font-weight:500;transition:background-color .12s,border-color .12s;display:inline-flex;position:relative}.vibe64-lesson-toggle[data-v-f8ec48b9]:before{border-radius:inherit;content:"";opacity:0;pointer-events:none;background:currentColor;transition:opacity .12s;position:absolute;inset:0}.vibe64-lesson-toggle[data-v-f8ec48b9]:hover:before{opacity:.08}.vibe64-lesson-toggle[data-v-f8ec48b9]:focus-visible{outline:2px solid var(--v64-primary,currentColor);outline-offset:2px}.vibe64-lesson-toggle.is-on[data-v-f8ec48b9]{background:var(--v64-learning,#f5c518);border-color:var(--v64-learning-strong,#f5c518);color:var(--v64-on-learning,#2b2100);font-weight:700}.vibe64-lesson-toggle__switch[data-v-f8ec48b9]{background:color-mix(in srgb, currentColor 14%, transparent);box-sizing:border-box;opacity:.75;border:1.5px solid;border-radius:999px;flex:none;width:28px;height:16px;display:inline-block;position:relative}.vibe64-lesson-toggle__thumb[data-v-f8ec48b9]{background:currentColor;border-radius:50%;justify-content:center;align-items:center;width:8px;height:8px;transition:left .12s,width .12s,height .12s,top .12s;display:flex;position:absolute;top:2.5px;left:2.5px}.vibe64-lesson-toggle.is-on .vibe64-lesson-toggle__switch[data-v-f8ec48b9]{background:var(--v64-on-learning,#2b2100);border-color:var(--v64-on-learning,#2b2100);opacity:1}.vibe64-lesson-toggle.is-on .vibe64-lesson-toggle__thumb[data-v-f8ec48b9]{background:var(--v64-learning,#f5c518);color:var(--v64-on-learning,#2b2100);width:11px;height:11px;top:1px;left:13px}@media (prefers-reduced-motion:reduce){.vibe64-lesson-toggle[data-v-f8ec48b9],.vibe64-lesson-toggle[data-v-f8ec48b9]:before,.vibe64-lesson-toggle__thumb[data-v-f8ec48b9]{transition:none}}.vibe64-learning-step-bar-host[data-v-96343b0b]{flex:none;min-width:0;position:relative}.vibe64-learning-step-bar[data-v-96343b0b]{background:var(--v64-learning-container,#f5c51829);border:1px solid var(--v64-learning-strong,#f5c518);border-radius:var(--v64-shape-md,12px);color:var(--v64-on-learning-container,inherit);align-items:center;gap:var(--v64-space-2,8px);min-width:0;padding:2px var(--v64-space-2,8px);flex:none;display:flex;position:relative;overflow:hidden}.vibe64-learning-step-bar__position[data-v-96343b0b]{align-items:baseline;gap:0 var(--v64-space-2,8px);flex-wrap:wrap;flex:0 auto;min-width:0;display:flex}.vibe64-learning-step-bar__lesson[data-v-96343b0b]{text-overflow:ellipsis;white-space:nowrap;max-width:16rem;font-weight:700;overflow:hidden}.vibe64-learning-step-bar__step[data-v-96343b0b]{overflow-wrap:anywhere;min-width:0}.vibe64-learning-step-bar__dots[data-v-96343b0b]{align-self:center;gap:4px;display:inline-flex}.vibe64-learning-step-bar__dot[data-v-96343b0b]{opacity:.55;border:1.5px solid;border-radius:50%;width:8px;height:8px}.vibe64-learning-step-bar__dot.is-done[data-v-96343b0b]{background:currentColor}.vibe64-learning-step-bar__dot.is-current[data-v-96343b0b]{opacity:1;background:currentColor}.vibe64-learning-step-bar__line[data-v-96343b0b]{align-items:center;gap:2px var(--v64-space-2,8px);flex-wrap:wrap;flex:auto;min-width:0;display:flex}.vibe64-learning-step-bar__beat[data-v-96343b0b]{overflow-wrap:anywhere;flex:12rem;min-width:0;font-weight:500}.vibe64-learning-step-bar__status[data-v-96343b0b]{opacity:.8;font-size:.8125rem}.vibe64-learning-step-bar__status.is-passed[data-v-96343b0b]{color:rgb(var(--v-theme-success));opacity:1}.vibe64-learning-step-bar__note[data-v-96343b0b]{flex-basis:100%;font-size:.8125rem}.vibe64-learning-step-bar__controls[data-v-96343b0b]{flex:none;align-items:center;gap:2px;display:flex}.vibe64-learning-step-bar__progress[data-v-96343b0b]{background:var(--v64-learning-strong,#f5c518);transform-origin:0;height:3px;transition:transform .1s linear;position:absolute;bottom:0;left:0;right:0}.vibe64-learning-step-bar .v-btn[data-v-96343b0b]{letter-spacing:0;text-transform:none}.vibe64-learning-step-bar__step[data-v-96343b0b]{font-variant-numeric:tabular-nums}.vibe64-learning-step-bar__lesson-toggle[data-v-96343b0b]{flex:none;display:inline-flex}@media (prefers-reduced-motion:reduce){.vibe64-learning-step-bar__progress[data-v-96343b0b]{transition:none}}@media (width<=600px){.vibe64-learning-step-bar[data-v-96343b0b]{flex-wrap:wrap;gap:0 4px}.vibe64-learning-step-bar__stuck--beside[data-v-96343b0b],.vibe64-learning-step-bar__lesson[data-v-96343b0b]{display:none}.vibe64-learning-step-bar__position[data-v-96343b0b]{flex:auto;order:1}.vibe64-learning-step-bar__lesson-toggle[data-v-96343b0b],.vibe64-learning-step-bar__practice[data-v-96343b0b],.vibe64-learning-step-bar__courses[data-v-96343b0b]{order:2}.vibe64-learning-step-bar__line[data-v-96343b0b]{flex-basis:100%;order:3;padding:0 0 2px 8px}.vibe64-learning-step-bar__controls[data-v-96343b0b]{flex-basis:100%;order:4;justify-content:space-between}.vibe64-learning-step-bar__controls .v-btn[data-v-96343b0b]:last-child{margin-inline-start:auto}.vibe64-learning-step-bar__courses[data-v-96343b0b],.vibe64-learning-step-bar__practice[data-v-96343b0b]{padding-inline:0}.vibe64-learning-step-bar__courses[data-v-96343b0b] .v-btn__prepend,.vibe64-learning-step-bar__practice[data-v-96343b0b] .v-btn__prepend{margin-inline:0}.vibe64-learning-step-bar__courses-label[data-v-96343b0b],.vibe64-learning-step-bar__practice-label[data-v-96343b0b]{display:none}}.vibe64-learning-stage[data-v-f1c4259c]{gap:var(--v64-space-2,8px);flex-direction:column;min-width:0;min-height:0;display:flex}.vibe64-learning-stage__bar[data-v-f1c4259c]{margin:var(--v64-space-2,8px) var(--v64-space-3,12px) 0}.vibe64-learning-stage__body[data-v-f1c4259c]{flex:auto;min-width:0;min-height:0;display:flex}.vibe64-learning-stage__page[data-v-f1c4259c]{flex:auto;min-width:0}.vibe64-learning-stage__anchor[data-v-f1c4259c]{height:0;top:var(--v64-space-2,8px);z-index:5;flex:0 0 0;align-self:flex-start;width:0;position:sticky}.vibe64-learning-stage__lesson[data-v-f1c4259c]{height:calc(100dvh - 140px);right:var(--v64-space-3,12px);width:min(440px,100vw - 24px);position:absolute;top:0}.is-phone .vibe64-learning-stage__bar[data-v-f1c4259c]{margin-inline:var(--v64-space-2,8px)}.is-phone .vibe64-learning-stage__lesson[data-v-f1c4259c]{height:calc(100dvh - 150px);right:var(--v64-space-2,8px);width:calc(100vw - 16px)}.vibe64-learner-art[data-v-e1a49930]{--learner-skin:#f4c7a1;--learner-ink:#2b2118;width:17rem;max-width:100%;height:auto;display:block;overflow:visible}.vibe64-learner-art__halo[data-v-e1a49930]{fill:var(--v64-learning-tint)}.vibe64-learner-art__disc[data-v-e1a49930]{fill:var(--v64-learning-container)}.vibe64-learner-art__shadow[data-v-e1a49930]{fill:var(--learner-ink);opacity:.1}.vibe64-learner-art__skin[data-v-e1a49930]{fill:var(--learner-skin)}.vibe64-learner-art__body[data-v-e1a49930]{fill:var(--v64-primary);stroke:var(--v64-primary);stroke-linejoin:round;stroke-width:6px}.vibe64-learner-art__collar[data-v-e1a49930]{fill:var(--v64-primary-container);stroke:var(--v64-primary-container);stroke-linejoin:round;stroke-width:3px}.vibe64-learner-art__ink[data-v-e1a49930]{fill:var(--learner-ink)}.vibe64-learner-art__cheek[data-v-e1a49930]{fill:#f08a7e;opacity:.55}.vibe64-learner-art__smile[data-v-e1a49930]{fill:#8c2f22}.vibe64-learner-art__cap[data-v-e1a49930]{fill:var(--learner-ink);stroke:var(--learner-ink);stroke-linejoin:round;stroke-width:3px}.vibe64-learner-art__tassel[data-v-e1a49930]{fill:none;stroke:var(--v64-learning);stroke-linecap:round;stroke-linejoin:round;stroke-width:2.5px}.vibe64-learner-art__tassel-end[data-v-e1a49930],.vibe64-learner-art__bulb[data-v-e1a49930]{fill:var(--v64-learning)}.vibe64-learner-art__bulb[data-v-e1a49930]{filter:drop-shadow(0 0 8px var(--v64-learning-glow))}.vibe64-learner-art__base[data-v-e1a49930]{fill:color-mix(in srgb, var(--learner-ink) 55%, #c9c4b8)}.vibe64-learner-art__ray[data-v-e1a49930],.vibe64-learner-art__bit--learning[data-v-e1a49930]{fill:var(--v64-learning-strong)}.vibe64-learner-art__bit--primary[data-v-e1a49930]{fill:var(--v64-primary);opacity:.65}.vibe64-learner-art__bit--outline[data-v-e1a49930],.vibe64-learner-art__bit--ring[data-v-e1a49930]{fill:none;stroke:var(--v64-primary);stroke-linejoin:round;stroke-opacity:.55;stroke-width:3px}.vibe64-learner-art__idea[data-v-e1a49930]{animation:3.2s ease-in-out infinite vibe64-learner-float-e1a49930}.vibe64-learner-art__wave[data-v-e1a49930]{transform-box:view-box;transform-origin:182px 165px;animation:2.4s ease-in-out infinite vibe64-learner-wave-e1a49930}.vibe64-learner-art__bit[data-v-e1a49930]{transform-box:fill-box;transform-origin:50%;animation:2.8s ease-in-out infinite vibe64-learner-twinkle-e1a49930}.vibe64-learner-art__bit[data-v-e1a49930]:nth-of-type(2n){animation-delay:.9s}.vibe64-learner-art__bit[data-v-e1a49930]:nth-of-type(3n){animation-delay:1.7s}@keyframes vibe64-learner-float-e1a49930{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes vibe64-learner-wave-e1a49930{0%,to{transform:rotate(0)}50%{transform:rotate(-7deg)}}@keyframes vibe64-learner-twinkle-e1a49930{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.75)}}@media (prefers-reduced-motion:reduce){.vibe64-learner-art__idea[data-v-e1a49930],.vibe64-learner-art__wave[data-v-e1a49930],.vibe64-learner-art__bit[data-v-e1a49930]{animation:none}}.vibe64-learn-welcome[data-v-a4a8577f]{animation:vibe64-learn-welcome-in-a4a8577f var(--v64-duration-long,.4s) var(--v64-ease-emphasized-decelerate,ease-out);align-items:center;gap:var(--v64-space-3);text-align:center;justify-items:center;min-width:0;max-width:min(24rem,100%);display:grid}.vibe64-learn-welcome__title[data-v-a4a8577f]{color:var(--v64-on-surface);font:var(--v64-type-headline-sm,600 1.5rem/2rem system-ui, sans-serif);letter-spacing:-.01em;margin:var(--v64-space-2) 0 0}.vibe64-learn-welcome__text[data-v-a4a8577f]{color:var(--v64-on-surface-variant);font:var(--v64-type-body-lg,400 1rem/1.5rem system-ui, sans-serif);margin:0}.vibe64-learn-welcome__choose[data-v-a4a8577f]{box-shadow:0 4px 14px var(--v64-learning-glow);letter-spacing:.01em;margin-top:var(--v64-space-2);text-transform:none;transition:transform var(--v64-duration-short,.15s) var(--v64-ease-standard,ease), box-shadow var(--v64-duration-short,.15s) var(--v64-ease-standard,ease);font-weight:700;background:var(--v64-learning)!important;color:#1d1600!important;padding-inline:var(--v64-space-6,1.5rem)!important}.vibe64-learn-welcome__choose[data-v-a4a8577f]:hover{box-shadow:0 6px 20px var(--v64-learning-glow);transform:translateY(-1px)}@keyframes vibe64-learn-welcome-in-a4a8577f{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.vibe64-learn-welcome[data-v-a4a8577f],.vibe64-learn-welcome__choose[data-v-a4a8577f]{transition:none;animation:none}}.studio-screen__no-project[data-v-9353033f]{flex:auto;min-height:0}.studio-screen__lesson-layout[data-v-9353033f]{border:1px solid rgba(var(--v-theme-outline), .14);border-radius:14px;min-width:0;height:100%;min-height:0;overflow:hidden}.studio-screen__no-project-text[data-v-9353033f]{color:var(--v64-on-surface-variant);gap:var(--v64-space-3);padding:var(--v64-space-4);justify-items:start;display:grid}.studio-screen__no-project-text p[data-v-9353033f]{margin:0}.studio-screen__choose-lesson[data-v-9353033f]{text-transform:none}.studio-screen__no-lesson-chat[data-v-9353033f]{min-width:0;min-height:0;padding:var(--v64-space-4) var(--v64-space-2);place-items:center;display:grid;overflow-y:auto}.studio-screen__no-lesson-note[data-v-9353033f]{color:var(--v64-on-surface-variant);font:var(--v64-type-body-md,400 .875rem/1.25rem system-ui, sans-serif);text-align:center;max-width:18rem;margin:0}.studio-screen__no-lesson-welcome[data-v-9353033f]{display:none}@media (width<=980px){.studio-screen__no-lesson-note[data-v-9353033f]{display:none}.studio-screen__no-lesson-welcome[data-v-9353033f]{display:grid}}body.studio-home-shell-active{--studio-home-chat-column-width:32rem;--studio-home-project-gap:.75rem;--studio-control-bg:var(--v64-surface);--studio-control-rest-bg:var(--v64-surface-container-high);--studio-control-active-bg:var(--v64-secondary-container);--studio-control-border:var(--v64-outline-variant);--studio-control-border-strong:var(--v64-outline);--studio-control-text:var(--v64-on-surface);--studio-control-muted-text:var(--v64-on-surface-variant);--studio-control-radius:var(--v64-shape-md)}.generated-ui-screen[data-v-839af11d]{--generated-ui-screen-title-size:clamp(1.2rem, 1.7vw, 1.55rem);--generated-ui-screen-panel-padding:0}.studio-screen[data-v-839af11d]{flex:auto;width:100%;max-width:none;height:100%;min-height:0;margin-inline:0;overflow:hidden}.studio-screen__panel[data-v-839af11d]{padding:var(--generated-ui-screen-panel-padding)}.studio-screen__gate-scroll[data-v-839af11d]{flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden}.studio-screen__gate-scroll[data-v-839af11d] .project-selection-gate{flex-direction:column;flex:auto;min-height:0;display:flex}.studio-screen__gate-scroll[data-v-839af11d] .project-selection-gate .studio-ai-sessions{flex:auto;min-height:0}.studio-home-shell-heading[data-v-839af11d]{align-items:center;gap:var(--studio-home-project-gap);overflow-clip-margin:4px;flex:auto;min-width:0;display:flex;overflow-x:clip}.studio-home-shell-title-area[data-v-839af11d]{flex:0 1000 var(--studio-home-chat-column-width);align-items:center;gap:.42rem;min-width:0;padding-left:1rem;display:flex}.studio-home-shell-heading--chat-collapsed .studio-home-shell-title-area[data-v-839af11d]{flex-basis:auto}@media (width>=981px){.studio-home-shell-heading:not(.studio-home-shell-heading--chat-collapsed) .studio-home-shell-title-area[data-v-839af11d]{width:calc(var(--studio-home-chat-column-edge,var(--studio-home-chat-column-width)) - var(--studio-home-project-gap) - 2.7rem);flex:0 1000 auto}}.studio-home-shell-project-name[data-v-839af11d]{flex:0 auto;min-width:0;display:flex}.studio-home-shell-project-selector[data-v-839af11d]{border-radius:var(--v64-shape-full);font:var(--v64-type-title-md);letter-spacing:-.005em;min-width:0;max-width:100%;padding-inline:var(--v64-space-3) var(--v64-space-2);text-transform:none;flex:0 auto;justify-content:start;font-size:1.0625rem;color:var(--v64-on-surface)!important}.studio-home-shell-project-selector[data-v-839af11d] .v-icon{color:var(--v64-on-surface-variant);margin-inline-start:var(--v64-space-1)}.studio-home-shell-project-selector[data-v-839af11d] .v-btn__content{min-width:0}.studio-home-shell-project-selector span[data-v-839af11d]{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.studio-home-shell-github-actor-host[data-v-839af11d]{flex:auto;align-items:center;min-width:0;min-height:1.65rem;display:flex;overflow:hidden}.studio-home-shell-github-actor-host[data-v-839af11d]:empty{display:none}.studio-home-shell-local-remotes-host[data-v-839af11d],.studio-home-shell-create-session-host[data-v-839af11d]{flex:none;display:flex}.studio-home-shell-local-remotes-host[data-v-839af11d]:empty,.studio-home-shell-create-session-host[data-v-839af11d]:empty{display:none}.studio-home-shell-title[data-v-839af11d]{color:rgb(var(--v-theme-on-surface));text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;max-width:100%;margin:0;font-size:1.2rem;font-weight:720;line-height:1.2;overflow:hidden}.studio-home-shell-surface-label[data-v-839af11d]{color:rgb(var(--v-theme-on-surface));text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;max-width:12rem;font-size:.95rem;font-weight:650;line-height:1.2;display:block;overflow:hidden}.studio-home-shell-target-folder[data-v-839af11d]{color:rgb(var(--v-theme-on-surface));text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;max-width:100%;margin:0;font-size:1.2rem;font-weight:760;line-height:1.2;display:block;overflow:hidden}.studio-home-shell-project-controls[data-v-839af11d]{flex:0 auto;align-items:center;gap:.45rem;min-width:0;display:flex}.studio-home-shell-chat-toggle[data-v-839af11d]{border-radius:var(--v64-shape-full);box-shadow:none;min-width:2.25rem;height:2.25rem;min-height:2.25rem;transition:background-color var(--v64-duration-short) var(--v64-ease-standard);border:0;flex:none;width:2.25rem;background:var(--v64-surface-container-high)!important;color:var(--v64-on-surface-variant)!important}.studio-home-shell-chat-toggle[data-v-839af11d]:hover{background:color-mix(in srgb, var(--v64-on-surface) 8%, var(--v64-surface-container-high))!important}.studio-home-shell-lesson-toggle[data-v-839af11d]{border-inline-start:1px solid var(--v64-outline-variant);flex:none;align-items:center;padding-inline-start:var(--studio-home-project-gap);display:inline-flex}.studio-home-shell-project-tabs[data-v-839af11d]{border:1px solid var(--v64-outline);border-radius:var(--v64-shape-full);flex:none;grid-auto-columns:minmax(5.25rem,1fr);grid-auto-flow:column;min-width:0;display:inline-grid;overflow:hidden}.studio-home-shell-project-tab[data-v-839af11d]{border:0;border-inline-start:1px solid var(--v64-outline);color:var(--v64-on-surface);cursor:pointer;font:var(--v64-type-label-lg);align-items:center;gap:var(--v64-space-1);letter-spacing:.01em;min-width:0;height:2.25rem;padding:0 var(--v64-space-3);transition:background-color var(--v64-duration-short) var(--v64-ease-standard), color var(--v64-duration-short) var(--v64-ease-standard);white-space:nowrap;background:0 0;justify-content:center;display:inline-flex;position:relative}.studio-home-shell-project-tab[data-v-839af11d]:first-child{border-inline-start:0}.studio-home-shell-project-tab[data-v-839af11d]:after{content:"";opacity:0;pointer-events:none;transition:opacity var(--v64-duration-short) var(--v64-ease-standard);background:currentColor;position:absolute;inset:0}.studio-home-shell-project-tab[data-v-839af11d]:hover:not(:disabled):after{opacity:var(--v64-state-hover)}.studio-home-shell-project-tab[data-v-839af11d]:active:not(:disabled):after{opacity:var(--v64-state-pressed)}.studio-home-shell-project-tab[data-v-839af11d]:focus-visible{outline:var(--v64-focus-ring-width) solid var(--v64-focus-ring-color);outline-offset:-4px}.studio-home-shell-project-tab--active[data-v-839af11d]{background:var(--v64-secondary-container);color:var(--v64-on-secondary-container);font-weight:600}.studio-home-shell-project-tab--active[data-v-839af11d]:before{animation:studio-home-shell-check-in-839af11d var(--v64-duration-medium) var(--v64-ease-emphasized-decelerate);content:"";height:1.125rem;-webkit-mask:var(--studio-home-shell-check) center / contain no-repeat;-webkit-mask:var(--studio-home-shell-check) center / contain no-repeat;mask:var(--studio-home-shell-check) center / contain no-repeat;background:currentColor;flex:none;width:1.125rem}.studio-home-shell-project-tabs[data-v-839af11d]{--studio-home-shell-check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E")}.studio-home-shell-project-tab[data-v-839af11d]:disabled{color:color-mix(in srgb, var(--v64-on-surface) 38%, transparent);cursor:not-allowed}@keyframes studio-home-shell-check-in-839af11d{0%{opacity:0;width:0}to{opacity:1;width:1.125rem}}.studio-home-shell-preview-toolbar-host[data-v-839af11d]{flex:auto;justify-content:flex-start;align-items:center;min-width:0;max-width:min(43rem,54vw);display:flex}.studio-home-shell-preview-toolbar-host[data-v-839af11d]:empty{display:none}.studio-home-shell-project-mobile-action[data-v-839af11d]{background:var(--v64-secondary-container);border-radius:var(--v64-shape-full);color:var(--v64-on-secondary-container);cursor:pointer;font:var(--v64-type-label-lg);align-items:center;gap:var(--v64-space-1);letter-spacing:.01em;min-width:4.5rem;min-height:2.5rem;padding:0 var(--v64-space-2) 0 var(--v64-space-4);transition:background-color var(--v64-duration-short) var(--v64-ease-standard);white-space:nowrap;border:0;flex:none;justify-content:center;display:none;position:relative}.studio-home-shell-project-mobile-action__icon[data-v-839af11d]{display:none!important}.studio-home-shell-project-mobile-action[data-v-839af11d]:hover{background:color-mix(in srgb, var(--v64-on-secondary-container) 8%, var(--v64-secondary-container))}.studio-home-shell-project-mobile-action[data-v-839af11d]:focus-visible{outline:var(--v64-focus-ring-width) solid var(--v64-focus-ring-color);outline-offset:var(--v64-focus-ring-offset)}@media (prefers-reduced-motion:reduce){.studio-home-shell-project-tab--active[data-v-839af11d]:before{animation:none}}@media (width>=981px){.studio-screen__gate-scroll[data-v-839af11d] .project-selection-gate .studio-ai-sessions--autopilot{padding:0}}@media (width<=980px){.studio-home-shell-heading[data-v-839af11d]{grid-template-columns:minmax(0,1fr) auto;gap:.5rem;width:100%;display:grid}.studio-home-shell-project-controls[data-v-839af11d]{justify-content:flex-end;min-width:0;margin-left:auto;display:flex}.studio-home-shell-project-tabs--desktop[data-v-839af11d]{display:none}.studio-home-shell-project-mobile-action[data-v-839af11d]{display:inline-flex}.studio-home-shell-preview-toolbar-host[data-v-839af11d]{flex:0 auto;max-width:min(26rem,42vw)}.studio-home-shell-project-mobile-action[data-v-839af11d]{order:1}.studio-home-shell-lesson-toggle[data-v-839af11d]{order:2}.studio-home-shell-preview-toolbar-host[data-v-839af11d]{order:3}}@media (width<=600px){.studio-home-shell-title[data-v-839af11d]{max-width:calc(100vw - 14rem);font-size:1.05rem}.studio-home-shell-target-folder[data-v-839af11d]{max-width:calc(100vw - 16rem);font-size:1.05rem}.studio-home-shell-heading[data-v-839af11d]{gap:var(--v64-space-1);flex:auto;width:100%;min-width:0;padding-left:0;display:flex}.studio-home-shell-project-controls[data-v-839af11d]{flex:none;gap:.28rem}.studio-home-shell-preview-toolbar-host[data-v-839af11d]{max-width:min(12rem,32vw)}.studio-home-shell-project-mobile-action[data-v-839af11d]{min-width:4rem;padding-inline:var(--v64-space-3) var(--v64-space-1)}.studio-home-shell-lesson-toggle[data-v-839af11d]{padding-inline-start:var(--v64-space-1)}.studio-home-shell-lesson-toggle[data-v-839af11d] .vibe64-lesson-toggle__label{display:none}.studio-home-shell-title-area[data-v-839af11d]{flex:auto;padding-left:0}.studio-home-shell-project-name[data-v-839af11d]{flex:auto;overflow:hidden;container-type:inline-size}.studio-home-shell-github-actor-host[data-v-839af11d]{flex:none}.studio-home-shell-github-actor-host[data-v-839af11d] .studio-home-shell-session-github-actor{padding:0}.studio-home-shell-github-actor-host[data-v-839af11d] .studio-home-shell-session-github-actor span{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.studio-home-shell-heading--chat-collapsed .studio-home-shell-create-session-host[data-v-839af11d],.studio-home-shell-heading--chat-collapsed .studio-home-shell-local-remotes-host[data-v-839af11d],.studio-home-shell-heading--chat-collapsed .studio-home-shell-github-actor-host[data-v-839af11d]{display:none}.studio-home-shell-project-selector[data-v-839af11d]{flex:0 auto;min-width:2.25rem;max-width:100%;padding-inline:.375rem .125rem;font-size:.95rem}.studio-home-shell-project-selector[data-v-839af11d] .v-icon{margin-inline-start:0}.studio-home-shell-local-remotes-host[data-v-839af11d]{margin-inline-end:.375rem}.studio-home-shell-local-remotes-host[data-v-839af11d] .local-remotes__branch{width:2.5rem!important}.studio-home-shell-title-area[data-v-839af11d]{gap:var(--v64-space-1)}.studio-home-shell-create-session-host[data-v-839af11d] .studio-ai-sessions__create-button,.studio-home-shell-chat-toggle[data-v-839af11d]{width:2.5rem;min-width:2.5rem;height:2.5rem;min-height:2.5rem}.studio-home-shell-project-controls[data-v-839af11d]{gap:.3rem}.studio-screen[data-v-839af11d]{max-width:100%}}@container (width<=4rem){.studio-home-shell-project-selector[data-v-839af11d]{visibility:hidden}}@media (width<=480px){.studio-home-shell-project-mobile-action[data-v-839af11d]{width:2.5rem;min-width:2.5rem;padding:0}.studio-home-shell-project-mobile-action__icon[data-v-839af11d]{display:inline-flex!important}.studio-home-shell-project-mobile-action__label[data-v-839af11d],.studio-home-shell-project-mobile-action__chevron[data-v-839af11d]{display:none!important}}