tarsk 0.6.87 → 0.6.88
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundled-skills/email-me/SKILL.md +15 -0
- package/dist/bundled-skills/email-me/scripts/__tests__/email_me.test.js +64 -0
- package/dist/bundled-skills/email-me/scripts/email_me.js +45 -0
- package/dist/bundled-skills/handoff/SKILL.md +19 -0
- package/dist/bundled-skills/tarsk-agent/SKILL.md +372 -0
- package/dist/bundled-skills/tarsk-ask-user/SKILL.md +18 -0
- package/dist/bundled-skills/tarsk-ask-user/scripts/ask_user.js +101 -0
- package/dist/bundled-skills/tarsk-bash/SKILL.md +17 -0
- package/dist/bundled-skills/tarsk-bash/scripts/bash.js +248 -0
- package/dist/bundled-skills/tarsk-browser/SKILL.md +17 -0
- package/dist/bundled-skills/tarsk-browser/scripts/browser.js +252 -0
- package/dist/bundled-skills/tarsk-chat-title/SKILL.md +14 -0
- package/dist/bundled-skills/tarsk-chat-title/scripts/chat_title.js +37 -0
- package/dist/bundled-skills/tarsk-connect-mcp/SKILL.md +23 -0
- package/dist/bundled-skills/tarsk-connect-mcp/scripts/__tests__/connect_mcp.test.js +68 -0
- package/dist/bundled-skills/tarsk-connect-mcp/scripts/connect_mcp.js +119 -0
- package/dist/bundled-skills/tarsk-create-project/SKILL.md +25 -0
- package/dist/bundled-skills/tarsk-create-project/scripts/__tests__/create_project.test.js +94 -0
- package/dist/bundled-skills/tarsk-create-project/scripts/create_project.js +88 -0
- package/dist/bundled-skills/tarsk-edit/SKILL.md +18 -0
- package/dist/bundled-skills/tarsk-edit/scripts/edit.js +118 -0
- package/dist/bundled-skills/tarsk-execute-skill-script/SKILL.md +19 -0
- package/dist/bundled-skills/tarsk-execute-skill-script/scripts/execute_skill_script.js +77 -0
- package/dist/bundled-skills/tarsk-fetch/SKILL.md +18 -0
- package/dist/bundled-skills/tarsk-fetch/scripts/fetch.js +38 -0
- package/dist/bundled-skills/tarsk-find/SKILL.md +16 -0
- package/dist/bundled-skills/tarsk-find/scripts/find.js +78 -0
- package/dist/bundled-skills/tarsk-find-images/SKILL.md +18 -0
- package/dist/bundled-skills/tarsk-find-images/scripts/find_images.js +78 -0
- package/dist/bundled-skills/tarsk-generate-image/SKILL.md +18 -0
- package/dist/bundled-skills/tarsk-generate-image/scripts/generate_image.js +55 -0
- package/dist/bundled-skills/tarsk-get-observation/SKILL.md +19 -0
- package/dist/bundled-skills/tarsk-get-observation/scripts/get_observation.js +293 -0
- package/dist/bundled-skills/tarsk-grep/SKILL.md +16 -0
- package/dist/bundled-skills/tarsk-grep/scripts/grep.js +174 -0
- package/dist/bundled-skills/tarsk-history/SKILL.md +15 -0
- package/dist/bundled-skills/tarsk-history/scripts/history.js +68 -0
- package/dist/bundled-skills/tarsk-improve/SKILL.md +232 -0
- package/dist/bundled-skills/tarsk-improve/references/signals.md +16 -0
- package/dist/bundled-skills/tarsk-improve/scripts/durable-runs.ts +635 -0
- package/dist/bundled-skills/tarsk-improve/scripts/ensure-exported.ts +238 -0
- package/dist/bundled-skills/tarsk-improve/scripts/export-tool-skills-lib.ts +299 -0
- package/dist/bundled-skills/tarsk-improve/scripts/summarize-session.ts +126 -0
- package/dist/bundled-skills/tarsk-jobs/SKILL.md +18 -0
- package/dist/bundled-skills/tarsk-jobs/scripts/job_kill.js +45 -0
- package/dist/bundled-skills/tarsk-jobs/scripts/job_list.js +64 -0
- package/dist/bundled-skills/tarsk-jobs/scripts/job_output.js +66 -0
- package/dist/bundled-skills/tarsk-notes/SKILL.md +17 -0
- package/dist/bundled-skills/tarsk-notes/scripts/notes.js +86 -0
- package/dist/bundled-skills/tarsk-projects/SKILL.md +18 -0
- package/dist/bundled-skills/tarsk-projects/scripts/projects.js +54 -0
- package/dist/bundled-skills/tarsk-prompt-project/SKILL.md +18 -0
- package/dist/bundled-skills/tarsk-prompt-project/scripts/prompt_project.js +58 -0
- package/dist/bundled-skills/tarsk-propose-branch/SKILL.md +16 -0
- package/dist/bundled-skills/tarsk-propose-branch/scripts/propose_branch.js +45 -0
- package/dist/bundled-skills/tarsk-read/SKILL.md +17 -0
- package/dist/bundled-skills/tarsk-read/scripts/read.js +331 -0
- package/dist/bundled-skills/tarsk-read-skill/SKILL.md +16 -0
- package/dist/bundled-skills/tarsk-read-skill/scripts/read_skill.js +37 -0
- package/dist/bundled-skills/tarsk-read-skill-reference/SKILL.md +19 -0
- package/dist/bundled-skills/tarsk-read-skill-reference/scripts/read_skill_reference.js +60 -0
- package/dist/bundled-skills/tarsk-run-js/SKILL.md +18 -0
- package/dist/bundled-skills/tarsk-run-js/scripts/run_js.js +192 -0
- package/dist/bundled-skills/tarsk-tasks/SKILL.md +18 -0
- package/dist/bundled-skills/tarsk-tasks/scripts/tasks.js +96 -0
- package/dist/bundled-skills/tarsk-todo/SKILL.md +16 -0
- package/dist/bundled-skills/tarsk-todo/scripts/todo.js +165 -0
- package/dist/bundled-skills/tarsk-web-search/SKILL.md +15 -0
- package/dist/bundled-skills/tarsk-web-search/scripts/web_search.js +120 -0
- package/dist/bundled-skills/tarsk-write/SKILL.md +16 -0
- package/dist/bundled-skills/tarsk-write/scripts/write.js +57 -0
- package/dist/index.js +215804 -210026
- package/dist/node_modules/@libsql/darwin-arm64/README.md +3 -0
- package/dist/node_modules/@libsql/{darwin-x64 → darwin-arm64}/index.node +0 -0
- package/dist/node_modules/@libsql/{darwin-x64 → darwin-arm64}/package.json +6 -6
- package/dist/public/assets/account-view-DkuCOxkE.js +1 -0
- package/dist/public/assets/{alert-dialog-DVaEQlVa.js → alert-dialog-BcZULJsX.js} +1 -1
- package/dist/public/assets/api-B_GSyYGh.js +1 -0
- package/dist/public/assets/api-C4ukGdyH.js +2 -0
- package/dist/public/assets/{async-error-boundary-DH6Sqgmt.js → async-error-boundary-FT8_xvjy.js} +1 -1
- package/dist/public/assets/browser-tab-DCjHytQ8.js +12 -0
- package/dist/public/assets/button-DDaJhJP1.js +1 -0
- package/dist/public/assets/{card-BkOGFps5.js → card-DAc45J1v.js} +1 -1
- package/dist/public/assets/chat-dock-context-a2bV9cnz.js +1 -0
- package/dist/public/assets/chat-handlers-context-2xSKzkKa.js +9 -0
- package/dist/public/assets/commit-dialog-C1oUFznJ.js +1 -0
- package/dist/public/assets/{commit-error-dialog-D3S6kRVr.js → commit-error-dialog--NTHg7Aw.js} +1 -1
- package/dist/public/assets/{commit-method-fields-BEKfSRyW.js → commit-method-fields-Xt3vbwUg.js} +1 -1
- package/dist/public/assets/{conversation-history-view-CVMD8hUU.js → conversation-history-view-CdfE7JTD.js} +1 -1
- package/dist/public/assets/{create-project-dialog-nquqlloK.js → create-project-dialog-BdR6iQE9.js} +2 -2
- package/dist/public/assets/{create-project-workspace-C4tXAUWJ.js → create-project-workspace-DSTTGom_.js} +2 -2
- package/dist/public/assets/create-repo-dialog-gw-8Rpdm.js +1 -0
- package/dist/public/assets/{delete-confirm-dialog-SpYpU1AX.js → delete-confirm-dialog-D1N86piR.js} +1 -1
- package/dist/public/assets/dialog-D_12AsZd.js +1 -0
- package/dist/public/assets/diff-view-B6JJNyn1.js +4 -0
- package/dist/public/assets/{dist-NcyjV9Gu.js → dist-2xH_pFmV.js} +1 -1
- package/dist/public/assets/{dist-BTu7PDzc.js → dist-AbkJBHH5.js} +1 -1
- package/dist/public/assets/{dist-lFBinzor.js → dist-B-h6Wj39.js} +1 -1
- package/dist/public/assets/dist-CgbWuuq4.js +1 -0
- package/dist/public/assets/{dist-f54JuzFV.js → dist-DOz2WXwX.js} +1 -1
- package/dist/public/assets/{dist-CqrmQxmV.js → dist-DfnQ9YJh.js} +1 -1
- package/dist/public/assets/{dist-BOfRC57H.js → dist-JGbQ_EJY.js} +1 -1
- package/dist/public/assets/{dist-ButPmyjr.js → dist-pCVg1Jdl.js} +1 -1
- package/dist/public/assets/dist-v_MvKS2-.js +2 -0
- package/dist/public/assets/{es2015-CE7VcoOH.js → es2015-eNVkKfFF.js} +1 -1
- package/dist/public/assets/{explorer-file-drop-CEbBlDEp.js → explorer-file-drop-CzyAqZgf.js} +1 -1
- package/dist/public/assets/{explorer-monaco-editor-Bgo9Y1cP.js → explorer-monaco-editor-ChJZBFy5.js} +1 -1
- package/dist/public/assets/explorer-tab-view-CiUPh4uK.js +2 -0
- package/dist/public/assets/explorer-tree-BA12VLz_.js +1 -0
- package/dist/public/assets/{explorer-view-BuTa_0Uq.js → explorer-view-Daxl93oM.js} +3 -3
- package/dist/public/assets/git-history-dialog-Dqj1p35g.js +1 -0
- package/dist/public/assets/index-CoY8DilQ.js +97 -0
- package/dist/public/assets/index-D14wLW4o.css +1 -0
- package/dist/public/assets/{label-C31qF5zZ.js → label-BCs5CZEs.js} +1 -1
- package/dist/public/assets/markdown-renderer-D2VcKU4g.js +10 -0
- package/dist/public/assets/{mcp-manager-C3K_62H2.js → mcp-manager-D1HmLT3t.js} +1 -1
- package/dist/public/assets/{minus-l6BdrAEk.js → minus-CgQcbBQT.js} +1 -1
- package/dist/public/assets/{model-list-controls-DwW8S18v.js → model-list-controls-rXmaDp2r.js} +1 -1
- package/dist/public/assets/onboarding-dialog-DSqBJyBa.js +1 -0
- package/dist/public/assets/{pill-tabs-CmvvHdKG.js → pill-tabs-DtdTmrg7.js} +1 -1
- package/dist/public/assets/progress-indicator-hJ74ac5W.js +1 -0
- package/dist/public/assets/project-coding-view-DP4qKePE.js +1 -0
- package/dist/public/assets/{project-danger-zone-view-D18k4pUF.js → project-danger-zone-view-CGxIenpr.js} +1 -1
- package/dist/public/assets/{project-env-vars-view-BWFqoaFD.js → project-env-vars-view-DKyQkh7h.js} +1 -1
- package/dist/public/assets/project-model-aliases-view-BewwJZAx.js +1 -0
- package/dist/public/assets/project-settings-view-CE4nAz5B.js +1 -0
- package/dist/public/assets/{project-tools-view-DT87KPjE.js → project-tools-view-CbDfst02.js} +1 -1
- package/dist/public/assets/providers-list-view-BtwccvX2.js +1 -0
- package/dist/public/assets/pull-request-dialog-nKYATjbm.js +1 -0
- package/dist/public/assets/pull-with-changes-dialog-zzoFzCv4.js +1 -0
- package/dist/public/assets/push-before-pr-dialog-DH91JHEC.js +1 -0
- package/dist/public/assets/remote-media-url-CyuN31H_.js +1 -0
- package/dist/public/assets/{scroll-area-BWc4OPsj.js → scroll-area-CGEZ1gAL.js} +1 -1
- package/dist/public/assets/{select-B6RizwDW.js → select-BR2pG61R.js} +1 -1
- package/dist/public/assets/settings-general-tabs-view-BWR0UX2P.js +2 -0
- package/dist/public/assets/settings-general-view-BhtrDmJH.js +1 -0
- package/dist/public/assets/{settings-list-D35rpAof.js → settings-list-Dgip9HpD.js} +1 -1
- package/dist/public/assets/settings-logs-view-CS29x4VT.js +5 -0
- package/dist/public/assets/settings-mcp-servers-view-B5ithpfh.js +5 -0
- package/dist/public/assets/settings-models-view-DS7nm54P.js +1 -0
- package/dist/public/assets/settings-plugins-view-avaUE36r.js +2 -0
- package/dist/public/assets/settings-providers-view-B39k1iRQ.js +2 -0
- package/dist/public/assets/settings-remote-machines-view-BXondQG_.js +1 -0
- package/dist/public/assets/settings-setup-view-I5MGUi_D.js +2 -0
- package/dist/public/assets/settings-skills-view-BKrUABbi.js +2 -0
- package/dist/public/assets/{settings-slack-view-DkclyaBc.js → settings-slack-view-B0p-96GC.js} +1 -1
- package/dist/public/assets/settings-slash-commands-view-DA1scWv1.js +1 -0
- package/dist/public/assets/{settings-statistics-view-B03ZZjEy.js → settings-statistics-view-B3g6BD7p.js} +1 -1
- package/dist/public/assets/settings-storage-view-BJvjhI4f.js +1 -0
- package/dist/public/assets/settings-subagents-view-BziLwvNq.js +2 -0
- package/dist/public/assets/settings-system-prompt-view-BqAk56cD.js +1 -0
- package/dist/public/assets/{settings-tab-bar-ajzyt79U.js → settings-tab-bar-DYzU_lmi.js} +1 -1
- package/dist/public/assets/settings-view-zjMs7jNe.js +2 -0
- package/dist/public/assets/{slug-utils-D2jhPz-o.js → slug-utils-CO6nui1C.js} +1 -1
- package/dist/public/assets/square-CtxvwmM2.js +1 -0
- package/dist/public/assets/store-W78TGOIO.js +8 -0
- package/dist/public/assets/{table-C3Hc0Gwy.js → table-CQMqIW_-.js} +1 -1
- package/dist/public/assets/task-utils-BZPVmvY4.js +1 -0
- package/dist/public/assets/tasks-view-wFf77AQX.js +1 -0
- package/dist/public/assets/{terminal-panel-DCKqScJu.js → terminal-panel-Bm_ZelN-.js} +2 -2
- package/dist/public/assets/{toggle-group-DqSxGqvP.js → toggle-group-CPmseZfb.js} +1 -1
- package/dist/public/assets/{tooltip-CJKJfu0l.js → tooltip-CqwCZ7wt.js} +1 -1
- package/dist/public/assets/{use-account-settings-query-AUeOqKvo.js → use-account-settings-query-C-zOdREq.js} +1 -1
- package/dist/public/assets/{use-active-dock-panel-instance-BvAhUd_V.js → use-active-dock-panel-instance-4Ss8lB9K.js} +1 -1
- package/dist/public/assets/use-browser-overlay-block-CO1pUEAZ.js +1 -0
- package/dist/public/assets/use-git-check-CumqGAvN.js +1 -0
- package/dist/public/assets/{use-installed-ai-files-iy_AB0dN.js → use-installed-ai-files-DQey9Zm3.js} +1 -1
- package/dist/public/assets/use-open-chat-dock-panel-DqfWJ8e8.js +1 -0
- package/dist/public/assets/use-projects-CizIH2Fa.js +2 -0
- package/dist/public/assets/utils-CqsIXqSC.js +1 -0
- package/dist/public/assets/web-BNWoiS4w.js +1 -0
- package/dist/public/assets/web-CGP-jEpi.js +1 -0
- package/dist/public/assets/web-CKC9gpFi.js +1 -0
- package/dist/public/assets/web-Dlo3GwCf.js +1 -0
- package/dist/public/fonts/schibsted-grotesk-latin-ext-wght-normal.woff2 +0 -0
- package/dist/public/fonts/schibsted-grotesk-latin-wght-normal.woff2 +0 -0
- package/dist/public/index.html +45 -45
- package/package.json +6 -6
- package/dist/node_modules/@libsql/darwin-x64/README.md +0 -3
- package/dist/public/assets/account-view-5q3pHEHY.js +0 -1
- package/dist/public/assets/ai-spinner-DHwhlk4j.js +0 -1
- package/dist/public/assets/api-BdebJfuN.js +0 -1
- package/dist/public/assets/api-COO2LfdU.js +0 -2
- package/dist/public/assets/browser-overlay-block-CiDtkfup.js +0 -1
- package/dist/public/assets/browser-tab-CVdYLmW5.js +0 -12
- package/dist/public/assets/button-Dp5XDZNR.js +0 -1
- package/dist/public/assets/chat-dock-context-ymLoO90X.js +0 -1
- package/dist/public/assets/checkbox-D-BV8-Z_.js +0 -1
- package/dist/public/assets/commit-dialog-CEbCFh1x.js +0 -1
- package/dist/public/assets/create-repo-dialog-B5IE3pUJ.js +0 -1
- package/dist/public/assets/dialog-pHPeIGaB.js +0 -1
- package/dist/public/assets/diff-view-Cy6nPdX-.js +0 -4
- package/dist/public/assets/dist-D5vgS4RP.js +0 -2
- package/dist/public/assets/explorer-tab-view-C-8QZO9S.js +0 -2
- package/dist/public/assets/explorer-tree-HrLSFgcI.js +0 -1
- package/dist/public/assets/git-history-dialog-ClfF5IOn.js +0 -1
- package/dist/public/assets/index-BBLA5zVt.css +0 -1
- package/dist/public/assets/index-CalVAwXj.js +0 -104
- package/dist/public/assets/markdown-renderer-DXRBG7uP.js +0 -10
- package/dist/public/assets/onboarding-dialog-BtLy0wjC.js +0 -1
- package/dist/public/assets/progress-indicator-4zQXqOqP.js +0 -1
- package/dist/public/assets/project-coding-view-CyJwnJes.js +0 -1
- package/dist/public/assets/project-model-aliases-view-D3tYNkkM.js +0 -1
- package/dist/public/assets/project-settings-view-0oN9vFvD.js +0 -1
- package/dist/public/assets/providers-list-view-DCnh0W-5.js +0 -1
- package/dist/public/assets/pull-request-dialog-BdJxYQwu.js +0 -1
- package/dist/public/assets/pull-with-changes-dialog-Do9x9neW.js +0 -1
- package/dist/public/assets/push-before-pr-dialog-C-9z2O0-.js +0 -1
- package/dist/public/assets/remote-media-url-B8OFqxOM.js +0 -1
- package/dist/public/assets/settings-general-tabs-view-Dcek-ysB.js +0 -2
- package/dist/public/assets/settings-general-view-DhA2N6G5.js +0 -1
- package/dist/public/assets/settings-logs-view-eEUTIMeb.js +0 -5
- package/dist/public/assets/settings-mcp-servers-view-_oeuVkUe.js +0 -5
- package/dist/public/assets/settings-models-view-DW-ZmVup.js +0 -1
- package/dist/public/assets/settings-plugins-view-DTooco_c.js +0 -2
- package/dist/public/assets/settings-providers-view-CEeJkhg9.js +0 -2
- package/dist/public/assets/settings-remote-machines-view--UB8GlCK.js +0 -1
- package/dist/public/assets/settings-setup-view-DFL6DlYS.js +0 -2
- package/dist/public/assets/settings-skills-view-xS569-Kb.js +0 -2
- package/dist/public/assets/settings-slash-commands-view-DrCiayfq.js +0 -1
- package/dist/public/assets/settings-storage-view-CQnaVOt_.js +0 -1
- package/dist/public/assets/settings-subagents-view-DIctUJcE.js +0 -2
- package/dist/public/assets/settings-system-prompt-view-BMDbrFRR.js +0 -1
- package/dist/public/assets/settings-view-8M6sbGiX.js +0 -2
- package/dist/public/assets/store-CxUwqrZ5.js +0 -8
- package/dist/public/assets/task-utils-WAei2PDi.js +0 -1
- package/dist/public/assets/tasks-view-DKyqgGdE.js +0 -1
- package/dist/public/assets/use-browser-overlay-block-z9imTmiZ.js +0 -1
- package/dist/public/assets/use-git-check-B_5Jak2s.js +0 -1
- package/dist/public/assets/use-open-chat-dock-panel-w3hc5Vxn.js +0 -1
- package/dist/public/assets/use-projects-BmhAMgxB.js +0 -2
- package/dist/public/assets/utils-mYB1USG6.js +0 -1
- package/dist/public/assets/web-C6Gm4nQ0.js +0 -1
- package/dist/public/assets/web-DFlyNg8o.js +0 -1
- package/dist/public/assets/web-DlEPs8Xe.js +0 -1
- package/dist/public/assets/web-Gx3xReQH.js +0 -1
- package/dist/public/backgrounds/arctic-tundra.avif +0 -0
- package/dist/public/backgrounds/autumn-leaves.avif +0 -0
- package/dist/public/backgrounds/coastal-cliff.avif +0 -0
- package/dist/public/backgrounds/floating-waterfall.avif +0 -0
- package/dist/public/backgrounds/forest-path.avif +0 -0
- package/dist/public/backgrounds/garden-path.avif +0 -0
- package/dist/public/backgrounds/glow-marsh.avif +0 -0
- package/dist/public/backgrounds/golden-wheat.avif +0 -0
- package/dist/public/backgrounds/moon-desert.avif +0 -0
- package/dist/public/backgrounds/night-pond.avif +0 -0
- package/dist/public/backgrounds/prairie-grassland.avif +0 -0
- package/dist/public/backgrounds/river-winding.avif +0 -0
- package/dist/public/backgrounds/salt-flat.avif +0 -0
- package/dist/public/backgrounds/salt-marsh.avif +0 -0
- package/dist/public/backgrounds/sandy-beach.avif +0 -0
- package/dist/public/backgrounds/snow-river.avif +0 -0
- package/dist/public/backgrounds/sunset-pond.avif +0 -0
- package/dist/public/fonts/plus-jakarta-sans-cyrillic-ext-wght-normal.woff2 +0 -0
- package/dist/public/fonts/plus-jakarta-sans-latin-ext-wght-normal.woff2 +0 -0
- package/dist/public/fonts/plus-jakarta-sans-latin-wght-normal.woff2 +0 -0
- package/dist/public/fonts/plus-jakarta-sans-vietnamese-wght-normal.woff2 +0 -0
|
Binary file
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
|
-
"name": "@libsql/darwin-
|
|
3
|
-
"description": "Prebuilt binary package for `libsql` on `darwin-
|
|
2
|
+
"name": "@libsql/darwin-arm64",
|
|
3
|
+
"description": "Prebuilt binary package for `libsql` on `darwin-arm64`.",
|
|
4
4
|
"version": "0.5.29",
|
|
5
5
|
"os": [
|
|
6
6
|
"darwin"
|
|
7
7
|
],
|
|
8
8
|
"cpu": [
|
|
9
|
-
"
|
|
9
|
+
"arm64"
|
|
10
10
|
],
|
|
11
11
|
"main": "index.node",
|
|
12
12
|
"files": [
|
|
@@ -14,10 +14,10 @@
|
|
|
14
14
|
],
|
|
15
15
|
"neon": {
|
|
16
16
|
"type": "binary",
|
|
17
|
-
"rust": "
|
|
18
|
-
"node": "darwin-
|
|
17
|
+
"rust": "aarch64-apple-darwin",
|
|
18
|
+
"node": "darwin-arm64",
|
|
19
19
|
"platform": "darwin",
|
|
20
|
-
"arch": "
|
|
20
|
+
"arch": "arm64",
|
|
21
21
|
"abi": null
|
|
22
22
|
},
|
|
23
23
|
"author": "Pekka Enberg <penberg@iki.fi>",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{s as i}from"./chunk-QFMPRPBF-Cy-_pFSM.js";import{n as a}from"./QueryClientProvider-CYXTUmYo.js";import{t as o}from"./useQuery-DWt09r77.js";import{U as s}from"./dist-v_MvKS2-.js";import{r as c}from"./store-W78TGOIO.js";import{A as l,_n as u,pi as d,rt as f,sn as p}from"./api-C4ukGdyH.js";import{t as m}from"./utils-CqsIXqSC.js";import{t as h}from"./check-skFQ1X72.js";import{t as g}from"./button-DDaJhJP1.js";import{t as _}from"./use-toast-CKgZ8YeP.js";import{t as v}from"./query-keys-BwswkbMn.js";import{Cn as ee,Rt as y,at as b,er as x,gt as S,it as te,wn as ne,yr as C}from"./index-CoY8DilQ.js";import{t as re}from"./delete-confirm-dialog-D1N86piR.js";var w=e(n(),1),T=t();function E(){return v.account.info()}function ie(e){return e.invalidateQueries({queryKey:E()})}function ae(){let e=(0,T.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:E(),queryFn:f,refetchOnWindowFocus:!1},e[0]=t):t=e[0],o(t)}var D=r(),O=500;function k(e){let t=(0,T.c)(6),{title:n,description:r,children:i}=e,a;t[0]!==r||t[1]!==n?(a=(0,D.jsx)(b,{title:n,description:r,sticky:!1}),t[0]=r,t[1]=n,t[2]=a):a=t[2];let o;return t[3]!==i||t[4]!==a?(o=(0,D.jsxs)(S,{children:[a,i]}),t[3]=i,t[4]=a,t[5]=o):o=t[5],o}function A(){let e=(0,T.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,D.jsxs)(`div`,{className:`flex-1 space-y-2 rounded-xl border bg-card p-5`,children:[(0,D.jsx)(y,{className:`h-4 w-20`}),(0,D.jsx)(y,{className:`h-9 w-28`})]}),e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,D.jsxs)(`div`,{className:`flex gap-4 px-6 pb-6 pt-6`,children:[t,(0,D.jsxs)(`div`,{className:`flex-1 space-y-3 rounded-xl border bg-card p-5`,children:[(0,D.jsx)(y,{className:`h-4 w-24`}),(0,D.jsx)(y,{className:`h-6 w-32`}),(0,D.jsx)(y,{className:`h-4 w-full`})]})]}),e[1]=n):n=e[1],n}function j(){let e=(0,T.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,D.jsxs)(`div`,{className:`flex items-center justify-between gap-4 px-6 py-5`,children:[(0,D.jsxs)(`div`,{className:`flex-1 space-y-1`,children:[(0,D.jsx)(y,{className:`h-5 w-28`}),(0,D.jsx)(y,{className:`h-4 w-64`})]}),(0,D.jsx)(y,{className:`h-9 w-28 shrink-0`})]}),e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,D.jsxs)(`div`,{className:`divide-y divide-table-border`,children:[t,(0,D.jsxs)(`div`,{className:`flex items-center justify-between gap-4 px-6 py-5`,children:[(0,D.jsxs)(`div`,{className:`flex-1 space-y-1`,children:[(0,D.jsx)(y,{className:`h-5 w-36`}),(0,D.jsx)(y,{className:`h-4 w-56`}),(0,D.jsx)(y,{className:`h-4 w-32`})]}),(0,D.jsx)(y,{className:`h-9 w-24 shrink-0`})]})]}),e[1]=n):n=e[1],n}function M(e){let t=(0,T.c)(20),{isPro:n,promptsRemaining:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,D.jsxs)(`div`,{className:m(s.label,`flex items-center gap-2 text-muted-foreground`),children:[(0,D.jsx)(x,{className:`h-4 w-4`}),`Balance`]}),t[0]=i):i=t[0];let a;t[1]!==n||t[2]!==r?(a=(0,D.jsxs)(`div`,{className:`flex-1 space-y-2 rounded-xl border bg-card p-5`,children:[i,(0,D.jsx)(`div`,{className:`flex items-end gap-2`,children:n?(0,D.jsx)(`span`,{className:s.stat,children:`Unlimited`}):(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`span`,{className:s.stat,children:r.toLocaleString()}),(0,D.jsx)(`span`,{className:`${s.caption} mb-1`,children:`prompts remaining`})]})})]}),t[1]=n,t[2]=r,t[3]=a):a=t[3];let o;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,D.jsxs)(`div`,{className:m(s.label,`flex items-center gap-2 text-muted-foreground`),children:[(0,D.jsx)(C,{className:`h-4 w-4`}),`Current Plan`]}),t[4]=o):o=t[4];let c=n?`Unlimited Pro`:`Pay as you go`,l;t[5]===c?l=t[6]:(l=(0,D.jsx)(`span`,{className:s.label,children:c}),t[5]=c,t[6]=l);let u;t[7]===n?u=t[8]:(u=n?(0,D.jsx)(`span`,{className:m(s.compact,`rounded-full bg-primary/10 px-2 py-0.5 font-medium text-primary`),children:`Active`}):null,t[7]=n,t[8]=u);let d;t[9]!==l||t[10]!==u?(d=(0,D.jsxs)(`div`,{className:`flex items-center gap-2`,children:[l,u]}),t[9]=l,t[10]=u,t[11]=d):d=t[11];let f=n?`You have unlimited prompts with no restrictions.`:`Purchase prompts as needed. Upgrade to Pro for unlimited access.`,p;t[12]===f?p=t[13]:(p=(0,D.jsx)(`p`,{className:s.bodyMuted,children:f}),t[12]=f,t[13]=p);let h;t[14]!==d||t[15]!==p?(h=(0,D.jsxs)(`div`,{className:`flex-1 space-y-3 rounded-xl border bg-card p-5`,children:[o,d,p]}),t[14]=d,t[15]=p,t[16]=h):h=t[16];let g;return t[17]!==h||t[18]!==a?(g=(0,D.jsxs)(`div`,{className:`flex gap-4 px-6 pb-6 pt-6`,children:[a,h]}),t[17]=h,t[18]=a,t[19]=g):g=t[19],g}function N(e){let t=(0,T.c)(13),{onPurchasePrompts:n,onUpgradeToPro:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,D.jsxs)(`div`,{className:`space-y-1`,children:[(0,D.jsx)(`span`,{className:s.label,children:`1,000 Prompts`}),(0,D.jsx)(`p`,{className:s.bodyMuted,children:`Top up your balance with 1,000 additional prompts for $5.`})]}),t[0]=i):i=t[0];let a;t[1]===n?a=t[2]:(a=(0,D.jsxs)(`div`,{className:`flex items-center justify-between gap-4 px-6 py-5`,children:[i,(0,D.jsx)(g,{onClick:n,className:`shrink-0`,children:`Top Up Balance`})]}),t[1]=n,t[2]=a);let o,c,l;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,D.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,D.jsx)(C,{className:`h-4 w-4 text-primary`}),(0,D.jsx)(`span`,{className:s.label,children:`Unlimited Pro Plan`})]}),c=(0,D.jsx)(`p`,{className:s.bodyMuted,children:`Unlimited prompts for $100 and lifetime access to Tarsk.`}),l=m(s.bodyMuted,`space-y-0.5`),t[3]=o,t[4]=c,t[5]=l):(o=t[3],c=t[4],l=t[5]);let u;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,D.jsxs)(`li`,{className:`flex items-center gap-1.5`,children:[(0,D.jsx)(h,{className:`h-3 w-3 text-primary`}),`Unlimited prompts`]}),t[6]=u):u=t[6];let d;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,D.jsxs)(`div`,{className:`space-y-1`,children:[o,c,(0,D.jsxs)(`ul`,{className:l,children:[u,(0,D.jsxs)(`li`,{className:`flex items-center gap-1.5`,children:[(0,D.jsx)(h,{className:`h-3 w-3 text-primary`}),`Priority access`]})]})]}),t[7]=d):d=t[7];let f;t[8]===r?f=t[9]:(f=(0,D.jsxs)(`div`,{className:`flex items-center justify-between gap-4 px-6 py-5`,children:[d,(0,D.jsx)(g,{onClick:r,className:`shrink-0`,children:`Purchase`})]}),t[8]=r,t[9]=f);let p;return t[10]!==a||t[11]!==f?(p=(0,D.jsxs)(`div`,{className:`divide-y divide-table-border`,children:[a,f]}),t[10]=a,t[11]=f,t[12]=p):p=t[12],p}function P(){let e=(0,T.c)(41),t=a(),{data:n,isLoading:r,error:o}=ae(),[f,m]=(0,w.useState)(!1),[h,v]=(0,w.useState)(!1),y=i(),b=c(oe).reduce(F,0),x,S;e[0]===o?(x=e[1],S=e[2]):(x=()=>{o&&_({title:`Error`,description:o instanceof Error?o.message:`Failed to load account info`,variant:`destructive`})},S=[o],e[0]=o,e[1]=x,e[2]=S),(0,w.useEffect)(x,S);let C,E;e[3]===t?(C=e[4],E=e[5]):(C=()=>{let e=0,n=function(){if(document.visibilityState!==`visible`)return;let n=Date.now();n-e<O||(e=n,ie(t))};return document.addEventListener(`visibilitychange`,n),window.addEventListener(`focus`,n),()=>{document.removeEventListener(`visibilitychange`,n),window.removeEventListener(`focus`,n)}},E=[t],e[3]=t,e[4]=C,e[5]=E),(0,w.useEffect)(C,E);let P;e[6]===n?.clientReferenceId?P=e[7]:(P=function(){let e=n?.clientReferenceId??``;p(`https://buy.stripe.com/14AcN6feK0Jjbheb2H3Nm03?client_reference_id=${e}`)},e[6]=n?.clientReferenceId,e[7]=P);let I=P,L;e[8]===n?.clientReferenceId?L=e[9]:(L=function(){let e=n?.clientReferenceId??``;p(`https://buy.stripe.com/9B67sMd6CgIh70Y0o33Nm04?client_reference_id=${e}`)},e[8]=n?.clientReferenceId,e[9]=L);let R=L,z;e[10]===Symbol.for(`react.memo_cache_sentinel`)?(z=async function(){v(!0);try{if(await l(),d())try{await u()}catch{}window.close()}catch(e){let t=e;v(!1),m(!1),_({title:`Error`,description:t instanceof Error?t.message:`Failed to delete account`,variant:`destructive`})}},e[10]=z):z=e[10];let se=z,B=n?.plan===`unlimited-pro`,V=r&&n===void 0,H=n===void 0?r:!B,U;e[11]!==n?.promptsRemaining||e[12]!==V||e[13]!==B?(U=(0,D.jsx)(k,{title:`Account`,description:`Manage your Tarsk plan and prompt balance.`,children:V?(0,D.jsx)(A,{}):(0,D.jsx)(M,{isPro:B,promptsRemaining:n?.promptsRemaining??0})}),e[11]=n?.promptsRemaining,e[12]=V,e[13]=B,e[14]=U):U=e[14];let W;e[15]!==I||e[16]!==R||e[17]!==V||e[18]!==H?(W=H?(0,D.jsx)(k,{title:`Add Prompts`,description:`Top up your balance or upgrade to Pro for unlimited access.`,children:V?(0,D.jsx)(j,{}):(0,D.jsx)(N,{onPurchasePrompts:I,onUpgradeToPro:R})}):null,e[15]=I,e[16]=R,e[17]=V,e[18]=H,e[19]=W):W=e[19];let G;e[20]!==y||e[21]!==b?(G=b>0?(0,D.jsxs)(te,{variant:`error`,children:[(0,D.jsxs)(`span`,{className:`flex items-start gap-2`,children:[(0,D.jsx)(ee,{className:`mt-0.5 h-4 w-4 shrink-0`}),(0,D.jsxs)(`span`,{children:[`You have `,b,` workspace`,` `,b===1?`folder`:`folders`,` listed in Storage. Clear`,` `,b===1?`it`:`them`,` first under Storage — deleting your account does not remove those folders.`]})]}),(0,D.jsx)(`div`,{className:`mt-3`,children:(0,D.jsx)(g,{variant:`outline`,size:`sm`,onClick:()=>y(`/settings/storage`),children:`Go to Storage`})})]}):null,e[20]=y,e[21]=b,e[22]=G):G=e[22];let K;e[23]===Symbol.for(`react.memo_cache_sentinel`)?(K=(0,D.jsx)(`p`,{className:s.bodyMuted,children:`This removes the Tarsk database and any logs on this machine and cannot be undone.`}),e[23]=K):K=e[23];let q;e[24]===Symbol.for(`react.memo_cache_sentinel`)?(q=(0,D.jsxs)(g,{variant:`destructive`,onClick:()=>m(!0),children:[(0,D.jsx)(ne,{className:`h-4 w-4`}),`Delete Account`]}),e[24]=q):q=e[24];let J;e[25]===G?J=e[26]:(J=(0,D.jsx)(k,{title:`Delete Account`,description:`Permanently delete the Tarsk database and any logs on this device.`,children:(0,D.jsxs)(`div`,{className:`space-y-4 px-6 pb-6 pt-6`,children:[G,K,q]})}),e[25]=G,e[26]=J);let Y;e[27]!==J||e[28]!==U||e[29]!==W?(Y=(0,D.jsxs)(`div`,{className:`divide-y divide-table-border [&>*]:rounded-none`,children:[U,W,J]}),e[27]=J,e[28]=U,e[29]=W,e[30]=Y):Y=e[30];let X;e[31]===h?X=e[32]:(X=e=>{!e&&!h&&m(!1)},e[31]=h,e[32]=X);let Z;e[33]===Symbol.for(`react.memo_cache_sentinel`)?(Z=()=>void se(),e[33]=Z):Z=e[33];let Q;e[34]!==h||e[35]!==f||e[36]!==X?(Q=(0,D.jsx)(re,{open:f,onOpenChange:X,title:`Delete account?`,description:`This permanently deletes the Tarsk database and any logs on this device. The app will close and you can relaunch it. This action cannot be undone.`,onConfirm:Z,confirming:h,confirmLabel:`Delete Account`,confirmingLabel:`Deleting...`}),e[34]=h,e[35]=f,e[36]=X,e[37]=Q):Q=e[37];let $;return e[38]!==Y||e[39]!==Q?($=(0,D.jsxs)(`div`,{className:`frosted-scrollbar flex h-full min-h-0 flex-col overflow-auto`,children:[Y,Q]}),e[38]=Y,e[39]=Q,e[40]=$):$=e[40],$}function F(e,t){return e+t.threads.length}function oe(e){return e.projects}export{P as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{
|
|
1
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{U as i}from"./dist-v_MvKS2-.js";import{c as a,t as o}from"./utils-CqsIXqSC.js";import{n as s}from"./button-DDaJhJP1.js";import{g as c,h as l,p as u}from"./dist-AbkJBHH5.js";import{a as d,c as ee,i as te,l as ne,n as re,o as ie,r as f,s as ae,t as p,u as m}from"./dist-DfnQ9YJh.js";import{n as oe}from"./use-browser-overlay-block-CO1pUEAZ.js";var h=t(),g=e(n(),1),_=r(),v=`AlertDialog`,[se,ce]=l(v,[m]),y=m(),b=e=>{let{__scopeAlertDialog:t,...n}=e,r=y(t);return(0,_.jsx)(ie,{...r,...n,modal:!0})};b.displayName=v;var x=`AlertDialogTrigger`,S=g.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,i=y(n);return(0,_.jsx)(ee,{...i,...r,ref:t})});S.displayName=x;var C=`AlertDialogPortal`,w=e=>{let{__scopeAlertDialog:t,...n}=e,r=y(t);return(0,_.jsx)(d,{...r,...n})};w.displayName=C;var T=`AlertDialogOverlay`,E=g.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,i=y(n);return(0,_.jsx)(te,{...i,...r,ref:t})});E.displayName=T;var D=`AlertDialogContent`,[le,ue]=se(D),de=u(`AlertDialogContent`),O=g.forwardRef((e,t)=>{let{__scopeAlertDialog:n,children:r,...i}=e,o=y(n),s=g.useRef(null),l=a(t,s),u=g.useRef(null);return(0,_.jsx)(ne,{contentName:D,titleName:k,docsSlug:`alert-dialog`,children:(0,_.jsx)(le,{scope:n,cancelRef:u,children:(0,_.jsxs)(re,{role:`alertdialog`,...o,...i,ref:l,onOpenAutoFocus:c(i.onOpenAutoFocus,e=>{e.preventDefault(),u.current?.focus({preventScroll:!0})}),onPointerDownOutside:e=>e.preventDefault(),onInteractOutside:e=>e.preventDefault(),children:[(0,_.jsx)(de,{children:r}),(0,_.jsx)(I,{contentRef:s})]})})})});O.displayName=D;var k=`AlertDialogTitle`,A=g.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,i=y(n);return(0,_.jsx)(ae,{...i,...r,ref:t})});A.displayName=k;var j=`AlertDialogDescription`,M=g.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,i=y(n);return(0,_.jsx)(f,{...i,...r,ref:t})});M.displayName=j;var fe=`AlertDialogAction`,N=g.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,i=y(n);return(0,_.jsx)(p,{...i,...r,ref:t})});N.displayName=fe;var P=`AlertDialogCancel`,F=g.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,{cancelRef:i}=ue(P,n),o=y(n),s=a(t,i);return(0,_.jsx)(p,{...o,...r,ref:s})});F.displayName=P;var I=({contentRef:e})=>{let t=`\`${D}\` requires a description for the component to be accessible for screen reader users.
|
|
2
2
|
|
|
3
3
|
You can add a description to the \`${D}\` by passing a \`${j}\` component as a child, which also benefits sighted users by adding visible context to the dialog.
|
|
4
4
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ai as e,ci as t,di as n,ii as r,li as i,ri as a,si as o,ui as s}from"./api-C4ukGdyH.js";async function c(t,n,i=!1){return e(`api/threads/${r(t)}/explorer?path=${encodeURIComponent(n)}&recursive=${i}`)}async function l(t,n){return e(`api/threads/${r(t)}/ai-file?path=${encodeURIComponent(n)}`)}async function u(e,t,i){return n(`api/threads/${r(e)}/ai-file`,{path:t,content:i})}async function d(e,t){return a(`api/threads/${r(e)}/explorer?path=${encodeURIComponent(t)}`)}async function f(e,n,i){return t(`api/threads/${r(e)}/explorer`,{path:n,newName:i})}async function p(e,t,n){return i(`api/threads/${r(e)}/explorer/file`,{dirPath:t,name:n})}async function m(e,t,n){let i=new URLSearchParams({dirPath:t,name:n.name});return s(`api/threads/${r(e)}/explorer/upload?${i.toString()}`,n)}async function h(e,t){return o(`api/threads/${r(e)}/explorer/media?path=${encodeURIComponent(t)}`)}async function g(e,t,n){return i(`api/threads/${r(e)}/explorer/folder`,{dirPath:t,name:n})}async function _(e,t){return i(`api/threads/${r(e)}/explorer/open`,{path:t})}async function v(e,t){return i(`api/threads/${r(e)}/explorer/gitignore`,{path:t})}async function y(e,t){return i(`api/threads/${r(e)}/explorer/print-markdown`,{path:t})}export{l as a,_ as c,u as d,m as f,h as i,y as l,g as n,v as o,d as r,c as s,p as t,f as u};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{et as e,q as t,x as n}from"./dist-v_MvKS2-.js";var r=`order`,i=/^(localhost|127\.0\.0\.1)$/i;function a(e){return i.test(e)}function o(e){return!e||e.startsWith(`data:`)||/^https?:\/\//i.test(e)}function s(e,t){let n=e.trim();if(!n||n.startsWith(`data:`)||!/^https?:\/\//i.test(n))return e;let r;try{r=new URL(n)}catch{return e}if(!a(r.hostname))return e;let i;try{i=new URL(t)}catch{return e}return`${i.origin}${r.pathname}${r.search}${r.hash}`}function c(e,t){return o(e)?e:`${t.replace(/\/$/,``)}${e.startsWith(`/`)?e:`/${e}`}`}function l(e){try{let t=new URL(e,`http://localhost`),n=t.searchParams.get(`path`);if(n){let e=n.split(/[/\\]/).pop();if(e)return e}let r=t.pathname.split(`/`).pop();if(r?.includes(`.`))return r}catch{}}var u=`Uncommitted changes`;function d(e,t){let n=Math.max(t,0),r=Math.max(e-n,0);return n>0&&r>0?`uncommitted changes (${r} modified, ${n} untracked)`:n>0?`untracked files (${n})`:`uncommitted changes (${e} file${e===1?``:`s`})`}function f(e,t){let n=d(e,t);return`${n.charAt(0).toUpperCase()}${n.slice(1)}`}function p(e){return e===`changes`||e===`open-pr`||e===`update-pr`||e===`no-pr`||e===`merged-pr`?e:e===!0&&`changes`}function m(e){return typeof e==`number`&&Number.isInteger(e)&&e>0?e:void 0}function h(e){return e===`open-pr`||e===`update-pr`||e===`no-pr`}function g(e){return e===`open-pr`||e===`update-pr`}function _(e){return e===`merged-pr`}function ee(e){switch(e){case`changes`:return u;case`open-pr`:return`Open pull request`;case`update-pr`:return`Unpushed commits on open pull request`;case`no-pr`:return`Committed changes, no pull request yet`;case`merged-pr`:return`Pull request merged`;default:return}}var v=/^(\d{3})\s*:\s*([\s\S]+)$/,te=new Set([`provider returned error`,`error`]);function y(e){let t=e.trim();if(!t)return t;let n=ne(t);if(n)return n;let r=t.match(v);if(r){let e=r[1],t=b(x(r[2]?.trim()??``));if(t)return t;if(e===`429`)return`This model is temporarily rate-limited. Please retry shortly.`}return b(x(t))||t}function ne(e){let t=e.lastIndexOf(`}`);if(t===-1||t>=e.length-1)return;let n=e.slice(t+1).trim();if(!n||n.startsWith(`{`)||n.startsWith(`[`))return;let r=e.slice(0,t+1).trim();if(!v.test(r))return;let i=r.match(v);if(i&&x(i[2]?.trim()??``)!==void 0)return n}function b(e){if(!e||typeof e!=`object`)return;let t=e,n=re(t.metadata);if(n)return n;if(t.error&&typeof t.error==`object`){let e=b(t.error);if(e)return e}if(typeof t.message==`string`){let e=t.message.trim();if(e&&!te.has(e.toLowerCase()))return e}if(t.code===429||t.code===`429`)return`This model is temporarily rate-limited. Please retry shortly.`}function re(e){if(!e||typeof e!=`object`)return;let t=e;if(typeof t.raw==`string`&&t.raw.trim())return t.raw.trim();if(Array.isArray(t.previouserrors))for(let e of t.previouserrors){if(!e||typeof e!=`object`)continue;let t=e.raw;if(typeof t==`string`&&t.trim())return t.trim()}}function x(e){if(e)try{return JSON.parse(e)}catch{return}}var ie=`home.tarsk.io`,S=`tarsk.net`,ae=`Sign in with the account that owns this Tarsk.`,oe=`abcdefghijkmnpqrstuvwxyz23456789`,se=10,ce=[`off`,`starting`,`ready`,`error`];function le(e){return ce.includes(e)}function ue(e){return e.trim().toLowerCase().replace(/:\d+$/,``)}function de(e){return ue(e)===ie}function fe(e){if(e.length!==se)return!1;for(let t of e)if(!oe.includes(t))return!1;return!0}function C(e){let t=ue(e),n=`.${S}`;if(!t.endsWith(n))return null;let r=t.slice(0,-n.length);return fe(r)?r:null}function w(e){return C(e)!==null}function pe(e){return fe(e)?`${e}.${S}`:null}function me(e){let t=pe(e);return t?`https://${t}`:null}var T=function(e){return e.PACKAGE_MANAGER=`tarsk.create-project.packageManager`,e.COMMIT_METHOD=`tarsk.create-project.commitMethod`,e.TEMPLATE_ID=`tarsk.create-project.templateId`,e.CREATE_BRANCH_AFTER_PR=`createBranchAfterPR`,e.CREATE_WORKSPACE_AFTER_PR=`createWorkspaceAfterPR`,e.PRIVATE_REPOSITORY_DEFAULT=`privateRepositoryDefault`,e.NEW_CHAT_ON_NEW_BRANCH=`newChatOnNewBranch`,e.FONT_SCALE=`tarsk.general.fontScale`,e.ACTIVITY_BAR_POSITION=`tarsk.general.activityBarPosition`,e.BRAND_COLOR=`tarsk.general.brandColor`,e.OPEN_WITH_PROGRAM=`tarsk.general.openWithProgram`,e.SERVER_URL=`tarsk.server.url`,e.SERVER_BIND_MODE=`tarsk.general.serverBindMode`,e.HISTORY_COLUMNS=`tarsk.settings.historyColumns`,e.TASK_LIST_VIEW_MODE=`tarsk.tasks.viewMode`,e.AUTOMATION_LIST_VIEW_MODE=`tarsk.automations.viewMode`,e.LAST_TASK_TAG=`tarsk.tasks.lastTag`,e}({}),E=function(e){return e.MESSAGE_HISTORY=`chat_message_history`,e.BASH_COMMAND_DURATIONS=`tarsk.bash-command-durations`,e.SKILL_CATALOG_PREFIX=`tarsk.skills.catalog.`,e.SKILL_SOURCE_SELECTION=`tarsk.skills.selectedSource`,e.PROJECT_SESSION_OPEN_PREFIX=`tarsk.project-session-open.`,e}({});function D(e){return typeof localStorage>`u`?null:localStorage.getItem(e)}function O(e,t){typeof localStorage<`u`&&localStorage.setItem(e,t)}function he(e){return typeof sessionStorage>`u`?null:sessionStorage.getItem(e)}function k(e,t){typeof sessionStorage<`u`&&sessionStorage.setItem(e,t)}function ge(e=`npm`){return D(T.PACKAGE_MANAGER)??e}function _e(e){O(T.PACKAGE_MANAGER,e)}function ve(e=`pull-request`){return D(T.COMMIT_METHOD)??e}function ye(e){O(T.COMMIT_METHOD,e)}function be(e=``){return D(T.TEMPLATE_ID)??e}function xe(e){O(T.TEMPLATE_ID,e)}function Se(e=!1){let t=D(T.CREATE_BRANCH_AFTER_PR);return t===null?e:t===`true`}function Ce(e){O(T.CREATE_BRANCH_AFTER_PR,e.toString())}function we(e=!1){let t=D(T.CREATE_WORKSPACE_AFTER_PR);return t===null?e:t===`true`}function Te(e){O(T.CREATE_WORKSPACE_AFTER_PR,e.toString())}function Ee(e=!1){let t=D(T.PRIVATE_REPOSITORY_DEFAULT);return t===null?e:t===`true`}function De(e){O(T.PRIVATE_REPOSITORY_DEFAULT,e.toString())}function Oe(e=!1){let t=D(T.NEW_CHAT_ON_NEW_BRANCH);return t===null?e:t===`true`}function ke(e){O(T.NEW_CHAT_ON_NEW_BRANCH,e.toString())}function Ae(){let e=he(E.MESSAGE_HISTORY);return e?JSON.parse(e):[]}function je(e){let t=Ae();e.trim()&&t[t.length-1]!==e&&(t.push(e),k(E.MESSAGE_HISTORY,JSON.stringify(t)))}function Me(e){return typeof sessionStorage>`u`?null:sessionStorage.getItem(e)}function Ne(e,t){typeof sessionStorage<`u`&&sessionStorage.setItem(e,t)}function Pe(e=`default`){return Me(E.SKILL_SOURCE_SELECTION)??e}function Fe(e){Ne(E.SKILL_SOURCE_SELECTION,e)}function A(e){return`${E.SKILL_CATALOG_PREFIX}${e}`}function Ie(e){let t=Me(A(e));if(!t)return null;try{return JSON.parse(t)}catch{return null}}function Le(e,t){Ne(A(e),JSON.stringify(t))}function Re(e){typeof sessionStorage<`u`&&sessionStorage.removeItem(A(e))}var ze=`tarsk.skills.customSources`;function Be(){if(typeof localStorage>`u`)return[];let e=localStorage.getItem(ze);if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>typeof e==`object`&&!!e&&typeof e.id==`string`&&typeof e.title==`string`&&typeof e.url==`string`):[]}catch{return[]}}function Ve(){typeof localStorage<`u`&&localStorage.removeItem(ze)}function He(){typeof localStorage<`u`&&(localStorage.removeItem(`tarsk.general.conversationLevel`),localStorage.removeItem(`tarsk.general.imageBackground`),localStorage.removeItem(`tarsk.general.wallpaperMode`),localStorage.removeItem(`tarsk.general.wallpaperColor`),localStorage.removeItem(`tarsk.general.frostedPanelOpacity`))}typeof localStorage<`u`&&He();var Ue=new Set([`top`,`left`,`right`,`bottom`]);function We(e){return Ue.has(e)}function Ge(e=`top`){let t=D(T.ACTIVITY_BAR_POSITION);return t!==null&&We(t)?t:e}function Ke(e){O(T.ACTIVITY_BAR_POSITION,e)}function qe(e){return e===`left`||e===`right`}function Je(e){switch(e){case`top`:return`bottom`;case`bottom`:return`top`;case`left`:return`right`;case`right`:return`left`}}function Ye(e=100){let t=D(T.FONT_SCALE);if(t!==null){let e=Number(t);if(Number.isFinite(e)&&e>=50&&e<=300)return e}return e}function Xe(e){O(T.FONT_SCALE,String(e))}var Ze=/^#[0-9a-fA-F]{6}$/,Qe=`#82c309`;function $e(e=Qe){let t=D(T.BRAND_COLOR);return t!==null&&Ze.test(t)?t:e}function et(e){Ze.test(e)&&O(T.BRAND_COLOR,e.toLowerCase())}var tt=new Set([`summary`,`list`,`kanban`]);function nt(e){return e===`automations`?T.AUTOMATION_LIST_VIEW_MODE:T.TASK_LIST_VIEW_MODE}function rt(e){let t=D(nt(e));return t!==null&&tt.has(t)?t:null}function it(e=`tasks`,t=`summary`){let n=rt(e);if(n!==null)return e===`automations`&&n===`kanban`?`list`:n;if(e===`automations`){let e=rt(`tasks`)??t;return e===`kanban`?`list`:e}return t}function at(e,t){let n=e===`automations`&&t===`kanban`?`list`:t;O(nt(e),n)}function ot(){return D(T.LAST_TASK_TAG)}function st(e){O(T.LAST_TASK_TAG,e)}function ct(e=`VS Code`){return D(T.OPEN_WITH_PROGRAM)??e}function lt(e){O(T.OPEN_WITH_PROGRAM,e)}function ut(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.fetchedAt==`number`&&(t.serverBindMode===`local`||t.serverBindMode===`network`)&&Array.isArray(t.networkAddresses)&&t.networkAddresses.every(e=>typeof e==`string`)}function dt(){let e=D(T.SERVER_BIND_MODE);if(!e)return null;try{let t=JSON.parse(e);return ut(t)?t:null}catch{return null}}function ft(e){O(T.SERVER_BIND_MODE,JSON.stringify({...e,fetchedAt:e.fetchedAt??Date.now()}))}var pt=`641`;function mt(){return typeof window>`u`?null:window.Capacitor?.getPlatform?.()??null}function ht(){return M()&&mt()===`ios`}function j(){return D(T.SERVER_URL)}function gt(e){O(T.SERVER_URL,e)}function _t(e){try{return new URL(e).hostname}catch{return``}}function vt(e){let t=e.trim();if(!t)return``;let n=/^https?:\/\//i.test(t)?t:`https://${t}`;try{let e=new URL(n);if(de(e.hostname))return``;if(w(e.hostname)){let t=C(e.hostname);return t?me(t)??``:``}}catch{return``}if(/^https?:\/\//i.test(t))try{let e=new URL(t);return e.protocol!==`http:`&&e.protocol!==`https:`||!e.hostname?``:e.origin}catch{return``}let r=(t.split(`/`)[0]??``).replace(/:\d+$/,``);return r?`http://${r}:${pt}`:``}function M(){if(typeof window>`u`)return!1;if(window.Capacitor?.isNativePlatform?.())return!0;let e=window.location.protocol;return e===`capacitor:`||e===`ionic:`||e===`file:`}function yt(){let e=j();if(e){let t=_t(e);if(t)return t}return M()?``:document.location.hostname}async function bt(e){try{return(await fetch(`${e.replace(/\/$/,``)}/health`,{method:`GET`})).ok}catch{return!1}}function xt(e){let t=vt(e);if(t){if(M()){gt(t),window.location.reload();return}window.location.assign(t)}}function N(){return typeof window<`u`&&`__electrobunWebviewId`in window}function St(){return typeof document<`u`&&document.location.port===`8100`}function Ct(){if(typeof document>`u`)return null;let{protocol:e,hostname:t,port:n,host:r,origin:i}=document.location;if(e!==`http:`&&e!==`https:`)return null;if(i&&t&&w(t)){let e=C(t);if(e)return me(e)??i}return i||`${e}//${r??(n?`${t}:${n}`:t)}`}function wt(){if(typeof document>`u`)return`http://localhost:641`;let{hostname:e,port:t}=document.location;return t===`8100`?`http://${e}:462`:Ct()||`http://${e}:641`}function P(){if(N()){let e=Ct();if(e)return e}if(!M())return wt();let e=j();return e?e.replace(/\/$/,``):wt()}function F(e){let t=e.startsWith(`/`)?e:`/${e}`;return`${P()}${t}`}function I(e){if(!e)return`Unknown error`;if(typeof e.message==`string`&&e.message.trim())return e.message.trim();if(typeof e.error==`string`)return e.error.trim()||`Unknown error`;if(e.error&&typeof e.error==`object`){let t=e.error.message;if(typeof t==`string`&&t.trim())return t.trim();let n=e.error.details;return typeof n==`string`&&n.trim()?n.trim():`Unknown error`}return`Unknown error`}async function L(e){try{return I(await e.json())}catch{}return e.statusText||`Unknown error`}function R(e,t,n){let r=Error(e);return n?.error&&typeof n.error==`object`&&(r.details=n.error.details,r.code=n.error.code),r}async function Tt(e){let t;try{t=await e.json()}catch{}throw R(I(t)||e.statusText||`Unknown error`,e,t)}async function z(e,t,n,r){let i=await fetch(F(t),{...r,method:e,headers:{"Content-Type":`application/json`,...r?.headers},body:n?JSON.stringify(n):void 0});if(!i.ok){let e=await L(i);throw Error(e)}return i}async function Et(e,t){let n=await fetch(F(e),{...t,method:`GET`});if(!n.ok){let e=await L(n);throw Error(e)}return n.blob()}async function B(e,t){let n=await fetch(F(e),{...t,method:`GET`});if(!n.ok){let e=await L(n);throw Error(e)}return n.json()}async function V(e,t,n){return(await z(`POST`,e,t,n)).json()}async function Dt(e,t,n){return(await z(`POST`,e,t,n)).blob()}async function Ot(e,t,n){let r=await fetch(F(e),{...n,method:`POST`,headers:{"Content-Type":`application/octet-stream`,...n?.headers},body:t});if(!r.ok){let e=await L(r);throw Error(e)}return r.json()}async function H(e,t,n){return(await z(`PUT`,e,t,n)).json()}async function U(e,t,n){return(await z(`PATCH`,e,t,n)).json()}async function kt(e,t,n){return(await z(`PUT`,e,t,n)).body}async function W(e,t){let n=await fetch(F(e),{...t,method:`DELETE`});if(!n.ok){let e=await L(n);throw Error(e)}if(n.status!==204)return n.json()}async function At(e,t){let n=await fetch(F(e),{...t,method:`DELETE`});if(!n.ok){let e=await L(n);throw Error(e)}return n.body}async function G(e,t,n){let r=await fetch(F(e),{...n,method:`POST`,headers:{"Content-Type":`application/json`,...n?.headers},body:t?JSON.stringify(t):void 0,signal:n?.signal});return r.ok||await Tt(r),r.body}async function jt(e,t){let n=await fetch(F(e),{...t,method:`GET`});return n.ok||await Tt(n),n.body}async function K(e,t,n){let r=await fetch(F(e),{...n,method:`POST`,headers:{"Content-Type":`application/json`,...n?.headers},body:t?JSON.stringify(t):void 0});if(!r.ok){let e;try{e=await r.json()}catch{}throw R(I(e)||r.statusText||`Unknown error`,r,e)}return r.json()}async function Mt(e,t,n){let r=await fetch(F(e),{...n,method:`PUT`,headers:{"Content-Type":`application/json`,...n?.headers},body:t?JSON.stringify(t):void 0});if(!r.ok){let e;try{e=await r.json()}catch{}throw R(I(e)||r.statusText||`Unknown error`,r,e)}return r.json()}function q(...e){return e.map(e=>encodeURIComponent(String(e))).join(`/`)}var J=n(`gitops.ttl-cache`),Y=new class{cache=new Map;inFlightRequests=new Map;generations=new Map;async get(e,t,n){let r=e.startsWith(`unified-git-status-`),i=r?performance.now():0,a=this.inFlightRequests.get(e);if(a)return r&&J.debug(`in-flight-reuse`,{key:e}),a;let o=this.cache.get(e);if(o&&Date.now()<o.expires){if(r){let t=Math.round(performance.now()-i);J.debug(`cache hit`,{key:e,duration:t})}return o.data}r&&J.debug(`cache miss, fetching`,{key:e});let s=this.generations.get(e)??0,c=t().then(t=>{if((this.generations.get(e)??0)===s){if(this.cache.set(e,{data:t,expires:Date.now()+n}),r){let t=Math.round(performance.now()-i);J.debug(`stored in cache`,{key:e,duration:t})}}else r&&J.debug(`skipped stale cache write`,{key:e});return t}).finally(()=>{this.inFlightRequests.get(e)===c&&this.inFlightRequests.delete(e)});return this.inFlightRequests.set(e,c),c}getSync(e){let t=this.cache.get(e);if(t&&Date.now()<t.expires)return t.data}bumpGeneration(e){this.generations.set(e,(this.generations.get(e)??0)+1)}invalidate(e){this.cache.delete(e),this.inFlightRequests.delete(e),this.bumpGeneration(e)}invalidatePattern(e){let t=[];for(let n of this.cache.keys())e.test(n)&&t.push(n);for(let n of this.inFlightRequests.keys())e.test(n)&&!t.includes(n)&&t.push(n);for(let e of t)this.cache.delete(e),this.inFlightRequests.delete(e),this.bumpGeneration(e)}clear(){for(let e of new Set([...this.cache.keys(),...this.inFlightRequests.keys(),...this.generations.keys()]))this.bumpGeneration(e);this.cache.clear(),this.inFlightRequests.clear()}};function Nt(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.rel=`noopener`,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)}function Pt(e,t=`image/png`){let n=atob(e),r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);return new Blob([r],{type:t})}function Ft(e){let t=e.indexOf(`,`),n=e.slice(0,t);return Pt(e.slice(t+1),n.match(/^data:([^;]+)/)?.[1]??`image/png`)}async function It(e){if(e.imageData)return Pt(e.imageData);if(e.imageUrl){if(e.imageUrl.startsWith(`data:`))return Ft(e.imageUrl);let t=c(e.imageUrl,P()),n=await fetch(t);if(!n.ok)throw Error(`Failed to fetch image: ${n.status}`);return n.blob()}throw Error(`imageUrl or imageData is required`)}function Lt(e){return!e.imageUrl||o(e.imageUrl)?e:{...e,imageUrl:c(e.imageUrl,P())}}async function Rt(e){let t=e.filename??`generated-image-${Date.now()}.png`;try{return Nt(await It(e),t),{path:t}}catch{if(!e.imageUrl||e.imageUrl.startsWith(`data:`))throw Error(`imageUrl or imageData is required`);let n=document.createElement(`a`);return n.href=e.imageUrl,n.download=t,n.target=`_blank`,n.rel=`noopener noreferrer`,document.body.appendChild(n),n.click(),document.body.removeChild(n),{path:t}}}async function zt(e){let t=await It(e);if(!navigator.clipboard?.write)throw Error(`Clipboard API not available`);let n=t.type||`image/png`,r=t.type?t:new Blob([t],{type:n});await navigator.clipboard.write([new ClipboardItem({[n]:r})])}async function Bt(e){return N()?V(`api/image/save`,Lt(e)):Rt(e)}async function Vt(e){if(N()){await V(`api/image/clipboard`,Lt(e));return}await zt(e)}function Ht(e){let t=e.trim().toLowerCase();return t===`load failed`||t===`stream ended without a completion frame`||t.includes(`failed to fetch`)||t.includes(`network error`)||t.includes(`network connection was lost`)||t.includes(`networkrequestfailed`)||t.includes(`networkrequest failed`)||t.includes(`socket is not connected`)}function Ut(e){if(e instanceof Error&&`code`in e&&typeof e.code==`string`)return e.code}function Wt(e){if(Ut(e)===`THREAD_BUSY`)return!0;if(!(e instanceof Error))return!1;let t=e.message.toLowerCase();return t.includes(`already processing a message`)||t.includes(`already being processed`)||t.includes(`multiple chat windows are processing`)}function Gt(e,t){return Wt(e)?t?.trim()?!0:e instanceof Error&&!e.message.toLowerCase().includes(`multiple chat windows`):!1}var Kt=50;function qt(e,t,n,r,i){let a=e.getReader(),o=!1;function s(){o=!0,a.cancel().catch(()=>{})}let c=new TextDecoder,l=``,u=0;function d(e){let t=e.content?.trim();if(t)return y(t);let n=e.error?.message?.trim();if(n)return y(n);let r=e.message?.trim();return r?y(r):`Unknown error`}function f(e){if(!e)return!1;let t=e.trim();return t.length>200?!1:[/^Cannot read properties/i,/^Error:/i,/^TypeError:/i,/^ReferenceError:/i,/^SyntaxError:/i,/^failed to/i,/^error:/i,/^forbidden/i,/^unauthorized/i].some(e=>e.test(t))}async function p(){u+=1,!(u<Kt)&&(u=0,await new Promise(e=>{setTimeout(e,0)}))}async function m(e){return e.type===`ping`?`continue`:e.type===`error`?(r(d(e)),n(),`stop`):e.type===`message`?(i?.({role:e.role??`assistant`,content:e.content??``,isThinking:e.isThinking}),`continue`):e.type===`complete`?(n(),`stop`):e.type===`result`&&f(e.content)?(r(y(e.content??`Unknown error`)),n(),`stop`):(t(e),await p(),`continue`)}async function h(){if(!l.trim())return`continue`;try{return await m(JSON.parse(l))}catch{return l.trim()&&t({type:`result`,content:l}),`continue`}}async function g(e){let t=e.trim();if(!t)return`continue`;try{return await m(JSON.parse(t))}catch{return`continue`}}async function _(){return o||await h()===`stop`?`stop`:(r(`Stream ended without a completion frame`),n(),`stop`)}async function ee(e){l+=c.decode(e,{stream:!0});let t=l.split(`
|
|
2
|
+
`);l=t.pop()??``;for(let e of t)if(o||await g(e)===`stop`)return`stop`;return`continue`}async function v(){try{for(;!o;){let{done:e,value:t}=await a.read();if(e||o){e&&await _();break}if(await ee(t)===`stop`)return}}catch(e){o||(r(e instanceof Error?e.message:`Stream error`),n())}}return v(),s}var Jt=n(`gitops.api`);async function Yt(e,t=!1,n=!1){let r=new URLSearchParams;t&&r.set(`fresh`,`true`),n&&r.set(`asyncRefresh`,`true`);let i=r.toString(),a=i?`api/git/unified-status/${q(e)}?${i}`:`api/git/unified-status/${q(e)}`,o=performance.now();Jt.debug(`getUnifiedGitStatus start`,{threadId:e,fresh:t});try{return await B(a)}finally{let n=Math.round(performance.now()-o);Jt.debug(`getUnifiedGitStatus end`,{threadId:e,fresh:t,duration:n})}}async function Xt(e,t,n){return(await V(`api/git/generate-commit-message/${q(e)}`,{model:t,provider:n})).message}async function Zt(e,t){await V(`api/git/commit/${q(e)}`,{message:t})}async function Qt(e){await V(`api/git/push/${q(e)}`)}async function $t(e){await V(`api/git/pull/${q(e)}`)}async function en(e){return V(`api/git/sync-branch/${q(e)}`,{})}async function tn(e,t,n,r){return V(`api/git/generate-pr-info/${q(e)}`,{model:t,provider:n,baseBranch:r})}async function nn(e,t,n,r){return V(`api/git/create-pr/${q(e)}`,{title:t,description:n,baseBranch:r})}async function rn(e){await V(`api/git/fetch/${q(e)}`)}async function an(e,t,n){return V(`api/git/create-branch/${q(e)}`,{baseBranch:t,branchName:n})}async function on(e,t){return V(`api/git/revert-file/${q(e)}`,{filePath:t})}async function sn(e,t=50){return(await B(`api/git/log/${q(e)}?limit=${t}`)).commits}async function cn(e){return B(`api/git/pr-status/${q(e)}`)}async function ln(e,t,n,r){return V(`api/git/create-repo/${q(e)}`,{repoName:t,description:n,isPrivate:r})}async function un(e,t){return V(`api/git/checkpoint/${q(e)}`,{messageId:t})}async function dn(e,t){return V(`api/git/checkpoint-restore/${q(e)}`,{checkpointRef:t})}async function fn(e){return B(`api/git/diff/${q(e)}`)}async function pn(e,t,n){return Et(`api/git/media/${q(e)}?path=${encodeURIComponent(t)}&version=${n}`)}async function mn(e){return V(`api/git/cleanup-deleted-branches/${q(e)}`)}async function hn(e){return Y.get(`workspace-changes-${e}`,async()=>B(`api/git/workspace-changes/${q(e)}`),1e4)}async function gn(){return(await B(`api/skills/popular`)).skills??[]}async function _n(){return(await B(`api/skills/sources`)).sources??[]}async function vn(e){return(await B(`api/skills/catalog?${new URLSearchParams({sourceId:e}).toString()}`)).skills??[]}async function yn(e,t){return V(`api/skills/sources/verify`,{title:e,url:t})}async function bn(e,t,n){return H(`api/skills/sources/${q(e)}`,{title:t,url:n})}async function xn(e){await W(`api/skills/sources/${q(e)}`)}async function Sn(e){return(await V(`api/skills/sources/import`,{sources:e})).sources??[]}async function Cn(e,t){return B(`api/skills/catalog/files?${new URLSearchParams({sourceId:e,skillId:t}).toString()}`)}async function wn(e,t,n){return B(`api/skills/catalog/file?${new URLSearchParams({sourceId:e,skillId:t,relativePath:n}).toString()}`)}async function Tn(){return(await B(`api/agents/popular`)).agents??[]}async function En(){return(await B(`api/slash-commands/popular`)).commands??[]}async function Dn(e,t,n,r,i){return V(`api/threads/${q(e)}/ai-files/github-folder`,{gitHubRepo:t,gitHubFolder:n,destPath:r,gitHubRef:i})}async function On(e,t,n,r){return V(`api/threads/${q(e)}/ai-files/catalog-skill`,{sourceId:t,skillId:n,destPath:r})}var kn=n(`gitops.api`),X=class extends Error{constructor(){super(`No prompts remaining`),this.name=`EmptyBalanceError`}},An=50;async function jn(){let{plan:e,promptsRemaining:t}=await qn();return e===`unlimited-pro`?{isEmpty:!1,isLow:!1,promptsRemaining:-1}:{isEmpty:t<=0,isLow:t>0&&t<=An,promptsRemaining:t}}var Mn=null,Z=!1;function Nn(e){Mn=e}function Pn(e){Z||(Z=!0,Mn?.(e))}async function Fn(){return B(`api/scaffold/templates`)}async function In(){return(await B(`api/scaffold/check-vp`)).installed}async function Ln(){return V(`api/scaffold/install-vp`,{})}async function Rn(e,t,n,r){return G(`api/scaffold`,{projectName:e,templateId:t,packageManager:n},{signal:r})}async function zn(){return Y.get(`providers`,async()=>B(`api/providers`),6e4)}function Bn(e){return`${P()}/api/providers/${q(e)}/logo`}function Vn(e){return`https://models.tarsk.io/svg/${q(e)}.svg`}async function Hn(e){return Y.get(`provider-credits-${e}`,async()=>B(`api/providers/${q(e)}/credits`),3e4)}async function Un(){return(await B(`api/providers/openrouter/oauth/start`)).url}async function Wn(e,t){await V(`api/providers/keys`,{providerName:e,apiKey:t}),Y.invalidate(`providers`)}async function Gn(e){await V(`api/providers/env`,{values:e}),Y.invalidate(`providers`)}function Q(e){return typeof window>`u`?!1:window.open(e,`_blank`,`noopener,noreferrer`)!==null}async function Kn(e){if(typeof window<`u`&&!N()){Q(e);return}try{await V(`api/providers/open-external`,{url:e})}catch(t){if(Q(e))return;throw t instanceof Error?t:Error(`Failed to open URL`)}}async function qn(){return B(`api/account/info`)}async function Jn(){return V(`api/account/delete`,{})}async function Yn(){return V(`api/account/quit`,{})}async function Xn(){return B(`api/account/spend`)}async function Zn(){return B(`api/account/statistics`)}async function Qn(){return W(`api/account/statistics`)}async function $n(){return B(`api/account/settings`)}async function er(){return B(`api/slack/settings`)}async function tr(){await W(`api/logs`)}async function nr(e){return jt(`api/logs/stream`,e)}async function rr(e){try{await V(`api/logs`,e)}catch(e){kn.debug(`Failed to post client log entry`,e)}}async function ir(){return B(`api/slack/manifest`)}async function ar(e){return H(`api/slack/tokens`,e)}async function or(){await W(`api/slack/tokens`)}async function sr(e){return V(`api/slack/bindings`,e)}async function cr(e,t){await W(`api/slack/bindings/${q(e)}/${q(t)}`)}async function lr(e){return H(`api/account/settings`,e)}async function ur(){return B(`api/account/remote-machines`)}async function dr(e){return K(`api/account/remote-machines`,{address:e})}async function fr(e,t){return U(`api/account/remote-machines/${q(e)}`,{machineName:t})}async function pr(e){return W(`api/account/remote-machines/${q(e)}`)}async function mr(){return B(`api/voice-model/status`)}async function hr(e,t){return(await V(`api/voice-model/process-transcript`,{text:e,threadId:t?.threadId,provider:t?.provider,model:t?.model})).text}async function gr(){return Y.get(`available-programs`,async()=>(await B(`api/programs`)).programs??[],3e5)}async function _r(){return(await B(`api/processes`)).processes}async function vr(e){await V(`api/processes/${q(e)}/kill`)}async function yr(){return Y.get(`processing-threads`,async()=>{let e=await B(`api/threads/processing`);return{processingThreadIds:e.processingThreadIds??[],processingRuns:e.processingRuns??[],unavailableThreadIds:e.unavailableThreadIds??[]}},0)}async function br(e){let t=new URLSearchParams({since:e.since});return e.ids&&t.set(`ids`,e.ids),Y.get(`processing-roster:${t.toString()}`,async()=>(await B(`api/conversations/processing-roster?${t.toString()}`)).conversations??[],0)}async function xr(){return B(`api/git/auth-status`)}async function Sr(){return Y.get(`git-user`,async()=>{try{let e=await B(`api/git/user`);return{name:e.name??``,email:e.email??``}}catch{return{name:``,email:``}}},6e5)}async function Cr(){return(await Sr()).name}async function wr(){return Y.get(`projects`,async()=>{let t=await B(`api/projects`),n=Array.isArray(t)?t:t.projects??[],r=Array.isArray(t)?null:t.cloneRootPath??null;return{projects:(n||[]).map(t=>{let n=t;return{projectId:n.projectId??n.id,name:n.name,gitUrl:n.gitUrl,projectPath:n.projectPath??n.path,threads:n.threads??[],commands:n.commands??[],setupScript:n.setupScript,runCommand:n.runCommand,planPrompt:n.planPrompt,testPrompt:n.testPrompt,reviewPrompt:n.reviewPrompt,customSystemPrompt:n.customSystemPrompt,useCustomSystemPrompt:!!n.useCustomSystemPrompt,allowAllCommands:n.allowAllCommands!==!1,allowedCommandPatterns:n.allowedCommandPatterns??[],defaultChatMode:e(n.defaultChatMode)?n.defaultChatMode:void 0,disabledTools:n.disabledTools??void 0,useBuiltInBrowser:n.useBuiltInBrowser!==!1,projectIcon:n.projectIcon,tasksModifiedCount:Number(n.tasksModifiedCount)||0,type:n.type===`bot`?`bot`:`standard`,builtIn:n.builtIn===!0}}).map(e=>{let t=(e.threads||[]).map(e=>{let t=e,n=t.threadId??t.id;return{threadId:n,title:t.title??n,path:t.path??``,currentBranch:t.currentBranch??``,remoteMachineId:t.remoteMachineId,remoteMachineName:t.remoteMachineName,remotePublicUrl:t.remotePublicUrl,remoteUnavailable:t.remoteUnavailable===!0,currentConversationId:t.currentConversationId,chatTitles:t.chatTitles,conversationModels:t.conversationModels,hasUnreadAutomatedChat:t.hasUnreadAutomatedChat===!0,isSelected:!!t.isSelected,model:t.model??void 0,modelProvider:t.modelProvider??void 0,gitStatusDot:p(t.gitStatusDot),prNumber:m(t.prNumber)}});return{...e,threads:t}}),cloneRootPath:r}},3e4)}async function Tr(){let e=await B(`api/projects/remote-snapshots`);return(Array.isArray(e.snapshots)?e.snapshots:[]).map(function(e){let t=e;return{threadId:t.threadId??``,remoteMachineName:t.remoteMachineName,remoteUnavailable:t.remoteUnavailable===!0,currentBranch:t.currentBranch??``,gitStatusDot:t.gitStatusDot===void 0?void 0:p(t.gitStatusDot),prNumber:t.prNumber===null?null:m(t.prNumber),currentConversationId:t.currentConversationId===null?null:t.currentConversationId,chatTitles:t.chatTitles===null?null:t.chatTitles,conversationModels:t.conversationModels===null?null:t.conversationModels,model:t.model===null?null:t.model??void 0,modelProvider:t.modelProvider===null?null:t.modelProvider??void 0,hasUnreadAutomatedChat:t.hasUnreadAutomatedChat===!0}})}async function Er(){return B(`api/projects/storage-free`)}async function Dr(e){await V(`api/projects/${q(e)}/tasks/clear-modifications`)}async function Or(e,t,n){return G(`api/projects`,{gitUrl:e,commitMethod:t},{signal:n})}async function kr(e,t){await V(`api/projects/git-auth/${encodeURIComponent(e)}`,t)}async function Ar(e){return G(`api/projects/open-folder`,{},{signal:e})}async function jr(e,t){return G(`api/projects/open-path`,{path:e},{signal:t})}async function Mr(e,t){return G(`api/projects/new-folder`,{projectName:e},{signal:t})}async function Nr(e,t){return G(`api/projects/new-bot`,{projectName:e},{signal:t})}function Pr(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{let e=typeof r.result==`string`?r.result:``,n=e.indexOf(`,`);t(n>=0?e.slice(n+1):e)},r.onerror=()=>n(r.error),r.readAsDataURL(e)})}async function Fr(e,t,n,r){return G(`api/projects/from-zip`,{data:await Pr(e),name:t,overrideProjectId:n},{signal:r})}async function Ir(e){return Y.get(`project-${e}`,async()=>{let t=await B(`api/projects/${q(e)}`);return{...t,projectPath:t.projectPath??t.path}},3e4)}async function Lr(e){return B(`api/projects/${q(e)}/env-vars`)}async function Rr(e){return(await B(`api/projects/${q(e)}/window-state`)).state}async function zr(e,t){await Mt(`api/projects/${q(e)}/window-state`,{state:t})}async function Br(e,t,n){return V(`api/projects/${q(e)}/replace-unique-text`,{oldText:t,newText:n})}async function Vr(e,t){await H(`api/projects/${q(e)}/env-vars`,{vars:t})}async function Hr(e){await W(`api/projects/${q(e)}`),Y.invalidate(`projects`)}function Ur(e){Y.invalidate(`projects`),e&&Y.invalidate(`project-${e}`)}async function Wr(e,t,n){return G(`api/threads`,{projectId:e,title:t,branchName:n?.branchName,sourceThreadId:n?.sourceThreadId,remoteMachineId:n?.remoteMachineId},{signal:n?.signal})}async function Gr(e,t){let n=await At(`api/threads/${q(t)}?stream=true`);return Y.invalidate(`projects`),n}async function Kr(e,t){await U(`api/threads/${q(e)}`,t),Y.invalidate(`thread-${e}`),(`model`in t||`modelProvider`in t||`chatTitles`in t||`diffComments`in t)&&Y.invalidate(`projects`)}async function qr(e,t,n){return(await V(`api/threads/${q(e)}/generate-title`,{prompt:t,provider:n?.provider,model:n?.model})).title}async function Jr(e,t){return V(`api/threads/${q(e)}/fix-comments`,{comments:t})}async function Yr(e,t){await V(`api/threads/${q(t)}/select`)}function Xr(e,t){let n=new URLSearchParams;t&&n.set(`conversationId`,t),n.set(`events`,`recent`);let r=n.toString(),i=`api/threads/${q(e)}/messages`;return r.length>0?`${i}?${r}`:i}async function Zr(e,t){return{threadId:e,messages:await B(Xr(e,t))}}async function Qr(e,n,r=1,i=t){let a=new URLSearchParams({offset:String(r),limit:String(i)});return B(`api/threads/${q(e)}/observations/${q(n)}?${a}`)}async function $r(e){return(await B(`api/threads/${q(e)}/conversation-folder-path`)).path}async function ei(e,t,n,r=[],i,a,o,s,c,l,u,d,f,p,m){i?.throwIfAborted();let{isEmpty:h,isLow:g,promptsRemaining:_}=await jn();if(i?.throwIfAborted(),h)throw new X;return g?Pn(_):Z=!1,G(`api/chat`,{threadId:e,content:t,model:n,provider:a,planMode:o,ralphMode:s,orchestrateMode:u,autoRoute:d,checkpointRef:c,conversationId:l,goal:f,idempotencyKey:m,perfTraceId:p?.traceId,perfSubmitMs:p?.submitMs,attachments:r.map(e=>({name:e.fileName,content:e.content.split(`,`)[1]||e.content,size:typeof e.size==`number`?e.size:0,mimeType:e.mimeType||`application/octet-stream`}))},{signal:i})}async function ti(e,t,n,r=[],i,a,o,s,c){let{isEmpty:l,isLow:u,promptsRemaining:d}=await jn();if(l)throw new X;return u?Pn(d):Z=!1,V(`api/chat`,{threadId:e,content:t,model:n,provider:i,planMode:a,ralphMode:o,orchestrateMode:s,autoRoute:c,runInBackground:!0,attachments:r.map(e=>({name:e.fileName,content:e.content.split(`,`)[1]||e.content,size:typeof e.size==`number`?e.size:0,mimeType:e.mimeType||`application/octet-stream`}))})}async function ni(e,t,n,r,i,a){await V(`api/chat/${q(e)}/steer`,{messageId:t,content:n,conversationId:r,model:i,attachments:a.map(e=>({name:e.fileName,content:e.content.split(`,`)[1]||e.content,size:typeof e.size==`number`?e.size:0,mimeType:e.mimeType||`application/octet-stream`}))})}async function ri(e,t,n){let r=new URLSearchParams({replay:`compact`}),i=n?.trim();return i&&r.set(`conversationId`,i),jt(`api/chat/subscribe/${q(e)}?${r.toString()}`,{signal:t})}async function ii(e){let t=await W(`api/chat/${q(e)}`);return Y.invalidate(`thread-${e}`),t?.conversationId||``}async function ai(e,t,n){return V(`api/chat/${q(e)}/agent-note`,{content:t,...n})}async function oi(e,t){return K(`api/chat/${q(e)}/compact`,t)}async function si(e,t){let n=await V(`api/chat/${q(e)}/workspace-handoff`,t);return typeof n.brief==`string`?n.brief:``}async function ci(e,t){let n=new URLSearchParams,r=t?.conversationId?.trim();r&&n.set(`conversationId`,r),t?.runId&&n.set(`runId`,t.runId),t?.all&&n.set(`all`,`1`);let i=n.size>0?`?${n.toString()}`:``,a=await K(`api/chat/stop/${q(e)}${i}`);if(a.success!==!0)throw Error(a.message||`Backend did not acknowledge stopping the run`)}async function $(e,t){return t.runNow&&t.setupScript?kt(`api/projects/${q(e)}`,t):(await Mt(`api/projects/${q(e)}`,t),Ur(e),null)}async function li(e,t){await K(`api/projects/${q(e)}/open`,{program:t})}async function ui(e,t){await K(`api/threads/${q(e)}/open`,{program:t})}async function di(e,t){await $(e,{program:t})}async function fi(e,t,n){return $(e,{setupScript:t,runNow:n})}async function pi(e,t){await $(e,{name:t})}async function mi(e,t){let n=new URLSearchParams({provider:e});t!==void 0&&n.set(`supportedTools`,t?`true`:`false`),n.set(`useCase`,`coding`);let r=`available-models-${n.toString()}`;return Y.get(r,async()=>{let e=await B(`api/models?${n.toString()}`);return{models:e.models??[],enabledModelIds:e.enabledModelIds??[]}},12e4)}async function hi(e){let t=new URLSearchParams({useCase:e}),n=`available-models-all-${e}`;return Y.get(n,async()=>(await B(`api/models/all?${t.toString()}`)).providers??{},12e4)}async function gi(e,t){await V(`api/models/${q(e,t)}/enable`),Y.invalidate(`enabled-models`),Y.invalidatePattern(/^available-models-/),Y.invalidatePattern(/^available-image-models-/)}async function _i(e,t){await V(`api/models/${q(e,t)}/disable`),Y.invalidate(`enabled-models`),Y.invalidatePattern(/^available-models-/),Y.invalidatePattern(/^available-image-models-/)}async function vi(e,t,n){await V(`api/models/${q(e,t)}/settings`,n),Y.invalidatePattern(/^available-models-/),Y.invalidate(`enabled-models`)}async function yi(){return Y.get(`enabled-models`,async()=>(await B(`api/models/enabled?useCase=coding`)).enabledModels??{},12e4)}async function bi(e){let t=new URLSearchParams({provider:e,useCase:`image`}),n=`available-image-models-${e}`;return Y.get(n,async()=>{let e=await B(`api/models?${t.toString()}`);return{models:e.models??[],enabledModelIds:e.enabledModelIds??[]}},12e4)}async function xi(){return Y.get(`enabled-image-models`,async()=>(await B(`api/models/enabled?useCase=image`)).enabledModels??{},12e4)}async function Si(e,t){await V(`api/models/${q(e,t)}/enable?useCase=image`),Y.invalidate(`enabled-image-models`),Y.invalidatePattern(/^available-models-/),Y.invalidatePattern(/^available-image-models-/)}async function Ci(e,t){await V(`api/models/${q(e,t)}/disable?useCase=image`),Y.invalidate(`enabled-image-models`),Y.invalidatePattern(/^available-models-/),Y.invalidatePattern(/^available-image-models-/)}async function wi(e,t,n,r,i,a,o=crypto.randomUUID()){function s(){r&&ci(r,{conversationId:i,runId:o}).catch(function(){})}a?.addEventListener(`abort`,s,{once:!0});try{a?.aborted&&(s(),a.throwIfAborted());let c=await V(`api/image/generate`,{prompt:e,model:t,provider:n,threadId:r,conversationId:i,runId:o},{signal:a});return a?.throwIfAborted(),c}finally{a?.removeEventListener(`abort`,s)}}async function Ti(e){await Vt(e)}async function Ei(e){return Bt(e)}async function Di(e,t){return Dt(`api/projects/${q(e)}/plugin-export`,t)}async function Oi(e,t){return V(`api/projects/${q(e)}/plugin-import/preview`,{url:t})}async function ki(e,t){return V(`api/projects/${q(e)}/plugin-import`,t)}async function Ai(e,t){return V(`api/projects/${q(e)}/plugin-upload`,t)}async function ji(e){let t=await V(`api/models/${q(e)}/refresh`);return Y.invalidatePattern(/^available-models-/),Y.invalidatePattern(/^available-image-models-/),Y.invalidate(`enabled-models`),Y.invalidate(`enabled-image-models`),t.modelCount??0}async function Mi(e,t){await V(`api/projects/${q(e)}/commands`,t)}async function Ni(e,t){await W(`api/projects/${q(e)}/commands/${q(t)}`)}async function Pi(e){return B(`api/projects/${q(e)}/package-scripts`)}async function Fi(e){return B(`api/threads/${q(e)}/files`)}async function Ii(e){return(await B(`api/threads/${q(e)}/project-scripts`)).scripts}async function Li(e,t,n,r){let{relativeFolder:i,...a}=r??{},o={scriptName:t,command:n};return i&&(o.relativeFolder=i),G(`api/threads/${q(e)}/project-scripts/run`,o,a)}async function Ri(e,t){return V(`api/threads/${q(e)}/project-scripts/stop`,{scriptName:t})}async function zi(e){return Y.get(`thread-${e}`,async()=>B(`api/threads/${e}`),45e3)}async function Bi(e){return V(`api/projects/${q(e)}/run-suggest`,{})}async function Vi(e){return V(`api/projects/${q(e)}/setup-suggest`,{})}async function Hi(e,t,n){return kn.info(`Start dev server requested`,{projectId:e,threadId:t}),Y.invalidate(`dev-server-running-${e}${t?`-${t}`:``}`),G(`api/projects/${q(e)}/run`,{threadId:t},{signal:n})}async function Ui(e,t){return Y.invalidate(`dev-server-running-${e}${t?`-${t}`:``}`),V(`api/projects/${q(e)}/stop`,t?{threadId:t}:{})}async function Wi(e,t,n){return V(`api/projects/${q(e)}/free-port`,{port:t,...n?{threadId:n}:{}})}async function Gi(e,t){return Y.get(`dev-server-running-${e}${t?`-${t}`:``}`,async()=>B(`api/projects/${q(e)}/running${t?`?threadId=${encodeURIComponent(t)}`:``}`),3e3)}async function Ki(e){return B(`api/projects/${q(e)}/system-prompt`)}async function qi(){return B(`api/onboarding/status`)}async function Ji(){return B(`api/onboarding/git-check`)}async function Yi(){return V(`api/onboarding/complete`,{})}async function Xi(){return V(`api/onboarding/reset`,{})}async function Zi(){return B(`api/onboarding/recommended-models`)}async function Qi(e){return(await B(`api/slash-commands?threadId=${q(e)}`)).commands??[]}async function $i(e){let t=await B(`api/slash-commands?threadId=${q(e)}`);return{commands:t.commands??[],skills:t.skills??[],bundledSkills:t.bundledSkills??[]}}async function ea(e,t,n,r,i){return V(`api/slash-commands`,{name:e,content:t,metadata:n,scope:r,threadId:i})}async function ta(e,t){let n=await fetch(`http://localhost:641/api/slash-commands`,{method:`DELETE`,headers:{"Content-Type":`application/json`},body:JSON.stringify({filePath:e,threadId:t})});if(!n.ok)throw Error(`Failed to delete slash command: ${n.statusText}`);return n.json()}async function na(e){let t=new URLSearchParams;e?.threadId?t.set(`threadId`,e.threadId):e?.projectId&&t.set(`projectId`,e.projectId);let n=t.toString();await W(`api/conversations${n?`?${n}`:``}`)}async function ra(e=7){let t=new URLSearchParams;return t.set(`archivedOnly`,`1`),t.set(`olderThanDays`,String(e)),W(`api/conversations?${t.toString()}`)}async function ia(e=20,t=0,n,i){return B(`api/conversations/recent?limit=${Math.min(Math.max(e,1),100)}&offset=${Math.max(t,0)}${n?`&projectId=${encodeURIComponent(n)}`:``}${i?.unreadOnly?`&unreadOnly=1`:``}${i?.archivedOnly?`&archivedOnly=1`:``}&${r}=${i?.order??`updated`}`)}async function aa(e,t){await K(`api/conversations/${q(e)}/${q(t)}/read`,{})}async function oa(e){return(await B(`api/conversations/${q(e)}/completions`)).conversationIds??[]}async function sa(e){await W(`api/conversations/${q(e)}/complete`)}async function ca(e,t){await W(`api/conversations/${q(e)}/${q(t)}/complete`)}async function la(e){await V(`api/git/scan-merged-prs/${q(e)}`,{})}async function ua(e,t){await W(`api/conversations/${q(e)}/${q(t)}/read`)}async function da(e,t){await K(`api/conversations/${q(e)}/${q(t)}/archive`,{})}async function fa(e,t){await W(`api/conversations/${q(e)}/${q(t)}/archive`)}async function pa(e,t){return(await B(`api/conversations/${q(e)}/${q(t)}/sibling`)).hasSibling}async function ma(e,t,n){await U(`api/conversations/${q(e)}/${q(t)}/title`,{title:n})}async function ha(e,t,n){await U(`api/conversations/${q(e)}/${q(t)}/model`,{model:n.model,modelProvider:n.modelProvider})}async function ga(e,t){let n=new URLSearchParams({conversationId:e});return t&&n.set(`threadId`,t),B(`api/goals?${n}`)}async function _a(e,t){return V(`api/goals/${q(e)}/pause`,t?{threadId:t}:{})}async function va(e,t){return V(`api/goals/${q(e)}/resume`,t?{threadId:t}:{})}async function ya(e,t){return V(`api/goals/${q(e)}/end`,t?{threadId:t}:{})}async function ba(e,t){return B(`api/conversations/${q(e)}/${q(t)}/usage`)}async function xa(e,t,n){let r=`context-breakdown-${e}-${t}`;return n?.forceRefresh&&Y.invalidate(r),Y.get(r,async()=>B(`api/conversations/${q(e)}/${q(t)}/context`),45e3)}async function Sa(e,t){return B(`api/conversations/${q(e)}/${q(t)}/context/tool-definitions`)}async function Ca(){try{return await B(`api/update/check`)}catch{return{updateAvailable:!1,supported:!1}}}async function wa(){return V(`api/update/apply`)}async function Ta(e){return(await B(`api/ask-user/pending${e?`?threadId=${encodeURIComponent(e)}`:``}`)).questions??[]}async function Ea(e,t,n){await V(`api/ask-user/respond`,{...typeof t==`string`?{toolCallId:e,answer:t}:{toolCallId:e,answers:t},...n?{threadId:n}:{}})}async function Da(e){await V(`api/ask-user/credentials`,e)}async function Oa(e,t,n){await V(`api/shell-permission/respond`,{toolCallId:e,decision:t,pattern:n?.pattern,projectId:n?.projectId,...n?.threadId?{threadId:n.threadId}:{}})}async function ka(e,t,n){await V(`api/shell-permission/respond`,{toolCallId:e,escalationScope:t===`skip`?void 0:t,escalationDecision:t===`skip`?`skip`:void 0,...n?{threadId:n}:{}})}async function Aa(e,t,n){await V(`api/web-fetch-permission/respond`,{toolCallId:e,decision:t,...n?{threadId:n}:{}})}async function ja(e,t){await V(`api/browser/ready`,{toolCallId:e,webviewId:t})}async function Ma(e,t,n){await V(`api/browser/action-result`,{toolCallId:e,result:t,...n?{threadId:n}:{}})}async function Na(e){return B(`api/mcp/config?projectPath=${encodeURIComponent(e)}`)}async function Pa(e,t,n){return H(`api/mcp/config`,{projectPath:e,serverName:t,serverConfig:n})}async function Fa(e,t){return W(`api/mcp/config/${q(t)}?projectPath=${encodeURIComponent(e)}`)}async function Ia(e,t){return V(`api/mcp/discover`,{projectPath:e,serverName:t})}async function La(){return(await B(`api/mcp/popular`)).servers??[]}async function Ra(e,t){return V(`api/mcp/oauth/authorize`,{projectPath:e,serverName:t})}async function za(e,t){return B(`api/mcp/oauth/status?projectPath=${encodeURIComponent(e)}&serverName=${encodeURIComponent(t)}`)}async function Ba(e,t){return W(`api/mcp/oauth?projectPath=${encodeURIComponent(e)}&serverName=${encodeURIComponent(t)}`)}async function Va(e){return(await B(`api/projects/${q(e)}/ai-files`)).nodes??[]}async function Ha(e,t){return W(`api/projects/${q(e)}/ai-file?path=${encodeURIComponent(t)}`)}async function Ua(e,t){return B(`api/projects/${q(e)}/ai-file?path=${encodeURIComponent(t)}`)}async function Wa(e,t,n){return H(`api/projects/${q(e)}/ai-file`,{path:t,content:n})}async function Ga(e,t,n){return H(`api/projects/${q(e)}/ai-files/skill/model-invocation`,{name:t,disableModelInvocation:n})}async function Ka(e){return(await B(`api/threads/${q(e)}/ai-files`)).nodes??[]}async function qa(e,t,n){return H(`api/threads/${q(e)}/ai-file`,{path:t,content:n})}async function Ja(e,t,n){return V(`api/threads/${q(e)}/ai-files/skill`,{name:t,description:n})}async function Ya(e,t,n){return H(`api/threads/${q(e)}/ai-files/skill/model-invocation`,{name:t,disableModelInvocation:n})}async function Xa(e,t,n,r){return V(`api/threads/${q(e)}/ai-files/agent`,{name:t,description:n,tools:r})}async function Za(e,t){return W(`api/threads/${q(e)}/ai-file?path=${encodeURIComponent(t)}`)}export{Wi as $,Ce as $i,nr as $n,qt as $r,pa as $t,Jn as A,ve as Ai,Ei as An,bn as Ar,Ii as At,Ci as B,ct as Bi,ei as Bn,hn as Br,Tr as Bt,Fr as C,f as Ca,E as Ci,Qn as Cn,gn as Cr,La as Ct,Wr as D,Ge as Di,Ba as Dn,Sn as Dr,Ua as Dt,ea as E,s as Ea,Re as Ei,va as En,_n as Er,Ir as Et,pr as F,Be as Fi,Gn as Fn,tn as Fr,Vn as Ft,ya as G,Ie as Gi,ar as Gn,nn as Gr,$i as Gt,Ia as H,Pe as Hi,ha as Hn,mn as Hr,ir as Ht,cr as I,D as Ii,Wn as In,fn as Ir,Bn as It,bi as J,We as Ji,Un as Jn,Qt as Jr,zi as Jt,Di as K,it as Ki,Ya as Kn,rn as Kr,Xn as Kt,ta as L,Ae as Li,qa as Ln,sn as Lr,zn as Lt,Fa as M,we as Mi,vi as Mn,un as Mr,Rr as Mt,Hr as N,Ye as Ni,Wa as Nn,ln as Nr,wr as Nt,Xa as O,Je as Oi,Li as On,On as Or,Va as Ot,Ha as P,ot as Pi,zr as Pn,Xt as Pr,Hn as Pt,Jr as Q,ye as Qi,Ri as Qn,Ht as Qr,mr as Qt,Gr as R,Oe as Ri,la as Rn,pn as Rr,ia as Rt,Or as S,h as Sa,T as Si,ja as Sn,Tn as Sr,Pi as St,sr as T,a as Ta,Ve as Ti,kr as Tn,vn as Tr,yr as Tt,Si as U,dt as Ui,Nn as Un,Zt as Ur,er as Ut,_i as V,Ee as Vi,ti as Vn,Yt as Vr,Fn as Vt,gi as W,he as Wi,Ga as Wn,an as Wr,Qi as Wt,oa as X,Ke as Xi,ci as Xn,en as Xr,Fi as Xt,mi as Y,qe as Yi,ni as Yn,on as Yr,Ka as Yt,Ta as Z,et as Zi,Ui as Zn,dn as Zr,Sa as Zt,oi as _,le as _a,mt as _i,Yn as _n,Kr as _r,Zn as _t,Ra as a,_e as aa,B as ai,ur as an,ri as ar,xi as at,Nr as b,g as ba,bt as bi,Br as bn,wn as br,Qr as bt,In as c,Fe as ca,U as ci,Ar as cn,Vr as cr,Zr as ct,ca as d,Le as da,H as di,ui as dn,lr as dr,$r as dt,Te as ea,Gt as ei,ki as en,Ea as er,wi as et,na as f,at as fa,St as fi,_a as fn,$ as fr,ba as ft,sa as g,w as ga,yt as gi,hr as gn,fr as gr,ga as gt,or as h,ae as ha,xt as hi,Oi as hn,fi as hr,Cr as ht,da as i,ke as ia,q as ii,vr as in,Aa as ir,$n as it,Ni as j,Se as ji,Pa as jn,yn as jr,Ki as jt,Ja as k,$e as ki,Mi as kn,Dn as kr,Lr as kt,ra as l,ft as la,V as li,jr as ln,fa as lr,_r as lt,Dr as m,S as ma,vt as mi,rr as mn,di as mr,Sr as mt,dr as n,st as na,Y as ni,Ur as nn,ka as nr,si as nt,Ca as o,lt as oa,P as oi,aa as on,Bi as or,yi as ot,tr as p,xe as pa,N as pi,ai as pn,pi as pr,xr as pt,hi as q,be as qi,Hi as qn,$t as qr,Er as qt,wa as r,O as ra,W as ri,Gi as rn,Oa as rr,qn as rt,Ji as s,De as sa,Et as si,Kn as sn,Vi as sr,gr as st,X as t,Xe as ta,Nt as ti,Ln as tn,Da as tr,qr as tt,ii as u,k as ua,Ot as ui,li as un,ua as ur,xa as ut,Yi as v,y as va,ht as vi,ji as vn,Ai as vr,Na as vt,Rn as w,l as wa,je as wi,Xi as wn,En as wr,br as wt,Mr as x,_ as xa,Qe as xi,Ma as xn,Cn as xr,qi as xt,Ti as y,ee as ya,M as yi,ma as yn,xn as yr,za as yt,Za as z,ge as zi,Yr as zn,cn as zr,Zi as zt};
|
package/dist/public/assets/{async-error-boundary-DH6Sqgmt.js → async-error-boundary-FT8_xvjy.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{o as t,t as n}from"./react-vendor-D61Uve5n.js";import{
|
|
1
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{o as t,t as n}from"./react-vendor-D61Uve5n.js";import{U as r,x as i}from"./dist-v_MvKS2-.js";import{mn as a}from"./api-C4ukGdyH.js";import{t as o}from"./button-DDaJhJP1.js";import{i as s,n as c,r as l,t as u}from"./card-DAc45J1v.js";var d=e(t(),1),f=n(),p=i(`app.async-error-boundary.ui`),m=class extends d.Component{state={error:null};static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){p.error(`AsyncErrorBoundary caught an error`,{error:e,info:t}),a({level:`ERROR`,context:`app.async-error-boundary.ui`,message:`AsyncErrorBoundary caught an error`,data:{message:e.message,stack:e.stack,componentStack:t.componentStack}})}handleRetry=()=>{this.setState({error:null}),this.props.onRetry?.()};render(){let{error:e}=this.state;return e?this.props.renderFallback?this.props.renderFallback(e,this.handleRetry):(0,f.jsx)(`div`,{className:`flex h-full items-center justify-center p-6`,children:(0,f.jsxs)(u,{className:`max-w-md`,children:[(0,f.jsx)(l,{children:(0,f.jsx)(s,{className:`text-destructive`,children:this.props.fallbackTitle??`Something went wrong`})}),(0,f.jsxs)(c,{className:`space-y-4`,children:[(0,f.jsx)(`p`,{className:r.body,children:e.message}),(0,f.jsx)(o,{variant:`outline`,onClick:this.handleRetry,children:`Retry`})]})]})}):this.props.children}};export{m as t};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{U as i,x as a}from"./dist-v_MvKS2-.js";import{Z as o,n as s,r as c}from"./store-W78TGOIO.js";import{D as l,h as u,n as d}from"./chat-handlers-context-2xSKzkKa.js";import{bn as f,pi as p,sn as m}from"./api-C4ukGdyH.js";import{t as h}from"./utils-CqsIXqSC.js";import{t as g}from"./external-link-Dcikmdm_.js";import{t as _}from"./button-DDaJhJP1.js";import{i as v,n as y,r as b,t as x}from"./tooltip-CqwCZ7wt.js";import{i as S,r as C}from"./use-browser-overlay-block-CO1pUEAZ.js";import{t as w}from"./use-toast-CKgZ8YeP.js";import{n as T}from"./chat-dock-context-a2bV9cnz.js";import{o as E}from"./remote-media-url-CyuN31H_.js";import{$n as D,A as O,Bn as k,Dn as A,Dt as j,N as M,O as N,Or as P,Pn as F,Sn as I,Zn as L,_ as R,b as z,c as B,g as V,gn as H,h as U,kr as W,l as G,m as K,p as q,v as J,x as Y,y as ee}from"./index-CoY8DilQ.js";import{t as te}from"./use-active-dock-panel-instance-4Ss8lB9K.js";var X=e(n(),1),Z=t();async function ne(e){let{projectId:t,oldText:n,newText:r,selection:i,replaceUnique:a=f}=e;if(n===r)return{kind:`unchanged`};try{let e=await a(t,n,r);if(e.applied&&e.path)return{kind:`replaced`,path:e.path}}catch{}return{kind:`prompt`,prompt:V(i,n,r)}}var Q=r();function re(e){let t=(0,Z.c)(43),{onCommit:n,onCancelPreview:r}=e,i=s(),{selectedThreadId:a,selectedProjectId:u,projects:f}=N(),p;t[0]===a?p=t[1]:(p=e=>a?e.projectModelSelections[a]:void 0,t[0]=a,t[1]=p);let m=c(p),{selectedBrowserElement:h,setSelectedBrowserElement:g,setIsEditModeEnabled:v,setBrowserAgentProcessingThreadId:y}=E(),{handleSend:b}=d(),{paneId:x,conversationId:S}=l(),[C,T]=(0,X.useState)(!1),D;if(t[2]!==f||t[3]!==u){let e;t[5]===u?e=t[6]:(e=e=>e.projectId===u,t[5]=u,t[6]=e),D=f.find(e),t[2]=f,t[3]=u,t[4]=D}else D=t[4];let O=D,k;t[7]===h?k=t[8]:(k=J(h),t[7]=h,t[8]=k);let A=k,j;t[9]!==v||t[10]!==g?(j=()=>{T(!1),v(!1),g(null)},t[9]=v,t[10]=g,t[11]=j):j=t[11];let M=j,P;t[12]!==S||t[13]!==i||t[14]!==M||t[15]!==b||t[16]!==x||t[17]!==O?.lastSelectedModel||t[18]!==O?.lastSelectedModelProvider||t[19]!==u||t[20]!==a||t[21]!==y||t[22]!==m?.id||t[23]!==m?.provider?(P=async e=>{if(!u){w({title:`No project selected`,description:`Open a project to apply text edits.`,variant:`destructive`}),M();return}T(!0);let t=await ne({projectId:u,oldText:e.originalText,newText:e.currentText,selection:e.selection});if(t.kind===`unchanged`){w({title:`No text changes detected`}),M();return}if(t.kind===`replaced`){w({title:`Text updated`,description:`Replaced in ${t.path}`}),M();return}let n=m?.id??O?.lastSelectedModel,r=m?.provider??O?.lastSelectedModelProvider;if(!a||!n){w({title:`Could not apply text change`,description:`Select a chat thread and model to send this change as a prompt.`,variant:`destructive`}),T(!1);return}b(x,S,t.prompt,n,[],r),i({type:o.SetChatInputDraft,threadId:x===`primary`?a:`${a}:${x}`,draft:``}),y(a),M()},t[12]=S,t[13]=i,t[14]=M,t[15]=b,t[16]=x,t[17]=O?.lastSelectedModel,t[18]=O?.lastSelectedModelProvider,t[19]=u,t[20]=a,t[21]=y,t[22]=m?.id,t[23]=m?.provider,t[24]=P):P=t[24],O?.lastSelectedModel,O?.lastSelectedModelProvider,m?.id,m?.provider;let F=P,I,L;t[25]===A?(I=t[26],L=t[27]):(I=()=>{A||T(!1)},L=[A],t[25]=A,t[26]=I,t[27]=L),(0,X.useEffect)(I,L);let z,B;t[28]===F?(z=t[29],B=t[30]):(z=()=>{let e=function(e){let t=e.detail;R(t)&&F(t)},t=function(e){let t=ee(e.data);t&&F(t)};return window.addEventListener(q,e),window.addEventListener(`message`,t),function(){window.removeEventListener(q,e),window.removeEventListener(`message`,t)}},B=[F],t[28]=F,t[29]=z,t[30]=B),(0,X.useEffect)(z,B);let V;t[31]!==M||t[32]!==r?(V=function(){r(),M()},t[31]=M,t[32]=r,t[33]=V):V=t[33];let H=V;if(!A)return null;let U;t[34]!==C||t[35]!==n?(U=(0,Q.jsx)(_,{type:`button`,size:`sm`,onClick:n,disabled:C,children:`Apply Changes`}),t[34]=C,t[35]=n,t[36]=U):U=t[36];let W;t[37]!==H||t[38]!==C?(W=(0,Q.jsx)(_,{type:`button`,size:`sm`,variant:`outline`,onClick:H,disabled:C,children:`Cancel`}),t[37]=H,t[38]=C,t[39]=W):W=t[39];let G;return t[40]!==U||t[41]!==W?(G=(0,Q.jsxs)(`div`,{className:`flex shrink-0 items-center justify-center gap-2 border-b border-border px-3 py-2`,children:[U,W]}),t[40]=U,t[41]=W,t[42]=G):G=t[42],G}function ie(e){let t=e.trim();return t?(!t.startsWith(`http://`)&&!t.startsWith(`https://`)&&(t=`http://${t}`),t):``}function ae(e){return typeof e==`string`?e:typeof e==`object`&&e&&`url`in e&&typeof e.url==`string`?e.url:``}function oe(e){return e?e.querySelector(`electrobun-webview`):null}function se(e){e.webviewId!=null&&(e.toggleHidden(!0),e.togglePassthrough(!0))}function ce(e){e.webviewId!=null&&(e.toggleHidden(!1),e.togglePassthrough(!1),e.syncDimensions(!0))}function le(e,t){if(t){ce(e);return}se(e)}function ue(e){return e!=null&&e.getClientRects().length>0}function de(e,t,n){let r=!1,i=0;function a(){if(!r){if(e.webviewId==null){i=requestAnimationFrame(a);return}t&&e.getAttribute(`src`)!==t&&e.loadURL(t),le(e,n())}}return i=requestAnimationFrame(a),function(){r=!0,cancelAnimationFrame(i)}}function fe(e){let t=(0,Z.c)(8),{useNativeWebview:n,shouldRenderNativeWebview:r,currentUrl:i,resolveWebview:a}=e,[o,s]=(0,X.useState)(r),c;t[0]!==a||t[1]!==r||t[2]!==n?(c=()=>{if(!n)return;if(r){s(!0);return}let e=a();e&&se(e);let t=requestAnimationFrame(()=>{s(!1)});return function(){cancelAnimationFrame(t)}},t[0]=a,t[1]=r,t[2]=n,t[3]=c):c=t[3];let l;return t[4]!==i||t[5]!==r||t[6]!==n?(l=[r,n,i],t[4]=i,t[5]=r,t[6]=n,t[7]=l):l=t[7],(0,X.useLayoutEffect)(c,l),o}var pe=a(`browser.preview-scripting`);function me(e,t=!1,n=`select`){return`(function () {
|
|
2
|
+
const api = window.__tarskBrowserPreview;
|
|
3
|
+
if (!api || typeof api.setSelectMode !== "function") {
|
|
4
|
+
log.error("[browser-preview] selection API is not available");
|
|
5
|
+
return;
|
|
6
|
+
}
|
|
7
|
+
api.setSelectMode(${e?`true`:`false`}, ${t?`true`:`false`}, ${JSON.stringify(n)});
|
|
8
|
+
})();`}function he(e){let t=e===`commit`?`commitTextEdit`:`cancelTextEdit`;return`(function () {
|
|
9
|
+
const api = window.__tarskBrowserPreview;
|
|
10
|
+
if (!api || typeof api.${t} !== "function") return;
|
|
11
|
+
api.${t}();
|
|
12
|
+
})();`}function ge(e,t,n=!1,r=`select`){if(typeof e.executeJavascript!=`function`)throw Error(`Browser preview webview JS execution is not available`);try{e.executeJavascript(me(t,n,r))}catch(i){throw pe.error(`[browser-preview] Failed to toggle native preview selection mode`,{enabled:t,preserveSelection:n,interaction:r,src:e.src,webview_id:e.webviewId,error:i instanceof Error?i.message:String(i),stack:i instanceof Error?i.stack:void 0}),i}}function _e(e,t){if(typeof e.executeJavascript!=`function`)throw Error(`Browser preview webview JS execution is not available`);e.executeJavascript(t)}function ve(e,t,n=!1,r=`select`){let i=e.contentWindow;if(!i)throw Error(`Browser preview frame is not ready`);let a=i.__tarskBrowserPreview;if(!a?.setSelectMode)throw Error(`Browser preview selection API is not available in iframe preview`);a.setSelectMode(t,n,r)}function ye(e,t){let n=e.contentWindow?.__tarskBrowserPreview;if(!n||typeof n[t===`commit`?`commitTextEdit`:`cancelTextEdit`]!=`function`){pe.warn(`[browser-preview] Preview text-edit API unavailable; action ignored`,{action:t,src:e.src});return}if(t===`commit`){n.commitTextEdit?.();return}n.cancelTextEdit?.()}var be=a(`app.browser-tab.ui`),xe=new Set([`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`,`PageUp`,`PageDown`,`Home`,`End`]),Se=new Set([`INPUT`,`TEXTAREA`,`SELECT`]),Ce=new Set([`combobox`,`listbox`,`menu`,`menubar`,`menuitem`,`option`,`radiogroup`,`tablist`,`tab`,`grid`,`slider`,`spinbutton`]);function we(e){if(Se.has(e.tagName)||e.isContentEditable)return!0;let t=e.getAttribute(`role`);return t!==null&&Ce.has(t)}function Te(e){return e instanceof HTMLElement&&we(e)}function Ee(e,t,n){let[r,i]=(0,X.useState)(!0),a=(0,X.useSyncExternalStore)(G,B),o=(0,X.useSyncExternalStore)(S,C),s=t&&(r&&!o||a),c=(0,X.useRef)(s);c.current=s;let l=(0,X.useCallback)(function(){return c.current},[]),u=(0,X.useCallback)(function(){i(ue(e.current))},[]);return(0,X.useLayoutEffect)(u),(0,X.useEffect)(()=>{let t=e.current;if(!t)return;let n=new ResizeObserver(u);return n.observe(t),function(){n.disconnect()}},[u,n]),{shouldShowWebview:s,readWebviewVisibility:l}}function De({devServerUrl:e,devServerStopped:t,isBrowserActive:n,currentUrl:r,browserResetTrigger:i,webviewRef:a,iframeRef:o,setCurrentUrl:s,setPendingUrl:c,setInputUrl:l,setSelectionModeError:u,setIsSelectModeEnabled:d,setIsEditModeEnabled:f,setSelectedBrowserElement:p,setIsSelectionPromptOpen:m,setBrowserAgentProcessingThreadId:h}){let g=(0,X.useRef)(r),_=(0,X.useRef)(null);g.current=r,(0,X.useEffect)(()=>{s(``),c(``),l(``),u(null),d(!1),f(!1),p(null),m(!1),h(null);let e=a.current;e&&(e.src=``),o.current&&(o.current.src=``)},[i,h,d,f,m,p]),(0,X.useEffect)(()=>{if(t&&!e){s(``),c(``),l(``),u(null),n&&(d(!1),f(!1),p(null),m(!1),h(null));let e=a.current;e&&(e.src=``),o.current&&(o.current.src=``);return}if(!e)return;let r=ie(e);l(r),(!g.current||g.current===_.current)&&(s(r),c(r),_.current=r),u(null),n&&(d(!1),f(!1),p(null),m(!1),h(null))},[e,t,n,h,d,f,m,p])}function Oe(e,t,n,r){let i=(0,Z.c)(9),a;i[0]!==n||i[1]!==e||i[2]!==r||i[3]!==t?(a=()=>{if(!e||!t)return;let i=function(e){xe.has(e.key)&&(Te(e.target)||r.current?.contains(e.target)||(e.preventDefault(),n()))};return document.addEventListener(`keydown`,i,!0),function(){document.removeEventListener(`keydown`,i,!0)}},i[0]=n,i[1]=e,i[2]=r,i[3]=t,i[4]=a):a=i[4];let o;i[5]!==n||i[6]!==e||i[7]!==t?(o=[e,t,n],i[5]=n,i[6]=e,i[7]=t,i[8]=o):o=i[8],(0,X.useEffect)(a,o)}function ke(e){let t=(0,Z.c)(13),{useNativeWebview:n,nativeWebviewMounted:r,currentUrl:i,resolveWebview:a,setCurrentUrl:o,setPendingUrl:s,setInputUrl:c,setSelectionModeError:l}=e,u;t[0]!==i||t[1]!==r||t[2]!==a||t[3]!==o||t[4]!==c||t[5]!==s||t[6]!==l||t[7]!==n?(u=()=>{let e=a();if(!n||!e||!r)return;let t=function(e){let t=typeof e.detail==`string`?e.detail:i;t&&(o(t),s(``),c(t))},u=function(e){let t=typeof e.detail==`string`?e.detail:i;t&&(o(t),c(t))},d=function(e){let t=ae(e.detail);t&&m(t)},f=function(e){let t=Y(e.detail);if(t){U(t);return}let n=z(e.detail);n&&(l(null),K(n))};return e.on(`did-navigate`,t),e.on(`did-navigate-in-page`,u),e.on(`new-window-open`,d),e.on(`host-message`,f),function(){e.off(`did-navigate`,t),e.off(`did-navigate-in-page`,u),e.off(`new-window-open`,d),e.off(`host-message`,f)}},t[0]=i,t[1]=r,t[2]=a,t[3]=o,t[4]=c,t[5]=s,t[6]=l,t[7]=n,t[8]=u):u=t[8];let d;t[9]!==i||t[10]!==r||t[11]!==n?(d=[i,n,r],t[9]=i,t[10]=r,t[11]=n,t[12]=d):d=t[12],(0,X.useEffect)(u,d)}function Ae(e){let t=(0,Z.c)(23),{useNativeWebview:n,nativeWebviewMounted:r,currentUrl:i,deviceMode:a,shouldShowWebview:o,pendingUrl:s,readWebviewVisibility:c,resolveWebview:l}=e,u;t[0]!==r||t[1]!==l||t[2]!==o||t[3]!==n?(u=()=>{if(!n||!r)return;let e=l();e&&e.webviewId!=null&&le(e,o)},t[0]=r,t[1]=l,t[2]=o,t[3]=n,t[4]=u):u=t[4];let d;t[5]!==i||t[6]!==a||t[7]!==r||t[8]!==o||t[9]!==n?(d=[r,n,i,a,o],t[5]=i,t[6]=a,t[7]=r,t[8]=o,t[9]=n,t[10]=d):d=t[10],(0,X.useLayoutEffect)(u,d);let f;t[11]!==r||t[12]!==s||t[13]!==c||t[14]!==l||t[15]!==n?(f=()=>{let e=l();if(n&&e&&s&&r)return de(e,s,c)},t[11]=r,t[12]=s,t[13]=c,t[14]=l,t[15]=n,t[16]=f):f=t[16];let p;t[17]!==i||t[18]!==r||t[19]!==s||t[20]!==c||t[21]!==n?(p=[s,n,i,r,c],t[17]=i,t[18]=r,t[19]=s,t[20]=c,t[21]=n,t[22]=p):p=t[22],(0,X.useEffect)(f,p)}function je(e){let t=(0,Z.c)(23),{isBrowserActive:n,currentUrl:r,isSelectModeEnabled:i,isEditModeEnabled:a,isSelectionPromptOpen:o,nativeWebviewMounted:s,useNativeWebview:c,resolveWebview:l,iframeRef:u,setIsSelectModeEnabled:d,setIsEditModeEnabled:f,setSelectionModeError:p}=e,m;t[0]!==r||t[1]!==u||t[2]!==n||t[3]!==a||t[4]!==i||t[5]!==o||t[6]!==s||t[7]!==l||t[8]!==f||t[9]!==d||t[10]!==p||t[11]!==c?(m=()=>{if(!n)return;if(!r){i&&d(!1),a&&f(!1);return}let e=!1,t=i||a,m=a?`edit`:`select`,h=!t&&o;return(function(){try{if(c){let e=l();if(!e||e.webviewId==null||!s)return;ge(e,t,h,m);return}let e=u.current;if(!e)return;ve(e,t,h,m)}catch(n){let r=n;if(e||!t)return;let i=r instanceof Error?r.message:`Could not enable element selection.`;be.error(`Failed to toggle browser selection mode:`,r),p(i),d(!1),f(!1),w({title:`Selection mode unavailable`,description:i,variant:`destructive`})}})(),function(){e=!0}},t[0]=r,t[1]=u,t[2]=n,t[3]=a,t[4]=i,t[5]=o,t[6]=s,t[7]=l,t[8]=f,t[9]=d,t[10]=p,t[11]=c,t[12]=m):m=t[12];let h;t[13]!==r||t[14]!==n||t[15]!==a||t[16]!==i||t[17]!==o||t[18]!==s||t[19]!==f||t[20]!==d||t[21]!==c?(h=[r,n,a,i,o,s,f,d,c],t[13]=r,t[14]=n,t[15]=a,t[16]=i,t[17]=o,t[18]=s,t[19]=f,t[20]=d,t[21]=c,t[22]=h):h=t[22],(0,X.useEffect)(m,h)}function Me(e){let t=(0,Z.c)(23),n=te(e,`browser`),{devServerUrl:r,devServerStopped:i}=M(),{browserResetTrigger:a,browserDeviceMode:o,setBrowserDeviceMode:s,isSelectModeEnabled:l,setIsSelectModeEnabled:u,isEditModeEnabled:d,setIsEditModeEnabled:f,selectedBrowserElement:p,setSelectedBrowserElement:m,setIsSelectionPromptOpen:h,isSelectionPromptOpen:g,setBrowserAgentProcessingThreadId:_}=E(),v=c(Pe),y=c(Ne),b;if(t[0]!==y||t[1]!==v){let e;t[3]===v?e=t[4]:(e=e=>e.projectId===v,t[3]=v,t[4]=e),b=y.find(e),t[0]=y,t[1]=v,t[2]=b}else b=t[2];let x=b,S;return t[5]!==o||t[6]!==a||t[7]!==i||t[8]!==r||t[9]!==n||t[10]!==d||t[11]!==l||t[12]!==g||t[13]!==p||t[14]!==x||t[15]!==v||t[16]!==_||t[17]!==s||t[18]!==f||t[19]!==u||t[20]!==h||t[21]!==m?(S={isBrowserActive:n,devServerUrl:r,devServerStopped:i,browserResetTrigger:a,browserDeviceMode:o,setBrowserDeviceMode:s,isSelectModeEnabled:l,setIsSelectModeEnabled:u,isEditModeEnabled:d,setIsEditModeEnabled:f,selectedBrowserElement:p,setSelectedBrowserElement:m,setIsSelectionPromptOpen:h,isSelectionPromptOpen:g,setBrowserAgentProcessingThreadId:_,selectedProjectId:v,selectedProject:x},t[5]=o,t[6]=a,t[7]=i,t[8]=r,t[9]=n,t[10]=d,t[11]=l,t[12]=g,t[13]=p,t[14]=x,t[15]=v,t[16]=_,t[17]=s,t[18]=f,t[19]=u,t[20]=h,t[21]=m,t[22]=S):S=t[22],S}function Ne(e){return e.projects}function Pe(e){return e.selectedProjectId}function Fe(e){let t=(0,Z.c)(33),n=Me(e),r=ze(n),i=n.selectedProject?.runCommand,a;t[0]!==n.isEditModeEnabled||t[1]!==n.selectedBrowserElement?(a=n.isEditModeEnabled||J(n.selectedBrowserElement),t[0]=n.isEditModeEnabled,t[1]=n.selectedBrowserElement,t[2]=a):a=t[2];let o=n.isSelectModeEnabled||n.isEditModeEnabled,s;t[3]===r.currentUrl?s=t[4]:(s=()=>void m(r.currentUrl),t[3]=r.currentUrl,t[4]=s);let c;return t[5]!==r.currentUrl||t[6]!==r.deviceMode||t[7]!==r.handleWebviewRef||t[8]!==r.iframeRef||t[9]!==r.inputUrl||t[10]!==r.nativeWebviewMounted||t[11]!==r.previewActions.goBack||t[12]!==r.previewActions.goForward||t[13]!==r.previewActions.handleKeyDown||t[14]!==r.previewActions.refresh||t[15]!==r.previewActions.runPreviewTextEdit||t[16]!==r.previewActions.toggleEditMode||t[17]!==r.previewActions.toggleSelectMode||t[18]!==r.previewActions.updateDeviceMode||t[19]!==r.previewContainerRef||t[20]!==r.previewRpcPreload||t[21]!==r.selectionModeError||t[22]!==r.setInputUrl||t[23]!==r.useNativeWebview||t[24]!==n.devServerStopped||t[25]!==n.isBrowserActive||t[26]!==n.isSelectModeEnabled||t[27]!==n.selectedProjectId||t[28]!==i||t[29]!==a||t[30]!==o||t[31]!==s?(c={isBrowserActive:n.isBrowserActive,devServerStopped:n.devServerStopped,selectedProjectId:n.selectedProjectId,runCommand:i,currentUrl:r.currentUrl,inputUrl:r.inputUrl,setInputUrl:r.setInputUrl,handleKeyDown:r.previewActions.handleKeyDown,deviceMode:r.deviceMode,updateDeviceMode:r.previewActions.updateDeviceMode,selectionModeError:r.selectionModeError,isSelectModeEnabled:n.isSelectModeEnabled,isEditModeActive:a,isSurfaceSelectInteraction:o,toggleSelectMode:r.previewActions.toggleSelectMode,toggleEditMode:r.previewActions.toggleEditMode,refresh:r.previewActions.refresh,goBack:r.previewActions.goBack,goForward:r.previewActions.goForward,openExternal:s,runPreviewTextEdit:r.previewActions.runPreviewTextEdit,previewContainerRef:r.previewContainerRef,iframeRef:r.iframeRef,handleWebviewRef:r.handleWebviewRef,useNativeWebview:r.useNativeWebview,nativeWebviewMounted:r.nativeWebviewMounted,previewRpcPreload:r.previewRpcPreload},t[5]=r.currentUrl,t[6]=r.deviceMode,t[7]=r.handleWebviewRef,t[8]=r.iframeRef,t[9]=r.inputUrl,t[10]=r.nativeWebviewMounted,t[11]=r.previewActions.goBack,t[12]=r.previewActions.goForward,t[13]=r.previewActions.handleKeyDown,t[14]=r.previewActions.refresh,t[15]=r.previewActions.runPreviewTextEdit,t[16]=r.previewActions.toggleEditMode,t[17]=r.previewActions.toggleSelectMode,t[18]=r.previewActions.updateDeviceMode,t[19]=r.previewContainerRef,t[20]=r.previewRpcPreload,t[21]=r.selectionModeError,t[22]=r.setInputUrl,t[23]=r.useNativeWebview,t[24]=n.devServerStopped,t[25]=n.isBrowserActive,t[26]=n.isSelectModeEnabled,t[27]=n.selectedProjectId,t[28]=i,t[29]=a,t[30]=o,t[31]=s,t[32]=c):c=t[32],c}function Ie(e,t,n){return(0,X.useCallback)(function(){if(e){t()?.focus();return}n.current?.contentWindow?.focus()},[e])}function Le(e,t,n){return(0,X.useCallback)(function(r){e.current=r,r&&de(r,t.current,n)},[n])}function Re(e){let[t,n]=(0,X.useState)(``),[r,i]=(0,X.useState)(``),[a,o]=(0,X.useState)(``),[s,c]=(0,X.useState)(e),[l,u]=(0,X.useState)(null),d=(0,X.useRef)(null),f=(0,X.useRef)(a),p=(0,X.useRef)(null),m=(0,X.useRef)(null);return f.current=a,(0,X.useEffect)(()=>{c(e)},[e]),{inputUrl:t,setInputUrl:n,currentUrl:r,setCurrentUrl:i,pendingUrl:a,setPendingUrl:o,deviceMode:s,setDeviceMode:c,selectionModeError:l,setSelectionModeError:u,webviewRef:d,pendingUrlRef:f,iframeRef:p,previewContainerRef:m}}function ze(e){let t=(0,Z.c)(87),{browserUrlRequest:n,setBrowserUrlRequest:r}=E(),{isBrowserActive:i,devServerUrl:a,devServerStopped:o,browserResetTrigger:s,browserDeviceMode:c,setBrowserDeviceMode:l,isSelectModeEnabled:d,setIsSelectModeEnabled:f,isEditModeEnabled:m,setIsEditModeEnabled:h,selectedBrowserElement:g,setSelectedBrowserElement:_,setIsSelectionPromptOpen:v,isSelectionPromptOpen:y,setBrowserAgentProcessingThreadId:b}=e,{inputUrl:x,setInputUrl:S,currentUrl:C,setCurrentUrl:w,pendingUrl:T,setPendingUrl:D,deviceMode:O,setDeviceMode:k,selectionModeError:A,setSelectionModeError:j,webviewRef:M,pendingUrlRef:N,iframeRef:P,previewContainerRef:F}=Re(c),I;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(I=p(),t[0]=I):I=t[0];let L=I,R;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(R=u(),t[1]=R):R=t[1];let z=R,B=L&&!!C,V;t[2]!==F||t[3]!==M?(V=function(){return M.current??oe(F.current)},t[2]=F,t[3]=M,t[4]=V):V=t[4];let H=V,{shouldShowWebview:U,readWebviewVisibility:W}=Ee(F,i,C),G;t[5]!==C||t[6]!==H||t[7]!==B?(G={useNativeWebview:L,shouldRenderNativeWebview:B,currentUrl:C,resolveWebview:H},t[5]=C,t[6]=H,t[7]=B,t[8]=G):G=t[8];let K=fe(G),q;t[9]!==s||t[10]!==C||t[11]!==o||t[12]!==a||t[13]!==P||t[14]!==i||t[15]!==b||t[16]!==w||t[17]!==S||t[18]!==h||t[19]!==f||t[20]!==v||t[21]!==D||t[22]!==_||t[23]!==j||t[24]!==M?(q={devServerUrl:a,devServerStopped:o,isBrowserActive:i,currentUrl:C,browserResetTrigger:s,webviewRef:M,iframeRef:P,setCurrentUrl:w,setPendingUrl:D,setInputUrl:S,setSelectionModeError:j,setIsSelectModeEnabled:f,setIsEditModeEnabled:h,setSelectedBrowserElement:_,setIsSelectionPromptOpen:v,setBrowserAgentProcessingThreadId:b},t[9]=s,t[10]=C,t[11]=o,t[12]=a,t[13]=P,t[14]=i,t[15]=b,t[16]=w,t[17]=S,t[18]=h,t[19]=f,t[20]=v,t[21]=D,t[22]=_,t[23]=j,t[24]=M,t[25]=q):q=t[25],De(q);let J,Y;t[26]!==n||t[27]!==r||t[28]!==w||t[29]!==S||t[30]!==D?(J=()=>{n&&(w(n),D(n),S(n),r(null))},Y=[n,r,w,S,D],t[26]=n,t[27]=r,t[28]=w,t[29]=S,t[30]=D,t[31]=J,t[32]=Y):(J=t[31],Y=t[32]),(0,X.useEffect)(J,Y),Oe(i,L,Ie(L,H,P),F);let ee;t[33]!==C||t[34]!==K||t[35]!==H||t[36]!==w||t[37]!==S||t[38]!==D||t[39]!==j?(ee={useNativeWebview:L,nativeWebviewMounted:K,currentUrl:C,resolveWebview:H,setCurrentUrl:w,setPendingUrl:D,setInputUrl:S,setSelectionModeError:j},t[33]=C,t[34]=K,t[35]=H,t[36]=w,t[37]=S,t[38]=D,t[39]=j,t[40]=ee):ee=t[40],ke(ee);let te;t[41]!==C||t[42]!==O||t[43]!==K||t[44]!==T||t[45]!==W||t[46]!==H||t[47]!==U?(te={useNativeWebview:L,nativeWebviewMounted:K,currentUrl:C,deviceMode:O,shouldShowWebview:U,pendingUrl:T,readWebviewVisibility:W,resolveWebview:H},t[41]=C,t[42]=O,t[43]=K,t[44]=T,t[45]=W,t[46]=H,t[47]=U,t[48]=te):te=t[48],Ae(te);let ne;t[49]!==C||t[50]!==P||t[51]!==i||t[52]!==m||t[53]!==d||t[54]!==y||t[55]!==K||t[56]!==H||t[57]!==h||t[58]!==f||t[59]!==j?(ne={isBrowserActive:i,currentUrl:C,isSelectModeEnabled:d,isEditModeEnabled:m,isSelectionPromptOpen:y,nativeWebviewMounted:K,useNativeWebview:L,resolveWebview:H,iframeRef:P,setIsSelectModeEnabled:f,setIsEditModeEnabled:h,setSelectionModeError:j},t[49]=C,t[50]=P,t[51]=i,t[52]=m,t[53]=d,t[54]=y,t[55]=K,t[56]=H,t[57]=h,t[58]=f,t[59]=j,t[60]=ne):ne=t[60],je(ne);let Q=Le(M,N,W),re;t[61]!==P||t[62]!==x||t[63]!==H||t[64]!==g||t[65]!==l||t[66]!==w||t[67]!==k||t[68]!==S||t[69]!==h||t[70]!==f||t[71]!==v||t[72]!==D||t[73]!==_||t[74]!==j?(re={useNativeWebview:L,inputUrl:x,selectedBrowserElement:g,resolveWebview:H,iframeRef:P,setDeviceMode:k,setBrowserDeviceMode:l,setSelectionModeError:j,setIsSelectModeEnabled:f,setIsEditModeEnabled:h,setSelectedBrowserElement:_,setIsSelectionPromptOpen:v,setInputUrl:S,setCurrentUrl:w,setPendingUrl:D},t[61]=P,t[62]=x,t[63]=H,t[64]=g,t[65]=l,t[66]=w,t[67]=k,t[68]=S,t[69]=h,t[70]=f,t[71]=v,t[72]=D,t[73]=_,t[74]=j,t[75]=re):re=t[75];let ie=Be(re),ae;return t[76]!==C||t[77]!==O||t[78]!==Q||t[79]!==P||t[80]!==x||t[81]!==K||t[82]!==ie||t[83]!==F||t[84]!==A||t[85]!==S?(ae={currentUrl:C,inputUrl:x,setInputUrl:S,deviceMode:O,selectionModeError:A,previewContainerRef:F,iframeRef:P,handleWebviewRef:Q,useNativeWebview:L,nativeWebviewMounted:K,previewRpcPreload:z,previewActions:ie},t[76]=C,t[77]=O,t[78]=Q,t[79]=P,t[80]=x,t[81]=K,t[82]=ie,t[83]=F,t[84]=A,t[85]=S,t[86]=ae):ae=t[86],ae}function Be({useNativeWebview:e,inputUrl:t,selectedBrowserElement:n,resolveWebview:r,iframeRef:i,setDeviceMode:a,setBrowserDeviceMode:o,setSelectionModeError:s,setIsSelectModeEnabled:c,setIsEditModeEnabled:l,setSelectedBrowserElement:u,setIsSelectionPromptOpen:d,setInputUrl:f,setCurrentUrl:p,setPendingUrl:m}){function h(e){a(e),o(e)}function g(){s(null),c(!1),l(!1),u(null),d(!1)}function _(t){try{if(e){let e=r();if(!e)return;_e(e,he(t));return}let n=i.current;if(!n)return;ye(n,t)}catch(e){be.error(`Failed to run preview text edit action:`,e)}}function v(e){let t=ie(e);t&&(f(t),p(t),m(t),g())}function y(e){e.key===`Enter`&&v(t)}function b(){if(g(),e){let e=r();e&&e.reload();return}let t=i.current;if(!t)return;let n=t.src;t.src=``,requestAnimationFrame(()=>{t.src=n})}function x(){if(g(),e){let e=r();e&&e.executeJavascript(`history.back()`);return}C(-1)}function S(){if(g(),e){let e=r();e&&e.executeJavascript(`history.forward()`);return}C(1)}function C(e){let t=i.current;if(t&&t.contentWindow)try{e<0?t.contentWindow.history.back():t.contentWindow.history.forward()}catch{}}function w(){s(null),l(!1),J(n)&&(_(`cancel`),u(null)),c(e=>!e)}function T(){if(s(null),c(!1),d(!1),J(n)){_(`cancel`),u(null),l(!1);return}l(e=>!e)}return{handleKeyDown:y,updateDeviceMode:h,toggleSelectMode:w,toggleEditMode:T,refresh:b,goBack:x,goForward:S,runPreviewTextEdit:_}}var Ve={desktop:{width:`100%`,height:`100%`},tablet:{width:`768px`,height:`1024px`},mobile:{width:`375px`,height:`667px`}};function He(e){let t=(0,Z.c)(7),{useNativeWebview:n,nativeWebviewMounted:r,currentUrl:i,previewRpcPreload:a,handleWebviewRef:o,iframeRef:s}=e;if(n){if(!r)return null;let e;return t[0]!==i||t[1]!==o||t[2]!==a?(e=(0,X.createElement)(`electrobun-webview`,{ref:o,src:i,preload:a,renderer:`native`,className:`block h-full w-full bg-background`}),t[0]=i,t[1]=o,t[2]=a,t[3]=e):e=t[3],e}let c;return t[4]!==i||t[5]!==s?(c=(0,Q.jsx)(`iframe`,{ref:s,src:i,className:`h-full w-full border-none`,title:`Browser`,sandbox:`allow-same-origin allow-scripts allow-forms allow-popups allow-modals allow-downloads`,allow:`publickey-credentials-get; publickey-credentials-create`}),t[4]=i,t[5]=s,t[6]=c):c=t[6],c}function Ue(e){let t=(0,Z.c)(18),{selectionModeError:n,isSelectModeEnabled:r,deviceMode:i,currentDeviceConfig:a,previewContainerRef:o,children:s}=e,c;t[0]===n?c=t[1]:(c=n&&(0,Q.jsxs)(`div`,{className:`border-b border-destructive/20 bg-destructive/5 px-3 py-2 text-sm text-destructive`,children:[`Element selection is unavailable: `,n]}),t[0]=n,t[1]=c);let l=r&&`cursor-crosshair`,u;t[2]===l?u=t[3]:(u=h(`flex min-h-0 flex-1 items-center justify-center bg-background`,l),t[2]=l,t[3]=u);let d=`overflow-hidden border border-border bg-background shadow-sm ${i===`desktop`?`h-full w-full rounded-none border-0 shadow-none`:`rounded-lg`}`,f;t[4]!==a.height||t[5]!==a.width?(f={width:a.width,height:a.height,maxWidth:`100%`,maxHeight:`100%`},t[4]=a.height,t[5]=a.width,t[6]=f):f=t[6];let p;t[7]!==s||t[8]!==d||t[9]!==f?(p=(0,Q.jsx)(`div`,{className:d,style:f,children:s}),t[7]=s,t[8]=d,t[9]=f,t[10]=p):p=t[10];let m;t[11]!==o||t[12]!==u||t[13]!==p?(m=(0,Q.jsx)(`div`,{ref:o,className:u,children:p}),t[11]=o,t[12]=u,t[13]=p,t[14]=m):m=t[14];let g;return t[15]!==c||t[16]!==m?(g=(0,Q.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col bg-background`,children:[c,m]}),t[15]=c,t[16]=m,t[17]=g):g=t[17],g}function $(e){let t=(0,Z.c)(16),{onClick:n,label:r,children:i,isActive:a,disabled:o,activeStyle:s}=e,c=a!==void 0&&a,l=o!==void 0&&o,u=s===void 0?`elevated`:s,d=l&&`cursor-not-allowed text-muted-foreground/50`,f=!l&&!c&&`text-muted-foreground hover:bg-background/50 hover:text-foreground`,p=!l&&c&&u===`depressed`&&`bg-muted text-primary shadow-[inset_0_2px_4px_rgba(0,0,0,0.14)] ring-1 ring-inset ring-border/80 dark:shadow-[inset_0_2px_4px_rgba(0,0,0,0.35)]`,m=!l&&c&&u===`elevated`&&`bg-background text-foreground shadow-sm`,g;t[0]!==d||t[1]!==f||t[2]!==p||t[3]!==m?(g=h(`rounded p-1.5 transition-all`,d,f,p,m),t[0]=d,t[1]=f,t[2]=p,t[3]=m,t[4]=g):g=t[4];let _;t[5]!==i||t[6]!==l||t[7]!==c||t[8]!==n||t[9]!==g?(_=(0,Q.jsx)(v,{asChild:!0,children:(0,Q.jsx)(`button`,{type:`button`,onClick:n,disabled:l,"aria-pressed":c,className:g,children:i})}),t[5]=i,t[6]=l,t[7]=c,t[8]=n,t[9]=g,t[10]=_):_=t[10];let b;t[11]===r?b=t[12]:(b=(0,Q.jsx)(y,{children:r}),t[11]=r,t[12]=b);let S;return t[13]!==b||t[14]!==_?(S=(0,Q.jsxs)(x,{children:[_,b]}),t[13]=b,t[14]=_,t[15]=S):S=t[15],S}function We(e){let t=(0,Z.c)(43),{controller:n,urlInputRef:r}=e,{currentUrl:a,inputUrl:o,setInputUrl:s,handleKeyDown:c,goBack:l,goForward:u,refresh:d,toggleSelectMode:f,toggleEditMode:p,openExternal:m,updateDeviceMode:_,selectionModeError:v,isSelectModeEnabled:y,isEditModeActive:b,deviceMode:x}=n,S;t[0]!==a||t[1]!==l?(S=a&&(0,Q.jsx)($,{onClick:l,label:`Back`,children:(0,Q.jsx)(W,{size:15})}),t[0]=a,t[1]=l,t[2]=S):S=t[2];let C;t[3]!==a||t[4]!==u?(C=a&&(0,Q.jsx)($,{onClick:u,label:`Forward`,children:(0,Q.jsx)(P,{size:15})}),t[3]=a,t[4]=u,t[5]=C):C=t[5];let w;t[6]===s?w=t[7]:(w=e=>s(e.target.value),t[6]=s,t[7]=w);let T;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(T=h(`flex-1 rounded-full bg-muted font-mono`,i.captionForeground),t[8]=T):T=t[8];let E;t[9]!==c||t[10]!==o||t[11]!==w||t[12]!==r?(E=(0,Q.jsx)(H,{ref:r,type:`text`,value:o,onChange:w,onKeyDown:c,placeholder:`Enter URL...`,className:T,spellCheck:!1}),t[9]=c,t[10]=o,t[11]=w,t[12]=r,t[13]=E):E=t[13];let O;t[14]!==a||t[15]!==d?(O=a&&(0,Q.jsx)($,{onClick:d,label:`Refresh page`,children:(0,Q.jsx)(k,{size:15})}),t[14]=a,t[15]=d,t[16]=O):O=t[16];let j;t[17]!==a||t[18]!==y||t[19]!==v||t[20]!==f?(j=a&&(0,Q.jsx)($,{onClick:f,label:v?`Select element unavailable: ${v}`:y?`Exit element selection`:`Select element from preview`,isActive:y,activeStyle:`depressed`,children:(0,Q.jsx)(L,{size:15})}),t[17]=a,t[18]=y,t[19]=v,t[20]=f,t[21]=j):j=t[21];let M;t[22]!==a||t[23]!==b||t[24]!==v||t[25]!==p?(M=a&&(0,Q.jsx)($,{onClick:p,label:v?`Edit text unavailable: ${v}`:b?`Exit text editing`:`Edit text from preview`,isActive:b,activeStyle:`depressed`,children:(0,Q.jsx)(I,{size:15})}),t[22]=a,t[23]=b,t[24]=v,t[25]=p,t[26]=M):M=t[26];let N;t[27]!==a||t[28]!==x||t[29]!==_?(N=a&&(0,Q.jsxs)(`div`,{className:`flex items-center rounded-md bg-muted p-0.5`,children:[(0,Q.jsx)($,{onClick:()=>_(`desktop`),label:`Desktop`,isActive:x===`desktop`,children:(0,Q.jsx)(D,{size:15})}),(0,Q.jsx)($,{onClick:()=>_(`tablet`),label:`Tablet`,isActive:x===`tablet`,children:(0,Q.jsx)(A,{size:15})}),(0,Q.jsx)($,{onClick:()=>_(`mobile`),label:`Mobile`,isActive:x===`mobile`,children:(0,Q.jsx)(F,{size:15})})]}),t[27]=a,t[28]=x,t[29]=_,t[30]=N):N=t[30];let R;t[31]!==a||t[32]!==m?(R=a&&(0,Q.jsx)($,{onClick:m,label:`Open in external browser`,children:(0,Q.jsx)(g,{size:15})}),t[31]=a,t[32]=m,t[33]=R):R=t[33];let z;return t[34]!==S||t[35]!==R||t[36]!==C||t[37]!==E||t[38]!==O||t[39]!==j||t[40]!==M||t[41]!==N?(z=(0,Q.jsx)(`div`,{className:`relative shrink-0 border-b border-border`,children:(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2`,children:[S,C,E,O,j,M,N,R]})}),t[34]=S,t[35]=R,t[36]=C,t[37]=E,t[38]=O,t[39]=j,t[40]=M,t[41]=N,t[42]=z):z=t[42],z}function Ge(e){let t=(0,Z.c)(6),{devServerStopped:n,selectedProjectId:r,runCommand:a}=e,o=j(),s=c(Ke),l;return t[0]!==n||t[1]!==a||t[2]!==r||t[3]!==s||t[4]!==o?(l=(0,Q.jsx)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-6 text-muted-foreground`,children:n?(0,Q.jsx)(`p`,{className:i.body,children:`Dev server stopped`}):r&&s&&a&&!o?(0,Q.jsx)(O,{projectId:r,runCommand:a,large:!0}):(0,Q.jsx)(`p`,{className:i.body,children:`Enter a URL to browse`})}),t[0]=n,t[1]=a,t[2]=r,t[3]=s,t[4]=o,t[5]=l):l=t[5],l}function Ke(e){return e.selectedThreadId}function qe(e){let t=(0,Z.c)(24),{instanceId:n}=e,r=Fe(n),i=Ve[r.deviceMode],{registerPanelFocus:a}=T(),o=(0,X.useRef)(null),s,c;t[0]!==n||t[1]!==a?(s=()=>a(n,()=>o.current?.focus()),c=[n,a],t[0]=n,t[1]=a,t[2]=s,t[3]=c):(s=t[2],c=t[3]),(0,X.useEffect)(s,c);let l;t[4]!==r.currentUrl||t[5]!==r.handleWebviewRef||t[6]!==r.iframeRef||t[7]!==r.nativeWebviewMounted||t[8]!==r.previewRpcPreload||t[9]!==r.useNativeWebview?(l=(0,Q.jsx)(He,{useNativeWebview:r.useNativeWebview,nativeWebviewMounted:r.nativeWebviewMounted,currentUrl:r.currentUrl,previewRpcPreload:r.previewRpcPreload,handleWebviewRef:r.handleWebviewRef,iframeRef:r.iframeRef}),t[4]=r.currentUrl,t[5]=r.handleWebviewRef,t[6]=r.iframeRef,t[7]=r.nativeWebviewMounted,t[8]=r.previewRpcPreload,t[9]=r.useNativeWebview,t[10]=l):l=t[10];let u=l,d=r.isBrowserActive?`flex h-full min-h-0 flex-col overflow-hidden`:`hidden`,f;t[11]===d?f=t[12]:(f=h(d),t[11]=d,t[12]=f);let p=!r.isBrowserActive,m;t[13]===r?m=t[14]:(m=r.isBrowserActive?(0,Q.jsx)(We,{controller:r,urlInputRef:o}):null,t[13]=r,t[14]=m);let g;t[15]!==r||t[16]!==i||t[17]!==u?(g=r.currentUrl?(0,Q.jsxs)(Q.Fragment,{children:[r.isBrowserActive?(0,Q.jsx)(re,{onCommit:()=>r.runPreviewTextEdit(`commit`),onCancelPreview:()=>r.runPreviewTextEdit(`cancel`)}):null,(0,Q.jsx)(Ue,{selectionModeError:r.selectionModeError,isSelectModeEnabled:r.isSurfaceSelectInteraction,deviceMode:r.deviceMode,currentDeviceConfig:i,previewContainerRef:r.previewContainerRef,children:u})]}):r.isBrowserActive?(0,Q.jsx)(Ge,{devServerStopped:r.devServerStopped,selectedProjectId:r.selectedProjectId,runCommand:r.runCommand}):null,t[15]=r,t[16]=i,t[17]=u,t[18]=g):g=t[18];let _;return t[19]!==f||t[20]!==p||t[21]!==m||t[22]!==g?(_=(0,Q.jsx)(b,{children:(0,Q.jsxs)(`div`,{className:f,"aria-hidden":p,children:[m,g]})}),t[19]=f,t[20]=p,t[21]=m,t[22]=g,t[23]=_):_=t[23],_}export{qe as BrowserTab};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{U as i}from"./dist-v_MvKS2-.js";import{o as a,s as o,t as s}from"./utils-CqsIXqSC.js";var c=t(),l=e(n(),1),u=r(),d=Symbol.for(`react.lazy`),f=l.use;function p(e){return typeof e==`object`&&!!e&&`then`in e}function m(e){return typeof e==`object`&&!!e&&`$$typeof`in e&&e.$$typeof===d&&`_payload`in e&&p(e._payload)}function h(e){let t=_(e),n=l.forwardRef((e,n)=>{let{children:r,...i}=e;m(r)&&typeof f==`function`&&(r=f(r._payload));let a=l.Children.toArray(r),o=a.find(y);if(o){let e=o.props.children,r=a.map(t=>t===o?l.Children.count(e)>1?l.Children.only(null):l.isValidElement(e)?e.props.children:null:t);return(0,u.jsx)(t,{...i,ref:n,children:l.isValidElement(e)?l.cloneElement(e,void 0,r):null})}return(0,u.jsx)(t,{...i,ref:n,children:r})});return n.displayName=`${e}.Slot`,n}var g=h(`Slot`);function _(e){let t=l.forwardRef((e,t)=>{let{children:n,...r}=e;if(m(n)&&typeof f==`function`&&(n=f(n._payload)),l.isValidElement(n)){let e=x(n),i=b(r,n.props);return n.type!==l.Fragment&&(i.ref=t?o(t,e):e),l.cloneElement(n,i)}return l.Children.count(n)>1?l.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var v=Symbol(`radix.slottable`);function y(e){return l.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===v}function b(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}function x(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var S=e=>typeof e==`boolean`?`${e}`:e===0?`0`:e,C=a,w=(e,t)=>n=>{if(t?.variants==null)return C(e,n?.class,n?.className);let{variants:r,defaultVariants:i}=t,a=Object.keys(r).map(e=>{let t=n?.[e],a=i?.[e];if(t===null)return null;let o=S(t)||S(a);return r[e][o]}),o=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return r===void 0||(e[n]=r),e},{});return C(e,a,t?.compoundVariants?.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...o}[t]):{...i,...o}[t]===n})?[...e,n,r]:e},[]),n?.class,n?.className)},T=w(`inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-full ${i.body} font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0`,{variants:{variant:{default:`bg-primary text-primary-foreground hover:bg-primary/90`,destructive:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,outline:`border border-input bg-background hover:bg-accent hover:text-accent-foreground`,secondary:`bg-secondary text-secondary-foreground hover:bg-secondary/80`,ghost:`hover:bg-foreground hover:text-background transition-colors`,action:`text-muted-foreground hover:bg-foreground hover:text-background transition-colors`,link:`text-primary underline-offset-4 hover:underline`},size:{default:`h-10 px-6 py-3`,sm:`h-9 rounded-full px-4`,lg:`h-11 rounded-full px-10`,icon:`h-10 w-10 [&_svg]:size-5`,"icon-md":`h-8 w-8 [&_svg]:size-4`,"icon-sm":`h-7 w-7 [&_svg]:size-4`,"icon-xs":`h-5 w-5 [&_svg]:size-3`}},defaultVariants:{variant:`default`,size:`default`}}),E=l.forwardRef((e,t)=>{let n=(0,c.c)(15),r,i,a,o,l;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4],l=n[5]):({className:r,variant:l,size:a,asChild:o,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o,n[5]=l);let d=o!==void 0&&o?g:`button`,f;n[6]!==r||n[7]!==a||n[8]!==l?(f=s(T({variant:l,size:a,className:r})),n[6]=r,n[7]=a,n[8]=l,n[9]=f):f=n[9];let p;return n[10]!==d||n[11]!==i||n[12]!==t||n[13]!==f?(p=(0,u.jsx)(d,{className:f,ref:t,...i}),n[10]=d,n[11]=i,n[12]=t,n[13]=f,n[14]=p):p=n[14],p});E.displayName=`Button`;export{h as a,g as i,T as n,w as r,E as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{
|
|
1
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{U as i}from"./dist-v_MvKS2-.js";import{t as a}from"./utils-CqsIXqSC.js";var o=t(),s=e(n(),1),c=r(),l=s.forwardRef((e,t)=>{let n=(0,o.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let s;n[3]===r?s=n[4]:(s=a(`rounded-lg border bg-card text-card-foreground shadow-sm`,r),n[3]=r,n[4]=s);let l;return n[5]!==i||n[6]!==t||n[7]!==s?(l=(0,c.jsx)(`div`,{ref:t,className:s,...i}),n[5]=i,n[6]=t,n[7]=s,n[8]=l):l=n[8],l});l.displayName=`Card`;var u=s.forwardRef((e,t)=>{let n=(0,o.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let s;n[3]===r?s=n[4]:(s=a(`flex flex-col space-y-1.5 p-6`,r),n[3]=r,n[4]=s);let l;return n[5]!==i||n[6]!==t||n[7]!==s?(l=(0,c.jsx)(`div`,{ref:t,className:s,...i}),n[5]=i,n[6]=t,n[7]=s,n[8]=l):l=n[8],l});u.displayName=`CardHeader`;var d=s.forwardRef((e,t)=>{let n=(0,o.c)(9),r,s;n[0]===e?(r=n[1],s=n[2]):({className:r,...s}=e,n[0]=e,n[1]=r,n[2]=s);let l;n[3]===r?l=n[4]:(l=a(i.sectionTitle,`leading-none tracking-tight`,r),n[3]=r,n[4]=l);let u;return n[5]!==s||n[6]!==t||n[7]!==l?(u=(0,c.jsx)(`div`,{ref:t,className:l,...s}),n[5]=s,n[6]=t,n[7]=l,n[8]=u):u=n[8],u});d.displayName=`CardTitle`;var f=s.forwardRef((e,t)=>{let n=(0,o.c)(9),r,s;n[0]===e?(r=n[1],s=n[2]):({className:r,...s}=e,n[0]=e,n[1]=r,n[2]=s);let l;n[3]===r?l=n[4]:(l=a(i.bodyMuted,r),n[3]=r,n[4]=l);let u;return n[5]!==s||n[6]!==t||n[7]!==l?(u=(0,c.jsx)(`div`,{ref:t,className:l,...s}),n[5]=s,n[6]=t,n[7]=l,n[8]=u):u=n[8],u});f.displayName=`CardDescription`;var p=s.forwardRef((e,t)=>{let n=(0,o.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let s;n[3]===r?s=n[4]:(s=a(`p-6 pt-0`,r),n[3]=r,n[4]=s);let l;return n[5]!==i||n[6]!==t||n[7]!==s?(l=(0,c.jsx)(`div`,{ref:t,className:s,...i}),n[5]=i,n[6]=t,n[7]=s,n[8]=l):l=n[8],l});p.displayName=`CardContent`;var m=s.forwardRef((e,t)=>{let n=(0,o.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let s;n[3]===r?s=n[4]:(s=a(`flex items-center p-6 pt-0`,r),n[3]=r,n[4]=s);let l;return n[5]!==i||n[6]!==t||n[7]!==s?(l=(0,c.jsx)(`div`,{ref:t,className:s,...i}),n[5]=i,n[6]=t,n[7]=s,n[8]=l):l=n[8],l});m.displayName=`CardFooter`;export{d as i,p as n,u as r,l as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{x as i}from"./dist-v_MvKS2-.js";import{$ as a,Z as o,i as s,n as c,r as l}from"./store-W78TGOIO.js";import{Mt as u,Pn as d}from"./api-C4ukGdyH.js";import{t as f}from"./random-uuid-Dc3UrwVo.js";var p=e(n(),1),m=t();function h({nonChatWindows:e,expandedWindowId:t,selectedWindowId:n,threadIds:r,threadMultiPaneStates:i}){let a={};for(let e of r){let t=i[e];t&&Object.keys(t.extraChatPanes).length!==0&&(a[e]={focusedPaneId:t.focusedPane,panes:Object.entries(t.extraChatPanes).map(([e,t])=>({paneId:e,conversationId:t.conversationId}))})}return{version:1,nonChatWindows:e,layout:t===null?`grid`:`expanded`,expandedWindowId:t,selectedWindowId:n,chatPanesByThread:a}}function g(e,t){let n=new Set(t?e.chatPanesByThread[t]?.panes.map(e=>e.paneId)??[]:[]),r=new Set(e.nonChatWindows.map(e=>e.id)),i=n.size>0||r.size>0;function o(e){return e===`primary`||e!==null&&(n.has(e)||r.has(e))}let s=o(e.selectedWindowId)?e.selectedWindowId:a,c=null;return e.layout===`expanded`&&i&&(c=o(e.expandedWindowId)?e.expandedWindowId:a),{nonChatWindows:e.nonChatWindows,expandedWindowId:c,selectedWindowId:s}}var _=i(`app.window-state`);function v(e,t,n){return JSON.stringify({nonChatWindows:e,expandedWindowId:t,selectedWindowId:n})}function y({nonChatWindows:e,expandedWindowId:t,selectedWindowId:n,onReset:r,onHydrate:i}){let a=c(),s=l(e=>e.selectedProjectId),f=l(e=>e.projects),m=l(e=>e.threadMultiPaneStates),g=f.find(e=>e.projectId===s),y=(g?.threads.map(e=>e.threadId)??[]).join(`\0`),b=g!==void 0,[x,S]=(0,p.useState)(null),C=(0,p.useRef)(null),w=(0,p.useRef)(Promise.resolve()),T=(0,p.useRef)(null),E=(0,p.useRef)(0),D=(0,p.useRef)(v(e,t,n));D.current=v(e,t,n),(0,p.useEffect)(()=>{let e=T.current!==s;if(T.current=s,!s||!b){r(),S(null),C.current=null;return}e&&(r(),S(null),C.current=null);let t=s,n=y?y.split(`\0`):[],c=D.current,l=++E.current,d=!1;async function f(){try{let e=await u(t);if(d||l!==E.current)return;if(a({type:o.HydrateProjectChatPanes,threadIds:n,chatPanesByThread:e.chatPanesByThread}),D.current!==c){S(t);return}C.current=JSON.stringify(e),i(e),S(t)}catch(e){d||_.error(`Failed to restore project window state`,e)}}return f(),()=>{d=!0}},[a,b,i,r,y,s]),(0,p.useEffect)(()=>{if(!s||s!==x||!b)return;let r=h({nonChatWindows:e,expandedWindowId:t,selectedWindowId:n,threadIds:y?y.split(`\0`):[],threadMultiPaneStates:m}),i=JSON.stringify(r);if(i===C.current)return;let a=s;C.current=i,w.current=w.current.catch(()=>void 0).then(()=>d(a,r)).catch(e=>{_.error(`Failed to save project window state`,e),C.current===i&&(C.current=null)})},[t,b,x,e,s,n,y,m])}var b=r(),x=(0,p.createContext)(null);function S(e){let t=(0,m.c)(19),{windows:n,extraChatPanes:r,primaryChatOpen:i,expandedWindowId:o,selectedWindowId:s,setExpandedWindowId:c,setSelectedWindowId:l}=e,u,d;t[0]!==o||t[1]!==r||t[2]!==i||t[3]!==c||t[4]!==n?(u=()=>{if(o){if(o===`primary`){if(i)return;c(n.length>0?n[0].id:null);return}if(!n.some(e=>e.id===o)&&!r[o]){let e=i?a:n[0]?.id??null;c(e)}}},d=[o,r,i,n,c],t[0]=o,t[1]=r,t[2]=i,t[3]=c,t[4]=n,t[5]=u,t[6]=d):(u=t[5],d=t[6]),(0,p.useEffect)(u,d);let f,h;t[7]!==r||t[8]!==i||t[9]!==s||t[10]!==l||t[11]!==n?(f=()=>{if(s===`primary`){if(i||n.length===0)return;l(n[0].id);return}if(!n.some(e=>e.id===s)&&!r[s]){let e=i?a:n[0]?.id??`primary`;l(e)}},h=[r,i,s,n,l],t[7]=r,t[8]=i,t[9]=s,t[10]=l,t[11]=n,t[12]=f,t[13]=h):(f=t[12],h=t[13]),(0,p.useEffect)(f,h);let g,_;t[14]!==o||t[15]!==c||t[16]!==n.length?(g=()=>{n.length===0&&o!==null&&c(null)},_=[o,n.length,c],t[14]=o,t[15]=c,t[16]=n.length,t[17]=g,t[18]=_):(g=t[17],_=t[18]),(0,p.useEffect)(g,_)}function C(e,t,n,r){t.panelId===`chat`?n({type:o.RemoveChatPane,paneId:e}):r(t=>t.filter(t=>t.id!==e))}function w(e,t,n,r){if(n.length===1)return null;if(e!==t)return e;let i=n.filter(e=>e.id!==t);return r?a:i[0]?.id??null}function T(e,t,n,r){if(e!==t)return e;let i=n.filter(e=>e.id!==t);return r?a:i[0]?.id??`primary`}function E(e,t,n){return t.length===0?null:e===`primary`?n:e}function D(e,t){return e===`primary`&&t?t:e}function O(){let e=(0,m.c)(18),t=l(j),n=l(A),r;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=[],e[0]=r):r=e[0];let[i,o]=(0,p.useState)(r),[s,c]=(0,p.useState)(!0),[u,d]=(0,p.useState)(null),[f,h]=(0,p.useState)(`half`),[g,_]=(0,p.useState)(`tasks`),[v,y]=(0,p.useState)(a),[b,x]=(0,p.useState)(null),S;e[1]===n?S=e[2]:(S=Object.keys(n).map(k),e[1]=n,e[2]=S);let C=S,w;e[3]!==C||e[4]!==i?(w=[...C,...i],e[3]=C,e[4]=i,e[5]=w):w=e[5];let T=w,E;return e[6]!==C||e[7]!==f||e[8]!==u||e[9]!==n||e[10]!==i||e[11]!==b||e[12]!==s||e[13]!==t||e[14]!==v||e[15]!==g||e[16]!==T?(E={selectedThreadId:t,extraChatPanes:n,nonChatWindows:i,setNonChatWindows:o,primaryChatOpen:s,setPrimaryChatOpen:c,expandedWindowId:u,setExpandedWindowId:d,columnWidth:f,setColumnWidth:h,tasksView:g,setTasksView:_,selectedWindowId:v,setSelectedWindowId:y,pendingScrollWindowId:b,setPendingScrollWindowId:x,chatWindows:C,windows:T},e[6]=C,e[7]=f,e[8]=u,e[9]=n,e[10]=i,e[11]=b,e[12]=s,e[13]=t,e[14]=v,e[15]=g,e[16]=T,e[17]=E):E=e[17],E}function k(e){return{id:e,panelId:`chat`}}function A(e){return e.extraChatPanes}function j(e){return e.selectedThreadId}function M(e,t,n){let r=(0,m.c)(11),i=c(),a;r[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=new Map,r[0]=a):a=r[0];let s=(0,p.useRef)(a),l=(0,p.useRef)(null),u;r[1]===Symbol.for(`react.memo_cache_sentinel`)?(u=(e,t)=>(s.current.set(e,t),()=>{s.current.delete(e)}),r[1]=u):u=r[1];let d=u,f;r[2]!==i||r[3]!==e?(f=t=>{if(t===`primary`){i({type:o.SetFocusedPane,paneId:`primary`}),i({type:o.FocusChatInput});return}if(e.find(e=>e.id===t)?.panelId===`chat`){i({type:o.SetFocusedPane,paneId:t}),i({type:o.FocusChatInput});return}s.current.get(t)?.()},r[2]=i,r[3]=e,r[4]=f):f=r[4];let h=f,g,_;r[5]!==t||r[6]!==h||r[7]!==n?(g=()=>{let e=t??n;if(e===null)return;let r=l.current;l.current=e,r!==null&&r!==e&&h(e)},_=[t,n,h],r[5]=t,r[6]=h,r[7]=n,r[8]=g,r[9]=_):(g=r[8],_=r[9]),(0,p.useEffect)(g,_);let v;return r[10]===Symbol.for(`react.memo_cache_sentinel`)?(v={registerPanelFocus:d,prevActiveWindowRef:l},r[10]=v):v=r[10],v}function N(e){let t=(0,m.c)(53),{dispatch:n,selectedThreadId:r,windows:i,chatWindows:s,nonChatWindows:c,primaryChatOpen:l,setPrimaryChatOpen:u,setExpandedWindowId:d,setSelectedWindowId:p,setPendingScrollWindowId:h,setNonChatWindows:g}=e,_;t[0]===p?_=t[1]:(_=e=>{p(e)},t[0]=p,t[1]=_);let v=_,y;t[2]!==d||t[3]!==u||t[4]!==p?(y=e=>{e===`primary`&&u(!0),p(e),d(e)},t[2]=d,t[3]=u,t[4]=p,t[5]=y):y=t[5];let b=y,x;t[6]===d?x=t[7]:(x=()=>{d(null)},t[6]=d,t[7]=x);let S=x,O;t[8]!==l||t[9]!==d||t[10]!==h||t[11]!==u||t[12]!==i.length?(O=e=>{e===`primary`&&u(!0),d(t=>t===null&&i.length>0||t===null&&l&&e!==`primary`?null:e),h(e)},t[8]=l,t[9]=d,t[10]=h,t[11]=u,t[12]=i.length,t[13]=O):O=t[13];let k=O,A;t[14]===h?A=t[15]:(A=()=>{h(null)},t[14]=h,t[15]=A);let j=A,M;t[16]!==n||t[17]!==k||t[18]!==r||t[19]!==g?(M=e=>{let t=f();return e===`chat`?r?(n({type:o.AddChatPane,paneId:t,conversationId:f()}),k(t),t):t:(g(n=>[...n,{id:t,panelId:e}]),k(t),t)},t[16]=n,t[17]=k,t[18]=r,t[19]=g,t[20]=M):M=t[20];let N=M,F;t[21]!==n||t[22]!==l||t[23]!==d||t[24]!==g||t[25]!==u||t[26]!==p||t[27]!==i?(F=e=>{if(e===`primary`){u(!1);let e=i[0]?.id??null;d(t=>E(t,i,e)),p(t=>D(t,e));return}let t=i.find(t=>t.id===e);t&&(t.panelId!==`chat`||l||i.some(t=>t.panelId===`chat`&&t.id!==e))&&(C(e,t,n,g),d(t=>w(t,e,i,l)),p(t=>T(t,e,i,l)))},t[21]=n,t[22]=l,t[23]=d,t[24]=g,t[25]=u,t[26]=p,t[27]=i,t[28]=F):F=t[28];let I=F,L;t[29]!==n||t[30]!==d||t[31]!==g||t[32]!==u||t[33]!==p||t[34]!==i?(L=()=>{d(null),p(a),u(!0);for(let e of i)e.panelId===`chat`&&n({type:o.RemoveChatPane,paneId:e.id});g([])},t[29]=n,t[30]=d,t[31]=g,t[32]=u,t[33]=p,t[34]=i,t[35]=L):L=t[35];let R=L,z;t[36]!==s||t[37]!==c?(z=e=>e===`chat`?s[0]:c.find(t=>t.panelId===e),t[36]=s,t[37]=c,t[38]=z):z=t[38];let B=z,V;t[39]!==l||t[40]!==i?(V=e=>e===`chat`?l||i.some(P):i.some(t=>t.panelId===e),t[39]=l,t[40]=i,t[41]=V):V=t[41];let H=V,U;return t[42]!==N||t[43]!==j||t[44]!==R||t[45]!==I||t[46]!==S||t[47]!==b||t[48]!==B||t[49]!==H||t[50]!==k||t[51]!==v?(U={selectWindow:v,expandWindow:b,collapseLayout:S,revealWindow:k,clearPendingScrollWindow:j,addWindow:N,closeWindow:I,closeAllWindows:R,findWindowByPanel:B,isPanelOpen:H},t[42]=N,t[43]=j,t[44]=R,t[45]=I,t[46]=S,t[47]=b,t[48]=B,t[49]=H,t[50]=k,t[51]=v,t[52]=U):U=t[52],U}function P(e){return e.panelId===`chat`}function F(e){let t=(0,m.c)(3),{children:n}=e,r=I(),i;return t[0]!==n||t[1]!==r?(i=(0,b.jsx)(x.Provider,{value:r,children:n}),t[0]=n,t[1]=r,t[2]=i):i=t[2],i}function I(){let e=c(),t=s(),{selectedThreadId:n,extraChatPanes:r,nonChatWindows:i,setNonChatWindows:o,primaryChatOpen:l,setPrimaryChatOpen:u,expandedWindowId:d,setExpandedWindowId:f,columnWidth:m,setColumnWidth:h,tasksView:_,setTasksView:v,selectedWindowId:b,setSelectedWindowId:x,pendingScrollWindowId:C,setPendingScrollWindowId:w,chatWindows:T,windows:E}=O(),{registerPanelFocus:D,prevActiveWindowRef:k}=M(E,d,b);y({nonChatWindows:i,expandedWindowId:d,selectedWindowId:b,onReset:(0,p.useCallback)(()=>{k.current=a,o([]),u(!0),f(null),x(a),w(null)},[]),onHydrate:(0,p.useCallback)(e=>{let n=t.getState().selectedThreadId,r=g(e,n);k.current=r.expandedWindowId??r.selectedWindowId,o(r.nonChatWindows),f(r.expandedWindowId),x(r.selectedWindowId),w(null)},[t])}),S({windows:E,extraChatPanes:r,primaryChatOpen:l,expandedWindowId:d,selectedWindowId:b,setExpandedWindowId:f,setSelectedWindowId:x});let{selectWindow:A,expandWindow:j,collapseLayout:P,revealWindow:F,clearPendingScrollWindow:I,addWindow:L,closeWindow:R,closeAllWindows:z,findWindowByPanel:B,isPanelOpen:V}=N({dispatch:e,selectedThreadId:n,windows:E,chatWindows:T,nonChatWindows:i,primaryChatOpen:l,setPrimaryChatOpen:u,setExpandedWindowId:f,setSelectedWindowId:x,setPendingScrollWindowId:w,setNonChatWindows:o}),H=E.length>0,U=d!==null;return(0,p.useMemo)(()=>({windows:E,addWindow:L,closeWindow:R,closeAllWindows:z,isPrimaryChatOpen:l,isPanelOpen:V,findWindowByPanel:B,hasOpenWindows:H,isLayoutExpanded:U,expandedWindowId:d,expandWindow:j,collapseLayout:P,columnWidth:m,setColumnWidth:h,selectedWindowId:b,selectWindow:A,revealWindow:F,pendingScrollWindowId:C,clearPendingScrollWindow:I,tasksView:_,setTasksView:v,registerPanelFocus:D}),[E,L,R,z,l,V,B,H,U,d,j,P,m,h,b,A,F,C,I,_,v,D])}function L(){let e=(0,p.useContext)(x);if(!e)throw Error(`useChatDock must be used within a ChatDockProvider`);return e}function R(){return(0,p.useContext)(x)}export{L as n,R as r,F as t};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/web-Dlo3GwCf.js","assets/dist-CgbWuuq4.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,r,t as i}from"./react-vendor-D61Uve5n.js";import{n as a}from"./QueryClientProvider-CYXTUmYo.js";import{L as o,_ as s,tt as c,x as l}from"./dist-v_MvKS2-.js";import{A as u,B as d,C as f,D as p,E as m,H as h,J as g,N as _,O as v,Q as y,S as b,T as x,U as S,W as C,Z as w,b as T,i as E,j as D,n as O,r as k,w as A,x as j,y as ee,z as M}from"./store-W78TGOIO.js";import{$r as te,Bn as ne,Ci as re,Jt as ie,Mr as ae,Qr as oe,Sn as se,Tt as N,Un as ce,Wi as le,Xn as ue,Yn as de,_ as fe,_r as pe,ar as P,ct as me,ei as he,et as ge,lr as _e,nt as ve,oi as ye,pi as be,t as xe,tt as Se,ua as Ce,ur as we,va as Te,xn as Ee,yi as De,yn as Oe}from"./api-C4ukGdyH.js";import{s as ke,t as Ae}from"./create-project-workspace-DSTTGom_.js";import{O as je,y as Me}from"./task-utils-BZPVmvY4.js";import{t as Ne}from"./random-uuid-Dc3UrwVo.js";import{n as Pe}from"./use-toast-CKgZ8YeP.js";import{t as F}from"./query-keys-BwswkbMn.js";import{t as Fe}from"./remote-media-url-CyuN31H_.js";import{n as Ie}from"./dist-CgbWuuq4.js";function Le(e){let t=(e??``).replace(/\s+/g,` `).trim().replace(/^["'“”‘’]+|["'“”‘’]+$/g,``).trim();return t?t.length>100?`${t.slice(0,100).trimEnd()}…`:t:``}var Re=1e3,ze=2e3,Be=3e4,Ve=`The model was stuck repeating itself, so the run was stopped.`,He=[`paused`,`blocked`,`awaiting-human`];function Ue(e){return He.some(t=>t===e)}function We(e){let t=Math.max(0,Math.floor(e/1e3)),n=t%60,r=Math.floor(t/60)%60,i=Math.floor(t/3600),a=e=>String(e).padStart(2,`0`);return i>0?`${i}:${a(r)}:${a(n)}`:`${r}:${a(n)}`}var Ge=`Tarsk quit while this was running, so it was interrupted.`,Ke=`*Tarsk quit while this was running, so it was interrupted.*`,qe=[500,1e3,2e3,4e3,8e3,8e3,8e3,8e3],Je=5e3,Ye=1e3,Xe=15e3,Ze=8e3;function Qe(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n.type===`long_running_confirmation`||n.type===`shell_permission`||n.type===`web_fetch_permission`)return t}return-1}function $e(e){return e.type===`content`||e.type===`thinking`?e.chunks.some(e=>e.trim().length>0):!1}function et(e){let t=T(e),n=t.some(e=>D(e)&&e.name===`ask_user`),r=t.some(e=>u(e)&&e.toolName===`ask_user`);if(n&&!r)return!0;let i=Qe(e);return i!==-1&&!e.slice(i+1).some($e)}function tt(e){let t=T(e).filter(e=>e.type!==`compact`);return t.length===0?`...`:t.length===1&&t[0]?.type===`text`&&`text`in t[0]?t[0].text:JSON.stringify(t)}var I=e(n(),1),L=t(),nt=i(),R=new Set,rt=new Map,it=5e3,at=`__thread__`;function ot(e,t){let n=t?.trim();return n?`${e}\0${n}`:`${e}\0${at}`}function st(e){let t=rt.get(e);t&&clearTimeout(t),rt.set(e,setTimeout(()=>{R.delete(e),rt.delete(e)},it))}function ct(e,t){let n=ot(e,t);R.add(n),st(n)}function lt(e,t){return R.has(ot(e,t))||dt(e)}function ut(e){let t=ot(e);R.add(t),st(t)}function dt(e){return R.has(ot(e))}function ft(e){return e.filter(e=>!dt(e))}var pt=`__thread__`;function mt(e,t,n){if(!z(n))return null;let r=e.find(e=>e.threadId===t&&e.conversationId===n);return r?r.isAwaitingHuman?`awaiting-human`:`processing`:null}function ht(e,t){let n=e.filter(e=>e.threadId===t);return n.some(e=>e.isAwaitingHuman)?`awaiting-human`:n.length>0?`processing`:null}function gt(e,t,n){return z(n)?e.some(e=>e.threadId===t&&e.conversationId===n&&e.isAutomated===!0):!1}function _t(e,t){return e.some(e=>e.threadId===t&&e.isAutomated===!0)}function vt(e,t,n,r){let i=n?.trim(),a=r?.trim();if(i&&i!==a)return null;let o=e.filter(e=>e.threadId===t&&z(e.conversationId));return o.length===1?o[0].isAwaitingHuman?`awaiting-human`:`processing`:null}function yt(e){return`${e.threadId}\0${e.conversationId}`}function bt(e,t){let n=new Set(e.filter(e=>e.isAwaitingHuman).map(yt));return t.filter(e=>e.isAwaitingHuman&&!n.has(yt(e)))}function xt(e){let t=e.processingRuns.filter(e=>!lt(e.threadId,e.conversationId));return{threadIds:ft(e.processingThreadIds).filter(n=>t.some(e=>e.threadId===n)||!e.processingRuns.some(e=>e.threadId===n)),processingRuns:t}}function z(e){let t=e?.trim();return!!t&&t!==`__thread__`}function St(e,t,n){return mt(e,t,n)!==null}function Ct(e,t){return t===e.selectedThreadId?e.extraChatPanes:e.threadMultiPaneStates[t]?.extraChatPanes??{}}function wt(e,t,n){if(!z(n))return;let r=Ct(e,t);for(let[e,t]of Object.entries(r))if(t.conversationId===n)return e;let i=t===e.selectedThreadId;if(i&&e.primaryConversationId===n)return y;let a=Object.keys(r).length>0;if(!(i&&a&&e.primaryConversationId!==n))return y}function Tt(e,t,n){let r=[],i=new Set;for(let a of t){if(!z(a.conversationId)||n.isRecentlyFinalized(a.threadId,a.conversationId)||n.isThreadBeingCreated(a.threadId))continue;let t=wt(e,a.threadId,a.conversationId);if(!t||n.hasSession(a.threadId,t))continue;let o=`${a.threadId}:${t}:${a.conversationId}`;i.has(o)||(i.add(o),r.push({threadId:a.threadId,paneId:t,conversationId:a.conversationId}))}return r}function Et(e){let t=e.indexOf(`:`);if(!(t<=0||t===e.length-1))return{threadId:e.slice(0,t),paneId:e.slice(t+1)}}function Dt(e,t,n){return t.includes(e)?g(e,{hasSession:()=>!1,streamingStates:n}):!1}function Ot(e,t,n,r){return!r||!Dt(e,t,n)}function kt(e,t){let n=[];for(let r of Object.keys(e.threadStreamingStates)){if(!e.threadStreamingStates[r].isStreaming)continue;let i=Et(r);i&&(t.threadId&&i.threadId!==t.threadId||e.processingThreadIds.includes(i.threadId)||e.pendingChatMessage?.threadId!==i.threadId&&(t.hasSession(i.threadId,i.paneId)||h(i.threadId,i.paneId)===r&&n.push(i)))}return n}function At(e,t,n){let r=kt(t,n);for(let t of r)e({type:w.ResetStream,threadId:t.threadId,paneId:t.paneId});return r}var jt=(0,I.createContext)(void 0),B=new Map,Mt=new Set;function Nt(e){return Mt.add(e),()=>{Mt.delete(e)}}function Pt(e){return(B.get(e)??0)>0}function Ft(e,t){let n=B.get(e)??0,r=t?n+1:Math.max(0,n-1);if(r!==n){r===0?B.delete(e):B.set(e,r);for(let e of Mt)e()}}var V=new Map,It=new Set;function Lt(e){return It.add(e),()=>{It.delete(e)}}function Rt(e){return(V.get(e)??0)>0}function zt(e,t){let n=V.get(e)??0,r=t?n+1:Math.max(0,n-1);if(r!==n){r===0?V.delete(e):V.set(e,r);for(let e of It)e()}}function Bt(e){let t=(0,L.c)(24),{paneId:n,conversationId:r,fillPane:i,children:a}=e,o=i!==void 0&&i,s=O(),c=k(Ut),l;t[0]===n?l=t[1]:(l=()=>Pt(n),t[0]=n,t[1]=l);let u=(0,I.useSyncExternalStore)(Nt,l,Ht),d;t[2]===n?d=t[3]:(d=()=>Rt(n),t[2]=n,t[3]=d);let f=(0,I.useSyncExternalStore)(Lt,d,Vt),p;t[4]!==s||t[5]!==n?(p=()=>{s({type:w.SetFocusedPane,paneId:n})},t[4]=s,t[5]=n,t[6]=p):p=t[6];let m=p,h;t[7]===n?h=t[8]:(h=e=>{Ft(n,e)},t[7]=n,t[8]=h);let g=h,_;t[9]===n?_=t[10]:(_=e=>{zt(n,e)},t[9]=n,t[10]=_);let v=_,y=c===n,b;t[11]!==u||t[12]!==r||t[13]!==o||t[14]!==f||t[15]!==n||t[16]!==g||t[17]!==m||t[18]!==v||t[19]!==y?(b={paneId:n,conversationId:r,isFocused:y,fillPane:o,setFocused:m,askUserActive:u,setAskUserActive:g,mergedActive:f,setMergedActive:v},t[11]=u,t[12]=r,t[13]=o,t[14]=f,t[15]=n,t[16]=g,t[17]=m,t[18]=v,t[19]=y,t[20]=b):b=t[20];let x=b,S;return t[21]!==a||t[22]!==x?(S=(0,nt.jsx)(jt.Provider,{value:x,children:a}),t[21]=a,t[22]=x,t[23]=S):S=t[23],S}function Vt(){return!1}function Ht(){return!1}function Ut(e){return e.focusedPane}function Wt(e){let t=(0,L.c)(2),n;return t[0]===e?n=t[1]:(n=()=>Pt(e),t[0]=e,t[1]=n),(0,I.useSyncExternalStore)(Nt,n,Gt)}function Gt(){return!1}function Kt(){return(0,I.useSyncExternalStore)(Nt,Jt,qt)}function qt(){return!1}function Jt(){return B.size>0}function Yt(){let e=(0,L.c)(1),t=(0,I.useContext)(jt);if(t===void 0){let t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={paneId:`primary`,conversationId:void 0,isFocused:!0,fillPane:!1,setFocused:Qt,askUserActive:!1,setAskUserActive:Zt,mergedActive:!1,setMergedActive:Xt},e[0]=t):t=e[0],t}return t}function Xt(){}function Zt(){}function Qt(){}function $t(){let{paneId:e,conversationId:t}=Yt(),n=k(en);return t??(e===y?n:void 0)}function en(e){return e.primaryConversationId}var tn=Ie(`KeepAwake`,{web:()=>r(()=>import(`./web-Dlo3GwCf.js`).then(e=>new e.KeepAwakeWeb),__vite__mapDeps([0,1]))}),H=0;function nn(){return typeof window<`u`&&De()}async function rn(){if(nn()&&(H+=1,!(H>1)))try{await tn.keepAwake()}catch{H=0}}async function U(){if(nn()&&H!==0&&(--H,!(H>0)))try{await tn.allowSleep()}catch{H=0}}async function an(){if(H=0,nn())try{await tn.allowSleep()}catch{}}var W=l(`app.use-chat-handlers.hook`),G=l(`git.checkpoint`);async function on(e,t,n,r,i,a){if(n===y&&!r?.trim())throw Error(`Refusing to reload primary chat history without a conversation ID`);let o=await me(t,r);if(t===i.current&&!a?.isStale?.()){if(n!==y){e({type:w.SetPaneMessages,paneId:n,messages:o.messages});return}e({type:w.SetMessages,messages:o.messages,conversationId:r,historyEpoch:a?.historyEpoch})}}function K(e,t,n){return{...e,threadId:t,paneId:n}}var sn=/^\/compact(?:\s+(.*))?$/i,cn=/^\/send-event(?:\s+([a-zA-Z0-9._:-]+))?(?:\s+([\s\S]+))?$/i;function ln(e,t,n){e(K({type:w.SetStreaming,isStreaming:!0},t,`primary`)),e(K({type:w.SetStreamModel,model:n},t,`primary`)),e(K({type:w.AppendStreamChunk,chunkType:`content`,content:``,segments:b([],{status:`running`})},t,`primary`))}var un=8e3;async function dn(e,t){try{let n=await Promise.race([ae(e,t),new Promise(e=>{setTimeout(()=>e(null),un)})]);if(n===null){G.warn(`Checkpoint creation timed out`,{threadId:e,messageId:t});return}if(n.success&&n.checkpointRef)return n.stashed||G.debug(`Checkpoint recorded with clean working tree`,{threadId:e,messageId:t}),n.checkpointRef;`error`in n&&n.error?G.warn(`Checkpoint creation failed`,{threadId:e,messageId:t,error:n.error}):n.success||G.debug(`Checkpoint skipped`,{threadId:e,messageId:t,reason:n.reason})}catch(n){G.warn(`Checkpoint creation errored`,{threadId:e,messageId:t,error:n instanceof Error?n.message:String(n)})}}function fn(e){return e.type!==`subagent_event`||!e.subagentEvent?null:gn(e.subagentEvent)}function pn(e){return e.content&&e.isThinking||e.content&&!e.isThinking&&e.role!==`tool`?e.content:e.role===`tool`&&e.content?xn(e.content):null}function mn(e){let t=e.shellPermission?.command?.trim();return t?`\n⏳ Waiting for shell approval: ${t}\n`:`
|
|
3
|
+
⏳ Waiting for shell approval…
|
|
4
|
+
`}function hn(e){let t=e.webFetchPermission?.hostname?.trim();return t?`\n⏳ Waiting for approval to fetch ${t}\n`:`
|
|
5
|
+
⏳ Waiting for web fetch approval…
|
|
6
|
+
`}function gn(e){switch(e.type){case`message`:return pn(e);case`shell_permission`:return mn(e);case`web_fetch_permission`:return hn(e);case`error`:return e.content?`\n${e.content}`:null;default:return null}}function _n(e){let t=e.content??``;return typeof t==`string`?t:JSON.stringify(t)}function vn(e,t){let n=_n(t);return n?t.isThinking?j(e,`thinking`,n):_(n)?A(e,n):n.trim().startsWith(`[`)?e:j(e,`content`,n):e}function yn(e,t){let n=_n(t);return n?_(n)?A(e,n):j(e,`content`,n):e}function bn(e,t){switch(t.type){case`message`:return vn(e,t);case`result`:return yn(e,t);case`shell_permission`:return t.shellPermission?p(e,t.shellPermission):e;case`web_fetch_permission`:return t.webFetchPermission?v(e,t.webFetchPermission):e;case`error`:{let n=t.content?.trim()||t.error?.message?.trim();return n?j(e,`content`,`\n\n${n}`):e}default:return e}}function xn(e){try{let t=JSON.parse(e);if(!Array.isArray(t))return null;let n=[];for(let e of t)if(e.type===`tool_use`&&e.name)n.push(`\n→ ${e.name}\n`);else if(e.type===`tool-result`&&e.content){let t=typeof e.content==`string`?e.content.trim():JSON.stringify(e.content),r=t.slice(0,120);if(r){let e=t.length>120?`…`:``;n.push(`✓ ${r}${e}\n`)}}return n.length>0?n.join(``):null}catch{return null}}function Sn(e,t){return o(e,t)}var Cn=new WeakMap;function wn(e,t){if(t.length<e.count)return!1;for(let n=0;n<e.count;n++)if(e.events[n]!==t[n])return!1;return!0}function Tn(e){let t=e[0];if(!t)return[];let n=Cn.get(t),r=n!==void 0&&wn(n,e);if(r&&n.count===e.length)return n.blocks;let i=r?n.segments:[];for(let t=r?n.count:0;t<e.length;t++)i=bn(i,e[t]);let a=T(i);return Cn.set(t,{events:e,count:e.length,segments:i,blocks:a}),a}var En=`tarsk-browser-tool-request`,Dn=`tarsk-ask-user-prompt`;function q(e,t,n){try{fetch(`/api/logs`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({level:e,context:`browser-tool`,message:t,data:n})}).catch(()=>void 0)}catch{}}var J=new Set,On=new Set,Y=new Map,kn=new Map,An=new Map,jn=new Map;function Mn(e,t){return`${e}:${t}`}var Nn=`tarsk.ask-user-tool-ownership.v1`,Pn=864e5;function Fn(){if(typeof window<`u`)try{let e=window.localStorage.getItem(Nn);if(!e)return;let t=JSON.parse(e),n=Date.now()-Pn;for(let[e,r]of Object.entries(t.askUser??{}))r.updatedAt>=n&&r.paneId&&(kn.set(e,r.paneId),r.threadId&&Y.set(e,r.threadId));for(let[e,r]of Object.entries(t.subagents??{}))r.updatedAt>=n&&r.paneId&&jn.set(e,r.paneId)}catch{}}var In=!1;function Ln(){typeof window>`u`||In||(In=!0,window.setTimeout(()=>{In=!1;try{let e=Date.now(),t={};for(let[n,r]of kn)t[n]={paneId:r,threadId:Y.get(n),updatedAt:e};let n={};for(let[t,r]of jn)n[t]={paneId:r,updatedAt:e};window.localStorage.setItem(Nn,JSON.stringify({askUser:t,subagents:n}))}catch{}},0))}Fn();function Rn(e,t){jn.set(e,t),Ln()}function zn(e){return jn.get(e)}function Bn(e){be()&&window.dispatchEvent(new CustomEvent(En,{detail:e}))}var Vn=`Browser RPC is unavailable for remote Threads. The local browser was not opened or controlled.`,Hn=new Set;function Un(e,t,n){J.add(e),q(`WARN`,n,{toolCallId:e,threadId:t}),Ee(e,{error:n},t).catch(()=>{q(`ERROR`,`Failed to report browser refusal`,{toolCallId:e,threadId:t})})}function Wn(e,t,n){if(J.has(e)||Hn.has(e))return;if(!n){Gn(e,t,n);return}let r=Fe(n);if(r){r.remoteMachineId||r.remotePublicUrl?Un(e,n,Vn):Gn(e,t,n);return}Hn.add(e),ie(n).then(r=>{r.remoteMachineId||r.remotePublicUrl?Un(e,n,Vn):Gn(e,t,n)}).catch(()=>{Un(e,n,`Browser RPC refused: Thread execution ownership could not be verified. No local browser action was executed.`)}).finally(()=>{Hn.delete(e)})}function Gn(e,t,n){if(!be()){q(`WARN`,`browser tool request ignored: not running inside Electrobun`,{toolCallId:e});return}if(J.has(e)){q(`INFO`,`browser tool request ignored: duplicate toolCallId`,{toolCallId:e});return}if(!t.action){q(`WARN`,`browser tool request ignored: missing action`,{toolCallId:e,inputKeys:Object.keys(t??{})});return}J.add(e),q(`INFO`,`browser tool request dispatched`,{toolCallId:e,action:t.action,threadId:n}),Bn({toolCallId:e,input:t,threadId:n})}function Kn(e,t,n){Y.set(e,t),n&&(kn.set(e,n),An.set(Mn(t,n),e),Ln())}function qn(e,t,n){Kn(e,t,n),!On.has(e)&&(On.add(e),window.dispatchEvent(new CustomEvent(Dn,{detail:{toolCallId:e,threadId:t,paneId:n}})))}function Jn(e){return Y.get(e)}function Yn(e){return kn.get(e)}function Xn(e,t){return e?An.get(Mn(e,t))??null:null}function Zn(){return be()?`views://public/browser-preview-rpc.js`:`${ye()}/browser-preview-rpc.js`}async function Qn(e,t){await se(e,t)}async function $n(e,t){await Ee(e,t)}var er=new Map;function tr(e){return e.trim()}function nr(){let e=le(re.BASH_COMMAND_DURATIONS);if(!e)return{};try{let t=JSON.parse(e);if(typeof t!=`object`||!t||Array.isArray(t))return{};let n={};for(let[e,r]of Object.entries(t))typeof r==`number`&&Number.isFinite(r)&&r>0&&(n[tr(e)]=r);return n}catch{return{}}}function rr(e){Ce(re.BASH_COMMAND_DURATIONS,JSON.stringify(e))}function ir(e){return nr()[tr(e)]??null}function ar(e,t){let n=tr(e);if(!n||!Number.isFinite(t)||t<=0)return;let r=nr();r[n]=Math.round(t),rr(r)}function or(e,t){t?.trim()&&!er.has(e)&&er.set(e,{command:tr(t),startedAt:Date.now()})}function sr(e){let t=er.get(e);if(!t)return;let n=Date.now()-t.startedAt;ar(t.command,n),er.delete(e)}var cr=`tarsk-chat-title-tool-request`,lr=new Set;function ur(e){if(lr.has(e.toolCallId))return;let t=Le(e.title);t&&(lr.add(e.toolCallId),window.dispatchEvent(new CustomEvent(cr,{detail:{...e,title:t}})))}function dr(e,t){if(e.includes(`"browser"`))try{let n=JSON.parse(e.trim());if(!Array.isArray(n))return;for(let e of n)e?.type===`tool_use`&&e?.name===`browser`&&e?.id&&e?.input&&Wn(e.id,e.input,t)}catch{return}}function fr(e,t,n,r){if(e.includes(`"chat_title"`))try{let i=JSON.parse(e.trim());if(!Array.isArray(i))return;for(let e of i)e?.type===`tool_use`&&e?.name===`chat_title`&&e?.id&&e?.input&&ur({toolCallId:e.id,title:typeof e.input.title==`string`?e.input.title:``,threadId:t,paneId:n,...r?{conversationId:r}:{}})}catch{return}}function X(e,t,n){if(e.includes(`"ask_user"`))try{let r=JSON.parse(e.trim());if(!Array.isArray(r))return;for(let e of r)e?.type===`tool_use`&&e?.name===`ask_user`&&e?.id&&qn(e.id,t,n)}catch{return}}function pr(e){if(e.includes(`"tool_use"`)&&e.includes(`"bash"`))try{let t=JSON.parse(e.trim());if(!Array.isArray(t))return;for(let e of t)e?.type===`tool_use`&&e?.id&&typeof e.name==`string`&&e.name.toLowerCase()===`bash`&&typeof e.input?.command==`string`&&or(e.id,e.input.command)}catch{return}}function mr(e){if(e.includes(`"tool-result"`)&&e.includes(`"bash"`))try{let t=JSON.parse(e.trim());if(!Array.isArray(t))return;for(let e of t)e?.type===`tool-result`&&e?.toolCallId&&typeof e.toolName==`string`&&e.toolName.toLowerCase()===`bash`&&sr(e.toolCallId)}catch{return}}function hr(e,t){let n=t?.trim();if(n){ct(e,n);return}ut(e)}function Z(e,t,n){let r=n?.trim();e({type:w.RemoveProcessingThread,threadId:t,...r?{conversationId:r}:{}})}function gr(e,t,n,r){return{messageId:`msg-${Date.now()}-${n}`,sender:`agent`,content:e,contentType:r,timestamp:new Date().toISOString(),model:t||`default`,isThinking:!1}}function _r(e){return new Promise(function(t){setTimeout(t,e)})}async function vr(e,t,n){let r=h(e,t.paneId),i=!1;for(let a=0;a<=qe.length;a++){try{let a=await N();if(n.streamSessionsRef.current.get(r)!==t)return null;if(a.unavailableThreadIds?.includes(e))throw Error(`Chat stream roster is unavailable`);return{state:a,sawOutage:i}}catch(e){i=!0,W.error(`Failed to recover chat stream after disconnect:`,e)}if(a===qe.length)break;if(await _r(qe[a]),n.streamSessionsRef.current.get(r)!==t)return null}return null}function yr(e,t,n){return n.conversationId?e.processingRuns.some(function(e){return e.threadId===t&&e.conversationId===n.conversationId}):e.processingThreadIds.includes(t)}async function br(e,t,n){let r=h(e,t.paneId),i=null;for(let a=0;a<Je;a+=Ye){if(await _r(Ye),n.streamSessionsRef.current.get(r)!==t)return!1;try{let n=await N();if(i=n.unavailableThreadIds?.includes(e)?null:yr(n,e,t),i)return!0}catch(e){i=null,W.warn(`Failed to check for a resumed run:`,e)}}return i}function xr(e,t,n,r,i){n.pendingTransientRecovery=!1;let a=h(e,n.paneId);(async()=>{let o=await vr(e,n,r);if(r.streamSessionsRef.current.get(a)!==n||o===null)return;let s=yr(o.state,e,n)?!0:o.sawOutage?await br(e,n,r):!1;if(s!==null&&r.streamSessionsRef.current.get(a)===n){if(s){r.connectThreadStreamRef.current?.(e,t=>P(e,t,n.conversationId),t,n.paneId,n.conversationId);return}i(e,t,n)}})()}function Sr(e){e.keepsDeviceAwake&&(e.keepsDeviceAwake=!1,U())}function Cr(e,t,n,r){r({type:w.AddMessage,message:gr(`Error: ${n.error}`,t,`error`,`text`),threadId:e,paneId:n.paneId}),r(K({type:w.ResetStream},e,n.paneId)),Z(r,e,n.conversationId),r({type:w.SetThreadError,threadId:e,error:n.error??`Unknown error occurred`})}function wr(e,t,n,r){n.segments.length>0&&r({type:w.AddMessage,message:gr(tt(n.segments),t,`agent`,`markdown`),threadId:e,paneId:n.paneId}),r({type:w.AddMessage,message:gr(`I've stopped working on your request.`,t,`stopped`,`text`),threadId:e,paneId:n.paneId}),Tr(e,n,r)}function Tr(e,t,n){n(K({type:w.ResetStream},e,t.paneId)),n({type:w.SetActiveStreamPane,paneId:null}),n({type:w.MarkThreadCompleted,threadId:e,paneId:t.paneId}),Z(n,e,t.conversationId)}function Er(e,t,n,r){if(r.streamSessionsRef.current.has(t))return!0;let i=r.getPaneConversationId?.(e.paneId)?.trim();return e.conversationId?.trim()&&i&&e.conversationId!==i?!0:n!==void 0&&r.getHistoryEpoch?.()!==n}async function Dr(e,t,n,r,i){for(let a=0;a<6;a++){if(a>0&&await _r(150*2**(a-1)),r())return`stale`;try{return await on(n.dispatch,e,t.paneId,t.conversationId,n.selectedThreadIdRef,{isStale:r,historyEpoch:i}),r()?`stale`:`applied`}catch(e){W.error(`Failed to reload chat history after stream:`,e)}}return`failed`}function Or(e,t,n,r){let i=tt(n.segments);i&&r({type:w.AddMessage,message:gr(i,t,`agent`,`markdown`),threadId:e,paneId:n.paneId})}async function kr(e,t,n,r,i){let a=i.getHistoryEpoch?.();function o(){return Er(n,r,a,i)}let s=await Dr(e,n,i,o,a);s===`stale`||o()||(s!==`applied`&&Or(e,t,n,i.dispatch),Tr(e,n,i.dispatch))}function Ar(e){function t(n,r,i){let a=h(n,i.paneId);if(e.streamSessionsRef.current.get(a)===i){if(i.pendingTransientRecovery){xr(n,r,i,e,t);return}if(e.streamSessionsRef.current.delete(a),e.dispatch({type:w.ClearToolCallProgress}),Sr(i),hr(n,i.conversationId),i.error&&!i.stopHandled){Cr(n,r,i,e.dispatch);return}if(i.stopHandled){wr(n,r,i,e.dispatch);return}kr(n,r,i,a,e)}}return t}async function jr(e,t,n){let r=[...e.current.entries()].filter(function([e,n]){let r=e.split(`:`)[0];return n.connected===!0&&!!n.conversationId&&!n.pendingTransientRecovery&&!t.some(function(e){return e.threadId===r&&e.conversationId===n.conversationId})});if(r.length!==0)try{let t=await N();for(let[i,a]of r){let r=i.split(`:`)[0];e.current.get(i)!==a||a.pendingTransientRecovery||t.unavailableThreadIds?.includes(r)||t.processingRuns.some(function(e){return e.threadId===r&&e.conversationId===a.conversationId})||(n(r,`default`,a),a.controller.abort(),a.cancel?.())}}catch(e){W.warn(`Could not reconcile idle chat streams`,{error:e})}}function Q(e,t,n){let{dispatch:r,threadId:i,streamPaneId:a,session:o}=e;r(K({type:w.AppendStreamChunk,chunkType:t,content:n,segments:o.segments},i,a))}function Mr(e){return e===`STREAM_REPETITION`?Ve:e===`TOOL_MARKUP_LEAK`?s:null}function Nr(e,t){let{threadId:n,streamPaneId:r,session:i,setPaneError:a}=e,o=Mr(t.error?.code);if(o){let n=t.content?.trim()||o;i.assistantMessage+=n,i.segments=j(i.segments,`content`,`\n\n${n}`),Q(e,`content`,`\n\n${n}`);return}let s=Te(t.content?.trim()||t.error?.message?.trim()||t.message?.trim()||`Unknown error occurred`);i.error=s,a(n,r,s)}function Pr(e,t){let{session:n}=e,r=t.messagesBefore,i=t.content?.trim()||(typeof r==`number`?`Started a fresh context window; ${r} earlier exchanges remain searchable`:`Started a fresh context window`),a=t.autoCompactKind??`rollover`;if(a===`retry`||a===`resume`){n.segments=j(n.segments,`thinking`,`[Auto-compacted] ${i}\n`),Q(e,`thinking`,i);return}n.segments=b(n.segments,{status:a===`rollover-started`?`running`:`done`,detail:i}),Q(e,`content`,``)}function Fr(e,t){let{session:n}=e,r=t.prompt;r&&(n.segments=f(n.segments,r),Q(e,`content`,``))}function Ir(e,t){let{threadId:n,dispatch:r,session:i}=e,a=t.shellPermission;a&&(i.activeSubagentToolCallId&&r({type:w.AppendToolExecutionOutput,toolCallId:i.activeSubagentToolCallId,threadId:n,toolName:`agent`,delta:`\n⏳ Waiting for shell approval: ${a.command}\n`}),i.segments=p(i.segments,a),Q(e,`content`,``))}function Lr(e,t){let{session:n}=e;n.segments=x(n.segments,t),Q(e,`content`,``)}function Rr(e,t){let{threadId:n,dispatch:r,session:i}=e,a=t.webFetchPermission;a&&(i.activeSubagentToolCallId&&r({type:w.AppendToolExecutionOutput,toolCallId:i.activeSubagentToolCallId,threadId:n,toolName:`agent`,delta:`\n⏳ Waiting for approval to fetch ${a.hostname}\n`}),i.segments=v(i.segments,a),Q(e,`content`,``))}function zr(e,t){let{threadId:n,dispatch:r}=e;if(t.partial?.content?.[0]?.id&&t.delta){let e=t.partial.content[0].id,i={toolCallId:e,threadId:n,toolName:t.partial.content[0].name,delta:t.delta,partial:t.partial};r({type:w.UpdateToolCallProgress,toolCallId:e,progress:i})}}function Br(e,t){let{threadId:n,dispatch:r}=e;t.toolCallId&&t.executionOutput!==void 0&&r({type:w.UpdateToolExecutionOutput,toolCallId:t.toolCallId,threadId:n,toolName:t.toolName,executionOutput:t.executionOutput})}function Vr(e,t){let{threadId:n,dispatch:r,session:i}=e;if(t.toolCallId){i.activeSubagentToolCallId=t.toolCallId;let e=t.subagentName?.trim()||`subagent`;r({type:w.UpdateToolExecutionOutput,toolCallId:t.toolCallId,threadId:n,toolName:`agent`,executionOutput:`Running ${e}…\n`})}}function Hr(e,t){let{threadId:n,dispatch:r,session:i}=e;if(!t.toolCallId)return;if(Rn(t.toolCallId,i.paneId),t.subagentEvent){r({type:w.AppendSubagentEvent,toolCallId:t.toolCallId,event:t.subagentEvent});let e=typeof t.subagentEvent.content==`string`?t.subagentEvent.content:t.subagentEvent.content?JSON.stringify(t.subagentEvent.content):``;e&&X(e,n,i.paneId)}let a=fn(t);a&&r({type:w.AppendToolExecutionOutput,toolCallId:t.toolCallId,threadId:n,toolName:`agent`,delta:a})}function Ur(e,t){let{threadId:n,dispatch:r,session:i}=e;t.toolCallId&&(i.activeSubagentToolCallId=null,t.subagentResult&&r({type:w.UpdateToolExecutionOutput,toolCallId:t.toolCallId,threadId:n,toolName:`agent`,executionOutput:t.subagentResult}))}function Wr(e,t){let{threadId:n,streamPaneId:r,dispatch:i}=e;t.contextUsage&&i(K({type:w.SetContextUsage,contextUsage:t.contextUsage},n,r))}function Gr(e,t){let{threadId:n,session:r}=e,i=t.content??``;if(dr(i,n),X(i,n,r.paneId),fr(i,n,r.paneId,r.conversationId),_(i)){pr(i),mr(i),r.hasStructuredContent=!0,r.segments=A(r.segments,i),r.assistantMessage=ee(r.segments),Q(e,`content`,``);return}r.assistantThinking+=i,r.segments=j(r.segments,`thinking`,i),Q(e,`thinking`,i)}function Kr(e,t){let{threadId:n,streamPaneId:r,dispatch:i,session:a}=e;a.hasStructuredContent=!0;let o=t.content??``;a.assistantMessage=o,a.segments=m(a.segments,o),i(K({type:w.SetStreamContent,content:o},n,r)),typeof o==`string`&&(dr(o,n),X(o,n,a.paneId))}function qr(e,t){let{session:n}=e;if(n.hasStructuredContent)return;let r=t.content??``;n.assistantMessage+=r,n.segments=j(n.segments,`content`,r),Q(e,`content`,r)}function Jr(e,t){if(t.type===`auto_compact`)return Pr(e,t),!0;if(t.type===`long_running_confirmation`)return Fr(e,t),!0;if(t.type===`shell_permission`)return Ir(e,t),!0;let n=t;return n.type===`seatbelt_escalation`?(n.seatbeltEscalation&&Lr(e,n.seatbeltEscalation),!0):t.type===`web_fetch_permission`&&(Rr(e,t),!0)}function Yr(e,t){return t.type===`toolcall_delta`?(zr(e,t),!0):t.type===`tool_execution_update`?(Br(e,t),!0):t.type===`subagent_start`?(Vr(e,t),!0):t.type===`subagent_event`?(Hr(e,t),!0):t.type===`subagent_complete`&&(Ur(e,t),!0)}function Xr(e,t){if(t.type===`context_usage`){Wr(e,t);return}if(t.model){let{dispatch:n,threadId:r,streamPaneId:i}=e;n(K({type:w.SetStreamModel,model:t.model},r,i))}if(t.type===`thinking`||t.isThinking){Gr(e,t);return}if(t.type===`result`){Kr(e,t);return}qr(e,t)}function Zr(e,t){let{dispatch:n,threadId:r,streamPaneId:i}=e;if(n(K({type:w.IncrementStreamEventCount},r,i)),t.type===`error`){Nr(e,t);return}t.type!==`message`&&(Jr(e,t)||Yr(e,t)||Xr(e,t))}function Qr(e,t){let{threadId:n,streamPaneId:r,model:i,session:a,setPaneError:o,finalizeThreadStream:s}=e;if(t.includes(`AbortError`)||t.includes(`canceled`)||t.includes(`BodyStreamBuffer was aborted`)){s(n,i,a);return}if(oe(t)){a.pendingTransientRecovery=!0;return}let c=Te(t.trim()||`Unknown error (no error details in response)`);a.error=c,o(n,r,c),s(n,i,a)}function $r(e,t){let{threadId:n,session:r}=e;dr(t,n),X(t,n,r.paneId),r.assistantThinking+=t,r.segments=j(r.segments,`thinking`,t),Q(e,`thinking`,t)}function ei(e,t){if(typeof e==`object`&&Array.isArray(e)&&e.length>0)return!0;if(typeof t==`string`&&t.trim().startsWith(`[`))try{let e=JSON.parse(t);return Array.isArray(e)&&e.length>0}catch{}return!1}function ti(e,t){let{threadId:n,streamPaneId:r,dispatch:i,session:a}=e,o=t.content??``,s=typeof o==`string`?o:JSON.stringify(o);if(t.isThinking??!1){$r(e,s);return}ei(o,s)?(a.hasStructuredContent=!0,a.assistantMessage=s,a.segments=m(a.segments,s),i(K({type:w.SetStreamContent,content:s},n,r)),dr(s,n),X(s,n,a.paneId),fr(s,n,a.paneId,a.conversationId)):(a.assistantMessage+=s,a.segments=j(a.segments,`content`,s),Q(e,`content`,s))}function ni(e,t){let{session:n}=e,r=t.content??``,i=typeof r==`string`?r:JSON.stringify(r);i&&(pr(i),mr(i),fr(i,e.threadId,e.session.paneId,e.session.conversationId),_(i)?(n.hasStructuredContent=!0,n.segments=A(n.segments,i),n.assistantMessage=ee(n.segments),Q(e,`content`,``)):i.trim().startsWith(`[`)||(n.assistantMessage+=i,n.segments=j(n.segments,`content`,i),Q(e,`content`,i)))}function ri(e,t){let{dispatch:n,threadId:r,streamPaneId:i}=e;n(K({type:w.IncrementStreamEventCount},r,i)),t.role===`assistant`?ti(e,t):t.role===`tool`&&ni(e,t)}function ii(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function ai(e,t,n){return!(`threadId`in e&&e.threadId!==t||`conversationId`in e&&e.conversationId!==n)}function oi(e,t,n){if(!ii(e))return;let r=e.details;if(!ii(r)||!ai(r,t,n))return;let i=r.runId;return typeof i==`string`&&i.trim()?i:void 0}function si(e,t,n){return e.threadId===t&&(!n||e.conversationId===n)}function ci(e,t,n){let r=e.filter(function(e){return si(e,t,n)});return r.length===1?r[0].runId:void 0}async function li(e,t,n){let r=oi(e,t,n);if(r)return r;let i=await N();if(i.unavailableThreadIds?.includes(t))throw Error(`Chat stream roster is unavailable`);return ci(i.processingRuns,t,n)}function ui(e){let{dispatch:t,streamSessionsRef:n,setPaneError:r,setShowEmptyBalanceDialog:i,finalizeThreadStream:a,onStreamConnected:o}=e;function s(e,s,c,l,u){let d=h(e,l),f=n.current.get(d);f&&(Sr(f),f.controller.abort(),f.cancel?.());let p=new AbortController,m={controller:p,cancel:null,segments:[],assistantMessage:``,assistantThinking:``,hasStructuredContent:!1,error:null,stopHandled:!1,pendingTransientRecovery:!1,activeSubagentToolCallId:null,paneId:l,conversationId:u,keepsDeviceAwake:!1};n.current.set(d,m),t(K({type:w.ResetStream},e,l)),t({type:w.AddProcessingThread,threadId:e,conversationId:u}),t(K({type:w.SetStreaming,isStreaming:!0},e,l)),t({type:w.SetActiveStreamPane,paneId:l}),rn().then(()=>{if(n.current.get(d)!==m){U();return}m.keepsDeviceAwake=!0});function g(o){if(n.current.get(d)!==m)return;if(Sr(m),o instanceof Error&&o.name===`AbortError`){if(m.stopHandled||!n.current.has(d))return;n.current.delete(d),t(K({type:w.ResetStream},e,l)),Z(t,e,u);return}if(o instanceof xe){n.current.delete(d),t(K({type:w.ResetStream},e,l)),Z(t,e,u),i(!0);return}if(o instanceof Error&&o.message.includes(`not currently processing`)){n.current.delete(d),t(K({type:w.ResetStream},e,l)),Z(t,e,u);return}if(o instanceof Error&&oe(o.message)){m.pendingTransientRecovery=!0,a(e,c,m);return}let s=Te((o instanceof Error?o.message:``).trim()||`Unknown error (no error details in response)`);m.error=s,r(e,l,s),W.error(`Failed to subscribe to chat stream:`,o),a(e,c,m)}async function _(){let t=null;try{t=await s(p.signal)}catch(r){if(n.current.get(d)!==m)return;if(!he(r,m.conversationId)||p.signal.aborted){g(r);return}m.runId=void 0;try{let i=await li(r,e,m.conversationId);if(n.current.get(d)!==m||p.signal.aborted)return;m.runId=i,t=await P(e,p.signal,m.conversationId)}catch(e){g(e);return}}return t}function v(t){if(n.current.get(d)===m){if(!t||p.signal.aborted){!p.signal.aborted&&!m.stopHandled&&!m.error&&(m.pendingTransientRecovery=!0),a(e,c,m);return}m.connected=!0,o?.(),y(t)}}function y(i){let o={dispatch:t,threadId:e,streamPaneId:l,session:m,model:c,finalizeThreadStream:a,setPaneError:r};m.cancel=te(i,e=>{n.current.get(d)===m&&Zr(o,e)},()=>{n.current.get(d)===m&&a(e,c,m)},e=>{n.current.get(d)===m&&Qr(o,e)},e=>{n.current.get(d)===m&&ri(o,e)})}async function b(){let e=await _();e!==void 0&&v(e)}return b(),p}return s}async function di(e,t,n,r){await Oe(t,n,r),await Promise.all([e.invalidateQueries({queryKey:F.conversations.recent()}),e.invalidateQueries({queryKey:F.conversations.unreadAll()})])}var fi=new Map;function pi(e,t){let n=(fi.get(e)??Promise.resolve()).catch(()=>void 0).then(()=>pe(e,{chatTitles:t}));return fi.set(e,n),n.catch(()=>void 0).finally(()=>{fi.get(e)===n&&fi.delete(e)}),n}var mi=l(`app.use-restore-chat-to-chats`);function hi(){let e=a();return(0,I.useCallback)(async function(t,n){try{await Promise.all([we(t,n),_e(t,n)])}catch(e){mi.error(`Failed to restore chat to the Chats group`,{error:e,threadId:t,conversationId:n})}finally{e.invalidateQueries({queryKey:F.conversations.unreadAll()}),e.invalidateQueries({queryKey:F.conversations.archivedAll()})}},[e])}var gi=/^\/(goal|ralph)(?:\s+([\s\S]*))?$/i,_i=/(?:^|\s)--(check|rounds|spend)(?:=|\s+)(?:"([^"]*)"|'([^']*)'|(\S+))/gi;function vi(e){return gi.test(e.trim())}function yi(e){let t=[];for(let n of e.matchAll(_i)){let e=n.index;t.push({name:(n[1]??``).toLowerCase(),value:n[2]??n[3]??n[4]??``,start:e,end:e+n[0].length})}return t}function bi(e,t){let n=``,r=0;for(let i of t)n+=`${e.slice(r,i.start)} `,r=i.end;return n+=e.slice(r),n.replace(/\s+/g,` `).trim()}function xi(e){let t=e.trim();return t?t.length>500?{ok:!1,message:`--check must be at most 500 characters.`}:{ok:!0,value:t}:{ok:!1,message:`--check needs the command to run.`}}function Si(e){if(!/^\d+$/.test(e.trim()))return{ok:!1,message:`--rounds takes a whole number, not \`${e}\`.`};let t=Number(e);return t<1||t>100?{ok:!1,message:`--rounds must be between 1 and 100.`}:{ok:!0,value:t}}function Ci(e){let t=Number(e.trim());return!Number.isFinite(t)||t<=0?{ok:!1,message:`--spend takes a positive amount in dollars, not \`${e}\`.`}:{ok:!0,value:t}}var wi={check:{duplicateMessage:`Use --check once.`,parse:xi},rounds:{duplicateMessage:`Use --rounds once.`,parse:Si},spend:{duplicateMessage:`Use --spend once.`,parse:Ci}};function Ti(e,t,n){if(e[t]!==void 0)return{type:`invalid`,message:wi[t].duplicateMessage};let r=wi[t].parse(n);if(!r.ok)return{type:`invalid`,message:r.message};e[t]=r.value}function Ei(e){let t=e.trim().match(gi);if(!t)return{type:`not-goal`};let n=t[2]??``,r=yi(n),i={};for(let e of r){let t=Ti(i,e.name,e.value);if(t)return t}let a=bi(n,r);return a?{type:`goal`,request:{objective:a,...i.check===void 0?{}:{checkCommand:i.check},...i.rounds===void 0?{}:{roundCap:i.rounds},...i.spend===void 0?{}:{spendCeilingUsd:i.spend}}}:{type:`invalid`,message:`Use /goal <objective> to start a Goal. Rounds default to 100.`}}function Di(){let e=Ne(),t=performance.now();function n(){return Math.round(performance.now()-t)}return{traceId:e,elapsedMs:n}}function Oi(e){return{traceId:e.traceId,submitMs:e.elapsedMs()}}var $=/(?<!\S)(?:in\s+a\s+new\s+)?\/workspace(?=\s|$)/gi;function ki(e){return $.lastIndex=0,$.test(e)?($.lastIndex=0,{leftoverPrompt:e.replace($,` `).replace(/[^\S\n]{2,}/g,` `).replace(/[ \t]*\n[ \t]*/g,`
|
|
7
|
+
`).replace(/\n{3,}/g,`
|
|
8
|
+
|
|
9
|
+
`).trim()}):null}function Ai(e){return e.some(e=>e.sender===`user`)}function ji(e,t){let n=e.trim(),r=Mi(t).trim();return r?n?`${n}\n\nContext from the previous workspace:\n\n${r}`:r:n}function Mi(e){return $.lastIndex=0,e.replace($,` `).replace(/[^\S\n]{2,}/g,` `).trim()}function Ni(e,t,n,r){let i=e.beginPreparation?.(t,n,r),a=i?.controller??new AbortController,o=()=>!a.signal.aborted&&(!r||e.getPaneConversationId(n)===r);i||(e.dispatch(K({type:w.SetStreaming,isStreaming:!0},t,n)),e.dispatch({type:w.SetActiveStreamPane,paneId:n}));let s=!1;return{controller:a,runId:i?.runId,isLiveConversation:o,isCurrent:()=>o()&&!e.isPaneStopping?.(t,n)&&(i?.isCurrent()??!0),release:()=>{s||(s=!0,i?.release())}}}function Pi(e){return e.trim().replace(/\n/g,` `).slice(0,100)}function Fi(e,t,n){return e.isPaneStopping?.(t,n)??!1}function Ii(e,t,n){return n(e)?.trim()||t?.trim()||void 0}async function Li(e,t,n,r,i,a){if(!i)return!1;let o={...a,[r]:i};e({type:w.UpdateChatTitle,projectId:t,threadId:n,paneId:r,title:i});try{return await pi(n,o),!0}catch(e){return W.error(`Failed to update chat title:`,e),!1}}var Ri=new Map;function zi(e,t){return`${e}:${t}`}function Bi(e,t){let n=zi(e,t),r=(Ri.get(n)??0)+1;return Ri.set(n,r),r}function Vi(e,t,n){return Ri.get(zi(e,t))===n}async function Hi(e,t,n){let{selectedProjectId:r,dispatch:i,toast:a,getChatTitles:o,getPaneConversationId:s}=e,c=t.message.trim().match(/^\/chat-title(?:\s+([\s\S]+))?$/i);if(!c)return!1;let l=Le(c[1]);if(!l)return a({title:`Chat title required`,description:`Use /chat-title followed by the title you want to set.`,variant:`destructive`}),!0;if(!r)return a({title:`No project selected`,description:`Open a project thread before setting its chat title.`,variant:`destructive`}),!0;let u=await Li(i,r,t.activeThreadId,t.paneId,l,o(t.activeThreadId)),d=Ii(t.paneId,t.conversationId,s),f=!0;if(d)try{await di(n,t.activeThreadId,d,l)}catch(e){f=!1,W.error(`Failed to persist conversation title`,{error:e,threadId:t.activeThreadId,conversationId:d,paneId:t.paneId})}let p=u&&f;return a({title:p?`Chat title updated`:`Chat title failed`,description:l,variant:p?void 0:`destructive`}),!0}async function Ui(e){await e.invalidateQueries({queryKey:F.conversations.unreadAll()})}function Wi(e,t,n){n&&e.setQueriesData({queryKey:F.conversations.unreadAll()},e=>e&&{...e,conversations:e.conversations.map(e=>e.threadId===t&&e.conversationId===n?{...e,isComplete:!1}:e)})}async function Gi(e,t){let{dispatch:n,toast:r,processingThreadIdsRef:i,isPaneStreaming:a}=e,{activeThreadId:o,paneId:s,messages:c,model:l,provider:u,message:d}=t,f=d.trim().match(sn);if(!f)return!1;if(s!==`primary`)return!0;if(c.filter(e=>e.sender===`agent`).length<2)return r({title:`Nothing to compact`,description:`Start a conversation with at least two exchanges first.`}),!0;if(i.current.includes(o)||a(o,s))return r({title:`Agent is busy`,description:`Wait for the agent to finish before compacting.`}),!0;let p=f[1]?.trim();ln(n,o,l);try{let e=await fe(o,{model:l,provider:u,instructions:p});n({type:w.SetMessages,messages:e.messages}),n(K({type:w.ResetStream},o,s)),r({title:`Conversation compacted`,description:`${e.messagesBefore} messages → ${e.messagesAfter} summary`})}catch(e){n(K({type:w.ResetStream},o,s)),r({title:`Compaction failed`,description:e instanceof Error?e.message:`Failed to compact conversation`,variant:`destructive`})}return!0}async function Ki(e,t){let{toast:n,selectedProjectId:r}=e,{paneId:i,message:a}=t,o=a.trim().match(cn);if(!o)return!1;if(i!==`primary`)return!0;if(!r)return n({title:`No project selected`,description:`Open a project thread before sending an event.`,variant:`destructive`}),!0;let s=o[1]?.trim();if(!s)return n({title:`Event key required`,description:`Use /send-event door.opened or /send-event door.opened {"doorId":"front"}`,variant:`destructive`}),!0;let c,l=o[2]?.trim();if(l)try{c=JSON.parse(l)}catch{return n({title:`Invalid JSON payload`,description:`The optional payload after the event key must be valid JSON.`,variant:`destructive`}),!0}try{let e=await je(r,s,c);n({title:`Event sent`,description:`Matched ${e.matched}, launched ${e.launched}, skipped ${e.skipped}`})}catch(e){n({title:`Event failed`,description:e instanceof Error?e.message:`Failed to send event`,variant:`destructive`})}return!0}async function qi(e,t){let{dispatch:n,toast:r,selectedProjectId:i,getPaneConversationId:a}=e,{activeThreadId:o,paneId:s,messages:c,model:l,provider:u,conversationId:d,message:f}=t,p=ki(f);if(!p)return!1;if(s!==`primary`)return!0;if(!i)return r({title:`No project selected`,description:`Open a project thread before creating a workspace.`,variant:`destructive`}),!0;let m=p.leftoverPrompt,h=Ii(s,d,a),g=m.length>0&&Ai(c)?ve(o,{prompt:m,model:l,provider:u,conversationId:h}).catch(e=>(W.error(`Workspace handoff failed`,{err:e}),``)):Promise.resolve(``),[_,v]=await Promise.all([g,Ae({projectId:i,project:t.selectedProject,dispatch:n,toast:r,refreshProjects:()=>Me(n)})]);return!v||m.length===0||n({type:w.SetPendingChatMessage,message:{threadId:v,message:ji(m,_),model:l,provider:u}}),!0}async function Ji(e,t){let{dispatch:n,toast:r,connectThreadStream:i,processingRunsRef:a,isPaneStreaming:o}=e,{activeThreadId:s,paneId:l,conversationId:u,message:d,attachments:f,model:p,provider:m}=t,{autoRoute:h,queryClient:g}=t,_=Ei(d);if(_.type===`not-goal`)return`not-goal`;if(_.type===`invalid`)return r({title:`Goal not started`,description:_.message,variant:`destructive`}),`refused`;let v=_.request,y=Ii(l,u,e.getPaneConversationId);if(l!==`primary`)return r({title:`Start the Goal in the main chat`,description:`Goals run in the primary pane, so this message was not sent.`,variant:`destructive`}),`refused`;if(o(s,l)||St(a.current,s,y))return r({title:`Agent is busy`,description:`Wait for the agent to finish before starting a Goal.`}),`refused`;if(e.isPaneStopping?.(s,l))return`refused`;let b=Ni(e,s,l,y);try{Wi(g,s,y);let r=await $i(e,{activeThreadId:s,paneId:l,paneConversationId:y,message:d,attachments:f,model:p,provider:m,preparation:b,titleSource:v.objective,onConversationHistoryChanged:()=>{Ui(g)}});return b.isCurrent()?(i(s,e=>ne(s,d,p,f,e,m,void 0,void 0,r,y,void 0,h,v,Oi(t.chatSubmit),b.runId),p,l,y),b.release(),n(K({type:w.SetStreamAgentMode,mode:c({})},s,l)),n(K({type:w.SetStreamGoalRun},s,l)),`handled`):`handled`}finally{b.release()}}async function Yi(e,t){let{dispatch:n,toast:r}=e,i=`steer-${Date.now()}`;try{return await de(t.activeThreadId,i,t.message,t.paneConversationId,t.model,t.attachments),n({type:w.AddMessage,threadId:t.activeThreadId,paneId:t.paneId,message:{messageId:`user-${i}`,sender:`user`,content:t.message,contentType:`text`,timestamp:new Date().toISOString(),model:t.model,attachments:t.attachments}}),!0}catch(e){return r({title:`Could not send`,description:e instanceof Error?e.message:`The active Goal could not be steered.`,variant:`destructive`}),!1}}function Xi(e,t){let{dispatch:n,connectThreadStream:r,onPlanModeConsumed:i,processingRunsRef:a,isPaneStreaming:o}=e,{activeThreadId:s,paneId:c,paneConversationId:l,model:u,planMode:d,imageMode:f}=t;return!f&&St(a.current,s,l)&&!o(s,c)?(r(s,e=>P(s,e,l),u,c,l),n({type:w.EnqueueChatMessage,message:Zi(t)}),d&&i?.(),!0):!1}function Zi(e){return{id:`queued-${Date.now()}`,threadId:e.activeThreadId,paneId:e.paneId,message:e.message,model:e.model,attachments:e.attachments,provider:e.provider,planMode:e.planMode,imageMode:e.imageMode,ralphMode:e.ralphMode,orchestrateMode:e.orchestrateMode,autoRoute:e.autoRoute}}function Qi(e,t){return e.isThreadBeingCreated?.(t.activeThreadId)?(e.dispatch({type:w.EnqueueChatMessage,message:Zi(t)}),t.planMode&&e.onPlanModeConsumed?.(),!0):!1}async function $i(e,t){let{dispatch:n,selectedProjectId:r,getChatTitles:i,getPaneConversationId:a}=e,o=Bi(t.activeThreadId,t.paneId),{activeThreadId:s,paneId:c,paneConversationId:l,message:u,attachments:d,model:f,provider:p,titleSource:m,onConversationHistoryChanged:h}=t,g=`msg-${Date.now()}`,_={messageId:g,sender:`user`,content:u,contentType:`text`,timestamp:new Date().toISOString(),model:f,attachments:d.map(e=>({fileName:e.fileName,content:e.content,mimeType:e.mimeType}))};n({type:w.AddMessage,message:_,threadId:s,paneId:c});let v=await dn(s,g);if(t.preparation.isCurrent()){if(v&&n({type:w.UpdateMessageCheckpointRef,messageId:g,threadId:s,paneId:c,checkpointRef:v}),r){let e=m?.trim()||u,d=Pi(e),g=i(s);if(!t.preparation.isLiveConversation())return;Li(n,r,s,c,d,g).then(e=>{e&&t.preparation.isLiveConversation()&&h?.()}),Se(s,e,{provider:p,model:f}).then(async e=>{let u=a(c);if(!t.preparation.isLiveConversation()||!e||e===d||l&&u!==l)return;let f=i(s)?.[c];!Vi(s,c,o)||f&&f!==d||await Li(n,r,s,c,e,i(s))&&t.preparation.isLiveConversation()&&h?.()}).catch(e=>{t.preparation.isLiveConversation()&&W.error(`Failed to generate chat title:`,e)})}return v}}async function ea(e,t){let{dispatch:n}=e,{activeThreadId:r,paneId:i,message:a,model:o,provider:s}=t,c=s??void 0;if(!c&&typeof o==`string`){let e=o.split(/[:/]/)[0]?.trim();e&&(c=e)}if(t.preparation.isCurrent()){if(!c){let e={messageId:`msg-${Date.now()}-error`,sender:`agent`,content:`Image generation is not available because no provider is configured for the selected model.`,contentType:`text`,timestamp:new Date().toISOString(),model:o,isThinking:!1};n({type:w.AddMessage,message:e,threadId:r,paneId:i}),n(K({type:w.ResetStream},r,i)),n({type:w.SetActiveStreamPane,paneId:null});return}n(K({type:w.SetStreaming,isStreaming:!0},r,i)),n({type:w.SetActiveStreamPane,paneId:i});try{let e=await ge(a,o,c,r,t.paneConversationId,t.preparation.controller.signal,t.preparation.runId);if(!t.preparation.isCurrent())return;let s={messageId:`msg-${Date.now()}-agent`,sender:`agent`,content:a,contentType:`text`,timestamp:new Date().toISOString(),model:o,mode:`image`,isThinking:!1,generatedImageUrl:e.imageUrl,generatedImageData:e.imageData};n({type:w.AddMessage,message:s,threadId:r,paneId:i})}catch(e){if(!t.preparation.isCurrent())return;let a=e instanceof Error?e.message:`Image generation failed`,s={messageId:`msg-${Date.now()}-error`,sender:`agent`,content:`Error: ${a}`,contentType:`text`,timestamp:new Date().toISOString(),model:o,isThinking:!1};n({type:w.AddMessage,message:s,threadId:r,paneId:i})}finally{t.preparation.isCurrent()&&(n(K({type:w.ResetStream},r,i)),n({type:w.SetActiveStreamPane,paneId:null}))}}}async function ta(e,t,n){let r={handled:!1,result:!1};if(await Hi(e,{activeThreadId:t.activeThreadId,paneId:t.paneId,conversationId:t.conversationId,message:t.message},n)||await Gi(e,{activeThreadId:t.activeThreadId,paneId:t.paneId,messages:t.messages,model:t.model,provider:t.provider,message:t.message})||await Ki(e,{paneId:t.paneId,message:t.message})||await qi(e,{activeThreadId:t.activeThreadId,paneId:t.paneId,messages:t.messages,model:t.model,provider:t.provider,conversationId:t.conversationId,message:t.message,selectedProject:t.selectedProject}))return{handled:!0,result:!0};let i=await Ji(e,{activeThreadId:t.activeThreadId,paneId:t.paneId,conversationId:t.conversationId,message:t.message,attachments:t.attachments,model:t.model,provider:t.provider,autoRoute:t.autoRoute,queryClient:n,chatSubmit:t.chatSubmit});return i===`not-goal`?r:{handled:!0,result:i===`handled`}}async function na(e,t,n){let{isPaneStreaming:r}=e;return r(t.activeThreadId,t.paneId)&&t.paneConversationId?Yi(e,{activeThreadId:t.activeThreadId,paneId:t.paneId,paneConversationId:t.paneConversationId,message:t.message,attachments:t.attachments,model:t.model}):Qi(e,t)?!0:(Wi(n,t.activeThreadId,t.paneConversationId),Xi(e,{activeThreadId:t.activeThreadId,paneId:t.paneId,paneConversationId:t.paneConversationId,message:t.message,attachments:t.attachments,model:t.model,provider:t.provider,planMode:t.planMode,imageMode:t.imageMode,ralphMode:t.ralphMode,orchestrateMode:t.orchestrateMode}))}async function ra(e,t,n){let{dispatch:r,connectThreadStream:i,onPlanModeConsumed:a}=e,o=Ni(e,t.activeThreadId,t.paneId,t.paneConversationId);try{let s=await $i(e,{preparation:o,activeThreadId:t.activeThreadId,paneId:t.paneId,paneConversationId:t.paneConversationId,message:t.message,attachments:t.attachments,model:t.model,provider:t.provider,planMode:t.planMode,ralphMode:t.ralphMode,orchestrateMode:t.orchestrateMode,onConversationHistoryChanged:()=>{Ui(n)}});return o.isCurrent()?t.imageMode?(await ea(e,{preparation:o,paneConversationId:t.paneConversationId,activeThreadId:t.activeThreadId,paneId:t.paneId,message:t.message,model:t.model,provider:t.provider}),!0):(i(t.activeThreadId,e=>ne(t.activeThreadId,t.message,t.model,t.attachments,e,t.provider,t.planMode,t.ralphMode,s,t.paneConversationId,t.orchestrateMode,t.autoRoute,void 0,Oi(t.chatSubmit),o.runId),t.model,t.paneId,t.paneConversationId),o.release(),r(K({type:w.SetStreamAgentMode,mode:c({planMode:t.planMode,ralphMode:t.ralphMode,orchestrateMode:t.orchestrateMode})},t.activeThreadId,t.paneId)),t.planMode&&a?.(),!0):!0}finally{o.release()}}function ia(e){let t=a(),n=hi(),{selectedThreadId:r,selectedProjectId:i,dispatch:o,toast:s,connectThreadStream:c,onPlanModeConsumed:l,setPaneError:u,getPaneMessages:d,getPaneConversationId:f,isPaneStreaming:p,getChatTitles:m}=e,h=k(e=>e.projects);return(0,I.useCallback)(async(a,s,c,l,p,m,g,_,v,y,b)=>{if(!r)return!1;let x=r;if(Fi(e,x,a))return!1;let S=Ii(a,s,f),C=t.getQueriesData({queryKey:F.conversations.archivedAll()}).some(([,e])=>e?.conversations.some(e=>e.threadId===x&&e.conversationId===S)??!1);S&&C&&await n(x,S);let T=Di();Bi(x,a);let E=d(a);u(x,a,null),o({type:w.ClearThreadError,threadId:x});let D=await ta(e,{activeThreadId:x,paneId:a,conversationId:s,message:c,attachments:p,model:l,provider:m,autoRoute:b,messages:E,chatSubmit:T,selectedProject:h.find(e=>e.projectId===i)},t);return D.handled?D.result:Fi(e,x,a)?!1:await na(e,{activeThreadId:x,paneId:a,paneConversationId:S,message:c,attachments:p,model:l,provider:m,planMode:g,imageMode:_,ralphMode:v,orchestrateMode:y,autoRoute:b},t)?!0:!Fi(e,x,a)&&ra(e,{activeThreadId:x,paneId:a,paneConversationId:S,message:c,attachments:p,model:l,provider:m,planMode:g,imageMode:_,ralphMode:v,orchestrateMode:y,autoRoute:b,chatSubmit:T},t)},[e,t,r,i,o,c,s,l,d,f,p,m,u,h])}function aa(e){return e+1}var oa=2;function sa(e,t){return ke(e.threadToolSessions[t.threadId])?!0:!t.imageMode&&St(e.processingRuns,t.threadId,M(e,t.paneId))}function ca(e){let t=E(),n=k(function(e){return e.selectedThreadId}),r=k(function(e){return e.queuedChatMessages}),i=k(function(e){return S(e.threadStreamingStates,e.selectedThreadId)}),a=k(function(e){return e.processingRuns}),o=k(function(e){return e.threadToolSessions}),{toast:s}=Pe(),c=(0,I.useRef)(new Set),l=(0,I.useRef)(new Map),u=(0,I.useRef)(!1),[d,f]=(0,I.useReducer)(aa,0);(0,I.useEffect)(function(){return u.current=!0,function(){u.current=!1}},[]),(0,I.useEffect)(function(){if(!n)return;let i=new Set(r.filter(function(e){return e.threadId===n}).map(function(e){return e.paneId})),a=[];for(let r of i){let i=h(n,r),o=t.getState(),d=o.queuedChatMessages.find(function(e){return e.threadId===n&&e.paneId===r});!d||sa(o,d)||c.current.has(i)||C(o.threadStreamingStates,n,r).isStreaming||a.push(setTimeout(async function(){let a=t.getState();if(a.selectedThreadId!==n||c.current.has(i)||C(a.threadStreamingStates,n,r).isStreaming)return;let o=a.queuedChatMessages.find(function(e){return e.threadId===n&&e.paneId===r});if(!o||sa(a,o)||(l.current.get(o.id)??0)>=oa)return;c.current.add(i);let d=a.queuedChatMessages.findIndex(function(e){return e.id===o.id});try{t.dispatch({type:w.RemoveQueuedChatMessage,queuedMessageId:o.id}),await e(r,M(a,r),o.message,o.model,o.attachments,o.provider,o.planMode,o.imageMode,o.ralphMode,o.orchestrateMode,o.autoRoute)===!1?(l.current.set(o.id,(l.current.get(o.id)??0)+1),t.dispatch({type:w.RestoreQueuedChatMessage,message:o,index:d})):l.current.delete(o.id)}catch(e){s({title:`Could not send queued message`,description:e instanceof Error?e.message:`Chat preparation failed.`,variant:`destructive`})}finally{c.current.delete(i),u.current&&f()}},0))}return function(){for(let e of a)clearTimeout(e)}},[e,a,r,d,n,t,i,o,s])}function la(e,t,n){let r=h(t,n);e.preparationsRef.current.get(r)?.controller.abort(),e.preparationsRef.current.delete(r)}function ua(e,t,n,r){la(e,t,n);let i=h(t,n),a={controller:new AbortController,runId:crypto.randomUUID(),conversationId:r,isCurrent(){let o=e.storeRef.getState();return!a.controller.signal.aborted&&e.preparationsRef.current.get(i)===a&&o.selectedThreadId===t&&M(o,n)===r},release(){e.preparationsRef.current.get(i)===a&&e.preparationsRef.current.delete(i)}};return e.preparationsRef.current.set(i,a),e.dispatch(K({type:w.SetStreaming,isStreaming:!0},t,n)),a}function da(e,t){for(let n of e.current){let r=n.split(`:`)[0];(!r||!t.has(r))&&e.current.delete(n)}}function fa(e,t,n,r,i){for(let a of n){let n=`${a.threadId}:${a.paneId}:${a.conversationId}`;e.current.has(n)||(e.current.add(n),(async function(){try{await on(r.dispatch,a.threadId,a.paneId,a.conversationId,{current:r.getState().selectedThreadId},{isStale:function(){let t=r.getState();return t.selectedThreadId!==a.threadId||M(t,a.paneId)!==a.conversationId||!e.current.has(n)||i(a.threadId,a.paneId)}})}catch{}let o=r.getState();if(!e.current.has(n)||o.selectedThreadId!==a.threadId||M(o,a.paneId)!==a.conversationId||i(a.threadId,a.paneId)||!o.processingRuns.some(function(e){return e.threadId===a.threadId&&e.conversationId===a.conversationId})){e.current.delete(n);return}e.current.delete(n),t(a.threadId,e=>P(a.threadId,e,a.conversationId),`default`,a.paneId,a.conversationId)})())}}function pa(e,t,n){n.isPaneStreaming(n.selectedThreadId??``,t)||n.getPaneMessagesForHandlers(t).length>0||!n.selectedThreadId||n.handleSend(t,n.getPaneConversationIdForHandlers(t),e.message,e.model,e.attachments,e.provider,e.planMode,e.imageMode,e.ralphMode,e.orchestrateMode,e.autoRoute)}function ma(e,t){for(let n of e.projects){let e=n.threads.find(e=>e.threadId===t);if(e)return e.chatTitles}}async function ha(e,t,n){let r=Date.now()+Ze+Xe;for(;Date.now()<r;){let r=await N(),i=t?r.processingRuns.some(function(r){return r.threadId===e&&r.conversationId===t&&(!n||!r.runId||r.runId===n)}):r.processingThreadIds.includes(e);if(!r.unavailableThreadIds?.includes(e)&&!i)return;await new Promise(function(e){setTimeout(e,Re)})}throw Error(`Backend is still stopping the run`)}async function ga(e,t,n){try{await ue(e,{conversationId:t,runId:n})}catch(n){let r=await N();if(r.unavailableThreadIds?.includes(e)||(t?r.processingRuns.some(function(n){return n.threadId===e&&n.conversationId===t}):r.processingThreadIds.includes(e)))throw n}}function _a(e,t,n,r,i,a,o){n.state.stoppingRef.current.delete(r);let s=n.state.storeRef.getState();if(s.selectedThreadId!==t||M(s,e)!==i){n.dispatch({type:w.SetStreamStopping,threadId:t,paneId:e,isStopping:!1});return}n.setPaneError(t,e,null),a&&n.streamSessionsRef.current.get(r)===a?(a.pendingTransientRecovery=!1,a.stopHandled=!0,n.finalizeThreadStream(t,o,a),a.controller.abort(),a.cancel?.(),n.dispatch({type:w.SetStreamStopping,threadId:t,paneId:e,isStopping:!1})):n.streamSessionsRef.current.has(r)?n.dispatch({type:w.SetStreamStopping,threadId:t,paneId:e,isStopping:!1}):n.dispatch(K({type:w.ResetStream},t,e))}async function va(e,t){let{selectedThreadId:n}=t;return n?ba(e,t,n):!1}async function ya(e,t,n,r,i){(!r||i)&&(await ga(e,t,n),await ha(e,t,n))}async function ba(e,t,n){t.onStopRequested(n);let r=h(n,e),i=t.streamSessionsRef.current.get(r),a=t.getPaneStreamingModel(n,e),o=i?.conversationId??t.getPaneConversationIdForHandlers(e),s=t.state.preparationsRef.current.get(r),c=t.state.storeRef.getState().processingRuns.find(function(e){return e.threadId===n&&e.conversationId===o}),l=i?.runId??c?.runId;la(t.state,n,e),i?.preparationController?.abort(),t.state.stoppingRef.current.set(r,o),t.dispatch({type:w.SetStreamStopping,threadId:n,paneId:e,isStopping:!0}),t.setPaneError(n,e,`Stopping…`);try{return await ya(n,o,l,s,i),_a(e,n,t,r,o,i,a),!0}catch(r){return t.dispatch({type:w.SetStreamStopping,threadId:n,paneId:e,isStopping:!1}),t.setPaneError(n,e,`Could not confirm Stop: ${r instanceof Error?r.message:`Backend unavailable`}. Retry Stop before sending another prompt.`),!1}}function xa(e,t){for(let[n,r]of t.current.entries()){r.controller.abort(),r.cancel?.(),r.keepsDeviceAwake&&(r.keepsDeviceAwake=!1,U());let[t,i]=n.split(`:`);e(K({type:w.ResetStream},t,i))}t.current.clear()}function Sa(e,t){let{selectedThreadId:n}=t;if(!n)return;let r=h(n,e),i=t.streamSessionsRef.current.get(r);i&&(t.streamSessionsRef.current.delete(r),i.controller.abort(),i.cancel?.(),i.keepsDeviceAwake&&(i.keepsDeviceAwake=!1,U())),t.dispatch(K({type:w.ResetStream},n,e)),t.dispatch({type:w.SetActiveStreamPane,paneId:null})}function Ca(e,t,n){if(!n){if(!(t in e))return e;let{[t]:n,...r}=e;return r}return e[t]===n?e:{...e,[t]:n}}function wa(e){let t=new Set(e.processingThreadIds),n=e.storeRef.getState();da(e.autoSubscribePendingRef,t),At(e.storeRef.dispatch,{threadStreamingStates:n.threadStreamingStates,processingThreadIds:e.processingThreadIds,pendingChatMessage:n.pendingChatMessage},{hasSession:(t,n)=>e.streamSessionsRef.current.has(h(t,n))||e.preparationsRef.current.has(h(t,n))||e.stoppingRef.current.has(h(t,n))});let r=Tt({...n,selectedThreadId:e.selectedThreadId,extraChatPanes:e.extraChatPanes,primaryConversationId:e.primaryConversationId},e.processingRuns,{hasSession:(t,n)=>e.streamSessionsRef.current.has(h(t,n))||e.preparationsRef.current.has(h(t,n))||e.stoppingRef.current.has(h(t,n)),isRecentlyFinalized:lt,isThreadBeingCreated:e=>ke(n.threadToolSessions[e])});fa(e.autoSubscribePendingRef,e.connectThreadStream,r,e.storeRef,function(t,n){let r=h(t,n);return e.streamSessionsRef.current.has(r)||e.preparationsRef.current.has(r)||e.stoppingRef.current.has(r)})}function Ta(e){let t=e.pendingChatMessage;if(!t||t.threadId!==e.selectedThreadId||e.isPaneStreaming(e.selectedThreadId??``,`primary`))return;let n=setTimeout(()=>{e.dispatch({type:w.ClearPendingChatMessage}),e.handleSend(`primary`,void 0,t.message,t.model,[],t.provider)},100);return()=>clearTimeout(n)}function Ea(e,t,n){let r=n.getQueuedMessagesForPane(e).find(e=>e.id===t);n.dispatch({type:w.RemoveQueuedChatMessage,queuedMessageId:t}),r&&pa(r,e,{selectedThreadId:n.selectedThreadId,isPaneStreaming:n.isPaneStreaming,getPaneMessagesForHandlers:n.getPaneMessages,getPaneConversationIdForHandlers:n.getPaneConversationId,handleSend:n.handleSend})}async function Da(e,t,n){let r=n.getQueuedMessagesForPane(e).find(e=>e.id===t),i=n.getPaneConversationId(e);if(r&&i){n.dispatch({type:w.RemoveQueuedChatMessage,queuedMessageId:t});try{await de(r.threadId,r.id,r.message,i,r.model,r.attachments),n.dispatch({type:w.AddMessage,threadId:r.threadId,paneId:e,message:{messageId:`user-${r.id}`,sender:`user`,content:r.message,contentType:`text`,timestamp:new Date().toISOString(),model:r.model,attachments:r.attachments}})}catch(e){n.dispatch({type:w.EnqueueChatMessage,message:r}),n.toast({title:`Could not send queued message`,description:e instanceof Error?e.message:`The active chat could not be steered.`,variant:`destructive`})}}}function Oa(){let e=O(),t=E(),n=k(e=>e.selectedThreadId),r=k(e=>e.selectedProjectId),i=k(e=>e.queuedChatMessages),a=k(e=>e.pendingChatMessage),o=k(e=>e.processingThreadIds),s=k(e=>e.processingRuns),c=(0,I.useRef)(o),l=(0,I.useRef)(s),u=k(e=>e.extraChatPanes),d=k(e=>e.primaryConversationId),f=(0,I.useRef)(null),p=(0,I.useRef)(new Map),m=(0,I.useRef)(new Map),h=(0,I.useRef)(new Map),g=(0,I.useRef)(null),_=(0,I.useRef)(new Set);return f.current=n,c.current=o,l.current=s,{dispatch:e,storeRef:t,selectedThreadId:n,selectedProjectId:r,queuedChatMessages:i,pendingChatMessage:a,processingThreadIds:o,processingRuns:s,processingThreadIdsRef:c,processingRunsRef:l,preparationsRef:m,stoppingRef:h,extraChatPanes:u,primaryConversationId:d,selectedThreadIdRef:f,streamSessionsRef:p,connectThreadStreamRef:g,autoSubscribePendingRef:_}}function ka(e){let t=(0,L.c)(20),{storeRef:n,selectedThreadId:r,queuedChatMessages:i}=e,a;t[0]===n?a=t[1]:(a=function(e){return d(n.getState(),e)},t[0]=n,t[1]=a);let o=a,s;t[2]===n?s=t[3]:(s=function(e){return M(n.getState(),e)},t[2]=n,t[3]=s);let c=s,l;t[4]===n?l=t[5]:(l=function(e,t){return C(n.getState().threadStreamingStates,e,t).isStreaming},t[4]=n,t[5]=l);let u=l,f;t[6]===n?f=t[7]:(f=function(e,t){return C(n.getState().threadStreamingStates,e,t).streamingModel||`default`},t[6]=n,t[7]=f);let p=f,m;t[8]===n?m=t[9]:(m=function(e){return ma(n.getState(),e)},t[8]=n,t[9]=m);let h=m,g;t[10]!==i||t[11]!==r?(g=e=>r?i.filter(t=>t.threadId===r&&t.paneId===e):[],t[10]=i,t[11]=r,t[12]=g):g=t[12];let _=g,v;return t[13]!==h||t[14]!==c||t[15]!==o||t[16]!==p||t[17]!==_||t[18]!==u?(v={getPaneMessages:o,getPaneConversationId:c,isPaneStreaming:u,getPaneStreamingModel:p,getChatTitles:h,getQueuedMessagesForPane:_},t[13]=h,t[14]=c,t[15]=o,t[16]=p,t[17]=_,t[18]=u,t[19]=v):v=t[19],v}function Aa(){let e=(0,L.c)(9),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={},e[0]=t):t=e[0];let[n,r]=(0,I.useState)(t),[i,a]=(0,I.useState)(!1),[o,s]=(0,I.useState)(!1),[c,l]=(0,I.useState)(0),u;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(u=(e,t,n)=>{let i=h(e,t);r(e=>Ca(e,i,n))},e[1]=u):u=e[1];let d=u,f,p;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(f=()=>(ce(e=>{l(e),s(!0)}),ja),p=[],e[2]=f,e[3]=p):(f=e[2],p=e[3]),(0,I.useEffect)(f,p);let m;return e[4]!==c||e[5]!==n||e[6]!==i||e[7]!==o?(m={paneErrors:n,setPaneError:d,showEmptyBalanceDialog:i,setShowEmptyBalanceDialog:a,showLowBalanceDialog:o,setShowLowBalanceDialog:s,lowBalancePromptsRemaining:c},e[4]=c,e[5]=n,e[6]=i,e[7]=o,e[8]=m):m=e[8],m}function ja(){ce(null)}function Ma(e){let{state:t,selectors:n,setPaneError:r,setShowEmptyBalanceDialog:i,setStopRequestedForThreadId:o}=e,s=a(),{dispatch:c,storeRef:l,streamSessionsRef:u,connectThreadStreamRef:d,selectedThreadIdRef:f,autoSubscribePendingRef:p,processingThreadIds:m,selectedThreadId:g,extraChatPanes:_,primaryConversationId:v,processingRuns:y}=t,b=(0,I.useCallback)(function(e,n,r){t.stoppingRef.current.has(h(e,r.paneId))||Ar({dispatch:c,streamSessionsRef:u,connectThreadStreamRef:d,selectedThreadIdRef:f,getHistoryEpoch:()=>l.getState().chatHistoryEpoch,getPaneConversationId:e=>M(l.getState(),e)})(e,n,r)},[c,l]),x=(0,I.useCallback)(e=>va(e,{selectedThreadId:g,dispatch:c,finalizeThreadStream:b,streamSessionsRef:u,getPaneStreamingModel:n.getPaneStreamingModel,getPaneConversationIdForHandlers:n.getPaneConversationId,onStopRequested:o,state:t,setPaneError:r}),[g,c,b]);(0,I.useEffect)(()=>{let e=l.subscribe(function(){let e=l.getState();for(let[e,n]of t.preparationsRef.current)n.isCurrent()||(n.controller.abort(),t.preparationsRef.current.delete(e));for(let[t,n]of u.current){let[r,i]=t.split(`:`);r===e.selectedThreadId&&M(e,i)!==n.conversationId&&(u.current.delete(t),n.controller.abort(),n.cancel?.(),n.keepsDeviceAwake&&(n.keepsDeviceAwake=!1,U()))}});return()=>{e(),p.current.clear();for(let e of t.preparationsRef.current.values())e.controller.abort();t.preparationsRef.current.clear(),xa(c,u)}},[c]);let S=(0,I.useCallback)(ui({dispatch:c,streamSessionsRef:u,setPaneError:r,setShowEmptyBalanceDialog:i,finalizeThreadStream:b,onStreamConnected:()=>{s.invalidateQueries({queryKey:F.conversations.unreadAll()})}}),[c,b,s,r]),C=(0,I.useCallback)(function(e,n,r,i,a){let o=h(e,i),s=t.preparationsRef.current.get(o),c=u.current.get(o),d=S(e,n,r,i,a),f=u.current.get(o);return s&&d.signal.addEventListener(`abort`,function(){s.controller.abort()},{once:!0}),f&&(f.preparationController=s?.controller,f.runId=s?.runId??(c&&c.conversationId===a?c.runId:void 0)??l.getState().processingRuns.find(function(t){return t.threadId===e&&t.conversationId===a})?.runId),d},[S,l]);d.current=C,(0,I.useEffect)(()=>{wa({autoSubscribePendingRef:p,processingThreadIds:m,selectedThreadId:g,extraChatPanes:_,primaryConversationId:v,processingRuns:y,connectThreadStream:C,streamSessionsRef:u,storeRef:l,preparationsRef:t.preparationsRef,stoppingRef:t.stoppingRef})},[C,_,v,y,m,g,l]);let w=y.map(function(e){return`${e.threadId}:${e.conversationId}`}).sort().join(`,`);return(0,I.useEffect)(function(){let e=!1,t=setInterval(async function(){if(!e){e=!0;try{await jr(u,l.getState().processingRuns,b)}finally{e=!1}}},Xe);return function(){clearInterval(t)}},[w,b,u,l]),{finalizeThreadStream:b,connectThreadStream:C,handleStop:x}}function Na(e){let t=Oa(),{dispatch:n,storeRef:r,selectedThreadId:i,selectedProjectId:a,processingThreadIdsRef:o,processingRunsRef:s,pendingChatMessage:c}=t,l=ka(t),{getPaneMessages:u,getPaneConversationId:d,isPaneStreaming:f,getChatTitles:p,getQueuedMessagesForPane:m}=l,{toast:g}=Pe(),{paneErrors:_,setPaneError:v,showEmptyBalanceDialog:y,setShowEmptyBalanceDialog:b,showLowBalanceDialog:x,setShowLowBalanceDialog:S,lowBalancePromptsRemaining:C}=Aa(),[w,T]=(0,I.useState)(null),{connectThreadStream:E,handleStop:D}=Ma({state:t,selectors:l,setPaneError:v,setShowEmptyBalanceDialog:b,setStopRequestedForThreadId:T}),O=ia({selectedThreadId:i,selectedProjectId:a,processingThreadIdsRef:o,processingRunsRef:s,dispatch:n,toast:g,connectThreadStream:E,onPlanModeConsumed:e,setPaneError:v,setStopRequestedForThreadId:T,getPaneMessages:u,getPaneConversationId:d,isPaneStreaming:f,getChatTitles:p,isThreadBeingCreated:e=>ke(r.getState().threadToolSessions[e]),beginPreparation:(e,n,r)=>ua(t,e,n,r),isPaneStopping:(e,n)=>{let i=r.getState();return i.startingNewChatPaneIds.includes(n)||t.stoppingRef.current.has(h(e,n))&&t.stoppingRef.current.get(h(e,n))===M(i,n)}});(0,I.useEffect)(()=>Ta({pendingChatMessage:c,selectedThreadId:i,isPaneStreaming:f,dispatch:n,handleSend:O}),[c,i,n,O,r]),ca(O);let k=(0,I.useCallback)((e,t)=>Ea(e,t,{getQueuedMessagesForPane:m,dispatch:n,selectedThreadId:i,isPaneStreaming:f,getPaneMessages:u,getPaneConversationId:d,handleSend:O}),[n,m,O,i,r]),A=(0,I.useCallback)((e,t)=>Da(e,t,{getQueuedMessagesForPane:m,getPaneConversationId:d,dispatch:n,toast:g}),[n,d,m,g]),j=(0,I.useCallback)(e=>{i&&la(t,i,e),Sa(e,{selectedThreadId:i,dispatch:n,streamSessionsRef:t.streamSessionsRef})},[n,i,t.streamSessionsRef]);return(0,I.useMemo)(()=>({paneErrors:_,setPaneError:v,handleSend:O,handleStop:D,handleDiscardPaneStream:j,getQueuedMessagesForPane:m,handleRemoveQueuedMessage:k,handleSendQueuedMessageNow:A,showEmptyBalanceDialog:y,setShowEmptyBalanceDialog:b,showLowBalanceDialog:x,setShowLowBalanceDialog:S,lowBalancePromptsRemaining:C}),[_,v,O,D,j,m,k,A,y,b,x,S,C])}var Pa=(0,I.createContext)(void 0);function Fa(e){let t=(0,L.c)(3),{children:n}=e,r=Na(),i;return t[0]!==n||t[1]!==r?(i=(0,nt.jsx)(Pa.Provider,{value:r,children:n}),t[0]=n,t[1]=r,t[2]=i):i=t[2],i}function Ia(){let e=(0,I.useContext)(Pa);if(e===void 0)throw Error(`useChatHandlersContext must be used within a ChatHandlersProvider`);return e}function La(){return(0,I.useContext)(Pa)??null}export{pt as A,et as B,on as C,Yt as D,Kt as E,gt as F,Ue as G,Ke as H,_t as I,Be as J,Re as K,Ot as L,mt as M,ht as N,Wt as O,vt as P,xt as R,Tn as S,Bt as T,Ge as U,Xe as V,We as W,q as _,pi as a,Xn as b,sr as c,Dn as d,En as f,zn as g,Zn as h,vi as i,bt as j,$t as k,ir as l,Jn as m,Ia as n,di as o,Yn as p,ze as q,La as r,cr as s,Fa as t,or as u,$n as v,an as w,Sn as x,Qn as y,ut as z};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e,t}from"./react-vendor-D61Uve5n.js";import{a as n,i as r,o as i,r as a,s as o,t as s}from"./dialog-D_12AsZd.js";import{t as c}from"./button-DDaJhJP1.js";import{i as l,n as u,r as d,t as f}from"./tooltip-CqwCZ7wt.js";import{t as p}from"./label-BCs5CZEs.js";import{t as m}from"./progress-indicator-hJ74ac5W.js";import{Nn as h,hn as g}from"./index-CoY8DilQ.js";var _=e(),v=t();function y(e){let t=(0,_.c)(41),{open:y,onOpenChange:b,commitMessage:x,onCommitMessageChange:S,isGeneratingMessage:C,isLoading:w,onGenerateMessage:T,onCommit:E,currentBranch:D}=e,O;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,v.jsx)(o,{children:`Commit Changes`}),t[0]=O):O=t[0];let k;t[1]===D?k=t[2]:(k=(0,v.jsxs)(i,{children:[O,(0,v.jsxs)(r,{children:[`Enter a commit message for your changes on branch `,D]})]}),t[1]=D,t[2]=k);let A;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,v.jsx)(p,{htmlFor:`commit-message`,children:`Commit Message`}),t[3]=A):A=t[3];let j;t[4]===S?j=t[5]:(j=e=>S(e.target.value),t[4]=S,t[5]=j);let M;t[6]!==x||t[7]!==C||t[8]!==j?(M=(0,v.jsx)(g,{id:`commit-message`,placeholder:`Enter commit message...`,value:x,onChange:j,disabled:C,className:`pr-10 h-full min-h-[14rem] resize-none`}),t[6]=x,t[7]=C,t[8]=j,t[9]=M):M=t[9];let N=C||w,P;t[10]===C?P=t[11]:(P=C?(0,v.jsx)(m,{}):(0,v.jsx)(h,{className:`h-3.5 w-3.5`}),t[10]=C,t[11]=P);let F;t[12]!==T||t[13]!==N||t[14]!==P?(F=(0,v.jsx)(l,{asChild:!0,children:(0,v.jsx)(c,{type:`button`,variant:`ghost`,size:`icon`,className:`absolute top-2 right-2 h-6 w-6`,onClick:T,disabled:N,children:P})}),t[12]=T,t[13]=N,t[14]=P,t[15]=F):F=t[15];let I=C?`Generating commit message...`:`Generate commit message with AI`,L;t[16]===I?L=t[17]:(L=(0,v.jsx)(u,{children:I}),t[16]=I,t[17]=L);let R;t[18]!==L||t[19]!==F?(R=(0,v.jsx)(d,{children:(0,v.jsxs)(f,{children:[F,L]})}),t[18]=L,t[19]=F,t[20]=R):R=t[20];let z;t[21]!==R||t[22]!==M?(z=(0,v.jsx)(`div`,{className:`grid gap-4 py-4 flex-1 min-h-0`,children:(0,v.jsxs)(`div`,{className:`grid gap-2 flex-1 min-h-0`,children:[A,(0,v.jsxs)(`div`,{className:`relative flex-1 min-h-0`,children:[M,R]})]})}),t[21]=R,t[22]=M,t[23]=z):z=t[23];let B;t[24]!==x||t[25]!==w?(B=w||!x.trim(),t[24]=x,t[25]=w,t[26]=B):B=t[26];let V;t[27]===w?V=t[28]:(V=w?(0,v.jsxs)(v.Fragment,{children:[`Commit`,(0,v.jsx)(m,{size:`sm`})]}):`Commit`,t[27]=w,t[28]=V);let H;t[29]!==E||t[30]!==B||t[31]!==V?(H=(0,v.jsx)(n,{className:`w-full items-center`,children:(0,v.jsx)(c,{className:`ml-auto`,onClick:E,disabled:B,children:V})}),t[29]=E,t[30]=B,t[31]=V,t[32]=H):H=t[32];let U;t[33]!==z||t[34]!==H||t[35]!==k?(U=(0,v.jsxs)(a,{className:`flex max-w-2xl flex-col max-md:top-[max(1rem,env(safe-area-inset-top,0px))] max-md:max-h-[calc(100dvh-2rem)] max-md:translate-y-0 max-md:overflow-y-auto max-md:data-[state=closed]:slide-out-to-top max-md:data-[state=open]:slide-in-from-top max-md:data-[state=closed]:slide-out-to-left-0 max-md:data-[state=open]:slide-in-from-left-0 max-md:data-[state=closed]:zoom-out-100 max-md:data-[state=open]:zoom-in-100 md:h-[min(36rem,85dvh)]`,children:[k,z,H]}),t[33]=z,t[34]=H,t[35]=k,t[36]=U):U=t[36];let W;return t[37]!==b||t[38]!==y||t[39]!==U?(W=(0,v.jsx)(s,{open:y,onOpenChange:b,children:U}),t[37]=b,t[38]=y,t[39]=U,t[40]=W):W=t[40],W}export{y as CommitDialog};
|
package/dist/public/assets/{commit-error-dialog-D3S6kRVr.js → commit-error-dialog--NTHg7Aw.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{
|
|
1
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{U as i}from"./dist-v_MvKS2-.js";import{t as a}from"./utils-CqsIXqSC.js";import{t as o}from"./check-skFQ1X72.js";import{t as s}from"./copy-bi9iX3xn.js";import{a as c,i as l,o as u,r as d,s as f,t as p}from"./dialog-D_12AsZd.js";import{t as m}from"./button-DDaJhJP1.js";import{r as h}from"./scroll-area-CGEZ1gAL.js";import{tr as g}from"./index-CoY8DilQ.js";var _=t(),v=e(n(),1),y=r(),b=1500;function x(e){let t=(0,_.c)(41),{error:n,onDismiss:r,onFixInChat:x}=e,[S,C]=(0,v.useState)(!1),w=(0,v.useRef)(null),T,E;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(T=()=>()=>{w.current!==null&&(clearTimeout(w.current),w.current=null)},E=[],t[0]=T,t[1]=E):(T=t[0],E=t[1]),(0,v.useEffect)(T,E);let D;t[2]===r?D=t[3]:(D=function(e){e||r()},t[2]=r,t[3]=D);let O=D,k;t[4]===n.message?k=t[5]:(k=async function(){try{await navigator.clipboard.writeText(n.message)}catch{}C(!0),w.current!==null&&clearTimeout(w.current),w.current=setTimeout(()=>{C(!1),w.current=null},b)},t[4]=n.message,t[5]=k);let A=k,j;t[6]!==n||t[7]!==x?(j=function(){x(n)},t[6]=n,t[7]=x,t[8]=j):j=t[8];let M=j,N;t[9]===n.title?N=t[10]:(N=(0,y.jsx)(f,{children:n.title}),t[9]=n.title,t[10]=N);let P;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,y.jsx)(l,{children:`Git returned an error, so the commit was not created. Fix the issue below, then try again.`}),t[11]=P):P=t[11];let F;t[12]===N?F=t[13]:(F=(0,y.jsxs)(u,{children:[N,P]}),t[12]=N,t[13]=F);let I;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(I=a(i.compact,`whitespace-pre-wrap break-words p-3 font-mono text-foreground`),t[14]=I):I=t[14];let L;t[15]===n.message?L=t[16]:(L=(0,y.jsx)(h,{className:`max-h-56 rounded-md border bg-muted/40`,children:(0,y.jsx)(`pre`,{className:I,children:n.message})}),t[15]=n.message,t[16]=L);let R;t[17]===r?R=t[18]:(R=(0,y.jsx)(m,{variant:`outline`,onClick:r,children:`Close`}),t[17]=r,t[18]=R);let z;t[19]===A?z=t[20]:(z=()=>void A(),t[19]=A,t[20]=z);let B;t[21]===S?B=t[22]:(B=S?(0,y.jsx)(o,{className:`h-4 w-4`}):(0,y.jsx)(s,{className:`h-4 w-4`}),t[21]=S,t[22]=B);let V=S?`Copied`:`Copy`,H;t[23]!==z||t[24]!==B||t[25]!==V?(H=(0,y.jsxs)(m,{variant:`outline`,onClick:z,children:[B,V]}),t[23]=z,t[24]=B,t[25]=V,t[26]=H):H=t[26];let U;t[27]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,y.jsx)(g,{className:`h-4 w-4`}),t[27]=U):U=t[27];let W;t[28]===M?W=t[29]:(W=(0,y.jsxs)(m,{onClick:M,children:[U,`Fix in Chat`]}),t[28]=M,t[29]=W);let G;t[30]!==R||t[31]!==H||t[32]!==W?(G=(0,y.jsxs)(c,{className:`gap-2`,children:[R,H,W]}),t[30]=R,t[31]=H,t[32]=W,t[33]=G):G=t[33];let K;t[34]!==G||t[35]!==F||t[36]!==L?(K=(0,y.jsxs)(d,{className:`max-w-xl`,children:[F,L,G]}),t[34]=G,t[35]=F,t[36]=L,t[37]=K):K=t[37];let q;return t[38]!==O||t[39]!==K?(q=(0,y.jsx)(p,{open:!0,onOpenChange:O,children:K}),t[38]=O,t[39]=K,t[40]=q):q=t[40],q}export{x as CommitErrorDialog};
|
package/dist/public/assets/{commit-method-fields-BEKfSRyW.js → commit-method-fields-Xt3vbwUg.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"./react-vendor-D61Uve5n.js";import{
|
|
1
|
+
import{n as e,t}from"./react-vendor-D61Uve5n.js";import{U as n,Y as r}from"./dist-v_MvKS2-.js";import{t as i}from"./utils-CqsIXqSC.js";import{t as a}from"./label-BCs5CZEs.js";import{n as o,t as s}from"./toggle-group-CPmseZfb.js";var c=e(),l=t(),u=`inline-flex h-auto w-fit justify-start rounded-full border-0 bg-background p-1 text-muted-foreground`,d=`h-auto min-h-0 min-w-0 rounded-full border-0 bg-background px-4 py-1.5 data-[state=on]:bg-foreground data-[state=on]:text-background data-[state=on]:shadow-sm hover:bg-background hover:text-muted-foreground data-[state=on]:hover:bg-foreground data-[state=on]:hover:text-background`;function f(e){let t=(0,c.c)(11),{commitMethod:a,onCommitMethodChange:f,disabled:p,className:m}=e,h=p!==void 0&&p,g;t[0]===f?g=t[1]:(g=e=>{(e===r.PullRequest||e===r.Direct)&&f(e)},t[0]=f,t[1]=g);let _;t[2]===m?_=t[3]:(_=i(u,m),t[2]=m,t[3]=_);let v;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,l.jsx)(o,{value:r.PullRequest,"aria-label":`Pull Requests`,className:i(n.body,d),children:`Pull Requests`}),t[4]=v):v=t[4];let y;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,l.jsx)(o,{value:r.Direct,"aria-label":`Direct Commits`,className:i(n.body,d),children:`Direct Commits`}),t[5]=y):y=t[5];let b;return t[6]!==a||t[7]!==h||t[8]!==g||t[9]!==_?(b=(0,l.jsxs)(s,{type:`single`,value:a,disabled:h,onValueChange:g,"aria-label":`Commit method`,className:_,children:[v,y]}),t[6]=a,t[7]=h,t[8]=g,t[9]=_,t[10]=b):b=t[10],b}function p(e){let t=(0,c.c)(9),{commitMethod:i,onCommitMethodChange:o}=e,s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,l.jsx)(a,{children:`Commit method`}),t[0]=s):s=t[0];let u;t[1]!==i||t[2]!==o?(u=(0,l.jsx)(f,{commitMethod:i,onCommitMethodChange:o}),t[1]=i,t[2]=o,t[3]=u):u=t[3];let d=i===r.PullRequest?`Creates a feature branch and allows you to create pull requests.`:`Commits directly to the main branch without creating feature branches.`,p;t[4]===d?p=t[5]:(p=(0,l.jsx)(`p`,{className:n.bodyMuted,children:d}),t[4]=d,t[5]=p);let m;return t[6]!==u||t[7]!==p?(m=(0,l.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[s,u,p]}),t[6]=u,t[7]=p,t[8]=m):m=t[8],m}export{f as i,d as n,p as r,u as t};
|