@bryanhu/codexly 0.39.1 → 0.40.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/CHANGELOG.md +259 -500
- package/README.en.md +108 -0
- package/README.md +55 -124
- package/README.zh-CN.md +3 -154
- package/dist/{chunk-MZC5MJLV.js → chunk-5YNWOUR2.js} +1 -1
- package/dist/{chunk-WJBQS5HE.js → chunk-BXOL6SUO.js} +1 -1
- package/dist/chunk-PZZN5FBZ.js +934 -0
- package/dist/chunk-Q2VQAUSH.js +19 -0
- package/dist/chunk-S7LPESTQ.js +3 -0
- package/dist/{chunk-LGFUYNXR.js → chunk-UFZBNM7A.js} +4 -3
- package/dist/chunk-UR6FEWGU.js +37 -0
- package/dist/{chunk-YLWOAPZD.js → chunk-VBTBWY72.js} +2 -2
- package/dist/chunk-WE42CHL5.js +26 -0
- package/dist/cli.js +6 -6
- package/dist/client/index.js +2 -2
- package/dist/command-SFIOITEA.js +88 -0
- package/dist/core/index.js +1 -1
- package/dist/protocol/index.js +1 -1
- package/dist/providers/claude/index.js +1 -1
- package/dist/providers/codex/index.js +1 -1
- package/dist/server/index.js +1 -1
- package/dist/sqlite-state-worker.js +41 -17
- package/dist/web/.vite/manifest.json +292 -221
- package/dist/web/.vite/manifest.json.br +0 -0
- package/dist/web/.vite/manifest.json.gz +0 -0
- package/dist/web/assets/{agent-settings-panel-GcyPfLfD.js → agent-settings-panel-BpLGmoGs.js} +1 -1
- package/dist/web/assets/agent-settings-panel-BpLGmoGs.js.br +0 -0
- package/dist/web/assets/agent-settings-panel-BpLGmoGs.js.gz +0 -0
- package/dist/web/assets/{api-connection-fields-rwNEEzre.js → api-connection-fields-BibbcpNv.js} +1 -1
- package/dist/web/assets/api-connection-fields-BibbcpNv.js.br +0 -0
- package/dist/web/assets/api-connection-fields-BibbcpNv.js.gz +0 -0
- package/dist/web/assets/{app-update-dialog-DdlLCV_z.js → app-update-dialog-DQoACHXt.js} +1 -1
- package/dist/web/assets/app-update-dialog-DQoACHXt.js.br +0 -0
- package/dist/web/assets/app-update-dialog-DQoACHXt.js.gz +0 -0
- package/dist/web/assets/arrow-up-right-1gv4rBr2.js +1 -0
- package/dist/web/assets/arrow-up-right-1gv4rBr2.js.br +0 -0
- package/dist/web/assets/arrow-up-right-1gv4rBr2.js.gz +0 -0
- package/dist/web/assets/{background-image-picker-Dt25pttj.js → background-image-picker-BSsADQTT.js} +1 -1
- package/dist/web/assets/background-image-picker-BSsADQTT.js.br +0 -0
- package/dist/web/assets/background-image-picker-BSsADQTT.js.gz +0 -0
- package/dist/web/assets/claude-extensions-pane-CQr8ljAY.js +1 -0
- package/dist/web/assets/claude-extensions-pane-CQr8ljAY.js.br +0 -0
- package/dist/web/assets/claude-extensions-pane-CQr8ljAY.js.gz +0 -0
- package/dist/web/assets/{claude-settings-panel-CZTefufO.js → claude-settings-panel-DXKvK9Cx.js} +1 -1
- package/dist/web/assets/claude-settings-panel-DXKvK9Cx.js.br +0 -0
- package/dist/web/assets/claude-settings-panel-DXKvK9Cx.js.gz +0 -0
- package/dist/web/assets/{code-highlighter-0Z3RdljI.js → code-highlighter-DLfpC-2j.js} +1 -1
- package/dist/web/assets/code-highlighter-DLfpC-2j.js.br +0 -0
- package/dist/web/assets/code-highlighter-DLfpC-2j.js.gz +0 -0
- package/dist/web/assets/codex-resources-pane-wsrvgVrc.js +1 -0
- package/dist/web/assets/codex-resources-pane-wsrvgVrc.js.br +0 -0
- package/dist/web/assets/codex-resources-pane-wsrvgVrc.js.gz +0 -0
- package/dist/web/assets/{commit-settings-panel-_6tz55NU.js → commit-settings-panel-CDFZi6_m.js} +1 -1
- package/dist/web/assets/commit-settings-panel-CDFZi6_m.js.br +0 -0
- package/dist/web/assets/commit-settings-panel-CDFZi6_m.js.gz +0 -0
- package/dist/web/assets/{composer-git-menu-DpKwGaj6.js → composer-git-menu-RXjhQAjt.js} +1 -1
- package/dist/web/assets/composer-git-menu-RXjhQAjt.js.br +0 -0
- package/dist/web/assets/composer-git-menu-RXjhQAjt.js.gz +0 -0
- package/dist/web/assets/{engine-setup-gate-CLwMC0cZ.js → engine-setup-gate-BMxHgUPX.js} +1 -1
- package/dist/web/assets/engine-setup-gate-BMxHgUPX.js.br +0 -0
- package/dist/web/assets/engine-setup-gate-BMxHgUPX.js.gz +0 -0
- package/dist/web/assets/extension-list-FpN59xyu.js +1 -0
- package/dist/web/assets/extension-list-FpN59xyu.js.br +0 -0
- package/dist/web/assets/extension-list-FpN59xyu.js.gz +0 -0
- package/dist/web/assets/extension-operation-C25lNEcc.js +1 -0
- package/dist/web/assets/extension-operation-C25lNEcc.js.br +3 -0
- package/dist/web/assets/extension-operation-C25lNEcc.js.gz +0 -0
- package/dist/web/assets/{file-review-dialog-BXpGVDGs.js → file-review-dialog-B0m1uX8I.js} +2 -2
- package/dist/web/assets/file-review-dialog-B0m1uX8I.js.br +0 -0
- package/dist/web/assets/file-review-dialog-B0m1uX8I.js.gz +0 -0
- package/dist/web/assets/{git-commit-review-B9S0XgSb.js → git-commit-review-BzmpTmCu.js} +2 -2
- package/dist/web/assets/git-commit-review-BzmpTmCu.js.br +0 -0
- package/dist/web/assets/git-commit-review-BzmpTmCu.js.gz +0 -0
- package/dist/web/assets/{git-history-panel-DfcnGX1A.js → git-history-panel-D0NtL4Ey.js} +1 -1
- package/dist/web/assets/git-history-panel-D0NtL4Ey.js.br +0 -0
- package/dist/web/assets/git-history-panel-D0NtL4Ey.js.gz +0 -0
- package/dist/web/assets/global-search-dialog-CfUFXT2P.js +2 -0
- package/dist/web/assets/global-search-dialog-CfUFXT2P.js.br +0 -0
- package/dist/web/assets/global-search-dialog-CfUFXT2P.js.gz +0 -0
- package/dist/web/assets/{global-settings-about-DKRCMAdV.js → global-settings-about-0K0nGRC-.js} +1 -1
- package/dist/web/assets/global-settings-about-0K0nGRC-.js.br +0 -0
- package/dist/web/assets/global-settings-about-0K0nGRC-.js.gz +0 -0
- package/dist/web/assets/{global-settings-fields-CZQRvk7T.js → global-settings-fields-Bguzhix9.js} +1 -1
- package/dist/web/assets/global-settings-fields-Bguzhix9.js.br +0 -0
- package/dist/web/assets/global-settings-fields-Bguzhix9.js.gz +0 -0
- package/dist/web/assets/global-settings-page-BpfeYCYG.js +2 -0
- package/dist/web/assets/global-settings-page-BpfeYCYG.js.br +0 -0
- package/dist/web/assets/global-settings-page-BpfeYCYG.js.gz +0 -0
- package/dist/web/assets/{global-settings-pets-Dgq86Iwj.js → global-settings-pets-B43_pFUh.js} +1 -1
- package/dist/web/assets/global-settings-pets-B43_pFUh.js.br +0 -0
- package/dist/web/assets/global-settings-pets-B43_pFUh.js.gz +0 -0
- package/dist/web/assets/{highlighted-body-OFNGDK62-CCHSSZrU.js → highlighted-body-OFNGDK62-DWnfzzs7.js} +1 -1
- package/dist/web/assets/highlighted-body-OFNGDK62-DWnfzzs7.js.br +0 -0
- package/dist/web/assets/highlighted-body-OFNGDK62-DWnfzzs7.js.gz +0 -0
- package/dist/web/assets/history-task-timeline-BtWNWjvT.js +1 -0
- package/dist/web/assets/history-task-timeline-BtWNWjvT.js.br +0 -0
- package/dist/web/assets/history-task-timeline-BtWNWjvT.js.gz +0 -0
- package/dist/web/assets/{image-preview-twQXvzOe.js → image-preview-DLbcm8V_.js} +2 -2
- package/dist/web/assets/image-preview-DLbcm8V_.js.br +0 -0
- package/dist/web/assets/image-preview-DLbcm8V_.js.gz +0 -0
- package/dist/web/assets/{image-preview-content-D0yaZycO.js → image-preview-content-B8t4zN2r.js} +2 -2
- package/dist/web/assets/image-preview-content-B8t4zN2r.js.br +0 -0
- package/dist/web/assets/image-preview-content-B8t4zN2r.js.gz +0 -0
- package/dist/web/assets/index-BUna2uyD.js +4 -0
- package/dist/web/assets/index-BUna2uyD.js.br +0 -0
- package/dist/web/assets/index-BUna2uyD.js.gz +0 -0
- package/dist/web/assets/index-CB0Jmx2g.css +2 -0
- package/dist/web/assets/index-CB0Jmx2g.css.br +0 -0
- package/dist/web/assets/index-CB0Jmx2g.css.gz +0 -0
- package/dist/web/assets/{initial-deps-n_ZBS3cC.js → initial-deps-CilSILfP.js} +1 -1
- package/dist/web/assets/initial-deps-CilSILfP.js.br +0 -0
- package/dist/web/assets/initial-deps-CilSILfP.js.gz +0 -0
- package/dist/web/assets/initial-deps-CyMAtgCd.js +2 -0
- package/dist/web/assets/initial-deps-CyMAtgCd.js.br +0 -0
- package/dist/web/assets/initial-deps-CyMAtgCd.js.gz +0 -0
- package/dist/web/assets/installed-skills-pane-Cp1c9O0j.js +1 -0
- package/dist/web/assets/installed-skills-pane-Cp1c9O0j.js.br +0 -0
- package/dist/web/assets/installed-skills-pane-Cp1c9O0j.js.gz +0 -0
- package/dist/web/assets/mcp-management-pane-C95hsTpS.js +1 -0
- package/dist/web/assets/mcp-management-pane-C95hsTpS.js.br +0 -0
- package/dist/web/assets/mcp-management-pane-C95hsTpS.js.gz +0 -0
- package/dist/web/assets/mermaid-GHXKKRXX-CVt2koup.js +1 -0
- package/dist/web/assets/mermaid-GHXKKRXX-CVt2koup.js.br +0 -0
- package/dist/web/assets/mermaid-GHXKKRXX-CVt2koup.js.gz +0 -0
- package/dist/web/assets/{message-assistant-directive-TOAo3G6q.js → message-assistant-directive-DMoVi7q3.js} +2 -2
- package/dist/web/assets/message-assistant-directive-DMoVi7q3.js.br +0 -0
- package/dist/web/assets/message-assistant-directive-DMoVi7q3.js.gz +0 -0
- package/dist/web/assets/{message-response-C1VxUFiG.js → message-response-BswwJ_0M.js} +6 -6
- package/dist/web/assets/message-response-BswwJ_0M.js.br +0 -0
- package/dist/web/assets/message-response-BswwJ_0M.js.gz +0 -0
- package/dist/web/assets/{model-context-window-input-Blo_ohMF.js → model-context-window-input-B1WfG4S_.js} +1 -1
- package/dist/web/assets/model-context-window-input-B1WfG4S_.js.br +0 -0
- package/dist/web/assets/model-context-window-input-B1WfG4S_.js.gz +0 -0
- package/dist/web/assets/official-plugin-sheet-DIa2udRz.js +1 -0
- package/dist/web/assets/official-plugin-sheet-DIa2udRz.js.br +0 -0
- package/dist/web/assets/official-plugin-sheet-DIa2udRz.js.gz +0 -0
- package/dist/web/assets/official-plugins-pane-DcZytL9D.css +1 -0
- package/dist/web/assets/official-plugins-pane-DcZytL9D.css.br +0 -0
- package/dist/web/assets/official-plugins-pane-DcZytL9D.css.gz +0 -0
- package/dist/web/assets/official-plugins-pane-DoRHj17k.js +2 -0
- package/dist/web/assets/official-plugins-pane-DoRHj17k.js.br +0 -0
- package/dist/web/assets/official-plugins-pane-DoRHj17k.js.gz +0 -0
- package/dist/web/assets/open-project-path-tkV3GG0_.js +1 -0
- package/dist/web/assets/open-project-path-tkV3GG0_.js.br +0 -0
- package/dist/web/assets/open-project-path-tkV3GG0_.js.gz +0 -0
- package/dist/web/assets/{patch-diff-viewer-D4NrazF3.js → patch-diff-viewer-_6e4j2Xu.js} +2 -2
- package/dist/web/assets/patch-diff-viewer-_6e4j2Xu.js.br +0 -0
- package/dist/web/assets/patch-diff-viewer-_6e4j2Xu.js.gz +0 -0
- package/dist/web/assets/{pdf-preview-Cl3Njv1q.js → pdf-preview-C7dU4MfB.js} +3 -3
- package/dist/web/assets/pdf-preview-C7dU4MfB.js.br +0 -0
- package/dist/web/assets/pdf-preview-C7dU4MfB.js.gz +0 -0
- package/dist/web/assets/{personalization-settings-panel-DjAbwwrQ.js → personalization-settings-panel-Bn69EkZ8.js} +1 -1
- package/dist/web/assets/personalization-settings-panel-Bn69EkZ8.js.br +0 -0
- package/dist/web/assets/personalization-settings-panel-Bn69EkZ8.js.gz +0 -0
- package/dist/web/assets/{project-file-popup-page-DZ4w18TV.js → project-file-popup-page-zQmKyPor.js} +1 -1
- package/dist/web/assets/project-file-popup-page-zQmKyPor.js.br +0 -0
- package/dist/web/assets/project-file-popup-page-zQmKyPor.js.gz +0 -0
- package/dist/web/assets/project-source-panel-B073gmHb.js +2 -0
- package/dist/web/assets/project-source-panel-B073gmHb.js.br +0 -0
- package/dist/web/assets/project-source-panel-B073gmHb.js.gz +0 -0
- package/dist/web/assets/{prompt-input-CJK7fW5b.js → prompt-input-CppQfZJu.js} +1 -1
- package/dist/web/assets/prompt-input-CppQfZJu.js.br +0 -0
- package/dist/web/assets/prompt-input-CppQfZJu.js.gz +0 -0
- package/dist/web/assets/provider-connection-panel-stjpuDi-.js +1 -0
- package/dist/web/assets/provider-connection-panel-stjpuDi-.js.br +0 -0
- package/dist/web/assets/provider-connection-panel-stjpuDi-.js.gz +0 -0
- package/dist/web/assets/{provider-connection-queries-D0AjZJNn.js → provider-connection-queries-Bi1sUodL.js} +1 -1
- package/dist/web/assets/provider-connection-queries-Bi1sUodL.js.br +0 -0
- package/dist/web/assets/provider-connection-queries-Bi1sUodL.js.gz +0 -0
- package/dist/web/assets/resources-en-yeMes3Ah.js +1 -0
- package/dist/web/assets/resources-en-yeMes3Ah.js.br +0 -0
- package/dist/web/assets/resources-en-yeMes3Ah.js.gz +0 -0
- package/dist/web/assets/{scheduled-task-date-time-picker-BFlpWVIu.js → scheduled-task-date-time-picker-BDHyAcNa.js} +1 -1
- package/dist/web/assets/scheduled-task-date-time-picker-BDHyAcNa.js.br +0 -0
- package/dist/web/assets/{scheduled-task-date-time-picker-BFlpWVIu.js.gz → scheduled-task-date-time-picker-BDHyAcNa.js.gz} +0 -0
- package/dist/web/assets/{scheduled-task-floating-ui~scheduled-task-date-time-picker-BxBVgd4h.js → scheduled-task-floating-ui~scheduled-task-date-time-picker-cReLi3tI.js} +1 -1
- package/dist/web/assets/scheduled-task-floating-ui~scheduled-task-date-time-picker-cReLi3tI.js.br +0 -0
- package/dist/web/assets/scheduled-task-floating-ui~scheduled-task-date-time-picker-cReLi3tI.js.gz +0 -0
- package/dist/web/assets/scheduled-tasks-container-BrEi6mNO.js +2 -0
- package/dist/web/assets/scheduled-tasks-container-BrEi6mNO.js.br +0 -0
- package/dist/web/assets/scheduled-tasks-container-BrEi6mNO.js.gz +0 -0
- package/dist/web/assets/{settings-mutation-status-BCHdtmzH.js → settings-mutation-status-Dke6ycgH.js} +1 -1
- package/dist/web/assets/settings-mutation-status-Dke6ycgH.js.br +0 -0
- package/dist/web/assets/settings-mutation-status-Dke6ycgH.js.gz +0 -0
- package/dist/web/assets/{settings-save-status-DFCaOej1.js → settings-save-status-CUoSP7m5.js} +1 -1
- package/dist/web/assets/settings-save-status-CUoSP7m5.js.br +0 -0
- package/dist/web/assets/settings-save-status-CUoSP7m5.js.gz +0 -0
- package/dist/web/assets/{shiki-bundle-DTJ4LKMP.js → shiki-bundle-DoOIe8qx.js} +1 -1
- package/dist/web/assets/shiki-bundle-DoOIe8qx.js.br +2 -0
- package/dist/web/assets/shiki-bundle-DoOIe8qx.js.gz +0 -0
- package/dist/web/assets/skills-market-container-BoEyKoRt.css +1 -0
- package/dist/web/assets/skills-market-container-BoEyKoRt.css.br +0 -0
- package/dist/web/assets/skills-market-container-BoEyKoRt.css.gz +0 -0
- package/dist/web/assets/skills-market-container-PCo27WKC.js +2 -0
- package/dist/web/assets/skills-market-container-PCo27WKC.js.br +0 -0
- package/dist/web/assets/skills-market-container-PCo27WKC.js.gz +0 -0
- package/dist/web/assets/split-workspace-menu-content-Co-x9yyy.js +1 -0
- package/dist/web/assets/split-workspace-menu-content-Co-x9yyy.js.br +2 -0
- package/dist/web/assets/split-workspace-menu-content-Co-x9yyy.js.gz +0 -0
- package/dist/web/assets/{task-timeline-process-history-DQh6F650.js → task-timeline-process-history-CZep5llt.js} +1 -1
- package/dist/web/assets/task-timeline-process-history-CZep5llt.js.br +0 -0
- package/dist/web/assets/task-timeline-process-history-CZep5llt.js.gz +0 -0
- package/dist/web/assets/useMutationState-CuY6Z3bo.js +1 -0
- package/dist/web/assets/useMutationState-CuY6Z3bo.js.br +0 -0
- package/dist/web/assets/useMutationState-CuY6Z3bo.js.gz +0 -0
- package/dist/web/assets/workbench-inspector-changes-C-xC1l-l.js +1 -0
- package/dist/web/assets/workbench-inspector-changes-C-xC1l-l.js.br +0 -0
- package/dist/web/assets/workbench-inspector-changes-C-xC1l-l.js.gz +0 -0
- package/dist/web/assets/{workbench-pet-canvas-D7FEem4_.js → workbench-pet-canvas-DfV_J-9g.js} +1 -1
- package/dist/web/assets/workbench-pet-canvas-DfV_J-9g.js.br +0 -0
- package/dist/web/assets/workbench-pet-canvas-DfV_J-9g.js.gz +0 -0
- package/dist/web/assets/workbench-shell-BjJSD8dp.js +17 -0
- package/dist/web/assets/workbench-shell-BjJSD8dp.js.br +0 -0
- package/dist/web/assets/workbench-shell-BjJSD8dp.js.gz +0 -0
- package/dist/web/index.html +5 -5
- package/dist/web/index.html.br +0 -0
- package/dist/web/index.html.gz +0 -0
- package/docs/README.md +49 -0
- package/docs/agent-engines.md +20 -2
- package/docs/conversation-performance.md +37 -0
- package/docs/faq.md +63 -0
- package/docs/getting-started.en.md +54 -0
- package/docs/getting-started.md +54 -0
- package/docs/global-search.md +49 -0
- package/docs/images/codexly-preview.png +0 -0
- package/docs/local-catalog.md +23 -1
- package/docs/model-context-window.md +10 -4
- package/docs/model-discovery.md +19 -5
- package/docs/scheduled-task-idempotency.md +28 -0
- package/docs/text-file-editing.md +97 -0
- package/docs/usage.en.md +65 -0
- package/docs/usage.md +67 -0
- package/docs/web-autostart.md +6 -2
- package/docs/web-autostart.zh-CN.md +6 -2
- package/docs/web.en.md +123 -0
- package/docs/web.md +123 -0
- package/package.json +21 -4
- package/dist/chunk-CUMMPRJN.js +0 -1066
- package/dist/chunk-LZ36FOFS.js +0 -37
- package/dist/chunk-USKJGAQY.js +0 -26
- package/dist/chunk-ZYNXEYSW.js +0 -3
- package/dist/command-FXYNYD4O.js +0 -84
- package/dist/web/assets/agent-settings-panel-GcyPfLfD.js.br +0 -0
- package/dist/web/assets/agent-settings-panel-GcyPfLfD.js.gz +0 -0
- package/dist/web/assets/api-connection-fields-rwNEEzre.js.br +0 -0
- package/dist/web/assets/api-connection-fields-rwNEEzre.js.gz +0 -0
- package/dist/web/assets/app-update-dialog-DdlLCV_z.js.br +0 -0
- package/dist/web/assets/app-update-dialog-DdlLCV_z.js.gz +0 -0
- package/dist/web/assets/background-image-picker-Dt25pttj.js.br +0 -0
- package/dist/web/assets/background-image-picker-Dt25pttj.js.gz +0 -0
- package/dist/web/assets/claude-settings-panel-CZTefufO.js.br +0 -0
- package/dist/web/assets/claude-settings-panel-CZTefufO.js.gz +0 -0
- package/dist/web/assets/code-highlighter-0Z3RdljI.js.br +0 -0
- package/dist/web/assets/code-highlighter-0Z3RdljI.js.gz +0 -0
- package/dist/web/assets/commit-settings-panel-_6tz55NU.js.br +0 -0
- package/dist/web/assets/commit-settings-panel-_6tz55NU.js.gz +0 -0
- package/dist/web/assets/composer-git-menu-DpKwGaj6.js.br +0 -0
- package/dist/web/assets/composer-git-menu-DpKwGaj6.js.gz +0 -0
- package/dist/web/assets/dist-C5hT0FeX.js +0 -1
- package/dist/web/assets/dist-C5hT0FeX.js.br +0 -0
- package/dist/web/assets/dist-C5hT0FeX.js.gz +0 -0
- package/dist/web/assets/engine-setup-gate-CLwMC0cZ.js.br +0 -0
- package/dist/web/assets/engine-setup-gate-CLwMC0cZ.js.gz +0 -0
- package/dist/web/assets/file-review-dialog-BXpGVDGs.js.br +0 -0
- package/dist/web/assets/file-review-dialog-BXpGVDGs.js.gz +0 -0
- package/dist/web/assets/git-commit-review-B9S0XgSb.js.br +0 -0
- package/dist/web/assets/git-commit-review-B9S0XgSb.js.gz +0 -0
- package/dist/web/assets/git-history-panel-DfcnGX1A.js.br +0 -0
- package/dist/web/assets/git-history-panel-DfcnGX1A.js.gz +0 -0
- package/dist/web/assets/global-search-dialog-BKoOMCoP.js +0 -2
- package/dist/web/assets/global-search-dialog-BKoOMCoP.js.br +0 -0
- package/dist/web/assets/global-search-dialog-BKoOMCoP.js.gz +0 -0
- package/dist/web/assets/global-settings-about-DKRCMAdV.js.br +0 -0
- package/dist/web/assets/global-settings-about-DKRCMAdV.js.gz +0 -0
- package/dist/web/assets/global-settings-fields-CZQRvk7T.js.br +0 -0
- package/dist/web/assets/global-settings-fields-CZQRvk7T.js.gz +0 -0
- package/dist/web/assets/global-settings-page-CjcdnklO.js +0 -2
- package/dist/web/assets/global-settings-page-CjcdnklO.js.br +0 -0
- package/dist/web/assets/global-settings-page-CjcdnklO.js.gz +0 -0
- package/dist/web/assets/global-settings-pets-Dgq86Iwj.js.br +0 -0
- package/dist/web/assets/global-settings-pets-Dgq86Iwj.js.gz +0 -0
- package/dist/web/assets/highlighted-body-OFNGDK62-CCHSSZrU.js.br +0 -0
- package/dist/web/assets/highlighted-body-OFNGDK62-CCHSSZrU.js.gz +0 -0
- package/dist/web/assets/history-location-C01Ls1aP.js +0 -1
- package/dist/web/assets/history-location-C01Ls1aP.js.br +0 -0
- package/dist/web/assets/history-location-C01Ls1aP.js.gz +0 -0
- package/dist/web/assets/history-task-timeline-BCyUvqft.js +0 -1
- package/dist/web/assets/history-task-timeline-BCyUvqft.js.br +0 -0
- package/dist/web/assets/history-task-timeline-BCyUvqft.js.gz +0 -0
- package/dist/web/assets/image-preview-content-D0yaZycO.js.br +0 -0
- package/dist/web/assets/image-preview-content-D0yaZycO.js.gz +0 -0
- package/dist/web/assets/image-preview-twQXvzOe.js.br +0 -0
- package/dist/web/assets/image-preview-twQXvzOe.js.gz +0 -0
- package/dist/web/assets/index-BPQs_vk8.css +0 -2
- package/dist/web/assets/index-BPQs_vk8.css.br +0 -0
- package/dist/web/assets/index-BPQs_vk8.css.gz +0 -0
- package/dist/web/assets/index-WWY-Ngf-.js +0 -4
- package/dist/web/assets/index-WWY-Ngf-.js.br +0 -0
- package/dist/web/assets/index-WWY-Ngf-.js.gz +0 -0
- package/dist/web/assets/initial-deps-DG--jjIA.js +0 -2
- package/dist/web/assets/initial-deps-DG--jjIA.js.br +0 -0
- package/dist/web/assets/initial-deps-DG--jjIA.js.gz +0 -0
- package/dist/web/assets/initial-deps-n_ZBS3cC.js.br +0 -0
- package/dist/web/assets/initial-deps-n_ZBS3cC.js.gz +0 -0
- package/dist/web/assets/installed-skills-pane-CqWvZCqX.js +0 -1
- package/dist/web/assets/installed-skills-pane-CqWvZCqX.js.br +0 -0
- package/dist/web/assets/installed-skills-pane-CqWvZCqX.js.gz +0 -0
- package/dist/web/assets/mcp-management-pane-CRnxzNPO.js +0 -1
- package/dist/web/assets/mcp-management-pane-CRnxzNPO.js.br +0 -0
- package/dist/web/assets/mcp-management-pane-CRnxzNPO.js.gz +0 -0
- package/dist/web/assets/mermaid-GHXKKRXX-CQ6ZLXfO.js +0 -1
- package/dist/web/assets/mermaid-GHXKKRXX-CQ6ZLXfO.js.br +0 -0
- package/dist/web/assets/mermaid-GHXKKRXX-CQ6ZLXfO.js.gz +0 -0
- package/dist/web/assets/message-assistant-directive-TOAo3G6q.js.br +0 -0
- package/dist/web/assets/message-assistant-directive-TOAo3G6q.js.gz +0 -0
- package/dist/web/assets/message-response-C1VxUFiG.js.br +0 -0
- package/dist/web/assets/message-response-C1VxUFiG.js.gz +0 -0
- package/dist/web/assets/model-context-window-input-Blo_ohMF.js.br +0 -0
- package/dist/web/assets/model-context-window-input-Blo_ohMF.js.gz +0 -0
- package/dist/web/assets/official-plugins-pane-BCxHJLaj.css +0 -1
- package/dist/web/assets/official-plugins-pane-BCxHJLaj.css.br +0 -0
- package/dist/web/assets/official-plugins-pane-BCxHJLaj.css.gz +0 -0
- package/dist/web/assets/official-plugins-pane-CV6nzUMx.js +0 -1
- package/dist/web/assets/official-plugins-pane-CV6nzUMx.js.br +0 -0
- package/dist/web/assets/official-plugins-pane-CV6nzUMx.js.gz +0 -0
- package/dist/web/assets/patch-diff-viewer-D4NrazF3.js.br +0 -0
- package/dist/web/assets/patch-diff-viewer-D4NrazF3.js.gz +0 -0
- package/dist/web/assets/pdf-preview-Cl3Njv1q.js.br +0 -0
- package/dist/web/assets/pdf-preview-Cl3Njv1q.js.gz +0 -0
- package/dist/web/assets/personalization-settings-panel-DjAbwwrQ.js.br +0 -0
- package/dist/web/assets/personalization-settings-panel-DjAbwwrQ.js.gz +0 -0
- package/dist/web/assets/project-file-popup-page-DZ4w18TV.js.br +0 -0
- package/dist/web/assets/project-file-popup-page-DZ4w18TV.js.gz +0 -0
- package/dist/web/assets/project-source-panel-B7XIYPte.js +0 -2
- package/dist/web/assets/project-source-panel-B7XIYPte.js.br +0 -0
- package/dist/web/assets/project-source-panel-B7XIYPte.js.gz +0 -0
- package/dist/web/assets/prompt-input-CJK7fW5b.js.br +0 -0
- package/dist/web/assets/prompt-input-CJK7fW5b.js.gz +0 -0
- package/dist/web/assets/provider-connection-panel-BI_YJrBr.js +0 -1
- package/dist/web/assets/provider-connection-panel-BI_YJrBr.js.br +0 -0
- package/dist/web/assets/provider-connection-panel-BI_YJrBr.js.gz +0 -0
- package/dist/web/assets/provider-connection-queries-D0AjZJNn.js.br +0 -0
- package/dist/web/assets/provider-connection-queries-D0AjZJNn.js.gz +0 -0
- package/dist/web/assets/resources-en-DinTd3sL.js +0 -1
- package/dist/web/assets/resources-en-DinTd3sL.js.br +0 -0
- package/dist/web/assets/resources-en-DinTd3sL.js.gz +0 -0
- package/dist/web/assets/scheduled-task-date-time-picker-BFlpWVIu.js.br +0 -0
- package/dist/web/assets/scheduled-task-floating-ui~scheduled-task-date-time-picker-BxBVgd4h.js.br +0 -0
- package/dist/web/assets/scheduled-task-floating-ui~scheduled-task-date-time-picker-BxBVgd4h.js.gz +0 -0
- package/dist/web/assets/scheduled-tasks-container-B0OwC2BV.js +0 -2
- package/dist/web/assets/scheduled-tasks-container-B0OwC2BV.js.br +0 -0
- package/dist/web/assets/scheduled-tasks-container-B0OwC2BV.js.gz +0 -0
- package/dist/web/assets/settings-mutation-status-BCHdtmzH.js.br +0 -0
- package/dist/web/assets/settings-mutation-status-BCHdtmzH.js.gz +0 -0
- package/dist/web/assets/settings-save-status-DFCaOej1.js.br +0 -0
- package/dist/web/assets/settings-save-status-DFCaOej1.js.gz +0 -0
- package/dist/web/assets/shiki-bundle-DTJ4LKMP.js.br +0 -2
- package/dist/web/assets/shiki-bundle-DTJ4LKMP.js.gz +0 -0
- package/dist/web/assets/skills-market-container-C8okZy75.css +0 -1
- package/dist/web/assets/skills-market-container-C8okZy75.css.br +0 -0
- package/dist/web/assets/skills-market-container-C8okZy75.css.gz +0 -0
- package/dist/web/assets/skills-market-container-CAnQE1ql.js +0 -2
- package/dist/web/assets/skills-market-container-CAnQE1ql.js.br +0 -0
- package/dist/web/assets/skills-market-container-CAnQE1ql.js.gz +0 -0
- package/dist/web/assets/split-workspace-menu-content-B0juQhVb.js +0 -1
- package/dist/web/assets/split-workspace-menu-content-B0juQhVb.js.br +0 -2
- package/dist/web/assets/split-workspace-menu-content-B0juQhVb.js.gz +0 -0
- package/dist/web/assets/task-timeline-process-history-DQh6F650.js.br +0 -0
- package/dist/web/assets/task-timeline-process-history-DQh6F650.js.gz +0 -0
- package/dist/web/assets/third-party-marketplace-pane-D-0qL80m.js +0 -1
- package/dist/web/assets/third-party-marketplace-pane-D-0qL80m.js.br +0 -0
- package/dist/web/assets/third-party-marketplace-pane-D-0qL80m.js.gz +0 -0
- package/dist/web/assets/workbench-inspector-changes-CjhVNI8E.js +0 -1
- package/dist/web/assets/workbench-inspector-changes-CjhVNI8E.js.br +0 -0
- package/dist/web/assets/workbench-inspector-changes-CjhVNI8E.js.gz +0 -0
- package/dist/web/assets/workbench-pet-canvas-D7FEem4_.js.br +0 -0
- package/dist/web/assets/workbench-pet-canvas-D7FEem4_.js.gz +0 -0
- package/dist/web/assets/workbench-shell--cyl6F5f.js +0 -17
- package/dist/web/assets/workbench-shell--cyl6F5f.js.br +0 -0
- package/dist/web/assets/workbench-shell--cyl6F5f.js.gz +0 -0
- /package/dist/web/assets/{scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~project-source~gjk7lcx5-ClgveiMa.js → scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~project-source~dp1dands-ClgveiMa.js} +0 -0
- /package/dist/web/assets/{scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~project-source~gjk7lcx5-ClgveiMa.js.br → scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~project-source~dp1dands-ClgveiMa.js.br} +0 -0
- /package/dist/web/assets/{scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~project-source~gjk7lcx5-ClgveiMa.js.gz → scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~project-source~dp1dands-ClgveiMa.js.gz} +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/text-file-editor-CEKsFPli.js","assets/rolldown-runtime-B0Z9INg1.js","assets/initial-deps-CqwWvUnY.js","assets/react-runtime-CMZHB3u8.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{a as e,r as t}from"./rolldown-runtime-B0Z9INg1.js";import{t as n}from"./initial-deps-CqwWvUnY.js";import{i as r,t as i}from"./react-runtime-CMZHB3u8.js";import{E as a,n as o,u as s}from"./initial-deps-BeVJyoJH.js";import{Fn as c,I as l,Mn as u,N as d,P as f,kn as p,kt as m}from"./initial-deps-DG--jjIA.js";import{$ as h,Z as g,k as _,o as v,tt as y}from"./initial-deps-CRaxZAOH.js";import{a as b,h as x,i as S,m as C,n as ee,o as w,r as T,s as E,t as te,u as D}from"./pdf-preview-Cl3Njv1q.js";import{S as ne}from"./index-WWY-Ngf-.js";import{t as re}from"./image-preview-twQXvzOe.js";function ie(e,t,n,r){let i=p(`${c(t)}/files/pdf`,{path:n,rootPath:r===``?void 0:r});return`${e.replace(/\/$/u,``)}${i}`}var O=g(`git-compare-arrows`,[[`circle`,{cx:`5`,cy:`6`,r:`3`,key:`1qnov2`}],[`path`,{d:`M12 6h5a2 2 0 0 1 2 2v7`,key:`1yj91y`}],[`path`,{d:`m15 9-3-3 3-3`,key:`1lwv8l`}],[`circle`,{cx:`19`,cy:`18`,r:`3`,key:`1qljk2`}],[`path`,{d:`M12 18H7a2 2 0 0 1-2-2V9`,key:`16sdep`}],[`path`,{d:`m9 15 3 3-3 3`,key:`1m3kbl`}]]),k=g(`image`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,ry:`2`,key:`1m3agn`}],[`circle`,{cx:`9`,cy:`9`,r:`2`,key:`af1f0g`}],[`path`,{d:`m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21`,key:`1xmnt7`}]]),A=i();function j(e){return e.split(/[\\/]/u).at(-1)??e}function M({actions:e,lineNumber:t,onClose:n,onOpenDiff:r,previewKind:i,sourcePath:a,sourceStatus:o}){let{t:s}=y(`workbench`);return(0,A.jsxs)(w,{className:`min-h-toolbar gap-3 overflow-hidden bg-raised px-3 shadow-toolbar sm:px-4`,children:[(0,A.jsxs)(E,{className:`w-0 flex-1 overflow-hidden`,children:[i===`image`?(0,A.jsx)(k,{className:`size-4 shrink-0 text-muted-foreground`,"aria-hidden":`true`}):(0,A.jsx)(C,{className:`size-4 shrink-0 text-muted-foreground`,"aria-hidden":`true`}),(0,A.jsxs)(d,{children:[(0,A.jsx)(l,{asChild:!0,children:(0,A.jsxs)(`div`,{className:`w-0 flex-1 overflow-hidden`,children:[(0,A.jsx)(`h2`,{className:`truncate text-body-small font-semibold`,children:(0,A.jsxs)(b,{children:[j(a),t===null?null:` (line ${String(t)})`]})}),(0,A.jsx)(`p`,{className:`truncate text-caption text-muted-foreground`,children:a})]})}),(0,A.jsx)(f,{className:`break-all`,children:a})]})]}),o===null?null:(0,A.jsx)(`span`,{className:`shrink-0 text-label ${o===`error`?`text-danger`:`text-warning`}`,role:o===`error`?`alert`:`status`,children:s(o===`loading`?`projectDialog.loadingMoreSource`:o===`error`?`projectDialog.loadMoreSourceError`:`projectDialog.sourcePartial`)}),(0,A.jsxs)(S,{children:[r===void 0?null:(0,A.jsxs)(d,{children:[(0,A.jsx)(l,{asChild:!0,children:(0,A.jsx)(m,{"aria-label":s(`projectDialog.showDiff`),onClick:r,size:`icon-sm`,type:`button`,variant:`ghost`,children:(0,A.jsx)(O,{className:`size-3.5`,"aria-hidden":`true`})})}),(0,A.jsx)(f,{children:s(`projectDialog.showDiff`)})]}),e,n===void 0?null:(0,A.jsxs)(d,{children:[(0,A.jsx)(l,{asChild:!0,children:(0,A.jsx)(m,{"aria-label":s(i===`pdf`?`projectDialog.closePdfPreview`:i===`image`?`projectDialog.closeImagePreview`:`projectDialog.closeSource`),onClick:n,size:`icon-sm`,type:`button`,variant:`ghost`,children:(0,A.jsx)(v,{className:`size-3.5`,"aria-hidden":`true`})})}),(0,A.jsx)(f,{children:s(i===`pdf`?`projectDialog.closePdfPreview`:i===`image`?`projectDialog.closeImagePreview`:`projectDialog.closeSource`)})]})]})]})}function ae(e,t,n){return e.block({blockerFn:()=>t()?!n||n().then(e=>!e):!1,enableBeforeUnload:!1})}var N=e(r(),1);function oe(e){let{enabled:t,fileKey:r,scope:i,lineNumber:a,registerCloseGuard:o}=e,s=(0,N.useRef)(e);s.current=e;let c=(0,N.useRef)(null),[l,u]=(0,N.useState)(null),[d,f]=(0,N.useState)(0),[p,m]=(0,N.useState)(!1),[h,g]=(0,N.useState)(null);(0,N.useEffect)(()=>{if(u(e=>e?.fileKey===r&&e.scope===i?e:null),g(null),!t)return;m(!0);let e=new AbortController,a=s.current,o;return n(()=>import(`./text-file-editor-CEKsFPli.js`).then(e=>e.t).then(async t=>{if(e.signal.aborted)return;let n=t.getTextEditorSessionCache(i).acquire(r,a);o=n.release;let s=await n.ready;e.signal.throwIfAborted(),s.setCallbacks(a.save,a.onSaved,a.notify),c.current=s,u(null),g({fileKey:r,scope:i,session:s,module:t})}),__vite__mapDeps([0,1,2,3])).catch(t=>{if(e.signal.aborted)return;let n=typeof t==`object`&&t&&`code`in t?t.code:null;u({fileKey:r,scope:i,reason:n===`TEXT_EDITOR_CAPACITY`?`capacity`:n===`TEXT_FILE_UNSUPPORTED`?`unsupported`:`load-error`}),o?.(),o=void 0,n!==`TEXT_FILE_UNSUPPORTED`&&a.notify(n===`TEXT_EDITOR_CAPACITY`?`capacity`:`load-error`)}).finally(()=>{e.signal.aborted||m(!1)}),()=>{e.abort(),c.current=null,o?.()}},[t,r,i,d]),(0,N.useEffect)(()=>{let e=e=>{(c.current?.dirty||c.current?.saving)&&e.preventDefault()};return window.addEventListener(`beforeunload`,e),()=>{window.removeEventListener(`beforeunload`,e)}},[]),(0,N.useEffect)(()=>{if(!o)return;let e=!1,t;return o(e=>{(c.current?.flush()??Promise.resolve(!0)).then(t=>{t&&e()})}).then(n=>{e?n():t=n}).catch(()=>void 0),()=>{e=!0,t?.()}},[o]);let _=t&&h?.fileKey===r&&h.scope===i?h:null,v=t&&l?.fileKey===r&&l.scope===i,y=_?.session,b=(0,N.useCallback)(e=>y?.subscribe(e)??(()=>void 0),[y]),x=(0,N.useCallback)(()=>y?.feedback??(y&&y.byteLength>262144?`plain-text`:null),[y]),S=(0,N.useSyncExternalStore)(b,x,()=>null),C=(0,N.useSyncExternalStore)(b,(0,N.useCallback)(()=>y?.saving??!1,[y]),()=>!1),ee=(0,N.useCallback)(()=>c.current?.state.sliceDoc()??``,[]),w=_?.module.TextFileEditor;return{ready:_!==null,loading:t&&_===null&&!v,fallback:v,noticeKind:v?l.reason:S,saving:C,retrying:p,retryEdit:()=>{f(e=>e+1)},retrySave:()=>{c.current?.flush()},dismissNotice:()=>{c.current?.dismissInputLimit()},path:_?.session.file.path,element:_&&w?(0,A.jsx)(w,{session:_.session,...a===void 0?{}:{lineNumber:a}}):null,hasUnsavedChanges:()=>c.current!==null&&(c.current.dirty||c.current.saving),flush:()=>c.current?.flush()??Promise.resolve(!0),getContent:ee,runAfterSave:e=>{(c.current?.flush()??Promise.resolve(!0)).then(t=>{t&&e()})}}}function se({kind:e,labels:t,onRetryEdit:n,onRetrySave:r,onDismiss:i,busy:a=!1}){if(e===null)return null;let o={capacity:t.capacity,"load-error":t.loadError,unsupported:t.unsupported,"input-limit":t.inputLimit,error:t.saveError,conflict:t.conflict,"plain-text":t.plainText},s=e===`error`||e===`conflict`,c=e===`capacity`||e===`load-error`;return(0,A.jsxs)(`div`,{className:`flex shrink-0 flex-wrap items-center gap-2 border-b border-separator bg-raised px-3 py-2 text-body-small`,role:s||e===`input-limit`?`alert`:`status`,"data-text-editor-notice":e,children:[(0,A.jsx)(`p`,{className:`min-w-0 flex-1 basis-48 whitespace-normal [overflow-wrap:anywhere]`,children:o[e]}),c||s?(0,A.jsx)(m,{type:`button`,size:`sm`,variant:`outline`,disabled:a,onClick:c?n:r,children:a?t.retrying:c?t.retryEdit:t.retrySave}):e===`input-limit`?(0,A.jsx)(m,{type:`button`,size:`sm`,variant:`ghost`,onClick:i,children:t.dismiss}):null]})}var P=`codexly:workbench:markdown-preview:v1`;function F(){try{return typeof window>`u`?void 0:window.localStorage}catch{return}}function ce(e){if(e===void 0)return!1;try{let t=JSON.parse(e.getItem(P)??`null`);return I(t)?t.preview:!1}catch{return!1}}function le(e,t){if(t===void 0)return;let n={preview:e,version:1};try{t.setItem(P,JSON.stringify(n))}catch{}}function I(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.version===1&&typeof t.preview==`boolean`}var L=t({ProjectSourcePanel:()=>H,getCodeLanguage:()=>D,getNextSourceCursor:()=>B,mergeProjectSourcePages:()=>V,shouldLoadNextSourcePage:()=>z}),R=400;function z(e){return e.scrollHeight-e.scrollTop-e.clientHeight<=R}function B(e,t){return e.nextCursor===null||e.nextCursor===t?void 0:e.nextCursor}function V(e){let t=e[0],n=e.at(-1);if(t!==void 0&&n!==void 0)return{content:e.map(e=>e.content).join(``),nextCursor:n.nextCursor,path:t.path}}function H({client:e,onClose:t,onOpenDiff:n,previewKind:r,projectId:i,reference:c,rootPath:p}){let{t:g}=y(`workbench`),v=s(),b=a({warn:!1}),S=(0,N.useRef)(null),[C,w]=(0,N.useState)(()=>ce(F())),E=r===`source`&&p!==void 0,O=oe({enabled:E,fileKey:JSON.stringify([i,p,c.path]),scope:e,lineNumber:c.lineNumber,read:t=>e.readProjectTextFile(i,p,c.path,{signal:t}),checkRevision:t=>e.readProjectTextFileRevision(i,p,c.path,{signal:t}),save:t=>e.saveProjectTextFile(i,p,t),notify:e=>{let t=g(`textEditor`,{returnObjects:!0}),n=e===`saved`?t.saved:e===`conflict`?t.conflict:e===`load-error`?t.loadError:e===`input-limit`?t.inputLimit:e===`capacity`?t.capacity:t.saveError,r=(0,A.jsxs)(`span`,{className:`whitespace-normal [overflow-wrap:anywhere]`,children:[j(c.path),` `,n]});e===`saved`?h.success(r):h.error(r)},onSaved:()=>{v.invalidateQueries({queryKey:[`projects`,i],predicate:e=>e.queryKey.includes(p)&&(e.queryKey.includes(`source-file`)&&e.queryKey.at(-1)===c.path||e.queryKey.some(e=>typeof e==`string`&&e.startsWith(`git-status`)))})}}),k=r===`source`&&(!E||O.fallback),P=o({enabled:k,getNextPageParam:(e,t,n)=>B(e,n),initialPageParam:void 0,queryFn:async({pageParam:t,signal:n})=>e.readProjectSourceFile(i,p,c.path,t,{signal:n}),queryKey:[`projects`,i,p??null,`source-file`,c.path],staleTime:3e4}),I=k?P.data?.pages:void 0,L=P.fetchNextPage,R=P.hasNextPage,H=P.isFetchingNextPage,U=(0,N.useMemo)(()=>I===void 0?void 0:V(I),[I]),W=O.path??U?.path??c.path,G=j(W),ue=u(``,i,c.path,p),K=D(W),q=K===`markdown`||K===`mdx`,J=q&&(O.ready||U?.nextCursor===null),Y=J&&C,X=O.getContent,de=(0,N.useMemo)(()=>O.ready&&Y?X():U?.content??``,[O.ready,X,Y,U]),Z=(0,N.useRef)(O);Z.current=O,(0,N.useEffect)(()=>{if(b)return ae(b.history,()=>Z.current.hasUnsavedChanges(),()=>Z.current.flush())},[b]);let fe=(0,N.useCallback)(()=>{k&&R&&!H&&L()},[L,R,H,k]),pe=U===void 0?null:H?`loading`:P.isFetchNextPageError?`error`:R?`partial`:null,Q={lineNumber:c.lineNumber,...t===void 0?{}:{onClose:()=>{O.runAfterSave(t)}},...n===void 0?{}:{onOpenDiff:()=>{O.runAfterSave(n)}},previewKind:r,sourcePath:W,sourceStatus:pe},me=e=>{if(!k||O.ready||!R||H)return;let t=e.target;t instanceof HTMLElement&&z(t)&&L()},$=e=>{O.runAfterSave(()=>{w(e),le(e,F())})};return(0,A.jsxs)(`section`,{"aria-label":W,className:`flex h-full min-h-0 flex-col bg-raised`,onScrollCapture:me,ref:S,children:[(0,A.jsx)(se,{kind:O.noticeKind,labels:g(`textEditor`,{returnObjects:!0}),onRetryEdit:O.retryEdit,onRetrySave:O.retrySave,onDismiss:O.dismissNotice,busy:O.retrying||O.saving}),(0,A.jsx)(`div`,{className:`min-h-0 flex-1`,children:r===`pdf`?(0,A.jsxs)(`div`,{className:`grid h-full min-h-0 grid-rows-[auto_minmax(0,1fr)] bg-content`,children:[(0,A.jsx)(M,{...Q}),(0,A.jsx)(te,{name:G,src:ie(``,i,c.path,p),labels:{open:g(`projectDialog.pdfOpen`),unavailable:g(`projectDialog.pdfUnavailable`)}})]}):r===`image`?(0,A.jsxs)(`div`,{className:`grid h-full min-h-0 grid-rows-[auto_minmax(0,1fr)] bg-content`,children:[(0,A.jsx)(M,{...Q}),(0,A.jsx)(re,{alt:G,src:ue})]}):O.ready&&!Y?(0,A.jsxs)(`div`,{className:`grid h-full min-h-0 grid-rows-[auto_minmax(0,1fr)] bg-content`,children:[(0,A.jsx)(M,{...Q,sourceStatus:null,actions:(0,A.jsxs)(A.Fragment,{children:[q?(0,A.jsxs)(d,{children:[(0,A.jsx)(l,{asChild:!0,children:(0,A.jsx)(m,{"aria-label":g(`projectDialog.previewMarkdown`),onClick:()=>{$(!0)},size:`icon-sm`,variant:`ghost`,children:(0,A.jsx)(_,{className:`size-3.5`,"aria-hidden":`true`})})}),(0,A.jsx)(f,{children:g(`projectDialog.previewMarkdown`)})]}):null,(0,A.jsx)(T,{getText:O.getContent})]})}),O.element]}):O.loading||!O.ready&&U===void 0&&P.isPending?(0,A.jsxs)(`div`,{className:`grid h-full min-h-0 grid-rows-[auto_minmax(0,1fr)]`,children:[(0,A.jsx)(M,{...Q}),(0,A.jsx)(`div`,{className:`grid min-h-48 place-items-center text-body-small text-muted-foreground`,role:`status`,children:g(`projectDialog.loadingSource`)})]}):!O.ready&&U===void 0&&P.error!==null?(0,A.jsxs)(`div`,{className:`grid h-full min-h-0 grid-rows-[auto_minmax(0,1fr)]`,children:[(0,A.jsx)(M,{...Q}),(0,A.jsx)(`div`,{className:`grid min-h-48 place-items-center text-body-small text-danger`,role:`alert`,children:g(`projectDialog.loadSourceError`)})]}):Y?(0,A.jsxs)(`div`,{className:`grid h-full min-h-0 grid-rows-[auto_minmax(0,1fr)] bg-content`,children:[(0,A.jsx)(M,{...Q,actions:(0,A.jsxs)(d,{children:[(0,A.jsx)(l,{asChild:!0,children:(0,A.jsx)(m,{"aria-label":g(`projectDialog.showRawContent`),onClick:()=>{$(!1)},size:`icon-sm`,type:`button`,variant:`ghost`,children:(0,A.jsx)(x,{className:`size-3.5`,"aria-hidden":`true`})})}),(0,A.jsx)(f,{children:g(`projectDialog.showRawContent`)})]})}),(0,A.jsx)(`div`,{className:`min-h-0 overflow-auto px-5 py-4 sm:px-8 sm:py-6`,children:(0,A.jsx)(ne,{className:`mx-auto max-w-4xl`,children:de})})]}):(0,A.jsx)(ee,{className:`grid h-full min-h-0 grid-rows-[auto_minmax(0,1fr)] rounded-none bg-content shadow-none`,code:de,highlightedLine:c.lineNumber,onHighlightedLineUnavailable:fe,language:K,showLineNumbers:!0,children:(0,A.jsx)(M,{...Q,actions:(0,A.jsxs)(A.Fragment,{children:[J?(0,A.jsxs)(d,{children:[(0,A.jsx)(l,{asChild:!0,children:(0,A.jsx)(m,{"aria-label":g(`projectDialog.previewMarkdown`),onClick:()=>{$(!0)},size:`icon-sm`,type:`button`,variant:`ghost`,children:(0,A.jsx)(_,{className:`size-3.5`,"aria-hidden":`true`})})}),(0,A.jsx)(f,{children:g(`projectDialog.previewMarkdown`)})]}):null,(0,A.jsx)(T,{})]})})})})]})}export{L as n,H as t};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,t as n}from"./react-runtime-CMZHB3u8.js";import{i as r,s as i,u as a}from"./initial-deps-BeVJyoJH.js";import{At as o,H as s,I as c,N as l,P as u,kt as d}from"./initial-deps-DG--jjIA.js";import{C as f,I as p,P as m,Z as h,g,h as _,it as v,l as y,tt as b}from"./initial-deps-CRaxZAOH.js";import{G as x}from"./index-WWY-Ngf-.js";import{n as S,r as C}from"./settings-save-status-DFCaOej1.js";import{n as w,t as T}from"./api-connection-fields-rwNEEzre.js";import{a as E,i as D,n as O,r as k,t as A}from"./provider-connection-queries-D0AjZJNn.js";var j=h(`arrow-up-right`,[[`path`,{d:`M7 7h10v10`,key:`1tivn9`}],[`path`,{d:`M7 17 17 7`,key:`1vkiza`}]]),M=e(t(),1),N=n();function P({connected:e,pending:t,busy:n,email:r,labels:i,onLogin:a,onCancel:o,onLogout:s}){return(0,N.jsxs)(`section`,{"aria-label":i.account,className:`flex flex-col items-start gap-4 border-y border-separator py-5 sm:flex-row sm:items-center sm:justify-between`,children:[(0,N.jsxs)(`div`,{className:`min-w-0 space-y-1`,children:[(0,N.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,N.jsx)(`h2`,{className:`text-body-small font-medium`,children:i.account}),e?(0,N.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 text-label text-muted-foreground`,role:`status`,children:[(0,N.jsx)(p,{"aria-hidden":`true`,className:`size-3.5`}),i.connected]}):null]}),(0,N.jsx)(`p`,{className:`break-all text-body-small text-muted-foreground`,role:t?`status`:void 0,children:e?r??i.account:t?i.waiting:i.hint})]}),(0,N.jsxs)(d,{type:`button`,variant:t||e?`outline`:`inverse`,className:`gap-2`,disabled:n,onClick:t?o:e?s:a,children:[n?(0,N.jsx)(f,{"aria-hidden":`true`,className:`size-4 motion-safe:animate-spin`}):null,t?i.cancel:e?i.logout:i.login,!t&&!e&&!n?(0,N.jsx)(j,{"aria-hidden":`true`,className:`size-4`}):null]})]})}function F({labels:e,disabled:t,models:n,onAdd:r,onBlur:i,onChange:a,onRemove:o}){let f=(0,M.useId)();return(0,N.jsxs)(`section`,{"aria-labelledby":f,className:`grid gap-3`,children:[(0,N.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,N.jsxs)(`div`,{className:`min-w-0 space-y-1`,children:[(0,N.jsx)(`h2`,{className:`text-body font-semibold`,id:f,children:e.models}),n.length===0?(0,N.jsx)(`p`,{className:`text-body-small text-muted-foreground`,children:e.automaticModels}):null]}),(0,N.jsxs)(d,{className:`h-8 gap-1.5 text-body-small`,disabled:t||n.length>=1e3,onClick:r,type:`button`,variant:`ghost`,children:[(0,N.jsx)(g,{"aria-hidden":`true`,className:`size-3.5`}),e.addModel]})]}),n.length===0?null:(0,N.jsxs)(`div`,{className:`hidden sm:grid grid-cols-[minmax(0,1fr)_minmax(0,1fr)_2rem] gap-3 border-b border-separator pb-2 text-label font-medium text-muted-foreground`,children:[(0,N.jsx)(`span`,{children:e.modelId}),(0,N.jsx)(`span`,{children:e.modelName}),(0,N.jsx)(`span`,{})]}),n.map(n=>(0,N.jsxs)(`div`,{className:`grid grid-cols-[minmax(0,1fr)_2rem] sm:grid-cols-[minmax(0,1fr)_minmax(0,1fr)_2rem] items-end gap-2 sm:gap-3`,children:[(0,N.jsxs)(`label`,{className:`col-start-1 grid min-w-0 gap-1 sm:col-auto`,children:[(0,N.jsx)(`span`,{className:`text-label text-muted-foreground sm:sr-only`,children:e.modelId}),(0,N.jsx)(s,{onBlur:i,autoCapitalize:`none`,autoComplete:`off`,className:`font-mono`,disabled:t,maxLength:256,onChange:e=>{a(n.key,`id`,e.currentTarget.value)},spellCheck:!1,placeholder:`gpt-5.4`,value:n.id,variant:`outline`})]}),(0,N.jsxs)(`label`,{className:`col-start-1 grid min-w-0 gap-1 sm:col-auto`,children:[(0,N.jsx)(`span`,{className:`text-label text-muted-foreground sm:sr-only`,children:e.modelName}),(0,N.jsx)(s,{onBlur:i,autoComplete:`off`,disabled:t,maxLength:256,placeholder:`GPT-5.4`,onChange:e=>{a(n.key,`name`,e.currentTarget.value)},value:n.name,variant:`outline`})]}),(0,N.jsxs)(l,{children:[(0,N.jsx)(c,{asChild:!0,children:(0,N.jsx)(d,{"aria-label":e.removeModel,className:`col-start-2 row-start-1 row-span-2 self-center text-subtle-foreground hover:text-danger sm:col-auto sm:row-auto`,disabled:t,onClick:()=>{o(n.key)},size:`icon-compact`,type:`button`,variant:`ghost`,children:(0,N.jsx)(y,{"aria-hidden":`true`,className:`size-4`})})}),(0,N.jsx)(u,{children:e.removeModel})]})]},n.key))]})}var I=[`official`,`custom`];function L({labels:e,modelLabels:t,autoSave:n=!1,setup:r=!1,continueLabel:i,apiKey:a,baseUrl:s,error:h,isBusy:g,mode:v,models:y,onAddModel:b,onApiKeyChange:x,onBaseUrlChange:S,onCancelLogin:C,onConfigureCustom:E,onLogout:D,onModelChange:O,onModeChange:k,onRetry:A,onRemoveModel:j,onStartOfficialLogin:M,status:L}){let z=()=>{n&&s.trim()!==``&&!R(y)&&E()},B=L?.mode===v&&L.state===`connected`,V=L?.mode===`official`&&L.state===`pending`,H=g||v===`official`&&V,U=H?v===`official`&&V?e.waiting:e.connecting:B?e.connected:e.disconnected,W=H?f:B?p:m,G=B&&L.account?.type===`chatgpt`?L.account:null;return(0,N.jsxs)(`div`,{className:`w-full min-w-0 space-y-6`,children:[(0,N.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,N.jsx)(`div`,{"aria-label":e.mode,className:`inline-flex max-w-full gap-1 rounded-control bg-control p-1`,role:`group`,children:I.map(t=>(0,N.jsx)(d,{"aria-pressed":v===t,className:o(`min-w-0 px-4`,v===t?`bg-raised text-foreground shadow-control`:`text-muted-foreground`),disabled:g,onClick:()=>{k(t)},type:`button`,variant:`ghost`,children:e[t]},t))}),!r&&v===`custom`?(0,N.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 text-label text-muted-foreground`,role:`status`,children:[(0,N.jsx)(W,{"aria-hidden":`true`,className:o(`size-3.5 shrink-0`,H&&`motion-safe:animate-spin`,B&&`text-brand`)}),U]}):null]}),v===`official`?(0,N.jsx)(P,{connected:B,pending:V,busy:g,email:G?.email,labels:{account:e.account,hint:e.loginHint,waiting:e.waiting,connected:e.connected,login:e.login,cancel:e.cancelLogin,logout:e.logout},onLogin:M,onCancel:C,onLogout:D}):(0,N.jsxs)(`form`,{className:`space-y-6`,onSubmit:e=>{e.preventDefault(),!g&&s.trim()!==``&&!R(y)&&E()},children:[(0,N.jsx)(T,{setup:r,hideHeading:!0,disabled:g,baseUrl:s,apiKey:a,endpointPlaceholder:`https://api.example.com/v1`,labels:{title:e.credentials,endpoint:e.baseUrl,apiKey:e.apiKey,showKey:e.showKey,hideKey:e.hideKey},onBaseUrlChange:S,onApiKeyChange:x,onBlur:z}),r?null:(0,N.jsx)(F,{labels:t,onBlur:z,disabled:g,models:y,onAdd:b,onChange:O,onRemove:j}),n?null:(0,N.jsx)(w,{setup:r,disabled:g||s.trim()===``||R(y),busy:g,label:g?e.connecting:i??(B?e.reconnect:e.connect)})]}),h===null?null:(0,N.jsxs)(`div`,{className:`flex items-start justify-between gap-3 border-l-2 border-danger pl-3 text-body-small`,role:`alert`,children:[(0,N.jsx)(`p`,{className:`min-w-0 break-words pt-1 text-danger`,children:h}),(0,N.jsxs)(l,{children:[(0,N.jsx)(c,{asChild:!0,children:(0,N.jsx)(d,{"aria-label":e.retry,className:`shrink-0`,disabled:g,onClick:A,size:`icon-sm`,type:`button`,variant:`ghost`,children:(0,N.jsx)(_,{"aria-hidden":`true`,className:`size-4`})})}),(0,N.jsx)(u,{children:e.retry})]})]})]})}function R(e){return e.some(e=>e.id.trim().length===0||e.name.trim().length===0)}v.addResourceBundle(`zh-CN`,`settings`,{provider:{connection:`服务连接`,credentials:`连接配置`,account:`ChatGPT 账号`,loginHint:`将在浏览器中完成授权`,showKey:`显示密钥`,hideKey:`隐藏密钥`,automaticModels:`留空时自动获取模型`,modelCount:`{{count}} 个模型`,connecting:`正在连接`}},!0),v.addResourceBundle(`en`,`settings`,{provider:{connection:`Service connection`,credentials:`Connection settings`,account:`ChatGPT account`,loginHint:`Continue securely in your browser`,showKey:`Show API key`,hideKey:`Hide API key`,automaticModels:`Models are discovered automatically when empty`,modelCount_one:`{{count}} model`,modelCount_other:`{{count}} models`,connecting:`Connecting`}},!0);function z(e){let{t}=b(`settings`);return(0,N.jsx)(L,{...e,labels:{account:t(`provider.account`),apiKey:t(`provider.apiKey`),baseUrl:t(`provider.baseUrl`),cancelLogin:t(`provider.cancelLogin`),connect:t(`provider.connect`),connected:t(`provider.connected`),connecting:t(`provider.connecting`),credentials:t(`provider.credentials`),custom:t(`provider.custom`),disconnected:t(`provider.disconnected`),hideKey:t(`provider.hideKey`),login:t(`provider.login`),loginHint:t(`provider.loginHint`),logout:t(`provider.logout`),mode:t(`provider.mode`),official:t(`provider.official`),reconnect:t(`provider.reconnect`),retry:t(`provider.retry`),showKey:t(`provider.showKey`),waiting:t(`provider.waiting`)},modelLabels:{addModel:t(`provider.addModel`),automaticModels:t(`provider.automaticModels`),modelId:t(`provider.modelId`),modelName:t(`provider.modelName`),models:t(`provider.models`),removeModel:t(`provider.removeModel`)}})}function B({apiKey:e,baseUrl:t,models:n}){let r=n.map(({id:e,name:t})=>({id:e.trim(),name:t.trim()}));return{...e.length===0?{}:{apiKey:e},baseUrl:t.trim(),...r.length===0?{}:{models:r}}}function V(e){let t=new URL(e);if(t.protocol!==`https:`)throw Error(`Official login URL must use HTTPS`);window.open(t,`_blank`,`noopener,noreferrer`)}function H({autoSave:e=!1,onConnected:t,continueLabel:n}={}){let o=(0,M.useRef)(t);o.current=t;let s=(0,M.useRef)(!0);(0,M.useEffect)(()=>(s.current=!0,()=>{s.current=!1}),[]);let c=a(),l=i(D()),u=r(E(c)),d=r(A(c)),f=r(k(c)),[p,m]=(0,M.useState)(`official`),[h,g]=(0,M.useState)(``),[_,v]=(0,M.useState)(``),[y,w]=(0,M.useState)([]),T=(0,M.useRef)(1),j=(0,M.useRef)(void 0),{t:P}=b(`settings`),F=(0,M.useRef)(!1),I=(0,M.useRef)({apiKey:_,baseUrl:h,models:y});I.current={apiKey:_,baseUrl:h,models:y};let L=C(async e=>{await O(B(e),c),I.current.apiKey===e.apiKey&&v(``),I.current.baseUrl===e.baseUrl&&I.current.models===e.models&&(F.current=!1),s.current&&o.current?.()}),H=(t,n=!1)=>{let r={...I.current,...t};I.current=r,F.current=!0,v(r.apiKey),g(r.baseUrl),w(r.models);let i=!1;try{i=[`http:`,`https:`].includes(new URL(r.baseUrl).protocol)}catch{}if(!i||R(r.models)){L.queue.cancelScheduled();return}e&&(n?L.queue.save(r):L.queue.schedule(r))},U=l.data;(0,M.useEffect)(()=>{U===void 0||F.current||(m(U.mode),U.customBaseUrl!==null&&g(U.customBaseUrl))},[U]),(0,M.useEffect)(()=>{if(U===void 0)return;let e=j.current,t=e?.mode!==U.mode||e.customBaseUrl!==U.customBaseUrl;U.state===`connected`&&(e?.state!==`connected`||t)&&c.invalidateQueries({exact:!0,queryKey:[`models`]}),j.current={customBaseUrl:U.customBaseUrl,mode:U.mode,state:U.state}},[c,U]),(0,M.useEffect)(()=>{U?.state===`connected`&&U.mode===p&&!F.current&&o.current?.()},[U,p]);let W=u.isPending||d.isPending||f.isPending||!e&&L.status===`saving`,G=l.error?.message??null;return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(S,{beforeLeave:()=>L.queue.flush(),status:L.status,labels:{saving:P(`actions.saving`),saved:P(`actions.saved`),saveError:P(`errors.save`),retry:P(`common:actions.retry`)},onRetry:()=>{L.queue.retry()}}),(0,N.jsx)(z,{setup:!!t,continueLabel:n,autoSave:e,apiKey:_,baseUrl:h,error:G,isBusy:W,mode:p,models:y,onAddModel:()=>{let e=`custom-model-${String(T.current)}`;T.current+=1,H({models:[...I.current.models,{id:``,key:e,name:``}]})},onApiKeyChange:e=>{H({apiKey:e})},onBaseUrlChange:e=>{H({baseUrl:e})},onCancelLogin:()=>{let e=U?.pendingLogin?.loginId;e!==void 0&&d.mutateAsync(e).catch(()=>void 0)},onConfigureCustom:()=>{if(t&&!F.current&&U?.state===`connected`){t();return}e||L.queue.save(I.current),L.queue.flush()},onLogout:()=>{f.mutateAsync().catch(()=>void 0)},onModelChange:(e,t,n)=>{H({models:I.current.models.map(r=>r.key===e?{...r,[t]:n}:r)})},onModeChange:e=>{m(e)},onRetry:()=>{l.refetch()},onRemoveModel:e=>{H({models:I.current.models.filter(t=>t.key!==e)},!0)},onStartOfficialLogin:()=>{u.mutateAsync().then(e=>{try{V(e.authUrl)}catch(e){x(e)}}).catch(()=>void 0)},status:U})]})}export{H as ProviderConnectionPanel};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Gt as e,Qt as t,Ut as n,Vt as r,en as i,in as a,nn as o}from"./initial-deps-DG--jjIA.js";import{t as s}from"./scheduled-tasks-BBUd86IL.js";var c={assistantDirectives:{followup:`Add to composer`,"git-stage":`Staging receipt`,"git-commit":`Commit receipt`,"git-create-branch":`Branch receipt`,"git-push":`Push receipt`,"git-create-pr":`PR receipt`,"git-create-pr-draft":`Draft PR receipt`},imagePreview:{actualSize:`Original size`,fit:`Fit to container`,loadError:`Unable to preview image`,loading:`Loading image`,zoomIn:`Zoom in`,zoomOut:`Zoom out`},access:{checking:`Checking access`,codeLabel:`Access password`,loadError:`Unable to check access`,pair:`Pair`,pairing:`Pairing`,pairingDescription:`Enter the access password configured or shown when Codexly started.`,pairingError:`Unable to pair. Check the access password and try again`,pairingTitle:`Connect to a trusted LAN session`},actions:{backToWorkbench:`Back to workbench`,retry:`Retry`},app:{actionFailed:`Action failed`,actionSucceeded:`Action completed`,loadingProjects:`Loading projects`,noProjects:`No projects added`,notificationRegion:`Notifications`},errors:{taskDeletionBlockedByForks:`This task can’t be deleted because forked tasks still use its history. You can archive it, or delete the related forked tasks first and try again.`,notFoundDescription:`This address does not match a registered application route.`,notFoundTitle:`Page not found`,routeErrorLabel:`Route error`,routeErrorTitle:`Failed to load page`,runtimeUnavailableDescription:`First run <command>codex login</command> in the official Codex CLI, then retry after signing in.`,runtimeUnavailableTitle:`Codex Runtime unavailable`},language:{english:`English`,simplifiedChinese:`Simplified Chinese`}},l={asyncQuestions:{deliveryPending:`Answer delivery is unconfirmed. Check task progress before sending again.`,pending:`Pending questions`,pendingCount:`Pending · {{count}} groups`,previous:`Previous questions`,next:`Next questions`,collapse:`Collapse questions`,expand:`Expand questions`,close:`Close questions`,other:`Other answer`,answer:`Answer: {{question}}`,send:`Send answers`,sent:`Sent`},agentComponents:{addFile:`Add file`,addImage:`Add image`,addImageOrFile:`Add image or file`,currentDevice:`Current device`,deploymentHost:`Deployment host`,approval:`Approval`,approvalAccepted:`Request allowed`,approvalRejected:`Request denied`,approvalRequest:`{{title}} request`,codeComments:`{{count}} code comments`,contextPercent:`{{percentage}}% of context used`,contextSummary:`{{percentage}}% of context used`,contextUnknown:`Context usage unavailable`,contextWaiting:`Waiting for context usage from the model`,copied:`Copied`,copyCode:`Copy code`,copyOutput:`Copy command output`,copiedCode:`Code copied`,copiedOutput:`Command output copied`,fileTooLarge:`{{name}} exceeds the size limit`,folderCollapse:`Collapse folder {{name}}`,folderExpand:`Expand folder {{name}}`,invalidFileType:`{{name}} has an unsupported file type`,nextBranch:`Next response branch`,previousBranch:`Previous response branch`,removeAttachment:`Remove {{name}}`,scrollToBottom:`Scroll to bottom`,status:{completed:`Completed`,error:`Failed`,inProgress:`In progress`,pending:`Pending`,denied:`Denied`,responded:`Responded`,running:`Running`,waitingApproval:`Awaiting approval`},streamingOutput:`Receiving command output`,tooManyImages:`You can add up to {{count}} images`,totalAttachmentSizeExceeded:`Attachments exceed the total size limit`,totalImageSizeExceeded:`Images exceed the total size limit`,toolError:`Error`,toolInput:`Parameters`,toolResult:`Result`},errors:{addProject:`Failed to add project`,deleteProject:`Failed to delete project`,renameProject:`Failed to rename project`,reorderProject:`Failed to save project order`,reorderProjectChanged:`The project list changed. Try reordering again.`,stopTerminal:`Failed to stop terminal`},inspector:{contextUsage:`Context usage`,contextWindowUnknown:`Unknown window`,attachmentDetail:`Attachment`,changeIndicator:`{{path}}, {{additions}} additions, {{removals}} deletions`,changes:`Changes`,closeFile:`Close file`,commit:`Commit`,context:`Context`,contextSources:`Context sources`,runtimeWarnings:`Runtime warnings`,emptyFolder:`Empty folder`,fileTree:`Project files`,file:`File`,gitChanges:`Uncommitted changes`,gitChangedFilesCount:`{{count}} files`,gitChangesRetrying:`Git change refresh failed. Retrying automatically`,gitLoading:`Loading Git changes...`,goal:`Goal`,goalClear:`Clear goal`,goalDuration:`{{minutes}}m {{seconds}}s`,goalMutationFailed:`Unable to update the goal. Try again.`,goalPause:`Pause goal`,goalResume:`Resume goal`,goalSeconds:`{{count}}s`,goalStatus:{active:`Active`,blocked:`Blocked`,budget_limited:`Budget exhausted`,complete:`Complete`,paused:`Paused`,usage_limited:`Usage limited`},goalTokenBudget:`{{used}} / {{budget}} tokens`,goalTokens:`{{used}} tokens used`,history:`History`,loading:`Loading...`,mcpEnabled:`MCP servers for this task`,mcpCached:`Cached status`,mcpLive:`Latest observation`,mcpUnknownTime:`Observation time unknown`,mcpRefresh:`Refresh status`,mcpReconnect:`Reconnect failed servers`,mcpReloadConfig:`Reload configuration`,mcpReload:`Reload MCP servers`,mcpReloading:`Reloading MCP servers`,mcpStatus:{authenticationRequired:`Authentication required`,cancelled:`Cancelled`,connected:`Connected`,disabled:`Disabled`,failed:`Startup failed`,notStarted:`Not started`,starting:`Starting`,unknown:`Unknown`},project:`Project`,mcpToolCount:`{{count}} tools`,openFailed:`The selected application could not open the target`,plan:`Plan`,planStatus:{completed:`Completed`,in_progress:`In progress`,pending:`Pending`},projectFilesEmpty:`This project has no files to display`,projectFilesError:`Failed to load project files`,projectFilesLoading:`Loading project files...`,readFolder:`Loading folder {{name}}`,readFolderError:`Failed to load folder {{name}}`,reading:`Loading`,refreshFolder:`Reload folder {{name}}`,refreshGit:`Refresh Git changes`,reviewChanges:`Review {{count}} uncommitted changes`,refreshProject:`Refresh project {{name}}`,refreshProjectFiles:`Reload project files`,commitChanges:`Commit {{count}} uncommitted changes`,source:`Sources`,showMore:`Show more`,sourceRole:{admin:`Admin`,repo:`Project`,system:`System`,user:`User`},subagents:`Subagents`,subagentCount:`{{count}} subagents`,subagentOutput:`View output from subagent {{nickname}}`,terminalError:`Failed to load running terminals`,terminalLoading:`Loading terminals...`,terminalRunning:`Terminal running`,terminalStop:`Stop terminal {{command}}`,terminalStopping:`Stopping {{command}}`,terminalStopRetry:`Failed to stop terminal. Try again.`,terminals:`Running terminals`,title:`Runtime environment`},gitHistory:{unpushed:`Unpushed`,branch:`Current branch: {{branch}}`,branchLoading:`Current branch: Loading...`,commits:`Commit history`,copyAuthor:`Copy author`,copyHash:`Copy full commit hash`,copyMenuLabel:`Copy commit details`,copyMessage:`Copy commit message`,empty:`This repository has no commits`,diffLoadError:`Failed to load this file's commit Diff`,diffLoading:`Loading file Diff...`,diffTruncated:`This Diff is too long; showing the first 512 KiB`,filesEmpty:`This commit has no files to review`,filesLoadError:`Failed to load commit files`,filesLoading:`Loading commit files...`,end:`All commits loaded`,loadError:`Failed to load Git history`,loadMore:`Load more`,loadMoreFiles:`Load more files`,loading:`Loading Git history...`,loadingMore:`Loading...`,loadingMoreFiles:`Loading files...`,repositories:`Repositories`,retry:`Retry`},notification:{completed:`Task completed`,failed:`Task failed`,failedWithMessage:`Task failed: {{message}}`,interrupted:`Task was interrupted and cannot continue`,waitingApproval:`Task is waiting for approval`,waitingInput:`Task is waiting for input`},taskTitle:{replying:`Replying`},reorder:{cancelled:`Project reordering cancelled`,moved:`{{name}} moved to position {{position}}`,projectFallback:`Project`,started:`Project reordering started. Drag and release to save the position.`,title:`Drag to reorder, or press Alt + Arrow Up/Down`},subagent:{count:`{{count}} subagents`,defaultName:`Subagent {{index}}`,operationCompleted:`Subagent operation completed`,operationFailed:`{{count}} subagents failed`,operationRunning:`{{count}} subagents running`,operationSucceeded:`{{count}} subagents completed`,operationTitles:{close:`Close subagent`,resume:`Resume subagent`,sendInput:`Send message to subagent`,spawn:`Start subagent`,wait:`Wait for subagent`},orchestrating:`Coordinating subagents`},timeline:{approvalReview:{action:{command:`Command`,file_change:`File change`,mcp_tool_call:`MCP tool`,network_access:`Network access`,permissions:`Permission request`},actionDetail:`{{action}}: {{detail}}`,authorization:`User authorization: {{level}}`,authorizationLevel:{high:`High`,low:`Low`,medium:`Medium`,unknown:`Unknown`},rationale:`Review rationale: {{rationale}}`,reviewing:`Running automatic approval review`,risk:`Risk: {{level}}`,riskLevel:{critical:`Critical`,high:`High`,low:`Low`,medium:`Medium`},status:{aborted:`Aborted`,approved:`Approved`,denied:`Denied`,in_progress:`Reviewing`,timed_out:`Timed out`},title:`Automatic approval: {{status}}`},aiRunning:`AI response is running`,aiRunningOperation:`AI response is running: {{operation}}`,attachments:`Message attachments`,changedFiles:`This response changed {{count}} files`,collapseFiles:`Collapse file list`,collapseProcess:`Collapse process`,closeImagePreview:`Close image preview`,commandPending:`Running command`,conversation:`Conversation`,copied:`Copied`,copyMessage:`Copy message`,downloadAttachment:`Download attachment {{name}}`,openAttachment:`Open attachment {{name}}`,emptyAfter:`?`,emptyBefore:`What should we do in`,expandProcess:`Expand process`,fileChange:`{{operation}} {{name}}, {{additions}} additions, {{removals}} deletions, open Diff`,fileOperation:{create:`Created`,delete:`Deleted`,update:`Edited`},fork:`Fork task`,forkFailed:`Failed to fork task. Try again.`,forking:`Forking task`,loading:`Loading task history`,loadError:`Failed to load task history`,loadingOlder:`Loading earlier messages...`,loadingProcess:`Loading process details…`,loadMoreProcess:`Load earlier process details`,retryProcess:`Could not load process details. Retry`,loadOlder:`Load earlier messages`,loadOlderError:`Could not load earlier messages. Try again.`,jumpToMessage:`Jump to user message {{index}}`,moreFiles:`Show {{count}} more files`,noHistory:`This task has no history`,output:`Output`,outputOmitted:`Command output omitted {{bytes}} UTF-8 bytes and {{lines}} lines. Showing the beginning and end.`,outputRetained:`Older command output was removed to stay within the memory budget`,operationGroup:{collapse:`Collapse operation details: {{summary}}`,commandsOnly:`Commands complete: {{count}}`,expand:`Expand operation details: {{summary}}`,failed:`; {{count}} failed`,filesOnly:`Operations complete: {{count}} files changed`,filesSuffix:`, {{count}} files changed`,reasoningOnly:`Reasoning complete: {{count}} summaries`,reasoningSuffix:`, {{count}} reasoning summaries`,summary:`Operations complete: {{toolCount}} tool calls, {{commandCount}} commands`,toolsOnly:`Tool calls complete: {{count}}`},buildPlan:`Build`,plan:`Plan`,planGenerating:`Generating plan`,planReady:`Plan ready to build`,processing:`Processed`,quickNavigation:`User message quick navigation`,reconnecting:`Restoring live connection`,review:`Review`,reviewMode:`Review mode`,reviewPrompt:{baseBranch:`Review my changes against {{branch}}`,commit:`Review commit {{sha}}`,commitWithTitle:`Review commit {{sha}}: {{title}}`,custom:`Review the code using these instructions: {{instructions}}`,uncommitted:`Review my uncommitted changes`},running:`Running`,runningOperation:`Running {{operation}}`,selectProject:`Select a project for the new chat`,showImage:`View image {{name}}`,skillsUsed:`Skills used`,editedFiles:`Edited {{count}} files`,editingFiles:`Editing {{count}} files`,liveDiff:`Live file changes`,liveFileChange:`Editing {{name}}, {{additions}} additions, {{removals}} deletions`,notice:{guardian_warning:`Safety warning`,hook_status:`Hook status`,model_verification:`Model verification`,runtime_warning:`Runtime warning`,modelVerification:`Verifying model availability`,strict_review_required:`Strict review required`,strictReviewRequired:`Safety review was escalated; this action will continue after review`},reasoning:`Reasoning summary`,reasoningStreaming:`Reasoning`,runtimeStatus:{duration:`Completed in {{duration}} ms`,fasterModel:`A faster model is available: {{model}}`,hook:`Running hook {{eventName}}`,modelRerouted:`Rerouted from {{fromModel}} to {{toModel}}`,safetyBuffering:`Using safety buffering model {{model}}`}}},u={sectionKeywords:{git:`AI generation default agent model Git commit message task title prompt rules`,"claude-provider":`Claude Anthropic API key API URL endpoint connection available models`,"claude-agent":`Claude Default model Default reasoning effort Tool permissions Ask when needed Accept edits Plan mode Full access`,"claude-personalization":`Claude CLAUDE.md Global instructions Load project settings Tool permission rules Automatically allow Disallow`,appearance:`Color mode language notifications editor default open follow-up messages background wallpaper Bing custom blur overlay non-project temporary task folder storage location`,personalization:`Codex instructions AGENTS.md global memory MCP web search`,pets:`Enable pet selection`,provider:`API key Base URL models official custom`,agent:`Fast mode model reasoning approval file access sandbox web search output verbosity`,about:`Version update release notes diagnostics`},search:{label:`Search settings`,placeholder:`Search settings...`,clear:`Clear search`,empty:`No matching settings`},groups:{personal:`Shared`,codex:`Codex`,claude:`Claude`,app:`Application`},about:{available:`Version {{version}} is available`,check:`Check for updates`,checking:`Checking`,codexlyVersion:`Codexly version`,codexVersion:`Codex version`,claudeVersion:`Claude version`,unknownVersion:`Unknown`,current:`Codexly is up to date`,github:`Project GitHub`,loading:`Checking for updates`,progress:{backingUp:`Backing up the current version`,checking:`Confirming the latest version`,completed:`Update installed`,downloading:`Downloading the update`,installing:`Installing the new version`,label:`Codexly update progress`,rollingBack:`Installation failed. Restoring the previous version`},restartRequired:`Update installed. Restart Codexly to apply it.`,retry:`Check again`,releaseNotes:`Release notes`,releaseNotesTitle:`{{version}} release notes`,releaseNotesUnavailable:`Release notes for this version are temporarily unavailable.`,update:`Software update`,updateNow:`Update`,updateProgress:`Codexly update progress`,updateTo:`Update to {{version}}`,updating:`Updating`},access:{currentSession:`Current browser`,loggingOut:`Logging out`,logout:`Log out of LAN access`,sessionDescription:`This browser is paired with the current Codexly LAN session.`},actions:{backToApp:`Back to app`,cancel:`Cancel`,close:`Close`,closeDialog:`Close global settings`,closeReleaseNotes:`Close release notes`,save:`Save`,saving:`Saving…`,saved:`Saved`},appearance:{automatic:`Automatic`,automaticMode:`Automatic mode`,colorMode:`Color mode`,dark:`Dark`,darkMode:`Dark mode`,language:`Language`,light:`Light`,lightMode:`Light mode`,notifications:`Notifications`},approval:{autoReview:`Automatic review`,never:`Never ask`,onRequest:`On request`},background:{bing:`Bing wallpaper`,bingAria:`Bing daily wallpaper`,blur:`Wallpaper background blur`,blurLabel:`Background blur`,custom:`Custom`,customAria:`Custom workbench background`,delete:`Delete image`,deleteImage:`Delete {{name}}`,galleryLabel:`Custom background images`,invalidImage:`Choose a PNG, JPEG, WebP, or GIF image up to 20 MiB.`,label:`Workbench background`,none:`None`,noneAria:`No workbench background`,overlayOpacity:`Wallpaper overlay opacity`,overlayOpacityLabel:`Overlay opacity`,previewAlt:`Custom workbench background preview`,selectImage:`Use {{name}} as the workbench background`,upload:`Upload image`,uploadInput:`Upload custom background image`,uploadRequired:`Image required`},effort:{high:`High`,low:`Low`,medium:`Medium`,minimal:`Minimal`,xhigh:`Extra high`},errors:{appInfo:`Unable to load version information`,load:`Unable to load global settings`,logout:`Unable to log out of LAN access`,save:`Could not save. Try again.`,update:`Update failed. Try again.`,updateCheck:`Unable to check for updates`},fields:{approvalPolicy:`Approval policy`,commitMessagePrompt:`Commit message prompt`,defaultAgent:`Default agent`,defaultModel:`Default model`,taskTitlePrompt:`Task title prompt`,commitModel:`Commit model`,defaultOpenWith:`Default open with`,fastMode:`Fast mode`,followUpMessages:`Follow-up messages`,model:`Model`,prompt:`Prompt`,reasoningEffort:`Reasoning effort`,sandbox:`Sandbox`},followUp:{queue:`Queue`,steer:`Steer`},integration:{automatic:`Select automatically`},languages:{en:`English`,zhCN:`简体中文`},loading:`Loading global settings`,navigationLabel:`Settings categories`,notifications:{disabled:`Off`,enabled:`On`},provider:{apiKey:`API key (optional)`,baseUrl:`API URL`,cancelLogin:`Cancel login`,connect:`Connect`,connected:`Connected`,custom:`Custom API`,disconnected:`Not connected`,errors:{connect:`Unable to connect to the custom API`,load:`Unable to read model service status`,login:`Unable to start official login`},loading:`Reading model service status`,login:`Sign in with ChatGPT`,logout:`Log out`,addModel:`Add model`,modelId:`Model ID`,modelName:`Model name`,mode:`Model service mode`,models:`Custom models`,official:`ChatGPT`,reconnect:`Reconnect`,removeModel:`Remove model`,retry:`Retry`,title:`Connect a Codex model service`,waiting:`Waiting for browser login`},pets:{availability:{downloadable:`Download required`,ready:`Ready`},enabled:`Enable workbench pet`,errors:{load:`Unable to load pet assets. Try again.`},loading:`Loading pet assets`,refresh:`Refresh list`,selectionLabel:`Choose a workbench pet`},sandbox:{dangerFullAccess:`Full access`,readOnly:`Read only`,workspaceWrite:`Workspace write`},sections:{git:`AI generation`,"claude-provider":`Model service`,"claude-agent":`Agent configuration`,"claude-personalization":`Personalization`,personalization:`Personalization`,about:`About`,access:`LAN access`,agent:`Agent configuration`,appearance:`General`,pets:`Workbench pet`,provider:`Model service`},title:`Global settings`},d={...i,...e,...t,allFiles:`All files`,commit:`Commit`,commitActions:`Choose commit action`,commitAndPush:`Commit and push`,commitAndPushComplete:`Commit and push completed`,commitAndPushSucceeded:`Committed and pushed successfully`,commitComplete:`Commit completed`,commitCompletePushFailed:`Commit completed, but push failed`,commitCompleteUpstreamMissing:`Commit completed; the current branch has no upstream`,commitMessage:`Commit message`,commitSucceeded:`Committed successfully`,changes:`Changes`,generateMessage:`Generate message content`,messagePlaceholder:`Enter a commit message`,repository:`Git project`,repositoryLoading:`Loading Git project`,repositoryUnavailable:`No committable Git project was found`,selectAllFiles:`Select all files`,selectFiles:`Select files`,selectRepository:`Select Git project`,selectionLabel:`Select files, {{selected}} of {{total}} selected`,staged:`Staged`,totalFiles_one:`{{count}} total`,totalFiles_other:`{{count}} total`,unstaged:`Unstaged`},f={codexCompatible:`Codex compatible`,compatible:`Verified`,current:`Up to date`,downloads:`{{count}} downloads`,emptyInstalled:`No installed skills found`,emptyMarket:`No compatible skills found`,emptyMcp:`No MCP servers configured`,emptyPlugins:`No official plugins available`,emptyInstalledPlugins:`No official plugins installed`,emptyAvailablePlugins:`No official plugins available to install`,authorize:`Authorize`,closeDetails:`Close plugin details`,closeSkillDetails:`Close skill details`,installComplete:`Skill installed`,installGlobal:`Install globally`,installProject:`Install in project`,installPlugin:`Install plugin`,installed:`Installed`,installedPlugins:`Installed`,availablePlugins:`Not installed`,installedCount:`{{count}} skills installed`,loadError:`Failed to load skill information`,loadMore:`Load more`,loading:`Loading skills`,loadingDetail:`Loading details`,loadingExtension:`Loading extension`,loadingMarket:`Loading market`,loadingMcp:`Loading MCP`,loadingPlugins:`Loading official plugins`,newSessionRequired:`Plugin installed. Start a new session to load its capabilities.`,marketError:`The market is temporarily unavailable`,mcpCount:`{{count}} MCP servers`,mcpEnabled:`Running`,mcpError:`Failed to load MCP configuration`,mcpStopped:`Stopped`,openMarketplace:`Open market page`,openSkill:`Show {{name}} in file manager`,official:`Official by OpenAI`,officialPublisher:`OpenAI official catalog`,projectTarget:`Install project`,refresh:`Refresh skills`,refreshMcp:`Refresh MCP`,refreshPlugins:`Refresh official plugins`,scan:`Scan: {{status}}`,scope:{admin:`Administrator`,repo:`Project`,system:`System`,user:`Global`},search:`Search market`,searchPlugins:`Search official plugins`,sectionsLabel:`Extension type`,sort:`Market sorting`,sortDownloads:`Most downloaded`,sortRecommended:`Recommended`,sortUpdated:`Recently updated`,stars:`{{count}} stars`,tabs:{marketplace:`Third-party market`,mcp:`MCP`,plugins:`Official plugins`,skills:`Skills`},title:`Extension Center`,toggle:`Enable or disable {{name}}`,toggleMcp:`Start or stop {{name}}`,update:`Update`,uninstallPlugin:`Uninstall plugin`,pluginSyncError:`Plugin synchronization failed. Please retry.`,pluginSyncPartial:`Some plugins failed to synchronize. Please retry.`,pluginError:`Official plugins are temporarily unavailable`,pluginFallbackDescription:`A Codex extension from the official catalog`,version:`Version {{version}}`},p={title:`New project`,parent:`Parent folder`,name:`Folder name`,path:`Project path`,choose:`Choose…`,cancel:`Cancel`,create:`Create and add`,creating:`Working`,invalidName:`Enter a single folder name without path separators, reserved names, or trailing spaces or periods`,loadError:`Could not read the parent folder. Retry or choose another folder.`,createError:`Could not create the folder. Check the parent folder and write permissions.`,addError:`The folder is ready, but adding the project failed. Retry adding.`,existsDirectory:`A folder with this name already exists. Add it or choose another name.`,existsFile:`A file with this name already exists. Choose another name.`,addExisting:`Add existing folder`,retryAdd:`Retry adding`,retry:`Retry`,loading:`Loading folders`,selectParent:`Choose parent folder`,useFolder:`Use this folder`,back:`Back`,existing:`Add existing project`,host:`Server: {{host}}`,localHost:`This device`},m={common:c,conversation:l,settings:u,workbench:{engine:o,textEditor:n,split:r,globalSearch:{all:`All`,archived:`Archived tasks`,back:`Back to results`,categories:`Search scope`,clear:`Clear search`,close:`Close search`,empty:`No matching results`,error:`Search failed. Please retry.`,fileHint:`Search file names and paths`,fileLimit:`Showing the first 50 files. Refine your search.`,files:`Project files`,hint:`Search all projects and temporary tasks`,history:`History`,historyHint:`Search user messages and final assistant replies`,keyboard:`↑ ↓ Select · Enter Open · Esc Close`,latest:`Back to latest messages`,loading:`Searching…`,location:`Search match`,next:`Next page`,occurrences:`Matching messages`,openSystem:`Open with default application`,openTask:`Open task`,partial:`Some project file searches failed`,placeholder:`Search tasks, messages, project files…`,previous:`Previous page`,resultCount:`{{count}} results`,retry:`Retry`,tasks:`Tasks`,temporary:`Temporary tasks`,title:`Global search`,unavailable:`This message is no longer available. Search again.`},scheduledTasks:s,skillsMarket:f,pet:{activeTasks:`Active tasks`,activitySummary:`{{count}} active tasks, {{waiting}} waiting for attention`,move:`Move workbench pet {{name}}`,openTask:`Open task {{name}}, {{status}}`,status:{completed:`Task completed`,running:`Task running`,waiting:`Task waiting for attention`}},actions:{cancel:`Cancel`,close:`Close`,retry:`Retry`,save:`Save`},commit:d,diff:{previewUnavailable:`Text differences cannot be previewed for this file`,changedFiles:`Changed files`,changedFilesNavigation:`Changed files navigation`,close:`Close file Diff`,closeReview:`Close file review`,collapseChangedFilesNavigation:`Collapse changed files navigation`,expandChangedFilesNavigation:`Expand changed files navigation`,fileStats:`{{path}}, {{additions}} lines added, {{removals}} lines removed`,loading:`Loading Diff`,nextFile:`Review next file`,previousFile:`Review previous file`,reviewContent:`File review content`,reviewTitle:`File review`,showFileList:`Switch to file list`,showFileTree:`Switch to file tree`},composer:{addedAttachments:`Added attachments`,applyTodo:`Apply todo`,applyTodoDescription:`Applying this todo will replace the current composer content. Continue?`,applyTodoTitle:`Replace current input?`,approvalMode:`Approval policy`,attachmentCount_one:`{{count}} attachment`,attachmentCount_other:`{{count}} attachments`,attachmentReadFailed:`Unable to read attachment`,attachmentUploadFailed:`Unable to upload attachment`,baseBranchReview:`Review against a base branch`,buildPlanPrompt:`Start implementing the plan above.`,cancelGoalMode:`Cancel Goal mode`,cancelPlanMode:`Cancel plan mode`,cancelQueued:`Cancel queued message: {{summary}}`,cancelQueuedTooltip:`Cancel queued message`,editQueued:`Edit queued message: {{summary}}`,editQueuedTooltip:`Edit queued message`,editingQueued:`Editing`,disableFastMode:`Disable fast mode`,enableFastMode:`Enable fast mode`,commandGroup:`Commands`,commandInput:`Command input`,commandNoMatch:`No matching Skill or command`,fileSearch:`Search project files`,fileSearchEmpty:`No matching project files`,fileSearchFailed:`Project file search failed`,fileSearchGroup:`Project files`,fileSearchLoading:`Searching project files`,deleteTodo:`Delete todo: {{summary}}`,compacting:`Compacting context`,gitBranchMissing:`No branch checked out`,branchSwitcherLabel:`Switch branch, current branch {{branch}}`,branchSwitcherMenu:`Switch branch`,branchSwitchFailed:`Unable to create or switch branches. Try again.`,branchName:`Branch name`,...a,worktrees:`Worktrees`,createWorktree:`Create worktree`,createWorktreeDescription:`Create a new branch in a separate folder for parallel work. Choose your engine and model afterward.`,createWorktreeConfirm:`Create and select worktree`,worktreeLoading:`Loading working directories…`,createBranch:`New branch`,createBranchDescription:`Create a branch from the current branch and switch to it in this working directory.`,createAndSwitchBranch:`Create and switch`,goalMode:`Goal`,goalStatus:{active:`Goal active`,blocked:`Goal blocked`,budget_limited:`Goal budget exhausted`,complete:`Goal complete`,paused:`Goal paused`,usage_limited:`Goal usage limited`},goalStatusLabel:`{{status}}: {{objective}}`,goalObjectiveRequired:`Goal mode requires an objective`,goalObjectiveTooLong:`The goal objective cannot exceed 4,000 characters`,goalStructuredInputUnsupported:`Goal mode does not support attachments or Skills; use text and @file paths instead`,initializingAgentsPrompt:`Inspect the current project and create or improve AGENTS.md in the project root with Codex project guidance, common commands, and verification requirements.`,landmark:`Message composer`,modelListFailed:`Failed to load model list`,modelLoading:`Loading models`,model:`Model`,modelSelect:`Select model`,modelSelectCurrent:`Select model: {{model}}`,moveQueuedDown:`Move queued message down: {{summary}}`,moveQueuedDownTooltip:`Move down`,moveQueuedUp:`Move queued message up: {{summary}}`,moveQueuedUpTooltip:`Move up`,noBaseBranch:`No base branch available`,noModels:`No models available`,openProjectFolder:`Open in system file manager`,operationFailed:`Operation failed. Please retry.`,placeholder:`Tell Codexly what you want to accomplish`,planMode:`Plan`,projectPath:`Project path`,queueMessage:`Queue message`,queuedMessages:`Queued messages`,reasonEffortSelect:`Select reasoning effort`,reasonEffortSelectCurrent:`Select reasoning effort: {{effort}}`,reasoningEffort:`Reasoning effort`,reviewBaseBranchGroup:`Select base branch`,reviewScopeGroup:`Select review scope`,reviewStarted:`Code review started`,reviewUncommitted:`Review uncommitted changes`,sandboxMode:`Sandbox mode`,saveAsTodo:`Save as todo`,saveTodoChanges:`Save todo changes`,saveTodoFailed:`Unable to save todo`,retryTodoLoad:`Reload todo`,todoMigrationError:`Some previous todos could not be imported. The original data is preserved. Check for expired attachments, then reload to retry.`,sendSteer:`Send steer`,steerNow:`Steer now: {{summary}}`,steerNowTooltip:`Send as a steer now`,stop:`Stop`,submit:`Submit`,taskInput:`Task input`,taskRunning:`Task is running`,uncommittedChangesMissing:`No uncommitted changes available`,waitingToSend:`Waiting to send`,todoCount:`Todos {{count}}`,todoHasChanges:`Unsaved changes`,todoList:`{{project}} todos`,followUpPlaceholder:`Enter follow-up instructions`},openMenu:{choose:`Choose how to open`,copyAbsolutePath:`Copy absolute path`,copyName:`Copy name`,copyRelativePath:`Copy relative path`,detect:`Detecting available apps`,delete:`Delete`,download:`Download file`,moreActions:`More actions`,none:`No apps available`,open:`Open`,openContainingFolder:`Open containing folder`,openInNewWindow:`Open in new window`,openIn:`Open in {{app}}`,reference:`Reference`,rename:`Rename`,systemDefault:`System default app`,targetLabel:`Actions for {{path}}`},projectFile:{deleteDescription:{directory:`This will delete the directory and its contents from disk. This cannot be undone.`,file:`This will delete the file from disk. This cannot be undone.`},deleteTitle:`Delete {{name}}?`,name:`Name`,renameDescription:{directory:`This will change the directory name on disk.`,file:`This will change the file name on disk.`},renameTitle:`Rename`},promptCommand:{availability:{noTask:`Open a task first`,notReady:`Runtime capabilities are not ready`,unsupported:`The current Runtime does not support this command`},compact:{description:`Compact the context for this task`,label:`Compact`},fork:{description:`Copy the current task and its conversation history`,label:`Fork`},goal:{description:`Set a persistent goal and keep working until it is complete`,label:`Goal`},initialize:{description:`Create an AGENTS.md file with Codex guidance`,label:`Initialize`},plan:{description:`Analyze the task and propose an implementation plan first`,label:`Plan`},review:{description:`Review uncommitted changes or compare against a branch`,label:`Code review`}},pending:{allow:`Allow`,allowTurn:`Allow for this turn`,additionalPermissions:`Additional permissions`,allowSession:`Allow for this session`,answerFailed:`Unable to submit the answer. Please retry.`,commandApproval:`Command approval`,cancel:`Cancel`,deny:`Deny`,expired:`Request expired`,toolApproval:`Tool approval`,fileChangeApproval:`File change approval`,fileChangeFallback:`File change awaiting confirmation`,inputRequired:`Your input is required`,mcpForm:`{{server}} input request`,mcpRequest:`{{server}} confirmation`,networkApproval:`Network access approval`,networkPermission:`Network access`,other:`Other`,otherAnswer:`{{header}} other answer`,openUrl:`Open link`,previousPending:`Waiting for the previous item`,processed:`Request processed`,permissionAccess:{deny:`Deny`,read:`Read`,write:`Write`},permissionApproval:`Permission approval`,permissionGlobDepth:`Glob scan depth: {{depth}}`,permissionMinimal:`Minimal filesystem`,permissionProjectRoots:`Project roots`,permissionRoot:`Filesystem root`,permissionTmpdir:`System temporary directory`,permissionUnknownPath:`Unknown path`,fileSystemPermission:`Filesystem`,requestFailed:`Unable to process the request. Please retry.`,terminalInputApproval:`Terminal input approval`,submitAnswers:`Submit answers`,unsupportedForm:`This form cannot be displayed safely. Decline or cancel the request.`},projectDialog:{pdfOpen:`Open PDF`,pdfUnavailable:`Inline PDF preview is unavailable. Open the file to view it.`,closePdfPreview:`Close PDF preview`,closeImagePreview:`Close image preview`,closeSource:`Close source file`,delete:`Remove`,loadImageError:`Unable to load image`,loadMoreSourceError:`Unable to load more content`,loadSourceError:`Unable to load source file`,loadingMoreSource:`Loading more content`,loadingSource:`Loading source file`,name:`Project name`,previewMarkdown:`Preview Markdown`,remove:`Remove project`,removeDescription:`Remove {{name}} and its task records from Codexly? Files on disk will be retained.`,rename:`Rename project`,renameDescription:`This changes only the sidebar display name, not the folder name on disk.`,showDiff:`View Diff`,showRawContent:`Show raw content`,sourcePartial:`Partial content`},newProject:p,projectPicker:{primaryRoot:`Project folder`,primaryRootHint:`Each project uses exactly one folder`,primaryRootSummary:`{{path}}`,rootSeparator:`, `,selectedRoots:`{{count}} project folders selected`,selectRoot:`Select {{name}}`,add:`Add this folder`,addError:`Unable to add the selected folder`,adding:`Adding`,description:`Browse folders on the device running Codexly`,directPathReady:`Directory verified and ready to add`,empty:`This folder has no subfolders`,filesystemRoot:`Select drive`,goToPath:`Go to path`,hideHidden:`Hide hidden folders`,loadBranchError:`Unable to read this folder`,loadError:`Unable to read folders`,loading:`Reading folders`,loadingBranch:`Reading`,noSelection:`No folder selected`,parent:`Go to parent folder`,pathLabel:`Absolute directory path`,pathPlaceholder:`Enter an absolute directory path`,resolvingPath:`Locating home directory`,title:`Select project folder`,showHidden:`Show hidden folders`,treeLabel:`Project folder tree`},hostAttachmentPicker:{add:`Add selected file`,description:`Browse files on the device running Codexly`,empty:`This folder has no supported files`,filesystemRoot:`Select drive`,fileTitle:`Select deployment host file`,goToPath:`Go to path`,hideHidden:`Hide hidden files`,imageTitle:`Select deployment host image`,importError:`Unable to add the selected file`,importing:`Adding`,loadBranchError:`Unable to read this folder`,loadError:`Unable to read files`,loading:`Reading files`,loadingBranch:`Reading`,noSelection:`No file selected`,parent:`Go to parent folder`,pathLabel:`Absolute directory path`,pathPlaceholder:`Enter an absolute directory path`,resolvingPath:`Locating home directory`,showHidden:`Show hidden files`,treeLabel:`Deployment host file tree`},subagentOutput:{close:`Close subagent output`,error:`Unable to load subagent output`,loading:`Loading subagent output`,reconnecting:`Restoring the live subagent connection`,task:`Subagent {{taskId}}`,title:`Subagent output`},shell:{selectProjectRoot:`Select project folder`,closeInspector:`Close context panel`,closeSidebar:`Close project sidebar`,collapseInspector:`Collapse context panel`,collapseSidebar:`Collapse project sidebar`,expandInspector:`Expand context panel`,expandSidebar:`Expand project sidebar`,newChat:`New chat`,renameTask:`Rename task {{title}}`,resizeInspector:`Resize context panel`,resizeSidebar:`Resize project sidebar`,timeline:`Task timeline`,temporaryTask:`Chat`},skillEditor:{tokenLabel:`Skill {{name}}, serialized text {{text}}`},archivedTasks:{confirmDelete:`Delete permanently`,confirmDeleteAll:`Delete all permanently`,delete:`Delete permanently`,deleteAll:`Delete all`,deleteAllDescription:`All archived tasks in "{{project}}" will be permanently removed from Codexly. Original session history remains with the AI engine.`,deleteAllTitle:`Permanently delete all archived tasks`,deleteAllPartialFailure:`Deleted {{deletedCount}} tasks; {{failedCount}} could not be deleted. Refresh and retry.`,deleteDescription:`"{{task}}" will be permanently removed from Codexly. Original session history remains with the AI engine.`,deleteTask:`Permanently delete task {{task}}`,deleteTitle:`Permanently delete task`,empty:`No archived tasks`,loadError:`Unable to load archived tasks`,loading:`Loading archived tasks`,next:`Next page`,page:`Page {{page}}`,previous:`Previous page`,restore:`Restore`,restoreTask:`Restore task {{task}}`,search:`Search archived tasks`,title:`Archived tasks for {{project}}`,updatedAt:`Updated {{date}}`},sidebar:{addProject:`Add project`,agentNavigation:`Agent navigation`,archive:`Archive`,archived:`Archived`,close:`Close project sidebar`,closeSearch:`Close task search`,collapse:`Show less`,connection:{connecting:`Connecting`,offline:`Offline`,online:`Online`,reconnecting:`Reconnecting`},aboutStatus:`About, Codexly {{version}}{{update}}, terminal connection status: {{status}}`,createInProject:`Create a task in {{project}}`,deletePermanently:`Delete permanently`,deleteTaskDescription:`"{{task}}" will be permanently removed from Codexly. Original session history remains with the AI engine.`,deleteTaskTitle:`Permanently delete task`,errorAddProject:`Unable to add project`,errorArchiveTask:`Unable to archive task`,errorLoadTasks:`Unable to load tasks`,errorPinTask:`Unable to update pin status`,errorProjectOrder:`Unable to save project order`,errorRenameTask:`Unable to rename task`,errorSearchTasks:`Unable to search tasks`,expand:`Show more`,expandLoading:`Loading more`,expandRetry:`Retry loading more`,newTask:`New task`,landmark:`Project sidebar`,noMatchingTasks:`No matching tasks`,noTasks:`No tasks yet`,noTemporaryTasks:`No chats yet`,openProjectActions:`Open actions for {{project}}`,openTaskActions:`Open actions for {{task}}`,pin:`Pin`,pinned:`Pinned`,runningGroup:`Running`,approvalCount:`Awaiting confirmation {{count}}`,showAllTasks:`View all {{count}} tasks`,closeTaskList:`Close task list`,projects:`Projects`,projectActions:`Actions for {{project}}`,remove:`Remove`,rename:`Rename`,search:`Search tasks`,searchAll:`Searching all tasks`,settings:`Settings`,updateAvailableLabel:`, update available`,taskActions:`Actions for {{task}}`,taskApproval:`Task awaiting approval`,taskComplete:`AI response completed`,taskIncomplete:`AI response incomplete`,taskLoading:`Loading tasks`,taskRunning:`Task running`,temporaryTasks:`Chats`,toggleProject:`Toggle project {{project}}`,unpin:`Unpin`},taskBoard:{allProjects:`All projects`,approval:`Awaiting approval`,completed:`Completed`,completedLoadError:`Failed to load completed tasks`,copyTaskId:`Copy task ID: {{id}}`,copyTaskIdHint:`Copy task ID`,emptyApproval:`No tasks awaiting approval`,emptyCompleted:`No completed tasks`,emptyRunning:`No running tasks`,emptyTodos:`No todos`,label:`Task board`,loading:`Loading task board`,loadingMore:`Loading more tasks`,newCompleted:`Newly completed`,openTask:`Open task: {{task}}`,openTodo:`Open todo: {{todo}}`,pinned:`Pinned`,projectFilter:`Project filter`,retryCompleted:`Reload completed tasks`,running:`Running`,runningFor:`Running for {{duration}}`,title:`Task board`,todo:`Todo`},taskDialog:{name:`Task name`,rename:`Rename task`}}};export{m as englishResources};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/dist/web/assets/scheduled-task-floating-ui~scheduled-task-date-time-picker-BxBVgd4h.js.br
DELETED
|
Binary file
|
package/dist/web/assets/scheduled-task-floating-ui~scheduled-task-date-time-picker-BxBVgd4h.js.gz
DELETED
|
Binary file
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/scheduled-task-date-time-picker-BFlpWVIu.js","assets/rolldown-runtime-B0Z9INg1.js","assets/react-runtime-CMZHB3u8.js","assets/initial-deps-DG--jjIA.js","assets/initial-deps-CqwWvUnY.js","assets/initial-deps-BeVJyoJH.js","assets/initial-deps-CG4ykI_P.js","assets/initial-deps-D0opk7c-.js","assets/initial-deps-DNAUCF1H.js","assets/initial-deps-DZ-sH4cr.js","assets/initial-deps-CRaxZAOH.js","assets/initial-deps-n_ZBS3cC.js","assets/scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~project-source~gjk7lcx5-ClgveiMa.js","assets/initial-deps-DFOart6r.js","assets/index-WWY-Ngf-.js","assets/index-BPQs_vk8.css","assets/scheduled-task-floating-ui~scheduled-task-date-time-picker-BxBVgd4h.js","assets/scheduled-task-date-time-picker-Wk3Ob2xl.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./initial-deps-CqwWvUnY.js";import{i as n,t as r}from"./react-runtime-CMZHB3u8.js";import{i,s as a,u as o}from"./initial-deps-BeVJyoJH.js";import{An as s,H as c,Rn as l,_ as u,d,f,kt as p,m,wt as h,x as g}from"./initial-deps-DG--jjIA.js";import{N as _,R as v,W as y,f as b,g as x,it as S,j as C,l as w,tt as T}from"./initial-deps-CRaxZAOH.js";import{t as E}from"./external-link-DTvUbh5p.js";import{n as D}from"./history-location-C01Ls1aP.js";import{t as ee}from"./sliders-horizontal-DFgw0FeX.js";import{C as O,G as k,U as te,kt as ne}from"./index-WWY-Ngf-.js";import{t as re}from"./scheduled-tasks-BBUd86IL.js";import{a as ie,g as ae,h as A,m as oe,o as se}from"./workbench-shell--cyl6F5f.js";var j=``,M;function N(e,t){j!==t&&(M=new Intl.DateTimeFormat(`sv-SE`,{timeZone:t,year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hourCycle:`h23`}),j=t);let n=M.formatToParts(e),r=e=>{let t=n.find(t=>t.type===e)?.value;if(t===void 0)throw Error(`Missing date part: ${e}`);return t};return`${r(`year`)}-${r(`month`)}-${r(`day`)}T${r(`hour`)}:${r(`minute`)}:${r(`second`)}`}function P(e,t){if(!/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(:\d{2})?$/u.test(e))return;let n=e.length===16?`${e}:00`:e,r=Date.parse(`${n}Z`);if(Number.isFinite(r)&&new Date(r).toISOString().slice(0,19)===n){if(t===`UTC`)return r;try{let e=r;for(let i=0;i<3;i++){let i=N(e,t);if(i===n)return e;e+=r-Date.parse(`${i}Z`)}}catch{return}}}var F=e(n(),1),ce={every:`Every`,interval:`Repeat interval`,intervalUnit:`Interval unit`,units:{HOURLY:`hours`,DAILY:`days`,WEEKLY:`weeks`,MONTHLY:`months`,YEARLY:`years`},repeatDays:`Repeat on`,monthMode:`Monthly pattern`,byDate:`By date`,byWeekday:`By weekday`,lastDay:`Last day`,ordinal:`Occurrence`,ordinals:{1:`First`,2:`Second`,3:`Third`,4:`Fourth`,5:`Fifth`,"-1":`Last`},yearMonth:`Month`,yearDay:`Date`,startDate:`Start date`,rangeSettings:`Start and end conditions`,oncePast:`Choose a future execution time.`,end:`Ends`,never:`Never`,onDate:`On a date`,afterCount:`After a number of occurrences`,endDate:`End date`,count:`Planned occurrences`,countHint:`Counts scheduled occurrences, including skipped or missed times, not successful runs.`,monthSkipHint:`Months without the selected date are skipped. Choose Last day to run every month.`,ordinalSkipHint:`Months without the selected weekday occurrence are skipped.`,leapHint:`Runs on February 29 in leap years only.`,startHint:`Matches dates from this day; check the upcoming times. Weekly intervals start on Monday.`,preview:`Upcoming runs`,previewLoading:`Calculating upcoming times…`,previewFailed:`Could not calculate upcoming times. Check the settings and retry.`,retryPreview:`Recalculate`,showMore:`Show 5 runs`,showLess:`Show less`,ended:`Schedule ended`,noFutureRuns:`No future runs remain. Adjust the start date or ending condition.`,invalidDate:`Choose a valid date.`,invalidTime:`Enter a valid time.`,invalidInterval:`Enter a whole number from 1 to 999.`,selectWeekday:`Select at least one weekday.`,selectMonthDay:`Select at least one valid date.`,selectOrdinal:`Select at least one valid weekday occurrence.`,invalidYearDay:`Choose a valid month and date.`,invalidCount:`Enter a whole number from 1 to 10000.`,invalidEndDate:`The end date must not precede the start date.`,invalidWallTime:`This date or time does not exist. Choose another time.`,unsupportedRule:`This recurrence cannot be fully expressed in the form. Choose a new repeat pattern.`,summaryEvery:`Every {{interval}} {{unit}}`,summaryAt:`{{rule}} at {{time}}`,summaryFrom:`From {{date}}`,summaryUntil:`Until {{date}} (inclusive)`,summaryCount:`{{count}} planned occurrences`,summaryMonthDates:`Day {{days}}`,summaryYearDate:`{{month}}/{{day}}`},I={every:`每隔`,interval:`重复间隔`,intervalUnit:`间隔单位`,units:{HOURLY:`小时`,DAILY:`天`,WEEKLY:`周`,MONTHLY:`月`,YEARLY:`年`},repeatDays:`重复日期`,monthMode:`每月重复方式`,byDate:`按日期`,byWeekday:`按星期`,lastDay:`最后一天`,ordinal:`第几个`,ordinals:{1:`第一个`,2:`第二个`,3:`第三个`,4:`第四个`,5:`第五个`,"-1":`最后一个`},yearMonth:`月份`,yearDay:`日期`,startDate:`开始日期`,rangeSettings:`开始与结束条件`,oncePast:`请选择未来的执行时间。`,end:`结束`,never:`永不`,onDate:`到指定日期`,afterCount:`安排指定次数后`,endDate:`结束日期`,count:`计划次数`,countHint:`按计划触发次数计算,跳过或错过的时间也计入,不代表成功执行次数。`,monthSkipHint:`没有所选日期的月份将跳过;每月都要执行可选择“最后一天”。`,ordinalSkipHint:`没有所选星期的月份将跳过。`,leapHint:`仅在闰年的 2 月 29 日执行。`,startHint:`从该日期开始匹配规则,以接下来执行时间为准。隔周规则从该周周一计起。`,preview:`接下来执行`,previewLoading:`正在计算执行时间…`,previewFailed:`无法计算执行时间,请检查设置后重试。`,retryPreview:`重新计算`,showMore:`展开 5 次`,showLess:`收起`,ended:`计划已结束`,noFutureRuns:`此计划已无后续执行时间,可调整开始日期或结束条件。`,invalidDate:`请选择有效日期。`,invalidTime:`请输入有效时间。`,invalidInterval:`重复间隔需为 1~999 的整数。`,selectWeekday:`至少选择一个星期。`,selectMonthDay:`至少选择一个有效日期。`,selectOrdinal:`至少选择一个有效的星期序号。`,invalidYearDay:`请选择有效的月份和日期。`,invalidCount:`计划次数需为 1~10000 的整数。`,invalidEndDate:`结束日期不能早于开始日期。`,invalidWallTime:`该日期或时间不存在,请重新选择。`,unsupportedRule:`此任务的重复方式无法用表单完整表达,请重新选择重复方式。`,summaryEvery:`每 {{interval}} {{unit}}`,summaryAt:`{{rule}},{{time}} 执行`,summaryFrom:`从 {{date}} 开始`,summaryUntil:`至 {{date}}(含当天)`,summaryCount:`共安排 {{count}} 次`,summaryMonthDates:`{{days}} 日`,summaryYearDate:`{{month}} 月 {{day}} 日`};S.addResourceBundle(`en`,`workbench`,{scheduledTasks:{...re,...ce}},!0),S.addResourceBundle(`zh-CN`,`workbench`,{scheduledTasks:{...ne,...I}},!0);var L=[`MO`,`TU`,`WE`,`TH`,`FR`,`SA`,`SU`],R=[`HOURLY`,`DAILY`,`WEEKLY`,`MONTHLY`,`YEARLY`],le=new Set([`FREQ`,`INTERVAL`,`WKST`,`BYDAY`,`BYMONTHDAY`,`BYMONTH`,`BYHOUR`,`BYMINUTE`,`BYSECOND`,`COUNT`,`UNTIL`]);function ue(e,t){let n=e.rrule.trim().replace(/^RRULE:/u,``).split(`;`).map(e=>e.split(`=`)),r=new Map(n.map(([e=``,t=``])=>[e,t])),i=r.get(`FREQ`),a=()=>({...t,preset:`custom`,unsupported:!0});if(n.some(e=>e.length!==2||!le.has(e[0]??``)||!e[1])||r.size!==n.length||!R.includes(i)||r.has(`WKST`)&&r.get(`WKST`)!==`MO`||r.has(`BYSECOND`)&&r.get(`BYSECOND`)!==`0`||!r.has(`BYSECOND`)&&e.startAtUnixMs%6e4!=0)return a();let o=r.get(`BYHOUR`)??t.time.slice(0,2),s=r.get(`BYMINUTE`)??t.time.slice(3);if(!/^\d{1,2}$/u.test(o)||!/^\d{1,2}$/u.test(s)||i===`HOURLY`&&r.has(`BYHOUR`))return a();let c=`${o.padStart(2,`0`)}:${s.padStart(2,`0`)}`,l=Number(r.get(`INTERVAL`)??1),u={...t,preset:`custom`,frequency:i,interval:l,time:c,anchor:{unixMs:e.startAtUnixMs,startDate:t.startDate,time:c}},d=r.get(`BYDAY`);if(i===`WEEKLY`){let e=d?.split(`,`)??t.weekdays;if(e.some(e=>!L.includes(e)))return a();u={...u,weekdays:e}}else if(i===`MONTHLY`&&d){let e=d.split(`,`).map(e=>/^(-1|[1-5])(MO|TU|WE|TH|FR|SA|SU)$/u.exec(e));if(e.some(t=>t===null||t[2]!==e[0]?.[2])||r.has(`BYMONTHDAY`))return a();u={...u,monthMode:`weekday`,ordinals:e.map(e=>Number(e?.[1])),monthWeekday:e[0]?.[2]}}else if(d)return a();if(r.has(`BYMONTHDAY`)){let e=(r.get(`BYMONTHDAY`)??``).split(`,`).map(Number);if(i===`MONTHLY`)u={...u,monthDays:e};else if(i===`YEARLY`&&e.length===1)u={...u,yearDay:Number(e[0])};else return a()}if(r.has(`BYMONTH`)){if(i!==`YEARLY`||!/^\d{1,2}$/u.test(r.get(`BYMONTH`)??``))return a();u={...u,yearMonth:Number(r.get(`BYMONTH`))}}if(r.has(`COUNT`)&&r.has(`UNTIL`))return a();if(r.has(`COUNT`)&&(u={...u,endMode:`count`,count:Number(r.get(`COUNT`))}),r.has(`UNTIL`)){let t=/^(\d{4})(\d{2})(\d{2})T(\d{2})(\d{2})(\d{2})Z$/u.exec(r.get(`UNTIL`)??``);if(!t)return a();let n=Date.parse(`${t.slice(1,4).join(`-`)}T${t.slice(4).join(`:`)}Z`);if(!Number.isFinite(n))return a();let i=N(n,e.timezone);if(!i.endsWith(`23:59:59`))return a();u={...u,endMode:`date`,endDate:i.slice(0,10)}}if(l===1){if(i===`DAILY`&&(u={...u,preset:`daily`}),i===`WEEKLY`){let e=L.filter(e=>u.weekdays.includes(e)).join(`,`);u={...u,preset:e===`MO,TU,WE,TH,FR`?`weekdays`:e===`SA,SU`?`weekends`:`weekly`}}i===`MONTHLY`&&(u={...u,preset:`monthly`})}return u}function z(e){return e===`en`?`en`:`zh-CN`}function B(e){let t=new Date(e),n=e=>String(e).padStart(2,`0`);return`${String(t.getFullYear())}-${n(t.getMonth()+1)}-${n(t.getDate())}T${n(t.getHours())}:${n(t.getMinutes())}`}function V(e=Date.now()){let t=B(e+36e5),n=new Date(t),r=L[(n.getDay()+6)%7]??`MO`;return{dateTime:t,preset:`once`,frequency:`WEEKLY`,interval:1,time:t.slice(11),startDate:t.slice(0,10),weekdays:[r],monthMode:`date`,monthDays:[n.getDate()],ordinals:[1],monthWeekday:r,yearMonth:n.getMonth()+1,yearDay:n.getDate(),endMode:`never`,endDate:t.slice(0,10),count:10}}function H(e){if(e.type===`once`)return V(e.atUnixMs-36e5);let t=N(e.startAtUnixMs,e.timezone),n=new Date(`${t.slice(0,10)}T12:00:00Z`),r=L[(n.getUTCDay()+6)%7]??`MO`;return ue(e,{...V(e.startAtUnixMs-36e5),dateTime:t.slice(0,16),startDate:t.slice(0,10),time:t.slice(11,16),weekdays:[r],monthWeekday:r,monthDays:[n.getUTCDate()],yearMonth:n.getUTCMonth()+1,yearDay:n.getUTCDate()})}function U(e){return e.preset===`daily`?`DAILY`:e.preset===`weekly`||e.preset===`weekdays`||e.preset===`weekends`?`WEEKLY`:e.preset===`monthly`?`MONTHLY`:e.frequency}function W(e,t,n){return Number.isInteger(e)&&e>=t&&e<=n}function G(e){if(e.unsupported)return`unsupportedRule`;if(e.preset===`once`){let t=new Date(e.dateTime).getTime();return Number.isFinite(t)&&B(t)===e.dateTime?void 0:`invalidDate`}if(!/^([01]\d|2[0-3]):[0-5]\d$/u.test(e.time))return`invalidTime`;if(e.preset===`custom`&&!W(e.interval,1,999))return`invalidInterval`;if(P(`${e.startDate}T00:00`,`UTC`)===void 0)return`invalidDate`;let t=U(e);if(t===`WEEKLY`&&e.preset!==`weekdays`&&e.preset!==`weekends`&&(!e.weekdays.length||e.weekdays.some(e=>!L.includes(e))))return`selectWeekday`;if(t===`MONTHLY`){if(e.monthMode===`date`&&(!e.monthDays.length||e.monthDays.some(e=>e!==-1&&!W(e,1,31))))return`selectMonthDay`;if(e.monthMode===`weekday`&&(!e.ordinals.length||e.ordinals.some(e=>e!==-1&&!W(e,1,5))||!L.includes(e.monthWeekday)))return`selectOrdinal`}if(t===`YEARLY`&&(!W(e.yearMonth,1,12)||!W(e.yearDay,1,new Date(2e3,e.yearMonth,0).getDate())))return`invalidYearDay`;if(e.endMode===`count`&&!W(e.count,1,1e4))return`invalidCount`;if(e.endMode===`date`&&(P(`${e.endDate}T23:59:59`,`UTC`)===void 0||e.endDate<e.startDate))return`invalidEndDate`}function K(e,t,n=Date.now()){if(G(e))return;if(e.preset===`once`){let t=new Date(e.dateTime).getTime();return t>n?{type:`once`,atUnixMs:t}:void 0}let r=e.anchor?.startDate===e.startDate&&e.anchor.time===e.time?e.anchor.unixMs:P(`${e.startDate}T${e.time}`,t);if(r===void 0)return;let i=U(e),a=[`FREQ=${i}`];if(e.preset===`custom`&&e.interval>1&&a.push(`INTERVAL=${String(e.interval)}`),i===`WEEKLY`){let t=e.preset===`weekdays`?L.slice(0,5):e.preset===`weekends`?L.slice(5):L.filter(t=>e.weekdays.includes(t));a.push(`WKST=MO`,`BYDAY=${t.join(`,`)}`)}i===`MONTHLY`&&a.push(e.monthMode===`date`?`BYMONTHDAY=${[...new Set(e.monthDays)].join(`,`)}`:`BYDAY=${[...new Set(e.ordinals)].map(t=>`${String(t)}${e.monthWeekday}`).join(`,`)}`),i===`YEARLY`&&a.push(`BYMONTH=${String(e.yearMonth)}`,`BYMONTHDAY=${String(e.yearDay)}`);let[o,s]=e.time.split(`:`).map(Number);if(i!==`HOURLY`&&a.push(`BYHOUR=${String(o)}`),a.push(`BYMINUTE=${String(s)}`,`BYSECOND=0`),e.endMode===`count`&&a.push(`COUNT=${String(e.count)}`),e.endMode===`date`){let n=P(`${e.endDate}T23:59:59`,t);if(n===void 0||n<r)return;a.push(`UNTIL=${new Date(n).toISOString().replace(/[-:]/gu,``).replace(`.000`,``)}`)}return{type:`rrule`,rrule:`RRULE:${a.join(`;`)}`,startAtUnixMs:r,timezone:t}}function q(e,t){return e===null?`-`:new Intl.DateTimeFormat(z(t),{dateStyle:`medium`,timeStyle:`short`}).format(e)}var J=r(),Y=Array.from({length:31},(e,t)=>t+1),de=Array.from({length:12},(e,t)=>t+1),fe=[1,2,3,4,5,-1];function X(e,t){return e.includes(t)?e.filter(e=>e!==t):[...e,t]}function pe({schedule:e,onChange:t,weekdayNames:n}){let{t:r}=T(`workbench`),i=n=>{t({...e,...n})};return U(e)===`YEARLY`?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`label`,{children:[(0,J.jsx)(`span`,{children:r(`scheduledTasks.yearMonth`)}),(0,J.jsx)(`select`,{value:e.yearMonth,onChange:e=>{i({yearMonth:Number(e.currentTarget.value)})},children:de.map(e=>(0,J.jsx)(`option`,{value:e,children:e},e))})]}),(0,J.jsxs)(`label`,{children:[(0,J.jsx)(`span`,{children:r(`scheduledTasks.yearDay`)}),(0,J.jsx)(`select`,{value:e.yearDay,onChange:e=>{i({yearDay:Number(e.currentTarget.value)})},children:Y.map(e=>(0,J.jsx)(`option`,{value:e,children:e},e))})]}),e.yearMonth===2&&e.yearDay===29?(0,J.jsx)(`p`,{className:`scheduled-task-hint`,children:r(`scheduledTasks.leapHint`)}):null]}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`label`,{children:[(0,J.jsx)(`span`,{children:r(`scheduledTasks.monthMode`)}),(0,J.jsxs)(`select`,{value:e.monthMode,onChange:e=>{i({monthMode:e.currentTarget.value})},children:[(0,J.jsx)(`option`,{value:`date`,children:r(`scheduledTasks.byDate`)}),(0,J.jsx)(`option`,{value:`weekday`,children:r(`scheduledTasks.byWeekday`)})]})]}),e.monthMode===`date`?(0,J.jsxs)(`div`,{className:`scheduled-task-field scheduled-task-field--choices`,children:[(0,J.jsx)(`span`,{children:r(`scheduledTasks.monthDay`)}),(0,J.jsxs)(`div`,{className:`scheduled-task-month-days`,role:`group`,"aria-label":r(`scheduledTasks.monthDay`),children:[Y.map(t=>(0,J.jsx)(`button`,{type:`button`,"aria-pressed":e.monthDays.includes(t),onClick:()=>{i({monthDays:X(e.monthDays,t)})},children:t},t)),(0,J.jsx)(`button`,{className:`scheduled-task-month-days__last`,type:`button`,"aria-pressed":e.monthDays.includes(-1),onClick:()=>{i({monthDays:X(e.monthDays,-1)})},children:r(`scheduledTasks.lastDay`)})]})]}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{className:`scheduled-task-field scheduled-task-field--choices`,children:[(0,J.jsx)(`span`,{children:r(`scheduledTasks.ordinal`)}),(0,J.jsx)(`div`,{className:`scheduled-task-choices`,role:`group`,"aria-label":r(`scheduledTasks.ordinal`),children:fe.map(t=>(0,J.jsx)(`button`,{type:`button`,"aria-pressed":e.ordinals.includes(t),onClick:()=>{i({ordinals:X(e.ordinals,t)})},children:r(`scheduledTasks.ordinals.${String(t)}`)},t))})]}),(0,J.jsxs)(`label`,{children:[(0,J.jsx)(`span`,{children:r(`scheduledTasks.weekday`)}),(0,J.jsx)(`select`,{value:e.monthWeekday,onChange:e=>{i({monthWeekday:e.currentTarget.value})},children:L.map((e,t)=>(0,J.jsx)(`option`,{value:e,children:n[t]},e))})]})]}),e.monthMode===`date`&&e.monthDays.some(e=>e>=29)?(0,J.jsx)(`p`,{className:`scheduled-task-hint`,children:r(`scheduledTasks.monthSkipHint`)}):null,e.monthMode===`weekday`&&e.ordinals.includes(5)?(0,J.jsx)(`p`,{className:`scheduled-task-hint`,children:r(`scheduledTasks.ordinalSkipHint`)}):null]})}var me=(0,F.lazy)(async()=>({default:(await t(()=>import(`./scheduled-task-date-time-picker-BFlpWVIu.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]))).ScheduledTaskDateTimePicker}));function Z({label:e,value:t,onChange:n,minimum:r=``,dateOnly:i=!0}){return(0,J.jsxs)(`div`,{className:`scheduled-task-field`,children:[(0,J.jsx)(`span`,{children:e}),(0,J.jsx)(F.Suspense,{fallback:(0,J.jsx)(c,{"aria-label":e,"aria-busy":`true`,disabled:!0,value:``}),children:(0,J.jsx)(me,{dateOnly:i,label:e,minimum:r,onChange:n,value:t})})]})}var he=(0,F.memo)(function({schedule:e,onChange:t}){let{i18n:n,t:r}=T(`workbench`),[i]=(0,F.useState)(()=>B(Date.now())),[a,o]=(0,F.useState)(e.endMode!==`never`),s=U(e),l=z(n.resolvedLanguage),u=(0,F.useMemo)(()=>{let e=new Intl.DateTimeFormat(l,{timeZone:`UTC`,weekday:`short`});return L.map((t,n)=>e.format(new Date(Date.UTC(2024,0,n+1))))},[l]),d=n=>{t({...e,...n})};return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`label`,{children:[(0,J.jsx)(`span`,{children:r(`scheduledTasks.repeat`)}),(0,J.jsx)(`select`,{onChange:e=>{d({preset:e.currentTarget.value,frequency:s,unsupported:!1})},value:e.preset,children:[`once`,`daily`,`weekdays`,`weekends`,`weekly`,`monthly`,`custom`].map(e=>(0,J.jsx)(`option`,{value:e,children:r(`scheduledTasks.${e}`)},e))})]}),e.preset===`once`?(0,J.jsx)(Z,{dateOnly:!1,label:r(`scheduledTasks.time`),minimum:i,value:e.dateTime,onChange:e=>{d({dateTime:e})}}):(0,J.jsxs)(J.Fragment,{children:[e.preset===`custom`?(0,J.jsxs)(`div`,{className:`scheduled-task-field`,children:[(0,J.jsx)(`span`,{children:r(`scheduledTasks.every`)}),(0,J.jsxs)(`div`,{className:`scheduled-task-inline-controls`,children:[(0,J.jsx)(c,{"aria-label":r(`scheduledTasks.interval`),type:`number`,min:1,max:999,step:1,value:Number.isNaN(e.interval)?``:e.interval,onChange:e=>{d({interval:e.currentTarget.valueAsNumber})}}),(0,J.jsx)(`select`,{"aria-label":r(`scheduledTasks.intervalUnit`),value:e.frequency,onChange:e=>{d({frequency:e.currentTarget.value})},children:R.map(e=>(0,J.jsx)(`option`,{value:e,children:r(`scheduledTasks.units.${e}`)},e))})]})]}):null,s===`WEEKLY`&&e.preset!==`weekdays`&&e.preset!==`weekends`?(0,J.jsxs)(`div`,{className:`scheduled-task-field scheduled-task-field--choices`,children:[(0,J.jsx)(`span`,{children:r(`scheduledTasks.repeatDays`)}),(0,J.jsx)(`div`,{className:`scheduled-task-choices`,role:`group`,"aria-label":r(`scheduledTasks.repeatDays`),children:L.map((t,n)=>(0,J.jsx)(`button`,{type:`button`,"aria-pressed":e.weekdays.includes(t),onClick:()=>{d({weekdays:e.weekdays.includes(t)?e.weekdays.filter(e=>e!==t):[...e.weekdays,t]})},children:u[n]},t))})]}):null,s===`MONTHLY`||s===`YEARLY`?(0,J.jsx)(pe,{schedule:e,onChange:t,weekdayNames:u}):null,(0,J.jsxs)(`label`,{children:[(0,J.jsx)(`span`,{children:r(`scheduledTasks.timeOfDay`)}),(0,J.jsx)(c,{step:60,type:`time`,value:e.time,onChange:e=>{d({time:e.currentTarget.value})}})]}),e.preset===`custom`?null:(0,J.jsx)(`button`,{className:`scheduled-task-range-toggle`,type:`button`,"aria-expanded":a,onClick:()=>{o(!a)},children:r(`scheduledTasks.rangeSettings`)}),e.preset===`custom`||a?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(Z,{label:r(`scheduledTasks.startDate`),value:e.startDate,onChange:e=>{d({startDate:e})}}),(0,J.jsxs)(`label`,{children:[(0,J.jsx)(`span`,{children:r(`scheduledTasks.end`)}),(0,J.jsxs)(`select`,{value:e.endMode,onChange:e=>{d({endMode:e.currentTarget.value})},children:[(0,J.jsx)(`option`,{value:`never`,children:r(`scheduledTasks.never`)}),(0,J.jsx)(`option`,{value:`date`,children:r(`scheduledTasks.onDate`)}),(0,J.jsx)(`option`,{value:`count`,children:r(`scheduledTasks.afterCount`)})]})]}),e.endMode===`date`?(0,J.jsx)(Z,{label:r(`scheduledTasks.endDate`),minimum:e.startDate,value:e.endDate,onChange:e=>{d({endDate:e})}}):null,e.endMode===`count`?(0,J.jsxs)(`label`,{children:[(0,J.jsx)(`span`,{children:r(`scheduledTasks.count`)}),(0,J.jsx)(c,{type:`number`,min:1,max:1e4,step:1,value:Number.isNaN(e.count)?``:e.count,onChange:e=>{d({count:e.currentTarget.valueAsNumber})}})]}):null,e.endMode===`count`?(0,J.jsx)(`p`,{className:`scheduled-task-hint`,children:r(`scheduledTasks.countHint`)}):null]}):null]})]})});function ge({schedule:e,timezone:t,dates:n,pending:r,failed:i,retry:a,error:o}){let{i18n:s,t:c}=T(`workbench`),[l,u]=(0,F.useState)(!1),d=z(s.resolvedLanguage),f=(0,F.useMemo)(()=>new Intl.DateTimeFormat(d,{timeZone:t,year:`numeric`,month:`short`,day:`numeric`,weekday:`short`,hour:`2-digit`,minute:`2-digit`,hourCycle:`h23`}),[d,t]),p=(0,F.useMemo)(()=>{let e=new Intl.DateTimeFormat(d,{timeZone:`UTC`,weekday:`short`});return L.map((t,n)=>e.format(Date.UTC(2024,0,n+1)))},[d]),m=(0,F.useMemo)(()=>new Intl.DateTimeFormat(d,{timeZone:t,timeZoneName:`longGeneric`}).formatToParts(new Date).find(e=>e.type===`timeZoneName`)?.value,[d,t]),h=U(e),g=c(`scheduledTasks.summaryEvery`,{interval:e.preset===`custom`?e.interval:1,unit:c(`scheduledTasks.units.${h}`)});if(e.preset===`weekdays`||e.preset===`weekends`?g=c(`scheduledTasks.${e.preset}`):h===`WEEKLY`&&(g+=` · ${L.filter(t=>e.weekdays.includes(t)).map(e=>p[L.indexOf(e)]).join(`、`)}`),h===`MONTHLY`){if(e.monthMode===`date`){let t=e.monthDays.filter(e=>e!==-1).join(`、`);g+=` · ${[t?c(`scheduledTasks.summaryMonthDates`,{days:t}):``,e.monthDays.includes(-1)?c(`scheduledTasks.lastDay`):``].filter(Boolean).join(`、`)}`}else g+=` · ${e.ordinals.map(e=>c(`scheduledTasks.ordinals.${String(e)}`)).join(`、`)} ${p[L.indexOf(e.monthWeekday)]??``}`}h===`YEARLY`&&(g+=` · ${c(`scheduledTasks.summaryYearDate`,{month:e.yearMonth,day:e.yearDay})}`);let _=e.preset===`once`?c(`scheduledTasks.once`):h===`HOURLY`?g:c(`scheduledTasks.summaryAt`,{rule:g,time:e.time});return(0,J.jsxs)(`div`,{className:`scheduled-task-preview`,"aria-live":`polite`,"aria-busy":r,children:[(0,J.jsx)(`p`,{className:`scheduled-task-preview__summary`,children:_}),(0,J.jsxs)(`p`,{className:`scheduled-task-preview__meta`,children:[m,e.preset===`once`?``:` · ${c(`scheduledTasks.summaryFrom`,{date:e.startDate})}${h===`HOURLY`?` ${e.time}`:``}`]}),e.preset!==`once`&&e.endMode!==`never`?(0,J.jsx)(`p`,{className:`scheduled-task-preview__meta`,children:e.endMode===`date`?c(`scheduledTasks.summaryUntil`,{date:e.endDate}):c(`scheduledTasks.summaryCount`,{count:e.count})}):null,e.preset===`custom`?(0,J.jsx)(`p`,{className:`scheduled-task-preview__meta`,children:c(`scheduledTasks.startHint`)}):null,(0,J.jsx)(`h4`,{children:c(`scheduledTasks.preview`)}),(0,J.jsx)(`div`,{className:`scheduled-task-preview__results`,"data-expanded":l,children:o?(0,J.jsx)(`p`,{className:`scheduled-task-error`,role:`alert`,children:c(`scheduledTasks.${o}`)}):r?(0,J.jsx)(`p`,{children:c(`scheduledTasks.previewLoading`)}):i?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`p`,{children:c(`scheduledTasks.previewFailed`)}),(0,J.jsx)(`button`,{type:`button`,onClick:a,children:c(`scheduledTasks.retryPreview`)})]}):n?.length===0?(0,J.jsx)(`p`,{children:c(`scheduledTasks.noFutureRuns`)}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`ol`,{children:n?.slice(0,l?5:3).map(e=>(0,J.jsx)(`li`,{children:(0,J.jsx)(`time`,{dateTime:new Date(e).toISOString(),children:f.format(e)})},e))}),(n?.length??0)>3?(0,J.jsx)(`button`,{type:`button`,"aria-expanded":l,onClick:()=>{u(!l)},children:c(l?`scheduledTasks.showLess`:`scheduledTasks.showMore`)}):null]})})]})}function Q(e,t){let[n,r]=(0,F.useState)(),[i,a]=(0,F.useState)(0),o=(0,F.useRef)(void 0),s=e===void 0?void 0:JSON.stringify(e);if((0,F.useEffect)(()=>{if(s===void 0)return;let e=JSON.parse(s);if(e.type===`once`)return;let n=!1,i=setTimeout(()=>{(async()=>{if(await o.current,n)return;let i=Promise.resolve().then(()=>t(e)).then(e=>{n||r({key:s,dates:e.dates})},()=>{n||r({key:s,failed:!0})});o.current=i,await i})()},200);return()=>{n=!0,clearTimeout(i)}},[s,t,i]),e?.type===`once`)return{dates:[e.atUnixMs],pending:!1,failed:!1,retry:()=>{a(e=>e+1)}};let c=n?.key===s?n:void 0;return{dates:c?.dates,pending:e!==void 0&&c===void 0,failed:c?.failed===!0,retry:()=>{r(void 0),a(e=>e+1)}}}function _e(e){return e===void 0?[]:e.messageAttachments.map(t=>({attachment:t,...t,previewUrl:t.kind===`image`?s(``,e.projectId,t.id):``,source:`host`}))}function ve(e,t){if(e===void 0)return{attachments:[],content:[]};let n=new Map(t.map(e=>[e.id,e])),r=e.prompt.skills.flatMap(e=>{let t=n.get(e.id);return t===void 0?[]:[t]});return{attachments:_e(e),content:se(e.prompt.text,r)}}function ye(e){let{i18n:t,t:n}=T(`workbench`),[r]=(0,F.useState)(()=>e.task?.schedule.type===`rrule`?e.task.schedule.timezone:Intl.DateTimeFormat().resolvedOptions().timeZone||`UTC`),i=(0,F.useRef)(null),[a,o]=(0,F.useState)(e.task?.name??``),[s,u]=(0,F.useState)(()=>e.task===void 0?V():H(e.task.schedule)),[d,f]=(0,F.useState)(e.task?.turnOptions??e.composerProps.settings),[m,h]=(0,F.useState)(!1),[g,_]=(0,F.useState)(e.task!==void 0&&(e.task.prompt.text.trim()!==``||e.task.prompt.attachments.length>0||e.task.prompt.skills.length>0)),v=(0,F.useMemo)(()=>ve(e.task,e.skills),[e.skills,e.task]),b=e.projectId===`temporary`?n(`shell.temporaryTask`):e.projects.find(t=>t.id===e.projectId)?.name??e.projectId,x=(0,F.useMemo)(()=>K(s,r),[s,r]),S=Q(x,e.onPreview),C=G(s)??(x===void 0?s.preset===`once`?`oncePast`:`invalidWallTime`:void 0),w=a.trim()!==``&&x!==void 0&&g&&!S.pending&&!S.failed&&(S.dates?.length??0)>0,O=async(t,i,o)=>{if(a.trim()===``)throw Error(n(`scheduledTasks.name`));let c=K(s,r);if(c===void 0||S.pending||S.failed||!S.dates?.length)throw Error(n(`scheduledTasks.scheduleInvalid`));await e.onSave(e.task?.id,{enabled:e.task?.enabled??!0,messageAttachments:[...o],name:a.trim(),projectId:e.projectId,projectName:b,prompt:t,schedule:c,turnOptions:i})};return(0,J.jsxs)(`section`,{className:`scheduled-task-editor`,children:[(0,J.jsxs)(`div`,{className:`scheduled-task-editor__toolbar`,children:[(0,J.jsxs)(`span`,{className:`scheduled-task-status`,"data-enabled":e.task?.enabled??!0,children:[(0,J.jsx)(`span`,{}),n(e.task===void 0?`scheduledTasks.create`:e.task.enabled?`scheduledTasks.enabled`:`scheduledTasks.disabled`)]}),(0,J.jsxs)(`div`,{className:`scheduled-task-editor__actions`,children:[e.task===void 0?(0,J.jsx)(`span`,{}):(0,J.jsxs)(p,{"aria-label":n(`scheduledTasks.runNow`),disabled:e.task.lastRunStatus===`running`||e.task.runs.some(e=>e.status===`running`||e.status===`unknown`||e.status===`cleanup_pending`),onClick:()=>{e.task!==void 0&&e.onRunNow(e.task.id)},size:`sm`,variant:`outline`,children:[(0,J.jsx)(A,{"aria-hidden":`true`}),n(`scheduledTasks.runNow`)]}),(0,J.jsxs)(p,{"aria-label":n(`scheduledTasks.save`),className:`disabled:bg-control-active disabled:text-muted-foreground disabled:opacity-100`,disabled:m||!w||e.task?.runs.some(e=>e.status===`running`||e.status===`unknown`||e.status===`cleanup_pending`),onClick:()=>void i.current?.submitCurrent(),size:`sm`,children:[(0,J.jsx)(oe,{"aria-hidden":`true`}),n(`scheduledTasks.save`)]})]})]}),(0,J.jsxs)(`div`,{className:`scheduled-task-editor__body`,children:[(0,J.jsxs)(`label`,{className:`scheduled-task-title`,children:[(0,J.jsx)(`span`,{className:`sr-only`,children:n(`scheduledTasks.name`)}),(0,J.jsx)(c,{maxLength:120,onChange:e=>{o(e.currentTarget.value)},placeholder:n(`scheduledTasks.namePlaceholder`),value:a})]}),(0,J.jsxs)(`div`,{className:`scheduled-task-prompt`,children:[(0,J.jsx)(`h3`,{children:n(`scheduledTasks.prompt`)}),(0,J.jsx)(ie,{...e.composerProps,captureSubmitVisible:!1,composerRef:i,composerDraftId:`scheduled:${e.task?.id??`new`}`,footerVisible:!1,initialDraft:v,...e.task===void 0?{}:{initialEngine:e.task.turnOptions.engineOptions?.engine??`codex`},onCaptureSubmission:O,onFastModeChange:e.composerProps.onFastModeChange,onInputStateChange:_,onSettingsChange:(t,n,r)=>(f(t),e.composerProps.onSettingsChange(t,n,r)),onSubmissionStateChange:h,settings:d})]}),(0,J.jsxs)(`section`,{className:`scheduled-task-section`,children:[(0,J.jsxs)(`h3`,{children:[(0,J.jsx)(ee,{"aria-hidden":`true`}),n(`scheduledTasks.details`)]}),(0,J.jsxs)(`div`,{className:`scheduled-task-fields`,children:[(0,J.jsxs)(`label`,{children:[(0,J.jsx)(`span`,{children:n(`scheduledTasks.project`)}),(0,J.jsxs)(`select`,{onChange:t=>{e.onProjectChange(t.currentTarget.value)},value:e.projectId,children:[(0,J.jsx)(`option`,{value:l,children:n(`shell.temporaryTask`)}),e.projects.map(e=>(0,J.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]}),(0,J.jsxs)(`div`,{className:`scheduled-task-info`,children:[(0,J.jsx)(`span`,{children:n(`scheduledTasks.runIn`)}),(0,J.jsx)(`span`,{children:n(`scheduledTasks.newChat`)})]})]})]}),(0,J.jsxs)(`section`,{className:`scheduled-task-section`,children:[(0,J.jsxs)(`h3`,{children:[(0,J.jsx)(y,{"aria-hidden":`true`}),n(`scheduledTasks.frequency`)]}),(0,J.jsx)(`div`,{className:`scheduled-task-fields`,children:(0,J.jsx)(he,{onChange:u,schedule:s})}),(0,J.jsx)(ge,{schedule:s,timezone:r,...S,error:C})]}),e.task===void 0?null:(0,J.jsx)(J.Fragment,{children:(0,J.jsxs)(`div`,{className:`scheduled-task-runs`,children:[(0,J.jsxs)(`h3`,{children:[(0,J.jsx)(D,{"aria-hidden":`true`}),n(`scheduledTasks.lastRun`),(0,J.jsx)(`span`,{children:e.task.runs.length})]}),e.task.runs.length===0?(0,J.jsx)(`p`,{children:n(`scheduledTasks.noRuns`)}):e.task.runs.toReversed().map(r=>(0,J.jsxs)(`div`,{className:`scheduled-task-run`,"data-status":r.status,children:[(0,J.jsx)(`span`,{children:n(`scheduledTasks.${r.status}`)}),(0,J.jsx)(`time`,{children:q(r.startedAtUnixMs,t.resolvedLanguage)}),r.status===`unknown`||r.status===`cleanup_pending`?(0,J.jsx)(`span`,{className:`scheduled-task-run__error`,children:n(r.status===`unknown`?`scheduledTasks.unknownHint`:`scheduledTasks.cleanupHint`)}):null,r.taskId===null?(0,J.jsx)(`span`,{className:`scheduled-task-run__error`,children:r.error}):(0,J.jsx)(p,{"aria-label":r.taskId,disabled:e.openingRun,onClick:()=>{e.task!==void 0&&r.taskId!==null&&e.onOpenRun(e.task.projectId,r.taskId)},size:`icon-sm`,variant:`ghost`,children:(0,J.jsx)(E,{"aria-hidden":`true`})})]},r.id))]})})]})]})}function be({task:e,onDelete:t,onEnabledChange:n}){let{t:r}=T(`workbench`),[i,a]=(0,F.useState)(!1),[o,s]=(0,F.useState)(!1),c=async()=>{s(!0);try{await t(e.id),a(!1)}catch{}finally{s(!1)}};return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(d,{modal:!1,children:[(0,J.jsx)(g,{asChild:!0,children:(0,J.jsx)(p,{"aria-label":r(`scheduledTasks.taskActions`,{name:e.name}),className:`scheduled-task-row__menu`,size:`icon-toolbar`,variant:`ghost`,children:(0,J.jsx)(C,{"aria-hidden":`true`})})}),(0,J.jsxs)(f,{align:`end`,sideOffset:4,className:`scheduled-task-menu`,children:[(0,J.jsxs)(m,{disabled:!e.enabled&&e.runs.some(e=>e.status===`running`||e.status===`unknown`||e.status===`cleanup_pending`),"aria-label":r(e.enabled?`scheduledTasks.disableTask`:`scheduledTasks.enableTask`,{name:e.name}),onSelect:()=>{n(e.id,!e.enabled)},children:[e.enabled?(0,J.jsx)(ae,{"aria-hidden":`true`}):(0,J.jsx)(A,{"aria-hidden":`true`}),r(e.enabled?`scheduledTasks.disable`:`scheduledTasks.enable`)]}),(0,J.jsx)(u,{}),(0,J.jsxs)(m,{className:`text-danger`,disabled:e.lastRunStatus===`running`||e.runs.some(e=>e.status===`cleanup_pending`),onSelect:()=>{a(!0)},children:[(0,J.jsx)(w,{"aria-hidden":`true`}),r(`scheduledTasks.delete`)]})]})]}),i?(0,J.jsx)(O,{title:r(`sidebar.deleteTaskTitle`),description:r(`sidebar.deleteTaskDescription`,{task:e.name}),confirmLabel:r(`scheduledTasks.deleteConfirm`),isPending:o,onClose:()=>{a(!1)},onConfirm:()=>{c()}}):null]})}function xe(e){return e.lastRunStatus===`unknown`?`failed`:e.lastRunStatus===`cleanup_pending`?`running`:e.enabled?e.lastRunStatus===`failed`?`failed`:e.lastRunStatus===`running`?`running`:`scheduled`:`paused`}function Se({activeId:e,loading:t,onCreate:n,onDelete:r,onEnabledChange:i,onSelect:a,query:o,setQuery:s,tasks:l}){let{i18n:u,t:d}=T(`workbench`),[f,m]=(0,F.useState)(`all`),h=l.filter(e=>f===`all`||e.enabled===(f===`enabled`));return(0,J.jsxs)(`aside`,{className:`scheduled-task-list`,children:[(0,J.jsxs)(`div`,{className:`scheduled-task-list__header`,children:[(0,J.jsxs)(`div`,{children:[(0,J.jsx)(`h2`,{children:d(`scheduledTasks.title`)}),(0,J.jsx)(`span`,{children:l.length})]}),(0,J.jsx)(p,{"aria-label":d(`scheduledTasks.create`),onClick:n,size:`icon-toolbar`,type:`button`,children:(0,J.jsx)(x,{"aria-hidden":`true`})})]}),(0,J.jsx)(`div`,{className:`scheduled-task-filters`,role:`group`,"aria-label":d(`scheduledTasks.filter`),children:[`all`,`enabled`,`disabled`].map(e=>(0,J.jsx)(`button`,{"aria-pressed":f===e,onClick:()=>{m(e)},type:`button`,children:d(`scheduledTasks.${e}`)},e))}),(0,J.jsxs)(`div`,{className:`scheduled-task-search`,children:[(0,J.jsx)(b,{"aria-hidden":`true`}),(0,J.jsx)(c,{"aria-label":d(`scheduledTasks.search`),onChange:e=>{s(e.currentTarget.value)},placeholder:d(`scheduledTasks.search`),type:`search`,value:o})]}),(0,J.jsx)(`div`,{className:`scheduled-task-list__items`,children:t?(0,J.jsx)(`div`,{className:`scheduled-task-list__empty`,role:`status`,children:(0,J.jsx)(_,{"aria-hidden":`true`})}):h.length===0?(0,J.jsxs)(`div`,{className:`scheduled-task-list__empty`,children:[(0,J.jsx)(y,{"aria-hidden":`true`}),(0,J.jsx)(`span`,{children:d(l.length===0&&o===``?`scheduledTasks.empty`:`scheduledTasks.noMatches`)})]}):h.map(t=>{let n=xe(t);return(0,J.jsxs)(`div`,{className:`scheduled-task-row`,"data-active":e===t.id?`true`:void 0,"data-tone":n,children:[(0,J.jsx)(`span`,{className:`scheduled-task-row__rail`}),(0,J.jsxs)(`button`,{"aria-current":e===t.id?`page`:void 0,"aria-label":t.name,className:`scheduled-task-row__content`,onClick:()=>{a(t)},type:`button`,children:[(0,J.jsx)(`strong`,{children:t.name}),(0,J.jsxs)(`span`,{children:[d(`scheduledTasks.${H(t.schedule).preset}`),` ·`,` `,t.projectName]}),(0,J.jsxs)(`span`,{className:`scheduled-task-row__time`,children:[n===`failed`?(0,J.jsx)(v,{"aria-hidden":`true`}):(0,J.jsx)(_,{"aria-hidden":`true`}),t.lastRunStatus===`unknown`||t.lastRunStatus===`cleanup_pending`?d(`scheduledTasks.${t.lastRunStatus}`):t.enabled?q(t.nextRunAtUnixMs,u.resolvedLanguage):d(`scheduledTasks.disabled`)]})]}),(0,J.jsx)(be,{task:t,onDelete:r,onEnabledChange:i})]},t.id)})})]})}var Ce=[`scheduled-tasks`],we=[],$=()=>void 0;function Te({context:e,projectId:t,temporary:n}){let r=o(),s=(0,F.useCallback)(t=>e.client.previewScheduledTask(t),[e.client]),[c,l]=(0,F.useState)(),[u,d]=(0,F.useState)(!1),[f,p]=(0,F.useState)(``),m=a(te(e.client,r)),g=m.data?.data??we,_=u?void 0:g.find(e=>e.id===c),v=(0,F.useMemo)(()=>{let e=f.trim().toLocaleLowerCase();return e===``?g:g.filter(t=>`${t.name}\n${t.projectName}`.toLocaleLowerCase().includes(e))},[f,g]),b=e=>r.setQueryData(Ce,e),x=i({meta:{actionNotification:!1},mutationFn:({taskId:t,...n})=>t===void 0?e.client.createScheduledTask(n):e.client.updateScheduledTask(t,n),onSuccess:e=>{l(e.task.id),d(!1),b(e.tasks)}}),S=i({mutationFn:t=>e.client.deleteScheduledTask(t),onSuccess:(e,t)=>{l(e=>e===t?void 0:e),b(e.tasks)}}),C=i({mutationFn:({enabled:t,taskId:n})=>e.client.setScheduledTaskEnabled(n,t),onSuccess:e=>{b(e.tasks)}}),w=i({mutationFn:t=>e.client.runScheduledTaskNow(t),onSuccess:e=>b(e.tasks)}),T=i({meta:{actionNotification:!1},mutationFn:({runProjectId:t,taskId:n})=>e.client.readNavigableTask(t,n),onError:k,onSuccess:(t,{runProjectId:n,taskId:i})=>{if(t.task===null){k(e.t(`scheduledTasks.runUnavailable`));return}r.setQueryData([`projects`,n,`tasks`,i],t.task),!h({projectId:n,taskId:i})&&e.navigate(n===`temporary`?{params:{taskId:i},to:`/temporary/t/$taskId`}:{params:{projectId:n,taskId:i},to:`/p/$projectId/t/$taskId`})}}),E=t=>void e.navigate(t===`temporary`?{to:`/temporary/scheduled`}:{params:{projectId:t},to:`/p/$projectId/scheduled`}),D={capabilities:e.capabilities,client:e.client,fastModeAvailable:e.fastModeAvailable,fastModeDefault:e.fastModeDefault,followUpBehavior:e.globalSettings?.followUpBehavior??`queue`,models:e.models,modelsError:e.modelsQuery.error,modelsPending:e.modelsQuery.isPending,onFastModeChange:$,onOpenProjectPath:e.openProjectFolder,onProjectRootChange:e.setSelectedRootId,onRequestNotificationPermission:$,onSettingsChange:$,onTaskStarted:$,projectId:t,projectName:e.projectName,projectPath:e.projectPath,projectPathOpenDisabled:e.projectFolderOpenDisabled,projectRoots:e.projectRoots,projectToolsEnabled:!n,selectedProjectRootId:e.selectedRootId??``,settings:e.draftSettings,skills:e.skillsQuery.data?.data??[]};return(0,J.jsxs)(`div`,{className:`scheduled-tasks`,children:[(0,J.jsx)(Se,{..._===void 0?{}:{activeId:_.id},loading:m.isPending,onDelete:S.mutateAsync,onCreate:()=>{d(!0),l(void 0)},onEnabledChange:(e,t)=>{C.mutate({enabled:t,taskId:e})},onSelect:e=>{d(!1),l(e.id),e.projectId!==t&&E(e.projectId)},query:f,setQuery:p,tasks:v}),u||_!==void 0?(0,J.jsx)(ye,{composerProps:D,openingRun:T.isPending,onOpenRun:(e,t)=>{T.isPending||T.mutate({runProjectId:e,taskId:t})},onProjectChange:E,onPreview:s,onRunNow:e=>w.mutateAsync(e).then($),onSave:(e,t)=>x.mutateAsync({...t,...e===void 0?{}:{taskId:e}}).then($),projectId:t,projects:e.projects,skills:e.skillsQuery.data?.data??[],..._===void 0?{}:{task:_}},_?.id??`new:${t}`):(0,J.jsxs)(`div`,{className:`scheduled-task-welcome`,children:[(0,J.jsx)(y,{"aria-hidden":`true`}),(0,J.jsx)(`h2`,{children:e.t(`scheduledTasks.welcome`)}),(0,J.jsx)(`p`,{children:e.t(`scheduledTasks.welcomeHint`)}),(0,J.jsx)(`span`,{children:e.t(`scheduledTasks.selectTask`)})]})]})}export{Te as ScheduledTasksContainer,B as n,z as t};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.skills-market{background:var(--ui-color-content);min-height:0;color:var(--ui-color-text);overflow:auto}.extension-center__header{z-index:20;border-bottom:1px solid var(--ui-color-separator);background:var(--ui-color-content);justify-content:space-between;align-items:center;gap:24px;min-height:82px;padding:14px clamp(24px,4vw,56px);display:flex;position:sticky;top:0}.extension-center__identity{align-items:center;min-width:12rem;display:flex}.skills-market-eyebrow{color:var(--ui-color-text-subtle);font-family:var(--ui-font-family-mono);font-size:var(--ui-font-size-caption);margin-bottom:5px;display:block}.extension-center__header h2{font-size:var(--ui-font-size-title);font-weight:var(--ui-font-weight-semibold);line-height:var(--ui-line-height-tight)}.skills-market-tabs{border:1px solid var(--ui-color-separator-strong);border-radius:var(--ui-radius-control);width:min(600px,58vw);height:36px;padding:2px;display:flex}.skills-market-tabs button{min-width:0;color:var(--ui-color-text-muted);cursor:pointer;font-size:var(--ui-font-size-label);border-radius:4px;outline:none;flex:1;justify-content:center;align-items:center;gap:6px;display:flex}.skills-market-tabs button svg{flex:0 0 14px;width:14px;height:14px}.skills-market-tabs button[aria-selected=true]{background:var(--ui-color-text);color:var(--ui-color-raised)}.skills-market-tabs button:focus-visible{box-shadow:var(--ui-shadow-focus)}.skills-market-pane{flex-direction:column;gap:18px;width:min(1040px,100% - 48px);min-height:320px;margin:0 auto;padding:22px 0 48px;display:flex}.skills-market-toolbar{justify-content:space-between;align-items:center;gap:12px;min-height:36px;display:flex}.skills-market-search{width:min(420px,50%);position:relative}.skills-market-search>svg{z-index:1;width:14px;height:14px;color:var(--ui-color-text-subtle);pointer-events:none;position:absolute;top:10px;left:10px}.skills-market-search input{width:100%;padding-left:32px}.skills-installed-groups{gap:18px;display:grid}.skills-installed-group{border:1px solid var(--ui-color-separator);border-radius:var(--ui-radius-surface);overflow:hidden}.skills-installed-group>header{background:var(--ui-color-control);height:34px;font-size:var(--ui-font-size-label);justify-content:space-between;align-items:center;padding:0 12px;display:flex}.skills-installed-group>header span{color:var(--ui-color-text-subtle);font-family:var(--ui-font-family-mono)}.skills-installed-row{border-top:1px solid var(--ui-color-separator);min-height:62px;transition:background var(--ui-motion-fast);align-items:center;gap:12px;padding-right:12px;display:flex}.skills-installed-row:first-child{border-top:0}.skills-installed-row:hover{background:var(--ui-color-control)}.skills-installed-row__open,.skills-mcp-row__content{flex:1;align-items:center;gap:12px;min-width:0;min-height:61px;padding:9px 0 9px 12px;display:flex}.skills-installed-row__open{color:inherit;cursor:pointer;text-align:left;outline:none}.skills-installed-row__open:focus-visible{box-shadow:inset var(--ui-shadow-focus)}.skills-installed-row__folder{width:15px;height:15px;color:var(--ui-color-text-subtle);flex:0 0 15px}.skills-mcp-status{color:var(--ui-color-text-subtle);font-size:var(--ui-font-size-label);display:block}.skills-mcp-status[data-enabled=true]{color:var(--ui-color-task-completed)}.skills-market-glyph{border:1px solid var(--ui-color-separator-strong);border-radius:var(--ui-radius-control);background:var(--ui-color-raised);width:34px;height:34px;color:var(--ui-color-accent);flex:0 0 34px;place-items:center;display:grid}.skills-market-glyph svg{width:16px;height:16px}.skills-market-glyph[data-tone=mcp]{color:#2563eb}.skills-market-glyph[data-tone=plugins]{color:#0f766e}.skills-market-glyph[data-tone=marketplace]{color:#b45309}.skills-version{border-radius:var(--ui-radius-pill);background:var(--ui-color-control);color:var(--ui-color-text-muted);font-family:var(--ui-font-family-mono);font-size:var(--ui-font-size-caption);padding:3px 8px}.skills-switch{border-radius:var(--ui-radius-pill);background:var(--ui-color-separator-strong);cursor:pointer;outline:none;flex:0 0 32px;width:32px;height:18px;position:relative}.skills-switch[data-state=checked]{background:var(--ui-color-accent)}.skills-switch:focus-visible{box-shadow:var(--ui-shadow-focus)}.skills-switch__thumb{width:14px;height:14px;box-shadow:var(--ui-shadow-control);transition:transform var(--ui-motion-fast) var(--ui-ease-standard);background:#fff;border-radius:50%;display:block;transform:translate(2px)}.skills-switch__thumb[data-state=checked]{transform:translate(16px)}.skills-market-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.skills-market-card{border:1px solid var(--ui-color-separator);border-radius:var(--ui-radius-surface);background:var(--ui-color-panel);min-width:0;min-height:158px;color:inherit;cursor:pointer;transition:border-color var(--ui-motion-fast), background var(--ui-motion-fast);outline:none;flex-direction:column;gap:12px;padding:14px;display:flex}.skills-market-card:hover{border-color:var(--ui-color-separator-strong);background:var(--ui-color-control)}.skills-market-card:focus-visible{box-shadow:var(--ui-shadow-focus)}.skills-market-card__topline,.skills-market-card__footer{align-items:center;gap:9px;display:flex}.skills-market-card__summary{min-height:38px;color:var(--ui-color-text-muted);font-size:var(--ui-font-size-label);line-height:var(--ui-line-height-relaxed);text-align:left;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.skills-market-card__footer{color:var(--ui-color-text-subtle);font-family:var(--ui-font-family-mono);font-size:var(--ui-font-size-caption);margin-top:auto}.skills-market-card__footer span{align-items:center;gap:4px;display:inline-flex}.skills-market-card__footer svg{width:12px;height:12px}.third-party-skill-sheet .skills-market-detail__header{padding-right:48px}.third-party-skill-sheet .third-party-skill-sheet__body{flex:1;min-height:0;max-height:none}.third-party-skill-sheet .third-party-skill-sheet__footer{flex-direction:column;align-items:stretch;gap:8px}.third-party-skill-sheet__market-link{align-self:flex-start}.third-party-skill-sheet__actions{grid-template-columns:minmax(0,1.55fr) minmax(120px,1fr);gap:8px;display:grid}.third-party-skill-sheet__actions>button{width:100%}.third-party-skill-sheet__actions .skills-market-project-target{min-width:0}.third-party-skill-sheet__actions .skills-market-project-target>button{flex:1;min-width:0}.skills-market-state{min-height:260px;color:var(--ui-color-text-muted);font-size:var(--ui-font-size-body-small);place-items:center;display:grid}.skills-market-detail__header{border-bottom:1px solid var(--ui-color-separator);flex-direction:row;align-items:center;gap:12px;min-height:88px;padding:18px 20px;display:flex}.skills-market-detail__mark{border-radius:var(--ui-radius-control);background:var(--ui-color-accent-soft);width:42px;height:42px;color:var(--ui-color-accent);place-items:center;display:grid}.skills-market-scan{color:var(--ui-color-task-completed);font-size:var(--ui-font-size-label);align-items:center;gap:5px;display:inline-flex}.skills-market-detail__facts{border-bottom:1px solid var(--ui-color-separator);min-height:36px;color:var(--ui-color-text-muted);font-family:var(--ui-font-family-mono);font-size:var(--ui-font-size-caption);align-items:center;gap:18px;padding:0 20px;display:flex}.skills-market-detail__body{min-height:320px;max-height:min(58vh,620px);padding:20px;overflow:auto}.skills-market-readme{overflow-wrap:anywhere;white-space:pre-wrap;font-family:var(--ui-font-family-mono);font-size:var(--ui-font-size-label);line-height:var(--ui-line-height-relaxed);margin:0}.skills-market-detail__footer{border-top:1px solid var(--ui-color-separator);align-items:center;padding:14px 20px}.skills-market-project-target{align-items:center;gap:8px;display:flex}.skills-market-project-target [role=combobox]{border-color:var(--ui-color-separator);background:var(--ui-color-control);cursor:pointer;width:120px;min-width:0}@media (width<=960px){.skills-market-grid{grid-template-columns:1fr}}
|
|
Binary file
|
|
Binary file
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/installed-skills-pane-CqWvZCqX.js","assets/rolldown-runtime-B0Z9INg1.js","assets/react-runtime-CMZHB3u8.js","assets/initial-deps-BeVJyoJH.js","assets/initial-deps-CG4ykI_P.js","assets/initial-deps-D0opk7c-.js","assets/initial-deps-DNAUCF1H.js","assets/initial-deps-DZ-sH4cr.js","assets/initial-deps-DG--jjIA.js","assets/initial-deps-CqwWvUnY.js","assets/initial-deps-CRaxZAOH.js","assets/initial-deps-n_ZBS3cC.js","assets/scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~project-source~gjk7lcx5-ClgveiMa.js","assets/initial-deps-DFOart6r.js","assets/dist-C5hT0FeX.js","assets/index-WWY-Ngf-.js","assets/index-BPQs_vk8.css","assets/mcp-management-pane-CRnxzNPO.js","assets/server-DkIJGjQG.js","assets/official-plugins-pane-CV6nzUMx.js","assets/prompt-input-CJK7fW5b.js","assets/external-link-DTvUbh5p.js","assets/official-plugins-pane-BCxHJLaj.css","assets/third-party-marketplace-pane-D-0qL80m.js","assets/download-DSulXOCZ.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./initial-deps-CqwWvUnY.js";import{i as n,t as r}from"./react-runtime-CMZHB3u8.js";import{G as i,Z as a,tt as o}from"./initial-deps-CRaxZAOH.js";import{t as s}from"./server-DkIJGjQG.js";import"./index-WWY-Ngf-.js";var c=a(`badge-check`,[[`path`,{d:`M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z`,key:`3c2336`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),l=a(`store`,[[`path`,{d:`M15 21v-5a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v5`,key:`slp6dd`}],[`path`,{d:`M17.774 10.31a1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.451 0 1.12 1.12 0 0 0-1.548 0 2.5 2.5 0 0 1-3.452 0 1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.77-3.248l2.889-4.184A2 2 0 0 1 7 2h10a2 2 0 0 1 1.653.873l2.895 4.192a2.5 2.5 0 0 1-3.774 3.244`,key:`o0xfot`}],[`path`,{d:`M4 10.95V19a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8.05`,key:`wn3emo`}]]),u=e(n(),1),d=r(),f=[{icon:i,value:`skills`},{icon:s,value:`mcp`},{icon:c,value:`plugins`},{icon:l,value:`marketplace`}];function p(e){return f.some(t=>t.value===e)?e:`skills`}function m({active:e,onSelect:t}){let{t:n}=o(`workbench`);return(0,d.jsx)(`div`,{"aria-label":n(`skillsMarket.sectionsLabel`),className:`skills-market-tabs`,role:`tablist`,children:f.map(({icon:r,value:i})=>(0,d.jsxs)(`button`,{"aria-selected":e===i,onClick:()=>{t(i)},role:`tab`,type:`button`,children:[(0,d.jsx)(r,{"aria-hidden":`true`}),n(`skillsMarket.tabs.${i}`)]},i))})}var h=(0,u.lazy)(()=>t(()=>import(`./installed-skills-pane-CqWvZCqX.js`).then(e=>({default:e.InstalledSkillsPane})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]))),g=(0,u.lazy)(()=>t(()=>import(`./mcp-management-pane-CRnxzNPO.js`).then(e=>({default:e.McpManagementPane})),__vite__mapDeps([17,2,1,3,4,5,6,7,8,9,10,11,12,13,18,14,15,16]))),_=(0,u.lazy)(()=>t(()=>import(`./official-plugins-pane-CV6nzUMx.js`).then(e=>({default:e.OfficialPluginsPane})),__vite__mapDeps([19,1,2,3,4,5,6,7,8,9,10,11,12,13,20,15,16,21,22]))),v=(0,u.lazy)(()=>t(()=>import(`./third-party-marketplace-pane-D-0qL80m.js`).then(e=>({default:e.ThirdPartyMarketplacePane})),__vite__mapDeps([23,1,2,3,4,5,6,7,8,9,10,11,12,13,20,15,16,24,21])));function y({onSectionChange:e,projectId:t,rootPath:n,section:r}){let{t:i}=o(`workbench`),[a,s]=(0,u.useState)(()=>p(r));return(0,u.useEffect)(()=>{s(p(r))},[r]),(0,d.jsxs)(`section`,{"aria-label":i(`skillsMarket.title`),className:`skills-market extension-center`,children:[(0,d.jsxs)(`header`,{className:`extension-center__header`,children:[(0,d.jsx)(`div`,{className:`extension-center__identity`,children:(0,d.jsxs)(`div`,{children:[(0,d.jsx)(`span`,{className:`skills-market-eyebrow`,children:`CODEX EXTENSIONS`}),(0,d.jsx)(`h2`,{children:i(`skillsMarket.title`)})]})}),(0,d.jsx)(m,{active:a,onSelect:t=>{s(t),e?.(t)}})]}),(0,d.jsxs)(u.Suspense,{fallback:(0,d.jsx)(`div`,{className:`skills-market-state`,role:`status`,children:i(`skillsMarket.loadingExtension`)}),children:[a===`skills`?(0,d.jsx)(h,{}):null,a===`mcp`?(0,d.jsx)(g,{}):null,a===`plugins`?(0,d.jsx)(_,{}):null,a===`marketplace`?(0,d.jsx)(v,{...t===void 0?{}:{projectId:t},...n===void 0?{}:{rootPath:n}}):null]})]})}export{y as SkillsMarketContainer};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./react-runtime-CMZHB3u8.js";import{gt as t,ht as n,mt as r}from"./initial-deps-DG--jjIA.js";import{J as i,K as a,q as o}from"./initial-deps-CRaxZAOH.js";import{t as s}from"./arrow-down-BiCRjuX3.js";var c=e(),l=[{direction:`up`,icon:a,key:`↑`},{direction:`down`,icon:s,key:`↓`},{direction:`left`,icon:i,key:`←`},{direction:`right`,icon:o,key:`→`}];function u({labels:e,limit:i,onSplit:a}){let o=typeof navigator<`u`&&/mac/i.test(navigator.platform);return(0,c.jsxs)(r,{onCloseAutoFocus:e=>{e.preventDefault()},children:[i?(0,c.jsx)(t,{children:e.limit}):null,l.map(({direction:t,icon:r,key:s})=>(0,c.jsxs)(n,{disabled:i,onSelect:()=>{a(t)},children:[(0,c.jsx)(r,{"aria-hidden":`true`,className:`size-3.5`}),e[t],(0,c.jsxs)(`span`,{"aria-hidden":`true`,className:`ml-auto pl-4 text-caption text-muted-foreground`,children:[o?`⌘ ⌥`:`Ctrl Alt`,` `,s]})]},t))]})}export{u as default};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,t as n}from"./react-runtime-CMZHB3u8.js";import{i as r,n as i,s as a,u as o}from"./initial-deps-BeVJyoJH.js";import{A as s,B as c,D as l,E as u,H as d,L as f,O as p,R as m,T as h,V as g,k as _,kt as v,z as y}from"./initial-deps-DG--jjIA.js";import{C as b,G as x,Z as S,f as C,tt as w}from"./initial-deps-CRaxZAOH.js";import{b as T}from"./prompt-input-CJK7fW5b.js";import{t as E}from"./download-DSulXOCZ.js";import{t as D}from"./external-link-DTvUbh5p.js";import{rt as O}from"./index-WWY-Ngf-.js";var k=S(`shield-check`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),A=S(`star`,[[`path`,{d:`M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z`,key:`r04s7s`}]]),j=e(t(),1),M=n();function N(e){try{let t=new URL(e);t.protocol===`https:`&&window.open(t.href,`_blank`,`noopener,noreferrer`)}catch{}}function P({client:e,currentProjectId:t,currentRootPath:n,installedSkills:r,installingScope:i,onClose:o,onInstall:d,projects:x,skill:S}){let{t:C}=w(`workbench`),O=x.some(e=>e.id===t)?t:x[0]?.id,[A,P]=(0,j.useState)(O),F=x.find(e=>e.id===A),I=F!==void 0&&F.id===t&&n!==void 0&&F.roots.some(e=>e.path===n)?n:F?.roots[0]?.path,L=a({queryFn:()=>e.getClawhubSkill(S.owner,S.slug),queryKey:[`extensions`,`marketplace`,`detail`,S.owner,S.slug],staleTime:3e5}),R=L.data,z=e=>r.find(t=>t.marketplace?.owner===S.owner&&t.marketplace.slug===S.slug&&(e===`user`?t.scope===`user`:t.scope===`repo`&&t.projectId===A))?.marketplace?.installedVersion,B=e=>{let t=z(e);return t===S.latestVersion?C(`skillsMarket.current`):C(t===void 0?e===`user`?`skillsMarket.installGlobal`:`skillsMarket.installProject`:`skillsMarket.update`)},V=i!==null,H=R?.scanStatus!==`clean`;return(0,M.jsx)(h,{open:!0,onOpenChange:e=>{e||o()},children:(0,M.jsxs)(u,{className:`skills-market-detail third-party-skill-sheet`,closeLabel:C(`skillsMarket.closeSkillDetails`),children:[(0,M.jsxs)(_,{className:`skills-market-detail__header`,children:[(0,M.jsx)(`div`,{className:`skills-market-detail__mark`,"aria-hidden":`true`,children:(0,M.jsx)(T,{})}),(0,M.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,M.jsx)(s,{className:`truncate text-title`,children:S.displayName}),(0,M.jsxs)(l,{children:[`@`,S.owner,` / `,S.slug]})]}),R===void 0?null:(0,M.jsxs)(`span`,{className:`skills-market-scan`,children:[(0,M.jsx)(k,{"aria-hidden":`true`}),C(`skillsMarket.codexCompatible`)]})]}),(0,M.jsxs)(`div`,{className:`skills-market-detail__facts`,children:[(0,M.jsx)(`span`,{children:C(`skillsMarket.version`,{version:S.latestVersion})}),(0,M.jsx)(`span`,{children:C(`skillsMarket.downloads`,{count:S.downloads})}),(0,M.jsx)(`span`,{children:C(`skillsMarket.stars`,{count:S.stars})}),R===void 0?null:(0,M.jsx)(`span`,{children:C(`skillsMarket.scan`,{status:R.scanStatus})})]}),(0,M.jsx)(`div`,{className:`skills-market-detail__body third-party-skill-sheet__body`,children:L.isPending?(0,M.jsx)(`div`,{className:`skills-market-state`,role:`status`,children:C(`skillsMarket.loadingDetail`)}):L.error===null?(0,M.jsx)(`pre`,{className:`skills-market-readme`,children:R?.readme}):(0,M.jsx)(`div`,{className:`skills-market-state`,role:`alert`,children:C(`skillsMarket.loadError`)})}),(0,M.jsxs)(p,{className:`skills-market-detail__footer third-party-skill-sheet__footer`,children:[(0,M.jsxs)(v,{className:`third-party-skill-sheet__market-link`,onClick:()=>{N(S.canonicalUrl)},type:`button`,variant:`ghost`,children:[(0,M.jsx)(D,{"aria-hidden":`true`}),C(`skillsMarket.openMarketplace`)]}),(0,M.jsxs)(`div`,{className:`third-party-skill-sheet__actions`,children:[F===void 0||I===void 0?null:(0,M.jsxs)(`div`,{className:`skills-market-project-target`,children:[(0,M.jsxs)(f,{onValueChange:P,value:F.id,children:[(0,M.jsx)(c,{"aria-label":C(`skillsMarket.projectTarget`),size:`sm`,title:F.name,children:(0,M.jsx)(g,{})}),(0,M.jsx)(m,{align:`end`,position:`popper`,children:x.map(e=>(0,M.jsx)(y,{value:e.id,children:e.name},e.id))})]}),(0,M.jsxs)(v,{disabled:H||V||z(`project`)===S.latestVersion,onClick:()=>{d(S,`project`,{projectId:F.id,rootPath:I})},type:`button`,variant:`outline`,children:[i===`project`?(0,M.jsx)(b,{"aria-hidden":`true`,className:`animate-spin`,"data-icon":`loading`}):(0,M.jsx)(E,{"aria-hidden":`true`}),B(`project`)]})]}),(0,M.jsxs)(v,{disabled:H||V||z(`user`)===S.latestVersion,onClick:()=>{d(S,`user`,{})},type:`button`,children:[i===`user`?(0,M.jsx)(b,{"aria-hidden":`true`,className:`animate-spin`,"data-icon":`loading`}):(0,M.jsx)(E,{"aria-hidden":`true`}),B(`user`)]})]})]})]})})}function F(e){let[t,n]=(0,j.useState)(e);return(0,j.useEffect)(()=>{let t=window.setTimeout(()=>{n(e)},250);return()=>{window.clearTimeout(t)}},[e]),t}function I({skill:e,onOpen:t}){return(0,M.jsxs)(`button`,{className:`skills-market-card`,onClick:()=>{t(e)},type:`button`,children:[(0,M.jsxs)(`span`,{className:`skills-market-card__topline`,children:[(0,M.jsx)(`span`,{className:`skills-market-glyph`,"data-tone":`marketplace`,"aria-hidden":`true`,children:(0,M.jsx)(x,{})}),(0,M.jsxs)(`span`,{className:`min-w-0 flex-1 text-left`,children:[(0,M.jsx)(`strong`,{className:`block truncate text-body-small`,children:e.displayName}),(0,M.jsxs)(`span`,{className:`block truncate text-label text-muted-foreground`,children:[`@`,e.owner]})]}),(0,M.jsxs)(`span`,{className:`skills-version`,children:[`v`,e.latestVersion]})]}),(0,M.jsx)(`span`,{className:`skills-market-card__summary`,children:e.summary}),(0,M.jsxs)(`span`,{className:`skills-market-card__footer`,children:[(0,M.jsxs)(`span`,{children:[(0,M.jsx)(E,{"aria-hidden":`true`}),e.downloads.toLocaleString()]}),(0,M.jsxs)(`span`,{children:[(0,M.jsx)(A,{"aria-hidden":`true`}),e.stars.toLocaleString()]})]})]})}function L({projectId:e,rootPath:t}){let{t:n}=w(`workbench`),{client:s,projects:l}=O(),u=o(),[p,h]=(0,j.useState)(``),[_,b]=(0,j.useState)(`recommended`),[x,S]=(0,j.useState)(null),T=F(p.trim()),E=a({queryFn:()=>s.listInstalledSkills(),queryKey:[`extensions`,`skills`]}),D=i({getNextPageParam:e=>e.nextCursor??void 0,initialPageParam:null,queryFn:({pageParam:e})=>s.listClawhubSkills(T,e,_),queryKey:[`extensions`,`marketplace`,`clawhub`,T,_],staleTime:12e4}),k=r({meta:{actionNotification:{successMessage:n(`skillsMarket.installComplete`)}},mutationFn:({projectId:e,rootPath:t,scope:n,skill:r})=>s.installClawhubSkill(r.owner,r.slug,n,e,t),onSuccess:e=>{S(null),u.setQueryData([`extensions`,`skills`],e.installedSkills)}}),A=D.data?.pages.flatMap(e=>e.items)??[];return(0,M.jsxs)(`div`,{className:`skills-market-pane`,role:`tabpanel`,children:[(0,M.jsxs)(`div`,{className:`skills-market-toolbar`,children:[(0,M.jsxs)(`div`,{className:`skills-market-search`,children:[(0,M.jsx)(C,{"aria-hidden":`true`}),(0,M.jsx)(d,{"aria-label":n(`skillsMarket.search`),onChange:e=>{h(e.currentTarget.value)},placeholder:n(`skillsMarket.search`),value:p})]}),(0,M.jsxs)(f,{onValueChange:b,value:_,children:[(0,M.jsx)(c,{"aria-label":n(`skillsMarket.sort`),children:(0,M.jsx)(g,{})}),(0,M.jsxs)(m,{children:[(0,M.jsx)(y,{value:`recommended`,children:n(`skillsMarket.sortRecommended`)}),(0,M.jsx)(y,{value:`downloads`,children:n(`skillsMarket.sortDownloads`)}),(0,M.jsx)(y,{value:`updated`,children:n(`skillsMarket.sortUpdated`)})]})]})]}),D.isPending?(0,M.jsx)(`div`,{className:`skills-market-state`,role:`status`,children:n(`skillsMarket.loadingMarket`)}):D.error===null?A.length===0?(0,M.jsx)(`div`,{className:`skills-market-state`,children:n(`skillsMarket.emptyMarket`)}):(0,M.jsx)(`div`,{className:`skills-market-grid`,children:A.map(e=>(0,M.jsx)(I,{onOpen:S,skill:e},e.id))}):(0,M.jsx)(`div`,{className:`skills-market-state`,role:`alert`,children:n(`skillsMarket.marketError`)}),D.hasNextPage?(0,M.jsx)(v,{className:`mx-auto`,disabled:D.isFetchingNextPage,onClick:()=>void D.fetchNextPage(),type:`button`,variant:`outline`,children:n(D.isFetchingNextPage?`skillsMarket.loading`:`skillsMarket.loadMore`)}):null,x===null?null:(0,M.jsx)(P,{client:s,currentProjectId:e,currentRootPath:t,installedSkills:E.data?.data??[],installingScope:k.isPending?k.variables.scope:null,onClose:()=>{S(null)},onInstall:(e,t,n)=>{k.mutate({scope:t,skill:e,...n})},projects:l,skill:x})]})}export{L as ThirdPartyMarketplacePane};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,t as n}from"./react-runtime-CMZHB3u8.js";import{h as r,i,p as a,s as o,t as s,u as c}from"./initial-deps-BeVJyoJH.js";import{At as l,G as u,I as d,J as f,Jt as p,K as m,Kt as h,N as g,P as _,Qn as v,U as y,W as b,X as x,Xt as S,Yt as C,_ as w,d as T,f as E,kt as D,m as O,p as k,q as A,qt as j,x as M}from"./initial-deps-DG--jjIA.js";import{B as N,C as P,H as F,K as I,R as L,T as R,U as ee,Z as z,h as B,it as V,j as H,tt as U}from"./initial-deps-CRaxZAOH.js";import{t as W}from"./arrow-down-BiCRjuX3.js";import{S as G,b as K,w as q}from"./prompt-input-CJK7fW5b.js";import{j as J}from"./message-assistant-directive-TOAo3G6q.js";import{n as te,r as Y,t as ne}from"./file-navigation-view-preference-D5PlYpLl.js";import{t as X}from"./upload-BypRc41z.js";import{K as re,dt as ie,ft as ae}from"./index-WWY-Ngf-.js";import{b as oe,n as se,v as ce}from"./workbench-shell--cyl6F5f.js";var Z=e(t(),1);function le(e,t){let n=c(t);return de({filters:{...e,status:`pending`}},n).length}function ue(e,t){return e.findAll(t.filters).map(e=>t.select?t.select(e):e.state)}function de(e={},t){let n=c(t).getMutationCache(),i=Z.useRef(e),o=Z.useRef(null);return o.current===null&&(o.current=ue(n,e)),Z.useEffect(()=>{i.current=e}),Z.useSyncExternalStore(Z.useCallback(e=>n.subscribe(()=>{let t=r(o.current,ue(n,i.current));o.current!==t&&(o.current=t,a.schedule(e))}),[n]),()=>o.current,()=>o.current)}var fe=z(`arrow-down-to-line`,[[`path`,{d:`M12 17V3`,key:`1cwfxf`}],[`path`,{d:`m6 11 6 6 6-6`,key:`12ii2o`}],[`path`,{d:`M19 21H5`,key:`150jfl`}]]),pe=z(`file-minus-corner`,[[`path`,{d:`M20 14V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12`,key:`l9p8hp`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M14 18h6`,key:`1m8k6r`}]]),me=z(`settings-2`,[[`path`,{d:`M14 17H5`,key:`gfn3mx`}],[`path`,{d:`M19 7h-9`,key:`6i9tg`}],[`circle`,{cx:`17`,cy:`17`,r:`3`,key:`18b49y`}],[`circle`,{cx:`7`,cy:`7`,r:`3`,key:`dfmy0x`}]]);function Q(e){let t=e?.toLowerCase()??``;return/(?:git|workspace) (?:status|changes|snapshot|state).*changed|head or branch changed|snapshot.?mismatch/u.test(t)?`state_changed`:/commit or set aside working changes|local changes.*overwritten|would be overwritten by merge/u.test(t)?`working_changes`:/resolve and stage all merge conflicts|choose a current merge conflict|complete or cancel.*merge|conflict marker/u.test(t)?`merge_conflicts`:/invalid remote (?:url|name)|invalid remote url or name/u.test(t)?`invalid_remote`:/host key verification|remote host identification has changed/u.test(t)?`host_key`:/protected branch|gh006|changes must be made through a pull request/u.test(t)?`protected_branch`:/authentication failed|publickey|invalid.*(?:token|password)|could not read username/u.test(t)?`authentication`:/write access|permission.*denied|not permitted|403|access denied/u.test(t)?`permission`:/non-fast-forward|not possible to fast-forward|cannot fast-forward|fetch first|tip of your current branch is behind/u.test(t)?`remote_updates`:/gh013|repository rule violations|pre-receive hook declined|hook declined|push declined/u.test(t)?`rules`:/timed out|timeout|connection.*(?:reset|closed)|unexpected disconnect/u.test(t)?`unknown_result`:/could not resolve|couldn't connect|failed to connect|failed to fetch|networkerror|network request failed|econnrefused|network is unreachable|unable to access/u.test(t)?`network`:`unknown`}function he(e,t,n){return{snapshot:e,message:n?.message??``,selectedPaths:new Set(t.map(e=>e.path)),knownPaths:new Set(t.map(e=>e.path)),previousMessage:n?.previousMessage??null}}function ge(e,t,n,r=!0){let i=new Set(n.map(e=>e.path)),a=e.knownPaths.size===0?i:r?new Set([...e.selectedPaths].filter(e=>i.has(e))):e.selectedPaths;return{...e,snapshot:t,selectedPaths:a,knownPaths:new Set([...e.knownPaths,...i])}}function _e(e,t,n){return e.snapshot===t.snapshot&&e.selectedPaths.size===t.selectedPaths.size&&[...e.selectedPaths].every(e=>t.selectedPaths.has(e))?{...e,message:n,previousMessage:e.message}:e}function ve(e){return JSON.stringify({version:1,snapshot:e.snapshot,message:e.message,selectedPaths:[...e.selectedPaths],knownPaths:[...e.knownPaths],previousMessage:e.previousMessage})}function ye(e){if(e===null||e.length>2e6)return null;try{let t=JSON.parse(e),n=e=>Array.isArray(e)&&e.length<=1e5&&e.every(e=>typeof e==`string`);return t.version!==1||typeof t.snapshot!=`string`||typeof t.message!=`string`||t.message.length>1e4||!n(t.selectedPaths)||!n(t.knownPaths)||!(e=>e===null||typeof e==`string`&&e.length<=1e4)(t.previousMessage)?null:{snapshot:t.snapshot,message:t.message,selectedPaths:new Set(t.selectedPaths),knownPaths:new Set(t.knownPaths),previousMessage:t.previousMessage}}catch{return null}}function be(e){let{remote:t}=e,n=e.pushStatus===`failed`||e.pushStatus===`not_configured`,r=[`commit`,`generate`,`status`].includes(e.failureOperation??``),i=e.failureOperation??`status`,a=e.actionError||e.pushError?Q(e.actionError??e.pushError):e.savedFailureKind??`unknown`,o=n||e.actionError?{kind:a,remote:!r,titleKey:r?`commit.${i}Failed`:`commit.failure_${a}`,helpKey:r&&a===`unknown`?`commit.${i}FailedHelp`:`commit.fix_${a}`}:null,s=(e,t,n)=>({action:e,labelKey:t,...n?{disabledReason:n}:{}}),c=(e,t,n,r)=>({primary:s(e,t,r),summaryKey:n,failure:o});if(t?.operation===`merge`||(t?.conflicts.length??0)>0)return{primary:s(`inspect`,`commit.refreshGitStatus`),summaryKey:`commit.mergePending`,hintKey:`commit.mergeExternalHelp`,failure:null};if(!e.branch)return c(null,`commit.push`,`commit.detachedHead`);if(t?.remotes.length===0)return c(`configure`,`commit.configureRemote`,`commit.noRemote`);if(t?.upstream===null||e.pushStatus===`not_configured`)return c(`publish`,`commit.publishBranch`,`commit.unpublished`);let l=(t?.ahead??0)>0?`commit.ahead`:(t?.behind??0)>0?`commit.behind`:t?.ahead===0&&t.behind===0?`commit.synced`:e.inspecting?`commit.awaitingCheck`:e.pushStatus===`pushed`?`commit.pushedToRemote`:e.commitSha?`commit.savedLocally`:`commit.remoteReady`;if((t?.ahead??0)>0&&(t?.behind??0)>0)return{...c(`inspect`,`commit.refreshGitStatus`,l),hintKey:`commit.divergedExternalHelp`};if(o?.remote&&e.hasActions){if(a===`state_changed`)return c(`inspect`,`commit.refreshGitStatus`,l);if(a===`invalid_remote`||a===`permission`)return c(`configure`,`commit.configureRemote`,l);if(a===`protected_branch`)return c(`branch`,`commit.createFeatureBranch`,l);if([`authentication`,`network`,`unknown_result`].includes(a))return c(`fetch`,`commit.checkConnection`,l);if(a===`remote_updates`&&!(t?.behind??0))return c(`fetch`,`commit.fetchRemote`,l)}return(t?.behind??0)>0?c(`integrate`,`commit.pullRemote`,l,e.hasWorkingChanges?`commit.pullNeedsCommit`:void 0):!t&&e.hasActions?c(`inspect`,`commit.inspectRemote`,e.inspecting?`commit.awaitingCheck`:`commit.remoteUnknown`):t?.ahead===0&&t.behind===0?c(e.hasActions?`fetch`:null,`commit.fetchRemote`,l):e.pushStatus===`pushed`&&!t?c(null,`commit.pushed`,l):c(`push`,o?.remote?`commit.pushAgain`:`commit.push`,l)}var xe={push:`commit.pushing`,fetch:`commit.fetchingRemote`,inspect:`commit.inspectingRemote`,configure:`commit.configuringRemote`,publish:`commit.publishingBranch`,integrate:`commit.integratingRemote`,branch:`commit.creatingFeatureBranch`},$=n();function Se({initialName:e,initialUrl:t,busy:n,error:r,onSave:i,onClose:a,returnFocusElement:o,t:s}){let[c,l]=(0,Z.useState)(e),[u,d]=(0,Z.useState)(t),[p]=(0,Z.useState)(()=>o??(typeof document>`u`?null:document.activeElement));return(0,$.jsx)(y,{open:!0,onOpenChange:e=>{!e&&!n&&a()},children:(0,$.jsxs)(b,{"aria-describedby":void 0,onCloseAutoFocus:e=>{e.preventDefault(),p instanceof HTMLElement&&p.isConnected&&p.focus()},children:[(0,$.jsx)(A,{children:(0,$.jsx)(f,{children:s(`commit.configureRemote`)})}),(0,$.jsxs)(`form`,{className:`space-y-4`,onSubmit:e=>{e.preventDefault(),!n&&i(c.trim(),u.trim()).then(e=>{e&&a()})},children:[(0,$.jsxs)(`label`,{className:`block text-label`,children:[s(`commit.remoteName`),(0,$.jsx)(`input`,{className:`mt-1 h-8 w-full rounded-control border border-separator-strong bg-panel px-2 outline-none focus-visible:shadow-focus`,required:!0,pattern:`[A-Za-z0-9_.-]+`,maxLength:128,value:c,disabled:n,autoComplete:`off`,onChange:e=>{l(e.currentTarget.value)}})]}),(0,$.jsxs)(`label`,{className:`block text-label`,children:[s(`commit.remoteUrl`),(0,$.jsx)(`input`,{className:`mt-1 h-8 w-full rounded-control border border-separator-strong bg-panel px-2 outline-none focus-visible:shadow-focus`,required:!0,value:u,disabled:n,autoComplete:`off`,autoCapitalize:`none`,spellCheck:!1,placeholder:`https://github.com/owner/repo.git`,onChange:e=>{d(e.currentTarget.value)}})]}),r?(0,$.jsx)(`p`,{className:`break-words text-caption text-danger`,role:`alert`,children:r}):null,(0,$.jsxs)(m,{children:[(0,$.jsx)(D,{variant:`ghost`,type:`button`,disabled:n,onClick:a,children:s(`commit.cancel`)}),(0,$.jsxs)(D,{type:`submit`,className:`text-[color:light-dark(#ffffff,#181818)]`,disabled:n||!c.trim()||!u.trim(),children:[n?(0,$.jsx)(P,{className:`size-3.5 animate-spin`,"aria-hidden":`true`}):null,s(n?`commit.configuringRemote`:`commit.saveRemote`)]})]})]})]})})}function Ce({kind:e,branch:t,remote:n,commitSha:r,defaultRemote:i,busy:a,error:o,failure:s,guidanceKey:c,returnFocus:l,onAction:d,onClose:p,t:h}){let g=(0,Z.useId)(),[_,v]=(0,Z.useState)(i),[x,S]=(0,Z.useState)(`feature/recovery`),[C,w]=(0,Z.useState)(!1),T={publish:`commit.publishBranch`,branch:`commit.createFeatureBranch`,info:`commit.remoteInfo`,error:`commit.operationDetails`,guidance:`commit.gitOperationHelp`},E=e===`publish`?`commit.publishHelp`:e===`branch`?`commit.featureBranchHelp`:e===`info`?`commit.remoteInfoHelp`:e===`guidance`?c:c??s?.helpKey,O=async e=>{if(!a){w(!1);try{await d(e)?p():w(!0)}catch{w(!0)}}},k=`${_}/${t??``}`;return(0,$.jsx)(y,{open:!0,onOpenChange:e=>{!e&&!a&&p()},children:(0,$.jsxs)(b,{onCloseAutoFocus:e=>{e.preventDefault(),l?.isConnected&&l.focus()},children:[(0,$.jsxs)(A,{children:[(0,$.jsx)(f,{children:h(e===`error`&&s?s.titleKey:T[e])}),E?(0,$.jsx)(u,{children:h(E)}):null]}),e===`error`&&r&&s?.remote?(0,$.jsx)(`p`,{className:`text-caption text-muted-foreground`,children:h(`commit.localCommitSafe`)}):null,e===`publish`||e===`branch`?(0,$.jsxs)(`form`,{className:`space-y-4`,onSubmit:t=>{t.preventDefault(),O(e===`publish`?{action:`publish`,remote:_}:{action:`branch`,branchName:x.trim()})},children:[e===`publish`?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`label`,{htmlFor:g,className:`block text-label`,children:h(`commit.remoteName`)}),(0,$.jsx)(`select`,{id:g,className:`h-9 w-full rounded-control border border-separator-strong bg-panel px-2 text-body-small outline-none focus-visible:shadow-focus`,value:_,disabled:a,onChange:e=>{v(e.currentTarget.value)},children:n?.remotes.map(e=>(0,$.jsx)(`option`,{value:e.name,children:e.name},e.name))}),(0,$.jsxs)(`div`,{className:`rounded-control bg-control px-3 py-2 text-caption`,children:[(0,$.jsx)(`p`,{className:`text-muted-foreground`,children:h(`commit.pushDestination`)}),(0,$.jsx)(`p`,{className:`break-all font-mono`,children:k}),(0,$.jsx)(`p`,{className:`mt-1 break-all text-muted-foreground`,children:n?.remotes.find(e=>e.name===_)?.url})]})]}):(0,$.jsxs)(`label`,{className:`block text-label`,children:[h(`commit.branchName`),(0,$.jsx)(`input`,{className:`mt-1 h-9 w-full rounded-control border border-separator-strong bg-panel px-2 outline-none focus-visible:shadow-focus`,required:!0,maxLength:1024,value:x,disabled:a,autoComplete:`off`,autoCapitalize:`none`,spellCheck:!1,onChange:e=>{S(e.currentTarget.value)}})]}),C?(0,$.jsx)(`p`,{role:`alert`,className:`text-caption text-warning`,children:h(e===`publish`?`commit.publishFailedHelp`:`commit.branchFailedHelp`)}):null,(0,$.jsxs)(m,{children:[(0,$.jsx)(D,{type:`button`,variant:`ghost`,disabled:a,onClick:p,children:h(`commit.cancel`)}),(0,$.jsxs)(D,{type:`submit`,className:`text-[color:light-dark(#ffffff,#181818)]`,disabled:a||(e===`branch`?!x.trim():!_),children:[a?(0,$.jsx)(P,{className:`size-3.5 animate-spin motion-reduce:animate-none`,"aria-hidden":`true`}):null,h(a?e===`publish`?`commit.publishingBranch`:`commit.creatingFeatureBranch`:T[e])]})]})]}):null,e===`info`?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`dl`,{className:`space-y-3 text-caption`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`text-muted-foreground`,children:h(`commit.currentBranch`)}),(0,$.jsx)(`dd`,{className:`break-all font-mono`,children:t??h(`commit.detachedHead`)})]}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`text-muted-foreground`,children:h(`commit.pushDestination`)}),(0,$.jsx)(`dd`,{className:`break-all font-mono`,children:n?.remote&&n.targetBranch?`${n.remote}/${n.targetBranch}`:h(`commit.unpublished`)})]}),n?.remotes.map(e=>(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`text-muted-foreground`,children:e.name}),(0,$.jsx)(`dd`,{className:`break-all font-mono`,children:e.url})]},e.name)),r?(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`text-muted-foreground`,children:h(`commit.lastCommit`)}),(0,$.jsx)(`dd`,{className:`break-all font-mono`,children:r})]}):null]}),n?(0,$.jsx)(`p`,{className:`text-caption text-muted-foreground`,children:h(`commit.lastChecked`,{time:new Date(n.checkedAt).toLocaleTimeString()})}):null]}):null,e===`error`&&o?(0,$.jsxs)(`div`,{className:`space-y-2`,children:[(0,$.jsx)(`p`,{className:`text-caption text-muted-foreground`,children:h(`commit.technicalDetails`)}),(0,$.jsx)(`pre`,{className:`max-h-72 overflow-auto whitespace-pre-wrap break-all rounded-control bg-control p-3 font-mono text-caption`,children:o})]}):null,e===`info`||e===`error`||e===`guidance`?(0,$.jsx)(m,{children:(0,$.jsx)(D,{type:`button`,variant:`outline`,onClick:p,children:h(`commit.close`)})}):null]})})}function we({busy:e,canPublish:t,dialogOpen:n,onInspect:r,onOpen:i,t:a}){let o=(0,Z.useRef)(null);return(0,$.jsxs)(T,{children:[(0,$.jsx)(M,{asChild:!0,children:(0,$.jsx)(D,{ref:o,size:`icon-toolbar`,variant:`ghost`,type:`button`,"data-slot":`git-remote-more`,"aria-label":a(`commit.moreRemoteActions`),title:a(`commit.moreRemoteActions`),children:(0,$.jsx)(H,{className:`size-4`,"aria-hidden":`true`})})}),(0,$.jsxs)(E,{align:`end`,onCloseAutoFocus:e=>{n&&e.preventDefault()},children:[(0,$.jsxs)(O,{disabled:e,onSelect:r,children:[(0,$.jsx)(B,{className:`size-3.5`}),a(`commit.inspectRemote`)]}),(0,$.jsxs)(O,{disabled:e,onSelect:()=>{i(`configure`,o.current)},children:[(0,$.jsx)(me,{className:`size-3.5`}),a(`commit.configureRemote`)]}),t?(0,$.jsxs)(O,{disabled:e,onSelect:()=>{i(`publish`,o.current)},children:[(0,$.jsx)(X,{className:`size-3.5`}),a(`commit.publishBranch`)]}):null,(0,$.jsx)(w,{}),(0,$.jsxs)(O,{onSelect:()=>{i(`info`,o.current)},children:[(0,$.jsx)(G,{className:`size-3.5`}),a(`commit.remoteInfo`)]})]})]})}function Te({branch:e,remote:t,pushStatus:n,pushError:r,commitSha:i,busy:a,activeAction:o,actionError:s,failureOperation:c,inspecting:l,onPush:u,onAction:f,onOpenHistory:p,savedFailureKind:m,hasWorkingChanges:h=!1,t:v}){let y=(0,Z.useRef)(null),[b,x]=(0,Z.useState)(null),S=be({branch:e,remote:t,pushStatus:n,pushError:r,commitSha:i,actionError:s,failureOperation:c,inspecting:l,savedFailureKind:m,hasWorkingChanges:h,hasActions:!!f}),{primary:C}=S,w=t?.remote??t?.remotes[0]?.name??`origin`,T=s??r,E=(e,t=y.current)=>{x({kind:e,returnFocus:t})},O=()=>{x(null)},k=e=>f?.(e)??Promise.resolve(!1),A=l&&!t,j=a&&o===C.action,M=v(A?`commit.inspectingRemote`:j&&o?xe[o]:C.labelKey),F=!!f&&!!t?.remotes.length&&C.action!==`fetch`,R=v(o===`fetch`&&a?`commit.fetchingRemote`:`commit.fetchRemote`),z=b&&![`info`,`error`,`guidance`].includes(b.kind)?null:S.failure,B=t?.ahead??0,V=t?.behind??0,H=!!z||!!C.disabledReason||!!S.hintKey,U=H||B>0&&V>0,G=[`push`,`publish`,`integrate`].includes(C.action??``),K={"commit.fetchRemote":`commit.fetchShort`,"commit.refreshGitStatus":`commit.refreshShort`,"commit.checkConnection":`commit.checkConnectionShort`,"commit.createFeatureBranch":`commit.branchShort`},q=!j&&!A&&K[C.labelKey]?v(K[C.labelKey]??C.labelKey):M,te=S.summaryKey!==`commit.mergePending`&&(B>0||V>0),Y=t?.remote&&t.targetBranch?`${t.remote}/${t.targetBranch}`:null;return(0,$.jsxs)(`section`,{className:`h-[72px] shrink-0 overflow-hidden border-b border-separator px-3 py-1.5`,"data-slot":`git-remote-status`,"aria-label":v(`commit.remoteStatus`),children:[(0,$.jsxs)(`div`,{className:`flex h-7 min-w-0 items-center gap-2`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-1.5`,children:[(0,$.jsx)(J,{className:`size-3.5 shrink-0 text-muted-foreground`,"aria-hidden":`true`}),(0,$.jsx)(`span`,{className:`min-w-0 truncate text-caption font-medium`,title:e??v(`commit.detachedHead`),children:e??v(`commit.detachedHead`)}),Y?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(N,{className:`size-3 shrink-0 text-muted-foreground`,"aria-hidden":`true`}),(0,$.jsx)(`span`,{className:`min-w-0 max-w-[45%] truncate text-caption text-muted-foreground`,title:Y,children:Y})]}):null]}),(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center gap-0.5`,children:[F?(0,$.jsxs)(g,{children:[(0,$.jsx)(d,{asChild:!0,children:(0,$.jsx)(D,{size:`icon-toolbar`,variant:`ghost`,type:`button`,"aria-label":R,disabled:a||!e,onClick:()=>{k({action:`fetch`})},children:o===`fetch`&&a?(0,$.jsx)(P,{className:`size-3.5 animate-spin motion-reduce:animate-none`,"aria-hidden":`true`}):(0,$.jsx)(fe,{className:`size-3.5`,"aria-hidden":`true`})})}),(0,$.jsx)(_,{children:v(`commit.fetchRemoteHint`)})]}):null,f?(0,$.jsx)(we,{busy:a,canPublish:!!t?.remotes.length&&t.upstream===null,dialogOpen:b!==null,onInspect:()=>{k({action:`inspect`})},onOpen:E,t:v}):null]})]}),(0,$.jsxs)(`div`,{className:`mt-1.5 flex h-6 min-w-0 items-center gap-2`,"data-slot":`git-remote-summary`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-2`,children:[(0,$.jsx)(`div`,{className:`flex min-w-0 items-center gap-1.5 text-caption ${H?`max-w-[50%]`:`flex-1`}`,role:`status`,children:te?(0,$.jsxs)($.Fragment,{children:[B>0?p?(0,$.jsxs)(`button`,{className:`inline-flex h-6 min-w-0 max-w-full touch-manipulation items-center gap-1.5 rounded-control bg-brand/10 px-1.5 text-brand-strong outline-none hover:bg-brand/15 focus-visible:shadow-focus`,type:`button`,"data-slot":`git-open-unpushed-history`,"aria-label":v(`commit.ahead`,{count:B}),title:v(`commit.ahead`,{count:B}),onClick:p,children:[(0,$.jsx)(I,{className:`size-3.5 shrink-0`,"aria-hidden":`true`}),(0,$.jsx)(`span`,{className:`min-w-0 truncate`,children:v(U?`commit.aheadShort`:`commit.ahead`,{count:B})})]}):(0,$.jsxs)(`span`,{className:`inline-flex h-6 min-w-0 items-center gap-1.5 rounded-control bg-brand/10 px-1.5 text-brand-strong`,title:v(`commit.ahead`,{count:B}),children:[(0,$.jsx)(I,{className:`size-3.5 shrink-0`,"aria-hidden":`true`}),(0,$.jsx)(`span`,{className:`truncate`,children:v(U?`commit.aheadShort`:`commit.ahead`,{count:B})})]}):null,V>0?(0,$.jsxs)(`span`,{className:`inline-flex h-6 min-w-0 items-center gap-1.5 rounded-control bg-control px-1.5 text-muted-foreground`,title:v(`commit.behind`,{count:V}),children:[(0,$.jsx)(W,{className:`size-3.5 shrink-0`,"aria-hidden":`true`}),(0,$.jsx)(`span`,{className:`truncate`,children:v(U?`commit.behindShort`:`commit.behind`,{count:V})})]}):null]}):H?null:(0,$.jsxs)(`span`,{className:`inline-flex h-6 min-w-0 items-center gap-1.5 rounded-control bg-control px-1.5 text-muted-foreground`,children:[S.summaryKey===`commit.synced`||S.summaryKey===`commit.pushedToRemote`?(0,$.jsx)(ee,{className:`size-3.5 shrink-0 text-muted-foreground`,"aria-hidden":`true`}):null,(0,$.jsx)(`span`,{className:`min-w-0 truncate`,children:v(S.summaryKey)})]})}),H?(0,$.jsx)(`div`,{className:`flex h-6 min-w-0 flex-1 items-center text-caption`,children:z?(0,$.jsxs)(`div`,{role:`alert`,className:`flex h-full min-w-0 flex-1 items-center gap-1.5`,"data-slot":`git-remote-notice`,children:[(0,$.jsx)(L,{className:`size-3.5 shrink-0 text-warning`,"aria-hidden":`true`}),(0,$.jsx)(`p`,{className:`min-w-0 flex-1 truncate text-muted-foreground`,title:v(z.titleKey),children:v(z.titleKey)}),(0,$.jsx)(`button`,{className:`min-h-6 shrink-0 touch-manipulation rounded-sm text-muted-foreground underline underline-offset-2 outline-none hover:text-foreground focus-visible:shadow-focus`,type:`button`,"aria-label":v(`commit.viewDetails`),onClick:e=>{E(`error`,e.currentTarget)},children:v(`commit.detailsShort`)})]}):C.disabledReason?(0,$.jsx)(`p`,{className:`min-w-0 truncate text-muted-foreground`,title:v(C.disabledReason),children:v(C.disabledReason)}):S.hintKey?(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-1.5 text-muted-foreground`,children:[(0,$.jsx)(`p`,{className:`min-w-0 flex-1 truncate`,children:v(`commit.externalGitRequired`)}),(0,$.jsx)(`button`,{className:`min-h-6 shrink-0 touch-manipulation rounded-sm underline underline-offset-2 outline-none hover:text-foreground focus-visible:shadow-focus`,type:`button`,"aria-label":v(`commit.viewDetails`),onClick:e=>{E(`guidance`,e.currentTarget)},children:v(`commit.detailsShort`)})]}):null}):null]}),C.action?(0,$.jsxs)(D,{ref:y,size:`toolbar`,variant:G?`default`:`outline`,className:G?`text-[color:light-dark(#ffffff,#181818)]`:void 0,type:`button`,"data-slot":`git-remote-primary`,"aria-label":M,title:M,disabled:a||A||!!C.disabledReason||C.action!==`push`&&!f,onClick:()=>{let e=C.action;e===`push`?u():e===`configure`||e===`publish`||e===`branch`?E(e):e&&k({action:e})},children:[j||A?(0,$.jsx)(P,{className:`size-3.5 animate-spin motion-reduce:animate-none`,"aria-hidden":`true`}):C.action===`push`||C.action===`publish`?(0,$.jsx)(X,{className:`size-3.5`,"aria-hidden":`true`}):null,q]}):null]}),b?.kind===`configure`?(0,$.jsx)(Se,{initialName:w,initialUrl:t?.remotes.find(e=>e.name===w)?.url??``,busy:a,returnFocusElement:b.returnFocus,error:c===`configure`&&s?v(S.failure?.kind===`invalid_remote`?`commit.fix_invalid_remote`:`commit.remoteSaveFailed`):null,onSave:(e,t)=>k({action:`configure`,remote:e,url:t}),onClose:O,t:v}):null,b&&b.kind!==`configure`?(0,$.jsx)(Ce,{kind:b.kind,branch:e,remote:t,commitSha:i,defaultRemote:w,busy:a,error:T,failure:S.failure,guidanceKey:S.hintKey,returnFocus:b.returnFocus,onAction:k,onClose:O,t:v}):null]})}var Ee=e=>JSON.stringify({version:1,...e});function De(e,t){if(!e||e.length>2048)return null;try{let n=JSON.parse(e),r=e=>e===null||typeof e==`string`;return n.version!==1||!r(n.head)||!r(n.commitSha)||typeof n.pushStatus!=`string`||![`failed`,`not_configured`,`not_requested`,`pushed`,`checked`,`updated`].includes(n.pushStatus)||![`state_changed`,`working_changes`,`merge_conflicts`,`invalid_remote`,`authentication`,`permission`,`remote_updates`,`protected_branch`,`network`,`host_key`,`rules`,`unknown_result`,`unknown`].includes(String(n.failureKind))||t!==void 0&&n.head!==null&&n.head!==t?null:{head:n.head,commitSha:n.commitSha,pushStatus:n.pushStatus,failureKind:n.failureKind}}catch{return null}}function Oe(e,t,n){let r=`codexly:git-receipt:v1:${e}`,[i,a]=(0,Z.useState)(()=>{try{return typeof window>`u`?null:De(window.localStorage.getItem(r),n)}catch{return null}}),o=t?Ee(t):null;return(0,Z.useEffect)(()=>{if(!o)return;let e=De(o);a(e);try{window.localStorage.setItem(r,o)}catch{}},[r,o]),t??(i&&(n===void 0||i.head===null||i.head===n)?i:null)}function ke({busyAction:e,canCommit:t,disabled:n,isPending:r,labels:i,onCommit:a}){let o=r?e===`commit_and_push`?i.committingAndPushing:i.committing:i.commit;return(0,$.jsx)(`div`,{className:`mt-2`,"data-slot":`git-changes-actions`,children:(0,$.jsxs)(se,{className:`w-full`,children:[(0,$.jsxs)(D,{"aria-label":o,className:`min-w-0 flex-1 rounded-r-none disabled:pointer-events-auto disabled:cursor-not-allowed disabled:opacity-100 disabled:hover:bg-brand disabled:active:brightness-100`,disabled:!t,onClick:()=>{a(`commit`)},type:`button`,children:[r?(0,$.jsx)(P,{"aria-hidden":`true`,className:`animate-spin`}):(0,$.jsx)(ce,{"aria-hidden":`true`}),o]}),(0,$.jsxs)(T,{children:[(0,$.jsx)(M,{asChild:!0,children:(0,$.jsx)(D,{"aria-label":i.moreGitActions,className:`w-9 shrink-0 rounded-l-none border-l border-brand-contrast/30 px-0 disabled:opacity-100`,disabled:n,type:`button`,children:(0,$.jsx)(F,{"aria-hidden":`true`})})}),(0,$.jsx)(E,{align:`end`,className:`max-w-[calc(100vw-1rem)]`,children:(0,$.jsx)(k,{children:(0,$.jsxs)(O,{className:`focus-visible:!outline-none focus-visible:shadow-none`,disabled:!t,onSelect:()=>{a(`commit_and_push`)},children:[(0,$.jsx)(ce,{"aria-hidden":`true`,className:`size-4`}),(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`p`,{children:i.commitAndPush}),(0,$.jsx)(`p`,{className:`mt-0.5 text-caption text-muted-foreground`,children:i.commitAndPushDescription})]})]})})})]})]})})}function Ae({draft:e,generating:t,disabled:n,canGenerate:r,onGenerate:i,update:a,t:o}){return(0,$.jsxs)(`div`,{className:`space-y-2`,"data-slot":`git-commit-editor`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,$.jsx)(`label`,{className:`text-label font-semibold`,htmlFor:`commit-message`,children:o(`commit.commitMessage`)}),(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1`,children:[e.previousMessage===null?null:(0,$.jsx)(D,{size:`sm`,variant:`link`,type:`button`,onClick:()=>{a(e=>({...e,message:e.previousMessage??``,previousMessage:null}))},children:o(`commit.undoGeneration`)}),(0,$.jsxs)(D,{variant:`ghost`,size:`sm`,disabled:!r||t,onClick:i,type:`button`,"aria-label":o(`commit.generateMessage`),children:[t?(0,$.jsx)(P,{className:`size-3.5 animate-spin`,"aria-hidden":`true`}):(0,$.jsx)(K,{className:`size-3.5`,"aria-hidden":`true`}),o(t?`commit.generatingMessage`:`commit.generateMessage`)]})]})]}),(0,$.jsx)(`textarea`,{id:`commit-message`,"aria-label":o(`commit.commitMessage`),className:`block min-h-12 w-full resize-none rounded-control border border-separator-strong bg-panel px-2 py-1.5 text-label leading-5 outline-none focus-visible:shadow-focus`,rows:2,maxLength:1e4,disabled:n,placeholder:o(`commit.messagePlaceholder`),value:e.message,onChange:e=>{let t=e.currentTarget.value;a(e=>({...e,message:t,previousMessage:null}))}})]})}function je(e,t,n){try{return he(t,n,typeof window>`u`?null:ye(window.localStorage.getItem(e)))}catch{return he(t,n)}}function Me(e,t,n,r){let i=`codexly:git-draft:v1:${e}`,a=(0,Z.useMemo)(()=>`${t}:${n.map(e=>`${e.path}:${String(Number(e.staged))}`).join(`\0`)}:${String(r)}`,[t,n,r]),[o,s]=(0,Z.useState)(()=>({range:a,draft:je(i,t,n)}));o.range!==a&&s({range:a,draft:ge(o.draft,t,n,r)});let c=(0,Z.useRef)(o.draft);c.current=o.draft;let l=()=>{try{window.localStorage.setItem(i,ve(c.current))}catch{}};return(0,Z.useEffect)(()=>{let e=setTimeout(l,250);return()=>{clearTimeout(e)}},[i,o.draft]),(0,Z.useEffect)(()=>{let e=()=>{l()};return window.addEventListener(`pagehide`,e),()=>{window.removeEventListener(`pagehide`,e),e()}},[i]),[o.draft,e=>{s(t=>({...t,draft:e(t.draft)}))}]}function Ne(e){let t=new Map;for(let n of e.staged)t.set(n.path,{path:n.path,staged:!0,unstaged:!1});for(let n of e.unstaged)t.set(n.path,{path:n.path,staged:t.has(n.path),unstaged:!0});return[...t.values()].sort((e,t)=>e.path.localeCompare(t.path,`en`))}function Pe({gitStatus:e,draftScope:t=`repository`,error:n=null,isCommitting:r=!1,isPushing:i=!1,activeRemoteAction:a,isGenerating:o=!1,totalChanges:s,complete:c=!0,onLoadMore:l,isLoadingMore:u=!1,onCommit:d,onPush:f,onGenerateMessage:p,result:m=null,pushResult:h=null,remoteResult:g,isInspectingRemote:_=!1,onRemoteAction:y,onOpenHistory:b,t:x,viewMode:C,onViewModeChange:w,renderChanges:T}){let E=(0,Z.useMemo)(()=>Ne(e),[e]),O=v(),[k,A]=Me(t,e.snapshot,E,c),[j,M]=(0,Z.useState)(``),[N,F]=(0,Z.useState)(null),[I,L]=(0,Z.useState)(!1),[R,ee]=(0,Z.useState)(`commit`),z=(0,Z.useRef)(!1),B=(0,Z.useRef)(0);(0,Z.useEffect)(()=>()=>{B.current++},[]);let V=r||i,H=(s??E.length)>0,U=h?.pushError??m?.pushError??null,W=Oe(t,h||m?{head:h?.remoteState?.head??m?.commitSha??g?.remoteState?.head??null,commitSha:m?.commitSha??null,pushStatus:h?.pushStatus??m?.pushStatus??`not_requested`,failureKind:Q(U)}:null,g?.remoteState?.head),G=h?.pushStatus??m?.pushStatus??W?.pushStatus??null,K=S(e=>x(e)),q=g?.remoteState?.operation!==`merge`&&(g?.remoteState?.conflicts.length??0)===0&&!V&&k.selectedPaths.size>0&&k.message.trim()!==``,J=async(e,t=`push`)=>{if(z.current)return!1;z.current=!0,F(null);try{return await e(),!0}catch(e){return F({message:e instanceof Error?e.message:String(e),operation:t}),!1}finally{z.current=!1}},ne=async()=>{if(I||o)return;let e=k,t=++B.current;L(!0),F(null);try{let n=await p({...O?.length===1&&O[0]===`claude`?{engine:`claude`}:{},expectedSnapshot:e.snapshot,paths:[...e.selectedPaths]});B.current===t&&A(t=>_e(t,e,n))}catch(e){B.current===t&&F({message:e instanceof Error?e.message:String(e),operation:`generate`})}finally{B.current===t&&L(!1)}},X=t=>J(async()=>{ee(t),await d({action:t,expectedSnapshot:e.snapshot,paths:[...k.selectedPaths],message:k.message}),B.current++,L(!1),A(e=>({...he(e.snapshot,[]),knownPaths:e.knownPaths}))},`commit`);return e.repositoryMode===`root`?(0,$.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col overflow-hidden`,"data-slot":`commit-changes-panel`,children:[(0,$.jsx)(Te,{onOpenHistory:b,branch:e.branch,remote:g?.remoteState,pushStatus:G,pushError:U,commitSha:m?.commitSha??W?.commitSha??void 0,savedFailureKind:W?.failureKind,busy:V,hasWorkingChanges:H,activeAction:i?a??`push`:null,actionError:N?.message??(U?null:n?.message??null),failureOperation:N?.operation??(!U&&n?`status`:void 0),inspecting:_,t:x,onPush:()=>{J(f)},...y?{onAction:e=>J(()=>y(e,W?.failureKind),e.action??`push`)}:{}}),H?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`max-h-[25%] shrink-0 space-y-2 overflow-y-auto px-3 py-2`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,$.jsx)(`p`,{className:`min-w-0 flex-1 text-caption font-semibold`,children:x(`commit.selectedFiles`,{selected:k.selectedPaths.size,total:s??E.length})}),(0,$.jsx)(D,{size:`icon-sm`,variant:`ghost`,type:`button`,"aria-label":x(C===`tree`?`diff.showFileList`:`diff.showFileTree`),onClick:()=>{w(C===`tree`?`list`:`tree`)},children:C===`tree`?(0,$.jsx)(te,{className:`size-3.5`}):(0,$.jsx)(Y,{className:`size-3.5`})})]}),(0,$.jsx)(`input`,{"aria-label":x(`commit.searchFiles`),placeholder:x(`commit.searchFiles`),className:`h-8 w-full rounded-control border border-separator bg-panel px-2 text-label outline-none focus-visible:shadow-focus`,value:j,onChange:e=>{M(e.currentTarget.value)}}),E.some(e=>e.staged&&e.unstaged)?(0,$.jsx)(`p`,{className:`text-caption text-muted-foreground`,children:x(`commit.partialStaged`)}):null]}),(0,$.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-hidden`,children:T(k.selectedPaths,e=>{A(t=>({...t,selectedPaths:e}))},V,j)}),c?null:(0,$.jsx)(`div`,{className:`shrink-0 border-t border-separator px-3 py-1`,children:(0,$.jsxs)(D,{size:`sm`,variant:`ghost`,className:`w-full`,disabled:u,onClick:l,type:`button`,children:[u?(0,$.jsx)(P,{className:`size-3.5 animate-spin`}):null,x(`commit.loadMore`),` · `,E.length,` / `,s??E.length]})}),(0,$.jsxs)(`section`,{className:`max-h-[60%] min-h-0 shrink space-y-2 overflow-y-auto border-t border-separator px-3 py-2`,"data-slot":`git-commit-footer`,children:[(0,$.jsx)(Ae,{draft:k,update:A,generating:I||o,disabled:r,canGenerate:k.selectedPaths.size>0&&!V,onGenerate:()=>{ne()},t:x}),(0,$.jsx)(ke,{busyAction:r?R:null,canCommit:q,isPending:r,disabled:V,labels:K,onCommit:e=>{X(e)}})]})]}):null]}):null}function Fe(e){return[...e].sort((e,t)=>e.kind===t.kind?e.name.localeCompare(t.name,`en`):e.kind===`file`?-1:1)}function Ie(e){let t=[e.name],n=e;for(;n.children.size===1;){let e=n.children.values().next().value;if(e?.kind!==`folder`)break;t.push(e.name),n=e}return{children:Fe([...n.children.values()].map(e=>e.kind===`folder`?Ie(e):e)),kind:`folder`,name:t.join(`/`),path:n.path}}function Le(e){let t={children:new Map,kind:`folder`,name:``,path:``};for(let n of e){let e=n.path.split(`/`),r=e.pop();if(r===void 0)continue;let i=t;for(let t of e){let e=i.path===``?t:`${i.path}/${t}`,n=i.children.get(t);if(n?.kind===`folder`){i=n;continue}let r={children:new Map,kind:`folder`,name:t,path:e};i.children.set(t,r),i=r}i.children.set(r,{kind:`file`,name:r,path:n.path,status:n.kind})}return Fe([...t.children.values()].map(e=>e.kind===`folder`?Ie(e):e))}var Re=[];function ze(e,t,n,r,i,a=0){for(let o of t){let t=`${r}:${o.path}`;if(o.kind===`folder`)e.push({key:t,label:r,depth:a,kind:`folder`,path:o.path,name:o.name}),i.has(t)||ze(e,o.children,n,r,i,a+1);else{let i=n.get(o.path);i&&e.push({key:t,label:r,depth:a,kind:`file`,name:o.name,change:i})}}}function Be({changes:e,disabled:t=!1,label:n,onOpenFileDiff:r,onSelectedPathsChange:i,selectedPaths:a,viewMode:o=`tree`,secondaryChanges:c=Re,secondaryLabel:u=``,statsAvailable:d=!1}){let f=(0,Z.useRef)(null),p=(0,Z.useRef)(null),[m,h]=(0,Z.useState)(new Set),g=(0,Z.useMemo)(()=>[{changes:e,label:n},{changes:c,label:u}].filter(e=>e.changes.length>0).map(e=>({...e,paths:e.changes.map(e=>e.path),byPath:new Map(e.changes.map(e=>[e.path,e])),nodes:o===`tree`?Le(e.changes):[],sorted:o===`list`?e.changes.toSorted((e,t)=>e.path.localeCompare(t.path,`en`)):[]})),[e,n,c,u,o]),_=(0,Z.useMemo)(()=>{let e=[];for(let t of g)if(e.push({key:t.label,label:t.label,depth:0,kind:`section`,paths:t.paths}),o===`tree`)ze(e,t.nodes,t.byPath,t.label,m);else for(let n of t.sorted)e.push({key:`${t.label}:${n.path}`,kind:`file`,label:t.label,depth:0,name:n.path,change:n});return e},[g,m,o]),v=s({count:_.length,getScrollElement:()=>f.current,getItemKey:e=>_[e]?.key??e,estimateSize:()=>32,overscan:8,initialRect:{width:400,height:400}}),y=v.getVirtualItems();(0,Z.useLayoutEffect)(()=>{if(p.current===null)return;let e=f.current?.querySelector(`[data-row-index="${String(p.current)}"]`);e&&(e.focus(),p.current=null)},[y]);let b=e=>{let t=new Set(a);t.has(e)?t.delete(e):t.add(e),i(t)},S=e=>{h(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},C=(e,t)=>{let n=e.key===`ArrowDown`?t+1:e.key===`ArrowUp`?t-1:e.key===`Home`?0:e.key===`End`?_.length-1:null;n!==null&&(e.preventDefault(),p.current=Math.max(0,Math.min(_.length-1,n)),v.scrollToIndex(p.current,{align:`auto`}),f.current?.querySelector(`[data-row-index="${String(p.current)}"]`)?.focus())};return(0,$.jsx)(`div`,{ref:f,className:`h-full min-h-0 flex-1 overflow-y-auto overscroll-contain`,"data-slot":`commit-changes-scroll`,children:(0,$.jsx)(`div`,{role:`tree`,"aria-label":n,"data-slot":o===`list`?`commit-changes-list`:`commit-changes-tree`,style:{height:v.getTotalSize(),position:`relative`},children:y.map(e=>{let n=_[e.index];if(!n)return null;let s={height:32,left:0,top:0,width:`100%`,position:`absolute`,transform:`translateY(${String(e.start)}px)`,paddingLeft:12+n.depth*14};if(n.kind===`section`){let r=n.paths.reduce((e,t)=>e+Number(a.has(t)),0);return(0,$.jsxs)(`div`,{role:`treeitem`,style:s,className:`flex items-center gap-1.5 pr-3`,"data-row-index":e.index,tabIndex:-1,onKeyDown:t=>{C(t,e.index)},children:[(0,$.jsx)(x,{"aria-label":n.label,checked:r===0?!1:r===n.paths.length||`indeterminate`,disabled:t,onCheckedChange:e=>{let t=new Set(a);for(let r of n.paths)e?t.add(r):t.delete(r);i(t)}}),(0,$.jsx)(`h3`,{className:`text-label font-semibold`,children:n.label}),(0,$.jsx)(`span`,{className:`ml-auto text-caption text-muted-foreground`,children:n.paths.length})]},n.key)}let c=n.kind===`folder`,u=c&&!m.has(n.key),f=c?n.path:n.change.path,p=c?`update`:n.change.kind,h=c?R:p===`create`?q:p===`delete`?pe:oe,g=()=>{c?S(n.key):r(n.change)};return(0,$.jsxs)(`div`,{role:`treeitem`,"aria-label":f,"aria-level":o===`tree`?n.depth+1:void 0,"aria-expanded":c?u:void 0,tabIndex:0,"data-row-index":e.index,style:s,className:`flex cursor-pointer items-center gap-1.5 pr-3 font-mono text-label hover:bg-control-hover focus-visible:shadow-focus`,onClick:g,onKeyDown:t=>{t.target===t.currentTarget&&(C(t,e.index),(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),g()),c&&(t.key===`ArrowLeft`&&u||t.key===`ArrowRight`&&!u)&&(t.preventDefault(),S(n.key)))},children:[c?(0,$.jsx)(N,{"aria-hidden":`true`,className:l(`size-3.5 shrink-0`,u&&`rotate-90`)}):(0,$.jsx)(x,{"aria-label":`${n.label}: ${f}`,checked:a.has(f),disabled:t,onClick:e=>{e.stopPropagation()},onCheckedChange:()=>{b(f)}}),(0,$.jsx)(h,{"aria-hidden":`true`,className:l(`size-3.5 shrink-0`,!c&&(p===`create`?`text-diff-added`:p===`delete`?`text-danger`:`text-warning`))}),(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,title:f,children:n.name}),!c&&d&&n.change.stats!==void 0&&(0,$.jsxs)(`span`,{className:`flex shrink-0 gap-1 text-meta`,"aria-label":`+${String(n.change.stats.additions)} -${String(n.change.stats.removals)}`,children:[(0,$.jsxs)(`span`,{className:`text-diff-added`,children:[`+`,n.change.stats.additions]}),(0,$.jsxs)(`span`,{className:`text-diff-removed`,children:[`-`,n.change.stats.removals]})]}),!c&&(0,$.jsx)(`span`,{className:`text-meta text-muted-foreground`,children:p===`create`?`A`:p===`delete`?`D`:`M`})]},n.key)})})})}function Ve(e){let{gitStatus:t,onOpenFileDiff:n}=e,{t:r}=U(`workbench`),[i,a]=ne(`changes`),o=(0,Z.useMemo)(()=>{let e=new Map(t.staged.map(e=>[e.path,e]));for(let n of t.unstaged)e.has(n.path)||e.set(n.path,n);return[...e.values()]},[t]),s=JSON.stringify([e.draftScope??`repository`,t.branch]);return(0,$.jsx)(Pe,{...e,draftScope:s,t:(e,t)=>r(e,t??{}),viewMode:i,onViewModeChange:a,renderChanges:(e,t,a,s)=>{let c=s?o.filter(e=>e.path.toLowerCase().includes(s.toLowerCase())):o;return s&&c.length===0?(0,$.jsx)(`p`,{className:`p-3 text-caption text-muted-foreground`,children:r(`commit.noMatchingFiles`)}):(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto overscroll-contain`,"data-slot":`commit-changes-scroll`,children:(0,$.jsx)(Be,{changes:c,label:r(`commit.changes`),disabled:a,onOpenFileDiff:n,onSelectedPathsChange:t,selectedPaths:e,viewMode:i})})}},s)}function He(e){return e.pushStatus===`pushed`?`commit.commitAndPushSucceeded`:e.pushStatus===`not_requested`?`commit.commitSucceeded`:null}function Ue(e,t,n,r,i,a){let o=r===void 0?[`projects`,t,n,`git-status`]:[`projects`,t,n,`git-status`,r];e.setQueryData(o,i),e.setQueryData([`projects`,t,n,`git-history`,r??null],{pageParams:[void 0],pages:[a]})}function We({client:e,detailsError:t=null,gitStatus:n,onOpenFileDiff:r,onOpenHistory:a,projectId:s,rootPath:l}){let{t:u}=U(`workbench`),d=c(),f=i({...ae(s,l,e),meta:{actionNotification:!1}}),m=i({...ie(s,l,e),...h(s,l,d),meta:{actionNotification:!1}}),g=i(p(s,l,e)),[_,v]=(0,Z.useState)(),[y,b]=(0,Z.useState)(),x=n,S=JSON.stringify([s,l,x.branch]),w=y?.scope===S?y.result:null,T=le({predicate:e=>e.options.scope?.id===`project-git-mutation:${s}:${l}`})>0,E=j(s,l,x.branch,x.snapshot,e,T),D=o({...E,enabled:x.repositoryMode===`root`&&E.enabled}),O=async(e,t)=>{let n=x.snapshot,r;try{r=await g.mutateAsync({...e,expectedSnapshot:n,...[`push`,`publish`,`fetch`].includes(e.action??``)&&x.branch?{expectedBranch:x.branch}:{}})}catch(e){throw v({result:{branch:x.branch,pushStatus:`failed`,pushError:e instanceof Error?e.message:String(e)},snapshot:n,scope:S}),d.invalidateQueries({queryKey:E.queryKey}),e}if(r.remoteState&&d.setQueryData(E.queryKey,r),(e.action!==`inspect`||C(t??Q(_?.scope===S?_.result.pushError:null),r))&&v({result:r,snapshot:n,scope:S}),r.pushStatus===`pushed`&&re(u(`commit.pushSucceeded`)),[`inspect`,`integrate`,`branch`].includes(e.action??``)&&await d.invalidateQueries({queryKey:[`projects`,s,l,`git-status`]}),d.invalidateQueries({queryKey:[`projects`,s,l,`git-history`]}),r.pushStatus===`failed`||r.pushStatus===`not_configured`)throw Error(r.pushError??u(`commit.pushFailed`))};return(0,$.jsx)(Ve,{onOpenHistory:a,draftScope:JSON.stringify([s,l]),error:t??D.error,gitStatus:x,pushResult:_?.scope===S?_.result:null,isPushing:g.isPending,activeRemoteAction:g.isPending?g.variables.action??`push`:null,onPush:()=>O({action:`push`}),onRemoteAction:O,remoteResult:D.data,isInspectingRemote:D.isPending,isCommitting:m.isPending,isGenerating:f.isPending,onCommit:async e=>{v(void 0);let t=await m.mutateAsync(e);b({result:t,snapshot:t.status.snapshot,scope:S}),Ue(d,s,l,e.repository,t.status,t.history);let n=He(t);if(n!==null){re(u(n));return}},onGenerateMessage:async e=>(await f.mutateAsync(e)).message,onOpenFileDiff:r,result:w})}function Ge({client:e,detailsError:t,detailsPending:n,detailsStatus:r,gitStatus:i,gitStatusError:a,onOpenFileDiff:o,onOpenHistory:s,projectId:c,rootPath:l}){return c!==void 0&&e!==void 0&&i!==void 0?(0,$.jsx)(We,{client:e,detailsError:t,detailsPending:n,gitStatus:r??i,onOpenFileDiff:o,onOpenHistory:s,projectId:c,rootPath:l}):a===null?(0,$.jsx)(`p`,{className:`p-3 text-caption text-muted-foreground`,role:`status`,children:V.t(`inspector.gitLoading`,{ns:`conversation`})}):(0,$.jsx)(`p`,{className:`p-3 text-caption text-danger`,role:`alert`,children:a.message})}export{Ge as WorkbenchInspectorChanges};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|