specrails-desktop 2.64.2 → 2.65.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/cli/dist/status.js +3 -0
- package/client/dist/assets/ActivityFeedPage-ByVKYII-.js +1 -0
- package/client/dist/assets/AgentBrowserCapture-BGUTjhUr.js +1 -0
- package/client/dist/assets/AgentModeAnalyticsPane-CtOLDDjB.js +2 -0
- package/client/dist/assets/AgentModeCodePane-CDhUKarT.js +2 -0
- package/client/dist/assets/AgentModeJobsPane-BAa_oEHJ.js +1 -0
- package/client/dist/assets/AgentsPage-D32hG4Ve.js +120 -0
- package/client/dist/assets/AnalyticsPage-BU50zeG6.js +5 -0
- package/client/dist/assets/BudgetCard-DP_jxwaD.js +55 -0
- package/client/dist/assets/CodePage-jiYnKGpp.js +3 -0
- package/client/dist/assets/CostValue-Bvn8674q.js +1 -0
- package/client/dist/assets/DesktopAnalyticsPage-CF__H4e3.js +1 -0
- package/client/dist/assets/DocView-RrAp70zp.js +11 -0
- package/client/dist/assets/DocsDialog-DkqHU-JF.js +1 -0
- package/client/dist/assets/DocsPage-C6X089zC.js +1 -0
- package/client/dist/assets/ExportDropdown-C5-o8y3K.js +1 -0
- package/client/dist/assets/HelpHint-Crf9_uoR.js +1 -0
- package/client/dist/assets/IntegrationsPage-aflU3KHK.js +1 -0
- package/client/dist/assets/InteractiveJobComposer-CEMMhyyJ.js +19 -0
- package/client/dist/assets/JobDetailModal-BVJ6hyRs.js +1 -0
- package/client/dist/assets/JobDetailPage-DHzBUmox.js +1 -0
- package/client/dist/assets/JobsPage-o-LAqkwC.js +1 -0
- package/client/dist/assets/LoopBuilderPage-DbSVmXBM.js +1 -0
- package/client/dist/assets/LoopPreviewModal-DbJcVyN1.js +1 -0
- package/client/dist/assets/{LoopWindowSurface-DE0v2K1p.js → LoopWindowSurface-Co1ZK26V.js} +1 -1
- package/client/dist/assets/LoopsPage-C4lgkPXB.js +2 -0
- package/client/dist/assets/MinimizedChatsContext-742ypO8n.js +1 -0
- package/client/dist/assets/PluginsPage-Acks9ges.js +2 -0
- package/client/dist/assets/RailTrack-BfLmBzBh.js +1 -0
- package/client/dist/assets/{RepositoryScopeSelector-2eSqR9WK.js → RepositoryScopeSelector-DcxbKI9w.js} +1 -1
- package/client/dist/assets/ReviewPacketPage-CAVSIOAJ.js +7 -0
- package/client/dist/assets/TemplatePreviewModal-C23SYCTm.js +1 -0
- package/client/dist/assets/TicketDetailModalContext-B-Gtm6Ob.js +23 -0
- package/client/dist/assets/Trans-C6J0cLyh.js +1 -0
- package/client/dist/assets/a11y-prefs-BqoP5goK.js +1 -0
- package/client/dist/assets/activity-BBWfoUOG.js +1 -0
- package/client/dist/assets/activity-BM_skann.js +1 -0
- package/client/dist/assets/activity-Cevl82ke.js +1 -0
- package/client/dist/assets/activity-CmACk5W5.js +1 -0
- package/client/dist/assets/activity-D9LBw3PQ.js +1 -0
- package/client/dist/assets/activity-Dspbb9lz.js +1 -0
- package/client/dist/assets/activity-FPjYIjv9.js +1 -0
- package/client/dist/assets/activity-nLCKMUKt.js +1 -0
- package/client/dist/assets/addspec-BI4jDMhA.js +1 -0
- package/client/dist/assets/addspec-BldTv7Tl.js +1 -0
- package/client/dist/assets/addspec-Cdq-2EcC.js +1 -0
- package/client/dist/assets/addspec-DH5M16BQ.js +1 -0
- package/client/dist/assets/addspec-DOFo9pD5.js +1 -0
- package/client/dist/assets/addspec-DPkwhdmL.js +1 -0
- package/client/dist/assets/addspec-Dzy12Pv3.js +1 -0
- package/client/dist/assets/addspec-skTs6EEW.js +1 -0
- package/client/dist/assets/agent-B_UEUy7Y.js +1 -0
- package/client/dist/assets/agent-BarjlhTA.js +1 -0
- package/client/dist/assets/agent-BfqIITo5.js +1 -0
- package/client/dist/assets/agent-Bt9a7Kyj.js +1 -0
- package/client/dist/assets/agent-C3689RwP.js +1 -0
- package/client/dist/assets/agent-CrmboTAi.js +1 -0
- package/client/dist/assets/agent-DcsoTnuE.js +1 -0
- package/client/dist/assets/agent-GDZoYwd4.js +1 -0
- package/client/dist/assets/{agentRuntime-es2ymSl-.js → agentRuntime-BYH70bKY.js} +1 -1
- package/client/dist/assets/agentRuntime-BijLh8I9.js +1 -0
- package/client/dist/assets/{agentRuntime-BzuwQQgn.js → agentRuntime-BvyuETPe.js} +1 -1
- package/client/dist/assets/{agentRuntime-BDvbJMmS.js → agentRuntime-C2WI6HQh.js} +1 -1
- package/client/dist/assets/{agentRuntime-BKJfv5YD.js → agentRuntime-CZPIlQsr.js} +1 -1
- package/client/dist/assets/{agentRuntime-DiCldqGG.js → agentRuntime-D2dDvCyJ.js} +1 -1
- package/client/dist/assets/agentRuntime-DWZedEbn.js +1 -0
- package/client/dist/assets/agentRuntime-DkIruUNw.js +1 -0
- package/client/dist/assets/agents-35_PDKx9.js +1 -0
- package/client/dist/assets/agents-8fZnHhEQ.js +1 -0
- package/client/dist/assets/agents-Bgimtw8z.js +1 -0
- package/client/dist/assets/agents-C4P160Us.js +1 -0
- package/client/dist/assets/agents-Clg67zbp.js +1 -0
- package/client/dist/assets/agents-DJfF4o6G.js +1 -0
- package/client/dist/assets/agents-Dc9-Y5cw.js +1 -0
- package/client/dist/assets/agents-EN1Zl4YZ.js +1 -0
- package/client/dist/assets/agentstudio-Bm4-NYaG.js +1 -0
- package/client/dist/assets/agentstudio-CD1fuj2o.js +1 -0
- package/client/dist/assets/agentstudio-CQGWFSst.js +1 -0
- package/client/dist/assets/agentstudio-CqVSb65S.js +1 -0
- package/client/dist/assets/agentstudio-DIE_HjsX.js +1 -0
- package/client/dist/assets/agentstudio-D_OmQK-k.js +1 -0
- package/client/dist/assets/agentstudio-Djz9aUfb.js +1 -0
- package/client/dist/assets/agentstudio-Qa3v9o5J.js +1 -0
- package/client/dist/assets/{aiedit-DNXxq_Dr.js → aiedit-1VzLs37W.js} +1 -1
- package/client/dist/assets/{aiedit-DCjA7jLJ.js → aiedit-BNp6GSik.js} +1 -1
- package/client/dist/assets/{aiedit-BoG24nlg.js → aiedit-BOY5xRPi.js} +1 -1
- package/client/dist/assets/{aiedit-iIjz2_Qk.js → aiedit-BrqMZvbc.js} +1 -1
- package/client/dist/assets/{aiedit-CjlSRQVP.js → aiedit-CVgtl7hm.js} +1 -1
- package/client/dist/assets/{aiedit-DQ-0_pvE.js → aiedit-CrFW9Jd2.js} +1 -1
- package/client/dist/assets/{aiedit-olnv3QSt.js → aiedit-YE2lILp7.js} +1 -1
- package/client/dist/assets/{aiedit-B0KUbpB6.js → aiedit-iA_R1AVQ.js} +1 -1
- package/client/dist/assets/analytics-3w0t-4ic.js +1 -0
- package/client/dist/assets/analytics-BRi4KQD6.js +1 -0
- package/client/dist/assets/analytics-BtjAqzke.js +1 -0
- package/client/dist/assets/analytics-COSQ1h47.js +1 -0
- package/client/dist/assets/analytics-CP2HjESk.js +1 -0
- package/client/dist/assets/analytics-DY65TC62.js +1 -0
- package/client/dist/assets/analytics-Den_vvxn.js +1 -0
- package/client/dist/assets/analytics-LmBS96O8.js +1 -0
- package/client/dist/assets/api-DOGbyfTO.js +2 -0
- package/client/dist/assets/builder-BMVvSr4v.js +1 -0
- package/client/dist/assets/builder-BN-MuLZt.js +1 -0
- package/client/dist/assets/builder-BQOZi4CF.js +1 -0
- package/client/dist/assets/builder-BjUPjsyu.js +1 -0
- package/client/dist/assets/builder-BoBtN18T.js +1 -0
- package/client/dist/assets/builder-C5g5NhxL.js +1 -0
- package/client/dist/assets/builder-RUHXw3yx.js +1 -0
- package/client/dist/assets/builder-fyS_AiyC.js +1 -0
- package/client/dist/assets/button-CHPkroew.js +1 -0
- package/client/dist/assets/chat-C9L5T7KI.js +1 -0
- package/client/dist/assets/chevron-right-CwMAj0w_.js +1 -0
- package/client/dist/assets/chevron-up-BAMuP0XD.js +1 -0
- package/client/dist/assets/chunk-OB3PAWPO-BBaq6pUk.js +3 -0
- package/client/dist/assets/code-4le5IIbf.js +1 -0
- package/client/dist/assets/code-B-jCVIbm.js +1 -0
- package/client/dist/assets/code-BRfrn5ix.js +1 -0
- package/client/dist/assets/code-CC9NCrDM.js +1 -0
- package/client/dist/assets/code-CK6pm8wY.js +1 -0
- package/client/dist/assets/code-DDiOzd6c.js +1 -0
- package/client/dist/assets/code-tGifiyf5.js +1 -0
- package/client/dist/assets/code-xkn8kQTg.js +1 -0
- package/client/dist/assets/commands-Bv1QshHR.js +1 -0
- package/client/dist/assets/commands-BvxTxboW.js +1 -0
- package/client/dist/assets/commands-C5ORR0fO.js +1 -0
- package/client/dist/assets/commands-CBKMFSTV.js +1 -0
- package/client/dist/assets/commands-CFJIRsJv.js +1 -0
- package/client/dist/assets/commands-D9o3ZcXl.js +1 -0
- package/client/dist/assets/commands-DNox0Edk.js +1 -0
- package/client/dist/assets/commands-DmIUMLdV.js +1 -0
- package/client/dist/assets/common-5H4TkaoI.js +1 -0
- package/client/dist/assets/common-9S3OdPjx.js +1 -0
- package/client/dist/assets/common-BqnwIcjs.js +1 -0
- package/client/dist/assets/common-CQP3VafS.js +1 -0
- package/client/dist/assets/common-CZnAfkB2.js +1 -0
- package/client/dist/assets/common-D5sNttV4.js +1 -0
- package/client/dist/assets/common-k_qX9nlv.js +1 -0
- package/client/dist/assets/common-s4HIi9XI.js +1 -0
- package/client/dist/assets/compass-B7guwBlY.js +1 -0
- package/client/dist/assets/confirm-dialog-ChZdHL3Q.js +1 -0
- package/client/dist/assets/copy-DOPlLymH.js +1 -0
- package/client/dist/assets/core-BozBzB6Y.js +1 -0
- package/client/dist/assets/dashboard-6zGLGcEz.js +1 -0
- package/client/dist/assets/dashboard-8Gi0FBDq.js +1 -0
- package/client/dist/assets/dashboard-B7E5YrSy.js +1 -0
- package/client/dist/assets/dashboard-BhdKV8xK.js +1 -0
- package/client/dist/assets/dashboard-Bu3zzH_s.js +1 -0
- package/client/dist/assets/dashboard-Ce_6rELA.js +1 -0
- package/client/dist/assets/dashboard-DWY-oz8P.js +1 -0
- package/client/dist/assets/dashboard-gUzlWk0o.js +1 -0
- package/client/dist/assets/date-input-Cdlr8kHz.js +1 -0
- package/client/dist/assets/dialog-C23lB2iP.js +5 -0
- package/client/dist/assets/dist-Di-oOFkX.js +1 -0
- package/client/dist/assets/dist-js-CBmS6MsJ.js +1 -0
- package/client/dist/assets/{dist-js-Rlh4FLH5.js → dist-js-DaJmKapi.js} +1 -1
- package/client/dist/assets/dropdown-menu-Bfp2CK6H.js +1 -0
- package/client/dist/assets/empty-state-D5w9OWj-.js +1 -0
- package/client/dist/assets/es2015-DfnECntk.js +41 -0
- package/client/dist/assets/esm-BKF6CE7v.js +1 -0
- package/client/dist/assets/event-BEnMLqAi.js +1 -0
- package/client/dist/assets/explore--NOz9LCN.js +1 -0
- package/client/dist/assets/explore-B2ulH6dO.js +1 -0
- package/client/dist/assets/explore-BD-QiLdg.js +1 -0
- package/client/dist/assets/explore-BOqd4_1j.js +1 -0
- package/client/dist/assets/explore-Be_Zh5zu.js +1 -0
- package/client/dist/assets/explore-CLjzPSKo.js +1 -0
- package/client/dist/assets/explore-D_-vHm29.js +1 -0
- package/client/dist/assets/explore-yEQTF6ro.js +1 -0
- package/client/dist/assets/file-text-CNXzL3wj.js +1 -0
- package/client/dist/assets/format-BODoFIw6.js +1 -0
- package/client/dist/assets/formatDistanceToNow-DLMIOS0N.js +1 -0
- package/client/dist/assets/getTimezoneOffsetInMilliseconds-O61feXch.js +1 -0
- package/client/dist/assets/git-compare-arrows-Cu6tICCq.js +1 -0
- package/client/dist/assets/humanise-command-CB4ybLwq.js +1 -0
- package/client/dist/assets/inbox-BLZ8cm6_.js +1 -0
- package/client/dist/assets/inbox-BQ3VmNYY.js +1 -0
- package/client/dist/assets/inbox-BdcXWCuT.js +1 -0
- package/client/dist/assets/inbox-CF1PHjns.js +1 -0
- package/client/dist/assets/inbox-CFNPDhso.js +1 -0
- package/client/dist/assets/inbox-DIttK_NW.js +1 -0
- package/client/dist/assets/inbox-Dfdv1Ykl.js +1 -0
- package/client/dist/assets/inbox-JS1inmeO.js +1 -0
- package/client/dist/assets/index-4UWY7Xyz.css +2 -0
- package/client/dist/assets/index-DHzB0T26.js +120 -0
- package/client/dist/assets/integrations-BcKgzgPD.js +1 -0
- package/client/dist/assets/integrations-BmX_XyJq.js +1 -0
- package/client/dist/assets/integrations-CHpwMjlY.js +1 -0
- package/client/dist/assets/integrations-CT3kr8e-.js +1 -0
- package/client/dist/assets/integrations-C_5XAkgz.js +1 -0
- package/client/dist/assets/integrations-Ct9zLX7N.js +1 -0
- package/client/dist/assets/integrations-DEYemxUv.js +1 -0
- package/client/dist/assets/integrations-DWvsB_WB.js +1 -0
- package/client/dist/assets/{jira-Cq6yvN4q.js → jira-B_ERkFRv.js} +1 -1
- package/client/dist/assets/jira-Bn-A5lwD.js +1 -0
- package/client/dist/assets/jira-C71Ybnhp.js +1 -0
- package/client/dist/assets/jira-CkwjeJz6.js +1 -0
- package/client/dist/assets/jira-D9pSLXjI.js +1 -0
- package/client/dist/assets/jira-DBRS_lcp.js +1 -0
- package/client/dist/assets/jira-DHS6CsKh.js +1 -0
- package/client/dist/assets/jira-MInHRUb1.js +1 -0
- package/client/dist/assets/jira-api-DHme7Upx.js +1 -0
- package/client/dist/assets/jobs-BMLTDo63.js +1 -0
- package/client/dist/assets/jobs-BO8q4Mi1.js +1 -0
- package/client/dist/assets/jobs-Ck8uOWMM.js +1 -0
- package/client/dist/assets/jobs-CyFfPCpg.js +1 -0
- package/client/dist/assets/jobs-DT5s4fZ6.js +1 -0
- package/client/dist/assets/jobs-DZAgVPcD.js +1 -0
- package/client/dist/assets/jobs-b5gPYaKr.js +1 -0
- package/client/dist/assets/jobs-xsZK1440.js +1 -0
- package/client/dist/assets/launch-forecast-BTa-p3RP.js +1 -0
- package/client/dist/assets/{loop-layout-DtxX27Jz.css → loop-layout-DLioOiRN.css} +1 -1
- package/client/dist/assets/loop-layout-Sl9cfTvs.js +7 -0
- package/client/dist/assets/loops-BEEOVJDR.js +1 -0
- package/client/dist/assets/loops-BcrQ2vk7.js +1 -0
- package/client/dist/assets/loops-BjWxzJIZ.js +1 -0
- package/client/dist/assets/loops-BogV595N.js +1 -0
- package/client/dist/assets/loops-CU0BLZiz.js +1 -0
- package/client/dist/assets/loops-CrNBgi1G.js +1 -0
- package/client/dist/assets/loops-CwalwS_i.js +1 -0
- package/client/dist/assets/loops-_TDVN-fX.js +1 -0
- package/client/dist/assets/mcp-BNs8gxoL.js +1 -0
- package/client/dist/assets/mcp-BvRh_xO5.js +1 -0
- package/client/dist/assets/mcp-C2F1pghi.js +1 -0
- package/client/dist/assets/mcp-D9RLKAs2.js +1 -0
- package/client/dist/assets/mcp-DAghcsR0.js +1 -0
- package/client/dist/assets/mcp-DWWAPi1G.js +1 -0
- package/client/dist/assets/mcp-DbGSFC3f.js +1 -0
- package/client/dist/assets/mcp-FelCicrv.js +1 -0
- package/client/dist/assets/narration-C3NBkAR4.js +1 -0
- package/client/dist/assets/narration-CkoJq-Lf.js +1 -0
- package/client/dist/assets/narration-Cr0NeW9K.js +1 -0
- package/client/dist/assets/narration-DJUXOs-W.js +1 -0
- package/client/dist/assets/narration-DgL8TMvN.js +1 -0
- package/client/dist/assets/narration-DjBafgv0.js +1 -0
- package/client/dist/assets/narration-Dle6Iv0c.js +1 -0
- package/client/dist/assets/narration-MYlfktga.js +1 -0
- package/client/dist/assets/nav-BSQ8KW1c.js +1 -0
- package/client/dist/assets/nav-BauVof8Z.js +1 -0
- package/client/dist/assets/nav-BfOAH1se.js +1 -0
- package/client/dist/assets/nav-D3bOsipX.js +1 -0
- package/client/dist/assets/nav-DOMMhlLx.js +1 -0
- package/client/dist/assets/nav-DPzVlgZU.js +1 -0
- package/client/dist/assets/nav-DZJbFbah.js +1 -0
- package/client/dist/assets/nav-D_5aojd2.js +1 -0
- package/client/dist/assets/notify-error-BsWANx1T.js +1 -0
- package/client/dist/assets/onboarding-BdZQnNm3.js +1 -0
- package/client/dist/assets/onboarding-CJQEv1vp.js +1 -0
- package/client/dist/assets/onboarding-CWJGYUW3.js +1 -0
- package/client/dist/assets/onboarding-ChfYN7dA.js +1 -0
- package/client/dist/assets/onboarding-CjvDUR3V.js +1 -0
- package/client/dist/assets/onboarding-I6vS-zTB.js +1 -0
- package/client/dist/assets/onboarding-dgC_9dTB.js +1 -0
- package/client/dist/assets/onboarding-mlXSyKzX.js +1 -0
- package/client/dist/assets/origin-03nTuaOb.js +1 -0
- package/client/dist/assets/packet-BjpyRnZr.js +1 -0
- package/client/dist/assets/packet-BwgG5mBt.js +1 -0
- package/client/dist/assets/packet-C3eAUFkV.js +1 -0
- package/client/dist/assets/packet-C8wZuSld.js +1 -0
- package/client/dist/assets/packet-CNXEy_85.js +1 -0
- package/client/dist/assets/packet-DsV5Aa_8.js +1 -0
- package/client/dist/assets/packet-aasskOE7.js +1 -0
- package/client/dist/assets/packet-phxCc2gJ.js +1 -0
- package/client/dist/assets/page-header-BStSHkP8.js +1 -0
- package/client/dist/assets/project-repositories-DJPeAVBK.js +1 -0
- package/client/dist/assets/{provider-capabilities-lePfeT_Y.js → provider-capabilities-DtwcTme4.js} +1 -1
- package/client/dist/assets/recovery-BPDOsC92.js +1 -0
- package/client/dist/assets/recovery-BluNHoXM.js +1 -0
- package/client/dist/assets/recovery-CRvEmB0C.js +1 -0
- package/client/dist/assets/recovery-CeIoRnkR.js +1 -0
- package/client/dist/assets/recovery-DHCo8KGi.js +1 -0
- package/client/dist/assets/recovery-OxAIpbBF.js +1 -0
- package/client/dist/assets/recovery-XXexYGOJ.js +1 -0
- package/client/dist/assets/recovery-pITlc--v.js +1 -0
- package/client/dist/assets/refresh-cw-DfyTkbsf.js +1 -0
- package/client/dist/assets/select-xA3pSmqE.js +1 -0
- package/client/dist/assets/settings--yzDbX9r.js +1 -0
- package/client/dist/assets/settings-5_heTv8s.js +1 -0
- package/client/dist/assets/settings-BSf27MDg.js +1 -0
- package/client/dist/assets/settings-BSj6FakR.js +1 -0
- package/client/dist/assets/settings-BZDo_8Nn.js +1 -0
- package/client/dist/assets/settings-BdWgmNc0.js +1 -0
- package/client/dist/assets/settings-DRouxKqb.js +1 -0
- package/client/dist/assets/settings-DnWFoY-F.js +1 -0
- package/client/dist/assets/setup-BJWy62ri.js +1 -0
- package/client/dist/assets/setup-BgKOIuzc.js +1 -0
- package/client/dist/assets/setup-BvVIyUlz.js +1 -0
- package/client/dist/assets/setup-BxCk2pe1.js +1 -0
- package/client/dist/assets/setup-C-xQTL7R.js +1 -0
- package/client/dist/assets/setup-CbaVoiwV.js +1 -0
- package/client/dist/assets/setup-DxTBkX3P.js +1 -0
- package/client/dist/assets/setup-oGoVAzOD.js +1 -0
- package/client/dist/assets/specs-7tAb4IKr.js +1 -0
- package/client/dist/assets/specs-BUcY4s5v.js +1 -0
- package/client/dist/assets/specs-Bk5LeBAA.js +1 -0
- package/client/dist/assets/specs-CAA4Lrlg.js +1 -0
- package/client/dist/assets/specs-CS091AnA.js +1 -0
- package/client/dist/assets/specs-DJ6gmFcK.js +1 -0
- package/client/dist/assets/specs-GfCcrBSC.js +1 -0
- package/client/dist/assets/specs-xQgyc7WL.js +1 -0
- package/client/dist/assets/spending-CVH8VREb.js +1 -0
- package/client/dist/assets/square-Co6h5vZg.js +1 -0
- package/client/dist/assets/tauri-shell-43ixPGfa.js +2 -0
- package/client/dist/assets/terminal-0v9sBylD.js +1 -0
- package/client/dist/assets/terminal-AbUAmCxE.js +1 -0
- package/client/dist/assets/terminal-BJayIbIP.js +1 -0
- package/client/dist/assets/terminal-C2RUlXyi.js +1 -0
- package/client/dist/assets/terminal-CMmSb_Nj.js +1 -0
- package/client/dist/assets/terminal-DKWjj7HJ.js +1 -0
- package/client/dist/assets/terminal-KlFu7_pV.js +1 -0
- package/client/dist/assets/terminal-i99yqFvm.js +1 -0
- package/client/dist/assets/tickets-846Oq3i3.js +1 -0
- package/client/dist/assets/tickets-B5LJTe_b.js +1 -0
- package/client/dist/assets/tickets-Bfo2GGmH.js +1 -0
- package/client/dist/assets/tickets-BhdZ1yY2.js +1 -0
- package/client/dist/assets/tickets-CgjWJHAW.js +1 -0
- package/client/dist/assets/tickets-Ct9DbDUR.js +1 -0
- package/client/dist/assets/tickets-rptLEJB1.js +1 -0
- package/client/dist/assets/tickets-xQ6DpYdu.js +1 -0
- package/client/dist/assets/trending-up-BGvb4zZt.js +1 -0
- package/client/dist/assets/undo-6zuS4-sL.js +1 -0
- package/client/dist/assets/undo-BeM4gDOP.js +1 -0
- package/client/dist/assets/undo-BeppX8xS.js +1 -0
- package/client/dist/assets/undo-BqvNZ5MG.js +1 -0
- package/client/dist/assets/undo-BzwEPf_k.js +1 -0
- package/client/dist/assets/undo-CJ9Cu1NN.js +1 -0
- package/client/dist/assets/undo-ds8nMFbX.js +1 -0
- package/client/dist/assets/undo-x_gA-knG.js +1 -0
- package/client/dist/assets/useDesktop-BuOp2-MR.js +1 -0
- package/client/dist/assets/useRuntimeRuns-BRS6ncnO.js +1 -0
- package/client/dist/assets/utils-ELimjS2Y.js +1 -0
- package/client/dist/assets/wrench-Br2n1Lxd.js +1 -0
- package/client/dist/index.html +75 -60
- package/docs/ci-cd.md +29 -1
- package/docs/cli.md +10 -31
- package/docs/codex.md +1 -1
- package/docs/creating-specs.md +15 -12
- package/docs/customizing.md +16 -13
- package/docs/getting-started.md +12 -11
- package/docs/guide/de/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/de/getting-started/2-installing-and-first-run.md +2 -0
- package/docs/guide/de/getting-started/3-try-the-sample-project.md +35 -0
- package/docs/guide/de/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
- package/docs/guide/de/getting-started/6-universal-search.md +34 -0
- package/docs/guide/de/insights/1-analytics-and-cost-tracking.md +20 -6
- package/docs/guide/de/insights/2-the-integrated-terminal.md +1 -1
- package/docs/guide/de/insights/3-code-explorer.md +1 -1
- package/docs/guide/de/integrations/1-ai-providers.md +1 -1
- package/docs/guide/de/integrations/2-plugins.md +1 -1
- package/docs/guide/de/integrations/3-jira-integration.md +3 -3
- package/docs/guide/de/integrations/4-mobile-companion.md +1 -1
- package/docs/guide/de/integrations/5-mcp-server.md +1 -1
- package/docs/guide/de/integrations/6-agent-chat.md +12 -5
- package/docs/guide/de/integrations/8-flow-mode.md +69 -0
- package/docs/guide/de/pipeline/1-rails-and-jobs.md +21 -1
- package/docs/guide/de/pipeline/2-the-job-detail-view.md +12 -0
- package/docs/guide/de/pipeline/3-reviewing-a-delivery.md +43 -0
- package/docs/guide/de/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/de/pipeline/5-the-loop-builder.md +1 -1
- package/docs/guide/de/settings/1-themes.md +1 -1
- package/docs/guide/de/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
- package/docs/guide/de/settings/5-project-environment.md +1 -1
- package/docs/guide/de/settings/6-updates.md +24 -0
- package/docs/guide/de/settings/7-existing-projects.md +33 -0
- package/docs/guide/de/settings/8-accessibility.md +23 -0
- package/docs/guide/de/specs/1-specs-and-the-backlog.md +41 -3
- package/docs/guide/de/specs/2-add-spec-quick-mode.md +1 -1
- package/docs/guide/de/specs/3-add-spec-explore-mode.md +1 -1
- package/docs/guide/en/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/en/getting-started/1-what-is-specrails.md +1 -1
- package/docs/guide/en/getting-started/2-installing-and-first-run.md +2 -0
- package/docs/guide/en/getting-started/3-try-the-sample-project.md +35 -0
- package/docs/guide/en/getting-started/5-the-dashboard-tour.md +52 -0
- package/docs/guide/en/getting-started/6-universal-search.md +34 -0
- package/docs/guide/en/insights/1-analytics-and-cost-tracking.md +24 -10
- package/docs/guide/en/insights/2-the-integrated-terminal.md +1 -1
- package/docs/guide/en/insights/3-code-explorer.md +5 -5
- package/docs/guide/en/integrations/1-ai-providers.md +1 -1
- package/docs/guide/en/integrations/2-plugins.md +1 -1
- package/docs/guide/en/integrations/3-jira-integration.md +4 -4
- package/docs/guide/en/integrations/4-mobile-companion.md +1 -1
- package/docs/guide/en/integrations/5-mcp-server.md +4 -4
- package/docs/guide/en/integrations/6-agent-chat.md +12 -5
- package/docs/guide/en/integrations/8-flow-mode.md +69 -0
- package/docs/guide/en/pipeline/1-rails-and-jobs.md +22 -3
- package/docs/guide/en/pipeline/2-the-job-detail-view.md +19 -7
- package/docs/guide/en/pipeline/3-reviewing-a-delivery.md +43 -0
- package/docs/guide/en/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/en/pipeline/5-the-loop-builder.md +2 -2
- package/docs/guide/en/settings/1-themes.md +1 -1
- package/docs/guide/en/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
- package/docs/guide/en/settings/5-project-environment.md +1 -1
- package/docs/guide/en/settings/6-updates.md +24 -0
- package/docs/guide/en/settings/7-existing-projects.md +33 -0
- package/docs/guide/en/settings/8-accessibility.md +23 -0
- package/docs/guide/en/specs/1-specs-and-the-backlog.md +42 -6
- package/docs/guide/en/specs/2-add-spec-quick-mode.md +1 -1
- package/docs/guide/en/specs/3-add-spec-explore-mode.md +2 -2
- package/docs/guide/es/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/es/agents/2-profiles-and-the-balanced-default.md +1 -1
- package/docs/guide/es/agents/3-customizing-models-per-agent.md +2 -2
- package/docs/guide/es/agents/4-custom-agents-catalog.md +1 -1
- package/docs/guide/es/getting-started/1-what-is-specrails.md +3 -3
- package/docs/guide/es/getting-started/2-installing-and-first-run.md +2 -0
- package/docs/guide/es/getting-started/3-try-the-sample-project.md +35 -0
- package/docs/guide/es/getting-started/5-the-dashboard-tour.md +52 -0
- package/docs/guide/es/getting-started/6-universal-search.md +34 -0
- package/docs/guide/es/insights/1-analytics-and-cost-tracking.md +26 -12
- package/docs/guide/es/insights/2-the-integrated-terminal.md +1 -1
- package/docs/guide/es/insights/3-code-explorer.md +5 -5
- package/docs/guide/es/integrations/1-ai-providers.md +1 -1
- package/docs/guide/es/integrations/2-plugins.md +1 -1
- package/docs/guide/es/integrations/3-jira-integration.md +4 -4
- package/docs/guide/es/integrations/4-mobile-companion.md +1 -1
- package/docs/guide/es/integrations/5-mcp-server.md +4 -4
- package/docs/guide/es/integrations/6-agent-chat.md +14 -7
- package/docs/guide/es/integrations/7-local-engines.md +1 -1
- package/docs/guide/es/integrations/8-flow-mode.md +69 -0
- package/docs/guide/es/pipeline/1-rails-and-jobs.md +33 -13
- package/docs/guide/es/pipeline/2-the-job-detail-view.md +38 -26
- package/docs/guide/es/pipeline/3-reviewing-a-delivery.md +43 -0
- package/docs/guide/es/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/es/pipeline/5-the-loop-builder.md +4 -4
- package/docs/guide/es/settings/1-themes.md +1 -1
- package/docs/guide/es/settings/3-pipeline-telemetry-and-diagnostics.md +10 -10
- package/docs/guide/es/settings/5-project-environment.md +1 -1
- package/docs/guide/es/settings/6-updates.md +24 -0
- package/docs/guide/es/settings/7-existing-projects.md +33 -0
- package/docs/guide/es/settings/8-accessibility.md +23 -0
- package/docs/guide/es/specs/1-specs-and-the-backlog.md +43 -7
- package/docs/guide/es/specs/2-add-spec-quick-mode.md +1 -1
- package/docs/guide/es/specs/3-add-spec-explore-mode.md +3 -3
- package/docs/guide/fr/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/fr/getting-started/2-installing-and-first-run.md +2 -0
- package/docs/guide/fr/getting-started/3-try-the-sample-project.md +35 -0
- package/docs/guide/fr/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
- package/docs/guide/fr/getting-started/6-universal-search.md +34 -0
- package/docs/guide/fr/insights/1-analytics-and-cost-tracking.md +18 -4
- package/docs/guide/fr/insights/2-the-integrated-terminal.md +1 -1
- package/docs/guide/fr/insights/3-code-explorer.md +1 -1
- package/docs/guide/fr/integrations/1-ai-providers.md +1 -1
- package/docs/guide/fr/integrations/2-plugins.md +1 -1
- package/docs/guide/fr/integrations/3-jira-integration.md +3 -3
- package/docs/guide/fr/integrations/4-mobile-companion.md +1 -1
- package/docs/guide/fr/integrations/5-mcp-server.md +1 -1
- package/docs/guide/fr/integrations/6-agent-chat.md +11 -4
- package/docs/guide/fr/integrations/8-flow-mode.md +69 -0
- package/docs/guide/fr/pipeline/1-rails-and-jobs.md +21 -1
- package/docs/guide/fr/pipeline/2-the-job-detail-view.md +12 -0
- package/docs/guide/fr/pipeline/3-reviewing-a-delivery.md +43 -0
- package/docs/guide/fr/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/fr/pipeline/5-the-loop-builder.md +1 -1
- package/docs/guide/fr/settings/1-themes.md +1 -1
- package/docs/guide/fr/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
- package/docs/guide/fr/settings/5-project-environment.md +1 -1
- package/docs/guide/fr/settings/6-updates.md +24 -0
- package/docs/guide/fr/settings/7-existing-projects.md +33 -0
- package/docs/guide/fr/settings/8-accessibility.md +23 -0
- package/docs/guide/fr/specs/1-specs-and-the-backlog.md +41 -3
- package/docs/guide/fr/specs/2-add-spec-quick-mode.md +1 -1
- package/docs/guide/fr/specs/3-add-spec-explore-mode.md +1 -1
- package/docs/guide/it/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/it/getting-started/2-installing-and-first-run.md +2 -0
- package/docs/guide/it/getting-started/3-try-the-sample-project.md +35 -0
- package/docs/guide/it/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
- package/docs/guide/it/getting-started/6-universal-search.md +34 -0
- package/docs/guide/it/insights/1-analytics-and-cost-tracking.md +18 -4
- package/docs/guide/it/insights/2-the-integrated-terminal.md +1 -1
- package/docs/guide/it/insights/3-code-explorer.md +1 -1
- package/docs/guide/it/integrations/1-ai-providers.md +1 -1
- package/docs/guide/it/integrations/2-plugins.md +1 -1
- package/docs/guide/it/integrations/3-jira-integration.md +3 -3
- package/docs/guide/it/integrations/4-mobile-companion.md +1 -1
- package/docs/guide/it/integrations/5-mcp-server.md +1 -1
- package/docs/guide/it/integrations/6-agent-chat.md +11 -4
- package/docs/guide/it/integrations/8-flow-mode.md +69 -0
- package/docs/guide/it/pipeline/1-rails-and-jobs.md +21 -1
- package/docs/guide/it/pipeline/2-the-job-detail-view.md +12 -0
- package/docs/guide/it/pipeline/3-reviewing-a-delivery.md +43 -0
- package/docs/guide/it/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/it/pipeline/5-the-loop-builder.md +1 -1
- package/docs/guide/it/settings/1-themes.md +1 -1
- package/docs/guide/it/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
- package/docs/guide/it/settings/5-project-environment.md +1 -1
- package/docs/guide/it/settings/6-updates.md +24 -0
- package/docs/guide/it/settings/7-existing-projects.md +33 -0
- package/docs/guide/it/settings/8-accessibility.md +23 -0
- package/docs/guide/it/specs/1-specs-and-the-backlog.md +41 -3
- package/docs/guide/it/specs/2-add-spec-quick-mode.md +1 -1
- package/docs/guide/it/specs/3-add-spec-explore-mode.md +1 -1
- package/docs/guide/ja/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/ja/getting-started/2-installing-and-first-run.md +2 -0
- package/docs/guide/ja/getting-started/3-try-the-sample-project.md +35 -0
- package/docs/guide/ja/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
- package/docs/guide/ja/getting-started/6-universal-search.md +34 -0
- package/docs/guide/ja/insights/1-analytics-and-cost-tracking.md +18 -4
- package/docs/guide/ja/insights/2-the-integrated-terminal.md +1 -1
- package/docs/guide/ja/insights/3-code-explorer.md +1 -1
- package/docs/guide/ja/integrations/1-ai-providers.md +1 -1
- package/docs/guide/ja/integrations/2-plugins.md +1 -1
- package/docs/guide/ja/integrations/3-jira-integration.md +3 -3
- package/docs/guide/ja/integrations/4-mobile-companion.md +1 -1
- package/docs/guide/ja/integrations/5-mcp-server.md +1 -1
- package/docs/guide/ja/integrations/6-agent-chat.md +11 -4
- package/docs/guide/ja/integrations/8-flow-mode.md +69 -0
- package/docs/guide/ja/pipeline/1-rails-and-jobs.md +21 -1
- package/docs/guide/ja/pipeline/2-the-job-detail-view.md +12 -0
- package/docs/guide/ja/pipeline/3-reviewing-a-delivery.md +43 -0
- package/docs/guide/ja/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/ja/pipeline/5-the-loop-builder.md +1 -1
- package/docs/guide/ja/settings/1-themes.md +1 -1
- package/docs/guide/ja/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
- package/docs/guide/ja/settings/5-project-environment.md +1 -1
- package/docs/guide/ja/settings/6-updates.md +24 -0
- package/docs/guide/ja/settings/7-existing-projects.md +33 -0
- package/docs/guide/ja/settings/8-accessibility.md +23 -0
- package/docs/guide/ja/specs/1-specs-and-the-backlog.md +41 -3
- package/docs/guide/ja/specs/2-add-spec-quick-mode.md +1 -1
- package/docs/guide/ja/specs/3-add-spec-explore-mode.md +1 -1
- package/docs/guide/pt/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/pt/getting-started/2-installing-and-first-run.md +2 -0
- package/docs/guide/pt/getting-started/3-try-the-sample-project.md +35 -0
- package/docs/guide/pt/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
- package/docs/guide/pt/getting-started/6-universal-search.md +34 -0
- package/docs/guide/pt/insights/1-analytics-and-cost-tracking.md +18 -4
- package/docs/guide/pt/insights/2-the-integrated-terminal.md +1 -1
- package/docs/guide/pt/insights/3-code-explorer.md +1 -1
- package/docs/guide/pt/integrations/1-ai-providers.md +1 -1
- package/docs/guide/pt/integrations/2-plugins.md +1 -1
- package/docs/guide/pt/integrations/3-jira-integration.md +3 -3
- package/docs/guide/pt/integrations/4-mobile-companion.md +1 -1
- package/docs/guide/pt/integrations/5-mcp-server.md +1 -1
- package/docs/guide/pt/integrations/6-agent-chat.md +12 -5
- package/docs/guide/pt/integrations/8-flow-mode.md +69 -0
- package/docs/guide/pt/pipeline/1-rails-and-jobs.md +21 -1
- package/docs/guide/pt/pipeline/2-the-job-detail-view.md +12 -0
- package/docs/guide/pt/pipeline/3-reviewing-a-delivery.md +43 -0
- package/docs/guide/pt/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/pt/pipeline/5-the-loop-builder.md +1 -1
- package/docs/guide/pt/settings/1-themes.md +1 -1
- package/docs/guide/pt/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
- package/docs/guide/pt/settings/5-project-environment.md +1 -1
- package/docs/guide/pt/settings/6-updates.md +24 -0
- package/docs/guide/pt/settings/7-existing-projects.md +33 -0
- package/docs/guide/pt/settings/8-accessibility.md +23 -0
- package/docs/guide/pt/specs/1-specs-and-the-backlog.md +41 -3
- package/docs/guide/pt/specs/2-add-spec-quick-mode.md +1 -1
- package/docs/guide/pt/specs/3-add-spec-explore-mode.md +1 -1
- package/docs/guide/zh/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/zh/getting-started/2-installing-and-first-run.md +2 -0
- package/docs/guide/zh/getting-started/3-try-the-sample-project.md +35 -0
- package/docs/guide/zh/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
- package/docs/guide/zh/getting-started/6-universal-search.md +34 -0
- package/docs/guide/zh/insights/1-analytics-and-cost-tracking.md +18 -4
- package/docs/guide/zh/insights/2-the-integrated-terminal.md +1 -1
- package/docs/guide/zh/insights/3-code-explorer.md +1 -1
- package/docs/guide/zh/integrations/1-ai-providers.md +1 -1
- package/docs/guide/zh/integrations/2-plugins.md +1 -1
- package/docs/guide/zh/integrations/3-jira-integration.md +3 -3
- package/docs/guide/zh/integrations/4-mobile-companion.md +1 -1
- package/docs/guide/zh/integrations/5-mcp-server.md +1 -1
- package/docs/guide/zh/integrations/6-agent-chat.md +11 -4
- package/docs/guide/zh/integrations/8-flow-mode.md +69 -0
- package/docs/guide/zh/pipeline/1-rails-and-jobs.md +21 -1
- package/docs/guide/zh/pipeline/2-the-job-detail-view.md +12 -0
- package/docs/guide/zh/pipeline/3-reviewing-a-delivery.md +43 -0
- package/docs/guide/zh/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/zh/pipeline/5-the-loop-builder.md +1 -1
- package/docs/guide/zh/settings/1-themes.md +1 -1
- package/docs/guide/zh/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
- package/docs/guide/zh/settings/5-project-environment.md +1 -1
- package/docs/guide/zh/settings/6-updates.md +24 -0
- package/docs/guide/zh/settings/7-existing-projects.md +33 -0
- package/docs/guide/zh/settings/8-accessibility.md +23 -0
- package/docs/guide/zh/specs/1-specs-and-the-backlog.md +41 -3
- package/docs/guide/zh/specs/2-add-spec-quick-mode.md +1 -1
- package/docs/guide/zh/specs/3-add-spec-explore-mode.md +1 -1
- package/docs/internals/README.md +8 -0
- package/docs/internals/adding-a-provider.md +19 -2
- package/docs/internals/agent-actions-audit.md +101 -0
- package/docs/internals/agent-sessions.md +36 -1
- package/docs/internals/api-reference.md +190 -45
- package/docs/internals/architecture.md +53 -47
- package/docs/internals/companion-inbox-decisions.md +42 -0
- package/docs/internals/companion-rails-as-loops-contract.md +17 -6
- package/docs/internals/configuration.md +140 -9
- package/docs/internals/core-runtime-updates.md +4 -4
- package/docs/internals/existing-project-anchoring.md +168 -0
- package/docs/internals/flow-mode.md +668 -0
- package/docs/internals/legacy-implementation-notes.md +13 -0
- package/docs/internals/local-testing-feedback-2026-10.md +210 -0
- package/docs/internals/mcp-mission-audit.md +4 -0
- package/docs/internals/mission-rail-cards.md +10 -5
- package/docs/internals/mission-read-only-policy.md +152 -0
- package/docs/internals/modal-standard.md +181 -0
- package/docs/internals/openspec-workflow.md +32 -0
- package/docs/internals/operations-runbook.md +30 -0
- package/docs/internals/profiles.md +6 -3
- package/docs/internals/programmatic-agent-runtime.md +8 -0
- package/docs/internals/project-builder.md +1 -1
- package/docs/internals/review-packet.md +161 -9
- package/docs/internals/safe-pr-review-flow.md +135 -6
- package/docs/internals/source-map.md +413 -18
- package/docs/internals/spec-addenda.md +10 -0
- package/docs/internals/spec-triage.md +140 -0
- package/docs/internals/visual-design-audit.md +15 -2
- package/docs/local-providers.md +3 -0
- package/docs/mcp.md +21 -3
- package/docs/platforms/macos.md +1 -1
- package/docs/platforms/windows.md +2 -2
- package/docs/running-pipelines.md +22 -6
- package/docs/tracking-cost.md +54 -10
- package/local-runner/dist/specrails-local-runner.js +3851 -1178
- package/mcp-bridge/dist/specrails-mcp.js +3864 -1143
- package/package.json +10 -9
- package/server/dist/agent-mcp-config.js +37 -1
- package/server/dist/api-version.js +19 -0
- package/server/dist/command-resolver.js +4 -2
- package/server/dist/core-compat.js +1 -1
- package/server/dist/core-execution.js +2 -1
- package/server/dist/core-update-manager.js +71 -13
- package/server/dist/db/job-search.js +248 -0
- package/server/dist/db/jobs.js +6 -0
- package/server/dist/db/migrations.js +239 -0
- package/server/dist/db.js +9 -2
- package/server/dist/desktop-db.js +99 -5
- package/server/dist/desktop-router.js +126 -13
- package/server/dist/docs-router.js +67 -1
- package/server/dist/feature-flags.js +22 -0
- package/server/dist/index.js +30 -15
- package/server/dist/jira/jira-adf.js +13 -1
- package/server/dist/jira/jira-clarifications.js +146 -0
- package/server/dist/jira/jira-client.js +8 -1
- package/server/dist/jira/jira-db.js +41 -0
- package/server/dist/jira/jira-sync-manager.js +328 -25
- package/server/dist/mcp/guide.js +17 -7
- package/server/dist/mcp/tools/agents.js +1 -1
- package/server/dist/mcp/tools/analytics.js +15 -3
- package/server/dist/mcp/tools/app-settings.js +14 -1
- package/server/dist/mcp/tools/chat.js +1 -1
- package/server/dist/mcp/tools/env.js +4 -2
- package/server/dist/mcp/tools/jobs.js +96 -7
- package/server/dist/mcp/tools/loops.js +1 -1
- package/server/dist/mcp/tools/meta.js +10 -13
- package/server/dist/mcp/tools/rails.js +15 -1
- package/server/dist/mcp/tools/setup.js +1 -1
- package/server/dist/mcp/tools/specs.js +8 -5
- package/server/dist/mcp/tools/support.js +6 -3
- package/server/dist/mcp/tools/types.js +38 -1
- package/server/dist/mobile/mobile-admin-router.js +0 -16
- package/server/dist/mobile/mobile-gateway.js +0 -18
- package/server/dist/mobile/mobile-inbox.js +240 -0
- package/server/dist/mobile/mobile-missions.js +6 -8
- package/server/dist/mobile/mobile-router.js +9 -9
- package/server/dist/mobile/mobile-webrtc-peer.js +4 -54
- package/server/dist/mobile/mobile-ws.js +27 -4
- package/server/dist/modules/accounting/runtime/ai-invocations.js +4 -0
- package/server/dist/modules/accounting/runtime/decision-times.js +102 -0
- package/server/dist/modules/accounting/runtime/loop-economics.js +284 -0
- package/server/dist/modules/accounting/runtime/spending.js +7 -2
- package/server/dist/modules/accounting/runtime/what-if.js +87 -0
- package/server/dist/modules/agent-runtime/runtime/agent-runtime-bridge.js +86 -5
- package/server/dist/modules/agent-runtime/runtime/agent-runtime-controls.js +28 -2
- package/server/dist/modules/agent-runtime/runtime/agent-runtime-metrics.js +15 -2
- package/server/dist/modules/agent-runtime/runtime/agent-runtime-settings-router.js +21 -2
- package/server/dist/modules/agent-runtime/runtime/core-capabilities.js +55 -0
- package/server/dist/modules/agent-sessions/adapters/host-process.js +1 -1
- package/server/dist/modules/agent-sessions/domain/availability.js +16 -0
- package/server/dist/modules/agent-sessions/domain/protocol.js +8 -1
- package/server/dist/modules/agent-sessions/index.js +3 -1
- package/server/dist/modules/agent-sessions/runtime/core-sessions-availability.js +16 -0
- package/server/dist/modules/agents/runtime/agent-refine-manager.js +3 -1
- package/server/dist/modules/agents/runtime/agent-store.js +60 -73
- package/server/dist/modules/audit/adapters/http.js +66 -0
- package/server/dist/modules/audit/adapters/runtime.js +60 -0
- package/server/dist/modules/audit/adapters/sqlite.js +73 -0
- package/server/dist/modules/audit/application.js +190 -0
- package/server/dist/modules/audit/domain.js +434 -0
- package/server/dist/modules/audit/index.js +27 -0
- package/server/dist/modules/audit/ports.js +2 -0
- package/server/dist/modules/browser/runtime/browser-capture-manager.js +18 -141
- package/server/dist/modules/browser/runtime/browser-capture-types.js +1 -10
- package/server/dist/modules/browser/runtime/browser-playwright.js +0 -19
- package/server/dist/modules/code/runtime/file-provenance.js +23 -0
- package/server/dist/modules/conversations/runtime/chat-manager.js +5 -2
- package/server/dist/modules/delivery/adapters/decisions/chains.js +1 -0
- package/server/dist/modules/delivery/adapters/decisions/create.js +19 -1
- package/server/dist/modules/delivery/adapters/decisions/discard.js +2 -0
- package/server/dist/modules/delivery/adapters/decisions/local-changes.js +427 -0
- package/server/dist/modules/delivery/adapters/decisions/merge-local.js +80 -6
- package/server/dist/modules/delivery/adapters/decisions/observations.js +5 -0
- package/server/dist/modules/delivery/adapters/decisions/ownership.js +2 -1
- package/server/dist/modules/delivery/adapters/decisions/transitions.js +9 -0
- package/server/dist/modules/delivery/adapters/review-wip-store.js +37 -0
- package/server/dist/modules/delivery/domain/review-wip.js +71 -0
- package/server/dist/modules/delivery/index.js +9 -1
- package/server/dist/modules/delivery/runtime/delivery-changes.js +355 -0
- package/server/dist/modules/delivery/runtime/delivery-evidence.js +249 -8
- package/server/dist/modules/delivery/runtime/flow-review-legacy.js +99 -0
- package/server/dist/modules/delivery/runtime/flow-review-outcome.js +107 -0
- package/server/dist/modules/delivery/runtime/flow-worktree-handoff.js +32 -0
- package/server/dist/modules/delivery/runtime/flow-worktree-return.js +87 -0
- package/server/dist/modules/delivery/runtime/isolated-worktree.js +380 -0
- package/server/dist/modules/delivery/runtime/local-restore-branch.js +325 -0
- package/server/dist/modules/delivery/runtime/local-restore-resolver.js +48 -0
- package/server/dist/modules/delivery/runtime/local-stash.js +423 -0
- package/server/dist/modules/delivery/runtime/multi-repo-execution.js +27 -1
- package/server/dist/modules/delivery/runtime/phase3-harvest.js +40 -0
- package/server/dist/modules/delivery/runtime/pr-body.js +50 -0
- package/server/dist/modules/delivery/runtime/rail-isolated-launch.js +169 -166
- package/server/dist/modules/delivery/runtime/rail-launch-parser.js +5 -2
- package/server/dist/modules/delivery/runtime/rail-pr-decision.js +7 -1
- package/server/dist/modules/delivery/runtime/rail-pr-store.js +193 -12
- package/server/dist/modules/delivery/runtime/rails-router.js +267 -5
- package/server/dist/modules/delivery/runtime/review-brief.js +208 -0
- package/server/dist/modules/delivery/runtime/review-packet.js +41 -2
- package/server/dist/modules/delivery/runtime/review-wip-gate.js +67 -0
- package/server/dist/modules/delivery/runtime/run-records.js +267 -0
- package/server/dist/modules/delivery/runtime/run-review-diagnosis.js +102 -0
- package/server/dist/modules/execution/adapters/budget-storage.js +76 -0
- package/server/dist/modules/execution/application/enforce-budget.js +17 -2
- package/server/dist/modules/execution/domain/agent-env.js +98 -0
- package/server/dist/modules/execution/domain/daily-budget.js +36 -0
- package/server/dist/modules/execution/domain/spend-caps.js +166 -0
- package/server/dist/modules/execution/index.js +34 -1
- package/server/dist/modules/execution/runtime/budget-overview.js +76 -0
- package/server/dist/modules/execution/runtime/daily-budget-gate.js +86 -0
- package/server/dist/modules/execution/runtime/interactive-job-session.js +8 -0
- package/server/dist/modules/execution/runtime/launch-forecast.js +33 -0
- package/server/dist/modules/execution/runtime/queue-manager.js +54 -15
- package/server/dist/modules/execution/runtime/run-duration-stats.js +31 -13
- package/server/dist/modules/flow/adapters/bindings.js +1089 -0
- package/server/dist/modules/flow/adapters/http.js +147 -0
- package/server/dist/modules/flow/adapters/sqlite.js +121 -0
- package/server/dist/modules/flow/application.js +805 -0
- package/server/dist/modules/flow/domain.js +790 -0
- package/server/dist/modules/flow/index.js +34 -0
- package/server/dist/modules/flow/ports.js +2 -0
- package/server/dist/modules/inbox/adapters/http.js +21 -0
- package/server/dist/modules/inbox/adapters/project-source.js +233 -0
- package/server/dist/modules/inbox/application.js +28 -0
- package/server/dist/modules/inbox/domain.js +43 -0
- package/server/dist/modules/inbox/index.js +10 -0
- package/server/dist/modules/inbox/ports.js +2 -0
- package/server/dist/modules/loops/runtime/loop-definition-run.js +9 -0
- package/server/dist/modules/loops/runtime/loop-definition.js +5 -2
- package/server/dist/modules/loops/runtime/loop-executors.js +90 -9
- package/server/dist/modules/loops/runtime/loop-factory.js +30 -2
- package/server/dist/modules/loops/runtime/loop-flow-spec-recipe.js +166 -0
- package/server/dist/modules/loops/runtime/loop-graph.js +1 -1
- package/server/dist/modules/loops/runtime/loop-role-engines.js +4 -1
- package/server/dist/modules/loops/runtime/loop-run-manager.js +267 -10
- package/server/dist/modules/loops/runtime/loop-runs-store.js +21 -5
- package/server/dist/modules/loops/runtime/loop-templates.js +55 -12
- package/server/dist/modules/missions/runtime/agent-chat-manager.js +283 -20
- package/server/dist/modules/missions/runtime/agent-chat-router.js +96 -21
- package/server/dist/modules/missions/runtime/agent-failure-briefing.js +11 -3
- package/server/dist/modules/missions/runtime/agent-fence-promotion.js +9 -1
- package/server/dist/modules/missions/runtime/agent-flow-prompt.js +64 -0
- package/server/dist/modules/missions/runtime/agent-input-store.js +9 -4
- package/server/dist/modules/missions/runtime/agent-operator-prompt.js +100 -14
- package/server/dist/modules/missions/runtime/agent-session-store.js +88 -27
- package/server/dist/modules/missions/runtime/core-session-runner.js +89 -9
- package/server/dist/modules/missions/runtime/flow-turn-context.js +17 -0
- package/server/dist/modules/missions/runtime/mission-core-sessions.js +295 -55
- package/server/dist/modules/missions/runtime/mission-run-notify.js +2 -0
- package/server/dist/modules/missions/runtime/mission-session-projector.js +56 -19
- package/server/dist/modules/missions/runtime/mission-tool-policy.js +47 -0
- package/server/dist/modules/onboarding/adapters/http.js +78 -0
- package/server/dist/modules/onboarding/adapters/providers.js +41 -0
- package/server/dist/modules/onboarding/adapters/runtime.js +130 -0
- package/server/dist/modules/onboarding/application.js +133 -0
- package/server/dist/modules/onboarding/catalog.js +217 -0
- package/server/dist/modules/onboarding/domain.js +102 -0
- package/server/dist/modules/onboarding/index.js +20 -0
- package/server/dist/modules/onboarding/ports.js +2 -0
- package/server/dist/modules/project-rules/adapters/http.js +91 -0
- package/server/dist/modules/project-rules/domain.js +122 -0
- package/server/dist/modules/project-rules/runtime/rules-inventory-runs.js +97 -0
- package/server/dist/modules/project-rules/runtime/rules-store.js +109 -0
- package/server/dist/modules/project-settings/adapters/http.js +13 -0
- package/server/dist/modules/project-settings/adapters/sqlite.js +78 -8
- package/server/dist/modules/project-settings/domain.js +47 -1
- package/server/dist/modules/project-settings/index.js +7 -1
- package/server/dist/modules/recovery/adapters/sqlite.js +28 -0
- package/server/dist/modules/recovery/domain.js +162 -0
- package/server/dist/modules/recovery/index.js +16 -0
- package/server/dist/modules/specs/adapters/timeline-http.js +101 -0
- package/server/dist/modules/specs/domain/handoff-labels.js +371 -0
- package/server/dist/modules/specs/domain/handoff.js +260 -0
- package/server/dist/modules/specs/domain/non-goals.js +101 -0
- package/server/dist/modules/specs/domain/timeline.js +164 -0
- package/server/dist/modules/specs/domain/triage.js +320 -0
- package/server/dist/modules/specs/runtime/contract-refine-runner.js +3 -2
- package/server/dist/modules/specs/runtime/generated-spec-parser.js +75 -0
- package/server/dist/modules/specs/runtime/proposal-manager.js +4 -3
- package/server/dist/modules/specs/runtime/smash-runner.js +2 -1
- package/server/dist/modules/specs/runtime/spec-addenda.js +31 -0
- package/server/dist/modules/specs/runtime/spec-draft-parser.js +6 -1
- package/server/dist/modules/specs/runtime/spec-generation.js +431 -0
- package/server/dist/modules/specs/runtime/spec-handoff.js +103 -0
- package/server/dist/modules/specs/runtime/spec-history.js +376 -0
- package/server/dist/modules/specs/runtime/spec-launcher-manager.js +4 -3
- package/server/dist/modules/specs/runtime/spec-search.js +117 -0
- package/server/dist/modules/specs/runtime/ticket-store.js +47 -2
- package/server/dist/modules/specs/runtime/ticket-trash-service.js +62 -0
- package/server/dist/modules/specs/runtime/ticket-trash.js +193 -0
- package/server/dist/modules/specs/runtime/triage-runner.js +171 -0
- package/server/dist/modules/specs/runtime/triage.js +365 -0
- package/server/dist/modules/terminals/domain/app-urls.js +96 -0
- package/server/dist/modules/terminals/runtime/app-urls.js +77 -0
- package/server/dist/modules/terminals/runtime/background-process-service.js +25 -28
- package/server/dist/project-env.js +60 -0
- package/server/dist/project-git.js +65 -0
- package/server/dist/project-registry.js +264 -27
- package/server/dist/project-router-background-processes.js +27 -3
- package/server/dist/project-router-git.js +30 -0
- package/server/dist/project-router-helpers.js +5 -30
- package/server/dist/project-router-jobs.js +49 -1
- package/server/dist/project-router-loop-runs.js +72 -2
- package/server/dist/project-router-rules.js +54 -0
- package/server/dist/project-router-search.js +52 -0
- package/server/dist/project-router-settings.js +6 -0
- package/server/dist/project-router-setup.js +1 -1
- package/server/dist/project-router-spending.js +138 -0
- package/server/dist/project-router-tickets.js +246 -427
- package/server/dist/project-router.js +7 -0
- package/server/dist/providers/claude-adapter.js +25 -3
- package/server/dist/providers/codex-adapter.js +9 -1
- package/server/dist/providers/gemini-adapter.js +6 -1
- package/server/dist/providers/kimi-adapter.js +2 -0
- package/server/dist/providers/local-adapter.js +2 -0
- package/server/dist/providers/runtime.js +8 -0
- package/server/dist/schemas/agent-runtime.schema.json +3 -1
- package/server/dist/schemas/workflow-definition.schema.json +1 -0
- package/server/dist/setup-manager.js +19 -1
- package/server/dist/transient-children.js +25 -8
- package/server/dist/update-channel.js +21 -0
- package/server/dist/util/search-snippet.js +74 -0
- package/server/dist/worktree-manager.js +19 -8
- package/client/dist/assets/ActivityFeedPage-Dtp7EyHc.js +0 -1
- package/client/dist/assets/AgentBrowserCapture-CLqlEFw8.js +0 -1
- package/client/dist/assets/AgentModeAnalyticsPane-B8_hM3Tw.js +0 -2
- package/client/dist/assets/AgentModeCodePane-CNF8ZNjE.js +0 -2
- package/client/dist/assets/AgentModeJobsPane-CJpJbO9m.js +0 -1
- package/client/dist/assets/AgentsPage-BC8XSR79.js +0 -120
- package/client/dist/assets/AnalyticsPage-Cdv4jLtW.js +0 -1
- package/client/dist/assets/BarChart-BDMqVFJy.js +0 -55
- package/client/dist/assets/CodePage-DI1kegAr.js +0 -3
- package/client/dist/assets/DesktopAnalyticsPage-Bdp8E8U6.js +0 -1
- package/client/dist/assets/DocsDialog-Bm4RS7FX.js +0 -11
- package/client/dist/assets/DocsPage-DihYcU8r.js +0 -11
- package/client/dist/assets/ExportDropdown-Bb1lHx3r.js +0 -1
- package/client/dist/assets/IntegrationsPage-EAipiDWm.js +0 -1
- package/client/dist/assets/InteractiveJobComposer-BO6ASN-2.js +0 -19
- package/client/dist/assets/JobDetailModal-CuPYq7tP.js +0 -1
- package/client/dist/assets/JobDetailPage-BusMjJi9.js +0 -1
- package/client/dist/assets/JobsPage-C0QbsF2d.js +0 -1
- package/client/dist/assets/LoopBuilderPage-B7TlU4iS.js +0 -1
- package/client/dist/assets/LoopPreviewModal-BRWtXOD2.js +0 -1
- package/client/dist/assets/LoopsPage-C4q1DmCE.js +0 -2
- package/client/dist/assets/MinimizedChatsContext-DHfigjHS.js +0 -1
- package/client/dist/assets/PluginsPage-Z1JHSMdR.js +0 -2
- package/client/dist/assets/ProjectSettingsDialog-BUNj0tvN.js +0 -1
- package/client/dist/assets/RepositoryDeliveries-B4ybHOyB.js +0 -5
- package/client/dist/assets/ReviewPacketPage-hwfPNjyy.js +0 -4
- package/client/dist/assets/TemplatePreviewModal-V7FpMWuw.js +0 -1
- package/client/dist/assets/TicketDetailModalContext-Dkwo2cDs.js +0 -16
- package/client/dist/assets/Trans-BbFxRFtR.js +0 -1
- package/client/dist/assets/activity-B-rp4h_v.js +0 -1
- package/client/dist/assets/activity-C6kJpm9q.js +0 -1
- package/client/dist/assets/activity-CGx4kb_j.js +0 -1
- package/client/dist/assets/activity-CnoX2bH7.js +0 -1
- package/client/dist/assets/activity-DAyekdlt.js +0 -1
- package/client/dist/assets/activity-DCxtpT7j.js +0 -1
- package/client/dist/assets/activity-DiyjsgQV.js +0 -1
- package/client/dist/assets/activity-JzwRaWPD.js +0 -1
- package/client/dist/assets/addspec-BOvgmcgk.js +0 -1
- package/client/dist/assets/addspec-Clmyfn_R.js +0 -1
- package/client/dist/assets/addspec-CsNaBpHp.js +0 -1
- package/client/dist/assets/addspec-D2tvWmmV.js +0 -1
- package/client/dist/assets/addspec-D3nFwvD0.js +0 -1
- package/client/dist/assets/addspec-DVLEhK3w.js +0 -1
- package/client/dist/assets/addspec-DXbK-tb0.js +0 -1
- package/client/dist/assets/addspec-OHG8DFEn.js +0 -1
- package/client/dist/assets/agent-5bSixVzz.js +0 -1
- package/client/dist/assets/agent-BR4EHfhq.js +0 -1
- package/client/dist/assets/agent-C0IKkJP8.js +0 -1
- package/client/dist/assets/agent-C7li9ayC.js +0 -1
- package/client/dist/assets/agent-D0dRmEen.js +0 -1
- package/client/dist/assets/agent-DZVGHm7H.js +0 -1
- package/client/dist/assets/agent-Dip4h2YE.js +0 -1
- package/client/dist/assets/agent-Pp-P-n1p.js +0 -1
- package/client/dist/assets/agentRuntime-BxF81z52.js +0 -1
- package/client/dist/assets/agentRuntime-BxYS5V7u.js +0 -1
- package/client/dist/assets/agentRuntime-Dc9HG3BA.js +0 -1
- package/client/dist/assets/agents-B6ZsnARo.js +0 -1
- package/client/dist/assets/agents-BORdhe0K.js +0 -1
- package/client/dist/assets/agents-C6aq9Oqs.js +0 -1
- package/client/dist/assets/agents-Cbsc4bcX.js +0 -1
- package/client/dist/assets/agents-D0uYR6hq.js +0 -1
- package/client/dist/assets/agents-Doe1sHY5.js +0 -1
- package/client/dist/assets/agents-DyNi_I9m.js +0 -1
- package/client/dist/assets/agents-StKxiTg0.js +0 -1
- package/client/dist/assets/agentstudio-7cYCXn-L.js +0 -1
- package/client/dist/assets/agentstudio-BHWQh8G3.js +0 -1
- package/client/dist/assets/agentstudio-BjnWHyRs.js +0 -1
- package/client/dist/assets/agentstudio-BkV8vcK4.js +0 -1
- package/client/dist/assets/agentstudio-BzugqB_N.js +0 -1
- package/client/dist/assets/agentstudio-CWbp7KvH.js +0 -1
- package/client/dist/assets/agentstudio-DG6plf5o.js +0 -1
- package/client/dist/assets/agentstudio-DkZVF-Cc.js +0 -1
- package/client/dist/assets/analytics-B1DIQd4m.js +0 -1
- package/client/dist/assets/analytics-BAIZ9vE_.js +0 -1
- package/client/dist/assets/analytics-BTqgmgBd.js +0 -1
- package/client/dist/assets/analytics-BWynXPEm.js +0 -1
- package/client/dist/assets/analytics-DGcUsQ44.js +0 -1
- package/client/dist/assets/analytics-GnSnpJ4W.js +0 -1
- package/client/dist/assets/analytics-TWgYaoO0.js +0 -1
- package/client/dist/assets/analytics-kJy6Tuko.js +0 -1
- package/client/dist/assets/atom-one-dark-qiGhVQxg.js +0 -1
- package/client/dist/assets/builder-B9gorTnT.js +0 -1
- package/client/dist/assets/builder-Bvw5s3Mi.js +0 -1
- package/client/dist/assets/builder-CL5l4dU3.js +0 -1
- package/client/dist/assets/builder-CVDTVrQX.js +0 -1
- package/client/dist/assets/builder-CpS9liE9.js +0 -1
- package/client/dist/assets/builder-DNctIL9Q.js +0 -1
- package/client/dist/assets/builder-De2NxX6o.js +0 -1
- package/client/dist/assets/builder-DeYT7Y-m.js +0 -1
- package/client/dist/assets/button-4FS1ZDTp.js +0 -1
- package/client/dist/assets/chat-D_I7nU5K.js +0 -1
- package/client/dist/assets/chevron-up-6EFqEHBj.js +0 -1
- package/client/dist/assets/chunk-OB3PAWPO-B1EMk45A.js +0 -3
- package/client/dist/assets/clsx-CjueKrWZ.js +0 -1
- package/client/dist/assets/code-B37GRg9C.js +0 -1
- package/client/dist/assets/code-BBOEZbf9.js +0 -1
- package/client/dist/assets/code-BRm-jcyx.js +0 -1
- package/client/dist/assets/code-CF7w62CR.js +0 -1
- package/client/dist/assets/code-CLuvJt2r.js +0 -1
- package/client/dist/assets/code-D0RCm59f.js +0 -1
- package/client/dist/assets/code-DaZ-ZwCT.js +0 -1
- package/client/dist/assets/code-iIHkGaCL.js +0 -1
- package/client/dist/assets/commands-0XjAftla.js +0 -1
- package/client/dist/assets/commands-BAWSYHjQ.js +0 -1
- package/client/dist/assets/commands-BBwowgiE.js +0 -1
- package/client/dist/assets/commands-BacjIZLN.js +0 -1
- package/client/dist/assets/commands-Bs62IAZ3.js +0 -1
- package/client/dist/assets/commands-CLPdh-Hh.js +0 -1
- package/client/dist/assets/commands-DlbFzgrp.js +0 -1
- package/client/dist/assets/commands-LjPSsi5F.js +0 -1
- package/client/dist/assets/common-Bdi0qN4S.js +0 -1
- package/client/dist/assets/common-Bhb9zN1P.js +0 -1
- package/client/dist/assets/common-BykKlZg1.js +0 -1
- package/client/dist/assets/common-CvnNNSJA.js +0 -1
- package/client/dist/assets/common-D5zk_mqq.js +0 -1
- package/client/dist/assets/common-DQNO_al5.js +0 -1
- package/client/dist/assets/common-Dax30Vmp.js +0 -1
- package/client/dist/assets/common-DkllpVSb.js +0 -1
- package/client/dist/assets/core-B3mKBIh5.js +0 -1
- package/client/dist/assets/dashboard-B1ndRHuC.js +0 -1
- package/client/dist/assets/dashboard-BX7KXiqA.js +0 -1
- package/client/dist/assets/dashboard-B_BSNxcN.js +0 -1
- package/client/dist/assets/dashboard-CCeFN7-V.js +0 -1
- package/client/dist/assets/dashboard-CRl0WtFJ.js +0 -1
- package/client/dist/assets/dashboard-XGdQ5mjw.js +0 -1
- package/client/dist/assets/dashboard-_oltA6Jd.js +0 -1
- package/client/dist/assets/dashboard-bAuf5KVk.js +0 -1
- package/client/dist/assets/dialog-DtdR05v1.js +0 -45
- package/client/dist/assets/dist-js-CJ_2XX1Y.js +0 -1
- package/client/dist/assets/event-Bt7f3wXe.js +0 -1
- package/client/dist/assets/explore-BG99VGpL.js +0 -1
- package/client/dist/assets/explore-C0TjprJW.js +0 -1
- package/client/dist/assets/explore-C2dgEo7q.js +0 -1
- package/client/dist/assets/explore-C8NDHbob.js +0 -1
- package/client/dist/assets/explore-CWWgzQGR.js +0 -1
- package/client/dist/assets/explore-CcQXpdtS.js +0 -1
- package/client/dist/assets/explore-DgBACn39.js +0 -1
- package/client/dist/assets/explore-DsXAgnmJ.js +0 -1
- package/client/dist/assets/file-text-C0blZHLh.js +0 -1
- package/client/dist/assets/formatDistanceToNow-NjPHBLfB.js +0 -1
- package/client/dist/assets/getTimezoneOffsetInMilliseconds-vJ7qUoqN.js +0 -1
- package/client/dist/assets/git-branch-yf6LE1Bw.js +0 -1
- package/client/dist/assets/index-BgbCbIua.css +0 -2
- package/client/dist/assets/index-Ce4yZtKf.js +0 -83
- package/client/dist/assets/integrations-BkpRUbvp.js +0 -1
- package/client/dist/assets/integrations-Bo8qbJf4.js +0 -1
- package/client/dist/assets/integrations-CmSrKzZb.js +0 -1
- package/client/dist/assets/integrations-DGtq26Rr.js +0 -1
- package/client/dist/assets/integrations-De38GFnQ.js +0 -1
- package/client/dist/assets/integrations-Dw6zdtb-.js +0 -1
- package/client/dist/assets/integrations-Dwl9KQp0.js +0 -1
- package/client/dist/assets/integrations-Refg_d2I.js +0 -1
- package/client/dist/assets/jira-B6OYw4CJ.js +0 -1
- package/client/dist/assets/jira-BTF6RaOe.js +0 -1
- package/client/dist/assets/jira-CEetIB2q.js +0 -1
- package/client/dist/assets/jira-CIzsZLw5.js +0 -1
- package/client/dist/assets/jira-Daw9tmpI.js +0 -1
- package/client/dist/assets/jira-FXr7u2lh.js +0 -1
- package/client/dist/assets/jira-LaNQn7yl.js +0 -1
- package/client/dist/assets/jira-api-Cabj-H0J.js +0 -1
- package/client/dist/assets/job-time-BCL7wee9.js +0 -1
- package/client/dist/assets/jobs-ARwD85B9.js +0 -1
- package/client/dist/assets/jobs-BMF1w4WT.js +0 -1
- package/client/dist/assets/jobs-CBfzGLwm.js +0 -1
- package/client/dist/assets/jobs-CPjiluBY.js +0 -1
- package/client/dist/assets/jobs-CQQd58pY.js +0 -1
- package/client/dist/assets/jobs-De3EqaO0.js +0 -1
- package/client/dist/assets/jobs-Du9-Ei9a.js +0 -1
- package/client/dist/assets/jobs-qMHbnxwC.js +0 -1
- package/client/dist/assets/layers-BCLTgHXO.js +0 -1
- package/client/dist/assets/loader-circle-BqV9xYGf.js +0 -1
- package/client/dist/assets/loop-layout-CyXj9223.js +0 -7
- package/client/dist/assets/loops-B2PhQLKR.js +0 -1
- package/client/dist/assets/loops-BqbF46st.js +0 -1
- package/client/dist/assets/loops-CINnHbfI.js +0 -1
- package/client/dist/assets/loops-D-3XhH04.js +0 -1
- package/client/dist/assets/loops-DKkEEjZ_.js +0 -1
- package/client/dist/assets/loops-DzWR5-v6.js +0 -1
- package/client/dist/assets/loops-WyWDkhok.js +0 -1
- package/client/dist/assets/loops-scD5fIBf.js +0 -1
- package/client/dist/assets/mcp-6rMoZfEO.js +0 -1
- package/client/dist/assets/mcp-BD8sL5mP.js +0 -1
- package/client/dist/assets/mcp-BkcA3I5s.js +0 -1
- package/client/dist/assets/mcp-CCpSelOh.js +0 -1
- package/client/dist/assets/mcp-CUAN6ORK.js +0 -1
- package/client/dist/assets/mcp-CqbRxRTE.js +0 -1
- package/client/dist/assets/mcp-DP2YfVhO.js +0 -1
- package/client/dist/assets/mcp-DUVQamDz.js +0 -1
- package/client/dist/assets/narration-BEKMVxGm.js +0 -1
- package/client/dist/assets/narration-CjLwGKap.js +0 -1
- package/client/dist/assets/narration-DANWuGsW.js +0 -1
- package/client/dist/assets/narration-DGeEDWiT.js +0 -1
- package/client/dist/assets/narration-DJgpGwIP.js +0 -1
- package/client/dist/assets/narration-DbHnz0qV.js +0 -1
- package/client/dist/assets/narration-bZSsTZG8.js +0 -1
- package/client/dist/assets/narration-i6aKJKEc.js +0 -1
- package/client/dist/assets/nav--u7iPYlS.js +0 -1
- package/client/dist/assets/nav-C5Jgfaby.js +0 -1
- package/client/dist/assets/nav-CAna_Wpt.js +0 -1
- package/client/dist/assets/nav-CCLqeyHo.js +0 -1
- package/client/dist/assets/nav-Cf3c90Jk.js +0 -1
- package/client/dist/assets/nav-DMYQaQjR.js +0 -1
- package/client/dist/assets/nav-Df_PkZ9F.js +0 -1
- package/client/dist/assets/nav-VyNGBJwj.js +0 -1
- package/client/dist/assets/packet-8nn9RsU7.js +0 -1
- package/client/dist/assets/packet-B0H15elv.js +0 -1
- package/client/dist/assets/packet-BQvBgrwh.js +0 -1
- package/client/dist/assets/packet-BR7mO0-a.js +0 -1
- package/client/dist/assets/packet-BgcQ6q_K.js +0 -1
- package/client/dist/assets/packet-D2s92Jnn.js +0 -1
- package/client/dist/assets/packet-YbtcD1HS.js +0 -1
- package/client/dist/assets/packet-c0Qj_9eX.js +0 -1
- package/client/dist/assets/project-repositories-Cnnuj9Ia.js +0 -1
- package/client/dist/assets/rotate-ccw-DalJAQQX.js +0 -1
- package/client/dist/assets/settings-B1NV8Ow9.js +0 -1
- package/client/dist/assets/settings-BQ8XFZeE.js +0 -1
- package/client/dist/assets/settings-BRkxfBbO.js +0 -1
- package/client/dist/assets/settings-C_CcU1dP.js +0 -1
- package/client/dist/assets/settings-Cto9n0eL.js +0 -1
- package/client/dist/assets/settings-Pyw8uYtL.js +0 -1
- package/client/dist/assets/settings-b3HVCNNd.js +0 -1
- package/client/dist/assets/settings-hdive4u6.js +0 -1
- package/client/dist/assets/setup-Be485n2u.js +0 -1
- package/client/dist/assets/setup-CKGUxKr-.js +0 -1
- package/client/dist/assets/setup-Ck1Uwd7_.js +0 -1
- package/client/dist/assets/setup-Cm774a6v.js +0 -1
- package/client/dist/assets/setup-DIqMQpxt.js +0 -1
- package/client/dist/assets/setup-DfCsoNFL.js +0 -1
- package/client/dist/assets/setup-DkeE8mP0.js +0 -1
- package/client/dist/assets/setup-xVntVaz1.js +0 -1
- package/client/dist/assets/specs-Bqvtz2kz.js +0 -1
- package/client/dist/assets/specs-CKes-kz6.js +0 -1
- package/client/dist/assets/specs-CfXxPDNB.js +0 -1
- package/client/dist/assets/specs-CyF9HuTI.js +0 -1
- package/client/dist/assets/specs-DMj035Mt.js +0 -1
- package/client/dist/assets/specs-DfIdoU5L.js +0 -1
- package/client/dist/assets/specs-j5pGLQeU.js +0 -1
- package/client/dist/assets/specs-xW5pkkB7.js +0 -1
- package/client/dist/assets/spending-CQnrWiR3.js +0 -1
- package/client/dist/assets/square-D0JTbRSR.js +0 -1
- package/client/dist/assets/tauri-shell-DE6LfGPw.js +0 -2
- package/client/dist/assets/terminal-BAzpHtpY.js +0 -1
- package/client/dist/assets/terminal-C7dHeR3x.js +0 -1
- package/client/dist/assets/terminal-CMla5Qsz.js +0 -1
- package/client/dist/assets/terminal-CdNXH-n9.js +0 -1
- package/client/dist/assets/terminal-Cw5bZsmV.js +0 -1
- package/client/dist/assets/terminal-DFUP4eNv.js +0 -1
- package/client/dist/assets/terminal-DGqljeK_.js +0 -1
- package/client/dist/assets/terminal-cU70NodO.js +0 -1
- package/client/dist/assets/tickets--tiSOCcn.js +0 -1
- package/client/dist/assets/tickets-BUJ3DMWU.js +0 -1
- package/client/dist/assets/tickets-C1WNPODq.js +0 -1
- package/client/dist/assets/tickets-CDjhWmiE.js +0 -1
- package/client/dist/assets/tickets-CLgPC3uO.js +0 -1
- package/client/dist/assets/tickets-D41ZMQpf.js +0 -1
- package/client/dist/assets/tickets-DEaQC06P.js +0 -1
- package/client/dist/assets/tickets-kcMzbLCp.js +0 -1
- package/client/dist/assets/trash-D8zYUmTg.js +0 -1
- package/client/dist/assets/useDesktop-BjLT0_EE.js +0 -1
- package/client/dist/assets/useRuntimeRuns-C97qEqMg.js +0 -1
- package/client/dist/assets/useSharedWebSocket-Bj4LMp7b.js +0 -2
- package/client/dist/assets/utils-BC4DHlz2.js +0 -1
- package/docs/guide/en/getting-started/4-the-dashboard-tour.md +0 -48
- package/docs/guide/es/getting-started/4-the-dashboard-tour.md +0 -48
- package/server/dist/mobile/mobile-preview-channel.js +0 -179
- package/server/dist/mobile/mobile-preview.js +0 -366
- package/server/dist/modules/browser/domain/preview-origins.js +0 -117
- package/server/dist/modules/browser/runtime/preview-targets.js +0 -80
- /package/client/dist/assets/{atom-one-dark-B-oHczHB.css → DocView-B-oHczHB.css} +0 -0
- /package/docs/guide/de/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
- /package/docs/guide/en/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
- /package/docs/guide/es/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
- /package/docs/guide/fr/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
- /package/docs/guide/it/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
- /package/docs/guide/ja/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
- /package/docs/guide/pt/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
- /package/docs/guide/zh/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=`Contrôle des missions`,t=`Pilotez Specrails en discutant`,n=`Contrôle des missions`,r=`Quelle est la mission ?`,i=`Envoyer`,a=`Arrêter`,o=`Copier`,s={openPreview:`Prévisualiser {{name}}`,openDownload:`Télécharger {{name}}`,previewTitle:`Aperçu de {{name}}`,downloadTitle:`Télécharger le fichier ?`,downloadPrompt:`Ce fichier ne peut pas être prévisualisé ici. Voulez-vous le télécharger ?`,download:`Télécharger`,cancelDownload:`Pas maintenant`,loading:`Préparation du fichier…`,loadFailed:`Impossible de charger la pièce jointe`,loadError:`Impossible de charger la pièce jointe : {{error}}`,remove:`Retirer {{name}}`},c=`Agrandir`,l=`Restaurer`,u=`Réduire`,d=`Fermer`,f=`Nouvelle mission`,p=`Quelle est la mission ?`,m=`Posez n’importe quelle question sur ce projet — l’agent peut lire, planifier des specs et lancer des rails.`,h=`Réflexion…`,g=`Connexion…`,_=`Consultation de l'app…`,v={compact:`Compact`,comfortable:`Confortable`,max:`Agrandir`},y={label:`Modèle`,loading:`Chargement des modèles…`,unavailable:`Modèles indisponibles`},b={hint:`Parcours de l'historique — tapez pour modifier, ↑↓ pour naviguer`},x={queued:`En file d’attente`,send:`Mettre le message en file`,sendHint:`Ajouté à la file pour le prochain tour. Choisissez « Orienter » sur un message en attente pour l’envoyer sans interrompre le modèle.`,placeholder:`Ajouter un message à la file…`,delivered:`Transmis à l’agent`,interrupted:`Transmission non confirmée`,cancelled:`Annulé avant transmission`,steer:`Orienter`,steerHint:`Envoyer sans interrompre le modèle`,steering:`Envoi à l’agent…`,remove:`Supprimer le message de la file`,more:`Options du message`,edit:`Modifier`,actionConflict:`Ce message est déjà en cours de transmission ou n’est plus dans la file.`,actionFailed:`Impossible de modifier le message en attente. Réessayez.`,removed:`Message en file supprimé`},S={sent:`Envoyé à l’agent`,received:`Transmis à l’agent`,read:`Lu par l’agent`,interrupted:`Transmission non confirmée`,cancelled:`Annulé avant transmission`},C={editing:`Modification du message en attente {{n}} sur {{m}}`,hint:`↑↓ pour naviguer · Entrée enregistre · Échap annule`,save:`Enregistrer le message en attente`,cancel:`Annuler la modification`,dispatched:`Ce message a déjà été transmis ; votre texte est conservé comme brouillon`,saveFailed:`Impossible d’enregistrer le message en attente`},w={branch:`Branche`,detached:`(détaché)`,dirty:`Modifications non commitées`,switched:`Basculé sur {{branch}}`,switchFailed:`Impossible de changer de branche`,lockedWhileWorking:`Branche verrouillée pendant que l'agent travaille`,searchPlaceholder:`Rechercher des branches…`,noMatches:`Aucune branche ne correspond`,worktrees:`Worktrees`,worktreePathCopied:`Chemin du worktree copié`,copyWorktreePath:`Copier le chemin du worktree`,repository:`Dépôt`,repositoryUnavailable:`Dépôt indisponible`,loadFailed:`État Git indisponible`,notGit:`Dossier de contexte · sans Git`,retry:`Réessayer`,copyBranch:`Copier le nom de la branche`,branchCopied:`Nom de la branche copié`},T={label:`Fournisseur`,claude:`Claude`,codex:`Codex`,gemini:`Gemini`,kimi:`Kimi`},E={cycleHint:`⇧⇥ pour changer`,observe:{name:`Observer`,desc:`Lecture seule — rien ne change`},edit:{name:`Modifier`,desc:`Créer et modifier (réversible)`},operate:{name:`Opérer`,desc:`Lancer l'IA — c'est payant`},autonomous:{name:`Autonome`,desc:`Supprimer et arrêter — irréversible`},lockedTitle:`Nécessite un niveau supérieur`,lockedBody:`Cette action nécessite le niveau « {{level}} ». Vous êtes sur « {{current}} ».`,raiseHint:`⇧⇥ pour augmenter le niveau, ou demandez autrement.`,confirmAutonomous:`Passer en Autonome`,autonomousWarning:`Le mode Autonome peut supprimer et arrêter des processus.`,skipAutonomousHint:`Appuyez de nouveau sur ⇧⇥ pour revenir à Observer.`},D={title:`Confirmer l'action`,costAction:`{{action}} · ~{{cost}} · {{tier}}`,approve:`Approuver`,cancel:`Annuler`,dontAskAgain:`Ne plus demander durant cette session`,approved:`Approuvé`,cancelled:`Annulé`},O={home:`Accueil`,searchPlaceholder:`Parlez à Specrails…`,searchProjectsPlaceholder:`Rechercher des projets…`,recents:`Récents`,allProjects:`Tous les projets`,searchAll:`Rechercher dans tous les projets`,addProject:`Ajouter un projet…`,homeHint:`Aucun projet sélectionné — opération sur tous les projets.`,askCreateOrSearch:`Aucun projet n'est sélectionné. Voulez-vous créer un nouveau projet ou rechercher dans tous les projets ?`},k={remove:`Retirer {{label}}`,addContextAction:`Ajouter un contexte ou une action`,filtering:`Filtrage de "{{query}}"`,keyboard:`↑↓ Entrée Échap`,noMatches:`Aucun résultat`,noMatchesFor:`Aucun résultat pour "{{query}}"`,mode:{reference:{title:`Référence`,hint:`@ projets, specs, missions`},trace:{title:`Trace`,hint:`# jobs, exécutions, IDs`},action:{title:`Action`,hint:`/ commandes pour ce contexte`}},plus:{reference:`Référence`,referenceHint:`Projets, specs, missions`,trace:`Trace`,traceHint:`Jobs, exécutions, IDs`,action:`Action`,actionHint:`Créer, lancer, inspecter`,fileAttachment:`Pièce jointe`,fileAttachmentHint:`Ajouter docs, images, logs`,browserCapture:`Capture navigateur`,browserCaptureHint:`Capturer une zone de page pour cette mission`},railGroup:`Rails`,railGroupInUse:`Rails en cours d’utilisation`},A={label:`Changer de mission`,untitled:`Nouvelle mission`,new:`Nouvelle mission`,searchPlaceholder:`Rechercher des missions…`,noMatches:`Aucune mission ne correspond`,working:`L'agent travaille`,queuedBadge:`{{n}} en file`,delete:`Supprimer la mission "{{title}}"`,deleteConfirm:`Supprimer ?`,deleteLiveConfirm:`L’agent travaille. Supprimer quand même ?`,confirmDelete:`Confirmer la suppression`,cancelDelete:`Garder la mission`,deleteFailed:`Impossible de supprimer la mission`},j={title:`Aucun fournisseur d'IA installé`,body:`L’agent a besoin d’un fournisseur d’IA (Claude, Codex, Gemini ou un moteur local). Installez-en ou connectez-en un, puis rouvrez l’agent.`,placeholder:`Connectez un fournisseur d’IA pour utiliser l’agent…`},M={title:`Le MCP Specrails est désactivé`,body:`L'agent a besoin du serveur MCP intégré pour piloter l'app.`,enable:`Activer le MCP Specrails`,enabling:`Activation…`,enabled:`MCP activé`},N={live:`en direct`,queued:`en file`,running:`en cours`,done:`terminé`,failed:`échoué`},P={generic:`Une erreur est survenue. Réessayez.`,busy:`L'agent est occupé. Réessayez dans un instant.`},F={kindAgent:`Mission de l'agent`},I=`Nouvelle mission`,L=`Passer au Contrôle des missions`,R=`Passer au tableau`,z=`Rechercher`,B=`Missions non attribuées`,V=`Missions favorites`,H=`Sans titre`,U={title:`Espace de travail`,terminal:`Terminal`,files:`Fichiers`,browser:`Navigateur`,requiresProject:`Sélectionnez un projet pour utiliser cet outil`,resizeCode:`Redimensionner le volet de code`,closeFiles:`Fermer le code`,browserConfirm:`Ajouter à l'agent`,browserSelectStart:`Sélectionner pour ajouter à la mission`,browserCaptured:`Capture ajoutée`,uploadFailed:`Échec du téléversement`,requiresConversation:`Lancez une mission pour utiliser cet outil`,jobs:`Jobs`,closeJobs:`Fermer les jobs`,resizeJobs:`Redimensionner le panneau des jobs`,noJobs:`Aucun job pour l'instant — demandez à l'agent d'en lancer un`,analytics:`Analytique`,closeAnalytics:`Fermer l'analytique`,resizeAnalytics:`Redimensionner le panneau d'analytique`},W=`Joindre un fichier`,G=`Supprimer «\xA0{{title}}\xA0»`,K=`Confirmer la suppression de «\xA0{{title}}\xA0»`,q=`Ajouter «\xA0{{title}}\xA0» aux favorites`,J=`Retirer «\xA0{{title}}\xA0» des favorites`,Y=`Supprimer ?`,X=`Ce fournisseur ne lit pas encore les images. Joignez plutôt des fichiers texte`,Z={label:`Effort`,minimal:`Minimal`,low:`Faible`,medium:`Moyen`,high:`Élevé`,xhigh:`Très élevé`,max:`Maximum`,ultra:`Ultra`},Q=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","completedNote":"Confirmé. Les specs sont passées à Terminé","partialSummary":"{{succeeded}} sur {{total}} terminées ; {{failed}} en échec","unit":{"failed":"échec de l’implémentation","blocked":"livraison bloquée","noChanges":"aucune modification","succeeded":"prête"},"rail":"Rail {{index}}","specCount_one":"{{count}} spec","specCount_other":"{{count}} specs","base":"Branche de base","openPr":"Ouvrir la PR","existingPr":"PR existante","title":{"no_changes":"Aucune modification nécessaire","partial":"Implémentation partielle","delivery_blocked":"Implémentation terminée : la livraison requiert votre attention","update_failed":"Implémentation terminée : échec de la mise à jour","pr_closed":"PR fermée sans fusion","superseded":"Remplacée par une exécution plus récente","existing_pr_updated":"PR existante mise à jour","building":"Implémentation dans un worktree isolé…","buildingInPlace":"Implémentation dans le dossier du projet…","buildingExistingPr":"Application des changements sur une PR existante…","paused":"Décision humaine requise","on_review":"Implémentation prête pour la revue","pr_draft":"PR en brouillon créée","pr_draft_degraded":"Livraison de la PR incomplète","pr_ready":"PR prête à être fusionnée","implementation_failed":"Échec de l’implémentation","pr_failed":"Échec de la création de la PR","merged":"PR fusionnée","discarded":"Abandonnée","review_changes_requested":"Le relecteur a demandé des modifications","returned_to_flow":"Revenu dans Flow","flowSpecChanges":"Pas encore prêt : le relecteur a demandé des modifications","flowSpecDelivered":"Votre Flow est maintenant une PR relue","flowSpecFailed":"La remise s’est arrêtée","flowSpecBuilding":"Votre Flow devient une PR relue"},"buildingHint":"À la fin, il vous sera proposé de créer la PR.","buildingExistingPrHint":"Specrails travaille sur la branche de la PR existante et poussera les changements de revue vers cette même PR.","paused":"Implémentation en pause","pausedForRun":"En pause sur {{ref}}","resume":"Reprendre","stopExecution":"Arrêter l’exécution","stopExecutionSent":"Signal d’arrêt envoyé","stopExecutionFailed":"Impossible d’arrêter l’exécution","createPr":"Créer la PR","publish":"Publier","checkout":"Changer de branche","openReview":"Relire","openReviewTooltip":"Ouvrir la relecture en langage clair","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","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","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","retry":"Réessayer","retryPr":"Réessayer la PR","checkMerge":"Vérifier le merge","verifyPr":"Vérifier la PR","discard":"Abandonner","confirmDiscard":"Confirmer l'abandon ?","mergedNote":"Fusionnée. Les specs sont passées à Terminé","discardedNote":"Abandonnée. Les specs sont revenues dans le backlog","implementationFailedNote":"Le run d’implémentation a échoué avant de produire quelque chose de livrable. Ouvrez le journal du run pour inspecter l’échec, puis abandonnez cette carte avant de relancer.","dismiss":"Fermer le suivi","discardLocalResult":"Supprimer le résultat local","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}}","reopen":"Rouvrir","createPartialPr":"Créer une PR avec {{count}}","supersededNote":"Une exécution d’implémentation plus récente a remplacé cette carte.","noChangesExisting":"Aucune nouvelle modification n’était nécessaire ; la PR existante reste inchangée.","noChangesNote":"Aucune modification de code n’était nécessaire. Marquez les specs comme terminées ou renvoyez-les dans le backlog pour les affiner.","deliveryNeedsAttention":"Implémentation terminée ; la livraison requiert votre attention","deliveryBlockedNote":"L’implémentation a réussi, mais la livraison est bloquée. Consultez le détail de l’étape et les journaux avant de supprimer le résultat local.","partialDeliveryBlockedNote":"Une partie de l’implémentation a réussi, mais rien ne peut encore être livré en toute sécurité. Consultez les éléments par unité et les journaux avant de choisir l’action suivante.","retryPushNote":"L’implémentation a réussi et les modifications sont en sécurité localement. Réessayez uniquement le push.","cleanupIncomplete_one":"Nettoyage incomplet ({{count}} avertissement)","cleanupIncomplete_other":"Nettoyage incomplet ({{count}} avertissements)","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.","confirm":{"recoverAndRetryTitle":"Créer le commit et envoyer le résultat préservé ?","recoverAndRetryBody":"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.","recheckRecoveryTitle":"Vérifier à nouveau cet ordinateur ?","recheckRecoveryBody":"Nous vérifierons s’il est encore possible de récupérer quelque chose de cette livraison. Rien n’est supprimé.","noChangesDoneTitle":"Marquer ces specs comme terminées ?","noChangesDoneBody":"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é.","refineTitle":"Affiner ces specs ?","refineBody":"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.","mergeLocalTitle":"Intégrer localement ?","mergeLocalBody":"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.","freshDiscardTitle":"Supprimer cette livraison ?","freshDiscardBody":"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 specs retourneront dans le backlog. 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 specs retourneront dans le backlog. 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.","dismissTitle":"Fermer ce suivi ?","dismissBody":"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.","discardLocalTitle":"Supprimer le résultat local ?","discardLocalBody":"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é.","recheckRecoveryTechnical":"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é."},"degraded":{"pushed":"La branche a été poussée mais la PR n’a pas pu être créée. Réessayez pour terminer.","localOnly":"Les modifications ont été assemblées en local mais pas poussées. Réessayez pour publier la PR."},"alreadyResolved":"Déjà résolue ailleurs","actionFailed":"L'action a échoué","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","viewLog":"Voir le journal d'exécution de {{ref}}","runElapsedAria":"{{elapsed}} écoulées","runCostAria":"{{cost}} dépensés","focusRegion":"Carte d’implémentation · {{rail}} {{tickets}}","pinned":{"state":{"completed":"Terminée","no_changes":"Aucune modification","pr_closed":"Fermée","superseded":"Remplacée","building":"En cours","on_review":"Revue","pr_draft":"PR brouillon","pr_ready":"Publiée","implementation_failed":"Échec","pr_failed":"Échec","merged":"Fusionnée","discarded":"Abandonnée"}},"mergeLocal":"Intégrer en local","mergeLocalTooltip":"Fusionne les branches livrées dans {{base}} dans votre checkout local (sans GitHub)","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.","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.","resumeFromStep":"Reprendre depuis {{step}}","resumeFromStepHint":"L'étape {{step}} interrompue est relancée depuis son début ; le travail déjà sur le disque est conservé.","retryDelivery":"Relancer la livraison","retryDeliveryHint":"Ne refait que la dernière étape (commit, push et PR) sur la branche de cette exécution. Aucun travail d’IA n’est refait.","retryDeliverySent":"Nouvelle tentative de livraison…","retryDeliveryFailed":"Impossible de relancer la livraison","mergedLocallyRestored":"Vos modifications locales ont été mises de côté, {{tickets}} a été intégré, puis elles ont été restaurées.","mergedLocallyStashConflict":"{{tickets}} intégré. Vos modifications locales sont en sécurité dans un stash ; Specrails les restaure sur une branche séparée.","mergedLocallyStashKept":"{{tickets}} intégré. Vos modifications locales sont en sécurité dans un stash ; restaurez-les quand vous voulez.","localStash":{"title":"Vos modifications locales sont enregistrées dans un stash","conflictBody":"Les réappliquer sur le résultat intégré a provoqué des conflits ; {{branch}} est donc resté exactement tel qu'intégré. Restaurez-les pour réessayer sur une branche séparée.","savedBody":"Elles n'ont pas encore été restaurées. Restaurez-les pendant que {{branch}} est extrait.","files":"Fichiers en conflit","restore":"Restaurer mes modifications","restoring":"Restauration…","copy":"Copier le nom du stash","copied":"Nom du stash copié","restoredToast":"Vos modifications locales sont de retour sur {{branch}}.","stillConflicting":"Vos modifications locales sont toujours en conflit avec {{branch}} ; elles restent en sécurité dans le stash.","released":"Ce stash n'existe plus : il n'y a plus rien à restaurer.","blockedBranch":"Passez d'abord sur {{base}} (vous êtes sur {{current}}), puis restaurez.","blockedDirty":"Certains de ces fichiers ont encore changé depuis leur sauvegarde. Commitez ou déplacez ces modifications, puis restaurez.","failed":"Impossible de restaurer vos modifications locales","restoringBody":"Les réappliquer sur le résultat intégré a provoqué des conflits ; {{branch}} est donc resté exactement tel qu'intégré. Specrails les restaure sur {{restoreBranch}} dans un worktree séparé et y résout les conflits.","readyBodyClean":"Vos modifications sont restaurées et commitées sur {{restoreBranch}} ; elles s'y sont appliquées sans conflit. Vérifiez-les, puis ramenez-les sur {{branch}}.","readyBodyResolved":"Vos modifications sont restaurées et commitées sur {{restoreBranch}}, avec les conflits résolus automatiquement. Vérifiez-les, puis ramenez-les sur {{branch}}.","failedBody":"Specrails n'a pas pu terminer leur restauration sur {{restoreBranch}}. Elles restent en sécurité dans le stash ; supprimez cette branche ou restaurez-les à nouveau.","restoredFiles":"Restauré sur {{restoreBranch}}","binary":"binaire","managedNote":"Les fichiers générés gérés par Specrails ont gardé la version intégrée : {{files}}","bringBack":"Les ramener sur {{branch}}","bringingBack":"Rapatriement…","discardBranch":"Supprimer la branche restaurée","discarding":"Suppression…","broughtBackToast":"Vos modifications locales sont de retour sur {{branch}}.","discardedToast":"Branche restaurée supprimée. Vos modifications restent en sécurité dans le stash.","blockedBringBack":"Impossible de ramener les modifications sur {{branch}} en toute sécurité.","notReady":"La branche restaurée n'est pas encore prête."},"failed":{"createPr":"Impossible de créer la PR","mergeLocal":"Impossible d'intégrer en local","discard":"Impossible d'abandonner le résultat","publish":"Impossible de publier la PR","generic":"La livraison s'est arrêtée. Voir les détails techniques."},"moreActions":"Plus d'actions"}`),$={heading:`Brouillon de spec`,drafting:`Mise à jour du brouillon…`,acceptanceCriteria:`Critères d'acceptation`,untitled:`Spec sans titre`,expand:`Afficher la description complète`,collapse:`Réduire la description`},ee={heading:`Cadrage`,framing:`Cadrage de la demande…`,restated:`Ce que j'ai compris`,alternative:`Cela pourrait aussi signifier`,pick:`Répondre avec ceci`,touches:`Toucherait`,discriminator:`Laquelle des deux ?`,assumptions:`Ce que je suppose`,unknowns:`Encore ouvert`},te={openTicket:`Ouvrir la spec #{{id}}`,openPullRequest:`Ouvrir la PR #{{id}}`,openJob:`Ouvrir le job {{id}}`,openLoop:`Ouvrir la boucle {{id}}`,ticketNotFound:`Spec #{{id}} introuvable. Elle a peut-être été supprimée`,pullRequestUrlMissing:`La PR #{{id}} est mentionnée sans URL`,pullRequestNotFound:`PR #{{id}} introuvable dans ce projet`,jobNotFound:`Job introuvable. Il a peut-être été supprimé`,loopNotFound:`Boucle introuvable. Elle a peut-être été supprimée`,lookupFailed:`Impossible de vérifier la référence. Réessayez`},ne={untitled:`Mission sans titre`,menu:`Menu de la mission`,rename:`Renommer`,renamePlaceholder:`Nom de la mission`,renameHint:`Double-clic pour renommer`,renameFailed:`Renommage impossible`,addFavorite:`Ajouter aux favorites`,removeFavorite:`Retirer des favorites`,copyName:`Copier le nom de la mission`,copyId:`Copier l'ID de la mission`,copyProject:`Copier le nom du projet`,copyProjectPath:`Copier le chemin du projet`,copyFailed:`Copie impossible`,copyTranscript:`Copier la transcription`,copyTranscriptSuccess:`Transcription copiée`,copyTranscriptFailed:`Impossible de copier la transcription`,exportTranscript:`Exporter la transcription (.txt)`,exportTranscriptSuccess:`Export de la transcription lancé`,exportTranscriptFailed:`Impossible d'exporter la transcription`,delete:`Supprimer la mission`,deleteConfirm:`Supprimer cette mission ? Action irréversible.`,deleteFailed:`Impossible de supprimer la mission`},re=`Que doit-on construire maintenant ?`,ie={title:`Journal d'exécution`,live:`En direct`,empty:`Aucune activité d'outil dans ce tour pour l'instant.`,output:`Sortie`,error:`Erreur`,copyAll:`Copier tout le journal`,copyEntry:`Copier l'entrée`,copySuccess:`Journal copié dans le presse-papiers`,copyFailed:`Impossible de copier le journal`,openLog:`Voir le journal d'exécution`,close:`Fermer`,tool:{terminal:`Terminal`,reading:`Lecture`,searching:`Recherche`,editing:`Modification`,web:`Web`,agent:`Agent`,agentNamed:`Agent · {{description}}`,mcp:`MCP · {{name}}`,mcpTool:`Outil MCP`}},ae={open:`Voir les logs de {{command}}`,logsTitle:`Logs du processus`,logsDescription:`Sortie en direct et historique enregistré de ce processus.`,close:`Fermer les logs`,command:`Commande`,directory:`Répertoire`,exitCode:`Code de sortie : {{code}}`,signal:`Signal : {{signal}}`,search:`Rechercher dans les logs…`,source:`Source de sortie`,allSources:`Toutes les sorties`,pause:`Pause`,resume:`Reprendre`,follow:`Suivre`,copy:`Copier les logs visibles`,download:`Télécharger les logs visibles`,stop:`Arrêter le processus`,stopCommand:`Arrêter {{command}}`,stopFailed:`Impossible d’arrêter le processus. Réessayez.`,truncated:`La fenêtre de logs est limitée. Des sorties anciennes ou des lignes longues peuvent être omises. La copie et le téléchargement incluent seulement cette vue.`,paused:`Vue en pause. Le processus continue.`,loadFailed:`Impossible de charger les logs. Leur durée de conservation a peut-être expiré ; la sortie déjà chargée reste visible.`,retry:`Réessayer`,copied:`Logs visibles copiés.`,exportFailed:`Impossible d’exporter les logs. Réessayez.`,output:`Sortie du processus`,loading:`Chargement des logs…`,noMatches:`Aucune sortie correspondante.`,empty:`Aucune sortie pour le moment.`,lineCount:`{{count}} lignes sur {{total}}`,exportHint:`L’export inclut seulement le filtre actuel et la sortie conservée.`,status:{starting:`Démarrage`,running:`En cours`,stopping:`Arrêt en cours`,exited:`Terminé`,killed:`Arrêté`,failed:`Échec`,interrupted:`Déconnecté`},repository:`Dépôt`,history:{button:`Processus`,title:`Processus de la mission`,open:`Voir l’historique des processus`,description:`Consultez les processus actifs et les journaux enregistrés des exécutions précédentes.`,search:`Rechercher une commande ou un dépôt…`,refresh:`Actualiser l’historique`,close:`Fermer l’historique des processus`,back:`Retour aux processus`,loading:`Chargement de l’historique…`,empty:`Aucun processus n’a encore été enregistré pour cette mission.`,noMatches:`Aucun processus correspondant.`,loadFailed:`Impossible de charger l’historique. Les entrées déjà chargées restent disponibles.`,showMore:`Afficher plus`,count:`Processus : {{count}}`},interruptedHint:`Specrails ne supervise plus ce processus. Son état dans le système d’exploitation est inconnu ; les journaux enregistrés restent disponibles.`,persistenceFailed:`L’historique du processus n’a pas pu être enregistré. La sortie disponible reste visible.`,appUrls:{title:`Adresses de l’app`,local:`Cet ordinateur`,network:`Votre réseau`,open:`Ouvrir {{url}} dans le navigateur`,copy:`Copier {{url}}`,localOnly:`Accessible uniquement depuis cet ordinateur. Pour l’ouvrir depuis votre téléphone sur le même Wi-Fi, demandez à l’agent de la relancer exposée sur votre réseau local.`}},oe={detach:`Ouvrir dans une fenêtre séparée`,attach:`Revenir à la fenêtre principale`,detached:`Cette mission est ouverte dans une autre fenêtre.`,focus:`Afficher la fenêtre de la mission`,loading:`Déplacement de la mission…`,failed:`Impossible de déplacer cette mission. Votre brouillon est conservé.`,dismiss:`Fermer`,wrongMission:`Ouvrez cette mission avant de la déplacer.`,finishPending:`Terminez l’opération en cours, ou enregistrez ou annulez le message ou la capture avant de déplacer la mission.`},se={heading:`Lancement de rail`,rail:`Rail {{index}}`,newRail:`Nouveau rail`,play:`Lancer`,launching:`Lancement…`,dismiss:`Ignorer`,playHint:`Ajustez ce que vous voulez, puis appuyez sur Lancer pour lancer sous votre propre autorité.`,pending:`Préparation d’une proposition de lancement…`,unreadable_one:`La proposition de lancement de l’agent n’a pas pu être lue.`,unreadable_other:`{{count}} propositions de lancement n’ont pas pu être lues.`,effortDefault:`Effort par défaut`,profileNone:`Aucun profil`,status:{proposal:`Proposition`,ready:`Prêt`,blocked:`Attention requise`,loading:`Vérification…`},availability:{free:`libre`,busy:`en cours d’exécution`,pending_decision:`en attente d’une décision`,on_review:`en revue`},fields:{rail:`Rail`,newRailName:`Nom du nouveau rail (facultatif)`,railName:`Nom du rail`,addSpec:`Ajouter une spec`,removeSpec:`Retirer #{{id}}`,loop:`Loop`,engine:`Moteur IA`,model:`Modèle`,effort:`Effort de raisonnement`,profile:`Profil d’agents`,targetPr:`PR cible #`,baseBranch:`Branche de base`},notes:{railMissing:`Le Rail {{index}} n’existe plus. Choisissez un autre rail ou créez-en un.`,railBusy:`Le Rail {{index}} est {{state}} : impossible d’y lancer quoi que ce soit.`,useFree:`Utiliser le Rail {{index}}`,specsDropped:`Ne font plus partie de ce projet : {{ids}}`,engineStale:`{{engine}} n’est pas détecté sur cette machine. {{fallback}} sera utilisé.`,modelStale:`{{model}} n’est pas disponible. {{fallback}} sera utilisé.`},block:{noProject:`Cette mission n’est épinglée à aucun projet.`,loadFailed:`Impossible de charger les rails, specs ou dépôts du projet.`,noSpecs:`Ajoutez au moins une spec pour lancer.`,railLimit:`Les {{max}} rails existent déjà et aucun n’est libre.`},errors:{tickets_in_flight:`L’une de ces specs s’exécute déjà sur un autre rail.`,pr_decision_pending:`Ce rail attend une décision concernant la PR.`,rail_limit_reached:`Le projet a déjà atteint le nombre maximal de rails.`,invalid_base_branch:`Cette branche de base n’existe pas en local.`,base_branch_requires_isolation:`Une branche de base nécessite l’isolation par worktree (un dépôt git avec des commits).`,target_pr_requires_pr_mode:`Une PR cible nécessite l’isolation par worktree (un dépôt git avec des commits).`,invalid_response:`Réponse inattendue du serveur.`,scope_save_failed:`Impossible d’enregistrer les dépôts de la spec.`,repository_scope_incomplete:`Un dépôt requis par les specs manque au lancement. Vérifiez les attributions ci-dessus.`,rail_not_empty:`Ce rail a déjà des specs`,flow_freeze_failed:`Les modifications de votre Flow n’ont pas pu être enregistrées pour la remise`,flow_head_mismatch:`Votre Flow a changé pendant la remise. Réessayez`,flow_already_handed_off:`Ce Flow a déjà été remis à un rail`,flow_handoff_not_adopted:`Le rail a démarré sans reprendre les modifications de votre Flow`,illegal_transition:`Le Flow a changé d’état entre-temps`,feature_unavailable:`Flow n’est pas disponible`,daily_budget_exceeded:`Budget quotidien atteint : rien n’a été lancé.`,review_wip_limit_reached:`Limite de revue atteinte : rien n’a été lancé.`,repository_has_no_commits:`Ce dépôt n’a encore aucun commit. Faites un premier commit pour que Specrails puisse créer une copie isolée du projet.`},stub:{launched:`Lancé → Rail {{rail}}`,dismissed:`Proposition ignorée`,viewRun:`Voir le run`,goToCard:`Aller à la carte`,goToCardTitle:`Aller à la carte d'implémentation de ce lancement`,viewRunTitle:`Ouvrir le journal en direct du run`},followUp:{title:`Résoudre {{count}} commentaire(s) de revue de la PR`,excluded:`Ne pas modifier`,verification:`Vérifier`,specUntouched:`La spec et sa description Jira ne sont pas modifiées : le périmètre voyage avec l’exécution.`,source:{pasted:`collé`,github:`depuis GitHub`}},addenda:{rides_one:`{{count}} addendum ouvert accompagne ce lancement :`,rides_other:`{{count}} addenda ouverts accompagnent ce lancement :`},repositories:{launch:`Dépôts pour ce lancement`,launchHint:`Inclut les dépôts requis par les specs. Vous pouvez ajouter d’autres dépôts du projet.`,assignments:`Attribués à chaque spec`,edit:`Modifier`,editSpec:`Modifier les dépôts de #{{id}}`,spec:`Dépôts de la spec #{{id}}`,saveHint:`L’enregistrement met aussi à jour les dépôts de cette spec pour les futurs lancements.`,save:`Enregistrer les dépôts`,cancel:`Annuler`,finishEditing:`Enregistrez ou annulez la modification des dépôts avant de lancer.`,missing:`Dépôts requis manquants : {{names}}. Incluez-les ci-dessus ou modifiez les attributions de la spec si ses cibles ont changé.`,unavailable:`Les dépôts sélectionnés ne sont pas disponibles pour l’implémentation : {{names}}. Modifiez la sélection ou les attributions des specs.`,refresh:`Actualiser`,retry:`Réessayer le chargement`,checkScope:`Vérifiez la sélection des dépôts avant de lancer.`},triageLabel:`Triage`,handOff:{newRail:`Un nouveau rail`,changeHow:`Changer la méthode`}},ce={status:{running:`En cours`,paused:`En pause`,succeeded:`Réussi`,failed:`Échoué`,stalled:`Bloqué`,cancelled:`Annulé`,unknown:`Inconnu`,changes_requested:`Modifications demandées`,returned:`Revenu dans Flow`},title:{running:`Implémentation dans le checkout du projet…`,paused:`Une décision humaine est nécessaire`,succeeded:`Implémentation terminée`,failed:`L’implémentation a échoué`,stalled:`L’implémentation est bloquée`,cancelled:`Run annulé`,unknown:`État du run inconnu`,changes_requested:`Le relecteur a demandé des modifications`,returned:`Revenu dans Flow`},noDeliveryNote:`Pas de phase PR : ce projet n’a ni dépôt git ni commits, le travail a donc été appliqué directement dans le dossier du projet.`,noDeliveryHint:`Exécution directe dans le dossier du projet (pas de dépôt git ni de commits, donc aucune PR ne sera proposée).`,failure:{title:`Pourquoi ça s’est arrêté`,step:`étape {{step}}`,unit:`#{{ticket}} · {{code}}`},actions:{resume:`Reprendre`,approve:`Approuver`,recover:`Récupérer et réessayer`,relaunch:`Relancer`},relaunchSent:`Rail {{index}} relancé. Une nouvelle carte suivra le run.`,relaunchFailed:`Impossible de relancer le rail`,relaunchBlockedActive:`Le rail a encore un run actif`,review:{title:{review:`Le relecteur a demandé des modifications`,check:`Les vérifications échouent toujours`},score:`score {{score}}`,issues_one:`{{count}} point`,issues_other:`{{count}} points`,showAll:`Tout afficher ({{count}})`,showLess:`Afficher moins`,omitted_one:`+{{count}} autre dans la relecture de l’exécution`,omitted_other:`+{{count}} autres dans la relecture de l’exécution`,failingChecks:`En échec`,check:`{{command}} · code {{code}}`,next:`Les tours de correction automatique ne les ont pas résolus. Revenez au Flow pour les régler avec l’agent, ou relancez depuis la même branche du Flow.`,returned:`De retour dans le Flow : vos modifications sont revenues dans leur Flow avec la revue. Continuez dans le bandeau du Flow.`}},le={briefing:{title:`Compte rendu automatique de l’échec`}},ue={open:`Vue partagée`,menu:`Actions de conversation`,add:`Ajouter une conversation en vue partagée`,close:`Fermer la vue partagée`,loadFailed:`Impossible de charger cette conversation.`,retry:`Réessayer`},de={label:`Modèle et effort`,resetEffort:`Réinitialiser l’effort`,back:`Retour`},fe={0:`Quelle est la mission ?`,1:`Par quelle mission commençons-nous ?`,2:`Quelle est notre mission aujourd’hui ?`,3:`Quelle est notre prochaine mission ?`,4:`Que veux-tu accomplir avec cette mission ?`,5:`Quelle mission lançons-nous ?`,6:`Par où commencer cette mission ?`,7:`Quel est l’objectif de cette mission ?`,8:`Que construisons-nous dans cette mission ?`,9:`Qu’améliorons-nous avec cette mission ?`,10:`Quel défi relevons-nous dans cette mission ?`,11:`Quelle est la première étape de cette mission ?`,12:`Parle-moi de la mission que tu as en tête…`,13:`Décris ta prochaine mission…`,14:`Donnons forme à ta prochaine mission…`,15:`Que doit accomplir cette mission ?`,16:`Quelle mission aimerais-tu terminer ?`,17:`Que résolvons-nous dans cette mission ?`,18:`Qu’est-ce qui ferait de cette mission un succès ?`,19:`Tout est prêt pour une nouvelle mission. On commence ?`},pe={title:`Agents`,working_one:`{{count}} au travail`,working_other:`{{count}} au travail`,done_one:`{{count}} terminé`,done_other:`{{count}} terminés`,ended_one:`{{count}} arrêté`,ended_other:`{{count}} arrêtés`,phase:{running:`Au travail`,idle:`Terminé`,failed:`Échec`,stopped:`Arrêté`,killed:`Tué`,interrupted:`Interrompu`},reason:{user_stop:`arrêté par vous`,host_request:`arrêté par l'app`,restart:`perdu au redémarrage`,shutdown:`app fermée`,host_lost:`hôte d'agents perdu`,crashed:`processus planté`,stalled:`ne répond plus`,limit:`limite atteinte`,project_removed:`projet supprimé`,evicted:`libéré pour économiser des ressources`,policy:`les sous-agents sont désactivés`},expand:`Afficher l'activité de {{name}}`,collapse:`Masquer l'activité`,elapsedAria:`En cours depuis {{elapsed}}`,loadingActivity:`Chargement de l'activité…`,noActivity:`Pas encore d'activité`,activityFailed:`Impossible de charger l'activité`,moreActivity:`Charger plus`,tokens:`{{tokens}} jetons`,toolUses_one:`{{count}} appel d'outil`,toolUses_other:`{{count}} appels d'outils`,stop:`Arrêter`,stopOne:`Arrêter {{name}}`,stopAll:`Arrêter tous les agents`,stopFailed:`Impossible d'arrêter les agents`,relaunch:`Relancer`,relaunchHint:`Rédiger un message demandant à l'agent de relancer ce travail`,relaunchDraft:`Merci de relancer l'agent en arrière-plan pour : {{description}}`,continuation:`Suite après les agents en arrière-plan`,continuationSystem:`Suite après le travail en arrière-plan`,backgroundTurn:`L'agent examine les résultats en arrière-plan…`,deferred:`Le changement de réglages sera appliqué quand les agents en arrière-plan auront fini.`,applyNow:`Arrêter les agents et appliquer`,policyUnenforceable:`{{provider}} ne peut pas désactiver les sous-agents. Activez « Autoriser les sous-agents » dans les réglages du projet ou utilisez un autre fournisseur pour cette mission.`,result:`Résultat`,count_one:`{{count}} agent`,count_other:`{{count}} agents`,finishedIn:`terminés en {{elapsed}}`,delegatedHint:`Lancé par Specrails sur {{provider}} ({{model}}) ; son coût est compté à part.`},me={host_degraded:`Les sessions Core sont indisponibles pour ce projet après plusieurs échecs : ce tour est passé par le transport classique (sans sous-agents en arrière-plan). Réessayez une fois la cause corrigée.`,journal_locked:`Une autre instance de Specrails Desktop utilise les sessions d'agent de ce projet : ce tour est passé par le transport classique. Fermez l'autre instance, puis réessayez.`,policy:{subagent_blocked:`Le fournisseur a lancé un sous-agent alors que les sous-agents sont désactivés pour ce projet ; il a été arrêté.`},retry:`Réessayer`,retryFailed:`Toujours indisponible. Consultez le journal de l'app pour la cause.`,dismiss:`Ignorer`,subagents:{delegation_unsupported:`Les sous-agents {{provider}} nécessitent un Specrails Core plus récent ; l'agent de cette mission lance donc ses propres sous-agents.`,driver_unavailable:`{{provider}} n'est pas disponible pour le runtime de sessions ; l'agent de cette mission lance donc ses propres sous-agents.`}},he=`Préparation d’une carte…`,ge={placeholder:`Écrivez pour interrompre : l’agent change de cap tout de suite`,send:`Interrompre et envoyer`,sendHint:`Arrête l’étape en cours et transmet votre message à l’agent maintenant`},_e=JSON.parse(`{"missing":{"sessions":"Les sessions d’agent de Core sont désactivées ou indisponibles","flowSessions":"Votre Specrails Core ne sait pas encore interrompre un agent en cours","deriveChange":"Votre Specrails Core ne sait pas encore dériver une spec à partir du code"},"errors":{"generic":"Flow n’a pas pu terminer cette action. Réessayez.","network":"Impossible de joindre Specrails.","feature_unavailable":"Flow n’est pas disponible avec le Specrails Core installé.","flow_already_open":"Cette mission a déjà un Flow. Reprenez-le ou abandonnez-le d’abord.","illegal_transition":"Le Flow a changé d’état entre-temps. Actualisez et réessayez.","flow_worktree_missing":"La copie du projet de ce Flow n’existe plus. Vérifiez la branche du Flow avant de continuer.","flow_repository_required":"Choisissez le dépôt dans lequel ce Flow s’exécute.","flow_repository_not_git":"Flow a besoin d’un dépôt Git pour sa branche ; un simple dossier ne suffit pas. Choisissez un dépôt Git.","flow_repository_unknown":"Ce dépôt ne fait plus partie de ce projet. Choisissez-en un autre.","flow_repository_missing":"Le dépôt du Flow n’est plus disponible dans ce projet.","rail_not_empty":"Ce rail a déjà des specs. Choisissez un rail libre et vide.","flow_already_handed_off":"Ce Flow a déjà été remis à un rail.","flow_freeze_failed":"Les modifications de votre Flow n’ont pas pu être enregistrées pour la remise.","flow_head_mismatch":"Votre Flow a changé pendant la remise. Réessayez.","flow_handoff_not_adopted":"Le rail a démarré sans reprendre les modifications de votre Flow.","repository_has_no_commits":"Ce dépôt n’a encore aucun commit. Faites un premier commit pour que Specrails puisse créer une copie isolée du projet.","flow_not_found":"Ce Flow n’existe plus.","flow_failed":"Flow a rencontré une erreur inattendue. Réessayez.","conversation_not_found":"Cette mission n’existe plus.","conversation_not_pinned":"Épinglez cette mission au projet avant de lancer un Flow.","flow_not_handed_off":"Ce Flow n’attend plus cette exécution.","flow_rail_unknown":"Le rail de cette exécution est inconnu. Remettez-le de nouveau à un rail depuis le bandeau du Flow.","flow_return_busy":"L’exécution est occupée par une autre action. Réessayez dans un instant.","flow_return_not_allowed":"Seule une remise arrêtée avant la livraison peut revenir à son Flow.","flow_return_not_found":"Cette exécution n’est pas une remise de Flow.","flow_return_worktree_mismatch":"Cette exécution n’a pas repris les modifications de ce Flow.","spec_in_flow":"Cette spec est déjà en Flow. Ouvrez sa mission pour continuer.","spec_on_rail":"Cette spec est sur un rail. Retirez-la du rail pour la démarrer en Flow.","spec_running":"Cette spec est en cours d’exécution sur un rail. Attendez la fin de l’exécution.","spec_closed":"Cette spec est terminée ou annulée. Rouvrez-la pour y travailler en Flow.","spec_not_found":"Cette spec n’existe plus.","invalid_ticket_id":"Impossible d’identifier cette spec."},"entry":{"heading":"Démarrer un Flow","body":"Specrails crée une copie séparée du projet sur sa propre branche de Flow, où l’agent peut écrire du code. Votre branche principale n’est pas touchée.","provider":"L’agent travaille avec {{provider}} et n’écrit que dans la copie du Flow.","providerUnknown":"L’agent n’écrit que dans la copie du Flow.","repository":{"label":"Dépôt","hint":"Le Flow travaille dans une copie séparée de ce dépôt.","choose":"Choisissez le dépôt dans lequel ce Flow s’exécute","loading":"Chargement des dépôts…","loadFailed":"Impossible de charger les dépôts du projet. Réessayez.","suggested":"Suggéré par l’agent","noGit":"Ce projet n’a pas de dépôt Git. Flow en a besoin pour sa branche."},"blocked":{"noProject":"Épinglez cette mission à un projet pour utiliser Flow.","open":"Cette mission a déjà un Flow.","missing":"Flow nécessite un Specrails Core plus récent :","unavailable":"Flow n’est pas disponible pour le moment.","goToFlow":"Aller à ce Flow"},"cancel":"Annuler","start":"Démarrer le Flow","starting":"Démarrage…","existingSpec":{"label":"Spec #{{id}}","note":"Le Flow travaille sur cette spec et l’agent part d’elle. À la livraison, la spec est réécrite à partir de ce qui a été construit ; son texte actuel est conservé en commentaire."}},"offer":{"heading":"Comment voulez-vous le construire ?","notNow":"Pas maintenant","implementReply":"Écrivons d’abord la spec, puis lançons Implement.","mode":{"flow":{"title":"Flow","hint":"Construisez-le ensemble sur une branche de Flow séparée ; la spec vient à la fin.","hintExisting":"Construisez cette spec ensemble sur une branche Flow à part ; la spec est réécrite à partir de ce qui est construit."},"implement":{"title":"Spec + implémenter","hint":"Validez d’abord une spec, puis confiez-la à un rail.","hintExisting":"Confiez cette spec, telle qu’elle est écrite, à un rail."}},"stub":{"flow":"Vous avez choisi Flow","implement":"Vous avez choisi spec + Implement","dismissed":"Proposition écartée","handedOff":"Flow remis au Rail {{rail}}","state":{"active":"Flow en cours","paused":"Flow en pause","handed_off":"Flow remis à un rail","delivered":"Flow livré","discarded":"Flow abandonné","needs-review":"Le Flow doit être vérifié","closed":"Flow fermé (branche conservée)"},"viewRun":"Voir l’exécution"},"why":"Pourquoi l’agent pose la question","waitForReply":"Vous pourrez choisir quand l’agent aura terminé cette réponse.","implementExistingReply":"Implémentons la spec #{{id}} sur un rail."},"bar":{"controls":"Actions du Flow","viewChanges":"Voir les modifications","resume":"Reprendre le Flow","pause":"Suspendre le Flow","discard":"Abandonner","discarded":"Flow abandonné","files_one":"{{count}} fichier","files_other":"{{count}} fichiers","filesTitle":"Fichiers modifiés sur la branche du Flow","costTitle":"Coût réel des tours de ce Flow, tel que facturé par le fournisseur","costPartial_one":"{{count}} tour n’a pas de coût communiqué par le fournisseur et n’est pas inclus","costPartial_other":"{{count}} tours n’ont pas de coût communiqué par le fournisseur et ne sont pas inclus","needsReview":"La copie du projet de ce Flow est introuvable. Rien n’a été supprimé ; vérifiez la branche du Flow avant de continuer.","pausedNote":"En pause. Vos modifications et la spec sont conservées ; reprenez quand vous voulez.","state":{"active":"Flow","paused":"Flow en pause","needs-review":"Le Flow doit être vérifié","handed_off":"Remis à un rail","delivered":"Livré","discarded":"Abandonné","closed":"Fermé"},"disabled":{"settling":"Attendez que le Flow ait fini d’enregistrer son état","busy":"Attendez la fin de l’action en cours","noSpec":"La spec du Flow n’est pas encore prête"},"viewChangesStats":"Voir les modifications · {{files}}, +{{additions}} −{{deletions}}","handOff":"Remettre","close":"Fermer ce Flow","closed":"Flow fermé. La branche est conservée."},"preview":{"open":"Aperçu","openTitle":"Ouvrir l’app à l’adresse {{url}} dans votre navigateur","stopping":"Arrêt en cours…","more":"Actions de l’app","local":"Ouvrir sur cet ordinateur","network":"Ouvrir sur le réseau local","localOnly":"Accessible uniquement depuis cet ordinateur. Pour l’ouvrir depuis un téléphone, demandez à l’agent de la relancer en l’exposant sur le réseau local.","stop":"Arrêter l’app","stopFailed":"Impossible d’arrêter l’app"},"discard":{"title":"Abandonner ce Flow ?","body":"L’abandon supprime définitivement tout ce qui suit :","cancel":"Garder le Flow","confirm":"Abandonner le Flow","lossFiles_one":"{{count}} fichier modifié","lossFiles_other":"{{count}} fichiers modifiés","lossNoChanges":"Aucun fichier modifié pour l’instant","lossUnknown":"Toutes les modifications de la branche du Flow","lossSpec":"La spec provisoire du tableau"},"changes":{"title":"Modifications du Flow","subtitle":"Branche {{branch}} comparée à son point de départ","subtitleNoBranch":"Modifications comparées au point de départ du Flow","refresh":"Actualiser","loadFailed":"Impossible de charger les modifications.","empty":"Aucune modification pour l’instant.","status":{"added":"Ajouté","modified":"Modifié","deleted":"Supprimé","renamed":"Renommé","untracked":"Nouveau, non suivi"}},"handOff":{"heading":"Transformer ce Flow en PR relue","loop":"Remise du Flow","launch":"Lancer","notYet":"Pas encore","engineFallback":"{{provider}} ne peut pas exécuter la remise du Flow sur cette machine : le moteur par défaut du rail est sélectionné.","cost":"{{cost}} jusqu’ici","costUnknown":"pas encore de coût facturé","line_one":"{{rail}} transformera votre fichier modifié en PR relue. En cas d’échec, votre travail est en sécurité.","line_other":"{{rail}} transformera vos {{count}} fichiers modifiés en PR relue. En cas d’échec, votre travail est en sécurité.","lineNoCount":"{{rail}} transformera vos modifications en PR relue. En cas d’échec, votre travail est en sécurité."},"review":{"backToFlow":"Revenir dans Flow","backToFlowHint":"Rouvrez ce Flow avec les mêmes modifications ; l’agent reçoit la revue à son prochain tour","relaunch":"Relancer","relaunchHint":"Réessayer depuis la même branche du Flow, le même rail et le même moteur","returned":"De retour dans le Flow. L’agent a la revue.","relaunched":"Relancé sur le Rail {{index}}","returnFailed":"Impossible de revenir dans Flow : {{detail}}","relaunchFailed":"Relance impossible : {{detail}}","backToFlowFailureHint":"Rouvrez ce Flow avec les mêmes modifications ; l’agent reçoit l’erreur à son prochain tour","returnedFailure":"De retour dans le Flow. L’agent a l’erreur."},"failure":{"step":{"derive":"Impossible d’écrire la spec à partir de vos modifications","verify":"Impossible de vérifier vos modifications","review":"La revue n’a pas pu se terminer","fix":"Les corrections automatiques n’ont pas pu se terminer","archive":"Impossible de classer la spec terminée","settle":"Impossible de restituer le résultat","unknown":"La remise s’est arrêtée avant la fin"},"cause":"Cause :","next":"Votre travail est intact. De retour dans Flow, l’agent reçoit l’erreur.","nextReturned":"Votre travail est intact. De retour dans Flow, l’agent a l’erreur.","returned":"Revenu dans Flow","technical":{"title":"Détails techniques","repository":"Dépôt","step":"Étape","status":"Statut","failure":"Échec","detail":"Détail"}},"announce":{"active":"Flow actif : l’agent écrit sur la branche du Flow.","paused":"Flow en pause.","needs-review":"Le Flow doit être vérifié : sa copie du projet est introuvable.","handed_off":"Flow remis à un rail.","delivered":"Flow livré.","discarded":"Flow abandonné.","returned":"De retour dans le Flow : le travail est revenu avec ce que la remise a trouvé.","closed":"Flow fermé. Sa branche a été conservée."},"strip":{"label":"Flow","ready":"Prêt à devenir une PR","launching":"Remise à un rail…","launchingOn":"Remise à {{rail}}…","stillHandingOff":"Remise à {{rail}} toujours en cours…","refresh":"Actualiser","step":{"derive":"Rédaction de la spec à partir de vos modifications","verify":"Vérification de vos modifications","review":"Relecture de la modification","fix":"Application des corrections de la relecture","archive":"Classement de la spec terminée","settle":"Restitution du résultat"},"headline":"{{state}} · {{files}}"},"mode":{"chip":"Flow","description":"Mode Flow : l’agent écrit sur la branche du Flow, pas sur votre branche principale","placeholder":"Dites à l’agent quoi modifier dans ce Flow…"},"panel":{"branch":"Branche","changes":"Modifications","cost":"Coût jusqu’ici","actions":"Autres actions du Flow"},"close":{"title":"Fermer ce Flow ?","body":"La conversation quitte Flow. Rien n’est supprimé :","keptBranch":"Branche conservée :","keptSpec":"La spec reste sur le tableau, sans le libellé En Flow","cancel":"Pas maintenant","confirm":"Fermer le Flow, garder la branche"},"startFromSpec":{"action":"Démarrer en Flow","hint":"Construisez cette spec avec l’agent sur sa propre branche Flow, dans une mission","starting":"Démarrage du Flow…","failed":"La spec #{{id}} n’a pas pu démarrer en Flow","repository":{"title":"Où ce Flow doit-il s'exécuter ?","body":"Ce projet contient plusieurs dépôts Git. Le Flow travaille sur sa propre branche, dans une copie séparée de celui que vous choisissez.","fromSpec":"Indiqué dans la spec"},"blocked":{"noProject":"Ouvrez un projet pour utiliser Flow","unavailable":"Flow n’est pas disponible avec le Specrails Core installé","inFlow":"Déjà en Flow","closed":"Une spec terminée ou annulée ne peut pas démarrer en Flow","running":"En cours sur un rail","onRail":"Sur un rail : retirez-la d’abord","missionInFlow":"Cette mission a déjà un Flow"}}}`),ve={title:`Ce que le relecteur a demandé`,noFindings:`La remise s’est arrêtée avant la livraison ; vos modifications sont revenues intactes dans ce Flow.`,coverage:`La spec explique {{explained}} des {{files}} fichiers modifiés`,unexplained:`Aucune exigence ne les explique`,moreFiles_one:`+{{count}} fichier de plus`,moreFiles_other:`+{{count}} fichiers de plus`,next:`L’agent du Flow s’y met maintenant ; vous pouvez l’orienter ou l’arrêter à tout moment.`,automaticTurn:`Tour automatique · Retour au Flow`,titleFailure:`Pourquoi la remise s’est arrêtée`},ye={providerInactivity:`Le fournisseur n’a plus répondu pendant trop longtemps, le tour s’est donc arrêté. Renvoyez votre message pour continuer.`,toolInactivity:`Un outil a tourné trop longtemps sans activité du fournisseur, le tour s’est donc arrêté. Renvoyez votre message pour continuer, ou demandez à l’agent de découper l’étape.`,generic:`Le tour de l’agent a échoué.`},be={title:`Flow livré`,pr:`Ouvrir la pull request`,prNumber:`Pull request #{{number}}`,specRewritten:`Spec réécrite à partir de ce que vous avez construit`,specKept:`La réécriture de la spec n’a pas abouti ; son brouillon est conservé`,change:`Changement de spec {{change}}`,changeArchived:`Changement de spec {{change}} archivé`,jira:`Ticket Jira {{key}}`,jiraPending:`Ticket Jira en cours de création`},xe={launching:`Lancement sur {{rail}}…`,running:`En cours`,paused:`En pause, en attente de votre part`,pausedReason:`En pause : {{reason}}`,decision:{approval:`En attente de votre approbation`,changes:`Le relecteur a demandé des modifications`,on_review:`Prêt pour votre relecture`,pr_draft:`PR brouillon prête à publier`,no_changes:`Terminé sans modifications`,pr_closed:`PR fermée sans fusion`,generic:`En attente de votre décision`},failed:{generic:`Arrêté à cause d’une erreur`,implementation_failed:`L’implémentation a échoué`,stalled:`L’exécution n’avance plus`,stuck:`L’exécution est bloquée`,provider_limit:`La limite d’utilisation du fournisseur l’a arrêtée`,launch_failed:`L’exécution n’a pas pu démarrer`,delivery_failed:`Le résultat n’a pas pu être livré`,push_failed:`La branche n’a pas pu être poussée`,pr_failed:`La PR n’a pas pu être créée`},progressAria:`{{done}} exécutions terminées sur {{total}}`,costTitle:`Coût réel facturé par le fournisseur jusqu’ici`,costPartial:`Certaines exécutions n’ont pas encore de coût facturé et ne sont pas incluses`,costNone:`Aucun coût facturé pour le moment`,state:{launching:`Lancement :`,running:`En cours :`,decision:`En attente de vous :`,failed:`Échec :`,paused:`En pause :`,info:`Pour information :`},proposal:`Lancement proposé pour {{tickets}}`,proposalNoTickets:`Lancement proposé`,proposalLabel:`Proposition`,panelLabel:`Détails de {{run}}`,showDetails:`Afficher les détails`,withShortcut:`{{label}} ({{keys}})`,cycleHint:`Changer d’exécution : {{keys}}`,hideDetails:`Masquer les détails`,switcher:`Exécutions en cours`,more:`Autres exécutions ({{count}})`,announce:{settled:`{{run}} est terminé`,shown:`Affichage de {{run}} : {{state}}`,needsYou:`{{run}} a besoin de vous`},event:{launched:`Lancé sur {{run}}`,failed:`{{run}} a échoué : {{reason}}`,openRun:`Afficher l’exécution`,proposed:`Lancement proposé, en attente de votre décision`,backToFlow:`Revenir dans Flow`,flowReturned:`{{run}} a renvoyé le travail au Flow`,delivered:`Livré : PR {{pr}}`,deliveredNoPr:`Livré sur {{run}}`,superseded:`{{run}} a été remplacé par une exécution plus récente`,discarded:`{{run}} a été abandonné`,changes:`{{run}} : le relecteur a demandé des modifications`},needsYou:`vous attend`,opensCard:`Ouvre la carte de l’exécution pour y confirmer`,open:{decision:`Ouvrir la décision`,failed:`Voir ce qui a échoué`,paused:`Voir la raison de la pause`},attention:{failed:`Attention requise : une exécution a échoué`}},Se={entered:`Entrée dans Flow`,left:`Sortie de Flow`,turnMark:`Flow`,reason:{started:`démarré`,returned:`de retour d’un rail`,handed_off:`remis à un rail`,discarded:`abandonné`,closed:`fermé, branche conservée`}},Ce=`Non lu`,we=`{{count}} non lus`,Te=`Agent au travail`,Ee=`Impossible de supprimer la mission. Réessayez.`,De={label:`Mode d'interface`,mission:`Mission`,board:`Tableau`,current:`Mode actuel : {{mode}}. Cliquez pour changer.`},Oe={sendFailed:`Impossible d’envoyer le message.`,stopFailed:`Impossible d’arrêter l’agent.`,mcpEnableFailed:`Impossible d’activer MCP.`,removeAttachmentFailed:`Impossible de retirer la pièce jointe.`,sendFailedHint:`Votre texte est de retour dans la zone — appuyez sur Entrée pour réessayer.`,providerSwitchFailed:`Impossible de changer de fournisseur — le précédent reste actif.`,modelSwitchFailed:`Impossible de changer de modèle — le précédent reste actif.`,effortSwitchFailed:`Impossible de changer l’effort — le précédent reste actif.`},ke={ariaLabel:`Message à l’agent`,dropFiles:`Déposez les fichiers pour les joindre`,uploading:`Envoi en cours…`},Ae={ariaLabel:`Conversation de la mission`,agentWorking:`L’agent travaille…`,agentReplied:`L’agent a répondu`,newMessages:`Nouveaux messages`},je={you:`Vous`,agent:`Agent`},Me={groupLabel:`Réponses suggérées`,shortcut:`Alt+{{n}}`},Ne=`Copié`,Pe=`Copier le code`,Fe=`Répondez, ou @ pour référencer…`,Ie=`Envoyer (Entrée) · Nouvelle ligne (Maj+Entrée)`,Le=`Annuler`,Re=`Ce fournisseur ne lit pas encore les images — {{count}} images n’ont pas été jointes`,ze={reference:`Référencer une spec`,action:`Lancer une action`,plan:`Planifier une nouvelle spec`,planSpec:`Aide-moi à planifier une nouvelle spec : `},Be=`⇧⇥ change ce que l’agent peut faire · ↑ rappelle votre dernier message`,Ve={arrived:`Arrivé en revue — PR #{{number}}`,arrivedNoNumber:`Arrivé en revue`,openPr:`Ouvrir la PR`},He={greeting:`Que faut-il livrer ensuite dans {{project}} ?`,greetingNoProject:`Que faut-il livrer ensuite ?`,statusTodo_one:`{{count}} à faire`,statusTodo_other:`{{count}} à faire`,statusReview_one:`{{count}} en attente de revue`,statusReview_other:`{{count}} en attente de revue`,statusRunning_one:`{{count}} en cours`,statusRunning_other:`{{count}} en cours`},Ue={title:e,subtitle:t,trigger:n,composerPlaceholder:r,send:i,stop:a,copy:o,attachment:s,maximize:c,restore:l,minimize:u,close:d,newConversation:f,emptyTitle:p,emptyHint:m,thinking:h,connecting:g,consultingCode:_,size:v,model:y,history:b,queue:x,receipt:S,queueEdit:C,git:w,provider:T,tier:E,approval:D,project:O,palette:k,mission:A,noProvider:j,degraded:M,toolCard:N,error:P,chip:F,newAgent:I,switchToAgent:L,switchToKanban:R,search:z,home:B,favoriteMissions:V,untitled:H,workspace:U,attachFile:W,deleteConversation:G,confirmDeleteConversation:K,addFavoriteConversation:q,removeFavoriteConversation:J,confirmShort:Y,imagesUnsupported:X,effort:Z,prCard:Q,specDraft:$,problemFrame:ee,refs:te,header:ne,emptyTitleCodeRain:re,activity:ie,backgroundProcess:ae,window:oe,railCard:se,runCard:ce,runFailure:le,split:ue,runtimeSelector:de,missionPlaceholders:fe,subagents:pe,sessionNotice:me,cardPending:he,interrupt:ge,flow:_e,flowReturn:ve,turnErrors:ye,flowDelivered:be,runStrip:xe,flowBoundary:Se,unread:Ce,unreadCount:we,live:Te,deleteFailed:Ee,modeSwitch:De,errors:Oe,composer:ke,conversation:Ae,message:je,options:Me,copied:Ne,copyCode:Pe,composerReplyPlaceholder:Fe,sendHint:Ie,undo:Le,imagesUnsupportedCount:Re,starter:ze,emptyLegend:Be,delivery:Ve,missionHome:He};export{ie as activity,q as addFavoriteConversation,D as approval,W as attachFile,s as attachment,ae as backgroundProcess,he as cardPending,F as chip,d as close,ke as composer,r as composerPlaceholder,Fe as composerReplyPlaceholder,K as confirmDeleteConversation,Y as confirmShort,g as connecting,_ as consultingCode,Ae as conversation,Ne as copied,o as copy,Pe as copyCode,Ue as default,M as degraded,G as deleteConversation,Ee as deleteFailed,Ve as delivery,Z as effort,m as emptyHint,Be as emptyLegend,p as emptyTitle,re as emptyTitleCodeRain,P as error,Oe as errors,V as favoriteMissions,_e as flow,Se as flowBoundary,be as flowDelivered,ve as flowReturn,w as git,ne as header,b as history,B as home,X as imagesUnsupported,Re as imagesUnsupportedCount,ge as interrupt,Te as live,c as maximize,je as message,u as minimize,A as mission,He as missionHome,fe as missionPlaceholders,De as modeSwitch,y as model,I as newAgent,f as newConversation,j as noProvider,Me as options,k as palette,Q as prCard,ee as problemFrame,O as project,T as provider,x as queue,C as queueEdit,se as railCard,S as receipt,te as refs,J as removeFavoriteConversation,l as restore,ce as runCard,le as runFailure,xe as runStrip,de as runtimeSelector,z as search,i as send,Ie as sendHint,me as sessionNotice,v as size,$ as specDraft,ue as split,ze as starter,a as stop,pe as subagents,t as subtitle,L as switchToAgent,R as switchToKanban,h as thinking,E as tier,e as title,N as toolCard,n as trigger,ye as turnErrors,Le as undo,Ce as unread,we as unreadCount,H as untitled,oe as window,U as workspace};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=`Controle de missões`,t=`Opere o Specrails conversando`,n=`Controle de missões`,r=`Qual é a missão?`,i=`Enviar`,a=`Parar`,o=`Copiar`,s={openPreview:`Pré-visualizar {{name}}`,openDownload:`Transferir {{name}}`,previewTitle:`Pré-visualização de {{name}}`,downloadTitle:`Transferir ficheiro?`,downloadPrompt:`Este ficheiro não pode ser pré-visualizado aqui. Queres transferi-lo?`,download:`Transferir`,cancelDownload:`Agora não`,loading:`A preparar ficheiro…`,loadFailed:`Não foi possível carregar o anexo`,loadError:`Não foi possível carregar o anexo: {{error}}`,remove:`Remover {{name}}`},c=`Maximizar`,l=`Restaurar`,u=`Minimizar`,d=`Fechar`,f=`Nova missão`,p=`Qual é a missão?`,m=`Pergunte qualquer coisa sobre este projeto — o agente pode ler, planejar specs e iniciar rails.`,h=`Pensando…`,g=`Conectando…`,_=`Consultando o app…`,v={compact:`Compacto`,comfortable:`Confortável`,max:`Maximizar`},y={label:`Modelo`,loading:`Carregando modelos…`,unavailable:`Modelos indisponíveis`},b={hint:`Explorando histórico — escreva para editar, ↑↓ para navegar`},x={queued:`Na fila`,send:`Enfileirar mensagem`,sendHint:`Enfileirar para o próximo turno. Escolha «Orientar» em uma mensagem na fila para enviá-la sem interromper o modelo.`,placeholder:`Adicionar uma mensagem à fila…`,delivered:`Entregue ao agente`,interrupted:`Entrega não confirmada`,cancelled:`Cancelada antes da entrega`,steer:`Orientar`,steerHint:`Enviar sem interromper o modelo`,steering:`Enviando ao agente…`,remove:`Excluir mensagem da fila`,more:`Opções da mensagem`,edit:`Editar`,actionConflict:`Esta mensagem já está sendo entregue ou não está mais na fila.`,actionFailed:`Não foi possível atualizar a mensagem na fila. Tente novamente.`,removed:`Mensagem enfileirada excluída`},S={sent:`Enviado ao agente`,received:`Entregue ao agente`,read:`Lido pelo agente`,interrupted:`Entrega não confirmada`,cancelled:`Cancelado antes da entrega`},C={editing:`Editando mensagem pendente {{n}} de {{m}}`,hint:`↑↓ para navegar · Enter salva · Esc cancela`,save:`Salvar mensagem pendente`,cancel:`Cancelar edição`,dispatched:`Essa mensagem já foi entregue; seu texto foi mantido como rascunho`,saveFailed:`Não foi possível salvar a mensagem pendente`},w={branch:`Branch`,detached:`(desanexado)`,dirty:`Alterações sem commit`,switched:`Mudou para {{branch}}`,switchFailed:`Não foi possível trocar de branch`,lockedWhileWorking:`Branch bloqueada enquanto o agente trabalha`,searchPlaceholder:`Buscar branches…`,noMatches:`Nenhuma branch corresponde`,worktrees:`Worktrees`,worktreePathCopied:`Caminho do worktree copiado`,copyWorktreePath:`Copiar caminho do worktree`,repository:`Repositório`,repositoryUnavailable:`Repositório indisponível`,loadFailed:`Estado do Git indisponível`,notGit:`Pasta de contexto · sem Git`,retry:`Tentar novamente`,copyBranch:`Copiar nome do ramo`,branchCopied:`Nome do ramo copiado`},T={label:`Provedor`,claude:`Claude`,codex:`Codex`,gemini:`Gemini`,kimi:`Kimi`},E={cycleHint:`⇧⇥ para mudar`,observe:{name:`Observa`,desc:`Somente leitura — nada muda`},edit:{name:`Edita`,desc:`Criar e editar (reversível)`},operate:{name:`Opera`,desc:`Lançar IA — tem custo`},autonomous:{name:`Autônomo`,desc:`Excluir e encerrar — irreversível`},lockedTitle:`Precisa de um nível superior`,lockedBody:`Essa ação precisa do nível "{{level}}". Você está no "{{current}}".`,raiseHint:`⇧⇥ para aumentar o nível, ou peça de outra forma.`,confirmAutonomous:`Mudar para Autônomo`,autonomousWarning:`O modo Autônomo pode excluir e encerrar processos.`,skipAutonomousHint:`Pressione ⇧⇥ de novo para voltar a “Observa”.`},D={title:`Confirmar ação`,costAction:`{{action}} · ~{{cost}} · {{tier}}`,approve:`Aprovar`,cancel:`Cancelar`,dontAskAgain:`Não perguntar de novo nesta sessão`,approved:`Aprovado`,cancelled:`Cancelado`},O={home:`Início`,searchPlaceholder:`Fale com o Specrails…`,searchProjectsPlaceholder:`Buscar projetos…`,recents:`Recentes`,allProjects:`Todos os projetos`,searchAll:`Buscar em todos os projetos`,addProject:`Adicionar projeto…`,homeHint:`Nenhum projeto selecionado — operando em todos os projetos.`,askCreateOrSearch:`Nenhum projeto está selecionado. Você quer criar um novo projeto ou buscar em todos os projetos?`},k={remove:`Remover {{label}}`,addContextAction:`Adicionar contexto ou ação`,filtering:`Filtrando "{{query}}"`,keyboard:`↑↓ Enter Esc`,noMatches:`Sem resultados`,noMatchesFor:`Sem resultados para "{{query}}"`,mode:{reference:{title:`Referência`,hint:`@ projetos, specs, missões`},trace:{title:`Traço`,hint:`# jobs, execuções, IDs`},action:{title:`Ação`,hint:`/ comandos para este contexto`}},plus:{reference:`Referência`,referenceHint:`Projetos, specs, missões`,trace:`Traço`,traceHint:`Jobs, execuções, IDs`,action:`Ação`,actionHint:`Criar, lançar, inspecionar`,fileAttachment:`Anexo de arquivo`,fileAttachmentHint:`Adicionar docs, imagens, logs`,browserCapture:`Captura do navegador`,browserCaptureHint:`Capturar uma área da página para esta missão`},railGroup:`Rails`,railGroupInUse:`Rails em uso`},A={label:`Trocar de missão`,untitled:`Nova missão`,new:`Nova missão`,searchPlaceholder:`Pesquisar missões…`,noMatches:`Nenhuma missão corresponde`,working:`O agente está trabalhando`,queuedBadge:`{{n}} na fila`,delete:`Excluir missão "{{title}}"`,deleteConfirm:`Excluir?`,deleteLiveConfirm:`O agente está trabalhando. Excluir mesmo assim?`,confirmDelete:`Confirmar exclusão`,cancelDelete:`Manter missão`,deleteFailed:`Não foi possível excluir a missão`},j={title:`Nenhum provedor de IA instalado`,body:`O agente precisa de um provedor de IA (Claude, Codex, Gemini ou um motor local). Instale ou conecte um e reabra o agente.`,placeholder:`Conecte um provedor de IA para usar o agente…`},M={title:`O MCP do Specrails está desligado`,body:`O agente precisa do servidor MCP integrado para operar o app.`,enable:`Ativar o MCP do Specrails`,enabling:`Ativando…`,enabled:`MCP ativado`},N={live:`ao vivo`,queued:`na fila`,running:`em execução`,done:`concluído`,failed:`falhou`},P={generic:`Algo deu errado. Tente novamente.`,busy:`O agente está ocupado. Tente novamente em um instante.`},F={kindAgent:`Missão do agente`},I=`Nova missão`,L=`Mudar para o Controle de missões`,R=`Mudar para o quadro`,z=`Buscar`,B=`Missões sem atribuição`,V=`Missões favoritas`,H=`Sem título`,U={title:`No workspace`,terminal:`Terminal`,files:`Arquivos`,browser:`Navegador`,requiresProject:`Selecione um projeto para usar esta ferramenta`,resizeCode:`Redimensionar painel de código`,closeFiles:`Fechar código`,browserConfirm:`Adicionar ao agente`,browserSelectStart:`Selecionar para adicionar à missão`,browserCaptured:`Captura adicionada`,uploadFailed:`Falha no upload`,requiresConversation:`Inicie uma missão para usar esta ferramenta`,jobs:`Jobs`,closeJobs:`Fechar jobs`,resizeJobs:`Redimensionar painel de jobs`,noJobs:`Ainda não há jobs — peça ao agente para lançar um`,analytics:`Analítica`,closeAnalytics:`Fechar analítica`,resizeAnalytics:`Redimensionar painel de analítica`},W=`Anexar arquivo`,G=`Excluir "{{title}}"`,K=`Confirmar exclusão de "{{title}}"`,q=`Adicionar "{{title}}" aos favoritos`,J=`Remover "{{title}}" dos favoritos`,Y=`Eliminar?`,X=`Este provedor ainda não lê imagens. Anexe arquivos de texto`,Z={label:`Esforço`,minimal:`Mínimo`,low:`Baixo`,medium:`Médio`,high:`Alto`,xhigh:`Extra alto`,max:`Máximo`,ultra:`Ultra`},Q=JSON.parse(`{"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","completedNote":"Confirmado. As specs foram movidas para Concluído","partialSummary":"{{succeeded}} de {{total}} concluídas; {{failed}} falharam","unit":{"failed":"implementação falhou","blocked":"entrega bloqueada","noChanges":"sem alterações","succeeded":"pronta"},"rail":"Rail {{index}}","specCount_one":"{{count}} spec","specCount_other":"{{count}} specs","base":"Ramo base","openPr":"Abrir PR","existingPr":"PR existente","title":{"no_changes":"Nenhuma alteração necessária","partial":"Implementação parcial","delivery_blocked":"Implementação concluída: a entrega requer atenção","update_failed":"Implementação concluída: falha na atualização","pr_closed":"PR fechada sem merge","superseded":"Substituída por uma execução mais recente","existing_pr_updated":"PR existente atualizada","building":"A implementar num worktree isolado…","buildingInPlace":"Implementando na pasta do projeto…","buildingExistingPr":"A aplicar alterações numa PR existente…","paused":"Precisa de decisão humana","on_review":"Implementação pronta para revisão","pr_draft":"PR em rascunho criada","pr_draft_degraded":"Entrega da PR incompleta","pr_ready":"PR pronta para merge","implementation_failed":"Implementação falhou","pr_failed":"Falha ao criar a PR","merged":"Merge da PR concluído","discarded":"Descartada","review_changes_requested":"O revisor solicitou alterações","returned_to_flow":"De volta ao Flow","flowSpecChanges":"Ainda não está pronto: o revisor pediu alterações","flowSpecDelivered":"Seu Flow agora é uma PR revisada","flowSpecFailed":"A passagem a um rail parou","flowSpecBuilding":"Transformando seu Flow em uma PR revisada"},"buildingHint":"Quando terminar, ser-lhe-á perguntado se quer criar a PR.","buildingExistingPrHint":"O Specrails está a trabalhar no ramo da PR existente e irá enviar as alterações de revisão para essa mesma PR.","paused":"Implementação em pausa","pausedForRun":"Em pausa em {{ref}}","resume":"Retomar","stopExecution":"Parar execução","stopExecutionSent":"Sinal de paragem enviado","stopExecutionFailed":"Não foi possível parar a execução","createPr":"Criar PR","publish":"Publicar","checkout":"Mudar para o branch","openReview":"Revisar","openReviewTooltip":"Abrir a revisão em linguagem clara","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","recoverAndRetryVerified":"O commit recuperado {{sha}} está verificado na PR","recoveryStillBlocked":"A recuperação local ainda requer atenção","recheckRecovery":"Verificar novamente","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","retry":"Tentar novamente","retryPr":"Tentar PR novamente","checkMerge":"Verificar merge","verifyPr":"Verificar PR","discard":"Descartar","confirmDiscard":"Confirmar descarte?","mergedNote":"Merge concluído. Specs movidas para Concluído","discardedNote":"Descartada. Specs devolvidas ao backlog","implementationFailedNote":"A execução de implementação falhou antes de produzir algo entregável. Abra o log da execução para inspecionar a falha e descarte este cartão antes de relançar.","dismiss":"Encerrar acompanhamento","discardLocalResult":"Descartar resultado local","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}}","reopen":"Reabrir","createPartialPr":"Criar PR com {{count}}","supersededNote":"Uma execução de implementação mais recente substituiu este cartão.","noChangesExisting":"Nenhuma nova alteração foi necessária; a PR existente permanece inalterada.","noChangesNote":"Nenhuma alteração de código foi necessária. Marque as specs como concluídas ou devolva-as ao backlog para refinamento.","deliveryNeedsAttention":"Implementação concluída; a entrega requer atenção","deliveryBlockedNote":"A implementação foi concluída com sucesso, mas a entrega está bloqueada. Revise os detalhes da etapa e os logs antes de descartar o resultado local.","partialDeliveryBlockedNote":"Parte da implementação foi concluída com sucesso, mas ainda não há nada que possa ser entregue com segurança. Reveja as evidências por unidade e os logs antes de escolher a próxima ação.","retryPushNote":"A implementação foi concluída com sucesso e as alterações estão seguras localmente. Tente novamente apenas o push.","cleanupIncomplete_one":"Limpeza incompleta ({{count}} aviso)","cleanupIncomplete_other":"Limpeza incompleta ({{count}} avisos)","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.","confirm":{"recoverAndRetryTitle":"Fazer commit e enviar o resultado preservado?","recoverAndRetryBody":"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.","recheckRecoveryTitle":"Verificar este computador novamente?","recheckRecoveryBody":"Vamos verificar se ainda é possível recuperar algo desta entrega. Nada é apagado.","noChangesDoneTitle":"Marcar estas specs como concluídas?","noChangesDoneBody":"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.","refineTitle":"Refinar estas specs?","refineBody":"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.","mergeLocalTitle":"Integrar localmente?","mergeLocalBody":"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.","freshDiscardTitle":"Descartar esta entrega?","freshDiscardBody":"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. As specs voltarão ao backlog. Os recursos locais removidos não podem ser recuperados.","implementationFailedDiscardTitle":"Descartar esta entrega com falha?","implementationFailedDiscardBody":"O cartão será fechado e as specs voltarão ao backlog. O trabalho local e os branches serão preservados para inspeção. Apenas recursos comprovadamente seguros para limpeza poderão ser removidos.","dismissTitle":"Encerrar este acompanhamento?","dismissBody":"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.","discardLocalTitle":"Descartar o resultado local?","discardLocalBody":"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.","recheckRecoveryTechnical":"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."},"degraded":{"pushed":"O branch foi enviado, mas não foi possível criar a PR. Tente novamente para concluir.","localOnly":"As alterações foram montadas localmente, mas não enviadas. Tente novamente para publicar a PR."},"alreadyResolved":"Já resolvida noutro lugar","actionFailed":"A ação falhou","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","viewLog":"Ver o registro de execução de {{ref}}","runElapsedAria":"{{elapsed}} decorridos","runCostAria":"{{cost}} gastos","focusRegion":"Cartão de implementação · {{rail}} {{tickets}}","pinned":{"state":{"completed":"Concluída","no_changes":"Sem alterações","pr_closed":"Fechada","superseded":"Substituída","building":"Em curso","on_review":"Revisão","pr_draft":"PR rascunho","pr_ready":"Publicada","implementation_failed":"Falhou","pr_failed":"Falhou","merged":"Integrada","discarded":"Descartada"}},"mergeLocal":"Integrar localmente","mergeLocalTooltip":"Faz merge dos branches entregues em {{base}} no seu checkout local (sem GitHub)","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.","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.","resumeFromStep":"Retomar a partir de {{step}}","resumeFromStepHint":"A etapa {{step}} interrompida é executada novamente desde o início; o trabalho já salvo em disco é mantido.","retryDelivery":"Tentar a entrega de novo","retryDeliveryHint":"Repete apenas o passo final (commit, push e PR) no branch desta execução. Nenhum trabalho de IA é refeito.","retryDeliverySent":"Tentando a entrega de novo…","retryDeliveryFailed":"Não foi possível tentar a entrega de novo","mergedLocallyRestored":"Guardei as suas alterações locais, integrei {{tickets}} e restaurei-as.","mergedLocallyStashConflict":"{{tickets}} integrado. As suas alterações locais estão seguras num stash; o Specrails está a restaurá-las num branch separado.","mergedLocallyStashKept":"{{tickets}} integrado. As suas alterações locais estão seguras num stash; restaure-as quando quiser.","localStash":{"title":"As suas alterações locais estão guardadas num stash","conflictBody":"Reaplicá-las sobre o resultado integrado gerou conflitos, por isso {{branch}} ficou exatamente como integrado. Restaure-as para tentar de novo num branch separado.","savedBody":"Ainda não foram restauradas. Restaure-as com {{branch}} em checkout.","files":"Ficheiros em conflito","restore":"Restaurar as minhas alterações","restoring":"A restaurar…","copy":"Copiar nome do stash","copied":"Nome do stash copiado","restoredToast":"As suas alterações locais voltaram a {{branch}}.","stillConflicting":"As suas alterações locais continuam em conflito com {{branch}}; continuam seguras no stash.","released":"Esse stash já não existe, por isso não há nada para restaurar.","blockedBranch":"Mude primeiro para {{base}} (está em {{current}}) e depois restaure.","blockedDirty":"Alguns desses ficheiros voltaram a mudar desde que foram guardados. Faça commit ou mova essas edições e depois restaure.","failed":"Não foi possível restaurar as suas alterações locais","restoringBody":"Reaplicá-las sobre o resultado integrado gerou conflitos, por isso {{branch}} ficou exatamente como integrado. O Specrails está a restaurá-las em {{restoreBranch}}, num worktree separado, e a resolver lá os conflitos.","readyBodyClean":"As suas alterações estão restauradas e com commit em {{restoreBranch}}; lá aplicaram-se sem conflitos. Reveja-as e traga-as de volta para {{branch}}.","readyBodyResolved":"As suas alterações estão restauradas e com commit em {{restoreBranch}}, com os conflitos resolvidos automaticamente. Reveja-as e traga-as de volta para {{branch}}.","failedBody":"O Specrails não conseguiu concluir a restauração em {{restoreBranch}}. Continuam seguras no stash; descarte esse branch ou restaure-as de novo.","restoredFiles":"Restaurado em {{restoreBranch}}","binary":"binário","managedNote":"Os ficheiros gerados geridos pelo Specrails mantiveram a versão integrada: {{files}}","bringBack":"Trazê-las de volta para {{branch}}","bringingBack":"A trazer de volta…","discardBranch":"Descartar o branch restaurado","discarding":"A descartar…","broughtBackToast":"As suas alterações locais estão de volta em {{branch}}.","discardedToast":"Branch restaurado descartado. As suas alterações continuam seguras no stash.","blockedBringBack":"Não foi possível trazer as alterações de volta para {{branch}} em segurança.","notReady":"O branch restaurado ainda não está pronto."},"failed":{"createPr":"Não foi possível criar o PR","mergeLocal":"Não foi possível integrar localmente","discard":"Não foi possível descartar o resultado","publish":"Não foi possível publicar o PR","generic":"A entrega foi interrompida. Veja os detalhes técnicos."},"moreActions":"Mais ações"}`),$={heading:`Rascunho da spec`,drafting:`Atualizando rascunho…`,acceptanceCriteria:`Critérios de aceitação`,untitled:`Spec sem título`,expand:`Ver descrição completa`,collapse:`Recolher descrição`},ee={heading:`Enquadramento`,framing:`A enquadrar o pedido…`,restated:`O que entendi`,alternative:`Também poderia significar`,pick:`Responder com isto`,touches:`Tocaria em`,discriminator:`Qual das duas?`,assumptions:`O que estou a assumir`,unknowns:`Ainda em aberto`},te={openTicket:`Abrir spec #{{id}}`,openPullRequest:`Abrir PR #{{id}}`,openJob:`Abrir job {{id}}`,openLoop:`Abrir loop {{id}}`,ticketNotFound:`Spec #{{id}} não encontrada. Pode ter sido excluída`,pullRequestUrlMissing:`A PR #{{id}} foi mencionada sem URL`,pullRequestNotFound:`A PR #{{id}} não foi encontrada neste projeto`,jobNotFound:`Job não encontrado. Pode ter sido excluído`,loopNotFound:`Loop não encontrado. Pode ter sido excluído`,lookupFailed:`Não foi possível verificar a referência. Tente novamente`},ne={untitled:`Missão sem título`,menu:`Menu da missão`,rename:`Renomear`,renamePlaceholder:`Nome da missão`,renameHint:`Duplo clique para renomear`,renameFailed:`Não foi possível renomear`,addFavorite:`Adicionar aos favoritos`,removeFavorite:`Remover dos favoritos`,copyName:`Copiar nome da missão`,copyId:`Copiar ID da missão`,copyProject:`Copiar nome do projeto`,copyProjectPath:`Copiar caminho do projeto`,copyFailed:`Não foi possível copiar`,copyTranscript:`Copiar transcrição`,copyTranscriptSuccess:`Transcrição copiada`,copyTranscriptFailed:`Não foi possível copiar a transcrição`,exportTranscript:`Exportar transcrição (.txt)`,exportTranscriptSuccess:`Exportação da transcrição iniciada`,exportTranscriptFailed:`Não foi possível exportar a transcrição`,delete:`Excluir missão`,deleteConfirm:`Excluir esta missão? Não pode ser desfeito.`,deleteFailed:`Não foi possível excluir a missão`},re=`O que devemos construir agora?`,ie={title:`Log de execução`,live:`Ao vivo`,empty:`Ainda não há atividade de ferramentas neste turno.`,output:`Saída`,error:`Erro`,copyAll:`Copiar log completo`,copyEntry:`Copiar entrada`,copySuccess:`Log copiado para a área de transferência`,copyFailed:`Não foi possível copiar o log`,openLog:`Ver log de execução`,close:`Fechar`,tool:{terminal:`Terminal`,reading:`Lendo`,searching:`Pesquisando`,editing:`Editando`,web:`Web`,agent:`Agente`,agentNamed:`Agente · {{description}}`,mcp:`MCP · {{name}}`,mcpTool:`Ferramenta MCP`}},ae={open:`Ver logs de {{command}}`,logsTitle:`Logs do processo`,logsDescription:`Saída ao vivo e histórico salvo deste processo.`,close:`Fechar logs`,command:`Comando`,directory:`Diretório`,exitCode:`Código de saída: {{code}}`,signal:`Sinal: {{signal}}`,search:`Pesquisar nos logs…`,source:`Origem da saída`,allSources:`Toda a saída`,pause:`Pausar`,resume:`Retomar`,follow:`Seguir`,copy:`Copiar logs visíveis`,download:`Descarregar logs visíveis`,stop:`Parar processo`,stopCommand:`Parar {{command}}`,stopFailed:`Não foi possível parar o processo. Tente novamente.`,truncated:`É apresentada uma janela limitada de logs. Saída anterior ou linhas longas podem ser omitidas. Copiar e descarregar incluem apenas esta vista.`,paused:`Vista em pausa. O processo continua a funcionar.`,loadFailed:`Não foi possível carregar os logs. A retenção pode ter expirado; a saída já carregada continua visível.`,retry:`Tentar novamente`,copied:`Logs visíveis copiados.`,exportFailed:`Não foi possível exportar os logs. Tente novamente.`,output:`Saída do processo`,loading:`A carregar logs…`,noMatches:`Nenhuma saída correspondente.`,empty:`Ainda não há saída.`,lineCount:`{{count}} de {{total}} linhas`,exportHint:`A exportação inclui apenas o filtro atual e a saída retida.`,status:{starting:`A iniciar`,running:`Em execução`,stopping:`A parar`,exited:`Terminado`,killed:`Parado`,failed:`Falhou`,interrupted:`Desconectado`},repository:`Repositório`,history:{button:`Processos`,title:`Processos da missão`,open:`Ver histórico de processos`,description:`Consulte processos ativos e logs salvos de execuções anteriores.`,search:`Buscar comando ou repositório…`,refresh:`Atualizar histórico`,close:`Fechar histórico de processos`,back:`Voltar aos processos`,loading:`Carregando histórico de processos…`,empty:`Ainda não há processos registrados nesta missão.`,noMatches:`Nenhum processo correspondente.`,loadFailed:`Não foi possível carregar o histórico. As entradas já carregadas continuam disponíveis.`,showMore:`Mostrar mais`,count:`Processos: {{count}}`},interruptedHint:`O Specrails deixou de monitorar este processo. Seu estado no sistema operacional é desconhecido; os logs salvos continuam disponíveis.`,persistenceFailed:`Não foi possível salvar o histórico do processo. A saída disponível continua visível.`,appUrls:{title:`Endereços do app`,local:`Este computador`,network:`Sua rede`,open:`Abrir {{url}} no navegador`,copy:`Copiar {{url}}`,localOnly:`Acessível apenas deste computador. Para abri-lo no celular na mesma Wi-Fi, peça ao agente para reiniciá-lo exposto na sua rede local.`}},oe={detach:`Abrir numa janela separada`,attach:`Voltar à janela principal`,detached:`Esta missão está aberta noutra janela.`,focus:`Mostrar janela da missão`,loading:`A mover a missão…`,failed:`Não foi possível mover esta missão. O rascunho foi preservado.`,dismiss:`Fechar aviso`,wrongMission:`Abre esta missão antes de a mover.`,finishPending:`Conclui a operação em curso ou guarda ou cancela a mensagem ou a captura antes de mover a missão.`},se={heading:`Lançamento de rail`,rail:`Rail {{index}}`,newRail:`Novo rail`,play:`Lançar`,launching:`A lançar…`,dismiss:`Descartar`,playHint:`Ajuste o que quiser e depois prima Lançar para lançar sob a sua própria autoridade.`,pending:`A preparar uma proposta de lançamento…`,unreadable_one:`Não foi possível ler a proposta de lançamento do agente.`,unreadable_other:`Não foi possível ler {{count}} propostas de lançamento.`,effortDefault:`Esforço padrão`,profileNone:`Sem perfil`,status:{proposal:`Proposta`,ready:`Pronto`,blocked:`Requer atenção`,loading:`A verificar…`},availability:{free:`livre`,busy:`em execução`,pending_decision:`a aguardar uma decisão`,on_review:`em revisão`},fields:{rail:`Rail`,newRailName:`Nome do novo rail (opcional)`,railName:`Nome do rail`,addSpec:`Adicionar spec`,removeSpec:`Remover #{{id}}`,loop:`Loop`,engine:`Motor de IA`,model:`Modelo`,effort:`Esforço de raciocínio`,profile:`Perfil de agentes`,targetPr:`PR de destino #`,baseBranch:`Branch base`},notes:{railMissing:`O Rail {{index}} não existe mais. Escolha outro rail ou crie um.`,railBusy:`O Rail {{index}} está {{state}}, então não é possível iniciar nele.`,useFree:`Usar o Rail {{index}}`,specsDropped:`Já não fazem parte deste projeto: {{ids}}`,engineStale:`{{engine}} não foi detectado nesta máquina. Será usado {{fallback}}.`,modelStale:`{{model}} não está disponível. Será usado {{fallback}}.`},block:{noProject:`Esta missão não está fixada a nenhum projeto.`,loadFailed:`Não foi possível carregar os rails, specs ou repositórios do projeto.`,noSpecs:`Adicione pelo menos uma spec para lançar.`,railLimit:`Os {{max}} rails já existem e nenhum está livre.`},errors:{tickets_in_flight:`Uma destas specs já está em execução noutro rail.`,pr_decision_pending:`Este rail está a aguardar uma decisão sobre a PR.`,rail_limit_reached:`O projeto já tem o número máximo de rails.`,invalid_base_branch:`Essa branch base não existe localmente.`,base_branch_requires_isolation:`Uma branch base requer isolamento por worktree (um repositório git com commits).`,target_pr_requires_pr_mode:`Uma PR de destino requer isolamento por worktree (um repositório git com commits).`,invalid_response:`Resposta inesperada do servidor.`,scope_save_failed:`Não foi possível guardar os repositórios da spec.`,repository_scope_incomplete:`Falta um repositório exigido pelas specs para o lançamento. Reveja as atribuições acima.`,rail_not_empty:`Esse rail já tem specs`,flow_freeze_failed:`Não foi possível salvar as alterações do Flow para a passagem a um rail`,flow_head_mismatch:`O seu Flow mudou durante a passagem a um rail. Tente de novo`,flow_already_handed_off:`Este Flow já foi passado a um rail`,flow_handoff_not_adopted:`O rail iniciou sem assumir as alterações do seu Flow`,illegal_transition:`O Flow mudou de estado entretanto`,feature_unavailable:`O Flow não está disponível`,daily_budget_exceeded:`Orçamento diário atingido. Nada foi iniciado.`,review_wip_limit_reached:`Limite de revisão atingido. Nada foi iniciado.`,repository_has_no_commits:`Este repositório ainda não tem commits. Faça um primeiro commit para que o Specrails possa criar uma cópia isolada do projeto.`},stub:{launched:`Lançado → Rail {{rail}}`,dismissed:`Proposta descartada`,viewRun:`Ver run`,goToCard:`Ir para o card`,goToCardTitle:`Ir para o card de implementação deste lançamento`,viewRunTitle:`Abrir o log ao vivo do run`},followUp:{title:`Resolver {{count}} comentário(s) de revisão do PR`,excluded:`Não alterar`,verification:`Verificar`,specUntouched:`A spec e a descrição no Jira não são editadas. O escopo acompanha a execução.`,source:{pasted:`colado`,github:`do GitHub`}},addenda:{rides_one:`{{count}} adendo aberto segue com este lançamento:`,rides_other:`{{count}} adendos abertos seguem com este lançamento:`},repositories:{launch:`Repositórios para este lançamento`,launchHint:`Inclui os repositórios exigidos pelas specs. Pode adicionar outros repositórios do projeto.`,assignments:`Atribuídos a cada spec`,edit:`Editar`,editSpec:`Editar repositórios de #{{id}}`,spec:`Repositórios da spec #{{id}}`,saveHint:`Ao guardar, as atribuições de repositórios desta spec também são atualizadas para lançamentos futuros.`,save:`Guardar repositórios`,cancel:`Cancelar`,finishEditing:`Guarde ou cancele a edição dos repositórios antes de lançar.`,missing:`Faltam repositórios necessários: {{names}}. Inclua-os acima ou edite as atribuições da spec se os destinos mudaram.`,unavailable:`Os repositórios selecionados não estão disponíveis para implementação: {{names}}. Atualize a seleção ou as atribuições das specs.`,refresh:`Atualizar`,retry:`Tentar carregar novamente`,checkScope:`Reveja a seleção de repositórios antes de lançar.`},triageLabel:`Triagem`,handOff:{newRail:`Um novo rail`,changeHow:`Ajustar opções`}},ce={status:{running:`Em execução`,paused:`Em pausa`,succeeded:`Concluído`,failed:`Falhou`,stalled:`Parado`,cancelled:`Cancelado`,unknown:`Desconhecido`,changes_requested:`Alterações solicitadas`,returned:`De volta ao Flow`},title:{running:`A implementar no checkout do projeto…`,paused:`Requer uma decisão humana`,succeeded:`Implementação concluída`,failed:`A implementação falhou`,stalled:`A implementação parou`,cancelled:`Run cancelado`,unknown:`Estado do run desconhecido`,changes_requested:`O revisor solicitou alterações`,returned:`De volta ao Flow`},noDeliveryNote:`Sem fase de PR: este projeto não tem repositório git nem commits, por isso o trabalho foi aplicado diretamente na pasta do projeto.`,noDeliveryHint:`Executando diretamente na pasta do projeto (sem repositório git nem commits, então nenhuma PR será proposta).`,failure:{title:`Porque parou`,step:`passo {{step}}`,unit:`#{{ticket}} · {{code}}`},actions:{resume:`Retomar`,approve:`Aprovar`,recover:`Recuperar e tentar novamente`,relaunch:`Relançar`},relaunchSent:`Rail {{index}} reiniciado. Um novo cartão acompanhará o run.`,relaunchFailed:`Não foi possível relançar o rail`,relaunchBlockedActive:`O rail ainda tem um run ativo`,review:{title:{review:`O revisor solicitou alterações`,check:`As verificações ainda falham`},score:`pontuação {{score}}`,issues_one:`{{count}} problema`,issues_other:`{{count}} problemas`,showAll:`Ver todos ({{count}})`,showLess:`Ver menos`,omitted_one:`+{{count}} a mais na revisão da execução`,omitted_other:`+{{count}} a mais na revisão da execução`,failingChecks:`Falhando`,check:`{{command}} · saída {{code}}`,next:`As rodadas de correção automática não resolveram isso. Volte ao Flow para resolver com o agente ou relance a partir do mesmo branch do Flow.`,returned:`De volta ao Flow: as suas alterações voltaram ao Flow com a revisão. Continue na faixa do Flow.`}},le={briefing:{title:`Relatório automático da falha`}},ue={open:`Vista dividida`,menu:`Ações da conversa`,add:`Adicionar conversa em vista dividida`,close:`Fechar vista dividida`,loadFailed:`Não foi possível carregar esta conversa.`,retry:`Tentar novamente`},de={label:`Modelo e esforço`,resetEffort:`Repor esforço`,back:`Voltar`},fe={0:`Qual é a missão?`,1:`Com que missão começamos?`,2:`Qual é a nossa missão hoje?`,3:`Qual é a nossa próxima missão?`,4:`O que queres alcançar nesta missão?`,5:`Que missão vamos iniciar?`,6:`Por onde começamos esta missão?`,7:`Qual é o objetivo desta missão?`,8:`O que construímos nesta missão?`,9:`O que melhoramos com esta missão?`,10:`Que desafio enfrentamos nesta missão?`,11:`Qual é o primeiro passo da missão?`,12:`Conta-me a missão que tens em mente…`,13:`Descreve a tua próxima missão…`,14:`Vamos dar forma à tua próxima missão…`,15:`O que deve realizar esta missão?`,16:`Que missão gostarias de concluir?`,17:`O que vamos resolver nesta missão?`,18:`O que faria desta missão um sucesso?`,19:`Tudo pronto para uma nova missão. Começamos?`},pe={title:`Agentes`,working_one:`{{count}} trabalhando`,working_other:`{{count}} trabalhando`,done_one:`{{count}} concluído`,done_other:`{{count}} concluídos`,ended_one:`{{count}} parado`,ended_other:`{{count}} parados`,phase:{running:`Trabalhando`,idle:`Concluído`,failed:`Falhou`,stopped:`Parado`,killed:`Encerrado à força`,interrupted:`Interrompido`},reason:{user_stop:`parado por você`,host_request:`parado pelo app`,restart:`perdido ao reiniciar`,shutdown:`app fechado`,host_lost:`host de agentes perdido`,crashed:`o processo travou`,stalled:`parou de responder`,limit:`limite atingido`,project_removed:`projeto removido`,evicted:`liberado para poupar recursos`,policy:`os subagentes estão desativados`},expand:`Mostrar atividade de {{name}}`,collapse:`Ocultar atividade`,elapsedAria:`Em execução há {{elapsed}}`,loadingActivity:`Carregando atividade…`,noActivity:`Ainda sem atividade`,activityFailed:`Não foi possível carregar a atividade`,moreActivity:`Carregar mais`,tokens:`{{tokens}} tokens`,toolUses_one:`{{count}} chamada de ferramenta`,toolUses_other:`{{count}} chamadas de ferramentas`,stop:`Parar`,stopOne:`Parar {{name}}`,stopAll:`Parar todos os agentes`,stopFailed:`Não foi possível parar os agentes`,relaunch:`Relançar`,relaunchHint:`Escrever uma mensagem pedindo ao agente para relançar este trabalho`,relaunchDraft:`Por favor, relance o agente em segundo plano para: {{description}}`,continuation:`Continuou após os agentes em segundo plano`,continuationSystem:`Continuou após o trabalho em segundo plano`,backgroundTurn:`O agente está revisando os resultados em segundo plano…`,deferred:`A alteração de configurações será aplicada quando os agentes em segundo plano terminarem.`,applyNow:`Parar agentes e aplicar agora`,policyUnenforceable:`{{provider}} não consegue desativar os subagentes. Ative “Permitir subagentes” nas configurações do projeto ou use outro provedor nesta missão.`,result:`Resultado`,count_one:`{{count}} agente`,count_other:`{{count}} agentes`,finishedIn:`concluídos em {{elapsed}}`,delegatedHint:`Iniciado pelo Specrails em {{provider}} ({{model}}); seu custo é contado à parte.`},me={host_degraded:`As sessões do Core estão indisponíveis para este projeto após falhas repetidas, então este turno usou o transporte clássico (sem subagentes em segundo plano). Tente de novo quando a causa for resolvida.`,journal_locked:`Outra instância do Specrails Desktop está usando as sessões de agente deste projeto, então este turno usou o transporte clássico. Feche a outra instância e tente de novo.`,policy:{subagent_blocked:`O provedor iniciou um subagente embora os subagentes estejam desativados neste projeto; ele foi parado.`},retry:`Tentar de novo`,retryFailed:`Ainda indisponível. Verifique o log do app para ver a causa.`,dismiss:`Dispensar`,subagents:{delegation_unsupported:`Subagentes em {{provider}} exigem um Specrails Core mais recente, então o agente desta missão inicia os próprios subagentes.`,driver_unavailable:`{{provider}} não está disponível no runtime de sessões, então o agente desta missão inicia os próprios subagentes.`}},he=`A preparar um cartão…`,ge={placeholder:`Escreva para interromper: o agente muda de rumo de imediato`,send:`Interromper e enviar`,sendHint:`Para o passo atual e entrega já a sua mensagem ao agente`},_e=JSON.parse(`{"missing":{"sessions":"As sessões de agente do Core estão desligadas ou indisponíveis","flowSessions":"Seu Specrails Core ainda não consegue interromper um agente em execução","deriveChange":"Seu Specrails Core ainda não consegue derivar uma spec a partir do código"},"errors":{"generic":"O Flow não conseguiu concluir essa ação. Tente novamente.","network":"Não foi possível se conectar ao Specrails.","feature_unavailable":"O Flow não está disponível com o Specrails Core instalado.","flow_already_open":"Esta missão já tem um Flow. Retome-o ou descarte-o primeiro.","illegal_transition":"O Flow mudou de estado nesse meio-tempo. Atualize e tente novamente.","flow_worktree_missing":"A cópia do projeto deste Flow não existe mais. Verifique o branch do Flow antes de continuar.","flow_repository_required":"Escolha o repositório em que este Flow é executado.","flow_repository_not_git":"O Flow precisa de um repositório Git para o seu branch; uma pasta simples não serve. Escolha um repositório Git.","flow_repository_unknown":"Esse repositório não faz mais parte deste projeto. Escolha outro.","flow_repository_missing":"O repositório do Flow não está mais disponível neste projeto.","rail_not_empty":"Esse rail já tem specs. Escolha um rail livre e vazio.","flow_already_handed_off":"Este Flow já foi passado a um rail.","flow_freeze_failed":"Não foi possível salvar as alterações do Flow para a passagem a um rail.","flow_head_mismatch":"Seu Flow mudou durante a passagem a um rail. Tente de novo.","flow_handoff_not_adopted":"O rail iniciou sem assumir as alterações do seu Flow.","repository_has_no_commits":"Este repositório ainda não tem commits. Faça um primeiro commit para que o Specrails possa criar uma cópia isolada do projeto.","flow_not_found":"Este Flow não existe mais.","flow_failed":"O Flow encontrou um erro inesperado. Tente novamente.","conversation_not_found":"Esta missão não existe mais.","conversation_not_pinned":"Fixe esta missão ao projeto antes de iniciar um Flow.","flow_not_handed_off":"Este Flow não está mais aguardando essa execução.","flow_rail_unknown":"O rail dessa execução é desconhecido. Volte a passá-lo a um rail a partir da faixa do Flow.","flow_return_busy":"A execução está ocupada com outra ação. Tente novamente daqui a pouco.","flow_return_not_allowed":"Só uma passagem a um rail que parou antes da entrega pode voltar ao seu Flow.","flow_return_not_found":"Essa execução não é uma passagem de Flow a um rail.","flow_return_worktree_mismatch":"Essa execução não assumiu as alterações deste Flow.","spec_in_flow":"Esta spec já está em Flow. Abra a missão dela para continuar.","spec_on_rail":"Esta spec está em um rail. Tire-a do rail para começá-la em Flow.","spec_running":"Esta spec está em execução em um rail. Aguarde o fim da execução.","spec_closed":"Esta spec está concluída ou cancelada. Reabra-a para trabalhar nela em Flow.","spec_not_found":"Esta spec não existe mais.","invalid_ticket_id":"Não foi possível identificar essa spec."},"entry":{"heading":"Iniciar um Flow","body":"O Specrails cria uma cópia à parte do projeto no próprio branch do Flow, onde o agente pode escrever código. Seu branch principal não é alterado.","provider":"O agente trabalha com {{provider}} e só escreve na cópia do Flow.","providerUnknown":"O agente só escreve na cópia do Flow.","repository":{"label":"Repositório","hint":"O Flow trabalha em uma cópia à parte deste repositório.","choose":"Escolha o repositório em que este Flow é executado","loading":"Carregando repositórios…","loadFailed":"Não foi possível carregar os repositórios do projeto. Tente novamente.","suggested":"Sugerido pelo agente","noGit":"Este projeto não tem repositório Git. O Flow precisa de um para o seu branch."},"blocked":{"noProject":"Fixe esta missão em um projeto para usar o Flow.","open":"Esta missão já tem um Flow.","missing":"O Flow precisa de um Specrails Core mais recente:","unavailable":"O Flow não está disponível neste momento.","goToFlow":"Ir para esse Flow"},"cancel":"Cancelar","start":"Iniciar Flow","starting":"Iniciando…","existingSpec":{"label":"Spec #{{id}}","note":"O Flow trabalha nesta spec e o agente parte dela. Na entrega, a spec é reescrita a partir do que foi construído; o texto atual fica guardado como comentário."}},"offer":{"heading":"Como você quer construí-lo?","notNow":"Agora não","implementReply":"Vamos escrever primeiro a spec e depois lançar o Implement.","mode":{"flow":{"title":"Flow","hint":"Construa junto com o agente em um branch do Flow à parte; a spec vem no fim.","hintExisting":"Construam esta spec juntos em um branch Flow separado; a spec é reescrita a partir do que for construído."},"implement":{"title":"Spec + implementar","hint":"Combine primeiro uma spec com o agente e depois passe-a a um rail.","hintExisting":"Delegue esta spec, como está escrita, a um rail."}},"stub":{"flow":"Você escolheu Flow","implement":"Você escolheu spec + Implement","dismissed":"Proposta descartada","handedOff":"Flow passado ao Rail {{rail}}","state":{"active":"Flow em andamento","paused":"Flow em pausa","handed_off":"Flow passado a um rail","delivered":"Flow concluído","discarded":"Flow descartado","needs-review":"O Flow precisa de revisão","closed":"Flow fechado (branch mantido)"},"viewRun":"Ver execução"},"why":"Por que o agente pergunta","waitForReply":"Você poderá escolher quando o agente terminar esta resposta.","implementExistingReply":"Vamos implementar a spec #{{id}} em um rail."},"bar":{"controls":"Ações do Flow","viewChanges":"Ver alterações","resume":"Retomar Flow","pause":"Pausar Flow","discard":"Descartar","discarded":"Flow descartado","files_one":"{{count}} arquivo","files_other":"{{count}} arquivos","filesTitle":"Arquivos alterados no branch do Flow","costTitle":"Custo real dos turnos deste Flow, conforme cobrado pelo provedor","costPartial_one":"{{count}} turno não tem custo informado pelo provedor e não está incluído","costPartial_other":"{{count}} turnos não têm custo informado pelo provedor e não estão incluídos","needsReview":"A cópia do projeto deste Flow desapareceu. Nada foi apagado; verifique o branch do Flow antes de continuar.","pausedNote":"Em pausa. Suas alterações e a spec são mantidas; retome quando quiser.","state":{"active":"Flow","paused":"Flow em pausa","needs-review":"O Flow precisa de revisão","handed_off":"Passado a um rail","delivered":"Concluído","discarded":"Descartado","closed":"Fechado"},"disabled":{"settling":"Aguarde até o Flow terminar de salvar o estado","busy":"Aguarde a ação atual terminar","noSpec":"A spec do Flow ainda não está pronta"},"viewChangesStats":"Ver alterações · {{files}}, +{{additions}} −{{deletions}}","handOff":"Passar a um rail","close":"Fechar este Flow","closed":"Flow fechado. O branch é mantido."},"preview":{"open":"Pré-visualizar","openTitle":"Abrir a app em {{url}} no navegador","stopping":"Parando…","more":"Ações da app","local":"Abrir neste computador","network":"Abrir na rede local","localOnly":"Acessível apenas neste computador. Peça ao agente para reiniciá-la exposta na rede local para abri-la em um celular.","stop":"Parar app","stopFailed":"Não foi possível parar a app"},"discard":{"title":"Descartar este Flow?","body":"Descartar apaga tudo isto e não é possível desfazer:","cancel":"Manter Flow","confirm":"Descartar Flow","lossFiles_one":"{{count}} arquivo alterado","lossFiles_other":"{{count}} arquivos alterados","lossNoChanges":"Ainda não há arquivos alterados","lossUnknown":"Todas as alterações no branch do Flow","lossSpec":"A spec provisória no quadro"},"changes":{"title":"Alterações do Flow","subtitle":"Branch {{branch}} comparado com o ponto de partida","subtitleNoBranch":"Alterações comparadas com o ponto de partida do Flow","refresh":"Atualizar","loadFailed":"Não foi possível carregar as alterações.","empty":"Ainda sem alterações.","status":{"added":"Adicionado","modified":"Modificado","deleted":"Excluído","renamed":"Renomeado","untracked":"Novo, não rastreado"}},"handOff":{"heading":"Transforme este Flow em uma PR revisada","loop":"Passagem do Flow a um rail","launch":"Lançar","notYet":"Ainda não","engineFallback":"{{provider}} não pode executar a passagem do Flow a um rail nesta máquina, por isso foi selecionado o motor padrão do rail.","cost":"{{cost}} até agora","costUnknown":"ainda sem custo faturado","line_one":"{{rail}} vai transformar seu arquivo alterado em uma PR revisada. Se falhar, seu trabalho fica a salvo.","line_other":"{{rail}} vai transformar seus {{count}} arquivos alterados em uma PR revisada. Se falhar, seu trabalho fica a salvo.","lineNoCount":"{{rail}} vai transformar suas alterações em uma PR revisada. Se falhar, seu trabalho fica a salvo."},"review":{"backToFlow":"Voltar ao Flow","backToFlowHint":"Reabra este Flow com as mesmas alterações; o agente recebe a revisão no próximo turno","relaunch":"Relançar","relaunchHint":"Tentar de novo a partir do mesmo branch do Flow, rail e motor","returned":"De volta ao Flow. O agente tem a revisão.","relaunched":"Relançado no Rail {{index}}","returnFailed":"Não foi possível voltar ao Flow: {{detail}}","relaunchFailed":"Não foi possível relançar: {{detail}}","backToFlowFailureHint":"Reabra este Flow com as mesmas alterações; o agente recebe o erro no próximo turno","returnedFailure":"De volta ao Flow. O agente tem o erro."},"failure":{"step":{"derive":"Não foi possível escrever a spec a partir de suas alterações","verify":"Não foi possível verificar suas alterações","review":"A revisão não conseguiu terminar","fix":"As correções automáticas não conseguiram terminar","archive":"Não foi possível arquivar a spec concluída","settle":"Não foi possível devolver o resultado","unknown":"A passagem a um rail parou antes de terminar"},"cause":"Causa:","next":"Seu trabalho está intacto. De volta ao Flow, o agente recebe o erro.","nextReturned":"Seu trabalho está intacto. De volta ao Flow, o agente tem o erro.","returned":"De volta ao Flow","technical":{"title":"Detalhes técnicos","repository":"Repositório","step":"Etapa","status":"Estado","failure":"Falha","detail":"Detalhe"}},"announce":{"active":"Flow ativo: o agente escreve no branch do Flow.","paused":"Flow em pausa.","needs-review":"O Flow precisa de revisão: sua cópia do projeto desapareceu.","handed_off":"Flow passado a um rail.","delivered":"Flow entregue.","discarded":"Flow descartado.","returned":"De volta ao Flow: o trabalho voltou com o que o rail encontrou.","closed":"Flow fechado. O branch foi mantido."},"strip":{"label":"Flow","ready":"Pronto para virar uma PR","launching":"Passando a um rail…","launchingOn":"Passando a {{rail}}…","stillHandingOff":"Ainda passando a {{rail}}…","refresh":"Atualizar","step":{"derive":"Escrevendo a spec a partir de suas alterações","verify":"Verificando suas alterações","review":"Revisando a alteração","fix":"Aplicando as correções da revisão","archive":"Arquivando a spec concluída","settle":"Devolvendo o resultado"},"headline":"{{state}} · {{files}}"},"mode":{"chip":"Flow","description":"Modo Flow: o agente escreve no branch do Flow, não no seu branch principal","placeholder":"Diga ao agente o que mudar neste Flow…"},"panel":{"branch":"Branch","changes":"Alterações","cost":"Custo até agora","actions":"Mais ações do Flow"},"close":{"title":"Fechar este Flow?","body":"A conversa sai do Flow. Nada é apagado:","keptBranch":"Branch mantido:","keptSpec":"A spec continua no quadro, sem a etiqueta Em Flow","cancel":"Agora não","confirm":"Fechar Flow e manter o branch"},"startFromSpec":{"action":"Começar em Flow","hint":"Construa esta spec com o agente em um branch Flow próprio, em uma missão","starting":"Iniciando o Flow…","failed":"A spec #{{id}} não pôde começar em Flow","repository":{"title":"Onde este Flow deve ser executado?","body":"Este projeto tem vários repositórios Git. O Flow trabalha no próprio branch, em uma cópia separada do que você escolher.","fromSpec":"Indicado na spec"},"blocked":{"noProject":"Abra um projeto para usar o Flow","unavailable":"O Flow não está disponível com o Specrails Core instalado","inFlow":"Já está em Flow","closed":"Specs concluídas ou canceladas não podem começar em Flow","running":"Em execução em um rail","onRail":"Em um rail: tire-a do rail primeiro","missionInFlow":"Esta missão já tem um Flow"}}}`),ve={title:`O que o revisor pediu`,noFindings:`A passagem a um rail parou antes da entrega; suas alterações voltaram intactas a este Flow.`,coverage:`A spec explica {{explained}} de {{files}} arquivos alterados`,unexplained:`Não explicados por nenhum requisito`,moreFiles_one:`+{{count}} arquivo a mais`,moreFiles_other:`+{{count}} arquivos a mais`,next:`O agente do Flow começa agora; você pode orientá-lo ou pará-lo a qualquer momento.`,automaticTurn:`Turno automático · De volta ao Flow`,titleFailure:`Por que a passagem a um rail parou`},ye={providerInactivity:`O provedor parou de responder por tempo demais, então o turno terminou. Envie a mensagem novamente para continuar.`,toolInactivity:`Uma ferramenta ficou tempo demais sem atividade do provedor, então o turno terminou. Envie a mensagem novamente para continuar ou peça ao agente para dividir o passo.`,generic:`O turno do agente falhou.`},be={title:`Flow entregue`,pr:`Abrir o pull request`,prNumber:`Pull request #{{number}}`,specRewritten:`Spec reescrita a partir do que você construiu`,specKept:`A reescrita da spec não terminou; o rascunho foi mantido`,change:`Mudança de spec {{change}}`,changeArchived:`Mudança de spec {{change}} arquivada`,jira:`Issue do Jira {{key}}`,jiraPending:`Issue do Jira sendo criada`},xe={launching:`Iniciando em {{rail}}…`,running:`Trabalhando`,paused:`Pausado. Aguardando você`,pausedReason:`Pausado: {{reason}}`,decision:{approval:`Aguardando sua aprovação`,changes:`O revisor pediu alterações`,on_review:`Pronto para sua revisão`,pr_draft:`PR em rascunho pronta para publicar`,no_changes:`Concluído sem alterações`,pr_closed:`PR fechada sem merge`,generic:`Aguardando sua decisão`},failed:{generic:`Parou com um erro`,implementation_failed:`A implementação falhou`,stalled:`A execução travou`,stuck:`A execução ficou presa`,provider_limit:`O limite de uso do provedor a interrompeu`,launch_failed:`A execução não conseguiu iniciar`,delivery_failed:`Não foi possível entregar o resultado`,push_failed:`Não foi possível enviar o branch`,pr_failed:`Não foi possível criar a PR`},progressAria:`{{done}} de {{total}} execuções concluídas`,costTitle:`Custo real cobrado pelo provedor até agora`,costPartial:`Algumas execuções ainda não têm custo cobrado e não estão incluídas`,costNone:`Ainda sem custo cobrado`,state:{launching:`Iniciando:`,running:`Em execução:`,decision:`Aguardando você:`,failed:`Falhou:`,paused:`Pausado:`,info:`Para sua informação:`},proposal:`Lançamento proposto para {{tickets}}`,proposalNoTickets:`Lançamento proposto`,proposalLabel:`Proposta`,panelLabel:`Detalhes de {{run}}`,showDetails:`Mostrar detalhes`,withShortcut:`{{label}} ({{keys}})`,cycleHint:`Trocar de execução: {{keys}}`,hideDetails:`Ocultar detalhes`,switcher:`Execuções em andamento`,more:`Mais execuções ({{count}})`,announce:{settled:`{{run}} terminou`,shown:`Mostrando {{run}}: {{state}}`,needsYou:`{{run}} precisa de você`},event:{launched:`Iniciado em {{run}}`,failed:`{{run}} falhou: {{reason}}`,openRun:`Mostrar a execução`,proposed:`Lançamento proposto. Aguardando você`,backToFlow:`De volta ao Flow`,flowReturned:`{{run}} devolveu o trabalho ao Flow`,delivered:`Entregue: PR {{pr}}`,deliveredNoPr:`Entregue em {{run}}`,superseded:`{{run}} foi substituído por uma execução mais recente`,discarded:`{{run}} foi descartado`,changes:`{{run}}: o revisor pediu alterações`},needsYou:`precisa de você`,opensCard:`Abre o cartão da execução para você confirmar lá`,open:{decision:`Abrir a decisão`,failed:`Ver o que falhou`,paused:`Ver por que pausou`},attention:{failed:`Precisa de atenção: uma execução falhou`}},Se={entered:`Entrou no Flow`,left:`Saiu do Flow`,turnMark:`Flow`,reason:{started:`iniciado`,returned:`de volta de um rail`,handed_off:`passado a um rail`,discarded:`descartado`,closed:`fechado, branch mantido`}},Ce=`Não lida`,we=`{{count}} não lidas`,Te=`Agente a trabalhar`,Ee=`Não foi possível eliminar a missão. Tente novamente.`,De={label:`Modo da interface`,mission:`Missão`,board:`Quadro`,current:`Modo atual: {{mode}}. Clique para mudar.`},Oe={sendFailed:`Não foi possível enviar a mensagem.`,stopFailed:`Não foi possível parar o agente.`,mcpEnableFailed:`Não foi possível ativar o MCP.`,removeAttachmentFailed:`Não foi possível remover o anexo.`,sendFailedHint:`Seu texto voltou para a caixa — pressione Enter para tentar de novo.`,providerSwitchFailed:`Não foi possível trocar de provedor — o anterior continua ativo.`,modelSwitchFailed:`Não foi possível trocar de modelo — o anterior continua ativo.`,effortSwitchFailed:`Não foi possível trocar o esforço — o anterior continua ativo.`},ke={ariaLabel:`Mensagem para o agente`,dropFiles:`Solte os arquivos para anexar`,uploading:`Enviando…`},Ae={ariaLabel:`Conversa da missão`,agentWorking:`O agente está trabalhando…`,agentReplied:`O agente respondeu`,newMessages:`Novas mensagens`},je={you:`Você`,agent:`Agente`},Me={groupLabel:`Respostas sugeridas`,shortcut:`Alt+{{n}}`},Ne=`Copiado`,Pe=`Copiar código`,Fe=`Responda, ou use @ para referenciar…`,Ie=`Enviar (Enter) · Nova linha (Shift+Enter)`,Le=`Desfazer`,Re=`Este provedor ainda não lê imagens — {{count}} imagens não foram anexadas`,ze={reference:`Referenciar uma spec`,action:`Executar uma ação`,plan:`Planejar uma nova spec`,planSpec:`Me ajude a planejar uma nova spec: `},Be=`⇧⇥ muda o que o agente pode fazer · ↑ recupera seu último prompt`,Ve={arrived:`Chegou à revisão — PR #{{number}}`,arrivedNoNumber:`Chegou à revisão`,openPr:`Abrir PR`},He={greeting:`O que deve ser entregue a seguir em {{project}}?`,greetingNoProject:`O que deve ser entregue a seguir?`,statusTodo_one:`{{count}} a fazer`,statusTodo_other:`{{count}} a fazer`,statusReview_one:`{{count}} aguardando revisão`,statusReview_other:`{{count}} aguardando revisão`,statusRunning_one:`{{count}} em execução`,statusRunning_other:`{{count}} em execução`},Ue={title:e,subtitle:t,trigger:n,composerPlaceholder:r,send:i,stop:a,copy:o,attachment:s,maximize:c,restore:l,minimize:u,close:d,newConversation:f,emptyTitle:p,emptyHint:m,thinking:h,connecting:g,consultingCode:_,size:v,model:y,history:b,queue:x,receipt:S,queueEdit:C,git:w,provider:T,tier:E,approval:D,project:O,palette:k,mission:A,noProvider:j,degraded:M,toolCard:N,error:P,chip:F,newAgent:I,switchToAgent:L,switchToKanban:R,search:z,home:B,favoriteMissions:V,untitled:H,workspace:U,attachFile:W,deleteConversation:G,confirmDeleteConversation:K,addFavoriteConversation:q,removeFavoriteConversation:J,confirmShort:Y,imagesUnsupported:X,effort:Z,prCard:Q,specDraft:$,problemFrame:ee,refs:te,header:ne,emptyTitleCodeRain:re,activity:ie,backgroundProcess:ae,window:oe,railCard:se,runCard:ce,runFailure:le,split:ue,runtimeSelector:de,missionPlaceholders:fe,subagents:pe,sessionNotice:me,cardPending:he,interrupt:ge,flow:_e,flowReturn:ve,turnErrors:ye,flowDelivered:be,runStrip:xe,flowBoundary:Se,unread:Ce,unreadCount:we,live:Te,deleteFailed:Ee,modeSwitch:De,errors:Oe,composer:ke,conversation:Ae,message:je,options:Me,copied:Ne,copyCode:Pe,composerReplyPlaceholder:Fe,sendHint:Ie,undo:Le,imagesUnsupportedCount:Re,starter:ze,emptyLegend:Be,delivery:Ve,missionHome:He};export{ie as activity,q as addFavoriteConversation,D as approval,W as attachFile,s as attachment,ae as backgroundProcess,he as cardPending,F as chip,d as close,ke as composer,r as composerPlaceholder,Fe as composerReplyPlaceholder,K as confirmDeleteConversation,Y as confirmShort,g as connecting,_ as consultingCode,Ae as conversation,Ne as copied,o as copy,Pe as copyCode,Ue as default,M as degraded,G as deleteConversation,Ee as deleteFailed,Ve as delivery,Z as effort,m as emptyHint,Be as emptyLegend,p as emptyTitle,re as emptyTitleCodeRain,P as error,Oe as errors,V as favoriteMissions,_e as flow,Se as flowBoundary,be as flowDelivered,ve as flowReturn,w as git,ne as header,b as history,B as home,X as imagesUnsupported,Re as imagesUnsupportedCount,ge as interrupt,Te as live,c as maximize,je as message,u as minimize,A as mission,He as missionHome,fe as missionPlaceholders,De as modeSwitch,y as model,I as newAgent,f as newConversation,j as noProvider,Me as options,k as palette,Q as prCard,ee as problemFrame,O as project,T as provider,x as queue,C as queueEdit,se as railCard,S as receipt,te as refs,J as removeFavoriteConversation,l as restore,ce as runCard,le as runFailure,xe as runStrip,de as runtimeSelector,z as search,i as send,Ie as sendHint,me as sessionNotice,v as size,$ as specDraft,ue as split,ze as starter,a as stop,pe as subagents,t as subtitle,L as switchToAgent,R as switchToKanban,h as thinking,E as tier,e as title,N as toolCard,n as trigger,ye as turnErrors,Le as undo,Ce as unread,we as unreadCount,H as untitled,oe as window,U as workspace};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=`任务中心`,t=`通过对话操作 Specrails`,n=`任务中心`,r=`这次的任务是什么?`,i=`发送`,a=`停止`,o=`复制`,s={openPreview:`预览 {{name}}`,openDownload:`下载 {{name}}`,previewTitle:`{{name}} 预览`,downloadTitle:`下载文件?`,downloadPrompt:`此文件无法在此处预览。要下载它吗?`,download:`下载`,cancelDownload:`暂不`,loading:`正在准备文件…`,loadFailed:`无法加载附件`,loadError:`无法加载附件:{{error}}`,remove:`移除 {{name}}`},c=`最大化`,l=`还原`,u=`最小化`,d=`关闭`,f=`新任务`,p=`这次的任务是什么?`,m=`可以询问关于此项目的任何问题——智能体可以读取内容、规划规格并启动 rail。`,h=`思考中…`,g=`连接中…`,_=`正在查询应用…`,v={compact:`紧凑`,comfortable:`舒适`,max:`最大化`},y={label:`模型`,loading:`正在加载模型…`,unavailable:`模型不可用`},b={hint:`浏览提示历史 — 输入以编辑,↑↓ 导航`},x={queued:`已排队`,send:`将消息加入队列`,sendHint:`排队等待下一轮。点击队列中消息的“调整方向”,即可在不中断模型的情况下发送。`,placeholder:`向队列添加消息…`,delivered:`已送达智能体`,interrupted:`送达未确认`,cancelled:`送达前取消`,steer:`调整方向`,steerHint:`在不中断模型的情况下发送`,steering:`正在发送给智能体…`,remove:`删除队列中的消息`,more:`消息选项`,edit:`编辑`,actionConflict:`该消息正在送达或已不在队列中。`,actionFailed:`无法更新队列中的消息,请重试。`,removed:`已删除排队消息`},S={sent:`已发送给智能体`,received:`已送达智能体`,read:`智能体已读`,interrupted:`送达未确认`,cancelled:`送达前取消`},C={editing:`正在编辑第 {{n}} 条待送达消息,共 {{m}} 条`,hint:`↑↓ 导航 · 回车保存 · Esc 取消`,save:`保存待送达消息`,cancel:`取消编辑`,dispatched:`该消息已送达;你的文本已保留为草稿`,saveFailed:`无法保存待送达消息`},w={branch:`分支`,detached:`(分离头指针)`,dirty:`有未提交的更改`,switched:`已切换到 {{branch}}`,switchFailed:`无法切换分支`,lockedWhileWorking:`智能体工作时分支已锁定`,searchPlaceholder:`搜索分支…`,noMatches:`没有匹配的分支`,worktrees:`工作树`,worktreePathCopied:`已复制工作树路径`,copyWorktreePath:`复制工作树路径`,repository:`仓库`,repositoryUnavailable:`仓库不可用`,loadFailed:`Git 状态不可用`,notGit:`上下文文件夹 · 无 Git`,retry:`重试`,copyBranch:`复制分支名`,branchCopied:`已复制分支名`},T={label:`提供方`,claude:`Claude`,codex:`Codex`,gemini:`Gemini`,kimi:`Kimi`},E={cycleHint:`⇧⇥ 切换`,observe:{name:`观察`,desc:`只读 — 不做任何更改`},edit:{name:`编辑`,desc:`创建和编辑(可撤销)`},operate:{name:`操作`,desc:`启动 AI — 会产生费用`},autonomous:{name:`自主`,desc:`删除和终止 — 不可逆`},lockedTitle:`需要更高的级别`,lockedBody:`该操作需要「{{level}}」级别。你当前处于「{{current}}」。`,raiseHint:`⇧⇥ 提升级别,或换一种方式询问。`,confirmAutonomous:`切换到自主`,autonomousWarning:`自主级别可以删除内容并终止进程。`,skipAutonomousHint:`再次按 ⇧⇥ 返回“观察”。`},D={title:`确认操作`,costAction:`{{action}} · ~{{cost}} · {{tier}}`,approve:`批准`,cancel:`取消`,dontAskAgain:`本次会话不再询问`,approved:`已批准`,cancelled:`已取消`},O={home:`主页`,searchPlaceholder:`与 Specrails 对话…`,searchProjectsPlaceholder:`搜索项目…`,recents:`最近`,allProjects:`所有项目`,searchAll:`在所有项目中搜索`,addProject:`添加项目…`,homeHint:`未选择项目 — 正在跨所有项目操作。`,askCreateOrSearch:`未选择任何项目。你想创建一个新项目,还是在所有项目中搜索?`},k={remove:`移除 {{label}}`,addContextAction:`添加上下文或操作`,filtering:`筛选 "{{query}}"`,keyboard:`↑↓ Enter Esc`,noMatches:`无匹配结果`,noMatchesFor:`没有 "{{query}}" 的匹配结果`,mode:{reference:{title:`引用`,hint:`@ 项目、规格、任务`},trace:{title:`追踪`,hint:`# 作业、运行、ID`},action:{title:`操作`,hint:`/ 此上下文的命令`}},plus:{reference:`引用`,referenceHint:`项目、规格、任务`,trace:`追踪`,traceHint:`作业、运行、ID`,action:`操作`,actionHint:`创建、启动、检查`,fileAttachment:`文件附件`,fileAttachmentHint:`添加文档、图片、日志`,browserCapture:`浏览器捕获`,browserCaptureHint:`捕获页面区域并添加到此任务`},railGroup:`Rail`,railGroupInUse:`使用中的 Rail`},A={label:`切换任务`,untitled:`新任务`,new:`新任务`,searchPlaceholder:`搜索任务…`,noMatches:`没有匹配的任务`,working:`代理正在工作`,queuedBadge:`{{n}} 条排队`,delete:`删除任务 "{{title}}"`,deleteConfirm:`删除?`,deleteLiveConfirm:`代理正在工作。仍要删除吗?`,confirmDelete:`确认删除`,cancelDelete:`保留任务`,deleteFailed:`无法删除任务`},j={title:`未安装 AI 提供方`,body:`智能体需要一个 AI 提供方(Claude、Codex、Gemini 或本地引擎)。安装或连接一个后,重新打开智能体。`,placeholder:`连接一个 AI 提供方以使用智能体…`},M={title:`Specrails MCP 已关闭`,body:`智能体需要内置的 MCP 服务器来操作应用。`,enable:`启用 Specrails MCP`,enabling:`正在启用…`,enabled:`MCP 已启用`},N={live:`实时`,queued:`排队中`,running:`运行中`,done:`已完成`,failed:`失败`},P={generic:`出了点问题。请重试。`,busy:`智能体正忙。请稍后重试。`},F={kindAgent:`智能体任务`},I=`新任务`,L=`切换到任务中心`,R=`切换到看板`,z=`搜索`,B=`未分配的任务`,V=`收藏任务`,H=`未命名`,U={title:`工作区`,terminal:`终端`,files:`文件`,browser:`浏览器`,requiresProject:`请选择一个项目以使用此工具`,resizeCode:`调整代码面板`,closeFiles:`关闭代码`,browserConfirm:`添加到智能体`,browserSelectStart:`选择以添加到任务`,browserCaptured:`已添加捕获`,uploadFailed:`上传失败`,requiresConversation:`启动任务后才能使用此工具`,jobs:`作业`,closeJobs:`关闭作业`,resizeJobs:`调整作业面板大小`,noJobs:`还没有作业——让智能体启动一个吧`,analytics:`分析`,closeAnalytics:`关闭分析`,resizeAnalytics:`调整分析面板大小`},W=`附加文件`,G=`删除「{{title}}」`,K=`确认删除「{{title}}」`,q=`将「{{title}}」添加到收藏`,J=`从收藏中移除「{{title}}」`,Y=`删除?`,X=`该提供商暂不支持读取图片。请改为附加文本文件`,Z={label:`推理强度`,minimal:`最小`,low:`低`,medium:`中`,high:`高`,xhigh:`极高`,max:`最大`,ultra:`超级`},Q=JSON.parse(`{"operation":{"inProgress":"操作进行中…","create-pr":"正在创建 PR…","publish":"正在发布…","discard":"正在丢弃…","dismiss":"正在关闭后续任务…","poll-merge":"正在检查合并…","reopen":"正在重新打开…","merge-local":"正在本地集成…","recover-and-retry":"正在提交并重新推送已保留的结果…","acknowledge-no-changes":"正在标记完成…"},"markDone":"标记为完成","refine":"细化","completedNote":"已确认。spec 已移至完成","partialSummary":"{{total}} 个中 {{succeeded}} 个完成,{{failed}} 个失败","unit":{"failed":"实现失败","blocked":"交付受阻","noChanges":"无更改","succeeded":"已就绪"},"rail":"Rail {{index}}","specCount_one":"{{count}} 个 Spec","specCount_other":"{{count}} 个 Spec","base":"基础分支","openPr":"打开 PR","existingPr":"现有 PR","title":{"no_changes":"无需更改","partial":"部分实现完成","delivery_blocked":"实现完成:交付需要处理","update_failed":"实现完成:更新失败","pr_closed":"PR 已关闭但未合并","superseded":"已被较新的运行取代","existing_pr_updated":"现有 PR 已更新","building":"正在隔离的 worktree 中实现…","buildingInPlace":"正在项目文件夹中实现…","buildingExistingPr":"正在向现有 PR 应用更改…","paused":"需要人工决策","on_review":"实现已完成,待评审","pr_draft":"已创建草稿 PR","pr_draft_degraded":"PR 交付未完成","pr_ready":"PR 已就绪,可合并","implementation_failed":"实现失败","pr_failed":"PR 创建失败","merged":"PR 已合并","discarded":"已丢弃","review_changes_requested":"审阅者要求修改","returned_to_flow":"已回到 Flow","flowSpecChanges":"尚未就绪:审阅者要求修改","flowSpecDelivered":"你的 Flow 已成为经过评审的 PR","flowSpecFailed":"移交已停止","flowSpecBuilding":"正在把你的 Flow 变成经过评审的 PR"},"buildingHint":"完成后会询问你是否创建 PR。","buildingExistingPrHint":"Specrails 正在现有 PR 的分支上工作,并会把 review 更改推送回同一个 PR。","paused":"实现已暂停","pausedForRun":"在 {{ref}} 暂停","resume":"继续","stopExecution":"停止执行","stopExecutionSent":"已发送停止信号","stopExecutionFailed":"无法停止执行","createPr":"创建 PR","publish":"发布","checkout":"检出分支","openReview":"审阅","openReviewTooltip":"打开通俗语言的审阅","checkoutTooltip":"在项目主目录检出 {{branch}}","checkoutSuccess":"已检出 {{branch}}","checkoutFailed":"无法检出实现分支","checkoutDirtyTitle":"为保护你的更改,已阻止检出","checkoutDirtyBody":"项目主目录中有未提交的更改。请先提交或暂存这些更改,然后重试。本次操作没有修改任何内容。","checkoutSafetyUnknownTitle":"无法验证安全状态,已暂停检出","checkoutSafetyUnknownBody":"Specrails 无法读取项目主目录的 Git 状态。没有释放或修改任何内容。请在 Git 恢复可用后重试。","checkoutNotDeliverableTitle":"此分支不包含保留的实现","checkoutNotDeliverableBody":"尚未验证本次交付的精确提交。请改为检查或恢复本地结果。","inspectLocalResult":"检查本地结果","inspectLocalResultTooltip":"显示已保留的隔离 worktree 并复制其路径","localResultPathCopied":"已复制本地结果路径","localResultPath":"已保留的本地结果","localResultUnavailableHere":"此电脑上没有可恢复的 worktree。请在运行该任务的电脑上查看运行日志。","recoverAndRetry":"提交并重试推送","recoverAndRetryVerified":"已恢复的提交 {{sha}} 已在 PR 中验证","recoveryStillBlocked":"本地恢复仍需处理","recheckRecovery":"再次检查","recoveryUnavailable":"无法在此计算机上验证恢复结果","recoveryUnavailableBody":"Specrails 无法在此克隆中安全证明唯一一个属于此次交付的结果。没有更改或删除任何内容。请检查阶段详情和运行日志。如果 run 在另一台计算机上执行,请在那里打开 Specrails,然后再次检查。","recoveryDetailSummary":"恢复技术详情","retry":"重试","retryPr":"重试 PR","checkMerge":"检查合并","verifyPr":"验证 PR","discard":"丢弃","confirmDiscard":"确认丢弃?","mergedNote":"已合并。Spec 已移至完成","discardedNote":"已丢弃。Spec 已退回待办","implementationFailedNote":"实现运行在生成可交付内容前失败。请打开运行日志查看失败原因,然后在重新启动前丢弃此卡片。","dismiss":"关闭后续任务","discardLocalResult":"丢弃本地结果","retryPush":"重试推送","retryPushVerified":"推送已验证 · 提交 {{sha}} 已在 PR 中","commitAlreadyVerified":"提交 {{sha}} 已在 PR 中验证","deliveryCommit":"提交 {{sha}}","reopen":"重新打开","createPartialPr":"用 {{count}} 个结果创建 PR","supersededNote":"较新的实现运行已取代此卡片。","noChangesExisting":"无需新的更改;现有 PR 保持不变。","noChangesNote":"无需更改代码。请将 spec 标记为完成,或退回待办列表继续细化。","deliveryNeedsAttention":"实现完成;交付需要处理","deliveryBlockedNote":"实现已成功,但交付受阻。丢弃本地结果前,请查看阶段详情和运行日志。","partialDeliveryBlockedNote":"部分实现已成功,但目前还没有可安全交付的内容。在选择下一步操作前,请查看各单元的结果和运行日志。","retryPushNote":"实现已成功,更改安全保存在本地。请仅重试推送。","cleanupIncomplete_one":"清理未完成({{count}} 条警告)","cleanupIncomplete_other":"清理未完成({{count}} 条警告)","safetyArchiveTitle":"安全存档({{count}})","safetyArchiveHint":"为安全起见,临时工作区文件已保存在 PR 之外。你可以检查或手动删除它们。","confirm":{"recoverAndRetryTitle":"提交并推送已保留的结果?","recoverAndRetryBody":"Specrails 只会使用 {{branch}} 对应的隔离 worktree 或已记录且可快进的分支。必要时,它会提交可交付文件;仅当 PR 仍以预期的源分支和目标分支保持打开状态时,才会推送这个精确提交。不会触碰项目主目录及其中尚未提交的更改。","recheckRecoveryTitle":"再次检查此计算机?","recheckRecoveryBody":"我们将检查此次交付是否还有可恢复的内容。不会删除任何内容。","noChangesDoneTitle":"将这些 spec 标记为完成?","noChangesDoneBody":"实现已确认无需更改代码。spec 将移至完成,并清理无更改的 worktree。","refineTitle":"细化这些 spec?","refineBody":"无更改结果将被关闭,spec 会返回待办列表以便细化。运行日志仍可查看。","mergeLocalTitle":"在本地集成?","mergeLocalBody":"交付的分支将在本地合并到 {{base}}。现有更改会被保留;重叠的更改可能需要先解决才能集成。","freshDiscardTitle":"丢弃此交付?","freshDiscardBody":"PR 将关闭,但不会删除其远程分支。只会删除归 SpecRails 所有且仍停留在已记录提交上的本地分支和 worktree;任何已更改的内容都会保留并显示警告。spec 将返回待办列表。已删除的本地资源无法恢复。","implementationFailedDiscardTitle":"丢弃此失败的交付?","implementationFailedDiscardBody":"卡片将被关闭,spec 会返回待办列表。本地工作和分支将保留以供检查。只有确认可安全清理的资源才可能被移除。","dismissTitle":"关闭此后续任务?","dismissBody":"此后续卡片将被关闭。仅在仍可安全删除时才会移除其专用 worktree;否则将保留并显示警告。现有 PR、分支和审查状态不会改变。","discardLocalTitle":"丢弃本地结果?","discardLocalBody":"仅在仍可安全删除时才会移除可恢复的本地迭代;如果它已发生变化,将保留并显示警告。任何现有 PR 及其分支都不会改变。已删除的结果无法恢复。","recheckRecoveryTechnical":"Specrails 将在此克隆中重新扫描属于 {{branch}} 交付的 worktree、分支、refs、reflogs 和孤立 Git 对象。如果能证明唯一结果,它可以提交隔离的更改并重试精确 push。不会触碰主项目文件夹。"},"degraded":{"pushed":"分支已推送,但无法创建 PR。请重试以完成。","localOnly":"更改已在本地组装但未推送。请重试以发布 PR。"},"alreadyResolved":"已在其他地方处理","actionFailed":"操作失败","notMergedYet":"尚未合并","commitMissingRetry":"交付提交已不在 PR 中。你可以重新尝试推送。","prVerifiedWaiting":"提交 {{sha}} 已验证 · 等待合并","viewLog":"查看 {{ref}} 的运行日志","runElapsedAria":"已运行 {{elapsed}}","runCostAria":"已花费 {{cost}}","focusRegion":"实现卡片 · {{rail}} {{tickets}}","pinned":{"state":{"completed":"已完成","no_changes":"无更改","pr_closed":"已关闭","superseded":"已取代","building":"构建中","on_review":"待审阅","pr_draft":"草稿 PR","pr_ready":"已发布","implementation_failed":"失败","pr_failed":"失败","merged":"已合并","discarded":"已丢弃"}},"mergeLocal":"本地集成","mergeLocalTooltip":"将交付的分支合并到本地检出的 {{base}}(无需 GitHub)","mergeLocalBlockedDirty":"无法集成:{{base}} 上的本地更改与交付内容重叠。请先提交或暂存这些更改,然后重试。","mergeLocalBlockedBranch":"无法集成:当前检出在 {{current}},而不是 {{base}}。请切换到 {{base}} 后重试。","mergedLocally":"已在本地集成到 {{base}}","discardStackedNote":"此里程碑的后续轨道基于此交付构建。丢弃它会暂停里程碑链;后续轨道保留其工作。","resumeFromStep":"从 {{step}} 继续","resumeFromStepHint":"被中断的 {{step}} 步骤将从头重新运行;磁盘上已有的工作会保留。","retryDelivery":"重试交付","retryDeliveryHint":"只在此运行的分支上重复最后一步(提交、推送和 PR),不会重做任何 AI 工作。","retryDeliverySent":"正在重试交付…","retryDeliveryFailed":"无法重试交付","mergedLocallyRestored":"已保存你的本地更改,集成了 {{tickets}},并已恢复这些更改。","mergedLocallyStashConflict":"已集成 {{tickets}}。你的本地更改安全保存在 stash 中;Specrails 正在一个单独的分支上恢复它们。","mergedLocallyStashKept":"已集成 {{tickets}}。你的本地更改安全保存在 stash 中;准备好后再恢复。","localStash":{"title":"你的本地更改已保存为 stash","conflictBody":"在集成结果上重新应用时发生冲突,因此 {{branch}} 保持为集成后的状态。恢复它们即可在单独的分支上重试。","savedBody":"这些更改尚未恢复。请在检出 {{branch}} 时恢复。","files":"冲突的文件","restore":"恢复我的更改","restoring":"正在恢复…","copy":"复制 stash 名称","copied":"已复制 stash 名称","restoredToast":"你的本地更改已回到 {{branch}}。","stillConflicting":"你的本地更改仍与 {{branch}} 冲突;它们仍安全保存在 stash 中。","released":"该 stash 已不存在,没有可恢复的内容。","blockedBranch":"请先检出 {{base}}(当前在 {{current}}),然后再恢复。","blockedDirty":"其中一些文件在保存后又被修改了。请先提交或移走这些编辑,然后再恢复。","failed":"无法恢复你的本地更改","restoringBody":"在集成结果上重新应用时发生冲突,因此 {{branch}} 保持为集成后的状态。Specrails 正在单独的 worktree 中的 {{restoreBranch}} 上恢复它们,并在那里解决冲突。","readyBodyClean":"你的更改已在 {{restoreBranch}} 上恢复并提交;在那里应用时没有冲突。请检查后将它们带回 {{branch}}。","readyBodyResolved":"你的更改已在 {{restoreBranch}} 上恢复并提交,冲突已自动解决。请检查后将它们带回 {{branch}}。","failedBody":"Specrails 未能在 {{restoreBranch}} 上完成恢复。它们仍安全保存在 stash 中;请丢弃该分支或再次恢复。","restoredFiles":"已在 {{restoreBranch}} 上恢复","binary":"二进制","managedNote":"由 Specrails 管理的生成文件保留了集成版本:{{files}}","bringBack":"带回 {{branch}}","bringingBack":"正在带回…","discardBranch":"丢弃恢复的分支","discarding":"正在丢弃…","broughtBackToast":"你的本地更改已回到 {{branch}}。","discardedToast":"已丢弃恢复的分支。你的更改仍安全保存在 stash 中。","blockedBringBack":"无法安全地将更改带回 {{branch}}。","notReady":"恢复的分支尚未就绪。"},"failed":{"createPr":"无法创建 PR","mergeLocal":"无法在本地集成","discard":"无法丢弃结果","publish":"无法发布 PR","generic":"交付已停止。请查看技术详情。"},"moreActions":"更多操作"}`),$={heading:`规格草稿`,drafting:`正在更新草稿…`,acceptanceCriteria:`验收标准`,untitled:`未命名规格`,expand:`显示完整描述`,collapse:`收起描述`},ee={heading:`理解框架`,framing:`正在梳理需求…`,restated:`我的理解`,alternative:`也可能是指`,pick:`以此回复`,touches:`会涉及`,discriminator:`是哪一种?`,assumptions:`我的假设`,unknowns:`仍待确认`},te={openTicket:`打开 Spec #{{id}}`,openPullRequest:`打开 PR #{{id}}`,openJob:`打开任务 {{id}}`,openLoop:`打开循环 {{id}}`,ticketNotFound:`未找到 Spec #{{id}},可能已被删除`,pullRequestUrlMissing:`PR #{{id}} 被引用但没有 URL`,pullRequestNotFound:`在此项目中找不到 PR #{{id}}`,jobNotFound:`未找到任务,可能已被删除`,loopNotFound:`未找到循环,可能已被删除`,lookupFailed:`无法验证该引用,请重试`},ne={untitled:`未命名任务`,menu:`任务菜单`,rename:`重命名`,renamePlaceholder:`任务名称`,renameHint:`双击重命名`,renameFailed:`无法重命名`,addFavorite:`添加到收藏`,removeFavorite:`从收藏中移除`,copyName:`复制任务名称`,copyId:`复制任务 ID`,copyProject:`复制项目名称`,copyProjectPath:`复制项目路径`,copyFailed:`无法复制`,copyTranscript:`复制转录`,copyTranscriptSuccess:`转录已复制`,copyTranscriptFailed:`无法复制转录`,exportTranscript:`导出转录 (.txt)`,exportTranscriptSuccess:`转录导出已开始`,exportTranscriptFailed:`无法导出转录`,delete:`删除任务`,deleteConfirm:`删除此任务?此操作无法撤销。`,deleteFailed:`无法删除任务`},re=`接下来要构建什么?`,ie={title:`执行日志`,live:`实时`,empty:`本回合尚无工具活动。`,output:`输出`,error:`错误`,copyAll:`复制完整日志`,copyEntry:`复制条目`,copySuccess:`日志已复制到剪贴板`,copyFailed:`无法复制日志`,openLog:`查看执行日志`,close:`关闭`,tool:{terminal:`终端`,reading:`正在读取`,searching:`正在搜索`,editing:`正在编辑`,web:`网页`,agent:`智能体`,agentNamed:`智能体 · {{description}}`,mcp:`MCP · {{name}}`,mcpTool:`MCP 工具`}},ae={open:`查看 {{command}} 的日志`,logsTitle:`进程日志`,logsDescription:`此进程的实时输出和已保存的历史。`,close:`关闭日志`,command:`命令`,directory:`目录`,exitCode:`退出码:{{code}}`,signal:`信号:{{signal}}`,search:`搜索日志…`,source:`输出来源`,allSources:`全部输出`,pause:`暂停`,resume:`继续`,follow:`跟随`,copy:`复制可见日志`,download:`下载可见日志`,stop:`停止进程`,stopCommand:`停止 {{command}}`,stopFailed:`无法停止进程,请重试。`,truncated:`仅显示有限的日志窗口,较早的输出或过长的行可能被省略。复制和下载仅包含当前视图。`,paused:`视图已暂停,进程仍在运行。`,loadFailed:`无法加载日志,可能已超过保留期限。已加载的输出仍然可见。`,retry:`重试`,copied:`已复制可见日志。`,exportFailed:`无法导出日志,请重试。`,output:`进程输出`,loading:`正在加载日志…`,noMatches:`没有匹配的输出。`,empty:`暂无输出。`,lineCount:`{{count}} / {{total}} 行`,exportHint:`导出仅包含当前筛选结果和保留的输出。`,status:{starting:`启动中`,running:`运行中`,stopping:`正在停止`,exited:`已退出`,killed:`已停止`,failed:`失败`,interrupted:`已断开`},repository:`仓库`,history:{button:`进程`,title:`任务进程`,open:`查看进程历史`,description:`查看正在运行的进程和之前执行时保存的日志。`,search:`搜索命令或仓库…`,refresh:`刷新历史`,close:`关闭进程历史`,back:`返回进程列表`,loading:`正在加载进程历史…`,empty:`此任务尚无进程记录。`,noMatches:`没有匹配的进程。`,loadFailed:`无法加载进程历史。已加载的记录仍然可用。`,showMore:`显示更多`,count:`进程数:{{count}}`},interruptedHint:`Specrails 已停止监控此进程。其在操作系统中的状态未知;已保存的日志仍然可用。`,persistenceFailed:`无法保存进程历史。现有输出仍然可见。`,appUrls:{title:`应用地址`,local:`本机`,network:`你的网络`,open:`在浏览器中打开 {{url}}`,copy:`复制 {{url}}`,localOnly:`仅可从本机访问。要在同一 Wi-Fi 下的手机上打开,请让代理以局域网公开方式重新启动它。`}},oe={detach:`在独立窗口中打开`,attach:`返回主窗口`,detached:`此任务已在另一个窗口中打开。`,focus:`显示任务窗口`,loading:`正在移动任务…`,failed:`无法移动此任务。草稿已保留。`,dismiss:`关闭提示`,wrongMission:`请先打开此任务,再移动窗口。`,finishPending:`请先完成当前操作,或保存或取消消息或截图,再移动任务。`},se={heading:`Rail 启动`,rail:`Rail {{index}}`,newRail:`新建 Rail`,play:`启动`,launching:`正在启动…`,dismiss:`忽略`,playHint:`随意调整后,按“启动”以你自己的授权启动。`,pending:`正在准备启动提案…`,unreadable_one:`无法读取代理的启动提案。`,unreadable_other:`无法读取 {{count}} 个启动提案。`,effortDefault:`默认推理强度`,profileNone:`无配置文件`,status:{proposal:`提案`,ready:`就绪`,blocked:`需要关注`,loading:`检查中…`},availability:{free:`空闲`,busy:`运行中`,pending_decision:`等待决定`,on_review:`审核中`},fields:{rail:`Rail`,newRailName:`新 Rail 名称(可选)`,railName:`Rail 名称`,addSpec:`添加 Spec`,removeSpec:`移除 #{{id}}`,loop:`Loop`,engine:`AI 引擎`,model:`模型`,effort:`推理强度`,profile:`代理配置文件`,targetPr:`目标 PR #`,baseBranch:`基础分支`},notes:{railMissing:`Rail {{index}} 已不存在。请选择其他 Rail 或新建一个。`,railBusy:`Rail {{index}} 当前{{state}},无法在此启动。`,useFree:`使用 Rail {{index}}`,specsDropped:`已不在此项目中:{{ids}}`,engineStale:`本机未检测到 {{engine}},将使用 {{fallback}}。`,modelStale:`{{model}} 不可用,将使用 {{fallback}}。`},block:{noProject:`此任务未固定到任何项目。`,loadFailed:`无法加载项目的轨道、规格或仓库。`,noSpecs:`至少添加一个 Spec 才能启动。`,railLimit:`{{max}} 个 Rail 已全部存在,且没有空闲的。`},errors:{tickets_in_flight:`其中一个 Spec 已在其他 Rail 上运行。`,pr_decision_pending:`此 Rail 正在等待 PR 决定。`,rail_limit_reached:`项目已达到 Rail 数量上限。`,invalid_base_branch:`该基础分支在本地不存在。`,base_branch_requires_isolation:`基础分支需要 worktree 隔离(带有提交的 git 仓库)。`,target_pr_requires_pr_mode:`目标 PR 需要 worktree 隔离(带有提交的 git 仓库)。`,invalid_response:`服务器返回了意外的响应。`,scope_save_failed:`无法保存规格的仓库。`,repository_scope_incomplete:`本次运行缺少规格所需的仓库。请检查上方的分配。`,rail_not_empty:`该轨道已有 spec`,flow_freeze_failed:`无法为移交保存 Flow 的更改`,flow_head_mismatch:`移交过程中 Flow 发生了变化。请重试`,flow_already_handed_off:`此 Flow 已交给 Rail`,flow_handoff_not_adopted:`Rail 已启动,但没有接管你 Flow 的更改`,illegal_transition:`Flow 的状态已发生变化`,feature_unavailable:`Flow 不可用`,daily_budget_exceeded:`已达到每日预算,未启动任何任务。`,review_wip_limit_reached:`已达到评审上限,未启动任何任务。`,repository_has_no_commits:`此仓库还没有任何提交。请先创建一次初始提交,以便 Specrails 创建项目的隔离副本。`},stub:{launched:`已启动 → Rail {{rail}}`,dismissed:`提案已忽略`,viewRun:`查看运行`,goToCard:`前往卡片`,goToCardTitle:`跳转到此次启动的实现卡片`,viewRunTitle:`打开该 run 的实时日志`},followUp:{title:`解决 PR 上的 {{count}} 条评审意见`,excluded:`不要改动`,verification:`验证`,specUntouched:`不会编辑 spec 及其 Jira 描述。范围随本次运行一起传递。`,source:{pasted:`粘贴`,github:`来自 GitHub`}},addenda:{rides_one:`{{count}} 个待处理附录将随本次启动传递:`,rides_other:`{{count}} 个待处理附录将随本次启动传递:`},repositories:{launch:`本次运行的仓库`,launchHint:`包含规格所需的仓库。你可以添加项目中的其他仓库。`,assignments:`各规格分配的仓库`,edit:`编辑`,editSpec:`编辑 #{{id}} 的仓库`,spec:`规格 #{{id}} 的仓库`,saveHint:`保存后,此规格未来的运行也会使用更新后的仓库分配。`,save:`保存仓库`,cancel:`取消`,finishEditing:`运行前请保存或取消仓库编辑。`,missing:`缺少必需的仓库:{{names}}。请在上方选中它们;如果规格的目标已变更,请编辑仓库分配。`,unavailable:`所选仓库无法用于实现:{{names}}。请更新选择或规格的仓库分配。`,refresh:`刷新`,retry:`重新加载`,checkScope:`运行前请检查仓库选择。`},triageLabel:`分诊`,handOff:{newRail:`新建的 Rail`,changeHow:`更改方式`}},ce={status:{running:`运行中`,paused:`已暂停`,succeeded:`已成功`,failed:`已失败`,stalled:`已停滞`,cancelled:`已取消`,unknown:`未知`,changes_requested:`需要修改`,returned:`已回到 Flow`},title:{running:`正在项目检出目录中实现…`,paused:`需要人工决定`,succeeded:`实现已完成`,failed:`实现失败`,stalled:`实现已停滞`,cancelled:`运行已取消`,unknown:`运行状态未知`,changes_requested:`审阅者要求修改`,returned:`已回到 Flow`},noDeliveryNote:`无 PR 阶段:此项目没有 git 仓库或提交,因此工作已直接落在项目文件夹中。`,noDeliveryHint:`直接在项目文件夹中运行(没有 git 仓库或提交,因此不会提议 PR)。`,failure:{title:`停止原因`,step:`步骤 {{step}}`,unit:`#{{ticket}} · {{code}}`},actions:{resume:`继续`,approve:`批准`,recover:`恢复并重试`,relaunch:`重新启动`},relaunchSent:`Rail {{index}} 已重新启动。新卡片将跟踪此运行。`,relaunchFailed:`无法重新启动该 Rail`,relaunchBlockedActive:`该 Rail 仍有活动的运行`,review:{title:{review:`审阅者要求修改`,check:`检查仍未通过`},score:`评分 {{score}}`,issues_one:`{{count}} 个问题`,issues_other:`{{count}} 个问题`,showAll:`显示全部({{count}})`,showLess:`收起`,omitted_one:`运行的评审中另有 {{count}} 项`,omitted_other:`运行的评审中另有 {{count}} 项`,failingChecks:`失败`,check:`{{command}} · 退出码 {{code}}`,next:`自动修正轮次没有解决这些问题。回到 Flow 与智能体一起解决,或从相同的 Flow 分支重新启动。`,returned:`已回到 Flow:你的更改已连同评审返回其 Flow。请在 Flow 条带中继续。`}},le={briefing:{title:`自动故障简报`}},ue={open:`拆分视图`,menu:`对话操作`,add:`在拆分视图中添加对话`,close:`关闭拆分视图`,loadFailed:`无法加载此对话。`,retry:`重试`},de={label:`模型和推理强度`,resetEffort:`重置推理强度`,back:`返回`},fe={0:`这次的任务是什么?`,1:`我们从哪个任务开始?`,2:`今天的任务是什么?`,3:`我们的下一个任务是什么?`,4:`你想通过这次任务实现什么?`,5:`我们启动哪个任务?`,6:`这次任务从哪里开始?`,7:`这次任务的目标是什么?`,8:`这次任务要构建什么?`,9:`这次任务要改进什么?`,10:`这次任务要应对什么挑战?`,11:`这次任务的第一步是什么?`,12:`说说你心中的任务…`,13:`描述你的下一个任务…`,14:`让我们规划你的下一个任务…`,15:`这次任务应该完成什么?`,16:`你想完成哪个任务?`,17:`这次任务要解决什么?`,18:`怎样才算这次任务成功?`,19:`新任务已准备就绪。开始吧?`},pe={title:`代理`,working_one:`{{count}} 个工作中`,working_other:`{{count}} 个工作中`,done_one:`{{count}} 个已完成`,done_other:`{{count}} 个已完成`,ended_one:`{{count}} 个已停止`,ended_other:`{{count}} 个已停止`,phase:{running:`工作中`,idle:`已完成`,failed:`失败`,stopped:`已停止`,killed:`已强制终止`,interrupted:`已中断`},reason:{user_stop:`由你停止`,host_request:`由应用停止`,restart:`重启时丢失`,shutdown:`应用已关闭`,host_lost:`代理主机丢失`,crashed:`进程崩溃`,stalled:`停止响应`,limit:`达到上限`,project_removed:`项目已移除`,evicted:`为节省资源而释放`,policy:`子代理已停用`},expand:`显示 {{name}} 的活动`,collapse:`隐藏活动`,elapsedAria:`已运行 {{elapsed}}`,loadingActivity:`正在加载活动…`,noActivity:`暂无活动`,activityFailed:`无法加载活动`,moreActivity:`加载更多`,tokens:`{{tokens}} 个 token`,toolUses_one:`{{count}} 次工具调用`,toolUses_other:`{{count}} 次工具调用`,stop:`停止`,stopOne:`停止 {{name}}`,stopAll:`停止所有代理`,stopFailed:`无法停止代理`,relaunch:`重新启动`,relaunchHint:`起草一条消息,请代理重新启动这项工作`,relaunchDraft:`请为以下任务重新启动后台代理:{{description}}`,continuation:`在后台代理完成后继续`,continuationSystem:`在后台工作完成后继续`,backgroundTurn:`代理正在查看后台结果…`,deferred:`设置更改将在后台代理完成后应用。`,applyNow:`停止代理并立即应用`,policyUnenforceable:`{{provider}} 无法关闭子代理。请在项目设置中启用“允许子代理”,或为此任务改用其他提供商。`,result:`结果`,count_one:`{{count}} 个代理`,count_other:`{{count}} 个代理`,finishedIn:`{{elapsed}} 内完成`,delegatedHint:`由 Specrails 在 {{provider}}({{model}})上启动;其费用单独计算。`},me={host_degraded:`由于多次失败,此项目的 Core 会话不可用,因此本轮使用了经典方式运行(没有后台子代理)。解决原因后请重试。`,journal_locked:`另一个 Specrails Desktop 实例正在使用此项目的代理会话,因此本轮使用了经典方式运行。请关闭另一个实例后重试。`,policy:{subagent_blocked:`尽管此项目已关闭子代理,提供商仍启动了一个子代理;它已被停止。`},retry:`重试`,retryFailed:`仍不可用。请查看应用日志了解原因。`,dismiss:`关闭`,subagents:{delegation_unsupported:`{{provider}} 子代理需要更新版本的 Specrails Core,因此此任务的代理将自行启动子代理。`,driver_unavailable:`{{provider}} 在会话运行时中不可用,因此此任务的代理将自行启动子代理。`}},he=`正在准备卡片…`,ge={placeholder:`输入即可打断——智能体会立即调整方向`,send:`打断并发送`,sendHint:`停止当前步骤,立即把你的消息交给智能体`},_e=JSON.parse(`{"missing":{"sessions":"Core 智能体会话已关闭或不可用","flowSessions":"你的 Specrails Core 还不能打断正在运行的智能体","deriveChange":"你的 Specrails Core 还不能从代码推导 spec"},"errors":{"generic":"Flow 无法完成该操作,请重试。","network":"无法连接 Specrails。","feature_unavailable":"当前安装的 Specrails Core 不支持 Flow。","flow_already_open":"此任务已有一个 Flow。请先恢复或丢弃它。","illegal_transition":"Flow 的状态已发生变化。请刷新后重试。","flow_worktree_missing":"此 Flow 的项目副本已不存在。继续之前请检查 Flow 分支。","flow_repository_required":"选择此 Flow 运行所在的仓库。","flow_repository_not_git":"Flow 需要 Git 仓库来创建分支;普通文件夹不行。请选择一个 Git 仓库。","flow_repository_unknown":"该仓库已不属于此项目。请选择其他仓库。","flow_repository_missing":"此 Flow 的仓库在该项目中已不可用。","rail_not_empty":"该轨道已有 spec。请选择一个空闲且为空的轨道。","flow_already_handed_off":"此 Flow 已交给 Rail。","flow_freeze_failed":"无法为移交保存 Flow 的更改。","flow_head_mismatch":"移交过程中 Flow 发生了变化。请重试。","flow_handoff_not_adopted":"Rail 已启动,但没有接管你 Flow 的更改。","repository_has_no_commits":"此仓库还没有任何提交。请先创建一次初始提交,以便 Specrails 创建项目的隔离副本。","flow_not_found":"此 Flow 已不存在。","flow_failed":"Flow 遇到意外错误,请重试。","conversation_not_found":"此任务已不存在。","conversation_not_pinned":"启动 Flow 前,请先将此任务固定到项目。","flow_not_handed_off":"此 Flow 已不再等待该运行。","flow_rail_unknown":"该运行的 Rail 未知。请从 Flow 条带重新交给 Rail。","flow_return_busy":"该运行正忙于其他操作,请稍后重试。","flow_return_not_allowed":"只有在交付前停止的移交才能回到其 Flow。","flow_return_not_found":"该运行不是 Flow 移交。","flow_return_worktree_mismatch":"该运行没有接管此 Flow 的更改。","spec_in_flow":"该规格已在 Flow 中。打开其任务以继续。","spec_on_rail":"该规格在某条轨道上。请先将其移出轨道,再在 Flow 中开始。","spec_running":"该规格正在轨道上运行。请等待运行结束。","spec_closed":"该规格已完成或已取消。重新打开后才能在 Flow 中处理。","spec_not_found":"该规格已不存在。","invalid_ticket_id":"无法识别该规格。"},"entry":{"heading":"开始 Flow","body":"Specrails 会在专属的 Flow 分支上创建项目的独立副本,智能体可以在其中编写代码。你的主分支不会被改动。","provider":"智能体使用 {{provider}},只在 Flow 的副本中写入。","providerUnknown":"智能体只在 Flow 的副本中写入。","repository":{"label":"仓库","hint":"Flow 在此仓库的独立副本中工作。","choose":"选择此 Flow 运行所在的仓库","loading":"正在加载仓库…","loadFailed":"无法加载项目的仓库。请重试。","suggested":"由智能体建议","noGit":"此项目没有 Git 仓库。Flow 需要它来创建分支。"},"blocked":{"noProject":"将此任务固定到某个项目后才能使用 Flow。","open":"此任务已有一个 Flow。","missing":"Flow 需要更新版本的 Specrails Core:","unavailable":"Flow 目前不可用。","goToFlow":"前往该 Flow"},"cancel":"取消","start":"开始 Flow","starting":"正在开始…","existingSpec":{"label":"规格 #{{id}}","note":"Flow 基于该规格工作,代理从它开始。交付时,规格会根据所构建内容重写;当前文本会作为评论保留。"}},"offer":{"heading":"你想怎样构建它?","notNow":"暂不","implementReply":"我们先写 spec,再运行 Implement。","mode":{"flow":{"title":"Flow","hint":"在独立的 Flow 分支上一起构建;spec 最后再写。","hintExisting":"在独立的 Flow 分支上一起构建该规格;规格会根据所构建的内容重写。"},"implement":{"title":"Spec + 实现","hint":"先确定 spec,再交给轨道执行。","hintExisting":"按现有内容将该规格交给轨道。"}},"stub":{"flow":"你选择了 Flow","implement":"你选择了 spec + Implement","dismissed":"已忽略建议","handedOff":"Flow 已交给 Rail {{rail}}","state":{"active":"Flow 进行中","paused":"Flow 已暂停","handed_off":"Flow 已交给 Rail","delivered":"Flow 已完成","discarded":"Flow 已丢弃","needs-review":"Flow 需要检查","closed":"Flow 已关闭(保留分支)"},"viewRun":"查看运行"},"why":"智能体为何询问","waitForReply":"智能体完成这条回复后即可选择。","implementExistingReply":"在轨道上实现规格 #{{id}}。"},"bar":{"controls":"Flow 操作","viewChanges":"查看更改","resume":"恢复 Flow","pause":"暂停 Flow","discard":"丢弃","discarded":"已丢弃 Flow","files_one":"{{count}} 个文件","files_other":"{{count}} 个文件","filesTitle":"Flow 分支上更改的文件","costTitle":"此 Flow 各轮的实际费用(以提供商计费为准)","costPartial_one":"{{count}} 轮没有提供商报告的费用,未计入","costPartial_other":"{{count}} 轮没有提供商报告的费用,未计入","needsReview":"此 Flow 的项目副本丢失。没有删除任何内容;继续之前请检查 Flow 分支。","pausedNote":"已暂停。你的更改和 spec 都会保留;随时可以继续。","state":{"active":"Flow","paused":"Flow 已暂停","needs-review":"Flow 需要检查","handed_off":"已交给 Rail","delivered":"已完成","discarded":"已丢弃","closed":"已关闭"},"disabled":{"settling":"请等待 Flow 保存完状态","busy":"请等待当前操作完成","noSpec":"Flow 的 spec 尚未就绪"},"viewChangesStats":"查看更改 · {{files}},+{{additions}} −{{deletions}}","handOff":"交给 Rail","close":"关闭此 Flow","closed":"Flow 已关闭,分支已保留。"},"preview":{"open":"预览","openTitle":"在浏览器中打开 {{url}} 上的应用","stopping":"正在停止…","more":"应用操作","local":"在此电脑上打开","network":"在局域网中打开","localOnly":"仅可从此电脑访问。如需在手机上打开,请让智能体以局域网公开方式重新启动。","stop":"停止应用","stopFailed":"无法停止应用"},"discard":{"title":"丢弃这个 Flow?","body":"丢弃会删除以下全部内容,且无法撤销:","cancel":"保留 Flow","confirm":"丢弃 Flow","lossFiles_one":"{{count}} 个已更改文件","lossFiles_other":"{{count}} 个已更改文件","lossNoChanges":"尚无已更改文件","lossUnknown":"Flow 分支上的所有更改","lossSpec":"看板上的占位 spec"},"changes":{"title":"Flow 更改","subtitle":"分支 {{branch}} 与起点的对比","subtitleNoBranch":"与 Flow 起点对比的更改","refresh":"刷新","loadFailed":"无法加载更改。","empty":"暂无更改。","status":{"added":"新增","modified":"已修改","deleted":"已删除","renamed":"已重命名","untracked":"新文件,未跟踪"}},"handOff":{"heading":"把这个 Flow 变成经过评审的 PR","loop":"Flow 移交","launch":"启动","notYet":"暂不","engineFallback":"{{provider}} 无法在此设备上运行 Flow 移交,因此已选择该 Rail 的默认引擎。","cost":"目前已花费 {{cost}}","costUnknown":"尚无计费成本","line_one":"{{rail}} 会把你更改的 1 个文件变成经过评审的 PR。即使失败,你的工作也不会丢失。","line_other":"{{rail}} 会把你更改的 {{count}} 个文件变成经过评审的 PR。即使失败,你的工作也不会丢失。","lineNoCount":"{{rail}} 会把你的更改变成经过评审的 PR。即使失败,你的工作也不会丢失。"},"review":{"backToFlow":"回到 Flow","backToFlowHint":"以相同的更改重新打开此 Flow;智能体会在下一轮收到评审","relaunch":"重新运行","relaunchHint":"使用相同的 Flow 分支、Rail 和引擎重试","returned":"已回到 Flow。智能体已收到评审。","relaunched":"已在 Rail {{index}} 上重新启动","returnFailed":"无法回到 Flow:{{detail}}","relaunchFailed":"无法重新启动:{{detail}}","backToFlowFailureHint":"以相同的更改重新打开此 Flow;智能体会在下一轮收到错误","returnedFailure":"已回到 Flow。智能体已收到错误。"},"failure":{"step":{"derive":"无法根据你的更改编写 spec","verify":"无法验证你的更改","review":"评审未能完成","fix":"自动修复未能完成","archive":"无法归档完成的 spec","settle":"无法交还结果","unknown":"移交在完成前停止了"},"cause":"原因:","next":"你的工作完好无损。回到 Flow 后,智能体会收到该错误。","nextReturned":"你的工作完好无损。已回到 Flow,智能体已收到该错误。","returned":"已回到 Flow","technical":{"title":"技术细节","repository":"仓库","step":"步骤","status":"状态","failure":"失败","detail":"详情"}},"announce":{"active":"Flow 已启用:智能体在 Flow 分支上写入。","paused":"Flow 已暂停。","needs-review":"Flow 需要检查:它的项目副本丢失了。","handed_off":"Flow 已交给 Rail。","delivered":"Flow 已交付。","discarded":"Flow 已丢弃。","returned":"已回到 Flow:工作连同移交中发现的问题一起返回。","closed":"Flow 已关闭,分支已保留。"},"strip":{"label":"Flow","ready":"可以变成 PR 了","launching":"正在交给 Rail…","launchingOn":"正在交给 {{rail}}…","stillHandingOff":"仍在交给 {{rail}}…","refresh":"刷新","step":{"derive":"正在根据你的更改编写 spec","verify":"正在验证你的更改","review":"正在评审更改","fix":"正在按评审意见修复","archive":"正在归档完成的 spec","settle":"正在交还结果"},"headline":"{{state}} · {{files}}"},"mode":{"chip":"Flow","description":"Flow 模式:智能体在 Flow 分支上写入,而不是你的主分支","placeholder":"告诉智能体要在这个 Flow 中修改什么…"},"panel":{"branch":"分支","changes":"更改","cost":"目前成本","actions":"更多 Flow 操作"},"close":{"title":"关闭此 Flow?","body":"对话将退出 Flow。不会删除任何内容:","keptBranch":"保留分支:","keptSpec":"规格保留在看板上,但不再显示“Flow 中”标签","cancel":"暂不","confirm":"关闭 Flow,保留分支"},"startFromSpec":{"action":"在 Flow 中开始","hint":"在任务中与代理在独立的 Flow 分支上构建该规格","starting":"正在启动 Flow…","failed":"规格 #{{id}} 无法在 Flow 中开始","repository":{"title":"这个 Flow 在哪里运行?","body":"此项目有多个 Git 仓库。Flow 会在你所选仓库的独立副本中、在自己的分支上工作。","fromSpec":"规格中指定"},"blocked":{"noProject":"打开一个项目以使用 Flow","unavailable":"已安装的 Specrails Core 不支持 Flow","inFlow":"已在 Flow 中","closed":"已完成或已取消的规格无法在 Flow 中开始","running":"正在轨道上运行","onRail":"在轨道上:请先将其移出","missionInFlow":"该任务已有 Flow"}}}`),ve={title:`审阅者的要求`,noFindings:`移交在交付前停止;你的更改已完好地回到此 Flow。`,coverage:`spec 说明了 {{files}} 个已更改文件中的 {{explained}} 个`,unexplained:`未被任何需求说明的文件`,moreFiles_one:`另有 {{count}} 个文件`,moreFiles_other:`另有 {{count}} 个文件`,next:`Flow 智能体现在开始处理;你可以随时引导或停止它。`,automaticTurn:`自动轮次 · 回到 Flow`,titleFailure:`移交停止的原因`},ye={providerInactivity:`提供方长时间没有响应,本轮已结束。请重新发送消息以继续。`,toolInactivity:`某个工具运行过久且提供方没有任何活动,本轮已结束。请重新发送消息以继续,或让智能体拆分该步骤。`,generic:`智能体本轮执行失败。`},be={title:`Flow 已交付`,pr:`打开 PR`,prNumber:`PR #{{number}}`,specRewritten:`已根据你构建的内容重写 spec`,specKept:`spec 重写未完成;已保留其草稿`,change:`spec 变更 {{change}}`,changeArchived:`spec 变更 {{change}} 已归档`,jira:`Jira 工单 {{key}}`,jiraPending:`正在创建 Jira 工单`},xe={launching:`正在 {{rail}} 上启动…`,running:`工作中`,paused:`已暂停。等待你处理`,pausedReason:`已暂停:{{reason}}`,decision:{approval:`等待你的批准`,changes:`审阅者要求修改`,on_review:`可供你评审`,pr_draft:`草稿 PR 已可发布`,no_changes:`已完成,没有更改`,pr_closed:`PR 未合并即被关闭`,generic:`等待你的决定`},failed:{generic:`因错误而停止`,implementation_failed:`实现失败`,stalled:`运行停滞`,stuck:`运行卡住了`,provider_limit:`已达到提供商的用量上限`,launch_failed:`运行无法启动`,delivery_failed:`无法交付结果`,push_failed:`无法推送分支`,pr_failed:`无法创建 PR`},progressAria:`已完成 {{done}}/{{total}} 个运行`,costTitle:`到目前为止提供商实际计费的成本`,costPartial:`部分运行尚无计费成本,未计入`,costNone:`暂无计费成本`,state:{launching:`启动中:`,running:`运行中:`,decision:`等待你:`,failed:`失败:`,paused:`已暂停:`,info:`供参考:`},proposal:`提议为 {{tickets}} 启动`,proposalNoTickets:`已提议启动`,proposalLabel:`提议`,panelLabel:`{{run}} 详情`,showDetails:`显示详情`,withShortcut:`{{label}}({{keys}})`,cycleHint:`切换运行:{{keys}}`,hideDetails:`隐藏详情`,switcher:`进行中的运行`,more:`更多运行({{count}})`,announce:{settled:`{{run}} 已结束`,shown:`正在显示 {{run}}:{{state}}`,needsYou:`{{run}} 需要你处理`},event:{launched:`已在 {{run}} 上启动`,failed:`{{run}} 失败:{{reason}}`,openRun:`查看运行`,proposed:`已提议启动。等待你处理`,backToFlow:`回到 Flow`,flowReturned:`{{run}} 已把工作退回 Flow`,delivered:`已交付:PR {{pr}}`,deliveredNoPr:`已在 {{run}} 上交付`,superseded:`{{run}} 已被更新的运行取代`,discarded:`{{run}} 已被丢弃`,changes:`{{run}}:审阅者要求修改`},needsYou:`需要你处理`,opensCard:`打开该运行的卡片,在那里确认`,open:{decision:`打开决定`,failed:`查看失败原因`,paused:`查看暂停原因`},attention:{failed:`需要处理:有运行失败`}},Se={entered:`进入 Flow`,left:`离开 Flow`,turnMark:`Flow`,reason:{started:`已开始`,returned:`从 Rail 返回`,handed_off:`已交给 Rail`,discarded:`已丢弃`,closed:`已关闭,分支已保留`}},Ce=`未读`,we=`{{count}} 条未读`,Te=`代理工作中`,Ee=`无法删除该任务,请重试。`,De={label:`界面模式`,mission:`任务`,board:`看板`,current:`当前模式:{{mode}}。点击切换。`},Oe={sendFailed:`无法发送消息。`,stopFailed:`无法停止智能体。`,mcpEnableFailed:`无法启用 MCP。`,removeAttachmentFailed:`无法移除附件。`,sendFailedHint:`你的文本已放回输入框,按 Enter 重试。`,providerSwitchFailed:`无法切换提供方,之前的提供方仍在使用中。`,modelSwitchFailed:`无法切换模型,之前的模型仍在使用中。`,effortSwitchFailed:`无法切换推理强度,之前的设置仍在使用中。`},ke={ariaLabel:`发送给智能体的消息`,dropFiles:`拖放文件以添加附件`,uploading:`正在上传…`},Ae={ariaLabel:`任务对话`,agentWorking:`智能体正在工作…`,agentReplied:`智能体已回复`,newMessages:`新消息`},je={you:`你`,agent:`智能体`},Me={groupLabel:`建议回复`,shortcut:`Alt+{{n}}`},Ne=`已复制`,Pe=`复制代码`,Fe=`回复,或输入 @ 引用…`,Ie=`发送 (Enter) · 换行 (Shift+Enter)`,Le=`撤销`,Re=`该提供方暂不支持读取图片,{{count}} 张图片未添加`,ze={reference:`引用规格`,action:`运行操作`,plan:`规划新规格`,planSpec:`帮我规划一个新规格:`},Be=`⇧⇥ 更改智能体的权限 · ↑ 调出上一条提示`,Ve={arrived:`已送达评审 — PR #{{number}}`,arrivedNoNumber:`已送达评审`,openPr:`打开 PR`},He={greeting:`{{project}} 接下来要交付什么?`,greetingNoProject:`接下来要交付什么?`,statusTodo_one:`{{count}} 项待办`,statusTodo_other:`{{count}} 项待办`,statusReview_one:`{{count}} 项等待评审`,statusReview_other:`{{count}} 项等待评审`,statusRunning_one:`{{count}} 项运行中`,statusRunning_other:`{{count}} 项运行中`},Ue={title:e,subtitle:t,trigger:n,composerPlaceholder:r,send:i,stop:a,copy:o,attachment:s,maximize:c,restore:l,minimize:u,close:d,newConversation:f,emptyTitle:p,emptyHint:m,thinking:h,connecting:g,consultingCode:_,size:v,model:y,history:b,queue:x,receipt:S,queueEdit:C,git:w,provider:T,tier:E,approval:D,project:O,palette:k,mission:A,noProvider:j,degraded:M,toolCard:N,error:P,chip:F,newAgent:I,switchToAgent:L,switchToKanban:R,search:z,home:B,favoriteMissions:V,untitled:H,workspace:U,attachFile:W,deleteConversation:G,confirmDeleteConversation:K,addFavoriteConversation:q,removeFavoriteConversation:J,confirmShort:Y,imagesUnsupported:X,effort:Z,prCard:Q,specDraft:$,problemFrame:ee,refs:te,header:ne,emptyTitleCodeRain:re,activity:ie,backgroundProcess:ae,window:oe,railCard:se,runCard:ce,runFailure:le,split:ue,runtimeSelector:de,missionPlaceholders:fe,subagents:pe,sessionNotice:me,cardPending:he,interrupt:ge,flow:_e,flowReturn:ve,turnErrors:ye,flowDelivered:be,runStrip:xe,flowBoundary:Se,unread:Ce,unreadCount:we,live:Te,deleteFailed:Ee,modeSwitch:De,errors:Oe,composer:ke,conversation:Ae,message:je,options:Me,copied:Ne,copyCode:Pe,composerReplyPlaceholder:Fe,sendHint:Ie,undo:Le,imagesUnsupportedCount:Re,starter:ze,emptyLegend:Be,delivery:Ve,missionHome:He};export{ie as activity,q as addFavoriteConversation,D as approval,W as attachFile,s as attachment,ae as backgroundProcess,he as cardPending,F as chip,d as close,ke as composer,r as composerPlaceholder,Fe as composerReplyPlaceholder,K as confirmDeleteConversation,Y as confirmShort,g as connecting,_ as consultingCode,Ae as conversation,Ne as copied,o as copy,Pe as copyCode,Ue as default,M as degraded,G as deleteConversation,Ee as deleteFailed,Ve as delivery,Z as effort,m as emptyHint,Be as emptyLegend,p as emptyTitle,re as emptyTitleCodeRain,P as error,Oe as errors,V as favoriteMissions,_e as flow,Se as flowBoundary,be as flowDelivered,ve as flowReturn,w as git,ne as header,b as history,B as home,X as imagesUnsupported,Re as imagesUnsupportedCount,ge as interrupt,Te as live,c as maximize,je as message,u as minimize,A as mission,He as missionHome,fe as missionPlaceholders,De as modeSwitch,y as model,I as newAgent,f as newConversation,j as noProvider,Me as options,k as palette,Q as prCard,ee as problemFrame,O as project,T as provider,x as queue,C as queueEdit,se as railCard,S as receipt,te as refs,J as removeFavoriteConversation,l as restore,ce as runCard,le as runFailure,xe as runStrip,de as runtimeSelector,z as search,i as send,Ie as sendHint,me as sessionNotice,v as size,$ as specDraft,ue as split,ze as starter,a as stop,pe as subagents,t as subtitle,L as switchToAgent,R as switchToKanban,h as thinking,E as tier,e as title,N as toolCard,n as trigger,ye as turnErrors,Le as undo,Ce as unread,we as unreadCount,H as untitled,oe as window,U as workspace};
|