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,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./mermaid-parser.core-
|
|
1
|
+
import{n as e}from"./mermaid-parser.core-CpkwJ-8U.js";import{n as t}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as n}from"./src-B6xuSHsQ.js";import{D as r,H as i,K as a,U as o,a as s,b as c,c as l,f as u,v as d,w as f,y as p}from"./chunk-DU6HZSFF-CHHMX1CR.js";import{i as m}from"./chunk-75Z2AOVW-962-yyBD.js";import{t as h}from"./chunk-JWPE2WC7-DVXcaiue.js";import{p as g}from"./mermaid-diagram-kbWN558y.js";var _=t(()=>({domains:new Map,transitions:[]}),`createDefaultData`),v=_(),y={getDomains:t(()=>v.domains,`getDomains`),getTransitions:t(()=>v.transitions,`getTransitions`),setDomains:t(e=>{if(e)for(let t of e){let e=t.domain,n=(t.items??[]).map(e=>({label:e.label}));v.domains.set(e,{name:e,items:n})}},`setDomains`),setTransitions:t(e=>{e&&(v.transitions=e.filter(e=>e.from!==e.to||(n.warn(`Cynefin: self-loop transition on domain "${e.from}" is not meaningful and will be skipped.`),!1)).map(e=>({from:e.from,to:e.to,label:e.label||void 0})))},`setTransitions`),getConfig:t(()=>m({...u.cynefin,...c().cynefin}),`getConfig`),clear:t(()=>{s(),v=_()},`clear`),setAccTitle:o,getAccTitle:p,setDiagramTitle:a,getDiagramTitle:f,getAccDescription:d,setAccDescription:i},b=t(e=>{h(e,y),y.setDomains(e.domains),y.setTransitions(e.transitions)},`populate`),x={parse:t(async t=>{let r=await e(`cynefin`,t);n.debug(r),b(r)},`parse`)};function S(e){let t=e+1831565813|0;return t=Math.imul(t^t>>>15,t|1),t^=t+Math.imul(t^t>>>7,t|61),((t^t>>>14)>>>0)/4294967296}t(S,`seededRandom`);function C(e){let t=0;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);t=(t<<5)-t+r,t|=0}return t}t(C,`hashString`);function w(e,t){return typeof e==`number`&&Number.isFinite(e)&&e!==0?e:C(t)}t(w,`resolveSeed`);function T(e,t,n,r){let i=e/2,a=r??e*.015,o=t/7,s=[];for(let e=0;e<=7;e++){let t=S(n+e*17)*a*2-a;s.push({x:i+t,y:e*o})}let c=`M${s[0].x},${s[0].y}`;for(let e=0;e<s.length-1;e++){let t=s[e],r=s[e+1],i=(t.y+r.y)/2,o=e%2==0?1:-1,l=a*1.5*o*S(n+e*31+7),u=t.x+l,d=i,f=r.x-l;c+=` C${u},${d} ${f},${i} ${r.x},${r.y}`}return c}t(T,`generateFoldPath`);function E(e,t,n,r){let i=t/2,a=r??t*.015,o=e/7,s=[];for(let e=0;e<=7;e++){let t=S(n+e*23)*a*2-a;s.push({x:e*o,y:i+t})}let c=`M${s[0].x},${s[0].y}`;for(let e=0;e<s.length-1;e++){let t=s[e],r=s[e+1],i=(t.x+r.x)/2,o=e%2==0?1:-1,l=a*1.5*o*S(n+e*37+11),u=i,d=t.y+l,f=i,p=r.y-l;c+=` C${u},${d} ${f},${p} ${r.x},${r.y}`}return c}t(E,`generateHorizontalBoundary`);function D(e,t){let n=e/2,r=t*.5,i=t,a=e*.03;return[`M${n},${r}`,`C${n+a},${r+(i-r)*.2}`,`${n-a*1.5},${r+(i-r)*.55}`,`${n+a*.5},${r+(i-r)*.75}`,`C${n-a},${r+(i-r)*.85}`,`${n+a*.3},${r+(i-r)*.95}`,`${n},${i}`].join(` `)}t(D,`generateCliffPath`);function O(e,t,n,r){return[`M${e-n},${t}`,`A${n},${r} 0 1,1 ${e+n},${t}`,`A${n},${r} 0 1,1 ${e-n},${t}`,`Z`].join(` `)}t(O,`generateConfusionPath`);var k={complex:{model:`Probe → Sense → Respond`,practice:`Emergent Practices`},complicated:{model:`Sense → Analyse → Respond`,practice:`Good Practices`},clear:{model:`Sense → Categorise → Respond`,practice:`Best Practices`},chaotic:{model:`Act → Sense → Respond`,practice:`Novel Practices`},confusion:{model:``,practice:`Disorder`}},A=t((e,t)=>{let n=e/2,r=t/2;return{complex:{cx:n/2,cy:r/2,x:0,y:0,w:n,h:r},complicated:{cx:n+n/2,cy:r/2,x:n,y:0,w:n,h:r},chaotic:{cx:n/2,cy:r+r/2,x:0,y:r,w:n,h:r},clear:{cx:n+n/2,cy:r+r/2,x:n,y:r,w:n,h:r},confusion:{cx:n,cy:r,x:n*.7,y:r*.7,w:n*.6,h:r*.6}}},`getDomainLayouts`),j=t(()=>{let e=r(),t=c();return m(e,t.themeVariables).cynefin},`getCynefinDomainColors`),M=3,N={draw:t((e,t,r,i)=>{let a=i.db,o=a.getDomains(),s=a.getTransitions(),c=a.getDiagramTitle(),u=a.getAccTitle(),d=a.getAccDescription(),f=a.getConfig(),p=j();n.debug(`Rendering Cynefin diagram`);let m=f.width,h=f.height,_=f.padding,v=f.showDomainDescriptions,y=f.boundaryAmplitude,b=m+_*2,x=h+_*2,S={complex:p.complexBg,complicated:p.complicatedBg,clear:p.clearBg,chaotic:p.chaoticBg,confusion:p.confusionBg},C=g(t);l(C,x,b,f.useMaxWidth??!0),C.attr(`viewBox`,`0 0 ${b} ${x}`),u&&C.append(`title`).text(u),d&&C.append(`desc`).text(d);let N=C.append(`g`).attr(`transform`,`translate(${_}, ${_})`),P=A(m,h),F=w(f.seed,t),I=N.append(`g`).attr(`class`,`cynefin-backgrounds`),L=[`complex`,`complicated`,`chaotic`,`clear`];for(let e of L){let t=P[e];I.append(`rect`).attr(`class`,`cynefinDomain`).attr(`x`,t.x).attr(`y`,t.y).attr(`width`,t.w).attr(`height`,t.h).attr(`fill`,S[e]).attr(`fill-opacity`,.4).attr(`stroke`,`none`)}let R=N.append(`g`).attr(`class`,`cynefin-boundaries`);R.append(`path`).attr(`class`,`cynefinBoundary`).attr(`d`,T(m,h,F,y)).attr(`fill`,`none`),R.append(`path`).attr(`class`,`cynefinBoundary`).attr(`d`,E(m,h,F+100,y)).attr(`fill`,`none`),R.append(`path`).attr(`class`,`cynefinCliff`).attr(`d`,D(m,h)).attr(`fill`,`none`);let z=m*.15,B=h*.15;N.append(`path`).attr(`class`,`cynefinConfusion`).attr(`d`,O(m/2,h/2,z,B)).attr(`fill`,S.confusion).attr(`fill-opacity`,.5);let V=N.append(`g`).attr(`class`,`cynefin-labels`);for(let e of L){let t=P[e];V.append(`text`).attr(`class`,`cynefinDomainLabel`).attr(`x`,t.cx).attr(`y`,v?t.cy-30:t.cy).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,`middle`).text(e.charAt(0).toUpperCase()+e.slice(1))}if(V.append(`text`).attr(`class`,`cynefinDomainLabel`).attr(`x`,m/2).attr(`y`,v?h/2-10:h/2).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,`middle`).text(`Confusion`),v){let e=N.append(`g`).attr(`class`,`cynefin-subtitles`);for(let t of L){let n=P[t],r=k[t];e.append(`text`).attr(`class`,`cynefinSubtitle`).attr(`x`,n.cx).attr(`y`,n.cy-10).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,`middle`).text(r.model),e.append(`text`).attr(`class`,`cynefinSubtitle`).attr(`x`,n.cx).attr(`y`,n.cy+5).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,`middle`).text(r.practice)}e.append(`text`).attr(`class`,`cynefinSubtitle`).attr(`x`,m/2).attr(`y`,h/2+8).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,`middle`).text(k.confusion.practice)}let H=N.append(`g`).attr(`class`,`cynefin-items`);for(let e of[`complex`,`complicated`,`chaotic`,`clear`,`confusion`]){let t=o.get(e);if(!t||t.items.length===0)continue;let n=P[e],r=e===`confusion`,i=t.items,a=0;r&&t.items.length>M&&(a=t.items.length-M,i=t.items.slice(0,M));let s;if(r){let e=v?22:14;s=n.cy+e}else s=n.cy+(v?25:15);if([...i].forEach((t,r)=>{let i=s+r*30,a=H.append(`g`),o=a.append(`text`).attr(`class`,`cynefinItemText`).attr(`x`,0).attr(`y`,13).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,`central`).text(t.label),c=t.label.length*7,l=o.node();if(l&&typeof l.getBBox==`function`){let e=l.getBBox();e.width>0&&(c=e.width)}let u=c+20,d=n.cx-u/2;a.attr(`transform`,`translate(${d}, ${i})`),a.insert(`rect`,`text`).attr(`class`,`cynefinItem`).attr(`x`,0).attr(`y`,0).attr(`width`,u).attr(`height`,26).attr(`rx`,4).attr(`ry`,4).attr(`fill`,S[e]).attr(`fill-opacity`,.95),o.attr(`x`,u/2).attr(`y`,13)}),a>0){let t=s+i.length*30,r=`+${a} more`,o=H.append(`g`),c=o.append(`text`).attr(`class`,`cynefinItemText`).attr(`x`,0).attr(`y`,13).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,`central`).text(r),l=r.length*7,u=c.node();if(u&&typeof u.getBBox==`function`){let e=u.getBBox();e.width>0&&(l=e.width)}let d=l+20,f=n.cx-d/2;o.attr(`transform`,`translate(${f}, ${t})`),o.insert(`rect`,`text`).attr(`class`,`cynefinItemOverflow`).attr(`x`,0).attr(`y`,0).attr(`width`,d).attr(`height`,26).attr(`rx`,4).attr(`ry`,4).attr(`fill`,S[e]).attr(`fill-opacity`,.6),c.attr(`x`,d/2).attr(`y`,13)}}if(s.length>0){let e=C.select(`defs`).empty()?C.append(`defs`):C.select(`defs`),r=`cynefin-arrow-${t}`;e.append(`marker`).attr(`id`,r).attr(`viewBox`,`0 0 10 10`).attr(`refX`,9).attr(`refY`,5).attr(`markerWidth`,6).attr(`markerHeight`,6).attr(`orient`,`auto-start-reverse`).append(`path`).attr(`d`,`M 0 0 L 10 5 L 0 10 z`).attr(`class`,`cynefinArrowHead`);let i=N.append(`g`).attr(`class`,`cynefin-arrows`);s.forEach(e=>{let t=P[e.from],a=P[e.to];if(!t||!a)return;if(e.from===e.to){n.warn(`Cynefin renderer: skipping self-loop on domain "${e.from}"`);return}let o=t.cx,s=t.cy,c=a.cx,l=a.cy,u=(o+c)/2,d=(s+l)/2,f=c-o,p=l-s,m=Math.sqrt(f*f+p*p),h=m*.15,g=-p/m,_=f/m,v=u+g*h,y=d+_*h;i.append(`path`).attr(`class`,`cynefinArrowLine`).attr(`d`,`M${o},${s} Q${v},${y} ${c},${l}`).attr(`fill`,`none`).attr(`marker-end`,`url(#${r})`),e.label&&i.append(`text`).attr(`class`,`cynefinArrowLabel`).attr(`x`,v).attr(`y`,y-6).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,`auto`).text(e.label)})}c&&N.append(`text`).attr(`class`,`cynefinTitle`).attr(`x`,m/2).attr(`y`,-_/2).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,`middle`).text(c)},`draw`)},P=t(()=>{let e=r(),t=c();return m(e,t.themeVariables).cynefin},`getCynefinTheme`),F={parser:x,db:y,renderer:N,styles:t(()=>{let e=P();return`
|
|
2
2
|
.cynefinDomain {
|
|
3
3
|
stroke: none;
|
|
4
4
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as t}from"./src-B6xuSHsQ.js";import{x as n}from"./chunk-DU6HZSFF-
|
|
1
|
+
import{n as e}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as t}from"./src-B6xuSHsQ.js";import{x as n}from"./chunk-DU6HZSFF-CHHMX1CR.js";import"./chunk-75Z2AOVW-962-yyBD.js";import"./chunk-PWAF6VOD-DuKrEmQw.js";import"./chunk-GMAD6QVW-DQF31PdR.js";import"./chunk-P2QGCYS3-SDkZ9hQX.js";import{s as r}from"./chunk-4HAMMTFA-DBbX-wzu.js";import{a as i,i as a,n as o}from"./chunk-GVQU2GXP-rruJzn36.js";import{a as s,c,i as l}from"./chunk-OSK3NFVY-DYQeYWNP.js";import{t as u}from"./graphlib-DS17s2tU.js";import{t as d}from"./dagre-C-rnJpZF.js";import{n as f}from"./chunk-L3NEJ4N5-USlKRxmU.js";import{a as p,c as m,i as h,l as g,o as _,s as v,u as y}from"./mermaid-diagram-kbWN558y.js";var b=e((e,t,n)=>Math.max(t,Math.min(n,e)),`clamp`),x=e((e=`TB`)=>{switch(e){case`BT`:return`bottom`;case`LR`:return`right`;case`RL`:return`left`;default:return`top`}},`getDefaultSelfLoopSide`),S=e(e=>e===`flowchart`||e===`flowchart-v2`||e===`stateDiagram`||e===`er`||e===`classDiagram`,`shouldMergeSelfLoopSegments`),C=[`x`,`y`,`width`,`height`,`labelBBox`,`intersect`,`calcIntersect`,`diff`,`clusterNode`],w=e((e,t,n,r,i)=>{let a=[],o=new Set;if(n.forEach(({start:e,end:t})=>{e!==r&&o.add(e),t!==r&&o.add(t)}),o.forEach(t=>{let n=e.node(t);typeof n?.x==`number`&&typeof n?.y==`number`&&a.push(n)}),a.length===0&&n.forEach(({edge:e})=>{(e.points??[]).forEach(e=>{typeof e?.x==`number`&&typeof e?.y==`number`&&a.push(e)})}),a.length===0)return x(i);let s=a.reduce((e,t)=>({x:e.x+t.x/a.length,y:e.y+t.y/a.length}),{x:0,y:0}),c=s.x-t.x,l=s.y-t.y;return Math.abs(c)>Math.abs(l)?c>0?`right`:`left`:Math.abs(l)>0?l>0?`bottom`:`top`:x(i)},`getSelfLoopSide`),T=e((e,t=`top`,n=0,r=0)=>{let i=e.x,a=e.y-n,o=e.width/2,s=e.height/2,c=Math.max(36,Math.min(100,e.width*.8)),l=b(Math.max(r,e.width*.35),36,c),u=b(Math.min(e.width,e.height)*.45,24,48);switch(t){case`bottom`:{let e=a+s;return[{x:i-l/2,y:e},{x:i-l/2,y:e+u},{x:i+l/2,y:e+u},{x:i+l/2,y:e}]}case`right`:{let e=i+o;return[{x:e,y:a-l/2},{x:e+u,y:a-l/2},{x:e+u,y:a+l/2},{x:e,y:a+l/2}]}case`left`:{let e=i-o;return[{x:e,y:a-l/2},{x:e-u,y:a-l/2},{x:e-u,y:a+l/2},{x:e,y:a+l/2}]}default:{let e=a-s;return[{x:i-l/2,y:e},{x:i-l/2,y:e-u},{x:i+l/2,y:e-u},{x:i+l/2,y:e}]}}},`getSelfLoopPoints`),E=e((e,t,n=`top`,r=0,i={})=>{let a=e.x,o=e.y-r,s=i.width??0,c=i.height??0;switch(n){case`bottom`:return{x:a,y:Math.max(...t.map(e=>e.y))+c/2+4};case`right`:return{x:Math.max(...t.map(e=>e.x))+s/2+4,y:o};case`left`:return{x:Math.min(...t.map(e=>e.x))-s/2-4,y:o};default:return{x:a,y:Math.min(...t.map(e=>e.y))-c/2-4}}},`getSelfLoopLabelPosition`),D=e((e,t=0,{mergeSelfLoops:n=!0}={})=>{let r=new Map,i=[],a=e.graph()?.rankdir;return e.edges().forEach(t=>{let a=e.edge(t);if(n&&a.selfLoop){let e=a.selfLoop.id;r.has(e)||r.set(e,[]),r.get(e).push({edge:a,start:t.v,end:t.w})}else i.push({edge:a,start:t.v,end:t.w})}),r.forEach(n=>{if(n.length!==3){n.forEach(e=>i.push(e));return}n.sort((e,t)=>e.edge.selfLoop.order-t.edge.selfLoop.order);let[r,o,s]=n,c=r.edge.originalEdge??o.edge.originalEdge??s.edge.originalEdge??o.edge,l=e.node(c.start);if(!l){n.forEach(e=>i.push(e));return}let u={width:o.edge.width,height:o.edge.height},d=w(e,l,n,c.start,a),f=T(l,d,t,u.width??0),p=E(l,f,d,t,u),m={...o.edge,...c,id:c.id,points:f,start:c.start,end:c.end,x:p.x,y:p.y,width:u.width,height:u.height,labelStyle:o.edge.labelStyle,fromCluster:r.edge.fromCluster??o.edge.fromCluster??s.edge.fromCluster,toCluster:r.edge.toCluster??o.edge.toCluster??s.edge.toCluster};delete m.selfLoop,delete m.originalEdge,i.push({edge:m,start:m.start,end:m.end})}),i},`getEdgesToRender`),O=e(async({element:n,graph:a,diagramType:c,id:l,parentCluster:u,siteConfig:d})=>{let f=a.graph().rankdir;t.trace(`Dir in recursive render - dir:`,f);let{clusters:h,edgePaths:_,edgeLabels:y,nodes:b,rootGroups:x}=v(n,{edgePathsClass:`edgePaths`});a.nodes()?t.info(`Recursive render XXX`,a.nodes()):t.info(`No nodes found for`,a),a.edges().length>0&&t.info(`Recursive edges`,a.edge(a.edges()[0]));let C=S(c);await Promise.all(a.nodes().map(async function(e){let n=a.node(e);if(u!==void 0){let n=JSON.parse(JSON.stringify(u.clusterData));t.trace(`Setting data for parent cluster XXX
|
|
2
2
|
Node.id = `,e,`
|
|
3
3
|
data=`,n.height,`
|
|
4
4
|
Parent cluster`,u.height),a.setNode(u.id,n),a.parent(e)||(t.trace(`Setting parent`,e,u.id),a.setParent(e,u.id,n))}if(t.info(`(Insert) Node XXX`+e+`: `+JSON.stringify(a.node(e))),n?.clusterNode){t.info(`Cluster identified XBX`,e,n.width,a.node(e));let{ranksep:o,nodesep:s}=a.graph();n.graph.setGraph({...n.graph.graph(),ranksep:o+25,nodesep:s});let u=await F({element:b,graph:n.graph,diagramType:c,id:l,parentCluster:a.node(e),siteConfig:d}),f=u.elem;r(n,f),n.diff=u.diff||0,t.info(`New compound node after recursive render XAX`,e,`width`,n.width,`height`,n.height),i(f,n)}else a.children(e).length>0?(t.trace(`Cluster - the non recursive path XBX`,e,n.id,n,n.width,`Graph:`,a),t.trace(m(n.id,a)),p.set(n.id,{id:m(n.id,a),node:n})):(t.trace(`Node - the non recursive path XAX`,e,b,a.node(e),f),await g(b,a.node(e),{config:d,dir:f}))})),await e(async()=>{let e=a.edges().map(async function(e){let n=a.edge(e.v,e.w,e.name);if(t.info(`Edge `+e.v+` -> `+e.w+`: `+JSON.stringify(e)),t.info(`Edge `+e.v+` -> `+e.w+`: `,e,` `,JSON.stringify(a.edge(e))),t.info(`Fix`,p,`ids:`,e.v,e.w,`Translating: `,p.get(e.v),p.get(e.w)),C&&n.selfLoop){if(n.selfLoop.order!==1)return;let e={...n.originalEdge,...n,id:n.selfLoop.id,startLabelLeft:n.originalEdge?.startLabelLeft??n.startLabelLeft,startLabelRight:n.originalEdge?.startLabelRight??n.startLabelRight,endLabelLeft:n.originalEdge?.endLabelLeft??n.endLabelLeft,endLabelRight:n.originalEdge?.endLabelRight??n.endLabelRight};await s(y,e),n.width=e.width,n.height=e.height,n.labelStyle=e.labelStyle;return}await s(y,n)});await Promise.all(e)},`processEdges`)();let{subGraphTitleTotalMargin:w}=o(d);return{elem:x,graph:a,groups:{clusters:h,edgePaths:_,edgeLabels:y,nodes:b,rootGroups:x},diagramType:c,id:l,mergeSelfLoops:C,subGraphTitleTotalMargin:w}},`measureDagreGraph`),k=e(e=>{t.info(`############################################# XXX`),t.info(`### Layout ### XXX`),t.info(`############################################# XXX`),d(e)},`runDagreGraphLayout`),A=e((e,t,n)=>{let r=e.node(t);if(!r)return;let i={...r};return r?.clusterNode?i.y=(r.y??0)+n:e.children(t).length>0?i.height=(r.height??0)+n:i.y=(r.y??0)+n/2,i},`normalizeDagreNode`),j=e((e,t)=>{C.forEach(n=>{t[n]!==void 0&&(e[n]=t[n])})},`applyDagreNodeLayout`),M=e((e,t,n,r)=>({...e,start:e.start??t,end:e.end??n,points:(e.points??[]).map(e=>({...e,y:typeof e.y==`number`?e.y+r:e.y}))}),`normalizeDagreEdge`),N=e((e,t)=>{let{graph:n,mergeSelfLoops:r,subGraphTitleTotalMargin:i=0}=t,a=new Map(e.nodes.map(e=>[e.id,e]));y(n).forEach(e=>{let t=A(n,e,i);if(!t)return;j(n.node(e),t);let r=a.get(e);r&&j(r,t)});let o=i/2;return e.edges=D(n,o,{mergeSelfLoops:r}).map(({edge:e,start:t,end:n})=>M(e,t,n,o)),e},`applyDagreLayoutResult`),P=e(async({elem:e,graph:n,groups:{clusters:r,edgePaths:i},diagramType:o,id:s,mergeSelfLoops:u,subGraphTitleTotalMargin:d})=>{let m=0;await Promise.all(y(n).map(async function(e){let i=n.node(e);if(t.info(`Position XBX => `+e+`: (`+i.x,`,`+i.y,`) width: `,i.width,` height: `,i.height),i?.clusterNode)i.y+=d,t.info(`A tainted cluster node XBX1`,e,i.id,i.width,i.height,i.x,i.y,n.parent(e)),p.get(i.id).node=i,a(i);else if(n.children(e).length>0){t.info(`A pure cluster node XBX1`,e,i.id,i.x,i.y,i.width,i.height,n.parent(e)),i.height+=d,n.node(i.parentId);let a=i?.padding/2||0,o=i?.labelBBox?.height||0,s=o-a||0;t.debug(`OffsetY`,s,`labelHeight`,o,`halfPadding`,a),await f(r,i),p.get(i.id).node=i}else{let e=n.node(i.parentId);i.y+=d/2,t.info(`A regular node XBX1 - using the padding`,i.id,`parent`,i.parentId,i.width,i.height,i.x,i.y,`offsetY`,i.offsetY,`parent`,e,e?.offsetY,i),a(i)}}));let h=d/2;return D(n,h,{mergeSelfLoops:u}).forEach(function({edge:e,start:r,end:a}){t.info(`Edge `+r+` -> `+a+`: `+JSON.stringify(e),e),e.points.forEach(e=>e.y+=h);let u=n.node(r),d=n.node(a),f=l(i,e,p,o,u,d,s);c(e,f)}),n.nodes().forEach(function(e){let r=n.node(e);t.info(e,r.type,r.diff),r.isGroup&&(m=r.diff)}),t.warn(`Returning from recursive render XAX`,e,m),{elem:e,diff:m}},`paintDagreLayoutCore`),F=e(async e=>{let t=await O(e);return k(t.graph),await P(t)},`renderDagreSubgraph`),I=e(e=>{let n=new u({multigraph:!0,compound:!0}).setGraph({rankdir:e.direction,nodesep:e.config?.nodeSpacing||e.nodeSpacing||e.config?.flowchart?.nodeSpacing,ranksep:e.config?.rankSpacing||e.rankSpacing||e.config?.flowchart?.rankSpacing,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});return e.nodes.forEach(e=>{n.setNode(e.id,{...e}),e.parentId&&n.setParent(e.id,e.parentId)}),t.debug(`Edges:`,e.edges),e.edges.forEach(e=>{if(e.start===e.end){let t=e.start,r=t+`---`+t+`---1`,i=t+`---`+t+`---2`,a=n.node(t);n.setNode(r,{domId:r,id:r,parentId:a.parentId,labelStyle:``,label:``,padding:0,shape:`labelRect`,style:``,width:10,height:10}),n.setParent(r,a.parentId),n.setNode(i,{domId:i,id:i,parentId:a.parentId,labelStyle:``,padding:0,shape:`labelRect`,label:``,style:``,width:10,height:10}),n.setParent(i,a.parentId);let o=structuredClone(e),s=structuredClone(e),c=structuredClone(e),l=structuredClone(e);s.originalEdge=o,s.selfLoop={id:o.id,order:0},c.originalEdge=o,c.selfLoop={id:o.id,order:1},l.originalEdge=o,l.selfLoop={id:o.id,order:2},s.label=``,s.arrowTypeEnd=`none`,s.endLabelLeft=``,s.endLabelRight=``,s.startLabelLeft=``,s.id=t+`-cyclic-special-1`,c.startLabelRight=``,c.startLabelLeft=``,c.endLabelLeft=``,c.endLabelRight=``,c.arrowTypeStart=`none`,c.arrowTypeEnd=`none`,c.id=t+`-cyclic-special-mid`,l.label=``,l.startLabelRight=``,l.startLabelLeft=``,l.arrowTypeStart=`none`,a.isGroup&&(s.fromCluster=t,l.toCluster=t),l.id=t+`-cyclic-special-2`,l.arrowTypeStart=`none`,n.setEdge(t,r,s,t+`-cyclic-special-0`),n.setEdge(r,i,c,t+`-cyclic-special-1`),n.setEdge(i,t,l,t+`-cyclic-special-2`)}else n.setEdge(e.start,e.end,{...e},e.id)}),h(n),{graph:n}},`prepareLayoutForDagre`),L=e(async(e,{element:t,preparedLayout:r})=>{let i=r??I(e),a=n(),o=await O({element:t,graph:i.graph,diagramType:e.type,id:e.diagramId,parentCluster:void 0,siteConfig:a});return i.measuredLayout=o,o},`measureDagreLayout`),R=e((e,t)=>{let n=t.preparedLayout?.measuredLayout;if(!n)throw Error(`runDagreLayoutCore requires measureDagreLayout to run first`);return k(n.graph),N(e,n),n},`runDagreLayoutCore`),z=_({prepareLayout:I,measureLayout:L,runLayoutCore:R,paintOptions:{clusterDb:p,getNodes:e((e,{measure:t})=>y(t.graph).map(e=>t.graph.node(e)).filter(Boolean),`getDagrePaintNodes`),getEdgeNode:e((e,t,{measure:n})=>e?n.graph.node(e):void 0,`getDagreEdgeNode`),skipNode:e((e,{measure:t})=>!t.graph.hasNode(e.id),`skipNode`),isCluster:e((e,{measure:t})=>t.graph.hasNode(e.id)&&(t.graph.children(e.id)??[]).length>0,`isCluster`)}});export{N as applyDagreLayoutResult,D as getEdgesToRender,L as measureDagreLayout,I as prepareLayoutForDagre,z as render,R as runDagreLayoutCore};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/terminal-instance-BEqkmyvv.js","assets/rolldown-runtime-hePW80VL.js","assets/jsx-runtime-BNakU3Ej.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-BNakU3Ej.js";import{h as r,i}from"./dist-BO6Gz-vk.js";import{t as a}from"./preload-helper-BZ1Pz5am.js";import{n as o}from"./trpc-CQO3zfei.js";import{i as s,l as c,r as l,s as u,t as d}from"./use-websocket-channel-dNXOJZfW.js";import{_ as f,a as p,c as m,d as ee,f as te,g as ne,h as re,m as ie,n as h,o as g,p as _,r as v,s as ae,v as oe}from"./core-DW3tuXQ3.js";import{c as se,d as ce,o as le,s as ue,u as y}from"./radio-group-BhmTXkIv.js";import{D as de,O as b,a as x,c as fe,d as S,f as C,g as w,i as T,m as E,n as pe,r as D}from"./use-websocket-transport-BuYcrZTd.js";import{E as O}from"./dist-DGw3MClt.js";import{t as k}from"./spinner-BszfzCYe.js";import{t as A}from"./confirm-dialog-CfvO9f42.js";import{n as j,r as M,t as N}from"./voice-vad-ChMQMgBS.js";var P=e(t(),1),F=new Map([[`bold`,P.createElement(P.Fragment,null,P.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`,P.createElement(P.Fragment,null,P.createElement(`path`,{d:`M224,128a96,96,0,1,1-96-96A96,96,0,0,1,224,128Z`,opacity:`0.2`}),P.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`,P.createElement(P.Fragment,null,P.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`,P.createElement(P.Fragment,null,P.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`,P.createElement(P.Fragment,null,P.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`,P.createElement(P.Fragment,null,P.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`}))]]),I=new Map([[`bold`,P.createElement(P.Fragment,null,P.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`,P.createElement(P.Fragment,null,P.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`}),P.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`,P.createElement(P.Fragment,null,P.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`,P.createElement(P.Fragment,null,P.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`,P.createElement(P.Fragment,null,P.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`,P.createElement(P.Fragment,null,P.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`}))]]),L=P.forwardRef((e,t)=>P.createElement(r,{ref:t,...e,weights:F}));L.displayName=`CircleDashedIcon`;var R=P.forwardRef((e,t)=>P.createElement(r,{ref:t,...e,weights:I}));R.displayName=`UploadIcon`;function z(){let e=o.useUtils(),[t,n]=(0,P.useState)(!1);return{refresh:async()=>{n(!0);try{let t=await e.admin.checkCLIHealth.fetch({forceRefresh:!0},{staleTime:0});e.admin.checkCLIHealth.setData({forceRefresh:!1},t)}catch{O.error(`Failed to refresh CLI authentication status. Try Recheck again.`)}finally{n(!1)}},isRefreshing:t}}var B=n();function me({status:e}){return e===`ok`?(0,B.jsx)(oe,{className:`h-4 w-4 text-green-600 dark:text-green-400`}):e===`warning`?(0,B.jsx)(de,{className:`h-4 w-4 text-yellow-600 dark:text-yellow-400`}):(0,B.jsx)(L,{className:`h-4 w-4 text-muted-foreground`})}function he(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 ge({onOpenTerminal:e}){let{refresh:t,isRefreshing:n}=z(),{data:r,isLoading:a,isRefetching:s}=o.admin.checkCLIHealth.useQuery({forceRefresh:!1},{refetchOnWindowFocus:!1,staleTime:6e4});if(a)return(0,B.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-muted-foreground py-2`,children:[(0,B.jsx)(k,{className:`h-4 w-4`}),(0,B.jsx)(`span`,{children:`Checking CLI prerequisites...`})]});if(!r)return null;let l=he(r),u=l.some(e=>e.status!==`ok`);return(0,B.jsxs)(`div`,{className:`space-y-3`,children:[(0,B.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,B.jsx)(`p`,{className:`text-sm font-medium text-muted-foreground`,children:`CLI Prerequisites`}),(0,B.jsxs)(i,{type:`button`,variant:`ghost`,size:`sm`,className:`h-7 px-2 text-xs text-muted-foreground`,onClick:()=>void t(),disabled:s||n,children:[(0,B.jsx)(c,{className:`mr-1 h-3 w-3 ${s||n?`animate-spin`:``}`}),`Recheck`]})]}),(0,B.jsx)(`ul`,{className:`space-y-1.5`,children:l.map(e=>(0,B.jsxs)(`li`,{className:`flex items-center gap-2 text-sm`,children:[(0,B.jsx)(me,{status:e.status}),(0,B.jsx)(`span`,{className:`font-medium`,children:e.label}),(0,B.jsxs)(`span`,{className:`text-muted-foreground`,children:[`— `,e.detail]})]},e.label))}),u&&(0,B.jsxs)(i,{type:`button`,variant:`outline`,size:`sm`,onClick:e,children:[(0,B.jsx)(b,{className:`mr-2 h-4 w-4`}),`Open Terminal to Log In`]})]})}var _e=C({type:E(),data:E().optional(),message:E().optional()}),ve=`\r
|
|
3
|
+
\x1B[33m[Connection lost — starting a new shell]\x1B[0m\r
|
|
4
|
+
`,V={maxChars:l,truncationMarker:s};function ye(e){let[t,n]=(0,P.useState)(``),[r,i]=(0,P.useState)(!1),a=(0,P.useRef)(!1),o=(0,P.useRef)(80),s=(0,P.useRef)(24),c=(0,P.useCallback)(e=>{e.type===`output`&&e.data&&n(t=>u(t,e.data??``,V))},[]),{connected:l,gaveUp:f,send:p,reconnect:m}=d({url:e?pe(`/setup-terminal`,{}):null,schema:_e,onMessage:c,queuePolicy:`drop`});return(0,P.useEffect)(()=>{e||(n(``),i(!1),a.current=!1)},[e]),(0,P.useEffect)(()=>{e&&l&&(a.current&&n(e=>u(e,ve,V)),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,P.useCallback)(e=>{p({type:`input`,data:e})},[p]),handleResize:(0,P.useCallback)((e,t)=>{o.current=e,s.current=t,p({type:`resize`,cols:e,rows:t})},[p])}}var be=(0,P.lazy)(()=>a(()=>import(`./terminal-instance-BEqkmyvv.js`).then(e=>({default:e.TerminalInstance})),__vite__mapDeps([0,1,2,3])));function xe({open:e,onClose:t}){let{connected:n,gaveUp:r,reconnect:i,showTerminal:a,output:o,handleData:s,handleResize:c}=ye(e);return(0,B.jsx)(le,{open:e,onOpenChange:e=>!e&&t(),children:(0,B.jsxs)(ue,{className:`max-w-3xl h-[500px] flex flex-col`,children:[(0,B.jsxs)(y,{children:[(0,B.jsx)(ce,{children:`Terminal`}),(0,B.jsxs)(se,{children:[`Run authentication commands for your CLIs, then close this dialog.`,(0,B.jsxs)(`span`,{className:`mt-1.5 flex flex-col gap-0.5`,children:[(0,B.jsx)(`code`,{className:`rounded bg-muted px-1 py-0.5 font-mono text-sm w-fit`,children:`claude login`}),(0,B.jsx)(`code`,{className:`rounded bg-muted px-1 py-0.5 font-mono text-sm w-fit`,children:`codex login`}),(0,B.jsx)(`code`,{className:`rounded bg-muted px-1 py-0.5 font-mono text-sm w-fit`,children:`gh auth login`})]})]})]}),(0,B.jsxs)(`div`,{className:`relative flex-1 min-h-0 rounded-md overflow-hidden border bg-[#18181b]`,children:[a&&(0,B.jsx)(P.Suspense,{fallback:null,children:(0,B.jsx)(be,{onData:s,onResize:c,output:o,isActive:e})}),!n&&(a||r)&&(0,B.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,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`span`,{children:a?`Connection lost.`:`Connection failed.`}),(0,B.jsx)(`button`,{type:`button`,className:`underline`,onClick:i,children:`Retry`})]}):`Reconnecting… input is paused`})]})]})})}var H=[{model:`flux-hannah-en`,name:`Hannah`,description:`Clear, confident, thoughtful`},{model:`flux-kit-en`,name:`Kit`,description:`Friendly, energetic, thoughtful`},{model:`flux-alexis-en`,name:`Alexis`,description:`Clear, professional, calm`},{model:`flux-cliff-en`,name:`Cliff`,description:`Deep, confident, calm`},{model:`flux-sienna-en`,name:`Sienna`,description:`Clear, professional, calm`},{model:`flux-cole-en`,name:`Cole`,description:`Friendly, clear, interesting`},{model:`flux-brooke-en`,name:`Brooke`,description:`Friendly, intelligent, fast`},{model:`flux-colin-en`,name:`Colin`,description:`Warm, friendly, trustworthy`},{model:`flux-gemma-en`,name:`Gemma`,description:`Friendly, kind, approachable`},{model:`flux-haley-en`,name:`Haley`,description:`Clear, professional, caring`},{model:`flux-heather-en`,name:`Heather`,description:`Clear, engaging, energetic`},{model:`flux-miles-en`,name:`Miles`,description:`Clear, calm, professional`},{model:`flux-sean-en`,name:`Sean`,description:`Friendly, kind, caring`},{model:`flux-bree-en`,name:`Bree`,description:`Friendly, sweet, kind`},{model:`flux-brittany-en`,name:`Brittany`,description:`Confident, kind, soft`},{model:`flux-bruce-en`,name:`Bruce`,description:`Friendly, kind, natural`},{model:`flux-conor-en`,name:`Conor`,description:`Confident, deep, friendly`},{model:`flux-donovan-en`,name:`Donovan`,description:`Professional, calm, thoughtful`},{model:`flux-drew-en`,name:`Drew`,description:`Confident, relaxed, soft`},{model:`flux-elise-en`,name:`Elise`,description:`Clear, professional, calm`},{model:`flux-jack-en`,name:`Jack`,description:`Confident, thoughtful, friendly`},{model:`flux-kai-en`,name:`Kai`,description:`Clear, calm, professional`},{model:`flux-kelsey-en`,name:`Kelsey`,description:`Clear, professional, caring`},{model:`flux-maeve-en`,name:`Maeve`,description:`Friendly, energetic, confident`},{model:`flux-marcelo-en`,name:`Marcelo`,description:`Clear, calm, professional`},{model:`flux-marcus-en`,name:`Marcus`,description:`Friendly, helpful, smooth`},{model:`flux-meena-en`,name:`Meena`,description:`Empathetic, professional, calm`},{model:`flux-meghan-en`,name:`Meghan`,description:`Friendly, nice, energetic`},{model:`flux-naveen-en`,name:`Naveen`,description:`Clear, professional, knowledgeable`},{model:`flux-paige-en`,name:`Paige`,description:`Clear, professional, calm`},{model:`flux-priya-en`,name:`Priya`,description:`Confident, empathetic, professional`},{model:`flux-rufus-en`,name:`Rufus`,description:`Friendly, confident, intelligent`},{model:`flux-sharon-en`,name:`Sharon`,description:`Formal, calm, relaxed`},{model:`flux-tanner-en`,name:`Tanner`,description:`Professional, calm, confident`},{model:`flux-wade-en`,name:`Wade`,description:`Warm, confident, clear`},{model:`flux-wes-en`,name:`Wes`,description:`Thoughtful, friendly, warm`}],U=`flux-haley-en`,W=.5,G=1.5,K=.05;function Se(e){return H.some(t=>t.model===e)}function Ce(e){if(!Number.isFinite(e))return 1;let t=Math.round((Math.min(G,Math.max(W,e))-W)/K);return Math.round((W+t*K)*100)/100}function we(e){return Se(e)?e:U}var Te=D([`baseline`,`implementing`,`measuring`,`evaluating`,`critiquing`,`recycling`,`idle`]),q=C({testCommand:E().min(1),targetDescription:E().min(1),maxIterations:S().int().min(0).default(25),testTimeoutSeconds:S().int().min(1).default(600),sessionRecycleInterval:S().int().min(1).default(10),promptTimeoutSeconds:S().int().min(0).optional()});C({currentIteration:S().int().min(0),baselineMetricSummary:E(),currentMetricSummary:E(),acceptedCount:S().int().min(0),rejectedRegressionCount:S().int().min(0),rejectedCritiqueCount:S().int().min(0),crashedCount:S().int().min(0),sessionRecycleCount:S().int().min(0),startedAt:E(),lastIterationAt:E().nullable(),currentPhase:Te,lastTestOutput:E().nullable()});var Ee=C({iteration:S().int().min(0),startedAt:E(),completedAt:E(),status:D([`accepted`,`rejected_regression`,`rejected_critique`,`crashed`]),changeDescription:E(),commitSha:E(),commitReverted:x(),metricBefore:E(),metricAfter:E().nullable(),testOutput:E(),metricImproved:x().nullable(),crashError:E().nullable(),fixAttempts:S().int().min(0),critiqueNotes:E().nullable(),critiqueApproved:x().nullable()});C({workspaceId:E(),config:q,baseline:C({testOutput:E(),metricSummary:E(),evaluatedAt:E()}),iterations:T(Ee)});function J(e){return Object.values(e)}var De=D(J(f)),Oe=D(J(ie)),ke=D(J(v)),Ae=D(J(m)),je=D(J(re)),Me=D(J(p)),Ne=D(J(h)),Pe=D(J(ae)),Fe=D(J(g)),Y=D(J(_)),X=D(J(te)),Z=D(J(ee)),Q=D(J(ne)),Ie=C({id:E(),name:E(),slug:E().min(1),repoPath:E(),worktreeBasePath:E().min(1),defaultBranch:E(),githubOwner:E().nullable(),githubRepo:E().nullable(),issueProvider:ke,issueTrackerConfig:w().nullable(),isArchived:x(),startupScriptCommand:E().nullable(),startupScriptPath:E().nullable(),startupScriptTimeout:S(),createdAt:E(),updatedAt:E()}),Le=C({id:E(),projectId:E(),parentWorkspaceId:E().nullable().optional().default(null),name:E(),description:E().nullable(),status:De,worktreePath:E().nullable(),branchName:E().nullable(),isAutoGeneratedBranch:x(),creationSource:Oe,creationMetadata:w().nullable(),initErrorMessage:E().nullable(),initOutput:E().nullable(),initStartedAt:E().nullable(),initCompletedAt:E().nullable(),initRetryCount:S(),runScriptCommand:E().nullable(),runScriptCleanupCommand:E().nullable(),runScriptPid:S().nullable(),runScriptPort:S().nullable(),runScriptStartedAt:E().nullable(),runScriptStatus:Ae,mode:je.optional().default(`STANDARD`),autoIterationConfig:q.nullable().optional().default(null),prUrl:E().nullable(),githubIssueNumber:S().nullable(),githubIssueUrl:E().nullable(),linearIssueId:E().nullable(),linearIssueIdentifier:E().nullable(),linearIssueUrl:E().nullable(),defaultSessionProvider:Q,ratchetSessionProvider:Q,prNumber:S().nullable(),prState:Me,prReviewState:E().nullable(),prCiStatus:Ne,prUpdatedAt:E().nullable(),prCiFailedAt:E().nullable(),prCiLastNotifiedAt:E().nullable(),prReviewLastCheckedAt:E().nullable(),prReviewLastCommentId:E().nullable(),ratchetEnabled:x(),ratchetState:Pe,ratchetLastCheckedAt:E().nullable(),ratchetActiveSessionId:E().nullable(),ratchetLastCiRunId:E().nullable(),hasHadSessions:x(),createdAt:E(),updatedAt:E()}),$=C({id:E(),workspaceId:E(),name:E().nullable(),workflow:E(),model:E(),status:Y,provider:X,providerSessionId:E().nullable(),providerProjectPath:E().nullable(),providerProcessPid:S().nullable(),providerMetadata:w().nullable(),createdAt:E(),updatedAt:E()}),Re=C({id:E(),workspaceId:E(),name:E().nullable(),status:Y,pid:S().nullable(),createdAt:E(),updatedAt:E()}),ze=C({preferredIde:E(),customIdeCommand:E().nullable(),playSoundOnComplete:x(),notificationSoundPath:E().nullable(),ratchetEnabled:x(),ratchetReplyToPrComments:x().optional().default(!0),ratchetReviewTriggerMode:Fe.optional().default(`CHANGES_REQUESTED`),defaultSessionProvider:X,defaultClaudeModel:E().optional().default(`sonnet`),defaultCodexModel:E().optional().default(`default`),defaultClaudeReasoningEffort:E().nullable().optional().default(null),defaultCodexReasoningEffort:E().nullable().optional().default(null),defaultWorkspacePermissions:Z.optional().default(`STRICT`),ratchetPermissions:Z.optional().default(`YOLO`),voiceModeEnabled:x().optional().default(!1),voiceTtsModel:E().optional().default(U).transform(we),voiceTtsSpeed:S().optional().default(1).transform(Ce),voiceUtteranceEndMs:S().int().min(M).max(j).optional().default(N),voiceBargeInSustainedMs:S().int().min(8).max(80).optional().default(16)}),Be=C({meta:C({exportedAt:E(),version:E(),schemaVersion:fe(4)}),data:C({projects:T(Ie),workspaces:T(Le),agentSessions:T($),terminalSessions:T(Re),userSettings:ze.nullable()})});function Ve({onImportSuccess:e,variant:t=`outline`,className:n,children:r}){let a=(0,P.useRef)(null),[s,c]=(0,P.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
|
+
`);O.success(`Import completed`,{description:r,duration:1e4}),c({open:!1,data:null,summary:``}),await l.invalidate(),e?.()},onError:e=>{O.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=Be.safeParse(n);if(!r.success)throw Error(`Invalid backup file format: ${r.error.message}`);return r.data};return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)(i,{onClick:()=>a.current?.click(),disabled:u.isPending,variant:t,className:n,children:[(0,B.jsx)(R,{className:`w-4 h-4 mr-2`}),u.isPending?`Importing...`:r||`Import Data`]}),(0,B.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){O.error(`Failed to read file: ${f(e)}`)}a.current&&(a.current.value=``)}},className:`hidden`}),(0,B.jsx)(A,{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{K as a,ge as c,W as i,z as l,H as n,U as o,G as r,xe as s,Ve as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t,t as n}from"./jsx-runtime-BNakU3Ej.js";import{h as r,i,m as a,o,r as s}from"./dist-BO6Gz-vk.js";import{f as c,l}from"./hooks-3rxtNHRh.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-a6lf168c.js";import{n as O}from"./trpc-CQO3zfei.js";import{t as k}from"./Archive.es-moH8rDRO.js";import{$ as oe,$t as se,J as ce,Jt as le,Q as ue,Qt as de,Xt as fe,Yt as pe,cn as me,ct as he,dt as ge,en as A,ft as _e,ln as ve,lt as ye,nt as be,ot as xe,pt as Se,rt as Ce,st as we,ut as j}from"./vbnet-CwR9YcOY.js";import{a as Te,i as Ee,n as De,o as Oe,r as ke,s as Ae,t as je}from"./use-auto-scroll-DNohsNoz.js";import{l as Me,t as Ne}from"./use-websocket-channel-dNXOJZfW.js";import{a as M,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-Cq3ddA2b.js";import{n as Be,r as Ve}from"./use-project-header-navigation-D5yIIgnb.js";import{v as F}from"./core-DW3tuXQ3.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-BhmTXkIv.js";import{n as Ge,t as Ke}from"./provider-cli-warning-CIAJ88Cy.js";import{i as H,n as U,t as W}from"./tooltip-DXcY1U7y.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-BuYcrZTd.js";import{D as $e,E as X}from"./dist-DGw3MClt.js";import{t as et}from"./label-ANA2Lfpk.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-BJo4hZ8z.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=Oe(e);return r?(0,$.jsxs)(j,{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)(j,{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)(j,{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=ke(e.projectId),i=e.ratchetEnabled??!0;return n?(0,$.jsxs)(j,{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)(me,{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)(j,{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)(he,{children:[(0,$.jsxs)(W,{children:[(0,$.jsx)(H,{asChild:!0,children:(0,$.jsx)(Se,{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)(ye,{align:`end`,className:`w-60`,children:[(0,$.jsx)(ge,{children:`Workspace actions`}),(0,$.jsxs)(j,{onSelect:e=>{e.preventDefault(),requestAnimationFrame(()=>{_(!0)})},children:[(0,$.jsx)(it,{className:`h-4 w-4`}),`View details`]}),(0,$.jsxs)(j,{onSelect:e=>{e.preventDefault(),requestAnimationFrame(()=>{x()})},children:[(0,$.jsx)(f,{className:`h-4 w-4`}),`Rename workspace`]}),(0,$.jsxs)(j,{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)(_e,{}),(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)(ve,{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)(ve,{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)(De,{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=l(),{data:s}=O.workspace.listForProject.useQuery({projectId:t},{enabled:!!t,staleTime:1/0,refetchOnWindowFocus:!1}),c=(0,Q.useMemo)(()=>Lt(s?.workspaces??[]),[s?.workspaces]),u=`${c.working.length} working · ${c.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:[c.working.length,` wk · `,c.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)(M,{className:`px-2 py-1 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground`,children:[`Waiting · `,c.waiting.length]}),c.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)(M,{className:`px-2 py-1 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground`,children:[`Working · `,c.working.length]}),c.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)(M,{className:`px-2 py-1 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground`,children:[`Todo · `,c.todo.length]}),c.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)(M,{className:`px-2 py-1 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground`,children:[`Done · `,c.done.length]}),c.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}=Ee(),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)(ve,{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:c}){let u=l(),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])),Te(e)?c():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}=Ne({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=(0,Q.useRef)(e);(0,Q.useEffect)(()=>{let t=y.current!==e;y.current=e,(!e||t)&&(m||h)&&(v(),c(!1))},[e,m,h,v]);let b=Cr(h,m,l,!!n&&!l),x=(0,Q.useRef)(`off`);(0,Q.useEffect)(()=>{x.current===`listening`&&b===`thinking`&&dt(`sounds/voice-thinking-start.mp3`,{volume:.3}),x.current=b},[b]),(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 S=!!(o?.enabled&&o.hasApiKey);(0,Q.useEffect)(()=>{o!==void 0&&!S&&(m||h)&&(v(),c(!1))},[o,S,m,h,v]);let C=(0,Q.useCallback)(()=>{m||h?(v(),c(!1)):(d(),c(!0),_())},[m,h,_,v,d]);if(!S)return null;let w=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:w.title,onClick:C,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`}),w.label]}),(0,$.jsx)(Er,{phase:b})]})}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 encountered an error. 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)(Me,{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=ue(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.isScriptFailed&&e.initBanner.kind!==`info`&&(0,$.jsx)(jr,{banner:e.initBanner,retryPending:r.isPending,onRetry:n,onPlay:e.resumeQueuedMessages}),(0,$.jsx)(ce,{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)(Ae,{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)(xe,{permission:e.pendingRequest.type===`permission`?e.pendingRequest.request:null,onApprove:e.approvePermission,className:`min-h-0 shrink overflow-y-auto`}),(0,$.jsx)(Ce,{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)(we,{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)(be,{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,showPlay:o=!1,onPlay:s,showDismiss:c=!1,onDismiss:l}){let[u,f]=(0,Q.useState)(!1),{retry:p,retryInit:m}=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:()=>f(!u),children:[u?(0,$.jsx)(Fe,{className:`h-3 w-3 mr-1`}):(0,$.jsx)(Pe,{className:`h-3 w-3 mr-1`}),u?`Hide output`:`Show output`]}),(0,$.jsx)(i,{variant:`outline`,size:`sm`,className:`h-6 px-2 text-xs`,onClick:p,disabled:m.isPending,children:m.isPending?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(a,{className:`h-3 w-3 mr-1 animate-spin`}),`Retrying...`]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Me,{className:`h-3 w-3 mr-1`}),`Retry`]})}),o&&(0,$.jsxs)(i,{variant:`outline`,size:`sm`,className:`h-6 px-2 text-xs`,onClick:s,disabled:!s,children:[(0,$.jsx)(d,{className:`h-3 w-3 mr-1`}),`Dispatch queued messages`]}),c&&(0,$.jsx)(i,{variant:`ghost`,size:`sm`,className:`h-6 w-6 p-0`,onClick:l,"aria-label":`Dismiss`,children:(0,$.jsx)($e,{className:`h-3 w-3`})})]})]}),u&&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,resumeQueuedMessages:a}){let o=En(n?.chatBanner,r);return t&&o?(0,$.jsx)(Pr,{workspaceId:e,initErrorMessage:n?.initErrorMessage??null,initOutput:n?.initOutput??null,hasStartupScript:n?.hasStartupScript??!1,showPlay:o.showPlay,onPlay:a,showDismiss:o.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,resumeQueuedMessages:r.resumeQueuedMessages}),(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)(le,{open:a,onOpenChange:o,children:(0,$.jsxs)(pe,{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)(de,{className:`sr-only`,children:[(0,$.jsx)(se,{children:`Workspace Side Panel`}),(0,$.jsx)(fe,{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=``}=c(),n=l(),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),[se,ce]=(0,Q.useState)(k);(0,Q.useEffect)(()=>{ce(k)},[k]);let le=Oe(i),{data:ue}=O.workspace.listChildren.useQuery({parentWorkspaceId:t},{enabled:!le&&E&&re}),de=ue?.length??0,{messages:fe,connected:pe,sessionStatus:me,processStatus:he,sessionRuntime:ge,runtimeSessionId:A,pendingRequest:_e,chatSettings:ve,chatCapabilities:ye,inputDraft:be,inputAttachments:xe,queuedMessages:Se,removeQueuedMessage:Ce,resumeQueuedMessages:we,latestThinking:j,pendingMessages:Te,isCompacting:Ee,slashCommands:De,slashCommandsLoaded:ke,tokenStats:Ae,rewindPreview:Me,sendMessage:Ne,stopChat:M,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}=oe({dbSessionId:T}),Ue=me.phase===`loading`,We=i?.creationSource===`GITHUB_ISSUE`&&T!==null&&(me.phase===`loading`||me.phase===`ready`)&&he.state===`unknown`&&On(fe),R=(0,Q.useMemo)(()=>Dn({workspaceSummaries:i?.sessionSummaries,sessions:o,selectedSessionId:T,liveRuntime:ge,runtimeSessionId:A,chatConnected:pe}),[i?.sessionSummaries,o,T,ge,A,pe]),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:ve.selectedModel,selectedProvider:se,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(le){q();return}te(!0)},[le,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}=je(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:[fe.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:fe,sessionStatus:me,sessionRuntime:ge,messagesEndRef:L,viewportRef:Y,isNearBottom:X,scrollToBottom:et,onScroll:it,pendingRequest:_e,approvePermission:Fe,answerQuestion:N,connected:pe,sendMessage:Ne,stopChat:M,inputRef:I,chatSettings:ve,chatCapabilities:ye,updateSettings:Ie,inputDraft:be,setInputDraft:Le,inputAttachments:xe,setInputAttachments:P,queuedMessages:Se,removeQueuedMessage:Ce,resumeQueuedMessages:we,latestThinking:j,pendingMessages:Te,isCompacting:Ee,slashCommands:De,slashCommandsLoaded:ke,tokenStats:Ae,rewindPreview:Me,startRewindPreview:Re,confirmRewind:ze,cancelRewind:Be,getUuidForMessageId:Ve,acpConfigOptions:F,setConfigOption:He,autoStartPending:We,initBanner:rt,isScriptFailed:x};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:se,setSelectedProvider:ce},chat:st,rightPanelVisible:d,setRightPanelVisible:f,archiveDialog:{open:E,setOpen:te,activeChildCount:de,onConfirm:()=>q()}}),(0,$.jsx)(m,{open:ne,onOpenChange:D,onRetry:()=>q(),onRemoveLockAndArchive:()=>q(!0),isPending:H.isPending})]})}function Br(){let{id:e=``}=c();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};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./mermaid-parser.core-
|
|
1
|
+
import{n as e}from"./mermaid-parser.core-CpkwJ-8U.js";import{n as t}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as n}from"./src-B6xuSHsQ.js";import{H as r,K as i,U as a,a as o,b as s,c,f as l,v as u,w as d,y as f,z as p}from"./chunk-DU6HZSFF-CHHMX1CR.js";import{i as m}from"./chunk-75Z2AOVW-962-yyBD.js";import{t as h}from"./chunk-JWPE2WC7-DVXcaiue.js";import{r as g,t as _}from"./chunk-PWAF6VOD-DuKrEmQw.js";import{t as v}from"./chunk-2Q5K7J3B-C1jixKkw.js";import{p as y}from"./mermaid-diagram-kbWN558y.js";var b=/[─━│┃└┗├┣]/,x=/[└┗├┣]/,S=/[─━]/,C=/^[\s│┃]+$/,w=/^\s*(title[\t ]|accTitle[\t ]*:|accDescr[\t ]*[:{])/,T=/^\s*%%/,E=` `;function D(e){return e.some(e=>b.test(e))}t(D,`isBoxDrawingFormat`);function O(e){for(let t of e){let e=x.exec(t);if(e?.index&&e.index>0)return e.index}return 4}t(O,`inferSegmentWidth`);function k(e,t){return e.replace(/\bline\s+(\d+)\b/gi,(e,n)=>{let r=parseInt(n,10),i=t.get(r);return i?`line ${i}`:e})}t(k,`remapErrorLines`);function A(e){let t=e.split(`
|
|
2
2
|
`),n=new Map,r=-1;for(let[e,n]of t.entries())if(n.trim()===`treeView-beta`){r=e;break}if(r===-1)return{text:e,lineMap:n};let i=[];for(let e=r+1;e<t.length;e++){let n=t[e];n.trim()===``||T.test(n)||w.test(n)||C.test(n)||i.push(n.replace(/\t/g,` `))}if(!D(i))return{text:e,lineMap:n};let a=O(i),o=[],s=0;for(let e=0;e<=r;e++)o.push(t[e]),s++,n.set(s,e+1);for(let e=r+1;e<t.length;e++){let r=t[e],i=r.trim(),c=e+1;if(i===``){o.push(r),s++,n.set(s,c);continue}if(T.test(r)){o.push(r),s++,n.set(s,c);continue}if(w.test(r)){o.push(r),s++,n.set(s,c);continue}if(C.test(r))continue;let l=r.replace(/\t/g,` `),u=x.exec(l);if(u?.index!==void 0){let e=u.index,t=Math.round(e/a)+1,r=e+1;for(;r<l.length&&S.test(l[r]);)r++;for(;r<l.length&&l[r]===` `;)r++;let i=l.slice(r).trimEnd();if(!i)throw Error(`Line ${c}: Empty node \u2014 expected a filename or directory name after the box-drawing prefix`);let d=E.repeat(t);o.push(d+i),s++,n.set(s,c)}else if(/^[\s─━│┃└┗├┣]+$/.test(l))continue;else if(b.test(l))o.push(r),s++,n.set(s,c);else if(/^\s+/.test(l))throw Error(`Line ${c}: Unexpected indentation without box-drawing characters. In box-drawing format, use \u251C\u2500\u2500 or \u2514\u2500\u2500 prefixes for indented nodes.`);else o.push(r),s++,n.set(s,c)}return{text:o.join(`
|
|
3
3
|
`),lineMap:n}}t(A,`preprocessBoxDrawing`);var j=new v(()=>({cnt:1,stack:[{id:0,level:-1,name:`/`,nodeType:`directory`,children:[]}]})),M=t(()=>{j.reset(),o()},`clear`),N=t(()=>j.records.stack[0],`getRoot`),P=t(()=>j.records.cnt,`getCount`),F=l.treeView,I={clear:M,addNode:t((e,t,n,r,i,a)=>{for(;e<=j.records.stack[j.records.stack.length-1].level;)j.records.stack.pop();let o={id:j.records.cnt++,level:e,name:t,nodeType:n,icon:i,cssClass:r,description:a,children:[]};j.records.stack[j.records.stack.length-1].children.push(o),j.records.stack.push(o)},`addNode`),getRoot:N,getCount:P,getConfig:t(()=>m(F,s().treeView),`getConfig`),getAccTitle:f,getAccDescription:u,getDiagramTitle:d,setAccDescription:r,setAccTitle:a,setDiagramTitle:i},L=t(e=>{h(e,I);for(let t of e.nodes){let e=typeof t.indent==`number`?t.indent:0,n=t.name,r=n.endsWith(`/`);r&&(n=n.slice(0,-1));let i=r?`directory`:`file`,a=t.classAnnotation||void 0,o=t.iconAnnotation,c=o===void 0?void 0:o||`none`,l=t.descAnnotation||void 0,u=l?p(l,s()):void 0;I.addNode(e,n,i,a,c,u)}},`populate`),R={parse:t(async t=>{let{text:r,lineMap:i}=A(t);try{let t=await e(`treeView`,r);n.debug(t),L(t)}catch(e){throw i.size>0&&e instanceof Error&&(e.message=k(e.message,i)),e}},`parse`)},z={prefix:`mermaid-treeview`,height:24,width:24,icons:{folder:{body:`<path fill="currentColor" d="M10.59 4.59A2 2 0 0 0 9.17 4H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.17z"/>`},file:{body:`<path fill="currentColor" fill-rule="evenodd" d="M6 2a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8.83a2 2 0 0 0-.59-1.42l-4.82-4.82A2 2 0 0 0 13.17 2H6Zm7.5 1.9l4.6 4.6h-3.6a1 1 0 0 1-1-1V3.9Z" clip-rule="evenodd"/>`}}};function B(e,t){let n=t?.filenameIcons?.[e];if(n)return n;let r=e.lastIndexOf(`.`);if(r>0){let n=e.substring(r).toLowerCase(),i=t?.extensionIcons;return i?.[n]??i?.[n.slice(1)]}}t(B,`detectIcon`);function V(e,t){return e.includes(`:`)?e:e in z.icons||!t?`${z.prefix}:${e}`:`${t}:${e}`}t(V,`qualifyIcon`);function H(e,t){if(e.icon!==`none`){if(e.icon)return V(e.icon,t.defaultIconPack);if(t.showIcons){if(e.nodeType===`file`){let n=B(e.name,t);if(n===`none`)return;if(n)return V(n,t.defaultIconPack)}return`${z.prefix}:${e.nodeType===`directory`?`folder`:`file`}`}}}t(H,`getNodeIcon`),g([{name:z.prefix,icons:z}]);var U=14,W=4,G=16,K=t(async(e,n)=>{let r=[],i=t(e=>{let t=H(e,n);t&&r.push({icon:t,node:e}),e.children.forEach(i)},`collect`);i(e);let a=await Promise.all(r.map(async({icon:e,node:t})=>({id:t.id,svg:await _(e,{height:U,width:U})})));return new Map(a.map(({id:e,svg:t})=>[e,t]))},`resolveNodeIcons`),q=t((e,t,n,r,i,a)=>{let o=r.append(`g`),s=`treeView-node-label`;n.nodeType===`directory`&&(s+=` treeView-node-dir`),n.cssClass&&(s+=` ${n.cssClass}`);let c=U+W,l=H(n,i),u=l!==void 0;l&&o.append(`g`).attr(`class`,`treeView-node-icon`).attr(`transform`,`translate(${e+i.paddingX}, ${t+i.paddingY})`).html(a.get(n.id)??``);let d=o.append(`text`).text(n.name).attr(`dominant-baseline`,`middle`).attr(`class`,s),{height:f,width:p}=d.node().getBBox(),m=f+i.paddingY*2,h=e+i.paddingX+(u?c:0);d.attr(`x`,h),d.attr(`y`,t+m/2);let g=h+p;return n.BBox={x:e,y:t,width:p+i.paddingX*2+(u?c:0),height:m},n.cssClass?.split(/\s+/).includes(`highlight`)&&o.insert(`rect`,`:first-child`).attr(`x`,e).attr(`y`,t+1).attr(`width`,0).attr(`height`,m-2).attr(`rx`,3).attr(`class`,`treeView-highlight-bg`),{node:n,nodeGroup:o,labelRightEdge:g,centerY:t+m/2}},`positionLabel`),J=t((e,t,n,r,i,a)=>e.append(`line`).attr(`x1`,t).attr(`y1`,n).attr(`x2`,r).attr(`y2`,i).attr(`stroke-width`,a).attr(`class`,`treeView-node-line`),`positionLine`),Y=t((e,n,r,i)=>{let a=0,o=0,s=[],c=t((e,t,n,r)=>{let c=r*(n.rowIndent+n.paddingX),l=q(c,a,t,e,n,i);s.push(l);let{height:u,width:d}=t.BBox;J(e,c-n.rowIndent,a+u/2,c,a+u/2,n.lineThickness),o=Math.max(o,c+d),a+=u},`drawNode`),l=t((t,n=0)=>{c(e,t,r,n),t.children.forEach(e=>{l(e,n+1)});let{x:i,y:a,height:o}=t.BBox;if(t.children.length){let{y:n,height:s}=t.children[t.children.length-1].BBox;J(e,i+r.paddingX,a+o,i+r.paddingX,n+s/2+r.lineThickness/2,r.lineThickness)}},`processNode`);l(n);let u=s.filter(e=>e.node.description);if(u.length>0){let e=Math.max(...s.map(e=>e.labelRightEdge))+G;for(let t of u){let n=t.nodeGroup.append(`text`).text(t.node.description).attr(`dominant-baseline`,`middle`).attr(`class`,`treeView-node-description`).attr(`x`,e).attr(`y`,t.centerY).node().getBBox();o=Math.max(o,e+n.width+r.paddingX)}}for(let e of s)if(e.node.cssClass?.split(/\s+/).includes(`highlight`)){let t=e.nodeGroup.select(`.treeView-highlight-bg`);if(!t.empty()){let n=o-e.node.BBox.x+8;t.attr(`width`,n),o=Math.max(o,e.node.BBox.x+n+2)}}return{totalHeight:a,totalWidth:o}},`drawTree`),X={draw:t(async(e,t,r,i)=>{n.debug(`Rendering treeView diagram
|
|
4
4
|
`+e);let a=i.db,o=a.getRoot(),s=a.getConfig(),l=y(t),u=l.append(`g`);u.attr(`class`,`tree-view`);let{totalHeight:d,totalWidth:f}=Y(u,o,s,await K(o,s));l.attr(`viewBox`,`-${s.lineThickness/2} 0 ${f} ${d}`),c(l,d,f,s.useMaxWidth)},`draw`)},Z={labelFontSize:`16px`,labelColor:`black`,lineColor:`black`,iconColor:`#546e7a`,descriptionColor:`#6a9955`,highlightBg:`rgba(255, 193, 7, 0.15)`,highlightStroke:`#ffc107`},Q={db:I,renderer:X,parser:R,styles:t(({treeView:e})=>{let{labelFontSize:t,labelColor:n,lineColor:r,iconColor:i,descriptionColor:a,highlightBg:o,highlightStroke:s}=m(Z,e);return`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./mermaid-parser.core-
|
|
1
|
+
import{n as e}from"./mermaid-parser.core-CpkwJ-8U.js";import{n as t}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as n}from"./src-B6xuSHsQ.js";import{D as r,H as i,K as a,U as o,a as s,b as c,c as l,f as u,v as d,w as f,y as p}from"./chunk-DU6HZSFF-CHHMX1CR.js";import{i as m}from"./chunk-75Z2AOVW-962-yyBD.js";import{t as h}from"./chunk-JWPE2WC7-DVXcaiue.js";import{p as g}from"./mermaid-diagram-kbWN558y.js";var _={showLegend:!0,ticks:5,max:null,min:0,graticule:`circle`},v=32,y={axes:[],curves:[],options:_},b=structuredClone(y),x=u.radar,S=t(()=>m({...x,...c().radar}),`getConfig`),C=t(()=>b.axes,`getAxes`),w=t(()=>b.curves,`getCurves`),T=t(()=>b.options,`getOptions`),E=t(e=>{b.axes=e.map(e=>({name:e.name,label:e.label??e.name}))},`setAxes`),D=t(e=>{b.curves=e.map(e=>({name:e.name,label:e.label??e.name,entries:O(e.entries)}))},`setCurves`),O=t(e=>{if(e[0].axis==null)return e.map(e=>e.value);let t=C();if(t.length===0)throw Error(`Axes must be populated before curves for reference entries`);return t.map(t=>{let n=e.find(e=>e.axis?.$refText===t.name);if(n===void 0)throw Error(`Missing entry for axis `+t.label);return n.value})},`computeCurveEntries`),k={getAxes:C,getCurves:w,getOptions:T,setAxes:E,setCurves:D,setOptions:t(e=>{let t=e.reduce((e,t)=>(e[t.name]=t,e),{});b.options={showLegend:t.showLegend?.value??_.showLegend,ticks:t.ticks?.value??_.ticks,max:t.max?.value??_.max,min:t.min?.value??_.min,graticule:t.graticule?.value??_.graticule},b.options.ticks>v&&(n.warn(`Radar diagram ticks (${b.options.ticks}) exceeds maximum allowed (${v}). Using ${v} instead.`),b.options.ticks=v)},`setOptions`),getConfig:S,clear:t(()=>{s(),b=structuredClone(y)},`clear`),setAccTitle:o,getAccTitle:p,setDiagramTitle:a,getDiagramTitle:f,getAccDescription:d,setAccDescription:i},A=t(e=>{h(e,k);let{axes:t,curves:n,options:r}=e;k.setAxes(t),k.setCurves(n),k.setOptions(r)},`populate`),j={parse:t(async t=>{let r=await e(`radar`,t);n.debug(r),A(r)},`parse`)},M=t((e,t,n,r)=>{let i=r.db,a=i.getAxes(),o=i.getCurves(),s=i.getOptions(),c=i.getConfig(),l=i.getDiagramTitle(),u=N(g(t),c),d=s.max??Math.max(...o.map(e=>Math.max(...e.entries))),f=s.min,p=Math.min(c.width,c.height)/2;P(u,a,p,s.ticks,s.graticule),F(u,a,p,c),I(u,a,o,f,d,s.graticule,c),z(u,o,s.showLegend,c),u.append(`text`).attr(`class`,`radarTitle`).text(l).attr(`x`,0).attr(`y`,-c.height/2-c.marginTop)},`draw`),N=t((e,t)=>{let n=t.width+t.marginLeft+t.marginRight,r=t.height+t.marginTop+t.marginBottom,i={x:t.marginLeft+t.width/2,y:t.marginTop+t.height/2};return l(e,r,n,t.useMaxWidth??!0),e.attr(`viewBox`,`0 0 ${n} ${r}`).attr(`overflow`,`visible`),e.append(`g`).attr(`transform`,`translate(${i.x}, ${i.y})`)},`drawFrame`),P=t((e,t,n,r,i)=>{if(i===`circle`)for(let t=0;t<r;t++){let i=n*(t+1)/r;e.append(`circle`).attr(`r`,i).attr(`class`,`radarGraticule`)}else if(i===`polygon`){let i=t.length;for(let a=0;a<r;a++){let o=n*(a+1)/r,s=t.map((e,t)=>{let n=2*t*Math.PI/i-Math.PI/2;return`${o*Math.cos(n)},${o*Math.sin(n)}`}).join(` `);e.append(`polygon`).attr(`points`,s).attr(`class`,`radarGraticule`)}}},`drawGraticule`),F=t((e,t,n,r)=>{let i=t.length;for(let a=0;a<i;a++){let o=t[a].label,s=2*a*Math.PI/i-Math.PI/2,c=Math.cos(s),l=Math.sin(s);e.append(`line`).attr(`x1`,0).attr(`y1`,0).attr(`x2`,n*r.axisScaleFactor*c).attr(`y2`,n*r.axisScaleFactor*l).attr(`class`,`radarAxisLine`);let u=c>.01?`start`:c<-.01?`end`:`middle`,d=l>.01?`hanging`:l<-.01?`auto`:`central`;e.append(`text`).text(o).attr(`x`,n*r.axisLabelFactor*c+4*c).attr(`y`,n*r.axisLabelFactor*l+4*l).attr(`text-anchor`,u).attr(`dominant-baseline`,d).attr(`class`,`radarAxisLabel`)}},`drawAxes`);function I(e,t,n,r,i,a,o){let s=t.length,c=Math.min(o.width,o.height)/2;n.forEach((t,n)=>{if(t.entries.length!==s)return;let l=t.entries.map((e,t)=>{let n=2*Math.PI*t/s-Math.PI/2,a=L(e,r,i,c);return{x:a*Math.cos(n),y:a*Math.sin(n)}});a===`circle`?e.append(`path`).attr(`d`,R(l,o.curveTension)).attr(`class`,`radarCurve-${n}`):a===`polygon`&&e.append(`polygon`).attr(`points`,l.map(e=>`${e.x},${e.y}`).join(` `)).attr(`class`,`radarCurve-${n}`)})}t(I,`drawCurves`);function L(e,t,n,r){return r*(Math.min(Math.max(e,t),n)-t)/(n-t)}t(L,`relativeRadius`);function R(e,t){let n=e.length,r=`M${e[0].x},${e[0].y}`;for(let i=0;i<n;i++){let a=e[(i-1+n)%n],o=e[i],s=e[(i+1)%n],c=e[(i+2)%n],l={x:o.x+(s.x-a.x)*t,y:o.y+(s.y-a.y)*t},u={x:s.x-(c.x-o.x)*t,y:s.y-(c.y-o.y)*t};r+=` C${l.x},${l.y} ${u.x},${u.y} ${s.x},${s.y}`}return`${r} Z`}t(R,`closedRoundCurve`);function z(e,t,n,r){if(!n)return;let i=(r.width/2+r.marginRight)*3/4,a=-(r.height/2+r.marginTop)*3/4;t.forEach((t,n)=>{let r=e.append(`g`).attr(`transform`,`translate(${i}, ${a+n*20})`);r.append(`rect`).attr(`width`,12).attr(`height`,12).attr(`class`,`radarLegendBox-${n}`),r.append(`text`).attr(`x`,16).attr(`y`,0).attr(`class`,`radarLegendText`).text(t.label)})}t(z,`drawLegend`);var B={draw:M},V=t((e,t)=>{let n=``;for(let r=0;r<e.THEME_COLOR_LIMIT;r++){let i=e[`cScale${r}`];n+=`
|
|
2
2
|
.radarCurve-${r} {
|
|
3
3
|
color: ${i};
|
|
4
4
|
fill: ${i};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{T as e}from"./chunk-FOHPRMQF-CoA4358r.js";import{n as t}from"./mermaid-parser.core-
|
|
1
|
+
import{T as e}from"./chunk-FOHPRMQF-CoA4358r.js";import{n as t}from"./mermaid-parser.core-CpkwJ-8U.js";import{n}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as r,p as i}from"./src-B6xuSHsQ.js";import{H as a,K as o,U as s,Y as c,a as l,b as u,f as d,v as f,w as p,x as m,y as h,z as g}from"./chunk-DU6HZSFF-CHHMX1CR.js";import{_,i as ee,t as te}from"./chunk-75Z2AOVW-962-yyBD.js";import{t as ne}from"./chunk-JWPE2WC7-DVXcaiue.js";var v=`position frame`,y=`frame positioned`,b=`position relation`,x=`relation positioned`,re=n(function(e){r.debug(`options str`,e)},`setOptions`),ie=n(function(){return{}},`getOptions`),ae=n(function(){S(),l()},`clear`);function S(){C={}}n(S,`reset`);var oe=d.eventmodeling,se=n(()=>ee({...oe,...u().eventmodeling}),`getConfig`),C={};function w(){let e=ce,{ast:t}=C,n=D();if(!t)throw Error(`No data for EventModel`);return t.frames.forEach((i,a)=>{let o=P(i,t.dataEntities,n);e=J(e,{$kind:v,index:a,frame:i,textProps:o});let s;V(i)?(r.debug(`source frame`,i.sourceFrames),s=t.frames.filter(e=>i.sourceFrames.some(t=>t.$refText===e.name)),s.forEach(t=>{e=J(e,{$kind:b,index:a,frame:i,sourceFrame:t})})):e=J(e,{$kind:b,index:a,frame:i})}),e={...e,sortedSwimlanesArray:R(e.swimlanes)},e}n(w,`getState`);function T(e){C.ast=e}n(T,`setAst`);var E={swimlaneMinHeight:70,swimlanePadding:15,swimlaneGap:10,boxPadding:10,boxOverlap:90,boxDefaultY:0,boxMinWidth:80,boxMaxWidth:450,boxMinHeight:80,boxMaxHeight:750,contentStartX:250,textMaxWidth:430,boxTextFontWeight:`bold`,boxTextPadding:10,swimlaneTextFontWeight:`bold`,labelUiAutomation:`UI/Automation`,labelUiAutomationPrefix:`UI/A: `,labelCommandReadModel:`Command/Read Model`,labelCommandReadModelPrefix:`C/RM: `,labelEvents:`Events`,labelEventsPrefix:`Stream: `};function D(){return E}n(D,`getDiagramProps`);var ce={boxes:[],swimlanes:{},relations:[],maxR:0,sortedSwimlanesArray:[]};function O(e){let t=e.split(`.`);if(t.length===2)return t[0]}n(O,`extractNamespace`);function k(e){let t=e.split(`.`);return t.length===2?t[1]:e}n(k,`extractName`);function A(e,t){if(t&&t.length!==0)return Object.values(e).find(e=>e.namespace===t)}n(A,`findSwimlaneByNamespace`);function j(e,t,n){return Math.max(t,...Object.keys(e).filter(e=>{let r=Number.parseInt(e);return r>t&&r<n}).map(e=>Number.parseInt(e)))+1}n(j,`findNextAvailableIndex`);function M(e,t){let n=O(e.entityIdentifier),r=A(t,n);switch(e.modelEntityType){case`ui`:case`pcr`:case`processor`:return r?{index:r.index,label:r.namespace||E.labelUiAutomation}:n?{index:j(t,0,100),label:E.labelUiAutomationPrefix+n}:{index:0,label:E.labelUiAutomation};case`rmo`:case`readmodel`:case`cmd`:case`command`:return r?{index:r.index,label:r.namespace||E.labelCommandReadModel}:n?{index:j(t,100,200),label:E.labelCommandReadModelPrefix+n}:{index:100,label:E.labelCommandReadModel};default:return r?{index:r.index,label:r.namespace||E.labelEvents}:n?{index:j(t,200,300),label:E.labelEventsPrefix+n}:{index:200,label:E.labelEvents}}}n(M,`calculateSwimlaneProps`);function N(e){let{themeVariables:t}=u();switch(e.modelEntityType){case`ui`:return{fill:t.emUiFill??`white`,stroke:t.emUiStroke??`#dbdada`};case`pcr`:case`processor`:return{fill:t.emProcessorFill??`#edb3f6`,stroke:t.emProcessorStroke??`#b88cbf`};case`rmo`:case`readmodel`:return{fill:t.emReadModelFill??`#d3f1a2`,stroke:t.emReadModelStroke??`#a3b732`};case`cmd`:case`command`:return{fill:t.emCommandFill??`#bcd6fe`,stroke:t.emCommandStroke??`#679ac3`};case`evt`:case`event`:return{fill:t.emEventFill??`#ffb778`,stroke:t.emEventStroke??`#c19a0f`};default:return{fill:`red`,stroke:`black`}}}n(N,`calculateEntityVisualProps`);function P(e,t,n){let i=u(),a=g(k(e.entityIdentifier)??``,i),o,s={fontSize:16,fontWeight:700,fontFamily:`"trebuchet ms", verdana, arial, sans-serif`,joinWith:`<br/>`},c=`<b>${_(a,n.textMaxWidth,s)}</b>`;if(e.dataInlineValue&&(o=e.dataInlineValue,o=o.substring(o.indexOf(`{`)+1),o=o.substring(0,o.lastIndexOf(`}`)-1),o=g(o,i),o=_(o,n.textMaxWidth,s),o=o.replaceAll(` `,` `)),e.dataReference){let r=t.find(t=>t.name===e.dataReference?.$refText);r&&(o=r.dataBlockValue,o=o.substring(o.indexOf(`{
|
|
2
2
|
`)+2),o=o.substring(0,o.lastIndexOf(`}`)-1),o=g(o,i),o=_(o,n.textMaxWidth,s),o=o.replaceAll(` `,` `),o+=`<br/>`)}let l=o!==void 0;l&&(c+=`<br/><br/><code style="text-align: left; display: block;max-width:${n.textMaxWidth}px">${o}</code>`);let d={fontSize:s.fontSize,fontWeight:s.fontWeight,fontFamily:s.fontFamily},f=te(c,d),p=l?f.width/3:f.width,m={content:c,width:p,height:f.height};return r.debug(`[${e.name}] ${e.entityIdentifier} text`,m),m}n(P,`calculateTextProps`);function F(e,t){let n=t,r=N(n.frame),i={width:n.textProps.width+2*E.boxTextPadding,height:n.textProps.height+2*E.boxTextPadding};return[{$kind:y,frame:n.frame,index:n.index,visual:r,dimension:i,textProps:n.textProps}]}n(F,`decidePositionFrame`);function I(e,t,n){return t===void 0?E.contentStartX:t.index===e.index&&e.r?e.r+E.boxPadding:n===void 0?E.contentStartX:n.r-E.boxOverlap+E.boxPadding}n(I,`calculateX`);function L(e,t){let n=[...e.map(e=>e.r),t];return Math.max(...n)}n(L,`calculateMaxRight`);function R(e){return Object.values(e).sort((e,t)=>e.index-t.index)}n(R,`sortedSwimlanesArray`);function z(e,t){let n=t,r=M(n.frame,e.swimlanes),i;i=r.index in e.swimlanes?e.swimlanes[r.index]:{index:r.index,label:r.label,r:0,y:r.index*E.swimlaneMinHeight+E.swimlaneGap,height:E.swimlaneMinHeight,maxHeight:E.swimlaneMinHeight};let a=e.boxes.length>0?e.boxes[e.boxes.length-1]:void 0,o=e.previousSwimlaneNumber===void 0?void 0:e.swimlanes[e.previousSwimlaneNumber],s={width:Math.max(E.boxMinWidth,Math.min(E.boxMaxWidth,n.dimension.width))+2*E.boxPadding,height:Math.max(E.boxMinHeight,Math.min(E.boxMaxHeight,n.dimension.height))+2*E.boxPadding},c=I(i,o,a),l=c+s.width+E.boxPadding,u=L(Object.values(e.swimlanes),l);i.r=c+s.width,i.maxHeight=Math.max(i.maxHeight,s.height),i.height=Math.max(E.swimlaneMinHeight,i.maxHeight)+2*E.swimlanePadding;let d={x:c,y:E.swimlanePadding+i.y,r:l,dimension:s,leftSibling:!1,swimlane:i,visual:n.visual,text:n.textProps.content,frame:n.frame,index:n.index},f={...e,boxes:[...e.boxes,d],swimlanes:{...e.swimlanes,[`${i.index}`]:i},previousSwimlaneNumber:r.index,previousFrame:n.frame,maxR:u},p=R(f.swimlanes);p.length>0&&(p[0].y=0);for(let e=1;e<p.length;e++){let t=p[e],n=p[e-1];t.y=n.y+n.height+E.swimlaneGap}return f}n(z,`evolveFramePositioned`);function B(e,t){return e===0&&t.sourceFrames.length===0}n(B,`isFirstFrame`);function V(e){return e.sourceFrames!==void 0&&e.sourceFrames!==null&&e.sourceFrames.length>0}n(V,`hasSourceFrame`);function H(e,t){if(t!=null)return e.find(e=>e.frame.name===t.name)}n(H,`findBoxByFrame`);function U(e,t,n){if(!(n<0))for(let r=n;r>=0;r--){let n=e[r];if(n.swimlane.index!==t)return n}}n(U,`findBoxByLineIndex`);function W(t,n){let r=n;if(e(r.frame)||B(r.index,r.frame))return[];let i=H(t.boxes,r.frame);if(i===void 0)throw Error(`Target box not found for frame ${r.frame.name}`);let a;return a=r.sourceFrame?H(t.boxes,r.sourceFrame):U(t.boxes,i.swimlane.index,r.index-1),a===void 0?[]:[{$kind:x,frame:r.frame,index:r.index,sourceBox:a,targetBox:i}]}n(W,`decidePositionRelation`);function G(e,t){let n=t,r={visual:{fill:`none`,stroke:`#000`},source:{x:n.sourceBox.x,y:n.sourceBox.y},target:{x:n.targetBox.x,y:n.targetBox.y},sourceBox:n.sourceBox,targetBox:n.targetBox};return{...e,relations:[...e.relations,r]}}n(G,`evolveRelationPositioned`);var le={[v]:F,[b]:W},ue={[y]:z,[x]:G};function K(e,t){let n=le[t.$kind];if(n==null)return[];let i=n(e,t);return r.debug(`decided events`,i),i}n(K,`decide`);function q(e,t){let n=t.reduce((e,t)=>{let n=ue[t.$kind];return n==null?e:n(e,t)},e);return r.debug(`evolve events`,{state:e,newState:n,events:t}),n}n(q,`evolve`);function J(e,t){return q(e,K(e,t))}n(J,`dispatch`);var Y={getConfig:se,setOptions:re,getOptions:ie,clear:ae,setAccTitle:s,getAccTitle:h,getAccDescription:f,setAccDescription:a,setDiagramTitle:o,getDiagramTitle:p,setAst:T,getDiagramProps:D,getState:w},de={parse:n(async e=>{let n=await t(`eventmodeling`,e);r.debug(n),Y.setAst(n),ne(n,Y)},`parse`)},fe=m()?.eventmodeling;function X(e,t){return n=>{let r=n.swimlane.y+t.swimlanePadding,i=e.append(`g`).attr(`class`,`em-box`);i.append(`rect`).attr(`x`,n.x).attr(`y`,r).attr(`rx`,`3`).attr(`width`,n.dimension.width).attr(`height`,n.dimension.height).attr(`stroke`,n.visual.stroke).attr(`fill`,n.visual.fill),i.append(`foreignObject`).attr(`x`,n.x+t.boxPadding).attr(`y`,r+10).attr(`width`,n.dimension.width-2*t.boxPadding).attr(`height`,n.dimension.height-2*t.boxPadding).append(`xhtml:div`).style(`display`,`table`).style(`height`,`100%`).style(`width`,`100%`).append(`span`).style(`display`,`table-cell`).style(`text-align`,`center`).style(`vertical-align`,`middle`).html(n.text)}}n(X,`renderD3Box`);function Z(e,t){return e>t}n(Z,`dirUpwards`);function Q(e,t,n,i){return a=>{let o=a.sourceBox.swimlane.y+t.swimlanePadding,s=a.targetBox.swimlane.y+t.swimlanePadding,c=Z(o,s),l=a.sourceBox.x+a.sourceBox.dimension.width*2/3,u=a.targetBox.x+a.targetBox.dimension.width/3,d,f;r.debug(`rendering relation up=${c} for `,{sourceBox:a.sourceBox,targetBox:a.targetBox}),c?(d=o,f=s+a.targetBox.dimension.height):(d=o+a.sourceBox.dimension.height,f=s);let p=i.emRelationStroke??a.visual.stroke;e.append(`path`).attr(`class`,`em-relation`).attr(`fill`,a.visual.fill).attr(`stroke`,p).attr(`stroke-width`,`1`).attr(`marker-end`,`url(#${n})`).attr(`d`,`M${l} ${d} L${u} ${f}`)}}n(Q,`renderD3Relation`);function $(e,t,n,r){return i=>{let a=e.append(`g`).attr(`class`,`em-swimlane`),o=r.emSwimlaneBackgroundOdd??`rgb(250,250,250)`,s=r.emSwimlaneBackgroundStroke??`rgb(240,240,240)`;a.append(`rect`).attr(`x`,0).attr(`y`,i.y).attr(`rx`,`3`).attr(`width`,t+n.swimlanePadding).attr(`height`,i.height).attr(`fill`,o).attr(`stroke`,s),a.append(`text`).attr(`font-weight`,n.swimlaneTextFontWeight).attr(`x`,30).attr(`y`,i.y+30).text(i.label)}}n($,`renderD3Swimlane`);var pe={parser:de,db:Y,renderer:{draw:n(function(e,t,n,a){if(r.debug(`in eventmodeling renderer`,e+`
|
|
3
3
|
`,`id:`,t,n),!fe)throw Error(`EventModeling config not found`);let o=a.db,{themeVariables:s,eventmodeling:l}=m(),u=i(`[id="${t}"]`),d=o.getDiagramProps(),f=o.getState(),p=`em-arrowhead-${t}`,h=s.emArrowhead??`#000000`;f.sortedSwimlanesArray.forEach($(u,f.maxR,d,s)),f.boxes.forEach(X(u,d)),f.relations.forEach(Q(u,d,p,s)),u.append(`defs`).append(`marker`).attr(`id`,p).attr(`markerWidth`,`10`).attr(`markerHeight`,`7`).attr(`refX`,`10`).attr(`refY`,`3.5`).attr(`orient`,`auto`).append(`polygon`).attr(`points`,`0 0, 10 3.5, 0 7`).attr(`fill`,h),c(void 0,u,l?.padding??30,l?.useMaxWidth)},`draw`)},styles:n(e=>``,`getStyles`)};export{pe as diagram};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./mermaid-parser.core-DK0kgowR.js";import{n as t}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as n,p as r}from"./src-B6xuSHsQ.js";import{D as i,H as a,K as o,U as s,a as c,b as l,c as u,f as d,v as f,w as p,y as m}from"./chunk-DU6HZSFF-nxkO_ute.js";import{t as h}from"./ordinal-BDEzSJ7C.js";import{t as g}from"./defaultLocale-BFoDCU3G.js";import{i as _}from"./chunk-75Z2AOVW-FUHgKXYa.js";import{t as v}from"./chunk-JWPE2WC7-DVXcaiue.js";import{i as y,n as b}from"./chunk-P2QGCYS3-B1FUAlmg.js";import{t as x}from"./chunk-POPQ4Y6H-BKVSxG-w.js";import{p as S}from"./mermaid-diagram-CESNj6Ju.js";function C(e){var t=0,n=e.children,r=n&&n.length;if(!r)t=1;else for(;--r>=0;)t+=n[r].value;e.value=t}function w(){return this.eachAfter(C)}function T(e,t){let n=-1;for(let r of this)e.call(t,r,++n,this);return this}function E(e,t){for(var n=this,r=[n],i,a,o=-1;n=r.pop();)if(e.call(t,n,++o,this),i=n.children)for(a=i.length-1;a>=0;--a)r.push(i[a]);return this}function D(e,t){for(var n=this,r=[n],i=[],a,o,s,c=-1;n=r.pop();)if(i.push(n),a=n.children)for(o=0,s=a.length;o<s;++o)r.push(a[o]);for(;n=i.pop();)e.call(t,n,++c,this);return this}function O(e,t){let n=-1;for(let r of this)if(e.call(t,r,++n,this))return r}function k(e){return this.eachAfter(function(t){for(var n=+e(t.data)||0,r=t.children,i=r&&r.length;--i>=0;)n+=r[i].value;t.value=n})}function A(e){return this.eachBefore(function(t){t.children&&t.children.sort(e)})}function j(e){for(var t=this,n=M(t,e),r=[t];t!==n;)t=t.parent,r.push(t);for(var i=r.length;e!==n;)r.splice(i,0,e),e=e.parent;return r}function M(e,t){if(e===t)return e;var n=e.ancestors(),r=t.ancestors(),i=null;for(e=n.pop(),t=r.pop();e===t;)i=e,e=n.pop(),t=r.pop();return i}function N(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t}function P(){return Array.from(this)}function F(){var e=[];return this.eachBefore(function(t){t.children||e.push(t)}),e}function I(){var e=this,t=[];return e.each(function(n){n!==e&&t.push({source:n.parent,target:n})}),t}function*L(){var e=this,t,n=[e],r,i,a;do for(t=n.reverse(),n=[];e=t.pop();)if(yield e,r=e.children)for(i=0,a=r.length;i<a;++i)n.push(r[i]);while(n.length)}function R(e,t){e instanceof Map?(e=[void 0,e],t===void 0&&(t=V)):t===void 0&&(t=B);for(var n=new W(e),r,i=[n],a,o,s,c;r=i.pop();)if((o=t(r.data))&&(c=(o=Array.from(o)).length))for(r.children=o,s=c-1;s>=0;--s)i.push(a=o[s]=new W(o[s])),a.parent=r,a.depth=r.depth+1;return n.eachBefore(U)}function z(){return R(this).eachBefore(H)}function B(e){return e.children}function V(e){return Array.isArray(e)?e[1]:null}function H(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}function U(e){var t=0;do e.height=t;while((e=e.parent)&&e.height<++t)}function W(e){this.data=e,this.depth=this.height=0,this.parent=null}W.prototype=R.prototype={constructor:W,count:w,each:T,eachAfter:D,eachBefore:E,find:O,sum:k,sort:A,path:j,ancestors:N,descendants:P,leaves:F,links:I,copy:z,[Symbol.iterator]:L};function G(e){if(typeof e!=`function`)throw Error();return e}function K(){return 0}function q(e){return function(){return e}}function ee(e){e.x0=Math.round(e.x0),e.y0=Math.round(e.y0),e.x1=Math.round(e.x1),e.y1=Math.round(e.y1)}function te(e,t,n,r,i){for(var a=e.children,o,s=-1,c=a.length,l=e.value&&(r-t)/e.value;++s<c;)o=a[s],o.y0=n,o.y1=i,o.x0=t,o.x1=t+=o.value*l}function ne(e,t,n,r,i){for(var a=e.children,o,s=-1,c=a.length,l=e.value&&(i-n)/e.value;++s<c;)o=a[s],o.x0=t,o.x1=r,o.y0=n,o.y1=n+=o.value*l}var re=(1+Math.sqrt(5))/2;function ie(e,t,n,r,i,a){for(var o=[],s=t.children,c,l,u=0,d=0,f=s.length,p,m,h=t.value,g,_,v,y,b,x,S;u<f;){p=i-n,m=a-r;do g=s[d++].value;while(!g&&d<f);for(_=v=g,x=Math.max(m/p,p/m)/(h*e),S=g*g*x,b=Math.max(v/S,S/_);d<f;++d){if(g+=l=s[d].value,l<_&&(_=l),l>v&&(v=l),S=g*g*x,y=Math.max(v/S,S/_),y>b){g-=l;break}b=y}o.push(c={value:g,dice:p<m,children:s.slice(u,d)}),c.dice?te(c,n,r,i,h?r+=m*g/h:a):ne(c,n,r,h?n+=p*g/h:i,a),h-=g,u=d}return o}var ae=(function e(t){function n(e,n,r,i,a){ie(t,e,n,r,i,a)}return n.ratio=function(t){return e((t=+t)>1?t:1)},n})(re);function oe(){var e=ae,t=!1,n=1,r=1,i=[0],a=K,o=K,s=K,c=K,l=K;function u(e){return e.x0=e.y0=0,e.x1=n,e.y1=r,e.eachBefore(d),i=[0],t&&e.eachBefore(ee),e}function d(t){var n=i[t.depth],r=t.x0+n,u=t.y0+n,d=t.x1-n,f=t.y1-n;d<r&&(r=d=(r+d)/2),f<u&&(u=f=(u+f)/2),t.x0=r,t.y0=u,t.x1=d,t.y1=f,t.children&&(n=i[t.depth+1]=a(t)/2,r+=l(t)-n,u+=o(t)-n,d-=s(t)-n,f-=c(t)-n,d<r&&(r=d=(r+d)/2),f<u&&(u=f=(u+f)/2),e(t,r,u,d,f))}return u.round=function(e){return arguments.length?(t=!!e,u):t},u.size=function(e){return arguments.length?(n=+e[0],r=+e[1],u):[n,r]},u.tile=function(t){return arguments.length?(e=G(t),u):e},u.padding=function(e){return arguments.length?u.paddingInner(e).paddingOuter(e):u.paddingInner()},u.paddingInner=function(e){return arguments.length?(a=typeof e==`function`?e:q(+e),u):a},u.paddingOuter=function(e){return arguments.length?u.paddingTop(e).paddingRight(e).paddingBottom(e).paddingLeft(e):u.paddingTop()},u.paddingTop=function(e){return arguments.length?(o=typeof e==`function`?e:q(+e),u):o},u.paddingRight=function(e){return arguments.length?(s=typeof e==`function`?e:q(+e),u):s},u.paddingBottom=function(e){return arguments.length?(c=typeof e==`function`?e:q(+e),u):c},u.paddingLeft=function(e){return arguments.length?(l=typeof e==`function`?e:q(+e),u):l},u}var J=class{constructor(){this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.setAccTitle=s,this.getAccTitle=m,this.setDiagramTitle=o,this.getDiagramTitle=p,this.getAccDescription=f,this.setAccDescription=a}static{t(this,`TreeMapDB`)}getNodes(){return this.nodes}getConfig(){let e=d,t=l();return _({...e.treemap,...t.treemap??{}})}addNode(e,t){this.nodes.push(e),this.levels.set(e,t),t===0&&(this.outerNodes.push(e),this.root??=e)}getRoot(){return{name:``,children:this.outerNodes}}addClass(e,t){let n=this.classes.get(e)??{id:e,styles:[],textStyles:[]},r=t.replace(/\\,/g,`§§§`).replace(/,/g,`;`).replace(/§§§/g,`,`).split(`;`);r&&r.forEach(e=>{b(e)&&(n?.textStyles?n.textStyles.push(e):n.textStyles=[e]),n?.styles?n.styles.push(e):n.styles=[e]}),this.classes.set(e,n)}getClasses(){return this.classes}getStylesForClass(e){return this.classes.get(e)?.styles??[]}clear(){c(),this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.root=void 0}};function Y(e){if(!e.length)return[];let t=[],n=[];return e.forEach(e=>{let r={name:e.name,children:e.type===`Leaf`?void 0:[]};for(r.classSelector=e?.classSelector,e?.cssCompiledStyles&&(r.cssCompiledStyles=e.cssCompiledStyles),e.type===`Leaf`&&e.value!==void 0&&(r.value=e.value);n.length>0&&n[n.length-1].level>=e.level;)n.pop();if(n.length===0)t.push(r);else{let e=n[n.length-1].node;e.children?e.children.push(r):e.children=[r]}e.type!==`Leaf`&&n.push({node:r,level:e.level})}),t}t(Y,`buildHierarchy`);var se=t((e,n)=>{v(e,n);let r=[];for(let t of e.TreemapRows??[])t.$type===`ClassDefStatement`&&n.addClass(t.className??``,t.styleText??``);for(let t of e.TreemapRows??[]){let e=t.item;if(!e)continue;let i=t.indent?parseInt(t.indent):0,a=ce(e),o=e.classSelector?n.getStylesForClass(e.classSelector):[],s=o.length>0?o:void 0,c={level:i,name:a,type:e.$type,value:e.value,classSelector:e.classSelector,cssCompiledStyles:s};r.push(c)}let i=Y(r),a=t((e,t)=>{for(let r of e)n.addNode(r,t),r.children&&r.children.length>0&&a(r.children,t+1)},`addNodesRecursively`);a(i,0)},`populate`),ce=t(e=>e.name?String(e.name):``,`getItemName`),X={parser:{yy:void 0},parse:t(async t=>{try{let r=await e(`treemap`,t);n.debug(`Treemap AST:`,r);let i=X.parser?.yy;if(!(i instanceof J))throw Error(`parser.parser?.yy was not a TreemapDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.`);se(r,i)}catch(e){throw n.error(`Error parsing treemap:`,e),e}},`parse`)},Z=10,Q=10,$=25,le={draw:t((e,i,a,o)=>{let s=o.db,c=s.getConfig(),d=c.padding??Z,f=s.getDiagramTitle(),p=s.getRoot(),{themeVariables:m}=l();if(!p)return;let _=f?30:0,v=S(i),b=c.nodeWidth?c.nodeWidth*Q:960,C=c.nodeHeight?c.nodeHeight*Q:500,w=b,T=C+_;v.attr(`viewBox`,`0 0 ${w} ${T}`),u(v,T,w,c.useMaxWidth);let E;try{let e=c.valueFormat||`,`;if(e===`$0,0`)E=t(e=>`$`+g(`,`)(e),`valueFormat`);else if(e.startsWith(`$`)&&e.includes(`,`)){let n=/\.\d+/.exec(e),r=n?n[0]:``;E=t(e=>`$`+g(`,`+r)(e),`valueFormat`)}else if(e.startsWith(`$`)){let n=e.substring(1);E=t(e=>`$`+g(n||``)(e),`valueFormat`)}else E=g(e)}catch(e){n.error(`Error creating format function:`,e),E=g(`,`)}let D=h().range([`transparent`,m.cScale0,m.cScale1,m.cScale2,m.cScale3,m.cScale4,m.cScale5,m.cScale6,m.cScale7,m.cScale8,m.cScale9,m.cScale10,m.cScale11]),O=h().range([`transparent`,m.cScalePeer0,m.cScalePeer1,m.cScalePeer2,m.cScalePeer3,m.cScalePeer4,m.cScalePeer5,m.cScalePeer6,m.cScalePeer7,m.cScalePeer8,m.cScalePeer9,m.cScalePeer10,m.cScalePeer11]),k=h().range([m.cScaleLabel0,m.cScaleLabel1,m.cScaleLabel2,m.cScaleLabel3,m.cScaleLabel4,m.cScaleLabel5,m.cScaleLabel6,m.cScaleLabel7,m.cScaleLabel8,m.cScaleLabel9,m.cScaleLabel10,m.cScaleLabel11]);f&&v.append(`text`).attr(`x`,w/2).attr(`y`,_/2).attr(`class`,`treemapTitle`).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,`middle`).text(f);let A=v.append(`g`).attr(`transform`,`translate(0, ${_})`).attr(`class`,`treemapContainer`),j=R(p).sum(e=>e.value??0).sort((e,t)=>(t.value??0)-(e.value??0)),M=oe().size([b,C]).paddingTop(e=>e.children&&e.children.length>0?$+Q:0).paddingInner(d).paddingLeft(e=>e.children&&e.children.length>0?Q:0).paddingRight(e=>e.children&&e.children.length>0?Q:0).paddingBottom(e=>e.children&&e.children.length>0?Q:0).round(!0)(j),N=M.descendants().filter(e=>e.children&&e.children.length>0),P=A.selectAll(`.treemapSection`).data(N).enter().append(`g`).attr(`class`,`treemapSection`).attr(`transform`,e=>`translate(${e.x0},${e.y0})`);P.append(`rect`).attr(`width`,e=>e.x1-e.x0).attr(`height`,$).attr(`class`,`treemapSectionHeader`).attr(`fill`,`none`).attr(`fill-opacity`,.6).attr(`stroke-width`,.6).attr(`style`,e=>e.depth===0?`display: none;`:``),P.append(`clipPath`).attr(`id`,(e,t)=>`clip-section-${i}-${t}`).append(`rect`).attr(`width`,e=>Math.max(0,e.x1-e.x0-12)).attr(`height`,$),P.append(`rect`).attr(`width`,e=>e.x1-e.x0).attr(`height`,e=>e.y1-e.y0).attr(`class`,(e,t)=>`treemapSection section${t}`).attr(`fill`,e=>D(e.data.name)).attr(`fill-opacity`,.6).attr(`stroke`,e=>O(e.data.name)).attr(`stroke-width`,2).attr(`stroke-opacity`,.4).attr(`style`,e=>{if(e.depth===0)return`display: none;`;let t=y({cssCompiledStyles:e.data.cssCompiledStyles});return t.nodeStyles+`;`+t.borderStyles.join(`;`)}),P.append(`text`).attr(`class`,`treemapSectionLabel`).attr(`x`,6).attr(`y`,$/2).attr(`dominant-baseline`,`middle`).text(e=>e.depth===0?``:e.data.name).attr(`font-weight`,`bold`).attr(`clip-path`,(e,t)=>`url(#clip-section-${i}-${t})`).attr(`style`,e=>e.depth===0?`display: none;`:`dominant-baseline: middle; font-size: 12px; fill:`+k(e.data.name)+`; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;`+y({cssCompiledStyles:e.data.cssCompiledStyles}).labelStyles.replace(`color:`,`fill:`)).each(function(e){if(e.depth===0)return;let t=r(this),n=e.data.name;t.text(n);let i=e.x1-e.x0,a;a=c.showValues!==!1&&e.value?i-10-30-10-6:i-6-6;let o=Math.max(15,a),s=t.node();if(s.getComputedTextLength()>o){let e=n;for(;e.length>0;){if(e=n.substring(0,e.length-1),e.length===0){t.text(`...`),s.getComputedTextLength()>o&&t.text(``);break}if(t.text(e+`...`),s.getComputedTextLength()<=o)break}}}),c.showValues!==!1&&P.append(`text`).attr(`class`,`treemapSectionValue`).attr(`x`,e=>e.x1-e.x0-10).attr(`y`,$/2).attr(`text-anchor`,`end`).attr(`dominant-baseline`,`middle`).text(e=>e.value?E(e.value):``).attr(`font-style`,`italic`).attr(`style`,e=>e.depth===0?`display: none;`:`text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:`+k(e.data.name)+`; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;`+y({cssCompiledStyles:e.data.cssCompiledStyles}).labelStyles.replace(`color:`,`fill:`));let F=M.leaves(),I=F.length>20,L=I?16:38,z=I?14:28,B=I?4:8,V=I?4:6,H=I?2:4,U=I?8:10,W=I?1:2,G=A.selectAll(`.treemapLeafGroup`).data(F).enter().append(`g`).attr(`class`,(e,t)=>`treemapNode treemapLeafGroup leaf${t}${e.data.classSelector?` ${e.data.classSelector}`:``}x`).attr(`transform`,e=>`translate(${e.x0},${e.y0})`);G.append(`rect`).attr(`width`,e=>e.x1-e.x0).attr(`height`,e=>e.y1-e.y0).attr(`class`,`treemapLeaf`).attr(`fill`,e=>e.parent?D(e.parent.data.name):D(e.data.name)).attr(`style`,e=>y({cssCompiledStyles:e.data.cssCompiledStyles}).nodeStyles).attr(`fill-opacity`,.3).attr(`stroke`,e=>e.parent?D(e.parent.data.name):D(e.data.name)).attr(`stroke-width`,3),G.append(`clipPath`).attr(`id`,(e,t)=>`clip-${i}-${t}`).append(`rect`).attr(`width`,e=>Math.max(0,e.x1-e.x0-4)).attr(`height`,e=>Math.max(0,e.y1-e.y0-4)),G.append(`text`).attr(`class`,`treemapLabel`).attr(`x`,e=>(e.x1-e.x0)/2).attr(`y`,e=>(e.y1-e.y0)/2).attr(`style`,e=>`text-anchor: middle; dominant-baseline: middle; font-size: ${L}px;fill:`+k(e.data.name)+`;`+y({cssCompiledStyles:e.data.cssCompiledStyles}).labelStyles.replace(`color:`,`fill:`)).attr(`clip-path`,(e,t)=>`url(#clip-${i}-${t})`).text(e=>e.data.name).each(function(e){let t=r(this),n=e.x1-e.x0,i=e.y1-e.y0,a=t.node(),o=n-2*H,s=i-2*H;if(o<U||s<U){t.style(`display`,`none`);return}let c=parseInt(t.style(`font-size`),10),l=.6;for(;a.getComputedTextLength()>o&&c>B;)c--,t.style(`font-size`,`${c}px`);let u=Math.max(V,Math.min(z,Math.round(c*l))),d=c+W+u;for(;d>s&&c>B&&(c--,u=Math.max(V,Math.min(z,Math.round(c*l))),!(u<V&&c===B));)t.style(`font-size`,`${c}px`),d=c+W+u;t.style(`font-size`,`${c}px`),I?(c<B||s<B)&&t.style(`display`,`none`):(a.getComputedTextLength()>o||c<B||s<c)&&t.style(`display`,`none`)}),c.showValues!==!1&&G.append(`text`).attr(`class`,`treemapValue`).attr(`x`,e=>(e.x1-e.x0)/2).attr(`y`,function(e){return(e.y1-e.y0)/2}).attr(`style`,e=>`text-anchor: middle; dominant-baseline: hanging; font-size: ${z}px;fill:`+k(e.data.name)+`;`+y({cssCompiledStyles:e.data.cssCompiledStyles}).labelStyles.replace(`color:`,`fill:`)).attr(`clip-path`,(e,t)=>`url(#clip-${i}-${t})`).text(e=>e.value?E(e.value):``).each(function(e){let t=r(this),n=this.parentNode;if(!n){t.style(`display`,`none`);return}let i=r(n).select(`.treemapLabel`);if(i.empty()||i.style(`display`)===`none`){t.style(`display`,`none`);return}let a=parseFloat(i.style(`font-size`)),o=Math.max(V,Math.min(z,Math.round(a*.6)));t.style(`font-size`,`${o}px`);let s=(e.y1-e.y0)/2+a/2+W;t.attr(`y`,s);let c=e.x1-e.x0,l=e.y1-e.y0-4,u=c-2*H;t.node().getComputedTextLength()>u||s+o>l||o<V?t.style(`display`,`none`):t.style(`display`,null)});let K=c.diagramPadding??8;x(v,K,`flowchart`,c?.useMaxWidth||!1)},`draw`),getClasses:t(function(e,t){return t.db.getClasses()},`getClasses`)},ue={sectionStrokeColor:`black`,sectionStrokeWidth:`1`,sectionFillColor:`#efefef`,leafStrokeColor:`black`,leafStrokeWidth:`1`,leafFillColor:`#efefef`,labelFontSize:`12px`,valueFontSize:`10px`,titleFontSize:`14px`},de={parser:X,get db(){return new J},renderer:le,styles:t(({treemap:e}={})=>{let t=i(),n=l(),r=_(t,n.themeVariables),a=_(ue,e),o=a.titleColor??r.titleColor,s=a.labelColor??r.textColor,c=a.valueColor??r.textColor;return`
|
|
1
|
+
import{n as e}from"./mermaid-parser.core-CpkwJ-8U.js";import{n as t}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as n,p as r}from"./src-B6xuSHsQ.js";import{D as i,H as a,K as o,U as s,a as c,b as l,c as u,f as d,v as f,w as p,y as m}from"./chunk-DU6HZSFF-CHHMX1CR.js";import{t as h}from"./ordinal-BDEzSJ7C.js";import{t as g}from"./defaultLocale-BFoDCU3G.js";import{i as _}from"./chunk-75Z2AOVW-962-yyBD.js";import{t as v}from"./chunk-JWPE2WC7-DVXcaiue.js";import{i as y,n as b}from"./chunk-P2QGCYS3-SDkZ9hQX.js";import{t as x}from"./chunk-POPQ4Y6H-bdnFdIMc.js";import{p as S}from"./mermaid-diagram-kbWN558y.js";function C(e){var t=0,n=e.children,r=n&&n.length;if(!r)t=1;else for(;--r>=0;)t+=n[r].value;e.value=t}function w(){return this.eachAfter(C)}function T(e,t){let n=-1;for(let r of this)e.call(t,r,++n,this);return this}function E(e,t){for(var n=this,r=[n],i,a,o=-1;n=r.pop();)if(e.call(t,n,++o,this),i=n.children)for(a=i.length-1;a>=0;--a)r.push(i[a]);return this}function D(e,t){for(var n=this,r=[n],i=[],a,o,s,c=-1;n=r.pop();)if(i.push(n),a=n.children)for(o=0,s=a.length;o<s;++o)r.push(a[o]);for(;n=i.pop();)e.call(t,n,++c,this);return this}function O(e,t){let n=-1;for(let r of this)if(e.call(t,r,++n,this))return r}function k(e){return this.eachAfter(function(t){for(var n=+e(t.data)||0,r=t.children,i=r&&r.length;--i>=0;)n+=r[i].value;t.value=n})}function A(e){return this.eachBefore(function(t){t.children&&t.children.sort(e)})}function j(e){for(var t=this,n=M(t,e),r=[t];t!==n;)t=t.parent,r.push(t);for(var i=r.length;e!==n;)r.splice(i,0,e),e=e.parent;return r}function M(e,t){if(e===t)return e;var n=e.ancestors(),r=t.ancestors(),i=null;for(e=n.pop(),t=r.pop();e===t;)i=e,e=n.pop(),t=r.pop();return i}function N(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t}function P(){return Array.from(this)}function F(){var e=[];return this.eachBefore(function(t){t.children||e.push(t)}),e}function I(){var e=this,t=[];return e.each(function(n){n!==e&&t.push({source:n.parent,target:n})}),t}function*L(){var e=this,t,n=[e],r,i,a;do for(t=n.reverse(),n=[];e=t.pop();)if(yield e,r=e.children)for(i=0,a=r.length;i<a;++i)n.push(r[i]);while(n.length)}function R(e,t){e instanceof Map?(e=[void 0,e],t===void 0&&(t=V)):t===void 0&&(t=B);for(var n=new W(e),r,i=[n],a,o,s,c;r=i.pop();)if((o=t(r.data))&&(c=(o=Array.from(o)).length))for(r.children=o,s=c-1;s>=0;--s)i.push(a=o[s]=new W(o[s])),a.parent=r,a.depth=r.depth+1;return n.eachBefore(U)}function z(){return R(this).eachBefore(H)}function B(e){return e.children}function V(e){return Array.isArray(e)?e[1]:null}function H(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}function U(e){var t=0;do e.height=t;while((e=e.parent)&&e.height<++t)}function W(e){this.data=e,this.depth=this.height=0,this.parent=null}W.prototype=R.prototype={constructor:W,count:w,each:T,eachAfter:D,eachBefore:E,find:O,sum:k,sort:A,path:j,ancestors:N,descendants:P,leaves:F,links:I,copy:z,[Symbol.iterator]:L};function G(e){if(typeof e!=`function`)throw Error();return e}function K(){return 0}function q(e){return function(){return e}}function ee(e){e.x0=Math.round(e.x0),e.y0=Math.round(e.y0),e.x1=Math.round(e.x1),e.y1=Math.round(e.y1)}function te(e,t,n,r,i){for(var a=e.children,o,s=-1,c=a.length,l=e.value&&(r-t)/e.value;++s<c;)o=a[s],o.y0=n,o.y1=i,o.x0=t,o.x1=t+=o.value*l}function ne(e,t,n,r,i){for(var a=e.children,o,s=-1,c=a.length,l=e.value&&(i-n)/e.value;++s<c;)o=a[s],o.x0=t,o.x1=r,o.y0=n,o.y1=n+=o.value*l}var re=(1+Math.sqrt(5))/2;function ie(e,t,n,r,i,a){for(var o=[],s=t.children,c,l,u=0,d=0,f=s.length,p,m,h=t.value,g,_,v,y,b,x,S;u<f;){p=i-n,m=a-r;do g=s[d++].value;while(!g&&d<f);for(_=v=g,x=Math.max(m/p,p/m)/(h*e),S=g*g*x,b=Math.max(v/S,S/_);d<f;++d){if(g+=l=s[d].value,l<_&&(_=l),l>v&&(v=l),S=g*g*x,y=Math.max(v/S,S/_),y>b){g-=l;break}b=y}o.push(c={value:g,dice:p<m,children:s.slice(u,d)}),c.dice?te(c,n,r,i,h?r+=m*g/h:a):ne(c,n,r,h?n+=p*g/h:i,a),h-=g,u=d}return o}var ae=(function e(t){function n(e,n,r,i,a){ie(t,e,n,r,i,a)}return n.ratio=function(t){return e((t=+t)>1?t:1)},n})(re);function oe(){var e=ae,t=!1,n=1,r=1,i=[0],a=K,o=K,s=K,c=K,l=K;function u(e){return e.x0=e.y0=0,e.x1=n,e.y1=r,e.eachBefore(d),i=[0],t&&e.eachBefore(ee),e}function d(t){var n=i[t.depth],r=t.x0+n,u=t.y0+n,d=t.x1-n,f=t.y1-n;d<r&&(r=d=(r+d)/2),f<u&&(u=f=(u+f)/2),t.x0=r,t.y0=u,t.x1=d,t.y1=f,t.children&&(n=i[t.depth+1]=a(t)/2,r+=l(t)-n,u+=o(t)-n,d-=s(t)-n,f-=c(t)-n,d<r&&(r=d=(r+d)/2),f<u&&(u=f=(u+f)/2),e(t,r,u,d,f))}return u.round=function(e){return arguments.length?(t=!!e,u):t},u.size=function(e){return arguments.length?(n=+e[0],r=+e[1],u):[n,r]},u.tile=function(t){return arguments.length?(e=G(t),u):e},u.padding=function(e){return arguments.length?u.paddingInner(e).paddingOuter(e):u.paddingInner()},u.paddingInner=function(e){return arguments.length?(a=typeof e==`function`?e:q(+e),u):a},u.paddingOuter=function(e){return arguments.length?u.paddingTop(e).paddingRight(e).paddingBottom(e).paddingLeft(e):u.paddingTop()},u.paddingTop=function(e){return arguments.length?(o=typeof e==`function`?e:q(+e),u):o},u.paddingRight=function(e){return arguments.length?(s=typeof e==`function`?e:q(+e),u):s},u.paddingBottom=function(e){return arguments.length?(c=typeof e==`function`?e:q(+e),u):c},u.paddingLeft=function(e){return arguments.length?(l=typeof e==`function`?e:q(+e),u):l},u}var J=class{constructor(){this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.setAccTitle=s,this.getAccTitle=m,this.setDiagramTitle=o,this.getDiagramTitle=p,this.getAccDescription=f,this.setAccDescription=a}static{t(this,`TreeMapDB`)}getNodes(){return this.nodes}getConfig(){let e=d,t=l();return _({...e.treemap,...t.treemap??{}})}addNode(e,t){this.nodes.push(e),this.levels.set(e,t),t===0&&(this.outerNodes.push(e),this.root??=e)}getRoot(){return{name:``,children:this.outerNodes}}addClass(e,t){let n=this.classes.get(e)??{id:e,styles:[],textStyles:[]},r=t.replace(/\\,/g,`§§§`).replace(/,/g,`;`).replace(/§§§/g,`,`).split(`;`);r&&r.forEach(e=>{b(e)&&(n?.textStyles?n.textStyles.push(e):n.textStyles=[e]),n?.styles?n.styles.push(e):n.styles=[e]}),this.classes.set(e,n)}getClasses(){return this.classes}getStylesForClass(e){return this.classes.get(e)?.styles??[]}clear(){c(),this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.root=void 0}};function Y(e){if(!e.length)return[];let t=[],n=[];return e.forEach(e=>{let r={name:e.name,children:e.type===`Leaf`?void 0:[]};for(r.classSelector=e?.classSelector,e?.cssCompiledStyles&&(r.cssCompiledStyles=e.cssCompiledStyles),e.type===`Leaf`&&e.value!==void 0&&(r.value=e.value);n.length>0&&n[n.length-1].level>=e.level;)n.pop();if(n.length===0)t.push(r);else{let e=n[n.length-1].node;e.children?e.children.push(r):e.children=[r]}e.type!==`Leaf`&&n.push({node:r,level:e.level})}),t}t(Y,`buildHierarchy`);var se=t((e,n)=>{v(e,n);let r=[];for(let t of e.TreemapRows??[])t.$type===`ClassDefStatement`&&n.addClass(t.className??``,t.styleText??``);for(let t of e.TreemapRows??[]){let e=t.item;if(!e)continue;let i=t.indent?parseInt(t.indent):0,a=ce(e),o=e.classSelector?n.getStylesForClass(e.classSelector):[],s=o.length>0?o:void 0,c={level:i,name:a,type:e.$type,value:e.value,classSelector:e.classSelector,cssCompiledStyles:s};r.push(c)}let i=Y(r),a=t((e,t)=>{for(let r of e)n.addNode(r,t),r.children&&r.children.length>0&&a(r.children,t+1)},`addNodesRecursively`);a(i,0)},`populate`),ce=t(e=>e.name?String(e.name):``,`getItemName`),X={parser:{yy:void 0},parse:t(async t=>{try{let r=await e(`treemap`,t);n.debug(`Treemap AST:`,r);let i=X.parser?.yy;if(!(i instanceof J))throw Error(`parser.parser?.yy was not a TreemapDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.`);se(r,i)}catch(e){throw n.error(`Error parsing treemap:`,e),e}},`parse`)},Z=10,Q=10,$=25,le={draw:t((e,i,a,o)=>{let s=o.db,c=s.getConfig(),d=c.padding??Z,f=s.getDiagramTitle(),p=s.getRoot(),{themeVariables:m}=l();if(!p)return;let _=f?30:0,v=S(i),b=c.nodeWidth?c.nodeWidth*Q:960,C=c.nodeHeight?c.nodeHeight*Q:500,w=b,T=C+_;v.attr(`viewBox`,`0 0 ${w} ${T}`),u(v,T,w,c.useMaxWidth);let E;try{let e=c.valueFormat||`,`;if(e===`$0,0`)E=t(e=>`$`+g(`,`)(e),`valueFormat`);else if(e.startsWith(`$`)&&e.includes(`,`)){let n=/\.\d+/.exec(e),r=n?n[0]:``;E=t(e=>`$`+g(`,`+r)(e),`valueFormat`)}else if(e.startsWith(`$`)){let n=e.substring(1);E=t(e=>`$`+g(n||``)(e),`valueFormat`)}else E=g(e)}catch(e){n.error(`Error creating format function:`,e),E=g(`,`)}let D=h().range([`transparent`,m.cScale0,m.cScale1,m.cScale2,m.cScale3,m.cScale4,m.cScale5,m.cScale6,m.cScale7,m.cScale8,m.cScale9,m.cScale10,m.cScale11]),O=h().range([`transparent`,m.cScalePeer0,m.cScalePeer1,m.cScalePeer2,m.cScalePeer3,m.cScalePeer4,m.cScalePeer5,m.cScalePeer6,m.cScalePeer7,m.cScalePeer8,m.cScalePeer9,m.cScalePeer10,m.cScalePeer11]),k=h().range([m.cScaleLabel0,m.cScaleLabel1,m.cScaleLabel2,m.cScaleLabel3,m.cScaleLabel4,m.cScaleLabel5,m.cScaleLabel6,m.cScaleLabel7,m.cScaleLabel8,m.cScaleLabel9,m.cScaleLabel10,m.cScaleLabel11]);f&&v.append(`text`).attr(`x`,w/2).attr(`y`,_/2).attr(`class`,`treemapTitle`).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,`middle`).text(f);let A=v.append(`g`).attr(`transform`,`translate(0, ${_})`).attr(`class`,`treemapContainer`),j=R(p).sum(e=>e.value??0).sort((e,t)=>(t.value??0)-(e.value??0)),M=oe().size([b,C]).paddingTop(e=>e.children&&e.children.length>0?$+Q:0).paddingInner(d).paddingLeft(e=>e.children&&e.children.length>0?Q:0).paddingRight(e=>e.children&&e.children.length>0?Q:0).paddingBottom(e=>e.children&&e.children.length>0?Q:0).round(!0)(j),N=M.descendants().filter(e=>e.children&&e.children.length>0),P=A.selectAll(`.treemapSection`).data(N).enter().append(`g`).attr(`class`,`treemapSection`).attr(`transform`,e=>`translate(${e.x0},${e.y0})`);P.append(`rect`).attr(`width`,e=>e.x1-e.x0).attr(`height`,$).attr(`class`,`treemapSectionHeader`).attr(`fill`,`none`).attr(`fill-opacity`,.6).attr(`stroke-width`,.6).attr(`style`,e=>e.depth===0?`display: none;`:``),P.append(`clipPath`).attr(`id`,(e,t)=>`clip-section-${i}-${t}`).append(`rect`).attr(`width`,e=>Math.max(0,e.x1-e.x0-12)).attr(`height`,$),P.append(`rect`).attr(`width`,e=>e.x1-e.x0).attr(`height`,e=>e.y1-e.y0).attr(`class`,(e,t)=>`treemapSection section${t}`).attr(`fill`,e=>D(e.data.name)).attr(`fill-opacity`,.6).attr(`stroke`,e=>O(e.data.name)).attr(`stroke-width`,2).attr(`stroke-opacity`,.4).attr(`style`,e=>{if(e.depth===0)return`display: none;`;let t=y({cssCompiledStyles:e.data.cssCompiledStyles});return t.nodeStyles+`;`+t.borderStyles.join(`;`)}),P.append(`text`).attr(`class`,`treemapSectionLabel`).attr(`x`,6).attr(`y`,$/2).attr(`dominant-baseline`,`middle`).text(e=>e.depth===0?``:e.data.name).attr(`font-weight`,`bold`).attr(`clip-path`,(e,t)=>`url(#clip-section-${i}-${t})`).attr(`style`,e=>e.depth===0?`display: none;`:`dominant-baseline: middle; font-size: 12px; fill:`+k(e.data.name)+`; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;`+y({cssCompiledStyles:e.data.cssCompiledStyles}).labelStyles.replace(`color:`,`fill:`)).each(function(e){if(e.depth===0)return;let t=r(this),n=e.data.name;t.text(n);let i=e.x1-e.x0,a;a=c.showValues!==!1&&e.value?i-10-30-10-6:i-6-6;let o=Math.max(15,a),s=t.node();if(s.getComputedTextLength()>o){let e=n;for(;e.length>0;){if(e=n.substring(0,e.length-1),e.length===0){t.text(`...`),s.getComputedTextLength()>o&&t.text(``);break}if(t.text(e+`...`),s.getComputedTextLength()<=o)break}}}),c.showValues!==!1&&P.append(`text`).attr(`class`,`treemapSectionValue`).attr(`x`,e=>e.x1-e.x0-10).attr(`y`,$/2).attr(`text-anchor`,`end`).attr(`dominant-baseline`,`middle`).text(e=>e.value?E(e.value):``).attr(`font-style`,`italic`).attr(`style`,e=>e.depth===0?`display: none;`:`text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:`+k(e.data.name)+`; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;`+y({cssCompiledStyles:e.data.cssCompiledStyles}).labelStyles.replace(`color:`,`fill:`));let F=M.leaves(),I=F.length>20,L=I?16:38,z=I?14:28,B=I?4:8,V=I?4:6,H=I?2:4,U=I?8:10,W=I?1:2,G=A.selectAll(`.treemapLeafGroup`).data(F).enter().append(`g`).attr(`class`,(e,t)=>`treemapNode treemapLeafGroup leaf${t}${e.data.classSelector?` ${e.data.classSelector}`:``}x`).attr(`transform`,e=>`translate(${e.x0},${e.y0})`);G.append(`rect`).attr(`width`,e=>e.x1-e.x0).attr(`height`,e=>e.y1-e.y0).attr(`class`,`treemapLeaf`).attr(`fill`,e=>e.parent?D(e.parent.data.name):D(e.data.name)).attr(`style`,e=>y({cssCompiledStyles:e.data.cssCompiledStyles}).nodeStyles).attr(`fill-opacity`,.3).attr(`stroke`,e=>e.parent?D(e.parent.data.name):D(e.data.name)).attr(`stroke-width`,3),G.append(`clipPath`).attr(`id`,(e,t)=>`clip-${i}-${t}`).append(`rect`).attr(`width`,e=>Math.max(0,e.x1-e.x0-4)).attr(`height`,e=>Math.max(0,e.y1-e.y0-4)),G.append(`text`).attr(`class`,`treemapLabel`).attr(`x`,e=>(e.x1-e.x0)/2).attr(`y`,e=>(e.y1-e.y0)/2).attr(`style`,e=>`text-anchor: middle; dominant-baseline: middle; font-size: ${L}px;fill:`+k(e.data.name)+`;`+y({cssCompiledStyles:e.data.cssCompiledStyles}).labelStyles.replace(`color:`,`fill:`)).attr(`clip-path`,(e,t)=>`url(#clip-${i}-${t})`).text(e=>e.data.name).each(function(e){let t=r(this),n=e.x1-e.x0,i=e.y1-e.y0,a=t.node(),o=n-2*H,s=i-2*H;if(o<U||s<U){t.style(`display`,`none`);return}let c=parseInt(t.style(`font-size`),10),l=.6;for(;a.getComputedTextLength()>o&&c>B;)c--,t.style(`font-size`,`${c}px`);let u=Math.max(V,Math.min(z,Math.round(c*l))),d=c+W+u;for(;d>s&&c>B&&(c--,u=Math.max(V,Math.min(z,Math.round(c*l))),!(u<V&&c===B));)t.style(`font-size`,`${c}px`),d=c+W+u;t.style(`font-size`,`${c}px`),I?(c<B||s<B)&&t.style(`display`,`none`):(a.getComputedTextLength()>o||c<B||s<c)&&t.style(`display`,`none`)}),c.showValues!==!1&&G.append(`text`).attr(`class`,`treemapValue`).attr(`x`,e=>(e.x1-e.x0)/2).attr(`y`,function(e){return(e.y1-e.y0)/2}).attr(`style`,e=>`text-anchor: middle; dominant-baseline: hanging; font-size: ${z}px;fill:`+k(e.data.name)+`;`+y({cssCompiledStyles:e.data.cssCompiledStyles}).labelStyles.replace(`color:`,`fill:`)).attr(`clip-path`,(e,t)=>`url(#clip-${i}-${t})`).text(e=>e.value?E(e.value):``).each(function(e){let t=r(this),n=this.parentNode;if(!n){t.style(`display`,`none`);return}let i=r(n).select(`.treemapLabel`);if(i.empty()||i.style(`display`)===`none`){t.style(`display`,`none`);return}let a=parseFloat(i.style(`font-size`)),o=Math.max(V,Math.min(z,Math.round(a*.6)));t.style(`font-size`,`${o}px`);let s=(e.y1-e.y0)/2+a/2+W;t.attr(`y`,s);let c=e.x1-e.x0,l=e.y1-e.y0-4,u=c-2*H;t.node().getComputedTextLength()>u||s+o>l||o<V?t.style(`display`,`none`):t.style(`display`,null)});let K=c.diagramPadding??8;x(v,K,`flowchart`,c?.useMaxWidth||!1)},`draw`),getClasses:t(function(e,t){return t.db.getClasses()},`getClasses`)},ue={sectionStrokeColor:`black`,sectionStrokeWidth:`1`,sectionFillColor:`#efefef`,leafStrokeColor:`black`,leafStrokeWidth:`1`,leafFillColor:`#efefef`,labelFontSize:`12px`,valueFontSize:`10px`,titleFontSize:`14px`},de={parser:X,get db(){return new J},renderer:le,styles:t(({treemap:e}={})=>{let t=i(),n=l(),r=_(t,n.themeVariables),a=_(ue,e),o=a.titleColor??r.titleColor,s=a.labelColor??r.textColor,c=a.valueColor??r.textColor;return`
|
|
2
2
|
.treemapNode.section {
|
|
3
3
|
stroke: ${a.sectionStrokeColor};
|
|
4
4
|
stroke-width: ${a.sectionStrokeWidth};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./mermaid-parser.core-
|
|
1
|
+
import{n as e}from"./mermaid-parser.core-CpkwJ-8U.js";import{n as t}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as n}from"./src-B6xuSHsQ.js";import{H as r,K as i,U as a,a as o,b as s,c,f as l,v as u,w as d,y as f}from"./chunk-DU6HZSFF-CHHMX1CR.js";import{i as p}from"./chunk-75Z2AOVW-962-yyBD.js";import{t as m}from"./chunk-JWPE2WC7-DVXcaiue.js";import{p as h}from"./mermaid-diagram-kbWN558y.js";var g=l.packet,_=class{constructor(){this.packet=[],this.setAccTitle=a,this.getAccTitle=f,this.setDiagramTitle=i,this.getDiagramTitle=d,this.getAccDescription=u,this.setAccDescription=r}static{t(this,`PacketDB`)}getConfig(){let e=p({...g,...s().packet});return e.showBits&&(e.paddingY+=10),e}getPacket(){return this.packet}pushWord(e){e.length>0&&this.packet.push(e)}clear(){o(),this.packet=[]}},v=1e4,y=t((e,t)=>{m(e,t);let r=-1,i=[],a=1,{bitsPerRow:o}=t.getConfig();for(let{start:s,end:c,bits:l,label:u}of e.blocks){if(s!==void 0&&c!==void 0&&c<s)throw Error(`Packet block ${s} - ${c} is invalid. End must be greater than start.`);if(s??=r+1,s!==r+1)throw Error(`Packet block ${s} - ${c??s} is not contiguous. It should start from ${r+1}.`);if(l===0)throw Error(`Packet block ${s} is invalid. Cannot have a zero bit field.`);for(c??=s+(l??1)-1,l??=c-s+1,r=c,n.debug(`Packet block ${s} - ${r} with label ${u}`);i.length<=o+1&&t.getPacket().length<v;){let[e,n]=b({start:s,end:c,bits:l,label:u},a,o);if(i.push(e),e.end+1===a*o&&(t.pushWord(i),i=[],a++),!n)break;({start:s,end:c,bits:l,label:u}=n)}}t.pushWord(i)},`populate`),b=t((e,t,n)=>{if(e.start===void 0)throw Error(`start should have been set during first phase`);if(e.end===void 0)throw Error(`end should have been set during first phase`);if(e.start>e.end)throw Error(`Block start ${e.start} is greater than block end ${e.end}.`);if(e.end+1<=t*n)return[e,void 0];let r=t*n-1,i=t*n;return[{start:e.start,end:r,label:e.label,bits:r-e.start},{start:i,end:e.end,label:e.label,bits:e.end-i}]},`getNextFittingBlock`),x={parser:{yy:void 0},parse:t(async t=>{let r=await e(`packet`,t),i=x.parser?.yy;if(!(i instanceof _))throw Error(`parser.parser?.yy was not a PacketDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.`);n.debug(r),y(r,i)},`parse`)},S=t((e,t,n,r)=>{let i=r.db,a=i.getConfig(),{rowHeight:o,paddingY:s,bitWidth:l,bitsPerRow:u}=a,d=i.getPacket(),f=i.getDiagramTitle(),p=o+s,m=p*(d.length+1)-(f?0:o),g=l*u+2,_=h(t);_.attr(`viewBox`,`0 0 ${g} ${m}`),c(_,m,g,a.useMaxWidth);for(let[e,t]of d.entries())C(_,t,e,a);_.append(`text`).text(f).attr(`x`,g/2).attr(`y`,m-p/2).attr(`dominant-baseline`,`middle`).attr(`text-anchor`,`middle`).attr(`class`,`packetTitle`)},`draw`),C=t((e,t,n,{rowHeight:r,paddingX:i,paddingY:a,bitWidth:o,bitsPerRow:s,showBits:c})=>{let l=e.append(`g`),u=n*(r+a)+a;for(let e of t){let t=e.start%s*o+1,n=(e.end-e.start+1)*o-i;if(l.append(`rect`).attr(`x`,t).attr(`y`,u).attr(`width`,n).attr(`height`,r).attr(`class`,`packetBlock`),l.append(`text`).attr(`x`,t+n/2).attr(`y`,u+r/2).attr(`class`,`packetLabel`).attr(`dominant-baseline`,`middle`).attr(`text-anchor`,`middle`).text(e.label),!c)continue;let a=e.end===e.start,d=u-2;l.append(`text`).attr(`x`,t+(a?n/2:0)).attr(`y`,d).attr(`class`,`packetByte start`).attr(`dominant-baseline`,`auto`).attr(`text-anchor`,a?`middle`:`start`).text(e.start),a||l.append(`text`).attr(`x`,t+n).attr(`y`,d).attr(`class`,`packetByte end`).attr(`dominant-baseline`,`auto`).attr(`text-anchor`,`end`).text(e.end)}},`drawWord`),w={draw:S},T={byteFontSize:`10px`,startByteColor:`black`,endByteColor:`black`,labelColor:`black`,labelFontSize:`12px`,titleColor:`black`,titleFontSize:`14px`,blockStrokeColor:`black`,blockStrokeWidth:`1`,blockFillColor:`#efefef`},E={parser:x,get db(){return new _},renderer:w,styles:t(({packet:e}={})=>{let t=p(T,e);return`
|
|
2
2
|
.packetByte {
|
|
3
3
|
font-size: ${t.byteFontSize};
|
|
4
4
|
}
|