@vantran-se/openchamber-web 1.23.1 → 1.24.3

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 (313) hide show
  1. package/bin/cli.test.js +29 -6
  2. package/bin/lib/cli-http.js +5 -1
  3. package/bin/lib/commands-status.js +5 -0
  4. package/dist/assets/{CodeMirrorCommentWidgets-BOpqXpFU.js → CodeMirrorCommentWidgets-BjJHrzmU.js} +1 -1
  5. package/dist/assets/DiffView-COVQhWGd.js +4 -0
  6. package/dist/assets/FilesView-B1V5JxFX.js +13 -0
  7. package/dist/assets/GitView-CDOJy5Ay.js +6 -0
  8. package/dist/assets/GuestAttachDialog-D3S0Rjic.js +1 -0
  9. package/dist/assets/{JsonTreeView-nd_E8eVM.js → JsonTreeView-D0C9nU7K.js} +1 -1
  10. package/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  11. package/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  12. package/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  13. package/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  14. package/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  15. package/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  16. package/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  17. package/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  18. package/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  19. package/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  20. package/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  21. package/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  22. package/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  23. package/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  24. package/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  25. package/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  26. package/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  27. package/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  28. package/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  29. package/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  30. package/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  31. package/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  32. package/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  33. package/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  34. package/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  35. package/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  36. package/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  37. package/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  38. package/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  39. package/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  40. package/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  41. package/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  42. package/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  43. package/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  44. package/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  45. package/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  46. package/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  47. package/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  48. package/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  49. package/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  50. package/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  51. package/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  52. package/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  53. package/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  54. package/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  55. package/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  56. package/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  57. package/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  58. package/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  59. package/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  60. package/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  61. package/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  62. package/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  63. package/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  64. package/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  65. package/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  66. package/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  67. package/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  68. package/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  69. package/dist/assets/LinearIssuesView-D7FKg1XJ.js +1 -0
  70. package/dist/assets/{MarkdownImageGallery-CVYds3sQ.js → MarkdownImageGallery-BrFjAVEf.js} +1 -1
  71. package/dist/assets/MarkdownRendererImpl-DWepTafh.js +12 -0
  72. package/dist/assets/{OnboardingScreen-Dd2IbPTn.js → OnboardingScreen-Dyxxiqdt.js} +1 -1
  73. package/dist/assets/{PatchDiff-nUu5i4bG.js → PatchDiff-DnEhjXcC.js} +1 -1
  74. package/dist/assets/PierreDiffViewer-DyxZVVVR.js +210 -0
  75. package/dist/assets/PlanView-LW2z_EAP.js +5 -0
  76. package/dist/assets/PluginPane-B4tKno2h.js +3 -0
  77. package/dist/assets/SettingsView-DEaMulN9.js +29 -0
  78. package/dist/assets/{SettingsWindow-BccxY81J.js → SettingsWindow-FLDJXOgQ.js} +1 -1
  79. package/dist/assets/SubmoduleDiffSummary-CvVwD-Vi.js +1 -0
  80. package/dist/assets/ToolOutputDialog-BiP0x2Rw.js +15 -0
  81. package/dist/assets/{ToolPartDiffPreview-BFVgk0UK.js → ToolPartDiffPreview-CkR4msKP.js} +2 -2
  82. package/dist/assets/{VirtualizedFileDiff-z3_H74UR.js → VirtualizedFileDiff-0pyr_mHY.js} +3 -3
  83. package/dist/assets/{WalkthroughView-BqM9GFbJ.js → WalkthroughView-yNj4nOP5.js} +2 -2
  84. package/dist/assets/appThemeRegistry-BuUKhbYQ.js +1 -0
  85. package/dist/assets/commitAndPush-DvJKa3Ks.js +1 -0
  86. package/dist/assets/{computeVirtualFileMetrics-Bdazp9Qo.js → computeVirtualFileMetrics-DxTBMuu-.js} +1 -1
  87. package/dist/assets/de-DgxgFyGG.js +10 -0
  88. package/dist/assets/es-BFsZj5F_.js +16 -0
  89. package/dist/assets/fr-jdZ5KKQi.js +14 -0
  90. package/dist/assets/{index-eo1-D_7z.js → index-CKHjPKbq.js} +1 -1
  91. package/dist/assets/index-Cbci4i1W.js +40 -0
  92. package/dist/assets/index-DqaMWNrC.css +1 -0
  93. package/dist/assets/{isDiffPlainText-BvKH712-.js → isDiffPlainText-D7FkBMP6.js} +1 -1
  94. package/dist/assets/{isFilePlainText-BdVVPukf.js → isFilePlainText-CL2vsrIZ.js} +1 -1
  95. package/dist/assets/ja-C5kKrhO4.js +16 -0
  96. package/dist/assets/ko-DXDTT_0O.js +16 -0
  97. package/dist/assets/main-CZALtVek.js +896 -0
  98. package/dist/assets/main-CgXMBNvG.js +2 -0
  99. package/dist/assets/{markdown-shiki.worker-D5fBU-lw.js → markdown-shiki.worker-CahLvHIq.js} +5 -5
  100. package/dist/assets/markdownCore-Dh7WEsdM.js +5 -0
  101. package/dist/assets/miniChat-CwTmDixi.js +2 -0
  102. package/dist/assets/mobile-CLf2vCtO.js +2 -0
  103. package/dist/assets/{patchFileDiff-B7LjppSS.js → patchFileDiff-Bsba8KFp.js} +3 -3
  104. package/dist/assets/pl-D-7x4Y8Q.js +16 -0
  105. package/dist/assets/pt-BR-CSBZrHa8.js +16 -0
  106. package/dist/assets/renderElectronMiniChatApp-C5gAFBk0.js +2 -0
  107. package/dist/assets/renderMobileApp-V4hYd32H.js +25 -0
  108. package/dist/assets/runtimeEndpointReset-DhlHCn-2.js +25 -0
  109. package/dist/assets/{scheduledTasksApi-hceovDei.js → scheduledTasksApi-DzjbLd8P.js} +1 -1
  110. package/dist/assets/shikiHighlight-8_3csmr6.js +1 -0
  111. package/dist/assets/textMateThemeFromAppTheme-CHo2fCgW.js +1 -0
  112. package/dist/assets/tr-Dr-oJ22L.js +7 -0
  113. package/dist/assets/uk-9Nx83UcI.js +16 -0
  114. package/dist/assets/useAppFontEffects-khZXpFL_.js +7333 -0
  115. package/dist/assets/useInlineCommentController-DkQ_gqpn.js +2 -0
  116. package/dist/assets/useRootScrollLock-DdvHf9Pt.js +2 -0
  117. package/dist/assets/{vendor-base-ui-BY_5qla_.js → vendor-base-ui-CsXYnR5c.js} +1 -1
  118. package/dist/assets/{vendor-codemirror-language-data-DWA1bm1F.js → vendor-codemirror-language-data-CdzUmUyZ.js} +2 -2
  119. package/dist/assets/vendor-framer-motion-Bq3iTZ6r.js +1 -0
  120. package/dist/assets/vendor-katex-Cp579UoJ.css +1 -0
  121. package/dist/assets/{vendor-motion-dom-D_o3BTI3.js → vendor-motion-dom-DcCgeG69.js} +1 -1
  122. package/dist/assets/{vendor-remixicon-react-Dil0zKKT.js → vendor-remixicon-react-BDmGmFCA.js} +1 -1
  123. package/dist/assets/vendor-strip-json-comments-5dJlOkP1.js +4 -0
  124. package/dist/assets/{vendor-tanstack-react-virtual-g05Cx3z9.js → vendor-tanstack-react-virtual-ClYN8CzB.js} +1 -1
  125. package/dist/assets/{vendor-tanstack-virtual-core-Dubg10g5.js → vendor-tanstack-virtual-core-BewVQryB.js} +1 -1
  126. package/dist/assets/{vendor-zod-B6551dwG.js → vendor-zod-CgAdXWZO.js} +4 -4
  127. package/dist/assets/{web-components-B_Z64So5.js → web-components-B8IcVQAA.js} +2 -2
  128. package/dist/assets/zh-CN-Bxy_Hj3r.js +16 -0
  129. package/dist/assets/zh-TW-0BB4gpHM.js +16 -0
  130. package/dist/index.html +6 -4
  131. package/dist/mini-chat.html +6 -4
  132. package/dist/mobile.html +6 -4
  133. package/package.json +12 -9
  134. package/server/built-in-extensions/registry.json +4 -0
  135. package/server/index.d.ts +2 -0
  136. package/server/index.js +44 -10
  137. package/server/lib/agent-tool/DOCUMENTATION.md +17 -4
  138. package/server/lib/agent-tool/runtime.js +62 -15
  139. package/server/lib/agent-tool/runtime.test.js +88 -2
  140. package/server/lib/changelog/update-notes.js +2 -1
  141. package/server/lib/changelog/update-notes.test.js +19 -0
  142. package/server/lib/event-stream/DOCUMENTATION.md +23 -0
  143. package/server/lib/event-stream/delta-coalescer.js +0 -0
  144. package/server/lib/event-stream/delta-coalescer.test.js +292 -0
  145. package/server/lib/event-stream/global-hub.js +53 -23
  146. package/server/lib/event-stream/global-hub.test.js +160 -0
  147. package/server/lib/event-stream/global-ws-bridge.js +1 -0
  148. package/server/lib/event-stream/index.js +4 -0
  149. package/server/lib/fs/DOCUMENTATION.md +10 -1
  150. package/server/lib/fs/git-process.test.js +77 -0
  151. package/server/lib/fs/routes.js +58 -5
  152. package/server/lib/fs/routes.test.js +116 -0
  153. package/server/lib/fs/search.js +2 -1
  154. package/server/lib/git/DOCUMENTATION.md +20 -5
  155. package/server/lib/git/routes.js +16 -3
  156. package/server/lib/git/serial-refresh.js +93 -0
  157. package/server/lib/git/serial-refresh.test.js +112 -0
  158. package/server/lib/git/service.js +429 -70
  159. package/server/lib/git/service.test.js +418 -0
  160. package/server/lib/github/pr-status.js +5 -5
  161. package/server/lib/github/pr-status.test.js +1 -1
  162. package/server/lib/github/routes.js +4 -4
  163. package/server/lib/guests/DOCUMENTATION.md +68 -0
  164. package/server/lib/guests/auth-store.js +184 -0
  165. package/server/lib/guests/auth-store.test.js +112 -0
  166. package/server/lib/guests/background.test.js +83 -0
  167. package/server/lib/guests/builtins.js +34 -0
  168. package/server/lib/guests/builtins.test.js +174 -0
  169. package/server/lib/guests/catalog.js +477 -0
  170. package/server/lib/guests/catalog.test.js +390 -0
  171. package/server/lib/guests/clone.js +297 -0
  172. package/server/lib/guests/extract-zip.js +136 -0
  173. package/server/lib/guests/extract-zip.test.js +109 -0
  174. package/server/lib/guests/files.js +308 -0
  175. package/server/lib/guests/files.test.js +262 -0
  176. package/server/lib/guests/grant-scope.js +81 -0
  177. package/server/lib/guests/grant-scope.test.js +75 -0
  178. package/server/lib/guests/host-session.js +73 -0
  179. package/server/lib/guests/host-session.test.js +30 -0
  180. package/server/lib/guests/html-styles.js +6 -0
  181. package/server/lib/guests/html-styles.test.js +45 -0
  182. package/server/lib/guests/html-tokens.js +73 -0
  183. package/server/lib/guests/html-tokens.test.js +53 -0
  184. package/server/lib/guests/install.js +406 -0
  185. package/server/lib/guests/install.test.js +338 -0
  186. package/server/lib/guests/oauth.js +501 -0
  187. package/server/lib/guests/oauth.test.js +481 -0
  188. package/server/lib/guests/persist.js +336 -0
  189. package/server/lib/guests/persist.test.js +288 -0
  190. package/server/lib/guests/request.js +112 -0
  191. package/server/lib/guests/request.test.js +206 -0
  192. package/server/lib/guests/routes.js +838 -0
  193. package/server/lib/guests/service.js +538 -0
  194. package/server/lib/guests/service.test.js +277 -0
  195. package/server/lib/guests/sockets.js +129 -0
  196. package/server/lib/guests/sockets.test.js +110 -0
  197. package/server/lib/guests/ssh-install.test.js +188 -0
  198. package/server/lib/guests/storage.js +68 -0
  199. package/server/lib/guests/storage.test.js +59 -0
  200. package/server/lib/guests/updates.js +294 -0
  201. package/server/lib/guests/updates.test.js +334 -0
  202. package/server/lib/guests/upload.js +50 -0
  203. package/server/lib/guests/upload.test.js +131 -0
  204. package/server/lib/linear/DOCUMENTATION.md +1 -1
  205. package/server/lib/message-queue/DOCUMENTATION.md +10 -1
  206. package/server/lib/message-queue/runtime.js +21 -1
  207. package/server/lib/message-queue/runtime.test.js +52 -5
  208. package/server/lib/notifications/routes.js +5 -0
  209. package/server/lib/openchamber-control/DOCUMENTATION.md +6 -0
  210. package/server/lib/openchamber-sessions/routes.js +62 -29
  211. package/server/lib/openchamber-sessions/routes.test.js +96 -0
  212. package/server/lib/opencode/DOCUMENTATION.md +55 -1
  213. package/server/lib/opencode/bootstrap-runtime.js +1 -0
  214. package/server/lib/opencode/core-routes.js +39 -1
  215. package/server/lib/opencode/feature-routes-runtime.js +15 -0
  216. package/server/lib/opencode/lifecycle-process.test.js +84 -0
  217. package/server/lib/opencode/lifecycle.js +54 -67
  218. package/server/lib/opencode/openchamber-routes.js +72 -14
  219. package/server/lib/opencode/openchamber-routes.test.js +71 -3
  220. package/server/lib/opencode/session-runtime.js +68 -0
  221. package/server/lib/opencode/session-runtime.test.js +43 -0
  222. package/server/lib/opencode/settings-helpers.js +8 -0
  223. package/server/lib/opencode/settings-helpers.test.js +13 -1
  224. package/server/lib/opencode/settings-normalization-runtime.js +2 -0
  225. package/server/lib/opencode/settings-normalization-runtime.test.js +13 -0
  226. package/server/lib/opencode/settings-registry.json +15 -0
  227. package/server/lib/opencode/shutdown-runtime.js +3 -0
  228. package/server/lib/opencode/shutdown-runtime.test.js +24 -0
  229. package/server/lib/opencode/theme-archive.js +53 -0
  230. package/server/lib/opencode/theme-catalog.js +171 -0
  231. package/server/lib/opencode/theme-catalog.test.js +125 -0
  232. package/server/lib/opencode/theme-import.test.js +144 -0
  233. package/server/lib/opencode/theme-runtime.js +100 -28
  234. package/server/lib/opencode/theme-runtime.test.js +15 -0
  235. package/server/lib/permission-auto-accept/DOCUMENTATION.md +8 -0
  236. package/server/lib/permission-auto-accept/runtime.js +13 -0
  237. package/server/lib/permission-auto-accept/runtime.test.js +37 -1
  238. package/server/lib/projects/project-config.js +2 -2
  239. package/server/lib/quota/DOCUMENTATION.md +0 -1
  240. package/server/lib/quota/providers/index.js +0 -7
  241. package/server/lib/realtime-proxy-terminal.test.js +150 -0
  242. package/server/lib/realtime-proxy.js +2 -0
  243. package/server/lib/routing/DOCUMENTATION.md +83 -0
  244. package/server/lib/routing/defaults.js +98 -0
  245. package/server/lib/routing/feature-flag.js +11 -0
  246. package/server/lib/routing/history.js +34 -0
  247. package/server/lib/routing/jev.js +98 -0
  248. package/server/lib/routing/routes.http.test.js +100 -0
  249. package/server/lib/routing/routes.js +81 -0
  250. package/server/lib/routing/runtime.js +217 -0
  251. package/server/lib/routing/runtime.test.js +188 -0
  252. package/server/lib/routing/store.js +249 -0
  253. package/server/lib/routing/store.test.js +96 -0
  254. package/server/lib/scheduled-tasks/runtime.js +2 -2
  255. package/server/lib/scheduled-tasks/runtime.test.js +14 -0
  256. package/server/lib/security/request-security.js +9 -5
  257. package/server/lib/security/request-security.test.js +37 -0
  258. package/server/lib/small-model/DOCUMENTATION.md +14 -2
  259. package/server/lib/small-model/call.js +37 -6
  260. package/server/lib/small-model/call.test.js +182 -0
  261. package/server/lib/terminal/DOCUMENTATION.md +23 -2
  262. package/server/lib/terminal/runtime.js +27 -5
  263. package/server/lib/terminal/runtime.test.js +67 -0
  264. package/server/lib/terminal/shutdown.js +106 -0
  265. package/server/lib/terminal/shutdown.test.js +84 -0
  266. package/server/lib/tts/service.test.js +78 -0
  267. package/server/lib/ui-auth/DOCUMENTATION.md +8 -0
  268. package/server/lib/ui-auth/session-cookie.js +51 -0
  269. package/server/lib/ui-auth/session-cookie.test.js +46 -0
  270. package/server/lib/ui-auth/ui-auth.js +56 -17
  271. package/server/lib/ui-auth/ui-auth.test.js +96 -0
  272. package/dist/assets/DiffView-CyLmb-wF.js +0 -4
  273. package/dist/assets/DirtyBranchSwitchDialog-pu5kcoir.js +0 -1
  274. package/dist/assets/FilesView-WtJB0y_l.js +0 -13
  275. package/dist/assets/GitView-DkNrV0BK.js +0 -6
  276. package/dist/assets/LinearIssuesView-B0H0Otii.js +0 -1
  277. package/dist/assets/MarkdownRendererImpl-DSqVN2d8.js +0 -12
  278. package/dist/assets/PierreDiffViewer-Bsq9z-sw.js +0 -161
  279. package/dist/assets/PlanView-CAFziKH5.js +0 -5
  280. package/dist/assets/SettingsView-BRittavZ.js +0 -28
  281. package/dist/assets/ToolOutputDialog-B0uYaJio.js +0 -15
  282. package/dist/assets/appThemeRegistry-BK0dHKa6.js +0 -1
  283. package/dist/assets/de-c7CYLCAW.js +0 -10
  284. package/dist/assets/es-BKAVPQmQ.js +0 -16
  285. package/dist/assets/fr-Bj1glqfV.js +0 -14
  286. package/dist/assets/index-BYFyOu_D.css +0 -1
  287. package/dist/assets/index-BfwRClDe.js +0 -40
  288. package/dist/assets/ja-5jwSIbK0.js +0 -16
  289. package/dist/assets/ko-BaDbg-Eb.js +0 -16
  290. package/dist/assets/main-CGG2_uHq.js +0 -2
  291. package/dist/assets/main-CcrSaL4J.js +0 -930
  292. package/dist/assets/markdownCore-DsmQr3bt.js +0 -5
  293. package/dist/assets/miniChat-DEaAhP4b.js +0 -2
  294. package/dist/assets/mobile-BC3rsvv0.js +0 -2
  295. package/dist/assets/pl-BFKVBDFu.js +0 -16
  296. package/dist/assets/pt-BR-qKfHvkDL.js +0 -16
  297. package/dist/assets/registerCustomTheme-BBXUCRnG.js +0 -1
  298. package/dist/assets/renderElectronMiniChatApp-CR9d1Mr0.js +0 -2
  299. package/dist/assets/renderMobileApp-Da5dwobZ.js +0 -25
  300. package/dist/assets/runtimeEndpointReset-CLYVRw2H.js +0 -41
  301. package/dist/assets/shikiHighlight-D1Z9G58W.js +0 -1
  302. package/dist/assets/tr-DYXPoEDG.js +0 -7
  303. package/dist/assets/uk-CwAoloR8.js +0 -16
  304. package/dist/assets/useAppFontEffects-DeStGcUT.js +0 -7282
  305. package/dist/assets/useGitComparison-CpxioduU.js +0 -1
  306. package/dist/assets/useInlineCommentController-gmUnJtrb.js +0 -2
  307. package/dist/assets/useRootScrollLock--a3cPz8s.js +0 -1
  308. package/dist/assets/vendor-framer-motion-livSKyyV.js +0 -1
  309. package/dist/assets/zh-CN-D9MG0lqF.js +0 -16
  310. package/dist/assets/zh-TW-1HNK7shh.js +0 -16
  311. package/server/lib/quota/providers/crof.js +0 -96
  312. package/server/lib/quota/providers/crof.test.js +0 -98
  313. /package/dist/assets/{vendor-katex-k3Ppq1Ha.js → vendor-katex-CHD9BdDO.js} +0 -0
@@ -1,4 +1,4 @@
1
- import{r as u,j as s,f as G}from"./vendor-react-BUCujlKS.js";import{f as ee,l as ft,I as j,dG as xt,B,h as J,au as rs,a9 as kt,aa as bt,ab as wt,aw as ns,af as as,ag as is,J as we,ah as ls,Y as cs,H as us,ao as it,ap as lt,ar as ct,as as ut,bW as dt,at as he,bc as pt,o as ds}from"./useAppFontEffects-DeStGcUT.js";import{f as ps,u as hs,b as ms,a as gs,c as fs,B as xs,C as ks,P as ht}from"./patchFileDiff-B7LjppSS.js";import{h as vt,q as bs,u as me,dz as ws,dy as vs}from"./index-BfwRClDe.js";import{u as L,W as ys}from"./main-CcrSaL4J.js";import{P as js}from"./PierreDiffViewer-Bsq9z-sw.js";import{e as Ss,d as Ns}from"./runtimeEndpointReset-CLYVRw2H.js";import"./vendor-scheduler-7OC5HNn7.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-vite-runtime-DD1OZmLC.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-base-ui-BY_5qla_.js";import"./vendor-floating-ui-utils-D6FqdtJt.js";import"./vendor-floating-ui-react-dom-DxYCWdHj.js";import"./vendor-floating-ui-dom-BTvzWks8.js";import"./vendor-floating-ui-core-PuGzNPnN.js";import"./vendor-use-sync-external-store-D6wYuSt-.js";import"./vendor-class-variance-authority-5VPnzWs2.js";import"./vendor-clsx-B-dksMZM.js";import"./vendor-dnd-kit-core-BZknOX2w.js";import"./vendor-dnd-kit-utilities-B_MdXhJC.js";import"./vendor-dnd-kit-accessibility-BHxJPORy.js";import"./vendor-dnd-kit-sortable-CsEagZ81.js";import"./vendor-framer-motion-livSKyyV.js";import"./vendor-motion-dom-D_o3BTI3.js";import"./vendor-motion-utils-BGh8QBgx.js";import"./vendor-tanstack-react-virtual-g05Cx3z9.js";import"./vendor-tanstack-virtual-core-Dubg10g5.js";import"./contextPanelEmbeddedChat-CirXEPJq.js";import"./vendor-sonner-DFyL3AvE.js";import"./vendor-cmdk-DgLInKvT.js";import"./vendor-radix-ui-react-dialog-B94Bt2qq.js";import"./vendor-radix-ui-primitive-Dc_FVRD7.js";import"./vendor-radix-ui-react-compose-refs-DcAh5WdT.js";import"./vendor-radix-ui-react-context-Czxm7Z62.js";import"./vendor-radix-ui-react-id-f5BLKEVw.js";import"./vendor-radix-ui-react-use-layout-effect-D_3IhJdJ.js";import"./vendor-radix-ui-react-use-controllable-state-BFT5YmkA.js";import"./vendor-radix-ui-react-dismissable-layer-D7kXcwgJ.js";import"./vendor-radix-ui-react-primitive-DhVoX9SD.js";import"./vendor-radix-ui-react-slot-BQgQOasS.js";import"./vendor-radix-ui-react-use-callback-ref-BZPnuXAC.js";import"./vendor-radix-ui-react-use-escape-keydown-oph88g-F.js";import"./vendor-radix-ui-react-focus-scope-CiaxW4dD.js";import"./vendor-radix-ui-react-portal-BMJYHWck.js";import"./vendor-radix-ui-react-presence-CNxf-uq4.js";import"./vendor-radix-ui-react-focus-guards-B6qJXYua.js";import"./vendor-react-remove-scroll-DO7dCTnK.js";import"./vendor-tslib-De9GV7Vy.js";import"./vendor-react-remove-scroll-bar-BcFYyj3E.js";import"./vendor-react-style-singleton-q6EMHnwf.js";import"./vendor-get-nonce-C-Z93AgS.js";import"./vendor-use-sidecar-zDC0RhA3.js";import"./vendor-use-callback-ref-D3RC8gqK.js";import"./vendor-aria-hidden-DvXkyWUv.js";import"./vendor-codemirror-language-BgPj_McA.js";import"./vendor-lezer-common-B3-cUCR_.js";import"./vendor-codemirror-state-C9awkmn-.js";import"./vendor-marijn-find-cluster-break-DXwl3gUT.js";import"./vendor-codemirror-view-CiLROUVV.js";import"./vendor-style-mod-NZ5MEPvj.js";import"./vendor-w3c-keyname-Vcq4gwWv.js";import"./vendor-crelt-C8TCjufn.js";import"./vendor-lezer-highlight-CDMHUZ74.js";import"./vendor-codemirror-lang-javascript-Cc2ZYbgX.js";import"./vendor-lezer-javascript-D7Tj24ot.js";import"./vendor-lezer-lr-bhwg1HMg.js";import"./vendor-codemirror-autocomplete-DzPz9Wgq.js";import"./vendor-codemirror-lang-json-CMBS2tG9.js";import"./vendor-lezer-json-Iaex0UN-.js";import"./vendor-codemirror-lang-css-O0cZX78y.js";import"./vendor-lezer-css-C5xB6jxd.js";import"./vendor-codemirror-lang-html-CfgK872x.js";import"./vendor-lezer-html-C0I1p52t.js";import"./vendor-codemirror-lang-markdown-BPGOH9ye.js";import"./vendor-lezer-markdown-C6g-d6P3.js";import"./vendor-codemirror-language-data-DWA1bm1F.js";import"./vendor-codemirror-lang-python-HahnQaAS.js";import"./vendor-lezer-python-CvuFxeZl.js";import"./vendor-codemirror-commands-B7H_j0iU.js";import"./vendor-legendapp-list-BuBPBC3R.js";import"./vendor-zod-B6551dwG.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";import"./VirtualizedFileDiff-z3_H74UR.js";import"./web-components-B_Z64So5.js";import"./computeVirtualFileMetrics-Bdazp9Qo.js";import"./vendor-shiki-Bbf2GEcE.js";import"./vendor-shikijs-core-CGM_jqPK.js";import"./vendor-shikijs-types-CPSbSeK6.js";import"./vendor-shikijs-vscode-textmate-BgLrS_2D.js";import"./vendor-hast-util-to-html-BKBhbTDb.js";import"./vendor-html-void-elements-CkdplsNl.js";import"./vendor-property-information-rJCbAzvX.js";import"./vendor-zwitch-C2o2j-tx.js";import"./vendor-stringify-entities-CsH1VEn9.js";import"./vendor-character-entities-legacy-BpoLgcEt.js";import"./vendor-character-entities-html4-D7taRCQ7.js";import"./vendor-ccount-c2V3InAJ.js";import"./vendor-comma-separated-tokens-D8TqSuIK.js";import"./vendor-space-separated-tokens-DD3iYX1K.js";import"./vendor-hast-util-whitespace-D4Wp6AEg.js";import"./vendor-shikijs-engine-oniguruma-DPWuIF1G.js";import"./themeResolver-BmJyTmjJ.js";import"./vendor-pierre-theming-C6Z4M5_u.js";import"./vendor-shikijs-engine-javascript-Cme4830A.js";import"./vendor-oniguruma-to-es-DLBnFDCE.js";import"./vendor-oniguruma-parser-C0D4_9rT.js";import"./vendor-regex-BBWcyTkg.js";import"./vendor-regex-utilities-2BQyy0xI.js";import"./vendor-regex-recursion-JU4mF-dD.js";import"./vendor-shikijs-transformers-CZWsLLKm.js";import"./isDiffPlainText-BvKH712-.js";import"./vendor-diff-C3JhlQdm.js";import"./vendor-opencode-sdk-BJ73u-bH.js";import"./useRootScrollLock--a3cPz8s.js";import"./scheduledTasksApi-hceovDei.js";import"./vendor-cron-parser-CUcP7OfX.js";import"./vendor-luxon-BZ0puJYg.js";import"./Virtualizer-D_a8gKmg.js";import"./useInlineCommentController-gmUnJtrb.js";import"./appThemeRegistry-BK0dHKa6.js";import"./registerCustomTheme-BBXUCRnG.js";const Cs=n=>{if(!n?.walkthrough)return null;const t=new Map(n.hunks.map(a=>[a.id,a])),e=new Set,o=[],l=[];for(const[a,h]of n.walkthrough.chapters.entries()){const c=[];for(const g of h.stops){const m=[],p=[];for(const i of g.hunkIds){const v=t.get(i);v?(m.push(v),e.add(i)):p.push(i)}const f={stop:g,chapter:h,chapterIndex:a,position:o.length+1,hunks:m,missingHunkIds:p,isStale:p.length>0};o.push(f),c.push(f)}l.push({chapter:h,stops:c})}return{walkthrough:n.walkthrough,stops:o,chapters:l,uncoveredHunks:n.hunks.filter(a=>!e.has(a.id)),staleStopCount:o.filter(a=>a.isStale).length,isStale:o.some(a=>a.isStale)}},Rs=n=>{const t=new Map;for(const e of n){const o=t.get(e.path);if(o){o.added+=e.added,o.deleted+=e.deleted;continue}t.set(e.path,{path:e.path,added:e.added,deleted:e.deleted})}return[...t.values()]},yt=n=>{const t=[];for(const e of n){const o=t.at(-1);if(o&&o.path===e.path){o.hunks.push(e);continue}t.push({path:e.path,hunks:[e]})}return t},Ms=n=>{if(n.length===0)return"";if(n.length===1)return n[0].patch;const t=n[0].patch,e=t.indexOf(`
1
+ import{r as u,j as s,f as G}from"./vendor-react-BUCujlKS.js";import{f as ee,l as ft,I as j,e3 as xt,B,h as V,av as rs,aa as kt,ab as bt,ac as vt,ax as ns,ag as as,ah as is,K as ve,ai as ls,Z as cs,J as us,ap as it,aq as lt,as as ct,at as ut,c9 as dt,au as he,bf as pt,o as ds}from"./useAppFontEffects-khZXpFL_.js";import{f as ps,u as hs,b as ms,a as gs,c as fs,B as xs,C as ks,P as ht}from"./patchFileDiff-Bsba8KFp.js";import{h as wt,t as bs,u as me,dK as vs,dJ as ws}from"./index-Cbci4i1W.js";import{u as L,W as ys}from"./main-CZALtVek.js";import{P as js}from"./PierreDiffViewer-DyxZVVVR.js";import{i as Ss,f as Ns}from"./runtimeEndpointReset-DhlHCn-2.js";import"./vendor-scheduler-7OC5HNn7.js";import"./vendor-zod-CgAdXWZO.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-vite-runtime-DD1OZmLC.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-base-ui-CsXYnR5c.js";import"./vendor-floating-ui-utils-D6FqdtJt.js";import"./vendor-floating-ui-react-dom-DxYCWdHj.js";import"./vendor-floating-ui-dom-BTvzWks8.js";import"./vendor-floating-ui-core-PuGzNPnN.js";import"./vendor-use-sync-external-store-D6wYuSt-.js";import"./vendor-class-variance-authority-5VPnzWs2.js";import"./vendor-clsx-B-dksMZM.js";import"./vendor-dnd-kit-core-BZknOX2w.js";import"./vendor-dnd-kit-utilities-B_MdXhJC.js";import"./vendor-dnd-kit-accessibility-BHxJPORy.js";import"./vendor-dnd-kit-sortable-CsEagZ81.js";import"./vendor-framer-motion-Bq3iTZ6r.js";import"./vendor-motion-dom-DcCgeG69.js";import"./vendor-motion-utils-BGh8QBgx.js";import"./vendor-tanstack-react-virtual-ClYN8CzB.js";import"./vendor-tanstack-virtual-core-BewVQryB.js";import"./contextPanelEmbeddedChat-CirXEPJq.js";import"./vendor-sonner-DFyL3AvE.js";import"./vendor-cmdk-DgLInKvT.js";import"./vendor-radix-ui-react-dialog-B94Bt2qq.js";import"./vendor-radix-ui-primitive-Dc_FVRD7.js";import"./vendor-radix-ui-react-compose-refs-DcAh5WdT.js";import"./vendor-radix-ui-react-context-Czxm7Z62.js";import"./vendor-radix-ui-react-id-f5BLKEVw.js";import"./vendor-radix-ui-react-use-layout-effect-D_3IhJdJ.js";import"./vendor-radix-ui-react-use-controllable-state-BFT5YmkA.js";import"./vendor-radix-ui-react-dismissable-layer-D7kXcwgJ.js";import"./vendor-radix-ui-react-primitive-DhVoX9SD.js";import"./vendor-radix-ui-react-slot-BQgQOasS.js";import"./vendor-radix-ui-react-use-callback-ref-BZPnuXAC.js";import"./vendor-radix-ui-react-use-escape-keydown-oph88g-F.js";import"./vendor-radix-ui-react-focus-scope-CiaxW4dD.js";import"./vendor-radix-ui-react-portal-BMJYHWck.js";import"./vendor-radix-ui-react-presence-CNxf-uq4.js";import"./vendor-radix-ui-react-focus-guards-B6qJXYua.js";import"./vendor-react-remove-scroll-DO7dCTnK.js";import"./vendor-tslib-De9GV7Vy.js";import"./vendor-react-remove-scroll-bar-BcFYyj3E.js";import"./vendor-react-style-singleton-q6EMHnwf.js";import"./vendor-get-nonce-C-Z93AgS.js";import"./vendor-use-sidecar-zDC0RhA3.js";import"./vendor-use-callback-ref-D3RC8gqK.js";import"./vendor-aria-hidden-DvXkyWUv.js";import"./vendor-codemirror-language-BgPj_McA.js";import"./vendor-lezer-common-B3-cUCR_.js";import"./vendor-codemirror-state-C9awkmn-.js";import"./vendor-marijn-find-cluster-break-DXwl3gUT.js";import"./vendor-codemirror-view-CiLROUVV.js";import"./vendor-style-mod-NZ5MEPvj.js";import"./vendor-w3c-keyname-Vcq4gwWv.js";import"./vendor-crelt-C8TCjufn.js";import"./vendor-lezer-highlight-CDMHUZ74.js";import"./vendor-codemirror-lang-javascript-Cc2ZYbgX.js";import"./vendor-lezer-javascript-D7Tj24ot.js";import"./vendor-lezer-lr-bhwg1HMg.js";import"./vendor-codemirror-autocomplete-DzPz9Wgq.js";import"./vendor-codemirror-lang-json-CMBS2tG9.js";import"./vendor-lezer-json-Iaex0UN-.js";import"./vendor-codemirror-lang-css-O0cZX78y.js";import"./vendor-lezer-css-C5xB6jxd.js";import"./vendor-codemirror-lang-html-CfgK872x.js";import"./vendor-lezer-html-C0I1p52t.js";import"./vendor-codemirror-lang-markdown-BPGOH9ye.js";import"./vendor-lezer-markdown-C6g-d6P3.js";import"./vendor-codemirror-language-data-CdzUmUyZ.js";import"./vendor-codemirror-lang-python-HahnQaAS.js";import"./vendor-lezer-python-CvuFxeZl.js";import"./vendor-codemirror-commands-B7H_j0iU.js";import"./vendor-legendapp-list-BuBPBC3R.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";import"./VirtualizedFileDiff-0pyr_mHY.js";import"./web-components-B8IcVQAA.js";import"./computeVirtualFileMetrics-DxTBMuu-.js";import"./vendor-shiki-Bbf2GEcE.js";import"./vendor-shikijs-core-CGM_jqPK.js";import"./vendor-shikijs-types-CPSbSeK6.js";import"./vendor-shikijs-vscode-textmate-BgLrS_2D.js";import"./vendor-hast-util-to-html-BKBhbTDb.js";import"./vendor-html-void-elements-CkdplsNl.js";import"./vendor-property-information-rJCbAzvX.js";import"./vendor-zwitch-C2o2j-tx.js";import"./vendor-stringify-entities-CsH1VEn9.js";import"./vendor-character-entities-legacy-BpoLgcEt.js";import"./vendor-character-entities-html4-D7taRCQ7.js";import"./vendor-ccount-c2V3InAJ.js";import"./vendor-comma-separated-tokens-D8TqSuIK.js";import"./vendor-space-separated-tokens-DD3iYX1K.js";import"./vendor-hast-util-whitespace-D4Wp6AEg.js";import"./vendor-shikijs-engine-oniguruma-DPWuIF1G.js";import"./themeResolver-BmJyTmjJ.js";import"./vendor-pierre-theming-C6Z4M5_u.js";import"./vendor-shikijs-engine-javascript-Cme4830A.js";import"./vendor-oniguruma-to-es-DLBnFDCE.js";import"./vendor-oniguruma-parser-C0D4_9rT.js";import"./vendor-regex-BBWcyTkg.js";import"./vendor-regex-utilities-2BQyy0xI.js";import"./vendor-regex-recursion-JU4mF-dD.js";import"./vendor-shikijs-transformers-CZWsLLKm.js";import"./isDiffPlainText-D7FkBMP6.js";import"./vendor-diff-C3JhlQdm.js";import"./vendor-opencode-sdk-BJ73u-bH.js";import"./vendor-katex-CHD9BdDO.js";import"./useRootScrollLock-DdvHf9Pt.js";import"./scheduledTasksApi-DzjbLd8P.js";import"./PluginPane-B4tKno2h.js";import"./vendor-cron-parser-CUcP7OfX.js";import"./vendor-luxon-BZ0puJYg.js";import"./Virtualizer-D_a8gKmg.js";import"./useInlineCommentController-DkQ_gqpn.js";import"./appThemeRegistry-BuUKhbYQ.js";import"./textMateThemeFromAppTheme-CHo2fCgW.js";import"./GuestAttachDialog-D3S0Rjic.js";const Cs=n=>{if(!n?.walkthrough)return null;const t=new Map(n.hunks.map(a=>[a.id,a])),e=new Set,o=[],l=[];for(const[a,h]of n.walkthrough.chapters.entries()){const c=[];for(const g of h.stops){const m=[],p=[];for(const i of g.hunkIds){const w=t.get(i);w?(m.push(w),e.add(i)):p.push(i)}const f={stop:g,chapter:h,chapterIndex:a,position:o.length+1,hunks:m,missingHunkIds:p,isStale:p.length>0};o.push(f),c.push(f)}l.push({chapter:h,stops:c})}return{walkthrough:n.walkthrough,stops:o,chapters:l,uncoveredHunks:n.hunks.filter(a=>!e.has(a.id)),staleStopCount:o.filter(a=>a.isStale).length,isStale:o.some(a=>a.isStale)}},Rs=n=>{const t=new Map;for(const e of n){const o=t.get(e.path);if(o){o.added+=e.added,o.deleted+=e.deleted;continue}t.set(e.path,{path:e.path,added:e.added,deleted:e.deleted})}return[...t.values()]},yt=n=>{const t=[];for(const e of n){const o=t.at(-1);if(o&&o.path===e.path){o.hunks.push(e);continue}t.push({path:e.path,hunks:[e]})}return t},Ms=n=>{if(n.length===0)return"";if(n.length===1)return n[0].patch;const t=n[0].patch,e=t.indexOf(`
2
2
  @@`);if(e===-1)return t;const o=t.slice(0,e),l=n.map(a=>{const h=a.patch.indexOf(`
3
3
  @@`);return h===-1?"":a.patch.slice(h+1)});return`${o}
4
- ${l.join("")}`},Is=n=>n?`${n.providerID}/${n.modelID}`:"",Ts=({reason:n,model:t,requiredChars:e,availableChars:o,onRetry:l})=>{const{t:a}=ee(),h=ft(k=>k.modelsMetadata),[c,g]=u.useState(void 0),[m,p]=u.useState(!1),f=n==="context-too-small"||n==="structured-output-unsupported"||n==="output-exhausted";u.useEffect(()=>{if(!f||c!==void 0)return;let k=!1;return(async()=>{try{const x=await vt("/api/small-model",{method:"GET",headers:{Accept:"application/json"}});if(!x.ok)return;const M=await x.json().catch(()=>null);!k&&Array.isArray(M?.authenticatedProviders)&&g(M.authenticatedProviders.filter(I=>typeof I=="string"))}catch{}})(),()=>{k=!0}},[f,c]);const i=u.useCallback(async(k,x)=>{if(!k||!x||m)return;const M=`${k}/${x}`;p(!0);try{await bs({walkthroughModelOverride:M}),l()}catch(I){console.warn("Failed to save small model override:",I)}finally{p(!1)}},[l,m]),v=u.useCallback((k,x)=>h.get(`${k}/${x}`)?.structured_output!==!1,[h]),b=Is(t),w=()=>{if(n==="no-model")return a("walkthrough.blocked.noModel.description");if(n==="empty-diff")return a("walkthrough.blocked.emptyDiff.description");if(n==="only-generated")return a("walkthrough.blocked.onlyGenerated.description");if(n==="server-unsupported")return a("walkthrough.blocked.serverUnsupported.description");if(n==="output-exhausted")return b?a("walkthrough.blocked.outputExhausted.description",{model:b}):a("walkthrough.blocked.outputExhausted.descriptionUnknownModel");if(n==="structured-output-unsupported")return b?a("walkthrough.blocked.structuredOutput.description",{model:b}):a("walkthrough.blocked.structuredOutput.descriptionUnknownModel");const k=Math.ceil((e??0)/1e3),x=Math.ceil((o??0)/1e3);return b?a("walkthrough.blocked.contextTooSmall.description",{model:b,required:k,available:x}):a("walkthrough.blocked.contextTooSmall.descriptionUnknownModel",{required:k,available:x})},y=()=>a(n==="no-model"?"walkthrough.blocked.noModel.title":n==="empty-diff"?"walkthrough.blocked.emptyDiff.title":n==="only-generated"?"walkthrough.blocked.onlyGenerated.title":n==="server-unsupported"?"walkthrough.blocked.serverUnsupported.title":n==="output-exhausted"?"walkthrough.blocked.outputExhausted.title":n==="structured-output-unsupported"?"walkthrough.blocked.structuredOutput.title":"walkthrough.blocked.contextTooSmall.title");return s.jsxs("div",{className:"flex flex-1 flex-col items-center justify-center gap-3 p-8 text-center",children:[s.jsx(j,{name:n==="empty-diff"||n==="only-generated"?"information":"error-warning",className:"size-6 text-muted-foreground"}),s.jsx("h3",{className:"typography-ui-label font-semibold text-foreground",children:y()}),s.jsx("p",{className:"typography-meta max-w-md text-muted-foreground",children:w()}),f&&s.jsxs("div",{className:"flex flex-col items-center gap-2 pt-2",children:[s.jsx("span",{className:"typography-micro text-muted-foreground",children:a("walkthrough.blocked.chooseModel")}),s.jsx(xt,{providerId:t?.providerID??"",modelId:t?.modelID??"",onChange:(k,x)=>{i(k,x)},allowedProviderIds:c??[],isModelAllowed:v})]}),(n==="empty-diff"||n==="only-generated"||n==="server-unsupported")&&s.jsx(B,{type:"button",variant:"outline",size:"sm",onClick:l,children:a("walkthrough.action.refresh")})]})},Ps=[{labelKey:"walkthrough.stage.collecting"},{labelKey:"walkthrough.stage.asking"},{labelKey:"walkthrough.stage.assembling"}],Es=n=>{const t=G.c(6),{progress:e}=n,{t:o}=ee(),{completedCount:l,activeIndex:a}=e;let h;t[0]!==a||t[1]!==l||t[2]!==o?(h=Ps.map((g,m)=>{const p=m<l,f=a===m;return s.jsxs("li",{className:"flex items-center gap-2",children:[s.jsx("span",{className:"flex size-4 shrink-0 items-center justify-center",children:p?s.jsx(j,{name:"check",className:"size-3.5 text-status-success"}):f?s.jsx(j,{name:"loader-4",className:"size-3.5 animate-spin text-[var(--status-info)]"}):s.jsx("span",{className:"size-1.5 rounded-full bg-surface-muted"})}),s.jsx("span",{className:J("typography-meta",f?"text-foreground":p?"text-muted-foreground":"text-muted-foreground/60"),children:o(g.labelKey)})]},g.labelKey)}),t[0]=a,t[1]=l,t[2]=o,t[3]=h):h=t[3];let c;return t[4]!==h?(c=s.jsx("ul",{className:"flex flex-col gap-2 text-left",children:h}),t[4]=h,t[5]=c):c=t[5],c},ae=["collecting","asking","assembling"],Oe=450,As=n=>n==="retrying"?ae.indexOf("asking"):n?ae.indexOf(n):-1,zs=(n,t)=>Math.min(n+1,t),Os=(n,t)=>{const e=G.c(17),[o,l]=u.useState(-1),a=u.useRef(0);let h;e[0]!==t||e[1]!==o||e[2]!==n?(h=t?Math.max(As(n),0):o<0?-1:ae.length,e[0]=t,e[1]=o,e[2]=n,e[3]=h):h=e[3];const c=h;let g,m;e[4]!==t||e[5]!==o||e[6]!==c?(g=()=>{if(c<=o){c<o&&t&&(l(c),a.current=Date.now());return}const k=Date.now()-a.current,x=()=>{a.current=Date.now(),l(I=>zs(I,c))};if(o<0||k>=Oe){x();return}const M=setTimeout(x,Oe-k);return()=>clearTimeout(M)},m=[t,o,c],e[4]=t,e[5]=o,e[6]=c,e[7]=g,e[8]=m):(g=e[7],m=e[8]),u.useEffect(g,m);let p,f;e[9]!==t||e[10]!==o?(p=()=>{if(t||o<ae.length)return;const k=setTimeout(()=>l(-1),Oe);return()=>clearTimeout(k)},f=[t,o],e[9]=t,e[10]=o,e[11]=p,e[12]=f):(p=e[11],f=e[12]),u.useEffect(p,f);const i=o>=ae.length,v=Math.max(0,Math.min(o,ae.length)),b=i||o<0?null:o,w=!t&&o>=0;let y;return e[13]!==v||e[14]!==b||e[15]!==w?(y={completedCount:v,activeIndex:b,holding:w},e[13]=v,e[14]=b,e[15]=w,e[16]=y):y=e[16],y},jt=u.memo(function(t){const e=G.c(11),{path:o,hunks:l,renderSideBySide:a,wrapLines:h}=t;let c;if(e[0]!==l||e[1]!==o){const f=Ms(l);c=f?ps(o,f):void 0,e[0]=l,e[1]=o,e[2]=c}else c=e[2];const g=c;if(!g)return null;let m;e[3]!==o?(m=rs(o)||"",e[3]=o,e[4]=m):m=e[4];let p;return e[5]!==g||e[6]!==o||e[7]!==a||e[8]!==m||e[9]!==h?(p=s.jsx(js,{original:"",modified:"",fileDiff:g,language:m,fileName:o,renderSideBySide:a,wrapLines:h,layout:"inline"}),e[5]=g,e[6]=o,e[7]=a,e[8]=m,e[9]=h,e[10]=p):p=e[10],p}),He=n=>`walkthrough-stop-${n}`,Hs={critical:"border border-[var(--interactive-border)] font-medium text-foreground",normal:"bg-surface-muted text-muted-foreground",context:"bg-surface-muted text-muted-foreground"},Ls=n=>{const t=G.c(22),{stopView:e}=n,{t:o}=ee(),{stop:l}=e;let a;t[0]!==e.position?(a=s.jsx("span",{className:"typography-micro flex h-5 min-w-5 shrink-0 items-center justify-center rounded-full bg-surface-muted px-1.5 tabular-nums text-muted-foreground",children:e.position}),t[0]=e.position,t[1]=a):a=t[1];let h;t[2]!==l.title?(h=s.jsx("h3",{className:"typography-ui-label font-semibold text-foreground",children:l.title}),t[2]=l.title,t[3]=h):h=t[3];let c;t[4]!==l.importance||t[5]!==o?(c=l.importance!=="normal"&&s.jsxs(kt,{children:[s.jsx(bt,{className:J("typography-micro flex h-5 items-center rounded px-1.5 leading-none",Hs[l.importance]),children:l.importance==="critical"?o("walkthrough.importance.critical"):o("walkthrough.importance.context")}),s.jsx(wt,{className:"max-w-64",children:s.jsx("p",{className:"typography-micro leading-tight",children:l.importance==="critical"?o("walkthrough.importance.criticalHint"):o("walkthrough.importance.contextHint")})})]}),t[4]=l.importance,t[5]=o,t[6]=c):c=t[6];let g;t[7]!==a||t[8]!==h||t[9]!==c?(g=s.jsxs("div",{className:"flex items-center gap-2",children:[a,h,c]}),t[7]=a,t[8]=h,t[9]=c,t[10]=g):g=t[10];let m;t[11]!==l.prose?(m=s.jsx("p",{className:"typography-body text-muted-foreground",children:l.prose}),t[11]=l.prose,t[12]=m):m=t[12];let p;t[13]!==e.hunks||t[14]!==e.isStale||t[15]!==e.missingHunkIds||t[16]!==o?(p=e.isStale&&s.jsxs("p",{className:"typography-meta flex items-center gap-1.5 text-status-warning",children:[s.jsx(j,{name:"error-warning",className:"size-3.5 shrink-0"}),e.hunks.length===0?o("walkthrough.stop.staleAll"):o("walkthrough.stop.stalePartial",{count:e.missingHunkIds.length})]}),t[13]=e.hunks,t[14]=e.isStale,t[15]=e.missingHunkIds,t[16]=o,t[17]=p):p=t[17];let f;return t[18]!==g||t[19]!==m||t[20]!==p?(f=s.jsxs("header",{className:"flex flex-col gap-2 px-4 pt-5 pb-3",children:[g,m,p]}),t[18]=g,t[19]=m,t[20]=p,t[21]=f):f=t[21],f},St=n=>{const t=G.c(2),{path:e}=n;let o;return t[0]!==e?(o=s.jsxs("div",{className:"sticky top-0 z-10 flex items-center gap-1.5 border-b border-[var(--interactive-border)]/35 bg-[var(--surface-elevated)]/90 px-4 py-1.5 backdrop-blur-md supports-[backdrop-filter]:bg-[var(--surface-elevated)]/80",children:[s.jsx(ns,{filePath:e,className:"size-3.5 shrink-0"}),s.jsx("span",{className:"typography-meta truncate font-mono text-foreground",children:e})]}),t[0]=e,t[1]=o):o=t[1],o},Ds=n=>{const t=G.c(11),{hunks:e,renderSideBySide:o,wrapLines:l}=n;let a;t[0]!==e?(a=yt(e),t[0]=e,t[1]=a):a=t[1];const h=a;let c;if(t[2]!==o||t[3]!==h||t[4]!==l){let m;t[6]!==o||t[7]!==l?(m=(p,f)=>s.jsxs("div",{children:[s.jsx(St,{path:p.path}),s.jsx(jt,{path:p.path,hunks:p.hunks,renderSideBySide:o,wrapLines:l})]},`${p.path}-${f}`),t[6]=o,t[7]=l,t[8]=m):m=t[8],c=h.map(m),t[2]=o,t[3]=h,t[4]=l,t[5]=c}else c=t[5];let g;return t[9]!==c?(g=s.jsx(s.Fragment,{children:c}),t[9]=c,t[10]=g):g=t[10],g},Bs=u.memo(function(t){const e=G.c(35),{view:o,activeStopId:l,scrollToStopId:a,onActiveStopChange:h,onScrollHandled:c,renderSideBySide:g,wrapLines:m}=t,{t:p}=ee(),f=u.useRef(null),[i,v]=u.useState(!1),b=u.useRef(null),w=u.useRef(null);let y,k;e[0]===Symbol.for("react.memo_cache_sentinel")?(y=()=>()=>{w.current!==null&&window.clearTimeout(w.current)},k=[],e[0]=y,e[1]=k):(y=e[0],k=e[1]),u.useEffect(y,k);let x,M;e[2]!==c||e[3]!==a?(x=()=>{if(!a)return;const R=document.getElementById(He(a));R&&(b.current=a,R.scrollIntoView({behavior:"auto",block:"start"}),w.current!==null&&window.clearTimeout(w.current),w.current=window.setTimeout(()=>{b.current=null,w.current=null},250)),c()},M=[a,c],e[2]=c,e[3]=a,e[4]=x,e[5]=M):(x=e[4],M=e[5]),u.useEffect(x,M);let I;e[6]!==h?(I=R=>{const T=R.filter(Ws).sort($s)[0];if(!T)return;const q=T.target.getAttribute("data-stop-id");if(!q)return;const X=b.current;if(X){q===X&&(b.current=null);return}h(q)},e[6]=h,e[7]=I):I=e[7];const te=I;let W,se;e[8]!==te||e[9]!==o.stops?(W=()=>{const R=f.current;if(!R)return;const T=new IntersectionObserver(te,{root:R,rootMargin:"0px 0px -70% 0px",threshold:0});for(const q of o.stops){const X=document.getElementById(He(q.stop.id));X&&T.observe(X)}return()=>T.disconnect()},se=[te,o.stops],e[8]=te,e[9]=o.stops,e[10]=W,e[11]=se):(W=e[10],se=e[11]),u.useEffect(W,se);let O;e[12]!==o.uncoveredHunks?(O=yt(o.uncoveredHunks),e[12]=o.uncoveredHunks,e[13]=O):O=e[13];const z=O;let H;if(e[14]!==l||e[15]!==g||e[16]!==p||e[17]!==o.stops||e[18]!==m){let R;e[20]!==l||e[21]!==g||e[22]!==p||e[23]!==m?(R=T=>s.jsxs("section",{id:He(T.stop.id),"data-stop-id":T.stop.id,className:J("border-b border-border/60",l===T.stop.id&&"bg-interactive-selection/5"),children:[s.jsx(Ls,{stopView:T}),T.hunks.length>0?s.jsx(Ds,{hunks:T.hunks,renderSideBySide:g,wrapLines:m}):s.jsx("p",{className:"typography-meta px-4 pb-4 text-muted-foreground",children:p("walkthrough.stop.noCode")})]},T.stop.id),e[20]=l,e[21]=g,e[22]=p,e[23]=m,e[24]=R):R=e[24],H=o.stops.map(R),e[14]=l,e[15]=g,e[16]=p,e[17]=o.stops,e[18]=m,e[19]=H}else H=e[19];let $;e[25]!==g||e[26]!==p||e[27]!==i||e[28]!==z||e[29]!==o.uncoveredHunks.length||e[30]!==m?($=o.uncoveredHunks.length>0&&s.jsxs("section",{className:"border-b border-border/60",children:[s.jsxs(B,{type:"button",variant:"ghost",className:"h-auto w-full justify-start gap-2 px-4 py-3",onClick:()=>v(Gs),"aria-expanded":i,children:[s.jsx(j,{name:i?"arrow-down-s":"arrow-right-s",className:"size-4 shrink-0"}),s.jsx("span",{className:"typography-ui-label text-muted-foreground",children:p("walkthrough.uncovered.title",{count:o.uncoveredHunks.length})})]}),!i&&s.jsx("p",{className:"typography-meta px-4 pb-3 pl-10 text-muted-foreground",children:p("walkthrough.uncovered.description")}),i&&z.map((R,T)=>s.jsxs("div",{children:[s.jsx(St,{path:R.path}),s.jsx(jt,{path:R.path,hunks:R.hunks,renderSideBySide:g,wrapLines:m})]},`${R.path}-${T}`))]}),e[25]=g,e[26]=p,e[27]=i,e[28]=z,e[29]=o.uncoveredHunks.length,e[30]=m,e[31]=$):$=e[31];let oe;return e[32]!==$||e[33]!==H?(oe=s.jsxs("div",{ref:f,className:"min-h-0 flex-1 overflow-y-auto","data-diff-virtual-root":!0,"data-diff-virtual-content":!0,children:[H,$]}),e[32]=$,e[33]=H,e[34]=oe):oe=e[34],oe});function Ws(n){return n.isIntersecting}function $s(n,t){return n.boundingClientRect.top-t.boundingClientRect.top}function Gs(n){return!n}const qs={bug:"bug",wrench:"tools",path:"compass-3",flask:"flask",doc:"file-text",gear:"settings-3"},Fs=n=>{const t=G.c(30),{stopView:e,isActive:o,isVisited:l,onSelect:a,activeRef:h}=n,{t:c}=ee();let g;if(t[0]!==h||t[1]!==o||t[2]!==l||t[3]!==a||t[4]!==e.hunks||t[5]!==e.isStale||t[6]!==e.position||t[7]!==e.stop.title||t[8]!==c){const m=Rs(e.hunks),p=o&&"bg-interactive-selection text-interactive-selection-foreground";let f;t[10]!==p?(f=J("flex w-full flex-col gap-1 rounded px-2 py-1.5 text-left transition-colors","hover:bg-interactive-hover",p),t[10]=p,t[11]=f):f=t[11];const i=o?"bg-interactive-selection-foreground/20":l?"bg-status-success/15 text-status-success":"bg-surface-muted text-muted-foreground";let v;t[12]!==i?(v=J("typography-micro flex h-4 min-w-4 shrink-0 items-center justify-center rounded-full px-1 tabular-nums",i),t[12]=i,t[13]=v):v=t[13];let b;t[14]!==o||t[15]!==l||t[16]!==e.position?(b=l&&!o?s.jsx(j,{name:"check",className:"size-2.5"}):e.position,t[14]=o,t[15]=l,t[16]=e.position,t[17]=b):b=t[17];let w;t[18]!==v||t[19]!==b?(w=s.jsx("span",{className:v,children:b}),t[18]=v,t[19]=b,t[20]=w):w=t[20];let y;t[21]!==e.stop.title?(y=s.jsx("span",{className:"typography-meta truncate font-medium",children:e.stop.title}),t[21]=e.stop.title,t[22]=y):y=t[22];let k;t[23]!==e.isStale||t[24]!==c?(k=e.isStale&&s.jsx(j,{name:"error-warning",className:"size-3 shrink-0 text-status-warning","aria-label":c("walkthrough.stop.staleShort")}),t[23]=e.isStale,t[24]=c,t[25]=k):k=t[25];let x;t[26]!==w||t[27]!==y||t[28]!==k?(x=s.jsxs("span",{className:"flex items-center gap-2",children:[w,y,k]}),t[26]=w,t[27]=y,t[28]=k,t[29]=x):x=t[29],g=s.jsx("li",{children:s.jsxs("button",{ref:o?h:void 0,type:"button",onClick:a,"aria-current":o?"step":void 0,className:f,children:[x,m.length>0&&s.jsxs("span",{className:"typography-micro flex flex-col gap-0.5 pl-6 text-muted-foreground",children:[m.slice(0,3).map(_s),m.length>3&&s.jsx("span",{children:c("walkthrough.toc.moreFiles",{count:m.length-3})})]})]})}),t[0]=h,t[1]=o,t[2]=l,t[3]=a,t[4]=e.hunks,t[5]=e.isStale,t[6]=e.position,t[7]=e.stop.title,t[8]=c,t[9]=g}else g=t[9];return g},Us=u.memo(function(t){const e=G.c(20),{view:o,activeStopId:l,visitedStopIds:a,onSelectStop:h,width:c}=t,{t:g}=ee(),m=u.useRef(null);let p;e[0]===Symbol.for("react.memo_cache_sentinel")?(p=()=>{m.current?.scrollIntoView({block:"nearest"})},e[0]=p):p=e[0];let f;e[1]!==l?(f=[l],e[1]=l,e[2]=f):f=e[2],u.useEffect(p,f);let i;e[3]!==c?(i={width:c},e[3]=c,e[4]=i):i=e[4];let v;e[5]!==o.walkthrough.focus?(v=o.walkthrough.focus&&s.jsx("p",{className:"typography-meta px-2 pb-3 pt-1 text-muted-foreground",children:o.walkthrough.focus}),e[5]=o.walkthrough.focus,e[6]=v):v=e[6];let b;e[7]!==l||e[8]!==h||e[9]!==o.chapters||e[10]!==a?(b=o.chapters.map(k=>{const{chapter:x,stops:M}=k;return s.jsxs("section",{className:"pb-3",children:[s.jsxs("h4",{className:"typography-micro flex items-center gap-1.5 px-2 py-1 font-semibold uppercase tracking-wide text-muted-foreground",children:[s.jsx(j,{name:qs[x.icon]??"file-text",className:"size-3 shrink-0"}),s.jsx("span",{className:"truncate",children:x.title})]}),s.jsx("ul",{className:"flex flex-col gap-0.5",children:M.map(I=>s.jsx(Fs,{stopView:I,isActive:l===I.stop.id,isVisited:a.has(I.stop.id),onSelect:()=>h(I.stop.id),activeRef:m},I.stop.id))})]},x.id)}),e[7]=l,e[8]=h,e[9]=o.chapters,e[10]=a,e[11]=b):b=e[11];let w;e[12]!==g||e[13]!==o.uncoveredHunks.length?(w=o.uncoveredHunks.length>0&&s.jsx("p",{className:"typography-micro mt-auto px-2 pt-3 text-muted-foreground",children:g("walkthrough.toc.uncovered",{count:o.uncoveredHunks.length})}),e[12]=g,e[13]=o.uncoveredHunks.length,e[14]=w):w=e[14];let y;return e[15]!==i||e[16]!==v||e[17]!==b||e[18]!==w?(y=s.jsxs("nav",{className:"flex shrink-0 flex-col overflow-y-auto border-r border-border/60 p-2",style:i,children:[v,b,w]}),e[15]=i,e[16]=v,e[17]=b,e[18]=w,e[19]=y):y=e[19],y});function _s(n){return s.jsx("span",{className:"truncate font-mono",children:n.path},n.path)}const Ks=["all","staged","working"],Vs="https://docs.openchamber.dev/walkthrough/",mt="typography-meta font-normal text-muted-foreground",gt=720,ne=180,Le=.5,Js=680,mn=({directory:n,visible:t=!0})=>{const{t:e,locale:o,locales:l,label:a}=ee(),h=u.useRef(null),[c,g]=u.useState(0),{rootIsGitRepo:m,gitDirectory:p,nestedRepos:f}=as(n||null,{enabled:t}),i=p??n;u.useEffect(()=>{const r=h.current;if(!r||typeof ResizeObserver>"u")return;const N=new ResizeObserver(A=>{g(A[0]?.contentRect.width??0)});return N.observe(r),()=>N.disconnect()},[]);const v=me(r=>r.walkthroughTocWidth),b=me(r=>r.setWalkthroughTocWidth),[w,y]=u.useState(!1),k=c===0||c>=gt,x=c>0&&c<Js,M=Math.min(Math.max(v,ne),Math.max(ne,(c||gt)*Le)),I=u.useCallback(r=>{r.preventDefault();const N=r.clientX,A=M,Z=Math.max(ne,(h.current?.clientWidth??0)*Le);y(!0);const at=ss=>{const os=Math.min(Z,Math.max(ne,A+ss.clientX-N));b(os)},be=()=>{y(!1),window.removeEventListener("pointermove",at),window.removeEventListener("pointerup",be),window.removeEventListener("pointercancel",be)};window.addEventListener("pointermove",at),window.addEventListener("pointerup",be),window.addEventListener("pointercancel",be)},[b,M]),te=u.useCallback(r=>{const N=r.shiftKey?40:10,A=r.key==="ArrowLeft"?-N:r.key==="ArrowRight"?N:0;if(A===0)return;r.preventDefault();const Z=Math.max(ne,(h.current?.clientWidth??0)*Le);b(Math.min(Z,Math.max(ne,M+A)))},[b,M]),[W,se]=u.useState("all"),[O,z]=u.useState(null),[H,$]=u.useState(null),[oe,R]=u.useState(null),[T,q]=u.useState(()=>new Set),X=me(r=>r.diffLayoutPreference),Nt=me(r=>r.diffWrapLines),Ct=X==="side-by-side",P=L(r=>r.requestedSource[i]),ie=L(r=>r.clearRequestedSource),Rt=me(r=>r.openContextPanelTab),Mt=is(i||null),ge=we(r=>r.runtimeKey),[It,Tt]=u.useState(0);u.useEffect(()=>ws(r=>{r===vs(i,ge)&&Tt(N=>N+1)}),[i,ge]);const Pt=ls(i||null),Et=hs(r=>r.setOverride),De=we(r=>r.ensureAll),{git:Be}=cs();u.useEffect(()=>{t&&i&&De(i,Be)},[i,De,Be,t]);const E=Mt?.current??null,fe=O?.directory===i&&O.kind==="commit"&&!P,Y=fe||P?.kind==="commit",F=ms(i||null,E,t&&Y,P?.kind==="commit"?P.hash:void 0),U=F.selectedCommit?.hash??(P?.kind==="commit"?P.hash:null),{base:le,resolved:At,revision:zt}=gs(i||null,E,t),_=u.useMemo(()=>!E||!le||le===E?null:{kind:"branch",baseRef:le,headRef:E},[le,E]),ve=O?.directory===i&&O.kind==="pr"&&!P,K=ve||P?.kind==="pr",re=fs(i||null,E,t&&K,P?.kind==="pr"?P:void 0),V=re.selectedSource,C=u.useMemo(()=>K&&V?V:Y&&U?{kind:"commit",hash:U}:P?.kind==="branch"?_??P:P??{kind:"working-tree",scope:W},[_,Y,K,P,W,U,V]),xe=O?.directory===i&&O.kind==="branch"&&!P,ye=xe||C.kind==="branch",We=xe||C.kind==="branch"&&!_,$e=fe||Y&&!U,Ge=K&&!V,ce=We||$e||Ge,Ot=u.useCallback(r=>{z(null),ie(i),se(r)},[ie,i]),d=L(r=>r.getEntry(i,C)),je=L(r=>r.load),qe=L(r=>r.generate),Ht=L(r=>r.cancel),Q=L(r=>r.requestSource);u.useEffect(()=>{!ve||!V||(Q(i,V),z(null))},[ve,i,Q,V]),u.useEffect(()=>{!xe||!_||(Q(i,_),z(null))},[_,xe,i,Q]),u.useEffect(()=>{!fe||!U||(Q(i,{kind:"commit",hash:U}),z(null))},[fe,i,Q,U]);const Lt=L(r=>r.selectModel),ue=L(r=>r.getSelectedModel(i,C)),Dt=L(r=>r.selectLanguage),Se=L(r=>r.getSelectedLanguage(i,C)),Ne=d.result?.language,D=Se&&l.includes(Se)?Se:Ne&&l.includes(Ne)?Ne:o,Bt=C.kind==="branch"?zt:"",Fe=C.kind==="pr"?It:0,Ue=u.useRef(null);u.useEffect(()=>{if(!(!t||ce)){if(C.kind==="pr"){const r=JSON.stringify([ge,i,C,D,ue,Fe]);if(Ue.current===r)return;Ue.current=r}je(i,C,{language:D})}},[D,ce,i,je,C,ue,Bt,t,ge,Fe]);const S=u.useMemo(()=>ce?null:Cs(d.result),[ce,d.result]),Ce=d.result?.generatedAt,_e=u.useRef(void 0);u.useEffect(()=>{_e.current!==Ce&&(_e.current=Ce,q(new Set),$(S?.stops[0]?.stop.id??null))},[Ce,S]);const Re=u.useCallback(r=>{$(r),q(N=>{if(N.has(r))return N;const A=new Set(N);return A.add(r),A})},[]),Me=u.useCallback(r=>{Re(r),R(r)},[Re]),Ke=u.useCallback(r=>{if(!S||S.stops.length===0)return;const N=S.stops.findIndex(Z=>Z.stop.id===H),A=Math.min(S.stops.length-1,Math.max(0,(N<0?0:N)+r));Me(S.stops[A].stop.id)},[H,Me,S]),[Wt,Ve]=u.useState(!1),[$t,Je]=u.useState(!1),Gt=K?"pr":Y?"commit":ye?"branch":C.kind==="working-tree"?C.scope:C.kind,qt=K?e("session.githubIntegration.tabs.pullRequests"):Y?e("commitComparison.mode"):ye?e("walkthrough.scope.branch"):C.kind==="pr"?e("walkthrough.scope.pullRequest",{number:C.number}):e(W==="all"?"walkthrough.scope.all":W==="staged"?"walkthrough.scope.staged":"walkthrough.scope.working"),Xe=ft(r=>r.modelsMetadata),[de,Ft]=u.useState(void 0),Ie=r=>!r||de===void 0?!1:de.includes(r),Ut=d.readiness?.model&&d.readiness.model.hasLogin!==!1&&Ie(d.readiness.model.providerID)?`${d.readiness.model.providerID}/${d.readiness.model.modelID}`:void 0,_t=d.result?.model&&Ie(d.result.model.providerID)?`${d.result.model.providerID}/${d.result.model.modelID}`:void 0,ke=(ue&&Ie(ue.split("/")[0])?ue:void 0)??_t??Ut,[Kt,...Vt]=(ke??"").split("/"),Ye=Vt.join("/");u.useEffect(()=>{if(de!==void 0)return;let r=!1;return(async()=>{try{const N=await vt("/api/small-model",{method:"GET",headers:{Accept:"application/json"}});if(!N.ok)return;const A=await N.json().catch(()=>null);!r&&Array.isArray(A?.authenticatedProviders)&&Ft(A.authenticatedProviders.filter(Z=>typeof Z=="string"))}catch{}})(),()=>{r=!0}},[de]);const Jt=u.useCallback((r,N)=>Xe.get(`${r}/${N}`)?.structured_output!==!1,[Xe]),Qe=d.status==="generating",Ze=d.result?.model?`${d.result.model.providerID}/${d.result.model.modelID}`:void 0,Te=d.result?.language,Pe=Te&&l.includes(Te)?Te:void 0,et=d.status==="ready"&&!!S,Ee=et&&!!Pe&&Pe!==D,tt=et&&!!Ze&&!!ke&&Ze!==ke,st=Os(d.stage,d.status==="generating"),ot=u.useRef(!1),rt=u.useRef(d.status);u.useEffect(()=>{rt.current!=="generating"&&d.status==="generating"&&(ot.current=!S),rt.current=d.status},[d.status,S]);const Xt=ot.current&&(d.status==="generating"||st.holding),Ae=d.error?.code==="context-too-small"||d.error?.code==="structured-output-unsupported"||d.error?.code==="no-model"||d.error?.code==="empty-diff"||d.error?.code==="only-generated"||d.error?.code==="output-exhausted"||d.error?.code==="server-unsupported"?d.error.code:d.readiness&&!d.readiness.ready&&!S&&d.readiness.reason!=="no-provider-login"?d.readiness.reason:void 0,Yt=d.error?.model??d.readiness?.model,Qt=d.error?.requiredChars??d.readiness?.requiredChars,Zt=d.error?.availableChars??d.readiness?.availableChars,pe=ce||!ke||!!(d.readiness&&!d.readiness.ready),ze=u.useCallback(r=>{pe||qe(i,C,{force:r,language:D})},[D,i,qe,pe,C]),nt=us(p||null),es=we(r=>r.ensureNestedRepos),ts=we(r=>r.selectNestedRepo);return m===!1&&nt!==!0?s.jsx(Ss,{rootIsGitRepo:m,resolvedIsGitRepo:nt,nestedRepos:f,onRetryDiscovery:()=>{n&&es(n,{force:!0})}}):s.jsxs("div",{ref:h,className:"flex h-full min-h-0 flex-col",children:[s.jsxs("header",{className:"flex shrink-0 flex-wrap items-center gap-2 border-b border-border/60 px-3 py-2",children:[m===!1&&Array.isArray(f)&&f.length>0?s.jsx(Ns,{repositories:f,selectedRepository:p??null,onSelectRepository:r=>{n&&ts(n,r)},repositoryRoot:n??void 0}):null,s.jsxs(it,{open:Wt,onOpenChange:Ve,children:[s.jsx(lt,{asChild:!0,children:s.jsxs("button",{type:"button",className:"flex h-8 flex-shrink-0 items-center gap-1.5 rounded-md px-2 typography-ui-label font-semibold text-foreground outline-none hover:bg-interactive-hover focus-visible:ring-2 focus-visible:ring-ring","aria-label":e("walkthrough.scope.selectorAria"),children:[s.jsx("span",{className:"whitespace-nowrap",children:qt}),s.jsx(j,{name:"arrow-down-s",className:"size-4 flex-shrink-0 opacity-60"})]})}),s.jsx(ct,{align:"start",className:"w-48",children:s.jsxs(ut,{value:Gt,onValueChange:r=>{if(Ve(!1),r==="commit"){ie(i),z({directory:i,kind:"commit"});return}if(r==="branch"){_?(z(null),Q(i,_)):(ie(i),z({directory:i,kind:"branch"}));return}if(r==="pr"){ie(i),z({directory:i,kind:"pr"});return}Ot(r)},children:[s.jsx(dt,{className:mt,children:e("walkthrough.scope.group.workingTree")}),Ks.map(r=>s.jsx(he,{value:r,children:e(r==="all"?"walkthrough.scope.all":r==="staged"?"walkthrough.scope.staged":"walkthrough.scope.working")},r)),E&&s.jsxs(s.Fragment,{children:[s.jsx(pt,{}),s.jsx(he,{value:"branch",children:e("walkthrough.scope.branch")})]}),s.jsx(pt,{}),s.jsx(he,{value:"commit",children:e("commitComparison.mode")}),s.jsx(he,{value:"pr",children:e("session.githubIntegration.tabs.pullRequests")})]})})]}),ye&&s.jsx(xs,{branches:Pt?.all??[],currentBranch:E,base:le,onSelect:r=>{i&&E&&Et(i,E,r)}},JSON.stringify([i,E])),Y&&s.jsx(ks,{commits:F.commits,selectedHash:U,loading:F.loading,error:F.error,onSelect:F.select,onRefresh:()=>{F.refresh()}},JSON.stringify([i,E])),K&&s.jsx(ht,{comparison:re},JSON.stringify([i,E])),s.jsxs("div",{className:"ml-auto flex min-w-0 items-center gap-1",children:[K&&V&&s.jsxs(B,{variant:"ghost",size:"sm","aria-label":e("contextPanel.mode.diff"),title:e("contextPanel.mode.diff"),onClick:()=>Rt(n,{mode:"diff",diffScope:"pr"}),children:[s.jsx(j,{name:"arrow-left-right",className:"size-4"}),!x&&e("contextPanel.mode.diff")]}),s.jsxs(kt,{children:[s.jsx(bt,{asChild:!0,children:s.jsx(B,{type:"button",variant:"ghost",size:"sm","aria-label":e("walkthrough.help.guide"),onClick:()=>{ds(Vs)},children:s.jsx(j,{name:"question",className:"size-4"})})}),s.jsx(wt,{children:s.jsx("p",{className:"typography-micro leading-tight",children:e("walkthrough.help.guide")})})]}),s.jsxs(it,{open:$t,onOpenChange:Je,children:[s.jsx(lt,{asChild:!0,children:s.jsxs("button",{type:"button",className:"flex h-8 min-w-0 flex-shrink items-center gap-1.5 rounded-md px-2 typography-ui-label text-muted-foreground outline-none hover:bg-interactive-hover hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring","aria-label":e("walkthrough.language.selectorAria"),title:x?a(D):void 0,children:[s.jsx(j,{name:"global",className:"size-4 flex-shrink-0 opacity-70"}),!x&&s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"truncate",children:a(D)}),s.jsx(j,{name:"arrow-down-s",className:"size-4 flex-shrink-0 opacity-60"})]})]})}),s.jsxs(ct,{align:"end",className:"w-48",children:[s.jsx(dt,{className:mt,children:e("walkthrough.language.menuLabel")}),s.jsx(ut,{value:D,onValueChange:r=>{Je(!1),Dt(i,C,r)},children:l.map(r=>s.jsx(he,{value:r,children:a(r)},r))})]})]}),s.jsx(xt,{providerId:Kt??"",modelId:Ye,onChange:(r,N)=>{Lt(i,C,r&&N?`${r}/${N}`:null)},allowedProviderIds:de??[],isModelAllowed:Jt,tooltipsEnabled:!1,dropdownPortalToBody:!0,compact:x,className:J("h-8 min-w-0",!x&&"max-w-48")}),S&&s.jsxs(s.Fragment,{children:[s.jsx(B,{type:"button",variant:"ghost",size:"sm","aria-label":e("walkthrough.action.previous"),onClick:()=>Ke(-1),children:s.jsx(j,{name:"arrow-right-s",className:"size-4 rotate-180"})}),s.jsx(B,{type:"button",variant:"ghost",size:"sm","aria-label":e("walkthrough.action.next"),onClick:()=>Ke(1),children:s.jsx(j,{name:"arrow-right-s",className:"size-4"})})]}),Qe?s.jsx(B,{type:"button",variant:"outline",size:"sm","aria-label":x?e("walkthrough.action.cancel"):void 0,title:x?e("walkthrough.action.cancel"):void 0,onClick:()=>Ht(i,C),children:x?s.jsx(j,{name:"stop",className:"size-3.5"}):e("walkthrough.action.cancel")}):s.jsxs(B,{type:"button",variant:"outline",size:"sm",className:pe?"border-border text-muted-foreground":ys,disabled:pe,"aria-label":x?e(S?"walkthrough.action.regenerate":"walkthrough.action.generate"):void 0,title:x?e(S?"walkthrough.action.regenerate":"walkthrough.action.generate"):void 0,onClick:()=>ze(!!S),children:[s.jsx(j,{name:S?"refresh":"route",className:"size-3.5"}),!x&&e(S?"walkthrough.action.regenerate":"walkthrough.action.generate")]})]})]}),d.status==="generating"&&S&&s.jsxs("div",{className:"flex shrink-0 items-center gap-2 border-b border-border/60 bg-[var(--status-info-background)] px-3 py-2",children:[s.jsx(j,{name:"loader-4",className:"size-4 shrink-0 animate-spin text-[var(--status-info)]"}),s.jsx("span",{className:"typography-meta text-foreground",children:d.stage==="collecting"?e("walkthrough.stage.collecting"):d.stage==="assembling"?e("walkthrough.stage.assembling"):e("walkthrough.stage.asking")})]}),(Ee||tt)&&s.jsxs("div",{className:"flex shrink-0 items-center gap-2 border-b border-border/60 bg-[var(--status-info-background)] px-3 py-2",children:[s.jsx(j,{name:"information",className:"size-4 shrink-0 text-[var(--status-info)]"}),s.jsx("span",{className:"typography-meta text-foreground",children:Ee&&tt?e("walkthrough.missing.languageAndModel"):Ee?e("walkthrough.missing.language",{requested:a(D),shown:a(Pe)}):e("walkthrough.missing.model",{model:Ye})}),s.jsx(B,{type:"button",variant:"ghost",size:"xs",className:"ml-auto",disabled:pe,onClick:()=>ze(!1),children:e("walkthrough.action.generate")})]}),S?.isStale&&d.status!=="generating"&&s.jsxs("div",{className:"flex shrink-0 items-center gap-2 border-b border-border/60 bg-status-warning/10 px-3 py-2",children:[s.jsx(j,{name:"error-warning",className:"size-4 shrink-0 text-status-warning"}),s.jsx("span",{className:"typography-meta text-foreground",children:e("walkthrough.stale.banner",{count:S.staleStopCount})}),s.jsx(B,{type:"button",variant:"ghost",size:"xs",className:"ml-auto",disabled:Qe,onClick:()=>ze(!0),children:e("walkthrough.action.regenerate")})]}),d.error&&!Ae&&d.error.code!=="no-provider-login"&&s.jsxs("div",{className:"flex shrink-0 items-start gap-2 border-b border-border/60 bg-status-error/10 px-3 py-2",children:[s.jsx(j,{name:"error-warning",className:"mt-0.5 size-4 shrink-0 text-status-error"}),s.jsx("span",{className:"typography-meta line-clamp-2 text-foreground",title:d.error.message,children:d.error.message})]}),s.jsx("div",{className:J("flex min-h-0 flex-1",k?"flex-row":"flex-col"),children:Ge?s.jsxs("div",{className:"flex flex-1 flex-col items-center justify-center gap-3 p-8 text-center",children:[s.jsx("p",{className:"typography-meta text-muted-foreground",children:re.error??(re.loading?e("session.githubPrPicker.loading.pullRequests"):e("pullRequestComparison.select"))}),!re.loading&&s.jsx(ht,{comparison:re})]}):$e?s.jsx("div",{className:"flex flex-1 items-center justify-center gap-2 p-8 typography-meta text-muted-foreground",children:F.loading?s.jsx(j,{name:"loader-4",className:"size-6 animate-spin"}):F.error??e("commitComparison.noCommits")}):We?s.jsx("div",{className:"flex flex-1 flex-col items-center justify-center gap-3 p-8 text-center",children:!At&&E?s.jsx(j,{name:"loader-4",className:"size-6 animate-spin text-muted-foreground"}):s.jsx("p",{className:"typography-meta text-muted-foreground",children:e("gitView.pr.toast.baseBranchRequired")})}):Ae?s.jsx(Ts,{reason:Ae,model:Yt,requiredChars:Qt,availableChars:Zt,onRetry:()=>{je(i,C)}}):Xt?s.jsx("div",{className:"flex flex-1 flex-col items-center justify-center gap-3 p-8",children:s.jsx(Es,{progress:st})}):S?s.jsxs(s.Fragment,{children:[k&&s.jsxs(s.Fragment,{children:[s.jsx(Us,{view:S,activeStopId:H,visitedStopIds:T,onSelectStop:Me,width:M}),s.jsx("div",{role:"separator","aria-orientation":"vertical","aria-label":e("walkthrough.toc.resize"),tabIndex:0,onPointerDown:I,onKeyDown:te,className:J("group relative w-1 shrink-0 cursor-col-resize","before:absolute before:inset-y-0 before:-left-1 before:-right-1 before:content-['']","hover:bg-interactive-selection focus-visible:bg-interactive-selection focus-visible:outline-none",w&&"bg-interactive-selection")})]}),s.jsx(Bs,{view:S,activeStopId:H,scrollToStopId:oe,onActiveStopChange:Re,onScrollHandled:()=>R(null),renderSideBySide:Ct,wrapLines:Nt})]}):s.jsx("div",{className:"flex flex-1 flex-col items-center justify-center gap-3 p-8 text-center",children:d.status==="loading"?s.jsx(j,{name:"loader-4",className:"size-6 animate-spin text-muted-foreground"}):s.jsxs(s.Fragment,{children:[s.jsx(j,{name:"route",className:"size-6 text-muted-foreground"}),s.jsx("h3",{className:"typography-ui-label font-semibold text-foreground",children:e("walkthrough.empty.title")}),s.jsx("p",{className:"typography-meta max-w-md text-muted-foreground",children:e("walkthrough.empty.description")})]})})})]})};export{mn as WalkthroughView};
4
+ ${l.join("")}`},Is=n=>n?`${n.providerID}/${n.modelID}`:"",Ts=({reason:n,model:t,requiredChars:e,availableChars:o,onRetry:l})=>{const{t:a}=ee(),h=ft(k=>k.modelsMetadata),[c,g]=u.useState(void 0),[m,p]=u.useState(!1),f=n==="context-too-small"||n==="structured-output-unsupported"||n==="output-exhausted";u.useEffect(()=>{if(!f||c!==void 0)return;let k=!1;return(async()=>{try{const x=await wt("/api/small-model",{method:"GET",headers:{Accept:"application/json"}});if(!x.ok)return;const M=await x.json().catch(()=>null);!k&&Array.isArray(M?.authenticatedProviders)&&g(M.authenticatedProviders.filter(I=>typeof I=="string"))}catch{}})(),()=>{k=!0}},[f,c]);const i=u.useCallback(async(k,x)=>{if(!k||!x||m)return;const M=`${k}/${x}`;p(!0);try{await bs({walkthroughModelOverride:M}),l()}catch(I){console.warn("Failed to save small model override:",I)}finally{p(!1)}},[l,m]),w=u.useCallback((k,x)=>h.get(`${k}/${x}`)?.structured_output!==!1,[h]),b=Is(t),v=()=>{if(n==="no-model")return a("walkthrough.blocked.noModel.description");if(n==="empty-diff")return a("walkthrough.blocked.emptyDiff.description");if(n==="only-generated")return a("walkthrough.blocked.onlyGenerated.description");if(n==="server-unsupported")return a("walkthrough.blocked.serverUnsupported.description");if(n==="output-exhausted")return b?a("walkthrough.blocked.outputExhausted.description",{model:b}):a("walkthrough.blocked.outputExhausted.descriptionUnknownModel");if(n==="structured-output-unsupported")return b?a("walkthrough.blocked.structuredOutput.description",{model:b}):a("walkthrough.blocked.structuredOutput.descriptionUnknownModel");const k=Math.ceil((e??0)/1e3),x=Math.ceil((o??0)/1e3);return b?a("walkthrough.blocked.contextTooSmall.description",{model:b,required:k,available:x}):a("walkthrough.blocked.contextTooSmall.descriptionUnknownModel",{required:k,available:x})},y=()=>a(n==="no-model"?"walkthrough.blocked.noModel.title":n==="empty-diff"?"walkthrough.blocked.emptyDiff.title":n==="only-generated"?"walkthrough.blocked.onlyGenerated.title":n==="server-unsupported"?"walkthrough.blocked.serverUnsupported.title":n==="output-exhausted"?"walkthrough.blocked.outputExhausted.title":n==="structured-output-unsupported"?"walkthrough.blocked.structuredOutput.title":"walkthrough.blocked.contextTooSmall.title");return s.jsxs("div",{className:"flex flex-1 flex-col items-center justify-center gap-3 p-8 text-center",children:[s.jsx(j,{name:n==="empty-diff"||n==="only-generated"?"information":"error-warning",className:"size-6 text-muted-foreground"}),s.jsx("h3",{className:"typography-ui-label font-semibold text-foreground",children:y()}),s.jsx("p",{className:"typography-meta max-w-md text-muted-foreground",children:v()}),f&&s.jsxs("div",{className:"flex flex-col items-center gap-2 pt-2",children:[s.jsx("span",{className:"typography-micro text-muted-foreground",children:a("walkthrough.blocked.chooseModel")}),s.jsx(xt,{providerId:t?.providerID??"",modelId:t?.modelID??"",onChange:(k,x)=>{i(k,x)},allowedProviderIds:c??[],isModelAllowed:w})]}),(n==="empty-diff"||n==="only-generated"||n==="server-unsupported")&&s.jsx(B,{type:"button",variant:"outline",size:"sm",onClick:l,children:a("walkthrough.action.refresh")})]})},Ps=[{labelKey:"walkthrough.stage.collecting"},{labelKey:"walkthrough.stage.asking"},{labelKey:"walkthrough.stage.assembling"}],Es=n=>{const t=G.c(6),{progress:e}=n,{t:o}=ee(),{completedCount:l,activeIndex:a}=e;let h;t[0]!==a||t[1]!==l||t[2]!==o?(h=Ps.map((g,m)=>{const p=m<l,f=a===m;return s.jsxs("li",{className:"flex items-center gap-2",children:[s.jsx("span",{className:"flex size-4 shrink-0 items-center justify-center",children:p?s.jsx(j,{name:"check",className:"size-3.5 text-status-success"}):f?s.jsx(j,{name:"loader-4",className:"size-3.5 animate-spin text-[var(--status-info)]"}):s.jsx("span",{className:"size-1.5 rounded-full bg-surface-muted"})}),s.jsx("span",{className:V("typography-meta",f?"text-foreground":p?"text-muted-foreground":"text-muted-foreground/60"),children:o(g.labelKey)})]},g.labelKey)}),t[0]=a,t[1]=l,t[2]=o,t[3]=h):h=t[3];let c;return t[4]!==h?(c=s.jsx("ul",{className:"flex flex-col gap-2 text-left",children:h}),t[4]=h,t[5]=c):c=t[5],c},ae=["collecting","asking","assembling"],Oe=450,As=n=>n==="retrying"?ae.indexOf("asking"):n?ae.indexOf(n):-1,zs=(n,t)=>Math.min(n+1,t),Os=(n,t)=>{const e=G.c(17),[o,l]=u.useState(-1),a=u.useRef(0);let h;e[0]!==t||e[1]!==o||e[2]!==n?(h=t?Math.max(As(n),0):o<0?-1:ae.length,e[0]=t,e[1]=o,e[2]=n,e[3]=h):h=e[3];const c=h;let g,m;e[4]!==t||e[5]!==o||e[6]!==c?(g=()=>{if(c<=o){c<o&&t&&(l(c),a.current=Date.now());return}const k=Date.now()-a.current,x=()=>{a.current=Date.now(),l(I=>zs(I,c))};if(o<0||k>=Oe){x();return}const M=setTimeout(x,Oe-k);return()=>clearTimeout(M)},m=[t,o,c],e[4]=t,e[5]=o,e[6]=c,e[7]=g,e[8]=m):(g=e[7],m=e[8]),u.useEffect(g,m);let p,f;e[9]!==t||e[10]!==o?(p=()=>{if(t||o<ae.length)return;const k=setTimeout(()=>l(-1),Oe);return()=>clearTimeout(k)},f=[t,o],e[9]=t,e[10]=o,e[11]=p,e[12]=f):(p=e[11],f=e[12]),u.useEffect(p,f);const i=o>=ae.length,w=Math.max(0,Math.min(o,ae.length)),b=i||o<0?null:o,v=!t&&o>=0;let y;return e[13]!==w||e[14]!==b||e[15]!==v?(y={completedCount:w,activeIndex:b,holding:v},e[13]=w,e[14]=b,e[15]=v,e[16]=y):y=e[16],y},jt=u.memo(function(t){const e=G.c(11),{path:o,hunks:l,renderSideBySide:a,wrapLines:h}=t;let c;if(e[0]!==l||e[1]!==o){const f=Ms(l);c=f?ps(o,f):void 0,e[0]=l,e[1]=o,e[2]=c}else c=e[2];const g=c;if(!g)return null;let m;e[3]!==o?(m=rs(o)||"",e[3]=o,e[4]=m):m=e[4];let p;return e[5]!==g||e[6]!==o||e[7]!==a||e[8]!==m||e[9]!==h?(p=s.jsx(js,{original:"",modified:"",fileDiff:g,language:m,fileName:o,renderSideBySide:a,wrapLines:h,layout:"inline"}),e[5]=g,e[6]=o,e[7]=a,e[8]=m,e[9]=h,e[10]=p):p=e[10],p}),He=n=>`walkthrough-stop-${n}`,Hs={critical:"border border-[var(--interactive-border)] font-medium text-foreground",normal:"bg-surface-muted text-muted-foreground",context:"bg-surface-muted text-muted-foreground"},Ls=n=>{const t=G.c(22),{stopView:e}=n,{t:o}=ee(),{stop:l}=e;let a;t[0]!==e.position?(a=s.jsx("span",{className:"typography-micro flex h-5 min-w-5 shrink-0 items-center justify-center rounded-full bg-surface-muted px-1.5 tabular-nums text-muted-foreground",children:e.position}),t[0]=e.position,t[1]=a):a=t[1];let h;t[2]!==l.title?(h=s.jsx("h3",{className:"typography-ui-label font-semibold text-foreground",children:l.title}),t[2]=l.title,t[3]=h):h=t[3];let c;t[4]!==l.importance||t[5]!==o?(c=l.importance!=="normal"&&s.jsxs(kt,{children:[s.jsx(bt,{className:V("typography-micro flex h-5 items-center rounded px-1.5 leading-none",Hs[l.importance]),children:l.importance==="critical"?o("walkthrough.importance.critical"):o("walkthrough.importance.context")}),s.jsx(vt,{className:"max-w-64",children:s.jsx("p",{className:"typography-micro leading-tight",children:l.importance==="critical"?o("walkthrough.importance.criticalHint"):o("walkthrough.importance.contextHint")})})]}),t[4]=l.importance,t[5]=o,t[6]=c):c=t[6];let g;t[7]!==a||t[8]!==h||t[9]!==c?(g=s.jsxs("div",{className:"flex items-center gap-2",children:[a,h,c]}),t[7]=a,t[8]=h,t[9]=c,t[10]=g):g=t[10];let m;t[11]!==l.prose?(m=s.jsx("p",{className:"typography-body text-muted-foreground",children:l.prose}),t[11]=l.prose,t[12]=m):m=t[12];let p;t[13]!==e.hunks||t[14]!==e.isStale||t[15]!==e.missingHunkIds||t[16]!==o?(p=e.isStale&&s.jsxs("p",{className:"typography-meta flex items-center gap-1.5 text-status-warning",children:[s.jsx(j,{name:"error-warning",className:"size-3.5 shrink-0"}),e.hunks.length===0?o("walkthrough.stop.staleAll"):o("walkthrough.stop.stalePartial",{count:e.missingHunkIds.length})]}),t[13]=e.hunks,t[14]=e.isStale,t[15]=e.missingHunkIds,t[16]=o,t[17]=p):p=t[17];let f;return t[18]!==g||t[19]!==m||t[20]!==p?(f=s.jsxs("header",{className:"flex flex-col gap-2 px-4 pt-5 pb-3",children:[g,m,p]}),t[18]=g,t[19]=m,t[20]=p,t[21]=f):f=t[21],f},St=n=>{const t=G.c(2),{path:e}=n;let o;return t[0]!==e?(o=s.jsxs("div",{className:"sticky top-0 z-10 flex items-center gap-1.5 border-b border-[var(--interactive-border)]/35 bg-[var(--surface-elevated)]/90 px-4 py-1.5 backdrop-blur-md supports-[backdrop-filter]:bg-[var(--surface-elevated)]/80",children:[s.jsx(ns,{filePath:e,className:"size-3.5 shrink-0"}),s.jsx("span",{className:"typography-meta truncate font-mono text-foreground",children:e})]}),t[0]=e,t[1]=o):o=t[1],o},Ds=n=>{const t=G.c(11),{hunks:e,renderSideBySide:o,wrapLines:l}=n;let a;t[0]!==e?(a=yt(e),t[0]=e,t[1]=a):a=t[1];const h=a;let c;if(t[2]!==o||t[3]!==h||t[4]!==l){let m;t[6]!==o||t[7]!==l?(m=(p,f)=>s.jsxs("div",{children:[s.jsx(St,{path:p.path}),s.jsx(jt,{path:p.path,hunks:p.hunks,renderSideBySide:o,wrapLines:l})]},`${p.path}-${f}`),t[6]=o,t[7]=l,t[8]=m):m=t[8],c=h.map(m),t[2]=o,t[3]=h,t[4]=l,t[5]=c}else c=t[5];let g;return t[9]!==c?(g=s.jsx(s.Fragment,{children:c}),t[9]=c,t[10]=g):g=t[10],g},Bs=u.memo(function(t){const e=G.c(35),{view:o,activeStopId:l,scrollToStopId:a,onActiveStopChange:h,onScrollHandled:c,renderSideBySide:g,wrapLines:m}=t,{t:p}=ee(),f=u.useRef(null),[i,w]=u.useState(!1),b=u.useRef(null),v=u.useRef(null);let y,k;e[0]===Symbol.for("react.memo_cache_sentinel")?(y=()=>()=>{v.current!==null&&window.clearTimeout(v.current)},k=[],e[0]=y,e[1]=k):(y=e[0],k=e[1]),u.useEffect(y,k);let x,M;e[2]!==c||e[3]!==a?(x=()=>{if(!a)return;const R=document.getElementById(He(a));R&&(b.current=a,R.scrollIntoView({behavior:"auto",block:"start"}),v.current!==null&&window.clearTimeout(v.current),v.current=window.setTimeout(()=>{b.current=null,v.current=null},250)),c()},M=[a,c],e[2]=c,e[3]=a,e[4]=x,e[5]=M):(x=e[4],M=e[5]),u.useEffect(x,M);let I;e[6]!==h?(I=R=>{const T=R.filter(Ws).sort($s)[0];if(!T)return;const q=T.target.getAttribute("data-stop-id");if(!q)return;const X=b.current;if(X){q===X&&(b.current=null);return}h(q)},e[6]=h,e[7]=I):I=e[7];const te=I;let W,se;e[8]!==te||e[9]!==o.stops?(W=()=>{const R=f.current;if(!R)return;const T=new IntersectionObserver(te,{root:R,rootMargin:"0px 0px -70% 0px",threshold:0});for(const q of o.stops){const X=document.getElementById(He(q.stop.id));X&&T.observe(X)}return()=>T.disconnect()},se=[te,o.stops],e[8]=te,e[9]=o.stops,e[10]=W,e[11]=se):(W=e[10],se=e[11]),u.useEffect(W,se);let O;e[12]!==o.uncoveredHunks?(O=yt(o.uncoveredHunks),e[12]=o.uncoveredHunks,e[13]=O):O=e[13];const z=O;let H;if(e[14]!==l||e[15]!==g||e[16]!==p||e[17]!==o.stops||e[18]!==m){let R;e[20]!==l||e[21]!==g||e[22]!==p||e[23]!==m?(R=T=>s.jsxs("section",{id:He(T.stop.id),"data-stop-id":T.stop.id,className:V("border-b border-border/60",l===T.stop.id&&"bg-interactive-selection/5"),children:[s.jsx(Ls,{stopView:T}),T.hunks.length>0?s.jsx(Ds,{hunks:T.hunks,renderSideBySide:g,wrapLines:m}):s.jsx("p",{className:"typography-meta px-4 pb-4 text-muted-foreground",children:p("walkthrough.stop.noCode")})]},T.stop.id),e[20]=l,e[21]=g,e[22]=p,e[23]=m,e[24]=R):R=e[24],H=o.stops.map(R),e[14]=l,e[15]=g,e[16]=p,e[17]=o.stops,e[18]=m,e[19]=H}else H=e[19];let $;e[25]!==g||e[26]!==p||e[27]!==i||e[28]!==z||e[29]!==o.uncoveredHunks.length||e[30]!==m?($=o.uncoveredHunks.length>0&&s.jsxs("section",{className:"border-b border-border/60",children:[s.jsxs(B,{type:"button",variant:"ghost",className:"h-auto w-full justify-start gap-2 px-4 py-3",onClick:()=>w(Gs),"aria-expanded":i,children:[s.jsx(j,{name:i?"arrow-down-s":"arrow-right-s",className:"size-4 shrink-0"}),s.jsx("span",{className:"typography-ui-label text-muted-foreground",children:p("walkthrough.uncovered.title",{count:o.uncoveredHunks.length})})]}),!i&&s.jsx("p",{className:"typography-meta px-4 pb-3 pl-10 text-muted-foreground",children:p("walkthrough.uncovered.description")}),i&&z.map((R,T)=>s.jsxs("div",{children:[s.jsx(St,{path:R.path}),s.jsx(jt,{path:R.path,hunks:R.hunks,renderSideBySide:g,wrapLines:m})]},`${R.path}-${T}`))]}),e[25]=g,e[26]=p,e[27]=i,e[28]=z,e[29]=o.uncoveredHunks.length,e[30]=m,e[31]=$):$=e[31];let oe;return e[32]!==$||e[33]!==H?(oe=s.jsxs("div",{ref:f,className:"min-h-0 flex-1 overflow-y-auto","data-diff-virtual-root":!0,"data-diff-virtual-content":!0,children:[H,$]}),e[32]=$,e[33]=H,e[34]=oe):oe=e[34],oe});function Ws(n){return n.isIntersecting}function $s(n,t){return n.boundingClientRect.top-t.boundingClientRect.top}function Gs(n){return!n}const qs={bug:"bug",wrench:"tools",path:"compass-3",flask:"flask",doc:"file-text",gear:"settings-3"},Fs=n=>{const t=G.c(30),{stopView:e,isActive:o,isVisited:l,onSelect:a,activeRef:h}=n,{t:c}=ee();let g;if(t[0]!==h||t[1]!==o||t[2]!==l||t[3]!==a||t[4]!==e.hunks||t[5]!==e.isStale||t[6]!==e.position||t[7]!==e.stop.title||t[8]!==c){const m=Rs(e.hunks),p=o&&"bg-interactive-selection text-interactive-selection-foreground";let f;t[10]!==p?(f=V("flex w-full flex-col gap-1 rounded px-2 py-1.5 text-left transition-colors","hover:bg-interactive-hover",p),t[10]=p,t[11]=f):f=t[11];const i=o?"bg-interactive-selection-foreground/20":l?"bg-status-success/15 text-status-success":"bg-surface-muted text-muted-foreground";let w;t[12]!==i?(w=V("typography-micro flex h-4 min-w-4 shrink-0 items-center justify-center rounded-full px-1 tabular-nums",i),t[12]=i,t[13]=w):w=t[13];let b;t[14]!==o||t[15]!==l||t[16]!==e.position?(b=l&&!o?s.jsx(j,{name:"check",className:"size-2.5"}):e.position,t[14]=o,t[15]=l,t[16]=e.position,t[17]=b):b=t[17];let v;t[18]!==w||t[19]!==b?(v=s.jsx("span",{className:w,children:b}),t[18]=w,t[19]=b,t[20]=v):v=t[20];let y;t[21]!==e.stop.title?(y=s.jsx("span",{className:"typography-meta truncate font-medium",children:e.stop.title}),t[21]=e.stop.title,t[22]=y):y=t[22];let k;t[23]!==e.isStale||t[24]!==c?(k=e.isStale&&s.jsx(j,{name:"error-warning",className:"size-3 shrink-0 text-status-warning","aria-label":c("walkthrough.stop.staleShort")}),t[23]=e.isStale,t[24]=c,t[25]=k):k=t[25];let x;t[26]!==v||t[27]!==y||t[28]!==k?(x=s.jsxs("span",{className:"flex items-center gap-2",children:[v,y,k]}),t[26]=v,t[27]=y,t[28]=k,t[29]=x):x=t[29],g=s.jsx("li",{children:s.jsxs("button",{ref:o?h:void 0,type:"button",onClick:a,"aria-current":o?"step":void 0,className:f,children:[x,m.length>0&&s.jsxs("span",{className:"typography-micro flex flex-col gap-0.5 pl-6 text-muted-foreground",children:[m.slice(0,3).map(Ks),m.length>3&&s.jsx("span",{children:c("walkthrough.toc.moreFiles",{count:m.length-3})})]})]})}),t[0]=h,t[1]=o,t[2]=l,t[3]=a,t[4]=e.hunks,t[5]=e.isStale,t[6]=e.position,t[7]=e.stop.title,t[8]=c,t[9]=g}else g=t[9];return g},Us=u.memo(function(t){const e=G.c(20),{view:o,activeStopId:l,visitedStopIds:a,onSelectStop:h,width:c}=t,{t:g}=ee(),m=u.useRef(null);let p;e[0]===Symbol.for("react.memo_cache_sentinel")?(p=()=>{m.current?.scrollIntoView({block:"nearest"})},e[0]=p):p=e[0];let f;e[1]!==l?(f=[l],e[1]=l,e[2]=f):f=e[2],u.useEffect(p,f);let i;e[3]!==c?(i={width:c},e[3]=c,e[4]=i):i=e[4];let w;e[5]!==o.walkthrough.focus?(w=o.walkthrough.focus&&s.jsx("p",{className:"typography-meta px-2 pb-3 pt-1 text-muted-foreground",children:o.walkthrough.focus}),e[5]=o.walkthrough.focus,e[6]=w):w=e[6];let b;e[7]!==l||e[8]!==h||e[9]!==o.chapters||e[10]!==a?(b=o.chapters.map(k=>{const{chapter:x,stops:M}=k;return s.jsxs("section",{className:"pb-3",children:[s.jsxs("h4",{className:"typography-micro flex items-center gap-1.5 px-2 py-1 font-semibold uppercase tracking-wide text-muted-foreground",children:[s.jsx(j,{name:qs[x.icon]??"file-text",className:"size-3 shrink-0"}),s.jsx("span",{className:"truncate",children:x.title})]}),s.jsx("ul",{className:"flex flex-col gap-0.5",children:M.map(I=>s.jsx(Fs,{stopView:I,isActive:l===I.stop.id,isVisited:a.has(I.stop.id),onSelect:()=>h(I.stop.id),activeRef:m},I.stop.id))})]},x.id)}),e[7]=l,e[8]=h,e[9]=o.chapters,e[10]=a,e[11]=b):b=e[11];let v;e[12]!==g||e[13]!==o.uncoveredHunks.length?(v=o.uncoveredHunks.length>0&&s.jsx("p",{className:"typography-micro mt-auto px-2 pt-3 text-muted-foreground",children:g("walkthrough.toc.uncovered",{count:o.uncoveredHunks.length})}),e[12]=g,e[13]=o.uncoveredHunks.length,e[14]=v):v=e[14];let y;return e[15]!==i||e[16]!==w||e[17]!==b||e[18]!==v?(y=s.jsxs("nav",{className:"flex shrink-0 flex-col overflow-y-auto border-r border-border/60 p-2",style:i,children:[w,b,v]}),e[15]=i,e[16]=w,e[17]=b,e[18]=v,e[19]=y):y=e[19],y});function Ks(n){return s.jsx("span",{className:"truncate font-mono",children:n.path},n.path)}const _s=["all","staged","working"],Js="https://docs.openchamber.dev/walkthrough/",mt="typography-meta font-normal text-muted-foreground",gt=720,ne=180,Le=.5,Vs=680,xn=({directory:n,visible:t=!0})=>{const{t:e,locale:o,locales:l,label:a}=ee(),h=u.useRef(null),[c,g]=u.useState(0),{rootIsGitRepo:m,gitDirectory:p,nestedRepos:f}=as(n||null,{enabled:t}),i=p??n;u.useEffect(()=>{const r=h.current;if(!r||typeof ResizeObserver>"u")return;const N=new ResizeObserver(A=>{g(A[0]?.contentRect.width??0)});return N.observe(r),()=>N.disconnect()},[]);const w=me(r=>r.walkthroughTocWidth),b=me(r=>r.setWalkthroughTocWidth),[v,y]=u.useState(!1),k=c===0||c>=gt,x=c>0&&c<Vs,M=Math.min(Math.max(w,ne),Math.max(ne,(c||gt)*Le)),I=u.useCallback(r=>{r.preventDefault();const N=r.clientX,A=M,Y=Math.max(ne,(h.current?.clientWidth??0)*Le);y(!0);const at=ss=>{const os=Math.min(Y,Math.max(ne,A+ss.clientX-N));b(os)},be=()=>{y(!1),window.removeEventListener("pointermove",at),window.removeEventListener("pointerup",be),window.removeEventListener("pointercancel",be)};window.addEventListener("pointermove",at),window.addEventListener("pointerup",be),window.addEventListener("pointercancel",be)},[b,M]),te=u.useCallback(r=>{const N=r.shiftKey?40:10,A=r.key==="ArrowLeft"?-N:r.key==="ArrowRight"?N:0;if(A===0)return;r.preventDefault();const Y=Math.max(ne,(h.current?.clientWidth??0)*Le);b(Math.min(Y,Math.max(ne,M+A)))},[b,M]),[W,se]=u.useState("all"),[O,z]=u.useState(null),[H,$]=u.useState(null),[oe,R]=u.useState(null),[T,q]=u.useState(()=>new Set),X=me(r=>r.diffLayoutPreference),Nt=me(r=>r.diffWrapLines),Ct=X==="side-by-side",P=L(r=>r.requestedSource[i]),ie=L(r=>r.clearRequestedSource),Rt=me(r=>r.openContextPanelTab),Mt=is(i||null),ge=ve(r=>r.runtimeKey),[It,Tt]=u.useState(0);u.useEffect(()=>vs(r=>{r===ws(i,ge)&&Tt(N=>N+1)}),[i,ge]);const Pt=ls(i||null),Et=hs(r=>r.setOverride),De=ve(r=>r.ensureAll),{git:Be}=cs();u.useEffect(()=>{t&&i&&De(i,Be)},[i,De,Be,t]);const E=Mt?.current??null,fe=O?.directory===i&&O.kind==="commit"&&!P,Z=fe||P?.kind==="commit",F=ms(i||null,E,t&&Z,P?.kind==="commit"?P.hash:void 0),U=F.selectedCommit?.hash??(P?.kind==="commit"?P.hash:null),{base:le,resolved:At,revision:zt}=gs(i||null,E,t),K=u.useMemo(()=>!E||!le||le===E?null:{kind:"branch",baseRef:le,headRef:E},[le,E]),we=O?.directory===i&&O.kind==="pr"&&!P,_=we||P?.kind==="pr",re=fs(i||null,E,t&&_,P?.kind==="pr"?P:void 0),J=re.selectedSource,C=u.useMemo(()=>_&&J?J:Z&&U?{kind:"commit",hash:U}:P?.kind==="branch"?K??P:P??{kind:"working-tree",scope:W},[K,Z,_,P,W,U,J]),xe=O?.directory===i&&O.kind==="branch"&&!P,ye=xe||C.kind==="branch",We=xe||C.kind==="branch"&&!K,$e=fe||Z&&!U,Ge=_&&!J,ce=We||$e||Ge,Ot=u.useCallback(r=>{z(null),ie(i),se(r)},[ie,i]),d=L(r=>r.getEntry(i,C)),je=L(r=>r.load),qe=L(r=>r.generate),Ht=L(r=>r.cancel),Q=L(r=>r.requestSource);u.useEffect(()=>{!we||!J||(Q(i,J),z(null))},[we,i,Q,J]),u.useEffect(()=>{!xe||!K||(Q(i,K),z(null))},[K,xe,i,Q]),u.useEffect(()=>{!fe||!U||(Q(i,{kind:"commit",hash:U}),z(null))},[fe,i,Q,U]);const Lt=L(r=>r.selectModel),ue=L(r=>r.getSelectedModel(i,C)),Dt=L(r=>r.selectLanguage),Se=L(r=>r.getSelectedLanguage(i,C)),Ne=d.result?.language,D=Se&&l.includes(Se)?Se:Ne&&l.includes(Ne)?Ne:o,Bt=C.kind==="branch"?zt:"",Fe=C.kind==="pr"?It:0,Ue=u.useRef(null);u.useEffect(()=>{if(!(!t||ce)){if(C.kind==="pr"){const r=JSON.stringify([ge,i,C,D,ue,Fe]);if(Ue.current===r)return;Ue.current=r}je(i,C,{language:D})}},[D,ce,i,je,C,ue,Bt,t,ge,Fe]);const S=u.useMemo(()=>ce?null:Cs(d.result),[ce,d.result]),Ce=d.result?.generatedAt,Ke=u.useRef(void 0);u.useEffect(()=>{Ke.current!==Ce&&(Ke.current=Ce,q(new Set),$(S?.stops[0]?.stop.id??null))},[Ce,S]);const Re=u.useCallback(r=>{$(r),q(N=>{if(N.has(r))return N;const A=new Set(N);return A.add(r),A})},[]),Me=u.useCallback(r=>{Re(r),R(r)},[Re]),_e=u.useCallback(r=>{if(!S||S.stops.length===0)return;const N=S.stops.findIndex(Y=>Y.stop.id===H),A=Math.min(S.stops.length-1,Math.max(0,(N<0?0:N)+r));Me(S.stops[A].stop.id)},[H,Me,S]),[Wt,Je]=u.useState(!1),[$t,Ve]=u.useState(!1),Gt=_?"pr":Z?"commit":ye?"branch":C.kind==="working-tree"?C.scope:C.kind,qt=_?e("session.githubIntegration.tabs.pullRequests"):Z?e("commitComparison.mode"):ye?e("walkthrough.scope.branch"):C.kind==="pr"?e("walkthrough.scope.pullRequest",{number:C.number}):e(W==="all"?"walkthrough.scope.all":W==="staged"?"walkthrough.scope.staged":"walkthrough.scope.working"),Xe=ft(r=>r.modelsMetadata),[de,Ft]=u.useState(void 0),Ie=r=>!r||de===void 0?!1:de.includes(r),Ut=d.readiness?.model&&d.readiness.model.hasLogin!==!1&&Ie(d.readiness.model.providerID)?`${d.readiness.model.providerID}/${d.readiness.model.modelID}`:void 0,Kt=d.result?.model&&Ie(d.result.model.providerID)?`${d.result.model.providerID}/${d.result.model.modelID}`:void 0,ke=(ue&&Ie(ue.split("/")[0])?ue:void 0)??Kt??Ut,[_t,...Jt]=(ke??"").split("/"),Ze=Jt.join("/");u.useEffect(()=>{if(de!==void 0)return;let r=!1;return(async()=>{try{const N=await wt("/api/small-model",{method:"GET",headers:{Accept:"application/json"}});if(!N.ok)return;const A=await N.json().catch(()=>null);!r&&Array.isArray(A?.authenticatedProviders)&&Ft(A.authenticatedProviders.filter(Y=>typeof Y=="string"))}catch{}})(),()=>{r=!0}},[de]);const Vt=u.useCallback((r,N)=>Xe.get(`${r}/${N}`)?.structured_output!==!1,[Xe]),Qe=d.status==="generating",Ye=d.result?.model?`${d.result.model.providerID}/${d.result.model.modelID}`:void 0,Te=d.result?.language,Pe=Te&&l.includes(Te)?Te:void 0,et=d.status==="ready"&&!!S,Ee=et&&!!Pe&&Pe!==D,tt=et&&!!Ye&&!!ke&&Ye!==ke,st=Os(d.stage,d.status==="generating"),ot=u.useRef(!1),rt=u.useRef(d.status);u.useEffect(()=>{rt.current!=="generating"&&d.status==="generating"&&(ot.current=!S),rt.current=d.status},[d.status,S]);const Xt=ot.current&&(d.status==="generating"||st.holding),Ae=d.error?.code==="context-too-small"||d.error?.code==="structured-output-unsupported"||d.error?.code==="no-model"||d.error?.code==="empty-diff"||d.error?.code==="only-generated"||d.error?.code==="output-exhausted"||d.error?.code==="server-unsupported"?d.error.code:d.readiness&&!d.readiness.ready&&!S&&d.readiness.reason!=="no-provider-login"?d.readiness.reason:void 0,Zt=d.error?.model??d.readiness?.model,Qt=d.error?.requiredChars??d.readiness?.requiredChars,Yt=d.error?.availableChars??d.readiness?.availableChars,pe=ce||!ke||!!(d.readiness&&!d.readiness.ready),ze=u.useCallback(r=>{pe||qe(i,C,{force:r,language:D})},[D,i,qe,pe,C]),nt=us(p||null),es=ve(r=>r.ensureNestedRepos),ts=ve(r=>r.selectNestedRepo);return m===!1&&nt!==!0?s.jsx(Ss,{rootIsGitRepo:m,resolvedIsGitRepo:nt,nestedRepos:f,onRetryDiscovery:()=>{n&&es(n,{force:!0})}}):s.jsxs("div",{ref:h,className:"flex h-full min-h-0 flex-col",children:[s.jsxs("header",{className:"flex shrink-0 flex-wrap items-center gap-2 border-b border-border/60 px-3 py-2",children:[m===!1&&Array.isArray(f)&&f.length>0?s.jsx(Ns,{repositories:f,selectedRepository:p??null,onSelectRepository:r=>{n&&ts(n,r)},repositoryRoot:n??void 0}):null,s.jsxs(it,{open:Wt,onOpenChange:Je,children:[s.jsx(lt,{asChild:!0,children:s.jsxs("button",{type:"button",className:"flex h-8 flex-shrink-0 items-center gap-1.5 rounded-md px-2 typography-ui-label font-semibold text-foreground outline-none hover:bg-interactive-hover focus-visible:ring-2 focus-visible:ring-ring","aria-label":e("walkthrough.scope.selectorAria"),children:[s.jsx("span",{className:"whitespace-nowrap",children:qt}),s.jsx(j,{name:"arrow-down-s",className:"size-4 flex-shrink-0 opacity-60"})]})}),s.jsx(ct,{align:"start",className:"w-48",children:s.jsxs(ut,{value:Gt,onValueChange:r=>{if(Je(!1),r==="commit"){ie(i),z({directory:i,kind:"commit"});return}if(r==="branch"){K?(z(null),Q(i,K)):(ie(i),z({directory:i,kind:"branch"}));return}if(r==="pr"){ie(i),z({directory:i,kind:"pr"});return}Ot(r)},children:[s.jsx(dt,{className:mt,children:e("walkthrough.scope.group.workingTree")}),_s.map(r=>s.jsx(he,{value:r,children:e(r==="all"?"walkthrough.scope.all":r==="staged"?"walkthrough.scope.staged":"walkthrough.scope.working")},r)),E&&s.jsxs(s.Fragment,{children:[s.jsx(pt,{}),s.jsx(he,{value:"branch",children:e("walkthrough.scope.branch")})]}),s.jsx(pt,{}),s.jsx(he,{value:"commit",children:e("commitComparison.mode")}),s.jsx(he,{value:"pr",children:e("session.githubIntegration.tabs.pullRequests")})]})})]}),ye&&s.jsx(xs,{branches:Pt?.all??[],currentBranch:E,base:le,onSelect:r=>{i&&E&&Et(i,E,r)}},JSON.stringify([i,E])),Z&&s.jsx(ks,{commits:F.commits,selectedHash:U,loading:F.loading,error:F.error,onSelect:F.select,onRefresh:()=>{F.refresh()}},JSON.stringify([i,E])),_&&s.jsx(ht,{comparison:re},JSON.stringify([i,E])),s.jsxs("div",{className:"ml-auto flex min-w-0 items-center gap-1",children:[_&&J&&s.jsxs(B,{variant:"ghost",size:"sm","aria-label":e("contextPanel.mode.diff"),title:e("contextPanel.mode.diff"),onClick:()=>Rt(n,{mode:"diff",diffScope:"pr"}),children:[s.jsx(j,{name:"arrow-left-right",className:"size-4"}),!x&&e("contextPanel.mode.diff")]}),s.jsxs(kt,{children:[s.jsx(bt,{asChild:!0,children:s.jsx(B,{type:"button",variant:"ghost",size:"sm","aria-label":e("walkthrough.help.guide"),onClick:()=>{ds(Js)},children:s.jsx(j,{name:"question",className:"size-4"})})}),s.jsx(vt,{children:s.jsx("p",{className:"typography-micro leading-tight",children:e("walkthrough.help.guide")})})]}),s.jsxs(it,{open:$t,onOpenChange:Ve,children:[s.jsx(lt,{asChild:!0,children:s.jsxs("button",{type:"button",className:"flex h-8 min-w-0 flex-shrink items-center gap-1.5 rounded-md px-2 typography-ui-label text-muted-foreground outline-none hover:bg-interactive-hover hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring","aria-label":e("walkthrough.language.selectorAria"),title:x?a(D):void 0,children:[s.jsx(j,{name:"global",className:"size-4 flex-shrink-0 opacity-70"}),!x&&s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"truncate",children:a(D)}),s.jsx(j,{name:"arrow-down-s",className:"size-4 flex-shrink-0 opacity-60"})]})]})}),s.jsxs(ct,{align:"end",className:"w-48",children:[s.jsx(dt,{className:mt,children:e("walkthrough.language.menuLabel")}),s.jsx(ut,{value:D,onValueChange:r=>{Ve(!1),Dt(i,C,r)},children:l.map(r=>s.jsx(he,{value:r,children:a(r)},r))})]})]}),s.jsx(xt,{providerId:_t??"",modelId:Ze,onChange:(r,N)=>{Lt(i,C,r&&N?`${r}/${N}`:null)},allowedProviderIds:de??[],isModelAllowed:Vt,tooltipsEnabled:!1,dropdownPortalToBody:!0,compact:x,className:V("h-8 min-w-0",!x&&"max-w-48")}),S&&s.jsxs(s.Fragment,{children:[s.jsx(B,{type:"button",variant:"ghost",size:"sm","aria-label":e("walkthrough.action.previous"),onClick:()=>_e(-1),children:s.jsx(j,{name:"arrow-right-s",className:"size-4 rotate-180"})}),s.jsx(B,{type:"button",variant:"ghost",size:"sm","aria-label":e("walkthrough.action.next"),onClick:()=>_e(1),children:s.jsx(j,{name:"arrow-right-s",className:"size-4"})})]}),Qe?s.jsx(B,{type:"button",variant:"outline",size:"sm","aria-label":x?e("walkthrough.action.cancel"):void 0,title:x?e("walkthrough.action.cancel"):void 0,onClick:()=>Ht(i,C),children:x?s.jsx(j,{name:"stop",className:"size-3.5"}):e("walkthrough.action.cancel")}):s.jsxs(B,{type:"button",variant:"outline",size:"sm",className:pe?"border-border text-muted-foreground":ys,disabled:pe,"aria-label":x?e(S?"walkthrough.action.regenerate":"walkthrough.action.generate"):void 0,title:x?e(S?"walkthrough.action.regenerate":"walkthrough.action.generate"):void 0,onClick:()=>ze(!!S),children:[s.jsx(j,{name:S?"refresh":"route",className:"size-3.5"}),!x&&e(S?"walkthrough.action.regenerate":"walkthrough.action.generate")]})]})]}),d.status==="generating"&&S&&s.jsxs("div",{className:"flex shrink-0 items-center gap-2 border-b border-border/60 bg-[var(--status-info-background)] px-3 py-2",children:[s.jsx(j,{name:"loader-4",className:"size-4 shrink-0 animate-spin text-[var(--status-info)]"}),s.jsx("span",{className:"typography-meta text-foreground",children:d.stage==="collecting"?e("walkthrough.stage.collecting"):d.stage==="assembling"?e("walkthrough.stage.assembling"):e("walkthrough.stage.asking")})]}),(Ee||tt)&&s.jsxs("div",{className:"flex shrink-0 items-center gap-2 border-b border-border/60 bg-[var(--status-info-background)] px-3 py-2",children:[s.jsx(j,{name:"information",className:"size-4 shrink-0 text-[var(--status-info)]"}),s.jsx("span",{className:"typography-meta text-foreground",children:Ee&&tt?e("walkthrough.missing.languageAndModel"):Ee?e("walkthrough.missing.language",{requested:a(D),shown:a(Pe)}):e("walkthrough.missing.model",{model:Ze})}),s.jsx(B,{type:"button",variant:"ghost",size:"xs",className:"ml-auto",disabled:pe,onClick:()=>ze(!1),children:e("walkthrough.action.generate")})]}),S?.isStale&&d.status!=="generating"&&s.jsxs("div",{className:"flex shrink-0 items-center gap-2 border-b border-border/60 bg-status-warning/10 px-3 py-2",children:[s.jsx(j,{name:"error-warning",className:"size-4 shrink-0 text-status-warning"}),s.jsx("span",{className:"typography-meta text-foreground",children:e("walkthrough.stale.banner",{count:S.staleStopCount})}),s.jsx(B,{type:"button",variant:"ghost",size:"xs",className:"ml-auto",disabled:Qe,onClick:()=>ze(!0),children:e("walkthrough.action.regenerate")})]}),d.error&&!Ae&&d.error.code!=="no-provider-login"&&s.jsxs("div",{className:"flex shrink-0 items-start gap-2 border-b border-border/60 bg-status-error/10 px-3 py-2",children:[s.jsx(j,{name:"error-warning",className:"mt-0.5 size-4 shrink-0 text-status-error"}),s.jsx("span",{className:"typography-meta line-clamp-2 text-foreground",title:d.error.message,children:d.error.message})]}),s.jsx("div",{className:V("flex min-h-0 flex-1",k?"flex-row":"flex-col"),children:Ge?s.jsxs("div",{className:"flex flex-1 flex-col items-center justify-center gap-3 p-8 text-center",children:[s.jsx("p",{className:"typography-meta text-muted-foreground",children:re.error??(re.loading?e("session.githubPrPicker.loading.pullRequests"):e("pullRequestComparison.select"))}),!re.loading&&s.jsx(ht,{comparison:re})]}):$e?s.jsx("div",{className:"flex flex-1 items-center justify-center gap-2 p-8 typography-meta text-muted-foreground",children:F.loading?s.jsx(j,{name:"loader-4",className:"size-6 animate-spin"}):F.error??e("commitComparison.noCommits")}):We?s.jsx("div",{className:"flex flex-1 flex-col items-center justify-center gap-3 p-8 text-center",children:!At&&E?s.jsx(j,{name:"loader-4",className:"size-6 animate-spin text-muted-foreground"}):s.jsx("p",{className:"typography-meta text-muted-foreground",children:e("gitView.pr.toast.baseBranchRequired")})}):Ae?s.jsx(Ts,{reason:Ae,model:Zt,requiredChars:Qt,availableChars:Yt,onRetry:()=>{je(i,C)}}):Xt?s.jsx("div",{className:"flex flex-1 flex-col items-center justify-center gap-3 p-8",children:s.jsx(Es,{progress:st})}):S?s.jsxs(s.Fragment,{children:[k&&s.jsxs(s.Fragment,{children:[s.jsx(Us,{view:S,activeStopId:H,visitedStopIds:T,onSelectStop:Me,width:M}),s.jsx("div",{role:"separator","aria-orientation":"vertical","aria-label":e("walkthrough.toc.resize"),tabIndex:0,onPointerDown:I,onKeyDown:te,className:V("group relative w-1 shrink-0 cursor-col-resize","before:absolute before:inset-y-0 before:-left-1 before:-right-1 before:content-['']","hover:bg-interactive-selection focus-visible:bg-interactive-selection focus-visible:outline-none",v&&"bg-interactive-selection")})]}),s.jsx(Bs,{view:S,activeStopId:H,scrollToStopId:oe,onActiveStopChange:Re,onScrollHandled:()=>R(null),renderSideBySide:Ct,wrapLines:Nt})]}):s.jsx("div",{className:"flex flex-1 flex-col items-center justify-center gap-3 p-8 text-center",children:d.status==="loading"?s.jsx(j,{name:"loader-4",className:"size-6 animate-spin text-muted-foreground"}):s.jsxs(s.Fragment,{children:[s.jsx(j,{name:"route",className:"size-6 text-muted-foreground"}),s.jsx("h3",{className:"typography-ui-label font-semibold text-foreground",children:e("walkthrough.empty.title")}),s.jsx("p",{className:"typography-meta max-w-md text-muted-foreground",children:e("walkthrough.empty.description")})]})})})]})};export{xn as WalkthroughView};
@@ -0,0 +1 @@
1
+ import{r as d,a as g}from"./textMateThemeFromAppTheme-CHo2fCgW.js";import"./themeResolver-BmJyTmjJ.js";import"./vendor-pierre-theming-C6Z4M5_u.js";import"./vendor-vite-runtime-DD1OZmLC.js";import"./vendor-shikijs-core-CGM_jqPK.js";import"./vendor-shikijs-types-CPSbSeK6.js";import"./vendor-shikijs-vscode-textmate-BgLrS_2D.js";import"./vendor-hast-util-to-html-BKBhbTDb.js";import"./vendor-html-void-elements-CkdplsNl.js";import"./vendor-property-information-rJCbAzvX.js";import"./vendor-zwitch-C2o2j-tx.js";import"./vendor-stringify-entities-CsH1VEn9.js";import"./vendor-character-entities-legacy-BpoLgcEt.js";import"./vendor-character-entities-html4-D7taRCQ7.js";import"./vendor-ccount-c2V3InAJ.js";import"./vendor-comma-separated-tokens-D8TqSuIK.js";import"./vendor-space-separated-tokens-DD3iYX1K.js";import"./vendor-hast-util-whitespace-D4Wp6AEg.js";import"./useAppFontEffects-khZXpFL_.js";import"./vendor-react-BUCujlKS.js";import"./vendor-scheduler-7OC5HNn7.js";import"./index-Cbci4i1W.js";import"./vendor-zod-CgAdXWZO.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-opencode-sdk-BJ73u-bH.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-base-ui-CsXYnR5c.js";import"./vendor-floating-ui-utils-D6FqdtJt.js";import"./vendor-floating-ui-react-dom-DxYCWdHj.js";import"./vendor-floating-ui-dom-BTvzWks8.js";import"./vendor-floating-ui-core-PuGzNPnN.js";import"./vendor-use-sync-external-store-D6wYuSt-.js";import"./vendor-class-variance-authority-5VPnzWs2.js";import"./vendor-clsx-B-dksMZM.js";import"./vendor-dnd-kit-core-BZknOX2w.js";import"./vendor-dnd-kit-utilities-B_MdXhJC.js";import"./vendor-dnd-kit-accessibility-BHxJPORy.js";import"./vendor-dnd-kit-sortable-CsEagZ81.js";import"./vendor-framer-motion-Bq3iTZ6r.js";import"./vendor-motion-dom-DcCgeG69.js";import"./vendor-motion-utils-BGh8QBgx.js";import"./vendor-tanstack-react-virtual-ClYN8CzB.js";import"./vendor-tanstack-virtual-core-BewVQryB.js";import"./contextPanelEmbeddedChat-CirXEPJq.js";import"./vendor-sonner-DFyL3AvE.js";import"./vendor-cmdk-DgLInKvT.js";import"./vendor-radix-ui-react-dialog-B94Bt2qq.js";import"./vendor-radix-ui-primitive-Dc_FVRD7.js";import"./vendor-radix-ui-react-compose-refs-DcAh5WdT.js";import"./vendor-radix-ui-react-context-Czxm7Z62.js";import"./vendor-radix-ui-react-id-f5BLKEVw.js";import"./vendor-radix-ui-react-use-layout-effect-D_3IhJdJ.js";import"./vendor-radix-ui-react-use-controllable-state-BFT5YmkA.js";import"./vendor-radix-ui-react-dismissable-layer-D7kXcwgJ.js";import"./vendor-radix-ui-react-primitive-DhVoX9SD.js";import"./vendor-radix-ui-react-slot-BQgQOasS.js";import"./vendor-radix-ui-react-use-callback-ref-BZPnuXAC.js";import"./vendor-radix-ui-react-use-escape-keydown-oph88g-F.js";import"./vendor-radix-ui-react-focus-scope-CiaxW4dD.js";import"./vendor-radix-ui-react-portal-BMJYHWck.js";import"./vendor-radix-ui-react-presence-CNxf-uq4.js";import"./vendor-radix-ui-react-focus-guards-B6qJXYua.js";import"./vendor-react-remove-scroll-DO7dCTnK.js";import"./vendor-tslib-De9GV7Vy.js";import"./vendor-react-remove-scroll-bar-BcFYyj3E.js";import"./vendor-react-style-singleton-q6EMHnwf.js";import"./vendor-get-nonce-C-Z93AgS.js";import"./vendor-use-sidecar-zDC0RhA3.js";import"./vendor-use-callback-ref-D3RC8gqK.js";import"./vendor-aria-hidden-DvXkyWUv.js";import"./vendor-codemirror-language-BgPj_McA.js";import"./vendor-lezer-common-B3-cUCR_.js";import"./vendor-codemirror-state-C9awkmn-.js";import"./vendor-marijn-find-cluster-break-DXwl3gUT.js";import"./vendor-codemirror-view-CiLROUVV.js";import"./vendor-style-mod-NZ5MEPvj.js";import"./vendor-w3c-keyname-Vcq4gwWv.js";import"./vendor-crelt-C8TCjufn.js";import"./vendor-lezer-highlight-CDMHUZ74.js";import"./vendor-codemirror-lang-javascript-Cc2ZYbgX.js";import"./vendor-lezer-javascript-D7Tj24ot.js";import"./vendor-lezer-lr-bhwg1HMg.js";import"./vendor-codemirror-autocomplete-DzPz9Wgq.js";import"./vendor-codemirror-lang-json-CMBS2tG9.js";import"./vendor-lezer-json-Iaex0UN-.js";import"./vendor-codemirror-lang-css-O0cZX78y.js";import"./vendor-lezer-css-C5xB6jxd.js";import"./vendor-codemirror-lang-html-CfgK872x.js";import"./vendor-lezer-html-C0I1p52t.js";import"./vendor-codemirror-lang-markdown-BPGOH9ye.js";import"./vendor-lezer-markdown-C6g-d6P3.js";import"./vendor-codemirror-language-data-CdzUmUyZ.js";import"./vendor-codemirror-lang-python-HahnQaAS.js";import"./vendor-lezer-python-CvuFxeZl.js";import"./vendor-codemirror-commands-B7H_j0iU.js";import"./vendor-legendapp-list-BuBPBC3R.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";const u=t=>/^#[0-9a-fA-F]{8}$/.test(t),n=t=>u(t)?t.slice(0,7):t;function l(t,r){return Object.defineProperty(t,"toString",{value:()=>r,enumerable:!1,configurable:!0}),Object.defineProperty(t,Symbol.toPrimitive,{value:()=>r,enumerable:!1,configurable:!0}),t}const f=40,i=new Map,s=new Map,c=t=>JSON.stringify(t),b=(t,r)=>{const o=t.colors?.["editor.background"],m=t.colors?.["editor.foreground"],e=o?n(o):void 0,p=m?n(m):void 0;if(!e||!p)throw new Error(`Theme "${r}" is missing editor.background/editor.foreground`);const a=t.tokenColors??[];return l({...t,name:r,fg:p,bg:e,settings:a},r)},T=t=>g(t),h=t=>{const r=c(t),o=i.get(r);if(o)return i.delete(r),i.set(r,o),o;const m=T(t),e=b(m,t.metadata.id);for(i.set(r,e);i.size>f;){const p=i.keys().next().value;if(p===void 0)break;i.delete(p)}return e},cr=t=>{const r=t.metadata.id,o=c(t);if(s.get(r)===o)return;const m=h(t);d(r,async()=>m),s.set(r,o)};export{cr as ensurePierreThemeRegistered,h as getResolvedShikiTheme,c as getThemeContentSignature};
@@ -0,0 +1 @@
1
+ import{R as N,f as oe,j as s}from"./vendor-react-BUCujlKS.js";import{u as ze}from"./vendor-tanstack-react-virtual-ClYN8CzB.js";import{f as Q,ax as Ee,aa as be,ab as ye,I as E,ac as we,h as J,B as Y,a5 as Te,jx as Ie,c0 as fe,c1 as ue,c2 as pe,c3 as ge,c4 as xe,c5 as ve,bg as Me,co as Pe,t as ae}from"./useAppFontEffects-khZXpFL_.js";import{u as ke}from"./index-Cbci4i1W.js";const Se={"?":{code:"?",color:"var(--status-info)",description:"Untracked file"},A:{code:"A",color:"var(--status-success)",description:"New file"},D:{code:"D",color:"var(--status-error)",description:"Deleted file"},R:{code:"R",color:"var(--status-info)",description:"Renamed file"},C:{code:"C",color:"var(--status-info)",description:"Copied file"},M:{code:"M",color:"var(--status-warning)",description:"Modified file"}},Fe=Se.M;function Re(f){const e=f.index?.trim(),t=f.working_dir?.trim();return e&&e!=="?"?e.charAt(0):t?t.charAt(0):e?.charAt(0)||t?.charAt(0)||"M"}function $e(f){const e=Re(f);return Se[e]??Fe}const He=N.memo(function(e){const t=oe.c(58),{file:l,actionLabel:b,actionSymbol:x,onAction:u,onViewDiff:c,onRevert:a,isReverting:h,stats:C,rowPaddingClassName:p,indentPx:y,actionAtStart:V,showRevert:S}=e,v=y===void 0?0:y,o=V===void 0?!1:V,j=S===void 0?!0:S;let d;t[0]!==l?(d=$e(l),t[0]=l,t[1]=d):d=t[1];const g=d,{t:I}=Q(),$=g.description,F=C?.insertions??0,A=C?.deletions??0;let z;t[2]!==u||t[3]!==c?(z=U=>{U.key===" "?(U.preventDefault(),u()):U.key==="Enter"&&(U.preventDefault(),c())},t[2]=u,t[3]=c,t[4]=z):z=t[4];const T=z;let M;t[5]!==u?(M=U=>{U.preventDefault(),U.stopPropagation(),u()},t[5]=u,t[6]=M):M=t[6];const w=M;let H;t[7]!==a?(H=U=>{U.preventDefault(),U.stopPropagation(),a()},t[7]=a,t[8]=H):H=t[8];const W=H;let L;t[9]!==b||t[10]!==x||t[11]!==w?(L=s.jsx("button",{type:"button",onClick:w,className:"flex size-5 shrink-0 items-center justify-center rounded typography-micro font-semibold text-muted-foreground hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--interactive-focus-ring)]","aria-label":b,title:b,children:x}),t[9]=b,t[10]=x,t[11]=w,t[12]=L):L=t[12];const R=L,X=`group flex items-center gap-2 py-1.5 cursor-pointer ${p??"px-3"}`;let P;t[13]!==v?(P=v>0?{paddingLeft:`${v}px`}:void 0,t[13]=v,t[14]=P):P=t[14];const q=o?R:null;let K;t[15]!==g.color?(K={color:g.color},t[15]=g.color,t[16]=K):K=t[16];let G;t[17]!==g.code||t[18]!==$||t[19]!==K?(G=s.jsx("span",{className:"typography-micro font-semibold w-4 text-center uppercase",style:K,title:$,"aria-label":$,children:g.code}),t[17]=g.code,t[18]=$,t[19]=K,t[20]=G):G=t[20];let O;t[21]!==l.path?(O=s.jsx(Ee,{filePath:l.path,className:"h-3.5 w-3.5 shrink-0"}),t[21]=l.path,t[22]=O):O=t[22];let B;if(t[23]!==l.path){e:{const U=l.path.lastIndexOf("/");if(U===-1){let ne;t[25]===Symbol.for("react.memo_cache_sentinel")?(ne={direction:"rtl",textAlign:"left",unicodeBidi:"plaintext"},t[25]=ne):ne=t[25],B=s.jsx("span",{className:"flex-1 min-w-0 truncate typography-ui-label text-foreground",style:ne,title:l.path,children:l.path});break e}const Ae=l.path.slice(0,U),De=l.path.slice(U);let te;t[26]===Symbol.for("react.memo_cache_sentinel")?(te={direction:"rtl",textAlign:"left",unicodeBidi:"plaintext"},t[26]=te):te=t[26];let se;t[27]===Symbol.for("react.memo_cache_sentinel")?(se=s.jsx("span",{className:"text-muted-foreground",children:"/"}),t[27]=se):se=t[27];const ce=s.jsx("span",{className:"text-foreground",children:De.slice(1)});let ie;t[28]!==ce?(ie=s.jsxs("span",{className:"flex-shrink-0 typography-ui-label",children:[se,ce]}),t[28]=ce,t[29]=ie):ie=t[29],B=s.jsxs("span",{className:"flex-1 min-w-0 flex items-baseline overflow-hidden",title:l.path,children:[s.jsx("span",{className:"min-w-0 truncate typography-ui-label text-muted-foreground",style:te,children:Ae}),ie]})}t[23]=l.path,t[24]=B}else B=t[24];let Z;t[30]===Symbol.for("react.memo_cache_sentinel")?(Z={color:"var(--status-success)"},t[30]=Z):Z=t[30];let i;t[31]!==F?(i=s.jsxs("span",{style:Z,children:["+",F]}),t[31]=F,t[32]=i):i=t[32];let n,r;t[33]===Symbol.for("react.memo_cache_sentinel")?(n=s.jsx("span",{className:"text-muted-foreground mx-0.5",children:"/"}),r={color:"var(--status-error)"},t[33]=n,t[34]=r):(n=t[33],r=t[34]);let m;t[35]!==A?(m=s.jsxs("span",{style:r,children:["-",A]}),t[35]=A,t[36]=m):m=t[36];let D;t[37]!==i||t[38]!==m?(D=s.jsxs("span",{className:"shrink-0 typography-micro",children:[i,n,m]}),t[37]=i,t[38]=m,t[39]=D):D=t[39];let k;t[40]!==l.path||t[41]!==W||t[42]!==h||t[43]!==j||t[44]!==I?(k=j?s.jsxs(be,{children:[s.jsx(ye,{asChild:!0,children:s.jsx("button",{type:"button",onClick:W,disabled:h,className:"flex size-5 shrink-0 items-center justify-center rounded text-muted-foreground hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50","aria-label":I("gitView.changes.revertFileAria",{path:l.path}),children:h?s.jsx(E,{name:"loader-4",className:"size-3.5 animate-spin"}):s.jsx(E,{name:"arrow-go-back",className:"size-3.5"})})}),s.jsx(we,{sideOffset:8,children:I("gitView.changes.revertFileTooltip")})]}):null,t[40]=l.path,t[41]=W,t[42]=h,t[43]=j,t[44]=I,t[45]=k):k=t[45];const _=o?null:R;let ee;return t[46]!==T||t[47]!==c||t[48]!==P||t[49]!==q||t[50]!==G||t[51]!==O||t[52]!==B||t[53]!==D||t[54]!==k||t[55]!==_||t[56]!==X?(ee=s.jsxs("div",{className:X,role:"button",tabIndex:0,onClick:c,onKeyDown:T,style:P,children:[q,G,O,B,D,k,_]}),t[46]=T,t[47]=c,t[48]=P,t[49]=q,t[50]=G,t[51]=O,t[52]=B,t[53]=D,t[54]=k,t[55]=_,t[56]=X,t[57]=ee):ee=t[57],ee}),je=14,Ve=f=>f.replace(/\\/g,"/").replace(/^\/+/,"").trim(),Ne=(f,e)=>({id:`dir:${f}`,path:f,name:e,children:new Map,directFiles:[],files:[]}),Le=f=>{const e=Ne("","");for(const t of f){const l=Ve(t.path);if(!l)continue;const x=l.split("/").filter(Boolean).slice(0,-1);let u=e;if(u.files.push(t),x.length>0){let c="";for(const a of x){c=c?`${c}/${a}`:a;const h=u.children.get(a);if(h){h.files.push(t),u=h;continue}const C=Ne(c,a);C.files.push(t),u.children.set(a,C),u=C}}u.directFiles.push(t)}return e},Ge=(f,e)=>{const t=[],l=(b,x)=>{const u=Array.from(b.children.values()).sort((a,h)=>a.path.localeCompare(h.path));for(const a of u)t.push({key:a.id,kind:"directory",depth:x,directory:a}),e.has(a.path)&&l(a,x+1);const c=[...b.directFiles].sort((a,h)=>a.path.localeCompare(h.path));for(const a of c)t.push({key:`file:${Ve(a.path)}`,kind:"file",depth:x,file:a})};return l(f,0),t},Oe=1e3,Ce=34,de=30,le="pl-0 pr-2",he=(f,e)=>`${f} ${e}`,Ze=({groups:f,diffStats:e,revertingPaths:t,isRevertingAll:l=!1,headerBackgroundClassName:b="bg-sidebar",onVisiblePathsChange:x,onRevertAll:u,onRevertDirectory:c})=>{const{t:a}=Q(),h=N.useRef(null),p=ke(i=>i.gitChangesViewMode)==="tree",y=N.useMemo(()=>f.filter(i=>i.entries.length>0),[f]),[V,S]=N.useState(new Set),[v,o]=N.useState(new Set),[j,d]=N.useState(!1),[g,I]=N.useState(null),$=N.useMemo(()=>y.map(i=>Le(i.entries)),[y]),F=N.useMemo(()=>{const i=[];return y.forEach((n,r)=>{Array.from($[r]?.children.values()??[]).forEach(m=>{i.push(he(n.id,m.path))})}),i},[$,y]);N.useEffect(()=>{p&&o(i=>{const n=new Set,r=new Set(F);return i.forEach(m=>{(m.slice(m.indexOf(" ")+1).includes("/")||r.has(m))&&n.add(m)}),F.forEach(m=>n.add(m)),n})},[p,F]);const A=N.useMemo(()=>{const i=[];return y.forEach((n,r)=>{if(i.push({type:"header",key:`header:${n.id}`,groupIndex:r}),!V.has(n.id)){if(p){const m=new Set;v.forEach(k=>{k.startsWith(`${n.id} `)&&m.add(k.slice(n.id.length+1))}),Ge($[r],m).forEach(k=>{k.kind==="file"?i.push({type:"file",key:`${n.id}:${k.key}`,groupIndex:r,file:k.file,depth:k.depth}):i.push({type:"directory",key:`${n.id}:${k.key}`,groupIndex:r,directory:k.directory,depth:k.depth})});return}n.entries.forEach(m=>{i.push({type:"file",key:`${n.id}:file:${m.path}`,groupIndex:r,file:m,depth:0})})}}),u&&y.length>0&&i.push({type:"revert-all",key:"revert-all"}),i},[V,v,p,u,$,y]),z=A.length,T=z>=Oe,M=ze({count:z,enabled:T,getScrollElement:()=>h.current,estimateSize:()=>Ce,overscan:12,getItemKey:i=>A[i]?.key??i}),w=M.getVirtualItems(),H=N.useMemo(()=>{if(!T)return 0;const i=h.current?.scrollTop??0;return w.find(r=>r.end>i)?.index??0},[T,w,h]);N.useEffect(()=>{if(!x)return;const i=n=>n&&n.type==="file"?n.file.path:null;if(z===0){x([]);return}if(!T){const n=[];for(const r of A)if(r.type==="file"&&(n.push(r.file.path),n.length>=de))break;x(n);return}x(A.slice(H,H+Math.ceil((h.current?.clientHeight??0)/Ce)+de).map(n=>i(n)).filter(n=>!!n).slice(0,de))},[x,z,A,T,H]);const W=N.useCallback(i=>{S(n=>{const r=new Set(n);return r.has(i)?r.delete(i):r.add(i),r})},[]),L=N.useCallback((i,n)=>{o(r=>{const m=new Set(r),D=he(i,n);return m.has(D)?m.delete(D):m.add(D),m})},[]),R=N.useMemo(()=>{const i=new Set;return y.forEach(n=>n.entries.forEach(r=>i.add(r.path))),Array.from(i)},[y]),X=R.length,P=g?l||g.paths.some(i=>t.has(i)):!1,q=N.useCallback(async()=>{!u||l||R.length===0||(await u(R),d(!1))},[R,l,u]),K=N.useCallback(async()=>{!c||!g||P||(await c(g.paths),I(null))},[P,c,g]),G=N.useCallback((i,n)=>{const r=V.has(i.id),m=i.entries.length;return s.jsxs("div",{className:J("sticky top-0 z-10 flex items-center gap-2 py-2",b,le,!n&&"mt-1 border-t border-border/40"),children:[s.jsx("button",{type:"button",onClick:()=>i.onActionAll(i.entries.map(D=>D.path)),className:"flex size-5 shrink-0 items-center justify-center rounded typography-micro font-semibold text-muted-foreground hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--interactive-focus-ring)]","aria-label":i.actionAllLabel,title:i.actionAllLabel,children:i.actionSymbol}),s.jsxs("button",{type:"button",onClick:()=>W(i.id),className:"flex min-w-0 flex-1 items-center gap-2 rounded text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--interactive-focus-ring)]","aria-expanded":!r,children:[s.jsx("h3",{className:"truncate typography-ui-header font-semibold text-foreground",children:i.title}),s.jsx("span",{className:"typography-meta text-muted-foreground",children:m}),s.jsx(E,{name:"arrow-down-s",className:J("size-3.5 shrink-0 text-muted-foreground transition-transform",r&&"-rotate-90")})]})]})},[V,b,W]),O=N.useCallback((i,n,r)=>{const m=v.has(he(i.id,n.path)),D=n.files.map(_=>_.path),k=l||D.some(_=>t.has(_));return s.jsxs("div",{className:J("group flex items-center gap-2 py-1.5",le),style:{paddingLeft:`${r*je}px`},children:[s.jsxs("button",{type:"button",onClick:()=>L(i.id,n.path),className:"flex min-w-0 flex-1 items-center gap-2 rounded text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring","aria-label":m?a("gitView.changes.collapseDirectoryAria",{path:n.path}):a("gitView.changes.expandDirectoryAria",{path:n.path}),children:[m?s.jsx(E,{name:"folder-open-fill",className:"h-4 w-4 flex-shrink-0 text-primary/60"}):s.jsx(E,{name:"folder-3-fill",className:"h-4 w-4 flex-shrink-0 text-primary/60"}),s.jsx("span",{className:"min-w-0 flex-1 truncate typography-ui-label text-foreground",title:n.path,children:n.name}),s.jsx("span",{className:"ml-auto shrink-0 typography-micro text-muted-foreground",children:n.files.length})]}),i.showRevertActions!==!1&&c?s.jsx("button",{type:"button",onClick:()=>I({path:n.path,paths:D,count:D.length}),disabled:k,className:"flex size-5 shrink-0 items-center justify-center rounded text-muted-foreground hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--interactive-focus-ring)] disabled:cursor-not-allowed disabled:opacity-50","aria-label":a("gitView.changes.revertDirectoryAria",{path:n.path}),title:a("gitView.changes.revertDirectoryTooltip"),children:k?s.jsx(E,{name:"loader-4",className:"size-3.5 animate-spin"}):s.jsx(E,{name:"arrow-go-back",className:"size-3.5"})}):null,s.jsx("button",{type:"button",onClick:()=>i.onActionAll(n.files.map(_=>_.path)),className:"flex size-5 shrink-0 items-center justify-center rounded typography-micro font-semibold text-muted-foreground hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--interactive-focus-ring)]","aria-label":a(i.actionSymbol==="+"?"gitView.changes.stageDirectoryAria":"gitView.changes.unstageDirectoryAria",{path:n.path}),title:a(i.actionSymbol==="+"?"gitView.changes.stageDirectoryAria":"gitView.changes.unstageDirectoryAria",{path:n.path}),children:i.actionSymbol})]})},[v,l,c,t,a,L]),B=N.useCallback((i,n)=>{if(i.type==="revert-all")return s.jsx("div",{className:J("flex justify-end py-2",le),children:s.jsxs(Y,{variant:"ghost",size:"sm",onClick:()=>d(!0),disabled:l,className:"gap-1.5 text-[var(--status-error)] hover:bg-[var(--status-error)]/10 hover:text-[var(--status-error)]",children:[s.jsx(E,{name:"arrow-go-back",className:"size-3.5"}),a("gitView.changes.revertAll")]})});const r=y[i.groupIndex];if(!r)return null;if(i.type==="header")return G(r,n);if(i.type==="directory")return O(r,i.directory,i.depth);const m=i.file;return s.jsx(He,{file:m,actionLabel:r.getActionLabel(m.path),actionSymbol:r.actionSymbol,onAction:()=>r.onActionFile(m.path),stats:e?.[r.statsScope]?.[m.path],onViewDiff:()=>r.onViewDiff(m.path),onRevert:()=>r.onRevertFile(m.path),isReverting:t.has(m.path)||l,rowPaddingClassName:le,indentPx:i.depth*je,actionAtStart:!p,showRevert:r.showRevertActions!==!1})},[e,l,p,O,G,t,a,y]),Z=N.useCallback(i=>{const n=A[i],r=A[i-1];return!n||!r||n.type!=="file"&&n.type!=="directory"||r.type!=="file"&&r.type!=="directory"?!1:r.groupIndex===n.groupIndex},[A]);return s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"relative flex h-full min-h-0 w-full flex-col overflow-hidden",children:[s.jsx(Te,{ref:h,className:"overlay-scrollbar-target overlay-scrollbar-container min-h-0 w-full flex-1 overflow-x-hidden overflow-y-auto",children:T?s.jsx("div",{style:{height:M.getTotalSize(),position:"relative"},children:w.map(i=>{const n=A[i.index];return n?s.jsx("div",{"data-index":i.index,ref:M.measureElement,style:{position:"absolute",top:0,left:0,width:"100%",transform:`translateY(${i.start}px)`},className:J(Z(i.index)&&"before:pointer-events-none before:absolute before:left-0 before:right-2 before:top-0 before:border-t before:border-border/60"),children:B(n,i.index===0)},n.key):null})}):s.jsx("div",{role:"list","aria-label":a("gitView.changes.changedFilesAria"),children:A.map((i,n)=>s.jsx("div",{className:J("relative",Z(n)&&"before:pointer-events-none before:absolute before:left-0 before:right-2 before:top-0 before:border-t before:border-border/60"),children:B(i,n===0)},i.key))})}),s.jsx(Ie,{containerRef:h,disableHorizontal:!0})]}),s.jsx(fe,{open:j,onOpenChange:i=>{!l&&!i&&d(!1)},children:s.jsxs(ue,{className:"max-w-md",children:[s.jsxs(pe,{children:[s.jsx(ge,{children:a("gitView.changes.revertAllDialogTitle")}),s.jsx(xe,{children:X===1?a("gitView.changes.revertAllDescriptionSingle",{count:X}):a("gitView.changes.revertAllDescriptionPlural",{count:X})})]}),s.jsxs(ve,{children:[s.jsx(Y,{variant:"outline",size:"sm",onClick:()=>d(!1),disabled:l,children:a("gitView.common.cancel")}),s.jsx(Y,{variant:"destructive",size:"sm",onClick:()=>{q()},disabled:l,children:a(l?"gitView.changes.reverting":"gitView.changes.revertAll")})]})]})}),s.jsx(fe,{open:!!g,onOpenChange:i=>{!P&&!i&&I(null)},children:s.jsxs(ue,{className:"max-w-md",children:[s.jsxs(pe,{children:[s.jsx(ge,{children:a("gitView.changes.revertDirectoryDialogTitle")}),s.jsx(xe,{children:g?g.count===1?a("gitView.changes.revertDirectoryDescriptionSingle",{count:g.count,path:g.path}):a("gitView.changes.revertDirectoryDescriptionPlural",{count:g.count,path:g.path}):null})]}),s.jsxs(ve,{children:[s.jsx(Y,{variant:"outline",size:"sm",onClick:()=>I(null),disabled:P,children:a("gitView.common.cancel")}),s.jsx(Y,{variant:"destructive",size:"sm",onClick:()=>{K()},disabled:P||!g,children:a(P?"gitView.changes.reverting":"gitView.changes.revertDirectory")})]})]})})]})},me=38,re=200,Ke=f=>{const e=oe.c(23),{value:t,onChange:l,onSubmit:b,placeholder:x,disabled:u,hasTouchInput:c,isMobile:a}=f,h=u===void 0?!1:u,C=c===void 0?!1:c,p=a===void 0?!1:a,{t:y}=Q(),V=N.useRef(null),S=ke(Be);let v;e[0]===Symbol.for("react.memo_cache_sentinel")?(v=()=>{const w=V.current;if(!w)return;const H=document.activeElement===w,W=()=>{w.style.height=`${me}px`;const R=w.scrollHeight,X=Math.min(Math.max(R,me),re);w.style.height=`${X}px`,w.style.overflowY=R>re?"auto":"hidden",R>re&&!H&&(w.scrollTop=w.scrollHeight)};W();const L=window.requestAnimationFrame(W);return()=>{window.cancelAnimationFrame(L)}},e[0]=v):v=e[0];let o;e[1]!==t?(o=[t],e[1]=t,e[2]=o):o=e[2],N.useLayoutEffect(v,o);let j;e[3]!==l?(j=w=>l(w.target.value),e[3]=l,e[4]=j):j=e[4];let d;e[5]!==b?(d=w=>{w.key==="Enter"&&(w.metaKey||w.ctrlKey)&&!w.shiftKey&&!w.altKey&&(w.preventDefault(),b?.())},e[5]=b,e[6]=d):d=e[6];let g;e[7]!==x||e[8]!==y?(g=x??y("gitView.commit.messagePlaceholder"),e[7]=x,e[8]=y,e[9]=g):g=e[9];const I=C?"on":"off",$=C?"sentences":"off",F=p||S,A=h&&"opacity-50";let z;e[10]!==A?(z=J("w-full rounded-lg border border-border/60 bg-surface-elevated px-3 py-2 typography-ui-label text-foreground placeholder:text-muted-foreground","resize-none outline-none transition-[border-color,box-shadow] duration-150","focus-visible:ring-2 focus-visible:ring-[var(--interactive-focus-ring)]",A),e[10]=A,e[11]=z):z=e[11];let T;e[12]===Symbol.for("react.memo_cache_sentinel")?(T={minHeight:me,maxHeight:re},e[12]=T):T=e[12];let M;return e[13]!==h||e[14]!==$||e[15]!==F||e[16]!==z||e[17]!==j||e[18]!==d||e[19]!==g||e[20]!==I||e[21]!==t?(M=s.jsx("textarea",{ref:V,value:t,onChange:j,onKeyDown:d,placeholder:g,rows:1,disabled:h,autoCorrect:I,autoCapitalize:$,spellCheck:F,className:z,style:T}),e[13]=h,e[14]=$,e[15]=F,e[16]=z,e[17]=j,e[18]=d,e[19]=g,e[20]=I,e[21]=t,e[22]=M):M=e[22],M};function Be(f){return f.inputSpellcheckEnabled}const _e=f=>{const e=oe.c(30),{highlights:t,onInsert:l}=f,{t:b}=Q();if(t.length===0)return null;let x;e[0]!==t||e[1]!==l?(x=()=>{l(t)},e[0]=t,e[1]=l,e[2]=x):x=e[2];const u=x;let c;e[3]!==b?(c=b("gitView.commit.aiHighlights.title"),e[3]=b,e[4]=c):c=e[4];let a;e[5]!==c?(a=s.jsx("p",{className:"typography-micro text-muted-foreground",children:c}),e[5]=c,e[6]=a):a=e[6];let h;e[7]!==b?(h=b("gitView.commit.aiHighlights.insertAria"),e[7]=b,e[8]=h):h=e[8];let C;e[9]===Symbol.for("react.memo_cache_sentinel")?(C=s.jsx(E,{name:"arrow-down",className:"size-4"}),e[9]=C):C=e[9];let p;e[10]!==u||e[11]!==h?(p=s.jsx(ye,{asChild:!0,children:s.jsx(Y,{variant:"ghost",size:"icon",className:"size-6",onClick:u,"aria-label":h,children:C})}),e[10]=u,e[11]=h,e[12]=p):p=e[12];let y;e[13]!==b?(y=b("gitView.commit.aiHighlights.insertTooltip"),e[13]=b,e[14]=y):y=e[14];let V;e[15]!==y?(V=s.jsx(we,{sideOffset:8,children:y}),e[15]=y,e[16]=V):V=e[16];let S;e[17]!==p||e[18]!==V?(S=s.jsxs(be,{children:[p,V]}),e[17]=p,e[18]=V,e[19]=S):S=e[19];let v;e[20]!==a||e[21]!==S?(v=s.jsxs("div",{className:"flex items-center justify-between gap-2",children:[a,S]}),e[20]=a,e[21]=S,e[22]=v):v=e[22];let o;e[23]!==t?(o=t.map(Ue),e[23]=t,e[24]=o):o=e[24];let j;e[25]!==o?(j=s.jsx("ul",{className:"space-y-1",children:o}),e[25]=o,e[26]=j):j=e[26];let d;return e[27]!==v||e[28]!==j?(d=s.jsxs("div",{className:"space-y-2 rounded-xl border border-border/60 bg-transparent px-3 py-2",children:[v,j]}),e[27]=v,e[28]=j,e[29]=d):d=e[29],d};function Ue(f,e){return s.jsx("li",{className:"typography-meta text-foreground",children:f},`${f}-${e}`)}const Je=f=>{const e=oe.c(80),{stagedCount:t,commitMessage:l,onCommitMessageChange:b,generatedHighlights:x,onInsertHighlights:u,onGenerateMessage:c,isGeneratingMessage:a,onCommit:h,onCommitAndPush:C,commitAction:p,hasPendingIndexMutation:y,gitmojiEnabled:V,onOpenGitmojiPicker:S}=f,v=y===void 0?!1:y,{t:o}=Q(),j=t>0;let d;e[0]!==p||e[1]!==l||e[2]!==v||e[3]!==j?(d=l.trim()&&j&&p===null&&!v,e[0]=p,e[1]=l,e[2]=v,e[3]=j,e[4]=d):d=e[4];const g=d,{isMobile:I,hasTouchInput:$}=Me();let F;e[5]!==o?(F=o("gitView.commit.title"),e[5]=o,e[6]=F):F=e[6];let A;e[7]!==F?(A=s.jsx("h3",{className:"typography-ui-header font-semibold text-foreground",children:F}),e[7]=F,e[8]=A):A=e[8];let z;e[9]!==j||e[10]!==o?(z=j?null:s.jsx("span",{className:"min-w-0 truncate typography-meta text-muted-foreground",children:o("gitView.commit.stageFilesHint")}),e[9]=j,e[10]=o,e[11]=z):z=e[11];let T;e[12]!==A||e[13]!==z?(T=s.jsxs("div",{className:"flex w-full items-baseline gap-2 px-0 pt-2 pb-1",children:[A,z]}),e[12]=A,e[13]=z,e[14]=T):T=e[14];let M;e[15]!==x||e[16]!==u?(M=s.jsx(_e,{highlights:x,onInsert:u}),e[15]=x,e[16]=u,e[17]=M):M=e[17];let w;e[18]!==g||e[19]!==a||e[20]!==h?(w=()=>{g&&!a&&h()},e[18]=g,e[19]=a,e[20]=h,e[21]=w):w=e[21];let H;e[22]!==o?(H=o("gitView.commit.messagePlaceholder"),e[22]=o,e[23]=H):H=e[23];const W=p!==null;let L;e[24]!==l||e[25]!==$||e[26]!==I||e[27]!==b||e[28]!==W||e[29]!==w||e[30]!==H?(L=s.jsx(Ke,{value:l,onChange:b,onSubmit:w,placeholder:H,disabled:W,hasTouchInput:$,isMobile:I}),e[24]=l,e[25]=$,e[26]=I,e[27]=b,e[28]=W,e[29]=w,e[30]=H,e[31]=L):L=e[31];let R;e[32]!==V||e[33]!==S||e[34]!==o?(R=V&&s.jsxs(Y,{variant:"outline",size:"sm",onClick:S,className:"w-fit",type:"button",children:[s.jsx(E,{name:"emotion-happy",className:"size-4"}),o("gitView.commit.addGitmoji")]}),e[32]=V,e[33]=S,e[34]=o,e[35]=R):R=e[35];const X=a||p!==null||v||t===0;let P;e[36]!==o?(P=o("gitView.commit.generateAria"),e[36]=o,e[37]=P):P=e[37];let q;e[38]!==a?(q=a?s.jsx(E,{name:"loader-4",className:"size-4 animate-spin"}):s.jsx(E,{name:"ai-generate-2",className:"size-4 text-primary"}),e[38]=a,e[39]=q):q=e[39];let K;e[40]!==o?(K=o("gitView.commit.generate"),e[40]=o,e[41]=K):K=e[41];let G;e[42]!==K?(G=s.jsx("span",{className:"commit-actions__label",children:K}),e[42]=K,e[43]=G):G=e[43];let O;e[44]!==c||e[45]!==X||e[46]!==P||e[47]!==q||e[48]!==G?(O=s.jsxs(Y,{variant:"outline",size:"sm",onClick:c,disabled:X,type:"button","aria-label":P,className:"commit-actions__btn",children:[q,G]}),e[44]=c,e[45]=X,e[46]=P,e[47]=q,e[48]=G,e[49]=O):O=e[49];let B;e[50]===Symbol.for("react.memo_cache_sentinel")?(B=s.jsx("div",{className:"flex-1"}),e[50]=B):B=e[50];const Z=!g||a;let i;e[51]!==o?(i=o("gitView.commit.commitAria"),e[51]=o,e[52]=i):i=e[52];let n;e[53]!==p||e[54]!==o?(n=p==="commit"?s.jsxs(s.Fragment,{children:[s.jsx(E,{name:"loader-4",className:"size-4 animate-spin"}),s.jsx("span",{className:"commit-actions__label",children:o("gitView.commit.committing")})]}):s.jsxs(s.Fragment,{children:[s.jsx(E,{name:"git-commit",className:"size-4"}),s.jsx("span",{className:"commit-actions__label",children:o("gitView.commit.commit")})]}),e[53]=p,e[54]=o,e[55]=n):n=e[55];let r;e[56]!==h||e[57]!==Z||e[58]!==i||e[59]!==n?(r=s.jsx(Y,{size:"sm",variant:"outline",onClick:h,disabled:Z,className:"commit-actions__btn whitespace-nowrap","aria-label":i,children:n}),e[56]=h,e[57]=Z,e[58]=i,e[59]=n,e[60]=r):r=e[60];let m;e[61]!==g||e[62]!==p||e[63]!==a||e[64]!==I||e[65]!==C||e[66]!==o?(m=I?s.jsxs(be,{children:[s.jsx(ye,{asChild:!0,children:s.jsx(Y,{variant:"default",size:"sm",onClick:()=>C(),disabled:!g||a,className:"h-7 w-7 p-0","aria-label":o("gitView.commit.pushAria"),children:p==="commitAndPush"?s.jsx(E,{name:"loader-4",className:"size-4 animate-spin"}):s.jsx(E,{name:"arrow-up",className:"size-3.5"})})}),s.jsx(we,{side:"top",children:s.jsx("p",{children:o("gitView.commit.push")})})]}):s.jsx(Y,{size:"sm",variant:"default",onClick:()=>C(),disabled:!g||a,className:"commit-actions__btn","aria-label":o("gitView.commit.pushAria"),children:p==="commitAndPush"?s.jsxs(s.Fragment,{children:[s.jsx(E,{name:"loader-4",className:"size-4 animate-spin"}),s.jsx("span",{className:"commit-actions__label commit-actions__label--push",children:o("gitView.commit.pushing")})]}):s.jsxs(s.Fragment,{children:[s.jsx(E,{name:"arrow-up",className:"size-3.5"}),s.jsx("span",{className:"commit-actions__label commit-actions__label--push",children:o("gitView.commit.push")})]})}),e[61]=g,e[62]=p,e[63]=a,e[64]=I,e[65]=C,e[66]=o,e[67]=m):m=e[67];let D;e[68]!==O||e[69]!==r||e[70]!==m?(D=s.jsxs("div",{className:"@container/commit-actions flex items-center gap-2 min-w-0",children:[O,B,r,m]}),e[68]=O,e[69]=r,e[70]=m,e[71]=D):D=e[71];let k;e[72]!==L||e[73]!==R||e[74]!==D||e[75]!==M?(k=s.jsxs("div",{className:"flex flex-col gap-3 px-0 pt-1 pb-3",children:[M,L,R,D]}),e[72]=L,e[73]=R,e[74]=D,e[75]=M,e[76]=k):k=e[76];let _;return e[77]!==k||e[78]!==T?(_=s.jsxs("section",{className:"border-0 bg-transparent rounded-none",children:[T,k]}),e[77]=k,e[78]=T,e[79]=_):_=e[79],_},Qe=({open:f,onOpenChange:e,targetBranch:t,changedFileCount:l,onCommitAndSwitch:b,onGenerateMessage:x,onRevertAndSwitch:u})=>{const{t:c}=Q(),[a,h]=N.useState(""),[C,p]=N.useState(null),[y,V]=N.useState(!1),S=C!==null;N.useEffect(()=>{f||(h(""),V(!1))},[f]);const v=async()=>{p("generate");try{const d=await x();d&&h(d)}catch(d){ae.error(d instanceof Error?d.message:c("gitView.dirtySwitch.actionFailed"))}finally{p(null)}},o=async()=>{p("commit");try{let d=a.trim();if(!d){if(d=(await x()).trim(),!d){ae.error(c("gitView.toast.enterCommitMessage"));return}h(d)}await b(d,y)}catch(d){ae.error(d instanceof Error?d.message:c("gitView.dirtySwitch.actionFailed"))}finally{p(null)}},j=async()=>{p("revert");try{await u()}catch(d){ae.error(d instanceof Error?d.message:c("gitView.dirtySwitch.actionFailed"))}finally{p(null)}};return s.jsx(fe,{open:f,onOpenChange:d=>{S||e(d)},children:s.jsx(ue,{className:"max-w-md w-[calc(100vw-2rem)]",children:s.jsxs("div",{className:"flex flex-col gap-4",children:[s.jsxs(pe,{children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(E,{name:"alert",className:"size-5 shrink-0 text-[var(--status-warning)]"}),s.jsx(ge,{children:c("gitView.dirtySwitch.title")})]}),s.jsx(xe,{children:l===1?c("gitView.dirtySwitch.descriptionSingle",{branch:t}):c("gitView.dirtySwitch.descriptionPlural",{branch:t,count:l})})]}),s.jsxs("div",{className:"flex items-center gap-2 rounded-lg border border-border/60 px-3 py-2 focus-within:border-border",children:[s.jsx("input",{value:a,onChange:d=>h(d.target.value),placeholder:c("gitView.commit.messagePlaceholder"),disabled:S,onKeyDown:d=>{d.key==="Enter"&&!S&&(d.preventDefault(),o())},className:"min-w-0 flex-1 bg-transparent typography-meta text-foreground outline-none placeholder:text-muted-foreground"}),s.jsx("button",{type:"button",onClick:()=>{v()},disabled:S,"aria-label":c("gitView.commit.generate"),title:c("gitView.commit.generate"),className:"shrink-0 text-muted-foreground hover:text-foreground disabled:opacity-50",children:C==="generate"?s.jsx(E,{name:"loader-4",className:"size-4 animate-spin"}):s.jsx(E,{name:"ai-generate-2",className:"size-4 text-primary"})})]}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(Pe,{checked:y,onChange:V,disabled:S,ariaLabel:c("gitView.dirtySwitch.pushAfterCommit")}),s.jsx("span",{className:"typography-ui-label text-foreground cursor-pointer select-none",onClick:()=>!S&&V(!y),children:c("gitView.dirtySwitch.pushAfterCommit")})]}),s.jsxs("div",{className:"flex items-center justify-between gap-2 pt-1",children:[s.jsxs(Y,{variant:"destructive",size:"sm",onClick:()=>{j()},disabled:S,className:"gap-2",children:[C==="revert"?s.jsx(E,{name:"loader-4",className:"size-4 animate-spin"}):null,c("gitView.dirtySwitch.revertAndSwitch")]}),s.jsxs(Y,{variant:"default",size:"sm",onClick:()=>{o()},disabled:S,className:"gap-2",children:[C==="commit"?s.jsx(E,{name:"loader-4",className:"size-4 animate-spin"}):null,c("gitView.dirtySwitch.commitAndSwitch")]})]})]})})})},et=async({git:f,directory:e,remote:t,dirtyWorktreeError:l,onPulled:b,onPushed:x})=>{await f.gitFetch(e,{remote:t.name});const u=await f.getGitStatus(e),c=`${t.name}/`,a=u.tracking?.startsWith(c)?u.tracking.slice(c.length):void 0;if((u.behind??0)>0){if((u.files?.length??0)>0)throw new Error(l);const C=await f.gitPull(e,{remote:t.name,branch:a,rebase:!0});b?.(C)}const h=await f.gitPush(e);return h.pushed.length>0&&x?.(h),h};export{Ze as C,Qe as D,Je as a,et as p};
@@ -1,3 +1,3 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/vendor-shiki-Bbf2GEcE.js","assets/vendor-vite-runtime-DD1OZmLC.js","assets/vendor-shikijs-core-CGM_jqPK.js","assets/vendor-shikijs-types-CPSbSeK6.js","assets/vendor-shikijs-vscode-textmate-BgLrS_2D.js","assets/vendor-hast-util-to-html-BKBhbTDb.js","assets/vendor-html-void-elements-CkdplsNl.js","assets/vendor-property-information-rJCbAzvX.js","assets/vendor-zwitch-C2o2j-tx.js","assets/vendor-stringify-entities-CsH1VEn9.js","assets/vendor-character-entities-legacy-BpoLgcEt.js","assets/vendor-character-entities-html4-D7taRCQ7.js","assets/vendor-ccount-c2V3InAJ.js","assets/vendor-comma-separated-tokens-D8TqSuIK.js","assets/vendor-space-separated-tokens-DD3iYX1K.js","assets/vendor-hast-util-whitespace-D4Wp6AEg.js","assets/vendor-shikijs-engine-oniguruma-DPWuIF1G.js"])))=>i.map(i=>d[i]);
2
- import{_ as I}from"./vendor-vite-runtime-DD1OZmLC.js";import{b as j,c as O}from"./vendor-shiki-Bbf2GEcE.js";import{t as f}from"./themeResolver-BmJyTmjJ.js";import{s as M,p as F,n as v}from"./vendor-pierre-theming-C6Z4M5_u.js";import{c as N}from"./vendor-shikijs-engine-oniguruma-DPWuIF1G.js";import{c as z}from"./vendor-shikijs-engine-javascript-Cme4830A.js";import{fL as L,hG as G}from"./useAppFontEffects-DeStGcUT.js";import{t as H}from"./vendor-shikijs-transformers-CZWsLLKm.js";function pe(e,t){return e==null||t==null||typeof e=="string"||typeof t=="string"?e===t:e.dark===t.dark&&e.light===t.light}function ue(e,t){return e?.cacheKey===t?.cacheKey&&e?.contents===t?.contents&&e?.name===t?.name&&e?.lang===t?.lang}function S(e){return{type:"text",value:e}}function m({tagName:e,children:t=[],properties:r={}}){return{type:"element",tagName:e,properties:r,children:t}}function fe({name:e,width:t=16,height:r=16,properties:n}){return m({tagName:"svg",properties:{width:t,height:r,viewBox:"0 0 16 16",...n},children:[m({tagName:"use",properties:{href:`#${e.replace(/^#/,"")}`}})]})}function V(e){let t=e.children[0];for(;t!=null;){if(t.type==="element"&&t.tagName==="code")return t;"children"in t?t=t.children[0]:t=null}}function de(e){return m({tagName:"div",properties:{"data-gutter":""},children:e})}function me(e,t,r,n={}){return m({tagName:"div",properties:{"data-line-type":e,"data-column-number":t,"data-line-index":r,...n},children:t!=null?[m({tagName:"span",properties:{"data-line-number-content":""},children:[S(`${t}`)]})]:void 0})}function he(e,t,r){return m({tagName:"div",properties:{"data-gutter-buffer":t,"data-buffer-size":r,"data-line-type":t==="annotation"?void 0:e,style:t==="annotation"?`grid-row: span ${r};`:`grid-row: span ${r};min-height:calc(${r} * 1lh);`}})}const g=new Map,k=new Map,A=new Map,T=new Set;function E(e,t){e=Array.isArray(e)?e:[e];for(const r of e){if(T.has(r.name))continue;let n=g.get(r.name);n==null&&(n=r,g.set(r.name,n)),T.add(n.name),t.loadLanguageSync(n.data)}}function q(){return typeof WorkerGlobalScope<"u"&&typeof self<"u"&&self instanceof WorkerGlobalScope}async function D(e){if(q())throw new Error(`resolveLanguage("${e}") cannot be called from a worker context. Languages must be pre-resolved on the main thread and passed to the worker via the resolvedLanguages parameter.`);const t=k.get(e);if(t!=null)return t;try{let r=A.get(e);if(r==null&&Object.prototype.hasOwnProperty.call(j,e)&&(r=j[e]),r==null)throw new Error(`resolveLanguage: "${e}" not found in bundled or custom languages`);const n=r().then(({default:o})=>{const s={name:e,data:o};return g.has(e)||g.set(e,s),s});return k.set(e,n),await n}finally{k.delete(e)}}function W(e){return g.get(e)??D(e)}const $=new Set;function R(e,t){e=Array.isArray(e)?e:[e];for(let r of e){let n;if(typeof r=="string"){if(n=f.getResolvedTheme(r),n==null)throw new Error(`loadResolvedThemes: ${r} is not resolved, you must resolve it before calling loadResolvedThemes`)}else n=r,r=r.name,f.getResolvedTheme(r)==null&&f.seedResolvedTheme(r,n);$.has(r)||($.add(r),t.loadThemeSync(n))}}function P(e){if(q())throw new Error(`Theme "${e}" cannot be resolved from a worker context. Themes must be pre-resolved on the main thread and passed to the worker via the resolvedLanguages parameter.`);if(f.hasRegisteredTheme(e))return;const t=M.getTheme(e);if(t!=null){f.registerThemeIfAbsent(t.name,t.load);return}throw new Error(`No valid theme loader registered for "${e}"`)}function U(e,t){if(t.name!==e)throw new Error(`resolvedTheme: themeName: ${e} does not match theme.name: ${t.name}`)}async function K(e){P(e);const t=await f.resolveTheme(e);return U(e,t),t}function X(e){return f.getResolvedTheme(e)??K(e)}let c;async function ge({themes:e,langs:t,preferredHighlighter:r="shiki-js"}){c??=O({themes:[],langs:["text"],engine:r==="shiki-wasm"?N(I(()=>import("./vendor-shiki-Bbf2GEcE.js").then(a=>a.w),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]))):z()});const n=B(c)?await c:c;c=n;const o=[];for(const a of t){if(a==="text"||a==="ansi")continue;const i=W(a);"then"in i?o.push(i):E(i,n)}const s=[];for(const a of e){const i=X(a);"then"in i?s.push(i):R(i,c)}return(o.length>0||s.length>0)&&await Promise.all([Promise.all(o).then(a=>{E(a,n)}),Promise.all(s).then(a=>{R(a,n)})]),n}function be(){if(c!=null&&!("then"in c))return c}function B(e=c){return e!=null&&"then"in e}for(const e of F.getThemes())f.registerThemeIfAbsent(e.name,e.load);function ye(e=L){const t=[];return typeof e=="string"?t.push(e):(t.push(e.dark),t.push(e.light)),t}const d=new Map;let J=0;const h={"1c":"1c",abap:"abap",as:"actionscript-3",ada:"ada",adb:"ada",ads:"ada",adoc:"asciidoc",asciidoc:"asciidoc","component.html":"angular-html","component.ts":"angular-ts",conf:"nginx",htaccess:"apache",cls:"tex",trigger:"apex",apl:"apl",applescript:"applescript",scpt:"applescript",ara:"ara",asm:"asm",s:"riscv",astro:"astro",awk:"awk",bal:"ballerina",sh:"zsh",bash:"zsh",bat:"cmd",cmd:"cmd",be:"berry",beancount:"beancount",bib:"bibtex",bicep:"bicep","blade.php":"blade",bsl:"bsl",c:"c",h:"objective-cpp",cs:"csharp",cpp:"cpp",hpp:"cpp",cc:"cpp",cxx:"cpp",hh:"cpp",cdc:"cdc",cairo:"cairo",clar:"clarity",clj:"clojure",cljs:"clojure",cljc:"clojure",soy:"soy",cmake:"cmake","CMakeLists.txt":"cmake",cob:"cobol",cbl:"cobol",cobol:"cobol",CODEOWNERS:"codeowners",ql:"ql",coffee:"coffeescript",lisp:"lisp",cl:"lisp",lsp:"lisp",log:"log",v:"verilog",cql:"cql",cr:"crystal",css:"css",csv:"csv",cue:"cue",cypher:"cypher",cyp:"cypher",d:"d",dart:"dart",dax:"dax",desktop:"desktop",diff:"diff",patch:"diff",Dockerfile:"dockerfile",dockerfile:"dockerfile",env:"dotenv",dm:"dream-maker",edge:"edge",el:"emacs-lisp",ex:"elixir",exs:"elixir",elm:"elm",erb:"erb",erl:"erlang",hrl:"erlang",f:"fortran-fixed-form",for:"fortran-fixed-form",fs:"fsharp",fsi:"fsharp",fsx:"fsharp",f03:"f03",f08:"f08",f18:"f18",f77:"f77",f90:"fortran-free-form",f95:"fortran-free-form",fnl:"fennel",fish:"fish",ftl:"ftl",tres:"gdresource",res:"gdresource",gd:"gdscript",gdshader:"gdshader",gs:"genie",feature:"gherkin",COMMIT_EDITMSG:"git-commit","git-rebase-todo":"git-rebase",gjs:"glimmer-js",gleam:"gleam",gts:"glimmer-ts",glsl:"glsl",vert:"glsl",frag:"glsl",shader:"shaderlab",gp:"gnuplot",plt:"gnuplot",gnuplot:"gnuplot",go:"go",graphql:"graphql",gql:"graphql",groovy:"groovy",gvy:"groovy",hack:"hack",haml:"haml",hbs:"handlebars",handlebars:"handlebars",hs:"haskell",lhs:"haskell",hx:"haxe",hcl:"hcl",hjson:"hjson",hlsl:"hlsl",fx:"hlsl",html:"html",htm:"html",http:"http",rest:"http",hxml:"hxml",hy:"hy",imba:"imba",ini:"ini",cfg:"ini",jade:"pug",pug:"pug",java:"java",js:"javascript",mjs:"javascript",cjs:"javascript",jinja:"jinja",jinja2:"jinja",j2:"jinja",jison:"jison",jl:"julia",json:"json",json5:"json5",jsonc:"jsonc",jsonl:"jsonl",jsonnet:"jsonnet",libsonnet:"jsonnet",jssm:"jssm",jsx:"jsx",kt:"kotlin",kts:"kts",kql:"kusto",tex:"tex",ltx:"tex",lean:"lean4",less:"less",liquid:"liquid",lit:"lit",ll:"llvm",logo:"logo",lua:"lua",luau:"luau",Makefile:"makefile",mk:"makefile",makefile:"makefile",md:"markdown",markdown:"markdown",marko:"marko",m:"wolfram",mat:"matlab",mdc:"mdc",mdx:"mdx",wiki:"wikitext",mediawiki:"wikitext",mmd:"mermaid",mermaid:"mermaid",mips:"mipsasm",mojo:"mojo","🔥":"mojo",move:"move",nar:"narrat",nf:"nextflow",nim:"nim",nims:"nim",nimble:"nim",nix:"nix",nu:"nushell",mm:"objective-cpp",ml:"ocaml",mli:"ocaml",mll:"ocaml",mly:"ocaml",pas:"pascal",p:"pascal",pl:"prolog",pm:"perl",t:"perl",raku:"raku",p6:"raku",pl6:"raku",php:"php",phtml:"php",pls:"plsql",sql:"sql",po:"po",polar:"polar",pcss:"postcss",pot:"pot",potx:"potx",pq:"powerquery",pqm:"powerquery",ps1:"powershell",psm1:"powershell",psd1:"powershell",prisma:"prisma",pro:"prolog",P:"prolog",properties:"properties",proto:"protobuf",pp:"puppet",purs:"purescript",py:"python",pyw:"python",pyi:"python",qml:"qml",qmldir:"qmldir",qss:"qss",r:"r",R:"r",rkt:"racket",rktl:"racket",razor:"razor",cshtml:"razor",rb:"ruby",rbw:"ruby",reg:"reg",regex:"regexp",rel:"rel",rs:"rust",rst:"rst",rake:"ruby",gemspec:"ruby",jbuilder:"ruby",builder:"ruby",rabl:"ruby",arb:"ruby",ru:"ruby",podspec:"ruby",Gemfile:"ruby",Rakefile:"ruby",Guardfile:"ruby",Capfile:"ruby",Berksfile:"ruby",Brewfile:"ruby",Vagrantfile:"ruby",Thorfile:"ruby",Appraisals:"ruby",Dangerfile:"ruby",sas:"sas",sass:"sass",scala:"scala",sc:"scala",scm:"scheme",ss:"scheme",sld:"scheme",scss:"scss",sdbl:"sdbl",shadergraph:"shader",st:"smalltalk",sol:"solidity",sparql:"sparql",rq:"sparql",spl:"splunk",config:"ssh-config",do:"stata",ado:"stata",dta:"stata",styl:"stylus",stylus:"stylus",svelte:"svelte",swift:"swift",sv:"system-verilog",svh:"system-verilog",service:"systemd",socket:"systemd",device:"systemd",timer:"systemd",talon:"talonscript",tasl:"tasl",tcl:"tcl",templ:"templ",tf:"tf",tfvars:"tfvars",toml:"toml",ts:"typescript",tsp:"typespec",tsv:"tsv",tsx:"tsx",ttl:"turtle",twig:"twig",typ:"typst",vv:"v",vala:"vala",vapi:"vala",vb:"vb",vbs:"vb",bas:"vb",vh:"verilog",vhd:"vhdl",vhdl:"vhdl",vim:"vimscript",vue:"vue","vine.ts":"vue-vine",vy:"vyper",wasm:"wasm",wat:"wasm",wy:"文言",wgsl:"wgsl",wit:"wit",wl:"wolfram",nb:"wolfram",xml:"xml",xsl:"xsl",xslt:"xsl",yaml:"yaml",yml:"yml",zs:"zenscript",zig:"zig",zsh:"zsh",sty:"tex"};function ve(e){if(d.has(e))return d.get(e)??"text";if(h[e]!=null)return h[e];const t=e.match(/\.([^/\\]+\.[^/\\]+)$/);if(t!=null){if(d.has(t[1]))return d.get(t[1])??"text";if(h[t[1]]!=null)return h[t[1]]??"text"}const r=e.match(/\.([^.]+)$/)?.[1]??"";return d.has(r)?d.get(r)??"text":h[r]??"text"}function ke(){return J}function we(){return Object.fromEntries(d)}function Q(e,t,r){const n=typeof r.lineInfo=="function"?r.lineInfo(t):r.lineInfo[t-1];if(n==null){const o=`processLine: line ${t}, contains no state.lineInfo`;throw console.error(o,{node:e,line:t,state:r}),new Error(o)}return e.tagName="div",e.properties["data-line"]=n.lineNumber,e.properties["data-alt-line"]=n.altLineNumber,e.properties["data-line-type"]=n.type,e.properties["data-line-index"]=n.lineIndex,e.children.length===0&&e.children.push(S(`
2
+ import{_ as I}from"./vendor-vite-runtime-DD1OZmLC.js";import{b as j,c as O}from"./vendor-shiki-Bbf2GEcE.js";import{t as f}from"./themeResolver-BmJyTmjJ.js";import{s as M,p as F,n as v}from"./vendor-pierre-theming-C6Z4M5_u.js";import{c as N}from"./vendor-shikijs-engine-oniguruma-DPWuIF1G.js";import{c as z}from"./vendor-shikijs-engine-javascript-Cme4830A.js";import{gm as L,jQ as G}from"./useAppFontEffects-khZXpFL_.js";import{t as H}from"./vendor-shikijs-transformers-CZWsLLKm.js";function pe(e,t){return e==null||t==null||typeof e=="string"||typeof t=="string"?e===t:e.dark===t.dark&&e.light===t.light}function ue(e,t){return e?.cacheKey===t?.cacheKey&&e?.contents===t?.contents&&e?.name===t?.name&&e?.lang===t?.lang}function S(e){return{type:"text",value:e}}function m({tagName:e,children:t=[],properties:r={}}){return{type:"element",tagName:e,properties:r,children:t}}function fe({name:e,width:t=16,height:r=16,properties:n}){return m({tagName:"svg",properties:{width:t,height:r,viewBox:"0 0 16 16",...n},children:[m({tagName:"use",properties:{href:`#${e.replace(/^#/,"")}`}})]})}function V(e){let t=e.children[0];for(;t!=null;){if(t.type==="element"&&t.tagName==="code")return t;"children"in t?t=t.children[0]:t=null}}function de(e){return m({tagName:"div",properties:{"data-gutter":""},children:e})}function me(e,t,r,n={}){return m({tagName:"div",properties:{"data-line-type":e,"data-column-number":t,"data-line-index":r,...n},children:t!=null?[m({tagName:"span",properties:{"data-line-number-content":""},children:[S(`${t}`)]})]:void 0})}function he(e,t,r){return m({tagName:"div",properties:{"data-gutter-buffer":t,"data-buffer-size":r,"data-line-type":t==="annotation"?void 0:e,style:t==="annotation"?`grid-row: span ${r};`:`grid-row: span ${r};min-height:calc(${r} * 1lh);`}})}const g=new Map,k=new Map,A=new Map,T=new Set;function E(e,t){e=Array.isArray(e)?e:[e];for(const r of e){if(T.has(r.name))continue;let n=g.get(r.name);n==null&&(n=r,g.set(r.name,n)),T.add(n.name),t.loadLanguageSync(n.data)}}function q(){return typeof WorkerGlobalScope<"u"&&typeof self<"u"&&self instanceof WorkerGlobalScope}async function D(e){if(q())throw new Error(`resolveLanguage("${e}") cannot be called from a worker context. Languages must be pre-resolved on the main thread and passed to the worker via the resolvedLanguages parameter.`);const t=k.get(e);if(t!=null)return t;try{let r=A.get(e);if(r==null&&Object.prototype.hasOwnProperty.call(j,e)&&(r=j[e]),r==null)throw new Error(`resolveLanguage: "${e}" not found in bundled or custom languages`);const n=r().then(({default:o})=>{const s={name:e,data:o};return g.has(e)||g.set(e,s),s});return k.set(e,n),await n}finally{k.delete(e)}}function W(e){return g.get(e)??D(e)}const $=new Set;function R(e,t){e=Array.isArray(e)?e:[e];for(let r of e){let n;if(typeof r=="string"){if(n=f.getResolvedTheme(r),n==null)throw new Error(`loadResolvedThemes: ${r} is not resolved, you must resolve it before calling loadResolvedThemes`)}else n=r,r=r.name,f.getResolvedTheme(r)==null&&f.seedResolvedTheme(r,n);$.has(r)||($.add(r),t.loadThemeSync(n))}}function P(e){if(q())throw new Error(`Theme "${e}" cannot be resolved from a worker context. Themes must be pre-resolved on the main thread and passed to the worker via the resolvedLanguages parameter.`);if(f.hasRegisteredTheme(e))return;const t=M.getTheme(e);if(t!=null){f.registerThemeIfAbsent(t.name,t.load);return}throw new Error(`No valid theme loader registered for "${e}"`)}function U(e,t){if(t.name!==e)throw new Error(`resolvedTheme: themeName: ${e} does not match theme.name: ${t.name}`)}async function K(e){P(e);const t=await f.resolveTheme(e);return U(e,t),t}function X(e){return f.getResolvedTheme(e)??K(e)}let c;async function ge({themes:e,langs:t,preferredHighlighter:r="shiki-js"}){c??=O({themes:[],langs:["text"],engine:r==="shiki-wasm"?N(I(()=>import("./vendor-shiki-Bbf2GEcE.js").then(a=>a.w),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]))):z()});const n=B(c)?await c:c;c=n;const o=[];for(const a of t){if(a==="text"||a==="ansi")continue;const i=W(a);"then"in i?o.push(i):E(i,n)}const s=[];for(const a of e){const i=X(a);"then"in i?s.push(i):R(i,c)}return(o.length>0||s.length>0)&&await Promise.all([Promise.all(o).then(a=>{E(a,n)}),Promise.all(s).then(a=>{R(a,n)})]),n}function be(){if(c!=null&&!("then"in c))return c}function B(e=c){return e!=null&&"then"in e}for(const e of F.getThemes())f.registerThemeIfAbsent(e.name,e.load);function ye(e=L){const t=[];return typeof e=="string"?t.push(e):(t.push(e.dark),t.push(e.light)),t}const d=new Map;let J=0;const h={"1c":"1c",abap:"abap",as:"actionscript-3",ada:"ada",adb:"ada",ads:"ada",adoc:"asciidoc",asciidoc:"asciidoc","component.html":"angular-html","component.ts":"angular-ts",conf:"nginx",htaccess:"apache",cls:"tex",trigger:"apex",apl:"apl",applescript:"applescript",scpt:"applescript",ara:"ara",asm:"asm",s:"riscv",astro:"astro",awk:"awk",bal:"ballerina",sh:"zsh",bash:"zsh",bat:"cmd",cmd:"cmd",be:"berry",beancount:"beancount",bib:"bibtex",bicep:"bicep","blade.php":"blade",bsl:"bsl",c:"c",h:"objective-cpp",cs:"csharp",cpp:"cpp",hpp:"cpp",cc:"cpp",cxx:"cpp",hh:"cpp",cdc:"cdc",cairo:"cairo",clar:"clarity",clj:"clojure",cljs:"clojure",cljc:"clojure",soy:"soy",cmake:"cmake","CMakeLists.txt":"cmake",cob:"cobol",cbl:"cobol",cobol:"cobol",CODEOWNERS:"codeowners",ql:"ql",coffee:"coffeescript",lisp:"lisp",cl:"lisp",lsp:"lisp",log:"log",v:"verilog",cql:"cql",cr:"crystal",css:"css",csv:"csv",cue:"cue",cypher:"cypher",cyp:"cypher",d:"d",dart:"dart",dax:"dax",desktop:"desktop",diff:"diff",patch:"diff",Dockerfile:"dockerfile",dockerfile:"dockerfile",env:"dotenv",dm:"dream-maker",edge:"edge",el:"emacs-lisp",ex:"elixir",exs:"elixir",elm:"elm",erb:"erb",erl:"erlang",hrl:"erlang",f:"fortran-fixed-form",for:"fortran-fixed-form",fs:"fsharp",fsi:"fsharp",fsx:"fsharp",f03:"f03",f08:"f08",f18:"f18",f77:"f77",f90:"fortran-free-form",f95:"fortran-free-form",fnl:"fennel",fish:"fish",ftl:"ftl",tres:"gdresource",res:"gdresource",gd:"gdscript",gdshader:"gdshader",gs:"genie",feature:"gherkin",COMMIT_EDITMSG:"git-commit","git-rebase-todo":"git-rebase",gjs:"glimmer-js",gleam:"gleam",gts:"glimmer-ts",glsl:"glsl",vert:"glsl",frag:"glsl",shader:"shaderlab",gp:"gnuplot",plt:"gnuplot",gnuplot:"gnuplot",go:"go",graphql:"graphql",gql:"graphql",groovy:"groovy",gvy:"groovy",hack:"hack",haml:"haml",hbs:"handlebars",handlebars:"handlebars",hs:"haskell",lhs:"haskell",hx:"haxe",hcl:"hcl",hjson:"hjson",hlsl:"hlsl",fx:"hlsl",html:"html",htm:"html",http:"http",rest:"http",hxml:"hxml",hy:"hy",imba:"imba",ini:"ini",cfg:"ini",jade:"pug",pug:"pug",java:"java",js:"javascript",mjs:"javascript",cjs:"javascript",jinja:"jinja",jinja2:"jinja",j2:"jinja",jison:"jison",jl:"julia",json:"json",json5:"json5",jsonc:"jsonc",jsonl:"jsonl",jsonnet:"jsonnet",libsonnet:"jsonnet",jssm:"jssm",jsx:"jsx",kt:"kotlin",kts:"kts",kql:"kusto",tex:"tex",ltx:"tex",lean:"lean4",less:"less",liquid:"liquid",lit:"lit",ll:"llvm",logo:"logo",lua:"lua",luau:"luau",Makefile:"makefile",mk:"makefile",makefile:"makefile",md:"markdown",markdown:"markdown",marko:"marko",m:"wolfram",mat:"matlab",mdc:"mdc",mdx:"mdx",wiki:"wikitext",mediawiki:"wikitext",mmd:"mermaid",mermaid:"mermaid",mips:"mipsasm",mojo:"mojo","🔥":"mojo",move:"move",nar:"narrat",nf:"nextflow",nim:"nim",nims:"nim",nimble:"nim",nix:"nix",nu:"nushell",mm:"objective-cpp",ml:"ocaml",mli:"ocaml",mll:"ocaml",mly:"ocaml",pas:"pascal",p:"pascal",pl:"prolog",pm:"perl",t:"perl",raku:"raku",p6:"raku",pl6:"raku",php:"php",phtml:"php",pls:"plsql",sql:"sql",po:"po",polar:"polar",pcss:"postcss",pot:"pot",potx:"potx",pq:"powerquery",pqm:"powerquery",ps1:"powershell",psm1:"powershell",psd1:"powershell",prisma:"prisma",pro:"prolog",P:"prolog",properties:"properties",proto:"protobuf",pp:"puppet",purs:"purescript",py:"python",pyw:"python",pyi:"python",qml:"qml",qmldir:"qmldir",qss:"qss",r:"r",R:"r",rkt:"racket",rktl:"racket",razor:"razor",cshtml:"razor",rb:"ruby",rbw:"ruby",reg:"reg",regex:"regexp",rel:"rel",rs:"rust",rst:"rst",rake:"ruby",gemspec:"ruby",jbuilder:"ruby",builder:"ruby",rabl:"ruby",arb:"ruby",ru:"ruby",podspec:"ruby",Gemfile:"ruby",Rakefile:"ruby",Guardfile:"ruby",Capfile:"ruby",Berksfile:"ruby",Brewfile:"ruby",Vagrantfile:"ruby",Thorfile:"ruby",Appraisals:"ruby",Dangerfile:"ruby",sas:"sas",sass:"sass",scala:"scala",sc:"scala",scm:"scheme",ss:"scheme",sld:"scheme",scss:"scss",sdbl:"sdbl",shadergraph:"shader",st:"smalltalk",sol:"solidity",sparql:"sparql",rq:"sparql",spl:"splunk",config:"ssh-config",do:"stata",ado:"stata",dta:"stata",styl:"stylus",stylus:"stylus",svelte:"svelte",swift:"swift",sv:"system-verilog",svh:"system-verilog",service:"systemd",socket:"systemd",device:"systemd",timer:"systemd",talon:"talonscript",tasl:"tasl",tcl:"tcl",templ:"templ",tf:"tf",tfvars:"tfvars",toml:"toml",ts:"typescript",tsp:"typespec",tsv:"tsv",tsx:"tsx",ttl:"turtle",twig:"twig",typ:"typst",vv:"v",vala:"vala",vapi:"vala",vb:"vb",vbs:"vb",bas:"vb",vh:"verilog",vhd:"vhdl",vhdl:"vhdl",vim:"vimscript",vue:"vue","vine.ts":"vue-vine",vy:"vyper",wasm:"wasm",wat:"wasm",wy:"文言",wgsl:"wgsl",wit:"wit",wl:"wolfram",nb:"wolfram",xml:"xml",xsl:"xsl",xslt:"xsl",yaml:"yaml",yml:"yml",zs:"zenscript",zig:"zig",zsh:"zsh",sty:"tex"};function ve(e){if(d.has(e))return d.get(e)??"text";if(h[e]!=null)return h[e];const t=e.match(/\.([^/\\]+\.[^/\\]+)$/);if(t!=null){if(d.has(t[1]))return d.get(t[1])??"text";if(h[t[1]]!=null)return h[t[1]]??"text"}const r=e.match(/\.([^.]+)$/)?.[1]??"";return d.has(r)?d.get(r)??"text":h[r]??"text"}function ke(){return J}function we(){return Object.fromEntries(d)}function Q(e,t,r){const n=typeof r.lineInfo=="function"?r.lineInfo(t):r.lineInfo[t-1];if(n==null){const o=`processLine: line ${t}, contains no state.lineInfo`;throw console.error(o,{node:e,line:t,state:r}),new Error(o)}return e.tagName="div",e.properties["data-line"]=n.lineNumber,e.properties["data-alt-line"]=n.altLineNumber,e.properties["data-line-type"]=n.type,e.properties["data-line-index"]=n.lineIndex,e.children.length===0&&e.children.push(S(`
3
3
  `)),e}const b=Symbol("no-token"),w=Symbol("multiple-tokens");function _(e){const t=Y(e);if(t!=null)return t;let r=b;const n=[];let o=[],s;const a=()=>{if(o.length===0||s==null){o=[],s=void 0;return}if(o.length===1){const l=o[0];if(l?.type==="element"){Z(l,s);for(const p of l.children)y(p)}else y(l);n.push(l),o=[],s=void 0;return}for(const l of o)y(l);n.push(m({tagName:"span",properties:{"data-char":s},children:o})),o=[],s=void 0},i=l=>{if(l!==b){if(l===w){r=w;return}if(r===b){r=l;return}r!==l&&(r=w)}};for(const l of e.children){const p=l.type==="element"?_(l):b;if(i(p),typeof p!="number"){a(),n.push(l);continue}s!=null&&s!==p&&a(),s??=p,o.push(l)}return a(),e.children=n,r}function Y(e){const t=e.properties["data-char"];if(typeof t=="number")return t}function y(e){if(e.type==="element"){e.properties["data-char"]=void 0;for(const t of e.children)y(t)}}function Z(e,t){e.properties["data-char"]=t}function xe(e=!1,t=!1){const r={lineInfo:[]},n=[{line(o){return delete o.properties.class,o},pre(o){const s=V(o),a=[];if(s!=null){let i=1;for(const l of s.children)l.type==="element"&&(e&&_(l),a.push(Q(l,i,r)),i++);s.children=a}return o},...e?{tokens(o){for(const s of o){let a=0;for(const i of s){const l=i;l.__lineChar??=a,a+=i.content.length}}},preprocess(o,s){s.mergeWhitespaces="never"},span(o,s,a,i,l){if(l?.offset!=null&&l.content!=null){const p=l.__lineChar;return p!=null&&(o.properties["data-char"]=p),o}return o}}:null}];return t&&n.push(ee,C),e&&n.push({line:o=>(o.type==="element"&&o.children.length===0&&o.children.push({type:"element",tagName:"br",properties:{},children:[]}),o)}),{state:r,transformers:n,toClass:C}}const C=H({classPrefix:"hl-"}),ee={name:"token-style-normalizer",tokens(e){for(const t of e)for(const r of t){if(r.htmlStyle!=null)continue;const n={};r.color!=null&&(n.color=r.color),r.bgColor!=null&&(n["background-color"]=r.bgColor),r.fontStyle!=null&&r.fontStyle!==0&&((r.fontStyle&1)!==0&&(n["font-style"]="italic"),(r.fontStyle&2)!==0&&(n["font-weight"]="bold"),(r.fontStyle&4)!==0&&(n["text-decoration"]="underline")),Object.keys(n).length>0&&(r.htmlStyle=n)}}};function u(e){return`--${e==="token"?"diffs-token":"diffs"}-`}function je({theme:e=L,highlighter:t,prefix:r}){let n="";if(typeof e=="string"){const o=t.getTheme(e),s=v(o);n+=`color:${s.fg};`,n+=`background-color:${s.bg};`,n+=`${u("global")}fg:${s.fg};`,n+=`${u("global")}bg:${s.bg};`,n+=x(o,r)}else{let o=t.getTheme(e.dark),s=v(o);n+=`${u("global")}dark:${s.fg};`,n+=`${u("global")}dark-bg:${s.bg};`,n+=x(o,"dark"),o=t.getTheme(e.light),s=v(o),n+=`${u("global")}light:${s.fg};`,n+=`${u("global")}light-bg:${s.bg};`,n+=x(o,"light")}return n}function x(e,t){t=t!=null?`${t}-`:"";let r="";const n=e.colors?.["gitDecoration.addedResourceForeground"]??e.colors?.["terminal.ansiGreen"];n!=null&&(r+=`${u("global")}${t}addition-color:${n};`);const o=e.colors?.["gitDecoration.deletedResourceForeground"]??e.colors?.["terminal.ansiRed"];o!=null&&(r+=`${u("global")}${t}deletion-color:${o};`);const s=e.colors?.["gitDecoration.modifiedResourceForeground"]??e.colors?.["terminal.ansiBlue"];return s!=null&&(r+=`${u("global")}${t}modified-color:${s};`),r}function Te(e){let t=e.children[0];for(;t!=null;){if(t.type==="element"&&t.tagName==="code")return t.children;"children"in t?t=t.children[0]:t=null}throw console.error(e),new Error("getLineNodes: Unable to find children")}function Ee(e){return{...G,...e}}function $e(e,t){const r=te(e,t);return t?r:e.diffHeaderHeight+r}function te(e,t){return e.paddingTop??(t?e.spacing:0)}function Re(e){return e.paddingBottom??e.spacing}function Ce(e){switch(e){case"simple":return 4;case"metadata":case"line-info":case"line-info-basic":case"custom":return 32}}export{T as A,u as B,Te as C,g as R,ye as a,pe as b,R as c,ge as d,we as e,ue as f,W as g,ke as h,ve as i,m as j,fe as k,$ as l,S as m,be as n,he as o,P as p,de as q,D as r,me as s,$e as t,Re as u,U as v,Ee as w,Ce as x,je as y,xe as z};