@vantran-se/openchamber-web 2.1.1 → 2.2.0
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 +32 -24
- package/bin/cli.js +1 -3
- package/bin/cli.test.js +40 -16
- package/bin/lib/DOCUMENTATION.md +6 -5
- package/bin/lib/cli-args.js +6 -1
- package/bin/lib/cli-args.test.js +34 -0
- package/bin/lib/cli-lifecycle.js +0 -1
- package/bin/lib/cli-network.js +8 -2
- package/bin/lib/cli-process.js +1 -1
- package/bin/lib/cli-settings-accessors.test.js +21 -13
- package/bin/lib/cli-startup.js +17 -11
- package/bin/lib/cli-startup.test.js +92 -2
- package/bin/lib/commands-connect-url.js +8 -1
- package/bin/lib/commands-schedule.js +8 -2
- package/bin/lib/commands-serve.js +15 -21
- package/bin/lib/commands-update.js +12 -24
- package/bin/lib/commands-update.test.js +14 -46
- package/dist/assets/DiffView-Cv9MSXl1.js +4 -0
- package/dist/assets/FilePreviewCommentMenu-D4kLseHj.js +4 -0
- package/dist/assets/FilesView-BVoD8I2x.js +14 -0
- package/dist/assets/{GitView-DzuzhIPx.js → GitView-Bzb8p-ew.js} +4 -4
- package/dist/assets/GuestSurfacePane-Crdbvsxo.js +1 -0
- package/dist/assets/InProgressOperationBanner-CwMjNQgk.js +2 -0
- package/dist/assets/{JsonTreeView-B_EPRjzy.js → JsonTreeView-DRKHZfsn.js} +1 -1
- package/dist/assets/MarkdownImageGallery-DZtqT1Zn.js +1 -0
- package/dist/assets/MarkdownRendererImpl-CqG7HCNd.js +10 -0
- package/dist/assets/OnboardingScreen-DMIxwYK5.js +1 -0
- package/dist/assets/{PatchDiff-6yh1csza.js → PatchDiff-CUcCg1jk.js} +1 -1
- package/dist/assets/PierreDiffViewer-CnnR-dnD.js +228 -0
- package/dist/assets/PlanView-RCBadcY7.js +5 -0
- package/dist/assets/SettingsView-CjBjZFRO.js +30 -0
- package/dist/assets/SettingsWindow-DyM7QuhI.js +1 -0
- package/dist/assets/SubmoduleDiffSummary-BWIfgMED.js +1 -0
- package/dist/assets/ToolOutputDialog-Q0P3FuAi.js +15 -0
- package/dist/assets/ToolPartDiffPreview-p7qR9FpU.js +8 -0
- package/dist/assets/{VirtualizedFileDiff-BTJVRkyo.js → VirtualizedFileDiff-CFpjL8Ns.js} +3 -3
- package/dist/assets/{Virtualizer-xCEYz34p.js → Virtualizer-C0IsclZn.js} +1 -1
- package/dist/assets/WalkthroughView-DI31zD02.js +4 -0
- package/dist/assets/appThemeRegistry-B9gkFq9i.js +1 -0
- package/dist/assets/{computeVirtualFileMetrics-CmPe29DM.js → computeVirtualFileMetrics-C2WM6JC2.js} +2 -2
- package/dist/assets/de-YKfk5MmC.js +14 -0
- package/dist/assets/es-_gwT0kr-.js +20 -0
- package/dist/assets/fileTreeStatus-D438yi8M.js +1 -0
- package/dist/assets/fr-DqzvXmIm.js +18 -0
- package/dist/assets/index-BLaHKdtx.js +1 -0
- package/dist/assets/index-BkMXRrVQ.css +1 -0
- package/dist/assets/index-DxNa7xYB.js +65 -0
- package/dist/assets/initializeSharedPreferences-Bck5EAWP.js +1 -0
- package/dist/assets/{isDiffPlainText-CQmDCnEv.js → isDiffPlainText-Dgbw8VKk.js} +1 -1
- package/dist/assets/{isFilePlainText-CYBUzW4I.js → isFilePlainText-_ZS5UYRj.js} +1 -1
- package/dist/assets/ja-B-GFYhQE.js +20 -0
- package/dist/assets/ko-mzksfqDC.js +20 -0
- package/dist/assets/main-C5Xx8dn_.js +2 -0
- package/dist/assets/main-CfBSQM1H.js +990 -0
- package/dist/assets/markdownCore-BmWwW1ll.js +7 -0
- package/dist/assets/miniChat-mnKwy4vQ.js +2 -0
- package/dist/assets/mobile-DeEQd0wZ.js +2 -0
- package/dist/assets/nl-CWQr6NSq.js +20 -0
- package/dist/assets/{parseDiffFromFile-Cy0PNxun.js → parseDiffFromFile-BUgn-T9p.js} +2 -2
- package/dist/assets/patchFileDiff-Dt8LhgBh.js +13 -0
- package/dist/assets/pl-UmRcDUX2.js +20 -0
- package/dist/assets/pt-BR-BSLybvVF.js +20 -0
- package/dist/assets/relocateRestoredSession-B5E9xb3T.js +1 -0
- package/dist/assets/renderElectronMiniChatApp-C0a9A5_J.js +2 -0
- package/dist/assets/renderMobileApp-BNncg3Pk.js +25 -0
- package/dist/assets/runtimeEndpointReset-CZ5aafpl.js +62 -0
- package/dist/assets/{selectionMarkdown-TkYk5h9l.js → selectionMarkdown-CUN3wUld.js} +9 -9
- package/dist/assets/{sessionOwnership-Bs1xbRfB.js → sessionOwnership-BSuxCEhb.js} +1 -1
- package/dist/assets/shikiHighlight-DHDx-6eM.js +1 -0
- package/dist/assets/space-apply-DM_2pRW7.js +1 -0
- package/dist/assets/space-close-Bpomt8z0.js +1 -0
- package/dist/assets/{surface-B6n7wJtt.js → surface-C-jQaGnL.js} +1 -1
- package/dist/assets/{textMateThemeFromAppTheme-CDlKffWz.js → textMateThemeFromAppTheme-DlsTphbY.js} +1 -1
- package/dist/assets/tr-gaTrX_HK.js +11 -0
- package/dist/assets/uk-CnJF6ykl.js +20 -0
- package/dist/assets/{useAppFontEffects-DCqCVGlT.js → useAppFontEffects-DGlvOqP_.js} +194 -233
- package/dist/assets/useInlineCommentController-kMN4Wg_D.js +2 -0
- package/dist/assets/{useRootScrollLock-BowwS8kq.js → useRootScrollLock-DMPpvpNP.js} +2 -2
- package/dist/assets/{vendor-base-ui-DX96QhTP.js → vendor-base-ui-Det7U81h.js} +1 -1
- package/dist/assets/{vendor-codemirror-autocomplete-DW1FQz9_.js → vendor-codemirror-autocomplete-BSHQHbKu.js} +1 -1
- package/dist/assets/{vendor-codemirror-commands-DpmhalwN.js → vendor-codemirror-commands-C4G_dPWe.js} +1 -1
- package/dist/assets/{vendor-codemirror-lang-angular-BqExbN1M.js → vendor-codemirror-lang-angular-B6LbBGHB.js} +1 -1
- package/dist/assets/{vendor-codemirror-lang-cpp-DZA36HfS.js → vendor-codemirror-lang-cpp-BWWXBx7W.js} +1 -1
- package/dist/assets/{vendor-codemirror-lang-css-B07blnnZ.js → vendor-codemirror-lang-css-Cayfb29q.js} +1 -1
- package/dist/assets/{vendor-codemirror-lang-go-BM8K9D1-.js → vendor-codemirror-lang-go-BoKlCNKw.js} +1 -1
- package/dist/assets/{vendor-codemirror-lang-html-DaH9adfE.js → vendor-codemirror-lang-html-BQWerHsJ.js} +1 -1
- package/dist/assets/{vendor-codemirror-lang-java-CsdC0viz.js → vendor-codemirror-lang-java-DWX7Fq_K.js} +1 -1
- package/dist/assets/{vendor-codemirror-lang-javascript-CpGYXGuo.js → vendor-codemirror-lang-javascript-DbpEcZM0.js} +2 -2
- package/dist/assets/{vendor-codemirror-lang-jinja-BBeGzXw5.js → vendor-codemirror-lang-jinja-D1JIJRA7.js} +1 -1
- package/dist/assets/{vendor-codemirror-lang-json-58T70Hqs.js → vendor-codemirror-lang-json-BzgckzmB.js} +1 -1
- package/dist/assets/{vendor-codemirror-lang-less-BI-xCA59.js → vendor-codemirror-lang-less-B9EpDXFi.js} +1 -1
- package/dist/assets/{vendor-codemirror-lang-liquid-zEcMa-zy.js → vendor-codemirror-lang-liquid-9U7kRbSf.js} +1 -1
- package/dist/assets/{vendor-codemirror-lang-markdown-BLKnlLP4.js → vendor-codemirror-lang-markdown-D2TEBIvZ.js} +1 -1
- package/dist/assets/{vendor-codemirror-lang-php-9f35M83-.js → vendor-codemirror-lang-php-BT6sDVzE.js} +1 -1
- package/dist/assets/vendor-codemirror-lang-python-jAMtYiA9.js +3 -0
- package/dist/assets/{vendor-codemirror-lang-rust-MNDL_jZQ.js → vendor-codemirror-lang-rust-CVO56EiL.js} +1 -1
- package/dist/assets/{vendor-codemirror-lang-sass-p9epsSNm.js → vendor-codemirror-lang-sass-DZlOoUWu.js} +1 -1
- package/dist/assets/{vendor-codemirror-lang-sql-Bqzh0EXX.js → vendor-codemirror-lang-sql-fZ6t1DPw.js} +1 -1
- package/dist/assets/{vendor-codemirror-lang-vue-BnNUWV-p.js → vendor-codemirror-lang-vue-DxbqrLiE.js} +1 -1
- package/dist/assets/{vendor-codemirror-lang-wast-C2a-oLmk.js → vendor-codemirror-lang-wast-DyU1Gt-I.js} +1 -1
- package/dist/assets/vendor-codemirror-lang-xml-C9a_K5_p.js +1 -0
- package/dist/assets/{vendor-codemirror-lang-yaml-C0sjswB0.js → vendor-codemirror-lang-yaml-Cptq8l0e.js} +1 -1
- package/dist/assets/{vendor-codemirror-language-ByBn5zIW.js → vendor-codemirror-language-DufXoQvE.js} +2 -2
- package/dist/assets/vendor-codemirror-language-data-CtwSWKtX.js +2 -0
- package/dist/assets/{vendor-codemirror-search-ib-sHD5W.js → vendor-codemirror-search-CvXM_pZg.js} +1 -1
- package/dist/assets/{vendor-codemirror-state-G3UuR-be.js → vendor-codemirror-state-Dek9sMtw.js} +1 -1
- package/dist/assets/{vendor-codemirror-view-Bniqp7p5.js → vendor-codemirror-view-1e0FQ6Wn.js} +1 -1
- package/dist/assets/vendor-framer-motion-DxDVhOLc.js +9 -0
- package/dist/assets/vendor-katex-CuQvj9-L.js +257 -0
- package/dist/assets/vendor-katex-DdZNUVNG.css +1 -0
- package/dist/assets/{vendor-motion-dom-DcCgeG69.js → vendor-motion-dom-HXPOMxb7.js} +1 -1
- package/dist/assets/{vendor-opencode-client-DHzhmLwV.js → vendor-opencode-client-BmFcUkbQ.js} +1 -1
- package/dist/assets/{vendor-replit-codemirror-vim-DkzqxN2H.js → vendor-replit-codemirror-vim-BlJRn-cW.js} +2 -2
- package/dist/assets/{vendor-tanstack-react-virtual-H_JmXOFV.js → vendor-tanstack-react-virtual-CvuLsk7D.js} +1 -1
- package/dist/assets/{vendor-tanstack-virtual-core-Dxc8hSTB.js → vendor-tanstack-virtual-core-DPaNcJcT.js} +1 -1
- package/dist/assets/zh-CN-t2vigSB1.js +20 -0
- package/dist/assets/zh-TW-jAgqBokB.js +20 -0
- package/dist/index.html +6 -6
- package/dist/mini-chat.html +6 -6
- package/dist/mobile.html +6 -6
- package/package.json +8 -5
- package/server/index.js +80 -36
- package/server/lib/agent-memory/actions.js +1 -6
- package/server/lib/agent-memory/routes.js +1 -2
- package/server/lib/agent-memory/runtime.js +1 -8
- package/server/lib/agent-tool/DOCUMENTATION.md +7 -3
- package/server/lib/agent-tool/runtime.js +3 -6
- package/server/lib/agent-tool/runtime.test.js +0 -2
- package/server/lib/browser-control/DOCUMENTATION.md +6 -0
- package/server/lib/changelog/update-notes.js +1 -1
- package/server/lib/context-obligatory/runtime.js +1 -2
- package/server/lib/dev-tunnel/DOCUMENTATION.md +8 -0
- package/server/lib/dev-tunnel/client.js +21 -10
- package/server/lib/dev-tunnel/tunnel.test.js +34 -0
- package/server/lib/dispatch-results/runtime.js +1 -1
- package/server/lib/enterprise-mode.d.ts +1 -0
- package/server/lib/enterprise-mode.js +13 -2
- package/server/lib/enterprise-mode.test.js +21 -0
- package/server/lib/event-stream/DOCUMENTATION.md +2 -2
- package/server/lib/event-stream/index.js +1 -3
- package/server/lib/event-stream/translate-v2.js +1 -9
- package/server/lib/event-stream/translate-v2.test.js +0 -11
- package/server/lib/fs/DOCUMENTATION.md +5 -2
- package/server/lib/fs/routes.js +62 -15
- package/server/lib/fs/routes.test.js +278 -48
- package/server/lib/fs/workspace-file-names.js +104 -0
- package/server/lib/fs/workspace-file-names.test.js +62 -0
- package/server/lib/git/DOCUMENTATION.md +17 -5
- package/server/lib/git/contributor-provenance-storage.js +9 -6
- package/server/lib/git/contributor-provenance-storage.test.js +29 -0
- package/server/lib/git/credential-broker.js +1 -1
- package/server/lib/git/credential-resolver.js +1 -4
- package/server/lib/git/credentials.js +1 -0
- package/server/lib/git/discovery-endpoint.js +1 -1
- package/server/lib/git/identity-provisioning.js +2 -1
- package/server/lib/git/identity-storage.js +3 -4
- package/server/lib/git/lfs-discovery.js +14 -14
- package/server/lib/git/lfs-discovery.test.js +16 -6
- package/server/lib/git/network-operation-plan.js +50 -62
- package/server/lib/git/network-operation-plan.test.js +103 -1
- package/server/lib/git/network-operation-registry.js +4 -6
- package/server/lib/git/network-operation-storage.js +4 -6
- package/server/lib/git/network-operations.js +12 -4
- package/server/lib/git/network-operations.test.js +19 -6
- package/server/lib/git/redaction.js +2 -1
- package/server/lib/git/repository-credential-runtime.js +5 -3
- package/server/lib/git/repository-credential-runtime.test.js +22 -0
- package/server/lib/git/routes.js +31 -137
- package/server/lib/git/routes.test.js +2 -2
- package/server/lib/git/service.js +143 -27
- package/server/lib/git/service.test.js +215 -1
- package/server/lib/git/ssh-credential-storage.js +1 -4
- package/server/lib/git/submodule-discovery.js +1 -1
- package/server/lib/git/worktree-bootstrap-storage.js +3 -4
- package/server/lib/git/worktree-bootstrap-storage.test.js +15 -0
- package/server/lib/git/worktree-creation.js +194 -0
- package/server/lib/git/worktree-creation.test.js +155 -0
- package/server/lib/github/DOCUMENTATION.md +11 -6
- package/server/lib/github/auth.js +2 -4
- package/server/lib/github/device-flow.js +2 -2
- package/server/lib/github/gh-cli-credential.js +1 -0
- package/server/lib/github/octokit.js +31 -0
- package/server/lib/github/pr-status.js +35 -18
- package/server/lib/github/pr-status.test.js +271 -3
- package/server/lib/github/reference-search.js +102 -13
- package/server/lib/github/reference-search.test.js +48 -7
- package/server/lib/github/routes.auth.test.js +18 -0
- package/server/lib/github/routes.js +360 -6
- package/server/lib/github/routes.mutations.test.js +239 -0
- package/server/lib/github/routes.test.js +134 -2
- package/server/lib/gitlab/DOCUMENTATION.md +5 -1
- package/server/lib/gitlab/auth-storage.test.js +1 -0
- package/server/lib/gitlab/mappers.js +30 -1
- package/server/lib/gitlab/resources.js +230 -6
- package/server/lib/gitlab/resources.test.js +179 -0
- package/server/lib/gitlab/routes.js +200 -6
- package/server/lib/gitlab/routes.test.js +186 -2
- package/server/lib/gitlab/validation.js +1 -5
- package/server/lib/guests/DOCUMENTATION.md +1 -1
- package/server/lib/guests/oauth.js +2 -2
- package/server/lib/guests/service.js +1 -1
- package/server/lib/guests/sockets.js +1 -1
- package/server/lib/injected-env.d.ts +8 -0
- package/server/lib/injected-env.js +50 -0
- package/server/lib/injected-env.test.js +56 -0
- package/server/lib/linear/DOCUMENTATION.md +5 -6
- package/server/lib/linear/issues.js +62 -4
- package/server/lib/linear/issues.test.js +68 -0
- package/server/lib/linear/oauth.js +5 -5
- package/server/lib/linear/parse.js +2 -9
- package/server/lib/message-queue/DOCUMENTATION.md +23 -1
- package/server/lib/message-queue/runtime.js +85 -12
- package/server/lib/message-queue/runtime.test.js +172 -2
- package/server/lib/notifications/apns-runtime.js +5 -6
- package/server/lib/notifications/apns-runtime.test.js +20 -4
- package/server/lib/openchamber-control/DOCUMENTATION.md +19 -1
- package/server/lib/openchamber-control/actions.js +2 -1
- package/server/lib/openchamber-control/service.js +119 -20
- package/server/lib/openchamber-control/service.test.js +166 -0
- package/server/lib/openchamber-sessions/archive-store.js +1 -6
- package/server/lib/openchamber-sessions/routes.js +47 -12
- package/server/lib/openchamber-sessions/routes.test.js +65 -2
- package/server/lib/openchamber-sessions/session-metadata-store.js +1 -6
- package/server/lib/opencode/DOCUMENTATION.md +22 -8
- package/server/lib/opencode/agents.js +62 -0
- package/server/lib/opencode/auth-state-runtime.js +3 -1
- package/server/lib/opencode/auth.d.ts +1 -1
- package/server/lib/opencode/auth.js +8 -0
- package/server/lib/opencode/auth.test.js +31 -0
- package/server/lib/opencode/config-entity-routes.js +16 -0
- package/server/lib/opencode/config-entity-v2.test.js +16 -1
- package/server/lib/opencode/config-paths.test.js +2 -2
- package/server/lib/opencode/config-v2.js +2 -4
- package/server/lib/opencode/feature-routes-runtime.js +89 -49
- package/server/lib/opencode/lifecycle.js +41 -21
- package/server/lib/opencode/lifecycle.test.js +50 -2
- package/server/lib/opencode/model-discovery.js +1 -1
- package/server/lib/opencode/model-discovery.test.js +17 -0
- package/server/lib/opencode/models-metadata.js +0 -2
- package/server/lib/opencode/openchamber-routes.test.js +3 -3
- package/server/lib/opencode/plugins.js +6 -9
- package/server/lib/opencode/provider-source-route.test.js +101 -3
- package/server/lib/opencode/providers-disabled.test.js +59 -0
- package/server/lib/opencode/providers.js +34 -0
- package/server/lib/opencode/proxy.js +11 -3
- package/server/lib/opencode/routes.js +40 -2
- package/server/lib/opencode/settings-helpers.js +27 -1
- package/server/lib/opencode/settings-helpers.test.js +19 -7
- package/server/lib/opencode/settings-registry.json +27 -16
- package/server/lib/opencode/settings-runtime.test.js +18 -0
- package/server/lib/opencode/shared-service-runtime.js +23 -104
- package/server/lib/opencode/shared.js +77 -46
- package/server/lib/opencode/shared.test.js +12 -12
- package/server/lib/opencode/shutdown-runtime.test.js +2 -3
- package/server/lib/opencode/skill-routes.js +123 -38
- package/server/lib/opencode/skill-routes.test.js +201 -0
- package/server/lib/opencode/skills.js +81 -34
- package/server/lib/opencode/skills.test.js +176 -21
- package/server/lib/opencode/startup-pipeline-runtime.js +6 -3
- package/server/lib/opencode/startup-pipeline-runtime.test.js +2 -1
- package/server/lib/opencode/watcher.test.js +0 -54
- package/server/lib/outbound-proxy.js +52 -0
- package/server/lib/outbound-proxy.test.js +55 -0
- package/server/lib/package-manager.js +23 -17
- package/server/lib/package-manager.test.js +5 -18
- package/server/lib/permission-auto-accept/DOCUMENTATION.md +1 -1
- package/server/lib/permission-auto-accept/runtime.js +19 -47
- package/server/lib/permission-auto-accept/runtime.test.js +2 -2
- package/server/lib/project-context/DOCUMENTATION.md +7 -1
- package/server/lib/project-context/routes.js +1 -2
- package/server/lib/project-context/runtime.js +12 -14
- package/server/lib/project-context/runtime.test.js +78 -2
- package/server/lib/projects/project-config.js +30 -15
- package/server/lib/projects/project-config.test.js +30 -0
- package/server/lib/projects/project-setup.js +1 -2
- package/server/lib/projects/routes.js +1 -2
- package/server/lib/quota/DOCUMENTATION.md +35 -7
- package/server/lib/quota/index.js +1 -0
- package/server/lib/quota/providers/claude/index.js +1 -1
- package/server/lib/quota/providers/cline-pass.js +1 -1
- package/server/lib/quota/providers/exe-dev.js +1 -1
- package/server/lib/quota/providers/google/index.js +1 -1
- package/server/lib/quota/providers/hyper.js +1 -1
- package/server/lib/quota/providers/kimi.js +116 -36
- package/server/lib/quota/providers/kimi.test.js +128 -3
- package/server/lib/quota/providers/opencode-go.js +144 -21
- package/server/lib/quota/providers/opencode-go.test.js +229 -6
- package/server/lib/quota/providers/openrouter.js +1 -1
- package/server/lib/quota/providers/zenmux.js +1 -1
- package/server/lib/quota/utils/auth.js +1 -0
- package/server/lib/quota/utils/transformers.js +2 -6
- package/server/lib/relay/DOCUMENTATION.md +18 -3
- package/server/lib/relay/e2ee.js +7 -7
- package/server/lib/relay/host-client.js +84 -13
- package/server/lib/relay/host-client.test.js +201 -1
- package/server/lib/relay/identity.js +6 -29
- package/server/lib/relay/identity.test.js +18 -28
- package/server/lib/relay/key-store.js +141 -0
- package/server/lib/relay/key-store.test.js +138 -0
- package/server/lib/relay/service.js +8 -8
- package/server/lib/relay/service.test.js +10 -5
- package/server/lib/relay/signing-key.js +13 -36
- package/server/lib/relay/tunnel-codec.js +10 -10
- package/server/lib/route-module-exports.test.js +22 -0
- package/server/lib/routing/DOCUMENTATION.md +23 -3
- package/server/lib/routing/cache.js +87 -0
- package/server/lib/routing/defaults.js +11 -0
- package/server/lib/routing/history.js +12 -4
- package/server/lib/routing/runtime.js +39 -3
- package/server/lib/routing/runtime.test.js +81 -2
- package/server/lib/routing/store.js +12 -1
- package/server/lib/routing/store.test.js +13 -0
- package/server/lib/scheduled-tasks/DOCUMENTATION.md +59 -1
- package/server/lib/scheduled-tasks/existing-session.js +119 -0
- package/server/lib/scheduled-tasks/existing-session.test.js +350 -0
- package/server/lib/scheduled-tasks/loops.js +1 -8
- package/server/lib/scheduled-tasks/routes.js +8 -8
- package/server/lib/scheduled-tasks/runtime.js +103 -13
- package/server/lib/scheduled-tasks/runtime.test.js +48 -0
- package/server/lib/scheduled-tasks/service.js +33 -11
- package/server/lib/scheduled-tasks/service.test.js +128 -2
- package/server/lib/scheduled-tasks/session-defaults.js +27 -0
- package/server/lib/scheduled-tasks/session-defaults.test.js +19 -0
- package/server/lib/session-assist/context.js +1 -0
- package/server/lib/session-folders/routes.js +2 -2
- package/server/lib/session-goal/objectives.js +1 -1
- package/server/lib/session-knowledge/routes.js +2 -2
- package/server/lib/session-knowledge/runtime.js +1 -2
- package/server/lib/session-work/DOCUMENTATION.md +39 -14
- package/server/lib/session-work/questions.js +31 -2
- package/server/lib/session-work/runtime.js +22 -13
- package/server/lib/session-work/runtime.test.js +43 -26
- package/server/lib/session-work/state.js +10 -4
- package/server/lib/session-work/state.test.js +8 -1
- package/server/lib/shared/DOCUMENTATION.md +89 -0
- package/server/lib/shared/guards.js +53 -0
- package/server/lib/shared/guards.test.js +112 -0
- package/server/lib/skills-catalog/DOCUMENTATION.md +10 -8
- package/server/lib/skills-catalog/cache.js +3 -2
- package/server/lib/skills-catalog/curated-sources.js +5 -1
- package/server/lib/skills-catalog/git.js +107 -20
- package/server/lib/skills-catalog/git.test.js +78 -0
- package/server/lib/skills-catalog/install.js +21 -12
- package/server/lib/skills-catalog/scan.js +25 -15
- package/server/lib/skills-catalog/source.js +26 -1
- package/server/lib/skills-catalog/source.test.js +27 -0
- package/server/lib/source-control/DOCUMENTATION.md +2 -1
- package/server/lib/source-control/audit-storage.js +7 -6
- package/server/lib/source-control/audit-storage.test.js +11 -0
- package/server/lib/source-control/binding-service.js +2 -5
- package/server/lib/source-control/change-request-worktree.js +90 -0
- package/server/lib/source-control/change-request-worktree.test.js +121 -0
- package/server/lib/source-control/mutation-executor.js +1 -1
- package/server/lib/source-control/mutation-storage.js +11 -5
- package/server/lib/source-control/provider-instance.js +1 -2
- package/server/lib/source-control/repository-identity.js +1 -1
- package/server/lib/source-control/routes.js +14 -2
- package/server/lib/spaces/DOCUMENTATION.md +42 -17
- package/server/lib/spaces/command-stream.test.js +15 -0
- package/server/lib/spaces/dispatcher.js +7 -0
- package/server/lib/spaces/dispatcher.test.js +17 -0
- package/server/lib/spaces/hardening.js +2 -2
- package/server/lib/spaces/hardening.test.js +1 -1
- package/server/lib/spaces/host.js +2 -0
- package/server/lib/spaces/journey.js +66 -5
- package/server/lib/spaces/journey.test.js +95 -4
- package/server/lib/spaces/layout.js +1 -1
- package/server/lib/spaces/places/docker-disk.js +38 -14
- package/server/lib/spaces/places/docker-disk.test.js +80 -1
- package/server/lib/spaces/places/docker.js +35 -11
- package/server/lib/spaces/places/fake-docker.js +22 -3
- package/server/lib/spaces/places/memory-place.js +3 -0
- package/server/lib/spaces/places/packed.docker.live.test.js +1 -1
- package/server/lib/spaces/routes.js +5 -0
- package/server/lib/spaces/routes.test.js +4 -2
- package/server/lib/spaces/run-command.js +9 -2
- package/server/lib/spaces/tools.js +4 -5
- package/server/lib/spaces/tools.test.js +2 -2
- package/server/lib/terminal/runtime.js +18 -6
- package/server/lib/terminal/runtime.test.js +66 -0
- package/server/lib/tts/index.js +3 -0
- package/server/lib/tts/service.js +4 -2
- package/server/lib/walkthrough/DOCUMENTATION.md +3 -1
- package/server/lib/walkthrough/index.js +2 -3
- package/server/lib/walkthrough/pr-source.test.js +22 -0
- package/server/lib/walkthrough/sources.js +6 -1
- package/server/opencode-proxy.test.js +127 -0
- package/bin/lib/commands-startup.test.js +0 -15
- package/dist/assets/CodeMirrorCommentWidgets-CVDSjcrP.js +0 -1
- package/dist/assets/DiffView-Ct7vL3fD.js +0 -4
- package/dist/assets/FilesView-DT0uEYgT.js +0 -17
- package/dist/assets/GuestSurfacePane-DVvk1VPu.js +0 -1
- package/dist/assets/LinearIssuesView-C10MwA9h.js +0 -1
- package/dist/assets/MarkdownImageGallery-BbN_K_3d.js +0 -1
- package/dist/assets/MarkdownRendererImpl-BLt2Tkk9.js +0 -10
- package/dist/assets/OnboardingScreen-Bgp5A3WB.js +0 -1
- package/dist/assets/PierreDiffViewer-CWJLj-S-.js +0 -210
- package/dist/assets/PlanView-DsRWnsOI.js +0 -5
- package/dist/assets/PublishDialog-CCeKloRu.js +0 -2
- package/dist/assets/SettingsView-BuPPsNPp.js +0 -30
- package/dist/assets/SettingsWindow-CM5fL8Ot.js +0 -1
- package/dist/assets/SubmoduleDiffSummary-CfsMcfiQ.js +0 -1
- package/dist/assets/ToolOutputDialog-mZrfSofz.js +0 -15
- package/dist/assets/ToolPartDiffPreview-BUGCRYEL.js +0 -8
- package/dist/assets/WalkthroughView-ClBo7PPd.js +0 -4
- package/dist/assets/appThemeRegistry-CxzMxR-H.js +0 -1
- package/dist/assets/de-CBla4hjd.js +0 -14
- package/dist/assets/es-BmnZtxTD.js +0 -20
- package/dist/assets/fileTreeStatus-BSHFIGEg.js +0 -1
- package/dist/assets/fr-OVKIBUZO.js +0 -18
- package/dist/assets/index-CKCFKmjF.js +0 -1
- package/dist/assets/index-Dbx4V4GN.css +0 -1
- package/dist/assets/index-vQ1Pg1cr.js +0 -61
- package/dist/assets/ja-6v-yr-gE.js +0 -20
- package/dist/assets/ko-I_ZLvgQ9.js +0 -20
- package/dist/assets/main-CmO4dRtR.js +0 -2
- package/dist/assets/main-b9vqhlYM.js +0 -999
- package/dist/assets/markdownCore-BPEZRQfP.js +0 -7
- package/dist/assets/miniChat-B5Oi7B-6.js +0 -2
- package/dist/assets/mobile-CVtShif9.js +0 -2
- package/dist/assets/nl-DcvIJf46.js +0 -20
- package/dist/assets/patchFileDiff-CW3wCH1O.js +0 -13
- package/dist/assets/pl-JxCUl0sd.js +0 -20
- package/dist/assets/pt-BR-L89mjja2.js +0 -20
- package/dist/assets/relocateRestoredSession-DYh_9oBa.js +0 -1
- package/dist/assets/renderElectronMiniChatApp-BD-1JHSg.js +0 -2
- package/dist/assets/renderMobileApp-7s5InXt1.js +0 -25
- package/dist/assets/runtimeEndpointReset-DqLJC6L1.js +0 -53
- package/dist/assets/shikiHighlight-CXgZnvHh.js +0 -1
- package/dist/assets/space-apply-1trGVIl8.js +0 -1
- package/dist/assets/space-close-y7j-NuBv.js +0 -1
- package/dist/assets/tr-ka5J1flt.js +0 -11
- package/dist/assets/uk-PyGe6Q_u.js +0 -20
- package/dist/assets/useInlineCommentController-CrjSGCpi.js +0 -2
- package/dist/assets/vendor-codemirror-lang-python-B7ClrMIT.js +0 -3
- package/dist/assets/vendor-codemirror-lang-xml-C8tGnS64.js +0 -1
- package/dist/assets/vendor-codemirror-language-data-q2bKO1EM.js +0 -2
- package/dist/assets/vendor-framer-motion-Bq3iTZ6r.js +0 -1
- package/dist/assets/vendor-katex-CHD9BdDO.js +0 -257
- package/dist/assets/vendor-katex-Cp579UoJ.css +0 -1
- package/dist/assets/zh-CN-B0P2tybJ.js +0 -20
- package/dist/assets/zh-TW-Bs9C5cN8.js +0 -20
|
@@ -1 +0,0 @@
|
|
|
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-DCqCVGlT.js";import"./index-vQ1Pg1cr.js";import{S as j}from"./SettingsView-BuPPsNPp.js";import{p as k,D as v,q as D,n as S,l as R}from"./vendor-base-ui-DX96QhTP.js";import"./vendor-scheduler-7OC5HNn7.js";import"./vendor-zod-CxRSdNoV.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-vite-runtime-DD1OZmLC.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-class-variance-authority-5VPnzWs2.js";import"./vendor-clsx-B-dksMZM.js";import"./vendor-dnd-kit-core-BZknOX2w.js";import"./vendor-dnd-kit-utilities-B_MdXhJC.js";import"./vendor-dnd-kit-accessibility-BHxJPORy.js";import"./vendor-dnd-kit-sortable-CsEagZ81.js";import"./vendor-tanstack-react-virtual-H_JmXOFV.js";import"./vendor-tanstack-virtual-core-Dxc8hSTB.js";import"./vendor-framer-motion-Bq3iTZ6r.js";import"./vendor-motion-dom-DcCgeG69.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-ByBn5zIW.js";import"./vendor-lezer-common-B3-cUCR_.js";import"./vendor-codemirror-state-G3UuR-be.js";import"./vendor-marijn-find-cluster-break-DXwl3gUT.js";import"./vendor-codemirror-view-Bniqp7p5.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-CpGYXGuo.js";import"./vendor-lezer-javascript-D7Tj24ot.js";import"./vendor-lezer-lr-bhwg1HMg.js";import"./vendor-codemirror-autocomplete-DW1FQz9_.js";import"./vendor-codemirror-lang-json-58T70Hqs.js";import"./vendor-lezer-json-Iaex0UN-.js";import"./vendor-codemirror-lang-css-B07blnnZ.js";import"./vendor-lezer-css-C5xB6jxd.js";import"./vendor-codemirror-lang-html-DaH9adfE.js";import"./vendor-lezer-html-C0I1p52t.js";import"./vendor-codemirror-lang-markdown-BLKnlLP4.js";import"./vendor-lezer-markdown-C6g-d6P3.js";import"./vendor-codemirror-language-data-q2bKO1EM.js";import"./vendor-codemirror-lang-python-B7ClrMIT.js";import"./vendor-lezer-python-CvuFxeZl.js";import"./vendor-codemirror-commands-DpmhalwN.js";import"./vendor-legendapp-list-DViGR95I.js";import"./vendor-use-sync-external-store-D6wYuSt-.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";import"./vendor-opencode-client-DHzhmLwV.js";import"./runtimeEndpointReset-DqLJC6L1.js";import"./space-apply-1trGVIl8.js";import"./vendor-cron-parser-CjvYVigk.js";import"./vendor-luxon-BZ0puJYg.js";import"./vendor-yaml-3778uTud.js";import"./shikiHighlight-CXgZnvHh.js";import"./vendor-codemirror-search-ib-sHD5W.js";import"./vendor-replit-codemirror-vim-DkzqxN2H.js";import"./vendor-replit-codemirror-vim-core-FHzKdNUS.js";import"./appThemeRegistry-CxzMxR-H.js";import"./textMateThemeFromAppTheme-CDlKffWz.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-floating-ui-utils-D6FqdtJt.js";import"./vendor-floating-ui-dom-BTvzWks8.js";import"./vendor-floating-ui-core-PuGzNPnN.js";import"./vendor-floating-ui-react-dom-DxYCWdHj.js";import"./vendor-qrcode-DTJ12-WC.js";import"./vendor-dijkstrajs-COg3n3zL.js";import"./vendor-strip-json-comments-5dJlOkP1.js";const qo=h=>{const t=y.c(19),{open:c,onOpenChange:i}=h,{t:f}=w(),r=b.useId(),x=_;let p;t[0]!==i?(p=g=>{!g&&x()||i(g)},t[0]=i,t[1]=p):p=t[1];let n;t[2]===Symbol.for("react.memo_cache_sentinel")?(n=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]=n):n=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 oc-modal-shadow 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 e;t[4]!==f?(e=f("settings.window.description"),t[4]=f,t[5]=e):e=t[5];let m;t[6]!==r||t[7]!==e?(m=o.jsx(v,{id:r,className:"sr-only",children:e}),t[6]=r,t[7]=e,t[8]=m):m=t[8];let a;t[9]!==i?(a=o.jsx(j,{onClose:()=>i(!1),isWindowed:!0}),t[9]=i,t[10]=a):a=t[10];let s;t[11]!==r||t[12]!==m||t[13]!==a?(s=o.jsxs(D,{children:[n,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,a]})})]}),t[11]=r,t[12]=m,t[13]=a,t[14]=s):s=t[14];let d;return t[15]!==c||t[16]!==p||t[17]!==s?(d=o.jsx(R,{open:c,onOpenChange:p,children:s}),t[15]=c,t[16]=p,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{qo as SettingsWindow};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{R,r as y,f as I,j as F}from"./vendor-react-BUCujlKS.js";import{kK as z,f as O,L as Q,cL as H,aS as X,kM as Y,kN as Z,gD as ee,kO as te}from"./useAppFontEffects-DCqCVGlT.js";import{h as U,fv as se,fw as re,a as N}from"./index-vQ1Pg1cr.js";import{ba as A}from"./runtimeEndpointReset-DqLJC6L1.js";import{o as K,s as L}from"./vendor-zod-CxRSdNoV.js";const me=(t,e)=>!!t&&e!==null&&t!==e,pe=(t,e,s,n)=>s?t===null||n&&e===null?!0:e!==null&&t===e:!1,ge=(t,e)=>t==="branch"&&!e?"working":t,we=(t,e,s,n,r,c)=>{const i=R.useRef({directory:"",attempts:0}),[u,d]=R.useState(()=>({directory:"",exhausted:!1})),h=R.useRef(r);h.current=r;const o=!!t&&u.directory===t&&u.exhausted;return R.useEffect(()=>{if(!t||!e||n||s)return;const f=i.current.directory===t?i.current.attempts:0;if(f>=c){u.directory===t&&u.exhausted||d({directory:t,exhausted:!0});return}i.current={directory:t,attempts:f+1},h.current()},[t,u,n,e,s,c]),o},ke=(t,e,s,n,r="")=>{const[c,i]=R.useState(()=>new Map),u=R.useRef(c);u.current=c;const d=R.useRef(new Map),h=R.useRef(null),o=R.useRef(s);o.current=s;const f=R.useCallback((l,g)=>{const a=new Map(u.current);if(g===null){if(!a.delete(l))return}else a.set(l,g);u.current=a,i(a)},[]);return R.useEffect(()=>{h.current=t,d.current.clear(),u.current=new Map,i(u.current)},[t]),R.useEffect(()=>{const l=o.current;if(!t||!l||!e)return;let g=!1;const a=new Set,x=d.current;for(const m of e.split("\0"))u.current.has(m)&&x.get(m)===r||(a.add(m),u.current.has(m)||f(m,n),l(m).then(T=>{g||(a.delete(m),x.set(m,r),f(m,T))}).catch(()=>{g||(a.delete(m),x.delete(m),f(m,null))}));return()=>{g=!0;for(const m of a)x.has(m)||f(m,null)}},[e,n,t,r,f]),h.current===t?c:new Map};function ne(t){if(!t.trim())return[];if(!t.startsWith("diff --git "))throw new Error("Invalid pull request diff");return t.split(/(?=^diff --git )/m).filter(Boolean).map(e=>{const s=z(e);if(!s)throw new Error("Invalid pull request file diff");return{path:s.name,previousPath:s.prevName,status:/^new file mode /m.test(e)?"A":/^deleted file mode /m.test(e)?"D":/^rename from /m.test(e)?"R":/^copy from /m.test(e)?"C":"M",insertions:s.hunks.reduce((n,r)=>n+r.additionLines,0),deletions:s.hunks.reduce((n,r)=>n+r.deletionLines,0),patch:e}})}async function _(t,e){const s=K({error:L()}).safeParse(await t.json().catch(()=>null));throw new Error(s.success?s.data.error:`${e} (${t.status})`)}async function ie(t,e,s){const n=await U("/api/walkthrough/pr-diff",{query:A(t,{source:e,context:s}),signal:AbortSignal.timeout(3e4)});if(n.ok||await _(n,"Failed to load pull request diff"),!n.headers.get("content-type")?.includes("text/plain"))throw new Error("Pull request comparison is unavailable on this server");return ne(await n.text())}const ae=K({original:L(),modified:L()});async function oe(t,e,s,n){const r=await U("/api/walkthrough/pr-file",{query:{...A(t,{source:e,context:s}),path:n.path,previousPath:n.previousPath??"",status:n.status},signal:AbortSignal.timeout(3e4)});r.ok||await _(r,"Failed to load pull request file");const c=ae.safeParse(await r.json().catch(()=>null));if(!c.success)throw new Error("Pull request file contents are unavailable on this server");return c.data}class ue{entries=new Map;load(e,s,n,r=!1,c=""){const i=JSON.stringify([e,s,c]),u=this.entries.get(i);if(u&&(!r||u.files===null))return u.pending;const d={scope:e,pending:n(),files:null,bytes:0};return d.pending=d.pending.then(h=>{if(this.entries.get(i)!==d)return h;d.files=h,d.bytes=h.reduce((f,l)=>f+2*(l.patch.length+l.path.length),0);let o=[...this.entries.values()].reduce((f,l)=>f+l.bytes,0);for(const[f,l]of this.entries){if(this.entries.size<=8&&o<=32*1024*1024)break;l===d||l.files===null||(o-=l.bytes,this.entries.delete(f))}return h}).catch(h=>{throw this.entries.get(i)===d&&this.entries.delete(i),h}),this.entries.delete(i),this.entries.set(i,d),d.pending}invalidate(e){for(const[s,n]of this.entries)n.scope===e&&this.entries.delete(s)}}function be(t,e,s=!0,n="",r=null,c=null){const{t:i}=O(),u=Q(p=>p.runtimeKey),d=r?.provider??c,h=e?.kind==="pr"&&r?JSON.stringify(H(r)):"",o=t&&e?JSON.stringify([u,t,e,h]):null,f=se(t??"",u),l=y.useRef({key:o,source:e,enabled:s,pushScope:f,readContext:r,authority:h});l.current={key:o,source:e,enabled:s,pushScope:f,readContext:r,authority:h};const[g,a]=y.useState(null),x=y.useRef(0),[m]=y.useState(()=>new ue),[T,B]=y.useState(0);y.useEffect(()=>re(p=>{m.invalidate(p),!(p!==l.current.pushScope||l.current.source?.kind!=="pr")&&(x.current+=1,B(E=>E+1))}),[m]);const V=y.useCallback(async p=>{const{key:E,source:w,enabled:S,readContext:P,authority:v}=l.current;if(!s||!S||!o||E!==o||!t||!w)return;const M=++x.current,G=N();a(k=>k?.key===o&&k.status==="ready"?{...k,refreshing:!0}:{key:o,status:"loading"});try{let k;if(w.kind==="pr"){if(!P)throw new Error(i(X("session.githubPrPicker.empty.notConnected",d)));k=await m.load(f,w,()=>ie(t,w,P),p,v)}else w.kind==="branch"?k=(await Y(t,{base:w.baseRef,head:w.headRef,includeWorkingTree:!0})).map(b=>({...b,insertions:0,deletions:0})):k=(await Z(t,w.hash)).files.map(b=>({path:b.path,status:b.changeType,previousPath:b.previousPath,insertions:b.insertions,deletions:b.deletions}));if(x.current!==M||N()!==G)return;a(b=>b?.key===o&&b.status==="ready"&&b.files===k?{...b,refreshing:!1}:{key:o,status:"ready",files:k,revision:M,refreshing:!1})}catch(k){if(x.current!==M||N()!==G)return;a({key:o,status:"error",message:k instanceof Error?k.message:i("diffView.state.failedToLoadDiff")})}},[t,s,o,m,d,f,i]),J=y.useCallback(()=>V(!0),[V]);y.useEffect(()=>(V(!1),()=>{x.current+=1}),[V,n,T]);const C=g?.key===o?g:null,j=C?.status==="ready"?C.files:null,D=y.useMemo(()=>new Map((j??[]).map(p=>[p.path,p])),[j]),W=y.useCallback(async(p,E=3)=>{const{key:w,source:S,enabled:P}=l.current,v=D.get(p);if(!t||w!==o||!S||!v||!s||!P)throw new Error(i("diffView.state.failedToLoadDiff"));if(S.kind==="pr"){if(v.patch===void 0)throw new Error(i("diffView.state.failedToLoadDiff"));return{diff:v.patch}}return S.kind==="branch"?ee(t,{base:S.baseRef,head:S.headRef,path:p,contextLines:E,includeWorkingTree:!0}):te(t,{hash:S.hash,path:p,previousPath:v.previousPath,contextLines:E})},[t,s,D,o,i]),$=y.useCallback(async p=>{const{key:E,source:w,enabled:S,readContext:P}=l.current,v=D.get(p);if(!t||E!==o||w?.kind!=="pr"||!P||!v||!s||!S)throw new Error(i("diffView.state.failedToLoadDiff"));return oe(t,w,P,{path:v.path,previousPath:v.previousPath,status:v.status})},[t,s,D,o,i]);return{key:o,revision:C?.status==="ready"?C.revision:0,files:j,loading:!!(s&&o&&(!C||C.status==="loading"||C.status==="ready"&&C.refreshing)),error:C?.status==="error"?C.message:null,refresh:J,fetchDiff:W,fetchFullFile:$}}const q=t=>t.slice(0,7),ye=t=>{const e=I.c(32),{state:s,staged:n}=t,{t:r}=O(),c=n?s.headCommit:s.indexCommit,i=n?s.indexCommit:s.worktreeCommit;let u=null;if(s.hasConflict){let a;e[0]!==r?(a=r("diffView.submodule.conflict"),e[0]=r,e[1]=a):a=e[1],u=a}else if(c&&i){let a;e[2]!==c||e[3]!==r||e[4]!==i?(a=c===i?r("diffView.submodule.commitUnchanged",{commit:q(i)}):r("diffView.submodule.commitChanged",{from:q(c),to:q(i)}),e[2]=c,e[3]=r,e[4]=i,e[5]=a):a=e[5],u=a}else if(i){let a;e[6]!==r||e[7]!==i?(a=r("diffView.submodule.added",{commit:q(i)}),e[6]=r,e[7]=i,e[8]=a):a=e[8],u=a}else if(c){let a;e[9]!==c||e[10]!==n||e[11]!==r?(a=n?r("diffView.submodule.removed",{commit:q(c)}):r("diffView.submodule.notCheckedOut",{commit:q(c)}),e[9]=c,e[10]=n,e[11]=r,e[12]=a):a=e[12],u=a}let d;e[13]!==r?(d=r("diffView.submodule.title"),e[13]=r,e[14]=d):d=e[14];let h;e[15]!==d?(h=F.jsx("div",{className:"typography-ui-label font-semibold text-foreground",children:d}),e[15]=d,e[16]=h):h=e[16];let o;e[17]!==u?(o=u?F.jsx("div",{className:"typography-meta text-muted-foreground",children:u}):null,e[17]=u,e[18]=o):o=e[18];let f;e[19]!==n||e[20]!==s.hasTrackedChanges||e[21]!==r?(f=!n&&s.hasTrackedChanges?F.jsx("div",{className:"typography-meta text-muted-foreground",children:r("diffView.submodule.trackedChanges")}):null,e[19]=n,e[20]=s.hasTrackedChanges,e[21]=r,e[22]=f):f=e[22];let l;e[23]!==n||e[24]!==s.hasUntrackedFiles||e[25]!==r?(l=!n&&s.hasUntrackedFiles?F.jsx("div",{className:"typography-meta text-muted-foreground",children:r("diffView.submodule.untrackedFiles")}):null,e[23]=n,e[24]=s.hasUntrackedFiles,e[25]=r,e[26]=l):l=e[26];let g;return e[27]!==h||e[28]!==o||e[29]!==f||e[30]!==l?(g=F.jsxs("div",{className:"flex flex-col gap-1 rounded-lg border border-border/60 bg-background px-3 py-2",children:[h,o,f,l]}),e[27]=h,e[28]=o,e[29]=f,e[30]=l,e[31]=g):g=e[31],g};export{ye as S,ke as a,me as b,we as c,ge as d,pe as i,be as u};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import{R as N,f as fe,j as i,c as We}from"./vendor-react-BUCujlKS.js";import{_ as Qe,is as et,lx as tt,f as Pe,ly as ot,h as he,lz as it,I as je,lA as nt,lB as Le,lC as Me,dq as ke,lD as rt,a_ as Ue,lE as st,lF as at,lG as lt,d3 as qe,lH as ct,lI as mt,fz as dt,fA as Oe,lJ as ut,cz as ft,cy as pt}from"./useAppFontEffects-DCqCVGlT.js";import{F as Be,J as ht}from"./JsonTreeView-B_EPRjzy.js";import{P as gt}from"./PatchDiff-6yh1csza.js";import{e6 as Ne,h as xt}from"./index-vQ1Pg1cr.js";import{ensurePierreThemeRegistered as Ae}from"./appThemeRegistry-CxzMxR-H.js";import{u as yt}from"./vendor-tanstack-react-virtual-H_JmXOFV.js";import"./vendor-scheduler-7OC5HNn7.js";import"./vendor-zod-CxRSdNoV.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-vite-runtime-DD1OZmLC.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-class-variance-authority-5VPnzWs2.js";import"./vendor-clsx-B-dksMZM.js";import"./vendor-base-ui-DX96QhTP.js";import"./vendor-floating-ui-utils-D6FqdtJt.js";import"./vendor-floating-ui-dom-BTvzWks8.js";import"./vendor-floating-ui-core-PuGzNPnN.js";import"./vendor-floating-ui-react-dom-DxYCWdHj.js";import"./vendor-use-sync-external-store-D6wYuSt-.js";import"./vendor-dnd-kit-core-BZknOX2w.js";import"./vendor-dnd-kit-utilities-B_MdXhJC.js";import"./vendor-dnd-kit-accessibility-BHxJPORy.js";import"./vendor-dnd-kit-sortable-CsEagZ81.js";import"./vendor-framer-motion-Bq3iTZ6r.js";import"./vendor-motion-dom-DcCgeG69.js";import"./vendor-motion-utils-BGh8QBgx.js";import"./vendor-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-ByBn5zIW.js";import"./vendor-lezer-common-B3-cUCR_.js";import"./vendor-codemirror-state-G3UuR-be.js";import"./vendor-marijn-find-cluster-break-DXwl3gUT.js";import"./vendor-codemirror-view-Bniqp7p5.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-CpGYXGuo.js";import"./vendor-lezer-javascript-D7Tj24ot.js";import"./vendor-lezer-lr-bhwg1HMg.js";import"./vendor-codemirror-autocomplete-DW1FQz9_.js";import"./vendor-codemirror-lang-json-58T70Hqs.js";import"./vendor-lezer-json-Iaex0UN-.js";import"./vendor-codemirror-lang-css-B07blnnZ.js";import"./vendor-lezer-css-C5xB6jxd.js";import"./vendor-codemirror-lang-html-DaH9adfE.js";import"./vendor-lezer-html-C0I1p52t.js";import"./vendor-codemirror-lang-markdown-BLKnlLP4.js";import"./vendor-lezer-markdown-C6g-d6P3.js";import"./vendor-codemirror-language-data-q2bKO1EM.js";import"./vendor-codemirror-lang-python-B7ClrMIT.js";import"./vendor-lezer-python-CvuFxeZl.js";import"./vendor-codemirror-commands-DpmhalwN.js";import"./vendor-legendapp-list-DViGR95I.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";import"./parseDiffFromFile-Cy0PNxun.js";import"./computeVirtualFileMetrics-CmPe29DM.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"./vendor-diff-C3JhlQdm.js";import"./Virtualizer-CGNyscoc.js";import"./isFilePlainText-CYBUzW4I.js";import"./isDiffPlainText-CQmDCnEv.js";import"./VirtualizedFileDiff-BTJVRkyo.js";import"./vendor-opencode-client-DHzhmLwV.js";import"./textMateThemeFromAppTheme-CDlKffWz.js";import"./vendor-tanstack-virtual-core-Dxc8hSTB.js";const wt=80,Fe=20,Ge=N.memo(o=>{const e=fe.c(26),{lines:t,language:a,maxHeight:c,showLineNumbers:r,lineStyles:l}=o,n=c===void 0?"60vh":c,s=r===void 0?!0:r,{currentTheme:f}=Qe();let d;e[0]!==f?(d=et(f),e[0]=f,e[1]=d):d=e[1];const y=d;let T;e[2]!==t?(T=t.map(bt).join(`
|
|
2
|
-
`),e[2]=t,e[3]=T):T=e[3];const b=tt(T,a).lines;if(!(t.length>wt)){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 g;if(e[7]!==b||e[8]!==l||e[9]!==t||e[10]!==s){let p;e[12]!==b||e[13]!==l||e[14]!==s?(p=(S,P)=>i.jsx(Ee,{line:S,html:b?.[P],showLineNumbers:s,style:l?.(S)},P),e[12]=b,e[13]=l,e[14]=s,e[15]=p):p=e[15],g=t.map(p),e[7]=b,e[8]=l,e[9]=t,e[10]=s,e[11]=g}else g=e[11];let u;return e[16]!==w||e[17]!==g?(u=i.jsx("div",{className:"oc-surface-code bg-[var(--syntax-background)] typography-code font-mono w-full min-w-0",style:w,children:g}),e[16]=w,e[17]=g,e[18]=u):u=e[18],u}let I;return e[19]!==b||e[20]!==l||e[21]!==t||e[22]!==n||e[23]!==s||e[24]!==y?(I=i.jsx(Je,{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]=I):I=e[25],I});Ge.displayName="VirtualizedCodeBlock";const Je=N.memo(({lines:o,highlighted:e,syntaxVars:t,maxHeight:a,showLineNumbers:c,lineStyles:r})=>{const l=N.useRef(null),n=`min(${o.length*Fe}px, ${a})`,s=yt({count:o.length,getScrollElement:()=>l.current,estimateSize:()=>Fe,overscan:20}),f=s.getVirtualItems();return i.jsx("div",{ref:l,className:"oc-surface-code bg-[var(--syntax-background)] typography-code font-mono w-full min-w-0",style:{...t,height:n,maxHeight:a,overflow:"auto"},children:i.jsx("div",{style:{height:s.getTotalSize(),position:"relative"},children:f.map(d=>{const y=o[d.index];return y?i.jsx("div",{"data-index":d.index,ref:s.measureElement,style:{position:"absolute",top:0,left:0,width:"100%",transform:`translateY(${d.start}px)`},children:i.jsx(Ee,{line:y,html:e?.[d.index],showLineNumbers:c,style:r?.(y)})},d.index):null})})})});Je.displayName="VirtualizedRows";const Ee=N.memo(o=>{const e=fe.c(12),{line:t,html:a,showLineNumbers:c,style:r}=o;let l;e[0]!==t.isInfo||e[1]!==t.lineNumber||e[2]!==c?(l=c&&i.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(--syntax-line-number)",borderColor:"var(--interactive-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=i.jsx("div",{className:"flex-1 min-w-0",children:t.isInfo?i.jsx("div",{className:"whitespace-pre-wrap break-words text-muted-foreground/70 italic",children:t.text}):a!==void 0?i.jsx("div",{className:"whitespace-pre",dangerouslySetInnerHTML:{__html:a}}):i.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=i.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});Ee.displayName="VirtualizedCodeBlock.Row";function bt(o){return o.text}class Ce extends Error{key;params;constructor(e,t){super(e),this.name="MermaidLoadFailure",this.key=e,this.params=t}}const vt=(o,e)=>new Ce(o,e),jt=o=>o instanceof Ce,Nt=o=>o+1,ze=(o,e)=>o===e,St=o=>{const e=o.indexOf(",");if(e<0)throw vt("chat.toolOutputDialog.mermaid.dataUrlMalformed");const t=o.slice(0,e).toLowerCase(),a=o.slice(e+1);return t.includes(";base64")?atob(a):decodeURIComponent(a)},Tt=o=>Promise.resolve().then(()=>St(o)),Ie=(o,e)=>new Ce(o,e),He=150,Rt=40,It=120,Dt=3,_e={style:{background:"transparent",backgroundColor:"transparent",fontSize:"inherit"}},Mt={download:!1,copy:!1,showPanZoomControls:!0},kt=`
|
|
3
|
-
[data-diff-header],
|
|
4
|
-
[data-diff] {
|
|
5
|
-
[data-separator] {
|
|
6
|
-
height: 24px !important;
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
`,_t={hunkLineCount:50,lineHeight:24,diffHeaderHeight:44,hunkSeparatorHeight:24,spacing:0},Pt=()=>{const o=fe.c(22),e=dt();let t;o[0]===Symbol.for("react.memo_cache_sentinel")?(t=Oe(!1),o[0]=t):t=o[0];const a=t;let c;o[1]===Symbol.for("react.memo_cache_sentinel")?(c=Oe(!0),o[1]=c):c=o[1];const r=c;let l;o[2]!==e?.availableThemes?(l=()=>e?.availableThemes??[a,r],o[2]=e?.availableThemes,o[3]=l):l=o[3],e?.availableThemes;let n;o[4]!==l?(n=l(),o[4]=l,o[5]=n):n=o[5];const s=n,f=e?.lightThemeId??a.metadata.id,d=e?.darkThemeId??r.metadata.id;let y;o[6]!==s||o[7]!==f?(y=s.find(u=>u.metadata.id===f)??a,o[6]=s,o[7]=f,o[8]=y):y=o[8];const T=y;let E;o[9]!==s||o[10]!==d?(E=s.find(u=>u.metadata.id===d)??r,o[9]=s,o[10]=d,o[11]=E):E=o[11];const M=E;let b,D;o[12]!==M||o[13]!==T?(b=()=>{Ae(T),Ae(M)},D=[M,T],o[12]=M,o[13]=T,o[14]=b,o[15]=D):(b=o[14],D=o[15]),N.useEffect(b,D);const I=e?.currentTheme.metadata.variant??"light";let v;o[16]!==M.metadata.id||o[17]!==T.metadata.id?(v={light:T.metadata.id,dark:M.metadata.id},o[16]=M.metadata.id,o[17]=T.metadata.id,o[18]=v):v=o[18];const w=I==="dark"?"dark":"light";let g;return o[19]!==v||o[20]!==w?(g={theme:v,themeType:w},o[19]=v,o[20]=w,o[21]=g):g=o[21],g},Ve=()=>({width:typeof window<"u"?window.innerWidth:0,height:typeof window<"u"?window.innerHeight:0}),$e={mobile:{widthRatio:.94,heightRatio:.86,padding:10},desktop:{widthRatio:.8,heightRatio:.8,padding:16}},Et=(o,e)=>{const t=e?$e.mobile:$e.desktop,a=Math.max(160,o.width-t.padding*2),c=Math.max(160,o.height-t.padding*2);return{maxWidth:Math.max(160,Math.min(a,o.width*t.widthRatio)),maxHeight:Math.max(160,Math.min(c,o.height*t.heightRatio))}},Ct=o=>{try{const r=Array.from(o.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=o.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(o.getAttribute("width")),a=Number(o.getAttribute("height"));if(Number.isFinite(t)&&Number.isFinite(a)&&t>0&&a>0)return t/a;const c=o.getBoundingClientRect();return c.width>0&&c.height>0?c.width/c.height:null},Ze=o=>{const e=fe.c(7),[t,a]=N.useState(o),[c,r]=N.useState(o),[l,n]=N.useState(!1);let s,f;e[0]!==o?(s=()=>{if(o){if(a(!0),n(!0),typeof window>"u"){r(!0);return}const T=window.requestAnimationFrame(()=>{r(!0)}),E=window.setTimeout(()=>{n(!1)},He);return()=>{window.cancelAnimationFrame(T),window.clearTimeout(E)}}if(r(!1),n(!0),typeof window>"u"){a(!1);return}const y=window.setTimeout(()=>{a(!1),n(!1)},He);return()=>{window.clearTimeout(y)}},f=[o],e[0]=o,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},Ye=o=>{const e=fe.c(3),[t,a]=N.useState(Ve);let c,r;return e[0]!==o?(c=()=>{if(!o||typeof window>"u")return;const l=()=>{a(Ve())};return l(),window.addEventListener("resize",l),()=>{window.removeEventListener("resize",l)}},r=[o],e[0]=o,e[1]=c,e[2]=r):(c=e[1],r=e[2]),N.useEffect(c,r),t},Lt=o=>{const e=fe.c(103),{popup:t,onOpenChange:a,isMobile:c}=o,{t:r}=Pe();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 h;e[1]!==m.gallery?(h=Array.isArray(m.gallery)?m.gallery.filter(At):[],e[1]=m.gallery,e[2]=h):h=e[2];const _=h;if(_.length>0){l=_;break e}let C;e[3]!==m.filename||e[4]!==m.mimeType||e[5]!==m.size||e[6]!==m.url?(C=[{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]=C):C=e[7],l=C}const n=l,[s,f]=N.useState(0),[d,y]=N.useState(null),{isRendered:T,isVisible:E,isTransitioning:M}=Ze(t.open),b=Ye(t.open);let D;e[8]!==n||e[9]!==t.image||e[10]!==t.open?(D=()=>{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 h=t.image?.url?n.findIndex(_=>_.url===t.image?.url):-1;f(h>=0?h:0)},e[8]=n,e[9]=t.image,e[10]=t.open,e[11]=D):D=e[11];const I=t.image?.index,v=t.image?.url;let w;e[12]!==n||e[13]!==t.open||e[14]!==I||e[15]!==v?(w=[n,I,v,t.open],e[12]=n,e[13]=t.open,e[14]=I,e[15]=v,e[16]=w):w=e[16],N.useEffect(D,w);const g=n[s]??n[0]??t.image,u=g?.filename||t.title||"Image preview",p=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 P=S;let A;e[19]!==n.length?(A=()=>{n.length<=1||f(m=>(m+1)%n.length)},e[19]=n.length,e[20]=A):A=e[20];const L=A;let x,F;e[21]!==p||e[22]!==a||e[23]!==t.open||e[24]!==L||e[25]!==P?(x=()=>{if(!t.open)return;const m=h=>{if(h.key==="Escape"){a(!1);return}if(h.key==="ArrowLeft"&&p){h.preventDefault(),P();return}h.key==="ArrowRight"&&p&&(h.preventDefault(),L())};return window.addEventListener("keydown",m),()=>{window.removeEventListener("keydown",m)}},F=[p,a,t.open,L,P],e[21]=p,e[22]=a,e[23]=t.open,e[24]=L,e[25]=P,e[26]=x,e[27]=F):(x=e[26],F=e[27]),N.useEffect(x,F);let X;e[28]===Symbol.for("react.memo_cache_sentinel")?(X=()=>{y(null)},e[28]=X):X=e[28];const k=g?.url;let ie;e[29]!==k?(ie=[k],e[29]=k,e[30]=ie):ie=e[30],N.useEffect(X,ie);let pe;e:{const m=Math.max(160,b.width*(c?.86:.75)),h=Math.max(160,b.height*(c?.72:.75));if(!d){let be;e[31]!==m?(be=Math.round(m),e[31]=m,e[32]=be):be=e[32];let ve;e[33]!==h?(ve=Math.round(h),e[33]=h,e[34]=ve):ve=e[34];let Re;e[35]!==be||e[36]!==ve?(Re={width:be,height:ve},e[35]=be,e[36]=ve,e[37]=Re):Re=e[37],pe=Re;break e}const _=m/d.width,C=h/d.height,R=Math.min(_,C);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 Te;e[44]!==K||e[45]!==De?(Te={width:K,height:De},e[44]=K,e[45]=De,e[46]=Te):Te=e[46],pe=Te}const z=pe;if(!T||!g||typeof document>"u")return null;const xe=t.open?"pointer-events-auto":"pointer-events-none";let ne;e[47]!==xe?(ne=he("fixed inset-0 z-50",xe),e[47]=xe,e[48]=ne):ne=e[48];const re=M&&"transition-opacity duration-150 ease-out",ge=E?"opacity-100":"opacity-0";let V;e[49]!==re||e[50]!==ge?(V=he("oc-glass-backdrop absolute inset-0 bg-surface-overlay/60",re,ge),e[49]=re,e[50]=ge,e[51]=V):V=e[51];let $;e[52]!==a?($=()=>a(!1),e[52]=a,e[53]=$):$=e[53];let se;e[54]!==V||e[55]!==$?(se=i.jsx("div",{"aria-hidden":"true",className:V,onMouseDown:$}),e[54]=V,e[55]=$,e[56]=se):se=e[56];let W;e[57]!==p||e[58]!==L||e[59]!==P||e[60]!==r?(W=p&&i.jsxs(i.Fragment,{children:[i.jsx("button",{type:"button",onMouseDown:Ft,onClick:P,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-surface-elevated/90 text-surface-elevated-foreground hover:bg-surface-elevated focus:outline-none focus:ring-2 focus:ring-ring","aria-label":r("chat.toolOutputDialog.image.previousAria"),children:i.jsx(je,{name:"arrow-left-s",className:"h-6 w-6"})}),i.jsx("button",{type:"button",onMouseDown:zt,onClick:L,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-surface-elevated/90 text-surface-elevated-foreground hover:bg-surface-elevated focus:outline-none focus:ring-2 focus:ring-ring","aria-label":r("chat.toolOutputDialog.image.nextAria"),children:i.jsx(je,{name:"arrow-right-s",className:"h-6 w-6"})})]}),e[57]=p,e[58]=L,e[59]=P,e[60]=r,e[61]=W):W=e[61];const ye=c?"p-2.5":"p-4";let ae;e[62]!==ye?(ae=he("absolute inset-0 flex items-center justify-center pointer-events-none",ye),e[62]=ye,e[63]=ae):ae=e[63];const le=M&&"transition-opacity duration-150 ease-out",we=E?"opacity-100":"opacity-0";let U;e[64]!==le||e[65]!==we?(U=he("pointer-events-auto flex flex-col gap-2",le,we),e[64]=le,e[65]=we,e[66]=U):U=e[66];const ce=`${z.width}px`;let q;e[67]!==ce?(q={width:ce},e[67]=ce,e[68]=q):q=e[68];let Q;e[69]!==u?(Q=i.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]=Q):Q=e[70];let B;e[71]!==a?(B=()=>a(!1),e[71]=a,e[72]=B):B=e[72];let me;e[73]!==r?(me=r("chat.toolOutputDialog.image.closeAria"),e[73]=r,e[74]=me):me=e[74];let ee;e[75]===Symbol.for("react.memo_cache_sentinel")?(ee=i.jsx(je,{name:"close",className:"h-4 w-4"}),e[75]=ee):ee=e[75];let G;e[76]!==B||e[77]!==me?(G=i.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-ring",onClick:B,"aria-label":me,children:ee}),e[76]=B,e[77]=me,e[78]=G):G=e[78];let J;e[79]!==Q||e[80]!==G?(J=i.jsxs("div",{className:"flex items-center justify-between gap-2",children:[Q,G]}),e[79]=Q,e[80]=G,e[81]=J):J=e[81];const de=`${z.width}px`,ue=`${z.height}px`;let Z;e[82]!==de||e[83]!==ue?(Z={width:de,height:ue},e[82]=de,e[83]=ue,e[84]=Z):Z=e[84];let te;e[85]===Symbol.for("react.memo_cache_sentinel")?(te=m=>{const h=m.currentTarget,_=h.naturalWidth,C=h.naturalHeight;_>0&&C>0&&y(R=>R&&R.width===_&&R.height===C?R:{width:_,height:C})},e[85]=te):te=e[85];let Y;e[86]!==g.url||e[87]!==u||e[88]!==Z?(Y=i.jsx("img",{src:g.url,alt:u,className:"block object-contain",style:Z,loading:"lazy",onLoad:te}),e[86]=g.url,e[87]=u,e[88]=Z,e[89]=Y):Y=e[89];let oe;e[90]!==U||e[91]!==q||e[92]!==J||e[93]!==Y?(oe=i.jsxs("div",{className:U,style:q,children:[J,Y]}),e[90]=U,e[91]=q,e[92]=J,e[93]=Y,e[94]=oe):oe=e[94];let j;e[95]!==ae||e[96]!==oe?(j=i.jsx("div",{className:ae,children:oe}),e[95]=ae,e[96]=oe,e[97]=j):j=e[97];let H;if(e[98]!==ne||e[99]!==se||e[100]!==W||e[101]!==j){const m=i.jsxs("div",{className:ne,children:[se,W,j]});H=We.createPortal(m,document.body),e[98]=ne,e[99]=se,e[100]=W,e[101]=j,e[102]=H}else H=e[102];return H},Ke=N.memo(o=>{const e=fe.c(7),{popup:t,diffViewMode:a,pierreThemeConfig:c}=o,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:kt},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=i.jsx("div",{className:"typography-code",children:i.jsx(gt,{patch:r,metrics:_t,options:n,className:"block w-full"})}),e[4]=r,e[5]=n,e[6]=s):s=e[6],s});Ke.displayName="DialogUnifiedDiff";const Xe=N.memo(o=>{const e=fe.c(29),{popup:t,pierreThemeConfig:a}=o;let c;e[0]!==t.content?(c=ut(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(Ht).join(`
|
|
10
|
-
`),e[4]=r.lines,e[5]=y):y=e[5];const T=y;let E;e[6]!==d||e[7]!==t.language?(E=t.language||Ue(d)||"text",e[6]=d,e[7]=t.language,e[8]=E):E=e[8];const M=E;let b;e[9]!==r.lines?(b=r.lines.some(Vt),e[9]=r.lines,e[10]=b):b=e[10];const D=b;let I;if(e[11]!==D||e[12]!==f||e[13]!==r.lines||e[14]!==r.type){I=[];let g=f;for(const u of r.lines){u.lineNumber!==null&&(g=u.lineNumber);const p=r.type==="file"&&!D&&u.lineNumber===null&&!u.isInfo,S=u.lineNumber??(p?g+1:null);typeof S=="number"&&(g=S),I.push({text:u.text,lineNumber:S,isInfo:u.isInfo})}e[11]=D,e[12]=f,e[13]=r.lines,e[14]=r.type,e[15]=I}else I=e[15];const v=I;if(r.type==="file"){const g=M||void 0;let u;e[16]!==T||e[17]!==d||e[18]!==g?(u={name:d,contents:T,lang:g},e[16]=T,e[17]=d,e[18]=g,e[19]=u):u=e[19];let p;e[20]!==a.theme||e[21]!==a.themeType?(p={disableFileHeader:!0,overflow:"wrap",theme:a.theme,themeType:a.themeType},e[20]=a.theme,e[21]=a.themeType,e[22]=p):p=e[22];let S;return e[23]!==u||e[24]!==p?(S=i.jsx(Be,{file:u,options:p,className:"block w-full"}),e[23]=u,e[24]=p,e[25]=S):S=e[25],S}let w;return e[26]!==v||e[27]!==M?(w=i.jsx(Ge,{lines:v,language:M,maxHeight:"70vh"}),e[26]=v,e[27]=M,e[28]=w):w=e[28],w});Xe.displayName="DialogReadContent";const Ot=o=>{const e=fe.c(90),{popup:t,onOpenChange:a,isMobile:c}=o,{t:r}=Pe(),[l,n]=N.useState(t.mermaid?.source||""),[s,f]=N.useState(t.mermaid?.source?"ready":"idle"),[d,y]=N.useState(""),{isRendered:T,isVisible:E,isTransitioning:M}=Ze(t.open),[b,D]=N.useState(null),I=Ye(t.open),v=N.useRef(0),w=N.useRef(null),g=qt;let u;e[0]!==t.mermaid||e[1]!==r?(u=async()=>{const j=t.mermaid,H=Nt(v.current);if(v.current=H,!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=Tt(j.url);else if(j.url.toLowerCase().startsWith("file://")){const h=g(j.url);h?m=xt("/api/fs/raw",{query:{path:h}}).then(Bt):m=Promise.reject(Ie("chat.toolOutputDialog.mermaid.invalidLocalPath"))}else{const _=(typeof URL.canParse=="function"?URL.canParse(j.url,window.location.origin):!1)?new URL(j.url,window.location.origin):null;!_||_.protocol!=="http:"&&_.protocol!=="https:"?m=Promise.reject(Ie("chat.toolOutputDialog.mermaid.unsupportedUrlProtocol")):m=fetch(_.toString()).then(Gt)}await m.then(h=>{ze(v.current,H)&&(n(h),f("ready"))}).catch(h=>{ze(v.current,H)&&(f("error"),y(jt(h)?r(h.key,h.params):r("chat.toolOutputDialog.mermaid.loadFailed")))})},e[0]=t.mermaid,e[1]=r,e[2]=u):u=e[2];const p=u;let S,P;e[3]!==p||e[4]!==t.mermaid||e[5]!==t.open?(S=()=>{!t.open||!t.mermaid||p()},P=[p,t.mermaid,t.open],e[3]=p,e[4]=t.mermaid,e[5]=t.open,e[6]=S,e[7]=P):(S=e[6],P=e[7]),N.useEffect(S,P);let A,L;e[8]!==a||e[9]!==t.open?(A=()=>{if(!t.open)return;const j=H=>{H.key==="Escape"&&a(!1)};return window.addEventListener("keydown",j),()=>{window.removeEventListener("keydown",j)}},L=[a,t.open],e[8]=a,e[9]=t.open,e[10]=A,e[11]=L):(A=e[10],L=e[11]),N.useEffect(A,L);let x;e[12]!==t.open||e[13]!==s?(x=()=>{if(!t.open||s!=="ready"){D(null);return}const j=()=>{const R=w.current?.querySelector("svg");if(!R)return!1;const O=Ct(R);return!O||!Number.isFinite(O)||O<=0?!1:(D(K=>K&&Math.abs(K-O)<.001?K:O),!0)};let H=window.requestAnimationFrame(()=>{j()||(H=window.requestAnimationFrame(()=>{j()}))}),m=0,h;const _=()=>{m>=Dt||(h=window.setTimeout(()=>{m=m+1,j()||_()},It))};_();const C=new MutationObserver(()=>{j()});return w.current&&C.observe(w.current,{childList:!0,subtree:!0,attributes:!0}),()=>{window.cancelAnimationFrame(H),typeof h=="number"&&window.clearTimeout(h),C.disconnect()}},e[12]=t.open,e[13]=s,e[14]=x):x=e[14];let F;e[15]!==t.open||e[16]!==l||e[17]!==s?(F=[t.open,l,s],e[15]=t.open,e[16]=l,e[17]=s,e[18]=F):F=e[18],N.useEffect(x,F);const X=`\`\`\`mermaid
|
|
11
|
-
${l}
|
|
12
|
-
\`\`\``;let k;if(e[19]!==b||e[20]!==c||e[21]!==I){e:{const{maxWidth:j,maxHeight:H}=Et(I,c),m=Math.max(160,H-Rt);if(b&&b<1){const C=Math.min(j,m);let R;e[23]!==C?(R=Math.round(C),e[23]=C,e[24]=R):R=e[24];let O;e[25]!==C?(O=Math.round(C),e[25]=C,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],k=K;break e}const h=Math.round(j);let _;e[30]!==m?(_=Math.round(m),e[30]=m,e[31]=_):_=e[31],k={width:h,height:_}}e[19]=b,e[20]=c,e[21]=I,e[22]=k}else k=e[22];const ie=k;if(!T||typeof document>"u")return null;const pe=t.open?"pointer-events-auto":"pointer-events-none";let z;e[32]!==pe?(z=he("fixed inset-0 z-50",pe),e[32]=pe,e[33]=z):z=e[33];const xe=M&&"transition-opacity duration-150 ease-out",ne=E?"opacity-100":"opacity-0";let re;e[34]!==xe||e[35]!==ne?(re=he("absolute inset-0",xe,ne),e[34]=xe,e[35]=ne,e[36]=re):re=e[36];let ge;e[37]===Symbol.for("react.memo_cache_sentinel")?(ge={backgroundColor:"color-mix(in srgb, var(--surface-elevated) 70%, transparent)",color:"var(--surface-elevated-foreground)"},e[37]=ge):ge=e[37];let V;e[38]!==a?(V=()=>a(!1),e[38]=a,e[39]=V):V=e[39];let $;e[40]!==re||e[41]!==V?($=i.jsx("div",{"aria-hidden":"true",className:re,style:ge,onMouseDown:V}),e[40]=re,e[41]=V,e[42]=$):$=e[42];const se=c?"p-2.5":"p-4";let W;e[43]!==se?(W=he("absolute inset-0 flex items-center justify-center pointer-events-none",se),e[43]=se,e[44]=W):W=e[44];const ye=M&&"transition-opacity duration-150 ease-out",ae=E?"opacity-100":"opacity-0";let le;e[45]!==ye||e[46]!==ae?(le=he("pointer-events-auto flex flex-col gap-2",ye,ae),e[45]=ye,e[46]=ae,e[47]=le):le=e[47];const we=`${ie.width}px`;let U;e[48]!==we?(U={width:we},e[48]=we,e[49]=U):U=e[49];let ce;e[50]!==a?(ce=()=>a(!1),e[50]=a,e[51]=ce):ce=e[51];let q;e[52]!==r?(q=r("chat.toolOutputDialog.mermaid.closeAria"),e[52]=r,e[53]=q):q=e[53];let Q;e[54]===Symbol.for("react.memo_cache_sentinel")?(Q=i.jsx(je,{name:"close",className:"h-4 w-4"}),e[54]=Q):Q=e[54];let B;e[55]!==ce||e[56]!==q?(B=i.jsx("div",{className:"flex items-center justify-end",children:i.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-ring",onClick:ce,"aria-label":q,children:Q})}),e[55]=ce,e[56]=q,e[57]=B):B=e[57];const me=`${ie.height}px`;let ee;e[58]!==me?(ee={height:me},e[58]=me,e[59]=ee):ee=e[59];let G;e[60]!==s||e[61]!==r?(G=s==="loading"&&i.jsxs("div",{className:"h-full min-h-28 flex items-center justify-center gap-2 text-muted-foreground typography-meta",children:[i.jsx(je,{name:"loader-4",className:"h-4 w-4 animate-spin"}),i.jsx("span",{children:r("chat.toolOutputDialog.mermaid.loading")})]}),e[60]=s,e[61]=r,e[62]=G):G=e[62];let J;e[63]!==d||e[64]!==p||e[65]!==s||e[66]!==r?(J=s==="error"&&i.jsxs("div",{className:"rounded-xl border p-3 space-y-3",style:{backgroundColor:"var(--status-error-background)",borderColor:"var(--status-error-border)"},children:[i.jsx("p",{className:"typography-markdown",style:{color:"var(--status-error)"},children:d||r("chat.toolOutputDialog.mermaid.renderFailed")}),i.jsx("button",{type:"button",onClick:()=>{p()},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]=p,e[65]=s,e[66]=r,e[67]=J):J=e[67];let de;e[68]!==X||e[69]!==s?(de=s==="ready"&&i.jsx("div",{ref:w,className:"h-full",children:i.jsx(qe,{content:X,variant:"tool",allowMermaidWheelEvents:!0,className:"markdown-mermaid-fullscreen h-full",mermaidControls:Mt,enableFileReferences:!1})}),e[68]=X,e[69]=s,e[70]=de):de=e[70];let ue;e[71]!==G||e[72]!==J||e[73]!==de?(ue=i.jsxs("div",{className:"h-full overflow-hidden",children:[G,J,de]}),e[71]=G,e[72]=J,e[73]=de,e[74]=ue):ue=e[74];let Z;e[75]!==ee||e[76]!==ue?(Z=i.jsx("div",{className:"relative overflow-hidden",style:ee,children:ue}),e[75]=ee,e[76]=ue,e[77]=Z):Z=e[77];let te;e[78]!==le||e[79]!==U||e[80]!==B||e[81]!==Z?(te=i.jsxs("div",{className:le,style:U,onMouseDown:Jt,children:[B,Z]}),e[78]=le,e[79]=U,e[80]=B,e[81]=Z,e[82]=te):te=e[82];let Y;e[83]!==W||e[84]!==te?(Y=i.jsx("div",{className:W,children:te}),e[83]=W,e[84]=te,e[85]=Y):Y=e[85];let oe;if(e[86]!==z||e[87]!==$||e[88]!==Y){const j=i.jsxs("div",{className:z,children:[$,Y]});oe=We.createPortal(j,document.body),e[86]=z,e[87]=$,e[88]=Y,e[89]=oe}else oe=e[89];return oe},rn=o=>{const e=fe.c(49),{popup:t,onOpenChange:a,isMobile:c}=o,{t:r}=Pe(),[l,n]=N.useState("unified"),s=Pt(),f=typeof t.metadata?.tool=="string"?t.metadata.tool:null,d=ot(f);let y;e[0]!==t.open?(y=()=>{t.open&&n("unified")},e[0]=t.open,e[1]=y):y=e[1];let T;if(e[2]!==t.open||e[3]!==t.title?(T=[t.open,t.title],e[2]=t.open,e[3]=t.title,e[4]=T):T=e[4],N.useEffect(y,T),t.image){let x;return e[5]!==c||e[6]!==a||e[7]!==t?(x=i.jsx(Lt,{popup:t,onOpenChange:a,isMobile:c}),e[5]=c,e[6]=a,e[7]=t,e[8]=x):x=e[8],x}if(t.mermaid){let x;return e[9]!==c||e[10]!==a||e[11]!==t?(x=i.jsx(Ot,{popup:t,onOpenChange:a,isMobile:c}),e[9]=c,e[10]=a,e[11]=t,e[12]=x):x=e[12],x}const E=t.open,M=c?"w-[95vw] max-w-[95vw]":"max-w-5xl",b=c?"[&>button]:right-1":"[&>button]:top-2.5 [&>button]:right-4";let D;e[13]!==M||e[14]!==b?(D=he("overflow-hidden flex flex-col min-h-0 pt-3 pb-4 px-4 gap-1","[&>button]:top-1.5",M,b),e[13]=M,e[14]=b,e[15]=D):D=e[15];let I;e[16]===Symbol.for("react.memo_cache_sentinel")?(I={maxHeight:"90vh"},e[16]=I):I=e[16];let v;e[17]!==f||e[18]!==d?(v=f?it(f,d):i.jsx(je,{name:"tools",className:"h-3.5 w-3.5 text-foreground flex-shrink-0"}),e[17]=f,e[18]=d,e[19]=v):v=e[19];let w;e[20]!==t.title?(w=i.jsx("span",{className:"break-words flex-1 leading-tight",children:t.title}),e[20]=t.title,e[21]=w):w=e[21];let g;e[22]!==l||e[23]!==t.isDiff?(g=t.isDiff&&i.jsx(nt,{mode:l,onModeChange:n,className:"mr-8 flex-shrink-0"}),e[22]=l,e[23]=t.isDiff,e[24]=g):g=e[24];let u;e[25]!==g||e[26]!==v||e[27]!==w?(u=i.jsx("div",{className:"flex-shrink-0 pb-1",children:i.jsxs("div",{className:"flex items-start gap-2 text-foreground typography-ui-header font-semibold",children:[v,w,g]})}),e[25]=g,e[26]=v,e[27]=w,e[28]=u):u=e[28];let p;e[29]!==s||e[30]!==t.metadata?(p=t.metadata?.input&&typeof t.metadata.input=="object"&&Object.keys(t.metadata.input).length>0&&t.metadata?.tool!=="patch"?(()=>{const x=t.metadata,F=typeof x.tool=="string"?x.tool:void 0,X=x.input,k=pe=>{const z=X[pe];return typeof z=="string"?z:typeof z=="number"?String(z):null},ie=k("path")||k("filePath")||k("file_path")||"";return i.jsxs("div",{className:"border-b border-border/20 p-4 -mx-3",children:[i.jsx("div",{className:"typography-markdown font-medium text-muted-foreground mb-2 px-3",children:Le(F)?"Command:":Me(F)?"Subagent Details:":"Input:"}),Le(F)&&k("command")?i.jsx("div",{className:"tool-input-surface bg-transparent rounded-xl border border-border/20 mx-3",children:i.jsx(ke,{language:"bash",code:k("command"),style:Ne.getPopupStyles(),codeStyle:_e.style,wrap:!0})}):Me(F)&&k("prompt")?i.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:[k("description")?`Task: ${k("description")}
|
|
13
|
-
`:"",k("agent")?`Agent: ${k("agent")}
|
|
14
|
-
`:"",`Instructions:
|
|
15
|
-
${k("prompt")}`]}):rt(F)&&k("content")?i.jsx("div",{className:"tool-input-surface bg-transparent rounded-xl border border-border/20 mx-3",children:i.jsx(Be,{file:{name:ie||"new-file",contents:k("content"),lang:Ue(ie)||void 0},options:{disableFileHeader:!0,overflow:"wrap",theme:s.theme,themeType:s.themeType},className:"block w-full"})}):i.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:st(X,x.tool)})]})})():null,e[29]=s,e[30]=t.metadata,e[31]=p):p=e[31];let S;e[32]!==l||e[33]!==c||e[34]!==s||e[35]!==t||e[36]!==r?(S=t.isDiff?i.jsx(Ke,{popup:t,diffViewMode:l,pierreThemeConfig:s}):t.content?i.jsx("div",{className:"p-4",children:(()=>{const x=typeof t.metadata?.tool=="string"?t.metadata.tool:void 0;return x==="grep"?at(t.content,c)||i.jsx("pre",{className:"typography-code bg-muted/30 p-2 rounded-xl border border-border/20 font-mono whitespace-pre-wrap",children:t.content}):x==="glob"?lt(t.content,c)||i.jsx("pre",{className:"typography-code bg-muted/30 p-2 rounded-xl border border-border/20 font-mono whitespace-pre-wrap",children:t.content}):Me(x)||x==="reasoning"?i.jsx("div",{className:x==="reasoning"?"text-muted-foreground/70":"",children:i.jsx(qe,{content:t.content,variant:"tool"})}):x==="web-search"||x==="websearch"||x==="search_web"?ct(t.content)||i.jsx(ke,{language:"text",code:t.content,style:Ne.getPopupContainerStyles(),codeStyle:_e.style,wrap:!0}):x==="read"?i.jsx(Xe,{popup:t,pierreThemeConfig:s}):(t.content?mt(t.content):{isJson:!1}).isJson?i.jsx(ht,{jsonString:t.content,initiallyExpandedDepth:3,maxHeight:"70vh"}):i.jsx(ke,{language:t.language||"text",code:t.content,style:Ne.getPopupContainerStyles(),codeStyle:_e.style,wrap:!0})})()}):i.jsxs("div",{className:"p-8 text-muted-foreground typography-ui-header",children:[i.jsx("div",{className:"mb-2",children:r("chat.toolOutputDialog.commandCompleted")}),i.jsx("div",{className:"typography-meta",children:r("chat.toolOutputDialog.noOutputProduced")})]}),e[32]=l,e[33]=c,e[34]=s,e[35]=t,e[36]=r,e[37]=S):S=e[37];let P;e[38]!==p||e[39]!==S?(P=i.jsx("div",{className:"flex-1 min-h-0 rounded-xl border border-border/30 bg-muted/10 overflow-hidden",children:i.jsxs("div",{className:"tool-output-surface h-full max-h-[75vh] overflow-y-auto px-3 pr-4",children:[p,S]})}),e[38]=p,e[39]=S,e[40]=P):P=e[40];let A;e[41]!==u||e[42]!==P||e[43]!==D?(A=i.jsxs(ft,{className:D,style:I,children:[u,P]}),e[41]=u,e[42]=P,e[43]=D,e[44]=A):A=e[44];let L;return e[45]!==a||e[46]!==t.open||e[47]!==A?(L=i.jsx(pt,{open:E,onOpenChange:a,children:A}),e[45]=a,e[46]=t.open,e[47]=A,e[48]=L):L=e[48],L};function At(o){return!!o?.url}function Ft(o){return o.stopPropagation()}function zt(o){return o.stopPropagation()}function Ht(o){return o.text}function Vt(o){return o.lineNumber!==null}function $t(o){if(!o||/[\0\r\n]/.test(o))return!1;const e=o.replace(/\\/g,"/");return e.split("/").filter(Boolean).includes("..")?!1:e.startsWith("/")?!0:/^[A-Za-z]:\//.test(e)}function Wt(o,e){const t=Number.parseInt(e,16);return Number.isFinite(t)?String.fromCharCode(t):`%${e}`}function Ut(o){return o.replace(/%([0-9A-Fa-f]{2})/g,Wt)}function qt(o){const e=o.trim();if(!e.toLowerCase().startsWith("file://"))return null;const t=$t,a=Ut;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 Bt(o){return o.ok?o.text():Promise.reject(Ie("chat.toolOutputDialog.mermaid.readFileFailedWithStatus",{status:o.status}))}function Gt(o){return o.ok?o.text():Promise.reject(Ie("chat.toolOutputDialog.mermaid.loadFailedWithStatus",{status:o.status}))}function Jt(o){return o.stopPropagation()}export{rn as default};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import{R as D,f as x,j as g}from"./vendor-react-BUCujlKS.js";import{P as E}from"./PatchDiff-6yh1csza.js";import{fz as P,fA as k,lK as _}from"./useAppFontEffects-DCqCVGlT.js";import{ensurePierreThemeRegistered as S}from"./appThemeRegistry-CxzMxR-H.js";import"./vendor-scheduler-7OC5HNn7.js";import"./parseDiffFromFile-Cy0PNxun.js";import"./computeVirtualFileMetrics-CmPe29DM.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"./vendor-diff-C3JhlQdm.js";import"./Virtualizer-CGNyscoc.js";import"./isDiffPlainText-CQmDCnEv.js";import"./VirtualizedFileDiff-BTJVRkyo.js";import"./index-vQ1Pg1cr.js";import"./vendor-zod-CxRSdNoV.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-opencode-client-DHzhmLwV.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-class-variance-authority-5VPnzWs2.js";import"./vendor-clsx-B-dksMZM.js";import"./vendor-base-ui-DX96QhTP.js";import"./vendor-floating-ui-utils-D6FqdtJt.js";import"./vendor-floating-ui-dom-BTvzWks8.js";import"./vendor-floating-ui-core-PuGzNPnN.js";import"./vendor-floating-ui-react-dom-DxYCWdHj.js";import"./vendor-use-sync-external-store-D6wYuSt-.js";import"./vendor-dnd-kit-core-BZknOX2w.js";import"./vendor-dnd-kit-utilities-B_MdXhJC.js";import"./vendor-dnd-kit-accessibility-BHxJPORy.js";import"./vendor-dnd-kit-sortable-CsEagZ81.js";import"./vendor-tanstack-react-virtual-H_JmXOFV.js";import"./vendor-tanstack-virtual-core-Dxc8hSTB.js";import"./vendor-framer-motion-Bq3iTZ6r.js";import"./vendor-motion-dom-DcCgeG69.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-ByBn5zIW.js";import"./vendor-lezer-common-B3-cUCR_.js";import"./vendor-codemirror-state-G3UuR-be.js";import"./vendor-marijn-find-cluster-break-DXwl3gUT.js";import"./vendor-codemirror-view-Bniqp7p5.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-CpGYXGuo.js";import"./vendor-lezer-javascript-D7Tj24ot.js";import"./vendor-lezer-lr-bhwg1HMg.js";import"./vendor-codemirror-autocomplete-DW1FQz9_.js";import"./vendor-codemirror-lang-json-58T70Hqs.js";import"./vendor-lezer-json-Iaex0UN-.js";import"./vendor-codemirror-lang-css-B07blnnZ.js";import"./vendor-lezer-css-C5xB6jxd.js";import"./vendor-codemirror-lang-html-DaH9adfE.js";import"./vendor-lezer-html-C0I1p52t.js";import"./vendor-codemirror-lang-markdown-BLKnlLP4.js";import"./vendor-lezer-markdown-C6g-d6P3.js";import"./vendor-codemirror-language-data-q2bKO1EM.js";import"./vendor-codemirror-lang-python-B7ClrMIT.js";import"./vendor-lezer-python-CvuFxeZl.js";import"./vendor-codemirror-commands-DpmhalwN.js";import"./vendor-legendapp-list-DViGR95I.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";import"./textMateThemeFromAppTheme-CDlKffWz.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,f=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]!==f?(c=m.find(y=>y.metadata.id===f)??n,t[9]=m,t[10]=f,t[11]=c):c=t[11];const T=c;S(a),S(T);const v=e?.currentTheme.metadata.variant??"light";let d;t[12]!==T.metadata.id||t[13]!==a.metadata.id?(d={light:a.metadata.id,dark:T.metadata.id},t[12]=T.metadata.id,t[13]=a.metadata.id,t[14]=d):d=t[14];const b=v==="dark"?"dark":"light";let u;return t[15]!==d||t[16]!==b?(u={pierreTheme:d,pierreThemeType:b},t[15]=d,t[16]=b,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=g.jsx(_,{diff:i}),e[4]=i,e[5]=l):l=e[5];const f=l;let r;e[6]!==i||e[7]!==m?(r=g.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]!==f||e[11]!==r?(a=g.jsx("div",{className:"typography-code px-1 pb-1 pt-0",children:g.jsx(w,{resetKey:i,fallback:f,children:r})}),e[9]=i,e[10]=f,e[11]=r,e[12]=a):a=e[12],a});L.displayName="ToolPartDiffPreview";export{L as default};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{r as c,j as s,f as U}from"./vendor-react-BUCujlKS.js";import{f as re,l as Te,I as S,fM as Wt,B as $,h as Z,a_ as Rs,av as $t,aw as qt,ax as Gt,b3 as Is,aB as Ms,aC as Ps,L as Pe,aD as Ts,N as As,aK as Es,aG as zs,cN as ue,cO as Mt,cP as Pt,cQ as Os,aS as ve,K as Ds,aT as Tt,aU as At,aW as Et,aX as zt,cJ as Ot,aY as we,bO as Dt,o as Hs}from"./useAppFontEffects-DCqCVGlT.js";import{h as Kt,z as Ls,u as ye,fw as Bs,fv as Ws}from"./index-vQ1Pg1cr.js";import{ap as B,be as $s,y as qs,N as Gs}from"./runtimeEndpointReset-DqLJC6L1.js";import{f as Ks,u as Fs,b as Us,a as _s,c as Vs,B as Js,C as Xs,P as Ht}from"./patchFileDiff-CW3wCH1O.js";import{W as Qs}from"./main-b9vqhlYM.js";import{P as Ys}from"./PierreDiffViewer-CWJLj-S-.js";import"./vendor-scheduler-7OC5HNn7.js";import"./vendor-zod-CxRSdNoV.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-vite-runtime-DD1OZmLC.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-class-variance-authority-5VPnzWs2.js";import"./vendor-clsx-B-dksMZM.js";import"./vendor-base-ui-DX96QhTP.js";import"./vendor-floating-ui-utils-D6FqdtJt.js";import"./vendor-floating-ui-dom-BTvzWks8.js";import"./vendor-floating-ui-core-PuGzNPnN.js";import"./vendor-floating-ui-react-dom-DxYCWdHj.js";import"./vendor-use-sync-external-store-D6wYuSt-.js";import"./vendor-dnd-kit-core-BZknOX2w.js";import"./vendor-dnd-kit-utilities-B_MdXhJC.js";import"./vendor-dnd-kit-accessibility-BHxJPORy.js";import"./vendor-dnd-kit-sortable-CsEagZ81.js";import"./vendor-tanstack-react-virtual-H_JmXOFV.js";import"./vendor-tanstack-virtual-core-Dxc8hSTB.js";import"./vendor-framer-motion-Bq3iTZ6r.js";import"./vendor-motion-dom-DcCgeG69.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-ByBn5zIW.js";import"./vendor-lezer-common-B3-cUCR_.js";import"./vendor-codemirror-state-G3UuR-be.js";import"./vendor-marijn-find-cluster-break-DXwl3gUT.js";import"./vendor-codemirror-view-Bniqp7p5.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-CpGYXGuo.js";import"./vendor-lezer-javascript-D7Tj24ot.js";import"./vendor-lezer-lr-bhwg1HMg.js";import"./vendor-codemirror-autocomplete-DW1FQz9_.js";import"./vendor-codemirror-lang-json-58T70Hqs.js";import"./vendor-lezer-json-Iaex0UN-.js";import"./vendor-codemirror-lang-css-B07blnnZ.js";import"./vendor-lezer-css-C5xB6jxd.js";import"./vendor-codemirror-lang-html-DaH9adfE.js";import"./vendor-lezer-html-C0I1p52t.js";import"./vendor-codemirror-lang-markdown-BLKnlLP4.js";import"./vendor-lezer-markdown-C6g-d6P3.js";import"./vendor-codemirror-language-data-q2bKO1EM.js";import"./vendor-codemirror-lang-python-B7ClrMIT.js";import"./vendor-lezer-python-CvuFxeZl.js";import"./vendor-codemirror-commands-DpmhalwN.js";import"./vendor-legendapp-list-DViGR95I.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";import"./vendor-opencode-client-DHzhmLwV.js";import"./space-apply-1trGVIl8.js";import"./vendor-cron-parser-CjvYVigk.js";import"./vendor-luxon-BZ0puJYg.js";import"./parseDiffFromFile-Cy0PNxun.js";import"./computeVirtualFileMetrics-CmPe29DM.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"./vendor-diff-C3JhlQdm.js";import"./vendor-katex-CHD9BdDO.js";import"./useRootScrollLock-BowwS8kq.js";import"./fileTreeStatus-BSHFIGEg.js";import"./sessionOwnership-Bs1xbRfB.js";import"./isDiffPlainText-CQmDCnEv.js";import"./VirtualizedFileDiff-BTJVRkyo.js";import"./Virtualizer-xCEYz34p.js";import"./useInlineCommentController-CrjSGCpi.js";import"./appThemeRegistry-CxzMxR-H.js";import"./textMateThemeFromAppTheme-CDlKffWz.js";const Zs=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 u=[];for(const g of h.stops){const m=[],p=[];for(const i of g.hunkIds){const y=t.get(i);y?(m.push(y),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),u.push(f)}l.push({chapter:h,stops:u})}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)}},eo=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()]},Ft=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},to=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("")}`},so=n=>n?`${n.providerID}/${n.modelID}`:"",oo=({reason:n,model:t,requiredChars:e,availableChars:r,onRetry:l})=>{const{t:a}=re(),h=Te(k=>k.modelsMetadata),[u,g]=c.useState(void 0),[m,p]=c.useState(!1),f=n==="context-too-small"||n==="structured-output-unsupported"||n==="output-exhausted";c.useEffect(()=>{if(!f||u!==void 0)return;let k=!1;return(async()=>{try{const x=await Kt("/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(P=>typeof P=="string"))}catch{}})(),()=>{k=!0}},[f,u]);const i=c.useCallback(async(k,x)=>{if(!k||!x||m)return;const I=`${k}/${x}`;p(!0);try{await Ls({walkthroughModelOverride:I}),l()}catch(P){console.warn("Failed to save small model override:",P)}finally{p(!1)}},[l,m]),y=c.useCallback((k,x)=>h.get(`${k}/${x}`)?.structured_output!==!1,[h]),b=so(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})},j=()=>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:j()}),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(Wt,{providerId:t?.providerID??"",modelId:t?.modelID??"",onChange:(k,x)=>{i(k,x)},allowedProviderIds:u??[],isModelAllowed:y})]}),(n==="empty-diff"||n==="only-generated"||n==="server-unsupported")&&s.jsx($,{type:"button",variant:"outline",size:"sm",onClick:l,children:a("walkthrough.action.refresh")})]})},ro=[{labelKey:"walkthrough.stage.collecting"},{labelKey:"walkthrough.stage.asking"},{labelKey:"walkthrough.stage.assembling"}],no=n=>{const t=U.c(6),{progress:e}=n,{t:r}=re(),{completedCount:l,activeIndex:a}=e;let h;t[0]!==a||t[1]!==l||t[2]!==r?(h=ro.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:Z("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 u;return t[4]!==h?(u=s.jsx("ul",{className:"flex flex-col gap-2 text-left",children:h}),t[4]=h,t[5]=u):u=t[5],u},pe=["collecting","asking","assembling"],Xe=450,ao=n=>n==="retrying"?pe.indexOf("asking"):n?pe.indexOf(n):-1,io=(n,t)=>Math.min(n+1,t),lo=(n,t)=>{const e=U.c(17),[r,l]=c.useState(-1),a=c.useRef(0);let h;e[0]!==t||e[1]!==r||e[2]!==n?(h=t?Math.max(ao(n),0):r<0?-1:pe.length,e[0]=t,e[1]=r,e[2]=n,e[3]=h):h=e[3];const u=h;let g,m;e[4]!==t||e[5]!==r||e[6]!==u?(g=()=>{if(u<=r){u<r&&t&&(l(u),a.current=Date.now());return}const k=Date.now()-a.current,x=()=>{a.current=Date.now(),l(P=>io(P,u))};if(r<0||k>=Xe){x();return}const I=setTimeout(x,Xe-k);return()=>clearTimeout(I)},m=[t,r,u],e[4]=t,e[5]=r,e[6]=u,e[7]=g,e[8]=m):(g=e[7],m=e[8]),c.useEffect(g,m);let p,f;e[9]!==t||e[10]!==r?(p=()=>{if(t||r<pe.length)return;const k=setTimeout(()=>l(-1),Xe);return()=>clearTimeout(k)},f=[t,r],e[9]=t,e[10]=r,e[11]=p,e[12]=f):(p=e[11],f=e[12]),c.useEffect(p,f);const i=r>=pe.length,y=Math.max(0,Math.min(r,pe.length)),b=i||r<0?null:r,w=!t&&r>=0;let j;return e[13]!==y||e[14]!==b||e[15]!==w?(j={completedCount:y,activeIndex:b,holding:w},e[13]=y,e[14]=b,e[15]=w,e[16]=j):j=e[16],j},Ut=c.memo(function(t){const e=U.c(11),{path:r,hunks:l,renderSideBySide:a,wrapLines:h}=t;let u;if(e[0]!==l||e[1]!==r){const f=to(l);u=f?Ks(r,f):void 0,e[0]=l,e[1]=r,e[2]=u}else u=e[2];const g=u;if(!g)return null;let m;e[3]!==r?(m=Rs(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(Ys,{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}),Qe=n=>`walkthrough-stop-${n}`,co={critical:"border border-[var(--interactive-border)] font-medium text-foreground",normal:"bg-surface-muted text-muted-foreground",context:"bg-surface-muted text-muted-foreground"},uo=n=>{const t=U.c(22),{stopView:e}=n,{t:r}=re(),{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 u;t[4]!==l.importance||t[5]!==r?(u=l.importance!=="normal"&&s.jsxs($t,{children:[s.jsx(qt,{className:Z("typography-micro flex h-5 items-center rounded px-1.5 leading-none",co[l.importance]),children:l.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:l.importance==="critical"?r("walkthrough.importance.criticalHint"):r("walkthrough.importance.contextHint")})})]}),t[4]=l.importance,t[5]=r,t[6]=u):u=t[6];let g;t[7]!==a||t[8]!==h||t[9]!==u?(g=s.jsxs("div",{className:"flex items-center gap-2",children:[a,h,u]}),t[7]=a,t[8]=h,t[9]=u,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},_t=n=>{const t=U.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(Is,{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},po=n=>{const t=U.c(11),{hunks:e,renderSideBySide:r,wrapLines:l}=n;let a;t[0]!==e?(a=Ft(e),t[0]=e,t[1]=a):a=t[1];const h=a;let u;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(_t,{path:p.path}),s.jsx(Ut,{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],u=h.map(m),t[2]=r,t[3]=h,t[4]=l,t[5]=u}else u=t[5];let g;return t[9]!==u?(g=s.jsx(s.Fragment,{children:u}),t[9]=u,t[10]=g):g=t[10],g},ho=c.memo(function(t){const e=U.c(35),{view:r,activeStopId:l,scrollToStopId:a,onActiveStopChange:h,onScrollHandled:u,renderSideBySide:g,wrapLines:m}=t,{t:p}=re(),f=c.useRef(null),[i,y]=c.useState(!1),b=c.useRef(null),w=c.useRef(null);let j,k;e[0]===Symbol.for("react.memo_cache_sentinel")?(j=()=>()=>{w.current!==null&&window.clearTimeout(w.current)},k=[],e[0]=j,e[1]=k):(j=e[0],k=e[1]),c.useEffect(j,k);let x,I;e[2]!==u||e[3]!==a?(x=()=>{if(!a)return;const R=document.getElementById(Qe(a));R&&(b.current=a,R.scrollIntoView({behavior:"auto",block:"start"}),w.current!==null&&window.clearTimeout(w.current),w.current=window.setTimeout(()=>{b.current=null,w.current=null},250)),u()},I=[a,u],e[2]=u,e[3]=a,e[4]=x,e[5]=I):(x=e[4],I=e[5]),c.useEffect(x,I);let P;e[6]!==h?(P=R=>{const E=R.filter(mo).sort(go)[0];if(!E)return;const _=E.target.getAttribute("data-stop-id");if(!_)return;const ee=b.current;if(ee){_===ee&&(b.current=null);return}h(_)},e[6]=h,e[7]=P):P=e[7];const ne=P;let q,ae;e[8]!==ne||e[9]!==r.stops?(q=()=>{const R=f.current;if(!R)return;const E=new IntersectionObserver(ne,{root:R,rootMargin:"0px 0px -70% 0px",threshold:0});for(const _ of r.stops){const ee=document.getElementById(Qe(_.stop.id));ee&&E.observe(ee)}return()=>E.disconnect()},ae=[ne,r.stops],e[8]=ne,e[9]=r.stops,e[10]=q,e[11]=ae):(q=e[10],ae=e[11]),c.useEffect(q,ae);let H;e[12]!==r.uncoveredHunks?(H=Ft(r.uncoveredHunks),e[12]=r.uncoveredHunks,e[13]=H):H=e[13];const D=H;let L;if(e[14]!==l||e[15]!==g||e[16]!==p||e[17]!==r.stops||e[18]!==m){let R;e[20]!==l||e[21]!==g||e[22]!==p||e[23]!==m?(R=E=>s.jsxs("section",{id:Qe(E.stop.id),"data-stop-id":E.stop.id,className:Z("border-b border-border/60",l===E.stop.id&&"bg-interactive-selection/5"),children:[s.jsx(uo,{stopView:E}),E.hunks.length>0?s.jsx(po,{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]=R):R=e[24],L=r.stops.map(R),e[14]=l,e[15]=g,e[16]=p,e[17]=r.stops,e[18]=m,e[19]=L}else L=e[19];let G;e[25]!==g||e[26]!==p||e[27]!==i||e[28]!==D||e[29]!==r.uncoveredHunks.length||e[30]!==m?(G=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:()=>y(fo),"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&&D.map((R,E)=>s.jsxs("div",{children:[s.jsx(_t,{path:R.path}),s.jsx(Ut,{path:R.path,hunks:R.hunks,renderSideBySide:g,wrapLines:m})]},`${R.path}-${E}`))]}),e[25]=g,e[26]=p,e[27]=i,e[28]=D,e[29]=r.uncoveredHunks.length,e[30]=m,e[31]=G):G=e[31];let ie;return e[32]!==G||e[33]!==L?(ie=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,G]}),e[32]=G,e[33]=L,e[34]=ie):ie=e[34],ie});function mo(n){return n.isIntersecting}function go(n,t){return n.boundingClientRect.top-t.boundingClientRect.top}function fo(n){return!n}const xo={bug:"bug",wrench:"tools",path:"compass-3",flask:"flask",doc:"file-text",gear:"settings-3"},ko=n=>{const t=U.c(30),{stopView:e,isActive:r,isVisited:l,onSelect:a,activeRef:h}=n,{t:u}=re();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]!==u){const m=eo(e.hunks),p=r&&"bg-interactive-selection text-interactive-selection-foreground";let f;t[10]!==p?(f=Z("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 y;t[12]!==i?(y=Z("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]=y):y=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]!==y||t[19]!==b?(w=s.jsx("span",{className:y,children:b}),t[18]=y,t[19]=b,t[20]=w):w=t[20];let j;t[21]!==e.stop.title?(j=s.jsx("span",{className:"typography-meta truncate font-medium",children:e.stop.title}),t[21]=e.stop.title,t[22]=j):j=t[22];let k;t[23]!==e.isStale||t[24]!==u?(k=e.isStale&&s.jsx(S,{name:"error-warning",className:"size-3 shrink-0 text-status-warning","aria-label":u("walkthrough.stop.staleShort")}),t[23]=e.isStale,t[24]=u,t[25]=k):k=t[25];let x;t[26]!==w||t[27]!==j||t[28]!==k?(x=s.jsxs("span",{className:"flex items-center gap-2",children:[w,j,k]}),t[26]=w,t[27]=j,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(vo),m.length>3&&s.jsx("span",{children:u("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]=u,t[9]=g}else g=t[9];return g},bo=c.memo(function(t){const e=U.c(20),{view:r,activeStopId:l,visitedStopIds:a,onSelectStop:h,width:u}=t,{t:g}=re(),m=c.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],c.useEffect(p,f);let i;e[3]!==u?(i={width:u},e[3]=u,e[4]=i):i=e[4];let y;e[5]!==r.walkthrough.focus?(y=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]=y):y=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:xo[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(P=>s.jsx(ko,{stopView:P,isActive:l===P.stop.id,isVisited:a.has(P.stop.id),onSelect:()=>h(P.stop.id),activeRef:m},P.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 j;return e[15]!==i||e[16]!==y||e[17]!==b||e[18]!==w?(j=s.jsxs("nav",{className:"flex shrink-0 flex-col overflow-y-auto border-r border-border/60 p-2",style:i,children:[y,b,w]}),e[15]=i,e[16]=y,e[17]=b,e[18]=w,e[19]=j):j=e[19],j});function vo(n){return s.jsx("span",{className:"truncate font-mono",children:n.path},n.path)}const wo=["all","staged","working"],yo="https://docs.openchamber.dev/walkthrough/",Lt="typography-meta font-normal text-muted-foreground",Bt=720,de=180,Ye=.5,jo=680,Gn=({directory:n,visible:t=!0})=>{const{t:e,locale:r,locales:l,label:a}=re(),h=c.useRef(null),[u,g]=c.useState(0),{rootIsGitRepo:m,gitDirectory:p,nestedRepos:f}=Ms(n||null,{enabled:t}),i=p??n;c.useEffect(()=>{const o=h.current;if(!o||typeof ResizeObserver>"u")return;const v=new ResizeObserver(M=>{g(M[0]?.contentRect.width??0)});return v.observe(o),()=>v.disconnect()},[]);const y=ye(o=>o.walkthroughTocWidth),b=ye(o=>o.setWalkthroughTocWidth),[w,j]=c.useState(!1),k=u===0||u>=Bt,x=u>0&&u<jo,I=Math.min(Math.max(y,de),Math.max(de,(u||Bt)*Ye)),P=c.useCallback(o=>{o.preventDefault();const v=o.clientX,M=I,A=Math.max(de,(h.current?.clientWidth??0)*Ye);j(!0);const It=Ns=>{const Cs=Math.min(A,Math.max(de,M+Ns.clientX-v));b(Cs)},Me=()=>{j(!1),window.removeEventListener("pointermove",It),window.removeEventListener("pointerup",Me),window.removeEventListener("pointercancel",Me)};window.addEventListener("pointermove",It),window.addEventListener("pointerup",Me),window.addEventListener("pointercancel",Me)},[b,I]),ne=c.useCallback(o=>{const v=o.shiftKey?40:10,M=o.key==="ArrowLeft"?-v:o.key==="ArrowRight"?v:0;if(M===0)return;o.preventDefault();const A=Math.max(de,(h.current?.clientWidth??0)*Ye);b(Math.min(A,Math.max(de,I+M)))},[b,I]),[q,ae]=c.useState("all"),[H,D]=c.useState(null),[L,G]=c.useState(null),[ie,R]=c.useState(null),[E,_]=c.useState(()=>new Set),ee=ye(o=>o.diffLayoutPreference),Vt=ye(o=>o.diffWrapLines),Jt=ee==="side-by-side",O=B(o=>o.getRequestedTarget(i)),he=B(o=>o.clearRequestedTarget),Xt=ye(o=>o.openContextPanelTab),Qt=Ps(i||null),je=Pe(o=>o.runtimeKey),[Yt,Zt]=c.useState(0);c.useEffect(()=>Bs(o=>{o===Ws(i,je)&&Zt(v=>v+1)}),[i,je]);const Ae=Ts(i||null),es=Fs(o=>o.setOverride),Ze=Pe(o=>o.ensureAll),{sourceControl:Ee,git:et}=As(),K=Es(i,Ee);c.useEffect(()=>{t&&i&&Ze(i,et)},[i,Ze,et,t]);const T=Qt?.current??null,Se=H?.directory===i&&H.kind==="commit"&&!O,te=Se||O?.source.kind==="commit",tt=O?.source.kind==="commit"?O.source.hash:void 0,V=Us(i||null,T,t&&te,tt),J=V.selectedCommit?.hash??tt??null,{base:me,resolved:ts,revision:ss}=_s(i||null,T,t),X=c.useMemo(()=>{const o=T;if(!o||!me||me===o)return null;const v=Ae?.all??[],M=$s(me,{localBranches:v.filter(A=>!A.startsWith("remotes/")),remoteBranches:v.filter(A=>A.startsWith("remotes/")).map(A=>A.slice(8)),remoteNames:new Set(K.read?.repository.remotes.map(A=>A.name)??[]),primaryRemote:K.contexts[0]?.primaryRemote});return M?{kind:"branch",baseRef:M,headRef:o}:null},[K.contexts,K.read,Ae,me,T]),ze=zs(o=>o.entries),st=ue(o=>o.ensureEntry),ot=ue(o=>o.setParams),rt=ue(o=>o.beginActiveContextsLoad),nt=ue(o=>o.commitActiveContexts),at=ue(o=>o.releaseActiveContexts),Ne=c.useId(),it=ue(o=>o.refreshTargets);c.useEffect(()=>{if(!i)return;const o=K.scope.runtimeKey,v=rt(o,i,Ne),M=K.contexts.filter(A=>Mt(ze[Pt(A)],A).connected);return nt(o,i,Ne,v,M),()=>{at(o,i,Ne)}},[rt,K.contexts,K.scope.runtimeKey,nt,i,at,ze,Ne]);const C=K.contexts[0]??null,os=C?ze[Pt(C)]:void 0,Ce=C?Mt(os,C):{authChecked:!1,connected:!1};c.useEffect(()=>{if(!C||!T)return;const o=Os(C,T);st(o),ot(o,{directory:C.directory,branch:T,remoteName:C.primaryRemote,canShow:!0,identity:C,readContext:C,sourceControl:Ee,authChecked:Ce.authChecked,connected:Ce.connected}),it([{context:C,branch:T}])},[T,st,C,Ce.authChecked,Ce.connected,it,ot,Ee]);const Oe=H?.directory===i&&H.kind==="pr"&&!O,Q=Oe||O?.source.kind==="pr",se=Vs(i||null,T,C,t&&Q,O?.source.kind==="pr"?O.source:void 0),Y=se.selectedSource,De=C?.provider==="github"||C?.provider==="gitlab",ge=se.provider,z=c.useMemo(()=>Q&&Y&&De&&C?{source:Y,context:C}:te&&J?{source:{kind:"commit",hash:J}}:O?.source.kind==="branch"?{source:X??O.source}:O??{source:{kind:"working-tree",scope:q}},[X,te,Q,C,O,q,J,Y]),F=z.source,Re=H?.directory===i&&H.kind==="branch"&&!O,He=Re||F.kind==="branch",lt=Re||F.kind==="branch"&&!X,ct=Se||te&&!J,ut=Q&&!Y,fe=lt||ct||ut,rs=c.useCallback(o=>{D(null),he(i),ae(o)},[he,i]),d=B(o=>o.getEntry(i,z)),Le=B(o=>o.load),dt=B(o=>o.generate),ns=B(o=>o.cancel),oe=B(o=>o.requestTarget);c.useEffect(()=>{!Oe||!Y||!De||!C||(oe(i,{source:Y,context:C}),D(null))},[Oe,i,C,oe,Y]),c.useEffect(()=>{!Re||!X||(oe(i,{source:X}),D(null))},[X,Re,i,oe]),c.useEffect(()=>{!Se||!J||(oe(i,{source:{kind:"commit",hash:J}}),D(null))},[Se,i,oe,J]);const as=B(o=>o.selectModel),xe=B(o=>o.getSelectedModel(i,z)),is=B(o=>o.selectLanguage),Be=B(o=>o.getSelectedLanguage(i,z)),le=Te(o=>o.currentProviderId)||void 0,ce=Te(o=>o.currentModelId)||void 0,We=d.result?.language,W=Be&&l.includes(Be)?Be:We&&l.includes(We)?We:r,ls=F.kind==="branch"?ss:"",pt=F.kind==="pr"?Yt:0,ht=c.useRef(null);c.useEffect(()=>{if(!(!t||fe)){if(z.source.kind==="pr"){const o=JSON.stringify([je,i,z,W,xe,le,ce,pt]);if(ht.current===o)return;ht.current=o}Le(i,z,{language:W,providerID:le,modelID:ce})}},[W,le,ce,fe,i,Le,z,xe,ls,t,je,pt]);const N=c.useMemo(()=>fe?null:Zs(d.result),[fe,d.result]),$e=d.result?.generatedAt,mt=c.useRef(void 0);c.useEffect(()=>{mt.current!==$e&&(mt.current=$e,_(new Set),G(N?.stops[0]?.stop.id??null))},[$e,N]);const qe=c.useCallback(o=>{G(o),_(v=>{if(v.has(o))return v;const M=new Set(v);return M.add(o),M})},[]),Ge=c.useCallback(o=>{qe(o),R(o)},[qe]),gt=c.useCallback(o=>{if(!N||N.stops.length===0)return;const v=N.stops.findIndex(A=>A.stop.id===L),M=Math.min(N.stops.length-1,Math.max(0,(v<0?0:v)+o));Ge(N.stops[M].stop.id)},[L,Ge,N]),[cs,ft]=c.useState(!1),[us,xt]=c.useState(!1),ds=Q?"pr":te?"commit":He?"branch":F.kind==="working-tree"?F.scope:F.kind,ps=Q?e(ve("session.githubIntegration.tabs.pullRequests",ge)):te?e("commitComparison.mode"):He?e("walkthrough.scope.branch"):F.kind==="pr"?e(ve("walkthrough.scope.pullRequest",ge),{number:F.number}):e(q==="all"?"walkthrough.scope.all":q==="staged"?"walkthrough.scope.staged":"walkthrough.scope.working"),kt=Te(o=>o.modelsMetadata),[ke,hs]=c.useState(void 0),Ke=o=>!o||ke===void 0?!1:ke.includes(o),ms=d.readiness?.model&&d.readiness.model.hasLogin!==!1&&Ke(d.readiness.model.providerID)?`${d.readiness.model.providerID}/${d.readiness.model.modelID}`:void 0,gs=d.result?.model&&Ke(d.result.model.providerID)?`${d.result.model.providerID}/${d.result.model.modelID}`:void 0,Ie=(xe&&Ke(xe.split("/")[0])?xe:void 0)??gs??ms,[fs,...xs]=(Ie??"").split("/"),bt=xs.join("/");c.useEffect(()=>{if(ke!==void 0)return;let o=!1;return(async()=>{try{const v=await Kt("/api/small-model",{method:"GET",headers:{Accept:"application/json"}});if(!v.ok)return;const M=await v.json().catch(()=>null);!o&&Array.isArray(M?.authenticatedProviders)&&hs(M.authenticatedProviders.filter(A=>typeof A=="string"))}catch{}})(),()=>{o=!0}},[ke]);const ks=c.useCallback((o,v)=>kt.get(`${o}/${v}`)?.structured_output!==!1,[kt]),vt=d.status==="generating",wt=d.result?.model?`${d.result.model.providerID}/${d.result.model.modelID}`:void 0,Fe=d.result?.language,Ue=Fe&&l.includes(Fe)?Fe:void 0,yt=d.status==="ready"&&!!N,_e=yt&&!!Ue&&Ue!==W,jt=yt&&!!wt&&!!Ie&&wt!==Ie,St=lo(d.stage,d.status==="generating"),Nt=c.useRef(!1),Ct=c.useRef(d.status);c.useEffect(()=>{Ct.current!=="generating"&&d.status==="generating"&&(Nt.current=!N),Ct.current=d.status},[d.status,N]);const bs=Nt.current&&(d.status==="generating"||St.holding),Ve=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&&!N&&d.readiness.reason!=="no-provider-login"?d.readiness.reason:void 0,vs=d.error?.model??d.readiness?.model,ws=d.error?.requiredChars??d.readiness?.requiredChars,ys=d.error?.availableChars??d.readiness?.availableChars,be=fe||!Ie||!!(d.readiness&&!d.readiness.ready),Je=c.useCallback(o=>{be||dt(i,z,{force:o,language:W,providerID:le,modelID:ce})},[W,le,ce,i,dt,be,z]),Rt=Ds(p||null),js=Pe(o=>o.ensureNestedRepos),Ss=Pe(o=>o.selectNestedRepo);return m===!1&&Rt!==!0?s.jsx(qs,{root:n,rootIsGitRepo:m,resolvedIsGitRepo:Rt,nestedRepos:f,onRetryDiscovery:()=>{n&&js(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(Gs,{repositories:f,selectedRepository:p??null,onSelectRepository:o=>{n&&Ss(n,o)},repositoryRoot:n??void 0}):null,s.jsxs(Tt,{open:cs,onOpenChange:ft,children:[s.jsx(At,{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:ps}),s.jsx(S,{name:"arrow-down-s",className:"size-4 flex-shrink-0 opacity-60"})]})}),s.jsx(Et,{align:"start",className:"w-48",children:s.jsxs(zt,{value:ds,onValueChange:o=>{if(ft(!1),o==="commit"){he(i),D({directory:i,kind:"commit"});return}if(o==="branch"){X?(D(null),oe(i,{source:X})):(he(i),D({directory:i,kind:"branch"}));return}if(o==="pr"){he(i),D({directory:i,kind:"pr"});return}rs(o)},children:[s.jsx(Ot,{className:Lt,children:e("walkthrough.scope.group.workingTree")}),wo.map(o=>s.jsx(we,{value:o,children:e(o==="all"?"walkthrough.scope.all":o==="staged"?"walkthrough.scope.staged":"walkthrough.scope.working")},o)),T&&s.jsxs(s.Fragment,{children:[s.jsx(Dt,{}),s.jsx(we,{value:"branch",children:e("walkthrough.scope.branch")})]}),s.jsx(Dt,{}),s.jsx(we,{value:"commit",children:e("commitComparison.mode")}),De&&s.jsx(we,{value:"pr",children:e(ve("session.githubIntegration.tabs.pullRequests",ge))})]})})]}),He&&s.jsx(Js,{branches:Ae?.all??[],currentBranch:T,base:me,onSelect:o=>{i&&T&&es(i,T,o)}},JSON.stringify([i,T])),te&&s.jsx(Xs,{commits:V.commits,selectedHash:J,loading:V.loading,error:V.error,onSelect:V.select,onRefresh:()=>{V.refresh()}},JSON.stringify([i,T])),Q&&s.jsx(Ht,{comparison:se},JSON.stringify([i,T])),s.jsxs("div",{className:"ml-auto flex min-w-0 items-center gap-1",children:[Q&&Y&&s.jsxs($,{variant:"ghost",size:"sm","aria-label":e("contextPanel.mode.diff"),title:e("contextPanel.mode.diff"),onClick:()=>Xt(n,{mode:"diff",diffScope:"pr"}),children:[s.jsx(S,{name:"arrow-left-right",className:"size-4"}),!x&&e("contextPanel.mode.diff")]}),s.jsxs($t,{children:[s.jsx(qt,{asChild:!0,children:s.jsx($,{type:"button",variant:"ghost",size:"sm","aria-label":e("walkthrough.help.guide"),onClick:()=>{Hs(yo)},children:s.jsx(S,{name:"question",className:"size-4"})})}),s.jsx(Gt,{children:s.jsx("p",{className:"typography-micro leading-tight",children:e("walkthrough.help.guide")})})]}),s.jsxs(Tt,{open:us,onOpenChange:xt,children:[s.jsx(At,{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(Et,{align:"end",className:"w-48",children:[s.jsx(Ot,{className:Lt,children:e("walkthrough.language.menuLabel")}),s.jsx(zt,{value:W,onValueChange:o=>{xt(!1),is(i,z,o)},children:l.map(o=>s.jsx(we,{value:o,children:a(o)},o))})]})]}),s.jsx(Wt,{providerId:fs??"",modelId:bt,onChange:(o,v)=>{as(i,z,o&&v?`${o}/${v}`:null)},allowedProviderIds:ke??[],isModelAllowed:ks,tooltipsEnabled:!1,dropdownPortalToBody:!0,compact:x,className:Z("h-8 min-w-0",!x&&"max-w-48")}),N&&s.jsxs(s.Fragment,{children:[s.jsx($,{type:"button",variant:"ghost",size:"sm","aria-label":e("walkthrough.action.previous"),onClick:()=>gt(-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:()=>gt(1),children:s.jsx(S,{name:"arrow-right-s",className:"size-4"})})]}),vt?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:()=>ns(i,z),children:x?s.jsx(S,{name:"stop",className:"size-3.5"}):e("walkthrough.action.cancel")}):s.jsxs($,{type:"button",variant:"outline",size:"sm",className:be?"border-border text-muted-foreground":Qs,disabled:be,"aria-label":x?e(N?"walkthrough.action.regenerate":"walkthrough.action.generate"):void 0,title:x?e(N?"walkthrough.action.regenerate":"walkthrough.action.generate"):void 0,onClick:()=>Je(!!N),children:[s.jsx(S,{name:N?"refresh":"route",className:"size-3.5"}),!x&&e(N?"walkthrough.action.regenerate":"walkthrough.action.generate")]})]})]}),d.status==="generating"&&N&&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")})]}),(_e||jt)&&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:_e&&jt?e("walkthrough.missing.languageAndModel"):_e?e("walkthrough.missing.language",{requested:a(W),shown:a(Ue)}):e("walkthrough.missing.model",{model:bt})}),s.jsx($,{type:"button",variant:"ghost",size:"xs",className:"ml-auto",disabled:be,onClick:()=>Je(!1),children:e("walkthrough.action.generate")})]}),N?.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:N.staleStopCount})}),s.jsx($,{type:"button",variant:"ghost",size:"xs",className:"ml-auto",disabled:vt,onClick:()=>Je(!0),children:e("walkthrough.action.regenerate")})]}),d.error&&!Ve&&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:Z("flex min-h-0 flex-1",k?"flex-row":"flex-col"),children:ut?s.jsxs("div",{className:"flex flex-1 flex-col items-center justify-center gap-3 p-8 text-center",children:[s.jsx("p",{className:"typography-meta text-muted-foreground",children:se.error??(se.loading?e(ve("session.githubPrPicker.loading.pullRequests",ge)):e(ve("pullRequestComparison.select",ge)))}),!se.loading&&s.jsx(Ht,{comparison:se})]}):ct?s.jsx("div",{className:"flex flex-1 items-center justify-center gap-2 p-8 typography-meta text-muted-foreground",children:V.loading?s.jsx(S,{name:"loader-4",className:"size-6 animate-spin"}):V.error??e("commitComparison.noCommits")}):lt?s.jsx("div",{className:"flex flex-1 flex-col items-center justify-center gap-3 p-8 text-center",children:!ts&&T?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")})}):Ve?s.jsx(oo,{reason:Ve,model:vs,requiredChars:ws,availableChars:ys,onRetry:()=>{Le(i,z,{providerID:le,modelID:ce})}}):bs?s.jsx("div",{className:"flex flex-1 flex-col items-center justify-center gap-3 p-8",children:s.jsx(no,{progress:St})}):N?s.jsxs(s.Fragment,{children:[k&&s.jsxs(s.Fragment,{children:[s.jsx(bo,{view:N,activeStopId:L,visitedStopIds:E,onSelectStop:Ge,width:I}),s.jsx("div",{role:"separator","aria-orientation":"vertical","aria-label":e("walkthrough.toc.resize"),tabIndex:0,onPointerDown:P,onKeyDown:ne,className:Z("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(ho,{view:N,activeStopId:L,scrollToStopId:ie,onActiveStopChange:qe,onScrollHandled:()=>R(null),renderSideBySide:Jt,wrapLines:Vt})]}):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{Gn as WalkthroughView};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as d,a as g}from"./textMateThemeFromAppTheme-CDlKffWz.js";import"./themeResolver-BmJyTmjJ.js";import"./vendor-pierre-theming-C6Z4M5_u.js";import"./vendor-vite-runtime-DD1OZmLC.js";import"./vendor-shikijs-core-CGM_jqPK.js";import"./vendor-shikijs-types-CPSbSeK6.js";import"./vendor-shikijs-vscode-textmate-BgLrS_2D.js";import"./vendor-hast-util-to-html-BKBhbTDb.js";import"./vendor-html-void-elements-CkdplsNl.js";import"./vendor-property-information-rJCbAzvX.js";import"./vendor-zwitch-C2o2j-tx.js";import"./vendor-stringify-entities-CsH1VEn9.js";import"./vendor-character-entities-legacy-BpoLgcEt.js";import"./vendor-character-entities-html4-D7taRCQ7.js";import"./vendor-ccount-c2V3InAJ.js";import"./vendor-comma-separated-tokens-D8TqSuIK.js";import"./vendor-space-separated-tokens-DD3iYX1K.js";import"./vendor-hast-util-whitespace-D4Wp6AEg.js";import"./useAppFontEffects-DCqCVGlT.js";import"./vendor-react-BUCujlKS.js";import"./vendor-scheduler-7OC5HNn7.js";import"./index-vQ1Pg1cr.js";import"./vendor-zod-CxRSdNoV.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-opencode-client-DHzhmLwV.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-class-variance-authority-5VPnzWs2.js";import"./vendor-clsx-B-dksMZM.js";import"./vendor-base-ui-DX96QhTP.js";import"./vendor-floating-ui-utils-D6FqdtJt.js";import"./vendor-floating-ui-dom-BTvzWks8.js";import"./vendor-floating-ui-core-PuGzNPnN.js";import"./vendor-floating-ui-react-dom-DxYCWdHj.js";import"./vendor-use-sync-external-store-D6wYuSt-.js";import"./vendor-dnd-kit-core-BZknOX2w.js";import"./vendor-dnd-kit-utilities-B_MdXhJC.js";import"./vendor-dnd-kit-accessibility-BHxJPORy.js";import"./vendor-dnd-kit-sortable-CsEagZ81.js";import"./vendor-tanstack-react-virtual-H_JmXOFV.js";import"./vendor-tanstack-virtual-core-Dxc8hSTB.js";import"./vendor-framer-motion-Bq3iTZ6r.js";import"./vendor-motion-dom-DcCgeG69.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-ByBn5zIW.js";import"./vendor-lezer-common-B3-cUCR_.js";import"./vendor-codemirror-state-G3UuR-be.js";import"./vendor-marijn-find-cluster-break-DXwl3gUT.js";import"./vendor-codemirror-view-Bniqp7p5.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-CpGYXGuo.js";import"./vendor-lezer-javascript-D7Tj24ot.js";import"./vendor-lezer-lr-bhwg1HMg.js";import"./vendor-codemirror-autocomplete-DW1FQz9_.js";import"./vendor-codemirror-lang-json-58T70Hqs.js";import"./vendor-lezer-json-Iaex0UN-.js";import"./vendor-codemirror-lang-css-B07blnnZ.js";import"./vendor-lezer-css-C5xB6jxd.js";import"./vendor-codemirror-lang-html-DaH9adfE.js";import"./vendor-lezer-html-C0I1p52t.js";import"./vendor-codemirror-lang-markdown-BLKnlLP4.js";import"./vendor-lezer-markdown-C6g-d6P3.js";import"./vendor-codemirror-language-data-q2bKO1EM.js";import"./vendor-codemirror-lang-python-B7ClrMIT.js";import"./vendor-lezer-python-CvuFxeZl.js";import"./vendor-codemirror-commands-DpmhalwN.js";import"./vendor-legendapp-list-DViGR95I.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";const u=t=>/^#[0-9a-fA-F]{8}$/.test(t),n=t=>u(t)?t.slice(0,7):t;function l(t,r){return Object.defineProperty(t,"toString",{value:()=>r,enumerable:!1,configurable:!0}),Object.defineProperty(t,Symbol.toPrimitive,{value:()=>r,enumerable:!1,configurable:!0}),t}const f=40,i=new Map,s=new Map,c=t=>JSON.stringify(t),b=(t,r)=>{const o=t.colors?.["editor.background"],e=t.colors?.["editor.foreground"],m=o?n(o):void 0,p=e?n(e):void 0;if(!m||!p)throw new Error(`Theme "${r}" is missing editor.background/editor.foreground`);const a=t.tokenColors??[];return l({...t,name:r,fg:p,bg:m,settings:a},r)},T=t=>g(t),h=t=>{const r=c(t),o=i.get(r);if(o)return i.delete(r),i.set(r,o),o;const e=T(t),m=b(e,t.metadata.id);for(i.set(r,m);i.size>f;){const p=i.keys().next().value;if(p===void 0)break;i.delete(p)}return m},sr=t=>{const r=t.metadata.id,o=c(t);if(s.get(r)===o)return;const e=h(t);d(r,async()=>e),s.set(r,o)};export{sr as ensurePierreThemeRegistered,h as getResolvedShikiTheme,c as getThemeContentSignature};
|