@vantran-se/openchamber-web 1.22.1 → 1.22.2
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/README.md +2 -3
- package/bin/cli.js +4 -1
- package/bin/cli.test.js +92 -0
- package/bin/lib/cli-startup.js +49 -0
- package/bin/lib/commands-startup.js +41 -6
- package/dist/assets/{CodeMirrorCommentWidgets-C53Q7pbX.js → CodeMirrorCommentWidgets-CV1HNV5l.js} +1 -1
- package/dist/assets/{DiffView-Dh1ey2x9.js → DiffView-DkkSa30n.js} +3 -3
- package/dist/assets/DirtyBranchSwitchDialog-DW4WaXPc.js +1 -0
- package/dist/assets/FilesView-DDu8zDy5.js +17 -0
- package/dist/assets/GitView-1Ixo8z-M.js +6 -0
- package/dist/assets/{JsonTreeView-Bl0lp9Rs.js → JsonTreeView-DvCLL7dT.js} +1 -1
- package/dist/assets/LinearIssuesView-Bs1rZrF2.js +1 -0
- package/dist/assets/{MarkdownImageGallery-bA0PS-tn.js → MarkdownImageGallery-DyJUc6h9.js} +1 -1
- package/dist/assets/MarkdownRendererImpl-Bdm8vMkS.js +12 -0
- package/dist/assets/{OnboardingScreen-D3kYJIb6.js → OnboardingScreen-Dg66B6oB.js} +1 -1
- package/dist/assets/{PatchDiff-D6NXAfJk.js → PatchDiff-CAduNjfZ.js} +1 -1
- package/dist/assets/{PierreDiffViewer-Ct2A13NO.js → PierreDiffViewer-CTIb1GYD.js} +2 -2
- package/dist/assets/PlanView-trDaszfq.js +5 -0
- package/dist/assets/SettingsView-DStMfBmy.js +28 -0
- package/dist/assets/{SettingsWindow-BiWDBRvb.js → SettingsWindow-DQQFnrSZ.js} +1 -1
- package/dist/assets/{ToolOutputDialog-BQexMQIm.js → ToolOutputDialog-SjY2XZlA.js} +6 -6
- package/dist/assets/ToolPartDiffPreview-DJdzUQPE.js +8 -0
- package/dist/assets/{VirtualizedFileDiff-Dpz2ra8h.js → VirtualizedFileDiff-Iehm4iMH.js} +1 -1
- package/dist/assets/{WalkthroughView-AX-u2pFg.js → WalkthroughView-BALp2d9O.js} +2 -2
- package/dist/assets/{computeVirtualFileMetrics-DtyozJdt.js → computeVirtualFileMetrics-BKZA43vN.js} +2 -2
- package/dist/assets/{contextPanelEmbeddedChat-C9EcRSDF.js → contextPanelEmbeddedChat-D2PM_pEv.js} +1 -1
- package/dist/assets/{de-DqVn5vme.js → de-DlSNLAcy.js} +6 -5
- package/dist/assets/{es-hj43Z53i.js → es-D1GbowZ3.js} +6 -5
- package/dist/assets/{fr-BmkZt2mF.js → fr-BPOLXIAY.js} +6 -5
- package/dist/assets/{index-DmhujXbT.js → index-Ce0LR32V.js} +1 -1
- package/dist/assets/index-D42fPvt4.css +1 -0
- package/dist/assets/index-DlFbCkEy.js +39 -0
- package/dist/assets/{isDiffPlainText-XyulMHxx.js → isDiffPlainText-DaB2u_Kv.js} +1 -1
- package/dist/assets/{isFilePlainText-B19Ddps1.js → isFilePlainText-yJZa2IAC.js} +1 -1
- package/dist/assets/{ja-DioMIEGF.js → ja-Dm2-m9io.js} +7 -6
- package/dist/assets/{ko-BqPgaQJb.js → ko-CIXlzQ5-.js} +7 -6
- package/dist/assets/main-B7qTsd_w.js +930 -0
- package/dist/assets/{main-B2a_JfKZ.js → main-CyQrD9dG.js} +2 -2
- package/dist/assets/{markdownCore-CWRCqSH2.js → markdownCore-CeEwGgEK.js} +2 -2
- package/dist/assets/{miniChat-B3CSU_Ps.js → miniChat-7cPEx4sV.js} +2 -2
- package/dist/assets/{mobile-QNcFIVCW.js → mobile-QtzkPTM8.js} +2 -2
- package/dist/assets/{patchFileDiff-BpMQZnYu.js → patchFileDiff-No55fDiD.js} +1 -1
- package/dist/assets/pl-B2zmkOpw.js +16 -0
- package/dist/assets/{pt-BR-BqH8fuCH.js → pt-BR-C-JE5H6y.js} +6 -5
- package/dist/assets/{renderElectronMiniChatApp-D77bmLqo.js → renderElectronMiniChatApp-ePTkBJNS.js} +2 -2
- package/dist/assets/renderMobileApp-D9RjB9DX.js +25 -0
- package/dist/assets/runtimeEndpointReset-DfJIWwwo.js +17 -0
- package/dist/assets/{scheduledTasksApi-BSRCtP6T.js → scheduledTasksApi-DuhdyYEa.js} +1 -1
- package/dist/assets/{shikiHighlight-DE-OwqGw.js → shikiHighlight-EHEg58-n.js} +1 -1
- package/dist/assets/tr-MJmRIzEY.js +7 -0
- package/dist/assets/{uk-BkkfxbOs.js → uk-BmD7eM8k.js} +6 -5
- package/dist/assets/{useAppFontEffects-COAeIX-D.js → useAppFontEffects-CuJPKtI1.js} +151 -180
- package/dist/assets/useInlineCommentController-DD7_7OP_.js +2 -0
- package/dist/assets/{useRootScrollLock-C0N9mCwz.js → useRootScrollLock-DRGAe8PN.js} +1 -1
- package/dist/assets/{vendor-codemirror-language-data-BG3v1Ghq.js → vendor-codemirror-language-data-9ZzoH0o0.js} +2 -2
- package/dist/assets/vendor-zod-CK21ihK-.js +39 -0
- package/dist/assets/{web-components-BNMwa0qm.js → web-components-PttKBrhi.js} +1 -1
- package/dist/assets/{zh-CN-C6FMdVgv.js → zh-CN-JJHl4ehT.js} +6 -5
- package/dist/assets/{zh-TW-CdcMjDxv.js → zh-TW-DPc4DEEW.js} +6 -5
- package/dist/index.html +5 -5
- package/dist/mini-chat.html +4 -4
- package/dist/mobile.html +4 -4
- package/package.json +8 -4
- package/server/index.js +38 -5
- package/server/lib/agent-tool/runtime.js +2 -19
- package/server/lib/changelog/update-notes.js +82 -0
- package/server/lib/changelog/update-notes.test.js +59 -0
- package/server/lib/dev-tunnel/DOCUMENTATION.md +13 -4
- package/server/lib/dev-tunnel/runtime.js +4 -4
- package/server/lib/dev-tunnel/tunnel.test.js +20 -0
- package/server/lib/fs/DOCUMENTATION.md +2 -0
- package/server/lib/fs/routes.js +32 -21
- package/server/lib/fs/routes.test.js +77 -0
- package/server/lib/git/DOCUMENTATION.md +3 -1
- package/server/lib/git/routes.js +16 -0
- package/server/lib/git/service.js +107 -17
- package/server/lib/git/service.test.js +171 -0
- package/server/lib/mcp-reconnect/DOCUMENTATION.md +55 -0
- package/server/lib/mcp-reconnect/runtime.js +122 -0
- package/server/lib/mcp-reconnect/runtime.test.js +140 -0
- package/server/lib/message-queue/DOCUMENTATION.md +158 -0
- package/server/lib/message-queue/runtime.js +870 -0
- package/server/lib/message-queue/runtime.test.js +482 -0
- package/server/lib/openchamber-sessions/routes.js +102 -0
- package/server/lib/openchamber-sessions/routes.test.js +88 -0
- package/server/lib/opencode/DOCUMENTATION.md +13 -5
- package/server/lib/opencode/config-paths.test.js +116 -0
- package/server/lib/opencode/core-routes.js +1 -0
- package/server/lib/opencode/feature-routes-runtime.js +5 -0
- package/server/lib/opencode/input-history-scope.js +14 -0
- package/server/lib/opencode/managed-plugin-config.js +35 -0
- package/server/lib/opencode/openchamber-routes.test.js +2 -2
- package/server/lib/opencode/plugins.js +2 -2
- package/server/lib/opencode/providers.js +44 -2
- package/server/lib/opencode/providers.test.js +131 -4
- package/server/lib/opencode/routes.js +4 -4
- package/server/lib/opencode/server-startup-runtime.js +1 -1
- package/server/lib/opencode/settings-helpers.js +28 -0
- package/server/lib/opencode/settings-helpers.test.js +177 -0
- package/server/lib/opencode/settings-runtime.js +2 -2
- package/server/lib/opencode/settings-runtime.test.js +29 -0
- package/server/lib/opencode/shared.js +4 -1
- package/server/lib/opencode/shutdown-runtime.js +2 -0
- package/server/lib/opencode/skill-routes.js +2 -1
- package/server/lib/opencode/snippets.js +1 -2
- package/server/lib/package-manager.js +4 -29
- package/server/lib/package-manager.test.js +2 -2
- package/server/lib/quota/DOCUMENTATION.md +2 -1
- package/server/lib/quota/credentials/providers.js +4 -0
- package/server/lib/quota/credentials/store.js +1 -1
- package/server/lib/quota/credentials/store.test.js +4 -4
- package/server/lib/quota/providers/exe-dev.js +75 -0
- package/server/lib/quota/providers/exe-dev.test.js +47 -0
- package/server/lib/quota/providers/index.js +7 -0
- package/server/lib/quota/providers/opencode-go.js +1 -0
- package/server/lib/quota/providers/opencode-go.test.js +5 -1
- package/server/lib/quota/routes.js +2 -0
- package/server/lib/quota/utils/auth.js +1 -1
- package/server/lib/relay/DOCUMENTATION.md +1 -1
- package/server/lib/relay/host-client.test.js +9 -1
- package/server/lib/relay/tunnel-host.js +3 -1
- package/server/lib/relay/tunnel-host.test.js +9 -1
- package/server/lib/security/request-security.js +21 -6
- package/server/lib/security/request-security.test.js +42 -8
- package/server/lib/session-assist/runtime.js +1 -0
- package/server/lib/session-goal/DOCUMENTATION.md +20 -7
- package/server/lib/session-goal/create.js +3 -1
- package/server/lib/session-goal/runtime.js +77 -11
- package/server/lib/session-goal/runtime.test.js +426 -0
- package/server/lib/skills-catalog/DOCUMENTATION.md +1 -1
- package/server/lib/skills-catalog/install.js +3 -2
- package/server/lib/small-model/DOCUMENTATION.md +4 -0
- package/server/lib/small-model/call.js +8 -2
- package/server/lib/small-model/call.test.js +23 -0
- package/server/lib/small-model/index.js +2 -1
- package/server/lib/small-model/routes.js +2 -1
- package/server/lib/system-prompt/runtime.js +2 -21
- package/server/lib/terminal/DOCUMENTATION.md +11 -7
- package/server/lib/terminal/runtime.js +180 -26
- package/server/lib/terminal/runtime.test.js +553 -26
- package/server/lib/terminal/shells.js +17 -0
- package/server/lib/terminal/shells.test.js +32 -1
- package/server/lib/ui-auth/ui-auth.js +4 -1
- package/server/lib/ui-auth/ui-auth.test.js +16 -0
- package/server/lib/walkthrough/index.js +1 -0
- package/server/lib/walkthrough/routes.test.js +26 -5
- package/dist/assets/CommitSection-X-f2RgYr.js +0 -1
- package/dist/assets/FilesView-3ZYP72ki.js +0 -17
- package/dist/assets/GitView-CMuN7z2Z.js +0 -6
- package/dist/assets/LinearIssuesView-CQiUDU8b.js +0 -1
- package/dist/assets/MarkdownRendererImpl-BGQi2PLq.js +0 -12
- package/dist/assets/PlanView-6AUjzNQn.js +0 -5
- package/dist/assets/SettingsView-CHI8fFaK.js +0 -28
- package/dist/assets/ToolPartDiffPreview-DPAATNn6.js +0 -8
- package/dist/assets/index-L_ncV-6H.css +0 -1
- package/dist/assets/index-qES19dlJ.js +0 -7
- package/dist/assets/main-CYgSu6dx.js +0 -928
- package/dist/assets/pl-slULBF4R.js +0 -15
- package/dist/assets/renderMobileApp-BQ3Kdm-d.js +0 -25
- package/dist/assets/runtimeEndpointReset-CRGn1gVj.js +0 -16
- package/dist/assets/tr-CjEbw1Aw.js +0 -6
- package/dist/assets/useInlineCommentController-JsBboQwt.js +0 -2
- package/dist/assets/vendor-zod-BLfBSgBh.js +0 -39
|
@@ -1 +1 @@
|
|
|
1
|
-
import{f as y,R as b,j as o}from"./vendor-react-BUCujlKS.js";import{f as w,h as u}from"./useAppFontEffects-
|
|
1
|
+
import{f as y,R as b,j as o}from"./vendor-react-BUCujlKS.js";import{f as w,h as u}from"./useAppFontEffects-CuJPKtI1.js";import{S as j}from"./SettingsView-DStMfBmy.js";import{q as k,o as v,p as D,m as S,D as R}from"./vendor-base-ui-BeMD8X_w.js";import"./vendor-scheduler-7OC5HNn7.js";import"./index-DlFbCkEy.js";import"./vendor-vite-runtime-DD1OZmLC.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-zod-CK21ihK-.js";import"./vendor-opencode-sdk-BJ73u-bH.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./contextPanelEmbeddedChat-D2PM_pEv.js";import"./vendor-class-variance-authority-5VPnzWs2.js";import"./vendor-clsx-B-dksMZM.js";import"./vendor-dnd-kit-core-BZknOX2w.js";import"./vendor-dnd-kit-utilities-B_MdXhJC.js";import"./vendor-dnd-kit-accessibility-BHxJPORy.js";import"./vendor-dnd-kit-sortable-CsEagZ81.js";import"./vendor-framer-motion-livSKyyV.js";import"./vendor-motion-dom-D_o3BTI3.js";import"./vendor-motion-utils-BGh8QBgx.js";import"./vendor-tanstack-react-virtual-g05Cx3z9.js";import"./vendor-tanstack-virtual-core-Dubg10g5.js";import"./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-9ZzoH0o0.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-gg7YLRW7.js";import"./vendor-use-sync-external-store-D6wYuSt-.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";import"./runtimeEndpointReset-DfJIWwwo.js";import"./vendor-yaml-3778uTud.js";import"./shikiHighlight-EHEg58-n.js";import"./vendor-codemirror-search-BmS-GmcX.js";import"./vendor-replit-codemirror-vim-B2DJlAhT.js";import"./vendor-replit-codemirror-vim-core-FHzKdNUS.js";import"./appThemeRegistry-BK0dHKa6.js";import"./registerCustomTheme-BBXUCRnG.js";import"./themeResolver-BmJyTmjJ.js";import"./vendor-pierre-theming-C6Z4M5_u.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-qrcode-DTJ12-WC.js";import"./vendor-dijkstrajs-COg3n3zL.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";const Co=h=>{const t=y.c(19),{open:c,onOpenChange:i}=h,{t:f}=w(),r=b.useId(),x=_;let e;t[0]!==i?(e=g=>{!g&&x()||i(g)},t[0]=i,t[1]=e):e=t[1];let a;t[2]===Symbol.for("react.memo_cache_sentinel")?(a=o.jsx(k,{className:u("oc-glass-backdrop fixed inset-0 z-50 bg-black/25 dark:bg-black/40","transition-opacity duration-150 ease-out","data-[starting-style]:opacity-0 data-[ending-style]:opacity-0")}),t[2]=a):a=t[2];let l;t[3]===Symbol.for("react.memo_cache_sentinel")?(l=u("relative pointer-events-auto","w-[90vw] max-w-[1200px] h-[85vh] max-h-[900px]","rounded-xl border shadow-none overflow-hidden origin-center","bg-background","transition-all duration-150 ease-out","data-[starting-style]:opacity-0 data-[starting-style]:scale-[0.98]","data-[ending-style]:opacity-0 data-[ending-style]:scale-[0.98]","data-[nested-dialog-open]:brightness-[0.55] dark:data-[nested-dialog-open]:brightness-[0.4]"),t[3]=l):l=t[3];let p;t[4]!==f?(p=f("settings.window.description"),t[4]=f,t[5]=p):p=t[5];let m;t[6]!==r||t[7]!==p?(m=o.jsx(v,{id:r,className:"sr-only",children:p}),t[6]=r,t[7]=p,t[8]=m):m=t[8];let n;t[9]!==i?(n=o.jsx(j,{onClose:()=>i(!1),isWindowed:!0}),t[9]=i,t[10]=n):n=t[10];let s;t[11]!==r||t[12]!==m||t[13]!==n?(s=o.jsxs(D,{children:[a,o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center pointer-events-none",children:o.jsxs(S,{"aria-describedby":r,className:l,children:[m,n]})})]}),t[11]=r,t[12]=m,t[13]=n,t[14]=s):s=t[14];let d;return t[15]!==c||t[16]!==e||t[17]!==s?(d=o.jsx(R,{open:c,onOpenChange:e,children:s}),t[15]=c,t[16]=e,t[17]=s,t[18]=d):d=t[18],d};function _(){return typeof document>"u"?!1:!!document.querySelector('[data-slot="dropdown-menu-content"][data-open], [data-slot="select-content"][data-open]')}export{Co as SettingsWindow};
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import{R as N,f as ue,j as o,c as Ve}from"./vendor-react-BUCujlKS.js";import{
|
|
2
|
-
`),e[2]=t,e[3]=T):T=e[3];const
|
|
1
|
+
import{R as N,f as ue,j as o,c as Ve}from"./vendor-react-BUCujlKS.js";import{N as Ye,fA as Xe,hC as Qe,f as Me,h as pe,I as P,hD as et,cc as _e,ao as $e,hE as tt,hF as it,hG as ot,hH as rt,hI as nt,bZ as We,hJ as st,hK as at,ea as lt,eb as Le,hL as ct,bG as mt,bF as dt}from"./useAppFontEffects-CuJPKtI1.js";import{F as Ue,J as ut}from"./JsonTreeView-DvCLL7dT.js";import{P as ft}from"./PatchDiff-CAduNjfZ.js";import{cA as Ne,r as pt}from"./index-DlFbCkEy.js";import{ensurePierreThemeRegistered as Ee}from"./appThemeRegistry-BK0dHKa6.js";import{u as ht}from"./vendor-tanstack-react-virtual-g05Cx3z9.js";import"./vendor-scheduler-7OC5HNn7.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-vite-runtime-DD1OZmLC.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-base-ui-BeMD8X_w.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"./contextPanelEmbeddedChat-D2PM_pEv.js";import"./vendor-class-variance-authority-5VPnzWs2.js";import"./vendor-clsx-B-dksMZM.js";import"./vendor-dnd-kit-core-BZknOX2w.js";import"./vendor-dnd-kit-utilities-B_MdXhJC.js";import"./vendor-dnd-kit-accessibility-BHxJPORy.js";import"./vendor-dnd-kit-sortable-CsEagZ81.js";import"./vendor-framer-motion-livSKyyV.js";import"./vendor-motion-dom-D_o3BTI3.js";import"./vendor-motion-utils-BGh8QBgx.js";import"./vendor-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-9ZzoH0o0.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-gg7YLRW7.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";import"./vendor-zod-CK21ihK-.js";import"./web-components-PttKBrhi.js";import"./computeVirtualFileMetrics-BKZA43vN.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"./Virtualizer-CZlLSacm.js";import"./isFilePlainText-yJZa2IAC.js";import"./VirtualizedFileDiff-Iehm4iMH.js";import"./isDiffPlainText-DaB2u_Kv.js";import"./vendor-diff-C3JhlQdm.js";import"./vendor-opencode-sdk-BJ73u-bH.js";import"./registerCustomTheme-BBXUCRnG.js";import"./vendor-tanstack-virtual-core-Dubg10g5.js";const gt=80,Oe=20,qe=N.memo(i=>{const e=ue.c(26),{lines:t,language:a,maxHeight:c,showLineNumbers:r,lineStyles:l}=i,n=c===void 0?"60vh":c,s=r===void 0?!0:r,{currentTheme:f}=Ye();let d;e[0]!==f?(d=Xe(f),e[0]=f,e[1]=d):d=e[1];const y=d;let T;e[2]!==t?(T=t.map(xt).join(`
|
|
2
|
+
`),e[2]=t,e[3]=T):T=e[3];const b=Qe(T,a).lines;if(!(t.length>gt)){const v=y;let w;e[4]!==n||e[5]!==v?(w={...v,maxHeight:n,overflow:"auto"},e[4]=n,e[5]=v,e[6]=w):w=e[6];let x;if(e[7]!==b||e[8]!==l||e[9]!==t||e[10]!==s){let h;e[12]!==b||e[13]!==l||e[14]!==s?(h=(S,L)=>o.jsx(Pe,{line:S,html:b?.[L],showLineNumbers:s,style:l?.(S)},L),e[12]=b,e[13]=l,e[14]=s,e[15]=h):h=e[15],x=t.map(h),e[7]=b,e[8]=l,e[9]=t,e[10]=s,e[11]=x}else x=e[11];let u;return e[16]!==w||e[17]!==x?(u=o.jsx("div",{className:"typography-code font-mono w-full min-w-0",style:w,children:x}),e[16]=w,e[17]=x,e[18]=u):u=e[18],u}let k;return e[19]!==b||e[20]!==l||e[21]!==t||e[22]!==n||e[23]!==s||e[24]!==y?(k=o.jsx(Be,{lines:t,highlighted:b,syntaxVars:y,maxHeight:n,showLineNumbers:s,lineStyles:l}),e[19]=b,e[20]=l,e[21]=t,e[22]=n,e[23]=s,e[24]=y,e[25]=k):k=e[25],k});qe.displayName="VirtualizedCodeBlock";const Be=N.memo(({lines:i,highlighted:e,syntaxVars:t,maxHeight:a,showLineNumbers:c,lineStyles:r})=>{const l=N.useRef(null),n=`min(${i.length*Oe}px, ${a})`,s=ht({count:i.length,getScrollElement:()=>l.current,estimateSize:()=>Oe,overscan:20}),f=s.getVirtualItems();return o.jsx("div",{ref:l,className:"typography-code font-mono w-full min-w-0",style:{...t,height:n,maxHeight:a,overflow:"auto"},children:o.jsx("div",{style:{height:s.getTotalSize(),position:"relative"},children:f.map(d=>{const y=i[d.index];return y?o.jsx("div",{"data-index":d.index,ref:s.measureElement,style:{position:"absolute",top:0,left:0,width:"100%",transform:`translateY(${d.start}px)`},children:o.jsx(Pe,{line:y,html:e?.[d.index],showLineNumbers:c,style:r?.(y)})},d.index):null})})})});Be.displayName="VirtualizedRows";const Pe=N.memo(i=>{const e=ue.c(12),{line:t,html:a,showLineNumbers:c,style:r}=i;let l;e[0]!==t.isInfo||e[1]!==t.lineNumber||e[2]!==c?(l=c&&o.jsx("span",{className:"w-10 flex-shrink-0 text-right pr-3 select-none border-r mr-3 -my-0.5 py-0.5",style:{color:"var(--tools-edit-line-number)",borderColor:"var(--tools-border)"},children:!t.isInfo&&t.lineNumber!=null?t.lineNumber:""}),e[0]=t.isInfo,e[1]=t.lineNumber,e[2]=c,e[3]=l):l=e[3];let n;e[4]!==a||e[5]!==t.isInfo||e[6]!==t.text?(n=o.jsx("div",{className:"flex-1 min-w-0",children:t.isInfo?o.jsx("div",{className:"whitespace-pre-wrap break-words text-muted-foreground/70 italic",children:t.text}):a!==void 0?o.jsx("div",{className:"whitespace-pre",dangerouslySetInnerHTML:{__html:a}}):o.jsx("div",{className:"whitespace-pre",children:t.text})}),e[4]=a,e[5]=t.isInfo,e[6]=t.text,e[7]=n):n=e[7];let s;return e[8]!==r||e[9]!==l||e[10]!==n?(s=o.jsxs("div",{className:"typography-code font-mono flex w-full min-w-0",style:r,children:[l,n]}),e[8]=r,e[9]=l,e[10]=n,e[11]=s):s=e[11],s});Pe.displayName="VirtualizedCodeBlock.Row";function xt(i){return i.text}class Ce extends Error{key;params;constructor(e,t){super(e),this.name="MermaidLoadFailure",this.key=e,this.params=t}}const wt=(i,e)=>new Ce(i,e),bt=i=>i instanceof Ce,yt=i=>i+1,Ae=(i,e)=>i===e,vt=i=>{const e=i.indexOf(",");if(e<0)throw wt("chat.toolOutputDialog.mermaid.dataUrlMalformed");const t=i.slice(0,e).toLowerCase(),a=i.slice(e+1);return t.includes(";base64")?atob(a):decodeURIComponent(a)},jt=i=>Promise.resolve().then(()=>vt(i)),Ie=(i,e)=>new Ce(i,e),Nt=i=>{const e="h-3.5 w-3.5 flex-shrink-0",t=i.toLowerCase();return t==="reasoning"?o.jsx(P,{name:"brain-ai-3",className:e}):t==="image-preview"?o.jsx(P,{name:"file-image",className:e}):t==="mermaid-preview"?o.jsx(P,{name:"file-list-2",className:e}):t==="edit"||t==="multiedit"||t==="apply_patch"||t==="str_replace"||t==="str_replace_based_edit_tool"?o.jsx(P,{name:"pencil-ai",className:e}):t==="write"||t==="create"||t==="file_write"?o.jsx(P,{name:"file-pdf",className:e}):t==="read"||t==="view"||t==="file_read"||t==="cat"?o.jsx(P,{name:"file-pdf",className:e}):t==="bash"||t==="shell"||t==="cmd"||t==="terminal"?o.jsx(P,{name:"terminal-box",className:e}):t==="list"||t==="ls"||t==="dir"||t==="list_files"?o.jsx(P,{name:"folder-6",className:e}):t==="search"||t==="grep"||t==="find"||t==="ripgrep"?o.jsx(P,{name:"search",className:e}):t==="glob"?o.jsx(P,{name:"file-search",className:e}):t==="fetch"||t==="curl"||t==="wget"||t==="webfetch"?o.jsx(P,{name:"global",className:e}):t==="web-search"||t==="websearch"||t==="search_web"||t==="google"||t==="bing"||t==="duckduckgo"?o.jsx(P,{name:"search",className:e}):t==="todowrite"||t==="todoread"?o.jsx(P,{name:"list-check-3",className:e}):t==="plan_enter"?o.jsx(P,{name:"file-list-2",className:e}):t==="plan_exit"?o.jsx(P,{name:"task",className:e}):t.startsWith("git")?o.jsx(P,{name:"git-branch",className:e}):o.jsx(P,{name:"tools",className:e})},Fe=150,St=40,kt=120,Tt=3,Re={style:{background:"transparent",backgroundColor:"transparent",fontSize:"inherit"}},_t={download:!1,copy:!1,showPanZoomControls:!0},Rt=`
|
|
3
3
|
[data-diff-header],
|
|
4
4
|
[data-diff] {
|
|
5
5
|
[data-separator] {
|
|
6
6
|
height: 24px !important;
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
|
-
`,It={hunkLineCount:50,lineHeight:24,diffHeaderHeight:44,hunkSeparatorHeight:24,spacing:0},Dt=()=>{const i=ue.c(22),e=lt();let t;i[0]===Symbol.for("react.memo_cache_sentinel")?(t=Le(!1),i[0]=t):t=i[0];const a=t;let c;i[1]===Symbol.for("react.memo_cache_sentinel")?(c=Le(!0),i[1]=c):c=i[1];const r=c;let l;i[2]!==e?.availableThemes?(l=()=>e?.availableThemes??[a,r],i[2]=e?.availableThemes,i[3]=l):l=i[3],e?.availableThemes;let n;i[4]!==l?(n=l(),i[4]=l,i[5]=n):n=i[5];const s=n,f=e?.lightThemeId??a.metadata.id,d=e?.darkThemeId??r.metadata.id;let b;i[6]!==s||i[7]!==f?(b=s.find(u=>u.metadata.id===f)??a,i[6]=s,i[7]=f,i[8]=b):b=i[8];const T=b;let C;i[9]!==s||i[10]!==d?(C=s.find(u=>u.metadata.id===d)??r,i[9]=s,i[10]=d,i[11]=C):C=i[11];const _=C;let y,I;i[12]!==_||i[13]!==T?(y=()=>{Ee(T),Ee(_)},I=[_,T],i[12]=_,i[13]=T,i[14]=y,i[15]=I):(y=i[14],I=i[15]),N.useEffect(y,I);const k=e?.currentTheme.metadata.variant??"light";let v;i[16]!==_.metadata.id||i[17]!==T.metadata.id?(v={light:T.metadata.id,dark:_.metadata.id},i[16]=_.metadata.id,i[17]=T.metadata.id,i[18]=v):v=i[18];const w=k==="dark"?"dark":"light";let x;return i[19]!==v||i[20]!==w?(x={theme:v,themeType:w},i[19]=v,i[20]=w,i[21]=x):x=i[21],x},ze=()=>({width:typeof window<"u"?window.innerWidth:0,height:typeof window<"u"?window.innerHeight:0}),He={mobile:{widthRatio:.94,heightRatio:.86,padding:10},desktop:{widthRatio:.8,heightRatio:.8,padding:16}},Mt=(i,e)=>{const t=e?He.mobile:He.desktop,a=Math.max(160,i.width-t.padding*2),c=Math.max(160,i.height-t.padding*2);return{maxWidth:Math.max(160,Math.min(a,i.width*t.widthRatio)),maxHeight:Math.max(160,Math.min(c,i.height*t.heightRatio))}},Pt=i=>{try{const r=Array.from(i.querySelectorAll("g"));let l=0,n=null;for(const s of r){if(!(s instanceof SVGGraphicsElement))continue;const f=s.getBBox();if(!(f.width>0&&f.height>0))continue;const d=f.width*f.height;d>l&&(l=d,n=f.width/f.height)}if(n&&Number.isFinite(n)&&n>0)return n}catch{}const e=i.getAttribute("viewBox");if(e){const r=e.trim().split(/\s+/).map(Number);if(r.length===4){const l=r[2],n=r[3];if(Number.isFinite(l)&&Number.isFinite(n)&&l>0&&n>0)return l/n}}const t=Number(i.getAttribute("width")),a=Number(i.getAttribute("height"));if(Number.isFinite(t)&&Number.isFinite(a)&&t>0&&a>0)return t/a;const c=i.getBoundingClientRect();return c.width>0&&c.height>0?c.width/c.height:null},Ge=i=>{const e=ue.c(7),[t,a]=N.useState(i),[c,r]=N.useState(i),[l,n]=N.useState(!1);let s,f;e[0]!==i?(s=()=>{if(i){if(a(!0),n(!0),typeof window>"u"){r(!0);return}const T=window.requestAnimationFrame(()=>{r(!0)}),C=window.setTimeout(()=>{n(!1)},Fe);return()=>{window.cancelAnimationFrame(T),window.clearTimeout(C)}}if(r(!1),n(!0),typeof window>"u"){a(!1);return}const b=window.setTimeout(()=>{a(!1),n(!1)},Fe);return()=>{window.clearTimeout(b)}},f=[i],e[0]=i,e[1]=s,e[2]=f):(s=e[1],f=e[2]),N.useEffect(s,f);let d;return e[3]!==t||e[4]!==l||e[5]!==c?(d={isRendered:t,isVisible:c,isTransitioning:l},e[3]=t,e[4]=l,e[5]=c,e[6]=d):d=e[6],d},Je=i=>{const e=ue.c(3),[t,a]=N.useState(ze);let c,r;return e[0]!==i?(c=()=>{if(!i||typeof window>"u")return;const l=()=>{a(ze())};return l(),window.addEventListener("resize",l),()=>{window.removeEventListener("resize",l)}},r=[i],e[0]=i,e[1]=c,e[2]=r):(c=e[1],r=e[2]),N.useEffect(c,r),t},Ct=i=>{const e=ue.c(103),{popup:t,onOpenChange:a,isMobile:c}=i,{t:r}=Me();let l;e:{const m=t.image;if(!m){let R;e[0]===Symbol.for("react.memo_cache_sentinel")?(R=[],e[0]=R):R=e[0],l=R;break e}let g;e[1]!==m.gallery?(g=Array.isArray(m.gallery)?m.gallery.filter(Et):[],e[1]=m.gallery,e[2]=g):g=e[2];const M=g;if(M.length>0){l=M;break e}let E;e[3]!==m.filename||e[4]!==m.mimeType||e[5]!==m.size||e[6]!==m.url?(E=[{url:m.url,mimeType:m.mimeType,filename:m.filename,size:m.size}],e[3]=m.filename,e[4]=m.mimeType,e[5]=m.size,e[6]=m.url,e[7]=E):E=e[7],l=E}const n=l,[s,f]=N.useState(0),[d,b]=N.useState(null),{isRendered:T,isVisible:C,isTransitioning:_}=Ge(t.open),y=Je(t.open);let I;e[8]!==n||e[9]!==t.image||e[10]!==t.open?(I=()=>{if(!t.open||n.length===0)return;const m=typeof t.image?.index=="number"?t.image.index:-1;if(m>=0&&m<n.length){f(m);return}const g=t.image?.url?n.findIndex(M=>M.url===t.image?.url):-1;f(g>=0?g:0)},e[8]=n,e[9]=t.image,e[10]=t.open,e[11]=I):I=e[11];const k=t.image?.index,v=t.image?.url;let w;e[12]!==n||e[13]!==t.open||e[14]!==k||e[15]!==v?(w=[n,k,v,t.open],e[12]=n,e[13]=t.open,e[14]=k,e[15]=v,e[16]=w):w=e[16],N.useEffect(I,w);const x=n[s]??n[0]??t.image,u=x?.filename||t.title||"Image preview",h=n.length>1;let S;e[17]!==n.length?(S=()=>{n.length<=1||f(m=>(m-1+n.length)%n.length)},e[17]=n.length,e[18]=S):S=e[18];const L=S;let p;e[19]!==n.length?(p=()=>{n.length<=1||f(m=>(m+1)%n.length)},e[19]=n.length,e[20]=p):p=e[20];const A=p;let D,Y;e[21]!==h||e[22]!==a||e[23]!==t.open||e[24]!==A||e[25]!==L?(D=()=>{if(!t.open)return;const m=g=>{if(g.key==="Escape"){a(!1);return}if(g.key==="ArrowLeft"&&h){g.preventDefault(),L();return}g.key==="ArrowRight"&&h&&(g.preventDefault(),A())};return window.addEventListener("keydown",m),()=>{window.removeEventListener("keydown",m)}},Y=[h,a,t.open,A,L],e[21]=h,e[22]=a,e[23]=t.open,e[24]=A,e[25]=L,e[26]=D,e[27]=Y):(D=e[26],Y=e[27]),N.useEffect(D,Y);let z;e[28]===Symbol.for("react.memo_cache_sentinel")?(z=()=>{b(null)},e[28]=z):z=e[28];const fe=x?.url;let ge;e[29]!==fe?(ge=[fe],e[29]=fe,e[30]=ge):ge=e[30],N.useEffect(z,ge);let xe;e:{const m=Math.max(160,y.width*(c?.86:.75)),g=Math.max(160,y.height*(c?.72:.75));if(!d){let ve;e[31]!==m?(ve=Math.round(m),e[31]=m,e[32]=ve):ve=e[32];let je;e[33]!==g?(je=Math.round(g),e[33]=g,e[34]=je):je=e[34];let Te;e[35]!==ve||e[36]!==je?(Te={width:ve,height:je},e[35]=ve,e[36]=je,e[37]=Te):Te=e[37],xe=Te;break e}const M=m/d.width,E=g/d.height,R=Math.min(M,E);let O;e[38]!==d.width||e[39]!==R?(O=Math.round(d.width*R),e[38]=d.width,e[39]=R,e[40]=O):O=e[40];const K=Math.max(1,O);let Se;e[41]!==d.height||e[42]!==R?(Se=Math.round(d.height*R),e[41]=d.height,e[42]=R,e[43]=Se):Se=e[43];const De=Math.max(1,Se);let ke;e[44]!==K||e[45]!==De?(ke={width:K,height:De},e[44]=K,e[45]=De,e[46]=ke):ke=e[46],xe=ke}const ie=xe;if(!T||!x||typeof document>"u")return null;const we=t.open?"pointer-events-auto":"pointer-events-none";let oe;e[47]!==we?(oe=pe("fixed inset-0 z-50",we),e[47]=we,e[48]=oe):oe=e[48];const re=_&&"transition-opacity duration-150 ease-out",he=C?"opacity-100":"opacity-0";let H;e[49]!==re||e[50]!==he?(H=pe("absolute inset-0 bg-black/40",re,he),e[49]=re,e[50]=he,e[51]=H):H=e[51];let V;e[52]!==a?(V=()=>a(!1),e[52]=a,e[53]=V):V=e[53];let ne;e[54]!==H||e[55]!==V?(ne=o.jsx("div",{"aria-hidden":"true",className:H,onMouseDown:V}),e[54]=H,e[55]=V,e[56]=ne):ne=e[56];let $;e[57]!==h||e[58]!==A||e[59]!==L||e[60]!==r?($=h&&o.jsxs(o.Fragment,{children:[o.jsx("button",{type:"button",onMouseDown:Ot,onClick:L,className:"absolute left-3 top-1/2 -translate-y-1/2 z-10 h-10 w-10 flex items-center justify-center rounded-full bg-black/40 text-foreground/90 hover:bg-black/55 focus:outline-none focus:ring-2 focus:ring-primary/60","aria-label":r("chat.toolOutputDialog.image.previousAria"),children:o.jsx(P,{name:"arrow-left-s",className:"h-6 w-6"})}),o.jsx("button",{type:"button",onMouseDown:At,onClick:A,className:"absolute right-3 top-1/2 -translate-y-1/2 z-10 h-10 w-10 flex items-center justify-center rounded-full bg-black/40 text-foreground/90 hover:bg-black/55 focus:outline-none focus:ring-2 focus:ring-primary/60","aria-label":r("chat.toolOutputDialog.image.nextAria"),children:o.jsx(P,{name:"arrow-right-s",className:"h-6 w-6"})})]}),e[57]=h,e[58]=A,e[59]=L,e[60]=r,e[61]=$):$=e[61];const ye=c?"p-2.5":"p-4";let se;e[62]!==ye?(se=pe("absolute inset-0 flex items-center justify-center pointer-events-none",ye),e[62]=ye,e[63]=se):se=e[63];const ae=_&&"transition-opacity duration-150 ease-out",be=C?"opacity-100":"opacity-0";let W;e[64]!==ae||e[65]!==be?(W=pe("pointer-events-auto flex flex-col gap-2",ae,be),e[64]=ae,e[65]=be,e[66]=W):W=e[66];const le=`${ie.width}px`;let U;e[67]!==le?(U={width:le},e[67]=le,e[68]=U):U=e[68];let X;e[69]!==u?(X=o.jsx("div",{className:"min-w-0 flex-1 text-foreground typography-ui-header font-semibold truncate",title:u,children:u}),e[69]=u,e[70]=X):X=e[70];let q;e[71]!==a?(q=()=>a(!1),e[71]=a,e[72]=q):q=e[72];let ce;e[73]!==r?(ce=r("chat.toolOutputDialog.image.closeAria"),e[73]=r,e[74]=ce):ce=e[74];let Q;e[75]===Symbol.for("react.memo_cache_sentinel")?(Q=o.jsx(P,{name:"close",className:"h-4 w-4"}),e[75]=Q):Q=e[75];let B;e[76]!==q||e[77]!==ce?(B=o.jsx("button",{type:"button",className:"h-8 w-8 flex items-center justify-center rounded-lg text-muted-foreground/80 hover:text-foreground focus:outline-none focus:ring-2 focus:ring-primary/60",onClick:q,"aria-label":ce,children:Q}),e[76]=q,e[77]=ce,e[78]=B):B=e[78];let G;e[79]!==X||e[80]!==B?(G=o.jsxs("div",{className:"flex items-center justify-between gap-2",children:[X,B]}),e[79]=X,e[80]=B,e[81]=G):G=e[81];const me=`${ie.width}px`,de=`${ie.height}px`;let J;e[82]!==me||e[83]!==de?(J={width:me,height:de},e[82]=me,e[83]=de,e[84]=J):J=e[84];let ee;e[85]===Symbol.for("react.memo_cache_sentinel")?(ee=m=>{const g=m.currentTarget,M=g.naturalWidth,E=g.naturalHeight;M>0&&E>0&&b(R=>R&&R.width===M&&R.height===E?R:{width:M,height:E})},e[85]=ee):ee=e[85];let Z;e[86]!==x.url||e[87]!==u||e[88]!==J?(Z=o.jsx("img",{src:x.url,alt:u,className:"block object-contain",style:J,loading:"lazy",onLoad:ee}),e[86]=x.url,e[87]=u,e[88]=J,e[89]=Z):Z=e[89];let te;e[90]!==W||e[91]!==U||e[92]!==G||e[93]!==Z?(te=o.jsxs("div",{className:W,style:U,children:[G,Z]}),e[90]=W,e[91]=U,e[92]=G,e[93]=Z,e[94]=te):te=e[94];let j;e[95]!==se||e[96]!==te?(j=o.jsx("div",{className:se,children:te}),e[95]=se,e[96]=te,e[97]=j):j=e[97];let F;if(e[98]!==oe||e[99]!==ne||e[100]!==$||e[101]!==j){const m=o.jsxs("div",{className:oe,children:[ne,$,j]});F=Ve.createPortal(m,document.body),e[98]=oe,e[99]=ne,e[100]=$,e[101]=j,e[102]=F}else F=e[102];return F},Ze=N.memo(i=>{const e=ue.c(7),{popup:t,diffViewMode:a,pierreThemeConfig:c}=i,r=t.content||"",l=a==="unified"?"unified":"split";let n;e[0]!==c.theme||e[1]!==c.themeType||e[2]!==l?(n={diffStyle:l,diffIndicators:"none",hunkSeparators:"line-info-basic",lineDiffType:"none",disableFileHeader:!0,maxLineDiffLength:1e3,expansionLineCount:20,overflow:"wrap",theme:c.theme,themeType:c.themeType,unsafeCSS:Rt},e[0]=c.theme,e[1]=c.themeType,e[2]=l,e[3]=n):n=e[3];let s;return e[4]!==r||e[5]!==n?(s=o.jsx("div",{className:"typography-code",children:o.jsx(ft,{patch:r,metrics:It,options:n,className:"block w-full"})}),e[4]=r,e[5]=n,e[6]=s):s=e[6],s});Ze.displayName="DialogUnifiedDiff";const Ke=N.memo(i=>{const e=ue.c(29),{popup:t,pierreThemeConfig:a}=i;let c;e[0]!==t.content?(c=ct(t.content),e[0]=t.content,e[1]=c):c=e[1];const r=c,l=t.metadata?.input;let n;e[2]!==l?(n=typeof l=="object"&&l!==null?l:{},e[2]=l,e[3]=n):n=e[3];const s=n,f=typeof s.offset=="number"?s.offset:0,d=typeof s.file_path=="string"?s.file_path:typeof s.filePath=="string"?s.filePath:typeof s.path=="string"?s.path:"read-output";let b;e[4]!==r.lines?(b=r.lines.map(Ft).join(`
|
|
10
|
-
`),e[4]=r.lines,e[5]=
|
|
9
|
+
`,It={hunkLineCount:50,lineHeight:24,diffHeaderHeight:44,hunkSeparatorHeight:24,spacing:0},Dt=()=>{const i=ue.c(22),e=lt();let t;i[0]===Symbol.for("react.memo_cache_sentinel")?(t=Le(!1),i[0]=t):t=i[0];const a=t;let c;i[1]===Symbol.for("react.memo_cache_sentinel")?(c=Le(!0),i[1]=c):c=i[1];const r=c;let l;i[2]!==e?.availableThemes?(l=()=>e?.availableThemes??[a,r],i[2]=e?.availableThemes,i[3]=l):l=i[3],e?.availableThemes;let n;i[4]!==l?(n=l(),i[4]=l,i[5]=n):n=i[5];const s=n,f=e?.lightThemeId??a.metadata.id,d=e?.darkThemeId??r.metadata.id;let y;i[6]!==s||i[7]!==f?(y=s.find(u=>u.metadata.id===f)??a,i[6]=s,i[7]=f,i[8]=y):y=i[8];const T=y;let C;i[9]!==s||i[10]!==d?(C=s.find(u=>u.metadata.id===d)??r,i[9]=s,i[10]=d,i[11]=C):C=i[11];const _=C;let b,I;i[12]!==_||i[13]!==T?(b=()=>{Ee(T),Ee(_)},I=[_,T],i[12]=_,i[13]=T,i[14]=b,i[15]=I):(b=i[14],I=i[15]),N.useEffect(b,I);const k=e?.currentTheme.metadata.variant??"light";let v;i[16]!==_.metadata.id||i[17]!==T.metadata.id?(v={light:T.metadata.id,dark:_.metadata.id},i[16]=_.metadata.id,i[17]=T.metadata.id,i[18]=v):v=i[18];const w=k==="dark"?"dark":"light";let x;return i[19]!==v||i[20]!==w?(x={theme:v,themeType:w},i[19]=v,i[20]=w,i[21]=x):x=i[21],x},ze=()=>({width:typeof window<"u"?window.innerWidth:0,height:typeof window<"u"?window.innerHeight:0}),He={mobile:{widthRatio:.94,heightRatio:.86,padding:10},desktop:{widthRatio:.8,heightRatio:.8,padding:16}},Mt=(i,e)=>{const t=e?He.mobile:He.desktop,a=Math.max(160,i.width-t.padding*2),c=Math.max(160,i.height-t.padding*2);return{maxWidth:Math.max(160,Math.min(a,i.width*t.widthRatio)),maxHeight:Math.max(160,Math.min(c,i.height*t.heightRatio))}},Pt=i=>{try{const r=Array.from(i.querySelectorAll("g"));let l=0,n=null;for(const s of r){if(!(s instanceof SVGGraphicsElement))continue;const f=s.getBBox();if(!(f.width>0&&f.height>0))continue;const d=f.width*f.height;d>l&&(l=d,n=f.width/f.height)}if(n&&Number.isFinite(n)&&n>0)return n}catch{}const e=i.getAttribute("viewBox");if(e){const r=e.trim().split(/\s+/).map(Number);if(r.length===4){const l=r[2],n=r[3];if(Number.isFinite(l)&&Number.isFinite(n)&&l>0&&n>0)return l/n}}const t=Number(i.getAttribute("width")),a=Number(i.getAttribute("height"));if(Number.isFinite(t)&&Number.isFinite(a)&&t>0&&a>0)return t/a;const c=i.getBoundingClientRect();return c.width>0&&c.height>0?c.width/c.height:null},Ge=i=>{const e=ue.c(7),[t,a]=N.useState(i),[c,r]=N.useState(i),[l,n]=N.useState(!1);let s,f;e[0]!==i?(s=()=>{if(i){if(a(!0),n(!0),typeof window>"u"){r(!0);return}const T=window.requestAnimationFrame(()=>{r(!0)}),C=window.setTimeout(()=>{n(!1)},Fe);return()=>{window.cancelAnimationFrame(T),window.clearTimeout(C)}}if(r(!1),n(!0),typeof window>"u"){a(!1);return}const y=window.setTimeout(()=>{a(!1),n(!1)},Fe);return()=>{window.clearTimeout(y)}},f=[i],e[0]=i,e[1]=s,e[2]=f):(s=e[1],f=e[2]),N.useEffect(s,f);let d;return e[3]!==t||e[4]!==l||e[5]!==c?(d={isRendered:t,isVisible:c,isTransitioning:l},e[3]=t,e[4]=l,e[5]=c,e[6]=d):d=e[6],d},Je=i=>{const e=ue.c(3),[t,a]=N.useState(ze);let c,r;return e[0]!==i?(c=()=>{if(!i||typeof window>"u")return;const l=()=>{a(ze())};return l(),window.addEventListener("resize",l),()=>{window.removeEventListener("resize",l)}},r=[i],e[0]=i,e[1]=c,e[2]=r):(c=e[1],r=e[2]),N.useEffect(c,r),t},Ct=i=>{const e=ue.c(103),{popup:t,onOpenChange:a,isMobile:c}=i,{t:r}=Me();let l;e:{const m=t.image;if(!m){let R;e[0]===Symbol.for("react.memo_cache_sentinel")?(R=[],e[0]=R):R=e[0],l=R;break e}let g;e[1]!==m.gallery?(g=Array.isArray(m.gallery)?m.gallery.filter(Et):[],e[1]=m.gallery,e[2]=g):g=e[2];const M=g;if(M.length>0){l=M;break e}let E;e[3]!==m.filename||e[4]!==m.mimeType||e[5]!==m.size||e[6]!==m.url?(E=[{url:m.url,mimeType:m.mimeType,filename:m.filename,size:m.size}],e[3]=m.filename,e[4]=m.mimeType,e[5]=m.size,e[6]=m.url,e[7]=E):E=e[7],l=E}const n=l,[s,f]=N.useState(0),[d,y]=N.useState(null),{isRendered:T,isVisible:C,isTransitioning:_}=Ge(t.open),b=Je(t.open);let I;e[8]!==n||e[9]!==t.image||e[10]!==t.open?(I=()=>{if(!t.open||n.length===0)return;const m=typeof t.image?.index=="number"?t.image.index:-1;if(m>=0&&m<n.length){f(m);return}const g=t.image?.url?n.findIndex(M=>M.url===t.image?.url):-1;f(g>=0?g:0)},e[8]=n,e[9]=t.image,e[10]=t.open,e[11]=I):I=e[11];const k=t.image?.index,v=t.image?.url;let w;e[12]!==n||e[13]!==t.open||e[14]!==k||e[15]!==v?(w=[n,k,v,t.open],e[12]=n,e[13]=t.open,e[14]=k,e[15]=v,e[16]=w):w=e[16],N.useEffect(I,w);const x=n[s]??n[0]??t.image,u=x?.filename||t.title||"Image preview",h=n.length>1;let S;e[17]!==n.length?(S=()=>{n.length<=1||f(m=>(m-1+n.length)%n.length)},e[17]=n.length,e[18]=S):S=e[18];const L=S;let p;e[19]!==n.length?(p=()=>{n.length<=1||f(m=>(m+1)%n.length)},e[19]=n.length,e[20]=p):p=e[20];const A=p;let D,Y;e[21]!==h||e[22]!==a||e[23]!==t.open||e[24]!==A||e[25]!==L?(D=()=>{if(!t.open)return;const m=g=>{if(g.key==="Escape"){a(!1);return}if(g.key==="ArrowLeft"&&h){g.preventDefault(),L();return}g.key==="ArrowRight"&&h&&(g.preventDefault(),A())};return window.addEventListener("keydown",m),()=>{window.removeEventListener("keydown",m)}},Y=[h,a,t.open,A,L],e[21]=h,e[22]=a,e[23]=t.open,e[24]=A,e[25]=L,e[26]=D,e[27]=Y):(D=e[26],Y=e[27]),N.useEffect(D,Y);let z;e[28]===Symbol.for("react.memo_cache_sentinel")?(z=()=>{y(null)},e[28]=z):z=e[28];const fe=x?.url;let ge;e[29]!==fe?(ge=[fe],e[29]=fe,e[30]=ge):ge=e[30],N.useEffect(z,ge);let xe;e:{const m=Math.max(160,b.width*(c?.86:.75)),g=Math.max(160,b.height*(c?.72:.75));if(!d){let ve;e[31]!==m?(ve=Math.round(m),e[31]=m,e[32]=ve):ve=e[32];let je;e[33]!==g?(je=Math.round(g),e[33]=g,e[34]=je):je=e[34];let Te;e[35]!==ve||e[36]!==je?(Te={width:ve,height:je},e[35]=ve,e[36]=je,e[37]=Te):Te=e[37],xe=Te;break e}const M=m/d.width,E=g/d.height,R=Math.min(M,E);let O;e[38]!==d.width||e[39]!==R?(O=Math.round(d.width*R),e[38]=d.width,e[39]=R,e[40]=O):O=e[40];const K=Math.max(1,O);let Se;e[41]!==d.height||e[42]!==R?(Se=Math.round(d.height*R),e[41]=d.height,e[42]=R,e[43]=Se):Se=e[43];const De=Math.max(1,Se);let ke;e[44]!==K||e[45]!==De?(ke={width:K,height:De},e[44]=K,e[45]=De,e[46]=ke):ke=e[46],xe=ke}const ie=xe;if(!T||!x||typeof document>"u")return null;const we=t.open?"pointer-events-auto":"pointer-events-none";let oe;e[47]!==we?(oe=pe("fixed inset-0 z-50",we),e[47]=we,e[48]=oe):oe=e[48];const re=_&&"transition-opacity duration-150 ease-out",he=C?"opacity-100":"opacity-0";let H;e[49]!==re||e[50]!==he?(H=pe("absolute inset-0 bg-black/40",re,he),e[49]=re,e[50]=he,e[51]=H):H=e[51];let V;e[52]!==a?(V=()=>a(!1),e[52]=a,e[53]=V):V=e[53];let ne;e[54]!==H||e[55]!==V?(ne=o.jsx("div",{"aria-hidden":"true",className:H,onMouseDown:V}),e[54]=H,e[55]=V,e[56]=ne):ne=e[56];let $;e[57]!==h||e[58]!==A||e[59]!==L||e[60]!==r?($=h&&o.jsxs(o.Fragment,{children:[o.jsx("button",{type:"button",onMouseDown:Ot,onClick:L,className:"absolute left-3 top-1/2 -translate-y-1/2 z-10 h-10 w-10 flex items-center justify-center rounded-full bg-black/40 text-foreground/90 hover:bg-black/55 focus:outline-none focus:ring-2 focus:ring-primary/60","aria-label":r("chat.toolOutputDialog.image.previousAria"),children:o.jsx(P,{name:"arrow-left-s",className:"h-6 w-6"})}),o.jsx("button",{type:"button",onMouseDown:At,onClick:A,className:"absolute right-3 top-1/2 -translate-y-1/2 z-10 h-10 w-10 flex items-center justify-center rounded-full bg-black/40 text-foreground/90 hover:bg-black/55 focus:outline-none focus:ring-2 focus:ring-primary/60","aria-label":r("chat.toolOutputDialog.image.nextAria"),children:o.jsx(P,{name:"arrow-right-s",className:"h-6 w-6"})})]}),e[57]=h,e[58]=A,e[59]=L,e[60]=r,e[61]=$):$=e[61];const be=c?"p-2.5":"p-4";let se;e[62]!==be?(se=pe("absolute inset-0 flex items-center justify-center pointer-events-none",be),e[62]=be,e[63]=se):se=e[63];const ae=_&&"transition-opacity duration-150 ease-out",ye=C?"opacity-100":"opacity-0";let W;e[64]!==ae||e[65]!==ye?(W=pe("pointer-events-auto flex flex-col gap-2",ae,ye),e[64]=ae,e[65]=ye,e[66]=W):W=e[66];const le=`${ie.width}px`;let U;e[67]!==le?(U={width:le},e[67]=le,e[68]=U):U=e[68];let X;e[69]!==u?(X=o.jsx("div",{className:"min-w-0 flex-1 text-foreground typography-ui-header font-semibold truncate",title:u,children:u}),e[69]=u,e[70]=X):X=e[70];let q;e[71]!==a?(q=()=>a(!1),e[71]=a,e[72]=q):q=e[72];let ce;e[73]!==r?(ce=r("chat.toolOutputDialog.image.closeAria"),e[73]=r,e[74]=ce):ce=e[74];let Q;e[75]===Symbol.for("react.memo_cache_sentinel")?(Q=o.jsx(P,{name:"close",className:"h-4 w-4"}),e[75]=Q):Q=e[75];let B;e[76]!==q||e[77]!==ce?(B=o.jsx("button",{type:"button",className:"h-8 w-8 flex items-center justify-center rounded-lg text-muted-foreground/80 hover:text-foreground focus:outline-none focus:ring-2 focus:ring-primary/60",onClick:q,"aria-label":ce,children:Q}),e[76]=q,e[77]=ce,e[78]=B):B=e[78];let G;e[79]!==X||e[80]!==B?(G=o.jsxs("div",{className:"flex items-center justify-between gap-2",children:[X,B]}),e[79]=X,e[80]=B,e[81]=G):G=e[81];const me=`${ie.width}px`,de=`${ie.height}px`;let J;e[82]!==me||e[83]!==de?(J={width:me,height:de},e[82]=me,e[83]=de,e[84]=J):J=e[84];let ee;e[85]===Symbol.for("react.memo_cache_sentinel")?(ee=m=>{const g=m.currentTarget,M=g.naturalWidth,E=g.naturalHeight;M>0&&E>0&&y(R=>R&&R.width===M&&R.height===E?R:{width:M,height:E})},e[85]=ee):ee=e[85];let Z;e[86]!==x.url||e[87]!==u||e[88]!==J?(Z=o.jsx("img",{src:x.url,alt:u,className:"block object-contain",style:J,loading:"lazy",onLoad:ee}),e[86]=x.url,e[87]=u,e[88]=J,e[89]=Z):Z=e[89];let te;e[90]!==W||e[91]!==U||e[92]!==G||e[93]!==Z?(te=o.jsxs("div",{className:W,style:U,children:[G,Z]}),e[90]=W,e[91]=U,e[92]=G,e[93]=Z,e[94]=te):te=e[94];let j;e[95]!==se||e[96]!==te?(j=o.jsx("div",{className:se,children:te}),e[95]=se,e[96]=te,e[97]=j):j=e[97];let F;if(e[98]!==oe||e[99]!==ne||e[100]!==$||e[101]!==j){const m=o.jsxs("div",{className:oe,children:[ne,$,j]});F=Ve.createPortal(m,document.body),e[98]=oe,e[99]=ne,e[100]=$,e[101]=j,e[102]=F}else F=e[102];return F},Ze=N.memo(i=>{const e=ue.c(7),{popup:t,diffViewMode:a,pierreThemeConfig:c}=i,r=t.content||"",l=a==="unified"?"unified":"split";let n;e[0]!==c.theme||e[1]!==c.themeType||e[2]!==l?(n={diffStyle:l,diffIndicators:"none",hunkSeparators:"line-info-basic",lineDiffType:"none",disableFileHeader:!0,maxLineDiffLength:1e3,expansionLineCount:20,overflow:"wrap",theme:c.theme,themeType:c.themeType,unsafeCSS:Rt},e[0]=c.theme,e[1]=c.themeType,e[2]=l,e[3]=n):n=e[3];let s;return e[4]!==r||e[5]!==n?(s=o.jsx("div",{className:"typography-code",children:o.jsx(ft,{patch:r,metrics:It,options:n,className:"block w-full"})}),e[4]=r,e[5]=n,e[6]=s):s=e[6],s});Ze.displayName="DialogUnifiedDiff";const Ke=N.memo(i=>{const e=ue.c(29),{popup:t,pierreThemeConfig:a}=i;let c;e[0]!==t.content?(c=ct(t.content),e[0]=t.content,e[1]=c):c=e[1];const r=c,l=t.metadata?.input;let n;e[2]!==l?(n=typeof l=="object"&&l!==null?l:{},e[2]=l,e[3]=n):n=e[3];const s=n,f=typeof s.offset=="number"?s.offset:0,d=typeof s.file_path=="string"?s.file_path:typeof s.filePath=="string"?s.filePath:typeof s.path=="string"?s.path:"read-output";let y;e[4]!==r.lines?(y=r.lines.map(Ft).join(`
|
|
10
|
+
`),e[4]=r.lines,e[5]=y):y=e[5];const T=y;let C;e[6]!==d||e[7]!==t.language?(C=t.language||$e(d)||"text",e[6]=d,e[7]=t.language,e[8]=C):C=e[8];const _=C;let b;e[9]!==r.lines?(b=r.lines.some(zt),e[9]=r.lines,e[10]=b):b=e[10];const I=b;let k;if(e[11]!==I||e[12]!==f||e[13]!==r.lines||e[14]!==r.type){k=[];let x=f;for(const u of r.lines){u.lineNumber!==null&&(x=u.lineNumber);const h=r.type==="file"&&!I&&u.lineNumber===null&&!u.isInfo,S=u.lineNumber??(h?x+1:null);typeof S=="number"&&(x=S),k.push({text:u.text,lineNumber:S,isInfo:u.isInfo})}e[11]=I,e[12]=f,e[13]=r.lines,e[14]=r.type,e[15]=k}else k=e[15];const v=k;if(r.type==="file"){const x=_||void 0;let u;e[16]!==T||e[17]!==d||e[18]!==x?(u={name:d,contents:T,lang:x},e[16]=T,e[17]=d,e[18]=x,e[19]=u):u=e[19];let h;e[20]!==a.theme||e[21]!==a.themeType?(h={disableFileHeader:!0,overflow:"wrap",theme:a.theme,themeType:a.themeType},e[20]=a.theme,e[21]=a.themeType,e[22]=h):h=e[22];let S;return e[23]!==u||e[24]!==h?(S=o.jsx(Ue,{file:u,options:h,className:"block w-full"}),e[23]=u,e[24]=h,e[25]=S):S=e[25],S}let w;return e[26]!==v||e[27]!==_?(w=o.jsx(qe,{lines:v,language:_,maxHeight:"70vh"}),e[26]=v,e[27]=_,e[28]=w):w=e[28],w});Ke.displayName="DialogReadContent";const Lt=i=>{const e=ue.c(90),{popup:t,onOpenChange:a,isMobile:c}=i,{t:r}=Me(),[l,n]=N.useState(t.mermaid?.source||""),[s,f]=N.useState(t.mermaid?.source?"ready":"idle"),[d,y]=N.useState(""),{isRendered:T,isVisible:C,isTransitioning:_}=Ge(t.open),[b,I]=N.useState(null),k=Je(t.open),v=N.useRef(0),w=N.useRef(null),x=Wt;let u;e[0]!==t.mermaid||e[1]!==r?(u=async()=>{const j=t.mermaid,F=yt(v.current);if(v.current=F,!j?.url){f("error"),y(r("chat.toolOutputDialog.mermaid.missingSource"));return}if(j.source){n(j.source),f("ready"),y("");return}f("loading"),y("");let m;if(j.url.startsWith("data:"))m=jt(j.url);else if(j.url.toLowerCase().startsWith("file://")){const g=x(j.url);g?m=pt("/api/fs/raw",{query:{path:g}}).then(Ut):m=Promise.reject(Ie("chat.toolOutputDialog.mermaid.invalidLocalPath"))}else{const M=(typeof URL.canParse=="function"?URL.canParse(j.url,window.location.origin):!1)?new URL(j.url,window.location.origin):null;!M||M.protocol!=="http:"&&M.protocol!=="https:"?m=Promise.reject(Ie("chat.toolOutputDialog.mermaid.unsupportedUrlProtocol")):m=fetch(M.toString()).then(qt)}await m.then(g=>{Ae(v.current,F)&&(n(g),f("ready"))}).catch(g=>{Ae(v.current,F)&&(f("error"),y(bt(g)?r(g.key,g.params):r("chat.toolOutputDialog.mermaid.loadFailed")))})},e[0]=t.mermaid,e[1]=r,e[2]=u):u=e[2];const h=u;let S,L;e[3]!==h||e[4]!==t.mermaid||e[5]!==t.open?(S=()=>{!t.open||!t.mermaid||h()},L=[h,t.mermaid,t.open],e[3]=h,e[4]=t.mermaid,e[5]=t.open,e[6]=S,e[7]=L):(S=e[6],L=e[7]),N.useEffect(S,L);let p,A;e[8]!==a||e[9]!==t.open?(p=()=>{if(!t.open)return;const j=F=>{F.key==="Escape"&&a(!1)};return window.addEventListener("keydown",j),()=>{window.removeEventListener("keydown",j)}},A=[a,t.open],e[8]=a,e[9]=t.open,e[10]=p,e[11]=A):(p=e[10],A=e[11]),N.useEffect(p,A);let D;e[12]!==t.open||e[13]!==s?(D=()=>{if(!t.open||s!=="ready"){I(null);return}const j=()=>{const R=w.current?.querySelector("svg");if(!R)return!1;const O=Pt(R);return!O||!Number.isFinite(O)||O<=0?!1:(I(K=>K&&Math.abs(K-O)<.001?K:O),!0)};let F=window.requestAnimationFrame(()=>{j()||(F=window.requestAnimationFrame(()=>{j()}))}),m=0,g;const M=()=>{m>=Tt||(g=window.setTimeout(()=>{m=m+1,j()||M()},kt))};M();const E=new MutationObserver(()=>{j()});return w.current&&E.observe(w.current,{childList:!0,subtree:!0,attributes:!0}),()=>{window.cancelAnimationFrame(F),typeof g=="number"&&window.clearTimeout(g),E.disconnect()}},e[12]=t.open,e[13]=s,e[14]=D):D=e[14];let Y;e[15]!==t.open||e[16]!==l||e[17]!==s?(Y=[t.open,l,s],e[15]=t.open,e[16]=l,e[17]=s,e[18]=Y):Y=e[18],N.useEffect(D,Y);const z=`\`\`\`mermaid
|
|
11
11
|
${l}
|
|
12
|
-
\`\`\``;let fe;if(e[19]!==
|
|
12
|
+
\`\`\``;let fe;if(e[19]!==b||e[20]!==c||e[21]!==k){e:{const{maxWidth:j,maxHeight:F}=Mt(k,c),m=Math.max(160,F-St);if(b&&b<1){const E=Math.min(j,m);let R;e[23]!==E?(R=Math.round(E),e[23]=E,e[24]=R):R=e[24];let O;e[25]!==E?(O=Math.round(E),e[25]=E,e[26]=O):O=e[26];let K;e[27]!==O||e[28]!==R?(K={width:R,height:O},e[27]=O,e[28]=R,e[29]=K):K=e[29],fe=K;break e}const g=Math.round(j);let M;e[30]!==m?(M=Math.round(m),e[30]=m,e[31]=M):M=e[31],fe={width:g,height:M}}e[19]=b,e[20]=c,e[21]=k,e[22]=fe}else fe=e[22];const ge=fe;if(!T||typeof document>"u")return null;const xe=t.open?"pointer-events-auto":"pointer-events-none";let ie;e[32]!==xe?(ie=pe("fixed inset-0 z-50",xe),e[32]=xe,e[33]=ie):ie=e[33];const we=_&&"transition-opacity duration-150 ease-out",oe=C?"opacity-100":"opacity-0";let re;e[34]!==we||e[35]!==oe?(re=pe("absolute inset-0",we,oe),e[34]=we,e[35]=oe,e[36]=re):re=e[36];let he;e[37]===Symbol.for("react.memo_cache_sentinel")?(he={backgroundColor:"color-mix(in srgb, var(--surface-background) 70%, transparent)"},e[37]=he):he=e[37];let H;e[38]!==a?(H=()=>a(!1),e[38]=a,e[39]=H):H=e[39];let V;e[40]!==re||e[41]!==H?(V=o.jsx("div",{"aria-hidden":"true",className:re,style:he,onMouseDown:H}),e[40]=re,e[41]=H,e[42]=V):V=e[42];const ne=c?"p-2.5":"p-4";let $;e[43]!==ne?($=pe("absolute inset-0 flex items-center justify-center pointer-events-none",ne),e[43]=ne,e[44]=$):$=e[44];const be=_&&"transition-opacity duration-150 ease-out",se=C?"opacity-100":"opacity-0";let ae;e[45]!==be||e[46]!==se?(ae=pe("pointer-events-auto flex flex-col gap-2",be,se),e[45]=be,e[46]=se,e[47]=ae):ae=e[47];const ye=`${ge.width}px`;let W;e[48]!==ye?(W={width:ye},e[48]=ye,e[49]=W):W=e[49];let le;e[50]!==a?(le=()=>a(!1),e[50]=a,e[51]=le):le=e[51];let U;e[52]!==r?(U=r("chat.toolOutputDialog.mermaid.closeAria"),e[52]=r,e[53]=U):U=e[53];let X;e[54]===Symbol.for("react.memo_cache_sentinel")?(X=o.jsx(P,{name:"close",className:"h-4 w-4"}),e[54]=X):X=e[54];let q;e[55]!==le||e[56]!==U?(q=o.jsx("div",{className:"flex items-center justify-end",children:o.jsx("button",{type:"button",className:"h-8 w-8 flex items-center justify-center rounded-lg text-muted-foreground/80 hover:text-foreground focus:outline-none focus:ring-2 focus:ring-primary/60",onClick:le,"aria-label":U,children:X})}),e[55]=le,e[56]=U,e[57]=q):q=e[57];const ce=`${ge.height}px`;let Q;e[58]!==ce?(Q={height:ce},e[58]=ce,e[59]=Q):Q=e[59];let B;e[60]!==s||e[61]!==r?(B=s==="loading"&&o.jsxs("div",{className:"h-full min-h-28 flex items-center justify-center gap-2 text-muted-foreground typography-meta",children:[o.jsx(P,{name:"loader-4",className:"h-4 w-4 animate-spin"}),o.jsx("span",{children:r("chat.toolOutputDialog.mermaid.loading")})]}),e[60]=s,e[61]=r,e[62]=B):B=e[62];let G;e[63]!==d||e[64]!==h||e[65]!==s||e[66]!==r?(G=s==="error"&&o.jsxs("div",{className:"rounded-xl border p-3 space-y-3",style:{backgroundColor:"var(--status-error-background)",borderColor:"var(--status-error-border)"},children:[o.jsx("p",{className:"typography-markdown",style:{color:"var(--status-error)"},children:d||r("chat.toolOutputDialog.mermaid.renderFailed")}),o.jsx("button",{type:"button",onClick:()=>{h()},className:"px-3 py-1.5 rounded-lg typography-meta border transition-colors hover:bg-[var(--interactive-hover)]",style:{borderColor:"var(--interactive-border)",color:"var(--surface-foreground)"},children:r("chat.toolOutputDialog.mermaid.retry")})]}),e[63]=d,e[64]=h,e[65]=s,e[66]=r,e[67]=G):G=e[67];let me;e[68]!==z||e[69]!==s?(me=s==="ready"&&o.jsx("div",{ref:w,className:"h-full",children:o.jsx(We,{content:z,variant:"tool",allowMermaidWheelEvents:!0,className:"markdown-mermaid-fullscreen h-full",mermaidControls:_t,enableFileReferences:!1})}),e[68]=z,e[69]=s,e[70]=me):me=e[70];let de;e[71]!==B||e[72]!==G||e[73]!==me?(de=o.jsxs("div",{className:"h-full overflow-hidden",children:[B,G,me]}),e[71]=B,e[72]=G,e[73]=me,e[74]=de):de=e[74];let J;e[75]!==Q||e[76]!==de?(J=o.jsx("div",{className:"relative overflow-hidden",style:Q,children:de}),e[75]=Q,e[76]=de,e[77]=J):J=e[77];let ee;e[78]!==ae||e[79]!==W||e[80]!==q||e[81]!==J?(ee=o.jsxs("div",{className:ae,style:W,onMouseDown:Bt,children:[q,J]}),e[78]=ae,e[79]=W,e[80]=q,e[81]=J,e[82]=ee):ee=e[82];let Z;e[83]!==$||e[84]!==ee?(Z=o.jsx("div",{className:$,children:ee}),e[83]=$,e[84]=ee,e[85]=Z):Z=e[85];let te;if(e[86]!==ie||e[87]!==V||e[88]!==Z){const j=o.jsxs("div",{className:ie,children:[V,Z]});te=Ve.createPortal(j,document.body),e[86]=ie,e[87]=V,e[88]=Z,e[89]=te}else te=e[89];return te},or=i=>{const e=ue.c(48),{popup:t,onOpenChange:a,isMobile:c}=i,{t:r}=Me(),[l,n]=N.useState("unified"),s=Dt();let f;e[0]!==t.open?(f=()=>{t.open&&n("unified")},e[0]=t.open,e[1]=f):f=e[1];let d;if(e[2]!==t.open||e[3]!==t.title?(d=[t.open,t.title],e[2]=t.open,e[3]=t.title,e[4]=d):d=e[4],N.useEffect(f,d),t.image){let p;return e[5]!==c||e[6]!==a||e[7]!==t?(p=o.jsx(Ct,{popup:t,onOpenChange:a,isMobile:c}),e[5]=c,e[6]=a,e[7]=t,e[8]=p):p=e[8],p}if(t.mermaid){let p;return e[9]!==c||e[10]!==a||e[11]!==t?(p=o.jsx(Lt,{popup:t,onOpenChange:a,isMobile:c}),e[9]=c,e[10]=a,e[11]=t,e[12]=p):p=e[12],p}const y=t.open,T=c?"w-[95vw] max-w-[95vw]":"max-w-5xl",C=c?"[&>button]:right-1":"[&>button]:top-2.5 [&>button]:right-4";let _;e[13]!==T||e[14]!==C?(_=pe("overflow-hidden flex flex-col min-h-0 pt-3 pb-4 px-4 gap-1","[&>button]:top-1.5",T,C),e[13]=T,e[14]=C,e[15]=_):_=e[15];let b;e[16]===Symbol.for("react.memo_cache_sentinel")?(b={maxHeight:"90vh"},e[16]=b):b=e[16];let I;e[17]!==t.metadata?(I=t.metadata?.tool?Nt(t.metadata.tool):o.jsx(P,{name:"tools",className:"h-3.5 w-3.5 text-foreground flex-shrink-0"}),e[17]=t.metadata,e[18]=I):I=e[18];let k;e[19]!==t.title?(k=o.jsx("span",{className:"break-words flex-1 leading-tight",children:t.title}),e[19]=t.title,e[20]=k):k=e[20];let v;e[21]!==l||e[22]!==t.isDiff?(v=t.isDiff&&o.jsx(et,{mode:l,onModeChange:n,className:"mr-8 flex-shrink-0"}),e[21]=l,e[22]=t.isDiff,e[23]=v):v=e[23];let w;e[24]!==v||e[25]!==I||e[26]!==k?(w=o.jsx("div",{className:"flex-shrink-0 pb-1",children:o.jsxs("div",{className:"flex items-start gap-2 text-foreground typography-ui-header font-semibold",children:[I,k,v]})}),e[24]=v,e[25]=I,e[26]=k,e[27]=w):w=e[27];let x;e[28]!==s||e[29]!==t.metadata?(x=t.metadata?.input&&typeof t.metadata.input=="object"&&Object.keys(t.metadata.input).length>0&&t.metadata?.tool!=="todowrite"&&t.metadata?.tool!=="todoread"&&t.metadata?.tool!=="apply_patch"?(()=>{const p=t.metadata,A=p.input,D=Y=>{const z=A[Y];return typeof z=="string"?z:typeof z=="number"?String(z):null};return o.jsxs("div",{className:"border-b border-border/20 p-4 -mx-3",children:[o.jsx("div",{className:"typography-markdown font-medium text-muted-foreground mb-2 px-3",children:p.tool==="bash"?"Command:":p.tool==="task"?"Task Details:":"Input:"}),p.tool==="bash"&&D("command")?o.jsx("div",{className:"tool-input-surface bg-transparent rounded-xl border border-border/20 mx-3",children:o.jsx(_e,{language:"bash",code:D("command"),style:Ne.getPopupStyles(),codeStyle:Re.style,wrap:!0})}):p.tool==="task"&&D("prompt")?o.jsxs("div",{className:"tool-input-surface bg-transparent rounded-xl border border-border/20 font-mono whitespace-pre-wrap text-foreground/90 mx-3",style:Ne.getPopupStyles(),children:[D("description")?`Task: ${D("description")}
|
|
13
13
|
`:"",D("subagent_type")?`Agent Type: ${D("subagent_type")}
|
|
14
14
|
`:"",`Instructions:
|
|
15
|
-
${D("prompt")}`]}):p.tool==="write"&&D("content")?o.jsx("div",{className:"tool-input-surface bg-transparent rounded-xl border border-border/20 mx-3",children:o.jsx(Ue,{file:{name:D("filePath")||D("file_path")||"new-file",contents:D("content"),lang:$e(D("filePath")||D("file_path")||"")||void 0},options:{disableFileHeader:!0,overflow:"wrap",theme:s.theme,themeType:s.themeType},className:"block w-full"})}):o.jsx("div",{className:"tool-input-surface bg-transparent rounded-xl border border-border/20 font-mono whitespace-pre-wrap text-foreground/90 mx-3",style:Ne.getPopupStyles(),children:tt(A,p.tool)})]})})():null,e[28]=s,e[29]=t.metadata,e[30]=x):x=e[30];let u;e[31]!==l||e[32]!==c||e[33]!==s||e[34]!==t||e[35]!==r?(u=t.isDiff?o.jsx(Ze,{popup:t,diffViewMode:l,pierreThemeConfig:s}):t.content?o.jsx("div",{className:"p-4",children:(()=>{const p=t.metadata?.tool;return p==="todowrite"||p==="todoread"?it(t.content,{total:r("chat.todo.total"),inProgress:r("chat.todo.inProgress"),pending:r("chat.todo.pending"),completed:r("chat.todo.completed"),cancelled:r("chat.todo.cancelled")})||o.jsx(_e,{language:"json",code:t.content,style:Ne.getPopupContainerStyles(),codeStyle:Re.style,wrap:!0}):p==="list"?ot(t.content)||o.jsx("pre",{className:"typography-markdown bg-muted/30 p-2 rounded-xl border border-border/20 font-mono whitespace-pre-wrap",children:t.content}):p==="grep"?rt(t.content,c)||o.jsx("pre",{className:"typography-code bg-muted/30 p-2 rounded-xl border border-border/20 font-mono whitespace-pre-wrap",children:t.content}):p==="glob"?nt(t.content,c)||o.jsx("pre",{className:"typography-code bg-muted/30 p-2 rounded-xl border border-border/20 font-mono whitespace-pre-wrap",children:t.content}):p==="task"||p==="reasoning"?o.jsx("div",{className:p==="reasoning"?"text-muted-foreground/70":"",children:o.jsx(We,{content:t.content,variant:"tool"})}):p==="web-search"||p==="websearch"||p==="search_web"?st(t.content)||o.jsx(_e,{language:"text",code:t.content,style:Ne.getPopupContainerStyles(),codeStyle:Re.style,wrap:!0}):p==="read"?o.jsx(Ke,{popup:t,pierreThemeConfig:s}):(t.content?at(t.content):{isJson:!1}).isJson?o.jsx(ut,{jsonString:t.content,initiallyExpandedDepth:3,maxHeight:"70vh"}):o.jsx(_e,{language:t.language||"text",code:t.content,style:Ne.getPopupContainerStyles(),codeStyle:Re.style,wrap:!0})})()}):o.jsxs("div",{className:"p-8 text-muted-foreground typography-ui-header",children:[o.jsx("div",{className:"mb-2",children:r("chat.toolOutputDialog.commandCompleted")}),o.jsx("div",{className:"typography-meta",children:r("chat.toolOutputDialog.noOutputProduced")})]}),e[31]=l,e[32]=c,e[33]=s,e[34]=t,e[35]=r,e[36]=u):u=e[36];let h;e[37]!==x||e[38]!==u?(h=o.jsx("div",{className:"flex-1 min-h-0 rounded-xl border border-border/30 bg-muted/10 overflow-hidden",children:o.jsxs("div",{className:"tool-output-surface h-full max-h-[75vh] overflow-y-auto px-3 pr-4",children:[x,u]})}),e[37]=x,e[38]=u,e[39]=h):h=e[39];let S;e[40]!==w||e[41]!==h||e[42]!==_?(S=o.jsxs(mt,{className:_,style:
|
|
15
|
+
${D("prompt")}`]}):p.tool==="write"&&D("content")?o.jsx("div",{className:"tool-input-surface bg-transparent rounded-xl border border-border/20 mx-3",children:o.jsx(Ue,{file:{name:D("filePath")||D("file_path")||"new-file",contents:D("content"),lang:$e(D("filePath")||D("file_path")||"")||void 0},options:{disableFileHeader:!0,overflow:"wrap",theme:s.theme,themeType:s.themeType},className:"block w-full"})}):o.jsx("div",{className:"tool-input-surface bg-transparent rounded-xl border border-border/20 font-mono whitespace-pre-wrap text-foreground/90 mx-3",style:Ne.getPopupStyles(),children:tt(A,p.tool)})]})})():null,e[28]=s,e[29]=t.metadata,e[30]=x):x=e[30];let u;e[31]!==l||e[32]!==c||e[33]!==s||e[34]!==t||e[35]!==r?(u=t.isDiff?o.jsx(Ze,{popup:t,diffViewMode:l,pierreThemeConfig:s}):t.content?o.jsx("div",{className:"p-4",children:(()=>{const p=t.metadata?.tool;return p==="todowrite"||p==="todoread"?it(t.content,{total:r("chat.todo.total"),inProgress:r("chat.todo.inProgress"),pending:r("chat.todo.pending"),completed:r("chat.todo.completed"),cancelled:r("chat.todo.cancelled")})||o.jsx(_e,{language:"json",code:t.content,style:Ne.getPopupContainerStyles(),codeStyle:Re.style,wrap:!0}):p==="list"?ot(t.content)||o.jsx("pre",{className:"typography-markdown bg-muted/30 p-2 rounded-xl border border-border/20 font-mono whitespace-pre-wrap",children:t.content}):p==="grep"?rt(t.content,c)||o.jsx("pre",{className:"typography-code bg-muted/30 p-2 rounded-xl border border-border/20 font-mono whitespace-pre-wrap",children:t.content}):p==="glob"?nt(t.content,c)||o.jsx("pre",{className:"typography-code bg-muted/30 p-2 rounded-xl border border-border/20 font-mono whitespace-pre-wrap",children:t.content}):p==="task"||p==="reasoning"?o.jsx("div",{className:p==="reasoning"?"text-muted-foreground/70":"",children:o.jsx(We,{content:t.content,variant:"tool"})}):p==="web-search"||p==="websearch"||p==="search_web"?st(t.content)||o.jsx(_e,{language:"text",code:t.content,style:Ne.getPopupContainerStyles(),codeStyle:Re.style,wrap:!0}):p==="read"?o.jsx(Ke,{popup:t,pierreThemeConfig:s}):(t.content?at(t.content):{isJson:!1}).isJson?o.jsx(ut,{jsonString:t.content,initiallyExpandedDepth:3,maxHeight:"70vh"}):o.jsx(_e,{language:t.language||"text",code:t.content,style:Ne.getPopupContainerStyles(),codeStyle:Re.style,wrap:!0})})()}):o.jsxs("div",{className:"p-8 text-muted-foreground typography-ui-header",children:[o.jsx("div",{className:"mb-2",children:r("chat.toolOutputDialog.commandCompleted")}),o.jsx("div",{className:"typography-meta",children:r("chat.toolOutputDialog.noOutputProduced")})]}),e[31]=l,e[32]=c,e[33]=s,e[34]=t,e[35]=r,e[36]=u):u=e[36];let h;e[37]!==x||e[38]!==u?(h=o.jsx("div",{className:"flex-1 min-h-0 rounded-xl border border-border/30 bg-muted/10 overflow-hidden",children:o.jsxs("div",{className:"tool-output-surface h-full max-h-[75vh] overflow-y-auto px-3 pr-4",children:[x,u]})}),e[37]=x,e[38]=u,e[39]=h):h=e[39];let S;e[40]!==w||e[41]!==h||e[42]!==_?(S=o.jsxs(mt,{className:_,style:b,children:[w,h]}),e[40]=w,e[41]=h,e[42]=_,e[43]=S):S=e[43];let L;return e[44]!==a||e[45]!==t.open||e[46]!==S?(L=o.jsx(dt,{open:y,onOpenChange:a,children:S}),e[44]=a,e[45]=t.open,e[46]=S,e[47]=L):L=e[47],L};function Et(i){return!!i?.url}function Ot(i){return i.stopPropagation()}function At(i){return i.stopPropagation()}function Ft(i){return i.text}function zt(i){return i.lineNumber!==null}function Ht(i){if(!i||/[\0\r\n]/.test(i))return!1;const e=i.replace(/\\/g,"/");return e.split("/").filter(Boolean).includes("..")?!1:e.startsWith("/")?!0:/^[A-Za-z]:\//.test(e)}function Vt(i,e){const t=Number.parseInt(e,16);return Number.isFinite(t)?String.fromCharCode(t):`%${e}`}function $t(i){return i.replace(/%([0-9A-Fa-f]{2})/g,Vt)}function Wt(i){const e=i.trim();if(!e.toLowerCase().startsWith("file://"))return null;const t=Ht,a=$t;if(typeof URL.canParse=="function"?URL.canParse(e):!1){let n=a(new URL(e).pathname||"");return/^\/[A-Za-z]:\//.test(n)&&(n=n.slice(1)),t(n)?n:null}const r=e.replace(/^file:\/\//i,""),l=a(r);return t(l)?l:t(r)?r:null}function Ut(i){return i.ok?i.text():Promise.reject(Ie("chat.toolOutputDialog.mermaid.readFileFailedWithStatus",{status:i.status}))}function qt(i){return i.ok?i.text():Promise.reject(Ie("chat.toolOutputDialog.mermaid.loadFailedWithStatus",{status:i.status}))}function Bt(i){return i.stopPropagation()}export{or as default};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import{R as D,f as x,j as b}from"./vendor-react-BUCujlKS.js";import{P as E}from"./PatchDiff-CAduNjfZ.js";import{ea as P,eb as k,hN as _}from"./useAppFontEffects-CuJPKtI1.js";import{ensurePierreThemeRegistered as S}from"./appThemeRegistry-BK0dHKa6.js";import"./vendor-scheduler-7OC5HNn7.js";import"./web-components-PttKBrhi.js";import"./computeVirtualFileMetrics-BKZA43vN.js";import"./vendor-vite-runtime-DD1OZmLC.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"./Virtualizer-CZlLSacm.js";import"./VirtualizedFileDiff-Iehm4iMH.js";import"./isDiffPlainText-DaB2u_Kv.js";import"./vendor-diff-C3JhlQdm.js";import"./index-DlFbCkEy.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-zod-CK21ihK-.js";import"./vendor-opencode-sdk-BJ73u-bH.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-base-ui-BeMD8X_w.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"./contextPanelEmbeddedChat-D2PM_pEv.js";import"./vendor-class-variance-authority-5VPnzWs2.js";import"./vendor-clsx-B-dksMZM.js";import"./vendor-dnd-kit-core-BZknOX2w.js";import"./vendor-dnd-kit-utilities-B_MdXhJC.js";import"./vendor-dnd-kit-accessibility-BHxJPORy.js";import"./vendor-dnd-kit-sortable-CsEagZ81.js";import"./vendor-framer-motion-livSKyyV.js";import"./vendor-motion-dom-D_o3BTI3.js";import"./vendor-motion-utils-BGh8QBgx.js";import"./vendor-tanstack-react-virtual-g05Cx3z9.js";import"./vendor-tanstack-virtual-core-Dubg10g5.js";import"./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-9ZzoH0o0.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-gg7YLRW7.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";import"./registerCustomTheme-BBXUCRnG.js";const C=`
|
|
2
|
+
[data-diff-header],
|
|
3
|
+
[data-diff] {
|
|
4
|
+
[data-separator] {
|
|
5
|
+
height: 24px !important;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
`,F={hunkLineCount:50,lineHeight:24,diffHeaderHeight:44,hunkSeparatorHeight:24,spacing:0},I=()=>{const t=x.c(18),e=P();let i;t[0]===Symbol.for("react.memo_cache_sentinel")?(i=k(!1),t[0]=i):i=t[0];const h=i;let s;t[1]===Symbol.for("react.memo_cache_sentinel")?(s=k(!0),t[1]=s):s=t[1];const n=s;let o;t[2]!==e?.availableThemes?(o=()=>e?.availableThemes??[h,n],t[2]=e?.availableThemes,t[3]=o):o=t[3],e?.availableThemes;let p;t[4]!==o?(p=o(),t[4]=o,t[5]=p):p=t[5];const m=p,l=e?.lightThemeId??h.metadata.id,d=e?.darkThemeId??n.metadata.id;let r;t[6]!==m||t[7]!==l?(r=m.find(y=>y.metadata.id===l)??h,t[6]=m,t[7]=l,t[8]=r):r=t[8];const a=r;let c;t[9]!==m||t[10]!==d?(c=m.find(y=>y.metadata.id===d)??n,t[9]=m,t[10]=d,t[11]=c):c=t[11];const T=c;S(a),S(T);const v=e?.currentTheme.metadata.variant??"light";let f;t[12]!==T.metadata.id||t[13]!==a.metadata.id?(f={light:a.metadata.id,dark:T.metadata.id},t[12]=T.metadata.id,t[13]=a.metadata.id,t[14]=f):f=t[14];const g=v==="dark"?"dark":"light";let u;return t[15]!==f||t[16]!==g?(u={pierreTheme:f,pierreThemeType:g},t[15]=f,t[16]=g,t[17]=u):u=t[17],u};class w extends D.Component{state={hasError:!1};static getDerivedStateFromError(){return{hasError:!0}}componentDidUpdate(e){e.resetKey!==this.props.resetKey&&this.state.hasError&&this.setState({hasError:!1})}componentDidCatch(e){}render(){return this.state.hasError?this.props.fallback:this.props.children}}const L=D.memo(t=>{const e=x.c(13),{diff:i,diffViewMode:h}=t,{pierreTheme:s,pierreThemeType:n}=I(),o=h==="side-by-side"?"split":"unified";let p;e[0]!==s||e[1]!==n||e[2]!==o?(p={diffStyle:o,diffIndicators:"none",hunkSeparators:"line-info-basic",lineDiffType:"none",disableFileHeader:!0,maxLineDiffLength:1e3,expansionLineCount:20,overflow:"wrap",theme:s,themeType:n,unsafeCSS:C},e[0]=s,e[1]=n,e[2]=o,e[3]=p):p=e[3];const m=p;let l;e[4]!==i?(l=b.jsx(_,{diff:i}),e[4]=i,e[5]=l):l=e[5];const d=l;let r;e[6]!==i||e[7]!==m?(r=b.jsx(E,{patch:i,metrics:F,options:m,className:"block w-full"}),e[6]=i,e[7]=m,e[8]=r):r=e[8];let a;return e[9]!==i||e[10]!==d||e[11]!==r?(a=b.jsx("div",{className:"typography-code px-1 pb-1 pt-0",children:b.jsx(w,{resetKey:i,fallback:d,children:r})}),e[9]=i,e[10]=d,e[11]=r,e[12]=a):a=e[12],a});L.displayName="ToolPartDiffPreview";export{L as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{b as Te,c as Qe,g as et,s as tt,d as Xe,e as Fe,f as it,h as nt,i as Ye,j as Ne,k as he,l as st,R as rt,I as ot,p as Ue,m as at,n as lt,o as ht,q as Pe,S as dt,r as ut,w as ft,t as Oe,u as ct,v as pt,x as Ae,y as gt,z as mt,A as Ct,B as St,C as vt,a as yt,F as Ht}from"./web-components-
|
|
1
|
+
import{b as Te,c as Qe,g as et,s as tt,d as Xe,e as Fe,f as it,h as nt,i as Ye,j as Ne,k as he,l as st,R as rt,I as ot,p as Ue,m as at,n as lt,o as ht,q as Pe,S as dt,r as ut,w as ft,t as Oe,u as ct,v as pt,x as Ae,y as gt,z as mt,A as Ct,B as St,C as vt,a as yt,F as Ht}from"./web-components-PttKBrhi.js";import{j as w,m as Se,k as Lt,n as Tt,d as At,i as ke,o as U,q as ce,s as kt,b as Rt,f as Be,t as Y,u as Ze,w as Re}from"./computeVirtualFileMetrics-BKZA43vN.js";import{h as xt,a as se,i as be,b as re,r as Dt,g as Et,c as ve,d as we,e as oe,f as Me,j as ae}from"./isDiffPlainText-DaB2u_Kv.js";import{hf as bt,hg as wt,hh as Ie,fq as _,hi as Mt,hj as It,hk as Ve,hl as zt,h5 as Ft,h6 as Nt,h7 as Ut,h8 as Pt}from"./useAppFontEffects-CuJPKtI1.js";import{c as Ot}from"./vendor-diff-C3JhlQdm.js";import{t as le}from"./vendor-hast-util-to-html-BKBhbTDb.js";function Z(e,t,i,n=!1){const s=bt(Ot(e.name,t.name,e.contents,t.contents,e.header,t.header,i),{cacheKey:(()=>{if(e.cacheKey!=null&&t.cacheKey!=null)return`${e.cacheKey}:${t.cacheKey}`})(),oldFile:e,newFile:t,throwOnError:n});if(s==null)throw new Error("parseDiffFrom: FileInvalid diff -- probably need to fix something -- if the files are the same maybe?");return t.lang!=null&&(s.lang=t.lang),s}var Bt=class{isDeletionsScrolling=!1;isAdditionsScrolling=!1;timeoutId=-1;codeDeletions;codeAdditions;enabled=!1;cleanUp(){this.enabled&&(this.codeDeletions?.removeEventListener("scroll",this.handleDeletionsScroll),this.codeAdditions?.removeEventListener("scroll",this.handleAdditionsScroll),clearTimeout(this.timeoutId),this.codeDeletions=void 0,this.codeAdditions=void 0,this.enabled=!1)}setup(e,t,i){if(t==null||i==null)for(const n of e.children??[])n instanceof HTMLElement&&("deletions"in n.dataset?t=n:"additions"in n.dataset&&(i=n));if(i==null||t==null){this.cleanUp();return}this.codeDeletions!==t&&(this.codeDeletions?.removeEventListener("scroll",this.handleDeletionsScroll),this.codeDeletions=t,t.addEventListener("scroll",this.handleDeletionsScroll,{passive:!0})),this.codeAdditions!==i&&(this.codeAdditions?.removeEventListener("scroll",this.handleAdditionsScroll),this.codeAdditions=i,i.addEventListener("scroll",this.handleAdditionsScroll,{passive:!0})),this.enabled=!0}handleDeletionsScroll=()=>{this.isAdditionsScrolling||(this.isDeletionsScrolling=!0,clearTimeout(this.timeoutId),this.timeoutId=setTimeout(()=>{this.isDeletionsScrolling=!1},300),this.codeAdditions?.scrollTo({left:this.codeDeletions?.scrollLeft}))};handleAdditionsScroll=()=>{this.isDeletionsScrolling||(this.isAdditionsScrolling=!0,clearTimeout(this.timeoutId),this.timeoutId=setTimeout(()=>{this.isAdditionsScrolling=!1},300),this.codeDeletions?.scrollTo({left:this.codeAdditions?.scrollLeft}))}};function pe(e){return w({tagName:"div",properties:{"data-content-buffer":"","data-buffer-size":e,style:`grid-row: span ${e};min-height:calc(${e} * 1lh)`}})}function ge(e){return w({tagName:"div",children:[w({tagName:"span",children:[Se("No newline at end of file")]})],properties:{"data-no-newline":"","data-line-type":e,"data-column-content":""}})}function xe(e){return w({tagName:"div",children:[Lt({name:e==="both"?"diffs-icon-expand-all":"diffs-icon-expand",properties:{"data-icon":""}})],properties:{role:"button","data-expand-button":"","data-expand-both":e==="both"?"":void 0,"data-expand-up":e==="up"?"":void 0,"data-expand-down":e==="down"?"":void 0}})}function K({type:e,content:t,expandIndex:i,chunked:n=!1,slotName:s,isFirstHunk:r,isLastHunk:o}){let a=0;const l=[];if(e==="metadata"&&t!=null&&l.push(w({tagName:"div",children:[Se(t)],properties:{"data-separator-wrapper":""}})),(e==="line-info"||e==="line-info-basic")&&t!=null){const u=[];i!=null&&(n?(r||(u.push(xe("up")),a++),o||(u.push(xe("down")),a++)):(u.push(xe(!r&&!o?"both":r?"down":"up")),a++)),u.push(w({tagName:"div",children:[w({tagName:"span",children:[Se(t)],properties:{"data-unmodified-lines":""}})],properties:{"data-separator-content":""}})),n&&i!=null&&u.push(w({tagName:"div",children:[Se("Expand all")],properties:{role:"button","data-expand-button":"","data-expand-all-button":""}})),l.push(w({tagName:"div",children:u,properties:{"data-separator-wrapper":"","data-separator-multi-button":a>1?"":void 0}}))}return e==="custom"&&s!=null&&l.push(w({tagName:"slot",properties:{name:s}})),w({tagName:"div",children:l,properties:{"data-separator":l.length===0?"simple":e,"data-expand-index":i,"data-separator-first":r?"":void 0,"data-separator-last":o?"":void 0}})}function Vt(e,t){return`hunk-separator-${e}-${t}`}function Gt(e){const t=e.at(-1);return t==null?0:Math.max(t.additionStart+t.additionCount,t.deletionStart+t.deletionCount)}function Wt(e){return e.startingLine===0&&e.totalLines===1/0&&e.bufferBefore===0&&e.bufferAfter===0}function $t(e){return e!==""?e.split(wt):[]}function G(e,t){const i=Z({name:e.prevName??e.name,contents:e.deletionLines.join("")},{name:e.name,contents:e.additionLines.join(""),lang:e.lang},t);return{hunks:i.hunks,splitLineCount:i.splitLineCount,unifiedLineCount:i.unifiedLineCount,additionLines:i.additionLines,deletionLines:i.deletionLines,type:i.type}}function _t(e,t){const i=e.deletionLines.join(""),n=i===`
|
|
2
2
|
`?`
|
|
3
3
|
`:`
|
|
4
4
|
`,s=Z({name:e.prevName??e.name,contents:i},{name:e.name,contents:n,lang:e.lang},t);return{hunks:s.hunks,splitLineCount:s.splitLineCount,unifiedLineCount:s.unifiedLineCount,additionLines:[""],deletionLines:s.deletionLines,type:s.type}}function jt(e,t,i){if(e.isPartial||e.deletionLines.length!==e.additionLines.length)return B(e,G(e,i));const n=Array.from(t);if(n.length===0)return B(e,{hunks:e.hunks,splitLineCount:e.splitLineCount,unifiedLineCount:e.unifiedLineCount,type:e.type});for(const r of n){const o=e.additionLines[r],a=e.deletionLines[r];if(o==null||a==null||Ie(o)===Ie(a))return B(e,G(e,i))}const s=qt(e,n);if(s.size===0)return B(e,G(e,i));for(const r of s)if(!Xt(e,r,i))return B(e,G(e,i));return Qt(e),xt(e)?B(e,G(e,i)):B(e,{hunks:e.hunks,splitLineCount:e.splitLineCount,unifiedLineCount:e.unifiedLineCount,type:e.type})}function B(e,t){return Object.assign(e,t),t}function qt(e,t){const i=new Set;for(const n of t){const s=Kt(e,n);if(s==null)return new Set;i.add(s)}return i}function Kt(e,t){for(const[i,n]of e.hunks.entries()){const s=n.additionLineIndex+n.additionCount;if(t>=n.additionLineIndex&&t<s)return i}}function Xt(e,t,i){const n=e.hunks[t];if(n==null)return!1;const s=e.deletionLines.slice(n.deletionLineIndex,n.deletionLineIndex+n.deletionCount),r=e.additionLines.slice(n.additionLineIndex,n.additionLineIndex+n.additionCount),o=Z({name:e.prevName??e.name,contents:s.join("")},{name:e.name,contents:r.join(""),lang:e.lang},{...i,context:0}),a=o.hunks[0];return a==null||o.hunks.length!==1?!1:(Zt(n,a),Yt(e,t),!0)}function Yt(e,t){const i=e.hunks[t];if(i==null)return;if(t!==e.hunks.length-1){i.noEOFCRAdditions=!1,i.noEOFCRDeletions=!1;return}const n=e.additionLines.at(-1),s=e.deletionLines.at(-1);i.noEOFCRAdditions=n!=null&&n!==""&&!n.endsWith(`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as m,j as s,f as B}from"./vendor-react-BUCujlKS.js";import{f as K,l as dt,I as N,
|
|
1
|
+
import{r as m,j as s,f as B}from"./vendor-react-BUCujlKS.js";import{f as K,l as dt,I as N,du as pt,B as W,h as G,ao as Bt,a7 as ht,a8 as mt,a9 as gt,ar as $t,ad as Gt,ae as Ft,af as Ut,ai as Ie,W as _t,av as nt,bO as ce,bP as qt,hO as Kt,ag as Vt,b6 as at,b3 as it,b5 as lt,fL as ct,bN as Te,fK as ue,b4 as Xt,o as Jt}from"./useAppFontEffects-CuJPKtI1.js";import{u as A,d as Qt,h as Yt,W as Zt}from"./main-B7qTsd_w.js";import{r as ft,a8 as es,u as de}from"./index-DlFbCkEy.js";import{P as ts}from"./PierreDiffViewer-CTIb1GYD.js";import{f as ss}from"./patchFileDiff-No55fDiD.js";import{c as rs,b as os}from"./runtimeEndpointReset-DfJIWwwo.js";import"./vendor-scheduler-7OC5HNn7.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-vite-runtime-DD1OZmLC.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-base-ui-BeMD8X_w.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"./contextPanelEmbeddedChat-D2PM_pEv.js";import"./vendor-class-variance-authority-5VPnzWs2.js";import"./vendor-clsx-B-dksMZM.js";import"./vendor-dnd-kit-core-BZknOX2w.js";import"./vendor-dnd-kit-utilities-B_MdXhJC.js";import"./vendor-dnd-kit-accessibility-BHxJPORy.js";import"./vendor-dnd-kit-sortable-CsEagZ81.js";import"./vendor-framer-motion-livSKyyV.js";import"./vendor-motion-dom-D_o3BTI3.js";import"./vendor-motion-utils-BGh8QBgx.js";import"./vendor-tanstack-react-virtual-g05Cx3z9.js";import"./vendor-tanstack-virtual-core-Dubg10g5.js";import"./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-9ZzoH0o0.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-gg7YLRW7.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";import"./vendor-zod-CK21ihK-.js";import"./useRootScrollLock-DRGAe8PN.js";import"./scheduledTasksApi-DuhdyYEa.js";import"./vendor-cron-parser-CUcP7OfX.js";import"./vendor-luxon-BZ0puJYg.js";import"./vendor-opencode-sdk-BJ73u-bH.js";import"./web-components-PttKBrhi.js";import"./computeVirtualFileMetrics-BKZA43vN.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"./VirtualizedFileDiff-Iehm4iMH.js";import"./isDiffPlainText-DaB2u_Kv.js";import"./vendor-diff-C3JhlQdm.js";import"./Virtualizer-D_a8gKmg.js";import"./useInlineCommentController-DD7_7OP_.js";import"./appThemeRegistry-BK0dHKa6.js";import"./registerCustomTheme-BBXUCRnG.js";const ns=n=>{if(!n?.walkthrough)return null;const t=new Map(n.hunks.map(a=>[a.id,a])),e=new Set,r=[],i=[];for(const[a,p]of n.walkthrough.chapters.entries()){const l=[];for(const g of p.stops){const h=[],u=[];for(const d of g.hunkIds){const v=t.get(d);v?(h.push(v),e.add(d)):u.push(d)}const f={stop:g,chapter:p,chapterIndex:a,position:r.length+1,hunks:h,missingHunkIds:u,isStale:u.length>0};r.push(f),l.push(f)}i.push({chapter:p,stops:l})}return{walkthrough:n.walkthrough,stops:r,chapters:i,uncoveredHunks:n.hunks.filter(a=>!e.has(a.id)),staleStopCount:r.filter(a=>a.isStale).length,isStale:r.some(a=>a.isStale)}},as=n=>{const t=new Map;for(const e of n){const r=t.get(e.path);if(r){r.added+=e.added,r.deleted+=e.deleted;continue}t.set(e.path,{path:e.path,added:e.added,deleted:e.deleted})}return[...t.values()]},xt=n=>{const t=[];for(const e of n){const r=t.at(-1);if(r&&r.path===e.path){r.hunks.push(e);continue}t.push({path:e.path,hunks:[e]})}return t},is=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 r=t.slice(0,e),i=n.map(a=>{const p=a.patch.indexOf(`
|
|
3
3
|
@@`);return p===-1?"":a.patch.slice(p+1)});return`${r}
|
|
4
|
-
${i.join("")}`},ls=n=>n?`${n.providerID}/${n.modelID}`:"",cs=({reason:n,model:t,requiredChars:e,availableChars:r,onRetry:i})=>{const{t:a}=K(),p=dt(k=>k.modelsMetadata),[l,g]=m.useState(void 0),[h,u]=m.useState(!1),f=n==="context-too-small"||n==="structured-output-unsupported"||n==="output-exhausted";m.useEffect(()=>{if(!f||l!==void 0)return;let k=!1;return(async()=>{try{const x=await ft("/api/small-model",{method:"GET",headers:{Accept:"application/json"}});if(!x.ok)return;const C=await x.json().catch(()=>null);!k&&Array.isArray(C?.authenticatedProviders)&&g(C.authenticatedProviders.filter(I=>typeof I=="string"))}catch{}})(),()=>{k=!0}},[f,l]);const d=m.useCallback(async(k,x)=>{if(!k||!x||h)return;const C=`${k}/${x}`;u(!0);try{await es({walkthroughModelOverride:C}),i()}catch(I){console.warn("Failed to save small model override:",I)}finally{u(!1)}},[i,h]),v=m.useCallback((k,x)=>p.get(`${k}/${x}`)?.structured_output!==!1,[p]),b=ls(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((r??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(N,{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(pt,{providerId:t?.providerID??"",modelId:t?.modelID??"",onChange:(k,x)=>{d(k,x)},allowedProviderIds:l??[],isModelAllowed:v})]}),(n==="empty-diff"||n==="only-generated"||n==="server-unsupported")&&s.jsx(W,{type:"button",variant:"outline",size:"sm",onClick:i,children:a("walkthrough.action.refresh")})]})},us=[{labelKey:"walkthrough.stage.collecting"},{labelKey:"walkthrough.stage.asking"},{labelKey:"walkthrough.stage.assembling"}],ds=n=>{const t=B.c(6),{progress:e}=n,{t:r}=K(),{completedCount:i,activeIndex:a}=e;let p;t[0]!==a||t[1]!==i||t[2]!==r?(p=us.map((g,h)=>{const u=h<i,f=a===h;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:u?s.jsx(N,{name:"check",className:"size-3.5 text-status-success"}):f?s.jsx(N,{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:G("typography-meta",f?"text-foreground":u?"text-muted-foreground":"text-muted-foreground/60"),children:r(g.labelKey)})]},g.labelKey)}),t[0]=a,t[1]=i,t[2]=r,t[3]=p):p=t[3];let l;return t[4]!==p?(l=s.jsx("ul",{className:"flex flex-col gap-2 text-left",children:p}),t[4]=p,t[5]=l):l=t[5],l},ee=["collecting","asking","assembling"],Ee=450,ps=n=>n==="retrying"?ee.indexOf("asking"):n?ee.indexOf(n):-1,hs=(n,t)=>Math.min(n+1,t),ms=(n,t)=>{const e=B.c(17),[r,i]=m.useState(-1),a=m.useRef(0);let p;e[0]!==t||e[1]!==r||e[2]!==n?(p=t?Math.max(ps(n),0):r<0?-1:ee.length,e[0]=t,e[1]=r,e[2]=n,e[3]=p):p=e[3];const l=p;let g,h;e[4]!==t||e[5]!==r||e[6]!==l?(g=()=>{if(l<=r){l<r&&t&&(i(l),a.current=Date.now());return}const k=Date.now()-a.current,x=()=>{a.current=Date.now(),i(I=>hs(I,l))};if(r<0||k>=Ee){x();return}const C=setTimeout(x,Ee-k);return()=>clearTimeout(C)},h=[t,r,l],e[4]=t,e[5]=r,e[6]=l,e[7]=g,e[8]=h):(g=e[7],h=e[8]),m.useEffect(g,h);let u,f;e[9]!==t||e[10]!==r?(u=()=>{if(t||r<ee.length)return;const k=setTimeout(()=>i(-1),Ee);return()=>clearTimeout(k)},f=[t,r],e[9]=t,e[10]=r,e[11]=u,e[12]=f):(u=e[11],f=e[12]),m.useEffect(u,f);const d=r>=ee.length,v=Math.max(0,Math.min(r,ee.length)),b=d||r<0?null:r,w=!t&&r>=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},kt=m.memo(function(t){const e=B.c(11),{path:r,hunks:i,renderSideBySide:a,wrapLines:p}=t;let l;if(e[0]!==i||e[1]!==r){const f=is(i);l=f?ss(r,f):void 0,e[0]=i,e[1]=r,e[2]=l}else l=e[2];const g=l;if(!g)return null;let h;e[3]!==r?(h=Bt(r)||"",e[3]=r,e[4]=h):h=e[4];let u;return e[5]!==g||e[6]!==r||e[7]!==a||e[8]!==h||e[9]!==p?(u=s.jsx(ts,{original:"",modified:"",fileDiff:g,language:h,fileName:r,renderSideBySide:a,wrapLines:p,layout:"inline"}),e[5]=g,e[6]=r,e[7]=a,e[8]=h,e[9]=p,e[10]=u):u=e[10],u}),Ae=n=>`walkthrough-stop-${n}`,gs={critical:"border border-[var(--interactive-border)] font-medium text-foreground",normal:"bg-surface-muted text-muted-foreground",context:"bg-surface-muted text-muted-foreground"},fs=n=>{const t=B.c(22),{stopView:e}=n,{t:r}=K(),{stop:i}=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 p;t[2]!==i.title?(p=s.jsx("h3",{className:"typography-ui-label font-semibold text-foreground",children:i.title}),t[2]=i.title,t[3]=p):p=t[3];let l;t[4]!==i.importance||t[5]!==r?(l=i.importance!=="normal"&&s.jsxs(ht,{children:[s.jsx(mt,{className:G("typography-micro flex h-5 items-center rounded px-1.5 leading-none",gs[i.importance]),children:i.importance==="critical"?r("walkthrough.importance.critical"):r("walkthrough.importance.context")}),s.jsx(gt,{className:"max-w-64",children:s.jsx("p",{className:"typography-micro leading-tight",children:i.importance==="critical"?r("walkthrough.importance.criticalHint"):r("walkthrough.importance.contextHint")})})]}),t[4]=i.importance,t[5]=r,t[6]=l):l=t[6];let g;t[7]!==a||t[8]!==p||t[9]!==l?(g=s.jsxs("div",{className:"flex items-center gap-2",children:[a,p,l]}),t[7]=a,t[8]=p,t[9]=l,t[10]=g):g=t[10];let h;t[11]!==i.prose?(h=s.jsx("p",{className:"typography-body text-muted-foreground",children:i.prose}),t[11]=i.prose,t[12]=h):h=t[12];let u;t[13]!==e.hunks||t[14]!==e.isStale||t[15]!==e.missingHunkIds||t[16]!==r?(u=e.isStale&&s.jsxs("p",{className:"typography-meta flex items-center gap-1.5 text-status-warning",children:[s.jsx(N,{name:"error-warning",className:"size-3.5 shrink-0"}),e.hunks.length===0?r("walkthrough.stop.staleAll"):r("walkthrough.stop.stalePartial",{count:e.missingHunkIds.length})]}),t[13]=e.hunks,t[14]=e.isStale,t[15]=e.missingHunkIds,t[16]=r,t[17]=u):u=t[17];let f;return t[18]!==g||t[19]!==h||t[20]!==u?(f=s.jsxs("header",{className:"flex flex-col gap-2 px-4 pt-5 pb-3",children:[g,h,u]}),t[18]=g,t[19]=h,t[20]=u,t[21]=f):f=t[21],f},bt=n=>{const t=B.c(2),{path:e}=n;let r;return t[0]!==e?(r=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($t,{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]=r):r=t[1],r},xs=n=>{const t=B.c(11),{hunks:e,renderSideBySide:r,wrapLines:i}=n;let a;t[0]!==e?(a=xt(e),t[0]=e,t[1]=a):a=t[1];const p=a;let l;if(t[2]!==r||t[3]!==p||t[4]!==i){let h;t[6]!==r||t[7]!==i?(h=(u,f)=>s.jsxs("div",{children:[s.jsx(bt,{path:u.path}),s.jsx(kt,{path:u.path,hunks:u.hunks,renderSideBySide:r,wrapLines:i})]},`${u.path}-${f}`),t[6]=r,t[7]=i,t[8]=h):h=t[8],l=p.map(h),t[2]=r,t[3]=p,t[4]=i,t[5]=l}else l=t[5];let g;return t[9]!==l?(g=s.jsx(s.Fragment,{children:l}),t[9]=l,t[10]=g):g=t[10],g},ks=m.memo(function(t){const e=B.c(35),{view:r,activeStopId:i,scrollToStopId:a,onActiveStopChange:p,onScrollHandled:l,renderSideBySide:g,wrapLines:h}=t,{t:u}=K(),f=m.useRef(null),[d,v]=m.useState(!1),b=m.useRef(null),w=m.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]),m.useEffect(y,k);let x,C;e[2]!==l||e[3]!==a?(x=()=>{if(!a)return;const M=document.getElementById(Ae(a));M&&(b.current=a,M.scrollIntoView({behavior:"auto",block:"start"}),w.current!==null&&window.clearTimeout(w.current),w.current=window.setTimeout(()=>{b.current=null,w.current=null},250)),l()},C=[a,l],e[2]=l,e[3]=a,e[4]=x,e[5]=C):(x=e[4],C=e[5]),m.useEffect(x,C);let I;e[6]!==p?(I=M=>{const T=M.filter(bs).sort(ws)[0];if(!T)return;const F=T.target.getAttribute("data-stop-id");if(!F)return;const U=b.current;if(U){F===U&&(b.current=null);return}p(F)},e[6]=p,e[7]=I):I=e[7];const V=I;let z,X;e[8]!==V||e[9]!==r.stops?(z=()=>{const M=f.current;if(!M)return;const T=new IntersectionObserver(V,{root:M,rootMargin:"0px 0px -70% 0px",threshold:0});for(const F of r.stops){const U=document.getElementById(Ae(F.stop.id));U&&T.observe(U)}return()=>T.disconnect()},X=[V,r.stops],e[8]=V,e[9]=r.stops,e[10]=z,e[11]=X):(z=e[10],X=e[11]),m.useEffect(z,X);let H;e[12]!==r.uncoveredHunks?(H=xt(r.uncoveredHunks),e[12]=r.uncoveredHunks,e[13]=H):H=e[13];const J=H;let $;if(e[14]!==i||e[15]!==g||e[16]!==u||e[17]!==r.stops||e[18]!==h){let M;e[20]!==i||e[21]!==g||e[22]!==u||e[23]!==h?(M=T=>s.jsxs("section",{id:Ae(T.stop.id),"data-stop-id":T.stop.id,className:G("border-b border-border/60",i===T.stop.id&&"bg-interactive-selection/5"),children:[s.jsx(fs,{stopView:T}),T.hunks.length>0?s.jsx(xs,{hunks:T.hunks,renderSideBySide:g,wrapLines:h}):s.jsx("p",{className:"typography-meta px-4 pb-4 text-muted-foreground",children:u("walkthrough.stop.noCode")})]},T.stop.id),e[20]=i,e[21]=g,e[22]=u,e[23]=h,e[24]=M):M=e[24],$=r.stops.map(M),e[14]=i,e[15]=g,e[16]=u,e[17]=r.stops,e[18]=h,e[19]=$}else $=e[19];let D;e[25]!==g||e[26]!==u||e[27]!==d||e[28]!==J||e[29]!==r.uncoveredHunks.length||e[30]!==h?(D=r.uncoveredHunks.length>0&&s.jsxs("section",{className:"border-b border-border/60",children:[s.jsxs(W,{type:"button",variant:"ghost",className:"h-auto w-full justify-start gap-2 px-4 py-3",onClick:()=>v(vs),"aria-expanded":d,children:[s.jsx(N,{name:d?"arrow-down-s":"arrow-right-s",className:"size-4 shrink-0"}),s.jsx("span",{className:"typography-ui-label text-muted-foreground",children:u("walkthrough.uncovered.title",{count:r.uncoveredHunks.length})})]}),!d&&s.jsx("p",{className:"typography-meta px-4 pb-3 pl-10 text-muted-foreground",children:u("walkthrough.uncovered.description")}),d&&J.map((M,T)=>s.jsxs("div",{children:[s.jsx(bt,{path:M.path}),s.jsx(kt,{path:M.path,hunks:M.hunks,renderSideBySide:g,wrapLines:h})]},`${M.path}-${T}`))]}),e[25]=g,e[26]=u,e[27]=d,e[28]=J,e[29]=r.uncoveredHunks.length,e[30]=h,e[31]=D):D=e[31];let Q;return e[32]!==D||e[33]!==$?(Q=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:[$,D]}),e[32]=D,e[33]=$,e[34]=Q):Q=e[34],Q});function bs(n){return n.isIntersecting}function ws(n,t){return n.boundingClientRect.top-t.boundingClientRect.top}function vs(n){return!n}const ys={bug:"bug",wrench:"tools",path:"compass-3",flask:"flask",doc:"file-text",gear:"settings-3"},js=n=>{const t=B.c(30),{stopView:e,isActive:r,isVisited:i,onSelect:a,activeRef:p}=n,{t:l}=K();let g;if(t[0]!==p||t[1]!==r||t[2]!==i||t[3]!==a||t[4]!==e.hunks||t[5]!==e.isStale||t[6]!==e.position||t[7]!==e.stop.title||t[8]!==l){const h=as(e.hunks),u=r&&"bg-interactive-selection text-interactive-selection-foreground";let f;t[10]!==u?(f=G("flex w-full flex-col gap-1 rounded px-2 py-1.5 text-left transition-colors","hover:bg-interactive-hover",u),t[10]=u,t[11]=f):f=t[11];const d=r?"bg-interactive-selection-foreground/20":i?"bg-status-success/15 text-status-success":"bg-surface-muted text-muted-foreground";let v;t[12]!==d?(v=G("typography-micro flex h-4 min-w-4 shrink-0 items-center justify-center rounded-full px-1 tabular-nums",d),t[12]=d,t[13]=v):v=t[13];let b;t[14]!==r||t[15]!==i||t[16]!==e.position?(b=i&&!r?s.jsx(N,{name:"check",className:"size-2.5"}):e.position,t[14]=r,t[15]=i,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]!==l?(k=e.isStale&&s.jsx(N,{name:"error-warning",className:"size-3 shrink-0 text-status-warning","aria-label":l("walkthrough.stop.staleShort")}),t[23]=e.isStale,t[24]=l,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:r?p:void 0,type:"button",onClick:a,"aria-current":r?"step":void 0,className:f,children:[x,h.length>0&&s.jsxs("span",{className:"typography-micro flex flex-col gap-0.5 pl-6 text-muted-foreground",children:[h.slice(0,3).map(Ns),h.length>3&&s.jsx("span",{children:l("walkthrough.toc.moreFiles",{count:h.length-3})})]})]})}),t[0]=p,t[1]=r,t[2]=i,t[3]=a,t[4]=e.hunks,t[5]=e.isStale,t[6]=e.position,t[7]=e.stop.title,t[8]=l,t[9]=g}else g=t[9];return g},Ss=m.memo(function(t){const e=B.c(20),{view:r,activeStopId:i,visitedStopIds:a,onSelectStop:p,width:l}=t,{t:g}=K(),h=m.useRef(null);let u;e[0]===Symbol.for("react.memo_cache_sentinel")?(u=()=>{h.current?.scrollIntoView({block:"nearest"})},e[0]=u):u=e[0];let f;e[1]!==i?(f=[i],e[1]=i,e[2]=f):f=e[2],m.useEffect(u,f);let d;e[3]!==l?(d={width:l},e[3]=l,e[4]=d):d=e[4];let v;e[5]!==r.walkthrough.focus?(v=r.walkthrough.focus&&s.jsx("p",{className:"typography-meta px-2 pb-3 pt-1 text-muted-foreground",children:r.walkthrough.focus}),e[5]=r.walkthrough.focus,e[6]=v):v=e[6];let b;e[7]!==i||e[8]!==p||e[9]!==r.chapters||e[10]!==a?(b=r.chapters.map(k=>{const{chapter:x,stops:C}=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(N,{name:ys[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:C.map(I=>s.jsx(js,{stopView:I,isActive:i===I.stop.id,isVisited:a.has(I.stop.id),onSelect:()=>p(I.stop.id),activeRef:h},I.stop.id))})]},x.id)}),e[7]=i,e[8]=p,e[9]=r.chapters,e[10]=a,e[11]=b):b=e[11];let w;e[12]!==g||e[13]!==r.uncoveredHunks.length?(w=r.uncoveredHunks.length>0&&s.jsx("p",{className:"typography-micro mt-auto px-2 pt-3 text-muted-foreground",children:g("walkthrough.toc.uncovered",{count:r.uncoveredHunks.length})}),e[12]=g,e[13]=r.uncoveredHunks.length,e[14]=w):w=e[14];let y;return e[15]!==d||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:d,children:[v,b,w]}),e[15]=d,e[16]=v,e[17]=b,e[18]=w,e[19]=y):y=e[19],y});function Ns(n){return s.jsx("span",{className:"truncate font-mono",children:n.path},n.path)}const Ms=["all","staged","working"],Rs="https://docs.openchamber.dev/walkthrough/",Pe="typography-meta font-normal text-muted-foreground",ut=720,Z=180,ze=.5,Cs=680,qo=({directory:n,visible:t=!0})=>{const{t:e,locale:r,locales:i,label:a}=K(),p=m.useRef(null),[l,g]=m.useState(0),{rootIsGitRepo:h,gitDirectory:u,nestedRepos:f}=Gt(n||null,{enabled:t}),d=u??n;m.useEffect(()=>{const o=p.current;if(!o||typeof ResizeObserver>"u")return;const j=new ResizeObserver(E=>{g(E[0]?.contentRect.width??0)});return j.observe(o),()=>j.disconnect()},[]);const v=de(o=>o.walkthroughTocWidth),b=de(o=>o.setWalkthroughTocWidth),[w,y]=m.useState(!1),k=l===0||l>=ut,x=l>0&&l<Cs,C=Math.min(Math.max(v,Z),Math.max(Z,(l||ut)*ze)),I=m.useCallback(o=>{o.preventDefault();const j=o.clientX,E=C,P=Math.max(Z,(p.current?.clientWidth??0)*ze);y(!0);const le=Ce=>{const Y=Math.min(P,Math.max(Z,E+Ce.clientX-j));b(Y)},_=()=>{y(!1),window.removeEventListener("pointermove",le),window.removeEventListener("pointerup",_),window.removeEventListener("pointercancel",_)};window.addEventListener("pointermove",le),window.addEventListener("pointerup",_),window.addEventListener("pointercancel",_)},[b,C]),V=m.useCallback(o=>{const j=o.shiftKey?40:10,E=o.key==="ArrowLeft"?-j:o.key==="ArrowRight"?j:0;if(E===0)return;o.preventDefault();const P=Math.max(Z,(p.current?.clientWidth??0)*ze);b(Math.min(P,Math.max(Z,C+E)))},[b,C]),[z,X]=m.useState("all"),[H,J]=m.useState(null),[$,D]=m.useState(null),[Q,M]=m.useState(()=>new Set),T=de(o=>o.diffLayoutPreference),F=de(o=>o.diffWrapLines),U=T==="side-by-side",He=A(o=>o.requestedSource[d]),De=A(o=>o.clearRequestedSource),pe=Ft(d||null),oe=Ut(d||null),Le=Ie(o=>o.ensureAll),{github:Oe,git:We}=_t();m.useEffect(()=>{d&&Le(d,We)},[d,Le,We]);const L=pe?.current??null,ne=m.useMemo(()=>{const o=L;if(!o)return null;const j=oe?.all??[],E=j.filter(q=>!q.startsWith("remotes/")),P=j.filter(q=>q.startsWith("remotes/")).map(q=>q.slice(8)),le=new Set(P.map(q=>q.split("/")[0]).filter(Boolean)),_=pe?.tracking?.split("/")[0],Ce=(_&&oe?.defaultBranches?.[_])??oe?.defaultBranches?.origin,Y=Qt({remoteNames:le,localBranches:E,defaultBranch:Ce,headBranch:o});return!Y||Y===o||!Yt({baseBranch:Y,localBranches:E,remoteBranches:P})?null:{kind:"branch",baseRef:Y,headRef:o}},[oe,L,pe?.tracking]),he=nt(o=>o.status?.connected??!1),me=nt(o=>o.hasChecked),Be=ce(o=>o.ensureEntry),$e=ce(o=>o.setParams),Ge=ce(o=>o.refreshTargets);m.useEffect(()=>{if(!d||!L||!me||!he)return;const o=qt(d,L);Be(o),$e(o,{directory:d,branch:L,remoteName:null,canShow:!0,github:Oe,githubAuthChecked:me,githubConnected:he}),Ge([{directory:d,branch:L,remoteName:null}])},[L,d,Be,Oe,me,he,Ge,$e]);const ge=ce(o=>d&&L?Kt(o.entries,d,L)?.pr?.number??null:null),R=m.useMemo(()=>He??{kind:"working-tree",scope:z},[He,z]),te=m.useMemo(()=>R.kind==="pr"?R:ge?{kind:"pr",number:ge}:null,[ge,R]),wt=m.useCallback(o=>{De(d),X(o)},[De,d]),c=A(o=>o.getEntry(d,R)),fe=A(o=>o.load),Fe=A(o=>o.generate),vt=A(o=>o.cancel),Ue=A(o=>o.requestSource),yt=A(o=>o.selectModel),ae=A(o=>o.getSelectedModel(d,R)),jt=A(o=>o.selectLanguage),xe=A(o=>o.getSelectedLanguage(d,R)),ke=c.result?.language,O=xe&&i.includes(xe)?xe:ke&&i.includes(ke)?ke:r;m.useEffect(()=>{fe(d,R,{language:O})},[O,d,fe,R,ae]);const S=m.useMemo(()=>ns(c.result),[c.result]),be=c.result?.generatedAt,_e=m.useRef(void 0);m.useEffect(()=>{_e.current!==be&&(_e.current=be,M(new Set),J(S?.stops[0]?.stop.id??null))},[be,S]);const we=m.useCallback(o=>{J(o),M(j=>{if(j.has(o))return j;const E=new Set(j);return E.add(o),E})},[]),ve=m.useCallback(o=>{we(o),D(o)},[we]),qe=m.useCallback(o=>{if(!S||S.stops.length===0)return;const j=S.stops.findIndex(P=>P.stop.id===H),E=Math.min(S.stops.length-1,Math.max(0,(j<0?0:j)+o));ve(S.stops[E].stop.id)},[H,ve,S]),[St,Ke]=m.useState(!1),[Nt,Ve]=m.useState(!1),Mt=R.kind==="working-tree"?R.scope:R.kind,Rt=R.kind==="branch"?e("walkthrough.scope.branch"):R.kind==="pr"?e("walkthrough.scope.pullRequest",{number:R.number}):e(z==="all"?"walkthrough.scope.all":z==="staged"?"walkthrough.scope.staged":"walkthrough.scope.working"),Xe=dt(o=>o.modelsMetadata),[se,Ct]=m.useState(void 0),ye=o=>!o||se===void 0?!1:se.includes(o),It=c.readiness?.model&&c.readiness.model.hasLogin!==!1&&ye(c.readiness.model.providerID)?`${c.readiness.model.providerID}/${c.readiness.model.modelID}`:void 0,Tt=c.result?.model&&ye(c.result.model.providerID)?`${c.result.model.providerID}/${c.result.model.modelID}`:void 0,ie=(ae&&ye(ae.split("/")[0])?ae:void 0)??Tt??It,[Et,...At]=(ie??"").split("/"),Je=At.join("/");m.useEffect(()=>{if(se!==void 0)return;let o=!1;return(async()=>{try{const j=await ft("/api/small-model",{method:"GET",headers:{Accept:"application/json"}});if(!j.ok)return;const E=await j.json().catch(()=>null);!o&&Array.isArray(E?.authenticatedProviders)&&Ct(E.authenticatedProviders.filter(P=>typeof P=="string"))}catch{}})(),()=>{o=!0}},[se]);const Pt=m.useCallback((o,j)=>Xe.get(`${o}/${j}`)?.structured_output!==!1,[Xe]),Qe=c.status==="generating",Ye=c.result?.model?`${c.result.model.providerID}/${c.result.model.modelID}`:void 0,je=c.result?.language,Se=je&&i.includes(je)?je:void 0,Ze=c.status==="ready"&&!!S,Ne=Ze&&!!Se&&Se!==O,et=Ze&&!!Ye&&!!ie&&Ye!==ie,tt=ms(c.stage,c.status==="generating"),st=m.useRef(!1),rt=m.useRef(c.status);m.useEffect(()=>{rt.current!=="generating"&&c.status==="generating"&&(st.current=!S),rt.current=c.status},[c.status,S]);const zt=st.current&&(c.status==="generating"||tt.holding),Me=c.error?.code==="context-too-small"||c.error?.code==="structured-output-unsupported"||c.error?.code==="no-model"||c.error?.code==="empty-diff"||c.error?.code==="only-generated"||c.error?.code==="output-exhausted"||c.error?.code==="server-unsupported"?c.error.code:c.readiness&&!c.readiness.ready&&!S&&c.readiness.reason!=="no-provider-login"?c.readiness.reason:void 0,Ht=c.error?.model??c.readiness?.model,Dt=c.error?.requiredChars??c.readiness?.requiredChars,Lt=c.error?.availableChars??c.readiness?.availableChars,re=!ie||!!(c.readiness&&!c.readiness.ready),Re=m.useCallback(o=>{re||Fe(d,R,{force:o,language:O})},[O,d,Fe,re,R]),ot=Vt(u||null),Ot=Ie(o=>o.ensureNestedRepos),Wt=Ie(o=>o.selectNestedRepo);return h===!1&&ot!==!0?s.jsx(rs,{rootIsGitRepo:h,resolvedIsGitRepo:ot,nestedRepos:f,onRetryDiscovery:()=>{n&&Ot(n,{force:!0})}}):s.jsxs("div",{ref:p,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:[h===!1&&Array.isArray(f)&&f.length>0?s.jsx(os,{repositories:f,selectedRepository:u??null,onSelectRepository:o=>{n&&Wt(n,o)},repositoryRoot:n??void 0}):null,s.jsxs(at,{open:St,onOpenChange:Ke,children:[s.jsx(it,{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:Rt}),s.jsx(N,{name:"arrow-down-s",className:"size-4 flex-shrink-0 opacity-60"})]})}),s.jsx(lt,{align:"start",className:"w-48",children:s.jsxs(ct,{value:Mt,onValueChange:o=>{if(Ke(!1),o==="branch"){ne&&Ue(d,ne);return}if(o==="pr"){te&&Ue(d,te);return}wt(o)},children:[s.jsx(Te,{className:Pe,children:e("walkthrough.scope.group.workingTree")}),Ms.map(o=>s.jsx(ue,{value:o,children:e(o==="all"?"walkthrough.scope.all":o==="staged"?"walkthrough.scope.staged":"walkthrough.scope.working")},o)),(ne||te)&&s.jsxs(s.Fragment,{children:[s.jsx(Xt,{}),s.jsx(Te,{className:Pe,children:e("walkthrough.scope.group.committed")})]}),ne&&s.jsx(ue,{value:"branch",children:e("walkthrough.scope.branch")}),te&&s.jsx(ue,{value:"pr",children:e("walkthrough.scope.pullRequest",{number:te.number})})]})})]}),s.jsxs("div",{className:"ml-auto flex min-w-0 items-center gap-1",children:[s.jsxs(ht,{children:[s.jsx(mt,{asChild:!0,children:s.jsx(W,{type:"button",variant:"ghost",size:"sm","aria-label":e("walkthrough.help.guide"),onClick:()=>{Jt(Rs)},children:s.jsx(N,{name:"question",className:"size-4"})})}),s.jsx(gt,{children:s.jsx("p",{className:"typography-micro leading-tight",children:e("walkthrough.help.guide")})})]}),s.jsxs(at,{open:Nt,onOpenChange:Ve,children:[s.jsx(it,{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(O):void 0,children:[s.jsx(N,{name:"global",className:"size-4 flex-shrink-0 opacity-70"}),!x&&s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"truncate",children:a(O)}),s.jsx(N,{name:"arrow-down-s",className:"size-4 flex-shrink-0 opacity-60"})]})]})}),s.jsxs(lt,{align:"end",className:"w-48",children:[s.jsx(Te,{className:Pe,children:e("walkthrough.language.menuLabel")}),s.jsx(ct,{value:O,onValueChange:o=>{Ve(!1),jt(d,R,o)},children:i.map(o=>s.jsx(ue,{value:o,children:a(o)},o))})]})]}),s.jsx(pt,{providerId:Et??"",modelId:Je,onChange:(o,j)=>{yt(d,R,o&&j?`${o}/${j}`:null)},allowedProviderIds:se??[],isModelAllowed:Pt,tooltipsEnabled:!1,dropdownPortalToBody:!0,compact:x,className:G("h-8 min-w-0",!x&&"max-w-48")}),S&&s.jsxs(s.Fragment,{children:[s.jsx(W,{type:"button",variant:"ghost",size:"sm","aria-label":e("walkthrough.action.previous"),onClick:()=>qe(-1),children:s.jsx(N,{name:"arrow-right-s",className:"size-4 rotate-180"})}),s.jsx(W,{type:"button",variant:"ghost",size:"sm","aria-label":e("walkthrough.action.next"),onClick:()=>qe(1),children:s.jsx(N,{name:"arrow-right-s",className:"size-4"})})]}),Qe?s.jsx(W,{type:"button",variant:"outline",size:"sm","aria-label":x?e("walkthrough.action.cancel"):void 0,title:x?e("walkthrough.action.cancel"):void 0,onClick:()=>vt(d,R),children:x?s.jsx(N,{name:"stop",className:"size-3.5"}):e("walkthrough.action.cancel")}):s.jsxs(W,{type:"button",variant:"outline",size:"sm",className:re?"border-border text-muted-foreground":Zt,disabled:re,"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:()=>Re(!!S),children:[s.jsx(N,{name:S?"refresh":"route",className:"size-3.5"}),!x&&e(S?"walkthrough.action.regenerate":"walkthrough.action.generate")]})]})]}),c.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(N,{name:"loader-4",className:"size-4 shrink-0 animate-spin text-[var(--status-info)]"}),s.jsx("span",{className:"typography-meta text-foreground",children:c.stage==="collecting"?e("walkthrough.stage.collecting"):c.stage==="assembling"?e("walkthrough.stage.assembling"):e("walkthrough.stage.asking")})]}),(Ne||et)&&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(N,{name:"information",className:"size-4 shrink-0 text-[var(--status-info)]"}),s.jsx("span",{className:"typography-meta text-foreground",children:Ne&&et?e("walkthrough.missing.languageAndModel"):Ne?e("walkthrough.missing.language",{requested:a(O),shown:a(Se)}):e("walkthrough.missing.model",{model:Je})}),s.jsx(W,{type:"button",variant:"ghost",size:"xs",className:"ml-auto",disabled:re,onClick:()=>Re(!1),children:e("walkthrough.action.generate")})]}),S?.isStale&&c.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(N,{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(W,{type:"button",variant:"ghost",size:"xs",className:"ml-auto",disabled:Qe,onClick:()=>Re(!0),children:e("walkthrough.action.regenerate")})]}),c.error&&!Me&&c.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(N,{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:c.error.message,children:c.error.message})]}),s.jsx("div",{className:G("flex min-h-0 flex-1",k?"flex-row":"flex-col"),children:Me?s.jsx(cs,{reason:Me,model:Ht,requiredChars:Dt,availableChars:Lt,onRetry:()=>{fe(d,R)}}):zt?s.jsx("div",{className:"flex flex-1 flex-col items-center justify-center gap-3 p-8",children:s.jsx(ds,{progress:tt})}):S?s.jsxs(s.Fragment,{children:[k&&s.jsxs(s.Fragment,{children:[s.jsx(Ss,{view:S,activeStopId:H,visitedStopIds:Q,onSelectStop:ve,width:C}),s.jsx("div",{role:"separator","aria-orientation":"vertical","aria-label":e("walkthrough.toc.resize"),tabIndex:0,onPointerDown:I,onKeyDown:V,className:G("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(ks,{view:S,activeStopId:H,scrollToStopId:$,onActiveStopChange:we,onScrollHandled:()=>D(null),renderSideBySide:U,wrapLines:F})]}):s.jsx("div",{className:"flex flex-1 flex-col items-center justify-center gap-3 p-8 text-center",children:c.status==="loading"?s.jsx(N,{name:"loader-4",className:"size-6 animate-spin text-muted-foreground"}):s.jsxs(s.Fragment,{children:[s.jsx(N,{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{qo as WalkthroughView};
|
|
4
|
+
${i.join("")}`},ls=n=>n?`${n.providerID}/${n.modelID}`:"",cs=({reason:n,model:t,requiredChars:e,availableChars:r,onRetry:i})=>{const{t:a}=K(),p=dt(k=>k.modelsMetadata),[l,g]=m.useState(void 0),[h,u]=m.useState(!1),f=n==="context-too-small"||n==="structured-output-unsupported"||n==="output-exhausted";m.useEffect(()=>{if(!f||l!==void 0)return;let k=!1;return(async()=>{try{const x=await ft("/api/small-model",{method:"GET",headers:{Accept:"application/json"}});if(!x.ok)return;const C=await x.json().catch(()=>null);!k&&Array.isArray(C?.authenticatedProviders)&&g(C.authenticatedProviders.filter(I=>typeof I=="string"))}catch{}})(),()=>{k=!0}},[f,l]);const d=m.useCallback(async(k,x)=>{if(!k||!x||h)return;const C=`${k}/${x}`;u(!0);try{await es({walkthroughModelOverride:C}),i()}catch(I){console.warn("Failed to save small model override:",I)}finally{u(!1)}},[i,h]),v=m.useCallback((k,x)=>p.get(`${k}/${x}`)?.structured_output!==!1,[p]),b=ls(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((r??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(N,{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(pt,{providerId:t?.providerID??"",modelId:t?.modelID??"",onChange:(k,x)=>{d(k,x)},allowedProviderIds:l??[],isModelAllowed:v})]}),(n==="empty-diff"||n==="only-generated"||n==="server-unsupported")&&s.jsx(W,{type:"button",variant:"outline",size:"sm",onClick:i,children:a("walkthrough.action.refresh")})]})},us=[{labelKey:"walkthrough.stage.collecting"},{labelKey:"walkthrough.stage.asking"},{labelKey:"walkthrough.stage.assembling"}],ds=n=>{const t=B.c(6),{progress:e}=n,{t:r}=K(),{completedCount:i,activeIndex:a}=e;let p;t[0]!==a||t[1]!==i||t[2]!==r?(p=us.map((g,h)=>{const u=h<i,f=a===h;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:u?s.jsx(N,{name:"check",className:"size-3.5 text-status-success"}):f?s.jsx(N,{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:G("typography-meta",f?"text-foreground":u?"text-muted-foreground":"text-muted-foreground/60"),children:r(g.labelKey)})]},g.labelKey)}),t[0]=a,t[1]=i,t[2]=r,t[3]=p):p=t[3];let l;return t[4]!==p?(l=s.jsx("ul",{className:"flex flex-col gap-2 text-left",children:p}),t[4]=p,t[5]=l):l=t[5],l},ee=["collecting","asking","assembling"],Ee=450,ps=n=>n==="retrying"?ee.indexOf("asking"):n?ee.indexOf(n):-1,hs=(n,t)=>Math.min(n+1,t),ms=(n,t)=>{const e=B.c(17),[r,i]=m.useState(-1),a=m.useRef(0);let p;e[0]!==t||e[1]!==r||e[2]!==n?(p=t?Math.max(ps(n),0):r<0?-1:ee.length,e[0]=t,e[1]=r,e[2]=n,e[3]=p):p=e[3];const l=p;let g,h;e[4]!==t||e[5]!==r||e[6]!==l?(g=()=>{if(l<=r){l<r&&t&&(i(l),a.current=Date.now());return}const k=Date.now()-a.current,x=()=>{a.current=Date.now(),i(I=>hs(I,l))};if(r<0||k>=Ee){x();return}const C=setTimeout(x,Ee-k);return()=>clearTimeout(C)},h=[t,r,l],e[4]=t,e[5]=r,e[6]=l,e[7]=g,e[8]=h):(g=e[7],h=e[8]),m.useEffect(g,h);let u,f;e[9]!==t||e[10]!==r?(u=()=>{if(t||r<ee.length)return;const k=setTimeout(()=>i(-1),Ee);return()=>clearTimeout(k)},f=[t,r],e[9]=t,e[10]=r,e[11]=u,e[12]=f):(u=e[11],f=e[12]),m.useEffect(u,f);const d=r>=ee.length,v=Math.max(0,Math.min(r,ee.length)),b=d||r<0?null:r,w=!t&&r>=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},kt=m.memo(function(t){const e=B.c(11),{path:r,hunks:i,renderSideBySide:a,wrapLines:p}=t;let l;if(e[0]!==i||e[1]!==r){const f=is(i);l=f?ss(r,f):void 0,e[0]=i,e[1]=r,e[2]=l}else l=e[2];const g=l;if(!g)return null;let h;e[3]!==r?(h=Bt(r)||"",e[3]=r,e[4]=h):h=e[4];let u;return e[5]!==g||e[6]!==r||e[7]!==a||e[8]!==h||e[9]!==p?(u=s.jsx(ts,{original:"",modified:"",fileDiff:g,language:h,fileName:r,renderSideBySide:a,wrapLines:p,layout:"inline"}),e[5]=g,e[6]=r,e[7]=a,e[8]=h,e[9]=p,e[10]=u):u=e[10],u}),Ae=n=>`walkthrough-stop-${n}`,gs={critical:"border border-[var(--interactive-border)] font-medium text-foreground",normal:"bg-surface-muted text-muted-foreground",context:"bg-surface-muted text-muted-foreground"},fs=n=>{const t=B.c(22),{stopView:e}=n,{t:r}=K(),{stop:i}=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 p;t[2]!==i.title?(p=s.jsx("h3",{className:"typography-ui-label font-semibold text-foreground",children:i.title}),t[2]=i.title,t[3]=p):p=t[3];let l;t[4]!==i.importance||t[5]!==r?(l=i.importance!=="normal"&&s.jsxs(ht,{children:[s.jsx(mt,{className:G("typography-micro flex h-5 items-center rounded px-1.5 leading-none",gs[i.importance]),children:i.importance==="critical"?r("walkthrough.importance.critical"):r("walkthrough.importance.context")}),s.jsx(gt,{className:"max-w-64",children:s.jsx("p",{className:"typography-micro leading-tight",children:i.importance==="critical"?r("walkthrough.importance.criticalHint"):r("walkthrough.importance.contextHint")})})]}),t[4]=i.importance,t[5]=r,t[6]=l):l=t[6];let g;t[7]!==a||t[8]!==p||t[9]!==l?(g=s.jsxs("div",{className:"flex items-center gap-2",children:[a,p,l]}),t[7]=a,t[8]=p,t[9]=l,t[10]=g):g=t[10];let h;t[11]!==i.prose?(h=s.jsx("p",{className:"typography-body text-muted-foreground",children:i.prose}),t[11]=i.prose,t[12]=h):h=t[12];let u;t[13]!==e.hunks||t[14]!==e.isStale||t[15]!==e.missingHunkIds||t[16]!==r?(u=e.isStale&&s.jsxs("p",{className:"typography-meta flex items-center gap-1.5 text-status-warning",children:[s.jsx(N,{name:"error-warning",className:"size-3.5 shrink-0"}),e.hunks.length===0?r("walkthrough.stop.staleAll"):r("walkthrough.stop.stalePartial",{count:e.missingHunkIds.length})]}),t[13]=e.hunks,t[14]=e.isStale,t[15]=e.missingHunkIds,t[16]=r,t[17]=u):u=t[17];let f;return t[18]!==g||t[19]!==h||t[20]!==u?(f=s.jsxs("header",{className:"flex flex-col gap-2 px-4 pt-5 pb-3",children:[g,h,u]}),t[18]=g,t[19]=h,t[20]=u,t[21]=f):f=t[21],f},bt=n=>{const t=B.c(2),{path:e}=n;let r;return t[0]!==e?(r=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($t,{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]=r):r=t[1],r},xs=n=>{const t=B.c(11),{hunks:e,renderSideBySide:r,wrapLines:i}=n;let a;t[0]!==e?(a=xt(e),t[0]=e,t[1]=a):a=t[1];const p=a;let l;if(t[2]!==r||t[3]!==p||t[4]!==i){let h;t[6]!==r||t[7]!==i?(h=(u,f)=>s.jsxs("div",{children:[s.jsx(bt,{path:u.path}),s.jsx(kt,{path:u.path,hunks:u.hunks,renderSideBySide:r,wrapLines:i})]},`${u.path}-${f}`),t[6]=r,t[7]=i,t[8]=h):h=t[8],l=p.map(h),t[2]=r,t[3]=p,t[4]=i,t[5]=l}else l=t[5];let g;return t[9]!==l?(g=s.jsx(s.Fragment,{children:l}),t[9]=l,t[10]=g):g=t[10],g},ks=m.memo(function(t){const e=B.c(35),{view:r,activeStopId:i,scrollToStopId:a,onActiveStopChange:p,onScrollHandled:l,renderSideBySide:g,wrapLines:h}=t,{t:u}=K(),f=m.useRef(null),[d,v]=m.useState(!1),b=m.useRef(null),w=m.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]),m.useEffect(y,k);let x,C;e[2]!==l||e[3]!==a?(x=()=>{if(!a)return;const M=document.getElementById(Ae(a));M&&(b.current=a,M.scrollIntoView({behavior:"auto",block:"start"}),w.current!==null&&window.clearTimeout(w.current),w.current=window.setTimeout(()=>{b.current=null,w.current=null},250)),l()},C=[a,l],e[2]=l,e[3]=a,e[4]=x,e[5]=C):(x=e[4],C=e[5]),m.useEffect(x,C);let I;e[6]!==p?(I=M=>{const T=M.filter(bs).sort(ws)[0];if(!T)return;const F=T.target.getAttribute("data-stop-id");if(!F)return;const U=b.current;if(U){F===U&&(b.current=null);return}p(F)},e[6]=p,e[7]=I):I=e[7];const V=I;let z,X;e[8]!==V||e[9]!==r.stops?(z=()=>{const M=f.current;if(!M)return;const T=new IntersectionObserver(V,{root:M,rootMargin:"0px 0px -70% 0px",threshold:0});for(const F of r.stops){const U=document.getElementById(Ae(F.stop.id));U&&T.observe(U)}return()=>T.disconnect()},X=[V,r.stops],e[8]=V,e[9]=r.stops,e[10]=z,e[11]=X):(z=e[10],X=e[11]),m.useEffect(z,X);let H;e[12]!==r.uncoveredHunks?(H=xt(r.uncoveredHunks),e[12]=r.uncoveredHunks,e[13]=H):H=e[13];const J=H;let $;if(e[14]!==i||e[15]!==g||e[16]!==u||e[17]!==r.stops||e[18]!==h){let M;e[20]!==i||e[21]!==g||e[22]!==u||e[23]!==h?(M=T=>s.jsxs("section",{id:Ae(T.stop.id),"data-stop-id":T.stop.id,className:G("border-b border-border/60",i===T.stop.id&&"bg-interactive-selection/5"),children:[s.jsx(fs,{stopView:T}),T.hunks.length>0?s.jsx(xs,{hunks:T.hunks,renderSideBySide:g,wrapLines:h}):s.jsx("p",{className:"typography-meta px-4 pb-4 text-muted-foreground",children:u("walkthrough.stop.noCode")})]},T.stop.id),e[20]=i,e[21]=g,e[22]=u,e[23]=h,e[24]=M):M=e[24],$=r.stops.map(M),e[14]=i,e[15]=g,e[16]=u,e[17]=r.stops,e[18]=h,e[19]=$}else $=e[19];let L;e[25]!==g||e[26]!==u||e[27]!==d||e[28]!==J||e[29]!==r.uncoveredHunks.length||e[30]!==h?(L=r.uncoveredHunks.length>0&&s.jsxs("section",{className:"border-b border-border/60",children:[s.jsxs(W,{type:"button",variant:"ghost",className:"h-auto w-full justify-start gap-2 px-4 py-3",onClick:()=>v(vs),"aria-expanded":d,children:[s.jsx(N,{name:d?"arrow-down-s":"arrow-right-s",className:"size-4 shrink-0"}),s.jsx("span",{className:"typography-ui-label text-muted-foreground",children:u("walkthrough.uncovered.title",{count:r.uncoveredHunks.length})})]}),!d&&s.jsx("p",{className:"typography-meta px-4 pb-3 pl-10 text-muted-foreground",children:u("walkthrough.uncovered.description")}),d&&J.map((M,T)=>s.jsxs("div",{children:[s.jsx(bt,{path:M.path}),s.jsx(kt,{path:M.path,hunks:M.hunks,renderSideBySide:g,wrapLines:h})]},`${M.path}-${T}`))]}),e[25]=g,e[26]=u,e[27]=d,e[28]=J,e[29]=r.uncoveredHunks.length,e[30]=h,e[31]=L):L=e[31];let Q;return e[32]!==L||e[33]!==$?(Q=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:[$,L]}),e[32]=L,e[33]=$,e[34]=Q):Q=e[34],Q});function bs(n){return n.isIntersecting}function ws(n,t){return n.boundingClientRect.top-t.boundingClientRect.top}function vs(n){return!n}const ys={bug:"bug",wrench:"tools",path:"compass-3",flask:"flask",doc:"file-text",gear:"settings-3"},js=n=>{const t=B.c(30),{stopView:e,isActive:r,isVisited:i,onSelect:a,activeRef:p}=n,{t:l}=K();let g;if(t[0]!==p||t[1]!==r||t[2]!==i||t[3]!==a||t[4]!==e.hunks||t[5]!==e.isStale||t[6]!==e.position||t[7]!==e.stop.title||t[8]!==l){const h=as(e.hunks),u=r&&"bg-interactive-selection text-interactive-selection-foreground";let f;t[10]!==u?(f=G("flex w-full flex-col gap-1 rounded px-2 py-1.5 text-left transition-colors","hover:bg-interactive-hover",u),t[10]=u,t[11]=f):f=t[11];const d=r?"bg-interactive-selection-foreground/20":i?"bg-status-success/15 text-status-success":"bg-surface-muted text-muted-foreground";let v;t[12]!==d?(v=G("typography-micro flex h-4 min-w-4 shrink-0 items-center justify-center rounded-full px-1 tabular-nums",d),t[12]=d,t[13]=v):v=t[13];let b;t[14]!==r||t[15]!==i||t[16]!==e.position?(b=i&&!r?s.jsx(N,{name:"check",className:"size-2.5"}):e.position,t[14]=r,t[15]=i,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]!==l?(k=e.isStale&&s.jsx(N,{name:"error-warning",className:"size-3 shrink-0 text-status-warning","aria-label":l("walkthrough.stop.staleShort")}),t[23]=e.isStale,t[24]=l,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:r?p:void 0,type:"button",onClick:a,"aria-current":r?"step":void 0,className:f,children:[x,h.length>0&&s.jsxs("span",{className:"typography-micro flex flex-col gap-0.5 pl-6 text-muted-foreground",children:[h.slice(0,3).map(Ns),h.length>3&&s.jsx("span",{children:l("walkthrough.toc.moreFiles",{count:h.length-3})})]})]})}),t[0]=p,t[1]=r,t[2]=i,t[3]=a,t[4]=e.hunks,t[5]=e.isStale,t[6]=e.position,t[7]=e.stop.title,t[8]=l,t[9]=g}else g=t[9];return g},Ss=m.memo(function(t){const e=B.c(20),{view:r,activeStopId:i,visitedStopIds:a,onSelectStop:p,width:l}=t,{t:g}=K(),h=m.useRef(null);let u;e[0]===Symbol.for("react.memo_cache_sentinel")?(u=()=>{h.current?.scrollIntoView({block:"nearest"})},e[0]=u):u=e[0];let f;e[1]!==i?(f=[i],e[1]=i,e[2]=f):f=e[2],m.useEffect(u,f);let d;e[3]!==l?(d={width:l},e[3]=l,e[4]=d):d=e[4];let v;e[5]!==r.walkthrough.focus?(v=r.walkthrough.focus&&s.jsx("p",{className:"typography-meta px-2 pb-3 pt-1 text-muted-foreground",children:r.walkthrough.focus}),e[5]=r.walkthrough.focus,e[6]=v):v=e[6];let b;e[7]!==i||e[8]!==p||e[9]!==r.chapters||e[10]!==a?(b=r.chapters.map(k=>{const{chapter:x,stops:C}=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(N,{name:ys[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:C.map(I=>s.jsx(js,{stopView:I,isActive:i===I.stop.id,isVisited:a.has(I.stop.id),onSelect:()=>p(I.stop.id),activeRef:h},I.stop.id))})]},x.id)}),e[7]=i,e[8]=p,e[9]=r.chapters,e[10]=a,e[11]=b):b=e[11];let w;e[12]!==g||e[13]!==r.uncoveredHunks.length?(w=r.uncoveredHunks.length>0&&s.jsx("p",{className:"typography-micro mt-auto px-2 pt-3 text-muted-foreground",children:g("walkthrough.toc.uncovered",{count:r.uncoveredHunks.length})}),e[12]=g,e[13]=r.uncoveredHunks.length,e[14]=w):w=e[14];let y;return e[15]!==d||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:d,children:[v,b,w]}),e[15]=d,e[16]=v,e[17]=b,e[18]=w,e[19]=y):y=e[19],y});function Ns(n){return s.jsx("span",{className:"truncate font-mono",children:n.path},n.path)}const Ms=["all","staged","working"],Rs="https://docs.openchamber.dev/walkthrough/",Pe="typography-meta font-normal text-muted-foreground",ut=720,Z=180,ze=.5,Cs=680,qo=({directory:n,visible:t=!0})=>{const{t:e,locale:r,locales:i,label:a}=K(),p=m.useRef(null),[l,g]=m.useState(0),{rootIsGitRepo:h,gitDirectory:u,nestedRepos:f}=Gt(n||null,{enabled:t}),d=u??n;m.useEffect(()=>{const o=p.current;if(!o||typeof ResizeObserver>"u")return;const j=new ResizeObserver(E=>{g(E[0]?.contentRect.width??0)});return j.observe(o),()=>j.disconnect()},[]);const v=de(o=>o.walkthroughTocWidth),b=de(o=>o.setWalkthroughTocWidth),[w,y]=m.useState(!1),k=l===0||l>=ut,x=l>0&&l<Cs,C=Math.min(Math.max(v,Z),Math.max(Z,(l||ut)*ze)),I=m.useCallback(o=>{o.preventDefault();const j=o.clientX,E=C,P=Math.max(Z,(p.current?.clientWidth??0)*ze);y(!0);const le=Ce=>{const Y=Math.min(P,Math.max(Z,E+Ce.clientX-j));b(Y)},_=()=>{y(!1),window.removeEventListener("pointermove",le),window.removeEventListener("pointerup",_),window.removeEventListener("pointercancel",_)};window.addEventListener("pointermove",le),window.addEventListener("pointerup",_),window.addEventListener("pointercancel",_)},[b,C]),V=m.useCallback(o=>{const j=o.shiftKey?40:10,E=o.key==="ArrowLeft"?-j:o.key==="ArrowRight"?j:0;if(E===0)return;o.preventDefault();const P=Math.max(Z,(p.current?.clientWidth??0)*ze);b(Math.min(P,Math.max(Z,C+E)))},[b,C]),[z,X]=m.useState("all"),[H,J]=m.useState(null),[$,L]=m.useState(null),[Q,M]=m.useState(()=>new Set),T=de(o=>o.diffLayoutPreference),F=de(o=>o.diffWrapLines),U=T==="side-by-side",He=A(o=>o.requestedSource[d]),Le=A(o=>o.clearRequestedSource),pe=Ft(d||null),oe=Ut(d||null),De=Ie(o=>o.ensureAll),{github:Oe,git:We}=_t();m.useEffect(()=>{d&&De(d,We)},[d,De,We]);const D=pe?.current??null,ne=m.useMemo(()=>{const o=D;if(!o)return null;const j=oe?.all??[],E=j.filter(q=>!q.startsWith("remotes/")),P=j.filter(q=>q.startsWith("remotes/")).map(q=>q.slice(8)),le=new Set(P.map(q=>q.split("/")[0]).filter(Boolean)),_=pe?.tracking?.split("/")[0],Ce=(_&&oe?.defaultBranches?.[_])??oe?.defaultBranches?.origin,Y=Qt({remoteNames:le,localBranches:E,defaultBranch:Ce,headBranch:o});return!Y||Y===o||!Yt({baseBranch:Y,localBranches:E,remoteBranches:P})?null:{kind:"branch",baseRef:Y,headRef:o}},[oe,D,pe?.tracking]),he=nt(o=>o.status?.connected??!1),me=nt(o=>o.hasChecked),Be=ce(o=>o.ensureEntry),$e=ce(o=>o.setParams),Ge=ce(o=>o.refreshTargets);m.useEffect(()=>{if(!d||!D||!me||!he)return;const o=qt(d,D);Be(o),$e(o,{directory:d,branch:D,remoteName:null,canShow:!0,github:Oe,githubAuthChecked:me,githubConnected:he}),Ge([{directory:d,branch:D,remoteName:null}])},[D,d,Be,Oe,me,he,Ge,$e]);const ge=ce(o=>d&&D?Kt(o.entries,d,D)?.pr?.number??null:null),R=m.useMemo(()=>He??{kind:"working-tree",scope:z},[He,z]),te=m.useMemo(()=>R.kind==="pr"?R:ge?{kind:"pr",number:ge}:null,[ge,R]),wt=m.useCallback(o=>{Le(d),X(o)},[Le,d]),c=A(o=>o.getEntry(d,R)),fe=A(o=>o.load),Fe=A(o=>o.generate),vt=A(o=>o.cancel),Ue=A(o=>o.requestSource),yt=A(o=>o.selectModel),ae=A(o=>o.getSelectedModel(d,R)),jt=A(o=>o.selectLanguage),xe=A(o=>o.getSelectedLanguage(d,R)),ke=c.result?.language,O=xe&&i.includes(xe)?xe:ke&&i.includes(ke)?ke:r;m.useEffect(()=>{fe(d,R,{language:O})},[O,d,fe,R,ae]);const S=m.useMemo(()=>ns(c.result),[c.result]),be=c.result?.generatedAt,_e=m.useRef(void 0);m.useEffect(()=>{_e.current!==be&&(_e.current=be,M(new Set),J(S?.stops[0]?.stop.id??null))},[be,S]);const we=m.useCallback(o=>{J(o),M(j=>{if(j.has(o))return j;const E=new Set(j);return E.add(o),E})},[]),ve=m.useCallback(o=>{we(o),L(o)},[we]),qe=m.useCallback(o=>{if(!S||S.stops.length===0)return;const j=S.stops.findIndex(P=>P.stop.id===H),E=Math.min(S.stops.length-1,Math.max(0,(j<0?0:j)+o));ve(S.stops[E].stop.id)},[H,ve,S]),[St,Ke]=m.useState(!1),[Nt,Ve]=m.useState(!1),Mt=R.kind==="working-tree"?R.scope:R.kind,Rt=R.kind==="branch"?e("walkthrough.scope.branch"):R.kind==="pr"?e("walkthrough.scope.pullRequest",{number:R.number}):e(z==="all"?"walkthrough.scope.all":z==="staged"?"walkthrough.scope.staged":"walkthrough.scope.working"),Xe=dt(o=>o.modelsMetadata),[se,Ct]=m.useState(void 0),ye=o=>!o||se===void 0?!1:se.includes(o),It=c.readiness?.model&&c.readiness.model.hasLogin!==!1&&ye(c.readiness.model.providerID)?`${c.readiness.model.providerID}/${c.readiness.model.modelID}`:void 0,Tt=c.result?.model&&ye(c.result.model.providerID)?`${c.result.model.providerID}/${c.result.model.modelID}`:void 0,ie=(ae&&ye(ae.split("/")[0])?ae:void 0)??Tt??It,[Et,...At]=(ie??"").split("/"),Je=At.join("/");m.useEffect(()=>{if(se!==void 0)return;let o=!1;return(async()=>{try{const j=await ft("/api/small-model",{method:"GET",headers:{Accept:"application/json"}});if(!j.ok)return;const E=await j.json().catch(()=>null);!o&&Array.isArray(E?.authenticatedProviders)&&Ct(E.authenticatedProviders.filter(P=>typeof P=="string"))}catch{}})(),()=>{o=!0}},[se]);const Pt=m.useCallback((o,j)=>Xe.get(`${o}/${j}`)?.structured_output!==!1,[Xe]),Qe=c.status==="generating",Ye=c.result?.model?`${c.result.model.providerID}/${c.result.model.modelID}`:void 0,je=c.result?.language,Se=je&&i.includes(je)?je:void 0,Ze=c.status==="ready"&&!!S,Ne=Ze&&!!Se&&Se!==O,et=Ze&&!!Ye&&!!ie&&Ye!==ie,tt=ms(c.stage,c.status==="generating"),st=m.useRef(!1),rt=m.useRef(c.status);m.useEffect(()=>{rt.current!=="generating"&&c.status==="generating"&&(st.current=!S),rt.current=c.status},[c.status,S]);const zt=st.current&&(c.status==="generating"||tt.holding),Me=c.error?.code==="context-too-small"||c.error?.code==="structured-output-unsupported"||c.error?.code==="no-model"||c.error?.code==="empty-diff"||c.error?.code==="only-generated"||c.error?.code==="output-exhausted"||c.error?.code==="server-unsupported"?c.error.code:c.readiness&&!c.readiness.ready&&!S&&c.readiness.reason!=="no-provider-login"?c.readiness.reason:void 0,Ht=c.error?.model??c.readiness?.model,Lt=c.error?.requiredChars??c.readiness?.requiredChars,Dt=c.error?.availableChars??c.readiness?.availableChars,re=!ie||!!(c.readiness&&!c.readiness.ready),Re=m.useCallback(o=>{re||Fe(d,R,{force:o,language:O})},[O,d,Fe,re,R]),ot=Vt(u||null),Ot=Ie(o=>o.ensureNestedRepos),Wt=Ie(o=>o.selectNestedRepo);return h===!1&&ot!==!0?s.jsx(rs,{rootIsGitRepo:h,resolvedIsGitRepo:ot,nestedRepos:f,onRetryDiscovery:()=>{n&&Ot(n,{force:!0})}}):s.jsxs("div",{ref:p,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:[h===!1&&Array.isArray(f)&&f.length>0?s.jsx(os,{repositories:f,selectedRepository:u??null,onSelectRepository:o=>{n&&Wt(n,o)},repositoryRoot:n??void 0}):null,s.jsxs(at,{open:St,onOpenChange:Ke,children:[s.jsx(it,{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:Rt}),s.jsx(N,{name:"arrow-down-s",className:"size-4 flex-shrink-0 opacity-60"})]})}),s.jsx(lt,{align:"start",className:"w-48",children:s.jsxs(ct,{value:Mt,onValueChange:o=>{if(Ke(!1),o==="branch"){ne&&Ue(d,ne);return}if(o==="pr"){te&&Ue(d,te);return}wt(o)},children:[s.jsx(Te,{className:Pe,children:e("walkthrough.scope.group.workingTree")}),Ms.map(o=>s.jsx(ue,{value:o,children:e(o==="all"?"walkthrough.scope.all":o==="staged"?"walkthrough.scope.staged":"walkthrough.scope.working")},o)),(ne||te)&&s.jsxs(s.Fragment,{children:[s.jsx(Xt,{}),s.jsx(Te,{className:Pe,children:e("walkthrough.scope.group.committed")})]}),ne&&s.jsx(ue,{value:"branch",children:e("walkthrough.scope.branch")}),te&&s.jsx(ue,{value:"pr",children:e("walkthrough.scope.pullRequest",{number:te.number})})]})})]}),s.jsxs("div",{className:"ml-auto flex min-w-0 items-center gap-1",children:[s.jsxs(ht,{children:[s.jsx(mt,{asChild:!0,children:s.jsx(W,{type:"button",variant:"ghost",size:"sm","aria-label":e("walkthrough.help.guide"),onClick:()=>{Jt(Rs)},children:s.jsx(N,{name:"question",className:"size-4"})})}),s.jsx(gt,{children:s.jsx("p",{className:"typography-micro leading-tight",children:e("walkthrough.help.guide")})})]}),s.jsxs(at,{open:Nt,onOpenChange:Ve,children:[s.jsx(it,{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(O):void 0,children:[s.jsx(N,{name:"global",className:"size-4 flex-shrink-0 opacity-70"}),!x&&s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"truncate",children:a(O)}),s.jsx(N,{name:"arrow-down-s",className:"size-4 flex-shrink-0 opacity-60"})]})]})}),s.jsxs(lt,{align:"end",className:"w-48",children:[s.jsx(Te,{className:Pe,children:e("walkthrough.language.menuLabel")}),s.jsx(ct,{value:O,onValueChange:o=>{Ve(!1),jt(d,R,o)},children:i.map(o=>s.jsx(ue,{value:o,children:a(o)},o))})]})]}),s.jsx(pt,{providerId:Et??"",modelId:Je,onChange:(o,j)=>{yt(d,R,o&&j?`${o}/${j}`:null)},allowedProviderIds:se??[],isModelAllowed:Pt,tooltipsEnabled:!1,dropdownPortalToBody:!0,compact:x,className:G("h-8 min-w-0",!x&&"max-w-48")}),S&&s.jsxs(s.Fragment,{children:[s.jsx(W,{type:"button",variant:"ghost",size:"sm","aria-label":e("walkthrough.action.previous"),onClick:()=>qe(-1),children:s.jsx(N,{name:"arrow-right-s",className:"size-4 rotate-180"})}),s.jsx(W,{type:"button",variant:"ghost",size:"sm","aria-label":e("walkthrough.action.next"),onClick:()=>qe(1),children:s.jsx(N,{name:"arrow-right-s",className:"size-4"})})]}),Qe?s.jsx(W,{type:"button",variant:"outline",size:"sm","aria-label":x?e("walkthrough.action.cancel"):void 0,title:x?e("walkthrough.action.cancel"):void 0,onClick:()=>vt(d,R),children:x?s.jsx(N,{name:"stop",className:"size-3.5"}):e("walkthrough.action.cancel")}):s.jsxs(W,{type:"button",variant:"outline",size:"sm",className:re?"border-border text-muted-foreground":Zt,disabled:re,"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:()=>Re(!!S),children:[s.jsx(N,{name:S?"refresh":"route",className:"size-3.5"}),!x&&e(S?"walkthrough.action.regenerate":"walkthrough.action.generate")]})]})]}),c.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(N,{name:"loader-4",className:"size-4 shrink-0 animate-spin text-[var(--status-info)]"}),s.jsx("span",{className:"typography-meta text-foreground",children:c.stage==="collecting"?e("walkthrough.stage.collecting"):c.stage==="assembling"?e("walkthrough.stage.assembling"):e("walkthrough.stage.asking")})]}),(Ne||et)&&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(N,{name:"information",className:"size-4 shrink-0 text-[var(--status-info)]"}),s.jsx("span",{className:"typography-meta text-foreground",children:Ne&&et?e("walkthrough.missing.languageAndModel"):Ne?e("walkthrough.missing.language",{requested:a(O),shown:a(Se)}):e("walkthrough.missing.model",{model:Je})}),s.jsx(W,{type:"button",variant:"ghost",size:"xs",className:"ml-auto",disabled:re,onClick:()=>Re(!1),children:e("walkthrough.action.generate")})]}),S?.isStale&&c.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(N,{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(W,{type:"button",variant:"ghost",size:"xs",className:"ml-auto",disabled:Qe,onClick:()=>Re(!0),children:e("walkthrough.action.regenerate")})]}),c.error&&!Me&&c.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(N,{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:c.error.message,children:c.error.message})]}),s.jsx("div",{className:G("flex min-h-0 flex-1",k?"flex-row":"flex-col"),children:Me?s.jsx(cs,{reason:Me,model:Ht,requiredChars:Lt,availableChars:Dt,onRetry:()=>{fe(d,R)}}):zt?s.jsx("div",{className:"flex flex-1 flex-col items-center justify-center gap-3 p-8",children:s.jsx(ds,{progress:tt})}):S?s.jsxs(s.Fragment,{children:[k&&s.jsxs(s.Fragment,{children:[s.jsx(Ss,{view:S,activeStopId:H,visitedStopIds:Q,onSelectStop:ve,width:C}),s.jsx("div",{role:"separator","aria-orientation":"vertical","aria-label":e("walkthrough.toc.resize"),tabIndex:0,onPointerDown:I,onKeyDown:V,className:G("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(ks,{view:S,activeStopId:H,scrollToStopId:$,onActiveStopChange:we,onScrollHandled:()=>L(null),renderSideBySide:U,wrapLines:F})]}):s.jsx("div",{className:"flex flex-1 flex-col items-center justify-center gap-3 p-8 text-center",children:c.status==="loading"?s.jsx(N,{name:"loader-4",className:"size-6 animate-spin text-muted-foreground"}):s.jsxs(s.Fragment,{children:[s.jsx(N,{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{qo as WalkthroughView};
|