vibe64 0.1.35 → 0.1.36

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 (208) hide show
  1. package/bin/run.js +1919 -1660
  2. package/bin/server.js +158 -111
  3. package/bin/upgrade-state.js +5783 -5605
  4. package/dist/assets/GithubBrowserTabs-BzJF4k9Y.js +1 -0
  5. package/dist/assets/{StudioErrorNotice-sQfmeR-z.js → StudioErrorNotice-BdllGqRy.js} +1 -1
  6. package/dist/assets/{Vibe64AsyncModuleState-Dx7YKRPp.js → Vibe64AsyncModuleState-Bi0TqlIu.js} +1 -1
  7. package/dist/assets/Vibe64AuthSettingsButton-BuvmwGiT.js +5 -0
  8. package/dist/assets/Vibe64AuthSettingsButton-M44SSmZ9.css +1 -0
  9. package/dist/assets/{Vibe64DashboardBackButton-yE6cyYg2.js → Vibe64DashboardBackButton-Ccd4hpD6.js} +1 -1
  10. package/dist/assets/Vibe64DashboardShell-D67m4aWz.js +1 -0
  11. package/dist/assets/{Vibe64DashboardShell-MBkUHjs-.css → Vibe64DashboardShell-De2mbdpI.css} +1 -1
  12. package/dist/assets/{Vibe64DatabaseWorkspace-BONJdxBS.js → Vibe64DatabaseWorkspace-D3uK1gDm.js} +3 -3
  13. package/dist/assets/{Vibe64DatabaseWorkspace-CR4pzzcf.css → Vibe64DatabaseWorkspace-DPDMxhAW.css} +1 -1
  14. package/dist/assets/Vibe64OutputControls-BfESn5kJ.js +8 -0
  15. package/dist/assets/Vibe64OutputControls-D2CCECo5.css +1 -0
  16. package/dist/assets/{Vibe64RepositoryWorkspace-ByQlZbyO.js → Vibe64RepositoryWorkspace-0jAxvdA8.js} +2 -2
  17. package/dist/assets/{Vibe64RepositoryWorkspace-CVHcT93M.css → Vibe64RepositoryWorkspace-Agyt4O-V.css} +1 -1
  18. package/dist/assets/Vibe64SessionFiles-B3ONZrBL.css +1 -0
  19. package/dist/assets/Vibe64SessionFiles-BCOJ4QmR.js +41 -0
  20. package/dist/assets/{Vibe64TemporaryAiFixAction-BGlcrq4d.js → Vibe64TemporaryAiFixAction-DM2jpPbQ.js} +1 -1
  21. package/dist/assets/{Vibe64UiStoryboardView-Brlwdvqi.js → Vibe64UiStoryboardView-DP5af46a.js} +1 -1
  22. package/dist/assets/{Vibe64UnavailableSessions-zwlWlcZD.js → Vibe64UnavailableSessions-C7XwH1SS.js} +1 -1
  23. package/dist/assets/{_sessionId_-CvOkQbVy.js → _sessionId_-B1Ymr7c_.js} +1 -1
  24. package/dist/assets/{_sessionTool_-Dwod5ns9.js → _sessionTool_-DVYdREoI.js} +1 -1
  25. package/dist/assets/_slug_-CQseA9pt.css +1 -0
  26. package/dist/assets/_slug_-CYO2vjCd.js +24 -0
  27. package/dist/assets/{access-BVu5XYm2.js → access-Cb7dkN53.js} +1 -1
  28. package/dist/assets/app-BvgY7oVf.js +1 -0
  29. package/dist/assets/app-CZu7oxUO.css +1 -0
  30. package/dist/assets/{assistantRouting-CwbwfkwB.js → assistantRouting-B38ujQ7x.js} +1 -1
  31. package/dist/assets/{changes-olY8cnFK.js → changes-lsBcuikn.js} +1 -1
  32. package/dist/assets/client-CRI5CNKl.js +2 -0
  33. package/dist/assets/client-TGaWwOhc.css +1 -0
  34. package/dist/assets/conversation-CDEt9jBx.js +17 -0
  35. package/dist/assets/conversation-vxJGwmtW.css +1 -0
  36. package/dist/assets/{dashboard-BnXD-H4R.js → dashboard-D8HOAw46.js} +1 -1
  37. package/dist/assets/definitions-DLTX17nI.js +1 -0
  38. package/dist/assets/{env-DJhnLOH7.css → env-BzRtyO0w.css} +1 -1
  39. package/dist/assets/env-DJezQixO.js +1 -0
  40. package/dist/assets/health-BJvooRnJ.css +1 -0
  41. package/dist/assets/health-CtKdN_Nf.js +1 -0
  42. package/dist/assets/{history-BxlpB-YH.js → history-BdZFOtz4.js} +1 -1
  43. package/dist/assets/{incoming-BOxRVlOM.js → incoming-VsQNnL9m.js} +1 -1
  44. package/dist/assets/index-C-osVUKw.css +1 -0
  45. package/dist/assets/index-C4K3ntms.js +138 -0
  46. package/dist/assets/{integrations-BFltGDVI.js → integrations-CMQ9EDmt.js} +2 -2
  47. package/dist/assets/issues-DHpY5hSr.js +1 -0
  48. package/dist/assets/learning-DXlMuwzh.js +1 -0
  49. package/dist/assets/mdi-yXT-CQ6u.js +1 -0
  50. package/dist/assets/placement-NpX2s7u8.js +1 -0
  51. package/dist/assets/pull-requests-BcKNEUYH.js +1 -0
  52. package/dist/assets/{repository-JWLVST3D.js → repository-ClEgntHW.js} +1 -1
  53. package/dist/assets/roboto-latin-wght-normal-ccAYIvAh.woff2 +0 -0
  54. package/dist/assets/{session-C5Nj8Dlq.js → session-BlD46q-d.js} +1 -1
  55. package/dist/assets/settings-BwukeIKe.js +1 -0
  56. package/dist/assets/shared-BM2SV6fi.js +2 -0
  57. package/dist/assets/studioGateApi-DcCqiD9V.js +1 -0
  58. package/dist/assets/studioUrls-DmMMIScP.js +1 -0
  59. package/dist/assets/useArchivedVibe64Sessions-D5zUA-BC.js +1 -0
  60. package/dist/assets/useCommand-Bqxb-naz.js +1 -0
  61. package/dist/assets/useEndpointResource-DWoQ2keu.js +1 -0
  62. package/dist/assets/useRealtimeEvent-Bwapstla.js +1 -0
  63. package/dist/assets/{useUiFeedback-0FqKuZRP.js → useUiFeedback-BPBF_0bp.js} +1 -1
  64. package/dist/assets/useVibe64ConversationLog-Dy6YTPQn.js +1 -0
  65. package/dist/assets/useVibe64DatabaseTools-d6L09ugW.js +1 -0
  66. package/dist/assets/useVibe64Learning-cNKTv64W.js +1 -0
  67. package/dist/assets/useVibe64ProjectScope-Bp1ImZlz.js +1 -0
  68. package/dist/assets/useVibe64SessionData-C_jqncih.js +1 -0
  69. package/dist/assets/useVibe64SessionSelection-uCEIWd3b.js +1 -0
  70. package/dist/assets/useVibe64SystemGraph-B4RmsC9Y.js +1 -0
  71. package/dist/assets/{useVibe64Terminal-BPnN25WH.js → useVibe64Terminal-BbghGR4x.js} +1 -1
  72. package/dist/assets/vibe64AssistantHost-BL1bnKm8.js +1 -0
  73. package/dist/assets/{vibe64SessionFocus-kqPOPaOH.js → vibe64SessionFocus-DSJKVuRN.js} +1 -1
  74. package/dist/assets/{vibe64SessionInfo-BHxtTrLX.js → vibe64SessionInfo-B_r1OMN0.js} +1 -1
  75. package/dist/assets/{vibe64SessionPanelModel-BMf64fv7.js → vibe64SessionPanelModel-DDorOuiL.js} +1 -1
  76. package/dist/assets/{vibe64SessionToolDefinitions-NfLd1HZI.js → vibe64SessionToolDefinitions-BualCK_5.js} +1 -1
  77. package/dist/index.html +21 -20
  78. package/docs/colleague-usage/account-profile-and-appearance.md +8 -2
  79. package/docs/colleague-usage/ai-accounts-and-routing.md +123 -15
  80. package/docs/colleague-usage/ai-onboarding.md +230 -0
  81. package/docs/colleague-usage/coding-agent-goal-pause.md +5 -5
  82. package/docs/colleague-usage/coding-agents.md +17 -0
  83. package/docs/colleague-usage/colleague-watches.md +4 -23
  84. package/docs/colleague-usage/colleague.md +10 -2
  85. package/docs/colleague-usage/connected-projects.md +2 -2
  86. package/docs/colleague-usage/conversation-context.md +2 -0
  87. package/docs/colleague-usage/dashboard-navigation.md +19 -27
  88. package/docs/colleague-usage/database.md +6 -11
  89. package/docs/colleague-usage/development-copies.md +2 -1
  90. package/docs/colleague-usage/development-env.md +6 -0
  91. package/docs/colleague-usage/github-work.md +9 -0
  92. package/docs/colleague-usage/health-checks.md +11 -5
  93. package/docs/colleague-usage/integrations.md +3 -1
  94. package/docs/colleague-usage/learning-code-questions.md +23 -51
  95. package/docs/colleague-usage/learning-course-catalogue.md +8 -6
  96. package/docs/colleague-usage/learning-environment.md +345 -0
  97. package/docs/colleague-usage/learning-history.md +70 -101
  98. package/docs/colleague-usage/learning-mode-ui.md +122 -214
  99. package/docs/colleague-usage/learning-practice-projects.md +168 -78
  100. package/docs/colleague-usage/learning-teacher-guide.md +48 -26
  101. package/docs/colleague-usage/learning-with-colleague.md +171 -216
  102. package/docs/colleague-usage/lesson-authoring.md +32 -24
  103. package/docs/colleague-usage/managed-app-access.md +7 -0
  104. package/docs/colleague-usage/message-delivery-recovery.md +7 -6
  105. package/docs/colleague-usage/preview-browser-checks.md +9 -1
  106. package/docs/colleague-usage/preview-starting-application.md +0 -1
  107. package/docs/colleague-usage/preview.md +9 -1
  108. package/docs/colleague-usage/project-messages.md +2 -2
  109. package/docs/colleague-usage/project-setup.md +9 -2
  110. package/docs/colleague-usage/running-vibe64-on-your-computer.md +61 -0
  111. package/docs/colleague-usage/sessions.md +25 -33
  112. package/docs/colleague-usage/teaching-content.md +11 -40
  113. package/docs/colleague-usage/temporary-chats.md +23 -2
  114. package/docs/colleague-usage/voice-chat.md +5 -10
  115. package/docs/colleague-usage/voice-face-and-speaking-voice.md +6 -8
  116. package/docs/colleague-usage/voice-recovery.md +3 -2
  117. package/docs/templates/learn-topic/README.md +6 -6
  118. package/docs/templates/learn-topic/training/lessons/TOPIC-01/lesson.json +28 -7
  119. package/docs/templates/learn-topic/training/lessons/TOPIC-01/notes.md +19 -0
  120. package/docs/templates/learn-topic/training/lessons/TOPIC-01/steps/check-understanding.md +3 -0
  121. package/docs/templates/learn-topic/training/lessons/TOPIC-01/steps/explain-idea.md +3 -0
  122. package/docs/templates/learn-topic/training/lessons/TOPIC-01/steps/try-it.md +3 -0
  123. package/docs/templates/learn-topic/training/outline.md +1 -1
  124. package/docs/training-content.md +179 -65
  125. package/node_modules/@jskit-ai/assistant-core/package.json +1 -1
  126. package/node_modules/@jskit-ai/assistant-runtime/package.json +1 -1
  127. package/node_modules/@jskit-ai/assistant-runtime/patterns/assistant-surface/PATTERN.md +3 -2
  128. package/node_modules/@jskit-ai/assistant-runtime/patterns/assistant-surface/example/integrations.json +3 -2
  129. package/node_modules/@jskit-ai/assistant-voice/package.json +1 -1
  130. package/node_modules/@jskit-ai/connectors-catalog/package.json +1 -1
  131. package/node_modules/@jskit-ai/connectors-catalog/patterns/ai-connections/PATTERN.md +4 -3
  132. package/node_modules/@jskit-ai/connectors-catalog/src/shared/ai-models.json +0 -1
  133. package/node_modules/@local/vibe64-accounts/package.json +1 -0
  134. package/node_modules/@local/vibe64-colleague/package.json +2 -1
  135. package/node_modules/@local/vibe64-core/package.json +3 -0
  136. package/node_modules/@local/vibe64-execution/package.json +1 -0
  137. package/node_modules/@local/vibe64-execution/src/host/execHelper.js +171 -174
  138. package/node_modules/@local/vibe64-execution/src/server/engines/stdioBridge.js +9 -9
  139. package/node_modules/@local/vibe64-genesis/README.md +10 -37
  140. package/node_modules/@local/vibe64-genesis/bin/vibe64-genesis-host-context +790 -779
  141. package/node_modules/@local/vibe64-genesis/package.json +1 -0
  142. package/node_modules/@local/vibe64-genesis/src/server/agentSpecs.js +255 -0
  143. package/node_modules/@local/vibe64-genesis/src/server/index.js +473 -450
  144. package/node_modules/@local/vibe64-genesis/src/server/promptContext.js +148 -148
  145. package/node_modules/@local/vibe64-project/package.json +2 -1
  146. package/node_modules/@local/vibe64-runtime/package.json +1 -2
  147. package/node_modules/@local/vibe64-runtime/src/server/codexAppServerProcess.js +526 -512
  148. package/node_modules/@local/vibe64-runtime/src/shared/assistantRoutingScores.json +0 -1
  149. package/node_modules/@local/vibe64-source-editor/package.json +1 -0
  150. package/node_modules/@local/vibe64-terminals/package.json +1 -0
  151. package/node_modules/@local/vibe64-terminals/src/server/opencodeSessionEnvironmentPlugin.js +129 -131
  152. package/node_modules/@local/vibe64-terminals/src/server/sessionWorkOperationCommand.js +1508 -1456
  153. package/node_modules/@local/vibe64-training/package.json +13 -27
  154. package/package.json +7 -7
  155. package/server.bundle.mjs +40946 -41456
  156. package/dist/assets/GithubBrowserTabs-DO5PHon-.js +0 -1
  157. package/dist/assets/GithubMarkdown-BQ6MfCDJ.js +0 -3
  158. package/dist/assets/GithubMarkdown-U7-j-qNI.css +0 -1
  159. package/dist/assets/Vibe64DashboardShell-CuCVMhOc.js +0 -1
  160. package/dist/assets/Vibe64OutputControls-DAAmA09l.js +0 -8
  161. package/dist/assets/Vibe64OutputControls-DPBsyDZM.css +0 -1
  162. package/dist/assets/Vibe64SessionFiles-B0u9HKdF.js +0 -107
  163. package/dist/assets/Vibe64SessionFiles-NjOMVwPR.css +0 -1
  164. package/dist/assets/_slug_-B31c15cc.css +0 -1
  165. package/dist/assets/_slug_-Dy35qLo1.js +0 -1
  166. package/dist/assets/app-DRXCcv05.css +0 -1
  167. package/dist/assets/app-zt7HwQKT.js +0 -1
  168. package/dist/assets/client-BrV4QPwG.js +0 -2
  169. package/dist/assets/client-C1bwIlu6.css +0 -1
  170. package/dist/assets/definitions-DaOPIkyB.js +0 -1
  171. package/dist/assets/env-DN0vW4EI.js +0 -1
  172. package/dist/assets/health-7oIQODer.css +0 -1
  173. package/dist/assets/health-Z6m96GDr.js +0 -1
  174. package/dist/assets/index-BUq-MczL.js +0 -86
  175. package/dist/assets/index-DtmBqE3h.css +0 -1
  176. package/dist/assets/issues-1iS5zoed.js +0 -1
  177. package/dist/assets/layout-BkWVNT37.js +0 -1
  178. package/dist/assets/mdi-C54lQ0i_.js +0 -1
  179. package/dist/assets/placement-DLsU3pCW.js +0 -1
  180. package/dist/assets/pull-requests-BJOwNL4k.js +0 -1
  181. package/dist/assets/settings-c273Ikrm.js +0 -1
  182. package/dist/assets/shared-YZb7ocaK.js +0 -2
  183. package/dist/assets/studioGateApi-DhA9IJGZ.js +0 -1
  184. package/dist/assets/studioUrls-Dj8rXeXO.js +0 -1
  185. package/dist/assets/useArchivedVibe64Sessions-CVZx2Rtm.js +0 -1
  186. package/dist/assets/useCommand-DWuxfAV0.js +0 -1
  187. package/dist/assets/useEndpointResource-MWVNfmMa.js +0 -1
  188. package/dist/assets/useVibe64ConversationLog-8cKh1eDm.js +0 -1
  189. package/dist/assets/useVibe64DatabaseTools-BcRG1s3i.js +0 -1
  190. package/dist/assets/useVibe64LearningMode-Bl0dGdCh.js +0 -28
  191. package/dist/assets/useVibe64LearningMode-C3PcXdVg.css +0 -1
  192. package/dist/assets/useVibe64ProjectScope-DOEVkBqX.js +0 -1
  193. package/dist/assets/useVibe64SessionData-DFTyLzci.js +0 -1
  194. package/dist/assets/useVibe64SessionSelection-j9lsllx4.js +0 -1
  195. package/dist/assets/useVibe64SystemGraph-tNkIwSBQ.js +0 -1
  196. package/dist/assets/vibe64AssistantHost-DdE_-lZF.js +0 -1
  197. package/dist/assets/vibe64LessonDashboard-DlKYjisq.js +0 -1
  198. package/dist/assets/vibe64ProjectScope.local-DqT6e5un.js +0 -1
  199. package/docs/colleague-usage/learning-chat-retention.md +0 -74
  200. package/docs/colleague-usage/learning-diagrams-and-voice.md +0 -97
  201. package/docs/colleague-usage/learning-lesson-watch.md +0 -95
  202. package/docs/colleague-usage/learning-native-session.md +0 -206
  203. package/docs/colleague-usage/learning-practical-exercises.md +0 -71
  204. package/docs/colleague-usage/learning-practical-gestures.md +0 -48
  205. package/docs/colleague-usage/learning-session-creation.md +0 -95
  206. package/docs/colleague-usage/lesson-practical-assessment.md +0 -54
  207. package/docs/colleague-usage/preview-lesson-presentation.md +0 -56
  208. package/docs/templates/learn-topic/training/lessons/TOPIC-01/lesson.md +0 -44
@@ -1 +0,0 @@
1
- @layer vuetify-components{.v-breadcrumbs{align-items:center;padding:16px 12px;line-height:1.5;display:flex}.v-breadcrumbs--rounded{border-radius:4px}.v-breadcrumbs--density-default{padding-top:16px;padding-bottom:16px}.v-breadcrumbs--density-comfortable{padding-top:12px;padding-bottom:12px}.v-breadcrumbs--density-compact{padding-top:8px;padding-bottom:8px}.v-breadcrumbs__prepend{align-items:center;display:inline-flex}.v-breadcrumbs-item{color:inherit;vertical-align:middle;align-items:center;padding:0 4px;text-decoration:none;display:inline-flex}.v-breadcrumbs-item--disabled{opacity:var(--v-disabled-opacity);pointer-events:none}.v-breadcrumbs-item--link{color:inherit;text-decoration:none}.v-breadcrumbs-item--link:hover{text-decoration:underline}.v-breadcrumbs-item .v-icon{margin-inline:-4px 2px;font-size:1rem}.v-breadcrumbs-divider{vertical-align:middle;padding:0 8px;display:inline-block}}summary[data-v-3e929cca]{cursor:pointer;align-content:center;min-height:48px}.starred-files-list[data-v-8ce15272]{min-width:0}.starred-files-list ul[data-v-8ce15272]{margin:0;padding:0;list-style:none}.starred-files-list li[data-v-8ce15272]{align-items:center;gap:.25rem;display:flex}.starred-files-list__open[data-v-8ce15272]{text-align:left;min-width:0;color:inherit;font:inherit;background:0 0;border:0;border-radius:.5rem;flex-direction:column;flex:1;padding:.5rem;display:flex}.starred-files-list__open[data-v-8ce15272]:hover:not(:disabled){background:rgba(var(--v-theme-on-surface), .06)}.starred-files-list__open[data-v-8ce15272]:focus-visible{outline:2px solid rgb(var(--v-theme-primary));outline-offset:-2px}.starred-files-list__open strong[data-v-8ce15272]{font-size:.875rem;font-weight:500}.starred-files-list__open span[data-v-8ce15272]{color:rgba(var(--v-theme-on-surface), .7);font-size:.75rem}.starred-files-list__open strong[data-v-8ce15272],.starred-files-list__open span[data-v-8ce15272]{overflow-wrap:anywhere;max-width:100%}.starred-files-list__open[data-v-8ce15272]:disabled{opacity:.65}.starred-files-list--compact .starred-files-list__open strong[data-v-8ce15272]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.starred-files-list__empty[data-v-8ce15272]{color:rgba(var(--v-theme-on-surface), .7);margin:0;padding:.5rem;font-size:.8125rem}.vibe64-project-message[data-v-0f0a148a]{width:fit-content;max-width:min(28rem,88%);color:rgb(var(--v-theme-on-surface));overflow-wrap:anywhere;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.65rem;margin-right:auto;display:grid}.vibe64-project-message--sent[data-v-0f0a148a]{grid-template-columns:minmax(0,1fr) auto;margin-left:auto;margin-right:0}.vibe64-project-message__avatar[data-v-0f0a148a]{background:rgb(var(--v-theme-surface));width:1.5rem;height:1.5rem;color:rgb(var(--v-theme-on-surface));border-radius:50%;justify-content:center;align-items:center;margin-top:.2rem;display:inline-flex}.vibe64-project-message--sent .vibe64-project-message__avatar[data-v-0f0a148a]{grid-area:1/2}.vibe64-project-message__bubble[data-v-0f0a148a]{border:1px solid rgba(var(--v-theme-on-surface), .18);background:rgb(var(--v-theme-surface));min-width:0;color:rgb(var(--v-theme-on-surface));border-radius:16px;padding:.75rem 1rem .72rem}.vibe64-project-message--sent .vibe64-project-message__bubble[data-v-0f0a148a]{grid-area:1/1}.vibe64-project-message__time[data-v-0f0a148a]{margin-top:8px;font-size:.75rem;display:block}.vibe64-project-message header[data-v-0f0a148a],.vibe64-project-message__body[data-v-0f0a148a]{margin-bottom:12px}.vibe64-project-message__toggle[data-v-0f0a148a]{color:rgb(var(--v-theme-primary));font:inherit;text-align:left;margin-bottom:12px;display:block}.vibe64-project-message a[data-v-0f0a148a]{color:inherit;text-decoration:underline}[data-v-68b3e009] .assistant-transcript__message-row--assistant{max-width:min(30rem,92%)}[data-v-68b3e009] .assistant-transcript__message--assistant{border-radius:var(--v64-shape-xs,4px) var(--v64-shape-lg,16px) var(--v64-shape-lg,16px) var(--v64-shape-lg,16px);background:rgb(var(--v-theme-surface-variant));max-width:calc(100% - 2.15rem);color:rgb(var(--v-theme-on-surface-variant));margin-left:2.15rem;padding:.75rem 1rem}[data-v-68b3e009] .assistant-transcript__message--user{border-radius:var(--v64-shape-lg,16px) var(--v64-shape-xs,4px) var(--v64-shape-lg,16px) var(--v64-shape-lg,16px)}[data-v-68b3e009] .assistant-transcript__thinking{border-left:2px solid var(--v64-outline-variant,#0000001f);padding:.1rem 0 .1rem .75rem}[data-v-68b3e009] .assistant-progress__toggle{border-radius:var(--v64-shape-full,999px);font:var(--v64-type-label-md,500 .75rem/1rem system-ui, sans-serif);transition:background-color var(--v64-duration-short,.15s) var(--v64-ease-standard,ease);margin-left:-.5rem;padding:.3rem .6rem}[data-v-68b3e009] .assistant-progress__toggle:hover,[data-v-68b3e009] .assistant-progress__toggle:focus-visible{background:rgba(var(--v-theme-primary), var(--v64-state-hover,.08));text-decoration:none}[data-v-68b3e009] .assistant-transcript__turn:last-of-type{animation:vibe64-conversation-arrive-68b3e009 var(--v64-duration-medium,.3s) var(--v64-ease-emphasized-decelerate,ease-out) both}:is([data-v-68b3e009] .assistant-transcript__system:has(.vibe64-project-message)>.assistant-transcript__system-icon,[data-v-68b3e009] .assistant-transcript__system:has(.vibe64-project-message) .assistant-transcript__system-meta){display:none}[data-v-68b3e009] .assistant-transcript__system:has(.vibe64-project-message) .assistant-transcript__system-body{width:100%}[data-v-68b3e009] .assistant-transcript__system:has(.vibe64-project-message){width:100%;max-width:none;padding:0;display:block}.vibe64-main-conversation__voice-tools[data-v-68b3e009]{align-items:center;gap:0;display:flex}[data-v-68b3e009] .assistant-conversation__avatar-tools{background:var(--v64-surface-container-high,rgb(var(--v-theme-surface)));border-radius:var(--v64-shape-full,999px);box-shadow:var(--v64-elevation-2);padding:0 4px}.vibe64-main-conversation__voice-disc[data-v-68b3e009]{background:var(--v64-primary-container,rgba(var(--v-theme-primary), .12));width:34px;height:34px;transition:background-color var(--v64-duration-short,.15s) var(--v64-ease-standard,ease), box-shadow var(--v64-duration-short,.15s) var(--v64-ease-standard,ease);border-radius:50%;justify-content:center;align-items:center;display:flex}.vibe64-main-conversation__voice-tools[data-v-68b3e009] .v-btn:hover:not(:disabled) .vibe64-main-conversation__voice-disc{box-shadow:var(--v64-elevation-1)}.vibe64-main-conversation__voice-tools[data-v-68b3e009] .v-btn[aria-pressed=true] .vibe64-main-conversation__voice-disc{background:rgb(var(--v-theme-primary));color:rgb(var(--v-theme-on-primary))}.vibe64-main-conversation__voice-tools--opening[data-v-68b3e009] .assistant-voice-controls__tools{display:none}@keyframes vibe64-conversation-arrive-68b3e009{0%{opacity:0;transform:translateY(6px)}}@media (prefers-reduced-motion:reduce){[data-v-68b3e009] .assistant-transcript__turn:last-of-type{animation:none}}.studio-app-shell-layout--learning .vibe64-conversation-log{--vibe64-tutor-card:color-mix(in srgb, var(--v64-learning,#f5c518) 9%, rgb(var(--v-theme-surface)));--vibe64-tutor-edge:color-mix(in srgb, var(--v64-learning,#f5c518) 38%, rgb(var(--v-theme-surface)))}.studio-app-shell-layout--learning .vibe64-conversation-log .assistant-transcript__body{gap:1.1rem}.studio-app-shell-layout--learning .vibe64-conversation-log .assistant-transcript__avatar--assistant{background:var(--v64-learning,#f5c518);box-shadow:0 0 0 3px color-mix(in srgb, var(--v64-learning,#f5c518) 25%, transparent);color:var(--v64-on-learning,#2b2100);width:1.75rem;height:1.75rem}.studio-app-shell-layout--learning .vibe64-conversation-log .assistant-transcript__message-row--assistant .assistant-transcript__message-header{color:var(--v64-on-learning-container,#4d3a00);font:var(--v64-type-title-md,600 1rem/1.5rem system-ui, sans-serif);letter-spacing:.01em;font-size:.9rem}.studio-app-shell-layout--learning .vibe64-conversation-log .assistant-transcript__message--assistant{background:var(--vibe64-tutor-card);border:1px solid var(--vibe64-tutor-edge);box-shadow:var(--v64-elevation-1);color:rgb(var(--v-theme-on-surface));font:var(--v64-type-body-lg,400 1rem/1.5rem system-ui, sans-serif);max-width:calc(100% - 2.4rem);margin-left:2.4rem;padding:.9rem 1.1rem}.studio-app-shell-layout--learning .vibe64-conversation-log .assistant-transcript__welcome{background:var(--vibe64-tutor-card);border:1px solid var(--vibe64-tutor-edge);box-shadow:var(--v64-elevation-1);color:rgb(var(--v-theme-on-surface))}.studio-app-shell-layout--learning .vibe64-conversation-log .assistant-transcript__message--assistant .studio-long-text-review__paragraph{line-height:1.6}.studio-app-shell-layout--learning .vibe64-conversation-log .assistant-transcript__message--user{background:var(--v64-primary-container,rgba(var(--v-theme-primary), .14));color:var(--v64-on-primary-container,rgb(var(--v-theme-on-surface)));font:var(--v64-type-body-lg,400 1rem/1.5rem system-ui, sans-serif)}.studio-app-shell-layout--learning .vibe64-conversation-log .assistant-transcript__message-footer{color:var(--v64-on-surface-variant);font-size:.75rem}.studio-app-shell-layout--learning .vibe64-conversation-log .assistant-transcript__message-footer--assistant{margin-left:2.4rem}.studio-app-shell-layout--learning .vibe64-conversation-log .assistant-transcript__system:not(:has(.vibe64-project-message)){background:var(--v64-surface-container,rgba(var(--v-theme-primary), .05));border:1px solid var(--v64-outline-variant,#0000001f);border-radius:var(--v64-shape-lg,16px);font:var(--v64-type-label-lg,500 .875rem/1.25rem system-ui, sans-serif);justify-self:center;align-items:center;width:fit-content;margin-inline:auto;padding:.4rem .85rem .4rem .55rem}.studio-app-shell-layout--learning .vibe64-conversation-log .assistant-transcript__system:not(:has(.vibe64-project-message)) .assistant-transcript__system-icon{background:var(--v64-learning-container,#fdf3c4);box-sizing:content-box;color:var(--v64-on-learning-container,#4d3a00);border-radius:50%;margin-top:0;padding:4px}.studio-app-shell-layout--learning .vibe64-conversation-log .assistant-transcript__thinking{border-left-color:var(--vibe64-tutor-edge);margin-left:2.4rem}.studio-app-shell-layout--learning .vibe64-conversation-log .vibe64-main-conversation__voice-disc,.studio-app-shell-layout--learning .vibe64-conversation-log .assistant-conversation__avatar-size-disc{background:var(--v64-learning-container,#fdf3c4);color:var(--v64-on-learning-container,#4d3a00)}.studio-app-shell-layout--learning .vibe64-conversation-log .v-btn[aria-pressed=true] .vibe64-main-conversation__voice-disc{background:var(--v64-learning,#f5c518);color:var(--v64-on-learning,#2b2100)}.studio-app-shell-layout--learning .vibe64-conversation-log .assistant-conversation__avatar-visual{background:radial-gradient(circle at 50% 58%, color-mix(in srgb, var(--v64-learning,#f5c518) 30%, transparent) 0 52%, transparent 53%);border-radius:50%}.source-interface[data-v-bc10841e]{color:#304b50;min-width:0;min-height:0;padding:16px 22px;overflow:auto;container-type:inline-size}.source-interface__heading[data-v-bc10841e]{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:3px 8px;margin-bottom:6px;display:grid}.source-interface__heading h3[data-v-bc10841e]{margin:0;font-size:20px;line-height:26px}.source-interface__heading p[data-v-bc10841e]{opacity:.65;overflow-wrap:anywhere;grid-column:1/-1;margin:0;font-size:12px;line-height:18px}.source-interface__heading>.source-interface__modes[data-v-bc10841e]{justify-content:flex-end;margin:0}.source-interface__overview[data-v-bc10841e]{margin:12px 0 18px}.source-interface__field-heading[data-v-bc10841e]{flex-wrap:wrap;align-items:center;gap:8px;min-height:44px;display:flex}.source-interface__field-heading h4[data-v-bc10841e]{margin:0;font-size:14px;font-weight:650}.source-interface__field-heading[data-v-bc10841e] .v-btn{margin-left:auto;padding-inline:10px;font-size:12px}.source-interface__freshness[data-v-bc10841e]{color:#69847d;font-size:11px}.source-interface__freshness--stale[data-v-bc10841e]{color:#936b2d}.source-interface__explanation[data-v-bc10841e]{overflow-wrap:anywhere;max-width:92ch;padding:2px 0;font-size:14px;line-height:1.65}.source-interface__explanation[data-v-bc10841e] p,.source-interface__explanation[data-v-bc10841e] ul,.source-interface__explanation[data-v-bc10841e] ol{margin:0 0 .7em}.source-interface__explanation[data-v-bc10841e] h2,.source-interface__explanation[data-v-bc10841e] h3,.source-interface__explanation[data-v-bc10841e] h4{margin:1em 0 .3em;font-size:14px}.source-interface__explanation--empty[data-v-bc10841e]{border:1px dashed #d5e1dc;border-radius:6px;padding:12px}.source-interface__explanation--empty .source-interface__hint[data-v-bc10841e]{margin:0}.source-interface__hint[data-v-bc10841e]{opacity:.72;margin:0 0 6px;font-size:12px;line-height:18px}.source-interface__modes[data-v-bc10841e]{flex-wrap:wrap;gap:4px;margin-bottom:6px;display:flex}.source-interface__detail .source-interface__modes[data-v-bc10841e]{align-items:center}.source-interface__detail .source-interface__modes h4[data-v-bc10841e]{color:#617b74;margin:0 auto 0 0;font-size:12px;font-weight:600}.source-interface__modes[data-v-bc10841e] .v-btn{padding-inline:8px}.source-interface__layout[data-v-bc10841e]{flex-direction:column;gap:10px;display:flex}.source-interface__exports-heading[data-v-bc10841e]{margin:10px 0 4px;font-size:15px}.source-interface__exports-heading span[data-v-bc10841e]{opacity:.65;font-size:12px;font-weight:400}.source-interface__membership[data-v-bc10841e]{color:#69847d;flex-wrap:wrap;align-items:center;gap:2px 12px;margin:2px 0 6px;font-size:12px;display:flex}.source-interface__membership button[data-v-bc10841e]{color:#367e8a;text-align:left;min-height:44px}.source-interface__main[data-v-bc10841e]{color:#755616;text-transform:uppercase;background:#f1e5c6;border-radius:4px;margin-right:8px;padding:2px 5px;font-size:10px;display:inline-block}.source-interface__symbols[data-v-bc10841e],.source-interface__detail[data-v-bc10841e]{min-width:0}.source-interface__symbols[data-v-bc10841e]{width:100%}.source-interface__symbol-row[data-v-bc10841e]{border:1px solid #dbe6e3;border-radius:6px;flex-direction:column;align-items:stretch;margin-bottom:4px;display:flex;overflow:hidden}.source-interface__symbol-row>button[data-v-bc10841e]:first-child{flex:1;min-width:0;margin-bottom:0}.source-interface__symbol-row[data-v-bc10841e]>.v-btn{flex:none;padding-inline:8px}.source-interface__symbols .source-interface__symbol[data-v-bc10841e]{text-align:left;width:100%;min-height:44px;color:inherit;cursor:pointer;overflow-wrap:anywhere;background:#f7faf9;border:0;grid-template-columns:76px minmax(0,1fr);align-items:center;gap:2px 8px;padding:8px 10px;display:grid}.source-interface__symbols .source-interface__symbol code[data-v-bc10841e]{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:13px;display:block;overflow:hidden}.source-interface__symbols .source-interface__symbol small[data-v-bc10841e]{text-transform:uppercase;opacity:.7;font-size:10px}.source-interface__symbols .source-interface__symbol span[data-v-bc10841e],.source-interface__symbol-summary[data-v-bc10841e]{grid-column:2;margin:0;font-size:12px}.source-interface__symbols .source-interface__symbol span[data-v-bc10841e]{opacity:.65;font-size:12px}.source-interface__symbols .source-interface__symbol[data-v-bc10841e]:disabled{opacity:.5;cursor:default}.source-interface__symbol--selected[data-v-bc10841e]{background:rgba(var(--v-theme-primary), .1);border-color:rgb(var(--v-theme-primary))!important}.source-interface__symbol--selected code[data-v-bc10841e]{white-space:normal!important;overflow:visible!important}.source-interface__detail[data-v-bc10841e]{border-top:1px solid #dbe6e3;width:100%;padding:8px 12px 12px;font-size:14px;line-height:1.65}.source-interface__detail h4[data-v-bc10841e]{overflow-wrap:anywhere;margin-bottom:4px;font-size:14px;font-weight:400}.source-interface__code[data-v-bc10841e]{background:rgba(var(--v-theme-on-surface), .06);tab-size:2;border-radius:8px;padding:16px;font-size:13px;overflow:auto}button[data-v-bc10841e]:focus-visible{outline:3px solid rgb(var(--v-theme-primary));outline-offset:2px}@container (width<=759px){.source-interface__layout[data-v-bc10841e]{grid-template-columns:minmax(0,1fr)}.source-interface__detail[data-v-bc10841e]{grid-row:1}.source-interface__heading[data-v-bc10841e]{grid-template-columns:minmax(0,1fr)}.source-interface__heading>.source-interface__modes[data-v-bc10841e]{justify-content:flex-start}.source-interface__symbols .source-interface__symbol[data-v-bc10841e]{grid-template-columns:minmax(0,1fr)}.source-interface__symbols .source-interface__symbol span[data-v-bc10841e]{grid-column:1}}@media (width<=759px){.source-interface[data-v-bc10841e]{padding:12px}}.source-interface__analysis[data-v-bc10841e]{opacity:.72;margin-bottom:6px;font-size:12px}.source-interface__analysis summary[data-v-bc10841e]{cursor:pointer}.source-explanation-document[data-v-912cbb81]{overflow-wrap:anywhere;min-width:0;font-size:14px;line-height:1.65}.source-explanation-document[data-v-912cbb81] p,.source-explanation-document[data-v-912cbb81] ul,.source-explanation-document[data-v-912cbb81] ol{margin:0 0 .7em}.source-explanation-document[data-v-912cbb81] h2,.source-explanation-document[data-v-912cbb81] h3,.source-explanation-document[data-v-912cbb81] h4{margin:1em 0 .3em;font-size:14px}.source-explanation-document[data-v-912cbb81] pre{font-size:12px;line-height:1.65;overflow:auto}.source-explanation-document__progress[data-v-912cbb81]{color:#617b74;justify-content:space-between;align-items:center;gap:12px;font-size:12px;display:flex}.source-explanation-document__activity[data-v-912cbb81]{color:#617b74;font-size:12px}.source-explanation-document__activity summary[data-v-912cbb81]{cursor:pointer}.vibe64-source-explanation[data-v-912cbb81]{border-left:1px solid rgba(var(--v-border-color), .28);contain:layout style paint;block-size:100%;height:100%;min-block-size:0;max-block-size:100%;grid-template-rows:auto auto minmax(0,1fr) auto auto;grid-template-areas:"header""stale""thread""recovery""followup";gap:.42rem;min-width:0;padding:.52rem .64rem 2px;display:grid;overflow:hidden}.vibe64-source-explanation--embedded[data-v-912cbb81]{block-size:auto;height:auto;border:1px solid #dbe6e3;border-radius:8px;grid-template-rows:auto auto minmax(80px,auto) auto auto;max-block-size:none}.vibe64-source-explanation--embedded .vibe64-source-explanation__thread[data-v-912cbb81]{max-height:420px}.vibe64-source-explanation__header[data-v-912cbb81]{grid-area:header;justify-content:space-between;align-items:center;gap:.45rem;min-width:0;display:flex}.vibe64-source-explanation__source[data-v-912cbb81]{flex-wrap:nowrap;flex:auto;align-items:center;gap:.35rem;min-width:0;display:flex;overflow:hidden}.vibe64-source-explanation__range[data-v-912cbb81]{color:rgb(var(--v-theme-primary));cursor:pointer;min-block-size:3rem;inline-size:auto;max-inline-size:100%;text-align:left;white-space:nowrap;background:0 0;border:0;flex:auto;min-width:0;padding:0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.78rem;line-height:1.2;display:flex;overflow:hidden}.vibe64-source-explanation__range[data-v-912cbb81]:focus-visible,.vibe64-source-explanation__thread[data-v-912cbb81]:focus-visible{outline:2px solid rgb(var(--v-theme-primary));outline-offset:2px}.vibe64-source-explanation__range-path[data-v-912cbb81]{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.vibe64-source-explanation__range-suffix[data-v-912cbb81]{flex:none}.vibe64-source-explanation__message strong[data-v-912cbb81]{font-size:.76rem}.vibe64-source-explanation__message p[data-v-912cbb81]{color:rgba(var(--v-theme-on-surface), .78);white-space:pre-wrap;margin:0;font-size:.84rem;line-height:1.45}.vibe64-source-explanation__status[data-v-912cbb81]{color:rgba(var(--v-theme-on-surface), .78);min-block-size:1.4rem;align-items:center;gap:.45rem;min-width:0;font-size:.76rem;font-weight:650;line-height:1.35;display:flex}.vibe64-source-explanation__thinking[data-v-912cbb81]{gap:.22rem;min-width:0;display:grid}.vibe64-source-explanation__status-mark[data-v-912cbb81]{background:rgb(var(--v-theme-primary));border-radius:999px;flex:none;block-size:.46rem;inline-size:.46rem;animation:1.3s ease-in-out infinite vibe64-source-explanation-thinking-pulse-912cbb81}.vibe64-source-explanation__thinking-detail[data-v-912cbb81]{min-width:0}.vibe64-source-explanation__thinking-detail[data-v-912cbb81] .studio-long-text-review__paragraph,.vibe64-source-explanation__thinking-detail[data-v-912cbb81] .studio-long-text-review__list li{color:rgba(var(--v-theme-on-surface), .68);font-size:.74rem;line-height:1.28}.vibe64-source-explanation__status--stopped[data-v-912cbb81]{color:rgba(var(--v-theme-on-surface), .62)}.vibe64-source-explanation__stale[data-v-912cbb81]{grid-area:stale}.vibe64-source-explanation__thread[data-v-912cbb81]{contain:layout style paint;min-block-size:0;overscroll-behavior:contain;flex-direction:column;grid-area:thread;gap:.45rem;min-height:0;padding:0 .1rem .08rem 0;display:flex;overflow:hidden auto}.vibe64-source-explanation__message[data-v-912cbb81]{border-radius:7px;gap:.24rem;min-width:0;max-width:100%;padding:.46rem .58rem;display:grid}.vibe64-source-explanation__thread>.vibe64-source-explanation__message[data-v-912cbb81]:first-child{margin-top:auto}.vibe64-source-explanation__message--user[data-v-912cbb81]{background:rgba(var(--v-theme-primary), .12)}.vibe64-source-explanation__message--assistant[data-v-912cbb81]{background:0 0;padding-inline:.1rem}.vibe64-source-explanation__message--failed[data-v-912cbb81]{background:rgba(var(--v-theme-error), .08);border:1px solid rgba(var(--v-theme-error), .24);padding:.46rem .58rem}.vibe64-source-explanation__failure-detail[data-v-912cbb81] .studio-long-text-review__paragraph,.vibe64-source-explanation__failure-detail[data-v-912cbb81] .studio-long-text-review__list li{color:rgb(var(--v-theme-error))}.vibe64-source-explanation__followup[data-v-912cbb81]{grid-area:followup;align-self:end;width:100%;min-width:0}.vibe64-source-explanation__recovery[data-v-912cbb81]{background:rgba(var(--v-theme-error), .06);border:1px solid rgba(var(--v-theme-error), .2);border-radius:9px;grid-area:recovery;gap:.45rem;padding:.55rem;display:grid}.vibe64-source-explanation__recovery p[data-v-912cbb81]{color:rgba(var(--v-theme-on-surface), .72);margin:0;font-size:.76rem;line-height:1.35}.vibe64-source-explanation__recovery-actions[data-v-912cbb81]{justify-content:flex-end;align-items:center;gap:.4rem;display:flex}.vibe64-source-explanation__followup[data-v-912cbb81] .studio-autopilot-prompt-textarea{padding:.18rem 0 0}.vibe64-source-explanation__followup[data-v-912cbb81] .studio-autopilot-prompt-textarea__field{border-radius:9px;grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) auto;align-items:end;min-block-size:3.2rem;padding:.18rem .28rem .28rem}.vibe64-source-explanation__followup[data-v-912cbb81] .studio-autopilot-prompt-textarea__label{grid-column:1/-1;margin:-.44rem 0 0 .48rem}.vibe64-source-explanation__followup[data-v-912cbb81] .studio-autopilot-prompt-textarea__footer{grid-area:2/2;align-self:end;padding:0}.vibe64-source-explanation__followup[data-v-912cbb81] .studio-autopilot-prompt-textarea__input{grid-area:2/1;min-height:1.65rem;max-height:min(8rem,22dvh);padding:.28rem .46rem .22rem;line-height:1.34}.vibe64-source-explanation__followup[data-v-912cbb81] .studio-autopilot-prompt-textarea__input::placeholder,.vibe64-source-explanation__followup[data-v-912cbb81] .studio-autopilot-prompt-textarea__input:disabled::placeholder{color:rgba(var(--v-theme-on-surface), .46)}.vibe64-source-explanation__followup-footer[data-v-912cbb81]{justify-content:flex-end;gap:.32rem;min-width:0;display:flex}.vibe64-source-explanation__followup-footer[data-v-912cbb81] .v-btn{block-size:3rem;inline-size:3rem;min-inline-size:3rem}.vibe64-source-explanation__action-target[data-v-912cbb81]{min-block-size:3rem;min-inline-size:3rem}.vibe64-source-explanation__close-button[data-v-912cbb81]{min-inline-size:6.25rem}.vibe64-source-explanation__thread-bottom[data-v-912cbb81]{flex:0 0 1px;height:1px}@keyframes vibe64-source-explanation-thinking-pulse-912cbb81{0%,to{opacity:.62}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.vibe64-source-explanation__status-mark[data-v-912cbb81]{animation:none}}.vibe64-source-tree[data-v-52fca260]{gap:.08rem;min-width:0;margin:0;padding:0;list-style:none;display:grid}.vibe64-source-tree .vibe64-source-tree[data-v-52fca260]{padding-left:.75rem}.vibe64-source-tree__item[data-v-52fca260]{min-width:0}.vibe64-source-tree__row[data-v-52fca260]{grid-template-columns:minmax(0,1fr) auto;align-items:center;min-width:0;display:grid}.vibe64-source-tree__button[data-v-52fca260]{color:rgba(var(--v-theme-on-surface), .78);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:.42rem;width:100%;min-width:0;min-height:1.72rem;padding:.22rem .38rem;font-size:.82rem;font-weight:400;line-height:1.25;display:flex}.vibe64-source-tree__button[data-v-52fca260]:hover,.vibe64-source-tree__button[data-v-52fca260]:focus-visible{background:rgba(var(--v-theme-primary), .08);outline:0}.vibe64-source-tree__button--active[data-v-52fca260]{background:rgba(var(--v-theme-primary), .14);color:rgb(var(--v-theme-primary));font-weight:500}.vibe64-source-tree__button--more[data-v-52fca260]{color:rgba(var(--v-theme-on-surface), .68);font-size:.78rem;font-weight:500}.vibe64-source-tree__button[data-v-52fca260]:disabled{cursor:default;opacity:.62}.vibe64-source-tree__menu-button[data-v-52fca260]{color:rgba(var(--v-theme-on-surface), .56);flex:none;min-block-size:1.72rem;min-inline-size:1.72rem}.vibe64-source-tree__menu[data-v-52fca260] .v-list-item-title{font-size:.82rem}.vibe64-source-tree__notice[data-v-52fca260]{color:rgba(var(--v-theme-on-surface), .58);padding:.22rem .38rem .28rem 2.05rem;font-size:.74rem}.vibe64-source-tree__notice--error[data-v-52fca260]{color:rgb(var(--v-theme-error))}.vibe64-source-tree__button span[data-v-52fca260]{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.vibe64-source-tree__chevron[data-v-52fca260]{color:rgba(var(--v-theme-on-surface), .58);flex:none;transition:transform .14s}.vibe64-source-tree__chevron--open[data-v-52fca260]{transform:rotate(90deg)}.vibe64-source-tree__chevron-spacer[data-v-52fca260]{flex:0 0 14px;width:14px;height:14px}.vibe64-source-editor__starred[data-v-acf1e3d6]{margin-bottom:.75rem}.vibe64-source-editor__starred .starred-files-list[data-v-acf1e3d6]{overscroll-behavior:contain;max-height:14rem;overflow-y:auto}.vibe64-source-editor__starred summary[data-v-acf1e3d6]{cursor:pointer;padding:.375rem;font-size:.8125rem;font-weight:500}.vibe64-source-editor__starred summary span[data-v-acf1e3d6]{color:rgba(var(--v-theme-on-surface), .7);margin-left:.25rem;font-weight:400}.vibe64-source-editor__download-status[data-v-acf1e3d6]{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.vibe64-source-editor[data-v-acf1e3d6]{grid-template-rows:auto auto minmax(0,1fr);block-size:100%;min-block-size:0;display:grid;overflow:hidden}.vibe64-source-editor__header[data-v-acf1e3d6]{border-bottom:1px solid rgba(var(--v-border-color), .3);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.48rem;min-width:0;padding:.24rem .52rem;display:flex}.vibe64-source-editor__title[data-v-acf1e3d6]{align-items:center;gap:.42rem;min-width:0;display:flex}.vibe64-source-editor__title h2[data-v-acf1e3d6]{letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;max-width:min(52vw,46rem);margin:0;font-size:.9rem;font-weight:760;line-height:1.15;overflow:hidden}.vibe64-source-editor__actions[data-v-acf1e3d6]{flex:none;align-items:center;gap:.22rem;display:flex}.vibe64-source-editor__actions[data-v-acf1e3d6] .v-btn{block-size:1.9rem;min-block-size:1.9rem;min-inline-size:1.9rem}.vibe64-source-editor__status[data-v-acf1e3d6]{color:rgba(var(--v-theme-on-surface), .64);text-overflow:ellipsis;white-space:nowrap;max-width:16rem;margin-right:.35rem;font-size:.75rem;overflow:hidden}.vibe64-source-editor__status--error[data-v-acf1e3d6]{color:rgb(var(--v-theme-error))}.vibe64-source-editor__explain-button[data-v-acf1e3d6]{text-transform:none;min-inline-size:6.25rem;font-weight:680}.vibe64-source-editor__tools[data-v-acf1e3d6]{border-bottom:1px solid rgba(var(--v-border-color), .24);grid-template-columns:minmax(14rem,22rem) minmax(14rem,1fr);align-items:start;gap:.38rem;min-width:0;padding:.22rem .48rem;display:grid}.vibe64-source-editor__tools[data-v-acf1e3d6] .v-field{min-block-size:2.35rem}.vibe64-source-editor__tools[data-v-acf1e3d6] .v-field__input{min-block-size:2.35rem;padding-block:.28rem}.vibe64-source-editor__tools[data-v-acf1e3d6] .v-field__prepend-inner,.vibe64-source-editor__tools[data-v-acf1e3d6] .v-field__clearable{padding-top:.4rem}.vibe64-source-editor__tool[data-v-acf1e3d6]{min-width:0;position:relative}.vibe64-source-editor__matches[data-v-acf1e3d6]{background:rgb(var(--v-theme-surface));border:1px solid rgba(var(--v-border-color), .35);z-index:8;border-radius:8px;gap:.08rem;max-block-size:min(18rem,52vh);margin-top:.28rem;padding:.28rem;display:grid;position:absolute;inset-inline:0;overflow:auto;box-shadow:0 12px 28px #0f172a29}.vibe64-source-editor__match[data-v-acf1e3d6]{color:rgb(var(--v-theme-on-surface));cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;gap:.08rem;min-width:0;padding:.42rem .5rem;display:grid}.vibe64-source-editor__match[data-v-acf1e3d6]:hover{background:rgba(var(--v-theme-primary), .08)}.vibe64-source-editor__match-name[data-v-acf1e3d6],.vibe64-source-editor__match-path[data-v-acf1e3d6]{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.vibe64-source-editor__match-name[data-v-acf1e3d6]{font-size:.84rem;font-weight:720}.vibe64-source-editor__match-path[data-v-acf1e3d6]{color:rgba(var(--v-theme-on-surface), .58);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.72rem}.vibe64-source-editor__match-note[data-v-acf1e3d6]{color:rgba(var(--v-theme-on-surface), .64);padding:.48rem .55rem;font-size:.78rem}.vibe64-source-editor__match-note--error[data-v-acf1e3d6]{color:rgb(var(--v-theme-error))}.vibe64-source-editor__body[data-v-acf1e3d6]{contain:layout style;grid-template-columns:minmax(12rem,17rem) minmax(0,1fr);block-size:100%;min-block-size:0;max-block-size:100%;display:grid;overflow:hidden}.vibe64-source-editor__body--file-list-collapsed[data-v-acf1e3d6]{grid-template-columns:2.65rem minmax(0,1fr)}.vibe64-source-editor__sidebar[data-v-acf1e3d6]{border-right:1px solid rgba(var(--v-border-color), .26);contain:layout style paint;min-block-size:0;padding:0 .64rem .64rem;overflow:auto}.vibe64-source-editor__sidebar--collapsed[data-v-acf1e3d6]{padding:0;overflow:hidden}.vibe64-source-editor__side-rail[data-v-acf1e3d6]{appearance:none;background:rgba(var(--v-theme-primary), .08);color:rgba(var(--v-theme-on-surface), .74);cursor:pointer;border:0;grid-template-rows:auto auto;place-items:center;gap:.34rem;width:100%;min-width:0;height:100%;min-height:0;padding:.56rem .18rem;display:grid}.vibe64-source-editor__side-rail[data-v-acf1e3d6]:hover,.vibe64-source-editor__side-rail[data-v-acf1e3d6]:focus-visible{background:rgba(var(--v-theme-primary), .14);outline:0}.vibe64-source-editor__side-rail span[data-v-acf1e3d6]{letter-spacing:0;writing-mode:vertical-rl;font-size:.76rem;font-weight:740;line-height:1;transform:rotate(180deg)}.vibe64-source-editor__side-rail--right[data-v-acf1e3d6]{background:rgba(var(--v-theme-primary), .07)}.vibe64-source-editor__tree-toolbar[data-v-acf1e3d6]{background:rgb(var(--v-theme-surface));border-bottom:1px solid rgba(var(--v-border-color), .18);box-sizing:border-box;color:rgba(var(--v-theme-on-surface), .62);letter-spacing:0;z-index:4;justify-content:space-between;align-items:center;min-width:0;margin:0 -.64rem .44rem;padding:.48rem .72rem .34rem;font-size:.72rem;font-weight:720;display:flex;position:sticky;top:0}.vibe64-source-editor__tree-actions[data-v-acf1e3d6]{flex:none;align-items:center;gap:.08rem;display:flex}.vibe64-source-editor__collapse-files-button[data-v-acf1e3d6]{min-inline-size:2.2rem}.vibe64-source-editor__search-results[data-v-acf1e3d6]{border-bottom:1px solid rgba(var(--v-border-color), .24);gap:.16rem;max-block-size:min(21rem,45vh);margin:-.1rem -.1rem .58rem;padding:0 0 .58rem;display:grid;overflow:auto}.vibe64-source-editor__search-heading[data-v-acf1e3d6]{color:rgba(var(--v-theme-on-surface), .66);letter-spacing:0;text-transform:uppercase;justify-content:space-between;align-items:center;padding:0 .16rem .22rem;font-size:.72rem;font-weight:760;display:flex}.vibe64-source-editor__search-heading small[data-v-acf1e3d6]{color:rgba(var(--v-theme-on-surface), .52);font-size:.7rem}.vibe64-source-editor__search-result[data-v-acf1e3d6]{color:rgb(var(--v-theme-on-surface));cursor:pointer;text-align:left;background:0 0;border:0;border-radius:7px;gap:.12rem;min-width:0;padding:.46rem .5rem;display:grid}.vibe64-source-editor__search-result[data-v-acf1e3d6]:hover{background:rgba(var(--v-theme-primary), .08)}.vibe64-source-editor__new-file-dialog[data-v-acf1e3d6]{gap:.76rem;display:grid}.vibe64-source-editor__new-file-dialog p[data-v-acf1e3d6]{color:rgba(var(--v-theme-on-surface), .66);margin:0;font-size:.84rem;line-height:1.35}.vibe64-source-editor__search-path[data-v-acf1e3d6],.vibe64-source-editor__search-location[data-v-acf1e3d6],.vibe64-source-editor__search-preview[data-v-acf1e3d6]{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.vibe64-source-editor__search-path[data-v-acf1e3d6]{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.75rem;font-weight:720}.vibe64-source-editor__search-location[data-v-acf1e3d6]{color:rgba(var(--v-theme-on-surface), .54);font-size:.7rem}.vibe64-source-editor__search-preview[data-v-acf1e3d6]{color:rgba(var(--v-theme-on-surface), .68);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.72rem}.vibe64-source-editor__main[data-v-acf1e3d6]{contain:layout style;block-size:100%;min-block-size:0;max-block-size:100%;grid-template-rows:auto auto auto minmax(0,1fr);min-width:0;display:grid;position:relative;overflow:hidden}.vibe64-source-editor__workspace[data-v-acf1e3d6]{contain:layout style;block-size:100%;min-block-size:0;max-block-size:100%;grid-row:4;grid-template-columns:minmax(0,1fr);min-width:0;display:grid;position:relative;overflow:hidden}.vibe64-source-editor__workspace--with-explanation[data-v-acf1e3d6]{grid-template-columns:minmax(0,1fr) minmax(18rem,27rem)}.vibe64-source-editor__markdown[data-v-acf1e3d6]{overflow-wrap:anywhere;min-block-size:0;min-inline-size:0;padding:1rem 1.25rem 2rem;line-height:1.6;overflow:auto}.vibe64-source-editor__markdown[data-v-acf1e3d6]>*{max-inline-size:52rem}.vibe64-source-editor__image-preview[data-v-acf1e3d6]{min-block-size:0;min-inline-size:0;padding:.75rem;overflow:auto}.vibe64-source-editor__image-preview img[data-v-acf1e3d6]{block-size:auto;max-inline-size:100%;margin-inline:auto;display:block}.vibe64-source-editor__workspace--explanation-collapsed[data-v-acf1e3d6]{grid-template-columns:minmax(0,1fr) 2.65rem}.vibe64-source-editor__explanation-dock[data-v-acf1e3d6]{block-size:100%;height:100%;min-block-size:0;grid-template-rows:minmax(0,1fr);min-width:0;display:grid;overflow:hidden}.vibe64-source-editor__explanation-dock[data-v-acf1e3d6]>.vibe64-source-explanation{block-size:100%;height:100%;min-block-size:0}.vibe64-source-editor__explanation-dock--collapsed[data-v-acf1e3d6]{border-left:1px solid rgba(var(--v-border-color), .26)}.vibe64-source-editor__codemirror[data-v-acf1e3d6]{contain:layout style paint;min-block-size:0;min-width:0;overflow:hidden}.vibe64-source-editor__codemirror[data-v-acf1e3d6] .cm-editor.vibe64-source-editor__codemirror--source-link-hover .cm-content{cursor:pointer}.vibe64-source-editor__codemirror--hidden[data-v-acf1e3d6]{display:none}.vibe64-source-editor__file-loading[data-v-acf1e3d6]{background:rgb(var(--v-theme-surface));z-index:4;padding:.75rem;position:absolute;inset:0;overflow:hidden}.vibe64-source-editor__file-skeleton[data-v-acf1e3d6]{height:100%}.vibe64-source-editor__notice[data-v-acf1e3d6],.vibe64-source-editor__empty[data-v-acf1e3d6],.vibe64-source-editor__banner[data-v-acf1e3d6]{color:rgba(var(--v-theme-on-surface), .68);padding:.72rem;font-size:.86rem}.vibe64-source-editor__notice--error[data-v-acf1e3d6],.vibe64-source-editor__banner--error[data-v-acf1e3d6]{color:rgb(var(--v-theme-error))}.vibe64-source-editor__empty[data-v-acf1e3d6]{align-self:start}@media (width<=900px){.vibe64-source-editor__tools[data-v-acf1e3d6]{grid-template-columns:1fr}.vibe64-source-editor__body[data-v-acf1e3d6]{grid-template-rows:minmax(9rem,14rem) minmax(0,1fr);grid-template-columns:1fr}.vibe64-source-editor__body--file-list-collapsed[data-v-acf1e3d6]{grid-template-rows:2.65rem minmax(0,1fr);grid-template-columns:1fr}.vibe64-source-editor__sidebar[data-v-acf1e3d6]{border-bottom:1px solid rgba(var(--v-border-color), .26);border-right:0}.vibe64-source-editor__side-rail[data-v-acf1e3d6]{grid-template-rows:1fr;grid-template-columns:auto auto;justify-content:start;padding:.18rem .56rem}.vibe64-source-editor__side-rail span[data-v-acf1e3d6]{writing-mode:horizontal-tb;transform:none}.vibe64-source-editor__workspace--with-explanation[data-v-acf1e3d6]{grid-template-rows:minmax(0,1fr) minmax(16rem,42vh);grid-template-columns:1fr}.vibe64-source-editor__workspace--explanation-collapsed[data-v-acf1e3d6]{grid-template-rows:minmax(0,1fr) 2.65rem}}.vibe64-source-editor--mobile .vibe64-source-editor__header[data-v-acf1e3d6]{flex-wrap:nowrap;gap:0;padding:0 .25rem}.vibe64-source-editor--mobile .vibe64-source-editor__title[data-v-acf1e3d6]{flex:1;overflow:hidden}.vibe64-source-editor--mobile .vibe64-source-editor__title h2[data-v-acf1e3d6]{max-width:100%;font-weight:500}.vibe64-source-editor__mobile-actions[data-v-acf1e3d6]{flex:none;display:flex}.vibe64-source-editor--mobile-file-open[data-v-acf1e3d6]{grid-template-rows:auto minmax(0,1fr)}.vibe64-source-editor--mobile .vibe64-source-editor__tools[data-v-acf1e3d6]{grid-template-columns:minmax(0,1fr)}.vibe64-source-editor--mobile .vibe64-source-editor__body[data-v-acf1e3d6]{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr)}.vibe64-source-editor--code-focus[data-v-acf1e3d6]{grid-template-rows:auto minmax(0,1fr)}.vibe64-source-editor__body--code-focus[data-v-acf1e3d6]{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr)}.session-file-area[data-v-4ffe0b10]{flex-direction:column;min-width:0;min-height:0;display:flex;position:relative;overflow:auto}.session-file-area__drop-target[data-v-4ffe0b10]{z-index:2;border:2px dashed rgb(var(--v-theme-primary));background:rgba(var(--v-theme-surface), .96);color:rgb(var(--v-theme-primary));pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex;position:absolute;inset:8px}.session-file-area__listing[data-v-4ffe0b10]{flex:1;min-height:0;overflow:auto}.session-file-area__filename[data-v-4ffe0b10]{overflow-wrap:anywhere}.session-file-area__preview[data-v-4ffe0b10]{white-space:pre-wrap;overflow-wrap:anywhere;flex:1;min-height:0;padding:12px;overflow:auto}.session-file-area__text[data-v-4ffe0b10]{font-family:monospace}.session-file-area--mobile .session-file-area__filename[data-v-4ffe0b10]{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.session-file-area--mobile .session-file-area__preview[data-v-4ffe0b10]{margin:0;padding:8px}.vibe64-session-files[data-v-cd32e097]{flex-direction:column;min-width:0;min-height:0;display:flex}.vibe64-session-files__content[data-v-cd32e097]{flex:1;min-height:0}
@@ -1 +0,0 @@
1
- .local-remotes[data-v-a0155a06]{flex:none;min-width:0}.local-remotes__branch[data-v-a0155a06]{min-width:0;max-width:100%}.local-remotes__branch-name[data-v-a0155a06]{text-overflow:ellipsis;max-width:8rem;display:block;overflow:hidden}.local-remotes__status[data-v-a0155a06]{color:rgba(var(--v-theme-on-surface), var(--v-medium-emphasis-opacity));align-items:center;gap:.375rem;display:flex}.local-remotes__count[data-v-a0155a06]{font-variant-numeric:tabular-nums}.local-remotes__details[data-v-a0155a06]{grid-template-columns:auto minmax(0,1fr);gap:.75rem 1rem;display:grid}.local-remotes__details dt[data-v-a0155a06]{color:rgba(var(--v-theme-on-surface), var(--v-medium-emphasis-opacity))}.local-remotes__details dd[data-v-a0155a06],.local-remotes__message[data-v-a0155a06]{overflow-wrap:anywhere;margin:0}.local-remotes__url[data-v-a0155a06]{overflow-wrap:anywhere}.training-guide-overlay[data-v-2c0c7a01]{--training-guide-accent-rgb:var(--v-theme-primary,37, 99, 235);--training-guide-accent:rgb(var(--training-guide-accent-rgb));--training-guide-on-accent:rgb(var(--v-theme-on-primary,255, 255, 255));--training-guide-radius:var(--v64-shape-md,12px);--training-guide-ease:var(--v64-ease-emphasized-decelerate,cubic-bezier(.05, .7, .1, 1));--training-guide-enter:var(--v64-duration-long,.5s);pointer-events:none;z-index:3000;position:fixed;inset:0}.training-guide-overlay__spotlight[data-v-2c0c7a01]{animation:training-guide-scrim-2c0c7a01 var(--training-guide-enter) var(--training-guide-ease) both;border-radius:var(--training-guide-radius);position:fixed;box-shadow:0 0 0 200vmax #0c101c3d}.training-guide-overlay__ring[data-v-2c0c7a01]{animation:training-guide-land-2c0c7a01 var(--training-guide-enter) var(--training-guide-ease) both;border:3px solid var(--training-guide-accent);border-radius:var(--training-guide-radius);box-shadow:inset 0 0 0 1.5px #ffffffe6, 0 0 0 1.5px #ffffffe6, 0 0 22px 3px rgba(var(--training-guide-accent-rgb), .5);position:fixed}.training-guide-overlay__ring[data-v-2c0c7a01]:before,.training-guide-overlay__ring[data-v-2c0c7a01]:after{animation:training-guide-ripple-2c0c7a01 2s var(--training-guide-ease) var(--training-guide-enter) infinite both;border:2px solid rgba(var(--training-guide-accent-rgb), .6);border-radius:calc(var(--training-guide-radius) + 5px);content:"";position:absolute;inset:-6px}.training-guide-overlay__ring[data-v-2c0c7a01]:after{animation-delay:calc(var(--training-guide-enter) + 1s)}.training-guide-overlay__caption[data-v-2c0c7a01]{animation:training-guide-caption-below-2c0c7a01 var(--training-guide-enter) var(--training-guide-ease) 90ms both;background:var(--training-guide-accent);border-radius:var(--training-guide-radius);box-shadow:var(--v64-elevation-3,0 4px 8px 3px #00000014, 0 1px 3px #0000001f), 0 10px 28px rgba(var(--training-guide-accent-rgb), .28);box-sizing:border-box;color:var(--training-guide-on-accent);font:var(--v64-type-label-lg,500 .875rem/1.25rem system-ui, sans-serif);align-items:center;gap:var(--v64-space-2,8px);letter-spacing:.01em;width:max-content;padding:10px 16px 13px 10px;font-weight:650;display:flex;position:fixed}.training-guide-overlay__caption--above[data-v-2c0c7a01]{animation-name:training-guide-caption-above-2c0c7a01}.training-guide-overlay__caption[data-v-2c0c7a01]:before{background:inherit;content:"";height:12px;left:calc(var(--training-guide-arrow,24px) - 6px);border-radius:2px;width:12px;position:absolute;top:-5px;transform:rotate(45deg)}.training-guide-overlay__caption--above[data-v-2c0c7a01]:before{top:auto;bottom:-5px}.training-guide-overlay__caption-icon[data-v-2c0c7a01]{box-sizing:border-box;fill:currentColor;background:#ffffff38;border-radius:999px;flex:none;width:30px;height:30px;padding:5px}.training-guide-overlay__caption-text[data-v-2c0c7a01]{overflow-wrap:anywhere;min-width:0}.training-guide-overlay__timer[data-v-2c0c7a01]{animation:training-guide-timer-2c0c7a01 var(--training-guide-lifetime,8s) linear both;opacity:.5;transform-origin:0;background:currentColor;border-radius:999px;height:2px;position:absolute;bottom:5px;left:50px;right:16px}.training-guide-overlay--still[data-v-2c0c7a01] *,.training-guide-overlay--still[data-v-2c0c7a01] :before,.training-guide-overlay--still[data-v-2c0c7a01] :after{animation:none!important}.training-guide-overlay--still .training-guide-overlay__ring[data-v-2c0c7a01]:before,.training-guide-overlay--still .training-guide-overlay__ring[data-v-2c0c7a01]:after,.training-guide-overlay--still .training-guide-overlay__timer[data-v-2c0c7a01]{display:none}@keyframes training-guide-scrim-2c0c7a01{0%{box-shadow:0 0 0 200vmax #0c101c00}}@keyframes training-guide-land-2c0c7a01{0%{opacity:0;transform:scale(1.4)}}@keyframes training-guide-ripple-2c0c7a01{0%{opacity:.85;transform:scale(1)}70%,to{opacity:0;transform:scale(1.22)}}@keyframes training-guide-caption-below-2c0c7a01{0%{opacity:0;transform:translateY(-10px)scale(.94)}}@keyframes training-guide-caption-above-2c0c7a01{0%{opacity:0;transform:translateY(10px)scale(.94)}}@keyframes training-guide-timer-2c0c7a01{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media (prefers-reduced-motion:reduce){.training-guide-overlay[data-v-2c0c7a01] *,.training-guide-overlay[data-v-2c0c7a01] :before,.training-guide-overlay[data-v-2c0c7a01] :after{animation:none!important}.training-guide-overlay__ring[data-v-2c0c7a01]:before,.training-guide-overlay__ring[data-v-2c0c7a01]:after,.training-guide-overlay__timer[data-v-2c0c7a01]{display:none}}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-24218cac]{--generated-ui-screen-title-size:clamp(1.2rem, 1.7vw, 1.55rem);--generated-ui-screen-panel-padding:0}.studio-screen[data-v-24218cac]{flex:auto;width:100%;max-width:none;height:100%;min-height:0;margin-inline:0;overflow:hidden}.studio-screen__panel[data-v-24218cac]{padding:var(--generated-ui-screen-panel-padding)}.studio-screen__gate-scroll[data-v-24218cac]{flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden}.studio-screen__gate-scroll[data-v-24218cac] .project-selection-gate{flex-direction:column;flex:auto;min-height:0;display:flex}.studio-screen__gate-scroll[data-v-24218cac] .project-selection-gate .studio-ai-sessions{flex:auto;min-height:0}.studio-home-shell-heading[data-v-24218cac]{align-items:center;gap:var(--studio-home-project-gap);grid-template-columns:var(--studio-home-chat-column-width) auto;min-width:0;display:grid}.studio-home-shell-heading--chat-collapsed[data-v-24218cac]{grid-template-columns:auto auto}.studio-home-shell-title-area[data-v-24218cac]{flex:auto;align-items:center;gap:.42rem;min-width:0;padding-left:1rem;display:flex}.studio-home-shell-project-selector[data-v-24218cac]{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-24218cac] .v-icon{color:var(--v64-on-surface-variant);margin-inline-start:var(--v64-space-1)}.studio-home-shell-project-selector[data-v-24218cac] .v-btn__content{min-width:0}.studio-home-shell-project-selector span[data-v-24218cac]{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.studio-home-shell-github-actor-host[data-v-24218cac]{flex:auto;align-items:center;min-width:0;min-height:1.65rem;display:flex;overflow:hidden}.studio-home-shell-github-actor-host[data-v-24218cac]:empty{display:none}.studio-home-shell-local-remotes-host[data-v-24218cac],.studio-home-shell-create-session-host[data-v-24218cac]{flex:none;display:flex}.studio-home-shell-local-remotes-host[data-v-24218cac]:empty,.studio-home-shell-create-session-host[data-v-24218cac]:empty{display:none}.studio-home-shell-title[data-v-24218cac]{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-24218cac]{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-24218cac]{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-24218cac]{flex:none;align-items:center;gap:.45rem;min-width:0;display:flex}.studio-home-shell-chat-toggle[data-v-24218cac]{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-24218cac]:hover{background:color-mix(in srgb, var(--v64-on-surface) 8%, var(--v64-surface-container-high))!important}.studio-home-shell-project-tabs[data-v-24218cac]{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-24218cac]{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-24218cac]:first-child{border-inline-start:0}.studio-home-shell-project-tab[data-v-24218cac]: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-24218cac]:hover:not(:disabled):after{opacity:var(--v64-state-hover)}.studio-home-shell-project-tab[data-v-24218cac]:active:not(:disabled):after{opacity:var(--v64-state-pressed)}.studio-home-shell-project-tab[data-v-24218cac]: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-24218cac]{background:var(--v64-secondary-container);color:var(--v64-on-secondary-container);font-weight:600}.studio-home-shell-project-tab--active[data-v-24218cac]:before{animation:studio-home-shell-check-in-24218cac 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-24218cac]{--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-vibe64-guide=learning][data-v-24218cac]{color:var(--v64-on-learning-container)}.studio-home-shell-project-tab--active[data-vibe64-guide=learning][data-v-24218cac]{background:var(--v64-learning-container);box-shadow:inset 0 -2px 0 var(--v64-learning-strong)}.studio-home-shell-project-tab[data-v-24218cac]:disabled{color:color-mix(in srgb, var(--v64-on-surface) 38%, transparent);cursor:not-allowed}@keyframes studio-home-shell-check-in-24218cac{0%{opacity:0;width:0}to{opacity:1;width:1.125rem}}.studio-home-shell-preview-toolbar-host[data-v-24218cac]{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-24218cac]:empty{display:none}.studio-home-shell-project-mobile-action[data-v-24218cac]{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[data-v-24218cac]:hover{background:color-mix(in srgb, var(--v64-on-secondary-container) 8%, var(--v64-secondary-container))}.studio-home-shell-project-mobile-action[data-v-24218cac]:focus-visible{outline:var(--v64-focus-ring-width) solid var(--v64-focus-ring-color);outline-offset:var(--v64-focus-ring-offset)}.studio-home-shell-project-mobile-action[aria-label="Go to learning"][data-v-24218cac]{background:var(--v64-learning-container);color:var(--v64-on-learning-container)}@media (prefers-reduced-motion:reduce){.studio-home-shell-project-tab--active[data-v-24218cac]:before{animation:none}}@media (width>=981px){.studio-screen__gate-scroll[data-v-24218cac] .project-selection-gate .studio-ai-sessions--autopilot{padding:0}}@media (width<=980px){.studio-home-shell-heading[data-v-24218cac]{grid-template-columns:minmax(0,1fr) auto;gap:.5rem;width:100%}.studio-home-shell-project-controls[data-v-24218cac]{justify-content:flex-end;min-width:0;margin-left:auto;display:flex}.studio-home-shell-project-tabs--desktop[data-v-24218cac]{display:none}.studio-home-shell-project-mobile-action[data-v-24218cac]{display:inline-flex}.studio-home-shell-preview-toolbar-host[data-v-24218cac]{flex:0 auto;max-width:min(26rem,42vw)}}@media (width<=600px){.studio-home-shell-title[data-v-24218cac]{max-width:calc(100vw - 14rem);font-size:1.05rem}.studio-home-shell-target-folder[data-v-24218cac]{max-width:calc(100vw - 16rem);font-size:1.05rem}.studio-home-shell-heading[data-v-24218cac]{gap:var(--v64-space-1);width:100%;padding-left:0;display:flex}.studio-home-shell-preview-toolbar-host[data-v-24218cac]{max-width:min(12rem,32vw)}.studio-home-shell-project-mobile-action[data-v-24218cac]{min-width:4rem;padding-inline:var(--v64-space-3) var(--v64-space-1)}.studio-home-shell-title-area[data-v-24218cac]{padding-left:0}.studio-home-shell-project-selector[data-v-24218cac]{flex:1 0 auto;min-width:5.75rem;max-width:min(11rem,100vw - 15rem);padding-inline:.375rem .125rem;font-size:.95rem}.studio-home-shell-project-selector[data-v-24218cac] .v-icon{margin-inline-start:0}.studio-home-shell-local-remotes-host[data-v-24218cac]{margin-inline-end:.375rem}.studio-home-shell-local-remotes-host[data-v-24218cac] .local-remotes__branch{width:2.5rem!important}.studio-home-shell-title-area[data-v-24218cac]{gap:var(--v64-space-1)}.studio-home-shell-create-session-host[data-v-24218cac] .studio-ai-sessions__create-button,.studio-home-shell-chat-toggle[data-v-24218cac]{width:2.5rem;min-width:2.5rem;height:2.5rem;min-height:2.5rem}.studio-home-shell-project-controls[data-v-24218cac]{gap:.3rem}.studio-screen[data-v-24218cac]{max-width:100%}}
@@ -1 +0,0 @@
1
- import{Wn as vShow,h as VIcon}from"./ripple-BVltMmyV.js";import{D as createVNode,E as createTextVNode,Ht as watch,J as inject,On as unref,Ut as watchEffect,Yt as withDirectives,Zn as normalizeClass,_ as createBaseVNode,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,u as Teleport,v as createBlock,vn as ref,y as createCommentVNode}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{n as useShellWebErrorRuntime}from"./error-Dug56can.js";import{J as useQueryClient,T as ROUTE_VISIBILITY_PUBLIC,t as useEndpointResource}from"./useEndpointResource-MWVNfmMa.js";import{_ as useRouter,c as isNavigationFailure,g as useRoute,t as NavigationFailureType}from"./useApi-BPuI6ZR9-CFWU1m37.js";import{a as projectSlugFromRoute,j as useRealtimeEvent,r as projectAppPath,u as getHttpWebClient}from"./vibe64ProjectScope.local-DqT6e5un.js";import{t as VSelect}from"./VSelect-DL3HaA5m.js";import{g as useDisplay,n as VBadge}from"./VAvatar-DPzqDH4r.js";import{n as VList,s as VListItem,t as VMenu}from"./VMenu-C_x18lwb.js";import{t as VTextField}from"./VTextField-BR2eZeFT.js";import{c as VIBE64_COLLEAGUE_LAYOUT_KEY,d as VIBE64_COLLEAGUE_VIEW_KEY,m as VIBE64_TRAINING_LEARNER_GESTURE_KEY,p as VIBE64_LEARNING_NAVIGATION_KEY}from"./vibe64AssistantHost-DdE_-lZF.js";import{A as mdiCheckCircleOutline,Bn as mdiSchoolOutline,Fn as mdiRefresh,J as mdiCogOutline,M as mdiChevronLeft,N as mdiChevronRight,Wn as mdiSourceBranch,b as mdiArrowUp,dn as mdiLinkVariantOff,er as mdiSwapVertical,h as mdiArrowDown,j as mdiChevronDown,l as mdiAlertCircleOutline,zt as mdiHelpCircleOutline}from"./mdi-C54lQ0i_.js";import{t as VBtn}from"./VBtn-B2MBK2DL.js";import{t as VAlert}from"./VAlert-P256xaE0.js";import{t as VDivider}from"./VDivider-BMEqUoAB.js";import{t as VSheet}from"./VSheet-DZWsu0kL.js";import{t as VDialog}from"./VDialog-Bu3EfKb1.js";import{i as VCardTitle,n as VCardText,o as VCardActions,t as VCard}from"./VCard-mXy0k4aS.js";import{t as VSpacer}from"./VSpacer-Dhmsvk4t.js";import{t as VSkeletonLoader}from"./VSkeletonLoader-CttxM1tw.js";import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper-DNW4j-dv.js";import{a as guideElementVisible,c as Vibe64LearningPracticeProjectSelector_default,d as projectSelectionGateQueryKey,f as StudioAppShellLayout_default,i as clearTrainingGuide,l as Vibe64AuthSettingsButton_default,n as Vibe64LearningLessonLauncher_default,o as registerTrainingGuideOverlay,r as Vibe64SessionPanel_default,s as trainingGuide,t as useVibe64LearningMode,u as ProjectSelectionGate_default}from"./useVibe64LearningMode-Bl0dGdCh.js";import{t as useCommand}from"./useCommand-DWuxfAV0.js";import{t as useUiFeedback}from"./useUiFeedback-0FqKuZRP.js";import{i as studioApiPath,r as scopedDevelopmentApiUrl}from"./studioUrls-Dj8rXeXO.js";import{n as vibe64ApiResponseError,r as vibe64ResourceResponseError}from"./vibe64ApiResponses-DNLY1Kel.js";import{r as vibe64RealtimePayloadFromCurrentTab}from"./vibe64BrowserTabOrigin-SF9E31vi.js";import{_ as readRefOrGetterValue,_n as RouterView,s as useShellLayoutState}from"./index-BUq-MczL.js";import{a as vibe64SessionDebugDurationMs,o as vibe64SessionDebugError,s as vibe64SessionDebugLog}from"./vibe64SessionPanelModel-BMf64fv7.js";import{c as PROJECT_SELECTION_ENDPOINT,y as VIBE64_PROJECT_CHANGED_EVENT}from"./studioGateApi-DhA9IJGZ.js";import{r as invalidateGithubIssueQueries}from"./vibe64GithubProject-CdFrbVHp.js";import{t as route_block_default}from"./route-block-DbL-SuOj.js";var _hoisted_1$2={key:1,class:`local-remotes__branch-name`};var _hoisted_2$2={class:`local-remotes__status text-body-small mb-3`,role:`status`,"aria-live":`polite`};var _hoisted_3$1={class:`d-flex flex-column ga-1`};var _hoisted_4$1={class:`local-remotes__count ms-2`};var _hoisted_5$1={class:`local-remotes__count ms-2`};var _hoisted_6$1={class:`local-remotes__details text-body-medium`};var _hoisted_7$1={key:0,class:`text-body-medium text-error mt-3 local-remotes__message`};var _hoisted_8$1={key:1,class:`text-body-small text-medium-emphasis mt-3`};var _hoisted_9={key:0};var _hoisted_10={class:`local-remotes__message`};var _hoisted_11={key:0};var _hoisted_12={class:`local-remotes__url`};var _hoisted_13={key:0};var _hoisted_14={key:1};var _hoisted_15={key:2};var _sfc_main$2={__name:`Vibe64LocalRemoteControls`,props:{project:{type:Object,required:true}},setup(__props){const props=__props;const{xs}=useDisplay();const state=ref(null);const busy=ref(``);const error=ref(``);const isBusy=computed(()=>Boolean(busy.value));const detailsOpen=ref(false);const settingsOpen=ref(false);const settings=reactive({remote:``,branch:``,pushRemote:``,pushBranch:``});const settingsReview=ref(null);const pendingReview=ref(null);const branchAction=ref(``);const branchName=ref(``);const branchReview=ref(null);const feedback=useUiFeedback({source:`vibe64.repository.remote`});const endpoint=computed(()=>scopedDevelopmentApiUrl(studioApiPath(`vibe64/repository/remote`),props.project.slug));let generation=0;let timer;const remoteError=computed(()=>error.value||state.value?.error||``);const syncStatus=computed(()=>{const current=state.value;if(remoteError.value)return{label:`Check failed`,icon:mdiAlertCircleOutline,color:`error`};if(!current)return{label:`Not checked`,icon:mdiHelpCircleOutline};if(!current.upstream&&!current.push)return{label:current.remotes.length?`Setup needed`:`Local only`,icon:mdiLinkVariantOff};const changes=[];if(current.incoming>0)changes.push(`${current.incoming} incoming`);if(current.outgoing>0)changes.push(`${current.outgoing} outgoing`);if(changes.length)return{label:changes.join(` · `),icon:mdiSwapVertical,color:`primary`};if(!current.upstream||!current.push)return{label:`Setup needed`,icon:mdiLinkVariantOff};if(current.incoming===null||current.outgoing===null)return{label:`Not checked`,icon:mdiHelpCircleOutline};return{label:`Up to date`,icon:mdiCheckCircleOutline,color:`success`}});function destination(target){return`${target.remote}/${target.branch}`}function snapshot(value){return JSON.parse(JSON.stringify(value))}async function request(body){const result=await getHttpWebClient().request(endpoint.value,{method:`POST`,body});if(result?.ok===false)throw new Error(vibe64ApiResponseError(result,`The Git operation failed.`));return result}async function refresh(background=true){if(busy.value||settingsOpen.value||pendingReview.value||branchAction.value||document.hidden||props.project.repositoryMode!==`local_source`)return;const current=generation;busy.value=`fetch`;try{const result=await request({action:`fetch`,background});if(current!==generation)return;state.value=result;error.value=``}catch(cause){if(current===generation){error.value=cause.message;if(!background)feedback.error(cause,`Could not fetch remote changes.`)}}finally{if(current===generation)busy.value=``}}function review(action){detailsOpen.value=false;const current=state.value;pendingReview.value={action,review:snapshot(current.review),target:snapshot(action===`push`?current.push:current.upstream),count:current.outgoing,merge:action===`pull`&&current.incoming>0&&current.localAhead>0}}function openSettings(){detailsOpen.value=false;settingsReview.value=snapshot(state.value.review);const onlyRemote=state.value.remotes.length===1?state.value.remotes[0].name:``;Object.assign(settings,{remote:state.value.upstream?.remote||onlyRemote,branch:state.value.upstream?.branch||state.value.branch,pushRemote:state.value.push?.remote||onlyRemote,pushBranch:state.value.push?.branch||state.value.branch});settingsOpen.value=true}function openBranch(action){detailsOpen.value=false;branchReview.value=snapshot(state.value.review);branchName.value=``;branchAction.value=action}async function execute(body){if(busy.value)return;const current=generation;busy.value=body.action;try{const result=await request(body);if(current!==generation)return;state.value=result;settingsOpen.value=false;pendingReview.value=null;branchAction.value=``;error.value=``}catch(cause){if(current===generation)feedback.error(cause,`The Git operation could not finish.`)}finally{if(current===generation)busy.value=``}}async function saveSettings(){await execute({action:`configure`,review:settingsReview.value,settings:{...settings}});if(!settingsOpen.value)await refresh(false)}function confirmOperation(){const pending=pendingReview.value;return execute({action:pending.action,review:pending.review,merge:pending.merge})}watch(endpoint,()=>{generation+=1;state.value=null;busy.value=``;error.value=``;pendingReview.value=null;settingsOpen.value=false;branchAction.value=``;detailsOpen.value=false;refresh()},{immediate:true});const onVisible=()=>{if(!document.hidden)refresh()};onMounted(()=>{timer=setInterval(onVisible,6e4);document.addEventListener(`visibilitychange`,onVisible);window.addEventListener(`focus`,onVisible)});onScopeDispose(()=>{generation+=1;clearInterval(timer);document.removeEventListener(`visibilitychange`,onVisible);window.removeEventListener(`focus`,onVisible)});return(_ctx,_cache)=>{return __props.project.repositoryMode===`local_source`?(openBlock(),createBlock(VSheet,{key:0,color:`transparent`,class:`local-remotes`,tag:`section`,"aria-label":`Local Git repository`},{default:withCtx(()=>[!state.value&&busy.value?(openBlock(),createBlock(VSkeletonLoader,{key:0,"aria-label":`Loading Git remote status`,"aria-busy":`true`,type:`button`,width:unref(xs)?48:112,height:`32`},null,8,[`width`])):(openBlock(),createBlock(VMenu,{key:1,modelValue:detailsOpen.value,"onUpdate:modelValue":_cache[5]||(_cache[5]=$event=>detailsOpen.value=$event),location:`bottom start`,"close-on-content-click":false,width:`360`,"max-width":`calc(100vw - 32px)`},{activator:withCtx(({props:menuProps})=>[createVNode(VBadge,{"model-value":Boolean(remoteError.value)||state.value?.incoming>0||state.value?.outgoing>0,content:remoteError.value?`!`:(state.value?.incoming||0)+(state.value?.outgoing||0),color:remoteError.value?`error`:`primary`,max:`99`,"offset-x":`5`,"offset-y":`5`},{default:withCtx(()=>[createVNode(VBtn,mergeProps(menuProps,{class:`local-remotes__branch`,variant:`tonal`,rounded:`lg`,height:`32`,icon:unref(xs),width:unref(xs)?48:void 0,"prepend-icon":unref(xs)?void 0:unref(mdiSourceBranch),"append-icon":unref(xs)?void 0:unref(mdiChevronDown),"aria-label":`Git details for ${state.value?.branch||`this repository`}. ${syncStatus.value.label}`,title:`${state.value?.branch||`Git details`} · ${syncStatus.value.label}`}),{default:withCtx(()=>[unref(xs)?(openBlock(),createBlock(VIcon,{key:0,icon:unref(mdiSourceBranch)},null,8,[`icon`])):(openBlock(),createElementBlock(`span`,_hoisted_1$2,toDisplayString(state.value?.branch||(state.value?`No branch`:`Repository`)),1))]),_:1},16,[`icon`,`width`,`prepend-icon`,`append-icon`,`aria-label`,`title`])]),_:2},1032,[`model-value`,`content`,`color`])]),default:withCtx(()=>[createVNode(VSheet,{class:`pa-4`,rounded:`lg`,elevation:`3`},{default:withCtx(()=>[_cache[28]||(_cache[28]=createBaseVNode(`div`,{class:`text-label-large mb-2`},`Local repository`,-1)),createBaseVNode(`div`,_hoisted_2$2,[createVNode(VIcon,{icon:syncStatus.value.icon,color:syncStatus.value.color,size:`18`},null,8,[`icon`,`color`]),createBaseVNode(`span`,null,toDisplayString(syncStatus.value.label),1)]),createBaseVNode(`div`,_hoisted_3$1,[createVNode(VBtn,{height:`48`,variant:`text`,"prepend-icon":unref(mdiSourceBranch),disabled:isBusy.value||!state.value?.head,onClick:_cache[0]||(_cache[0]=$event=>openBranch(`switch`))},{default:withCtx(()=>[..._cache[19]||(_cache[19]=[createTextVNode(`Switch branch…`,-1)])]),_:1},8,[`prepend-icon`,`disabled`]),createVNode(VBtn,{height:`48`,variant:`text`,"prepend-icon":unref(mdiSourceBranch),disabled:isBusy.value||!state.value?.head,onClick:_cache[1]||(_cache[1]=$event=>openBranch(`create`))},{default:withCtx(()=>[..._cache[20]||(_cache[20]=[createTextVNode(`New branch…`,-1)])]),_:1},8,[`prepend-icon`,`disabled`]),createVNode(VBtn,{height:`48`,variant:`text`,"prepend-icon":unref(mdiRefresh),"aria-label":busy.value===`fetch`?`Fetching remote changes`:`Fetch remote changes`,disabled:isBusy.value,onClick:_cache[2]||(_cache[2]=$event=>refresh(false))},{default:withCtx(()=>[createTextVNode(toDisplayString(busy.value===`fetch`?`Fetching…`:`Fetch`),1)]),_:1},8,[`prepend-icon`,`aria-label`,`disabled`]),state.value?.upstream&&state.value.incoming>0?(openBlock(),createBlock(VBtn,{key:0,height:`48`,color:`primary`,variant:`flat`,"prepend-icon":unref(mdiArrowDown),disabled:isBusy.value||Boolean(remoteError.value),onClick:_cache[3]||(_cache[3]=$event=>review(`pull`))},{default:withCtx(()=>[_cache[21]||(_cache[21]=createTextVNode(` Pull `,-1)),createBaseVNode(`span`,_hoisted_4$1,toDisplayString(state.value.incoming),1)]),_:1},8,[`prepend-icon`,`disabled`])):createCommentVNode(``,true),state.value?.push&&state.value.outgoing>0?(openBlock(),createBlock(VBtn,{key:1,height:`48`,color:`primary`,variant:state.value.incoming>0?`tonal`:`flat`,"prepend-icon":unref(mdiArrowUp),disabled:isBusy.value||Boolean(remoteError.value),onClick:_cache[4]||(_cache[4]=$event=>review(`push`))},{default:withCtx(()=>[_cache[22]||(_cache[22]=createTextVNode(` Push `,-1)),createBaseVNode(`span`,_hoisted_5$1,toDisplayString(state.value.outgoing),1)]),_:1},8,[`variant`,`prepend-icon`,`disabled`])):createCommentVNode(``,true)]),createVNode(VDivider,{class:`my-3`}),createBaseVNode(`dl`,_hoisted_6$1,[_cache[23]||(_cache[23]=createBaseVNode(`dt`,null,`Branch`,-1)),createBaseVNode(`dd`,null,toDisplayString(state.value?.branch||`No branch checked out`),1),_cache[24]||(_cache[24]=createBaseVNode(`dt`,null,`Pull from`,-1)),createBaseVNode(`dd`,null,toDisplayString(state.value?.upstream?destination(state.value.upstream):`Not configured`),1),_cache[25]||(_cache[25]=createBaseVNode(`dt`,null,`Push to`,-1)),createBaseVNode(`dd`,null,toDisplayString(state.value?.push?destination(state.value.push):`Not configured`),1),_cache[26]||(_cache[26]=createBaseVNode(`dt`,null,`Last checked`,-1)),createBaseVNode(`dd`,null,toDisplayString(state.value?.checkedAt?new Date(state.value.checkedAt).toLocaleString():`Not checked yet`),1)]),remoteError.value?(openBlock(),createElementBlock(`p`,_hoisted_7$1,toDisplayString(remoteError.value),1)):!state.value?.upstream||!state.value?.push?(openBlock(),createElementBlock(`p`,_hoisted_8$1,` Set pull and push destinations to track remote changes. `)):createCommentVNode(``,true),createVNode(VDivider,{class:`my-3`}),createVNode(VBtn,{variant:`text`,block:``,height:`48`,"prepend-icon":unref(mdiCogOutline),disabled:isBusy.value||!state.value?.branch,onClick:openSettings},{default:withCtx(()=>[..._cache[27]||(_cache[27]=[createTextVNode(` Remote settings `,-1)])]),_:1},8,[`prepend-icon`,`disabled`])]),_:1})]),_:1},8,[`modelValue`])),createVNode(VDialog,{"model-value":Boolean(branchAction.value),"max-width":`560`,scrollable:``,persistent:isBusy.value,"onUpdate:modelValue":_cache[10]||(_cache[10]=$event=>!$event&&(branchAction.value=``))},{default:withCtx(()=>[createVNode(VCard,{title:branchAction.value===`create`?`Create and switch branch`:`Switch local branch`},{default:withCtx(()=>[createVNode(VCardText,{class:`d-flex flex-column ga-3`},{default:withCtx(()=>[createBaseVNode(`p`,null,[_cache[29]||(_cache[29]=createTextVNode(`Changes the opened project folder from `,-1)),createBaseVNode(`strong`,null,toDisplayString(branchReview.value?.branch),1),_cache[30]||(_cache[30]=createTextVNode(`. The folder must be clean.`,-1))]),_cache[31]||(_cache[31]=createBaseVNode(`p`,null,`Existing sessions keep their original destination. To commit or Update those sessions, switch this folder back to their branch. New sessions start on the selected branch.`,-1)),branchAction.value===`create`?(openBlock(),createElementBlock(`p`,_hoisted_9,`The new branch starts at the current local commit. Nothing is pushed.`)):createCommentVNode(``,true),branchAction.value===`create`?(openBlock(),createBlock(VTextField,{key:1,modelValue:branchName.value,"onUpdate:modelValue":_cache[6]||(_cache[6]=$event=>branchName.value=$event),label:`New branch name`,disabled:isBusy.value,maxlength:`255`},null,8,[`modelValue`,`disabled`])):(openBlock(),createBlock(VSelect,{key:2,modelValue:branchName.value,"onUpdate:modelValue":_cache[7]||(_cache[7]=$event=>branchName.value=$event),items:state.value?.localBranches||[],label:`Local branch`,disabled:isBusy.value},null,8,[`modelValue`,`items`,`disabled`])),_cache[32]||(_cache[32]=createBaseVNode(`p`,null,`Database contents stay as they are. Branch selection does not undo migrations.`,-1))]),_:1}),createVNode(VCardActions,{class:`flex-wrap`},{default:withCtx(()=>[createVNode(VSpacer),createVNode(VBtn,{height:`48`,disabled:isBusy.value,onClick:_cache[8]||(_cache[8]=$event=>branchAction.value=``)},{default:withCtx(()=>[..._cache[33]||(_cache[33]=[createTextVNode(`Cancel`,-1)])]),_:1},8,[`disabled`]),createVNode(VBtn,{height:`48`,color:`primary`,variant:`flat`,disabled:isBusy.value||!branchName.value||branchName.value===branchReview.value?.branch,onClick:_cache[9]||(_cache[9]=$event=>execute({action:branchAction.value,branch:branchName.value,review:branchReview.value}))},{default:withCtx(()=>[createTextVNode(toDisplayString(isBusy.value?`Switching…`:branchAction.value===`create`?`Create & switch`:`Switch branch`),1)]),_:1},8,[`disabled`])]),_:1})]),_:1},8,[`title`])]),_:1},8,[`model-value`,`persistent`]),createVNode(VDialog,{modelValue:settingsOpen.value,"onUpdate:modelValue":_cache[16]||(_cache[16]=$event=>settingsOpen.value=$event),"max-width":`560`,scrollable:``,persistent:isBusy.value},{default:withCtx(()=>[createVNode(VCard,null,{default:withCtx(()=>[createVNode(VCardTitle,null,{default:withCtx(()=>[..._cache[34]||(_cache[34]=[createTextVNode(`Remote settings`,-1)])]),_:1}),createVNode(VCardText,{class:`d-flex flex-column ga-3`},{default:withCtx(()=>[createBaseVNode(`p`,_hoisted_10,[_cache[35]||(_cache[35]=createTextVNode(`Destinations for `,-1)),createBaseVNode(`strong`,null,toDisplayString(state.value?.branch),1),_cache[36]||(_cache[36]=createTextVNode(`. Saved in this repository’s Git configuration, including for terminal commands.`,-1))]),!state.value?.remotes?.length?(openBlock(),createElementBlock(`p`,_hoisted_11,[..._cache[37]||(_cache[37]=[createTextVNode(`No remotes configured. Add one with `,-1),createBaseVNode(`code`,null,`git remote add`,-1),createTextVNode(` in the project folder, then Fetch.`,-1)])])):createCommentVNode(``,true),createVNode(VSelect,{modelValue:settings.remote,"onUpdate:modelValue":_cache[11]||(_cache[11]=$event=>settings.remote=$event),items:state.value?.remotes||[],"item-title":`name`,"item-value":`name`,label:`Pull remote`,disabled:isBusy.value},null,8,[`modelValue`,`items`,`disabled`]),createVNode(VTextField,{modelValue:settings.branch,"onUpdate:modelValue":_cache[12]||(_cache[12]=$event=>settings.branch=$event),label:`Pull branch`,disabled:isBusy.value},null,8,[`modelValue`,`disabled`]),createVNode(VSelect,{modelValue:settings.pushRemote,"onUpdate:modelValue":_cache[13]||(_cache[13]=$event=>settings.pushRemote=$event),items:state.value?.remotes||[],"item-title":`name`,"item-value":`name`,label:`Push remote`,disabled:isBusy.value},null,8,[`modelValue`,`items`,`disabled`]),createVNode(VTextField,{modelValue:settings.pushBranch,"onUpdate:modelValue":_cache[14]||(_cache[14]=$event=>settings.pushBranch=$event),label:`Push branch`,disabled:isBusy.value},null,8,[`modelValue`,`disabled`])]),_:1}),createVNode(VCardActions,null,{default:withCtx(()=>[createVNode(VSpacer),createVNode(VBtn,{height:`48`,disabled:isBusy.value,onClick:_cache[15]||(_cache[15]=$event=>settingsOpen.value=false)},{default:withCtx(()=>[..._cache[38]||(_cache[38]=[createTextVNode(`Cancel`,-1)])]),_:1},8,[`disabled`]),createVNode(VBtn,{disabled:isBusy.value||!settings.remote||!settings.branch||!settings.pushRemote||!settings.pushBranch,onClick:saveSettings},{default:withCtx(()=>[createTextVNode(toDisplayString(busy.value?`Saving…`:`Save settings`),1)]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`modelValue`,`persistent`]),createVNode(VDialog,{"model-value":Boolean(pendingReview.value),"max-width":`560`,scrollable:``,persistent:isBusy.value,"onUpdate:modelValue":_cache[18]||(_cache[18]=$event=>!$event&&(pendingReview.value=null))},{default:withCtx(()=>[pendingReview.value?(openBlock(),createBlock(VCard,{key:0},{default:withCtx(()=>[createVNode(VCardTitle,null,{default:withCtx(()=>[createTextVNode(toDisplayString(pendingReview.value.action===`push`?`Push saved work`:`Pull remote changes`),1)]),_:1}),createVNode(VCardText,null,{default:withCtx(()=>[createBaseVNode(`p`,null,[createTextVNode(toDisplayString(pendingReview.value.action===`push`?`Push to`:`Pull from`)+` `,1),createBaseVNode(`strong`,null,toDisplayString(destination(pendingReview.value.target)),1)]),createBaseVNode(`p`,_hoisted_12,toDisplayString(pendingReview.value.target.url),1),pendingReview.value.action===`push`?(openBlock(),createElementBlock(`p`,_hoisted_13,`Publishes `+toDisplayString(pendingReview.value.count)+` outgoing `+toDisplayString(pendingReview.value.count===1?`commit`:`commits`)+` from the local project. Unsaved session work is not included.`,1)):pendingReview.value.merge?(openBlock(),createElementBlock(`p`,_hoisted_14,`Local and remote history have both advanced. Merge the remote changes into the local project, preserving both histories. Conflicts stop the operation for review.`)):(openBlock(),createElementBlock(`p`,_hoisted_15,`Update the local project folder. Your sessions keep their work and can then use Update this session.`))]),_:1}),createVNode(VCardActions,null,{default:withCtx(()=>[createVNode(VSpacer),createVNode(VBtn,{height:`48`,disabled:isBusy.value,onClick:_cache[17]||(_cache[17]=$event=>pendingReview.value=null)},{default:withCtx(()=>[..._cache[39]||(_cache[39]=[createTextVNode(`Cancel`,-1)])]),_:1},8,[`disabled`]),createVNode(VBtn,{height:`48`,disabled:isBusy.value,onClick:confirmOperation},{default:withCtx(()=>[createTextVNode(toDisplayString(busy.value?`Working…`:pendingReview.value.action===`push`?`Push saved work`:pendingReview.value.merge?`Merge remote changes`:`Pull changes`),1)]),_:1},8,[`disabled`])]),_:1})]),_:1})):createCommentVNode(``,true)]),_:1},8,[`model-value`,`persistent`])]),_:1})):createCommentVNode(``,true)}}};var Vibe64LocalRemoteControls_default=_plugin_vue_export_helper_default(_sfc_main$2,[[`__scopeId`,`data-v-a0155a06`]]);var DRAWER_HIDDEN_CLASS=`studio-shell-drawer-hidden`;function setDrawerToggleHidden(hidden){if(typeof document===`undefined`)return;document.body.classList.toggle(DRAWER_HIDDEN_CLASS,Boolean(hidden))}function useStudioShellDrawer({hidden}){const{drawerDefaultOpen,setDrawerDefaultOpen,setDrawerOpen}=useShellLayoutState();const originalDrawerDefaultOpen=drawerDefaultOpen.value;watchEffect(()=>{const drawerHidden=Boolean(typeof hidden===`function`?hidden():hidden);setDrawerToggleHidden(drawerHidden);if(drawerHidden){setDrawerDefaultOpen(false);setDrawerOpen(false)}});onBeforeUnmount(()=>{setDrawerToggleHidden(false);setDrawerDefaultOpen(originalDrawerDefaultOpen);setDrawerOpen(originalDrawerDefaultOpen)})}function useVibe64ProjectsResource({projectSlug=``,fallbackLoadError=`Projects could not load.`,requestRecoveryLabel=`Projects`}={}){const slug=computed(()=>normalizeText(readRefOrGetterValue(projectSlug)));const selectionPath=computed(()=>slug.value?scopedDevelopmentApiUrl(PROJECT_SELECTION_ENDPOINT,slug.value,{scopeGlobalPaths:true}):PROJECT_SELECTION_ENDPOINT);const resource=useEndpointResource({fallbackLoadError,path:selectionPath,queryKey:computed(()=>projectSelectionGateQueryKey({ownershipFilter:ROUTE_VISIBILITY_PUBLIC,projectSlug:slug.value,scopeSelectionToCurrentProject:Boolean(slug.value),surfaceId:`app`})),refreshOnPull:true,requestRecoveryLabel});const loadError=computed(()=>vibe64ResourceResponseError(resource.data.value,fallbackLoadError)||resource.loadError.value);const currentProject=computed(()=>resource.data.value?.currentProject||null);const projectsRoot=computed(()=>String(resource.data.value?.projectsRoot||``));const targetRoot=computed(()=>String(resource.data.value?.targetRoot||``));const projects=computed(()=>Array.isArray(resource.data.value?.projects)?resource.data.value.projects:[]);const selfTargetAutoSelectProjectRepro=computed(()=>{const config=resource.data.value?.repro?.selfTargetAutoSelectProject||{};return config&&typeof config===`object`&&!Array.isArray(config)?config:{}});return{currentProject,data:resource.data,isFetching:resource.isFetching,isInitialLoading:resource.isInitialLoading,isLoading:resource.isLoading,isRefetching:resource.isRefetching,loadError,projects,projectsRoot,reload:resource.reload,resource,selfTargetAutoSelectProjectRepro,targetRoot}}function normalizeText(value=``){return String(value||``).trim()}var HOME_SHELL_CLASS=`studio-home-shell-active`;var SELF_TARGET_AUTO_SELECT_DELAY_MS=3e3;var PREVIEW_TOOLBAR_HOST_ID=`studio-home-shell-preview-toolbar`;var PROJECT_RUNTIME_CLOSE_API_PATH=`/api/vibe64/project-runtime/close`;var PROJECT_RUNTIME_OPEN_API_PATH=`/api/vibe64/project-runtime/open`;var projectTabs=Object.freeze([{id:`preview`,label:`Preview`},{id:`dashboard`,label:`Dashboard`}]);function useVibe64AppPage(){const route=useRoute();const router=useRouter();const pageTitle=ref(``);const pageError=ref(``);const chatCollapsed=ref(false);const mobilePaneLayout=ref(false);const projectSelectionReady=ref(false);const projectPaneNavigationReadySlug=ref(``);const lastDashboardRoutePath=ref(``);let mobilePaneMediaQuery=null;const projectSlug=computed(()=>projectSlugFromRoute(route));const queryClient=useQueryClient();const feedback=useShellWebErrorRuntime();const projectOpenRevision=ref(0);const projectOpenKey=computed(()=>`${projectSlug.value}:${projectOpenRevision.value}`);const openedProjectKey=ref(``);const projectOpenFailure=ref(null);const projectRuntimeReady=computed(()=>!projectSlug.value||openedProjectKey.value===projectOpenKey.value);const projectRuntimeError=computed(()=>projectOpenFailure.value?.key===projectOpenKey.value?projectOpenFailure.value.message:``);let attemptedProjectOpenKey=``;let dormantWorkingProjectSlug=``;const projectSelection=useVibe64ProjectsResource({fallbackLoadError:`Project selection could not load.`,projectSlug,requestRecoveryLabel:`Project selection`});const closeProjectRuntimeCommand=useCommand({access:`never`,apiSuffix:`/vibe64/project-runtime/close`,buildCommandOptions:(_payload,{context})=>({method:`POST`,path:scopedDevelopmentApiUrl(PROJECT_RUNTIME_CLOSE_API_PATH,context?.projectSlug)}),buildRawPayload:(_model,{context})=>({reason:String(context?.reason||`project-close`)}),clearOnRouteChange:false,fallbackRunError:`Project runtime could not close.`,messages:{error:`Project runtime could not close.`},ownershipFilter:ROUTE_VISIBILITY_PUBLIC,placementSource:`vibe64.project-runtime.close`,suppressSuccessMessage:true,surfaceId:`app`,writeMethod:`POST`});const openProjectRuntimeCommand=useCommand({access:`never`,apiSuffix:`/vibe64/project-runtime/open`,buildCommandOptions:(_payload,{context})=>({method:`POST`,path:scopedDevelopmentApiUrl(PROJECT_RUNTIME_OPEN_API_PATH,context?.projectSlug)}),buildRawPayload:(_model,{context})=>({reason:String(context?.reason||`project-open`)}),clearOnRouteChange:false,fallbackRunError:`Project runtime could not be marked open.`,messages:{error:`Project runtime could not be marked open.`},ownershipFilter:ROUTE_VISIBILITY_PUBLIC,placementSource:`vibe64.project-runtime.open`,suppressSuccessMessage:true,surfaceId:`app`,writeMethod:`POST`});const projectLoadError=projectSelection.loadError;const projects=projectSelection.projects;const selfTargetAutoSelectProjectRepro=projectSelection.selfTargetAutoSelectProjectRepro;const targetRoot=computed(()=>String(projectSelection.targetRoot.value||``).trim());const targetFolderName=computed(()=>projectSlug.value||finalPathSegment(targetRoot.value));const developmentBasePath=computed(()=>projectAppPath(projectSlug.value));const dashboardBasePath=computed(()=>`${developmentBasePath.value}/dashboard`);const dashboardRouteActive=computed(()=>normalizedPath(route.path).startsWith(`${dashboardBasePath.value}/`));const projectPane=computed(()=>dashboardRouteActive.value?`dashboard`:`preview`);const sortedProjects=computed(()=>[...projects.value].sort((left,right)=>left.slug.localeCompare(right.slug)));const switcherProjects=computed(()=>openProjectSwitcherProjects(projects.value));const chatToggleIcon=computed(()=>{if(mobilePaneLayout.value)return chatCollapsed.value?mdiChevronLeft:mdiChevronRight;return chatCollapsed.value?mdiChevronRight:mdiChevronLeft});const chatToggleTitle=computed(()=>{if(mobilePaneLayout.value)return chatCollapsed.value?`Show chat`:`Show project`;return chatCollapsed.value?`Show chat`:`Collapse chat`});const mobileProjectAction=computed(()=>projectPane.value===`dashboard`?{ariaLabel:`Go to preview`,label:`Preview`,pane:`preview`}:{ariaLabel:`Go to dashboard`,label:`Dashboard`,pane:`dashboard`});const projectPaneNavigationVisible=computed(()=>projectPaneNavigationReady({selectionReady:projectSelectionReady.value,projectSlug:projectSlug.value,readyProjectSlug:projectPaneNavigationReadySlug.value}));const mobileProjectActionVisible=computed(()=>projectPaneNavigationVisible.value&&mobilePaneLayout.value&&chatCollapsed.value);const mobilePaneSwipeEnabled=computed(()=>projectPaneNavigationVisible.value&&mobilePaneLayout.value);const colleagueLayout=inject(VIBE64_COLLEAGUE_LAYOUT_KEY,null);const selectedCompanionView=inject(VIBE64_COLLEAGUE_VIEW_KEY,null);let pageMounted=false;let learningLayoutWasSelected=false;const learnerGestures=inject(VIBE64_TRAINING_LEARNER_GESTURE_KEY,null);const layoutOwner={get projectSlug(){return projectSlug.value},get ready(){return projectPaneNavigationVisible.value},get projectVisible(){return!mobilePaneLayout.value||chatCollapsed.value},get chatVisible(){return!chatCollapsed.value},showProject:showProjectPane,showChat(){setChatCollapsed(false)}};const previewToolbarHostVisible=computed(()=>previewToolbarTargetVisible({chatCollapsed:chatCollapsed.value,mobilePaneLayout:mobilePaneLayout.value,projectPane:projectPane.value,projectPaneNavigationVisible:projectPaneNavigationVisible.value}));const previewToolbarTeleportTarget=computed(()=>previewToolbarHostVisible.value?`#${PREVIEW_TOOLBAR_HOST_ID}`:``);let selfTargetAutoSelectTimer=0;let selfTargetAutoSelectAttemptKey=``;useStudioShellDrawer({hidden:true});useRealtimeEvent({enabled:computed(()=>Boolean(projectSlug.value)),event:VIBE64_PROJECT_CHANGED_EVENT,matches:({payload={}}={})=>projectRuntimeClosedPayloadMatches(payload,projectSlug.value),onEvent:({payload={}}={})=>{handleProjectRuntimeClosed(payload)}});useRealtimeEvent({event:VIBE64_PROJECT_CHANGED_EVENT,matches:({payload={}}={})=>payload.projectSlug===projectSlug.value&&payload.githubRefresh===true,onEvent:async()=>{const issuesPath=scopedDevelopmentApiUrl(`/api/vibe64/issues`,projectSlug.value);const labelsPath=scopedDevelopmentApiUrl(`/api/vibe64/issue-labels`,projectSlug.value);const mentionsPath=scopedDevelopmentApiUrl(`/api/vibe64/issue-mentions`,projectSlug.value);const prsPath=scopedDevelopmentApiUrl(`/api/vibe64/pull-requests`,projectSlug.value);const incomingPath=scopedDevelopmentApiUrl(`/api/vibe64/incoming`,projectSlug.value);await queryClient.invalidateQueries({predicate:({queryKey})=>{if(!Array.isArray(queryKey))return false;const[resource,path]=queryKey;return resource===`vibe64.issues`&&path===issuesPath||resource===`vibe64.issue`&&path?.startsWith(`${issuesPath}/`)||resource===`vibe64.issueLabels`&&path===labelsPath||resource===`vibe64.issueMentions`&&path===mentionsPath||[`vibe64.pullRequests`,`vibe64.pullRequest`].includes(resource)&&path===prsPath||resource===`vibe64.incoming`&&path===incomingPath}})}});useRealtimeEvent({event:VIBE64_PROJECT_CHANGED_EVENT,matches:({payload={}}={})=>payload.projectSlug===projectSlug.value&&Number.isSafeInteger(payload.issueComment?.number)&&payload.issueComment.number>0&&!vibe64RealtimePayloadFromCurrentTab(payload),onEvent:async({payload})=>{const comment=payload.issueComment;const basePath=scopedDevelopmentApiUrl(`/api/vibe64/issues`,projectSlug.value);feedback.report({source:`vibe64.issues.activity`,message:`${comment.author||`Someone`} commented on issue #${comment.number}.`,intent:`action-feedback`,severity:`info`,channel:`snackbar`,dedupeKey:`vibe64.issueComment:${payload.projectSlug}:${comment.id}`});await invalidateGithubIssueQueries(queryClient,basePath,`${basePath}/${comment.number}`)}});watch(()=>route.path,path=>{if(normalizedPath(path)!==normalizedPath(developmentBasePath.value))setPageTitle()},{immediate:true});watch(projectSlug,()=>{dormantWorkingProjectSlug=``;retryProjectRuntime()},{flush:`sync`});watch(()=>route.query.mode,mode=>{if(mode===`learning`||!dormantWorkingProjectSlug||dormantWorkingProjectSlug!==projectSlug.value)return;dormantWorkingProjectSlug=``;retryProjectRuntime()},{flush:`sync`});watch([projectOpenKey,()=>openProjectRuntimeCommand.canRun,()=>openProjectRuntimeCommand.isRunning],([key,canRun,running])=>{if(!projectSlug.value||!canRun||running||attemptedProjectOpenKey===key)return;attemptedProjectOpenKey=key;openProjectRuntimeForSlug(projectSlug.value,{key})},{immediate:true});const removeProjectNavigation=router.afterEach((to,_from,failure)=>{if(projectRuntimeError.value&&isNavigationFailure(failure,NavigationFailureType.duplicated)&&projectSlugFromRoute(to)===projectSlug.value)retryProjectRuntime()});onMounted(()=>{pageMounted=true;setHomeShellActive(true);if(typeof window!==`undefined`&&typeof window.matchMedia===`function`){mobilePaneMediaQuery=window.matchMedia(`(max-width: 980px)`);syncMobilePaneLayout();if(typeof mobilePaneMediaQuery.addEventListener===`function`)mobilePaneMediaQuery.addEventListener(`change`,syncMobilePaneLayout);else mobilePaneMediaQuery.addListener?.(syncMobilePaneLayout)}if(colleagueLayout&&!selectedCompanionView?.value?.learningBinding)colleagueLayout.value=layoutOwner});onBeforeUnmount(()=>{pageMounted=false;if(colleagueLayout?.value===layoutOwner)colleagueLayout.value=null;removeProjectNavigation();clearSelfTargetAutoSelectTimer();setHomeShellActive(false);if(typeof mobilePaneMediaQuery?.removeEventListener===`function`)mobilePaneMediaQuery.removeEventListener(`change`,syncMobilePaneLayout);else mobilePaneMediaQuery?.removeListener?.(syncMobilePaneLayout);mobilePaneMediaQuery=null});watch(()=>selectedCompanionView?.value?.learningBinding,binding=>{if(binding)learningLayoutWasSelected=true;else if(pageMounted&&learningLayoutWasSelected&&colleagueLayout){learningLayoutWasSelected=false;colleagueLayout.value=layoutOwner}},{flush:`sync`});watch(()=>[projectSlug.value,projectSelection.isLoading.value?`loading`:`ready`,selfTargetAutoSelectProjectRepro.value?.enabled===true?`enabled`:`disabled`,selfTargetAutoSelectProjectRepro.value?.selfTarget===true?`self-target`:`normal`,selfTargetAutoSelectProjectRepro.value?.projectSlug||``,sortedProjects.value.map(project=>project.slug).join(`\0`)].join(`|`),()=>{scheduleSelfTargetProjectAutoSelect()},{immediate:true});watch(()=>[dashboardBasePath.value,route.path].join(`|`),()=>{if(dashboardRouteActive.value)lastDashboardRoutePath.value=normalizedPath(route.path)},{immediate:true});return{chatCollapsed,chatToggleIcon,chatToggleTitle,closeProjectRuntimeForSlug,dashboardRouteActive,emitPageTitle,handleProjectSelectionError,handleProjectSelectionMissing,handleProjectSelectionReady,mdiChevronDown,mdiChevronRight,mobilePaneSwipeEnabled,mobileProjectAction,mobileProjectActionVisible,openProject,pageError,pageTitle,previewToolbarHostId:PREVIEW_TOOLBAR_HOST_ID,previewToolbarHostVisible,previewToolbarTeleportTarget,projectLoadError,projectPane,projectPaneNavigationVisible,projectRuntimeError,projectRuntimeReady,projectSlug,projectTabs,retryProjectRuntime,selectProjectPane,setChatCollapsed,showProjectPane,switcherProjects,targetFolderName};function setHomeShellActive(active){if(typeof document===`undefined`)return;document.body.classList.toggle(HOME_SHELL_CLASS,Boolean(active))}function setPageTitle(title=``){pageTitle.value=String(title||``).trim()}function emitPageTitle(title=``){setPageTitle(title)}function selectProjectPane(pane=``,event){const owner=learnerGestures?.value;const ticket=pane===`preview`?owner?.begin(event,`preview-select`):null;if(mobilePaneLayout.value)setChatCollapsed(true);const path=pane===`dashboard`?dashboardReturnPath({dashboardBasePath:dashboardBasePath.value,lastDashboardRoutePath:lastDashboardRoutePath.value}):developmentBasePath.value;router.push(route.query.mode===`learning`?{path,query:{...route.query}}:path);if(ticket)owner.finish(ticket)}function openProject(project={},event){const slug=String(project.slug||``).trim();if(!slug)return;const owner=learnerGestures?.value;const ticket=owner?.begin(event,`project-select`,{projectSlug:slug});if(slug===projectSlug.value&&route.path!==projectAppPath(slug))retryProjectRuntime();router.push(projectAppPath(slug));if(ticket)owner.finish(ticket)}async function closeProjectRuntimeForSlug(slug=``,{reason=`project-close`}={}){const project=String(slug||``).trim();if(!project)return null;const startedAtMs=Date.now();vibe64SessionDebugLog(`client.projectRuntime.close.start`,{projectSlug:project,reason});try{const result=await closeProjectRuntimeCommand.run({projectSlug:project,reason});vibe64SessionDebugLog(`client.projectRuntime.close.done`,{durationMs:vibe64SessionDebugDurationMs(startedAtMs),ok:result?.ok!==false,projectSlug:project,reason});return result}catch(error){vibe64SessionDebugLog(`client.projectRuntime.close.error`,{durationMs:vibe64SessionDebugDurationMs(startedAtMs),error:vibe64SessionDebugError(error),projectSlug:project,reason});return null}}async function openProjectRuntimeForSlug(slug=``,{reason=`project-open`,key=projectOpenKey.value}={}){const project=String(slug||``).trim();if(!project)return null;try{const result=await openProjectRuntimeCommand.run({projectSlug:project,reason});if(result?.ok!==true||result?.runtime?.open!==true)throw new Error(result?.error||`Project could not open. Try again.`);if(key===projectOpenKey.value&&dormantWorkingProjectSlug!==project)openedProjectKey.value=key;return result}catch(error){if(key===projectOpenKey.value&&dormantWorkingProjectSlug!==project)projectOpenFailure.value={key,message:String(error?.message||`Project could not open. Try again.`)};vibe64SessionDebugLog(`client.projectRuntime.open.error`,{error:vibe64SessionDebugError(error),projectSlug:project,reason});return null}}function retryProjectRuntime(){projectOpenRevision.value+=1}function handleProjectRuntimeClosed(payload={}){const closedSlug=String(payload.projectSlug||projectSlug.value||``).trim();if(payload.runtimeDormantClose===true&&payload.runtimeCloseReason===`idle-timeout`&&route.query.mode===`learning`&&selectedCompanionView?.value?.learningBinding&&closedSlug===projectSlug.value){dormantWorkingProjectSlug=closedSlug;openedProjectKey.value=``;return}dormantWorkingProjectSlug=``;pageError.value=String(payload.message||`Project is closed.`);router.push({path:`/app/manage/projects`,query:{projectClosed:closedSlug}})}function scheduleSelfTargetProjectAutoSelect(){clearSelfTargetAutoSelectTimer();const targetProject=selfTargetAutoSelectProjectTarget({currentSlug:projectSlug.value,loading:projectSelection.isLoading.value,projects:sortedProjects.value,repro:selfTargetAutoSelectProjectRepro.value});if(!targetProject)return;const targetSlug=String(targetProject.slug||``).trim();const attemptKey=`${projectSlug.value}->${targetSlug}`;if(selfTargetAutoSelectAttemptKey===attemptKey||typeof globalThis.setTimeout!==`function`)return;selfTargetAutoSelectTimer=globalThis.setTimeout(()=>{selfTargetAutoSelectTimer=0;selfTargetAutoSelectAttemptKey=attemptKey;openProject(targetProject)},SELF_TARGET_AUTO_SELECT_DELAY_MS)}function clearSelfTargetAutoSelectTimer(){if(!selfTargetAutoSelectTimer||typeof globalThis.clearTimeout!==`function`){selfTargetAutoSelectTimer=0;return}globalThis.clearTimeout(selfTargetAutoSelectTimer);selfTargetAutoSelectTimer=0}function showProjectPane(event){if(mobilePaneLayout.value)setChatCollapsed(true,event)}function setChatCollapsed(collapsed=false,event){const owner=learnerGestures?.value;const control=!collapsed?`chat-show`:mobilePaneLayout.value&&!chatCollapsed.value&&projectPane.value===`preview`?`preview-select`:``;const ticket=control?owner?.begin(event,control):null;chatCollapsed.value=Boolean(collapsed);if(ticket)owner.finish(ticket)}function syncMobilePaneLayout(){mobilePaneLayout.value=Boolean(mobilePaneMediaQuery?.matches)}function handleProjectSelectionReady(selection={}){pageError.value=``;const selectedSlug=selectedProjectSlug(selection);setProjectPaneNavigationReady(Boolean(selectedSlug&&selectedSlug===projectSlug.value));emitPageTitle()}function handleProjectSelectionMissing(){pageError.value=``;setProjectPaneNavigationReady(false);emitPageTitle(`Choose project`)}function handleProjectSelectionError(error){pageError.value=String(error||``);setProjectPaneNavigationReady(false);emitPageTitle()}function setProjectPaneNavigationReady(ready=false){projectSelectionReady.value=Boolean(ready);projectPaneNavigationReadySlug.value=ready?projectSlug.value:``}}function projectRuntimeClosedPayloadMatches(payload={},currentSlug=``){const projectSlug=String(currentSlug||``).trim();if(!projectSlug||String(payload?.projectSlug||``).trim()!==projectSlug)return false;return String(payload?.action||``).trim()===`runtime-closed`&&payload?.runtime?.open===false}function openProjectSwitcherProjects(projects=[]){if(!Array.isArray(projects))return[];return projects.filter(project=>project?.runtime?.open===true).sort((left,right)=>String(left?.slug||``).localeCompare(String(right?.slug||``)))}function selfTargetAutoSelectProjectTarget({currentSlug=``,loading=false,projects=[],repro={}}={}){const targetSlug=String(repro?.projectSlug||``).trim();if(repro?.enabled!==true||repro?.selfTarget!==true||!targetSlug||loading||String(currentSlug||``).trim()===targetSlug||!Array.isArray(projects))return null;return projects.find(project=>project?.slug===targetSlug)||null}function previewToolbarTargetVisible({chatCollapsed=false,mobilePaneLayout=false,projectPane=``,projectPaneNavigationVisible=false}={}){return Boolean(projectPaneNavigationVisible&&projectPane===`preview`&&(!mobilePaneLayout||chatCollapsed))}function dashboardReturnPath({dashboardBasePath=``,lastDashboardRoutePath=``}={}){const normalizedDashboardBasePath=normalizedPath(dashboardBasePath);const normalizedLastDashboardRoutePath=normalizedPath(lastDashboardRoutePath);const defaultDashboardPath=`${normalizedDashboardBasePath}/env`;if(normalizedLastDashboardRoutePath&&(normalizedLastDashboardRoutePath===normalizedDashboardBasePath||normalizedLastDashboardRoutePath.startsWith(`${normalizedDashboardBasePath}/`)))return normalizedLastDashboardRoutePath===normalizedDashboardBasePath?defaultDashboardPath:normalizedLastDashboardRoutePath;return defaultDashboardPath}function projectPaneNavigationReady({selectionReady=false,projectSlug=``,readyProjectSlug=``}={}){const currentSlug=String(projectSlug||``).trim();return Boolean(selectionReady&&currentSlug&&String(readyProjectSlug||``).trim()===currentSlug)}function selectedProjectSlug(selection={}){const currentProject=selection?.currentProject&&typeof selection.currentProject===`object`&&!Array.isArray(selection.currentProject)?selection.currentProject:{};return String(currentProject.slug||selection?.projectSlug||selection?.slug||``).trim()}function finalPathSegment(pathValue=``){const normalizedPath=String(pathValue||``).trim().replace(/[\\/]+$/u,``);if(!normalizedPath)return``;return normalizedPath.split(/[\\/]+/u).filter(Boolean).at(-1)||``}function normalizedPath(pathValue=``){const path=String(pathValue||``).trim();if(!path||path===`/`)return path||`/`;return path.replace(/\/+$/u,``)}var _hoisted_1$1=[`data-guide-step`];var _hoisted_2$1={class:`training-guide-overlay__caption-text`};var pad=6;var gap=14;var captionMaxWidth=352;var _sfc_main$1={__name:`TrainingGuideOverlay`,setup(__props){const unregister=registerTrainingGuideOverlay();const rect=ref(null);const lifetime=ref(0);const reducedMotion=ref(Boolean(globalThis.matchMedia?.(`(prefers-reduced-motion: reduce)`)?.matches));let frame=0;let timer=null;function stop(){if(frame)globalThis.cancelAnimationFrame?.(frame);frame=0;clearTimeout(timer);timer=null;globalThis.document?.removeEventListener(`pointerdown`,dismiss,true);globalThis.document?.removeEventListener(`keydown`,dismiss,true)}function dismiss(){clearTrainingGuide(trainingGuide.value?.id)}function measure(){const guide=trainingGuide.value;if(!guide)return;if(!guideElementVisible(guide.element)){clearTrainingGuide(guide.id);return}const box=guide.element.getBoundingClientRect();rect.value={top:box.top,left:box.left,width:box.width,height:box.height};if(globalThis.requestAnimationFrame)frame=globalThis.requestAnimationFrame(measure)}watch(trainingGuide,guide=>{stop();rect.value=null;if(!guide)return;lifetime.value=Math.max(0,guide.expiresAt-Date.now());timer=setTimeout(()=>clearTrainingGuide(guide.id),lifetime.value);globalThis.document?.addEventListener(`pointerdown`,dismiss,true);globalThis.document?.addEventListener(`keydown`,dismiss,true);measure()},{immediate:true});onBeforeUnmount(()=>{stop();unregister()});const ringStyle=computed(()=>rect.value&&{top:`${rect.value.top-pad}px`,left:`${rect.value.left-pad}px`,width:`${rect.value.width+12}px`,height:`${rect.value.height+12}px`});const captionPlacement=computed(()=>{if(!rect.value)return`below`;const viewport=globalThis.innerHeight||0;const below=rect.value.top+rect.value.height+pad+gap;return viewport&&below+60>viewport?`above`:`below`});const captionStyle=computed(()=>{if(!rect.value)return null;const viewportWidth=globalThis.innerWidth||0;const width=viewportWidth?Math.min(captionMaxWidth,viewportWidth-16):captionMaxWidth;const preferred=Math.max(8,rect.value.left-pad);const left=viewportWidth?Math.max(8,Math.min(preferred,viewportWidth-8-width)):preferred;const arrow=Math.max(20,Math.min(rect.value.left+rect.value.width/2-left,width-20));return{...captionPlacement.value===`above`?{bottom:`${Math.max(8,(globalThis.innerHeight||0)-(rect.value.top-pad-gap))}px`}:{top:`${rect.value.top+rect.value.height+pad+gap}px`},left:`${left}px`,maxWidth:`${width}px`,"--training-guide-arrow":`${arrow}px`,"--training-guide-lifetime":`${lifetime.value}ms`}});return(_ctx,_cache)=>{return openBlock(),createBlock(Teleport,{to:`body`},[unref(trainingGuide)&&rect.value?(openBlock(),createElementBlock(`div`,{key:0,class:normalizeClass([`training-guide-overlay`,{"training-guide-overlay--still":reducedMotion.value}]),"data-guide-step":unref(trainingGuide).step,"aria-live":`polite`},[createBaseVNode(`div`,{class:`training-guide-overlay__spotlight`,style:normalizeStyle(ringStyle.value),"aria-hidden":`true`},null,4),createBaseVNode(`div`,{class:`training-guide-overlay__ring`,style:normalizeStyle(ringStyle.value)},null,4),unref(trainingGuide).caption?(openBlock(),createElementBlock(`div`,{key:0,class:normalizeClass([`training-guide-overlay__caption`,`training-guide-overlay__caption--${captionPlacement.value}`]),style:normalizeStyle(captionStyle.value)},[_cache[0]||(_cache[0]=createBaseVNode(`svg`,{class:`training-guide-overlay__caption-icon`,viewBox:`0 0 24 24`,"aria-hidden":`true`,focusable:`false`},[createBaseVNode(`path`,{d:`M10,9A1,1 0 0,1 11,8A1,1 0 0,1 12,9V13.47L13.21,13.6L18.15,15.79C18.68,16.03 19,16.56 19,17.14V21.5C18.97,22.32 18.32,22.97 17.5,23H11C10.62,23 10.26,22.85 10,22.57L5.1,18.37L5.84,17.6C6.03,17.39 6.3,17.28 6.58,17.28H6.8L10,19V9M11,5A4,4 0 0,1 15,9C15,10.5 14.2,11.77 13,12.46V11.24C13.61,10.69 14,9.89 14,9A3,3 0 0,0 11,6A3,3 0 0,0 8,9C8,9.89 8.39,10.69 9,11.24V12.46C7.8,11.77 7,10.5 7,9A4,4 0 0,1 11,5Z`})],-1)),createBaseVNode(`span`,_hoisted_2$1,toDisplayString(unref(trainingGuide).caption),1),_cache[1]||(_cache[1]=createBaseVNode(`span`,{class:`training-guide-overlay__timer`,"aria-hidden":`true`},null,-1))],6)):createCommentVNode(``,true)],10,_hoisted_1$1)):createCommentVNode(``,true)])}}};var TrainingGuideOverlay_default=_plugin_vue_export_helper_default(_sfc_main$1,[[`__scopeId`,`data-v-2c0c7a01`]]);var _hoisted_1={class:`studio-home-shell-title-area`};var _hoisted_2={class:`studio-home-shell-project-controls`};var _hoisted_3={key:0,class:`studio-home-shell-project-tabs studio-home-shell-project-tabs--desktop`,role:`tablist`,"aria-label":`Project`};var _hoisted_4=[`data-vibe64-guide`,`aria-label`,`aria-selected`,`aria-disabled`,`disabled`,`title`,`onClick`];var _hoisted_5=[`id`];var _hoisted_6=[`aria-label`];var _hoisted_7={class:`generated-ui-screen generated-ui-screen--studio studio-screen d-flex flex-column ga-3`};var _hoisted_8={class:`studio-screen__gate-scroll`};var githubActorHostId=`studio-home-shell-github-actor`;var _sfc_main={__name:`[slug]`,setup(__props){const githubActorTeleportTarget=`#${githubActorHostId}`;const LEARNING_TAB=Object.freeze({id:`learning`,label:`Learning`,icon:mdiSchoolOutline,title:`Learning: courses and lesson`});const{chatCollapsed,chatToggleIcon,chatToggleTitle,dashboardRouteActive,emitPageTitle,handleProjectSelectionError,handleProjectSelectionMissing,handleProjectSelectionReady,mdiChevronDown,mdiChevronRight,mobilePaneSwipeEnabled,mobileProjectAction,mobileProjectActionVisible,openProject,pageError,previewToolbarHostId,previewToolbarHostVisible,previewToolbarTeleportTarget,projectLoadError,projectPane,projectPaneNavigationVisible,projectRuntimeError,projectRuntimeReady,projectSlug,projectTabs,retryProjectRuntime,selectProjectPane,setChatCollapsed,showProjectPane:showWorkingProjectPane,switcherProjects,targetFolderName}=useVibe64AppPage();const panel=ref(null);const learning=useVibe64LearningMode({onConversationOpened(identity){panel.value?.selectLearningConversation(identity)}});const{learningMode,learningView,purposeFilter,learningResource}=learning;const learningWorkspaceAvailable=computed(()=>panel.value?.learningWorkspaceAvailable===true);const learningPaneActive=computed(()=>learningMode.value&&(learningView.value===`learning`||!learningWorkspaceAvailable.value));function showProjectPane(){if(learningMode.value){if(!learningWorkspaceAvailable.value)return;learning.setLearningView(`workspace`)}showWorkingProjectPane()}const headerTabs=computed(()=>learningMode.value?[...projectTabs,LEARNING_TAB]:projectTabs);const activeHeaderTab=computed(()=>learningPaneActive.value?`learning`:projectPane.value);const headerTabDisabled=id=>learningMode.value&&id!==`learning`&&!learningWorkspaceAvailable.value;async function selectHeaderTab(id,event){if(headerTabDisabled(id))return;if(id===`learning`)return learning.setLearningView(`learning`);if(learningMode.value&&learningView.value!==`workspace`)await learning.setLearningView(`workspace`);selectProjectPane(id,event)}const mobileHeaderAction=computed(()=>{if(!learningMode.value)return mobileProjectAction.value;const ids=headerTabs.value.map(tab=>tab.id).filter(id=>!headerTabDisabled(id));const next=headerTabs.value.find(tab=>tab.id===ids[(ids.indexOf(activeHeaderTab.value)+1)%ids.length]);return next.id===activeHeaderTab.value?null:{ariaLabel:`Go to ${next.label.toLowerCase()}`,label:next.label,pane:next.id}});const learningNavigation=inject(VIBE64_LEARNING_NAVIGATION_KEY,null);function waitForLearningPanel(action,isCurrent,failure){return new Promise((resolve,reject)=>{let stop;const timer=setTimeout(()=>finish(new Error(failure)),12e3);function finish(error){clearTimeout(timer);if(stop)stop();else queueMicrotask(()=>stop?.());if(error)reject(error);else resolve()}stop=watchEffect(()=>{if(!isCurrent())finish(new Error(`The Learning navigation target changed before it opened.`));else if(action())finish()},{flush:`post`})})}async function navigateLearning(command,isCurrent=()=>true){if(command.learningMode===false){if(learningMode.value)await learning.setLearningMode(false);return}if(command.learningMode!==true)return;if(!learningMode.value)await learning.setLearningMode(true);if(!isCurrent())throw new Error(`The Learning navigation target changed before it opened.`);await nextTick();if(command.learningContent===`picker`)await waitForLearningPanel(()=>panel.value?.showLearningPicker()===true,isCurrent,`The lesson picker did not become available.`);else if(command.learningAttemptId||command.sessionId){const identity={attemptId:command.learningAttemptId,sessionId:command.sessionId,learnerId:learning.learnerId.value};await waitForLearningPanel(()=>panel.value?.selectLearningConversation(identity)===true,isCurrent,`The requested Learning session did not become available.`)}if(command.learningView&&learningView.value!==command.learningView){if(command.learningView===`workspace`&&panel.value?.learningWorkspaceAvailable!==true)throw new Error(`This lesson has no project workspace.`);await learning.setLearningView(command.learningView)}}if(learningNavigation)learningNavigation.value=navigateLearning;onBeforeUnmount(()=>{if(learningNavigation?.value===navigateLearning)learningNavigation.value=null});return(_ctx,_cache)=>{return openBlock(),createBlock(StudioAppShellLayout_default,{"show-learning-mode-control":``,"learning-mode":unref(learningMode),"onUpdate:learningMode":unref(learning).setLearningMode,"chat-collapsed":unref(chatCollapsed),"mobile-pane-swipe-enabled":unref(mobilePaneSwipeEnabled),"onUpdate:chatCollapsed":unref(setChatCollapsed)},{"top-left":withCtx(()=>[createBaseVNode(`div`,{class:normalizeClass([`studio-home-shell-heading`,{"studio-home-shell-heading--chat-collapsed":unref(chatCollapsed)}])},[createBaseVNode(`div`,_hoisted_1,[unref(learningMode)?(openBlock(),createBlock(Vibe64LearningPracticeProjectSelector_default,{key:0,panel:panel.value},null,8,[`panel`])):(openBlock(),createBlock(VMenu,{key:1,location:`bottom start`},{activator:withCtx(({props:menuProps})=>[createVNode(VBtn,mergeProps({class:`studio-home-shell-project-selector`,variant:`text`},menuProps),{default:withCtx(()=>[createBaseVNode(`span`,null,toDisplayString(unref(targetFolderName)||`Project`),1),createVNode(VIcon,{icon:unref(mdiChevronDown),size:`18`},null,8,[`icon`])]),_:1},16)]),default:withCtx(()=>[createVNode(VList,{density:`compact`,"min-width":`240`},{default:withCtx(()=>[(openBlock(true),createElementBlock(Fragment,null,renderList(unref(switcherProjects),project=>{return openBlock(),createBlock(VListItem,{key:project.slug,active:project.slug===unref(projectSlug),title:project.slug,subtitle:project.projectRoot,onClick:$event=>unref(openProject)(project,$event)},null,8,[`active`,`title`,`subtitle`,`onClick`])}),128)),unref(switcherProjects).length===0?(openBlock(),createBlock(VListItem,{key:0,subtitle:unref(projectLoadError)||`No open projects found.`,title:`Projects`},null,8,[`subtitle`])):createCommentVNode(``,true)]),_:1})]),_:1})),_cache[3]||(_cache[3]=createBaseVNode(`div`,{id:`studio-home-shell-create-session`,class:`studio-home-shell-create-session-host`},null,-1)),_cache[4]||(_cache[4]=createBaseVNode(`div`,{id:`studio-home-shell-local-remotes`,class:`studio-home-shell-local-remotes-host`},null,-1)),createBaseVNode(`div`,{id:githubActorHostId,class:`studio-home-shell-github-actor-host`})]),createBaseVNode(`div`,_hoisted_2,[createVNode(VBtn,{class:`studio-home-shell-chat-toggle`,"data-vibe64-guide":`pane-switch`,density:`comfortable`,icon:unref(chatToggleIcon),size:`small`,title:unref(chatToggleTitle),type:`button`,variant:`tonal`,"aria-label":unref(chatToggleTitle),onClick:_cache[0]||(_cache[0]=$event=>unref(setChatCollapsed)(!unref(chatCollapsed),$event))},null,8,[`icon`,`title`,`aria-label`]),unref(projectPaneNavigationVisible)||unref(learningMode)?(openBlock(),createElementBlock(`div`,_hoisted_3,[(openBlock(true),createElementBlock(Fragment,null,renderList(headerTabs.value,tab=>{return openBlock(),createElementBlock(`button`,{key:tab.id,class:normalizeClass([`studio-home-shell-project-tab`,{"studio-home-shell-project-tab--active":activeHeaderTab.value===tab.id}]),role:`tab`,type:`button`,"data-vibe64-guide":tab.id,"aria-label":tab.icon?tab.label:void 0,"aria-selected":activeHeaderTab.value===tab.id?`true`:`false`,"aria-disabled":headerTabDisabled(tab.id)?`true`:void 0,disabled:headerTabDisabled(tab.id),title:headerTabDisabled(tab.id)?`This lesson has no project workspace`:tab.title,onClick:$event=>selectHeaderTab(tab.id,$event)},[tab.icon?(openBlock(),createBlock(VIcon,{key:0,icon:tab.icon,size:`18`},null,8,[`icon`])):(openBlock(),createElementBlock(Fragment,{key:1},[createTextVNode(toDisplayString(tab.label),1)],64))],10,_hoisted_4)}),128))])):createCommentVNode(``,true),unref(previewToolbarHostVisible)?withDirectives((openBlock(),createElementBlock(`div`,{key:1,id:unref(previewToolbarHostId),class:`studio-home-shell-preview-toolbar-host`},null,8,_hoisted_5)),[[vShow,!learningPaneActive.value]]):createCommentVNode(``,true),unref(mobileProjectActionVisible)&&mobileHeaderAction.value?(openBlock(),createElementBlock(`button`,{key:2,class:`studio-home-shell-project-mobile-action`,"data-vibe64-guide":`pane-switch`,type:`button`,"aria-label":mobileHeaderAction.value.ariaLabel,onClick:_cache[1]||(_cache[1]=$event=>selectHeaderTab(mobileHeaderAction.value.pane,$event))},[createTextVNode(toDisplayString(mobileHeaderAction.value.label)+` `,1),createVNode(VIcon,{icon:unref(mdiChevronRight),size:`15`},null,8,[`icon`])],8,_hoisted_6)):createCommentVNode(``,true)])],2)]),"top-right":withCtx(()=>[createVNode(Vibe64AuthSettingsButton_default)]),default:withCtx(()=>[createBaseVNode(`section`,_hoisted_7,[unref(learningMode)?(openBlock(),createBlock(unref(TrainingGuideOverlay_default),{key:0})):createCommentVNode(``,true),unref(pageError)&&(!unref(learningMode)||!learningPaneActive.value)?(openBlock(),createBlock(VAlert,{key:1,type:`error`,variant:`tonal`,border:`start`,class:`studio-screen__alert`},{default:withCtx(()=>[createTextVNode(toDisplayString(unref(pageError)),1)]),_:1})):createCommentVNode(``,true),createBaseVNode(`div`,_hoisted_8,[(openBlock(),createBlock(ProjectSelectionGate_default,{"retain-independent-content":``,"independent-content":unref(learningMode),"runtime-ready":unref(projectRuntimeReady),"runtime-error":unref(projectRuntimeError),onRetryRuntime:unref(retryProjectRuntime),key:unref(projectSlug),"scope-selection-to-current-project":``,onError:unref(handleProjectSelectionError),onMissing:unref(handleProjectSelectionMissing),onReady:unref(handleProjectSelectionReady)},{default:withCtx(projectSelectionSlotProps=>[!unref(learningMode)&&projectSelectionSlotProps?.projectSelection?.currentProject?.repositoryMode===`local_source`?(openBlock(),createBlock(Teleport,{key:0,to:`#studio-home-shell-local-remotes`,defer:``},[createVNode(Vibe64LocalRemoteControls_default,{project:projectSelectionSlotProps.projectSelection.currentProject},null,8,[`project`])])):createCommentVNode(``,true),createVNode(Vibe64SessionPanel_default,{ref_key:`panel`,ref:panel,active:projectSelectionSlotProps.contentActive,"learning-resource":unref(learningResource),"learning-view":learningPaneActive.value?`learning`:`workspace`,"purpose-filter":unref(purposeFilter),"chat-collapsed":unref(chatCollapsed),"create-session-teleport-target":`#studio-home-shell-create-session`,"github-actor-teleport-target":githubActorTeleportTarget,"project-context":projectSelectionSlotProps?.projectSelection?.currentProject||{},"preview-toolbar-teleport-target":learningPaneActive.value?``:unref(previewToolbarTeleportTarget),"project-pane":learningPaneActive.value?`dashboard`:unref(projectPane),onTitleChange:unref(emitPageTitle),onChatAttention:_cache[2]||(_cache[2]=$event=>unref(setChatCollapsed)(false)),onProjectAttention:showProjectPane},{learning:withCtx(()=>[unref(learningMode)?(openBlock(),createBlock(Vibe64LearningLessonLauncher_default,{key:0,learning:unref(learning)},null,8,[`learning`])):createCommentVNode(``,true)]),dashboard:withCtx(dashboardSlotProps=>[unref(dashboardRouteActive)?(openBlock(),createBlock(unref(RouterView),{key:0,"dashboard-context":dashboardSlotProps?.dashboardContext||{}},null,8,[`dashboard-context`])):createCommentVNode(``,true)]),_:1},8,[`active`,`learning-resource`,`learning-view`,`purpose-filter`,`chat-collapsed`,`project-context`,`preview-toolbar-teleport-target`,`project-pane`,`onTitleChange`])]),_:1},8,[`independent-content`,`runtime-ready`,`runtime-error`,`onRetryRuntime`,`onError`,`onMissing`,`onReady`]))])])]),_:1},8,[`learning-mode`,`onUpdate:learningMode`,`chat-collapsed`,`mobile-pane-swipe-enabled`,`onUpdate:chatCollapsed`])}}};if(typeof route_block_default===`function`)route_block_default(_sfc_main);var _slug__default=_plugin_vue_export_helper_default(_sfc_main,[[`__scopeId`,`data-v-24218cac`]]);export{_slug__default as default};
@@ -1 +0,0 @@
1
- .vibe64-local-app-index__top[data-v-6f5adad1]{color:var(--v64-on-surface);font:var(--v64-type-title-lg);letter-spacing:-.01em;min-width:0;padding-inline:var(--v64-space-4) var(--v64-space-3);font-size:1.25rem}.vibe64-local-app-index[data-v-6f5adad1]{flex:auto;min-height:0;padding:clamp(1rem,3vw,2rem);overflow-y:auto}.vibe64-local-app-index--learning[data-v-6f5adad1]{padding:0;display:flex;overflow:hidden}.vibe64-local-app-index--learning[data-v-6f5adad1] .studio-ai-sessions{flex:auto;min-height:0}
@@ -1 +0,0 @@
1
- import{Wn as vShow}from"./ripple-BVltMmyV.js";import{D as createVNode,On as unref,Yt as withDirectives,Zn as normalizeClass,_ as createBaseVNode,mt as openBlock,qt as withCtx,tr as toDisplayString,v as createBlock,vn as ref,y as createCommentVNode}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper-DNW4j-dv.js";import{c as Vibe64LearningPracticeProjectSelector_default,f as StudioAppShellLayout_default,l as Vibe64AuthSettingsButton_default,n as Vibe64LearningLessonLauncher_default,r as Vibe64SessionPanel_default,t as useVibe64LearningMode,u as ProjectSelectionGate_default}from"./useVibe64LearningMode-Bl0dGdCh.js";import{t as route_block_default}from"./route-block-DbL-SuOj.js";var _hoisted_1={class:`vibe64-local-app-index__top`};var _sfc_main$1={__name:`Vibe64LocalAppIndex`,setup(__props){const panel=ref(null);const learning=useVibe64LearningMode({onConversationOpened(identity){panel.value?.selectLearningConversation(identity)}});const{learningMode,purposeFilter,learningResource,setLearningMode}=learning;return(_ctx,_cache)=>{return openBlock(),createBlock(StudioAppShellLayout_default,{"show-learning-mode-control":``,"learning-mode":unref(learningMode),"fill-viewport":unref(learningMode),"onUpdate:learningMode":unref(setLearningMode)},{"top-left":withCtx(()=>[createBaseVNode(`div`,_hoisted_1,toDisplayString(unref(learningMode)?`Courses`:`Projects`),1),unref(learningMode)?(openBlock(),createBlock(Vibe64LearningPracticeProjectSelector_default,{key:0,panel:panel.value},null,8,[`panel`])):createCommentVNode(``,true)]),"top-right":withCtx(()=>[createVNode(Vibe64AuthSettingsButton_default)]),default:withCtx(()=>[createBaseVNode(`section`,{class:normalizeClass([`vibe64-local-app-index`,{"vibe64-local-app-index--learning":unref(learningMode)}])},[withDirectives(createVNode(ProjectSelectionGate_default,{"force-picker":``,"navigate-on-select":``},null,512),[[vShow,!unref(learningMode)]]),withDirectives(createVNode(Vibe64SessionPanel_default,{ref_key:`panel`,ref:panel,active:unref(learningMode),"chat-collapsed":false,"learning-resource":unref(learningResource),"learning-view":`learning`,"purpose-filter":unref(purposeFilter),"project-pane":`dashboard`},{learning:withCtx(()=>[createVNode(Vibe64LearningLessonLauncher_default,{learning:unref(learning)},null,8,[`learning`])]),_:1},8,[`active`,`learning-resource`,`purpose-filter`]),[[vShow,unref(learningMode)]])],2)]),_:1},8,[`learning-mode`,`fill-viewport`,`onUpdate:learningMode`])}}};var Vibe64LocalAppIndex_default=_plugin_vue_export_helper_default(_sfc_main$1,[[`__scopeId`,`data-v-6f5adad1`]]);var _sfc_main={__name:`index`,setup(__props){return(_ctx,_cache)=>{return openBlock(),createBlock(Vibe64LocalAppIndex_default)}}};if(typeof route_block_default===`function`)route_block_default(_sfc_main);export{_sfc_main as default};