@aiworker/web 1.23.0 → 1.23.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/dist/assets/{CodeMirrorCommentWidgets-B1Gizi3a.js → CodeMirrorCommentWidgets-COGJG0Iv.js} +1 -1
- package/dist/assets/DiffView-BviYY3zL.js +4 -0
- package/dist/assets/{DirtyBranchSwitchDialog-aig6zJjg.js → DirtyBranchSwitchDialog-C26DvfVJ.js} +1 -1
- package/dist/assets/FilesView-D0ZU_nCt.js +13 -0
- package/dist/assets/{GitView-BXsS3jG6.js → GitView-CYgiDRH-.js} +4 -4
- package/dist/assets/{JsonTreeView-D_hpXBnF.js → JsonTreeView-GsV9UScz.js} +1 -1
- package/dist/assets/{LinearIssuesView-BoUiLQG1.js → LinearIssuesView-shqUS8nl.js} +1 -1
- package/dist/assets/{MarkdownImageGallery-B_B_a9KS.js → MarkdownImageGallery-CQSTFp6m.js} +1 -1
- package/dist/assets/{MarkdownRendererImpl-xgyyLiBM.js → MarkdownRendererImpl-DJWP3A8X.js} +2 -2
- package/dist/assets/{OnboardingScreen-DIp84OWt.js → OnboardingScreen-CTuu4lgo.js} +1 -1
- package/dist/assets/{PatchDiff-8p6nLJaU.js → PatchDiff-Dp53v2pl.js} +1 -1
- package/dist/assets/{PierreDiffViewer-DjC8nTk9.js → PierreDiffViewer-B5l0djPS.js} +1 -1
- package/dist/assets/PlanView-CLUWkGiG.js +5 -0
- package/dist/assets/SettingsView-CojPQVHx.js +28 -0
- package/dist/assets/{SettingsWindow-Cpb4hM6q.js → SettingsWindow-DbgEnZ6T.js} +1 -1
- package/dist/assets/{ToolOutputDialog-DfaKZXNU.js → ToolOutputDialog-Du-RZj-a.js} +6 -6
- package/dist/assets/{ToolPartDiffPreview-DtZLzrSK.js → ToolPartDiffPreview-HBLSokoe.js} +2 -2
- package/dist/assets/{VirtualizedFileDiff-C8i9HpTB.js → VirtualizedFileDiff-Bzp3hClU.js} +4 -4
- package/dist/assets/WalkthroughView-CpgA4s9w.js +4 -0
- package/dist/assets/{computeVirtualFileMetrics-BBI7ZwrC.js → computeVirtualFileMetrics-CI1PC_z2.js} +2 -2
- package/dist/assets/de-BX8b4hDD.js +10 -0
- package/dist/assets/es-e98cS-yM.js +16 -0
- package/dist/assets/fr-BOiqxJAs.js +14 -0
- package/dist/assets/index-BD8ILbxF.js +40 -0
- package/dist/assets/{index-jXSK5RrB.js → index-Cmn74sw-.js} +1 -1
- package/dist/assets/index-zhgg-SDz.css +1 -0
- package/dist/assets/{isDiffPlainText-B_x_rVon.js → isDiffPlainText-DVralkU-.js} +1 -1
- package/dist/assets/{isFilePlainText-DW_xMer1.js → isFilePlainText-CgTREsRX.js} +1 -1
- package/dist/assets/ja-aoO55hGu.js +16 -0
- package/dist/assets/{ko-idhXGF8j.js → ko-BGzFLogk.js} +3 -3
- package/dist/assets/{main-CzdPuL0s.js → main-BgfXQ-4g.js} +2 -2
- package/dist/assets/main-DGYUWmIt.js +930 -0
- package/dist/assets/{markdownCore-Cn4Tyejo.js → markdownCore-BesaNs_G.js} +3 -3
- package/dist/assets/{miniChat-CCkqKOLp.js → miniChat-DHKXp-_I.js} +2 -2
- package/dist/assets/{mobile-mvxTo055.js → mobile-lXQ08VnX.js} +2 -2
- package/dist/assets/patchFileDiff-i1lTtNbn.js +13 -0
- package/dist/assets/{pl-CGZWUqZJ.js → pl-B5x19laq.js} +3 -3
- package/dist/assets/pt-BR-C3oU51Il.js +16 -0
- package/dist/assets/renderElectronMiniChatApp-CuO4ue6B.js +2 -0
- package/dist/assets/renderMobileApp-B3zFlHy4.js +25 -0
- package/dist/assets/runtimeEndpointReset-BLzrtrmj.js +41 -0
- package/dist/assets/scheduledTasksApi-BEuUF_cj.js +1 -0
- package/dist/assets/{shikiHighlight-CRl0SUC9.js → shikiHighlight-ctlcPvvx.js} +1 -1
- package/dist/assets/surface-COKb77Ua.js +1 -0
- package/dist/assets/tr-C0QQa7et.js +7 -0
- package/dist/assets/uk-CqLSe9wT.js +16 -0
- package/dist/assets/{useAppFontEffects-CPKeOpUo.js → useAppFontEffects-B6OfEypo.js} +153 -155
- package/dist/assets/useGitComparison-BXZXEAW6.js +1 -0
- package/dist/assets/{useInlineCommentController-BiWz4AVb.js → useInlineCommentController-CgbrpEWu.js} +2 -2
- package/dist/assets/{useRootScrollLock-BS4-kr7P.js → useRootScrollLock-Me41OjBT.js} +1 -1
- package/dist/assets/{vendor-base-ui-DdV8vhHn.js → vendor-base-ui-BY_5qla_.js} +1 -1
- package/dist/assets/{vendor-codemirror-language-data-Bg4AEeCr.js → vendor-codemirror-language-data-SJuFp0a0.js} +2 -2
- package/dist/assets/vendor-legendapp-list-BuBPBC3R.js +1 -0
- package/dist/assets/{vendor-zod-BPAANqvH.js → vendor-zod-B6551dwG.js} +2 -2
- package/dist/assets/{web-components-z7hfnS8n.js → web-components-D8GS8Ork.js} +1 -1
- package/dist/assets/zh-CN-iJEie4d6.js +16 -0
- package/dist/assets/zh-TW-CyslEwlK.js +16 -0
- package/dist/index.html +4 -4
- package/dist/mini-chat.html +4 -4
- package/dist/mobile.html +4 -4
- package/package.json +1 -1
- package/server/index.js +3 -13
- package/server/lib/agent-memory/runtime.js +7 -2
- package/server/lib/agent-memory/runtime.test.js +22 -0
- package/server/lib/event-stream/DOCUMENTATION.md +3 -0
- package/server/lib/event-stream/global-hub.js +29 -4
- package/server/lib/event-stream/global-hub.test.js +22 -0
- package/server/lib/event-stream/global-ws-bridge.js +15 -18
- package/server/lib/event-stream/protocol.js +21 -7
- package/server/lib/event-stream/runtime.js +9 -6
- package/server/lib/event-stream/runtime.test.js +60 -0
- package/server/lib/git/DOCUMENTATION.md +10 -1
- package/server/lib/git/routes.js +21 -8
- package/server/lib/git/routes.test.js +78 -0
- package/server/lib/git/service.js +159 -4
- package/server/lib/git/service.test.js +74 -0
- package/server/lib/github/DOCUMENTATION.md +5 -0
- package/server/lib/github/routes.js +2 -2
- package/server/lib/message-queue/DOCUMENTATION.md +7 -0
- package/server/lib/message-queue/runtime.js +13 -0
- package/server/lib/message-queue/runtime.test.js +31 -1
- package/server/lib/notifications/DOCUMENTATION.md +1 -1
- package/server/lib/notifications/emitter-runtime.js +4 -3
- package/server/lib/opencode/DOCUMENTATION.md +18 -4
- package/server/lib/opencode/env-runtime.js +5 -1
- package/server/lib/opencode/env-runtime.test.js +72 -0
- package/server/lib/opencode/feature-routes-runtime.js +15 -1
- package/server/lib/opencode/lifecycle.js +4 -3
- package/server/lib/opencode/lifecycle.test.js +29 -0
- package/server/lib/opencode/managed-plugin-config.js +1 -1
- package/server/lib/opencode/proxy.js +33 -0
- package/server/lib/opencode/settings-helpers.js +3 -0
- package/server/lib/opencode/settings-helpers.test.js +11 -1
- package/server/lib/opencode/settings-registry.json +3 -0
- package/server/lib/opencode/settings-runtime.js +36 -9
- package/server/lib/opencode/settings-runtime.test.js +158 -2
- package/server/lib/project-context/DOCUMENTATION.md +13 -3
- package/server/lib/project-context/runtime.js +8 -2
- package/server/lib/project-context/runtime.test.js +54 -0
- package/server/lib/projects/DOCUMENTATION.md +2 -1
- package/server/lib/projects/project-config.js +38 -9
- package/server/lib/projects/project-config.test.js +97 -0
- package/server/lib/projects/project-id.js +26 -0
- package/server/lib/relay/DOCUMENTATION.md +20 -0
- package/server/lib/relay/host-client.js +7 -0
- package/server/lib/relay/host-client.test.js +14 -0
- package/server/lib/scheduled-tasks/DOCUMENTATION.md +9 -1
- package/server/lib/scheduled-tasks/issue-2710-double-execution.test.js +28 -0
- package/server/lib/scheduled-tasks/runtime.js +12 -2
- package/server/lib/scheduled-tasks/runtime.test.js +53 -0
- package/server/lib/session-assist/DOCUMENTATION.md +131 -66
- package/server/lib/session-assist/context.js +127 -0
- package/server/lib/session-assist/context.test.js +132 -0
- package/server/lib/session-assist/prompt.js +54 -0
- package/server/lib/session-assist/runtime.js +111 -257
- package/server/lib/session-assist/runtime.test.js +203 -0
- package/server/lib/walkthrough/DOCUMENTATION.md +15 -5
- package/server/lib/walkthrough/pr-source.test.js +21 -0
- package/server/lib/walkthrough/pull-request.js +7 -4
- package/server/lib/walkthrough/pull-request.test.js +16 -0
- package/server/lib/walkthrough/routes.js +19 -0
- package/server/lib/walkthrough/routes.test.js +26 -0
- package/server/lib/walkthrough/sources.js +13 -2
- package/server/opencode-worktree-readiness.test.js +130 -0
- package/dist/assets/DiffView-DXjVsEOw.js +0 -4
- package/dist/assets/FilesView-CJdG0-wk.js +0 -17
- package/dist/assets/PlanView-CJTmOF6I.js +0 -5
- package/dist/assets/SettingsView-DD-JqIJx.js +0 -28
- package/dist/assets/WalkthroughView-DeKMvZlL.js +0 -4
- package/dist/assets/de-DCrsQ5zS.js +0 -10
- package/dist/assets/es-Dwv4YfH6.js +0 -16
- package/dist/assets/fr-BCWg4Cnx.js +0 -14
- package/dist/assets/index-B68h5S5B.css +0 -1
- package/dist/assets/index-DVwMarHI.js +0 -39
- package/dist/assets/ja-Bruw3RYC.js +0 -16
- package/dist/assets/main-BkyaQhJX.js +0 -930
- package/dist/assets/patchFileDiff-Csk4iNUi.js +0 -13
- package/dist/assets/pt-BR-B8V7u7tA.js +0 -16
- package/dist/assets/renderElectronMiniChatApp-BxoyujA5.js +0 -2
- package/dist/assets/renderMobileApp-B48CsP4r.js +0 -25
- package/dist/assets/runtimeEndpointReset-Bg5gx18H.js +0 -17
- package/dist/assets/scheduledTasksApi-BW0Etzwz.js +0 -1
- package/dist/assets/surface-oMvhsog3.js +0 -1
- package/dist/assets/tr-BK_KiO2V.js +0 -7
- package/dist/assets/uk-CG74xV8N.js +0 -16
- package/dist/assets/useGitComparison-DH220WmO.js +0 -1
- package/dist/assets/vendor-legendapp-list-gg7YLRW7.js +0 -1
- package/dist/assets/zh-CN-T4AXofZI.js +0 -16
- package/dist/assets/zh-TW-Dte40sxp.js +0 -16
- package/server/lib/mcp-reconnect/DOCUMENTATION.md +0 -55
- package/server/lib/mcp-reconnect/runtime.js +0 -122
- package/server/lib/mcp-reconnect/runtime.test.js +0 -140
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{r as u,j as s,f as G}from"./vendor-react-BUCujlKS.js";import{f as Q,l as xt,I as S,dz as kt,B as $,h as K,au as ss,a7 as bt,a8 as wt,a9 as vt,aw as rs,ad as os,ae as ns,af as as,ai as ze,W as is,aB as lt,bV as fe,bW as ls,i0 as cs,ag as us,ao as ct,ap as ut,ar as dt,as as pt,bU as ht,at as le,ba as mt,o as ds}from"./useAppFontEffects-CPKeOpUo.js";import{f as ps,u as hs,b as ms,a as gs,B as fs,C as xs}from"./patchFileDiff-Csk4iNUi.js";import{h as yt,q as ks,u as xe}from"./index-DVwMarHI.js";import{u as O,W as bs}from"./main-BkyaQhJX.js";import{P as ws}from"./PierreDiffViewer-DjC8nTk9.js";import{d as vs,c as ys}from"./runtimeEndpointReset-Bg5gx18H.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-DdV8vhHn.js";import"./vendor-floating-ui-utils-D6FqdtJt.js";import"./vendor-floating-ui-react-dom-DxYCWdHj.js";import"./vendor-floating-ui-dom-BTvzWks8.js";import"./vendor-floating-ui-core-PuGzNPnN.js";import"./vendor-use-sync-external-store-D6wYuSt-.js";import"./vendor-class-variance-authority-5VPnzWs2.js";import"./vendor-clsx-B-dksMZM.js";import"./vendor-dnd-kit-core-BZknOX2w.js";import"./vendor-dnd-kit-utilities-B_MdXhJC.js";import"./vendor-dnd-kit-accessibility-BHxJPORy.js";import"./vendor-dnd-kit-sortable-CsEagZ81.js";import"./vendor-framer-motion-livSKyyV.js";import"./vendor-motion-dom-D_o3BTI3.js";import"./vendor-motion-utils-BGh8QBgx.js";import"./vendor-tanstack-react-virtual-g05Cx3z9.js";import"./vendor-tanstack-virtual-core-Dubg10g5.js";import"./contextPanelEmbeddedChat-BdA6bdky.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-Bg4AEeCr.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-zod-BPAANqvH.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";import"./VirtualizedFileDiff-C8i9HpTB.js";import"./web-components-z7hfnS8n.js";import"./computeVirtualFileMetrics-BBI7ZwrC.js";import"./vendor-shiki-Bbf2GEcE.js";import"./vendor-shikijs-core-CGM_jqPK.js";import"./vendor-shikijs-types-CPSbSeK6.js";import"./vendor-shikijs-vscode-textmate-BgLrS_2D.js";import"./vendor-hast-util-to-html-BKBhbTDb.js";import"./vendor-html-void-elements-CkdplsNl.js";import"./vendor-property-information-rJCbAzvX.js";import"./vendor-zwitch-C2o2j-tx.js";import"./vendor-stringify-entities-CsH1VEn9.js";import"./vendor-character-entities-legacy-BpoLgcEt.js";import"./vendor-character-entities-html4-D7taRCQ7.js";import"./vendor-ccount-c2V3InAJ.js";import"./vendor-comma-separated-tokens-D8TqSuIK.js";import"./vendor-space-separated-tokens-DD3iYX1K.js";import"./vendor-hast-util-whitespace-D4Wp6AEg.js";import"./vendor-shikijs-engine-oniguruma-DPWuIF1G.js";import"./themeResolver-BmJyTmjJ.js";import"./vendor-pierre-theming-C6Z4M5_u.js";import"./vendor-shikijs-engine-javascript-Cme4830A.js";import"./vendor-oniguruma-to-es-DLBnFDCE.js";import"./vendor-oniguruma-parser-C0D4_9rT.js";import"./vendor-regex-BBWcyTkg.js";import"./vendor-regex-utilities-2BQyy0xI.js";import"./vendor-regex-recursion-JU4mF-dD.js";import"./vendor-shikijs-transformers-CZWsLLKm.js";import"./isDiffPlainText-B_x_rVon.js";import"./vendor-diff-C3JhlQdm.js";import"./vendor-opencode-sdk-BJ73u-bH.js";import"./useRootScrollLock-BS4-kr7P.js";import"./scheduledTasksApi-BW0Etzwz.js";import"./vendor-cron-parser-CUcP7OfX.js";import"./vendor-luxon-BZ0puJYg.js";import"./Virtualizer-D_a8gKmg.js";import"./useInlineCommentController-BiWz4AVb.js";import"./appThemeRegistry-BK0dHKa6.js";import"./registerCustomTheme-BBXUCRnG.js";const js=n=>{if(!n?.walkthrough)return null;const t=new Map(n.hunks.map(a=>[a.id,a])),e=new Set,r=[],l=[];for(const[a,h]of n.walkthrough.chapters.entries()){const c=[];for(const g of h.stops){const m=[],p=[];for(const i of g.hunkIds){const v=t.get(i);v?(m.push(v),e.add(i)):p.push(i)}const f={stop:g,chapter:h,chapterIndex:a,position:r.length+1,hunks:m,missingHunkIds:p,isStale:p.length>0};r.push(f),c.push(f)}l.push({chapter:h,stops:c})}return{walkthrough:n.walkthrough,stops:r,chapters:l,uncoveredHunks:n.hunks.filter(a=>!e.has(a.id)),staleStopCount:r.filter(a=>a.isStale).length,isStale:r.some(a=>a.isStale)}},Ss=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()]},jt=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},Ns=n=>{if(n.length===0)return"";if(n.length===1)return n[0].patch;const t=n[0].patch,e=t.indexOf(`
|
|
2
|
-
@@`);if(e===-1)return t;const r=t.slice(0,e),l=n.map(a=>{const h=a.patch.indexOf(`
|
|
3
|
-
@@`);return h===-1?"":a.patch.slice(h+1)});return`${r}
|
|
4
|
-
${l.join("")}`},Cs=n=>n?`${n.providerID}/${n.modelID}`:"",Ms=({reason:n,model:t,requiredChars:e,availableChars:r,onRetry:l})=>{const{t:a}=Q(),h=xt(k=>k.modelsMetadata),[c,g]=u.useState(void 0),[m,p]=u.useState(!1),f=n==="context-too-small"||n==="structured-output-unsupported"||n==="output-exhausted";u.useEffect(()=>{if(!f||c!==void 0)return;let k=!1;return(async()=>{try{const x=await yt("/api/small-model",{method:"GET",headers:{Accept:"application/json"}});if(!x.ok)return;const I=await x.json().catch(()=>null);!k&&Array.isArray(I?.authenticatedProviders)&&g(I.authenticatedProviders.filter(T=>typeof T=="string"))}catch{}})(),()=>{k=!0}},[f,c]);const i=u.useCallback(async(k,x)=>{if(!k||!x||m)return;const I=`${k}/${x}`;p(!0);try{await ks({walkthroughModelOverride:I}),l()}catch(T){console.warn("Failed to save small model override:",T)}finally{p(!1)}},[l,m]),v=u.useCallback((k,x)=>h.get(`${k}/${x}`)?.structured_output!==!1,[h]),b=Cs(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(S,{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(kt,{providerId:t?.providerID??"",modelId:t?.modelID??"",onChange:(k,x)=>{i(k,x)},allowedProviderIds:c??[],isModelAllowed:v})]}),(n==="empty-diff"||n==="only-generated"||n==="server-unsupported")&&s.jsx($,{type:"button",variant:"outline",size:"sm",onClick:l,children:a("walkthrough.action.refresh")})]})},Rs=[{labelKey:"walkthrough.stage.collecting"},{labelKey:"walkthrough.stage.asking"},{labelKey:"walkthrough.stage.assembling"}],Is=n=>{const t=G.c(6),{progress:e}=n,{t:r}=Q(),{completedCount:l,activeIndex:a}=e;let h;t[0]!==a||t[1]!==l||t[2]!==r?(h=Rs.map((g,m)=>{const p=m<l,f=a===m;return s.jsxs("li",{className:"flex items-center gap-2",children:[s.jsx("span",{className:"flex size-4 shrink-0 items-center justify-center",children:p?s.jsx(S,{name:"check",className:"size-3.5 text-status-success"}):f?s.jsx(S,{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:K("typography-meta",f?"text-foreground":p?"text-muted-foreground":"text-muted-foreground/60"),children:r(g.labelKey)})]},g.labelKey)}),t[0]=a,t[1]=l,t[2]=r,t[3]=h):h=t[3];let c;return t[4]!==h?(c=s.jsx("ul",{className:"flex flex-col gap-2 text-left",children:h}),t[4]=h,t[5]=c):c=t[5],c},re=["collecting","asking","assembling"],He=450,Ts=n=>n==="retrying"?re.indexOf("asking"):n?re.indexOf(n):-1,Es=(n,t)=>Math.min(n+1,t),As=(n,t)=>{const e=G.c(17),[r,l]=u.useState(-1),a=u.useRef(0);let h;e[0]!==t||e[1]!==r||e[2]!==n?(h=t?Math.max(Ts(n),0):r<0?-1:re.length,e[0]=t,e[1]=r,e[2]=n,e[3]=h):h=e[3];const c=h;let g,m;e[4]!==t||e[5]!==r||e[6]!==c?(g=()=>{if(c<=r){c<r&&t&&(l(c),a.current=Date.now());return}const k=Date.now()-a.current,x=()=>{a.current=Date.now(),l(T=>Es(T,c))};if(r<0||k>=He){x();return}const I=setTimeout(x,He-k);return()=>clearTimeout(I)},m=[t,r,c],e[4]=t,e[5]=r,e[6]=c,e[7]=g,e[8]=m):(g=e[7],m=e[8]),u.useEffect(g,m);let p,f;e[9]!==t||e[10]!==r?(p=()=>{if(t||r<re.length)return;const k=setTimeout(()=>l(-1),He);return()=>clearTimeout(k)},f=[t,r],e[9]=t,e[10]=r,e[11]=p,e[12]=f):(p=e[11],f=e[12]),u.useEffect(p,f);const i=r>=re.length,v=Math.max(0,Math.min(r,re.length)),b=i||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},St=u.memo(function(t){const e=G.c(11),{path:r,hunks:l,renderSideBySide:a,wrapLines:h}=t;let c;if(e[0]!==l||e[1]!==r){const f=Ns(l);c=f?ps(r,f):void 0,e[0]=l,e[1]=r,e[2]=c}else c=e[2];const g=c;if(!g)return null;let m;e[3]!==r?(m=ss(r)||"",e[3]=r,e[4]=m):m=e[4];let p;return e[5]!==g||e[6]!==r||e[7]!==a||e[8]!==m||e[9]!==h?(p=s.jsx(ws,{original:"",modified:"",fileDiff:g,language:m,fileName:r,renderSideBySide:a,wrapLines:h,layout:"inline"}),e[5]=g,e[6]=r,e[7]=a,e[8]=m,e[9]=h,e[10]=p):p=e[10],p}),Oe=n=>`walkthrough-stop-${n}`,Ps={critical:"border border-[var(--interactive-border)] font-medium text-foreground",normal:"bg-surface-muted text-muted-foreground",context:"bg-surface-muted text-muted-foreground"},zs=n=>{const t=G.c(22),{stopView:e}=n,{t:r}=Q(),{stop:l}=e;let a;t[0]!==e.position?(a=s.jsx("span",{className:"typography-micro flex h-5 min-w-5 shrink-0 items-center justify-center rounded-full bg-surface-muted px-1.5 tabular-nums text-muted-foreground",children:e.position}),t[0]=e.position,t[1]=a):a=t[1];let h;t[2]!==l.title?(h=s.jsx("h3",{className:"typography-ui-label font-semibold text-foreground",children:l.title}),t[2]=l.title,t[3]=h):h=t[3];let c;t[4]!==l.importance||t[5]!==r?(c=l.importance!=="normal"&&s.jsxs(bt,{children:[s.jsx(wt,{className:K("typography-micro flex h-5 items-center rounded px-1.5 leading-none",Ps[l.importance]),children:l.importance==="critical"?r("walkthrough.importance.critical"):r("walkthrough.importance.context")}),s.jsx(vt,{className:"max-w-64",children:s.jsx("p",{className:"typography-micro leading-tight",children:l.importance==="critical"?r("walkthrough.importance.criticalHint"):r("walkthrough.importance.contextHint")})})]}),t[4]=l.importance,t[5]=r,t[6]=c):c=t[6];let g;t[7]!==a||t[8]!==h||t[9]!==c?(g=s.jsxs("div",{className:"flex items-center gap-2",children:[a,h,c]}),t[7]=a,t[8]=h,t[9]=c,t[10]=g):g=t[10];let m;t[11]!==l.prose?(m=s.jsx("p",{className:"typography-body text-muted-foreground",children:l.prose}),t[11]=l.prose,t[12]=m):m=t[12];let p;t[13]!==e.hunks||t[14]!==e.isStale||t[15]!==e.missingHunkIds||t[16]!==r?(p=e.isStale&&s.jsxs("p",{className:"typography-meta flex items-center gap-1.5 text-status-warning",children:[s.jsx(S,{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]=p):p=t[17];let f;return t[18]!==g||t[19]!==m||t[20]!==p?(f=s.jsxs("header",{className:"flex flex-col gap-2 px-4 pt-5 pb-3",children:[g,m,p]}),t[18]=g,t[19]=m,t[20]=p,t[21]=f):f=t[21],f},Nt=n=>{const t=G.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(rs,{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},Hs=n=>{const t=G.c(11),{hunks:e,renderSideBySide:r,wrapLines:l}=n;let a;t[0]!==e?(a=jt(e),t[0]=e,t[1]=a):a=t[1];const h=a;let c;if(t[2]!==r||t[3]!==h||t[4]!==l){let m;t[6]!==r||t[7]!==l?(m=(p,f)=>s.jsxs("div",{children:[s.jsx(Nt,{path:p.path}),s.jsx(St,{path:p.path,hunks:p.hunks,renderSideBySide:r,wrapLines:l})]},`${p.path}-${f}`),t[6]=r,t[7]=l,t[8]=m):m=t[8],c=h.map(m),t[2]=r,t[3]=h,t[4]=l,t[5]=c}else c=t[5];let g;return t[9]!==c?(g=s.jsx(s.Fragment,{children:c}),t[9]=c,t[10]=g):g=t[10],g},Os=u.memo(function(t){const e=G.c(35),{view:r,activeStopId:l,scrollToStopId:a,onActiveStopChange:h,onScrollHandled:c,renderSideBySide:g,wrapLines:m}=t,{t:p}=Q(),f=u.useRef(null),[i,v]=u.useState(!1),b=u.useRef(null),w=u.useRef(null);let y,k;e[0]===Symbol.for("react.memo_cache_sentinel")?(y=()=>()=>{w.current!==null&&window.clearTimeout(w.current)},k=[],e[0]=y,e[1]=k):(y=e[0],k=e[1]),u.useEffect(y,k);let x,I;e[2]!==c||e[3]!==a?(x=()=>{if(!a)return;const M=document.getElementById(Oe(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)),c()},I=[a,c],e[2]=c,e[3]=a,e[4]=x,e[5]=I):(x=e[4],I=e[5]),u.useEffect(x,I);let T;e[6]!==h?(T=M=>{const E=M.filter(Ds).sort(Ls)[0];if(!E)return;const F=E.target.getAttribute("data-stop-id");if(!F)return;const V=b.current;if(V){F===V&&(b.current=null);return}h(F)},e[6]=h,e[7]=T):T=e[7];const Y=T;let D,Z;e[8]!==Y||e[9]!==r.stops?(D=()=>{const M=f.current;if(!M)return;const E=new IntersectionObserver(Y,{root:M,rootMargin:"0px 0px -70% 0px",threshold:0});for(const F of r.stops){const V=document.getElementById(Oe(F.stop.id));V&&E.observe(V)}return()=>E.disconnect()},Z=[Y,r.stops],e[8]=Y,e[9]=r.stops,e[10]=D,e[11]=Z):(D=e[10],Z=e[11]),u.useEffect(D,Z);let L;e[12]!==r.uncoveredHunks?(L=jt(r.uncoveredHunks),e[12]=r.uncoveredHunks,e[13]=L):L=e[13];const P=L;let z;if(e[14]!==l||e[15]!==g||e[16]!==p||e[17]!==r.stops||e[18]!==m){let M;e[20]!==l||e[21]!==g||e[22]!==p||e[23]!==m?(M=E=>s.jsxs("section",{id:Oe(E.stop.id),"data-stop-id":E.stop.id,className:K("border-b border-border/60",l===E.stop.id&&"bg-interactive-selection/5"),children:[s.jsx(zs,{stopView:E}),E.hunks.length>0?s.jsx(Hs,{hunks:E.hunks,renderSideBySide:g,wrapLines:m}):s.jsx("p",{className:"typography-meta px-4 pb-4 text-muted-foreground",children:p("walkthrough.stop.noCode")})]},E.stop.id),e[20]=l,e[21]=g,e[22]=p,e[23]=m,e[24]=M):M=e[24],z=r.stops.map(M),e[14]=l,e[15]=g,e[16]=p,e[17]=r.stops,e[18]=m,e[19]=z}else z=e[19];let B;e[25]!==g||e[26]!==p||e[27]!==i||e[28]!==P||e[29]!==r.uncoveredHunks.length||e[30]!==m?(B=r.uncoveredHunks.length>0&&s.jsxs("section",{className:"border-b border-border/60",children:[s.jsxs($,{type:"button",variant:"ghost",className:"h-auto w-full justify-start gap-2 px-4 py-3",onClick:()=>v(Bs),"aria-expanded":i,children:[s.jsx(S,{name:i?"arrow-down-s":"arrow-right-s",className:"size-4 shrink-0"}),s.jsx("span",{className:"typography-ui-label text-muted-foreground",children:p("walkthrough.uncovered.title",{count:r.uncoveredHunks.length})})]}),!i&&s.jsx("p",{className:"typography-meta px-4 pb-3 pl-10 text-muted-foreground",children:p("walkthrough.uncovered.description")}),i&&P.map((M,E)=>s.jsxs("div",{children:[s.jsx(Nt,{path:M.path}),s.jsx(St,{path:M.path,hunks:M.hunks,renderSideBySide:g,wrapLines:m})]},`${M.path}-${E}`))]}),e[25]=g,e[26]=p,e[27]=i,e[28]=P,e[29]=r.uncoveredHunks.length,e[30]=m,e[31]=B):B=e[31];let ee;return e[32]!==B||e[33]!==z?(ee=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:[z,B]}),e[32]=B,e[33]=z,e[34]=ee):ee=e[34],ee});function Ds(n){return n.isIntersecting}function Ls(n,t){return n.boundingClientRect.top-t.boundingClientRect.top}function Bs(n){return!n}const Ws={bug:"bug",wrench:"tools",path:"compass-3",flask:"flask",doc:"file-text",gear:"settings-3"},$s=n=>{const t=G.c(30),{stopView:e,isActive:r,isVisited:l,onSelect:a,activeRef:h}=n,{t:c}=Q();let g;if(t[0]!==h||t[1]!==r||t[2]!==l||t[3]!==a||t[4]!==e.hunks||t[5]!==e.isStale||t[6]!==e.position||t[7]!==e.stop.title||t[8]!==c){const m=Ss(e.hunks),p=r&&"bg-interactive-selection text-interactive-selection-foreground";let f;t[10]!==p?(f=K("flex w-full flex-col gap-1 rounded px-2 py-1.5 text-left transition-colors","hover:bg-interactive-hover",p),t[10]=p,t[11]=f):f=t[11];const i=r?"bg-interactive-selection-foreground/20":l?"bg-status-success/15 text-status-success":"bg-surface-muted text-muted-foreground";let v;t[12]!==i?(v=K("typography-micro flex h-4 min-w-4 shrink-0 items-center justify-center rounded-full px-1 tabular-nums",i),t[12]=i,t[13]=v):v=t[13];let b;t[14]!==r||t[15]!==l||t[16]!==e.position?(b=l&&!r?s.jsx(S,{name:"check",className:"size-2.5"}):e.position,t[14]=r,t[15]=l,t[16]=e.position,t[17]=b):b=t[17];let w;t[18]!==v||t[19]!==b?(w=s.jsx("span",{className:v,children:b}),t[18]=v,t[19]=b,t[20]=w):w=t[20];let y;t[21]!==e.stop.title?(y=s.jsx("span",{className:"typography-meta truncate font-medium",children:e.stop.title}),t[21]=e.stop.title,t[22]=y):y=t[22];let k;t[23]!==e.isStale||t[24]!==c?(k=e.isStale&&s.jsx(S,{name:"error-warning",className:"size-3 shrink-0 text-status-warning","aria-label":c("walkthrough.stop.staleShort")}),t[23]=e.isStale,t[24]=c,t[25]=k):k=t[25];let x;t[26]!==w||t[27]!==y||t[28]!==k?(x=s.jsxs("span",{className:"flex items-center gap-2",children:[w,y,k]}),t[26]=w,t[27]=y,t[28]=k,t[29]=x):x=t[29],g=s.jsx("li",{children:s.jsxs("button",{ref:r?h:void 0,type:"button",onClick:a,"aria-current":r?"step":void 0,className:f,children:[x,m.length>0&&s.jsxs("span",{className:"typography-micro flex flex-col gap-0.5 pl-6 text-muted-foreground",children:[m.slice(0,3).map(Fs),m.length>3&&s.jsx("span",{children:c("walkthrough.toc.moreFiles",{count:m.length-3})})]})]})}),t[0]=h,t[1]=r,t[2]=l,t[3]=a,t[4]=e.hunks,t[5]=e.isStale,t[6]=e.position,t[7]=e.stop.title,t[8]=c,t[9]=g}else g=t[9];return g},Gs=u.memo(function(t){const e=G.c(20),{view:r,activeStopId:l,visitedStopIds:a,onSelectStop:h,width:c}=t,{t:g}=Q(),m=u.useRef(null);let p;e[0]===Symbol.for("react.memo_cache_sentinel")?(p=()=>{m.current?.scrollIntoView({block:"nearest"})},e[0]=p):p=e[0];let f;e[1]!==l?(f=[l],e[1]=l,e[2]=f):f=e[2],u.useEffect(p,f);let i;e[3]!==c?(i={width:c},e[3]=c,e[4]=i):i=e[4];let v;e[5]!==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]!==l||e[8]!==h||e[9]!==r.chapters||e[10]!==a?(b=r.chapters.map(k=>{const{chapter:x,stops:I}=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(S,{name:Ws[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:I.map(T=>s.jsx($s,{stopView:T,isActive:l===T.stop.id,isVisited:a.has(T.stop.id),onSelect:()=>h(T.stop.id),activeRef:m},T.stop.id))})]},x.id)}),e[7]=l,e[8]=h,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]!==i||e[16]!==v||e[17]!==b||e[18]!==w?(y=s.jsxs("nav",{className:"flex shrink-0 flex-col overflow-y-auto border-r border-border/60 p-2",style:i,children:[v,b,w]}),e[15]=i,e[16]=v,e[17]=b,e[18]=w,e[19]=y):y=e[19],y});function Fs(n){return s.jsx("span",{className:"truncate font-mono",children:n.path},n.path)}const qs=["all","staged","working"],Us="https://docs.aiworker.dev/walkthrough/",gt="typography-meta font-normal text-muted-foreground",ft=720,se=180,De=.5,_s=680,dn=({directory:n,visible:t=!0})=>{const{t:e,locale:r,locales:l,label:a}=Q(),h=u.useRef(null),[c,g]=u.useState(0),{rootIsGitRepo:m,gitDirectory:p,nestedRepos:f}=os(n||null,{enabled:t}),i=p??n;u.useEffect(()=>{const o=h.current;if(!o||typeof ResizeObserver>"u")return;const C=new ResizeObserver(A=>{g(A[0]?.contentRect.width??0)});return C.observe(o),()=>C.disconnect()},[]);const v=xe(o=>o.walkthroughTocWidth),b=xe(o=>o.setWalkthroughTocWidth),[w,y]=u.useState(!1),k=c===0||c>=ft,x=c>0&&c<_s,I=Math.min(Math.max(v,se),Math.max(se,(c||ft)*De)),T=u.useCallback(o=>{o.preventDefault();const C=o.clientX,A=I,J=Math.max(se,(h.current?.clientWidth??0)*De);y(!0);const it=es=>{const ts=Math.min(J,Math.max(se,A+es.clientX-C));b(ts)},ge=()=>{y(!1),window.removeEventListener("pointermove",it),window.removeEventListener("pointerup",ge),window.removeEventListener("pointercancel",ge)};window.addEventListener("pointermove",it),window.addEventListener("pointerup",ge),window.addEventListener("pointercancel",ge)},[b,I]),Y=u.useCallback(o=>{const C=o.shiftKey?40:10,A=o.key==="ArrowLeft"?-C:o.key==="ArrowRight"?C:0;if(A===0)return;o.preventDefault();const J=Math.max(se,(h.current?.clientWidth??0)*De);b(Math.min(J,Math.max(se,I+A)))},[b,I]),[D,Z]=u.useState("all"),[L,P]=u.useState(null),[z,B]=u.useState(null),[ee,M]=u.useState(null),[E,F]=u.useState(()=>new Set),V=xe(o=>o.diffLayoutPreference),Ct=xe(o=>o.diffWrapLines),Mt=V==="side-by-side",H=O(o=>o.requestedSource[i]),ce=O(o=>o.clearRequestedSource),Rt=ns(i||null),It=as(i||null),Tt=hs(o=>o.setOverride),Le=ze(o=>o.ensureAll),{github:Be,git:We}=is();u.useEffect(()=>{i&&Le(i,We)},[i,Le,We]);const R=Rt?.current??null,ue=L?.directory===i&&L.kind==="commit"&&!H,X=ue||H?.kind==="commit",q=ms(i||null,R,t&&X,H?.kind==="commit"?H.hash:void 0),U=q.selectedCommit?.hash??(H?.kind==="commit"?H.hash:null),{base:oe,resolved:Et,revision:At}=gs(i||null,R,t),_=u.useMemo(()=>!R||!oe||oe===R?null:{kind:"branch",baseRef:oe,headRef:R},[oe,R]),ke=lt(o=>o.status?.connected??!1),be=lt(o=>o.hasChecked),$e=fe(o=>o.ensureEntry),Ge=fe(o=>o.setParams),Fe=fe(o=>o.refreshTargets);u.useEffect(()=>{if(!i||!R||!be||!ke)return;const o=ls(i,R);$e(o),Ge(o,{directory:i,branch:R,remoteName:null,canShow:!0,github:Be,githubAuthChecked:be,githubConnected:ke}),Fe([{directory:i,branch:R,remoteName:null}])},[R,i,$e,Be,be,ke,Fe,Ge]);const we=fe(o=>i&&R?cs(o.entries,i,R)?.pr?.number??null:null),N=u.useMemo(()=>X&&U?{kind:"commit",hash:U}:H?.kind==="branch"?_??H:H??{kind:"working-tree",scope:D},[_,X,H,D,U]),de=L?.directory===i&&L.kind==="branch"&&!H,ve=de||N.kind==="branch",qe=de||N.kind==="branch"&&!_,Ue=ue||X&&!U,ne=qe||Ue,pe=u.useMemo(()=>N.kind==="pr"?N:we?{kind:"pr",number:we}:null,[we,N]),Pt=u.useCallback(o=>{P(null),ce(i),Z(o)},[ce,i]),d=O(o=>o.getEntry(i,N)),ye=O(o=>o.load),_e=O(o=>o.generate),zt=O(o=>o.cancel),te=O(o=>o.requestSource);u.useEffect(()=>{!de||!_||(te(i,_),P(null))},[_,de,i,te]),u.useEffect(()=>{!ue||!U||(te(i,{kind:"commit",hash:U}),P(null))},[ue,i,te,U]);const Ht=O(o=>o.selectModel),he=O(o=>o.getSelectedModel(i,N)),Ot=O(o=>o.selectLanguage),je=O(o=>o.getSelectedLanguage(i,N)),Se=d.result?.language,W=je&&l.includes(je)?je:Se&&l.includes(Se)?Se:r,Dt=N.kind==="branch"?At:"";u.useEffect(()=>{t&&!ne&&ye(i,N,{language:W})},[W,ne,i,ye,N,he,Dt,t]);const j=u.useMemo(()=>ne?null:js(d.result),[ne,d.result]),Ne=d.result?.generatedAt,Ke=u.useRef(void 0);u.useEffect(()=>{Ke.current!==Ne&&(Ke.current=Ne,F(new Set),B(j?.stops[0]?.stop.id??null))},[Ne,j]);const Ce=u.useCallback(o=>{B(o),F(C=>{if(C.has(o))return C;const A=new Set(C);return A.add(o),A})},[]),Me=u.useCallback(o=>{Ce(o),M(o)},[Ce]),Ve=u.useCallback(o=>{if(!j||j.stops.length===0)return;const C=j.stops.findIndex(J=>J.stop.id===z),A=Math.min(j.stops.length-1,Math.max(0,(C<0?0:C)+o));Me(j.stops[A].stop.id)},[z,Me,j]),[Lt,Xe]=u.useState(!1),[Bt,Je]=u.useState(!1),Wt=X?"commit":ve?"branch":N.kind==="working-tree"?N.scope:N.kind,$t=X?e("commitComparison.mode"):ve?e("walkthrough.scope.branch"):N.kind==="pr"?e("walkthrough.scope.pullRequest",{number:N.number}):e(D==="all"?"walkthrough.scope.all":D==="staged"?"walkthrough.scope.staged":"walkthrough.scope.working"),Qe=xt(o=>o.modelsMetadata),[ae,Gt]=u.useState(void 0),Re=o=>!o||ae===void 0?!1:ae.includes(o),Ft=d.readiness?.model&&d.readiness.model.hasLogin!==!1&&Re(d.readiness.model.providerID)?`${d.readiness.model.providerID}/${d.readiness.model.modelID}`:void 0,qt=d.result?.model&&Re(d.result.model.providerID)?`${d.result.model.providerID}/${d.result.model.modelID}`:void 0,me=(he&&Re(he.split("/")[0])?he:void 0)??qt??Ft,[Ut,..._t]=(me??"").split("/"),Ye=_t.join("/");u.useEffect(()=>{if(ae!==void 0)return;let o=!1;return(async()=>{try{const C=await yt("/api/small-model",{method:"GET",headers:{Accept:"application/json"}});if(!C.ok)return;const A=await C.json().catch(()=>null);!o&&Array.isArray(A?.authenticatedProviders)&&Gt(A.authenticatedProviders.filter(J=>typeof J=="string"))}catch{}})(),()=>{o=!0}},[ae]);const Kt=u.useCallback((o,C)=>Qe.get(`${o}/${C}`)?.structured_output!==!1,[Qe]),Ze=d.status==="generating",et=d.result?.model?`${d.result.model.providerID}/${d.result.model.modelID}`:void 0,Ie=d.result?.language,Te=Ie&&l.includes(Ie)?Ie:void 0,tt=d.status==="ready"&&!!j,Ee=tt&&!!Te&&Te!==W,st=tt&&!!et&&!!me&&et!==me,rt=As(d.stage,d.status==="generating"),ot=u.useRef(!1),nt=u.useRef(d.status);u.useEffect(()=>{nt.current!=="generating"&&d.status==="generating"&&(ot.current=!j),nt.current=d.status},[d.status,j]);const Vt=ot.current&&(d.status==="generating"||rt.holding),Ae=d.error?.code==="context-too-small"||d.error?.code==="structured-output-unsupported"||d.error?.code==="no-model"||d.error?.code==="empty-diff"||d.error?.code==="only-generated"||d.error?.code==="output-exhausted"||d.error?.code==="server-unsupported"?d.error.code:d.readiness&&!d.readiness.ready&&!j&&d.readiness.reason!=="no-provider-login"?d.readiness.reason:void 0,Xt=d.error?.model??d.readiness?.model,Jt=d.error?.requiredChars??d.readiness?.requiredChars,Qt=d.error?.availableChars??d.readiness?.availableChars,ie=ne||!me||!!(d.readiness&&!d.readiness.ready),Pe=u.useCallback(o=>{ie||_e(i,N,{force:o,language:W})},[W,i,_e,ie,N]),at=us(p||null),Yt=ze(o=>o.ensureNestedRepos),Zt=ze(o=>o.selectNestedRepo);return m===!1&&at!==!0?s.jsx(vs,{rootIsGitRepo:m,resolvedIsGitRepo:at,nestedRepos:f,onRetryDiscovery:()=>{n&&Yt(n,{force:!0})}}):s.jsxs("div",{ref:h,className:"flex h-full min-h-0 flex-col",children:[s.jsxs("header",{className:"flex shrink-0 flex-wrap items-center gap-2 border-b border-border/60 px-3 py-2",children:[m===!1&&Array.isArray(f)&&f.length>0?s.jsx(ys,{repositories:f,selectedRepository:p??null,onSelectRepository:o=>{n&&Zt(n,o)},repositoryRoot:n??void 0}):null,s.jsxs(ct,{open:Lt,onOpenChange:Xe,children:[s.jsx(ut,{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:$t}),s.jsx(S,{name:"arrow-down-s",className:"size-4 flex-shrink-0 opacity-60"})]})}),s.jsx(dt,{align:"start",className:"w-48",children:s.jsxs(pt,{value:Wt,onValueChange:o=>{if(Xe(!1),o==="commit"){ce(i),P({directory:i,kind:"commit"});return}if(o==="branch"){_?(P(null),te(i,_)):(ce(i),P({directory:i,kind:"branch"}));return}if(o==="pr"){P(null),pe&&te(i,pe);return}Pt(o)},children:[s.jsx(ht,{className:gt,children:e("walkthrough.scope.group.workingTree")}),qs.map(o=>s.jsx(le,{value:o,children:e(o==="all"?"walkthrough.scope.all":o==="staged"?"walkthrough.scope.staged":"walkthrough.scope.working")},o)),R&&s.jsxs(s.Fragment,{children:[s.jsx(mt,{}),s.jsx(le,{value:"branch",children:e("walkthrough.scope.branch")})]}),s.jsx(mt,{}),s.jsx(le,{value:"commit",children:e("commitComparison.mode")}),pe&&s.jsx(le,{value:"pr",children:e("walkthrough.scope.pullRequest",{number:pe.number})})]})})]}),ve&&s.jsx(fs,{branches:It?.all??[],currentBranch:R,base:oe,onSelect:o=>{i&&R&&Tt(i,R,o)}},JSON.stringify([i,R])),X&&s.jsx(xs,{commits:q.commits,selectedHash:U,loading:q.loading,error:q.error,onSelect:q.select,onRefresh:()=>{q.refresh()}},JSON.stringify([i,R])),s.jsxs("div",{className:"ml-auto flex min-w-0 items-center gap-1",children:[s.jsxs(bt,{children:[s.jsx(wt,{asChild:!0,children:s.jsx($,{type:"button",variant:"ghost",size:"sm","aria-label":e("walkthrough.help.guide"),onClick:()=>{ds(Us)},children:s.jsx(S,{name:"question",className:"size-4"})})}),s.jsx(vt,{children:s.jsx("p",{className:"typography-micro leading-tight",children:e("walkthrough.help.guide")})})]}),s.jsxs(ct,{open:Bt,onOpenChange:Je,children:[s.jsx(ut,{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(W):void 0,children:[s.jsx(S,{name:"global",className:"size-4 flex-shrink-0 opacity-70"}),!x&&s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"truncate",children:a(W)}),s.jsx(S,{name:"arrow-down-s",className:"size-4 flex-shrink-0 opacity-60"})]})]})}),s.jsxs(dt,{align:"end",className:"w-48",children:[s.jsx(ht,{className:gt,children:e("walkthrough.language.menuLabel")}),s.jsx(pt,{value:W,onValueChange:o=>{Je(!1),Ot(i,N,o)},children:l.map(o=>s.jsx(le,{value:o,children:a(o)},o))})]})]}),s.jsx(kt,{providerId:Ut??"",modelId:Ye,onChange:(o,C)=>{Ht(i,N,o&&C?`${o}/${C}`:null)},allowedProviderIds:ae??[],isModelAllowed:Kt,tooltipsEnabled:!1,dropdownPortalToBody:!0,compact:x,className:K("h-8 min-w-0",!x&&"max-w-48")}),j&&s.jsxs(s.Fragment,{children:[s.jsx($,{type:"button",variant:"ghost",size:"sm","aria-label":e("walkthrough.action.previous"),onClick:()=>Ve(-1),children:s.jsx(S,{name:"arrow-right-s",className:"size-4 rotate-180"})}),s.jsx($,{type:"button",variant:"ghost",size:"sm","aria-label":e("walkthrough.action.next"),onClick:()=>Ve(1),children:s.jsx(S,{name:"arrow-right-s",className:"size-4"})})]}),Ze?s.jsx($,{type:"button",variant:"outline",size:"sm","aria-label":x?e("walkthrough.action.cancel"):void 0,title:x?e("walkthrough.action.cancel"):void 0,onClick:()=>zt(i,N),children:x?s.jsx(S,{name:"stop",className:"size-3.5"}):e("walkthrough.action.cancel")}):s.jsxs($,{type:"button",variant:"outline",size:"sm",className:ie?"border-border text-muted-foreground":bs,disabled:ie,"aria-label":x?e(j?"walkthrough.action.regenerate":"walkthrough.action.generate"):void 0,title:x?e(j?"walkthrough.action.regenerate":"walkthrough.action.generate"):void 0,onClick:()=>Pe(!!j),children:[s.jsx(S,{name:j?"refresh":"route",className:"size-3.5"}),!x&&e(j?"walkthrough.action.regenerate":"walkthrough.action.generate")]})]})]}),d.status==="generating"&&j&&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(S,{name:"loader-4",className:"size-4 shrink-0 animate-spin text-[var(--status-info)]"}),s.jsx("span",{className:"typography-meta text-foreground",children:d.stage==="collecting"?e("walkthrough.stage.collecting"):d.stage==="assembling"?e("walkthrough.stage.assembling"):e("walkthrough.stage.asking")})]}),(Ee||st)&&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(S,{name:"information",className:"size-4 shrink-0 text-[var(--status-info)]"}),s.jsx("span",{className:"typography-meta text-foreground",children:Ee&&st?e("walkthrough.missing.languageAndModel"):Ee?e("walkthrough.missing.language",{requested:a(W),shown:a(Te)}):e("walkthrough.missing.model",{model:Ye})}),s.jsx($,{type:"button",variant:"ghost",size:"xs",className:"ml-auto",disabled:ie,onClick:()=>Pe(!1),children:e("walkthrough.action.generate")})]}),j?.isStale&&d.status!=="generating"&&s.jsxs("div",{className:"flex shrink-0 items-center gap-2 border-b border-border/60 bg-status-warning/10 px-3 py-2",children:[s.jsx(S,{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:j.staleStopCount})}),s.jsx($,{type:"button",variant:"ghost",size:"xs",className:"ml-auto",disabled:Ze,onClick:()=>Pe(!0),children:e("walkthrough.action.regenerate")})]}),d.error&&!Ae&&d.error.code!=="no-provider-login"&&s.jsxs("div",{className:"flex shrink-0 items-start gap-2 border-b border-border/60 bg-status-error/10 px-3 py-2",children:[s.jsx(S,{name:"error-warning",className:"mt-0.5 size-4 shrink-0 text-status-error"}),s.jsx("span",{className:"typography-meta line-clamp-2 text-foreground",title:d.error.message,children:d.error.message})]}),s.jsx("div",{className:K("flex min-h-0 flex-1",k?"flex-row":"flex-col"),children:Ue?s.jsx("div",{className:"flex flex-1 items-center justify-center gap-2 p-8 typography-meta text-muted-foreground",children:q.loading?s.jsx(S,{name:"loader-4",className:"size-6 animate-spin"}):q.error??e("commitComparison.noCommits")}):qe?s.jsx("div",{className:"flex flex-1 flex-col items-center justify-center gap-3 p-8 text-center",children:!Et&&R?s.jsx(S,{name:"loader-4",className:"size-6 animate-spin text-muted-foreground"}):s.jsx("p",{className:"typography-meta text-muted-foreground",children:e("gitView.pr.toast.baseBranchRequired")})}):Ae?s.jsx(Ms,{reason:Ae,model:Xt,requiredChars:Jt,availableChars:Qt,onRetry:()=>{ye(i,N)}}):Vt?s.jsx("div",{className:"flex flex-1 flex-col items-center justify-center gap-3 p-8",children:s.jsx(Is,{progress:rt})}):j?s.jsxs(s.Fragment,{children:[k&&s.jsxs(s.Fragment,{children:[s.jsx(Gs,{view:j,activeStopId:z,visitedStopIds:E,onSelectStop:Me,width:I}),s.jsx("div",{role:"separator","aria-orientation":"vertical","aria-label":e("walkthrough.toc.resize"),tabIndex:0,onPointerDown:T,onKeyDown:Y,className:K("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(Os,{view:j,activeStopId:z,scrollToStopId:ee,onActiveStopChange:Ce,onScrollHandled:()=>M(null),renderSideBySide:Mt,wrapLines:Ct})]}):s.jsx("div",{className:"flex flex-1 flex-col items-center justify-center gap-3 p-8 text-center",children:d.status==="loading"?s.jsx(S,{name:"loader-4",className:"size-6 animate-spin text-muted-foreground"}):s.jsxs(s.Fragment,{children:[s.jsx(S,{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{dn as WalkthroughView};
|