specrails-desktop 2.64.1 → 2.65.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/cli/dist/status.js +3 -0
- package/client/dist/assets/ActivityFeedPage-ByVKYII-.js +1 -0
- package/client/dist/assets/AgentBrowserCapture-BGUTjhUr.js +1 -0
- package/client/dist/assets/AgentModeAnalyticsPane-CtOLDDjB.js +2 -0
- package/client/dist/assets/AgentModeCodePane-CDhUKarT.js +2 -0
- package/client/dist/assets/AgentModeJobsPane-BAa_oEHJ.js +1 -0
- package/client/dist/assets/AgentsPage-D32hG4Ve.js +120 -0
- package/client/dist/assets/AnalyticsPage-BU50zeG6.js +5 -0
- package/client/dist/assets/BudgetCard-DP_jxwaD.js +55 -0
- package/client/dist/assets/CodePage-jiYnKGpp.js +3 -0
- package/client/dist/assets/CostValue-Bvn8674q.js +1 -0
- package/client/dist/assets/DesktopAnalyticsPage-CF__H4e3.js +1 -0
- package/client/dist/assets/DocView-RrAp70zp.js +11 -0
- package/client/dist/assets/DocsDialog-DkqHU-JF.js +1 -0
- package/client/dist/assets/DocsPage-C6X089zC.js +1 -0
- package/client/dist/assets/ExportDropdown-C5-o8y3K.js +1 -0
- package/client/dist/assets/HelpHint-Crf9_uoR.js +1 -0
- package/client/dist/assets/IntegrationsPage-aflU3KHK.js +1 -0
- package/client/dist/assets/InteractiveJobComposer-CEMMhyyJ.js +19 -0
- package/client/dist/assets/JobDetailModal-BVJ6hyRs.js +1 -0
- package/client/dist/assets/JobDetailPage-DHzBUmox.js +1 -0
- package/client/dist/assets/JobsPage-o-LAqkwC.js +1 -0
- package/client/dist/assets/LoopBuilderPage-DbSVmXBM.js +1 -0
- package/client/dist/assets/LoopPreviewModal-DbJcVyN1.js +1 -0
- package/client/dist/assets/{LoopWindowSurface-DE0v2K1p.js → LoopWindowSurface-Co1ZK26V.js} +1 -1
- package/client/dist/assets/LoopsPage-C4lgkPXB.js +2 -0
- package/client/dist/assets/MinimizedChatsContext-742ypO8n.js +1 -0
- package/client/dist/assets/PluginsPage-Acks9ges.js +2 -0
- package/client/dist/assets/RailTrack-BfLmBzBh.js +1 -0
- package/client/dist/assets/{RepositoryScopeSelector-2eSqR9WK.js → RepositoryScopeSelector-DcxbKI9w.js} +1 -1
- package/client/dist/assets/ReviewPacketPage-CAVSIOAJ.js +7 -0
- package/client/dist/assets/TemplatePreviewModal-C23SYCTm.js +1 -0
- package/client/dist/assets/TicketDetailModalContext-B-Gtm6Ob.js +23 -0
- package/client/dist/assets/Trans-C6J0cLyh.js +1 -0
- package/client/dist/assets/a11y-prefs-BqoP5goK.js +1 -0
- package/client/dist/assets/activity-BBWfoUOG.js +1 -0
- package/client/dist/assets/activity-BM_skann.js +1 -0
- package/client/dist/assets/activity-Cevl82ke.js +1 -0
- package/client/dist/assets/activity-CmACk5W5.js +1 -0
- package/client/dist/assets/activity-D9LBw3PQ.js +1 -0
- package/client/dist/assets/activity-Dspbb9lz.js +1 -0
- package/client/dist/assets/activity-FPjYIjv9.js +1 -0
- package/client/dist/assets/activity-nLCKMUKt.js +1 -0
- package/client/dist/assets/addspec-BI4jDMhA.js +1 -0
- package/client/dist/assets/addspec-BldTv7Tl.js +1 -0
- package/client/dist/assets/addspec-Cdq-2EcC.js +1 -0
- package/client/dist/assets/addspec-DH5M16BQ.js +1 -0
- package/client/dist/assets/addspec-DOFo9pD5.js +1 -0
- package/client/dist/assets/addspec-DPkwhdmL.js +1 -0
- package/client/dist/assets/addspec-Dzy12Pv3.js +1 -0
- package/client/dist/assets/addspec-skTs6EEW.js +1 -0
- package/client/dist/assets/agent-B_UEUy7Y.js +1 -0
- package/client/dist/assets/agent-BarjlhTA.js +1 -0
- package/client/dist/assets/agent-BfqIITo5.js +1 -0
- package/client/dist/assets/agent-Bt9a7Kyj.js +1 -0
- package/client/dist/assets/agent-C3689RwP.js +1 -0
- package/client/dist/assets/agent-CrmboTAi.js +1 -0
- package/client/dist/assets/agent-DcsoTnuE.js +1 -0
- package/client/dist/assets/agent-GDZoYwd4.js +1 -0
- package/client/dist/assets/{agentRuntime-es2ymSl-.js → agentRuntime-BYH70bKY.js} +1 -1
- package/client/dist/assets/agentRuntime-BijLh8I9.js +1 -0
- package/client/dist/assets/{agentRuntime-BzuwQQgn.js → agentRuntime-BvyuETPe.js} +1 -1
- package/client/dist/assets/{agentRuntime-BDvbJMmS.js → agentRuntime-C2WI6HQh.js} +1 -1
- package/client/dist/assets/{agentRuntime-BKJfv5YD.js → agentRuntime-CZPIlQsr.js} +1 -1
- package/client/dist/assets/{agentRuntime-DiCldqGG.js → agentRuntime-D2dDvCyJ.js} +1 -1
- package/client/dist/assets/agentRuntime-DWZedEbn.js +1 -0
- package/client/dist/assets/agentRuntime-DkIruUNw.js +1 -0
- package/client/dist/assets/agents-35_PDKx9.js +1 -0
- package/client/dist/assets/agents-8fZnHhEQ.js +1 -0
- package/client/dist/assets/agents-Bgimtw8z.js +1 -0
- package/client/dist/assets/agents-C4P160Us.js +1 -0
- package/client/dist/assets/agents-Clg67zbp.js +1 -0
- package/client/dist/assets/agents-DJfF4o6G.js +1 -0
- package/client/dist/assets/agents-Dc9-Y5cw.js +1 -0
- package/client/dist/assets/agents-EN1Zl4YZ.js +1 -0
- package/client/dist/assets/agentstudio-Bm4-NYaG.js +1 -0
- package/client/dist/assets/agentstudio-CD1fuj2o.js +1 -0
- package/client/dist/assets/agentstudio-CQGWFSst.js +1 -0
- package/client/dist/assets/agentstudio-CqVSb65S.js +1 -0
- package/client/dist/assets/agentstudio-DIE_HjsX.js +1 -0
- package/client/dist/assets/agentstudio-D_OmQK-k.js +1 -0
- package/client/dist/assets/agentstudio-Djz9aUfb.js +1 -0
- package/client/dist/assets/agentstudio-Qa3v9o5J.js +1 -0
- package/client/dist/assets/{aiedit-DNXxq_Dr.js → aiedit-1VzLs37W.js} +1 -1
- package/client/dist/assets/{aiedit-DCjA7jLJ.js → aiedit-BNp6GSik.js} +1 -1
- package/client/dist/assets/{aiedit-BoG24nlg.js → aiedit-BOY5xRPi.js} +1 -1
- package/client/dist/assets/{aiedit-iIjz2_Qk.js → aiedit-BrqMZvbc.js} +1 -1
- package/client/dist/assets/{aiedit-CjlSRQVP.js → aiedit-CVgtl7hm.js} +1 -1
- package/client/dist/assets/{aiedit-DQ-0_pvE.js → aiedit-CrFW9Jd2.js} +1 -1
- package/client/dist/assets/{aiedit-olnv3QSt.js → aiedit-YE2lILp7.js} +1 -1
- package/client/dist/assets/{aiedit-B0KUbpB6.js → aiedit-iA_R1AVQ.js} +1 -1
- package/client/dist/assets/analytics-3w0t-4ic.js +1 -0
- package/client/dist/assets/analytics-BRi4KQD6.js +1 -0
- package/client/dist/assets/analytics-BtjAqzke.js +1 -0
- package/client/dist/assets/analytics-COSQ1h47.js +1 -0
- package/client/dist/assets/analytics-CP2HjESk.js +1 -0
- package/client/dist/assets/analytics-DY65TC62.js +1 -0
- package/client/dist/assets/analytics-Den_vvxn.js +1 -0
- package/client/dist/assets/analytics-LmBS96O8.js +1 -0
- package/client/dist/assets/api-DOGbyfTO.js +2 -0
- package/client/dist/assets/builder-BMVvSr4v.js +1 -0
- package/client/dist/assets/builder-BN-MuLZt.js +1 -0
- package/client/dist/assets/builder-BQOZi4CF.js +1 -0
- package/client/dist/assets/builder-BjUPjsyu.js +1 -0
- package/client/dist/assets/builder-BoBtN18T.js +1 -0
- package/client/dist/assets/builder-C5g5NhxL.js +1 -0
- package/client/dist/assets/builder-RUHXw3yx.js +1 -0
- package/client/dist/assets/builder-fyS_AiyC.js +1 -0
- package/client/dist/assets/button-CHPkroew.js +1 -0
- package/client/dist/assets/chat-C9L5T7KI.js +1 -0
- package/client/dist/assets/chevron-right-CwMAj0w_.js +1 -0
- package/client/dist/assets/chevron-up-BAMuP0XD.js +1 -0
- package/client/dist/assets/chunk-OB3PAWPO-BBaq6pUk.js +3 -0
- package/client/dist/assets/code-4le5IIbf.js +1 -0
- package/client/dist/assets/code-B-jCVIbm.js +1 -0
- package/client/dist/assets/code-BRfrn5ix.js +1 -0
- package/client/dist/assets/code-CC9NCrDM.js +1 -0
- package/client/dist/assets/code-CK6pm8wY.js +1 -0
- package/client/dist/assets/code-DDiOzd6c.js +1 -0
- package/client/dist/assets/code-tGifiyf5.js +1 -0
- package/client/dist/assets/code-xkn8kQTg.js +1 -0
- package/client/dist/assets/commands-Bv1QshHR.js +1 -0
- package/client/dist/assets/commands-BvxTxboW.js +1 -0
- package/client/dist/assets/commands-C5ORR0fO.js +1 -0
- package/client/dist/assets/commands-CBKMFSTV.js +1 -0
- package/client/dist/assets/commands-CFJIRsJv.js +1 -0
- package/client/dist/assets/commands-D9o3ZcXl.js +1 -0
- package/client/dist/assets/commands-DNox0Edk.js +1 -0
- package/client/dist/assets/commands-DmIUMLdV.js +1 -0
- package/client/dist/assets/common-5H4TkaoI.js +1 -0
- package/client/dist/assets/common-9S3OdPjx.js +1 -0
- package/client/dist/assets/common-BqnwIcjs.js +1 -0
- package/client/dist/assets/common-CQP3VafS.js +1 -0
- package/client/dist/assets/common-CZnAfkB2.js +1 -0
- package/client/dist/assets/common-D5sNttV4.js +1 -0
- package/client/dist/assets/common-k_qX9nlv.js +1 -0
- package/client/dist/assets/common-s4HIi9XI.js +1 -0
- package/client/dist/assets/compass-B7guwBlY.js +1 -0
- package/client/dist/assets/confirm-dialog-ChZdHL3Q.js +1 -0
- package/client/dist/assets/copy-DOPlLymH.js +1 -0
- package/client/dist/assets/core-BozBzB6Y.js +1 -0
- package/client/dist/assets/dashboard-6zGLGcEz.js +1 -0
- package/client/dist/assets/dashboard-8Gi0FBDq.js +1 -0
- package/client/dist/assets/dashboard-B7E5YrSy.js +1 -0
- package/client/dist/assets/dashboard-BhdKV8xK.js +1 -0
- package/client/dist/assets/dashboard-Bu3zzH_s.js +1 -0
- package/client/dist/assets/dashboard-Ce_6rELA.js +1 -0
- package/client/dist/assets/dashboard-DWY-oz8P.js +1 -0
- package/client/dist/assets/dashboard-gUzlWk0o.js +1 -0
- package/client/dist/assets/date-input-Cdlr8kHz.js +1 -0
- package/client/dist/assets/dialog-C23lB2iP.js +5 -0
- package/client/dist/assets/dist-Di-oOFkX.js +1 -0
- package/client/dist/assets/dist-js-CBmS6MsJ.js +1 -0
- package/client/dist/assets/{dist-js-Rlh4FLH5.js → dist-js-DaJmKapi.js} +1 -1
- package/client/dist/assets/dropdown-menu-Bfp2CK6H.js +1 -0
- package/client/dist/assets/empty-state-D5w9OWj-.js +1 -0
- package/client/dist/assets/es2015-DfnECntk.js +41 -0
- package/client/dist/assets/esm-BKF6CE7v.js +1 -0
- package/client/dist/assets/event-BEnMLqAi.js +1 -0
- package/client/dist/assets/explore--NOz9LCN.js +1 -0
- package/client/dist/assets/explore-B2ulH6dO.js +1 -0
- package/client/dist/assets/explore-BD-QiLdg.js +1 -0
- package/client/dist/assets/explore-BOqd4_1j.js +1 -0
- package/client/dist/assets/explore-Be_Zh5zu.js +1 -0
- package/client/dist/assets/explore-CLjzPSKo.js +1 -0
- package/client/dist/assets/explore-D_-vHm29.js +1 -0
- package/client/dist/assets/explore-yEQTF6ro.js +1 -0
- package/client/dist/assets/file-text-CNXzL3wj.js +1 -0
- package/client/dist/assets/format-BODoFIw6.js +1 -0
- package/client/dist/assets/formatDistanceToNow-DLMIOS0N.js +1 -0
- package/client/dist/assets/getTimezoneOffsetInMilliseconds-O61feXch.js +1 -0
- package/client/dist/assets/git-compare-arrows-Cu6tICCq.js +1 -0
- package/client/dist/assets/humanise-command-CB4ybLwq.js +1 -0
- package/client/dist/assets/inbox-BLZ8cm6_.js +1 -0
- package/client/dist/assets/inbox-BQ3VmNYY.js +1 -0
- package/client/dist/assets/inbox-BdcXWCuT.js +1 -0
- package/client/dist/assets/inbox-CF1PHjns.js +1 -0
- package/client/dist/assets/inbox-CFNPDhso.js +1 -0
- package/client/dist/assets/inbox-DIttK_NW.js +1 -0
- package/client/dist/assets/inbox-Dfdv1Ykl.js +1 -0
- package/client/dist/assets/inbox-JS1inmeO.js +1 -0
- package/client/dist/assets/index-4UWY7Xyz.css +2 -0
- package/client/dist/assets/index-DHzB0T26.js +120 -0
- package/client/dist/assets/integrations-BcKgzgPD.js +1 -0
- package/client/dist/assets/integrations-BmX_XyJq.js +1 -0
- package/client/dist/assets/integrations-CHpwMjlY.js +1 -0
- package/client/dist/assets/integrations-CT3kr8e-.js +1 -0
- package/client/dist/assets/integrations-C_5XAkgz.js +1 -0
- package/client/dist/assets/integrations-Ct9zLX7N.js +1 -0
- package/client/dist/assets/integrations-DEYemxUv.js +1 -0
- package/client/dist/assets/integrations-DWvsB_WB.js +1 -0
- package/client/dist/assets/{jira-Cq6yvN4q.js → jira-B_ERkFRv.js} +1 -1
- package/client/dist/assets/jira-Bn-A5lwD.js +1 -0
- package/client/dist/assets/jira-C71Ybnhp.js +1 -0
- package/client/dist/assets/jira-CkwjeJz6.js +1 -0
- package/client/dist/assets/jira-D9pSLXjI.js +1 -0
- package/client/dist/assets/jira-DBRS_lcp.js +1 -0
- package/client/dist/assets/jira-DHS6CsKh.js +1 -0
- package/client/dist/assets/jira-MInHRUb1.js +1 -0
- package/client/dist/assets/jira-api-DHme7Upx.js +1 -0
- package/client/dist/assets/jobs-BMLTDo63.js +1 -0
- package/client/dist/assets/jobs-BO8q4Mi1.js +1 -0
- package/client/dist/assets/jobs-Ck8uOWMM.js +1 -0
- package/client/dist/assets/jobs-CyFfPCpg.js +1 -0
- package/client/dist/assets/jobs-DT5s4fZ6.js +1 -0
- package/client/dist/assets/jobs-DZAgVPcD.js +1 -0
- package/client/dist/assets/jobs-b5gPYaKr.js +1 -0
- package/client/dist/assets/jobs-xsZK1440.js +1 -0
- package/client/dist/assets/launch-forecast-BTa-p3RP.js +1 -0
- package/client/dist/assets/{loop-layout-DtxX27Jz.css → loop-layout-DLioOiRN.css} +1 -1
- package/client/dist/assets/loop-layout-Sl9cfTvs.js +7 -0
- package/client/dist/assets/loops-BEEOVJDR.js +1 -0
- package/client/dist/assets/loops-BcrQ2vk7.js +1 -0
- package/client/dist/assets/loops-BjWxzJIZ.js +1 -0
- package/client/dist/assets/loops-BogV595N.js +1 -0
- package/client/dist/assets/loops-CU0BLZiz.js +1 -0
- package/client/dist/assets/loops-CrNBgi1G.js +1 -0
- package/client/dist/assets/loops-CwalwS_i.js +1 -0
- package/client/dist/assets/loops-_TDVN-fX.js +1 -0
- package/client/dist/assets/mcp-BNs8gxoL.js +1 -0
- package/client/dist/assets/mcp-BvRh_xO5.js +1 -0
- package/client/dist/assets/mcp-C2F1pghi.js +1 -0
- package/client/dist/assets/mcp-D9RLKAs2.js +1 -0
- package/client/dist/assets/mcp-DAghcsR0.js +1 -0
- package/client/dist/assets/mcp-DWWAPi1G.js +1 -0
- package/client/dist/assets/mcp-DbGSFC3f.js +1 -0
- package/client/dist/assets/mcp-FelCicrv.js +1 -0
- package/client/dist/assets/narration-C3NBkAR4.js +1 -0
- package/client/dist/assets/narration-CkoJq-Lf.js +1 -0
- package/client/dist/assets/narration-Cr0NeW9K.js +1 -0
- package/client/dist/assets/narration-DJUXOs-W.js +1 -0
- package/client/dist/assets/narration-DgL8TMvN.js +1 -0
- package/client/dist/assets/narration-DjBafgv0.js +1 -0
- package/client/dist/assets/narration-Dle6Iv0c.js +1 -0
- package/client/dist/assets/narration-MYlfktga.js +1 -0
- package/client/dist/assets/nav-BSQ8KW1c.js +1 -0
- package/client/dist/assets/nav-BauVof8Z.js +1 -0
- package/client/dist/assets/nav-BfOAH1se.js +1 -0
- package/client/dist/assets/nav-D3bOsipX.js +1 -0
- package/client/dist/assets/nav-DOMMhlLx.js +1 -0
- package/client/dist/assets/nav-DPzVlgZU.js +1 -0
- package/client/dist/assets/nav-DZJbFbah.js +1 -0
- package/client/dist/assets/nav-D_5aojd2.js +1 -0
- package/client/dist/assets/notify-error-BsWANx1T.js +1 -0
- package/client/dist/assets/onboarding-BdZQnNm3.js +1 -0
- package/client/dist/assets/onboarding-CJQEv1vp.js +1 -0
- package/client/dist/assets/onboarding-CWJGYUW3.js +1 -0
- package/client/dist/assets/onboarding-ChfYN7dA.js +1 -0
- package/client/dist/assets/onboarding-CjvDUR3V.js +1 -0
- package/client/dist/assets/onboarding-I6vS-zTB.js +1 -0
- package/client/dist/assets/onboarding-dgC_9dTB.js +1 -0
- package/client/dist/assets/onboarding-mlXSyKzX.js +1 -0
- package/client/dist/assets/origin-03nTuaOb.js +1 -0
- package/client/dist/assets/packet-BjpyRnZr.js +1 -0
- package/client/dist/assets/packet-BwgG5mBt.js +1 -0
- package/client/dist/assets/packet-C3eAUFkV.js +1 -0
- package/client/dist/assets/packet-C8wZuSld.js +1 -0
- package/client/dist/assets/packet-CNXEy_85.js +1 -0
- package/client/dist/assets/packet-DsV5Aa_8.js +1 -0
- package/client/dist/assets/packet-aasskOE7.js +1 -0
- package/client/dist/assets/packet-phxCc2gJ.js +1 -0
- package/client/dist/assets/page-header-BStSHkP8.js +1 -0
- package/client/dist/assets/project-repositories-DJPeAVBK.js +1 -0
- package/client/dist/assets/{provider-capabilities-lePfeT_Y.js → provider-capabilities-DtwcTme4.js} +1 -1
- package/client/dist/assets/recovery-BPDOsC92.js +1 -0
- package/client/dist/assets/recovery-BluNHoXM.js +1 -0
- package/client/dist/assets/recovery-CRvEmB0C.js +1 -0
- package/client/dist/assets/recovery-CeIoRnkR.js +1 -0
- package/client/dist/assets/recovery-DHCo8KGi.js +1 -0
- package/client/dist/assets/recovery-OxAIpbBF.js +1 -0
- package/client/dist/assets/recovery-XXexYGOJ.js +1 -0
- package/client/dist/assets/recovery-pITlc--v.js +1 -0
- package/client/dist/assets/refresh-cw-DfyTkbsf.js +1 -0
- package/client/dist/assets/select-xA3pSmqE.js +1 -0
- package/client/dist/assets/settings--yzDbX9r.js +1 -0
- package/client/dist/assets/settings-5_heTv8s.js +1 -0
- package/client/dist/assets/settings-BSf27MDg.js +1 -0
- package/client/dist/assets/settings-BSj6FakR.js +1 -0
- package/client/dist/assets/settings-BZDo_8Nn.js +1 -0
- package/client/dist/assets/settings-BdWgmNc0.js +1 -0
- package/client/dist/assets/settings-DRouxKqb.js +1 -0
- package/client/dist/assets/settings-DnWFoY-F.js +1 -0
- package/client/dist/assets/setup-BJWy62ri.js +1 -0
- package/client/dist/assets/setup-BgKOIuzc.js +1 -0
- package/client/dist/assets/setup-BvVIyUlz.js +1 -0
- package/client/dist/assets/setup-BxCk2pe1.js +1 -0
- package/client/dist/assets/setup-C-xQTL7R.js +1 -0
- package/client/dist/assets/setup-CbaVoiwV.js +1 -0
- package/client/dist/assets/setup-DxTBkX3P.js +1 -0
- package/client/dist/assets/setup-oGoVAzOD.js +1 -0
- package/client/dist/assets/specs-7tAb4IKr.js +1 -0
- package/client/dist/assets/specs-BUcY4s5v.js +1 -0
- package/client/dist/assets/specs-Bk5LeBAA.js +1 -0
- package/client/dist/assets/specs-CAA4Lrlg.js +1 -0
- package/client/dist/assets/specs-CS091AnA.js +1 -0
- package/client/dist/assets/specs-DJ6gmFcK.js +1 -0
- package/client/dist/assets/specs-GfCcrBSC.js +1 -0
- package/client/dist/assets/specs-xQgyc7WL.js +1 -0
- package/client/dist/assets/spending-CVH8VREb.js +1 -0
- package/client/dist/assets/square-Co6h5vZg.js +1 -0
- package/client/dist/assets/tauri-shell-43ixPGfa.js +2 -0
- package/client/dist/assets/terminal-0v9sBylD.js +1 -0
- package/client/dist/assets/terminal-AbUAmCxE.js +1 -0
- package/client/dist/assets/terminal-BJayIbIP.js +1 -0
- package/client/dist/assets/terminal-C2RUlXyi.js +1 -0
- package/client/dist/assets/terminal-CMmSb_Nj.js +1 -0
- package/client/dist/assets/terminal-DKWjj7HJ.js +1 -0
- package/client/dist/assets/terminal-KlFu7_pV.js +1 -0
- package/client/dist/assets/terminal-i99yqFvm.js +1 -0
- package/client/dist/assets/tickets-846Oq3i3.js +1 -0
- package/client/dist/assets/tickets-B5LJTe_b.js +1 -0
- package/client/dist/assets/tickets-Bfo2GGmH.js +1 -0
- package/client/dist/assets/tickets-BhdZ1yY2.js +1 -0
- package/client/dist/assets/tickets-CgjWJHAW.js +1 -0
- package/client/dist/assets/tickets-Ct9DbDUR.js +1 -0
- package/client/dist/assets/tickets-rptLEJB1.js +1 -0
- package/client/dist/assets/tickets-xQ6DpYdu.js +1 -0
- package/client/dist/assets/trending-up-BGvb4zZt.js +1 -0
- package/client/dist/assets/undo-6zuS4-sL.js +1 -0
- package/client/dist/assets/undo-BeM4gDOP.js +1 -0
- package/client/dist/assets/undo-BeppX8xS.js +1 -0
- package/client/dist/assets/undo-BqvNZ5MG.js +1 -0
- package/client/dist/assets/undo-BzwEPf_k.js +1 -0
- package/client/dist/assets/undo-CJ9Cu1NN.js +1 -0
- package/client/dist/assets/undo-ds8nMFbX.js +1 -0
- package/client/dist/assets/undo-x_gA-knG.js +1 -0
- package/client/dist/assets/useDesktop-BuOp2-MR.js +1 -0
- package/client/dist/assets/useRuntimeRuns-BRS6ncnO.js +1 -0
- package/client/dist/assets/utils-ELimjS2Y.js +1 -0
- package/client/dist/assets/wrench-Br2n1Lxd.js +1 -0
- package/client/dist/index.html +75 -60
- package/docs/ci-cd.md +29 -1
- package/docs/cli.md +10 -31
- package/docs/codex.md +1 -1
- package/docs/creating-specs.md +15 -12
- package/docs/customizing.md +16 -13
- package/docs/getting-started.md +12 -11
- package/docs/guide/de/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/de/getting-started/2-installing-and-first-run.md +2 -0
- package/docs/guide/de/getting-started/3-try-the-sample-project.md +35 -0
- package/docs/guide/de/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
- package/docs/guide/de/getting-started/6-universal-search.md +34 -0
- package/docs/guide/de/insights/1-analytics-and-cost-tracking.md +20 -6
- package/docs/guide/de/insights/2-the-integrated-terminal.md +1 -1
- package/docs/guide/de/insights/3-code-explorer.md +1 -1
- package/docs/guide/de/integrations/1-ai-providers.md +1 -1
- package/docs/guide/de/integrations/2-plugins.md +1 -1
- package/docs/guide/de/integrations/3-jira-integration.md +3 -3
- package/docs/guide/de/integrations/4-mobile-companion.md +1 -1
- package/docs/guide/de/integrations/5-mcp-server.md +1 -1
- package/docs/guide/de/integrations/6-agent-chat.md +12 -5
- package/docs/guide/de/integrations/8-flow-mode.md +69 -0
- package/docs/guide/de/pipeline/1-rails-and-jobs.md +21 -1
- package/docs/guide/de/pipeline/2-the-job-detail-view.md +12 -0
- package/docs/guide/de/pipeline/3-reviewing-a-delivery.md +43 -0
- package/docs/guide/de/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/de/pipeline/5-the-loop-builder.md +1 -1
- package/docs/guide/de/settings/1-themes.md +1 -1
- package/docs/guide/de/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
- package/docs/guide/de/settings/5-project-environment.md +1 -1
- package/docs/guide/de/settings/6-updates.md +24 -0
- package/docs/guide/de/settings/7-existing-projects.md +33 -0
- package/docs/guide/de/settings/8-accessibility.md +23 -0
- package/docs/guide/de/specs/1-specs-and-the-backlog.md +41 -3
- package/docs/guide/de/specs/2-add-spec-quick-mode.md +1 -1
- package/docs/guide/de/specs/3-add-spec-explore-mode.md +1 -1
- package/docs/guide/en/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/en/getting-started/1-what-is-specrails.md +1 -1
- package/docs/guide/en/getting-started/2-installing-and-first-run.md +2 -0
- package/docs/guide/en/getting-started/3-try-the-sample-project.md +35 -0
- package/docs/guide/en/getting-started/5-the-dashboard-tour.md +52 -0
- package/docs/guide/en/getting-started/6-universal-search.md +34 -0
- package/docs/guide/en/insights/1-analytics-and-cost-tracking.md +24 -10
- package/docs/guide/en/insights/2-the-integrated-terminal.md +1 -1
- package/docs/guide/en/insights/3-code-explorer.md +5 -5
- package/docs/guide/en/integrations/1-ai-providers.md +1 -1
- package/docs/guide/en/integrations/2-plugins.md +1 -1
- package/docs/guide/en/integrations/3-jira-integration.md +4 -4
- package/docs/guide/en/integrations/4-mobile-companion.md +1 -1
- package/docs/guide/en/integrations/5-mcp-server.md +4 -4
- package/docs/guide/en/integrations/6-agent-chat.md +12 -5
- package/docs/guide/en/integrations/8-flow-mode.md +69 -0
- package/docs/guide/en/pipeline/1-rails-and-jobs.md +22 -3
- package/docs/guide/en/pipeline/2-the-job-detail-view.md +19 -7
- package/docs/guide/en/pipeline/3-reviewing-a-delivery.md +43 -0
- package/docs/guide/en/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/en/pipeline/5-the-loop-builder.md +2 -2
- package/docs/guide/en/settings/1-themes.md +1 -1
- package/docs/guide/en/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
- package/docs/guide/en/settings/5-project-environment.md +1 -1
- package/docs/guide/en/settings/6-updates.md +24 -0
- package/docs/guide/en/settings/7-existing-projects.md +33 -0
- package/docs/guide/en/settings/8-accessibility.md +23 -0
- package/docs/guide/en/specs/1-specs-and-the-backlog.md +42 -6
- package/docs/guide/en/specs/2-add-spec-quick-mode.md +1 -1
- package/docs/guide/en/specs/3-add-spec-explore-mode.md +2 -2
- package/docs/guide/es/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/es/agents/2-profiles-and-the-balanced-default.md +1 -1
- package/docs/guide/es/agents/3-customizing-models-per-agent.md +2 -2
- package/docs/guide/es/agents/4-custom-agents-catalog.md +1 -1
- package/docs/guide/es/getting-started/1-what-is-specrails.md +3 -3
- package/docs/guide/es/getting-started/2-installing-and-first-run.md +2 -0
- package/docs/guide/es/getting-started/3-try-the-sample-project.md +35 -0
- package/docs/guide/es/getting-started/5-the-dashboard-tour.md +52 -0
- package/docs/guide/es/getting-started/6-universal-search.md +34 -0
- package/docs/guide/es/insights/1-analytics-and-cost-tracking.md +26 -12
- package/docs/guide/es/insights/2-the-integrated-terminal.md +1 -1
- package/docs/guide/es/insights/3-code-explorer.md +5 -5
- package/docs/guide/es/integrations/1-ai-providers.md +1 -1
- package/docs/guide/es/integrations/2-plugins.md +1 -1
- package/docs/guide/es/integrations/3-jira-integration.md +4 -4
- package/docs/guide/es/integrations/4-mobile-companion.md +1 -1
- package/docs/guide/es/integrations/5-mcp-server.md +4 -4
- package/docs/guide/es/integrations/6-agent-chat.md +14 -7
- package/docs/guide/es/integrations/7-local-engines.md +1 -1
- package/docs/guide/es/integrations/8-flow-mode.md +69 -0
- package/docs/guide/es/pipeline/1-rails-and-jobs.md +33 -13
- package/docs/guide/es/pipeline/2-the-job-detail-view.md +38 -26
- package/docs/guide/es/pipeline/3-reviewing-a-delivery.md +43 -0
- package/docs/guide/es/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/es/pipeline/5-the-loop-builder.md +4 -4
- package/docs/guide/es/settings/1-themes.md +1 -1
- package/docs/guide/es/settings/3-pipeline-telemetry-and-diagnostics.md +10 -10
- package/docs/guide/es/settings/5-project-environment.md +1 -1
- package/docs/guide/es/settings/6-updates.md +24 -0
- package/docs/guide/es/settings/7-existing-projects.md +33 -0
- package/docs/guide/es/settings/8-accessibility.md +23 -0
- package/docs/guide/es/specs/1-specs-and-the-backlog.md +43 -7
- package/docs/guide/es/specs/2-add-spec-quick-mode.md +1 -1
- package/docs/guide/es/specs/3-add-spec-explore-mode.md +3 -3
- package/docs/guide/fr/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/fr/getting-started/2-installing-and-first-run.md +2 -0
- package/docs/guide/fr/getting-started/3-try-the-sample-project.md +35 -0
- package/docs/guide/fr/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
- package/docs/guide/fr/getting-started/6-universal-search.md +34 -0
- package/docs/guide/fr/insights/1-analytics-and-cost-tracking.md +18 -4
- package/docs/guide/fr/insights/2-the-integrated-terminal.md +1 -1
- package/docs/guide/fr/insights/3-code-explorer.md +1 -1
- package/docs/guide/fr/integrations/1-ai-providers.md +1 -1
- package/docs/guide/fr/integrations/2-plugins.md +1 -1
- package/docs/guide/fr/integrations/3-jira-integration.md +3 -3
- package/docs/guide/fr/integrations/4-mobile-companion.md +1 -1
- package/docs/guide/fr/integrations/5-mcp-server.md +1 -1
- package/docs/guide/fr/integrations/6-agent-chat.md +11 -4
- package/docs/guide/fr/integrations/8-flow-mode.md +69 -0
- package/docs/guide/fr/pipeline/1-rails-and-jobs.md +21 -1
- package/docs/guide/fr/pipeline/2-the-job-detail-view.md +12 -0
- package/docs/guide/fr/pipeline/3-reviewing-a-delivery.md +43 -0
- package/docs/guide/fr/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/fr/pipeline/5-the-loop-builder.md +1 -1
- package/docs/guide/fr/settings/1-themes.md +1 -1
- package/docs/guide/fr/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
- package/docs/guide/fr/settings/5-project-environment.md +1 -1
- package/docs/guide/fr/settings/6-updates.md +24 -0
- package/docs/guide/fr/settings/7-existing-projects.md +33 -0
- package/docs/guide/fr/settings/8-accessibility.md +23 -0
- package/docs/guide/fr/specs/1-specs-and-the-backlog.md +41 -3
- package/docs/guide/fr/specs/2-add-spec-quick-mode.md +1 -1
- package/docs/guide/fr/specs/3-add-spec-explore-mode.md +1 -1
- package/docs/guide/it/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/it/getting-started/2-installing-and-first-run.md +2 -0
- package/docs/guide/it/getting-started/3-try-the-sample-project.md +35 -0
- package/docs/guide/it/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
- package/docs/guide/it/getting-started/6-universal-search.md +34 -0
- package/docs/guide/it/insights/1-analytics-and-cost-tracking.md +18 -4
- package/docs/guide/it/insights/2-the-integrated-terminal.md +1 -1
- package/docs/guide/it/insights/3-code-explorer.md +1 -1
- package/docs/guide/it/integrations/1-ai-providers.md +1 -1
- package/docs/guide/it/integrations/2-plugins.md +1 -1
- package/docs/guide/it/integrations/3-jira-integration.md +3 -3
- package/docs/guide/it/integrations/4-mobile-companion.md +1 -1
- package/docs/guide/it/integrations/5-mcp-server.md +1 -1
- package/docs/guide/it/integrations/6-agent-chat.md +11 -4
- package/docs/guide/it/integrations/8-flow-mode.md +69 -0
- package/docs/guide/it/pipeline/1-rails-and-jobs.md +21 -1
- package/docs/guide/it/pipeline/2-the-job-detail-view.md +12 -0
- package/docs/guide/it/pipeline/3-reviewing-a-delivery.md +43 -0
- package/docs/guide/it/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/it/pipeline/5-the-loop-builder.md +1 -1
- package/docs/guide/it/settings/1-themes.md +1 -1
- package/docs/guide/it/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
- package/docs/guide/it/settings/5-project-environment.md +1 -1
- package/docs/guide/it/settings/6-updates.md +24 -0
- package/docs/guide/it/settings/7-existing-projects.md +33 -0
- package/docs/guide/it/settings/8-accessibility.md +23 -0
- package/docs/guide/it/specs/1-specs-and-the-backlog.md +41 -3
- package/docs/guide/it/specs/2-add-spec-quick-mode.md +1 -1
- package/docs/guide/it/specs/3-add-spec-explore-mode.md +1 -1
- package/docs/guide/ja/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/ja/getting-started/2-installing-and-first-run.md +2 -0
- package/docs/guide/ja/getting-started/3-try-the-sample-project.md +35 -0
- package/docs/guide/ja/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
- package/docs/guide/ja/getting-started/6-universal-search.md +34 -0
- package/docs/guide/ja/insights/1-analytics-and-cost-tracking.md +18 -4
- package/docs/guide/ja/insights/2-the-integrated-terminal.md +1 -1
- package/docs/guide/ja/insights/3-code-explorer.md +1 -1
- package/docs/guide/ja/integrations/1-ai-providers.md +1 -1
- package/docs/guide/ja/integrations/2-plugins.md +1 -1
- package/docs/guide/ja/integrations/3-jira-integration.md +3 -3
- package/docs/guide/ja/integrations/4-mobile-companion.md +1 -1
- package/docs/guide/ja/integrations/5-mcp-server.md +1 -1
- package/docs/guide/ja/integrations/6-agent-chat.md +11 -4
- package/docs/guide/ja/integrations/8-flow-mode.md +69 -0
- package/docs/guide/ja/pipeline/1-rails-and-jobs.md +21 -1
- package/docs/guide/ja/pipeline/2-the-job-detail-view.md +12 -0
- package/docs/guide/ja/pipeline/3-reviewing-a-delivery.md +43 -0
- package/docs/guide/ja/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/ja/pipeline/5-the-loop-builder.md +1 -1
- package/docs/guide/ja/settings/1-themes.md +1 -1
- package/docs/guide/ja/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
- package/docs/guide/ja/settings/5-project-environment.md +1 -1
- package/docs/guide/ja/settings/6-updates.md +24 -0
- package/docs/guide/ja/settings/7-existing-projects.md +33 -0
- package/docs/guide/ja/settings/8-accessibility.md +23 -0
- package/docs/guide/ja/specs/1-specs-and-the-backlog.md +41 -3
- package/docs/guide/ja/specs/2-add-spec-quick-mode.md +1 -1
- package/docs/guide/ja/specs/3-add-spec-explore-mode.md +1 -1
- package/docs/guide/pt/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/pt/getting-started/2-installing-and-first-run.md +2 -0
- package/docs/guide/pt/getting-started/3-try-the-sample-project.md +35 -0
- package/docs/guide/pt/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
- package/docs/guide/pt/getting-started/6-universal-search.md +34 -0
- package/docs/guide/pt/insights/1-analytics-and-cost-tracking.md +18 -4
- package/docs/guide/pt/insights/2-the-integrated-terminal.md +1 -1
- package/docs/guide/pt/insights/3-code-explorer.md +1 -1
- package/docs/guide/pt/integrations/1-ai-providers.md +1 -1
- package/docs/guide/pt/integrations/2-plugins.md +1 -1
- package/docs/guide/pt/integrations/3-jira-integration.md +3 -3
- package/docs/guide/pt/integrations/4-mobile-companion.md +1 -1
- package/docs/guide/pt/integrations/5-mcp-server.md +1 -1
- package/docs/guide/pt/integrations/6-agent-chat.md +12 -5
- package/docs/guide/pt/integrations/8-flow-mode.md +69 -0
- package/docs/guide/pt/pipeline/1-rails-and-jobs.md +21 -1
- package/docs/guide/pt/pipeline/2-the-job-detail-view.md +12 -0
- package/docs/guide/pt/pipeline/3-reviewing-a-delivery.md +43 -0
- package/docs/guide/pt/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/pt/pipeline/5-the-loop-builder.md +1 -1
- package/docs/guide/pt/settings/1-themes.md +1 -1
- package/docs/guide/pt/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
- package/docs/guide/pt/settings/5-project-environment.md +1 -1
- package/docs/guide/pt/settings/6-updates.md +24 -0
- package/docs/guide/pt/settings/7-existing-projects.md +33 -0
- package/docs/guide/pt/settings/8-accessibility.md +23 -0
- package/docs/guide/pt/specs/1-specs-and-the-backlog.md +41 -3
- package/docs/guide/pt/specs/2-add-spec-quick-mode.md +1 -1
- package/docs/guide/pt/specs/3-add-spec-explore-mode.md +1 -1
- package/docs/guide/zh/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/zh/getting-started/2-installing-and-first-run.md +2 -0
- package/docs/guide/zh/getting-started/3-try-the-sample-project.md +35 -0
- package/docs/guide/zh/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
- package/docs/guide/zh/getting-started/6-universal-search.md +34 -0
- package/docs/guide/zh/insights/1-analytics-and-cost-tracking.md +18 -4
- package/docs/guide/zh/insights/2-the-integrated-terminal.md +1 -1
- package/docs/guide/zh/insights/3-code-explorer.md +1 -1
- package/docs/guide/zh/integrations/1-ai-providers.md +1 -1
- package/docs/guide/zh/integrations/2-plugins.md +1 -1
- package/docs/guide/zh/integrations/3-jira-integration.md +3 -3
- package/docs/guide/zh/integrations/4-mobile-companion.md +1 -1
- package/docs/guide/zh/integrations/5-mcp-server.md +1 -1
- package/docs/guide/zh/integrations/6-agent-chat.md +11 -4
- package/docs/guide/zh/integrations/8-flow-mode.md +69 -0
- package/docs/guide/zh/pipeline/1-rails-and-jobs.md +21 -1
- package/docs/guide/zh/pipeline/2-the-job-detail-view.md +12 -0
- package/docs/guide/zh/pipeline/3-reviewing-a-delivery.md +43 -0
- package/docs/guide/zh/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/zh/pipeline/5-the-loop-builder.md +1 -1
- package/docs/guide/zh/settings/1-themes.md +1 -1
- package/docs/guide/zh/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
- package/docs/guide/zh/settings/5-project-environment.md +1 -1
- package/docs/guide/zh/settings/6-updates.md +24 -0
- package/docs/guide/zh/settings/7-existing-projects.md +33 -0
- package/docs/guide/zh/settings/8-accessibility.md +23 -0
- package/docs/guide/zh/specs/1-specs-and-the-backlog.md +41 -3
- package/docs/guide/zh/specs/2-add-spec-quick-mode.md +1 -1
- package/docs/guide/zh/specs/3-add-spec-explore-mode.md +1 -1
- package/docs/internals/README.md +8 -0
- package/docs/internals/adding-a-provider.md +19 -2
- package/docs/internals/agent-actions-audit.md +101 -0
- package/docs/internals/agent-sessions.md +36 -1
- package/docs/internals/api-reference.md +190 -45
- package/docs/internals/architecture.md +53 -47
- package/docs/internals/companion-inbox-decisions.md +42 -0
- package/docs/internals/companion-rails-as-loops-contract.md +17 -6
- package/docs/internals/configuration.md +140 -9
- package/docs/internals/core-runtime-updates.md +4 -4
- package/docs/internals/existing-project-anchoring.md +168 -0
- package/docs/internals/flow-mode.md +668 -0
- package/docs/internals/legacy-implementation-notes.md +13 -0
- package/docs/internals/local-testing-feedback-2026-10.md +210 -0
- package/docs/internals/mcp-mission-audit.md +4 -0
- package/docs/internals/mission-rail-cards.md +10 -5
- package/docs/internals/mission-read-only-policy.md +152 -0
- package/docs/internals/modal-standard.md +181 -0
- package/docs/internals/openspec-workflow.md +32 -0
- package/docs/internals/operations-runbook.md +30 -0
- package/docs/internals/profiles.md +6 -3
- package/docs/internals/programmatic-agent-runtime.md +8 -0
- package/docs/internals/project-builder.md +1 -1
- package/docs/internals/review-packet.md +161 -9
- package/docs/internals/safe-pr-review-flow.md +135 -6
- package/docs/internals/source-map.md +413 -18
- package/docs/internals/spec-addenda.md +10 -0
- package/docs/internals/spec-triage.md +140 -0
- package/docs/internals/visual-design-audit.md +15 -2
- package/docs/local-providers.md +3 -0
- package/docs/mcp.md +21 -3
- package/docs/platforms/macos.md +1 -1
- package/docs/platforms/windows.md +2 -2
- package/docs/running-pipelines.md +22 -6
- package/docs/tracking-cost.md +54 -10
- package/local-runner/dist/specrails-local-runner.js +3851 -1178
- package/mcp-bridge/dist/specrails-mcp.js +3864 -1143
- package/package.json +10 -9
- package/server/dist/agent-mcp-config.js +37 -1
- package/server/dist/api-version.js +19 -0
- package/server/dist/command-resolver.js +4 -2
- package/server/dist/core-compat.js +1 -1
- package/server/dist/core-execution.js +2 -1
- package/server/dist/core-update-manager.js +71 -13
- package/server/dist/db/job-search.js +248 -0
- package/server/dist/db/jobs.js +6 -0
- package/server/dist/db/migrations.js +239 -0
- package/server/dist/db.js +9 -2
- package/server/dist/desktop-db.js +99 -5
- package/server/dist/desktop-router.js +126 -13
- package/server/dist/docs-router.js +67 -1
- package/server/dist/feature-flags.js +22 -0
- package/server/dist/index.js +30 -15
- package/server/dist/jira/jira-adf.js +13 -1
- package/server/dist/jira/jira-clarifications.js +146 -0
- package/server/dist/jira/jira-client.js +8 -1
- package/server/dist/jira/jira-db.js +41 -0
- package/server/dist/jira/jira-sync-manager.js +328 -25
- package/server/dist/mcp/guide.js +17 -7
- package/server/dist/mcp/tools/agents.js +1 -1
- package/server/dist/mcp/tools/analytics.js +15 -3
- package/server/dist/mcp/tools/app-settings.js +14 -1
- package/server/dist/mcp/tools/chat.js +1 -1
- package/server/dist/mcp/tools/env.js +4 -2
- package/server/dist/mcp/tools/jobs.js +96 -7
- package/server/dist/mcp/tools/loops.js +1 -1
- package/server/dist/mcp/tools/meta.js +10 -13
- package/server/dist/mcp/tools/rails.js +15 -1
- package/server/dist/mcp/tools/setup.js +1 -1
- package/server/dist/mcp/tools/specs.js +8 -5
- package/server/dist/mcp/tools/support.js +6 -3
- package/server/dist/mcp/tools/types.js +38 -1
- package/server/dist/mobile/mobile-admin-router.js +0 -16
- package/server/dist/mobile/mobile-gateway.js +0 -18
- package/server/dist/mobile/mobile-inbox.js +240 -0
- package/server/dist/mobile/mobile-missions.js +6 -8
- package/server/dist/mobile/mobile-router.js +9 -9
- package/server/dist/mobile/mobile-webrtc-peer.js +4 -54
- package/server/dist/mobile/mobile-ws.js +27 -4
- package/server/dist/modules/accounting/runtime/ai-invocations.js +4 -0
- package/server/dist/modules/accounting/runtime/decision-times.js +102 -0
- package/server/dist/modules/accounting/runtime/loop-economics.js +284 -0
- package/server/dist/modules/accounting/runtime/spending.js +7 -2
- package/server/dist/modules/accounting/runtime/what-if.js +87 -0
- package/server/dist/modules/agent-runtime/runtime/agent-runtime-bridge.js +86 -5
- package/server/dist/modules/agent-runtime/runtime/agent-runtime-controls.js +28 -2
- package/server/dist/modules/agent-runtime/runtime/agent-runtime-metrics.js +15 -2
- package/server/dist/modules/agent-runtime/runtime/agent-runtime-settings-router.js +21 -2
- package/server/dist/modules/agent-runtime/runtime/core-capabilities.js +55 -0
- package/server/dist/modules/agent-sessions/adapters/host-process.js +1 -1
- package/server/dist/modules/agent-sessions/domain/availability.js +16 -0
- package/server/dist/modules/agent-sessions/domain/protocol.js +8 -1
- package/server/dist/modules/agent-sessions/index.js +3 -1
- package/server/dist/modules/agent-sessions/runtime/core-sessions-availability.js +16 -0
- package/server/dist/modules/agents/runtime/agent-refine-manager.js +3 -1
- package/server/dist/modules/agents/runtime/agent-store.js +60 -73
- package/server/dist/modules/audit/adapters/http.js +66 -0
- package/server/dist/modules/audit/adapters/runtime.js +60 -0
- package/server/dist/modules/audit/adapters/sqlite.js +73 -0
- package/server/dist/modules/audit/application.js +190 -0
- package/server/dist/modules/audit/domain.js +434 -0
- package/server/dist/modules/audit/index.js +27 -0
- package/server/dist/modules/audit/ports.js +2 -0
- package/server/dist/modules/browser/runtime/browser-capture-manager.js +18 -141
- package/server/dist/modules/browser/runtime/browser-capture-types.js +1 -10
- package/server/dist/modules/browser/runtime/browser-playwright.js +0 -19
- package/server/dist/modules/code/runtime/file-provenance.js +23 -0
- package/server/dist/modules/conversations/runtime/chat-manager.js +5 -2
- package/server/dist/modules/delivery/adapters/decisions/chains.js +1 -0
- package/server/dist/modules/delivery/adapters/decisions/create.js +19 -1
- package/server/dist/modules/delivery/adapters/decisions/discard.js +2 -0
- package/server/dist/modules/delivery/adapters/decisions/local-changes.js +427 -0
- package/server/dist/modules/delivery/adapters/decisions/merge-local.js +80 -6
- package/server/dist/modules/delivery/adapters/decisions/observations.js +5 -0
- package/server/dist/modules/delivery/adapters/decisions/ownership.js +2 -1
- package/server/dist/modules/delivery/adapters/decisions/transitions.js +9 -0
- package/server/dist/modules/delivery/adapters/review-wip-store.js +37 -0
- package/server/dist/modules/delivery/domain/review-wip.js +71 -0
- package/server/dist/modules/delivery/index.js +9 -1
- package/server/dist/modules/delivery/runtime/delivery-changes.js +355 -0
- package/server/dist/modules/delivery/runtime/delivery-evidence.js +249 -8
- package/server/dist/modules/delivery/runtime/flow-review-legacy.js +99 -0
- package/server/dist/modules/delivery/runtime/flow-review-outcome.js +107 -0
- package/server/dist/modules/delivery/runtime/flow-worktree-handoff.js +32 -0
- package/server/dist/modules/delivery/runtime/flow-worktree-return.js +87 -0
- package/server/dist/modules/delivery/runtime/isolated-worktree.js +380 -0
- package/server/dist/modules/delivery/runtime/local-restore-branch.js +325 -0
- package/server/dist/modules/delivery/runtime/local-restore-resolver.js +48 -0
- package/server/dist/modules/delivery/runtime/local-stash.js +423 -0
- package/server/dist/modules/delivery/runtime/multi-repo-execution.js +27 -1
- package/server/dist/modules/delivery/runtime/phase3-harvest.js +40 -0
- package/server/dist/modules/delivery/runtime/pr-body.js +50 -0
- package/server/dist/modules/delivery/runtime/rail-isolated-launch.js +169 -166
- package/server/dist/modules/delivery/runtime/rail-launch-parser.js +5 -2
- package/server/dist/modules/delivery/runtime/rail-pr-decision.js +7 -1
- package/server/dist/modules/delivery/runtime/rail-pr-store.js +193 -12
- package/server/dist/modules/delivery/runtime/rails-router.js +267 -5
- package/server/dist/modules/delivery/runtime/review-brief.js +208 -0
- package/server/dist/modules/delivery/runtime/review-packet.js +41 -2
- package/server/dist/modules/delivery/runtime/review-wip-gate.js +67 -0
- package/server/dist/modules/delivery/runtime/run-records.js +267 -0
- package/server/dist/modules/delivery/runtime/run-review-diagnosis.js +102 -0
- package/server/dist/modules/execution/adapters/budget-storage.js +76 -0
- package/server/dist/modules/execution/application/enforce-budget.js +17 -2
- package/server/dist/modules/execution/domain/agent-env.js +98 -0
- package/server/dist/modules/execution/domain/daily-budget.js +36 -0
- package/server/dist/modules/execution/domain/spend-caps.js +166 -0
- package/server/dist/modules/execution/index.js +34 -1
- package/server/dist/modules/execution/runtime/budget-overview.js +76 -0
- package/server/dist/modules/execution/runtime/daily-budget-gate.js +86 -0
- package/server/dist/modules/execution/runtime/interactive-job-session.js +8 -0
- package/server/dist/modules/execution/runtime/launch-forecast.js +33 -0
- package/server/dist/modules/execution/runtime/queue-manager.js +54 -15
- package/server/dist/modules/execution/runtime/run-duration-stats.js +31 -13
- package/server/dist/modules/flow/adapters/bindings.js +1089 -0
- package/server/dist/modules/flow/adapters/http.js +147 -0
- package/server/dist/modules/flow/adapters/sqlite.js +121 -0
- package/server/dist/modules/flow/application.js +805 -0
- package/server/dist/modules/flow/domain.js +790 -0
- package/server/dist/modules/flow/index.js +34 -0
- package/server/dist/modules/flow/ports.js +2 -0
- package/server/dist/modules/inbox/adapters/http.js +21 -0
- package/server/dist/modules/inbox/adapters/project-source.js +233 -0
- package/server/dist/modules/inbox/application.js +28 -0
- package/server/dist/modules/inbox/domain.js +43 -0
- package/server/dist/modules/inbox/index.js +10 -0
- package/server/dist/modules/inbox/ports.js +2 -0
- package/server/dist/modules/loops/runtime/loop-definition-run.js +9 -0
- package/server/dist/modules/loops/runtime/loop-definition.js +5 -2
- package/server/dist/modules/loops/runtime/loop-executors.js +90 -9
- package/server/dist/modules/loops/runtime/loop-factory.js +30 -2
- package/server/dist/modules/loops/runtime/loop-flow-spec-recipe.js +166 -0
- package/server/dist/modules/loops/runtime/loop-graph.js +1 -1
- package/server/dist/modules/loops/runtime/loop-role-engines.js +4 -1
- package/server/dist/modules/loops/runtime/loop-run-manager.js +267 -10
- package/server/dist/modules/loops/runtime/loop-runs-store.js +21 -5
- package/server/dist/modules/loops/runtime/loop-templates.js +55 -12
- package/server/dist/modules/missions/runtime/agent-chat-manager.js +283 -20
- package/server/dist/modules/missions/runtime/agent-chat-router.js +96 -21
- package/server/dist/modules/missions/runtime/agent-failure-briefing.js +11 -3
- package/server/dist/modules/missions/runtime/agent-fence-promotion.js +9 -1
- package/server/dist/modules/missions/runtime/agent-flow-prompt.js +64 -0
- package/server/dist/modules/missions/runtime/agent-input-store.js +9 -4
- package/server/dist/modules/missions/runtime/agent-operator-prompt.js +100 -14
- package/server/dist/modules/missions/runtime/agent-session-store.js +88 -27
- package/server/dist/modules/missions/runtime/core-session-runner.js +89 -9
- package/server/dist/modules/missions/runtime/flow-turn-context.js +17 -0
- package/server/dist/modules/missions/runtime/mission-core-sessions.js +295 -55
- package/server/dist/modules/missions/runtime/mission-run-notify.js +2 -0
- package/server/dist/modules/missions/runtime/mission-session-projector.js +56 -19
- package/server/dist/modules/missions/runtime/mission-tool-policy.js +47 -0
- package/server/dist/modules/onboarding/adapters/http.js +78 -0
- package/server/dist/modules/onboarding/adapters/providers.js +41 -0
- package/server/dist/modules/onboarding/adapters/runtime.js +130 -0
- package/server/dist/modules/onboarding/application.js +133 -0
- package/server/dist/modules/onboarding/catalog.js +217 -0
- package/server/dist/modules/onboarding/domain.js +102 -0
- package/server/dist/modules/onboarding/index.js +20 -0
- package/server/dist/modules/onboarding/ports.js +2 -0
- package/server/dist/modules/project-rules/adapters/http.js +91 -0
- package/server/dist/modules/project-rules/domain.js +122 -0
- package/server/dist/modules/project-rules/runtime/rules-inventory-runs.js +97 -0
- package/server/dist/modules/project-rules/runtime/rules-store.js +109 -0
- package/server/dist/modules/project-settings/adapters/http.js +13 -0
- package/server/dist/modules/project-settings/adapters/sqlite.js +78 -8
- package/server/dist/modules/project-settings/domain.js +47 -1
- package/server/dist/modules/project-settings/index.js +7 -1
- package/server/dist/modules/recovery/adapters/sqlite.js +28 -0
- package/server/dist/modules/recovery/domain.js +162 -0
- package/server/dist/modules/recovery/index.js +16 -0
- package/server/dist/modules/specs/adapters/timeline-http.js +101 -0
- package/server/dist/modules/specs/domain/handoff-labels.js +371 -0
- package/server/dist/modules/specs/domain/handoff.js +260 -0
- package/server/dist/modules/specs/domain/non-goals.js +101 -0
- package/server/dist/modules/specs/domain/timeline.js +164 -0
- package/server/dist/modules/specs/domain/triage.js +320 -0
- package/server/dist/modules/specs/runtime/contract-refine-runner.js +3 -2
- package/server/dist/modules/specs/runtime/generated-spec-parser.js +75 -0
- package/server/dist/modules/specs/runtime/proposal-manager.js +4 -3
- package/server/dist/modules/specs/runtime/smash-runner.js +2 -1
- package/server/dist/modules/specs/runtime/spec-addenda.js +31 -0
- package/server/dist/modules/specs/runtime/spec-draft-parser.js +6 -1
- package/server/dist/modules/specs/runtime/spec-generation.js +431 -0
- package/server/dist/modules/specs/runtime/spec-handoff.js +103 -0
- package/server/dist/modules/specs/runtime/spec-history.js +376 -0
- package/server/dist/modules/specs/runtime/spec-launcher-manager.js +4 -3
- package/server/dist/modules/specs/runtime/spec-search.js +117 -0
- package/server/dist/modules/specs/runtime/ticket-store.js +47 -2
- package/server/dist/modules/specs/runtime/ticket-trash-service.js +62 -0
- package/server/dist/modules/specs/runtime/ticket-trash.js +193 -0
- package/server/dist/modules/specs/runtime/triage-runner.js +171 -0
- package/server/dist/modules/specs/runtime/triage.js +365 -0
- package/server/dist/modules/terminals/domain/app-urls.js +96 -0
- package/server/dist/modules/terminals/runtime/app-urls.js +77 -0
- package/server/dist/modules/terminals/runtime/background-process-service.js +25 -28
- package/server/dist/openspec-shim.js +1 -1
- package/server/dist/project-env.js +60 -0
- package/server/dist/project-git.js +65 -0
- package/server/dist/project-registry.js +264 -27
- package/server/dist/project-router-background-processes.js +27 -3
- package/server/dist/project-router-git.js +30 -0
- package/server/dist/project-router-helpers.js +5 -30
- package/server/dist/project-router-jobs.js +49 -1
- package/server/dist/project-router-loop-runs.js +72 -2
- package/server/dist/project-router-rules.js +54 -0
- package/server/dist/project-router-search.js +52 -0
- package/server/dist/project-router-settings.js +6 -0
- package/server/dist/project-router-setup.js +1 -1
- package/server/dist/project-router-spending.js +138 -0
- package/server/dist/project-router-tickets.js +246 -427
- package/server/dist/project-router.js +7 -0
- package/server/dist/providers/claude-adapter.js +25 -3
- package/server/dist/providers/codex-adapter.js +9 -1
- package/server/dist/providers/gemini-adapter.js +6 -1
- package/server/dist/providers/kimi-adapter.js +2 -0
- package/server/dist/providers/local-adapter.js +2 -0
- package/server/dist/providers/runtime.js +8 -0
- package/server/dist/schemas/agent-runtime.schema.json +3 -1
- package/server/dist/schemas/workflow-definition.schema.json +1 -0
- package/server/dist/setup-manager.js +19 -1
- package/server/dist/transient-children.js +25 -8
- package/server/dist/update-channel.js +21 -0
- package/server/dist/util/search-snippet.js +74 -0
- package/server/dist/worktree-manager.js +19 -8
- package/client/dist/assets/ActivityFeedPage-Dtp7EyHc.js +0 -1
- package/client/dist/assets/AgentBrowserCapture-CLqlEFw8.js +0 -1
- package/client/dist/assets/AgentModeAnalyticsPane-B8_hM3Tw.js +0 -2
- package/client/dist/assets/AgentModeCodePane-CNF8ZNjE.js +0 -2
- package/client/dist/assets/AgentModeJobsPane-CJpJbO9m.js +0 -1
- package/client/dist/assets/AgentsPage-BC8XSR79.js +0 -120
- package/client/dist/assets/AnalyticsPage-Cdv4jLtW.js +0 -1
- package/client/dist/assets/BarChart-BDMqVFJy.js +0 -55
- package/client/dist/assets/CodePage-DI1kegAr.js +0 -3
- package/client/dist/assets/DesktopAnalyticsPage-Bdp8E8U6.js +0 -1
- package/client/dist/assets/DocsDialog-Bm4RS7FX.js +0 -11
- package/client/dist/assets/DocsPage-DihYcU8r.js +0 -11
- package/client/dist/assets/ExportDropdown-Bb1lHx3r.js +0 -1
- package/client/dist/assets/IntegrationsPage-EAipiDWm.js +0 -1
- package/client/dist/assets/InteractiveJobComposer-BO6ASN-2.js +0 -19
- package/client/dist/assets/JobDetailModal-CuPYq7tP.js +0 -1
- package/client/dist/assets/JobDetailPage-BusMjJi9.js +0 -1
- package/client/dist/assets/JobsPage-C0QbsF2d.js +0 -1
- package/client/dist/assets/LoopBuilderPage-B7TlU4iS.js +0 -1
- package/client/dist/assets/LoopPreviewModal-BRWtXOD2.js +0 -1
- package/client/dist/assets/LoopsPage-C4q1DmCE.js +0 -2
- package/client/dist/assets/MinimizedChatsContext-DHfigjHS.js +0 -1
- package/client/dist/assets/PluginsPage-Z1JHSMdR.js +0 -2
- package/client/dist/assets/ProjectSettingsDialog-BUNj0tvN.js +0 -1
- package/client/dist/assets/RepositoryDeliveries-B4ybHOyB.js +0 -5
- package/client/dist/assets/ReviewPacketPage-hwfPNjyy.js +0 -4
- package/client/dist/assets/TemplatePreviewModal-V7FpMWuw.js +0 -1
- package/client/dist/assets/TicketDetailModalContext-Dkwo2cDs.js +0 -16
- package/client/dist/assets/Trans-BbFxRFtR.js +0 -1
- package/client/dist/assets/activity-B-rp4h_v.js +0 -1
- package/client/dist/assets/activity-C6kJpm9q.js +0 -1
- package/client/dist/assets/activity-CGx4kb_j.js +0 -1
- package/client/dist/assets/activity-CnoX2bH7.js +0 -1
- package/client/dist/assets/activity-DAyekdlt.js +0 -1
- package/client/dist/assets/activity-DCxtpT7j.js +0 -1
- package/client/dist/assets/activity-DiyjsgQV.js +0 -1
- package/client/dist/assets/activity-JzwRaWPD.js +0 -1
- package/client/dist/assets/addspec-BOvgmcgk.js +0 -1
- package/client/dist/assets/addspec-Clmyfn_R.js +0 -1
- package/client/dist/assets/addspec-CsNaBpHp.js +0 -1
- package/client/dist/assets/addspec-D2tvWmmV.js +0 -1
- package/client/dist/assets/addspec-D3nFwvD0.js +0 -1
- package/client/dist/assets/addspec-DVLEhK3w.js +0 -1
- package/client/dist/assets/addspec-DXbK-tb0.js +0 -1
- package/client/dist/assets/addspec-OHG8DFEn.js +0 -1
- package/client/dist/assets/agent-5bSixVzz.js +0 -1
- package/client/dist/assets/agent-BR4EHfhq.js +0 -1
- package/client/dist/assets/agent-C0IKkJP8.js +0 -1
- package/client/dist/assets/agent-C7li9ayC.js +0 -1
- package/client/dist/assets/agent-D0dRmEen.js +0 -1
- package/client/dist/assets/agent-DZVGHm7H.js +0 -1
- package/client/dist/assets/agent-Dip4h2YE.js +0 -1
- package/client/dist/assets/agent-Pp-P-n1p.js +0 -1
- package/client/dist/assets/agentRuntime-BxF81z52.js +0 -1
- package/client/dist/assets/agentRuntime-BxYS5V7u.js +0 -1
- package/client/dist/assets/agentRuntime-Dc9HG3BA.js +0 -1
- package/client/dist/assets/agents-B6ZsnARo.js +0 -1
- package/client/dist/assets/agents-BORdhe0K.js +0 -1
- package/client/dist/assets/agents-C6aq9Oqs.js +0 -1
- package/client/dist/assets/agents-Cbsc4bcX.js +0 -1
- package/client/dist/assets/agents-D0uYR6hq.js +0 -1
- package/client/dist/assets/agents-Doe1sHY5.js +0 -1
- package/client/dist/assets/agents-DyNi_I9m.js +0 -1
- package/client/dist/assets/agents-StKxiTg0.js +0 -1
- package/client/dist/assets/agentstudio-7cYCXn-L.js +0 -1
- package/client/dist/assets/agentstudio-BHWQh8G3.js +0 -1
- package/client/dist/assets/agentstudio-BjnWHyRs.js +0 -1
- package/client/dist/assets/agentstudio-BkV8vcK4.js +0 -1
- package/client/dist/assets/agentstudio-BzugqB_N.js +0 -1
- package/client/dist/assets/agentstudio-CWbp7KvH.js +0 -1
- package/client/dist/assets/agentstudio-DG6plf5o.js +0 -1
- package/client/dist/assets/agentstudio-DkZVF-Cc.js +0 -1
- package/client/dist/assets/analytics-B1DIQd4m.js +0 -1
- package/client/dist/assets/analytics-BAIZ9vE_.js +0 -1
- package/client/dist/assets/analytics-BTqgmgBd.js +0 -1
- package/client/dist/assets/analytics-BWynXPEm.js +0 -1
- package/client/dist/assets/analytics-DGcUsQ44.js +0 -1
- package/client/dist/assets/analytics-GnSnpJ4W.js +0 -1
- package/client/dist/assets/analytics-TWgYaoO0.js +0 -1
- package/client/dist/assets/analytics-kJy6Tuko.js +0 -1
- package/client/dist/assets/atom-one-dark-qiGhVQxg.js +0 -1
- package/client/dist/assets/builder-B9gorTnT.js +0 -1
- package/client/dist/assets/builder-Bvw5s3Mi.js +0 -1
- package/client/dist/assets/builder-CL5l4dU3.js +0 -1
- package/client/dist/assets/builder-CVDTVrQX.js +0 -1
- package/client/dist/assets/builder-CpS9liE9.js +0 -1
- package/client/dist/assets/builder-DNctIL9Q.js +0 -1
- package/client/dist/assets/builder-De2NxX6o.js +0 -1
- package/client/dist/assets/builder-DeYT7Y-m.js +0 -1
- package/client/dist/assets/button-4FS1ZDTp.js +0 -1
- package/client/dist/assets/chat-D_I7nU5K.js +0 -1
- package/client/dist/assets/chevron-up-6EFqEHBj.js +0 -1
- package/client/dist/assets/chunk-OB3PAWPO-B1EMk45A.js +0 -3
- package/client/dist/assets/clsx-CjueKrWZ.js +0 -1
- package/client/dist/assets/code-B37GRg9C.js +0 -1
- package/client/dist/assets/code-BBOEZbf9.js +0 -1
- package/client/dist/assets/code-BRm-jcyx.js +0 -1
- package/client/dist/assets/code-CF7w62CR.js +0 -1
- package/client/dist/assets/code-CLuvJt2r.js +0 -1
- package/client/dist/assets/code-D0RCm59f.js +0 -1
- package/client/dist/assets/code-DaZ-ZwCT.js +0 -1
- package/client/dist/assets/code-iIHkGaCL.js +0 -1
- package/client/dist/assets/commands-0XjAftla.js +0 -1
- package/client/dist/assets/commands-BAWSYHjQ.js +0 -1
- package/client/dist/assets/commands-BBwowgiE.js +0 -1
- package/client/dist/assets/commands-BacjIZLN.js +0 -1
- package/client/dist/assets/commands-Bs62IAZ3.js +0 -1
- package/client/dist/assets/commands-CLPdh-Hh.js +0 -1
- package/client/dist/assets/commands-DlbFzgrp.js +0 -1
- package/client/dist/assets/commands-LjPSsi5F.js +0 -1
- package/client/dist/assets/common-Bdi0qN4S.js +0 -1
- package/client/dist/assets/common-Bhb9zN1P.js +0 -1
- package/client/dist/assets/common-BykKlZg1.js +0 -1
- package/client/dist/assets/common-CvnNNSJA.js +0 -1
- package/client/dist/assets/common-D5zk_mqq.js +0 -1
- package/client/dist/assets/common-DQNO_al5.js +0 -1
- package/client/dist/assets/common-Dax30Vmp.js +0 -1
- package/client/dist/assets/common-DkllpVSb.js +0 -1
- package/client/dist/assets/core-B3mKBIh5.js +0 -1
- package/client/dist/assets/dashboard-B1ndRHuC.js +0 -1
- package/client/dist/assets/dashboard-BX7KXiqA.js +0 -1
- package/client/dist/assets/dashboard-B_BSNxcN.js +0 -1
- package/client/dist/assets/dashboard-CCeFN7-V.js +0 -1
- package/client/dist/assets/dashboard-CRl0WtFJ.js +0 -1
- package/client/dist/assets/dashboard-XGdQ5mjw.js +0 -1
- package/client/dist/assets/dashboard-_oltA6Jd.js +0 -1
- package/client/dist/assets/dashboard-bAuf5KVk.js +0 -1
- package/client/dist/assets/dialog-DtdR05v1.js +0 -45
- package/client/dist/assets/dist-js-CJ_2XX1Y.js +0 -1
- package/client/dist/assets/event-Bt7f3wXe.js +0 -1
- package/client/dist/assets/explore-BG99VGpL.js +0 -1
- package/client/dist/assets/explore-C0TjprJW.js +0 -1
- package/client/dist/assets/explore-C2dgEo7q.js +0 -1
- package/client/dist/assets/explore-C8NDHbob.js +0 -1
- package/client/dist/assets/explore-CWWgzQGR.js +0 -1
- package/client/dist/assets/explore-CcQXpdtS.js +0 -1
- package/client/dist/assets/explore-DgBACn39.js +0 -1
- package/client/dist/assets/explore-DsXAgnmJ.js +0 -1
- package/client/dist/assets/file-text-C0blZHLh.js +0 -1
- package/client/dist/assets/formatDistanceToNow-NjPHBLfB.js +0 -1
- package/client/dist/assets/getTimezoneOffsetInMilliseconds-vJ7qUoqN.js +0 -1
- package/client/dist/assets/git-branch-yf6LE1Bw.js +0 -1
- package/client/dist/assets/index-BgbCbIua.css +0 -2
- package/client/dist/assets/index-Ce4yZtKf.js +0 -83
- package/client/dist/assets/integrations-BkpRUbvp.js +0 -1
- package/client/dist/assets/integrations-Bo8qbJf4.js +0 -1
- package/client/dist/assets/integrations-CmSrKzZb.js +0 -1
- package/client/dist/assets/integrations-DGtq26Rr.js +0 -1
- package/client/dist/assets/integrations-De38GFnQ.js +0 -1
- package/client/dist/assets/integrations-Dw6zdtb-.js +0 -1
- package/client/dist/assets/integrations-Dwl9KQp0.js +0 -1
- package/client/dist/assets/integrations-Refg_d2I.js +0 -1
- package/client/dist/assets/jira-B6OYw4CJ.js +0 -1
- package/client/dist/assets/jira-BTF6RaOe.js +0 -1
- package/client/dist/assets/jira-CEetIB2q.js +0 -1
- package/client/dist/assets/jira-CIzsZLw5.js +0 -1
- package/client/dist/assets/jira-Daw9tmpI.js +0 -1
- package/client/dist/assets/jira-FXr7u2lh.js +0 -1
- package/client/dist/assets/jira-LaNQn7yl.js +0 -1
- package/client/dist/assets/jira-api-Cabj-H0J.js +0 -1
- package/client/dist/assets/job-time-BCL7wee9.js +0 -1
- package/client/dist/assets/jobs-ARwD85B9.js +0 -1
- package/client/dist/assets/jobs-BMF1w4WT.js +0 -1
- package/client/dist/assets/jobs-CBfzGLwm.js +0 -1
- package/client/dist/assets/jobs-CPjiluBY.js +0 -1
- package/client/dist/assets/jobs-CQQd58pY.js +0 -1
- package/client/dist/assets/jobs-De3EqaO0.js +0 -1
- package/client/dist/assets/jobs-Du9-Ei9a.js +0 -1
- package/client/dist/assets/jobs-qMHbnxwC.js +0 -1
- package/client/dist/assets/layers-BCLTgHXO.js +0 -1
- package/client/dist/assets/loader-circle-BqV9xYGf.js +0 -1
- package/client/dist/assets/loop-layout-CyXj9223.js +0 -7
- package/client/dist/assets/loops-B2PhQLKR.js +0 -1
- package/client/dist/assets/loops-BqbF46st.js +0 -1
- package/client/dist/assets/loops-CINnHbfI.js +0 -1
- package/client/dist/assets/loops-D-3XhH04.js +0 -1
- package/client/dist/assets/loops-DKkEEjZ_.js +0 -1
- package/client/dist/assets/loops-DzWR5-v6.js +0 -1
- package/client/dist/assets/loops-WyWDkhok.js +0 -1
- package/client/dist/assets/loops-scD5fIBf.js +0 -1
- package/client/dist/assets/mcp-6rMoZfEO.js +0 -1
- package/client/dist/assets/mcp-BD8sL5mP.js +0 -1
- package/client/dist/assets/mcp-BkcA3I5s.js +0 -1
- package/client/dist/assets/mcp-CCpSelOh.js +0 -1
- package/client/dist/assets/mcp-CUAN6ORK.js +0 -1
- package/client/dist/assets/mcp-CqbRxRTE.js +0 -1
- package/client/dist/assets/mcp-DP2YfVhO.js +0 -1
- package/client/dist/assets/mcp-DUVQamDz.js +0 -1
- package/client/dist/assets/narration-BEKMVxGm.js +0 -1
- package/client/dist/assets/narration-CjLwGKap.js +0 -1
- package/client/dist/assets/narration-DANWuGsW.js +0 -1
- package/client/dist/assets/narration-DGeEDWiT.js +0 -1
- package/client/dist/assets/narration-DJgpGwIP.js +0 -1
- package/client/dist/assets/narration-DbHnz0qV.js +0 -1
- package/client/dist/assets/narration-bZSsTZG8.js +0 -1
- package/client/dist/assets/narration-i6aKJKEc.js +0 -1
- package/client/dist/assets/nav--u7iPYlS.js +0 -1
- package/client/dist/assets/nav-C5Jgfaby.js +0 -1
- package/client/dist/assets/nav-CAna_Wpt.js +0 -1
- package/client/dist/assets/nav-CCLqeyHo.js +0 -1
- package/client/dist/assets/nav-Cf3c90Jk.js +0 -1
- package/client/dist/assets/nav-DMYQaQjR.js +0 -1
- package/client/dist/assets/nav-Df_PkZ9F.js +0 -1
- package/client/dist/assets/nav-VyNGBJwj.js +0 -1
- package/client/dist/assets/packet-8nn9RsU7.js +0 -1
- package/client/dist/assets/packet-B0H15elv.js +0 -1
- package/client/dist/assets/packet-BQvBgrwh.js +0 -1
- package/client/dist/assets/packet-BR7mO0-a.js +0 -1
- package/client/dist/assets/packet-BgcQ6q_K.js +0 -1
- package/client/dist/assets/packet-D2s92Jnn.js +0 -1
- package/client/dist/assets/packet-YbtcD1HS.js +0 -1
- package/client/dist/assets/packet-c0Qj_9eX.js +0 -1
- package/client/dist/assets/project-repositories-Cnnuj9Ia.js +0 -1
- package/client/dist/assets/rotate-ccw-DalJAQQX.js +0 -1
- package/client/dist/assets/settings-B1NV8Ow9.js +0 -1
- package/client/dist/assets/settings-BQ8XFZeE.js +0 -1
- package/client/dist/assets/settings-BRkxfBbO.js +0 -1
- package/client/dist/assets/settings-C_CcU1dP.js +0 -1
- package/client/dist/assets/settings-Cto9n0eL.js +0 -1
- package/client/dist/assets/settings-Pyw8uYtL.js +0 -1
- package/client/dist/assets/settings-b3HVCNNd.js +0 -1
- package/client/dist/assets/settings-hdive4u6.js +0 -1
- package/client/dist/assets/setup-Be485n2u.js +0 -1
- package/client/dist/assets/setup-CKGUxKr-.js +0 -1
- package/client/dist/assets/setup-Ck1Uwd7_.js +0 -1
- package/client/dist/assets/setup-Cm774a6v.js +0 -1
- package/client/dist/assets/setup-DIqMQpxt.js +0 -1
- package/client/dist/assets/setup-DfCsoNFL.js +0 -1
- package/client/dist/assets/setup-DkeE8mP0.js +0 -1
- package/client/dist/assets/setup-xVntVaz1.js +0 -1
- package/client/dist/assets/specs-Bqvtz2kz.js +0 -1
- package/client/dist/assets/specs-CKes-kz6.js +0 -1
- package/client/dist/assets/specs-CfXxPDNB.js +0 -1
- package/client/dist/assets/specs-CyF9HuTI.js +0 -1
- package/client/dist/assets/specs-DMj035Mt.js +0 -1
- package/client/dist/assets/specs-DfIdoU5L.js +0 -1
- package/client/dist/assets/specs-j5pGLQeU.js +0 -1
- package/client/dist/assets/specs-xW5pkkB7.js +0 -1
- package/client/dist/assets/spending-CQnrWiR3.js +0 -1
- package/client/dist/assets/square-D0JTbRSR.js +0 -1
- package/client/dist/assets/tauri-shell-DE6LfGPw.js +0 -2
- package/client/dist/assets/terminal-BAzpHtpY.js +0 -1
- package/client/dist/assets/terminal-C7dHeR3x.js +0 -1
- package/client/dist/assets/terminal-CMla5Qsz.js +0 -1
- package/client/dist/assets/terminal-CdNXH-n9.js +0 -1
- package/client/dist/assets/terminal-Cw5bZsmV.js +0 -1
- package/client/dist/assets/terminal-DFUP4eNv.js +0 -1
- package/client/dist/assets/terminal-DGqljeK_.js +0 -1
- package/client/dist/assets/terminal-cU70NodO.js +0 -1
- package/client/dist/assets/tickets--tiSOCcn.js +0 -1
- package/client/dist/assets/tickets-BUJ3DMWU.js +0 -1
- package/client/dist/assets/tickets-C1WNPODq.js +0 -1
- package/client/dist/assets/tickets-CDjhWmiE.js +0 -1
- package/client/dist/assets/tickets-CLgPC3uO.js +0 -1
- package/client/dist/assets/tickets-D41ZMQpf.js +0 -1
- package/client/dist/assets/tickets-DEaQC06P.js +0 -1
- package/client/dist/assets/tickets-kcMzbLCp.js +0 -1
- package/client/dist/assets/trash-D8zYUmTg.js +0 -1
- package/client/dist/assets/useDesktop-BjLT0_EE.js +0 -1
- package/client/dist/assets/useRuntimeRuns-C97qEqMg.js +0 -1
- package/client/dist/assets/useSharedWebSocket-Bj4LMp7b.js +0 -2
- package/client/dist/assets/utils-BC4DHlz2.js +0 -1
- package/docs/guide/en/getting-started/4-the-dashboard-tour.md +0 -48
- package/docs/guide/es/getting-started/4-the-dashboard-tour.md +0 -48
- package/server/dist/mobile/mobile-preview-channel.js +0 -179
- package/server/dist/mobile/mobile-preview.js +0 -366
- package/server/dist/modules/browser/domain/preview-origins.js +0 -117
- package/server/dist/modules/browser/runtime/preview-targets.js +0 -80
- /package/client/dist/assets/{atom-one-dark-B-oHczHB.css → DocView-B-oHczHB.css} +0 -0
- /package/docs/guide/de/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
- /package/docs/guide/en/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
- /package/docs/guide/es/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
- /package/docs/guide/fr/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
- /package/docs/guide/it/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
- /package/docs/guide/ja/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
- /package/docs/guide/pt/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
- /package/docs/guide/zh/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={running:`in esecuzione`,completed:`completato`,done:`concluso`,failed:`fallito`,canceled:`annullato`,queued:`in coda`,zombie:`zombie`,skipped:`saltato`},t={running:`Il job è in esecuzione`,completed:`Job completato con successo`,failed:`Il job è uscito con un codice di uscita diverso da zero`,canceled:`Il job è stato annullato manualmente`,queued:`Il job è in attesa nella coda`,queuedToRun:`Il job è in attesa di essere eseguito`,zombie:`Il job è stato terminato automaticamente dopo un'inattività prolungata`,skipped:`Il job è stato saltato perché un job padre della pipeline è fallito`},n={running:`in esecuzione`,completed:`completato`,failed:`fallito`,canceled:`annullato`,zombie_terminated:`zombie`,queued:`in coda`,skipped:`saltato`},r={title:`Job`,exportJobs:`Esporta job`,proposalDeleted:`Proposta eliminata`,proposal:{title:`Proposta`,noContent:`Ancora nessun contenuto nella proposta.`,githubIssue:`Issue GitHub:`,status:{input:`In attesa di input`,exploring:`Esplorazione`,review:`Pronta per la revisione`,refining:`Perfezionamento`,creatingIssue:`Creazione issue`,created:`Creata`,cancelled:`Annullata`,unknown:`Stato sconosciuto: {{status}}`}}},i={breadcrumbDashboard:`Dashboard`,breadcrumbJob:`Job #{{id}}`,notFound:`Job non trovato`,notFoundDescription:`L'ID job "{{id}}" non esiste`,backToDashboard:`Torna alla dashboard`,startedAgo:`Avviato {{timeAgo}}`,queuedWaiting:`In coda — in attesa di avvio`,exportDiagnostic:`Esporta diagnostica`,exportDiagnosticAria:`Esporta bundle diagnostico`,exportDiagnosticTooltip:`Scarica uno ZIP con telemetria, log e riepilogo di questo job`,reExecute:`Riesegui`,reExecuteTooltip:`Avvia un nuovo job con lo stesso comando`,cancelJob:`Annulla job`,cancelJobTooltip:`Invia SIGTERM al processo in esecuzione. Il job verrà contrassegnato come annullato.`,cancelInteractive:`Scarta`,finalizeJob:`Finalizza job`,finalizing:`Finalizzazione…`,finalizeJobTooltip:`Termina questa sessione interattiva e somma al totale del job i token e il costo di ogni turno.`,interactive:{ready:`Pronto — invia un prompt`,working:`L'agente sta lavorando…`,placeholder:`Invia un messaggio al job in esecuzione…`,send:`Invia`,liveTotals:"{{turns}} turni · ${{cost}}",autoHint:`Questo job segue il suo piano e termina da solo — i messaggi sono indicazioni opzionali.`,wrapUp:`Concludi ora`,wrapUpTooltip:`Termina la sessione ora — il job si completa con il lavoro prodotto finora, con i token e il costo di ogni turno sommati al totale.`,wrapUpStep:`Chiudi questo passo`,wrapUpStepTooltip:`Termina il passo corrente ora — il loop avanza con quanto il passo ha prodotto finora.`,wrappingUp:`Conclusione in corso…`,queued_one:`{{count}} messaggio in coda`,queued_other:`{{count}} messaggi in coda`,waitingForStep:`Tra un passo e l'altro — il loop sta decidendo cosa eseguire dopo. Potrai inviare un messaggio quando partirà il prossimo passo IA.`,waitingForStepShort:`In attesa del prossimo passo…`,sendDisabledEmpty:`Scrivi prima un messaggio`,sendDisabledWaiting:`Al momento non c'è nessuna sessione di passo attiva`},toast:{jobDeleted:`Job eliminato`,cancelSignalSent:`Segnale di annullamento inviato`,cancelSignalSentDescription:`Il job si fermerà al prossimo punto sicuro`,failed:`Operazione non riuscita`,networkError:`Errore di rete`,exportFailed:`Esportazione non riuscita`,exportFailedHttp:`Esportazione non riuscita (HTTP {{status}})`,jobRequeued:`Job rimesso in coda`,spawnFailed:`Impossibile avviare il job`,finalizeScheduled:`Finalizzazione del job interattivo…`,finalizeFailed:`Impossibile finalizzare il job`,sendFailed:`Impossibile inviare il messaggio`,wrapUpScheduled:`Conclusione del job…`,wrapUpStepScheduled:`Chiusura del passo — il loop avanza con quanto prodotto`}},a={inProgress:`Job in corso`,completed:`Job completato`,failed:`Job fallito`,duration:`Durata`,cost:`Costo`,turns:`Turni`,tokens:`Token`,filesCount_one:`{{count}} file`,filesCount_other:`{{count}} file`,pipelineTotal:`Totale pipeline ({{count}} fasi)`,totalCost:`Costo totale`,totalTokens:`Token totali`,filesModified:`File modificati`,zoneInProgress:`In corso`,zoneFinal:`Riepilogo finale`,zoneFinalPending:`Riepilogo finale — calcolato al termine`,pendingCaption:`Calcolato al termine`,pendingTooltip:`Questa è la cifra reale del provider; appare al termine del job.`,costTooltip:`Il costo reale viene fatturato dal provider alla chiusura del job.`,liveTooltip:`In diretta`,explainer:`Costo, turni e token sono le cifre reali del provider e appaiono al termine.`,notAvailable:`Non disponibile`,steps_one:`{{count}} passo`,steps_other:`{{count}} passi`,activity:{editing:`Modifica di {{arg}}`,writing:`Scrittura di {{arg}}`,reading:`Lettura di {{arg}}`,searching:`Ricerca di «{{arg}}»`,running:`Esecuzione: {{arg}}`,thinking:`Sta pensando…`,reasoning:`Sta ragionando…`,working:`Al lavoro…`,connecting:`Connessione all'agente…`,starting:`Avvio…`,delegating:`Delego a {{arg}}`},pipelinePartial:`≥ mostrato — {{count}} fase/i senza costo registrato`,pipelinePartialTooltip:`Alcune fasi si sono interrotte prima di riportare il costo, quindi questo totale è un limite inferiore.`,pipelineCostUnavailable:`La telemetria dei costi non è disponibile per nessuna fase.`,pipelineUsageUnavailable:`La telemetria dei token non è disponibile per nessuna fase.`,pipelineUsagePartial:`≥ mostrato — fasi senza telemetria dei token: {{count}}`,pipelineUsageTooltip:`I provider possono completare le fasi senza esporre la telemetria dei token; è incluso solo l'utilizzo noto.`,costUnknownLocal:`Costo sconosciuto (motore locale)`,costUnknownLocalTooltip:`Costo sconosciuto (motore locale). Aggiungi tariffe alla connessione per vedere una stima.`},o={showMore:`+ altri {{count}}`,showLess:`Mostra meno`,deletedTicket:`#{{id}} (eliminato)`,deletedTooltip:`Il ticket non esiste più`},s={notFound:`Job non trovato`,cancelConfirmTitle:`Annullare il job?`,cancelConfirmDescription:`Il job si fermerà al prossimo punto sicuro. Questa azione è irreversibile.`,keepRunning:`Continua l'esecuzione`,cancelJob:`Annulla job`,stopRun:`Ferma esecuzione`,stopRunConfirmTitle:`Fermare questa esecuzione?`,stopRunConfirmDescription:`L'esecuzione del loop si fermerà al prossimo confine di step. Questa azione non può essere annullata.`,toast:{cancelSignalSent:`Segnale di annullamento inviato`,cancelSignalSentDescription:`Il job si fermerà al prossimo punto sicuro`,stopSignalSent:`Segnale di arresto inviato`,stopSignalSentDescription:`L'esecuzione si fermerà al prossimo confine di step`,cancelFailed:`Annullamento non riuscito`,networkError:`Errore di rete`}},c={title:`Confronto job`,jobN:`Job {{n}}`,loadFailed:`Impossibile caricare il confronto: {{error}}`,duration:`Durata`,cost:`Costo`,tokensOut:`Token in uscita`,tokensIn:`Token in ingresso`,cacheRead:`Lettura cache`,model:`Modello`,phasesDone:`Fasi completate`,betterValueHint:`Le evidenziazioni verdi indicano il valore migliore`},l={emptyTitle:`Ancora nessun job`,emptyDescription:`Esegui un comando qui sopra per vedere qui la cronologia dei job`,loadFailed:`Impossibile caricare i job`,filterAll:`Tutti ({{count}})`,filterStatus:`{{status}} ({{count}})`,fromDate:`Dalla data`,toDate:`Alla data`,clear:`Cancella`,exitCompareMode:`Esci dalla modalità confronto`,compareTwoJobs:`Confronta 2 job`,clearJobs:`Cancella job`,selectTwoToCompare:`Seleziona 2 job da confrontare`,selectOneMore:`Seleziona 1 altro job`,readyToCompare:`Pronto — clicca Confronta`,compareAction:`Confronta →`,colStatus:`Stato`,colCommand:`Comando`,colDuration:`Durata`,colTokens:`Token`,colCost:`Costo`,colStarted:`Avvio`,profileTooltip:`Profilo: {{name}}`,pipelinePart:`Parte di una pipeline`,pipelineDependsOn:`(dipende dal passaggio precedente)`,deleteProposal:`Elimina proposta`,loadMore:`Carica altri ({{count}} rimanenti)`,priority:{critical:`critica`,high:`alta`,normal:`normale`,low:`bassa`},clearModal:{title:`Cancella job`,jobsInHistory_one:`{{count}} job nella cronologia`,jobsInHistory_other:`{{count}} job nella cronologia`,clearAll_one:`Cancella {{count}} job`,clearAll_other:`Cancella tutti i {{count}} job`,orByRange:`Oppure cancella per intervallo di date:`,fromPlaceholder:`Da`,toPlaceholder:`A`,clearInRange_one:`Cancella {{count}} job nell'intervallo`,clearInRange_other:`Cancella {{count}} job nell'intervallo`,clearRange:`Cancella intervallo`},deleteProposalConfirm:{title:`Eliminare la proposta?`,description:`Verrà eliminata definitivamente 1 proposta. Questa azione è irreversibile.`},toast:{cleared_one:`{{count}} job cancellato`,cleared_other:`{{count}} job cancellati`,clearFailed:`Impossibile cancellare i job`,networkError:`Errore di rete`}},u={none:`Nessun job attivo`,noneHint:`Seleziona un comando qui sotto per avviare un job`,exitCode:`exit {{code}}`,cancelTooltip:`Invia SIGTERM al processo claude in esecuzione`,viewLogs:`Vedi log`,toast:{cancelRequested:`Annullamento del job richiesto`,cancelRequestedDescription:`Invio di SIGTERM al processo`,cancelFailed:`Impossibile annullare il job`,networkError:`Errore di rete durante l'annullamento del job`}},d={setup:`Preparazione`,iteration:`Iterazione {{current}}/{{limit}}`,iterationBadge:`iter {{count}}`,follow:`Seguendo in diretta`,resumeFollow:`Riprendi a seguire`,expandAll:`Espandi tutto`,collapseAll:`Comprimi tutto`,copyStep:`Copia passo`,copied:`Passo copiato negli appunti`,stepDetail:`Dettagli del passo`,stepDetailTemplate:`Modello`,stepDetailCommand:`Comando`,copyCommand:`Copia`,interrupted:`Interrotto`,waiting:`In attesa del prossimo passo...`,stepMapAria:`Mappa dei passi del loop`,stalled:`Bloccato`,stalledIdle_one:`Nessun output dal provider per {{count}} minuto — l'app ha fermato questo tentativo`,stalledIdle_other:`Nessun output dal provider per {{count}} minuti — l'app ha fermato questo tentativo`,providerLimit:`Limite del provider`,providerLimitHint:`Il provider ha risposto con un avviso di limite d'uso, quindi l'app ha fermato la run invece di continuare a ciclare.`,paused:`In pausa`,runtimeGraph:`Grafo di esecuzione`,graphFullscreen:`Schermo intero`,graphExitFullscreen:`Esci da schermo intero`,graphBack:`Indietro`,graphOpenComponent:`Apri componente`,graphNoAttempts:`Nessun tentativo registrato`,graphState:{running:`In esecuzione`,paused:`In pausa`,failed:`Fallito`,stalled:`Senza progressi`,interrupted:`Interrotto`,ok:`Riuscito`,pending:`In attesa`,unknown:`Sconosciuto`},repeatFromHere:`Ripeti da qui`,forkFailed:`Impossibile creare l’esecuzione collegata`,forkPending:`Riprova il passaggio selezionato inizialmente per completare la biforcazione in attesa.`,forkCreated:`Esecuzione collegata creata. Aprila e riprendi dal punto selezionato.`,openFork:`Apri esecuzione collegata`},f={loading:`Caricamento dei log...`,empty:`Ancora nessun output di log`,filterPlaceholder:`Filtra i log...`,copySuccess:`Log copiato negli appunti`,copyFailed:`Impossibile copiare il log`,retainedTail:`Le righe precedenti del log sono state omesse da questa vista. La copia include solo il contenuto conservato. Consulta Dettagli per le evidenze di verifica disponibili.`,lineCount:`{{filtered}} / {{total}} righe`,jumpToBottom:`Vai in fondo`,phaseLines_one:`{{count}} riga`,phaseLines_other:`{{count}} righe`,noMatchingLines:`Nessuna riga corrispondente`,noOutput:`Nessun output`,completed:`Completato`,turns_one:`{{count}} turno`,turns_other:`{{count}} turni`},p={title:`Risultato dell’esecuzione`,execution:`Esecuzione`,implementation:`Implementazione`,validation:`Validazione`,archive:`Archiviazione`,delivery:`Consegna`,counters:`Passaggi: {{steps}} · Valutazioni: {{evaluations}} · Turni dell’agente: {{turns}}`,unavailable:`Non disponibile`,evidence:`Prove, eccezioni e tempi per fase`,snapshot:`Registrato al completamento: {{change}} · {{at}}`,acceptedBy:`Accettato da {{by}}`,required:`Obbligatorio`,supplementary:`Supplementare`,attempts:`Tentativi: {{count}}`,phaseCostUnavailable:`Il costo per fase di Core non è disponibile; il consumo del fornitore è attribuito ai passaggi del ciclo.`,noCoreEvidence:`Prove di accettazione non disponibili. Il successo dell’esecuzione da solo non conferma il completamento del ticket.`,status:{success:`Riuscita`,failed:`Fallita`,blocked:`Bloccata`,stopped:`Interrotta`,stalled:`Senza progressi`,complete:`Completa`,incomplete:`Incompleta`,verified:`Verificata`,"with-exceptions":`Verificata con eccezioni`,pending:`In attesa`,"pending-host":`Consegna dell’host in attesa`,done:`Completato`,running:`In corso`,skipped:`Saltato`,passed:`Superato`,unavailable:`Non disponibile`}},m={details:`Dettagli`,phaseActivity:`{{phase}} · {{activity}}`,liveReported:`Riportato dal provider finora; le cifre definitive arrivano al termine del job.`,questionPending:`Rispondi alla domanda`},h={statusLabel:e,statusTooltip:t,statusName:n,page:r,detail:i,statusPanel:a,ticketHeader:o,modal:s,comparison:c,recent:l,activeJob:u,loopExplorer:d,logViewer:f,completion:p,runHeader:m};export{u as activeJob,c as comparison,p as completion,h as default,i as detail,f as logViewer,d as loopExplorer,s as modal,r as page,l as recent,m as runHeader,e as statusLabel,n as statusName,a as statusPanel,t as statusTooltip,o as ticketHeader};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={running:`läuft`,completed:`abgeschlossen`,done:`fertig`,failed:`fehlgeschlagen`,canceled:`abgebrochen`,queued:`in Warteschlange`,zombie:`Zombie`,skipped:`übersprungen`},t={running:`Job wird gerade ausgeführt`,completed:`Job erfolgreich abgeschlossen`,failed:`Job wurde mit einem Exit-Code ungleich null beendet`,canceled:`Job wurde manuell abgebrochen`,queued:`Job wartet in der Warteschlange`,queuedToRun:`Job wartet auf Ausführung`,zombie:`Job wurde nach längerer Inaktivität automatisch beendet`,skipped:`Job wurde übersprungen, weil ein übergeordneter Job in der Pipeline fehlgeschlagen ist`},n={running:`läuft`,completed:`abgeschlossen`,failed:`fehlgeschlagen`,canceled:`abgebrochen`,zombie_terminated:`Zombie`,queued:`in Warteschlange`,skipped:`übersprungen`},r={title:`Jobs`,exportJobs:`Jobs exportieren`,proposalDeleted:`Vorschlag gelöscht`,proposal:{title:`Vorschlag`,noContent:`Noch kein Inhalt für den Vorschlag.`,githubIssue:`GitHub-Issue:`,status:{input:`Wartet auf Eingabe`,exploring:`Wird untersucht`,review:`Bereit zur Prüfung`,refining:`Wird verfeinert`,creatingIssue:`Issue wird erstellt`,created:`Erstellt`,cancelled:`Abgebrochen`,unknown:`Unbekannter Status: {{status}}`}}},i={breadcrumbDashboard:`Dashboard`,breadcrumbJob:`Job #{{id}}`,notFound:`Job nicht gefunden`,notFoundDescription:`Die Job-ID „{{id}}“ existiert nicht`,backToDashboard:`Zurück zum Dashboard`,startedAgo:`Gestartet {{timeAgo}}`,queuedWaiting:`In Warteschlange – wartet auf Start`,exportDiagnostic:`Diagnose exportieren`,exportDiagnosticAria:`Diagnose-Bundle exportieren`,exportDiagnosticTooltip:`ZIP mit Telemetrie, Logs und Zusammenfassung für diesen Job herunterladen`,reExecute:`Erneut ausführen`,reExecuteTooltip:`Neuen Job mit demselben Befehl starten`,cancelJob:`Job abbrechen`,cancelJobTooltip:`SIGTERM an den laufenden Prozess senden. Der Job wird als abgebrochen markiert.`,cancelInteractive:`Verwerfen`,finalizeJob:`Job abschließen`,finalizing:`Wird abgeschlossen…`,finalizeJobTooltip:`Diese interaktive Sitzung beenden und Tokens sowie Kosten aller Turns in die Job-Gesamtsumme einrechnen.`,interactive:{ready:`Bereit – sende einen Prompt`,working:`Agent arbeitet…`,placeholder:`Sende eine Nachricht an den laufenden Job…`,send:`Senden`,liveTotals:"{{turns}} Turns · ${{cost}}",autoHint:`Dieser Job folgt seinem Plan und endet von selbst — Nachrichten sind optionale Steuerung.`,wrapUp:`Jetzt abschließen`,wrapUpTooltip:`Beendet die Session jetzt — der Job wird mit der bisher erzeugten Arbeit abgeschlossen, Tokens und Kosten jedes Turns fließen in die Summe ein.`,wrapUpStep:`Diesen Schritt abschließen`,wrapUpStepTooltip:`Beendet den aktuellen Schritt jetzt — der Loop geht mit dem weiter, was der Schritt bisher erzeugt hat.`,wrappingUp:`Wird abgeschlossen…`,queued_one:`{{count}} Nachricht in der Warteschlange`,queued_other:`{{count}} Nachrichten in der Warteschlange`,waitingForStep:`Zwischen den Schritten — der Loop entscheidet gerade, was als Nächstes läuft. Du kannst eine Nachricht senden, sobald der nächste KI-Schritt startet.`,waitingForStepShort:`Warten auf den nächsten Schritt…`,sendDisabledEmpty:`Schreibe zuerst eine Nachricht`,sendDisabledWaiting:`Gerade ist keine Schritt-Session aktiv`},toast:{jobDeleted:`Job gelöscht`,cancelSignalSent:`Abbruchsignal gesendet`,cancelSignalSentDescription:`Der Job stoppt am nächsten sicheren Punkt`,failed:`Fehlgeschlagen`,networkError:`Netzwerkfehler`,exportFailed:`Export fehlgeschlagen`,exportFailedHttp:`Export fehlgeschlagen (HTTP {{status}})`,jobRequeued:`Job erneut eingereiht`,spawnFailed:`Job konnte nicht gestartet werden`,finalizeScheduled:`Interaktiver Job wird abgeschlossen…`,finalizeFailed:`Job konnte nicht abgeschlossen werden`,sendFailed:`Nachricht konnte nicht gesendet werden`,wrapUpScheduled:`Job wird abgeschlossen…`,wrapUpStepScheduled:`Schritt wird abgeschlossen — der Loop geht mit dem Erzeugten weiter`}},a={inProgress:`Job läuft`,completed:`Job abgeschlossen`,failed:`Job fehlgeschlagen`,duration:`Dauer`,cost:`Kosten`,turns:`Turns`,tokens:`Tokens`,filesCount_one:`{{count}} Datei`,filesCount_other:`{{count}} Dateien`,pipelineTotal:`Pipeline gesamt ({{count}} Phasen)`,totalCost:`Gesamtkosten`,totalTokens:`Tokens gesamt`,filesModified:`Geänderte Dateien`,zoneInProgress:`Läuft`,zoneFinal:`Endabrechnung`,zoneFinalPending:`Endabrechnung — wird am Ende berechnet`,pendingCaption:`Wird am Ende berechnet`,pendingTooltip:`Dies ist der reale Wert des Anbieters; er erscheint, wenn der Job endet.`,costTooltip:`Die realen Kosten werden vom Anbieter beim Abschluss des Jobs berechnet.`,liveTooltip:`Live`,explainer:`Kosten, Runden und Tokens sind die realen Werte des Anbieters und erscheinen am Ende.`,notAvailable:`Nicht verfügbar`,steps_one:`{{count}} Schritt`,steps_other:`{{count}} Schritte`,activity:{editing:`Bearbeite {{arg}}`,writing:`Schreibe {{arg}}`,reading:`Lese {{arg}}`,searching:`Suche „{{arg}}“`,running:`Führe aus: {{arg}}`,thinking:`Denkt nach…`,reasoning:`Überlegt…`,working:`Arbeitet…`,connecting:`Verbinde mit dem Agenten…`,starting:`Startet…`,delegating:`Delegiere an {{arg}}`},pipelinePartial:`≥ angezeigt — {{count}} Phase(n) ohne erfasste Kosten`,pipelinePartialTooltip:`Einige Phasen wurden beendet, bevor ihre Kosten gemeldet wurden – dieser Gesamtwert ist eine Untergrenze.`,pipelineCostUnavailable:`Die Kostentelemetrie ist für alle Phasen nicht verfügbar.`,pipelineUsageUnavailable:`Die Token-Telemetrie ist für alle Phasen nicht verfügbar.`,pipelineUsagePartial:`≥ angezeigt — Phasen ohne Token-Telemetrie: {{count}}`,pipelineUsageTooltip:`Anbieter können Phasen abschließen, ohne Token-Telemetrie bereitzustellen; enthalten ist nur die bekannte Nutzung.`,costUnknownLocal:`Kosten unbekannt (lokale Engine)`,costUnknownLocalTooltip:`Kosten unbekannt (lokale Engine). Tarife in der Verbindung hinterlegen, um eine Schätzung zu sehen.`},o={showMore:`+ {{count}} weitere`,showLess:`Weniger anzeigen`,deletedTicket:`#{{id}} (gelöscht)`,deletedTooltip:`Ticket existiert nicht mehr`},s={notFound:`Job nicht gefunden`,cancelConfirmTitle:`Job abbrechen?`,cancelConfirmDescription:`Der Job stoppt am nächsten sicheren Punkt. Diese Aktion kann nicht rückgängig gemacht werden.`,keepRunning:`Weiterlaufen lassen`,cancelJob:`Job abbrechen`,stopRun:`Lauf stoppen`,stopRunConfirmTitle:`Diesen Lauf stoppen?`,stopRunConfirmDescription:`Der Loop-Lauf stoppt an der nächsten Schrittgrenze. Diese Aktion kann nicht rückgängig gemacht werden.`,toast:{cancelSignalSent:`Abbruchsignal gesendet`,cancelSignalSentDescription:`Der Job stoppt am nächsten sicheren Punkt`,stopSignalSent:`Stoppsignal gesendet`,stopSignalSentDescription:`Der Lauf stoppt an der nächsten Schrittgrenze`,cancelFailed:`Abbrechen fehlgeschlagen`,networkError:`Netzwerkfehler`}},c={title:`Job-Vergleich`,jobN:`Job {{n}}`,loadFailed:`Vergleich konnte nicht geladen werden: {{error}}`,duration:`Dauer`,cost:`Kosten`,tokensOut:`Ausgabe-Tokens`,tokensIn:`Eingabe-Tokens`,cacheRead:`Cache-Read`,model:`Modell`,phasesDone:`Abgeschlossene Phasen`,betterValueHint:`Grün hervorgehoben = besserer Wert`},l={emptyTitle:`Noch keine Jobs`,emptyDescription:`Führe oben einen Befehl aus, um hier deinen Job-Verlauf zu sehen`,loadFailed:`Jobs konnten nicht geladen werden`,filterAll:`Alle ({{count}})`,filterStatus:`{{status}} ({{count}})`,fromDate:`Von`,toDate:`Bis`,clear:`Zurücksetzen`,exitCompareMode:`Vergleichsmodus verlassen`,compareTwoJobs:`2 Jobs vergleichen`,clearJobs:`Jobs löschen`,selectTwoToCompare:`Wähle 2 Jobs zum Vergleichen`,selectOneMore:`Wähle 1 weiteren Job`,readyToCompare:`Bereit – auf Vergleichen klicken`,compareAction:`Vergleichen →`,colStatus:`Status`,colCommand:`Befehl`,colDuration:`Dauer`,colTokens:`Tokens`,colCost:`Kosten`,colStarted:`Gestartet`,profileTooltip:`Profil: {{name}}`,pipelinePart:`Teil einer Pipeline`,pipelineDependsOn:`(hängt vom vorherigen Schritt ab)`,deleteProposal:`Vorschlag löschen`,loadMore:`Mehr laden ({{count}} verbleibend)`,priority:{critical:`kritisch`,high:`hoch`,normal:`normal`,low:`niedrig`},clearModal:{title:`Jobs löschen`,jobsInHistory_one:`{{count}} Job im Verlauf`,jobsInHistory_other:`{{count}} Jobs im Verlauf`,clearAll_one:`{{count}} Job löschen`,clearAll_other:`Alle {{count}} Jobs löschen`,orByRange:`Oder nach Datumsbereich löschen:`,fromPlaceholder:`Von`,toPlaceholder:`Bis`,clearInRange_one:`{{count}} Job im Zeitraum löschen`,clearInRange_other:`{{count}} Jobs im Zeitraum löschen`,clearRange:`Zeitraum löschen`},deleteProposalConfirm:{title:`Vorschlag löschen?`,description:`Dadurch wird 1 Vorschlag dauerhaft gelöscht. Diese Aktion kann nicht rückgängig gemacht werden.`},toast:{cleared_one:`{{count}} Job gelöscht`,cleared_other:`{{count}} Jobs gelöscht`,clearFailed:`Jobs konnten nicht gelöscht werden`,networkError:`Netzwerkfehler`}},u={none:`Kein aktiver Job`,noneHint:`Wähle unten einen Befehl, um einen Job zu starten`,exitCode:`exit {{code}}`,cancelTooltip:`SIGTERM an den laufenden claude-Prozess senden`,viewLogs:`Logs anzeigen`,toast:{cancelRequested:`Job-Abbruch angefordert`,cancelRequestedDescription:`SIGTERM wird an den Prozess gesendet`,cancelFailed:`Job konnte nicht abgebrochen werden`,networkError:`Netzwerkfehler beim Abbrechen des Jobs`}},d={setup:`Vorbereitung`,iteration:`Iteration {{current}}/{{limit}}`,iterationBadge:`Iter. {{count}}`,follow:`Folgt live`,resumeFollow:`Verfolgung fortsetzen`,expandAll:`Alle ausklappen`,collapseAll:`Alle einklappen`,copyStep:`Schritt kopieren`,copied:`Schritt in die Zwischenablage kopiert`,stepDetail:`Schrittdetails`,stepDetailTemplate:`Vorlage`,stepDetailCommand:`Befehl`,copyCommand:`Kopieren`,interrupted:`Unterbrochen`,waiting:`Warte auf den nächsten Schritt…`,stepMapAria:`Loop-Schrittübersicht`,stalled:`Hängt`,stalledIdle_one:`{{count}} Minute ohne Provider-Ausgabe – die App hat diesen Versuch beendet`,stalledIdle_other:`{{count}} Minuten ohne Provider-Ausgabe – die App hat diesen Versuch beendet`,providerLimit:`Anbieter-Limit`,providerLimitHint:`Der Anbieter antwortete mit einem Nutzungslimit-Hinweis; die App hat den Lauf gestoppt statt weiterzudrehen.`,paused:`Pausiert`,runtimeGraph:`Ausführungsgraph`,graphFullscreen:`Vollbild`,graphExitFullscreen:`Vollbild verlassen`,graphBack:`Zurück`,graphOpenComponent:`Komponente öffnen`,graphNoAttempts:`Keine aufgezeichneten Versuche`,graphState:{running:`Läuft`,paused:`Pausiert`,failed:`Fehlgeschlagen`,stalled:`Ohne Fortschritt`,interrupted:`Unterbrochen`,ok:`Erfolgreich`,pending:`Ausstehend`,unknown:`Unbekannt`},repeatFromHere:`Ab hier wiederholen`,forkFailed:`Verknüpfter Lauf konnte nicht erstellt werden`,forkPending:`Wiederholen Sie den ursprünglich ausgewählten Schritt, um die ausstehende Abzweigung abzuschließen.`,forkCreated:`Verknüpfter Lauf erstellt. Öffnen Sie ihn und setzen Sie am ausgewählten Prüfpunkt fort.`,openFork:`Verknüpften Lauf öffnen`},f={loading:`Logs werden geladen…`,empty:`Noch keine Log-Ausgabe`,filterPlaceholder:`Logs filtern…`,copySuccess:`Log in die Zwischenablage kopiert`,copyFailed:`Log konnte nicht kopiert werden`,retainedTail:`Frühere Protokollausgaben wurden in dieser Ansicht ausgelassen. Die Kopie enthält nur die beibehaltene Ansicht. Verfügbare Prüfnachweise finden Sie unter Details.`,lineCount:`{{filtered}} / {{total}} Zeilen`,jumpToBottom:`Zum Ende springen`,phaseLines_one:`{{count}} Zeile`,phaseLines_other:`{{count}} Zeilen`,noMatchingLines:`Keine passenden Zeilen`,noOutput:`Keine Ausgabe`,completed:`Abgeschlossen`,turns_one:`{{count}} Turn`,turns_other:`{{count}} Turns`},p={title:`Ausführungsergebnis`,execution:`Ausführung`,implementation:`Implementierung`,validation:`Validierung`,archive:`Archivierung`,delivery:`Auslieferung`,counters:`Schritte: {{steps}} · Auswertungen: {{evaluations}} · Agentenrunden: {{turns}}`,unavailable:`Nicht verfügbar`,evidence:`Nachweise, Ausnahmen und Phasenzeiten`,snapshot:`Bei Abschluss erfasst: {{change}} · {{at}}`,acceptedBy:`Akzeptiert von {{by}}`,required:`Erforderlich`,supplementary:`Ergänzend`,attempts:`Versuche: {{count}}`,phaseCostUnavailable:`Kosten pro Core-Phase sind nicht verfügbar; der Anbieterverbrauch wird Schleifenschritten zugeordnet.`,noCoreEvidence:`Abnahmenachweise sind nicht verfügbar. Eine erfolgreiche Ausführung allein bestätigt keinen abgeschlossenen Vorgang.`,status:{success:`Erfolgreich`,failed:`Fehlgeschlagen`,blocked:`Blockiert`,stopped:`Gestoppt`,stalled:`Ohne Fortschritt`,complete:`Abgeschlossen`,incomplete:`Unvollständig`,verified:`Verifiziert`,"with-exceptions":`Mit Ausnahmen verifiziert`,pending:`Ausstehend`,"pending-host":`Auslieferung durch Host ausstehend`,done:`Abgeschlossen`,running:`Läuft`,skipped:`Übersprungen`,passed:`Bestanden`,unavailable:`Nicht verfügbar`}},m={details:`Details`,phaseActivity:`{{phase}} · {{activity}}`,liveReported:`Bisher vom Anbieter gemeldet; die endgültigen Zahlen kommen, wenn der Job endet.`,questionPending:`Frage beantworten`},h={statusLabel:e,statusTooltip:t,statusName:n,page:r,detail:i,statusPanel:a,ticketHeader:o,modal:s,comparison:c,recent:l,activeJob:u,loopExplorer:d,logViewer:f,completion:p,runHeader:m};export{u as activeJob,c as comparison,p as completion,h as default,i as detail,f as logViewer,d as loopExplorer,s as modal,r as page,l as recent,m as runHeader,e as statusLabel,n as statusName,a as statusPanel,t as statusTooltip,o as ticketHeader};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./createLucideIcon-DtODIU64.js";var t={name:`layers`,size:24,node:[[`path`,{d:`M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z`,key:`zw3jo`}],[`path`,{d:`M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12`,key:`1wduqc`}],[`path`,{d:`M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17`,key:`kqbvx6`}]],aliases:[`layers-3`]};t.node;var n=e(t);export{n as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./createLucideIcon-DtODIU64.js";var t={name:`loader-circle`,size:24,node:[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]],aliases:[`loader-2`]};t.node;var n=e(t);export{n as t};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-CNC7AqOf.js";import{n as t,t as n}from"./jsx-runtime-BbYvbtY8.js";import{t as r}from"./react-dom-DDD8FYaU.js";import{a as i,i as a,n as o,o as s,r as c,t as l}from"./value-DtOOK0wQ.js";var u=180/Math.PI,d={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function f(e,t,n,r,i,a){var o,s,c;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(c=e*n+t*r)&&(n-=e*c,r-=t*c),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,c/=s),e*r<t*n&&(e=-e,t=-t,c=-c,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(t,e)*u,skewX:Math.atan(c)*u,scaleX:o,scaleY:s}}var p;function m(e){let t=new(typeof DOMMatrix==`function`?DOMMatrix:WebKitCSSMatrix)(e+``);return t.isIdentity?d:f(t.a,t.b,t.c,t.d,t.e,t.f)}function h(e){return e==null||(p||=document.createElementNS(`http://www.w3.org/2000/svg`,`g`),p.setAttribute(`transform`,e),!(e=p.transform.baseVal.consolidate()))?d:(e=e.matrix,f(e.a,e.b,e.c,e.d,e.e,e.f))}function g(e,t,n,r){function i(e){return e.length?e.pop()+` `:``}function a(e,r,i,a,o,s){if(e!==i||r!==a){var l=o.push(`translate(`,null,t,null,n);s.push({i:l-4,x:c(e,i)},{i:l-2,x:c(r,a)})}else(i||a)&&o.push(`translate(`+i+t+a+n)}function o(e,t,n,a){e===t?t&&n.push(i(n)+`rotate(`+t+r):(e-t>180?t+=360:t-e>180&&(e+=360),a.push({i:n.push(i(n)+`rotate(`,null,r)-2,x:c(e,t)}))}function s(e,t,n,a){e===t?t&&n.push(i(n)+`skewX(`+t+r):a.push({i:n.push(i(n)+`skewX(`,null,r)-2,x:c(e,t)})}function l(e,t,n,r,a,o){if(e!==n||t!==r){var s=a.push(i(a)+`scale(`,null,`,`,null,`)`);o.push({i:s-4,x:c(e,n)},{i:s-2,x:c(t,r)})}else(n!==1||r!==1)&&a.push(i(a)+`scale(`+n+`,`+r+`)`)}return function(t,n){var r=[],i=[];return t=e(t),n=e(n),a(t.translateX,t.translateY,n.translateX,n.translateY,r,i),o(t.rotate,n.rotate,r,i),s(t.skewX,n.skewX,r,i),l(t.scaleX,t.scaleY,n.scaleX,n.scaleY,r,i),t=n=null,function(e){for(var t=-1,n=i.length,a;++t<n;)r[(a=i[t]).i]=a.x(e);return r.join(``)}}}var _=g(m,`px, `,`px)`,`deg)`),v=g(h,`, `,`)`,`)`),y=1e-12;function b(e){return((e=Math.exp(e))+1/e)/2}function x(e){return((e=Math.exp(e))-1/e)/2}function S(e){return((e=Math.exp(2*e))-1)/(e+1)}var C=(function e(t,n,r){function i(e,i){var a=e[0],o=e[1],s=e[2],c=i[0],l=i[1],u=i[2],d=c-a,f=l-o,p=d*d+f*f,m,h;if(p<y)h=Math.log(u/s)/t,m=function(e){return[a+e*d,o+e*f,s*Math.exp(t*e*h)]};else{var g=Math.sqrt(p),_=(u*u-s*s+r*p)/(2*s*n*g),v=(u*u-s*s-r*p)/(2*u*n*g),C=Math.log(Math.sqrt(_*_+1)-_);h=(Math.log(Math.sqrt(v*v+1)-v)-C)/t,m=function(e){var r=e*h,i=b(C),c=s/(n*g)*(i*S(t*r+C)-x(C));return[a+c*d,o+c*f,s*i/b(t*r+C)]}}return m.duration=h*1e3*t/Math.SQRT2,m}return i.rho=function(t){var n=Math.max(.001,+t),r=n*n;return e(n,r,r*r)},i})(Math.SQRT2,2,4),w=e(t(),1),T=n();function E(e){if(typeof e==`string`||typeof e==`number`)return``+e;let t=``;if(Array.isArray(e))for(let n=0,r;n<e.length;n++)(r=E(e[n]))!==``&&(t+=(t&&` `)+r);else for(let n in e)e[n]&&(t+=(t&&` `)+n);return t}var D={value:()=>{}};function O(){for(var e=0,t=arguments.length,n={},r;e<t;++e){if(!(r=arguments[e]+``)||r in n||/[\s.]/.test(r))throw Error(`illegal type: `+r);n[r]=[]}return new k(n)}function k(e){this._=e}function A(e,t){return e.trim().split(/^|\s+/).map(function(e){var n=``,r=e.indexOf(`.`);if(r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),e&&!t.hasOwnProperty(e))throw Error(`unknown type: `+e);return{type:e,name:n}})}k.prototype=O.prototype={constructor:k,on:function(e,t){var n=this._,r=A(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(e=r[a]).type)&&(i=j(n[i],e.name)))return i;return}if(t!=null&&typeof t!=`function`)throw Error(`invalid callback: `+t);for(;++a<o;)if(i=(e=r[a]).type)n[i]=M(n[i],e.name,t);else if(t==null)for(i in n)n[i]=M(n[i],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new k(e)},call:function(e,t){if((i=arguments.length-2)>0)for(var n=Array(i),r=0,i,a;r<i;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw Error(`unknown type: `+e);for(a=this._[e],r=0,i=a.length;r<i;++r)a[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw Error(`unknown type: `+e);for(var r=this._[e],i=0,a=r.length;i<a;++i)r[i].value.apply(t,n)}};function j(e,t){for(var n=0,r=e.length,i;n<r;++n)if((i=e[n]).name===t)return i.value}function M(e,t,n){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=D,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var N={svg:`http://www.w3.org/2000/svg`,xhtml:`http://www.w3.org/1999/xhtml`,xlink:`http://www.w3.org/1999/xlink`,xml:`http://www.w3.org/XML/1998/namespace`,xmlns:`http://www.w3.org/2000/xmlns/`};function P(e){var t=e+=``,n=t.indexOf(`:`);return n>=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),N.hasOwnProperty(t)?{space:N[t],local:e}:e}function F(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===`http://www.w3.org/1999/xhtml`&&t.documentElement.namespaceURI===`http://www.w3.org/1999/xhtml`?t.createElement(e):t.createElementNS(n,e)}}function I(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function L(e){var t=P(e);return(t.local?I:F)(t)}function R(){}function z(e){return e==null?R:function(){return this.querySelector(e)}}function B(e){typeof e!=`function`&&(e=z(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=Array(o),c,l,u=0;u<o;++u)(c=a[u])&&(l=e.call(c,c.__data__,u,a))&&(`__data__`in c&&(l.__data__=c.__data__),s[u]=l);return new K(r,this._parents)}function V(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function H(){return[]}function U(e){return e==null?H:function(){return this.querySelectorAll(e)}}function W(e){return function(){return V(e.apply(this,arguments))}}function G(e){e=typeof e==`function`?W(e):U(e);for(var t=this._groups,n=t.length,r=[],i=[],a=0;a<n;++a)for(var o=t[a],s=o.length,c,l=0;l<s;++l)(c=o[l])&&(r.push(e.call(c,c.__data__,l,o)),i.push(c));return new K(r,i)}function ee(e){return function(){return this.matches(e)}}function te(e){return function(t){return t.matches(e)}}var ne=Array.prototype.find;function re(e){return function(){return ne.call(this.children,e)}}function ie(){return this.firstElementChild}function ae(e){return this.select(e==null?ie:re(typeof e==`function`?e:te(e)))}var oe=Array.prototype.filter;function se(){return Array.from(this.children)}function ce(e){return function(){return oe.call(this.children,e)}}function le(e){return this.selectAll(e==null?se:ce(typeof e==`function`?e:te(e)))}function ue(e){typeof e!=`function`&&(e=ee(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=[],c,l=0;l<o;++l)(c=a[l])&&e.call(c,c.__data__,l,a)&&s.push(c);return new K(r,this._parents)}function de(e){return Array(e.length)}function fe(){return new K(this._enter||this._groups.map(de),this._parents)}function pe(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}pe.prototype={constructor:pe,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function me(e){return function(){return e}}function he(e,t,n,r,i,a){for(var o=0,s,c=t.length,l=a.length;o<l;++o)(s=t[o])?(s.__data__=a[o],r[o]=s):n[o]=new pe(e,a[o]);for(;o<c;++o)(s=t[o])&&(i[o]=s)}function ge(e,t,n,r,i,a,o){var s,c,l=new Map,u=t.length,d=a.length,f=Array(u),p;for(s=0;s<u;++s)(c=t[s])&&(f[s]=p=o.call(c,c.__data__,s,t)+``,l.has(p)?i[s]=c:l.set(p,c));for(s=0;s<d;++s)p=o.call(e,a[s],s,a)+``,(c=l.get(p))?(r[s]=c,c.__data__=a[s],l.delete(p)):n[s]=new pe(e,a[s]);for(s=0;s<u;++s)(c=t[s])&&l.get(f[s])===c&&(i[s]=c)}function _e(e){return e.__data__}function ve(e,t){if(!arguments.length)return Array.from(this,_e);var n=t?ge:he,r=this._parents,i=this._groups;typeof e!=`function`&&(e=me(e));for(var a=i.length,o=Array(a),s=Array(a),c=Array(a),l=0;l<a;++l){var u=r[l],d=i[l],f=d.length,p=ye(e.call(u,u&&u.__data__,l,r)),m=p.length,h=s[l]=Array(m),g=o[l]=Array(m);n(u,d,h,g,c[l]=Array(f),p,t);for(var _=0,v=0,y,b;_<m;++_)if(y=h[_]){for(_>=v&&(v=_+1);!(b=g[v])&&++v<m;);y._next=b||null}}return o=new K(o,r),o._enter=s,o._exit=c,o}function ye(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function be(){return new K(this._exit||this._groups.map(de),this._parents)}function xe(e,t,n){var r=this.enter(),i=this,a=this.exit();return typeof e==`function`?(r=e(r),r&&=r.selection()):r=r.append(e+``),t!=null&&(i=t(i),i&&=i.selection()),n==null?a.remove():n(a),r&&i?r.merge(i).order():i}function Se(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,i=n.length,a=r.length,o=Math.min(i,a),s=Array(i),c=0;c<o;++c)for(var l=n[c],u=r[c],d=l.length,f=s[c]=Array(d),p,m=0;m<d;++m)(p=l[m]||u[m])&&(f[m]=p);for(;c<i;++c)s[c]=n[c];return new K(s,this._parents)}function Ce(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],i=r.length-1,a=r[i],o;--i>=0;)(o=r[i])&&(a&&o.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(o,a),a=o);return this}function we(e){e||=Te;function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}for(var n=this._groups,r=n.length,i=Array(r),a=0;a<r;++a){for(var o=n[a],s=o.length,c=i[a]=Array(s),l,u=0;u<s;++u)(l=o[u])&&(c[u]=l);c.sort(t)}return new K(i,this._parents).order()}function Te(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function Ee(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function De(){return Array.from(this)}function Oe(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length;i<a;++i){var o=r[i];if(o)return o}return null}function ke(){let e=0;for(let t of this)++e;return e}function Ae(){return!this.node()}function je(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var i=t[n],a=0,o=i.length,s;a<o;++a)(s=i[a])&&e.call(s,s.__data__,a,i);return this}function Me(e){return function(){this.removeAttribute(e)}}function Ne(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Pe(e,t){return function(){this.setAttribute(e,t)}}function Fe(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function Ie(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function Le(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function Re(e,t){var n=P(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((t==null?n.local?Ne:Me:typeof t==`function`?n.local?Le:Ie:n.local?Fe:Pe)(n,t))}function ze(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Be(e){return function(){this.style.removeProperty(e)}}function Ve(e,t,n){return function(){this.style.setProperty(e,t,n)}}function He(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function Ue(e,t,n){return arguments.length>1?this.each((t==null?Be:typeof t==`function`?He:Ve)(e,t,n??``)):We(this.node(),e)}function We(e,t){return e.style.getPropertyValue(t)||ze(e).getComputedStyle(e,null).getPropertyValue(t)}function Ge(e){return function(){delete this[e]}}function Ke(e,t){return function(){this[e]=t}}function qe(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Je(e,t){return arguments.length>1?this.each((t==null?Ge:typeof t==`function`?qe:Ke)(e,t)):this.node()[e]}function Ye(e){return e.trim().split(/^|\s+/)}function Xe(e){return e.classList||new Ze(e)}function Ze(e){this._node=e,this._names=Ye(e.getAttribute(`class`)||``)}Ze.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute(`class`,this._names.join(` `)))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute(`class`,this._names.join(` `)))},contains:function(e){return this._names.indexOf(e)>=0}};function Qe(e,t){for(var n=Xe(e),r=-1,i=t.length;++r<i;)n.add(t[r])}function $e(e,t){for(var n=Xe(e),r=-1,i=t.length;++r<i;)n.remove(t[r])}function et(e){return function(){Qe(this,e)}}function tt(e){return function(){$e(this,e)}}function nt(e,t){return function(){(t.apply(this,arguments)?Qe:$e)(this,e)}}function rt(e,t){var n=Ye(e+``);if(arguments.length<2){for(var r=Xe(this.node()),i=-1,a=n.length;++i<a;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof t==`function`?nt:t?et:tt)(n,t))}function it(){this.textContent=``}function at(e){return function(){this.textContent=e}}function ot(e){return function(){var t=e.apply(this,arguments);this.textContent=t??``}}function st(e){return arguments.length?this.each(e==null?it:(typeof e==`function`?ot:at)(e)):this.node().textContent}function ct(){this.innerHTML=``}function lt(e){return function(){this.innerHTML=e}}function ut(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??``}}function dt(e){return arguments.length?this.each(e==null?ct:(typeof e==`function`?ut:lt)(e)):this.node().innerHTML}function ft(){this.nextSibling&&this.parentNode.appendChild(this)}function pt(){return this.each(ft)}function mt(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function ht(){return this.each(mt)}function gt(e){var t=typeof e==`function`?e:L(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function _t(){return null}function vt(e,t){var n=typeof e==`function`?e:L(e),r=t==null?_t:typeof t==`function`?t:z(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function yt(){var e=this.parentNode;e&&e.removeChild(this)}function bt(){return this.each(yt)}function xt(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function St(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Ct(e){return this.select(e?St:xt)}function wt(e){return arguments.length?this.property(`__data__`,e):this.node().__data__}function Tt(e){return function(t){e.call(this,t,this.__data__)}}function Et(e){return e.trim().split(/^|\s+/).map(function(e){var t=``,n=e.indexOf(`.`);return n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}})}function Dt(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,a;n<i;++n)a=t[n],(!e.type||a.type===e.type)&&a.name===e.name?this.removeEventListener(a.type,a.listener,a.options):t[++r]=a;++r?t.length=r:delete this.__on}}}function Ot(e,t,n){return function(){var r=this.__on,i,a=Tt(t);if(r){for(var o=0,s=r.length;o<s;++o)if((i=r[o]).type===e.type&&i.name===e.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=a,i.options=n),i.value=t;return}}this.addEventListener(e.type,a,n),i={type:e.type,name:e.name,value:t,listener:a,options:n},r?r.push(i):this.__on=[i]}}function kt(e,t,n){var r=Et(e+``),i,a=r.length,o;if(arguments.length<2){var s=this.node().__on;if(s){for(var c=0,l=s.length,u;c<l;++c)for(i=0,u=s[c];i<a;++i)if((o=r[i]).type===u.type&&o.name===u.name)return u.value}return}for(s=t?Ot:Dt,i=0;i<a;++i)this.each(s(r[i],t,n));return this}function At(e,t,n){var r=ze(e),i=r.CustomEvent;typeof i==`function`?i=new i(t,n):(i=r.document.createEvent(`Event`),n?(i.initEvent(t,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(t,!1,!1)),e.dispatchEvent(i)}function jt(e,t){return function(){return At(this,e,t)}}function Mt(e,t){return function(){return At(this,e,t.apply(this,arguments))}}function Nt(e,t){return this.each((typeof t==`function`?Mt:jt)(e,t))}function*Pt(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length,o;i<a;++i)(o=r[i])&&(yield o)}var Ft=[null];function K(e,t){this._groups=e,this._parents=t}function It(){return new K([[document.documentElement]],Ft)}function Lt(){return this}K.prototype=It.prototype={constructor:K,select:B,selectAll:G,selectChild:ae,selectChildren:le,filter:ue,data:ve,enter:fe,exit:be,join:xe,merge:Se,selection:Lt,order:Ce,sort:we,call:Ee,nodes:De,node:Oe,size:ke,empty:Ae,each:je,attr:Re,style:Ue,property:Je,classed:rt,text:st,html:dt,raise:pt,lower:ht,append:gt,insert:vt,remove:bt,clone:Ct,datum:wt,on:kt,dispatch:Nt,[Symbol.iterator]:Pt};function q(e){return typeof e==`string`?new K([[document.querySelector(e)]],[document.documentElement]):new K([[e]],Ft)}function Rt(e){let t;for(;t=e.sourceEvent;)e=t;return e}function J(e,t){if(e=Rt(e),t===void 0&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}if(t.getBoundingClientRect){var i=t.getBoundingClientRect();return[e.clientX-i.left-t.clientLeft,e.clientY-i.top-t.clientTop]}}return[e.pageX,e.pageY]}var zt={passive:!1},Bt={capture:!0,passive:!1};function Vt(e){e.stopImmediatePropagation()}function Ht(e){e.preventDefault(),e.stopImmediatePropagation()}function Ut(e){var t=e.document.documentElement,n=q(e).on(`dragstart.drag`,Ht,Bt);`onselectstart`in t?n.on(`selectstart.drag`,Ht,Bt):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect=`none`)}function Wt(e,t){var n=e.document.documentElement,r=q(e).on(`dragstart.drag`,null);t&&(r.on(`click.drag`,Ht,Bt),setTimeout(function(){r.on(`click.drag`,null)},0)),`onselectstart`in n?r.on(`selectstart.drag`,null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}var Gt=e=>()=>e;function Kt(e,{sourceEvent:t,subject:n,target:r,identifier:i,active:a,x:o,y:s,dx:c,dy:l,dispatch:u}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:a,enumerable:!0,configurable:!0},x:{value:o,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:u}})}Kt.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function qt(e){return!e.ctrlKey&&!e.button}function Jt(){return this.parentNode}function Yt(e,t){return t??{x:e.x,y:e.y}}function Xt(){return navigator.maxTouchPoints||`ontouchstart`in this}function Zt(){var e=qt,t=Jt,n=Yt,r=Xt,i={},a=O(`start`,`drag`,`end`),o=0,s,c,l,u,d=0;function f(e){e.on(`mousedown.drag`,p).filter(r).on(`touchstart.drag`,g).on(`touchmove.drag`,_,zt).on(`touchend.drag touchcancel.drag`,v).style(`touch-action`,`none`).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}function p(n,r){if(!(u||!e.call(this,n,r))){var i=y(this,t.call(this,n,r),n,r,`mouse`);i&&(q(n.view).on(`mousemove.drag`,m,Bt).on(`mouseup.drag`,h,Bt),Ut(n.view),Vt(n),l=!1,s=n.clientX,c=n.clientY,i(`start`,n))}}function m(e){if(Ht(e),!l){var t=e.clientX-s,n=e.clientY-c;l=t*t+n*n>d}i.mouse(`drag`,e)}function h(e){q(e.view).on(`mousemove.drag mouseup.drag`,null),Wt(e.view,l),Ht(e),i.mouse(`end`,e)}function g(n,r){if(e.call(this,n,r)){var i=n.changedTouches,a=t.call(this,n,r),o=i.length,s,c;for(s=0;s<o;++s)(c=y(this,a,n,r,i[s].identifier,i[s]))&&(Vt(n),c(`start`,n,i[s]))}}function _(e){var t=e.changedTouches,n=t.length,r,a;for(r=0;r<n;++r)(a=i[t[r].identifier])&&(Ht(e),a(`drag`,e,t[r]))}function v(e){var t=e.changedTouches,n=t.length,r,a;for(u&&clearTimeout(u),u=setTimeout(function(){u=null},500),r=0;r<n;++r)(a=i[t[r].identifier])&&(Vt(e),a(`end`,e,t[r]))}function y(e,t,r,s,c,l){var u=a.copy(),d=J(l||r,t),p,m,h;if((h=n.call(e,new Kt(`beforestart`,{sourceEvent:r,target:f,identifier:c,active:o,x:d[0],y:d[1],dx:0,dy:0,dispatch:u}),s))!=null)return p=h.x-d[0]||0,m=h.y-d[1]||0,function n(r,a,l){var g=d,_;switch(r){case`start`:i[c]=n,_=o++;break;case`end`:delete i[c],--o;case`drag`:d=J(l||a,t),_=o;break}u.call(r,e,new Kt(r,{sourceEvent:a,subject:h,target:f,identifier:c,active:_,x:d[0]+p,y:d[1]+m,dx:d[0]-g[0],dy:d[1]-g[1],dispatch:u}),s)}}return f.filter=function(t){return arguments.length?(e=typeof t==`function`?t:Gt(!!t),f):e},f.container=function(e){return arguments.length?(t=typeof e==`function`?e:Gt(e),f):t},f.subject=function(e){return arguments.length?(n=typeof e==`function`?e:Gt(e),f):n},f.touchable=function(e){return arguments.length?(r=typeof e==`function`?e:Gt(!!e),f):r},f.on=function(){var e=a.on.apply(a,arguments);return e===a?f:e},f.clickDistance=function(e){return arguments.length?(d=(e=+e)*e,f):Math.sqrt(d)},f}var Qt=0,$t=0,en=0,tn=1e3,nn,rn,an=0,on=0,sn=0,cn=typeof performance==`object`&&performance.now?performance:Date,ln=typeof window==`object`&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function un(){return on||=(ln(dn),cn.now()+sn)}function dn(){on=0}function fn(){this._call=this._time=this._next=null}fn.prototype=pn.prototype={constructor:fn,restart:function(e,t,n){if(typeof e!=`function`)throw TypeError(`callback is not a function`);n=(n==null?un():+n)+(t==null?0:+t),!this._next&&rn!==this&&(rn?rn._next=this:nn=this,rn=this),this._call=e,this._time=n,vn()},stop:function(){this._call&&(this._call=null,this._time=1/0,vn())}};function pn(e,t,n){var r=new fn;return r.restart(e,t,n),r}function mn(){un(),++Qt;for(var e=nn,t;e;)(t=on-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Qt}function hn(){on=(an=cn.now())+sn,Qt=$t=0;try{mn()}finally{Qt=0,_n(),on=0}}function gn(){var e=cn.now(),t=e-an;t>tn&&(sn-=t,an=e)}function _n(){for(var e,t=nn,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:nn=n);rn=e,vn(r)}function vn(e){Qt||($t&&=clearTimeout($t),e-on>24?(e<1/0&&($t=setTimeout(hn,e-cn.now()-sn)),en&&=clearInterval(en)):(en||=(an=cn.now(),setInterval(gn,tn)),Qt=1,ln(hn)))}function yn(e,t,n){var r=new fn;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var bn=O(`start`,`end`,`cancel`,`interrupt`),xn=[];function Sn(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;En(e,n,{name:t,index:r,group:i,on:bn,tween:xn,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function Cn(e,t){var n=Tn(e,t);if(n.state>0)throw Error(`too late; already scheduled`);return n}function wn(e,t){var n=Tn(e,t);if(n.state>3)throw Error(`too late; already running`);return n}function Tn(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function En(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=pn(a,0,n.time);function a(e){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=e&&o(e-n.delay)}function o(a){var l,u,d,f;if(n.state!==1)return c();for(l in r)if(f=r[l],f.name===n.name){if(f.state===3)return yn(o);f.state===4?(f.state=6,f.timer.stop(),f.on.call(`interrupt`,e,e.__data__,f.index,f.group),delete r[l]):+l<t&&(f.state=6,f.timer.stop(),f.on.call(`cancel`,e,e.__data__,f.index,f.group),delete r[l])}if(yn(function(){n.state===3&&(n.state=4,n.timer.restart(s,n.delay,n.time),s(a))}),n.state=2,n.on.call(`start`,e,e.__data__,n.index,n.group),n.state===2){for(n.state=3,i=Array(d=n.tween.length),l=0,u=-1;l<d;++l)(f=n.tween[l].value.call(e,e.__data__,n.index,n.group))&&(i[++u]=f);i.length=u+1}}function s(t){for(var r=t<n.duration?n.ease.call(null,t/n.duration):(n.timer.restart(c),n.state=5,1),a=-1,o=i.length;++a<o;)i[a].call(e,r);n.state===5&&(n.on.call(`end`,e,e.__data__,n.index,n.group),c())}function c(){for(var i in n.state=6,n.timer.stop(),delete r[t],r)return;delete e.__transition}}function Dn(e,t){var n=e.__transition,r,i,a=!0,o;if(n){for(o in t=t==null?null:t+``,n){if((r=n[o]).name!==t){a=!1;continue}i=r.state>2&&r.state<5,r.state=6,r.timer.stop(),r.on.call(i?`interrupt`:`cancel`,e,e.__data__,r.index,r.group),delete n[o]}a&&delete e.__transition}}function On(e){return this.each(function(){Dn(this,e)})}function kn(e,t){var n,r;return function(){var i=wn(this,e),a=i.tween;if(a!==n){r=n=a;for(var o=0,s=r.length;o<s;++o)if(r[o].name===t){r=r.slice(),r.splice(o,1);break}}i.tween=r}}function An(e,t,n){var r,i;if(typeof n!=`function`)throw Error();return function(){var a=wn(this,e),o=a.tween;if(o!==r){i=(r=o).slice();for(var s={name:t,value:n},c=0,l=i.length;c<l;++c)if(i[c].name===t){i[c]=s;break}c===l&&i.push(s)}a.tween=i}}function jn(e,t){var n=this._id;if(e+=``,arguments.length<2){for(var r=Tn(this.node(),n).tween,i=0,a=r.length,o;i<a;++i)if((o=r[i]).name===e)return o.value;return null}return this.each((t==null?kn:An)(n,e,t))}function Mn(e,t,n){var r=e._id;return e.each(function(){var e=wn(this,r);(e.value||={})[t]=n.apply(this,arguments)}),function(e){return Tn(e,r).value[t]}}function Nn(e,t){var n;return(typeof t==`number`?c:t instanceof i?a:(n=i(t))?(t=n,a):o)(e,t)}function Pn(e){return function(){this.removeAttribute(e)}}function Fn(e){return function(){this.removeAttributeNS(e.space,e.local)}}function In(e,t,n){var r,i=n+``,a;return function(){var o=this.getAttribute(e);return o===i?null:o===r?a:a=t(r=o,n)}}function Ln(e,t,n){var r,i=n+``,a;return function(){var o=this.getAttributeNS(e.space,e.local);return o===i?null:o===r?a:a=t(r=o,n)}}function Rn(e,t,n){var r,i,a;return function(){var o,s=n(this),c;return s==null?void this.removeAttribute(e):(o=this.getAttribute(e),c=s+``,o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s)))}}function zn(e,t,n){var r,i,a;return function(){var o,s=n(this),c;return s==null?void this.removeAttributeNS(e.space,e.local):(o=this.getAttributeNS(e.space,e.local),c=s+``,o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s)))}}function Bn(e,t){var n=P(e),r=n===`transform`?v:Nn;return this.attrTween(e,typeof t==`function`?(n.local?zn:Rn)(n,r,Mn(this,`attr.`+e,t)):t==null?(n.local?Fn:Pn)(n):(n.local?Ln:In)(n,r,t))}function Vn(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function Hn(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function Un(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&Hn(e,i)),n}return i._value=t,i}function Wn(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&Vn(e,i)),n}return i._value=t,i}function Gn(e,t){var n=`attr.`+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!=`function`)throw Error();var r=P(e);return this.tween(n,(r.local?Un:Wn)(r,t))}function Kn(e,t){return function(){Cn(this,e).delay=+t.apply(this,arguments)}}function qn(e,t){return t=+t,function(){Cn(this,e).delay=t}}function Jn(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?Kn:qn)(t,e)):Tn(this.node(),t).delay}function Yn(e,t){return function(){wn(this,e).duration=+t.apply(this,arguments)}}function Xn(e,t){return t=+t,function(){wn(this,e).duration=t}}function Zn(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?Yn:Xn)(t,e)):Tn(this.node(),t).duration}function Qn(e,t){if(typeof t!=`function`)throw Error();return function(){wn(this,e).ease=t}}function $n(e){var t=this._id;return arguments.length?this.each(Qn(t,e)):Tn(this.node(),t).ease}function er(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!=`function`)throw Error();wn(this,e).ease=n}}function tr(e){if(typeof e!=`function`)throw Error();return this.each(er(this._id,e))}function nr(e){typeof e!=`function`&&(e=ee(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=[],c,l=0;l<o;++l)(c=a[l])&&e.call(c,c.__data__,l,a)&&s.push(c);return new jr(r,this._parents,this._name,this._id)}function rr(e){if(e._id!==this._id)throw Error();for(var t=this._groups,n=e._groups,r=t.length,i=n.length,a=Math.min(r,i),o=Array(r),s=0;s<a;++s)for(var c=t[s],l=n[s],u=c.length,d=o[s]=Array(u),f,p=0;p<u;++p)(f=c[p]||l[p])&&(d[p]=f);for(;s<r;++s)o[s]=t[s];return new jr(o,this._parents,this._name,this._id)}function ir(e){return(e+``).trim().split(/^|\s+/).every(function(e){var t=e.indexOf(`.`);return t>=0&&(e=e.slice(0,t)),!e||e===`start`})}function ar(e,t,n){var r,i,a=ir(t)?Cn:wn;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function or(e,t){var n=this._id;return arguments.length<2?Tn(this.node(),n).on.on(e):this.each(ar(n,e,t))}function sr(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function cr(){return this.on(`end.remove`,sr(this._id))}function lr(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=z(e));for(var r=this._groups,i=r.length,a=Array(i),o=0;o<i;++o)for(var s=r[o],c=s.length,l=a[o]=Array(c),u,d,f=0;f<c;++f)(u=s[f])&&(d=e.call(u,u.__data__,f,s))&&(`__data__`in u&&(d.__data__=u.__data__),l[f]=d,Sn(l[f],t,n,f,l,Tn(u,n)));return new jr(a,this._parents,t,n)}function ur(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=U(e));for(var r=this._groups,i=r.length,a=[],o=[],s=0;s<i;++s)for(var c=r[s],l=c.length,u,d=0;d<l;++d)if(u=c[d]){for(var f=e.call(u,u.__data__,d,c),p,m=Tn(u,n),h=0,g=f.length;h<g;++h)(p=f[h])&&Sn(p,t,n,h,f,m);a.push(f),o.push(u)}return new jr(a,o,t,n)}var dr=It.prototype.constructor;function fr(){return new dr(this._groups,this._parents)}function pr(e,t){var n,r,i;return function(){var a=We(this,e),o=(this.style.removeProperty(e),We(this,e));return a===o?null:a===n&&o===r?i:i=t(n=a,r=o)}}function mr(e){return function(){this.style.removeProperty(e)}}function hr(e,t,n){var r,i=n+``,a;return function(){var o=We(this,e);return o===i?null:o===r?a:a=t(r=o,n)}}function gr(e,t,n){var r,i,a;return function(){var o=We(this,e),s=n(this),c=s+``;return s??(c=s=(this.style.removeProperty(e),We(this,e))),o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s))}}function _r(e,t){var n,r,i,a=`style.`+t,o=`end.`+a,s;return function(){var c=wn(this,e),l=c.on,u=c.value[a]==null?s||=mr(t):void 0;(l!==n||i!==u)&&(r=(n=l).copy()).on(o,i=u),c.on=r}}function vr(e,t,n){var r=(e+=``)==`transform`?_:Nn;return t==null?this.styleTween(e,pr(e,r)).on(`end.style.`+e,mr(e)):typeof t==`function`?this.styleTween(e,gr(e,r,Mn(this,`style.`+e,t))).each(_r(this._id,e)):this.styleTween(e,hr(e,r,t),n).on(`end.style.`+e,null)}function yr(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function br(e,t,n){var r,i;function a(){var a=t.apply(this,arguments);return a!==i&&(r=(i=a)&&yr(e,a,n)),r}return a._value=t,a}function xr(e,t,n){var r=`style.`+(e+=``);if(arguments.length<2)return(r=this.tween(r))&&r._value;if(t==null)return this.tween(r,null);if(typeof t!=`function`)throw Error();return this.tween(r,br(e,t,n??``))}function Sr(e){return function(){this.textContent=e}}function Cr(e){return function(){var t=e(this);this.textContent=t??``}}function wr(e){return this.tween(`text`,typeof e==`function`?Cr(Mn(this,`text`,e)):Sr(e==null?``:e+``))}function Tr(e){return function(t){this.textContent=e.call(this,t)}}function Er(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&Tr(r)),t}return r._value=e,r}function Dr(e){var t=`text`;if(arguments.length<1)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!=`function`)throw Error();return this.tween(t,Er(e))}function Or(){for(var e=this._name,t=this._id,n=Nr(),r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,c,l=0;l<s;++l)if(c=o[l]){var u=Tn(c,t);Sn(c,e,n,l,o,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new jr(r,this._parents,e,n)}function kr(){var e,t,n=this,r=n._id,i=n.size();return new Promise(function(a,o){var s={value:o},c={value:function(){--i===0&&a()}};n.each(function(){var n=wn(this,r),i=n.on;i!==e&&(t=(e=i).copy(),t._.cancel.push(s),t._.interrupt.push(s),t._.end.push(c)),n.on=t}),i===0&&a()})}var Ar=0;function jr(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function Mr(e){return It().transition(e)}function Nr(){return++Ar}var Pr=It.prototype;jr.prototype=Mr.prototype={constructor:jr,select:lr,selectAll:ur,selectChild:Pr.selectChild,selectChildren:Pr.selectChildren,filter:nr,merge:rr,selection:fr,transition:Or,call:Pr.call,nodes:Pr.nodes,node:Pr.node,size:Pr.size,empty:Pr.empty,each:Pr.each,on:or,attr:Bn,attrTween:Gn,style:vr,styleTween:xr,text:wr,textTween:Dr,remove:cr,tween:jn,delay:Jn,duration:Zn,ease:$n,easeVarying:tr,end:kr,[Symbol.iterator]:Pr[Symbol.iterator]};function Fr(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var Ir={time:null,delay:0,duration:250,ease:Fr};function Lr(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw Error(`transition ${t} not found`);return n}function Rr(e){var t,n;e instanceof jr?(t=e._id,e=e._name):(t=Nr(),(n=Ir).time=un(),e=e==null?null:e+``);for(var r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,c,l=0;l<s;++l)(c=o[l])&&Sn(c,e,t,l,o,n||Lr(c,t));return new jr(r,this._parents,e,t)}It.prototype.interrupt=On,It.prototype.transition=Rr;var zr=e=>()=>e;function Br(e,{sourceEvent:t,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function Vr(e,t,n){this.k=e,this.x=t,this.y=n}Vr.prototype={constructor:Vr,scale:function(e){return e===1?this:new Vr(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new Vr(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return`translate(`+this.x+`,`+this.y+`) scale(`+this.k+`)`}};var Hr=new Vr(1,0,0);Ur.prototype=Vr.prototype;function Ur(e){for(;!e.__zoom;)if(!(e=e.parentNode))return Hr;return e.__zoom}function Wr(e){e.stopImmediatePropagation()}function Gr(e){e.preventDefault(),e.stopImmediatePropagation()}function Kr(e){return(!e.ctrlKey||e.type===`wheel`)&&!e.button}function qr(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute(`viewBox`)?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function Jr(){return this.__zoom||Hr}function Yr(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Xr(){return navigator.maxTouchPoints||`ontouchstart`in this}function Zr(e,t,n){var r=e.invertX(t[0][0])-n[0][0],i=e.invertX(t[1][0])-n[1][0],a=e.invertY(t[0][1])-n[0][1],o=e.invertY(t[1][1])-n[1][1];return e.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>a?(a+o)/2:Math.min(0,a)||Math.max(0,o))}function Qr(){var e=Kr,t=qr,n=Zr,r=Yr,i=Xr,a=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],s=250,c=C,l=O(`start`,`zoom`,`end`),u,d,f,p=500,m=150,h=0,g=10;function _(e){e.property(`__zoom`,Jr).on(`wheel.zoom`,T,{passive:!1}).on(`mousedown.zoom`,E).on(`dblclick.zoom`,D).filter(i).on(`touchstart.zoom`,k).on(`touchmove.zoom`,A).on(`touchend.zoom touchcancel.zoom`,j).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}_.transform=function(e,t,n,r){var i=e.selection?e.selection():e;i.property(`__zoom`,Jr),e===i?i.interrupt().each(function(){S(this,arguments).event(r).start().zoom(null,typeof t==`function`?t.apply(this,arguments):t).end()}):x(e,t,n,r)},_.scaleBy=function(e,t,n,r){_.scaleTo(e,function(){return this.__zoom.k*(typeof t==`function`?t.apply(this,arguments):t)},n,r)},_.scaleTo=function(e,r,i,a){_.transform(e,function(){var e=t.apply(this,arguments),a=this.__zoom,s=i==null?b(e):typeof i==`function`?i.apply(this,arguments):i,c=a.invert(s),l=typeof r==`function`?r.apply(this,arguments):r;return n(y(v(a,l),s,c),e,o)},i,a)},_.translateBy=function(e,r,i,a){_.transform(e,function(){return n(this.__zoom.translate(typeof r==`function`?r.apply(this,arguments):r,typeof i==`function`?i.apply(this,arguments):i),t.apply(this,arguments),o)},null,a)},_.translateTo=function(e,r,i,a,s){_.transform(e,function(){var e=t.apply(this,arguments),s=this.__zoom,c=a==null?b(e):typeof a==`function`?a.apply(this,arguments):a;return n(Hr.translate(c[0],c[1]).scale(s.k).translate(typeof r==`function`?-r.apply(this,arguments):-r,typeof i==`function`?-i.apply(this,arguments):-i),e,o)},a,s)};function v(e,t){return t=Math.max(a[0],Math.min(a[1],t)),t===e.k?e:new Vr(t,e.x,e.y)}function y(e,t,n){var r=t[0]-n[0]*e.k,i=t[1]-n[1]*e.k;return r===e.x&&i===e.y?e:new Vr(e.k,r,i)}function b(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function x(e,n,r,i){e.on(`start.zoom`,function(){S(this,arguments).event(i).start()}).on(`interrupt.zoom end.zoom`,function(){S(this,arguments).event(i).end()}).tween(`zoom`,function(){var e=this,a=arguments,o=S(e,a).event(i),s=t.apply(e,a),l=r==null?b(s):typeof r==`function`?r.apply(e,a):r,u=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),d=e.__zoom,f=typeof n==`function`?n.apply(e,a):n,p=c(d.invert(l).concat(u/d.k),f.invert(l).concat(u/f.k));return function(e){if(e===1)e=f;else{var t=p(e),n=u/t[2];e=new Vr(n,l[0]-t[0]*n,l[1]-t[1]*n)}o.zoom(null,e)}})}function S(e,t,n){return!n&&e.__zooming||new w(e,t)}function w(e,n){this.that=e,this.args=n,this.active=0,this.sourceEvent=null,this.extent=t.apply(e,n),this.taps=0}w.prototype={event:function(e){return e&&(this.sourceEvent=e),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit(`start`)),this},zoom:function(e,t){return this.mouse&&e!==`mouse`&&(this.mouse[1]=t.invert(this.mouse[0])),this.touch0&&e!==`touch`&&(this.touch0[1]=t.invert(this.touch0[0])),this.touch1&&e!==`touch`&&(this.touch1[1]=t.invert(this.touch1[0])),this.that.__zoom=t,this.emit(`zoom`),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit(`end`)),this},emit:function(e){var t=q(this.that).datum();l.call(e,this.that,new Br(e,{sourceEvent:this.sourceEvent,target:_,type:e,transform:this.that.__zoom,dispatch:l}),t)}};function T(t,...i){if(!e.apply(this,arguments))return;var s=S(this,i).event(t),c=this.__zoom,l=Math.max(a[0],Math.min(a[1],c.k*2**r.apply(this,arguments))),u=J(t);if(s.wheel)(s.mouse[0][0]!==u[0]||s.mouse[0][1]!==u[1])&&(s.mouse[1]=c.invert(s.mouse[0]=u)),clearTimeout(s.wheel);else if(c.k===l)return;else s.mouse=[u,c.invert(u)],Dn(this),s.start();Gr(t),s.wheel=setTimeout(d,m),s.zoom(`mouse`,n(y(v(c,l),s.mouse[0],s.mouse[1]),s.extent,o));function d(){s.wheel=null,s.end()}}function E(t,...r){if(f||!e.apply(this,arguments))return;var i=t.currentTarget,a=S(this,r,!0).event(t),s=q(t.view).on(`mousemove.zoom`,d,!0).on(`mouseup.zoom`,p,!0),c=J(t,i),l=t.clientX,u=t.clientY;Ut(t.view),Wr(t),a.mouse=[c,this.__zoom.invert(c)],Dn(this),a.start();function d(e){if(Gr(e),!a.moved){var t=e.clientX-l,r=e.clientY-u;a.moved=t*t+r*r>h}a.event(e).zoom(`mouse`,n(y(a.that.__zoom,a.mouse[0]=J(e,i),a.mouse[1]),a.extent,o))}function p(e){s.on(`mousemove.zoom mouseup.zoom`,null),Wt(e.view,a.moved),Gr(e),a.event(e).end()}}function D(r,...i){if(e.apply(this,arguments)){var a=this.__zoom,c=J(r.changedTouches?r.changedTouches[0]:r,this),l=a.invert(c),u=a.k*(r.shiftKey?.5:2),d=n(y(v(a,u),c,l),t.apply(this,i),o);Gr(r),s>0?q(this).transition().duration(s).call(x,d,c,r):q(this).call(_.transform,d,c,r)}}function k(t,...n){if(e.apply(this,arguments)){var r=t.touches,i=r.length,a=S(this,n,t.changedTouches.length===i).event(t),o,s,c,l;for(Wr(t),s=0;s<i;++s)c=r[s],l=J(c,this),l=[l,this.__zoom.invert(l),c.identifier],a.touch0?!a.touch1&&a.touch0[2]!==l[2]&&(a.touch1=l,a.taps=0):(a.touch0=l,o=!0,a.taps=1+!!u);u&&=clearTimeout(u),o&&(a.taps<2&&(d=l[0],u=setTimeout(function(){u=null},p)),Dn(this),a.start())}}function A(e,...t){if(this.__zooming){var r=S(this,t).event(e),i=e.changedTouches,a=i.length,s,c,l,u;for(Gr(e),s=0;s<a;++s)c=i[s],l=J(c,this),r.touch0&&r.touch0[2]===c.identifier?r.touch0[0]=l:r.touch1&&r.touch1[2]===c.identifier&&(r.touch1[0]=l);if(c=r.that.__zoom,r.touch1){var d=r.touch0[0],f=r.touch0[1],p=r.touch1[0],m=r.touch1[1],h=(h=p[0]-d[0])*h+(h=p[1]-d[1])*h,g=(g=m[0]-f[0])*g+(g=m[1]-f[1])*g;c=v(c,Math.sqrt(h/g)),l=[(d[0]+p[0])/2,(d[1]+p[1])/2],u=[(f[0]+m[0])/2,(f[1]+m[1])/2]}else if(r.touch0)l=r.touch0[0],u=r.touch0[1];else return;r.zoom(`touch`,n(y(c,l,u),r.extent,o))}}function j(e,...t){if(this.__zooming){var n=S(this,t).event(e),r=e.changedTouches,i=r.length,a,o;for(Wr(e),f&&clearTimeout(f),f=setTimeout(function(){f=null},p),a=0;a<i;++a)o=r[a],n.touch0&&n.touch0[2]===o.identifier?delete n.touch0:n.touch1&&n.touch1[2]===o.identifier&&delete n.touch1;if(n.touch1&&!n.touch0&&(n.touch0=n.touch1,delete n.touch1),n.touch0)n.touch0[1]=this.__zoom.invert(n.touch0[0]);else if(n.end(),n.taps===2&&(o=J(o,this),Math.hypot(d[0]-o[0],d[1]-o[1])<g)){var s=q(this).on(`dblclick.zoom`);s&&s.apply(this,arguments)}}}return _.wheelDelta=function(e){return arguments.length?(r=typeof e==`function`?e:zr(+e),_):r},_.filter=function(t){return arguments.length?(e=typeof t==`function`?t:zr(!!t),_):e},_.touchable=function(e){return arguments.length?(i=typeof e==`function`?e:zr(!!e),_):i},_.extent=function(e){return arguments.length?(t=typeof e==`function`?e:zr([[+e[0][0],+e[0][1]],[+e[1][0],+e[1][1]]]),_):t},_.scaleExtent=function(e){return arguments.length?(a[0]=+e[0],a[1]=+e[1],_):[a[0],a[1]]},_.translateExtent=function(e){return arguments.length?(o[0][0]=+e[0][0],o[1][0]=+e[1][0],o[0][1]=+e[0][1],o[1][1]=+e[1][1],_):[[o[0][0],o[0][1]],[o[1][0],o[1][1]]]},_.constrain=function(e){return arguments.length?(n=e,_):n},_.duration=function(e){return arguments.length?(s=+e,_):s},_.interpolate=function(e){return arguments.length?(c=e,_):c},_.on=function(){var e=l.on.apply(l,arguments);return e===l?_:e},_.clickDistance=function(e){return arguments.length?(h=(e=+e)*e,_):Math.sqrt(h)},_.tapDistance=function(e){return arguments.length?(g=+e,_):g},_}var Y={error001:(e=`react`)=>`Seems like you have not used ${e===`svelte`?`SvelteFlowProvider`:`ReactFlowProvider`} as an ancestor. Help: https://${e}flow.dev/error#001`,error002:()=>`It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.`,error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>`The parent container needs a width and a height to render the graph.`,error005:()=>`Only child nodes can use a parent extent.`,error006:()=>`Can't create edge. An edge needs a source and a target.`,error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e===`source`?n:r}", edge id: ${t}.`,error010:()=>`Handle: No node id found. Make sure to only use a Handle inside a custom Node.`,error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e=`react`)=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>`useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.`,error015:()=>`It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.`,error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},$r=[[-1/0,-1/0],[1/0,1/0]],ei=[`Enter`,` `,`Escape`],ti={"node.a11yDescription.default":`Press enter or space to select a node. Press delete to remove it and escape to cancel.`,"node.a11yDescription.keyboardDisabled":`Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.`,"node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":`Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.`,"controls.ariaLabel":`Control Panel`,"controls.zoomIn.ariaLabel":`Zoom In`,"controls.zoomOut.ariaLabel":`Zoom Out`,"controls.fitView.ariaLabel":`Fit View`,"controls.interactive.ariaLabel":`Toggle Interactivity`,"minimap.ariaLabel":`Mini Map`,"handle.ariaLabel":`Handle`},ni;(function(e){e.Strict=`strict`,e.Loose=`loose`})(ni||={});var ri;(function(e){e.Free=`free`,e.Vertical=`vertical`,e.Horizontal=`horizontal`})(ri||={});var ii;(function(e){e.Partial=`partial`,e.Full=`full`})(ii||={});var ai={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null},oi;(function(e){e.Bezier=`default`,e.Straight=`straight`,e.Step=`step`,e.SmoothStep=`smoothstep`,e.SimpleBezier=`simplebezier`})(oi||={});var si;(function(e){e.Arrow=`arrow`,e.ArrowClosed=`arrowclosed`})(si||={});var X;(function(e){e.Left=`left`,e.Top=`top`,e.Right=`right`,e.Bottom=`bottom`})(X||={});var ci={[X.Left]:X.Right,[X.Right]:X.Left,[X.Top]:X.Bottom,[X.Bottom]:X.Top};function li(e){return e===null?null:e?`valid`:`invalid`}var ui=e=>`id`in e&&`source`in e&&`target`in e,di=e=>`id`in e&&`position`in e&&!(`source`in e)&&!(`target`in e),fi=e=>`id`in e&&`internals`in e&&!(`source`in e)&&!(`target`in e),pi=(e,t=[0,0])=>{let{width:n,height:r}=qi(e),i=e.origin??t,a=n*i[0],o=r*i[1];return{x:e.position.x-a,y:e.position.y-o}},mi=(e,t={nodeOrigin:[0,0]})=>e.length===0?{x:0,y:0,width:0,height:0}:ki(e.reduce((e,n)=>{let r=typeof n==`string`,i=!t.nodeLookup&&!r?n:void 0;return t.nodeLookup&&(i=r?t.nodeLookup.get(n):fi(n)?n:t.nodeLookup.get(n.id)),Di(e,i?ji(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0})},{x:1/0,y:1/0,x2:-1/0,y2:-1/0})),hi=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(e=>{(t.filter===void 0||t.filter(e))&&(n=Di(n,ji(e)),r=!0)}),r?ki(n):{x:0,y:0,width:0,height:0}},gi=(e,t,[n,r,i]=[0,0,1],a=!1,o=!1)=>{let s=(t.x-n)/i,c=(t.y-r)/i,l=t.width/i,u=t.height/i,d=[];for(let t of e.values()){let{measured:e,selectable:n=!0,hidden:r=!1}=t;if(o&&!n||r)continue;let i=e.width??t.width??t.initialWidth??0,f=e.height??t.height??t.initialHeight??0,{x:p,y:m}=t.internals.positionAbsolute,h=Ni(s,c,l,u,p,m,i,f),g=i*f,_=a&&h>0;(!t.internals.handleBounds||_||h>=g||t.dragging)&&d.push(t)}return d},_i=(e,t)=>{let n=new Set;return e.forEach(e=>{n.add(e.id)}),t.filter(e=>n.has(e.source)||n.has(e.target))};function vi(e,t){let n=new Map,r=t?.nodes?new Set(t.nodes.map(e=>e.id)):null;return e.forEach(e=>{e.measured.width&&e.measured.height&&(t?.includeHiddenNodes||!e.hidden)&&(!r||r.has(e.id))&&n.set(e.id,e)}),n}async function yi({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:a},o){if(e.size===0)return!0;let s=Wi(hi(vi(e,o)),t,n,o?.minZoom??i,o?.maxZoom??a,o?.padding??.1);return await r.setViewport(s,{duration:o?.duration,ease:o?.ease,interpolate:o?.interpolate}),!0}function bi({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:i,onError:a}){let o=n.get(e),s=o.parentId?n.get(o.parentId):void 0,{x:c,y:l}=s?s.internals.positionAbsolute:{x:0,y:0},u=o.origin??r,d=o.extent||i;if(o.extent===`parent`&&!o.expandParent)if(!s)a?.(`005`,Y.error005());else{let e=s.measured.width,t=s.measured.height;e&&t&&(d=[[c,l],[c+e,l+t]])}else s&&Ki(o.extent)&&(d=[[o.extent[0][0]+c,o.extent[0][1]+l],[o.extent[1][0]+c,o.extent[1][1]+l]]);let f=Ki(d)?Ci(t,d,o.measured):t;return(o.measured.width===void 0||o.measured.height===void 0)&&a?.(`015`,Y.error015()),{position:{x:f.x-c+(o.measured.width??0)*u[0],y:f.y-l+(o.measured.height??0)*u[1]},positionAbsolute:f}}async function xi({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:i}){let a=new Set(e.map(e=>e.id)),o=[];for(let e of n){if(e.deletable===!1)continue;let t=a.has(e.id),n=!t&&e.parentId&&o.find(t=>t.id===e.parentId);(t||n)&&o.push(e)}let s=new Set(t.map(e=>e.id)),c=r.filter(e=>e.deletable!==!1),l=_i(o,c);for(let e of c)s.has(e.id)&&!l.find(t=>t.id===e.id)&&l.push(e);if(!i)return{edges:l,nodes:o};let u=await i({nodes:o,edges:l});return typeof u==`boolean`?u?{edges:l,nodes:o}:{edges:[],nodes:[]}:u}var Si=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Ci=(e={x:0,y:0},t,n)=>({x:Si(e.x,t[0][0],t[1][0]-(n?.width??0)),y:Si(e.y,t[0][1],t[1][1]-(n?.height??0))});function wi(e,t,n){let{width:r,height:i}=qi(n),{x:a,y:o}=n.internals.positionAbsolute;return Ci(e,[[a,o],[a+r,o+i]],t)}var Ti=(e,t,n)=>e<t?Si(Math.abs(e-t),1,t)/t:e>n?-Si(Math.abs(e-n),1,t)/t:0,Ei=(e,t,n=15,r=40)=>[Ti(e.x,r,t.width-r)*n,Ti(e.y,r,t.height-r)*n],Di=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),Oi=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),ki=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),Ai=(e,t=[0,0])=>{let{x:n,y:r}=fi(e)?e.internals.positionAbsolute:pi(e,t);return{x:n,y:r,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},ji=(e,t=[0,0])=>{let{x:n,y:r}=fi(e)?e.internals.positionAbsolute:pi(e,t);return{x:n,y:r,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:r+(e.measured?.height??e.height??e.initialHeight??0)}},Mi=(e,t)=>ki(Di(Oi(e),Oi(t))),Ni=(e,t,n,r,i,a,o,s)=>{let c=Math.max(0,Math.min(e+n,i+o)-Math.max(e,i)),l=Math.max(0,Math.min(t+r,a+s)-Math.max(t,a));return Math.ceil(c*l)},Pi=(e,t)=>Ni(e.x,e.y,e.width,e.height,t.x,t.y,t.width,t.height),Fi=e=>Ii(e.width)&&Ii(e.height)&&Ii(e.x)&&Ii(e.y),Ii=e=>!isNaN(e)&&isFinite(e),Li=(e,t)=>(e,t)=>{},Ri=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),zi=({x:e,y:t},[n,r,i],a=!1,o=[1,1])=>{let s={x:(e-n)/i,y:(t-r)/i};return a?Ri(s,o):s},Bi=({x:e,y:t},[n,r,i])=>({x:e*i+n,y:t*i+r});function Vi(e,t){if(typeof e==`number`)return Math.floor((t-t/(1+e))*.5);if(typeof e==`string`&&e.endsWith(`px`)){let t=parseFloat(e);if(!Number.isNaN(t))return Math.floor(t)}if(typeof e==`string`&&e.endsWith(`%`)){let n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function Hi(e,t,n){if(typeof e==`string`||typeof e==`number`){let r=Vi(e,n),i=Vi(e,t);return{top:r,right:i,bottom:r,left:i,x:i*2,y:r*2}}if(typeof e==`object`){let r=Vi(e.top??e.y??0,n),i=Vi(e.bottom??e.y??0,n),a=Vi(e.left??e.x??0,t),o=Vi(e.right??e.x??0,t);return{top:r,right:o,bottom:i,left:a,x:a+o,y:r+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function Ui(e,t,n,r,i,a){let{x:o,y:s}=Bi(e,[t,n,r]),{x:c,y:l}=Bi({x:e.x+e.width,y:e.y+e.height},[t,n,r]),u=i-c,d=a-l;return{left:Math.floor(o),top:Math.floor(s),right:Math.floor(u),bottom:Math.floor(d)}}var Wi=(e,t,n,r,i,a)=>{let o=Hi(a,t,n),s=(t-o.x)/e.width,c=(n-o.y)/e.height,l=Si(Math.min(s,c),r,i),u=e.x+e.width/2,d=e.y+e.height/2,f=t/2-u*l,p=n/2-d*l,m=Ui(e,f,p,l,t,n),h={left:Math.min(m.left-o.left,0),top:Math.min(m.top-o.top,0),right:Math.min(m.right-o.right,0),bottom:Math.min(m.bottom-o.bottom,0)};return{x:f-h.left+h.right,y:p-h.top+h.bottom,zoom:l}},Gi=()=>typeof navigator<`u`&&navigator?.userAgent?.indexOf(`Mac`)>=0;function Ki(e){return e!=null&&e!==`parent`}function qi(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function Ji(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function Yi(e,t={width:0,height:0},n,r,i){let a={...e},o=r.get(n);if(o){let e=o.origin||i;a.x+=o.internals.positionAbsolute.x-(t.width??0)*e[0],a.y+=o.internals.positionAbsolute.y-(t.height??0)*e[1]}return a}function Xi(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function Zi(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function Qi(e){return{...ti,...e||{}}}function $i(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){let{x:a,y:o}=aa(e),s=zi({x:a-(i?.left??0),y:o-(i?.top??0)},r),{x:c,y:l}=n?Ri(s,t):s;return{xSnapped:c,ySnapped:l,...s}}var ea=e=>({width:e.offsetWidth,height:e.offsetHeight}),ta=e=>e?.getRootNode?.()||window?.document,na=[`INPUT`,`SELECT`,`TEXTAREA`];function ra(e){let t=e.composedPath?.()?.[0]||e.target;return t?.nodeType===1?na.includes(t.nodeName)||t.hasAttribute(`contenteditable`)||!!t.closest(`.nokey`):!1}var ia=e=>`clientX`in e,aa=(e,t)=>{let n=ia(e),r=n?e.clientX:e.touches?.[0].clientX,i=n?e.clientY:e.touches?.[0].clientY;return{x:r-(t?.left??0),y:i-(t?.top??0)}},oa=(e,t,n,r,i)=>{let a=t.querySelectorAll(`.${e}`);return!a||!a.length?null:Array.from(a).map(t=>{let a=t.getBoundingClientRect();return{id:t.getAttribute(`data-handleid`),type:e,nodeId:i,position:t.getAttribute(`data-handlepos`),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...ea(t)}})};function sa({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:i,sourceControlY:a,targetControlX:o,targetControlY:s}){let c=e*.125+i*.375+o*.375+n*.125,l=t*.125+a*.375+s*.375+r*.125;return[c,l,Math.abs(c-e),Math.abs(l-t)]}function ca(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function la({pos:e,x1:t,y1:n,x2:r,y2:i,c:a}){switch(e){case X.Left:return[t-ca(t-r,a),n];case X.Right:return[t+ca(r-t,a),n];case X.Top:return[t,n-ca(n-i,a)];case X.Bottom:return[t,n+ca(i-n,a)]}}function ua({sourceX:e,sourceY:t,sourcePosition:n=X.Bottom,targetX:r,targetY:i,targetPosition:a=X.Top,curvature:o=.25}){let[s,c]=la({pos:n,x1:e,y1:t,x2:r,y2:i,c:o}),[l,u]=la({pos:a,x1:r,y1:i,x2:e,y2:t,c:o}),[d,f,p,m]=sa({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:s,sourceControlY:c,targetControlX:l,targetControlY:u});return[`M${e},${t} C${s},${c} ${l},${u} ${r},${i}`,d,f,p,m]}function da({sourceX:e,sourceY:t,targetX:n,targetY:r}){let i=Math.abs(n-e)/2,a=n<e?n+i:n-i,o=Math.abs(r-t)/2;return[a,r<t?r+o:r-o,i,o]}function fa({sourceNode:e,targetNode:t,selected:n=!1,zIndex:r=0,elevateOnSelect:i=!1,zIndexMode:a=`basic`}){return a===`manual`?r:(i&&n?r+1e3:r)+Math.max(e.parentId||i&&e.selected?e.internals.z:0,t.parentId||i&&t.selected?t.internals.z:0)}function pa({sourceNode:e,targetNode:t,width:n,height:r,transform:i}){let a=Di(ji(e),ji(t));return a.x===a.x2&&(a.x2+=1),a.y===a.y2&&(a.y2+=1),Pi({x:-i[0]/i[2],y:-i[1]/i[2],width:n/i[2],height:r/i[2]},ki(a))>0}var ma=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||``}-${n}${r||``}`,ha=(e,t)=>t.some(t=>t.source===e.source&&t.target===e.target&&(t.sourceHandle===e.sourceHandle||!t.sourceHandle&&!e.sourceHandle)&&(t.targetHandle===e.targetHandle||!t.targetHandle&&!e.targetHandle)),ga=(e,t,n={})=>{if(!e.source||!e.target)return n.onError?.(`006`,Y.error006()),t;let r=n.getEdgeId||ma,i;return i=ui(e)?{...e}:{...e,id:r(e)},ha(i,t)?t:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,t.concat(i))};function _a({sourceX:e,sourceY:t,targetX:n,targetY:r}){let[i,a,o,s]=da({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,a,o,s]}var va={[X.Left]:{x:-1,y:0},[X.Right]:{x:1,y:0},[X.Top]:{x:0,y:-1},[X.Bottom]:{x:0,y:1}},ya=({source:e,sourcePosition:t=X.Bottom,target:n})=>t===X.Left||t===X.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},ba=(e,t)=>Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2);function xa({source:e,sourcePosition:t=X.Bottom,target:n,targetPosition:r=X.Top,center:i,offset:a,stepPosition:o}){let s=va[t],c=va[r],l={x:e.x+s.x*a,y:e.y+s.y*a},u={x:n.x+c.x*a,y:n.y+c.y*a},d=ya({source:l,sourcePosition:t,target:u}),f=d.x===0?`y`:`x`,p=d[f],m=[],h,g,_={x:0,y:0},v={x:0,y:0},[,,y,b]=da({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(s[f]*c[f]===-1){f===`x`?(h=i.x??l.x+(u.x-l.x)*o,g=i.y??(l.y+u.y)/2):(h=i.x??(l.x+u.x)/2,g=i.y??l.y+(u.y-l.y)*o);let e=[{x:h,y:l.y},{x:h,y:u.y}],t=[{x:l.x,y:g},{x:u.x,y:g}];m=s[f]===p?f===`x`?e:t:f===`x`?t:e}else{let i=[{x:l.x,y:u.y}],o=[{x:u.x,y:l.y}];if(m=f===`x`?s.x===p?o:i:s.y===p?i:o,t===r){let t=Math.abs(e[f]-n[f]);if(t<=a){let r=Math.min(a-1,a-t);s[f]===p?_[f]=(l[f]>e[f]?-1:1)*r:v[f]=(u[f]>n[f]?-1:1)*r}}if(t!==r){let e=f===`x`?`y`:`x`,t=s[f]===c[e],n=l[e]>u[e],r=l[e]<u[e];(s[f]===1&&(!t&&n||t&&r)||s[f]!==1&&(!t&&r||t&&n))&&(m=f===`x`?i:o)}let d={x:l.x+_.x,y:l.y+_.y},y={x:u.x+v.x,y:u.y+v.y};Math.max(Math.abs(d.x-m[0].x),Math.abs(y.x-m[0].x))>=Math.max(Math.abs(d.y-m[0].y),Math.abs(y.y-m[0].y))?(h=(d.x+y.x)/2,g=m[0].y):(h=m[0].x,g=(d.y+y.y)/2)}let x={x:l.x+_.x,y:l.y+_.y},S={x:u.x+v.x,y:u.y+v.y};return[[e,...x.x!==m[0].x||x.y!==m[0].y?[x]:[],...m,...S.x!==m[m.length-1].x||S.y!==m[m.length-1].y?[S]:[],n],h,g,y,b]}function Sa(e,t,n,r){let i=Math.min(ba(e,t)/2,ba(t,n)/2,r),{x:a,y:o}=t;if(e.x===a&&a===n.x||e.y===o&&o===n.y)return`L${a} ${o}`;if(e.y===o){let t=e.x<n.x?-1:1,r=e.y<n.y?1:-1;return`L ${a+i*t},${o}Q ${a},${o} ${a},${o+i*r}`}let s=e.x<n.x?1:-1;return`L ${a},${o+i*(e.y<n.y?-1:1)}Q ${a},${o} ${a+i*s},${o}`}function Ca({sourceX:e,sourceY:t,sourcePosition:n=X.Bottom,targetX:r,targetY:i,targetPosition:a=X.Top,borderRadius:o=5,centerX:s,centerY:c,offset:l=20,stepPosition:u=.5}){let[d,f,p,m,h]=xa({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:i},targetPosition:a,center:{x:s,y:c},offset:l,stepPosition:u}),g=`M${d[0].x} ${d[0].y}`;for(let e=1;e<d.length-1;e++)g+=Sa(d[e-1],d[e],d[e+1],o);return g+=`L${d[d.length-1].x} ${d[d.length-1].y}`,[g,f,p,m,h]}function wa(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function Ta(e){let{sourceNode:t,targetNode:n}=e;if(!wa(t)||!wa(n))return null;let r=t.internals.handleBounds||Ea(t.handles),i=n.internals.handleBounds||Ea(n.handles),a=Oa(r?.source??[],e.sourceHandle),o=Oa(e.connectionMode===ni.Strict?i?.target??[]:(i?.target??[]).concat(i?.source??[]),e.targetHandle);if(!a||!o)return e.onError?.(`008`,Y.error008(a?`target`:`source`,{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;let s=a?.position||X.Bottom,c=o?.position||X.Top,l=Da(t,a,s),u=Da(n,o,c);return{sourceX:l.x,sourceY:l.y,targetX:u.x,targetY:u.y,sourcePosition:s,targetPosition:c}}function Ea(e){if(!e)return null;let t=[],n=[];for(let r of e)r.width=r.width??1,r.height=r.height??1,r.type===`source`?t.push(r):r.type===`target`&&n.push(r);return{source:t,target:n}}function Da(e,t,n=X.Left,r=!1){let i=(t?.x??0)+e.internals.positionAbsolute.x,a=(t?.y??0)+e.internals.positionAbsolute.y,{width:o,height:s}=t??qi(e);if(r)return{x:i+o/2,y:a+s/2};switch(t?.position??n){case X.Top:return{x:i+o/2,y:a};case X.Right:return{x:i+o,y:a+s/2};case X.Bottom:return{x:i+o/2,y:a+s};case X.Left:return{x:i,y:a+s/2}}}function Oa(e,t){return e&&(t?e.find(e=>e.id===t):e[0])||null}function ka(e,t){return e?typeof e==`string`?e:`${t?`${t}__`:``}${Object.keys(e).sort().map(t=>`${t}=${e[t]}`).join(`&`)}`:``}function Aa(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:i}){let a=new Set;return e.reduce((e,o)=>([o.markerStart||r,o.markerEnd||i].forEach(r=>{if(r&&typeof r==`object`){let i=ka(r,t);a.has(i)||(e.push({id:i,color:r.color||n,...r}),a.add(i))}}),e),[]).sort((e,t)=>e.id.localeCompare(t.id))}var ja=1e3,Ma=10,Na={nodeOrigin:[0,0],nodeExtent:$r,elevateNodesOnSelect:!0,zIndexMode:`basic`,defaults:{}},Pa={...Na,checkEquality:!0};function Fa(e,t){let n={...e};for(let e in t)t[e]!==void 0&&(n[e]=t[e]);return n}function Ia(e,t,n){let r=Fa(Na,n);for(let n of e.values())if(n.parentId)Va(n,e,t,r);else{let e=Ci(pi(n,r.nodeOrigin),Ki(n.extent)?n.extent:r.nodeExtent,qi(n));n.internals.positionAbsolute=e}}function La(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;let n=[],r=[];for(let t of e.handles){let i={id:t.id,width:t.width??1,height:t.height??1,nodeId:e.id,x:t.x,y:t.y,position:t.position,type:t.type};t.type===`source`?n.push(i):t.type===`target`&&r.push(i)}return{source:n,target:r}}function Ra(e){return e===`manual`}function za(e,t,n,r={}){let i=Fa(Pa,r),a={i:0},o=new Map(t),s=i?.elevateNodesOnSelect&&!Ra(i.zIndexMode)?ja:0,c=e.length>0,l=!1;t.clear(),n.clear();for(let u of e){let e=o.get(u.id);if(i.checkEquality&&u===e?.internals.userNode)t.set(u.id,e);else{let n=Ci(pi(u,i.nodeOrigin),Ki(u.extent)?u.extent:i.nodeExtent,qi(u));e={...i.defaults,...u,measured:{width:u.measured?.width,height:u.measured?.height},internals:{positionAbsolute:n,handleBounds:La(u,e),z:Ha(u,s,i.zIndexMode),userNode:u}},t.set(u.id,e)}(e.measured===void 0||e.measured.width===void 0||e.measured.height===void 0)&&!e.hidden&&(c=!1),u.parentId&&Va(e,t,n,r,a),l||=u.selected??!1}return{nodesInitialized:c,hasSelectedNodes:l}}function Ba(e,t){if(!e.parentId)return;let n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function Va(e,t,n,r,i){let{elevateNodesOnSelect:a,nodeOrigin:o,nodeExtent:s,zIndexMode:c}=Fa(Na,r),l=e.parentId,u=t.get(l);if(!u){console.warn(`Parent node ${l} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}Ba(e,n),i&&!u.parentId&&u.internals.rootParentIndex===void 0&&c===`auto`&&(u.internals.rootParentIndex=++i.i,u.internals.z=u.internals.z+i.i*Ma),i&&u.internals.rootParentIndex!==void 0&&(i.i=u.internals.rootParentIndex);let{x:d,y:f,z:p}=Ua(e,u,o,s,a&&!Ra(c)?ja:0,c),{positionAbsolute:m}=e.internals,h=d!==m.x||f!==m.y;(h||p!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:h?{x:d,y:f}:m,z:p}})}function Ha(e,t,n){let r=Ii(e.zIndex)?e.zIndex:0;return Ra(n)?r:r+(e.selected?t:0)}function Ua(e,t,n,r,i,a){let{x:o,y:s}=t.internals.positionAbsolute,c=qi(e),l=pi(e,n),u=Ki(e.extent)?Ci(l,e.extent,c):l,d=Ci({x:o+u.x,y:s+u.y},r,c);e.extent===`parent`&&(d=wi(d,c,t));let f=Ha(e,i,a),p=t.internals.z??0;return{x:d.x,y:d.y,z:p>=f?p+1:f}}function Wa(e,t,n,r=[0,0]){let i=[],a=new Map;for(let n of e){let e=t.get(n.parentId);if(!e)continue;let r=Mi(a.get(n.parentId)?.expandedRect??Ai(e),n.rect);a.set(n.parentId,{expandedRect:r,parent:e})}return a.size>0&&a.forEach(({expandedRect:t,parent:a},o)=>{let s=a.internals.positionAbsolute,c=qi(a),l=a.origin??r,u=t.x<s.x?Math.round(Math.abs(s.x-t.x)):0,d=t.y<s.y?Math.round(Math.abs(s.y-t.y)):0,f=Math.max(c.width,Math.round(t.width)),p=Math.max(c.height,Math.round(t.height)),m=(f-c.width)*l[0],h=(p-c.height)*l[1];(u>0||d>0||m||h)&&(i.push({id:o,type:`position`,position:{x:a.position.x-u+m,y:a.position.y-d+h}}),n.get(o)?.forEach(t=>{e.some(e=>e.id===t.id)||i.push({id:t.id,type:`position`,position:{x:t.position.x+u,y:t.position.y+d}})})),(c.width<t.width||c.height<t.height||u||d)&&i.push({id:o,type:`dimensions`,setAttributes:!0,dimensions:{width:f+(u?l[0]*u-m:0),height:p+(d?l[1]*d-h:0)}})}),i}function Ga(e,t,n,r,i,a,o){let s=r?.querySelector(`.xyflow__viewport`),c=!1;if(!s)return{changes:[],updatedInternals:c};let l=[],u=window.getComputedStyle(s),{m22:d}=new window.DOMMatrixReadOnly(u.transform),f=[];for(let r of e.values()){let e=t.get(r.id);if(!e)continue;if(e.hidden){t.set(e.id,{...e,internals:{...e.internals,handleBounds:void 0}}),c=!0;continue}let s=ea(r.nodeElement),u=e.measured.width!==s.width||e.measured.height!==s.height;if(s.width&&s.height&&(u||!e.internals.handleBounds||r.force)){let p=r.nodeElement.getBoundingClientRect(),m=Ki(e.extent)?e.extent:a,{positionAbsolute:h}=e.internals;e.parentId&&e.extent===`parent`?h=wi(h,s,t.get(e.parentId)):m&&(h=Ci(h,m,s));let g={...e,measured:s,internals:{...e.internals,positionAbsolute:h,handleBounds:{source:oa(`source`,r.nodeElement,p,d,e.id),target:oa(`target`,r.nodeElement,p,d,e.id)}}};t.set(e.id,g),e.parentId&&Va(g,t,n,{nodeOrigin:i,zIndexMode:o}),c=!0,u&&(l.push({id:e.id,type:`dimensions`,dimensions:s}),e.expandParent&&e.parentId&&f.push({id:e.id,parentId:e.parentId,rect:Ai(g,i)}))}}if(f.length>0){let e=Wa(f,t,n,i);l.push(...e)}return{changes:l,updatedInternals:c}}async function Ka({delta:e,panZoom:t,transform:n,translateExtent:r,width:i,height:a}){if(!t||!e.x&&!e.y)return!1;let o=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[i,a]],r);return!!o&&(o.x!==n[0]||o.y!==n[1]||o.k!==n[2])}function qa(e,t,n,r,i,a){let o=i,s=r.get(o)||new Map;r.set(o,s.set(n,t)),o=`${i}-${e}`;let c=r.get(o)||new Map;if(r.set(o,c.set(n,t)),a){o=`${i}-${e}-${a}`;let s=r.get(o)||new Map;r.set(o,s.set(n,t))}}function Ja(e,t,n){e.clear(),t.clear();for(let r of n){let{source:n,target:i,sourceHandle:a=null,targetHandle:o=null}=r,s={edgeId:r.id,source:n,target:i,sourceHandle:a,targetHandle:o},c=`${n}-${a}--${i}-${o}`;qa(`source`,s,`${i}-${o}--${n}-${a}`,e,n,a),qa(`target`,s,c,e,i,o),t.set(r.id,r)}}function Ya(e,t){if(!e.parentId)return!1;let n=t.get(e.parentId);return n?n.selected?!0:Ya(n,t):!1}function Xa(e,t,n){let r=e;do{if(r?.matches?.(t))return!0;if(r===n)return!1;r=r?.parentElement}while(r);return!1}function Za(e,t,n,r){let i=new Map;for(let[a,o]of e)if((o.selected||o.id===r)&&(!o.parentId||!Ya(o,e))&&(o.draggable||t&&o.draggable===void 0)){let t=e.get(a);t&&i.set(a,{id:a,position:t.position||{x:0,y:0},distance:{x:n.x-t.internals.positionAbsolute.x,y:n.y-t.internals.positionAbsolute.y},extent:t.extent,parentId:t.parentId,origin:t.origin,expandParent:t.expandParent,internals:{positionAbsolute:t.internals.positionAbsolute||{x:0,y:0}},measured:{width:t.measured.width??0,height:t.measured.height??0}})}return i}function Qa({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){let i=[];for(let[e,a]of t){let t=n.get(e)?.internals.userNode;t&&i.push({...t,position:a.position,dragging:r})}if(!e)return[i[0],i];let a=n.get(e)?.internals.userNode;return[a?{...a,position:t.get(e)?.position||a.position,dragging:r}:i[0],i]}function $a({dragItems:e,snapGrid:t,x:n,y:r}){let i=e.values().next().value;if(!i)return null;let a={x:n-i.distance.x,y:r-i.distance.y},o=Ri(a,t);return{x:o.x-a.x,y:o.y-a.y}}function eo({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:i}){let a={x:null,y:null},o=0,s=new Map,c=!1,l={x:0,y:0},u=null,d=!1,f=null,p=!1,m=!1,h=null;function g({noDragClassName:g,handleSelector:_,domNode:v,isSelectable:y,nodeId:b,nodeClickDistance:x=0}){f=q(v);function S({x:e,y:n}){let{nodeLookup:i,nodeExtent:o,snapGrid:c,snapToGrid:l,nodeOrigin:u,onNodeDrag:d,onSelectionDrag:f,onError:p,updateNodePositions:g}=t();a={x:e,y:n};let _=!1,v=s.size>1,y=v&&o?Oi(hi(s)):null,x=v&&l?$a({dragItems:s,snapGrid:c,x:e,y:n}):null;for(let[t,r]of s){if(!i.has(t))continue;let a={x:e-r.distance.x,y:n-r.distance.y};l&&(a=x?{x:Math.round(a.x+x.x),y:Math.round(a.y+x.y)}:Ri(a,c));let s=null;if(v&&o&&!r.extent&&y){let{positionAbsolute:e}=r.internals,t=e.x-y.x+o[0][0],n=e.x+r.measured.width-y.x2+o[1][0],i=e.y-y.y+o[0][1],a=e.y+r.measured.height-y.y2+o[1][1];s=[[t,i],[n,a]]}let{position:d,positionAbsolute:f}=bi({nodeId:t,nextPosition:a,nodeLookup:i,nodeExtent:s||o,nodeOrigin:u,onError:p});_=_||r.position.x!==d.x||r.position.y!==d.y,r.position=d,r.internals.positionAbsolute=f}if(m||=_,_&&(g(s,!0),h&&(r||d||!b&&f))){let[e,t]=Qa({nodeId:b,dragItems:s,nodeLookup:i});r?.(h,s,e,t),d?.(h,e,t),b||f?.(h,t)}}async function C(){if(!u)return;let{transform:e,panBy:n,autoPanSpeed:r,autoPanOnNodeDrag:i}=t();if(!i){c=!1,cancelAnimationFrame(o);return}let[s,d]=Ei(l,u,r);(s!==0||d!==0)&&(a.x=(a.x??0)-s/e[2],a.y=(a.y??0)-d/e[2],await n({x:s,y:d})&&S(a)),o=requestAnimationFrame(C)}function w(r){let{nodeLookup:i,multiSelectionActive:o,nodesDraggable:c,transform:l,snapGrid:f,snapToGrid:p,selectNodesOnDrag:m,onNodeDragStart:h,onSelectionDragStart:g,unselectNodesAndEdges:_}=t();d=!0,(!m||!y)&&!o&&b&&(i.get(b)?.selected||_()),y&&m&&b&&e?.(b);let v=$i(r.sourceEvent,{transform:l,snapGrid:f,snapToGrid:p,containerBounds:u});if(a=v,s=Za(i,c,v,b),s.size>0&&(n||h||!b&&g)){let[e,t]=Qa({nodeId:b,dragItems:s,nodeLookup:i});n?.(r.sourceEvent,s,e,t),h?.(r.sourceEvent,e,t),b||g?.(r.sourceEvent,t)}}let T=Zt().clickDistance(x).on(`start`,e=>{let{domNode:n,nodeDragThreshold:r,transform:i,snapGrid:o,snapToGrid:s}=t();u=n?.getBoundingClientRect()||null,p=!1,m=!1,h=e.sourceEvent,r===0&&w(e),a=$i(e.sourceEvent,{transform:i,snapGrid:o,snapToGrid:s,containerBounds:u}),l=aa(e.sourceEvent,u)}).on(`drag`,e=>{let{autoPanOnNodeDrag:n,transform:r,snapGrid:i,snapToGrid:o,nodeDragThreshold:f,nodeLookup:m}=t(),g=$i(e.sourceEvent,{transform:r,snapGrid:i,snapToGrid:o,containerBounds:u});if(h=e.sourceEvent,(e.sourceEvent.type===`touchmove`&&e.sourceEvent.touches.length>1||b&&!m.has(b))&&(p=!0),!p){if(!c&&n&&d&&(c=!0,C()),!d){let t=aa(e.sourceEvent,u),n=t.x-l.x,r=t.y-l.y;Math.sqrt(n*n+r*r)>f&&w(e)}(a.x!==g.xSnapped||a.y!==g.ySnapped)&&s&&d&&(l=aa(e.sourceEvent,u),S(g))}}).on(`end`,e=>{if(!d||p){p&&s.size>0&&t().updateNodePositions(s,!1);return}if(c=!1,d=!1,cancelAnimationFrame(o),s.size>0){let{nodeLookup:n,updateNodePositions:r,onNodeDragStop:a,onSelectionDragStop:o}=t();if(m&&=(r(s,!1),!1),i||a||!b&&o){let[t,r]=Qa({nodeId:b,dragItems:s,nodeLookup:n,dragging:!1});i?.(e.sourceEvent,s,t,r),a?.(e.sourceEvent,t,r),b||o?.(e.sourceEvent,r)}}}).filter(e=>{let t=e.target;return!e.button&&(!g||!Xa(t,`.${g}`,v))&&(!_||Xa(t,_,v))});f.call(T)}function _(){f?.on(`.drag`,null)}return{update:g,destroy:_}}function to(e,t,n){let r=[],i={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(let e of t.values())Pi(i,Ai(e))>0&&r.push(e);return r}var no=250;function ro(e,t,n,r){let i=[],a=1/0,o=to(e,n,t+no);for(let n of o){let o=[...n.internals.handleBounds?.source??[],...n.internals.handleBounds?.target??[]];for(let s of o){if(r.nodeId===s.nodeId&&r.type===s.type&&r.id===s.id)continue;let{x:o,y:c}=Da(n,s,s.position,!0),l=Math.sqrt((o-e.x)**2+(c-e.y)**2);l>t||(l<a?(i=[{...s,x:o,y:c}],a=l):l===a&&i.push({...s,x:o,y:c}))}}if(!i.length)return null;if(i.length>1){let e=r.type===`source`?`target`:`source`;return i.find(t=>t.type===e)??i[0]}return i[0]}function io(e,t,n,r,i,a=!1){let o=r.get(e);if(!o)return null;let s=i===`strict`?o.internals.handleBounds?.[t]:[...o.internals.handleBounds?.source??[],...o.internals.handleBounds?.target??[]],c=(n?s?.find(e=>e.id===n):s?.[0])??null;return c&&a?{...c,...Da(o,c,c.position,!0)}:c}function ao(e,t){return e||(t?.classList.contains(`target`)?`target`:t?.classList.contains(`source`)?`source`:null)}function oo(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}var so=()=>!0;function co(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:i,edgeUpdaterType:a,isTarget:o,domNode:s,nodeLookup:c,lib:l,autoPanOnConnect:u,flowId:d,panBy:f,cancelConnection:p,onConnectStart:m,onConnect:h,onConnectEnd:g,isValidConnection:_=so,onReconnectEnd:v,updateConnection:y,getTransform:b,getFromHandle:x,autoPanSpeed:S,dragThreshold:C=1,handleDomNode:w}){let T=ta(e.target),E=0,D,{x:O,y:k}=aa(e),A=ao(a,w),j=s?.getBoundingClientRect(),M=!1;if(!j||!A)return;let N=io(i,A,r,c,t);if(!N)return;let P=aa(e,j),F=!1,I=null,L=!1,R=null;function z(){if(!u||!j)return;let[e,t]=Ei(P,j,S);f({x:e,y:t}),E=requestAnimationFrame(z)}let B={...N,nodeId:i,type:A,position:N.position},V=c.get(i),H={inProgress:!0,isValid:null,from:Da(V,B,X.Left,!0),fromHandle:B,fromPosition:B.position,fromNode:V,to:P,toHandle:null,toPosition:ci[B.position],toNode:null,pointer:P};function U(){M=!0,y(H),m?.(e,{nodeId:i,handleId:r,handleType:A})}C===0&&U();function W(e){if(!M){let{x:t,y:n}=aa(e),r=t-O,i=n-k;if(!(r*r+i*i>C*C))return;U()}if(!x()||!B){G(e);return}let a=b();P=aa(e,j),D=ro(zi(P,a,!1,[1,1]),n,c,B),F||=(z(),!0);let s=lo(e,{handle:D,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:o?`target`:`source`,isValidConnection:_,doc:T,lib:l,flowId:d,nodeLookup:c});R=s.handleDomNode,I=s.connection,L=oo(!!D,s.isValid);let u=c.get(i),f=u?Da(u,B,X.Left,!0):H.from,p={...H,from:f,isValid:L,to:s.toHandle&&L?Bi({x:s.toHandle.x,y:s.toHandle.y},a):P,toHandle:s.toHandle,toPosition:L&&s.toHandle?s.toHandle.position:ci[B.position],toNode:s.toHandle?c.get(s.toHandle.nodeId):null,pointer:P};y(p),H=p}function G(e){if(!(`touches`in e&&e.touches.length>0)){if(M){(D||R)&&I&&L&&h?.(I);let{inProgress:t,...n}=H,r={...n,toPosition:H.toHandle?H.toPosition:null};g?.(e,r),a&&v?.(e,r)}p(),cancelAnimationFrame(E),F=!1,L=!1,I=null,R=null,T.removeEventListener(`mousemove`,W),T.removeEventListener(`mouseup`,G),T.removeEventListener(`touchmove`,W),T.removeEventListener(`touchend`,G)}}T.addEventListener(`mousemove`,W),T.addEventListener(`mouseup`,G),T.addEventListener(`touchmove`,W),T.addEventListener(`touchend`,G)}function lo(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:a,doc:o,lib:s,flowId:c,isValidConnection:l=so,nodeLookup:u}){let d=a===`target`,f=t?o.querySelector(`.${s}-flow__handle[data-id="${c}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:p,y:m}=aa(e),h=o.elementFromPoint(p,m),g=h?.classList.contains(`${s}-flow__handle`)?h:f,_={handleDomNode:g,isValid:!1,connection:null,toHandle:null};if(g){let e=ao(void 0,g),t=g.getAttribute(`data-nodeid`),a=g.getAttribute(`data-handleid`),o=g.classList.contains(`connectable`),s=g.classList.contains(`connectableend`);if(!t||!e)return _;let c={source:d?t:r,sourceHandle:d?a:i,target:d?r:t,targetHandle:d?i:a};_.connection=c,_.isValid=o&&s&&(n===ni.Strict?d&&e===`source`||!d&&e===`target`:t!==r||a!==i)&&l(c),_.toHandle=io(t,e,a,u,n,!0)}return _}var uo={onPointerDown:co,isValid:lo};function fo({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){let i=q(e);function a({translateExtent:e,width:a,height:o,zoomStep:s=1,pannable:c=!0,zoomable:l=!0,inversePan:u=!1}){let d=e=>{if(e.sourceEvent.type!==`wheel`||!t)return;let r=n(),i=e.sourceEvent.ctrlKey&&Gi()?10:1,a=-e.sourceEvent.deltaY*(e.sourceEvent.deltaMode===1?.05:e.sourceEvent.deltaMode?1:.002)*s,o=r[2]*2**(a*i);t.scaleTo(o)},f=[0,0],p=Qr().on(`start`,e=>{(e.sourceEvent.type===`mousedown`||e.sourceEvent.type===`touchstart`)&&(f=[e.sourceEvent.clientX??e.sourceEvent.touches[0].clientX,e.sourceEvent.clientY??e.sourceEvent.touches[0].clientY])}).on(`zoom`,c?i=>{let s=n();if(i.sourceEvent.type!==`mousemove`&&i.sourceEvent.type!==`touchmove`||!t)return;let c=[i.sourceEvent.clientX??i.sourceEvent.touches[0].clientX,i.sourceEvent.clientY??i.sourceEvent.touches[0].clientY],l=[c[0]-f[0],c[1]-f[1]];f=c;let d=r()*Math.max(s[2],Math.log(s[2]))*(u?-1:1),p={x:s[0]-l[0]*d,y:s[1]-l[1]*d},m=[[0,0],[a,o]];t.setViewportConstrained({x:p.x,y:p.y,zoom:s[2]},m,e)}:null).on(`zoom.wheel`,l?d:null);i.call(p,{})}function o(){i.on(`zoom`,null)}return{update:a,destroy:o,pointer:J}}var po=e=>({x:e.x,y:e.y,zoom:e.k}),mo=({x:e,y:t,zoom:n})=>Hr.translate(e,t).scale(n),ho=(e,t)=>e.target.closest(`.${t}`),go=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),_o=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,vo=(e,t=0,n=_o,r=()=>{})=>{let i=typeof t==`number`&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on(`end`,r):e},yo=e=>{let t=e.ctrlKey&&Gi()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function bo({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:a,zoomOnPinch:o,onPanZoomStart:s,onPanZoom:c,onPanZoomEnd:l}){return u=>{if(ho(u,t))return u.ctrlKey&&u.preventDefault(),!1;u.preventDefault(),u.stopImmediatePropagation();let d=n.property(`__zoom`).k||1;if(u.ctrlKey&&o){let e=J(u),t=d*2**yo(u);r.scaleTo(n,t,e,u);return}let f=u.deltaMode===1?20:1,p=i===ri.Vertical?0:u.deltaX*f,m=i===ri.Horizontal?0:u.deltaY*f;!Gi()&&u.shiftKey&&i!==ri.Vertical&&(p=u.deltaY*f,m=0),r.translateBy(n,-(p/d)*a,-(m/d)*a,{internal:!0});let h=po(n.property(`__zoom`));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(c?.(u,h),e.panScrollTimeout=setTimeout(()=>{l?.(u,h),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,s?.(u,h))}}function xo({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,i){let a=r.type===`wheel`,o=!t&&a&&!r.ctrlKey,s=ho(r,e);if(r.ctrlKey&&a&&s&&r.preventDefault(),o||s)return null;r.preventDefault(),n.call(this,r,i)}}function So({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;let i=po(r.transform);e.mouseButton=r.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=i,r.sourceEvent?.type===`mousedown`&&t(!0),n&&n?.(r.sourceEvent,i)}}function Co({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return a=>{e.usedRightMouseButton=!!(n&&go(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),i&&!a.sourceEvent?.internal&&i?.(a.sourceEvent,po(a.transform))}}function wo({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:a}){return o=>{if(!o.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&go(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&a(o.sourceEvent),e.usedRightMouseButton=!1,r(!1),i)){let t=po(o.transform);e.prevViewport=t,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i?.(o.sourceEvent,t)},n?150:0)}}}function To({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:i,zoomOnDoubleClick:a,userSelectionActive:o,noWheelClassName:s,noPanClassName:c,lib:l,connectionInProgress:u}){return d=>{let f=e||t,p=n&&d.ctrlKey,m=d.type===`wheel`;if(d.button===1&&d.type===`mousedown`&&(ho(d,`${l}-flow__node`)||ho(d,`${l}-flow__edge`)))return!0;if(!r&&!f&&!i&&!a&&!n||o||u&&!m||ho(d,s)&&m||ho(d,c)&&(!m||i&&m&&!e)||!n&&d.ctrlKey&&m)return!1;if(!n&&d.type===`touchstart`&&d.touches?.length>1)return d.preventDefault(),!1;if(!f&&!i&&!p&&m||!r&&(d.type===`mousedown`||d.type===`touchstart`)||Array.isArray(r)&&!r.includes(d.button)&&d.type===`mousedown`)return!1;let h=Array.isArray(r)&&r.includes(d.button)||!d.button||d.button<=1;return(!d.ctrlKey||m)&&h}}function Eo({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:i,onPanZoom:a,onPanZoomStart:o,onPanZoomEnd:s,onDraggingChange:c}){let u={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},d=e.getBoundingClientRect(),f=Qr().scaleExtent([t,n]).translateExtent(r),p=q(e).call(f);y({x:i.x,y:i.y,zoom:Si(i.zoom,t,n)},[[0,0],[d.width,d.height]],r);let m=p.on(`wheel.zoom`),h=p.on(`dblclick.zoom`);f.wheelDelta(yo);async function g(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?l:C).transform(vo(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function _({noWheelClassName:e,noPanClassName:t,onPaneContextMenu:n,userSelectionActive:r,panOnScroll:i,panOnDrag:l,panOnScrollMode:d,panOnScrollSpeed:g,preventScrolling:_,zoomOnPinch:y,zoomOnScroll:b,zoomOnDoubleClick:x,zoomActivationKeyPressed:S,lib:C,onTransformChange:w,connectionInProgress:T,paneClickDistance:E,selectionOnDrag:D}){r&&!u.isZoomingOrPanning&&v();let O=i&&!S&&!r;f.clickDistance(D?1/0:!Ii(E)||E<0?0:E);let k=O?bo({zoomPanValues:u,noWheelClassName:e,d3Selection:p,d3Zoom:f,panOnScrollMode:d,panOnScrollSpeed:g,zoomOnPinch:y,onPanZoomStart:o,onPanZoom:a,onPanZoomEnd:s}):xo({noWheelClassName:e,preventScrolling:_,d3ZoomHandler:m});p.on(`wheel.zoom`,k,{passive:!1});let A=So({zoomPanValues:u,onDraggingChange:c,onPanZoomStart:o});f.on(`start`,A);let j=Co({zoomPanValues:u,panOnDrag:l,onPaneContextMenu:!!n,onPanZoom:a,onTransformChange:w});f.on(`zoom`,j);let M=wo({zoomPanValues:u,panOnDrag:l,panOnScroll:i,onPaneContextMenu:n,onPanZoomEnd:s,onDraggingChange:c});f.on(`end`,M);let N=To({zoomActivationKeyPressed:S,panOnDrag:l,zoomOnScroll:b,panOnScroll:i,zoomOnDoubleClick:x,zoomOnPinch:y,userSelectionActive:r,noPanClassName:t,noWheelClassName:e,lib:C,connectionInProgress:T});f.filter(N),x?p.on(`dblclick.zoom`,h):p.on(`dblclick.zoom`,null)}function v(){f.on(`zoom`,null)}async function y(e,t,n){let r=mo(e),i=f?.constrain()(r,t,n);return i&&await g(i),i}async function b(e,t){let n=mo(e);return await g(n,t),n}function x(e){if(p){let t=mo(e),n=p.property(`__zoom`);(n.k!==e.zoom||n.x!==e.x||n.y!==e.y)&&f?.transform(p,t,null,{sync:!0})}}function S(){let e=p?Ur(p.node()):{x:0,y:0,k:1};return{x:e.x,y:e.y,zoom:e.k}}async function w(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?l:C).scaleTo(vo(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}async function T(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?l:C).scaleBy(vo(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function E(e){f?.scaleExtent(e)}function D(e){f?.translateExtent(e)}function O(e){let t=!Ii(e)||e<0?0:e;f?.clickDistance(t)}return{update:_,destroy:v,setViewport:b,setViewportConstrained:y,getViewport:S,scaleTo:w,scaleBy:T,setScaleExtent:E,setTranslateExtent:D,syncViewport:x,setClickDistance:O}}var Do;(function(e){e.Line=`line`,e.Handle=`handle`})(Do||={});function Oo({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:i,affectsY:a}){let o=e-t,s=n-r,c=[o>0?1:o<0?-1:0,s>0?1:s<0?-1:0];return o&&i&&(c[0]*=-1),s&&a&&(c[1]*=-1),c}function ko(e){return{isHorizontal:e.includes(`right`)||e.includes(`left`),isVertical:e.includes(`bottom`)||e.includes(`top`),affectsX:e.includes(`left`),affectsY:e.includes(`top`)}}function Ao(e,t){return Math.max(0,t-e)}function jo(e,t){return Math.max(0,e-t)}function Mo(e,t,n){return Math.max(0,t-e,e-n)}function No(e,t){return e?!t:t}function Po(e,t,n,r,i,a,o,s){let{affectsX:c,affectsY:l}=t,{isHorizontal:u,isVertical:d}=t,f=u&&d,{xSnapped:p,ySnapped:m}=n,{minWidth:h,maxWidth:g,minHeight:_,maxHeight:v}=r,{x:y,y:b,width:x,height:S,aspectRatio:C}=e,w=Math.floor(u?p-e.pointerX:0),T=Math.floor(d?m-e.pointerY:0),E=x+(c?-w:w),D=S+(l?-T:T),O=-a[0]*x,k=-a[1]*S,A=Mo(E,h,g),j=Mo(D,_,v);if(o){let e=0,t=0;c&&w<0?e=Ao(y+w+O,o[0][0]):!c&&w>0&&(e=jo(y+E+O,o[1][0])),l&&T<0?t=Ao(b+T+k,o[0][1]):!l&&T>0&&(t=jo(b+D+k,o[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(s){let e=0,t=0;c&&w>0?e=jo(y+w,s[0][0]):!c&&w<0&&(e=Ao(y+E,s[1][0])),l&&T>0?t=jo(b+T,s[0][1]):!l&&T<0&&(t=Ao(b+D,s[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(i){if(u){let e=Mo(E/C,_,v)*C;if(A=Math.max(A,e),o){let e=0;e=!c&&!l||c&&!l&&f?jo(b+k+E/C,o[1][1])*C:Ao(b+k+(c?w:-w)/C,o[0][1])*C,A=Math.max(A,e)}if(s){let e=0;e=!c&&!l||c&&!l&&f?Ao(b+E/C,s[1][1])*C:jo(b+(c?w:-w)/C,s[0][1])*C,A=Math.max(A,e)}}if(d){let e=Mo(D*C,h,g)/C;if(j=Math.max(j,e),o){let e=0;e=!c&&!l||l&&!c&&f?jo(y+D*C+O,o[1][0])/C:Ao(y+(l?T:-T)*C+O,o[0][0])/C,j=Math.max(j,e)}if(s){let e=0;e=!c&&!l||l&&!c&&f?Ao(y+D*C,s[1][0])/C:jo(y+(l?T:-T)*C,s[0][0])/C,j=Math.max(j,e)}}}T+=T<0?j:-j,w+=w<0?A:-A,i&&(f?E>D*C?T=(No(c,l)?-w:w)/C:w=(No(c,l)?-T:T)*C:u?(T=w/C,l=c):(w=T*C,c=l));let M=c?y+w:y,N=l?b+T:b;return{width:x+(c?-w:w),height:S+(l?-T:T),x:a[0]*w*(c?-1:1)+M,y:a[1]*T*(l?-1:1)+N}}var Fo={width:0,height:0,x:0,y:0},Io={...Fo,pointerX:0,pointerY:0,aspectRatio:1};function Lo(e,t,n){let r=t.position.x+e.position.x,i=t.position.y+e.position.y,a=e.measured.width??0,o=e.measured.height??0,s=n[0]*a,c=n[1]*o;return[[r-s,i-c],[r+a-s,i+o-c]]}function Ro({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:i}){let a=q(e),o={controlDirection:ko(`bottom-right`),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function s({controlPosition:e,boundaries:s,keepAspectRatio:c,resizeDirection:l,onResizeStart:u,onResize:d,onResizeEnd:f,shouldResize:p}){let m={...Fo},h={...Io};o={boundaries:s,resizeDirection:l,keepAspectRatio:c,controlDirection:ko(e)};let g,_=null,v=[],y,b,x,S=!1,C=Zt().on(`start`,e=>{let{nodeLookup:r,transform:i,snapGrid:a,snapToGrid:o,nodeOrigin:s,paneDomNode:c}=n();if(g=r.get(t),!g)return;_=c?.getBoundingClientRect()??null;let{xSnapped:l,ySnapped:d}=$i(e.sourceEvent,{transform:i,snapGrid:a,snapToGrid:o,containerBounds:_});m={width:g.measured.width??0,height:g.measured.height??0,x:g.position.x??0,y:g.position.y??0},h={...m,pointerX:l,pointerY:d,aspectRatio:m.width/m.height},y=void 0,b=Ki(g.extent)?g.extent:void 0,g.parentId&&(g.extent===`parent`||g.expandParent)&&(y=r.get(g.parentId)),y&&g.extent===`parent`&&(b=[[0,0],[y.measured.width,y.measured.height]]),v=[],x=void 0;for(let[e,n]of r)if(n.parentId===t&&(v.push({id:e,position:{...n.position},extent:n.extent}),n.extent===`parent`||n.expandParent)){let e=Lo(n,g,n.origin??s);x=x?[[Math.min(e[0][0],x[0][0]),Math.min(e[0][1],x[0][1])],[Math.max(e[1][0],x[1][0]),Math.max(e[1][1],x[1][1])]]:e}u?.(e,{...m})}).on(`drag`,e=>{let{transform:t,snapGrid:i,snapToGrid:a,nodeOrigin:s}=n(),c=$i(e.sourceEvent,{transform:t,snapGrid:i,snapToGrid:a,containerBounds:_}),l=[];if(!g)return;let{x:u,y:f,width:C,height:w}=m,T={},E=g.origin??s,{width:D,height:O,x:k,y:A}=Po(h,o.controlDirection,c,o.boundaries,o.keepAspectRatio,E,b,x),j=D!==C,M=O!==w,N=k!==u&&j,P=A!==f&&M;if(!N&&!P&&!j&&!M)return;if((N||P||E[0]===1||E[1]===1)&&(T.x=N?k:m.x,T.y=P?A:m.y,m.x=T.x,m.y=T.y,v.length>0)){let e=k-u,t=A-f;for(let n of v)n.position={x:n.position.x-e+E[0]*(D-C),y:n.position.y-t+E[1]*(O-w)},l.push(n)}if((j||M)&&(T.width=j&&(!o.resizeDirection||o.resizeDirection===`horizontal`)?D:m.width,T.height=M&&(!o.resizeDirection||o.resizeDirection===`vertical`)?O:m.height,m.width=T.width,m.height=T.height),y&&g.expandParent){let e=E[0]*(T.width??0);T.x&&T.x<e&&(m.x=e,h.x-=T.x-e);let t=E[1]*(T.height??0);T.y&&T.y<t&&(m.y=t,h.y-=T.y-t)}let F=Oo({width:m.width,prevWidth:C,height:m.height,prevHeight:w,affectsX:o.controlDirection.affectsX,affectsY:o.controlDirection.affectsY}),I={...m,direction:F};p?.(e,I)!==!1&&(S=!0,d?.(e,I),r(T,l))}).on(`end`,e=>{S&&=(f?.(e,{...m}),i?.({...m}),!1)});a.call(C)}function c(){a.on(`.drag`,null)}return{update:s,destroy:c}}var zo=e(s(),1),Bo=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e)),destroy:()=>{n.clear()}},o=t=e(r,i,a);return a},Vo=e=>e?Bo(e):Bo,{useDebugValue:Ho}=w.default,{useSyncExternalStoreWithSelector:Uo}=zo.default,Wo=e=>e;function Go(e,t=Wo,n){let r=Uo(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return Ho(r),r}var Ko=(e,t)=>{let n=Vo(e),r=(e,r=t)=>Go(n,e,r);return Object.assign(r,n),r},qo=(e,t)=>e?Ko(e,t):Ko;function Z(e,t){if(Object.is(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[n,r]of e)if(!Object.is(r,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}r();var Jo=(0,w.createContext)(null),Yo=Jo.Provider,Xo=Y.error001(`react`);function Q(e,t){let n=(0,w.useContext)(Jo);if(n===null)throw Error(Xo);return Go(n,e,t)}function $(){let e=(0,w.useContext)(Jo);if(e===null)throw Error(Xo);return(0,w.useMemo)(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}var Zo={display:`none`},Qo={position:`absolute`,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0px, 0px, 0px, 0px)`,clipPath:`inset(100%)`},$o=`react-flow__node-desc`,es=`react-flow__edge-desc`,ts=`react-flow__aria-live`,ns=e=>e.ariaLiveMessage,rs=e=>e.ariaLabelConfig;function is({rfId:e}){let t=Q(ns);return(0,T.jsx)(`div`,{id:`${ts}-${e}`,"aria-live":`assertive`,"aria-atomic":`true`,style:Qo,children:t})}function as({rfId:e,disableKeyboardA11y:t}){let n=Q(rs);return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(`div`,{id:`${$o}-${e}`,style:Zo,children:t?n[`node.a11yDescription.default`]:n[`node.a11yDescription.keyboardDisabled`]}),(0,T.jsx)(`div`,{id:`${es}-${e}`,style:Zo,children:n[`edge.a11yDescription.default`]}),!t&&(0,T.jsx)(is,{rfId:e})]})}var os=(0,w.forwardRef)(({position:e=`top-left`,children:t,className:n,style:r,...i},a)=>(0,T.jsx)(`div`,{className:E([`react-flow__panel`,n,...`${e}`.split(`-`)]),style:r,ref:a,...i,children:t}));os.displayName=`Panel`;var ss=`https://reactflow.dev?utm_source=attribution`;function cs({proOptions:e,position:t=`bottom-right`}){return e?.hideAttribution?null:(0,T.jsx)(os,{position:t,className:`react-flow__attribution`,"data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${ss}`,children:(0,T.jsx)(`a`,{href:ss,target:`_blank`,rel:`noopener noreferrer`,"aria-label":`React Flow attribution`,children:`React Flow`})})}var ls=e=>{let t=[],n=[];for(let[,n]of e.nodeLookup)n.selected&&t.push(n.internals.userNode);for(let[,t]of e.edgeLookup)t.selected&&n.push(t);return{selectedNodes:t,selectedEdges:n}},us=e=>e.id;function ds(e,t){return Z(e.selectedNodes.map(us),t.selectedNodes.map(us))&&Z(e.selectedEdges.map(us),t.selectedEdges.map(us))}function fs({onSelectionChange:e}){let t=$(),{selectedNodes:n,selectedEdges:r}=Q(ls,ds);return(0,w.useEffect)(()=>{let i={nodes:n,edges:r};e?.(i),t.getState().onSelectionChangeHandlers.forEach(e=>e(i))},[n,r,e]),null}var ps=e=>!!e.onSelectionChangeHandlers;function ms({onSelectionChange:e}){let t=Q(ps);return e||t?(0,T.jsx)(fs,{onSelectionChange:e}):null}var hs=[0,0],gs={x:0,y:0,zoom:1},_s=[...`nodes.edges.defaultNodes.defaultEdges.onConnect.onConnectStart.onConnectEnd.onClickConnectStart.onClickConnectEnd.nodesDraggable.autoPanOnNodeFocus.nodesConnectable.nodesFocusable.edgesFocusable.edgesReconnectable.elevateNodesOnSelect.elevateEdgesOnSelect.minZoom.maxZoom.nodeExtent.onNodesChange.onEdgesChange.elementsSelectable.connectionMode.snapGrid.snapToGrid.translateExtent.connectOnClick.defaultEdgeOptions.fitView.fitViewOptions.onNodesDelete.onEdgesDelete.onDelete.onNodeDrag.onNodeDragStart.onNodeDragStop.onSelectionDrag.onSelectionDragStart.onSelectionDragStop.onMoveStart.onMove.onMoveEnd.noPanClassName.nodeOrigin.autoPanOnConnect.autoPanOnNodeDrag.onError.connectionRadius.isValidConnection.selectNodesOnDrag.nodeDragThreshold.connectionDragThreshold.onBeforeDelete.debug.autoPanSpeed.ariaLabelConfig.zIndexMode`.split(`.`),`rfId`],vs=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),ys={translateExtent:$r,nodeOrigin:hs,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:`nopan`,rfId:`1`};function bs(e){let{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:i,setTranslateExtent:a,setNodeExtent:o,reset:s,setDefaultNodesAndEdges:c}=Q(vs,Z),l=$();(0,w.useEffect)(()=>(c(e.defaultNodes,e.defaultEdges),()=>{u.current=ys,s()}),[]);let u=(0,w.useRef)(ys);return(0,w.useEffect)(()=>{for(let s of _s){let c=e[s];c!==u.current[s]&&e[s]!==void 0&&(s===`nodes`?t(c):s===`edges`?n(c):s===`minZoom`?r(c):s===`maxZoom`?i(c):s===`translateExtent`?a(c):s===`nodeExtent`?o(c):s===`ariaLabelConfig`?l.setState({ariaLabelConfig:Qi(c)}):s===`fitView`?l.setState({fitViewQueued:c}):s===`fitViewOptions`?l.setState({fitViewOptions:c}):l.setState({[s]:c}))}u.current=e},_s.map(t=>e[t])),null}function xs(){return typeof window>`u`||!window.matchMedia?null:window.matchMedia(`(prefers-color-scheme: dark)`)}function Ss(e){let[t,n]=(0,w.useState)(e===`system`?null:e);return(0,w.useEffect)(()=>{if(e!==`system`){n(e);return}let t=xs(),r=()=>n(t?.matches?`dark`:`light`);return r(),t?.addEventListener(`change`,r),()=>{t?.removeEventListener(`change`,r)}},[e]),t===null?xs()?.matches?`dark`:`light`:t}var Cs=typeof document<`u`?document:null;function ws(e=null,t={target:Cs,actInsideInputWithModifier:!0}){let[n,r]=(0,w.useState)(!1),i=(0,w.useRef)(!1),a=(0,w.useRef)(new Set([])),[o,s]=(0,w.useMemo)(()=>{if(e!==null){let t=(Array.isArray(e)?e:[e]).filter(e=>typeof e==`string`).map(e=>e.replace(`+`,`
|
|
2
|
-
`).replace(`
|
|
3
|
-
|
|
4
|
-
`,`
|
|
5
|
-
+`).split(`
|
|
6
|
-
`));return[t,t.reduce((e,t)=>e.concat(...t),[])]}return[[],[]]},[e]);return(0,w.useEffect)(()=>{let n=t?.target??Cs,c=t?.actInsideInputWithModifier??!0;if(e!==null){let e=e=>{if(i.current=e.ctrlKey||e.metaKey||e.shiftKey||e.altKey,(!i.current||i.current&&!c)&&ra(e))return!1;let n=Es(e.code,s);if(a.current.add(e[n]),Ts(o,a.current,!1)){let n=e.composedPath?.()?.[0]||e.target,a=n?.nodeName===`BUTTON`||n?.nodeName===`A`;t.preventDefault!==!1&&(i.current||!a)&&e.preventDefault(),r(!0)}},l=e=>{let t=Es(e.code,s);Ts(o,a.current,!0)?(r(!1),a.current.clear()):a.current.delete(e[t]),e.key===`Meta`&&a.current.clear(),i.current=!1},u=()=>{a.current.clear(),r(!1)};return n?.addEventListener(`keydown`,e),n?.addEventListener(`keyup`,l),window.addEventListener(`blur`,u),window.addEventListener(`contextmenu`,u),()=>{n?.removeEventListener(`keydown`,e),n?.removeEventListener(`keyup`,l),window.removeEventListener(`blur`,u),window.removeEventListener(`contextmenu`,u)}}},[e,r]),n}function Ts(e,t,n){return e.filter(e=>n||e.length===t.size).some(e=>e.every(e=>t.has(e)))}function Es(e,t){return t.includes(e)?`code`:`key`}var Ds=()=>{let e=$();return(0,w.useMemo)(()=>({zoomIn:async t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):!1},zoomOut:async t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):!1},zoomTo:async(t,n)=>{let{panZoom:r}=e.getState();return r?r.scaleTo(t,n):!1},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{let{transform:[r,i,a],panZoom:o}=e.getState();return o?(await o.setViewport({x:t.x??r,y:t.y??i,zoom:t.zoom??a},n),!0):!1},getViewport:()=>{let[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},setCenter:async(t,n,r)=>e.getState().setCenter(t,n,r),fitBounds:async(t,n)=>{let{width:r,height:i,minZoom:a,maxZoom:o,panZoom:s}=e.getState(),c=Wi(t,r,i,a,o,n?.padding??.1);return s?(await s.setViewport(c,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0):!1},screenToFlowPosition:(t,n={})=>{let{transform:r,snapGrid:i,snapToGrid:a,domNode:o}=e.getState();if(!o)return t;let{x:s,y:c}=o.getBoundingClientRect(),l={x:t.x-s,y:t.y-c},u=n.snapGrid??i;return zi(l,r,n.snapToGrid??a,u)},flowToScreenPosition:t=>{let{transform:n,domNode:r}=e.getState();if(!r)return t;let{x:i,y:a}=r.getBoundingClientRect(),o=Bi(t,n);return{x:o.x+i,y:o.y+a}}}),[])};function Os(e,t){let n=[],r=new Map,i=[];for(let t of e)if(t.type===`add`){i.push(t);continue}else if(t.type===`remove`||t.type===`replace`)r.set(t.id,[t]);else{let e=r.get(t.id);e?e.push(t):r.set(t.id,[t])}for(let e of t){let t=r.get(e.id);if(!t){n.push(e);continue}if(t[0].type===`remove`)continue;if(t[0].type===`replace`){n.push({...t[0].item});continue}let i={...e};for(let e of t)ks(e,i);n.push(i)}return i.length&&i.forEach(e=>{e.index===void 0?n.push({...e.item}):n.splice(e.index,0,{...e.item})}),n}function ks(e,t){switch(e.type){case`select`:t.selected=e.selected;break;case`position`:e.position!==void 0&&(t.position=e.position),e.dragging!==void 0&&(t.dragging=e.dragging);break;case`dimensions`:e.dimensions!==void 0&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes===`width`)&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes===`height`)&&(t.height=e.dimensions.height))),typeof e.resizing==`boolean`&&(t.resizing=e.resizing);break}}function As(e,t){return Os(e,t)}function js(e,t){return Os(e,t)}function Ms(e,t){return{id:e,type:`select`,selected:t}}function Ns(e,t=new Set,n=!1){let r=[];for(let[i,a]of e){let e=t.has(i);!(a.selected===void 0&&!e)&&a.selected!==e&&(n&&(a.selected=e),r.push(Ms(a.id,e)))}return r}function Ps({items:e=[],lookup:t}){let n=[],r=new Map(e.map(e=>[e.id,e]));for(let[r,i]of e.entries()){let e=t.get(i.id),a=e?.internals?.userNode??e;a!==void 0&&a!==i&&n.push({id:i.id,item:i,type:`replace`}),a===void 0&&n.push({item:i,type:`add`,index:r})}for(let[e]of t)r.get(e)===void 0&&n.push({id:e,type:`remove`});return n}function Fs(e){return{id:e.id,type:`remove`}}var Is=Li(`React Flow`,`https://reactflow.dev/`);function Ls(e,t,n={}){return ga(e,t,{...n,onError:n.onError??Is})}var Rs=e=>di(e),zs=e=>ui(e);function Bs(e){return(0,w.forwardRef)(e)}var Vs=typeof window<`u`?w.useLayoutEffect:w.useEffect;function Hs(e){let[t,n]=(0,w.useState)(BigInt(0)),[r]=(0,w.useState)(()=>Us(()=>n(e=>e+BigInt(1))));return Vs(()=>{let t=r.get();t.length&&(e(t),r.reset())},[t]),r}function Us(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}var Ws=(0,w.createContext)(null);function Gs({children:e}){let t=$(),n=Hs((0,w.useCallback)(e=>{let{nodes:n=[],setNodes:r,hasDefaultNodes:i,onNodesChange:a,nodeLookup:o,fitViewQueued:s,onNodesChangeMiddlewareMap:c}=t.getState(),l=n;for(let t of e)l=typeof t==`function`?t(l):t;let u=Ps({items:l,lookup:o});for(let e of c.values())u=e(u);i&&r(l),u.length>0?a?.(u):s&&window.requestAnimationFrame(()=>{let{fitViewQueued:e,nodes:n,setNodes:r}=t.getState();e&&r(n)})},[])),r=Hs((0,w.useCallback)(e=>{let{edges:n=[],setEdges:r,hasDefaultEdges:i,onEdgesChange:a,edgeLookup:o}=t.getState(),s=n;for(let t of e)s=typeof t==`function`?t(s):t;i?r(s):a&&a(Ps({items:s,lookup:o}))},[])),i=(0,w.useMemo)(()=>({nodeQueue:n,edgeQueue:r}),[]);return(0,T.jsx)(Ws.Provider,{value:i,children:e})}function Ks(){let e=(0,w.useContext)(Ws);if(!e)throw Error(`useBatchContext must be used within a BatchProvider`);return e}var qs=e=>!!e.panZoom;function Js(){let e=Ds(),t=$(),n=Ks(),r=Q(qs),i=(0,w.useMemo)(()=>{let e=e=>t.getState().nodeLookup.get(e),r=e=>{n.nodeQueue.push(e)},i=e=>{n.edgeQueue.push(e)},a=e=>{let{nodeLookup:n,nodeOrigin:r}=t.getState(),i=Rs(e)?e:n.get(e.id),a=i.parentId?Yi(i.position,i.measured,i.parentId,n,r):i.position;return Ai({...i,position:a,width:i.measured?.width??i.width,height:i.measured?.height??i.height})},o=(e,t,n={replace:!1})=>{r(r=>r.map(r=>{if(r.id===e){let e=typeof t==`function`?t(r):t;return n.replace&&Rs(e)?e:{...r,...e}}return r}))},s=(e,t,n={replace:!1})=>{i(r=>r.map(r=>{if(r.id===e){let e=typeof t==`function`?t(r):t;return n.replace&&zs(e)?e:{...r,...e}}return r}))};return{getNodes:()=>t.getState().nodes.map(e=>({...e})),getNode:t=>e(t)?.internals.userNode,getInternalNode:e,getEdges:()=>{let{edges:e=[]}=t.getState();return e.map(e=>({...e}))},getEdge:e=>t.getState().edgeLookup.get(e),setNodes:r,setEdges:i,addNodes:e=>{let t=Array.isArray(e)?e:[e];n.nodeQueue.push(e=>[...e,...t])},addEdges:e=>{let t=Array.isArray(e)?e:[e];n.edgeQueue.push(e=>[...e,...t])},toObject:()=>{let{nodes:e=[],edges:n=[],transform:r}=t.getState(),[i,a,o]=r;return{nodes:e.map(e=>({...e})),edges:n.map(e=>({...e})),viewport:{x:i,y:a,zoom:o}}},deleteElements:async({nodes:e=[],edges:n=[]})=>{let{nodes:r,edges:i,onNodesDelete:a,onEdgesDelete:o,triggerNodeChanges:s,triggerEdgeChanges:c,onDelete:l,onBeforeDelete:u}=t.getState(),{nodes:d,edges:f}=await xi({nodesToRemove:e,edgesToRemove:n,nodes:r,edges:i,onBeforeDelete:u}),p=f.length>0,m=d.length>0;if(p){let e=f.map(Fs);o?.(f),c(e)}if(m){let e=d.map(Fs);a?.(d),s(e)}return(m||p)&&l?.({nodes:d,edges:f}),{deletedNodes:d,deletedEdges:f}},getIntersectingNodes:(e,n=!0,r)=>{let i=Fi(e),o=i?e:a(e),s=r!==void 0;return o?(r||t.getState().nodes).filter(r=>{let a=t.getState().nodeLookup.get(r.id);if(a&&!i&&(r.id===e.id||!a.internals.positionAbsolute))return!1;let c=Ai(s?r:a),l=Pi(c,o);return n&&l>0||l>=c.width*c.height||l>=o.width*o.height}):[]},isNodeIntersecting:(e,t,n=!0)=>{let r=Fi(e)?e:a(e);if(!r)return!1;let i=Pi(r,t);return n&&i>0||i>=t.width*t.height||i>=r.width*r.height},updateNode:o,updateNodeData:(e,t,n={replace:!1})=>{o(e,e=>{let r=typeof t==`function`?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},updateEdge:s,updateEdgeData:(e,t,n={replace:!1})=>{s(e,e=>{let r=typeof t==`function`?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},getNodesBounds:e=>{let{nodeLookup:n,nodeOrigin:r}=t.getState();return mi(e,{nodeLookup:n,nodeOrigin:r})},getHandleConnections:({type:e,id:n,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}-${e}${n?`-${n}`:``}`)?.values()??[]),getNodeConnections:({type:e,handleId:n,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}${e?n?`-${e}-${n}`:`-${e}`:``}`)?.values()??[]),fitView:async e=>{let r=t.getState().fitViewResolver??Zi();return t.setState({fitViewQueued:!0,fitViewOptions:e,fitViewResolver:r}),n.nodeQueue.push(e=>[...e]),r.promise}}},[]);return(0,w.useMemo)(()=>({...i,...e,viewportInitialized:r}),[r])}var Ys=e=>e.selected,Xs=typeof window<`u`?window:void 0;function Zs({deleteKeyCode:e,multiSelectionKeyCode:t}){let n=$(),{deleteElements:r}=Js(),i=ws(e,{actInsideInputWithModifier:!1}),a=ws(t,{target:Xs});(0,w.useEffect)(()=>{if(i){let{edges:e,nodes:t}=n.getState();r({nodes:t.filter(Ys),edges:e.filter(Ys)}),n.setState({nodesSelectionActive:!1})}},[i]),(0,w.useEffect)(()=>{n.setState({multiSelectionActive:a})},[a])}function Qs(e){let t=$();(0,w.useEffect)(()=>{let n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;let n=ea(e.current);(n.height===0||n.width===0)&&t.getState().onError?.(`004`,Y.error004()),t.setState({width:n.width||500,height:n.height||500})};if(e.current){n(),window.addEventListener(`resize`,n);let t=new ResizeObserver(()=>n());return t.observe(e.current),()=>{window.removeEventListener(`resize`,n),t&&e.current&&t.unobserve(e.current)}}},[])}var $s={position:`absolute`,width:`100%`,height:`100%`,top:0,left:0},ec=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function tc({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panOnScrollSpeed:i=.5,panOnScrollMode:a=ri.Free,zoomOnDoubleClick:o=!0,panOnDrag:s=!0,defaultViewport:c,translateExtent:l,minZoom:u,maxZoom:d,zoomActivationKeyCode:f,preventScrolling:p=!0,children:m,noWheelClassName:h,noPanClassName:g,onViewportChange:_,isControlledViewport:v,paneClickDistance:y,selectionOnDrag:b}){let x=$(),S=(0,w.useRef)(null),{userSelectionActive:C,lib:E,connectionInProgress:D}=Q(ec,Z),O=ws(f),k=(0,w.useRef)();Qs(S);let A=(0,w.useCallback)(e=>{_?.({x:e[0],y:e[1],zoom:e[2]}),v||x.setState({transform:e})},[_,v]);return(0,w.useEffect)(()=>{if(S.current){k.current=Eo({domNode:S.current,minZoom:u,maxZoom:d,translateExtent:l,viewport:c,onDraggingChange:e=>x.setState(t=>t.paneDragging===e?t:{paneDragging:e}),onPanZoomStart:(e,t)=>{let{onViewportChangeStart:n,onMoveStart:r}=x.getState();r?.(e,t),n?.(t)},onPanZoom:(e,t)=>{let{onViewportChange:n,onMove:r}=x.getState();r?.(e,t),n?.(t)},onPanZoomEnd:(e,t)=>{let{onViewportChangeEnd:n,onMoveEnd:r}=x.getState();r?.(e,t),n?.(t)}});let{x:e,y:t,zoom:n}=k.current.getViewport();return x.setState({panZoom:k.current,transform:[e,t,n],domNode:S.current.closest(`.react-flow`)}),()=>{k.current?.destroy()}}},[]),(0,w.useEffect)(()=>{k.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panOnScrollSpeed:i,panOnScrollMode:a,zoomOnDoubleClick:o,panOnDrag:s,zoomActivationKeyPressed:O,preventScrolling:p,noPanClassName:g,userSelectionActive:C,noWheelClassName:h,lib:E,onTransformChange:A,connectionInProgress:D,selectionOnDrag:b,paneClickDistance:y})},[e,t,n,r,i,a,o,s,O,p,g,C,h,E,A,D,b,y]),(0,T.jsx)(`div`,{className:`react-flow__renderer`,ref:S,style:$s,children:m})}var nc=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function rc(){let{userSelectionActive:e,userSelectionRect:t}=Q(nc,Z);return e&&t?(0,T.jsx)(`div`,{className:`react-flow__selection react-flow__container`,style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}var ic=(e,t)=>n=>{n.target===t.current&&e?.(n)},ac=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function oc({isSelecting:e,selectionKeyPressed:t,selectionMode:n=ii.Full,panOnDrag:r,autoPanOnSelection:i,paneClickDistance:a,selectionOnDrag:o,onSelectionStart:s,onSelectionEnd:c,onPaneClick:l,onPaneContextMenu:u,onPaneScroll:d,onPaneMouseEnter:f,onPaneMouseMove:p,onPaneMouseLeave:m,children:h}){let g=(0,w.useRef)(0),_=$(),{userSelectionActive:v,elementsSelectable:y,dragging:b,panBy:x,autoPanSpeed:S}=Q(ac,Z),C=y&&(e||v),D=(0,w.useRef)(null),O=(0,w.useRef)(),k=(0,w.useRef)(new Set),A=(0,w.useRef)(new Set),j=(0,w.useRef)(!1),M=(0,w.useRef)(!1),N=(0,w.useRef)({x:0,y:0}),P=(0,w.useRef)(!1),F=e=>{if(M.current||j.current||_.getState().connection.inProgress){M.current=!1,j.current=!1;return}l?.(e),_.getState().resetSelectedElements(),_.setState({nodesSelectionActive:!1})},I=e=>{if(Array.isArray(r)&&r?.includes(2)){e.preventDefault();return}u?.(e)},L=d?e=>d(e):void 0,R=e=>{M.current&&=(e.stopPropagation(),!1)},z=n=>{let{domNode:r,transform:i}=_.getState();if(O.current=r?.getBoundingClientRect(),!O.current)return;let a=n.target===D.current;if(!a&&n.target.closest(`.nokey`)||!e||!(o&&a||t)||n.button!==0||!n.isPrimary)return;n.target?.setPointerCapture?.(n.pointerId),M.current=!1;let{x:s,y:c}=aa(n.nativeEvent,O.current),l=zi({x:s,y:c},i);_.setState({userSelectionRect:{width:0,height:0,startX:l.x,startY:l.y,x:s,y:c}}),a||(n.stopPropagation(),n.preventDefault())};function B(e,t){let{userSelectionRect:r}=_.getState();if(!r)return;let{transform:i,nodeLookup:a,edgeLookup:o,connectionLookup:s,triggerNodeChanges:c,triggerEdgeChanges:l,defaultEdgeOptions:u}=_.getState(),d={x:r.startX,y:r.startY},{x:f,y:p}=Bi(d,i),m={startX:d.x,startY:d.y,x:e<f?e:f,y:t<p?t:p,width:Math.abs(e-f),height:Math.abs(t-p)},h=k.current,g=A.current;k.current=new Set(gi(a,m,i,n===ii.Partial,!0).map(e=>e.id)),A.current=new Set;let v=u?.selectable??!0;for(let e of k.current){let t=s.get(e);if(t)for(let{edgeId:e}of t.values()){let t=o.get(e);t&&(t.selectable??v)&&A.current.add(e)}}Xi(h,k.current)||c(Ns(a,k.current,!0)),Xi(g,A.current)||l(Ns(o,A.current)),_.setState({userSelectionRect:m,userSelectionActive:!0,nodesSelectionActive:!1})}function V(){if(!i||!O.current)return;let[e,t]=Ei(N.current,O.current,S);x({x:e,y:t}).then(e=>{if(!M.current||!e){g.current=requestAnimationFrame(V);return}let{x:t,y:n}=N.current;B(t,n),g.current=requestAnimationFrame(V)})}let H=()=>{cancelAnimationFrame(g.current),g.current=0,P.current=!1};return(0,w.useEffect)(()=>()=>H(),[]),(0,T.jsxs)(`div`,{className:E([`react-flow__pane`,{draggable:r===!0||Array.isArray(r)&&r.includes(0),dragging:b,selection:e}]),onClick:C?void 0:ic(F,D),onContextMenu:ic(I,D),onWheel:ic(L,D),onPointerEnter:C?void 0:f,onPointerMove:C?e=>{let{userSelectionRect:n,transform:r,resetSelectedElements:i}=_.getState();if(!O.current||!n)return;let{x:o,y:c}=aa(e.nativeEvent,O.current);N.current={x:o,y:c};let l=Bi({x:n.startX,y:n.startY},r);if(!M.current){let n=t?0:a;if(Math.hypot(o-l.x,c-l.y)<=n)return;i(),s?.(e)}M.current=!0,P.current||=(V(),!0),B(o,c)}:p,onPointerUp:e=>{if(!C){e.target===D.current&&_.getState().connection.inProgress&&(j.current=!0);return}e.button===0&&(e.target?.releasePointerCapture?.(e.pointerId),!v&&e.target===D.current&&_.getState().userSelectionRect&&F?.(e),_.setState({userSelectionActive:!1,userSelectionRect:null}),M.current&&(c?.(e),_.setState({nodesSelectionActive:k.current.size>0})),H())},onPointerCancel:C?e=>{e.target?.releasePointerCapture?.(e.pointerId),H()}:void 0,onPointerDownCapture:C?z:void 0,onClickCapture:C?R:void 0,onPointerLeave:m,ref:D,style:$s,children:[h,(0,T.jsx)(rc,{})]})}function sc({id:e,store:t,unselect:n=!1,nodeRef:r}){let{addSelectedNodes:i,unselectNodesAndEdges:a,multiSelectionActive:o,nodeLookup:s,onError:c}=t.getState(),l=s.get(e);if(!l){c?.(`012`,Y.error012(e));return}t.setState({nodesSelectionActive:!1}),l.selected?(n||l.selected&&o)&&(a({nodes:[l],edges:[]}),requestAnimationFrame(()=>r?.current?.blur())):i([e])}function cc({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:i,isSelectable:a,nodeClickDistance:o}){let s=$(),[c,l]=(0,w.useState)(!1),u=(0,w.useRef)();return(0,w.useEffect)(()=>{u.current=eo({getStoreItems:()=>s.getState(),onNodeMouseDown:t=>{sc({id:t,store:s,nodeRef:e})},onDragStart:()=>{l(!0)},onDragStop:()=>{l(!1)}})},[]),(0,w.useEffect)(()=>{if(!(t||!e.current||!u.current))return u.current.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:a,nodeId:i,nodeClickDistance:o}),()=>{u.current?.destroy()}},[n,r,t,a,e,i,o]),c}var lc=e=>t=>t.selected&&(t.draggable||e&&t.draggable===void 0);function uc(){let e=$();return(0,w.useCallback)(t=>{let{nodeExtent:n,snapToGrid:r,snapGrid:i,nodesDraggable:a,onError:o,updateNodePositions:s,nodeLookup:c,nodeOrigin:l}=e.getState(),u=new Map,d=lc(a),f=r?i[0]:5,p=r?i[1]:5,m=t.direction.x*f*t.factor,h=t.direction.y*p*t.factor;for(let[,e]of c){if(!d(e))continue;let t={x:e.internals.positionAbsolute.x+m,y:e.internals.positionAbsolute.y+h};r&&(t=Ri(t,i));let{position:a,positionAbsolute:s}=bi({nodeId:e.id,nextPosition:t,nodeLookup:c,nodeExtent:n,nodeOrigin:l,onError:o});e.position=a,e.internals.positionAbsolute=s,u.set(e.id,e)}s(u)},[])}var dc=(0,w.createContext)(null),fc=dc.Provider;dc.Consumer;var pc=()=>(0,w.useContext)(dc),mc=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),hc=(0,w.createContext)(null);function gc({children:e}){let t=Q(mc,Z);return(0,T.jsx)(hc.Provider,{value:t,children:e})}function _c(){let e=(0,w.useContext)(hc);if(!e)throw Error(`useHandleConfig must be used within a HandleConfigProvider`);return e}var vc={connectingFrom:!1,connectingTo:!1,clickConnecting:!1,isPossibleEndHandle:!0,connectionInProcess:!1,clickConnectionInProcess:!1,valid:!1},yc=(e,t,n)=>r=>{let{connectionClickStartHandle:i,connectionMode:a,connection:o}=r,{fromHandle:s,toHandle:c,isValid:l}=o;if(!s&&!i)return vc;let u=c?.nodeId===e&&c?.id===t&&c?.type===n;return{connectingFrom:s?.nodeId===e&&s?.id===t&&s?.type===n,connectingTo:u,clickConnecting:i?.nodeId===e&&i?.id===t&&i?.type===n,isPossibleEndHandle:a===ni.Strict?s?.type!==n:e!==s?.nodeId||t!==s?.id,connectionInProcess:!!s,clickConnectionInProcess:!!i,valid:u&&l}};function bc({type:e=`source`,position:t=X.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:i=!0,isConnectableEnd:a=!0,id:o,onConnect:s,children:c,className:l,onMouseDown:u,onTouchStart:d,...f},p){let m=o||null,h=e===`target`,g=$(),_=pc(),{connectOnClick:v,noPanClassName:y,rfId:b}=_c(),{connectingFrom:x,connectingTo:S,clickConnecting:C,isPossibleEndHandle:w,connectionInProcess:D,clickConnectionInProcess:O,valid:k}=Q(yc(_,m,e),Z);_||g.getState().onError?.(`010`,Y.error010());let A=e=>{let{defaultEdgeOptions:t,onConnect:n,hasDefaultEdges:r}=g.getState(),i={...t,...e};if(r){let{edges:e,setEdges:t,onError:n}=g.getState();t(Ls(i,e,{onError:n}))}n?.(i),s?.(i)},j=e=>{if(!_)return;let t=ia(e.nativeEvent);if(i&&(t&&e.button===0||!t)){let t=g.getState();uo.onPointerDown(e.nativeEvent,{handleDomNode:e.currentTarget,autoPanOnConnect:t.autoPanOnConnect,connectionMode:t.connectionMode,connectionRadius:t.connectionRadius,domNode:t.domNode,nodeLookup:t.nodeLookup,lib:t.lib,isTarget:h,handleId:m,nodeId:_,flowId:t.rfId,panBy:t.panBy,cancelConnection:t.cancelConnection,onConnectStart:t.onConnectStart,onConnectEnd:(...e)=>g.getState().onConnectEnd?.(...e),updateConnection:t.updateConnection,onConnect:A,isValidConnection:n||((...e)=>g.getState().isValidConnection?.(...e)??!0),getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle,autoPanSpeed:t.autoPanSpeed,dragThreshold:t.connectionDragThreshold})}t?u?.(e):d?.(e)};return(0,T.jsx)(`div`,{"data-handleid":m,"data-nodeid":_,"data-handlepos":t,"data-id":`${b}-${_}-${m}-${e}`,className:E([`react-flow__handle`,`react-flow__handle-${t}`,`nodrag`,y,l,{source:!h,target:h,connectable:r,connectablestart:i,connectableend:a,clickconnecting:C,connectingfrom:x,connectingto:S,valid:k,connectionindicator:r&&(!D||w)&&(D||O?a:i)}]),onMouseDown:j,onTouchStart:j,onClick:v?t=>{let{onClickConnectStart:r,onClickConnectEnd:a,connectionClickStartHandle:o,connectionMode:s,isValidConnection:c,lib:l,rfId:u,nodeLookup:d,connection:f}=g.getState();if(!_||!o&&!i)return;if(!o){r?.(t.nativeEvent,{nodeId:_,handleId:m,handleType:e}),g.setState({connectionClickStartHandle:{nodeId:_,type:e,id:m}});return}let p=ta(t.target),h=n||c,{connection:v,isValid:y}=uo.isValid(t.nativeEvent,{handle:{nodeId:_,id:m,type:e},connectionMode:s,fromNodeId:o.nodeId,fromHandleId:o.id||null,fromType:o.type,isValidConnection:h,flowId:u,doc:p,lib:l,nodeLookup:d});y&&v&&A(v);let b=structuredClone(f);delete b.inProgress,b.toPosition=b.toHandle?b.toHandle.position:null,a?.(t,b),g.setState({connectionClickStartHandle:null})}:void 0,ref:p,...f,children:c})}var xc=(0,w.memo)(Bs(bc));function Sc({data:e,isConnectable:t,sourcePosition:n=X.Bottom}){return(0,T.jsxs)(T.Fragment,{children:[e?.label,(0,T.jsx)(xc,{type:`source`,position:n,isConnectable:t})]})}function Cc({data:e,isConnectable:t,targetPosition:n=X.Top,sourcePosition:r=X.Bottom}){return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(xc,{type:`target`,position:n,isConnectable:t}),e?.label,(0,T.jsx)(xc,{type:`source`,position:r,isConnectable:t})]})}function wc(){return null}function Tc({data:e,isConnectable:t,targetPosition:n=X.Top}){return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(xc,{type:`target`,position:n,isConnectable:t}),e?.label]})}var Ec={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},Dc={input:Sc,default:Cc,output:Tc,group:wc};function Oc(e){return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??e.style?.width,height:e.height??e.initialHeight??e.style?.height}:{width:e.width??e.style?.width,height:e.height??e.style?.height}}var kc=e=>{let{width:t,height:n,x:r,y:i}=hi(e.nodeLookup,{filter:e=>!!e.selected});return{width:Ii(t)?t:null,height:Ii(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${i}px)`}};function Ac({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){let r=$(),{width:i,height:a,transformString:o,userSelectionActive:s}=Q(kc,Z),c=uc(),l=(0,w.useRef)(null);(0,w.useEffect)(()=>{n||l.current?.focus({preventScroll:!0})},[n]);let u=!s&&i!==null&&a!==null;if(cc({nodeRef:l,disabled:!u}),!u)return null;let d=e?t=>{e(t,r.getState().nodes.filter(e=>e.selected))}:void 0;return(0,T.jsx)(`div`,{className:E([`react-flow__nodesselection`,`react-flow__container`,t]),style:{transform:o},children:(0,T.jsx)(`div`,{ref:l,className:`react-flow__nodesselection-rect`,onContextMenu:d,tabIndex:n?void 0:-1,onKeyDown:n?void 0:e=>{Object.prototype.hasOwnProperty.call(Ec,e.key)&&(e.preventDefault(),c({direction:Ec[e.key],factor:e.shiftKey?4:1}))},style:{width:i,height:a}})})}var jc=typeof window<`u`?window:void 0,Mc=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function Nc({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,paneClickDistance:s,deleteKeyCode:c,selectionKeyCode:l,selectionOnDrag:u,selectionMode:d,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:m,panActivationKeyCode:h,zoomActivationKeyCode:g,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:b,panOnScrollSpeed:x,panOnScrollMode:S,zoomOnDoubleClick:C,panOnDrag:w,autoPanOnSelection:E,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,preventScrolling:j,onSelectionContextMenu:M,noWheelClassName:N,noPanClassName:P,disableKeyboardA11y:F,onViewportChange:I,isControlledViewport:L}){let{nodesSelectionActive:R,userSelectionActive:z}=Q(Mc,Z),B=ws(l,{target:jc}),V=ws(h,{target:jc}),H=V||w,U=V||b,W=u&&H!==!0,G=B||z||W;return Zs({deleteKeyCode:c,multiSelectionKeyCode:m}),(0,T.jsx)(tc,{onPaneContextMenu:a,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:U,panOnScrollSpeed:x,panOnScrollMode:S,zoomOnDoubleClick:C,panOnDrag:!B&&H,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,zoomActivationKeyCode:g,preventScrolling:j,noWheelClassName:N,noPanClassName:P,onViewportChange:I,isControlledViewport:L,paneClickDistance:s,selectionOnDrag:W,children:(0,T.jsxs)(oc,{onSelectionStart:f,onSelectionEnd:p,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,panOnDrag:H,autoPanOnSelection:E,isSelecting:!!G,selectionMode:d,selectionKeyPressed:B,paneClickDistance:s,selectionOnDrag:W,children:[e,R&&(0,T.jsx)(Ac,{onSelectionContextMenu:M,noPanClassName:P,disableKeyboardA11y:F})]})})}Nc.displayName=`FlowRenderer`;var Pc=(0,w.memo)(Nc),Fc=e=>t=>e?gi(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(e=>e.id):Array.from(t.nodeLookup.keys());function Ic(e){return Q((0,w.useCallback)(Fc(e),[e]),Z)}var Lc=e=>e.updateNodeInternals;function Rc(){let e=Q(Lc),[t]=(0,w.useState)(()=>typeof ResizeObserver>`u`?null:new ResizeObserver(t=>{let n=new Map;t.forEach(e=>{let t=e.target.getAttribute(`data-id`);n.set(t,{id:t,nodeElement:e.target,force:!0})}),e(n)}));return(0,w.useEffect)(()=>()=>{t?.disconnect()},[t]),t}function zc({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){let i=$(),a=(0,w.useRef)(null),o=(0,w.useRef)(null),s=(0,w.useRef)(e.sourcePosition),c=(0,w.useRef)(e.targetPosition),l=(0,w.useRef)(t),u=n&&!!e.internals.handleBounds;return(0,w.useEffect)(()=>{a.current&&!e.hidden&&(!u||o.current!==a.current)&&(o.current&&r?.unobserve(o.current),r?.observe(a.current),o.current=a.current)},[u,e.hidden]),(0,w.useEffect)(()=>()=>{o.current&&=(r?.unobserve(o.current),null)},[]),(0,w.useEffect)(()=>{if(a.current){let n=l.current!==t,r=s.current!==e.sourcePosition,o=c.current!==e.targetPosition;(n||r||o)&&(l.current=t,s.current=e.sourcePosition,c.current=e.targetPosition,i.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:a.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),a}function Bc({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:i,onContextMenu:a,onDoubleClick:o,nodesDraggable:s,elementsSelectable:c,nodesConnectable:l,nodesFocusable:u,resizeObserver:d,noDragClassName:f,noPanClassName:p,disableKeyboardA11y:m,rfId:h,nodeTypes:g,nodeClickDistance:_,onError:v}){let{node:y,internals:b,isParent:x}=Q(t=>{let n=t.nodeLookup.get(e),r=t.parentLookup.has(e);return{node:n,internals:n.internals,isParent:r}},Z),S=y.type||`default`,C=g?.[S]||Dc[S];C===void 0&&(v?.(`003`,Y.error003(S)),S=`default`,C=g?.default||Dc.default);let w=!!(y.draggable||s&&y.draggable===void 0),D=!!(y.selectable||c&&y.selectable===void 0),O=!!(y.connectable||l&&y.connectable===void 0),k=!!(y.focusable||u&&y.focusable===void 0),A=$(),j=Ji(y),M=zc({node:y,nodeType:S,hasDimensions:j,resizeObserver:d}),N=cc({nodeRef:M,disabled:y.hidden||!w,noDragClassName:f,handleSelector:y.dragHandle,nodeId:e,isSelectable:D,nodeClickDistance:_}),P=uc();if(y.hidden)return null;let F=qi(y),I=Oc(y),L=D||w||t||n||r||i,R=n?e=>n(e,{...b.userNode}):void 0,z=r?e=>r(e,{...b.userNode}):void 0,B=i?e=>i(e,{...b.userNode}):void 0,V=a?e=>a(e,{...b.userNode}):void 0,H=o?e=>o(e,{...b.userNode}):void 0,U=n=>{let{selectNodesOnDrag:r,nodeDragThreshold:i}=A.getState();D&&(!r||!w||i>0)&&sc({id:e,store:A,nodeRef:M}),t&&t(n,{...b.userNode})},W=t=>{if(!(ra(t.nativeEvent)||m)){if(ei.includes(t.key)&&D){let n=t.key===`Escape`;sc({id:e,store:A,unselect:n,nodeRef:M})}else if(w&&y.selected&&Object.prototype.hasOwnProperty.call(Ec,t.key)){t.preventDefault();let{ariaLabelConfig:e}=A.getState();A.setState({ariaLiveMessage:e[`node.a11yDescription.ariaLiveMessage`]({direction:t.key.replace(`Arrow`,``).toLowerCase(),x:~~b.positionAbsolute.x,y:~~b.positionAbsolute.y})}),P({direction:Ec[t.key],factor:t.shiftKey?4:1})}}},G=()=>{if(m||!M.current?.matches(`:focus-visible`))return;let{transform:t,width:n,height:r,autoPanOnNodeFocus:i,setCenter:a}=A.getState();i&&(gi(new Map([[e,y]]),{x:0,y:0,width:n,height:r},t,!0).length>0||a(y.position.x+F.width/2,y.position.y+F.height/2,{zoom:t[2]}))};return(0,T.jsx)(`div`,{className:E([`react-flow__node`,`react-flow__node-${S}`,{[p]:w},y.className,{selected:y.selected,selectable:D,parent:x,draggable:w,dragging:N}]),ref:M,style:{zIndex:b.z,transform:`translate(${b.positionAbsolute.x}px,${b.positionAbsolute.y}px)`,pointerEvents:L?`all`:`none`,visibility:j?`visible`:`hidden`,...y.style,...I},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:R,onMouseMove:z,onMouseLeave:B,onContextMenu:V,onClick:U,onDoubleClick:H,onKeyDown:k?W:void 0,tabIndex:k?0:void 0,onFocus:k?G:void 0,role:y.ariaRole??(k?`group`:void 0),"aria-roledescription":`node`,"aria-describedby":m?void 0:`${$o}-${h}`,"aria-label":y.ariaLabel,...y.domAttributes,children:(0,T.jsx)(fc,{value:e,children:(0,T.jsx)(C,{id:e,data:y.data,type:S,positionAbsoluteX:b.positionAbsolute.x,positionAbsoluteY:b.positionAbsolute.y,selected:y.selected??!1,selectable:D,draggable:w,deletable:y.deletable??!0,isConnectable:O,sourcePosition:y.sourcePosition,targetPosition:y.targetPosition,dragging:N,dragHandle:y.dragHandle,zIndex:b.z,parentId:y.parentId,...F})})})}var Vc=(0,w.memo)(Bc),Hc=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function Uc(e){let{nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:i,onError:a}=Q(Hc,Z),o=Ic(e.onlyRenderVisibleElements),s=Rc();return(0,T.jsx)(`div`,{className:`react-flow__nodes`,style:$s,children:o.map(o=>(0,T.jsx)(Vc,{id:o,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:s,nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:i,nodeClickDistance:e.nodeClickDistance,onError:a},o))})}Uc.displayName=`NodeRenderer`;var Wc=(0,w.memo)(Uc);function Gc(e){return Q((0,w.useCallback)(t=>{if(!e)return t.edges.map(e=>e.id);let n=[];if(t.width&&t.height)for(let e of t.edges){let r=t.nodeLookup.get(e.source),i=t.nodeLookup.get(e.target);r&&i&&pa({sourceNode:r,targetNode:i,width:t.width,height:t.height,transform:t.transform})&&n.push(e.id)}return n},[e]),Z)}var Kc=({color:e=`none`,strokeWidth:t=1})=>(0,T.jsx)(`polyline`,{className:`arrow`,style:{strokeWidth:t,...e&&{stroke:e}},strokeLinecap:`round`,fill:`none`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4`}),qc=({color:e=`none`,strokeWidth:t=1})=>(0,T.jsx)(`polyline`,{className:`arrowclosed`,style:{strokeWidth:t,...e&&{stroke:e,fill:e}},strokeLinecap:`round`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4 -5,-4`}),Jc={[si.Arrow]:Kc,[si.ArrowClosed]:qc};function Yc(e){let t=$();return(0,w.useMemo)(()=>Object.prototype.hasOwnProperty.call(Jc,e)?Jc[e]:(t.getState().onError?.(`009`,Y.error009(e)),null),[e])}var Xc=({id:e,type:t,color:n,width:r=12.5,height:i=12.5,markerUnits:a=`strokeWidth`,strokeWidth:o,orient:s=`auto-start-reverse`})=>{let c=Yc(t);return c?(0,T.jsx)(`marker`,{className:`react-flow__arrowhead`,id:e,markerWidth:`${r}`,markerHeight:`${i}`,viewBox:`-10 -10 20 20`,markerUnits:a,orient:s,refX:`0`,refY:`0`,children:(0,T.jsx)(c,{color:n,strokeWidth:o})}):null},Zc=({defaultColor:e,rfId:t})=>{let n=Q(e=>e.edges),r=Q(e=>e.defaultEdgeOptions),i=(0,w.useMemo)(()=>Aa(n,{id:t,defaultColor:e,defaultMarkerStart:r?.markerStart,defaultMarkerEnd:r?.markerEnd}),[n,r,t,e]);return i.length?(0,T.jsx)(`svg`,{className:`react-flow__marker`,"aria-hidden":`true`,children:(0,T.jsx)(`defs`,{children:i.map(e=>(0,T.jsx)(Xc,{id:e.id,type:e.type,color:e.color,width:e.width,height:e.height,markerUnits:e.markerUnits,strokeWidth:e.strokeWidth,orient:e.orient},e.id))})}):null};Zc.displayName=`MarkerDefinitions`;var Qc=(0,w.memo)(Zc);function $c({x:e,y:t,label:n,labelStyle:r,labelShowBg:i=!0,labelBgStyle:a,labelBgPadding:o=[2,4],labelBgBorderRadius:s=2,children:c,className:l,...u}){let[d,f]=(0,w.useState)({x:1,y:0,width:0,height:0}),p=E([`react-flow__edge-textwrapper`,l]),m=(0,w.useRef)(null);return(0,w.useEffect)(()=>{if(m.current){let e=m.current.getBBox();f({x:e.x,y:e.y,width:e.width,height:e.height})}},[n]),n?(0,T.jsxs)(`g`,{transform:`translate(${e-d.width/2} ${t-d.height/2})`,className:p,visibility:d.width?`visible`:`hidden`,...u,children:[i&&(0,T.jsx)(`rect`,{width:d.width+2*o[0],x:-o[0],y:-o[1],height:d.height+2*o[1],className:`react-flow__edge-textbg`,style:a,rx:s,ry:s}),(0,T.jsx)(`text`,{className:`react-flow__edge-text`,y:d.height/2,dy:`0.3em`,ref:m,style:r,children:n}),c]}):null}$c.displayName=`EdgeText`;var el=(0,w.memo)($c);function tl({path:e,labelX:t,labelY:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c,interactionWidth:l=20,...u}){return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(`path`,{...u,d:e,fill:`none`,className:E([`react-flow__edge-path`,u.className])}),l?(0,T.jsx)(`path`,{d:e,fill:`none`,strokeOpacity:0,strokeWidth:l,className:`react-flow__edge-interaction`}):null,r&&Ii(t)&&Ii(n)?(0,T.jsx)(el,{x:t,y:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c}):null]})}function nl({pos:e,x1:t,y1:n,x2:r,y2:i}){return e===X.Left||e===X.Right?[.5*(t+r),n]:[t,.5*(n+i)]}function rl({sourceX:e,sourceY:t,sourcePosition:n=X.Bottom,targetX:r,targetY:i,targetPosition:a=X.Top}){let[o,s]=nl({pos:n,x1:e,y1:t,x2:r,y2:i}),[c,l]=nl({pos:a,x1:r,y1:i,x2:e,y2:t}),[u,d,f,p]=sa({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:o,sourceControlY:s,targetControlX:c,targetControlY:l});return[`M${e},${t} C${o},${s} ${c},${l} ${r},${i}`,u,d,f,p]}function il(e){return(0,w.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o,targetPosition:s,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:_})=>{let[v,y,b]=rl({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s});return(0,T.jsx)(tl,{id:e.isInternal?void 0:t,path:v,labelX:y,labelY:b,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:_})})}var al=il({isInternal:!1}),ol=il({isInternal:!0});al.displayName=`SimpleBezierEdge`,ol.displayName=`SimpleBezierEdgeInternal`;function sl(e){return(0,w.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,sourcePosition:p=X.Bottom,targetPosition:m=X.Top,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,b,x]=Ca({sourceX:n,sourceY:r,sourcePosition:p,targetX:i,targetY:a,targetPosition:m,borderRadius:_?.borderRadius,offset:_?.offset,stepPosition:_?.stepPosition});return(0,T.jsx)(tl,{id:e.isInternal?void 0:t,path:y,labelX:b,labelY:x,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:h,markerStart:g,interactionWidth:v})})}var cl=sl({isInternal:!1}),ll=sl({isInternal:!0});cl.displayName=`SmoothStepEdge`,ll.displayName=`SmoothStepEdgeInternal`;function ul(e){return(0,w.memo)(({id:t,...n})=>{let r=e.isInternal?void 0:t;return(0,T.jsx)(cl,{...n,id:r,pathOptions:(0,w.useMemo)(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}var dl=ul({isInternal:!1}),fl=ul({isInternal:!0});dl.displayName=`StepEdge`,fl.displayName=`StepEdgeInternal`;function pl(e){return(0,w.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:m,interactionWidth:h})=>{let[g,_,v]=_a({sourceX:n,sourceY:r,targetX:i,targetY:a});return(0,T.jsx)(tl,{id:e.isInternal?void 0:t,path:g,labelX:_,labelY:v,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:m,interactionWidth:h})})}var ml=pl({isInternal:!1}),hl=pl({isInternal:!0});ml.displayName=`StraightEdge`,hl.displayName=`StraightEdgeInternal`;function gl(e){return(0,w.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o=X.Bottom,targetPosition:s=X.Top,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,b,x]=ua({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s,curvature:_?.curvature});return(0,T.jsx)(tl,{id:e.isInternal?void 0:t,path:y,labelX:b,labelY:x,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:v})})}var _l=gl({isInternal:!1}),vl=gl({isInternal:!0});_l.displayName=`BezierEdge`,vl.displayName=`BezierEdgeInternal`;var yl={default:vl,straight:hl,step:fl,smoothstep:ll,simplebezier:ol},bl={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},xl=(e,t,n)=>n===X.Left?e-t:n===X.Right?e+t:e,Sl=(e,t,n)=>n===X.Top?e-t:n===X.Bottom?e+t:e,Cl=`react-flow__edgeupdater`;function wl({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:i,onMouseEnter:a,onMouseOut:o,type:s}){return(0,T.jsx)(`circle`,{onMouseDown:i,onMouseEnter:a,onMouseOut:o,className:E([Cl,`${Cl}-${s}`]),cx:xl(t,r,e),cy:Sl(n,r,e),r,stroke:`transparent`,fill:`transparent`})}function Tl({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:i,targetX:a,targetY:o,sourcePosition:s,targetPosition:c,onReconnect:l,onReconnectStart:u,onReconnectEnd:d,setReconnecting:f,setUpdateHover:p}){let m=$(),h=(e,t)=>{if(e.button!==0)return;let{autoPanOnConnect:r,domNode:i,connectionMode:a,connectionRadius:o,lib:s,onConnectStart:c,cancelConnection:p,nodeLookup:h,rfId:g,panBy:_,updateConnection:v}=m.getState(),y=t.type===`target`;uo.onPointerDown(e.nativeEvent,{autoPanOnConnect:r,connectionMode:a,connectionRadius:o,domNode:i,handleId:t.id,nodeId:t.nodeId,nodeLookup:h,isTarget:y,edgeUpdaterType:t.type,lib:s,flowId:g,cancelConnection:p,panBy:_,isValidConnection:(...e)=>m.getState().isValidConnection?.(...e)??!0,onConnect:e=>l?.(n,e),onConnectStart:(r,i)=>{f(!0),u?.(e,n,t.type),c?.(r,i)},onConnectEnd:(...e)=>m.getState().onConnectEnd?.(...e),onReconnectEnd:(e,r)=>{f(!1),d?.(e,n,t.type,r)},updateConnection:v,getTransform:()=>m.getState().transform,getFromHandle:()=>m.getState().connection.fromHandle,dragThreshold:m.getState().connectionDragThreshold,handleDomNode:e.currentTarget})},g=e=>h(e,{nodeId:n.target,id:n.targetHandle??null,type:`target`}),_=e=>h(e,{nodeId:n.source,id:n.sourceHandle??null,type:`source`}),v=()=>p(!0),y=()=>p(!1);return(0,T.jsxs)(T.Fragment,{children:[(e===!0||e===`source`)&&(0,T.jsx)(wl,{position:s,centerX:r,centerY:i,radius:t,onMouseDown:g,onMouseEnter:v,onMouseOut:y,type:`source`}),(e===!0||e===`target`)&&(0,T.jsx)(wl,{position:c,centerX:a,centerY:o,radius:t,onMouseDown:_,onMouseEnter:v,onMouseOut:y,type:`target`})]})}function El({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:i,onDoubleClick:a,onContextMenu:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,rfId:m,edgeTypes:h,noPanClassName:g,onError:_,disableKeyboardA11y:v}){let y=Q(t=>t.edgeLookup.get(e)),b=Q(e=>e.defaultEdgeOptions);y=b?{...b,...y}:y;let x=y.type||`default`,S=h?.[x]||yl[x];S===void 0&&(_?.(`011`,Y.error011(x)),x=`default`,S=h?.default||yl.default);let C=!!(y.focusable||t&&y.focusable===void 0),D=d!==void 0&&(y.reconnectable||n&&y.reconnectable===void 0),O=!!(y.selectable||r&&y.selectable===void 0),k=(0,w.useRef)(null),[A,j]=(0,w.useState)(!1),[M,N]=(0,w.useState)(!1),P=$(),{zIndex:F=y.zIndex,sourceX:I,sourceY:L,targetX:R,targetY:z,sourcePosition:B,targetPosition:V}=Q((0,w.useCallback)(t=>{let n=t.nodeLookup.get(y.source),r=t.nodeLookup.get(y.target);if(!n||!r)return bl;let i=Ta({id:e,sourceNode:n,targetNode:r,sourceHandle:y.sourceHandle||null,targetHandle:y.targetHandle||null,connectionMode:t.connectionMode,onError:_}),a=fa({selected:y.selected,zIndex:y.zIndex,sourceNode:n,targetNode:r,elevateOnSelect:t.elevateEdgesOnSelect,zIndexMode:t.zIndexMode});return{...i||bl,zIndex:a}},[y.source,y.target,y.sourceHandle,y.targetHandle,y.selected,y.zIndex]),Z),H=(0,w.useMemo)(()=>y.markerStart?`url('#${ka(y.markerStart,m)}')`:void 0,[y.markerStart,m]),U=(0,w.useMemo)(()=>y.markerEnd?`url('#${ka(y.markerEnd,m)}')`:void 0,[y.markerEnd,m]);if(y.hidden||I===null||L===null||R===null||z===null)return null;let W=t=>{let{addSelectedEdges:n,unselectNodesAndEdges:r,multiSelectionActive:a}=P.getState();O&&(P.setState({nodesSelectionActive:!1}),y.selected&&a?(r({nodes:[],edges:[y]}),k.current?.blur()):n([e])),i&&i(t,y)},G=a?e=>{a(e,{...y})}:void 0,ee=o?e=>{o(e,{...y})}:void 0,te=s?e=>{s(e,{...y})}:void 0,ne=c?e=>{c(e,{...y})}:void 0,re=l?e=>{l(e,{...y})}:void 0;return(0,T.jsx)(`svg`,{style:{zIndex:F},children:(0,T.jsxs)(`g`,{className:E([`react-flow__edge`,`react-flow__edge-${x}`,y.className,g,{selected:y.selected,animated:y.animated,inactive:!O&&!i,updating:A,selectable:O}]),onClick:W,onDoubleClick:G,onContextMenu:ee,onMouseEnter:te,onMouseMove:ne,onMouseLeave:re,onKeyDown:C?t=>{if(!v&&ei.includes(t.key)&&O){let{unselectNodesAndEdges:n,addSelectedEdges:r}=P.getState();t.key===`Escape`?(k.current?.blur(),n({edges:[y]})):r([e])}}:void 0,tabIndex:C?0:void 0,role:y.ariaRole??(C?`group`:`img`),"aria-roledescription":`edge`,"data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":y.ariaLabel===null?void 0:y.ariaLabel||`Edge from ${y.source} to ${y.target}`,"aria-describedby":C?`${es}-${m}`:void 0,ref:k,...y.domAttributes,children:[!M&&(0,T.jsx)(S,{id:e,source:y.source,target:y.target,type:y.type,selected:y.selected,animated:y.animated,selectable:O,deletable:y.deletable??!0,label:y.label,labelStyle:y.labelStyle,labelShowBg:y.labelShowBg,labelBgStyle:y.labelBgStyle,labelBgPadding:y.labelBgPadding,labelBgBorderRadius:y.labelBgBorderRadius,sourceX:I,sourceY:L,targetX:R,targetY:z,sourcePosition:B,targetPosition:V,data:y.data,style:y.style,sourceHandleId:y.sourceHandle,targetHandleId:y.targetHandle,markerStart:H,markerEnd:U,pathOptions:`pathOptions`in y?y.pathOptions:void 0,interactionWidth:y.interactionWidth}),D&&(0,T.jsx)(Tl,{edge:y,isReconnectable:D,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,sourceX:I,sourceY:L,targetX:R,targetY:z,sourcePosition:B,targetPosition:V,setUpdateHover:j,setReconnecting:N})]})})}var Dl=(0,w.memo)(El),Ol=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function kl({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:i,onReconnect:a,onEdgeContextMenu:o,onEdgeMouseEnter:s,onEdgeMouseMove:c,onEdgeMouseLeave:l,onEdgeClick:u,reconnectRadius:d,onEdgeDoubleClick:f,onReconnectStart:p,onReconnectEnd:m,disableKeyboardA11y:h}){let{edgesFocusable:g,edgesReconnectable:_,elementsSelectable:v,onError:y}=Q(Ol,Z),b=Gc(t);return(0,T.jsxs)(`div`,{className:`react-flow__edges`,children:[(0,T.jsx)(Qc,{defaultColor:e,rfId:n}),b.map(e=>(0,T.jsx)(Dl,{id:e,edgesFocusable:g,edgesReconnectable:_,elementsSelectable:v,noPanClassName:i,onReconnect:a,onContextMenu:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,onClick:u,reconnectRadius:d,onDoubleClick:f,onReconnectStart:p,onReconnectEnd:m,rfId:n,onError:y,edgeTypes:r,disableKeyboardA11y:h},e))]})}kl.displayName=`EdgeRenderer`;var Al=(0,w.memo)(kl),jl=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function Ml({children:e}){return(0,T.jsx)(`div`,{className:`react-flow__viewport xyflow__viewport react-flow__container`,style:{transform:Q(jl)},children:e})}function Nl(e){let t=Js(),n=(0,w.useRef)(!1);(0,w.useEffect)(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}var Pl=e=>e.panZoom?.syncViewport;function Fl(e){let t=Q(Pl),n=$();return(0,w.useEffect)(()=>{e&&(t?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function Il(e){return e.connection.inProgress?{...e.connection,to:zi(e.connection.to,e.transform)}:{...e.connection}}function Ll(e){return e?t=>e(Il(t)):Il}function Rl(e){return Q(Ll(e),Z)}var zl=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function Bl({containerStyle:e,style:t,type:n,component:r}){let{nodesConnectable:i,width:a,height:o,isValid:s,inProgress:c}=Q(zl,Z);return a&&i&&c?(0,T.jsx)(`svg`,{style:e,width:a,height:o,className:`react-flow__connectionline react-flow__container`,children:(0,T.jsx)(`g`,{className:E([`react-flow__connection`,li(s)]),children:(0,T.jsx)(Vl,{style:t,type:n,CustomComponent:r,isValid:s})})}):null}var Vl=({style:e,type:t=oi.Bezier,CustomComponent:n,isValid:r})=>{let{inProgress:i,from:a,fromNode:o,fromHandle:s,fromPosition:c,to:l,toNode:u,toHandle:d,toPosition:f,pointer:p}=Rl();if(!i)return;if(n)return(0,T.jsx)(n,{connectionLineType:t,connectionLineStyle:e,fromNode:o,fromHandle:s,fromX:a.x,fromY:a.y,toX:l.x,toY:l.y,fromPosition:c,toPosition:f,connectionStatus:li(r),toNode:u,toHandle:d,pointer:p});let m=``,h={sourceX:a.x,sourceY:a.y,sourcePosition:c,targetX:l.x,targetY:l.y,targetPosition:f};switch(t){case oi.Bezier:[m]=ua(h);break;case oi.SimpleBezier:[m]=rl(h);break;case oi.Step:[m]=Ca({...h,borderRadius:0});break;case oi.SmoothStep:[m]=Ca(h);break;default:[m]=_a(h)}return(0,T.jsx)(`path`,{d:m,fill:`none`,className:`react-flow__connection-path`,style:e})};Vl.displayName=`ConnectionLine`;var Hl={};function Ul(e=Hl){(0,w.useRef)(e),$(),(0,w.useEffect)(()=>{},[e])}function Wl(){$(),(0,w.useRef)(!1),(0,w.useEffect)(()=>{},[])}function Gl({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:i,onNodeDoubleClick:a,onEdgeDoubleClick:o,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,onSelectionContextMenu:d,onSelectionStart:f,onSelectionEnd:p,connectionLineType:m,connectionLineStyle:h,connectionLineComponent:g,connectionLineContainerStyle:_,selectionKeyCode:v,selectionOnDrag:y,selectionMode:b,multiSelectionKeyCode:x,panActivationKeyCode:S,zoomActivationKeyCode:C,deleteKeyCode:w,onlyRenderVisibleElements:E,elementsSelectable:D,defaultViewport:O,translateExtent:k,minZoom:A,maxZoom:j,preventScrolling:M,defaultMarkerColor:N,zoomOnScroll:P,zoomOnPinch:F,panOnScroll:I,panOnScrollSpeed:L,panOnScrollMode:R,zoomOnDoubleClick:z,panOnDrag:B,autoPanOnSelection:V,onPaneClick:H,onPaneMouseEnter:U,onPaneMouseMove:W,onPaneMouseLeave:G,onPaneScroll:ee,onPaneContextMenu:te,paneClickDistance:ne,nodeClickDistance:re,onEdgeContextMenu:ie,onEdgeMouseEnter:ae,onEdgeMouseMove:oe,onEdgeMouseLeave:se,reconnectRadius:ce,onReconnect:le,onReconnectStart:ue,onReconnectEnd:de,noDragClassName:fe,noWheelClassName:pe,noPanClassName:me,disableKeyboardA11y:he,nodeExtent:ge,rfId:_e,viewport:ve,onViewportChange:ye}){return Ul(e),Ul(t),Wl(),Nl(n),Fl(ve),(0,T.jsx)(Pc,{onPaneClick:H,onPaneMouseEnter:U,onPaneMouseMove:W,onPaneMouseLeave:G,onPaneContextMenu:te,onPaneScroll:ee,paneClickDistance:ne,deleteKeyCode:w,selectionKeyCode:v,selectionOnDrag:y,selectionMode:b,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:x,panActivationKeyCode:S,zoomActivationKeyCode:C,elementsSelectable:D,zoomOnScroll:P,zoomOnPinch:F,zoomOnDoubleClick:z,panOnScroll:I,panOnScrollSpeed:L,panOnScrollMode:R,panOnDrag:B,autoPanOnSelection:V,defaultViewport:O,translateExtent:k,minZoom:A,maxZoom:j,onSelectionContextMenu:d,preventScrolling:M,noDragClassName:fe,noWheelClassName:pe,noPanClassName:me,disableKeyboardA11y:he,onViewportChange:ye,isControlledViewport:!!ve,children:(0,T.jsxs)(Ml,{children:[(0,T.jsx)(Al,{edgeTypes:t,onEdgeClick:i,onEdgeDoubleClick:o,onReconnect:le,onReconnectStart:ue,onReconnectEnd:de,onlyRenderVisibleElements:E,onEdgeContextMenu:ie,onEdgeMouseEnter:ae,onEdgeMouseMove:oe,onEdgeMouseLeave:se,reconnectRadius:ce,defaultMarkerColor:N,noPanClassName:me,disableKeyboardA11y:he,rfId:_e}),(0,T.jsx)(Bl,{style:h,type:m,component:g,containerStyle:_}),(0,T.jsx)(`div`,{className:`react-flow__edgelabel-renderer`}),(0,T.jsx)(Wc,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:a,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,nodeClickDistance:re,onlyRenderVisibleElements:E,noPanClassName:me,noDragClassName:fe,disableKeyboardA11y:he,nodeExtent:ge,rfId:_e}),(0,T.jsx)(`div`,{className:`react-flow__viewport-portal`})]})})}Gl.displayName=`GraphView`;var Kl=(0,w.memo)(Gl),ql=Li(`React Flow`,`https://reactflow.dev/`),Jl=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c=.5,maxZoom:l=2,nodeOrigin:u,nodeExtent:d,zIndexMode:f=`basic`}={})=>{let p=new Map,m=new Map,h=new Map,g=new Map,_=r??t??[],v=n??e??[],y=u??[0,0],b=d??$r;Ja(h,g,_);let{nodesInitialized:x}=za(v,p,m,{nodeOrigin:y,nodeExtent:b,zIndexMode:f}),S=[0,0,1];if(o&&i&&a){let{x:e,y:t,zoom:n}=Wi(hi(p,{filter:e=>!!((e.width||e.initialWidth)&&(e.height||e.initialHeight))}),i,a,c,l,s?.padding??.1);S=[e,t,n]}return{rfId:`1`,width:i??0,height:a??0,transform:S,nodes:v,nodesInitialized:x,nodeLookup:p,parentLookup:m,edges:_,edgeLookup:g,connectionLookup:h,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:c,maxZoom:l,translateExtent:$r,nodeExtent:b,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:ni.Strict,domNode:null,paneDragging:!1,noPanClassName:`nopan`,nodeOrigin:y,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:o??!1,fitViewOptions:s,fitViewResolver:null,connection:{...ai},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:``,autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:ql,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:`react`,debug:!1,ariaLabelConfig:ti,zIndexMode:f,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},Yl=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c,maxZoom:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f})=>qo((p,m)=>{async function h(){let{nodeLookup:e,panZoom:t,fitViewOptions:n,fitViewResolver:r,width:i,height:a,minZoom:o,maxZoom:s}=m();t&&(await yi({nodes:e,width:i,height:a,panZoom:t,minZoom:o,maxZoom:s},n),r?.resolve(!0),p({fitViewResolver:null}))}return{...Jl({nodes:e,edges:t,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c,maxZoom:l,nodeOrigin:u,nodeExtent:d,defaultNodes:n,defaultEdges:r,zIndexMode:f}),setNodes:e=>{let{nodeLookup:t,parentLookup:n,nodeOrigin:r,elevateNodesOnSelect:i,fitViewQueued:a,zIndexMode:o,nodesSelectionActive:s}=m(),{nodesInitialized:c,hasSelectedNodes:l}=za(e,t,n,{nodeOrigin:r,nodeExtent:d,elevateNodesOnSelect:i,checkEquality:!0,zIndexMode:o}),u=s&&l;a&&c?(h(),p({nodes:e,nodesInitialized:c,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:u})):p({nodes:e,nodesInitialized:c,nodesSelectionActive:u})},setEdges:e=>{let{connectionLookup:t,edgeLookup:n}=m();Ja(t,n,e),p({edges:e})},setDefaultNodesAndEdges:(e,t)=>{if(e){let{setNodes:t}=m();t(e),p({hasDefaultNodes:!0})}if(t){let{setEdges:e}=m();e(t),p({hasDefaultEdges:!0})}},updateNodeInternals:e=>{let{triggerNodeChanges:t,nodeLookup:n,parentLookup:r,domNode:i,nodeOrigin:a,nodeExtent:o,debug:s,fitViewQueued:c,zIndexMode:l}=m(),{changes:u,updatedInternals:d}=Ga(e,n,r,i,a,o,l);d&&(Ia(n,r,{nodeOrigin:a,nodeExtent:o,zIndexMode:l}),c?(h(),p({fitViewQueued:!1,fitViewOptions:void 0})):p({}),u?.length>0&&(s&&console.log(`React Flow: trigger node changes`,u),t?.(u)))},updateNodePositions:(e,t=!1)=>{let n=[],r=[],{nodeLookup:i,triggerNodeChanges:a,connection:o,updateConnection:s,onNodesChangeMiddlewareMap:c}=m();for(let[a,c]of e){let e=i.get(a),l=!!(e?.expandParent&&e?.parentId&&c?.position),u={id:a,type:`position`,position:l?{x:Math.max(0,c.position.x),y:Math.max(0,c.position.y)}:c.position,dragging:t};if(e&&o.inProgress&&o.fromNode.id===e.id){let t=Da(e,o.fromHandle,X.Left,!0);s({...o,from:t})}l&&e.parentId&&n.push({id:a,parentId:e.parentId,rect:{...c.internals.positionAbsolute,width:c.measured.width??0,height:c.measured.height??0}}),r.push(u)}if(n.length>0){let{parentLookup:e,nodeOrigin:t}=m(),a=Wa(n,i,e,t);r.push(...a)}for(let e of c.values())r=e(r);a(r)},triggerNodeChanges:e=>{let{onNodesChange:t,setNodes:n,nodes:r,hasDefaultNodes:i,debug:a}=m();e?.length&&(i&&n(As(e,r)),a&&console.log(`React Flow: trigger node changes`,e),t?.(e))},triggerEdgeChanges:e=>{let{onEdgesChange:t,setEdges:n,edges:r,hasDefaultEdges:i,debug:a}=m();e?.length&&(i&&n(js(e,r)),a&&console.log(`React Flow: trigger edge changes`,e),t?.(e))},addSelectedNodes:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){i(e.map(e=>Ms(e,!0)));return}i(Ns(r,new Set([...e]),!0)),a(Ns(n))},addSelectedEdges:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){a(e.map(e=>Ms(e,!0)));return}a(Ns(n,new Set([...e]))),i(Ns(r,new Set,!0))},unselectNodesAndEdges:({nodes:e,edges:t}={})=>{let{edges:n,nodes:r,nodeLookup:i,triggerNodeChanges:a,triggerEdgeChanges:o}=m(),s=e||r,c=t||n,l=[];for(let e of s){if(!e.selected)continue;let t=i.get(e.id);t&&(t.selected=!1),l.push(Ms(e.id,!1))}let u=[];for(let e of c)e.selected&&u.push(Ms(e.id,!1));a(l),o(u)},setMinZoom:e=>{let{panZoom:t,maxZoom:n}=m();t?.setScaleExtent([e,n]),p({minZoom:e})},setMaxZoom:e=>{let{panZoom:t,minZoom:n}=m();t?.setScaleExtent([n,e]),p({maxZoom:e})},setTranslateExtent:e=>{m().panZoom?.setTranslateExtent(e),p({translateExtent:e})},resetSelectedElements:()=>{let{edges:e,nodes:t,triggerNodeChanges:n,triggerEdgeChanges:r,elementsSelectable:i}=m();if(!i)return;let a=t.reduce((e,t)=>t.selected?[...e,Ms(t.id,!1)]:e,[]),o=e.reduce((e,t)=>t.selected?[...e,Ms(t.id,!1)]:e,[]);n(a),r(o)},setNodeExtent:e=>{let{nodes:t,nodeLookup:n,parentLookup:r,nodeOrigin:i,elevateNodesOnSelect:a,nodeExtent:o,zIndexMode:s}=m();e[0][0]===o[0][0]&&e[0][1]===o[0][1]&&e[1][0]===o[1][0]&&e[1][1]===o[1][1]||(za(t,n,r,{nodeOrigin:i,nodeExtent:e,elevateNodesOnSelect:a,checkEquality:!1,zIndexMode:s}),p({nodeExtent:e}))},panBy:e=>{let{transform:t,width:n,height:r,panZoom:i,translateExtent:a}=m();return Ka({delta:e,panZoom:i,transform:t,translateExtent:a,width:n,height:r})},setCenter:async(e,t,n)=>{let{width:r,height:i,maxZoom:a,panZoom:o}=m();if(!o)return!1;let s=n?.zoom===void 0?a:n.zoom;return await o.setViewport({x:r/2-e*s,y:i/2-t*s,zoom:s},{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0},cancelConnection:()=>{p({connection:{...ai}})},updateConnection:e=>{p({connection:e})},reset:()=>p({...Jl()})}},Object.is);function Xl({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:i,initialHeight:a,initialMinZoom:o,initialMaxZoom:s,initialFitViewOptions:c,fitView:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f,children:p}){let[m]=(0,w.useState)(()=>Yl({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:l,minZoom:o,maxZoom:s,fitViewOptions:c,nodeOrigin:u,nodeExtent:d,zIndexMode:f}));return(0,T.jsx)(Yo,{value:m,children:(0,T.jsx)(Gs,{children:(0,T.jsx)(gc,{children:p})})})}function Zl({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:i,width:a,height:o,fitView:s,fitViewOptions:c,minZoom:l,maxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p}){return(0,w.useContext)(Jo)?(0,T.jsx)(T.Fragment,{children:e}):(0,T.jsx)(Xl,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:i,initialWidth:a,initialHeight:o,fitView:s,initialFitViewOptions:c,initialMinZoom:l,initialMaxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p,children:e})}var Ql={width:`100%`,height:`100%`,overflow:`hidden`,position:`relative`,zIndex:0};function $l({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:i,nodeTypes:a,edgeTypes:o,onNodeClick:s,onEdgeClick:c,onInit:l,onMove:u,onMoveStart:d,onMoveEnd:f,onConnect:p,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:_,onNodeMouseEnter:v,onNodeMouseMove:y,onNodeMouseLeave:b,onNodeContextMenu:x,onNodeDoubleClick:S,onNodeDragStart:C,onNodeDrag:D,onNodeDragStop:O,onNodesDelete:k,onEdgesDelete:A,onDelete:j,onSelectionChange:M,onSelectionDragStart:N,onSelectionDrag:P,onSelectionDragStop:F,onSelectionContextMenu:I,onSelectionStart:L,onSelectionEnd:R,onBeforeDelete:z,connectionMode:B,connectionLineType:V=oi.Bezier,connectionLineStyle:H,connectionLineComponent:U,connectionLineContainerStyle:W,deleteKeyCode:G=`Backspace`,selectionKeyCode:ee=`Shift`,selectionOnDrag:te=!1,selectionMode:ne=ii.Full,panActivationKeyCode:re=`Space`,multiSelectionKeyCode:ie=Gi()?`Meta`:`Control`,zoomActivationKeyCode:ae=Gi()?`Meta`:`Control`,snapToGrid:oe,snapGrid:se,onlyRenderVisibleElements:ce=!1,selectNodesOnDrag:le,nodesDraggable:ue,autoPanOnNodeFocus:de,nodesConnectable:fe,nodesFocusable:pe,nodeOrigin:me=hs,edgesFocusable:he,edgesReconnectable:ge,elementsSelectable:_e=!0,defaultViewport:ve=gs,minZoom:ye=.5,maxZoom:be=2,translateExtent:xe=$r,preventScrolling:Se=!0,nodeExtent:Ce,defaultMarkerColor:we=`#b1b1b7`,zoomOnScroll:Te=!0,zoomOnPinch:Ee=!0,panOnScroll:De=!1,panOnScrollSpeed:Oe=.5,panOnScrollMode:ke=ri.Free,zoomOnDoubleClick:Ae=!0,panOnDrag:je=!0,onPaneClick:Me,onPaneMouseEnter:Ne,onPaneMouseMove:Pe,onPaneMouseLeave:Fe,onPaneScroll:Ie,onPaneContextMenu:Le,paneClickDistance:Re=1,nodeClickDistance:ze=0,children:Be,onReconnect:Ve,onReconnectStart:He,onReconnectEnd:Ue,onEdgeContextMenu:We,onEdgeDoubleClick:Ge,onEdgeMouseEnter:Ke,onEdgeMouseMove:qe,onEdgeMouseLeave:Je,reconnectRadius:Ye=10,onNodesChange:Xe,onEdgesChange:Ze,noDragClassName:Qe=`nodrag`,noWheelClassName:$e=`nowheel`,noPanClassName:et=`nopan`,fitView:tt,fitViewOptions:nt,connectOnClick:rt,attributionPosition:it,proOptions:at,defaultEdgeOptions:ot,elevateNodesOnSelect:st=!0,elevateEdgesOnSelect:ct=!1,disableKeyboardA11y:lt=!1,autoPanOnConnect:ut,autoPanOnNodeDrag:dt,autoPanOnSelection:ft=!0,autoPanSpeed:pt,connectionRadius:mt,isValidConnection:ht,onError:gt,style:_t,id:vt,nodeDragThreshold:yt,connectionDragThreshold:bt,viewport:xt,onViewportChange:St,width:Ct,height:wt,colorMode:Tt=`light`,debug:Et,onScroll:Dt,ariaLabelConfig:Ot,zIndexMode:kt=`basic`,...At},jt){let Mt=vt||`1`,Nt=Ss(Tt),Pt=(0,w.useCallback)(e=>{e.currentTarget.scrollTo({top:0,left:0,behavior:`instant`}),Dt?.(e)},[Dt]);return(0,T.jsx)(`div`,{"data-testid":`rf__wrapper`,...At,onScroll:Pt,style:{..._t,...Ql},ref:jt,className:E([`react-flow`,i,Nt]),id:vt,role:`application`,children:(0,T.jsxs)(Zl,{nodes:e,edges:t,width:Ct,height:wt,fitView:tt,fitViewOptions:nt,minZoom:ye,maxZoom:be,nodeOrigin:me,nodeExtent:Ce,zIndexMode:kt,children:[(0,T.jsx)(bs,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:p,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:_,nodesDraggable:ue,autoPanOnNodeFocus:de,nodesConnectable:fe,nodesFocusable:pe,edgesFocusable:he,edgesReconnectable:ge,elementsSelectable:_e,elevateNodesOnSelect:st,elevateEdgesOnSelect:ct,minZoom:ye,maxZoom:be,nodeExtent:Ce,onNodesChange:Xe,onEdgesChange:Ze,snapToGrid:oe,snapGrid:se,connectionMode:B,translateExtent:xe,connectOnClick:rt,defaultEdgeOptions:ot,fitView:tt,fitViewOptions:nt,onNodesDelete:k,onEdgesDelete:A,onDelete:j,onNodeDragStart:C,onNodeDrag:D,onNodeDragStop:O,onSelectionDrag:P,onSelectionDragStart:N,onSelectionDragStop:F,onMove:u,onMoveStart:d,onMoveEnd:f,noPanClassName:et,nodeOrigin:me,rfId:Mt,autoPanOnConnect:ut,autoPanOnNodeDrag:dt,autoPanSpeed:pt,onError:gt,connectionRadius:mt,isValidConnection:ht,selectNodesOnDrag:le,nodeDragThreshold:yt,connectionDragThreshold:bt,onBeforeDelete:z,debug:Et,ariaLabelConfig:Ot,zIndexMode:kt}),(0,T.jsx)(Kl,{onInit:l,onNodeClick:s,onEdgeClick:c,onNodeMouseEnter:v,onNodeMouseMove:y,onNodeMouseLeave:b,onNodeContextMenu:x,onNodeDoubleClick:S,nodeTypes:a,edgeTypes:o,connectionLineType:V,connectionLineStyle:H,connectionLineComponent:U,connectionLineContainerStyle:W,selectionKeyCode:ee,selectionOnDrag:te,selectionMode:ne,deleteKeyCode:G,multiSelectionKeyCode:ie,panActivationKeyCode:re,zoomActivationKeyCode:ae,onlyRenderVisibleElements:ce,defaultViewport:ve,translateExtent:xe,minZoom:ye,maxZoom:be,preventScrolling:Se,zoomOnScroll:Te,zoomOnPinch:Ee,zoomOnDoubleClick:Ae,panOnScroll:De,panOnScrollSpeed:Oe,panOnScrollMode:ke,panOnDrag:je,autoPanOnSelection:ft,onPaneClick:Me,onPaneMouseEnter:Ne,onPaneMouseMove:Pe,onPaneMouseLeave:Fe,onPaneScroll:Ie,onPaneContextMenu:Le,paneClickDistance:Re,nodeClickDistance:ze,onSelectionContextMenu:I,onSelectionStart:L,onSelectionEnd:R,onReconnect:Ve,onReconnectStart:He,onReconnectEnd:Ue,onEdgeContextMenu:We,onEdgeDoubleClick:Ge,onEdgeMouseEnter:Ke,onEdgeMouseMove:qe,onEdgeMouseLeave:Je,reconnectRadius:Ye,defaultMarkerColor:we,noDragClassName:Qe,noWheelClassName:$e,noPanClassName:et,rfId:Mt,disableKeyboardA11y:lt,nodeExtent:Ce,viewport:xt,onViewportChange:St}),(0,T.jsx)(ms,{onSelectionChange:M}),Be,(0,T.jsx)(cs,{proOptions:at,position:it}),(0,T.jsx)(as,{rfId:Mt,disableKeyboardA11y:lt})]})})}var eu=Bs($l);function tu(e){let[t,n]=(0,w.useState)(e);return[t,n,(0,w.useCallback)(e=>n(t=>As(e,t)),[])]}function nu(e){let[t,n]=(0,w.useState)(e);return[t,n,(0,w.useCallback)(e=>n(t=>js(e,t)),[])]}Y.error014();function ru({dimensions:e,lineWidth:t,variant:n,className:r}){return(0,T.jsx)(`path`,{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:E([`react-flow__background-pattern`,n,r])})}function iu({radius:e,className:t}){return(0,T.jsx)(`circle`,{cx:e,cy:e,r:e,className:E([`react-flow__background-pattern`,`dots`,t])})}var au;(function(e){e.Lines=`lines`,e.Dots=`dots`,e.Cross=`cross`})(au||={});var ou={[au.Dots]:1,[au.Lines]:1,[au.Cross]:6},su=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function cu({id:e,variant:t=au.Dots,gap:n=20,size:r,lineWidth:i=1,offset:a=0,color:o,bgColor:s,style:c,className:l,patternClassName:u}){let d=(0,w.useRef)(null),{transform:f,patternId:p}=Q(su,Z),m=r||ou[t],h=t===au.Dots,g=t===au.Cross,_=Array.isArray(n)?n:[n,n],v=[_[0]*f[2]||1,_[1]*f[2]||1],y=m*f[2],b=Array.isArray(a)?a:[a,a],x=g?[y,y]:v,S=[b[0]*f[2]||1+x[0]/2,b[1]*f[2]||1+x[1]/2],C=`${p}${e||``}`;return(0,T.jsxs)(`svg`,{className:E([`react-flow__background`,l]),style:{...c,...$s,"--xy-background-color-props":s,"--xy-background-pattern-color-props":o},ref:d,"data-testid":`rf__background`,children:[(0,T.jsx)(`pattern`,{id:C,x:f[0]%v[0],y:f[1]%v[1],width:v[0],height:v[1],patternUnits:`userSpaceOnUse`,patternTransform:`translate(-${S[0]},-${S[1]})`,children:h?(0,T.jsx)(iu,{radius:y/2,className:u}):(0,T.jsx)(ru,{dimensions:x,lineWidth:i,variant:t,className:u})}),(0,T.jsx)(`rect`,{x:`0`,y:`0`,width:`100%`,height:`100%`,fill:`url(#${C})`})]})}cu.displayName=`Background`;var lu=(0,w.memo)(cu);function uu(){return(0,T.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 32`,children:(0,T.jsx)(`path`,{d:`M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z`})})}function du(){return(0,T.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 5`,children:(0,T.jsx)(`path`,{d:`M0 0h32v4.2H0z`})})}function fu(){return(0,T.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 30`,children:(0,T.jsx)(`path`,{d:`M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z`})})}function pu(){return(0,T.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,T.jsx)(`path`,{d:`M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z`})})}function mu(){return(0,T.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,T.jsx)(`path`,{d:`M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z`})})}function hu({children:e,className:t,...n}){return(0,T.jsx)(`button`,{type:`button`,className:E([`react-flow__controls-button`,t]),...n,children:e})}var gu=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function _u({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:i,onZoomIn:a,onZoomOut:o,onFitView:s,onInteractiveChange:c,className:l,children:u,position:d=`bottom-left`,orientation:f=`vertical`,"aria-label":p}){let m=$(),{isInteractive:h,minZoomReached:g,maxZoomReached:_,ariaLabelConfig:v}=Q(gu,Z),{zoomIn:y,zoomOut:b,fitView:x}=Js();return(0,T.jsxs)(os,{className:E([`react-flow__controls`,f===`horizontal`?`horizontal`:`vertical`,l]),position:d,style:e,"data-testid":`rf__controls`,"aria-label":p??v[`controls.ariaLabel`],children:[t&&(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(hu,{onClick:()=>{y(),a?.()},className:`react-flow__controls-zoomin`,title:v[`controls.zoomIn.ariaLabel`],"aria-label":v[`controls.zoomIn.ariaLabel`],disabled:_,children:(0,T.jsx)(uu,{})}),(0,T.jsx)(hu,{onClick:()=>{b(),o?.()},className:`react-flow__controls-zoomout`,title:v[`controls.zoomOut.ariaLabel`],"aria-label":v[`controls.zoomOut.ariaLabel`],disabled:g,children:(0,T.jsx)(du,{})})]}),n&&(0,T.jsx)(hu,{className:`react-flow__controls-fitview`,onClick:()=>{x(i),s?.()},title:v[`controls.fitView.ariaLabel`],"aria-label":v[`controls.fitView.ariaLabel`],children:(0,T.jsx)(fu,{})}),r&&(0,T.jsx)(hu,{className:`react-flow__controls-interactive`,onClick:()=>{m.setState({nodesDraggable:!h,nodesConnectable:!h,elementsSelectable:!h}),c?.(!h)},title:v[`controls.interactive.ariaLabel`],"aria-label":v[`controls.interactive.ariaLabel`],children:h?(0,T.jsx)(mu,{}):(0,T.jsx)(pu,{})}),u]})}_u.displayName=`Controls`;var vu=(0,w.memo)(_u);function yu({id:e,x:t,y:n,width:r,height:i,style:a,color:o,strokeColor:s,strokeWidth:c,className:l,borderRadius:u,shapeRendering:d,selected:f,onClick:p}){let{background:m,backgroundColor:h}=a||{},g=o||m||h;return(0,T.jsx)(`rect`,{className:E([`react-flow__minimap-node`,{selected:f},l]),x:t,y:n,rx:u,ry:u,width:r,height:i,style:{fill:g,stroke:s,strokeWidth:c},shapeRendering:d,onClick:p?t=>p(t,e):void 0})}var bu=(0,w.memo)(yu),xu=e=>e.nodes.map(e=>e.id),Su=e=>e instanceof Function?e:()=>e;function Cu({nodeStrokeColor:e,nodeColor:t,nodeClassName:n=``,nodeBorderRadius:r=5,nodeStrokeWidth:i,nodeComponent:a=bu,onClick:o}){let s=Q(xu,Z),c=Su(t),l=Su(e),u=Su(n),d=typeof window>`u`||window.chrome?`crispEdges`:`geometricPrecision`;return(0,T.jsx)(T.Fragment,{children:s.map(e=>(0,T.jsx)(Tu,{id:e,nodeColorFunc:c,nodeStrokeColorFunc:l,nodeClassNameFunc:u,nodeBorderRadius:r,nodeStrokeWidth:i,NodeComponent:a,onClick:o,shapeRendering:d},e))})}function wu({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:i,nodeStrokeWidth:a,shapeRendering:o,NodeComponent:s,onClick:c}){let{node:l,x:u,y:d,width:f,height:p}=Q(t=>{let n=t.nodeLookup.get(e);if(!n)return{node:void 0,x:0,y:0,width:0,height:0};let r=n.internals.userNode,{x:i,y:a}=n.internals.positionAbsolute,{width:o,height:s}=qi(r);return{node:r,x:i,y:a,width:o,height:s}},Z);return!l||l.hidden||!Ji(l)?null:(0,T.jsx)(s,{x:u,y:d,width:f,height:p,style:l.style,selected:!!l.selected,className:r(l),color:t(l),borderRadius:i,strokeColor:n(l),strokeWidth:a,shapeRendering:o,onClick:c,id:l.id})}var Tu=(0,w.memo)(wu),Eu=(0,w.memo)(Cu),Du=200,Ou=150,ku=e=>!e.hidden,Au=e=>{let t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?Mi(hi(e.nodeLookup,{filter:ku}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},ju=`react-flow__minimap-desc`;function Mu({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:i=``,nodeBorderRadius:a=5,nodeStrokeWidth:o,nodeComponent:s,bgColor:c,maskColor:l,maskStrokeColor:u,maskStrokeWidth:d,position:f=`bottom-right`,onClick:p,onNodeClick:m,pannable:h=!1,zoomable:g=!1,ariaLabel:_,inversePan:v,zoomStep:y=1,offsetScale:b=5}){let x=$(),S=(0,w.useRef)(null),{boundingRect:C,viewBB:D,rfId:O,panZoom:k,translateExtent:A,flowWidth:j,flowHeight:M,ariaLabelConfig:N}=Q(Au,Z),P=e?.width??Du,F=e?.height??Ou,I=C.width/P,L=C.height/F,R=Math.max(I,L),z=R*P,B=R*F,V=b*R,H=C.x-(z-C.width)/2-V,U=C.y-(B-C.height)/2-V,W=z+V*2,G=B+V*2,ee=`${ju}-${O}`,te=(0,w.useRef)(0),ne=(0,w.useRef)();te.current=R,(0,w.useEffect)(()=>{if(S.current&&k)return ne.current=fo({domNode:S.current,panZoom:k,getTransform:()=>x.getState().transform,getViewScale:()=>te.current}),()=>{ne.current?.destroy()}},[k]),(0,w.useEffect)(()=>{ne.current?.update({translateExtent:A,width:j,height:M,inversePan:v,pannable:h,zoomStep:y,zoomable:g})},[h,g,v,y,A,j,M]);let re=p?e=>{let[t,n]=ne.current?.pointer(e)||[0,0];p(e,{x:t,y:n})}:void 0,ie=m?(0,w.useCallback)((e,t)=>{let n=x.getState().nodeLookup.get(t).internals.userNode;m(e,n)},[]):void 0,ae=_??N[`minimap.ariaLabel`];return(0,T.jsx)(os,{position:f,style:{...e,"--xy-minimap-background-color-props":typeof c==`string`?c:void 0,"--xy-minimap-mask-background-color-props":typeof l==`string`?l:void 0,"--xy-minimap-mask-stroke-color-props":typeof u==`string`?u:void 0,"--xy-minimap-mask-stroke-width-props":typeof d==`number`?d*R:void 0,"--xy-minimap-node-background-color-props":typeof r==`string`?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n==`string`?n:void 0,"--xy-minimap-node-stroke-width-props":typeof o==`number`?o:void 0},className:E([`react-flow__minimap`,t]),"data-testid":`rf__minimap`,children:(0,T.jsxs)(`svg`,{width:P,height:F,viewBox:`${H} ${U} ${W} ${G}`,className:`react-flow__minimap-svg`,role:`img`,"aria-labelledby":ee,ref:S,onClick:re,children:[ae&&(0,T.jsx)(`title`,{id:ee,children:ae}),(0,T.jsx)(Eu,{onClick:ie,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:a,nodeClassName:i,nodeStrokeWidth:o,nodeComponent:s}),(0,T.jsx)(`path`,{className:`react-flow__minimap-mask`,d:`M${H-V},${U-V}h${W+V*2}v${G+V*2}h${-W-V*2}z
|
|
7
|
-
M${D.x},${D.y}h${D.width}v${D.height}h${-D.width}z`,fillRule:`evenodd`,pointerEvents:`none`})]})})}Mu.displayName=`MiniMap`;var Nu=(0,w.memo)(Mu),Pu=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,Fu={[Do.Line]:`right`,[Do.Handle]:`bottom-right`};function Iu({nodeId:e,position:t,variant:n=Do.Handle,className:r,style:i=void 0,children:a,color:o,minWidth:s=10,minHeight:c=10,maxWidth:l=Number.MAX_VALUE,maxHeight:u=Number.MAX_VALUE,keepAspectRatio:d=!1,resizeDirection:f,autoScale:p=!0,shouldResize:m,onResizeStart:h,onResize:g,onResizeEnd:_}){let v=pc(),y=typeof e==`string`?e:v,b=$(),x=(0,w.useRef)(null),S=n===Do.Handle,C=Q((0,w.useCallback)(Pu(S&&p),[S,p]),Z),D=(0,w.useRef)(null),O=t??Fu[n];return(0,w.useEffect)(()=>{if(!(!x.current||!y))return D.current||=Ro({domNode:x.current,nodeId:y,getStoreItems:()=>{let{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,domNode:a}=b.getState();return{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,paneDomNode:a}},onChange:(e,t)=>{let{triggerNodeChanges:n,nodeLookup:r,parentLookup:i,nodeOrigin:a}=b.getState(),o=[],s={x:e.x,y:e.y},c=r.get(y);if(c&&c.expandParent&&c.parentId){let t=c.origin??a,n=e.width??c.measured.width??0,l=e.height??c.measured.height??0,u=Wa([{id:c.id,parentId:c.parentId,rect:{width:n,height:l,...Yi({x:e.x??c.position.x,y:e.y??c.position.y},{width:n,height:l},c.parentId,r,t)}}],r,i,a);o.push(...u),s.x=e.x?Math.max(t[0]*n,e.x):void 0,s.y=e.y?Math.max(t[1]*l,e.y):void 0}if(s.x!==void 0&&s.y!==void 0){let e={id:y,type:`position`,position:{...s}};o.push(e)}if(e.width!==void 0&&e.height!==void 0){let t={id:y,type:`dimensions`,resizing:!0,setAttributes:f?f===`horizontal`?`width`:`height`:!0,dimensions:{width:e.width,height:e.height}};o.push(t)}for(let e of t){let t={...e,type:`position`};o.push(t)}n(o)},onEnd:({width:e,height:t})=>{let n={id:y,type:`dimensions`,resizing:!1,dimensions:{width:e,height:t}};b.getState().triggerNodeChanges([n])}}),D.current.update({controlPosition:O,boundaries:{minWidth:s,minHeight:c,maxWidth:l,maxHeight:u},keepAspectRatio:d,resizeDirection:f,onResizeStart:h,onResize:g,onResizeEnd:_,shouldResize:m}),()=>{D.current?.destroy()}},[O,s,c,l,u,d,h,g,_,m]),(0,T.jsx)(`div`,{className:E([`react-flow__resize-control`,`nodrag`,...O.split(`-`),n,r]),ref:x,style:{...i,scale:C,...o&&{[S?`backgroundColor`:`borderColor`]:o}},children:a})}(0,w.memo)(Iu);var Lu=130,Ru=240,zu=20;function Bu(e,t){let n=e.find(e=>e.data.kind===`start`)??e[0],r=new Map;for(let e of t){let t=r.get(e.source);t?t.push(e.target):r.set(e.source,[e.target])}let i=new Map;if(!n)return i;let a=[[n.id,0]];for(;a.length;){let[e,t]=a.shift();if(!i.has(e)){i.set(e,t);for(let n of r.get(e)??[])i.has(n)||a.push([n,t+1])}}let o=0;for(let e of i.values())o=Math.max(o,e);for(let t of e)i.has(t.id)||i.set(t.id,++o);return i}function Vu(e,t,n){if(n===`grid`)return e.map(e=>({...e,position:{x:Math.round(e.position.x/zu)*zu,y:Math.round(e.position.y/zu)*zu}}));let r=Bu(e,t),i=new Map;for(let t of e){let e=r.get(t.id)??0,n=i.get(e);n?n.push(t):i.set(e,[t])}let a=[];for(let[e,t]of[...i.entries()].sort((e,t)=>e[0]-t[0]))t.forEach((r,i)=>{let o=(i-(t.length-1)/2)*Ru,s=n===`vertical`?{x:o,y:e*Lu}:{x:e*Lu,y:o};a.push({...r,position:s})});let o=new Map(e.map((e,t)=>[e.id,t]));return a.sort((e,t)=>(o.get(e.id)??0)-(o.get(t.id)??0))}export{Nu as a,Ls as c,tu as d,Js as f,xc as i,eu as l,X as m,lu as n,os as o,si as p,vu as r,Xl as s,Vu as t,nu as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e=`Loops`,t=`再利用可能な自動化ループ — すべてのプロジェクトで共有されます。`,n=`新しいループ`,r={drafts:`下書き`,published:`公開済み`,templates:`テンプレート`,builtIn:`組み込み`},i={search:`テンプレートを検索…`,noResults:`フィルターに一致するテンプレートがありません。`,clearFilter:`フィルターをクリア`,resultCount_one:`{{count}} 件のテンプレート`,resultCount_other:`{{count}} 件のテンプレート`,needsSpec:`スペックが必要`,standalone:`単独実行`,needsSpecHint:`スペックをドラッグした rail で実行`,standaloneHint:`単独で実行 — プロジェクトを選ぶだけ`},a={API:`API`,Automation:`自動化`,CI:`CI`,Database:`データベース`,Debugging:`デバッグ`,DevOps:`DevOps`,Docs:`ドキュメント`,Git:`Git`,Maintenance:`メンテナンス`,Performance:`パフォーマンス`,Planning:`計画`,Quality:`品質`,Review:`レビュー`,Security:`セキュリティ`,Testing:`テスト`},o={draft:`下書き`,published:`公開済み`,running:`実行中`},s={title:`ループはまだありません`,body:`ゼロから作成するか、テンプレートから始めましょう。`},c={edit:`編集`,delete:`削除`,publish:`公開`,unpublish:`公開を取り消す`,duplicate:`複製`,restoreBuiltin:`元に戻す`,use:`テンプレートを使用`,preview:`プレビュー`,run:`実行`,export:`エクスポート`,import:`インポート`,select:`{{name}} を選択`,exportLegacy:`元のグラフをエクスポート`,originalCopyName:`元のグラフ: {{name}}`,convert:`Coreに変換`},l={nodes_one:`{{count}} 個のノード`,nodes_other:`{{count}} 個のノード`,usedIn:`使用中 · {{project}}`,builtinModified:`編集済み`},u=`このループを削除しますか?すべてのレールのピッカーから表示されなくなります。`,d=`新しいループ`,f={load:`ループの読み込みに失敗しました`,save:`ループの保存に失敗しました`,publishInvalid:`このループはまだ公開できません — ハイライトされた問題を修正してください。`,exportLegacy:`元のグラフをエクスポートできませんでした。`},p={back:`ループに戻る`,save:`保存`,saved:`ループを保存しました`,publish:`公開`,published:`ループを公開しました`,builtin:{note:`組み込みループです。組み込みループ自体を編集しています。公開すると、変更はこのループを使うすべてのレール、エージェントチャットからの起動、Companion に適用されます。編集中もレールは最後に公開されたバージョンを実行し続けます。既定に戻すには「元に戻す」を使います。`,restored:`組み込みループを元のバージョンに戻しました`,confirmTitle:`元の組み込みループに戻しますか?`,confirmBody:`この組み込みループへの変更を破棄し、使用しているすべてのレールに元のバージョンを公開します。自分のバージョンを残したい場合は先に複製してください。`},addNode:`ノードを追加`,deleteNode:`ノードを削除`,config:{maxIterations:`最大反復回数`,timeout:`タイムアウト(分)`,maxIterationsHint:`Loop Decider の反復回数の上限 — 目標が未達でも到達したらループを停止。暴走ループを防ぎます。`,timeoutHint:`実行全体の実時間の上限(分)。超過すると実行は停止し失敗として記録されます — 最大反復回数と並ぶ安全策です。 0 はこの時間制限を無効にします。ほかの予算とキャンセルは引き続き有効です。`,maxCost:`最大コスト ($)`,maxCostHint:`実行全体の任意の USD 予算。ステップ間で確認(各ステップの費用はそのステップ終了時にのみ判明)するため、合計が超えると次のステップ前にループを停止します(1ステップ分超過する可能性あり)。Claude 以外のプロバイダーでは費用は推定値です。空欄 = 上限なし。`},nodes:{start:`開始`,"ai-step":`AI ステップ`,shell:`シェル`,decider:`ループ判定`,condition:`条件`,end:`終了`},inspector:{selectNode:`編集するノードを選択してください。`,prompt:`プロンプト`,provider:`プロバイダー`,model:`モデル`,effort:`推論の労力`,command:`コマンド`,goal:`目標 / 停止条件`,join:`結合`,outcome:`結果`,startNote:`ループのエントリーポイント。最初のステップに接続してください。`,promptHint:`トークンをクリックまたはドラッグしてプロンプトに挿入します。`,tokensSpec:`Spec フィールド`,tokensJira:`Jira`,tokensCommands:`コマンド`,label:`名前`},branch:{continue:`↻ 続行`,stop:`✓ 終了`},edgesHelp:{label:`ステップの接続方法`,body:`矢印は実行の順序を設定するもので、データの流れではありません — ボックスには入力ポートがなく、エッジはパラメータを運びません。各 AI Step は自動的にそのセッションを再開し (これまでの完全なコンテキスト)、加えて前のステップの短い要約を引き継ぎます。手作業での配線は一切ありません。Loop Decider には 2 つの出力があります: ↻ Continue (目標未達 → ループバック) と ✓ Stop (目標達成 → 終了)。`},arrange:{label:`整列`,vertical:`垂直`,horizontal:`水平`,grid:`グリッド`,reset:`リセット`},constants:{label:`定数`,manage:`定数を管理`,title:`ループ定数`,empty:`カスタム定数はまだありません。`,name:`名前`,value:`値`,add:`追加`,builtinBadge:`組み込み`},paste:{done_one:`{{count}} 個のステップを貼り付けました`,done_other:`{{count}} 個のステップを貼り付けました`},problems:{count_one:`{{count}} 件の問題`,count_other:`{{count}} 件の問題`,NO_START:`開始ノードを追加してください。`,MULTIPLE_START:`開始ノードは1つだけ許可されます。`,NO_END:`終了ノードを少なくとも1つ追加してください。`,ORPHAN:`このステップは開始から到達できません。`,DECIDER_BRANCHES:`Loop Decider には継続と停止の分岐が必要です。`,EMPTY_PROMPT:`AI ステップのプロンプトが空です。`,EMPTY_COMMAND:`Shell ステップのコマンドが空です。`,EMPTY_GOAL:`Loop Decider に目標がありません。`,DEAD_END:`このステップには出力接続がありません。`,MIXED_ENGINES:`従来のステップと Core のステップを混在させないでください。`,CORE_OUTCOMES:`異なる有効な結果を接続してください。`,CORE_PIECE:`ステップとパラメーターを選択してください。`},preview:{label:`プレビュー`,title:`ドライラン プレビュー`,sampleNote:`Spec の値はサンプルです。コマンドと定数は実行時と同じように解決されます。`,empty:`プレビューするステップがありません。`,error:`プレビューに失敗しました`},core:{unavailable:`エンジンを利用できません。Core を更新すると、ステップの追加や公開ができます。`,root:`メインワークフロー`,components:`コンポーネント`,componentName:`コンポーネント名`,addComponent:`コンポーネントを追加`,openComponent:`コンポーネントを開く`,breadcrumbs:`ワークフローのナビゲーション`,select:`選択してください`,valueType:`値の種類`,addItem:`項目を追加`,fieldName:`フィールド名`,addField:`{{name}} を追加`,removeField:`{{name}} を削除`,variant:`{{name}} の形式`,tooDeep:`値の階層が深すぎます。`,pieces:{prompt:`プロンプト`,"role-turn":`Agent step`,decider:`判断`,condition:`条件`,verify:`検証`,shell:`シェル`,"openspec-validate":`OpenSpec を検証`,"openspec-archive":`OpenSpec をアーカイブ`,approval:`承認`,question:`質問`,gate:`一時停止`,map:`各項目を実行`,join:`結合`,component:`コンポーネント`,implementation:`実装`,end:`終了`,assign:`変数を設定`,"implementation-step":`Implementation step`,"artifact-contract":`Artifact contract`},groups:{ai:`AI`,verification:`検証`,openspec:`OpenSpec`,control:`フロー制御`},options:`ワークフローの設定`,reviewerStep:`レビュー証拠ノード`,reviewerAutomatic:`自動(実装レビュー)`,reviewerHint:`構造化されたレビューを提供するロールターンを選択します。AIレビューはホストによる検証の代わりにはなりません。`,assignment:{set:`値を設定`,increment:`カウンターを調整`},requiredContinue:`この条件が成立する間は続行`,agentTaskDefault:`Execute the task defined for this step using the workflow context.`,legacyImplementation:`This step retains phases from an earlier version. Add an Agent step to define your own step. For builtin loops, Restore original loads the new workflow.`},loopSettings:`Advanced settings`},m={steps:`ステップ`,limits:`最大 {{iterations}} 回 · {{timeout}} 分タイムアウト`,limitsNoTimeout:`最大 {{iterations}} 回 · タイムアウトなし`,openInBuilder:`ビルダーで開く`,builtin:`ビルトイン`},h=`組み込み`,g={title:`{{name}} を実行`,subtitle:`このループをプロジェクトで実行します(チケット不要)。`,project:`プロジェクト`,provider:`プロバイダー`,model:`モデル`,effort:`推論の強度`,execute:`実行`,noProjects:`利用可能なプロジェクトがありません。`,launched:`{{name}} を実行中`},_={"ship-and-green":{name:`Ship & Green`,description:`完全自律: spec を実装し、検証し、失敗時には修正 (refine) する — すべてがグリーンになるまで 検証 → 修正 → 検証 をループします。人手による介入は不要です。`},"verify-pass":{name:`Verify Pass`,description:`自律的な検証と修正: プロジェクトの build / lint / テストを検出して実行し、失敗時には修正 — グリーンになるまで 検証 → 修正 → 検証 を繰り返します。`},"ci-watch":{name:`CI Watch`,description:`オープンな PR の CI チェックをポーリングし (エージェントがリポジトリの CI ツールを使用)、すべてのチェックがグリーンになるまで続けます。`},"lint-and-fix":{name:`Lint & Fix`,description:`エージェントがプロジェクトの linter を検出して実行し、すべての問題を修正します。コードベースがクリーンになるまで反復します。`},"type-safe":{name:`Type Safe`,description:`エージェントがプロジェクトの型チェッカーを検出して実行し、すべてのエラーを解消します。問題なくパスするまで反復します。`},"coverage-climb":{name:`Coverage Climb`,description:`エージェントがプロジェクトのカバレッジツールを実行し、しきい値をパスするまで的を絞ったテストを追加します。`},"build-fix":{name:`Build Fix`,description:`エージェントがプロジェクトの本番 build を検出して実行し、グリーンになるまでコンパイル / バンドルのエラーを修正します。`},"deploy-check":{name:`Deploy Check`,description:`エージェントがデプロイ / ヘルスステータスをポーリングし (プロジェクトの deploy ツールを使用)、サービスが正常を報告するまで続けます。`},factory_implement:{name:`実装`,description:`レール上のすべての spec を 1 回の実行で実装します。計画、実装、レビュー、検証を行い、チェックが通るまで失敗を修正します。`},factory_freestyle:{name:`Freestyle`,description:`スペックをそのままモデルに渡して完全な自由を与えます — パイプラインなしで通常のコーディングエージェントのように動作し、その後グリーンになるまで検証+改善します。Claude 専用。`},factory_openspec:{name:`OpenSpec Lifecycle`,description:`チケットからアーカイブまでの OpenSpec ライフサイクル: アーティファクト生成 (opsx:ff) → 実装 (opsx:apply) → 検証 (opsx:verify)。FAIL なら同じ change を修正しに戻り、PASS なら無人でアーカイブします。`},factory_revision:{name:`修正`,description:`すでに納品された成果の上に依頼された一点の変更を適用し、レビュアーに再評価させ、通るまで検証します。ゼロからの再計画はしません。`}},v={selectInterrupt:`保留中の質問または承認を選択`,answerQuestion:`質問に回答`,approval:`承認`,approveContinue:`承認して続行`,paused:`一時停止中`,acceptance:`受け入れ`,verified:`検証済み`,hostBlocked:`ホスト環境によりブロックされました`,blockerKind:{network:`ネットワーク`,credential:`認証情報`,"environment-variable":`環境変数`,toolchain:`ツールチェーン`,setup:`セットアップコマンド`,environment:`環境`,scope:`スコープ外`},failingCommand:`失敗したコマンド`,inDirectory:`{{cwd}} で実行`,requiredAction:`必要な対応`,copyCommand:`コマンドをコピー`,copiedCommand:`コピーしました`},y={title:`{{name}}をCoreに変換`,description:`Coreは変換したグラフを検証してから下書きとして保存します。元のグラフは引き続きエクスポートできます。公開前に新しいワークフローを確認してください。`,repository:`宛先のないシェルステップのリポジトリ`,selectRepository:`元のリポジトリを選択`,submit:`変換して確認`,pending:`変換中…`,error:`変換に失敗しました`,coreRequired:`このワークフローを変換するにはCoreを更新してください。`},b={title:`Core への移行チェック`,description:`保存済みのすべてのループを、インストール済みの Core で確認します。自動で変換や公開は行いません。`,check:`確認`,checking:`確認中…`,failed:`ループを確認できませんでした。`,empty:`保存済みのループはありません。`,allCurrent:`すべてのループがすでに Core で動作し、有効です。`,states:{current:`最新`,invalid:`インストール済みの Core が拒否`,convertible:`変換可能`,needs_attention:`要対応`,running:`実行中`}},x={open:`Open in window`},S={title:e,subtitle:t,newLoop:n,sections:r,gallery:i,categories:a,status:o,empty:s,actions:c,card:l,confirmDelete:u,newLoopName:d,errors:f,builder:p,preview:m,builtInBadge:h,run:g,catalog:_,import:{done_one:`{{count}} 個のループをインポートしました`,done_other:`{{count}} 個のループをインポートしました`,skipped_one:`{{count}} 件の重複をスキップ:{{names}}`,skipped_other:`{{count}} 件の重複をスキップ:{{names}}`,invalid:`そのファイルは有効なループのエクスポートではありません。`},core:v,conversion:y,migration:b,window:x};export{c as actions,p as builder,h as builtInBadge,l as card,_ as catalog,a as categories,u as confirmDelete,y as conversion,v as core,S as default,s as empty,f as errors,i as gallery,b as migration,n as newLoop,d as newLoopName,m as preview,g as run,r as sections,o as status,t as subtitle,e as title,x as window};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e=`Loops`,t=`Loop di automazione riutilizzabili — condivisi tra tutti i tuoi progetti.`,n=`Nuovo loop`,r={drafts:`Bozze`,published:`Pubblicati`,templates:`Modelli`,builtIn:`Integrati`},i={search:`Cerca modelli…`,noResults:`Nessun modello corrisponde ai filtri.`,clearFilter:`Cancella filtri`,resultCount_one:`{{count}} modello`,resultCount_other:`{{count}} modelli`,needsSpec:`Richiede spec`,standalone:`Autonoma`,needsSpecHint:`Gira su una rail con una spec trascinata`,standaloneHint:`Gira da sola — basta scegliere un progetto`},a={API:`API`,Automation:`Automazione`,CI:`CI`,Database:`Database`,Debugging:`Debug`,DevOps:`DevOps`,Docs:`Docs`,Git:`Git`,Maintenance:`Manutenzione`,Performance:`Prestazioni`,Planning:`Pianificazione`,Quality:`Qualità`,Review:`Revisione`,Security:`Sicurezza`,Testing:`Test`},o={draft:`Bozza`,published:`Pubblicato`,running:`In esecuzione`},s={title:`Ancora nessun loop`,body:`Creane uno da zero o parti da un modello.`},c={edit:`Modifica`,delete:`Elimina`,publish:`Pubblica`,unpublish:`Annulla pubblicazione`,duplicate:`Duplica`,restoreBuiltin:`Ripristina originale`,use:`Usa modello`,preview:`Anteprima`,run:`Esegui`,export:`Esporta`,import:`Importa`,select:`Seleziona {{name}}`,exportLegacy:`Esporta il grafo originale`,originalCopyName:`Originale: {{name}}`,convert:`Converti in Core`},l={nodes_one:`{{count}} nodo`,nodes_other:`{{count}} nodi`,usedIn:`In uso · {{project}}`,builtinModified:`Modificato`},u=`Eliminare questo loop? Scomparirà da ogni selettore di rail.`,d=`Nuovo loop`,f={load:`Impossibile caricare i loop`,save:`Impossibile salvare il loop`,publishInvalid:`Questo loop non può ancora essere pubblicato — correggi i problemi evidenziati.`,exportLegacy:`Impossibile esportare il grafo originale.`},p={back:`Torna ai loop`,save:`Salva`,saved:`Loop salvato`,publish:`Pubblica`,published:`Loop pubblicato`,builtin:{note:`Loop integrato. Stai modificando il loop integrato stesso: una volta pubblicate, le modifiche si applicano a ogni rail, avvio dalla chat dell'agente e Companion che lo usa. Durante la modifica i rail continuano a eseguire l'ultima versione pubblicata. Usa Ripristina originale per tornare alla versione predefinita.`,restored:`Loop integrato ripristinato alla versione originale`,confirmTitle:`Ripristinare il loop integrato originale?`,confirmBody:`Questo scarta le tue modifiche a questo loop integrato e pubblica la sua versione originale per tutti i rail che lo usano. Duplicalo prima se vuoi conservare la tua versione.`},addNode:`Aggiungi nodo`,deleteNode:`Elimina nodo`,config:{maxIterations:`Iterazioni massime`,timeout:`Timeout (min)`,maxIterationsHint:`Limite massimo di iterazioni del Loop Decider — il loop si ferma al raggiungimento anche se l'obiettivo non è soddisfatto. Evita loop infiniti.`,timeoutHint:`Limite di tempo reale per l'intera esecuzione, in minuti. Se superato, l'esecuzione viene interrotta e segnata come fallita — una rete di sicurezza insieme alle iterazioni massime. 0 disattiva questo limite di tempo; gli altri budget e l’annullamento restano attivi.`,maxCost:`Costo max ($)`,maxCostHint:`Budget USD opzionale per l’intera esecuzione. Controllato TRA i passi (il costo di un passo si conosce solo al termine), il loop si ferma prima del passo successivo quando il totale lo supera — può sforare di un passo. Per i provider non-Claude il costo è stimato. Vuoto = nessun limite.`},nodes:{start:`Inizio`,"ai-step":`Passo IA`,shell:`Shell`,decider:`Decisore del loop`,condition:`Condizione`,end:`Fine`},inspector:{selectNode:`Seleziona un nodo per modificarlo.`,prompt:`Prompt`,provider:`Provider`,model:`Modello`,effort:`Sforzo di ragionamento`,command:`Comando`,goal:`Obiettivo / criteri di arresto`,join:`Unione`,outcome:`Esito`,startNote:`Il punto di ingresso del loop. Collegalo al primo passo.`,promptHint:`Clicca o trascina un token per inserirlo nel prompt.`,tokensSpec:`Campi della spec`,tokensJira:`Jira`,tokensCommands:`Comandi`,label:`Nome`},branch:{continue:`↻ Continua`,stop:`✓ Ferma`},edgesHelp:{label:`Come si collegano i passaggi`,body:`Le frecce definiscono l'ORDINE di esecuzione, non i dati — i box non hanno porte di input e gli archi non trasportano parametri. Ogni AI Step riprende automaticamente la propria sessione (intero contesto precedente) più un breve riepilogo dei passaggi precedenti; nulla viene collegato a mano. Il Loop Decider ha due uscite: ↻ Continua (obiettivo non raggiunto → torna al ciclo) e ✓ Ferma (obiettivo raggiunto → esci).`},arrange:{label:`Disponi`,vertical:`Verticale`,horizontal:`Orizzontale`,grid:`Griglia`,reset:`Reimposta`},constants:{label:`Costanti`,manage:`Gestisci costanti`,title:`Costanti del loop`,empty:`Ancora nessuna costante personalizzata.`,name:`NOME`,value:`valore`,add:`Aggiungi`,builtinBadge:`Integrate`},paste:{done_one:`{{count}} passo incollato`,done_other:`{{count}} passi incollati`},problems:{count_one:`{{count}} problema`,count_other:`{{count}} problemi`,NO_START:`Aggiungi un nodo di Avvio.`,MULTIPLE_START:`È consentito un solo nodo di Avvio.`,NO_END:`Aggiungi almeno un nodo di Fine.`,ORPHAN:`Questo passo non è raggiungibile dall'Avvio.`,DECIDER_BRANCHES:`Il Loop Decider richiede un ramo Continua e uno Ferma.`,EMPTY_PROMPT:`L'AI Step ha il prompt vuoto.`,EMPTY_COMMAND:`Il passo Shell ha il comando vuoto.`,EMPTY_GOAL:`Il Loop Decider non ha un obiettivo.`,DEAD_END:`Questo passo non ha connessioni in uscita.`,MIXED_ENGINES:`Non mescolare passaggi precedenti con passaggi Core.`,CORE_OUTCOMES:`Collega risultati distinti e validi.`,CORE_PIECE:`Seleziona un passaggio e i relativi parametri.`},preview:{label:`Anteprima`,title:`Anteprima (dry-run)`,sampleNote:`I valori dello spec sono di esempio; comandi e costanti si risolvono come a runtime.`,empty:`Nessun passo da visualizzare.`,error:`Anteprima non riuscita`},core:{unavailable:`Motore non disponibile. Aggiorna Core per aggiungere o pubblicare passaggi.`,root:`Workflow principale`,components:`Componenti`,componentName:`Nome del componente`,addComponent:`Aggiungi componente`,openComponent:`Apri componente`,breadcrumbs:`Navigazione del workflow`,select:`Scegli un'opzione`,valueType:`Tipo di valore`,addItem:`Aggiungi elemento`,fieldName:`Nome del campo`,addField:`Aggiungi {{name}}`,removeField:`Rimuovi {{name}}`,variant:`Formato di {{name}}`,tooDeep:`Il valore contiene troppi livelli.`,pieces:{prompt:`Prompt`,"role-turn":`Agent step`,decider:`Decisione`,condition:`Condizione`,verify:`Verifica`,shell:`Shell`,"openspec-validate":`Convalida OpenSpec`,"openspec-archive":`Archivia OpenSpec`,approval:`Approvazione`,question:`Domanda`,gate:`Pausa`,map:`Mappa`,join:`Unisci`,component:`Componente`,implementation:`Implementazione`,end:`Fine`,assign:`Impostare variabili`,"implementation-step":`Implementation step`,"artifact-contract":`Artifact contract`},groups:{ai:`IA`,verification:`Verifica`,openspec:`OpenSpec`,control:`Controllo del flusso`},options:`Opzioni del workflow`,reviewerStep:`Nodo delle evidenze di revisione`,reviewerAutomatic:`Automatico (revisioni di implementazione)`,reviewerHint:`Scegli il turno di ruolo che fornisce la revisione strutturata. La revisione IA non sostituisce la verifica dell’host.`,assignment:{set:`Impostare valori`,increment:`Modificare contatori`},requiredContinue:`Continua finché questa condizione è vera`,agentTaskDefault:`Execute the task defined for this step using the workflow context.`,legacyImplementation:`This step retains phases from an earlier version. Add an Agent step to define your own step. For builtin loops, Restore original loads the new workflow.`},loopSettings:`Advanced settings`},m={steps:`Passi`,limits:`max {{iterations}} iterazioni · {{timeout}} min di timeout`,limitsNoTimeout:`max {{iterations}} iterazioni · nessun timeout`,openInBuilder:`Apri nel builder`,builtin:`Integrato`},h=`Integrato`,g={title:`Esegui {{name}}`,subtitle:`Avvia questo loop su un progetto (senza ticket).`,project:`Progetto`,provider:`Provider`,model:`Modello`,effort:`Sforzo di ragionamento`,execute:`Esegui`,noProjects:`Nessun progetto disponibile.`,launched:`Esecuzione di {{name}}`},_={"ship-and-green":{name:`Ship & Green`,description:`Completamente autonomo: implementa la spec, verifica e affina (corregge) in caso di fallimento — ripetendo il ciclo verifica → correggi → verifica finché tutto è verde. Nessun intervento umano.`},"verify-pass":{name:`Verify Pass`,description:`Verifica e correzione autonome: rileva ed esegue build/lint/test del progetto, poi affina in caso di fallimento — verifica → correggi → verifica finché è verde.`},"ci-watch":{name:`CI Watch`,description:`Controlla i check di CI sulla PR aperta (l'agente usa gli strumenti di CI del repository) finché ogni check non è verde.`},"lint-and-fix":{name:`Lint & Fix`,description:`L'agente rileva ed esegue il linter del progetto e corregge ogni problema, iterando finché il codice non è pulito.`},"type-safe":{name:`Type Safe`,description:`L'agente rileva ed esegue il type checker del progetto e risolve ogni errore, iterando finché non passa senza errori.`},"coverage-climb":{name:`Coverage Climb`,description:`L'agente esegue gli strumenti di copertura del progetto e aggiunge test mirati finché le soglie non vengono superate.`},"build-fix":{name:`Build Fix`,description:`L'agente rileva ed esegue il build di produzione del progetto e corregge gli errori di compilazione/bundle finché non è verde.`},"deploy-check":{name:`Deploy Check`,description:`L'agente controlla lo stato di deploy/salute (usando gli strumenti di deploy del progetto) finché il servizio non risulta integro.`},factory_implement:{name:`Implementa`,description:`Implementa tutte le spec del rail in un'unica esecuzione: pianifica, implementa, rivede e verifica, correggendo gli errori finché i controlli non passano.`},factory_freestyle:{name:`Freestyle`,description:`Consegna la spec direttamente al modello con piena libertà — senza pipeline, lavora come un normale coding agent, poi verifica + rifinisce fino al verde. Solo Claude.`},factory_openspec:{name:`OpenSpec Lifecycle`,description:`Ciclo OpenSpec dal ticket all'archivio: genera artefatti (opsx:ff) → implementa (opsx:apply) → verifica (opsx:verify); con FAIL torna indietro ed emenda lo stesso change, con PASS lo archivia senza intervento.`},factory_revision:{name:`Revisione`,description:`Applica l'unica modifica richiesta sopra il lavoro già consegnato, fa rivalutare dal revisore e verifica fino al verde. Non ripianifica da zero.`}},v={selectInterrupt:`Seleziona la domanda o approvazione in attesa`,answerQuestion:`Rispondi alla domanda`,approval:`Approvazione`,approveContinue:`Approva e continua`,paused:`In pausa`,acceptance:`Accettazione`,verified:`Verificato`,hostBlocked:`Bloccato dall'ambiente host`,blockerKind:{network:`Rete`,credential:`Credenziali`,"environment-variable":`Variabile d'ambiente`,toolchain:`Toolchain`,setup:`Comando di preparazione`,environment:`Ambiente`,scope:`Fuori ambito`},failingCommand:`Comando fallito`,inDirectory:`in {{cwd}}`,requiredAction:`Azione richiesta`,copyCommand:`Copia comando`,copiedCommand:`Copiato`},y={title:`Converti {{name}} in Core`,description:`Core convalida il grafo convertito prima di salvarlo come bozza. L’originale resta esportabile. Controlla il nuovo workflow prima di pubblicarlo.`,repository:`Repository per i passaggi shell senza destinazione`,selectRepository:`Scegli il repository originale`,submit:`Converti e controlla`,pending:`Conversione…`,error:`Conversione non riuscita`,coreRequired:`Aggiorna Core per convertire questo workflow.`},b={title:`Verifica della migrazione a Core`,description:`Verifica ogni loop salvato con il Core installato. Nulla viene convertito o pubblicato automaticamente.`,check:`Verifica`,checking:`Verifica in corso…`,failed:`Impossibile verificare i loop.`,empty:`Nessun loop salvato.`,allCurrent:`Tutti i loop usano già Core e sono validi.`,states:{current:`Aggiornato`,invalid:`Rifiutato dal Core installato`,convertible:`Pronto per la conversione`,needs_attention:`Richiede attenzione`,running:`In esecuzione`}},x={open:`Open in window`},S={title:e,subtitle:t,newLoop:n,sections:r,gallery:i,categories:a,status:o,empty:s,actions:c,card:l,confirmDelete:u,newLoopName:d,errors:f,builder:p,preview:m,builtInBadge:h,run:g,catalog:_,import:{done_one:`{{count}} loop importato`,done_other:`{{count}} loop importati`,skipped_one:`{{count}} duplicato saltato: {{names}}`,skipped_other:`{{count}} duplicati saltati: {{names}}`,invalid:`Quel file non è un export di loop valido.`},core:v,conversion:y,migration:b,window:x};export{c as actions,p as builder,h as builtInBadge,l as card,_ as catalog,a as categories,u as confirmDelete,y as conversion,v as core,S as default,s as empty,f as errors,i as gallery,b as migration,n as newLoop,d as newLoopName,m as preview,g as run,r as sections,o as status,t as subtitle,e as title,x as window};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e=`Loops`,t=`Loops de automação reutilizáveis — partilhados entre todos os seus projetos.`,n=`Novo loop`,r={drafts:`Rascunhos`,published:`Publicados`,templates:`Modelos`,builtIn:`Integrados`},i={search:`Buscar modelos…`,noResults:`Nenhum modelo corresponde aos seus filtros.`,clearFilter:`Limpar filtros`,resultCount_one:`{{count}} modelo`,resultCount_other:`{{count}} modelos`,needsSpec:`Requer spec`,standalone:`Autônoma`,needsSpecHint:`Roda em um rail com uma spec arrastada`,standaloneHint:`Roda sozinha — basta escolher um projeto`},a={API:`API`,Automation:`Automação`,CI:`CI`,Database:`Banco de dados`,Debugging:`Depuração`,DevOps:`DevOps`,Docs:`Docs`,Git:`Git`,Maintenance:`Manutenção`,Performance:`Desempenho`,Planning:`Planejamento`,Quality:`Qualidade`,Review:`Revisão`,Security:`Segurança`,Testing:`Testes`},o={draft:`Rascunho`,published:`Publicado`,running:`Em execução`},s={title:`Ainda não há loops`,body:`Crie um do zero ou comece a partir de um modelo.`},c={edit:`Editar`,delete:`Eliminar`,publish:`Publicar`,unpublish:`Despublicar`,duplicate:`Duplicar`,restoreBuiltin:`Restaurar original`,use:`Usar modelo`,preview:`Pré-visualização`,run:`Executar`,export:`Exportar`,import:`Importar`,select:`Selecionar {{name}}`,exportLegacy:`Exportar grafo original`,originalCopyName:`Original: {{name}}`,convert:`Converter para Core`},l={nodes_one:`{{count}} nó`,nodes_other:`{{count}} nós`,usedIn:`Em uso · {{project}}`,builtinModified:`Editado`},u=`Eliminar este loop? Desaparecerá de todos os seletores de rail.`,d=`Novo loop`,f={load:`Falha ao carregar os loops`,save:`Falha ao guardar o loop`,publishInvalid:`Este loop ainda não pode ser publicado — corrija os problemas assinalados.`,exportLegacy:`Não foi possível exportar o grafo original.`},p={back:`Voltar aos Loops`,save:`Guardar`,saved:`Loop guardado`,publish:`Publicar`,published:`Loop publicado`,builtin:{note:`Loop integrado. Está a editar o próprio loop integrado: depois de publicado, as suas alterações aplicam-se a todos os rails, lançamentos a partir do chat do agente e ao Companion que o usam. Os rails continuam a executar a última versão publicada enquanto edita. Use Restaurar original para voltar à versão predefinida.`,restored:`Loop integrado restaurado para a versão original`,confirmTitle:`Restaurar o loop integrado original?`,confirmBody:`Isto descarta as suas alterações a este loop integrado e publica a versão original para todos os rails que o usam. Duplique-o primeiro se quiser manter a sua versão.`},addNode:`Adicionar nó`,deleteNode:`Eliminar nó`,config:{maxIterations:`Iterações máximas`,timeout:`Tempo limite (min)`,maxIterationsHint:`Limite de iterações do Loop Decider — o loop para ao atingi-lo mesmo que o objetivo não seja cumprido. Evita loops infinitos.`,timeoutHint:`Limite de tempo real de toda a execução, em minutos. Se excedido, a execução é interrompida e marcada como falha — uma rede de segurança junto com as iterações máximas. 0 desativa este limite de tempo; os outros orçamentos e o cancelamento continuam ativos.`,maxCost:`Custo máx ($)`,maxCostHint:`Orçamento opcional em USD para toda a execução. Verificado ENTRE passos (o custo de um passo só é conhecido ao terminá-lo), o loop para antes do próximo passo quando o total freestylepassa — pode passar um passo. Em provedores não-Claude o custo é estimado. Vazio = sem limite.`},nodes:{start:`Início`,"ai-step":`Passo de IA`,shell:`Shell`,decider:`Decisor do Loop`,condition:`Condição`,end:`Fim`},inspector:{selectNode:`Selecione um nó para o editar.`,prompt:`Prompt`,provider:`Fornecedor`,model:`Modelo`,effort:`Esforço de raciocínio`,command:`Comando`,goal:`Objetivo / critérios de paragem`,join:`Junção`,outcome:`Resultado`,startNote:`O ponto de entrada do loop. Ligue-o ao primeiro passo.`,promptHint:`Clique ou arraste um token para inseri-lo no prompt.`,tokensSpec:`Campos da spec`,tokensJira:`Jira`,tokensCommands:`Comandos`,label:`Nome`},branch:{continue:`↻ Continuar`,stop:`✓ Parar`},edgesHelp:{label:`Como as etapas se conectam`,body:`As setas definem a ORDEM de execução, não os dados — as caixas não têm portas de entrada e as conexões não carregam parâmetros. Cada AI Step retoma automaticamente sua sessão (todo o contexto anterior) mais um breve resumo das etapas anteriores; nada é ligado manualmente. O Loop Decider tem duas saídas: ↻ Continuar (objetivo não atingido → volta ao loop) e ✓ Parar (objetivo atingido → sai).`},arrange:{label:`Organizar`,vertical:`Vertical`,horizontal:`Horizontal`,grid:`Grade`,reset:`Redefinir`},constants:{label:`Constantes`,manage:`Gerenciar constantes`,title:`Constantes do loop`,empty:`Ainda não há constantes personalizadas.`,name:`NOME`,value:`valor`,add:`Adicionar`,builtinBadge:`Integradas`},paste:{done_one:`{{count}} passo colado`,done_other:`{{count}} passos colados`},problems:{count_one:`{{count}} problema`,count_other:`{{count}} problemas`,NO_START:`Adicione um nó de Início.`,MULTIPLE_START:`Só é permitido um nó de Início.`,NO_END:`Adicione pelo menos um nó de Fim.`,ORPHAN:`Este passo não é acessível a partir do Início.`,DECIDER_BRANCHES:`O Loop Decider precisa de uma ramificação Continuar e uma Parar.`,EMPTY_PROMPT:`O AI Step está com o prompt vazio.`,EMPTY_COMMAND:`O passo Shell está com o comando vazio.`,EMPTY_GOAL:`O Loop Decider não tem objetivo.`,DEAD_END:`Este passo não tem conexão de saída.`,MIXED_ENGINES:`Não misture etapas antigas com etapas Core.`,CORE_OUTCOMES:`Ligue resultados distintos e válidos.`,CORE_PIECE:`Selecione uma etapa e os seus parâmetros.`},preview:{label:`Pré-visualizar`,title:`Pré-visualização (dry-run)`,sampleNote:`Os valores do spec são exemplos; comandos e constantes são resolvidos como em execução.`,empty:`Nenhum passo para pré-visualizar.`,error:`Falha na pré-visualização`},core:{unavailable:`Motor indisponível. Atualize o Core para adicionar ou publicar etapas.`,root:`Workflow principal`,components:`Componentes`,componentName:`Nome do componente`,addComponent:`Adicionar componente`,openComponent:`Abrir componente`,breadcrumbs:`Navegação do workflow`,select:`Escolha uma opção`,valueType:`Tipo de valor`,addItem:`Adicionar item`,fieldName:`Nome do campo`,addField:`Adicionar {{name}}`,removeField:`Remover {{name}}`,variant:`Formato de {{name}}`,tooDeep:`O valor contém demasiados níveis.`,pieces:{prompt:`Prompt`,"role-turn":`Agent step`,decider:`Decisão`,condition:`Condição`,verify:`Verificar`,shell:`Shell`,"openspec-validate":`Validar OpenSpec`,"openspec-archive":`Arquivar OpenSpec`,approval:`Aprovação`,question:`Pergunta`,gate:`Pausa`,map:`Mapear`,join:`Unir`,component:`Componente`,implementation:`Implementação`,end:`Fim`,assign:`Definir variáveis`,"implementation-step":`Implementation step`,"artifact-contract":`Artifact contract`},groups:{ai:`IA`,verification:`Verificação`,openspec:`OpenSpec`,control:`Controlo de fluxo`},options:`Opções do workflow`,reviewerStep:`Nó de evidências de revisão`,reviewerAutomatic:`Automático (revisões de implementação)`,reviewerHint:`Escolha o turno de função que fornece a revisão estruturada. A revisão por IA não substitui a verificação do host.`,assignment:{set:`Definir valores`,increment:`Ajustar contadores`},requiredContinue:`Continuar enquanto esta condição se verificar`,agentTaskDefault:`Execute the task defined for this step using the workflow context.`,legacyImplementation:`This step retains phases from an earlier version. Add an Agent step to define your own step. For builtin loops, Restore original loads the new workflow.`},loopSettings:`Advanced settings`},m={steps:`Passos`,limits:`máx. {{iterations}} iterações · {{timeout}} min de timeout`,limitsNoTimeout:`máx. {{iterations}} iterações · sem timeout`,openInBuilder:`Abrir no builder`,builtin:`Integrado`},h=`Integrado`,g={title:`Executar {{name}}`,subtitle:`Inicia este loop num projeto (sem ticket).`,project:`Projeto`,provider:`Provedor`,model:`Modelo`,effort:`Esforço de raciocínio`,execute:`Executar`,noProjects:`Sem projetos disponíveis.`,launched:`Executando {{name}}`},_={"ship-and-green":{name:`Ship & Green`,description:`Totalmente autônomo: implementa a spec, verifica e refina (corrige) em caso de falha — repetindo verificar → corrigir → verificar até tudo ficar verde. Sem intervenção humana.`},"verify-pass":{name:`Verificação`,description:`Verificação e correção autônomas: detecta e executa o build/lint/testes do projeto e, em caso de falha, refina — verificar → corrigir → verificar até ficar verde.`},"ci-watch":{name:`Monitorar CI`,description:`Consulta as verificações de CI no PR aberto (o agente usa as ferramentas de CI do repositório) até que todas fiquem verdes.`},"lint-and-fix":{name:`Lint & Corrigir`,description:`O agente detecta e executa o lint do projeto e corrige cada problema, iterando até o código ficar limpo.`},"type-safe":{name:`Tipos Seguros`,description:`O agente detecta e executa o verificador de tipos do projeto e resolve cada erro, iterando até passar sem problemas.`},"coverage-climb":{name:`Subir Cobertura`,description:`O agente executa a ferramenta de cobertura do projeto e adiciona testes focados até atingir os limites exigidos.`},"build-fix":{name:`Corrigir Build`,description:`O agente detecta e executa o build de produção do projeto e corrige erros de compilação/empacotamento até ficar verde.`},"deploy-check":{name:`Checar Deploy`,description:`O agente consulta o status de deploy/saúde (usando as ferramentas de deploy do projeto) até o serviço reportar que está saudável.`},factory_implement:{name:`Implementar`,description:`Implementa todas as specs do rail numa única execução: planeia, implementa, revê e verifica, corrigindo falhas até as verificações passarem.`},factory_freestyle:{name:`Freestyle`,description:`Entrega a spec diretamente ao modelo com total liberdade — sem pipeline, ele trabalha como um agente de código normal, depois verifica + refina até ficar verde. Somente Claude.`},factory_openspec:{name:`OpenSpec Lifecycle`,description:`Ciclo OpenSpec do ticket ao arquivo: gera artefatos (opsx:ff) → implementa (opsx:apply) → verifica (opsx:verify); em FAIL volta e emenda o mesmo change, em PASS arquiva sem intervenção.`},factory_revision:{name:`Revisão`,description:`Aplica a única alteração que pediu sobre o trabalho já entregue, faz o revisor pontuar de novo e verifica até ficar verde. Não replaneia do zero.`}},v={selectInterrupt:`Selecionar pergunta ou aprovação pendente`,answerQuestion:`Responder à pergunta`,approval:`Aprovação`,approveContinue:`Aprovar e continuar`,paused:`Em pausa`,acceptance:`Aceitação`,verified:`Verificado`,hostBlocked:`Bloqueado pelo ambiente do host`,blockerKind:{network:`Rede`,credential:`Credenciais`,"environment-variable":`Variável de ambiente`,toolchain:`Ferramentas`,setup:`Comando de preparação`,environment:`Ambiente`,scope:`Fora do escopo`},failingCommand:`Comando com falha`,inDirectory:`em {{cwd}}`,requiredAction:`Ação necessária`,copyCommand:`Copiar comando`,copiedCommand:`Copiado`},y={title:`Converter {{name}} para Core`,description:`O Core valida o grafo convertido antes de o guardar como rascunho. O original continua disponível para exportação. Reveja o novo workflow antes de o publicar.`,repository:`Repositório dos passos shell sem destino`,selectRepository:`Escolha o repositório original`,submit:`Converter e rever`,pending:`A converter…`,error:`A conversão falhou`,coreRequired:`Atualize o Core para converter este workflow.`},b={title:`Verificação da migração para o Core`,description:`Verifica cada loop guardado com o Core instalado. Nada é convertido nem publicado automaticamente.`,check:`Verificar`,checking:`A verificar…`,failed:`Não foi possível verificar os loops.`,empty:`Não há loops guardados.`,allCurrent:`Todos os loops já usam o Core e são válidos.`,states:{current:`Atualizado`,invalid:`Rejeitado pelo Core instalado`,convertible:`Pronto a converter`,needs_attention:`Requer atenção`,running:`Em execução`}},x={open:`Open in window`},S={title:e,subtitle:t,newLoop:n,sections:r,gallery:i,categories:a,status:o,empty:s,actions:c,card:l,confirmDelete:u,newLoopName:d,errors:f,builder:p,preview:m,builtInBadge:h,run:g,catalog:_,import:{done_one:`{{count}} loop importado`,done_other:`{{count}} loops importados`,skipped_one:`{{count}} duplicado ignorado: {{names}}`,skipped_other:`{{count}} duplicados ignorados: {{names}}`,invalid:`Esse arquivo não é uma exportação de loops válida.`},core:v,conversion:y,migration:b,window:x};export{c as actions,p as builder,h as builtInBadge,l as card,_ as catalog,a as categories,u as confirmDelete,y as conversion,v as core,S as default,s as empty,f as errors,i as gallery,b as migration,n as newLoop,d as newLoopName,m as preview,g as run,r as sections,o as status,t as subtitle,e as title,x as window};
|