@cerbur/clutch-dsh-worktree 0.1.16 → 0.1.18

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 (429) hide show
  1. package/README.md +314 -43
  2. package/README.zh.md +263 -37
  3. package/assets/screenshots/screenshots-dashboard.png +0 -0
  4. package/assets/screenshots/screenshots-en.png +0 -0
  5. package/assets/screenshots/screenshots-git-reviewer.png +0 -0
  6. package/assets/screenshots/screenshots-import.png +0 -0
  7. package/assets/screenshots/screenshots-worktree-tool.png +0 -0
  8. package/assets/screenshots/screenshots-zh.png +0 -0
  9. package/cordis.patch.yml +6 -19
  10. package/lib/client/WorktreeSurface.d.ts.map +1 -1
  11. package/lib/client/WorktreeSurface.js +41 -13
  12. package/lib/client/WorktreeSurface.js.map +1 -1
  13. package/lib/client/branch/GitBranchSelector.d.ts +23 -0
  14. package/lib/client/branch/GitBranchSelector.d.ts.map +1 -0
  15. package/lib/client/branch/GitBranchSelector.js +142 -0
  16. package/lib/client/branch/GitBranchSelector.js.map +1 -0
  17. package/lib/client/command-activity.d.ts +11 -0
  18. package/lib/client/command-activity.d.ts.map +1 -0
  19. package/lib/client/command-activity.js +71 -0
  20. package/lib/client/command-activity.js.map +1 -0
  21. package/lib/client/context/worktree-context-store.d.ts.map +1 -1
  22. package/lib/client/context/worktree-context-store.js +1 -0
  23. package/lib/client/context/worktree-context-store.js.map +1 -1
  24. package/lib/client/context/worktree-context.d.ts +3 -2
  25. package/lib/client/context/worktree-context.d.ts.map +1 -1
  26. package/lib/client/context/worktree-context.js +5 -3
  27. package/lib/client/context/worktree-context.js.map +1 -1
  28. package/lib/client/dashboard/DashboardRequest.d.ts +2 -1
  29. package/lib/client/dashboard/DashboardRequest.d.ts.map +1 -1
  30. package/lib/client/dashboard/DashboardRequest.js +3 -3
  31. package/lib/client/dashboard/DashboardRequest.js.map +1 -1
  32. package/lib/client/dashboard/WorktreeDashboard.d.ts +6 -2
  33. package/lib/client/dashboard/WorktreeDashboard.d.ts.map +1 -1
  34. package/lib/client/dashboard/WorktreeDashboard.js +111 -89
  35. package/lib/client/dashboard/WorktreeDashboard.js.map +1 -1
  36. package/lib/client/dashboard/WorktreeInstructions.d.ts +2 -1
  37. package/lib/client/dashboard/WorktreeInstructions.d.ts.map +1 -1
  38. package/lib/client/dashboard/WorktreeInstructions.js +27 -8
  39. package/lib/client/dashboard/WorktreeInstructions.js.map +1 -1
  40. package/lib/client/dashboard/dashboard-overlay.d.ts.map +1 -1
  41. package/lib/client/dashboard/dashboard-overlay.js +38 -52
  42. package/lib/client/dashboard/dashboard-overlay.js.map +1 -1
  43. package/lib/client/dashboard/dashboard-selection.d.ts +4 -2
  44. package/lib/client/dashboard/dashboard-selection.d.ts.map +1 -1
  45. package/lib/client/dashboard/dashboard-selection.js +6 -4
  46. package/lib/client/dashboard/dashboard-selection.js.map +1 -1
  47. package/lib/client/dashboard/git/GitChangedFiles.d.ts +2 -1
  48. package/lib/client/dashboard/git/GitChangedFiles.d.ts.map +1 -1
  49. package/lib/client/dashboard/git/GitChangedFiles.js +8 -6
  50. package/lib/client/dashboard/git/GitChangedFiles.js.map +1 -1
  51. package/lib/client/dashboard/git/GitCommitList.d.ts +6 -1
  52. package/lib/client/dashboard/git/GitCommitList.d.ts.map +1 -1
  53. package/lib/client/dashboard/git/GitCommitList.js +34 -29
  54. package/lib/client/dashboard/git/GitCommitList.js.map +1 -1
  55. package/lib/client/dashboard/git/GitCommitStats.d.ts +8 -0
  56. package/lib/client/dashboard/git/GitCommitStats.d.ts.map +1 -0
  57. package/lib/client/dashboard/git/GitCommitStats.js +7 -0
  58. package/lib/client/dashboard/git/GitCommitStats.js.map +1 -0
  59. package/lib/client/dashboard/git/WorktreeGitOverview.d.ts.map +1 -1
  60. package/lib/client/dashboard/git/WorktreeGitOverview.js +2 -1
  61. package/lib/client/dashboard/git/WorktreeGitOverview.js.map +1 -1
  62. package/lib/client/dashboard/git/WorktreeGitPanel.d.ts +3 -2
  63. package/lib/client/dashboard/git/WorktreeGitPanel.d.ts.map +1 -1
  64. package/lib/client/dashboard/git/WorktreeGitPanel.js +79 -14
  65. package/lib/client/dashboard/git/WorktreeGitPanel.js.map +1 -1
  66. package/lib/client/dashboard/git/file-address.d.ts +5 -1
  67. package/lib/client/dashboard/git/file-address.d.ts.map +1 -1
  68. package/lib/client/dashboard/git/file-address.js +49 -11
  69. package/lib/client/dashboard/git/file-address.js.map +1 -1
  70. package/lib/client/dashboard/git/git-facts.js +1 -1
  71. package/lib/client/dashboard/git/git-facts.js.map +1 -1
  72. package/lib/client/dashboard/git/useWorktreeGitState.d.ts +7 -2
  73. package/lib/client/dashboard/git/useWorktreeGitState.d.ts.map +1 -1
  74. package/lib/client/dashboard/git/useWorktreeGitState.js +88 -22
  75. package/lib/client/dashboard/git/useWorktreeGitState.js.map +1 -1
  76. package/lib/client/dsh-icons.d.ts +4 -0
  77. package/lib/client/dsh-icons.d.ts.map +1 -1
  78. package/lib/client/dsh-icons.js +5 -1
  79. package/lib/client/dsh-icons.js.map +1 -1
  80. package/lib/client/dsh-slot-contract.d.ts +9 -1
  81. package/lib/client/dsh-slot-contract.d.ts.map +1 -1
  82. package/lib/client/entry.d.ts.map +1 -1
  83. package/lib/client/entry.js +39 -2
  84. package/lib/client/entry.js.map +1 -1
  85. package/lib/client/layout/app-frame.d.ts +12 -0
  86. package/lib/client/layout/app-frame.d.ts.map +1 -0
  87. package/lib/client/layout/app-frame.js +82 -0
  88. package/lib/client/layout/app-frame.js.map +1 -0
  89. package/lib/client/locales.d.ts +184 -2
  90. package/lib/client/locales.d.ts.map +1 -1
  91. package/lib/client/locales.js +250 -68
  92. package/lib/client/locales.js.map +1 -1
  93. package/lib/client/overlay/overlay-bounds.d.ts.map +1 -1
  94. package/lib/client/overlay/overlay-bounds.js +8 -3
  95. package/lib/client/overlay/overlay-bounds.js.map +1 -1
  96. package/lib/client/overlay/sidebar-overlay-geometry.d.ts +3 -1
  97. package/lib/client/overlay/sidebar-overlay-geometry.d.ts.map +1 -1
  98. package/lib/client/overlay/sidebar-overlay-geometry.js +94 -34
  99. package/lib/client/overlay/sidebar-overlay-geometry.js.map +1 -1
  100. package/lib/client/restart-notice.d.ts +10 -3
  101. package/lib/client/restart-notice.d.ts.map +1 -1
  102. package/lib/client/restart-notice.js +44 -11
  103. package/lib/client/restart-notice.js.map +1 -1
  104. package/lib/client/select/SearchableSingleSelect.d.ts +44 -0
  105. package/lib/client/select/SearchableSingleSelect.d.ts.map +1 -0
  106. package/lib/client/select/SearchableSingleSelect.js +180 -0
  107. package/lib/client/select/SearchableSingleSelect.js.map +1 -0
  108. package/lib/client/select/WorktreeSelector.d.ts +14 -0
  109. package/lib/client/select/WorktreeSelector.d.ts.map +1 -0
  110. package/lib/client/select/WorktreeSelector.js +11 -0
  111. package/lib/client/select/WorktreeSelector.js.map +1 -0
  112. package/lib/client/session/session-view.d.ts +16 -2
  113. package/lib/client/session/session-view.d.ts.map +1 -1
  114. package/lib/client/session/session-view.js +24 -10
  115. package/lib/client/session/session-view.js.map +1 -1
  116. package/lib/client/session/worktree-session.d.ts +1 -0
  117. package/lib/client/session/worktree-session.d.ts.map +1 -1
  118. package/lib/client/session/worktree-session.js +3 -1
  119. package/lib/client/session/worktree-session.js.map +1 -1
  120. package/lib/client/settings/ToolSettings.d.ts +9 -0
  121. package/lib/client/settings/ToolSettings.d.ts.map +1 -0
  122. package/lib/client/settings/ToolSettings.js +77 -0
  123. package/lib/client/settings/ToolSettings.js.map +1 -0
  124. package/lib/client/settings/WorktreeSettings.d.ts +8 -0
  125. package/lib/client/settings/WorktreeSettings.d.ts.map +1 -0
  126. package/lib/client/settings/WorktreeSettings.js +46 -0
  127. package/lib/client/settings/WorktreeSettings.js.map +1 -0
  128. package/lib/client/settings/WorktreeSettingsNavIcon.d.ts +6 -0
  129. package/lib/client/settings/WorktreeSettingsNavIcon.d.ts.map +1 -0
  130. package/lib/client/settings/WorktreeSettingsNavIcon.js +51 -0
  131. package/lib/client/settings/WorktreeSettingsNavIcon.js.map +1 -0
  132. package/lib/client/settings/diagnostics.d.ts +24 -0
  133. package/lib/client/settings/diagnostics.d.ts.map +1 -0
  134. package/lib/client/settings/diagnostics.js +63 -0
  135. package/lib/client/settings/diagnostics.js.map +1 -0
  136. package/lib/client/settings/settings-navigation.d.ts +7 -0
  137. package/lib/client/settings/settings-navigation.d.ts.map +1 -0
  138. package/lib/client/settings/settings-navigation.js +12 -0
  139. package/lib/client/settings/settings-navigation.js.map +1 -0
  140. package/lib/client/surface/actions/useLifecycleActions.d.ts +2 -1
  141. package/lib/client/surface/actions/useLifecycleActions.d.ts.map +1 -1
  142. package/lib/client/surface/actions/useLifecycleActions.js +15 -6
  143. package/lib/client/surface/actions/useLifecycleActions.js.map +1 -1
  144. package/lib/client/surface/actions/useSessionActions.d.ts.map +1 -1
  145. package/lib/client/surface/actions/useSessionActions.js +6 -6
  146. package/lib/client/surface/actions/useSessionActions.js.map +1 -1
  147. package/lib/client/surface/actions/useWorktreeRegistration.d.ts +1 -1
  148. package/lib/client/surface/actions/useWorktreeRegistration.d.ts.map +1 -1
  149. package/lib/client/surface/actions/useWorktreeRegistration.js +36 -13
  150. package/lib/client/surface/actions/useWorktreeRegistration.js.map +1 -1
  151. package/lib/client/surface/components/NotificationToasts.d.ts +19 -3
  152. package/lib/client/surface/components/NotificationToasts.d.ts.map +1 -1
  153. package/lib/client/surface/components/NotificationToasts.js +73 -7
  154. package/lib/client/surface/components/NotificationToasts.js.map +1 -1
  155. package/lib/client/surface/components/OverlayScrollbar.d.ts +6 -0
  156. package/lib/client/surface/components/OverlayScrollbar.d.ts.map +1 -0
  157. package/lib/client/surface/components/OverlayScrollbar.js +84 -0
  158. package/lib/client/surface/components/OverlayScrollbar.js.map +1 -0
  159. package/lib/client/surface/components/RegistrationDialog.d.ts +3 -3
  160. package/lib/client/surface/components/RegistrationDialog.d.ts.map +1 -1
  161. package/lib/client/surface/components/RegistrationDialog.js +70 -5
  162. package/lib/client/surface/components/RegistrationDialog.js.map +1 -1
  163. package/lib/client/surface/components/RestartToast.d.ts.map +1 -1
  164. package/lib/client/surface/components/RestartToast.js +4 -3
  165. package/lib/client/surface/components/RestartToast.js.map +1 -1
  166. package/lib/client/surface/components/SurfaceContent.d.ts.map +1 -1
  167. package/lib/client/surface/components/SurfaceContent.js +110 -39
  168. package/lib/client/surface/components/SurfaceContent.js.map +1 -1
  169. package/lib/client/surface/components/WorkspaceTree.d.ts.map +1 -1
  170. package/lib/client/surface/components/WorkspaceTree.js +13 -9
  171. package/lib/client/surface/components/WorkspaceTree.js.map +1 -1
  172. package/lib/client/surface/components/dialogs.d.ts +1 -1
  173. package/lib/client/surface/components/dialogs.d.ts.map +1 -1
  174. package/lib/client/surface/components/dialogs.js +34 -21
  175. package/lib/client/surface/components/dialogs.js.map +1 -1
  176. package/lib/client/surface/components/rows.d.ts +1 -1
  177. package/lib/client/surface/components/rows.d.ts.map +1 -1
  178. package/lib/client/surface/components/rows.js +15 -97
  179. package/lib/client/surface/components/rows.js.map +1 -1
  180. package/lib/client/surface/notification-queue.d.ts +15 -0
  181. package/lib/client/surface/notification-queue.d.ts.map +1 -1
  182. package/lib/client/surface/notification-queue.js +13 -2
  183. package/lib/client/surface/notification-queue.js.map +1 -1
  184. package/lib/client/surface/state/useRegistrationState.d.ts +6 -1
  185. package/lib/client/surface/state/useRegistrationState.d.ts.map +1 -1
  186. package/lib/client/surface/state/useRegistrationState.js +7 -0
  187. package/lib/client/surface/state/useRegistrationState.js.map +1 -1
  188. package/lib/client/surface/state/useSurfaceRefresh.d.ts +1 -1
  189. package/lib/client/surface/state/useSurfaceRefresh.d.ts.map +1 -1
  190. package/lib/client/surface/state/useSurfaceRefresh.js +13 -1
  191. package/lib/client/surface/state/useSurfaceRefresh.js.map +1 -1
  192. package/lib/client/surface/state/useSurfaceSources.d.ts +1 -1
  193. package/lib/client/surface/state/useSurfaceSources.d.ts.map +1 -1
  194. package/lib/client/surface/state/useSurfaceSources.js +4 -2
  195. package/lib/client/surface/state/useSurfaceSources.js.map +1 -1
  196. package/lib/client/surface/state/useTitleMarquee.d.ts +7 -0
  197. package/lib/client/surface/state/useTitleMarquee.d.ts.map +1 -0
  198. package/lib/client/surface/state/useTitleMarquee.js +60 -0
  199. package/lib/client/surface/state/useTitleMarquee.js.map +1 -0
  200. package/lib/client/surface/types.d.ts +12 -1
  201. package/lib/client/surface/types.d.ts.map +1 -1
  202. package/lib/client/view/worktree-error-copy.d.ts.map +1 -1
  203. package/lib/client/view/worktree-error-copy.js +73 -14
  204. package/lib/client/view/worktree-error-copy.js.map +1 -1
  205. package/lib/client/view/worktree-view-errors.d.ts.map +1 -1
  206. package/lib/client/view/worktree-view-errors.js +13 -5
  207. package/lib/client/view/worktree-view-errors.js.map +1 -1
  208. package/lib/client/view/worktree-view-read.d.ts +4 -2
  209. package/lib/client/view/worktree-view-read.d.ts.map +1 -1
  210. package/lib/client/view/worktree-view-read.js +34 -17
  211. package/lib/client/view/worktree-view-read.js.map +1 -1
  212. package/lib/client/worktree-connection.d.ts +9 -2
  213. package/lib/client/worktree-connection.d.ts.map +1 -1
  214. package/lib/client/worktree-connection.js +24 -1
  215. package/lib/client/worktree-connection.js.map +1 -1
  216. package/lib/client/worktree-tool-changes.d.ts +13 -0
  217. package/lib/client/worktree-tool-changes.d.ts.map +1 -0
  218. package/lib/client/worktree-tool-changes.js +64 -0
  219. package/lib/client/worktree-tool-changes.js.map +1 -0
  220. package/lib/client.js +3503 -1310
  221. package/lib/client.js.map +1 -1
  222. package/lib/contract/index.contract.js +15 -0
  223. package/lib/contract/index.contract.js.map +1 -1
  224. package/lib/contract/index.d.ts +79 -12
  225. package/lib/contract/index.d.ts.map +1 -1
  226. package/lib/contract/index.js +12 -0
  227. package/lib/contract/index.js.map +1 -1
  228. package/lib/contract/tool-settings.d.ts +28 -0
  229. package/lib/contract/tool-settings.d.ts.map +1 -0
  230. package/lib/contract/tool-settings.js +10 -0
  231. package/lib/contract/tool-settings.js.map +1 -0
  232. package/lib/contract/worktree-tool-changes.d.ts +10 -0
  233. package/lib/contract/worktree-tool-changes.d.ts.map +1 -0
  234. package/lib/contract/worktree-tool-changes.js +2 -0
  235. package/lib/contract/worktree-tool-changes.js.map +1 -0
  236. package/lib/host/permission-preset-append.d.ts +15 -0
  237. package/lib/host/permission-preset-append.d.ts.map +1 -0
  238. package/lib/host/permission-preset-append.js +63 -0
  239. package/lib/host/permission-preset-append.js.map +1 -0
  240. package/lib/host/remote.d.ts.map +1 -1
  241. package/lib/host/remote.js +7 -0
  242. package/lib/host/remote.js.map +1 -1
  243. package/lib/host/service.d.ts +30 -6
  244. package/lib/host/service.d.ts.map +1 -1
  245. package/lib/host/service.js +85 -11
  246. package/lib/host/service.js.map +1 -1
  247. package/lib/host/tool-settings.d.ts +14 -0
  248. package/lib/host/tool-settings.d.ts.map +1 -0
  249. package/lib/host/tool-settings.js +98 -0
  250. package/lib/host/tool-settings.js.map +1 -0
  251. package/lib/host/worktree-permission-manager.d.ts.map +1 -1
  252. package/lib/host/worktree-permission-manager.js +2 -4
  253. package/lib/host/worktree-permission-manager.js.map +1 -1
  254. package/lib/host/worktree-tool-changes.d.ts +12 -0
  255. package/lib/host/worktree-tool-changes.d.ts.map +1 -0
  256. package/lib/host/worktree-tool-changes.js +60 -0
  257. package/lib/host/worktree-tool-changes.js.map +1 -0
  258. package/lib/manage/manager-git-history.d.ts +5 -7
  259. package/lib/manage/manager-git-history.d.ts.map +1 -1
  260. package/lib/manage/manager-git-history.js +185 -91
  261. package/lib/manage/manager-git-history.js.map +1 -1
  262. package/lib/manage/manager-git-paths.d.ts +7 -0
  263. package/lib/manage/manager-git-paths.d.ts.map +1 -0
  264. package/lib/manage/manager-git-paths.js +62 -0
  265. package/lib/manage/manager-git-paths.js.map +1 -0
  266. package/lib/manage/manager-sessions.d.ts +5 -0
  267. package/lib/manage/manager-sessions.d.ts.map +1 -1
  268. package/lib/manage/manager-sessions.js +34 -11
  269. package/lib/manage/manager-sessions.js.map +1 -1
  270. package/lib/manage/manager-support.d.ts +3 -1
  271. package/lib/manage/manager-support.d.ts.map +1 -1
  272. package/lib/manage/manager-support.js +17 -0
  273. package/lib/manage/manager-support.js.map +1 -1
  274. package/lib/manage/manager-worktree-lifecycle.d.ts.map +1 -1
  275. package/lib/manage/manager-worktree-lifecycle.js +5 -4
  276. package/lib/manage/manager-worktree-lifecycle.js.map +1 -1
  277. package/lib/manage/manager-worktrees.d.ts +10 -1
  278. package/lib/manage/manager-worktrees.d.ts.map +1 -1
  279. package/lib/manage/manager-worktrees.js +141 -34
  280. package/lib/manage/manager-worktrees.js.map +1 -1
  281. package/lib/manage/manager.d.ts +22 -5
  282. package/lib/manage/manager.d.ts.map +1 -1
  283. package/lib/manage/manager.js +76 -4
  284. package/lib/manage/manager.js.map +1 -1
  285. package/lib/manage/types.d.ts +10 -1
  286. package/lib/manage/types.d.ts.map +1 -1
  287. package/lib/provider/generated-name.d.ts.map +1 -1
  288. package/lib/provider/generated-name.js +5 -4
  289. package/lib/provider/generated-name.js.map +1 -1
  290. package/lib/provider/git/adapter.d.ts +13 -12
  291. package/lib/provider/git/adapter.d.ts.map +1 -1
  292. package/lib/provider/git/adapter.js +157 -31
  293. package/lib/provider/git/adapter.js.map +1 -1
  294. package/lib/provider/git/branch-name.d.ts +5 -0
  295. package/lib/provider/git/branch-name.d.ts.map +1 -0
  296. package/lib/provider/git/branch-name.js +16 -0
  297. package/lib/provider/git/branch-name.js.map +1 -0
  298. package/lib/provider/git/branches.d.ts +11 -0
  299. package/lib/provider/git/branches.d.ts.map +1 -0
  300. package/lib/provider/git/branches.js +37 -0
  301. package/lib/provider/git/branches.js.map +1 -0
  302. package/lib/provider/mutation-token.d.ts +1 -1
  303. package/lib/provider/mutation-token.d.ts.map +1 -1
  304. package/lib/provider/mutation-token.js +1 -0
  305. package/lib/provider/mutation-token.js.map +1 -1
  306. package/lib/provider/sidecar/repository.d.ts.map +1 -1
  307. package/lib/provider/sidecar/repository.js +3 -1
  308. package/lib/provider/sidecar/repository.js.map +1 -1
  309. package/lib/provider/sidecar/sidecar-schema.d.ts.map +1 -1
  310. package/lib/provider/sidecar/sidecar-schema.js +26 -4
  311. package/lib/provider/sidecar/sidecar-schema.js.map +1 -1
  312. package/lib/provider/transaction/operations/adopt-branch.d.ts.map +1 -1
  313. package/lib/provider/transaction/operations/adopt-branch.js +6 -5
  314. package/lib/provider/transaction/operations/adopt-branch.js.map +1 -1
  315. package/lib/provider/transaction/operations/clean.d.ts.map +1 -1
  316. package/lib/provider/transaction/operations/clean.js +20 -19
  317. package/lib/provider/transaction/operations/clean.js.map +1 -1
  318. package/lib/provider/transaction/operations/create.d.ts +1 -1
  319. package/lib/provider/transaction/operations/create.d.ts.map +1 -1
  320. package/lib/provider/transaction/operations/create.js +39 -17
  321. package/lib/provider/transaction/operations/create.js.map +1 -1
  322. package/lib/provider/transaction/operations/import.d.ts.map +1 -1
  323. package/lib/provider/transaction/operations/import.js +7 -1
  324. package/lib/provider/transaction/operations/import.js.map +1 -1
  325. package/lib/provider/transaction/operations/remove.d.ts.map +1 -1
  326. package/lib/provider/transaction/operations/remove.js +20 -19
  327. package/lib/provider/transaction/operations/remove.js.map +1 -1
  328. package/lib/provider/transaction/recovery/failure-recovery.d.ts.map +1 -1
  329. package/lib/provider/transaction/recovery/failure-recovery.js +22 -20
  330. package/lib/provider/transaction/recovery/failure-recovery.js.map +1 -1
  331. package/lib/provider/transaction/recovery/recover.d.ts.map +1 -1
  332. package/lib/provider/transaction/recovery/recover.js +11 -4
  333. package/lib/provider/transaction/recovery/recover.js.map +1 -1
  334. package/lib/provider/transaction/support/inspection.d.ts.map +1 -1
  335. package/lib/provider/transaction/support/inspection.js +3 -2
  336. package/lib/provider/transaction/support/inspection.js.map +1 -1
  337. package/lib/provider/transaction/support/journal.d.ts.map +1 -1
  338. package/lib/provider/transaction/support/journal.js +9 -5
  339. package/lib/provider/transaction/support/journal.js.map +1 -1
  340. package/lib/provider/transaction/support/path-safety.d.ts.map +1 -1
  341. package/lib/provider/transaction/support/path-safety.js +4 -3
  342. package/lib/provider/transaction/support/path-safety.js.map +1 -1
  343. package/lib/provider/transaction/types.d.ts +2 -1
  344. package/lib/provider/transaction/types.d.ts.map +1 -1
  345. package/lib/provider/types.d.ts +27 -5
  346. package/lib/provider/types.d.ts.map +1 -1
  347. package/lib/provider/types.js +1 -1
  348. package/lib/provider/types.js.map +1 -1
  349. package/lib/provider/worktree-path.d.ts +10 -0
  350. package/lib/provider/worktree-path.d.ts.map +1 -0
  351. package/lib/provider/worktree-path.js +47 -0
  352. package/lib/provider/worktree-path.js.map +1 -0
  353. package/lib/tool/context.d.ts +14 -0
  354. package/lib/tool/context.d.ts.map +1 -0
  355. package/lib/tool/context.js +95 -0
  356. package/lib/tool/context.js.map +1 -0
  357. package/lib/tool/delegation.d.ts +41 -0
  358. package/lib/tool/delegation.d.ts.map +1 -0
  359. package/lib/tool/delegation.js +196 -0
  360. package/lib/tool/delegation.js.map +1 -0
  361. package/lib/tool/errors.d.ts +3 -0
  362. package/lib/tool/errors.d.ts.map +1 -0
  363. package/lib/tool/errors.js +63 -0
  364. package/lib/tool/errors.js.map +1 -0
  365. package/lib/tool/guidance.d.ts +5 -0
  366. package/lib/tool/guidance.d.ts.map +1 -0
  367. package/lib/tool/guidance.js +48 -0
  368. package/lib/tool/guidance.js.map +1 -0
  369. package/lib/tool/history.d.ts +27 -0
  370. package/lib/tool/history.d.ts.map +1 -0
  371. package/lib/tool/history.js +157 -0
  372. package/lib/tool/history.js.map +1 -0
  373. package/lib/tool/index.d.ts +8 -0
  374. package/lib/tool/index.d.ts.map +1 -0
  375. package/lib/tool/index.js +296 -0
  376. package/lib/tool/index.js.map +1 -0
  377. package/lib/tool/inputs.d.ts +12 -0
  378. package/lib/tool/inputs.d.ts.map +1 -0
  379. package/lib/tool/inputs.js +24 -0
  380. package/lib/tool/inputs.js.map +1 -0
  381. package/lib/tool/list-models.d.ts +3 -0
  382. package/lib/tool/list-models.d.ts.map +1 -0
  383. package/lib/tool/list-models.js +38 -0
  384. package/lib/tool/list-models.js.map +1 -0
  385. package/lib/tool/list-sessions.d.ts +3 -0
  386. package/lib/tool/list-sessions.d.ts.map +1 -0
  387. package/lib/tool/list-sessions.js +70 -0
  388. package/lib/tool/list-sessions.js.map +1 -0
  389. package/lib/tool/list-worktrees.d.ts +3 -0
  390. package/lib/tool/list-worktrees.d.ts.map +1 -0
  391. package/lib/tool/list-worktrees.js +46 -0
  392. package/lib/tool/list-worktrees.js.map +1 -0
  393. package/lib/tool/native-session.d.ts +74 -0
  394. package/lib/tool/native-session.d.ts.map +1 -0
  395. package/lib/tool/native-session.js +248 -0
  396. package/lib/tool/native-session.js.map +1 -0
  397. package/lib/tool/new-worktree.d.ts +3 -0
  398. package/lib/tool/new-worktree.d.ts.map +1 -0
  399. package/lib/tool/new-worktree.js +81 -0
  400. package/lib/tool/new-worktree.js.map +1 -0
  401. package/lib/tool/outputs.d.ts +50 -0
  402. package/lib/tool/outputs.d.ts.map +1 -0
  403. package/lib/tool/outputs.js +65 -0
  404. package/lib/tool/outputs.js.map +1 -0
  405. package/lib/tool/report-result.d.ts +3 -0
  406. package/lib/tool/report-result.d.ts.map +1 -0
  407. package/lib/tool/report-result.js +83 -0
  408. package/lib/tool/report-result.js.map +1 -0
  409. package/lib/tool/schema.d.ts +7 -0
  410. package/lib/tool/schema.d.ts.map +1 -0
  411. package/lib/tool/schema.js +92 -0
  412. package/lib/tool/schema.js.map +1 -0
  413. package/lib/tool/send-message.d.ts +3 -0
  414. package/lib/tool/send-message.d.ts.map +1 -0
  415. package/lib/tool/send-message.js +64 -0
  416. package/lib/tool/send-message.js.map +1 -0
  417. package/lib/tool/span-worktree.d.ts +3 -0
  418. package/lib/tool/span-worktree.d.ts.map +1 -0
  419. package/lib/tool/span-worktree.js +114 -0
  420. package/lib/tool/span-worktree.js.map +1 -0
  421. package/lib/tool/types.d.ts +54 -0
  422. package/lib/tool/types.d.ts.map +1 -0
  423. package/lib/tool/types.js +2 -0
  424. package/lib/tool/types.js.map +1 -0
  425. package/lib/typert.host.js +387 -46
  426. package/lib/typert.remote-client.d.ts +17 -5
  427. package/lib/typert.remote-client.d.ts.map +1 -1
  428. package/lib/typert.remote-client.js +387 -46
  429. package/package.json +17 -3
@@ -9,7 +9,12 @@ export interface GitCommitListProps {
9
9
  readonly onSelect: (commit: string) => void;
10
10
  readonly onToggle?: (commit: string) => void;
11
11
  readonly t: WorktreeTranslate;
12
+ readonly hasMore?: boolean;
13
+ readonly loadingMore?: boolean;
14
+ readonly loadMoreError?: boolean;
15
+ readonly onLoadMore?: () => void;
16
+ readonly refreshRequired?: boolean;
12
17
  }
13
18
  /** Keyboard-navigable, optionally multi-selectable, graph-free commit list for the Dashboard. */
14
- export declare function GitCommitList({ commits, selectedCommit, selectedCommits, multiSelect, onSelect, onToggle, t }: GitCommitListProps): import("react").JSX.Element;
19
+ export declare function GitCommitList({ commits, selectedCommit, selectedCommits, multiSelect, onSelect, onToggle, hasMore, loadingMore, loadMoreError, refreshRequired, onLoadMore, t }: GitCommitListProps): import("react").JSX.Element;
15
20
  //# sourceMappingURL=GitCommitList.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GitCommitList.d.ts","sourceRoot":"","sources":["../../../../src/client/dashboard/git/GitCommitList.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAGhE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC/C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,+EAA+E;IAC/E,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,QAAQ,CAAC,CAAC,EAAE,iBAAiB,CAAC;CAC/B;AAOD,iGAAiG;AACjG,wBAAgB,aAAa,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,eAAoB,EAAE,WAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,kBAAkB,+BAsF9I"}
1
+ {"version":3,"file":"GitCommitList.d.ts","sourceRoot":"","sources":["../../../../src/client/dashboard/git/GitCommitList.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAGhE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC/C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,+EAA+E;IAC/E,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,QAAQ,CAAC,CAAC,EAAE,iBAAiB,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;CACpC;AAOD,iGAAiG;AACjG,wBAAgB,aAAa,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,eAAoB,EAAE,WAAmB,EAAE,QAAQ,EAAE,QAAQ,EACpH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,kBAAkB,+BAoG1F"}
@@ -6,7 +6,7 @@ function commitDate(value) {
6
6
  return Number.isNaN(date.getTime()) ? value : date.toLocaleString();
7
7
  }
8
8
  /** Keyboard-navigable, optionally multi-selectable, graph-free commit list for the Dashboard. */
9
- export function GitCommitList({ commits, selectedCommit, selectedCommits = [], multiSelect = false, onSelect, onToggle, t }) {
9
+ export function GitCommitList({ commits, selectedCommit, selectedCommits = [], multiSelect = false, onSelect, onToggle, hasMore, loadingMore, loadMoreError, refreshRequired, onLoadMore, t }) {
10
10
  const itemRefs = useRef([]);
11
11
  const move = (index, direction) => {
12
12
  const nextIndex = direction === 'first'
@@ -23,33 +23,38 @@ export function GitCommitList({ commits, selectedCommit, selectedCommits = [], m
23
23
  else
24
24
  onToggle(commit.sha);
25
25
  };
26
- return (_jsx("ul", { className: styles.gitCommitList, role: "listbox", "aria-multiselectable": multiSelect, "data-dashboard-git-commit-multiselect": multiSelect ? 'on' : 'off', "aria-label": t('dashboard.git.commits'), "aria-describedby": multiSelect ? 'dashboard-git-commit-selection-hint' : undefined, children: commits.map((commit, index) => {
27
- const isWorkingTree = commit.kind === 'working-tree';
28
- const isSelected = isWorkingTree
29
- ? selectedCommit === commit.sha
30
- : selectedCommits.includes(commit.sha);
31
- return (_jsx("li", { children: _jsxs("button", { ref: (element) => { itemRefs.current[index] = element; }, type: "button", role: "option", "aria-selected": isSelected, "aria-posinset": index + 1, "aria-setsize": commits.length, "data-dashboard-git-commit": commit.sha, "data-dashboard-git-commit-kind": commit.kind ?? 'commit', onClick: () => pick(commit), onKeyDown: (event) => {
32
- if (event.key === 'ArrowUp') {
33
- event.preventDefault();
34
- move(index, -1);
35
- }
36
- else if (event.key === 'ArrowDown') {
37
- event.preventDefault();
38
- move(index, 1);
39
- }
40
- else if (event.key === 'Home') {
41
- event.preventDefault();
42
- move(index, 'first');
43
- }
44
- else if (event.key === 'End') {
45
- event.preventDefault();
46
- move(index, 'last');
47
- }
48
- else if (event.key === 'Enter' || event.key === ' ') {
49
- event.preventDefault();
50
- pick(commit);
51
- }
52
- }, children: [multiSelect && (_jsx("span", { className: styles.gitCommitSelectionMark, "aria-hidden": "true", children: isSelected ? '✓' : '○' })), _jsx("span", { className: styles.gitCommitSubject, children: isWorkingTree ? t('dashboard.git.uncommittedChanges') : commit.subject || t('dashboard.git.untitledCommit') }), _jsx("span", { className: styles.gitCommitMeta, children: isWorkingTree ? (_jsx("span", { className: styles.gitCommitWorkingTree, children: t('dashboard.git.workingTree') })) : (_jsxs(_Fragment, { children: [_jsx("code", { children: commit.sha.slice(0, 7) }), _jsx("span", { children: commit.authorName }), _jsx("time", { dateTime: commit.authoredAt, title: commitDate(commit.authoredAt), children: commitDate(commit.authoredAt) })] })) })] }) }, commit.sha));
53
- }) }));
26
+ return (_jsxs("ul", { className: styles.gitCommitList, role: "listbox", "aria-multiselectable": multiSelect, "data-dashboard-git-commit-multiselect": multiSelect ? 'on' : 'off', "aria-label": t('dashboard.git.commits'), "aria-describedby": multiSelect ? 'dashboard-git-commit-selection-hint' : undefined, "aria-busy": loadingMore, onScroll: (event) => {
27
+ const list = event.currentTarget;
28
+ if (hasMore && !loadingMore && !loadMoreError && list.scrollHeight - list.scrollTop - list.clientHeight <= 24) {
29
+ onLoadMore?.();
30
+ }
31
+ }, children: [commits.map((commit, index) => {
32
+ const isWorkingTree = commit.kind === 'working-tree';
33
+ const isSelected = isWorkingTree
34
+ ? selectedCommit === commit.sha
35
+ : selectedCommits.includes(commit.sha);
36
+ return (_jsx("li", { children: _jsxs("button", { ref: (element) => { itemRefs.current[index] = element; }, type: "button", role: "option", "aria-selected": isSelected, "aria-posinset": index + 1, "aria-setsize": commits.length, "data-dashboard-git-commit": commit.sha, "data-dashboard-git-commit-kind": commit.kind ?? 'commit', onClick: () => pick(commit), onKeyDown: (event) => {
37
+ if (event.key === 'ArrowUp') {
38
+ event.preventDefault();
39
+ move(index, -1);
40
+ }
41
+ else if (event.key === 'ArrowDown') {
42
+ event.preventDefault();
43
+ move(index, 1);
44
+ }
45
+ else if (event.key === 'Home') {
46
+ event.preventDefault();
47
+ move(index, 'first');
48
+ }
49
+ else if (event.key === 'End') {
50
+ event.preventDefault();
51
+ move(index, 'last');
52
+ }
53
+ else if (event.key === 'Enter' || event.key === ' ') {
54
+ event.preventDefault();
55
+ pick(commit);
56
+ }
57
+ }, children: [multiSelect && (_jsx("span", { className: styles.gitCommitSelectionMark, "aria-hidden": "true", children: isSelected ? '✓' : '○' })), _jsx("span", { className: styles.gitCommitSubject, children: isWorkingTree ? t('dashboard.git.uncommittedChanges') : commit.subject || t('dashboard.git.untitledCommit') }), _jsx("span", { className: styles.gitCommitMeta, children: isWorkingTree ? (_jsx("span", { className: styles.gitCommitWorkingTree, children: t('dashboard.git.workingTree') })) : (_jsxs(_Fragment, { children: [_jsx("code", { children: commit.sha.slice(0, 7) }), _jsx("span", { children: commit.authorName }), _jsx("time", { dateTime: commit.authoredAt, title: commitDate(commit.authoredAt), children: commitDate(commit.authoredAt) })] })) })] }) }, commit.sha));
58
+ }), hasMore && (_jsx("li", { children: _jsx("button", { type: "button", "data-dashboard-git-load-more": true, disabled: loadingMore, onClick: onLoadMore, children: t(loadingMore ? 'dashboard.git.loadingMore' : refreshRequired ? 'dashboard.git.refresh' : 'dashboard.git.loadMore') }) }))] }));
54
59
  }
55
60
  //# sourceMappingURL=GitCommitList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GitCommitList.js","sourceRoot":"","sources":["../../../../src/client/dashboard/git/GitCommitList.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GitCommitList.js","sourceRoot":"","sources":["../../../../src/client/dashboard/git/GitCommitList.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAG/B,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAkBxC,SAAS,UAAU,CAAC,KAAa;IAC/B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;AACtE,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,aAAa,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,GAAG,EAAE,EAAE,WAAW,GAAG,KAAK,EAAE,QAAQ,EAAE,QAAQ,EACpH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC,EAAsB;IACzF,MAAM,QAAQ,GAAG,MAAM,CAAkC,EAAE,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,SAAoC,EAAQ,EAAE;QACzE,MAAM,SAAS,GAAG,SAAS,KAAK,OAAO;YACrC,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,SAAS,KAAK,MAAM;gBACpB,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;gBACpB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC;QACnE,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;IACvC,CAAC,CAAC;IACF,MAAM,IAAI,GAAG,CAAC,MAAyB,EAAQ,EAAE;QAC/C,iFAAiF;QACjF,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,IAAI,QAAQ,KAAK,SAAS;YAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;;YAC9F,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,OAAO,CACL,cACE,SAAS,EAAE,MAAM,CAAC,aAAa,EAC/B,IAAI,EAAC,SAAS,0BACQ,WAAW,2CACM,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,gBACrD,CAAC,CAAC,uBAAuB,CAAC,sBACpB,WAAW,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,SAAS,eACtE,WAAW,EACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YAClB,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC;YACjC,IAAI,OAAO,IAAI,CAAC,WAAW,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC;gBAC9G,UAAU,EAAE,EAAE,CAAC;YACjB,CAAC;QACH,CAAC,aAEA,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBAC7B,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC;gBACrD,MAAM,UAAU,GAAG,aAAa;oBAC9B,CAAC,CAAC,cAAc,KAAK,MAAM,CAAC,GAAG;oBAC/B,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACzC,OAAO,CACL,uBACE,kBACE,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACxD,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,QAAQ,mBACE,UAAU,mBACV,KAAK,GAAG,CAAC,kBACV,OAAO,CAAC,MAAM,+BACD,MAAM,CAAC,GAAG,oCACL,MAAM,CAAC,IAAI,IAAI,QAAQ,EACvD,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAC3B,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;4BACnB,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gCAC5B,KAAK,CAAC,cAAc,EAAE,CAAC;gCACvB,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;4BAClB,CAAC;iCAAM,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;gCACrC,KAAK,CAAC,cAAc,EAAE,CAAC;gCACvB,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;4BACjB,CAAC;iCAAM,IAAI,KAAK,CAAC,GAAG,KAAK,MAAM,EAAE,CAAC;gCAChC,KAAK,CAAC,cAAc,EAAE,CAAC;gCACvB,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;4BACvB,CAAC;iCAAM,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;gCAC/B,KAAK,CAAC,cAAc,EAAE,CAAC;gCACvB,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;4BACtB,CAAC;iCAAM,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;gCACtD,KAAK,CAAC,cAAc,EAAE,CAAC;gCACvB,IAAI,CAAC,MAAM,CAAC,CAAC;4BACf,CAAC;wBACH,CAAC,aAEA,WAAW,IAAI,CACd,eAAM,SAAS,EAAE,MAAM,CAAC,sBAAsB,iBAAc,MAAM,YAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAQ,CACnG,EACD,eAAM,SAAS,EAAE,MAAM,CAAC,gBAAgB,YACrC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,8BAA8B,CAAC,GACvG,EACP,eAAM,SAAS,EAAE,MAAM,CAAC,aAAa,YAClC,aAAa,CAAC,CAAC,CAAC,CACf,eAAM,SAAS,EAAE,MAAM,CAAC,oBAAoB,YAAG,CAAC,CAAC,2BAA2B,CAAC,GAAQ,CACtF,CAAC,CAAC,CAAC,CACF,8BACE,yBAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAQ,EACrC,yBAAO,MAAM,CAAC,UAAU,GAAQ,EAChC,eAAM,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,YACpE,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,GACzB,IACN,CACJ,GACI,IACA,IAjDF,MAAM,CAAC,GAAG,CAkDd,CACN,CAAC;YACJ,CAAC,CAAC,EACD,OAAO,IAAI,CACV,uBACE,iBAAQ,IAAI,EAAC,QAAQ,wCAA8B,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,YAC1F,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,wBAAwB,CAAC,GAC7G,GACN,CACN,IACE,CACN,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { WorktreeTranslate } from '../../surface/types.js';
2
+ /** Commit divergence is a neutral count, separate from added/deleted code lines. */
3
+ export declare function GitCommitStats({ ahead, behind, t }: {
4
+ readonly ahead: number;
5
+ readonly behind: number;
6
+ readonly t: WorktreeTranslate;
7
+ }): import("react").JSX.Element;
8
+ //# sourceMappingURL=GitCommitStats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GitCommitStats.d.ts","sourceRoot":"","sources":["../../../../src/client/dashboard/git/GitCommitStats.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAGhE,oFAAoF;AACpF,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,CAAC,EAAE,iBAAiB,CAAC;CAC/B,+BAKA"}
@@ -0,0 +1,7 @@
1
+ import { jsxs as _jsxs } from "react/jsx-runtime";
2
+ import styles from './worktree-git.css';
3
+ /** Commit divergence is a neutral count, separate from added/deleted code lines. */
4
+ export function GitCommitStats({ ahead, behind, t }) {
5
+ return _jsxs("span", { className: styles.gitCommitStats, "data-dashboard-git-commit-stats": true, "aria-label": t('dashboard.git.aheadBehindStats', { ahead, behind }), children: [_jsxs("span", { children: ["\u2191 ", ahead] }), _jsxs("span", { children: ["\u2193 ", behind] })] });
6
+ }
7
+ //# sourceMappingURL=GitCommitStats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GitCommitStats.js","sourceRoot":"","sources":["../../../../src/client/dashboard/git/GitCommitStats.tsx"],"names":[],"mappings":";AACA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAExC,oFAAoF;AACpF,MAAM,UAAU,cAAc,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAIhD;IACC,OAAO,gBAAM,SAAS,EAAE,MAAM,CAAC,cAAc,yDAC/B,CAAC,CAAC,gCAAgC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,aAClE,sCAAS,KAAK,IAAQ,EAAA,sCAAS,MAAM,IAAQ,IACxC,CAAC;AACV,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"WorktreeGitOverview.d.ts","sourceRoot":"","sources":["../../../../src/client/dashboard/git/WorktreeGitOverview.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EAChB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAKhE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,qBAAqB,GAAG,yBAAyB,CAAC,CAAC;IAC5F,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,gFAAgF;IAChF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED,MAAM,MAAM,wBAAwB,GAChC;IAAE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;CAAE,GAClC;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;CAAE,GAC9B;IACE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,QAAQ,CAAC,cAAc,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAC3D,QAAQ,CAAC,gBAAgB,EAAE,SAAS,sBAAsB,EAAE,CAAC;CAC9D,GACD;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC;AAMjC,4EAA4E;AAC5E,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,wBAAwB,GAC9B,wBAAwB,CAmD1B;AAED,wBAAgB,wBAAwB,CAAC,EACvC,KAAK,EACL,MAAM,EACN,CAAC,GACF,EAAE;IACD,QAAQ,CAAC,KAAK,EAAE,wBAAwB,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,WAAW,GAAG,aAAa,CAAC;IAC7D,QAAQ,CAAC,CAAC,EAAE,iBAAiB,CAAC;CAC/B,+BAmCA"}
1
+ {"version":3,"file":"WorktreeGitOverview.d.ts","sourceRoot":"","sources":["../../../../src/client/dashboard/git/WorktreeGitOverview.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EAChB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAMhE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,qBAAqB,GAAG,yBAAyB,CAAC,CAAC;IAC5F,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,gFAAgF;IAChF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED,MAAM,MAAM,wBAAwB,GAChC;IAAE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;CAAE,GAClC;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;CAAE,GAC9B;IACE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,QAAQ,CAAC,cAAc,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAC3D,QAAQ,CAAC,gBAAgB,EAAE,SAAS,sBAAsB,EAAE,CAAC;CAC9D,GACD;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC;AAMjC,4EAA4E;AAC5E,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,wBAAwB,GAC9B,wBAAwB,CAmD1B;AAED,wBAAgB,wBAAwB,CAAC,EACvC,KAAK,EACL,MAAM,EACN,CAAC,GACF,EAAE;IACD,QAAQ,CAAC,KAAK,EAAE,wBAAwB,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,WAAW,GAAG,aAAa,CAAC;IAC7D,QAAQ,CAAC,CAAC,EAAE,iBAAiB,CAAC;CAC/B,+BA+BA"}
@@ -3,6 +3,7 @@ import { useEffect, useState } from 'react';
3
3
  import { WORKTREE_GIT_WORKING_TREE } from '../../../contract/index.js';
4
4
  import { isMainWorktreeId, normalizeBaselineBranch, sumLineTotals } from './git-facts.js';
5
5
  import { GitLineStats } from './GitLineStats.js';
6
+ import { GitCommitStats } from './GitCommitStats.js';
6
7
  import styles from '../dashboard.css';
7
8
  function isWorkingTreeCommit(commit) {
8
9
  return commit.kind === 'working-tree' || commit.sha === WORKTREE_GIT_WORKING_TREE;
@@ -71,7 +72,7 @@ export function WorktreeGitOverviewValue({ state, metric, t, }) {
71
72
  if (ahead === undefined || behind === undefined) {
72
73
  return _jsx("span", { className: styles.dashboardHistorical, children: t('dashboard.notConnected') });
73
74
  }
74
- return (_jsx(GitLineStats, { additions: ahead, deletions: behind, ariaLabel: t('dashboard.git.aheadBehindStats', { ahead, behind }) }));
75
+ return (_jsx(GitCommitStats, { ahead: ahead, behind: behind, t: t }));
75
76
  }
76
77
  if (state.history.unavailableReason !== undefined) {
77
78
  return _jsx("span", { className: styles.dashboardHistorical, children: t('dashboard.notConnected') });
@@ -1 +1 @@
1
- {"version":3,"file":"WorktreeGitOverview.js","sourceRoot":"","sources":["../../../../src/client/dashboard/git/WorktreeGitOverview.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorktreeGitOverview.js","sourceRoot":"","sources":["../../../../src/client/dashboard/git/WorktreeGitOverview.tsx"],"names":[],"mappings":"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"}
@@ -1,16 +1,17 @@
1
1
  import type { WorktreeManager } from '../../../contract/index.js';
2
2
  import type { WorktreeTranslate } from '../../surface/types.js';
3
3
  export interface WorktreeGitPanelProps {
4
- readonly manager?: Pick<WorktreeManager, 'listBranches' | 'listWorktreeCommits' | 'listWorktreeCommitFiles' | 'getWorktreeCommitFileDiff'>;
4
+ readonly manager?: Pick<WorktreeManager, 'listBranches' | 'listWorktreeCommits' | 'listWorktreeCommitFiles' | 'getWorktreeCommitFileDiff'> & Partial<Pick<WorktreeManager, 'fetchRemoteBranches'>>;
5
5
  readonly workspaceId: string;
6
6
  readonly worktreeId: string;
7
7
  readonly defaultBaselineBranch?: string;
8
8
  readonly currentBranch?: string;
9
+ readonly context?: string;
9
10
  /** The record captured an acquisition commit the Manager can use implicitly. */
10
11
  readonly capturedBaseline?: boolean;
11
12
  readonly onOpenFile?: (path: string) => void;
12
13
  readonly t: WorktreeTranslate;
13
14
  }
14
15
  /** Git & Changes tab: read-only, on-demand history -> target files -> one-file diff. */
15
- export declare function WorktreeGitPanel({ manager, workspaceId, worktreeId, defaultBaselineBranch, currentBranch, capturedBaseline, onOpenFile, t, }: WorktreeGitPanelProps): import("react").JSX.Element;
16
+ export declare function WorktreeGitPanel({ manager, workspaceId, worktreeId, defaultBaselineBranch, currentBranch, context, capturedBaseline, onOpenFile, t, }: WorktreeGitPanelProps): import("react").JSX.Element;
16
17
  //# sourceMappingURL=WorktreeGitPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorktreeGitPanel.d.ts","sourceRoot":"","sources":["../../../../src/client/dashboard/git/WorktreeGitPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAIV,eAAe,EAChB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAkBhE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CACrB,eAAe,EACf,cAAc,GAAG,qBAAqB,GAAG,yBAAyB,GAAG,2BAA2B,CACjG,CAAC;IACF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,gFAAgF;IAChF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,QAAQ,CAAC,CAAC,EAAE,iBAAiB,CAAC;CAC/B;AAgED,wFAAwF;AACxF,wBAAgB,gBAAgB,CAAC,EAC/B,OAAO,EACP,WAAW,EACX,UAAU,EACV,qBAAqB,EACrB,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,CAAC,GACF,EAAE,qBAAqB,+BA+VvB"}
1
+ {"version":3,"file":"WorktreeGitPanel.d.ts","sourceRoot":"","sources":["../../../../src/client/dashboard/git/WorktreeGitPanel.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAIV,eAAe,EAChB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAmBhE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CACrB,eAAe,EACf,cAAc,GAAG,qBAAqB,GAAG,yBAAyB,GAAG,2BAA2B,CACjG,GAAG,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAC1D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,gFAAgF;IAChF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,QAAQ,CAAC,CAAC,EAAE,iBAAiB,CAAC;CAC/B;AAgED,wFAAwF;AACxF,wBAAgB,gBAAgB,CAAC,EAC/B,OAAO,EACP,WAAW,EACX,UAAU,EACV,qBAAqB,EACrB,aAAa,EACb,OAAO,EACP,gBAAgB,EAChB,UAAU,EACV,CAAC,GACF,EAAE,qBAAqB,+BA+XvB"}
@@ -1,8 +1,14 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { useRef } from 'react';
2
+ import { NotificationToasts } from '../../surface/components/NotificationToasts.js';
3
+ import { toWorktreeViewError } from '../../view/worktree-view.js';
4
+ import { formatWorktreeViewError } from '../../view/worktree-error-copy.js';
5
+ import { failureToastKey } from '../../surface/notification-queue.js';
6
+ import { useMemo, useRef } from 'react';
7
+ import { GitBranchSelector } from '../../branch/GitBranchSelector.js';
3
8
  import { isMainWorktreeId, normalizeBaselineBranch, sumLineTotals } from './git-facts.js';
4
9
  import { GitChangedFiles } from './GitChangedFiles.js';
5
10
  import { GitLineStats } from './GitLineStats.js';
11
+ import { GitCommitStats } from './GitCommitStats.js';
6
12
  import { GitCommitList } from './GitCommitList.js';
7
13
  import { GitDiffView } from './GitDiffView.js';
8
14
  import { GIT_SPLIT_DEFAULT_COLUMN_PERCENT, GIT_SPLIT_DEFAULT_ROW_PERCENT, GIT_SPLIT_MIN_COLUMN_PX, GIT_SPLIT_MIN_ROW_PX, } from './git-column-split.js';
@@ -16,7 +22,7 @@ function selectedCommit(history, sha) {
16
22
  return history?.commits.find((commit) => commit.sha === sha);
17
23
  }
18
24
  function commitCountLabel(history, t) {
19
- const committedCount = history.commits.filter((commit) => commit.kind !== 'working-tree').length;
25
+ const committedCount = history.ahead ?? history.commits.filter((commit) => commit.kind !== 'working-tree').length;
20
26
  return history.commits.some((commit) => commit.kind === 'working-tree')
21
27
  ? t('dashboard.git.commitCountWithWorkingTree', { commits: committedCount })
22
28
  : t('dashboard.git.commitCount', { n: committedCount });
@@ -48,7 +54,7 @@ function UnavailableNotice({ reason, t, }) {
48
54
  return (_jsxs("div", { className: styles.gitUnavailable, "data-dashboard-git-unavailable": true, children: [_jsx("strong", { children: t(UNAVAILABLE_COPY[reason].title) }), _jsx("p", { children: t(UNAVAILABLE_COPY[reason].description) })] }));
49
55
  }
50
56
  /** Git & Changes tab: read-only, on-demand history -> target files -> one-file diff. */
51
- export function WorktreeGitPanel({ manager, workspaceId, worktreeId, defaultBaselineBranch, currentBranch, capturedBaseline, onOpenFile, t, }) {
57
+ export function WorktreeGitPanel({ manager, workspaceId, worktreeId, defaultBaselineBranch, currentBranch, context, capturedBaseline, onOpenFile, t, }) {
52
58
  const isMain = isMainWorktreeId(worktreeId);
53
59
  const selectedDefaultBaseline = normalizeBaselineBranch(defaultBaselineBranch, currentBranch);
54
60
  const state = useWorktreeGitState({
@@ -75,13 +81,15 @@ export function WorktreeGitPanel({ manager, workspaceId, worktreeId, defaultBase
75
81
  fallback: GIT_SPLIT_DEFAULT_COLUMN_PERCENT,
76
82
  });
77
83
  const historyValue = state.history.status === 'ready' ? state.history.value : undefined;
84
+ const comparison = !isMain || historyValue?.baseline !== undefined;
78
85
  const commit = selectedCommit(historyValue, state.selectedCommit);
79
86
  const files = state.files.status === 'ready' ? readyFiles(state.files.value) : [];
80
87
  const diff = state.diff.status === 'ready' ? state.diff.value : undefined;
81
88
  const refreshing = state.history.status === 'ready' && state.history.refreshing === true;
82
89
  const unavailable = historyValue?.unavailableReason;
83
- const branchOptions = (state.branches.status === 'ready' ? state.branches.value : [])
84
- .filter((branch) => branch.name !== currentBranch);
90
+ const branchRoster = state.branches.status === 'ready' ? state.branches.value : undefined;
91
+ const branchOptions = useMemo(() => (branchRoster ?? [])
92
+ .filter((branch) => branch.kind === 'remote' || branch.name !== currentBranch), [branchRoster, currentBranch]);
85
93
  const branchError = state.branches.status === 'error'
86
94
  ? state.branches.error
87
95
  : state.branches.status === 'ready'
@@ -98,19 +106,79 @@ export function WorktreeGitPanel({ manager, workspaceId, worktreeId, defaultBase
98
106
  : commitLabel(commit, t);
99
107
  const hasTarget = state.view === 'summary' || commit !== undefined;
100
108
  const lineTotals = state.files.status === 'ready' && hasTarget ? sumLineTotals(files) : undefined;
101
- return (_jsxs("section", { className: styles.gitPanel, "data-dashboard-git-panel": true, children: [_jsxs("header", { className: styles.gitPanelHeader, children: [_jsxs("div", { className: styles.gitPanelHeading, children: [_jsx("h2", { children: t('dashboard.git.title') }), !isMain && (_jsxs("label", { className: styles.gitBaselineSelector, children: [_jsx("span", { children: t('dashboard.git.baselineSelector') }), _jsxs("select", { value: state.baselineBranch ?? '', "data-dashboard-git-baseline": true, disabled: state.branches.status === 'loading', onChange: (event) => state.selectBaselineBranch(event.currentTarget.value || undefined), children: [_jsx("option", { value: "", children: t('dashboard.git.selectBaseline') }), state.baselineBranch !== undefined && !branchOptions.some((branch) => branch.name === state.baselineBranch) && (_jsx("option", { value: state.baselineBranch, children: state.baselineBranch })), branchOptions.map((branch) => (_jsx("option", { value: branch.name, children: branch.name }, branch.name)))] })] })), baselineCommit !== undefined && (_jsxs("dl", { className: styles.gitBaselineFacts, children: [_jsxs("div", { children: [_jsx("dt", { children: t('dashboard.git.base') }), _jsxs("dd", { children: [baselineRef !== undefined ? (_jsxs(_Fragment, { children: [baselineRef, _jsxs("code", { children: ["@ ", shortCommit(baselineCommit)] })] })) : (_jsx("code", { children: shortCommit(baselineCommit) })), historyValue?.baseline?.source === 'derived' && (_jsx("span", { className: styles.gitDerived, children: t('dashboard.git.derived') }))] })] }), historyValue !== undefined && (_jsxs(_Fragment, { children: [_jsxs("div", { children: [_jsx("dt", { children: t('dashboard.git.head') }), _jsx("dd", { children: _jsx("code", { children: shortCommit(historyValue.headCommit) }) })] }), _jsxs("div", { children: [_jsx("dt", { children: t('dashboard.git.commits') }), _jsx("dd", { children: commitCountLabel(historyValue, t) })] }), historyValue.ahead !== undefined && historyValue.behind !== undefined && (_jsxs("div", { children: [_jsx("dt", { children: t('dashboard.aheadBehind') }), _jsx("dd", { children: _jsx(GitLineStats, { additions: historyValue.ahead, deletions: historyValue.behind, ariaLabel: t('dashboard.git.aheadBehindStats', {
102
- ahead: historyValue.ahead,
103
- behind: historyValue.behind,
104
- }) }) })] }))] }))] })), isMain && historyValue !== undefined && (_jsxs("dl", { className: styles.gitBaselineFacts, children: [_jsxs("div", { children: [_jsx("dt", { children: t('dashboard.git.head') }), _jsx("dd", { children: _jsx("code", { children: shortCommit(historyValue.headCommit) }) })] }), _jsxs("div", { children: [_jsx("dt", { children: t('dashboard.git.commits') }), _jsx("dd", { children: commitCountLabel(historyValue, t) })] })] }))] }), _jsx("button", { type: "button", className: styles.gitRefresh, "data-dashboard-git-refresh": true, disabled: refreshing || state.history.status === 'loading', "aria-busy": refreshing || state.history.status === 'loading', onClick: () => void state.refresh(), children: refreshing ? t('dashboard.git.refreshing') : t('dashboard.git.refresh') })] }), branchError !== undefined && (_jsxs("div", { className: styles.gitError, role: "alert", children: [_jsx("p", { children: t('dashboard.git.loadFailed', { reason: errorText(branchError, t) }) }), _jsx("button", { type: "button", onClick: () => void state.loadBranches(), children: t('dashboard.git.retry') })] })), !isMain && unavailable === 'baseline-unselected' && (_jsxs("div", { className: styles.gitBaselinePrompt, "data-dashboard-git-baseline-prompt": true, children: [_jsx("strong", { children: t('dashboard.git.selectBaselineTitle') }), _jsx("p", { children: t('dashboard.git.selectBaselineDescription') })] })), state.history.status === 'loading' && (_jsx("div", { className: styles.gitLoading, role: "status", children: t('dashboard.git.loading') })), state.history.status === 'error' && (_jsxs("div", { className: styles.gitError, role: "alert", children: [_jsx("p", { children: t('dashboard.git.loadFailed', { reason: errorText(state.history.error, t) }) }), _jsx("button", { type: "button", onClick: () => void state.refresh(), children: t('dashboard.git.retry') })] })), state.history.status === 'ready' && state.history.error !== undefined && (_jsxs("div", { className: styles.gitError, role: "alert", children: [_jsx("p", { children: t('dashboard.git.refreshFailed', { reason: errorText(state.history.error, t) }) }), _jsx("button", { type: "button", onClick: () => void state.refresh(), children: t('dashboard.git.retry') })] })), state.history.status === 'ready' && historyValue !== undefined && unavailable !== undefined && (_jsx(UnavailableNotice, { reason: unavailable, t: t })), state.history.status === 'ready' && historyValue !== undefined && unavailable === undefined && (_jsxs("div", { className: styles.gitColumns, ref: gridRef, children: [_jsxs("section", { className: styles.gitColumn, "data-dashboard-git-pane": "commits", "aria-label": t('dashboard.git.commits'), children: [_jsxs("div", { className: styles.gitColumnHeader, children: [_jsx("h3", { children: t('dashboard.git.commits') }), _jsxs("div", { className: styles.gitColumnHeaderControls, children: [historyValue.truncated && _jsx("span", { children: t('dashboard.git.truncatedHistory') }), _jsxs("label", { className: styles.gitCommitMultiSelect, title: t('dashboard.git.multiSelectCommitsDescription'), children: [_jsx("input", { type: "checkbox", role: "switch", "data-dashboard-git-multi-select": true, "aria-describedby": "dashboard-git-commit-selection-hint", checked: state.commitMultiSelect, onChange: (event) => state.setCommitMultiSelect(event.currentTarget.checked) }), _jsx("span", { className: styles.gitCommitMultiSelectTrack, "aria-hidden": "true", children: _jsx("span", { className: styles.gitCommitMultiSelectThumb }) }), _jsx("span", { className: styles.gitCommitMultiSelectLabel, children: t('dashboard.git.multiSelectCommits') })] })] })] }), !isMain && (_jsxs("button", { type: "button", className: styles.gitSummaryButton, "data-dashboard-git-summary": true, "aria-pressed": state.view === 'summary', onClick: state.selectSummary, children: [_jsx("span", { children: t('dashboard.git.baselineSummary') }), _jsx("small", { children: t('dashboard.git.baselineSummaryDescription') })] })), !isMain && state.view === 'summary' && (_jsxs("label", { className: styles.gitSummaryToggle, "data-dashboard-git-include-working-tree": true, children: [_jsx("input", { type: "checkbox", checked: state.includeWorkingTree, disabled: state.files.status === 'loading', onChange: (event) => state.setIncludeWorkingTree(event.currentTarget.checked) }), _jsxs("span", { children: [_jsx("strong", { children: t('dashboard.git.includeWorkingTree') }), _jsx("small", { children: t('dashboard.git.includeWorkingTreeDescription') })] })] })), _jsx("span", { id: "dashboard-git-commit-selection-hint", className: styles.gitSrOnly, children: t('dashboard.git.commitSelectionHint') }), historyValue.commits.length === 0 && _jsx("div", { className: styles.gitEmpty, children: t('dashboard.git.noCommits') }), _jsx(GitCommitList, { commits: historyValue.commits, selectedCommit: state.selectedCommit, selectedCommits: state.selectedCommits, multiSelect: state.commitMultiSelect, onSelect: state.selectCommit, onToggle: state.toggleCommit, t: t })] }), _jsx(GitSplitter, { split: rows, orientation: "horizontal", axis: "rows", label: t('dashboard.git.resizeRows') }), _jsxs("section", { className: styles.gitColumn, "data-dashboard-git-pane": "changed-files", "aria-label": t('dashboard.git.changedFiles'), "aria-busy": state.files.status === 'loading', children: [_jsxs("div", { className: styles.gitColumnHeader, children: [_jsx("h3", { children: t('dashboard.git.changedFiles') }), _jsxs("div", { className: styles.gitColumnHeaderMeta, children: [targetLabel !== undefined && (state.selectedCommits.length > 1 || state.view === 'summary'
109
+ const refreshRequired = state.loadMoreError !== undefined &&
110
+ toWorktreeViewError(state.loadMoreError).code === 'WORKTREE_STATE_CONFLICT';
111
+ return (_jsxs("section", { className: styles.gitPanel, "data-dashboard-git-panel": true, children: [_jsx(NotificationToasts, { notices: [
112
+ ['branches', branchError],
113
+ ['pagination', state.loadMoreError],
114
+ [
115
+ 'history',
116
+ state.history.status === 'error' || state.history.status === 'ready'
117
+ ? state.history.error
118
+ : undefined,
119
+ ],
120
+ [
121
+ 'files',
122
+ state.files.status === 'error' || state.files.status === 'ready'
123
+ ? state.files.error
124
+ : undefined,
125
+ ],
126
+ ['diff', state.diff.status === 'error' ? state.diff.error : undefined],
127
+ ].flatMap(([scope, error]) => {
128
+ if (!(error instanceof Error))
129
+ return [];
130
+ const diagnostic = toWorktreeViewError(error);
131
+ const text = formatWorktreeViewError(diagnostic, t);
132
+ return [
133
+ {
134
+ key: JSON.stringify([workspaceId, worktreeId, scope, diagnostic.code, diagnostic.details]),
135
+ toastKey: failureToastKey(diagnostic, [workspaceId, worktreeId]),
136
+ error: toWorktreeViewError(error),
137
+ context: context ?? [currentBranch, workspaceId, worktreeId].filter(Boolean).join(' · '),
138
+ describe: (translate) => translate('settings.git', {
139
+ operation: translate(scope === 'branches' ? 'dashboard.base'
140
+ : scope === 'history' ? 'dashboard.git.commits'
141
+ : scope === 'files' ? 'dashboard.git.changedFiles' : 'dashboard.git.diff'),
142
+ }) + ' · ' + (context ?? [currentBranch, workspaceId, worktreeId].filter(Boolean).join(' · ')),
143
+ text,
144
+ actions: [
145
+ {
146
+ label: t('dashboard.git.retry'),
147
+ onClick: () => {
148
+ if (scope === 'branches')
149
+ void state.loadBranches();
150
+ else if (scope === 'pagination' && diagnostic.code !== 'WORKTREE_STATE_CONFLICT')
151
+ void state.loadMore();
152
+ else
153
+ void state.refresh();
154
+ },
155
+ },
156
+ ],
157
+ },
158
+ ];
159
+ }) }), _jsxs("header", { className: styles.gitPanelHeader, children: [_jsxs("div", { className: styles.gitPanelHeading, children: [_jsx("h2", { children: t('dashboard.git.title') }), _jsxs("div", { className: styles.gitBaselineSelector, children: [_jsx("span", { children: t('dashboard.git.baselineSelector') }), _jsx(GitBranchSelector, { t: t, size: "compact", label: t('dashboard.git.baselineSelector'), placeholder: t(isMain ? 'dashboard.git.noBaseline' : 'dashboard.git.selectBaseline'), emptyLabel: t(isMain ? 'dashboard.git.noBaseline' : 'dashboard.git.selectBaseline'), branches: branchOptions, value: state.baselineBranch ?? '', loading: state.branches.status === 'loading'
160
+ || (state.branches.status === 'ready' && state.branches.refreshing === true), onFetch: manager?.fetchRemoteBranches === undefined ? undefined : async () => {
161
+ try {
162
+ const branches = await manager.fetchRemoteBranches({ workspaceId });
163
+ state.acceptBranches(branches);
164
+ return branches.filter((branch) => branch.kind === 'remote' || branch.name !== currentBranch);
165
+ }
166
+ finally {
167
+ await state.refresh();
168
+ }
169
+ }, onChange: (value) => state.selectBaselineBranch(value || undefined), onLoad: manager?.listBranches === undefined ? undefined
170
+ : async () => (await state.readFreshBranches())
171
+ .filter((branch) => branch.kind === 'remote' || branch.name !== currentBranch) })] }), baselineCommit !== undefined && (_jsxs("dl", { className: styles.gitBaselineFacts, children: [_jsxs("div", { children: [_jsx("dt", { children: t('dashboard.git.base') }), _jsxs("dd", { children: [baselineRef !== undefined ? (_jsxs(_Fragment, { children: [baselineRef.replace(/^refs\/(heads|remotes)\//u, ''), _jsxs("code", { children: ["@ ", shortCommit(baselineCommit)] })] })) : (_jsx("code", { children: shortCommit(baselineCommit) })), historyValue?.baseline?.source === 'derived' && (_jsx("span", { className: styles.gitDerived, children: t('dashboard.git.derived') }))] })] }), historyValue !== undefined && (_jsxs(_Fragment, { children: [_jsxs("div", { children: [_jsx("dt", { children: t('dashboard.git.head') }), _jsx("dd", { children: _jsx("code", { children: shortCommit(historyValue.headCommit) }) })] }), _jsxs("div", { children: [_jsx("dt", { children: t('dashboard.git.commits') }), _jsx("dd", { children: commitCountLabel(historyValue, t) })] }), historyValue.ahead !== undefined && historyValue.behind !== undefined && (_jsxs("div", { children: [_jsx("dt", { children: t('dashboard.aheadBehind') }), _jsx("dd", { children: _jsx(GitCommitStats, { ahead: historyValue.ahead, behind: historyValue.behind, t: t }) })] }))] }))] })), isMain && historyValue !== undefined && baselineCommit === undefined && (_jsx("dl", { className: styles.gitBaselineFacts, children: _jsxs("div", { children: [_jsx("dt", { children: t('dashboard.git.head') }), _jsx("dd", { children: _jsx("code", { children: shortCommit(historyValue.headCommit) }) })] }) }))] }), _jsx("button", { type: "button", className: styles.gitRefresh, "data-dashboard-git-refresh": true, disabled: refreshing || state.history.status === 'loading', "aria-busy": refreshing || state.history.status === 'loading', onClick: () => void state.refresh(), children: refreshing ? t('dashboard.git.refreshing') : t('dashboard.git.refresh') })] }), !isMain && unavailable === 'baseline-unselected' && (_jsxs("div", { className: styles.gitBaselinePrompt, "data-dashboard-git-baseline-prompt": true, children: [_jsx("strong", { children: t('dashboard.git.selectBaselineTitle') }), _jsx("p", { children: t('dashboard.git.selectBaselineDescription') })] })), state.history.status === 'loading' && (_jsx("div", { className: styles.gitLoading, role: "status", children: t('dashboard.git.loading') })), state.history.status === 'ready' && historyValue !== undefined && unavailable !== undefined && (_jsx(UnavailableNotice, { reason: unavailable, t: t })), state.history.status === 'ready' && historyValue !== undefined && unavailable === undefined && (_jsxs("div", { className: styles.gitColumns, ref: gridRef, children: [_jsxs("section", { className: styles.gitColumn, "data-dashboard-git-pane": "commits", "aria-label": t('dashboard.git.commits'), children: [_jsxs("div", { className: styles.gitColumnHeader, children: [_jsx("h3", { children: t('dashboard.git.commits') }), _jsxs("div", { className: styles.gitColumnHeaderControls, children: [state.loadingMore && _jsx("span", { role: "status", children: t('dashboard.git.loadingMore') }), _jsxs("label", { className: styles.gitCommitMultiSelect, title: t('dashboard.git.multiSelectCommitsDescription'), children: [_jsx("input", { type: "checkbox", role: "switch", "data-dashboard-git-multi-select": true, "aria-describedby": "dashboard-git-commit-selection-hint", checked: state.commitMultiSelect, onChange: (event) => state.setCommitMultiSelect(event.currentTarget.checked) }), _jsx("span", { className: styles.gitCommitMultiSelectTrack, "aria-hidden": "true", children: _jsx("span", { className: styles.gitCommitMultiSelectThumb }) }), _jsx("span", { className: styles.gitCommitMultiSelectLabel, children: t('dashboard.git.multiSelectCommits') })] })] })] }), comparison && (_jsxs("button", { type: "button", className: styles.gitSummaryButton, "data-dashboard-git-summary": true, "aria-pressed": state.view === 'summary', onClick: state.selectSummary, children: [_jsx("span", { children: t('dashboard.git.baselineSummary') }), _jsx("small", { children: t('dashboard.git.baselineSummaryDescription') })] })), comparison && state.view === 'summary' && (_jsxs("label", { className: styles.gitSummaryToggle, "data-dashboard-git-include-working-tree": true, children: [_jsx("input", { type: "checkbox", checked: state.includeWorkingTree, disabled: state.files.status === 'loading', onChange: (event) => state.setIncludeWorkingTree(event.currentTarget.checked) }), _jsxs("span", { children: [_jsx("strong", { children: t('dashboard.git.includeWorkingTree') }), _jsx("small", { children: t('dashboard.git.includeWorkingTreeDescription') })] })] })), _jsx("span", { id: "dashboard-git-commit-selection-hint", className: styles.gitSrOnly, children: t('dashboard.git.commitSelectionHint') }), historyValue.commits.length === 0 && _jsx("div", { className: styles.gitEmpty, children: t('dashboard.git.noCommits') }), _jsx(GitCommitList, { commits: historyValue.commits, selectedCommit: state.selectedCommit, selectedCommits: state.selectedCommits, multiSelect: state.commitMultiSelect, onSelect: state.selectCommit, onToggle: state.toggleCommit, hasMore: historyValue.nextOffset !== undefined, loadingMore: state.loadingMore, loadMoreError: state.loadMoreError !== undefined, onLoadMore: () => void (refreshRequired
172
+ ? state.refresh() : state.loadMore()), refreshRequired: refreshRequired, t: t }, JSON.stringify([state.baselineBranch, historyValue.headCommit, baselineCommit]))] }), _jsx(GitSplitter, { split: rows, orientation: "horizontal", axis: "rows", label: t('dashboard.git.resizeRows') }), _jsxs("section", { className: styles.gitColumn, "data-dashboard-git-pane": "changed-files", "aria-label": t('dashboard.git.changedFiles'), "aria-busy": state.files.status === 'loading', children: [_jsxs("div", { className: styles.gitColumnHeader, children: [_jsx("h3", { children: t('dashboard.git.changedFiles') }), _jsxs("div", { className: styles.gitColumnHeaderMeta, children: [targetLabel !== undefined && (state.selectedCommits.length > 1 || state.view === 'summary'
105
173
  ? _jsx("span", { children: targetLabel })
106
174
  : _jsx("code", { children: targetLabel })), state.files.status === 'ready' && hasTarget && (lineTotals === undefined ? (_jsx("span", { className: styles.gitColumnHeaderUnknown, children: t('dashboard.unknown') })) : (_jsx(GitLineStats, { additions: lineTotals.additions, deletions: lineTotals.deletions, ariaLabel: t('dashboard.git.lineStats', {
107
175
  additions: lineTotals.additions,
108
176
  deletions: lineTotals.deletions,
109
- }) })))] })] }), state.commitMultiSelect && state.selectedCommits.length > 0 && state.view === 'commits' && (_jsxs("div", { className: styles.gitSelectionToolbar, children: [_jsx("span", { children: t('dashboard.git.selectedCommitCount', { n: state.selectedCommits.length }) }), _jsx("button", { type: "button", onClick: state.clearCommitSelection, children: t('dashboard.git.clearCommitSelection') })] })), !hasTarget ? (_jsx("div", { className: styles.gitEmpty, children: t('dashboard.git.selectCommit') })) : state.files.status === 'loading' ? (_jsx("div", { className: styles.gitLoading, role: "status", children: state.view === 'summary' ? t('dashboard.git.loadingSummaryFiles') : t('dashboard.git.loadingFiles') })) : state.files.status === 'error' ? (_jsx("div", { className: styles.gitError, role: "alert", children: errorText(state.files.error, t) })) : (_jsxs(_Fragment, { children: [state.files.status === 'ready' && state.files.error !== undefined && (_jsx("div", { className: styles.gitError, role: "alert", children: errorText(state.files.error, t) })), state.files.status === 'ready' && state.files.value.truncated === true && (_jsx("div", { className: styles.gitEmpty, role: "status", "data-dashboard-git-files-truncated": true, children: t('dashboard.git.truncatedFiles') })), files.length === 0 && !(state.files.status === 'ready' && state.files.value.truncated === true) ? (_jsx("div", { className: styles.gitEmpty, children: state.view === 'summary'
177
+ }) })))] })] }), state.commitMultiSelect && state.selectedCommits.length > 0 && state.view === 'commits' && (_jsxs("div", { className: styles.gitSelectionToolbar, children: [_jsx("span", { children: t('dashboard.git.selectedCommitCount', { n: state.selectedCommits.length }) }), _jsx("button", { type: "button", onClick: state.clearCommitSelection, children: t('dashboard.git.clearCommitSelection') })] })), !hasTarget ? (_jsx("div", { className: styles.gitEmpty, children: t('dashboard.git.selectCommit') })) : state.files.status === 'loading' ? (_jsx("div", { className: styles.gitLoading, role: "status", children: state.view === 'summary' ? t('dashboard.git.loadingSummaryFiles') : t('dashboard.git.loadingFiles') })) : state.files.status === 'error' ? (null) : (_jsxs(_Fragment, { children: [state.files.status === 'ready' && state.files.value.truncated === true && (_jsx("div", { className: styles.gitEmpty, role: "status", "data-dashboard-git-files-truncated": true, children: t('dashboard.git.truncatedFiles') })), files.length === 0 && !(state.files.status === 'ready' && state.files.value.truncated === true) ? (_jsx("div", { className: styles.gitEmpty, children: state.view === 'summary'
110
178
  ? state.includeWorkingTree
111
179
  ? t('dashboard.git.noLiveBaselineChanges')
112
180
  : t('dashboard.git.noBaselineChanges')
113
- : t('dashboard.git.noFiles') })) : (_jsx(GitChangedFiles, { files: files, selectedPath: state.selectedPath, onSelect: state.selectPath, t: t }))] }))] }), _jsx(GitSplitter, { split: columns, orientation: "vertical", axis: "columns", label: t('dashboard.git.resizeColumns') }), _jsxs("section", { className: styles.gitColumn, "data-dashboard-git-pane": "diff", "aria-label": t('dashboard.git.diff'), "aria-busy": state.diff.status === 'loading', children: [_jsxs("div", { className: styles.gitColumnHeader, children: [_jsx("h3", { children: state.view === 'summary' ? t('dashboard.git.summaryDiff') : t('dashboard.git.diff') }), state.selectedPath !== undefined && _jsx("code", { title: state.selectedPath, children: state.selectedPath })] }), state.diff.status === 'loading' ? (_jsx("div", { className: styles.gitLoading, role: "status", children: state.view === 'summary' ? t('dashboard.git.loadingSummaryDiff') : t('dashboard.git.loadingDiff') })) : state.diff.status === 'error' ? (_jsx("div", { className: styles.gitError, role: "alert", children: errorText(state.diff.error, t) })) : (_jsx(GitDiffView, { diff: diff, onOpenFile: onOpenFile, t: t }))] })] }))] }));
181
+ : t('dashboard.git.noFiles') })) : (_jsx(GitChangedFiles, { files: files, selectedPath: state.selectedPath, onSelect: state.selectPath, onOpenFile: onOpenFile, t: t }))] }))] }), _jsx(GitSplitter, { split: columns, orientation: "vertical", axis: "columns", label: t('dashboard.git.resizeColumns') }), _jsxs("section", { className: styles.gitColumn, "data-dashboard-git-pane": "diff", "aria-label": t('dashboard.git.diff'), "aria-busy": state.diff.status === 'loading', children: [_jsxs("div", { className: styles.gitColumnHeader, children: [_jsx("h3", { children: state.view === 'summary' ? t('dashboard.git.summaryDiff') : t('dashboard.git.diff') }), state.selectedPath !== undefined && _jsx("code", { title: state.selectedPath, children: state.selectedPath })] }), state.diff.status === 'loading' ? (_jsx("div", { className: styles.gitLoading, role: "status", children: state.view === 'summary' ? t('dashboard.git.loadingSummaryDiff') : t('dashboard.git.loadingDiff') })) : state.diff.status === 'error' ? (null) : (_jsx(GitDiffView, { diff: diff, onOpenFile: onOpenFile, t: t }))] })] }))] }));
114
182
  }
115
183
  /**
116
184
  * Draggable divider that resizes one axis of the Git grid. The wide layout puts
@@ -120,7 +188,4 @@ export function WorktreeGitPanel({ manager, workspaceId, worktreeId, defaultBase
120
188
  function GitSplitter({ split, orientation, axis, label }) {
121
189
  return (_jsx("div", { className: styles.gitColumnSplitter, "data-dashboard-git-splitter": axis, "data-dashboard-git-splitting": split.dragging ? 'true' : undefined, role: "separator", "aria-orientation": orientation, "aria-label": label, "aria-valuemin": 0, "aria-valuemax": 100, "aria-valuenow": Math.round(split.percent), title: label, tabIndex: 0, ref: split.splitterRef, onPointerDown: split.startDrag, onPointerMove: split.drag, onPointerUp: split.endDrag, onPointerCancel: split.endDrag, onLostPointerCapture: split.endDrag, onDoubleClick: split.reset, onKeyDown: split.onKeyDown }));
122
190
  }
123
- function errorText(error, t) {
124
- return error.message || t('dashboard.unknownError');
125
- }
126
191
  //# sourceMappingURL=WorktreeGitPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorktreeGitPanel.js","sourceRoot":"","sources":["../../../../src/client/dashboard/git/WorktreeGitPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorktreeGitPanel.js","sourceRoot":"","sources":["../../../../src/client/dashboard/git/WorktreeGitPanel.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +1,6 @@
1
- export declare function buildSessionFileAddress(sessionId: string, path: string): string;
1
+ export declare class GitFileAddressError extends Error {
2
+ readonly code = "GIT_FILE_OUTSIDE_SESSION";
3
+ }
4
+ /** Resolve Workspace-relative Git paths against the actual Session cwd. */
5
+ export declare function buildSessionFileAddress(sessionId: string, path: string, workspacePath?: string, cwd?: string, gitRootPath?: string | undefined): string;
2
6
  //# sourceMappingURL=file-address.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-address.d.ts","sourceRoot":"","sources":["../../../../src/client/dashboard/git/file-address.ts"],"names":[],"mappings":"AAaA,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAG/E"}
1
+ {"version":3,"file":"file-address.d.ts","sourceRoot":"","sources":["../../../../src/client/dashboard/git/file-address.ts"],"names":[],"mappings":"AAGA,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,IAAI,8BAA8B;CAC5C;AAcD,2EAA2E;AAC3E,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,MAAM,EACtB,GAAG,CAAC,EAAE,MAAM,EACZ,WAAW,qBAAgB,GAC1B,MAAM,CA+BR"}
@@ -1,16 +1,54 @@
1
- /**
2
- * Canonical DSH session file address constructor.
3
- * Equivalent to `sessionFileAddress` from `@deepseek-ai/dsh-util-workspace-path`.
4
- * Address grammar: `dsh-resource://file/session/<sessionId>/<encodedPath>`
5
- */
6
- function encodeSegment(segment) {
7
- return encodeURIComponent(segment).replace(/%3A/gi, ':');
1
+ import { fileAddressFor } from '@deepseek-ai/dsh-util-workspace-path';
2
+ import { isWindowsPath, stripExtendedWindowsPrefix } from '../../../contract/windows-path.js';
3
+ export class GitFileAddressError extends Error {
4
+ code = 'GIT_FILE_OUTSIDE_SESSION';
8
5
  }
9
- function encodePath(path) {
10
- return path.split('/').map(encodeSegment).join('/');
6
+ function absoluteDirectory(value) {
7
+ const absolute = stripExtendedWindowsPrefix(value).replace(/\\/g, '/');
8
+ if (!absolute.startsWith('/') && !/^[A-Za-z]:\//u.test(absolute)) {
9
+ throw new GitFileAddressError('Workspace directory, Git root and Session cwd must be absolute');
10
+ }
11
+ const normalized = absolute.replace(/\/+$/u, '');
12
+ if (normalized.split('/').some((segment) => segment === '.' || segment === '..')) {
13
+ throw new GitFileAddressError('Ambiguous directory path');
14
+ }
15
+ return normalized;
11
16
  }
12
- export function buildSessionFileAddress(sessionId, path) {
17
+ /** Resolve Workspace-relative Git paths against the actual Session cwd. */
18
+ export function buildSessionFileAddress(sessionId, path, workspacePath, cwd, gitRootPath = workspacePath) {
13
19
  const normalized = path.replace(/\\/g, '/').replace(/^(?:\.\/)+/, '');
14
- return `dsh-resource://file/session/${encodeSegment(sessionId)}/${encodePath(normalized)}`;
20
+ if (!normalized || normalized.startsWith('/') || /^[A-Za-z]:/u.test(normalized) ||
21
+ normalized.includes('\0') || normalized.split('/').some((segment) => segment === '.' || segment === '')) {
22
+ throw new GitFileAddressError('Expected a Workspace-relative Git file path');
23
+ }
24
+ if (workspacePath === undefined) {
25
+ if (normalized.split('/').includes('..'))
26
+ throw new GitFileAddressError('Workspace directory is required');
27
+ return fileAddressFor(sessionId, cwd, normalized);
28
+ }
29
+ const root = absoluteDirectory(workspacePath);
30
+ const sessionRoot = absoluteDirectory(cwd ?? workspacePath);
31
+ const checkoutRoot = absoluteDirectory(gitRootPath ?? workspacePath);
32
+ const parts = root.split('/');
33
+ const rootSegments = root.startsWith('//') ? 4 : 1;
34
+ for (const segment of normalized.split('/')) {
35
+ if (segment === '..') {
36
+ if (parts.length <= rootSegments)
37
+ throw new GitFileAddressError('Path escapes the filesystem root');
38
+ parts.pop();
39
+ }
40
+ else
41
+ parts.push(segment);
42
+ }
43
+ const target = parts.join('/');
44
+ const windows = isWindowsPath(workspacePath) || isWindowsPath(cwd ?? workspacePath) || root.startsWith('//');
45
+ const identity = (value) => windows ? value.toLowerCase() : value;
46
+ if (!identity(target).startsWith(identity(checkoutRoot) + '/') ||
47
+ !identity(target).startsWith(identity(sessionRoot) + '/')) {
48
+ throw new GitFileAddressError('The changed file is outside the Session working directory');
49
+ }
50
+ // Compute the relative path explicitly so Windows casing and extended prefixes
51
+ // cannot make the native lexical helper emit an accidental absolute address.
52
+ return fileAddressFor(sessionId, cwd, target.slice(sessionRoot.length + 1));
15
53
  }
16
54
  //# sourceMappingURL=file-address.js.map