specrails-desktop 2.64.2 → 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/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
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/activity-Cevl82ke.js","assets/rolldown-runtime-CNC7AqOf.js","assets/addspec-DOFo9pD5.js","assets/agent-DcsoTnuE.js","assets/agentRuntime-BijLh8I9.js","assets/agents-EN1Zl4YZ.js","assets/agentstudio-DIE_HjsX.js","assets/aiedit-BrqMZvbc.js","assets/analytics-BRi4KQD6.js","assets/attachments-B53PG733.js","assets/browser-CG0PE1j_.js","assets/builder-BMVvSr4v.js","assets/chat-BGD7MXAy.js","assets/code-CK6pm8wY.js","assets/commands-DNox0Edk.js","assets/common-5H4TkaoI.js","assets/dashboard-6zGLGcEz.js","assets/explore--NOz9LCN.js","assets/inbox-CFNPDhso.js","assets/integrations-BmX_XyJq.js","assets/jira-CkwjeJz6.js","assets/jobs-DT5s4fZ6.js","assets/loops-BogV595N.js","assets/mcp-DbGSFC3f.js","assets/narration-MYlfktga.js","assets/nav-DZJbFbah.js","assets/onboarding-BdZQnNm3.js","assets/packet-aasskOE7.js","assets/recovery-pITlc--v.js","assets/settings-DnWFoY-F.js","assets/setup-DxTBkX3P.js","assets/specs-7tAb4IKr.js","assets/subscriptionUsage-CdlE5Mg1.js","assets/terminal-AbUAmCxE.js","assets/tickets-Bfo2GGmH.js","assets/undo-ds8nMFbX.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
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{t as i}from"./preload-helper-Czpn1I53.js";import{t as a}from"./activity-Cevl82ke.js";import{t as o}from"./addspec-DOFo9pD5.js";import{t as s}from"./agent-DcsoTnuE.js";import{t as c}from"./agentRuntime-BijLh8I9.js";import{t as l}from"./agents-EN1Zl4YZ.js";import{t as u}from"./agentstudio-DIE_HjsX.js";import{t as d}from"./aiedit-BrqMZvbc.js";import{t as f}from"./analytics-BRi4KQD6.js";import{t as p}from"./attachments-B53PG733.js";import{t as m}from"./browser-CG0PE1j_.js";import{t as h}from"./builder-BMVvSr4v.js";import{t as g}from"./chat-BGD7MXAy.js";import{t as _}from"./code-CK6pm8wY.js";import{t as v}from"./commands-DNox0Edk.js";import{t as y}from"./common-5H4TkaoI.js";import{t as b}from"./dashboard-6zGLGcEz.js";import{t as x}from"./explore--NOz9LCN.js";import{t as S}from"./inbox-CFNPDhso.js";import{t as C}from"./integrations-BmX_XyJq.js";import{t as w}from"./jira-CkwjeJz6.js";import{t as T}from"./jobs-DT5s4fZ6.js";import{t as E}from"./loops-BogV595N.js";import{t as ee}from"./mcp-DbGSFC3f.js";import{t as D}from"./narration-MYlfktga.js";import{t as te}from"./nav-DZJbFbah.js";import{t as O}from"./onboarding-BdZQnNm3.js";import{t as ne}from"./packet-aasskOE7.js";import{t as k}from"./recovery-pITlc--v.js";import{t as A}from"./settings-DnWFoY-F.js";import{t as re}from"./setup-DxTBkX3P.js";import{t as j}from"./specs-7tAb4IKr.js";import{t as M}from"./subscriptionUsage-CdlE5Mg1.js";import{t as ie}from"./terminal-AbUAmCxE.js";import{t as ae}from"./tickets-Bfo2GGmH.js";import{t as oe}from"./undo-ds8nMFbX.js";import{c as se,o as ce}from"./createLucideIcon-DtODIU64.js";import{t as le}from"./origin-03nTuaOb.js";var N=e=>typeof e==`string`,P=()=>{let e,t,n=new Promise((n,r)=>{e=n,t=r});return n.resolve=e,n.reject=t,n},ue=e=>e==null?``:String(e),F=(e,t,n)=>{e.forEach(e=>{t[e]&&(n[e]=t[e])})},de=/###/g,fe=e=>e&&e.includes(`###`)?e.replace(de,`.`):e,I=e=>!e||N(e),L=(e,t,n)=>{let r=N(t)?t.split(`.`):t,i=0;for(;i<r.length-1;){if(I(e))return{};let t=fe(r[i]);!e[t]&&n&&(e[t]=new n),e=Object.prototype.hasOwnProperty.call(e,t)?e[t]:{},++i}return I(e)?{}:{obj:e,k:fe(r[i])}},pe=(e,t,n)=>{let{obj:r,k:i}=L(e,t,Object);if(r!==void 0||t.length===1){r[i]=n;return}let a=t[t.length-1],o=t.slice(0,t.length-1),s=L(e,o,Object);for(;s.obj===void 0&&o.length;)a=`${o[o.length-1]}.${a}`,o=o.slice(0,o.length-1),s=L(e,o,Object),s?.obj&&s.obj[`${s.k}.${a}`]!==void 0&&(s.obj=void 0);s.obj[`${s.k}.${a}`]=n},me=(e,t,n,r)=>{let{obj:i,k:a}=L(e,t,Object);i[a]=i[a]||[],i[a].push(n)},R=(e,t)=>{let{obj:n,k:r}=L(e,t);if(n&&Object.prototype.hasOwnProperty.call(n,r))return n[r]},he=(e,t,n)=>{let r=R(e,n);return r===void 0?R(t,n):r},ge=(e,t,n)=>{for(let r in t)r!==`__proto__`&&r!==`constructor`&&(Object.prototype.hasOwnProperty.call(e,r)?N(e[r])||e[r]instanceof String||N(t[r])||t[r]instanceof String?n&&(e[r]=t[r]):ge(e[r],t[r],n):e[r]=t[r]);return e},z=e=>e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,`\\$&`),B={"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`,"/":`/`},_e=e=>N(e)?e.replace(/[&<>"'\/]/g,e=>B[e]):e,V=class{constructor(e){this.capacity=e,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(e){let t=this.regExpMap.get(e);if(t!==void 0)return t;let n=new RegExp(e);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(e,n),this.regExpQueue.push(e),n}},ve=[` `,`,`,`?`,`!`,`;`],ye=new V(20),be=(e,t,n)=>{t||=``,n||=``;let r=ve.filter(e=>!t.includes(e)&&!n.includes(e));if(r.length===0)return!0;let i=ye.getRegExp(`(${r.map(e=>e===`?`?`\\?`:e).join(`|`)})`),a=!i.test(e);if(!a){let t=e.indexOf(n);t>0&&!i.test(e.substring(0,t))&&(a=!0)}return a},xe=(e,t,n=`.`)=>{if(!e)return;if(e[t])return Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0;let r=t.split(n),i=e;for(let e=0;e<r.length;){if(!i||typeof i!=`object`)return;let t,a=``;for(let o=e;o<r.length;++o)if(o!==e&&(a+=n),a+=r[o],t=i[a],t!==void 0){if([`string`,`number`,`boolean`].includes(typeof t)&&o<r.length-1)continue;e+=o-e+1;break}i=t}return i},Se=e=>e?.replace(/_/g,`-`),Ce={type:`logger`,log(e){this.output(`log`,e)},warn(e){this.output(`warn`,e)},error(e){this.output(`error`,e)},output(e,t){console?.[e]?.apply?.(console,t)}},H=new class e{constructor(e,t={}){this.init(e,t)}init(e,t={}){this.prefix=t.prefix||`i18next:`,this.logger=e||Ce,this.options=t,this.debug=t.debug}log(...e){return this.forward(e,`log`,``,!0)}warn(...e){return this.forward(e,`warn`,``,!0)}error(...e){return this.forward(e,`error`,``)}deprecate(...e){return this.forward(e,`warn`,`WARNING DEPRECATED: `,!0)}forward(e,t,n,r){return r&&!this.debug?null:(e=e.map(e=>N(e)?e.replace(/[\r\n\x00-\x1F\x7F]/g,` `):e),N(e[0])&&(e[0]=`${n}${this.prefix} ${e[0]}`),this.logger[t](e))}create(t){return new e(this.logger,{prefix:`${this.prefix}:${t}:`,...this.options})}clone(t){return t||=this.options,t.prefix=t.prefix||this.prefix,new e(this.logger,t)}},we=class{constructor(){this.observers={}}on(e,t){return e.split(` `).forEach(e=>{this.observers[e]||(this.observers[e]=new Map);let n=this.observers[e].get(t)||0;this.observers[e].set(t,n+1)}),this}off(e,t){if(this.observers[e]){if(!t){delete this.observers[e];return}this.observers[e].delete(t)}}once(e,t){let n=(...r)=>{t(...r),this.off(e,n)};return this.on(e,n),this}emit(e,...t){this.observers[e]&&Array.from(this.observers[e].entries()).forEach(([e,n])=>{for(let r=0;r<n;r++)e(...t)}),this.observers[`*`]&&Array.from(this.observers[`*`].entries()).forEach(([n,r])=>{for(let i=0;i<r;i++)n(e,...t)})}},Te=new WeakSet,Ee=class extends we{constructor(e,t={ns:[`translation`],defaultNS:`translation`}){super(),this.data=e||{},this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator=`.`),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(e){this.options.ns.includes(e)||this.options.ns.push(e)}removeNamespaces(e){let t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}getResource(e,t,n,r={}){let i=r.keySeparator===void 0?this.options.keySeparator:r.keySeparator,a=r.ignoreJSONStructure===void 0?this.options.ignoreJSONStructure:r.ignoreJSONStructure,o;e.includes(`.`)?o=e.split(`.`):(o=[e,t],n&&(Array.isArray(n)?o.push(...n):N(n)&&i?o.push(...n.split(i)):o.push(n)));let s=R(this.data,o);return!s&&!t&&!n&&e.includes(`.`)&&(e=o[0],t=o[1],n=o.slice(2).join(`.`)),s||!a||!N(n)?s:xe(this.data?.[e]?.[t],n,i)}addResource(e,t,n,r,i={silent:!1}){let a=i.keySeparator===void 0?this.options.keySeparator:i.keySeparator,o=[e,t];n&&(o=o.concat(a?n.split(a):n)),e.includes(`.`)&&(o=e.split(`.`),r=t,t=o[1]),this.addNamespaces(t),pe(this.data,o,r),i.silent||this.emit(`added`,e,t,n,r)}addResources(e,t,n,r={silent:!1}){for(let r in n)(N(n[r])||Array.isArray(n[r]))&&this.addResource(e,t,r,n[r],{silent:!0});r.silent||this.emit(`added`,e,t,n)}addResourceBundle(e,t,n,r,i,a={silent:!1,skipCopy:!1}){let o=[e,t];e.includes(`.`)&&(o=e.split(`.`),r=n,n=t,t=o[1]),this.addNamespaces(t);let s=R(this.data,o)||{};a.skipCopy||(n=JSON.parse(JSON.stringify(n))),r?ge(s,n,i):s={...s,...n},pe(this.data,o,s),a.silent||this.emit(`added`,e,t,n)}removeResourceBundle(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit(`removed`,e,t)}hasResourceBundle(e,t){return this.getResource(e,t)!==void 0}getResourceBundle(e,t){return t||=this.options.defaultNS,this.getResource(e,t)}getDataByLanguage(e){return this.data[e]}hasLanguageSomeTranslations(e){let t=this.getDataByLanguage(e);return!!(t&&Object.keys(t)||[]).find(e=>{let n=t[e];return Te.has(n)?!0:!n||Object.keys(n).length===0?!1:(typeof n==`object`&&Te.add(n),!0)})}toJSON(){return this.data}},De={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,t,n,r,i){return e.forEach(e=>{t=this.processors[e]?.process(t,n,r,i)??t}),t}},Oe=Symbol(`i18next/PATH_KEY`);function ke(){let e=[],t=Object.create(null),n;return t.get=(r,i)=>(n?.revoke?.(),i===Oe?e:(e.push(i),n=Proxy.revocable(r,t),n.proxy)),Proxy.revocable(Object.create(null),t).proxy}function U(e,t){let{[Oe]:n}=e(ke()),r=t?.keySeparator??`.`,i=t?.nsSeparator??`:`,a=t?.enableSelector===`strict`;if(n.length>1&&i){let e=t?.ns,o=a?Array.isArray(e)?e:e?[e]:null:Array.isArray(e)?e:null;if(o&&(a?o:o.length>1?o.slice(1):[]).includes(n[0]))return`${n[0]}${i}${n.slice(1).join(r)}`}return n.join(r)}var Ae=e=>!N(e)&&typeof e!=`boolean`&&typeof e!=`number`,je=class e extends we{constructor(e,t={}){super(),F([`resourceStore`,`languageUtils`,`pluralResolver`,`interpolator`,`backendConnector`,`i18nFormat`,`utils`],e,this),this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator=`.`),this.logger=H.create(`translator`),this.checkedLoadedFor={}}changeLanguage(e){e&&(this.language=e)}exists(e,t={interpolation:{}}){let n={...t};if(e==null)return!1;let r=this.resolve(e,n);if(r?.res===void 0)return!1;let i=Ae(r.res);return!(n.returnObjects===!1&&i)}extractFromKey(e,t){let n=t.nsSeparator===void 0?this.options.nsSeparator:t.nsSeparator;n===void 0&&(n=`:`);let r=t.keySeparator===void 0?this.options.keySeparator:t.keySeparator,i=t.ns||this.options.defaultNS||[],a=n&&e.includes(n),o=!this.options.userDefinedKeySeparator&&!t.keySeparator&&!this.options.userDefinedNsSeparator&&!t.nsSeparator&&!be(e,n,r);if(a&&!o){let t=e.match(this.interpolator.nestingRegexp);if(t&&t.length>0)return{key:e,namespaces:N(i)?[i]:i};let a=e.split(n);(n!==r||n===r&&this.options.ns.includes(a[0]))&&(i=a.shift()),e=a.join(r)}return{key:e,namespaces:N(i)?[i]:i}}translate(t,n,r){let i=typeof n==`object`?{...n}:n;if(typeof i!=`object`&&this.options.overloadTranslationOptionHandler&&(i=this.options.overloadTranslationOptionHandler(arguments)),typeof i==`object`&&(i={...i}),i||={},t==null)return``;typeof t==`function`&&(t=U(t,{...this.options,...i})),Array.isArray(t)||(t=[String(t)]),t=t.map(e=>typeof e==`function`?U(e,{...this.options,...i}):String(e));let a=i.returnDetails===void 0?this.options.returnDetails:i.returnDetails,o=i.keySeparator===void 0?this.options.keySeparator:i.keySeparator,{key:s,namespaces:c}=this.extractFromKey(t[t.length-1],i),l=c[c.length-1],u=i.nsSeparator===void 0?this.options.nsSeparator:i.nsSeparator;u===void 0&&(u=`:`);let d=i.lng||this.language,f=i.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(d?.toLowerCase()===`cimode`)return f?a?{res:`${l}${u}${s}`,usedKey:s,exactUsedKey:s,usedLng:d,usedNS:l,usedParams:this.getUsedParamsDetails(i)}:`${l}${u}${s}`:a?{res:s,usedKey:s,exactUsedKey:s,usedLng:d,usedNS:l,usedParams:this.getUsedParamsDetails(i)}:s;let p=this.resolve(t,i),m=p?.res,h=p?.usedKey||s,g=p?.exactUsedKey||s,_=[`[object Number]`,`[object Function]`,`[object RegExp]`],v=i.joinArrays===void 0?this.options.joinArrays:i.joinArrays,y=!this.i18nFormat||this.i18nFormat.handleAsObject,b=i.count!==void 0&&!N(i.count),x=e.hasDefaultValue(i),S=b?this.pluralResolver.getSuffix(d,i.count,i):``,C=i.ordinal&&b?this.pluralResolver.getSuffix(d,i.count,{ordinal:!1}):``,w=b&&!i.ordinal&&i.count===0,T=w&&i[`defaultValue${this.options.pluralSeparator}zero`]||i[`defaultValue${S}`]||i[`defaultValue${C}`]||i.defaultValue,E=m;y&&!m&&x&&(E=T);let ee=Ae(E),D=Object.prototype.toString.apply(E);if(y&&E&&ee&&!_.includes(D)&&!(N(v)&&Array.isArray(E))){if(!i.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn(`accessing an object - but returnObjects options is not enabled!`);let e=this.options.returnedObjectHandler?this.options.returnedObjectHandler(h,E,{...i,ns:c}):`key '${s} (${this.language})' returned an object instead of string.`;return a?(p.res=e,p.usedParams=this.getUsedParamsDetails(i),p):e}if(o){let e=Array.isArray(E),t=e?[]:{},n=e?g:h;for(let e in E)if(Object.prototype.hasOwnProperty.call(E,e)){let r=`${n}${o}${e}`;x&&!m?t[e]=this.translate(r,{...i,defaultValue:Ae(T)?T[e]:void 0,joinArrays:!1,ns:c}):t[e]=this.translate(r,{...i,joinArrays:!1,ns:c}),t[e]===r&&(t[e]=E[e])}m=t}}else if(y&&N(v)&&Array.isArray(m))m=m.join(v),m&&=this.extendTranslation(m,t,i,r);else{let e=!1,n=!1;!this.isValidLookup(m)&&x&&(e=!0,m=T),this.isValidLookup(m)||(n=!0,m=s);let a=(i.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&n?void 0:m,c=x&&T!==m&&this.options.updateMissing;if(n||e||c){if(this.logger.log(c?`updateKey`:`missingKey`,d,l,b&&!c?`${s}${this.pluralResolver.getSuffix(d,i.count,i)}`:s,c?T:m),o){let e=this.resolve(s,{...i,keySeparator:!1});e&&e.res&&this.logger.warn(`Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.`)}let e=[],t=this.languageUtils.getFallbackCodes(this.options.fallbackLng,i.lng||this.language);if(this.options.saveMissingTo===`fallback`&&t&&t[0])for(let n=0;n<t.length;n++)e.push(t[n]);else this.options.saveMissingTo===`all`?e=this.languageUtils.toResolveHierarchy(i.lng||this.language):e.push(i.lng||this.language);let n=(e,t,n)=>{let r=x&&n!==m?n:a;this.options.missingKeyHandler?this.options.missingKeyHandler(e,l,t,r,c,i):this.backendConnector?.saveMissing&&this.backendConnector.saveMissing(e,l,t,r,c,i),this.emit(`missingKey`,e,l,t,m)};this.options.saveMissing&&(this.options.saveMissingPlurals&&b?e.forEach(e=>{let t=this.pluralResolver.getSuffixes(e,i);w&&i[`defaultValue${this.options.pluralSeparator}zero`]&&!t.includes(`${this.options.pluralSeparator}zero`)&&t.push(`${this.options.pluralSeparator}zero`),t.forEach(t=>{n([e],s+t,i[`defaultValue${t}`]||T)})}):n(e,s,T))}m=this.extendTranslation(m,t,i,p,r),n&&m===s&&this.options.appendNamespaceToMissingKey&&(m=`${l}${u}${s}`),(n||e)&&this.options.parseMissingKeyHandler&&(m=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${l}${u}${s}`:s,e?m:void 0,i))}return a?(p.res=m,p.usedParams=this.getUsedParamsDetails(i),p):m}extendTranslation(e,t,n,r,i){if(this.i18nFormat?.parse)e=this.i18nFormat.parse(e,{...this.options.interpolation.defaultVariables,...n},n.lng||this.language||r.usedLng,r.usedNS,r.usedKey,{resolved:r});else if(!n.skipInterpolation){n.interpolation&&this.interpolator.init({...n,interpolation:{...this.options.interpolation,...n.interpolation}});let a=N(e)&&(n?.interpolation?.skipOnVariables===void 0?this.options.interpolation.skipOnVariables:n.interpolation.skipOnVariables),o;if(a){let t=e.match(this.interpolator.nestingRegexp);o=t&&t.length}let s=n.replace&&!N(n.replace)?n.replace:n;if(this.options.interpolation.defaultVariables&&(s={...this.options.interpolation.defaultVariables,...s}),e=this.interpolator.interpolate(e,s,n.lng||this.language||r.usedLng,n),a){let t=e.match(this.interpolator.nestingRegexp),r=t&&t.length;o<r&&(n.nest=!1)}!n.lng&&r&&r.res&&(n.lng=this.language||r.usedLng),n.nest!==!1&&(e=this.interpolator.nest(e,(...e)=>i?.[0]===e[0]&&!n.context?(this.logger.warn(`It seems you are nesting recursively key: ${e[0]} in key: ${t[0]}`),null):this.translate(...e,t),n)),n.interpolation&&this.interpolator.reset()}let a=n.postProcess||this.options.postProcess,o=N(a)?[a]:a;return e!=null&&o?.length&&n.applyPostProcessor!==!1&&(e=De.handle(o,e,t,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...r,usedParams:this.getUsedParamsDetails(n)},...n}:n,this)),e}resolve(e,t={}){let n,r,i,a,o;return N(e)&&(e=[e]),Array.isArray(e)&&(e=e.map(e=>typeof e==`function`?U(e,{...this.options,...t}):e)),e.forEach(e=>{if(this.isValidLookup(n))return;let s=this.extractFromKey(e,t),c=s.key;r=c;let l=s.namespaces;this.options.fallbackNS&&(l=l.concat(this.options.fallbackNS));let u=t.count!==void 0&&!N(t.count),d=u&&!t.ordinal&&t.count===0,f=t.context!==void 0&&(N(t.context)||typeof t.context==`number`)&&t.context!==``,p=t.lngs?t.lngs:this.languageUtils.toResolveHierarchy(t.lng||this.language,t.fallbackLng);l.forEach(e=>{this.isValidLookup(n)||(o=e,!this.checkedLoadedFor[`${p[0]}-${e}`]&&this.utils?.hasLoadedNamespace&&!this.utils?.hasLoadedNamespace(o)&&(this.checkedLoadedFor[`${p[0]}-${e}`]=!0,this.logger.warn(`key "${r}" for languages "${p.join(`, `)}" won't get resolved as namespace "${o}" was not yet loaded`,`This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!`)),p.forEach(r=>{if(this.isValidLookup(n))return;a=r;let o=[c];if(this.i18nFormat?.addLookupKeys)this.i18nFormat.addLookupKeys(o,c,r,e,t);else{let e;u&&(e=this.pluralResolver.getSuffix(r,t.count,t));let n=`${this.options.pluralSeparator}zero`,i=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(u&&(t.ordinal&&e.startsWith(i)&&o.push(c+e.replace(i,this.options.pluralSeparator)),o.push(c+e),d&&o.push(c+n)),f){let r=`${c}${this.options.contextSeparator||`_`}${t.context}`;o.push(r),u&&(t.ordinal&&e.startsWith(i)&&o.push(r+e.replace(i,this.options.pluralSeparator)),o.push(r+e),d&&o.push(r+n))}}let s;for(;s=o.pop();)this.isValidLookup(n)||(i=s,n=this.getResource(r,e,s,t))}))})}),{res:n,usedKey:r,exactUsedKey:i,usedLng:a,usedNS:o}}isValidLookup(e){return e!==void 0&&!(!this.options.returnNull&&e===null)&&!(!this.options.returnEmptyString&&e===``)}getResource(e,t,n,r={}){return this.i18nFormat?.getResource?this.i18nFormat.getResource(e,t,n,r):this.resourceStore.getResource(e,t,n,r)}getUsedParamsDetails(e={}){let t=[`defaultValue`,`ordinal`,`context`,`replace`,`lng`,`lngs`,`fallbackLng`,`ns`,`keySeparator`,`nsSeparator`,`returnObjects`,`returnDetails`,`joinArrays`,`postProcess`,`interpolation`],n=e.replace&&!N(e.replace),r=n?e.replace:e;if(n&&e.count!==void 0&&(r={...r,count:e.count}),this.options.interpolation.defaultVariables&&(r={...this.options.interpolation.defaultVariables,...r}),!n){r={...r};for(let e of t)delete r[e]}return r}static hasDefaultValue(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)&&t.startsWith(`defaultValue`)&&e[t]!==void 0)return!0;return!1}},Me=class{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=H.create(`languageUtils`),this.resolveHierarchyCache={}}clearCache(){this.resolveHierarchyCache={}}getScriptPartFromCode(e){if(e=Se(e),!e||!e.includes(`-`))return null;let t=e.split(`-`);return t.length===2||(t.pop(),t[t.length-1].toLowerCase()===`x`)?null:this.formatLanguageCode(t.join(`-`))}getLanguagePartFromCode(e){if(e=Se(e),!e||!e.includes(`-`))return e;let t=e.split(`-`);return this.formatLanguageCode(t[0])}formatLanguageCode(e){if(N(e)&&e.includes(`-`)){let t;try{t=Intl.getCanonicalLocales(e)[0]}catch{}return t&&this.options.lowerCaseLng&&(t=t.toLowerCase()),t||(this.options.lowerCaseLng?e.toLowerCase():e)}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}isSupportedCode(e){return(this.options.load===`languageOnly`||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.includes(e)}getBestMatchFromCodes(e){if(!e)return null;let t;return e.forEach(e=>{if(t)return;let n=this.formatLanguageCode(e);(!this.options.supportedLngs||this.isSupportedCode(n))&&(t=n)}),!t&&this.options.supportedLngs&&e.forEach(e=>{if(t)return;let n=this.getScriptPartFromCode(e);if(this.isSupportedCode(n))return t=n;let r=this.getLanguagePartFromCode(e);if(this.isSupportedCode(r))return t=r;t=this.options.supportedLngs.find(e=>e===r?!0:!e.includes(`-`)&&!r.includes(`-`)?!1:!!(e.includes(`-`)&&!r.includes(`-`)&&e.slice(0,e.indexOf(`-`))===r||e.startsWith(r)&&r.length>1))}),t||=this.getFallbackCodes(this.options.fallbackLng)[0],t}getFallbackCodes(e,t){if(!e)return[];if(typeof e==`function`&&(e=e(t)),N(e)&&(e=[e]),Array.isArray(e))return e;if(!t)return e.default||[];let n=e[t];return n||=e[this.getScriptPartFromCode(t)],n||=e[this.formatLanguageCode(t)],n||=e[this.getLanguagePartFromCode(t)],n||=e.default,n||[]}toResolveHierarchy(e,t){let n=this.options.fallbackLng,r=Array.isArray(n)?n.join(`|`):n;r!==this._cachedFallbackLng&&(this.resolveHierarchyCache={},this._cachedFallbackLng=r);let i=t===void 0||t===!1||N(t),a=t===void 0&&typeof this.options.fallbackLng==`function`,o=N(e)&&i&&!a,s=null;if(o){let n;n=t===void 0?`undefined`:t===!1?`boolean:false`:`string:${t}`,s=`${e.length}:${e}|${n}`}if(s!==null){let e=this.resolveHierarchyCache[s];if(e!==void 0)return e.slice()}let c=this.getFallbackCodes((t===!1?[]:t)||this.options.fallbackLng||[],e),l=[],u=e=>{e&&(this.isSupportedCode(e)?l.push(e):this.logger.warn(`rejecting language code not found in supportedLngs: ${e}`))};return N(e)&&(e.includes(`-`)||e.includes(`_`))?(this.options.load!==`languageOnly`&&u(this.formatLanguageCode(e)),this.options.load!==`languageOnly`&&this.options.load!==`currentOnly`&&u(this.getScriptPartFromCode(e)),this.options.load!==`currentOnly`&&u(this.getLanguagePartFromCode(e))):N(e)&&u(this.formatLanguageCode(e)),c.forEach(e=>{l.includes(e)||u(this.formatLanguageCode(e))}),s===null?l:(this.resolveHierarchyCache[s]=l,l.slice())}},Ne={zero:0,one:1,two:2,few:3,many:4,other:5},Pe={select:e=>e===1?`one`:`other`,resolvedOptions:()=>({pluralCategories:[`one`,`other`]})},Fe=class{constructor(e,t={}){this.languageUtils=e,this.options=t,this.logger=H.create(`pluralResolver`),this.pluralRulesCache={}}clearCache(){this.pluralRulesCache={}}getRule(e,t={}){let n=Se(e===`dev`?`en`:e),r=t.ordinal?`ordinal`:`cardinal`,i=JSON.stringify({cleanedCode:n,type:r});if(i in this.pluralRulesCache)return this.pluralRulesCache[i];let a;try{a=new Intl.PluralRules(n,{type:r})}catch{if(typeof Intl>`u`)return this.logger.error(`No Intl support, please use an Intl polyfill!`),Pe;if(!e.match(/-|_/))return Pe;let n=this.languageUtils.getLanguagePartFromCode(e);a=this.getRule(n,t)}return this.pluralRulesCache[i]=a,a}needsPlural(e,t={}){let n=this.getRule(e,t);return n||=this.getRule(`dev`,t),n?.resolvedOptions().pluralCategories.length>1}getPluralFormsOfKey(e,t,n={}){return this.getSuffixes(e,n).map(e=>`${t}${e}`)}getSuffixes(e,t={}){let n=this.getRule(e,t);return n||=this.getRule(`dev`,t),n?n.resolvedOptions().pluralCategories.sort((e,t)=>Ne[e]-Ne[t]).map(e=>`${this.options.prepend}${t.ordinal?`ordinal${this.options.prepend}`:``}${e}`):[]}getSuffix(e,t,n={}){let r=this.getRule(e,n);return r?`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:``}${r.select(t)}`:(this.logger.warn(`no plural rule found for: ${e}`),this.getSuffix(`dev`,t,n))}},Ie=(e,t,n,r=`.`,i=!0)=>{let a=he(e,t,n);return!a&&i&&N(n)&&(a=xe(e,n,r),a===void 0&&(a=xe(t,n,r))),a},Le=e=>e.replace(/\$/g,`$$$$`),Re=class{constructor(e={}){this.logger=H.create(`interpolator`),this.options=e,this.format=e?.interpolation?.format||(e=>e),this.init(e)}init(e={}){e.interpolation||={escapeValue:!0};let{escape:t,escapeValue:n,useRawValueToEscape:r,prefix:i,prefixEscaped:a,suffix:o,suffixEscaped:s,formatSeparator:c,unescapeSuffix:l,unescapePrefix:u,nestingPrefix:d,nestingPrefixEscaped:f,nestingSuffix:p,nestingSuffixEscaped:m,nestingOptionsSeparator:h,maxReplaces:g,alwaysFormat:_}=e.interpolation;this.escape=t===void 0?_e:t,this.escapeValue=n===void 0||n,this.useRawValueToEscape=r!==void 0&&r,this.prefix=i?z(i):a||`{{`,this.suffix=o?z(o):s||`}}`,this.formatSeparator=c||`,`,this.unescapePrefix=l?``:u?z(u):`-`,this.unescapeSuffix=this.unescapePrefix?``:l?z(l):``,this.nestingPrefix=d?z(d):f||z(`$t(`),this.nestingSuffix=p?z(p):m||z(`)`),this.nestingOptionsSeparator=h||`,`,this.maxReplaces=g||1e3,this.alwaysFormat=_!==void 0&&_,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){let e=(e,t)=>e?.source===t?(e.lastIndex=0,e):new RegExp(t,`g`);this.regexp=e(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=e(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=e(this.nestingRegexp,`${this.nestingPrefix}((?:[^()"']+|"[^"]*"|'[^']*'|\\((?:[^()]|"[^"]*"|'[^']*')*\\))*?)${this.nestingSuffix}`)}interpolate(e,t,n,r){let i,a,o,s=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},c=e=>{if(!e.includes(this.formatSeparator)){let i=Ie(t,s,e,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(i,void 0,n,{...r,...t,interpolationkey:e}):i}let i=e.split(this.formatSeparator),a=i.shift().trim(),o=i.join(this.formatSeparator).trim();return this.format(Ie(t,s,a,this.options.keySeparator,this.options.ignoreJSONStructure),o,n,{...r,...t,interpolationkey:a})};this.resetRegExp(),!this.escapeValue&&typeof e==`string`&&/\$t\([^)]*\{[^}]*\{\{/.test(e)&&this.logger.warn(`nesting options string contains interpolated variables with escapeValue: false — if any of those values are attacker-controlled they can inject additional nesting options (e.g. redirect lng/ns). Sanitise untrusted input before passing it to t(), or keep escapeValue: true.`);let l=r?.missingInterpolationHandler||this.options.missingInterpolationHandler,u=r?.interpolation?.skipOnVariables===void 0?this.options.interpolation.skipOnVariables:r.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:e=>e},{regex:this.regexp,safeValue:e=>this.escapeValue?this.escape(e):e}].forEach(t=>{for(o=0;i=t.regex.exec(e);){let n=i[1].trim();if(a=c(n),a===void 0)if(typeof l==`function`){let t=l(e,i,r);a=N(t)?t:``}else if(r&&Object.prototype.hasOwnProperty.call(r,n))a=``;else if(u){a=i[0];continue}else this.logger.warn(`missed to pass in variable ${n} for interpolating ${e}`),a=``;else!N(a)&&!this.useRawValueToEscape&&(a=ue(a));let s=t.safeValue(a);if(e=e.replace(i[0],Le(s)),u?(t.regex.lastIndex+=s.length,t.regex.lastIndex-=i[0].length):t.regex.lastIndex=0,o++,o>=this.maxReplaces)break}}),e}nest(e,t,n={}){let r,i,a,o=(e,t)=>{let n=this.nestingOptionsSeparator;if(!e.includes(n))return e;let r=e.split(RegExp(`${z(n)}[ ]*{`)),i=`{${r[1]}`;e=r[0],i=this.interpolate(i,a);let o=i.match(/'/g),s=i.match(/"/g);((o?.length??0)%2==0&&!s||(s?.length??0)%2!=0)&&(i=i.replace(/'/g,`"`));try{a=JSON.parse(i),t&&(a={...t,...a})}catch(t){return this.logger.warn(`failed parsing options string in nesting for key ${e}`,t),`${e}${n}${i}`}return a.defaultValue&&a.defaultValue.includes(this.prefix)&&delete a.defaultValue,e};for(;r=this.nestingRegexp.exec(e);){let s=[];a={...n},a=a.replace&&!N(a.replace)?a.replace:a,a.applyPostProcessor=!1,delete a.defaultValue;let c=/{.*}/s.test(r[1])?r[1].lastIndexOf(`}`)+1:r[1].indexOf(this.formatSeparator);if(c!==-1&&(s=r[1].slice(c).split(this.formatSeparator).map(e=>e.trim()).filter(Boolean),r[1]=r[1].slice(0,c)),i=t(o.call(this,r[1].trim(),a),a),i&&r[0]===e&&!N(i))return i;N(i)||(i=ue(i)),i||=(this.logger.warn(`missed to resolve ${r[1]} for nesting ${e}`),``),s.length&&(i=s.reduce((e,t)=>this.format(e,t,n.lng,{...n,interpolationkey:r[1].trim()}),i.trim())),e=e.replace(r[0],Le(ue(i))),this.regexp.lastIndex=0}return e}},ze=e=>{let t=e.toLowerCase().trim(),n={};if(e.includes(`(`)){let r=e.split(`(`);t=r[0].toLowerCase().trim();let i=r[1].slice(0,-1);t===`currency`&&!i.includes(`:`)?n.currency||=i.trim():t===`relativetime`&&!i.includes(`:`)?n.range||=i.trim():i.split(`;`).forEach(e=>{if(e){let[t,...r]=e.split(`:`),i=r.join(`:`).trim().replace(/^'+|'+$/g,``),a=t.trim();n[a]||(n[a]=i),i===`false`&&(n[a]=!1),i===`true`&&(n[a]=!0),isNaN(i)||(n[a]=parseInt(i,10))}})}return{formatName:t,formatOptions:n}},Be=e=>{let t={};return(n,r,i)=>{let a=i;i&&i.interpolationkey&&i.formatParams&&i.formatParams[i.interpolationkey]&&i[i.interpolationkey]&&(a={...a,[i.interpolationkey]:void 0});let o=r+JSON.stringify(a),s=t[o];return s||(s=e(Se(r),i),t[o]=s),s(n)}},Ve=e=>(t,n,r)=>e(Se(n),r)(t),He=class{constructor(e={}){this.logger=H.create(`formatter`),this.options=e,this.init(e)}init(e,t={interpolation:{}}){this.formatSeparator=t.interpolation.formatSeparator||`,`;let n=t.cacheInBuiltFormats?Be:Ve;this.formats={number:n((e,t)=>{let n=new Intl.NumberFormat(e,{...t});return e=>n.format(e)}),currency:n((e,t)=>{let n=new Intl.NumberFormat(e,{...t,style:`currency`});return e=>n.format(e)}),datetime:n((e,t)=>{let n=new Intl.DateTimeFormat(e,{...t});return e=>n.format(e)}),relativetime:n((e,t)=>{let n=new Intl.RelativeTimeFormat(e,{...t});return e=>n.format(e,t.range||`day`)}),list:n((e,t)=>{let n=new Intl.ListFormat(e,{...t});return e=>n.format(e)})}}add(e,t){this.formats[e.toLowerCase().trim()]=t}addCached(e,t){this.formats[e.toLowerCase().trim()]=Be(t)}format(e,t,n,r={}){if(!t||e==null)return e;let i=t.split(this.formatSeparator),a=[];for(let e=0;e<i.length;e++){let t=i[e];for(;t.indexOf(`(`)>-1&&!t.includes(`)`)&&e+1<i.length;)t=`${t}${this.formatSeparator}${i[++e]}`;a.push(t)}return a.reduce((e,t)=>{let{formatName:i,formatOptions:a}=ze(t);if(this.formats[i]){let t=e;try{let o=r?.formatParams?.[r.interpolationkey]||{},s=o.locale||o.lng||r.locale||r.lng||n;t=this.formats[i](e,s,{...a,...r,...o})}catch(e){this.logger.warn(e)}return t}else this.logger.warn(`there was no format function for ${i}`);return e},e)}},Ue=(e,t)=>{e.pending[t]!==void 0&&(delete e.pending[t],e.pendingCount--)},We=class extends we{constructor(e,t,n,r={}){super(),this.backend=e,this.store=t,this.services=n,this.languageUtils=n.languageUtils,this.options=r,this.logger=H.create(`backendConnector`),this.waitingReads=[],this.maxParallelReads=r.maxParallelReads||10,this.readingCalls=0,this.maxRetries=r.maxRetries>=0?r.maxRetries:5,this.retryTimeout=r.retryTimeout>=1?r.retryTimeout:350,this.state={},this.queue=[],this.backend?.init?.(n,r.backend,r)}queueLoad(e,t,n,r){let i={},a={},o={},s={};return e.forEach(e=>{let r=!0;t.forEach(t=>{let o=`${e}|${t}`;!n.reload&&this.store.hasResourceBundle(e,t)?this.state[o]=2:this.state[o]<0||(this.state[o]===1?a[o]===void 0&&(a[o]=!0):(this.state[o]=1,r=!1,a[o]===void 0&&(a[o]=!0),i[o]===void 0&&(i[o]=!0),s[t]===void 0&&(s[t]=!0)))}),r||(o[e]=!0)}),(Object.keys(i).length||Object.keys(a).length)&&this.queue.push({pending:a,pendingCount:Object.keys(a).length,loaded:{},errors:[],callback:r}),{toLoad:Object.keys(i),pending:Object.keys(a),toLoadLanguages:Object.keys(o),toLoadNamespaces:Object.keys(s)}}loaded(e,t,n){let r=e.split(`|`),i=r[0],a=r[1];t&&this.emit(`failedLoading`,i,a,t),!t&&n&&this.store.addResourceBundle(i,a,n,void 0,void 0,{skipCopy:!0}),this.state[e]=t?-1:2,t&&n&&(this.state[e]=0);let o={};this.queue.forEach(n=>{me(n.loaded,[i],a),Ue(n,e),t&&n.errors.push(t),n.pendingCount===0&&!n.done&&(Object.keys(n.loaded).forEach(e=>{o[e]||(o[e]={});let t=n.loaded[e];t.length&&t.forEach(t=>{o[e][t]===void 0&&(o[e][t]=!0)})}),n.done=!0,n.errors.length?n.callback(n.errors):n.callback())}),this.emit(`loaded`,o),this.queue=this.queue.filter(e=>!e.done)}read(e,t,n,r=0,i=this.retryTimeout,a){if(!e.length)return a(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:e,ns:t,fcName:n,tried:r,wait:i,callback:a});return}this.readingCalls++;let o=(o,s)=>{if(this.readingCalls--,this.waitingReads.length>0){let e=this.waitingReads.shift();this.read(e.lng,e.ns,e.fcName,e.tried,e.wait,e.callback)}if(o&&s&&r<this.maxRetries){setTimeout(()=>{this.read(e,t,n,r+1,i*2,a)},i);return}a(o,s)},s=this.backend[n].bind(this.backend);if(s.length===2){try{let n=s(e,t);n&&typeof n.then==`function`?n.then(e=>o(null,e)).catch(o):o(null,n)}catch(e){o(e)}return}return s(e,t,o)}prepareLoading(e,t,n={},r){if(!this.backend)return this.logger.warn(`No backend was added via i18next.use. Will not load resources.`),r&&r();N(e)&&(e=this.languageUtils.toResolveHierarchy(e)),N(t)&&(t=[t]);let i=this.queueLoad(e,t,n,r);if(!i.toLoad.length)return i.pending.length||r(),null;i.toLoad.forEach(e=>{this.loadOne(e)})}load(e,t,n){this.prepareLoading(e,t,{},n)}reload(e,t,n){this.prepareLoading(e,t,{reload:!0},n)}loadOne(e,t=``){let n=e.split(`|`),r=n[0],i=n[1];this.read(r,i,`read`,void 0,void 0,(n,a)=>{n&&this.logger.warn(`${t}loading namespace ${i} for language ${r} failed`,n),!n&&a&&this.logger.log(`${t}loaded namespace ${i} for language ${r}`,a),this.loaded(e,n,a)})}saveMissing(e,t,n,r,i,a={},o=()=>{}){if(this.services?.utils?.hasLoadedNamespace&&!this.services?.utils?.hasLoadedNamespace(t)){this.logger.warn(`did not save key "${n}" as the namespace "${t}" was not yet loaded`,`This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!`);return}if(!(n==null||n===``)){if(this.backend?.create){let s={...a,isUpdate:i},c=this.backend.create.bind(this.backend);if(c.length<6)try{let i;i=c.length===5?c(e,t,n,r,s):c(e,t,n,r),i&&typeof i.then==`function`?i.then(e=>o(null,e)).catch(o):o(null,i)}catch(e){o(e)}else c(e,t,n,r,o,s)}!e||!e[0]||this.store.addResource(e[0],t,n,r)}}},Ge=()=>({debug:!1,initAsync:!0,ns:[`translation`],defaultNS:[`translation`],fallbackLng:[`dev`],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:`all`,preload:!1,keySeparator:`.`,nsSeparator:`:`,pluralSeparator:`_`,contextSeparator:`_`,enableSelector:!1,partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:`fallback`,saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:e=>{let t={};if(typeof e[1]==`object`&&(t=e[1]),N(e[1])&&(t.defaultValue=e[1]),N(e[2])&&(t.tDescription=e[2]),typeof e[2]==`object`||typeof e[3]==`object`){let n=e[3]||e[2];Object.keys(n).forEach(e=>{t[e]=n[e]})}return t},interpolation:{escapeValue:!0,prefix:`{{`,suffix:`}}`,formatSeparator:`,`,unescapePrefix:`-`,nestingPrefix:`$t(`,nestingSuffix:`)`,nestingOptionsSeparator:`,`,maxReplaces:1e3,skipOnVariables:!0},cacheInBuiltFormats:!0}),Ke=e=>(N(e.ns)&&(e.ns=[e.ns]),N(e.fallbackLng)&&(e.fallbackLng=[e.fallbackLng]),N(e.fallbackNS)&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs&&!e.supportedLngs.includes(`cimode`)&&(e.supportedLngs=e.supportedLngs.concat([`cimode`])),e),qe=()=>{},Je=e=>{Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach(t=>{typeof e[t]==`function`&&(e[t]=e[t].bind(e))})},W=class e extends we{constructor(e={},t){if(super(),this.options=Ke(e),this.services={},this.logger=H,this.modules={external:[]},Je(this),t&&!this.isInitialized&&!e.isClone){if(!this.options.initAsync)return this.init(e,t),this;setTimeout(()=>{this.init(e,t)},0)}}init(e={},t){this.isInitializing=!0,typeof e==`function`&&(t=e,e={}),e.defaultNS==null&&e.ns&&(N(e.ns)?e.defaultNS=e.ns:e.ns.includes(`translation`)||(e.defaultNS=e.ns[0]));let n=Ge();this.options={...n,...this.options,...Ke(e)},this.options.interpolation={...n.interpolation,...this.options.interpolation},e.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=e.keySeparator),e.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=e.nsSeparator),typeof this.options.overloadTranslationOptionHandler!=`function`&&(this.options.overloadTranslationOptionHandler=n.overloadTranslationOptionHandler);let r=e=>e?typeof e==`function`?new e:e:null;if(!this.options.isClone){this.modules.logger?H.init(r(this.modules.logger),this.options):H.init(null,this.options);let e;e=this.modules.formatter?this.modules.formatter:He;let t=new Me(this.options);this.store=new Ee(this.options.resources,this.options);let n=this.services;n.logger=H,n.resourceStore=this.store,n.languageUtils=t,n.pluralResolver=new Fe(t,{prepend:this.options.pluralSeparator}),e&&(n.formatter=r(e),n.formatter.init&&n.formatter.init(n,this.options),this.options.interpolation.format=n.formatter.format.bind(n.formatter)),n.interpolator=new Re(this.options),n.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},n.backendConnector=new We(r(this.modules.backend),n.resourceStore,n,this.options),n.backendConnector.on(`*`,(e,...t)=>{this.emit(e,...t)}),this.modules.languageDetector&&(n.languageDetector=r(this.modules.languageDetector),n.languageDetector.init&&n.languageDetector.init(n,this.options.detection,this.options)),this.modules.i18nFormat&&(n.i18nFormat=r(this.modules.i18nFormat),n.i18nFormat.init&&n.i18nFormat.init(this)),this.translator=new je(this.services,this.options),this.translator.on(`*`,(e,...t)=>{this.emit(e,...t)}),this.modules.external.forEach(e=>{e.init&&e.init(this)})}if(this.format=this.options.interpolation.format,t||=qe,this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){let e=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);e.length>0&&e[0]!==`dev`&&(this.options.lng=e[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn(`init: no languageDetector is used and no lng is defined`),[`getResource`,`hasResourceBundle`,`getResourceBundle`,`getDataByLanguage`].forEach(e=>{this[e]=(...t)=>this.store[e](...t)}),[`addResource`,`addResources`,`addResourceBundle`,`removeResourceBundle`].forEach(e=>{this[e]=(...t)=>(this.store[e](...t),this)});let i=P(),a=()=>{let e=(e,n)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn(`init: i18next is already initialized. You should call init just once!`),this.isInitialized=!0,this.options.isClone||this.logger.log(`initialized`,this.options),this.emit(`initialized`,this.options),i.resolve(n),t(e,n)};if((this.languages||this.isLanguageChangingTo)&&!this.isInitialized)return e(null,this.t.bind(this));this.changeLanguage(this.options.lng,e)};return this.options.resources||!this.options.initAsync?a():setTimeout(a,0),i}loadResources(e,t=qe){let n=t,r=N(e)?e:this.language;if(typeof e==`function`&&(n=e),!this.options.resources||this.options.partialBundledLanguages){if(r?.toLowerCase()===`cimode`&&(!this.options.preload||this.options.preload.length===0))return n();let e=[],t=t=>{t&&t!==`cimode`&&this.services.languageUtils.toResolveHierarchy(t).forEach(t=>{t!==`cimode`&&(e.includes(t)||e.push(t))})};r?t(r):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(e=>t(e)),this.options.preload?.forEach?.(e=>t(e)),this.services.backendConnector.load(e,this.options.ns,e=>{!e&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),n(e)})}else n(null)}reloadResources(e,t,n){let r=P();return typeof e==`function`&&(n=e,e=void 0),typeof t==`function`&&(n=t,t=void 0),e||=this.languages,t||=this.options.ns,n||=qe,this.services.backendConnector.reload(e,t,e=>{r.resolve(),n(e)}),r}use(e){if(!e)throw Error(`You are passing an undefined module! Please check the object you are passing to i18next.use()`);if(!e.type)throw Error(`You are passing a wrong module! Please check the object you are passing to i18next.use()`);return e.type===`backend`&&(this.modules.backend=e),(e.type===`logger`||e.log&&e.warn&&e.error)&&(this.modules.logger=e),e.type===`languageDetector`&&(this.modules.languageDetector=e),e.type===`i18nFormat`&&(this.modules.i18nFormat=e),e.type===`postProcessor`&&De.addPostProcessor(e),e.type===`formatter`&&(this.modules.formatter=e),e.type===`3rdParty`&&this.modules.external.push(e),this}setResolvedLanguage(e){if(!(!e||!this.languages)&&![`cimode`,`dev`].includes(e)){for(let e=0;e<this.languages.length;e++){let t=this.languages[e];if(![`cimode`,`dev`].includes(t)&&this.store.hasLanguageSomeTranslations(t)){this.resolvedLanguage=t;break}}!this.resolvedLanguage&&!this.languages.includes(e)&&this.store.hasLanguageSomeTranslations(e)&&(this.resolvedLanguage=e,this.languages.unshift(e))}}changeLanguage(e,t){this.isLanguageChangingTo=e;let n=P();this.emit(`languageChanging`,e);let r=e=>{this.language=e,this.languages=this.services.languageUtils.toResolveHierarchy(e),this.resolvedLanguage=void 0,this.setResolvedLanguage(e)},i=(i,a)=>{a?this.isLanguageChangingTo===e&&(r(a),this.translator.changeLanguage(a),this.isLanguageChangingTo=void 0,this.emit(`languageChanged`,a),this.logger.log(`languageChanged`,a)):this.isLanguageChangingTo=void 0,n.resolve((...e)=>this.t(...e)),t&&t(i,(...e)=>this.t(...e))},a=t=>{!e&&!t&&this.services.languageDetector&&(t=[]);let n=N(t)?t:t&&t[0],a=this.store.hasLanguageSomeTranslations(n)?n:this.services.languageUtils.getBestMatchFromCodes(N(t)?[t]:t);a&&(this.language||r(a),this.translator.language||this.translator.changeLanguage(a),this.services.languageDetector?.cacheUserLanguage?.(a)),this.loadResources(a,e=>{i(e,a)})};return!e&&this.services.languageDetector&&!this.services.languageDetector.async?a(this.services.languageDetector.detect()):!e&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(a):this.services.languageDetector.detect(a):a(e),n}getFixedT(e,t,n,r){let i=r?.scopeNs,a=(e,t,...r)=>{let o;o=typeof t==`object`?{...t}:this.options.overloadTranslationOptionHandler([e,t].concat(r)),o.lng=o.lng||a.lng,o.lngs=o.lngs||a.lngs;let s=o.ns!==void 0&&o.ns!==null;o.ns=o.ns||a.ns,o.keyPrefix!==``&&(o.keyPrefix=o.keyPrefix||n||a.keyPrefix);let c={...this.options,...o};Array.isArray(i)&&!s&&(c.ns=i),typeof o.keyPrefix==`function`&&(o.keyPrefix=U(o.keyPrefix,c));let l=this.options.keySeparator||`.`,u;return o.keyPrefix&&Array.isArray(e)?u=e.map(e=>(typeof e==`function`&&(e=U(e,c)),`${o.keyPrefix}${l}${e}`)):(typeof e==`function`&&(e=U(e,c)),u=o.keyPrefix?`${o.keyPrefix}${l}${e}`:e),this.t(u,o)};return N(e)?a.lng=e:a.lngs=e,a.ns=t,a.keyPrefix=n,a}t(...e){return this.translator?.translate(...e)}exists(...e){return this.translator?.exists(...e)}setDefaultNamespace(e){this.options.defaultNS=e}hasLoadedNamespace(e,t={}){if(!this.isInitialized)return this.logger.warn(`hasLoadedNamespace: i18next was not initialized`,this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn(`hasLoadedNamespace: i18n.languages were undefined or empty`,this.languages),!1;let n=t.lng||this.resolvedLanguage||this.languages[0],r=this.options?this.options.fallbackLng:!1,i=this.languages[this.languages.length-1];if(n.toLowerCase()===`cimode`)return!0;let a=(e,t)=>{let n=this.services.backendConnector.state[`${e}|${t}`];return n===-1||n===0||n===2};if(t.precheck){let e=t.precheck(this,a);if(e!==void 0)return e}return!!(this.hasResourceBundle(n,e)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||a(n,e)&&(!r||a(i,e)))}loadNamespaces(e,t){let n=P();return this.options.ns?(N(e)&&(e=[e]),e.forEach(e=>{this.options.ns.includes(e)||this.options.ns.push(e)}),this.loadResources(e=>{n.resolve(),t&&t(e)}),n):(t&&t(),Promise.resolve())}loadLanguages(e,t){let n=P();N(e)&&(e=[e]);let r=this.options.preload||[],i=e.filter(e=>!r.includes(e)&&this.services.languageUtils.isSupportedCode(e));return i.length?(this.options.preload=r.concat(i),this.loadResources(e=>{n.resolve(),t&&t(e)}),n):(t&&t(),Promise.resolve())}dir(e){if(e||=this.resolvedLanguage||(this.languages?.length>0?this.languages[0]:this.language),!e)return`rtl`;try{let t=new Intl.Locale(e);if(t&&t.getTextInfo){let e=t.getTextInfo();if(e&&e.direction)return e.direction}}catch{}let t=`ar.shu.sqr.ssh.xaa.yhd.yud.aao.abh.abv.acm.acq.acw.acx.acy.adf.ads.aeb.aec.afb.ajp.apc.apd.arb.arq.ars.ary.arz.auz.avl.ayh.ayl.ayn.ayp.bbz.pga.he.iw.ps.pbt.pbu.pst.prp.prd.ug.ur.ydd.yds.yih.ji.yi.hbo.men.xmn.fa.jpr.peo.pes.prs.dv.sam.ckb`.split(`.`),n=this.services?.languageUtils||new Me(Ge());return e.toLowerCase().indexOf(`-latn`)>1?`ltr`:t.includes(n.getLanguagePartFromCode(e))||e.toLowerCase().indexOf(`-arab`)>1?`rtl`:`ltr`}static createInstance(t={},n){let r=new e(t,n);return r.createInstance=e.createInstance,r}cloneInstance(t={},n=qe){let r=t.forkResourceStore;r&&delete t.forkResourceStore;let i={...this.options,...t,isClone:!0},a=new e(i);if((t.debug!==void 0||t.prefix!==void 0)&&(a.logger=a.logger.clone(t)),[`store`,`services`,`language`].forEach(e=>{a[e]=this[e]}),a.services={...this.services},a.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},r&&(a.store=new Ee(Object.keys(this.store.data).reduce((e,t)=>(e[t]={...this.store.data[t]},e[t]=Object.keys(e[t]).reduce((n,r)=>(n[r]={...e[t][r]},n),e[t]),e),{}),i),a.services.resourceStore=a.store),t.interpolation){let e={...Ge().interpolation,...this.options.interpolation,...t.interpolation},n={...i,interpolation:e};a.services.interpolator=new Re(n)}return a.translator=new je(a.services,i),a.translator.on(`*`,(e,...t)=>{a.emit(e,...t)}),a.init(i,n),a.translator.options=i,a.translator.backendConnector.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},a}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}.createInstance();W.createInstance,W.dir,W.init,W.loadResources,W.reloadResources,W.use,W.changeLanguage,W.getFixedT,W.t,W.exists,W.setDefaultNamespace,W.hasLoadedNamespace,W.loadNamespaces,W.loadLanguages;var Ye={type:`3rdParty`,init(e){se(e.options.react),ce(e)}};function G(e){return(t={})=>{let n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}function K(e){return(t,n)=>{let r=n?.context?String(n.context):`standalone`,i;if(r===`formatting`&&e.formattingValues){let t=e.defaultFormattingWidth||e.defaultWidth,r=n?.width?String(n.width):t;i=e.formattingValues[r]||e.formattingValues[t]}else{let t=e.defaultWidth,r=n?.width?String(n.width):e.defaultWidth;i=e.values[r]||e.values[t]}let a=e.argumentCallback?e.argumentCallback(t):t;return i[a]}}function q(e){return(t,n={})=>{let r=n.width,i=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],a=t.match(i);if(!a)return null;let o=a[0],s=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(s)?Ze(s,e=>e.test(o)):Xe(s,e=>e.test(o)),l;l=e.valueCallback?e.valueCallback(c):c,l=n.valueCallback?n.valueCallback(l):l;let u=t.slice(o.length);return{value:l,rest:u}}}function Xe(e,t){for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function Ze(e,t){for(let n=0;n<e.length;n++)if(t(e[n]))return n}function J(e){return(t,n={})=>{let r=t.match(e.matchPattern);if(!r)return null;let i=r[0],a=t.match(e.parsePattern);if(!a)return null;let o=e.valueCallback?e.valueCallback(a[0]):a[0];o=n.valueCallback?n.valueCallback(o):o;let s=t.slice(i.length);return{value:o,rest:s}}}var Qe=365.2425,$e=6048e5,et=864e5,tt=6e4,nt=36e5,rt=43200,it=1440,at=3600*24;at*7,at*Qe/12*3;var ot=Symbol.for(`constructDateFrom`);function st(e,t){return typeof e==`function`?e(t):e&&typeof e==`object`&&ot in e?e[ot](t):e instanceof Date?new e.constructor(t):new Date(t)}function ct(e,...t){let n=st.bind(null,e||t.find(e=>typeof e==`object`));return t.map(n)}var lt={};function ut(){return lt}function dt(e,t){return st(t||e,e)}function ft(e,t){let n=ut(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,i=dt(e,t?.in),a=i.getDay(),o=(a<r?7:0)+a-r;return i.setDate(i.getDate()-o),i.setHours(0,0,0,0),i}function pt(e,t,n){let[r,i]=ct(n?.in,e,t);return+ft(r,n)==+ft(i,n)}var mt={lessThanXSeconds:{standalone:{one:`weniger als 1 Sekunde`,other:`weniger als {{count}} Sekunden`},withPreposition:{one:`weniger als 1 Sekunde`,other:`weniger als {{count}} Sekunden`}},xSeconds:{standalone:{one:`1 Sekunde`,other:`{{count}} Sekunden`},withPreposition:{one:`1 Sekunde`,other:`{{count}} Sekunden`}},halfAMinute:{standalone:`eine halbe Minute`,withPreposition:`einer halben Minute`},lessThanXMinutes:{standalone:{one:`weniger als 1 Minute`,other:`weniger als {{count}} Minuten`},withPreposition:{one:`weniger als 1 Minute`,other:`weniger als {{count}} Minuten`}},xMinutes:{standalone:{one:`1 Minute`,other:`{{count}} Minuten`},withPreposition:{one:`1 Minute`,other:`{{count}} Minuten`}},aboutXHours:{standalone:{one:`etwa 1 Stunde`,other:`etwa {{count}} Stunden`},withPreposition:{one:`etwa 1 Stunde`,other:`etwa {{count}} Stunden`}},xHours:{standalone:{one:`1 Stunde`,other:`{{count}} Stunden`},withPreposition:{one:`1 Stunde`,other:`{{count}} Stunden`}},xDays:{standalone:{one:`1 Tag`,other:`{{count}} Tage`},withPreposition:{one:`1 Tag`,other:`{{count}} Tagen`}},aboutXWeeks:{standalone:{one:`etwa 1 Woche`,other:`etwa {{count}} Wochen`},withPreposition:{one:`etwa 1 Woche`,other:`etwa {{count}} Wochen`}},xWeeks:{standalone:{one:`1 Woche`,other:`{{count}} Wochen`},withPreposition:{one:`1 Woche`,other:`{{count}} Wochen`}},aboutXMonths:{standalone:{one:`etwa 1 Monat`,other:`etwa {{count}} Monate`},withPreposition:{one:`etwa 1 Monat`,other:`etwa {{count}} Monaten`}},xMonths:{standalone:{one:`1 Monat`,other:`{{count}} Monate`},withPreposition:{one:`1 Monat`,other:`{{count}} Monaten`}},aboutXYears:{standalone:{one:`etwa 1 Jahr`,other:`etwa {{count}} Jahre`},withPreposition:{one:`etwa 1 Jahr`,other:`etwa {{count}} Jahren`}},xYears:{standalone:{one:`1 Jahr`,other:`{{count}} Jahre`},withPreposition:{one:`1 Jahr`,other:`{{count}} Jahren`}},overXYears:{standalone:{one:`mehr als 1 Jahr`,other:`mehr als {{count}} Jahre`},withPreposition:{one:`mehr als 1 Jahr`,other:`mehr als {{count}} Jahren`}},almostXYears:{standalone:{one:`fast 1 Jahr`,other:`fast {{count}} Jahre`},withPreposition:{one:`fast 1 Jahr`,other:`fast {{count}} Jahren`}}},ht=(e,t,n)=>{let r,i=n?.addSuffix?mt[e].withPreposition:mt[e].standalone;return r=typeof i==`string`?i:t===1?i.one:i.other.replace(`{{count}}`,String(t)),n?.addSuffix?n.comparison&&n.comparison>0?`in `+r:`vor `+r:r},gt={date:G({formats:{full:`EEEE, do MMMM y`,long:`do MMMM y`,medium:`do MMM y`,short:`dd.MM.y`},defaultWidth:`full`}),time:G({formats:{full:`HH:mm:ss zzzz`,long:`HH:mm:ss z`,medium:`HH:mm:ss`,short:`HH:mm`},defaultWidth:`full`}),dateTime:G({formats:{full:`{{date}} 'um' {{time}}`,long:`{{date}} 'um' {{time}}`,medium:`{{date}} {{time}}`,short:`{{date}} {{time}}`},defaultWidth:`full`})},_t={lastWeek:`'letzten' eeee 'um' p`,yesterday:`'gestern um' p`,today:`'heute um' p`,tomorrow:`'morgen um' p`,nextWeek:`eeee 'um' p`,other:`P`},vt=(e,t,n,r)=>_t[e],yt={narrow:[`v.Chr.`,`n.Chr.`],abbreviated:[`v.Chr.`,`n.Chr.`],wide:[`vor Christus`,`nach Christus`]},bt={narrow:[`1`,`2`,`3`,`4`],abbreviated:[`Q1`,`Q2`,`Q3`,`Q4`],wide:[`1. Quartal`,`2. Quartal`,`3. Quartal`,`4. Quartal`]},xt={narrow:[`J`,`F`,`M`,`A`,`M`,`J`,`J`,`A`,`S`,`O`,`N`,`D`],abbreviated:[`Jan`,`Feb`,`Mär`,`Apr`,`Mai`,`Jun`,`Jul`,`Aug`,`Sep`,`Okt`,`Nov`,`Dez`],wide:[`Januar`,`Februar`,`März`,`April`,`Mai`,`Juni`,`Juli`,`August`,`September`,`Oktober`,`November`,`Dezember`]},St={narrow:xt.narrow,abbreviated:[`Jan.`,`Feb.`,`März`,`Apr.`,`Mai`,`Juni`,`Juli`,`Aug.`,`Sep.`,`Okt.`,`Nov.`,`Dez.`],wide:xt.wide},Ct={code:`de`,formatDistance:ht,formatLong:gt,formatRelative:vt,localize:{ordinalNumber:e=>Number(e)+`.`,era:K({values:yt,defaultWidth:`wide`}),quarter:K({values:bt,defaultWidth:`wide`,argumentCallback:e=>e-1}),month:K({values:xt,formattingValues:St,defaultWidth:`wide`}),day:K({values:{narrow:[`S`,`M`,`D`,`M`,`D`,`F`,`S`],short:[`So`,`Mo`,`Di`,`Mi`,`Do`,`Fr`,`Sa`],abbreviated:[`So.`,`Mo.`,`Di.`,`Mi.`,`Do.`,`Fr.`,`Sa.`],wide:[`Sonntag`,`Montag`,`Dienstag`,`Mittwoch`,`Donnerstag`,`Freitag`,`Samstag`]},defaultWidth:`wide`}),dayPeriod:K({values:{narrow:{am:`vm.`,pm:`nm.`,midnight:`Mitternacht`,noon:`Mittag`,morning:`Morgen`,afternoon:`Nachm.`,evening:`Abend`,night:`Nacht`},abbreviated:{am:`vorm.`,pm:`nachm.`,midnight:`Mitternacht`,noon:`Mittag`,morning:`Morgen`,afternoon:`Nachmittag`,evening:`Abend`,night:`Nacht`},wide:{am:`vormittags`,pm:`nachmittags`,midnight:`Mitternacht`,noon:`Mittag`,morning:`Morgen`,afternoon:`Nachmittag`,evening:`Abend`,night:`Nacht`}},defaultWidth:`wide`,formattingValues:{narrow:{am:`vm.`,pm:`nm.`,midnight:`Mitternacht`,noon:`Mittag`,morning:`morgens`,afternoon:`nachm.`,evening:`abends`,night:`nachts`},abbreviated:{am:`vorm.`,pm:`nachm.`,midnight:`Mitternacht`,noon:`Mittag`,morning:`morgens`,afternoon:`nachmittags`,evening:`abends`,night:`nachts`},wide:{am:`vormittags`,pm:`nachmittags`,midnight:`Mitternacht`,noon:`Mittag`,morning:`morgens`,afternoon:`nachmittags`,evening:`abends`,night:`nachts`}},defaultFormattingWidth:`wide`})},match:{ordinalNumber:J({matchPattern:/^(\d+)(\.)?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e)}),era:q({matchPatterns:{narrow:/^(v\.? ?Chr\.?|n\.? ?Chr\.?)/i,abbreviated:/^(v\.? ?Chr\.?|n\.? ?Chr\.?)/i,wide:/^(vor Christus|vor unserer Zeitrechnung|nach Christus|unserer Zeitrechnung)/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/^v/i,/^n/i]},defaultParseWidth:`any`}),quarter:q({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](\.)? Quartal/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:`any`,valueCallback:e=>e+1}),month:q({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(j[aä]n|feb|mär[z]?|apr|mai|jun[i]?|jul[i]?|aug|sep|okt|nov|dez)\.?/i,wide:/^(januar|februar|märz|april|mai|juni|juli|august|september|oktober|november|dezember)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^j[aä]/i,/^f/i,/^mär/i,/^ap/i,/^mai/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:`any`}),day:q({matchPatterns:{narrow:/^[smdmf]/i,short:/^(so|mo|di|mi|do|fr|sa)/i,abbreviated:/^(son?|mon?|die?|mit?|don?|fre?|sam?)\.?/i,wide:/^(sonntag|montag|dienstag|mittwoch|donnerstag|freitag|samstag)/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/^so/i,/^mo/i,/^di/i,/^mi/i,/^do/i,/^f/i,/^sa/i]},defaultParseWidth:`any`}),dayPeriod:q({matchPatterns:{narrow:/^(vm\.?|nm\.?|Mitternacht|Mittag|morgens|nachm\.?|abends|nachts)/i,abbreviated:/^(vorm\.?|nachm\.?|Mitternacht|Mittag|morgens|nachm\.?|abends|nachts)/i,wide:/^(vormittags|nachmittags|Mitternacht|Mittag|morgens|nachmittags|abends|nachts)/i},defaultMatchWidth:`wide`,parsePatterns:{any:{am:/^v/i,pm:/^n/i,midnight:/^Mitte/i,noon:/^Mitta/i,morning:/morgens/i,afternoon:/nachmittags/i,evening:/abends/i,night:/nachts/i}},defaultParseWidth:`any`})},options:{weekStartsOn:1,firstWeekContainsDate:4}},wt={lessThanXSeconds:{one:`less than a second`,other:`less than {{count}} seconds`},xSeconds:{one:`1 second`,other:`{{count}} seconds`},halfAMinute:`half a minute`,lessThanXMinutes:{one:`less than a minute`,other:`less than {{count}} minutes`},xMinutes:{one:`1 minute`,other:`{{count}} minutes`},aboutXHours:{one:`about 1 hour`,other:`about {{count}} hours`},xHours:{one:`1 hour`,other:`{{count}} hours`},xDays:{one:`1 day`,other:`{{count}} days`},aboutXWeeks:{one:`about 1 week`,other:`about {{count}} weeks`},xWeeks:{one:`1 week`,other:`{{count}} weeks`},aboutXMonths:{one:`about 1 month`,other:`about {{count}} months`},xMonths:{one:`1 month`,other:`{{count}} months`},aboutXYears:{one:`about 1 year`,other:`about {{count}} years`},xYears:{one:`1 year`,other:`{{count}} years`},overXYears:{one:`over 1 year`,other:`over {{count}} years`},almostXYears:{one:`almost 1 year`,other:`almost {{count}} years`}},Tt=(e,t,n)=>{let r,i=wt[e];return r=typeof i==`string`?i:t===1?i.one:i.other.replace(`{{count}}`,t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?`in `+r:r+` ago`:r},Et={lastWeek:`'last' eeee 'at' p`,yesterday:`'yesterday at' p`,today:`'today at' p`,tomorrow:`'tomorrow at' p`,nextWeek:`eeee 'at' p`,other:`P`},Dt=(e,t,n,r)=>Et[e],Ot={ordinalNumber:(e,t)=>{let n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+`st`;case 2:return n+`nd`;case 3:return n+`rd`}return n+`th`},era:K({values:{narrow:[`B`,`A`],abbreviated:[`BC`,`AD`],wide:[`Before Christ`,`Anno Domini`]},defaultWidth:`wide`}),quarter:K({values:{narrow:[`1`,`2`,`3`,`4`],abbreviated:[`Q1`,`Q2`,`Q3`,`Q4`],wide:[`1st quarter`,`2nd quarter`,`3rd quarter`,`4th quarter`]},defaultWidth:`wide`,argumentCallback:e=>e-1}),month:K({values:{narrow:[`J`,`F`,`M`,`A`,`M`,`J`,`J`,`A`,`S`,`O`,`N`,`D`],abbreviated:[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],wide:[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`]},defaultWidth:`wide`}),day:K({values:{narrow:[`S`,`M`,`T`,`W`,`T`,`F`,`S`],short:[`Su`,`Mo`,`Tu`,`We`,`Th`,`Fr`,`Sa`],abbreviated:[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],wide:[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`]},defaultWidth:`wide`}),dayPeriod:K({values:{narrow:{am:`a`,pm:`p`,midnight:`mi`,noon:`n`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},abbreviated:{am:`AM`,pm:`PM`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},wide:{am:`a.m.`,pm:`p.m.`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`}},defaultWidth:`wide`,formattingValues:{narrow:{am:`a`,pm:`p`,midnight:`mi`,noon:`n`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`},abbreviated:{am:`AM`,pm:`PM`,midnight:`midnight`,noon:`noon`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`},wide:{am:`a.m.`,pm:`p.m.`,midnight:`midnight`,noon:`noon`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`}},defaultFormattingWidth:`wide`})},kt={ordinalNumber:J({matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)}),era:q({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:`any`}),quarter:q({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:`any`,valueCallback:e=>e+1}),month:q({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:`any`}),day:q({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:`any`}),dayPeriod:q({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:`any`,parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:`any`})},At={code:`en-US`,formatDistance:Tt,formatLong:{date:G({formats:{full:`EEEE, MMMM do, y`,long:`MMMM do, y`,medium:`MMM d, y`,short:`MM/dd/yyyy`},defaultWidth:`full`}),time:G({formats:{full:`h:mm:ss a zzzz`,long:`h:mm:ss a z`,medium:`h:mm:ss a`,short:`h:mm a`},defaultWidth:`full`}),dateTime:G({formats:{full:`{{date}} 'at' {{time}}`,long:`{{date}} 'at' {{time}}`,medium:`{{date}}, {{time}}`,short:`{{date}}, {{time}}`},defaultWidth:`full`})},formatRelative:Dt,localize:Ot,match:kt,options:{weekStartsOn:0,firstWeekContainsDate:1}},jt={lessThanXSeconds:{one:`menos de un segundo`,other:`menos de {{count}} segundos`},xSeconds:{one:`1 segundo`,other:`{{count}} segundos`},halfAMinute:`medio minuto`,lessThanXMinutes:{one:`menos de un minuto`,other:`menos de {{count}} minutos`},xMinutes:{one:`1 minuto`,other:`{{count}} minutos`},aboutXHours:{one:`alrededor de 1 hora`,other:`alrededor de {{count}} horas`},xHours:{one:`1 hora`,other:`{{count}} horas`},xDays:{one:`1 día`,other:`{{count}} días`},aboutXWeeks:{one:`alrededor de 1 semana`,other:`alrededor de {{count}} semanas`},xWeeks:{one:`1 semana`,other:`{{count}} semanas`},aboutXMonths:{one:`alrededor de 1 mes`,other:`alrededor de {{count}} meses`},xMonths:{one:`1 mes`,other:`{{count}} meses`},aboutXYears:{one:`alrededor de 1 año`,other:`alrededor de {{count}} años`},xYears:{one:`1 año`,other:`{{count}} años`},overXYears:{one:`más de 1 año`,other:`más de {{count}} años`},almostXYears:{one:`casi 1 año`,other:`casi {{count}} años`}},Mt=(e,t,n)=>{let r,i=jt[e];return r=typeof i==`string`?i:t===1?i.one:i.other.replace(`{{count}}`,t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?`en `+r:`hace `+r:r},Nt={date:G({formats:{full:`EEEE, d 'de' MMMM 'de' y`,long:`d 'de' MMMM 'de' y`,medium:`d MMM y`,short:`dd/MM/y`},defaultWidth:`full`}),time:G({formats:{full:`HH:mm:ss zzzz`,long:`HH:mm:ss z`,medium:`HH:mm:ss`,short:`HH:mm`},defaultWidth:`full`}),dateTime:G({formats:{full:`{{date}} 'a las' {{time}}`,long:`{{date}} 'a las' {{time}}`,medium:`{{date}}, {{time}}`,short:`{{date}}, {{time}}`},defaultWidth:`full`})},Pt={lastWeek:`'el' eeee 'pasado a la' p`,yesterday:`'ayer a la' p`,today:`'hoy a la' p`,tomorrow:`'mañana a la' p`,nextWeek:`eeee 'a la' p`,other:`P`},Ft={lastWeek:`'el' eeee 'pasado a las' p`,yesterday:`'ayer a las' p`,today:`'hoy a las' p`,tomorrow:`'mañana a las' p`,nextWeek:`eeee 'a las' p`,other:`P`},It={code:`es`,formatDistance:Mt,formatLong:Nt,formatRelative:(e,t,n,r)=>t.getHours()===1?Pt[e]:Ft[e],localize:{ordinalNumber:(e,t)=>Number(e)+`º`,era:K({values:{narrow:[`AC`,`DC`],abbreviated:[`AC`,`DC`],wide:[`antes de cristo`,`después de cristo`]},defaultWidth:`wide`}),quarter:K({values:{narrow:[`1`,`2`,`3`,`4`],abbreviated:[`T1`,`T2`,`T3`,`T4`],wide:[`1º trimestre`,`2º trimestre`,`3º trimestre`,`4º trimestre`]},defaultWidth:`wide`,argumentCallback:e=>Number(e)-1}),month:K({values:{narrow:[`e`,`f`,`m`,`a`,`m`,`j`,`j`,`a`,`s`,`o`,`n`,`d`],abbreviated:[`ene`,`feb`,`mar`,`abr`,`may`,`jun`,`jul`,`ago`,`sep`,`oct`,`nov`,`dic`],wide:[`enero`,`febrero`,`marzo`,`abril`,`mayo`,`junio`,`julio`,`agosto`,`septiembre`,`octubre`,`noviembre`,`diciembre`]},defaultWidth:`wide`}),day:K({values:{narrow:[`d`,`l`,`m`,`m`,`j`,`v`,`s`],short:[`do`,`lu`,`ma`,`mi`,`ju`,`vi`,`sá`],abbreviated:[`dom`,`lun`,`mar`,`mié`,`jue`,`vie`,`sáb`],wide:[`domingo`,`lunes`,`martes`,`miércoles`,`jueves`,`viernes`,`sábado`]},defaultWidth:`wide`}),dayPeriod:K({values:{narrow:{am:`a`,pm:`p`,midnight:`mn`,noon:`md`,morning:`mañana`,afternoon:`tarde`,evening:`tarde`,night:`noche`},abbreviated:{am:`AM`,pm:`PM`,midnight:`medianoche`,noon:`mediodia`,morning:`mañana`,afternoon:`tarde`,evening:`tarde`,night:`noche`},wide:{am:`a.m.`,pm:`p.m.`,midnight:`medianoche`,noon:`mediodia`,morning:`mañana`,afternoon:`tarde`,evening:`tarde`,night:`noche`}},defaultWidth:`wide`,formattingValues:{narrow:{am:`a`,pm:`p`,midnight:`mn`,noon:`md`,morning:`de la mañana`,afternoon:`de la tarde`,evening:`de la tarde`,night:`de la noche`},abbreviated:{am:`AM`,pm:`PM`,midnight:`medianoche`,noon:`mediodia`,morning:`de la mañana`,afternoon:`de la tarde`,evening:`de la tarde`,night:`de la noche`},wide:{am:`a.m.`,pm:`p.m.`,midnight:`medianoche`,noon:`mediodia`,morning:`de la mañana`,afternoon:`de la tarde`,evening:`de la tarde`,night:`de la noche`}},defaultFormattingWidth:`wide`})},match:{ordinalNumber:J({matchPattern:/^(\d+)(º)?/i,parsePattern:/\d+/i,valueCallback:function(e){return parseInt(e,10)}}),era:q({matchPatterns:{narrow:/^(ac|dc|a|d)/i,abbreviated:/^(a\.?\s?c\.?|a\.?\s?e\.?\s?c\.?|d\.?\s?c\.?|e\.?\s?c\.?)/i,wide:/^(antes de cristo|antes de la era com[uú]n|despu[eé]s de cristo|era com[uú]n)/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/^ac/i,/^dc/i],wide:[/^(antes de cristo|antes de la era com[uú]n)/i,/^(despu[eé]s de cristo|era com[uú]n)/i]},defaultParseWidth:`any`}),quarter:q({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^T[1234]/i,wide:/^[1234](º)? trimestre/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:`any`,valueCallback:e=>e+1}),month:q({matchPatterns:{narrow:/^[efmajsond]/i,abbreviated:/^(ene|feb|mar|abr|may|jun|jul|ago|sep|oct|nov|dic)/i,wide:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^e/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^en/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i]},defaultParseWidth:`any`}),day:q({matchPatterns:{narrow:/^[dlmjvs]/i,short:/^(do|lu|ma|mi|ju|vi|s[áa])/i,abbreviated:/^(dom|lun|mar|mi[ée]|jue|vie|s[áa]b)/i,wide:/^(domingo|lunes|martes|mi[ée]rcoles|jueves|viernes|s[áa]bado)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^d/i,/^l/i,/^m/i,/^m/i,/^j/i,/^v/i,/^s/i],any:[/^do/i,/^lu/i,/^ma/i,/^mi/i,/^ju/i,/^vi/i,/^sa/i]},defaultParseWidth:`any`}),dayPeriod:q({matchPatterns:{narrow:/^(a|p|mn|md|(de la|a las) (mañana|tarde|noche))/i,any:/^([ap]\.?\s?m\.?|medianoche|mediodia|(de la|a las) (mañana|tarde|noche))/i},defaultMatchWidth:`any`,parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mn/i,noon:/^md/i,morning:/mañana/i,afternoon:/tarde/i,evening:/tarde/i,night:/noche/i}},defaultParseWidth:`any`})},options:{weekStartsOn:1,firstWeekContainsDate:1}},Lt={lessThanXSeconds:{one:`moins d’une seconde`,other:`moins de {{count}} secondes`},xSeconds:{one:`1 seconde`,other:`{{count}} secondes`},halfAMinute:`30 secondes`,lessThanXMinutes:{one:`moins d’une minute`,other:`moins de {{count}} minutes`},xMinutes:{one:`1 minute`,other:`{{count}} minutes`},aboutXHours:{one:`environ 1 heure`,other:`environ {{count}} heures`},xHours:{one:`1 heure`,other:`{{count}} heures`},xDays:{one:`1 jour`,other:`{{count}} jours`},aboutXWeeks:{one:`environ 1 semaine`,other:`environ {{count}} semaines`},xWeeks:{one:`1 semaine`,other:`{{count}} semaines`},aboutXMonths:{one:`environ 1 mois`,other:`environ {{count}} mois`},xMonths:{one:`1 mois`,other:`{{count}} mois`},aboutXYears:{one:`environ 1 an`,other:`environ {{count}} ans`},xYears:{one:`1 an`,other:`{{count}} ans`},overXYears:{one:`plus d’un an`,other:`plus de {{count}} ans`},almostXYears:{one:`presqu’un an`,other:`presque {{count}} ans`}},Rt=(e,t,n)=>{let r,i=Lt[e];return r=typeof i==`string`?i:t===1?i.one:i.other.replace(`{{count}}`,String(t)),n?.addSuffix?n.comparison&&n.comparison>0?`dans `+r:`il y a `+r:r},zt={date:G({formats:{full:`EEEE d MMMM y`,long:`d MMMM y`,medium:`d MMM y`,short:`dd/MM/y`},defaultWidth:`full`}),time:G({formats:{full:`HH:mm:ss zzzz`,long:`HH:mm:ss z`,medium:`HH:mm:ss`,short:`HH:mm`},defaultWidth:`full`}),dateTime:G({formats:{full:`{{date}} 'à' {{time}}`,long:`{{date}} 'à' {{time}}`,medium:`{{date}}, {{time}}`,short:`{{date}}, {{time}}`},defaultWidth:`full`})},Bt={lastWeek:`eeee 'dernier à' p`,yesterday:`'hier à' p`,today:`'aujourd’hui à' p`,tomorrow:`'demain à' p'`,nextWeek:`eeee 'prochain à' p`,other:`P`},Vt=(e,t,n,r)=>Bt[e],Ht={narrow:[`av. J.-C`,`ap. J.-C`],abbreviated:[`av. J.-C`,`ap. J.-C`],wide:[`avant Jésus-Christ`,`après Jésus-Christ`]},Ut={narrow:[`T1`,`T2`,`T3`,`T4`],abbreviated:[`1er trim.`,`2ème trim.`,`3ème trim.`,`4ème trim.`],wide:[`1er trimestre`,`2ème trimestre`,`3ème trimestre`,`4ème trimestre`]},Wt={narrow:[`J`,`F`,`M`,`A`,`M`,`J`,`J`,`A`,`S`,`O`,`N`,`D`],abbreviated:[`janv.`,`févr.`,`mars`,`avr.`,`mai`,`juin`,`juil.`,`août`,`sept.`,`oct.`,`nov.`,`déc.`],wide:[`janvier`,`février`,`mars`,`avril`,`mai`,`juin`,`juillet`,`août`,`septembre`,`octobre`,`novembre`,`décembre`]},Gt={narrow:[`D`,`L`,`M`,`M`,`J`,`V`,`S`],short:[`di`,`lu`,`ma`,`me`,`je`,`ve`,`sa`],abbreviated:[`dim.`,`lun.`,`mar.`,`mer.`,`jeu.`,`ven.`,`sam.`],wide:[`dimanche`,`lundi`,`mardi`,`mercredi`,`jeudi`,`vendredi`,`samedi`]},Kt={narrow:{am:`AM`,pm:`PM`,midnight:`minuit`,noon:`midi`,morning:`mat.`,afternoon:`ap.m.`,evening:`soir`,night:`mat.`},abbreviated:{am:`AM`,pm:`PM`,midnight:`minuit`,noon:`midi`,morning:`matin`,afternoon:`après-midi`,evening:`soir`,night:`matin`},wide:{am:`AM`,pm:`PM`,midnight:`minuit`,noon:`midi`,morning:`du matin`,afternoon:`de l’après-midi`,evening:`du soir`,night:`du matin`}},qt=(e,t)=>{let n=Number(e),r=t?.unit;if(n===0)return`0`;let i=[`year`,`week`,`hour`,`minute`,`second`],a;return a=n===1?r&&i.includes(r)?`ère`:`er`:`ème`,n+a},Jt=[`MMM`,`MMMM`],Yt={code:`fr`,formatDistance:Rt,formatLong:zt,formatRelative:Vt,localize:{preprocessor:(e,t)=>e.getDate()===1||!t.some(e=>e.isToken&&Jt.includes(e.value))?t:t.map(e=>e.isToken&&e.value===`do`?{isToken:!0,value:`d`}:e),ordinalNumber:qt,era:K({values:Ht,defaultWidth:`wide`}),quarter:K({values:Ut,defaultWidth:`wide`,argumentCallback:e=>e-1}),month:K({values:Wt,defaultWidth:`wide`}),day:K({values:Gt,defaultWidth:`wide`}),dayPeriod:K({values:Kt,defaultWidth:`wide`})},match:{ordinalNumber:J({matchPattern:/^(\d+)(ième|ère|ème|er|e)?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e)}),era:q({matchPatterns:{narrow:/^(av\.J\.C|ap\.J\.C|ap\.J\.-C)/i,abbreviated:/^(av\.J\.-C|av\.J-C|apr\.J\.-C|apr\.J-C|ap\.J-C)/i,wide:/^(avant Jésus-Christ|après Jésus-Christ)/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/^av/i,/^ap/i]},defaultParseWidth:`any`}),quarter:q({matchPatterns:{narrow:/^T?[1234]/i,abbreviated:/^[1234](er|ème|e)? trim\.?/i,wide:/^[1234](er|ème|e)? trimestre/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:`any`,valueCallback:e=>e+1}),month:q({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(janv|févr|mars|avr|mai|juin|juill|juil|août|sept|oct|nov|déc)\.?/i,wide:/^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^av/i,/^ma/i,/^juin/i,/^juil/i,/^ao/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:`any`}),day:q({matchPatterns:{narrow:/^[lmjvsd]/i,short:/^(di|lu|ma|me|je|ve|sa)/i,abbreviated:/^(dim|lun|mar|mer|jeu|ven|sam)\.?/i,wide:/^(dimanche|lundi|mardi|mercredi|jeudi|vendredi|samedi)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^d/i,/^l/i,/^m/i,/^m/i,/^j/i,/^v/i,/^s/i],any:[/^di/i,/^lu/i,/^ma/i,/^me/i,/^je/i,/^ve/i,/^sa/i]},defaultParseWidth:`any`}),dayPeriod:q({matchPatterns:{narrow:/^(a|p|minuit|midi|mat\.?|ap\.?m\.?|soir|nuit)/i,any:/^([ap]\.?\s?m\.?|du matin|de l'après[-\s]midi|du soir|de la nuit)/i},defaultMatchWidth:`any`,parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^min/i,noon:/^mid/i,morning:/mat/i,afternoon:/ap/i,evening:/soir/i,night:/nuit/i}},defaultParseWidth:`any`})},options:{weekStartsOn:1,firstWeekContainsDate:4}},Xt={lessThanXSeconds:{one:`meno di un secondo`,other:`meno di {{count}} secondi`},xSeconds:{one:`un secondo`,other:`{{count}} secondi`},halfAMinute:`alcuni secondi`,lessThanXMinutes:{one:`meno di un minuto`,other:`meno di {{count}} minuti`},xMinutes:{one:`un minuto`,other:`{{count}} minuti`},aboutXHours:{one:`circa un'ora`,other:`circa {{count}} ore`},xHours:{one:`un'ora`,other:`{{count}} ore`},xDays:{one:`un giorno`,other:`{{count}} giorni`},aboutXWeeks:{one:`circa una settimana`,other:`circa {{count}} settimane`},xWeeks:{one:`una settimana`,other:`{{count}} settimane`},aboutXMonths:{one:`circa un mese`,other:`circa {{count}} mesi`},xMonths:{one:`un mese`,other:`{{count}} mesi`},aboutXYears:{one:`circa un anno`,other:`circa {{count}} anni`},xYears:{one:`un anno`,other:`{{count}} anni`},overXYears:{one:`più di un anno`,other:`più di {{count}} anni`},almostXYears:{one:`quasi un anno`,other:`quasi {{count}} anni`}},Zt=(e,t,n)=>{let r,i=Xt[e];return r=typeof i==`string`?i:t===1?i.one:i.other.replace(`{{count}}`,t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?`tra `+r:r+` fa`:r},Qt={date:G({formats:{full:`EEEE d MMMM y`,long:`d MMMM y`,medium:`d MMM y`,short:`dd/MM/y`},defaultWidth:`full`}),time:G({formats:{full:`HH:mm:ss zzzz`,long:`HH:mm:ss z`,medium:`HH:mm:ss`,short:`HH:mm`},defaultWidth:`full`}),dateTime:G({formats:{full:`{{date}} {{time}}`,long:`{{date}} {{time}}`,medium:`{{date}} {{time}}`,short:`{{date}} {{time}}`},defaultWidth:`full`})},$t=[`domenica`,`lunedì`,`martedì`,`mercoledì`,`giovedì`,`venerdì`,`sabato`];function en(e){switch(e){case 0:return`'domenica scorsa alle' p`;default:return`'`+$t[e]+` scorso alle' p`}}function tn(e){return`'`+$t[e]+` alle' p`}function nn(e){switch(e){case 0:return`'domenica prossima alle' p`;default:return`'`+$t[e]+` prossimo alle' p`}}var rn={lastWeek:(e,t,n)=>{let r=e.getDay();return pt(e,t,n)?tn(r):en(r)},yesterday:`'ieri alle' p`,today:`'oggi alle' p`,tomorrow:`'domani alle' p`,nextWeek:(e,t,n)=>{let r=e.getDay();return pt(e,t,n)?tn(r):nn(r)},other:`P`},an={code:`it`,formatDistance:Zt,formatLong:Qt,formatRelative:(e,t,n,r)=>{let i=rn[e];return typeof i==`function`?i(t,n,r):i},localize:{ordinalNumber:(e,t)=>{let n=Number(e);return String(n)},era:K({values:{narrow:[`aC`,`dC`],abbreviated:[`a.C.`,`d.C.`],wide:[`avanti Cristo`,`dopo Cristo`]},defaultWidth:`wide`}),quarter:K({values:{narrow:[`1`,`2`,`3`,`4`],abbreviated:[`T1`,`T2`,`T3`,`T4`],wide:[`1º trimestre`,`2º trimestre`,`3º trimestre`,`4º trimestre`]},defaultWidth:`wide`,argumentCallback:e=>e-1}),month:K({values:{narrow:[`G`,`F`,`M`,`A`,`M`,`G`,`L`,`A`,`S`,`O`,`N`,`D`],abbreviated:[`gen`,`feb`,`mar`,`apr`,`mag`,`giu`,`lug`,`ago`,`set`,`ott`,`nov`,`dic`],wide:[`gennaio`,`febbraio`,`marzo`,`aprile`,`maggio`,`giugno`,`luglio`,`agosto`,`settembre`,`ottobre`,`novembre`,`dicembre`]},defaultWidth:`wide`}),day:K({values:{narrow:[`D`,`L`,`M`,`M`,`G`,`V`,`S`],short:[`dom`,`lun`,`mar`,`mer`,`gio`,`ven`,`sab`],abbreviated:[`dom`,`lun`,`mar`,`mer`,`gio`,`ven`,`sab`],wide:[`domenica`,`lunedì`,`martedì`,`mercoledì`,`giovedì`,`venerdì`,`sabato`]},defaultWidth:`wide`}),dayPeriod:K({values:{narrow:{am:`m.`,pm:`p.`,midnight:`mezzanotte`,noon:`mezzogiorno`,morning:`mattina`,afternoon:`pomeriggio`,evening:`sera`,night:`notte`},abbreviated:{am:`AM`,pm:`PM`,midnight:`mezzanotte`,noon:`mezzogiorno`,morning:`mattina`,afternoon:`pomeriggio`,evening:`sera`,night:`notte`},wide:{am:`AM`,pm:`PM`,midnight:`mezzanotte`,noon:`mezzogiorno`,morning:`mattina`,afternoon:`pomeriggio`,evening:`sera`,night:`notte`}},defaultWidth:`wide`,formattingValues:{narrow:{am:`m.`,pm:`p.`,midnight:`mezzanotte`,noon:`mezzogiorno`,morning:`di mattina`,afternoon:`del pomeriggio`,evening:`di sera`,night:`di notte`},abbreviated:{am:`AM`,pm:`PM`,midnight:`mezzanotte`,noon:`mezzogiorno`,morning:`di mattina`,afternoon:`del pomeriggio`,evening:`di sera`,night:`di notte`},wide:{am:`AM`,pm:`PM`,midnight:`mezzanotte`,noon:`mezzogiorno`,morning:`di mattina`,afternoon:`del pomeriggio`,evening:`di sera`,night:`di notte`}},defaultFormattingWidth:`wide`})},match:{ordinalNumber:J({matchPattern:/^(\d+)(º)?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)}),era:q({matchPatterns:{narrow:/^(aC|dC)/i,abbreviated:/^(a\.?\s?C\.?|a\.?\s?e\.?\s?v\.?|d\.?\s?C\.?|e\.?\s?v\.?)/i,wide:/^(avanti Cristo|avanti Era Volgare|dopo Cristo|Era Volgare)/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/^a/i,/^(d|e)/i]},defaultParseWidth:`any`}),quarter:q({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^t[1234]/i,wide:/^[1234](º)? trimestre/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:`any`,valueCallback:e=>e+1}),month:q({matchPatterns:{narrow:/^[gfmalsond]/i,abbreviated:/^(gen|feb|mar|apr|mag|giu|lug|ago|set|ott|nov|dic)/i,wide:/^(gennaio|febbraio|marzo|aprile|maggio|giugno|luglio|agosto|settembre|ottobre|novembre|dicembre)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^g/i,/^f/i,/^m/i,/^a/i,/^m/i,/^g/i,/^l/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ge/i,/^f/i,/^mar/i,/^ap/i,/^mag/i,/^gi/i,/^l/i,/^ag/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:`any`}),day:q({matchPatterns:{narrow:/^[dlmgvs]/i,short:/^(do|lu|ma|me|gi|ve|sa)/i,abbreviated:/^(dom|lun|mar|mer|gio|ven|sab)/i,wide:/^(domenica|luned[i|ì]|marted[i|ì]|mercoled[i|ì]|gioved[i|ì]|venerd[i|ì]|sabato)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^d/i,/^l/i,/^m/i,/^m/i,/^g/i,/^v/i,/^s/i],any:[/^d/i,/^l/i,/^ma/i,/^me/i,/^g/i,/^v/i,/^s/i]},defaultParseWidth:`any`}),dayPeriod:q({matchPatterns:{narrow:/^(a|m\.|p|mezzanotte|mezzogiorno|(di|del) (mattina|pomeriggio|sera|notte))/i,any:/^([ap]\.?\s?m\.?|mezzanotte|mezzogiorno|(di|del) (mattina|pomeriggio|sera|notte))/i},defaultMatchWidth:`any`,parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mezza/i,noon:/^mezzo/i,morning:/mattina/i,afternoon:/pomeriggio/i,evening:/sera/i,night:/notte/i}},defaultParseWidth:`any`})},options:{weekStartsOn:1,firstWeekContainsDate:4}},on={lessThanXSeconds:{one:`1秒未満`,other:`{{count}}秒未満`,oneWithSuffix:`約1秒`,otherWithSuffix:`約{{count}}秒`},xSeconds:{one:`1秒`,other:`{{count}}秒`},halfAMinute:`30秒`,lessThanXMinutes:{one:`1分未満`,other:`{{count}}分未満`,oneWithSuffix:`約1分`,otherWithSuffix:`約{{count}}分`},xMinutes:{one:`1分`,other:`{{count}}分`},aboutXHours:{one:`約1時間`,other:`約{{count}}時間`},xHours:{one:`1時間`,other:`{{count}}時間`},xDays:{one:`1日`,other:`{{count}}日`},aboutXWeeks:{one:`約1週間`,other:`約{{count}}週間`},xWeeks:{one:`1週間`,other:`{{count}}週間`},aboutXMonths:{one:`約1か月`,other:`約{{count}}か月`},xMonths:{one:`1か月`,other:`{{count}}か月`},aboutXYears:{one:`約1年`,other:`約{{count}}年`},xYears:{one:`1年`,other:`{{count}}年`},overXYears:{one:`1年以上`,other:`{{count}}年以上`},almostXYears:{one:`1年近く`,other:`{{count}}年近く`}},sn=(e,t,n)=>{n||={};let r,i=on[e];return r=typeof i==`string`?i:t===1?n.addSuffix&&i.oneWithSuffix?i.oneWithSuffix:i.one:n.addSuffix&&i.otherWithSuffix?i.otherWithSuffix.replace(`{{count}}`,String(t)):i.other.replace(`{{count}}`,String(t)),n.addSuffix?n.comparison&&n.comparison>0?r+`後`:r+`前`:r},cn={date:G({formats:{full:`y年M月d日EEEE`,long:`y年M月d日`,medium:`y/MM/dd`,short:`y/MM/dd`},defaultWidth:`full`}),time:G({formats:{full:`H時mm分ss秒 zzzz`,long:`H:mm:ss z`,medium:`H:mm:ss`,short:`H:mm`},defaultWidth:`full`}),dateTime:G({formats:{full:`{{date}} {{time}}`,long:`{{date}} {{time}}`,medium:`{{date}} {{time}}`,short:`{{date}} {{time}}`},defaultWidth:`full`})},ln={lastWeek:`先週のeeeeのp`,yesterday:`昨日のp`,today:`今日のp`,tomorrow:`明日のp`,nextWeek:`翌週のeeeeのp`,other:`P`},un={code:`ja`,formatDistance:sn,formatLong:cn,formatRelative:(e,t,n,r)=>ln[e],localize:{ordinalNumber:(e,t)=>{let n=Number(e);switch(String(t?.unit)){case`year`:return`${n}年`;case`quarter`:return`第${n}四半期`;case`month`:return`${n}月`;case`week`:return`第${n}週`;case`date`:return`${n}日`;case`hour`:return`${n}時`;case`minute`:return`${n}分`;case`second`:return`${n}秒`;default:return`${n}`}},era:K({values:{narrow:[`BC`,`AC`],abbreviated:[`紀元前`,`西暦`],wide:[`紀元前`,`西暦`]},defaultWidth:`wide`}),quarter:K({values:{narrow:[`1`,`2`,`3`,`4`],abbreviated:[`Q1`,`Q2`,`Q3`,`Q4`],wide:[`第1四半期`,`第2四半期`,`第3四半期`,`第4四半期`]},defaultWidth:`wide`,argumentCallback:e=>Number(e)-1}),month:K({values:{narrow:[`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`,`10`,`11`,`12`],abbreviated:[`1月`,`2月`,`3月`,`4月`,`5月`,`6月`,`7月`,`8月`,`9月`,`10月`,`11月`,`12月`],wide:[`1月`,`2月`,`3月`,`4月`,`5月`,`6月`,`7月`,`8月`,`9月`,`10月`,`11月`,`12月`]},defaultWidth:`wide`}),day:K({values:{narrow:[`日`,`月`,`火`,`水`,`木`,`金`,`土`],short:[`日`,`月`,`火`,`水`,`木`,`金`,`土`],abbreviated:[`日`,`月`,`火`,`水`,`木`,`金`,`土`],wide:[`日曜日`,`月曜日`,`火曜日`,`水曜日`,`木曜日`,`金曜日`,`土曜日`]},defaultWidth:`wide`}),dayPeriod:K({values:{narrow:{am:`午前`,pm:`午後`,midnight:`深夜`,noon:`正午`,morning:`朝`,afternoon:`午後`,evening:`夜`,night:`深夜`},abbreviated:{am:`午前`,pm:`午後`,midnight:`深夜`,noon:`正午`,morning:`朝`,afternoon:`午後`,evening:`夜`,night:`深夜`},wide:{am:`午前`,pm:`午後`,midnight:`深夜`,noon:`正午`,morning:`朝`,afternoon:`午後`,evening:`夜`,night:`深夜`}},defaultWidth:`wide`,formattingValues:{narrow:{am:`午前`,pm:`午後`,midnight:`深夜`,noon:`正午`,morning:`朝`,afternoon:`午後`,evening:`夜`,night:`深夜`},abbreviated:{am:`午前`,pm:`午後`,midnight:`深夜`,noon:`正午`,morning:`朝`,afternoon:`午後`,evening:`夜`,night:`深夜`},wide:{am:`午前`,pm:`午後`,midnight:`深夜`,noon:`正午`,morning:`朝`,afternoon:`午後`,evening:`夜`,night:`深夜`}},defaultFormattingWidth:`wide`})},match:{ordinalNumber:J({matchPattern:/^第?\d+(年|四半期|月|週|日|時|分|秒)?/i,parsePattern:/\d+/i,valueCallback:function(e){return parseInt(e,10)}}),era:q({matchPatterns:{narrow:/^(B\.?C\.?|A\.?D\.?)/i,abbreviated:/^(紀元[前後]|西暦)/i,wide:/^(紀元[前後]|西暦)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^B/i,/^A/i],any:[/^(紀元前)/i,/^(西暦|紀元後)/i]},defaultParseWidth:`any`}),quarter:q({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^Q[1234]/i,wide:/^第[1234一二三四1234]四半期/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/(1|一|1)/i,/(2|二|2)/i,/(3|三|3)/i,/(4|四|4)/i]},defaultParseWidth:`any`,valueCallback:e=>e+1}),month:q({matchPatterns:{narrow:/^([123456789]|1[012])/,abbreviated:/^([123456789]|1[012])月/i,wide:/^([123456789]|1[012])月/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/^1\D/,/^2/,/^3/,/^4/,/^5/,/^6/,/^7/,/^8/,/^9/,/^10/,/^11/,/^12/]},defaultParseWidth:`any`}),day:q({matchPatterns:{narrow:/^[日月火水木金土]/,short:/^[日月火水木金土]/,abbreviated:/^[日月火水木金土]/,wide:/^[日月火水木金土]曜日/},defaultMatchWidth:`wide`,parsePatterns:{any:[/^日/,/^月/,/^火/,/^水/,/^木/,/^金/,/^土/]},defaultParseWidth:`any`}),dayPeriod:q({matchPatterns:{any:/^(AM|PM|午前|午後|正午|深夜|真夜中|夜|朝)/i},defaultMatchWidth:`any`,parsePatterns:{any:{am:/^(A|午前)/i,pm:/^(P|午後)/i,midnight:/^深夜|真夜中/i,noon:/^正午/i,morning:/^朝/i,afternoon:/^午後/i,evening:/^夜/i,night:/^深夜/i}},defaultParseWidth:`any`})},options:{weekStartsOn:0,firstWeekContainsDate:1}},dn={lessThanXSeconds:{one:`menos de um segundo`,other:`menos de {{count}} segundos`},xSeconds:{one:`1 segundo`,other:`{{count}} segundos`},halfAMinute:`meio minuto`,lessThanXMinutes:{one:`menos de um minuto`,other:`menos de {{count}} minutos`},xMinutes:{one:`1 minuto`,other:`{{count}} minutos`},aboutXHours:{one:`aproximadamente 1 hora`,other:`aproximadamente {{count}} horas`},xHours:{one:`1 hora`,other:`{{count}} horas`},xDays:{one:`1 dia`,other:`{{count}} dias`},aboutXWeeks:{one:`aproximadamente 1 semana`,other:`aproximadamente {{count}} semanas`},xWeeks:{one:`1 semana`,other:`{{count}} semanas`},aboutXMonths:{one:`aproximadamente 1 mês`,other:`aproximadamente {{count}} meses`},xMonths:{one:`1 mês`,other:`{{count}} meses`},aboutXYears:{one:`aproximadamente 1 ano`,other:`aproximadamente {{count}} anos`},xYears:{one:`1 ano`,other:`{{count}} anos`},overXYears:{one:`mais de 1 ano`,other:`mais de {{count}} anos`},almostXYears:{one:`quase 1 ano`,other:`quase {{count}} anos`}},fn=(e,t,n)=>{let r,i=dn[e];return r=typeof i==`string`?i:t===1?i.one:i.other.replace(`{{count}}`,String(t)),n?.addSuffix?n.comparison&&n.comparison>0?`daqui a `+r:`há `+r:r},pn={date:G({formats:{full:`EEEE, d 'de' MMMM 'de' y`,long:`d 'de' MMMM 'de' y`,medium:`d 'de' MMM 'de' y`,short:`dd/MM/y`},defaultWidth:`full`}),time:G({formats:{full:`HH:mm:ss zzzz`,long:`HH:mm:ss z`,medium:`HH:mm:ss`,short:`HH:mm`},defaultWidth:`full`}),dateTime:G({formats:{full:`{{date}} 'às' {{time}}`,long:`{{date}} 'às' {{time}}`,medium:`{{date}}, {{time}}`,short:`{{date}}, {{time}}`},defaultWidth:`full`})},mn={lastWeek:e=>{let t=e.getDay();return`'`+(t===0||t===6?`último`:`última`)+`' eeee 'às' p`},yesterday:`'ontem às' p`,today:`'hoje às' p`,tomorrow:`'amanhã às' p`,nextWeek:`eeee 'às' p`,other:`P`},hn={code:`pt`,formatDistance:fn,formatLong:pn,formatRelative:(e,t,n,r)=>{let i=mn[e];return typeof i==`function`?i(t):i},localize:{ordinalNumber:(e,t)=>Number(e)+`º`,era:K({values:{narrow:[`aC`,`dC`],abbreviated:[`a.C.`,`d.C.`],wide:[`antes de Cristo`,`depois de Cristo`]},defaultWidth:`wide`}),quarter:K({values:{narrow:[`1`,`2`,`3`,`4`],abbreviated:[`T1`,`T2`,`T3`,`T4`],wide:[`1º trimestre`,`2º trimestre`,`3º trimestre`,`4º trimestre`]},defaultWidth:`wide`,argumentCallback:e=>e-1}),month:K({values:{narrow:[`j`,`f`,`m`,`a`,`m`,`j`,`j`,`a`,`s`,`o`,`n`,`d`],abbreviated:[`jan`,`fev`,`mar`,`abr`,`mai`,`jun`,`jul`,`ago`,`set`,`out`,`nov`,`dez`],wide:[`janeiro`,`fevereiro`,`março`,`abril`,`maio`,`junho`,`julho`,`agosto`,`setembro`,`outubro`,`novembro`,`dezembro`]},defaultWidth:`wide`}),day:K({values:{narrow:[`d`,`s`,`t`,`q`,`q`,`s`,`s`],short:[`dom`,`seg`,`ter`,`qua`,`qui`,`sex`,`sáb`],abbreviated:[`dom`,`seg`,`ter`,`qua`,`qui`,`sex`,`sáb`],wide:[`domingo`,`segunda-feira`,`terça-feira`,`quarta-feira`,`quinta-feira`,`sexta-feira`,`sábado`]},defaultWidth:`wide`}),dayPeriod:K({values:{narrow:{am:`AM`,pm:`PM`,midnight:`meia-noite`,noon:`meio-dia`,morning:`manhã`,afternoon:`tarde`,evening:`noite`,night:`madrugada`},abbreviated:{am:`AM`,pm:`PM`,midnight:`meia-noite`,noon:`meio-dia`,morning:`manhã`,afternoon:`tarde`,evening:`noite`,night:`madrugada`},wide:{am:`AM`,pm:`PM`,midnight:`meia-noite`,noon:`meio-dia`,morning:`manhã`,afternoon:`tarde`,evening:`noite`,night:`madrugada`}},defaultWidth:`wide`,formattingValues:{narrow:{am:`AM`,pm:`PM`,midnight:`meia-noite`,noon:`meio-dia`,morning:`da manhã`,afternoon:`da tarde`,evening:`da noite`,night:`da madrugada`},abbreviated:{am:`AM`,pm:`PM`,midnight:`meia-noite`,noon:`meio-dia`,morning:`da manhã`,afternoon:`da tarde`,evening:`da noite`,night:`da madrugada`},wide:{am:`AM`,pm:`PM`,midnight:`meia-noite`,noon:`meio-dia`,morning:`da manhã`,afternoon:`da tarde`,evening:`da noite`,night:`da madrugada`}},defaultFormattingWidth:`wide`})},match:{ordinalNumber:J({matchPattern:/^(\d+)(º|ª)?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)}),era:q({matchPatterns:{narrow:/^(ac|dc|a|d)/i,abbreviated:/^(a\.?\s?c\.?|a\.?\s?e\.?\s?c\.?|d\.?\s?c\.?|e\.?\s?c\.?)/i,wide:/^(antes de cristo|antes da era comum|depois de cristo|era comum)/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/^ac/i,/^dc/i],wide:[/^(antes de cristo|antes da era comum)/i,/^(depois de cristo|era comum)/i]},defaultParseWidth:`any`}),quarter:q({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^T[1234]/i,wide:/^[1234](º|ª)? trimestre/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:`any`,valueCallback:e=>e+1}),month:q({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|fev|mar|abr|mai|jun|jul|ago|set|out|nov|dez)/i,wide:/^(janeiro|fevereiro|março|abril|maio|junho|julho|agosto|setembro|outubro|novembro|dezembro)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ab/i,/^mai/i,/^jun/i,/^jul/i,/^ag/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:`any`}),day:q({matchPatterns:{narrow:/^[dstq]/i,short:/^(dom|seg|ter|qua|qui|sex|s[áa]b)/i,abbreviated:/^(dom|seg|ter|qua|qui|sex|s[áa]b)/i,wide:/^(domingo|segunda-?\s?feira|terça-?\s?feira|quarta-?\s?feira|quinta-?\s?feira|sexta-?\s?feira|s[áa]bado)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^d/i,/^s/i,/^t/i,/^q/i,/^q/i,/^s/i,/^s/i],any:[/^d/i,/^seg/i,/^t/i,/^qua/i,/^qui/i,/^sex/i,/^s[áa]/i]},defaultParseWidth:`any`}),dayPeriod:q({matchPatterns:{narrow:/^(a|p|meia-?\s?noite|meio-?\s?dia|(da) (manh[ãa]|tarde|noite|madrugada))/i,any:/^([ap]\.?\s?m\.?|meia-?\s?noite|meio-?\s?dia|(da) (manh[ãa]|tarde|noite|madrugada))/i},defaultMatchWidth:`any`,parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^meia/i,noon:/^meio/i,morning:/manh[ãa]/i,afternoon:/tarde/i,evening:/noite/i,night:/madrugada/i}},defaultParseWidth:`any`})},options:{weekStartsOn:1,firstWeekContainsDate:4}},gn={lessThanXSeconds:{one:`不到 1 秒`,other:`不到 {{count}} 秒`},xSeconds:{one:`1 秒`,other:`{{count}} 秒`},halfAMinute:`半分钟`,lessThanXMinutes:{one:`不到 1 分钟`,other:`不到 {{count}} 分钟`},xMinutes:{one:`1 分钟`,other:`{{count}} 分钟`},xHours:{one:`1 小时`,other:`{{count}} 小时`},aboutXHours:{one:`大约 1 小时`,other:`大约 {{count}} 小时`},xDays:{one:`1 天`,other:`{{count}} 天`},aboutXWeeks:{one:`大约 1 个星期`,other:`大约 {{count}} 个星期`},xWeeks:{one:`1 个星期`,other:`{{count}} 个星期`},aboutXMonths:{one:`大约 1 个月`,other:`大约 {{count}} 个月`},xMonths:{one:`1 个月`,other:`{{count}} 个月`},aboutXYears:{one:`大约 1 年`,other:`大约 {{count}} 年`},xYears:{one:`1 年`,other:`{{count}} 年`},overXYears:{one:`超过 1 年`,other:`超过 {{count}} 年`},almostXYears:{one:`将近 1 年`,other:`将近 {{count}} 年`}},_n=(e,t,n)=>{let r,i=gn[e];return r=typeof i==`string`?i:t===1?i.one:i.other.replace(`{{count}}`,String(t)),n?.addSuffix?n.comparison&&n.comparison>0?r+`内`:r+`前`:r},vn={date:G({formats:{full:`y'年'M'月'd'日' EEEE`,long:`y'年'M'月'd'日'`,medium:`yyyy-MM-dd`,short:`yy-MM-dd`},defaultWidth:`full`}),time:G({formats:{full:`zzzz a h:mm:ss`,long:`z a h:mm:ss`,medium:`a h:mm:ss`,short:`a h:mm`},defaultWidth:`full`}),dateTime:G({formats:{full:`{{date}} {{time}}`,long:`{{date}} {{time}}`,medium:`{{date}} {{time}}`,short:`{{date}} {{time}}`},defaultWidth:`full`})};function yn(e,t,n){return pt(e,t,n)?`eeee p`:e.getTime()>t.getTime()?`'下个'eeee p`:`'上个'eeee p`}var bn={lastWeek:yn,yesterday:`'昨天' p`,today:`'今天' p`,tomorrow:`'明天' p`,nextWeek:yn,other:`PP p`},xn={code:`zh-CN`,formatDistance:_n,formatLong:vn,formatRelative:(e,t,n,r)=>{let i=bn[e];return typeof i==`function`?i(t,n,r):i},localize:{ordinalNumber:(e,t)=>{let n=Number(e);switch(t?.unit){case`date`:return n.toString()+`日`;case`hour`:return n.toString()+`时`;case`minute`:return n.toString()+`分`;case`second`:return n.toString()+`秒`;default:return`第 `+n.toString()}},era:K({values:{narrow:[`前`,`公元`],abbreviated:[`前`,`公元`],wide:[`公元前`,`公元`]},defaultWidth:`wide`}),quarter:K({values:{narrow:[`1`,`2`,`3`,`4`],abbreviated:[`第一季`,`第二季`,`第三季`,`第四季`],wide:[`第一季度`,`第二季度`,`第三季度`,`第四季度`]},defaultWidth:`wide`,argumentCallback:e=>e-1}),month:K({values:{narrow:[`一`,`二`,`三`,`四`,`五`,`六`,`七`,`八`,`九`,`十`,`十一`,`十二`],abbreviated:[`1月`,`2月`,`3月`,`4月`,`5月`,`6月`,`7月`,`8月`,`9月`,`10月`,`11月`,`12月`],wide:[`一月`,`二月`,`三月`,`四月`,`五月`,`六月`,`七月`,`八月`,`九月`,`十月`,`十一月`,`十二月`]},defaultWidth:`wide`}),day:K({values:{narrow:[`日`,`一`,`二`,`三`,`四`,`五`,`六`],short:[`日`,`一`,`二`,`三`,`四`,`五`,`六`],abbreviated:[`周日`,`周一`,`周二`,`周三`,`周四`,`周五`,`周六`],wide:[`星期日`,`星期一`,`星期二`,`星期三`,`星期四`,`星期五`,`星期六`]},defaultWidth:`wide`}),dayPeriod:K({values:{narrow:{am:`上`,pm:`下`,midnight:`凌晨`,noon:`午`,morning:`早`,afternoon:`下午`,evening:`晚`,night:`夜`},abbreviated:{am:`上午`,pm:`下午`,midnight:`凌晨`,noon:`中午`,morning:`早晨`,afternoon:`中午`,evening:`晚上`,night:`夜间`},wide:{am:`上午`,pm:`下午`,midnight:`凌晨`,noon:`中午`,morning:`早晨`,afternoon:`中午`,evening:`晚上`,night:`夜间`}},defaultWidth:`wide`,formattingValues:{narrow:{am:`上`,pm:`下`,midnight:`凌晨`,noon:`午`,morning:`早`,afternoon:`下午`,evening:`晚`,night:`夜`},abbreviated:{am:`上午`,pm:`下午`,midnight:`凌晨`,noon:`中午`,morning:`早晨`,afternoon:`中午`,evening:`晚上`,night:`夜间`},wide:{am:`上午`,pm:`下午`,midnight:`凌晨`,noon:`中午`,morning:`早晨`,afternoon:`中午`,evening:`晚上`,night:`夜间`}},defaultFormattingWidth:`wide`})},match:{ordinalNumber:J({matchPattern:/^(第\s*)?\d+(日|时|分|秒)?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)}),era:q({matchPatterns:{narrow:/^(前)/i,abbreviated:/^(前)/i,wide:/^(公元前|公元)/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/^(前)/i,/^(公元)/i]},defaultParseWidth:`any`}),quarter:q({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^第[一二三四]刻/i,wide:/^第[一二三四]刻钟/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/(1|一)/i,/(2|二)/i,/(3|三)/i,/(4|四)/i]},defaultParseWidth:`any`,valueCallback:e=>e+1}),month:q({matchPatterns:{narrow:/^(一|二|三|四|五|六|七|八|九|十[二一])/i,abbreviated:/^(一|二|三|四|五|六|七|八|九|十[二一]|\d|1[12])月/i,wide:/^(一|二|三|四|五|六|七|八|九|十[二一])月/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^一/i,/^二/i,/^三/i,/^四/i,/^五/i,/^六/i,/^七/i,/^八/i,/^九/i,/^十(?!(一|二))/i,/^十一/i,/^十二/i],any:[/^一|1/i,/^二|2/i,/^三|3/i,/^四|4/i,/^五|5/i,/^六|6/i,/^七|7/i,/^八|8/i,/^九|9/i,/^十(?!(一|二))|10/i,/^十一|11/i,/^十二|12/i]},defaultParseWidth:`any`}),day:q({matchPatterns:{narrow:/^[一二三四五六日]/i,short:/^[一二三四五六日]/i,abbreviated:/^周[一二三四五六日]/i,wide:/^星期[一二三四五六日]/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/日/i,/一/i,/二/i,/三/i,/四/i,/五/i,/六/i]},defaultParseWidth:`any`}),dayPeriod:q({matchPatterns:{any:/^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨|)/i},defaultMatchWidth:`any`,parsePatterns:{any:{am:/^上午?/i,pm:/^下午?/i,midnight:/^午夜/i,noon:/^[中正]午/i,morning:/^早上/i,afternoon:/^下午/i,evening:/^晚上?/i,night:/^凌晨/i}},defaultParseWidth:`any`})},options:{weekStartsOn:1,firstWeekContainsDate:4}},Sn=[`en`,`es`,`fr`,`de`,`pt`,`it`,`zh`,`ja`],Cn={en:{id:`en`,nativeName:`English`,englishName:`English`},es:{id:`es`,nativeName:`Español`,englishName:`Spanish`},fr:{id:`fr`,nativeName:`Français`,englishName:`French`},de:{id:`de`,nativeName:`Deutsch`,englishName:`German`},pt:{id:`pt`,nativeName:`Português`,englishName:`Portuguese`},it:{id:`it`,nativeName:`Italiano`,englishName:`Italian`},zh:{id:`zh`,nativeName:`中文`,englishName:`Chinese`},ja:{id:`ja`,nativeName:`日本語`,englishName:`Japanese`}},wn=`specrails-desktop:ui-language`;function Tn(e){return typeof e==`string`&&Sn.includes(e)}function En(e){return e.split(`/`).pop().replace(/\.json$/,``)}var Dn=Object.assign({"../locales/en/activity.json":a,"../locales/en/addspec.json":o,"../locales/en/agent.json":s,"../locales/en/agentRuntime.json":c,"../locales/en/agents.json":l,"../locales/en/agentstudio.json":u,"../locales/en/aiedit.json":d,"../locales/en/analytics.json":f,"../locales/en/attachments.json":p,"../locales/en/browser.json":m,"../locales/en/builder.json":h,"../locales/en/chat.json":g,"../locales/en/code.json":_,"../locales/en/commands.json":v,"../locales/en/common.json":y,"../locales/en/dashboard.json":b,"../locales/en/explore.json":x,"../locales/en/inbox.json":S,"../locales/en/integrations.json":C,"../locales/en/jira.json":w,"../locales/en/jobs.json":T,"../locales/en/loops.json":E,"../locales/en/mcp.json":ee,"../locales/en/narration.json":D,"../locales/en/nav.json":te,"../locales/en/onboarding.json":O,"../locales/en/packet.json":ne,"../locales/en/recovery.json":k,"../locales/en/settings.json":A,"../locales/en/setup.json":re,"../locales/en/specs.json":j,"../locales/en/subscriptionUsage.json":M,"../locales/en/terminal.json":ie,"../locales/en/tickets.json":ae,"../locales/en/undo.json":oe}),On=Object.assign({"../locales/de/activity.json":()=>i(()=>import(`./activity-Dspbb9lz.js`),[]),"../locales/de/addspec.json":()=>i(()=>import(`./addspec-BI4jDMhA.js`),[]),"../locales/de/agent.json":()=>i(()=>import(`./agent-C3689RwP.js`),[]),"../locales/de/agentRuntime.json":()=>i(()=>import(`./agentRuntime-DkIruUNw.js`),[]),"../locales/de/agents.json":()=>i(()=>import(`./agents-C4P160Us.js`),[]),"../locales/de/agentstudio.json":()=>i(()=>import(`./agentstudio-CD1fuj2o.js`),[]),"../locales/de/aiedit.json":()=>i(()=>import(`./aiedit-BNp6GSik.js`),[]),"../locales/de/analytics.json":()=>i(()=>import(`./analytics-CP2HjESk.js`),[]),"../locales/de/attachments.json":()=>i(()=>import(`./attachments-Q9yNtiEM.js`),[]),"../locales/de/browser.json":()=>i(()=>import(`./browser-CMzaqAjo.js`),[]),"../locales/de/builder.json":()=>i(()=>import(`./builder-BN-MuLZt.js`),[]),"../locales/de/chat.json":()=>i(()=>import(`./chat-2rIB8HhT.js`),[]),"../locales/de/code.json":()=>i(()=>import(`./code-4le5IIbf.js`),[]),"../locales/de/commands.json":()=>i(()=>import(`./commands-D9o3ZcXl.js`),[]),"../locales/de/common.json":()=>i(()=>import(`./common-CQP3VafS.js`),[]),"../locales/de/dashboard.json":()=>i(()=>import(`./dashboard-8Gi0FBDq.js`),[]),"../locales/de/explore.json":()=>i(()=>import(`./explore-B2ulH6dO.js`),[]),"../locales/de/inbox.json":()=>i(()=>import(`./inbox-CF1PHjns.js`),[]),"../locales/de/integrations.json":()=>i(()=>import(`./integrations-CT3kr8e-.js`),[]),"../locales/de/jira.json":()=>i(()=>import(`./jira-MInHRUb1.js`),[]),"../locales/de/jobs.json":()=>i(()=>import(`./jobs-BO8q4Mi1.js`),[]),"../locales/de/loops.json":()=>i(()=>import(`./loops-BjWxzJIZ.js`),[]),"../locales/de/mcp.json":()=>i(()=>import(`./mcp-C2F1pghi.js`),[]),"../locales/de/narration.json":()=>i(()=>import(`./narration-DJUXOs-W.js`),[]),"../locales/de/nav.json":()=>i(()=>import(`./nav-DPzVlgZU.js`),[]),"../locales/de/onboarding.json":()=>i(()=>import(`./onboarding-CjvDUR3V.js`),[]),"../locales/de/packet.json":()=>i(()=>import(`./packet-BwgG5mBt.js`),[]),"../locales/de/recovery.json":()=>i(()=>import(`./recovery-XXexYGOJ.js`),[]),"../locales/de/settings.json":()=>i(()=>import(`./settings--yzDbX9r.js`),[]),"../locales/de/setup.json":()=>i(()=>import(`./setup-oGoVAzOD.js`),[]),"../locales/de/specs.json":()=>i(()=>import(`./specs-CS091AnA.js`),[]),"../locales/de/subscriptionUsage.json":()=>i(()=>import(`./subscriptionUsage-EFu0mIK3.js`),[]),"../locales/de/terminal.json":()=>i(()=>import(`./terminal-C2RUlXyi.js`),[]),"../locales/de/tickets.json":()=>i(()=>import(`./tickets-BhdZ1yY2.js`),[]),"../locales/de/undo.json":()=>i(()=>import(`./undo-x_gA-knG.js`),[]),"../locales/en/activity.json":()=>i(()=>import(`./activity-Cevl82ke.js`).then(e=>e.t),__vite__mapDeps([0,1])),"../locales/en/addspec.json":()=>i(()=>import(`./addspec-DOFo9pD5.js`).then(e=>e.t),__vite__mapDeps([2,1])),"../locales/en/agent.json":()=>i(()=>import(`./agent-DcsoTnuE.js`).then(e=>e.t),__vite__mapDeps([3,1])),"../locales/en/agentRuntime.json":()=>i(()=>import(`./agentRuntime-BijLh8I9.js`).then(e=>e.t),__vite__mapDeps([4,1])),"../locales/en/agents.json":()=>i(()=>import(`./agents-EN1Zl4YZ.js`).then(e=>e.t),__vite__mapDeps([5,1])),"../locales/en/agentstudio.json":()=>i(()=>import(`./agentstudio-DIE_HjsX.js`).then(e=>e.t),__vite__mapDeps([6,1])),"../locales/en/aiedit.json":()=>i(()=>import(`./aiedit-BrqMZvbc.js`).then(e=>e.t),__vite__mapDeps([7,1])),"../locales/en/analytics.json":()=>i(()=>import(`./analytics-BRi4KQD6.js`).then(e=>e.t),__vite__mapDeps([8,1])),"../locales/en/attachments.json":()=>i(()=>import(`./attachments-B53PG733.js`).then(e=>e.t),__vite__mapDeps([9,1])),"../locales/en/browser.json":()=>i(()=>import(`./browser-CG0PE1j_.js`).then(e=>e.t),__vite__mapDeps([10,1])),"../locales/en/builder.json":()=>i(()=>import(`./builder-BMVvSr4v.js`).then(e=>e.t),__vite__mapDeps([11,1])),"../locales/en/chat.json":()=>i(()=>import(`./chat-BGD7MXAy.js`).then(e=>e.t),__vite__mapDeps([12,1])),"../locales/en/code.json":()=>i(()=>import(`./code-CK6pm8wY.js`).then(e=>e.t),__vite__mapDeps([13,1])),"../locales/en/commands.json":()=>i(()=>import(`./commands-DNox0Edk.js`).then(e=>e.t),__vite__mapDeps([14,1])),"../locales/en/common.json":()=>i(()=>import(`./common-5H4TkaoI.js`).then(e=>e.t),__vite__mapDeps([15,1])),"../locales/en/dashboard.json":()=>i(()=>import(`./dashboard-6zGLGcEz.js`).then(e=>e.t),__vite__mapDeps([16,1])),"../locales/en/explore.json":()=>i(()=>import(`./explore--NOz9LCN.js`).then(e=>e.t),__vite__mapDeps([17,1])),"../locales/en/inbox.json":()=>i(()=>import(`./inbox-CFNPDhso.js`).then(e=>e.t),__vite__mapDeps([18,1])),"../locales/en/integrations.json":()=>i(()=>import(`./integrations-BmX_XyJq.js`).then(e=>e.t),__vite__mapDeps([19,1])),"../locales/en/jira.json":()=>i(()=>import(`./jira-CkwjeJz6.js`).then(e=>e.t),__vite__mapDeps([20,1])),"../locales/en/jobs.json":()=>i(()=>import(`./jobs-DT5s4fZ6.js`).then(e=>e.t),__vite__mapDeps([21,1])),"../locales/en/loops.json":()=>i(()=>import(`./loops-BogV595N.js`).then(e=>e.t),__vite__mapDeps([22,1])),"../locales/en/mcp.json":()=>i(()=>import(`./mcp-DbGSFC3f.js`).then(e=>e.t),__vite__mapDeps([23,1])),"../locales/en/narration.json":()=>i(()=>import(`./narration-MYlfktga.js`).then(e=>e.t),__vite__mapDeps([24,1])),"../locales/en/nav.json":()=>i(()=>import(`./nav-DZJbFbah.js`).then(e=>e.t),__vite__mapDeps([25,1])),"../locales/en/onboarding.json":()=>i(()=>import(`./onboarding-BdZQnNm3.js`).then(e=>e.t),__vite__mapDeps([26,1])),"../locales/en/packet.json":()=>i(()=>import(`./packet-aasskOE7.js`).then(e=>e.t),__vite__mapDeps([27,1])),"../locales/en/recovery.json":()=>i(()=>import(`./recovery-pITlc--v.js`).then(e=>e.t),__vite__mapDeps([28,1])),"../locales/en/settings.json":()=>i(()=>import(`./settings-DnWFoY-F.js`).then(e=>e.t),__vite__mapDeps([29,1])),"../locales/en/setup.json":()=>i(()=>import(`./setup-DxTBkX3P.js`).then(e=>e.t),__vite__mapDeps([30,1])),"../locales/en/specs.json":()=>i(()=>import(`./specs-7tAb4IKr.js`).then(e=>e.t),__vite__mapDeps([31,1])),"../locales/en/subscriptionUsage.json":()=>i(()=>import(`./subscriptionUsage-CdlE5Mg1.js`).then(e=>e.t),__vite__mapDeps([32,1])),"../locales/en/terminal.json":()=>i(()=>import(`./terminal-AbUAmCxE.js`).then(e=>e.t),__vite__mapDeps([33,1])),"../locales/en/tickets.json":()=>i(()=>import(`./tickets-Bfo2GGmH.js`).then(e=>e.t),__vite__mapDeps([34,1])),"../locales/en/undo.json":()=>i(()=>import(`./undo-ds8nMFbX.js`).then(e=>e.t),__vite__mapDeps([35,1])),"../locales/es/activity.json":()=>i(()=>import(`./activity-D9LBw3PQ.js`),[]),"../locales/es/addspec.json":()=>i(()=>import(`./addspec-DH5M16BQ.js`),[]),"../locales/es/agent.json":()=>i(()=>import(`./agent-CrmboTAi.js`),[]),"../locales/es/agentRuntime.json":()=>i(()=>import(`./agentRuntime-DWZedEbn.js`),[]),"../locales/es/agents.json":()=>i(()=>import(`./agents-Clg67zbp.js`),[]),"../locales/es/agentstudio.json":()=>i(()=>import(`./agentstudio-Djz9aUfb.js`),[]),"../locales/es/aiedit.json":()=>i(()=>import(`./aiedit-iA_R1AVQ.js`),[]),"../locales/es/analytics.json":()=>i(()=>import(`./analytics-3w0t-4ic.js`),[]),"../locales/es/attachments.json":()=>i(()=>import(`./attachments-DenIjuVI.js`),[]),"../locales/es/browser.json":()=>i(()=>import(`./browser-DMajYdNX.js`),[]),"../locales/es/builder.json":()=>i(()=>import(`./builder-BQOZi4CF.js`),[]),"../locales/es/chat.json":()=>i(()=>import(`./chat-C9L5T7KI.js`),[]),"../locales/es/code.json":()=>i(()=>import(`./code-DDiOzd6c.js`),[]),"../locales/es/commands.json":()=>i(()=>import(`./commands-CBKMFSTV.js`),[]),"../locales/es/common.json":()=>i(()=>import(`./common-k_qX9nlv.js`),[]),"../locales/es/dashboard.json":()=>i(()=>import(`./dashboard-BhdKV8xK.js`),[]),"../locales/es/explore.json":()=>i(()=>import(`./explore-CLjzPSKo.js`),[]),"../locales/es/inbox.json":()=>i(()=>import(`./inbox-BQ3VmNYY.js`),[]),"../locales/es/integrations.json":()=>i(()=>import(`./integrations-DEYemxUv.js`),[]),"../locales/es/jira.json":()=>i(()=>import(`./jira-B_ERkFRv.js`),[]),"../locales/es/jobs.json":()=>i(()=>import(`./jobs-DZAgVPcD.js`),[]),"../locales/es/loops.json":()=>i(()=>import(`./loops-CwalwS_i.js`),[]),"../locales/es/mcp.json":()=>i(()=>import(`./mcp-D9RLKAs2.js`),[]),"../locales/es/narration.json":()=>i(()=>import(`./narration-Cr0NeW9K.js`),[]),"../locales/es/nav.json":()=>i(()=>import(`./nav-D3bOsipX.js`),[]),"../locales/es/onboarding.json":()=>i(()=>import(`./onboarding-dgC_9dTB.js`),[]),"../locales/es/packet.json":()=>i(()=>import(`./packet-CNXEy_85.js`),[]),"../locales/es/recovery.json":()=>i(()=>import(`./recovery-OxAIpbBF.js`),[]),"../locales/es/settings.json":()=>i(()=>import(`./settings-BZDo_8Nn.js`),[]),"../locales/es/setup.json":()=>i(()=>import(`./setup-BvVIyUlz.js`),[]),"../locales/es/specs.json":()=>i(()=>import(`./specs-BUcY4s5v.js`),[]),"../locales/es/subscriptionUsage.json":()=>i(()=>import(`./subscriptionUsage-DUPBmSQi.js`),[]),"../locales/es/terminal.json":()=>i(()=>import(`./terminal-i99yqFvm.js`),[]),"../locales/es/tickets.json":()=>i(()=>import(`./tickets-Ct9DbDUR.js`),[]),"../locales/es/undo.json":()=>i(()=>import(`./undo-6zuS4-sL.js`),[]),"../locales/fr/activity.json":()=>i(()=>import(`./activity-BBWfoUOG.js`),[]),"../locales/fr/addspec.json":()=>i(()=>import(`./addspec-Cdq-2EcC.js`),[]),"../locales/fr/agent.json":()=>i(()=>import(`./agent-BarjlhTA.js`),[]),"../locales/fr/agentRuntime.json":()=>i(()=>import(`./agentRuntime-D2dDvCyJ.js`),[]),"../locales/fr/agents.json":()=>i(()=>import(`./agents-DJfF4o6G.js`),[]),"../locales/fr/agentstudio.json":()=>i(()=>import(`./agentstudio-CQGWFSst.js`),[]),"../locales/fr/aiedit.json":()=>i(()=>import(`./aiedit-BOY5xRPi.js`),[]),"../locales/fr/analytics.json":()=>i(()=>import(`./analytics-BtjAqzke.js`),[]),"../locales/fr/attachments.json":()=>i(()=>import(`./attachments-D0wXXt9T.js`),[]),"../locales/fr/browser.json":()=>i(()=>import(`./browser-05vRDg_y.js`),[]),"../locales/fr/builder.json":()=>i(()=>import(`./builder-C5g5NhxL.js`),[]),"../locales/fr/chat.json":()=>i(()=>import(`./chat-DZyu3ImY.js`),[]),"../locales/fr/code.json":()=>i(()=>import(`./code-B-jCVIbm.js`),[]),"../locales/fr/commands.json":()=>i(()=>import(`./commands-BvxTxboW.js`),[]),"../locales/fr/common.json":()=>i(()=>import(`./common-D5sNttV4.js`),[]),"../locales/fr/dashboard.json":()=>i(()=>import(`./dashboard-Bu3zzH_s.js`),[]),"../locales/fr/explore.json":()=>i(()=>import(`./explore-BD-QiLdg.js`),[]),"../locales/fr/inbox.json":()=>i(()=>import(`./inbox-JS1inmeO.js`),[]),"../locales/fr/integrations.json":()=>i(()=>import(`./integrations-BcKgzgPD.js`),[]),"../locales/fr/jira.json":()=>i(()=>import(`./jira-D9pSLXjI.js`),[]),"../locales/fr/jobs.json":()=>i(()=>import(`./jobs-BMLTDo63.js`),[]),"../locales/fr/loops.json":()=>i(()=>import(`./loops-_TDVN-fX.js`),[]),"../locales/fr/mcp.json":()=>i(()=>import(`./mcp-FelCicrv.js`),[]),"../locales/fr/narration.json":()=>i(()=>import(`./narration-CkoJq-Lf.js`),[]),"../locales/fr/nav.json":()=>i(()=>import(`./nav-BauVof8Z.js`),[]),"../locales/fr/onboarding.json":()=>i(()=>import(`./onboarding-CJQEv1vp.js`),[]),"../locales/fr/packet.json":()=>i(()=>import(`./packet-C8wZuSld.js`),[]),"../locales/fr/recovery.json":()=>i(()=>import(`./recovery-DHCo8KGi.js`),[]),"../locales/fr/settings.json":()=>i(()=>import(`./settings-BdWgmNc0.js`),[]),"../locales/fr/setup.json":()=>i(()=>import(`./setup-BJWy62ri.js`),[]),"../locales/fr/specs.json":()=>i(()=>import(`./specs-CAA4Lrlg.js`),[]),"../locales/fr/subscriptionUsage.json":()=>i(()=>import(`./subscriptionUsage-CBh82zVa.js`),[]),"../locales/fr/terminal.json":()=>i(()=>import(`./terminal-BJayIbIP.js`),[]),"../locales/fr/tickets.json":()=>i(()=>import(`./tickets-B5LJTe_b.js`),[]),"../locales/fr/undo.json":()=>i(()=>import(`./undo-BzwEPf_k.js`),[]),"../locales/it/activity.json":()=>i(()=>import(`./activity-FPjYIjv9.js`),[]),"../locales/it/addspec.json":()=>i(()=>import(`./addspec-DPkwhdmL.js`),[]),"../locales/it/agent.json":()=>i(()=>import(`./agent-GDZoYwd4.js`),[]),"../locales/it/agentRuntime.json":()=>i(()=>import(`./agentRuntime-C2WI6HQh.js`),[]),"../locales/it/agents.json":()=>i(()=>import(`./agents-8fZnHhEQ.js`),[]),"../locales/it/agentstudio.json":()=>i(()=>import(`./agentstudio-Bm4-NYaG.js`),[]),"../locales/it/aiedit.json":()=>i(()=>import(`./aiedit-CVgtl7hm.js`),[]),"../locales/it/analytics.json":()=>i(()=>import(`./analytics-LmBS96O8.js`),[]),"../locales/it/attachments.json":()=>i(()=>import(`./attachments-DhO7LPfy.js`),[]),"../locales/it/browser.json":()=>i(()=>import(`./browser-Bulb-cB1.js`),[]),"../locales/it/builder.json":()=>i(()=>import(`./builder-RUHXw3yx.js`),[]),"../locales/it/chat.json":()=>i(()=>import(`./chat-CdY5SGvS.js`),[]),"../locales/it/code.json":()=>i(()=>import(`./code-CC9NCrDM.js`),[]),"../locales/it/commands.json":()=>i(()=>import(`./commands-Bv1QshHR.js`),[]),"../locales/it/common.json":()=>i(()=>import(`./common-s4HIi9XI.js`),[]),"../locales/it/dashboard.json":()=>i(()=>import(`./dashboard-gUzlWk0o.js`),[]),"../locales/it/explore.json":()=>i(()=>import(`./explore-BOqd4_1j.js`),[]),"../locales/it/inbox.json":()=>i(()=>import(`./inbox-Dfdv1Ykl.js`),[]),"../locales/it/integrations.json":()=>i(()=>import(`./integrations-DWvsB_WB.js`),[]),"../locales/it/jira.json":()=>i(()=>import(`./jira-Bn-A5lwD.js`),[]),"../locales/it/jobs.json":()=>i(()=>import(`./jobs-b5gPYaKr.js`),[]),"../locales/it/loops.json":()=>i(()=>import(`./loops-BcrQ2vk7.js`),[]),"../locales/it/mcp.json":()=>i(()=>import(`./mcp-DWWAPi1G.js`),[]),"../locales/it/narration.json":()=>i(()=>import(`./narration-DgL8TMvN.js`),[]),"../locales/it/nav.json":()=>i(()=>import(`./nav-BSQ8KW1c.js`),[]),"../locales/it/onboarding.json":()=>i(()=>import(`./onboarding-ChfYN7dA.js`),[]),"../locales/it/packet.json":()=>i(()=>import(`./packet-phxCc2gJ.js`),[]),"../locales/it/recovery.json":()=>i(()=>import(`./recovery-BluNHoXM.js`),[]),"../locales/it/settings.json":()=>i(()=>import(`./settings-BSf27MDg.js`),[]),"../locales/it/setup.json":()=>i(()=>import(`./setup-BgKOIuzc.js`),[]),"../locales/it/specs.json":()=>i(()=>import(`./specs-xQgyc7WL.js`),[]),"../locales/it/subscriptionUsage.json":()=>i(()=>import(`./subscriptionUsage-DrlwrJ17.js`),[]),"../locales/it/terminal.json":()=>i(()=>import(`./terminal-DKWjj7HJ.js`),[]),"../locales/it/tickets.json":()=>i(()=>import(`./tickets-CgjWJHAW.js`),[]),"../locales/it/undo.json":()=>i(()=>import(`./undo-BeppX8xS.js`),[]),"../locales/ja/activity.json":()=>i(()=>import(`./activity-nLCKMUKt.js`),[]),"../locales/ja/addspec.json":()=>i(()=>import(`./addspec-BldTv7Tl.js`),[]),"../locales/ja/agent.json":()=>i(()=>import(`./agent-B_UEUy7Y.js`),[]),"../locales/ja/agentRuntime.json":()=>i(()=>import(`./agentRuntime-CZPIlQsr.js`),[]),"../locales/ja/agents.json":()=>i(()=>import(`./agents-35_PDKx9.js`),[]),"../locales/ja/agentstudio.json":()=>i(()=>import(`./agentstudio-D_OmQK-k.js`),[]),"../locales/ja/aiedit.json":()=>i(()=>import(`./aiedit-CrFW9Jd2.js`),[]),"../locales/ja/analytics.json":()=>i(()=>import(`./analytics-COSQ1h47.js`),[]),"../locales/ja/attachments.json":()=>i(()=>import(`./attachments-V_WZAYXx.js`),[]),"../locales/ja/browser.json":()=>i(()=>import(`./browser-C7f-Jsg1.js`),[]),"../locales/ja/builder.json":()=>i(()=>import(`./builder-fyS_AiyC.js`),[]),"../locales/ja/chat.json":()=>i(()=>import(`./chat-BR8oe53x.js`),[]),"../locales/ja/code.json":()=>i(()=>import(`./code-BRfrn5ix.js`),[]),"../locales/ja/commands.json":()=>i(()=>import(`./commands-CFJIRsJv.js`),[]),"../locales/ja/common.json":()=>i(()=>import(`./common-CZnAfkB2.js`),[]),"../locales/ja/dashboard.json":()=>i(()=>import(`./dashboard-B7E5YrSy.js`),[]),"../locales/ja/explore.json":()=>i(()=>import(`./explore-Be_Zh5zu.js`),[]),"../locales/ja/inbox.json":()=>i(()=>import(`./inbox-BdcXWCuT.js`),[]),"../locales/ja/integrations.json":()=>i(()=>import(`./integrations-Ct9zLX7N.js`),[]),"../locales/ja/jira.json":()=>i(()=>import(`./jira-C71Ybnhp.js`),[]),"../locales/ja/jobs.json":()=>i(()=>import(`./jobs-CyFfPCpg.js`),[]),"../locales/ja/loops.json":()=>i(()=>import(`./loops-BEEOVJDR.js`),[]),"../locales/ja/mcp.json":()=>i(()=>import(`./mcp-DAghcsR0.js`),[]),"../locales/ja/narration.json":()=>i(()=>import(`./narration-Dle6Iv0c.js`),[]),"../locales/ja/nav.json":()=>i(()=>import(`./nav-D_5aojd2.js`),[]),"../locales/ja/onboarding.json":()=>i(()=>import(`./onboarding-mlXSyKzX.js`),[]),"../locales/ja/packet.json":()=>i(()=>import(`./packet-DsV5Aa_8.js`),[]),"../locales/ja/recovery.json":()=>i(()=>import(`./recovery-BPDOsC92.js`),[]),"../locales/ja/settings.json":()=>i(()=>import(`./settings-5_heTv8s.js`),[]),"../locales/ja/setup.json":()=>i(()=>import(`./setup-BxCk2pe1.js`),[]),"../locales/ja/specs.json":()=>i(()=>import(`./specs-Bk5LeBAA.js`),[]),"../locales/ja/subscriptionUsage.json":()=>i(()=>import(`./subscriptionUsage-CHcQ7lLe.js`),[]),"../locales/ja/terminal.json":()=>i(()=>import(`./terminal-0v9sBylD.js`),[]),"../locales/ja/tickets.json":()=>i(()=>import(`./tickets-xQ6DpYdu.js`),[]),"../locales/ja/undo.json":()=>i(()=>import(`./undo-BeM4gDOP.js`),[]),"../locales/pt/activity.json":()=>i(()=>import(`./activity-BM_skann.js`),[]),"../locales/pt/addspec.json":()=>i(()=>import(`./addspec-Dzy12Pv3.js`),[]),"../locales/pt/agent.json":()=>i(()=>import(`./agent-BfqIITo5.js`),[]),"../locales/pt/agentRuntime.json":()=>i(()=>import(`./agentRuntime-BYH70bKY.js`),[]),"../locales/pt/agents.json":()=>i(()=>import(`./agents-Bgimtw8z.js`),[]),"../locales/pt/agentstudio.json":()=>i(()=>import(`./agentstudio-CqVSb65S.js`),[]),"../locales/pt/aiedit.json":()=>i(()=>import(`./aiedit-YE2lILp7.js`),[]),"../locales/pt/analytics.json":()=>i(()=>import(`./analytics-Den_vvxn.js`),[]),"../locales/pt/attachments.json":()=>i(()=>import(`./attachments-eaeScpjM.js`),[]),"../locales/pt/browser.json":()=>i(()=>import(`./browser-ObE7xVo3.js`),[]),"../locales/pt/builder.json":()=>i(()=>import(`./builder-BjUPjsyu.js`),[]),"../locales/pt/chat.json":()=>i(()=>import(`./chat-Bua03tty.js`),[]),"../locales/pt/code.json":()=>i(()=>import(`./code-tGifiyf5.js`),[]),"../locales/pt/commands.json":()=>i(()=>import(`./commands-C5ORR0fO.js`),[]),"../locales/pt/common.json":()=>i(()=>import(`./common-BqnwIcjs.js`),[]),"../locales/pt/dashboard.json":()=>i(()=>import(`./dashboard-Ce_6rELA.js`),[]),"../locales/pt/explore.json":()=>i(()=>import(`./explore-yEQTF6ro.js`),[]),"../locales/pt/inbox.json":()=>i(()=>import(`./inbox-BLZ8cm6_.js`),[]),"../locales/pt/integrations.json":()=>i(()=>import(`./integrations-CHpwMjlY.js`),[]),"../locales/pt/jira.json":()=>i(()=>import(`./jira-DHS6CsKh.js`),[]),"../locales/pt/jobs.json":()=>i(()=>import(`./jobs-Ck8uOWMM.js`),[]),"../locales/pt/loops.json":()=>i(()=>import(`./loops-CrNBgi1G.js`),[]),"../locales/pt/mcp.json":()=>i(()=>import(`./mcp-BNs8gxoL.js`),[]),"../locales/pt/narration.json":()=>i(()=>import(`./narration-DjBafgv0.js`),[]),"../locales/pt/nav.json":()=>i(()=>import(`./nav-DOMMhlLx.js`),[]),"../locales/pt/onboarding.json":()=>i(()=>import(`./onboarding-I6vS-zTB.js`),[]),"../locales/pt/packet.json":()=>i(()=>import(`./packet-C3eAUFkV.js`),[]),"../locales/pt/recovery.json":()=>i(()=>import(`./recovery-CeIoRnkR.js`),[]),"../locales/pt/settings.json":()=>i(()=>import(`./settings-DRouxKqb.js`),[]),"../locales/pt/setup.json":()=>i(()=>import(`./setup-CbaVoiwV.js`),[]),"../locales/pt/specs.json":()=>i(()=>import(`./specs-GfCcrBSC.js`),[]),"../locales/pt/subscriptionUsage.json":()=>i(()=>import(`./subscriptionUsage-BWTeWlHx.js`),[]),"../locales/pt/terminal.json":()=>i(()=>import(`./terminal-KlFu7_pV.js`),[]),"../locales/pt/tickets.json":()=>i(()=>import(`./tickets-rptLEJB1.js`),[]),"../locales/pt/undo.json":()=>i(()=>import(`./undo-CJ9Cu1NN.js`),[]),"../locales/zh/activity.json":()=>i(()=>import(`./activity-CmACk5W5.js`),[]),"../locales/zh/addspec.json":()=>i(()=>import(`./addspec-skTs6EEW.js`),[]),"../locales/zh/agent.json":()=>i(()=>import(`./agent-Bt9a7Kyj.js`),[]),"../locales/zh/agentRuntime.json":()=>i(()=>import(`./agentRuntime-BvyuETPe.js`),[]),"../locales/zh/agents.json":()=>i(()=>import(`./agents-Dc9-Y5cw.js`),[]),"../locales/zh/agentstudio.json":()=>i(()=>import(`./agentstudio-Qa3v9o5J.js`),[]),"../locales/zh/aiedit.json":()=>i(()=>import(`./aiedit-1VzLs37W.js`),[]),"../locales/zh/analytics.json":()=>i(()=>import(`./analytics-DY65TC62.js`),[]),"../locales/zh/attachments.json":()=>i(()=>import(`./attachments-DoH5w0x4.js`),[]),"../locales/zh/browser.json":()=>i(()=>import(`./browser-DxcOHrdP.js`),[]),"../locales/zh/builder.json":()=>i(()=>import(`./builder-BoBtN18T.js`),[]),"../locales/zh/chat.json":()=>i(()=>import(`./chat-CZpAQan1.js`),[]),"../locales/zh/code.json":()=>i(()=>import(`./code-xkn8kQTg.js`),[]),"../locales/zh/commands.json":()=>i(()=>import(`./commands-DmIUMLdV.js`),[]),"../locales/zh/common.json":()=>i(()=>import(`./common-9S3OdPjx.js`),[]),"../locales/zh/dashboard.json":()=>i(()=>import(`./dashboard-DWY-oz8P.js`),[]),"../locales/zh/explore.json":()=>i(()=>import(`./explore-D_-vHm29.js`),[]),"../locales/zh/inbox.json":()=>i(()=>import(`./inbox-DIttK_NW.js`),[]),"../locales/zh/integrations.json":()=>i(()=>import(`./integrations-C_5XAkgz.js`),[]),"../locales/zh/jira.json":()=>i(()=>import(`./jira-DBRS_lcp.js`),[]),"../locales/zh/jobs.json":()=>i(()=>import(`./jobs-xsZK1440.js`),[]),"../locales/zh/loops.json":()=>i(()=>import(`./loops-CU0BLZiz.js`),[]),"../locales/zh/mcp.json":()=>i(()=>import(`./mcp-BvRh_xO5.js`),[]),"../locales/zh/narration.json":()=>i(()=>import(`./narration-C3NBkAR4.js`),[]),"../locales/zh/nav.json":()=>i(()=>import(`./nav-BfOAH1se.js`),[]),"../locales/zh/onboarding.json":()=>i(()=>import(`./onboarding-CWJGYUW3.js`),[]),"../locales/zh/packet.json":()=>i(()=>import(`./packet-BjpyRnZr.js`),[]),"../locales/zh/recovery.json":()=>i(()=>import(`./recovery-CRvEmB0C.js`),[]),"../locales/zh/settings.json":()=>i(()=>import(`./settings-BSj6FakR.js`),[]),"../locales/zh/setup.json":()=>i(()=>import(`./setup-C-xQTL7R.js`),[]),"../locales/zh/specs.json":()=>i(()=>import(`./specs-DJ6gmFcK.js`),[]),"../locales/zh/subscriptionUsage.json":()=>i(()=>import(`./subscriptionUsage-BH73RO86.js`),[]),"../locales/zh/terminal.json":()=>i(()=>import(`./terminal-CMmSb_Nj.js`),[]),"../locales/zh/tickets.json":()=>i(()=>import(`./tickets-846Oq3i3.js`),[]),"../locales/zh/undo.json":()=>i(()=>import(`./undo-BqvNZ5MG.js`),[])}),kn={};for(let[e,t]of Object.entries(Dn))kn[En(e)]=t.default;var An=Object.keys(kn),jn=new Set([`en`]);function Mn(){if(typeof navigator<`u`){let e=navigator.languages&&navigator.languages.length>0?navigator.languages:[navigator.language];for(let t of e){if(!t)continue;let e=t.toLowerCase().split(`-`)[0];if(Tn(e))return e}}return`en`}function Nn(){if(typeof localStorage<`u`)try{let e=localStorage.getItem(wn);if(Tn(e))return e}catch{}return Mn()}W.use(Ye).init({lng:`en`,fallbackLng:`en`,defaultNS:`common`,ns:An,resources:{en:kn},interpolation:{escapeValue:!1},returnNull:!1});async function Pn(e){if(jn.has(e))return;let t=Object.entries(On).filter(([t])=>t.includes(`/locales/${e}/`)),n=await Promise.all(t.map(async([e,t])=>[En(e),(await t()).default]));for(let[t,r]of n)W.addResourceBundle(e,t,r,!0,!0);jn.add(e)}async function Fn(e){await Pn(e),await W.changeLanguage(e),typeof document<`u`&&(document.documentElement.lang=e)}async function In(){let e=Nn();if(e!==`en`)try{await Fn(e)}catch{}}function Ln(){return Tn(W.language)?W.language:`en`}var Rn={en:At,es:It,fr:Yt,de:Ct,pt:hn,it:an,zh:xn,ja:un};function zn(e){let t=e??W.language;return Rn[Tn(t)?t:`en`]}var Bn=W,Y=e(t(),1),Vn=e(r(),1),X=null,Hn=null,Un=null,Wn=!1;function Gn(e,t){return new Promise((n,r)=>{let i=()=>{clearTimeout(a),t?.removeEventListener(`abort`,i),r(new DOMException(`The operation was aborted.`,`AbortError`))},a=setTimeout(()=>{t?.removeEventListener(`abort`,i),n()},e);t?.aborted?i():t?.addEventListener(`abort`,i,{once:!0})})}function Kn(){return Un||(Un=(async()=>{let e=new AbortController,t=setTimeout(()=>e.abort(),3e3);try{let t=await(Hn??window.fetch.bind(window))(`${le}/api/token`,{signal:e.signal});if(!t.ok)return!1;let n=await t.json();return typeof n.token!=`string`||!n.token.trim()?!1:(X=n.token,!0)}catch{return!1}finally{clearTimeout(t)}})().finally(()=>{Un=null}),Un)}async function qn(){for(let e=0;e<20;e++){if(await Kn())return;e<19&&await new Promise(e=>setTimeout(e,300))}}function Jn(){return X}function Yn(){return X?`desktop-token.${X}`:void 0}var Z=new Map;function Xn(e,t){let n=Z.get(e);if(!n){let r=t().finally(()=>{Z.get(e)===r&&Z.delete(e)});n=r,Z.set(e,n)}return n.then(e=>typeof e.clone==`function`?e.clone():e)}function Zn(){Z.clear()}function Qn(){if(Wn)return;Wn=!0;let e=window.fetch.bind(window);Hn=e;let t=le||window.location.origin,n=async function(n,r={}){let i=n instanceof Request?n:null,a=typeof n==`string`?n:n instanceof URL?n.href:n.url,o;try{o=new URL(a,t)}catch{return e(n,r)}if(!(o.origin===t&&(o.pathname===`/api`||o.pathname.startsWith(`/api/`))))return e(n,r);le&&a.startsWith(`/`)&&!a.startsWith(`//`)&&(n=i?new Request(o.href,i):o.href);let s=new Headers(r.headers??i?.headers),c=s.has(`X-Desktop-Token`),l=X;!c&&l&&s.set(`X-Desktop-Token`,l);let u=n instanceof Request?n.clone():n,d=()=>e(u instanceof Request?u.clone():u,{...r,headers:s}),f=r.signal??i?.signal,p=await e(n,{...r,headers:s});if(p.status===401&&!c&&o.pathname!==`/api/token`&&!f?.aborted){if(X===l&&!await Kn()||!X||X===l)return p;s.set(`X-Desktop-Token`,X),p=await d()}let m=(r.method??i?.method??`GET`).toUpperCase(),h=0;for(let e=0;e<5&&p.status===503&&(m===`GET`||m===`HEAD`);e++){let e=!1;try{e=(await p.clone().json()).error===`project_unavailable`}catch{}if(!e)break;let t=Number(p.headers.get(`Retry-After`)??2),n=Number.isFinite(t)&&t>0?t*1e3:2e3;if(h+n>1e4)break;await Gn(n,f),h+=n,p=await d()}return p};window.fetch=function(e,r={}){let i=(r.method??(e instanceof Request?e.method:`GET`)).toUpperCase();if(i!==`GET`&&i!==`HEAD`)return Z.clear(),n(e,r).finally(()=>Z.clear());if(e instanceof Request||r.signal||r.body)return n(e,r);let a=typeof e==`string`?e:e instanceof URL?e.href:``,o;try{o=new URL(a,t)}catch{return n(e,r)}if(o.origin!==t||!o.pathname.startsWith(`/api/`))return n(e,r);let s=new Headers(r.headers);return/event-stream/i.test(s.get(`accept`)??``)?n(e,r):Xn(`${o.href}\n${[...s].map(([e,t])=>`${e}:${t}`).sort().join(`|`)}`,()=>n(e,r))}}function $n(e){if(!e||typeof document>`u`)return;let t=document.head||document.getElementsByTagName(`head`)[0],n=document.createElement(`style`);n.type=`text/css`,t.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}var er=e=>{switch(e){case`success`:return rr;case`info`:return ar;case`warning`:return ir;case`error`:return or;default:return null}},tr=Array(12).fill(0),nr=({visible:e,className:t})=>Y.createElement(`div`,{className:[`sonner-loading-wrapper`,t].filter(Boolean).join(` `),"data-visible":e},Y.createElement(`div`,{className:`sonner-spinner`},tr.map((e,t)=>Y.createElement(`div`,{className:`sonner-loading-bar`,key:`spinner-bar-${t}`})))),rr=Y.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},Y.createElement(`path`,{fillRule:`evenodd`,d:`M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z`,clipRule:`evenodd`})),ir=Y.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`currentColor`,height:`20`,width:`20`},Y.createElement(`path`,{fillRule:`evenodd`,d:`M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z`,clipRule:`evenodd`})),ar=Y.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},Y.createElement(`path`,{fillRule:`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z`,clipRule:`evenodd`})),or=Y.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},Y.createElement(`path`,{fillRule:`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z`,clipRule:`evenodd`})),sr=Y.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`},Y.createElement(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),Y.createElement(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})),cr=()=>{let[e,t]=Y.useState(document.hidden);return Y.useEffect(()=>{let e=()=>{t(document.hidden)};return document.addEventListener(`visibilitychange`,e),()=>window.removeEventListener(`visibilitychange`,e)},[]),e},lr=1,Q=new class{constructor(){this.subscribe=e=>(this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)}),this.publish=e=>{this.subscribers.forEach(t=>t(e))},this.addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e]},this.create=e=>{let{message:t,...n}=e,r=typeof e?.id==`number`||e.id?.length>0?e.id:lr++,i=this.toasts.find(e=>e.id===r),a=e.dismissible===void 0||e.dismissible;return this.dismissedToasts.has(r)&&this.dismissedToasts.delete(r),i?this.toasts=this.toasts.map(n=>n.id===r?(this.publish({...n,...e,id:r,title:t}),{...n,...e,id:r,dismissible:a,title:t}):n):this.addToast({title:t,...n,dismissible:a,id:r}),r},this.dismiss=e=>(e?(this.dismissedToasts.add(e),requestAnimationFrame(()=>this.subscribers.forEach(t=>t({id:e,dismiss:!0})))):this.toasts.forEach(e=>{this.subscribers.forEach(t=>t({id:e.id,dismiss:!0}))}),e),this.message=(e,t)=>this.create({...t,message:e}),this.error=(e,t)=>this.create({...t,message:e,type:`error`}),this.success=(e,t)=>this.create({...t,type:`success`,message:e}),this.info=(e,t)=>this.create({...t,type:`info`,message:e}),this.warning=(e,t)=>this.create({...t,type:`warning`,message:e}),this.loading=(e,t)=>this.create({...t,type:`loading`,message:e}),this.promise=(e,t)=>{if(!t)return;let n;t.loading!==void 0&&(n=this.create({...t,promise:e,type:`loading`,message:t.loading,description:typeof t.description==`function`?void 0:t.description}));let r=Promise.resolve(e instanceof Function?e():e),i=n!==void 0,a,o=r.then(async e=>{if(a=[`resolve`,e],Y.isValidElement(e))i=!1,this.create({id:n,type:`default`,message:e});else if(dr(e)&&!e.ok){i=!1;let r=typeof t.error==`function`?await t.error(`HTTP error! status: ${e.status}`):t.error,a=typeof t.description==`function`?await t.description(`HTTP error! status: ${e.status}`):t.description,o=typeof r==`object`&&!Y.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}else if(e instanceof Error){i=!1;let r=typeof t.error==`function`?await t.error(e):t.error,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!Y.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}else if(t.success!==void 0){i=!1;let r=typeof t.success==`function`?await t.success(e):t.success,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!Y.isValidElement(r)?r:{message:r};this.create({id:n,type:`success`,description:a,...o})}}).catch(async e=>{if(a=[`reject`,e],t.error!==void 0){i=!1;let r=typeof t.error==`function`?await t.error(e):t.error,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!Y.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}}).finally(()=>{i&&(this.dismiss(n),n=void 0),t.finally==null||t.finally.call(t)}),s=()=>new Promise((e,t)=>o.then(()=>a[0]===`reject`?t(a[1]):e(a[1])).catch(t));return typeof n!=`string`&&typeof n!=`number`?{unwrap:s}:Object.assign(n,{unwrap:s})},this.custom=(e,t)=>{let n=t?.id||lr++;return this.create({jsx:e(n),id:n,...t}),n},this.getActiveToasts=()=>this.toasts.filter(e=>!this.dismissedToasts.has(e.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},ur=(e,t)=>{let n=t?.id||lr++;return Q.addToast({title:e,...t,id:n}),n},dr=e=>e&&typeof e==`object`&&`ok`in e&&typeof e.ok==`boolean`&&`status`in e&&typeof e.status==`number`,fr=Object.assign(ur,{success:Q.success,info:Q.info,warning:Q.warning,error:Q.error,custom:Q.custom,message:Q.message,promise:Q.promise,dismiss:Q.dismiss,loading:Q.loading},{getHistory:()=>Q.toasts,getToasts:()=>Q.getActiveToasts()});$n(`[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}`);function pr(e){return e.label!==void 0}var mr=3,hr=`24px`,gr=`16px`,_r=4e3,vr=356,yr=14,br=45,xr=200;function $(...e){return e.filter(Boolean).join(` `)}function Sr(e){let[t,n]=e.split(`-`),r=[];return t&&r.push(t),n&&r.push(n),r}var Cr=e=>{let{invert:t,toast:n,unstyled:r,interacting:i,setHeights:a,visibleToasts:o,heights:s,index:c,toasts:l,expanded:u,removeToast:d,defaultRichColors:f,closeButton:p,style:m,cancelButtonStyle:h,actionButtonStyle:g,className:_=``,descriptionClassName:v=``,duration:y,position:b,gap:x,expandByDefault:S,classNames:C,icons:w,closeButtonAriaLabel:T=`Close toast`}=e,[E,ee]=Y.useState(null),[D,te]=Y.useState(null),[O,ne]=Y.useState(!1),[k,A]=Y.useState(!1),[re,j]=Y.useState(!1),[M,ie]=Y.useState(!1),[ae,oe]=Y.useState(!1),[se,ce]=Y.useState(0),[le,N]=Y.useState(0),P=Y.useRef(n.duration||y||_r),ue=Y.useRef(null),F=Y.useRef(null),de=c===0,fe=c+1<=o,I=n.type,L=n.dismissible!==!1,pe=n.className||``,me=n.descriptionClassName||``,R=Y.useMemo(()=>s.findIndex(e=>e.toastId===n.id)||0,[s,n.id]),he=Y.useMemo(()=>n.closeButton??p,[n.closeButton,p]),ge=Y.useMemo(()=>n.duration||y||_r,[n.duration,y]),z=Y.useRef(0),B=Y.useRef(0),_e=Y.useRef(0),V=Y.useRef(null),[ve,ye]=b.split(`-`),be=Y.useMemo(()=>s.reduce((e,t,n)=>n>=R?e:e+t.height,0),[s,R]),xe=cr(),Se=n.invert||t,Ce=I===`loading`;B.current=Y.useMemo(()=>R*x+be,[R,be]),Y.useEffect(()=>{P.current=ge},[ge]),Y.useEffect(()=>{ne(!0)},[]),Y.useEffect(()=>{let e=F.current;if(e){let t=e.getBoundingClientRect().height;return N(t),a(e=>[{toastId:n.id,height:t,position:n.position},...e]),()=>a(e=>e.filter(e=>e.toastId!==n.id))}},[a,n.id]),Y.useLayoutEffect(()=>{if(!O)return;let e=F.current,t=e.style.height;e.style.height=`auto`;let r=e.getBoundingClientRect().height;e.style.height=t,N(r),a(e=>e.find(e=>e.toastId===n.id)?e.map(e=>e.toastId===n.id?{...e,height:r}:e):[{toastId:n.id,height:r,position:n.position},...e])},[O,n.title,n.description,a,n.id,n.jsx,n.action,n.cancel]);let H=Y.useCallback(()=>{A(!0),ce(B.current),a(e=>e.filter(e=>e.toastId!==n.id)),setTimeout(()=>{d(n)},xr)},[n,d,a,B]);Y.useEffect(()=>{if(n.promise&&I===`loading`||n.duration===1/0||n.type===`loading`)return;let e;return u||i||xe?(()=>{if(_e.current<z.current){let e=new Date().getTime()-z.current;P.current-=e}_e.current=new Date().getTime()})():P.current!==1/0&&(z.current=new Date().getTime(),e=setTimeout(()=>{n.onAutoClose==null||n.onAutoClose.call(n,n),H()},P.current)),()=>clearTimeout(e)},[u,i,n,I,xe,H]),Y.useEffect(()=>{n.delete&&(H(),n.onDismiss==null||n.onDismiss.call(n,n))},[H,n.delete]);function we(){return w?.loading?Y.createElement(`div`,{className:$(C?.loader,n?.classNames?.loader,`sonner-loader`),"data-visible":I===`loading`},w.loading):Y.createElement(nr,{className:$(C?.loader,n?.classNames?.loader),visible:I===`loading`})}let Te=n.icon||w?.[I]||er(I);return Y.createElement(`li`,{tabIndex:0,ref:F,className:$(_,pe,C?.toast,n?.classNames?.toast,C?.default,C?.[I],n?.classNames?.[I]),"data-sonner-toast":``,"data-rich-colors":n.richColors??f,"data-styled":!(n.jsx||n.unstyled||r),"data-mounted":O,"data-promise":!!n.promise,"data-swiped":ae,"data-removed":k,"data-visible":fe,"data-y-position":ve,"data-x-position":ye,"data-index":c,"data-front":de,"data-swiping":re,"data-dismissible":L,"data-type":I,"data-invert":Se,"data-swipe-out":M,"data-swipe-direction":D,"data-expanded":!!(u||S&&O),"data-testid":n.testId,style:{"--index":c,"--toasts-before":c,"--z-index":l.length-c,"--offset":`${k?se:B.current}px`,"--initial-height":S?`auto`:`${le}px`,...m,...n.style},onDragEnd:()=>{j(!1),ee(null),V.current=null},onPointerDown:e=>{e.button!==2&&(Ce||!L||(ue.current=new Date,ce(B.current),e.target.setPointerCapture(e.pointerId),e.target.tagName!==`BUTTON`&&(j(!0),V.current={x:e.clientX,y:e.clientY})))},onPointerUp:()=>{if(M||!L)return;V.current=null;let e=Number(F.current?.style.getPropertyValue(`--swipe-amount-x`).replace(`px`,``)||0),t=Number(F.current?.style.getPropertyValue(`--swipe-amount-y`).replace(`px`,``)||0),r=new Date().getTime()-ue.current?.getTime(),i=E===`x`?e:t,a=Math.abs(i)/r;if(Math.abs(i)>=br||a>.11){ce(B.current),n.onDismiss==null||n.onDismiss.call(n,n),te(E===`x`?e>0?`right`:`left`:t>0?`down`:`up`),H(),ie(!0);return}else{var o,s;(o=F.current)==null||o.style.setProperty(`--swipe-amount-x`,`0px`),(s=F.current)==null||s.style.setProperty(`--swipe-amount-y`,`0px`)}oe(!1),j(!1),ee(null)},onPointerMove:t=>{var n,r;if(!V.current||!L||window.getSelection()?.toString().length>0)return;let i=t.clientY-V.current.y,a=t.clientX-V.current.x,o=e.swipeDirections??Sr(b);!E&&(Math.abs(a)>1||Math.abs(i)>1)&&ee(Math.abs(a)>Math.abs(i)?`x`:`y`);let s={x:0,y:0},c=e=>1/(1.5+Math.abs(e)/20);if(E===`y`){if(o.includes(`top`)||o.includes(`bottom`))if(o.includes(`top`)&&i<0||o.includes(`bottom`)&&i>0)s.y=i;else{let e=i*c(i);s.y=Math.abs(e)<Math.abs(i)?e:i}}else if(E===`x`&&(o.includes(`left`)||o.includes(`right`)))if(o.includes(`left`)&&a<0||o.includes(`right`)&&a>0)s.x=a;else{let e=a*c(a);s.x=Math.abs(e)<Math.abs(a)?e:a}(Math.abs(s.x)>0||Math.abs(s.y)>0)&&oe(!0),(n=F.current)==null||n.style.setProperty(`--swipe-amount-x`,`${s.x}px`),(r=F.current)==null||r.style.setProperty(`--swipe-amount-y`,`${s.y}px`)}},he&&!n.jsx&&I!==`loading`?Y.createElement(`button`,{"aria-label":T,"data-disabled":Ce,"data-close-button":!0,onClick:Ce||!L?()=>{}:()=>{H(),n.onDismiss==null||n.onDismiss.call(n,n)},className:$(C?.closeButton,n?.classNames?.closeButton)},w?.close??sr):null,(I||n.icon||n.promise)&&n.icon!==null&&(w?.[I]!==null||n.icon)?Y.createElement(`div`,{"data-icon":``,className:$(C?.icon,n?.classNames?.icon)},n.promise||n.type===`loading`&&!n.icon?n.icon||we():null,n.type===`loading`?null:Te):null,Y.createElement(`div`,{"data-content":``,className:$(C?.content,n?.classNames?.content)},Y.createElement(`div`,{"data-title":``,className:$(C?.title,n?.classNames?.title)},n.jsx?n.jsx:typeof n.title==`function`?n.title():n.title),n.description?Y.createElement(`div`,{"data-description":``,className:$(v,me,C?.description,n?.classNames?.description)},typeof n.description==`function`?n.description():n.description):null),Y.isValidElement(n.cancel)?n.cancel:n.cancel&&pr(n.cancel)?Y.createElement(`button`,{"data-button":!0,"data-cancel":!0,style:n.cancelButtonStyle||h,onClick:e=>{pr(n.cancel)&&L&&(n.cancel.onClick==null||n.cancel.onClick.call(n.cancel,e),H())},className:$(C?.cancelButton,n?.classNames?.cancelButton)},n.cancel.label):null,Y.isValidElement(n.action)?n.action:n.action&&pr(n.action)?Y.createElement(`button`,{"data-button":!0,"data-action":!0,style:n.actionButtonStyle||g,onClick:e=>{pr(n.action)&&(n.action.onClick==null||n.action.onClick.call(n.action,e),!e.defaultPrevented&&H())},className:$(C?.actionButton,n?.classNames?.actionButton)},n.action.label):null)};function wr(){if(typeof window>`u`||typeof document>`u`)return`ltr`;let e=document.documentElement.getAttribute(`dir`);return e===`auto`||!e?window.getComputedStyle(document.documentElement).direction:e}function Tr(e,t){let n={};return[e,t].forEach((e,t)=>{let r=t===1,i=r?`--mobile-offset`:`--offset`,a=r?gr:hr;function o(e){[`top`,`right`,`bottom`,`left`].forEach(t=>{n[`${i}-${t}`]=typeof e==`number`?`${e}px`:e})}typeof e==`number`||typeof e==`string`?o(e):typeof e==`object`?[`top`,`right`,`bottom`,`left`].forEach(t=>{e[t]===void 0?n[`${i}-${t}`]=a:n[`${i}-${t}`]=typeof e[t]==`number`?`${e[t]}px`:e[t]}):o(a)}),n}var Er=Y.forwardRef(function(e,t){let{id:n,invert:r,position:i=`bottom-right`,hotkey:a=[`altKey`,`KeyT`],expand:o,closeButton:s,className:c,offset:l,mobileOffset:u,theme:d=`light`,richColors:f,duration:p,style:m,visibleToasts:h=mr,toastOptions:g,dir:_=wr(),gap:v=yr,icons:y,containerAriaLabel:b=`Notifications`}=e,[x,S]=Y.useState([]),C=Y.useMemo(()=>n?x.filter(e=>e.toasterId===n):x.filter(e=>!e.toasterId),[x,n]),w=Y.useMemo(()=>Array.from(new Set([i].concat(C.filter(e=>e.position).map(e=>e.position)))),[C,i]),[T,E]=Y.useState([]),[ee,D]=Y.useState(!1),[te,O]=Y.useState(!1),[ne,k]=Y.useState(d===`system`?typeof window<`u`&&window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`:d),A=Y.useRef(null),re=a.join(`+`).replace(/Key/g,``).replace(/Digit/g,``),j=Y.useRef(null),M=Y.useRef(!1),ie=Y.useCallback(e=>{S(t=>(t.find(t=>t.id===e.id)?.delete||Q.dismiss(e.id),t.filter(({id:t})=>t!==e.id)))},[]);return Y.useEffect(()=>Q.subscribe(e=>{if(e.dismiss){requestAnimationFrame(()=>{S(t=>t.map(t=>t.id===e.id?{...t,delete:!0}:t))});return}setTimeout(()=>{Vn.flushSync(()=>{S(t=>{let n=t.findIndex(t=>t.id===e.id);return n===-1?[e,...t]:[...t.slice(0,n),{...t[n],...e},...t.slice(n+1)]})})})}),[x]),Y.useEffect(()=>{if(d!==`system`){k(d);return}if(d===`system`&&(window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?k(`dark`):k(`light`)),typeof window>`u`)return;let e=window.matchMedia(`(prefers-color-scheme: dark)`);try{e.addEventListener(`change`,({matches:e})=>{k(e?`dark`:`light`)})}catch{e.addListener(({matches:e})=>{try{k(e?`dark`:`light`)}catch(e){console.error(e)}})}},[d]),Y.useEffect(()=>{x.length<=1&&D(!1)},[x]),Y.useEffect(()=>{let e=e=>{if(a.every(t=>e[t]||e.code===t)){var t;D(!0),(t=A.current)==null||t.focus()}e.code===`Escape`&&(document.activeElement===A.current||A.current?.contains(document.activeElement))&&D(!1)};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[a]),Y.useEffect(()=>{if(A.current)return()=>{j.current&&(j.current.focus({preventScroll:!0}),j.current=null,M.current=!1)}},[A.current]),Y.createElement(`section`,{ref:t,"aria-label":`${b} ${re}`,tabIndex:-1,"aria-live":`polite`,"aria-relevant":`additions text`,"aria-atomic":`false`,suppressHydrationWarning:!0},w.map((t,n)=>{let[i,a]=t.split(`-`);return C.length?Y.createElement(`ol`,{key:t,dir:_===`auto`?wr():_,tabIndex:-1,ref:A,className:c,"data-sonner-toaster":!0,"data-sonner-theme":ne,"data-y-position":i,"data-x-position":a,style:{"--front-toast-height":`${T[0]?.height||0}px`,"--width":`${vr}px`,"--gap":`${v}px`,...m,...Tr(l,u)},onBlur:e=>{M.current&&!e.currentTarget.contains(e.relatedTarget)&&(M.current=!1,j.current&&=(j.current.focus({preventScroll:!0}),null))},onFocus:e=>{e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||M.current||(M.current=!0,j.current=e.relatedTarget)},onMouseEnter:()=>D(!0),onMouseMove:()=>D(!0),onMouseLeave:()=>{te||D(!1)},onDragEnd:()=>D(!1),onPointerDown:e=>{e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||O(!0)},onPointerUp:()=>O(!1)},C.filter(e=>!e.position&&n===0||e.position===t).map((n,i)=>Y.createElement(Cr,{key:n.id,icons:y,index:i,toast:n,defaultRichColors:f,duration:g?.duration??p,className:g?.className,descriptionClassName:g?.descriptionClassName,invert:r,visibleToasts:h,closeButton:g?.closeButton??s,interacting:te,position:t,style:g?.style,unstyled:g?.unstyled,classNames:g?.classNames,cancelButtonStyle:g?.cancelButtonStyle,actionButtonStyle:g?.actionButtonStyle,closeButtonAriaLabel:g?.closeButtonAriaLabel,removeToast:ie,toasts:C.filter(e=>e.position==n.position),heights:T.filter(e=>e.position==n.position),setHeights:E,expandByDefault:o,gap:v,expanded:ee,swipeDirections:e.swipeDirections}))):null}))}),Dr=n(),Or=[1e3,2e3,4e3,8e3,16e3],kr=(0,Y.createContext)(null);function Ar({url:e,children:t}){let[n,r]=(0,Y.useState)(`connecting`),i=(0,Y.useRef)(new Map),a=(0,Y.useRef)(null),o=(0,Y.useRef)(0),s=(0,Y.useRef)(null);(0,Y.useEffect)(()=>{let t=!1,n=!1;async function c(){if(!(t||n||a.current)){n=!0;try{await Kn()}finally{n=!1}!t&&!a.current&&u()}}function l(){if(t)return;s.current&&clearTimeout(s.current);let e=o.current++;r(`connecting`),s.current=setTimeout(()=>{c()},Or[e]??3e4)}function u(){if(t)return;let n=Yn(),s;try{s=n?new WebSocket(e,[`specrails-desktop`,n]):new WebSocket(e)}catch{l();return}a.current=s,r(`connecting`),s.onopen=()=>{if(t){s.close();return}a.current===s&&(o.current=0,r(`connected`))},s.onmessage=e=>{if(t||a.current!==s)return;let n;try{n=JSON.parse(e.data)}catch{return}Zn();for(let e of i.current.values())try{e(n)}catch(e){console.error(`[useSharedWebSocket] handler threw while processing message`,e)}},s.onclose=()=>{t||a.current!==s||(a.current=null,l())}}let d=()=>{a.current||(s.current&&clearTimeout(s.current),c())};return window.addEventListener(`online`,d),window.addEventListener(`focus`,d),u(),()=>{t=!0,window.removeEventListener(`online`,d),window.removeEventListener(`focus`,d),s.current&&clearTimeout(s.current);let e=a.current;if(a.current=null,e)if(e.onmessage=null,e.onclose=null,e.onerror=null,e.readyState===WebSocket.CONNECTING)e.onopen=()=>{try{e.close()}catch{}};else{e.onopen=null;try{e.close()}catch{}}}},[e]);let c=(0,Y.useCallback)((e,t)=>{i.current.set(e,t)},[]),l=(0,Y.useCallback)(e=>{i.current.delete(e)},[]),u=(0,Y.useMemo)(()=>({registerHandler:c,unregisterHandler:l,connectionStatus:n}),[c,l,n]);return(0,Dr.jsx)(kr.Provider,{value:u,children:t})}function jr(){let e=(0,Y.useContext)(kr);if(!e)throw Error(`useSharedWebSocket must be used within SharedWebSocketProvider`);return e}var Mr=null;function Nr(e){Mr=e}function Pr(){if(!Mr)throw Error(`getApiBase called with no active project — call setActiveProjectId first`);return`${le}/api/projects/${Mr}`}export{tt as A,ft as C,st as D,ct as E,U as F,it as M,rt as N,et as O,W as P,At as S,ut as T,zn as _,jr as a,Tn as b,Jn as c,Qn as d,Kn as f,Ln as g,wn as h,Ar as i,$e as j,nt as k,Yn as l,Sn as m,Nr as n,Er as o,Cn as p,kr as r,fr as s,Pr as t,qn as u,Bn as v,dt as w,Fn as x,In as y};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-CNC7AqOf.js";var t=e({commit:()=>i,decisionCard:()=>y,default:()=>b,done:()=>o,errors:()=>c,generation:()=>p,milestone:()=>l,milestoneProgress:()=>v,mode:()=>u,panel:()=>r,progress:()=>a,prompts:()=>d,quality:()=>_,readiness:()=>m,recent:()=>g,shell:()=>n,sidebar:()=>s,snapshot:()=>h,specModal:()=>f}),n={title:`Project Builder`,subtitle:`From idea to Milestone-1 backlog`,close:`Close the Builder`,emptyTitle:`Describe your app idea`,emptyHint:`One or two sentences are enough — the Builder will interview you briefly and propose a full blueprint. You can also ask it to decide everything for you.`,surpriseMe:`Surprise me`,inputPlaceholder:`An app that…`,createSpecs:`Create specs`,createSpecsHint:`Available once the Milestone-1 specs pass the audit`,providerUnavailable:`Project Builder requires a provider with a native no-tools or read-only mode. This provider is unavailable here.`},r={title:`Blueprint`,product:`Product`,coreFlow:`Core flow`,platform:`Platform`,stack:`Stack`,milestones:`Milestones`,milestonesValue:`{{count}} planned`,assumptions:`Assumptions`,m1Specs:`Milestone 1 specs ({{count}})`,dependsOn:`builds on #{{index}}`,criteriaCount:`{{count}} acceptance criteria`,laterMilestones:`Later milestones`,empty:`The blueprint fills in as you talk.`,specsComplete:`Complete`,specsInProgress:`In progress`,specWriting:`writing…`,specPendingBody:`not written yet`},i={title:`Create the project`,description:`Nothing touches disk until you confirm. The repo stays pristine — Specrails artifacts live outside it.`,nameLabel:`Project name`,locationLabel:`Location`,locationHint:`A new folder will be created here (must be empty or absent).`,providersLabel:`AI providers`,githubLabel:`Create private GitHub repository`,githubAuthHint:`Sign in first: gh auth login`,back:`Back`,submit:`Create project`,creating:`Creating…`,errors:{generic:`The commit could not start. Check the values and try again.`,invalid_name:`The project name is required.`,invalid_location:`The location is required.`,providers_required:`Select at least one provider.`,unknown_provider:`One of the selected providers is not available.`,invalid_blueprint:`The blueprint is incomplete — go back and finish it with the Builder.`,m1_specs_required:`The blueprint has no Milestone-1 specs yet.`,m1_specs_over_cap:`Milestone 1 has too many specs (max 10). Ask the Builder to slim it down.`,m1_spec_quality_invalid:`The generated specs are not implementation-ready yet. Return to the Builder and refine the indicated item.`,bundled_framework_missing:`The bundled framework is missing — reinstall the Specrails app.`,location_not_empty:`That folder already exists and is not empty. Pick another location.`,location_already_registered:`That location already belongs to a registered project.`,commit_failed:`The project creation failed — see the step list for the reason.`}},a={title:`Creating your project…`,steps:{"create-dir":`Create project folder`,"git-init":`Initialize git repository + README`,assemble:`Assemble the Specrails workspace (offline)`,blueprint:`Write the blueprint`,tickets:`Insert Milestone-1 specs`,register:`Register the project`,github:`Create GitHub repository`},githubErrors:{gh_not_installed:`GitHub CLI (gh) is not installed — repository not created`,gh_not_authenticated:`gh is not signed in (run gh auth login) — repository not created`,gh_scope:`Your gh token cannot create repositories (missing repo scope)`,gh_repo_exists:`A repository with that name already exists on your account`,gh_network:`Network error talking to GitHub — repository not created`,generic:`GitHub repository creation failed`}},o={title:`Project created`,description:`Your Milestone-1 backlog is on the board, labeled M1.`,launchM1:`Launch Milestone 1`,openProject:`Open the project`,launchFailed:`Could not launch Milestone 1`},s={title:`Blueprint`,milestone:`M{{n}}`,launchM1:`Launch Milestone 1`,generateNext:`Generate M{{n}}`,generateHint:`Opens a grounded spec session seeded with the blueprint`,generateUnavailable:`Milestone generation requires a provider with native read-only mode`},c={startFailed:`Could not start the Builder conversation.`,turnFailed:`The Builder turn failed.`,commitFailed:`Project creation failed.`},l={title:`Generate {{label}}`,inputPlaceholder:`Refine the specs…`,commit:`Commit {{count}} specs as {{label}}`,commitToast:`{{count}} specs committed to the board as {{label}}`,commitFailed:`Could not commit the milestone`,providerUnavailable:`Milestone generation is unavailable because this provider has no native read-only mode.`,send:`Send`},u={title:`Project Builder`,subtitle:`The agent is building a new project`,exit:`Exit`,exitConfirmTitle:`Leave the Builder?`,exitConfirmBody:`The Builder stops now. Your blueprint is saved — pick it up again from "Continue where you left off" the next time you open the Builder.`,exitConfirmCancel:`Keep building`,exitConfirmDiscard:`Discard and exit`},d={surpriseMe:`Surprise me — propose sensible defaults for every blueprint dimension, keep m1Specs empty, and let me approve the plan before generating detailed specs.`,milestoneSeed:`Generate the detailed specs for milestone {{label}} ("{{title}}"). Read the real codebase first, validate the complete batch, then emit ALL detailed milestone specs in one blueprint-draft response/snapshot.`,milestoneSeedWithPlanned:`Generate the detailed specs for milestone {{label}} ("{{title}}"). Planned spec titles: {{planned}}. Read the real codebase first, validate the complete batch, then emit ALL detailed milestone specs in one blueprint-draft response/snapshot.`,repairSnapshot:`Your last blueprint-draft block could not be used by the app ({{reason}}). Re-emit the COMPLETE snapshot as strictly valid JSON (newlines inside strings escaped as \\n, no trailing commas, no nested code fences) — only the block.`,approve:`Approved — generate the detailed Milestone-1 backlog now.`},f={eyebrow:`{{milestone}} · Spec {{index}}`,close:`Close`,open:`View spec detail`,empty:`No description yet.`,summary:`Summary`,priority:`Priority`,description:`Spec description`,acceptanceCriteria:`Acceptance criteria`,criteriaEmpty:`No acceptance criteria yet.`},p={writing:`Writing the Milestone-1 specs…`,specCount:`spec {{n}}`,turn:`turn {{turn}}/{{total}}`,phase:{outline:`Outlining the Milestone-1 specs…`,details:`Writing specs {{from}}–{{to}} of {{total}} in full…`,audit:`Auditing all {{total}} specs…`,repair:`Re-asking for specs {{from}}–{{to}}…`}},m={title:`Ready to create specs?`,steps:{blueprint:`Blueprint approved`,specs:`Milestone-1 specs generated`,audit:`Quality audit`},details:{blueprint:{done:`{{filled}}/{{total}} dimensions`,pending:`{{filled}}/{{total}} dimensions`,blocked:`{{filled}}/{{total}} dimensions`},specs:{done:`{{count}} specs · complete`,pending:`{{count}} of {{min}}–{{max}}`,blocked:`{{count}} specs · needs {{min}}–{{max}}`,writing:`{{written}} of {{count}} written`},audit:{done:`no issues`,pending:`waiting for specs`,blocked:`{{count}} to fix`,writing:`after the specs are written`}},hints:{blueprint:{pending:`Finish the interview or say "surprise me" — {{filled}}/{{total}} dimensions so far.`,blocked:`The blueprint is incomplete.`},specs:{pending:`Approve the blueprint and the Builder will generate the Milestone-1 backlog.`,blocked:`Milestone 1 needs {{min}}–{{max}} specs (currently {{count}}). Ask the Builder to resize it.`,writing:`The Builder is writing every spec in full — the quality audit runs once the batch is complete.`},audit:{pending:`Waiting for the specs.`,blocked:`{{count}} audit issue(s) block the commit — open the list below.`,writing:`The audit runs once every spec is written.`}},issuesCount_one:`{{count}} audit issue`,issuesCount_other:`{{count}} audit issues`,askFix:`Ask the Builder to fix these`},h={repairing:{invalid_json:`Repairing the snapshot (the last block was not valid JSON)…`,truncated:`Re-requesting the snapshot (the reply was cut off)…`,quality:`Asking the Builder to fix the audit issues…`,automatic:`automatic`},rejected:{title:`The Builder's last snapshot could not be used`,invalid_json:`The blueprint block was not valid JSON, so the panel still shows the previous state.`,missing_version:`The block was not a blueprint snapshot (missing blueprintVersion).`,truncated:`The reply was cut off before the block closed, so nothing was received.`,autoRepairFailed:`An automatic repair was already attempted.`,retry:`Ask for the snapshot again`},repairedNote:`Snapshot repaired automatically`,nothingToRepair:`There is nothing to repair — keep talking with the Builder.`,noSession:`This conversation cannot be resumed with its provider; send a new message instead.`,alreadyStreaming:`The Builder is still answering.`,halted:{title:`Spec generation stopped early`,detail:`{{written}} of {{total}} specs written in full. The rest are still outline titles.`,resume:`Continue generating`}},g={title:`Continue where you left off`,untitled:`Untitled blueprint`,specsComplete:`{{count}} specs ready`,specsInProgress:`{{count}} specs in progress`,dimensions:`{{filled}}/{{total}} dimensions`,pendingIssue:`snapshot to repair`,discard:`Discard`,discardConfirm:`Confirm discard`,discardCancel:`Keep`,resumeFailed:`Could not resume that blueprint.`,discardFailed:`Could not discard that blueprint.`},_={batch_incomplete:`The Builder has not marked the batch as complete yet.`,spec_count:`The batch needs {{min}}–{{max}} specs (currently {{count}}).`,invalid_shape:`Spec {{n}} is not a valid object.`,invalid_kind:`Spec {{n}} needs a valid kind (scaffold, feature or verification).`,scaffold_first:`The first spec must be the project scaffold.`,duplicate_scaffold:`Spec {{n}} cannot be a second scaffold.`,title_required:`Spec {{n}} needs a title.`,title_duplicate:`Spec {{n}} repeats the title of spec {{other}}.`,summary:`Spec {{n}} needs a one-line summary under 240 characters.`,invalid_priority:`Spec {{n}} needs a valid priority.`,canonical_sections:`Spec {{n}} is missing the five canonical sections in order.`,empty_section:`Spec {{n}} has an empty "{{heading}}" section.`,section_bullets:`Spec {{n}} needs at least {{min}} bullets under "{{heading}}".`,complexity_format:`Spec {{n}} needs a complexity level with a justification.`,scaffold_readme:`The scaffold spec must mention the existing README.`,criteria_count:`Spec {{n}} needs {{min}}–{{max}} acceptance criteria (has {{count}}).`,criterion_quality:`Spec {{n}}, criterion {{criterion}} is not concrete enough.`,duplicate_criterion:`Spec {{n}} repeats acceptance criterion {{criterion}}.`,milestone_label:`Spec {{n}} needs the {{label}} label.`,domain_label:`Spec {{n}} needs a domain label besides {{label}}.`,invalid_dependency:`Spec {{n}} may only depend on an earlier spec.`,scaffold_dependency:`The scaffold spec cannot declare a dependency.`,section_depth:`Spec {{n}} needs a fuller "{{heading}}" (at least {{min}} characters).`},v={state:{planned:`Planned`,committed:`Ready to launch`,running:`In progress`,delivered:`Delivered — awaiting review`,done:`Done`},counts:`{{delivered}} of {{total}} delivered · {{done}} done`,failedNote_one:`{{count}} spec failed its last attempt`,failedNote_other:`{{count}} specs failed their last attempt`,legend:{done:`Done`,onReview:`In review`,inProgress:`In progress`,failed:`Failed last attempt`,todo:`Pending`},rail:{fallbackName:`Rail {{n}}`,chunk:`Rail {{k}} of the chain`,running:`Running · {{elapsed}}`,review:`Review`,open:`Open the rail`,noDelivery:`No delivery yet`},chain:{title:`Sequential chain`,parallelTitle:`Parallel launch`,progress:`rail {{k}} of {{n}}`,waiting:`waiting for rail {{k}} to settle`,stackedOn:`next rail builds on {{branch}}`,paused:`Paused — {{reason}}`,completed:`All rails launched`,cancelled:`Chain cancelled`,resume:`Resume`,cancel:`Cancel chain`,resumed:`Chain resumed`,resumeFailed:`Could not resume the chain`,cancelledToast:`Chain cancelled — running rails keep going`,reasons:{chunk_failed:`the last rail failed`,chunk_stalled:`the last rail stalled (no provider output)`,chunk_stopped:`the last rail was stopped`,launch_rejected:`the next rail could not launch ({{detail}})`,head_missing:`the branch to build on no longer exists`,head_discarded:`the delivery the next rail builds on was discarded`,run_lost:`the running rail could not be found after a restart`,unknown:`paused`,provider_limit:`the provider's usage limit was reached`,rail_limit_reached:`every rail holds a PR awaiting your decision — merge or discard pending PRs to free a rail, then resume`,integration_failed:`spec integration failed ({{detail}}); resume retries integration`},checkpoint:`Rail {{k}} of {{n}} delivered — launch rail {{next}}?`,launchNext:`Launch next rail`,nextLaunched:`Next rail launched`,autoAdvance:`Continue automatically`,autoAdvanceHint:`Integrates each spec before creating the next worktree`,checkpointHint:`Stop after each rail and ask before launching the next`,checkpointNote:`stops after this rail`,autoOn:`Auto-continue on — the next rails launch on their own`,autoOff:`Auto-continue off — you'll be asked before each next rail`,autoFailed:`Could not update the chain`,integrating:`integrating this spec before launching the next`,cancelFailed:`Couldn't cancel the chain`},toast:{launched:`{{milestone}} launched — spec 1 of {{n}} is on its rail; the next specs follow automatically, one rail each`,launchedAll:`{{milestone}} launched — one spec per rail ({{n}} in total)`,chainActive:`{{milestone}} is already launching — see the Blueprint panel`,chunkLaunched:`{{milestone}} — rail {{k}} of {{n}} launched`,paused:`{{milestone}} paused — {{reason}}`,resume:`Resume`,delivered:`{{milestone}} delivered — {{count}} specs waiting for your review`,review:`Review`,completed:`{{milestone}} complete — every spec merged`,launchedCheckpoint:`{{milestone}} launched — spec 1 of {{n}} is on its rail; you'll be asked before each next one`,checkpoint:`{{milestone}} — rail {{k}} of {{n}} delivered. Launch the next rail?`,launchNext:`Launch next rail`,autoContinue:`Auto-continue`,railLimitReached:`{{milestone}} could not launch — every rail holds a PR awaiting your decision. Merge or discard pending PRs to free a rail.`},sequentialHint:`One spec per rail, in dependency order — each rail builds on the previous rail's branch`},y={settledLabel:`Decision taken`,surprise:{label:`Builder`,hint:`You can adjust any decision afterwards`,title:`Surprise me`,description:`Let the Builder decide the product, core flow, platform, stack and milestones, then present the blueprint for you to approve or tweak.`,cta:`Surprise me`,settledTitle:`Surprise me`,settledDescription:`You let the Builder decide every blueprint dimension.`},approve:{label:`Blueprint ready`,hint:`Or type what you want to change`,title:`Approve the blueprint`,description:`Every dimension is decided. Approve it and the Builder writes the Milestone-1 specs in full, two at a time, then audits the batch.`,cta:`Approve & generate specs`,settledTitle:`Blueprint approved`,settledDescription:`The Builder is generating the Milestone-1 backlog from this blueprint.`}},b={shell:n,panel:r,commit:i,progress:a,done:o,sidebar:s,errors:c,milestone:l,mode:u,prompts:d,specModal:f,generation:p,readiness:m,snapshot:h,recent:g,quality:_,milestoneProgress:v,decisionCard:y};export{t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={title:`Projekt-Builder`,subtitle:`Von der Idee zum Meilenstein-1-Backlog`,close:`Builder schließen`,emptyTitle:`Beschreibe deine App-Idee`,emptyHint:`Ein oder zwei Sätze genügen — der Builder interviewt dich kurz und schlägt einen vollständigen Blueprint vor. Du kannst ihn auch alles entscheiden lassen.`,surpriseMe:`Überrasch mich`,inputPlaceholder:`Eine App, die…`,createSpecs:`Specs erstellen`,createSpecsHint:`Verfügbar, sobald die Specs von Meilenstein 1 die Prüfung bestehen`,providerUnavailable:`Der Projekt-Builder benötigt einen nativen Modus ohne Werkzeuge oder mit Lesezugriff. Dieser Anbieter ist hier nicht verfügbar.`},t={title:`Blueprint`,product:`Produkt`,coreFlow:`Kernablauf`,platform:`Plattform`,stack:`Stack`,milestones:`Meilensteine`,milestonesValue:`{{count}} geplant`,assumptions:`Annahmen`,m1Specs:`Meilenstein-1-Specs ({{count}})`,dependsOn:`baut auf #{{index}} auf`,criteriaCount:`{{count}} Akzeptanzkriterien`,laterMilestones:`Spätere Meilensteine`,empty:`Der Blueprint füllt sich während des Gesprächs.`,specsComplete:`Vollständig`,specsInProgress:`In Arbeit`,specWriting:`wird geschrieben…`,specPendingBody:`noch nicht geschrieben`},n={title:`Projekt erstellen`,description:`Nichts berührt die Festplatte, bis du bestätigst. Das Repo bleibt unberührt — Specrails-Artefakte liegen außerhalb.`,nameLabel:`Projektname`,locationLabel:`Speicherort`,locationHint:`Hier wird ein neuer Ordner erstellt (muss leer sein oder fehlen).`,providersLabel:`KI-Anbieter`,githubLabel:`Privates GitHub-Repository erstellen`,githubAuthHint:`Zuerst anmelden: gh auth login`,back:`Zurück`,submit:`Projekt erstellen`,creating:`Wird erstellt…`,errors:{generic:`Der Commit konnte nicht starten. Prüfe die Werte und versuche es erneut.`,invalid_name:`Der Projektname ist erforderlich.`,invalid_location:`Der Speicherort ist erforderlich.`,providers_required:`Wähle mindestens einen Anbieter.`,unknown_provider:`Einer der gewählten Anbieter ist nicht verfügbar.`,invalid_blueprint:`Der Blueprint ist unvollständig — geh zurück und vervollständige ihn mit dem Builder.`,m1_specs_required:`Der Blueprint hat noch keine Meilenstein-1-Specs.`,m1_specs_over_cap:`Meilenstein 1 hat zu viele Specs (max. 10). Bitte den Builder, ihn zu verschlanken.`,m1_spec_quality_invalid:`Die generierten Specs sind noch nicht umsetzungsreif. Kehre zum Builder zurück und verfeinere den angegebenen Punkt.`,bundled_framework_missing:`Das mitgelieferte Framework fehlt — installiere die Specrails-App neu.`,location_not_empty:`Dieser Ordner existiert bereits und ist nicht leer. Wähle einen anderen Ort.`,location_already_registered:`Dieser Ort gehört bereits zu einem registrierten Projekt.`,commit_failed:`Die Projekterstellung ist fehlgeschlagen — der Grund steht in der Schrittliste.`}},r={title:`Dein Projekt wird erstellt…`,steps:{"create-dir":`Projektordner erstellen`,"git-init":`Git-Repository + README initialisieren`,assemble:`Specrails-Workspace zusammenbauen (offline)`,blueprint:`Blueprint schreiben`,tickets:`Meilenstein-1-Specs einfügen`,register:`Projekt registrieren`,github:`GitHub-Repository erstellen`},githubErrors:{gh_not_installed:`GitHub CLI (gh) ist nicht installiert — Repository nicht erstellt`,gh_not_authenticated:`gh ist nicht angemeldet (gh auth login ausführen) — Repository nicht erstellt`,gh_scope:`Dein gh-Token kann keine Repositories erstellen (repo-Scope fehlt)`,gh_repo_exists:`Ein Repository mit diesem Namen existiert bereits in deinem Konto`,gh_network:`Netzwerkfehler mit GitHub — Repository nicht erstellt`,generic:`GitHub-Repository konnte nicht erstellt werden`}},i={title:`Projekt erstellt`,description:`Dein Meilenstein-1-Backlog ist auf dem Board, mit M1 gelabelt.`,launchM1:`Meilenstein 1 starten`,openProject:`Projekt öffnen`,launchFailed:`Meilenstein 1 konnte nicht gestartet werden`},a={title:`Blueprint`,milestone:`M{{n}}`,launchM1:`Meilenstein 1 starten`,generateNext:`M{{n}} generieren`,generateHint:`Öffnet eine im Code verankerte Spec-Session, gesät mit dem Blueprint`,generateUnavailable:`Die Meilenstein-Generierung benötigt einen nativen Nur-Lese-Modus`},o={startFailed:`Die Builder-Konversation konnte nicht gestartet werden.`,turnFailed:`Der Builder-Turn ist fehlgeschlagen.`,commitFailed:`Die Projekterstellung ist fehlgeschlagen.`},s={title:`{{label}} generieren`,inputPlaceholder:`Specs verfeinern…`,commit:`{{count}} Specs als {{label}} übernehmen`,commitToast:`{{count}} Specs als {{label}} auf das Board übernommen`,commitFailed:`Der Meilenstein konnte nicht übernommen werden`,providerUnavailable:`Die Meilenstein-Generierung ist nicht verfügbar, da dieser Anbieter keinen nativen Nur-Lese-Modus hat.`,send:`Senden`},c={title:`Projekt-Builder`,subtitle:`Der Agent baut ein neues Projekt`,exit:`Beenden`,exitConfirmTitle:`Builder verlassen?`,exitConfirmBody:`Der Builder stoppt jetzt. Dein Blueprint bleibt gespeichert – nimm ihn beim nächsten Öffnen des Builders unter „Dort weitermachen, wo du aufgehört hast“ wieder auf.`,exitConfirmCancel:`Weiterbauen`,exitConfirmDiscard:`Verwerfen und beenden`},l={surpriseMe:`Überrasch mich — schlage sinnvolle Werte für alle Blueprint-Dimensionen vor, lasse m1Specs leer und lass mich den Plan vor der Erstellung detaillierter Specs genehmigen.`,milestoneSeed:`Generiere die detaillierten Specs für Meilenstein {{label}} ("{{title}}"). Lies zuerst die echte Codebasis, validiere den vollständigen Satz und gib erst dann ALLE detaillierten Specs des Meilensteins in einer einzigen blueprint-draft-Antwort/einem einzigen Snapshot aus.`,milestoneSeedWithPlanned:`Generiere die detaillierten Specs für Meilenstein {{label}} ("{{title}}"). Geplante Spec-Titel: {{planned}}. Lies zuerst die echte Codebasis, validiere den vollständigen Satz und gib erst dann ALLE detaillierten Specs des Meilensteins in einer einzigen blueprint-draft-Antwort/einem einzigen Snapshot aus.`,repairSnapshot:`Dein letzter blueprint-draft-Block konnte von der App nicht verwendet werden ({{reason}}). Gib den VOLLSTÄNDIGEN Snapshot erneut als streng gültiges JSON aus (Zeilenumbrüche in Strings als \\n escapen, keine abschließenden Kommas, keine verschachtelten Codeblöcke) – nur den Block.`,approve:`Freigegeben — erstelle jetzt das detaillierte Backlog für Meilenstein 1.`},u={eyebrow:`{{milestone}} · Spec {{index}}`,close:`Schließen`,open:`Spec-Details ansehen`,empty:`Noch keine Beschreibung.`,summary:`Zusammenfassung`,priority:`Priorität`,description:`Spec-Beschreibung`,acceptanceCriteria:`Akzeptanzkriterien`,criteriaEmpty:`Noch keine Akzeptanzkriterien.`},d={writing:`Milestone-1-Specs werden geschrieben…`,specCount:`Spec {{n}}`,turn:`Zug {{turn}}/{{total}}`,phase:{outline:`Milestone-1-Specs werden skizziert…`,details:`Specs {{from}}–{{to}} von {{total}} werden ausformuliert…`,audit:`Alle {{total}} Specs werden geprüft…`,repair:`Specs {{from}}–{{to}} werden erneut angefordert…`}},f={title:`Bereit, die Specs zu erstellen?`,steps:{blueprint:`Blueprint freigegeben`,specs:`Specs für Meilenstein 1 generiert`,audit:`Qualitätsprüfung`},details:{blueprint:{done:`{{filled}}/{{total}} Dimensionen`,pending:`{{filled}}/{{total}} Dimensionen`,blocked:`{{filled}}/{{total}} Dimensionen`},specs:{done:`{{count}} Specs · vollständig`,pending:`{{count}} von {{min}}–{{max}}`,blocked:`{{count}} Specs · {{min}}–{{max}} nötig`,writing:`{{written}} von {{count}} geschrieben`},audit:{done:`keine Probleme`,pending:`wartet auf Specs`,blocked:`{{count}} zu beheben`,writing:`sobald die Specs geschrieben sind`}},hints:{blueprint:{pending:`Beende das Interview oder sag „überrasch mich“ – bisher {{filled}}/{{total}} Dimensionen.`,blocked:`Der Blueprint ist unvollständig.`},specs:{pending:`Gib den Blueprint frei, dann generiert der Builder das Backlog für Meilenstein 1.`,blocked:`Meilenstein 1 braucht {{min}}–{{max}} Specs (aktuell {{count}}). Bitte den Builder, das anzupassen.`,writing:`Der Builder schreibt jede Spec vollständig — die Qualitätsprüfung läuft, sobald der Stapel komplett ist.`},audit:{pending:`Wartet auf die Specs.`,blocked:`{{count}} Prüfungsproblem(e) blockieren den Commit – öffne die Liste unten.`,writing:`Die Prüfung läuft, sobald alle Specs geschrieben sind.`}},issuesCount_one:`{{count}} Prüfungsproblem`,issuesCount_other:`{{count}} Prüfungsprobleme`,askFix:`Builder um Korrektur bitten`},p={repairing:{invalid_json:`Snapshot wird repariert (der letzte Block war kein gültiges JSON)…`,truncated:`Snapshot wird erneut angefordert (die Antwort wurde abgeschnitten)…`,quality:`Builder wird gebeten, die Prüfungsprobleme zu beheben…`,automatic:`automatisch`},rejected:{title:`Der letzte Snapshot des Builders konnte nicht verwendet werden`,invalid_json:`Der Blueprint-Block war kein gültiges JSON, daher zeigt das Panel weiterhin den vorherigen Stand.`,missing_version:`Der Block war kein Blueprint-Snapshot (blueprintVersion fehlt).`,truncated:`Die Antwort wurde abgeschnitten, bevor der Block geschlossen wurde – nichts kam an.`,autoRepairFailed:`Eine automatische Reparatur wurde bereits versucht.`,retry:`Snapshot erneut anfordern`},repairedNote:`Snapshot automatisch repariert`,nothingToRepair:`Nichts zu reparieren – sprich einfach weiter mit dem Builder.`,noSession:`Diese Unterhaltung kann mit ihrem Anbieter nicht fortgesetzt werden; sende stattdessen eine neue Nachricht.`,alreadyStreaming:`Der Builder antwortet noch.`,halted:{title:`Die Spec-Generierung wurde vorzeitig gestoppt`,detail:`{{written}} von {{total}} Specs vollständig geschrieben. Der Rest besteht noch aus reinen Gliederungstiteln.`,resume:`Generierung fortsetzen`}},m={title:`Dort weitermachen, wo du aufgehört hast`,untitled:`Unbenannter Blueprint`,specsComplete:`{{count}} Specs bereit`,specsInProgress:`{{count}} Specs in Arbeit`,dimensions:`{{filled}}/{{total}} Dimensionen`,pendingIssue:`Snapshot zu reparieren`,discard:`Verwerfen`,discardConfirm:`Verwerfen bestätigen`,discardCancel:`Behalten`,resumeFailed:`Dieser Blueprint konnte nicht fortgesetzt werden.`,discardFailed:`Dieser Blueprint konnte nicht verworfen werden.`},h={batch_incomplete:`Der Builder hat den Batch noch nicht als vollständig markiert.`,spec_count:`Der Batch braucht {{min}}–{{max}} Specs (aktuell {{count}}).`,invalid_shape:`Spec {{n}} ist kein gültiges Objekt.`,invalid_kind:`Spec {{n}} braucht einen gültigen Typ (scaffold, feature oder verification).`,scaffold_first:`Die erste Spec muss das Projekt-Scaffold sein.`,duplicate_scaffold:`Spec {{n}} darf kein zweites Scaffold sein.`,title_required:`Spec {{n}} braucht einen Titel.`,title_duplicate:`Spec {{n}} wiederholt den Titel von Spec {{other}}.`,summary:`Spec {{n}} braucht eine einzeilige Zusammenfassung unter 240 Zeichen.`,invalid_priority:`Spec {{n}} braucht eine gültige Priorität.`,canonical_sections:`Spec {{n}} fehlen die fünf kanonischen Abschnitte in der richtigen Reihenfolge.`,empty_section:`Der Abschnitt „{{heading}}“ von Spec {{n}} ist leer.`,section_bullets:`Spec {{n}} braucht mindestens {{min}} Punkte unter „{{heading}}“.`,complexity_format:`Spec {{n}} braucht eine Komplexitätsstufe mit Begründung.`,scaffold_readme:`Die Scaffold-Spec muss die vorhandene README erwähnen.`,criteria_count:`Spec {{n}} braucht {{min}}–{{max}} Akzeptanzkriterien (hat {{count}}).`,criterion_quality:`Spec {{n}}, Kriterium {{criterion}}: nicht konkret genug.`,duplicate_criterion:`Spec {{n}} wiederholt Akzeptanzkriterium {{criterion}}.`,milestone_label:`Spec {{n}} braucht das Label {{label}}.`,domain_label:`Spec {{n}} braucht zusätzlich zu {{label}} ein Domänen-Label.`,invalid_dependency:`Spec {{n}} darf nur von einer früheren Spec abhängen.`,scaffold_dependency:`Die Scaffold-Spec darf keine Abhängigkeit deklarieren.`,section_depth:`Spec {{n}} braucht einen ausführlicheren Abschnitt „{{heading}}“ (mindestens {{min}} Zeichen).`},g={state:{planned:`Geplant`,committed:`Startbereit`,running:`Läuft`,delivered:`Geliefert – wartet auf Review`,done:`Fertig`},counts:`{{delivered}} von {{total}} geliefert · {{done}} fertig`,failedNote_one:`{{count}} Spec ist beim letzten Versuch fehlgeschlagen`,failedNote_other:`{{count}} Specs sind beim letzten Versuch fehlgeschlagen`,legend:{done:`Fertig`,onReview:`Im Review`,inProgress:`Läuft`,failed:`Letzter Versuch fehlgeschlagen`,todo:`Ausstehend`},rail:{fallbackName:`Rail {{n}}`,chunk:`Rail {{k}} der Kette`,running:`Läuft · {{elapsed}}`,review:`Prüfen`,open:`Rail öffnen`,noDelivery:`Noch keine Lieferung`},chain:{title:`Sequenzielle Kette`,parallelTitle:`Paralleler Start`,progress:`Rail {{k}} von {{n}}`,waiting:`wartet, bis Rail {{k}} abgeschlossen ist`,stackedOn:`das nächste Rail baut auf {{branch}} auf`,paused:`Pausiert – {{reason}}`,completed:`Alle Rails gestartet`,cancelled:`Kette abgebrochen`,resume:`Fortsetzen`,cancel:`Kette abbrechen`,resumed:`Kette fortgesetzt`,resumeFailed:`Kette konnte nicht fortgesetzt werden`,cancelledToast:`Kette abgebrochen – laufende Rails laufen weiter`,reasons:{chunk_failed:`das letzte Rail ist fehlgeschlagen`,chunk_stalled:`das letzte Rail hing (keine Provider-Ausgabe)`,chunk_stopped:`das letzte Rail wurde gestoppt`,launch_rejected:`das nächste Rail konnte nicht starten ({{detail}})`,head_missing:`der Basis-Branch existiert nicht mehr`,head_discarded:`die Lieferung, auf der das nächste Rail aufbaut, wurde verworfen`,run_lost:`das laufende Rail wurde nach einem Neustart nicht gefunden`,unknown:`pausiert`,provider_limit:`das Nutzungslimit des Anbieters ist erreicht`,rail_limit_reached:`jedes Rail hat einen PR, der auf deine Entscheidung wartet – merge oder verwirf offene PRs, um ein Rail freizugeben, und setze dann fort`,integration_failed:`die Integration der Spec ist fehlgeschlagen ({{detail}}); Fortsetzen versucht die Integration erneut`},checkpoint:`Rail {{k}} von {{n}} geliefert — Rail {{next}} starten?`,launchNext:`Nächstes Rail starten`,nextLaunched:`Nächstes Rail gestartet`,autoAdvance:`Automatisch fortfahren`,autoAdvanceHint:`Integriert jede Spec, bevor der nächste Worktree erstellt wird`,checkpointHint:`Hält nach jedem Rail an und fragt vor dem nächsten Start`,checkpointNote:`hält nach diesem Rail an`,autoOn:`Automatisches Fortfahren an — die nächsten Rails starten von selbst`,autoOff:`Automatisches Fortfahren aus — vor jedem Rail wird gefragt`,autoFailed:`Kette konnte nicht aktualisiert werden`,integrating:`diese Spec wird integriert, bevor die nächste startet`,cancelFailed:`Die Kette konnte nicht abgebrochen werden`},toast:{launched:`{{milestone}} gestartet – Spec 1 von {{n}} läuft auf seinem Rail; die nächsten Specs folgen automatisch, je ein Rail`,launchedAll:`{{milestone}} gestartet – ein Spec pro Rail ({{n}} insgesamt)`,chainActive:`{{milestone}} wird bereits gestartet – siehe Blueprint-Panel`,chunkLaunched:`{{milestone}} – Rail {{k}} von {{n}} gestartet`,paused:`{{milestone}} pausiert – {{reason}}`,resume:`Fortsetzen`,delivered:`{{milestone}} geliefert – {{count}} Specs warten auf dein Review`,review:`Prüfen`,completed:`{{milestone}} abgeschlossen – alle Specs gemergt`,launchedCheckpoint:`{{milestone}} gestartet – Spec 1 von {{n}} läuft auf seinem Rail; vor jedem weiteren wird gefragt`,checkpoint:`{{milestone}} — Rail {{k}} von {{n}} geliefert. Nächstes Rail starten?`,launchNext:`Nächstes Rail starten`,autoContinue:`Automatisch weiter`,railLimitReached:`{{milestone}} konnte nicht starten – jedes Rail hat einen PR, der auf deine Entscheidung wartet. Merge oder verwirf offene PRs, um ein Rail freizugeben.`},sequentialHint:`Ein Spec pro Rail, in Abhängigkeitsreihenfolge – jedes Rail baut auf dem Branch des vorherigen Rails auf`},_={settledLabel:`Entscheidung getroffen`,surprise:{label:`Builder`,hint:`Jede Entscheidung lässt sich danach anpassen`,title:`Überrasch mich`,description:`Lass den Builder Produkt, Kernablauf, Plattform, Stack und Meilensteine festlegen und dir den Blueprint zur Freigabe oder Anpassung vorlegen.`,cta:`Überrasch mich`,settledTitle:`Überrasch mich`,settledDescription:`Du hast den Builder alle Blueprint-Dimensionen festlegen lassen.`},approve:{label:`Blueprint bereit`,hint:`Oder schreib, was du ändern möchtest`,title:`Blueprint freigeben`,description:`Alle Dimensionen sind festgelegt. Gib ihn frei und der Builder schreibt die Specs für Meilenstein 1 vollständig, jeweils zwei auf einmal, und prüft dann den Stapel.`,cta:`Freigeben und Specs erzeugen`,settledTitle:`Blueprint freigegeben`,settledDescription:`Der Builder erzeugt aus diesem Blueprint das Backlog für Meilenstein 1.`}},v={shell:e,panel:t,commit:n,progress:r,done:i,sidebar:a,errors:o,milestone:s,mode:c,prompts:l,specModal:u,generation:d,readiness:f,snapshot:p,recent:m,quality:h,milestoneProgress:g,decisionCard:_};export{n as commit,_ as decisionCard,v as default,i as done,o as errors,d as generation,s as milestone,g as milestoneProgress,c as mode,t as panel,r as progress,l as prompts,h as quality,f as readiness,m as recent,e as shell,a as sidebar,p as snapshot,u as specModal};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={title:`Constructor de proyectos`,subtitle:`De la idea al backlog del Hito 1`,close:`Cerrar el Constructor`,emptyTitle:`Describe tu idea de app`,emptyHint:`Con una o dos frases basta — el Constructor te entrevistará brevemente y propondrá un blueprint completo. También puedes pedirle que lo decida todo por ti.`,surpriseMe:`Sorpréndeme`,inputPlaceholder:`Una app que…`,createSpecs:`Crear specs`,createSpecsHint:`Disponible cuando las specs del Hito 1 pasen la auditoría`,providerUnavailable:`El Constructor requiere un proveedor con modo nativo sin herramientas o de solo lectura. Este proveedor no está disponible aquí.`},t={title:`Blueprint`,product:`Producto`,coreFlow:`Flujo principal`,platform:`Plataforma`,stack:`Stack`,milestones:`Hitos`,milestonesValue:`{{count}} planificados`,assumptions:`Suposiciones`,m1Specs:`Specs del Hito 1 ({{count}})`,dependsOn:`depende de #{{index}}`,criteriaCount:`{{count}} criterios de aceptación`,laterMilestones:`Hitos posteriores`,empty:`El blueprint se completa mientras conversas.`,specsComplete:`Completas`,specsInProgress:`En curso`,specWriting:`escribiendo…`,specPendingBody:`aún sin escribir`},n={title:`Crear el proyecto`,description:`Nada toca el disco hasta que confirmes. El repo queda prístino — los artefactos de Specrails viven fuera.`,nameLabel:`Nombre del proyecto`,locationLabel:`Ubicación`,locationHint:`Se creará una carpeta nueva aquí (debe estar vacía o no existir).`,providersLabel:`Proveedores de IA`,githubLabel:`Crear repositorio privado en GitHub`,githubAuthHint:`Inicia sesión primero: gh auth login`,back:`Atrás`,submit:`Crear proyecto`,creating:`Creando…`,errors:{generic:`No se pudo iniciar el commit. Revisa los valores e inténtalo de nuevo.`,invalid_name:`El nombre del proyecto es obligatorio.`,invalid_location:`La ubicación es obligatoria.`,providers_required:`Selecciona al menos un proveedor.`,unknown_provider:`Uno de los proveedores seleccionados no está disponible.`,invalid_blueprint:`El blueprint está incompleto — vuelve atrás y termínalo con el Constructor.`,m1_specs_required:`El blueprint aún no tiene specs del Hito 1.`,m1_specs_over_cap:`El Hito 1 tiene demasiadas specs (máx. 10). Pide al Constructor que lo reduzca.`,m1_spec_quality_invalid:`Las specs generadas todavía no están listas para implementar. Vuelve al Constructor y refina el elemento indicado.`,bundled_framework_missing:`Falta el framework incluido — reinstala la app de Specrails.`,location_not_empty:`Esa carpeta ya existe y no está vacía. Elige otra ubicación.`,location_already_registered:`Esa ubicación ya pertenece a un proyecto registrado.`,commit_failed:`La creación del proyecto falló — mira la lista de pasos para ver el motivo.`}},r={title:`Creando tu proyecto…`,steps:{"create-dir":`Crear la carpeta del proyecto`,"git-init":`Inicializar el repositorio git + README`,assemble:`Ensamblar el workspace de Specrails (offline)`,blueprint:`Escribir el blueprint`,tickets:`Insertar las specs del Hito 1`,register:`Registrar el proyecto`,github:`Crear el repositorio en GitHub`},githubErrors:{gh_not_installed:`GitHub CLI (gh) no está instalado — repositorio no creado`,gh_not_authenticated:`gh no tiene sesión (ejecuta gh auth login) — repositorio no creado`,gh_scope:`Tu token de gh no puede crear repositorios (falta el scope repo)`,gh_repo_exists:`Ya existe un repositorio con ese nombre en tu cuenta`,gh_network:`Error de red con GitHub — repositorio no creado`,generic:`No se pudo crear el repositorio de GitHub`}},i={title:`Proyecto creado`,description:`Tu backlog del Hito 1 está en el tablero, etiquetado M1.`,launchM1:`Lanzar el Hito 1`,openProject:`Abrir el proyecto`,launchFailed:`No se pudo lanzar el Hito 1`},a={title:`Blueprint`,milestone:`M{{n}}`,launchM1:`Lanzar el Hito 1`,generateNext:`Generar M{{n}}`,generateHint:`Abre una sesión de specs con contexto real sembrada con el blueprint`,generateUnavailable:`La generación de hitos requiere un modo nativo de solo lectura`},o={startFailed:`No se pudo iniciar la conversación del Constructor.`,turnFailed:`El turno del Constructor falló.`,commitFailed:`La creación del proyecto falló.`},s={title:`Generar {{label}}`,inputPlaceholder:`Refina las specs…`,commit:`Confirmar {{count}} specs como {{label}}`,commitToast:`{{count}} specs añadidas al tablero como {{label}}`,commitFailed:`No se pudo confirmar el hito`,providerUnavailable:`La generación de hitos no está disponible porque este proveedor no tiene modo nativo de solo lectura.`,send:`Enviar`},c={title:`Constructor de proyectos`,subtitle:`El agente está construyendo un proyecto nuevo`,exit:`Salir`,exitConfirmTitle:`¿Salir del Constructor?`,exitConfirmBody:`El Constructor se detiene ahora. Tu blueprint queda guardado: retómalo desde «Continúa donde lo dejaste» la próxima vez que abras el Constructor.`,exitConfirmCancel:`Seguir construyendo`,exitConfirmDiscard:`Descartar y salir`},l={surpriseMe:`Sorpréndeme — propón valores sensatos para todas las dimensiones del blueprint, deja m1Specs vacío y permíteme aprobar el plan antes de generar las specs detalladas.`,milestoneSeed:`Genera las specs detalladas del hito {{label}} ("{{title}}"). Lee primero el código real, valida el lote completo y, solo entonces, emite TODAS las specs detalladas del hito en una única respuesta/snapshot blueprint-draft.`,milestoneSeedWithPlanned:`Genera las specs detalladas del hito {{label}} ("{{title}}"). Títulos de specs planificadas: {{planned}}. Lee primero el código real, valida el lote completo y, solo entonces, emite TODAS las specs detalladas del hito en una única respuesta/snapshot blueprint-draft.`,repairSnapshot:`Tu último bloque blueprint-draft no pudo usarse en la app ({{reason}}). Vuelve a emitir el snapshot COMPLETO como JSON estrictamente válido (saltos de línea dentro de cadenas escapados como \\n, sin comas finales, sin bloques de código anidados): solo el bloque.`,approve:`Aprobado — genera ahora el backlog detallado del Hito 1.`},u={eyebrow:`{{milestone}} · Spec {{index}}`,close:`Cerrar`,open:`Ver detalle de la spec`,empty:`Aún sin descripción.`,summary:`Resumen`,priority:`Prioridad`,description:`Descripción de la spec`,acceptanceCriteria:`Criterios de aceptación`,criteriaEmpty:`Aún no hay criterios de aceptación.`},d={writing:`Escribiendo las specs del Milestone 1…`,specCount:`spec {{n}}`,turn:`turno {{turn}}/{{total}}`,phase:{outline:`Esbozando las specs del Milestone 1…`,details:`Escribiendo al detalle las specs {{from}}–{{to}} de {{total}}…`,audit:`Auditando las {{total}} specs…`,repair:`Volviendo a pedir las specs {{from}}–{{to}}…`}},f={title:`¿Listo para crear las specs?`,steps:{blueprint:`Blueprint aprobado`,specs:`Specs del Hito 1 generadas`,audit:`Auditoría de calidad`},details:{blueprint:{done:`{{filled}}/{{total}} dimensiones`,pending:`{{filled}}/{{total}} dimensiones`,blocked:`{{filled}}/{{total}} dimensiones`},specs:{done:`{{count}} specs · completas`,pending:`{{count}} de {{min}}–{{max}}`,blocked:`{{count}} specs · requiere {{min}}–{{max}}`,writing:`{{written}} de {{count}} escritas`},audit:{done:`sin problemas`,pending:`a la espera de las specs`,blocked:`{{count}} por corregir`,writing:`cuando las specs estén escritas`}},hints:{blueprint:{pending:`Termina la entrevista o di «sorpréndeme»: {{filled}}/{{total}} dimensiones por ahora.`,blocked:`El blueprint está incompleto.`},specs:{pending:`Aprueba el blueprint y el Constructor generará el backlog del Hito 1.`,blocked:`El Hito 1 necesita {{min}}–{{max}} specs (ahora {{count}}). Pide al Constructor que lo ajuste.`,writing:`El Constructor está escribiendo cada spec al detalle — la auditoría de calidad se ejecuta cuando el lote esté completo.`},audit:{pending:`A la espera de las specs.`,blocked:`{{count}} problema(s) de auditoría bloquean el commit: abre la lista de abajo.`,writing:`La auditoría se ejecuta cuando todas las specs estén escritas.`}},issuesCount_one:`{{count}} problema de auditoría`,issuesCount_other:`{{count}} problemas de auditoría`,askFix:`Pedir al Constructor que lo corrija`},p={repairing:{invalid_json:`Reparando el snapshot (el último bloque no era JSON válido)…`,truncated:`Volviendo a pedir el snapshot (la respuesta se cortó)…`,quality:`Pidiendo al Constructor que corrija los problemas de auditoría…`,automatic:`automático`},rejected:{title:`El último snapshot del Constructor no pudo usarse`,invalid_json:`El bloque del blueprint no era JSON válido, así que el panel sigue mostrando el estado anterior.`,missing_version:`El bloque no era un snapshot de blueprint (falta blueprintVersion).`,truncated:`La respuesta se cortó antes de cerrar el bloque, así que no se recibió nada.`,autoRepairFailed:`Ya se intentó una reparación automática.`,retry:`Volver a pedir el snapshot`},repairedNote:`Snapshot reparado automáticamente`,nothingToRepair:`No hay nada que reparar: sigue conversando con el Constructor.`,noSession:`Esta conversación no puede reanudarse con su proveedor; envía un mensaje nuevo.`,alreadyStreaming:`El Constructor todavía está respondiendo.`,halted:{title:`La generación de specs se detuvo antes de tiempo`,detail:`{{written}} de {{total}} specs escritas por completo. El resto siguen siendo solo títulos del esquema.`,resume:`Continuar generando`}},m={title:`Continúa donde lo dejaste`,untitled:`Blueprint sin título`,specsComplete:`{{count}} specs listas`,specsInProgress:`{{count}} specs en curso`,dimensions:`{{filled}}/{{total}} dimensiones`,pendingIssue:`snapshot por reparar`,discard:`Descartar`,discardConfirm:`Confirmar descarte`,discardCancel:`Conservar`,resumeFailed:`No se pudo reanudar ese blueprint.`,discardFailed:`No se pudo descartar ese blueprint.`},h={batch_incomplete:`El Constructor aún no ha marcado el lote como completo.`,spec_count:`El lote necesita {{min}}–{{max}} specs (ahora {{count}}).`,invalid_shape:`La spec {{n}} no es un objeto válido.`,invalid_kind:`La spec {{n}} necesita un tipo válido (scaffold, feature o verification).`,scaffold_first:`La primera spec debe ser el scaffold del proyecto.`,duplicate_scaffold:`La spec {{n}} no puede ser un segundo scaffold.`,title_required:`La spec {{n}} necesita un título.`,title_duplicate:`La spec {{n}} repite el título de la spec {{other}}.`,summary:`La spec {{n}} necesita un resumen de una línea de menos de 240 caracteres.`,invalid_priority:`La spec {{n}} necesita una prioridad válida.`,canonical_sections:`A la spec {{n}} le faltan las cinco secciones canónicas en orden.`,empty_section:`La spec {{n}} tiene vacía la sección «{{heading}}».`,section_bullets:`La spec {{n}} necesita al menos {{min}} viñetas en "{{heading}}".`,complexity_format:`La spec {{n}} necesita un nivel de complejidad con justificación.`,scaffold_readme:`La spec de scaffold debe mencionar el README existente.`,criteria_count:`La spec {{n}} necesita {{min}}–{{max}} criterios de aceptación (tiene {{count}}).`,criterion_quality:`Spec {{n}}, criterio {{criterion}}: no es lo bastante concreto.`,duplicate_criterion:`La spec {{n}} repite el criterio de aceptación {{criterion}}.`,milestone_label:`La spec {{n}} necesita la etiqueta {{label}}.`,domain_label:`La spec {{n}} necesita una etiqueta de dominio además de {{label}}.`,invalid_dependency:`La spec {{n}} solo puede depender de una spec anterior.`,scaffold_dependency:`La spec de scaffold no puede declarar una dependencia.`,section_depth:`La spec {{n}} necesita un "{{heading}}" más completo (al menos {{min}} caracteres).`},g={state:{planned:`Planificado`,committed:`Listo para lanzar`,running:`En curso`,delivered:`Entregado — pendiente de revisión`,done:`Hecho`},counts:`{{delivered}} de {{total}} entregadas · {{done}} hechas`,failedNote_one:`{{count}} spec falló en su último intento`,failedNote_other:`{{count}} specs fallaron en su último intento`,legend:{done:`Hechas`,onReview:`En revisión`,inProgress:`En curso`,failed:`Fallaron el último intento`,todo:`Por hacer`},rail:{fallbackName:`Rail {{n}}`,chunk:`Rail {{k}} de la cadena`,running:`En ejecución · {{elapsed}}`,review:`Revisar`,open:`Abrir el rail`,noDelivery:`Sin entrega aún`},chain:{title:`Cadena secuencial`,parallelTitle:`Lanzamiento paralelo`,progress:`rail {{k}} de {{n}}`,waiting:`esperando a que asiente el rail {{k}}`,stackedOn:`el siguiente rail parte de {{branch}}`,paused:`En pausa — {{reason}}`,completed:`Todos los rails lanzados`,cancelled:`Cadena cancelada`,resume:`Reanudar`,cancel:`Cancelar cadena`,resumed:`Cadena reanudada`,resumeFailed:`No se pudo reanudar la cadena`,cancelledToast:`Cadena cancelada — los rails en curso continúan`,reasons:{chunk_failed:`el último rail falló`,chunk_stalled:`el último rail se atascó (sin salida del proveedor)`,chunk_stopped:`el último rail fue detenido`,launch_rejected:`el siguiente rail no pudo lanzarse ({{detail}})`,head_missing:`la rama sobre la que construir ya no existe`,head_discarded:`se descartó la entrega sobre la que parte el siguiente rail`,run_lost:`no se encontró el rail en ejecución tras un reinicio`,unknown:`en pausa`,provider_limit:`se alcanzó el límite de uso del proveedor`,rail_limit_reached:`todos los rails tienen un PR pendiente de tu decisión — fusiona o descarta PRs pendientes para liberar un rail y luego reanuda`,integration_failed:`no se pudo integrar la spec ({{detail}}); reanudar reintenta la integración`},checkpoint:`Rail {{k}} de {{n}} entregado — ¿lanzar el rail {{next}}?`,launchNext:`Lanzar siguiente rail`,nextLaunched:`Siguiente rail lanzado`,autoAdvance:`Continuar automáticamente`,autoAdvanceHint:`Integra cada spec antes de crear el worktree de la siguiente`,checkpointHint:`Se detiene tras cada rail y pregunta antes de lanzar el siguiente`,checkpointNote:`se detiene tras este rail`,autoOn:`Continuación automática activada — los siguientes rails se lanzan solos`,autoOff:`Continuación automática desactivada — se te preguntará antes de cada rail`,autoFailed:`No se pudo actualizar la cadena`,integrating:`integrando la spec antes de lanzar la siguiente`,cancelFailed:`No se pudo cancelar la cadena`},toast:{launched:`{{milestone}} lanzado — la spec 1 de {{n}} está en su rail; las siguientes specs siguen automáticamente, un rail cada una`,launchedAll:`{{milestone}} lanzado — una spec por rail ({{n}} en total)`,chainActive:`{{milestone}} ya se está lanzando — mira el panel Blueprint`,chunkLaunched:`{{milestone}} — rail {{k}} de {{n}} lanzado`,paused:`{{milestone}} en pausa — {{reason}}`,resume:`Reanudar`,delivered:`{{milestone}} entregado — {{count}} specs esperan tu revisión`,review:`Revisar`,completed:`{{milestone}} completado — todas las specs integradas`,launchedCheckpoint:`{{milestone}} lanzado — la spec 1 de {{n}} está en su rail; se te preguntará antes de cada siguiente`,checkpoint:`{{milestone}} — rail {{k}} de {{n}} entregado. ¿Lanzar el siguiente rail?`,launchNext:`Lanzar siguiente rail`,autoContinue:`Continuar automáticamente`,railLimitReached:`{{milestone}} no se pudo lanzar — todos los rails tienen un PR pendiente de tu decisión. Fusiona o descarta PRs pendientes para liberar un rail.`},sequentialHint:`Una spec por rail, en orden de dependencias — cada rail parte de la rama del rail anterior`},_={settledLabel:`Decisión tomada`,surprise:{label:`Constructor`,hint:`Podrás ajustar cualquier decisión después`,title:`Sorpréndeme`,description:`Deja que el Constructor decida producto, flujo principal, plataforma, stack e hitos, y te presente el blueprint para aprobarlo o retocarlo.`,cta:`Sorpréndeme`,settledTitle:`Sorpréndeme`,settledDescription:`Dejaste que el Constructor decidiera todas las dimensiones del blueprint.`},approve:{label:`Blueprint listo`,hint:`O escribe qué quieres cambiar`,title:`Aprobar el blueprint`,description:`Todas las dimensiones están decididas. Apruébalo y el Constructor escribe las specs del Hito 1 al detalle, de dos en dos, y después audita el lote.`,cta:`Aprobar y generar specs`,settledTitle:`Blueprint aprobado`,settledDescription:`El Constructor está generando el backlog del Hito 1 a partir de este blueprint.`}},v={shell:e,panel:t,commit:n,progress:r,done:i,sidebar:a,errors:o,milestone:s,mode:c,prompts:l,specModal:u,generation:d,readiness:f,snapshot:p,recent:m,quality:h,milestoneProgress:g,decisionCard:_};export{n as commit,_ as decisionCard,v as default,i as done,o as errors,d as generation,s as milestone,g as milestoneProgress,c as mode,t as panel,r as progress,l as prompts,h as quality,f as readiness,m as recent,e as shell,a as sidebar,p as snapshot,u as specModal};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={title:`Construtor de projetos`,subtitle:`Da ideia ao backlog do Marco 1`,close:`Fechar o Construtor`,emptyTitle:`Descreva sua ideia de app`,emptyHint:`Uma ou duas frases bastam — o Construtor fará uma breve entrevista e proporá um blueprint completo. Você também pode deixá-lo decidir tudo.`,surpriseMe:`Surpreenda-me`,inputPlaceholder:`Um app que…`,createSpecs:`Criar specs`,createSpecsHint:`Disponível quando as specs do Marco 1 passarem na auditoria`,providerUnavailable:`O Construtor requer um provedor com modo nativo sem ferramentas ou somente leitura. Este provedor não está disponível aqui.`},t={title:`Blueprint`,product:`Produto`,coreFlow:`Fluxo principal`,platform:`Plataforma`,stack:`Stack`,milestones:`Marcos`,milestonesValue:`{{count}} planejados`,assumptions:`Suposições`,m1Specs:`Specs do Marco 1 ({{count}})`,dependsOn:`depende de #{{index}}`,criteriaCount:`{{count}} critérios de aceitação`,laterMilestones:`Marcos posteriores`,empty:`O blueprint se preenche enquanto você conversa.`,specsComplete:`Completas`,specsInProgress:`Em andamento`,specWriting:`a escrever…`,specPendingBody:`ainda por escrever`},n={title:`Criar o projeto`,description:`Nada toca o disco até você confirmar. O repo fica intocado — os artefatos do Specrails vivem fora dele.`,nameLabel:`Nome do projeto`,locationLabel:`Local`,locationHint:`Uma nova pasta será criada aqui (vazia ou inexistente).`,providersLabel:`Provedores de IA`,githubLabel:`Criar repositório privado no GitHub`,githubAuthHint:`Inicie sessão primeiro: gh auth login`,back:`Voltar`,submit:`Criar projeto`,creating:`Criando…`,errors:{generic:`O commit não pôde iniciar. Verifique os valores e tente de novo.`,invalid_name:`O nome do projeto é obrigatório.`,invalid_location:`O local é obrigatório.`,providers_required:`Selecione pelo menos um provedor.`,unknown_provider:`Um dos provedores selecionados não está disponível.`,invalid_blueprint:`O blueprint está incompleto — volte e termine com o Construtor.`,m1_specs_required:`O blueprint ainda não tem specs do Marco 1.`,m1_specs_over_cap:`O Marco 1 tem specs demais (máx. 10). Peça ao Construtor para enxugá-lo.`,m1_spec_quality_invalid:`As specs geradas ainda não estão prontas para implementação. Volte ao Construtor e refine o item indicado.`,bundled_framework_missing:`O framework embutido está ausente — reinstale o app Specrails.`,location_not_empty:`Essa pasta já existe e não está vazia. Escolha outro local.`,location_already_registered:`Esse local já pertence a um projeto registrado.`,commit_failed:`A criação do projeto falhou — veja a lista de passos para o motivo.`}},r={title:`Criando seu projeto…`,steps:{"create-dir":`Criar a pasta do projeto`,"git-init":`Inicializar o repositório git + README`,assemble:`Montar o workspace do Specrails (offline)`,blueprint:`Gravar o blueprint`,tickets:`Inserir as specs do Marco 1`,register:`Registrar o projeto`,github:`Criar o repositório no GitHub`},githubErrors:{gh_not_installed:`GitHub CLI (gh) não está instalado — repositório não criado`,gh_not_authenticated:`gh sem sessão (execute gh auth login) — repositório não criado`,gh_scope:`Seu token do gh não pode criar repositórios (falta o scope repo)`,gh_repo_exists:`Já existe um repositório com esse nome na sua conta`,gh_network:`Erro de rede com o GitHub — repositório não criado`,generic:`Falha ao criar o repositório do GitHub`}},i={title:`Projeto criado`,description:`Seu backlog do Marco 1 está no quadro, com a etiqueta M1.`,launchM1:`Lançar o Marco 1`,openProject:`Abrir o projeto`,launchFailed:`Não foi possível lançar o Marco 1`},a={title:`Blueprint`,milestone:`M{{n}}`,launchM1:`Lançar o Marco 1`,generateNext:`Gerar M{{n}}`,generateHint:`Abre uma sessão de specs ancorada no código, semeada com o blueprint`,generateUnavailable:`A geração de marcos requer um modo nativo somente leitura`},o={startFailed:`Não foi possível iniciar a conversa do Construtor.`,turnFailed:`O turno do Construtor falhou.`,commitFailed:`A criação do projeto falhou.`},s={title:`Gerar {{label}}`,inputPlaceholder:`Refine as specs…`,commit:`Confirmar {{count}} specs como {{label}}`,commitToast:`{{count}} specs adicionadas ao quadro como {{label}}`,commitFailed:`Não foi possível confirmar o marco`,providerUnavailable:`A geração de marcos não está disponível porque este provedor não tem modo nativo somente leitura.`,send:`Enviar`},c={title:`Construtor de projetos`,subtitle:`O agente está construindo um projeto novo`,exit:`Sair`,exitConfirmTitle:`Sair do Construtor?`,exitConfirmBody:`O Construtor para agora. Seu blueprint fica salvo — retome-o em “Continue de onde parou” na próxima vez que abrir o Construtor.`,exitConfirmCancel:`Continuar construindo`,exitConfirmDiscard:`Descartar e sair`},l={surpriseMe:`Surpreenda-me — proponha valores sensatos para todas as dimensões do blueprint, mantenha m1Specs vazio e deixe-me aprovar o plano antes de gerar as specs detalhadas.`,milestoneSeed:`Gere as specs detalhadas do marco {{label}} ("{{title}}"). Leia primeiro o código real, valide o lote completo e só então emita TODAS as specs detalhadas do marco em uma única resposta/snapshot blueprint-draft.`,milestoneSeedWithPlanned:`Gere as specs detalhadas do marco {{label}} ("{{title}}"). Títulos de specs planejadas: {{planned}}. Leia primeiro o código real, valide o lote completo e só então emita TODAS as specs detalhadas do marco em uma única resposta/snapshot blueprint-draft.`,repairSnapshot:`Seu último bloco blueprint-draft não pôde ser usado pelo app ({{reason}}). Reemita o snapshot COMPLETO como JSON estritamente válido (quebras de linha dentro de strings escapadas como \\n, sem vírgulas finais, sem blocos de código aninhados) — apenas o bloco.`,approve:`Aprovado — gera agora o backlog detalhado do Marco 1.`},u={eyebrow:`{{milestone}} · Spec {{index}}`,close:`Fechar`,open:`Ver detalhe da spec`,empty:`Ainda sem descrição.`,summary:`Resumo`,priority:`Prioridade`,description:`Descrição da spec`,acceptanceCriteria:`Critérios de aceitação`,criteriaEmpty:`Ainda não há critérios de aceitação.`},d={writing:`A escrever as specs do Milestone 1…`,specCount:`spec {{n}}`,turn:`turno {{turn}}/{{total}}`,phase:{outline:`A esboçar as specs do Milestone 1…`,details:`A escrever em detalhe as specs {{from}}–{{to}} de {{total}}…`,audit:`A auditar as {{total}} specs…`,repair:`A pedir de novo as specs {{from}}–{{to}}…`}},f={title:`Pronto para criar as specs?`,steps:{blueprint:`Blueprint aprovado`,specs:`Specs do Marco 1 geradas`,audit:`Auditoria de qualidade`},details:{blueprint:{done:`{{filled}}/{{total}} dimensões`,pending:`{{filled}}/{{total}} dimensões`,blocked:`{{filled}}/{{total}} dimensões`},specs:{done:`{{count}} specs · completas`,pending:`{{count}} de {{min}}–{{max}}`,blocked:`{{count}} specs · precisa de {{min}}–{{max}}`,writing:`{{written}} de {{count}} escritas`},audit:{done:`sem problemas`,pending:`aguardando as specs`,blocked:`{{count}} a corrigir`,writing:`quando as specs estiverem escritas`}},hints:{blueprint:{pending:`Termine a entrevista ou diga “surpreenda-me” — {{filled}}/{{total}} dimensões até agora.`,blocked:`O blueprint está incompleto.`},specs:{pending:`Aprove o blueprint e o Construtor gerará o backlog do Marco 1.`,blocked:`O Marco 1 precisa de {{min}}–{{max}} specs (agora {{count}}). Peça ao Construtor para ajustar.`,writing:`O Construtor está a escrever cada spec por completo — a auditoria de qualidade corre quando o lote estiver completo.`},audit:{pending:`Aguardando as specs.`,blocked:`{{count}} problema(s) de auditoria bloqueiam o commit — abra a lista abaixo.`,writing:`A auditoria corre quando todas as specs estiverem escritas.`}},issuesCount_one:`{{count}} problema de auditoria`,issuesCount_other:`{{count}} problemas de auditoria`,askFix:`Pedir ao Construtor para corrigir`},p={repairing:{invalid_json:`Reparando o snapshot (o último bloco não era JSON válido)…`,truncated:`Solicitando o snapshot novamente (a resposta foi cortada)…`,quality:`Pedindo ao Construtor para corrigir os problemas de auditoria…`,automatic:`automático`},rejected:{title:`O último snapshot do Construtor não pôde ser usado`,invalid_json:`O bloco do blueprint não era JSON válido, então o painel ainda mostra o estado anterior.`,missing_version:`O bloco não era um snapshot de blueprint (blueprintVersion ausente).`,truncated:`A resposta foi cortada antes de fechar o bloco, então nada foi recebido.`,autoRepairFailed:`Uma reparação automática já foi tentada.`,retry:`Pedir o snapshot novamente`},repairedNote:`Snapshot reparado automaticamente`,nothingToRepair:`Não há nada para reparar — continue conversando com o Construtor.`,noSession:`Esta conversa não pode ser retomada com seu provedor; envie uma nova mensagem.`,alreadyStreaming:`O Construtor ainda está respondendo.`,halted:{title:`A geração de specs parou cedo demais`,detail:`{{written}} de {{total}} specs escritas por completo. As restantes ainda são só títulos do esboço.`,resume:`Continuar a gerar`}},m={title:`Continue de onde parou`,untitled:`Blueprint sem título`,specsComplete:`{{count}} specs prontas`,specsInProgress:`{{count}} specs em andamento`,dimensions:`{{filled}}/{{total}} dimensões`,pendingIssue:`snapshot a reparar`,discard:`Descartar`,discardConfirm:`Confirmar descarte`,discardCancel:`Manter`,resumeFailed:`Não foi possível retomar esse blueprint.`,discardFailed:`Não foi possível descartar esse blueprint.`},h={batch_incomplete:`O Construtor ainda não marcou o lote como completo.`,spec_count:`O lote precisa de {{min}}–{{max}} specs (agora {{count}}).`,invalid_shape:`A spec {{n}} não é um objeto válido.`,invalid_kind:`A spec {{n}} precisa de um tipo válido (scaffold, feature ou verification).`,scaffold_first:`A primeira spec deve ser o scaffold do projeto.`,duplicate_scaffold:`A spec {{n}} não pode ser um segundo scaffold.`,title_required:`A spec {{n}} precisa de um título.`,title_duplicate:`A spec {{n}} repete o título da spec {{other}}.`,summary:`A spec {{n}} precisa de um resumo de uma linha com menos de 240 caracteres.`,invalid_priority:`A spec {{n}} precisa de uma prioridade válida.`,canonical_sections:`Faltam à spec {{n}} as cinco seções canônicas em ordem.`,empty_section:`A spec {{n}} tem a seção “{{heading}}” vazia.`,section_bullets:`A spec {{n}} precisa de pelo menos {{min}} marcadores em "{{heading}}".`,complexity_format:`A spec {{n}} precisa de um nível de complexidade com justificativa.`,scaffold_readme:`A spec de scaffold deve mencionar o README existente.`,criteria_count:`A spec {{n}} precisa de {{min}}–{{max}} critérios de aceitação (tem {{count}}).`,criterion_quality:`Spec {{n}}, critério {{criterion}}: não é concreto o suficiente.`,duplicate_criterion:`A spec {{n}} repete o critério de aceitação {{criterion}}.`,milestone_label:`A spec {{n}} precisa do rótulo {{label}}.`,domain_label:`A spec {{n}} precisa de um rótulo de domínio além de {{label}}.`,invalid_dependency:`A spec {{n}} só pode depender de uma spec anterior.`,scaffold_dependency:`A spec de scaffold não pode declarar dependência.`,section_depth:`A spec {{n}} precisa de um "{{heading}}" mais completo (pelo menos {{min}} caracteres).`},g={state:{planned:`Planeado`,committed:`Pronto a lançar`,running:`Em curso`,delivered:`Entregue — a aguardar revisão`,done:`Concluído`},counts:`{{delivered}} de {{total}} entregues · {{done}} concluídas`,failedNote_one:`{{count}} spec falhou na última tentativa`,failedNote_other:`{{count}} specs falharam na última tentativa`,legend:{done:`Concluídas`,onReview:`Em revisão`,inProgress:`Em curso`,failed:`Falharam na última tentativa`,todo:`Pendentes`},rail:{fallbackName:`Rail {{n}}`,chunk:`Rail {{k}} da cadeia`,running:`A correr · {{elapsed}}`,review:`Rever`,open:`Abrir o rail`,noDelivery:`Ainda sem entrega`},chain:{title:`Cadeia sequencial`,parallelTitle:`Lançamento paralelo`,progress:`rail {{k}} de {{n}}`,waiting:`à espera que o rail {{k}} termine`,stackedOn:`o próximo rail parte de {{branch}}`,paused:`Em pausa — {{reason}}`,completed:`Todos os rails lançados`,cancelled:`Cadeia cancelada`,resume:`Retomar`,cancel:`Cancelar cadeia`,resumed:`Cadeia retomada`,resumeFailed:`Não foi possível retomar a cadeia`,cancelledToast:`Cadeia cancelada — os rails em curso continuam`,reasons:{chunk_failed:`o último rail falhou`,chunk_stalled:`o último rail travou (sem saída do fornecedor)`,chunk_stopped:`o último rail foi parado`,launch_rejected:`o próximo rail não pôde ser lançado ({{detail}})`,head_missing:`o ramo de base já não existe`,head_discarded:`a entrega de que o próximo rail parte foi descartada`,run_lost:`o rail em execução não foi encontrado após um reinício`,unknown:`em pausa`,provider_limit:`o limite de utilização do fornecedor foi atingido`,rail_limit_reached:`todos os rails têm um PR à espera da tua decisão — faz merge ou descarta PRs pendentes para libertar um rail e depois retoma`,integration_failed:`a integração da spec falhou ({{detail}}); retomar volta a tentar a integração`},checkpoint:`Rail {{k}} de {{n}} entregue — lançar o rail {{next}}?`,launchNext:`Lançar o próximo rail`,nextLaunched:`Próximo rail lançado`,autoAdvance:`Continuar automaticamente`,autoAdvanceHint:`Integra cada spec antes de criar a próxima worktree`,checkpointHint:`Para após cada rail e pergunta antes de lançar o próximo`,checkpointNote:`para após este rail`,autoOn:`Continuação automática ligada — os próximos rails são lançados sozinhos`,autoOff:`Continuação automática desligada — será perguntado antes de cada rail`,autoFailed:`Não foi possível atualizar a cadeia`,integrating:`a integrar esta spec antes de lançar a seguinte`,cancelFailed:`Não foi possível cancelar a cadeia`},toast:{launched:`{{milestone}} lançado — a spec 1 de {{n}} está no seu rail; as specs seguintes seguem automaticamente, um rail cada`,launchedAll:`{{milestone}} lançado — uma spec por rail ({{n}} no total)`,chainActive:`{{milestone}} já está a ser lançado — veja o painel Blueprint`,chunkLaunched:`{{milestone}} — rail {{k}} de {{n}} lançado`,paused:`{{milestone}} em pausa — {{reason}}`,resume:`Retomar`,delivered:`{{milestone}} entregue — {{count}} specs aguardam a sua revisão`,review:`Rever`,completed:`{{milestone}} concluído — todas as specs integradas`,launchedCheckpoint:`{{milestone}} lançado — a spec 1 de {{n}} está no seu rail; será perguntado antes de cada seguinte`,checkpoint:`{{milestone}} — rail {{k}} de {{n}} entregue. Lançar o próximo rail?`,launchNext:`Lançar o próximo rail`,autoContinue:`Continuar auto`,railLimitReached:`{{milestone}} não pôde ser lançado — todos os rails têm um PR à espera da tua decisão. Faz merge ou descarta PRs pendentes para libertar um rail.`},sequentialHint:`Uma spec por rail, por ordem de dependências — cada rail parte do ramo do rail anterior`},_={settledLabel:`Decisão tomada`,surprise:{label:`Construtor`,hint:`Poderás ajustar qualquer decisão depois`,title:`Surpreende-me`,description:`Deixa o Construtor decidir produto, fluxo principal, plataforma, stack e marcos, e apresentar-te o blueprint para aprovares ou afinares.`,cta:`Surpreende-me`,settledTitle:`Surpreende-me`,settledDescription:`Deixaste o Construtor decidir todas as dimensões do blueprint.`},approve:{label:`Blueprint pronto`,hint:`Ou escreve o que queres mudar`,title:`Aprovar o blueprint`,description:`Todas as dimensões estão decididas. Aprova-o e o Construtor escreve as specs do Marco 1 por completo, duas de cada vez, e depois audita o lote.`,cta:`Aprovar e gerar specs`,settledTitle:`Blueprint aprovado`,settledDescription:`O Construtor está a gerar o backlog do Marco 1 a partir deste blueprint.`}},v={shell:e,panel:t,commit:n,progress:r,done:i,sidebar:a,errors:o,milestone:s,mode:c,prompts:l,specModal:u,generation:d,readiness:f,snapshot:p,recent:m,quality:h,milestoneProgress:g,decisionCard:_};export{n as commit,_ as decisionCard,v as default,i as done,o as errors,d as generation,s as milestone,g as milestoneProgress,c as mode,t as panel,r as progress,l as prompts,h as quality,f as readiness,m as recent,e as shell,a as sidebar,p as snapshot,u as specModal};
|