factory-factory 0.4.8 → 0.4.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +66 -29
- package/dist/client/assets/{Archive.es-CGY-HOtI.js → Archive.es-moH8rDRO.js} +1 -1
- package/dist/client/assets/{ArrowLeft.es-BkuVunBb.js → ArrowLeft.es-CVl_zVBC.js} +1 -1
- package/dist/client/assets/{abnfDiagram-VCTEODGH-B2jWIJ_F.js → abnfDiagram-VCTEODGH-DzuBdUSN.js} +1 -1
- package/dist/client/assets/admin-page-CAsPxzW9.js +1 -0
- package/dist/client/assets/{alert-PePzkOCj.js → alert-2CAe526X.js} +1 -1
- package/dist/client/assets/{alert-dialog-BgqiS2Mp.js → alert-dialog-8vhMuR-k.js} +1 -1
- package/dist/client/assets/architecture-7GRP2DOG-Bcwjoi8B.js +1 -0
- package/dist/client/assets/{architectureDiagram-5GKGNRK7-CV8YjPRr.js → architectureDiagram-5GKGNRK7-CeuoQvaW.js} +1 -1
- package/dist/client/assets/{badge-BESbZ2wy.js → badge-CoDH1rER.js} +1 -1
- package/dist/client/assets/{blockDiagram-I7D4REHJ-BdQWAITV.js → blockDiagram-I7D4REHJ-BY92gQgN.js} +1 -1
- package/dist/client/assets/{c4Diagram-7LVT6UL2-Dp1ETdzU.js → c4Diagram-7LVT6UL2-D5TNBYXh.js} +1 -1
- package/dist/client/assets/channel-NEbtzeVB.js +1 -0
- package/dist/client/assets/{chunk-4HAMMTFA-BXRLulFZ.js → chunk-4HAMMTFA-DBbX-wzu.js} +1 -1
- package/dist/client/assets/{chunk-75Z2AOVW-FUHgKXYa.js → chunk-75Z2AOVW-962-yyBD.js} +1 -1
- package/dist/client/assets/{chunk-DU6HZSFF-nxkO_ute.js → chunk-DU6HZSFF-CHHMX1CR.js} +1 -1
- package/dist/client/assets/{chunk-F27PBJKO-Dal8QxK3.js → chunk-F27PBJKO-BOnYAGjZ.js} +1 -1
- package/dist/client/assets/{chunk-GMAD6QVW-B_VbYl2S.js → chunk-GMAD6QVW-DQF31PdR.js} +1 -1
- package/dist/client/assets/{chunk-GVQU2GXP-DobNOfAy.js → chunk-GVQU2GXP-rruJzn36.js} +1 -1
- package/dist/client/assets/{chunk-IMKFNOWR-D_P1eTAa.js → chunk-IMKFNOWR-GIKO0MCA.js} +1 -1
- package/dist/client/assets/{chunk-L3NEJ4N5-CZpV3_Q0.js → chunk-L3NEJ4N5-USlKRxmU.js} +1 -1
- package/dist/client/assets/{chunk-OSK3NFVY-e3uqzkQq.js → chunk-OSK3NFVY-DYQeYWNP.js} +1 -1
- package/dist/client/assets/{chunk-P2QGCYS3-B1FUAlmg.js → chunk-P2QGCYS3-SDkZ9hQX.js} +1 -1
- package/dist/client/assets/{chunk-POPQ4Y6H-BKVSxG-w.js → chunk-POPQ4Y6H-bdnFdIMc.js} +1 -1
- package/dist/client/assets/{chunk-PWAF6VOD-DQe8ztwz.js → chunk-PWAF6VOD-DuKrEmQw.js} +1 -1
- package/dist/client/assets/{chunk-SHT3W25Y-D8Ie2IK_.js → chunk-SHT3W25Y-BnWDS29f.js} +1 -1
- package/dist/client/assets/{chunk-SVP7TREG-_l4ZFWYL.js → chunk-SVP7TREG-BqyZjR36.js} +1 -1
- package/dist/client/assets/{chunk-TICWLB2K-BfcOBlR4.js → chunk-TICWLB2K-ZCb3dlre.js} +1 -1
- package/dist/client/assets/{ci-status-ChifTKM1.js → ci-status-cs76P3se.js} +1 -1
- package/dist/client/assets/classDiagram-ZZMXUADV-zE_E4kYq.js +1 -0
- package/dist/client/assets/classDiagram-v2-VYDZK3BY-zE_E4kYq.js +1 -0
- package/dist/client/assets/components-CoS_rGt2.js +1 -0
- package/dist/client/assets/{confirm-dialog-BAfboPjS.js → confirm-dialog-CfvO9f42.js} +1 -1
- package/dist/client/assets/{core-DW1Rn28Z.js → core-DW3tuXQ3.js} +1 -1
- package/dist/client/assets/{cynefin-OW5HDTMX-B7JP5WcM.js → cynefin-OW5HDTMX-Ci2WypGa.js} +1 -1
- package/dist/client/assets/{cynefinDiagram-5FMLGOSQ-B5jcLvUi.js → cynefinDiagram-5FMLGOSQ-CGea7wa2.js} +1 -1
- package/dist/client/assets/{dagre-GXQ25YYZ-CFkt7lun.js → dagre-GXQ25YYZ-CJcHs09G.js} +1 -1
- package/dist/client/assets/data-import-button-cvKmYZJe.js +6 -0
- package/dist/client/assets/detail-C3U9ED1b.js +1 -0
- package/dist/client/assets/{diagram-S7CK7UJ4-DpT9R2w0.js → diagram-S7CK7UJ4-Drsfjeco.js} +1 -1
- package/dist/client/assets/{diagram-UQ7AKVKN-DAy1Fpaf.js → diagram-UQ7AKVKN-0SrBP_3E.js} +1 -1
- package/dist/client/assets/{diagram-VSXAHHWV-Co-NFSf3.js → diagram-VSXAHHWV-DB2rqHgv.js} +1 -1
- package/dist/client/assets/{diagram-VX7I27RA-CaIWof2e.js → diagram-VX7I27RA-B2y3VQbR.js} +1 -1
- package/dist/client/assets/{diagram-Z3DM3KII-BpcVyNtl.js → diagram-Z3DM3KII-D63_zfy5.js} +1 -1
- package/dist/client/assets/diff-highlight.worker-FEJq0yPv.js +60 -0
- package/dist/client/assets/dist-BO6Gz-vk.js +1 -0
- package/dist/client/assets/{dist-Dtgf0TOg.js → dist-DGw3MClt.js} +1 -1
- package/dist/client/assets/{ebnfDiagram-PWID7BFC-CS26Rt0p.js → ebnfDiagram-PWID7BFC-8gEK-ifx.js} +1 -1
- package/dist/client/assets/{en-US-SlQiGO_s.js → en-US-C-x19js7.js} +1 -1
- package/dist/client/assets/{erDiagram-RLTQ6QDP-DsdFXV4-.js → erDiagram-RLTQ6QDP-B2CcHHg7.js} +1 -1
- package/dist/client/assets/eventmodeling-NTZA5JFV-DqUwwD9w.js +1 -0
- package/dist/client/assets/{factory-config-scripts-BoDNVi6q.js → factory-config-scripts-C2BfO5od.js} +1 -1
- package/dist/client/assets/flowDiagram-HODETNUW-DCZkaOsj.js +1 -0
- package/dist/client/assets/{ganttDiagram-EL5Y4UJY-D_b7Bn-J.js → ganttDiagram-EL5Y4UJY-B_Y3HJTL.js} +1 -1
- package/dist/client/assets/{gitGraph-4MIJSDKK-De5ASUSY.js → gitGraph-4MIJSDKK-DBd1UxTm.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-WWUBYQGX-BHMJvUNJ.js → gitGraphDiagram-WWUBYQGX-CrdKibnu.js} +1 -1
- package/dist/client/assets/{home-DjDt91tt.js → home-DRzNpm0E.js} +1 -1
- package/dist/client/assets/hooks-3rxtNHRh.js +1 -0
- package/dist/client/assets/index-BJo4hZ8z.js +10 -0
- package/dist/client/assets/{info-A6RAGUB7-DNiM6MW6.js → info-A6RAGUB7-CCMRmQ2H.js} +1 -1
- package/dist/client/assets/{infoDiagram-27XIBGKW-4g58w-zo.js → infoDiagram-27XIBGKW-DO-IhKUM.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-5VMMS53U-DO7_eJ6Q.js → ishikawaDiagram-5VMMS53U-KejlLQ1k.js} +1 -1
- package/dist/client/assets/{journeyDiagram-3NMN7TZE-6CJtdIGo.js → journeyDiagram-3NMN7TZE-DemWKqD6.js} +1 -1
- package/dist/client/assets/jsx-runtime-BNakU3Ej.js +1 -0
- package/dist/client/assets/{kanban-definition-UXKFOSKX-D211MzXr.js → kanban-definition-UXKFOSKX-uRffHAE9.js} +1 -1
- package/dist/client/assets/{label-CI3jpwv-.js → label-ANA2Lfpk.js} +1 -1
- package/dist/client/assets/lib-CHy_7XQu.js +1 -0
- package/dist/client/assets/{line-DotOMT4o.js → line-CfCBYCoS.js} +1 -1
- package/dist/client/assets/list-C3P6JbyU.js +30 -0
- package/dist/client/assets/{list-bUzF8ozJ.js → list-oJCufmEX.js} +1 -1
- package/dist/client/assets/{logs-CjKXHkrB.js → logs-zb2la033.js} +1 -1
- package/dist/client/assets/{mermaid-diagram-CESNj6Ju.js → mermaid-diagram-kbWN558y.js} +4 -4
- package/dist/client/assets/{mermaid-parser.core-DK0kgowR.js → mermaid-parser.core-CpkwJ-8U.js} +3 -3
- package/dist/client/assets/{mindmap-definition-YA3MSWOX-DF5ewLZ5.js → mindmap-definition-YA3MSWOX-DYYi_9Si.js} +1 -1
- package/dist/client/assets/{mobile-baseline-B0PakiKB.js → mobile-baseline-BVS3GXLz.js} +1 -1
- package/dist/client/assets/new-BiEmR60A.js +1 -0
- package/dist/client/assets/new-CcQm3ES8.js +1 -0
- package/dist/client/assets/{packet-AYTQ26CC-C4EHUAzU.js → packet-AYTQ26CC-kvNXQn-j.js} +1 -1
- package/dist/client/assets/{page-header-BCpV1oUO.js → page-header-CpSh-j1O.js} +1 -1
- package/dist/client/assets/{pegDiagram-XKGWAZYB-_WrA16pJ.js → pegDiagram-XKGWAZYB-CMAngYAK.js} +1 -1
- package/dist/client/assets/{pie-WAS4IAKB-BkSTK6KM.js → pie-WAS4IAKB-DFNGAljQ.js} +1 -1
- package/dist/client/assets/{pieDiagram-E7YTZNPT-CUR0mgrL.js → pieDiagram-E7YTZNPT-XGRy7b5E.js} +1 -1
- package/dist/client/assets/{popover-D-6mugCQ.js → popover-CIfFCO0U.js} +1 -1
- package/dist/client/assets/pr-inbox-item-D9UcI0SS.js +2 -0
- package/dist/client/assets/{preload-helper-Czpn1I53.js → preload-helper-BZ1Pz5am.js} +1 -1
- package/dist/client/assets/{project-repo-form-DjzRbY9O.js → project-repo-form-Dc8ha6XP.js} +1 -1
- package/dist/client/assets/{provider-cli-warning-LYUDO_5Y.js → provider-cli-warning-CIAJ88Cy.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-AXDQQJYC-QXmh8FnA.js → quadrantDiagram-AXDQQJYC-BFek-axl.js} +1 -1
- package/dist/client/assets/{radar-RG4KPBEZ-ymOfNW7I.js → radar-RG4KPBEZ-k-UBw86I.js} +1 -1
- package/dist/client/assets/{radio-group-CcAx51bT.js → radio-group-BhmTXkIv.js} +1 -1
- package/dist/client/assets/{railroad-74A4TZTK-CwWB40du.js → railroad-74A4TZTK-B6DuT-HY.js} +1 -1
- package/dist/client/assets/railroad-abnf-HS5TGJTU-DF-z1cVb.js +1 -0
- package/dist/client/assets/railroad-ebnf-LZEXJU2U-C6VgaalR.js +1 -0
- package/dist/client/assets/railroad-peg-WCYAUIDC-DRMqhGU3.js +1 -0
- package/dist/client/assets/{railroadDiagram-O6MQD6OU-O7DCuidl.js → railroadDiagram-O6MQD6OU-CBzDTFh9.js} +1 -1
- package/dist/client/assets/redirect-DexaYCz_.js +1 -0
- package/dist/client/assets/{requirementDiagram-BXWQKSXE-BajIi2rw.js → requirementDiagram-BXWQKSXE-DSgpbBy3.js} +1 -1
- package/dist/client/assets/{reviews-B04-ADI9.js → reviews-DDO7Pvrz.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-P5KCCOFB-CnR7slVB.js → sankeyDiagram-P5KCCOFB-BOWaOPXp.js} +1 -1
- package/dist/client/assets/{select-BgEObL9n.js → select-Cq3ddA2b.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-WJ2MYXX4-BUxl34n_.js → sequenceDiagram-WJ2MYXX4-9wHsZFGh.js} +1 -1
- package/dist/client/assets/spinner-BszfzCYe.js +1 -0
- package/dist/client/assets/{startup-script-form-c7w0nnHp.js → startup-script-form-CHvwd1Nb.js} +1 -1
- package/dist/client/assets/{stateDiagram-D77RDMKH-aFuhfmKp.js → stateDiagram-D77RDMKH-Blo9H6q_.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-MP3YSRHH-BzJ9AKXW.js +1 -0
- package/dist/client/assets/{swimlanes-42K2YHIH-BccYx63r.js → swimlanes-42K2YHIH-DI0BHdWG.js} +1 -1
- package/dist/client/assets/swimlanesDiagram-VR7AAH4N-DSnxWZUW.js +8 -0
- package/dist/client/assets/{table-wIG3osPW.js → table-CUvMM0aA.js} +1 -1
- package/dist/client/assets/{tabs-Cn3M4k-N.js → tabs-BBAQyvSA.js} +1 -1
- package/dist/client/assets/{terminal-instance-7W1Sdy6P.js → terminal-instance-BEqkmyvv.js} +1 -1
- package/dist/client/assets/{textarea-BVHmIkCM.js → textarea-DxWYClhS.js} +1 -1
- package/dist/client/assets/{timeline-definition-24CTP7MA-CM_waoCp.js → timeline-definition-24CTP7MA-C8fyxpVm.js} +1 -1
- package/dist/client/assets/{tooltip-DCH0jP98.js → tooltip-DXcY1U7y.js} +1 -1
- package/dist/client/assets/{treeView-Q6P3EWNA-CkV-8YWk.js → treeView-Q6P3EWNA-CzQAwJw-.js} +1 -1
- package/dist/client/assets/{treemap-WGGIJYW6-L1FedAzz.js → treemap-WGGIJYW6-zWRSK6WR.js} +1 -1
- package/dist/client/assets/trpc-CQO3zfei.js +1 -0
- package/dist/client/assets/{use-auto-scroll-QQMmbsX-.js → use-auto-scroll-DNohsNoz.js} +1 -1
- package/dist/client/assets/{use-download-server-log-Bag_Et_8.js → use-download-server-log-efKIcIwE.js} +1 -1
- package/dist/client/assets/use-project-header-navigation-D5yIIgnb.js +1 -0
- package/dist/client/assets/{use-websocket-channel-DW9rsEG5.js → use-websocket-channel-dNXOJZfW.js} +1 -1
- package/dist/client/assets/use-websocket-transport-BuYcrZTd.js +55 -0
- package/dist/client/assets/vbnet-CwR9YcOY.js +57 -0
- package/dist/client/assets/{vennDiagram-4TSXK5OY-Djoofmfi.js → vennDiagram-4TSXK5OY-ffnMpD5u.js} +1 -1
- package/dist/client/assets/{wardley-WFR3VGLG-BU-g6L7U.js → wardley-WFR3VGLG-acbsrLnl.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-VM6X3IG4-DZNgTneT.js → wardleyDiagram-VM6X3IG4-BtqGCwsu.js} +1 -1
- package/dist/client/assets/workspace-a6lf168c.js +18 -0
- package/dist/client/assets/{xychartDiagram-S5SC5T6Z-WTubjsZj.js → xychartDiagram-S5SC5T6Z-Bfy9xcWF.js} +1 -1
- package/dist/client/index.html +28 -35
- package/dist/prisma/generated/internal/class.js +1 -1
- package/dist/prisma/generated/internal/class.js.map +1 -1
- package/dist/prompts/quick-actions/fetch-rebase.md +5 -9
- package/dist/prompts/quick-actions/rename-branch.md +4 -8
- package/dist/prompts/quick-actions/review.md +6 -5
- package/dist/prompts/quick-actions/screenshots.md +7 -20
- package/dist/prompts/quick-actions/simplify.md +4 -1
- package/dist/prompts/ratchet/dispatch.md +13 -46
- package/dist/src/backend/orchestration/cli-health.service.d.ts.map +1 -1
- package/dist/src/backend/orchestration/cli-health.service.js +31 -23
- package/dist/src/backend/orchestration/cli-health.service.js.map +1 -1
- package/dist/src/backend/orchestration/cli-health.service.test.js +40 -0
- package/dist/src/backend/orchestration/cli-health.service.test.js.map +1 -1
- package/dist/src/backend/orchestration/data-backup.service.test.js +37 -4
- package/dist/src/backend/orchestration/data-backup.service.test.js.map +1 -1
- package/dist/src/backend/orchestration/event-collector.idle-refresh.test.d.ts +2 -0
- package/dist/src/backend/orchestration/event-collector.idle-refresh.test.d.ts.map +1 -0
- package/dist/src/backend/orchestration/event-collector.idle-refresh.test.js +83 -0
- package/dist/src/backend/orchestration/event-collector.idle-refresh.test.js.map +1 -0
- package/dist/src/backend/orchestration/event-collector.linear.test.d.ts +2 -0
- package/dist/src/backend/orchestration/event-collector.linear.test.d.ts.map +1 -0
- package/dist/src/backend/orchestration/event-collector.linear.test.js +206 -0
- package/dist/src/backend/orchestration/event-collector.linear.test.js.map +1 -0
- package/dist/src/backend/orchestration/event-collector.orchestrator.d.ts.map +1 -1
- package/dist/src/backend/orchestration/event-collector.orchestrator.js +40 -8
- package/dist/src/backend/orchestration/event-collector.orchestrator.js.map +1 -1
- package/dist/src/backend/orchestration/snapshot-reconciliation.orchestrator.d.ts +1 -0
- package/dist/src/backend/orchestration/snapshot-reconciliation.orchestrator.d.ts.map +1 -1
- package/dist/src/backend/orchestration/snapshot-reconciliation.orchestrator.js +20 -4
- package/dist/src/backend/orchestration/snapshot-reconciliation.orchestrator.js.map +1 -1
- package/dist/src/backend/orchestration/snapshot-reconciliation.orchestrator.test.js +55 -104
- package/dist/src/backend/orchestration/snapshot-reconciliation.orchestrator.test.js.map +1 -1
- package/dist/src/backend/orchestration/snapshot-reconciliation.test-helpers.d.ts +6 -0
- package/dist/src/backend/orchestration/snapshot-reconciliation.test-helpers.d.ts.map +1 -0
- package/dist/src/backend/orchestration/snapshot-reconciliation.test-helpers.js +117 -0
- package/dist/src/backend/orchestration/snapshot-reconciliation.test-helpers.js.map +1 -0
- package/dist/src/backend/orchestration/snapshot-reconciliation.test-helpers.test.d.ts +2 -0
- package/dist/src/backend/orchestration/snapshot-reconciliation.test-helpers.test.d.ts.map +1 -0
- package/dist/src/backend/orchestration/snapshot-reconciliation.test-helpers.test.js +8 -0
- package/dist/src/backend/orchestration/snapshot-reconciliation.test-helpers.test.js.map +1 -0
- package/dist/src/backend/orchestration/workspace-archive.orchestrator.d.ts.map +1 -1
- package/dist/src/backend/orchestration/workspace-archive.orchestrator.js +40 -34
- package/dist/src/backend/orchestration/workspace-archive.orchestrator.js.map +1 -1
- package/dist/src/backend/orchestration/workspace-archive.orchestrator.test.js +4 -0
- package/dist/src/backend/orchestration/workspace-archive.orchestrator.test.js.map +1 -1
- package/dist/src/backend/orchestration/workspace-children.orchestrator.d.ts.map +1 -1
- package/dist/src/backend/orchestration/workspace-children.orchestrator.js +1 -2
- package/dist/src/backend/orchestration/workspace-children.orchestrator.js.map +1 -1
- package/dist/src/backend/orchestration/workspace-init-issue-prompts.test.js +3 -3
- package/dist/src/backend/orchestration/workspace-init-issue-prompts.test.js.map +1 -1
- package/dist/src/backend/orchestration/workspace-init-script-pipeline.d.ts.map +1 -1
- package/dist/src/backend/orchestration/workspace-init-script-pipeline.js +3 -3
- package/dist/src/backend/orchestration/workspace-init-script-pipeline.js.map +1 -1
- package/dist/src/backend/orchestration/workspace-init-script-pipeline.test.d.ts +2 -0
- package/dist/src/backend/orchestration/workspace-init-script-pipeline.test.d.ts.map +1 -0
- package/dist/src/backend/orchestration/workspace-init-script-pipeline.test.js +52 -0
- package/dist/src/backend/orchestration/workspace-init-script-pipeline.test.js.map +1 -0
- package/dist/src/backend/orchestration/workspace-runtime-cleanup-notification.test.d.ts +2 -0
- package/dist/src/backend/orchestration/workspace-runtime-cleanup-notification.test.d.ts.map +1 -0
- package/dist/src/backend/orchestration/workspace-runtime-cleanup-notification.test.js +175 -0
- package/dist/src/backend/orchestration/workspace-runtime-cleanup-notification.test.js.map +1 -0
- package/dist/src/backend/prompts/branch-rename.js +1 -1
- package/dist/src/backend/prompts/ratchet-dispatch.d.ts.map +1 -1
- package/dist/src/backend/prompts/ratchet-dispatch.js +12 -78
- package/dist/src/backend/prompts/ratchet-dispatch.js.map +1 -1
- package/dist/src/backend/prompts/ratchet-dispatch.test.js +39 -27
- package/dist/src/backend/prompts/ratchet-dispatch.test.js.map +1 -1
- package/dist/src/backend/services/auto-iteration/service/auto-iteration.service.d.ts.map +1 -1
- package/dist/src/backend/services/auto-iteration/service/auto-iteration.service.js +6 -1
- package/dist/src/backend/services/auto-iteration/service/auto-iteration.service.js.map +1 -1
- package/dist/src/backend/services/auto-iteration/service/auto-iteration.service.test.js +60 -1
- package/dist/src/backend/services/auto-iteration/service/auto-iteration.service.test.js.map +1 -1
- package/dist/src/backend/services/auto-iteration/service/prompts.d.ts.map +1 -1
- package/dist/src/backend/services/auto-iteration/service/prompts.js +14 -54
- package/dist/src/backend/services/auto-iteration/service/prompts.js.map +1 -1
- package/dist/src/backend/services/github/service/github-cli-health-cache.test.d.ts +2 -0
- package/dist/src/backend/services/github/service/github-cli-health-cache.test.d.ts.map +1 -0
- package/dist/src/backend/services/github/service/github-cli-health-cache.test.js +45 -0
- package/dist/src/backend/services/github/service/github-cli-health-cache.test.js.map +1 -0
- package/dist/src/backend/services/github/service/github-cli.service.d.ts +1 -1
- package/dist/src/backend/services/github/service/github-cli.service.d.ts.map +1 -1
- package/dist/src/backend/services/github/service/github-cli.service.js +25 -23
- package/dist/src/backend/services/github/service/github-cli.service.js.map +1 -1
- package/dist/src/backend/services/linear/service/linear-client.service.d.ts +1 -1
- package/dist/src/backend/services/linear/service/linear-client.service.d.ts.map +1 -1
- package/dist/src/backend/services/linear/service/linear-client.service.js +24 -9
- package/dist/src/backend/services/linear/service/linear-client.service.js.map +1 -1
- package/dist/src/backend/services/linear/service/linear-client.service.test.js +46 -5
- package/dist/src/backend/services/linear/service/linear-client.service.test.js.map +1 -1
- package/dist/src/backend/services/linear/service/linear-state-sync.service.d.ts +1 -1
- package/dist/src/backend/services/linear/service/linear-state-sync.service.d.ts.map +1 -1
- package/dist/src/backend/services/linear/service/linear-state-sync.service.js +2 -1
- package/dist/src/backend/services/linear/service/linear-state-sync.service.js.map +1 -1
- package/dist/src/backend/services/linear/service/linear-state-sync.service.test.js +7 -3
- package/dist/src/backend/services/linear/service/linear-state-sync.service.test.js.map +1 -1
- package/dist/src/backend/services/ratchet/service/fixer-session.service.js +1 -1
- package/dist/src/backend/services/ratchet/service/fixer-session.service.js.map +1 -1
- package/dist/src/backend/services/ratchet/service/ratchet.service.test.js +1 -1
- package/dist/src/backend/services/ratchet/service/ratchet.service.test.js.map +1 -1
- package/dist/src/backend/services/run-script/service/startup-script.service.d.ts +1 -0
- package/dist/src/backend/services/run-script/service/startup-script.service.d.ts.map +1 -1
- package/dist/src/backend/services/run-script/service/startup-script.service.js +3 -1
- package/dist/src/backend/services/run-script/service/startup-script.service.js.map +1 -1
- package/dist/src/backend/services/session/service/acp/acp-runtime-quiescence.js +1 -1
- package/dist/src/backend/services/session/service/acp/acp-runtime-quiescence.js.map +1 -1
- package/dist/src/backend/services/session/service/acp/acp-runtime-supervisor.js +1 -1
- package/dist/src/backend/services/session/service/acp/acp-runtime-supervisor.js.map +1 -1
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-notification-queue.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-notification-queue.js +1 -3
- package/dist/src/backend/services/session/service/acp/codex-app-server-adapter/codex-notification-queue.js.map +1 -1
- package/dist/src/backend/services/session/service/acp/types.d.ts +0 -1
- package/dist/src/backend/services/session/service/acp/types.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/start.handler.test.js +0 -1
- package/dist/src/backend/services/session/service/chat/chat-message-handlers/handlers/start.handler.test.js.map +1 -1
- package/dist/src/backend/services/session/service/data/session-provider-resolver.service.test.js +1 -1
- package/dist/src/backend/services/session/service/data/session-provider-resolver.service.test.js.map +1 -1
- package/dist/src/backend/services/session/service/index.d.ts +1 -1
- package/dist/src/backend/services/session/service/index.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/index.js +1 -1
- package/dist/src/backend/services/session/service/index.js.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session-context.service.d.ts +1 -5
- package/dist/src/backend/services/session/service/lifecycle/session-context.service.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session-context.service.js +2 -63
- package/dist/src/backend/services/session/service/lifecycle/session-context.service.js.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session-context.service.test.js +23 -99
- package/dist/src/backend/services/session/service/lifecycle/session-context.service.test.js.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session-lifecycle-external-ports.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session-lifecycle-external-ports.js +13 -7
- package/dist/src/backend/services/session/service/lifecycle/session-lifecycle-external-ports.js.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session-lifecycle-external-ports.test.js +26 -5
- package/dist/src/backend/services/session/service/lifecycle/session-lifecycle-external-ports.test.js.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session-lifecycle-gate.d.ts +1 -0
- package/dist/src/backend/services/session/service/lifecycle/session-lifecycle-gate.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session-lifecycle-gate.js +3 -0
- package/dist/src/backend/services/session/service/lifecycle/session-lifecycle-gate.js.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session-lifecycle.test-helpers.d.ts +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session-lifecycle.test-helpers.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session-lifecycle.test-helpers.js +0 -11
- package/dist/src/backend/services/session/service/lifecycle/session-lifecycle.test-helpers.js.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session-runtime-exit.coordinator.d.ts +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session-runtime-exit.coordinator.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session-runtime-exit.coordinator.js +8 -5
- package/dist/src/backend/services/session/service/lifecycle/session-runtime-exit.coordinator.js.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session-runtime-exit.coordinator.test.js +9 -5
- package/dist/src/backend/services/session/service/lifecycle/session-runtime-exit.coordinator.test.js.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session-services.composition.test.js +0 -1
- package/dist/src/backend/services/session/service/lifecycle/session-services.composition.test.js.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session-startup.coordinator.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session-startup.coordinator.js +0 -1
- package/dist/src/backend/services/session/service/lifecycle/session-startup.coordinator.js.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session-workflow-permissions.d.ts +7 -0
- package/dist/src/backend/services/session/service/lifecycle/session-workflow-permissions.d.ts.map +1 -0
- package/dist/src/backend/services/session/service/lifecycle/session-workflow-permissions.js +9 -0
- package/dist/src/backend/services/session/service/lifecycle/session-workflow-permissions.js.map +1 -0
- package/dist/src/backend/services/session/service/lifecycle/session.config.service.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session.config.service.js +4 -5
- package/dist/src/backend/services/session/service/lifecycle/session.config.service.js.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session.config.service.test.js +8 -8
- package/dist/src/backend/services/session/service/lifecycle/session.config.service.test.js.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session.lifecycle.facade.test.js +0 -2
- package/dist/src/backend/services/session/service/lifecycle/session.lifecycle.facade.test.js.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session.lifecycle.service.d.ts +0 -1
- package/dist/src/backend/services/session/service/lifecycle/session.lifecycle.service.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session.lifecycle.service.js.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session.prompt-builder.d.ts +0 -33
- package/dist/src/backend/services/session/service/lifecycle/session.prompt-builder.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session.prompt-builder.js +0 -40
- package/dist/src/backend/services/session/service/lifecycle/session.prompt-builder.js.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session.prompt-builder.test.js +2 -170
- package/dist/src/backend/services/session/service/lifecycle/session.prompt-builder.test.js.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session.repository.d.ts +4 -12
- package/dist/src/backend/services/session/service/lifecycle/session.repository.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session.repository.js +2 -7
- package/dist/src/backend/services/session/service/lifecycle/session.repository.js.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session.repository.test.js +1 -4
- package/dist/src/backend/services/session/service/lifecycle/session.repository.test.js.map +1 -1
- package/dist/src/backend/services/session/service/lifecycle/session.service.test.js +0 -162
- package/dist/src/backend/services/session/service/lifecycle/session.service.test.js.map +1 -1
- package/dist/src/backend/services/session/service/voice/voice-narration.service.d.ts +1 -0
- package/dist/src/backend/services/session/service/voice/voice-narration.service.d.ts.map +1 -1
- package/dist/src/backend/services/session/service/voice/voice-narration.service.js +69 -19
- package/dist/src/backend/services/session/service/voice/voice-narration.service.js.map +1 -1
- package/dist/src/backend/services/session/service/voice/voice-narration.service.test.js +196 -113
- package/dist/src/backend/services/session/service/voice/voice-narration.service.test.js.map +1 -1
- package/dist/src/backend/services/workspace/resources/project.accessor.d.ts.map +1 -1
- package/dist/src/backend/services/workspace/resources/project.accessor.js +3 -0
- package/dist/src/backend/services/workspace/resources/project.accessor.js.map +1 -1
- package/dist/src/backend/services/workspace/resources/project.accessor.test.js +24 -2
- package/dist/src/backend/services/workspace/resources/project.accessor.test.js.map +1 -1
- package/dist/src/backend/services/workspace/service/lifecycle/activity.service.d.ts +2 -0
- package/dist/src/backend/services/workspace/service/lifecycle/activity.service.d.ts.map +1 -1
- package/dist/src/backend/services/workspace/service/lifecycle/activity.service.js +30 -0
- package/dist/src/backend/services/workspace/service/lifecycle/activity.service.js.map +1 -1
- package/dist/src/backend/services/workspace/service/lifecycle/activity.service.test.js +113 -0
- package/dist/src/backend/services/workspace/service/lifecycle/activity.service.test.js.map +1 -1
- package/dist/src/backend/services/workspace/service/lifecycle/creation.service.test.js +2 -2
- package/dist/src/backend/services/workspace/service/lifecycle/creation.service.test.js.map +1 -1
- package/dist/src/backend/services/workspace/service/worktree/git-ops.service.d.ts.map +1 -1
- package/dist/src/backend/services/workspace/service/worktree/git-ops.service.js +12 -1
- package/dist/src/backend/services/workspace/service/worktree/git-ops.service.js.map +1 -1
- package/dist/src/backend/services/workspace/service/worktree/git-ops.service.test.js +15 -0
- package/dist/src/backend/services/workspace/service/worktree/git-ops.service.test.js.map +1 -1
- package/dist/src/backend/services/workspace-git-state.service.js +1 -1
- package/dist/src/backend/services/workspace-git-state.service.js.map +1 -1
- package/dist/src/backend/trpc/admin.router.test.js +34 -1
- package/dist/src/backend/trpc/admin.router.test.js.map +1 -1
- package/dist/src/backend/trpc/admin.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/admin.trpc.js +2 -2
- package/dist/src/backend/trpc/admin.trpc.js.map +1 -1
- package/dist/src/backend/trpc/voice.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/voice.trpc.js +6 -3
- package/dist/src/backend/trpc/voice.trpc.js.map +1 -1
- package/dist/src/backend/trpc/voice.trpc.test.js +27 -8
- package/dist/src/backend/trpc/voice.trpc.test.js.map +1 -1
- package/dist/src/backend/trpc/workspace/init.router.test.js +40 -1
- package/dist/src/backend/trpc/workspace/init.router.test.js.map +1 -1
- package/dist/src/backend/trpc/workspace/init.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/workspace/init.trpc.js +20 -14
- package/dist/src/backend/trpc/workspace/init.trpc.js.map +1 -1
- package/dist/src/backend/trpc/workspace.router.test.js +1 -0
- package/dist/src/backend/trpc/workspace.router.test.js.map +1 -1
- package/dist/src/backend/trpc/workspace.trpc.d.ts.map +1 -1
- package/dist/src/backend/trpc/workspace.trpc.js +17 -16
- package/dist/src/backend/trpc/workspace.trpc.js.map +1 -1
- package/dist/src/shared/deepgram-voices.d.ts +7 -3
- package/dist/src/shared/deepgram-voices.d.ts.map +1 -1
- package/dist/src/shared/deepgram-voices.js +62 -45
- package/dist/src/shared/deepgram-voices.js.map +1 -1
- package/dist/src/shared/issue-start-prompt.d.ts.map +1 -1
- package/dist/src/shared/issue-start-prompt.js +6 -160
- package/dist/src/shared/issue-start-prompt.js.map +1 -1
- package/dist/src/shared/schemas/export-data.schema.d.ts +4 -4
- package/dist/src/shared/schemas/export-data.schema.d.ts.map +1 -1
- package/dist/src/shared/schemas/export-data.schema.js +13 -5
- package/dist/src/shared/schemas/export-data.schema.js.map +1 -1
- package/dist/tsconfig.backend.tsbuildinfo +1 -1
- package/package.json +34 -28
- package/prisma/migrations/20260904150539_upgrade_deepgram_flux_tts/migration.sql +43 -0
- package/prisma/schema.prisma +1 -1
- package/prompts/quick-actions/fetch-rebase.md +5 -9
- package/prompts/quick-actions/rename-branch.md +4 -8
- package/prompts/quick-actions/review.md +6 -5
- package/prompts/quick-actions/screenshots.md +7 -20
- package/prompts/quick-actions/simplify.md +4 -1
- package/prompts/ratchet/dispatch.md +13 -46
- package/dist/client/assets/admin-page-DSQHBVdP.js +0 -1
- package/dist/client/assets/architecture-7GRP2DOG-iqZodW6v.js +0 -1
- package/dist/client/assets/channel-CuF41sy9.js +0 -1
- package/dist/client/assets/classDiagram-ZZMXUADV-CSnIdOhD.js +0 -1
- package/dist/client/assets/classDiagram-v2-VYDZK3BY-CSnIdOhD.js +0 -1
- package/dist/client/assets/components-CYsyoHP0.js +0 -1
- package/dist/client/assets/data-import-button-D-ZWnQAg.js +0 -6
- package/dist/client/assets/detail-C1zBkWd-.js +0 -1
- package/dist/client/assets/diff-highlight.worker-C-7SSG_d.js +0 -55
- package/dist/client/assets/dist-BiFeezwN.js +0 -1
- package/dist/client/assets/eventmodeling-NTZA5JFV-C4d4RnR4.js +0 -1
- package/dist/client/assets/flowDiagram-HODETNUW-Df-T-03y.js +0 -1
- package/dist/client/assets/hooks-BTcY6K1q.js +0 -1
- package/dist/client/assets/index-D34fUfAP.js +0 -10
- package/dist/client/assets/jsx-runtime-DE3RlOCf.js +0 -1
- package/dist/client/assets/lib-DyBYhPHb.js +0 -1
- package/dist/client/assets/list-DozL_ZP-.js +0 -184
- package/dist/client/assets/new-C3e5S62x.js +0 -1
- package/dist/client/assets/new-CCDeoRvw.js +0 -1
- package/dist/client/assets/pr-inbox-item-vOH1gfSf.js +0 -2
- package/dist/client/assets/railroad-abnf-HS5TGJTU-DGUx-UBP.js +0 -1
- package/dist/client/assets/railroad-ebnf-LZEXJU2U-isA18bJo.js +0 -1
- package/dist/client/assets/railroad-peg-WCYAUIDC-Qz11I2dz.js +0 -1
- package/dist/client/assets/redirect-CNaRFL8d.js +0 -1
- package/dist/client/assets/spinner-ASaPCL5c.js +0 -1
- package/dist/client/assets/stateDiagram-v2-MP3YSRHH-C3HBCmSp.js +0 -1
- package/dist/client/assets/swimlanesDiagram-VR7AAH4N-DXqJPUvi.js +0 -8
- package/dist/client/assets/trpc-X4t2_jd5.js +0 -1
- package/dist/client/assets/use-project-header-navigation-BXqLQ4G_.js +0 -1
- package/dist/client/assets/use-websocket-transport-BT1hhmkl.js +0 -50
- package/dist/client/assets/vbnet-CrqJJ08J.js +0 -57
- package/dist/client/assets/workspace-CsQCO4D_.js +0 -18
- package/dist/prompts/workflows/bugfix.md +0 -86
- package/dist/prompts/workflows/ci-fix.md +0 -52
- package/dist/prompts/workflows/explore.md +0 -54
- package/dist/prompts/workflows/feature.md +0 -80
- package/dist/prompts/workflows/followup.md +0 -32
- package/dist/prompts/workflows/pr-review-fix.md +0 -50
- package/dist/src/backend/prompts/workflows.d.ts +0 -14
- package/dist/src/backend/prompts/workflows.d.ts.map +0 -1
- package/dist/src/backend/prompts/workflows.js +0 -47
- package/dist/src/backend/prompts/workflows.js.map +0 -1
- package/dist/src/backend/prompts/workflows.test.d.ts +0 -2
- package/dist/src/backend/prompts/workflows.test.d.ts.map +0 -1
- package/dist/src/backend/prompts/workflows.test.js +0 -128
- package/dist/src/backend/prompts/workflows.test.js.map +0 -1
- package/prompts/workflows/bugfix.md +0 -86
- package/prompts/workflows/ci-fix.md +0 -52
- package/prompts/workflows/explore.md +0 -54
- package/prompts/workflows/feature.md +0 -80
- package/prompts/workflows/followup.md +0 -32
- package/prompts/workflows/pr-review-fix.md +0 -50
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/terminal-instance-7W1Sdy6P.js","assets/rolldown-runtime-hePW80VL.js","assets/jsx-runtime-DE3RlOCf.js","assets/terminal-instance-BrP-ENHg.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t,t as n}from"./jsx-runtime-DE3RlOCf.js";import{h as r,i}from"./dist-BiFeezwN.js";import{t as a}from"./preload-helper-Czpn1I53.js";import{n as o}from"./trpc-X4t2_jd5.js";import{i as s,l as c,r as l,s as u,t as d}from"./use-websocket-channel-DW9rsEG5.js";import{_ as f,a as p,c as m,d as ee,f as h,g,h as _,m as v,n as y,o as b,p as x,r as S,s as te,v as ne}from"./core-DW1Rn28Z.js";import{c as re,d as ie,o as ae,s as C,u as oe}from"./radio-group-CcAx51bT.js";import{D as se,O as ce,a as w,c as le,d as T,f as E,g as D,i as O,m as k,n as A,r as j}from"./use-websocket-transport-BT1hhmkl.js";import{E as M}from"./dist-Dtgf0TOg.js";import{t as N}from"./spinner-ASaPCL5c.js";import{t as P}from"./confirm-dialog-BAfboPjS.js";import{n as F,r as I,t as L}from"./voice-vad-ChMQMgBS.js";var R=e(t(),1),z=new Map([[`bold`,R.createElement(R.Fragment,null,R.createElement(`path`,{d:`M92.38,38.05A12,12,0,0,1,101,23.42a108,108,0,0,1,54,0,12,12,0,1,1-6,23.23,84.11,84.11,0,0,0-42,0A12,12,0,0,1,92.38,38.05ZM50.94,52.34a108.1,108.1,0,0,0-27,46.76,12,12,0,0,0,8.37,14.77,12.2,12.2,0,0,0,3.2.43,12,12,0,0,0,11.56-8.8,84,84,0,0,1,21-36.35A12,12,0,1,0,50.94,52.34Zm-3.88,98.14a12,12,0,0,0-23.12,6.42,108,108,0,0,0,27,46.78A12,12,0,0,0,68,186.85,84,84,0,0,1,47.06,150.48ZM149,209.35a84,84,0,0,1-42,0,12,12,0,1,0-6,23.23,108,108,0,0,0,54,0,12,12,0,1,0-6-23.23Zm74.72-67.22A12,12,0,0,0,209,150.5a84,84,0,0,1-21,36.35,12,12,0,0,0,17.12,16.82,108.19,108.19,0,0,0,27-46.77A12,12,0,0,0,223.71,142.13Zm-14.77-36.61a12,12,0,0,0,23.12-6.42,108,108,0,0,0-27-46.78A12,12,0,1,0,188,69.15,84,84,0,0,1,208.94,105.52Z`}))],[`duotone`,R.createElement(R.Fragment,null,R.createElement(`path`,{d:`M224,128a96,96,0,1,1-96-96A96,96,0,0,1,224,128Z`,opacity:`0.2`}),R.createElement(`path`,{d:`M96.26,37A8,8,0,0,1,102,27.29a104.11,104.11,0,0,1,52,0,8,8,0,0,1-2,15.75,8.15,8.15,0,0,1-2-.26,88.09,88.09,0,0,0-44,0A8,8,0,0,1,96.26,37ZM53.79,55.14a104,104,0,0,0-26,45,8,8,0,1,0,15.42,4.26,87.91,87.91,0,0,1,22-38.08A8,8,0,0,0,53.79,55.14ZM43.21,151.55a8,8,0,1,0-15.42,4.28,104,104,0,0,0,26,45,8,8,0,1,0,11.41-11.21A88.14,88.14,0,0,1,43.21,151.55ZM150,213.22a88,88,0,0,1-44,0,8,8,0,1,0-4,15.49,104.11,104.11,0,0,0,52,0,8,8,0,0,0-4-15.49ZM222.65,146a8,8,0,0,0-9.85,5.57,87.88,87.88,0,0,1-22,38.09,8,8,0,1,0,11.42,11.21,104.05,104.05,0,0,0,26-45A8,8,0,0,0,222.65,146Zm-9.86-41.54a8,8,0,0,0,15.42-4.28,104,104,0,0,0-26-45,8,8,0,1,0-11.41,11.21A88.14,88.14,0,0,1,212.79,104.45Z`}))],[`fill`,R.createElement(R.Fragment,null,R.createElement(`path`,{d:`M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm54.59,45a8,8,0,0,1,11.29.7,88,88,0,0,1,17.6,30.47,8,8,0,0,1-15.18,5.08,71.87,71.87,0,0,0-14.4-25A8,8,0,0,1,182.59,69ZM73.41,187.05a8,8,0,0,1-11.29-.7,88,88,0,0,1-17.6-30.47A8,8,0,1,1,59.7,150.8a71.87,71.87,0,0,0,14.4,24.95A8,8,0,0,1,73.41,187.05Zm.69-106.8a71.87,71.87,0,0,0-14.4,25,8,8,0,1,1-15.18-5.08,88,88,0,0,1,17.6-30.47,8,8,0,1,1,12,10.6Zm71.49,134a87.8,87.8,0,0,1-35.18,0,8,8,0,0,1,3.18-15.68,72.08,72.08,0,0,0,28.82,0,8,8,0,0,1,3.18,15.68Zm6.25-163A8,8,0,0,1,144,57.61a7.89,7.89,0,0,1-1.6-.16,72.08,72.08,0,0,0-28.82,0,8,8,0,1,1-3.18-15.68,87.92,87.92,0,0,1,35.18,0A8,8,0,0,1,151.84,51.2Zm59.64,104.68a88,88,0,0,1-17.6,30.47,8,8,0,1,1-12-10.6,71.87,71.87,0,0,0,14.4-24.95,8,8,0,0,1,15.18,5.08Z`}))],[`light`,R.createElement(R.Fragment,null,R.createElement(`path`,{d:`M98.19,36.54a6,6,0,0,1,4.3-7.31,102.12,102.12,0,0,1,51,0,6,6,0,0,1-3,11.62,90,90,0,0,0-45,0A6,6,0,0,1,98.19,36.54Zm-43,20A102.07,102.07,0,0,0,29.7,100.7a6,6,0,0,0,4.19,7.38,5.88,5.88,0,0,0,1.6.22,6,6,0,0,0,5.78-4.4A90,90,0,0,1,63.78,65a6,6,0,1,0-8.56-8.41ZM41.28,152.09a6,6,0,1,0-11.56,3.2,102,102,0,0,0,25.49,44.18,6,6,0,0,0,8.55-8.41A90.11,90.11,0,0,1,41.28,152.09Zm109.21,63.06a90,90,0,0,1-45,0,6,6,0,1,0-3,11.62,102.16,102.16,0,0,0,51,0,6,6,0,0,0-3-11.62Zm71.62-67.23a6,6,0,0,0-7.38,4.18,90,90,0,0,1-22.51,39,6,6,0,1,0,8.56,8.41A102.12,102.12,0,0,0,226.3,155.3,6,6,0,0,0,222.11,147.92Zm-7.39-44a6,6,0,0,0,5.78,4.4,5.88,5.88,0,0,0,1.6-.22,6,6,0,0,0,4.18-7.38,102,102,0,0,0-25.49-44.18,6,6,0,0,0-8.55,8.41A90.05,90.05,0,0,1,214.72,103.91Z`}))],[`regular`,R.createElement(R.Fragment,null,R.createElement(`path`,{d:`M96.26,37.05A8,8,0,0,1,102,27.29a104.11,104.11,0,0,1,52,0,8,8,0,0,1-2,15.75,8.15,8.15,0,0,1-2-.26,88.09,88.09,0,0,0-44,0A8,8,0,0,1,96.26,37.05ZM53.79,55.14a104.05,104.05,0,0,0-26,45,8,8,0,0,0,15.42,4.27,88,88,0,0,1,22-38.09A8,8,0,0,0,53.79,55.14ZM43.21,151.55a8,8,0,1,0-15.42,4.28,104.12,104.12,0,0,0,26,45,8,8,0,0,0,11.41-11.22A88.14,88.14,0,0,1,43.21,151.55ZM150,213.22a88,88,0,0,1-44,0,8,8,0,1,0-4,15.49,104.11,104.11,0,0,0,52,0,8,8,0,0,0-4-15.49ZM222.65,146a8,8,0,0,0-9.85,5.58,87.91,87.91,0,0,1-22,38.08,8,8,0,1,0,11.42,11.21,104,104,0,0,0,26-45A8,8,0,0,0,222.65,146Zm-9.86-41.54a8,8,0,0,0,15.42-4.28,104,104,0,0,0-26-45,8,8,0,1,0-11.41,11.22A88,88,0,0,1,212.79,104.45Z`}))],[`thin`,R.createElement(R.Fragment,null,R.createElement(`path`,{d:`M155.87,36.06a4,4,0,0,1-3.87,3,4.29,4.29,0,0,1-1-.13,92,92,0,0,0-46,0,4,4,0,0,1-2-7.74,100.09,100.09,0,0,1,50,0A4,4,0,0,1,155.87,36.06ZM56.65,57.94a100.18,100.18,0,0,0-25,43.29,4,4,0,0,0,7.71,2.14,92.06,92.06,0,0,1,23-39.82,4,4,0,1,0-5.7-5.61ZM39.36,152.62a4,4,0,0,0-7.71,2.14,100.08,100.08,0,0,0,25,43.31,4,4,0,1,0,5.71-5.61A91.91,91.91,0,0,1,39.36,152.62ZM151,217.09a92,92,0,0,1-46,0,4,4,0,0,0-2,7.75,100,100,0,0,0,50,0,4,4,0,1,0-2-7.74Zm70.58-67.25a4,4,0,0,0-4.92,2.79,92.12,92.12,0,0,1-23,39.82,4,4,0,1,0,5.7,5.61,100.18,100.18,0,0,0,25-43.29A4,4,0,0,0,221.58,149.84Zm-4.94-46.46a4,4,0,0,0,7.71-2.14,100.08,100.08,0,0,0-25-43.31,4,4,0,1,0-5.71,5.61A91.91,91.91,0,0,1,216.64,103.38Z`}))]]),B=new Map([[`bold`,R.createElement(R.Fragment,null,R.createElement(`path`,{d:`M188,184a16,16,0,1,1,16-16A16,16,0,0,1,188,184Zm36-68H180a12,12,0,0,0,0,24h40v56H36V140H76a12,12,0,0,0,0-24H32a20,20,0,0,0-20,20v64a20,20,0,0,0,20,20H224a20,20,0,0,0,20-20V136A20,20,0,0,0,224,116ZM88.49,80.49,116,53v75a12,12,0,0,0,24,0V53l27.51,27.52a12,12,0,1,0,17-17l-48-48a12,12,0,0,0-17,0l-48,48a12,12,0,1,0,17,17Z`}))],[`duotone`,R.createElement(R.Fragment,null,R.createElement(`path`,{d:`M232,136v64a8,8,0,0,1-8,8H32a8,8,0,0,1-8-8V136a8,8,0,0,1,8-8H224A8,8,0,0,1,232,136Z`,opacity:`0.2`}),R.createElement(`path`,{d:`M240,136v64a16,16,0,0,1-16,16H32a16,16,0,0,1-16-16V136a16,16,0,0,1,16-16H80a8,8,0,0,1,0,16H32v64H224V136H176a8,8,0,0,1,0-16h48A16,16,0,0,1,240,136ZM85.66,77.66,120,43.31V128a8,8,0,0,0,16,0V43.31l34.34,34.35a8,8,0,0,0,11.32-11.32l-48-48a8,8,0,0,0-11.32,0l-48,48A8,8,0,0,0,85.66,77.66ZM200,168a12,12,0,1,0-12,12A12,12,0,0,0,200,168Z`}))],[`fill`,R.createElement(R.Fragment,null,R.createElement(`path`,{d:`M74.34,77.66a8,8,0,0,1,0-11.32l48-48a8,8,0,0,1,11.32,0l48,48a8,8,0,0,1-11.32,11.32L136,43.31V128a8,8,0,0,1-16,0V43.31L85.66,77.66A8,8,0,0,1,74.34,77.66ZM240,136v64a16,16,0,0,1-16,16H32a16,16,0,0,1-16-16V136a16,16,0,0,1,16-16h68a4,4,0,0,1,4,4v3.46c0,13.45,11,24.79,24.46,24.54A24,24,0,0,0,152,128v-4a4,4,0,0,1,4-4h68A16,16,0,0,1,240,136Zm-40,32a12,12,0,1,0-12,12A12,12,0,0,0,200,168Z`}))],[`light`,R.createElement(R.Fragment,null,R.createElement(`path`,{d:`M238,136v64a14,14,0,0,1-14,14H32a14,14,0,0,1-14-14V136a14,14,0,0,1,14-14H80a6,6,0,0,1,0,12H32a2,2,0,0,0-2,2v64a2,2,0,0,0,2,2H224a2,2,0,0,0,2-2V136a2,2,0,0,0-2-2H176a6,6,0,0,1,0-12h48A14,14,0,0,1,238,136ZM84.24,76.24,122,38.49V128a6,6,0,0,0,12,0V38.49l37.76,37.75a6,6,0,0,0,8.48-8.48l-48-48a6,6,0,0,0-8.48,0l-48,48a6,6,0,0,0,8.48,8.48ZM198,168a10,10,0,1,0-10,10A10,10,0,0,0,198,168Z`}))],[`regular`,R.createElement(R.Fragment,null,R.createElement(`path`,{d:`M240,136v64a16,16,0,0,1-16,16H32a16,16,0,0,1-16-16V136a16,16,0,0,1,16-16H80a8,8,0,0,1,0,16H32v64H224V136H176a8,8,0,0,1,0-16h48A16,16,0,0,1,240,136ZM85.66,77.66,120,43.31V128a8,8,0,0,0,16,0V43.31l34.34,34.35a8,8,0,0,0,11.32-11.32l-48-48a8,8,0,0,0-11.32,0l-48,48A8,8,0,0,0,85.66,77.66ZM200,168a12,12,0,1,0-12,12A12,12,0,0,0,200,168Z`}))],[`thin`,R.createElement(R.Fragment,null,R.createElement(`path`,{d:`M236,136v64a12,12,0,0,1-12,12H32a12,12,0,0,1-12-12V136a12,12,0,0,1,12-12H80a4,4,0,0,1,0,8H32a4,4,0,0,0-4,4v64a4,4,0,0,0,4,4H224a4,4,0,0,0,4-4V136a4,4,0,0,0-4-4H176a4,4,0,0,1,0-8h48A12,12,0,0,1,236,136ZM82.83,74.83,124,33.66V128a4,4,0,0,0,8,0V33.66l41.17,41.17a4,4,0,1,0,5.66-5.66l-48-48a4,4,0,0,0-5.66,0l-48,48a4,4,0,0,0,5.66,5.66ZM196,168a8,8,0,1,0-8,8A8,8,0,0,0,196,168Z`}))]]),V=R.forwardRef((e,t)=>R.createElement(r,{ref:t,...e,weights:z}));V.displayName=`CircleDashedIcon`;var H=R.forwardRef((e,t)=>R.createElement(r,{ref:t,...e,weights:B}));H.displayName=`UploadIcon`;var U=n();function W({status:e}){return e===`ok`?(0,U.jsx)(ne,{className:`h-4 w-4 text-green-600 dark:text-green-400`}):e===`warning`?(0,U.jsx)(se,{className:`h-4 w-4 text-yellow-600 dark:text-yellow-400`}):(0,U.jsx)(V,{className:`h-4 w-4 text-muted-foreground`})}function ue(e){let t=[];return e.claude.isInstalled?e.claude.isAuthenticated===!0?t.push({label:`Claude`,status:`ok`,detail:`Ready`}):t.push({label:`Claude`,status:`warning`,detail:`Installed — run claude login to authenticate`}):t.push({label:`Claude`,status:`missing`,detail:`Not installed`}),e.codex.isInstalled?e.codex.isAuthenticated===!0?t.push({label:`Codex`,status:`ok`,detail:`Ready`}):t.push({label:`Codex`,status:`warning`,detail:`Installed — run codex login to authenticate`}):t.push({label:`Codex`,status:`missing`,detail:`Not installed (optional)`}),e.github.isInstalled?e.github.isAuthenticated?t.push({label:`GitHub CLI`,status:`ok`,detail:`Ready`}):t.push({label:`GitHub CLI`,status:`warning`,detail:`Installed — run gh auth login to authenticate`}):t.push({label:`GitHub CLI`,status:`missing`,detail:`Not installed`}),t}function de({onOpenTerminal:e}){let{data:t,isLoading:n,refetch:r,isRefetching:a}=o.admin.checkCLIHealth.useQuery({forceRefresh:!1},{refetchOnWindowFocus:!1,staleTime:6e4});if(n)return(0,U.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-muted-foreground py-2`,children:[(0,U.jsx)(N,{className:`h-4 w-4`}),(0,U.jsx)(`span`,{children:`Checking CLI prerequisites...`})]});if(!t)return null;let s=ue(t),l=s.some(e=>e.status!==`ok`);return(0,U.jsxs)(`div`,{className:`space-y-3`,children:[(0,U.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,U.jsx)(`p`,{className:`text-sm font-medium text-muted-foreground`,children:`CLI Prerequisites`}),(0,U.jsxs)(i,{type:`button`,variant:`ghost`,size:`sm`,className:`h-7 px-2 text-xs text-muted-foreground`,onClick:()=>r(),disabled:a,children:[(0,U.jsx)(c,{className:`mr-1 h-3 w-3 ${a?`animate-spin`:``}`}),`Recheck`]})]}),(0,U.jsx)(`ul`,{className:`space-y-1.5`,children:s.map(e=>(0,U.jsxs)(`li`,{className:`flex items-center gap-2 text-sm`,children:[(0,U.jsx)(W,{status:e.status}),(0,U.jsx)(`span`,{className:`font-medium`,children:e.label}),(0,U.jsxs)(`span`,{className:`text-muted-foreground`,children:[`— `,e.detail]})]},e.label))}),l&&(0,U.jsxs)(i,{type:`button`,variant:`outline`,size:`sm`,onClick:e,children:[(0,U.jsx)(ce,{className:`mr-2 h-4 w-4`}),`Open Terminal to Log In`]})]})}var fe=E({type:k(),data:k().optional(),message:k().optional()}),pe=`\r
|
|
3
|
-
\x1B[33m[Connection lost — starting a new shell]\x1B[0m\r
|
|
4
|
-
`,G={maxChars:l,truncationMarker:s};function me(e){let[t,n]=(0,R.useState)(``),[r,i]=(0,R.useState)(!1),a=(0,R.useRef)(!1),o=(0,R.useRef)(80),s=(0,R.useRef)(24),c=(0,R.useCallback)(e=>{e.type===`output`&&e.data&&n(t=>u(t,e.data??``,G))},[]),{connected:l,gaveUp:f,send:p,reconnect:m}=d({url:e?A(`/setup-terminal`,{}):null,schema:fe,onMessage:c,queuePolicy:`drop`});return(0,R.useEffect)(()=>{e||(n(``),i(!1),a.current=!1)},[e]),(0,R.useEffect)(()=>{e&&l&&(a.current&&n(e=>u(e,pe,G)),a.current=!0,i(!0),p({type:`create`,cols:o.current,rows:s.current}))},[e,l,p]),{connected:l,gaveUp:f,reconnect:m,showTerminal:r,output:t,handleData:(0,R.useCallback)(e=>{p({type:`input`,data:e})},[p]),handleResize:(0,R.useCallback)((e,t)=>{o.current=e,s.current=t,p({type:`resize`,cols:e,rows:t})},[p])}}var K=(0,R.lazy)(()=>a(()=>import(`./terminal-instance-7W1Sdy6P.js`).then(e=>({default:e.TerminalInstance})),__vite__mapDeps([0,1,2,3])));function he({open:e,onClose:t}){let{connected:n,gaveUp:r,reconnect:i,showTerminal:a,output:o,handleData:s,handleResize:c}=me(e);return(0,U.jsx)(ae,{open:e,onOpenChange:e=>!e&&t(),children:(0,U.jsxs)(C,{className:`max-w-3xl h-[500px] flex flex-col`,children:[(0,U.jsxs)(oe,{children:[(0,U.jsx)(ie,{children:`Terminal`}),(0,U.jsxs)(re,{children:[`Run authentication commands for your CLIs, then close this dialog.`,(0,U.jsxs)(`span`,{className:`mt-1.5 flex flex-col gap-0.5`,children:[(0,U.jsx)(`code`,{className:`rounded bg-muted px-1 py-0.5 font-mono text-sm w-fit`,children:`claude login`}),(0,U.jsx)(`code`,{className:`rounded bg-muted px-1 py-0.5 font-mono text-sm w-fit`,children:`codex login`}),(0,U.jsx)(`code`,{className:`rounded bg-muted px-1 py-0.5 font-mono text-sm w-fit`,children:`gh auth login`})]})]})]}),(0,U.jsxs)(`div`,{className:`relative flex-1 min-h-0 rounded-md overflow-hidden border bg-[#18181b]`,children:[a&&(0,U.jsx)(R.Suspense,{fallback:null,children:(0,U.jsx)(K,{onData:s,onResize:c,output:o,isActive:e})}),!n&&(a||r)&&(0,U.jsx)(`output`,{className:`absolute top-2 right-2 flex items-center gap-2 rounded px-2 py-0.5 text-xs text-white ${r?`bg-red-600/90`:`bg-yellow-600/90`}`,children:r?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`span`,{children:a?`Connection lost.`:`Connection failed.`}),(0,U.jsx)(`button`,{type:`button`,className:`underline`,onClick:i,children:`Retry`})]}):`Reconnecting… input is paused`})]})]})})}var ge=[{model:`aura-2-thalia-en`,name:`Thalia`,description:`Clear, confident, energetic`},{model:`aura-2-andromeda-en`,name:`Andromeda`,description:`Casual, expressive`},{model:`aura-2-helena-en`,name:`Helena`,description:`Caring, friendly, raspy`},{model:`aura-2-apollo-en`,name:`Apollo`,description:`Confident, casual`},{model:`aura-2-arcas-en`,name:`Arcas`,description:`Natural, smooth, clear`},{model:`aura-2-aries-en`,name:`Aries`,description:`Warm, energetic, caring`},{model:`aura-2-amalthea-en`,name:`Amalthea`},{model:`aura-2-asteria-en`,name:`Asteria`},{model:`aura-2-athena-en`,name:`Athena`},{model:`aura-2-atlas-en`,name:`Atlas`},{model:`aura-2-aurora-en`,name:`Aurora`},{model:`aura-2-callista-en`,name:`Callista`},{model:`aura-2-cora-en`,name:`Cora`},{model:`aura-2-cordelia-en`,name:`Cordelia`},{model:`aura-2-delia-en`,name:`Delia`},{model:`aura-2-draco-en`,name:`Draco`},{model:`aura-2-electra-en`,name:`Electra`},{model:`aura-2-harmonia-en`,name:`Harmonia`},{model:`aura-2-hera-en`,name:`Hera`},{model:`aura-2-hermes-en`,name:`Hermes`},{model:`aura-2-hyperion-en`,name:`Hyperion`},{model:`aura-2-iris-en`,name:`Iris`},{model:`aura-2-janus-en`,name:`Janus`},{model:`aura-2-juno-en`,name:`Juno`},{model:`aura-2-jupiter-en`,name:`Jupiter`},{model:`aura-2-luna-en`,name:`Luna`},{model:`aura-2-mars-en`,name:`Mars`},{model:`aura-2-minerva-en`,name:`Minerva`},{model:`aura-2-neptune-en`,name:`Neptune`},{model:`aura-2-odysseus-en`,name:`Odysseus`},{model:`aura-2-ophelia-en`,name:`Ophelia`},{model:`aura-2-orion-en`,name:`Orion`},{model:`aura-2-orpheus-en`,name:`Orpheus`},{model:`aura-2-pandora-en`,name:`Pandora`},{model:`aura-2-phoebe-en`,name:`Phoebe`},{model:`aura-2-pluto-en`,name:`Pluto`},{model:`aura-2-saturn-en`,name:`Saturn`},{model:`aura-2-selene-en`,name:`Selene`},{model:`aura-2-theia-en`,name:`Theia`},{model:`aura-2-vesta-en`,name:`Vesta`},{model:`aura-2-zeus-en`,name:`Zeus`}],q=`aura-2-thalia-en`,_e=.7,ve=1.5,ye=j([`baseline`,`implementing`,`measuring`,`evaluating`,`critiquing`,`recycling`,`idle`]),J=E({testCommand:k().min(1),targetDescription:k().min(1),maxIterations:T().int().min(0).default(25),testTimeoutSeconds:T().int().min(1).default(600),sessionRecycleInterval:T().int().min(1).default(10),promptTimeoutSeconds:T().int().min(0).optional()});E({currentIteration:T().int().min(0),baselineMetricSummary:k(),currentMetricSummary:k(),acceptedCount:T().int().min(0),rejectedRegressionCount:T().int().min(0),rejectedCritiqueCount:T().int().min(0),crashedCount:T().int().min(0),sessionRecycleCount:T().int().min(0),startedAt:k(),lastIterationAt:k().nullable(),currentPhase:ye,lastTestOutput:k().nullable()});var be=E({iteration:T().int().min(0),startedAt:k(),completedAt:k(),status:j([`accepted`,`rejected_regression`,`rejected_critique`,`crashed`]),changeDescription:k(),commitSha:k(),commitReverted:w(),metricBefore:k(),metricAfter:k().nullable(),testOutput:k(),metricImproved:w().nullable(),crashError:k().nullable(),fixAttempts:T().int().min(0),critiqueNotes:k().nullable(),critiqueApproved:w().nullable()});E({workspaceId:k(),config:J,baseline:E({testOutput:k(),metricSummary:k(),evaluatedAt:k()}),iterations:O(be)});function Y(e){return Object.values(e)}var xe=j(Y(f)),Se=j(Y(v)),Ce=j(Y(S)),we=j(Y(m)),Te=j(Y(_)),Ee=j(Y(p)),De=j(Y(y)),Oe=j(Y(te)),ke=j(Y(b)),X=j(Y(x)),Z=j(Y(h)),Q=j(Y(ee)),$=j(Y(g)),Ae=E({id:k(),name:k(),slug:k(),repoPath:k(),worktreeBasePath:k(),defaultBranch:k(),githubOwner:k().nullable(),githubRepo:k().nullable(),issueProvider:Ce,issueTrackerConfig:D().nullable(),isArchived:w(),startupScriptCommand:k().nullable(),startupScriptPath:k().nullable(),startupScriptTimeout:T(),createdAt:k(),updatedAt:k()}),je=E({id:k(),projectId:k(),parentWorkspaceId:k().nullable().optional().default(null),name:k(),description:k().nullable(),status:xe,worktreePath:k().nullable(),branchName:k().nullable(),isAutoGeneratedBranch:w(),creationSource:Se,creationMetadata:D().nullable(),initErrorMessage:k().nullable(),initOutput:k().nullable(),initStartedAt:k().nullable(),initCompletedAt:k().nullable(),initRetryCount:T(),runScriptCommand:k().nullable(),runScriptCleanupCommand:k().nullable(),runScriptPid:T().nullable(),runScriptPort:T().nullable(),runScriptStartedAt:k().nullable(),runScriptStatus:we,mode:Te.optional().default(`STANDARD`),autoIterationConfig:J.nullable().optional().default(null),prUrl:k().nullable(),githubIssueNumber:T().nullable(),githubIssueUrl:k().nullable(),linearIssueId:k().nullable(),linearIssueIdentifier:k().nullable(),linearIssueUrl:k().nullable(),defaultSessionProvider:$,ratchetSessionProvider:$,prNumber:T().nullable(),prState:Ee,prReviewState:k().nullable(),prCiStatus:De,prUpdatedAt:k().nullable(),prCiFailedAt:k().nullable(),prCiLastNotifiedAt:k().nullable(),prReviewLastCheckedAt:k().nullable(),prReviewLastCommentId:k().nullable(),ratchetEnabled:w(),ratchetState:Oe,ratchetLastCheckedAt:k().nullable(),ratchetActiveSessionId:k().nullable(),ratchetLastCiRunId:k().nullable(),hasHadSessions:w(),createdAt:k(),updatedAt:k()}),Me=E({id:k(),workspaceId:k(),name:k().nullable(),workflow:k(),model:k(),status:X,provider:Z,providerSessionId:k().nullable(),providerProjectPath:k().nullable(),providerProcessPid:T().nullable(),providerMetadata:D().nullable(),createdAt:k(),updatedAt:k()}),Ne=E({id:k(),workspaceId:k(),name:k().nullable(),status:X,pid:T().nullable(),createdAt:k(),updatedAt:k()}),Pe=E({preferredIde:k(),customIdeCommand:k().nullable(),playSoundOnComplete:w(),notificationSoundPath:k().nullable(),ratchetEnabled:w(),ratchetReplyToPrComments:w().optional().default(!0),ratchetReviewTriggerMode:ke.optional().default(`CHANGES_REQUESTED`),defaultSessionProvider:Z,defaultClaudeModel:k().optional().default(`sonnet`),defaultCodexModel:k().optional().default(`default`),defaultClaudeReasoningEffort:k().nullable().optional().default(null),defaultCodexReasoningEffort:k().nullable().optional().default(null),defaultWorkspacePermissions:Q.optional().default(`STRICT`),ratchetPermissions:Q.optional().default(`YOLO`),voiceModeEnabled:w().optional().default(!1),voiceTtsModel:k().optional().default(q),voiceTtsSpeed:T().optional().default(1),voiceUtteranceEndMs:T().int().min(I).max(F).optional().default(L),voiceBargeInSustainedMs:T().int().min(8).max(80).optional().default(16)}),Fe=E({meta:E({exportedAt:k(),version:k(),schemaVersion:le(4)}),data:E({projects:O(Ae),workspaces:O(je),agentSessions:O(Me),terminalSessions:O(Ne),userSettings:Pe.nullable()})});function Ie({onImportSuccess:e,variant:t=`outline`,className:n,children:r}){let a=(0,R.useRef)(null),[s,c]=(0,R.useState)({open:!1,data:null,summary:``}),l=o.useUtils(),u=o.admin.importData.useMutation({onSuccess:async t=>{let{results:n}=t,r=[`Projects: ${n.projects.imported} imported, ${n.projects.skipped} skipped`,`Workspaces: ${n.workspaces.imported} imported, ${n.workspaces.skipped} skipped`,`Agent Sessions: ${n.agentSessions.imported} imported, ${n.agentSessions.skipped} skipped`,`Terminal Sessions: ${n.terminalSessions.imported} imported, ${n.terminalSessions.skipped} skipped`,`User Settings: ${n.userSettings.imported?`imported`:n.userSettings.skipped?`skipped (exists)`:`none`}`].join(`
|
|
5
|
-
`);M.success(`Import completed`,{description:r,duration:1e4}),c({open:!1,data:null,summary:``}),await l.invalidate(),e?.()},onError:e=>{M.error(`Import failed: ${e.message}`),c({open:!1,data:null,summary:``})}}),d=e=>[`Exported: ${new Date(e.meta.exportedAt).toLocaleString()}`,`Version: ${e.meta.version}`,``,`Projects: ${e.data.projects.length}`,`Workspaces: ${e.data.workspaces.length}`,`Agent Sessions: ${e.data.agentSessions.length}`,`Terminal Sessions: ${e.data.terminalSessions.length}`,`User Settings: ${e.data.userSettings?`Yes`:`No`}`].join(`
|
|
6
|
-
`),f=e=>e instanceof Error?e.message:`Unknown error`,p=async e=>{let t=await e.text(),n=JSON.parse(t),r=Fe.safeParse(n);if(!r.success)throw Error(`Invalid backup file format: ${r.error.message}`);return r.data};return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(i,{onClick:()=>a.current?.click(),disabled:u.isPending,variant:t,className:n,children:[(0,U.jsx)(H,{className:`w-4 h-4 mr-2`}),u.isPending?`Importing...`:r||`Import Data`]}),(0,U.jsx)(`input`,{ref:a,type:`file`,accept:`.json`,onChange:async e=>{let t=e.target.files?.[0];if(t){try{let e=await p(t);c({open:!0,data:e,summary:d(e)})}catch(e){M.error(`Failed to read file: ${f(e)}`)}a.current&&(a.current.value=``)}},className:`hidden`}),(0,U.jsx)(P,{open:s.open,onOpenChange:e=>{e||c({open:!1,data:null,summary:``})},title:`Confirm Import`,description:`Review the data to be imported. Existing records will be skipped.\n\n${s.summary}`,confirmText:`Import`,onConfirm:()=>{s.data&&u.mutate(s.data)},isPending:u.isPending})]})}export{q as a,_e as i,ge as n,he as o,ve as r,de as s,Ie as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t,t as n}from"./jsx-runtime-DE3RlOCf.js";import{h as r,i,m as a,o,r as s}from"./dist-BiFeezwN.js";import{a as c,c as l}from"./hooks-BTcY6K1q.js";import{A as u,D as d,O as f,S as p,T as m,_ as h,a as g,b as _,c as v,d as y,f as b,g as x,h as S,i as C,k as w,l as T,o as ee,r as E,s as te,u as ne,v as D,w as re,x as ie,y as ae}from"./workspace-CsQCO4D_.js";import{n as O}from"./trpc-X4t2_jd5.js";import{t as k}from"./Archive.es-CGY-HOtI.js";import{$t as A,J as oe,Jt as se,Q as ce,Qt as le,Yt as ue,Z as de,Zt as fe,at as j,cn as pe,ct as me,dt as he,ft as ge,lt as M,nt as _e,ot as ve,qt as ye,sn as be,st as xe,tt as Se,ut as Ce}from"./vbnet-CrqJJ08J.js";import{a as we,i as Te,n as Ee,o as De,r as Oe,s as ke,t as Ae}from"./use-auto-scroll-QQMmbsX-.js";import{l as je,t as Me}from"./use-websocket-channel-DW9rsEG5.js";import{a as Ne,d as Pe,f as Fe,i as N,n as Ie,o as Le,r as P,s as Re,t as ze}from"./select-BgEObL9n.js";import{n as Be,r as Ve}from"./use-project-header-navigation-BXqLQ4G_.js";import{v as F}from"./core-DW1Rn28Z.js";import{C as He,c as I,d as L,f as Ue,l as We,o as R,p as z,s as B,u as V}from"./radio-group-CcAx51bT.js";import{n as Ge,t as Ke}from"./provider-cli-warning-LYUDO_5Y.js";import{i as H,n as U,t as W}from"./tooltip-DCH0jP98.js";import{C as qe,D as Je,T as Ye,c as G,f as K,g as Xe,i as q,m as J,n as Ze,p as Y,s as Qe}from"./use-websocket-transport-BT1hhmkl.js";import{D as $e,E as X}from"./dist-Dtgf0TOg.js";import{t as et}from"./label-CI3jpwv-.js";import{A as tt,C as nt,D as rt,E as Z,M as it,O as at,P as ot,S as st,T as ct,b as lt,j as ut,t as dt,u as ft,w as pt}from"./index-D34fUfAP.js";import{t as mt}from"./voice-vad-ChMQMgBS.js";var Q=e(t(),1),ht=new Map([[`bold`,Q.createElement(Q.Fragment,null,Q.createElement(`path`,{d:`M216,36H40A20,20,0,0,0,20,56V200a20,20,0,0,0,20,20H216a20,20,0,0,0,20-20V56A20,20,0,0,0,216,36Zm-4,160H44V60H212ZM60,92a16,16,0,1,1,16,16A16,16,0,0,1,60,92Zm48,0a16,16,0,1,1,16,16A16,16,0,0,1,108,92Z`}))],[`duotone`,Q.createElement(Q.Fragment,null,Q.createElement(`path`,{d:`M224,56V200a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V56a8,8,0,0,1,8-8H216A8,8,0,0,1,224,56Z`,opacity:`0.2`}),Q.createElement(`path`,{d:`M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40Zm0,160H40V56H216V200ZM80,84A12,12,0,1,1,68,72,12,12,0,0,1,80,84Zm40,0a12,12,0,1,1-12-12A12,12,0,0,1,120,84Z`}))],[`fill`,Q.createElement(Q.Fragment,null,Q.createElement(`path`,{d:`M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40ZM68,96A12,12,0,1,1,80,84,12,12,0,0,1,68,96Zm40,0a12,12,0,1,1,12-12A12,12,0,0,1,108,96Z`}))],[`light`,Q.createElement(Q.Fragment,null,Q.createElement(`path`,{d:`M216,42H40A14,14,0,0,0,26,56V200a14,14,0,0,0,14,14H216a14,14,0,0,0,14-14V56A14,14,0,0,0,216,42Zm2,158a2,2,0,0,1-2,2H40a2,2,0,0,1-2-2V56a2,2,0,0,1,2-2H216a2,2,0,0,1,2,2ZM78,84A10,10,0,1,1,68,74,10,10,0,0,1,78,84Zm40,0a10,10,0,1,1-10-10A10,10,0,0,1,118,84Z`}))],[`regular`,Q.createElement(Q.Fragment,null,Q.createElement(`path`,{d:`M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40Zm0,160H40V56H216V200ZM80,84A12,12,0,1,1,68,72,12,12,0,0,1,80,84Zm40,0a12,12,0,1,1-12-12A12,12,0,0,1,120,84Z`}))],[`thin`,Q.createElement(Q.Fragment,null,Q.createElement(`path`,{d:`M216,44H40A12,12,0,0,0,28,56V200a12,12,0,0,0,12,12H216a12,12,0,0,0,12-12V56A12,12,0,0,0,216,44Zm4,156a4,4,0,0,1-4,4H40a4,4,0,0,1-4-4V56a4,4,0,0,1,4-4H216a4,4,0,0,1,4,4ZM76,84a8,8,0,1,1-8-8A8,8,0,0,1,76,84Zm40,0a8,8,0,1,1-8-8A8,8,0,0,1,116,84Z`}))]]),gt=new Map([[`bold`,Q.createElement(Q.Fragment,null,Q.createElement(`path`,{d:`M144,128a16,16,0,1,1-16-16A16,16,0,0,1,144,128ZM60,112a16,16,0,1,0,16,16A16,16,0,0,0,60,112Zm136,0a16,16,0,1,0,16,16A16,16,0,0,0,196,112Z`}))],[`duotone`,Q.createElement(Q.Fragment,null,Q.createElement(`path`,{d:`M240,96v64a16,16,0,0,1-16,16H32a16,16,0,0,1-16-16V96A16,16,0,0,1,32,80H224A16,16,0,0,1,240,96Z`,opacity:`0.2`}),Q.createElement(`path`,{d:`M140,128a12,12,0,1,1-12-12A12,12,0,0,1,140,128Zm56-12a12,12,0,1,0,12,12A12,12,0,0,0,196,116ZM60,116a12,12,0,1,0,12,12A12,12,0,0,0,60,116Z`}))],[`fill`,Q.createElement(Q.Fragment,null,Q.createElement(`path`,{d:`M224,80H32A16,16,0,0,0,16,96v64a16,16,0,0,0,16,16H224a16,16,0,0,0,16-16V96A16,16,0,0,0,224,80ZM60,140a12,12,0,1,1,12-12A12,12,0,0,1,60,140Zm68,0a12,12,0,1,1,12-12A12,12,0,0,1,128,140Zm68,0a12,12,0,1,1,12-12A12,12,0,0,1,196,140Z`}))],[`light`,Q.createElement(Q.Fragment,null,Q.createElement(`path`,{d:`M138,128a10,10,0,1,1-10-10A10,10,0,0,1,138,128ZM60,118a10,10,0,1,0,10,10A10,10,0,0,0,60,118Zm136,0a10,10,0,1,0,10,10A10,10,0,0,0,196,118Z`}))],[`regular`,Q.createElement(Q.Fragment,null,Q.createElement(`path`,{d:`M140,128a12,12,0,1,1-12-12A12,12,0,0,1,140,128Zm56-12a12,12,0,1,0,12,12A12,12,0,0,0,196,116ZM60,116a12,12,0,1,0,12,12A12,12,0,0,0,60,116Z`}))],[`thin`,Q.createElement(Q.Fragment,null,Q.createElement(`path`,{d:`M136,128a8,8,0,1,1-8-8A8,8,0,0,1,136,128Zm-76-8a8,8,0,1,0,8,8A8,8,0,0,0,60,120Zm136,0a8,8,0,1,0,8,8A8,8,0,0,0,196,120Z`}))]]),_t=new Map([[`bold`,Q.createElement(Q.Fragment,null,Q.createElement(`path`,{d:`M128,76a52,52,0,1,0,52,52A52.06,52.06,0,0,0,128,76Zm0,80a28,28,0,1,1,28-28A28,28,0,0,1,128,156Zm113.86-49.57A12,12,0,0,0,236,98.34L208.21,82.49l-.11-31.31a12,12,0,0,0-4.25-9.12,116,116,0,0,0-38-21.41,12,12,0,0,0-9.68.89L128,37.27,99.83,21.53a12,12,0,0,0-9.7-.9,116.06,116.06,0,0,0-38,21.47,12,12,0,0,0-4.24,9.1l-.14,31.34L20,98.35a12,12,0,0,0-5.85,8.11,110.7,110.7,0,0,0,0,43.11A12,12,0,0,0,20,157.66l27.82,15.85.11,31.31a12,12,0,0,0,4.25,9.12,116,116,0,0,0,38,21.41,12,12,0,0,0,9.68-.89L128,218.73l28.14,15.74a12,12,0,0,0,9.7.9,116.06,116.06,0,0,0,38-21.47,12,12,0,0,0,4.24-9.1l.14-31.34,27.81-15.81a12,12,0,0,0,5.85-8.11A110.7,110.7,0,0,0,241.86,106.43Zm-22.63,33.18-26.88,15.28a11.94,11.94,0,0,0-4.55,4.59c-.54,1-1.11,1.93-1.7,2.88a12,12,0,0,0-1.83,6.31L184.13,199a91.83,91.83,0,0,1-21.07,11.87l-27.15-15.19a12,12,0,0,0-5.86-1.53h-.29c-1.14,0-2.3,0-3.44,0a12.08,12.08,0,0,0-6.14,1.51L93,210.82A92.27,92.27,0,0,1,71.88,199l-.11-30.24a12,12,0,0,0-1.83-6.32c-.58-.94-1.16-1.91-1.7-2.88A11.92,11.92,0,0,0,63.7,155L36.8,139.63a86.53,86.53,0,0,1,0-23.24l26.88-15.28a12,12,0,0,0,4.55-4.58c.54-1,1.11-1.94,1.7-2.89a12,12,0,0,0,1.83-6.31L71.87,57A91.83,91.83,0,0,1,92.94,45.17l27.15,15.19a11.92,11.92,0,0,0,6.15,1.52c1.14,0,2.3,0,3.44,0a12.08,12.08,0,0,0,6.14-1.51L163,45.18A92.27,92.27,0,0,1,184.12,57l.11,30.24a12,12,0,0,0,1.83,6.32c.58.94,1.16,1.91,1.7,2.88A11.92,11.92,0,0,0,192.3,101l26.9,15.33A86.53,86.53,0,0,1,219.23,139.61Z`}))],[`duotone`,Q.createElement(Q.Fragment,null,Q.createElement(`path`,{d:`M230.1,108.76,198.25,90.62c-.64-1.16-1.31-2.29-2-3.41l-.12-36A104.61,104.61,0,0,0,162,32L130,49.89c-1.34,0-2.69,0-4,0L94,32A104.58,104.58,0,0,0,59.89,51.25l-.16,36c-.7,1.12-1.37,2.26-2,3.41l-31.84,18.1a99.15,99.15,0,0,0,0,38.46l31.85,18.14c.64,1.16,1.31,2.29,2,3.41l.12,36A104.61,104.61,0,0,0,94,224l32-17.87c1.34,0,2.69,0,4,0L162,224a104.58,104.58,0,0,0,34.08-19.25l.16-36c.7-1.12,1.37-2.26,2-3.41l31.84-18.1A99.15,99.15,0,0,0,230.1,108.76ZM128,168a40,40,0,1,1,40-40A40,40,0,0,1,128,168Z`,opacity:`0.2`}),Q.createElement(`path`,{d:`M128,80a48,48,0,1,0,48,48A48.05,48.05,0,0,0,128,80Zm0,80a32,32,0,1,1,32-32A32,32,0,0,1,128,160Zm109.94-52.79a8,8,0,0,0-3.89-5.4l-29.83-17-.12-33.62a8,8,0,0,0-2.83-6.08,111.91,111.91,0,0,0-36.72-20.67,8,8,0,0,0-6.46.59L128,41.85,97.88,25a8,8,0,0,0-6.47-.6A111.92,111.92,0,0,0,54.73,45.15a8,8,0,0,0-2.83,6.07l-.15,33.65-29.83,17a8,8,0,0,0-3.89,5.4,106.47,106.47,0,0,0,0,41.56,8,8,0,0,0,3.89,5.4l29.83,17,.12,33.63a8,8,0,0,0,2.83,6.08,111.91,111.91,0,0,0,36.72,20.67,8,8,0,0,0,6.46-.59L128,214.15,158.12,231a7.91,7.91,0,0,0,3.9,1,8.09,8.09,0,0,0,2.57-.42,112.1,112.1,0,0,0,36.68-20.73,8,8,0,0,0,2.83-6.07l.15-33.65,29.83-17a8,8,0,0,0,3.89-5.4A106.47,106.47,0,0,0,237.94,107.21Zm-15,34.91-28.57,16.25a8,8,0,0,0-3,3c-.58,1-1.19,2.06-1.81,3.06a7.94,7.94,0,0,0-1.22,4.21l-.15,32.25a95.89,95.89,0,0,1-25.37,14.3L134,199.13a8,8,0,0,0-3.91-1h-.19c-1.21,0-2.43,0-3.64,0a8.1,8.1,0,0,0-4.1,1l-28.84,16.1A96,96,0,0,1,67.88,201l-.11-32.2a8,8,0,0,0-1.22-4.22c-.62-1-1.23-2-1.8-3.06a8.09,8.09,0,0,0-3-3.06l-28.6-16.29a90.49,90.49,0,0,1,0-28.26L61.67,97.63a8,8,0,0,0,3-3c.58-1,1.19-2.06,1.81-3.06a7.94,7.94,0,0,0,1.22-4.21l.15-32.25a95.89,95.89,0,0,1,25.37-14.3L122,56.87a8,8,0,0,0,4.1,1c1.21,0,2.43,0,3.64,0a8,8,0,0,0,4.1-1l28.84-16.1A96,96,0,0,1,188.12,55l.11,32.2a8,8,0,0,0,1.22,4.22c.62,1,1.23,2,1.8,3.06a8.09,8.09,0,0,0,3,3.06l28.6,16.29A90.49,90.49,0,0,1,222.9,142.12Z`}))],[`fill`,Q.createElement(Q.Fragment,null,Q.createElement(`path`,{d:`M237.94,107.21a8,8,0,0,0-3.89-5.4l-29.83-17-.12-33.62a8,8,0,0,0-2.83-6.08,111.91,111.91,0,0,0-36.72-20.67,8,8,0,0,0-6.46.59L128,41.85,97.88,25a8,8,0,0,0-6.47-.6A111.92,111.92,0,0,0,54.73,45.15a8,8,0,0,0-2.83,6.07l-.15,33.65-29.83,17a8,8,0,0,0-3.89,5.4,106.47,106.47,0,0,0,0,41.56,8,8,0,0,0,3.89,5.4l29.83,17,.12,33.63a8,8,0,0,0,2.83,6.08,111.91,111.91,0,0,0,36.72,20.67,8,8,0,0,0,6.46-.59L128,214.15,158.12,231a7.91,7.91,0,0,0,3.9,1,8.09,8.09,0,0,0,2.57-.42,112.1,112.1,0,0,0,36.68-20.73,8,8,0,0,0,2.83-6.07l.15-33.65,29.83-17a8,8,0,0,0,3.89-5.4A106.47,106.47,0,0,0,237.94,107.21ZM128,168a40,40,0,1,1,40-40A40,40,0,0,1,128,168Z`}))],[`light`,Q.createElement(Q.Fragment,null,Q.createElement(`path`,{d:`M128,82a46,46,0,1,0,46,46A46.06,46.06,0,0,0,128,82Zm0,80a34,34,0,1,1,34-34A34,34,0,0,1,128,162Zm108-54.4a6,6,0,0,0-2.92-4L202.64,86.22l-.42-.71L202.1,51.2A6,6,0,0,0,200,46.64a110.12,110.12,0,0,0-36.07-20.31,6,6,0,0,0-4.84.45L128.46,43.86h-1L96.91,26.76a6,6,0,0,0-4.86-.44A109.92,109.92,0,0,0,56,46.68a6,6,0,0,0-2.12,4.55l-.16,34.34c-.14.23-.28.47-.41.71L22.91,103.57A6,6,0,0,0,20,107.62a104.81,104.81,0,0,0,0,40.78,6,6,0,0,0,2.92,4l30.42,17.33.42.71.12,34.31A6,6,0,0,0,56,209.36a110.12,110.12,0,0,0,36.07,20.31,6,6,0,0,0,4.84-.45l30.61-17.08h1l30.56,17.1A6.09,6.09,0,0,0,162,230a5.83,5.83,0,0,0,1.93-.32,109.92,109.92,0,0,0,36-20.36,6,6,0,0,0,2.12-4.55l.16-34.34c.14-.23.28-.47.41-.71l30.42-17.29a6,6,0,0,0,2.92-4.05A104.81,104.81,0,0,0,236,107.6Zm-11.25,35.79L195.32,160.1a6.07,6.07,0,0,0-2.28,2.3c-.59,1-1.21,2.11-1.86,3.14a6,6,0,0,0-.91,3.16l-.16,33.21a98.15,98.15,0,0,1-27.52,15.53L133,200.88a6,6,0,0,0-2.93-.77h-.14c-1.24,0-2.5,0-3.74,0a6,6,0,0,0-3.07.76L93.45,217.43a98,98,0,0,1-27.56-15.49l-.12-33.17a6,6,0,0,0-.91-3.16c-.64-1-1.27-2.08-1.86-3.14a6,6,0,0,0-2.27-2.3L31.3,143.4a93,93,0,0,1,0-30.79L60.68,95.9A6.07,6.07,0,0,0,63,93.6c.59-1,1.21-2.11,1.86-3.14a6,6,0,0,0,.91-3.16l.16-33.21A98.15,98.15,0,0,1,93.41,38.56L123,55.12a5.81,5.81,0,0,0,3.07.76c1.24,0,2.5,0,3.74,0a6,6,0,0,0,3.07-.76l29.65-16.56a98,98,0,0,1,27.56,15.49l.12,33.17a6,6,0,0,0,.91,3.16c.64,1,1.27,2.08,1.86,3.14a6,6,0,0,0,2.27,2.3L224.7,112.6A93,93,0,0,1,224.73,143.39Z`}))],[`regular`,Q.createElement(Q.Fragment,null,Q.createElement(`path`,{d:`M128,80a48,48,0,1,0,48,48A48.05,48.05,0,0,0,128,80Zm0,80a32,32,0,1,1,32-32A32,32,0,0,1,128,160Zm109.94-52.79a8,8,0,0,0-3.89-5.4l-29.83-17-.12-33.62a8,8,0,0,0-2.83-6.08,111.91,111.91,0,0,0-36.72-20.67,8,8,0,0,0-6.46.59L128,41.85,97.88,25a8,8,0,0,0-6.47-.6A112.1,112.1,0,0,0,54.73,45.15a8,8,0,0,0-2.83,6.07l-.15,33.65-29.83,17a8,8,0,0,0-3.89,5.4,106.47,106.47,0,0,0,0,41.56,8,8,0,0,0,3.89,5.4l29.83,17,.12,33.62a8,8,0,0,0,2.83,6.08,111.91,111.91,0,0,0,36.72,20.67,8,8,0,0,0,6.46-.59L128,214.15,158.12,231a7.91,7.91,0,0,0,3.9,1,8.09,8.09,0,0,0,2.57-.42,112.1,112.1,0,0,0,36.68-20.73,8,8,0,0,0,2.83-6.07l.15-33.65,29.83-17a8,8,0,0,0,3.89-5.4A106.47,106.47,0,0,0,237.94,107.21Zm-15,34.91-28.57,16.25a8,8,0,0,0-3,3c-.58,1-1.19,2.06-1.81,3.06a7.94,7.94,0,0,0-1.22,4.21l-.15,32.25a95.89,95.89,0,0,1-25.37,14.3L134,199.13a8,8,0,0,0-3.91-1h-.19c-1.21,0-2.43,0-3.64,0a8.08,8.08,0,0,0-4.1,1l-28.84,16.1A96,96,0,0,1,67.88,201l-.11-32.2a8,8,0,0,0-1.22-4.22c-.62-1-1.23-2-1.8-3.06a8.09,8.09,0,0,0-3-3.06l-28.6-16.29a90.49,90.49,0,0,1,0-28.26L61.67,97.63a8,8,0,0,0,3-3c.58-1,1.19-2.06,1.81-3.06a7.94,7.94,0,0,0,1.22-4.21l.15-32.25a95.89,95.89,0,0,1,25.37-14.3L122,56.87a8,8,0,0,0,4.1,1c1.21,0,2.43,0,3.64,0a8.08,8.08,0,0,0,4.1-1l28.84-16.1A96,96,0,0,1,188.12,55l.11,32.2a8,8,0,0,0,1.22,4.22c.62,1,1.23,2,1.8,3.06a8.09,8.09,0,0,0,3,3.06l28.6,16.29A90.49,90.49,0,0,1,222.9,142.12Z`}))],[`thin`,Q.createElement(Q.Fragment,null,Q.createElement(`path`,{d:`M128,84a44,44,0,1,0,44,44A44.05,44.05,0,0,0,128,84Zm0,80a36,36,0,1,1,36-36A36,36,0,0,1,128,164Zm106-56a4,4,0,0,0-2-2.7l-30.89-17.6q-.47-.82-1-1.62L200.1,51.2a3.94,3.94,0,0,0-1.42-3,107.8,107.8,0,0,0-35.41-19.94,4,4,0,0,0-3.23.29L129,45.87h-2l-31-17.36a4,4,0,0,0-3.23-.3,108.05,108.05,0,0,0-35.39,20,4,4,0,0,0-1.41,3l-.16,34.9-1,1.62L23.9,105.3A4,4,0,0,0,22,108a102.76,102.76,0,0,0,0,40,4,4,0,0,0,1.95,2.7l30.89,17.6q.47.83,1,1.62l.12,34.87a3.94,3.94,0,0,0,1.42,3,107.8,107.8,0,0,0,35.41,19.94,4,4,0,0,0,3.23-.29L127,210.13h2l31,17.36a4,4,0,0,0,3.23.3,108.05,108.05,0,0,0,35.39-20,4,4,0,0,0,1.41-3l.16-34.9,1-1.62L232.1,150.7a4,4,0,0,0,2-2.71A102.76,102.76,0,0,0,234,108Zm-7.48,36.67L196.3,161.84a4,4,0,0,0-1.51,1.53c-.61,1.09-1.25,2.17-1.91,3.24a3.92,3.92,0,0,0-.61,2.1l-.16,34.15a99.8,99.8,0,0,1-29.7,16.77l-30.4-17a4.06,4.06,0,0,0-2-.51H130c-1.28,0-2.57,0-3.84,0a4.1,4.1,0,0,0-2.05.51l-30.45,17A100.23,100.23,0,0,1,63.89,202.9l-.12-34.12a3.93,3.93,0,0,0-.61-2.11c-.66-1-1.3-2.14-1.91-3.23a4,4,0,0,0-1.51-1.53L29.49,144.68a94.78,94.78,0,0,1,0-33.34L59.7,94.16a4,4,0,0,0,1.51-1.53c.61-1.09,1.25-2.17,1.91-3.23a4,4,0,0,0,.61-2.11l.16-34.15a99.8,99.8,0,0,1,29.7-16.77l30.4,17a4.1,4.1,0,0,0,2.05.51c1.28,0,2.57,0,3.84,0a4,4,0,0,0,2.05-.51l30.45-17A100.23,100.23,0,0,1,192.11,53.1l.12,34.12a3.93,3.93,0,0,0,.61,2.11c.66,1,1.3,2.14,1.91,3.23a4,4,0,0,0,1.51,1.53l30.25,17.23A94.78,94.78,0,0,1,226.54,144.66Z`}))]]),vt=new Map([[`bold`,Q.createElement(Q.Fragment,null,Q.createElement(`path`,{d:`M212.62,75.17A63.7,63.7,0,0,0,206.39,26,12,12,0,0,0,196,20a63.71,63.71,0,0,0-50,24H126A63.71,63.71,0,0,0,76,20a12,12,0,0,0-10.39,6,63.7,63.7,0,0,0-6.23,49.17A61.5,61.5,0,0,0,52,104v8a60.1,60.1,0,0,0,45.76,58.28A43.66,43.66,0,0,0,92,192v4H76a20,20,0,0,1-20-20,44.05,44.05,0,0,0-44-44,12,12,0,0,0,0,24,20,20,0,0,1,20,20,44.05,44.05,0,0,0,44,44H92v12a12,12,0,0,0,24,0V192a20,20,0,0,1,40,0v40a12,12,0,0,0,24,0V192a43.66,43.66,0,0,0-5.76-21.72A60.1,60.1,0,0,0,220,112v-8A61.5,61.5,0,0,0,212.62,75.17ZM196,112a36,36,0,0,1-36,36H112a36,36,0,0,1-36-36v-8a37.87,37.87,0,0,1,6.13-20.12,11.65,11.65,0,0,0,1.58-11.49,39.9,39.9,0,0,1-.4-27.72,39.87,39.87,0,0,1,26.41,17.8A12,12,0,0,0,119.82,68h32.35a12,12,0,0,0,10.11-5.53,39.84,39.84,0,0,1,26.41-17.8,39.9,39.9,0,0,1-.4,27.72,12,12,0,0,0,1.61,11.53A37.85,37.85,0,0,1,196,104Z`}))],[`duotone`,Q.createElement(Q.Fragment,null,Q.createElement(`path`,{d:`M208,104v8a48,48,0,0,1-48,48H136a32,32,0,0,1,32,32v40H104V192a32,32,0,0,1,32-32H112a48,48,0,0,1-48-48v-8a49.28,49.28,0,0,1,8.51-27.3A51.92,51.92,0,0,1,76,32a52,52,0,0,1,43.83,24h32.34A52,52,0,0,1,196,32a51.92,51.92,0,0,1,3.49,44.7A49.28,49.28,0,0,1,208,104Z`,opacity:`0.2`}),Q.createElement(`path`,{d:`M208.3,75.68A59.74,59.74,0,0,0,202.93,28,8,8,0,0,0,196,24a59.75,59.75,0,0,0-48,24H124A59.75,59.75,0,0,0,76,24a8,8,0,0,0-6.93,4,59.78,59.78,0,0,0-5.38,47.68A58.14,58.14,0,0,0,56,104v8a56.06,56.06,0,0,0,48.44,55.47A39.8,39.8,0,0,0,96,192v8H72a24,24,0,0,1-24-24A40,40,0,0,0,8,136a8,8,0,0,0,0,16,24,24,0,0,1,24,24,40,40,0,0,0,40,40H96v16a8,8,0,0,0,16,0V192a24,24,0,0,1,48,0v40a8,8,0,0,0,16,0V192a39.8,39.8,0,0,0-8.44-24.53A56.06,56.06,0,0,0,216,112v-8A58,58,0,0,0,208.3,75.68ZM200,112a40,40,0,0,1-40,40H112a40,40,0,0,1-40-40v-8a41.74,41.74,0,0,1,6.9-22.48A8,8,0,0,0,80,73.83a43.81,43.81,0,0,1,.79-33.58,43.88,43.88,0,0,1,32.32,20.06A8,8,0,0,0,119.82,64h32.35a8,8,0,0,0,6.74-3.69,43.87,43.87,0,0,1,32.32-20.06A43.81,43.81,0,0,1,192,73.83a8.09,8.09,0,0,0,1,7.65A41.76,41.76,0,0,1,200,104Z`}))],[`fill`,Q.createElement(Q.Fragment,null,Q.createElement(`path`,{d:`M216,104v8a56.06,56.06,0,0,1-48.44,55.47A39.8,39.8,0,0,1,176,192v40a8,8,0,0,1-8,8H104a8,8,0,0,1-8-8V216H72a40,40,0,0,1-40-40A24,24,0,0,0,8,152a8,8,0,0,1,0-16,40,40,0,0,1,40,40,24,24,0,0,0,24,24H96v-8a39.8,39.8,0,0,1,8.44-24.53A56.06,56.06,0,0,1,56,112v-8a58.14,58.14,0,0,1,7.69-28.32A59.78,59.78,0,0,1,69.07,28,8,8,0,0,1,76,24a59.75,59.75,0,0,1,48,24h24a59.75,59.75,0,0,1,48-24,8,8,0,0,1,6.93,4,59.74,59.74,0,0,1,5.37,47.68A58,58,0,0,1,216,104Z`}))],[`light`,Q.createElement(Q.Fragment,null,Q.createElement(`path`,{d:`M206.13,75.92A57.79,57.79,0,0,0,201.2,29a6,6,0,0,0-5.2-3,57.77,57.77,0,0,0-47,24H123A57.77,57.77,0,0,0,76,26a6,6,0,0,0-5.2,3,57.79,57.79,0,0,0-4.93,46.92A55.88,55.88,0,0,0,58,104v8a54.06,54.06,0,0,0,50.45,53.87A37.85,37.85,0,0,0,98,192v10H72a26,26,0,0,1-26-26A38,38,0,0,0,8,138a6,6,0,0,0,0,12,26,26,0,0,1,26,26,38,38,0,0,0,38,38H98v18a6,6,0,0,0,12,0V192a26,26,0,0,1,52,0v40a6,6,0,0,0,12,0V192a37.85,37.85,0,0,0-10.45-26.13A54.06,54.06,0,0,0,214,112v-8A55.88,55.88,0,0,0,206.13,75.92ZM202,112a42,42,0,0,1-42,42H112a42,42,0,0,1-42-42v-8a43.86,43.86,0,0,1,7.3-23.69,6,6,0,0,0,.81-5.76,45.85,45.85,0,0,1,1.43-36.42,45.85,45.85,0,0,1,35.23,21.1A6,6,0,0,0,119.83,62h32.34a6,6,0,0,0,5.06-2.76,45.83,45.83,0,0,1,35.23-21.11,45.85,45.85,0,0,1,1.43,36.42,6,6,0,0,0,.79,5.74A43.78,43.78,0,0,1,202,104Z`}))],[`regular`,Q.createElement(Q.Fragment,null,Q.createElement(`path`,{d:`M208.31,75.68A59.78,59.78,0,0,0,202.93,28,8,8,0,0,0,196,24a59.75,59.75,0,0,0-48,24H124A59.75,59.75,0,0,0,76,24a8,8,0,0,0-6.93,4,59.78,59.78,0,0,0-5.38,47.68A58.14,58.14,0,0,0,56,104v8a56.06,56.06,0,0,0,48.44,55.47A39.8,39.8,0,0,0,96,192v8H72a24,24,0,0,1-24-24A40,40,0,0,0,8,136a8,8,0,0,0,0,16,24,24,0,0,1,24,24,40,40,0,0,0,40,40H96v16a8,8,0,0,0,16,0V192a24,24,0,0,1,48,0v40a8,8,0,0,0,16,0V192a39.8,39.8,0,0,0-8.44-24.53A56.06,56.06,0,0,0,216,112v-8A58.14,58.14,0,0,0,208.31,75.68ZM200,112a40,40,0,0,1-40,40H112a40,40,0,0,1-40-40v-8a41.74,41.74,0,0,1,6.9-22.48A8,8,0,0,0,80,73.83a43.81,43.81,0,0,1,.79-33.58,43.88,43.88,0,0,1,32.32,20.06A8,8,0,0,0,119.82,64h32.35a8,8,0,0,0,6.74-3.69,43.87,43.87,0,0,1,32.32-20.06A43.81,43.81,0,0,1,192,73.83a8.09,8.09,0,0,0,1,7.65A41.72,41.72,0,0,1,200,104Z`}))],[`thin`,Q.createElement(Q.Fragment,null,Q.createElement(`path`,{d:`M203.94,76.16A55.73,55.73,0,0,0,199.46,30,4,4,0,0,0,196,28a55.78,55.78,0,0,0-46,24H122A55.78,55.78,0,0,0,76,28a4,4,0,0,0-3.46,2,55.73,55.73,0,0,0-4.48,46.16A53.78,53.78,0,0,0,60,104v8a52.06,52.06,0,0,0,52,52h1.41A36,36,0,0,0,100,192v12H72a28,28,0,0,1-28-28A36,36,0,0,0,8,140a4,4,0,0,0,0,8,28,28,0,0,1,28,28,36,36,0,0,0,36,36h28v20a4,4,0,0,0,8,0V192a28,28,0,0,1,56,0v40a4,4,0,0,0,8,0V192a36,36,0,0,0-13.41-28H160a52.06,52.06,0,0,0,52-52v-8A53.78,53.78,0,0,0,203.94,76.16ZM204,112a44.05,44.05,0,0,1-44,44H112a44.05,44.05,0,0,1-44-44v-8a45.76,45.76,0,0,1,7.71-24.89,4,4,0,0,0,.53-3.84,47.82,47.82,0,0,1,2.1-39.21,47.8,47.8,0,0,1,38.12,22.1A4,4,0,0,0,119.83,60h32.34a4,4,0,0,0,3.37-1.84,47.8,47.8,0,0,1,38.12-22.1,47.82,47.82,0,0,1,2.1,39.21,4,4,0,0,0,.53,3.83A45.85,45.85,0,0,1,204,104Z`}))]]),yt=new Map([[`bold`,Q.createElement(Q.Fragment,null,Q.createElement(`path`,{d:`M56.88,39.93A12,12,0,1,0,39.12,56.07L76,96.64V128a52,52,0,0,0,72.11,48l11.26,12.39A67.34,67.34,0,0,1,128,196a68.07,68.07,0,0,1-68-68,12,12,0,0,0-24,0,92.14,92.14,0,0,0,80,91.22V240a12,12,0,0,0,24,0V219.23a90.39,90.39,0,0,0,35.92-12.68l23.2,25.52a12,12,0,0,0,17.76-16.14ZM128,156a28,28,0,0,1-28-28v-5l29.9,32.89C129.27,156,128.64,156,128,156Zm63-2.42A67.63,67.63,0,0,0,196,128a12,12,0,0,1,24,0,91.48,91.48,0,0,1-6.74,34.61,12,12,0,0,1-22.23-9ZM85.7,33.75A52,52,0,0,1,180,64v56.54a12,12,0,0,1-24,0V64a28,28,0,0,0-50.79-16.28,12,12,0,0,1-19.51-14Z`}))],[`duotone`,Q.createElement(Q.Fragment,null,Q.createElement(`path`,{d:`M168,64v64a40,40,0,0,1-40,40h0a40,40,0,0,1-40-40V64a40,40,0,0,1,40-40h0A40,40,0,0,1,168,64Z`,opacity:`0.2`}),Q.createElement(`path`,{d:`M213.92,218.62l-160-176A8,8,0,0,0,42.08,53.38L80,95.09V128a48,48,0,0,0,69.11,43.12l11.1,12.2A63.41,63.41,0,0,1,128,192a64.07,64.07,0,0,1-64-64,8,8,0,0,0-16,0,80.11,80.11,0,0,0,72,79.6V240a8,8,0,0,0,16,0V207.59a78.83,78.83,0,0,0,35.16-12.22l30.92,34a8,8,0,1,0,11.84-10.76ZM128,160a32,32,0,0,1-32-32V112.69l41.66,45.82A32,32,0,0,1,128,160Zm57.52-3.91A63.32,63.32,0,0,0,192,128a8,8,0,0,1,16,0,79.16,79.16,0,0,1-8.11,35.12,8,8,0,0,1-7.19,4.49,7.88,7.88,0,0,1-3.51-.82A8,8,0,0,1,185.52,156.09ZM84,44.87A48,48,0,0,1,176,64v64a49.19,49.19,0,0,1-.26,5,8,8,0,0,1-8,7.17,8.13,8.13,0,0,1-.84,0,8,8,0,0,1-7.12-8.79c.11-1.1.17-2.24.17-3.36V64A32,32,0,0,0,98.64,51.25,8,8,0,1,1,84,44.87Z`}))],[`fill`,Q.createElement(Q.Fragment,null,Q.createElement(`path`,{d:`M213.38,229.92a8,8,0,0,1-11.3-.54l-30.92-34A78.83,78.83,0,0,1,136,207.59V240a8,8,0,0,1-16,0V207.6A80.11,80.11,0,0,1,48,128a8,8,0,0,1,16,0,64.07,64.07,0,0,0,64,64,63.41,63.41,0,0,0,32.21-8.68l-11.1-12.2A48,48,0,0,1,80,128V95.09L42.08,53.38A8,8,0,0,1,53.92,42.62l160,176A8,8,0,0,1,213.38,229.92Zm-24.19-63.13a7.88,7.88,0,0,0,3.51.82,8,8,0,0,0,7.19-4.49A79.16,79.16,0,0,0,208,128a8,8,0,0,0-16,0,63.32,63.32,0,0,1-6.48,28.09A8,8,0,0,0,189.19,166.79Zm-27.33-29.22A8,8,0,0,0,175.74,133a49.49,49.49,0,0,0,.26-5V64A48,48,0,0,0,84,44.87a8,8,0,0,0,1.41,8.57Z`}))],[`light`,Q.createElement(Q.Fragment,null,Q.createElement(`path`,{d:`M212.44,220,52.44,44A6,6,0,0,0,43.56,52L82,94.32V128a46,46,0,0,0,67.56,40.64l13.75,15.12A65.26,65.26,0,0,1,128,194a66.08,66.08,0,0,1-66-66,6,6,0,0,0-12,0,78.09,78.09,0,0,0,72,77.75V240a6,6,0,0,0,12,0V205.77a76.93,76.93,0,0,0,37.48-13L203.56,228a6,6,0,0,0,8.88-8.08ZM128,162a34,34,0,0,1-34-34V107.52l47.12,51.84A33.82,33.82,0,0,1,128,162Zm59.32-5A65.38,65.38,0,0,0,194,128a6,6,0,0,1,12,0,77.33,77.33,0,0,1-7.9,34.25A6,6,0,1,1,187.32,157ZM85.8,45.67A46,46,0,0,1,174,64v64a45.17,45.17,0,0,1-.25,4.81,6,6,0,0,1-6,5.38q-.31,0-.63,0a6,6,0,0,1-5.34-6.59A35.41,35.41,0,0,0,162,128V64A34,34,0,0,0,96.8,50.45a6,6,0,0,1-11-4.78Z`}))],[`regular`,Q.createElement(Q.Fragment,null,Q.createElement(`path`,{d:`M213.92,218.62l-160-176A8,8,0,0,0,42.08,53.38L80,95.09V128a48,48,0,0,0,69.11,43.12l11.1,12.2A63.41,63.41,0,0,1,128,192a64.07,64.07,0,0,1-64-64,8,8,0,0,0-16,0,80.11,80.11,0,0,0,72,79.6V240a8,8,0,0,0,16,0V207.59a78.83,78.83,0,0,0,35.16-12.22l30.92,34a8,8,0,1,0,11.84-10.76ZM128,160a32,32,0,0,1-32-32V112.69l41.66,45.82A32,32,0,0,1,128,160Zm57.52-3.91A63.32,63.32,0,0,0,192,128a8,8,0,0,1,16,0,79.16,79.16,0,0,1-8.11,35.12,8,8,0,0,1-7.19,4.49,7.88,7.88,0,0,1-3.51-.82A8,8,0,0,1,185.52,156.09ZM84,44.87A48,48,0,0,1,176,64v64a49.19,49.19,0,0,1-.26,5,8,8,0,0,1-8,7.17,8.13,8.13,0,0,1-.84,0,8,8,0,0,1-7.12-8.79c.11-1.1.17-2.24.17-3.36V64A32,32,0,0,0,98.64,51.25,8,8,0,1,1,84,44.87Z`}))],[`thin`,Q.createElement(Q.Fragment,null,Q.createElement(`path`,{d:`M211,221.31,51,45.31A4,4,0,0,0,45,50.69L84,93.55V128a44,44,0,0,0,66,38.12l16.38,18A67.21,67.21,0,0,1,128,196a68.07,68.07,0,0,1-68-68,4,4,0,0,0-8,0,76.09,76.09,0,0,0,72,75.89V240a4,4,0,0,0,8,0V203.89a75.1,75.1,0,0,0,39.79-13.77L205,226.69a4,4,0,1,0,5.92-5.38ZM128,164a36,36,0,0,1-36-36V102.35L144.43,160A35.83,35.83,0,0,1,128,164Zm61.12-6.15A67.44,67.44,0,0,0,196,128a4,4,0,0,1,8,0,75.28,75.28,0,0,1-7.7,33.37,4,4,0,0,1-7.18-3.52ZM87.63,46.46A44,44,0,0,1,172,64v64a44.2,44.2,0,0,1-.24,4.61,4,4,0,0,1-4,3.58l-.42,0a4,4,0,0,1-3.57-4.39A36.67,36.67,0,0,0,164,128V64A36,36,0,0,0,95,49.66a4,4,0,0,1-7.34-3.2Z`}))]]),bt=Q.forwardRef((e,t)=>Q.createElement(r,{ref:t,...e,weights:ht}));bt.displayName=`AppWindowIcon`;var xt=Q.forwardRef((e,t)=>Q.createElement(r,{ref:t,...e,weights:gt}));xt.displayName=`DotsThreeIcon`;var St=Q.forwardRef((e,t)=>Q.createElement(r,{ref:t,...e,weights:_t}));St.displayName=`GearSixIcon`;var Ct=Q.forwardRef((e,t)=>Q.createElement(r,{ref:t,...e,weights:vt}));Ct.displayName=`GithubLogoIcon`;var wt=Q.forwardRef((e,t)=>Q.createElement(r,{ref:t,...e,weights:yt}));wt.displayName=`MicrophoneSlashIcon`;function Tt(e){return e.replace(/(?::\d+){1,2}$/,``)}function Et(e,t,n){if(t&&t!==`.`){if(t===`..`){let r=e[e.length-1];e.length>0&&r!==`..`?e.pop():n||e.push(t);return}e.push(t)}}function Dt(e,t){let n=t?e.replace(/\\/g,`/`):e,r=n.startsWith(`/`)||t&&/^[A-Za-z]:\//.test(n),i=[];for(let e of n.split(`/`))Et(i,e,r);return`${r?`/`:``}${i.join(`/`)}`.replace(/\/+$/,``)||(r?`/`:`.`)}function Ot(e,t){let n=e.trim();if(!n)return null;try{let e=new URL(n,t??`http://localhost`);return e.protocol!==`http:`&&e.protocol!==`https:`&&e.protocol!==`file:`||t&&e.origin!==t&&e.protocol!==`file:`?null:decodeURIComponent(e.pathname)}catch{try{return decodeURIComponent(n)}catch{return n}}}function kt(e,t,n=typeof window<`u`?window.location.origin:void 0){if(!(e&&t))return null;let r=Ot(e,n);if(!r)return null;let i=/^[A-Za-z]:[\\/]/.test(t),a=Dt(Tt(r),i),o=Dt(t,i),s=i?a.toLowerCase():a,c=i?o.toLowerCase():o;if(!(s===c||s.startsWith(`${c}/`)))return null;let l=a.slice(o.length).replace(/^\/+/,``);return l.length>0?l:null}var $=n();function At({workspace:e,archivePending:t,onArchiveRequest:n,renderAsMenuItem:r=!1}){let s=De(e);return r?(0,$.jsxs)(M,{onSelect:e=>{e.preventDefault(),requestAnimationFrame(()=>{n()})},disabled:t,className:o(s?``:`text-destructive focus:text-destructive dark:text-destructive`),children:[t?(0,$.jsx)(a,{className:`h-4 w-4 animate-spin`}):(0,$.jsx)(k,{className:`h-4 w-4`}),t?`Archiving...`:`Archive workspace`]}):(0,$.jsxs)(W,{children:[(0,$.jsx)(H,{asChild:!0,children:(0,$.jsx)(i,{variant:s?`default`:`ghost`,size:`icon`,className:o(`h-9 w-9 md:h-8 md:w-8`,s?``:`hover:bg-destructive/10 hover:text-destructive`),onClick:n,disabled:t,children:t?(0,$.jsx)(a,{className:`h-4 w-4 animate-spin`}):(0,$.jsx)(k,{className:`h-4 w-4`})})}),(0,$.jsx)(U,{children:t?`Archiving...`:`Archive`})]})}function jt({workspaceId:e,renderAsMenuItem:t=!1}){let n=ee(e);return n&&t?(0,$.jsx)(M,{asChild:!0,children:(0,$.jsxs)(`a`,{href:n.href,target:`_blank`,rel:`noopener noreferrer`,children:[(0,$.jsx)(u,{className:`h-4 w-4`}),`Open dev app`]})}):null}function Mt({workspaceId:e,hasWorktreePath:t,availableIdes:n,preferredIde:r,openInIde:o,renderAsMenuItem:s=!1}){if(n.length===0)return null;let c=n.find(e=>e.id===r)?.name??`IDE`,l=o.isPending||!t;return s?(0,$.jsxs)(M,{onSelect:()=>{o.mutate({id:e})},disabled:l,children:[o.isPending?(0,$.jsx)(a,{className:`h-4 w-4 animate-spin`}):(0,$.jsx)(bt,{className:`h-4 w-4`}),`Open in `,c]}):(0,$.jsxs)(W,{children:[(0,$.jsx)(H,{asChild:!0,children:(0,$.jsx)(i,{variant:`ghost`,size:`icon`,className:`h-9 w-9 md:h-8 md:w-8`,onClick:()=>o.mutate({id:e}),disabled:l,children:o.isPending?(0,$.jsx)(a,{className:`h-4 w-4 animate-spin`}):(0,$.jsx)(bt,{className:`h-4 w-4`})})}),(0,$.jsxs)(U,{children:[`Open in `,c]})]})}function Nt({workspace:e,workspaceId:t,renderAsMenuItem:n=!1}){let r=Oe(e.projectId),i=e.ratchetEnabled??!0;return n?(0,$.jsxs)(M,{onSelect:()=>{r.mutate({workspaceId:t,enabled:!i})},disabled:r.isPending,children:[r.isPending?(0,$.jsx)(a,{className:`h-4 w-4 animate-spin`}):(0,$.jsx)(be,{className:`h-4 w-4`}),i?`Turn off Ratchet`:`Turn on Ratchet`]}):(0,$.jsx)(b,{enabled:i,state:e.ratchetState,animated:e.ratchetButtonAnimated??!1,disabled:r.isPending,onToggle:e=>{r.mutate({workspaceId:t,enabled:e})}})}function Pt(){let{rightPanelVisible:e,toggleRightPanel:t}=ie();return(0,$.jsxs)(W,{children:[(0,$.jsx)(H,{asChild:!0,children:(0,$.jsx)(i,{variant:`ghost`,size:`icon`,onClick:t,className:`h-6 w-6 md:h-8 md:w-8`,children:(0,$.jsx)(ut,{mirrored:!0,className:o(`h-3 w-3 md:h-4 md:w-4`,e&&`text-primary`)})})}),(0,$.jsx)(U,{children:e?`Hide right panel`:`Show right panel`})]})}function Ft(e){if(e instanceof Date)return e.getTime();let t=new Date(e).getTime();return Number.isNaN(t)?0:t}function It(e,t){return Ft(t.createdAt)-Ft(e.createdAt)}function Lt(e){return{todo:e.filter(e=>e.kanbanColumn===`WAITING`&&!e.pendingRequestType).sort(It),waiting:e.filter(e=>e.kanbanColumn===`WAITING`&&e.pendingRequestType).sort(It),working:e.filter(e=>e.kanbanColumn===`WORKING`).sort(It),done:e.filter(e=>e.kanbanColumn===`DONE`).sort(It)}}function Rt(e,t,n){if(!e)return t;if(!n)return e;let r=e.indexOf(`/`);return r===-1||r===e.length-1?e:e.slice(r+1)}function zt(e){return e.prState===`MERGED`||e.ratchetState===`MERGED`||e.sidebarStatus?.ciState===`MERGED`}function Bt(e){return e.prState===`CLOSED`||e.sidebarStatus?.ciState===`CLOSED`}function Vt(e){return!!(e.prUrl&&e.prNumber&&e.prState!==`NONE`)}function Ht(e){return e.split(`/`).map(e=>encodeURIComponent(e)).join(`/`)}function Ut({workspace:e,renderAsMenuItem:t=!1}){let{data:n}=O.project.getById.useQuery({id:e.projectId},{enabled:!!e.branchName}),r=e.branchName&&n?.githubOwner&&n?.githubRepo?`https://github.com/${n.githubOwner}/${n.githubRepo}/tree/${Ht(e.branchName)}`:null;return r?t?(0,$.jsx)(M,{asChild:!0,children:(0,$.jsxs)(`a`,{href:r,target:`_blank`,rel:`noopener noreferrer`,children:[(0,$.jsx)(Ct,{className:`h-4 w-4`}),`Open branch on GitHub`]})}):(0,$.jsxs)(W,{children:[(0,$.jsx)(H,{asChild:!0,children:(0,$.jsx)(i,{asChild:!0,variant:`ghost`,size:`icon`,className:`h-8 w-8`,children:(0,$.jsx)(`a`,{href:r,target:`_blank`,rel:`noopener noreferrer`,"aria-label":`Open branch on GitHub`,children:(0,$.jsx)(Ct,{className:`h-4 w-4`})})})}),(0,$.jsx)(U,{children:`Open branch on GitHub`})]}):null}function Wt({workspace:e,workspaceId:t,open:n,onOpenChange:r,showTrigger:a=!0}){let[o,s]=(0,Q.useState)(!1),[c,l]=(0,Q.useState)(D(e.defaultSessionProvider)),[u,d]=(0,Q.useState)(D(e.ratchetSessionProvider)),{data:f}=O.userSettings.get.useQuery(),p=O.useUtils(),m=O.workspace.updateProviderDefaults.useMutation({onSuccess:()=>{p.workspace.get.invalidate({id:t}),p.workspace.listForProject.invalidate({projectId:e.projectId}),v(!1)}}),g=n!==void 0,_=g?n:o,v=e=>{g||s(e),r?.(e)};(0,Q.useEffect)(()=>{_&&(l(D(e.defaultSessionProvider)),d(D(e.ratchetSessionProvider)))},[_,e.defaultSessionProvider,e.ratchetSessionProvider]);let y=D(e.defaultSessionProvider),b=D(e.ratchetSessionProvider),C=c!==y||u!==b,w=f?.defaultSessionProvider,T=x(`WORKSPACE_DEFAULT`,w),ee=x(c,w);return(0,$.jsxs)(R,{open:_,onOpenChange:v,children:[a&&(0,$.jsxs)(W,{children:[(0,$.jsx)(H,{asChild:!0,children:(0,$.jsx)(Ue,{asChild:!0,children:(0,$.jsx)(i,{variant:`ghost`,size:`icon`,className:`h-9 w-9 md:h-8 md:w-8`,"aria-label":`Provider settings`,children:(0,$.jsx)(St,{className:`h-4 w-4`})})})}),(0,$.jsx)(U,{children:`Provider settings`})]}),(0,$.jsxs)(B,{className:`sm:max-w-[440px]`,children:[(0,$.jsxs)(V,{children:[(0,$.jsx)(L,{children:`Session Provider Defaults`}),(0,$.jsx)(I,{children:`Configure workspace defaults and ratchet provider behavior.`})]}),(0,$.jsxs)(`div`,{className:`space-y-4 py-2`,children:[(0,$.jsxs)(`div`,{className:`space-y-2`,children:[(0,$.jsx)(et,{htmlFor:`workspace-default-provider`,children:`Default Session Provider`}),(0,$.jsxs)(ze,{value:c,onValueChange:e=>{l(D(e))},children:[(0,$.jsx)(Le,{id:`workspace-default-provider`,children:(0,$.jsx)(Re,{})}),(0,$.jsxs)(Ie,{children:[(0,$.jsx)(N,{value:`WORKSPACE_DEFAULT`,children:T}),S.map(e=>(0,$.jsx)(N,{value:e.value,children:e.label},`default-${e.value}`))]})]}),(0,$.jsx)(Ke,{provider:h(c,w)})]}),(0,$.jsxs)(`div`,{className:`space-y-2`,children:[(0,$.jsx)(et,{htmlFor:`workspace-ratchet-provider`,children:`Ratchet Session Provider`}),(0,$.jsxs)(ze,{value:u,onValueChange:e=>{d(D(e))},children:[(0,$.jsx)(Le,{id:`workspace-ratchet-provider`,children:(0,$.jsx)(Re,{})}),(0,$.jsxs)(Ie,{children:[(0,$.jsx)(N,{value:`WORKSPACE_DEFAULT`,children:ee}),S.map(e=>(0,$.jsx)(N,{value:e.value,children:e.label},`ratchet-${e.value}`))]})]}),(0,$.jsx)(Ke,{provider:h(u===`WORKSPACE_DEFAULT`?c:u,w)})]})]}),(0,$.jsxs)(We,{children:[(0,$.jsx)(i,{variant:`outline`,onClick:()=>v(!1),children:`Cancel`}),(0,$.jsx)(i,{onClick:()=>{m.mutate({workspaceId:t,defaultSessionProvider:c,ratchetSessionProvider:u})},disabled:!C||m.isPending,children:m.isPending?`Saving...`:`Save`})]})]})]})}function Gt({workspace:e,workspaceId:t,availableIdes:n,preferredIde:r,openInIde:a,archivePending:o,onArchiveRequest:c}){let[l,u]=(0,Q.useState)(!1),[d,p]=(0,Q.useState)(!1),[m,h]=(0,Q.useState)(``),[g,_]=(0,Q.useState)(!1),v=(0,Q.useRef)(null),y=O.useUtils(),b=O.workspace.rename.useMutation({onError:e=>X.error(`Failed to rename workspace: ${e.message}`)}),x=()=>{h(e.name),p(!0),requestAnimationFrame(()=>{v.current?.select()})},S=async()=>{let n=m.trim();if(!b.isPending){if(!n||n===e.name){p(!1);return}try{await b.mutateAsync({id:t,name:n}),p(!1),await Promise.all([y.workspace.get.invalidate({id:t}),y.workspace.listForProject.invalidate({projectId:e.projectId})])}catch{}}},C=e.creationMetadata,w=typeof C?.initialPrompt==`string`?C.initialPrompt:null,T=e.description||w;return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(R,{open:g,onOpenChange:_,children:(0,$.jsxs)(B,{className:`sm:max-w-lg`,"aria-describedby":void 0,children:[(0,$.jsx)(V,{children:(0,$.jsx)(L,{children:`Workspace details`})}),T?(0,$.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[e.description&&(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-muted-foreground uppercase tracking-wide`,children:`Description`}),(0,$.jsx)(`p`,{className:`text-sm whitespace-pre-wrap`,children:e.description})]}),w&&(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-muted-foreground uppercase tracking-wide`,children:`Initial prompt`}),(0,$.jsx)(`p`,{className:`text-sm whitespace-pre-wrap`,children:w})]})]}):(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No description or initial prompt was provided for this workspace.`})]})}),(0,$.jsx)(Wt,{workspace:e,workspaceId:t,open:l,onOpenChange:u,showTrigger:!1}),(0,$.jsx)(R,{open:d,onOpenChange:p,children:(0,$.jsxs)(B,{className:`sm:max-w-sm`,"aria-describedby":void 0,children:[(0,$.jsx)(V,{children:(0,$.jsx)(L,{children:`Rename workspace`})}),(0,$.jsx)(s,{ref:v,value:m,onChange:e=>h(e.target.value),onKeyDown:e=>{e.key===`Enter`&&!e.nativeEvent.isComposing?(e.preventDefault(),b.isPending||S()):e.key===`Escape`&&p(!1)},placeholder:`Workspace name`}),(0,$.jsxs)(We,{children:[(0,$.jsx)(i,{variant:`outline`,onClick:()=>p(!1),children:`Cancel`}),(0,$.jsx)(i,{onClick:()=>void S(),disabled:!m.trim()||b.isPending,children:`Rename`})]})]})}),(0,$.jsxs)(xe,{children:[(0,$.jsxs)(W,{children:[(0,$.jsx)(H,{asChild:!0,children:(0,$.jsx)(ge,{asChild:!0,children:(0,$.jsx)(i,{variant:`ghost`,size:`icon`,className:`h-6 w-6 md:h-9 md:w-9`,"aria-label":`More actions`,children:(0,$.jsx)(xt,{className:`h-3 w-3 md:h-4 md:w-4`})})})}),(0,$.jsx)(U,{children:`More actions`})]}),(0,$.jsxs)(me,{align:`end`,className:`w-60`,children:[(0,$.jsx)(Ce,{children:`Workspace actions`}),(0,$.jsxs)(M,{onSelect:e=>{e.preventDefault(),requestAnimationFrame(()=>{_(!0)})},children:[(0,$.jsx)(it,{className:`h-4 w-4`}),`View details`]}),(0,$.jsxs)(M,{onSelect:e=>{e.preventDefault(),requestAnimationFrame(()=>{x()})},children:[(0,$.jsx)(f,{className:`h-4 w-4`}),`Rename workspace`]}),(0,$.jsxs)(M,{onSelect:e=>{e.preventDefault(),requestAnimationFrame(()=>{u(!0)})},children:[(0,$.jsx)(St,{className:`h-4 w-4`}),`Provider settings`]}),(0,$.jsx)(Nt,{workspace:e,workspaceId:t,renderAsMenuItem:!0}),(0,$.jsx)(Ut,{workspace:e,renderAsMenuItem:!0}),(0,$.jsx)(Mt,{workspaceId:t,hasWorktreePath:!!e.worktreePath,availableIdes:n,preferredIde:r,openInIde:a,renderAsMenuItem:!0}),(0,$.jsx)(jt,{workspaceId:t,renderAsMenuItem:!0}),(0,$.jsx)(he,{}),(0,$.jsx)(At,{workspace:e,archivePending:o,onArchiveRequest:c,renderAsMenuItem:!0})]})]})]})}function Kt(e){switch(e){case`PASSING`:return{className:`bg-emerald-500/15 text-emerald-700 dark:text-emerald-300`,Icon:F};case`FAILING`:return{className:`bg-red-500/15 text-red-700 dark:text-red-300`,Icon:A};case`RUNNING`:return{className:`bg-yellow-500/15 text-yellow-700 dark:text-yellow-300`,Icon:He};case`UNKNOWN`:return{className:`bg-muted text-muted-foreground`,Icon:He};case`CLOSED`:return{className:`bg-slate-500/15 text-slate-700 dark:text-slate-300`,Icon:A};case`MERGED`:return{className:`bg-purple-500/15 text-purple-700 dark:text-purple-300`,Icon:F};case`CONFLICT`:return{className:`bg-orange-500/15 text-orange-700 dark:text-orange-300`,Icon:Je};case`NONE`:return{className:`bg-transparent text-muted-foreground`,Icon:He}}}function qt({ciState:e,prState:t,size:n=`sm`,className:r}){if(e===`NONE`)return null;let i=Kt(e),{Icon:a}=i,s=n===`sm`?`text-[10px] px-1.5 py-0.5`:`text-xs px-2 py-0.5`,c=n===`sm`?`h-2.5 w-2.5`:`h-3 w-3`;return(0,$.jsxs)(W,{children:[(0,$.jsx)(H,{asChild:!0,children:(0,$.jsxs)(`button`,{type:`button`,"aria-label":pt(e,t??null),className:o(`inline-flex w-fit items-center gap-1 rounded-sm font-medium uppercase tracking-wide cursor-default`,s,i.className,r),children:[(0,$.jsx)(a,{className:o(c,e===`RUNNING`&&`animate-pulse`)}),(0,$.jsx)(`span`,{children:nt(e)})]})}),(0,$.jsx)(U,{side:`right`,children:pt(e,t??null)})]})}function Jt({prUrl:e,prNumber:t,variant:n=`default`,className:r}){let i=n===`merged`,a=n===`closed`;return(0,$.jsxs)(`a`,{href:e,target:`_blank`,rel:`noopener noreferrer`,className:o(`flex items-center gap-1 text-xs hover:opacity-80 transition-opacity`,i?`text-green-500`:a?`text-slate-500`:`text-muted-foreground hover:text-foreground`,r),children:[(0,$.jsx)(pe,{className:`h-3 w-3`}),`#`,t,i&&(0,$.jsx)(F,{className:`h-3 w-3 text-green-500`}),a&&(0,$.jsx)(A,{className:`h-3 w-3 text-slate-500`})]})}function Yt({workspace:e,hasChanges:t,running:n,isCreatingSession:r,handleQuickAction:a}){if(t&&!n&&e.prState===`NONE`)return(0,$.jsxs)(W,{children:[(0,$.jsx)(H,{asChild:!0,children:(0,$.jsxs)(i,{variant:`ghost`,size:`sm`,className:`h-6 gap-1 text-xs px-2`,disabled:r,onClick:()=>a(`Create Pull Request`,`Create a pull request for the current branch using the GitHub CLI (gh). Include a clear title and description summarizing the changes.`),children:[(0,$.jsx)(pe,{className:`h-3 w-3`}),`Create PR`]})}),(0,$.jsx)(U,{children:`Create a pull request for this branch`})]});if(Vt(e)){let t=zt(e)?`merged`:Bt(e)?`closed`:`default`;return(0,$.jsx)(Jt,{prUrl:e.prUrl,prNumber:e.prNumber,variant:t})}return null}function Xt({workspace:e}){return e.linearIssueIdentifier&&e.linearIssueUrl?(0,$.jsxs)(`a`,{href:e.linearIssueUrl,target:`_blank`,rel:`noopener noreferrer`,className:`flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-opacity hover:opacity-80`,children:[(0,$.jsx)(ot,{className:`h-3 w-3 text-violet-500`}),e.linearIssueIdentifier]}):e.githubIssueNumber&&e.githubIssueUrl?(0,$.jsxs)(`a`,{href:e.githubIssueUrl,target:`_blank`,rel:`noopener noreferrer`,className:`flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-opacity hover:opacity-80`,children:[(0,$.jsx)(ot,{className:`h-3 w-3 text-green-500`}),`#`,e.githubIssueNumber]}):null}function Zt({workspace:e}){return!e.prUrl||!e.sidebarStatus?null:(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(qt,{ciState:e.sidebarStatus.ciState,prState:e.prState,size:`md`}),(0,$.jsx)(Ee,{prState:e.prState,size:`md`})]})}function Qt({projectSlug:e,projectId:t,currentWorkspaceId:n,currentWorkspaceLabel:r,currentWorkspaceName:i}){let a=`h-auto items-start py-1.5 data-[state=checked]:bg-accent data-[state=checked]:text-accent-foreground [&>span:first-child]:hidden [&>span:last-child]:block [&>span:last-child]:w-full`,o=c(),{data:s}=O.workspace.listForProject.useQuery({projectId:t},{enabled:!!t,staleTime:1/0,refetchOnWindowFocus:!1}),l=(0,Q.useMemo)(()=>Lt(s?.workspaces??[]),[s?.workspaces]),u=`${l.working.length} working · ${l.waiting.length} waiting`,d=t=>{t&&t!==n&&o(`/projects/${e}/workspaces/${t}`)},f=e=>{let t=e.prUrl;t&&window.open(t,`_blank`,`noopener,noreferrer`)},p=e=>{let t=e.githubIssueUrl??e.linearIssueUrl;t&&window.open(t,`_blank`,`noopener,noreferrer`)};return(0,$.jsxs)(ze,{value:n,onValueChange:d,children:[(0,$.jsxs)(Le,{id:`workspace-detail-workspace-select`,"aria-label":`Open workspace menu (${u})`,className:`h-7 min-w-0 w-auto max-w-[10rem] border-0 bg-transparent px-0.5 text-[11px] font-normal text-muted-foreground shadow-none focus:ring-0 hover:[&>.workspace-switcher-label]:underline focus-visible:[&>.workspace-switcher-label]:underline md:max-w-[18rem] md:px-1 md:text-sm lg:max-w-none [&>svg:last-of-type]:hidden`,children:[(0,$.jsx)(`span`,{className:`workspace-switcher-label flex-1 min-w-0 truncate text-foreground font-semibold`,children:r}),(0,$.jsx)(`span`,{className:`shrink-0`,"aria-hidden":!0,children:(0,$.jsxs)(`span`,{className:`ml-1 hidden text-[10px] font-normal text-muted-foreground tabular-nums lg:block`,children:[l.working.length,` wk · `,l.waiting.length,` wait`]})}),(0,$.jsx)(`span`,{className:`ml-0.5 inline-flex shrink-0 items-center text-current md:ml-2`,"aria-hidden":!0,children:(0,$.jsx)(Ve,{className:`h-3 w-3 shrink-0 opacity-70 md:h-3.5 md:w-3.5`})})]}),(0,$.jsxs)(Ie,{className:`w-[min(95vw,34rem)]`,children:[(0,$.jsx)(N,{value:n,className:`hidden`,"aria-hidden":!0,children:i}),(0,$.jsxs)(P,{children:[(0,$.jsxs)(Ne,{className:`px-2 py-1 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground`,children:[`Waiting · `,l.waiting.length]}),l.waiting.map(e=>(0,$.jsx)(N,{value:e.id,className:a,children:(0,$.jsx)(ft,{workspace:e,onOpenPr:()=>f(e),onOpenIssue:()=>p(e)})},`waiting-${e.id}`))]}),(0,$.jsxs)(P,{children:[(0,$.jsxs)(Ne,{className:`px-2 py-1 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground`,children:[`Working · `,l.working.length]}),l.working.map(e=>(0,$.jsx)(N,{value:e.id,className:a,children:(0,$.jsx)(ft,{workspace:e,onOpenPr:()=>f(e),onOpenIssue:()=>p(e)})},`working-${e.id}`))]}),(0,$.jsxs)(P,{children:[(0,$.jsxs)(Ne,{className:`px-2 py-1 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground`,children:[`Todo · `,l.todo.length]}),l.todo.map(e=>(0,$.jsx)(N,{value:e.id,className:a,children:(0,$.jsx)(ft,{workspace:e,onOpenPr:()=>f(e),onOpenIssue:()=>p(e)})},`todo-${e.id}`))]}),(0,$.jsxs)(P,{children:[(0,$.jsxs)(Ne,{className:`px-2 py-1 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground`,children:[`Done · `,l.done.length]}),l.done.map(e=>(0,$.jsx)(N,{value:e.id,className:a,children:(0,$.jsx)(ft,{workspace:e,onOpenPr:()=>f(e),onOpenIssue:()=>p(e)})},`done-${e.id}`))]})]})]})}function $t({workspace:e,workspaceId:t,availableIdes:n,preferredIde:r,openInIde:a,archivePending:s,onArchiveRequest:c,handleQuickAction:l,running:u,isCreatingSession:d,hasChanges:p}){let m=z(),{slug:h,projects:_,handleProjectChange:v,handleCurrentProjectSelect:y}=Te(),b=O.useUtils(),x=O.workspace.rename.useMutation({onError:e=>X.error(`Failed to rename workspace: ${e.message}`)}),[S,C]=(0,Q.useState)(!1),[w,T]=(0,Q.useState)(e.name),[ee,E]=(0,Q.useState)(!1),[ne,D]=(0,Q.useState)(!1),re=(0,Q.useRef)(null),ie=()=>{T(e.name),C(!0),setTimeout(()=>re.current?.select(),0)},ae=async()=>{let n=w.trim();if(!n||n===e.name){C(!1);return}try{await x.mutateAsync({id:t,name:n}),await Promise.all([b.workspace.listForProject.invalidate({projectId:e.projectId}),b.workspace.get.invalidate({id:t})]),C(!1)}catch{C(!1),T(e.name)}},k=e.status===`ARCHIVED`||e.status===`ARCHIVING`;return at({title:``}),(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Z,{children:(0,$.jsxs)(`div`,{className:`flex min-w-0 items-center gap-0.5`,children:[(0,$.jsx)(Be,{selectedProjectSlug:h,onProjectChange:v,onCurrentProjectSelect:y,projects:_,showLeadingSlash:!0,showTrailingSlash:!0,trailingSeparatorType:`chevron`,triggerId:`workspace-detail-project-select`}),S?(0,$.jsx)(`input`,{ref:re,value:w,onChange:e=>T(e.target.value),onKeyDown:t=>{t.key===`Enter`&&!t.nativeEvent.isComposing?(t.preventDefault(),t.currentTarget.blur()):t.key===`Escape`&&(t.preventDefault(),C(!1),T(e.name)),t.stopPropagation()},onBlur:()=>void ae(),className:`min-w-0 max-w-[18rem] text-sm font-semibold bg-transparent border-b border-primary outline-none`}):(0,$.jsxs)(`div`,{className:`group flex min-w-0 items-center gap-0.5`,children:[(0,$.jsx)(Qt,{projectSlug:h,projectId:e.projectId,currentWorkspaceId:t,currentWorkspaceLabel:Rt(e.branchName,e.name,m),currentWorkspaceName:e.name}),!k&&(0,$.jsx)(i,{variant:`ghost`,size:`icon`,className:`h-6 w-6 shrink-0 opacity-0 group-hover:opacity-100 transition-opacity`,onClick:ie,"aria-label":`Rename workspace`,children:(0,$.jsx)(f,{className:`h-3 w-3`})}),(0,$.jsx)(i,{variant:`ghost`,size:`icon`,className:`h-6 w-6 shrink-0 opacity-0 group-hover:opacity-100 transition-opacity`,onClick:()=>E(!0),"aria-label":`View workspace details`,children:(0,$.jsx)(it,{className:`h-3 w-3`})}),!k&&(0,$.jsx)(i,{variant:`ghost`,size:`icon`,className:`h-6 w-6 shrink-0 opacity-0 group-hover:opacity-100 transition-opacity`,onClick:()=>D(!0),"aria-label":e.prUrl?`Edit associated PR`:`Associate a PR`,children:(0,$.jsx)(pe,{className:`h-3 w-3`})})]})]})}),(0,$.jsx)(ct,{children:(0,$.jsxs)(`div`,{className:`hidden md:flex items-center gap-2 min-w-0`,children:[(0,$.jsx)(Yt,{workspace:e,hasChanges:p,running:u,isCreatingSession:d,handleQuickAction:l}),(0,$.jsx)(Xt,{workspace:e}),(0,$.jsx)(Zt,{workspace:e}),(0,$.jsx)(g,{workspaceId:t})]})}),(0,$.jsx)(rt,{children:(0,$.jsxs)(`div`,{className:o(`flex items-center gap-0.5 shrink-0`,!m&&`flex-wrap gap-0.5`),children:[(0,$.jsx)(te,{workspaceId:t}),m?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Pt,{}),(0,$.jsx)(Gt,{workspace:e,workspaceId:t,availableIdes:n,preferredIde:r,openInIde:a,archivePending:s,onArchiveRequest:c})]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Wt,{workspace:e,workspaceId:t}),(0,$.jsx)(Nt,{workspace:e,workspaceId:t}),(0,$.jsx)(Ut,{workspace:e}),(0,$.jsx)(Mt,{workspaceId:t,hasWorktreePath:!!e.worktreePath,availableIdes:n,preferredIde:r,openInIde:a}),(0,$.jsx)(At,{workspace:e,archivePending:s,onArchiveRequest:c}),(0,$.jsx)(Pt,{})]})]})}),(0,$.jsx)(tn,{open:ee,onOpenChange:E,workspace:e}),(0,$.jsx)(en,{open:ne,onOpenChange:D,workspaceId:t,currentPrUrl:e.prUrl??void 0})]})}function en({open:e,onOpenChange:t,workspaceId:n,currentPrUrl:r}){let a=O.useUtils(),[o,c]=(0,Q.useState)(r??``),[l,u]=(0,Q.useState)(null),d=O.workspace.attachPR.useMutation({onSuccess:async()=>{await a.workspace.get.invalidate({id:n}),t(!1),X.success(`PR associated successfully`)},onError:e=>{u(e.message)}}),f=e=>{e||(c(r??``),u(null)),t(e)};return(0,Q.useEffect)(()=>{e&&(c(r??``),u(null))},[e,r]),(0,$.jsx)(R,{open:e,onOpenChange:f,children:(0,$.jsxs)(B,{className:`sm:max-w-md`,"aria-describedby":`attach-pr-description`,children:[(0,$.jsxs)(V,{children:[(0,$.jsx)(L,{children:r?`Edit associated PR`:`Associate a PR`}),(0,$.jsx)(I,{id:`attach-pr-description`,children:`Enter the GitHub PR URL to link it to this workspace. The ratchet will use this PR to monitor CI and review status.`})]}),(0,$.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),u(null),d.mutate({id:n,prUrl:o.trim()})},className:`flex flex-col gap-3`,children:[(0,$.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,$.jsx)(s,{type:`url`,placeholder:`https://github.com/owner/repo/pull/123`,value:o,onChange:e=>{c(e.target.value),u(null)},autoFocus:!0}),l&&(0,$.jsx)(`p`,{className:`text-xs text-destructive`,children:l})]}),(0,$.jsxs)(We,{children:[(0,$.jsx)(i,{type:`button`,variant:`outline`,onClick:()=>f(!1),children:`Cancel`}),(0,$.jsx)(i,{type:`submit`,disabled:!o.trim()||d.isPending,children:d.isPending?`Saving…`:`Save`})]})]})]})})}function tn({open:e,onOpenChange:t,workspace:n}){let r=n.creationMetadata,i=typeof r?.initialPrompt==`string`?r.initialPrompt:null,a=n.description||i;return(0,$.jsx)(R,{open:e,onOpenChange:t,children:(0,$.jsxs)(B,{className:`sm:max-w-lg`,"aria-describedby":void 0,children:[(0,$.jsx)(V,{children:(0,$.jsx)(L,{children:`Workspace details`})}),a?(0,$.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[n.description&&(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-muted-foreground uppercase tracking-wide`,children:`Description`}),(0,$.jsx)(`p`,{className:`text-sm whitespace-pre-wrap`,children:n.description})]}),i&&(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-muted-foreground uppercase tracking-wide`,children:`Initial prompt`}),(0,$.jsx)(`p`,{className:`text-sm whitespace-pre-wrap`,children:i})]})]}):(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No description or initial prompt was provided for this workspace.`})]})})}var nn=K({filePath:J(),ownerId:J(),ownerLabel:J().optional(),acquiredAt:J(),expiresAt:J(),metadata:Y(J(),Xe()).optional()});K({version:G(1),workspaceId:J(),locks:q(nn)});var rn=q(J());Y(J(),q(J()));var an=`ff_resume_workspace_ids`;function on(){if(typeof window>`u`)return[];try{let e=window.localStorage.getItem(an);if(!e)return[];let t=JSON.parse(e);return rn.parse(t)}catch{return[]}}function sn(e){if(!(typeof window>`u`))try{window.localStorage.setItem(an,JSON.stringify(e))}catch{}}function cn(e){sn(on().filter(t=>t!==e))}function ln(e){return on().includes(e)}function un({workspaceId:e}){let t=O.useUtils(),{data:n,isLoading:r}=O.workspace.get.useQuery({id:e},{staleTime:1/0,refetchOnWindowFocus:!1}),i=(0,Q.useCallback)(()=>{t.workspace.get.invalidate({id:e})},[t,e]),a=O.workspace.syncPRStatus.useMutation({onSuccess:()=>{t.workspace.get.invalidate({id:e})}}),o=(0,Q.useRef)(!1);(0,Q.useEffect)(()=>{n?.prUrl&&!o.current&&!a.isPending&&(o.current=!0,a.mutate({workspaceId:e}))},[n?.prUrl,e,a]);let{data:s,isLoading:c}=O.session.listSessions.useQuery({workspaceId:e},{refetchInterval:1e4,staleTime:0,refetchOnWindowFocus:!1}),{data:l}=O.session.getMaxSessionsPerWorkspace.useQuery();return{workspace:n,workspaceLoading:r,sessions:s,sessionsLoading:c,initialDbSessionId:s?.[0]?.id,maxSessions:l,invalidateWorkspace:i}}function dn({workspaceId:e,slug:t,sessions:n,inputRef:r,selectedDbSessionId:i,setSelectedDbSessionId:a,selectedModel:o,selectedProvider:s,onArchiveGitIndexLocked:l}){let u=c(),d=O.useUtils(),f=O.session.createAndStartSession.useMutation({onSuccess:t=>{d.session.listSessions.invalidate({workspaceId:e})},onError:e=>{X.error(e.message||`Failed to create or start session`)}}),p=O.session.deleteSession.useMutation({onMutate:async({id:t})=>{await d.session.listSessions.cancel({workspaceId:e});let n=d.session.listSessions.getData({workspaceId:e});return d.session.listSessions.setData({workspaceId:e},e=>e?.filter(e=>e.id!==t)),{previousSessions:n}},onError:(t,n,r)=>{r?.previousSessions&&d.session.listSessions.setData({workspaceId:e},r.previousSessions)},onSettled:()=>{d.session.listSessions.invalidate({workspaceId:e})}}),m=O.workspace.archive.useMutation({onMutate:async({id:e})=>{let t=d.workspace.get.getData({id:e})?.projectId;if(!t)return{projectId:t,previousWorkspaces:void 0};await d.workspace.listForProject.cancel({projectId:t});let n=d.workspace.listForProject.getData({projectId:t});return d.workspace.listForProject.setData({projectId:t},t=>lt(t,e)),{projectId:t,previousWorkspaces:n}},onSuccess:()=>{u(t?`/projects/${t}/workspaces`:`/projects`,{replace:!0})},onError:(e,t,n)=>{n?.projectId&&n.previousWorkspaces&&d.workspace.listForProject.setData({projectId:n.projectId},e=>st(e,n.previousWorkspaces,[t.id])),we(e)?l():X.error(e.message||`Failed to archive workspace`)},onSettled:(e,t,n,r)=>{d.workspace.get.invalidate({id:n.id}),r?.projectId&&d.workspace.listForProject.invalidate({projectId:r.projectId})}}),h=O.workspace.openInIde.useMutation({onError:e=>{X.error(e.message)}}),{data:g}=O.workspace.getAvailableIdes.useQuery(),_=g?.ides??[],v=g?.preferredIde??`cursor`,y=(0,Q.useCallback)(e=>{a(e),setTimeout(()=>r.current?.focus(),0)},[r,a]),b=(0,Q.useCallback)(e=>{if(!n||n.length===0)return;let t=n.findIndex(t=>t.id===e);if(t===-1)return;let r=e===i;p.mutate({id:e}),r&&n.length>1?a((n[t+1]??n[t-1])?.id??null):n.length===1&&a(null)},[n,i,p,a]),x=(0,Q.useCallback)(()=>{let e=(n??[]).map(e=>{let t=e.name?.match(/^Chat (\d+)$/);return t?Number.parseInt(t[1],10):0}).filter(e=>e>0);return`Chat ${e.length>0?Math.max(...e)+1:1}`},[n]);return{createSession:f,deleteSession:p,archiveWorkspace:m,openInIde:h,availableIdes:_,preferredIde:v,handleSelectSession:y,handleCloseSession:b,handleNewChat:(0,Q.useCallback)(()=>{let t=x(),n=s,i=n===`CODEX`?void 0:o||void 0;f.mutate({workspaceId:e,workflow:`followup`,model:i,name:t,provider:n,initialPrompt:``},{onSuccess:e=>{a(e.id),setTimeout(()=>r.current?.focus(),0)}})},[f,e,x,a,r,o,s]),handleQuickAction:(0,Q.useCallback)(async(t,n)=>{let r=s,i=r===`CODEX`?void 0:o||void 0;try{a((await f.mutateAsync({workspaceId:e,workflow:`followup`,name:t,model:i,provider:r,initialMessage:n,initialPrompt:``})).id)}catch{}},[f,e,a,o,s])}}var fn=`ff_setup_warning_dismissed:`;function pn(){if(typeof window>`u`)return null;try{return window.localStorage}catch{return null}}function mn(e){return`${fn}${e}`}function hn(e,t){if(!t)return!1;try{return pn()?.getItem(mn(e))===t}catch{return!1}}function gn(e,t){if(t)try{pn()?.setItem(mn(e),t)}catch{}}function _n(e){try{pn()?.removeItem(mn(e))}catch{}}function vn(e,t,n,r){let i=t?.hasHadSessions===!0&&t.prState===`NONE`,{data:a}=O.workspace.hasChanges.useQuery({workspaceId:e},{enabled:i}),o=(0,Q.useRef)({workspaceId:e,running:n});return(0,Q.useEffect)(()=>{let t=o.current;i&&t.workspaceId===e&&t.running&&!n&&r.workspace.hasChanges.invalidate({workspaceId:e}),o.current={workspaceId:e,running:n}},[n,i,r,e]),a}function yn(e,t,n){let{data:r,isPending:i}=O.workspace.getInitStatus.useQuery({id:e},{refetchInterval:e=>{let t=e.state.data?.status;return t===`READY`||t===`FAILED`||t===`ARCHIVING`||t===`ARCHIVED`?!1:1e3}}),a=(0,Q.useRef)(void 0),o=(0,Q.useRef)(!1),s=r?.hasWorktreePath??!1;(0,Q.useEffect)(()=>{let i=r?.status,c=a.current;if(s&&!o.current&&n.workspace.get.invalidate({id:e}),o.current=s,i===`READY`){let r=c!==void 0&&c!==`READY`,i=c===void 0&&!t?.worktreePath;(r||i)&&n.workspace.get.invalidate({id:e})}a.current=i},[r?.status,s,e,n,t?.worktreePath]);let c=r?.status,l=r?.initErrorMessage??null,u=c===`FAILED`&&s||c===`READY`&&!!l,[d,f]=(0,Q.useState)(null),p=d?.workspaceId===e&&d.initErrorMessage===l?d.dismissed:null;return(0,Q.useEffect)(()=>{if(r){if(!l){_n(e),f({workspaceId:e,initErrorMessage:l,dismissed:!1});return}if(r.chatBanner?.showDismiss!==!0){f({workspaceId:e,initErrorMessage:l,dismissed:!1});return}f({workspaceId:e,initErrorMessage:l,dismissed:hn(e,l)})}},[e,r,l]),{workspaceInitStatus:r,isInitStatusPending:i,isScriptFailed:u,setupWarningDismissed:p,dismissSetupWarning:(0,Q.useCallback)(()=>{gn(e,l),f({workspaceId:e,initErrorMessage:l,dismissed:!0})},[e,l])}}var bn=`workspace-selected-session-`,xn=5e3;function Sn({currentSelectedDbSessionId:e,persistedSessionId:t,initialDbSessionId:n,sessionIds:r,pendingSelectionId:i,pendingSelectionSetAtMs:a,nowMs:o=Date.now()}){return r.length===0||i!=null&&e===i&&!r.includes(i)&&a!=null&&o-a<xn||e&&r.includes(e)?e:t&&r.includes(t)?t:n&&r.includes(n)?n:r[0]??null}function Cn(e,t,n){let r=`${bn}${e}`,i=(0,Q.useRef)({id:null,setAtMs:null}),[a,o]=(0,Q.useState)(()=>localStorage.getItem(r)??t);return(0,Q.useEffect)(()=>{let e=i.current;e.id&&n.includes(e.id)&&(i.current={id:null,setAtMs:null});let s=localStorage.getItem(r),c=Sn({currentSelectedDbSessionId:a,persistedSessionId:s,initialDbSessionId:t,sessionIds:n,pendingSelectionId:i.current.id,pendingSelectionSetAtMs:i.current.setAtMs});c!==a&&o(c)},[t,a,n,r]),{selectedDbSessionId:a,setSelectedDbSessionId:(0,Q.useCallback)(e=>{i.current={id:e,setAtMs:e?Date.now():null},o(e),e?localStorage.setItem(r,e):localStorage.removeItem(r)},[r])}}function wn({workspaceLoading:e,workspace:t,selectedDbSessionId:n,activeTabId:r,loadingSession:i,inputRef:a}){let o=(0,Q.useRef)(!1);(0,Q.useEffect)(()=>{!(o.current||e)&&t&&n&&r===`chat`&&!i&&(o.current=!0,setTimeout(()=>a.current?.focus(),0))},[n,r,i,e,t,a])}function Tn(e){return!!e}function En(e,t){return!e||e.showDismiss===!0&&t!==!1?null:e}function Dn(e){let{workspaceSummaries:t,sessions:n,selectedSessionId:r,liveRuntime:i,chatConnected:a}=e,o=new Map((t??[]).map(e=>[e.sessionId,e]));if(!(r&&a&&e.runtimeSessionId===r))return o;let s=n?.find(e=>e.id===r);if(!s)return o;let c=o.get(r);return o.set(r,{sessionId:r,name:c?.name??s.name??null,workflow:c?.workflow??s.workflow??null,model:c?.model??s.model??null,provider:c?.provider??s.provider,persistedStatus:c?.persistedStatus??s.status,runtimePhase:i.phase,processState:i.processState,activity:i.activity,updatedAt:i.updatedAt,lastExit:i.lastExit??c?.lastExit??null,errorMessage:i.errorMessage??c?.errorMessage??null}),o}function On(e){let t=!1;for(let n of e){if(n.source===`agent`)return!1;n.source===`user`&&(t=!0)}return t}var kn=[`improve`,`measure`,`critique`],An={improve:`Improve`,measure:`Measure`,critique:`Critique`},jn={implementing:`improve`,measuring:`measure`,evaluating:`measure`,critiquing:`critique`},Mn=new Set([`COMPLETED`,`STOPPED`,`MAX_ITERATIONS`,`FAILED`]),Nn={COMPLETED:`Completed`,STOPPED:`Stopped`,MAX_ITERATIONS:`Max iterations reached`,FAILED:`Failed`};function Pn(e){if(!e)return{improve:`pending`,measure:`pending`,critique:`pending`};let t=kn.indexOf(e);return Object.fromEntries(kn.map((e,n)=>[e,n<t?`completed`:n===t?`active`:`pending`]))}function Fn({state:e}){return(0,$.jsx)(`div`,{className:o(`w-2 h-2 rounded-full flex-shrink-0 transition-colors`,e===`completed`&&`bg-primary`,e===`active`&&`bg-primary animate-pulse`,e===`pending`&&`border border-muted-foreground/40 bg-transparent`)})}function In({currentStage:e}){let t=Pn(e);return(0,$.jsx)(`div`,{className:`flex items-center gap-1`,children:kn.map((e,n)=>(0,$.jsxs)(`div`,{className:`flex items-center gap-1`,children:[n>0&&(0,$.jsx)(Pe,{className:o(`h-3 w-3 flex-shrink-0`,t[kn[n-1]]===`completed`?`text-primary`:`text-muted-foreground/40`)}),(0,$.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,$.jsx)(Fn,{state:t[e]}),(0,$.jsx)(`span`,{className:o(`text-xs font-medium`,t[e]===`pending`&&`text-muted-foreground`),children:An[e]})]})]},e))})}function Ln(e,t){if(t<1)return null;let n=Date.now()-new Date(e).getTime();return n<=0?null:t/(n/36e5)}function Rn(e){return e>=10?`${Math.round(e)} iter/hr`:`${e.toFixed(1)} iter/hr`}function zn({currentIteration:e,maxIterations:t,acceptedCount:n,totalRejected:r,startedAt:i}){let a=t===0?``:` / ${t}`,o=i?Ln(i,e):null;return(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground shrink-0`,children:[(0,$.jsxs)(`span`,{children:[`Iteration `,e,a]}),o!==null&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`span`,{children:`·`}),(0,$.jsx)(`span`,{children:Rn(o)})]}),n>0&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`span`,{children:`·`}),(0,$.jsxs)(`span`,{className:`text-green-600`,children:[n,` accepted`]})]}),r>0&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`span`,{children:`·`}),(0,$.jsxs)(`span`,{children:[r,` rejected`]})]})]})}function Bn({status:e,progress:t,onDismiss:n}){let r=Nn[e]??e,i=t?.currentIteration??0,a=t?.acceptedCount??0,o=(t?.rejectedRegressionCount??0)+(t?.rejectedCritiqueCount??0)+(t?.crashedCount??0),s=t?.baselineMetricSummary&&t?.currentMetricSummary&&t.baselineMetricSummary!==t.currentMetricSummary;return(0,$.jsxs)(`div`,{className:`flex items-center gap-2.5 px-3 py-2 bg-muted/30 border-b text-xs`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-1.5 shrink-0`,children:[e===`COMPLETED`?(0,$.jsx)(F,{className:`h-3.5 w-3.5 text-green-500`}):e===`FAILED`?(0,$.jsx)(A,{className:`h-3.5 w-3.5 text-destructive`}):(0,$.jsx)(`div`,{className:`h-3.5 w-3.5 rounded-full border-2 border-muted-foreground/50`}),(0,$.jsx)(`span`,{className:`font-medium`,children:r})]}),(0,$.jsx)(`span`,{className:`text-muted-foreground`,children:`·`}),(0,$.jsxs)(`span`,{className:`text-muted-foreground`,children:[i,` iterations`]}),(0,$.jsx)(`span`,{className:`text-muted-foreground`,children:`·`}),(0,$.jsxs)(`span`,{className:`text-green-600 font-medium`,children:[a,` accepted`]}),(0,$.jsx)(`span`,{className:`text-muted-foreground`,children:`·`}),(0,$.jsxs)(`span`,{className:`text-muted-foreground`,children:[o,` rejected`]}),s&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`span`,{className:`text-muted-foreground`,children:`·`}),(0,$.jsxs)(`span`,{className:`font-mono text-muted-foreground truncate max-w-[240px]`,children:[t?.baselineMetricSummary,(0,$.jsx)(`span`,{className:`mx-1`,children:`→`}),(0,$.jsx)(`span`,{className:`text-foreground font-medium`,children:t?.currentMetricSummary})]})]}),(0,$.jsx)(`button`,{type:`button`,onClick:n,className:`ml-auto text-muted-foreground hover:text-foreground transition-colors leading-none`,"aria-label":`Dismiss`,children:`×`})]})}function Vn({progress:e,maxIterations:t}){let n=e?.currentIteration??0,r=e?.acceptedCount??0,i=(e?.rejectedRegressionCount??0)+(e?.rejectedCritiqueCount??0)+(e?.crashedCount??0);return(0,$.jsxs)(`div`,{className:`flex items-center gap-2.5 px-3 py-2 bg-amber-500/5 border-b border-amber-500/20 text-xs`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-1.5 shrink-0 text-amber-600`,children:[(0,$.jsx)(w,{className:`h-3 w-3`}),(0,$.jsx)(`span`,{className:`font-medium`,children:`Paused`})]}),e&&(0,$.jsx)(zn,{currentIteration:n,maxIterations:t,acceptedCount:r,totalRejected:i,startedAt:e.startedAt})]})}function Hn({progress:e,maxIterations:t}){let n=e?.currentIteration??0,r=e?.currentPhase??`idle`,i=e?.acceptedCount??0,o=(e?.rejectedRegressionCount??0)+(e?.rejectedCritiqueCount??0)+(e?.crashedCount??0);if(n===0)return(0,$.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2 bg-primary/5 border-b text-xs`,children:[(0,$.jsx)(a,{className:`h-3 w-3 animate-spin text-primary shrink-0`}),(0,$.jsx)(`span`,{className:`text-muted-foreground`,children:`Running baseline measurement...`})]});let s=jn[r]??null;return(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-4 px-3 py-2 bg-primary/5 border-b text-xs`,children:[(0,$.jsx)(In,{currentStage:s}),e&&(0,$.jsx)(zn,{currentIteration:n,maxIterations:t,acceptedCount:i,totalRejected:o,startedAt:e.startedAt})]})}function Un({workspaceId:e,mode:t}){let[n,r]=(0,Q.useState)(!1),[i,a]=(0,Q.useState)(e);e!==i&&(a(e),r(!1));let o=t===`AUTO_ITERATION`,{data:s}=O.autoIteration.getStatus.useQuery({workspaceId:e},{enabled:o,refetchInterval:e=>{let t=e.state.data?.status;return t===`RUNNING`||t===`PAUSED`||!t||t===`IDLE`?3e3:!1}});if(!o)return null;let c=s?.status;if(!c||c===`IDLE`)return null;let l=Mn.has(c);if(n&&l)return null;let u=s?.progress,d=s?.config?.maxIterations??0;return l?(0,$.jsx)(Bn,{status:c,progress:u,onDismiss:()=>r(!0)}):c===`PAUSED`?(0,$.jsx)(Vn,{progress:u,maxIterations:d}):(0,$.jsx)(Hn,{progress:u,maxIterations:d})}var Wn=.02,Gn=2;function Kn(e){if(e.length===0)return 0;let t=0;for(let n of e){let e=n/32768;t+=e*e}return Math.sqrt(t/e.length)}var qn=class{sustainedFramesToTrigger;loudFrameStreak=0;speaking=!1;constructor(e=Gn){this.sustainedFramesToTrigger=e}observe(e){return Kn(e)>=Wn?this.loudFrameStreak+=1:(this.loudFrameStreak=0,this.speaking=!1),!this.speaking&&this.loudFrameStreak>=this.sustainedFramesToTrigger&&(this.speaking=!0,!0)}isSpeaking(){return this.speaking}reset(){this.loudFrameStreak=0,this.speaking=!1}},Jn=`wss://api.deepgram.com/v1/listen`,Yn=16e3,Xn=`/audio-worklets/pcm-capture-processor.js`,Zn=128/Yn*1e3,Qn=[`please stop`,`hold on`,`cancel that`];function $n(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}var er=Qn.map(e=>RegExp(`\\b${$n(e)}\\b`));function tr(e){let t=e.trim().toLowerCase();return er.some(e=>e.test(t))}var nr=new Set([`Results`,`UtteranceEnd`]);function rr(e){if(typeof e!=`string`)return null;try{let t=JSON.parse(e);if(t&&typeof t==`object`&&nr.has(t.type))return t}catch{}return null}function ir({workletNode:e,silentGain:t,audioContext:n,mediaStream:r,socket:i}){e&&(e.port.onmessage=null,e.port.close(),e.disconnect()),t?.disconnect(),n?.close().catch(()=>void 0);for(let e of r?.getTracks()??[])e.stop();i&&(i.onclose=null,i.onmessage=null,i.readyState===WebSocket.OPEN&&i.send(JSON.stringify({type:`CloseStream`})),i.close())}function ar(e){return new Promise((t,n)=>{e.addEventListener(`open`,()=>t(),{once:!0}),e.addEventListener(`close`,e=>{n(Error(`Failed to connect to Deepgram (WebSocket closed, code ${e.code}${e.reason?`: ${e.reason}`:``}). Check the browser Network tab for the actual handshake response.`))},{once:!0})})}function or(e,t){let n=new URLSearchParams({model:`nova-3`,language:`en`,encoding:`linear16`,sample_rate:String(Yn),channels:`1`,interim_results:`true`,smart_format:`true`,vad_events:`true`,utterance_end_ms:String(t)});return new WebSocket(`${Jn}?${n.toString()}`,[`bearer`,e])}async function sr(e,t){await e.audioWorklet.addModule(Xn);let n=e.createMediaStreamSource(t),r=new AudioWorkletNode(e,`pcm-capture-processor`,{processorOptions:{targetSampleRate:Yn}}),i=e.createGain();return i.gain.value=0,n.connect(r),r.connect(i),i.connect(e.destination),{workletNode:r,silentGain:i}}function cr(){let e=``;return{appendFinal(t){return e=e?`${e} ${t}`:t,e},preview(t){return e?`${e} ${t}`:t},flush(){let t=e.trim();return e=``,t}}}function lr(e,t,n,r){let i=e.channel?.alternatives?.[0]?.transcript;if(i){if(n.runningRef.current&&tr(i)){t.flush(),r.current=!0,n.onSoftStop?.();return}if(!r.current){if(e.is_final){let e=t.appendFinal(i);n.onInterimTranscript?.(e);return}n.onInterimTranscript?.(t.preview(i))}}}function ur(e,t){let n=cr(),r={current:!1};e.onmessage=e=>{let i=rr(e.data);if(i?.type===`UtteranceEnd`){let e=n.flush(),i=r.current;r.current=!1,!i&&e&&t.onFinalTranscript(e);return}i?.type===`Results`&&lr(i,n,t,r)}}function dr(e,t){e.port.onmessage=e=>{t.socketRef.current?.readyState===WebSocket.OPEN&&t.socketRef.current.send(e.data);let n=t.speechDetectorRef.current;if(!n)return;let r=n.isSpeaking();n.observe(new Int16Array(e.data))?t.onSpeechDetected?.():r&&!n.isSpeaking()&&t.onSpeechEnded?.()}}function fr(e,t){e.onclose=e=>{t.isStale()||(t.cleanup(),t.setError(`Lost connection to Deepgram (code ${e.code}). Tap the microphone to reconnect.`))}}async function pr(e){let t=null,n=null,r=new AudioContext({sampleRate:Yn});r.resume().catch(()=>void 0);let i=null,a=null,o=()=>ir({workletNode:i,silentGain:a,audioContext:r,mediaStream:n,socket:t});try{let{accessToken:s}=await e.mintGrantToken.mutateAsync();if(e.isStale()||(t=or(s,e.utteranceEndMs),ur(t,e),await ar(t),e.isStale()))return o(),null;let c={current:null};if(t.addEventListener(`close`,e=>{c.current=e}),n=await navigator.mediaDevices.getUserMedia({audio:!0}),e.isStale())return o(),null;let l=await sr(r,n);if(e.isStale())return o(),null;if(i=l.workletNode,a=l.silentGain,c.current)throw Error(`Lost connection to Deepgram (code ${c.current.code}) while starting capture. Tap the microphone to reconnect.`);let u=new qn(Math.max(1,Math.round(e.bargeInSustainedMs/Zn)));return dr(i,{...e,speechDetectorRef:{current:u}}),fr(t,e),{socket:t,stream:n,audioContext:r,workletNode:i,silentGain:a,speechDetector:u}}catch(e){throw o(),e}}function mr({onFinalTranscript:e,onInterimTranscript:t,running:n,onSoftStop:r,onSpeechDetected:i,onSpeechEnded:a,utteranceEndMs:o=mt,bargeInSustainedMs:s=16}){let[c,l]=(0,Q.useState)(!1),[u,d]=(0,Q.useState)(!1),[f,p]=(0,Q.useState)(null),m=O.voice.mintGrantToken.useMutation(),h=(0,Q.useRef)(null),g=(0,Q.useRef)(null),_=(0,Q.useRef)(null),v=(0,Q.useRef)(null),y=(0,Q.useRef)(null),b=(0,Q.useRef)(null),x=(0,Q.useRef)(n??!1);x.current=n??!1;let S=(0,Q.useRef)(0),C=(0,Q.useCallback)(()=>{ir({workletNode:g.current,silentGain:_.current,audioContext:h.current,mediaStream:v.current,socket:y.current}),g.current=null,_.current=null,h.current=null,v.current=null,y.current=null,b.current=null,l(!1)},[]);return{isCapturing:c,isConnecting:u,error:f,start:(0,Q.useCallback)(async()=>{S.current+=1;let n=S.current,c=()=>S.current!==n;p(null),d(!0);try{let n=await pr({mintGrantToken:m,isStale:c,runningRef:x,onSoftStop:r,onFinalTranscript:e,onInterimTranscript:t,onSpeechDetected:i,onSpeechEnded:a,socketRef:y,cleanup:C,setError:p,utteranceEndMs:o,bargeInSustainedMs:s});if(!n)return;y.current=n.socket,v.current=n.stream,h.current=n.audioContext,g.current=n.workletNode,_.current=n.silentGain,b.current=n.speechDetector,l(!0)}catch(e){c()||p(e instanceof Error?e.message:`Failed to start voice capture`)}finally{c()||d(!1)}},[C,m,e,t,r,i,a,o,s]),stop:(0,Q.useCallback)(()=>{S.current+=1,C(),d(!1)},[C])}}Qe(`type`,[K({type:G(`soft_stop`)})]);var hr=K({type:G(`audio_chunk`),data:J()}),gr=K({type:G(`clear_playback`)}),_r=Qe(`type`,[hr,gr]),vr=24e3,yr=.3,br=120;function xr(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return new Int16Array(n.buffer)}function Sr({sessionId:e,enabled:t}){let[n,r]=(0,Q.useState)(!1),i=(0,Q.useRef)(null),a=(0,Q.useRef)(0),o=(0,Q.useRef)(new Set),s=(0,Q.useRef)(!1),c=(0,Q.useRef)(!1),l=(0,Q.useRef)([]),u=(0,Q.useRef)(null),d=(0,Q.useCallback)(()=>{u.current!==null&&(clearTimeout(u.current),u.current=null),l.current=[]},[]),f=(0,Q.useCallback)(e=>{let t=i.current;if(!t)return;t.state===`suspended`&&!s.current&&(s.current=!0,t.resume().catch(()=>void 0).finally(()=>{s.current=!1}));let n=new Float32Array(e.length);for(let t=0;t<e.length;t++)n[t]=(e[t]??0)/32768;let c=t.createBuffer(1,n.length,vr);c.copyToChannel(n,0);let l=t.createBufferSource();l.buffer=c,l.connect(t.destination);let u=a.current<=t.currentTime?t.currentTime+yr:a.current;l.start(u),a.current=u+c.duration,o.current.add(l),r(!0),l.onended=()=>{o.current.delete(l),o.current.size===0&&r(!1)}},[]),p=(0,Q.useCallback)(()=>{u.current=null;let e=l.current;if(l.current=[],e.length===0)return;let t=e.reduce((e,t)=>e+t.length,0),n=new Int16Array(t),r=0;for(let t of e)n.set(t,r),r+=t.length;f(n)},[f]),m=(0,Q.useCallback)(e=>{l.current.push(e),u.current===null&&(u.current=setTimeout(p,br))},[p]),h=(0,Q.useCallback)(()=>{d();for(let e of o.current)try{e.stop()}catch{}o.current.clear(),a.current=i.current?.currentTime??0,r(!1)},[d]),g=(0,Q.useCallback)(()=>{i.current||(i.current=new AudioContext,a.current=0),i.current.resume().catch(()=>void 0)},[]),_=(0,Q.useCallback)(e=>{if(e.type===`audio_chunk`){if(c.current)return;m(xr(e.data))}else e.type===`clear_playback`&&h()},[m,h]),v=(0,Q.useCallback)(()=>{c.current=!0,h()},[h]),y=(0,Q.useCallback)(()=>{c.current=!1},[]),b=t&&e?Ze(`/voice`,{sessionId:e}):null,{send:x}=Me({url:b,schema:_r,onMessage:_}),S=(0,Q.useCallback)(()=>{x({type:`soft_stop`})},[x]);return(0,Q.useEffect)(()=>{if(t&&e)return g(),()=>{d();for(let e of o.current)try{e.stop()}catch{}o.current.clear(),i.current?.close().catch(()=>void 0),i.current=null,a.current=0,c.current=!1,r(!1)}},[t,e,d,g]),{isSpeaking:n,sendSoftStop:S,stopPlayback:h,primeAudioContext:g,beginBargeIn:v,endBargeIn:y}}function Cr(e,t,n,r){return e||t?e?`connecting`:n?`speaking`:r?`thinking`:`listening`:`off`}function wr(e,t,n){return n?{label:t?`Voice On`:`Voice Off`,title:n}:e?{label:`Connecting…`,title:`Connecting to Deepgram — speech is not captured yet. Click to cancel.`}:t?{label:`Voice On`,title:`Exit voice mode`}:{label:`Voice Off`,title:`Enter voice mode`}}var Tr={off:``,connecting:`Connecting`,speaking:`Speaking`,thinking:`Thinking`,listening:`Listening`};function Er({phase:e}){return e===`off`?null:(0,$.jsxs)(`output`,{className:`flex items-center gap-1.5 text-xs text-muted-foreground`,children:[(0,$.jsx)(`span`,{className:o(`h-1.5 w-1.5 rounded-full`,e===`connecting`&&`animate-pulse bg-amber-500`,e===`speaking`&&`animate-pulse bg-blue-500`,e===`thinking`&&`animate-pulse bg-purple-500`,e===`listening`&&`bg-green-500`)}),Tr[e]]})}function Dr({sessionId:e,onFinalTranscript:t,running:n,disabled:r}){let{data:o}=O.voice.getConfig.useQuery(),[s,c]=(0,Q.useState)(!1),{isSpeaking:l,sendSoftStop:u,primeAudioContext:d,beginBargeIn:f,endBargeIn:p}=Sr({sessionId:e,enabled:s}),{isCapturing:m,isConnecting:h,error:g,start:_,stop:v}=mr({onFinalTranscript:(0,Q.useCallback)(e=>t(e,{voiceMode:!0}),[t]),running:n,onSoftStop:u,onSpeechDetected:f,onSpeechEnded:p,utteranceEndMs:o?.utteranceEndMs,bargeInSustainedMs:o?.bargeInSustainedMs});(0,Q.useEffect)(()=>()=>v(),[v]);let y=Cr(h,m,l,!!n&&!l),b=(0,Q.useRef)(`off`);(0,Q.useEffect)(()=>{b.current===`listening`&&y===`thinking`&&dt(`sounds/voice-thinking-start.mp3`,{volume:.3}),b.current=y},[y]),(0,Q.useEffect)(()=>(window.dispatchEvent(new CustomEvent(`voice-mode-changed`,{detail:{active:m}})),()=>{window.dispatchEvent(new CustomEvent(`voice-mode-changed`,{detail:{active:!1}}))}),[m]),(0,Q.useEffect)(()=>{g&&(X.error(g),c(!1))},[g]);let x=!!(o?.enabled&&o.hasApiKey);(0,Q.useEffect)(()=>{o!==void 0&&!x&&(m||h)&&(v(),c(!1))},[o,x,m,h,v]);let S=(0,Q.useCallback)(()=>{m||h?(v(),c(!1)):(d(),c(!0),_())},[m,h,_,v,d]);if(!x)return null;let C=wr(h,m,g);return(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[(0,$.jsxs)(i,{type:`button`,variant:m?`default`:`outline`,size:`sm`,className:`shrink-0`,disabled:!(m||h)&&(r||!e),title:C.title,onClick:S,children:[h?(0,$.jsx)(a,{className:`h-4 w-4 animate-spin`}):m?(0,$.jsx)(Ge,{className:l?`h-4 w-4 animate-pulse`:`h-4 w-4`}):(0,$.jsx)(wt,{className:`h-4 w-4`}),C.label]}),(0,$.jsx)(Er,{phase:y})]})}function Or(e){let t=O.useUtils(),n=O.workspace.retryInit.useMutation({onSuccess:()=>{t.workspace.getInitStatus.invalidate({id:e})},onError:e=>{X.error(e.message)}});return{retry:(0,Q.useCallback)(()=>{n.mutate({id:e,useExistingBranch:ln(e)||void 0})},[n,e]),retryInit:n}}function kr(e,t){return e===`starting`||t}function Ar({loadingSession:e,stopping:t,displayStartingState:n,running:r,pendingRequest:i,sessionPhase:a,sessionRuntime:o,messageCount:s}){return e?`Loading session...`:t?`Stopping...`:n&&!r?`Agent is starting...`:o.phase===`error`?`Agent failed to start. Type a message to retry...`:i.type===`permission`&&i.request.toolName===`ExitPlanMode`?`Approve the plan or keep planning...`:r?`Message will be queued...`:a===`ready`&&s===0?`Type a message to start the agent...`:`Type a message...`}var jr=(0,Q.memo)(function({banner:e,retryPending:t,onRetry:n,onPlay:r}){let o=e.showRetry||e.showPlay;return(0,$.jsx)(`div`,{className:`px-4 pt-4`,children:(0,$.jsxs)(`div`,{className:[`rounded-md border p-3 text-sm flex items-start gap-3`,C(e.kind)].join(` `),children:[e.kind===`info`?(0,$.jsx)(a,{className:`h-4 w-4 mt-0.5 shrink-0 animate-spin`}):(0,$.jsx)(Je,{className:`h-4 w-4 mt-0.5 shrink-0`}),(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`p`,{children:e.message}),o&&(0,$.jsxs)(`div`,{className:`mt-2 flex items-center gap-2`,children:[e.showRetry&&(0,$.jsxs)(i,{size:`sm`,variant:`outline`,disabled:t,onClick:n,children:[(0,$.jsx)(je,{className:`h-3.5 w-3.5 mr-1.5`}),`Retry setup`]}),e.showPlay&&(0,$.jsxs)(i,{size:`sm`,onClick:r,children:[(0,$.jsx)(d,{className:`h-3.5 w-3.5 mr-1.5`}),`Dispatch queued messages`]})]})]})]})})}),Mr=(0,Q.memo)(function(e){let t=e.autoStartPending??!1,{retry:n,retryInit:r}=Or(e.workspaceId),a=de(e.messages,{filterDuplicateResults:!0}),o=(0,Q.useMemo)(()=>new Set(e.queuedMessages.map(e=>e.id)),[e.queuedMessages]),s=(0,Q.useCallback)(()=>{e.isNearBottom&&e.viewportRef.current&&e.viewportRef.current.scrollTo({top:e.viewportRef.current.scrollHeight,behavior:`instant`})},[e.isNearBottom,e.viewportRef]),c=e.sessionStatus.phase===`running`,l=e.sessionStatus.phase===`stopping`,u=kr(e.sessionStatus.phase,t),d=e.sessionStatus.phase===`loading`,f=e.chatCapabilities.rewind.enabled,p=e.pendingRequest.type===`permission`?e.pendingRequest.request.requestId:null,m=e.pendingRequest.type===`permission`&&e.pendingRequest.request.toolName===`ExitPlanMode`;(0,Q.useEffect)(()=>{if(!(m&&p))return;let t=document.activeElement;t&&t!==document.body||e.inputRef?.current?.focus()},[m,p,e.inputRef]);let h=Ar({loadingSession:d,stopping:l,displayStartingState:u,running:c,pendingRequest:e.pendingRequest,sessionPhase:e.sessionStatus.phase,sessionRuntime:e.sessionRuntime,messageCount:e.messages.length}),g=qe(e.sessionRuntime),_=e.sessionRuntime.phase===`error`&&g?{kind:`error`,message:g,showRetry:!1,showPlay:!1,showDismiss:!1}:null;return(0,$.jsxs)(`div`,{className:`relative flex h-full flex-col overflow-hidden`,children:[(0,$.jsxs)(`div`,{ref:e.viewportRef,className:`flex-1 min-h-0 overflow-y-auto`,children:[_&&(0,$.jsx)(jr,{banner:_,retryPending:!1,onRetry:()=>void 0,onPlay:()=>void 0}),e.initBanner&&e.initBanner.kind!==`info`&&(0,$.jsx)(jr,{banner:e.initBanner,retryPending:r.isPending,onRetry:n,onPlay:e.resumeQueuedMessages}),(0,$.jsx)(oe,{workspaceId:e.workspaceId,messages:a,running:c,startingSession:u,loadingSession:d,latestThinking:e.latestThinking??null,scrollContainerRef:e.viewportRef,onScroll:e.onScroll,messagesEndRef:e.messagesEndRef,isNearBottom:e.isNearBottom,queuedMessageIds:o,onRemoveQueuedMessage:e.removeQueuedMessage,isCompacting:e.isCompacting,getUuidForMessageId:e.getUuidForMessageId,onRewindToMessage:f?e.startRewindPreview:void 0,resolveWorkspaceFileLink:e.resolveWorkspaceFileLink,onWorkspaceFileLink:e.onWorkspaceFileLink,initBanner:e.initBanner})]}),!e.isNearBottom&&(0,$.jsx)(`div`,{className:`absolute bottom-32 left-1/2 z-10 -translate-x-1/2`,children:(0,$.jsxs)(i,{variant:`secondary`,size:`sm`,onClick:e.scrollToBottom,className:`rounded-full shadow-lg`,children:[(0,$.jsx)(ke,{className:`h-4 w-4 mr-1`}),`Scroll to bottom`]})}),(0,$.jsxs)(`div`,{className:`z-20 flex max-h-full min-h-0 flex-col border-t bg-background pb-safe`,children:[(0,$.jsx)(j,{permission:e.pendingRequest.type===`permission`?e.pendingRequest.request:null,onApprove:e.approvePermission,className:`min-h-0 shrink overflow-y-auto`}),(0,$.jsx)(_e,{question:e.pendingRequest.type===`question`?e.pendingRequest.request:null,onAnswer:e.answerQuestion}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[(0,$.jsx)(Dr,{sessionId:e.sessionId,onFinalTranscript:e.sendMessage,running:c,disabled:!e.connected||d}),(0,$.jsx)(ve,{className:`flex-1 min-w-0`,onSend:e.sendMessage,onStop:e.stopChat,disabled:!e.connected||d,running:c,stopping:l,inputRef:e.inputRef,placeholder:h,settings:e.chatSettings,capabilities:e.chatCapabilities,onSettingsChange:e.updateSettings,value:e.inputDraft,onChange:e.setInputDraft,attachments:e.inputAttachments,onAttachmentsChange:e.setInputAttachments,onHeightChange:s,pendingMessageCount:e.pendingMessages.size,slashCommands:e.slashCommands,slashCommandsLoaded:e.slashCommandsLoaded,tokenStats:e.tokenStats,workspaceId:e.workspaceId,acpConfigOptions:e.acpConfigOptions,onSetConfigOption:e.setConfigOption})]})]}),(0,$.jsx)(Se,{rewindPreview:e.rewindPreview,onConfirm:e.confirmRewind,onCancel:e.cancelRewind})]})});function Nr({output:e,className:t,emptyMessage:n=`Waiting for output...`}){let r=(0,Q.useRef)(null);return(0,Q.useEffect)(()=>{r.current&&e!==null&&(r.current.scrollTop=r.current.scrollHeight)},[e]),(0,$.jsx)(p,{viewportRef:r,className:t,children:(0,$.jsx)(`pre`,{className:`p-2 text-xs font-mono text-zinc-300 whitespace-pre-wrap break-words`,children:e||(0,$.jsx)(`span`,{className:`text-zinc-500 italic`,children:n})})})}function Pr({workspaceId:e,initErrorMessage:t,initOutput:n,hasStartupScript:r,showDismiss:o=!1,onDismiss:s}){let[c,l]=(0,Q.useState)(!1),{retry:u,retryInit:d}=Or(e);return(0,$.jsxs)(`div`,{className:`border-b bg-destructive/10 px-4 py-2`,children:[(0,$.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 items-start gap-2 text-sm text-destructive`,children:[(0,$.jsx)(Je,{className:`mt-0.5 h-3 w-3 shrink-0`}),(0,$.jsxs)(`span`,{className:`min-w-0 break-words whitespace-normal`,children:[`Init script failed`,t?`: ${t}`:``]})]}),(0,$.jsxs)(`div`,{className:`flex shrink-0 flex-wrap items-center gap-1 self-start sm:justify-end`,children:[r&&n&&(0,$.jsxs)(i,{variant:`ghost`,size:`sm`,className:`h-6 px-2 text-xs`,onClick:()=>l(!c),children:[c?(0,$.jsx)(Fe,{className:`h-3 w-3 mr-1`}):(0,$.jsx)(Pe,{className:`h-3 w-3 mr-1`}),c?`Hide output`:`Show output`]}),(0,$.jsx)(i,{variant:`outline`,size:`sm`,className:`h-6 px-2 text-xs`,onClick:u,disabled:d.isPending,children:d.isPending?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(a,{className:`h-3 w-3 mr-1 animate-spin`}),`Retrying...`]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(je,{className:`h-3 w-3 mr-1`}),`Retry`]})}),o&&(0,$.jsx)(i,{variant:`ghost`,size:`sm`,className:`h-6 w-6 p-0`,onClick:s,"aria-label":`Dismiss`,children:(0,$.jsx)($e,{className:`h-3 w-3`})})]})]}),c&&r&&(0,$.jsx)(Nr,{output:n,className:`mt-2 h-32 w-full rounded-md border bg-zinc-950`})]})}function Fr(){return(0,$.jsx)(`div`,{className:`absolute inset-0 z-50 flex items-center justify-center bg-background/95 backdrop-blur-md`,children:(0,$.jsxs)(`div`,{className:`flex items-center gap-3 p-8`,children:[(0,$.jsx)(`div`,{className:`h-5 w-5 animate-spin rounded-full border-2 border-muted-foreground/40 border-t-muted-foreground`}),(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Archiving...`})]})})}var Ir=`Take a screenshot of the workspace dev app using Playwright MCP tools. Read factory-factory.json for the scripts.run command, pick a free port, replace {port}, and start the dev server in the background. Once ready, determine the most relevant screen and save a screenshot to .factory-factory/screenshots/ with a descriptive filename.`;function Lr({workspaceId:e,isScriptFailed:t,workspaceInitStatus:n,setupWarningDismissed:r,dismissSetupWarning:i}){let a=En(n?.chatBanner,r);return t&&a?(0,$.jsx)(Pr,{workspaceId:e,initErrorMessage:n?.initErrorMessage??null,initOutput:n?.initOutput??null,hasStartupScript:n?.hasStartupScript??!1,showDismiss:a.showDismiss,onDismiss:i}):null}function Rr({workspaceState:e,header:t,sessionTabs:n,chat:r,rightPanelVisible:a,setRightPanelVisible:o,archiveDialog:s}){let c=z(),[l,u]=(0,Q.useState)(!1),d=n.sessions?.findIndex(e=>e.id===n.selectedDbSessionId)??-1,f=d>=0?n.sessions?.[d]:void 0,p=f?f.name?.trim()||`Session ${d+1}`:null,m=(0,Q.useCallback)(async()=>{u(!0);try{await t.handleQuickAction(`Take Screenshots`,Ir)}catch{}finally{u(!1)}},[t.handleQuickAction]),h=(0,Q.useCallback)(e=>{p&&n.selectedDbSessionId&&e.parentSessionId===n.selectedDbSessionId&&(n.handleOpenSubagentTab({...e,parentSessionName:p}),c&&o(!1))},[c,p,o,n.handleOpenSubagentTab,n.selectedDbSessionId]);if(e.workspaceLoading)return(0,$.jsx)(tt,{message:`Loading workspace...`});if(!e.workspace)return(0,$.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full gap-4`,children:[(0,$.jsx)(`p`,{className:`text-destructive`,children:`Workspace not found`}),(0,$.jsx)(i,{variant:`outline`,onClick:e.handleBackToWorkspaces,children:`Workspaces`})]});let g=(0,$.jsx)(`div`,{className:`h-full flex flex-col min-w-0`,children:(0,$.jsx)(E,{workspaceId:e.workspaceId,sessions:n.sessions,selectedSessionId:n.selectedDbSessionId,sessionSummariesById:n.sessionSummariesById,isCreatingSession:t.isCreatingSession,isDeletingSession:n.isDeletingSession,onSelectSession:n.handleSelectSession,onCreateSession:n.handleNewChat,onCloseSession:n.handleCloseChatSession,onRestartSession:n.handleRestartSession,onQuickAction:n.handleQuickAction,maxSessions:n.maxSessions,hasWorktreePath:n.hasWorktreePath,selectedProvider:n.selectedProvider,setSelectedProvider:n.setSelectedProvider,children:(0,$.jsx)(Mr,{...r})})}),_=(0,$.jsx)(v,{workspaceId:e.workspaceId,messages:r.messages,isTakingScreenshots:l,onTakeScreenshots:m,selectedSessionId:n.selectedDbSessionId,selectedSessionName:p,selectedSessionReady:n.selectedSessionReady,onOpenSubagent:h});return(0,$.jsxs)(`div`,{className:`relative flex h-full flex-col overflow-hidden`,children:[t.archivePending&&(0,$.jsx)(Fr,{}),(0,$.jsx)(Lr,{workspaceId:e.workspaceId,isScriptFailed:e.isScriptFailed,workspaceInitStatus:e.workspaceInitStatus,setupWarningDismissed:e.setupWarningDismissed,dismissSetupWarning:e.dismissSetupWarning}),(0,$.jsx)(Un,{workspaceId:e.workspaceId,mode:e.workspace?.mode}),c?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`div`,{className:`flex-1 min-h-0`,children:g}),(0,$.jsx)(ye,{open:a,onOpenChange:o,children:(0,$.jsxs)(se,{side:`bottom`,className:`h-[85dvh] w-full max-w-none p-0 pt-12 [&>button]:right-3 [&>button]:top-3 [&>button]:z-30`,children:[(0,$.jsxs)(fe,{className:`sr-only`,children:[(0,$.jsx)(le,{children:`Workspace Side Panel`}),(0,$.jsx)(ue,{children:`Browse files, diffs, tasks, logs, and terminals for this workspace.`})]}),(0,$.jsx)(`div`,{className:`h-full`,children:_})]})})]}):(0,$.jsxs)(y,{direction:`horizontal`,className:`flex-1 overflow-hidden`,autoSaveId:`workspace-main-panel`,children:[(0,$.jsx)(ne,{defaultSize:`70%`,minSize:`30%`,children:g}),a&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(T,{}),(0,$.jsx)(ne,{defaultSize:`30%`,minSize:`15%`,maxSize:`50%`,children:(0,$.jsx)(`div`,{className:`h-full border-l`,children:_})})]})]}),(0,$.jsx)(re,{open:s.open,onOpenChange:s.setOpen,activeChildCount:s.activeChildCount,onConfirm:s.onConfirm})]})}function zr(){let{slug:e=``,id:t=``}=l(),n=c(),r=O.useUtils(),{workspace:i,workspaceLoading:a,sessions:o,initialDbSessionId:s,maxSessions:u}=un({workspaceId:t});(0,Q.useEffect)(()=>{if(i?.status===`ARCHIVING`||i?.status===`ARCHIVED`){if(e){n(`/projects/${e}/workspaces`,{replace:!0});return}n(`/projects`,{replace:!0})}},[i?.status,e,n]);let{rightPanelVisible:d,setRightPanelVisible:f,activeTabId:p,clearScrollState:g,openTab:_,openSubagentTab:v}=ie(),{data:y}=O.userSettings.get.useQuery(),{workspaceInitStatus:b,isScriptFailed:x,setupWarningDismissed:S,dismissSetupWarning:C}=yn(t,i,r);(0,Q.useEffect)(()=>{let e=b?.phase;(e===`READY`||e===`ARCHIVED`)&&cn(t)},[t,b?.phase]);let w=(0,Q.useMemo)(()=>o?.map(e=>e.id)??[],[o]),{selectedDbSessionId:T,setSelectedDbSessionId:ee}=Cn(t,s??null,w),[E,te]=(0,Q.useState)(!1),[ne,D]=(0,Q.useState)(!1),re=i?.creationSource!==`CHILD_WORKSPACE`,k=h(i?.defaultSessionProvider,y?.defaultSessionProvider),[A,oe]=(0,Q.useState)(k);(0,Q.useEffect)(()=>{oe(k)},[k]);let se=De(i),{data:le}=O.workspace.listChildren.useQuery({parentWorkspaceId:t},{enabled:!se&&E&&re}),ue=le?.length??0,{messages:de,connected:fe,sessionStatus:j,processStatus:pe,sessionRuntime:me,runtimeSessionId:he,pendingRequest:ge,chatSettings:M,chatCapabilities:_e,inputDraft:ve,inputAttachments:ye,queuedMessages:be,removeQueuedMessage:xe,resumeQueuedMessages:Se,latestThinking:Ce,pendingMessages:we,isCompacting:Te,slashCommands:Ee,slashCommandsLoaded:Oe,tokenStats:ke,rewindPreview:je,sendMessage:Me,stopChat:Ne,restartSession:Pe,approvePermission:Fe,answerQuestion:N,updateSettings:Ie,setInputDraft:Le,setInputAttachments:P,startRewindPreview:Re,confirmRewind:ze,cancelRewind:Be,getUuidForMessageId:Ve,acpConfigOptions:F,setConfigOption:He,inputRef:I,messagesEndRef:L}=ce({dbSessionId:T}),Ue=j.phase===`loading`,We=i?.creationSource===`GITHUB_ISSUE`&&T!==null&&(j.phase===`loading`||j.phase===`ready`)&&pe.state===`unknown`&&On(de),R=(0,Q.useMemo)(()=>Dn({workspaceSummaries:i?.sessionSummaries,sessions:o,selectedSessionId:T,liveRuntime:me,runtimeSessionId:he,chatConnected:fe}),[i?.sessionSummaries,o,T,me,he,fe]),z=(0,Q.useMemo)(()=>Array.from(R.values()).some(e=>Ye(e)),[R]),B=Tn(T),V=vn(t,i,z,r),{createSession:Ge,deleteSession:Ke,archiveWorkspace:H,openInIde:U,availableIdes:W,preferredIde:qe,handleSelectSession:Je,handleCloseSession:G,handleNewChat:K,handleQuickAction:Xe}=dn({workspaceId:t,slug:e,sessions:o,inputRef:I,selectedDbSessionId:T,setSelectedDbSessionId:ee,selectedModel:M.selectedModel,selectedProvider:A,onArchiveGitIndexLocked:()=>D(!0)}),q=(0,Q.useCallback)((e=!1)=>{H.mutate(e?{id:t,removeGitIndexLock:!0}:{id:t})},[H,t]),J=(0,Q.useCallback)(()=>{if(se){q();return}te(!0)},[se,q]),Ze=(0,Q.useCallback)(()=>n(`/projects/${e}/workspaces`),[n,e]),Y=(0,Q.useRef)(null),Qe=(0,Q.useRef)(null),{onScroll:$e,isNearBottom:X,scrollToBottom:et}=Ae(Y),tt=(0,Q.useCallback)(e=>{g(`chat-${e}`),G(e)},[g,G]),nt=T?`chat-${T}`:null,rt=En(b?.chatBanner,S),{persistCurrent:Z}=ae({tabId:nt,mode:`chat`,viewportRef:Y,enabled:p===`chat`&&!!nt,restoreDeps:[de.length,p,nt],autoStickToBottom:!0,stickToBottomThreshold:48,onRestore:$e});(0,Q.useEffect)(()=>{let e=Qe.current;e&&e!==T&&Z(`chat-${e}`),Qe.current=T},[T,Z]);let it=(0,Q.useCallback)(()=>{$e(),Z()},[$e,Z]),at=(0,Q.useCallback)(e=>kt(e,i?.worktreePath),[i?.worktreePath]),ot=(0,Q.useCallback)(e=>{_(`file`,e,e.split(`/`).pop()??e)},[_]);wn({workspaceLoading:a,workspace:i,selectedDbSessionId:T,activeTabId:p,loadingSession:Ue,inputRef:I});let st={workspaceId:t,sessionId:T,resolveWorkspaceFileLink:at,onWorkspaceFileLink:ot,messages:de,sessionStatus:j,sessionRuntime:me,messagesEndRef:L,viewportRef:Y,isNearBottom:X,scrollToBottom:et,onScroll:it,pendingRequest:ge,approvePermission:Fe,answerQuestion:N,connected:fe,sendMessage:Me,stopChat:Ne,inputRef:I,chatSettings:M,chatCapabilities:_e,updateSettings:Ie,inputDraft:ve,setInputDraft:Le,inputAttachments:ye,setInputAttachments:P,queuedMessages:be,removeQueuedMessage:xe,resumeQueuedMessages:Se,latestThinking:Ce,pendingMessages:we,isCompacting:Te,slashCommands:Ee,slashCommandsLoaded:Oe,tokenStats:ke,rewindPreview:je,startRewindPreview:Re,confirmRewind:ze,cancelRewind:Be,getUuidForMessageId:Ve,acpConfigOptions:F,setConfigOption:He,autoStartPending:We,initBanner:rt};return(0,$.jsxs)($.Fragment,{children:[i&&(0,$.jsx)($t,{workspace:i,workspaceId:t,availableIdes:W,preferredIde:qe,openInIde:U,archivePending:H.isPending,onArchiveRequest:J,handleQuickAction:Xe,running:z,isCreatingSession:Ge.isPending,hasChanges:V}),(0,$.jsx)(Rr,{workspaceState:{workspaceLoading:a,workspace:i,workspaceId:t,handleBackToWorkspaces:Ze,isScriptFailed:x,workspaceInitStatus:b,setupWarningDismissed:S,dismissSetupWarning:C},header:{archivePending:H.isPending,availableIdes:W,preferredIde:qe,openInIde:U,handleArchiveRequest:J,handleQuickAction:Xe,running:z,isCreatingSession:Ge.isPending,hasChanges:V},sessionTabs:{sessions:o,selectedDbSessionId:T,selectedSessionReady:B,sessionSummariesById:R,isDeletingSession:Ke.isPending,handleSelectSession:Je,handleNewChat:K,handleCloseChatSession:tt,handleQuickAction:Xe,handleRestartSession:Pe,handleOpenSubagentTab:v,maxSessions:u,hasWorktreePath:!!i?.worktreePath,selectedProvider:A,setSelectedProvider:oe},chat:st,rightPanelVisible:d,setRightPanelVisible:f,archiveDialog:{open:E,setOpen:te,activeChildCount:ue,onConfirm:()=>q()}}),(0,$.jsx)(m,{open:ne,onOpenChange:D,onRetry:()=>q(),onRemoveLockAndArchive:()=>q(!0),isPending:H.isPending})]})}function Br(){let{id:e=``}=l();return(0,$.jsx)(_,{workspaceId:e,children:(0,$.jsx)(Q.Suspense,{fallback:(0,$.jsx)(tt,{message:`Loading chat...`}),children:(0,$.jsx)(zr,{},e)})},e)}export{Br as default};
|