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={title:`Añadir proyecto`,description:`Registra un directorio de proyecto para gestionarlo desde Specrails.`,noProviderDetected:`No se ha detectado ningún CLI de IA. Instala primero Claude o Codex.`,pathLabel:`Ruta del proyecto`,pathPlaceholder:`/Users/yo/mi-proyecto`,pathHint:`Ruta absoluta a la raíz del proyecto`,browseForFolder:`Buscar carpeta`,selectProjectFolder:`Seleccionar carpeta del proyecto`,nameLabel:`Nombre para mostrar`,optional:`(opcional)`,namePlaceholder:`Mi proyecto`,nameHint:`Por defecto, el nombre del directorio`,adding:`Añadiendo...`,submit:`Añadir proyecto`,toolsRequired_one:`Se necesita {{tools}} para añadir un proyecto`,toolsRequired_other:`Se necesitan {{tools}} para añadir un proyecto`,errors:{pathRequired:`La ruta del proyecto es obligatoria`,addFailed:`No se pudo añadir el proyecto`},toasts:{registered:`Proyecto "{{name}}" registrado`},chooser:{description:`Trae un repositorio existente o construye un proyecto nuevo desde una idea.`,existingTitle:`Proyecto existente`,existingDescription:`Registra un repositorio que ya existe en disco.`,newTitle:`Proyecto nuevo`,newDescription:`Describe una idea y recibe un repo inicializado con un backlog del Hito 1.`}},t={corruptedBundle:`bundle dañado — reinstala la app`,notInstalled:`no instalado`,failedToExecute:`encontrado pero no se pudo ejecutar`,failedToExecuteAt:`encontrado en {{path}} pero no se pudo ejecutar`,failedToExecuteWithError:`encontrado pero no se pudo ejecutar ({{error}})`,failedToExecuteAtWithError:`encontrado en {{path}} pero no se pudo ejecutar ({{error}})`,needsMinimum:`{{version}} encontrada — se necesita {{minVersion}}+`,unknownVersion:`desconocida`,installedLabel:`instalado`,verifyError:`No se pudieron verificar las herramientas de desarrollo en local — la instalación lo validará.`,allDetected:`Todas las herramientas necesarias detectadas`,bundleCorruptedTitle:`Bundle de la app dañado`,toolsRequired_one:`{{count}} herramienta de desarrollo necesaria`,toolsRequired_other:`{{count}} herramientas de desarrollo necesarias`,reinstallHint:`Reinstala la app Specrails para restaurar las herramientas incluidas.`,installMissingHint:`Instala las herramientas que faltan para continuar.`,moreInfo:`Más información`,bundledBadge:`incluida`,optional:`opcional`,ghNoAuth:"Sin sesión — ejecuta `gh auth login`"},n={title:`Instalar herramientas de desarrollo`,description:`SpecRails necesita Node.js, npm, npx y Git en el PATH. Elige el snippet de tu SO, ejecútalo y pulsa "Ya lo he instalado, volver a comprobar".`,darwin:{intro:`Homebrew te da ambas herramientas en una línea. Si no tienes brew, usa las descargas oficiales.`,installNodeGit:`Instalar Node.js y Git con Homebrew`},win32:{intro:`Winget viene incluido en Windows 11 y en las versiones recientes de Windows 10. Abre PowerShell o Terminal y ejecuta:`,installNode:`Instalar Node.js LTS`,installGit:`Instalar Git`,note:`Tras la instalación, reinicia Specrails para que Windows actualice el PATH.`},linux:{intro:`Usa el gestor de paquetes de tu distro:`,debian:`Debian / Ubuntu`,fedora:`Fedora / RHEL`},links:{nodeOfficial:`Node.js (oficial)`,gitOfficial:`Git (oficial)`,gitWindows:`Git para Windows (oficial)`},showOtherPlatforms:`Mostrar otras plataformas`,hideOtherPlatforms:`Ocultar otras plataformas`,recheck:`Ya lo he instalado, volver a comprobar`,diagnostics:{copy:`Copiar diagnóstico`,copied:`Diagnóstico copiado`,failed:`Error al copiar`},corrupted:{title:`Bundle de la app dañado`,description:`No se pudieron verificar una o más herramientas incluidas (Node.js, Git).`,body:`Esta herramienta viene incluida con la app Specrails y no puede instalarse por separado. Si ves este mensaje, el bundle de la app puede estar dañado. Reinstala Specrails.`,download:`Descargar la última versión`}},r={title:`Bienvenido a <spec>spec</spec><rails>rails</rails>`,tagline:`Specs dentro, pull requests revisadas fuera.`,description:`Specrails gestiona varios proyectos desde una única interfaz. Añade tu primer proyecto para empezar.`,addFirstProject:`Añade tu primer proyecto`,jiraHint:`Conecta cada proyecto a su propio tablero de Jira — las specs se sincronizan en ambos sentidos.`,mcpHint:`Conecta herramientas de IA externas a Specrails mediante un servidor MCP local seguro: activado por defecto, gestiónalo en Ajustes → MCP.`,agentChatHint:`Opera Specrails conversando — un agente integrado gestiona specs, rails y analíticas por ti a través del MCP local. Ábrelo desde la burbuja o con ⌘⇧A.`,localEnginesHint:`¿Solo un modelo local? Añade un endpoint compatible con OpenAI en Ajustes → Specrails Agents y todas las superficies — rails, chat, misiones — lo usarán por defecto.`,replayTour:`Repetir tour`},i=JSON.parse(`{"productTour":"Tour del producto","stepCount":"Paso {{current}} de {{total}}","goToStep":"Ir al paso {{step}}: {{label}}","stepLabel":"Paso {{step}}","skipTour":"Saltar el tour","getStarted":"Empezar","flow":{"architect":"Arquitecto","developer":"Desarrollador","reviewer":"Revisor","describe":"Describe","specs":"Specs","rails":"Rails","review":"Revisa y fusiona","yourReview":"Tu revisión","blueprint":"Blueprint","approve":"Aprobar","m1Specs":"Specs del Hito 1","milestones":"Hitos"},"language":{"nav":"Idioma","title":"Elige tu idioma","subtitle":"Specrails habla tu idioma","intro":"Selecciona el idioma en el que quieres la interfaz. Se aplica al instante — este tour incluido.","note":"Puedes cambiarlo cuando quieras en Ajustes → Idioma."},"theme":{"nav":"Tema","title":"Elige tu estilo","subtitle":"Temas integrados, aplicados al instante","intro":"Decide qué aspecto tendrá Specrails — el tema se aplica en cuanto haces clic.","note":"Puedes cambiarlo cuando quieras en Ajustes → Apariencia."},"welcome":{"nav":"Bienvenida","title":"Bienvenido a Specrails","subtitle":"Tu cabina local para entregar software con agentes de IA","intro":"Specrails convierte una idea en código entregado, y te deja <b>ver, dirigir y confiar</b> en cada paso. Describe lo que quieres, obtén specs precisas, ejecútalas en rails con Claude Code o Codex y decide qué fusionar. Nada se fusiona sin ti.","coreLoopLabel":"El bucle central","flowCaption":"<b>Describe → Specs → Rails → Revisa y fusiona</b>. Cada paso se transmite en vivo y cada resultado espera tu decisión.","missionLabel":"Modo Misión: el predeterminado","missionBody":"Una conversación gobierna toda la app: el agente redacta specs, lanza rails, consulta el gasto y te entrega tarjetas de decisión. <b>Tú hablas, él opera.</b>","boardLabel":"Modo Tablero: a un clic","boardBody":"La vista clásica: tablero de specs, rails, trabajos, analítica. Cambia entre ambos con el interruptor de la barra lateral izquierda: <b>mismos proyectos, mismos datos</b>.","localNote":"<b>100 % local · un solo usuario · sin cuentas.</b> Todo corre en tu máquina. Tu código nunca sale del portátil a menos que <i>tú</i> lances un agente sobre él.","tourNote":"Este recorrido rápido repasa todo lo que puede hacer la app: unos dos minutos."},"mission":{"nav":"Modo Misión","title":"Habla; el agente opera","subtitle":"El modo Misión es la superficie predeterminada","intro":"En el <b>modo Misión</b> toda la ventana es una conversación con un agente que maneja Specrails a través de sus propias <b>herramientas MCP</b>: «lanza las tres specs de mayor prioridad», «¿cuánto gasté esta semana?», «escríbeme una spec para el modo oscuro». Todo lo que hace es en vivo: rails, specs y tarjetas se actualizan mientras trabaja.","missionsLabel":"Misiones y proyectos","missionsBody":"Cada conversación es una misión anclada a un proyecto (o a Inicio para todo). Cambia de misión desde la cabecera y envía mensajes a mitad de turno: se encolan y se ejecutan en orden.","levelsLabel":"Tú llevas la correa","levelsBody":"Un nivel en vivo, <b>Observar → Editar → Operar → Autónomo</b>, que se recorre con <shift>Shift</shift> <tab>Tab</tab>, limita hasta dónde puede llegar. Nunca actúa por encima del nivel que fijes.","cardsLabel":"Tarjetas de decisión","cardsBody":"Los lanzamientos aparecen como tarjetas en vivo fijadas sobre el composer: progreso del rail y luego Crear PR / Integrar en local / Descartar, con una Revisión en lenguaje llano. Los números de spec, trabajos y loops de las respuestas son clicables.","workspaceLabel":"Un workspace al lado","workspaceBody":"La barra lateral derecha abre Blueprint, Trabajos, Analítica, un navegador integrado, la terminal y el explorador de código junto a la conversación, sin cambiar de contexto.","mcpLabel":"Funciona sobre el MCP local","mcpBody":"El agente trabaja a través del servidor MCP embebido de Specrails, <b>activado por defecto</b> y solo en loopback. Ese mismo servidor permite que tus propias herramientas (Claude Desktop, Cursor…) manejen Specrails; gestiónalo en Ajustes → MCP."},"builder":{"nav":"Proyecto nuevo","title":"Arranca un proyecto desde una idea","subtitle":"El Constructor: blueprint, specs e hitos antes de que exista una línea de código","intro":"Añadir proyecto → <b>Nuevo</b> convierte al agente en el <b>Constructor de proyectos</b>. Describe la idea; te entrevista brevemente (o lo decide todo con un clic), propone producto, flujo principal, plataforma, stack e hitos, y tú apruebas o retocas.","flowLabel":"De la idea al backlog","flowCaption":"El commit crea el repositorio, el workspace y el backlog del Hito 1; opcionalmente también un repo privado en GitHub.","cardsLabel":"Decisiones de un clic","cardsBody":"«Sorpréndeme» y «Aprobar y generar specs» aparecen como tarjetas en el hilo; cada decisión que tomas queda fija ahí como registro.","specsLabel":"Specs premium, auditadas con honestidad","specsBody":"Las specs del Hito 1 se escriben al completo de dos en dos y luego se audita todo el lote (problema, solución, alcance, consideraciones técnicas, seis o más criterios de aceptación) y una puerta determinista bloquea cualquier spec pobre.","milestonesLabel":"Hitos sobre rails","milestonesBody":"Lanza el Hito 1 y corre como rails de hasta tres specs, cada uno apilado sobre la rama del anterior. Los <b>puntos de control por oleada</b> preguntan antes de cada rail siguiente, o activa continuar automáticamente.","progressLabel":"Progreso en vivo","progressBody":"El panel Blueprint muestra recuentos reales (entregadas, en revisión, hechas), nunca «completo» mientras algo esté sin fusionar. Los hitos posteriores se generan contra el repositorio real."},"authorSpecs":{"nav":"Redactar specs","title":"Convierte ideas en specs","subtitle":"Seis formas de capturar exactamente lo que quieres construir","intro":"Una <b>spec</b> es la descripción de un trabajo que quieres hecho. Redáctala como convenga al momento: desde una línea hasta que el agente investigue por ti.","agentLabel":"Pídesela al agente","agentBody":"En modo Misión, describe el cambio. El agente lee primero el código real, redacta una super spec como tarjeta en vivo y la guarda cuando tú lo digas.","exploreLabel":"Explorar: conversa","exploreBody":"Describe lo que quieres en un chat; un borrador en vivo se reconstruye en cada turno. Un selector de presets ajusta cuánto contexto del proyecto ve la IA: desde solo tu mensaje hasta todo el código más tus servidores MCP.","quickLabel":"Rápida: de una vez","quickBody":"¿Ya sabes lo que quieres? Genera una spec completa en un solo turno. Opcionalmente enriquécela con una Capa de Contrato: nombres exactos, formas de datos, invariantes y lista de archivos para que los agentes no reinventen nada.","websiteLabel":"Desde una web","websiteBody":"Abre un navegador integrado. Selecciona un elemento o dibuja un rectángulo, y la captura, el DOM y el CSS aplicado se convierten en adjuntos.","smashLabel":"SMASH a una épica","smashBody":"Explota una spec grande en una familia de sub-specs más pequeñas con un clic; cada hija lleva un resumen breve en su tarjeta.","draftsLabel":"Borradores y seguir editando","draftsBody":"Aparca una exploración en curso como spec borrador y retómala después; reabre cualquier spec en Explorar para seguir refinándola."},"rails":{"nav":"Rails y revisión","title":"Ejecuta la pipeline sobre rails","subtitle":"Carriles aislados y una revisión que de verdad se puede leer","intro":"Los <b>rails</b> son carriles de ejecución: hasta doce, creados bajo demanda. Suelta specs en un rail y pulsa <play>▶ Play</play>, o <b>Lanzar todo</b> los rails libres en paralelo. Cada ejecución trabaja en su propio worktree de git, nunca en tu checkout.","jobLabel":"Qué hace cada ejecución","flowCaption":"Cada fase se transmite en vivo. Al final el trabajo se queda en su rama y la app te pregunta qué hacer: Specrails produce PRs, nunca fusiona por su cuenta.","reviewLabel":"Revisión de PR que pregunta primero","reviewBody":"Las specs terminadas quedan <b>En revisión</b>. Tú eliges: crear un PR en borrador, integrar en local (sin remoto) o descartar. Fusionar las pasa a Hecho.","packetLabel":"Paquete de revisión","packetBody":"Una página en lenguaje llano por entrega: qué se pidió, qué cambió, qué informa la IA frente a lo que la app verificó, el coste, con Aceptar / Pedir cambios / Descartar.","steerLabel":"Dirige a mitad de la ejecución","steerBody":"Las ejecuciones de Claude son interactivos: pregunta o redirige mientras trabajan, y sigue un progreso narrado en lugar de logs en crudo.","loopsLabel":"Construye tus propios loops","loopsBody":"<b>Loops</b> es un constructor visual: encadena pasos de IA, comandos de shell y un <b>Loop Decider</b> que repite hasta cumplir el objetivo. Implement y Freestyle vienen listos para usar.","profilesLabel":"Perfiles de agente y defaults","profilesBody":"Decide qué agentes corren y qué modelo usa cada uno: por perfil de proyecto, por rail, o una vez para toda la máquina en Ajustes → Agentes de Specrails.","isolationLabel":"Muchos proyectos, aislados","isolationBody":"Cada proyecto tiene su propia base de datos y su cola; tu repositorio queda intacto porque Specrails guarda sus archivos bajo tu carpeta de usuario."},"providers":{"nav":"Tu agente","title":"Trae tu propio agente","subtitle":"Claude Code o Codex como motores de primera clase","intro":"<b>Claude Code</b> o <b>Codex CLI</b> son motores intercambiables tras un mismo contrato. Lo que esté instalado y con sesión iniciada en esta máquina se detecta automáticamente y se ofrece en todas partes; nada que configurar por proyecto.","calloutLabel":"Cuando hay varios instalados","calloutBody":"Elige el motor <b>por spec, por rail, por misión o por lanzamiento de terminal</b>; la app recuerda tu última elección por proyecto. Los costes estimados se marcan con <mono>~</mono>.","table":{"capability":"Capacidad","streamingResume":"Streaming y reanudación de sesión","native":"Nativo","costReporting":"Informe de costes","providerBilled":"Facturado por el proveedor","estimated":"Estimado (~)","unavailable":"No disponible","telemetry":"Telemetría (OTEL)","synthesized":"Sintetizada","agentProfiles":"Perfiles de agentes"}},"cost":{"nav":"Controla el coste","title":"Controla cada céntimo","subtitle":"Cada invocación facturable, registrada y visualizada","intro":"Cada invocación de IA registra su ciclo de vida y proveedor. El uso y el coste quedan no disponibles cuando el proveedor no los informa.","analyticsLabel":"Página de analítica","analyticsBody":"Un hero de burn-rate, línea temporal diaria, top de specs, desglose por modelo y un scatter de coste frente a turnos. Filtra por periodo (7d / 30d / 90d / Todo) y por superficie.","perTicketLabel":"Gasto por spec","perTicketBody":"El detalle de cada spec muestra cuánto costó y cuántos turnos llevó, con enlace directo a la analítica filtrada por esa spec.","honestLabel":"Números honestos","honestBody":"El coste de Claude es el facturado por el proveedor; el coste de Codex puede estimarse y se marca con <mono>~</mono>.","budgetsLabel":"Presupuestos y alertas","budgetsBody":"Define un límite diario y una alerta de coste por trabajo; la aplicación pausa la cola automáticamente cuando cruzas la línea. Exporta lo que quieras a CSV o JSON."},"workspace":{"nav":"Espacio de trabajo","title":"Hazlo tu workspace","subtitle":"Todo lo que necesitas sin salir de la ventana","terminalLabel":"Panel de terminal","terminalBody":"Una terminal real estilo VS Code abajo (<mod>{{mod}}</mod> <j>J</j>): renderizado WebGL, búsqueda, imágenes en línea, rutas por arrastre e integración con la shell. Hasta 10 sesiones por proyecto.","codeLabel":"Explorador de código","codeBody":"Árbol de archivos de solo lectura y visor Monaco con resúmenes de IA en lenguaje llano y una historia de construcción por archivo: qué spec lo tocó, cuándo y por qué.","browserLabel":"Navegador integrado","browserBody":"Abre enlaces, PRs y tu servidor de desarrollo dentro de la app: un panel de navegador nativo en la versión de escritorio, con popups que mantienen los inicios de sesión OAuth.","integrationsLabel":"Integraciones y MCP","integrationsBody":"Un marketplace por proyecto de integraciones MCP (la navegación semántica de Serena viene incluida), más el servidor MCP de Specrails que expone la app a tus propias herramientas de IA.","themesLabel":"Temas y efectos","themesBody":"Seis temas integrados (specrails, dracula, aurora-light, obsidian-dark, code-rain y galaxy) aplicados antes de pintar la interfaz. Ajustes → Efectos activa detalles visuales como el halo de pensamiento del agente.","chatsLabel":"Chats minimizables","chatsBody":"Aparca una sesión de Explorar o de Edición con IA en un chip del dock y retómala después; nunca se pierde entre recargas o cambios de proyecto.","compareLabel":"Compara lado a lado","compareBody":"Arrastra una spec al borde de la pantalla y aparece un selector con tus otras specs: revisa dos juntas, al estilo tableta.","desktopLabel":"Escritorio o navegador","desktopBody":"Usa Specrails en tu navegador o descarga la app de escritorio firmada (macOS y Windows), que incluye su propio servidor, Node, git y la CLI de GitHub."},"companion":{"nav":"Compañera móvil","title":"Llévate Specrails contigo","subtitle":"Specrails Companion — tus pipelines, en tu teléfono","intro":"<b>Specrails Companion</b> es una app web en specrails.dev/companion-app — ábrela en tu teléfono (o añádela a tu pantalla de inicio) para navegar por el tablero de specs, lanzar y detener rails, seguir los logs de los trabajos en directo y echar un vistazo a la analítica. Sin instalación, sin tienda de apps.","localLabel":"100 % local, como todo lo demás","localBody":"Tu teléfono se conecta directamente a este ordenador — peer-to-peer y cifrado (WebRTC). Sin servidores intermedios en la nube, sin cuentas, y tu código nunca sale de tus dispositivos.","downloadLabel":"Ábrela en tu teléfono","downloadHint":"Escanea el código con la cámara de tu teléfono o abre specrails.dev/companion-app en su navegador.","open":"Abrir Specrails Companion","pairLabel":"Emparejar lleva diez segundos","pairBody":"En tu teléfono abre specrails.dev/companion-app y luego, aquí, ve a Ajustes → Compañera móvil → Emparejar compañera web y sigue los pasos en pantalla."},"moveFast":{"paletteLabel":"Paleta de comandos","paletteShortcut":"<f>Pulsa</f> <mod>{{mod}}</mod> <m>+</m> <k>K</k> <m>en cualquier sitio</m>","paletteBody":"Cambia de proyecto, ejecuta comandos de spec, salta a cualquier página y encuentra trabajos recientes, todo con búsqueda difusa.","agentLabel":"Agente","agentBody":"Muestra u oculta el agente con <mod>{{mod}}</mod> <shift>Shift</shift> <a>A</a>; recorre su nivel con <shift>Shift</shift> <tab>Tab</tab>.","terminalLabel":"Panel de terminal","terminalBody":"Alterna con <mod>{{mod}}</mod> <j>J</j>.","shortcutsLabel":"Todos los atajos","shortcutsBody":"Pulsa <q>?</q> para ver la chuleta completa.","chatLabel":"Barra lateral derecha","chatBody":"Alterna la barra lateral derecha con <mod>{{mod}}</mod> <bkey>B</bkey>.","projectsLabel":"Barra de proyectos","projectsBody":"Alterna la barra Arc izquierda con <alt>{{alt}}</alt> <mod>{{mod}}</mod> <bkey>B</bkey>.","pagesLabel":"Páginas y proyectos por número","pagesBody":"<mod>{{mod}}</mod> <n>1–9</n> salta a una página; <alt>{{alt}}</alt> <mod>{{mod}}</mod> <n>1–9</n> cambia de proyecto.","outro":"<b>Fin del recorrido.</b> Escribe lo que quieres construir en el composer de la misión o añade un proyecto desde la barra izquierda. Puedes reabrir este recorrido cuando quieras desde Ajustes."},"jira":{"label":"Integración con Jira","body":"Respalda cualquier proyecto con un <b>tablero de Jira</b> — cada spec es un issue de Jira, sincronizado en ambos sentidos: el estado sigue al rail y se publica un comentario al terminar un trabajo. Configúralo por proyecto al añadirlo, o cuando quieras en Ajustes."}}`),a={addProject:e,prerequisites:t,instructions:n,welcome:r,onboarding:i};export{e as addProject,a as default,n as instructions,i as onboarding,t as prerequisites,r as welcome};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={title:`プロジェクトを追加`,description:`プロジェクトディレクトリを登録して Specrails から管理します。`,noProviderDetected:`AI CLI が見つかりません。まず Claude Code、Codex CLI のいずれかをインストールしてください。`,pathLabel:`プロジェクトパス`,pathPlaceholder:`/Users/me/my-project`,pathHint:`プロジェクトルートへの絶対パス`,browseForFolder:`フォルダを参照`,selectProjectFolder:`プロジェクトフォルダを選択`,nameLabel:`表示名`,optional:`(任意)`,namePlaceholder:`マイプロジェクト`,nameHint:`デフォルトはディレクトリ名`,adding:`追加中…`,submit:`プロジェクトを追加`,toolsRequired_one:`プロジェクトの追加には {{tools}} が必要です`,toolsRequired_other:`プロジェクトの追加には {{tools}} が必要です`,errors:{pathRequired:`プロジェクトパスは必須です`,addFailed:`プロジェクトの追加に失敗しました`},toasts:{registered:`プロジェクト「{{name}}」を登録しました`},chooser:{description:`既存のリポジトリを取り込むか、アイデアから新しいプロジェクトを作りましょう。`,existingTitle:`既存プロジェクト`,existingDescription:`ディスク上に既にあるリポジトリを登録します。`,newTitle:`新規プロジェクト`,newDescription:`アイデアを伝えると、マイルストーン1のバックログ付きでリポジトリが用意されます。`}},t={corruptedBundle:`バンドル破損 — アプリを再インストールしてください`,notInstalled:`未インストール`,failedToExecute:`見つかりましたが実行できませんでした`,failedToExecuteAt:`{{path}} に見つかりましたが実行できませんでした`,failedToExecuteWithError:`見つかりましたが実行できませんでした({{error}})`,failedToExecuteAtWithError:`{{path}} に見つかりましたが実行できませんでした({{error}})`,needsMinimum:`{{version}} が見つかりました — {{minVersion}} 以上が必要です`,unknownVersion:`不明`,installedLabel:`インストール済み`,verifyError:`開発者ツールをローカルで検証できませんでした — インストール時に検証されます。`,allDetected:`必要なツールはすべて検出されました`,bundleCorruptedTitle:`アプリバンドルが破損しています`,toolsRequired_one:`{{count}} 個の開発者ツールが必要です`,toolsRequired_other:`{{count}} 個の開発者ツールが必要です`,reinstallHint:`Specrails アプリを再インストールしてバンドルツールを復元してください。`,installMissingHint:`続行するには不足しているツールをインストールしてください。`,moreInfo:`詳細`,bundledBadge:`バンドル`,optional:`任意`,ghNoAuth:"未ログイン — `gh auth login` を実行してください"},n={title:`開発者ツールをインストール`,description:`SpecRails には PATH 上の Node.js、npm、npx、Git が必要です。お使いの OS のスニペットを選んで実行し、「インストールしました。再チェック」をクリックしてください。`,darwin:{intro:`Homebrew なら1行で両方のツールをインストールできます。brew がない場合は公式ダウンロードを利用してください。`,installNodeGit:`Homebrew で Node.js と Git をインストール`},win32:{intro:`Winget は Windows 11 および最近の Windows 10 に同梱されています。PowerShell またはターミナルを開いて実行してください:`,installNode:`Node.js LTS をインストール`,installGit:`Git をインストール`,note:`インストール後、Windows が PATH を更新するように Specrails を再起動してください。`},linux:{intro:`ディストリビューションのパッケージマネージャーを使用してください:`,debian:`Debian / Ubuntu`,fedora:`Fedora / RHEL`},links:{nodeOfficial:`Node.js(公式)`,gitOfficial:`Git(公式)`,gitWindows:`Git for Windows(公式)`},showOtherPlatforms:`他のプラットフォームを表示`,hideOtherPlatforms:`他のプラットフォームを非表示`,recheck:`インストールしました。再チェック`,diagnostics:{copy:`診断情報をコピー`,copied:`診断情報をコピーしました`,failed:`コピーに失敗しました`},corrupted:{title:`アプリバンドルが破損しています`,description:`バンドルされたツール(Node.js、Git)の一部を検証できませんでした。`,body:`このツールは Specrails アプリにバンドルされており、個別にインストールできません。このメッセージが表示される場合、アプリバンドルが破損している可能性があります。Specrails を再インストールしてください。`,download:`最新版をダウンロード`}},r={title:`<spec>spec</spec><rails>rails</rails> へようこそ`,tagline:`スペックを入れれば、レビュー済みのプルリクエストが出てくる。`,description:`Specrails は複数のプロジェクトを単一のインターフェースで管理します。最初のプロジェクトを追加して始めましょう。`,addFirstProject:`最初のプロジェクトを追加`,jiraHint:`各プロジェクトを専用の Jira ボードに接続 — スペックは双方向で同期され続けます。`,mcpHint:`安全なローカル MCP サーバー経由で外部の AI ツールを Specrails に接続します。既定でオン、設定 → MCP で管理します。`,agentChatHint:`チャットで Specrails を操作 — 内蔵エージェントがローカル MCP を通じて specs・rails・分析をあなたの代わりに処理します。バブルから、または ⌘⇧A で開けます。`,localEnginesHint:`ローカルモデルしかない場合は、設定 → Specrails Agents で OpenAI 互換のエンドポイントを追加してください。レール、チャット、ミッションなどすべての画面が既定でそれを使います。`,replayTour:`ツアーを再生`},i=JSON.parse(`{"productTour":"プロダクトツアー","stepCount":"ステップ {{current}} / {{total}}","goToStep":"ステップ {{step}} へ移動: {{label}}","stepLabel":"ステップ {{step}}","skipTour":"ツアーをスキップ","getStarted":"始める","flow":{"architect":"アーキテクト","developer":"デベロッパー","reviewer":"レビュアー","describe":"記述","specs":"スペック","rails":"レール","review":"レビューとマージ","yourReview":"あなたのレビュー","blueprint":"ブループリント","approve":"承認","m1Specs":"マイルストーン1のスペック","milestones":"マイルストーン"},"language":{"nav":"言語","title":"言語を選ぶ","subtitle":"Specrailsはあなたの言語に対応","intro":"インターフェースで使いたい言語を選んでください。即座に適用されます — このツアーも含めて。","note":"設定 → 言語でいつでも変更できます。"},"theme":{"nav":"テーマ","title":"好みの見た目を選ぶ","subtitle":"内蔵テーマを即座に適用","intro":"Specrailsの見た目を選びましょう — テーマはクリックした瞬間に適用されます。","note":"設定 → 外観でいつでも変更できます。"},"welcome":{"nav":"ようこそ","title":"Specrails へようこそ","subtitle":"AI エージェントでソフトウェアを届けるローカルのコックピット","intro":"Specrails はアイデアをリリース済みのコードに変え、すべてのステップを<b>見て、導き、信頼</b>できるようにします。欲しいものを記述し、正確なスペックを得て、Claude Code・Codex でレール上に実行し、何をマージするかを決めます。あなたなしでは何もマージされません。","coreLoopLabel":"中心のループ","flowCaption":"<b>記述 → スペック → レール → レビューとマージ</b>。各ステップはライブで流れ、各結果はあなたの判断を待ちます。","missionLabel":"ミッションモード:既定","missionBody":"ひとつの会話がアプリ全体を動かします。エージェントがスペックを書き、レールを起動し、コストを確認し、決定カードを差し出します。<b>あなたが話し、エージェントが動く。</b>","boardLabel":"ボードモード:スイッチひとつ","boardBody":"従来のダッシュボード:スペックボード、レール、ジョブ、分析。左サイドバーのスイッチで切り替えます。<b>同じプロジェクト、同じデータ</b>です。","localNote":"<b>100% ローカル · シングルユーザー · アカウント不要。</b>すべてあなたのマシンで動きます。<i>あなた</i>がエージェントを実行しない限り、コードはノート PC を離れません。","tourNote":"このクイックツアーではアプリでできることをひと通り紹介します。約 2 分です。"},"mission":{"nav":"ミッションモード","title":"話すだけ、エージェントが動く","subtitle":"ミッションモードが既定の画面です","intro":"<b>ミッションモード</b>では、ウィンドウ全体が、Specrails を自身の <b>MCP ツール</b>で操作するエージェントとの会話になります。「優先度上位 3 件のスペックを起動して」「今週いくら使った?」「ダークモードのスペックを書いて」。すべてライブで、作業中にレール・スペック・カードが更新されます。","missionsLabel":"ミッションとプロジェクト","missionsBody":"各会話はプロジェクト(または全体を表すホーム)にピン留めされたミッションです。ヘッダーでミッションを切り替え、ターン中でもメッセージを送れます。キューに入り順番に実行されます。","levelsLabel":"手綱はあなたの手に","levelsBody":"ライブのレベル、<b>観察 → 編集 → 操作 → 自律</b>を <shift>Shift</shift> <tab>Tab</tab> で切り替え、どこまで動けるかを制限します。設定したレベルを超えて行動することはありません。","cardsLabel":"決定カード","cardsBody":"起動はコンポーザー上部にピン留めされたライブカードとして表示されます。レールの進捗、その後 PR 作成 / ローカル統合 / 破棄と、平易な言葉のレビュー。返答内のスペック番号・ジョブ・ループはクリック可能です。","workspaceLabel":"すぐ横のワークスペース","workspaceBody":"右サイドバーから、会話の隣にブループリント、ジョブ、分析、内蔵ブラウザ、ターミナル、コードエクスプローラーを開けます。コンテキストの切り替えは不要です。","mcpLabel":"ローカル MCP 上で動作","mcpBody":"エージェントは Specrails 内蔵の MCP サーバーを通じて動きます。<b>既定でオン</b>、ループバックのみ。同じサーバーで自分のツール(Claude Desktop、Cursor など)から Specrails を操作できます。設定 → MCP で管理します。"},"builder":{"nav":"新規プロジェクト","title":"アイデアからプロジェクトを始める","subtitle":"ビルダー:コードを 1 行も書く前にブループリント、スペック、マイルストーンを","intro":"プロジェクトを追加 → <b>新規</b>で、エージェントが<b>プロジェクトビルダー</b>になります。アイデアを記述すると、短いインタビュー(またはワンクリックで全決定)のうえ、製品・コアフロー・プラットフォーム・スタック・マイルストーンを提案し、あなたが承認または調整します。","flowLabel":"アイデアからバックログへ","flowCaption":"コミットでリポジトリ、ワークスペース、マイルストーン1のバックログが作られます。任意でプライベートな GitHub リポジトリも。","cardsLabel":"ワンクリックの決定","cardsBody":"「おまかせ」と「承認してスペックを生成」はスレッド内のカードとして表示され、下した決定は記録としてそこに固定されます。","specsLabel":"プレミアムなスペックを正直に監査","specsBody":"マイルストーン1のスペックは 2 件ずつ完全に書かれ、その後バッチ全体を監査します(課題、解決策、範囲、技術的考慮、6 件以上の受け入れ基準)。決定的なゲートが薄い内容を止めます。","milestonesLabel":"レール上のマイルストーン","milestonesBody":"マイルストーン1を起動すると、最大 3 スペックのレールとして実行され、それぞれ前のブランチに積み上がります。<b>ウェーブのチェックポイント</b>が次のレールごとに確認します。自動続行も選べます。","progressLabel":"ライブの進捗","progressBody":"ブループリントパネルは実数(納品済み、レビュー中、完了)を表示し、未マージのものがある限り「完了」とは言いません。以降のマイルストーンは実際のリポジトリに対して生成されます。"},"authorSpecs":{"nav":"スペックを書く","title":"アイデアをスペックに","subtitle":"作りたいものを正確に捉える 6 つの方法","intro":"<b>スペック</b>はやってほしい作業の記述です。その時に合う方法で書きましょう。一行のメモから、エージェントに調査させるまで。","agentLabel":"エージェントに頼む","agentBody":"ミッションモードで変更内容を記述するだけ。エージェントは先に実際のコードを読み、ライブカードとしてスーパースペックを起草し、あなたの合図で保存します。","exploreLabel":"Explore:対話で","exploreBody":"チャットで要望を記述すると、ライブの下書きが毎ターン組み直されます。プリセットのスライダーで AI に見せるプロジェクトの文脈量を調整できます。メッセージのみから、コードベース全体+MCP サーバーまで。","quickLabel":"Quick:一発で","quickBody":"欲しいものが決まっているなら、1 ターンで完全なスペックを生成。任意でコントラクト層を追加:正確な名前、データ構造、不変条件、対象ファイル一覧で、エージェントに再発明させません。","websiteLabel":"Web サイトから","websiteBody":"内蔵ブラウザを開き、要素をホバー選択するか矩形をドラッグ。スクリーンショット、DOM、適用 CSS が添付になります。","smashLabel":"大きなエピックを SMASH","smashBody":"大きなスペックをワンクリックで小さなサブスペックの一群に分解。各子カードに短い要約が付きます。","draftsLabel":"ドラフトと編集の再開","draftsBody":"進行中の探索をドラフトスペックとして保留し、後で再開。どのスペックも Explore で開き直して磨き続けられます。"},"rails":{"nav":"レールとレビュー","title":"レール上でパイプラインを実行","subtitle":"隔離されたレーンと、本当に読めるレビュー","intro":"<b>レール</b>は実行レーンです。最大 12 本、必要に応じて作成。スペックをレールに置いて <play>▶ 再生</play>、または空いているレールを<b>すべて起動</b>して並列実行。各ランは専用の git worktree で動き、あなたのチェックアウトには触れません。","jobLabel":"各ランがすること","flowCaption":"各フェーズはライブで流れます。終了時、作業はブランチに残り、アプリが次の行動を尋ねます。Specrails は PR を作るだけで、自分ではマージしません。","reviewLabel":"先に尋ねる PR レビュー","reviewBody":"完了したスペックは<b>レビュー中</b>に留まります。選ぶのはあなた:ドラフト PR の作成、ローカル統合(リモート不要)、または破棄。マージで完了になります。","packetLabel":"レビューパケット","packetBody":"納品ごとの平易なページ:何を依頼したか、何が変わったか、AI の報告とアプリが検証した事実、コスト。受け入れ / 変更を依頼 / 破棄 が付きます。","steerLabel":"実行中に舵を取る","steerBody":"Claude のランは対話式です。作業中に質問や方向転換ができ、生ログではなくナレーション付きの進捗を追えます。","loopsLabel":"独自のループを作る","loopsBody":"<b>Loops</b> はビジュアルビルダーです。AI ステップ、シェルコマンド、目標達成まで繰り返す<b>ループデサイダー</b>をつなげます。Implement、Freestyle はすぐ使えます。","profilesLabel":"エージェントプロファイルと既定値","profilesBody":"どのエージェントを動かし、それぞれどのモデルを使うかを決めます。プロジェクトのプロファイル単位、レール単位、または設定 → Specrails エージェントでマシン全体に一度だけ。","isolationLabel":"多くのプロジェクトを隔離","isolationBody":"各プロジェクトは専用のデータベースとキューを持ちます。Specrails は自身のファイルをホームフォルダー下に置くため、リポジトリは手つかずのままです。"},"providers":{"nav":"あなたのエージェント","title":"自分のエージェントを持ち込む","subtitle":"Claude Code、Codex をファーストクラスのエンジンに","intro":"<b>Claude Code</b>、<b>Codex CLI</b> はひとつの契約の下で入れ替え可能なエンジンです。このマシンにインストールされサインイン済みのものは自動検出され、どこでも使えます。プロジェクトごとの設定は不要です。","calloutLabel":"複数インストールされている場合","calloutBody":"エンジンは<b>スペック、レール、ミッション、ターミナル起動ごと</b>に選べます。アプリはプロジェクトごとに最後の選択を記憶します。推定コストは <mono>~</mono> 付き。","table":{"capability":"機能","streamingResume":"ストリーミングとセッション再開","native":"ネイティブ","costReporting":"コストレポート","providerBilled":"プロバイダー請求額","estimated":"推定(~)","unavailable":"利用不可","telemetry":"テレメトリ(OTEL)","synthesized":"合成","agentProfiles":"エージェントプロファイル"}},"cost":{"nav":"コスト追跡","title":"1セント単位で追跡","subtitle":"課金対象のすべての呼び出しを記録・可視化","intro":"すべての AI 呼び出しでライフサイクルとプロバイダーを記録します。報告されない使用量やコストは利用不可のままです。","analyticsLabel":"分析ページ","analyticsBody":"バーンレートのヒーロー表示、日次タイムライン、トップスペック、モデル別内訳、コスト対ターン数の散布図。期間(7日 / 30日 / 90日 / 全期間)とサーフェスでフィルタできます。","perTicketLabel":"スペック別の支出","perTicketBody":"各スペックの詳細にはコストと所要ターン数が表示され、そのスペックでフィルタした分析ページへディープリンクします。","honestLabel":"正直な数字","honestBody":"Claude のコストはプロバイダー報告値、Codex は推定の場合 <mono>~</mono> が付きます。","budgetsLabel":"予算とアラート","budgetsBody":"日次予算とジョブ単位のコストアラートを設定でき、上限を超えるとアプリが自動でキューを一時停止します。すべて CSV または JSON にエクスポートできます。"},"workspace":{"nav":"ワークスペース","title":"自分のワークスペースに","subtitle":"ウィンドウを離れずに必要なものすべて","terminalLabel":"ターミナルパネル","terminalBody":"下部に VS Code 風の本物のターミナル(<mod>{{mod}}</mod> <j>J</j>)。WebGL 描画、検索、インライン画像、パスのドラッグ&ドロップ、シェル統合。プロジェクトごとに最大 10 セッション。","codeLabel":"コードエクスプローラー","codeBody":"読み取り専用のファイルツリーと Monaco ビューアー。平易な AI 要約と、ファイルごとの構築ストーリー(どのスペックが、いつ、なぜ触れたか)を表示します。","browserLabel":"内蔵ブラウザ","browserBody":"リンク、PR、開発サーバーをアプリ内で開けます。デスクトップ版ではネイティブのブラウザペインで、ポップアップも OAuth ログインを維持します。","integrationsLabel":"連携と MCP","integrationsBody":"プロジェクトごとの MCP 連携マーケットプレイス(Serena のセマンティックナビゲーションを同梱)と、アプリを自分の AI ツールへ公開する Specrails MCP サーバー。","themesLabel":"テーマとエフェクト","themesBody":"6 つの内蔵テーマ(specrails、dracula、aurora-light、obsidian-dark、code-rain、galaxy)を UI 描画前に適用。設定 → エフェクトで、エージェントの思考ハローなどの演出を切り替えられます。","chatsLabel":"最小化できるチャット","chatsBody":"Explore や AI 編集のセッションをドックのチップに退避し、後で再開。リロードやプロジェクト切り替えでも失われません。","compareLabel":"並べて比較","compareBody":"スペックを画面端へドラッグすると他のスペックのピッカーが現れ、タブレットのように 2 件を並べてレビューできます。","desktopLabel":"デスクトップかブラウザか","desktopBody":"ブラウザで Specrails を使うか、署名済みデスクトップアプリ(macOS・Windows)を入手。サーバー、Node、git、GitHub CLI を同梱しています。"},"companion":{"nav":"モバイルコンパニオン","title":"Specrails を持ち歩く","subtitle":"Specrails Companion — あなたのパイプラインを、スマートフォンで","intro":"<b>Specrails Companion</b> は specrails.dev/companion-app で使える Web アプリです — スマートフォンで開く(またはホーム画面に追加する)だけで、スペックボードの閲覧、レールの起動と停止、ジョブログのライブ追跡、分析のチェックができます。インストール不要、アプリストアも不要。","localLabel":"ほかのすべてと同じく 100% ローカル","localBody":"スマートフォンはこのコンピュータに直接接続します — ピアツーピアで暗号化(WebRTC)。クラウド中継なし、アカウント不要、コードがあなたのデバイスの外に出ることはありません。","downloadLabel":"スマートフォンで開く","downloadHint":"スマートフォンのカメラでコードをスキャンするか、ブラウザで specrails.dev/companion-app を開いてください。","open":"Specrails Companion を開く","pairLabel":"ペアリングは10秒で完了","pairBody":"スマートフォンで specrails.dev/companion-app を開き、こちらで 設定 → モバイルコンパニオン → Web コンパニオンをペアリング と進んで、画面の手順に従ってください。"},"moveFast":{"paletteLabel":"コマンドパレット","paletteShortcut":"<f>どこでも</f> <mod>{{mod}}</mod> <m>+</m> <k>K</k> <m>を押す</m>","paletteBody":"プロジェクト切り替え、スペックコマンドの実行、任意のページへの移動、最近のジョブ検索をあいまい検索で。","agentLabel":"エージェント","agentBody":"<mod>{{mod}}</mod> <shift>Shift</shift> <a>A</a> でエージェントを表示/非表示。<shift>Shift</shift> <tab>Tab</tab> でレベルを切り替え。","terminalLabel":"ターミナルパネル","terminalBody":"<mod>{{mod}}</mod> <j>J</j> で切り替え。","shortcutsLabel":"すべてのショートカット","shortcutsBody":"<q>?</q> を押すと一覧が表示されます。","chatLabel":"右サイドバー","chatBody":"<mod>{{mod}}</mod> <bkey>B</bkey> で右サイドバーを切り替え。","projectsLabel":"プロジェクトサイドバー","projectsBody":"<alt>{{alt}}</alt> <mod>{{mod}}</mod> <bkey>B</bkey> で左の Arc サイドバーを切り替え。","pagesLabel":"番号でページとプロジェクトへ","pagesBody":"<mod>{{mod}}</mod> <n>1–9</n> でページに移動、<alt>{{alt}}</alt> <mod>{{mod}}</mod> <n>1–9</n> でプロジェクトを切り替え。","outro":"<b>ツアーは以上です。</b>ミッションのコンポーザーに作りたいものを入力するか、左サイドバーからプロジェクトを追加してください。このツアーは設定からいつでも再表示できます。"},"jira":{"label":"Jira 連携","body":"任意のプロジェクトを <b>Jira ボード</b> で裏付けます — 各スペックは Jira の課題になり、双方向で同期されます。ステータスは rail に追従し、job 完了時にコメントが投稿されます。追加時にプロジェクトごとに設定するか、いつでも設定から構成できます。"}}`),a={addProject:e,prerequisites:t,instructions:n,welcome:r,onboarding:i};export{e as addProject,a as default,n as instructions,i as onboarding,t as prerequisites,r as welcome};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={title:`添加项目`,description:`注册一个项目目录,以便在 Specrails 中管理。`,noProviderDetected:`未检测到 AI CLI。请先安装 Claude Code、Codex CLI。`,pathLabel:`项目路径`,pathPlaceholder:`/Users/me/my-project`,pathHint:`项目根目录的绝对路径`,browseForFolder:`浏览文件夹`,selectProjectFolder:`选择项目文件夹`,nameLabel:`显示名称`,optional:`(可选)`,namePlaceholder:`我的项目`,nameHint:`默认为目录名`,adding:`添加中…`,submit:`添加项目`,toolsRequired_one:`添加项目需要 {{tools}}`,toolsRequired_other:`添加项目需要 {{tools}}`,errors:{pathRequired:`请输入项目路径`,addFailed:`添加项目失败`},toasts:{registered:`项目“{{name}}”已注册`},chooser:{description:`导入现有仓库,或从一个想法构建全新项目。`,existingTitle:`现有项目`,existingDescription:`注册磁盘上已存在的仓库。`,newTitle:`新项目`,newDescription:`描述一个想法,获得已初始化的仓库和里程碑 1 待办清单。`}},t={corruptedBundle:`应用包已损坏——请重新安装应用`,notInstalled:`未安装`,failedToExecute:`已找到但无法执行`,failedToExecuteAt:`在 {{path}} 找到但无法执行`,failedToExecuteWithError:`已找到但无法执行({{error}})`,failedToExecuteAtWithError:`在 {{path}} 找到但无法执行({{error}})`,needsMinimum:`已找到 {{version}}——需要 {{minVersion}}+`,unknownVersion:`未知`,installedLabel:`已安装`,verifyError:`无法在本地验证开发工具——安装时将再次校验。`,allDetected:`已检测到全部所需工具`,bundleCorruptedTitle:`应用包已损坏`,toolsRequired_one:`需要 {{count}} 个开发工具`,toolsRequired_other:`需要 {{count}} 个开发工具`,reinstallHint:`请重新安装 Specrails 应用以恢复内置工具。`,installMissingHint:`请安装缺失的工具以继续。`,moreInfo:`更多信息`,bundledBadge:`内置`,optional:`可选`,ghNoAuth:"未登录 — 请运行 `gh auth login`"},n={title:`安装开发工具`,description:`SpecRails 需要 PATH 上的 Node.js、npm、npx 和 Git。选择适合你操作系统的命令片段并运行,然后点击“我已安装,重新检测”。`,darwin:{intro:`用 Homebrew 一行命令即可装好两个工具。如果没有 brew,请使用官方下载。`,installNodeGit:`通过 Homebrew 安装 Node.js 和 Git`},win32:{intro:`Winget 随 Windows 11 及较新的 Windows 10 提供。打开 PowerShell 或终端并运行:`,installNode:`安装 Node.js LTS`,installGit:`安装 Git`,note:`安装后请重启 Specrails,以便 Windows 刷新 PATH。`},linux:{intro:`使用你发行版的包管理器:`,debian:`Debian / Ubuntu`,fedora:`Fedora / RHEL`},links:{nodeOfficial:`Node.js(官方)`,gitOfficial:`Git(官方)`,gitWindows:`Git for Windows(官方)`},showOtherPlatforms:`显示其他平台`,hideOtherPlatforms:`隐藏其他平台`,recheck:`我已安装,重新检测`,diagnostics:{copy:`复制诊断信息`,copied:`诊断信息已复制`,failed:`复制失败`},corrupted:{title:`应用包已损坏`,description:`一个或多个内置工具(Node.js、Git)无法通过验证。`,body:`此工具随 Specrails 应用内置,无法单独安装。如果你看到此消息,说明应用包可能已损坏,请重新安装 Specrails。`,download:`下载最新版本`}},r={title:`欢迎使用 <spec>spec</spec><rails>rails</rails>`,tagline:`输入规格,输出经过评审的拉取请求。`,description:`Specrails 让你在一个界面中管理多个项目。添加第一个项目即可开始。`,addFirstProject:`添加你的第一个项目`,jiraHint:`将每个项目连接到各自的 Jira 看板——规格在两个方向保持同步。`,mcpHint:`通过安全的本地 MCP 服务器把外部 AI 工具接入 Specrails:默认开启,在设置 → MCP 中管理。`,agentChatHint:`通过聊天操作 Specrails——内置 agent 通过本地 MCP 为你处理 specs、rails 和分析。可从气泡或按 ⌘⇧A 打开。`,localEnginesHint:`只有本地模型?在 设置 → Specrails Agents 中添加一个兼容 OpenAI 的端点,rails、聊天、任务等所有界面都会默认使用它。`,replayTour:`重播导览`},i=JSON.parse(`{"productTour":"产品导览","stepCount":"第 {{current}} 步,共 {{total}} 步","goToStep":"前往第 {{step}} 步:{{label}}","stepLabel":"第 {{step}} 步","skipTour":"跳过导览","getStarted":"开始使用","flow":{"architect":"架构师","developer":"开发者","reviewer":"审阅者","describe":"描述","specs":"规格","rails":"轨道","review":"审阅并合并","yourReview":"你的审阅","blueprint":"蓝图","approve":"批准","m1Specs":"里程碑 1 规格","milestones":"里程碑"},"language":{"nav":"语言","title":"选择你的语言","subtitle":"Specrails 支持你的语言","intro":"选择界面使用的语言,即刻生效——包括这个导览。","note":"你随时可以在设置 → 语言中更改。"},"theme":{"nav":"主题","title":"挑选你的外观","subtitle":"内置主题,即点即用","intro":"选择 Specrails 的外观 — 主题在你点击的瞬间生效。","note":"你随时可以在设置 → 外观中更改。"},"welcome":{"nav":"欢迎","title":"欢迎使用 Specrails","subtitle":"用 AI 代理交付软件的本地驾驶舱","intro":"Specrails 把一个想法变成已交付的代码,并让你<b>看见、掌控并信任</b>每一步。描述你想要的,得到精确的规格,用 Claude Code、Codex 在轨道上运行,然后决定合并什么。没有你的确认,什么都不会合并。","coreLoopLabel":"核心循环","flowCaption":"<b>描述 → 规格 → 轨道 → 审阅并合并</b>。每一步实时流式呈现,每个结果都等待你的决定。","missionLabel":"任务模式:默认","missionBody":"一段对话驱动整个应用:代理撰写规格、启动轨道、查看花费,并向你递上决策卡片。<b>你说,它做。</b>","boardLabel":"看板模式:一键切换","boardBody":"经典仪表盘:规格看板、轨道、任务、分析。用左侧栏的开关在两者间切换:<b>同样的项目,同样的数据</b>。","localNote":"<b>100% 本地 · 单用户 · 无需账号。</b>一切都在你的电脑上运行。除非<i>你</i>让代理处理它,你的代码永远不会离开笔记本。","tourNote":"这段快速导览介绍应用能做的一切,大约两分钟。"},"mission":{"nav":"任务模式","title":"你说,代理来做","subtitle":"任务模式是默认界面","intro":"在<b>任务模式</b>下,整个窗口就是与一个代理的对话,它通过自己的 <b>MCP 工具</b>驱动 Specrails:“启动三条优先级最高的规格”、“这周我花了多少?”、“给我写一条深色模式的规格”。一切都是实时的:它工作时,轨道、规格和卡片同步更新。","missionsLabel":"任务与项目","missionsBody":"每段对话都是固定到某个项目(或“主页”代表全部)的任务。在页眉切换任务,回合进行中也能发消息:它们会排队并按顺序执行。","levelsLabel":"牵绳在你手里","levelsBody":"一个实时级别,<b>观察 → 编辑 → 操作 → 自主</b>,用 <shift>Shift</shift> <tab>Tab</tab> 循环切换,限定它能走多远。它永远不会越过你设定的级别。","cardsLabel":"决策卡片","cardsBody":"启动会以固定在输入框上方的实时卡片呈现:轨道进度,然后是创建 PR / 本地集成 / 丢弃,并附上通俗易懂的审阅。回复中的规格编号、任务和循环都可点击。","workspaceLabel":"随手可用的工作区","workspaceBody":"右侧栏可在对话旁打开蓝图、任务、分析、内嵌浏览器、终端和代码浏览器,无需切换上下文。","mcpLabel":"基于本地 MCP 运行","mcpBody":"代理通过 Specrails 内嵌的 MCP 服务器工作:<b>默认开启</b>,仅限本机回环。同一服务器也让你自己的工具(Claude Desktop、Cursor 等)驱动 Specrails;在设置 → MCP 中管理。"},"builder":{"nav":"新项目","title":"从一个想法开始项目","subtitle":"构建器:在写下第一行代码前完成蓝图、规格和里程碑","intro":"添加项目 → <b>新建</b>会让代理变成<b>项目构建器</b>。描述想法;它会简短访谈你(或一键全部决定),提出产品、核心流程、平台、技术栈和里程碑,由你批准或微调。","flowLabel":"从想法到待办","flowCaption":"提交会创建仓库、工作区和里程碑 1 的待办;也可选择创建私有 GitHub 仓库。","cardsLabel":"一键决策","cardsBody":"“给我惊喜”和“批准并生成规格”以卡片形式出现在对话中;你做出的每个决定都会固定在那里作为记录。","specsLabel":"高质量规格,诚实审核","specsBody":"里程碑 1 的规格每次完整撰写两条,随后审核整批(问题、方案、范围、技术考量、六条以上验收标准),确定性门禁会拦下任何单薄的规格。","milestonesLabel":"轨道上的里程碑","milestonesBody":"启动里程碑 1 后,它会以每条最多三个规格的轨道运行,每条都叠加在前一条的分支上。<b>波次检查点</b>会在启动下一条轨道前询问,也可以开启自动继续。","progressLabel":"实时进度","progressBody":"蓝图面板显示真实计数(已交付、审阅中、已完成),只要还有未合并的内容就绝不显示“完成”。后续里程碑基于真实仓库生成。"},"authorSpecs":{"nav":"撰写规格","title":"把想法变成规格","subtitle":"六种方式精确捕捉你想构建的内容","intro":"<b>规格</b>描述你想完成的工作。按当下最合适的方式撰写:从一句话,到让代理替你调研。","agentLabel":"让代理来写","agentBody":"在任务模式下直接描述改动。代理先阅读真实代码,以实时卡片起草一条超级规格,并在你确认后保存。","exploreLabel":"探索:对话式","exploreBody":"在聊天中描述需求;实时草稿每回合重建。预设滑块调节 AI 看到多少项目上下文:从只看你的消息,到整个代码库加上你的 MCP 服务器。","quickLabel":"快速:一步到位","quickBody":"已经知道要什么?一回合生成完整规格。可选加入契约层:精确名称、数据结构、不变量和涉及文件清单,让代理不必重新发明。","websiteLabel":"来自网页","websiteBody":"打开内嵌浏览器。悬停选中元素或拖出矩形,截图、DOM 和应用的 CSS 都成为附件。","smashLabel":"SMASH 拆解大史诗","smashBody":"一键把大规格拆成一组更小的子规格;每个子项的卡片上带有简短摘要。","draftsLabel":"草稿与继续编辑","draftsBody":"把进行中的探索存为草稿规格,稍后继续;任何规格都可在探索中重新打开继续打磨。"},"rails":{"nav":"轨道与审阅","title":"在轨道上运行流水线","subtitle":"隔离的车道,以及真正读得懂的审阅","intro":"<b>轨道</b>是执行车道:最多十二条,按需创建。把规格放到轨道上按 <play>▶ 播放</play>,或<b>全部启动</b>让空闲轨道并行运行。每次运行都在自己的 git worktree 中进行,绝不触碰你的检出。","jobLabel":"每次运行做什么","flowCaption":"每个阶段实时流式呈现。结束时工作留在其分支上,应用询问你怎么办:Specrails 产出 PR,绝不自行合并。","reviewLabel":"先询问的 PR 审阅","reviewBody":"完成的规格停在<b>审阅中</b>。由你选择:创建草稿 PR、本地集成(无需远程)或丢弃。合并后转为已完成。","packetLabel":"审阅包","packetBody":"每次交付一页通俗说明:要求了什么、改了什么、AI 的报告与应用实际验证的对比、成本,附带接受 / 请求修改 / 丢弃。","steerLabel":"运行中随时引导","steerBody":"Claude 运行是交互式的:工作时可提问或改向,并以叙述式进度代替原始日志。","loopsLabel":"构建自己的循环","loopsBody":"<b>Loops</b> 是可视化构建器:串联 AI 步骤、shell 命令和一个<b>循环决策器</b>,重复直到达成目标。内置的 Implement 和 Freestyle 开箱即用。","profilesLabel":"代理配置与默认值","profilesBody":"决定运行哪些代理以及各自使用的模型:按项目配置、按轨道,或在设置 → Specrails 代理中为整台机器设置一次。","isolationLabel":"多项目,彼此隔离","isolationBody":"每个项目有自己的数据库和队列;Specrails 把自己的文件放在你的主目录下,因此你的仓库保持原样。"},"providers":{"nav":"你的代理","title":"自带代理","subtitle":"Claude Code、Codex 都是一等引擎","intro":"<b>Claude Code</b>、<b>Codex CLI</b> 是同一契约下可互换的引擎。本机已安装并登录的都会自动检测并随处可用;无需按项目配置。","calloutLabel":"安装了多个时","calloutBody":"可<b>按规格、按轨道、按任务或按终端启动</b>选择引擎;应用会记住每个项目的上次选择。估算成本标记为 <mono>~</mono>.","table":{"capability":"能力","streamingResume":"流式输出与会话恢复","native":"原生","costReporting":"成本报告","providerBilled":"提供商实际计费","estimated":"估算(~)","unavailable":"不可用","telemetry":"遥测(OTEL)","synthesized":"合成","agentProfiles":"Agent Profile"}},"cost":{"nav":"成本追踪","title":"每一分钱都有迹可循","subtitle":"每次计费调用都被记录并可视化","intro":"每次 AI 调用都会记录生命周期和提供方。未报告的用量或成本会保持不可用。","analyticsLabel":"分析页面","analyticsBody":"消耗速率概览、每日时间线、热门规格、模型分布,以及成本-轮次散点图。可按周期(7 天 / 30 天 / 90 天 / 全部)和来源筛选。","perTicketLabel":"按规格统计支出","perTicketBody":"每个 spec 的详情会显示其成本和轮次,并可深链到按该规格筛选的分析页面。","honestLabel":"诚实的数字","honestBody":"Claude 成本来自提供方;Codex 的估算值以 <mono>~</mono> 标注。","budgetsLabel":"预算与告警","budgetsBody":"设置每日预算和单任务成本告警;超限时应用会自动暂停队列。任何数据都可导出为 CSV 或 JSON。"},"workspace":{"nav":"工作区","title":"打造你的工作区","subtitle":"所需的一切,不必离开窗口","terminalLabel":"终端面板","terminalBody":"底部是一个真正的 VS Code 风格终端(<mod>{{mod}}</mod> <j>J</j>):WebGL 渲染、搜索、内嵌图片、拖放路径和 shell 集成。每个项目最多 10 个会话。","codeLabel":"代码浏览器","codeBody":"只读文件树和 Monaco 查看器,带有通俗的 AI 摘要和每个文件的构建故事:哪条规格改动了它、何时、为何。","browserLabel":"内嵌浏览器","browserBody":"在应用内打开链接、PR 和你的开发服务器:桌面版提供原生浏览器面板,弹窗保持 OAuth 登录可用。","integrationsLabel":"集成与 MCP","integrationsBody":"按项目的 MCP 集成市场(内置 Serena 语义导航),以及把应用暴露给你自己的 AI 工具的 Specrails MCP 服务器。","themesLabel":"主题与效果","themesBody":"六个内置主题(specrails、dracula、aurora-light、obsidian-dark、code-rain 和 galaxy),在界面绘制前应用。设置 → 效果可开关代理思考光环等视觉点缀。","chatsLabel":"可最小化的聊天","chatsBody":"把探索或 AI 编辑会话停靠为 dock 芯片,稍后继续;刷新或切换项目也不会丢失。","compareLabel":"并排比较","compareBody":"把规格拖到屏幕边缘,会滑出其他规格的选择器:像平板一样并排审阅两条。","desktopLabel":"桌面或浏览器","desktopBody":"在浏览器中使用 Specrails,或安装已签名的桌面应用(macOS 和 Windows),内置服务器、Node、git 和 GitHub CLI。"},"companion":{"nav":"移动伴侣","title":"随身携带 Specrails","subtitle":"Specrails Companion——你的流水线,尽在掌上","intro":"<b>Specrails Companion</b> 是一款网页应用,地址为 specrails.dev/companion-app——在手机上打开它(或将其添加到主屏幕),即可浏览 Spec 看板、启动或停止 rail、实时跟踪任务日志、随手查看分析数据。无需安装,无需应用商店。","localLabel":"100% 本地,一如这里的一切","localBody":"你的手机直接连接到这台电脑——点对点且加密(WebRTC)。没有云端中转、无需账号,你的代码绝不离开你的设备。","downloadLabel":"在手机上打开","downloadHint":"用手机相机扫码,或在浏览器中打开 specrails.dev/companion-app。","open":"打开 Specrails Companion","pairLabel":"配对只需十秒","pairBody":"在手机上打开 specrails.dev/companion-app,然后在这里前往设置 → 移动伴侣 → 配对网页伴侣,按照屏幕提示操作。"},"moveFast":{"paletteLabel":"命令面板","paletteShortcut":"<f>在任意位置按</f> <mod>{{mod}}</mod> <m>+</m> <k>K</k>","paletteBody":"切换项目、运行规格命令、跳转任意页面并查找最近任务,全部支持模糊搜索。","agentLabel":"代理","agentBody":"用 <mod>{{mod}}</mod> <shift>Shift</shift> <a>A</a> 显示/隐藏代理;用 <shift>Shift</shift> <tab>Tab</tab> 切换其级别。","terminalLabel":"终端面板","terminalBody":"用 <mod>{{mod}}</mod> <j>J</j> 切换。","shortcutsLabel":"全部快捷键","shortcutsBody":"按 <q>?</q> 查看完整速查表。","chatLabel":"右侧栏","chatBody":"用 <mod>{{mod}}</mod> <bkey>B</bkey> 切换右侧栏。","projectsLabel":"项目侧栏","projectsBody":"用 <alt>{{alt}}</alt> <mod>{{mod}}</mod> <bkey>B</bkey> 切换左侧 Arc 侧栏。","pagesLabel":"按数字切换页面与项目","pagesBody":"<mod>{{mod}}</mod> <n>1–9</n> 跳转页面;<alt>{{alt}}</alt> <mod>{{mod}}</mod> <n>1–9</n> 切换项目。","outro":"<b>导览到此结束。</b>在任务输入框里写下你想构建的东西,或从左侧栏添加项目。随时可在设置中重新打开本导览。"},"jira":{"label":"Jira 集成","body":"用 <b>Jira 看板</b> 支撑任意项目——每条规格都会成为一个 Jira 事务,双向同步:状态跟随 rail,job 结束时会发布一条评论。在添加项目时按项目配置,或随时在设置中配置。"}}`),a={addProject:e,prerequisites:t,instructions:n,welcome:r,onboarding:i};export{e as addProject,a as default,n as instructions,i as onboarding,t as prerequisites,r as welcome};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={title:`Adicionar projeto`,description:`Registe um diretório de projeto para o gerir a partir do Specrails.`,noProviderDetected:`Nenhuma CLI de IA detetada. Instale primeiro Claude ou Codex.`,pathLabel:`Caminho do projeto`,pathPlaceholder:`/Users/eu/o-meu-projeto`,pathHint:`Caminho absoluto para a raiz do projeto`,browseForFolder:`Procurar pasta`,selectProjectFolder:`Selecionar a pasta do projeto`,nameLabel:`Nome a apresentar`,optional:`(opcional)`,namePlaceholder:`O Meu Projeto`,nameHint:`Por omissão, o nome do diretório`,adding:`A adicionar...`,submit:`Adicionar projeto`,toolsRequired_one:`{{tools}} é necessário para adicionar um projeto`,toolsRequired_other:`{{tools}} são necessários para adicionar um projeto`,errors:{pathRequired:`O caminho do projeto é obrigatório`,addFailed:`Falha ao adicionar o projeto`},toasts:{registered:`Projeto "{{name}}" registado`},chooser:{description:`Traga um repositório existente ou construa um projeto novinho a partir de uma ideia.`,existingTitle:`Projeto existente`,existingDescription:`Registre um repositório que já existe no disco.`,newTitle:`Projeto novo`,newDescription:`Descreva uma ideia e receba um repo inicializado com um backlog do Marco 1.`}},t={corruptedBundle:`bundle corrompido — reinstale a app`,notInstalled:`não instalado`,failedToExecute:`encontrado mas falhou ao executar`,failedToExecuteAt:`encontrado em {{path}} mas falhou ao executar`,failedToExecuteWithError:`encontrado mas falhou ao executar ({{error}})`,failedToExecuteAtWithError:`encontrado em {{path}} mas falhou ao executar ({{error}})`,needsMinimum:`{{version}} encontrado — requer {{minVersion}}+`,unknownVersion:`desconhecida`,installedLabel:`instalado`,verifyError:`Não foi possível verificar as ferramentas de desenvolvimento localmente — a instalação validará.`,allDetected:`Todas as ferramentas necessárias detetadas`,bundleCorruptedTitle:`Bundle da app corrompido`,toolsRequired_one:`{{count}} ferramenta de desenvolvimento necessária`,toolsRequired_other:`{{count}} ferramentas de desenvolvimento necessárias`,reinstallHint:`Reinstale a app Specrails para restaurar as ferramentas incluídas.`,installMissingHint:`Instale as ferramentas em falta para continuar.`,moreInfo:`Mais informações`,bundledBadge:`incluído`,optional:`opcional`,ghNoAuth:"Sem sessão — execute `gh auth login`"},n={title:`Instalar ferramentas de desenvolvimento`,description:`O SpecRails precisa de Node.js, npm, npx e Git no PATH. Escolha o snippet para o seu SO, execute-o e clique em "Já instalei, verificar novamente".`,darwin:{intro:`O Homebrew instala ambas as ferramentas numa só linha. Se não tiver o brew, use os downloads oficiais.`,installNodeGit:`Instalar Node.js e Git via Homebrew`},win32:{intro:`O winget vem incluído no Windows 11 e nas versões recentes do Windows 10. Abra o PowerShell ou o Terminal e execute:`,installNode:`Instalar Node.js LTS`,installGit:`Instalar Git`,note:`Após a instalação, reinicie o Specrails para que o Windows atualize o PATH.`},linux:{intro:`Use o gestor de pacotes da sua distribuição:`,debian:`Debian / Ubuntu`,fedora:`Fedora / RHEL`},links:{nodeOfficial:`Node.js (oficial)`,gitOfficial:`Git (oficial)`,gitWindows:`Git para Windows (oficial)`},showOtherPlatforms:`Mostrar outras plataformas`,hideOtherPlatforms:`Ocultar outras plataformas`,recheck:`Já instalei, verificar novamente`,diagnostics:{copy:`Copiar diagnóstico`,copied:`Diagnóstico copiado`,failed:`Falha ao copiar`},corrupted:{title:`Bundle da app corrompido`,description:`Não foi possível verificar uma ou mais ferramentas incluídas (Node.js, Git).`,body:`Esta ferramenta é distribuída com a app Specrails e não pode ser instalada separadamente. Se vir esta mensagem, o bundle da app pode estar corrompido. Reinstale o Specrails.`,download:`Transferir a versão mais recente`}},r={title:`Bem-vindo ao <spec>spec</spec><rails>rails</rails>`,tagline:`Specs entram, pull requests revisadas saem.`,description:`O Specrails gere vários projetos a partir de uma única interface. Adicione o seu primeiro projeto para começar.`,addFirstProject:`Adicione o seu primeiro projeto`,jiraHint:`Ligue cada projeto ao seu próprio quadro Jira — as specs ficam sincronizadas nos dois sentidos.`,mcpHint:`Liga ferramentas de IA externas ao Specrails através de um servidor MCP local seguro: ligado por defeito, gere-o em Definições → MCP.`,agentChatHint:`Opere o Specrails conversando — um agente integrado gere specs, rails e análises por si através do MCP local. Abra-o pela bolha ou com ⌘⇧A.`,localEnginesHint:`Só um modelo local? Adicione um endpoint compatível com OpenAI em Configurações → Specrails Agents e todas as superfícies — rails, chat, missões — passam a usá-lo por padrão.`,replayTour:`Repetir tour`},i=JSON.parse(`{"productTour":"Tour do produto","stepCount":"Passo {{current}} de {{total}}","goToStep":"Ir para o passo {{step}}: {{label}}","stepLabel":"Passo {{step}}","skipTour":"Saltar tour","getStarted":"Começar","flow":{"architect":"Arquiteto","developer":"Desenvolvedor","reviewer":"Revisor","describe":"Descrever","specs":"Specs","rails":"Rails","review":"Rever e integrar","yourReview":"A tua revisão","blueprint":"Blueprint","approve":"Aprovar","m1Specs":"Specs do Marco 1","milestones":"Marcos"},"language":{"nav":"Idioma","title":"Escolha o seu idioma","subtitle":"O Specrails fala a sua língua","intro":"Escolha o idioma em que quer a interface. Aplica-se de imediato — incluindo este tour.","note":"Pode mudá-lo a qualquer momento em Definições → Idioma."},"theme":{"nav":"Tema","title":"Escolha o seu visual","subtitle":"Temas incorporados, aplicados de imediato","intro":"Escolha o aspeto do Specrails — o tema aplica-se assim que clica.","note":"Pode mudá-lo a qualquer momento em Definições → Aspeto."},"welcome":{"nav":"Boas-vindas","title":"Bem-vindo ao Specrails","subtitle":"O teu cockpit local para entregar software com agentes de IA","intro":"O Specrails transforma uma ideia em código entregue, e deixa-te <b>ver, dirigir e confiar</b> em cada passo. Descreve o que queres, obtém specs precisas, executa-as em rails com Claude Code ou Codex e decide o que integrar. Nada é integrado sem ti.","coreLoopLabel":"O ciclo central","flowCaption":"<b>Descrever → Specs → Rails → Rever e integrar</b>. Cada passo é transmitido ao vivo e cada resultado espera pela tua decisão.","missionLabel":"Modo Missão: o predefinido","missionBody":"Uma conversa comanda toda a app: o agente redige specs, lança rails, consulta gastos e entrega-te cartões de decisão. <b>Tu falas, ele opera.</b>","boardLabel":"Modo Quadro: a um toque","boardBody":"O painel clássico: quadro de specs, rails, jobs, analítica. Alterna entre os dois com o interruptor da barra lateral esquerda: <b>mesmos projetos, mesmos dados</b>.","localNote":"<b>100 % local · um utilizador · sem contas.</b> Tudo corre na tua máquina. O teu código nunca sai do portátil a menos que <i>tu</i> lances um agente sobre ele.","tourNote":"Esta visita rápida percorre tudo o que a app faz: cerca de dois minutos."},"mission":{"nav":"Modo Missão","title":"Fala; o agente opera","subtitle":"O modo Missão é a superfície predefinida","intro":"No <b>modo Missão</b> toda a janela é uma conversa com um agente que comanda o Specrails através das suas próprias <b>ferramentas MCP</b>: «lança as três specs de maior prioridade», «quanto gastei esta semana?», «escreve-me uma spec para o modo escuro». Tudo é ao vivo: rails, specs e cartões atualizam-se enquanto trabalha.","missionsLabel":"Missões e projetos","missionsBody":"Cada conversa é uma missão fixada a um projeto (ou a Início para tudo). Muda de missão no cabeçalho e envia mensagens a meio do turno: entram na fila e correm por ordem.","levelsLabel":"A trela é tua","levelsBody":"Um nível ao vivo, <b>Observar → Editar → Operar → Autónomo</b>, percorrido com <shift>Shift</shift> <tab>Tab</tab>, limita até onde pode ir. Nunca age acima do nível que defines.","cardsLabel":"Cartões de decisão","cardsBody":"Os lançamentos surgem como cartões ao vivo fixados sobre o compositor: progresso do rail e depois Criar PR / Integrar localmente / Descartar, com uma Revisão em linguagem clara. Números de spec, jobs e loops nas respostas são clicáveis.","workspaceLabel":"Um espaço de trabalho ao lado","workspaceBody":"A barra lateral direita abre Blueprint, Jobs, Analítica, um navegador integrado, o terminal e o explorador de código ao lado da conversa, sem mudar de contexto.","mcpLabel":"Corre sobre o MCP local","mcpBody":"O agente trabalha através do servidor MCP embutido do Specrails, <b>ligado por defeito</b>, só em loopback. O mesmo servidor permite que as tuas ferramentas (Claude Desktop, Cursor…) comandem o Specrails; gere-o em Definições → MCP."},"builder":{"nav":"Projeto novo","title":"Começa um projeto a partir de uma ideia","subtitle":"O Construtor: blueprint, specs e marcos antes de existir uma linha de código","intro":"Adicionar projeto → <b>Novo</b> transforma o agente no <b>Construtor de projetos</b>. Descreve a ideia; ele entrevista-te brevemente (ou decide tudo com um clique), propõe produto, fluxo principal, plataforma, stack e marcos, e tu aprovas ou afinas.","flowLabel":"Da ideia ao backlog","flowCaption":"O commit cria o repositório, o espaço de trabalho e o backlog do Marco 1; opcionalmente também um repo privado no GitHub.","cardsLabel":"Decisões de um clique","cardsBody":"«Surpreende-me» e «Aprovar e gerar specs» aparecem como cartões no fio; cada decisão que tomas fica lá fixada como registo.","specsLabel":"Specs premium, auditadas com honestidade","specsBody":"As specs do Marco 1 são escritas por completo duas de cada vez e depois todo o lote é auditado (problema, solução, âmbito, considerações técnicas, seis ou mais critérios de aceitação) e uma barreira determinística bloqueia qualquer spec pobre.","milestonesLabel":"Marcos sobre rails","milestonesBody":"Lança o Marco 1 e ele corre como rails de até três specs, cada um empilhado no ramo do anterior. Os <b>pontos de controlo por vaga</b> perguntam antes de cada rail seguinte, ou ativa continuar automaticamente.","progressLabel":"Progresso ao vivo","progressBody":"O painel Blueprint mostra contagens reais (entregues, em revisão, feitas), nunca «completo» enquanto algo estiver por integrar. Os marcos seguintes são gerados contra o repositório real."},"authorSpecs":{"nav":"Redigir specs","title":"Transforma ideias em specs","subtitle":"Seis formas de capturar exatamente o que queres construir","intro":"Uma <b>spec</b> descreve trabalho que queres feito. Redige-a como convier ao momento: de uma linha até o agente pesquisar por ti.","agentLabel":"Pede ao agente","agentBody":"No modo Missão, descreve a alteração. O agente lê primeiro o código real, redige uma super spec como cartão ao vivo e guarda-a quando disseres.","exploreLabel":"Explorar: conversa","exploreBody":"Descreve o que queres num chat; um rascunho ao vivo reconstrói-se a cada turno. Um seletor de presets ajusta quanto contexto do projeto a IA vê: só a tua mensagem até todo o código mais os teus servidores MCP.","quickLabel":"Rápida: de uma vez","quickBody":"Já sabes o que queres? Gera uma spec completa num só turno. Opcionalmente enriquece-a com uma Camada de Contrato: nomes exatos, formas de dados, invariantes e lista de ficheiros para os agentes não reinventarem nada.","websiteLabel":"A partir de um site","websiteBody":"Abre um navegador integrado. Seleciona um elemento ou desenha um retângulo, e a captura, o DOM e o CSS aplicado tornam-se anexos.","smashLabel":"SMASH a um épico","smashBody":"Explode uma spec grande numa família de sub-specs menores com um clique; cada filha leva um resumo curto no seu cartão.","draftsLabel":"Rascunhos e continuar a editar","draftsBody":"Estaciona uma exploração em curso como spec rascunho e retoma-a depois; reabre qualquer spec em Explorar para continuar a afiná-la."},"rails":{"nav":"Rails e revisão","title":"Executa o pipeline sobre rails","subtitle":"Pistas isoladas e uma revisão que se consegue mesmo ler","intro":"Os <b>rails</b> são pistas de execução: até doze, criadas a pedido. Larga specs num rail e carrega em <play>▶ Play</play>, ou <b>Lançar tudo</b> os rails livres em paralelo. Cada execução trabalha no seu próprio worktree git, nunca no teu checkout.","jobLabel":"O que faz cada execução","flowCaption":"Cada fase é transmitida ao vivo. No fim, o trabalho fica no seu ramo e a app pergunta-te o que fazer: o Specrails produz PRs, nunca integra sozinho.","reviewLabel":"Revisão de PR que pergunta primeiro","reviewBody":"As specs terminadas ficam <b>Em revisão</b>. Tu escolhes: criar um PR rascunho, integrar localmente (sem remoto) ou descartar. Integrar passa-as a Feito.","packetLabel":"Pacote de revisão","packetBody":"Uma página em linguagem clara por entrega: o que foi pedido, o que mudou, o que a IA reporta face ao que a app verificou, o custo, com Aceitar / Pedir alterações / Descartar.","steerLabel":"Dirige a meio da execução","steerBody":"As execuções Claude são interativas: pergunta ou redireciona enquanto trabalham, e acompanha um progresso narrado em vez de logs em bruto.","loopsLabel":"Constrói os teus loops","loopsBody":"<b>Loops</b> é um construtor visual: encadeia passos de IA, comandos de shell e um <b>Loop Decider</b> que repete até cumprir o objetivo. Implement e Freestyle vêm prontos a usar.","profilesLabel":"Perfis de agente e predefinições","profilesBody":"Decide que agentes correm e que modelo cada um usa: por perfil de projeto, por rail, ou uma vez para toda a máquina em Definições → Agentes Specrails.","isolationLabel":"Muitos projetos, isolados","isolationBody":"Cada projeto tem a sua base de dados e fila; o teu repositório fica intacto porque o Specrails guarda os seus ficheiros na tua pasta pessoal."},"providers":{"nav":"O teu agente","title":"Traz o teu próprio agente","subtitle":"Claude Code ou Codex como motores de primeira classe","intro":"<b>Claude Code</b> ou <b>Codex CLI</b> são motores intercambiáveis sob um mesmo contrato. O que estiver instalado e com sessão nesta máquina é detetado automaticamente e oferecido em todo o lado; nada a configurar por projeto.","calloutLabel":"Quando há vários instalados","calloutBody":"Escolhe o motor <b>por spec, por rail, por missão ou por lançamento de terminal</b>; a app lembra a tua última escolha por projeto. Custos estimados marcam-se com <mono>~</mono>.","table":{"capability":"Capacidade","streamingResume":"Streaming e retoma de sessão","native":"Nativo","costReporting":"Reporte de custos","providerBilled":"Faturado pelo fornecedor","estimated":"Estimado (~)","unavailable":"Indisponível","telemetry":"Telemetria (OTEL)","synthesized":"Sintetizada","agentProfiles":"Perfis de agentes"}},"cost":{"nav":"Acompanhar custos","title":"Acompanhe cada cêntimo","subtitle":"Cada invocação faturável, registada e visualizada","intro":"Cada invocação de IA regista o ciclo de vida e o fornecedor. Uso e custo não reportados ficam indisponíveis.","analyticsLabel":"Página de Analytics","analyticsBody":"Um hero de burn-rate, cronologia diária, top specs, divisão por modelo e um scatter de custo vs. turnos. Filtre por período (7d / 30d / 90d / Tudo) e por superfície.","perTicketLabel":"Gastos por spec","perTicketBody":"O detalhe de cada spec mostra quanto custou e quantos turnos demorou, com deep link para Analytics filtrado para essa spec.","honestLabel":"Números honestos","honestBody":"O custo do Claude é informado pelo fornecedor; o custo do Codex pode ser estimado e marcado com <mono>~</mono>.","budgetsLabel":"Orçamentos e alertas","budgetsBody":"Defina um orçamento diário e um alerta de custo por job; a aplicação pausa automaticamente a fila quando freestylepassa o limite. Exporte tudo para CSV ou JSON."},"workspace":{"nav":"Espaço de trabalho","title":"Faz dele o teu espaço de trabalho","subtitle":"Tudo o que precisas sem sair da janela","terminalLabel":"Painel de terminal","terminalBody":"Um terminal real ao estilo VS Code em baixo (<mod>{{mod}}</mod> <j>J</j>): renderização WebGL, pesquisa, imagens inline, caminhos por arrastar e integração com a shell. Até 10 sessões por projeto.","codeLabel":"Explorador de código","codeBody":"Árvore de ficheiros só de leitura e visualizador Monaco com resumos de IA em linguagem clara e uma história de construção por ficheiro: que spec lhe tocou, quando e porquê.","browserLabel":"Navegador integrado","browserBody":"Abre ligações, PRs e o teu servidor de dev dentro da app: um painel de navegador nativo na versão desktop, com popups que mantêm os logins OAuth.","integrationsLabel":"Integrações e MCP","integrationsBody":"Um marketplace por projeto de integrações MCP (a navegação semântica Serena vem incluída), mais o servidor MCP do Specrails que expõe a app às tuas ferramentas de IA.","themesLabel":"Temas e efeitos","themesBody":"Seis temas integrados (specrails, dracula, aurora-light, obsidian-dark, code-rain e galaxy) aplicados antes de a interface pintar. Definições → Efeitos liga detalhes visuais como o halo de raciocínio do agente.","chatsLabel":"Chats minimizáveis","chatsBody":"Estaciona uma sessão de Explorar ou de Edição com IA num chip do dock e retoma-a depois; nunca se perde entre recargas ou trocas de projeto.","compareLabel":"Comparar lado a lado","compareBody":"Arrasta uma spec para a borda do ecrã e surge um seletor com as tuas outras specs: revê duas em conjunto, ao estilo tablet.","desktopLabel":"Desktop ou navegador","desktopBody":"Usa o Specrails no navegador ou instala a app desktop assinada (macOS e Windows), que inclui servidor, Node, git e a CLI do GitHub."},"companion":{"nav":"Companion móvel","title":"Leve o Specrails consigo","subtitle":"Specrails Companion — os seus pipelines, no seu telemóvel","intro":"O <b>Specrails Companion</b> é uma app web em specrails.dev/companion-app — abra-a no seu telemóvel (ou adicione-a ao ecrã principal) para navegar pelo quadro de specs, lançar e parar rails, acompanhar os logs dos jobs em direto e espreitar as analytics. Sem instalação, sem loja de apps.","localLabel":"100% local, como tudo o resto","localBody":"O seu telemóvel liga-se diretamente a este computador — ponto a ponto e cifrado (WebRTC). Sem relay na cloud, sem conta, e o seu código nunca sai dos seus dispositivos.","downloadLabel":"Abra-a no seu telemóvel","downloadHint":"Leia o código com a câmara do seu telemóvel ou abra specrails.dev/companion-app no respetivo navegador.","open":"Abrir o Specrails Companion","pairLabel":"Emparelhar demora dez segundos","pairBody":"No seu telemóvel, abra specrails.dev/companion-app e, aqui, vá a Definições → Companion móvel → Emparelhar companion web e siga os passos no ecrã."},"moveFast":{"paletteLabel":"Paleta de comandos","paletteShortcut":"<f>Carrega</f> <mod>{{mod}}</mod> <m>+</m> <k>K</k> <m>em qualquer lado</m>","paletteBody":"Muda de projeto, executa comandos de spec, salta para qualquer página e encontra jobs recentes, tudo com pesquisa difusa.","agentLabel":"Agente","agentBody":"Mostra ou esconde o agente com <mod>{{mod}}</mod> <shift>Shift</shift> <a>A</a>; percorre o nível com <shift>Shift</shift> <tab>Tab</tab>.","terminalLabel":"Painel de terminal","terminalBody":"Alterna com <mod>{{mod}}</mod> <j>J</j>.","shortcutsLabel":"Todos os atalhos","shortcutsBody":"Carrega em <q>?</q> para ver a cábula completa.","chatLabel":"Barra lateral direita","chatBody":"Alterna a barra lateral direita com <mod>{{mod}}</mod> <bkey>B</bkey>.","projectsLabel":"Barra de projetos","projectsBody":"Alterna a barra Arc esquerda com <alt>{{alt}}</alt> <mod>{{mod}}</mod> <bkey>B</bkey>.","pagesLabel":"Páginas e projetos por número","pagesBody":"<mod>{{mod}}</mod> <n>1–9</n> salta para uma página; <alt>{{alt}}</alt> <mod>{{mod}}</mod> <n>1–9</n> muda de projeto.","outro":"<b>Fim da visita.</b> Escreve o que queres construir no compositor da missão ou adiciona um projeto na barra esquerda. Podes reabrir esta visita a qualquer momento nas Definições."},"jira":{"label":"Integração com o Jira","body":"Apoie qualquer projeto num <b>quadro Jira</b> — cada spec torna-se um ticket Jira, sincronizado nos dois sentidos: o estado segue o rail e é publicado um comentário quando um job termina. Configure por projeto ao adicioná-lo, ou a qualquer momento nas Definições."}}`),a={addProject:e,prerequisites:t,instructions:n,welcome:r,onboarding:i};export{e as addProject,a as default,n as instructions,i as onboarding,t as prerequisites,r as welcome};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-CNC7AqOf.js";var t=e({addProject:()=>n,default:()=>s,instructions:()=>i,onboarding:()=>o,prerequisites:()=>r,welcome:()=>a}),n={title:`Add Project`,description:`Register a project directory to manage it from Specrails.`,noProviderDetected:`No AI CLI detected. Install Claude or Codex first.`,pathLabel:`Project path`,pathPlaceholder:`/Users/me/my-project`,pathHint:`Absolute path to the project root`,browseForFolder:`Browse for folder`,selectProjectFolder:`Select project folder`,nameLabel:`Display name`,optional:`(optional)`,namePlaceholder:`My Project`,nameHint:`Defaults to the directory name`,adding:`Adding...`,submit:`Add Project`,toolsRequired_one:`{{tools}} is required to add a project`,toolsRequired_other:`{{tools}} are required to add a project`,errors:{pathRequired:`Project path is required`,addFailed:`Failed to add project`},toasts:{registered:`Project "{{name}}" registered`},chooser:{description:`Bring an existing repository, or build a brand-new project from an idea.`,existingTitle:`Existing project`,existingDescription:`Register a repository that already exists on disk.`,newTitle:`New project`,newDescription:`Describe an idea and get a bootstrapped repo with a Milestone-1 backlog.`}},r={corruptedBundle:`bundle corrupted — reinstall app`,notInstalled:`not installed`,failedToExecute:`found but failed to execute`,failedToExecuteAt:`found at {{path}} but failed to execute`,failedToExecuteWithError:`found but failed to execute ({{error}})`,failedToExecuteAtWithError:`found at {{path}} but failed to execute ({{error}})`,needsMinimum:`{{version}} found — needs {{minVersion}}+`,unknownVersion:`unknown`,installedLabel:`installed`,verifyError:`Could not verify developer tools locally — install will validate.`,allDetected:`All required tools detected`,bundleCorruptedTitle:`App bundle corrupted`,toolsRequired_one:`{{count}} developer tool required`,toolsRequired_other:`{{count}} developer tools required`,reinstallHint:`Reinstall the Specrails app to restore bundled tools.`,installMissingHint:`Install the missing tools to continue.`,moreInfo:`More info`,bundledBadge:`bundled`,optional:`optional`,ghNoAuth:"Not signed in — run `gh auth login`"},i={title:`Install developer tools`,description:`SpecRails needs Node.js, npm, npx, and Git on PATH. Pick the snippet for your OS, run it, then click "I installed it, recheck".`,darwin:{intro:`Homebrew gets you both tools in one line. If you do not have brew, use the official downloads.`,installNodeGit:`Install Node.js and Git via Homebrew`},win32:{intro:`Winget ships with Windows 11 and recent Windows 10. Open PowerShell or Terminal and run:`,installNode:`Install Node.js LTS`,installGit:`Install Git`,note:`After install, restart Specrails so Windows refreshes PATH.`},linux:{intro:`Use your distro package manager:`,debian:`Debian / Ubuntu`,fedora:`Fedora / RHEL`},links:{nodeOfficial:`Node.js (official)`,gitOfficial:`Git (official)`,gitWindows:`Git for Windows (official)`},showOtherPlatforms:`Show other platforms`,hideOtherPlatforms:`Hide other platforms`,recheck:`I installed it, recheck`,diagnostics:{copy:`Copy diagnostics`,copied:`Diagnostics copied`,failed:`Copy failed`},corrupted:{title:`App bundle corrupted`,description:`One or more bundled tools (Node.js, Git) could not be verified.`,body:`This tool is bundled with the Specrails app and cannot be installed separately. If you see this message, the app bundle may be corrupted. Please reinstall Specrails.`,download:`Download latest`}},a={title:`Welcome to <spec>spec</spec><rails>rails</rails>`,tagline:`Specs in, reviewed pull requests out.`,description:`Specrails manages multiple projects from a single interface. Add your first project to get started.`,addFirstProject:`Add your first project`,jiraHint:`Connect each project to its own Jira board — specs stay in sync, both ways.`,mcpHint:`Connect external AI tools to Specrails over a secure local MCP server — on by default, manage it in Settings → MCP.`,agentChatHint:`Operate Specrails by chatting — a built-in agent drives specs, rails and analytics for you through the local MCP. Open it from the bubble or ⌘⇧A.`,localEnginesHint:`Only a local model? Add an OpenAI-compatible endpoint in Settings → Specrails Agents and every surface — rails, chat, missions — runs on it by default.`,replayTour:`Replay tour`},o=JSON.parse(`{"productTour":"Product tour","stepCount":"Step {{current}} of {{total}}","goToStep":"Go to step {{step}}: {{label}}","stepLabel":"Step {{step}}","skipTour":"Skip tour","getStarted":"Get started","flow":{"architect":"Architect","developer":"Developer","reviewer":"Reviewer","describe":"Describe","specs":"Specs","rails":"Rails","review":"Review & merge","yourReview":"Your review","blueprint":"Blueprint","approve":"Approve","m1Specs":"Milestone-1 specs","milestones":"Milestones"},"language":{"nav":"Language","title":"Choose your language","subtitle":"Specrails speaks your language","intro":"Pick the language you want the interface in. It applies instantly — this tour included.","note":"You can change it any time in Settings → Language."},"theme":{"nav":"Theme","title":"Pick your look","subtitle":"Built-in themes, applied instantly","intro":"Choose how Specrails should look — the theme applies the moment you click.","note":"You can change it any time in Settings → Appearance."},"welcome":{"nav":"Welcome","title":"Welcome to Specrails","subtitle":"Your local cockpit for shipping software with AI agents","intro":"Specrails turns an idea into shipped code — and lets you <b>see, steer and trust</b> every step. Describe what you want, get precise specs, run them on rails with Claude Code or Codex, and decide what to merge. Nothing merges without you.","coreLoopLabel":"The core loop","flowCaption":"<b>Describe → Specs → Rails → Review & merge</b>. Every step streams live, and every result waits for your decision.","missionLabel":"Mission mode — the default","missionBody":"One conversation drives the whole app: the agent authors specs, launches rails, checks spend and hands you decision cards. <b>You talk, it operates.</b>","boardLabel":"Board mode — one switch away","boardBody":"The classic dashboard: specs board, rails, jobs, analytics. Flip between the two from the switch in the left sidebar — <b>same projects, same data</b>.","localNote":"<b>100% local · single user · no accounts.</b> Everything runs on your machine. Your code never leaves the laptop unless <i>you</i> spawn an agent against it.","tourNote":"This quick tour walks through everything the app can do — about two minutes."},"mission":{"nav":"Mission mode","title":"Talk — the agent operates","subtitle":"Mission mode is the default surface","intro":"In <b>Mission mode</b> the whole window is one conversation with an agent that drives Specrails through its own <b>MCP tools</b>: “launch the three highest-priority specs”, “how much did I spend this week?”, “write me a spec for dark mode”. Everything it does is live — rails, specs and cards update as it works.","missionsLabel":"Missions & projects","missionsBody":"Each conversation is a mission pinned to a project (or Home for everything). Switch missions from the header, send follow-ups mid-turn — they queue and run in order.","levelsLabel":"You hold the leash","levelsBody":"A live level — <b>Observe → Edit → Operate → Autonomous</b>, cycled with <shift>Shift</shift> <tab>Tab</tab> — limits how far it can go. It never acts above the level you set.","cardsLabel":"Decision cards","cardsBody":"Launches surface as live cards pinned above the composer: rail progress, then Create PR / Integrate locally / Discard, with a plain-language Review. Spec numbers, jobs and loops in replies are clickable.","workspaceLabel":"A workspace at your side","workspaceBody":"The right sidebar opens Blueprint, Jobs, Analytics, an embedded browser, the terminal and the code explorer next to the conversation — no context switch.","mcpLabel":"Runs on the local MCP","mcpBody":"The agent works through the embedded Specrails MCP server — <b>on by default</b>, loopback only. The same server lets your own tools (Claude Desktop, Cursor…) drive Specrails; manage it in Settings → MCP."},"builder":{"nav":"New project","title":"Start a project from an idea","subtitle":"The Builder: blueprint, specs and milestones before a line of code exists","intro":"Add Project → <b>New</b> turns the agent into the <b>Project Builder</b>. Describe the idea; it interviews you briefly (or decides everything with one click), proposes product, core flow, platform, stack and milestones, and you approve or tweak.","flowLabel":"From idea to backlog","flowCaption":"The commit creates the repository, the workspace and the Milestone-1 backlog — optionally a private GitHub repo too.","cardsLabel":"One-click decisions","cardsBody":"“Surprise me” and “Approve & generate specs” appear as cards in the thread; each decision you take stays pinned there as a record.","specsLabel":"Premium specs, honestly audited","specsBody":"Milestone-1 specs are written in full two at a time, then the whole batch is audited — problem, solution, scope, technical considerations, six-plus acceptance criteria — and a deterministic gate blocks anything thin.","milestonesLabel":"Milestones on rails","milestonesBody":"Launch Milestone 1 and it runs as rails of up to three specs, each stacked on the previous one's branch. <b>Wave checkpoints</b> ask before each next rail — or flip auto-continue.","progressLabel":"Live progress","progressBody":"The Blueprint panel shows real counts — delivered, in review, done — never “complete” while anything is unmerged. Later milestones are generated against the real repository."},"authorSpecs":{"nav":"Author specs","title":"Turn ideas into specs","subtitle":"Six ways to capture exactly what you want built","intro":"A <b>spec</b> is a description of work you want done. Author one however suits the moment — from a one-liner to the agent doing the research for you.","agentLabel":"Ask the agent","agentBody":"In Mission mode, just describe the change. The agent reads the real codebase first, drafts a super spec as a live card and commits it when you say so.","exploreLabel":"Explore — converse","exploreBody":"Describe what you want in a chat; a live draft rebuilds itself every turn. A preset slider tunes how much project context the AI sees — from your message only, up to the full codebase plus your MCP servers.","quickLabel":"Quick — one shot","quickBody":"Already know what you want? Generate a complete spec in a single turn. Optionally enrich it with a Contract Layer: exact names, data shapes, invariants and a file-touch list so the agents don't reinvent anything.","websiteLabel":"From a website","websiteBody":"Opens an embedded browser. Hover-select an element or drag a rectangle, and the screenshot, DOM and applied CSS become attachments.","smashLabel":"SMASH a big epic","smashBody":"Explode a large spec into a family of smaller sub-specs in one click — each child carries a short summary on its card.","draftsLabel":"Drafts & Continue Editing","draftsBody":"Park an in-progress exploration as a draft spec and resume it later; reopen any spec back in Explore to keep refining it."},"rails":{"nav":"Rails & review","title":"Run the pipeline on rails","subtitle":"Isolated lanes, then a review you can actually read","intro":"<b>Rails</b> are work lanes — up to twelve, created on demand. Drop specs on a rail and press <play>▶ Play</play>, or <b>Launch all</b> idle rails in parallel. Each run works in its own git worktree, never in your checkout.","jobLabel":"What each run does","flowCaption":"Every phase streams live. At the end the work stays on its branch and the app asks you what to do — Specrails produces PRs, it never merges on its own.","reviewLabel":"Ask-first PR review","reviewBody":"Finished specs park <b>On review</b>. You choose: create a draft PR, integrate locally (no remote needed), or discard. Merge flips them to Done.","packetLabel":"Review packet","packetBody":"A plain-language page per delivery: what was asked, what changed, what the AI reports versus what the app verified, the cost — with Accept / Request changes / Discard.","steerLabel":"Steer mid-run","steerBody":"Claude runs are interactive: ask questions or redirect while they work, and follow a narrated progress view instead of raw logs.","loopsLabel":"Build your own loops","loopsBody":"<b>Loops</b> is a visual builder: chain AI steps, shell commands and a <b>Loop Decider</b> that repeats until a goal is met. Built-in Implement and Freestyle ship ready to use.","profilesLabel":"Agent profiles & defaults","profilesBody":"Decide which agents run and which model each uses — per project profile, per rail, or once for the whole machine in Settings → AI providers.","isolationLabel":"Many projects, isolated","isolationBody":"Each project has its own database and queue; your repository stays pristine because Specrails keeps its own files under your home folder."},"providers":{"nav":"Your agent","title":"Bring your own agent","subtitle":"Claude Code or Codex as first-class engines","intro":"<b>Claude Code</b> or <b>Codex CLI</b> are interchangeable engines behind one contract. Whatever is installed and signed in on this machine is detected automatically and offered everywhere — nothing to configure per project.","calloutLabel":"When several are installed","calloutBody":"Pick the engine <b>per spec, per rail, per mission or per terminal launch</b>; the app remembers your last choice per project. Estimated costs are marked with <mono>~</mono>.","table":{"capability":"Capability","streamingResume":"Streaming & session resume","native":"Native","costReporting":"Cost reporting","providerBilled":"Provider-billed","estimated":"Estimated (~)","unavailable":"Unavailable","telemetry":"Telemetry (OTEL)","synthesized":"Synthesized","agentProfiles":"Agent profiles"}},"cost":{"nav":"Track cost","title":"Track every cent","subtitle":"Every billable invocation, recorded and visualized","intro":"Every AI invocation records its lifecycle and provider. Usage and cost remain unavailable when the provider does not report them.","analyticsLabel":"Analytics page","analyticsBody":"A burn-rate hero, daily timeline, top specs, model breakdown and a cost-vs-turns scatter. Filter by period (7d / 30d / 90d / All) and by surface.","perTicketLabel":"Per-spec spending","perTicketBody":"Each spec's detail shows what it cost and how many turns it took, deep-linking into Analytics filtered to that spec.","honestLabel":"Honest numbers","honestBody":"Claude cost is provider-billed; Codex may be estimated and marked with <mono>~</mono>.","budgetsLabel":"Spend limits & alerts","budgetsBody":"Set a daily limit and a per-job cost alert; the app auto-pauses the queue when you cross the line. Export anything to CSV or JSON."},"workspace":{"nav":"Workspace","title":"Make it your workspace","subtitle":"Everything you need without leaving the window","terminalLabel":"Terminal panel","terminalBody":"A real VS-Code-style terminal at the bottom (<mod>{{mod}}</mod> <j>J</j>) — WebGL rendering, search, inline images, drag-drop paths and shell integration. Up to 10 sessions per project.","codeLabel":"Code explorer","codeBody":"A read-only file tree and Monaco viewer with plain-language AI summaries and a construction story per file: which spec touched it, when, and why.","browserLabel":"Embedded browser","browserBody":"Open links, PRs and your dev server inside the app — a native browser pane in the desktop build, with popups that keep OAuth logins working.","integrationsLabel":"Integrations & MCP","integrationsBody":"A per-project marketplace of MCP integrations (Serena semantic navigation is bundled), plus the Specrails MCP server that exposes the app to your own AI tools.","themesLabel":"Themes & effects","themesBody":"Six built-in themes — specrails, dracula, aurora-light, obsidian-dark, code-rain and galaxy — applied before the UI paints. Settings → Effects switches visual flourishes like the agent's thinking halo.","chatsLabel":"Minimizable chats","chatsBody":"Park an Explore or AI-Edit session into a dock chip and pick it back up later — never lost across refreshes or project switches.","compareLabel":"Compare side by side","compareBody":"Drag a spec to the screen edge and a picker of your other specs slides in — review two of them together, tablet-style.","desktopLabel":"Desktop or browser","desktopBody":"Run Specrails in your browser, or grab the signed desktop app (macOS & Windows) that bundles its own server, Node, git and GitHub CLI."},"companion":{"nav":"Mobile companion","title":"Take Specrails with you","subtitle":"Specrails Companion — your pipelines, on your phone","intro":"<b>Specrails Companion</b> is a web app at specrails.dev/companion-app — open it on your phone (or add it to your Home Screen) to browse the specs board, launch and stop rails, follow live job logs and glance at analytics. No install, no app store.","localLabel":"100% local, like everything else","localBody":"Your phone connects straight to this computer — peer-to-peer and encrypted (WebRTC). No cloud relay, no account, and your code never leaves your devices.","downloadLabel":"Open it on your phone","downloadHint":"Scan the code with your phone's camera, or open specrails.dev/companion-app in its browser.","open":"Open Specrails Companion","pairLabel":"Pairing takes ten seconds","pairBody":"On your phone open specrails.dev/companion-app, then here go to Settings → Mobile companion → Pair web companion and follow the on-screen steps."},"moveFast":{"paletteLabel":"Command palette","paletteShortcut":"<f>Press</f> <mod>{{mod}}</mod> <m>+</m> <k>K</k> <m>anywhere</m>","paletteBody":"Switch projects, run spec commands, jump to any page and find recent jobs — all with fuzzy search.","agentLabel":"Agent","agentBody":"Toggle the agent with <mod>{{mod}}</mod> <shift>Shift</shift> <a>A</a>; cycle its level with <shift>Shift</shift> <tab>Tab</tab>.","terminalLabel":"Terminal panel","terminalBody":"Toggle with <mod>{{mod}}</mod> <j>J</j>.","shortcutsLabel":"All shortcuts","shortcutsBody":"Press <q>?</q> to see the full cheat-sheet.","chatLabel":"Right sidebar","chatBody":"Toggle the right sidebar with <mod>{{mod}}</mod> <bkey>B</bkey>.","projectsLabel":"Projects sidebar","projectsBody":"Toggle the left Arc sidebar with <alt>{{alt}}</alt> <mod>{{mod}}</mod> <bkey>B</bkey>.","pagesLabel":"Pages & projects by number","pagesBody":"<mod>{{mod}}</mod> <n>1–9</n> jumps to a page; <alt>{{alt}}</alt> <mod>{{mod}}</mod> <n>1–9</n> switches project.","outro":"<b>That's the tour.</b> Type what you want to build into the mission composer, or add a project from the left sidebar. You can reopen this walkthrough anytime from Settings."},"jira":{"label":"Jira integration","body":"Back any project with a <b>Jira board</b> — each spec becomes a Jira issue, kept in sync both ways: status follows the rail, and a comment is posted when a job finishes. Configure it per project when you add it, or anytime in Settings."}}`),s={addProject:n,prerequisites:r,instructions:i,welcome:a,onboarding:o};export{t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={title:`Projekt hinzufügen`,description:`Registrieren Sie ein Projektverzeichnis, um es über Specrails zu verwalten.`,noProviderDetected:`Keine KI-CLI gefunden. Installieren Sie zuerst Claude oder Codex.`,pathLabel:`Projektpfad`,pathPlaceholder:`/Users/ich/mein-projekt`,pathHint:`Absoluter Pfad zum Projekt-Root`,browseForFolder:`Ordner auswählen`,selectProjectFolder:`Projektordner auswählen`,nameLabel:`Anzeigename`,optional:`(optional)`,namePlaceholder:`Mein Projekt`,nameHint:`Standard ist der Verzeichnisname`,adding:`Wird hinzugefügt…`,submit:`Projekt hinzufügen`,toolsRequired_one:`{{tools}} wird benötigt, um ein Projekt hinzuzufügen`,toolsRequired_other:`{{tools}} werden benötigt, um ein Projekt hinzuzufügen`,errors:{pathRequired:`Projektpfad ist erforderlich`,addFailed:`Projekt konnte nicht hinzugefügt werden`},toasts:{registered:`Projekt „{{name}}“ registriert`},chooser:{description:`Bring ein bestehendes Repository mit oder baue ein ganz neues Projekt aus einer Idee.`,existingTitle:`Bestehendes Projekt`,existingDescription:`Registriere ein Repository, das bereits auf der Festplatte existiert.`,newTitle:`Neues Projekt`,newDescription:`Beschreibe eine Idee und erhalte ein aufgesetztes Repo mit einem Meilenstein-1-Backlog.`}},t={corruptedBundle:`Bundle beschädigt – App neu installieren`,notInstalled:`nicht installiert`,failedToExecute:`gefunden, aber Ausführung fehlgeschlagen`,failedToExecuteAt:`unter {{path}} gefunden, aber Ausführung fehlgeschlagen`,failedToExecuteWithError:`gefunden, aber Ausführung fehlgeschlagen ({{error}})`,failedToExecuteAtWithError:`unter {{path}} gefunden, aber Ausführung fehlgeschlagen ({{error}})`,needsMinimum:`{{version}} gefunden – benötigt {{minVersion}}+`,unknownVersion:`unbekannt`,installedLabel:`installiert`,verifyError:`Entwickler-Tools konnten lokal nicht überprüft werden – die Installation validiert sie.`,allDetected:`Alle erforderlichen Tools erkannt`,bundleCorruptedTitle:`App-Bundle beschädigt`,toolsRequired_one:`{{count}} Entwickler-Tool erforderlich`,toolsRequired_other:`{{count}} Entwickler-Tools erforderlich`,reinstallHint:`Installieren Sie die Specrails-App neu, um die mitgelieferten Tools wiederherzustellen.`,installMissingHint:`Installieren Sie die fehlenden Tools, um fortzufahren.`,moreInfo:`Mehr Infos`,bundledBadge:`mitgeliefert`,optional:`optional`,ghNoAuth:"Nicht angemeldet — führe `gh auth login` aus"},n={title:`Entwickler-Tools installieren`,description:`SpecRails benötigt Node.js, npm, npx und Git im PATH. Wählen Sie das Snippet für Ihr Betriebssystem, führen Sie es aus und klicken Sie dann auf „Installiert, erneut prüfen“.`,darwin:{intro:`Mit Homebrew bekommen Sie beide Tools in einer Zeile. Ohne brew nutzen Sie die offiziellen Downloads.`,installNodeGit:`Node.js und Git über Homebrew installieren`},win32:{intro:`Winget ist in Windows 11 und aktuellen Windows-10-Versionen enthalten. Öffnen Sie PowerShell oder Terminal und führen Sie aus:`,installNode:`Node.js LTS installieren`,installGit:`Git installieren`,note:`Starten Sie Specrails nach der Installation neu, damit Windows den PATH aktualisiert.`},linux:{intro:`Verwenden Sie den Paketmanager Ihrer Distribution:`,debian:`Debian / Ubuntu`,fedora:`Fedora / RHEL`},links:{nodeOfficial:`Node.js (offiziell)`,gitOfficial:`Git (offiziell)`,gitWindows:`Git für Windows (offiziell)`},showOtherPlatforms:`Andere Plattformen anzeigen`,hideOtherPlatforms:`Andere Plattformen ausblenden`,recheck:`Installiert, erneut prüfen`,diagnostics:{copy:`Diagnose kopieren`,copied:`Diagnose kopiert`,failed:`Kopieren fehlgeschlagen`},corrupted:{title:`App-Bundle beschädigt`,description:`Mindestens ein mitgeliefertes Tool (Node.js, Git) konnte nicht verifiziert werden.`,body:`Dieses Tool ist in der Specrails-App enthalten und kann nicht separat installiert werden. Wenn Sie diese Meldung sehen, ist das App-Bundle möglicherweise beschädigt. Bitte installieren Sie Specrails neu.`,download:`Neueste Version herunterladen`}},r={title:`Willkommen bei <spec>spec</spec><rails>rails</rails>`,tagline:`Specs rein, geprüfte Pull Requests raus.`,description:`Specrails verwaltet mehrere Projekte über eine einzige Oberfläche. Fügen Sie Ihr erstes Projekt hinzu, um loszulegen.`,addFirstProject:`Erstes Projekt hinzufügen`,jiraHint:`Verbinde jedes Projekt mit seinem eigenen Jira-Board — Specs bleiben in beide Richtungen synchron.`,mcpHint:`Verbinde externe KI-Tools über einen sicheren lokalen MCP-Server mit Specrails: standardmäßig an, verwalte ihn unter Einstellungen → MCP.`,agentChatHint:`Steuere Specrails per Chat — ein integrierter Agent verwaltet Specs, Rails und Analysen für dich über den lokalen MCP. Öffne ihn über die Blase oder mit ⌘⇧A.`,localEnginesHint:`Nur ein lokales Modell? Füge unter Einstellungen → Specrails Agents einen OpenAI-kompatiblen Endpoint hinzu — Rails, Chat und Missionen laufen dann standardmäßig darauf.`,replayTour:`Tour erneut abspielen`},i=JSON.parse(`{"productTour":"Produkttour","stepCount":"Schritt {{current}} von {{total}}","goToStep":"Zu Schritt {{step}}: {{label}}","stepLabel":"Schritt {{step}}","skipTour":"Tour überspringen","getStarted":"Loslegen","flow":{"architect":"Architekt","developer":"Entwickler","reviewer":"Reviewer","describe":"Beschreiben","specs":"Specs","rails":"Rails","review":"Prüfen & mergen","yourReview":"Dein Review","blueprint":"Blueprint","approve":"Freigeben","m1Specs":"Specs für Meilenstein 1","milestones":"Meilensteine"},"language":{"nav":"Sprache","title":"Wählen Sie Ihre Sprache","subtitle":"Specrails spricht Ihre Sprache","intro":"Wählen Sie die Sprache für die Oberfläche. Sie gilt sofort – diese Tour eingeschlossen.","note":"Sie können sie jederzeit unter Einstellungen → Sprache ändern."},"theme":{"nav":"Theme","title":"Wählen Sie Ihren Look","subtitle":"Integrierte Themes, sofort angewendet","intro":"Wählen Sie, wie Specrails aussehen soll — das Theme wird sofort beim Klick angewendet.","note":"Sie können es jederzeit unter Einstellungen → Erscheinungsbild ändern."},"welcome":{"nav":"Willkommen","title":"Willkommen bei Specrails","subtitle":"Dein lokales Cockpit, um Software mit KI-Agenten auszuliefern","intro":"Specrails macht aus einer Idee ausgelieferten Code, und du kannst jeden Schritt <b>sehen, steuern und prüfen</b>. Beschreibe, was du willst, erhalte präzise Specs, führe sie auf Rails mit Claude Code oder Codex aus und entscheide, was gemergt wird. Nichts wird ohne dich gemergt.","coreLoopLabel":"Der Kernzyklus","flowCaption":"<b>Beschreiben → Specs → Rails → Prüfen & mergen</b>. Jeder Schritt streamt live, jedes Ergebnis wartet auf deine Entscheidung.","missionLabel":"Missionsmodus: der Standard","missionBody":"Eine Unterhaltung steuert die ganze App: der Agent schreibt Specs, startet Rails, prüft Ausgaben und reicht dir Entscheidungskarten. <b>Du sprichst, er handelt.</b>","boardLabel":"Board-Modus: einen Schalter entfernt","boardBody":"Das klassische Dashboard: Spec-Board, Rails, Jobs, Analytik. Wechsle mit dem Schalter in der linken Seitenleiste: <b>gleiche Projekte, gleiche Daten</b>.","localNote":"<b>100 % lokal · ein Nutzer · keine Konten.</b> Alles läuft auf deinem Rechner. Dein Code verlässt den Laptop nur, wenn <i>du</i> einen Agenten darauf startest.","tourNote":"Diese kurze Tour zeigt alles, was die App kann: etwa zwei Minuten."},"mission":{"nav":"Missionsmodus","title":"Sprich, der Agent handelt","subtitle":"Der Missionsmodus ist die Standardoberfläche","intro":"Im <b>Missionsmodus</b> ist das ganze Fenster eine Unterhaltung mit einem Agenten, der Specrails über seine eigenen <b>MCP-Tools</b> steuert: „starte die drei wichtigsten Specs“, „wie viel habe ich diese Woche ausgegeben?“, „schreib mir eine Spec für den Dark Mode“. Alles passiert live: Rails, Specs und Karten aktualisieren sich, während er arbeitet.","missionsLabel":"Missionen & Projekte","missionsBody":"Jede Unterhaltung ist eine Mission, an ein Projekt geheftet (oder an Home für alles). Wechsle Missionen im Kopfbereich, schick Nachrichten mitten im Zug: sie reihen sich ein und laufen der Reihe nach.","levelsLabel":"Du hältst die Leine","levelsBody":"Eine Live-Stufe, <b>Beobachten → Bearbeiten → Bedienen → Autonom</b>, mit <shift>Shift</shift> <tab>Tab</tab> durchgeschaltet, begrenzt, wie weit er gehen darf. Er handelt nie über der gesetzten Stufe.","cardsLabel":"Entscheidungskarten","cardsBody":"Starts erscheinen als Live-Karten über dem Composer: Rail-Fortschritt, dann PR erstellen / Lokal integrieren / Verwerfen, mit einem Review in Klartext. Spec-Nummern, Jobs und Loops in Antworten sind anklickbar.","workspaceLabel":"Ein Arbeitsbereich nebenan","workspaceBody":"Die rechte Seitenleiste öffnet Blueprint, Jobs, Analytik, einen eingebetteten Browser, das Terminal und den Code-Explorer neben der Unterhaltung, ohne Kontextwechsel.","mcpLabel":"Läuft über das lokale MCP","mcpBody":"Der Agent arbeitet über den eingebetteten Specrails-MCP-Server: <b>standardmäßig an</b>, nur Loopback. Derselbe Server lässt deine eigenen Tools (Claude Desktop, Cursor …) Specrails steuern; verwalte ihn unter Einstellungen → MCP."},"builder":{"nav":"Neues Projekt","title":"Ein Projekt aus einer Idee starten","subtitle":"Der Builder: Blueprint, Specs und Meilensteine, bevor eine Zeile Code existiert","intro":"Projekt hinzufügen → <b>Neu</b> macht den Agenten zum <b>Projekt-Builder</b>. Beschreibe die Idee; er fragt kurz nach (oder entscheidet alles mit einem Klick), schlägt Produkt, Kernablauf, Plattform, Stack und Meilensteine vor, und du gibst frei oder passt an.","flowLabel":"Von der Idee zum Backlog","flowCaption":"Der Commit legt Repository, Arbeitsbereich und das Backlog für Meilenstein 1 an; optional auch ein privates GitHub-Repo.","cardsLabel":"Entscheidungen mit einem Klick","cardsBody":"„Überrasch mich“ und „Freigeben und Specs erzeugen“ erscheinen als Karten im Verlauf; jede getroffene Entscheidung bleibt dort als Nachweis stehen.","specsLabel":"Premium-Specs, ehrlich geprüft","specsBody":"Die Specs für Meilenstein 1 werden vollständig je zwei auf einmal geschrieben, dann wird der ganze Stapel geprüft (Problem, Lösung, Umfang, technische Überlegungen, sechs oder mehr Akzeptanzkriterien) und ein deterministisches Gate blockiert alles Dünne.","milestonesLabel":"Meilensteine auf Rails","milestonesBody":"Starte Meilenstein 1 und er läuft als Rails mit bis zu drei Specs, jedes auf dem Branch des vorigen gestapelt. <b>Wellen-Checkpoints</b> fragen vor jedem nächsten Rail, oder schalte automatisches Fortfahren ein.","progressLabel":"Live-Fortschritt","progressBody":"Das Blueprint-Panel zeigt echte Zahlen (geliefert, im Review, fertig), nie „abgeschlossen“, solange etwas ungemergt ist. Spätere Meilensteine werden gegen das echte Repository erzeugt."},"authorSpecs":{"nav":"Specs schreiben","title":"Ideen zu Specs machen","subtitle":"Sechs Wege, genau festzuhalten, was gebaut werden soll","intro":"Eine <b>Spec</b> beschreibt Arbeit, die erledigt werden soll. Schreib sie, wie es gerade passt: vom Einzeiler bis zum Agenten, der für dich recherchiert.","agentLabel":"Den Agenten fragen","agentBody":"Im Missionsmodus beschreibst du einfach die Änderung. Der Agent liest zuerst den echten Code, entwirft eine Super-Spec als Live-Karte und speichert sie, wenn du es sagst.","exploreLabel":"Explore: im Gespräch","exploreBody":"Beschreibe im Chat, was du willst; ein Live-Entwurf baut sich in jedem Zug neu auf. Ein Preset-Regler bestimmt, wie viel Projektkontext die KI sieht: von nur deiner Nachricht bis zur ganzen Codebasis plus deinen MCP-Servern.","quickLabel":"Quick: in einem Zug","quickBody":"Du weißt schon, was du willst? Erzeuge eine vollständige Spec in einem Zug. Optional mit Contract Layer: exakte Namen, Datenformen, Invarianten und Dateiliste, damit die Agenten nichts neu erfinden.","websiteLabel":"Von einer Website","websiteBody":"Öffnet einen eingebetteten Browser. Wähle ein Element oder zieh ein Rechteck: Screenshot, DOM und angewandtes CSS werden zu Anhängen.","smashLabel":"Ein großes Epic SMASHen","smashBody":"Zerlege eine große Spec mit einem Klick in eine Familie kleinerer Sub-Specs; jedes Kind trägt eine Kurzfassung auf seiner Karte.","draftsLabel":"Entwürfe & Weiterbearbeiten","draftsBody":"Parke eine laufende Exploration als Entwurfs-Spec und mach später weiter; öffne jede Spec wieder in Explore, um sie zu verfeinern."},"rails":{"nav":"Rails & Review","title":"Die Pipeline auf Rails ausführen","subtitle":"Isolierte Spuren, dann ein Review, das man wirklich lesen kann","intro":"<b>Rails</b> sind Ausführungsspuren: bis zu zwölf, nach Bedarf erstellt. Lege Specs auf ein Rail und drücke <play>▶ Play</play>, oder <b>Alle starten</b> für freie Rails parallel. Jeder Lauf arbeitet im eigenen Git-Worktree, nie in deinem Checkout.","jobLabel":"Was jeder Lauf tut","flowCaption":"Jede Phase streamt live. Am Ende bleibt die Arbeit auf ihrem Branch und die App fragt dich, was zu tun ist: Specrails erzeugt PRs, es mergt nie von selbst.","reviewLabel":"PR-Review, das zuerst fragt","reviewBody":"Fertige Specs landen <b>Im Review</b>. Du wählst: Draft-PR erstellen, lokal integrieren (ohne Remote) oder verwerfen. Der Merge setzt sie auf Fertig.","packetLabel":"Review-Paket","packetBody":"Eine Klartext-Seite pro Lieferung: was verlangt war, was sich geändert hat, was die KI berichtet gegenüber dem, was die App verifiziert hat, die Kosten, mit Annehmen / Änderungen anfordern / Verwerfen.","steerLabel":"Mitten im Lauf steuern","steerBody":"Claude-Läufe sind interaktiv: stelle Fragen oder lenke um, während sie arbeiten, und folge einem erzählten Fortschritt statt roher Logs.","loopsLabel":"Eigene Loops bauen","loopsBody":"<b>Loops</b> ist ein visueller Builder: verkette KI-Schritte, Shell-Befehle und einen <b>Loop Decider</b>, der wiederholt, bis das Ziel erreicht ist. Implement und Freestyle sind fertig dabei.","profilesLabel":"Agentenprofile & Vorgaben","profilesBody":"Lege fest, welche Agenten laufen und welches Modell jeder nutzt: pro Projektprofil, pro Rail oder einmal für die ganze Maschine unter Einstellungen → Specrails-Agenten.","isolationLabel":"Viele Projekte, isoliert","isolationBody":"Jedes Projekt hat eigene Datenbank und Warteschlange; dein Repository bleibt unberührt, weil Specrails seine Dateien in deinem Home-Ordner hält."},"providers":{"nav":"Dein Agent","title":"Bring deinen eigenen Agenten","subtitle":"Claude Code oder Codex als vollwertige Engines","intro":"<b>Claude Code</b> oder <b>Codex CLI</b> sind austauschbare Engines hinter einem Vertrag. Was auf dieser Maschine installiert und angemeldet ist, wird automatisch erkannt und überall angeboten; nichts pro Projekt zu konfigurieren.","calloutLabel":"Wenn mehrere installiert sind","calloutBody":"Wähle die Engine <b>pro Spec, pro Rail, pro Mission oder pro Terminalstart</b>; die App merkt sich deine letzte Wahl pro Projekt. Geschätzte Kosten sind mit <mono>~</mono> markiert.","table":{"capability":"Fähigkeit","streamingResume":"Streaming & Sitzungsfortsetzung","native":"Nativ","costReporting":"Kostenberichte","providerBilled":"Anbieterseitig abgerechnet","estimated":"Geschätzt (~)","unavailable":"Nicht verfügbar","telemetry":"Telemetrie (OTEL)","synthesized":"Synthetisiert","agentProfiles":"Agentenprofile"}},"cost":{"nav":"Kosten verfolgen","title":"Jeden Cent im Blick","subtitle":"Jeder kostenpflichtige Aufruf, erfasst und visualisiert","intro":"Jeder KI-Aufruf erfasst Lebenszyklus und Anbieter. Nicht gemeldete Nutzungs- und Kostendaten bleiben nicht verfügbar.","analyticsLabel":"Analytics-Seite","analyticsBody":"Ein Burn-Rate-Hero, Tages-Timeline, Top-Specs, Modellaufschlüsselung und ein Kosten-vs.-Turns-Scatter. Filtern nach Zeitraum (7d / 30d / 90d / Alle) und nach Bereich.","perTicketLabel":"Ausgaben pro Spec","perTicketBody":"Die Detailansicht jeder Spec zeigt, was sie gekostet hat und wie viele Turns sie brauchte – mit Deep-Link in die auf diese Spec gefilterte Analytics-Ansicht.","honestLabel":"Ehrliche Zahlen","honestBody":"Claude-Kosten werden vom Anbieter gemeldet; Codex können geschätzt und mit <mono>~</mono> markiert werden.","budgetsLabel":"Budgets & Alarme","budgetsBody":"Legen Sie ein Tagesbudget und einen Kostenalarm pro Job fest; die App pausiert die Queue automatisch, wenn die Grenze überschritten wird. Exportieren Sie alles als CSV oder JSON."},"workspace":{"nav":"Arbeitsbereich","title":"Mach es zu deinem Arbeitsbereich","subtitle":"Alles Nötige, ohne das Fenster zu verlassen","terminalLabel":"Terminal-Panel","terminalBody":"Ein echtes Terminal im VS-Code-Stil unten (<mod>{{mod}}</mod> <j>J</j>): WebGL-Rendering, Suche, Inline-Bilder, Pfade per Drag & Drop und Shell-Integration. Bis zu 10 Sitzungen pro Projekt.","codeLabel":"Code-Explorer","codeBody":"Ein schreibgeschützter Dateibaum und Monaco-Viewer mit KI-Zusammenfassungen in Klartext und einer Entstehungsgeschichte pro Datei: welche Spec sie berührt hat, wann und warum.","browserLabel":"Eingebetteter Browser","browserBody":"Öffne Links, PRs und deinen Dev-Server in der App: ein nativer Browser-Bereich in der Desktop-Version, mit Popups, die OAuth-Logins erhalten.","integrationsLabel":"Integrationen & MCP","integrationsBody":"Ein Marktplatz für MCP-Integrationen pro Projekt (Serenas semantische Navigation ist dabei), plus der Specrails-MCP-Server, der die App deinen eigenen KI-Tools öffnet.","themesLabel":"Themes & Effekte","themesBody":"Sechs eingebaute Themes (specrails, dracula, aurora-light, obsidian-dark, code-rain und galaxy), angewandt bevor die UI zeichnet. Einstellungen → Effekte schaltet visuelle Akzente wie den Denk-Halo des Agenten.","chatsLabel":"Minimierbare Chats","chatsBody":"Parke eine Explore- oder KI-Edit-Sitzung als Dock-Chip und nimm sie später wieder auf; geht bei Reloads oder Projektwechseln nie verloren.","compareLabel":"Nebeneinander vergleichen","compareBody":"Zieh eine Spec an den Bildschirmrand und eine Auswahl deiner anderen Specs fährt herein: prüfe zwei zusammen, Tablet-Stil.","desktopLabel":"Desktop oder Browser","desktopBody":"Nutze Specrails im Browser oder hol dir die signierte Desktop-App (macOS & Windows), die Server, Node, git und GitHub-CLI mitbringt."},"companion":{"nav":"Mobiler Companion","title":"Nehmen Sie Specrails überallhin mit","subtitle":"Specrails Companion – Ihre Pipelines auf Ihrem Smartphone","intro":"<b>Specrails Companion</b> ist eine Web-App unter specrails.dev/companion-app – öffnen Sie sie auf Ihrem Smartphone (oder fügen Sie sie zu Ihrem Home-Bildschirm hinzu), um das Specs-Board zu durchstöbern, Rails zu starten und zu stoppen, Live-Job-Logs zu verfolgen und einen Blick auf die Analytics zu werfen. Keine Installation, kein App-Store.","localLabel":"100 % lokal, wie alles andere","localBody":"Ihr Smartphone verbindet sich direkt mit diesem Rechner – Peer-to-Peer und verschlüsselt (WebRTC). Kein Cloud-Relay, kein Konto, und Ihr Code verlässt nie Ihre Geräte.","downloadLabel":"Auf Ihrem Smartphone öffnen","downloadHint":"Scannen Sie den Code mit der Kamera Ihres Smartphones oder öffnen Sie specrails.dev/companion-app im Browser.","open":"Specrails Companion öffnen","pairLabel":"Die Kopplung dauert zehn Sekunden","pairBody":"Öffnen Sie auf Ihrem Smartphone specrails.dev/companion-app und gehen Sie dann hier zu Einstellungen → Mobiler Companion → Web-Companion koppeln und folgen Sie den Schritten am Bildschirm."},"moveFast":{"paletteLabel":"Befehlspalette","paletteShortcut":"<f>Drücke</f> <mod>{{mod}}</mod> <m>+</m> <k>K</k> <m>überall</m>","paletteBody":"Projekte wechseln, Spec-Befehle ausführen, zu jeder Seite springen und aktuelle Jobs finden, alles mit unscharfer Suche.","agentLabel":"Agent","agentBody":"Agent ein-/ausblenden mit <mod>{{mod}}</mod> <shift>Shift</shift> <a>A</a>; Stufe durchschalten mit <shift>Shift</shift> <tab>Tab</tab>.","terminalLabel":"Terminal-Panel","terminalBody":"Umschalten mit <mod>{{mod}}</mod> <j>J</j>.","shortcutsLabel":"Alle Kurzbefehle","shortcutsBody":"Drücke <q>?</q> für die komplette Übersicht.","chatLabel":"Rechte Seitenleiste","chatBody":"Rechte Seitenleiste umschalten mit <mod>{{mod}}</mod> <bkey>B</bkey>.","projectsLabel":"Projektleiste","projectsBody":"Linke Arc-Leiste umschalten mit <alt>{{alt}}</alt> <mod>{{mod}}</mod> <bkey>B</bkey>.","pagesLabel":"Seiten & Projekte per Nummer","pagesBody":"<mod>{{mod}}</mod> <n>1–9</n> springt zu einer Seite; <alt>{{alt}}</alt> <mod>{{mod}}</mod> <n>1–9</n> wechselt das Projekt.","outro":"<b>Das war die Tour.</b> Tippe in den Missions-Composer, was du bauen willst, oder füge links ein Projekt hinzu. Diese Tour lässt sich jederzeit in den Einstellungen erneut öffnen."},"jira":{"label":"Jira-Integration","body":"Hinterlege jedes Projekt mit einem <b>Jira-Board</b> — jede Spec wird zu einem Jira-Vorgang, in beide Richtungen synchronisiert: Der Status folgt dem Rail und am Ende eines Jobs wird ein Kommentar gepostet. Richte es pro Projekt beim Hinzufügen ein oder jederzeit in den Einstellungen."}}`),a={addProject:e,prerequisites:t,instructions:n,welcome:r,onboarding:i};export{e as addProject,a as default,n as instructions,i as onboarding,t as prerequisites,r as welcome};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-CNC7AqOf.js";var t=e({badges:()=>a,board:()=>n,bulk:()=>C,card:()=>o,default:()=>E,display:()=>S,emptyState:()=>s,epicFilter:()=>g,errors:()=>c,filters:()=>x,gridView:()=>u,jiraStatusFilter:()=>f,labelFilter:()=>h,listView:()=>l,movePicker:()=>T,priority:()=>i,search:()=>b,sortControl:()=>p,sprintFilter:()=>_,status:()=>r,statusFilter:()=>d,toolbar:()=>y,triage:()=>v,viewTier:()=>m,views:()=>w}),n={title:`Specs`,dropHere:`Drop here`,emptyNoSpecs:`No specs yet`,emptyNoLabelMatch:`No specs match the active labels`,emptyNoActiveSpecs:`No active specs`,emptyHint:`Click "New spec" to get started`,dropToMarkDone:`Drop to mark as done`,emptyNoDoneLabelMatch:`No done specs match the active labels`,emptyNoCompleted:`No completed specs yet`,emptyNoStatusMatch:`No specs match the selected status`,untitledSpec:`Untitled spec`,doneHeading:`Done · {{count}}`,clearFilters:`Clear filters`,emptyNoSearchMatch:`No specs match "{{query}}"`},r={todo:`Todo`,inProgress:`In Progress`,onReview:`On Review`,onReviewHint:`Implemented — a draft PR is awaiting your review decision`,done:`Done`,cancelled:`Cancelled`},i={critical:`critical`,high:`high`,medium:`medium`,low:`low`},a={epic:`Epic`,epicWithCount:`Epic · {{count}}`,subSpec:`↑ Sub-Spec`,review:`Review`,needsReviewTitle:`This spec was marked done but its job ended in failure — review it`,raw:`Raw`,rawTitle:`Raw spec — no AI generation at intake`,contract:`Contract`,openParentEpicTitle:`Open parent Epic #{{id}} · {{title}}`,addendaTitle_one:`{{count}} open addendum — rides into the next launch`,addendaTitle_other:`{{count}} open addenda — ride into the next launch`,inFlow:`In Flow`,inFlowPaused:`Flow paused`,inFlowTitle:`Being built in Flow — open the mission`,inFlowPausedTitle:`Flow paused — open the mission to resume`},o={deleteSpec:`Delete spec #{{id}}`,ticketFallbackLabel:`Spec #{{id}}`,dependsOn:`Depends on {{count}}`,continueEditing:`Continue Editing`,continueEditingTitle:`Continue editing this spec`,moveToRail:`Move to rail`},s={noTickets:`No specs yet`,noTicketsHint:`Create your first spec or run a product backlog command to populate specs`,createFirst:`Create your first spec`},c={loadFailed:`Failed to load specs`},l={status:{draft:`draft`,todo:`todo`,inProgress:`in progress`,onReview:`on review`,done:`done`,cancelled:`cancelled`},filterAll:`All ({{count}})`,statusWithCount:`{{status}} ({{count}})`,allLabels:`All labels`,searchPlaceholder:`Search...`,columns:{status:`Status`,title:`Title`,priority:`Priority`,labels:`Labels`,updated:`Updated`},noMatch:`No specs match your filters`,clearFilters:`Clear filters`,loadMore:`Load more ({{count}} remaining)`},u={emptyTodo:`No specs to do`,emptyInProgress:`Nothing in progress`,emptyDone:`No completed specs`,cancelledSection:`Cancelled ({{count}})`},d={ariaLabel:`Filter by status`,all:`All`,active:`Active`,more:`More`,moreSelected:`Status: {{status}}. Choose another status`},f={ariaLabel:`Filter by Jira status`,triggerLabel:`Jira status`,all:`All Jira statuses`,other:`Other`},p={modeAriaLabel:`Sort mode`,tooltip:`Sort: {{mode}}`,toggleDirAriaLabel:`Toggle sort direction`,ascending:`Ascending`,descending:`Descending`,modes:{default:`Default`,ticketId:`Spec #`,priority:`Priority`,jiraKey:`Jira Ticket #`}},m={ariaLabel:`Specs view`,listView:`List view`,postitView:`Post-it view`},h={ariaLabel:`Filter by labels`,all:`All labels`,empty:`No labels in this project.`,selected_one:`{{count}} label`,selected_other:`{{count}} labels`,clear:`clear`},g={all:`All epics`,ariaLabel:`Filter by epic`},_={current:`Current`,all:`All sprints`,ariaLabel:`Filter by sprint`},v={compute:`Triage`,computeTitle:`Estimate the size and recommend a loop for this spec`,recalculate:`Recalculate`,recalculating:`Recalculating…`,recalculateFailed:`Recalculation failed — try again`,ariaLabel:`Triage of spec #{{id}}`,recommends:`Recommends {{loop}}`,confidence:{high:`high`,medium:`medium`,low:`low`},flags:{publicInterfaces:`Public API`,dataModel:`Data model`,securitySurface:`Security`,none:`No public API, data or security impact`},filesLikely:`Likely files`,moreFiles_one:`+{{count}} more file`,moreFiles_other:`+{{count}} more files`,modelCost:`{{model}} · {{cost}}`,modelOnly:`{{model}} · cost not reported`,unavailable:`Triage n/a`,unavailableDetail:`No model is available for triage ({{reason}}).`,failed:`Triage failed`,failedDetail:`The triage could not be completed: {{error}}`},y={newSpec:`New spec`,newSpecTooltip:`New spec (⌘↵)`},b={placeholder:`Search specs`,ariaLabel:`Search specs by title, number, label or Jira key`,clear:`Clear search`},x={trigger:`Filters`,triggerActive_one:`Filters, {{count}} active`,triggerActive_other:`Filters, {{count}} active`,title:`Filters`,sections:{labels:`Labels`,epic:`Epic`,sprint:`Sprint`,jiraStatus:`Jira status`},clearSection:`Clear`,clearAll:`Clear all`,done:`Done`,findLabel:`Find a label`,removeChip:`Remove filter: {{label}}`,resultCount:`{{shown}} of {{total}}`,more:`+{{count}}`,chip:{search:`Search: "{{query}}"`,label:`Label: {{label}}`,epic:`Epic: {{name}}`,sprint:`Sprint: {{name}}`,jiraStatus:`Jira: {{status}}`}},S={ariaLabel:`Sort and view`,menuLabel:`Sort and view options`,sortBy:`Sort by`,direction:`Direction`,view:`View`},C={toolbarLabel_one:`Bulk actions, {{count}} spec selected`,toolbarLabel_other:`Bulk actions, {{count}} specs selected`,count_one:`{{count}} selected`,count_other:`{{count}} selected`,listLabel:`Specs, multi-select`,selectSpec:`Select spec #{{id}}`,moveTo:`Move to`,label:`Label`,priority:`Priority`,addToRail:`Add to rail`,launchAll:`Launch selected`,delete:`Delete`,clear:`Clear`,clearTitle:`Clear the selection (Esc)`,statusLocal_one:`Status · {{count}} spec`,statusLocal_other:`Status · {{count}} specs`,statusJira_one:`Jira status · {{count}} spec`,statusJira_other:`Jira status · {{count}} specs`,loadingStatuses:`Loading Jira statuses…`,statusesFailed:`Couldn’t load the Jira statuses`,noStatuses:`No statuses available`,labelAdd:`Add label`,labelRemove:`Remove label`,noLabels:`No labels in this project yet`,noRails:`No rails available`,railRunning:`running`,railSpecs_one:`{{count}} spec`,railSpecs_other:`{{count}} specs`,result:{moved_one:`Moved {{count}} spec`,moved_other:`Moved {{count}} specs`,labeled_one:`Labels updated on {{count}} spec`,labeled_other:`Labels updated on {{count}} specs`,prioritized_one:`Priority changed on {{count}} spec`,prioritized_other:`Priority changed on {{count}} specs`,railed_one:`Added {{count}} spec to the rail`,railed_other:`Added {{count}} specs to the rail`,deleted_one:`Deleted {{count}} spec`,deleted_other:`Deleted {{count}} specs`},partial:`{{ok}} of {{total}} done · {{failed}} failed`,failedAll_one:`Couldn’t update {{count}} spec`,failedAll_other:`Couldn’t update {{count}} specs`,launch:{none:`None of the selected specs can launch right now`,skipBlocked_one:`{{count}} can’t launch yet`,skipBlocked_other:`{{count}} can’t launch yet`,skipNoRail_one:`{{count}} has no free rail`,skipNoRail_other:`{{count}} have no free rail`,skipReviewLimit_one:`{{count}} held by the review limit`,skipReviewLimit_other:`{{count}} held by the review limit`},more:`More`},w={trigger:`Views`,triggerActive:`Views, current: {{name}}`,menuLabel:`Saved views`,empty:`No saved views yet`,saveCurrent:`Save current view…`,manage:`Manage views…`,saveTitle:`Save view`,saveDescription:`Saves the status, filters, sort and density as they are now, for this project.`,nameLabel:`Name`,namePlaceholder:`Ready to launch`,save:`Save`,saved:`Saved view “{{name}}”`,updated:`View updated from the board`,manageTitle:`Manage views`,manageDescription:`Rename a view, update it from the board as it is now, copy its link or delete it. Views belong to this project.`,rename:`Rename`,updateFromCurrent:`Update from the board`,upToDate:`Already matches the board`,copyLink:`Copy link`,delete:`Delete view`,done:`Done`,linkCopied:`Link copied`,linkCopyFailed:`Couldn’t copy the link`,linkMissing:`That view doesn’t exist in this project`,deleted:`View “{{name}}” deleted`,linkOtherProject:`This view belongs to {{project}}.`,openInProject:`Open in {{project}}`},T={titleOne:`Move spec #{{id}}`,titleMany:`Move {{count}} specs`,description:`Pick a status or a rail. Same as dragging the card there.`,statusHeading:`Status`,railHeading:`Rail`,jiraLoading:`Loading Jira statuses…`,jiraFailed:`Could not load the Jira statuses.`,jiraStatus:`{{status}} (Jira)`,noRails:`No rails yet.`,running:`Running`,hintNavigate:`move`,hintChoose:`choose`,hintClose:`close`,current:`Current`,descriptionOne:`“{{title}}”. Pick a status or a rail.`},E={board:n,status:r,priority:i,badges:a,card:o,emptyState:s,errors:c,listView:l,gridView:u,statusFilter:d,jiraStatusFilter:f,sortControl:p,viewTier:m,labelFilter:h,epicFilter:g,sprintFilter:_,triage:v,toolbar:y,search:b,filters:x,display:S,bulk:C,views:w,movePicker:T};export{t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={title:`Specs`,dropHere:`Suelta aquí`,emptyNoSpecs:`Aún no hay specs`,emptyNoLabelMatch:`Ninguna spec coincide con las etiquetas activas`,emptyNoActiveSpecs:`No hay specs activas`,emptyHint:`Haz clic en «Nueva spec» para empezar`,dropToMarkDone:`Suelta para marcar como hecha`,emptyNoDoneLabelMatch:`Ninguna spec hecha coincide con las etiquetas activas`,emptyNoCompleted:`Aún no hay specs completadas`,emptyNoStatusMatch:`Ninguna spec coincide con el estado seleccionado`,untitledSpec:`Spec sin título`,doneHeading:`Hechas · {{count}}`,clearFilters:`Limpiar filtros`,emptyNoSearchMatch:`Ninguna spec coincide con «{{query}}»`},t={todo:`Por hacer`,inProgress:`En curso`,onReview:`En revisión`,onReviewHint:`Implementada — una PR en borrador espera tu decisión de revisión`,done:`Hecho`,cancelled:`Cancelado`},n={critical:`crítica`,high:`alta`,medium:`media`,low:`baja`},r={epic:`Épica`,epicWithCount:`Épica · {{count}}`,subSpec:`↑ Sub-Spec`,review:`Revisar`,needsReviewTitle:`Esta spec se marcó como hecha pero su trabajo terminó en fallo — revísala`,raw:`Raw`,rawTitle:`Spec Raw — sin generación con IA al crearla`,contract:`Contract`,openParentEpicTitle:`Abrir la épica padre #{{id}} · {{title}}`,addendaTitle_one:`{{count}} anexo abierto — viaja con el próximo lanzamiento`,addendaTitle_other:`{{count}} anexos abiertos — viajan con el próximo lanzamiento`,inFlow:`En Flow`,inFlowPaused:`Flow en pausa`,inFlowTitle:`Se está construyendo en Flow: abre la misión`,inFlowPausedTitle:`Flow en pausa: abre la misión para reanudarlo`},i={deleteSpec:`Eliminar spec #{{id}}`,ticketFallbackLabel:`Spec #{{id}}`,dependsOn:`Depende de {{count}}`,continueEditing:`Seguir editando`,continueEditingTitle:`Seguir editando esta spec`,moveToRail:`Mover a un rail`},a={noTickets:`Aún no hay specs`,noTicketsHint:`Crea tu primera spec o ejecuta un comando de product backlog para generar specs`,createFirst:`Crea tu primera spec`},o={loadFailed:`No se pudieron cargar las specs`},s={status:{draft:`borrador`,todo:`por hacer`,inProgress:`en curso`,onReview:`en revisión`,done:`hecho`,cancelled:`cancelado`},filterAll:`Todos ({{count}})`,statusWithCount:`{{status}} ({{count}})`,allLabels:`Todas las etiquetas`,searchPlaceholder:`Buscar...`,columns:{status:`Estado`,title:`Título`,priority:`Prioridad`,labels:`Etiquetas`,updated:`Actualizado`},noMatch:`Ninguna spec coincide con tus filtros`,clearFilters:`Limpiar filtros`,loadMore:`Cargar más ({{count}} restantes)`},c={emptyTodo:`No hay specs por hacer`,emptyInProgress:`Nada en curso`,emptyDone:`No hay specs completadas`,cancelledSection:`Cancelados ({{count}})`},l={ariaLabel:`Filtrar por estado`,all:`Todos`,active:`Activas`,more:`Más`,moreSelected:`Estado: {{status}}. Elegir otro estado`},u={ariaLabel:`Filtrar por estado de Jira`,triggerLabel:`Estado Jira`,all:`Todos los estados de Jira`,other:`Otros`},d={modeAriaLabel:`Modo de ordenación`,tooltip:`Ordenar: {{mode}}`,toggleDirAriaLabel:`Cambiar dirección de ordenación`,ascending:`Ascendente`,descending:`Descendente`,modes:{default:`Por defecto`,ticketId:`Spec #`,priority:`Prioridad`,jiraKey:`Ticket de Jira #`}},f={ariaLabel:`Vista de specs`,listView:`Vista de lista`,postitView:`Vista post-it`},p={ariaLabel:`Filtrar por etiquetas`,all:`Todas las etiquetas`,empty:`No hay etiquetas en este proyecto.`,selected_one:`{{count}} etiqueta`,selected_other:`{{count}} etiquetas`,clear:`limpiar`},m={all:`Todas las épicas`,ariaLabel:`Filtrar por épica`},h={current:`Actual`,all:`Todos los sprints`,ariaLabel:`Filtrar por sprint`},g={compute:`Triaje`,computeTitle:`Estimar el tamaño y recomendar un loop para esta spec`,recalculate:`Recalcular`,recalculating:`Recalculando…`,recalculateFailed:`No se pudo recalcular — inténtalo de nuevo`,ariaLabel:`Triaje de la spec #{{id}}`,recommends:`Recomienda {{loop}}`,confidence:{high:`alta`,medium:`media`,low:`baja`},flags:{publicInterfaces:`API pública`,dataModel:`Modelo de datos`,securitySurface:`Seguridad`,none:`Sin impacto en API pública, datos ni seguridad`},filesLikely:`Archivos probables`,moreFiles_one:`+{{count}} archivo más`,moreFiles_other:`+{{count}} archivos más`,modelCost:`{{model}} · {{cost}}`,modelOnly:`{{model}} · coste no informado`,unavailable:`Triaje n/d`,unavailableDetail:`No hay ningún modelo disponible para el triaje ({{reason}}).`,failed:`Triaje fallido`,failedDetail:`No se pudo completar el triaje: {{error}}`},_={newSpec:`Nueva spec`,newSpecTooltip:`Nueva spec (⌘↵)`},v={placeholder:`Buscar specs`,ariaLabel:`Buscar specs por título, número, etiqueta o clave de Jira`,clear:`Borrar búsqueda`},y={trigger:`Filtros`,triggerActive_one:`Filtros, {{count}} activo`,triggerActive_other:`Filtros, {{count}} activos`,title:`Filtros`,sections:{labels:`Etiquetas`,epic:`Épica`,sprint:`Sprint`,jiraStatus:`Estado en Jira`},clearSection:`Quitar`,clearAll:`Quitar todo`,done:`Listo`,findLabel:`Buscar etiqueta`,removeChip:`Quitar filtro: {{label}}`,resultCount:`{{shown}} de {{total}}`,more:`+{{count}}`,chip:{search:`Búsqueda: «{{query}}»`,label:`Etiqueta: {{label}}`,epic:`Épica: {{name}}`,sprint:`Sprint: {{name}}`,jiraStatus:`Jira: {{status}}`}},b={ariaLabel:`Orden y vista`,menuLabel:`Opciones de orden y vista`,sortBy:`Ordenar por`,direction:`Dirección`,view:`Vista`},x={toolbarLabel_one:`Acciones en bloque, {{count}} spec seleccionada`,toolbarLabel_other:`Acciones en bloque, {{count}} specs seleccionadas`,count_one:`{{count}} seleccionada`,count_other:`{{count}} seleccionadas`,listLabel:`Specs, selección múltiple`,selectSpec:`Seleccionar la spec n.º {{id}}`,moveTo:`Mover a`,label:`Etiqueta`,priority:`Prioridad`,addToRail:`Añadir a un rail`,launchAll:`Lanzar selección`,delete:`Eliminar`,clear:`Deseleccionar`,clearTitle:`Quitar la selección (Esc)`,statusLocal_one:`Estado · {{count}} spec`,statusLocal_other:`Estado · {{count}} specs`,statusJira_one:`Estado de Jira · {{count}} spec`,statusJira_other:`Estado de Jira · {{count}} specs`,loadingStatuses:`Cargando los estados de Jira…`,statusesFailed:`No se pudieron cargar los estados de Jira`,noStatuses:`No hay estados disponibles`,labelAdd:`Añadir etiqueta`,labelRemove:`Quitar etiqueta`,noLabels:`Este proyecto aún no tiene etiquetas`,noRails:`No hay rails disponibles`,railRunning:`en ejecución`,railSpecs_one:`{{count}} spec`,railSpecs_other:`{{count}} specs`,result:{moved_one:`{{count}} spec movida`,moved_other:`{{count}} specs movidas`,labeled_one:`Etiquetas actualizadas en {{count}} spec`,labeled_other:`Etiquetas actualizadas en {{count}} specs`,prioritized_one:`Prioridad cambiada en {{count}} spec`,prioritized_other:`Prioridad cambiada en {{count}} specs`,railed_one:`{{count}} spec añadida al rail`,railed_other:`{{count}} specs añadidas al rail`,deleted_one:`{{count}} spec eliminada`,deleted_other:`{{count}} specs eliminadas`},partial:`{{ok}} de {{total}} hechas · {{failed}} con error`,failedAll_one:`No se pudo actualizar {{count}} spec`,failedAll_other:`No se pudieron actualizar {{count}} specs`,launch:{none:`Ninguna de las specs seleccionadas se puede lanzar ahora`,skipBlocked_one:`{{count}} aún no se puede lanzar`,skipBlocked_other:`{{count}} aún no se pueden lanzar`,skipNoRail_one:`{{count}} sin rail libre`,skipNoRail_other:`{{count}} sin rail libre`,skipReviewLimit_one:`{{count}} retenida por el límite de revisión`,skipReviewLimit_other:`{{count}} retenidas por el límite de revisión`},more:`Más`},S={trigger:`Vistas`,triggerActive:`Vistas, actual: {{name}}`,menuLabel:`Vistas guardadas`,empty:`Aún no hay vistas guardadas`,saveCurrent:`Guardar la vista actual…`,manage:`Gestionar vistas…`,saveTitle:`Guardar vista`,saveDescription:`Guarda el estado, los filtros, el orden y la densidad tal como están ahora, para este proyecto.`,nameLabel:`Nombre`,namePlaceholder:`Listas para lanzar`,save:`Guardar`,saved:`Vista «{{name}}» guardada`,updated:`Vista actualizada desde el tablero`,manageTitle:`Gestionar vistas`,manageDescription:`Renombra una vista, actualízala con el tablero tal como está, copia su enlace o elimínala. Las vistas pertenecen a este proyecto.`,rename:`Renombrar`,updateFromCurrent:`Actualizar desde el tablero`,upToDate:`Ya coincide con el tablero`,copyLink:`Copiar enlace`,delete:`Eliminar vista`,done:`Hecho`,linkCopied:`Enlace copiado`,linkCopyFailed:`No se pudo copiar el enlace`,linkMissing:`Esa vista no existe en este proyecto`,deleted:`Vista «{{name}}» eliminada`,linkOtherProject:`Esta vista es del proyecto {{project}}.`,openInProject:`Abrir en {{project}}`},C={titleOne:`Mover la spec #{{id}}`,titleMany:`Mover {{count}} specs`,description:`Elige un estado o un rail. Equivale a arrastrar la tarjeta hasta allí.`,statusHeading:`Estado`,railHeading:`Rail`,jiraLoading:`Cargando estados de Jira…`,jiraFailed:`No se pudieron cargar los estados de Jira.`,jiraStatus:`{{status}} (Jira)`,noRails:`Aún no hay rails.`,running:`En marcha`,hintNavigate:`moverse`,hintChoose:`elegir`,hintClose:`cerrar`,current:`Actual`,descriptionOne:`«{{title}}». Elige un estado o un rail.`},w={board:e,status:t,priority:n,badges:r,card:i,emptyState:a,errors:o,listView:s,gridView:c,statusFilter:l,jiraStatusFilter:u,sortControl:d,viewTier:f,labelFilter:p,epicFilter:m,sprintFilter:h,triage:g,toolbar:_,search:v,filters:y,display:b,bulk:x,views:S,movePicker:C};export{r as badges,e as board,x as bulk,i as card,w as default,b as display,a as emptyState,m as epicFilter,o as errors,y as filters,c as gridView,u as jiraStatusFilter,p as labelFilter,s as listView,C as movePicker,n as priority,v as search,d as sortControl,h as sprintFilter,t as status,l as statusFilter,_ as toolbar,g as triage,f as viewTier,S as views};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={title:`スペック`,dropHere:`ここにドロップ`,emptyNoSpecs:`スペックはまだありません`,emptyNoLabelMatch:`アクティブなラベルに一致するスペックはありません`,emptyNoActiveSpecs:`アクティブなスペックはありません`,emptyHint:`「新規スペック」をクリックして開始`,dropToMarkDone:`ドロップして完了にする`,emptyNoDoneLabelMatch:`アクティブなラベルに一致する完了スペックはありません`,emptyNoCompleted:`完了したスペックはまだありません`,emptyNoStatusMatch:`選択したステータスに一致するスペックはありません`,untitledSpec:`無題のスペック`,doneHeading:`完了 · {{count}}`,clearFilters:`フィルターをクリア`,emptyNoSearchMatch:`「{{query}}」に一致するスペックはありません`},t={todo:`未着手`,inProgress:`進行中`,onReview:`レビュー中`,onReviewHint:`実装済み — ドラフト PR があなたのレビュー判断を待っています`,done:`完了`,cancelled:`キャンセル`},n={critical:`クリティカル`,high:`高`,medium:`中`,low:`低`},r={epic:`エピック`,epicWithCount:`エピック · {{count}}`,subSpec:`↑ Sub-Spec`,review:`レビュー`,needsReviewTitle:`このスペックは完了とマークされましたが、ジョブが失敗で終了しました — 確認してください`,raw:`Raw`,rawTitle:`Raw スペック — 取り込み時に AI 生成なし`,contract:`Contract`,openParentEpicTitle:`親エピック #{{id}} を開く · {{title}}`,addendaTitle_one:`{{count}} 件の未処理補足 — 次回の起動に同行`,addendaTitle_other:`{{count}} 件の未処理補足 — 次回の起動に同行`,inFlow:`Flow 中`,inFlowPaused:`Flow 一時停止中`,inFlowTitle:`Flow で作成中 — ミッションを開く`,inFlowPausedTitle:`Flow 一時停止中 — ミッションを開いて再開`},i={deleteSpec:`スペック #{{id}} を削除`,ticketFallbackLabel:`スペック #{{id}}`,dependsOn:`{{count}} 件に依存`,continueEditing:`編集を続ける`,continueEditingTitle:`このスペックの編集を続ける`,moveToRail:`レールに移動`},a={noTickets:`スペックはまだありません`,noTicketsHint:`最初のスペックを作成するか、プロダクトバックログコマンドを実行してスペックを生成してください`,createFirst:`最初のスペックを作成`},o={loadFailed:`スペックの読み込みに失敗しました`},s={status:{draft:`下書き`,todo:`未着手`,inProgress:`進行中`,onReview:`レビュー中`,done:`完了`,cancelled:`キャンセル`},filterAll:`すべて ({{count}})`,statusWithCount:`{{status}} ({{count}})`,allLabels:`すべてのラベル`,searchPlaceholder:`検索...`,columns:{status:`ステータス`,title:`タイトル`,priority:`優先度`,labels:`ラベル`,updated:`更新`},noMatch:`フィルターに一致するスペックはありません`,clearFilters:`フィルターをクリア`,loadMore:`さらに読み込む(残り {{count}} 件)`},c={emptyTodo:`未着手のスペックはありません`,emptyInProgress:`進行中のものはありません`,emptyDone:`完了したスペックはありません`,cancelledSection:`キャンセル ({{count}})`},l={ariaLabel:`ステータスで絞り込み`,all:`すべて`,active:`アクティブ`,more:`その他`,moreSelected:`ステータス: {{status}}。別のステータスを選択`},u={ariaLabel:`Jira ステータスで絞り込み`,triggerLabel:`Jira ステータス`,all:`すべての Jira ステータス`,other:`その他`},d={modeAriaLabel:`並べ替えモード`,tooltip:`並べ替え: {{mode}}`,toggleDirAriaLabel:`並べ替え方向を切り替え`,ascending:`昇順`,descending:`降順`,modes:{default:`デフォルト`,ticketId:`スペック #`,priority:`優先度`,jiraKey:`Jira チケット #`}},f={ariaLabel:`スペック表示`,listView:`リスト表示`,postitView:`付箋表示`},p={ariaLabel:`ラベルで絞り込み`,all:`すべてのラベル`,empty:`このプロジェクトにラベルはありません。`,selected_one:`{{count}} 件のラベル`,selected_other:`{{count}} 件のラベル`,clear:`クリア`},m={all:`すべてのエピック`,ariaLabel:`エピックで絞り込み`},h={current:`現在`,all:`すべてのスプリント`,ariaLabel:`スプリントで絞り込み`},g={compute:`トリアージ`,computeTitle:`このスペックの規模を見積もり、ループを推奨します`,recalculate:`再計算`,recalculating:`再計算中…`,recalculateFailed:`再計算に失敗しました — もう一度お試しください`,ariaLabel:`スペック #{{id}} のトリアージ`,recommends:`推奨: {{loop}}`,confidence:{high:`高`,medium:`中`,low:`低`},flags:{publicInterfaces:`公開 API`,dataModel:`データモデル`,securitySurface:`セキュリティ`,none:`公開 API・データ・セキュリティへの影響なし`},filesLikely:`関係しそうなファイル`,moreFiles_one:`他 {{count}} 件`,moreFiles_other:`他 {{count}} 件`,modelCost:`{{model}} · {{cost}}`,modelOnly:`{{model}} · コスト未報告`,unavailable:`トリアージ不可`,unavailableDetail:`トリアージに使えるモデルがありません ({{reason}})。`,failed:`トリアージ失敗`,failedDetail:`トリアージを完了できませんでした: {{error}}`},_={newSpec:`新規スペック`,newSpecTooltip:`新規スペック (⌘↵)`},v={placeholder:`スペックを検索`,ariaLabel:`タイトル・番号・ラベル・Jiraキーでスペックを検索`,clear:`検索をクリア`},y={trigger:`フィルター`,triggerActive_one:`フィルター({{count}} 件適用中)`,triggerActive_other:`フィルター({{count}} 件適用中)`,title:`フィルター`,sections:{labels:`ラベル`,epic:`エピック`,sprint:`スプリント`,jiraStatus:`Jira ステータス`},clearSection:`クリア`,clearAll:`すべてクリア`,done:`完了`,findLabel:`ラベルを検索`,removeChip:`フィルターを解除: {{label}}`,resultCount:`{{total}} 件中 {{shown}} 件`,more:`+{{count}}`,chip:{search:`検索:「{{query}}」`,label:`ラベル: {{label}}`,epic:`エピック: {{name}}`,sprint:`スプリント: {{name}}`,jiraStatus:`Jira: {{status}}`}},b={ariaLabel:`並べ替えと表示`,menuLabel:`並べ替えと表示のオプション`,sortBy:`並べ替え`,direction:`順序`,view:`表示`},x={toolbarLabel_one:`一括操作、{{count}}件のスペックを選択中`,toolbarLabel_other:`一括操作、{{count}}件のスペックを選択中`,count_one:`{{count}}件を選択`,count_other:`{{count}}件を選択`,listLabel:`スペック(複数選択)`,selectSpec:`スペック #{{id}} を選択`,moveTo:`移動先`,label:`ラベル`,priority:`優先度`,addToRail:`レールに追加`,launchAll:`選択を起動`,delete:`削除`,clear:`選択解除`,clearTitle:`選択を解除(Esc)`,statusLocal_one:`ステータス · {{count}}件`,statusLocal_other:`ステータス · {{count}}件`,statusJira_one:`Jiraステータス · {{count}}件`,statusJira_other:`Jiraステータス · {{count}}件`,loadingStatuses:`Jiraのステータスを読み込み中…`,statusesFailed:`Jiraのステータスを読み込めませんでした`,noStatuses:`利用できるステータスがありません`,labelAdd:`ラベルを追加`,labelRemove:`ラベルを外す`,noLabels:`このプロジェクトにはまだラベルがありません`,noRails:`利用できるレールがありません`,railRunning:`実行中`,railSpecs_one:`{{count}}件`,railSpecs_other:`{{count}}件`,result:{moved_one:`スペック{{count}}件を移動しました`,moved_other:`スペック{{count}}件を移動しました`,labeled_one:`スペック{{count}}件のラベルを更新しました`,labeled_other:`スペック{{count}}件のラベルを更新しました`,prioritized_one:`スペック{{count}}件の優先度を変更しました`,prioritized_other:`スペック{{count}}件の優先度を変更しました`,railed_one:`スペック{{count}}件をレールに追加しました`,railed_other:`スペック{{count}}件をレールに追加しました`,deleted_one:`スペック{{count}}件を削除しました`,deleted_other:`スペック{{count}}件を削除しました`},partial:`{{total}}件中{{ok}}件が完了 · {{failed}}件が失敗`,failedAll_one:`スペック{{count}}件を更新できませんでした`,failedAll_other:`スペック{{count}}件を更新できませんでした`,launch:{none:`選択したスペックは、今は起動できません`,skipBlocked_one:`{{count}}件はまだ起動できません`,skipBlocked_other:`{{count}}件はまだ起動できません`,skipNoRail_one:`{{count}}件は空きレールなし`,skipNoRail_other:`{{count}}件は空きレールなし`,skipReviewLimit_one:`{{count}}件はレビュー上限で保留`,skipReviewLimit_other:`{{count}}件はレビュー上限で保留`},more:`その他`},S={trigger:`ビュー`,triggerActive:`ビュー、現在: {{name}}`,menuLabel:`保存したビュー`,empty:`保存したビューはまだありません`,saveCurrent:`現在のビューを保存…`,manage:`ビューを管理…`,saveTitle:`ビューを保存`,saveDescription:`現在のステータス、フィルター、並び順、表示密度を、このプロジェクト用に保存します。`,nameLabel:`名前`,namePlaceholder:`起動準備完了`,save:`保存`,saved:`ビュー「{{name}}」を保存しました`,updated:`ボードの内容でビューを更新しました`,manageTitle:`ビューを管理`,manageDescription:`ビューの名前変更、現在のボードでの更新、リンクのコピー、削除ができます。ビューはこのプロジェクトに属します。`,rename:`名前を変更`,updateFromCurrent:`現在のボードで更新`,upToDate:`すでにボードと一致しています`,copyLink:`リンクをコピー`,delete:`ビューを削除`,done:`完了`,linkCopied:`リンクをコピーしました`,linkCopyFailed:`リンクをコピーできませんでした`,linkMissing:`このビューはこのプロジェクトにありません`,deleted:`ビュー「{{name}}」を削除しました`,linkOtherProject:`このビューは {{project}} のものです。`,openInProject:`{{project}} で開く`},C={titleOne:`スペック #{{id}} を移動`,titleMany:`{{count}} 件のスペックを移動`,description:`ステータスまたはレールを選びます。カードをドラッグするのと同じ操作です。`,statusHeading:`ステータス`,railHeading:`レール`,jiraLoading:`Jiraのステータスを読み込み中…`,jiraFailed:`Jiraのステータスを読み込めませんでした。`,jiraStatus:`{{status}}(Jira)`,noRails:`レールはまだありません。`,running:`実行中`,hintNavigate:`移動`,hintChoose:`選択`,hintClose:`閉じる`,current:`現在`,descriptionOne:`「{{title}}」。ステータスまたはレールを選んでください。`},w={board:e,status:t,priority:n,badges:r,card:i,emptyState:a,errors:o,listView:s,gridView:c,statusFilter:l,jiraStatusFilter:u,sortControl:d,viewTier:f,labelFilter:p,epicFilter:m,sprintFilter:h,triage:g,toolbar:_,search:v,filters:y,display:b,bulk:x,views:S,movePicker:C};export{r as badges,e as board,x as bulk,i as card,w as default,b as display,a as emptyState,m as epicFilter,o as errors,y as filters,c as gridView,u as jiraStatusFilter,p as labelFilter,s as listView,C as movePicker,n as priority,v as search,d as sortControl,h as sprintFilter,t as status,l as statusFilter,_ as toolbar,g as triage,f as viewTier,S as views};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={title:`Specs`,dropHere:`Déposer ici`,emptyNoSpecs:`Aucune spec pour l'instant`,emptyNoLabelMatch:`Aucune spec ne correspond aux labels actifs`,emptyNoActiveSpecs:`Aucune spec active`,emptyHint:`Cliquez sur « Nouvelle spec » pour commencer`,dropToMarkDone:`Déposez pour marquer comme terminée`,emptyNoDoneLabelMatch:`Aucune spec terminée ne correspond aux labels actifs`,emptyNoCompleted:`Aucune spec terminée pour l'instant`,emptyNoStatusMatch:`Aucune spec ne correspond au statut sélectionné`,untitledSpec:`Spec sans titre`,doneHeading:`Terminées · {{count}}`,clearFilters:`Effacer les filtres`,emptyNoSearchMatch:`Aucune spec ne correspond à « {{query}} »`},t={todo:`À faire`,inProgress:`En cours`,onReview:`En révision`,onReviewHint:`Implémentée — une PR en brouillon attend votre décision de revue`,done:`Terminé`,cancelled:`Annulé`},n={critical:`critique`,high:`haute`,medium:`moyenne`,low:`basse`},r={epic:`Epic`,epicWithCount:`Epic · {{count}}`,subSpec:`↑ Sous-spec`,review:`À revoir`,needsReviewTitle:`Cette spec a été marquée comme terminée mais son job a échoué — vérifiez-la`,raw:`Raw`,rawTitle:`Spec Raw — aucune génération IA à la création`,contract:`Contract`,openParentEpicTitle:`Ouvrir l'Epic parent #{{id}} · {{title}}`,addendaTitle_one:`{{count}} addendum ouvert — accompagne le prochain lancement`,addendaTitle_other:`{{count}} addenda ouverts — accompagnent le prochain lancement`,inFlow:`En Flow`,inFlowPaused:`Flow en pause`,inFlowTitle:`En cours de construction dans Flow — ouvrir la mission`,inFlowPausedTitle:`Flow en pause — ouvrir la mission pour reprendre`},i={deleteSpec:`Supprimer la spec #{{id}}`,ticketFallbackLabel:`Spec #{{id}}`,dependsOn:`Dépend de {{count}}`,continueEditing:`Continuer l'édition`,continueEditingTitle:`Continuer à éditer cette spec`,moveToRail:`Déplacer vers un rail`},a={noTickets:`Aucune spec pour l'instant`,noTicketsHint:`Créez votre première spec ou exécutez une commande de product backlog pour remplir les specs`,createFirst:`Créer votre première spec`},o={loadFailed:`Échec du chargement des specs`},s={status:{draft:`brouillon`,todo:`à faire`,inProgress:`en cours`,onReview:`en révision`,done:`terminé`,cancelled:`annulé`},filterAll:`Tous ({{count}})`,statusWithCount:`{{status}} ({{count}})`,allLabels:`Tous les labels`,searchPlaceholder:`Rechercher…`,columns:{status:`Statut`,title:`Titre`,priority:`Priorité`,labels:`Labels`,updated:`Mis à jour`},noMatch:`Aucune spec ne correspond à vos filtres`,clearFilters:`Effacer les filtres`,loadMore:`Charger plus ({{count}} restants)`},c={emptyTodo:`Aucune spec à faire`,emptyInProgress:`Rien en cours`,emptyDone:`Aucune spec terminée`,cancelledSection:`Annulés ({{count}})`},l={ariaLabel:`Filtrer par statut`,all:`Tous`,active:`Actives`,more:`Plus`,moreSelected:`Statut : {{status}}. Choisir un autre statut`},u={ariaLabel:`Filtrer par statut Jira`,triggerLabel:`Statut Jira`,all:`Tous les statuts Jira`,other:`Autres`},d={modeAriaLabel:`Mode de tri`,tooltip:`Tri : {{mode}}`,toggleDirAriaLabel:`Inverser le sens du tri`,ascending:`Croissant`,descending:`Décroissant`,modes:{default:`Par défaut`,ticketId:`Spec #`,priority:`Priorité`,jiraKey:`Ticket Jira #`}},f={ariaLabel:`Vue des specs`,listView:`Vue liste`,postitView:`Vue post-it`},p={ariaLabel:`Filtrer par labels`,all:`Toutes les étiquettes`,empty:`Aucun label dans ce projet.`,selected_one:`{{count}} label`,selected_other:`{{count}} labels`,clear:`effacer`},m={all:`Toutes les épopées`,ariaLabel:`Filtrer par épopée`},h={current:`Actuel`,all:`Tous les sprints`,ariaLabel:`Filtrer par sprint`},g={compute:`Triage`,computeTitle:`Estimer la taille et recommander une boucle pour cette spec`,recalculate:`Recalculer`,recalculating:`Recalcul…`,recalculateFailed:`Échec du recalcul — réessayez`,ariaLabel:`Triage de la spec #{{id}}`,recommends:`Recommande {{loop}}`,confidence:{high:`élevée`,medium:`moyenne`,low:`faible`},flags:{publicInterfaces:`API publique`,dataModel:`Modèle de données`,securitySurface:`Sécurité`,none:`Aucun impact sur l'API publique, les données ou la sécurité`},filesLikely:`Fichiers probables`,moreFiles_one:`+{{count}} fichier de plus`,moreFiles_other:`+{{count}} fichiers de plus`,modelCost:`{{model}} · {{cost}}`,modelOnly:`{{model}} · coût non communiqué`,unavailable:`Triage n/d`,unavailableDetail:`Aucun modèle n'est disponible pour le triage ({{reason}}).`,failed:`Échec du triage`,failedDetail:`Le triage n'a pas pu aboutir : {{error}}`},_={newSpec:`Nouvelle spec`,newSpecTooltip:`Nouvelle spec (⌘↵)`},v={placeholder:`Rechercher des specs`,ariaLabel:`Rechercher des specs par titre, numéro, étiquette ou clé Jira`,clear:`Effacer la recherche`},y={trigger:`Filtres`,triggerActive_one:`Filtres, {{count}} actif`,triggerActive_other:`Filtres, {{count}} actifs`,title:`Filtres`,sections:{labels:`Étiquettes`,epic:`Epic`,sprint:`Sprint`,jiraStatus:`Statut Jira`},clearSection:`Effacer`,clearAll:`Tout effacer`,done:`Terminé`,findLabel:`Trouver une étiquette`,removeChip:`Retirer le filtre : {{label}}`,resultCount:`{{shown}} sur {{total}}`,more:`+{{count}}`,chip:{search:`Recherche : « {{query}} »`,label:`Étiquette : {{label}}`,epic:`Epic : {{name}}`,sprint:`Sprint : {{name}}`,jiraStatus:`Jira : {{status}}`}},b={ariaLabel:`Tri et affichage`,menuLabel:`Options de tri et d'affichage`,sortBy:`Trier par`,direction:`Ordre`,view:`Affichage`},x={toolbarLabel_one:`Actions groupées, {{count}} spec sélectionnée`,toolbarLabel_other:`Actions groupées, {{count}} specs sélectionnées`,count_one:`{{count}} sélectionnée`,count_other:`{{count}} sélectionnées`,listLabel:`Specs, sélection multiple`,selectSpec:`Sélectionner la spec n° {{id}}`,moveTo:`Déplacer vers`,label:`Libellé`,priority:`Priorité`,addToRail:`Ajouter à un rail`,launchAll:`Lancer la sélection`,delete:`Supprimer`,clear:`Effacer`,clearTitle:`Effacer la sélection (Échap)`,statusLocal_one:`Statut · {{count}} spec`,statusLocal_other:`Statut · {{count}} specs`,statusJira_one:`Statut Jira · {{count}} spec`,statusJira_other:`Statut Jira · {{count}} specs`,loadingStatuses:`Chargement des statuts Jira…`,statusesFailed:`Impossible de charger les statuts Jira`,noStatuses:`Aucun statut disponible`,labelAdd:`Ajouter un libellé`,labelRemove:`Retirer un libellé`,noLabels:`Aucun libellé dans ce projet pour l’instant`,noRails:`Aucun rail disponible`,railRunning:`en cours`,railSpecs_one:`{{count}} spec`,railSpecs_other:`{{count}} specs`,result:{moved_one:`{{count}} spec déplacée`,moved_other:`{{count}} specs déplacées`,labeled_one:`Libellés mis à jour sur {{count}} spec`,labeled_other:`Libellés mis à jour sur {{count}} specs`,prioritized_one:`Priorité modifiée sur {{count}} spec`,prioritized_other:`Priorité modifiée sur {{count}} specs`,railed_one:`{{count}} spec ajoutée au rail`,railed_other:`{{count}} specs ajoutées au rail`,deleted_one:`{{count}} spec supprimée`,deleted_other:`{{count}} specs supprimées`},partial:`{{ok}} sur {{total}} faites · {{failed}} en échec`,failedAll_one:`Impossible de mettre à jour {{count}} spec`,failedAll_other:`Impossible de mettre à jour {{count}} specs`,launch:{none:`Aucune des specs sélectionnées ne peut être lancée pour le moment`,skipBlocked_one:`{{count}} ne peut pas encore être lancée`,skipBlocked_other:`{{count}} ne peuvent pas encore être lancées`,skipNoRail_one:`{{count}} sans rail libre`,skipNoRail_other:`{{count}} sans rail libre`,skipReviewLimit_one:`{{count}} retenue par la limite de revue`,skipReviewLimit_other:`{{count}} retenues par la limite de revue`},more:`Plus`},S={trigger:`Vues`,triggerActive:`Vues, actuelle : {{name}}`,menuLabel:`Vues enregistrées`,empty:`Aucune vue enregistrée pour l’instant`,saveCurrent:`Enregistrer la vue actuelle…`,manage:`Gérer les vues…`,saveTitle:`Enregistrer la vue`,saveDescription:`Enregistre le statut, les filtres, le tri et la densité tels qu’ils sont, pour ce projet.`,nameLabel:`Nom`,namePlaceholder:`Prêtes à lancer`,save:`Enregistrer`,saved:`Vue « {{name}} » enregistrée`,updated:`Vue mise à jour depuis le tableau`,manageTitle:`Gérer les vues`,manageDescription:`Renommez une vue, mettez-la à jour avec le tableau actuel, copiez son lien ou supprimez-la. Les vues appartiennent à ce projet.`,rename:`Renommer`,updateFromCurrent:`Mettre à jour depuis le tableau`,upToDate:`Correspond déjà au tableau`,copyLink:`Copier le lien`,delete:`Supprimer la vue`,done:`Terminé`,linkCopied:`Lien copié`,linkCopyFailed:`Impossible de copier le lien`,linkMissing:`Cette vue n’existe pas dans ce projet`,deleted:`Vue « {{name}} » supprimée`,linkOtherProject:`Cette vue appartient à {{project}}.`,openInProject:`Ouvrir dans {{project}}`},C={titleOne:`Déplacer la spec #{{id}}`,titleMany:`Déplacer {{count}} specs`,description:`Choisissez un statut ou un rail. Équivaut à y glisser la carte.`,statusHeading:`Statut`,railHeading:`Rail`,jiraLoading:`Chargement des statuts Jira…`,jiraFailed:`Impossible de charger les statuts Jira.`,jiraStatus:`{{status}} (Jira)`,noRails:`Aucun rail pour l'instant.`,running:`En cours`,hintNavigate:`naviguer`,hintChoose:`choisir`,hintClose:`fermer`,current:`Actuel`,descriptionOne:`« {{title}} ». Choisissez un statut ou un rail.`},w={board:e,status:t,priority:n,badges:r,card:i,emptyState:a,errors:o,listView:s,gridView:c,statusFilter:l,jiraStatusFilter:u,sortControl:d,viewTier:f,labelFilter:p,epicFilter:m,sprintFilter:h,triage:g,toolbar:_,search:v,filters:y,display:b,bulk:x,views:S,movePicker:C};export{r as badges,e as board,x as bulk,i as card,w as default,b as display,a as emptyState,m as epicFilter,o as errors,y as filters,c as gridView,u as jiraStatusFilter,p as labelFilter,s as listView,C as movePicker,n as priority,v as search,d as sortControl,h as sprintFilter,t as status,l as statusFilter,_ as toolbar,g as triage,f as viewTier,S as views};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={title:`Specs`,dropHere:`Hier ablegen`,emptyNoSpecs:`Noch keine Specs`,emptyNoLabelMatch:`Keine Specs entsprechen den aktiven Labels`,emptyNoActiveSpecs:`Keine aktiven Specs`,emptyHint:`Klicke auf „Neue Spec“, um loszulegen`,dropToMarkDone:`Ablegen, um als fertig zu markieren`,emptyNoDoneLabelMatch:`Keine fertigen Specs entsprechen den aktiven Labels`,emptyNoCompleted:`Noch keine abgeschlossenen Specs`,emptyNoStatusMatch:`Keine Specs entsprechen dem ausgewählten Status`,untitledSpec:`Unbenannte Spec`,doneHeading:`Erledigt · {{count}}`,clearFilters:`Filter zurücksetzen`,emptyNoSearchMatch:`Keine Spec passt zu „{{query}}“`},t={todo:`To-do`,inProgress:`In Arbeit`,onReview:`In Prüfung`,onReviewHint:`Implementiert — eine Entwurfs-PR wartet auf deine Prüfentscheidung`,done:`Fertig`,cancelled:`Abgebrochen`},n={critical:`kritisch`,high:`hoch`,medium:`mittel`,low:`niedrig`},r={epic:`Epic`,epicWithCount:`Epic · {{count}}`,subSpec:`↑ Sub-Spec`,review:`Review`,needsReviewTitle:`Diese Spec wurde als fertig markiert, aber ihr Job ist fehlgeschlagen – bitte prüfen`,raw:`Raw`,rawTitle:`Raw-Spec – keine KI-Generierung bei der Erfassung`,contract:`Contract`,openParentEpicTitle:`Übergeordnetes Epic #{{id}} öffnen · {{title}}`,addendaTitle_one:`{{count}} offenes Addendum – reist mit dem nächsten Start mit`,addendaTitle_other:`{{count}} offene Addenda – reisen mit dem nächsten Start mit`,inFlow:`Im Flow`,inFlowPaused:`Flow pausiert`,inFlowTitle:`Wird im Flow gebaut – Mission öffnen`,inFlowPausedTitle:`Flow pausiert – Mission öffnen, um fortzusetzen`},i={deleteSpec:`Spec #{{id}} löschen`,ticketFallbackLabel:`Spec #{{id}}`,dependsOn:`Hängt von {{count}} ab`,continueEditing:`Weiter bearbeiten`,continueEditingTitle:`Diese Spec weiter bearbeiten`,moveToRail:`Auf Rail verschieben`},a={noTickets:`Noch keine Specs`,noTicketsHint:`Erstelle deine erste Spec oder führe einen Product-Backlog-Befehl aus, um Specs zu befüllen`,createFirst:`Erste Spec erstellen`},o={loadFailed:`Specs konnten nicht geladen werden`},s={status:{draft:`Entwurf`,todo:`To-do`,inProgress:`in Arbeit`,onReview:`in Prüfung`,done:`fertig`,cancelled:`abgebrochen`},filterAll:`Alle ({{count}})`,statusWithCount:`{{status}} ({{count}})`,allLabels:`Alle Labels`,searchPlaceholder:`Suchen…`,columns:{status:`Status`,title:`Titel`,priority:`Priorität`,labels:`Labels`,updated:`Aktualisiert`},noMatch:`Keine Specs entsprechen deinen Filtern`,clearFilters:`Filter zurücksetzen`,loadMore:`Mehr laden ({{count}} verbleibend)`},c={emptyTodo:`Keine offenen Specs`,emptyInProgress:`Nichts in Arbeit`,emptyDone:`Keine abgeschlossenen Specs`,cancelledSection:`Abgebrochen ({{count}})`},l={ariaLabel:`Nach Status filtern`,all:`Alle`,active:`Aktiv`,more:`Mehr`,moreSelected:`Status: {{status}}. Anderen Status wählen`},u={ariaLabel:`Nach Jira-Status filtern`,triggerLabel:`Jira-Status`,all:`Alle Jira-Status`,other:`Sonstige`},d={modeAriaLabel:`Sortiermodus`,tooltip:`Sortierung: {{mode}}`,toggleDirAriaLabel:`Sortierrichtung umschalten`,ascending:`Aufsteigend`,descending:`Absteigend`,modes:{default:`Standard`,ticketId:`Spec #`,priority:`Priorität`,jiraKey:`Jira-Ticket #`}},f={ariaLabel:`Spec-Ansicht`,listView:`Listenansicht`,postitView:`Post-it-Ansicht`},p={ariaLabel:`Nach Labels filtern`,all:`Alle Labels`,empty:`Keine Labels in diesem Projekt.`,selected_one:`{{count}} Label`,selected_other:`{{count}} Labels`,clear:`zurücksetzen`},m={all:`Alle Epics`,ariaLabel:`Nach Epic filtern`},h={current:`Aktuell`,all:`Alle Sprints`,ariaLabel:`Nach Sprint filtern`},g={compute:`Triage`,computeTitle:`Größe schätzen und einen Loop für diese Spec empfehlen`,recalculate:`Neu berechnen`,recalculating:`Wird neu berechnet…`,recalculateFailed:`Neuberechnung fehlgeschlagen — erneut versuchen`,ariaLabel:`Triage der Spec #{{id}}`,recommends:`Empfiehlt {{loop}}`,confidence:{high:`hoch`,medium:`mittel`,low:`niedrig`},flags:{publicInterfaces:`Öffentliche API`,dataModel:`Datenmodell`,securitySurface:`Sicherheit`,none:`Keine Auswirkung auf öffentliche API, Daten oder Sicherheit`},filesLikely:`Wahrscheinliche Dateien`,moreFiles_one:`+{{count}} weitere Datei`,moreFiles_other:`+{{count}} weitere Dateien`,modelCost:`{{model}} · {{cost}}`,modelOnly:`{{model}} · Kosten nicht gemeldet`,unavailable:`Triage n. v.`,unavailableDetail:`Für die Triage ist kein Modell verfügbar ({{reason}}).`,failed:`Triage fehlgeschlagen`,failedDetail:`Die Triage konnte nicht abgeschlossen werden: {{error}}`},_={newSpec:`Neue Spec`,newSpecTooltip:`Neue Spec (⌘↵)`},v={placeholder:`Specs durchsuchen`,ariaLabel:`Specs nach Titel, Nummer, Label oder Jira-Schlüssel durchsuchen`,clear:`Suche löschen`},y={trigger:`Filter`,triggerActive_one:`Filter, {{count}} aktiv`,triggerActive_other:`Filter, {{count}} aktiv`,title:`Filter`,sections:{labels:`Labels`,epic:`Epic`,sprint:`Sprint`,jiraStatus:`Jira-Status`},clearSection:`Zurücksetzen`,clearAll:`Alle zurücksetzen`,done:`Fertig`,findLabel:`Label suchen`,removeChip:`Filter entfernen: {{label}}`,resultCount:`{{shown}} von {{total}}`,more:`+{{count}}`,chip:{search:`Suche: „{{query}}“`,label:`Label: {{label}}`,epic:`Epic: {{name}}`,sprint:`Sprint: {{name}}`,jiraStatus:`Jira: {{status}}`}},b={ariaLabel:`Sortierung und Ansicht`,menuLabel:`Sortier- und Ansichtsoptionen`,sortBy:`Sortieren nach`,direction:`Richtung`,view:`Ansicht`},x={toolbarLabel_one:`Sammelaktionen, {{count}} Spec ausgewählt`,toolbarLabel_other:`Sammelaktionen, {{count}} Specs ausgewählt`,count_one:`{{count}} ausgewählt`,count_other:`{{count}} ausgewählt`,listLabel:`Specs, Mehrfachauswahl`,selectSpec:`Spec Nr. {{id}} auswählen`,moveTo:`Verschieben nach`,label:`Label`,priority:`Priorität`,addToRail:`Zu Rail hinzufügen`,launchAll:`Auswahl starten`,delete:`Löschen`,clear:`Aufheben`,clearTitle:`Auswahl aufheben (Esc)`,statusLocal_one:`Status · {{count}} Spec`,statusLocal_other:`Status · {{count}} Specs`,statusJira_one:`Jira-Status · {{count}} Spec`,statusJira_other:`Jira-Status · {{count}} Specs`,loadingStatuses:`Jira-Status werden geladen…`,statusesFailed:`Jira-Status konnten nicht geladen werden`,noStatuses:`Keine Status verfügbar`,labelAdd:`Label hinzufügen`,labelRemove:`Label entfernen`,noLabels:`Dieses Projekt hat noch keine Labels`,noRails:`Keine Rails verfügbar`,railRunning:`läuft`,railSpecs_one:`{{count}} Spec`,railSpecs_other:`{{count}} Specs`,result:{moved_one:`{{count}} Spec verschoben`,moved_other:`{{count}} Specs verschoben`,labeled_one:`Labels bei {{count}} Spec aktualisiert`,labeled_other:`Labels bei {{count}} Specs aktualisiert`,prioritized_one:`Priorität bei {{count}} Spec geändert`,prioritized_other:`Priorität bei {{count}} Specs geändert`,railed_one:`{{count}} Spec zum Rail hinzugefügt`,railed_other:`{{count}} Specs zum Rail hinzugefügt`,deleted_one:`{{count}} Spec gelöscht`,deleted_other:`{{count}} Specs gelöscht`},partial:`{{ok}} von {{total}} erledigt · {{failed}} fehlgeschlagen`,failedAll_one:`{{count}} Spec konnte nicht aktualisiert werden`,failedAll_other:`{{count}} Specs konnten nicht aktualisiert werden`,launch:{none:`Keine der ausgewählten Specs kann gerade gestartet werden`,skipBlocked_one:`{{count}} kann noch nicht gestartet werden`,skipBlocked_other:`{{count}} können noch nicht gestartet werden`,skipNoRail_one:`{{count}} ohne freies Rail`,skipNoRail_other:`{{count}} ohne freies Rail`,skipReviewLimit_one:`{{count}} vom Review-Limit zurückgehalten`,skipReviewLimit_other:`{{count}} vom Review-Limit zurückgehalten`},more:`Mehr`},S={trigger:`Ansichten`,triggerActive:`Ansichten, aktuell: {{name}}`,menuLabel:`Gespeicherte Ansichten`,empty:`Noch keine gespeicherten Ansichten`,saveCurrent:`Aktuelle Ansicht speichern…`,manage:`Ansichten verwalten…`,saveTitle:`Ansicht speichern`,saveDescription:`Speichert Status, Filter, Sortierung und Dichte, wie sie jetzt sind, für dieses Projekt.`,nameLabel:`Name`,namePlaceholder:`Startbereit`,save:`Speichern`,saved:`Ansicht „{{name}}“ gespeichert`,updated:`Ansicht aus dem Board aktualisiert`,manageTitle:`Ansichten verwalten`,manageDescription:`Eine Ansicht umbenennen, mit dem aktuellen Board aktualisieren, ihren Link kopieren oder löschen. Ansichten gehören zu diesem Projekt.`,rename:`Umbenennen`,updateFromCurrent:`Aus dem Board aktualisieren`,upToDate:`Entspricht bereits dem Board`,copyLink:`Link kopieren`,delete:`Ansicht löschen`,done:`Fertig`,linkCopied:`Link kopiert`,linkCopyFailed:`Der Link konnte nicht kopiert werden`,linkMissing:`Diese Ansicht gibt es in diesem Projekt nicht`,deleted:`Ansicht „{{name}}“ gelöscht`,linkOtherProject:`Diese Ansicht gehört zu {{project}}.`,openInProject:`In {{project}} öffnen`},C={titleOne:`Spec #{{id}} verschieben`,titleMany:`{{count}} Specs verschieben`,description:`Wähle einen Status oder eine Rail. Das entspricht dem Ziehen der Karte dorthin.`,statusHeading:`Status`,railHeading:`Rail`,jiraLoading:`Jira-Status werden geladen…`,jiraFailed:`Die Jira-Status konnten nicht geladen werden.`,jiraStatus:`{{status}} (Jira)`,noRails:`Noch keine Rails.`,running:`Läuft`,hintNavigate:`navigieren`,hintChoose:`auswählen`,hintClose:`schließen`,current:`Aktuell`,descriptionOne:`„{{title}}“. Wähle einen Status oder eine Rail.`},w={board:e,status:t,priority:n,badges:r,card:i,emptyState:a,errors:o,listView:s,gridView:c,statusFilter:l,jiraStatusFilter:u,sortControl:d,viewTier:f,labelFilter:p,epicFilter:m,sprintFilter:h,triage:g,toolbar:_,search:v,filters:y,display:b,bulk:x,views:S,movePicker:C};export{r as badges,e as board,x as bulk,i as card,w as default,b as display,a as emptyState,m as epicFilter,o as errors,y as filters,c as gridView,u as jiraStatusFilter,p as labelFilter,s as listView,C as movePicker,n as priority,v as search,d as sortControl,h as sprintFilter,t as status,l as statusFilter,_ as toolbar,g as triage,f as viewTier,S as views};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={title:`Spec`,dropHere:`拖放到此处`,emptyNoSpecs:`暂无 spec`,emptyNoLabelMatch:`没有符合所选标签的 spec`,emptyNoActiveSpecs:`没有进行中的 spec`,emptyHint:`点击"新建 Spec"开始`,dropToMarkDone:`拖放至此标记为完成`,emptyNoDoneLabelMatch:`没有符合所选标签的已完成 spec`,emptyNoCompleted:`暂无已完成的 spec`,emptyNoStatusMatch:`没有符合所选状态的 spec`,untitledSpec:`未命名 spec`,doneHeading:`已完成 · {{count}}`,clearFilters:`清除筛选`,emptyNoSearchMatch:`没有匹配"{{query}}"的 Spec`},t={todo:`待办`,inProgress:`进行中`,onReview:`评审中`,onReviewHint:`已实现 — 草稿 PR 正在等待你的评审决定`,done:`完成`,cancelled:`已取消`},n={critical:`紧急`,high:`高`,medium:`中`,low:`低`},r={epic:`Epic`,epicWithCount:`Epic · {{count}}`,subSpec:`↑ 子 Spec`,review:`待审查`,needsReviewTitle:`此 spec 已标记为完成,但其任务以失败告终——请审查`,raw:`Raw`,rawTitle:`Raw spec——录入时不经过 AI 生成`,contract:`Contract`,openParentEpicTitle:`打开父级 Epic #{{id}} · {{title}}`,addendaTitle_one:`{{count}} 个待处理附录 — 随下一次启动传递`,addendaTitle_other:`{{count}} 个待处理附录 — 随下一次启动传递`,inFlow:`Flow 中`,inFlowPaused:`Flow 已暂停`,inFlowTitle:`正在 Flow 中构建——打开任务`,inFlowPausedTitle:`Flow 已暂停——打开任务以恢复`},i={deleteSpec:`删除 spec #{{id}}`,ticketFallbackLabel:`规格 #{{id}}`,dependsOn:`依赖 {{count}} 项`,continueEditing:`继续编辑`,continueEditingTitle:`继续编辑此 spec`,moveToRail:`放入 rail`},a={noTickets:`暂无规格`,noTicketsHint:`创建第一个规格,或运行 product backlog 命令来填充规格`,createFirst:`创建第一个规格`},o={loadFailed:`加载规格失败`},s={status:{draft:`草稿`,todo:`待办`,inProgress:`进行中`,onReview:`评审中`,done:`完成`,cancelled:`已取消`},filterAll:`全部({{count}})`,statusWithCount:`{{status}}({{count}})`,allLabels:`全部标签`,searchPlaceholder:`搜索…`,columns:{status:`状态`,title:`标题`,priority:`优先级`,labels:`标签`,updated:`更新时间`},noMatch:`没有符合筛选条件的规格`,clearFilters:`清除筛选`,loadMore:`加载更多(剩余 {{count}} 个)`},c={emptyTodo:`没有待办规格`,emptyInProgress:`没有进行中的规格`,emptyDone:`没有已完成的规格`,cancelledSection:`已取消({{count}})`},l={ariaLabel:`按状态筛选`,all:`全部`,active:`活跃`,more:`更多`,moreSelected:`状态:{{status}}。选择其他状态`},u={ariaLabel:`按 Jira 状态筛选`,triggerLabel:`Jira 状态`,all:`所有 Jira 状态`,other:`其他`},d={modeAriaLabel:`排序方式`,tooltip:`排序:{{mode}}`,toggleDirAriaLabel:`切换排序方向`,ascending:`升序`,descending:`降序`,modes:{default:`默认`,ticketId:`规格 #`,priority:`优先级`,jiraKey:`Jira 工单 #`}},f={ariaLabel:`Spec 视图`,listView:`列表视图`,postitView:`便签视图`},p={ariaLabel:`按标签筛选`,all:`全部标签`,empty:`此项目没有标签。`,selected_one:`{{count}} 个标签`,selected_other:`{{count}} 个标签`,clear:`清除`},m={all:`所有史诗`,ariaLabel:`按史诗筛选`},h={current:`当前`,all:`所有冲刺`,ariaLabel:`按冲刺筛选`},g={compute:`分诊`,computeTitle:`估算此规格的规模并推荐一个循环`,recalculate:`重新计算`,recalculating:`正在重新计算…`,recalculateFailed:`重新计算失败 — 请重试`,ariaLabel:`规格 #{{id}} 的分诊`,recommends:`推荐 {{loop}}`,confidence:{high:`高`,medium:`中`,low:`低`},flags:{publicInterfaces:`公共 API`,dataModel:`数据模型`,securitySurface:`安全`,none:`不影响公共 API、数据或安全`},filesLikely:`可能涉及的文件`,moreFiles_one:`另有 {{count}} 个文件`,moreFiles_other:`另有 {{count}} 个文件`,modelCost:`{{model}} · {{cost}}`,modelOnly:`{{model}} · 未报告成本`,unavailable:`无法分诊`,unavailableDetail:`没有可用于分诊的模型({{reason}})。`,failed:`分诊失败`,failedDetail:`无法完成分诊:{{error}}`},_={newSpec:`新建 Spec`,newSpecTooltip:`新建 Spec (⌘↵)`},v={placeholder:`搜索 Spec`,ariaLabel:`按标题、编号、标签或 Jira 键搜索 Spec`,clear:`清除搜索`},y={trigger:`筛选`,triggerActive_one:`筛选,{{count}} 项生效`,triggerActive_other:`筛选,{{count}} 项生效`,title:`筛选`,sections:{labels:`标签`,epic:`史诗`,sprint:`冲刺`,jiraStatus:`Jira 状态`},clearSection:`清除`,clearAll:`全部清除`,done:`完成`,findLabel:`查找标签`,removeChip:`移除筛选:{{label}}`,resultCount:`{{shown}} / {{total}}`,more:`+{{count}}`,chip:{search:`搜索:"{{query}}"`,label:`标签:{{label}}`,epic:`史诗:{{name}}`,sprint:`冲刺:{{name}}`,jiraStatus:`Jira:{{status}}`}},b={ariaLabel:`排序与视图`,menuLabel:`排序与视图选项`,sortBy:`排序方式`,direction:`方向`,view:`视图`},x={toolbarLabel_one:`批量操作,已选择 {{count}} 个规格`,toolbarLabel_other:`批量操作,已选择 {{count}} 个规格`,count_one:`已选 {{count}} 个`,count_other:`已选 {{count}} 个`,listLabel:`规格(多选)`,selectSpec:`选择规格 #{{id}}`,moveTo:`移至`,label:`标签`,priority:`优先级`,addToRail:`加入轨道`,launchAll:`启动所选`,delete:`删除`,clear:`取消选择`,clearTitle:`取消选择(Esc)`,statusLocal_one:`状态 · {{count}} 个规格`,statusLocal_other:`状态 · {{count}} 个规格`,statusJira_one:`Jira 状态 · {{count}} 个规格`,statusJira_other:`Jira 状态 · {{count}} 个规格`,loadingStatuses:`正在加载 Jira 状态…`,statusesFailed:`无法加载 Jira 状态`,noStatuses:`没有可用的状态`,labelAdd:`添加标签`,labelRemove:`移除标签`,noLabels:`此项目还没有标签`,noRails:`没有可用的轨道`,railRunning:`运行中`,railSpecs_one:`{{count}} 个规格`,railSpecs_other:`{{count}} 个规格`,result:{moved_one:`已移动 {{count}} 个规格`,moved_other:`已移动 {{count}} 个规格`,labeled_one:`已更新 {{count}} 个规格的标签`,labeled_other:`已更新 {{count}} 个规格的标签`,prioritized_one:`已更改 {{count}} 个规格的优先级`,prioritized_other:`已更改 {{count}} 个规格的优先级`,railed_one:`已将 {{count}} 个规格加入轨道`,railed_other:`已将 {{count}} 个规格加入轨道`,deleted_one:`已删除 {{count}} 个规格`,deleted_other:`已删除 {{count}} 个规格`},partial:`{{total}} 个中完成 {{ok}} 个 · {{failed}} 个失败`,failedAll_one:`无法更新 {{count}} 个规格`,failedAll_other:`无法更新 {{count}} 个规格`,launch:{none:`所选规格目前都无法启动`,skipBlocked_one:`{{count}} 个暂时无法启动`,skipBlocked_other:`{{count}} 个暂时无法启动`,skipNoRail_one:`{{count}} 个没有空闲轨道`,skipNoRail_other:`{{count}} 个没有空闲轨道`,skipReviewLimit_one:`{{count}} 个因评审上限被暂缓`,skipReviewLimit_other:`{{count}} 个因评审上限被暂缓`},more:`更多`},S={trigger:`视图`,triggerActive:`视图,当前:{{name}}`,menuLabel:`已保存的视图`,empty:`还没有已保存的视图`,saveCurrent:`保存当前视图…`,manage:`管理视图…`,saveTitle:`保存视图`,saveDescription:`为此项目保存当前的状态、筛选、排序和密度。`,nameLabel:`名称`,namePlaceholder:`可以启动`,save:`保存`,saved:`已保存视图“{{name}}”`,updated:`已用当前看板更新视图`,manageTitle:`管理视图`,manageDescription:`重命名视图、用当前看板更新它、复制链接或删除。视图属于此项目。`,rename:`重命名`,updateFromCurrent:`用当前看板更新`,upToDate:`已与当前看板一致`,copyLink:`复制链接`,delete:`删除视图`,done:`完成`,linkCopied:`链接已复制`,linkCopyFailed:`无法复制链接`,linkMissing:`此项目中没有该视图`,deleted:`已删除视图“{{name}}”`,linkOtherProject:`此视图属于 {{project}}。`,openInProject:`在 {{project}} 中打开`},C={titleOne:`移动规格 #{{id}}`,titleMany:`移动 {{count}} 个规格`,description:`选择一个状态或一条 Rail,效果等同于把卡片拖过去。`,statusHeading:`状态`,railHeading:`Rail`,jiraLoading:`正在加载 Jira 状态…`,jiraFailed:`无法加载 Jira 状态。`,jiraStatus:`{{status}}(Jira)`,noRails:`还没有 Rail。`,running:`运行中`,hintNavigate:`移动`,hintChoose:`选择`,hintClose:`关闭`,current:`当前`,descriptionOne:`“{{title}}”。选择一个状态或一条 rail。`},w={board:e,status:t,priority:n,badges:r,card:i,emptyState:a,errors:o,listView:s,gridView:c,statusFilter:l,jiraStatusFilter:u,sortControl:d,viewTier:f,labelFilter:p,epicFilter:m,sprintFilter:h,triage:g,toolbar:_,search:v,filters:y,display:b,bulk:x,views:S,movePicker:C};export{r as badges,e as board,x as bulk,i as card,w as default,b as display,a as emptyState,m as epicFilter,o as errors,y as filters,c as gridView,u as jiraStatusFilter,p as labelFilter,s as listView,C as movePicker,n as priority,v as search,d as sortControl,h as sprintFilter,t as status,l as statusFilter,_ as toolbar,g as triage,f as viewTier,S as views};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={title:`Specs`,dropHere:`Largar aqui`,emptyNoSpecs:`Ainda não há specs`,emptyNoLabelMatch:`Nenhuma spec corresponde às etiquetas ativas`,emptyNoActiveSpecs:`Sem specs ativas`,emptyHint:`Clique em "Nova spec" para começar`,dropToMarkDone:`Largue para marcar como concluída`,emptyNoDoneLabelMatch:`Nenhuma spec concluída corresponde às etiquetas ativas`,emptyNoCompleted:`Ainda não há specs concluídas`,emptyNoStatusMatch:`Nenhuma spec corresponde ao estado selecionado`,untitledSpec:`Spec sem título`,doneHeading:`Concluídas · {{count}}`,clearFilters:`Limpar filtros`,emptyNoSearchMatch:`Nenhuma spec corresponde a "{{query}}"`},t={todo:`Por fazer`,inProgress:`Em curso`,onReview:`Em revisão`,onReviewHint:`Implementada — uma PR em rascunho aguarda a sua decisão de revisão`,done:`Concluído`,cancelled:`Cancelado`},n={critical:`crítica`,high:`alta`,medium:`média`,low:`baixa`},r={epic:`Épico`,epicWithCount:`Épico · {{count}}`,subSpec:`↑ Sub-Spec`,review:`Revisão`,needsReviewTitle:`Esta spec foi marcada como concluída mas o job terminou em falha — reveja-a`,raw:`Raw`,rawTitle:`Spec Raw — sem geração por IA na criação`,contract:`Contract`,openParentEpicTitle:`Abrir o Épico pai #{{id}} · {{title}}`,addendaTitle_one:`{{count}} adendo aberto — segue com o próximo lançamento`,addendaTitle_other:`{{count}} adendos abertos — seguem com o próximo lançamento`,inFlow:`Em Flow`,inFlowPaused:`Flow em pausa`,inFlowTitle:`Em construção no Flow — abrir a missão`,inFlowPausedTitle:`Flow em pausa — abrir a missão para retomar`},i={deleteSpec:`Eliminar spec #{{id}}`,ticketFallbackLabel:`Spec #{{id}}`,dependsOn:`Depende de {{count}}`,continueEditing:`Continuar a editar`,continueEditingTitle:`Continuar a editar esta spec`,moveToRail:`Mover para um rail`},a={noTickets:`Ainda não há specs`,noTicketsHint:`Crie a sua primeira spec ou execute um comando de product backlog para preencher as specs`,createFirst:`Criar a sua primeira spec`},o={loadFailed:`Falha ao carregar as specs`},s={status:{draft:`rascunho`,todo:`por fazer`,inProgress:`em curso`,onReview:`em revisão`,done:`concluído`,cancelled:`cancelado`},filterAll:`Todos ({{count}})`,statusWithCount:`{{status}} ({{count}})`,allLabels:`Todas as etiquetas`,searchPlaceholder:`Pesquisar...`,columns:{status:`Estado`,title:`Título`,priority:`Prioridade`,labels:`Etiquetas`,updated:`Atualizado`},noMatch:`Nenhuma spec corresponde aos seus filtros`,clearFilters:`Limpar filtros`,loadMore:`Carregar mais ({{count}} restantes)`},c={emptyTodo:`Sem specs por fazer`,emptyInProgress:`Nada em curso`,emptyDone:`Sem specs concluídas`,cancelledSection:`Cancelados ({{count}})`},l={ariaLabel:`Filtrar por estado`,all:`Todos`,active:`Ativas`,more:`Mais`,moreSelected:`Estado: {{status}}. Escolher outro estado`},u={ariaLabel:`Filtrar por estado do Jira`,triggerLabel:`Estado Jira`,all:`Todos os estados do Jira`,other:`Outros`},d={modeAriaLabel:`Modo de ordenação`,tooltip:`Ordenar: {{mode}}`,toggleDirAriaLabel:`Inverter a direção da ordenação`,ascending:`Ascendente`,descending:`Descendente`,modes:{default:`Predefinida`,ticketId:`Spec #`,priority:`Prioridade`,jiraKey:`Ticket do Jira #`}},f={ariaLabel:`Vista de specs`,listView:`Vista de lista`,postitView:`Vista de post-its`},p={ariaLabel:`Filtrar por etiquetas`,all:`Todas as etiquetas`,empty:`Não há etiquetas neste projeto.`,selected_one:`{{count}} etiqueta`,selected_other:`{{count}} etiquetas`,clear:`limpar`},m={all:`Todos os épicos`,ariaLabel:`Filtrar por épico`},h={current:`Atual`,all:`Todos os sprints`,ariaLabel:`Filtrar por sprint`},g={compute:`Triagem`,computeTitle:`Estimar o tamanho e recomendar um loop para esta spec`,recalculate:`Recalcular`,recalculating:`Recalculando…`,recalculateFailed:`Falha ao recalcular — tente novamente`,ariaLabel:`Triagem da spec #{{id}}`,recommends:`Recomenda {{loop}}`,confidence:{high:`alta`,medium:`média`,low:`baixa`},flags:{publicInterfaces:`API pública`,dataModel:`Modelo de dados`,securitySurface:`Segurança`,none:`Sem impacto em API pública, dados ou segurança`},filesLikely:`Arquivos prováveis`,moreFiles_one:`+{{count}} arquivo`,moreFiles_other:`+{{count}} arquivos`,modelCost:`{{model}} · US{{cost}}`,modelOnly:`{{model}} · custo não informado`,unavailable:`Triagem n/d`,unavailableDetail:`Nenhum modelo disponível para a triagem ({{reason}}).`,failed:`Falha na triagem`,failedDetail:`Não foi possível concluir a triagem: {{error}}`},_={newSpec:`Nova spec`,newSpecTooltip:`Nova spec (⌘↵)`},v={placeholder:`Pesquisar specs`,ariaLabel:`Pesquisar specs por título, número, etiqueta ou chave do Jira`,clear:`Limpar pesquisa`},y={trigger:`Filtros`,triggerActive_one:`Filtros, {{count}} ativo`,triggerActive_other:`Filtros, {{count}} ativos`,title:`Filtros`,sections:{labels:`Etiquetas`,epic:`Épico`,sprint:`Sprint`,jiraStatus:`Estado no Jira`},clearSection:`Limpar`,clearAll:`Limpar tudo`,done:`Concluído`,findLabel:`Procurar etiqueta`,removeChip:`Remover filtro: {{label}}`,resultCount:`{{shown}} de {{total}}`,more:`+{{count}}`,chip:{search:`Pesquisa: "{{query}}"`,label:`Etiqueta: {{label}}`,epic:`Épico: {{name}}`,sprint:`Sprint: {{name}}`,jiraStatus:`Jira: {{status}}`}},b={ariaLabel:`Ordenação e vista`,menuLabel:`Opções de ordenação e vista`,sortBy:`Ordenar por`,direction:`Direção`,view:`Vista`},x={toolbarLabel_one:`Ações em lote, {{count}} spec selecionada`,toolbarLabel_other:`Ações em lote, {{count}} specs selecionadas`,count_one:`{{count}} selecionada`,count_other:`{{count}} selecionadas`,listLabel:`Specs, seleção múltipla`,selectSpec:`Selecionar a spec n.º {{id}}`,moveTo:`Mover para`,label:`Etiqueta`,priority:`Prioridade`,addToRail:`Adicionar a um rail`,launchAll:`Lançar seleção`,delete:`Excluir`,clear:`Limpar`,clearTitle:`Limpar a seleção (Esc)`,statusLocal_one:`Estado · {{count}} spec`,statusLocal_other:`Estado · {{count}} specs`,statusJira_one:`Estado do Jira · {{count}} spec`,statusJira_other:`Estado do Jira · {{count}} specs`,loadingStatuses:`Carregando os estados do Jira…`,statusesFailed:`Não foi possível carregar os estados do Jira`,noStatuses:`Nenhum estado disponível`,labelAdd:`Adicionar etiqueta`,labelRemove:`Remover etiqueta`,noLabels:`Este projeto ainda não tem etiquetas`,noRails:`Nenhum rail disponível`,railRunning:`em execução`,railSpecs_one:`{{count}} spec`,railSpecs_other:`{{count}} specs`,result:{moved_one:`{{count}} spec movida`,moved_other:`{{count}} specs movidas`,labeled_one:`Etiquetas atualizadas em {{count}} spec`,labeled_other:`Etiquetas atualizadas em {{count}} specs`,prioritized_one:`Prioridade alterada em {{count}} spec`,prioritized_other:`Prioridade alterada em {{count}} specs`,railed_one:`{{count}} spec adicionada ao rail`,railed_other:`{{count}} specs adicionadas ao rail`,deleted_one:`{{count}} spec excluída`,deleted_other:`{{count}} specs excluídas`},partial:`{{ok}} de {{total}} concluídas · {{failed}} com falha`,failedAll_one:`Não foi possível atualizar {{count}} spec`,failedAll_other:`Não foi possível atualizar {{count}} specs`,launch:{none:`Nenhuma das specs selecionadas pode ser lançada agora`,skipBlocked_one:`{{count}} ainda não pode ser lançada`,skipBlocked_other:`{{count}} ainda não podem ser lançadas`,skipNoRail_one:`{{count}} sem rail livre`,skipNoRail_other:`{{count}} sem rail livre`,skipReviewLimit_one:`{{count}} retida pelo limite de revisão`,skipReviewLimit_other:`{{count}} retidas pelo limite de revisão`},more:`Mais`},S={trigger:`Visões`,triggerActive:`Visões, atual: {{name}}`,menuLabel:`Visões salvas`,empty:`Ainda não há visões salvas`,saveCurrent:`Salvar a visão atual…`,manage:`Gerenciar visões…`,saveTitle:`Salvar visão`,saveDescription:`Salva o estado, os filtros, a ordenação e a densidade como estão agora, para este projeto.`,nameLabel:`Nome`,namePlaceholder:`Prontas para lançar`,save:`Salvar`,saved:`Visão “{{name}}” salva`,updated:`Visão atualizada a partir do quadro`,manageTitle:`Gerenciar visões`,manageDescription:`Renomeie uma visão, atualize-a com o quadro como está agora, copie o link ou exclua. As visões pertencem a este projeto.`,rename:`Renomear`,updateFromCurrent:`Atualizar a partir do quadro`,upToDate:`Já corresponde ao quadro`,copyLink:`Copiar link`,delete:`Excluir visão`,done:`Concluir`,linkCopied:`Link copiado`,linkCopyFailed:`Não foi possível copiar o link`,linkMissing:`Essa visão não existe neste projeto`,deleted:`Visão “{{name}}” excluída`,linkOtherProject:`Esta vista pertence a {{project}}.`,openInProject:`Abrir em {{project}}`},C={titleOne:`Mover a spec #{{id}}`,titleMany:`Mover {{count}} specs`,description:`Escolha um estado ou um rail. Equivale a arrastar o cartão até lá.`,statusHeading:`Estado`,railHeading:`Rail`,jiraLoading:`A carregar estados do Jira…`,jiraFailed:`Não foi possível carregar os estados do Jira.`,jiraStatus:`{{status}} (Jira)`,noRails:`Ainda não há rails.`,running:`Em execução`,hintNavigate:`navegar`,hintChoose:`escolher`,hintClose:`fechar`,current:`Atual`,descriptionOne:`“{{title}}”. Escolha um estado ou um rail.`},w={board:e,status:t,priority:n,badges:r,card:i,emptyState:a,errors:o,listView:s,gridView:c,statusFilter:l,jiraStatusFilter:u,sortControl:d,viewTier:f,labelFilter:p,epicFilter:m,sprintFilter:h,triage:g,toolbar:_,search:v,filters:y,display:b,bulk:x,views:S,movePicker:C};export{r as badges,e as board,x as bulk,i as card,w as default,b as display,a as emptyState,m as epicFilter,o as errors,y as filters,c as gridView,u as jiraStatusFilter,p as labelFilter,s as listView,C as movePicker,n as priority,v as search,d as sortControl,h as sprintFilter,t as status,l as statusFilter,_ as toolbar,g as triage,f as viewTier,S as views};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={title:`Spec`,dropHere:`Rilascia qui`,emptyNoSpecs:`Ancora nessuna spec`,emptyNoLabelMatch:`Nessuna spec corrisponde alle etichette attive`,emptyNoActiveSpecs:`Nessuna spec attiva`,emptyHint:`Clicca "Nuova spec" per iniziare`,dropToMarkDone:`Rilascia per contrassegnare come completata`,emptyNoDoneLabelMatch:`Nessuna spec completata corrisponde alle etichette attive`,emptyNoCompleted:`Ancora nessuna spec completata`,emptyNoStatusMatch:`Nessuna spec corrisponde allo stato selezionato`,untitledSpec:`Spec senza titolo`,doneHeading:`Completate · {{count}}`,clearFilters:`Cancella filtri`,emptyNoSearchMatch:`Nessuna spec corrisponde a "{{query}}"`},t={todo:`Da fare`,inProgress:`In corso`,onReview:`In revisione`,onReviewHint:`Implementata — una PR in bozza è in attesa della tua decisione di revisione`,done:`Completato`,cancelled:`Annullato`},n={critical:`critica`,high:`alta`,medium:`media`,low:`bassa`},r={epic:`Epic`,epicWithCount:`Epic · {{count}}`,subSpec:`↑ Sub-Spec`,review:`Revisione`,needsReviewTitle:`Questa spec è stata contrassegnata come completata ma il suo job è terminato con un errore — rivedila`,raw:`Raw`,rawTitle:`Spec Raw — nessuna generazione AI alla creazione`,contract:`Contract`,openParentEpicTitle:`Apri l'Epic padre #{{id}} · {{title}}`,addendaTitle_one:`{{count}} addendum aperto — viaggia con il prossimo lancio`,addendaTitle_other:`{{count}} addenda aperti — viaggiano con il prossimo lancio`,inFlow:`In Flow`,inFlowPaused:`Flow in pausa`,inFlowTitle:`In costruzione con Flow — apri la missione`,inFlowPausedTitle:`Flow in pausa — apri la missione per riprendere`},i={deleteSpec:`Elimina spec #{{id}}`,ticketFallbackLabel:`Spec #{{id}}`,dependsOn:`Dipende da {{count}}`,continueEditing:`Continua a modificare`,continueEditingTitle:`Continua a modificare questa spec`,moveToRail:`Sposta su un rail`},a={noTickets:`Ancora nessuna spec`,noTicketsHint:`Crea la tua prima spec o esegui un comando di product backlog per popolare le spec`,createFirst:`Crea la tua prima spec`},o={loadFailed:`Impossibile caricare le spec`},s={status:{draft:`bozza`,todo:`da fare`,inProgress:`in corso`,onReview:`in revisione`,done:`completato`,cancelled:`annullato`},filterAll:`Tutti ({{count}})`,statusWithCount:`{{status}} ({{count}})`,allLabels:`Tutte le etichette`,searchPlaceholder:`Cerca...`,columns:{status:`Stato`,title:`Titolo`,priority:`Priorità`,labels:`Etichette`,updated:`Aggiornato`},noMatch:`Nessuna spec corrisponde ai filtri`,clearFilters:`Cancella filtri`,loadMore:`Carica altri ({{count}} rimanenti)`},c={emptyTodo:`Nessuna spec da fare`,emptyInProgress:`Niente in corso`,emptyDone:`Nessuna spec completata`,cancelledSection:`Annullati ({{count}})`},l={ariaLabel:`Filtra per stato`,all:`Tutti`,active:`Attive`,more:`Altro`,moreSelected:`Stato: {{status}}. Scegli un altro stato`},u={ariaLabel:`Filtra per stato Jira`,triggerLabel:`Stato Jira`,all:`Tutti gli stati Jira`,other:`Altri`},d={modeAriaLabel:`Modalità di ordinamento`,tooltip:`Ordina: {{mode}}`,toggleDirAriaLabel:`Inverti direzione di ordinamento`,ascending:`Crescente`,descending:`Decrescente`,modes:{default:`Predefinito`,ticketId:`Spec #`,priority:`Priorità`,jiraKey:`Ticket Jira #`}},f={ariaLabel:`Vista delle spec`,listView:`Vista elenco`,postitView:`Vista post-it`},p={ariaLabel:`Filtra per etichette`,all:`Tutte le etichette`,empty:`Nessuna etichetta in questo progetto.`,selected_one:`{{count}} etichetta`,selected_other:`{{count}} etichette`,clear:`cancella`},m={all:`Tutte le epiche`,ariaLabel:`Filtra per epica`},h={current:`Attuale`,all:`Tutti gli sprint`,ariaLabel:`Filtra per sprint`},g={compute:`Triage`,computeTitle:`Stima la dimensione e consiglia un loop per questa spec`,recalculate:`Ricalcola`,recalculating:`Ricalcolo…`,recalculateFailed:`Ricalcolo non riuscito — riprova`,ariaLabel:`Triage della spec #{{id}}`,recommends:`Consiglia {{loop}}`,confidence:{high:`alta`,medium:`media`,low:`bassa`},flags:{publicInterfaces:`API pubblica`,dataModel:`Modello dati`,securitySurface:`Sicurezza`,none:`Nessun impatto su API pubblica, dati o sicurezza`},filesLikely:`File probabili`,moreFiles_one:`+{{count}} altro file`,moreFiles_other:`+{{count}} altri file`,modelCost:`{{model}} · {{cost}}`,modelOnly:`{{model}} · costo non riportato`,unavailable:`Triage n/d`,unavailableDetail:`Nessun modello disponibile per il triage ({{reason}}).`,failed:`Triage non riuscito`,failedDetail:`Impossibile completare il triage: {{error}}`},_={newSpec:`Nuova spec`,newSpecTooltip:`Nuova spec (⌘↵)`},v={placeholder:`Cerca spec`,ariaLabel:`Cerca spec per titolo, numero, etichetta o chiave Jira`,clear:`Cancella ricerca`},y={trigger:`Filtri`,triggerActive_one:`Filtri, {{count}} attivo`,triggerActive_other:`Filtri, {{count}} attivi`,title:`Filtri`,sections:{labels:`Etichette`,epic:`Epic`,sprint:`Sprint`,jiraStatus:`Stato Jira`},clearSection:`Cancella`,clearAll:`Cancella tutto`,done:`Fatto`,findLabel:`Trova etichetta`,removeChip:`Rimuovi filtro: {{label}}`,resultCount:`{{shown}} di {{total}}`,more:`+{{count}}`,chip:{search:`Ricerca: "{{query}}"`,label:`Etichetta: {{label}}`,epic:`Epic: {{name}}`,sprint:`Sprint: {{name}}`,jiraStatus:`Jira: {{status}}`}},b={ariaLabel:`Ordinamento e vista`,menuLabel:`Opzioni di ordinamento e vista`,sortBy:`Ordina per`,direction:`Direzione`,view:`Vista`},x={toolbarLabel_one:`Azioni di gruppo, {{count}} spec selezionata`,toolbarLabel_other:`Azioni di gruppo, {{count}} spec selezionate`,count_one:`{{count}} selezionata`,count_other:`{{count}} selezionate`,listLabel:`Spec, selezione multipla`,selectSpec:`Seleziona la spec n. {{id}}`,moveTo:`Sposta in`,label:`Etichetta`,priority:`Priorità`,addToRail:`Aggiungi a un rail`,launchAll:`Avvia selezione`,delete:`Elimina`,clear:`Deseleziona`,clearTitle:`Deseleziona tutto (Esc)`,statusLocal_one:`Stato · {{count}} spec`,statusLocal_other:`Stato · {{count}} spec`,statusJira_one:`Stato Jira · {{count}} spec`,statusJira_other:`Stato Jira · {{count}} spec`,loadingStatuses:`Caricamento degli stati Jira…`,statusesFailed:`Impossibile caricare gli stati Jira`,noStatuses:`Nessuno stato disponibile`,labelAdd:`Aggiungi etichetta`,labelRemove:`Rimuovi etichetta`,noLabels:`Questo progetto non ha ancora etichette`,noRails:`Nessun rail disponibile`,railRunning:`in esecuzione`,railSpecs_one:`{{count}} spec`,railSpecs_other:`{{count}} spec`,result:{moved_one:`{{count}} spec spostata`,moved_other:`{{count}} spec spostate`,labeled_one:`Etichette aggiornate su {{count}} spec`,labeled_other:`Etichette aggiornate su {{count}} spec`,prioritized_one:`Priorità modificata su {{count}} spec`,prioritized_other:`Priorità modificata su {{count}} spec`,railed_one:`{{count}} spec aggiunta al rail`,railed_other:`{{count}} spec aggiunte al rail`,deleted_one:`{{count}} spec eliminata`,deleted_other:`{{count}} spec eliminate`},partial:`{{ok}} su {{total}} completate · {{failed}} non riuscite`,failedAll_one:`Impossibile aggiornare {{count}} spec`,failedAll_other:`Impossibile aggiornare {{count}} spec`,launch:{none:`Nessuna delle spec selezionate può essere avviata ora`,skipBlocked_one:`{{count}} non può ancora essere avviata`,skipBlocked_other:`{{count}} non possono ancora essere avviate`,skipNoRail_one:`{{count}} senza rail libero`,skipNoRail_other:`{{count}} senza rail libero`,skipReviewLimit_one:`{{count}} trattenuta dal limite di revisione`,skipReviewLimit_other:`{{count}} trattenute dal limite di revisione`},more:`Altro`},S={trigger:`Viste`,triggerActive:`Viste, attuale: {{name}}`,menuLabel:`Viste salvate`,empty:`Nessuna vista salvata per ora`,saveCurrent:`Salva la vista attuale…`,manage:`Gestisci le viste…`,saveTitle:`Salva vista`,saveDescription:`Salva stato, filtri, ordinamento e densità così come sono ora, per questo progetto.`,nameLabel:`Nome`,namePlaceholder:`Pronte da avviare`,save:`Salva`,saved:`Vista «{{name}}» salvata`,updated:`Vista aggiornata dalla bacheca`,manageTitle:`Gestisci le viste`,manageDescription:`Rinomina una vista, aggiornala con la bacheca attuale, copia il suo link o eliminala. Le viste appartengono a questo progetto.`,rename:`Rinomina`,updateFromCurrent:`Aggiorna dalla bacheca`,upToDate:`Corrisponde già alla bacheca`,copyLink:`Copia link`,delete:`Elimina vista`,done:`Fine`,linkCopied:`Link copiato`,linkCopyFailed:`Impossibile copiare il link`,linkMissing:`Questa vista non esiste in questo progetto`,deleted:`Vista “{{name}}” eliminata`,linkOtherProject:`Questa vista appartiene a {{project}}.`,openInProject:`Apri in {{project}}`},C={titleOne:`Sposta la spec #{{id}}`,titleMany:`Sposta {{count}} spec`,description:`Scegli uno stato o un rail. Equivale a trascinarvi la scheda.`,statusHeading:`Stato`,railHeading:`Rail`,jiraLoading:`Caricamento degli stati Jira…`,jiraFailed:`Impossibile caricare gli stati Jira.`,jiraStatus:`{{status}} (Jira)`,noRails:`Ancora nessun rail.`,running:`In corso`,hintNavigate:`spostarsi`,hintChoose:`scegliere`,hintClose:`chiudere`,current:`Attuale`,descriptionOne:`«{{title}}». Scegli uno stato o un rail.`},w={board:e,status:t,priority:n,badges:r,card:i,emptyState:a,errors:o,listView:s,gridView:c,statusFilter:l,jiraStatusFilter:u,sortControl:d,viewTier:f,labelFilter:p,epicFilter:m,sprintFilter:h,triage:g,toolbar:_,search:v,filters:y,display:b,bulk:x,views:S,movePicker:C};export{r as badges,e as board,x as bulk,i as card,w as default,b as display,a as emptyState,m as epicFilter,o as errors,y as filters,c as gridView,u as jiraStatusFilter,p as labelFilter,s as listView,C as movePicker,n as priority,v as search,d as sortControl,h as sprintFilter,t as status,l as statusFilter,_ as toolbar,g as triage,f as viewTier,S as views};
|