@hienlh/ppm 0.23.25 → 0.23.27
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 +12 -0
- package/assets/skills/ppm/SKILL.md +1 -1
- package/assets/skills/ppm/references/http-api.md +1 -1
- package/dist/web/assets/accounts-settings-section-CZglHifc.js +1 -0
- package/dist/web/assets/accounts-settings-section-CZglHifc.js.br +0 -0
- package/dist/web/assets/accounts-settings-section-CZglHifc.js.gz +0 -0
- package/dist/web/assets/{agent-session-sheet-DmbSfFGz.js → agent-session-sheet-B3VLD2H6.js} +2 -2
- package/dist/web/assets/agent-session-sheet-B3VLD2H6.js.br +0 -0
- package/dist/web/assets/agent-session-sheet-B3VLD2H6.js.gz +0 -0
- package/dist/web/assets/{agent-session-window-content-Dk8x3ozF.js → agent-session-window-content-HEdIT_LQ.js} +1 -1
- package/dist/web/assets/agent-session-window-content-HEdIT_LQ.js.br +0 -0
- package/dist/web/assets/agent-session-window-content-HEdIT_LQ.js.gz +0 -0
- package/dist/web/assets/{ai-resource-editor-MKwjYcDh.js → ai-resource-editor-CFbXgGMo.js} +1 -1
- package/dist/web/assets/ai-resource-editor-CFbXgGMo.js.br +0 -0
- package/dist/web/assets/ai-resource-editor-CFbXgGMo.js.gz +0 -0
- package/dist/web/assets/ai-settings-section-BNiVD9D3.js +1 -0
- package/dist/web/assets/ai-settings-section-BNiVD9D3.js.br +0 -0
- package/dist/web/assets/ai-settings-section-BNiVD9D3.js.gz +0 -0
- package/dist/web/assets/{ai-settings-section-OZOaLw5z.js → ai-settings-section-W0kfADRB.js} +1 -1
- package/dist/web/assets/{android-tab-CUkjbfyi.js → android-tab-CY3aa_vU.js} +1 -1
- package/dist/web/assets/android-tab-CY3aa_vU.js.br +0 -0
- package/dist/web/assets/android-tab-CY3aa_vU.js.gz +0 -0
- package/dist/web/assets/{appearance-settings-section-BZsM8HpZ.js → appearance-settings-section-lbtuzecW.js} +1 -1
- package/dist/web/assets/appearance-settings-section-lbtuzecW.js.br +0 -0
- package/dist/web/assets/appearance-settings-section-lbtuzecW.js.gz +0 -0
- package/dist/web/assets/{apps-panel-Cs3utBlp.js → apps-panel-CF2mbvVq.js} +1 -1
- package/dist/web/assets/apps-panel-CF2mbvVq.js.br +0 -0
- package/dist/web/assets/apps-panel-CF2mbvVq.js.gz +0 -0
- package/dist/web/assets/branch-review-tab-CR7JnS5x.js +1 -0
- package/dist/web/assets/branch-review-tab-CR7JnS5x.js.br +0 -0
- package/dist/web/assets/branch-review-tab-CR7JnS5x.js.gz +0 -0
- package/dist/web/assets/chat-tab-BCELq4nK.js +1 -0
- package/dist/web/assets/chat-tab-BCELq4nK.js.br +0 -0
- package/dist/web/assets/chat-tab-BCELq4nK.js.gz +0 -0
- package/dist/web/assets/{chat-tab-DtSHSfMU.js → chat-tab-C4aOYSea.js} +10 -10
- package/dist/web/assets/chat-tab-C4aOYSea.js.br +0 -0
- package/dist/web/assets/chat-tab-C4aOYSea.js.gz +0 -0
- package/dist/web/assets/{code-editor-DjDyhff1.js → code-editor-_axJbYkP.js} +5 -5
- package/dist/web/assets/code-editor-_axJbYkP.js.br +0 -0
- package/dist/web/assets/code-editor-_axJbYkP.js.gz +0 -0
- package/dist/web/assets/{codex-reset-credit-button-BKgiUi8E.js → codex-reset-credit-button-DJQD6NUF.js} +1 -1
- package/dist/web/assets/codex-reset-credit-button-DJQD6NUF.js.br +0 -0
- package/dist/web/assets/codex-reset-credit-button-DJQD6NUF.js.gz +0 -0
- package/dist/web/assets/{conflict-editor-DgTv-8pb.js → conflict-editor-D0AYuLKI.js} +3 -3
- package/dist/web/assets/conflict-editor-D0AYuLKI.js.br +0 -0
- package/dist/web/assets/conflict-editor-D0AYuLKI.js.gz +0 -0
- package/dist/web/assets/connection-form-tab-C3QyUWnE.js +4 -0
- package/dist/web/assets/connection-form-tab-C3QyUWnE.js.br +0 -0
- package/dist/web/assets/connection-form-tab-C3QyUWnE.js.gz +0 -0
- package/dist/web/assets/{csv-preview-BTGpYs4p.js → csv-preview-CmKkcz4M.js} +1 -1
- package/dist/web/assets/csv-preview-CmKkcz4M.js.br +0 -0
- package/dist/web/assets/csv-preview-CmKkcz4M.js.gz +0 -0
- package/dist/web/assets/{db-explorer-store-DDePT3UI.js → db-explorer-store-DJNNIfN5.js} +1 -1
- package/dist/web/assets/db-explorer-store-DJNNIfN5.js.br +0 -0
- package/dist/web/assets/db-explorer-store-DJNNIfN5.js.gz +0 -0
- package/dist/web/assets/{db-sidebar-reveal-BeT8cp6P.js → db-sidebar-reveal-CGqWBYay.js} +1 -1
- package/dist/web/assets/db-sidebar-reveal-CGqWBYay.js.br +0 -0
- package/dist/web/assets/db-sidebar-reveal-CGqWBYay.js.gz +0 -0
- package/dist/web/assets/{db-tab-parts-BYzd4_sR.js → db-tab-parts-BXL34wrZ.js} +1 -1
- package/dist/web/assets/db-tab-parts-BXL34wrZ.js.br +0 -0
- package/dist/web/assets/db-tab-parts-BXL34wrZ.js.gz +0 -0
- package/dist/web/assets/{design-settings-section-B3KQBggK.js → design-settings-section-DukfVtwP.js} +2 -2
- package/dist/web/assets/design-settings-section-DukfVtwP.js.br +0 -0
- package/dist/web/assets/design-settings-section-DukfVtwP.js.gz +0 -0
- package/dist/web/assets/{design-tab-CPyj_nFg.js → design-tab-BoPiL2ge.js} +5 -5
- package/dist/web/assets/design-tab-BoPiL2ge.js.br +0 -0
- package/dist/web/assets/design-tab-BoPiL2ge.js.gz +0 -0
- package/dist/web/assets/{designs-sidebar-panel-DIGPFo2l.js → designs-sidebar-panel-BVTqPPzG.js} +1 -1
- package/dist/web/assets/designs-sidebar-panel-BVTqPPzG.js.br +0 -0
- package/dist/web/assets/designs-sidebar-panel-BVTqPPzG.js.gz +0 -0
- package/dist/web/assets/diff-viewer-C86mR7vD.js +4 -0
- package/dist/web/assets/diff-viewer-C86mR7vD.js.br +0 -0
- package/dist/web/assets/diff-viewer-C86mR7vD.js.gz +0 -0
- package/dist/web/assets/{docx-preview-CowHGqML.js → docx-preview-B9EhDCMi.js} +1 -1
- package/dist/web/assets/docx-preview-B9EhDCMi.js.br +0 -0
- package/dist/web/assets/docx-preview-B9EhDCMi.js.gz +0 -0
- package/dist/web/assets/{editor-dialog-xPoehDYp.js → editor-dialog-DTDsbJd6.js} +1 -1
- package/dist/web/assets/editor-dialog-DTDsbJd6.js.br +0 -0
- package/dist/web/assets/editor-dialog-DTDsbJd6.js.gz +0 -0
- package/dist/web/assets/{editor-language-service-DdYqCDBU.js → editor-language-service-BtrrQAS2.js} +1 -1
- package/dist/web/assets/editor-language-service-BtrrQAS2.js.br +0 -0
- package/dist/web/assets/editor-language-service-BtrrQAS2.js.gz +0 -0
- package/dist/web/assets/explorer-body-DLaWmxri.js +2 -0
- package/dist/web/assets/explorer-body-DLaWmxri.js.br +0 -0
- package/dist/web/assets/explorer-body-DLaWmxri.js.gz +0 -0
- package/dist/web/assets/{explorer-model-tGyFETP_.js → explorer-model-f5q-50DN.js} +1 -1
- package/dist/web/assets/explorer-model-f5q-50DN.js.br +0 -0
- package/dist/web/assets/explorer-model-f5q-50DN.js.gz +0 -0
- package/dist/web/assets/{explorer-window-content-B1c4QTVL.js → explorer-window-content-CbUIbrzL.js} +1 -1
- package/dist/web/assets/explorer-window-content-CbUIbrzL.js.br +0 -0
- package/dist/web/assets/explorer-window-content-CbUIbrzL.js.gz +0 -0
- package/dist/web/assets/{extension-manager-section-BgL0Uyl3.js → extension-manager-section-BpKMyLwI.js} +1 -1
- package/dist/web/assets/extension-manager-section-BpKMyLwI.js.br +0 -0
- package/dist/web/assets/extension-manager-section-BpKMyLwI.js.gz +0 -0
- package/dist/web/assets/{extension-webview-BWB1Yd-t.js → extension-webview-BGfyaXMI.js} +1 -1
- package/dist/web/assets/extension-webview-BGfyaXMI.js.br +0 -0
- package/dist/web/assets/extension-webview-BGfyaXMI.js.gz +0 -0
- package/dist/web/assets/{files-settings-section-TmoewoO2.js → files-settings-section-CQT9_rX2.js} +1 -1
- package/dist/web/assets/files-settings-section-CQT9_rX2.js.br +0 -0
- package/dist/web/assets/files-settings-section-CQT9_rX2.js.gz +0 -0
- package/dist/web/assets/{general-settings-section-Bu7o8uUn.js → general-settings-section-BoQGeqBi.js} +1 -1
- package/dist/web/assets/general-settings-section-BoQGeqBi.js.br +0 -0
- package/dist/web/assets/general-settings-section-BoQGeqBi.js.gz +0 -0
- package/dist/web/assets/{git-log-panel-RjMZIaCk.js → git-log-panel-T8Fzn8-5.js} +1 -1
- package/dist/web/assets/git-log-panel-T8Fzn8-5.js.br +0 -0
- package/dist/web/assets/git-log-panel-T8Fzn8-5.js.gz +0 -0
- package/dist/web/assets/git-review-tab-WzuX4Ml9.js +3 -0
- package/dist/web/assets/git-review-tab-WzuX4Ml9.js.br +0 -0
- package/dist/web/assets/git-review-tab-WzuX4Ml9.js.gz +0 -0
- package/dist/web/assets/{glide-data-grid-DqlTFhhf.js → glide-data-grid-BBzGDYvj.js} +8 -8
- package/dist/web/assets/glide-data-grid-BBzGDYvj.js.br +0 -0
- package/dist/web/assets/glide-data-grid-BBzGDYvj.js.gz +0 -0
- package/dist/web/assets/{grid-save-dialog-BmF2Gy_E.js → grid-save-dialog-HiqlnSky.js} +1 -1
- package/dist/web/assets/grid-save-dialog-HiqlnSky.js.br +0 -0
- package/dist/web/assets/grid-save-dialog-HiqlnSky.js.gz +0 -0
- package/dist/web/assets/group-chat-tab-URU3FCLs.js +1 -0
- package/dist/web/assets/group-chat-tab-URU3FCLs.js.br +0 -0
- package/dist/web/assets/group-chat-tab-URU3FCLs.js.gz +0 -0
- package/dist/web/assets/{impexp-tab-B8d4oBOB.js → impexp-tab-B0m1Q8ia.js} +1 -1
- package/dist/web/assets/impexp-tab-B0m1Q8ia.js.br +0 -0
- package/dist/web/assets/impexp-tab-B0m1Q8ia.js.gz +0 -0
- package/dist/web/assets/index-Cb3Z6wNy.css +1 -0
- package/dist/web/assets/index-Cb3Z6wNy.css.br +0 -0
- package/dist/web/assets/{index-2_Pz5MiI.css.gz → index-Cb3Z6wNy.css.gz} +0 -0
- package/dist/web/assets/{index-Cx9ZRibz.js → index-Vd9Xr54k.js} +19 -19
- package/dist/web/assets/index-Vd9Xr54k.js.br +0 -0
- package/dist/web/assets/index-Vd9Xr54k.js.gz +0 -0
- package/dist/web/assets/{jira-watcher-section-LGTWVN87.js → jira-watcher-section-CnSTbAF6.js} +1 -1
- package/dist/web/assets/keybindings-store-D_U8jECl.js +1 -0
- package/dist/web/assets/{keyboard-shortcuts-section-BSMgmbOR.js → keyboard-shortcuts-section-CU7JjDsU.js} +1 -1
- package/dist/web/assets/keyboard-shortcuts-section-CU7JjDsU.js.br +0 -0
- package/dist/web/assets/keyboard-shortcuts-section-CU7JjDsU.js.gz +0 -0
- package/dist/web/assets/{language-servers-section-DO9wnwnG.js → language-servers-section-CzUG9H69.js} +2 -2
- package/dist/web/assets/language-servers-section-CzUG9H69.js.br +0 -0
- package/dist/web/assets/language-servers-section-CzUG9H69.js.gz +0 -0
- package/dist/web/assets/logs-app-CDSvyY1H.js +13 -0
- package/dist/web/assets/logs-app-CDSvyY1H.js.br +0 -0
- package/dist/web/assets/logs-app-CDSvyY1H.js.gz +0 -0
- package/dist/web/assets/logs-tab-CQw9vrNw.js +1 -0
- package/dist/web/assets/{logs-window-content-Cejko0VD.js → logs-window-content-CGvPnPrr.js} +1 -1
- package/dist/web/assets/{lsp-client-IsC8Ol0U.js → lsp-client-CpjPUUYJ.js} +1 -1
- package/dist/web/assets/lsp-client-CpjPUUYJ.js.br +0 -0
- package/dist/web/assets/lsp-client-CpjPUUYJ.js.gz +0 -0
- package/dist/web/assets/{markdown-renderer-D5vxN2fO.js → markdown-renderer-3ZR2x0CC.js} +1 -1
- package/dist/web/assets/{markdown-renderer-BfZiHaNy.js → markdown-renderer-DZNMRg6p.js} +2 -2
- package/dist/web/assets/markdown-renderer-DZNMRg6p.js.br +0 -0
- package/dist/web/assets/markdown-renderer-DZNMRg6p.js.gz +0 -0
- package/dist/web/assets/{mobile-explorer-sheet-Dz3eJdBl.js → mobile-explorer-sheet-D7e-MM6m.js} +1 -1
- package/dist/web/assets/mobile-explorer-sheet-D7e-MM6m.js.br +0 -0
- package/dist/web/assets/mobile-explorer-sheet-D7e-MM6m.js.gz +0 -0
- package/dist/web/assets/{new-design-dialog-B8zeJoJQ.js → new-design-dialog-BthM423i.js} +1 -1
- package/dist/web/assets/new-design-dialog-BthM423i.js.br +0 -0
- package/dist/web/assets/new-design-dialog-BthM423i.js.gz +0 -0
- package/dist/web/assets/notification-store-GKweleCQ.js +1 -0
- package/dist/web/assets/{notifications-settings-section-CMZXQw72.js → notifications-settings-section-TS3gNFcc.js} +1 -1
- package/dist/web/assets/notifications-settings-section-TS3gNFcc.js.br +0 -0
- package/dist/web/assets/notifications-settings-section-TS3gNFcc.js.gz +0 -0
- package/dist/web/assets/{open-db-tabs-DYTZbguT.js → open-db-tabs-DBgV2hbA.js} +1 -1
- package/dist/web/assets/open-db-tabs-DBgV2hbA.js.br +0 -0
- package/dist/web/assets/open-db-tabs-DBgV2hbA.js.gz +0 -0
- package/dist/web/assets/{open-settings-BGtoVEAU.js → open-settings-DWbF5YsE.js} +1 -1
- package/dist/web/assets/{overview-panel-7_8b6pwr.js → overview-panel-C5EmTk1R.js} +1 -1
- package/dist/web/assets/overview-panel-C5EmTk1R.js.br +0 -0
- package/dist/web/assets/overview-panel-C5EmTk1R.js.gz +0 -0
- package/dist/web/assets/{panel-store-Dx2ziBLp.js → panel-store-H7e9XHZF.js} +1 -1
- package/dist/web/assets/panel-store-H7e9XHZF.js.br +0 -0
- package/dist/web/assets/panel-store-H7e9XHZF.js.gz +0 -0
- package/dist/web/assets/{patch-tab-metadata-DTbCkVvx.js → patch-tab-metadata-DqvfqUI4.js} +1 -1
- package/dist/web/assets/{performance-panel-COQNCyEU.js → performance-panel-Jwab-_Z2.js} +1 -1
- package/dist/web/assets/performance-panel-Jwab-_Z2.js.br +0 -0
- package/dist/web/assets/performance-panel-Jwab-_Z2.js.gz +0 -0
- package/dist/web/assets/{ppmbot-settings-section-CmhbbZVI.js → ppmbot-settings-section-D8jIlmp8.js} +1 -1
- package/dist/web/assets/ppmbot-settings-section-D8jIlmp8.js.br +0 -0
- package/dist/web/assets/ppmbot-settings-section-D8jIlmp8.js.gz +0 -0
- package/dist/web/assets/{pptx-export-COeBmnFJ.js → pptx-export-gXOWUZXL.js} +3 -3
- package/dist/web/assets/pptx-export-gXOWUZXL.js.br +0 -0
- package/dist/web/assets/pptx-export-gXOWUZXL.js.gz +0 -0
- package/dist/web/assets/{problems-panel-I0EYfa1S.js → problems-panel-DjCHA1r5.js} +1 -1
- package/dist/web/assets/problems-panel-DjCHA1r5.js.br +0 -0
- package/dist/web/assets/problems-panel-DjCHA1r5.js.gz +0 -0
- package/dist/web/assets/{process-table-or-X8Lwh.js → process-table-BxXEh4tN.js} +1 -1
- package/dist/web/assets/process-table-BxXEh4tN.js.br +0 -0
- package/dist/web/assets/process-table-BxXEh4tN.js.gz +0 -0
- package/dist/web/assets/{proxy-settings-section-DpJ6ok4C.js → proxy-settings-section-B8igco2L.js} +1 -1
- package/dist/web/assets/proxy-settings-section-B8igco2L.js.br +0 -0
- package/dist/web/assets/proxy-settings-section-B8igco2L.js.gz +0 -0
- package/dist/web/assets/{query-tab-DeNZMZHX.js → query-tab-DHU3ANHN.js} +3 -3
- package/dist/web/assets/query-tab-DHU3ANHN.js.br +0 -0
- package/dist/web/assets/query-tab-DHU3ANHN.js.gz +0 -0
- package/dist/web/assets/release-notes-window-content-B33RDfFY.js +1 -0
- package/dist/web/assets/remote-access-settings-section-CoYQTFKd.js +1 -0
- package/dist/web/assets/remote-access-settings-section-CoYQTFKd.js.br +0 -0
- package/dist/web/assets/remote-access-settings-section-CoYQTFKd.js.gz +0 -0
- package/dist/web/assets/{remote-desktop-clipboard-notice-CGDBpXMf.js → remote-desktop-clipboard-notice-Dwn-iV4g.js} +1 -1
- package/dist/web/assets/remote-desktop-clipboard-notice-Dwn-iV4g.js.br +0 -0
- package/dist/web/assets/remote-desktop-clipboard-notice-Dwn-iV4g.js.gz +0 -0
- package/dist/web/assets/{remote-desktop-mobile-sheet-6nXirdqZ.js → remote-desktop-mobile-sheet-bfKiSG0C.js} +2 -2
- package/dist/web/assets/remote-desktop-mobile-sheet-bfKiSG0C.js.br +0 -0
- package/dist/web/assets/remote-desktop-mobile-sheet-bfKiSG0C.js.gz +0 -0
- package/dist/web/assets/{remote-desktop-mobile-view-BTaj9Flo.js → remote-desktop-mobile-view-CV8eHh4A.js} +1 -1
- package/dist/web/assets/remote-desktop-mobile-view-CV8eHh4A.js.br +0 -0
- package/dist/web/assets/remote-desktop-mobile-view-CV8eHh4A.js.gz +0 -0
- package/dist/web/assets/{remote-desktop-readiness-gate--gtmfqZh.js → remote-desktop-readiness-gate-DrSYb_9z.js} +1 -1
- package/dist/web/assets/remote-desktop-readiness-gate-DrSYb_9z.js.br +0 -0
- package/dist/web/assets/remote-desktop-readiness-gate-DrSYb_9z.js.gz +0 -0
- package/dist/web/assets/{remote-desktop-settings-section-Bs5avYaS.js → remote-desktop-settings-section-DRO8n8t7.js} +1 -1
- package/dist/web/assets/remote-desktop-settings-section-DRO8n8t7.js.br +0 -0
- package/dist/web/assets/remote-desktop-settings-section-DRO8n8t7.js.gz +0 -0
- package/dist/web/assets/{remote-desktop-window-content-D4CM-28B.js → remote-desktop-window-content-CAuxeGbK.js} +1 -1
- package/dist/web/assets/remote-desktop-window-content-CAuxeGbK.js.br +0 -0
- package/dist/web/assets/remote-desktop-window-content-CAuxeGbK.js.gz +0 -0
- package/dist/web/assets/{rename-object-dialog-Dv4iLwnf.js → rename-object-dialog-BPuh3dAH.js} +1 -1
- package/dist/web/assets/rename-object-dialog-BPuh3dAH.js.br +0 -0
- package/dist/web/assets/rename-object-dialog-BPuh3dAH.js.gz +0 -0
- package/dist/web/assets/review-address-setup-CoI2BGdx.js +1 -0
- package/dist/web/assets/review-address-setup-CoI2BGdx.js.br +0 -0
- package/dist/web/assets/review-address-setup-CoI2BGdx.js.gz +0 -0
- package/dist/web/assets/{review-code-Bet53hHb.js → review-code-Dy8y4_17.js} +1 -1
- package/dist/web/assets/review-code-Dy8y4_17.js.br +0 -0
- package/dist/web/assets/review-code-Dy8y4_17.js.gz +0 -0
- package/dist/web/assets/{run-in-terminal-EVMb5TjW.js → run-in-terminal-DAdjH24K.js} +1 -1
- package/dist/web/assets/{run-in-terminal-button-CsYq6Xqo.js → run-in-terminal-button-Bu165IH-.js} +1 -1
- package/dist/web/assets/{save-as-dialog-DHkBsS-6.js → save-as-dialog-C9OpJz2x.js} +1 -1
- package/dist/web/assets/save-as-dialog-C9OpJz2x.js.br +0 -0
- package/dist/web/assets/save-as-dialog-C9OpJz2x.js.gz +0 -0
- package/dist/web/assets/{schedule-script-editor-CKUl2qxf.js → schedule-script-editor--roOsFbc.js} +1 -1
- package/dist/web/assets/schedule-script-editor--roOsFbc.js.br +0 -0
- package/dist/web/assets/schedule-script-editor--roOsFbc.js.gz +0 -0
- package/dist/web/assets/{schedules-settings-section-EoOXzqF3.js → schedules-settings-section-BTn_NSzU.js} +3 -3
- package/dist/web/assets/schedules-settings-section-BTn_NSzU.js.br +0 -0
- package/dist/web/assets/schedules-settings-section-BTn_NSzU.js.gz +0 -0
- package/dist/web/assets/{send-to-chat-B7oUVcgh.js → send-to-chat-BUxj21hD.js} +1 -1
- package/dist/web/assets/send-to-chat-BUxj21hD.js.br +0 -0
- package/dist/web/assets/send-to-chat-BUxj21hD.js.gz +0 -0
- package/dist/web/assets/{services-panel-BceuL_SU.js → services-panel-BynENSs6.js} +1 -1
- package/dist/web/assets/services-panel-BynENSs6.js.br +0 -0
- package/dist/web/assets/services-panel-BynENSs6.js.gz +0 -0
- package/dist/web/assets/{session-changes-bar-CjSxBYOF.js → session-changes-bar-Dz3QitdJ.js} +1 -1
- package/dist/web/assets/session-changes-bar-Dz3QitdJ.js.br +0 -0
- package/dist/web/assets/session-changes-bar-Dz3QitdJ.js.gz +0 -0
- package/dist/web/assets/{session-review-tab-yIQFGJbG.js → session-review-tab-fRzyogNH.js} +1 -1
- package/dist/web/assets/session-review-tab-fRzyogNH.js.br +0 -0
- package/dist/web/assets/session-review-tab-fRzyogNH.js.gz +0 -0
- package/dist/web/assets/{settings-body-DXNcpoqY.js → settings-body-D5pmlFft.js} +1 -1
- package/dist/web/assets/settings-body-D5pmlFft.js.br +0 -0
- package/dist/web/assets/settings-body-D5pmlFft.js.gz +0 -0
- package/dist/web/assets/{settings-rows-DgL7oTg8.js → settings-rows-VtjChFlm.js} +1 -1
- package/dist/web/assets/settings-rows-VtjChFlm.js.br +0 -0
- package/dist/web/assets/settings-rows-VtjChFlm.js.gz +0 -0
- package/dist/web/assets/{settings-section-content-DFLjO2le.js → settings-section-content-BOwSlBkZ.js} +2 -2
- package/dist/web/assets/settings-section-content-BOwSlBkZ.js.br +0 -0
- package/dist/web/assets/settings-section-content-BOwSlBkZ.js.gz +0 -0
- package/dist/web/assets/{settings-section-content-B1eU_yR4.js → settings-section-content-Ck39TJA7.js} +1 -1
- package/dist/web/assets/{settings-store-CBJCnE5L.js → settings-store-CMpVMq3Y.js} +2 -2
- package/dist/web/assets/settings-store-CMpVMq3Y.js.br +0 -0
- package/dist/web/assets/settings-store-CMpVMq3Y.js.gz +0 -0
- package/dist/web/assets/settings-tab-A81xb81d.js +1 -0
- package/dist/web/assets/settings-window-content-BCDRi6xS.js +1 -0
- package/dist/web/assets/{slash-command-picker-qb3fZ7RP.js → slash-command-picker-BKeEykkF.js} +1 -1
- package/dist/web/assets/slash-command-picker-BKeEykkF.js.br +0 -0
- package/dist/web/assets/slash-command-picker-BKeEykkF.js.gz +0 -0
- package/dist/web/assets/{sql-object-tab-B6JtYu9P.js → sql-object-tab-I5bl3DVf.js} +1 -1
- package/dist/web/assets/sql-object-tab-I5bl3DVf.js.br +0 -0
- package/dist/web/assets/sql-object-tab-I5bl3DVf.js.gz +0 -0
- package/dist/web/assets/{sqlite-viewer-bdNkUymy.js → sqlite-viewer-ECCCjxdn.js} +1 -1
- package/dist/web/assets/sqlite-viewer-ECCCjxdn.js.br +0 -0
- package/dist/web/assets/sqlite-viewer-ECCCjxdn.js.gz +0 -0
- package/dist/web/assets/{structure-save-dialog-5SfYdbAB.js → structure-save-dialog-DcQdamD3.js} +1 -1
- package/dist/web/assets/structure-save-dialog-DcQdamD3.js.br +0 -0
- package/dist/web/assets/structure-save-dialog-DcQdamD3.js.gz +0 -0
- package/dist/web/assets/{structure-tab-DYjjcLIU.js → structure-tab-DyQGhf9t.js} +2 -2
- package/dist/web/assets/structure-tab-DyQGhf9t.js.br +0 -0
- package/dist/web/assets/structure-tab-DyQGhf9t.js.gz +0 -0
- package/dist/web/assets/{system-monitor-body-DouL7ajt.js → system-monitor-body-B5AvRT5J.js} +2 -2
- package/dist/web/assets/system-monitor-body-B5AvRT5J.js.br +0 -0
- package/dist/web/assets/system-monitor-body-B5AvRT5J.js.gz +0 -0
- package/dist/web/assets/system-monitor-tab-CfwHKQ5k.js +1 -0
- package/dist/web/assets/{system-monitor-window-content-DUCaJME1.js → system-monitor-window-content-Cvx1V8Mf.js} +1 -1
- package/dist/web/assets/{tab-host-window-content-CQ5NiV6Y.js → tab-host-window-content-DqOUHxEL.js} +1 -1
- package/dist/web/assets/tab-host-window-content-DqOUHxEL.js.br +0 -0
- package/dist/web/assets/tab-host-window-content-DqOUHxEL.js.gz +0 -0
- package/dist/web/assets/{tab-store-B4v2kAEY.js → tab-store-NUmgzMPf.js} +1 -1
- package/dist/web/assets/table-tab-dI8rBbCS.js +2 -0
- package/dist/web/assets/table-tab-dI8rBbCS.js.br +0 -0
- package/dist/web/assets/table-tab-dI8rBbCS.js.gz +0 -0
- package/dist/web/assets/{telegram-bot-token-field-CqVIuWP1.js → telegram-bot-token-field-DSLtG8vw.js} +1 -1
- package/dist/web/assets/telegram-bot-token-field-DSLtG8vw.js.br +0 -0
- package/dist/web/assets/telegram-bot-token-field-DSLtG8vw.js.gz +0 -0
- package/dist/web/assets/{terminal-tab-DT0MN_Qn.js → terminal-tab-CDg0AHBK.js} +2 -2
- package/dist/web/assets/terminal-tab-CDg0AHBK.js.br +0 -0
- package/dist/web/assets/terminal-tab-CDg0AHBK.js.gz +0 -0
- package/dist/web/assets/{tool-cards-C2YGSKRm.js → tool-cards-7E0jtwP0.js} +5 -5
- package/dist/web/assets/tool-cards-7E0jtwP0.js.br +0 -0
- package/dist/web/assets/tool-cards-7E0jtwP0.js.gz +0 -0
- package/dist/web/assets/{tools-settings-section-DQXIdF8O.js → tools-settings-section-AChVQJyU.js} +1 -1
- package/dist/web/assets/tools-settings-section-AChVQJyU.js.br +0 -0
- package/dist/web/assets/tools-settings-section-AChVQJyU.js.gz +0 -0
- package/dist/web/assets/{use-db-read-BByB906L.js → use-db-read-DgNa66Yo.js} +1 -1
- package/dist/web/assets/use-db-read-DgNa66Yo.js.br +0 -0
- package/dist/web/assets/use-db-read-DgNa66Yo.js.gz +0 -0
- package/dist/web/assets/{use-db-tab-Dc0QSFyM.js → use-db-tab-OGLoicCd.js} +1 -1
- package/dist/web/assets/use-db-tab-OGLoicCd.js.br +0 -0
- package/dist/web/assets/use-db-tab-OGLoicCd.js.gz +0 -0
- package/dist/web/assets/{use-inline-blame-B9M-hADX.js → use-inline-blame-BvlcOQd9.js} +3 -3
- package/dist/web/assets/use-inline-blame-BvlcOQd9.js.br +0 -0
- package/dist/web/assets/use-inline-blame-BvlcOQd9.js.gz +0 -0
- package/dist/web/assets/{use-lsp-DcGiCpl9.js → use-lsp-fLNwD0BI.js} +1 -1
- package/dist/web/assets/use-lsp-fLNwD0BI.js.br +0 -0
- package/dist/web/assets/use-lsp-fLNwD0BI.js.gz +0 -0
- package/dist/web/assets/{use-monaco-theme-CyoMsYaI.js → use-monaco-theme-CbNQ4HnC.js} +1 -1
- package/dist/web/assets/{use-process-kill-DsHyrg0-.js → use-process-kill-B4Srjl2m.js} +1 -1
- package/dist/web/assets/use-process-kill-B4Srjl2m.js.br +0 -0
- package/dist/web/assets/use-process-kill-B4Srjl2m.js.gz +0 -0
- package/dist/web/assets/{use-sql-schema-info-BqGN5N4O.js → use-sql-schema-info-CqISFaAW.js} +1 -1
- package/dist/web/assets/use-sql-schema-info-CqISFaAW.js.br +0 -0
- package/dist/web/assets/use-sql-schema-info-CqISFaAW.js.gz +0 -0
- package/dist/web/assets/{use-websocket-DqomrzN8.js → use-websocket-DVJuWhlA.js} +1 -1
- package/dist/web/assets/{voice-settings-section-D9KsOm8A.js → voice-settings-section-C1aEYF94.js} +1 -1
- package/dist/web/assets/voice-settings-section-C1aEYF94.js.br +0 -0
- package/dist/web/assets/voice-settings-section-C1aEYF94.js.gz +0 -0
- package/dist/web/assets/{web-preview-tab-CUp1n2jz.js → web-preview-tab-CZJAVoVU.js} +1 -1
- package/dist/web/assets/web-preview-tab-CZJAVoVU.js.br +0 -0
- package/dist/web/assets/web-preview-tab-CZJAVoVU.js.gz +0 -0
- package/dist/web/assets/{window-store-UcSFgNCI.js → window-store-D6EgLSfT.js} +1 -1
- package/dist/web/assets/window-store-D6EgLSfT.js.br +0 -0
- package/dist/web/assets/window-store-D6EgLSfT.js.gz +0 -0
- package/dist/web/index.html +12 -12
- package/dist/web/index.html.br +0 -0
- package/dist/web/index.html.gz +0 -0
- package/dist/web/sw.js +1 -1
- package/dist/web/sw.js.br +0 -0
- package/dist/web/sw.js.gz +0 -0
- package/package.json +1 -1
- package/src/services/claude-usage.service.ts +64 -7
- package/src/web/components/floating-window/use-window-meta.ts +2 -1
- package/src/web/components/floating-window/window-content-registry.ts +2 -0
- package/src/web/components/floating-window/window-store-types.ts +1 -1
- package/src/web/components/layout/upgrade-button.tsx +27 -46
- package/src/web/components/release-notes/open-release-notes.ts +22 -0
- package/src/web/components/release-notes/release-notes-entry.tsx +73 -0
- package/src/web/components/release-notes/release-notes-view.tsx +72 -0
- package/src/web/components/release-notes/release-notes-window-content.tsx +6 -0
- package/dist/web/assets/accounts-settings-section-Ctu-w8kt.js +0 -1
- package/dist/web/assets/accounts-settings-section-Ctu-w8kt.js.br +0 -0
- package/dist/web/assets/accounts-settings-section-Ctu-w8kt.js.gz +0 -0
- package/dist/web/assets/agent-session-sheet-DmbSfFGz.js.br +0 -0
- package/dist/web/assets/agent-session-sheet-DmbSfFGz.js.gz +0 -0
- package/dist/web/assets/agent-session-window-content-Dk8x3ozF.js.br +0 -0
- package/dist/web/assets/agent-session-window-content-Dk8x3ozF.js.gz +0 -0
- package/dist/web/assets/ai-resource-editor-MKwjYcDh.js.br +0 -0
- package/dist/web/assets/ai-resource-editor-MKwjYcDh.js.gz +0 -0
- package/dist/web/assets/ai-settings-section-CODZY71V.js +0 -1
- package/dist/web/assets/ai-settings-section-CODZY71V.js.br +0 -0
- package/dist/web/assets/ai-settings-section-CODZY71V.js.gz +0 -0
- package/dist/web/assets/android-tab-CUkjbfyi.js.br +0 -0
- package/dist/web/assets/android-tab-CUkjbfyi.js.gz +0 -0
- package/dist/web/assets/appearance-settings-section-BZsM8HpZ.js.br +0 -0
- package/dist/web/assets/appearance-settings-section-BZsM8HpZ.js.gz +0 -0
- package/dist/web/assets/apps-panel-Cs3utBlp.js.br +0 -0
- package/dist/web/assets/apps-panel-Cs3utBlp.js.gz +0 -0
- package/dist/web/assets/branch-review-tab-C-aPuhXZ.js +0 -1
- package/dist/web/assets/branch-review-tab-C-aPuhXZ.js.br +0 -0
- package/dist/web/assets/branch-review-tab-C-aPuhXZ.js.gz +0 -0
- package/dist/web/assets/chat-tab-CGQu4uLR.js +0 -1
- package/dist/web/assets/chat-tab-CGQu4uLR.js.br +0 -0
- package/dist/web/assets/chat-tab-CGQu4uLR.js.gz +0 -0
- package/dist/web/assets/chat-tab-DtSHSfMU.js.br +0 -0
- package/dist/web/assets/chat-tab-DtSHSfMU.js.gz +0 -0
- package/dist/web/assets/code-editor-DjDyhff1.js.br +0 -0
- package/dist/web/assets/code-editor-DjDyhff1.js.gz +0 -0
- package/dist/web/assets/codex-reset-credit-button-BKgiUi8E.js.br +0 -0
- package/dist/web/assets/codex-reset-credit-button-BKgiUi8E.js.gz +0 -0
- package/dist/web/assets/conflict-editor-DgTv-8pb.js.br +0 -0
- package/dist/web/assets/conflict-editor-DgTv-8pb.js.gz +0 -0
- package/dist/web/assets/connection-form-tab-CJ-6gH9g.js +0 -4
- package/dist/web/assets/connection-form-tab-CJ-6gH9g.js.br +0 -0
- package/dist/web/assets/connection-form-tab-CJ-6gH9g.js.gz +0 -0
- package/dist/web/assets/csv-preview-BTGpYs4p.js.br +0 -0
- package/dist/web/assets/csv-preview-BTGpYs4p.js.gz +0 -0
- package/dist/web/assets/db-explorer-store-DDePT3UI.js.br +0 -0
- package/dist/web/assets/db-explorer-store-DDePT3UI.js.gz +0 -0
- package/dist/web/assets/db-sidebar-reveal-BeT8cp6P.js.br +0 -0
- package/dist/web/assets/db-sidebar-reveal-BeT8cp6P.js.gz +0 -0
- package/dist/web/assets/db-tab-parts-BYzd4_sR.js.br +0 -0
- package/dist/web/assets/db-tab-parts-BYzd4_sR.js.gz +0 -0
- package/dist/web/assets/design-settings-section-B3KQBggK.js.br +0 -0
- package/dist/web/assets/design-settings-section-B3KQBggK.js.gz +0 -0
- package/dist/web/assets/design-tab-CPyj_nFg.js.br +0 -0
- package/dist/web/assets/design-tab-CPyj_nFg.js.gz +0 -0
- package/dist/web/assets/designs-sidebar-panel-DIGPFo2l.js.br +0 -0
- package/dist/web/assets/designs-sidebar-panel-DIGPFo2l.js.gz +0 -0
- package/dist/web/assets/diff-viewer-nYz43A94.js +0 -4
- package/dist/web/assets/diff-viewer-nYz43A94.js.br +0 -0
- package/dist/web/assets/diff-viewer-nYz43A94.js.gz +0 -0
- package/dist/web/assets/docx-preview-CowHGqML.js.br +0 -0
- package/dist/web/assets/docx-preview-CowHGqML.js.gz +0 -0
- package/dist/web/assets/editor-dialog-xPoehDYp.js.br +0 -0
- package/dist/web/assets/editor-dialog-xPoehDYp.js.gz +0 -0
- package/dist/web/assets/editor-language-service-DdYqCDBU.js.br +0 -0
- package/dist/web/assets/editor-language-service-DdYqCDBU.js.gz +0 -0
- package/dist/web/assets/explorer-body-BHh5Qpvi.js +0 -2
- package/dist/web/assets/explorer-body-BHh5Qpvi.js.br +0 -0
- package/dist/web/assets/explorer-body-BHh5Qpvi.js.gz +0 -0
- package/dist/web/assets/explorer-model-tGyFETP_.js.br +0 -0
- package/dist/web/assets/explorer-model-tGyFETP_.js.gz +0 -0
- package/dist/web/assets/explorer-window-content-B1c4QTVL.js.br +0 -0
- package/dist/web/assets/explorer-window-content-B1c4QTVL.js.gz +0 -0
- package/dist/web/assets/extension-manager-section-BgL0Uyl3.js.br +0 -0
- package/dist/web/assets/extension-manager-section-BgL0Uyl3.js.gz +0 -0
- package/dist/web/assets/extension-webview-BWB1Yd-t.js.br +0 -0
- package/dist/web/assets/extension-webview-BWB1Yd-t.js.gz +0 -0
- package/dist/web/assets/files-settings-section-TmoewoO2.js.br +0 -0
- package/dist/web/assets/files-settings-section-TmoewoO2.js.gz +0 -0
- package/dist/web/assets/general-settings-section-Bu7o8uUn.js.br +0 -0
- package/dist/web/assets/general-settings-section-Bu7o8uUn.js.gz +0 -0
- package/dist/web/assets/git-log-panel-RjMZIaCk.js.br +0 -0
- package/dist/web/assets/git-log-panel-RjMZIaCk.js.gz +0 -0
- package/dist/web/assets/git-review-tab-BUW5LZk4.js +0 -3
- package/dist/web/assets/git-review-tab-BUW5LZk4.js.br +0 -0
- package/dist/web/assets/git-review-tab-BUW5LZk4.js.gz +0 -0
- package/dist/web/assets/glide-data-grid-DqlTFhhf.js.br +0 -0
- package/dist/web/assets/glide-data-grid-DqlTFhhf.js.gz +0 -0
- package/dist/web/assets/grid-save-dialog-BmF2Gy_E.js.br +0 -0
- package/dist/web/assets/grid-save-dialog-BmF2Gy_E.js.gz +0 -0
- package/dist/web/assets/group-chat-tab-nk3n5wE0.js +0 -1
- package/dist/web/assets/group-chat-tab-nk3n5wE0.js.br +0 -0
- package/dist/web/assets/group-chat-tab-nk3n5wE0.js.gz +0 -0
- package/dist/web/assets/impexp-tab-B8d4oBOB.js.br +0 -0
- package/dist/web/assets/impexp-tab-B8d4oBOB.js.gz +0 -0
- package/dist/web/assets/index-2_Pz5MiI.css +0 -1
- package/dist/web/assets/index-2_Pz5MiI.css.br +0 -0
- package/dist/web/assets/index-Cx9ZRibz.js.br +0 -0
- package/dist/web/assets/index-Cx9ZRibz.js.gz +0 -0
- package/dist/web/assets/keybindings-store-B2AkKQl7.js +0 -1
- package/dist/web/assets/keyboard-shortcuts-section-BSMgmbOR.js.br +0 -0
- package/dist/web/assets/keyboard-shortcuts-section-BSMgmbOR.js.gz +0 -0
- package/dist/web/assets/language-servers-section-DO9wnwnG.js.br +0 -0
- package/dist/web/assets/language-servers-section-DO9wnwnG.js.gz +0 -0
- package/dist/web/assets/logs-app-xQ2UsN4G.js +0 -13
- package/dist/web/assets/logs-app-xQ2UsN4G.js.br +0 -0
- package/dist/web/assets/logs-app-xQ2UsN4G.js.gz +0 -0
- package/dist/web/assets/logs-tab-H3SmYGRX.js +0 -1
- package/dist/web/assets/lsp-client-IsC8Ol0U.js.br +0 -0
- package/dist/web/assets/lsp-client-IsC8Ol0U.js.gz +0 -0
- package/dist/web/assets/markdown-renderer-BfZiHaNy.js.br +0 -0
- package/dist/web/assets/markdown-renderer-BfZiHaNy.js.gz +0 -0
- package/dist/web/assets/mobile-explorer-sheet-Dz3eJdBl.js.br +0 -0
- package/dist/web/assets/mobile-explorer-sheet-Dz3eJdBl.js.gz +0 -0
- package/dist/web/assets/new-design-dialog-B8zeJoJQ.js.br +0 -0
- package/dist/web/assets/new-design-dialog-B8zeJoJQ.js.gz +0 -0
- package/dist/web/assets/notification-store-BkkcJE2G.js +0 -1
- package/dist/web/assets/notifications-settings-section-CMZXQw72.js.br +0 -0
- package/dist/web/assets/notifications-settings-section-CMZXQw72.js.gz +0 -0
- package/dist/web/assets/open-db-tabs-DYTZbguT.js.br +0 -0
- package/dist/web/assets/open-db-tabs-DYTZbguT.js.gz +0 -0
- package/dist/web/assets/overview-panel-7_8b6pwr.js.br +0 -0
- package/dist/web/assets/overview-panel-7_8b6pwr.js.gz +0 -0
- package/dist/web/assets/panel-store-Dx2ziBLp.js.br +0 -0
- package/dist/web/assets/panel-store-Dx2ziBLp.js.gz +0 -0
- package/dist/web/assets/performance-panel-COQNCyEU.js.br +0 -0
- package/dist/web/assets/performance-panel-COQNCyEU.js.gz +0 -0
- package/dist/web/assets/ppmbot-settings-section-CmhbbZVI.js.br +0 -0
- package/dist/web/assets/ppmbot-settings-section-CmhbbZVI.js.gz +0 -0
- package/dist/web/assets/pptx-export-COeBmnFJ.js.br +0 -0
- package/dist/web/assets/pptx-export-COeBmnFJ.js.gz +0 -0
- package/dist/web/assets/problems-panel-I0EYfa1S.js.br +0 -0
- package/dist/web/assets/problems-panel-I0EYfa1S.js.gz +0 -0
- package/dist/web/assets/process-table-or-X8Lwh.js.br +0 -0
- package/dist/web/assets/process-table-or-X8Lwh.js.gz +0 -0
- package/dist/web/assets/proxy-settings-section-DpJ6ok4C.js.br +0 -0
- package/dist/web/assets/proxy-settings-section-DpJ6ok4C.js.gz +0 -0
- package/dist/web/assets/query-tab-DeNZMZHX.js.br +0 -0
- package/dist/web/assets/query-tab-DeNZMZHX.js.gz +0 -0
- package/dist/web/assets/remote-access-settings-section-QRP4Yh46.js +0 -1
- package/dist/web/assets/remote-access-settings-section-QRP4Yh46.js.br +0 -0
- package/dist/web/assets/remote-access-settings-section-QRP4Yh46.js.gz +0 -0
- package/dist/web/assets/remote-desktop-clipboard-notice-CGDBpXMf.js.br +0 -0
- package/dist/web/assets/remote-desktop-clipboard-notice-CGDBpXMf.js.gz +0 -0
- package/dist/web/assets/remote-desktop-mobile-sheet-6nXirdqZ.js.br +0 -0
- package/dist/web/assets/remote-desktop-mobile-sheet-6nXirdqZ.js.gz +0 -0
- package/dist/web/assets/remote-desktop-mobile-view-BTaj9Flo.js.br +0 -0
- package/dist/web/assets/remote-desktop-mobile-view-BTaj9Flo.js.gz +0 -0
- package/dist/web/assets/remote-desktop-readiness-gate--gtmfqZh.js.br +0 -0
- package/dist/web/assets/remote-desktop-readiness-gate--gtmfqZh.js.gz +0 -0
- package/dist/web/assets/remote-desktop-settings-section-Bs5avYaS.js.br +0 -0
- package/dist/web/assets/remote-desktop-settings-section-Bs5avYaS.js.gz +0 -0
- package/dist/web/assets/remote-desktop-window-content-D4CM-28B.js.br +0 -0
- package/dist/web/assets/remote-desktop-window-content-D4CM-28B.js.gz +0 -0
- package/dist/web/assets/rename-object-dialog-Dv4iLwnf.js.br +0 -0
- package/dist/web/assets/rename-object-dialog-Dv4iLwnf.js.gz +0 -0
- package/dist/web/assets/review-address-setup-CU1A_NfZ.js +0 -1
- package/dist/web/assets/review-address-setup-CU1A_NfZ.js.br +0 -0
- package/dist/web/assets/review-address-setup-CU1A_NfZ.js.gz +0 -0
- package/dist/web/assets/review-code-Bet53hHb.js.br +0 -0
- package/dist/web/assets/review-code-Bet53hHb.js.gz +0 -0
- package/dist/web/assets/save-as-dialog-DHkBsS-6.js.br +0 -0
- package/dist/web/assets/save-as-dialog-DHkBsS-6.js.gz +0 -0
- package/dist/web/assets/schedule-script-editor-CKUl2qxf.js.br +0 -0
- package/dist/web/assets/schedule-script-editor-CKUl2qxf.js.gz +0 -0
- package/dist/web/assets/schedules-settings-section-EoOXzqF3.js.br +0 -0
- package/dist/web/assets/schedules-settings-section-EoOXzqF3.js.gz +0 -0
- package/dist/web/assets/send-to-chat-B7oUVcgh.js.br +0 -0
- package/dist/web/assets/send-to-chat-B7oUVcgh.js.gz +0 -0
- package/dist/web/assets/services-panel-BceuL_SU.js.br +0 -0
- package/dist/web/assets/services-panel-BceuL_SU.js.gz +0 -0
- package/dist/web/assets/session-changes-bar-CjSxBYOF.js.br +0 -0
- package/dist/web/assets/session-changes-bar-CjSxBYOF.js.gz +0 -0
- package/dist/web/assets/session-review-tab-yIQFGJbG.js.br +0 -0
- package/dist/web/assets/session-review-tab-yIQFGJbG.js.gz +0 -0
- package/dist/web/assets/settings-body-DXNcpoqY.js.br +0 -0
- package/dist/web/assets/settings-body-DXNcpoqY.js.gz +0 -0
- package/dist/web/assets/settings-rows-DgL7oTg8.js.br +0 -0
- package/dist/web/assets/settings-rows-DgL7oTg8.js.gz +0 -0
- package/dist/web/assets/settings-section-content-DFLjO2le.js.br +0 -0
- package/dist/web/assets/settings-section-content-DFLjO2le.js.gz +0 -0
- package/dist/web/assets/settings-store-CBJCnE5L.js.br +0 -0
- package/dist/web/assets/settings-store-CBJCnE5L.js.gz +0 -0
- package/dist/web/assets/settings-tab-CrGoLKQT.js +0 -1
- package/dist/web/assets/settings-window-content-5opW9Wra.js +0 -1
- package/dist/web/assets/slash-command-picker-qb3fZ7RP.js.br +0 -0
- package/dist/web/assets/slash-command-picker-qb3fZ7RP.js.gz +0 -0
- package/dist/web/assets/sql-object-tab-B6JtYu9P.js.br +0 -0
- package/dist/web/assets/sql-object-tab-B6JtYu9P.js.gz +0 -0
- package/dist/web/assets/sqlite-viewer-bdNkUymy.js.br +0 -0
- package/dist/web/assets/sqlite-viewer-bdNkUymy.js.gz +0 -0
- package/dist/web/assets/structure-save-dialog-5SfYdbAB.js.br +0 -0
- package/dist/web/assets/structure-save-dialog-5SfYdbAB.js.gz +0 -0
- package/dist/web/assets/structure-tab-DYjjcLIU.js.br +0 -0
- package/dist/web/assets/structure-tab-DYjjcLIU.js.gz +0 -0
- package/dist/web/assets/system-monitor-body-DouL7ajt.js.br +0 -0
- package/dist/web/assets/system-monitor-body-DouL7ajt.js.gz +0 -0
- package/dist/web/assets/system-monitor-tab-qpa36tWB.js +0 -1
- package/dist/web/assets/tab-host-window-content-CQ5NiV6Y.js.br +0 -0
- package/dist/web/assets/tab-host-window-content-CQ5NiV6Y.js.gz +0 -0
- package/dist/web/assets/table-tab-M850PntZ.js +0 -2
- package/dist/web/assets/table-tab-M850PntZ.js.br +0 -0
- package/dist/web/assets/table-tab-M850PntZ.js.gz +0 -0
- package/dist/web/assets/telegram-bot-token-field-CqVIuWP1.js.br +0 -0
- package/dist/web/assets/telegram-bot-token-field-CqVIuWP1.js.gz +0 -0
- package/dist/web/assets/terminal-tab-DT0MN_Qn.js.br +0 -0
- package/dist/web/assets/terminal-tab-DT0MN_Qn.js.gz +0 -0
- package/dist/web/assets/tool-cards-C2YGSKRm.js.br +0 -0
- package/dist/web/assets/tool-cards-C2YGSKRm.js.gz +0 -0
- package/dist/web/assets/tools-settings-section-DQXIdF8O.js.br +0 -0
- package/dist/web/assets/tools-settings-section-DQXIdF8O.js.gz +0 -0
- package/dist/web/assets/use-db-read-BByB906L.js.br +0 -0
- package/dist/web/assets/use-db-read-BByB906L.js.gz +0 -0
- package/dist/web/assets/use-db-tab-Dc0QSFyM.js.br +0 -0
- package/dist/web/assets/use-db-tab-Dc0QSFyM.js.gz +0 -0
- package/dist/web/assets/use-inline-blame-B9M-hADX.js.br +0 -0
- package/dist/web/assets/use-inline-blame-B9M-hADX.js.gz +0 -0
- package/dist/web/assets/use-lsp-DcGiCpl9.js.br +0 -0
- package/dist/web/assets/use-lsp-DcGiCpl9.js.gz +0 -0
- package/dist/web/assets/use-process-kill-DsHyrg0-.js.br +0 -0
- package/dist/web/assets/use-process-kill-DsHyrg0-.js.gz +0 -0
- package/dist/web/assets/use-sql-schema-info-BqGN5N4O.js.br +0 -0
- package/dist/web/assets/use-sql-schema-info-BqGN5N4O.js.gz +0 -0
- package/dist/web/assets/voice-settings-section-D9KsOm8A.js.br +0 -0
- package/dist/web/assets/voice-settings-section-D9KsOm8A.js.gz +0 -0
- package/dist/web/assets/web-preview-tab-CUp1n2jz.js.br +0 -0
- package/dist/web/assets/web-preview-tab-CUp1n2jz.js.gz +0 -0
- package/dist/web/assets/window-store-UcSFgNCI.js.br +0 -0
- package/dist/web/assets/window-store-UcSFgNCI.js.gz +0 -0
- /package/dist/web/assets/{__vite-browser-external-DLaiEgUM.js → __vite-browser-external-LVpeGV-g.js} +0 -0
- /package/dist/web/assets/{api-themes-B3-6zR6Q.js → api-themes-DUOEO3_X.js} +0 -0
- /package/dist/web/assets/{claude-models-yFre4eSK.js → claude-models-C9iHl8VB.js} +0 -0
- /package/dist/web/assets/{database-drivers-section-c2SuNQPB.js → database-drivers-section-BPXoNrWi.js} +0 -0
- /package/dist/web/assets/{database-drivers-section-c2SuNQPB.js.br → database-drivers-section-BPXoNrWi.js.br} +0 -0
- /package/dist/web/assets/{database-drivers-section-c2SuNQPB.js.gz → database-drivers-section-BPXoNrWi.js.gz} +0 -0
- /package/dist/web/assets/{metric-chart-canvas-Dnm9OOXU.js → metric-chart-canvas-HG8rPTMq.js} +0 -0
- /package/dist/web/assets/{metric-chart-canvas-Dnm9OOXU.js.br → metric-chart-canvas-HG8rPTMq.js.br} +0 -0
- /package/dist/web/assets/{metric-chart-canvas-Dnm9OOXU.js.gz → metric-chart-canvas-HG8rPTMq.js.gz} +0 -0
- /package/dist/web/assets/{notification-settings-CvplVsIo.js → notification-settings--li9wGTJ.js} +0 -0
- /package/dist/web/assets/{notification-settings-CvplVsIo.js.br → notification-settings--li9wGTJ.js.br} +0 -0
- /package/dist/web/assets/{notification-settings-CvplVsIo.js.gz → notification-settings--li9wGTJ.js.gz} +0 -0
- /package/dist/web/assets/{process-row-format-CM1XaqkS.js → process-row-format-CJg8VV-6.js} +0 -0
- /package/dist/web/assets/{query-audit-section-C-fT07Zz.js → query-audit-section-BiCUBamA.js} +0 -0
- /package/dist/web/assets/{query-audit-section-C-fT07Zz.js.br → query-audit-section-BiCUBamA.js.br} +0 -0
- /package/dist/web/assets/{query-audit-section-C-fT07Zz.js.gz → query-audit-section-BiCUBamA.js.gz} +0 -0
- /package/dist/web/assets/{remote-desktop-recording-D_fwMC2z.js → remote-desktop-recording-BcDx5c_k.js} +0 -0
- /package/dist/web/assets/{separator-CYw7bF1W.js → separator-DUdRLaL0.js} +0 -0
- /package/dist/web/assets/{sortable-header-CchrA_dg.js → sortable-header-Ds6nTnqB.js} +0 -0
- /package/dist/web/assets/{sortable-header-CchrA_dg.js.br → sortable-header-Ds6nTnqB.js.br} +0 -0
- /package/dist/web/assets/{sortable-header-CchrA_dg.js.gz → sortable-header-Ds6nTnqB.js.gz} +0 -0
- /package/dist/web/assets/{vendor-xterm-lhGdimFj.js → vendor-xterm-BxbwWHG_.js} +0 -0
- /package/dist/web/assets/{vendor-xterm-lhGdimFj.js.br → vendor-xterm-BxbwWHG_.js.br} +0 -0
- /package/dist/web/assets/{vendor-xterm-lhGdimFj.js.gz → vendor-xterm-BxbwWHG_.js.gz} +0 -0
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/markdown-renderer-
|
|
2
|
-
import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{D as t,E as n}from"./vendor-markdown-C-P1aR4p.js";import{$ as r,Gt as i,Hr as a,J as o,L as s,M as c,P as l,Sr as u,St as d,Tt as f,_n as p,_t as m,at as h,bn as g,ct as _,gt as ee,in as v,jr as y,m as b,mt as x,n as S,pt as C,ti as w,tt as T,ui as E,w as D,wt as te,xn as O,xr as k,xt as ne}from"./icons-C1wDt09O.js";import{k as re}from"./api-client-BnYFnEfK.js";import{t as A}from"./react-B9hau9ra.js";import{t as j}from"./settings-store-CBJCnE5L.js";import{t as M}from"./preload-helper-Bf_JiD2A.js";import{n as N,t as P}from"./utils-D3xTlJyU.js";import{J as ie,X as ae,Y as oe,n as F,x as se}from"./window-store-UcSFgNCI.js";import{r as ce,t as I}from"./panel-store-Dx2ziBLp.js";import{i as L}from"./project-store-Bs-kiU8m.js";import{t as le}from"./tab-store-B4v2kAEY.js";import{i as ue,t as de}from"./file-store-Bn0vbkCx.js";import{n as fe}from"./use-is-mobile-CL2I7hLf.js";import{r as pe}from"./clipboard-D3XnL7CB.js";import{n as me}from"./fs-api-BVIVh_De.js";import{di as he,jn as ge,r as _e,ti as ve}from"./index-Cx9ZRibz.js";import{a as ye,i as be,n as xe,r as Se,t as Ce}from"./image-preview-geometry-BX1a3Lfa.js";import{t as R}from"./agent-session-sheet-store-BFUVxjab.js";import{t as we}from"./libesm-C9iw2_pm.js";import{t as Te}from"./use-blob-url-CIHAdKoN.js";import{r as Ee,t as De}from"./image-gallery-DuV1wTMD.js";import{a as Oe,i as ke,o as Ae}from"./html-preview-loads-xkLR1cU9.js";import{f as je,g as Me,h as Ne,i as Pe,l as Fe,m as Ie,n as Le,o as Re,p as ze,r as Be,t as Ve,u as He}from"./db-ai-tools-BhRcsCRL.js";var z=new Set([`Write`,`Edit`,`MultiEdit`,`NotebookEdit`]),Ue={create:3,write:2,notebook:2,edit:1};function B(e){return typeof e==`string`?e:``}function We(e,t){let n=0,r=0;for(let i of we(e,t))i.added?n+=i.count??0:i.removed&&(r+=i.count??0);return{added:n,removed:r}}function Ge(e){return e&&/created successfully/i.test(e)?`create`:`write`}function Ke(e,t,n){switch(e){case`Write`:{let e=B(t.file_path);return e?{filePath:e,op:Ge(n),fragments:[{oldStr:``,newStr:B(t.content)}]}:null}case`Edit`:{let e=B(t.file_path);return e?{filePath:e,op:`edit`,fragments:[{oldStr:B(t.old_string),newStr:B(t.new_string)}]}:null}case`MultiEdit`:{let e=B(t.file_path);if(!e||!Array.isArray(t.edits))return null;let n=t.edits.filter(e=>!!e&&typeof e==`object`).map(e=>({oldStr:B(e.old_string),newStr:B(e.new_string)}));return n.length===0?null:{filePath:e,op:`edit`,fragments:n}}case`NotebookEdit`:{let e=B(t.notebook_path)||B(t.file_path);return e?{filePath:e,op:`notebook`,fragments:[{oldStr:``,newStr:B(t.new_source)}]}:null}default:return null}}function qe(e,t){if(e!==`Edit`&&e!==`Write`||!Array.isArray(t.files))return null;let n=[];for(let e of t.files){if(!e||typeof e!=`object`)continue;let t=e,r=B(t.file_path);r&&n.push({filePath:r,op:t.op===`add`?`create`:`edit`,fragments:[{oldStr:B(t.old_string),newStr:B(t.new_string)}]})}return n.length>0?n:null}function Je(e,t){if(e){for(let n of e)if(n.type===`tool_result`&&n.toolUseId&&t.set(n.toolUseId,n.output??``),n.type===`tool_use`){let e=n.result;n.toolUseId&&e?.output!=null&&!t.has(n.toolUseId)&&t.set(n.toolUseId,e.output),Je(n.children,t)}}}function Ye(e,t,n,r){if(e)for(let i of e){if(i.type!==`tool_use`||(i.children?.length&&Ye(i.children,!0,n,r),!z.has(i.tool)))continue;let e=i.input&&typeof i.input==`object`?i.input:null;if(!e)continue;let a=Ke(i.tool,e,i.toolUseId?r.get(i.toolUseId):void 0),o=qe(i.tool,e)??(a?[a]:[]);for(let e of o)Xe(n,e,i.toolUseId,t)}}function Xe(e,t,n,r){let i=e.get(t.filePath);i||(i={filePath:t.filePath,op:t.op,editCount:0,linesAdded:0,linesRemoved:0,edits:[],viaSubagent:!1},e.set(t.filePath,i)),Ue[t.op]>Ue[i.op]&&(i.op=t.op),r&&(i.viaSubagent=!0),t.fragments.forEach((e,t)=>{let{added:a,removed:o}=We(e.oldStr,e.newStr);i.linesAdded+=a,i.linesRemoved+=o,i.editCount+=1,i.edits.push({...e,toolUseId:n,editIndex:t,editRef:n?`${n}-${t}`:void 0,viaSubagent:r})})}function Ze(e){let t=new Map;for(let n of e)Je(n.events,t);let n=new Map;for(let r of e)Ye(r.events,!1,n,t);return[...n.values()]}function Qe(e,t){let n=[];for(let r=t;r>=0&&e[r]?.role===`assistant`;r--)n.unshift(e[r]);return n}var $e=new Set([`Bash`,`PowerShell`]),et=new WeakMap;function tt(e){let t=et.get(e);if(t)return t;let n=new Set,r=[],i=[],a=e=>{for(let t of e??[]){if(t.type===`tool_result`&&t.toolUseId&&i.push(t.toolUseId),t.type!==`tool_use`||(t.toolUseId&&t.result!=null&&i.push(t.toolUseId),a(t.children),$e.has(t.tool)&&t.toolUseId&&r.push(t.toolUseId),!z.has(t.tool)))continue;let e=t.input&&typeof t.input==`object`?t.input:null;if(!e)continue;let o=Ke(t.tool,e),s=qe(t.tool,e)??(o?[o]:[]);for(let e of s)n.add(e.filePath);s.length>0&&t.toolUseId&&r.push(t.toolUseId)}};a(e.events);let o={paths:[...n],writeIds:r,resultIds:i};return et.set(e,o),o}function nt(e){let t=new Set,n=new Set,r=new Set;for(let i of e){let e=tt(i);for(let n of e.paths)t.add(n);for(let t of e.writeIds)n.add(t);for(let t of e.resultIds)r.add(t)}let i=0;for(let e of n)r.has(e)&&i++;return{paths:[...t],settled:i}}function V(e){return typeof e==`string`?e:``}function H(e){return`${e} step${e===1?``:`s`}`}function U(e,t){return e.length>t?e.slice(0,t)+`…`:e}function rt(e){if(e.type!==`tool_use`)return``;let t=e.tool,n=e.input&&typeof e.input==`object`?e.input:{};switch(t){case`Read`:case`Write`:case`Edit`:case`MultiEdit`:case`NotebookEdit`:{let e=V(n.notebook_path||n.file_path);return e?`${t} ${P(e)}`:t}case`Bash`:case`PowerShell`:return U(n.description?V(n.description):V(n.command),60)||t;case`Glob`:return`Glob ${V(n.pattern)}`;case`Grep`:return`Grep ${U(V(n.pattern),40)}`;case`WebSearch`:return`Search ${U(V(n.query),50)}`;case`WebFetch`:return`Fetch ${U(V(n.url),50)}`;case`ToolSearch`:return`Search ${U(V(n.query),50)}`;case`Agent`:case`Task`:{let e=typeof n.name==`string`&&n.name.trim()?n.name.trim():null,r=U(V(n.description||n.prompt),44);return e?r?`${e} · ${r}`:e:r||t}case`SendMessage`:return`Message ${U(V(n.to),30)}`.trim();case`TodoWrite`:return`Todo update`;case`AskUserQuestion`:return`Question`;case`ScheduleWakeup`:return`Scheduled wakeup`;case`TaskCreate`:return U(V(n.subject),60)||t;case`TaskUpdate`:return`Task #${V(n.taskId)} → ${V(n.status)}`;case`TaskStop`:return`Task #${V(n.taskId)} stopped`;case`ImageGen`:return`Image generation`;default:return t}}function it(e){return e===`Agent`||e===`Task`||z.has(e)}function W(e){let t=[],n=[],r=new Set,i;return(e??[]).forEach((e,a)=>{if(e.type===`tool_use`){t.push(e.toolUseId??`idx:${a}`);let o=rt(e);if(o&&(i=o),it(e.tool)){if(e.tool===`Agent`||e.tool===`Task`){let t=W(e.children);n.push({...e,children:t.kept,stepIds:t.stepIds,stepCount:t.stepIds.length,lastStep:t.lastStep})}else n.push(e);e.toolUseId&&r.add(e.toolUseId)}}else e.type===`tool_result`&&e.toolUseId&&r.has(e.toolUseId)&&n.push(e)}),{stepIds:t,lastStep:i,kept:n}}function at(e){let t=e.stepCount??e.stepIds?.length??W(e.children).stepIds.length;for(let n of e.children??[])n.type===`tool_use`&&(n.tool===`Agent`||n.tool===`Task`)&&(t+=at(n));return t}function ot(e){let t=at(e);if(e.stepCount!=null)return{stepCount:t,lastStep:e.lastStep};let{lastStep:n}=W(e.children);return{stepCount:t,lastStep:n}}function st(e){try{return JSON.stringify(e).length}catch{return 0}}function ct(e){let t=e.reduce((e,t)=>e+st(t),0),n=0;for(;t>262144&&n<e.length-1;)t-=st(e[n]),n++;return n>0?e.slice(n):e}function lt(e,t,n){let r=t.toolUseId;if(r){let i=e.findIndex(e=>e.type===t.type&&e.toolUseId===r);if(i!==-1){let r=e[i].arrivalSeq,a=[...e];return a[i]=n==null?t:{...t,arrivalSeq:r},a}}let i=n==null?t:{...t,arrivalSeq:n},a=[...e,i];return ct(a.length>200?a.slice(a.length-200):a)}function ut(e,t){let n=e=>e.map((e,t)=>({ev:e,seq:e.arrivalSeq??t}));return[...n(e),...n(t)].sort((e,t)=>e.seq-t.seq).map(e=>e.ev)}function dt(e,t){if(e.type!==`tool_use`)return e;let n=e.stepIds,r=e.lastStep;if(t.type===`tool_use`){let e=t.toolUseId;(!e||!n?.includes(e))&&(n=[...n??[],e??`idx:${n?.length??0}`]);let i=rt(t);i&&(r=i)}let i=e.childSeq??0,a=e=>{let n=t.toolUseId,r=n?e.findIndex(e=>e.type===t.type&&e.toolUseId===n):-1;if(r!==-1){let n=e[r].arrivalSeq,i=[...e];return i[r]={...t,arrivalSeq:n},i}return[...e,{...t,arrivalSeq:i}]},o=e.children??[],s=e.recentChildren??[],c=t.type===`tool_use`&&it(t.tool),l=e=>!!e&&o.some(t=>t.type===`tool_use`&&t.toolUseId===e),u=o,d=s;return c||t.type===`tool_result`&&l(t.toolUseId)?u=a(o):d=lt(s,t,i),{...e,children:u,recentChildren:d,stepIds:n,stepCount:n?.length,lastStep:r,childSeq:i+1}}function ft(e){return e&&e.map(e=>{if(e.type!==`tool_use`||e.tool!==`Agent`&&e.tool!==`Task`||!e.transcriptAvailable)return e;let{stepIds:t,lastStep:n,kept:r}=W(e.children);return{...e,children:r,stepIds:t,stepCount:t.length,lastStep:n}})}function G(e,t){return t.kind===`card`?`${e}:${t.cardId}`:`${e}:${t.teamName}:${t.memberName}`}var K=A(()=>({entries:{}}));function pt(e,t){K.setState(n=>({entries:{...n.entries,[e]:t}}))}function mt(){let e=new Set;for(let t of Object.values(F.getState().windows)){if(t.kind!==`agent-session`)continue;let n=t.payload;typeof n?.sessionId==`string`&&n.source&&e.add(G(n.sessionId,n.source))}let t=R.getState().payload;return t&&e.add(G(t.sessionId,t.source)),e}function ht(){let e=mt();K.setState(t=>{let n={},r=!1;for(let[i,a]of Object.entries(t.entries))e.has(i)?n[i]=a:r=!0;return r?{entries:n}:t})}F.subscribe(ht),R.subscribe(ht);var q=e(t(),1),J=n(),gt=(0,q.lazy)(()=>M(()=>import(`./markdown-renderer-D5vxN2fO.js`).then(e=>({default:e.MarkdownRenderer})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60])));function Y({content:e,maxHeight:t=`max-h-48`}){return(0,J.jsx)(q.Suspense,{fallback:(0,J.jsx)(`div`,{className:`animate-pulse h-4 bg-muted rounded`}),children:(0,J.jsx)(gt,{content:e,className:`text-text-secondary overflow-auto ${t}`})})}var _t={task_assignment:{label:`task`,className:`bg-primary/20 text-primary`},idle_notification:{label:`idle`,className:`bg-warning/20 text-warning`},completion:{label:`done`,className:`bg-success/20 text-success`},shutdown_request:{label:`shutdown`,className:`bg-error/20 text-error`},shutdown_approved:{label:`shutdown ✓`,className:`bg-text-3/20 text-text-3`},shutdown_response:{label:`shutdown reply`,className:`bg-text-3/20 text-text-3`},plan_approval_request:{label:`plan review`,className:`bg-primary/20 text-primary`},plan_approval_response:{label:`plan reply`,className:`bg-primary/20 text-primary`}},vt=new Set([`to`,`message`,`summary`,`notify_when_idle`,`recipient`,`content`,`type`]),X=e=>typeof e==`string`?e:e==null?``:String(e);function yt(e){if(!e||typeof e!=`object`||Array.isArray(e))return null;let t=e;return typeof t.type!=`string`||!t.type?null:{type:t.type,request_id:typeof t.request_id==`string`?t.request_id:void 0,approve:typeof t.approve==`boolean`?t.approve:void 0,reason:typeof t.reason==`string`?t.reason:void 0,feedback:typeof t.feedback==`string`?t.feedback:void 0}}function bt(e){let t=e.trim();if(!t.startsWith(`{`))return null;try{return yt(JSON.parse(t))}catch{return null}}function xt(e){let t=X(e.to)||X(e.recipient),n=e.message??e.content,r=yt(n)??bt(X(n)),i=r?``:X(n),a=X(e.type),o=r?.type||(a&&a!==`message`?a:`message`),s=X(e.summary).trim(),c=Object.entries(e).filter(([e])=>!vt.has(e)).map(([e,t])=>({key:e,value:typeof t==`string`?t:JSON.stringify(t)??``}));return{to:t,summary:s||void 0,text:i,firstLine:i.split(`
|
|
3
|
-
`).map(e=>e.trim()).find(e=>e.length>0)??``,protocol:r??void 0,kind:o,notifyWhenIdle:e.notify_when_idle===!0,extras:c}}function St(e){if(!e)return null;let t;try{t=JSON.parse(e)}catch{return null}if(Array.isArray(t)){let e=X(t.find(e=>e&&typeof e==`object`&&e.type===`text`)?.text);if(!e)return null;try{t=JSON.parse(e)}catch{return null}}if(!t||typeof t!=`object`||Array.isArray(t))return null;let n=t;if(typeof n.success!=`boolean`)return null;let r=n.pin&&typeof n.pin==`object`?n.pin:null;return{ok:n.success,detail:X(n.message)||X(n.error)||void 0,peer:r&&X(r.name)||void 0,ref:r&&X(r.ref)||void 0}}function Ct({kind:e}){if(e===`message`)return null;let t=_t[e];return(0,J.jsx)(`span`,{className:`inline-block rounded px-1.5 py-0.5 text-[10px] ${t?.className??`bg-panel-2 text-text-3`}`,children:t?.label??e})}function wt({name:e,input:t}){let n=xt(t),r=n.summary||n.firstLine||(n.protocol?n.kind:``),i=r.length>72?`${r.slice(0,72)}…`:r;return(0,J.jsxs)(J.Fragment,{children:[e,` `,(0,J.jsxs)(`span`,{className:`text-text-subtle`,children:[(0,J.jsx)(b,{className:`size-3 inline`}),` `,n.to||`unknown`,i?` · ${i}`:``]}),n.notifyWhenIdle&&(0,J.jsx)(T,{className:`size-3 inline ml-1 text-text-3`})]})}function Tt({input:e}){let t=xt(e);return(0,J.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,J.jsx)(`span`,{className:`text-text-subtle`,children:`To`}),(0,J.jsx)(`span`,{className:`font-medium text-text-primary`,children:t.to||`unknown`}),(0,J.jsx)(Ct,{kind:t.kind}),t.notifyWhenIdle&&(0,J.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-[10px] bg-panel-2 text-text-3`,children:[(0,J.jsx)(T,{className:`size-3`}),` notify when idle`]})]}),!!t.text&&(0,J.jsx)(Y,{content:t.text,maxHeight:`max-h-40`}),t.protocol&&(0,J.jsxs)(`div`,{className:`space-y-0.5 text-text-secondary`,children:[t.protocol.approve!=null&&(0,J.jsxs)(`p`,{children:[t.protocol.approve?`Approved`:`Rejected`,t.protocol.request_id?(0,J.jsxs)(`span`,{className:`text-text-subtle font-mono`,children:[` · `,t.protocol.request_id]}):null]}),!!t.protocol.reason&&(0,J.jsx)(`p`,{className:`text-text-subtle`,children:t.protocol.reason}),!!t.protocol.feedback&&(0,J.jsx)(`p`,{className:`text-text-subtle`,children:t.protocol.feedback})]}),t.extras.length>0&&(0,J.jsx)(`div`,{className:`space-y-0.5`,children:t.extras.map(e=>(0,J.jsxs)(`p`,{className:`text-text-subtle`,children:[(0,J.jsx)(`span`,{className:`font-mono`,children:e.key}),`: `,e.value]},e.key))})]})}function Et({output:e}){let[t,n]=(0,q.useState)(!1),r=St(e);return r?(0,J.jsxs)(`div`,{className:`border-t border-border pt-1.5 space-y-1`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-1.5 flex-wrap`,children:[r.ok?(0,J.jsx)(c,{className:`size-3 text-success shrink-0`}):(0,J.jsx)(E,{className:`size-3 text-error shrink-0`}),(0,J.jsx)(`span`,{className:r.ok?`text-success`:`text-error`,children:r.ok?`Delivered`:`Not delivered`}),!!r.detail&&(0,J.jsxs)(`span`,{className:`text-text-subtle`,children:[`· `,r.detail]}),!!r.ref&&(0,J.jsxs)(`span`,{className:`text-text-3 font-mono text-[10px]`,children:[`[`,r.ref,`]`]})]}),(0,J.jsxs)(`button`,{type:`button`,onClick:()=>n(!t),className:`flex items-center gap-1 text-[10px] text-text-subtle hover:text-text-secondary transition-colors`,children:[(0,J.jsx)(h,{className:`size-3`}),t?`Hide`:`Show`,` raw`]}),t&&(0,J.jsx)(`pre`,{className:`overflow-x-auto text-text-subtle font-mono max-h-40 whitespace-pre-wrap break-all text-[10px]`,children:e})]}):null}var Dt=new Set([`.png`,`.jpg`,`.jpeg`,`.gif`,`.webp`,`.bmp`,`.avif`,`.ico`]);function Ot(e){let t=e.lastIndexOf(`.`);return t===-1?!1:Dt.has(e.slice(t).toLowerCase())}var kt=/^\[image(?: · [\d.]+(?:B|KB|MB))?\]$/;function At(e){return kt.test(e)}function jt(e){if(!e.startsWith(`[`))return!1;let t;try{t=JSON.parse(e)}catch{return!1}return Array.isArray(t)?t.some(e=>{let t=e;return t?.type===`text`&&typeof t.text==`string`&&kt.test(t.text)}):!1}var Mt=`Async agent launched successfully`;function Nt(e){return!!e&&e.includes(Mt)}var Pt=`text-[var(--img-meta-label)] @max-[470px]:hidden`,Ft=[`60%`,`45%`,`80%`];function It({aspect:e,actions:t}){return(0,J.jsxs)(`div`,{className:`grid grid-cols-[132px_1fr] items-start gap-[14px] overflow-hidden rounded-lg border border-border bg-panel p-[14px] @max-[470px]:grid-cols-[64px_1fr] @max-[470px]:gap-[11px] @max-[470px]:p-[11px]`,children:[(0,J.jsx)(`div`,{className:`img-skeleton rounded-lg`,style:{aspectRatio:e}}),(0,J.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-[9px]`,children:[(0,J.jsx)(`div`,{className:`img-skeleton h-[13px] w-2/5 rounded @max-[470px]:hidden`}),(0,J.jsx)(`dl`,{className:`grid grid-cols-[auto_1fr] gap-x-[14px] gap-y-[4px] font-mono text-[11.5px] @max-[470px]:grid-cols-[1fr]`,children:[`dimensions`,`size`,`path`].map((e,t)=>(0,J.jsxs)(q.Fragment,{children:[(0,J.jsx)(`dt`,{className:Pt,children:e}),(0,J.jsx)(`dd`,{className:`flex items-center`,children:(0,J.jsx)(`span`,{className:`img-skeleton h-[11px] rounded`,style:{width:Ft[t]}})})]},e))}),t]})]})}function Lt({code:e,onRetry:t}){return(0,J.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg border border-border bg-panel px-2.5 py-2 font-mono text-[12px] text-text-2`,children:[(0,J.jsx)(S,{className:`size-3 shrink-0`}),(0,J.jsxs)(`span`,{className:`truncate`,children:[`preview unavailable`,e?` · ${e}`:``]}),(0,J.jsx)(`button`,{type:`button`,onClick:t,className:`ml-auto shrink-0 text-accent`,children:`retry`})]})}var Rt=4/5,zt=`text-[var(--img-meta-label)] @max-[470px]:hidden`,Bt=`truncate text-text @max-[470px]:text-text-2`,Vt=`h-[30px] @max-[470px]:h-[36px] shrink-0 rounded-[7px] px-[9px] font-mono text-[11.5px] text-text-2 bg-[var(--img-ghost)] border border-[var(--img-ghost-border)] backdrop-blur-[6px] transition-colors can-hover:hover:bg-[var(--img-ghost-hover)] can-hover:hover:border-[var(--img-ghost-hover-border)] can-hover:hover:text-text`;function Ht({filePath:e,projectName:t}){let[n,r]=(0,q.useState)(0),{blobUrl:i,blob:a,error:o,errorCode:s}=Te(e,t,void 0,n),[c,l]=(0,q.useState)(()=>be(e)),[u,d]=(0,q.useState)(!1),[f,p]=(0,q.useState)(!1),m=_e(e=>e.open),{openTab:h}=le(he(e=>({openTab:e.openTab}))),g=P(e);(0,q.useEffect)(()=>{if(!f)return;let e=setTimeout(()=>p(!1),1200);return()=>clearTimeout(e)},[f]);let _=t=>{let n={w:t.naturalWidth,h:t.naturalHeight};if(!n.w||!n.h)return d(!0);Ce(e,n),l(n)},ee=()=>{d(!1),r(e=>e+1)};if(o||u)return(0,J.jsx)(`div`,{className:`border-t border-border pt-1.5`,children:(0,J.jsx)(Lt,{code:u?void 0:s??void 0,onRetry:ee})});let v=c?ye(c,132):null,y=v?.aspect??Rt,b=(0,J.jsxs)(`div`,{className:`flex flex-wrap gap-[6px]`,children:[(0,J.jsxs)(`button`,{type:`button`,onClick:x,className:Vt,children:[(0,J.jsx)(`span`,{className:`@max-[470px]:hidden`,children:`open in editor`}),(0,J.jsx)(`span`,{className:`hidden @max-[470px]:inline`,children:`open`})]}),(0,J.jsx)(`button`,{type:`button`,onClick:S,className:Vt,children:f?`copied`:`copy path`}),(0,J.jsx)(`button`,{type:`button`,onClick:C,className:Vt,children:`full size`})]});function x(){t&&h({type:`editor`,title:g,metadata:{filePath:e,projectName:t},projectId:t,closable:!0})}function S(){pe(e).then(()=>p(!0))}function C(e){i&&m(i,g,Ee(e.currentTarget))}if(!i||!v||!c)return(0,J.jsxs)(`div`,{className:`@container border-t border-border pt-1.5`,children:[i&&(0,J.jsx)(`img`,{src:i,alt:``,className:`hidden`,onLoad:e=>_(e.currentTarget),onError:()=>d(!0)}),(0,J.jsx)(It,{aspect:y,actions:b})]});let w=(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`dt`,{className:zt,children:`dimensions`}),(0,J.jsx)(`dd`,{className:Bt,children:xe(c,v.fit)}),a&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`dt`,{className:zt,children:`size`}),(0,J.jsxs)(`dd`,{className:Bt,children:[Se(a.size),a.type?` · ${a.type}`:``]})]}),(0,J.jsx)(`dt`,{className:zt,children:`path`}),(0,J.jsx)(`dd`,{dir:`rtl`,className:`${Bt} text-left`,children:e})]}),T=(0,J.jsx)(`img`,{src:i,alt:g,[De]:``,onLoad:e=>_(e.currentTarget),onError:()=>d(!0),className:v.fit===`cover`?`size-full object-cover`:v.fit===`contain`?`size-full object-contain`:`max-h-full max-w-full`});return(0,J.jsx)(`div`,{className:`@container border-t border-border pt-1.5`,children:(0,J.jsxs)(`div`,{className:`relative overflow-hidden rounded-lg border border-border p-[14px] @max-[470px]:p-[11px]`,children:[(0,J.jsx)(`img`,{"aria-hidden":`true`,alt:``,src:i,className:`absolute inset-0 size-full object-cover`,style:{filter:`var(--img-backdrop)`,transform:`scale(1.3)`}}),(0,J.jsx)(`div`,{className:`absolute inset-0`,style:{background:`var(--img-veil)`}}),v.variant===`band`?(0,J.jsxs)(`div`,{className:`relative grid gap-[11px]`,children:[(0,J.jsx)(`button`,{type:`button`,onClick:C,title:`Open ${g}`,className:`img-checkerboard w-full cursor-zoom-in overflow-hidden rounded-lg border border-[var(--img-plate-border)]`,style:{aspectRatio:v.aspect},children:T}),(0,J.jsx)(`dl`,{className:`grid grid-cols-[auto_auto_1fr] gap-x-[18px] font-mono text-[11.5px] [&_dt]:hidden`,children:w}),b]}):(0,J.jsxs)(`div`,{className:`relative grid grid-cols-[132px_1fr] items-start gap-[14px] @max-[470px]:grid-cols-[64px_1fr] @max-[470px]:gap-[11px]`,children:[(0,J.jsx)(`button`,{type:`button`,onClick:C,title:`Open ${g}`,className:`cursor-zoom-in overflow-hidden rounded-lg border border-[var(--img-plate-border)] bg-[var(--img-plate)] shadow-[var(--img-plate-shadow)] ${v.fit===`cover`?``:`img-checkerboard flex items-center justify-center`}`,style:{aspectRatio:v.aspect},children:T}),(0,J.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-[9px]`,children:[(0,J.jsx)(`p`,{className:`truncate text-[13px] font-semibold text-text @max-[470px]:hidden`,children:g}),(0,J.jsx)(`dl`,{className:`grid grid-cols-[auto_1fr] gap-x-[14px] gap-y-[4px] font-mono text-[11.5px] @max-[470px]:grid-cols-[1fr]`,children:w}),b]})]})]})})}var Ut=/^(\/|[A-Za-z]:[/\\])/;function Wt(e,t,n){if(e.type!==`editor`)return!1;let r=e.metadata??{};return r.viewerKey||r.isUntitled||r.inlineContent!=null||r.filePath!==t?!1:Ut.test(t)||r.projectName===n}function Gt(e){let{grid:t,panels:n,focusedPanelId:r,sessionId:i}=e,a=t.flat().filter(e=>n[e]);if(a.length===0)return null;let o=a.find(e=>n[e].tabs.some(e=>ce(e)===i))??null,s=Kt(a,o,e);if(e.mobile)return s?{kind:`focus`,...s}:{kind:`open`,panelId:a[0],split:!1};if(o===null)return s?{kind:`focus`,...s}:{kind:`open`,panelId:a.includes(r)?r:a[0],split:!1};let c=n[o],l=c.tabs.some(e=>e.id===c.activeTabId&&ce(e)===i),u=qt(t,o,r,a);return s?s.panelId!==o||!l?{kind:`focus`,...s}:{kind:`move`,tabId:s.tabId,fromPanelId:o,toPanelId:u}:u?{kind:`open`,panelId:u,split:!1}:{kind:`open`,panelId:o,split:!0}}function Kt(e,t,n){let r=[...e.filter(e=>e!==t),...t?[t]:[]];for(let e of r){let t=n.panels[e].tabs.find(n.isTarget);if(t)return{tabId:t.id,panelId:e}}return null}function qt(e,t,n,r){if(n!==t&&r.includes(n))return n;let i=e.find(e=>e.includes(t))??[],a=i.indexOf(t);return[...i.slice(a+1),...i.slice(0,a).reverse(),...e.filter(e=>e!==i).flat()].find(e=>e!==t&&r.includes(e))??null}var Jt=12e3,Yt=1500,Xt=e=>e instanceof Error?e.message:String(e);function Zt(e){if(!e||I.getState().currentProject===e)return;let t=L.getState().projects.find(t=>t.name===e);t&&(L.getState().setActiveProject(t),I.getState().switchProject(e))}function Qt(e,t){Zt(e.projectName);let n=I.getState(),r=Gt({grid:n.grid,panels:n.panels,focusedPanelId:n.focusedPanelId,mobile:n.isMobile(),sessionId:e.sessionId,isTarget:t});if(!r)throw Error(`PPM has no panel to open the tab in`);return r}function $t(e){let t=I.getState(),n=e.kind===`focus`?e.panelId:e.fromPanelId;e.kind===`focus`?t.setActiveTab(e.tabId,e.panelId):e.toPanelId?t.moveTab(e.tabId,n,e.toPanelId):t.splitPanel(`right`,e.tabId,n)||t.setActiveTab(e.tabId,n)}function en(e,t){let n=Qt(t,t=>Wt(t,e.filePath,e.projectName)),r=I.getState(),i=Date.now(),a=e.line?`code`:e.tool===`open_preview`?`preview`:void 0,o={...e.line?{lineNumber:e.line,endLine:void 0,revealAt:i}:{},...a?{aiView:a,aiOpenAt:i}:{}};if(n.kind===`open`){let t={filePath:e.filePath,...e.projectName?{projectName:e.projectName}:{},...o},i=Oe(e.projectName??void 0,e.filePath),a=ke(i),s=r.openTab({type:`editor`,title:P(e.filePath),projectId:e.projectName,metadata:t,closable:!0},n.panelId);if(!s)throw Error(`PPM could not open the tab`);return n.split&&r.splitPanel(`right`,s,n.panelId),{tabId:s,previewKey:i,before:a}}let s=n.kind===`focus`?n.panelId:n.fromPanelId,c={...r.panels[s]?.tabs.find(e=>e.id===n.tabId)?.metadata,...o},l=Oe(c.projectName,String(c.filePath??e.filePath)),u=ke(l);return r.updateTab(n.tabId,{metadata:c}),$t(n),{tabId:n.tabId,previewKey:l,before:u}}function tn(e,t){let n=Qt(t,()=>!1);if(n.kind!==`open`)throw Error(`PPM has no panel to open the tab in`);let r=I.getState(),i=ie(Object.values(r.panels).flatMap(e=>e.tabs)),a={kind:`connection`,connectionId:e.connectionId,...e.database?{database:e.database}:{}},o=r.openTab({type:`db-query`,title:`Query ${i}`,projectId:null,closable:!0,metadata:{...ae(a),connectionName:e.connectionName,dbType:e.dbType,...e.connectionColor?{connectionColor:e.connectionColor}:{},...oe(e.sql,i)}},n.panelId);if(!o)throw Error(`PPM could not open the tab`);return n.split&&r.splitPanel(`right`,o,n.panelId),o}function nn(e=window.location.hostname){return e===`localhost`||e===`[::1]`||/^127(?:\.\d{1,3}){3}$/.test(e)}function rn(e,t){if(e.via===`local`&&!nn())throw Error(`this device is not the machine PPM runs on, so it cannot reach localhost:${e.port}`);let n=Qt(t,t=>t.type===`web-preview`&&t.metadata?.url===e.url),r=I.getState(),i={url:e.url,port:e.port,via:e.via,aiOpenAt:Date.now()};if(n.kind===`open`){let t=r.openTab({type:`web-preview`,title:ge(e.port,e.url),projectId:null,closable:!0,metadata:i},n.panelId);if(!t)throw Error(`PPM could not open the tab`);return n.split&&r.splitPanel(`right`,t,n.panelId),t}return r.updateTab(n.tabId,{metadata:i}),$t(n),n.tabId}function an(e,t){Zt(t.projectName);let n=I.getState().openInDock({type:`terminal`,title:P(e.cwd)||e.cwd,projectId:e.projectName,closable:!0,metadata:{sessionId:e.terminalId,cwd:e.cwd,...e.projectName?{projectName:e.projectName}:{}}});try{localStorage.setItem(`ppm:terminal-session:${n}`,e.terminalId)}catch{}return n}async function on(e,t,n){let r=t=>{let r={type:`tab_open_result`,requestId:e.requestId,...t};n(JSON.stringify(r))};if(e.tool===`open_query`||e.tool===`open_url`||e.tool===`run_in_terminal`){try{e.tool===`open_query`?tn(e.query,t):e.tool===`open_url`?rn(e,t):an(e,t),r({opened:!0})}catch(e){r({opened:!1,error:Xt(e)})}return}let i;try{i=en({tool:e.tool,filePath:e.filePath,projectName:e.projectName,line:e.line},t)}catch(e){r({opened:!1,error:Xt(e)});return}if(!e.check){r({opened:!0});return}try{let t=await Ae(i.previewKey,i.before,Jt);if(!t){r({opened:!0,error:`the page did not start loading`});return}await new Promise(e=>setTimeout(e,Yt));let n=I.getState().isMobile()?`Phone`:`Desktop`;r({opened:!0,report:await t.check({screenshot:e.check.screenshot,frame:n})})}catch(e){r({opened:!0,error:Xt(e)})}}async function sn(e,t){let n=t?L.getState().projects.find(e=>e.name===t)?.path:void 0,r=e.path.trim(),i=/^(\/|[a-z]:[/\\]|~(?:[/\\]|$))/i.test(r);if(!i&&!n)throw Error(`this chat has no project folder`);let a=await me.stat(i?r:de(n,r));if(a.kind===`directory`)throw Error(`${r} is a folder`);let o=n?ue(n,a.path):null;return o?{tool:e.tool,filePath:o,projectName:t,line:e.line}:{tool:e.tool,filePath:a.path,projectName:null,line:e.line}}var cn=RegExp(`^(?:mcp__${Fe}__|${He}:)(${je}|${ze})$`),ln=RegExp(`^(?:mcp__${Fe}__|${He}:)(${Ie}|${Ne}|${Me})$`),un=/^\[image(?: [^\]\s]+)?\]$/,Z=e=>!!e&&typeof e==`object`&&!Array.isArray(e);function dn(e,t){let n=cn.exec(e)?.[1];if(!n||!Z(t))return null;let r=`arguments`in t?t.arguments:t;if(!Z(r)||typeof r.path!=`string`||!r.path.trim())return null;let i=r.line,a=n===`open_file`&&typeof i==`number`&&Number.isInteger(i)&&i>=1&&i<=1e7;return{tool:n,path:r.path,...a?{line:i}:{}}}function fn(e){return ln.exec(e)?.[1]??null}function pn(e,t){let n=fn(e);if(!n||!Z(t))return null;let r=`arguments`in t&&Z(t.arguments)?t.arguments:t,i=e=>typeof e==`string`&&e.trim()?e:void 0;if(n===`open_url`){let e=i(r.url);return e?{tool:n,url:e}:null}if(n===`run_in_terminal`){let e=i(r.command),t=i(r.cwd);return e?{tool:n,command:e,...t?{cwd:t}:{}}:null}let a=i(r.terminal),o=typeof r.lines==`number`&&Number.isInteger(r.lines)&&r.lines>0?r.lines:void 0;return{tool:Ne,...a?{terminal:a}:{},...o?{lines:o}:{}}}function mn(e){let t=()=>e.split(`
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/markdown-renderer-3ZR2x0CC.js","assets/vendor-ui-BTSIXzhZ.js","assets/rolldown-runtime-C5c2KzVm.js","assets/vendor-markdown-C-P1aR4p.js","assets/lib-DULxhi7W.js","assets/markdown-renderer-DZNMRg6p.js","assets/index-Vd9Xr54k.js","assets/preload-helper-Bf_JiD2A.js","assets/button-BHGVTbam.js","assets/utils-D3xTlJyU.js","assets/createLucideIcon-B2pji242.js","assets/file-diff-CScJM-VZ.js","assets/git-commit-horizontal-ZMFP54eB.js","assets/api-client-BnYFnEfK.js","assets/react-B9hau9ra.js","assets/open-db-tabs-DBgV2hbA.js","assets/window-store-D6EgLSfT.js","assets/minimal-mode-rLZOjciW.js","assets/panel-store-H7e9XHZF.js","assets/settings-store-CMpVMq3Y.js","assets/session-list-sync-triggers-D9i1FxWd.js","assets/project-store-Bs-kiU8m.js","assets/project-framework-store-nuePqBBa.js","assets/explorer-model-f5q-50DN.js","assets/db-sidebar-reveal-CGqWBYay.js","assets/use-is-mobile-CL2I7hLf.js","assets/db-types-cHkNH-mN.js","assets/tab-store-NUmgzMPf.js","assets/use-db-driver-installed-BL1XW_bI.js","assets/impexp-state-Cx2Az9iZ.js","assets/file-store-Bn0vbkCx.js","assets/sql-identifiers-7jHNEORb.js","assets/db-explorer-store-DJNNIfN5.js","assets/onboarding-quick-orientation-DTMrcMf0.js","assets/dialog-DnE192fh.js","assets/portal-container-context-Gepuvxdg.js","assets/icons-C1wDt09O.js","assets/format-file-meta-BOAh9mam.js","assets/fs-api-BVIVh_De.js","assets/open-settings-DWbF5YsE.js","assets/settings-categories-BY9n3BRr.js","assets/adaptive-context-menu-CxHkI7dL.js","assets/context-menu-DhKbkI1X.js","assets/mobile-bottom-sheet-M9pZptfh.js","assets/use-visual-viewport-B_GFo6k2.js","assets/dropdown-menu-CxZR_vuV.js","assets/input-CReAuQTF.js","assets/scroll-area-CSmNLlfl.js","assets/start-ellipsis-DfU-W_6j.js","assets/chat-preparation-cache-Bzb-T1pm.js","assets/clipboard-D3XnL7CB.js","assets/file-icons-CB0RsVdl.js","assets/format-date-SZ6qU2sD.js","assets/git-repo-store-CESIqItW.js","assets/patch-tab-metadata-DqvfqUI4.js","assets/ws-auth-k7DWnL9T.js","assets/apply-theme-Kiqxd1NZ.js","assets/resolve-theme-DGQXDIbF.js","assets/index-Cb3Z6wNy.css","assets/image-gallery-DuV1wTMD.js","assets/run-in-terminal-DAdjH24K.js","assets/edit-diff-preview-MLYrWKe_.js","assets/libesm-C9iw2_pm.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{D as t,E as n}from"./vendor-markdown-C-P1aR4p.js";import{$ as r,Gt as i,Hr as a,J as o,L as s,M as c,P as l,Sr as u,St as d,Tt as f,_n as p,_t as m,at as h,bn as g,ct as _,gt as ee,in as v,jr as y,m as b,mt as x,n as S,pt as C,ti as w,tt as T,ui as E,w as D,wt as te,xn as O,xr as k,xt as ne}from"./icons-C1wDt09O.js";import{k as re}from"./api-client-BnYFnEfK.js";import{t as A}from"./react-B9hau9ra.js";import{t as j}from"./settings-store-CMpVMq3Y.js";import{t as M}from"./preload-helper-Bf_JiD2A.js";import{n as N,t as P}from"./utils-D3xTlJyU.js";import{J as ie,X as ae,Y as oe,n as F,x as se}from"./window-store-D6EgLSfT.js";import{r as ce,t as I}from"./panel-store-H7e9XHZF.js";import{i as L}from"./project-store-Bs-kiU8m.js";import{t as le}from"./tab-store-NUmgzMPf.js";import{i as ue,t as de}from"./file-store-Bn0vbkCx.js";import{n as fe}from"./use-is-mobile-CL2I7hLf.js";import{r as pe}from"./clipboard-D3XnL7CB.js";import{n as me}from"./fs-api-BVIVh_De.js";import{Mn as he,fi as ge,ni as _e,r as ve}from"./index-Vd9Xr54k.js";import{a as ye,i as be,n as xe,r as Se,t as Ce}from"./image-preview-geometry-BX1a3Lfa.js";import{t as R}from"./agent-session-sheet-store-BFUVxjab.js";import{t as we}from"./libesm-C9iw2_pm.js";import{t as Te}from"./use-blob-url-CIHAdKoN.js";import{r as Ee,t as De}from"./image-gallery-DuV1wTMD.js";import{a as Oe,i as ke,o as Ae}from"./html-preview-loads-xkLR1cU9.js";import{f as je,g as Me,h as Ne,i as Pe,l as Fe,m as Ie,n as Le,o as Re,p as ze,r as Be,t as Ve,u as He}from"./db-ai-tools-BhRcsCRL.js";var z=new Set([`Write`,`Edit`,`MultiEdit`,`NotebookEdit`]),Ue={create:3,write:2,notebook:2,edit:1};function B(e){return typeof e==`string`?e:``}function We(e,t){let n=0,r=0;for(let i of we(e,t))i.added?n+=i.count??0:i.removed&&(r+=i.count??0);return{added:n,removed:r}}function Ge(e){return e&&/created successfully/i.test(e)?`create`:`write`}function Ke(e,t,n){switch(e){case`Write`:{let e=B(t.file_path);return e?{filePath:e,op:Ge(n),fragments:[{oldStr:``,newStr:B(t.content)}]}:null}case`Edit`:{let e=B(t.file_path);return e?{filePath:e,op:`edit`,fragments:[{oldStr:B(t.old_string),newStr:B(t.new_string)}]}:null}case`MultiEdit`:{let e=B(t.file_path);if(!e||!Array.isArray(t.edits))return null;let n=t.edits.filter(e=>!!e&&typeof e==`object`).map(e=>({oldStr:B(e.old_string),newStr:B(e.new_string)}));return n.length===0?null:{filePath:e,op:`edit`,fragments:n}}case`NotebookEdit`:{let e=B(t.notebook_path)||B(t.file_path);return e?{filePath:e,op:`notebook`,fragments:[{oldStr:``,newStr:B(t.new_source)}]}:null}default:return null}}function qe(e,t){if(e!==`Edit`&&e!==`Write`||!Array.isArray(t.files))return null;let n=[];for(let e of t.files){if(!e||typeof e!=`object`)continue;let t=e,r=B(t.file_path);r&&n.push({filePath:r,op:t.op===`add`?`create`:`edit`,fragments:[{oldStr:B(t.old_string),newStr:B(t.new_string)}]})}return n.length>0?n:null}function Je(e,t){if(e){for(let n of e)if(n.type===`tool_result`&&n.toolUseId&&t.set(n.toolUseId,n.output??``),n.type===`tool_use`){let e=n.result;n.toolUseId&&e?.output!=null&&!t.has(n.toolUseId)&&t.set(n.toolUseId,e.output),Je(n.children,t)}}}function Ye(e,t,n,r){if(e)for(let i of e){if(i.type!==`tool_use`||(i.children?.length&&Ye(i.children,!0,n,r),!z.has(i.tool)))continue;let e=i.input&&typeof i.input==`object`?i.input:null;if(!e)continue;let a=Ke(i.tool,e,i.toolUseId?r.get(i.toolUseId):void 0),o=qe(i.tool,e)??(a?[a]:[]);for(let e of o)Xe(n,e,i.toolUseId,t)}}function Xe(e,t,n,r){let i=e.get(t.filePath);i||(i={filePath:t.filePath,op:t.op,editCount:0,linesAdded:0,linesRemoved:0,edits:[],viaSubagent:!1},e.set(t.filePath,i)),Ue[t.op]>Ue[i.op]&&(i.op=t.op),r&&(i.viaSubagent=!0),t.fragments.forEach((e,t)=>{let{added:a,removed:o}=We(e.oldStr,e.newStr);i.linesAdded+=a,i.linesRemoved+=o,i.editCount+=1,i.edits.push({...e,toolUseId:n,editIndex:t,editRef:n?`${n}-${t}`:void 0,viaSubagent:r})})}function Ze(e){let t=new Map;for(let n of e)Je(n.events,t);let n=new Map;for(let r of e)Ye(r.events,!1,n,t);return[...n.values()]}function Qe(e,t){let n=[];for(let r=t;r>=0&&e[r]?.role===`assistant`;r--)n.unshift(e[r]);return n}var $e=new Set([`Bash`,`PowerShell`]),et=new WeakMap;function tt(e){let t=et.get(e);if(t)return t;let n=new Set,r=[],i=[],a=e=>{for(let t of e??[]){if(t.type===`tool_result`&&t.toolUseId&&i.push(t.toolUseId),t.type!==`tool_use`||(t.toolUseId&&t.result!=null&&i.push(t.toolUseId),a(t.children),$e.has(t.tool)&&t.toolUseId&&r.push(t.toolUseId),!z.has(t.tool)))continue;let e=t.input&&typeof t.input==`object`?t.input:null;if(!e)continue;let o=Ke(t.tool,e),s=qe(t.tool,e)??(o?[o]:[]);for(let e of s)n.add(e.filePath);s.length>0&&t.toolUseId&&r.push(t.toolUseId)}};a(e.events);let o={paths:[...n],writeIds:r,resultIds:i};return et.set(e,o),o}function nt(e){let t=new Set,n=new Set,r=new Set;for(let i of e){let e=tt(i);for(let n of e.paths)t.add(n);for(let t of e.writeIds)n.add(t);for(let t of e.resultIds)r.add(t)}let i=0;for(let e of n)r.has(e)&&i++;return{paths:[...t],settled:i}}function V(e){return typeof e==`string`?e:``}function H(e){return`${e} step${e===1?``:`s`}`}function U(e,t){return e.length>t?e.slice(0,t)+`…`:e}function rt(e){if(e.type!==`tool_use`)return``;let t=e.tool,n=e.input&&typeof e.input==`object`?e.input:{};switch(t){case`Read`:case`Write`:case`Edit`:case`MultiEdit`:case`NotebookEdit`:{let e=V(n.notebook_path||n.file_path);return e?`${t} ${P(e)}`:t}case`Bash`:case`PowerShell`:return U(n.description?V(n.description):V(n.command),60)||t;case`Glob`:return`Glob ${V(n.pattern)}`;case`Grep`:return`Grep ${U(V(n.pattern),40)}`;case`WebSearch`:return`Search ${U(V(n.query),50)}`;case`WebFetch`:return`Fetch ${U(V(n.url),50)}`;case`ToolSearch`:return`Search ${U(V(n.query),50)}`;case`Agent`:case`Task`:{let e=typeof n.name==`string`&&n.name.trim()?n.name.trim():null,r=U(V(n.description||n.prompt),44);return e?r?`${e} · ${r}`:e:r||t}case`SendMessage`:return`Message ${U(V(n.to),30)}`.trim();case`TodoWrite`:return`Todo update`;case`AskUserQuestion`:return`Question`;case`ScheduleWakeup`:return`Scheduled wakeup`;case`TaskCreate`:return U(V(n.subject),60)||t;case`TaskUpdate`:return`Task #${V(n.taskId)} → ${V(n.status)}`;case`TaskStop`:return`Task #${V(n.taskId)} stopped`;case`ImageGen`:return`Image generation`;default:return t}}function it(e){return e===`Agent`||e===`Task`||z.has(e)}function W(e){let t=[],n=[],r=new Set,i;return(e??[]).forEach((e,a)=>{if(e.type===`tool_use`){t.push(e.toolUseId??`idx:${a}`);let o=rt(e);if(o&&(i=o),it(e.tool)){if(e.tool===`Agent`||e.tool===`Task`){let t=W(e.children);n.push({...e,children:t.kept,stepIds:t.stepIds,stepCount:t.stepIds.length,lastStep:t.lastStep})}else n.push(e);e.toolUseId&&r.add(e.toolUseId)}}else e.type===`tool_result`&&e.toolUseId&&r.has(e.toolUseId)&&n.push(e)}),{stepIds:t,lastStep:i,kept:n}}function at(e){let t=e.stepCount??e.stepIds?.length??W(e.children).stepIds.length;for(let n of e.children??[])n.type===`tool_use`&&(n.tool===`Agent`||n.tool===`Task`)&&(t+=at(n));return t}function ot(e){let t=at(e);if(e.stepCount!=null)return{stepCount:t,lastStep:e.lastStep};let{lastStep:n}=W(e.children);return{stepCount:t,lastStep:n}}function st(e){try{return JSON.stringify(e).length}catch{return 0}}function ct(e){let t=e.reduce((e,t)=>e+st(t),0),n=0;for(;t>262144&&n<e.length-1;)t-=st(e[n]),n++;return n>0?e.slice(n):e}function lt(e,t,n){let r=t.toolUseId;if(r){let i=e.findIndex(e=>e.type===t.type&&e.toolUseId===r);if(i!==-1){let r=e[i].arrivalSeq,a=[...e];return a[i]=n==null?t:{...t,arrivalSeq:r},a}}let i=n==null?t:{...t,arrivalSeq:n},a=[...e,i];return ct(a.length>200?a.slice(a.length-200):a)}function ut(e,t){let n=e=>e.map((e,t)=>({ev:e,seq:e.arrivalSeq??t}));return[...n(e),...n(t)].sort((e,t)=>e.seq-t.seq).map(e=>e.ev)}function dt(e,t){if(e.type!==`tool_use`)return e;let n=e.stepIds,r=e.lastStep;if(t.type===`tool_use`){let e=t.toolUseId;(!e||!n?.includes(e))&&(n=[...n??[],e??`idx:${n?.length??0}`]);let i=rt(t);i&&(r=i)}let i=e.childSeq??0,a=e=>{let n=t.toolUseId,r=n?e.findIndex(e=>e.type===t.type&&e.toolUseId===n):-1;if(r!==-1){let n=e[r].arrivalSeq,i=[...e];return i[r]={...t,arrivalSeq:n},i}return[...e,{...t,arrivalSeq:i}]},o=e.children??[],s=e.recentChildren??[],c=t.type===`tool_use`&&it(t.tool),l=e=>!!e&&o.some(t=>t.type===`tool_use`&&t.toolUseId===e),u=o,d=s;return c||t.type===`tool_result`&&l(t.toolUseId)?u=a(o):d=lt(s,t,i),{...e,children:u,recentChildren:d,stepIds:n,stepCount:n?.length,lastStep:r,childSeq:i+1}}function ft(e){return e&&e.map(e=>{if(e.type!==`tool_use`||e.tool!==`Agent`&&e.tool!==`Task`||!e.transcriptAvailable)return e;let{stepIds:t,lastStep:n,kept:r}=W(e.children);return{...e,children:r,stepIds:t,stepCount:t.length,lastStep:n}})}function G(e,t){return t.kind===`card`?`${e}:${t.cardId}`:`${e}:${t.teamName}:${t.memberName}`}var K=A(()=>({entries:{}}));function pt(e,t){K.setState(n=>({entries:{...n.entries,[e]:t}}))}function mt(){let e=new Set;for(let t of Object.values(F.getState().windows)){if(t.kind!==`agent-session`)continue;let n=t.payload;typeof n?.sessionId==`string`&&n.source&&e.add(G(n.sessionId,n.source))}let t=R.getState().payload;return t&&e.add(G(t.sessionId,t.source)),e}function ht(){let e=mt();K.setState(t=>{let n={},r=!1;for(let[i,a]of Object.entries(t.entries))e.has(i)?n[i]=a:r=!0;return r?{entries:n}:t})}F.subscribe(ht),R.subscribe(ht);var q=e(t(),1),J=n(),gt=(0,q.lazy)(()=>M(()=>import(`./markdown-renderer-3ZR2x0CC.js`).then(e=>({default:e.MarkdownRenderer})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60])));function Y({content:e,maxHeight:t=`max-h-48`}){return(0,J.jsx)(q.Suspense,{fallback:(0,J.jsx)(`div`,{className:`animate-pulse h-4 bg-muted rounded`}),children:(0,J.jsx)(gt,{content:e,className:`text-text-secondary overflow-auto ${t}`})})}var _t={task_assignment:{label:`task`,className:`bg-primary/20 text-primary`},idle_notification:{label:`idle`,className:`bg-warning/20 text-warning`},completion:{label:`done`,className:`bg-success/20 text-success`},shutdown_request:{label:`shutdown`,className:`bg-error/20 text-error`},shutdown_approved:{label:`shutdown ✓`,className:`bg-text-3/20 text-text-3`},shutdown_response:{label:`shutdown reply`,className:`bg-text-3/20 text-text-3`},plan_approval_request:{label:`plan review`,className:`bg-primary/20 text-primary`},plan_approval_response:{label:`plan reply`,className:`bg-primary/20 text-primary`}},vt=new Set([`to`,`message`,`summary`,`notify_when_idle`,`recipient`,`content`,`type`]),X=e=>typeof e==`string`?e:e==null?``:String(e);function yt(e){if(!e||typeof e!=`object`||Array.isArray(e))return null;let t=e;return typeof t.type!=`string`||!t.type?null:{type:t.type,request_id:typeof t.request_id==`string`?t.request_id:void 0,approve:typeof t.approve==`boolean`?t.approve:void 0,reason:typeof t.reason==`string`?t.reason:void 0,feedback:typeof t.feedback==`string`?t.feedback:void 0}}function bt(e){let t=e.trim();if(!t.startsWith(`{`))return null;try{return yt(JSON.parse(t))}catch{return null}}function xt(e){let t=X(e.to)||X(e.recipient),n=e.message??e.content,r=yt(n)??bt(X(n)),i=r?``:X(n),a=X(e.type),o=r?.type||(a&&a!==`message`?a:`message`),s=X(e.summary).trim(),c=Object.entries(e).filter(([e])=>!vt.has(e)).map(([e,t])=>({key:e,value:typeof t==`string`?t:JSON.stringify(t)??``}));return{to:t,summary:s||void 0,text:i,firstLine:i.split(`
|
|
3
|
+
`).map(e=>e.trim()).find(e=>e.length>0)??``,protocol:r??void 0,kind:o,notifyWhenIdle:e.notify_when_idle===!0,extras:c}}function St(e){if(!e)return null;let t;try{t=JSON.parse(e)}catch{return null}if(Array.isArray(t)){let e=X(t.find(e=>e&&typeof e==`object`&&e.type===`text`)?.text);if(!e)return null;try{t=JSON.parse(e)}catch{return null}}if(!t||typeof t!=`object`||Array.isArray(t))return null;let n=t;if(typeof n.success!=`boolean`)return null;let r=n.pin&&typeof n.pin==`object`?n.pin:null;return{ok:n.success,detail:X(n.message)||X(n.error)||void 0,peer:r&&X(r.name)||void 0,ref:r&&X(r.ref)||void 0}}function Ct({kind:e}){if(e===`message`)return null;let t=_t[e];return(0,J.jsx)(`span`,{className:`inline-block rounded px-1.5 py-0.5 text-[10px] ${t?.className??`bg-panel-2 text-text-3`}`,children:t?.label??e})}function wt({name:e,input:t}){let n=xt(t),r=n.summary||n.firstLine||(n.protocol?n.kind:``),i=r.length>72?`${r.slice(0,72)}…`:r;return(0,J.jsxs)(J.Fragment,{children:[e,` `,(0,J.jsxs)(`span`,{className:`text-text-subtle`,children:[(0,J.jsx)(b,{className:`size-3 inline`}),` `,n.to||`unknown`,i?` · ${i}`:``]}),n.notifyWhenIdle&&(0,J.jsx)(T,{className:`size-3 inline ml-1 text-text-3`})]})}function Tt({input:e}){let t=xt(e);return(0,J.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,J.jsx)(`span`,{className:`text-text-subtle`,children:`To`}),(0,J.jsx)(`span`,{className:`font-medium text-text-primary`,children:t.to||`unknown`}),(0,J.jsx)(Ct,{kind:t.kind}),t.notifyWhenIdle&&(0,J.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-[10px] bg-panel-2 text-text-3`,children:[(0,J.jsx)(T,{className:`size-3`}),` notify when idle`]})]}),!!t.text&&(0,J.jsx)(Y,{content:t.text,maxHeight:`max-h-40`}),t.protocol&&(0,J.jsxs)(`div`,{className:`space-y-0.5 text-text-secondary`,children:[t.protocol.approve!=null&&(0,J.jsxs)(`p`,{children:[t.protocol.approve?`Approved`:`Rejected`,t.protocol.request_id?(0,J.jsxs)(`span`,{className:`text-text-subtle font-mono`,children:[` · `,t.protocol.request_id]}):null]}),!!t.protocol.reason&&(0,J.jsx)(`p`,{className:`text-text-subtle`,children:t.protocol.reason}),!!t.protocol.feedback&&(0,J.jsx)(`p`,{className:`text-text-subtle`,children:t.protocol.feedback})]}),t.extras.length>0&&(0,J.jsx)(`div`,{className:`space-y-0.5`,children:t.extras.map(e=>(0,J.jsxs)(`p`,{className:`text-text-subtle`,children:[(0,J.jsx)(`span`,{className:`font-mono`,children:e.key}),`: `,e.value]},e.key))})]})}function Et({output:e}){let[t,n]=(0,q.useState)(!1),r=St(e);return r?(0,J.jsxs)(`div`,{className:`border-t border-border pt-1.5 space-y-1`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-1.5 flex-wrap`,children:[r.ok?(0,J.jsx)(c,{className:`size-3 text-success shrink-0`}):(0,J.jsx)(E,{className:`size-3 text-error shrink-0`}),(0,J.jsx)(`span`,{className:r.ok?`text-success`:`text-error`,children:r.ok?`Delivered`:`Not delivered`}),!!r.detail&&(0,J.jsxs)(`span`,{className:`text-text-subtle`,children:[`· `,r.detail]}),!!r.ref&&(0,J.jsxs)(`span`,{className:`text-text-3 font-mono text-[10px]`,children:[`[`,r.ref,`]`]})]}),(0,J.jsxs)(`button`,{type:`button`,onClick:()=>n(!t),className:`flex items-center gap-1 text-[10px] text-text-subtle hover:text-text-secondary transition-colors`,children:[(0,J.jsx)(h,{className:`size-3`}),t?`Hide`:`Show`,` raw`]}),t&&(0,J.jsx)(`pre`,{className:`overflow-x-auto text-text-subtle font-mono max-h-40 whitespace-pre-wrap break-all text-[10px]`,children:e})]}):null}var Dt=new Set([`.png`,`.jpg`,`.jpeg`,`.gif`,`.webp`,`.bmp`,`.avif`,`.ico`]);function Ot(e){let t=e.lastIndexOf(`.`);return t===-1?!1:Dt.has(e.slice(t).toLowerCase())}var kt=/^\[image(?: · [\d.]+(?:B|KB|MB))?\]$/;function At(e){return kt.test(e)}function jt(e){if(!e.startsWith(`[`))return!1;let t;try{t=JSON.parse(e)}catch{return!1}return Array.isArray(t)?t.some(e=>{let t=e;return t?.type===`text`&&typeof t.text==`string`&&kt.test(t.text)}):!1}var Mt=`Async agent launched successfully`;function Nt(e){return!!e&&e.includes(Mt)}var Pt=`text-[var(--img-meta-label)] @max-[470px]:hidden`,Ft=[`60%`,`45%`,`80%`];function It({aspect:e,actions:t}){return(0,J.jsxs)(`div`,{className:`grid grid-cols-[132px_1fr] items-start gap-[14px] overflow-hidden rounded-lg border border-border bg-panel p-[14px] @max-[470px]:grid-cols-[64px_1fr] @max-[470px]:gap-[11px] @max-[470px]:p-[11px]`,children:[(0,J.jsx)(`div`,{className:`img-skeleton rounded-lg`,style:{aspectRatio:e}}),(0,J.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-[9px]`,children:[(0,J.jsx)(`div`,{className:`img-skeleton h-[13px] w-2/5 rounded @max-[470px]:hidden`}),(0,J.jsx)(`dl`,{className:`grid grid-cols-[auto_1fr] gap-x-[14px] gap-y-[4px] font-mono text-[11.5px] @max-[470px]:grid-cols-[1fr]`,children:[`dimensions`,`size`,`path`].map((e,t)=>(0,J.jsxs)(q.Fragment,{children:[(0,J.jsx)(`dt`,{className:Pt,children:e}),(0,J.jsx)(`dd`,{className:`flex items-center`,children:(0,J.jsx)(`span`,{className:`img-skeleton h-[11px] rounded`,style:{width:Ft[t]}})})]},e))}),t]})]})}function Lt({code:e,onRetry:t}){return(0,J.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg border border-border bg-panel px-2.5 py-2 font-mono text-[12px] text-text-2`,children:[(0,J.jsx)(S,{className:`size-3 shrink-0`}),(0,J.jsxs)(`span`,{className:`truncate`,children:[`preview unavailable`,e?` · ${e}`:``]}),(0,J.jsx)(`button`,{type:`button`,onClick:t,className:`ml-auto shrink-0 text-accent`,children:`retry`})]})}var Rt=4/5,zt=`text-[var(--img-meta-label)] @max-[470px]:hidden`,Bt=`truncate text-text @max-[470px]:text-text-2`,Vt=`h-[30px] @max-[470px]:h-[36px] shrink-0 rounded-[7px] px-[9px] font-mono text-[11.5px] text-text-2 bg-[var(--img-ghost)] border border-[var(--img-ghost-border)] backdrop-blur-[6px] transition-colors can-hover:hover:bg-[var(--img-ghost-hover)] can-hover:hover:border-[var(--img-ghost-hover-border)] can-hover:hover:text-text`;function Ht({filePath:e,projectName:t}){let[n,r]=(0,q.useState)(0),{blobUrl:i,blob:a,error:o,errorCode:s}=Te(e,t,void 0,n),[c,l]=(0,q.useState)(()=>be(e)),[u,d]=(0,q.useState)(!1),[f,p]=(0,q.useState)(!1),m=ve(e=>e.open),{openTab:h}=le(ge(e=>({openTab:e.openTab}))),g=P(e);(0,q.useEffect)(()=>{if(!f)return;let e=setTimeout(()=>p(!1),1200);return()=>clearTimeout(e)},[f]);let _=t=>{let n={w:t.naturalWidth,h:t.naturalHeight};if(!n.w||!n.h)return d(!0);Ce(e,n),l(n)},ee=()=>{d(!1),r(e=>e+1)};if(o||u)return(0,J.jsx)(`div`,{className:`border-t border-border pt-1.5`,children:(0,J.jsx)(Lt,{code:u?void 0:s??void 0,onRetry:ee})});let v=c?ye(c,132):null,y=v?.aspect??Rt,b=(0,J.jsxs)(`div`,{className:`flex flex-wrap gap-[6px]`,children:[(0,J.jsxs)(`button`,{type:`button`,onClick:x,className:Vt,children:[(0,J.jsx)(`span`,{className:`@max-[470px]:hidden`,children:`open in editor`}),(0,J.jsx)(`span`,{className:`hidden @max-[470px]:inline`,children:`open`})]}),(0,J.jsx)(`button`,{type:`button`,onClick:S,className:Vt,children:f?`copied`:`copy path`}),(0,J.jsx)(`button`,{type:`button`,onClick:C,className:Vt,children:`full size`})]});function x(){t&&h({type:`editor`,title:g,metadata:{filePath:e,projectName:t},projectId:t,closable:!0})}function S(){pe(e).then(()=>p(!0))}function C(e){i&&m(i,g,Ee(e.currentTarget))}if(!i||!v||!c)return(0,J.jsxs)(`div`,{className:`@container border-t border-border pt-1.5`,children:[i&&(0,J.jsx)(`img`,{src:i,alt:``,className:`hidden`,onLoad:e=>_(e.currentTarget),onError:()=>d(!0)}),(0,J.jsx)(It,{aspect:y,actions:b})]});let w=(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`dt`,{className:zt,children:`dimensions`}),(0,J.jsx)(`dd`,{className:Bt,children:xe(c,v.fit)}),a&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`dt`,{className:zt,children:`size`}),(0,J.jsxs)(`dd`,{className:Bt,children:[Se(a.size),a.type?` · ${a.type}`:``]})]}),(0,J.jsx)(`dt`,{className:zt,children:`path`}),(0,J.jsx)(`dd`,{dir:`rtl`,className:`${Bt} text-left`,children:e})]}),T=(0,J.jsx)(`img`,{src:i,alt:g,[De]:``,onLoad:e=>_(e.currentTarget),onError:()=>d(!0),className:v.fit===`cover`?`size-full object-cover`:v.fit===`contain`?`size-full object-contain`:`max-h-full max-w-full`});return(0,J.jsx)(`div`,{className:`@container border-t border-border pt-1.5`,children:(0,J.jsxs)(`div`,{className:`relative overflow-hidden rounded-lg border border-border p-[14px] @max-[470px]:p-[11px]`,children:[(0,J.jsx)(`img`,{"aria-hidden":`true`,alt:``,src:i,className:`absolute inset-0 size-full object-cover`,style:{filter:`var(--img-backdrop)`,transform:`scale(1.3)`}}),(0,J.jsx)(`div`,{className:`absolute inset-0`,style:{background:`var(--img-veil)`}}),v.variant===`band`?(0,J.jsxs)(`div`,{className:`relative grid gap-[11px]`,children:[(0,J.jsx)(`button`,{type:`button`,onClick:C,title:`Open ${g}`,className:`img-checkerboard w-full cursor-zoom-in overflow-hidden rounded-lg border border-[var(--img-plate-border)]`,style:{aspectRatio:v.aspect},children:T}),(0,J.jsx)(`dl`,{className:`grid grid-cols-[auto_auto_1fr] gap-x-[18px] font-mono text-[11.5px] [&_dt]:hidden`,children:w}),b]}):(0,J.jsxs)(`div`,{className:`relative grid grid-cols-[132px_1fr] items-start gap-[14px] @max-[470px]:grid-cols-[64px_1fr] @max-[470px]:gap-[11px]`,children:[(0,J.jsx)(`button`,{type:`button`,onClick:C,title:`Open ${g}`,className:`cursor-zoom-in overflow-hidden rounded-lg border border-[var(--img-plate-border)] bg-[var(--img-plate)] shadow-[var(--img-plate-shadow)] ${v.fit===`cover`?``:`img-checkerboard flex items-center justify-center`}`,style:{aspectRatio:v.aspect},children:T}),(0,J.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-[9px]`,children:[(0,J.jsx)(`p`,{className:`truncate text-[13px] font-semibold text-text @max-[470px]:hidden`,children:g}),(0,J.jsx)(`dl`,{className:`grid grid-cols-[auto_1fr] gap-x-[14px] gap-y-[4px] font-mono text-[11.5px] @max-[470px]:grid-cols-[1fr]`,children:w}),b]})]})]})})}var Ut=/^(\/|[A-Za-z]:[/\\])/;function Wt(e,t,n){if(e.type!==`editor`)return!1;let r=e.metadata??{};return r.viewerKey||r.isUntitled||r.inlineContent!=null||r.filePath!==t?!1:Ut.test(t)||r.projectName===n}function Gt(e){let{grid:t,panels:n,focusedPanelId:r,sessionId:i}=e,a=t.flat().filter(e=>n[e]);if(a.length===0)return null;let o=a.find(e=>n[e].tabs.some(e=>ce(e)===i))??null,s=Kt(a,o,e);if(e.mobile)return s?{kind:`focus`,...s}:{kind:`open`,panelId:a[0],split:!1};if(o===null)return s?{kind:`focus`,...s}:{kind:`open`,panelId:a.includes(r)?r:a[0],split:!1};let c=n[o],l=c.tabs.some(e=>e.id===c.activeTabId&&ce(e)===i),u=qt(t,o,r,a);return s?s.panelId!==o||!l?{kind:`focus`,...s}:{kind:`move`,tabId:s.tabId,fromPanelId:o,toPanelId:u}:u?{kind:`open`,panelId:u,split:!1}:{kind:`open`,panelId:o,split:!0}}function Kt(e,t,n){let r=[...e.filter(e=>e!==t),...t?[t]:[]];for(let e of r){let t=n.panels[e].tabs.find(n.isTarget);if(t)return{tabId:t.id,panelId:e}}return null}function qt(e,t,n,r){if(n!==t&&r.includes(n))return n;let i=e.find(e=>e.includes(t))??[],a=i.indexOf(t);return[...i.slice(a+1),...i.slice(0,a).reverse(),...e.filter(e=>e!==i).flat()].find(e=>e!==t&&r.includes(e))??null}var Jt=12e3,Yt=1500,Xt=e=>e instanceof Error?e.message:String(e);function Zt(e){if(!e||I.getState().currentProject===e)return;let t=L.getState().projects.find(t=>t.name===e);t&&(L.getState().setActiveProject(t),I.getState().switchProject(e))}function Qt(e,t){Zt(e.projectName);let n=I.getState(),r=Gt({grid:n.grid,panels:n.panels,focusedPanelId:n.focusedPanelId,mobile:n.isMobile(),sessionId:e.sessionId,isTarget:t});if(!r)throw Error(`PPM has no panel to open the tab in`);return r}function $t(e){let t=I.getState(),n=e.kind===`focus`?e.panelId:e.fromPanelId;e.kind===`focus`?t.setActiveTab(e.tabId,e.panelId):e.toPanelId?t.moveTab(e.tabId,n,e.toPanelId):t.splitPanel(`right`,e.tabId,n)||t.setActiveTab(e.tabId,n)}function en(e,t){let n=Qt(t,t=>Wt(t,e.filePath,e.projectName)),r=I.getState(),i=Date.now(),a=e.line?`code`:e.tool===`open_preview`?`preview`:void 0,o={...e.line?{lineNumber:e.line,endLine:void 0,revealAt:i}:{},...a?{aiView:a,aiOpenAt:i}:{}};if(n.kind===`open`){let t={filePath:e.filePath,...e.projectName?{projectName:e.projectName}:{},...o},i=Oe(e.projectName??void 0,e.filePath),a=ke(i),s=r.openTab({type:`editor`,title:P(e.filePath),projectId:e.projectName,metadata:t,closable:!0},n.panelId);if(!s)throw Error(`PPM could not open the tab`);return n.split&&r.splitPanel(`right`,s,n.panelId),{tabId:s,previewKey:i,before:a}}let s=n.kind===`focus`?n.panelId:n.fromPanelId,c={...r.panels[s]?.tabs.find(e=>e.id===n.tabId)?.metadata,...o},l=Oe(c.projectName,String(c.filePath??e.filePath)),u=ke(l);return r.updateTab(n.tabId,{metadata:c}),$t(n),{tabId:n.tabId,previewKey:l,before:u}}function tn(e,t){let n=Qt(t,()=>!1);if(n.kind!==`open`)throw Error(`PPM has no panel to open the tab in`);let r=I.getState(),i=ie(Object.values(r.panels).flatMap(e=>e.tabs)),a={kind:`connection`,connectionId:e.connectionId,...e.database?{database:e.database}:{}},o=r.openTab({type:`db-query`,title:`Query ${i}`,projectId:null,closable:!0,metadata:{...ae(a),connectionName:e.connectionName,dbType:e.dbType,...e.connectionColor?{connectionColor:e.connectionColor}:{},...oe(e.sql,i)}},n.panelId);if(!o)throw Error(`PPM could not open the tab`);return n.split&&r.splitPanel(`right`,o,n.panelId),o}function nn(e=window.location.hostname){return e===`localhost`||e===`[::1]`||/^127(?:\.\d{1,3}){3}$/.test(e)}function rn(e,t){if(e.via===`local`&&!nn())throw Error(`this device is not the machine PPM runs on, so it cannot reach localhost:${e.port}`);let n=Qt(t,t=>t.type===`web-preview`&&t.metadata?.url===e.url),r=I.getState(),i={url:e.url,port:e.port,via:e.via,aiOpenAt:Date.now()};if(n.kind===`open`){let t=r.openTab({type:`web-preview`,title:he(e.port,e.url),projectId:null,closable:!0,metadata:i},n.panelId);if(!t)throw Error(`PPM could not open the tab`);return n.split&&r.splitPanel(`right`,t,n.panelId),t}return r.updateTab(n.tabId,{metadata:i}),$t(n),n.tabId}function an(e,t){Zt(t.projectName);let n=I.getState().openInDock({type:`terminal`,title:P(e.cwd)||e.cwd,projectId:e.projectName,closable:!0,metadata:{sessionId:e.terminalId,cwd:e.cwd,...e.projectName?{projectName:e.projectName}:{}}});try{localStorage.setItem(`ppm:terminal-session:${n}`,e.terminalId)}catch{}return n}async function on(e,t,n){let r=t=>{let r={type:`tab_open_result`,requestId:e.requestId,...t};n(JSON.stringify(r))};if(e.tool===`open_query`||e.tool===`open_url`||e.tool===`run_in_terminal`){try{e.tool===`open_query`?tn(e.query,t):e.tool===`open_url`?rn(e,t):an(e,t),r({opened:!0})}catch(e){r({opened:!1,error:Xt(e)})}return}let i;try{i=en({tool:e.tool,filePath:e.filePath,projectName:e.projectName,line:e.line},t)}catch(e){r({opened:!1,error:Xt(e)});return}if(!e.check){r({opened:!0});return}try{let t=await Ae(i.previewKey,i.before,Jt);if(!t){r({opened:!0,error:`the page did not start loading`});return}await new Promise(e=>setTimeout(e,Yt));let n=I.getState().isMobile()?`Phone`:`Desktop`;r({opened:!0,report:await t.check({screenshot:e.check.screenshot,frame:n})})}catch(e){r({opened:!0,error:Xt(e)})}}async function sn(e,t){let n=t?L.getState().projects.find(e=>e.name===t)?.path:void 0,r=e.path.trim(),i=/^(\/|[a-z]:[/\\]|~(?:[/\\]|$))/i.test(r);if(!i&&!n)throw Error(`this chat has no project folder`);let a=await me.stat(i?r:de(n,r));if(a.kind===`directory`)throw Error(`${r} is a folder`);let o=n?ue(n,a.path):null;return o?{tool:e.tool,filePath:o,projectName:t,line:e.line}:{tool:e.tool,filePath:a.path,projectName:null,line:e.line}}var cn=RegExp(`^(?:mcp__${Fe}__|${He}:)(${je}|${ze})$`),ln=RegExp(`^(?:mcp__${Fe}__|${He}:)(${Ie}|${Ne}|${Me})$`),un=/^\[image(?: [^\]\s]+)?\]$/,Z=e=>!!e&&typeof e==`object`&&!Array.isArray(e);function dn(e,t){let n=cn.exec(e)?.[1];if(!n||!Z(t))return null;let r=`arguments`in t?t.arguments:t;if(!Z(r)||typeof r.path!=`string`||!r.path.trim())return null;let i=r.line,a=n===`open_file`&&typeof i==`number`&&Number.isInteger(i)&&i>=1&&i<=1e7;return{tool:n,path:r.path,...a?{line:i}:{}}}function fn(e){return ln.exec(e)?.[1]??null}function pn(e,t){let n=fn(e);if(!n||!Z(t))return null;let r=`arguments`in t&&Z(t.arguments)?t.arguments:t,i=e=>typeof e==`string`&&e.trim()?e:void 0;if(n===`open_url`){let e=i(r.url);return e?{tool:n,url:e}:null}if(n===`run_in_terminal`){let e=i(r.command),t=i(r.cwd);return e?{tool:n,command:e,...t?{cwd:t}:{}}:null}let a=i(r.terminal),o=typeof r.lines==`number`&&Number.isInteger(r.lines)&&r.lines>0?r.lines:void 0;return{tool:Ne,...a?{terminal:a}:{},...o?{lines:o}:{}}}function mn(e){let t=()=>e.split(`
|
|
4
4
|
`).filter(e=>!un.test(e)).join(`
|
|
5
5
|
`).trimEnd();if(!e.startsWith(`[`))return t();try{let n=JSON.parse(e);return Array.isArray(n)?n.filter(e=>Z(e)&&e.type===`text`&&typeof e.text==`string`).map(e=>e.text).filter(e=>!At(e)).join(`
|
|
6
6
|
|
|
7
7
|
`):t()}catch{return t()}}function hn(e){let t=e.split(`
|
|
8
8
|
`)[1]??``;if(t.startsWith(`No layout problems or runtime errors were found`))return 0;let n=/^(\d+) problems? found\b/.exec(t);return n?Number(n[1]):null}function gn(e){return e===`codex`?`codex`:`claude`}var _n=(0,q.createContext)(null);function vn(){return(0,q.useContext)(_n)}function yn({value:e,children:t}){return(0,q.createElement)(_n.Provider,{value:e},t)}function bn({call:e,toolUseId:t,output:n,isError:r,done:i,projectName:a}){let[o,u]=(0,q.useState)(!1),d=vn(),f=n===void 0?``:mn(n),p=e.tool===`open_preview`&&!r?hn(f):null,h=P(e.path),g=e.tool===`open_preview`?m:ne,_=async()=>{let t=d?.projectName||a;try{en(await sn(e,t),{sessionId:d?.sessionId??``,projectName:t})}catch(e){re.error(`Could not open ${h}`,{description:e instanceof Error?e.message:String(e)})}};return(0,J.jsxs)(`div`,{"data-tool-ref":t,className:`rounded-[11px] border border-border overflow-hidden text-xs bg-panel`,children:[(0,J.jsxs)(`div`,{className:`flex items-center min-w-0`,children:[(0,J.jsxs)(`button`,{type:`button`,onClick:()=>u(!o),"aria-expanded":o,className:`flex items-center gap-2.5 px-2.5 py-2 flex-1 min-w-0 text-left hover:bg-panel-2/40 transition-colors max-md:min-h-11`,children:[(0,J.jsx)(`span`,{className:`inline-flex items-center justify-center size-6 rounded-[7px] shrink-0 bg-info/15 text-info`,children:(0,J.jsx)(g,{className:`size-3.5`})}),(0,J.jsxs)(`span`,{className:`truncate text-text font-medium`,children:[e.tool===`open_preview`?`Preview`:`Opened`,(0,J.jsxs)(`span`,{className:`text-text-subtle`,children:[` · `,h,e.line?`:${e.line}`:``]})]}),(0,J.jsxs)(`span`,{className:`ml-auto flex items-center gap-2 shrink-0`,children:[p!==null&&(0,J.jsx)(`span`,{className:`text-[10px] ${p>0?`text-warning`:`text-text-3`}`,children:p===0?`no problems`:`${p} ${p===1?`problem`:`problems`}`}),r?(0,J.jsx)(E,{className:`size-3.5 text-error`}):i?(0,J.jsx)(c,{className:`size-3.5 text-success`}):(0,J.jsx)(O,{className:`size-3.5 text-primary animate-spin`}),o?(0,J.jsx)(l,{className:`size-3 text-text-3`}):(0,J.jsx)(s,{className:`size-3 text-text-3`})]})]}),(0,J.jsx)(`button`,{type:`button`,onClick:()=>void _(),title:`Open ${h} in a tab`,className:`shrink-0 mr-1 px-2.5 h-7 rounded-md text-primary font-medium hover:bg-accent-wash transition-colors max-md:h-11 max-md:min-w-11`,children:`Open`})]}),o&&(0,J.jsxs)(`div`,{className:`px-2.5 pb-2 select-text`,children:[(0,J.jsx)(`p`,{className:`text-text-subtle font-mono break-all`,children:e.path}),f&&(0,J.jsx)(`pre`,{className:`mt-1.5 border-t border-border pt-1.5 max-h-60 overflow-auto whitespace-pre-wrap break-words text-text-subtle font-mono`,children:f})]})]})}var xn=(e,t)=>e.length>t?`${e.slice(0,t)}…`:e;function Sn({call:e}){return e.tool===`open_url`?(0,J.jsxs)(J.Fragment,{children:[`Open app `,(0,J.jsx)(`span`,{className:`font-mono text-text-subtle`,children:xn(e.url.replace(/^https?:\/\//,``),60)})]}):e.tool===`run_in_terminal`?(0,J.jsxs)(J.Fragment,{children:[`Type in terminal `,(0,J.jsx)(`span`,{className:`font-mono text-text-subtle`,children:xn(e.command,60)})]}):(0,J.jsxs)(J.Fragment,{children:[`Read terminal`,e.terminal&&(0,J.jsxs)(`span`,{className:`font-mono text-text-subtle`,children:[` `,e.terminal]}),e.lines&&(0,J.jsxs)(`span`,{className:`text-text-subtle`,children:[` · `,e.lines,` lines`]})]})}function Cn({call:e}){return e.tool===`open_url`?(0,J.jsx)(`p`,{className:`font-mono text-text-secondary break-all`,children:e.url}):e.tool===`run_in_terminal`?(0,J.jsxs)(`div`,{className:`space-y-1`,children:[(0,J.jsx)(`pre`,{className:`font-mono text-text-secondary overflow-x-auto whitespace-pre-wrap break-all`,children:e.command}),e.cwd&&(0,J.jsxs)(`p`,{className:`text-text-subtle`,children:[`in `,(0,J.jsx)(`span`,{className:`font-mono text-text-secondary break-all`,children:e.cwd})]})]}):(0,J.jsxs)(`p`,{className:`text-text-subtle`,children:[e.terminal?(0,J.jsxs)(J.Fragment,{children:[`Terminal `,(0,J.jsx)(`span`,{className:`font-mono text-text-secondary`,children:e.terminal})]}):`The chat's terminals`,e.lines?`, last ${e.lines} lines`:``]})}var wn=RegExp(`^(?:mcp__${Ve}__|${Le}:)(${Pe}|${Re}|${Be})$`),Tn=e=>!!e&&typeof e==`object`&&!Array.isArray(e),En={[Pe]:`Database query`,[Re]:`Open query`,[Be]:`Database change`};function Dn(e){return wn.exec(e)?.[1]??null}function On(e,t){let n=Dn(e);if(!n||!Tn(t))return null;let r=`arguments`in t&&Tn(t.arguments)?t.arguments:t;return typeof r.connection!=`string`||typeof r.sql!=`string`?null:{tool:n,connection:r.connection,sql:r.sql,...typeof r.database==`string`&&r.database?{database:r.database}:{},...typeof r.reason==`string`&&r.reason?{reason:r.reason}:{},...typeof r.expected_rows==`number`?{expectedRows:r.expected_rows}:{}}}var kn=e=>e.split(`
|
|
9
|
-
`).find(e=>e.trim())?.trim()??``,An=(e,t)=>e.length>t?`${e.slice(0,t)}…`:e;function jn({call:e}){let t=e.tool===`db_execute`&&e.reason?e.reason:kn(e.sql);return(0,J.jsxs)(J.Fragment,{children:[En[e.tool],` `,(0,J.jsxs)(`span`,{className:`text-text-primary`,children:[e.connection,e.database?` / ${e.database}`:``]}),t&&(0,J.jsxs)(`span`,{className:`text-text-subtle${t===e.reason?``:` font-mono`}`,children:[` · `,An(t,60)]})]})}function Mn({call:e}){return(0,J.jsxs)(`div`,{className:`space-y-1`,children:[(0,J.jsxs)(`p`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,J.jsx)(`span`,{className:`text-text-subtle`,children:`Connection`}),(0,J.jsx)(`span`,{className:`font-medium text-text-primary`,children:e.connection}),e.database&&(0,J.jsxs)(`span`,{className:`text-text-subtle`,children:[`database `,(0,J.jsx)(`span`,{className:`font-mono text-text-secondary`,children:e.database})]})]}),e.reason&&(0,J.jsx)(`p`,{className:`text-text-secondary italic`,children:e.reason}),(0,J.jsx)(`pre`,{className:`font-mono text-text-secondary overflow-auto max-h-60 whitespace-pre-wrap break-all`,children:e.sql}),e.expectedRows!=null&&(0,J.jsxs)(`p`,{className:`text-text-subtle`,children:[`Expected rows changed: `,(0,J.jsx)(`span`,{className:`text-text-secondary`,children:e.expectedRows})]})]})}function Nn({handle:e,description:t,stepCount:n,lastStep:r,status:i,bgRunning:a,onOpen:o}){let l=ve(),u=i===`error`?E:i===`done`?c:O,d=i===`error`?`text-error`:i===`done`?`text-success`:`text-primary animate-spin`;return(0,J.jsxs)(`button`,{type:`button`,onClick:o,className:N(`flex w-full items-center gap-2.5 rounded-[11px] border border-border bg-panel px-2.5 text-left text-xs`,`transition-colors hover:bg-panel-2/40`,l?`min-h-[44px] py-2`:`py-2`),title:e?`Open ${e}'s session`:`Open agent session`,children:[(0,J.jsx)(`span`,{className:N(`inline-flex items-center justify-center size-6 rounded-[7px] shrink-0`,e?`bg-accent-2/15 text-accent-2`:`bg-accent-wash text-primary`),children:e?(0,J.jsx)(w,{className:`size-3.5`}):(0,J.jsx)(D,{className:`size-3.5`})}),(0,J.jsxs)(`span`,{className:`min-w-0 flex-1 truncate`,children:[e?(0,J.jsx)(`span`,{className:`font-medium text-text-primary`,children:e}):(0,J.jsx)(`span`,{className:`font-medium text-text`,children:t||`Agent`}),!!r&&(0,J.jsxs)(`span`,{className:`text-text-subtle`,children:[` · `,r]})]}),(0,J.jsxs)(`span`,{className:`ml-auto flex items-center gap-2 shrink-0 text-text-3`,children:[a&&(0,J.jsx)(`span`,{className:`text-[10px] text-primary`,children:`running…`}),n>0&&(0,J.jsx)(`span`,{className:`font-mono text-[10px]`,children:H(n)}),(0,J.jsx)(u,{className:N(`size-3.5`,d)}),(0,J.jsx)(s,{className:`size-3`})]})]})}function Pn(e,t){let n=e;return typeof n?.sessionId!=`string`||!n.source?!1:G(n.sessionId,n.source)===G(t.sessionId,t.source)}function Fn(){let e=fe(),t=R(e=>e.open);return(0,q.useCallback)((n,r)=>{if(!n.sessionId)return;if(r&&pt(G(n.sessionId,n.source),r),e||j.getState().minimalMode){t(n);return}let i=F.getState(),a=n,o=Object.values(i.windows),s=o.find(e=>e.kind===`agent-session`&&Pn(e.payload,n));if(s){i.focus(s.id);return}if(o.length>=8){let e=o.filter(e=>e.kind===`agent-session`).sort((e,t)=>e.rank-t.rank);if(e.length===0){re.error(`Too many windows open`,{description:`Close one to open this session.`});return}i.close(e[0].id)}let c=se(Object.values(F.getState().windows).map(e=>e.rect),F.getState().bounds);F.getState().open(`agent-session`,a,c)},[e,t])}function Q(e,t){if(e!==`Agent`&&e!==`Task`)return null;let n=t.name;return typeof n==`string`&&n.trim()?n.trim():null}function In(e,t,n=!1){if(t&&(e===`Bash`||e===`PowerShell`))return{Icon:a,cls:`bg-error/15 text-error`};if(n)return{Icon:w,cls:`bg-accent-2/15 text-accent-2`};let s=Dn(e);if(s)return s===`db_execute`?{Icon:x,cls:`bg-warning/15 text-warning`}:{Icon:C,cls:`bg-info/15 text-info`};let c=fn(e);if(c)return c===`open_url`?{Icon:i,cls:`bg-info/15 text-info`}:{Icon:a,cls:`bg-panel-2 text-text-2`};switch(e){case`Read`:case`Glob`:case`LS`:return{Icon:f,cls:`bg-accent-wash text-primary`};case`Grep`:case`Search`:case`WebSearch`:case`ToolSearch`:return{Icon:k,cls:`bg-accent-wash text-primary`};case`WebFetch`:case`Fetch`:return{Icon:i,cls:`bg-info/15 text-info`};case`Edit`:case`MultiEdit`:case`NotebookEdit`:return{Icon:d,cls:`bg-accent-2/15 text-accent-2`};case`Write`:return{Icon:te,cls:`bg-success/15 text-success`};case`Bash`:case`PowerShell`:return{Icon:a,cls:`bg-panel-2 text-text-2`};case`TodoWrite`:return{Icon:p,cls:`bg-warning/15 text-warning`};case`Task`:case`Agent`:return{Icon:D,cls:`bg-accent-wash text-primary`};case`SendMessage`:return{Icon:u,cls:`bg-info/15 text-info`};case`AskUserQuestion`:return{Icon:o,cls:`bg-accent-wash text-primary`};case`ExitPlanMode`:return{Icon:r,cls:`bg-accent-wash text-primary`};case`Skill`:return{Icon:y,cls:`bg-accent-2/15 text-accent-2`};case`ImageGen`:return{Icon:v,cls:`bg-accent-2/15 text-accent-2`};default:return{Icon:h,cls:`bg-panel-2 text-text-2`}}}function Ln(e){let t=e.type===`approval_request`;return{toolName:e.type===`tool_use`?e.tool:t?e.tool??`Tool`:`Tool`,input:e.type===`tool_use`?e.input:t?e.input??{}:{}}}var Rn=new Set([`Read`,`ImageGen`]);function zn(e){if(e.type!==`tool_use`||!Rn.has(e.tool))return null;let t=e.input?.file_path;return typeof t!=`string`||!/^(\/|[A-Za-z]:[/\\])/.test(t)?null:Ot(t)?t:null}function Bn({tool:e,result:t,completed:n,projectName:r,bashPartialOutput:i,variant:a=`chat`}){let[o,u]=(0,q.useState)(()=>{let n=(e.type,e.tool),r=t?.type===`tool_result`&&!!t.isError;return(n===`Edit`||n===`MultiEdit`)&&!r?!0:!!zn(e)}),d=Fn(),f=vn();if(e.type===`error`)return(0,J.jsxs)(`div`,{className:`flex items-center gap-2 rounded bg-error/10 border border-error/20 px-2 py-1.5 text-xs text-error`,children:[(0,J.jsx)(S,{className:`size-3`}),(0,J.jsx)(`span`,{children:e.message})]});let{toolName:p,input:m}=Ln(e),h=t?.type===`tool_result`,g=h&&!!t.isError,_=h&&typeof t.exitCode==`number`?t.exitCode:void 0,ee=p===`AskUserQuestion`&&!!m?.answers,v=e.type===`approval_request`&&e.approved!=null,y=(p===`Agent`||p===`Task`)&&e.type===`tool_use`,b=y?e.children:void 0,x=b&&b.length>0,C=y&&e.type===`tool_use`?e.bgStatus:void 0,w=y&&(C!=null||h&&!g&&Nt(String(t.output??``)))&&C==null,T=C===`failed`||C===`stopped`,D=w?!1:h||ee||v||n,te=[`Edit`,`MultiEdit`,`Write`,`NotebookEdit`].includes(p),k=zn(e),ne=h&&jt(String(t.output??``)),re=!!k,A=e.type===`tool_use`?e.toolUseId:void 0,j=e.type===`tool_use`?dn(p,m):null;if(j)return(0,J.jsx)(bn,{call:j,toolUseId:A,output:h?String(t.output??``):void 0,isError:g,done:!!D,projectName:r});if(y&&a===`chat`&&e.type===`tool_use`){let t=Q(p,m),n=t?``:$(String(m.description??m.prompt??``),60),{stepCount:i,lastStep:a}=ot(e),o=g||T?`error`:D?`done`:`running`,s=A??``,c=f??{projectName:r??``,providerId:gn(void 0),sessionId:`local:${s||`card`}`},l=ut(e.children??[],e.recentChildren??[]);return(0,J.jsx)(Nn,{handle:t,description:n,stepCount:i,lastStep:a,status:o,bgRunning:w,onOpen:()=>d({projectName:c.projectName,providerId:c.providerId,sessionId:c.sessionId,source:{kind:`card`,cardId:s},title:t?`Session — ${t}`:n||`Agent session`,prompt:String(m.prompt??m.description??``)},l)})}let M=(p===`Bash`||p===`PowerShell`)&&!h&&A?i?.current?.get(A):void 0,N=!!M;(0,q.useEffect)(()=>{N&&!o&&u(!0)},[N]);let P=(0,q.useRef)(!1);(0,q.useEffect)(()=>{g&&(p===`Edit`||p===`MultiEdit`)&&!P.current&&(P.current=!0,u(!1))},[g,p]);let{Icon:ie,cls:ae}=In(p,g,!!Q(p,m)),oe=p===`AskUserQuestion`||p===`ExitPlanMode`||y;return(0,J.jsxs)(`div`,{"data-tool-ref":A,className:`rounded-[11px] border overflow-hidden text-xs bg-panel ${oe?`border-accent-wash-border`:`border-border`}`,children:[(0,J.jsxs)(`button`,{onClick:()=>u(!o),className:`flex items-center gap-2.5 px-2.5 py-2 w-full text-left hover:bg-panel-2/40 transition-colors min-w-0`,children:[(0,J.jsx)(`span`,{className:`inline-flex items-center justify-center size-6 rounded-[7px] shrink-0 ${ae}`,children:(0,J.jsx)(ie,{className:`size-3.5`})}),(0,J.jsx)(`span`,{className:`truncate text-text font-medium`,children:(0,J.jsx)(Vn,{name:p,input:m})}),(0,J.jsxs)(`span`,{className:`ml-auto flex items-center gap-2 shrink-0`,children:[N&&(0,J.jsxs)(`span`,{className:`text-[10px] text-warning`,children:[M.lineCount,` line`,M.lineCount===1?``:`s`,` streaming…`]}),x&&!N&&(0,J.jsx)(`span`,{className:`text-[10px] text-text-3 font-mono`,children:H(b.length)}),w&&(0,J.jsx)(`span`,{className:`text-[10px] text-primary`,children:`running…`}),_!=null&&(0,J.jsxs)(`span`,{className:`text-[10px] font-mono ${_===0?`text-text-3`:`text-error`}`,children:[`exit `,_]}),g||T?(0,J.jsx)(E,{className:`size-3.5 text-error`}):D?(0,J.jsx)(c,{className:`size-3.5 text-success`}):(0,J.jsx)(O,{className:`size-3.5 text-primary animate-spin`}),o?(0,J.jsx)(l,{className:`size-3 text-text-3`}):(0,J.jsx)(s,{className:`size-3 text-text-3`})]})]}),o&&(0,J.jsxs)(`div`,{className:`px-2 pb-2 space-y-1.5 select-text`,children:[(e.type===`tool_use`||e.type===`approval_request`)&&(0,J.jsx)(Hn,{name:p,input:m,projectName:r,toolUseId:A}),M&&(0,J.jsx)(Jn,{content:M.content,lineCount:M.lineCount}),x&&(0,J.jsx)(qn,{events:b,projectName:r,variant:a}),k&&(0,J.jsx)(Ht,{filePath:k,projectName:r??``}),h&&!(te&&!g)&&!(ne&&!g)&&!(re&&!g)&&(0,J.jsx)(Gn,{toolName:p,output:t.output})]})]})}function Vn({name:e,input:t}){let n=e=>String(e??``),r=On(e,t);if(r)return(0,J.jsx)(jn,{call:r});let a=pn(e,t);if(a)return(0,J.jsx)(Sn,{call:a});switch(e){case`Read`:case`Write`:case`Edit`:case`MultiEdit`:case`NotebookEdit`:return(0,J.jsxs)(J.Fragment,{children:[e,` `,(0,J.jsx)(`span`,{className:`text-text-subtle`,children:P(n(t.file_path))})]});case`Bash`:case`PowerShell`:{let r=t.description?n(t.description):n(t.command);return(0,J.jsxs)(J.Fragment,{children:[e,` `,(0,J.jsx)(`span`,{className:`text-text-subtle${t.description?``:` font-mono`}`,children:$(r,60)})]})}case`Glob`:return(0,J.jsxs)(J.Fragment,{children:[e,` `,(0,J.jsx)(`span`,{className:`font-mono text-text-subtle`,children:n(t.pattern)})]});case`Grep`:return(0,J.jsxs)(J.Fragment,{children:[e,` `,(0,J.jsx)(`span`,{className:`font-mono text-text-subtle`,children:$(n(t.pattern),40)})]});case`WebSearch`:return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(k,{className:`size-3 inline`}),` `,e,` `,(0,J.jsx)(`span`,{className:`text-text-subtle`,children:$(n(t.query),50)})]});case`WebFetch`:return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(i,{className:`size-3 inline`}),` `,e,` `,(0,J.jsx)(`span`,{className:`text-text-subtle`,children:$(n(t.url),50)})]});case`ToolSearch`:return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(k,{className:`size-3 inline`}),` `,e,` `,(0,J.jsx)(`span`,{className:`text-text-subtle`,children:$(n(t.query),50)})]});case`ImageGen`:{let e=(n(t.prompt).split(`
|
|
10
|
-
`).find(e=>e.trim())??``)||P(n(t.file_path));return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(v,{className:`size-3 inline`}),` Image`,(0,J.jsxs)(`span`,{className:`text-text-subtle`,children:[` `,$(e,50)]})]})}case`Agent`:case`Task`:{let r=Q(e,t),i=$(n(t.description||t.prompt),r?44:60);return(0,J.jsxs)(J.Fragment,{children:[!r&&(0,J.jsx)(D,{className:`size-3 inline`}),` `,e,` `,r&&(0,J.jsx)(`span`,{className:`text-text-primary font-medium`,children:r}),(0,J.jsx)(`span`,{className:`text-text-subtle`,children:r?` · ${i}`:i})]})}case`SendMessage`:return(0,J.jsx)(wt,{name:e,input:t});case`TodoWrite`:{let n=Array.isArray(t.todos)?t.todos:[],r=n.filter(e=>e.status===`completed`).length;return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(g,{className:`size-3 inline`}),` `,e,` `,(0,J.jsxs)(`span`,{className:`text-text-subtle`,children:[r,`/`,n.length,` done`]})]})}case`AskUserQuestion`:{let n=Array.isArray(t.questions)?t.questions:[],r=!!t.answers;return(0,J.jsxs)(J.Fragment,{children:[e,` `,(0,J.jsxs)(`span`,{className:`text-text-subtle`,children:[n.length,` question`,n.length===1?``:`s`,r?` ✓`:``]})]})}case`ScheduleWakeup`:return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(T,{className:`size-3 inline`}),` `,e,` `,(0,J.jsxs)(`span`,{className:`text-text-subtle`,children:[`in `,Qn(Number(t.delaySeconds)),t.reason?` — ${$(n(t.reason),50)}`:``]})]});case`TaskCreate`:return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(g,{className:`size-3 inline`}),` `,e,` `,(0,J.jsx)(`span`,{className:`text-text-subtle`,children:$(n(t.subject),60)})]});case`TaskUpdate`:return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(g,{className:`size-3 inline`}),` `,e,` `,(0,J.jsxs)(`span`,{className:`text-text-subtle`,children:[`#`,n(t.taskId),` → `,n(t.status)]})]});case`TaskStop`:return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(g,{className:`size-3 inline`}),` `,e,` `,(0,J.jsxs)(`span`,{className:`text-text-subtle`,children:[`#`,n(t.taskId),` stopped`]})]});default:return(0,J.jsx)(J.Fragment,{children:e})}}function Hn({name:e,input:t,projectName:n,toolUseId:r}){let a=e=>String(e??``),{openTab:o}=le(
|
|
9
|
+
`).find(e=>e.trim())?.trim()??``,An=(e,t)=>e.length>t?`${e.slice(0,t)}…`:e;function jn({call:e}){let t=e.tool===`db_execute`&&e.reason?e.reason:kn(e.sql);return(0,J.jsxs)(J.Fragment,{children:[En[e.tool],` `,(0,J.jsxs)(`span`,{className:`text-text-primary`,children:[e.connection,e.database?` / ${e.database}`:``]}),t&&(0,J.jsxs)(`span`,{className:`text-text-subtle${t===e.reason?``:` font-mono`}`,children:[` · `,An(t,60)]})]})}function Mn({call:e}){return(0,J.jsxs)(`div`,{className:`space-y-1`,children:[(0,J.jsxs)(`p`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,J.jsx)(`span`,{className:`text-text-subtle`,children:`Connection`}),(0,J.jsx)(`span`,{className:`font-medium text-text-primary`,children:e.connection}),e.database&&(0,J.jsxs)(`span`,{className:`text-text-subtle`,children:[`database `,(0,J.jsx)(`span`,{className:`font-mono text-text-secondary`,children:e.database})]})]}),e.reason&&(0,J.jsx)(`p`,{className:`text-text-secondary italic`,children:e.reason}),(0,J.jsx)(`pre`,{className:`font-mono text-text-secondary overflow-auto max-h-60 whitespace-pre-wrap break-all`,children:e.sql}),e.expectedRows!=null&&(0,J.jsxs)(`p`,{className:`text-text-subtle`,children:[`Expected rows changed: `,(0,J.jsx)(`span`,{className:`text-text-secondary`,children:e.expectedRows})]})]})}function Nn({handle:e,description:t,stepCount:n,lastStep:r,status:i,bgRunning:a,onOpen:o}){let l=_e(),u=i===`error`?E:i===`done`?c:O,d=i===`error`?`text-error`:i===`done`?`text-success`:`text-primary animate-spin`;return(0,J.jsxs)(`button`,{type:`button`,onClick:o,className:N(`flex w-full items-center gap-2.5 rounded-[11px] border border-border bg-panel px-2.5 text-left text-xs`,`transition-colors hover:bg-panel-2/40`,l?`min-h-[44px] py-2`:`py-2`),title:e?`Open ${e}'s session`:`Open agent session`,children:[(0,J.jsx)(`span`,{className:N(`inline-flex items-center justify-center size-6 rounded-[7px] shrink-0`,e?`bg-accent-2/15 text-accent-2`:`bg-accent-wash text-primary`),children:e?(0,J.jsx)(w,{className:`size-3.5`}):(0,J.jsx)(D,{className:`size-3.5`})}),(0,J.jsxs)(`span`,{className:`min-w-0 flex-1 truncate`,children:[e?(0,J.jsx)(`span`,{className:`font-medium text-text-primary`,children:e}):(0,J.jsx)(`span`,{className:`font-medium text-text`,children:t||`Agent`}),!!r&&(0,J.jsxs)(`span`,{className:`text-text-subtle`,children:[` · `,r]})]}),(0,J.jsxs)(`span`,{className:`ml-auto flex items-center gap-2 shrink-0 text-text-3`,children:[a&&(0,J.jsx)(`span`,{className:`text-[10px] text-primary`,children:`running…`}),n>0&&(0,J.jsx)(`span`,{className:`font-mono text-[10px]`,children:H(n)}),(0,J.jsx)(u,{className:N(`size-3.5`,d)}),(0,J.jsx)(s,{className:`size-3`})]})]})}function Pn(e,t){let n=e;return typeof n?.sessionId!=`string`||!n.source?!1:G(n.sessionId,n.source)===G(t.sessionId,t.source)}function Fn(){let e=fe(),t=R(e=>e.open);return(0,q.useCallback)((n,r)=>{if(!n.sessionId)return;if(r&&pt(G(n.sessionId,n.source),r),e||j.getState().minimalMode){t(n);return}let i=F.getState(),a=n,o=Object.values(i.windows),s=o.find(e=>e.kind===`agent-session`&&Pn(e.payload,n));if(s){i.focus(s.id);return}if(o.length>=8){let e=o.filter(e=>e.kind===`agent-session`).sort((e,t)=>e.rank-t.rank);if(e.length===0){re.error(`Too many windows open`,{description:`Close one to open this session.`});return}i.close(e[0].id)}let c=se(Object.values(F.getState().windows).map(e=>e.rect),F.getState().bounds);F.getState().open(`agent-session`,a,c)},[e,t])}function Q(e,t){if(e!==`Agent`&&e!==`Task`)return null;let n=t.name;return typeof n==`string`&&n.trim()?n.trim():null}function In(e,t,n=!1){if(t&&(e===`Bash`||e===`PowerShell`))return{Icon:a,cls:`bg-error/15 text-error`};if(n)return{Icon:w,cls:`bg-accent-2/15 text-accent-2`};let s=Dn(e);if(s)return s===`db_execute`?{Icon:x,cls:`bg-warning/15 text-warning`}:{Icon:C,cls:`bg-info/15 text-info`};let c=fn(e);if(c)return c===`open_url`?{Icon:i,cls:`bg-info/15 text-info`}:{Icon:a,cls:`bg-panel-2 text-text-2`};switch(e){case`Read`:case`Glob`:case`LS`:return{Icon:f,cls:`bg-accent-wash text-primary`};case`Grep`:case`Search`:case`WebSearch`:case`ToolSearch`:return{Icon:k,cls:`bg-accent-wash text-primary`};case`WebFetch`:case`Fetch`:return{Icon:i,cls:`bg-info/15 text-info`};case`Edit`:case`MultiEdit`:case`NotebookEdit`:return{Icon:d,cls:`bg-accent-2/15 text-accent-2`};case`Write`:return{Icon:te,cls:`bg-success/15 text-success`};case`Bash`:case`PowerShell`:return{Icon:a,cls:`bg-panel-2 text-text-2`};case`TodoWrite`:return{Icon:p,cls:`bg-warning/15 text-warning`};case`Task`:case`Agent`:return{Icon:D,cls:`bg-accent-wash text-primary`};case`SendMessage`:return{Icon:u,cls:`bg-info/15 text-info`};case`AskUserQuestion`:return{Icon:o,cls:`bg-accent-wash text-primary`};case`ExitPlanMode`:return{Icon:r,cls:`bg-accent-wash text-primary`};case`Skill`:return{Icon:y,cls:`bg-accent-2/15 text-accent-2`};case`ImageGen`:return{Icon:v,cls:`bg-accent-2/15 text-accent-2`};default:return{Icon:h,cls:`bg-panel-2 text-text-2`}}}function Ln(e){let t=e.type===`approval_request`;return{toolName:e.type===`tool_use`?e.tool:t?e.tool??`Tool`:`Tool`,input:e.type===`tool_use`?e.input:t?e.input??{}:{}}}var Rn=new Set([`Read`,`ImageGen`]);function zn(e){if(e.type!==`tool_use`||!Rn.has(e.tool))return null;let t=e.input?.file_path;return typeof t!=`string`||!/^(\/|[A-Za-z]:[/\\])/.test(t)?null:Ot(t)?t:null}function Bn({tool:e,result:t,completed:n,projectName:r,bashPartialOutput:i,variant:a=`chat`}){let[o,u]=(0,q.useState)(()=>{let n=(e.type,e.tool),r=t?.type===`tool_result`&&!!t.isError;return(n===`Edit`||n===`MultiEdit`)&&!r?!0:!!zn(e)}),d=Fn(),f=vn();if(e.type===`error`)return(0,J.jsxs)(`div`,{className:`flex items-center gap-2 rounded bg-error/10 border border-error/20 px-2 py-1.5 text-xs text-error`,children:[(0,J.jsx)(S,{className:`size-3`}),(0,J.jsx)(`span`,{children:e.message})]});let{toolName:p,input:m}=Ln(e),h=t?.type===`tool_result`,g=h&&!!t.isError,_=h&&typeof t.exitCode==`number`?t.exitCode:void 0,ee=p===`AskUserQuestion`&&!!m?.answers,v=e.type===`approval_request`&&e.approved!=null,y=(p===`Agent`||p===`Task`)&&e.type===`tool_use`,b=y?e.children:void 0,x=b&&b.length>0,C=y&&e.type===`tool_use`?e.bgStatus:void 0,w=y&&(C!=null||h&&!g&&Nt(String(t.output??``)))&&C==null,T=C===`failed`||C===`stopped`,D=w?!1:h||ee||v||n,te=[`Edit`,`MultiEdit`,`Write`,`NotebookEdit`].includes(p),k=zn(e),ne=h&&jt(String(t.output??``)),re=!!k,A=e.type===`tool_use`?e.toolUseId:void 0,j=e.type===`tool_use`?dn(p,m):null;if(j)return(0,J.jsx)(bn,{call:j,toolUseId:A,output:h?String(t.output??``):void 0,isError:g,done:!!D,projectName:r});if(y&&a===`chat`&&e.type===`tool_use`){let t=Q(p,m),n=t?``:$(String(m.description??m.prompt??``),60),{stepCount:i,lastStep:a}=ot(e),o=g||T?`error`:D?`done`:`running`,s=A??``,c=f??{projectName:r??``,providerId:gn(void 0),sessionId:`local:${s||`card`}`},l=ut(e.children??[],e.recentChildren??[]);return(0,J.jsx)(Nn,{handle:t,description:n,stepCount:i,lastStep:a,status:o,bgRunning:w,onOpen:()=>d({projectName:c.projectName,providerId:c.providerId,sessionId:c.sessionId,source:{kind:`card`,cardId:s},title:t?`Session — ${t}`:n||`Agent session`,prompt:String(m.prompt??m.description??``)},l)})}let M=(p===`Bash`||p===`PowerShell`)&&!h&&A?i?.current?.get(A):void 0,N=!!M;(0,q.useEffect)(()=>{N&&!o&&u(!0)},[N]);let P=(0,q.useRef)(!1);(0,q.useEffect)(()=>{g&&(p===`Edit`||p===`MultiEdit`)&&!P.current&&(P.current=!0,u(!1))},[g,p]);let{Icon:ie,cls:ae}=In(p,g,!!Q(p,m)),oe=p===`AskUserQuestion`||p===`ExitPlanMode`||y;return(0,J.jsxs)(`div`,{"data-tool-ref":A,className:`rounded-[11px] border overflow-hidden text-xs bg-panel ${oe?`border-accent-wash-border`:`border-border`}`,children:[(0,J.jsxs)(`button`,{onClick:()=>u(!o),className:`flex items-center gap-2.5 px-2.5 py-2 w-full text-left hover:bg-panel-2/40 transition-colors min-w-0`,children:[(0,J.jsx)(`span`,{className:`inline-flex items-center justify-center size-6 rounded-[7px] shrink-0 ${ae}`,children:(0,J.jsx)(ie,{className:`size-3.5`})}),(0,J.jsx)(`span`,{className:`truncate text-text font-medium`,children:(0,J.jsx)(Vn,{name:p,input:m})}),(0,J.jsxs)(`span`,{className:`ml-auto flex items-center gap-2 shrink-0`,children:[N&&(0,J.jsxs)(`span`,{className:`text-[10px] text-warning`,children:[M.lineCount,` line`,M.lineCount===1?``:`s`,` streaming…`]}),x&&!N&&(0,J.jsx)(`span`,{className:`text-[10px] text-text-3 font-mono`,children:H(b.length)}),w&&(0,J.jsx)(`span`,{className:`text-[10px] text-primary`,children:`running…`}),_!=null&&(0,J.jsxs)(`span`,{className:`text-[10px] font-mono ${_===0?`text-text-3`:`text-error`}`,children:[`exit `,_]}),g||T?(0,J.jsx)(E,{className:`size-3.5 text-error`}):D?(0,J.jsx)(c,{className:`size-3.5 text-success`}):(0,J.jsx)(O,{className:`size-3.5 text-primary animate-spin`}),o?(0,J.jsx)(l,{className:`size-3 text-text-3`}):(0,J.jsx)(s,{className:`size-3 text-text-3`})]})]}),o&&(0,J.jsxs)(`div`,{className:`px-2 pb-2 space-y-1.5 select-text`,children:[(e.type===`tool_use`||e.type===`approval_request`)&&(0,J.jsx)(Hn,{name:p,input:m,projectName:r,toolUseId:A}),M&&(0,J.jsx)(Jn,{content:M.content,lineCount:M.lineCount}),x&&(0,J.jsx)(qn,{events:b,projectName:r,variant:a}),k&&(0,J.jsx)(Ht,{filePath:k,projectName:r??``}),h&&!(te&&!g)&&!(ne&&!g)&&!(re&&!g)&&(0,J.jsx)(Gn,{toolName:p,output:t.output})]})]})}function Vn({name:e,input:t}){let n=e=>String(e??``),r=On(e,t);if(r)return(0,J.jsx)(jn,{call:r});let a=pn(e,t);if(a)return(0,J.jsx)(Sn,{call:a});switch(e){case`Read`:case`Write`:case`Edit`:case`MultiEdit`:case`NotebookEdit`:return(0,J.jsxs)(J.Fragment,{children:[e,` `,(0,J.jsx)(`span`,{className:`text-text-subtle`,children:P(n(t.file_path))})]});case`Bash`:case`PowerShell`:{let r=t.description?n(t.description):n(t.command);return(0,J.jsxs)(J.Fragment,{children:[e,` `,(0,J.jsx)(`span`,{className:`text-text-subtle${t.description?``:` font-mono`}`,children:$(r,60)})]})}case`Glob`:return(0,J.jsxs)(J.Fragment,{children:[e,` `,(0,J.jsx)(`span`,{className:`font-mono text-text-subtle`,children:n(t.pattern)})]});case`Grep`:return(0,J.jsxs)(J.Fragment,{children:[e,` `,(0,J.jsx)(`span`,{className:`font-mono text-text-subtle`,children:$(n(t.pattern),40)})]});case`WebSearch`:return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(k,{className:`size-3 inline`}),` `,e,` `,(0,J.jsx)(`span`,{className:`text-text-subtle`,children:$(n(t.query),50)})]});case`WebFetch`:return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(i,{className:`size-3 inline`}),` `,e,` `,(0,J.jsx)(`span`,{className:`text-text-subtle`,children:$(n(t.url),50)})]});case`ToolSearch`:return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(k,{className:`size-3 inline`}),` `,e,` `,(0,J.jsx)(`span`,{className:`text-text-subtle`,children:$(n(t.query),50)})]});case`ImageGen`:{let e=(n(t.prompt).split(`
|
|
10
|
+
`).find(e=>e.trim())??``)||P(n(t.file_path));return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(v,{className:`size-3 inline`}),` Image`,(0,J.jsxs)(`span`,{className:`text-text-subtle`,children:[` `,$(e,50)]})]})}case`Agent`:case`Task`:{let r=Q(e,t),i=$(n(t.description||t.prompt),r?44:60);return(0,J.jsxs)(J.Fragment,{children:[!r&&(0,J.jsx)(D,{className:`size-3 inline`}),` `,e,` `,r&&(0,J.jsx)(`span`,{className:`text-text-primary font-medium`,children:r}),(0,J.jsx)(`span`,{className:`text-text-subtle`,children:r?` · ${i}`:i})]})}case`SendMessage`:return(0,J.jsx)(wt,{name:e,input:t});case`TodoWrite`:{let n=Array.isArray(t.todos)?t.todos:[],r=n.filter(e=>e.status===`completed`).length;return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(g,{className:`size-3 inline`}),` `,e,` `,(0,J.jsxs)(`span`,{className:`text-text-subtle`,children:[r,`/`,n.length,` done`]})]})}case`AskUserQuestion`:{let n=Array.isArray(t.questions)?t.questions:[],r=!!t.answers;return(0,J.jsxs)(J.Fragment,{children:[e,` `,(0,J.jsxs)(`span`,{className:`text-text-subtle`,children:[n.length,` question`,n.length===1?``:`s`,r?` ✓`:``]})]})}case`ScheduleWakeup`:return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(T,{className:`size-3 inline`}),` `,e,` `,(0,J.jsxs)(`span`,{className:`text-text-subtle`,children:[`in `,Qn(Number(t.delaySeconds)),t.reason?` — ${$(n(t.reason),50)}`:``]})]});case`TaskCreate`:return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(g,{className:`size-3 inline`}),` `,e,` `,(0,J.jsx)(`span`,{className:`text-text-subtle`,children:$(n(t.subject),60)})]});case`TaskUpdate`:return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(g,{className:`size-3 inline`}),` `,e,` `,(0,J.jsxs)(`span`,{className:`text-text-subtle`,children:[`#`,n(t.taskId),` → `,n(t.status)]})]});case`TaskStop`:return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(g,{className:`size-3 inline`}),` `,e,` `,(0,J.jsxs)(`span`,{className:`text-text-subtle`,children:[`#`,n(t.taskId),` stopped`]})]});default:return(0,J.jsx)(J.Fragment,{children:e})}}function Hn({name:e,input:t,projectName:n,toolUseId:r}){let a=e=>String(e??``),{openTab:o}=le(ge(e=>({openTab:e.openTab}))),s=e=>{n&&o({type:`editor`,title:P(e),metadata:{filePath:e,projectName:n},projectId:n,closable:!0})},c=(e,t,r)=>{o({type:`git-diff`,title:`Diff ${P(e)}`,metadata:{filePath:e,projectName:n,original:t,modified:r},projectId:n??null,closable:!0})},l=On(e,t);if(l)return(0,J.jsx)(Mn,{call:l});let u=pn(e,t);if(u)return(0,J.jsx)(Cn,{call:u});switch(e){case`Bash`:case`PowerShell`:return(0,J.jsxs)(`div`,{className:`space-y-1`,children:[!!t.description&&(0,J.jsx)(`p`,{className:`text-text-subtle italic`,children:a(t.description)}),(0,J.jsx)(`pre`,{className:`font-mono text-text-secondary overflow-x-auto whitespace-pre-wrap break-all`,children:a(t.command)})]});case`Read`:case`Write`:case`Edit`:case`MultiEdit`:case`NotebookEdit`:{let n=a(t.notebook_path||t.file_path),i=e===`Edit`&&(!!t.old_string||!!t.new_string),o=e=>r?`${r}-${e}`:void 0;return(0,J.jsxs)(`div`,{className:`space-y-1`,children:[(0,J.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,J.jsxs)(`button`,{type:`button`,className:`font-mono text-text-secondary break-all hover:text-primary hover:underline text-left flex items-center gap-1 min-w-0`,onClick:()=>s(n),title:`Open file in editor`,children:[(0,J.jsx)(ee,{className:`size-3 shrink-0`}),n]}),i&&(0,J.jsxs)(`button`,{type:`button`,className:`text-text-subtle hover:text-primary hover:underline flex items-center gap-1 shrink-0 whitespace-nowrap`,onClick:()=>c(n,a(t.old_string),a(t.new_string)),title:`View diff in new tab`,children:[(0,J.jsx)(_,{className:`size-3 shrink-0`}),`View Diff`]})]}),i&&(0,J.jsx)(`div`,{"data-edit-ref":o(0),children:(0,J.jsx)(Zn,{oldStr:a(t.old_string),newStr:a(t.new_string),filePath:n})}),e===`MultiEdit`&&Array.isArray(t.edits)&&(0,J.jsx)(`div`,{className:`space-y-1.5`,children:t.edits.map((e,t)=>(0,J.jsxs)(`div`,{"data-edit-ref":o(t),className:`space-y-0.5`,children:[(0,J.jsxs)(`p`,{className:`text-text-subtle text-[10px]`,children:[`Edit `,t+1]}),(0,J.jsx)(Zn,{oldStr:a(e.old_string),newStr:a(e.new_string),filePath:n})]},t))}),e===`Write`&&!!t.content&&(0,J.jsx)(`pre`,{"data-edit-ref":o(0),className:`font-mono text-text-subtle overflow-x-auto max-h-32 whitespace-pre-wrap`,children:$(a(t.content),300)})]})}case`Glob`:return(0,J.jsxs)(`p`,{className:`font-mono text-text-secondary`,children:[a(t.pattern),t.path?` in ${a(t.path)}`:``]});case`Grep`:return(0,J.jsxs)(`div`,{className:`space-y-0.5`,children:[(0,J.jsxs)(`p`,{className:`font-mono text-text-secondary`,children:[`/`,a(t.pattern),`/`]}),!!t.path&&(0,J.jsxs)(`p`,{className:`text-text-subtle`,children:[`in `,a(t.path)]})]});case`TodoWrite`:return(0,J.jsx)(Wn,{todos:t.todos??[]});case`Agent`:case`Task`:{let n=Q(e,t);return(0,J.jsxs)(`div`,{className:`space-y-1`,children:[!!n&&(0,J.jsxs)(`p`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,J.jsx)(`span`,{className:`text-text-subtle`,children:`Name`}),(0,J.jsx)(`span`,{className:`font-medium text-text-primary`,children:n}),(0,J.jsx)(`span`,{className:`inline-block rounded px-1.5 py-0.5 text-[10px] bg-accent-2/15 text-accent-2`,children:`teammate`}),t.isolation===`worktree`&&(0,J.jsx)(`span`,{className:`inline-block rounded px-1.5 py-0.5 text-[10px] bg-panel-2 text-text-3`,children:`worktree`})]}),!!t.description&&(0,J.jsx)(`p`,{className:`text-text-secondary font-medium`,children:a(t.description)}),!!t.subagent_type&&(0,J.jsxs)(`p`,{className:`text-text-subtle`,children:[`Type: `,a(t.subagent_type)]}),!!t.prompt&&(0,J.jsx)(Y,{content:a(t.prompt),maxHeight:`max-h-48`})]})}case`SendMessage`:return(0,J.jsx)(Tt,{input:t});case`ToolSearch`:return(0,J.jsxs)(`div`,{className:`space-y-0.5`,children:[(0,J.jsx)(`p`,{className:`font-mono text-text-secondary`,children:a(t.query)}),!!t.max_results&&(0,J.jsxs)(`p`,{className:`text-text-subtle`,children:[`Max results: `,a(t.max_results)]})]});case`WebFetch`:return(0,J.jsxs)(`div`,{className:`space-y-0.5`,children:[(0,J.jsxs)(`a`,{href:a(t.url),target:`_blank`,rel:`noopener noreferrer`,className:`font-mono text-primary hover:underline break-all flex items-center gap-1`,children:[(0,J.jsx)(i,{className:`size-3 shrink-0`}),a(t.url)]}),!!t.prompt&&(0,J.jsx)(`p`,{className:`text-text-subtle`,children:$(a(t.prompt),100)})]});case`AskUserQuestion`:{let e=t.questions??[],n=t.answers??{};return(0,J.jsx)(`div`,{className:`space-y-2`,children:e.map((e,t)=>(0,J.jsxs)(`div`,{className:`space-y-0.5`,children:[(0,J.jsxs)(`p`,{className:`text-text-primary font-medium`,children:[e.header?`${e.header}: `:``,e.question]}),(0,J.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:e.options.map((t,r)=>(0,J.jsx)(`span`,{className:`inline-block rounded px-1.5 py-0.5 text-xs border ${(n[e.id??e.question]??n[e.question]??``).split(`, `).includes(t.label)?`border-primary bg-primary/20 text-text-primary`:`border-border text-text-subtle`}`,children:t.label},r))}),(n[e.id??e.question]??n[e.question])&&(0,J.jsxs)(`p`,{className:`text-foreground text-xs`,children:[`Answer: `,n[e.id??e.question]??n[e.question]]})]},t))})}case`ScheduleWakeup`:{let e=Number(t.delaySeconds)||0;return(0,J.jsxs)(`div`,{className:`space-y-1`,children:[(0,J.jsxs)(`p`,{className:`text-text-secondary`,children:[(0,J.jsx)(T,{className:`size-3 inline mr-1`}),`Wake in `,(0,J.jsx)(`span`,{className:`font-medium text-text-primary`,children:Qn(e)}),(0,J.jsxs)(`span`,{className:`text-text-subtle`,children:[` (`,e,`s)`]})]}),!!t.reason&&(0,J.jsx)(`p`,{className:`text-text-secondary italic`,children:a(t.reason)}),!!t.prompt&&(0,J.jsxs)(`div`,{children:[(0,J.jsx)(`p`,{className:`text-text-subtle text-[10px] mb-0.5`,children:`Prompt on wake`}),(0,J.jsx)(Y,{content:a(t.prompt),maxHeight:`max-h-48`})]})]})}case`TaskCreate`:return(0,J.jsxs)(`div`,{className:`space-y-1`,children:[(0,J.jsx)(`p`,{className:`text-text-primary font-medium`,children:a(t.subject)}),!!t.description&&(0,J.jsx)(`p`,{className:`text-text-subtle`,children:a(t.description)}),!!t.activeForm&&(0,J.jsx)(`p`,{className:`text-text-subtle italic`,children:a(t.activeForm)})]});case`TaskUpdate`:return(0,J.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,J.jsxs)(`span`,{className:`font-mono text-text-secondary`,children:[`#`,a(t.taskId)]}),(0,J.jsx)(Un,{status:a(t.status)})]});case`TaskStop`:return(0,J.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,J.jsxs)(`span`,{className:`font-mono text-text-secondary`,children:[`#`,a(t.taskId)]}),(0,J.jsx)(Un,{status:`stopped`})]});case`ImageGen`:return(0,J.jsxs)(`div`,{className:`space-y-1`,children:[!!t.prompt&&(0,J.jsx)(`p`,{className:`text-text-secondary whitespace-pre-wrap`,children:a(t.prompt)}),t.transparentBackground===!0&&(0,J.jsx)(`p`,{className:`text-text-subtle`,children:`Transparent background`})]});default:return(0,J.jsx)(`pre`,{className:`overflow-x-auto text-text-secondary font-mono whitespace-pre-wrap break-all`,children:JSON.stringify(t,null,2)})}}function Un({status:e}){return(0,J.jsx)(`span`,{className:`inline-block rounded px-1.5 py-0.5 text-[10px] border ${e===`completed`?`text-success border-success/30 bg-success/10`:e===`in_progress`?`text-warning border-warning/30 bg-warning/10`:`text-text-subtle border-border bg-surface`}`,children:e})}function Wn({todos:e}){return(0,J.jsx)(`div`,{className:`space-y-0.5`,children:e.map((e,t)=>(0,J.jsxs)(`div`,{className:`flex items-start gap-1.5`,children:[(0,J.jsx)(`span`,{className:`shrink-0 mt-0.5 ${e.status===`completed`?`text-success`:e.status===`in_progress`?`text-warning`:`text-text-subtle`}`,children:e.status===`completed`?`✓`:e.status===`in_progress`?`▶`:`○`}),(0,J.jsx)(`span`,{className:e.status===`completed`?`line-through text-text-subtle`:`text-text-secondary`,children:e.content})]},t))})}function Gn({toolName:e,output:t}){let[n,r]=(0,q.useState)(!1),i=(0,q.useMemo)(()=>{if(e!==`Agent`&&e!==`Task`)return null;try{let e=JSON.parse(t);if(Array.isArray(e)){let t=e.filter(e=>e.type===`text`&&e.text).map(e=>e.text).join(`
|
|
11
11
|
|
|
12
12
|
`);if(t)return t}if(typeof e==`string`)return e}catch{if(t&&!t.startsWith(`[{`))return t}return null},[e,t]);return e===`SendMessage`&&St(t)?(0,J.jsx)(Et,{output:t}):i?(0,J.jsxs)(`div`,{className:`border-t border-border pt-1.5 space-y-1`,children:[(0,J.jsx)(Y,{content:i,maxHeight:`max-h-60`}),(0,J.jsxs)(`button`,{type:`button`,onClick:()=>r(!n),className:`flex items-center gap-1 text-[10px] text-text-subtle hover:text-text-secondary transition-colors`,children:[(0,J.jsx)(h,{className:`size-3`}),n?`Hide`:`Show`,` raw`]}),n&&(0,J.jsx)(`pre`,{className:`overflow-x-auto text-text-subtle font-mono max-h-40 whitespace-pre-wrap break-all text-[10px]`,children:t})]}):(0,J.jsx)(Kn,{output:t})}function Kn({output:e}){let t=e.split(`
|
|
13
13
|
`).length,n=t>3||e.length>200,[r,i]=(0,q.useState)(n);return(0,J.jsxs)(`div`,{className:`border-t border-border pt-1.5`,children:[n&&(0,J.jsxs)(`button`,{type:`button`,onClick:()=>i(!r),className:`flex items-center gap-1 text-[10px] text-text-subtle hover:text-text-secondary transition-colors mb-1`,children:[r?(0,J.jsx)(s,{className:`size-3`}):(0,J.jsx)(l,{className:`size-3`}),`Output (`,t,` lines)`]}),(0,J.jsx)(`pre`,{className:`overflow-x-auto text-text-subtle font-mono whitespace-pre-wrap break-all ${r?`max-h-16 overflow-hidden`:`max-h-60`}`,children:e})]})}function qn({events:e,projectName:t,className:n,variant:r=`chat`}){let i=[],a=``;for(let t of e)if(t.type===`text`)a+=t.content;else if(t.type===`tool_use`)a&&=(i.push({kind:`text`,content:a}),``),i.push({kind:`tool`,tool:t});else if(t.type===`tool_result`){let e=t.toolUseId,n=e?i.find(t=>t.kind===`tool`&&t.tool.type===`tool_use`&&t.tool.toolUseId===e&&!t.result):i.findLast(e=>e.kind===`tool`&&!e.result);n&&(n.result=t)}a&&i.push({kind:`text`,content:a});let o=(0,q.useRef)(null),s=(0,q.useRef)(!1);return(0,q.useEffect)(()=>{o.current&&!s.current&&(o.current.scrollTop=o.current.scrollHeight)},[i.length]),(0,J.jsx)(`div`,{ref:o,onScroll:e=>{let t=e.currentTarget;s.current=t.scrollTop+t.clientHeight<t.scrollHeight-20},className:n??`border-l-2 border-accent/20 pl-2 space-y-1 mt-1 max-h-64 md:max-h-96 overflow-y-auto`,children:i.map((e,n)=>e.kind===`text`?(0,J.jsx)(`div`,{className:`text-text-secondary text-[11px]`,children:(0,J.jsx)(Y,{content:e.content,maxHeight:`max-h-24`})},`st-${n}`):(0,J.jsx)(Bn,{tool:e.tool,result:e.result,completed:!!e.result,projectName:t,variant:r},`sc-${n}`))})}function Jn({content:e,lineCount:t}){let n=(0,q.useRef)(null),r=(0,q.useRef)(!1);return(0,q.useEffect)(()=>{n.current&&!r.current&&(n.current.scrollTop=n.current.scrollHeight)},[e]),(0,J.jsxs)(`div`,{className:`border-t border-border pt-1.5`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-1 text-[10px] text-warning mb-1`,children:[(0,J.jsx)(O,{className:`size-3 animate-spin`}),(0,J.jsxs)(`span`,{children:[`Output (`,t,` line`,t===1?``:`s`,`, streaming...)`]})]}),(0,J.jsx)(`pre`,{ref:n,onScroll:e=>{let t=e.currentTarget;r.current=t.scrollTop+t.clientHeight<t.scrollHeight-20},className:`overflow-x-auto overflow-y-auto max-h-60 text-text-subtle font-mono whitespace-pre-wrap break-all text-[11px]`,children:e.split(`
|
|
Binary file
|
|
Binary file
|
package/dist/web/assets/{tools-settings-section-DQXIdF8O.js → tools-settings-section-AChVQJyU.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{D as t,E as n}from"./vendor-markdown-C-P1aR4p.js";import"./vendor-ui-BTSIXzhZ.js";import{k as r}from"./api-client-BnYFnEfK.js";import"./chat-preparation-cache-Bzb-T1pm.js";import"./button-BHGVTbam.js";import"./design-canvas-check-DQB9dn_O.js";import{a as i,f as a,g as o,h as s,m as c,p as l}from"./db-ai-tools-BhRcsCRL.js";import{a as u,b as d}from"./api-settings-BPIlTiBi.js";import{n as f,r as p}from"./settings-rows-
|
|
1
|
+
import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{D as t,E as n}from"./vendor-markdown-C-P1aR4p.js";import"./vendor-ui-BTSIXzhZ.js";import{k as r}from"./api-client-BnYFnEfK.js";import"./chat-preparation-cache-Bzb-T1pm.js";import"./button-BHGVTbam.js";import"./design-canvas-check-DQB9dn_O.js";import{a as i,f as a,g as o,h as s,m as c,p as l}from"./db-ai-tools-BhRcsCRL.js";import{a as u,b as d}from"./api-settings-BPIlTiBi.js";import{n as f,r as p}from"./settings-rows-VtjChFlm.js";var m=e(t(),1),h=[s,o];[...[a,l,c,...h],...i];var g=[a,l];function _(e,t){let n=e.ppm_tools?.[t];return typeof n==`boolean`?n:g.includes(t)?e.tab_tools===!0:!0}var v=n(),y=e=>e instanceof Error?e.message:String(e),b={open_file:{label:`Open files`,note:`Opens a file in a PPM tab, at a line when it points you at one.`},open_preview:{label:`Show pages`,note:`Opens a page, chart or report it made in a PPM tab, and reads back its errors and a screenshot. While on, Claude's claude.ai Artifact tool is off.`},open_url:{label:`Show running apps`,note:`Opens a web server running on this machine, such as a dev server, in a PPM tab. On another device it goes through a private Tailscale forward; it never makes a public link.`},read_terminal:{label:`Read terminals`,note:`Reads what the terminals of the chat's project printed, so you need not paste an error into the chat.`},run_in_terminal:{label:`Type commands`,note:`Opens a terminal with a command typed in, for one that needs your password or your eyes. Nothing runs until you press Enter.`},db_query:{label:`Read databases`,note:`Runs read-only SQL. It cannot change anything.`},open_query:{label:`Open Query tabs`,note:`Opens a Query tab holding a script it wrote. You press Run.`},db_execute:{label:`Change databases`,note:`Runs a change only after you approve it with PPM's password, once, in one transaction.`}},x=[{title:`Tabs`,intro:`On the device you are chatting from.`,tools:[`open_file`,`open_preview`,`open_url`]},{title:`Terminal`,intro:`PPM's own terminals, on the machine PPM runs on.`,tools:h},{title:`Database`,intro:`On the connections with “Available to the AI chat” on. The AI never sees their passwords.`,tools:i}];function S(){let[e,t]=(0,m.useState)(null),[n,i]=(0,m.useState)(null),a=(0,m.useCallback)(async()=>{try{t(await u()),i(null)}catch(e){i(y(e))}},[]);(0,m.useEffect)(()=>{a()},[a]);let o=(0,m.useCallback)(async(e,n)=>{t(t=>t&&{...t,ppm_tools:{...t.ppm_tools,[e]:n}});try{t(await d({ppm_tools:{[e]:n}}))}catch(e){r.error(`Could not save`,{description:y(e)}),await a()}},[a]);return e?(0,v.jsxs)(`div`,{className:`space-y-6`,children:[(0,v.jsx)(`p`,{className:`text-xs leading-relaxed text-muted-foreground`,children:`PPM's own tools for the AI chat, with Claude and Codex alike. New chats get the tools that are on; turning one off also stops it in chats already open.`}),x.map(t=>(0,v.jsxs)(`section`,{className:`space-y-3`,children:[(0,v.jsx)(f,{title:t.title,children:t.intro}),(0,v.jsx)(`div`,{className:`divide-y divide-border rounded-lg border border-border`,children:t.tools.map(t=>(0,v.jsx)(p,{label:(0,v.jsxs)(v.Fragment,{children:[b[t].label,(0,v.jsx)(`code`,{className:`ml-2 font-mono text-[11px] text-muted-foreground`,children:t})]}),note:b[t].note,checked:_(e,t),onChange:e=>void o(t,e)},t))})]},t.title))]}):(0,v.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n??`Loading…`})}export{S as ToolsSettingsSection};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{D as t}from"./vendor-markdown-C-P1aR4p.js";import{r as n}from"./api-client-BnYFnEfK.js";import{et as r}from"./window-store-
|
|
1
|
+
import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{D as t}from"./vendor-markdown-C-P1aR4p.js";import{r as n}from"./api-client-BnYFnEfK.js";import{et as r}from"./window-store-D6EgLSfT.js";import{t as i}from"./panel-store-H7e9XHZF.js";import{i as a,t as o}from"./use-db-driver-installed-BL1XW_bI.js";import{L as s}from"./db-explorer-store-DJNNIfN5.js";var c=e(t(),1);function l(e,t,i){let l=e&&t?r(e,t):null,[d,f]=(0,c.useState)({data:null,error:null,loading:l!==null,driver:null}),p=(0,c.useRef)(0),m=(0,c.useRef)([]),h=(0,c.useCallback)(async()=>{if(!l){for(let e of m.current.splice(0))e();return}let e=++p.current;f(e=>({...e,loading:!0}));let t;try{t={data:await n.get(l),error:null,loading:!1,driver:null}}catch(e){t={data:null,error:e.message,loading:!1,driver:a(e)}}if(e===p.current){f(t);for(let e of m.current.splice(0))e()}},[l]),g=(0,c.useCallback)(()=>new Promise(e=>{m.current.push(e),h()}),[h]);(0,c.useEffect)(()=>{h()},[h]);let{active:_,shown:v}=u(i);(0,c.useEffect)(()=>{v>0&&h()},[v]);let y=e?.kind===`connection`?e.connectionId:null,b=s(e=>y===null?0:e.structureChanges[y]??0),x=(0,c.useRef)(b);return(0,c.useEffect)(()=>{b!==x.current&&(x.current=b,_&&h())},[b]),o(e=>{d.driver?.id===e&&h()}),{...d,reload:g}}function u(e){let t=i(t=>!!e&&Object.values(t.panels).some(t=>t.activeTabId===e)),[n,r]=(0,c.useState)(0),a=(0,c.useRef)(t);return(0,c.useEffect)(()=>{t&&!a.current&&r(e=>e+1),a.current=t},[t]),{active:t,shown:n}}export{l as t};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{D as t}from"./vendor-markdown-C-P1aR4p.js";import{$ as n,K as r,W as i}from"./window-store-
|
|
1
|
+
import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{D as t}from"./vendor-markdown-C-P1aR4p.js";import{$ as n,K as r,W as i}from"./window-store-D6EgLSfT.js";import{t as a}from"./tab-store-NUmgzMPf.js";import{r as o}from"./db-types-cHkNH-mN.js";import{L as s,h as c}from"./db-explorer-store-DJNNIfN5.js";import{c as l}from"./open-db-tabs-DBgV2hbA.js";var u=e(t(),1);function d(e,t){let d=JSON.stringify(n(e)),f=(0,u.useMemo)(()=>JSON.parse(d),[d]),p=f?.kind===`connection`?f.connectionId:null,m=s(e=>p===null?void 0:e.connections.find(e=>e.id===p)),h=s(e=>e.loaded);(0,u.useEffect)(()=>{p!==null&&!h&&c()},[p,h]);let g=f?.kind===`file`?`sqlite`:m?.type??e?.dbType,_=f?.kind===`file`?r(f.path):m?.name??(typeof e?.connectionName==`string`?e.connectionName:`Database`),v=m?.color??(typeof e?.connectionColor==`string`?e.connectionColor:null),y=a(e=>e.updateTab);(0,u.useEffect)(()=>{if(!t||!m||typeof e?.connectionName==`string`)return;let n=e?.tableName??e?.objectName;y(t,{metadata:{...e,connectionName:m.name,dbType:m.type,...m.color?{connectionColor:m.color}:{}},...n&&e?.queryId===void 0?{title:i(f,m.name,n)}:{}})},[t,m,e,f,y]);let b=(0,u.useMemo)(()=>f?l(f,{connectionName:_,dbType:g,connectionColor:v}):null,[f,_,g,v]);return{target:f,conn:m,dbType:g,dialect:g?o(g):void 0,name:_,place:b,readonly:m?.readonly===1,missing:p!==null&&h&&!m}}export{d as t};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{D as t}from"./vendor-markdown-C-P1aR4p.js";import{k as n,r}from"./api-client-BnYFnEfK.js";import{i}from"./project-store-Bs-kiU8m.js";import{r as a}from"./clipboard-D3XnL7CB.js";import{Cr as o,
|
|
1
|
+
import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{D as t}from"./vendor-markdown-C-P1aR4p.js";import{k as n,r}from"./api-client-BnYFnEfK.js";import{i}from"./project-store-Bs-kiU8m.js";import{r as a}from"./clipboard-D3XnL7CB.js";import{Cr as o,Er as s,Tr as c,ui as l,wr as u}from"./index-Vd9Xr54k.js";var d=[`ppm.blame.copySha`,`ppm.blame.fileHistory`,`ppm.blame.blameFile`,`ppm.blame.showInGraph`],f=7;function p(e){return e.replace(/[\\`*_{}[\]()#+\-!<>]/g,e=>`\\${e}`)}function m(e){let t=e.trim().split(/\s+/).filter(Boolean);return t.length===0?`?`:(t[0][0]+(t.length>1?t[t.length-1][0]:``)).toUpperCase()}var h=[`4E79A7`,`F28E2B`,`E15759`,`76B7B2`,`59A14F`,`AF7AA1`,`9C755F`,`B07AA1`];function g(e){let t=0;for(let n=0;n<e.length;n++)t=t*31+e.charCodeAt(n)|0;return h[Math.abs(t)%h.length]}function _(e){let t=`<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><circle cx="8" cy="8" r="8" fill="#${g(e)}"/><text x="8" y="11.5" font-family="sans-serif" font-size="7" font-weight="700" fill="#ffffff" text-anchor="middle">${v(m(e))}</text></svg>`;return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(t)}`}function v(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`)}function y(e,t){return`command:${e}?${encodeURIComponent(JSON.stringify(t))}`}function b(e){let{commit:t,detail:n,filePath:r,projectPath:i,now:a=Date.now()}=e;if(s(t.hash))return null;let l=t.author||`Unknown`,u=t.hash.slice(0,f),m=[],h=t.authorTime>0?`${c(t.authorTime*1e3,a)} (${o(t.authorTime*1e3)})`:``;m.push(`}) **${p(l)}**${h?` $(history) ${p(h)}`:``}`);let g=n?.message||t.summary;g&&(m.push(``),m.push(p(g).split(`
|
|
2
2
|
`).join(`
|
|
3
|
-
`)));let v=[``,`---`,``],b=[`[$(git-commit) ${
|
|
3
|
+
`)));let v=[``,`---`,``],b=[`[$(git-commit) ${u}](${y(`ppm.blame.copySha`,[t.hash])} "Copy commit hash")`];i&&b.push(`[$(history) File History](${y(`ppm.blame.fileHistory`,[i,r])} "Open the file's history")`,`[$(users) Blame](${y(`ppm.blame.blameFile`,[i,r])} "Open the blame view")`,`[$(git-branch) Graph](${y(`ppm.blame.showInGraph`,[i])} "Open the commit graph")`),m.push(...v),m.push(b.join(` `));let x=[...(n?.removed??[]).map(e=>`-${e}`),...(n?.added??[]).map(e=>`+${e}`)];if(x.length>0){m.push(...v),m.push("```diff"),m.push(...x),m.push("```"),m.push(``);let e=(n?.removed.length??0)===0?`added in`:`in`;m.push(`Changes ${e} \`${u}\``)}return{value:m.join(`
|
|
4
4
|
`),isTrusted:{enabledCommands:[...d]},supportThemeIcons:!0}}var x=!1;function S(e,t){window.dispatchEvent(new CustomEvent(`ext:command:execute`,{detail:{command:e,args:t}}))}function C(e){return typeof e==`string`&&/^[0-9a-f]{7,40}$/.test(e)?e:null}function w(e){return typeof e==`string`&&e.length>0?e:null}function T(e,t,n){let r=w(t),i=w(n);!r||!i||S(e,[r,i])}function E(e){x||(x=!0,e.editor.registerCommand(`ppm.blame.copySha`,(e,t)=>{let r=C(t);r&&a(r).then(e=>{n[e?`success`:`error`](e?`Copied ${r.slice(0,7)}`:`Could not copy`)})}),e.editor.registerCommand(`ppm.blame.fileHistory`,(e,t,n)=>{T(`git-graph.fileHistory`,t,n)}),e.editor.registerCommand(`ppm.blame.blameFile`,(e,t,n)=>{T(`git-graph.blame`,t,n)}),e.editor.registerCommand(`ppm.blame.showInGraph`,(e,t)=>{let n=w(t);n&&S(`git-graph.view`,[n])}))}var D=`diff`,O=!1;function k(e){if(!O){if(e.languages.getLanguages().some(e=>e.id===`diff`)){O=!0;return}e.languages.register({id:D,aliases:[`Diff`,`patch`],extensions:[`.diff`,`.patch`]}),e.languages.setMonarchTokensProvider(D,{tokenizer:{root:[[/^diff .*$/,`meta.diff.header`],[/^(index|similarity index|rename from|rename to|new file mode|deleted file mode|old mode|new mode) .*$/,`meta.diff.header`],[/^(\+\+\+|---) .*$/,`meta.diff.header`],[/^@@.*$/,`meta.diff.range`],[/^\+.*$/,`inserted`],[/^-.*$/,`deleted`],[/^\\ .*$/,`meta.diff.header`],[/^.*$/,``]]}}),O=!0}}var A=e(t(),1),j=`inline-blame-styles`,M=`
|
|
5
5
|
.inline-blame-annotation {
|
|
6
6
|
color: var(--color-muted-foreground);
|
|
@@ -13,4 +13,4 @@ import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{D as t}from"./vendor-m
|
|
|
13
13
|
.monaco-hover img {
|
|
14
14
|
vertical-align: text-bottom;
|
|
15
15
|
}
|
|
16
|
-
`;function N(e){let t=e.getDomNode()?.ownerDocument??document;if(t.getElementById(j))return;let n=t.createElement(`style`);n.id=j,n.textContent=M,t.head?.appendChild(n)}function P({editor:e,monaco:t,projectName:n,filePath:a,rev:
|
|
16
|
+
`;function N(e){let t=e.getDomNode()?.ownerDocument??document;if(t.getElementById(j))return;let n=t.createElement(`style`);n.id=j,n.textContent=M,t.head?.appendChild(n)}function P({editor:e,monaco:t,projectName:n,filePath:a,rev:o,enabled:c,readOnly:d=!1}){let[f,p]=(0,A.useState)(null),[m,h]=(0,A.useState)(!1),[g,_]=(0,A.useState)(0),[v,y]=(0,A.useState)(0),[x,S]=(0,A.useState)(null),C=(0,A.useRef)(new Map),w=(0,A.useRef)(null),T=(0,A.useRef)(0),D=i(e=>e.projects.find(e=>e.name===n)?.path),{fileScope:O,fileGitUrl:j}=l(c?n:void 0),M=a?O(a):null,P=M?.repo??null,F=P?.path??D,I=M?.path??null,L=(0,A.useCallback)(()=>y(e=>e+1),[]);(0,A.useEffect)(()=>{!t||!c||(k(t),E(t))},[t,c]),(0,A.useEffect)(()=>{if(!c||!n||!a||I==null){p(null);return}let e=!1,t=new URLSearchParams({path:I});return o&&t.set(`rev`,o),r.get(j(`/blame?${t}`,P)).then(t=>{e||(p(t),h(!1))}).catch(()=>{e||p(null)}),()=>{e=!0}},[c,n,a,I,o,v,j,P]),(0,A.useEffect)(()=>{if(!e||!c)return;_(e.getPosition()?.lineNumber??0);let t=e.onDidChangeCursorPosition(e=>_(e.position.lineNumber));if(d)return()=>t.dispose();let n=e.onDidChangeModelContent(()=>h(!0));return()=>{t.dispose(),n.dispose()}},[e,c,d]),(0,A.useEffect)(()=>{if(!e||!c||!window.matchMedia?.(`(hover: none)`).matches)return;let t=e.onMouseDown(t=>{let n=t.target.position,r=e.getModel();!n||!r||n.lineNumber===T.current&&(n.column<r.getLineMaxColumn(n.lineNumber)||e.getAction(`editor.action.showHover`)?.run())});return()=>t.dispose()},[e,c]);let R=(()=>{if(!f||m||g<=0)return null;let e=f.lines[g-1],t=e?.finalLine===g?e:f.lines.find(e=>e.finalLine===g);if(!t)return null;let n=f.commits[t.hash];return n?{commit:n,origLine:t.origLine}:null})(),z=R?.commit??null,B=z&&!s(z.hash)?z.hash:null,V=z?.filename||I||void 0,H=R?.origLine??0,U=`${B} ${H} ${V}`;return(0,A.useEffect)(()=>{if(!c||!n||!B||!V||H<1){S(null);return}let e=U,t=C.current;if(t.has(e)){S({key:e,value:t.get(e)??null});return}let i=!1,a=new URLSearchParams({hash:B,path:V,line:String(H)});return r.get(j(`/commit-line?${a}`,P)).then(n=>{i||(t.size>=200&&t.delete(t.keys().next().value),t.set(e,n??null),S({key:e,value:n??null}))}).catch(()=>{i||S(null)}),()=>{i=!0}},[c,n,B,V,H,U,j,P]),(0,A.useEffect)(()=>{if(!e||!t)return;if(!c||!z||g<=0){T.current=0,w.current?.clear();return}N(e);let n=e.getModel();if(!n||g>n.getLineCount()){T.current=0,w.current?.clear();return}T.current=g;let r=n.getLineMaxColumn(g),i=u(z),a={range:new t.Range(g,r,g,r),options:{after:{content:` ${i}`,inlineClassName:`inline-blame-annotation`},showIfCollapsed:!0,hoverMessage:b({commit:z,detail:x?.key===U?x.value:null,filePath:I??``,projectPath:F})}};w.current?w.current.set([a]):w.current=e.createDecorationsCollection([a])},[e,t,c,z,g,x,U,I,F]),(0,A.useEffect)(()=>()=>{w.current?.clear(),w.current=null},[]),{stale:m,refresh:L}}export{P as t};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{D as t}from"./vendor-markdown-C-P1aR4p.js";import"./vendor-ui-BTSIXzhZ.js";import{o as n,r}from"./api-client-BnYFnEfK.js";import"./ws-auth-k7DWnL9T.js";import{
|
|
1
|
+
import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{D as t}from"./vendor-markdown-C-P1aR4p.js";import"./vendor-ui-BTSIXzhZ.js";import{o as n,r}from"./api-client-BnYFnEfK.js";import"./ws-auth-k7DWnL9T.js";import{bt as i}from"./index-Vd9Xr54k.js";import{i as a,r as o,t as s}from"./lsp-client-CpjPUUYJ.js";var c=e(t(),1),l=new Map;function u(e,t){l.set(e.uri.toString(),t)}function ee(e){l.delete(e.uri.toString())}function d(e){return l.get(e.uri.toString())}function f(e){if(!e.startsWith(`file:`))return null;let t=e.slice(5),n=``;if(t.startsWith(`//`)){t=t.slice(2);let e=t.indexOf(`/`);n=e<0?t:t.slice(0,e),t=e<0?``:t.slice(e)}let r=t.split(`/`).map(p).join(`/`);return/^\/[A-Za-z]:/.test(r)?r.slice(1):n?`//${p(n)}${r}`:r}function p(e){try{return decodeURIComponent(e)}catch{return e}}var m=40,h=500,g=3,_=6,v=new Map,y=new Map;function te(e){return(y.get(e)??0)>=g}function b(e){x(e,(y.get(e)??0)+1)}function ne(e){x(e,g)}function x(e,t){for(y.delete(e),y.set(e,t);y.size>h;){let e=y.keys().next().value;if(e===void 0)return;y.delete(e)}}function re(e){y.delete(e)}async function S(e,t,n){let r=0,i=Array.from({length:Math.min(t,e.length)},async()=>{for(;;){let t=r++;if(t>=e.length)return;await n(e[t])}});await Promise.all(i)}function C(e,t){let n=e.replace(/\\/g,`/`).replace(/\/+$/,``),r=t.replace(/\\/g,`/`),i=n+`/`,a=/^[A-Za-z]:\//.test(i),o=r.slice(0,i.length);return(a?o.toLowerCase()!==i.toLowerCase():o!==i)?null:r.slice(i.length)}async function w(e,t,i,a){if(!i)return;let o=new Set,s=[...new Set(a)].filter(t=>{if(te(t))return!1;let n=v.get(t);return n&&(v.delete(t),!n.isDisposed())?(v.set(t,n),o.add(t),!1):t.startsWith(`file:`)&&!e.editor.getModel(e.Uri.parse(t))});s.length!==0&&(await S(s,_,async a=>{try{let s=f(a),c=s?C(i,s):null;if(!c){ne(a);return}let l=(await r.get(`${n(t)}/files/read?path=${encodeURIComponent(c)}`))?.content;if(typeof l!=`string`){b(a);return}re(a);let u=e.Uri.parse(a);if(e.editor.getModel(u)){o.add(a);return}v.set(a,e.editor.createModel(l,void 0,u)),o.add(a)}catch{b(a)}}),T(o))}function T(e){for(let t of[...v.keys()]){if(v.size<=m)return;if(e.has(t))continue;let n=v.get(t);v.delete(t);try{n?.dispose()}catch{}}}function E(){for(let e of v.values())try{e.dispose()}catch{}v.clear(),y.clear()}function D(e){if(!e)return;let t=new AbortController;return e.isCancellationRequested?t.abort():e.onCancellationRequested(()=>t.abort()),t.signal}function O(e){return{line:e.lineNumber-1,character:e.column-1}}function ie(e){return{lineNumber:e.line+1,column:e.character+1}}function k(e){return{start:{line:e.startLineNumber-1,character:e.startColumn-1},end:{line:e.endLineNumber-1,character:e.endColumn-1}}}function A(e){return{startLineNumber:e.start.line+1,startColumn:e.start.character+1,endLineNumber:e.end.line+1,endColumn:e.end.character+1}}var ae={1:`Text`,2:`Method`,3:`Function`,4:`Constructor`,5:`Field`,6:`Variable`,7:`Class`,8:`Interface`,9:`Module`,10:`Property`,11:`Unit`,12:`Value`,13:`Enum`,14:`Keyword`,15:`Snippet`,16:`Color`,17:`File`,18:`Reference`,19:`Folder`,20:`EnumMember`,21:`Constant`,22:`Struct`,23:`Event`,24:`Operator`,25:`TypeParameter`},oe={1:`File`,2:`Module`,3:`Namespace`,4:`Package`,5:`Class`,6:`Method`,7:`Property`,8:`Field`,9:`Constructor`,10:`Enum`,11:`Interface`,12:`Function`,13:`Variable`,14:`Constant`,15:`String`,16:`Number`,17:`Boolean`,18:`Array`,19:`Object`,20:`Key`,21:`Null`,22:`EnumMember`,23:`Struct`,24:`Event`,25:`Operator`,26:`TypeParameter`},se={1:`Error`,2:`Warning`,3:`Info`,4:`Hint`},ce={1:`Text`,2:`Read`,3:`Write`};function j(e,t){let n=ae[t??0];return e.languages.CompletionItemKind[n??`Text`]}function M(e,t){let n=oe[t??0];return e.languages.SymbolKind[n??`Variable`]}function N(e,t){let n=se[t??0];return e.MarkerSeverity[n??`Warning`]}function P(e,t){let n=ce[t??0];return e.languages.DocumentHighlightKind[n??`Text`]}function F(e){if(e!=null){if(Array.isArray(e)){let t=e.map(F).filter(e=>!!e?.value);return t.length===0?void 0:{value:t.map(e=>e.value).join(`
|
|
2
2
|
|
|
3
3
|
---
|
|
4
4
|
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{D as t}from"./vendor-markdown-C-P1aR4p.js";import{t as n}from"./settings-store-
|
|
1
|
+
import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{D as t}from"./vendor-markdown-C-P1aR4p.js";import{t as n}from"./settings-store-CMpVMq3Y.js";import{r,t as i}from"./apply-theme-Kiqxd1NZ.js";import{t as a}from"./resolve-theme-DGQXDIbF.js";import{Q as o}from"./index-Vd9Xr54k.js";var s=e(t(),1);function c(){let e=n(e=>e.themeStyle),t=n(e=>e.themeMode),c=n(e=>e.customThemeId),l=n(e=>e.customThemes),u=()=>o(r()??a(e,t,l,c)),[d,f]=(0,s.useState)(u);return(0,s.useEffect)(()=>{f(u());let e=()=>f(u());return window.addEventListener(i,e),()=>window.removeEventListener(i,e)},[e,t,c,l]),d}export{c as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{D as t,E as n}from"./vendor-markdown-C-P1aR4p.js";import{a as r,k as i}from"./api-client-BnYFnEfK.js";import{n as a}from"./use-is-mobile-CL2I7hLf.js";import{t as o}from"./button-BHGVTbam.js";import{a as s,n as c,o as l,t as u}from"./dialog-DnE192fh.js";import{t as d}from"./mobile-bottom-sheet-M9pZptfh.js";import{
|
|
1
|
+
import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{D as t,E as n}from"./vendor-markdown-C-P1aR4p.js";import{a as r,k as i}from"./api-client-BnYFnEfK.js";import{n as a}from"./use-is-mobile-CL2I7hLf.js";import{t as o}from"./button-BHGVTbam.js";import{a as s,n as c,o as l,t as u}from"./dialog-DnE192fh.js";import{t as d}from"./mobile-bottom-sheet-M9pZptfh.js";import{Qn as f}from"./index-Vd9Xr54k.js";import{r as p}from"./format-bytes-Xp9emfaR.js";var m=e(t(),1),h=n();function g({target:e,onConfirm:t,onCancel:n}){let r=a(),[i,g]=(0,m.useState)(!1);if((0,m.useEffect)(()=>{e||g(!1)},[e]),!e)return null;let _=e.kind===`group`,v=_?`End app`:`End process`,y=_?e.group.cpu:e.proc.cpu,b=_?e.group.ramMB:e.proc.ramMB,x=(0,h.jsxs)(`div`,{className:`space-y-4`,"data-testid":`sysmon-kill-confirm`,"data-kill-kind":e.kind,children:[_?(0,h.jsxs)(`p`,{className:`text-sm`,children:[`End `,(0,h.jsx)(`span`,{className:`font-medium`,children:e.group.label}),` and all its`,` `,(0,h.jsx)(`span`,{className:`font-medium`,children:e.members.length}),` processes?`]}):(0,h.jsxs)(`p`,{className:`text-sm`,children:[`End `,(0,h.jsx)(`span`,{className:`font-medium`,children:e.proc.name}),` (pid `,e.proc.pid,`)?`]}),(0,h.jsxs)(`p`,{className:`text-xs text-text-subtle`,children:[`CPU `,y.toFixed(1),`% · RAM `,p(b)]}),!_&&(0,h.jsxs)(`label`,{className:`flex items-center justify-between gap-3 min-h-11 py-1`,children:[(0,h.jsx)(`span`,{className:`text-sm`,children:`Also end child processes`}),(0,h.jsx)(f,{checked:i,onCheckedChange:g,"data-testid":`sysmon-kill-tree`,"aria-label":`Also end child processes`})]}),(0,h.jsxs)(`div`,{className:`flex flex-col-reverse md:flex-row gap-2 md:justify-end pt-2`,children:[(0,h.jsx)(o,{variant:`outline`,onClick:n,"data-testid":`sysmon-kill-confirm-cancel`,className:`min-h-11`,children:`Cancel`}),(0,h.jsx)(o,{variant:`destructive`,autoFocus:!1,onClick:()=>t(e,i),"data-testid":`sysmon-kill-confirm-ok`,className:`min-h-11`,children:_?`End ${e.members.length} processes`:`End process`})]})]});return r?(0,h.jsx)(d,{open:!0,onClose:n,children:(0,h.jsxs)(`div`,{className:`px-4 pb-4`,children:[(0,h.jsx)(`h2`,{className:`text-base font-semibold mb-3`,children:v}),x]})}):(0,h.jsx)(u,{open:!0,onOpenChange:e=>!e&&n(),children:(0,h.jsxs)(c,{children:[(0,h.jsx)(s,{children:(0,h.jsx)(l,{children:v})}),x]})})}function _(e,t){return{pid:e.pid,startedAt:e.startedAt,tree:t}}function v(e,t){let n=e.rootPid===null?void 0:t.find(t=>t.pid===e.rootPid);return n?[_(n,!0)]:t.map(e=>_(e,!1))}function y(e){return e.some(e=>e.protected)}async function b(e){let t=r(),n={"Content-Type":`application/json`,"X-PPM-Request":`1`};t&&(n.Authorization=`Bearer ${t}`);let i=await fetch(`/api/system/resources/kill`,{method:`POST`,headers:n,body:JSON.stringify(e)}),a;try{a=await i.json()}catch{throw Error(i.ok?`Empty response from server`:`Server error (HTTP ${i.status})`)}if(a.ok===!1)throw Error(a.error??`HTTP ${i.status}`);return a.data}function x(e){let[t,n]=(0,m.useState)(null),r=(0,m.useCallback)(t=>{let n=new Map(e.processes.map(e=>[e.pid,e]));return t.pids.map(e=>n.get(e)).filter(e=>!!e)},[e.processes]),a=(0,m.useMemo)(()=>new Map(e.groups.map(e=>[e.key,y(r(e))])),[e.groups,r]),o=(0,m.useCallback)(e=>n({kind:`process`,proc:e}),[]),s=(0,m.useCallback)(e=>n({kind:`group`,group:e,members:r(e)}),[r]),c=(0,m.useCallback)(()=>n(null),[]);return{pendingKill:t,groupProtected:a,requestKillProcess:o,requestKillGroup:s,confirmKill:(0,m.useCallback)(async(e,t)=>{if(n(null),e.kind===`process`){let{proc:n}=e;try{await b(_(n,t)),i.success(`Ended ${n.name} (${n.pid})`)}catch(e){i.error(e instanceof Error?e.message:`Failed to end ${n.name}`)}return}let{group:r,members:a}=e,o=[];for(let e of v(r,a))try{await b(e)}catch(t){o.push(t instanceof Error?t.message:`pid ${e.pid}`)}o.length===0?i.success(`Ended ${r.label} (${a.length} processes)`):i.error(`${r.label}: ${o.length} of ${a.length} could not be ended — ${o[0]}`)},[]),cancelKill:c}}export{y as n,g as r,x as t};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{D as t,E as n}from"./vendor-markdown-C-P1aR4p.js";import{r}from"./api-client-BnYFnEfK.js";import{et as i}from"./window-store-
|
|
1
|
+
import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{D as t,E as n}from"./vendor-markdown-C-P1aR4p.js";import{r}from"./api-client-BnYFnEfK.js";import{et as i}from"./window-store-D6EgLSfT.js";import{n as a}from"./explorer-model-f5q-50DN.js";import{$ as o,et as s}from"./index-Vd9Xr54k.js";import{t as c}from"./use-monaco-theme-CbNQ4HnC.js";import{t as l}from"./editor-font-UC3YDKcu.js";import{c as u,l as d,o as f,r as p}from"./split-sql-statements-Bujv4uO8.js";import{t as m}from"./sql-completion-provider-DOGGlsCe.js";function h(e,t){return t?.text.trim()?{sql:t.text,lineOffset:t.startLine-1,from:`selection`}:e.trim()?{sql:e,lineOffset:0,from:`script`}:null}function g(e,t,n){let r=d(e,t,n);return r?{sql:r.run,lineOffset:p(r),from:`statement`}:null}function _(e,t,n,r){return t?.text.trim()?{sql:t.text,lineOffset:t.startLine-1,from:`selection`}:g(e,n,r)}var v=/\s/;function y(e,t,n){let r=0;for(let t=1;t<n.lineNumber;t++)r=e.indexOf(`
|
|
2
2
|
`,r)+1;r+=n.column-1;let i=0;for(let t=0;t<r;t++)v.test(e[t])||i++;let a=r===0||v.test(e[r-1]),o=a?i:i-1,s=0;for(let e=0;s<t.length;s++)if(!v.test(t[s])){if(e===o)break;e++}!a&&s<t.length&&s++;let c=1,l=0;for(let e=t.indexOf(`
|
|
3
3
|
`);e!==-1&&e<s;e=t.indexOf(`
|
|
4
4
|
`,e+1))c++,l=e+1;return{lineNumber:c,column:s-l+1}}var b=e(t(),1),x=n(),S=120;function C(e){let t=e.getSelection(),n=e.getModel();return!t||!n||t.isEmpty()?null:{text:n.getValueInRange(t),startLine:t.startLineNumber}}function w({onExecute:e,loading:t,defaultValue:n=`SELECT * FROM `,schemaInfo:r,onSqlChange:i,persistedSql:a,dialect:d=`postgres`,handleRef:p,queryTab:v=!1,errorLines:w,onFormat:T}){let[E,D]=(0,b.useState)(()=>a??n),O=(0,b.useRef)(!!a),[k,A]=(0,b.useState)(null),j=(0,b.useRef)(e);j.current=e;let M=(0,b.useRef)(d);M.current=d;let N=(0,b.useRef)(T);N.current=T;let P=c();(0,b.useEffect)(()=>{if(!k||!r)return;let{editor:e,monaco:t}=k,n=t.languages.registerCompletionItemProvider(`sql`,m(t,r,()=>M.current,e));return()=>n.dispose()},[k,r]);let F=(0,b.useCallback)((e,t)=>{let n=()=>{let t=e.getPosition();return t?g(e.getValue(),t.lineNumber,M.current):null};e.addAction({id:`run-query-at-cursor`,label:`Run Statement at Cursor`,keybindings:[t.KeyMod.CtrlCmd|t.KeyCode.Enter,...v?[t.KeyMod.CtrlCmd|t.KeyMod.Shift|t.KeyCode.Enter]:[]],run:()=>{let e=n();e&&j.current(e)}}),v&&(e.addAction({id:`run-query-script`,label:`Run Script or Selection`,keybindings:[t.KeyCode.F5],run:()=>{let t=h(e.getValue(),C(e));t&&j.current(t)}}),e.addAction({id:`format-query-script`,label:`Format SQL`,keybindings:[t.KeyMod.Shift|t.KeyMod.Alt|t.KeyCode.KeyF],run:()=>N.current?.()})),p&&(p.current={runAtCursor:()=>{e.getAction(`run-query-at-cursor`)?.run()},runScript:()=>{let t=h(e.getValue(),C(e));t&&j.current(t)},selectionOrStatement:()=>{let t=e.getPosition();return _(e.getValue(),C(e),t?.lineNumber??1,M.current)},revealLine:t=>{e.setPosition({lineNumber:t,column:1}),e.revealLineInCenterIfOutsideViewport(t),e.focus()},insertText:n=>{let r=e.getSelection();if(!r)return;e.pushUndoStop(),e.executeEdits(`ppm-insert`,[{range:r,text:n,forceMoveMarkers:!0}],e=>{let n=e[0]?.range;return n?[new t.Selection(n.startLineNumber,n.startColumn,n.endLineNumber,n.endColumn)]:null}),e.pushUndoStop();let i=e.getSelection();i&&e.revealRangeInCenterIfOutsideViewport(i),e.focus()},reformat:n=>{let r=e.getModel();if(!r)return;let i=r.getValue(t.editor.EndOfLinePreference.LF),a=n(i);if(a!==i){let n=y(i,a,e.getPosition()??{lineNumber:1,column:1});e.pushUndoStop(),e.executeEdits(`ppm-format`,[{range:r.getFullModelRange(),text:a}],[new t.Selection(n.lineNumber,n.column,n.lineNumber,n.column)]),e.pushUndoStop(),e.revealPositionInCenterIfOutsideViewport(n)}e.focus()}}),A({editor:e,monaco:t})},[p]);return(0,b.useEffect)(()=>{if(!k||!v)return;let{editor:e,monaco:t}=k,n=e.createDecorationsCollection(),r=null,i=null,a=()=>{i=null;let a=e.getModel(),o=e.getPosition();if(!a||!o)return n.clear();let s=a.getVersionId();r?.version!==s&&(r={version:s,statements:f(a.getValue(),M.current)});let c=r.statements.length>1?u(r.statements,o.lineNumber):null;n.set(c?[{range:new t.Range(c.startLine,1,c.endLine,1),options:{isWholeLine:!0,lineNumberClassName:`ppm-sql-current-statement`,linesDecorationsClassName:`ppm-sql-current-statement-bar`}}]:[])},o=()=>{i&&clearTimeout(i),i=setTimeout(a,S)};a();let s=e.onDidChangeCursorPosition(o),c=e.onDidChangeModelContent(o);return()=>{i&&clearTimeout(i),s.dispose(),c.dispose(),n.clear()}},[k,v]),(0,b.useEffect)(()=>{if(!k||!w?.length)return;let{editor:e,monaco:t}=k,n=e.getModel()?.getLineCount()??0,r=e.createDecorationsCollection(w.filter(e=>e>=1&&e<=n).map(e=>({range:new t.Range(e,1,e,1),options:{isWholeLine:!0,className:`ppm-sql-error-line`,linesDecorationsClassName:`ppm-sql-error-bar`}}))),i=e.onDidChangeModelContent(()=>r.clear());return()=>{i.dispose(),r.clear()}},[k,w]),(0,b.useEffect)(()=>{O.current||D(n)},[n]),(0,x.jsx)(`div`,{className:`h-full overflow-hidden`,children:(0,x.jsx)(s,{beforeMount:o,height:`100%`,language:`sql`,theme:P,value:E,onChange:e=>{let t=e??``;D(t),O.current=!0,i?.(t)},onMount:F,options:{minimap:{enabled:!1},lineNumbers:v?`on`:`off`,scrollBeyondLastLine:!1,wordWrap:`on`,fontFamily:l,fontSize:12,tabSize:2,renderLineHighlight:`none`,overviewRulerLanes:0,hideCursorInOverviewRuler:!0,scrollbar:{vertical:`auto`,horizontal:`auto`,verticalScrollbarSize:6,horizontalScrollbarSize:6},padding:{top:4,bottom:4},lineDecorationsWidth:v?8:4,lineNumbersMinChars:v?3:0,glyphMargin:!1,folding:!1,fixedOverflowWidgets:!0}})})}function T(e){let[t,n]=(0,b.useState)([]);return(0,b.useEffect)(()=>{if(n([]),!e)return;let t=!0;return(e.kind===`connection`&&e.database===void 0?r.get(i(e,`/tables?cached=1`)):r.get(i(e,`/objects`)).then(e=>e.objects.filter(e=>a.has(e.kind)).map(e=>({name:e.name,schema:e.schema??``})))).then(e=>{t&&n(e.map(({name:e,schema:t})=>({name:e,schema:t})))}).catch(()=>{}),()=>{t=!1}},[e]),(0,b.useMemo)(()=>{if(!(!e||t.length===0))return{tables:t,getColumns:(t,n)=>r.get(i(e,`/schema?table=${encodeURIComponent(t)}${n?`&schema=${encodeURIComponent(n)}`:``}`))}},[e,t])}export{w as n,T as t};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{D as t}from"./vendor-markdown-C-P1aR4p.js";import{H as n}from"./index-
|
|
1
|
+
import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{D as t}from"./vendor-markdown-C-P1aR4p.js";import{H as n}from"./index-Vd9Xr54k.js";var r=e(t(),1);function i({url:e,onMessage:t,autoConnect:i=!0,idleTimeoutMs:a,onConnectionChange:o}){let s=(0,r.useRef)(null),c=(0,r.useRef)(t),l=(0,r.useRef)(o);return c.current=t,l.current=o,(0,r.useEffect)(()=>{let t=!0,r=new n(e,{idleTimeoutMs:a,onConnectionChange:e=>{t&&l.current?.(e)}});return s.current=r,r.onMessage(e=>c.current?.(e)),i&&r.connect(),()=>{t=!1,r.disconnect(),s.current=null}},[e,i,a]),{send:(0,r.useCallback)(e=>{s.current?.send(e)},[]),connect:(0,r.useCallback)(()=>{s.current?.connect()},[]),disconnect:(0,r.useCallback)(()=>{s.current?.disconnect()},[])}}export{i as t};
|
package/dist/web/assets/{voice-settings-section-D9KsOm8A.js → voice-settings-section-C1aEYF94.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{D as t,E as n}from"./vendor-markdown-C-P1aR4p.js";import"./vendor-ui-BTSIXzhZ.js";import{A as r,Kr as i,Mn as a,ht as o,xn as s}from"./icons-C1wDt09O.js";import{k as c,r as l}from"./api-client-BnYFnEfK.js";import{t as u}from"./settings-store-
|
|
1
|
+
import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{D as t,E as n}from"./vendor-markdown-C-P1aR4p.js";import"./vendor-ui-BTSIXzhZ.js";import{A as r,Kr as i,Mn as a,ht as o,xn as s}from"./icons-C1wDt09O.js";import{k as c,r as l}from"./api-client-BnYFnEfK.js";import{t as u}from"./settings-store-CMpVMq3Y.js";import{n as d}from"./utils-D3xTlJyU.js";import"./window-store-D6EgLSfT.js";import"./panel-store-H7e9XHZF.js";import"./project-store-Bs-kiU8m.js";import"./project-framework-store-nuePqBBa.js";import"./session-list-sync-triggers-D9i1FxWd.js";import{t as f}from"./button-BHGVTbam.js";import"./run-in-terminal-DAdjH24K.js";import{t as p}from"./separator-DUdRLaL0.js";import{t as m}from"./run-in-terminal-button-Bu165IH-.js";var h=e(t(),1),g=n(),_={binary:`Downloading whisper.cpp`,model:`Downloading the model`,vad:`Downloading the voice detector`,verify:`Checking it runs here`},v=e=>`${Math.round(e/1e6)} MB`;function y(){let e=u(e=>e.voiceEngine),t=u(e=>e.setVoiceEngine),[n,a]=(0,h.useState)(null),[y,x]=(0,h.useState)(null),[S,C]=(0,h.useState)(!1),w=(0,h.useRef)(null),T=(0,h.useCallback)(async()=>{try{let e=await l.get(`/api/speech/status`);a(e),x(t=>t??e.model?.id??e.models.at(-1)?.id??null)}catch{}},[]);(0,h.useEffect)(()=>{T()},[T]);let E=!!n?.install&&!n.install.done;(0,h.useEffect)(()=>{if(E)return w.current=setTimeout(()=>void T(),700),()=>{w.current&&clearTimeout(w.current)}},[E,n,T]);let[D,O]=(0,h.useState)(!1),k=!!n?.installable;(0,h.useEffect)(()=>{if(!D||k)return;let e=setInterval(()=>{document.visibilityState===`visible`&&T()},4e3),t=setTimeout(()=>O(!1),10*6e4);return()=>{clearInterval(e),clearTimeout(t)}},[D,k,T]),(0,h.useEffect)(()=>{n&&!n.ready&&e===`whisper`&&t(`browser`)},[n,e,t]);let A=async()=>{if(y){C(!0);try{await l.post(`/api/speech/install`,{model:y}),await T()}catch(e){c.error(`Could not start the install`,{description:e instanceof Error?e.message:String(e)})}finally{C(!1)}}},j=async()=>{C(!0);try{await l.post(`/api/speech/uninstall`),t(`browser`),await T()}catch(e){c.error(`Could not remove Whisper`,{description:e instanceof Error?e.message:String(e)})}finally{C(!1)}},M=n?.install??null,N=M&&M.totalBytes>0?Math.round(M.receivedBytes/M.totalBytes*100):null,P=typeof window<`u`&&!window.isSecureContext;return(0,g.jsxs)(`div`,{className:`space-y-6`,children:[(0,g.jsxs)(`section`,{className:`space-y-3`,children:[(0,g.jsxs)(`div`,{children:[(0,g.jsx)(`h3`,{className:`text-sm font-medium`,children:`Speech to text`}),(0,g.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`What the mic button in the chat box uses. This device only.`})]}),(0,g.jsxs)(`div`,{className:`flex flex-col sm:flex-row gap-2`,children:[(0,g.jsx)(b,{label:`Browser`,note:`Text appears as you speak. Chrome, Edge and Safari only — the audio goes to their servers.`,value:`browser`,current:e,onChange:t}),n?.ready&&(0,g.jsx)(b,{label:`Whisper on this host`,note:`Works in any browser and the audio never leaves your machine. Text arrives when you stop talking.`,value:`whisper`,current:e,onChange:t})]}),P&&(0,g.jsx)(`p`,{className:`text-xs text-warning`,children:`This page is on plain HTTP, where browsers block the microphone entirely. Open PPM over HTTPS or on localhost to use either engine.`})]}),(0,g.jsx)(p,{}),(0,g.jsxs)(`section`,{className:`space-y-3`,children:[(0,g.jsxs)(`div`,{children:[(0,g.jsx)(`h3`,{className:`text-sm font-medium`,children:`Whisper on this host`}),(0,g.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n?.ready?`Installed — whisper.cpp ${n.version}, model ${n.model?.label}.`:`Runs speech to text on the machine PPM is installed on. Nothing is sent to a cloud service.`})]}),n&&!n.installable&&(n.installHint?(0,g.jsxs)(`div`,{className:`space-y-2`,children:[(0,g.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`There is no prebuilt whisper.cpp for this platform, so it comes from Homebrew:`,` `,(0,g.jsx)(`code`,{className:`rounded bg-muted px-1 py-0.5`,children:n.installHint}),`. PPM types it into a terminal; press Enter there, and the models appear here once it is installed.`]}),(0,g.jsx)(m,{command:n.installHint,label:`Install with Homebrew`,onRun:()=>O(!0)})]}):(0,g.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`There is no prebuilt whisper.cpp for this platform. Install it yourself and PPM will find it:`,` `,(0,g.jsx)(`code`,{className:`rounded bg-muted px-1 py-0.5`,children:`whisper-cli on PATH`})]})),M&&!M.done&&(0,g.jsxs)(`div`,{className:`space-y-2`,children:[(0,g.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,children:[(0,g.jsx)(s,{className:`size-3.5 animate-spin`}),(0,g.jsxs)(`span`,{children:[_[M.phase],N===null?`…`:` — ${N}%`]})]}),(0,g.jsx)(`div`,{className:`h-1.5 w-full overflow-hidden rounded-full bg-muted`,children:(0,g.jsx)(`div`,{className:`h-full bg-primary transition-[width]`,style:{width:`${N??0}%`}})})]}),M?.error&&(0,g.jsx)(`p`,{className:`text-xs text-error`,children:M.error}),n?.installable&&(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(`div`,{className:`space-y-2`,children:n.models.map(e=>{let t=y===e.id,i=n.model?.id===e.id;return(0,g.jsxs)(`button`,{type:`button`,onClick:()=>x(e.id),className:d(`w-full rounded-lg border px-4 py-3 text-left transition-colors`,t?`border-primary ring-2 ring-primary`:`border-border hover:bg-muted/50`),children:[(0,g.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,g.jsx)(`span`,{className:`text-sm font-medium`,children:e.label}),(0,g.jsxs)(`span`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,children:[i&&(0,g.jsx)(r,{className:`size-3.5 text-success`}),v(e.bytes)]})]}),(0,g.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e.note})]},e.id)})}),(0,g.jsxs)(`div`,{className:`flex flex-col sm:flex-row gap-2`,children:[(0,g.jsxs)(f,{onClick:A,disabled:S||E||!y||n.model?.id===y,className:`flex-1 gap-2 cursor-pointer`,children:[(0,g.jsx)(o,{className:`size-4`}),n.model?n.model.id===y?`Installed`:`Switch to ${n.models.find(e=>e.id===y)?.label}`:`Install`]}),(n.model||n.binary?.source===`bundled`)&&(0,g.jsxs)(f,{variant:`outline`,onClick:j,disabled:S||E,className:`gap-2 cursor-pointer text-error`,children:[(0,g.jsx)(i,{className:`size-4`}),`Remove`]})]})]})]})]})}function b({label:e,note:t,value:n,current:r,onChange:i}){return(0,g.jsxs)(`button`,{type:`button`,onClick:()=>i(n),className:d(`flex-1 rounded-lg border px-4 py-3 text-left transition-colors`,r===n?`border-primary ring-2 ring-primary`:`border-border hover:bg-muted/50`),children:[(0,g.jsxs)(`span`,{className:`flex items-center gap-2 text-sm font-medium`,children:[(0,g.jsx)(a,{className:`size-4`}),e]}),(0,g.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:t})]})}export{y as VoiceSettingsSection};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{D as t,E as n}from"./vendor-markdown-C-P1aR4p.js";import"./vendor-ui-BTSIXzhZ.js";import{A as r,Cn as i,Gt as a,_r as o,gt as s,ut as c}from"./icons-C1wDt09O.js";import{k as l}from"./api-client-BnYFnEfK.js";import"./settings-store-
|
|
1
|
+
import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{D as t,E as n}from"./vendor-markdown-C-P1aR4p.js";import"./vendor-ui-BTSIXzhZ.js";import{A as r,Cn as i,Gt as a,_r as o,gt as s,ut as c}from"./icons-C1wDt09O.js";import{k as l}from"./api-client-BnYFnEfK.js";import"./settings-store-CMpVMq3Y.js";import"./window-store-D6EgLSfT.js";import{t as u}from"./panel-store-H7e9XHZF.js";import"./project-store-Bs-kiU8m.js";import"./project-framework-store-nuePqBBa.js";import"./session-list-sync-triggers-D9i1FxWd.js";import{r as d}from"./clipboard-D3XnL7CB.js";import{An as f,Nn as p}from"./index-Vd9Xr54k.js";var m=e(t(),1),h=n(),g=`flex items-center justify-center shrink-0 rounded min-h-11 min-w-11 md:min-h-7 md:min-w-7 text-muted-foreground hover:text-foreground hover:bg-muted`,_=3e3;function v(){return Promise.race([f.allowFraming(window.location.origin).then(()=>void 0,()=>void 0),new Promise(e=>setTimeout(e,_))])}function y({metadata:e,tabId:t}){let n=p(e?.url,window.location.origin),f=p(e?.currentUrl,window.location.origin),_=f&&n&&new URL(f).origin===new URL(n).origin?f:n,[y,b]=(0,m.useState)(_),[x,S]=(0,m.useState)(_),C=(0,m.useRef)(null),w=`${n}:${String(e?.aiOpenAt??``)}`,T=(0,m.useRef)(w),E=e?.via===`tailscale`||e?.via===`local`,[D,O]=(0,m.useState)(0),[k,A]=(0,m.useState)(!1),[j,M]=(0,m.useState)(!1);if((0,m.useEffect)(()=>{T.current!==w&&(T.current=w,b(n),S(n))},[w,n]),(0,m.useEffect)(()=>{let e=e=>{if(!n||!C.current?.contentWindow||e.source!==C.current.contentWindow||e.origin!==new URL(n).origin||e.data?.ppm!==`web-preview-navigation`)return;let r=p(e.data.url,window.location.origin);if(!(!r||new URL(r).origin!==e.origin)&&(b(r),t)){let e=u.getState(),n=Object.values(e.panels).flatMap(e=>e.tabs).find(e=>e.id===t);n&&n.metadata?.currentUrl!==r&&e.updateTab(t,{metadata:{...n.metadata,currentUrl:r}})}};return window.addEventListener(`message`,e),()=>window.removeEventListener(`message`,e)},[n,t]),(0,m.useEffect)(()=>{let e=!0;return v().then(()=>{e&&M(!0)}),()=>{e=!1}},[]),!y)return(0,h.jsx)(`div`,{role:`alert`,className:`p-4 text-sm text-destructive`,children:`This preview has no address PPM can show.`});let N=()=>{d(y).then(e=>{if(!e){l.error(`Failed to copy URL`);return}A(!0),setTimeout(()=>A(!1),2e3)})};return(0,h.jsxs)(`div`,{className:`flex h-full w-full flex-col-reverse md:flex-col bg-background`,children:[(0,h.jsxs)(`div`,{role:`toolbar`,"aria-label":`Web preview`,className:`flex items-center gap-2 md:gap-1 shrink-0 h-12 md:h-8 px-2 border-t md:border-t-0 md:border-b border-border`,children:[(0,h.jsx)(`span`,{className:`flex items-center justify-center shrink-0 size-7 text-muted-foreground`,title:e?.via===`local`?`Private: only this machine can open this address`:E?`Private: only devices in your tailnet can open this address`:`Public: anyone with this link can open it`,children:E?(0,h.jsx)(i,{className:`size-3.5`}):(0,h.jsx)(a,{className:`size-3.5`})}),(0,h.jsx)(`span`,{className:`flex-1 min-w-0 truncate text-xs text-muted-foreground select-all`,children:y}),(0,h.jsx)(`button`,{type:`button`,onClick:()=>void v().then(()=>{S(y),O(e=>e+1)}),title:`Reload`,"aria-label":`Reload`,className:g,children:(0,h.jsx)(o,{className:`size-4`})}),(0,h.jsx)(`button`,{type:`button`,onClick:N,title:`Copy URL`,"aria-label":`Copy URL`,className:g,children:k?(0,h.jsx)(r,{className:`size-4 text-success`}):(0,h.jsx)(c,{className:`size-4`})}),(0,h.jsx)(`a`,{href:y,target:`_blank`,rel:`noopener noreferrer`,title:`Open in browser`,"aria-label":`Open in browser`,className:g,children:(0,h.jsx)(s,{className:`size-4`})})]}),j?(0,h.jsx)(`iframe`,{ref:C,title:`Preview of ${y}`,src:x??void 0,sandbox:`allow-scripts allow-same-origin allow-forms allow-popups allow-popups-to-escape-sandbox allow-modals allow-downloads`,allow:`clipboard-read; clipboard-write; fullscreen`,referrerPolicy:`no-referrer`,className:`flex-1 min-h-0 w-full border-0 bg-white`},`${D}:${String(e?.aiOpenAt??``)}`):(0,h.jsx)(`div`,{className:`flex-1 min-h-0 w-full bg-white`})]})}export{y as WebPreviewTab};
|
|
Binary file
|
|
Binary file
|