@vantran-se/openchamber-web 2.0.4 → 2.0.5
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.
- package/dist/assets/{CodeMirrorCommentWidgets-DZF8ntaq.js → CodeMirrorCommentWidgets-DCAQTLMM.js} +1 -1
- package/dist/assets/DiffView-uzNpHBlV.js +4 -0
- package/dist/assets/FilesView-Bkq0sjNx.js +17 -0
- package/dist/assets/{GitView-DwQwqDvu.js → GitView-BmibZC7n.js} +4 -4
- package/dist/assets/{GuestAttachDialog-CoXM0gh_.js → GuestAttachDialog-D7TJG1rt.js} +1 -1
- package/dist/assets/GuestSurfacePane-PAcYaFzP.js +1 -0
- package/dist/assets/{JsonTreeView-Cq_27v0y.js → JsonTreeView-BNT2yUVu.js} +1 -1
- package/dist/assets/{LinearIssuesView-CsSSRMhn.js → LinearIssuesView-D3Azksju.js} +1 -1
- package/dist/assets/MarkdownImageGallery-BGY6tuiK.js +1 -0
- package/dist/assets/MarkdownRendererImpl-DJmhQ37f.js +12 -0
- package/dist/assets/{OnboardingScreen-ClatMQAX.js → OnboardingScreen-D_41H2qC.js} +1 -1
- package/dist/assets/{PatchDiff-DOwlrIK9.js → PatchDiff-C0RSqa9W.js} +1 -1
- package/dist/assets/{PierreDiffViewer-CrcGqqD_.js → PierreDiffViewer-BBE7tTY2.js} +3 -3
- package/dist/assets/{PlanView-BGLsMgQk.js → PlanView-Bqc-xuDe.js} +4 -4
- package/dist/assets/PluginPane-DQ0k41Q-.js +3 -0
- package/dist/assets/SettingsView-BAiJU5hJ.js +30 -0
- package/dist/assets/{SettingsWindow-B0BAy-f9.js → SettingsWindow-DuC4ecLw.js} +1 -1
- package/dist/assets/{SubmoduleDiffSummary-fcdDzCSW.js → SubmoduleDiffSummary-0HgmcMXz.js} +1 -1
- package/dist/assets/{ToolOutputDialog-B7xaUz2H.js → ToolOutputDialog-DdHkQJEE.js} +6 -6
- package/dist/assets/{ToolPartDiffPreview-CkWCaUmZ.js → ToolPartDiffPreview-DWdN0r5K.js} +2 -2
- package/dist/assets/{VirtualizedFileDiff-DONC4eI2.js → VirtualizedFileDiff-ClDezf2d.js} +1 -1
- package/dist/assets/{WalkthroughView-CXDImOXW.js → WalkthroughView-BJicp0RC.js} +2 -2
- package/dist/assets/{appThemeRegistry-Br2TLSlb.js → appThemeRegistry-CiuyzfSW.js} +1 -1
- package/dist/assets/changesTree-CePHbFcj.js +1 -0
- package/dist/assets/commitAndPush-DTKb6IwT.js +1 -0
- package/dist/assets/{computeVirtualFileMetrics-_-20umCs.js → computeVirtualFileMetrics-kM_zJNMt.js} +2 -2
- package/dist/assets/de-BMnfXm-G.js +10 -0
- package/dist/assets/es-DKEvCCL6.js +16 -0
- package/dist/assets/fr-D9fgE2xE.js +14 -0
- package/dist/assets/index-DUke1nme.css +1 -0
- package/dist/assets/{index-OKDYjcMF.js → index-DWB8bR_g.js} +1 -1
- package/dist/assets/index-Di6zUe5h.js +41 -0
- package/dist/assets/{isDiffPlainText-D77M6q1f.js → isDiffPlainText-DOoIsGqs.js} +1 -1
- package/dist/assets/{isFilePlainText-C54B4Mns.js → isFilePlainText-bt5VHvcd.js} +1 -1
- package/dist/assets/ja-BEXad-KW.js +16 -0
- package/dist/assets/ko-DGrQ0lEe.js +16 -0
- package/dist/assets/{main-CGEvLMd2.js → main-BpLQbZC2.js} +2 -2
- package/dist/assets/main-CI9DtHJv.js +896 -0
- package/dist/assets/{markdown-shiki.worker-CahLvHIq.js → markdown-shiki.worker-Bg8SoAJJ.js} +8 -5
- package/dist/assets/markdownCore-DK2KK5RW.js +7 -0
- package/dist/assets/{miniChat-BSxkRQLj.js → miniChat-CIWaR8wG.js} +2 -2
- package/dist/assets/{mobile-C5KRTNOB.js → mobile-CnWKEYIP.js} +2 -2
- package/dist/assets/patchFileDiff-Cqn0C0az.js +13 -0
- package/dist/assets/pl-BlhkmR5b.js +16 -0
- package/dist/assets/pt-BR-Bs96Ew9I.js +16 -0
- package/dist/assets/{renderElectronMiniChatApp-CnkAQV6o.js → renderElectronMiniChatApp-D9t0-9nV.js} +2 -2
- package/dist/assets/renderMobileApp-CW7fVs_s.js +25 -0
- package/dist/assets/runtimeEndpointReset-D0PcCb3K.js +27 -0
- package/dist/assets/scheduledTasksApi-Dahv3ws0.js +1 -0
- package/dist/assets/{shikiHighlight-4O0ZM14D.js → shikiHighlight-l-MbaNS4.js} +1 -1
- package/dist/assets/{textMateThemeFromAppTheme-yNq7b0DZ.js → textMateThemeFromAppTheme-C-kGcOpD.js} +1 -1
- package/dist/assets/tr-CehUK1M9.js +7 -0
- package/dist/assets/uk-Bno5WGNz.js +16 -0
- package/dist/assets/{useAppFontEffects-Bzyszv2N.js → useAppFontEffects-DDjuwVqi.js} +160 -156
- package/dist/assets/{useInlineCommentController-zOf6ORAq.js → useInlineCommentController-Clg8EO3A.js} +2 -2
- package/dist/assets/{useRootScrollLock-DCaZ4BWi.js → useRootScrollLock-nDcRrgJ1.js} +2 -2
- package/dist/assets/{vendor-codemirror-language-data-6cEFPNUR.js → vendor-codemirror-language-data-oKF0MAwd.js} +2 -2
- package/dist/assets/vendor-opencode-client-DSZl7jSi.js +12 -0
- package/dist/assets/vendor-zod-BSoePkpP.js +39 -0
- package/dist/assets/{web-components-BEo4-ISu.js → web-components-Bc1WPd4i.js} +1 -1
- package/dist/assets/zh-CN-DnAweIWo.js +16 -0
- package/dist/assets/zh-TW-BbBBK25p.js +16 -0
- package/dist/index.html +5 -5
- package/dist/mini-chat.html +5 -5
- package/dist/mobile.html +5 -5
- package/package.json +3 -3
- package/server/index.js +82 -0
- package/server/lib/agent-tool/DOCUMENTATION.md +132 -47
- package/server/lib/agent-tool/runtime.js +34 -15
- package/server/lib/agent-tool/runtime.test.js +15 -0
- package/server/lib/browser-control/DOCUMENTATION.md +14 -2
- package/server/lib/event-stream/global-hub.js +23 -1
- package/server/lib/event-stream/global-hub.test.js +35 -0
- package/server/lib/event-stream/global-ws-bridge.js +3 -1
- package/server/lib/event-stream/upstream-reader.js +3 -2
- package/server/lib/git/DOCUMENTATION.md +1 -1
- package/server/lib/git/service.js +22 -0
- package/server/lib/git/service.test.js +8 -0
- package/server/lib/guests/DOCUMENTATION.md +4 -3
- package/server/lib/guests/catalog.js +19 -1
- package/server/lib/guests/catalog.test.js +22 -0
- package/server/lib/guests/html-styles.js +5 -3
- package/server/lib/guests/html-styles.test.js +3 -1
- package/server/lib/guests/routes.js +11 -3
- package/server/lib/guests/service.js +5 -0
- package/server/lib/guests/surface.js +55 -9
- package/server/lib/guests/surface.test.js +56 -6
- package/server/lib/notifications/DOCUMENTATION.md +10 -0
- package/server/lib/notifications/emit-route.js +118 -0
- package/server/lib/notifications/emit-route.test.js +112 -0
- package/server/lib/openchamber-control/actions.js +16 -2
- package/server/lib/openchamber-control/service.js +23 -0
- package/server/lib/openchamber-control/service.test.js +31 -0
- package/server/lib/openchamber-sessions/fork-inheritance.js +103 -0
- package/server/lib/openchamber-sessions/fork-inheritance.test.js +69 -0
- package/server/lib/openchamber-sessions/routes.js +11 -0
- package/server/lib/openchamber-sessions/routes.test.js +18 -0
- package/server/lib/opencode/bootstrap-runtime.js +14 -1
- package/server/lib/opencode/compatibility.js +6 -3
- package/server/lib/opencode/compatibility.test.js +8 -0
- package/server/lib/opencode/config-entity-v2.test.js +27 -0
- package/server/lib/opencode/config-paths.test.js +12 -0
- package/server/lib/opencode/config-v2.d.ts +2 -0
- package/server/lib/opencode/config-v2.js +42 -0
- package/server/lib/opencode/config-v2.test.js +17 -0
- package/server/lib/opencode/core-routes.js +20 -4
- package/server/lib/opencode/core-routes.test.js +41 -0
- package/server/lib/opencode/env-runtime.js +1 -8
- package/server/lib/opencode/feature-routes-runtime.js +2 -1
- package/server/lib/opencode/lifecycle.js +30 -2
- package/server/lib/opencode/lifecycle.test.js +27 -0
- package/server/lib/opencode/managed-config-file.js +18 -6
- package/server/lib/opencode/managed-config-file.test.js +23 -7
- package/server/lib/opencode/mcp.js +7 -2
- package/server/lib/opencode/npm-registry-config.d.ts +1 -0
- package/server/lib/opencode/npm-registry-config.js +123 -0
- package/server/lib/opencode/npm-registry-config.test.js +167 -0
- package/server/lib/opencode/npm-registry.js +5 -6
- package/server/lib/opencode/npm-registry.test.js +30 -0
- package/server/lib/opencode/openchamber-routes.js +29 -11
- package/server/lib/opencode/openchamber-routes.test.js +18 -0
- package/server/lib/opencode/project-directory-runtime.js +8 -0
- package/server/lib/opencode/project-directory-runtime.test.js +13 -0
- package/server/lib/opencode/provider-source-route.test.js +59 -0
- package/server/lib/opencode/providers.js +3 -0
- package/server/lib/opencode/providers.test.js +62 -0
- package/server/lib/opencode/proxy.js +38 -2
- package/server/lib/opencode/routes-upgrade.test.js +1 -1
- package/server/lib/opencode/routes.js +36 -1
- package/server/lib/opencode/server-utils-runtime.js +5 -0
- package/server/lib/opencode/settings-helpers.js +10 -0
- package/server/lib/opencode/settings-helpers.test.js +2 -2
- package/server/lib/opencode/settings-registry.json +17 -0
- package/server/lib/opencode/settings-runtime.js +1 -0
- package/server/lib/opencode/shared.js +49 -4
- package/server/lib/opencode/shared.test.js +78 -1
- package/server/lib/opencode/shutdown-runtime.js +3 -0
- package/server/lib/opencode/skill-routes.js +28 -12
- package/server/lib/opencode/skill-routes.test.js +121 -1
- package/server/lib/opencode/upgrade-capability.js +0 -14
- package/server/lib/opencode/v1-migration-topup.js +21 -15
- package/server/lib/opencode/v1-migration-topup.test.js +14 -6
- package/server/lib/opencode/v2-install.d.ts +1 -0
- package/server/lib/opencode/v2-install.js +8 -7
- package/server/lib/opencode/v2-install.test.js +13 -4
- package/server/lib/opencode/watcher.js +3 -1
- package/server/lib/opencode/websearch-config.js +13 -1
- package/server/lib/quota/providers/kimi.js +1 -1
- package/server/lib/realtime-proxy.js +5 -1
- package/server/lib/realtime-proxy.test.js +29 -0
- package/server/lib/relay/tunnel-host.js +4 -1
- package/server/lib/relay/tunnel-host.test.js +11 -0
- package/server/lib/session-assist/DOCUMENTATION.md +17 -5
- package/server/lib/session-assist/runtime.js +19 -2
- package/server/lib/session-assist/runtime.test.js +8 -0
- package/server/lib/session-goal/DOCUMENTATION.md +11 -0
- package/server/lib/small-model/DOCUMENTATION.md +11 -10
- package/server/lib/small-model/index.js +27 -32
- package/server/lib/small-model/index.test.js +28 -16
- package/server/lib/spaces/DOCUMENTATION.md +404 -32
- package/server/lib/spaces/code-in-bait.js +145 -6
- package/server/lib/spaces/code-in.js +10 -150
- package/server/lib/spaces/code-in.test.js +7 -83
- package/server/lib/spaces/code-out.js +1819 -0
- package/server/lib/spaces/code-out.test.js +3945 -0
- package/server/lib/spaces/code-transfer.js +173 -0
- package/server/lib/spaces/command-stream.test.js +181 -0
- package/server/lib/spaces/dispatcher.js +670 -0
- package/server/lib/spaces/dispatcher.test.js +582 -0
- package/server/lib/spaces/gatekeeper-channel.js +61 -7
- package/server/lib/spaces/gatekeeper-channel.test.js +43 -7
- package/server/lib/spaces/gatekeeper-program.cjs +68 -14
- package/server/lib/spaces/gatekeeper-program.test.js +118 -3
- package/server/lib/spaces/hardening.js +20 -4
- package/server/lib/spaces/hardening.test.js +18 -3
- package/server/lib/spaces/host-git.js +7 -4
- package/server/lib/spaces/host-git.test.js +6 -2
- package/server/lib/spaces/host.js +310 -0
- package/server/lib/spaces/host.test.js +273 -0
- package/server/lib/spaces/journey.js +552 -0
- package/server/lib/spaces/journey.test.js +589 -0
- package/server/lib/spaces/layout.js +42 -8
- package/server/lib/spaces/manager.js +4 -3
- package/server/lib/spaces/manager.test.js +6 -0
- package/server/lib/spaces/places/code-out.docker.live.test.js +412 -0
- package/server/lib/spaces/places/contract-suite.js +36 -0
- package/server/lib/spaces/places/dispatcher.docker.live.test.js +296 -0
- package/server/lib/spaces/places/docker-live-support.js +27 -4
- package/server/lib/spaces/places/docker.js +33 -5
- package/server/lib/spaces/places/docker.test.js +42 -3
- package/server/lib/spaces/places/escape-suite.js +118 -14
- package/server/lib/spaces/places/fake-docker.js +3 -1
- package/server/lib/spaces/places/grants.docker.live.test.js +197 -0
- package/server/lib/spaces/places/memory-place.js +24 -1
- package/server/lib/spaces/places/registry.js +1 -1
- package/server/lib/spaces/places/server.docker.live.test.js +69 -33
- package/server/lib/spaces/places/sessions.docker.live.test.js +222 -0
- package/server/lib/spaces/routes.js +216 -0
- package/server/lib/spaces/routes.test.js +213 -0
- package/server/lib/spaces/run-command.js +261 -8
- package/server/lib/spaces/run-command.test.js +193 -3
- package/server/lib/spaces/space-events.js +153 -0
- package/server/lib/spaces/space-events.test.js +160 -0
- package/server/lib/spaces/space-opencode.js +52 -0
- package/server/lib/spaces/space-opencode.test.js +41 -0
- package/server/lib/spaces/space-records.js +150 -0
- package/server/lib/spaces/space-records.test.js +113 -0
- package/server/lib/spaces/space-sessions.js +210 -0
- package/server/lib/spaces/space-sessions.test.js +161 -0
- package/server/lib/spaces/websocket.js +329 -0
- package/server/lib/spaces/websocket.test.js +345 -0
- package/server/lib/ui-auth/ui-auth.js +8 -2
- package/server/lib/ui-auth/ui-auth.test.js +29 -0
- package/server/opencode-proxy.test.js +113 -0
- package/dist/assets/DiffView-D2p4Ar0H.js +0 -4
- package/dist/assets/FilesView-BeTtbsip.js +0 -17
- package/dist/assets/GuestSurfacePane-DIJvkkM-.js +0 -1
- package/dist/assets/MarkdownImageGallery-CY0dWTaE.js +0 -1
- package/dist/assets/MarkdownRendererImpl-ILdXzLrt.js +0 -12
- package/dist/assets/PluginPane-B39JEUL8.js +0 -3
- package/dist/assets/SettingsView-13B2_G-A.js +0 -29
- package/dist/assets/commitAndPush-CcI4ol7c.js +0 -1
- package/dist/assets/de-BtYnUgII.js +0 -10
- package/dist/assets/es-crP5qPye.js +0 -16
- package/dist/assets/fr-CLSRuALk.js +0 -14
- package/dist/assets/index-CLcM8HKx.css +0 -1
- package/dist/assets/index-CvLgnuNI.js +0 -41
- package/dist/assets/ja-SZ1-ucLV.js +0 -16
- package/dist/assets/ko-HthbT_Ve.js +0 -16
- package/dist/assets/main-BJklC7Cl.js +0 -896
- package/dist/assets/markdownCore-BzQuETm0.js +0 -5
- package/dist/assets/patchFileDiff-DGw2KryM.js +0 -13
- package/dist/assets/pl-C8eYfjL1.js +0 -16
- package/dist/assets/pt-BR-cYOrZdxS.js +0 -16
- package/dist/assets/renderMobileApp-CMxjwisj.js +0 -25
- package/dist/assets/runtimeEndpointReset-C45jrFq4.js +0 -27
- package/dist/assets/scheduledTasksApi-CkK1F9s2.js +0 -1
- package/dist/assets/tr-B4IQ5t-T.js +0 -7
- package/dist/assets/uk-DCoXG6ve.js +0 -16
- package/dist/assets/vendor-opencode-client-_BAHQo4R.js +0 -12
- package/dist/assets/vendor-zod-Gea9uBlY.js +0 -39
- package/dist/assets/zh-CN-BXBoxsFk.js +0 -16
- package/dist/assets/zh-TW-C6oelpnL.js +0 -16
|
@@ -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,
|
|
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,ea as xt,B,h as J,ay as rs,ae as kt,af as bt,ag as vt,aA as ns,aj as as,ak as is,K as ve,al as ls,_ as cs,J as us,as as it,at as lt,av as ct,aw as ut,cb as dt,ax as he,bi as pt,o as ds}from"./useAppFontEffects-DDjuwVqi.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-Cqn0C0az.js";import{h as wt,v as bs,u as me,e6 as vs,e5 as ws}from"./index-Di6zUe5h.js";import{u as L,W as ys}from"./main-CI9DtHJv.js";import{P as js}from"./PierreDiffViewer-BBE7tTY2.js";import{k as Ss,j as Ns}from"./runtimeEndpointReset-D0PcCb3K.js";import"./vendor-scheduler-7OC5HNn7.js";import"./vendor-zod-BSoePkpP.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-tanstack-react-virtual-ClYN8CzB.js";import"./vendor-tanstack-virtual-core-BewVQryB.js";import"./vendor-framer-motion-Bq3iTZ6r.js";import"./vendor-motion-dom-DcCgeG69.js";import"./vendor-motion-utils-BGh8QBgx.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-oKF0MAwd.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"./PluginPane-DQ0k41Q-.js";import"./VirtualizedFileDiff-ClDezf2d.js";import"./web-components-Bc1WPd4i.js";import"./computeVirtualFileMetrics-kM_zJNMt.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-DOoIsGqs.js";import"./vendor-diff-C3JhlQdm.js";import"./vendor-opencode-client-DSZl7jSi.js";import"./vendor-katex-CHD9BdDO.js";import"./useRootScrollLock-nDcRrgJ1.js";import"./scheduledTasksApi-Dahv3ws0.js";import"./vendor-cron-parser-CjvYVigk.js";import"./vendor-luxon-BZ0puJYg.js";import"./Virtualizer-D_a8gKmg.js";import"./useInlineCommentController-Clg8EO3A.js";import"./appThemeRegistry-CiuyzfSW.js";import"./textMateThemeFromAppTheme-C-kGcOpD.js";import"./GuestAttachDialog-D7TJG1rt.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,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 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,Q=Math.max(ne,(h.current?.clientWidth??0)*Le);y(!0);const at=ss=>{const os=Math.min(Q,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 Q=Math.max(ne,(h.current?.clientWidth??0)*Le);b(Math.min(Q,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),Z=L(r=>r.requestSource);u.useEffect(()=>{!ve||!V||(Z(i,V),z(null))},[ve,i,Z,V]),u.useEffect(()=>{!xe||!_||(Z(i,_),z(null))},[_,xe,i,Z]),u.useEffect(()=>{!fe||!U||(Z(i,{kind:"commit",hash:U}),z(null))},[fe,i,Z,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(Q=>Q.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(Q=>typeof Q=="string"))}catch{}})(),()=>{r=!0}},[de]);const Jt=u.useCallback((r,N)=>Xe.get(`${r}/${N}`)?.structured_output!==!1,[Xe]),Ze=d.status==="generating",Qe=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&&!!Qe&&!!ke&&Qe!==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,Zt=d.error?.requiredChars??d.readiness?.requiredChars,Qt=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),Z(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"})})]}),Ze?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:Ze,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:Zt,availableChars:Qt,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{xn 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: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,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: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(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: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:()=>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=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 w;t[12]!==i?(w=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]=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(_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 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 _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,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<Js,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,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=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,Q=fe||P?.kind==="commit",F=ms(i||null,E,t&&Q,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]),we=O?.directory===i&&O.kind==="pr"&&!P,K=we||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:Q&&U?{kind:"commit",hash:U}:P?.kind==="branch"?_??P:P??{kind:"working-tree",scope:W},[_,Q,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||Q&&!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),Y=L(r=>r.requestSource);u.useEffect(()=>{!we||!V||(Y(i,V),z(null))},[we,i,Y,V]),u.useEffect(()=>{!xe||!_||(Y(i,_),z(null))},[_,xe,i,Y]),u.useEffect(()=>{!fe||!U||(Y(i,{kind:"commit",hash:U}),z(null))},[fe,i,Y,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":Q?"commit":ye?"branch":C.kind==="working-tree"?C.scope:C.kind,qt=K?e("session.githubIntegration.tabs.pullRequests"):Q?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("/"),Qe=Vt.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(Z=>typeof Z=="string"))}catch{}})(),()=>{r=!0}},[de]);const Jt=u.useCallback((r,N)=>Xe.get(`${r}/${N}`)?.structured_output!==!1,[Xe]),Ye=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,Qt=d.error?.model??d.readiness?.model,Yt=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=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: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),Y(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])),Q&&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(vt,{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:Qe,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"})})]}),Ye?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:Qe})}),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:Ye,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:Qt,requiredChars:Yt,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",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};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as d,a as g}from"./textMateThemeFromAppTheme-
|
|
1
|
+
import{r as d,a as g}from"./textMateThemeFromAppTheme-C-kGcOpD.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-DDjuwVqi.js";import"./vendor-react-BUCujlKS.js";import"./vendor-scheduler-7OC5HNn7.js";import"./index-Di6zUe5h.js";import"./vendor-zod-BSoePkpP.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-opencode-client-DSZl7jSi.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-tanstack-react-virtual-ClYN8CzB.js";import"./vendor-tanstack-virtual-core-BewVQryB.js";import"./vendor-framer-motion-Bq3iTZ6r.js";import"./vendor-motion-dom-DcCgeG69.js";import"./vendor-motion-utils-BGh8QBgx.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-oKF0MAwd.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
|
+
const u=14,d=n=>n.replace(/\\/g,"/").replace(/^\/+/,"").trim(),f=(n,s)=>({id:`dir:${n}`,path:n,name:s,children:new Map,directFiles:[],files:[]}),m=n=>{const s=f("","");for(const t of n){const o=d(t.path);if(!o)continue;const i=o.split("/").filter(Boolean).slice(0,-1);let c=s;if(c.files.push(t),i.length>0){let l="";for(const e of i){l=l?`${l}/${e}`:e;const r=c.children.get(e);if(r){r.files.push(t),c=r;continue}const a=f(l,e);a.files.push(t),c.children.set(e,a),c=a}}c.directFiles.push(t)}return s},p=n=>{let s=n,t=n.name;for(;s.directFiles.length===0&&s.children.size===1;){const[o]=s.children.values();s=o,t=`${t}/${o.name}`}return{node:s,label:t}},g=(n,s)=>{const t=[],o=(h,i)=>{const c=Array.from(h.children.values()).sort((e,r)=>e.path.localeCompare(r.path));for(const e of c){const{node:r,label:a}=p(e);t.push({key:r.id,kind:"directory",depth:i,label:a,directory:r}),s.has(r.path)&&o(r,i+1)}const l=[...h.directFiles].sort((e,r)=>e.path.localeCompare(r.path));for(const e of l)t.push({key:`file:${d(e.path)}`,kind:"file",depth:i,file:e})};return o(n,0),t};export{u as T,m as b,p as c,g as f};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{R as w,f as me,j as s}from"./vendor-react-BUCujlKS.js";import{u as Te}from"./vendor-tanstack-react-virtual-ClYN8CzB.js";import{f as te,aA as Me,ae as Ne,af as Ce,I,ag as ke,h as ee,B as Y,a9 as Pe,ka as Re,c2 as be,c3 as ye,c4 as we,c5 as ve,c6 as je,c7 as Se,bj as He,cq as Fe,t as oe}from"./useAppFontEffects-DDjuwVqi.js";import{b as $e,c as Le,f as Oe,T as ue}from"./changesTree-CePHbFcj.js";import{u as Ae}from"./index-Di6zUe5h.js";const De={"?":{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"}},Ge=De.M;function Ke(x){const e=x.index?.trim(),t=x.working_dir?.trim();return e&&e!=="?"?e.charAt(0):t?t.charAt(0):e?.charAt(0)||t?.charAt(0)||"M"}function Be(x){const e=Ke(x);return De[e]??Ge}const _e=w.memo(function(e){const t=me.c(62),{file:o,actionLabel:y,actionSymbol:v,onAction:b,onViewDiff:d,onRevert:r,isReverting:f,stats:D,rowPaddingClassName:h,indentPx:p,actionAtStart:V,nameOnly:C,showRevert:k}=e,l=p===void 0?0:p,j=V===void 0?!1:V,c=C===void 0?!1:C,u=k===void 0?!0:k;let T;t[0]!==o?(T=Be(o),t[0]=o,t[1]=T):T=t[1];const M=T,{t:R}=te(),S=M.description,z=D?.insertions??0,E=D?.deletions??0;let P;t[2]!==b||t[3]!==d?(P=B=>{B.key===" "?(B.preventDefault(),b()):B.key==="Enter"&&(B.preventDefault(),d())},t[2]=b,t[3]=d,t[4]=P):P=t[4];const g=P;let F;t[5]!==b?(F=B=>{B.preventDefault(),B.stopPropagation(),b()},t[5]=b,t[6]=F):F=t[6];const W=F;let L;t[7]!==r?(L=B=>{B.preventDefault(),B.stopPropagation(),r()},t[7]=r,t[8]=L):L=t[8];const H=L;let _;t[9]!==y||t[10]!==v||t[11]!==W?(_=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":y,title:y,children:v}),t[9]=y,t[10]=v,t[11]=W,t[12]=_):_=t[12];const O=_,Z=`group flex items-center gap-2 py-1.5 cursor-pointer ${h??"px-3"}`;let K;t[13]!==l?(K=l>0?{paddingLeft:`${l}px`}:void 0,t[13]=l,t[14]=K):K=t[14];const X=j?O:null;let G;t[15]!==M.color?(G={color:M.color},t[15]=M.color,t[16]=G):G=t[16];let U;t[17]!==M.code||t[18]!==S||t[19]!==G?(U=s.jsx("span",{className:"typography-micro font-semibold w-4 text-center uppercase",style:G,title:S,"aria-label":S,children:M.code}),t[17]=M.code,t[18]=S,t[19]=G,t[20]=U):U=t[20];let q;t[21]!==o.path?(q=s.jsx(Me,{filePath:o.path,className:"h-3.5 w-3.5 shrink-0"}),t[21]=o.path,t[22]=q):q=t[22];let $;if(t[23]!==o.path||t[24]!==c){e:{const B=o.path.lastIndexOf("/");if(B===-1||c){let le;t[26]===Symbol.for("react.memo_cache_sentinel")?(le={direction:"rtl",textAlign:"left",unicodeBidi:"plaintext"},t[26]=le):le=t[26];const Ie=o.path,fe=o.path.slice(B+1);let re;t[27]!==o.path||t[28]!==fe?(re=s.jsx("span",{className:"flex-1 min-w-0 truncate typography-ui-label text-foreground",style:le,title:Ie,children:fe}),t[27]=o.path,t[28]=fe,t[29]=re):re=t[29],$=re;break e}const ze=o.path.slice(0,B),Ee=o.path.slice(B);let ie;t[30]===Symbol.for("react.memo_cache_sentinel")?(ie={direction:"rtl",textAlign:"left",unicodeBidi:"plaintext"},t[30]=ie):ie=t[30];let ne;t[31]===Symbol.for("react.memo_cache_sentinel")?(ne=s.jsx("span",{className:"text-muted-foreground",children:"/"}),t[31]=ne):ne=t[31];const he=s.jsx("span",{className:"text-foreground",children:Ee.slice(1)});let ae;t[32]!==he?(ae=s.jsxs("span",{className:"flex-shrink-0 typography-ui-label",children:[ne,he]}),t[32]=he,t[33]=ae):ae=t[33],$=s.jsxs("span",{className:"flex-1 min-w-0 flex items-baseline overflow-hidden",title:o.path,children:[s.jsx("span",{className:"min-w-0 truncate typography-ui-label text-muted-foreground",style:ie,children:ze}),ae]})}t[23]=o.path,t[24]=c,t[25]=$}else $=t[25];let i;t[34]===Symbol.for("react.memo_cache_sentinel")?(i={color:"var(--status-success)"},t[34]=i):i=t[34];let n;t[35]!==z?(n=s.jsxs("span",{style:i,children:["+",z]}),t[35]=z,t[36]=n):n=t[36];let a,m;t[37]===Symbol.for("react.memo_cache_sentinel")?(a=s.jsx("span",{className:"text-muted-foreground mx-0.5",children:"/"}),m={color:"var(--status-error)"},t[37]=a,t[38]=m):(a=t[37],m=t[38]);let A;t[39]!==E?(A=s.jsxs("span",{style:m,children:["-",E]}),t[39]=E,t[40]=A):A=t[40];let N;t[41]!==n||t[42]!==A?(N=s.jsxs("span",{className:"shrink-0 typography-micro",children:[n,a,A]}),t[41]=n,t[42]=A,t[43]=N):N=t[43];let J;t[44]!==o.path||t[45]!==H||t[46]!==f||t[47]!==u||t[48]!==R?(J=u?s.jsxs(Ne,{children:[s.jsx(Ce,{asChild:!0,children:s.jsx("button",{type:"button",onClick:H,disabled:f,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":R("gitView.changes.revertFileAria",{path:o.path}),children:f?s.jsx(I,{name:"loader-4",className:"size-3.5 animate-spin"}):s.jsx(I,{name:"arrow-go-back",className:"size-3.5"})})}),s.jsx(ke,{sideOffset:8,children:R("gitView.changes.revertFileTooltip")})]}):null,t[44]=o.path,t[45]=H,t[46]=f,t[47]=u,t[48]=R,t[49]=J):J=t[49];const Q=j?null:O;let se;return t[50]!==g||t[51]!==d||t[52]!==Z||t[53]!==K||t[54]!==X||t[55]!==U||t[56]!==q||t[57]!==$||t[58]!==N||t[59]!==J||t[60]!==Q?(se=s.jsxs("div",{className:Z,role:"button",tabIndex:0,onClick:d,onKeyDown:g,style:K,children:[X,U,q,$,N,J,Q]}),t[50]=g,t[51]=d,t[52]=Z,t[53]=K,t[54]=X,t[55]=U,t[56]=q,t[57]=$,t[58]=N,t[59]=J,t[60]=Q,t[61]=se):se=t[61],se}),Ue=1e3,Ve=34,pe=30,ce="pl-0 pr-2",ge=(x,e)=>`${x} ${e}`,st=({groups:x,diffStats:e,revertingPaths:t,isRevertingAll:o=!1,headerBackgroundClassName:y="bg-sidebar",onVisiblePathsChange:v,onRevertAll:b,onRevertDirectory:d})=>{const{t:r}=te(),f=w.useRef(null),h=Ae(i=>i.gitChangesViewMode)==="tree",p=w.useMemo(()=>x.filter(i=>i.entries.length>0),[x]),[V,C]=w.useState(new Set),[k,l]=w.useState(new Set),[j,c]=w.useState(!1),[u,T]=w.useState(null),M=w.useMemo(()=>p.map(i=>$e(i.entries)),[p]),R=w.useMemo(()=>{const i=[];return p.forEach((n,a)=>{Array.from(M[a]?.children.values()??[]).forEach(m=>{i.push(ge(n.id,Le(m).node.path))})}),i},[M,p]);w.useEffect(()=>{h&&l(i=>{const n=new Set,a=new Set(R);return i.forEach(m=>{(m.slice(m.indexOf(" ")+1).includes("/")||a.has(m))&&n.add(m)}),R.forEach(m=>n.add(m)),n})},[h,R]);const S=w.useMemo(()=>{const i=[];return p.forEach((n,a)=>{if(i.push({type:"header",key:`header:${n.id}`,groupIndex:a}),!V.has(n.id)){if(h){const m=new Set;k.forEach(N=>{N.startsWith(`${n.id} `)&&m.add(N.slice(n.id.length+1))}),Oe(M[a],m).forEach(N=>{N.kind==="file"?i.push({type:"file",key:`${n.id}:${N.key}`,groupIndex:a,file:N.file,depth:N.depth}):i.push({type:"directory",key:`${n.id}:${N.key}`,groupIndex:a,directory:N.directory,label:N.label,depth:N.depth})});return}n.entries.forEach(m=>{i.push({type:"file",key:`${n.id}:file:${m.path}`,groupIndex:a,file:m,depth:0})})}}),b&&p.length>0&&i.push({type:"revert-all",key:"revert-all"}),i},[V,k,h,b,M,p]),z=S.length,E=z>=Ue,P=Te({count:z,enabled:E,getScrollElement:()=>f.current,estimateSize:()=>Ve,overscan:12,getItemKey:i=>S[i]?.key??i}),g=P.getVirtualItems(),F=w.useMemo(()=>{if(!E)return 0;const i=f.current?.scrollTop??0;return g.find(a=>a.end>i)?.index??0},[E,g,f]);w.useEffect(()=>{if(!v)return;const i=n=>n&&n.type==="file"?n.file.path:null;if(z===0){v([]);return}if(!E){const n=[];for(const a of S)if(a.type==="file"&&(n.push(a.file.path),n.length>=pe))break;v(n);return}v(S.slice(F,F+Math.ceil((f.current?.clientHeight??0)/Ve)+pe).map(n=>i(n)).filter(n=>!!n).slice(0,pe))},[v,z,S,E,F]);const W=w.useCallback(i=>{C(n=>{const a=new Set(n);return a.has(i)?a.delete(i):a.add(i),a})},[]),L=w.useCallback((i,n)=>{l(a=>{const m=new Set(a),A=ge(i,n);return m.has(A)?m.delete(A):m.add(A),m})},[]),H=w.useMemo(()=>{const i=new Set;return p.forEach(n=>n.entries.forEach(a=>i.add(a.path))),Array.from(i)},[p]),_=H.length,O=u?o||u.paths.some(i=>t.has(i)):!1,Z=w.useCallback(async()=>{!b||o||H.length===0||(await b(H),c(!1))},[H,o,b]),K=w.useCallback(async()=>{!d||!u||O||(await d(u.paths),T(null))},[O,d,u]),X=w.useCallback((i,n)=>{const a=V.has(i.id),m=i.entries.length;return s.jsxs("div",{className:ee("sticky top-0 z-10 flex items-center gap-2 py-2",y,ce,!n&&"mt-1 border-t border-border/40"),children:[s.jsx("button",{type:"button",onClick:()=>i.onActionAll(i.entries.map(A=>A.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":!a,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(I,{name:"arrow-down-s",className:ee("size-3.5 shrink-0 text-muted-foreground transition-transform",a&&"-rotate-90")})]})]})},[V,y,W]),G=w.useCallback((i,n,a,m)=>{const A=k.has(ge(i.id,n.path)),N=n.files.map(Q=>Q.path),J=o||N.some(Q=>t.has(Q));return s.jsxs("div",{className:ee("group flex items-center gap-2 py-1.5 text-muted-foreground hover:text-foreground",ce),style:{paddingLeft:`${m*ue}px`},children:[s.jsxs("button",{type:"button",onClick:()=>L(i.id,n.path),"aria-expanded":A,className:"flex min-w-0 flex-1 items-center gap-1.5 rounded text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring","aria-label":A?r("gitView.changes.collapseDirectoryAria",{path:n.path}):r("gitView.changes.expandDirectoryAria",{path:n.path}),children:[s.jsx("span",{className:"flex w-4 shrink-0 items-center justify-center",children:s.jsx(I,{name:"arrow-right-s",className:ee("size-3.5 transition-transform",A&&"rotate-90")})}),s.jsx("span",{className:"min-w-0 flex-1 truncate typography-ui-label",title:n.path,children:a}),s.jsx("span",{className:"ml-auto shrink-0 typography-micro text-muted-foreground/70",children:n.files.length})]}),s.jsxs("span",{className:ee("flex shrink-0 items-center gap-2 transition-opacity",!J&&"md:opacity-0 md:group-hover:opacity-100 md:group-focus-within:opacity-100"),children:[i.showRevertActions!==!1&&d?s.jsx("button",{type:"button",onClick:()=>T({path:n.path,paths:N,count:N.length}),disabled:J,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":r("gitView.changes.revertDirectoryAria",{path:n.path}),title:r("gitView.changes.revertDirectoryTooltip"),children:J?s.jsx(I,{name:"loader-4",className:"size-3.5 animate-spin"}):s.jsx(I,{name:"arrow-go-back",className:"size-3.5"})}):null,s.jsx("button",{type:"button",onClick:()=>i.onActionAll(n.files.map(Q=>Q.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":r(i.actionSymbol==="+"?"gitView.changes.stageDirectoryAria":"gitView.changes.unstageDirectoryAria",{path:n.path}),title:r(i.actionSymbol==="+"?"gitView.changes.stageDirectoryAria":"gitView.changes.unstageDirectoryAria",{path:n.path}),children:i.actionSymbol})]})]})},[k,o,d,t,r,L]),U=w.useCallback((i,n)=>{if(i.type==="revert-all")return s.jsx("div",{className:ee("flex justify-end py-2",ce),children:s.jsxs(Y,{variant:"ghost",size:"sm",onClick:()=>c(!0),disabled:o,className:"gap-1.5 text-[var(--status-error)] hover:bg-[var(--status-error)]/10 hover:text-[var(--status-error)]",children:[s.jsx(I,{name:"arrow-go-back",className:"size-3.5"}),r("gitView.changes.revertAll")]})});const a=p[i.groupIndex];if(!a)return null;if(i.type==="header")return X(a,n);if(i.type==="directory")return G(a,i.directory,i.label,i.depth);const m=i.file;return s.jsx(_e,{file:m,actionLabel:a.getActionLabel(m.path),actionSymbol:a.actionSymbol,onAction:()=>a.onActionFile(m.path),stats:e?.[a.statsScope]?.[m.path],onViewDiff:()=>a.onViewDiff(m.path),onRevert:()=>a.onRevertFile(m.path),isReverting:t.has(m.path)||o,rowPaddingClassName:ce,indentPx:i.depth*ue,actionAtStart:!h,nameOnly:h,showRevert:a.showRevertActions!==!1})},[e,o,h,G,X,t,r,p]),q=i=>i.type!=="file"&&i.type!=="directory"?null:Array.from({length:i.depth},(n,a)=>s.jsx("span",{"aria-hidden":!0,className:"pointer-events-none absolute inset-y-0 w-px bg-border/50",style:{left:`${a*ue+8}px`}},a)),$=w.useCallback(i=>{if(h)return!1;const n=S[i],a=S[i-1];return!n||!a||n.type!=="file"&&n.type!=="directory"||a.type!=="file"&&a.type!=="directory"?!1:a.groupIndex===n.groupIndex},[h,S]);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(Pe,{ref:f,className:"overlay-scrollbar-target overlay-scrollbar-container min-h-0 w-full flex-1 overflow-x-hidden overflow-y-auto",children:E?s.jsx("div",{style:{height:P.getTotalSize(),position:"relative"},children:g.map(i=>{const n=S[i.index];return n?s.jsxs("div",{"data-index":i.index,ref:P.measureElement,style:{position:"absolute",top:0,left:0,width:"100%",transform:`translateY(${i.start}px)`},className:ee($(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:[q(n),U(n,i.index===0)]},n.key):null})}):s.jsx("div",{role:"list","aria-label":r("gitView.changes.changedFilesAria"),children:S.map((i,n)=>s.jsxs("div",{className:ee("relative",$(n)&&"before:pointer-events-none before:absolute before:left-0 before:right-2 before:top-0 before:border-t before:border-border/60"),children:[q(i),U(i,n===0)]},i.key))})}),s.jsx(Re,{containerRef:f,disableHorizontal:!0})]}),s.jsx(be,{open:j,onOpenChange:i=>{!o&&!i&&c(!1)},children:s.jsxs(ye,{className:"max-w-md",children:[s.jsxs(we,{children:[s.jsx(ve,{children:r("gitView.changes.revertAllDialogTitle")}),s.jsx(je,{children:_===1?r("gitView.changes.revertAllDescriptionSingle",{count:_}):r("gitView.changes.revertAllDescriptionPlural",{count:_})})]}),s.jsxs(Se,{children:[s.jsx(Y,{variant:"outline",size:"sm",onClick:()=>c(!1),disabled:o,children:r("gitView.common.cancel")}),s.jsx(Y,{variant:"destructive",size:"sm",onClick:()=>{Z()},disabled:o,children:r(o?"gitView.changes.reverting":"gitView.changes.revertAll")})]})]})}),s.jsx(be,{open:!!u,onOpenChange:i=>{!O&&!i&&T(null)},children:s.jsxs(ye,{className:"max-w-md",children:[s.jsxs(we,{children:[s.jsx(ve,{children:r("gitView.changes.revertDirectoryDialogTitle")}),s.jsx(je,{children:u?u.count===1?r("gitView.changes.revertDirectoryDescriptionSingle",{count:u.count,path:u.path}):r("gitView.changes.revertDirectoryDescriptionPlural",{count:u.count,path:u.path}):null})]}),s.jsxs(Se,{children:[s.jsx(Y,{variant:"outline",size:"sm",onClick:()=>T(null),disabled:O,children:r("gitView.common.cancel")}),s.jsx(Y,{variant:"destructive",size:"sm",onClick:()=>{K()},disabled:O||!u,children:r(O?"gitView.changes.reverting":"gitView.changes.revertDirectory")})]})]})})]})},xe=38,de=200,We=x=>{const e=me.c(23),{value:t,onChange:o,onSubmit:y,placeholder:v,disabled:b,hasTouchInput:d,isMobile:r}=x,f=b===void 0?!1:b,D=d===void 0?!1:d,h=r===void 0?!1:r,{t:p}=te(),V=w.useRef(null),C=Ae(Xe);let k;e[0]===Symbol.for("react.memo_cache_sentinel")?(k=()=>{const g=V.current;if(!g)return;const F=document.activeElement===g,W=()=>{g.style.height=`${xe}px`;const H=g.scrollHeight,_=Math.min(Math.max(H,xe),de);g.style.height=`${_}px`,g.style.overflowY=H>de?"auto":"hidden",H>de&&!F&&(g.scrollTop=g.scrollHeight)};W();const L=window.requestAnimationFrame(W);return()=>{window.cancelAnimationFrame(L)}},e[0]=k):k=e[0];let l;e[1]!==t?(l=[t],e[1]=t,e[2]=l):l=e[2],w.useLayoutEffect(k,l);let j;e[3]!==o?(j=g=>o(g.target.value),e[3]=o,e[4]=j):j=e[4];let c;e[5]!==y?(c=g=>{g.key==="Enter"&&(g.metaKey||g.ctrlKey)&&!g.shiftKey&&!g.altKey&&(g.preventDefault(),y?.())},e[5]=y,e[6]=c):c=e[6];let u;e[7]!==v||e[8]!==p?(u=v??p("gitView.commit.messagePlaceholder"),e[7]=v,e[8]=p,e[9]=u):u=e[9];const T=D?"on":"off",M=D?"sentences":"off",R=h||C,S=f&&"opacity-50";let z;e[10]!==S?(z=ee("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)]",S),e[10]=S,e[11]=z):z=e[11];let E;e[12]===Symbol.for("react.memo_cache_sentinel")?(E={minHeight:xe,maxHeight:de},e[12]=E):E=e[12];let P;return e[13]!==f||e[14]!==M||e[15]!==R||e[16]!==z||e[17]!==j||e[18]!==c||e[19]!==u||e[20]!==T||e[21]!==t?(P=s.jsx("textarea",{ref:V,value:t,onChange:j,onKeyDown:c,placeholder:u,rows:1,disabled:f,autoCorrect:T,autoCapitalize:M,spellCheck:R,className:z,style:E}),e[13]=f,e[14]=M,e[15]=R,e[16]=z,e[17]=j,e[18]=c,e[19]=u,e[20]=T,e[21]=t,e[22]=P):P=e[22],P};function Xe(x){return x.inputSpellcheckEnabled}const qe=x=>{const e=me.c(30),{highlights:t,onInsert:o}=x,{t:y}=te();if(t.length===0)return null;let v;e[0]!==t||e[1]!==o?(v=()=>{o(t)},e[0]=t,e[1]=o,e[2]=v):v=e[2];const b=v;let d;e[3]!==y?(d=y("gitView.commit.aiHighlights.title"),e[3]=y,e[4]=d):d=e[4];let r;e[5]!==d?(r=s.jsx("p",{className:"typography-micro text-muted-foreground",children:d}),e[5]=d,e[6]=r):r=e[6];let f;e[7]!==y?(f=y("gitView.commit.aiHighlights.insertAria"),e[7]=y,e[8]=f):f=e[8];let D;e[9]===Symbol.for("react.memo_cache_sentinel")?(D=s.jsx(I,{name:"arrow-down",className:"size-4"}),e[9]=D):D=e[9];let h;e[10]!==b||e[11]!==f?(h=s.jsx(Ce,{asChild:!0,children:s.jsx(Y,{variant:"ghost",size:"icon",className:"size-6",onClick:b,"aria-label":f,children:D})}),e[10]=b,e[11]=f,e[12]=h):h=e[12];let p;e[13]!==y?(p=y("gitView.commit.aiHighlights.insertTooltip"),e[13]=y,e[14]=p):p=e[14];let V;e[15]!==p?(V=s.jsx(ke,{sideOffset:8,children:p}),e[15]=p,e[16]=V):V=e[16];let C;e[17]!==h||e[18]!==V?(C=s.jsxs(Ne,{children:[h,V]}),e[17]=h,e[18]=V,e[19]=C):C=e[19];let k;e[20]!==r||e[21]!==C?(k=s.jsxs("div",{className:"flex items-center justify-between gap-2",children:[r,C]}),e[20]=r,e[21]=C,e[22]=k):k=e[22];let l;e[23]!==t?(l=t.map(Ye),e[23]=t,e[24]=l):l=e[24];let j;e[25]!==l?(j=s.jsx("ul",{className:"space-y-1",children:l}),e[25]=l,e[26]=j):j=e[26];let c;return e[27]!==k||e[28]!==j?(c=s.jsxs("div",{className:"space-y-2 rounded-xl border border-border/60 bg-transparent px-3 py-2",children:[k,j]}),e[27]=k,e[28]=j,e[29]=c):c=e[29],c};function Ye(x,e){return s.jsx("li",{className:"typography-meta text-foreground",children:x},`${x}-${e}`)}const it=x=>{const e=me.c(80),{stagedCount:t,commitMessage:o,onCommitMessageChange:y,generatedHighlights:v,onInsertHighlights:b,onGenerateMessage:d,isGeneratingMessage:r,onCommit:f,onCommitAndPush:D,commitAction:h,hasPendingIndexMutation:p,gitmojiEnabled:V,onOpenGitmojiPicker:C}=x,k=p===void 0?!1:p,{t:l}=te(),j=t>0;let c;e[0]!==h||e[1]!==o||e[2]!==k||e[3]!==j?(c=o.trim()&&j&&h===null&&!k,e[0]=h,e[1]=o,e[2]=k,e[3]=j,e[4]=c):c=e[4];const u=c,{isMobile:T,hasTouchInput:M}=He();let R;e[5]!==l?(R=l("gitView.commit.title"),e[5]=l,e[6]=R):R=e[6];let S;e[7]!==R?(S=s.jsx("h3",{className:"typography-ui-header font-semibold text-foreground",children:R}),e[7]=R,e[8]=S):S=e[8];let z;e[9]!==j||e[10]!==l?(z=j?null:s.jsx("span",{className:"min-w-0 truncate typography-meta text-muted-foreground",children:l("gitView.commit.stageFilesHint")}),e[9]=j,e[10]=l,e[11]=z):z=e[11];let E;e[12]!==S||e[13]!==z?(E=s.jsxs("div",{className:"flex w-full items-baseline gap-2 px-0 pt-2 pb-1",children:[S,z]}),e[12]=S,e[13]=z,e[14]=E):E=e[14];let P;e[15]!==v||e[16]!==b?(P=s.jsx(qe,{highlights:v,onInsert:b}),e[15]=v,e[16]=b,e[17]=P):P=e[17];let g;e[18]!==u||e[19]!==r||e[20]!==f?(g=()=>{u&&!r&&f()},e[18]=u,e[19]=r,e[20]=f,e[21]=g):g=e[21];let F;e[22]!==l?(F=l("gitView.commit.messagePlaceholder"),e[22]=l,e[23]=F):F=e[23];const W=h!==null;let L;e[24]!==o||e[25]!==M||e[26]!==T||e[27]!==y||e[28]!==W||e[29]!==g||e[30]!==F?(L=s.jsx(We,{value:o,onChange:y,onSubmit:g,placeholder:F,disabled:W,hasTouchInput:M,isMobile:T}),e[24]=o,e[25]=M,e[26]=T,e[27]=y,e[28]=W,e[29]=g,e[30]=F,e[31]=L):L=e[31];let H;e[32]!==V||e[33]!==C||e[34]!==l?(H=V&&s.jsxs(Y,{variant:"outline",size:"sm",onClick:C,className:"w-fit",type:"button",children:[s.jsx(I,{name:"emotion-happy",className:"size-4"}),l("gitView.commit.addGitmoji")]}),e[32]=V,e[33]=C,e[34]=l,e[35]=H):H=e[35];const _=r||h!==null||k||t===0;let O;e[36]!==l?(O=l("gitView.commit.generateAria"),e[36]=l,e[37]=O):O=e[37];let Z;e[38]!==r?(Z=r?s.jsx(I,{name:"loader-4",className:"size-4 animate-spin"}):s.jsx(I,{name:"ai-generate-2",className:"size-4 text-primary"}),e[38]=r,e[39]=Z):Z=e[39];let K;e[40]!==l?(K=l("gitView.commit.generate"),e[40]=l,e[41]=K):K=e[41];let X;e[42]!==K?(X=s.jsx("span",{className:"commit-actions__label",children:K}),e[42]=K,e[43]=X):X=e[43];let G;e[44]!==d||e[45]!==_||e[46]!==O||e[47]!==Z||e[48]!==X?(G=s.jsxs(Y,{variant:"outline",size:"sm",onClick:d,disabled:_,type:"button","aria-label":O,className:"commit-actions__btn",children:[Z,X]}),e[44]=d,e[45]=_,e[46]=O,e[47]=Z,e[48]=X,e[49]=G):G=e[49];let U;e[50]===Symbol.for("react.memo_cache_sentinel")?(U=s.jsx("div",{className:"flex-1"}),e[50]=U):U=e[50];const q=!u||r;let $;e[51]!==l?($=l("gitView.commit.commitAria"),e[51]=l,e[52]=$):$=e[52];let i;e[53]!==h||e[54]!==l?(i=h==="commit"?s.jsxs(s.Fragment,{children:[s.jsx(I,{name:"loader-4",className:"size-4 animate-spin"}),s.jsx("span",{className:"commit-actions__label",children:l("gitView.commit.committing")})]}):s.jsxs(s.Fragment,{children:[s.jsx(I,{name:"git-commit",className:"size-4"}),s.jsx("span",{className:"commit-actions__label",children:l("gitView.commit.commit")})]}),e[53]=h,e[54]=l,e[55]=i):i=e[55];let n;e[56]!==f||e[57]!==q||e[58]!==$||e[59]!==i?(n=s.jsx(Y,{size:"sm",variant:"outline",onClick:f,disabled:q,className:"commit-actions__btn whitespace-nowrap","aria-label":$,children:i}),e[56]=f,e[57]=q,e[58]=$,e[59]=i,e[60]=n):n=e[60];let a;e[61]!==u||e[62]!==h||e[63]!==r||e[64]!==T||e[65]!==D||e[66]!==l?(a=T?s.jsxs(Ne,{children:[s.jsx(Ce,{asChild:!0,children:s.jsx(Y,{variant:"default",size:"sm",onClick:()=>D(),disabled:!u||r,className:"h-7 w-7 p-0","aria-label":l("gitView.commit.pushAria"),children:h==="commitAndPush"?s.jsx(I,{name:"loader-4",className:"size-4 animate-spin"}):s.jsx(I,{name:"arrow-up",className:"size-3.5"})})}),s.jsx(ke,{side:"top",children:s.jsx("p",{children:l("gitView.commit.push")})})]}):s.jsx(Y,{size:"sm",variant:"default",onClick:()=>D(),disabled:!u||r,className:"commit-actions__btn","aria-label":l("gitView.commit.pushAria"),children:h==="commitAndPush"?s.jsxs(s.Fragment,{children:[s.jsx(I,{name:"loader-4",className:"size-4 animate-spin"}),s.jsx("span",{className:"commit-actions__label commit-actions__label--push",children:l("gitView.commit.pushing")})]}):s.jsxs(s.Fragment,{children:[s.jsx(I,{name:"arrow-up",className:"size-3.5"}),s.jsx("span",{className:"commit-actions__label commit-actions__label--push",children:l("gitView.commit.push")})]})}),e[61]=u,e[62]=h,e[63]=r,e[64]=T,e[65]=D,e[66]=l,e[67]=a):a=e[67];let m;e[68]!==G||e[69]!==n||e[70]!==a?(m=s.jsxs("div",{className:"@container/commit-actions flex items-center gap-2 min-w-0",children:[G,U,n,a]}),e[68]=G,e[69]=n,e[70]=a,e[71]=m):m=e[71];let A;e[72]!==L||e[73]!==H||e[74]!==m||e[75]!==P?(A=s.jsxs("div",{className:"flex flex-col gap-3 px-0 pt-1 pb-3",children:[P,L,H,m]}),e[72]=L,e[73]=H,e[74]=m,e[75]=P,e[76]=A):A=e[76];let N;return e[77]!==A||e[78]!==E?(N=s.jsxs("section",{className:"border-0 bg-transparent rounded-none",children:[E,A]}),e[77]=A,e[78]=E,e[79]=N):N=e[79],N},nt=({open:x,onOpenChange:e,targetBranch:t,changedFileCount:o,onCommitAndSwitch:y,onGenerateMessage:v,onRevertAndSwitch:b})=>{const{t:d}=te(),[r,f]=w.useState(""),[D,h]=w.useState(null),[p,V]=w.useState(!1),C=D!==null;w.useEffect(()=>{x||(f(""),V(!1))},[x]);const k=async()=>{h("generate");try{const c=await v();c&&f(c)}catch(c){oe.error(c instanceof Error?c.message:d("gitView.dirtySwitch.actionFailed"))}finally{h(null)}},l=async()=>{h("commit");try{let c=r.trim();if(!c){if(c=(await v()).trim(),!c){oe.error(d("gitView.toast.enterCommitMessage"));return}f(c)}await y(c,p)}catch(c){oe.error(c instanceof Error?c.message:d("gitView.dirtySwitch.actionFailed"))}finally{h(null)}},j=async()=>{h("revert");try{await b()}catch(c){oe.error(c instanceof Error?c.message:d("gitView.dirtySwitch.actionFailed"))}finally{h(null)}};return s.jsx(be,{open:x,onOpenChange:c=>{C||e(c)},children:s.jsx(ye,{className:"max-w-md w-[calc(100vw-2rem)]",children:s.jsxs("div",{className:"flex flex-col gap-4",children:[s.jsxs(we,{children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(I,{name:"alert",className:"size-5 shrink-0 text-[var(--status-warning)]"}),s.jsx(ve,{children:d("gitView.dirtySwitch.title")})]}),s.jsx(je,{children:o===1?d("gitView.dirtySwitch.descriptionSingle",{branch:t}):d("gitView.dirtySwitch.descriptionPlural",{branch:t,count:o})})]}),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:r,onChange:c=>f(c.target.value),placeholder:d("gitView.commit.messagePlaceholder"),disabled:C,onKeyDown:c=>{c.key==="Enter"&&!C&&(c.preventDefault(),l())},className:"min-w-0 flex-1 bg-transparent typography-meta text-foreground outline-none placeholder:text-muted-foreground"}),s.jsx("button",{type:"button",onClick:()=>{k()},disabled:C,"aria-label":d("gitView.commit.generate"),title:d("gitView.commit.generate"),className:"shrink-0 text-muted-foreground hover:text-foreground disabled:opacity-50",children:D==="generate"?s.jsx(I,{name:"loader-4",className:"size-4 animate-spin"}):s.jsx(I,{name:"ai-generate-2",className:"size-4 text-primary"})})]}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(Fe,{checked:p,onChange:V,disabled:C,ariaLabel:d("gitView.dirtySwitch.pushAfterCommit")}),s.jsx("span",{className:"typography-ui-label text-foreground cursor-pointer select-none",onClick:()=>!C&&V(!p),children:d("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:C,className:"gap-2",children:[D==="revert"?s.jsx(I,{name:"loader-4",className:"size-4 animate-spin"}):null,d("gitView.dirtySwitch.revertAndSwitch")]}),s.jsxs(Y,{variant:"default",size:"sm",onClick:()=>{l()},disabled:C,className:"gap-2",children:[D==="commit"?s.jsx(I,{name:"loader-4",className:"size-4 animate-spin"}):null,d("gitView.dirtySwitch.commitAndSwitch")]})]})]})})})},at=async({git:x,directory:e,remote:t,dirtyWorktreeError:o,onPulled:y,onPushed:v})=>{await x.gitFetch(e,{remote:t.name});const b=await x.getGitStatus(e),d=`${t.name}/`,r=b.tracking?.startsWith(d)?b.tracking.slice(d.length):void 0;if((b.behind??0)>0){if((b.files?.length??0)>0)throw new Error(o);const D=await x.gitPull(e,{remote:t.name,branch:r,rebase:!0});y?.(D)}const f=await x.gitPush(e);return f.pushed.length>0&&v?.(f),f};export{st as C,nt as D,it as a,at as p};
|
package/dist/assets/{computeVirtualFileMetrics-_-20umCs.js → computeVirtualFileMetrics-kM_zJNMt.js}
RENAMED
|
@@ -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{gx as L,ki as G}from"./useAppFontEffects-Bzyszv2N.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
|
-
`)),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=
|
|
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{gA as L,kt as G}from"./useAppFontEffects-DDjuwVqi.js";import{t as A}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 H(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,V=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=V.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
|
+
`)),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=H(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=A({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};
|