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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={railAdded:`Rail {{n}} ajouté`,railRemoved:`{{rail}} supprimé`,railLimitReached:`Limite de rails atteinte ({{max}} max.)`,railDeleteFailed:`Impossible de supprimer le rail — il contient des specs, est en cours d'exécution ou a une décision de PR en attente`,launchTicketsInFlight:`Une spec de ce rail est déjà traitée par une exécution active`,launchLegacyEngineUnavailable:`Cette boucle utilise l'ancien moteur, que le Core installé n'exécute plus. Ouvrez-la dans Loops et choisissez Convertir vers Core.`,launchTicketCap:`Ce rail contient {{count}} specs — un lancement en accepte au plus {{max}} par rail. Répartissez-les sur plusieurs rails.`,launchAllSummary_one:`{{count}} rail lancé en parallèle`,launchAllSummary_other:`{{count}} rails lancés en parallèle`,launchAllNoneEligible:`Aucun rail prêt à lancer — assignez d'abord des specs à un rail libre`,launchAllFailed:`Aucun rail n'a pu être lancé`,railCompleted:`Rail {{n}} terminé`,railFailed:`Rail {{n}} en échec — specs renvoyées vers Specs`,railEnded:`Rail {{n}} {{status}} — specs renvoyées vers Specs`,alreadyOnRail:`Déjà sur {{rail}}`,movedToRail:`Déplacé vers {{rail}}`,railRunningStopFirst:`{{rail}} est en cours d'exécution — arrêtez-le avant de le supprimer`,removedFromRail:`Retiré de {{rail}}`,queuedOnRail:`Mis en file sur {{rail}}`,queuedOnRailDescription:`Le rail est en cours d'exécution`,railStopped:`{{rail}} arrêté`,stopFailed:`Échec de l'arrêt du rail`,syncTicketsFailed:`Échec de la synchronisation des tickets du rail`,launchFailed:`Échec du lancement du rail`,launchNetworkError:`Erreur réseau au lancement du rail`,railLaunched:`{{rail}} lancé`,launchDescription_one:`{{mode}} avec {{count}} spec`,launchDescription_other:`{{mode}} avec {{count}} specs`,railWorktreeNeedsReview:`Rail {{n}} : la spec #{{ticket}} nécessite une revue après le merge`,railWorktreesNoGit:`Isolation par worktree indisponible : ce projet n'est pas un dépôt git — exécution en mode partagé.`,railWorktreesNoCommits:`Isolation par worktree indisponible : le dépôt n'a pas encore de commit — faites un commit initial puis relancez.`,railWorktreesError:`L'isolation par worktrees a échoué — cette exécution continue SANS le flux de revue par PR (pas de carte d'implémentation). Voir le détail de l'erreur ci-dessous.`,onReviewCannotMoveToRail:`Cette spec attend une revue de PR — résolvez d'abord la décision de la PR`,onReviewNotLaunchable:`Une spec de ce rail attend une revue de PR — résolvez la décision de la PR avant de lancer`},t=JSON.parse(`{"operation":{"inProgress":"Action en cours…","create-pr":"Création de la PR…","publish":"Publication…","discard":"Suppression…","dismiss":"Fermeture du suivi…","poll-merge":"Vérification de la fusion…","reopen":"Réouverture…","merge-local":"Intégration locale…","recover-and-retry":"Création du commit et nouvelle tentative d’envoi du résultat préservé…","acknowledge-no-changes":"Marquage comme terminé…"},"markDone":"Marquer comme terminées","refine":"Affiner","completedToast":"Confirmé — les specs sont passées à Terminé","markDoneConfirmTitle":"Marquer ces specs comme terminées ?","markDoneConfirmBody":"L’implémentation a confirmé qu’aucune modification de code n’est nécessaire. Les specs passeront à Terminé et le worktree sans changement sera nettoyé.","refineConfirmTitle":"Affiner ces specs ?","refineConfirmBody":"Le résultat sans modification sera fermé et les specs retourneront dans le backlog pour être affinées. Les journaux d’exécution resteront disponibles.","localOnly":"Modifications disponibles localement","localOnlyHint":"L’implémentation est terminée, mais les modifications n’ont pas été poussées. Intégrez-les localement ou republiez-les lorsque le dépôt distant sera disponible.","noChanges":"Aucune modification nécessaire","partial":"{{succeeded}} implémentations sur {{total}} sont prêtes","createPartialPr":"Créer une PR avec {{count}}","deliveryBlocked":"Implémentation terminée — la livraison requiert votre attention","updateFailed":"Implémentation terminée — échec de la mise à jour","retryPush":"Réessayer le push","retryPushVerified":"Push vérifié · le commit {{sha}} est dans la PR","commitAlreadyVerified":"Le commit {{sha}} est déjà vérifié dans la PR","deliveryCommit":"commit {{sha}}","prClosed":"PR fermée sans fusion","reopen":"Rouvrir","dismiss":"Fermer le suivi","discardLocalResult":"Supprimer le résultat local","dismissConfirmTitle":"Fermer ce suivi ?","dismissConfirmBody":"Cette carte de suivi sera fermée. Son worktree ne sera supprimé que si cela reste sans risque ; sinon, il sera conservé avec un avertissement. La PR existante, sa branche et son état de revue resteront inchangés.","discardLocalConfirmTitle":"Supprimer le résultat local ?","discardLocalConfirmBody":"L’itération locale récupérable ne sera supprimée que si cela reste sans risque ; si elle a changé, elle sera conservée avec un avertissement. Toute PR existante et sa branche resteront inchangées. Un résultat supprimé ne peut pas être récupéré.","viewRunLog":"Voir le journal d’exécution de {{ref}}","cleanupIncomplete_one":"Nettoyage incomplet ({{count}} avertissement)","cleanupIncomplete_other":"Nettoyage incomplet ({{count}} avertissements)","cleanupIncompleteHint":"Les données de récupération locales ont été conservées. Examinez ces détails avant toute suppression manuelle.","copyCleanupDetails":"Copier les détails de récupération","safetyArchiveTitle":"Archive de sécurité ({{count}})","safetyArchiveHint":"Des fichiers temporaires de l’espace de travail ont été conservés hors de la PR par précaution. Vous pouvez les examiner ou les supprimer manuellement.","copySafetyArchive":"Copier les chemins","unit":{"failed":"échec de l’implémentation","blocked":"livraison bloquée","noChanges":"aucune modification","succeeded":"prête"},"readyForReview":"Prêt pour la revue","openReview":"Relire","openReviewTooltip":"Ouvrir la relecture en langage clair","draftPr":"PR en brouillon","branchPushed":"Branche poussée — PR en attente","branchPushedHint":"La branche a été poussée mais la PR n'a pas pu être créée (GitHub CLI indisponible). Réessayez pour la créer.","iteratingPr":"Mise à jour de la PR","prReady":"PR prête","implementationFailed":"Échec de l’implémentation","implementationFailedHint":"Le run d’implémentation a échoué. Ouvrez le journal du run, puis abandonnez cette carte avant de relancer.","prFailed":"PR en échec","prFailedDetail":"PR en échec : {{detail}}","createDegraded":"Impossible de publier la PR — {{detail}}. Réessayez une fois le problème résolu.","createPr":"Créer la PR","createPrTooltip":"→ {{base}}","publish":"Publier","publishTooltip":"Ouvre la PR en brouillon pour la relecture de l'équipe","checkout":"Changer de branche","checkoutTooltip":"Basculer le dossier principal du projet sur {{branch}}","checkoutSuccess":"Checkout effectué sur {{branch}}","checkoutFailed":"Impossible de basculer sur la branche d’implémentation","checkoutDirtyTitle":"Checkout bloqué pour protéger vos modifications","checkoutDirtyBody":"Le dossier principal du projet contient des modifications non validées. Créez un commit ou mettez-les de côté, puis réessayez. Aucun changement n’a été effectué.","checkoutSafetyUnknownTitle":"Checkout suspendu, car la sécurité n’a pas pu être vérifiée","checkoutSafetyUnknownBody":"Specrails n’a pas pu lire l’état Git du dossier principal du projet. Rien n’a été libéré ni modifié. Réessayez lorsque Git sera disponible.","checkoutNotDeliverableTitle":"Cette branche ne contient pas l’implémentation conservée","checkoutNotDeliverableBody":"Le commit exact de la livraison n’a pas encore été vérifié. Inspectez ou récupérez plutôt le résultat local.","inspectLocalResult":"Inspecter le résultat local","inspectLocalResultTooltip":"Afficher le worktree isolé préservé et copier son chemin","localResultPathCopied":"Chemin du résultat local copié","localResultPath":"Résultat local préservé","localResultUnavailableHere":"Aucun worktree récupérable n’est disponible sur cet ordinateur. Consultez le journal d’exécution depuis la machine où l’opération a été lancée.","recoverAndRetry":"Créer le commit et réessayer l’envoi","recoverAndRetryConfirmTitle":"Créer le commit et envoyer le résultat préservé ?","recoverAndRetryConfirmBody":"Specrails utilisera uniquement le worktree isolé ou la branche enregistrée compatible avec une avance rapide pour {{branch}}. Si nécessaire, il créera un commit avec les fichiers livrables, puis enverra ce commit exact uniquement si la PR est toujours ouverte sur les branches source et cible attendues. Le dossier principal de votre projet et ses modifications non validées resteront intacts.","recoverAndRetryVerified":"Le commit récupéré {{sha}} est vérifié dans la PR","recoveryStillBlocked":"La récupération locale nécessite encore votre attention","recheckRecovery":"Vérifier à nouveau","recheckRecoveryConfirmTitle":"Vérifier à nouveau cet ordinateur ?","recheckRecoveryConfirmBody":"Specrails réanalysera dans ce clone le worktree, la branche, les refs, les reflogs et les objets Git orphelins appartenant à la livraison de {{branch}}. S’il prouve un résultat unique, il pourra committer les changements isolés et retenter le push exact. Le dossier principal du projet ne sera pas touché.","recoveryUnavailable":"La récupération n’a pas pu être vérifiée sur cet ordinateur","recoveryUnavailableBody":"Specrails n’a pas pu prouver de manière sûre un résultat unique appartenant à la livraison dans ce clone. Rien n’a été modifié ou supprimé. Consultez le détail de l’étape et les journaux d’exécution. Si le run a été exécuté sur un autre ordinateur, ouvrez-y Specrails puis vérifiez à nouveau.","recoveryDetailSummary":"Détail technique de récupération","discard":"Abandonner","discardTooltip":"Ferme la livraison et renvoie ses tickets vers Specs ; le travail local modifié est conservé","retryPr":"Réessayer la PR","retry":"Réessayer","checkMerge":"Vérifier le merge","verifyPr":"Vérifier la PR","verifyPrTooltip":"Vérifier le commit exact dans GitHub et si la PR est fusionnée","checkMergeTooltip":"Demande à GitHub si la PR a été fusionnée","prLinkFallback":"PR","openPrTitle":"Ouvrir la PR sur GitHub","notMergedYet":"Pas encore fusionnée","commitMissingRetry":"Le commit de livraison n’est plus présent dans la PR. Vous pouvez réessayer le push.","prVerifiedWaiting":"Commit {{sha}} vérifié · en attente du merge","alreadyResolved":"Déjà résolue ailleurs","ghFailed":"GitHub CLI a échoué : {{detail}}","actionFailed":"Impossible d'appliquer la décision de la PR","mergedToast":"PR fusionnée — tickets passés en Terminé","discardedToast":"PR abandonnée — tickets renvoyés vers Specs","decisionPending":"Ce rail a une décision de PR en attente — créez, publiez ou abandonnez-la avant de relancer","discardConfirmTitle":"Abandonner cette livraison ?","discardConfirmBody":"La PR sera fermée sans supprimer sa branche distante. Seuls les branches locales et les worktrees appartenant à SpecRails et toujours positionnés sur leur commit enregistré seront supprimés ; tout élément modifié sera conservé avec un avertissement. Les tickets retourneront dans le backlog Specs. Les ressources locales supprimées ne peuvent pas être récupérées.","implementationFailedDiscardTitle":"Abandonner cette livraison en échec ?","implementationFailedDiscardBody":"La carte sera fermée et ses tickets retourneront vers Specs. Le travail local et les branches seront conservés pour inspection. Seules les ressources dont le nettoyage est prouvé sûr pourront être supprimées.","mergeLocal":"Intégrer en local","mergeLocalTooltip":"Fusionne les branches livrées dans {{base}} dans votre checkout local (sans GitHub)","mergeLocalConfirmTitle":"Intégrer en local ?","mergeLocalConfirmBody":"Les branches livrées seront fusionnées dans {{base}} localement. Les modifications existantes sont préservées ; les modifications qui se chevauchent peuvent nécessiter une résolution avant l’intégration.","mergeLocalBlockedDirty":"Intégration impossible : les modifications locales sur {{base}} chevauchent la livraison. Commitez ou remisez ces modifications, puis réessayez.","mergeLocalBlockedBranch":"Impossible d'intégrer : votre checkout est sur {{current}}, pas sur {{base}}. Passez sur {{base}}, puis réessayez.","mergeLocalFailed":"La fusion locale a échoué : {{detail}}","mergedLocally":"Intégré dans {{base}} en local","discardStackedNote":"Les rails suivants de ce jalon ont été construits sur cette livraison. L'abandonner met la chaîne du jalon en pause ; les rails suivants conservent leur travail."}`),n={title:`Rails`,runningCount_one:`{{count}} en cours`,runningCount_other:`{{count}} en cours`,launchAll:`Tout lancer`,launchAllTitle:`Lance en parallèle tous les rails prêts — chaque exécution est isolée dans son propre worktree git`},r={skipRunning_one:`{{count}} déjà en cours`,skipRunning_other:`{{count}} déjà en cours`,skipEmpty_one:`{{count}} sans specs`,skipEmpty_other:`{{count}} sans specs`,skipPendingDecision_one:`{{count}} en attente d'une décision de PR`,skipPendingDecision_other:`{{count}} en attente d'une décision de PR`,skipOnReview_one:`{{count}} avec des specs en revue`,skipOnReview_other:`{{count}} avec des specs en revue`,skipInFlight_one:`{{count}} ignoré (spec déjà en cours)`,skipInFlight_other:`{{count}} ignorés (specs déjà en cours)`,failedCount_one:`{{count}} en échec`,failedCount_other:`{{count}} en échec`},i={title:`Lancer tous les rails`,railsCount_one:`{{count}} rail`,railsCount_other:`{{count}} rails`,specsCount_one:`{{count}} spec`,specsCount_other:`{{count}} specs`,isolationTitle:`Parallèle et isolé.`,isolationBody:`Chaque rail s'exécute dans son propre worktree git — les lancements simultanés n'entrent jamais en collision.`,pipelinesTitle_one:`{{count}} pipeline IA.`,pipelinesTitle_other:`{{count}} pipelines IA.`,pipelinesBody:`Un lancement par rail, chacun avec son mode, son moteur et son profil configurés.`,costTitle:`Coût multiplié.`,costBody:`Chaque rail génère sa propre exécution IA — la dépense augmente avec le nombre de rails.`,launch_one:`Lancer {{count}} rail`,launch_other:`Lancer {{count}} rails`},a={viewJobLog:`Voir le log du job`,log:`Log`,implement:`Implémenter`,freestyle:`Freestyle`,freestyleTitle:`Freestyle — le fournisseur sélectionné implémente la spec en autonomie, sans pipeline`,loop:`Loop`,loopTitle:`Loop — exécute une boucle d'automatisation publiée sur les specs du rail`,pickLoop:`Choisir une boucle…`,effortTitle:`Effort de raisonnement`,stop:`Arrêter`,play:`Lancer`,failedRetry:`Job en échec — cliquez pour réessayer`,addSpecsFirst:`Ajoutez d'abord des specs à ce rail`,builtInLoops:`Intégrés`,customLoops:`Loops personnalisés`,worktreesMerged:`{{count}} fusionnés`,worktreesNeedsReview:`{{count}} à vérifier`,execSteps:`{{count}} étapes`,execLines:`{{count}} lignes`,openspec:`SDD Quick (OpenSpec)`},o={moveToSpecs:`Déplacer vers Specs`,deleteRail:`Supprimer {{label}}`,dropHere:`Déposer ici`,dropOnThisRail:`Déposer sur ce rail`,dragSpecsHere:`Glissez des specs ici`},s={title:`Lancer en mode Freestyle`,context_one:`{{rail}} · {{count}} spec`,context_other:`{{rail}} · {{count}} specs`,noPipelineTitle:`Pas de pipeline OpenSpec.`,noPipelineBody:`Le flux structuré architecte → développeur → reviewer est entièrement ignoré.`,autonomyTitle:`Autonomie native de {{provider}}.`,autonomyBody:`{{provider}} travaille seul avec ses agents natifs et des workflows dynamiques.`,costTitle:`Coût variable.`,costBody:`La dépense dépend de ce que {{provider}} décide de faire — elle peut être plus élevée que prévu.`,continue:`Continuer`},c={fetchFailed:`Échec de la récupération des rails : {{status}}`},l={chipNew:`Nouvelle PR`,chipTitle:`Livrer dans une PR existante`,clear:`Retirer la PR cible`,newPr:`Nouvelle PR (par défaut)`,loading:`Chargement des PR ouvertes…`,none:`Aucune PR ouverte trouvée`,fork:`Fork — push impossible`,manualPlaceholder:`Numéro de PR`,manualUse:`Utiliser`,confirmTitle:`Livrer dans la PR existante ?`,confirmBody:`Cette exécution travaille sur la branche head de la PR et pousse dedans — aucune nouvelle PR n'est créée.`,confirmBranch:`Branche head`,confirmLaunch:`Lancer vers la PR #{{number}}`,errors:{invalid_target_pr:`Numéro de PR invalide`,target_pr_requires_pr_mode:`Livrer dans une PR existante nécessite le flux PR isolé`,target_pr_not_found:`PR introuvable sur ce dépôt`,target_pr_not_open:`Cette PR n'est plus ouverte`,target_pr_fork:`Cette PR provient d'un fork et ne peut pas recevoir de push`,target_pr_invalid:`Les branches de la PR sont inutilisables comme cible de livraison`,target_pr_unfetchable:`Impossible de récupérer la branche head de la PR`}},u={rolesNoFreestyle:`Freestyle exige un seul fournisseur : choisissez Implement ou une boucle avant de passer ce rail aux moteurs par rôle.`},d={toasts:e,railPr:t,railsBoard:n,launchAll:r,launchAllDialog:i,railControls:a,railRow:o,freestyleDialog:s,useRails:c,targetPr:l,rail:u};export{d as default,s as freestyleDialog,r as launchAll,i as launchAllDialog,u as rail,a as railControls,t as railPr,o as railRow,n as railsBoard,l as targetPr,e as toasts,c as useRails};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-CNC7AqOf.js";var t=e({default:()=>p,freestyleDialog:()=>l,launchAll:()=>a,launchAllDialog:()=>o,rail:()=>f,railControls:()=>s,railPr:()=>r,railRow:()=>c,railsBoard:()=>i,targetPr:()=>d,toasts:()=>n,useRails:()=>u}),n={railAdded:`Rail {{n}} added`,railRemoved:`{{rail}} removed`,railLimitReached:`Rail limit reached ({{max}} max)`,railDeleteFailed:`Couldn't remove the rail — it holds specs, is running, or has a pending PR decision`,launchTicketsInFlight:`A spec on this rail is already being worked by an active run`,launchLegacyEngineUnavailable:`This loop uses the legacy engine, which the installed Core no longer runs. Open it in Loops and choose Convert to Core.`,launchTicketCap:`This rail has {{count}} specs — a launch takes at most {{max}} per rail. Split them across rails.`,launchAllSummary_one:`{{count}} rail launched in parallel`,launchAllSummary_other:`{{count}} rails launched in parallel`,launchAllNoneEligible:`No rails ready to launch — assign specs to an idle rail first`,launchAllFailed:`No rails could be launched`,railCompleted:`Rail {{n}} completed`,railFailed:`Rail {{n}} failed — specs returned to Specs`,railEnded:`Rail {{n}} {{status}} — specs returned to Specs`,alreadyOnRail:`Already on {{rail}}`,movedToRail:`Moved to {{rail}}`,railRunningStopFirst:`{{rail}} is running — stop it before removing`,removedFromRail:`Removed from {{rail}}`,queuedOnRail:`Queued on {{rail}}`,queuedOnRailDescription:`Rail is currently running`,railStopped:`{{rail}} stopped`,stopFailed:`Failed to stop rail`,syncTicketsFailed:`Failed to sync rail tickets`,launchFailed:`Failed to launch rail`,launchNetworkError:`Network error launching rail`,railLaunched:`{{rail}} launched`,launchDescription_one:`{{mode}} with {{count}} spec`,launchDescription_other:`{{mode}} with {{count}} specs`,railWorktreeNeedsReview:`Rail {{n}}: spec #{{ticket}} needs review after merge`,railWorktreesNoGit:`Worktree isolation unavailable: this project isn't a git repository — running in shared mode.`,railWorktreesNoCommits:`Worktree isolation unavailable: the repository has no commits yet — make an initial commit, then relaunch.`,railWorktreesError:`Worktree isolation failed — this run continues WITHOUT the PR review flow (no implementation card). See the error detail below.`,onReviewCannotMoveToRail:`This spec is awaiting PR review — resolve the PR decision first`,onReviewNotLaunchable:`A spec on this rail is awaiting PR review — resolve the PR decision before launching`},r={operation:{inProgress:`Action in progress…`,"create-pr":`Creating PR…`,publish:`Publishing…`,discard:`Discarding…`,dismiss:`Dismissing follow-up…`,"poll-merge":`Checking merge…`,reopen:`Reopening…`,"merge-local":`Integrating locally…`,"recover-and-retry":`Committing and retrying the preserved result…`,"acknowledge-no-changes":`Marking done…`},readyForReview:`Ready for review`,openReview:`Review`,openReviewTooltip:`Open the plain-language review`,draftPr:`Draft PR`,branchPushed:`Branch pushed — PR pending`,branchPushedHint:`The branch was pushed but the PR couldn't be created (GitHub CLI unavailable). Retry to create it.`,localOnly:`Changes available locally`,localOnlyHint:`The implementation completed, but the changes have not been pushed. Integrate them locally or retry publishing when the remote is available.`,noChanges:`No changes needed`,markDone:`Mark done`,refine:`Refine`,completedToast:`Confirmed — specs moved to Done`,markDoneConfirmTitle:`Mark these specs done?`,markDoneConfirmBody:`The implementation confirmed that no code changes are needed. The specs will move to Done and the no-change worktree will be cleaned up.`,refineConfirmTitle:`Refine these specs?`,refineConfirmBody:`The no-change result will be closed and the specs will return to the backlog so you can refine them. The run logs remain available.`,partial:`{{succeeded}} of {{total}} implementations ready`,createPartialPr:`Create PR with {{count}}`,deliveryBlocked:`Implementation complete — delivery needs attention`,updateFailed:`Implementation complete — update failed`,retryPush:`Retry push`,retryPushVerified:`Push verified · commit {{sha}} is in the PR`,commitAlreadyVerified:`Commit {{sha}} is already verified in the PR`,deliveryCommit:`commit {{sha}}`,prClosed:`PR closed without merge`,reopen:`Reopen`,iteratingPr:`Updating PR`,prReady:`PR ready`,implementationFailed:`Implementation failed`,implementationFailedHint:`The implementation run failed. Open the run log, then discard this card before relaunching.`,prFailed:`PR failed`,prFailedDetail:`PR failed: {{detail}}`,createDegraded:`Couldn't publish the PR — {{detail}}. Retry when resolved.`,createPr:`Create PR`,createPrTooltip:`→ {{base}}`,publish:`Publish`,publishTooltip:`Open this draft PR for team review`,checkout:`Checkout`,checkoutTooltip:`Check out {{branch}} in the main project folder`,checkoutSuccess:`Checked out {{branch}}`,checkoutFailed:`Could not check out the implementation branch`,checkoutDirtyTitle:`Checkout blocked to protect your changes`,checkoutDirtyBody:`The main project folder has uncommitted changes. Commit or stash them, then retry. Nothing was changed.`,checkoutSafetyUnknownTitle:`Checkout paused because safety could not be verified`,checkoutSafetyUnknownBody:`Specrails could not read the main project folder’s Git status. Nothing was released or changed. Retry after Git is available.`,checkoutNotDeliverableTitle:`This branch is not the preserved implementation`,checkoutNotDeliverableBody:`No exact delivery commit has been verified yet. Inspect or recover the local result instead.`,inspectLocalResult:`Inspect local result`,inspectLocalResultTooltip:`Reveal the preserved isolated worktree and copy its path`,localResultPathCopied:`Local result path copied`,localResultPath:`Preserved local result`,localResultUnavailableHere:`No recoverable worktree is available on this computer. Review the run log from the machine where it executed.`,recoverAndRetry:`Commit & retry push`,recoverAndRetryConfirmTitle:`Commit and push the preserved result?`,recoverAndRetryConfirmBody:`Specrails will use only the isolated worktree or recorded fast-forward branch for {{branch}}. It will commit deliverable files if needed, then push the exact commit only if the PR is still open on the expected head and base. Your main project folder and its uncommitted changes will not be touched.`,recoverAndRetryVerified:`Recovered commit {{sha}} is verified in the PR`,recoveryStillBlocked:`Local recovery still needs attention`,recheckRecovery:`Check again`,recheckRecoveryConfirmTitle:`Check this computer again?`,recheckRecoveryConfirmBody:`Specrails will rescan this clone’s delivery-owned worktree, branch, refs, reflogs, and orphan Git objects for {{branch}}. If it proves one result, it may commit isolated changes and retry the exact push. Your main project folder will not be touched.`,recoveryUnavailable:`Recovery could not be verified on this computer`,recoveryUnavailableBody:`Specrails could not safely prove one delivery-owned result in this clone. Nothing was changed or removed. Inspect the stage detail and run logs. If the run executed on another computer, open Specrails there, then check again.`,recoveryDetailSummary:`Technical recovery detail`,discard:`Discard`,dismiss:`Dismiss follow-up`,discardLocalResult:`Discard local result`,discardTooltip:`Close the delivery and return its tickets to Specs; changed local work is preserved`,retryPr:`Retry PR`,retry:`Retry`,checkMerge:`Check merge`,verifyPr:`Verify PR`,verifyPrTooltip:`Verify the exact commit in GitHub and check whether the PR is merged`,checkMergeTooltip:`Ask GitHub whether the PR has been merged`,prLinkFallback:`PR`,openPrTitle:`Open the PR on GitHub`,notMergedYet:`Not merged yet`,commitMissingRetry:`The delivery commit is no longer in the PR. Retry push is available again.`,prVerifiedWaiting:`Commit {{sha}} verified · waiting for merge`,alreadyResolved:`Already resolved elsewhere`,ghFailed:`GitHub CLI failed: {{detail}}`,actionFailed:`Couldn't apply the PR decision`,mergedToast:`PR merged — tickets moved to Done`,discardedToast:`PR discarded — tickets returned to Specs`,decisionPending:`This rail has a pending PR decision — create, publish or discard it before relaunching`,discardConfirmTitle:`Discard this delivery?`,discardConfirmBody:`The PR will be closed without deleting its remote branch. Only SpecRails-owned local branches and worktrees that are still at their recorded commit will be removed; anything changed will be preserved with a warning. The tickets will return to the Specs backlog. Removed local resources cannot be recovered.`,implementationFailedDiscardTitle:`Discard this failed delivery?`,implementationFailedDiscardBody:`The card will be cleared and its tickets will return to Specs. Local work and branches will be kept for inspection. Only resources proven safe to clean up may be removed.`,dismissConfirmTitle:`Dismiss this follow-up?`,dismissConfirmBody:`This follow-up card will be cleared. Its owned worktree will be removed only if it is still safe; otherwise it will be preserved with a warning. The existing PR, its branch, and review state will remain unchanged.`,discardLocalConfirmTitle:`Discard the local result?`,discardLocalConfirmBody:`The recoverable local iteration will be removed only if it is still safe; if it changed, it will be preserved with a warning. Any existing PR and its branch will remain unchanged. A removed result cannot be recovered.`,mergeLocal:`Integrate locally`,mergeLocalTooltip:`Merge the delivered branches into {{base}} in your local checkout (no GitHub needed)`,mergeLocalConfirmTitle:`Integrate locally?`,mergeLocalConfirmBody:`The delivered branches will be merged into {{base}} locally. Existing changes are preserved; overlapping edits may require resolution before integration.`,mergeLocalBlockedDirty:`Cannot integrate: local changes on {{base}} overlap the delivery. Commit or stash those changes, then retry.`,mergeLocalBlockedBranch:`Cannot integrate: your checkout is on {{current}}, not {{base}}. Check out {{base}}, then retry.`,mergeLocalFailed:`Local merge failed: {{detail}}`,mergedLocally:`Integrated into {{base}} locally`,viewRunLog:`View run log for {{ref}}`,cleanupIncomplete_one:`Cleanup is incomplete ({{count}} warning)`,cleanupIncomplete_other:`Cleanup is incomplete ({{count}} warnings)`,cleanupIncompleteHint:`Local recovery data was preserved. Inspect these details before removing anything manually.`,copyCleanupDetails:`Copy recovery details`,safetyArchiveTitle:`Safety archive ({{count}})`,safetyArchiveHint:`Temporary workspace files were preserved outside the PR as a precaution. You can inspect or remove them manually.`,copySafetyArchive:`Copy paths`,unit:{failed:`implementation failed`,blocked:`delivery blocked`,noChanges:`no changes`,succeeded:`ready`},discardStackedNote:`Later rails of this milestone were built on this delivery. Discarding it pauses the milestone chain; the later rails keep their work.`},i={title:`Rails`,runningCount_one:`{{count}} running`,runningCount_other:`{{count}} running`,launchAll:`Launch all`,launchAllTitle:`Launch every ready rail in parallel — each run is isolated in its own git worktree`},a={skipRunning_one:`{{count}} already running`,skipRunning_other:`{{count}} already running`,skipEmpty_one:`{{count}} without specs`,skipEmpty_other:`{{count}} without specs`,skipPendingDecision_one:`{{count}} awaiting a PR decision`,skipPendingDecision_other:`{{count}} awaiting a PR decision`,skipOnReview_one:`{{count}} with specs on review`,skipOnReview_other:`{{count}} with specs on review`,skipInFlight_one:`{{count}} skipped (spec already in flight)`,skipInFlight_other:`{{count}} skipped (specs already in flight)`,failedCount_one:`{{count}} failed`,failedCount_other:`{{count}} failed`},o={title:`Launch all rails`,railsCount_one:`{{count}} rail`,railsCount_other:`{{count}} rails`,specsCount_one:`{{count}} spec`,specsCount_other:`{{count}} specs`,isolationTitle:`Parallel & isolated.`,isolationBody:`Each rail runs in its own git worktree — concurrent launches never collide.`,pipelinesTitle_one:`{{count}} AI pipeline.`,pipelinesTitle_other:`{{count}} AI pipelines.`,pipelinesBody:`One launch per rail, each with its configured mode, engine and profile.`,costTitle:`Multiplied cost.`,costBody:`Every rail spawns its own AI run — spend scales with the number of rails.`,launch_one:`Launch {{count}} rail`,launch_other:`Launch {{count}} rails`},s={viewJobLog:`View job log`,log:`Log`,implement:`Implement`,freestyle:`Freestyle`,freestyleTitle:`Freestyle — the selected provider implements the spec autonomously, no pipeline`,loop:`Loop`,loopTitle:`Loop — run a published automation loop against the rail's specs`,pickLoop:`Pick a loop…`,effortTitle:`Reasoning effort`,stop:`Stop`,play:`Play`,failedRetry:`Job failed — click to retry`,addSpecsFirst:`Add specs to this rail first`,builtInLoops:`Built-in`,customLoops:`Custom loops`,worktreesMerged:`{{count}} merged`,worktreesNeedsReview:`{{count}} need review`,execSteps:`{{count}} steps`,execLines:`{{count}} lines`,openspec:`SDD Quick (OpenSpec)`},c={moveToSpecs:`Move to Specs`,deleteRail:`Delete {{label}}`,dropHere:`Drop here`,dropOnThisRail:`Drop on this rail`,dragSpecsHere:`Drag specs here`},l={title:`Launch in Freestyle mode`,context_one:`{{rail}} · {{count}} spec`,context_other:`{{rail}} · {{count}} specs`,noPipelineTitle:`No OpenSpec pipeline.`,noPipelineBody:`The structured architect → developer → reviewer flow is skipped entirely.`,autonomyTitle:`Native {{provider}} autonomy.`,autonomyBody:`{{provider}} works on its own using native agents and dynamic workflows.`,costTitle:`Variable cost.`,costBody:`Spend depends on what {{provider}} decides to do — it can be higher than expected.`,continue:`Continue`},u={fetchFailed:`Failed to fetch rails: {{status}}`},d={chipNew:`New PR`,chipTitle:`Deliver into an existing PR`,clear:`Clear PR target`,newPr:`New PR (default)`,loading:`Loading open PRs…`,none:`No open PRs found`,fork:`Fork — not pushable`,manualPlaceholder:`PR number`,manualUse:`Use`,confirmTitle:`Deliver into existing PR?`,confirmBody:`This run works on the PR's head branch and pushes into it — no new PR is created.`,confirmBranch:`Head branch`,confirmLaunch:`Launch into PR #{{number}}`,errors:{invalid_target_pr:`Invalid PR number`,target_pr_requires_pr_mode:`Delivering into an existing PR needs the isolated PR flow`,target_pr_not_found:`PR not found on this repository`,target_pr_not_open:`That PR is not open anymore`,target_pr_fork:`That PR comes from a fork and cannot be pushed to`,target_pr_invalid:`The PR's branches are unusable as a delivery target`,target_pr_unfetchable:`The PR's head branch could not be fetched`}},f={rolesNoFreestyle:`Freestyle needs a single provider — pick Implement or a loop before switching this rail to per-role engines.`},p={toasts:n,railPr:r,railsBoard:i,launchAll:a,launchAllDialog:o,railControls:s,railRow:c,freestyleDialog:l,useRails:u,targetPr:d,rail:f};export{t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={railAdded:`已添加 Rail {{n}}`,railRemoved:`已移除 {{rail}}`,railLimitReached:`已达到 Rail 上限(最多 {{max}} 个)`,railDeleteFailed:`无法移除该 Rail — 它包含 Spec、正在运行或有待处理的 PR 决定`,launchTicketsInFlight:`该 Rail 上的某个 Spec 已在被一个活动运行处理`,launchLegacyEngineUnavailable:`此循环使用旧引擎,已安装的 Core 不再运行它。请在 Loops 中打开并选择“转换为Core”。`,launchTicketCap:`此轨道有 {{count}} 个规格——每次启动每条轨道最多 {{max}} 个。请将它们分配到多条轨道。`,launchAllSummary_one:`已并行启动 {{count}} 个 Rail`,launchAllSummary_other:`已并行启动 {{count}} 个 Rail`,launchAllNoneEligible:`没有可启动的 Rail — 请先将 Spec 分配到空闲的 Rail`,launchAllFailed:`没有任何 Rail 能够启动`,railCompleted:`Rail {{n}} 已完成`,railFailed:`Rail {{n}} 失败 — Spec 已退回 Specs`,railEnded:`Rail {{n}} {{status}} — Spec 已退回 Specs`,alreadyOnRail:`已在 {{rail}} 上`,movedToRail:`已移至 {{rail}}`,railRunningStopFirst:`{{rail}} 正在运行 — 请先停止再移除`,removedFromRail:`已从 {{rail}} 移除`,queuedOnRail:`已在 {{rail}} 排队`,queuedOnRailDescription:`Rail 正在运行`,railStopped:`{{rail}} 已停止`,stopFailed:`停止 Rail 失败`,syncTicketsFailed:`同步 Rail 工单失败`,launchFailed:`启动 Rail 失败`,launchNetworkError:`启动 Rail 时网络错误`,railLaunched:`{{rail}} 已启动`,launchDescription_one:`{{mode}},共 {{count}} 个 Spec`,launchDescription_other:`{{mode}},共 {{count}} 个 Spec`,railWorktreeNeedsReview:`Rail {{n}}:合并后 spec #{{ticket}} 需要复查`,railWorktreesNoGit:`worktree 隔离不可用:该项目不是 git 仓库 — 以共享模式运行。`,railWorktreesNoCommits:`worktree 隔离不可用:仓库还没有任何提交 — 先做一次初始提交再重新启动。`,railWorktreesError:`Worktree 隔离失败 — 此次运行将在没有 PR 审查流程的情况下继续(无实施卡片)。请查看下方错误详情。`,onReviewCannotMoveToRail:`该 Spec 正在等待 PR 评审 — 请先处理 PR 决定`,onReviewNotLaunchable:`该 Rail 上有 Spec 正在等待 PR 评审 — 请先处理 PR 决定再启动`},t={operation:{inProgress:`操作进行中…`,"create-pr":`正在创建 PR…`,publish:`正在发布…`,discard:`正在丢弃…`,dismiss:`正在关闭后续任务…`,"poll-merge":`正在检查合并…`,reopen:`正在重新打开…`,"merge-local":`正在本地集成…`,"recover-and-retry":`正在提交并重新推送已保留的结果…`,"acknowledge-no-changes":`正在标记完成…`},markDone:`标记为完成`,refine:`细化`,completedToast:`已确认 — spec 已移至完成`,markDoneConfirmTitle:`将这些 spec 标记为完成?`,markDoneConfirmBody:`实现已确认无需更改代码。spec 将移至完成,并清理无更改的 worktree。`,refineConfirmTitle:`细化这些 spec?`,refineConfirmBody:`无更改结果将被关闭,spec 会返回待办列表以便细化。运行日志仍可查看。`,localOnly:`更改保存在本地`,localOnlyHint:`实现已完成,但更改尚未推送。请在本地集成,或在远程可用后重试发布。`,noChanges:`无需更改`,partial:`{{total}} 个实现中有 {{succeeded}} 个已就绪`,createPartialPr:`用 {{count}} 个结果创建 PR`,deliveryBlocked:`实现完成 — 交付需要处理`,updateFailed:`实现完成 — 更新失败`,retryPush:`重试推送`,retryPushVerified:`推送已验证 · 提交 {{sha}} 已在 PR 中`,commitAlreadyVerified:`提交 {{sha}} 已在 PR 中验证`,deliveryCommit:`提交 {{sha}}`,prClosed:`PR 已关闭但未合并`,reopen:`重新打开`,dismiss:`关闭后续任务`,discardLocalResult:`丢弃本地结果`,dismissConfirmTitle:`关闭此后续任务?`,dismissConfirmBody:`此后续卡片将被关闭。仅在仍可安全删除时才会移除其专用 worktree;否则将保留并显示警告。现有 PR、分支和审查状态不会改变。`,discardLocalConfirmTitle:`丢弃本地结果?`,discardLocalConfirmBody:`仅在仍可安全删除时才会移除可恢复的本地迭代;如果它已发生变化,将保留并显示警告。任何现有 PR 及其分支都不会改变。已删除的结果无法恢复。`,viewRunLog:`查看 {{ref}} 的运行日志`,cleanupIncomplete_one:`清理未完成({{count}} 条警告)`,cleanupIncomplete_other:`清理未完成({{count}} 条警告)`,cleanupIncompleteHint:`本地恢复数据已保留。手动删除任何内容前,请先检查以下详情。`,copyCleanupDetails:`复制恢复详情`,safetyArchiveTitle:`安全存档({{count}})`,safetyArchiveHint:`为安全起见,临时工作区文件已保存在 PR 之外。你可以检查或手动删除它们。`,copySafetyArchive:`复制路径`,unit:{failed:`实现失败`,blocked:`交付受阻`,noChanges:`无更改`,succeeded:`已就绪`},readyForReview:`评审就绪`,openReview:`审阅`,openReviewTooltip:`打开通俗语言的审阅`,draftPr:`草稿 PR`,branchPushed:`分支已推送 — PR 待创建`,branchPushedHint:`分支已推送,但无法创建 PR(GitHub CLI 不可用)。请重试以创建。`,iteratingPr:`正在更新 PR`,prReady:`PR 已就绪`,implementationFailed:`实现失败`,implementationFailedHint:`实现运行失败。请打开运行日志,然后在重新启动前丢弃此卡片。`,prFailed:`PR 失败`,prFailedDetail:`PR 失败:{{detail}}`,createDegraded:`无法发布 PR — {{detail}}。解决后请重试。`,createPr:`创建 PR`,createPrTooltip:`→ {{base}}`,publish:`发布`,publishTooltip:`将草稿 PR 开放给团队评审`,checkout:`检出分支`,checkoutTooltip:`在项目主目录检出 {{branch}}`,checkoutSuccess:`已检出 {{branch}}`,checkoutFailed:`无法检出实现分支`,checkoutDirtyTitle:`为保护你的更改,已阻止检出`,checkoutDirtyBody:`项目主目录中有未提交的更改。请先提交或暂存这些更改,然后重试。本次操作没有修改任何内容。`,checkoutSafetyUnknownTitle:`无法验证安全状态,已暂停检出`,checkoutSafetyUnknownBody:`Specrails 无法读取项目主目录的 Git 状态。没有释放或修改任何内容。请在 Git 恢复可用后重试。`,checkoutNotDeliverableTitle:`此分支不包含保留的实现`,checkoutNotDeliverableBody:`尚未验证本次交付的精确提交。请改为检查或恢复本地结果。`,inspectLocalResult:`检查本地结果`,inspectLocalResultTooltip:`显示已保留的隔离 worktree 并复制其路径`,localResultPathCopied:`已复制本地结果路径`,localResultPath:`已保留的本地结果`,localResultUnavailableHere:`此电脑上没有可恢复的 worktree。请在运行该任务的电脑上查看运行日志。`,recoverAndRetry:`提交并重试推送`,recoverAndRetryConfirmTitle:`提交并推送已保留的结果?`,recoverAndRetryConfirmBody:`Specrails 只会使用 {{branch}} 对应的隔离 worktree 或已记录且可快进的分支。必要时,它会提交可交付文件;仅当 PR 仍以预期的源分支和目标分支保持打开状态时,才会推送这个精确提交。不会触碰项目主目录及其中尚未提交的更改。`,recoverAndRetryVerified:`已恢复的提交 {{sha}} 已在 PR 中验证`,recoveryStillBlocked:`本地恢复仍需处理`,recheckRecovery:`再次检查`,recheckRecoveryConfirmTitle:`再次检查此计算机?`,recheckRecoveryConfirmBody:`Specrails 将在此克隆中重新扫描属于 {{branch}} 交付的 worktree、分支、refs、reflogs 和孤立 Git 对象。如果能证明唯一结果,它可以提交隔离的更改并重试精确 push。不会触碰主项目文件夹。`,recoveryUnavailable:`无法在此计算机上验证恢复结果`,recoveryUnavailableBody:`Specrails 无法在此克隆中安全证明唯一一个属于此次交付的结果。没有更改或删除任何内容。请检查阶段详情和运行日志。如果 run 在另一台计算机上执行,请在那里打开 Specrails,然后再次检查。`,recoveryDetailSummary:`恢复技术详情`,discard:`丢弃`,discardTooltip:`关闭交付并将工单退回 Specs;已修改的本地工作会保留`,retryPr:`重试 PR`,retry:`重试`,checkMerge:`检查合并`,verifyPr:`验证 PR`,verifyPrTooltip:`验证 GitHub 中的准确提交并检查 PR 是否已合并`,checkMergeTooltip:`向 GitHub 查询该 PR 是否已合并`,prLinkFallback:`PR`,openPrTitle:`在 GitHub 上打开该 PR`,notMergedYet:`尚未合并`,commitMissingRetry:`交付提交已不在 PR 中。你可以重新尝试推送。`,prVerifiedWaiting:`提交 {{sha}} 已验证 · 等待合并`,alreadyResolved:`已在其他地方处理`,ghFailed:`GitHub CLI 失败:{{detail}}`,actionFailed:`无法应用 PR 决定`,mergedToast:`PR 已合并 — 工单已移至完成`,discardedToast:`PR 已丢弃 — 工单已退回 Specs`,decisionPending:`该 Rail 有待处理的 PR 决定 — 请先创建、发布或丢弃,再重新启动`,discardConfirmTitle:`丢弃本次交付?`,discardConfirmBody:`PR 将关闭,但不会删除其远程分支。只会删除归 SpecRails 所有且仍停留在已记录提交上的本地分支和 worktree;任何已更改的内容都会保留并显示警告。工单将返回 Specs 待办列表。已删除的本地资源无法恢复。`,implementationFailedDiscardTitle:`丢弃此失败的交付?`,implementationFailedDiscardBody:`卡片将被关闭,工单会返回 Specs。本地工作和分支将保留以供检查。只有确认可安全清理的资源才可能被移除。`,mergeLocal:`本地集成`,mergeLocalTooltip:`将交付的分支合并到本地检出的 {{base}}(无需 GitHub)`,mergeLocalConfirmTitle:`本地集成?`,mergeLocalConfirmBody:`交付的分支将在本地合并到 {{base}}。现有更改会被保留;重叠的更改可能需要先解决才能集成。`,mergeLocalBlockedDirty:`无法集成:{{base}} 上的本地更改与交付内容重叠。请先提交或暂存这些更改,然后重试。`,mergeLocalBlockedBranch:`无法集成:当前检出在 {{current}},而不是 {{base}}。请切换到 {{base}} 后重试。`,mergeLocalFailed:`本地合并失败:{{detail}}`,mergedLocally:`已在本地集成到 {{base}}`,discardStackedNote:`此里程碑的后续轨道基于此交付构建。丢弃它会暂停里程碑链;后续轨道保留其工作。`},n={title:`Rails`,runningCount_one:`{{count}} 个运行中`,runningCount_other:`{{count}} 个运行中`,launchAll:`全部启动`,launchAllTitle:`并行启动所有就绪的 Rail — 每次运行都隔离在自己的 git worktree 中`},r={skipRunning_one:`{{count}} 个已在运行`,skipRunning_other:`{{count}} 个已在运行`,skipEmpty_one:`{{count}} 个没有 Spec`,skipEmpty_other:`{{count}} 个没有 Spec`,skipPendingDecision_one:`{{count}} 个等待 PR 决定`,skipPendingDecision_other:`{{count}} 个等待 PR 决定`,skipOnReview_one:`{{count}} 个包含审查中的 Spec`,skipOnReview_other:`{{count}} 个包含审查中的 Spec`,skipInFlight_one:`{{count}} 个已跳过(Spec 已在进行中)`,skipInFlight_other:`{{count}} 个已跳过(Spec 已在进行中)`,failedCount_one:`{{count}} 个失败`,failedCount_other:`{{count}} 个失败`},i={title:`启动所有 Rail`,railsCount_one:`{{count}} 个 Rail`,railsCount_other:`{{count}} 个 Rail`,specsCount_one:`{{count}} 个 Spec`,specsCount_other:`{{count}} 个 Spec`,isolationTitle:`并行且隔离。`,isolationBody:`每个 Rail 都在自己的 git worktree 中运行 — 同时启动永不冲突。`,pipelinesTitle_one:`{{count}} 条 AI 流水线。`,pipelinesTitle_other:`{{count}} 条 AI 流水线。`,pipelinesBody:`每个 Rail 启动一次,各自使用配置好的模式、引擎和 Profile。`,costTitle:`成本成倍增加。`,costBody:`每个 Rail 都会产生自己的 AI 运行 — 花费随 Rail 数量增长。`,launch_one:`启动 {{count}} 个 Rail`,launch_other:`启动 {{count}} 个 Rail`},a={viewJobLog:`查看任务日志`,log:`日志`,implement:`实现`,freestyle:`Freestyle`,freestyleTitle:`Freestyle — 所选提供方自主实现该 Spec,不走流水线`,loop:`Loop`,loopTitle:`Loop — 针对该轨道的 Spec 运行已发布的自动化循环`,pickLoop:`选择一个循环…`,effortTitle:`推理强度`,stop:`停止`,play:`运行`,failedRetry:`任务失败 — 点击重试`,addSpecsFirst:`请先向此 Rail 添加 Spec`,builtInLoops:`内置`,customLoops:`自定义循环`,worktreesMerged:`已合并 {{count}}`,worktreesNeedsReview:`{{count}} 需复查`,execSteps:`{{count}} 步`,execLines:`{{count}} 行`,openspec:`SDD Quick (OpenSpec)`},o={moveToSpecs:`移至 Specs`,deleteRail:`删除 {{label}}`,dropHere:`拖放到此处`,dropOnThisRail:`拖放到此 Rail`,dragSpecsHere:`将 Spec 拖到此处`},s={title:`以 Freestyle 模式启动`,context_one:`{{rail}} · {{count}} 个 Spec`,context_other:`{{rail}} · {{count}} 个 Spec`,noPipelineTitle:`无 OpenSpec 流水线。`,noPipelineBody:`完全跳过架构师 → 开发者 → 审查者的结构化流程。`,autonomyTitle:`{{provider}} 原生自主模式。`,autonomyBody:`{{provider}} 使用原生 Agent 和动态工作流自主工作。`,costTitle:`成本不固定。`,costBody:`花费取决于 {{provider}} 的决策 — 可能高于预期。`,continue:`继续`},c={fetchFailed:`获取 Rails 失败:{{status}}`},l={chipNew:`新 PR`,chipTitle:`交付到现有 PR`,clear:`清除目标 PR`,newPr:`新 PR(默认)`,loading:`正在加载打开的 PR…`,none:`未找到打开的 PR`,fork:`Fork — 无法推送`,manualPlaceholder:`PR 编号`,manualUse:`使用`,confirmTitle:`交付到现有 PR?`,confirmBody:`本次运行将在该 PR 的 head 分支上工作并推送到它 — 不会创建新 PR。`,confirmBranch:`Head 分支`,confirmLaunch:`启动并交付到 PR #{{number}}`,errors:{invalid_target_pr:`PR 编号无效`,target_pr_requires_pr_mode:`交付到现有 PR 需要隔离的 PR 流程`,target_pr_not_found:`在此仓库中未找到该 PR`,target_pr_not_open:`该 PR 已不再打开`,target_pr_fork:`该 PR 来自 fork,无法推送`,target_pr_invalid:`该 PR 的分支无法作为交付目标`,target_pr_unfetchable:`无法获取该 PR 的 head 分支`}},u={rolesNoFreestyle:`Freestyle 需要单一提供方——请先选择 Implement 或某个循环,再将此轨道切换为按角色引擎。`},d={toasts:e,railPr:t,railsBoard:n,launchAll:r,launchAllDialog:i,railControls:a,railRow:o,freestyleDialog:s,useRails:c,targetPr:l,rail:u};export{d as default,s as freestyleDialog,r as launchAll,i as launchAllDialog,u as rail,a as railControls,t as railPr,o as railRow,n as railsBoard,l as targetPr,e as toasts,c as useRails};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={railAdded:`Rail {{n}} adicionado`,railRemoved:`{{rail}} removido`,railLimitReached:`Limite de rails atingido ({{max}} máx.)`,railDeleteFailed:`Não foi possível remover o rail — ele contém specs, está em execução ou tem uma decisão de PR pendente`,launchTicketsInFlight:`Uma spec deste rail já está sendo trabalhada por uma execução ativa`,launchLegacyEngineUnavailable:`Este loop usa o motor antigo, que o Core instalado não executa mais. Abra-o em Loops e escolha Converter para Core.`,launchTicketCap:`Este trilho tem {{count}} specs — um lançamento aceita no máximo {{max}} por trilho. Distribua-as entre trilhos.`,launchAllSummary_one:`{{count}} rail lançado em paralelo`,launchAllSummary_other:`{{count}} rails lançados em paralelo`,launchAllNoneEligible:`Nenhum rail pronto para lançar — atribua specs a um rail livre primeiro`,launchAllFailed:`Nenhum rail pôde ser lançado`,railCompleted:`Rail {{n}} concluído`,railFailed:`Rail {{n}} falhou — specs devolvidas a Specs`,railEnded:`Rail {{n}} {{status}} — specs devolvidas a Specs`,alreadyOnRail:`Já está em {{rail}}`,movedToRail:`Movido para {{rail}}`,railRunningStopFirst:`{{rail}} está em execução — pare-o antes de remover`,removedFromRail:`Removido de {{rail}}`,queuedOnRail:`Em fila em {{rail}}`,queuedOnRailDescription:`O rail está atualmente em execução`,railStopped:`{{rail}} parado`,stopFailed:`Falha ao parar o rail`,syncTicketsFailed:`Falha ao sincronizar os tickets do rail`,launchFailed:`Falha ao lançar o rail`,launchNetworkError:`Erro de rede ao lançar o rail`,railLaunched:`{{rail}} lançado`,launchDescription_one:`{{mode}} com {{count}} spec`,launchDescription_other:`{{mode}} com {{count}} specs`,railWorktreeNeedsReview:`Rail {{n}}: a spec #{{ticket}} precisa de revisão após o merge`,railWorktreesNoGit:`Isolamento por worktree indisponível: este projeto não é um repositório git — executando em modo compartilhado.`,railWorktreesNoCommits:`Isolamento por worktree indisponível: o repositório ainda não tem commits — faça um commit inicial e relance.`,railWorktreesError:`O isolamento por worktrees falhou — esta execução continua SEM o fluxo de revisão por PR (sem cartão de implementação). Veja o detalhe do erro abaixo.`,onReviewCannotMoveToRail:`Esta spec aguarda revisão da PR — resolva primeiro a decisão da PR`,onReviewNotLaunchable:`Uma spec deste rail aguarda revisão da PR — resolva a decisão da PR antes de lançar`},t={operation:{inProgress:`Ação em andamento…`,"create-pr":`Criando PR…`,publish:`Publicando…`,discard:`Descartando…`,dismiss:`Encerrando acompanhamento…`,"poll-merge":`Verificando merge…`,reopen:`Reabrindo…`,"merge-local":`Integrando localmente…`,"recover-and-retry":`A criar o commit e a tentar novamente o push do resultado preservado…`,"acknowledge-no-changes":`Marcando como concluído…`},markDone:`Marcar como concluídas`,refine:`Refinar`,completedToast:`Confirmado — as specs foram movidas para Concluído`,markDoneConfirmTitle:`Marcar estas specs como concluídas?`,markDoneConfirmBody:`A implementação confirmou que nenhuma alteração de código é necessária. As specs serão movidas para Concluído e o worktree sem alterações será limpo.`,refineConfirmTitle:`Refinar estas specs?`,refineConfirmBody:`O resultado sem alterações será fechado e as specs voltarão ao backlog para refinamento. Os logs de execução permanecerão disponíveis.`,localOnly:`Alterações disponíveis localmente`,localOnlyHint:`A implementação foi concluída, mas as alterações não foram enviadas. Integre-as localmente ou tente publicar novamente quando o remoto estiver disponível.`,noChanges:`Nenhuma alteração necessária`,partial:`{{succeeded}} de {{total}} implementações prontas`,createPartialPr:`Criar PR com {{count}}`,deliveryBlocked:`Implementação concluída — a entrega requer atenção`,updateFailed:`Implementação concluída — falha na atualização`,retryPush:`Tentar push novamente`,retryPushVerified:`Push verificado · o commit {{sha}} está na PR`,commitAlreadyVerified:`O commit {{sha}} já está verificado na PR`,deliveryCommit:`commit {{sha}}`,prClosed:`PR fechada sem merge`,reopen:`Reabrir`,dismiss:`Encerrar acompanhamento`,discardLocalResult:`Descartar resultado local`,dismissConfirmTitle:`Encerrar este acompanhamento?`,dismissConfirmBody:`Este cartão de acompanhamento será encerrado. Seu worktree só será removido se isso ainda for seguro; caso contrário, será preservado com um aviso. A PR existente, seu branch e o estado da revisão permanecerão inalterados.`,discardLocalConfirmTitle:`Descartar o resultado local?`,discardLocalConfirmBody:`A iteração local recuperável só será removida se isso ainda for seguro; se tiver sido alterada, será preservada com um aviso. Qualquer PR existente e seu branch permanecerão inalterados. Um resultado removido não pode ser recuperado.`,viewRunLog:`Ver log de execução de {{ref}}`,cleanupIncomplete_one:`Limpeza incompleta ({{count}} aviso)`,cleanupIncomplete_other:`Limpeza incompleta ({{count}} avisos)`,cleanupIncompleteHint:`Os dados de recuperação locais foram preservados. Verifique estes detalhes antes de remover algo manualmente.`,copyCleanupDetails:`Copiar detalhes de recuperação`,safetyArchiveTitle:`Arquivo de segurança ({{count}})`,safetyArchiveHint:`Os ficheiros temporários do espaço de trabalho foram preservados fora da PR por precaução. Pode inspecioná-los ou removê-los manualmente.`,copySafetyArchive:`Copiar caminhos`,unit:{failed:`implementação falhou`,blocked:`entrega bloqueada`,noChanges:`sem alterações`,succeeded:`pronta`},readyForReview:`Pronto para revisão`,openReview:`Revisar`,openReviewTooltip:`Abrir a revisão em linguagem clara`,draftPr:`PR em rascunho`,branchPushed:`Ramo enviado — PR pendente`,branchPushedHint:`O ramo foi enviado mas não foi possível criar a PR (GitHub CLI indisponível). Tente novamente para a criar.`,iteratingPr:`A atualizar PR`,prReady:`PR pronta`,implementationFailed:`Implementação falhou`,implementationFailedHint:`A execução de implementação falhou. Abra o log da execução e descarte este cartão antes de relançar.`,prFailed:`PR falhou`,prFailedDetail:`PR falhou: {{detail}}`,createDegraded:`Não foi possível publicar a PR — {{detail}}. Tente novamente quando estiver resolvido.`,createPr:`Criar PR`,createPrTooltip:`→ {{base}}`,publish:`Publicar`,publishTooltip:`Abre a PR em rascunho para a revisão da equipa`,checkout:`Mudar para o branch`,checkoutTooltip:`Fazer checkout de {{branch}} na pasta principal do projeto`,checkoutSuccess:`Checkout feito em {{branch}}`,checkoutFailed:`Não foi possível fazer checkout da branch de implementação`,checkoutDirtyTitle:`Checkout bloqueado para proteger as suas alterações`,checkoutDirtyBody:`A pasta principal do projeto contém alterações sem commit. Faça commit ou stash e tente novamente. Não foi feita qualquer alteração.`,checkoutSafetyUnknownTitle:`Checkout em pausa porque não foi possível verificar a segurança`,checkoutSafetyUnknownBody:`O Specrails não conseguiu ler o estado do Git na pasta principal do projeto. Nada foi libertado ou alterado. Tente novamente quando o Git estiver disponível.`,checkoutNotDeliverableTitle:`Esta branch não contém a implementação preservada`,checkoutNotDeliverableBody:`O commit exato da entrega ainda não foi verificado. Em alternativa, inspecione ou recupere o resultado local.`,inspectLocalResult:`Inspecionar resultado local`,inspectLocalResultTooltip:`Mostrar o worktree isolado preservado e copiar o respetivo caminho`,localResultPathCopied:`Caminho do resultado local copiado`,localResultPath:`Resultado local preservado`,localResultUnavailableHere:`Não existe nenhum worktree recuperável neste computador. Consulte o log da execução no computador onde foi iniciada.`,recoverAndRetry:`Fazer commit e tentar push novamente`,recoverAndRetryConfirmTitle:`Fazer commit e enviar o resultado preservado?`,recoverAndRetryConfirmBody:`O Specrails utilizará apenas o worktree isolado ou o ramo registado compatível com avanço rápido para {{branch}}. Se necessário, criará um commit com os ficheiros entregáveis e enviará esse commit exato apenas se a PR continuar aberta nos ramos de origem e destino esperados. A pasta principal do projeto e as respetivas alterações sem commit não serão afetadas.`,recoverAndRetryVerified:`O commit recuperado {{sha}} está verificado na PR`,recoveryStillBlocked:`A recuperação local ainda requer atenção`,recheckRecovery:`Verificar novamente`,recheckRecoveryConfirmTitle:`Verificar este computador novamente?`,recheckRecoveryConfirmBody:`O Specrails examinará novamente neste clone o worktree, a branch, as refs, os reflogs e os objetos Git órfãos pertencentes à entrega de {{branch}}. Se comprovar um único resultado, poderá fazer commit das alterações isoladas e repetir o push exato. A pasta principal do projeto não será alterada.`,recoveryUnavailable:`Não foi possível verificar a recuperação neste computador`,recoveryUnavailableBody:`O Specrails não conseguiu comprovar com segurança um único resultado pertencente à entrega neste clone. Nada foi alterado ou removido. Consulte os detalhes da etapa e os registos de execução. Se o run foi executado noutro computador, abra o Specrails nele e verifique novamente.`,recoveryDetailSummary:`Detalhe técnico da recuperação`,discard:`Descartar`,discardTooltip:`Fecha a entrega e devolve os tickets a Specs; o trabalho local alterado é preservado`,retryPr:`Tentar PR novamente`,retry:`Tentar novamente`,checkMerge:`Verificar merge`,verifyPr:`Verificar PR`,verifyPrTooltip:`Verificar o commit exato no GitHub e se a PR foi integrada`,checkMergeTooltip:`Pergunta ao GitHub se já foi feito merge da PR`,prLinkFallback:`PR`,openPrTitle:`Abrir a PR no GitHub`,notMergedYet:`Ainda sem merge`,commitMissingRetry:`O commit da entrega não está mais na PR. Você pode tentar o push novamente.`,prVerifiedWaiting:`Commit {{sha}} verificado · aguardando merge`,alreadyResolved:`Já resolvida noutro lugar`,ghFailed:`GitHub CLI falhou: {{detail}}`,actionFailed:`Não foi possível aplicar a decisão da PR`,mergedToast:`Merge da PR concluído — tickets movidos para Concluído`,discardedToast:`PR descartada — tickets devolvidos a Specs`,decisionPending:`Este rail tem uma decisão de PR pendente — crie, publique ou descarte-a antes de relançar`,discardConfirmTitle:`Descartar esta entrega?`,discardConfirmBody:`A PR será fechada sem excluir o branch remoto. Apenas branches locais e worktrees pertencentes ao SpecRails que ainda estejam no commit registrado serão removidos; qualquer item alterado será preservado com um aviso. Os tickets voltarão ao backlog de Specs. Os recursos locais removidos não podem ser recuperados.`,implementationFailedDiscardTitle:`Descartar esta entrega com falha?`,implementationFailedDiscardBody:`O cartão será fechado e os tickets voltarão a Specs. O trabalho local e os branches serão preservados para inspeção. Apenas recursos comprovadamente seguros para limpeza poderão ser removidos.`,mergeLocal:`Integrar localmente`,mergeLocalTooltip:`Faz merge dos branches entregues em {{base}} no seu checkout local (sem GitHub)`,mergeLocalConfirmTitle:`Integrar localmente?`,mergeLocalConfirmBody:`As branches entregues serão integradas em {{base}} localmente. As alterações existentes são preservadas; alterações sobrepostas podem precisar de resolução antes da integração.`,mergeLocalBlockedDirty:`Não é possível integrar: as alterações locais em {{base}} sobrepõem-se à entrega. Faça commit ou stash dessas alterações e tente novamente.`,mergeLocalBlockedBranch:`Não é possível integrar: seu checkout está em {{current}}, não em {{base}}. Mude para {{base}} e tente de novo.`,mergeLocalFailed:`O merge local falhou: {{detail}}`,mergedLocally:`Integrado em {{base}} localmente`,discardStackedNote:`Os rails seguintes deste marco foram construídos sobre esta entrega. Descartá-la pausa a cadeia do marco; os rails seguintes mantêm o seu trabalho.`},n={title:`Rails`,runningCount_one:`{{count}} em execução`,runningCount_other:`{{count}} em execução`,launchAll:`Lançar todos`,launchAllTitle:`Lança em paralelo todos os rails prontos — cada execução é isolada em seu próprio worktree do git`},r={skipRunning_one:`{{count}} já em execução`,skipRunning_other:`{{count}} já em execução`,skipEmpty_one:`{{count}} sem specs`,skipEmpty_other:`{{count}} sem specs`,skipPendingDecision_one:`{{count}} aguardando uma decisão de PR`,skipPendingDecision_other:`{{count}} aguardando uma decisão de PR`,skipOnReview_one:`{{count}} com specs em revisão`,skipOnReview_other:`{{count}} com specs em revisão`,skipInFlight_one:`{{count}} ignorado (spec já em andamento)`,skipInFlight_other:`{{count}} ignorados (specs já em andamento)`,failedCount_one:`{{count}} falhou`,failedCount_other:`{{count}} falharam`},i={title:`Lançar todos os rails`,railsCount_one:`{{count}} rail`,railsCount_other:`{{count}} rails`,specsCount_one:`{{count}} spec`,specsCount_other:`{{count}} specs`,isolationTitle:`Paralelo e isolado.`,isolationBody:`Cada rail roda em seu próprio worktree do git — lançamentos simultâneos nunca colidem.`,pipelinesTitle_one:`{{count}} pipeline de IA.`,pipelinesTitle_other:`{{count}} pipelines de IA.`,pipelinesBody:`Um lançamento por rail, cada um com seu modo, motor e perfil configurados.`,costTitle:`Custo multiplicado.`,costBody:`Cada rail gera sua própria execução de IA — o gasto escala com o número de rails.`,launch_one:`Lançar {{count}} rail`,launch_other:`Lançar {{count}} rails`},a={viewJobLog:`Ver log do job`,log:`Log`,implement:`Implementar`,freestyle:`Freestyle`,freestyleTitle:`Freestyle — o fornecedor selecionado implementa a spec de forma autónoma, sem pipeline`,loop:`Loop`,loopTitle:`Loop — execute um loop de automação publicado nas specs do rail`,pickLoop:`Escolha um loop…`,effortTitle:`Esforço de raciocínio`,stop:`Parar`,play:`Iniciar`,failedRetry:`O job falhou — clique para repetir`,addSpecsFirst:`Adicione primeiro specs a este rail`,builtInLoops:`Integrados`,customLoops:`Loops personalizados`,worktreesMerged:`{{count}} mesclados`,worktreesNeedsReview:`{{count}} para revisar`,execSteps:`{{count}} passos`,execLines:`{{count}} linhas`,openspec:`SDD Quick (OpenSpec)`},o={moveToSpecs:`Mover para Specs`,deleteRail:`Eliminar {{label}}`,dropHere:`Largar aqui`,dropOnThisRail:`Largar neste rail`,dragSpecsHere:`Arraste specs para aqui`},s={title:`Lançar em modo Freestyle`,context_one:`{{rail}} · {{count}} spec`,context_other:`{{rail}} · {{count}} specs`,noPipelineTitle:`Sem pipeline OpenSpec.`,noPipelineBody:`O fluxo estruturado architect → developer → reviewer é totalmente ignorado.`,autonomyTitle:`Autonomia nativa do {{provider}}.`,autonomyBody:`O {{provider}} trabalha por conta própria com agentes nativos e workflows dinâmicos.`,costTitle:`Custo variável.`,costBody:`O gasto depende do que o {{provider}} decidir fazer — pode ser superior ao esperado.`,continue:`Continuar`},c={fetchFailed:`Falha ao obter os rails: {{status}}`},l={chipNew:`PR nova`,chipTitle:`Entregar em uma PR existente`,clear:`Remover PR alvo`,newPr:`PR nova (padrão)`,loading:`Carregando PRs abertas…`,none:`Nenhuma PR aberta encontrada`,fork:`Fork — não é possível fazer push`,manualPlaceholder:`Número da PR`,manualUse:`Usar`,confirmTitle:`Entregar na PR existente?`,confirmBody:`Esta execução trabalha na branch head da PR e faz push nela — nenhuma PR nova é criada.`,confirmBranch:`Branch head`,confirmLaunch:`Lançar para a PR #{{number}}`,errors:{invalid_target_pr:`Número de PR inválido`,target_pr_requires_pr_mode:`Entregar em uma PR existente exige o fluxo isolado de PR`,target_pr_not_found:`PR não encontrada neste repositório`,target_pr_not_open:`Essa PR não está mais aberta`,target_pr_fork:`Essa PR vem de um fork e não pode receber push`,target_pr_invalid:`As branches da PR não servem como destino de entrega`,target_pr_unfetchable:`Não foi possível buscar a branch head da PR`}},u={rolesNoFreestyle:`O Freestyle precisa de um único provedor — escolha Implement ou um loop antes de mudar este rail para motores por papel.`},d={toasts:e,railPr:t,railsBoard:n,launchAll:r,launchAllDialog:i,railControls:a,railRow:o,freestyleDialog:s,useRails:c,targetPr:l,rail:u};export{d as default,s as freestyleDialog,r as launchAll,i as launchAllDialog,u as rail,a as railControls,t as railPr,o as railRow,n as railsBoard,l as targetPr,e as toasts,c as useRails};
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-CNC7AqOf.js";import{n as t,t as n}from"./jsx-runtime-BbYvbtY8.js";import{t as r}from"./react-dom-DDD8FYaU.js";import{n as i}from"./createLucideIcon-DtODIU64.js";import{t as a}from"./x-Bu7X_eR2.js";import{t as o}from"./utils-BC4DHlz2.js";var s=e(t(),1),c=e(r(),1),l=n(),u=[`nw`,`n`,`ne`,`e`,`se`,`s`,`sw`,`w`],d={nw:{left:!0,top:!0},n:{top:!0},ne:{right:!0,top:!0},e:{right:!0},se:{right:!0,bottom:!0},s:{bottom:!0},sw:{left:!0,bottom:!0},w:{left:!0}};function f(e){return e===`n`||e===`s`?`horizontal`:`vertical`}function p(e,t,n){return Math.min(Math.max(e,t),Math.max(t,n))}function m(e,t,n,r){return{w:p(e,r.minWidth,n.width-16),h:p(t,r.minHeight,n.height-(n.topInset??0)-16)}}function h(e,t){if(t.topInset){let n=Math.min(e.w,Math.max(1,t.width-16)),r=Math.min(e.h,Math.max(1,t.height-t.topInset-16));return{w:n,h:r,x:p(e.x,16/2,Math.max(16/2,t.width-n-16/2)),y:p(e.y,t.topInset,Math.max(t.topInset,t.height-r-16))}}let n=p(e.x,120-e.w,t.width-e.w),r=p(e.y,0,Math.max(0,t.height-48));return{...e,x:n,y:r}}function g(e,t,n,r){return h({...e,x:e.x+t,y:e.y+n},r)}function _(e,t,n,r,i,a){let o=d[t],s=e.x+e.w,c=e.y+e.h,l=e.w,u=e.h;o.right&&(l=e.w+n),o.left&&(l=e.w-n),o.bottom&&(u=e.h+r),o.top&&(u=e.h-r);let f=m(l,u,i,a),p=e.x,g=e.y;return o.left&&(p=s-f.w),o.top&&(g=c-f.h),h({x:p,y:g,w:f.w,h:f.h},i)}function ee(e,t,n,r,i){let a=d[t],o=a.left||a.right,s=a.top||a.bottom,c=o?n===`min`?i.minWidth:r.width-16:e.w,l=s?n===`min`?i.minHeight:r.height-(r.topInset??0)-16:e.h,u=e.x+e.w,f=e.y+e.h,p=m(c,l,r,i);return h({x:a.left?u-p.w:e.x,y:a.top?f-p.h:e.y,w:p.w,h:p.h},r)}function v(e){return{x:e.left,y:e.top,w:e.width,h:e.height}}function y(e,t){return{w:e.width,h:e.height,x:Math.round((t.width-e.width)/2),y:Math.max(t.topInset??0,Math.round(((t.topInset??0)+t.height-e.height)/2))}}function te(e,t){let{x:n,y:r,w:i,h:a}=t,o=Math.max(0,i-24),s=Math.max(0,a-24);switch(e){case`nw`:return{left:n-14/2,top:r-14/2,width:14,height:14};case`ne`:return{left:n+i-14/2,top:r-14/2,width:14,height:14};case`se`:return{left:n+i-14/2,top:r+a-14/2,width:14,height:14};case`sw`:return{left:n-14/2,top:r+a-14/2,width:14,height:14};case`n`:return{left:n+12,top:r-8/2,width:o,height:8};case`s`:return{left:n+12,top:r+a-8/2,width:o,height:8};case`e`:return{left:n+i-8/2,top:r+12,width:8,height:s};case`w`:return{left:n-8/2,top:r+12,width:8,height:s}}}function b(e,t,n){let r=d[e],i=r.left||r.right,a=r.top||r.bottom;switch(t){case`ArrowRight`:return i?{dx:n,dy:0}:null;case`ArrowLeft`:return i?{dx:-n,dy:0}:null;case`ArrowDown`:return a?{dx:0,dy:n}:null;case`ArrowUp`:return a?{dx:0,dy:-n}:null;default:return null}}function x(){return typeof window<`u`&&`__TAURI_INTERNALS__`in window?28:0}function S(){return{top:x()}}function C(){let e=x();return{top:`calc(50% + ${e/2}px)`,maxHeight:`min(85dvh, calc(100dvh - ${e}px - 32px))`}}var ne=64;function w(){if(typeof window>`u`)return{width:0,height:0};let e=x();return{width:window.innerWidth,height:window.innerHeight,topInset:e?e+16:0}}var re=`button, input, textarea, select, a, [role="button"], [contenteditable="true"]`;function T(e={}){let{enabled:t=!0,allowMove:n=!0,minWidth:r=320,minHeight:i=200,anchorFromCurrentRect:a=!1,persistKey:o}=e,c=(0,s.useRef)(null),[l,d]=(0,s.useState)(null),p=(0,s.useCallback)(e=>{c.current=e,d(e)},[]),[m,x]=(0,s.useState)(()=>{if(!o||typeof window>`u`)return null;try{let e=window.localStorage.getItem(o);if(!e)return null;let t=JSON.parse(e);if([t?.x,t?.y,t?.w,t?.h].every(e=>typeof e==`number`&&Number.isFinite(e))&&t.w>0&&t.h>0)return h(t,w())}catch{}return null}),[S,C]=(0,s.useState)(null),[T,ie]=(0,s.useState)(()=>typeof window>`u`||window.innerWidth>=900),E=(0,s.useRef)(null),D=(0,s.useRef)(null),O=(0,s.useRef)(!1),k=(0,s.useRef)(null),A=(0,s.useRef)(!1);D.current=m;let j={minWidth:r,minHeight:i},M=t&&T;(0,s.useEffect)(()=>{function e(){let e=window.innerWidth>=900;ie(e),e||x(null)}return window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]),(0,s.useEffect)(()=>{t||x(null)},[t]),(0,s.useEffect)(()=>{if(!(!o||typeof window>`u`||!m))try{window.localStorage.setItem(o,JSON.stringify(m))}catch{}},[m,o]),(0,s.useEffect)(()=>{if(!M||m!==null){C(null);return}let e=c.current;if(!e)return;let t=()=>C(v(e.getBoundingClientRect()));t();let n;return typeof ResizeObserver<`u`&&(n=new ResizeObserver(t),n.observe(e)),window.addEventListener(`resize`,t),window.addEventListener(`scroll`,t,!0),()=>{n?.disconnect(),window.removeEventListener(`resize`,t),window.removeEventListener(`scroll`,t,!0)}},[M,m,l]);let ae=(0,s.useCallback)(e=>{k.current=e,!O.current&&(O.current=!0,requestAnimationFrame(()=>{O.current=!1,k.current&&x(k.current)}))},[]),N=(0,s.useCallback)(e=>{let t=E.current;if(!t)return;let n=w(),r=e.clientX-t.startX,i=e.clientY-t.startY,a=t.mode===`move`?g(t.startGeom,r,i,n):_(t.startGeom,t.position,r,i,n,j);ae(a)},[ae,j.minWidth,j.minHeight]),P=(0,s.useCallback)(()=>{let e=E.current;if(e){try{e.element.releasePointerCapture(e.pointerId)}catch{}E.current=null,A.current=!0,setTimeout(()=>{A.current=!1},0),k.current&&x(k.current),window.removeEventListener(`pointermove`,N),window.removeEventListener(`pointerup`,P),window.removeEventListener(`pointercancel`,P)}},[N]),F=(0,s.useCallback)((e,t)=>{if(!M||e.button!==0)return;let n=c.current;if(!n)return;let r=D.current;if(!r){let e=n.getBoundingClientRect();if(e.width<=0||e.height<=0)return;r=h(a?v(e):y(e,w()),w())}D.current=r,k.current=r;let i=t(r);E.current=i;try{i.element.setPointerCapture(i.pointerId)}catch{}x(r),window.addEventListener(`pointermove`,N),window.addEventListener(`pointerup`,P),window.addEventListener(`pointercancel`,P)},[M,N,P,a]),I=(0,s.useCallback)(e=>{if(!n||e.target.closest(re))return;let t=c.current;t&&e.clientY-t.getBoundingClientRect().top>ne||F(e,t=>({mode:`move`,startX:e.clientX,startY:e.clientY,startGeom:t,pointerId:e.pointerId,element:e.currentTarget}))},[n,F]),oe=(0,s.useCallback)(e=>t=>{t.stopPropagation(),F(t,n=>({mode:`resize`,position:e,startX:t.clientX,startY:t.clientY,startGeom:n,pointerId:t.pointerId,element:t.currentTarget}))},[F]),L=(0,s.useCallback)(()=>x(null),[]),se=(0,s.useCallback)(e=>(...t)=>{A.current||e(...t)},[]),ce=(0,s.useCallback)(e=>t=>{if(!M)return;if(t.key===`0`){t.preventDefault(),L();return}let n=c.current;if(!n)return;let r=w(),i=D.current??v(n.getBoundingClientRect());if(t.key===`Home`||t.key===`End`){t.preventDefault(),x(ee(i,e,t.key===`Home`?`min`:`max`,r,j));return}let a=t.shiftKey?64:16,o=b(e,t.key,a);o&&(t.preventDefault(),x(_(i,e,o.dx,o.dy,r,j)))},[M,L,j.minWidth,j.minHeight]);(0,s.useEffect)(()=>{if(!m||!T)return;function e(){let e=D.current;e&&x(h(e,w()))}return window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[m,T]),(0,s.useEffect)(()=>()=>{window.removeEventListener(`pointermove`,N),window.removeEventListener(`pointerup`,P),window.removeEventListener(`pointercancel`,P);let e=E.current;if(e){try{e.element.releasePointerCapture(e.pointerId)}catch{}E.current=null}},[N,P]);let le=M&&m!==null,ue=le&&m?{position:`fixed`,left:m.x,top:m.y,width:m.w,height:m.h,maxWidth:`none`,maxHeight:`none`,margin:0,transform:`none`,animation:`none`}:{},de=le?m:S,fe=M&&de?u.map(e=>({position:e,role:`separator`,"aria-orientation":f(e),tabIndex:0,style:{position:`fixed`,...te(e,de)},onPointerDown:oe(e),onKeyDown:ce(e)})):[];return{panelRef:p,panelStyle:ue,headerHandleProps:{onPointerDown:I},resizeHandles:fe,isFloating:le,enabled:M,reset:L,guardBackdrop:se}}var ie={nw:`cursor-nwse-resize`,n:`cursor-ns-resize`,ne:`cursor-nesw-resize`,e:`cursor-ew-resize`,se:`cursor-nwse-resize`,s:`cursor-ns-resize`,sw:`cursor-nesw-resize`,w:`cursor-ew-resize`};function E({handles:e}){let{t}=i(`common`);return e.length===0?null:(0,l.jsx)(l.Fragment,{children:e.map(e=>(0,l.jsx)(`div`,{"data-testid":`modal-resize-${e.position}`,role:e.role,"aria-orientation":e[`aria-orientation`],"aria-label":t(`modal.resize.${e.position}`),tabIndex:e.tabIndex,style:e.style,onPointerDown:e.onPointerDown,onKeyDown:e.onKeyDown,className:o(`z-[51] rounded-full bg-transparent transition-colors duration-150`,`hover:bg-accent-primary/20 focus:outline-none focus-visible:bg-accent-primary/30`,ie[e.position])},e.position))})}function D(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}function O(...e){return t=>{let n=!1,r=e.map(e=>{let r=D(e,t);return!n&&typeof r==`function`&&(n=!0),r});if(n)return()=>{for(let t=0;t<r.length;t++){let n=r[t];typeof n==`function`?n():D(e[t],null)}}}}function k(...e){return s.useCallback(O(...e),e)}typeof window<`u`&&window.document&&window.document.createElement;function A(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),n===!1||!r.defaultPrevented)return t?.(r)}}function j(e,t){let n=s.createContext(t),r=e=>{let{children:t,...r}=e,i=s.useMemo(()=>r,Object.values(r));return(0,l.jsx)(n.Provider,{value:i,children:t})};r.displayName=e+`Provider`;function i(r){let i=s.useContext(n);if(i)return i;if(t!==void 0)return t;throw Error(`\`${r}\` must be used within \`${e}\``)}return[r,i]}function M(e,t=[]){let n=[];function r(t,r){let i=s.createContext(r),a=n.length;n=[...n,r];let o=t=>{let{scope:n,children:r,...o}=t,c=n?.[e]?.[a]||i,u=s.useMemo(()=>o,Object.values(o));return(0,l.jsx)(c.Provider,{value:u,children:r})};o.displayName=t+`Provider`;function c(n,o){let c=o?.[e]?.[a]||i,l=s.useContext(c);if(l)return l;if(r!==void 0)return r;throw Error(`\`${n}\` must be used within \`${t}\``)}return[o,c]}let i=()=>{let t=n.map(e=>s.createContext(e));return function(n){let r=n?.[e]||t;return s.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])}};return i.scopeName=e,[r,ae(i,...t)]}function ae(...e){let t=e[0];if(e.length===1)return t;let n=()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let r=n.reduce((t,{useScope:n,scopeName:r})=>{let i=n(e)[`__scope${r}`];return{...t,...i}},{});return s.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])}};return n.scopeName=t.scopeName,n}var N=globalThis?.document?s.useLayoutEffect:()=>{},P=s.useId||(()=>void 0),F=0;function I(e){let[t,n]=s.useState(P());return N(()=>{e||n(e=>e??String(F++))},[e]),e||(t?`radix-${t}`:``)}var oe=s.useInsertionEffect||N;function L({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){let[i,a,o]=se({defaultProp:t,onChange:n}),c=e!==void 0,l=c?e:i;{let t=s.useRef(e!==void 0);s.useEffect(()=>{let e=t.current;e!==c&&console.warn(`${r} is changing from ${e?`controlled`:`uncontrolled`} to ${c?`controlled`:`uncontrolled`}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),t.current=c},[c,r])}return[l,s.useCallback(t=>{if(c){let n=ce(t)?t(e):t;n!==e&&o.current?.(n)}else a(t)},[c,e,a,o])]}function se({defaultProp:e,onChange:t}){let[n,r]=s.useState(e),i=s.useRef(n),a=s.useRef(t);return oe(()=>{a.current=t},[t]),s.useEffect(()=>{i.current!==n&&(a.current?.(n),i.current=n)},[n,i]),[n,r,a]}function ce(e){return typeof e==`function`}function le(e){let t=ue(e),n=s.forwardRef((e,n)=>{let{children:r,...i}=e,a=s.Children.toArray(r),o=a.find(fe);if(o){let e=o.props.children,r=a.map(t=>t===o?s.Children.count(e)>1?s.Children.only(null):s.isValidElement(e)?e.props.children:null:t);return(0,l.jsx)(t,{...i,ref:n,children:s.isValidElement(e)?s.cloneElement(e,void 0,r):null})}return(0,l.jsx)(t,{...i,ref:n,children:r})});return n.displayName=`${e}.Slot`,n}function ue(e){let t=s.forwardRef((e,t)=>{let{children:n,...r}=e;if(s.isValidElement(n)){let e=me(n),i=pe(r,n.props);return n.type!==s.Fragment&&(i.ref=t?O(t,e):e),s.cloneElement(n,i)}return s.Children.count(n)>1?s.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var de=Symbol(`radix.slottable`);function fe(e){return s.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===de}function pe(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}function me(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var R=[`a`,`button`,`div`,`form`,`h2`,`h3`,`img`,`input`,`label`,`li`,`nav`,`ol`,`p`,`select`,`span`,`svg`,`ul`].reduce((e,t)=>{let n=le(`Primitive.${t}`),r=s.forwardRef((e,r)=>{let{asChild:i,...a}=e,o=i?n:t;return typeof window<`u`&&(window[Symbol.for(`radix-ui`)]=!0),(0,l.jsx)(o,{...a,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function he(e,t){e&&c.flushSync(()=>e.dispatchEvent(t))}function z(e){let t=s.useRef(e);return s.useEffect(()=>{t.current=e}),s.useMemo(()=>(...e)=>t.current?.(...e),[])}function ge(e,t=globalThis?.document){let n=z(e);s.useEffect(()=>{let e=e=>{e.key===`Escape`&&n(e)};return t.addEventListener(`keydown`,e,{capture:!0}),()=>t.removeEventListener(`keydown`,e,{capture:!0})},[n,t])}var _e=`DismissableLayer`,ve=`dismissableLayer.update`,ye=`dismissableLayer.pointerDownOutside`,be=`dismissableLayer.focusOutside`,xe,Se=s.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Ce=s.forwardRef((e,t)=>{let{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:i,onFocusOutside:a,onInteractOutside:o,onDismiss:c,...u}=e,d=s.useContext(Se),[f,p]=s.useState(null),m=f?.ownerDocument??globalThis?.document,[,h]=s.useState({}),g=k(t,e=>p(e)),_=Array.from(d.layers),[ee]=[...d.layersWithOutsidePointerEventsDisabled].slice(-1),v=_.indexOf(ee),y=f?_.indexOf(f):-1,te=d.layersWithOutsidePointerEventsDisabled.size>0,b=y>=v,x=Ee(e=>{let t=e.target,n=[...d.branches].some(e=>e.contains(t));!b||n||(i?.(e),o?.(e),e.defaultPrevented||c?.())},m),S=De(e=>{let t=e.target;[...d.branches].some(e=>e.contains(t))||(a?.(e),o?.(e),e.defaultPrevented||c?.())},m);return ge(e=>{y===d.layers.size-1&&(r?.(e),!e.defaultPrevented&&c&&(e.preventDefault(),c()))},m),s.useEffect(()=>{if(f)return n&&(d.layersWithOutsidePointerEventsDisabled.size===0&&(xe=m.body.style.pointerEvents,m.body.style.pointerEvents=`none`),d.layersWithOutsidePointerEventsDisabled.add(f)),d.layers.add(f),Oe(),()=>{n&&d.layersWithOutsidePointerEventsDisabled.size===1&&(m.body.style.pointerEvents=xe)}},[f,m,n,d]),s.useEffect(()=>()=>{f&&(d.layers.delete(f),d.layersWithOutsidePointerEventsDisabled.delete(f),Oe())},[f,d]),s.useEffect(()=>{let e=()=>h({});return document.addEventListener(ve,e),()=>document.removeEventListener(ve,e)},[]),(0,l.jsx)(R.div,{...u,ref:g,style:{pointerEvents:te?b?`auto`:`none`:void 0,...e.style},onFocusCapture:A(e.onFocusCapture,S.onFocusCapture),onBlurCapture:A(e.onBlurCapture,S.onBlurCapture),onPointerDownCapture:A(e.onPointerDownCapture,x.onPointerDownCapture)})});Ce.displayName=_e;var we=`DismissableLayerBranch`,Te=s.forwardRef((e,t)=>{let n=s.useContext(Se),r=s.useRef(null),i=k(t,r);return s.useEffect(()=>{let e=r.current;if(e)return n.branches.add(e),()=>{n.branches.delete(e)}},[n.branches]),(0,l.jsx)(R.div,{...e,ref:i})});Te.displayName=we;function Ee(e,t=globalThis?.document){let n=z(e),r=s.useRef(!1),i=s.useRef(()=>{});return s.useEffect(()=>{let e=e=>{if(e.target&&!r.current){let r=function(){ke(ye,n,a,{discrete:!0})},a={originalEvent:e};e.pointerType===`touch`?(t.removeEventListener(`click`,i.current),i.current=r,t.addEventListener(`click`,i.current,{once:!0})):r()}else t.removeEventListener(`click`,i.current);r.current=!1},a=window.setTimeout(()=>{t.addEventListener(`pointerdown`,e)},0);return()=>{window.clearTimeout(a),t.removeEventListener(`pointerdown`,e),t.removeEventListener(`click`,i.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function De(e,t=globalThis?.document){let n=z(e),r=s.useRef(!1);return s.useEffect(()=>{let e=e=>{e.target&&!r.current&&ke(be,n,{originalEvent:e},{discrete:!1})};return t.addEventListener(`focusin`,e),()=>t.removeEventListener(`focusin`,e)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function Oe(){let e=new CustomEvent(ve);document.dispatchEvent(e)}function ke(e,t,n,{discrete:r}){let i=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?he(i,a):i.dispatchEvent(a)}var Ae=`focusScope.autoFocusOnMount`,je=`focusScope.autoFocusOnUnmount`,Me={bubbles:!1,cancelable:!0},Ne=`FocusScope`,Pe=s.forwardRef((e,t)=>{let{loop:n=!1,trapped:r=!1,onMountAutoFocus:i,onUnmountAutoFocus:a,...o}=e,[c,u]=s.useState(null),d=z(i),f=z(a),p=s.useRef(null),m=k(t,e=>u(e)),h=s.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;s.useEffect(()=>{if(r){let e=function(e){if(h.paused||!c)return;let t=e.target;c.contains(t)?p.current=t:B(p.current,{select:!0})},t=function(e){if(h.paused||!c)return;let t=e.relatedTarget;t!==null&&(c.contains(t)||B(p.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&B(c)};document.addEventListener(`focusin`,e),document.addEventListener(`focusout`,t);let r=new MutationObserver(n);return c&&r.observe(c,{childList:!0,subtree:!0}),()=>{document.removeEventListener(`focusin`,e),document.removeEventListener(`focusout`,t),r.disconnect()}}},[r,c,h.paused]),s.useEffect(()=>{if(c){Ve.add(h);let e=document.activeElement;if(!c.contains(e)){let t=new CustomEvent(Ae,Me);c.addEventListener(Ae,d),c.dispatchEvent(t),t.defaultPrevented||(Fe(We(Le(c)),{select:!0}),document.activeElement===e&&B(c))}return()=>{c.removeEventListener(Ae,d),setTimeout(()=>{let t=new CustomEvent(je,Me);c.addEventListener(je,f),c.dispatchEvent(t),t.defaultPrevented||B(e??document.body,{select:!0}),c.removeEventListener(je,f),Ve.remove(h)},0)}}},[c,d,f,h]);let g=s.useCallback(e=>{if(!n&&!r||h.paused)return;let t=e.key===`Tab`&&!e.altKey&&!e.ctrlKey&&!e.metaKey,i=document.activeElement;if(t&&i){let t=e.currentTarget,[r,a]=Ie(t);r&&a?!e.shiftKey&&i===a?(e.preventDefault(),n&&B(r,{select:!0})):e.shiftKey&&i===r&&(e.preventDefault(),n&&B(a,{select:!0})):i===t&&e.preventDefault()}},[n,r,h.paused]);return(0,l.jsx)(R.div,{tabIndex:-1,...o,ref:m,onKeyDown:g})});Pe.displayName=Ne;function Fe(e,{select:t=!1}={}){let n=document.activeElement;for(let r of e)if(B(r,{select:t}),document.activeElement!==n)return}function Ie(e){let t=Le(e);return[Re(t,e),Re(t.reverse(),e)]}function Le(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function Re(e,t){for(let n of e)if(!ze(n,{upTo:t}))return n}function ze(e,{upTo:t}){if(getComputedStyle(e).visibility===`hidden`)return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display===`none`)return!0;e=e.parentElement}return!1}function Be(e){return e instanceof HTMLInputElement&&`select`in e}function B(e,{select:t=!1}={}){if(e&&e.focus){let n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&Be(e)&&t&&e.select()}}var Ve=He();function He(){let e=[];return{add(t){let n=e[0];t!==n&&n?.pause(),e=Ue(e,t),e.unshift(t)},remove(t){e=Ue(e,t),e[0]?.resume()}}}function Ue(e,t){let n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function We(e){return e.filter(e=>e.tagName!==`A`)}var Ge=`Portal`,Ke=s.forwardRef((e,t)=>{let{container:n,...r}=e,[i,a]=s.useState(!1);N(()=>a(!0),[]);let o=n||i&&globalThis?.document?.body;return o?c.createPortal((0,l.jsx)(R.div,{...r,ref:t}),o):null});Ke.displayName=Ge;function qe(e,t){return s.useReducer((e,n)=>t[e][n]??e,e)}var V=e=>{let{present:t,children:n}=e,r=Je(t),i=typeof n==`function`?n({present:r.isPresent}):s.Children.only(n),a=k(r.ref,Ye(i));return typeof n==`function`||r.isPresent?s.cloneElement(i,{ref:a}):null};V.displayName=`Presence`;function Je(e){let[t,n]=s.useState(),r=s.useRef(null),i=s.useRef(e),a=s.useRef(`none`),[o,c]=qe(e?`mounted`:`unmounted`,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}});return s.useEffect(()=>{let e=H(r.current);a.current=o===`mounted`?e:`none`},[o]),N(()=>{let t=r.current,n=i.current;if(n!==e){let r=a.current,o=H(t);e?c(`MOUNT`):o===`none`||t?.display===`none`?c(`UNMOUNT`):c(n&&r!==o?`ANIMATION_OUT`:`UNMOUNT`),i.current=e}},[e,c]),N(()=>{if(t){let e,n=t.ownerDocument.defaultView??window,o=a=>{let o=H(r.current).includes(CSS.escape(a.animationName));if(a.target===t&&o&&(c(`ANIMATION_END`),!i.current)){let r=t.style.animationFillMode;t.style.animationFillMode=`forwards`,e=n.setTimeout(()=>{t.style.animationFillMode===`forwards`&&(t.style.animationFillMode=r)})}},s=e=>{e.target===t&&(a.current=H(r.current))};return t.addEventListener(`animationstart`,s),t.addEventListener(`animationcancel`,o),t.addEventListener(`animationend`,o),()=>{n.clearTimeout(e),t.removeEventListener(`animationstart`,s),t.removeEventListener(`animationcancel`,o),t.removeEventListener(`animationend`,o)}}else c(`ANIMATION_END`)},[t,c]),{isPresent:[`mounted`,`unmountSuspended`].includes(o),ref:s.useCallback(e=>{r.current=e?getComputedStyle(e):null,n(e)},[])}}function H(e){return e?.animationName||`none`}function Ye(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Xe=0;function Ze(){s.useEffect(()=>{let e=document.querySelectorAll(`[data-radix-focus-guard]`);return document.body.insertAdjacentElement(`afterbegin`,e[0]??Qe()),document.body.insertAdjacentElement(`beforeend`,e[1]??Qe()),Xe++,()=>{Xe===1&&document.querySelectorAll(`[data-radix-focus-guard]`).forEach(e=>e.remove()),Xe--}},[])}function Qe(){let e=document.createElement(`span`);return e.setAttribute(`data-radix-focus-guard`,``),e.tabIndex=0,e.style.outline=`none`,e.style.opacity=`0`,e.style.position=`fixed`,e.style.pointerEvents=`none`,e}var U=function(){return U=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},U.apply(this,arguments)};function $e(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n}function et(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,a;r<i;r++)(a||!(r in t))&&(a||=Array.prototype.slice.call(t,0,r),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))}var W=`right-scroll-bar-position`,tt=`width-before-scroll-bar`,nt=`with-scroll-bars-hidden`,rt=`--removed-body-scroll-bar-size`;function it(e,t){return typeof e==`function`?e(t):e&&(e.current=t),e}function at(e,t){var n=(0,s.useState)(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(e){var t=n.value;t!==e&&(n.value=e,n.callback(e,t))}}}})[0];return n.callback=t,n.facade}var ot=typeof window<`u`?s.useLayoutEffect:s.useEffect,st=new WeakMap;function ct(e,t){var n=at(t||null,function(t){return e.forEach(function(e){return it(e,t)})});return ot(function(){var t=st.get(n);if(t){var r=new Set(t),i=new Set(e),a=n.current;r.forEach(function(e){i.has(e)||it(e,null)}),i.forEach(function(e){r.has(e)||it(e,a)})}st.set(n,e)},[e]),n}function lt(e){return e}function ut(e,t){t===void 0&&(t=lt);var n=[],r=!1;return{read:function(){if(r)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(e){var i=t(e,r);return n.push(i),function(){n=n.filter(function(e){return e!==i})}},assignSyncMedium:function(e){for(r=!0;n.length;){var t=n;n=[],t.forEach(e)}n={push:function(t){return e(t)},filter:function(){return n}}},assignMedium:function(e){r=!0;var t=[];if(n.length){var i=n;n=[],i.forEach(e),t=n}var a=function(){var n=t;t=[],n.forEach(e)},o=function(){return Promise.resolve().then(a)};o(),n={push:function(e){t.push(e),o()},filter:function(e){return t=t.filter(e),n}}}}}function dt(e){e===void 0&&(e={});var t=ut(null);return t.options=U({async:!0,ssr:!1},e),t}var ft=function(e){var t=e.sideCar,n=$e(e,[`sideCar`]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw Error(`Sidecar medium not found`);return s.createElement(r,U({},n))};ft.isSideCarExport=!0;function pt(e,t){return e.useMedium(t),ft}var mt=dt(),ht=function(){},gt=s.forwardRef(function(e,t){var n=s.useRef(null),r=s.useState({onScrollCapture:ht,onWheelCapture:ht,onTouchMoveCapture:ht}),i=r[0],a=r[1],o=e.forwardProps,c=e.children,l=e.className,u=e.removeScrollBar,d=e.enabled,f=e.shards,p=e.sideCar,m=e.noRelative,h=e.noIsolation,g=e.inert,_=e.allowPinchZoom,ee=e.as,v=ee===void 0?`div`:ee,y=e.gapMode,te=$e(e,[`forwardProps`,`children`,`className`,`removeScrollBar`,`enabled`,`shards`,`sideCar`,`noRelative`,`noIsolation`,`inert`,`allowPinchZoom`,`as`,`gapMode`]),b=p,x=ct([n,t]),S=U(U({},te),i);return s.createElement(s.Fragment,null,d&&s.createElement(b,{sideCar:mt,removeScrollBar:u,shards:f,noRelative:m,noIsolation:h,inert:g,setCallbacks:a,allowPinchZoom:!!_,lockRef:n,gapMode:y}),o?s.cloneElement(s.Children.only(c),U(U({},S),{ref:x})):s.createElement(v,U({},S,{className:l,ref:x}),c))});gt.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},gt.classNames={fullWidth:tt,zeroRight:W};var _t,vt=function(){if(_t)return _t;if(typeof __webpack_nonce__<`u`)return __webpack_nonce__};function yt(){if(!document)return null;var e=document.createElement(`style`);e.type=`text/css`;var t=vt();return t&&e.setAttribute(`nonce`,t),e}function bt(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function xt(e){(document.head||document.getElementsByTagName(`head`)[0]).appendChild(e)}var St=function(){var e=0,t=null;return{add:function(n){e==0&&(t=yt())&&(bt(t,n),xt(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},Ct=function(){var e=St();return function(t,n){s.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},wt=function(){var e=Ct();return function(t){var n=t.styles,r=t.dynamic;return e(n,r),null}},Tt={left:0,top:0,right:0,gap:0},Et=function(e){return parseInt(e||``,10)||0},Dt=function(e){var t=window.getComputedStyle(document.body),n=t[e===`padding`?`paddingLeft`:`marginLeft`],r=t[e===`padding`?`paddingTop`:`marginTop`],i=t[e===`padding`?`paddingRight`:`marginRight`];return[Et(n),Et(r),Et(i)]},Ot=function(e){if(e===void 0&&(e=`margin`),typeof window>`u`)return Tt;var t=Dt(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},kt=wt(),G=`data-scroll-locked`,At=function(e,t,n,r){var i=e.left,a=e.top,o=e.right,s=e.gap;return n===void 0&&(n=`margin`),`
|
|
2
|
-
.${nt} {
|
|
3
|
-
overflow: hidden ${r};
|
|
4
|
-
padding-right: ${s}px ${r};
|
|
5
|
-
}
|
|
6
|
-
body[${G}] {
|
|
7
|
-
overflow: hidden ${r};
|
|
8
|
-
overscroll-behavior: contain;
|
|
9
|
-
${[t&&`position: relative ${r};`,n===`margin`&&`
|
|
10
|
-
padding-left: ${i}px;
|
|
11
|
-
padding-top: ${a}px;
|
|
12
|
-
padding-right: ${o}px;
|
|
13
|
-
margin-left:0;
|
|
14
|
-
margin-top:0;
|
|
15
|
-
margin-right: ${s}px ${r};
|
|
16
|
-
`,n===`padding`&&`padding-right: ${s}px ${r};`].filter(Boolean).join(``)}
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
.${W} {
|
|
20
|
-
right: ${s}px ${r};
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
.${tt} {
|
|
24
|
-
margin-right: ${s}px ${r};
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
.${W} .${W} {
|
|
28
|
-
right: 0 ${r};
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
.${tt} .${tt} {
|
|
32
|
-
margin-right: 0 ${r};
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
body[${G}] {
|
|
36
|
-
${rt}: ${s}px;
|
|
37
|
-
}
|
|
38
|
-
`},jt=function(){var e=parseInt(document.body.getAttribute(`data-scroll-locked`)||`0`,10);return isFinite(e)?e:0},Mt=function(){s.useEffect(function(){return document.body.setAttribute(G,(jt()+1).toString()),function(){var e=jt()-1;e<=0?document.body.removeAttribute(G):document.body.setAttribute(G,e.toString())}},[])},Nt=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,i=r===void 0?`margin`:r;Mt();var a=s.useMemo(function(){return Ot(i)},[i]);return s.createElement(kt,{styles:At(a,!t,i,n?``:`!important`)})},Pt=!1;if(typeof window<`u`)try{var K=Object.defineProperty({},"passive",{get:function(){return Pt=!0,!0}});window.addEventListener(`test`,K,K),window.removeEventListener(`test`,K,K)}catch{Pt=!1}var q=Pt?{passive:!1}:!1,Ft=function(e){return e.tagName===`TEXTAREA`},It=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!==`hidden`&&!(n.overflowY===n.overflowX&&!Ft(e)&&n[t]===`visible`)},Lt=function(e){return It(e,`overflowY`)},Rt=function(e){return It(e,`overflowX`)},zt=function(e,t){var n=t.ownerDocument,r=t;do{if(typeof ShadowRoot<`u`&&r instanceof ShadowRoot&&(r=r.host),Ht(e,r)){var i=Ut(e,r);if(i[1]>i[2])return!0}r=r.parentNode}while(r&&r!==n.body);return!1},Bt=function(e){return[e.scrollTop,e.scrollHeight,e.clientHeight]},Vt=function(e){return[e.scrollLeft,e.scrollWidth,e.clientWidth]},Ht=function(e,t){return e===`v`?Lt(t):Rt(t)},Ut=function(e,t){return e===`v`?Bt(t):Vt(t)},Wt=function(e,t){return e===`h`&&t===`rtl`?-1:1},Gt=function(e,t,n,r,i){var a=Wt(e,window.getComputedStyle(t).direction),o=a*r,s=n.target,c=t.contains(s),l=!1,u=o>0,d=0,f=0;do{if(!s)break;var p=Ut(e,s),m=p[0],h=p[1]-p[2]-a*m;(m||h)&&Ht(e,s)&&(d+=h,f+=m);var g=s.parentNode;s=g&&g.nodeType===Node.DOCUMENT_FRAGMENT_NODE?g.host:g}while(!c&&s!==document.body||c&&(t.contains(s)||t===s));return(u&&(i&&Math.abs(d)<1||!i&&o>d)||!u&&(i&&Math.abs(f)<1||!i&&-o>f))&&(l=!0),l},J=function(e){return`changedTouches`in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},Kt=function(e){return[e.deltaX,e.deltaY]},qt=function(e){return e&&`current`in e?e.current:e},Jt=function(e,t){return e[0]===t[0]&&e[1]===t[1]},Yt=function(e){return`
|
|
39
|
-
.block-interactivity-${e} {pointer-events: none;}
|
|
40
|
-
.allow-interactivity-${e} {pointer-events: all;}
|
|
41
|
-
`},Xt=0,Y=[];function Zt(e){var t=s.useRef([]),n=s.useRef([0,0]),r=s.useRef(),i=s.useState(Xt++)[0],a=s.useState(wt)[0],o=s.useRef(e);s.useEffect(function(){o.current=e},[e]),s.useEffect(function(){if(e.inert){document.body.classList.add(`block-interactivity-${i}`);var t=et([e.lockRef.current],(e.shards||[]).map(qt),!0).filter(Boolean);return t.forEach(function(e){return e.classList.add(`allow-interactivity-${i}`)}),function(){document.body.classList.remove(`block-interactivity-${i}`),t.forEach(function(e){return e.classList.remove(`allow-interactivity-${i}`)})}}},[e.inert,e.lockRef.current,e.shards]);var c=s.useCallback(function(e,t){if(`touches`in e&&e.touches.length===2||e.type===`wheel`&&e.ctrlKey)return!o.current.allowPinchZoom;var i=J(e),a=n.current,s=`deltaX`in e?e.deltaX:a[0]-i[0],c=`deltaY`in e?e.deltaY:a[1]-i[1],l,u=e.target,d=Math.abs(s)>Math.abs(c)?`h`:`v`;if(`touches`in e&&d===`h`&&u.type===`range`)return!1;var f=window.getSelection(),p=f&&f.anchorNode;if(p&&(p===u||p.contains(u)))return!1;var m=zt(d,u);if(!m)return!0;if(m?l=d:(l=d===`v`?`h`:`v`,m=zt(d,u)),!m)return!1;if(!r.current&&`changedTouches`in e&&(s||c)&&(r.current=l),!l)return!0;var h=r.current||l;return Gt(h,t,e,h===`h`?s:c,!0)},[]),l=s.useCallback(function(e){var n=e;if(!(!Y.length||Y[Y.length-1]!==a)){var r=`deltaY`in n?Kt(n):J(n),i=t.current.filter(function(e){return e.name===n.type&&(e.target===n.target||n.target===e.shadowParent)&&Jt(e.delta,r)})[0];if(i&&i.should){n.cancelable&&n.preventDefault();return}if(!i){var s=(o.current.shards||[]).map(qt).filter(Boolean).filter(function(e){return e.contains(n.target)});(s.length>0?c(n,s[0]):!o.current.noIsolation)&&n.cancelable&&n.preventDefault()}}},[]),u=s.useCallback(function(e,n,r,i){var a={name:e,delta:n,target:r,should:i,shadowParent:Qt(r)};t.current.push(a),setTimeout(function(){t.current=t.current.filter(function(e){return e!==a})},1)},[]),d=s.useCallback(function(e){n.current=J(e),r.current=void 0},[]),f=s.useCallback(function(t){u(t.type,Kt(t),t.target,c(t,e.lockRef.current))},[]),p=s.useCallback(function(t){u(t.type,J(t),t.target,c(t,e.lockRef.current))},[]);s.useEffect(function(){return Y.push(a),e.setCallbacks({onScrollCapture:f,onWheelCapture:f,onTouchMoveCapture:p}),document.addEventListener(`wheel`,l,q),document.addEventListener(`touchmove`,l,q),document.addEventListener(`touchstart`,d,q),function(){Y=Y.filter(function(e){return e!==a}),document.removeEventListener(`wheel`,l,q),document.removeEventListener(`touchmove`,l,q),document.removeEventListener(`touchstart`,d,q)}},[]);var m=e.removeScrollBar,h=e.inert;return s.createElement(s.Fragment,null,h?s.createElement(a,{styles:Yt(i)}):null,m?s.createElement(Nt,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function Qt(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}var $t=pt(mt,Zt),en=s.forwardRef(function(e,t){return s.createElement(gt,U({},e,{ref:t,sideCar:$t}))});en.classNames=gt.classNames;var tn=function(e){return typeof document>`u`?null:(Array.isArray(e)?e[0]:e).ownerDocument.body},X=new WeakMap,Z=new WeakMap,nn={},rn=0,an=function(e){return e&&(e.host||an(e.parentNode))},on=function(e,t){return t.map(function(t){if(e.contains(t))return t;var n=an(t);return n&&e.contains(n)?n:(console.error(`aria-hidden`,t,`in not contained inside`,e,`. Doing nothing`),null)}).filter(function(e){return!!e})},sn=function(e,t,n,r){var i=on(t,Array.isArray(e)?e:[e]);nn[n]||(nn[n]=new WeakMap);var a=nn[n],o=[],s=new Set,c=new Set(i),l=function(e){!e||s.has(e)||(s.add(e),l(e.parentNode))};i.forEach(l);var u=function(e){!e||c.has(e)||Array.prototype.forEach.call(e.children,function(e){if(s.has(e))u(e);else try{var t=e.getAttribute(r),i=t!==null&&t!==`false`,c=(X.get(e)||0)+1,l=(a.get(e)||0)+1;X.set(e,c),a.set(e,l),o.push(e),c===1&&i&&Z.set(e,!0),l===1&&e.setAttribute(n,`true`),i||e.setAttribute(r,`true`)}catch(t){console.error(`aria-hidden: cannot operate on `,e,t)}})};return u(t),s.clear(),rn++,function(){o.forEach(function(e){var t=X.get(e)-1,i=a.get(e)-1;X.set(e,t),a.set(e,i),t||(Z.has(e)||e.removeAttribute(r),Z.delete(e)),i||e.removeAttribute(n)}),rn--,rn||(X=new WeakMap,X=new WeakMap,Z=new WeakMap,nn={})}},cn=function(e,t,n){n===void 0&&(n=`data-aria-hidden`);var r=Array.from(Array.isArray(e)?e:[e]),i=t||tn(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll(`[aria-live], script`))),sn(r,i,n,`aria-hidden`)):function(){return null}};function ln(e){let t=un(e),n=s.forwardRef((e,n)=>{let{children:r,...i}=e,a=s.Children.toArray(r),o=a.find(fn);if(o){let e=o.props.children,r=a.map(t=>t===o?s.Children.count(e)>1?s.Children.only(null):s.isValidElement(e)?e.props.children:null:t);return(0,l.jsx)(t,{...i,ref:n,children:s.isValidElement(e)?s.cloneElement(e,void 0,r):null})}return(0,l.jsx)(t,{...i,ref:n,children:r})});return n.displayName=`${e}.Slot`,n}function un(e){let t=s.forwardRef((e,t)=>{let{children:n,...r}=e;if(s.isValidElement(n)){let e=mn(n),i=pn(r,n.props);return n.type!==s.Fragment&&(i.ref=t?O(t,e):e),s.cloneElement(n,i)}return s.Children.count(n)>1?s.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var dn=Symbol(`radix.slottable`);function fn(e){return s.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===dn}function pn(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}function mn(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var hn=`Dialog`,[gn,_n]=M(hn),[vn,Q]=gn(hn),yn=e=>{let{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:o=!0}=e,c=s.useRef(null),u=s.useRef(null),[d,f]=L({prop:r,defaultProp:i??!1,onChange:a,caller:hn});return(0,l.jsx)(vn,{scope:t,triggerRef:c,contentRef:u,contentId:I(),titleId:I(),descriptionId:I(),open:d,onOpenChange:f,onOpenToggle:s.useCallback(()=>f(e=>!e),[f]),modal:o,children:n})};yn.displayName=hn;var bn=`DialogTrigger`,xn=s.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=Q(bn,n),a=k(t,i.triggerRef);return(0,l.jsx)(R.button,{type:`button`,"aria-haspopup":`dialog`,"aria-expanded":i.open,"aria-controls":i.contentId,"data-state":Bn(i.open),...r,ref:a,onClick:A(e.onClick,i.onOpenToggle)})});xn.displayName=bn;var Sn=`DialogPortal`,[Cn,wn]=gn(Sn,{forceMount:void 0}),Tn=e=>{let{__scopeDialog:t,forceMount:n,children:r,container:i}=e,a=Q(Sn,t);return(0,l.jsx)(Cn,{scope:t,forceMount:n,children:s.Children.map(r,e=>(0,l.jsx)(V,{present:n||a.open,children:(0,l.jsx)(Ke,{asChild:!0,container:i,children:e})}))})};Tn.displayName=Sn;var En=`DialogOverlay`,Dn=s.forwardRef((e,t)=>{let n=wn(En,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=Q(En,e.__scopeDialog);return a.modal?(0,l.jsx)(V,{present:r||a.open,children:(0,l.jsx)(kn,{...i,ref:t})}):null});Dn.displayName=En;var On=ln(`DialogOverlay.RemoveScroll`),kn=s.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=Q(En,n);return(0,l.jsx)(en,{as:On,allowPinchZoom:!0,shards:[i.contentRef],children:(0,l.jsx)(R.div,{"data-state":Bn(i.open),...r,ref:t,style:{pointerEvents:`auto`,...r.style}})})}),$=`DialogContent`,An=s.forwardRef((e,t)=>{let n=wn($,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=Q($,e.__scopeDialog);return(0,l.jsx)(V,{present:r||a.open,children:a.modal?(0,l.jsx)(jn,{...i,ref:t}):(0,l.jsx)(Mn,{...i,ref:t})})});An.displayName=$;var jn=s.forwardRef((e,t)=>{let n=Q($,e.__scopeDialog),r=s.useRef(null),i=k(t,n.contentRef,r);return s.useEffect(()=>{let e=r.current;if(e)return cn(e)},[]),(0,l.jsx)(Nn,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:A(e.onCloseAutoFocus,e=>{e.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:A(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;(t.button===2||n)&&e.preventDefault()}),onFocusOutside:A(e.onFocusOutside,e=>e.preventDefault())})}),Mn=s.forwardRef((e,t)=>{let n=Q($,e.__scopeDialog),r=s.useRef(!1),i=s.useRef(!1);return(0,l.jsx)(Nn,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})}),Nn=s.forwardRef((e,t)=>{let{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:a,...o}=e,c=Q($,n),u=s.useRef(null),d=k(t,u);return Ze(),(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(Pe,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:a,children:(0,l.jsx)(Ce,{role:`dialog`,id:c.contentId,"aria-describedby":c.descriptionId,"aria-labelledby":c.titleId,"data-state":Bn(c.open),...o,ref:d,onDismiss:()=>c.onOpenChange(!1)})}),(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(Wn,{titleId:c.titleId}),(0,l.jsx)(Kn,{contentRef:u,descriptionId:c.descriptionId})]})]})}),Pn=`DialogTitle`,Fn=s.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=Q(Pn,n);return(0,l.jsx)(R.h2,{id:i.titleId,...r,ref:t})});Fn.displayName=Pn;var In=`DialogDescription`,Ln=s.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=Q(In,n);return(0,l.jsx)(R.p,{id:i.descriptionId,...r,ref:t})});Ln.displayName=In;var Rn=`DialogClose`,zn=s.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=Q(Rn,n);return(0,l.jsx)(R.button,{type:`button`,...r,ref:t,onClick:A(e.onClick,()=>i.onOpenChange(!1))})});zn.displayName=Rn;function Bn(e){return e?`open`:`closed`}var Vn=`DialogTitleWarning`,[Hn,Un]=j(Vn,{contentName:$,titleName:Pn,docsSlug:`dialog`}),Wn=({titleId:e})=>{let t=Un(Vn),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.
|
|
42
|
-
|
|
43
|
-
If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.
|
|
44
|
-
|
|
45
|
-
For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return s.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},Gn=`DialogDescriptionWarning`,Kn=({contentRef:e,descriptionId:t})=>{let n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${Un(Gn).contentName}}.`;return s.useEffect(()=>{let r=e.current?.getAttribute(`aria-describedby`);t&&r&&(document.getElementById(t)||console.warn(n))},[n,e,t]),null},qn=yn,Jn=xn,Yn=Tn,Xn=Dn,Zn=An,Qn=Fn,$n=Ln,er=zn;function tr(...e){return s.useCallback(t=>{for(let n of e)n&&(typeof n==`function`?n(t):n.current=t)},e)}var nr=qn,rr=Jn,ir=Yn,ar=er,or=s.forwardRef(({className:e,...t},n)=>(0,l.jsx)(Xn,{ref:n,style:S(),className:o(`fixed inset-0 z-50 bg-black/60 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`,e),...t}));or.displayName=Xn.displayName;var sr=()=>{let{t:e}=i(`common`);return(0,l.jsxs)(er,{className:`absolute right-4 top-4 z-20 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground`,children:[(0,l.jsx)(a,{className:`h-4 w-4`}),(0,l.jsx)(`span`,{className:`sr-only`,children:e(`actions.close`)})]})},cr=s.forwardRef(({className:e,overlayClassName:t,children:n,showCloseButton:r=!0,movableResizable:i=!1,style:a,...s},c)=>{let{panelRef:u,panelStyle:d,resizeHandles:f}=T({enabled:i,allowMove:!1}),p=tr(c,u);return i?(0,l.jsxs)(ir,{children:[(0,l.jsx)(or,{className:t}),(0,l.jsxs)(Zn,{ref:p,style:{...a,...C(),...d},className:o(`fixed left-[50%] top-[50%] z-50 grid w-[calc(100%-32px)] max-w-2xl max-h-[85vh] translate-x-[-50%] translate-y-[-50%] gap-4 border border-border/30 bg-popover p-6 shadow-xl backdrop-blur-md duration-200 overflow-y-auto data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-xl`,e),...s,children:[n,r&&(0,l.jsx)(sr,{})]}),(0,l.jsx)(E,{handles:f})]}):(0,l.jsxs)(ir,{children:[(0,l.jsx)(or,{className:t}),(0,l.jsxs)(Zn,{ref:c,style:{...a,...C()},className:o(`fixed left-[50%] top-[50%] z-50 grid w-[calc(100%-32px)] max-w-2xl max-h-[85vh] translate-x-[-50%] translate-y-[-50%] gap-4 border border-border/30 bg-popover p-6 shadow-xl backdrop-blur-md duration-200 overflow-y-auto data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-xl`,e),...s,children:[n,r&&(0,l.jsx)(sr,{})]})]})});cr.displayName=Zn.displayName;var lr=({className:e,...t})=>(0,l.jsx)(`div`,{className:o(`flex flex-col space-y-1.5 text-center sm:text-left`,e),...t});lr.displayName=`DialogHeader`;var ur=({className:e,...t})=>(0,l.jsx)(`div`,{className:o(`flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2`,e),...t});ur.displayName=`DialogFooter`;var dr=s.forwardRef(({className:e,...t},n)=>(0,l.jsx)(Qn,{ref:n,className:o(`text-lg font-semibold leading-none tracking-tight`,e),...t}));dr.displayName=Qn.displayName;var fr=s.forwardRef(({className:e,...t},n)=>(0,l.jsx)($n,{ref:n,className:o(`text-xs text-muted-foreground`,e),...t}));fr.displayName=$n.displayName;export{M as A,Pe as C,L as D,R as E,T as F,S as I,x as L,O as M,k as N,I as O,E as P,Ke as S,z as T,Jn as _,ur as a,Ze as b,ir as c,Zn as d,$n as f,Qn as g,qn as h,fr as i,A as j,N as k,dr as l,Yn as m,ar as n,lr as o,Xn as p,cr as r,or as s,nr as t,rr as u,cn as v,Ce as w,V as x,en as y};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./core-B3mKBIh5.js";async function t(t={}){return typeof t==`object`&&Object.freeze(t),await e(`plugin:dialog|open`,{options:t})}export{t as open};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-CNC7AqOf.js";import{a as t,o as n}from"./core-B3mKBIh5.js";var r=e({TauriEvent:()=>i,emit:()=>c,emitTo:()=>l,listen:()=>o,once:()=>s}),i;(function(e){e.WINDOW_RESIZED=`tauri://resize`,e.WINDOW_MOVED=`tauri://move`,e.WINDOW_CLOSE_REQUESTED=`tauri://close-requested`,e.WINDOW_DESTROYED=`tauri://destroyed`,e.WINDOW_FOCUS=`tauri://focus`,e.WINDOW_BLUR=`tauri://blur`,e.WINDOW_SCALE_FACTOR_CHANGED=`tauri://scale-change`,e.WINDOW_THEME_CHANGED=`tauri://theme-changed`,e.WINDOW_CREATED=`tauri://window-created`,e.WEBVIEW_CREATED=`tauri://webview-created`,e.DRAG_ENTER=`tauri://drag-enter`,e.DRAG_OVER=`tauri://drag-over`,e.DRAG_DROP=`tauri://drag-drop`,e.DRAG_LEAVE=`tauri://drag-leave`})(i||={});async function a(e,n){window.__TAURI_EVENT_PLUGIN_INTERNALS__.unregisterListener(e,n),await t(`plugin:event|unlisten`,{event:e,eventId:n})}async function o(e,r,i){return t(`plugin:event|listen`,{event:e,target:typeof i?.target==`string`?{kind:`AnyLabel`,label:i.target}:i?.target??{kind:`Any`},handler:n(r)}).then(t=>async()=>a(e,t))}async function s(e,t,n){return o(e,n=>{a(e,n.id),t(n)},n)}async function c(e,n){await t(`plugin:event|emit`,{event:e,payload:n})}async function l(e,n,r){await t(`plugin:event|emit_to`,{target:typeof e==`string`?{kind:`AnyLabel`,label:e}:e,event:n,payload:r})}export{o as a,r as i,c as n,s as o,l as r,i as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={dialogAriaLabel:`Explore Spec · interactivo`,backAriaLabel:`Atrás (Esc)`,exploreEyebrow:`EXPLORE SPEC · interactivo`,editingEyebrow:`EDITANDO SPEC · #{{id}}`,newSpecPlaceholder:`Nueva spec…`,contextPill:`Contexto: {{scopes}}`,contextPillTitle:`Ámbito de contexto activo para esta sesión de Explore`,contextScopeCodebase:`codebase`,contextScopeMinimal:`mínimo`,saveAsDraft:`Guardar como borrador`,saveAsDraftAriaLabel:`Guardar la exploración actual como borrador`,saveAsDraftDisabledTitle:`Envía al menos un mensaje antes de guardar`,review:`Revisar →`,reviewAriaLabel:`Revisar los cambios antes de crear la spec`,createSpec:`Crear spec`,updateSpec:`Actualizar spec`,createSpecAriaLabel:`Crear una spec a partir del borrador actual`,updateSpecAriaLabel:`Actualizar la spec con el borrador actual`,createSpecDisabledTitle:`Se necesita un título para confirmar`,editModeIntro:`Spec cargada a la derecha. Escribe un refinamiento para empezar.`,startingConversation:`Iniciando conversación…`,suggestedRepliesAriaLabel:`Respuestas sugeridas`,composerPlaceholder:`Escribe tu respuesta… arrastra archivos para adjuntar`,composerAriaLabel:`Idea de spec`,stop:`Detener`,send:`Enviar`,you:`Tú`,closePrompt:{title:`¿Guardar esta exploración?`,description:`Guardar como borrador conserva la conversación para retomarla más tarde desde el tablero. Descartar la elimina.`},toasts:{saveDraftFailed:`No se pudo guardar el borrador`,draftSaved:`Borrador guardado — #{{id}} {{title}}`,draftNetworkError:`Error de red al guardar el borrador`,updateSpecFailed:`No se pudo actualizar la spec`,specUpdated:`Spec actualizada — #{{id}} {{title}}`,createSpecFailed:`No se pudo crear la spec`,specCreated:`Spec creada — #{{id}} {{title}}`,createNetworkError:`Error de red al crear la spec`,unsupportedFileType:`Tipo de archivo no compatible: {{name}}`,uploadFailed:`Error al subir {{name}}: {{message}}`},fromWebsite:`Desde una web`,fromWebsiteTitle:`Abre una página web real, selecciona un área y conviértela en una spec`,captureResponsiveSizes_one:`Responsive · {{count}} tamaño`,captureResponsiveSizes_other:`Responsive · {{count}} tamaños`,captureFeedbackPrompt:`Acabo de capturar parte de una web (su imagen y contenido van adjuntos). Brevemente: ¿qué ves y cómo se relaciona con lo que hemos hablado y con la spec que estamos definiendo? Dame tu feedback.`},t={ready:`Borrador listo`,titleLabel:`Título`,titlePlaceholder:`Título conciso y orientado a la acción…`,titleAriaLabel:`Título de la spec`,priorityLabel:`Prioridad`,priorityAriaLabel:`Prioridad de la spec`,labelsLabel:`Etiquetas`,descriptionLabel:`Descripción`,descriptionPlaceholder:`¿Qué problema resuelve? ¿Qué cambia? ¿Por qué ahora?`,descriptionAriaLabel:`Descripción de la spec`,acceptanceCriteriaLabel:`Criterios de aceptación`,attachmentsHeading_one:`Adjuntos ({{count}})`,attachmentsHeading_other:`Adjuntos ({{count}})`,linkedOnCreate:`se vinculan al crear`,attachmentsListAriaLabel:`Adjuntos acumulados`,removeLabelAriaLabel:`Quitar etiqueta {{label}}`,addLabelAriaLabel:`Añadir etiqueta`,addLabelsPlaceholder:`Añadir etiquetas…`,removeAttachmentAriaLabel:`Quitar {{filename}}`,criterionPlaceholder:`Resultado comprobable…`,criterionAriaLabel:`Criterio de aceptación {{number}}`,removeCriterionAriaLabel:`Quitar criterio {{number}}`,addCriterion:`Añadir criterio`,addCriterionAriaLabel:`Añadir criterio de aceptación`},n={low:`baja`,medium:`media`,high:`alta`,critical:`crítica`},r={dialogAriaLabel:`Revisar cambios`,eyebrow:`Revisar cambios · explore-spec`,heading:`Confirma antes de crear`,titleLabel:`Título`,priorityLabel:`Prioridad`,descriptionLabel:`Descripción`,labelsLabel:`Etiquetas`,acceptanceCriteriaLabel:`Criterios de aceptación`,noLabels:`Sin etiquetas`,noCriteria:`Sin criterios`,backToEdit:`Volver a editar`,createSpec:`Crear spec`,updateSpec:`Actualizar spec`,noPriority:`sin prioridad`,inserted:`insertado`,removed:`eliminado`,added:`añadido`,unchanged:`sin cambios`},i={connecting:`Conectando…`,thinking:`Pensando…`,tool:`Consultando código…`},a={ariaLabel:`Modelo de generación de specs`,placeholder:`Elige un modelo`},o={shell:e,draftPanel:t,priority:n,reviewOverlay:r,statusPills:i,modelPicker:a};export{o as default,t as draftPanel,a as modelPicker,n as priority,r as reviewOverlay,e as shell,i as statusPills};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={dialogAriaLabel:`Explore Spec · interactif`,backAriaLabel:`Retour (Échap)`,exploreEyebrow:`EXPLORE SPEC · interactif`,editingEyebrow:`ÉDITION DE SPEC · #{{id}}`,newSpecPlaceholder:`Nouvelle spec…`,contextPill:`Contexte : {{scopes}}`,contextPillTitle:`Portée de contexte active pour cette session Explore`,contextScopeCodebase:`base de code`,contextScopeMinimal:`minimal`,saveAsDraft:`Enregistrer comme brouillon`,saveAsDraftAriaLabel:`Enregistrer l'exploration actuelle comme brouillon`,saveAsDraftDisabledTitle:`Envoyez au moins un message avant d'enregistrer`,review:`Vérifier →`,reviewAriaLabel:`Vérifier les modifications avant de créer la spec`,createSpec:`Créer la spec`,updateSpec:`Mettre à jour la spec`,createSpecAriaLabel:`Créer une spec à partir du brouillon actuel`,updateSpecAriaLabel:`Mettre à jour la spec avec le brouillon actuel`,createSpecDisabledTitle:`Un titre est requis pour valider`,editModeIntro:`Spec chargée à droite. Saisissez une amélioration pour commencer.`,startingConversation:`Démarrage de la conversation…`,suggestedRepliesAriaLabel:`Réponses suggérées`,composerPlaceholder:`Saisissez votre réponse… glissez des fichiers pour les joindre`,composerAriaLabel:`Idée de spec`,stop:`Arrêter`,send:`Envoyer`,you:`Vous`,closePrompt:{title:`Enregistrer cette exploration ?`,description:`Enregistrer comme brouillon conserve la conversation pour la reprendre plus tard depuis le tableau. Abandonner la supprime définitivement.`},toasts:{saveDraftFailed:`Échec de l'enregistrement du brouillon`,draftSaved:`Brouillon enregistré — #{{id}} {{title}}`,draftNetworkError:`Erreur réseau lors de l'enregistrement du brouillon`,updateSpecFailed:`Échec de la mise à jour de la spec`,specUpdated:`Spec mise à jour — #{{id}} {{title}}`,createSpecFailed:`Échec de la création de la spec`,specCreated:`Spec créée — #{{id}} {{title}}`,createNetworkError:`Erreur réseau lors de la création de la spec`,unsupportedFileType:`Type de fichier non pris en charge : {{name}}`,uploadFailed:`Échec de l'envoi de {{name}} : {{message}}`},fromWebsite:`Depuis un site web`,fromWebsiteTitle:`Ouvrez une vraie page web, sélectionnez une zone et transformez-la en spec`,captureResponsiveSizes_one:`Responsive · {{count}} taille`,captureResponsiveSizes_other:`Responsive · {{count}} tailles`,captureFeedbackPrompt:`Je viens de capturer une partie d'une page web (sa capture d'écran et son contenu sont joints). Brièvement : que vois-tu, et quel rapport avec ce dont nous avons parlé et avec la spec que nous élaborons ? Donne-moi ton retour.`},t={ready:`Brouillon prêt`,titleLabel:`Titre`,titlePlaceholder:`Titre concis, orienté action…`,titleAriaLabel:`Titre de la spec`,priorityLabel:`Priorité`,priorityAriaLabel:`Priorité de la spec`,labelsLabel:`Labels`,descriptionLabel:`Description`,descriptionPlaceholder:`Quel problème cela résout-il ? Qu'est-ce qui change ? Pourquoi maintenant ?`,descriptionAriaLabel:`Description de la spec`,acceptanceCriteriaLabel:`Critères d'acceptation`,attachmentsHeading_one:`Pièces jointes ({{count}})`,attachmentsHeading_other:`Pièces jointes ({{count}})`,linkedOnCreate:`liées à la création`,attachmentsListAriaLabel:`Pièces jointes accumulées`,removeLabelAriaLabel:`Retirer le label {{label}}`,addLabelAriaLabel:`Ajouter un label`,addLabelsPlaceholder:`Ajouter des labels…`,removeAttachmentAriaLabel:`Retirer {{filename}}`,criterionPlaceholder:`Résultat testable…`,criterionAriaLabel:`Critère d'acceptation {{number}}`,removeCriterionAriaLabel:`Supprimer le critère {{number}}`,addCriterion:`Ajouter un critère`,addCriterionAriaLabel:`Ajouter un critère d'acceptation`},n={low:`basse`,medium:`moyenne`,high:`haute`,critical:`critique`},r={dialogAriaLabel:`Vérifier les modifications`,eyebrow:`Vérification des modifications · explore-spec`,heading:`Confirmez avant de valider`,titleLabel:`Titre`,priorityLabel:`Priorité`,descriptionLabel:`Description`,labelsLabel:`Labels`,acceptanceCriteriaLabel:`Critères d'acceptation`,noLabels:`Aucun label`,noCriteria:`Aucun critère`,backToEdit:`Retour à l'édition`,createSpec:`Créer la spec`,updateSpec:`Mettre à jour la spec`,noPriority:`aucune priorité`,inserted:`inséré`,removed:`supprimé`,added:`ajouté`,unchanged:`inchangé`},i={connecting:`Connexion…`,thinking:`Réflexion…`,tool:`Lecture du code…`},a={ariaLabel:`Modèle de génération de spec`,placeholder:`Choisir un modèle`},o={shell:e,draftPanel:t,priority:n,reviewOverlay:r,statusPills:i,modelPicker:a};export{o as default,t as draftPanel,a as modelPicker,n as priority,r as reviewOverlay,e as shell,i as statusPills};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={dialogAriaLabel:`Explore Spec · interativo`,backAriaLabel:`Voltar (Esc)`,exploreEyebrow:`EXPLORE SPEC · interativo`,editingEyebrow:`A EDITAR SPEC · #{{id}}`,newSpecPlaceholder:`Nova spec…`,contextPill:`Contexto: {{scopes}}`,contextPillTitle:`Âmbito de contexto ativo nesta sessão de Explore`,contextScopeCodebase:`codebase`,contextScopeMinimal:`mínimo`,saveAsDraft:`Guardar como rascunho`,saveAsDraftAriaLabel:`Guardar a exploração atual como rascunho`,saveAsDraftDisabledTitle:`Envie pelo menos uma mensagem antes de guardar`,review:`Rever →`,reviewAriaLabel:`Rever alterações antes de criar a spec`,createSpec:`Criar Spec`,updateSpec:`Atualizar Spec`,createSpecAriaLabel:`Criar spec a partir do rascunho atual`,updateSpecAriaLabel:`Atualizar a spec com o rascunho atual`,createSpecDisabledTitle:`É necessário um título para confirmar`,editModeIntro:`Spec carregada à direita. Escreva um refinamento para começar.`,startingConversation:`A iniciar conversa…`,suggestedRepliesAriaLabel:`Respostas sugeridas`,composerPlaceholder:`Escreva a sua resposta… arraste ficheiros para anexar`,composerAriaLabel:`Ideia de spec`,stop:`Parar`,send:`Enviar`,you:`Você`,closePrompt:{title:`Guardar esta exploração?`,description:`Guardar como rascunho mantém a conversa para a retomar mais tarde a partir do quadro. Descartar elimina-a.`},toasts:{saveDraftFailed:`Falha ao guardar o rascunho`,draftSaved:`Rascunho guardado — #{{id}} {{title}}`,draftNetworkError:`Erro de rede ao guardar o rascunho`,updateSpecFailed:`Falha ao atualizar a spec`,specUpdated:`Spec atualizada — #{{id}} {{title}}`,createSpecFailed:`Falha ao criar a spec`,specCreated:`Spec criada — #{{id}} {{title}}`,createNetworkError:`Erro de rede ao criar a spec`,unsupportedFileType:`Tipo de ficheiro não suportado: {{name}}`,uploadFailed:`Falha no upload de {{name}}: {{message}}`},fromWebsite:`A partir de um website`,fromWebsiteTitle:`Abra uma página web real, selecione uma área e converta-a numa spec`,captureResponsiveSizes_one:`Responsivo · {{count}} tamanho`,captureResponsiveSizes_other:`Responsivo · {{count}} tamanhos`,captureFeedbackPrompt:`Acabei de capturar parte de uma página web (a imagem e o conteúdo estão anexados). Brevemente: o que vês e como se relaciona com o que falámos e com a spec que estamos a definir? Dá-me o teu feedback.`},t={ready:`Rascunho pronto`,titleLabel:`Título`,titlePlaceholder:`Título conciso e orientado à ação…`,titleAriaLabel:`Título da spec`,priorityLabel:`Prioridade`,priorityAriaLabel:`Prioridade da spec`,labelsLabel:`Etiquetas`,descriptionLabel:`Descrição`,descriptionPlaceholder:`Que problema resolve? O que muda? Porquê agora?`,descriptionAriaLabel:`Descrição da spec`,acceptanceCriteriaLabel:`Critérios de aceitação`,attachmentsHeading_one:`Anexos ({{count}})`,attachmentsHeading_other:`Anexos ({{count}})`,linkedOnCreate:`associados ao criar`,attachmentsListAriaLabel:`Anexos acumulados`,removeLabelAriaLabel:`Remover etiqueta {{label}}`,addLabelAriaLabel:`Adicionar etiqueta`,addLabelsPlaceholder:`Adicionar etiquetas…`,removeAttachmentAriaLabel:`Remover {{filename}}`,criterionPlaceholder:`Resultado testável…`,criterionAriaLabel:`Critério de aceitação {{number}}`,removeCriterionAriaLabel:`Remover critério {{number}}`,addCriterion:`Adicionar critério`,addCriterionAriaLabel:`Adicionar critério de aceitação`},n={low:`baixa`,medium:`média`,high:`alta`,critical:`crítica`},r={dialogAriaLabel:`Rever alterações`,eyebrow:`Rever alterações · explore-spec`,heading:`Confirmar antes de submeter`,titleLabel:`Título`,priorityLabel:`Prioridade`,descriptionLabel:`Descrição`,labelsLabel:`Etiquetas`,acceptanceCriteriaLabel:`Critérios de aceitação`,noLabels:`Sem etiquetas`,noCriteria:`Sem critérios`,backToEdit:`Voltar à edição`,createSpec:`Criar Spec`,updateSpec:`Atualizar Spec`,noPriority:`sem prioridade`,inserted:`inserido`,removed:`removido`,added:`adicionado`,unchanged:`sem alterações`},i={connecting:`A ligar…`,thinking:`A pensar…`,tool:`A ler código…`},a={ariaLabel:`Modelo de geração de specs`,placeholder:`Escolha um modelo`},o={shell:e,draftPanel:t,priority:n,reviewOverlay:r,statusPills:i,modelPicker:a};export{o as default,t as draftPanel,a as modelPicker,n as priority,r as reviewOverlay,e as shell,i as statusPills};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={dialogAriaLabel:`Explore Spec · 交互式`,backAriaLabel:`返回 (Esc)`,exploreEyebrow:`EXPLORE SPEC · 交互式`,editingEyebrow:`编辑 SPEC · #{{id}}`,newSpecPlaceholder:`新建 Spec…`,contextPill:`上下文:{{scopes}}`,contextPillTitle:`当前 Explore 会话的上下文范围`,contextScopeCodebase:`代码库`,contextScopeMinimal:`最小`,saveAsDraft:`保存为草稿`,saveAsDraftAriaLabel:`将当前探索保存为草稿`,saveAsDraftDisabledTitle:`请先发送至少一条消息再保存`,review:`审阅 →`,reviewAriaLabel:`创建 Spec 前审阅更改`,createSpec:`创建 Spec`,updateSpec:`更新 Spec`,createSpecAriaLabel:`从当前草稿创建 Spec`,updateSpecAriaLabel:`用当前草稿更新 Spec`,createSpecDisabledTitle:`提交前需要填写标题`,editModeIntro:`Spec 已加载在右侧。输入改进内容即可开始。`,startingConversation:`正在开始对话…`,suggestedRepliesAriaLabel:`建议回复`,composerPlaceholder:`输入回复… 拖入文件以添加附件`,composerAriaLabel:`Spec 想法`,stop:`停止`,send:`发送`,you:`你`,closePrompt:{title:`保存此次探索?`,description:`保存为草稿会保留对话,之后可从看板继续。丢弃则会将其删除。`},toasts:{saveDraftFailed:`保存草稿失败`,draftSaved:`草稿已保存 — #{{id}} {{title}}`,draftNetworkError:`保存草稿时网络错误`,updateSpecFailed:`更新 Spec 失败`,specUpdated:`Spec 已更新 — #{{id}} {{title}}`,createSpecFailed:`创建 Spec 失败`,specCreated:`Spec 已创建 — #{{id}} {{title}}`,createNetworkError:`创建 Spec 时网络错误`,unsupportedFileType:`不支持的文件类型:{{name}}`,uploadFailed:`{{name}} 上传失败:{{message}}`},fromWebsite:`从网站创建`,fromWebsiteTitle:`打开真实网页,框选一块区域,把它变成 spec`,captureResponsiveSizes_one:`响应式 · {{count}} 个尺寸`,captureResponsiveSizes_other:`响应式 · {{count}} 个尺寸`,captureFeedbackPrompt:`我刚刚截取了一个网页的一部分(截图和内容已附上)。简要说说:你看到了什么?它与我们目前的讨论以及我们正在定义的 spec 有什么关联?给我你的反馈。`},t={ready:`草稿就绪`,titleLabel:`标题`,titlePlaceholder:`简洁、面向行动的标题…`,titleAriaLabel:`Spec 标题`,priorityLabel:`优先级`,priorityAriaLabel:`Spec 优先级`,labelsLabel:`标签`,descriptionLabel:`描述`,descriptionPlaceholder:`解决什么问题?改动什么?为什么是现在?`,descriptionAriaLabel:`Spec 描述`,acceptanceCriteriaLabel:`验收标准`,attachmentsHeading_one:`附件({{count}})`,attachmentsHeading_other:`附件({{count}})`,linkedOnCreate:`创建时关联`,attachmentsListAriaLabel:`已累积的附件`,removeLabelAriaLabel:`移除标签 {{label}}`,addLabelAriaLabel:`添加标签`,addLabelsPlaceholder:`添加标签…`,removeAttachmentAriaLabel:`移除 {{filename}}`,criterionPlaceholder:`可验证的结果…`,criterionAriaLabel:`验收标准 {{number}}`,removeCriterionAriaLabel:`移除标准 {{number}}`,addCriterion:`添加标准`,addCriterionAriaLabel:`添加验收标准`},n={low:`低`,medium:`中`,high:`高`,critical:`紧急`},r={dialogAriaLabel:`审阅更改`,eyebrow:`审阅更改 · explore-spec`,heading:`提交前确认`,titleLabel:`标题`,priorityLabel:`优先级`,descriptionLabel:`描述`,labelsLabel:`标签`,acceptanceCriteriaLabel:`验收标准`,noLabels:`无标签`,noCriteria:`无标准`,backToEdit:`返回编辑`,createSpec:`创建 Spec`,updateSpec:`更新 Spec`,noPriority:`无优先级`,inserted:`插入`,removed:`删除`,added:`新增`,unchanged:`未变更`},i={connecting:`连接中…`,thinking:`思考中…`,tool:`正在阅读代码…`},a={ariaLabel:`Spec 生成模型`,placeholder:`选择模型`},o={shell:e,draftPanel:t,priority:n,reviewOverlay:r,statusPills:i,modelPicker:a};export{o as default,t as draftPanel,a as modelPicker,n as priority,r as reviewOverlay,e as shell,i as statusPills};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={dialogAriaLabel:`Explore Spec · interaktiv`,backAriaLabel:`Zurück (Esc)`,exploreEyebrow:`EXPLORE SPEC · interaktiv`,editingEyebrow:`SPEC BEARBEITEN · #{{id}}`,newSpecPlaceholder:`Neue Spec…`,contextPill:`Kontext: {{scopes}}`,contextPillTitle:`Aktiver Kontextumfang für diese Explore-Session`,contextScopeCodebase:`Codebase`,contextScopeMinimal:`minimal`,saveAsDraft:`Als Entwurf speichern`,saveAsDraftAriaLabel:`Aktuelle Exploration als Entwurf speichern`,saveAsDraftDisabledTitle:`Vor dem Speichern mindestens eine Nachricht senden`,review:`Prüfen →`,reviewAriaLabel:`Änderungen vor dem Erstellen der Spec prüfen`,createSpec:`Spec erstellen`,updateSpec:`Spec aktualisieren`,createSpecAriaLabel:`Spec aus aktuellem Entwurf erstellen`,updateSpecAriaLabel:`Spec mit aktuellem Entwurf aktualisieren`,createSpecDisabledTitle:`Zum Committen wird ein Titel benötigt`,editModeIntro:`Spec rechts geladen. Gib eine Verfeinerung ein, um zu starten.`,startingConversation:`Unterhaltung wird gestartet…`,suggestedRepliesAriaLabel:`Antwortvorschläge`,composerPlaceholder:`Antwort eingeben… Dateien zum Anhängen hierher ziehen`,composerAriaLabel:`Spec-Idee`,stop:`Stopp`,send:`Senden`,you:`Du`,closePrompt:{title:`Diese Exploration speichern?`,description:`„Als Entwurf speichern“ behält die Unterhaltung, damit du sie später vom Board aus fortsetzen kannst. „Verwerfen“ löscht sie.`},toasts:{saveDraftFailed:`Entwurf konnte nicht gespeichert werden`,draftSaved:`Entwurf gespeichert – #{{id}} {{title}}`,draftNetworkError:`Netzwerkfehler beim Speichern des Entwurfs`,updateSpecFailed:`Spec konnte nicht aktualisiert werden`,specUpdated:`Spec aktualisiert – #{{id}} {{title}}`,createSpecFailed:`Spec konnte nicht erstellt werden`,specCreated:`Spec erstellt – #{{id}} {{title}}`,createNetworkError:`Netzwerkfehler beim Erstellen der Spec`,unsupportedFileType:`Nicht unterstützter Dateityp: {{name}}`,uploadFailed:`Upload fehlgeschlagen für {{name}}: {{message}}`},fromWebsite:`Von einer Website`,fromWebsiteTitle:`Öffne eine echte Webseite, wähle einen Bereich aus und mach daraus eine Spec`,captureResponsiveSizes_one:`Responsive · {{count}} Größe`,captureResponsiveSizes_other:`Responsive · {{count}} Größen`,captureFeedbackPrompt:`Ich habe gerade einen Teil einer Webseite erfasst (Screenshot und Inhalt sind angehängt). Kurz: Was siehst du, und wie hängt es mit unserem bisherigen Gespräch und der Spec zusammen, die wir gerade gestalten? Gib mir dein Feedback.`},t={ready:`Entwurf bereit`,titleLabel:`Titel`,titlePlaceholder:`Prägnanter, handlungsorientierter Titel…`,titleAriaLabel:`Spec-Titel`,priorityLabel:`Priorität`,priorityAriaLabel:`Spec-Priorität`,labelsLabel:`Labels`,descriptionLabel:`Beschreibung`,descriptionPlaceholder:`Welches Problem wird gelöst? Was ändert sich? Warum jetzt?`,descriptionAriaLabel:`Spec-Beschreibung`,acceptanceCriteriaLabel:`Akzeptanzkriterien`,attachmentsHeading_one:`Anhänge ({{count}})`,attachmentsHeading_other:`Anhänge ({{count}})`,linkedOnCreate:`wird beim Erstellen verknüpft`,attachmentsListAriaLabel:`Gesammelte Anhänge`,removeLabelAriaLabel:`Label {{label}} entfernen`,addLabelAriaLabel:`Label hinzufügen`,addLabelsPlaceholder:`Labels hinzufügen…`,removeAttachmentAriaLabel:`{{filename}} entfernen`,criterionPlaceholder:`Testbares Ergebnis…`,criterionAriaLabel:`Akzeptanzkriterium {{number}}`,removeCriterionAriaLabel:`Kriterium {{number}} entfernen`,addCriterion:`Kriterium hinzufügen`,addCriterionAriaLabel:`Akzeptanzkriterium hinzufügen`},n={low:`niedrig`,medium:`mittel`,high:`hoch`,critical:`kritisch`},r={dialogAriaLabel:`Änderungen prüfen`,eyebrow:`Änderungen prüfen · explore-spec`,heading:`Vor dem Commit bestätigen`,titleLabel:`Titel`,priorityLabel:`Priorität`,descriptionLabel:`Beschreibung`,labelsLabel:`Labels`,acceptanceCriteriaLabel:`Akzeptanzkriterien`,noLabels:`Keine Labels`,noCriteria:`Keine Kriterien`,backToEdit:`Zurück zum Bearbeiten`,createSpec:`Spec erstellen`,updateSpec:`Spec aktualisieren`,noPriority:`keine Priorität`,inserted:`eingefügt`,removed:`entfernt`,added:`hinzugefügt`,unchanged:`unverändert`},i={connecting:`Verbinde…`,thinking:`Denke nach…`,tool:`Lese Code…`},a={ariaLabel:`Modell für die Spec-Generierung`,placeholder:`Modell wählen`},o={shell:e,draftPanel:t,priority:n,reviewOverlay:r,statusPills:i,modelPicker:a};export{o as default,t as draftPanel,a as modelPicker,n as priority,r as reviewOverlay,e as shell,i as statusPills};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={dialogAriaLabel:`Explore Spec · interattivo`,backAriaLabel:`Indietro (Esc)`,exploreEyebrow:`EXPLORE SPEC · interattivo`,editingEyebrow:`MODIFICA SPEC · #{{id}}`,newSpecPlaceholder:`Nuova spec…`,contextPill:`Contesto: {{scopes}}`,contextPillTitle:`Ambito di contesto attivo per questa sessione Explore`,contextScopeCodebase:`codebase`,contextScopeMinimal:`minimo`,saveAsDraft:`Salva come bozza`,saveAsDraftAriaLabel:`Salva l'esplorazione corrente come bozza`,saveAsDraftDisabledTitle:`Invia almeno un messaggio prima di salvare`,review:`Rivedi →`,reviewAriaLabel:`Rivedi le modifiche prima di creare la spec`,createSpec:`Crea spec`,updateSpec:`Aggiorna spec`,createSpecAriaLabel:`Crea la spec dalla bozza corrente`,updateSpecAriaLabel:`Aggiorna la spec con la bozza corrente`,createSpecDisabledTitle:`Serve un titolo per confermare`,editModeIntro:`Spec caricata a destra. Scrivi una rifinitura per iniziare.`,startingConversation:`Avvio della conversazione…`,suggestedRepliesAriaLabel:`Risposte suggerite`,composerPlaceholder:`Scrivi la tua risposta… trascina i file per allegarli`,composerAriaLabel:`Idea per la spec`,stop:`Stop`,send:`Invia`,you:`Tu`,closePrompt:{title:`Salvare questa esplorazione?`,description:`Salva come bozza conserva la conversazione per riprenderla in seguito dalla board. Scarta la elimina.`},toasts:{saveDraftFailed:`Impossibile salvare la bozza`,draftSaved:`Bozza salvata — #{{id}} {{title}}`,draftNetworkError:`Errore di rete durante il salvataggio della bozza`,updateSpecFailed:`Impossibile aggiornare la spec`,specUpdated:`Spec aggiornata — #{{id}} {{title}}`,createSpecFailed:`Impossibile creare la spec`,specCreated:`Spec creata — #{{id}} {{title}}`,createNetworkError:`Errore di rete durante la creazione della spec`,unsupportedFileType:`Tipo di file non supportato: {{name}}`,uploadFailed:`Caricamento non riuscito per {{name}}: {{message}}`},fromWebsite:`Da un sito web`,fromWebsiteTitle:`Apri una pagina web reale, seleziona un'area e trasformala in una spec`,captureResponsiveSizes_one:`Responsive · {{count}} dimensione`,captureResponsiveSizes_other:`Responsive · {{count}} dimensioni`,captureFeedbackPrompt:`Ho appena catturato una parte di una pagina web (screenshot e contenuto sono allegati). In breve: cosa vedi e come si collega a ciò di cui abbiamo parlato e alla spec che stiamo definendo? Dammi il tuo feedback.`},t={ready:`Bozza pronta`,titleLabel:`Titolo`,titlePlaceholder:`Titolo conciso e orientato all'azione…`,titleAriaLabel:`Titolo della spec`,priorityLabel:`Priorità`,priorityAriaLabel:`Priorità della spec`,labelsLabel:`Etichette`,descriptionLabel:`Descrizione`,descriptionPlaceholder:`Quale problema risolve? Cosa cambia? Perché ora?`,descriptionAriaLabel:`Descrizione della spec`,acceptanceCriteriaLabel:`Criteri di accettazione`,attachmentsHeading_one:`Allegato ({{count}})`,attachmentsHeading_other:`Allegati ({{count}})`,linkedOnCreate:`collegati alla creazione`,attachmentsListAriaLabel:`Allegati accumulati`,removeLabelAriaLabel:`Rimuovi etichetta {{label}}`,addLabelAriaLabel:`Aggiungi etichetta`,addLabelsPlaceholder:`Aggiungi etichette…`,removeAttachmentAriaLabel:`Rimuovi {{filename}}`,criterionPlaceholder:`Risultato verificabile…`,criterionAriaLabel:`Criterio di accettazione {{number}}`,removeCriterionAriaLabel:`Rimuovi criterio {{number}}`,addCriterion:`Aggiungi criterio`,addCriterionAriaLabel:`Aggiungi criterio di accettazione`},n={low:`bassa`,medium:`media`,high:`alta`,critical:`critica`},r={dialogAriaLabel:`Rivedi le modifiche`,eyebrow:`Rivedi le modifiche · explore-spec`,heading:`Conferma prima del commit`,titleLabel:`Titolo`,priorityLabel:`Priorità`,descriptionLabel:`Descrizione`,labelsLabel:`Etichette`,acceptanceCriteriaLabel:`Criteri di accettazione`,noLabels:`Nessuna etichetta`,noCriteria:`Nessun criterio`,backToEdit:`Torna alla modifica`,createSpec:`Crea spec`,updateSpec:`Aggiorna spec`,noPriority:`nessuna priorità`,inserted:`inserito`,removed:`rimosso`,added:`aggiunto`,unchanged:`invariato`},i={connecting:`Connessione…`,thinking:`Sto pensando…`,tool:`Sto leggendo il codice…`},a={ariaLabel:`Modello per la generazione della spec`,placeholder:`Scegli un modello`},o={shell:e,draftPanel:t,priority:n,reviewOverlay:r,statusPills:i,modelPicker:a};export{o as default,t as draftPanel,a as modelPicker,n as priority,r as reviewOverlay,e as shell,i as statusPills};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-CNC7AqOf.js";var t=e({default:()=>c,draftPanel:()=>r,modelPicker:()=>s,priority:()=>i,reviewOverlay:()=>a,shell:()=>n,statusPills:()=>o}),n={dialogAriaLabel:`Explore Spec · interactive`,backAriaLabel:`Back (Esc)`,exploreEyebrow:`EXPLORE SPEC · interactive`,editingEyebrow:`EDITING SPEC · #{{id}}`,newSpecPlaceholder:`New spec…`,contextPill:`Context: {{scopes}}`,contextPillTitle:`Active context scope for this Explore session`,contextScopeCodebase:`codebase`,contextScopeMinimal:`minimal`,saveAsDraft:`Save as Draft`,saveAsDraftAriaLabel:`Save current exploration as draft`,saveAsDraftDisabledTitle:`Send at least one message before saving`,review:`Review →`,reviewAriaLabel:`Review changes before creating spec`,createSpec:`Create Spec`,updateSpec:`Update Spec`,createSpecAriaLabel:`Create spec from current draft`,updateSpecAriaLabel:`Update spec with current draft`,createSpecDisabledTitle:`A title is needed to commit`,editModeIntro:`Spec loaded on the right. Type a refinement to get started.`,startingConversation:`Starting conversation…`,suggestedRepliesAriaLabel:`Suggested replies`,composerPlaceholder:`Type your reply… drag files to attach`,composerAriaLabel:`Spec idea`,stop:`Stop`,send:`Send`,you:`You`,closePrompt:{title:`Save this exploration?`,description:`Save as Draft keeps the conversation so you can pick it up later from the board. Discard throws it away.`},toasts:{saveDraftFailed:`Failed to save draft`,draftSaved:`Draft saved — #{{id}} {{title}}`,draftNetworkError:`Network error saving draft`,updateSpecFailed:`Failed to update spec`,specUpdated:`Spec updated — #{{id}} {{title}}`,createSpecFailed:`Failed to create spec`,specCreated:`Spec created — #{{id}} {{title}}`,createNetworkError:`Network error creating spec`,unsupportedFileType:`Unsupported file type: {{name}}`,uploadFailed:`Upload failed for {{name}}: {{message}}`},fromWebsite:`From a website`,fromWebsiteTitle:`Open a real web page, select an area, and turn it into a spec`,captureResponsiveSizes_one:`Responsive · {{count}} size`,captureResponsiveSizes_other:`Responsive · {{count}} sizes`,captureFeedbackPrompt:`I've just captured part of a web page (its screenshot and content are attached). Briefly: what do you see, and how does it relate to what we've discussed so far and to the spec we're shaping? Give me your feedback.`},r={ready:`Draft ready`,titleLabel:`Title`,titlePlaceholder:`Concise, action-oriented title…`,titleAriaLabel:`Spec title`,priorityLabel:`Priority`,priorityAriaLabel:`Spec priority`,labelsLabel:`Labels`,descriptionLabel:`Description`,descriptionPlaceholder:`What problem is this solving? What changes? Why now?`,descriptionAriaLabel:`Spec description`,acceptanceCriteriaLabel:`Acceptance Criteria`,attachmentsHeading_one:`Attachments ({{count}})`,attachmentsHeading_other:`Attachments ({{count}})`,linkedOnCreate:`linked on Create`,attachmentsListAriaLabel:`Accumulated attachments`,removeLabelAriaLabel:`Remove label {{label}}`,addLabelAriaLabel:`Add label`,addLabelsPlaceholder:`Add labels…`,removeAttachmentAriaLabel:`Remove {{filename}}`,criterionPlaceholder:`Testable outcome…`,criterionAriaLabel:`Acceptance criterion {{number}}`,removeCriterionAriaLabel:`Remove criterion {{number}}`,addCriterion:`Add criterion`,addCriterionAriaLabel:`Add acceptance criterion`},i={low:`low`,medium:`medium`,high:`high`,critical:`critical`},a={dialogAriaLabel:`Review changes`,eyebrow:`Review changes · explore-spec`,heading:`Confirm before commit`,titleLabel:`Title`,priorityLabel:`Priority`,descriptionLabel:`Description`,labelsLabel:`Labels`,acceptanceCriteriaLabel:`Acceptance criteria`,noLabels:`No labels`,noCriteria:`No criteria`,backToEdit:`Back to edit`,createSpec:`Create Spec`,updateSpec:`Update Spec`,noPriority:`no priority`,inserted:`inserted`,removed:`removed`,added:`added`,unchanged:`unchanged`},o={connecting:`Connecting…`,thinking:`Thinking…`,tool:`Reading code…`},s={ariaLabel:`Spec generation model`,placeholder:`Pick a model`},c={shell:n,draftPanel:r,priority:i,reviewOverlay:a,statusPills:o,modelPicker:s};export{t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={dialogAriaLabel:`Explore Spec · インタラクティブ`,backAriaLabel:`戻る (Esc)`,exploreEyebrow:`EXPLORE SPEC · インタラクティブ`,editingEyebrow:`スペック編集中 · #{{id}}`,newSpecPlaceholder:`新しいスペック…`,contextPill:`コンテキスト: {{scopes}}`,contextPillTitle:`この Explore セッションで有効なコンテキストスコープ`,contextScopeCodebase:`コードベース`,contextScopeMinimal:`最小`,saveAsDraft:`下書きとして保存`,saveAsDraftAriaLabel:`現在の探索を下書きとして保存`,saveAsDraftDisabledTitle:`保存するには少なくとも 1 件メッセージを送信してください`,review:`レビュー →`,reviewAriaLabel:`スペック作成前に変更をレビュー`,createSpec:`スペックを作成`,updateSpec:`スペックを更新`,createSpecAriaLabel:`現在の下書きからスペックを作成`,updateSpecAriaLabel:`現在の下書きでスペックを更新`,createSpecDisabledTitle:`コミットにはタイトルが必要です`,editModeIntro:`右側にスペックを読み込みました。改善内容を入力して始めましょう。`,startingConversation:`会話を開始しています…`,suggestedRepliesAriaLabel:`返信候補`,composerPlaceholder:`返信を入力… ファイルをドラッグして添付`,composerAriaLabel:`スペックのアイデア`,stop:`停止`,send:`送信`,you:`あなた`,closePrompt:{title:`この探索を保存しますか?`,description:`「下書きとして保存」は会話を保持し、後でボードから再開できます。「破棄」は完全に削除します。`},toasts:{saveDraftFailed:`下書きの保存に失敗しました`,draftSaved:`下書きを保存しました — #{{id}} {{title}}`,draftNetworkError:`下書き保存中にネットワークエラーが発生しました`,updateSpecFailed:`スペックの更新に失敗しました`,specUpdated:`スペックを更新しました — #{{id}} {{title}}`,createSpecFailed:`スペックの作成に失敗しました`,specCreated:`スペックを作成しました — #{{id}} {{title}}`,createNetworkError:`スペック作成中にネットワークエラーが発生しました`,unsupportedFileType:`未対応のファイル形式: {{name}}`,uploadFailed:`{{name}} のアップロードに失敗しました: {{message}}`},fromWebsite:`ウェブサイトから`,fromWebsiteTitle:`実際のウェブページを開き、範囲を選択してスペックに変換`,captureResponsiveSizes_one:`レスポンシブ · {{count}} サイズ`,captureResponsiveSizes_other:`レスポンシブ · {{count}} サイズ`,captureFeedbackPrompt:`ウェブページの一部をキャプチャしました(スクリーンショットと内容を添付しています)。手短に: 何が見えますか?これまでの会話や、今まとめているスペックとどう関係しますか?フィードバックをください。`},t={ready:`下書き準備完了`,titleLabel:`タイトル`,titlePlaceholder:`簡潔でアクション指向のタイトル…`,titleAriaLabel:`スペックのタイトル`,priorityLabel:`優先度`,priorityAriaLabel:`スペックの優先度`,labelsLabel:`ラベル`,descriptionLabel:`説明`,descriptionPlaceholder:`どんな課題を解決しますか?何が変わりますか?なぜ今ですか?`,descriptionAriaLabel:`スペックの説明`,acceptanceCriteriaLabel:`受け入れ基準`,attachmentsHeading_one:`添付ファイル ({{count}})`,attachmentsHeading_other:`添付ファイル ({{count}})`,linkedOnCreate:`作成時にリンクされます`,attachmentsListAriaLabel:`蓄積された添付ファイル`,removeLabelAriaLabel:`ラベル {{label}} を削除`,addLabelAriaLabel:`ラベルを追加`,addLabelsPlaceholder:`ラベルを追加…`,removeAttachmentAriaLabel:`{{filename}} を削除`,criterionPlaceholder:`テスト可能な結果…`,criterionAriaLabel:`受け入れ基準 {{number}}`,removeCriterionAriaLabel:`基準 {{number}} を削除`,addCriterion:`基準を追加`,addCriterionAriaLabel:`受け入れ基準を追加`},n={low:`低`,medium:`中`,high:`高`,critical:`緊急`},r={dialogAriaLabel:`変更をレビュー`,eyebrow:`変更をレビュー · explore-spec`,heading:`コミット前に確認`,titleLabel:`タイトル`,priorityLabel:`優先度`,descriptionLabel:`説明`,labelsLabel:`ラベル`,acceptanceCriteriaLabel:`受け入れ基準`,noLabels:`ラベルなし`,noCriteria:`基準なし`,backToEdit:`編集に戻る`,createSpec:`スペックを作成`,updateSpec:`スペックを更新`,noPriority:`優先度なし`,inserted:`挿入`,removed:`削除`,added:`追加`,unchanged:`変更なし`},i={connecting:`接続中…`,thinking:`思考中…`,tool:`コードを読み取り中…`},a={ariaLabel:`スペック生成モデル`,placeholder:`モデルを選択`},o={shell:e,draftPanel:t,priority:n,reviewOverlay:r,statusPills:i,modelPicker:a};export{o as default,t as draftPanel,a as modelPicker,n as priority,r as reviewOverlay,e as shell,i as statusPills};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./createLucideIcon-DtODIU64.js";var t={name:`chevron-right`,size:24,node:[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]};t.node;var n=e(t),r={name:`file-text`,size:24,node:[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 9H8`,key:`b1mrlr`}],[`path`,{d:`M16 13H8`,key:`t4e002`}],[`path`,{d:`M16 17H8`,key:`z1uh3a`}]]};r.node;var i=e(r);export{n,i as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{A as e,C as t,S as n,k as r,w as i,x as a,y as o}from"./useSharedWebSocket-Bj4LMp7b.js";import{t as s}from"./getTimezoneOffsetInMilliseconds-vJ7qUoqN.js";function c(e,t){let n=a(e)-+a(t);return n<0?-1:n>0?1:n}function l(e){return i(e,Date.now())}function u(e,n,r){let[i,a]=t(r?.in,e,n),o=i.getFullYear()-a.getFullYear(),s=i.getMonth()-a.getMonth();return o*12+s}function d(e){return t=>{let n=(e?Math[e]:Math.trunc)(t);return n===0?0:n}}function f(e,t){return a(e)-+a(t)}function p(e,t){let n=a(e,t?.in);return n.setHours(23,59,59,999),n}function m(e,t){let n=a(e,t?.in),r=n.getMonth();return n.setFullYear(n.getFullYear(),r+1,0),n.setHours(23,59,59,999),n}function h(e,t){let n=a(e,t?.in);return+p(n,t)==+m(n,t)}function g(e,n,r){let[i,a,o]=t(r?.in,e,e,n),s=c(a,o),l=Math.abs(u(a,o));if(l<1)return 0;a.getMonth()===1&&a.getDate()>27&&a.setDate(30),a.setMonth(a.getMonth()-s*l);let d=c(a,o)===-s;h(i)&&l===1&&c(i,o)===1&&(d=!1);let f=s*(l-+d);return f===0?0:f}function _(e,t,n){let r=f(e,t)/1e3;return d(n?.roundingMethod)(r)}function v(i,a,l){let u=n(),d=l?.locale??u.locale??o,f=c(i,a);if(isNaN(f))throw RangeError(`Invalid time value`);let p=Object.assign({},l,{addSuffix:l?.addSuffix,comparison:f}),[m,h]=t(l?.in,...f>0?[a,i]:[i,a]),v=_(h,m),y=(s(h)-s(m))/1e3,b=Math.round((v-y)/60),x;if(b<2)return l?.includeSeconds?v<5?d.formatDistance(`lessThanXSeconds`,5,p):v<10?d.formatDistance(`lessThanXSeconds`,10,p):v<20?d.formatDistance(`lessThanXSeconds`,20,p):v<40?d.formatDistance(`halfAMinute`,0,p):v<60?d.formatDistance(`lessThanXMinutes`,1,p):d.formatDistance(`xMinutes`,1,p):b===0?d.formatDistance(`lessThanXMinutes`,1,p):d.formatDistance(`xMinutes`,b,p);if(b<45)return d.formatDistance(`xMinutes`,b,p);if(b<90)return d.formatDistance(`aboutXHours`,1,p);if(b<1440){let e=Math.round(b/60);return d.formatDistance(`aboutXHours`,e,p)}else if(b<2520)return d.formatDistance(`xDays`,1,p);else if(b<43200){let e=Math.round(b/r);return d.formatDistance(`xDays`,e,p)}else if(b<43200*2)return x=Math.round(b/e),d.formatDistance(`aboutXMonths`,x,p);if(x=g(h,m),x<12){let t=Math.round(b/e);return d.formatDistance(`xMonths`,t,p)}else{let e=x%12,t=Math.trunc(x/12);return e<3?d.formatDistance(`aboutXYears`,t,p):e<9?d.formatDistance(`overXYears`,t,p):d.formatDistance(`almostXYears`,t+1,p)}}function y(e,t){return v(e,l(e),t)}export{y as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{x as e}from"./useSharedWebSocket-Bj4LMp7b.js";function t(t){let n=e(t),r=new Date(Date.UTC(n.getFullYear(),n.getMonth(),n.getDate(),n.getHours(),n.getMinutes(),n.getSeconds(),n.getMilliseconds()));return r.setUTCFullYear(n.getFullYear()),t-+r}export{t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./createLucideIcon-DtODIU64.js";var t={name:`git-branch`,size:24,node:[[`path`,{d:`M15 6a9 9 0 0 0-9 9V3`,key:`1cii5b`}],[`circle`,{cx:`18`,cy:`6`,r:`3`,key:`1h7g24`}],[`circle`,{cx:`6`,cy:`18`,r:`3`,key:`fqmcym`}]]};t.node;var n=e(t);export{n as t};
|