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.
Files changed (1116) hide show
  1. package/README.md +1 -1
  2. package/cli/dist/status.js +3 -0
  3. package/client/dist/assets/ActivityFeedPage-ByVKYII-.js +1 -0
  4. package/client/dist/assets/AgentBrowserCapture-BGUTjhUr.js +1 -0
  5. package/client/dist/assets/AgentModeAnalyticsPane-CtOLDDjB.js +2 -0
  6. package/client/dist/assets/AgentModeCodePane-CDhUKarT.js +2 -0
  7. package/client/dist/assets/AgentModeJobsPane-BAa_oEHJ.js +1 -0
  8. package/client/dist/assets/AgentsPage-D32hG4Ve.js +120 -0
  9. package/client/dist/assets/AnalyticsPage-BU50zeG6.js +5 -0
  10. package/client/dist/assets/BudgetCard-DP_jxwaD.js +55 -0
  11. package/client/dist/assets/CodePage-jiYnKGpp.js +3 -0
  12. package/client/dist/assets/CostValue-Bvn8674q.js +1 -0
  13. package/client/dist/assets/DesktopAnalyticsPage-CF__H4e3.js +1 -0
  14. package/client/dist/assets/DocView-RrAp70zp.js +11 -0
  15. package/client/dist/assets/DocsDialog-DkqHU-JF.js +1 -0
  16. package/client/dist/assets/DocsPage-C6X089zC.js +1 -0
  17. package/client/dist/assets/ExportDropdown-C5-o8y3K.js +1 -0
  18. package/client/dist/assets/HelpHint-Crf9_uoR.js +1 -0
  19. package/client/dist/assets/IntegrationsPage-aflU3KHK.js +1 -0
  20. package/client/dist/assets/InteractiveJobComposer-CEMMhyyJ.js +19 -0
  21. package/client/dist/assets/JobDetailModal-BVJ6hyRs.js +1 -0
  22. package/client/dist/assets/JobDetailPage-DHzBUmox.js +1 -0
  23. package/client/dist/assets/JobsPage-o-LAqkwC.js +1 -0
  24. package/client/dist/assets/LoopBuilderPage-DbSVmXBM.js +1 -0
  25. package/client/dist/assets/LoopPreviewModal-DbJcVyN1.js +1 -0
  26. package/client/dist/assets/{LoopWindowSurface-DE0v2K1p.js → LoopWindowSurface-Co1ZK26V.js} +1 -1
  27. package/client/dist/assets/LoopsPage-C4lgkPXB.js +2 -0
  28. package/client/dist/assets/MinimizedChatsContext-742ypO8n.js +1 -0
  29. package/client/dist/assets/PluginsPage-Acks9ges.js +2 -0
  30. package/client/dist/assets/RailTrack-BfLmBzBh.js +1 -0
  31. package/client/dist/assets/{RepositoryScopeSelector-2eSqR9WK.js → RepositoryScopeSelector-DcxbKI9w.js} +1 -1
  32. package/client/dist/assets/ReviewPacketPage-CAVSIOAJ.js +7 -0
  33. package/client/dist/assets/TemplatePreviewModal-C23SYCTm.js +1 -0
  34. package/client/dist/assets/TicketDetailModalContext-B-Gtm6Ob.js +23 -0
  35. package/client/dist/assets/Trans-C6J0cLyh.js +1 -0
  36. package/client/dist/assets/a11y-prefs-BqoP5goK.js +1 -0
  37. package/client/dist/assets/activity-BBWfoUOG.js +1 -0
  38. package/client/dist/assets/activity-BM_skann.js +1 -0
  39. package/client/dist/assets/activity-Cevl82ke.js +1 -0
  40. package/client/dist/assets/activity-CmACk5W5.js +1 -0
  41. package/client/dist/assets/activity-D9LBw3PQ.js +1 -0
  42. package/client/dist/assets/activity-Dspbb9lz.js +1 -0
  43. package/client/dist/assets/activity-FPjYIjv9.js +1 -0
  44. package/client/dist/assets/activity-nLCKMUKt.js +1 -0
  45. package/client/dist/assets/addspec-BI4jDMhA.js +1 -0
  46. package/client/dist/assets/addspec-BldTv7Tl.js +1 -0
  47. package/client/dist/assets/addspec-Cdq-2EcC.js +1 -0
  48. package/client/dist/assets/addspec-DH5M16BQ.js +1 -0
  49. package/client/dist/assets/addspec-DOFo9pD5.js +1 -0
  50. package/client/dist/assets/addspec-DPkwhdmL.js +1 -0
  51. package/client/dist/assets/addspec-Dzy12Pv3.js +1 -0
  52. package/client/dist/assets/addspec-skTs6EEW.js +1 -0
  53. package/client/dist/assets/agent-B_UEUy7Y.js +1 -0
  54. package/client/dist/assets/agent-BarjlhTA.js +1 -0
  55. package/client/dist/assets/agent-BfqIITo5.js +1 -0
  56. package/client/dist/assets/agent-Bt9a7Kyj.js +1 -0
  57. package/client/dist/assets/agent-C3689RwP.js +1 -0
  58. package/client/dist/assets/agent-CrmboTAi.js +1 -0
  59. package/client/dist/assets/agent-DcsoTnuE.js +1 -0
  60. package/client/dist/assets/agent-GDZoYwd4.js +1 -0
  61. package/client/dist/assets/{agentRuntime-es2ymSl-.js → agentRuntime-BYH70bKY.js} +1 -1
  62. package/client/dist/assets/agentRuntime-BijLh8I9.js +1 -0
  63. package/client/dist/assets/{agentRuntime-BzuwQQgn.js → agentRuntime-BvyuETPe.js} +1 -1
  64. package/client/dist/assets/{agentRuntime-BDvbJMmS.js → agentRuntime-C2WI6HQh.js} +1 -1
  65. package/client/dist/assets/{agentRuntime-BKJfv5YD.js → agentRuntime-CZPIlQsr.js} +1 -1
  66. package/client/dist/assets/{agentRuntime-DiCldqGG.js → agentRuntime-D2dDvCyJ.js} +1 -1
  67. package/client/dist/assets/agentRuntime-DWZedEbn.js +1 -0
  68. package/client/dist/assets/agentRuntime-DkIruUNw.js +1 -0
  69. package/client/dist/assets/agents-35_PDKx9.js +1 -0
  70. package/client/dist/assets/agents-8fZnHhEQ.js +1 -0
  71. package/client/dist/assets/agents-Bgimtw8z.js +1 -0
  72. package/client/dist/assets/agents-C4P160Us.js +1 -0
  73. package/client/dist/assets/agents-Clg67zbp.js +1 -0
  74. package/client/dist/assets/agents-DJfF4o6G.js +1 -0
  75. package/client/dist/assets/agents-Dc9-Y5cw.js +1 -0
  76. package/client/dist/assets/agents-EN1Zl4YZ.js +1 -0
  77. package/client/dist/assets/agentstudio-Bm4-NYaG.js +1 -0
  78. package/client/dist/assets/agentstudio-CD1fuj2o.js +1 -0
  79. package/client/dist/assets/agentstudio-CQGWFSst.js +1 -0
  80. package/client/dist/assets/agentstudio-CqVSb65S.js +1 -0
  81. package/client/dist/assets/agentstudio-DIE_HjsX.js +1 -0
  82. package/client/dist/assets/agentstudio-D_OmQK-k.js +1 -0
  83. package/client/dist/assets/agentstudio-Djz9aUfb.js +1 -0
  84. package/client/dist/assets/agentstudio-Qa3v9o5J.js +1 -0
  85. package/client/dist/assets/{aiedit-DNXxq_Dr.js → aiedit-1VzLs37W.js} +1 -1
  86. package/client/dist/assets/{aiedit-DCjA7jLJ.js → aiedit-BNp6GSik.js} +1 -1
  87. package/client/dist/assets/{aiedit-BoG24nlg.js → aiedit-BOY5xRPi.js} +1 -1
  88. package/client/dist/assets/{aiedit-iIjz2_Qk.js → aiedit-BrqMZvbc.js} +1 -1
  89. package/client/dist/assets/{aiedit-CjlSRQVP.js → aiedit-CVgtl7hm.js} +1 -1
  90. package/client/dist/assets/{aiedit-DQ-0_pvE.js → aiedit-CrFW9Jd2.js} +1 -1
  91. package/client/dist/assets/{aiedit-olnv3QSt.js → aiedit-YE2lILp7.js} +1 -1
  92. package/client/dist/assets/{aiedit-B0KUbpB6.js → aiedit-iA_R1AVQ.js} +1 -1
  93. package/client/dist/assets/analytics-3w0t-4ic.js +1 -0
  94. package/client/dist/assets/analytics-BRi4KQD6.js +1 -0
  95. package/client/dist/assets/analytics-BtjAqzke.js +1 -0
  96. package/client/dist/assets/analytics-COSQ1h47.js +1 -0
  97. package/client/dist/assets/analytics-CP2HjESk.js +1 -0
  98. package/client/dist/assets/analytics-DY65TC62.js +1 -0
  99. package/client/dist/assets/analytics-Den_vvxn.js +1 -0
  100. package/client/dist/assets/analytics-LmBS96O8.js +1 -0
  101. package/client/dist/assets/api-DOGbyfTO.js +2 -0
  102. package/client/dist/assets/builder-BMVvSr4v.js +1 -0
  103. package/client/dist/assets/builder-BN-MuLZt.js +1 -0
  104. package/client/dist/assets/builder-BQOZi4CF.js +1 -0
  105. package/client/dist/assets/builder-BjUPjsyu.js +1 -0
  106. package/client/dist/assets/builder-BoBtN18T.js +1 -0
  107. package/client/dist/assets/builder-C5g5NhxL.js +1 -0
  108. package/client/dist/assets/builder-RUHXw3yx.js +1 -0
  109. package/client/dist/assets/builder-fyS_AiyC.js +1 -0
  110. package/client/dist/assets/button-CHPkroew.js +1 -0
  111. package/client/dist/assets/chat-C9L5T7KI.js +1 -0
  112. package/client/dist/assets/chevron-right-CwMAj0w_.js +1 -0
  113. package/client/dist/assets/chevron-up-BAMuP0XD.js +1 -0
  114. package/client/dist/assets/chunk-OB3PAWPO-BBaq6pUk.js +3 -0
  115. package/client/dist/assets/code-4le5IIbf.js +1 -0
  116. package/client/dist/assets/code-B-jCVIbm.js +1 -0
  117. package/client/dist/assets/code-BRfrn5ix.js +1 -0
  118. package/client/dist/assets/code-CC9NCrDM.js +1 -0
  119. package/client/dist/assets/code-CK6pm8wY.js +1 -0
  120. package/client/dist/assets/code-DDiOzd6c.js +1 -0
  121. package/client/dist/assets/code-tGifiyf5.js +1 -0
  122. package/client/dist/assets/code-xkn8kQTg.js +1 -0
  123. package/client/dist/assets/commands-Bv1QshHR.js +1 -0
  124. package/client/dist/assets/commands-BvxTxboW.js +1 -0
  125. package/client/dist/assets/commands-C5ORR0fO.js +1 -0
  126. package/client/dist/assets/commands-CBKMFSTV.js +1 -0
  127. package/client/dist/assets/commands-CFJIRsJv.js +1 -0
  128. package/client/dist/assets/commands-D9o3ZcXl.js +1 -0
  129. package/client/dist/assets/commands-DNox0Edk.js +1 -0
  130. package/client/dist/assets/commands-DmIUMLdV.js +1 -0
  131. package/client/dist/assets/common-5H4TkaoI.js +1 -0
  132. package/client/dist/assets/common-9S3OdPjx.js +1 -0
  133. package/client/dist/assets/common-BqnwIcjs.js +1 -0
  134. package/client/dist/assets/common-CQP3VafS.js +1 -0
  135. package/client/dist/assets/common-CZnAfkB2.js +1 -0
  136. package/client/dist/assets/common-D5sNttV4.js +1 -0
  137. package/client/dist/assets/common-k_qX9nlv.js +1 -0
  138. package/client/dist/assets/common-s4HIi9XI.js +1 -0
  139. package/client/dist/assets/compass-B7guwBlY.js +1 -0
  140. package/client/dist/assets/confirm-dialog-ChZdHL3Q.js +1 -0
  141. package/client/dist/assets/copy-DOPlLymH.js +1 -0
  142. package/client/dist/assets/core-BozBzB6Y.js +1 -0
  143. package/client/dist/assets/dashboard-6zGLGcEz.js +1 -0
  144. package/client/dist/assets/dashboard-8Gi0FBDq.js +1 -0
  145. package/client/dist/assets/dashboard-B7E5YrSy.js +1 -0
  146. package/client/dist/assets/dashboard-BhdKV8xK.js +1 -0
  147. package/client/dist/assets/dashboard-Bu3zzH_s.js +1 -0
  148. package/client/dist/assets/dashboard-Ce_6rELA.js +1 -0
  149. package/client/dist/assets/dashboard-DWY-oz8P.js +1 -0
  150. package/client/dist/assets/dashboard-gUzlWk0o.js +1 -0
  151. package/client/dist/assets/date-input-Cdlr8kHz.js +1 -0
  152. package/client/dist/assets/dialog-C23lB2iP.js +5 -0
  153. package/client/dist/assets/dist-Di-oOFkX.js +1 -0
  154. package/client/dist/assets/dist-js-CBmS6MsJ.js +1 -0
  155. package/client/dist/assets/{dist-js-Rlh4FLH5.js → dist-js-DaJmKapi.js} +1 -1
  156. package/client/dist/assets/dropdown-menu-Bfp2CK6H.js +1 -0
  157. package/client/dist/assets/empty-state-D5w9OWj-.js +1 -0
  158. package/client/dist/assets/es2015-DfnECntk.js +41 -0
  159. package/client/dist/assets/esm-BKF6CE7v.js +1 -0
  160. package/client/dist/assets/event-BEnMLqAi.js +1 -0
  161. package/client/dist/assets/explore--NOz9LCN.js +1 -0
  162. package/client/dist/assets/explore-B2ulH6dO.js +1 -0
  163. package/client/dist/assets/explore-BD-QiLdg.js +1 -0
  164. package/client/dist/assets/explore-BOqd4_1j.js +1 -0
  165. package/client/dist/assets/explore-Be_Zh5zu.js +1 -0
  166. package/client/dist/assets/explore-CLjzPSKo.js +1 -0
  167. package/client/dist/assets/explore-D_-vHm29.js +1 -0
  168. package/client/dist/assets/explore-yEQTF6ro.js +1 -0
  169. package/client/dist/assets/file-text-CNXzL3wj.js +1 -0
  170. package/client/dist/assets/format-BODoFIw6.js +1 -0
  171. package/client/dist/assets/formatDistanceToNow-DLMIOS0N.js +1 -0
  172. package/client/dist/assets/getTimezoneOffsetInMilliseconds-O61feXch.js +1 -0
  173. package/client/dist/assets/git-compare-arrows-Cu6tICCq.js +1 -0
  174. package/client/dist/assets/humanise-command-CB4ybLwq.js +1 -0
  175. package/client/dist/assets/inbox-BLZ8cm6_.js +1 -0
  176. package/client/dist/assets/inbox-BQ3VmNYY.js +1 -0
  177. package/client/dist/assets/inbox-BdcXWCuT.js +1 -0
  178. package/client/dist/assets/inbox-CF1PHjns.js +1 -0
  179. package/client/dist/assets/inbox-CFNPDhso.js +1 -0
  180. package/client/dist/assets/inbox-DIttK_NW.js +1 -0
  181. package/client/dist/assets/inbox-Dfdv1Ykl.js +1 -0
  182. package/client/dist/assets/inbox-JS1inmeO.js +1 -0
  183. package/client/dist/assets/index-4UWY7Xyz.css +2 -0
  184. package/client/dist/assets/index-DHzB0T26.js +120 -0
  185. package/client/dist/assets/integrations-BcKgzgPD.js +1 -0
  186. package/client/dist/assets/integrations-BmX_XyJq.js +1 -0
  187. package/client/dist/assets/integrations-CHpwMjlY.js +1 -0
  188. package/client/dist/assets/integrations-CT3kr8e-.js +1 -0
  189. package/client/dist/assets/integrations-C_5XAkgz.js +1 -0
  190. package/client/dist/assets/integrations-Ct9zLX7N.js +1 -0
  191. package/client/dist/assets/integrations-DEYemxUv.js +1 -0
  192. package/client/dist/assets/integrations-DWvsB_WB.js +1 -0
  193. package/client/dist/assets/{jira-Cq6yvN4q.js → jira-B_ERkFRv.js} +1 -1
  194. package/client/dist/assets/jira-Bn-A5lwD.js +1 -0
  195. package/client/dist/assets/jira-C71Ybnhp.js +1 -0
  196. package/client/dist/assets/jira-CkwjeJz6.js +1 -0
  197. package/client/dist/assets/jira-D9pSLXjI.js +1 -0
  198. package/client/dist/assets/jira-DBRS_lcp.js +1 -0
  199. package/client/dist/assets/jira-DHS6CsKh.js +1 -0
  200. package/client/dist/assets/jira-MInHRUb1.js +1 -0
  201. package/client/dist/assets/jira-api-DHme7Upx.js +1 -0
  202. package/client/dist/assets/jobs-BMLTDo63.js +1 -0
  203. package/client/dist/assets/jobs-BO8q4Mi1.js +1 -0
  204. package/client/dist/assets/jobs-Ck8uOWMM.js +1 -0
  205. package/client/dist/assets/jobs-CyFfPCpg.js +1 -0
  206. package/client/dist/assets/jobs-DT5s4fZ6.js +1 -0
  207. package/client/dist/assets/jobs-DZAgVPcD.js +1 -0
  208. package/client/dist/assets/jobs-b5gPYaKr.js +1 -0
  209. package/client/dist/assets/jobs-xsZK1440.js +1 -0
  210. package/client/dist/assets/launch-forecast-BTa-p3RP.js +1 -0
  211. package/client/dist/assets/{loop-layout-DtxX27Jz.css → loop-layout-DLioOiRN.css} +1 -1
  212. package/client/dist/assets/loop-layout-Sl9cfTvs.js +7 -0
  213. package/client/dist/assets/loops-BEEOVJDR.js +1 -0
  214. package/client/dist/assets/loops-BcrQ2vk7.js +1 -0
  215. package/client/dist/assets/loops-BjWxzJIZ.js +1 -0
  216. package/client/dist/assets/loops-BogV595N.js +1 -0
  217. package/client/dist/assets/loops-CU0BLZiz.js +1 -0
  218. package/client/dist/assets/loops-CrNBgi1G.js +1 -0
  219. package/client/dist/assets/loops-CwalwS_i.js +1 -0
  220. package/client/dist/assets/loops-_TDVN-fX.js +1 -0
  221. package/client/dist/assets/mcp-BNs8gxoL.js +1 -0
  222. package/client/dist/assets/mcp-BvRh_xO5.js +1 -0
  223. package/client/dist/assets/mcp-C2F1pghi.js +1 -0
  224. package/client/dist/assets/mcp-D9RLKAs2.js +1 -0
  225. package/client/dist/assets/mcp-DAghcsR0.js +1 -0
  226. package/client/dist/assets/mcp-DWWAPi1G.js +1 -0
  227. package/client/dist/assets/mcp-DbGSFC3f.js +1 -0
  228. package/client/dist/assets/mcp-FelCicrv.js +1 -0
  229. package/client/dist/assets/narration-C3NBkAR4.js +1 -0
  230. package/client/dist/assets/narration-CkoJq-Lf.js +1 -0
  231. package/client/dist/assets/narration-Cr0NeW9K.js +1 -0
  232. package/client/dist/assets/narration-DJUXOs-W.js +1 -0
  233. package/client/dist/assets/narration-DgL8TMvN.js +1 -0
  234. package/client/dist/assets/narration-DjBafgv0.js +1 -0
  235. package/client/dist/assets/narration-Dle6Iv0c.js +1 -0
  236. package/client/dist/assets/narration-MYlfktga.js +1 -0
  237. package/client/dist/assets/nav-BSQ8KW1c.js +1 -0
  238. package/client/dist/assets/nav-BauVof8Z.js +1 -0
  239. package/client/dist/assets/nav-BfOAH1se.js +1 -0
  240. package/client/dist/assets/nav-D3bOsipX.js +1 -0
  241. package/client/dist/assets/nav-DOMMhlLx.js +1 -0
  242. package/client/dist/assets/nav-DPzVlgZU.js +1 -0
  243. package/client/dist/assets/nav-DZJbFbah.js +1 -0
  244. package/client/dist/assets/nav-D_5aojd2.js +1 -0
  245. package/client/dist/assets/notify-error-BsWANx1T.js +1 -0
  246. package/client/dist/assets/onboarding-BdZQnNm3.js +1 -0
  247. package/client/dist/assets/onboarding-CJQEv1vp.js +1 -0
  248. package/client/dist/assets/onboarding-CWJGYUW3.js +1 -0
  249. package/client/dist/assets/onboarding-ChfYN7dA.js +1 -0
  250. package/client/dist/assets/onboarding-CjvDUR3V.js +1 -0
  251. package/client/dist/assets/onboarding-I6vS-zTB.js +1 -0
  252. package/client/dist/assets/onboarding-dgC_9dTB.js +1 -0
  253. package/client/dist/assets/onboarding-mlXSyKzX.js +1 -0
  254. package/client/dist/assets/origin-03nTuaOb.js +1 -0
  255. package/client/dist/assets/packet-BjpyRnZr.js +1 -0
  256. package/client/dist/assets/packet-BwgG5mBt.js +1 -0
  257. package/client/dist/assets/packet-C3eAUFkV.js +1 -0
  258. package/client/dist/assets/packet-C8wZuSld.js +1 -0
  259. package/client/dist/assets/packet-CNXEy_85.js +1 -0
  260. package/client/dist/assets/packet-DsV5Aa_8.js +1 -0
  261. package/client/dist/assets/packet-aasskOE7.js +1 -0
  262. package/client/dist/assets/packet-phxCc2gJ.js +1 -0
  263. package/client/dist/assets/page-header-BStSHkP8.js +1 -0
  264. package/client/dist/assets/project-repositories-DJPeAVBK.js +1 -0
  265. package/client/dist/assets/{provider-capabilities-lePfeT_Y.js → provider-capabilities-DtwcTme4.js} +1 -1
  266. package/client/dist/assets/recovery-BPDOsC92.js +1 -0
  267. package/client/dist/assets/recovery-BluNHoXM.js +1 -0
  268. package/client/dist/assets/recovery-CRvEmB0C.js +1 -0
  269. package/client/dist/assets/recovery-CeIoRnkR.js +1 -0
  270. package/client/dist/assets/recovery-DHCo8KGi.js +1 -0
  271. package/client/dist/assets/recovery-OxAIpbBF.js +1 -0
  272. package/client/dist/assets/recovery-XXexYGOJ.js +1 -0
  273. package/client/dist/assets/recovery-pITlc--v.js +1 -0
  274. package/client/dist/assets/refresh-cw-DfyTkbsf.js +1 -0
  275. package/client/dist/assets/select-xA3pSmqE.js +1 -0
  276. package/client/dist/assets/settings--yzDbX9r.js +1 -0
  277. package/client/dist/assets/settings-5_heTv8s.js +1 -0
  278. package/client/dist/assets/settings-BSf27MDg.js +1 -0
  279. package/client/dist/assets/settings-BSj6FakR.js +1 -0
  280. package/client/dist/assets/settings-BZDo_8Nn.js +1 -0
  281. package/client/dist/assets/settings-BdWgmNc0.js +1 -0
  282. package/client/dist/assets/settings-DRouxKqb.js +1 -0
  283. package/client/dist/assets/settings-DnWFoY-F.js +1 -0
  284. package/client/dist/assets/setup-BJWy62ri.js +1 -0
  285. package/client/dist/assets/setup-BgKOIuzc.js +1 -0
  286. package/client/dist/assets/setup-BvVIyUlz.js +1 -0
  287. package/client/dist/assets/setup-BxCk2pe1.js +1 -0
  288. package/client/dist/assets/setup-C-xQTL7R.js +1 -0
  289. package/client/dist/assets/setup-CbaVoiwV.js +1 -0
  290. package/client/dist/assets/setup-DxTBkX3P.js +1 -0
  291. package/client/dist/assets/setup-oGoVAzOD.js +1 -0
  292. package/client/dist/assets/specs-7tAb4IKr.js +1 -0
  293. package/client/dist/assets/specs-BUcY4s5v.js +1 -0
  294. package/client/dist/assets/specs-Bk5LeBAA.js +1 -0
  295. package/client/dist/assets/specs-CAA4Lrlg.js +1 -0
  296. package/client/dist/assets/specs-CS091AnA.js +1 -0
  297. package/client/dist/assets/specs-DJ6gmFcK.js +1 -0
  298. package/client/dist/assets/specs-GfCcrBSC.js +1 -0
  299. package/client/dist/assets/specs-xQgyc7WL.js +1 -0
  300. package/client/dist/assets/spending-CVH8VREb.js +1 -0
  301. package/client/dist/assets/square-Co6h5vZg.js +1 -0
  302. package/client/dist/assets/tauri-shell-43ixPGfa.js +2 -0
  303. package/client/dist/assets/terminal-0v9sBylD.js +1 -0
  304. package/client/dist/assets/terminal-AbUAmCxE.js +1 -0
  305. package/client/dist/assets/terminal-BJayIbIP.js +1 -0
  306. package/client/dist/assets/terminal-C2RUlXyi.js +1 -0
  307. package/client/dist/assets/terminal-CMmSb_Nj.js +1 -0
  308. package/client/dist/assets/terminal-DKWjj7HJ.js +1 -0
  309. package/client/dist/assets/terminal-KlFu7_pV.js +1 -0
  310. package/client/dist/assets/terminal-i99yqFvm.js +1 -0
  311. package/client/dist/assets/tickets-846Oq3i3.js +1 -0
  312. package/client/dist/assets/tickets-B5LJTe_b.js +1 -0
  313. package/client/dist/assets/tickets-Bfo2GGmH.js +1 -0
  314. package/client/dist/assets/tickets-BhdZ1yY2.js +1 -0
  315. package/client/dist/assets/tickets-CgjWJHAW.js +1 -0
  316. package/client/dist/assets/tickets-Ct9DbDUR.js +1 -0
  317. package/client/dist/assets/tickets-rptLEJB1.js +1 -0
  318. package/client/dist/assets/tickets-xQ6DpYdu.js +1 -0
  319. package/client/dist/assets/trending-up-BGvb4zZt.js +1 -0
  320. package/client/dist/assets/undo-6zuS4-sL.js +1 -0
  321. package/client/dist/assets/undo-BeM4gDOP.js +1 -0
  322. package/client/dist/assets/undo-BeppX8xS.js +1 -0
  323. package/client/dist/assets/undo-BqvNZ5MG.js +1 -0
  324. package/client/dist/assets/undo-BzwEPf_k.js +1 -0
  325. package/client/dist/assets/undo-CJ9Cu1NN.js +1 -0
  326. package/client/dist/assets/undo-ds8nMFbX.js +1 -0
  327. package/client/dist/assets/undo-x_gA-knG.js +1 -0
  328. package/client/dist/assets/useDesktop-BuOp2-MR.js +1 -0
  329. package/client/dist/assets/useRuntimeRuns-BRS6ncnO.js +1 -0
  330. package/client/dist/assets/utils-ELimjS2Y.js +1 -0
  331. package/client/dist/assets/wrench-Br2n1Lxd.js +1 -0
  332. package/client/dist/index.html +75 -60
  333. package/docs/ci-cd.md +29 -1
  334. package/docs/cli.md +10 -31
  335. package/docs/codex.md +1 -1
  336. package/docs/creating-specs.md +15 -12
  337. package/docs/customizing.md +16 -13
  338. package/docs/getting-started.md +12 -11
  339. package/docs/guide/de/agents/1-meet-the-agents.md +1 -1
  340. package/docs/guide/de/getting-started/2-installing-and-first-run.md +2 -0
  341. package/docs/guide/de/getting-started/3-try-the-sample-project.md +35 -0
  342. package/docs/guide/de/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
  343. package/docs/guide/de/getting-started/6-universal-search.md +34 -0
  344. package/docs/guide/de/insights/1-analytics-and-cost-tracking.md +20 -6
  345. package/docs/guide/de/insights/2-the-integrated-terminal.md +1 -1
  346. package/docs/guide/de/insights/3-code-explorer.md +1 -1
  347. package/docs/guide/de/integrations/1-ai-providers.md +1 -1
  348. package/docs/guide/de/integrations/2-plugins.md +1 -1
  349. package/docs/guide/de/integrations/3-jira-integration.md +3 -3
  350. package/docs/guide/de/integrations/4-mobile-companion.md +1 -1
  351. package/docs/guide/de/integrations/5-mcp-server.md +1 -1
  352. package/docs/guide/de/integrations/6-agent-chat.md +12 -5
  353. package/docs/guide/de/integrations/8-flow-mode.md +69 -0
  354. package/docs/guide/de/pipeline/1-rails-and-jobs.md +21 -1
  355. package/docs/guide/de/pipeline/2-the-job-detail-view.md +12 -0
  356. package/docs/guide/de/pipeline/3-reviewing-a-delivery.md +43 -0
  357. package/docs/guide/de/pipeline/4-picking-an-engine-per-rail.md +2 -2
  358. package/docs/guide/de/pipeline/5-the-loop-builder.md +1 -1
  359. package/docs/guide/de/settings/1-themes.md +1 -1
  360. package/docs/guide/de/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
  361. package/docs/guide/de/settings/5-project-environment.md +1 -1
  362. package/docs/guide/de/settings/6-updates.md +24 -0
  363. package/docs/guide/de/settings/7-existing-projects.md +33 -0
  364. package/docs/guide/de/settings/8-accessibility.md +23 -0
  365. package/docs/guide/de/specs/1-specs-and-the-backlog.md +41 -3
  366. package/docs/guide/de/specs/2-add-spec-quick-mode.md +1 -1
  367. package/docs/guide/de/specs/3-add-spec-explore-mode.md +1 -1
  368. package/docs/guide/en/agents/1-meet-the-agents.md +1 -1
  369. package/docs/guide/en/getting-started/1-what-is-specrails.md +1 -1
  370. package/docs/guide/en/getting-started/2-installing-and-first-run.md +2 -0
  371. package/docs/guide/en/getting-started/3-try-the-sample-project.md +35 -0
  372. package/docs/guide/en/getting-started/5-the-dashboard-tour.md +52 -0
  373. package/docs/guide/en/getting-started/6-universal-search.md +34 -0
  374. package/docs/guide/en/insights/1-analytics-and-cost-tracking.md +24 -10
  375. package/docs/guide/en/insights/2-the-integrated-terminal.md +1 -1
  376. package/docs/guide/en/insights/3-code-explorer.md +5 -5
  377. package/docs/guide/en/integrations/1-ai-providers.md +1 -1
  378. package/docs/guide/en/integrations/2-plugins.md +1 -1
  379. package/docs/guide/en/integrations/3-jira-integration.md +4 -4
  380. package/docs/guide/en/integrations/4-mobile-companion.md +1 -1
  381. package/docs/guide/en/integrations/5-mcp-server.md +4 -4
  382. package/docs/guide/en/integrations/6-agent-chat.md +12 -5
  383. package/docs/guide/en/integrations/8-flow-mode.md +69 -0
  384. package/docs/guide/en/pipeline/1-rails-and-jobs.md +22 -3
  385. package/docs/guide/en/pipeline/2-the-job-detail-view.md +19 -7
  386. package/docs/guide/en/pipeline/3-reviewing-a-delivery.md +43 -0
  387. package/docs/guide/en/pipeline/4-picking-an-engine-per-rail.md +2 -2
  388. package/docs/guide/en/pipeline/5-the-loop-builder.md +2 -2
  389. package/docs/guide/en/settings/1-themes.md +1 -1
  390. package/docs/guide/en/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
  391. package/docs/guide/en/settings/5-project-environment.md +1 -1
  392. package/docs/guide/en/settings/6-updates.md +24 -0
  393. package/docs/guide/en/settings/7-existing-projects.md +33 -0
  394. package/docs/guide/en/settings/8-accessibility.md +23 -0
  395. package/docs/guide/en/specs/1-specs-and-the-backlog.md +42 -6
  396. package/docs/guide/en/specs/2-add-spec-quick-mode.md +1 -1
  397. package/docs/guide/en/specs/3-add-spec-explore-mode.md +2 -2
  398. package/docs/guide/es/agents/1-meet-the-agents.md +1 -1
  399. package/docs/guide/es/agents/2-profiles-and-the-balanced-default.md +1 -1
  400. package/docs/guide/es/agents/3-customizing-models-per-agent.md +2 -2
  401. package/docs/guide/es/agents/4-custom-agents-catalog.md +1 -1
  402. package/docs/guide/es/getting-started/1-what-is-specrails.md +3 -3
  403. package/docs/guide/es/getting-started/2-installing-and-first-run.md +2 -0
  404. package/docs/guide/es/getting-started/3-try-the-sample-project.md +35 -0
  405. package/docs/guide/es/getting-started/5-the-dashboard-tour.md +52 -0
  406. package/docs/guide/es/getting-started/6-universal-search.md +34 -0
  407. package/docs/guide/es/insights/1-analytics-and-cost-tracking.md +26 -12
  408. package/docs/guide/es/insights/2-the-integrated-terminal.md +1 -1
  409. package/docs/guide/es/insights/3-code-explorer.md +5 -5
  410. package/docs/guide/es/integrations/1-ai-providers.md +1 -1
  411. package/docs/guide/es/integrations/2-plugins.md +1 -1
  412. package/docs/guide/es/integrations/3-jira-integration.md +4 -4
  413. package/docs/guide/es/integrations/4-mobile-companion.md +1 -1
  414. package/docs/guide/es/integrations/5-mcp-server.md +4 -4
  415. package/docs/guide/es/integrations/6-agent-chat.md +14 -7
  416. package/docs/guide/es/integrations/7-local-engines.md +1 -1
  417. package/docs/guide/es/integrations/8-flow-mode.md +69 -0
  418. package/docs/guide/es/pipeline/1-rails-and-jobs.md +33 -13
  419. package/docs/guide/es/pipeline/2-the-job-detail-view.md +38 -26
  420. package/docs/guide/es/pipeline/3-reviewing-a-delivery.md +43 -0
  421. package/docs/guide/es/pipeline/4-picking-an-engine-per-rail.md +2 -2
  422. package/docs/guide/es/pipeline/5-the-loop-builder.md +4 -4
  423. package/docs/guide/es/settings/1-themes.md +1 -1
  424. package/docs/guide/es/settings/3-pipeline-telemetry-and-diagnostics.md +10 -10
  425. package/docs/guide/es/settings/5-project-environment.md +1 -1
  426. package/docs/guide/es/settings/6-updates.md +24 -0
  427. package/docs/guide/es/settings/7-existing-projects.md +33 -0
  428. package/docs/guide/es/settings/8-accessibility.md +23 -0
  429. package/docs/guide/es/specs/1-specs-and-the-backlog.md +43 -7
  430. package/docs/guide/es/specs/2-add-spec-quick-mode.md +1 -1
  431. package/docs/guide/es/specs/3-add-spec-explore-mode.md +3 -3
  432. package/docs/guide/fr/agents/1-meet-the-agents.md +1 -1
  433. package/docs/guide/fr/getting-started/2-installing-and-first-run.md +2 -0
  434. package/docs/guide/fr/getting-started/3-try-the-sample-project.md +35 -0
  435. package/docs/guide/fr/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
  436. package/docs/guide/fr/getting-started/6-universal-search.md +34 -0
  437. package/docs/guide/fr/insights/1-analytics-and-cost-tracking.md +18 -4
  438. package/docs/guide/fr/insights/2-the-integrated-terminal.md +1 -1
  439. package/docs/guide/fr/insights/3-code-explorer.md +1 -1
  440. package/docs/guide/fr/integrations/1-ai-providers.md +1 -1
  441. package/docs/guide/fr/integrations/2-plugins.md +1 -1
  442. package/docs/guide/fr/integrations/3-jira-integration.md +3 -3
  443. package/docs/guide/fr/integrations/4-mobile-companion.md +1 -1
  444. package/docs/guide/fr/integrations/5-mcp-server.md +1 -1
  445. package/docs/guide/fr/integrations/6-agent-chat.md +11 -4
  446. package/docs/guide/fr/integrations/8-flow-mode.md +69 -0
  447. package/docs/guide/fr/pipeline/1-rails-and-jobs.md +21 -1
  448. package/docs/guide/fr/pipeline/2-the-job-detail-view.md +12 -0
  449. package/docs/guide/fr/pipeline/3-reviewing-a-delivery.md +43 -0
  450. package/docs/guide/fr/pipeline/4-picking-an-engine-per-rail.md +2 -2
  451. package/docs/guide/fr/pipeline/5-the-loop-builder.md +1 -1
  452. package/docs/guide/fr/settings/1-themes.md +1 -1
  453. package/docs/guide/fr/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
  454. package/docs/guide/fr/settings/5-project-environment.md +1 -1
  455. package/docs/guide/fr/settings/6-updates.md +24 -0
  456. package/docs/guide/fr/settings/7-existing-projects.md +33 -0
  457. package/docs/guide/fr/settings/8-accessibility.md +23 -0
  458. package/docs/guide/fr/specs/1-specs-and-the-backlog.md +41 -3
  459. package/docs/guide/fr/specs/2-add-spec-quick-mode.md +1 -1
  460. package/docs/guide/fr/specs/3-add-spec-explore-mode.md +1 -1
  461. package/docs/guide/it/agents/1-meet-the-agents.md +1 -1
  462. package/docs/guide/it/getting-started/2-installing-and-first-run.md +2 -0
  463. package/docs/guide/it/getting-started/3-try-the-sample-project.md +35 -0
  464. package/docs/guide/it/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
  465. package/docs/guide/it/getting-started/6-universal-search.md +34 -0
  466. package/docs/guide/it/insights/1-analytics-and-cost-tracking.md +18 -4
  467. package/docs/guide/it/insights/2-the-integrated-terminal.md +1 -1
  468. package/docs/guide/it/insights/3-code-explorer.md +1 -1
  469. package/docs/guide/it/integrations/1-ai-providers.md +1 -1
  470. package/docs/guide/it/integrations/2-plugins.md +1 -1
  471. package/docs/guide/it/integrations/3-jira-integration.md +3 -3
  472. package/docs/guide/it/integrations/4-mobile-companion.md +1 -1
  473. package/docs/guide/it/integrations/5-mcp-server.md +1 -1
  474. package/docs/guide/it/integrations/6-agent-chat.md +11 -4
  475. package/docs/guide/it/integrations/8-flow-mode.md +69 -0
  476. package/docs/guide/it/pipeline/1-rails-and-jobs.md +21 -1
  477. package/docs/guide/it/pipeline/2-the-job-detail-view.md +12 -0
  478. package/docs/guide/it/pipeline/3-reviewing-a-delivery.md +43 -0
  479. package/docs/guide/it/pipeline/4-picking-an-engine-per-rail.md +2 -2
  480. package/docs/guide/it/pipeline/5-the-loop-builder.md +1 -1
  481. package/docs/guide/it/settings/1-themes.md +1 -1
  482. package/docs/guide/it/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
  483. package/docs/guide/it/settings/5-project-environment.md +1 -1
  484. package/docs/guide/it/settings/6-updates.md +24 -0
  485. package/docs/guide/it/settings/7-existing-projects.md +33 -0
  486. package/docs/guide/it/settings/8-accessibility.md +23 -0
  487. package/docs/guide/it/specs/1-specs-and-the-backlog.md +41 -3
  488. package/docs/guide/it/specs/2-add-spec-quick-mode.md +1 -1
  489. package/docs/guide/it/specs/3-add-spec-explore-mode.md +1 -1
  490. package/docs/guide/ja/agents/1-meet-the-agents.md +1 -1
  491. package/docs/guide/ja/getting-started/2-installing-and-first-run.md +2 -0
  492. package/docs/guide/ja/getting-started/3-try-the-sample-project.md +35 -0
  493. package/docs/guide/ja/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
  494. package/docs/guide/ja/getting-started/6-universal-search.md +34 -0
  495. package/docs/guide/ja/insights/1-analytics-and-cost-tracking.md +18 -4
  496. package/docs/guide/ja/insights/2-the-integrated-terminal.md +1 -1
  497. package/docs/guide/ja/insights/3-code-explorer.md +1 -1
  498. package/docs/guide/ja/integrations/1-ai-providers.md +1 -1
  499. package/docs/guide/ja/integrations/2-plugins.md +1 -1
  500. package/docs/guide/ja/integrations/3-jira-integration.md +3 -3
  501. package/docs/guide/ja/integrations/4-mobile-companion.md +1 -1
  502. package/docs/guide/ja/integrations/5-mcp-server.md +1 -1
  503. package/docs/guide/ja/integrations/6-agent-chat.md +11 -4
  504. package/docs/guide/ja/integrations/8-flow-mode.md +69 -0
  505. package/docs/guide/ja/pipeline/1-rails-and-jobs.md +21 -1
  506. package/docs/guide/ja/pipeline/2-the-job-detail-view.md +12 -0
  507. package/docs/guide/ja/pipeline/3-reviewing-a-delivery.md +43 -0
  508. package/docs/guide/ja/pipeline/4-picking-an-engine-per-rail.md +2 -2
  509. package/docs/guide/ja/pipeline/5-the-loop-builder.md +1 -1
  510. package/docs/guide/ja/settings/1-themes.md +1 -1
  511. package/docs/guide/ja/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
  512. package/docs/guide/ja/settings/5-project-environment.md +1 -1
  513. package/docs/guide/ja/settings/6-updates.md +24 -0
  514. package/docs/guide/ja/settings/7-existing-projects.md +33 -0
  515. package/docs/guide/ja/settings/8-accessibility.md +23 -0
  516. package/docs/guide/ja/specs/1-specs-and-the-backlog.md +41 -3
  517. package/docs/guide/ja/specs/2-add-spec-quick-mode.md +1 -1
  518. package/docs/guide/ja/specs/3-add-spec-explore-mode.md +1 -1
  519. package/docs/guide/pt/agents/1-meet-the-agents.md +1 -1
  520. package/docs/guide/pt/getting-started/2-installing-and-first-run.md +2 -0
  521. package/docs/guide/pt/getting-started/3-try-the-sample-project.md +35 -0
  522. package/docs/guide/pt/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
  523. package/docs/guide/pt/getting-started/6-universal-search.md +34 -0
  524. package/docs/guide/pt/insights/1-analytics-and-cost-tracking.md +18 -4
  525. package/docs/guide/pt/insights/2-the-integrated-terminal.md +1 -1
  526. package/docs/guide/pt/insights/3-code-explorer.md +1 -1
  527. package/docs/guide/pt/integrations/1-ai-providers.md +1 -1
  528. package/docs/guide/pt/integrations/2-plugins.md +1 -1
  529. package/docs/guide/pt/integrations/3-jira-integration.md +3 -3
  530. package/docs/guide/pt/integrations/4-mobile-companion.md +1 -1
  531. package/docs/guide/pt/integrations/5-mcp-server.md +1 -1
  532. package/docs/guide/pt/integrations/6-agent-chat.md +12 -5
  533. package/docs/guide/pt/integrations/8-flow-mode.md +69 -0
  534. package/docs/guide/pt/pipeline/1-rails-and-jobs.md +21 -1
  535. package/docs/guide/pt/pipeline/2-the-job-detail-view.md +12 -0
  536. package/docs/guide/pt/pipeline/3-reviewing-a-delivery.md +43 -0
  537. package/docs/guide/pt/pipeline/4-picking-an-engine-per-rail.md +2 -2
  538. package/docs/guide/pt/pipeline/5-the-loop-builder.md +1 -1
  539. package/docs/guide/pt/settings/1-themes.md +1 -1
  540. package/docs/guide/pt/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
  541. package/docs/guide/pt/settings/5-project-environment.md +1 -1
  542. package/docs/guide/pt/settings/6-updates.md +24 -0
  543. package/docs/guide/pt/settings/7-existing-projects.md +33 -0
  544. package/docs/guide/pt/settings/8-accessibility.md +23 -0
  545. package/docs/guide/pt/specs/1-specs-and-the-backlog.md +41 -3
  546. package/docs/guide/pt/specs/2-add-spec-quick-mode.md +1 -1
  547. package/docs/guide/pt/specs/3-add-spec-explore-mode.md +1 -1
  548. package/docs/guide/zh/agents/1-meet-the-agents.md +1 -1
  549. package/docs/guide/zh/getting-started/2-installing-and-first-run.md +2 -0
  550. package/docs/guide/zh/getting-started/3-try-the-sample-project.md +35 -0
  551. package/docs/guide/zh/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
  552. package/docs/guide/zh/getting-started/6-universal-search.md +34 -0
  553. package/docs/guide/zh/insights/1-analytics-and-cost-tracking.md +18 -4
  554. package/docs/guide/zh/insights/2-the-integrated-terminal.md +1 -1
  555. package/docs/guide/zh/insights/3-code-explorer.md +1 -1
  556. package/docs/guide/zh/integrations/1-ai-providers.md +1 -1
  557. package/docs/guide/zh/integrations/2-plugins.md +1 -1
  558. package/docs/guide/zh/integrations/3-jira-integration.md +3 -3
  559. package/docs/guide/zh/integrations/4-mobile-companion.md +1 -1
  560. package/docs/guide/zh/integrations/5-mcp-server.md +1 -1
  561. package/docs/guide/zh/integrations/6-agent-chat.md +11 -4
  562. package/docs/guide/zh/integrations/8-flow-mode.md +69 -0
  563. package/docs/guide/zh/pipeline/1-rails-and-jobs.md +21 -1
  564. package/docs/guide/zh/pipeline/2-the-job-detail-view.md +12 -0
  565. package/docs/guide/zh/pipeline/3-reviewing-a-delivery.md +43 -0
  566. package/docs/guide/zh/pipeline/4-picking-an-engine-per-rail.md +2 -2
  567. package/docs/guide/zh/pipeline/5-the-loop-builder.md +1 -1
  568. package/docs/guide/zh/settings/1-themes.md +1 -1
  569. package/docs/guide/zh/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
  570. package/docs/guide/zh/settings/5-project-environment.md +1 -1
  571. package/docs/guide/zh/settings/6-updates.md +24 -0
  572. package/docs/guide/zh/settings/7-existing-projects.md +33 -0
  573. package/docs/guide/zh/settings/8-accessibility.md +23 -0
  574. package/docs/guide/zh/specs/1-specs-and-the-backlog.md +41 -3
  575. package/docs/guide/zh/specs/2-add-spec-quick-mode.md +1 -1
  576. package/docs/guide/zh/specs/3-add-spec-explore-mode.md +1 -1
  577. package/docs/internals/README.md +8 -0
  578. package/docs/internals/adding-a-provider.md +19 -2
  579. package/docs/internals/agent-actions-audit.md +101 -0
  580. package/docs/internals/agent-sessions.md +36 -1
  581. package/docs/internals/api-reference.md +190 -45
  582. package/docs/internals/architecture.md +53 -47
  583. package/docs/internals/companion-inbox-decisions.md +42 -0
  584. package/docs/internals/companion-rails-as-loops-contract.md +17 -6
  585. package/docs/internals/configuration.md +140 -9
  586. package/docs/internals/core-runtime-updates.md +4 -4
  587. package/docs/internals/existing-project-anchoring.md +168 -0
  588. package/docs/internals/flow-mode.md +668 -0
  589. package/docs/internals/legacy-implementation-notes.md +13 -0
  590. package/docs/internals/local-testing-feedback-2026-10.md +210 -0
  591. package/docs/internals/mcp-mission-audit.md +4 -0
  592. package/docs/internals/mission-rail-cards.md +10 -5
  593. package/docs/internals/mission-read-only-policy.md +152 -0
  594. package/docs/internals/modal-standard.md +181 -0
  595. package/docs/internals/openspec-workflow.md +32 -0
  596. package/docs/internals/operations-runbook.md +30 -0
  597. package/docs/internals/profiles.md +6 -3
  598. package/docs/internals/programmatic-agent-runtime.md +8 -0
  599. package/docs/internals/project-builder.md +1 -1
  600. package/docs/internals/review-packet.md +161 -9
  601. package/docs/internals/safe-pr-review-flow.md +135 -6
  602. package/docs/internals/source-map.md +413 -18
  603. package/docs/internals/spec-addenda.md +10 -0
  604. package/docs/internals/spec-triage.md +140 -0
  605. package/docs/internals/visual-design-audit.md +15 -2
  606. package/docs/local-providers.md +3 -0
  607. package/docs/mcp.md +21 -3
  608. package/docs/platforms/macos.md +1 -1
  609. package/docs/platforms/windows.md +2 -2
  610. package/docs/running-pipelines.md +22 -6
  611. package/docs/tracking-cost.md +54 -10
  612. package/local-runner/dist/specrails-local-runner.js +3851 -1178
  613. package/mcp-bridge/dist/specrails-mcp.js +3864 -1143
  614. package/package.json +10 -9
  615. package/server/dist/agent-mcp-config.js +37 -1
  616. package/server/dist/api-version.js +19 -0
  617. package/server/dist/command-resolver.js +4 -2
  618. package/server/dist/core-compat.js +1 -1
  619. package/server/dist/core-execution.js +2 -1
  620. package/server/dist/core-update-manager.js +71 -13
  621. package/server/dist/db/job-search.js +248 -0
  622. package/server/dist/db/jobs.js +6 -0
  623. package/server/dist/db/migrations.js +239 -0
  624. package/server/dist/db.js +9 -2
  625. package/server/dist/desktop-db.js +99 -5
  626. package/server/dist/desktop-router.js +126 -13
  627. package/server/dist/docs-router.js +67 -1
  628. package/server/dist/feature-flags.js +22 -0
  629. package/server/dist/index.js +30 -15
  630. package/server/dist/jira/jira-adf.js +13 -1
  631. package/server/dist/jira/jira-clarifications.js +146 -0
  632. package/server/dist/jira/jira-client.js +8 -1
  633. package/server/dist/jira/jira-db.js +41 -0
  634. package/server/dist/jira/jira-sync-manager.js +328 -25
  635. package/server/dist/mcp/guide.js +17 -7
  636. package/server/dist/mcp/tools/agents.js +1 -1
  637. package/server/dist/mcp/tools/analytics.js +15 -3
  638. package/server/dist/mcp/tools/app-settings.js +14 -1
  639. package/server/dist/mcp/tools/chat.js +1 -1
  640. package/server/dist/mcp/tools/env.js +4 -2
  641. package/server/dist/mcp/tools/jobs.js +96 -7
  642. package/server/dist/mcp/tools/loops.js +1 -1
  643. package/server/dist/mcp/tools/meta.js +10 -13
  644. package/server/dist/mcp/tools/rails.js +15 -1
  645. package/server/dist/mcp/tools/setup.js +1 -1
  646. package/server/dist/mcp/tools/specs.js +8 -5
  647. package/server/dist/mcp/tools/support.js +6 -3
  648. package/server/dist/mcp/tools/types.js +38 -1
  649. package/server/dist/mobile/mobile-admin-router.js +0 -16
  650. package/server/dist/mobile/mobile-gateway.js +0 -18
  651. package/server/dist/mobile/mobile-inbox.js +240 -0
  652. package/server/dist/mobile/mobile-missions.js +6 -8
  653. package/server/dist/mobile/mobile-router.js +9 -9
  654. package/server/dist/mobile/mobile-webrtc-peer.js +4 -54
  655. package/server/dist/mobile/mobile-ws.js +27 -4
  656. package/server/dist/modules/accounting/runtime/ai-invocations.js +4 -0
  657. package/server/dist/modules/accounting/runtime/decision-times.js +102 -0
  658. package/server/dist/modules/accounting/runtime/loop-economics.js +284 -0
  659. package/server/dist/modules/accounting/runtime/spending.js +7 -2
  660. package/server/dist/modules/accounting/runtime/what-if.js +87 -0
  661. package/server/dist/modules/agent-runtime/runtime/agent-runtime-bridge.js +86 -5
  662. package/server/dist/modules/agent-runtime/runtime/agent-runtime-controls.js +28 -2
  663. package/server/dist/modules/agent-runtime/runtime/agent-runtime-metrics.js +15 -2
  664. package/server/dist/modules/agent-runtime/runtime/agent-runtime-settings-router.js +21 -2
  665. package/server/dist/modules/agent-runtime/runtime/core-capabilities.js +55 -0
  666. package/server/dist/modules/agent-sessions/adapters/host-process.js +1 -1
  667. package/server/dist/modules/agent-sessions/domain/availability.js +16 -0
  668. package/server/dist/modules/agent-sessions/domain/protocol.js +8 -1
  669. package/server/dist/modules/agent-sessions/index.js +3 -1
  670. package/server/dist/modules/agent-sessions/runtime/core-sessions-availability.js +16 -0
  671. package/server/dist/modules/agents/runtime/agent-refine-manager.js +3 -1
  672. package/server/dist/modules/agents/runtime/agent-store.js +60 -73
  673. package/server/dist/modules/audit/adapters/http.js +66 -0
  674. package/server/dist/modules/audit/adapters/runtime.js +60 -0
  675. package/server/dist/modules/audit/adapters/sqlite.js +73 -0
  676. package/server/dist/modules/audit/application.js +190 -0
  677. package/server/dist/modules/audit/domain.js +434 -0
  678. package/server/dist/modules/audit/index.js +27 -0
  679. package/server/dist/modules/audit/ports.js +2 -0
  680. package/server/dist/modules/browser/runtime/browser-capture-manager.js +18 -141
  681. package/server/dist/modules/browser/runtime/browser-capture-types.js +1 -10
  682. package/server/dist/modules/browser/runtime/browser-playwright.js +0 -19
  683. package/server/dist/modules/code/runtime/file-provenance.js +23 -0
  684. package/server/dist/modules/conversations/runtime/chat-manager.js +5 -2
  685. package/server/dist/modules/delivery/adapters/decisions/chains.js +1 -0
  686. package/server/dist/modules/delivery/adapters/decisions/create.js +19 -1
  687. package/server/dist/modules/delivery/adapters/decisions/discard.js +2 -0
  688. package/server/dist/modules/delivery/adapters/decisions/local-changes.js +427 -0
  689. package/server/dist/modules/delivery/adapters/decisions/merge-local.js +80 -6
  690. package/server/dist/modules/delivery/adapters/decisions/observations.js +5 -0
  691. package/server/dist/modules/delivery/adapters/decisions/ownership.js +2 -1
  692. package/server/dist/modules/delivery/adapters/decisions/transitions.js +9 -0
  693. package/server/dist/modules/delivery/adapters/review-wip-store.js +37 -0
  694. package/server/dist/modules/delivery/domain/review-wip.js +71 -0
  695. package/server/dist/modules/delivery/index.js +9 -1
  696. package/server/dist/modules/delivery/runtime/delivery-changes.js +355 -0
  697. package/server/dist/modules/delivery/runtime/delivery-evidence.js +249 -8
  698. package/server/dist/modules/delivery/runtime/flow-review-legacy.js +99 -0
  699. package/server/dist/modules/delivery/runtime/flow-review-outcome.js +107 -0
  700. package/server/dist/modules/delivery/runtime/flow-worktree-handoff.js +32 -0
  701. package/server/dist/modules/delivery/runtime/flow-worktree-return.js +87 -0
  702. package/server/dist/modules/delivery/runtime/isolated-worktree.js +380 -0
  703. package/server/dist/modules/delivery/runtime/local-restore-branch.js +325 -0
  704. package/server/dist/modules/delivery/runtime/local-restore-resolver.js +48 -0
  705. package/server/dist/modules/delivery/runtime/local-stash.js +423 -0
  706. package/server/dist/modules/delivery/runtime/multi-repo-execution.js +27 -1
  707. package/server/dist/modules/delivery/runtime/phase3-harvest.js +40 -0
  708. package/server/dist/modules/delivery/runtime/pr-body.js +50 -0
  709. package/server/dist/modules/delivery/runtime/rail-isolated-launch.js +169 -166
  710. package/server/dist/modules/delivery/runtime/rail-launch-parser.js +5 -2
  711. package/server/dist/modules/delivery/runtime/rail-pr-decision.js +7 -1
  712. package/server/dist/modules/delivery/runtime/rail-pr-store.js +193 -12
  713. package/server/dist/modules/delivery/runtime/rails-router.js +267 -5
  714. package/server/dist/modules/delivery/runtime/review-brief.js +208 -0
  715. package/server/dist/modules/delivery/runtime/review-packet.js +41 -2
  716. package/server/dist/modules/delivery/runtime/review-wip-gate.js +67 -0
  717. package/server/dist/modules/delivery/runtime/run-records.js +267 -0
  718. package/server/dist/modules/delivery/runtime/run-review-diagnosis.js +102 -0
  719. package/server/dist/modules/execution/adapters/budget-storage.js +76 -0
  720. package/server/dist/modules/execution/application/enforce-budget.js +17 -2
  721. package/server/dist/modules/execution/domain/agent-env.js +98 -0
  722. package/server/dist/modules/execution/domain/daily-budget.js +36 -0
  723. package/server/dist/modules/execution/domain/spend-caps.js +166 -0
  724. package/server/dist/modules/execution/index.js +34 -1
  725. package/server/dist/modules/execution/runtime/budget-overview.js +76 -0
  726. package/server/dist/modules/execution/runtime/daily-budget-gate.js +86 -0
  727. package/server/dist/modules/execution/runtime/interactive-job-session.js +8 -0
  728. package/server/dist/modules/execution/runtime/launch-forecast.js +33 -0
  729. package/server/dist/modules/execution/runtime/queue-manager.js +54 -15
  730. package/server/dist/modules/execution/runtime/run-duration-stats.js +31 -13
  731. package/server/dist/modules/flow/adapters/bindings.js +1089 -0
  732. package/server/dist/modules/flow/adapters/http.js +147 -0
  733. package/server/dist/modules/flow/adapters/sqlite.js +121 -0
  734. package/server/dist/modules/flow/application.js +805 -0
  735. package/server/dist/modules/flow/domain.js +790 -0
  736. package/server/dist/modules/flow/index.js +34 -0
  737. package/server/dist/modules/flow/ports.js +2 -0
  738. package/server/dist/modules/inbox/adapters/http.js +21 -0
  739. package/server/dist/modules/inbox/adapters/project-source.js +233 -0
  740. package/server/dist/modules/inbox/application.js +28 -0
  741. package/server/dist/modules/inbox/domain.js +43 -0
  742. package/server/dist/modules/inbox/index.js +10 -0
  743. package/server/dist/modules/inbox/ports.js +2 -0
  744. package/server/dist/modules/loops/runtime/loop-definition-run.js +9 -0
  745. package/server/dist/modules/loops/runtime/loop-definition.js +5 -2
  746. package/server/dist/modules/loops/runtime/loop-executors.js +90 -9
  747. package/server/dist/modules/loops/runtime/loop-factory.js +30 -2
  748. package/server/dist/modules/loops/runtime/loop-flow-spec-recipe.js +166 -0
  749. package/server/dist/modules/loops/runtime/loop-graph.js +1 -1
  750. package/server/dist/modules/loops/runtime/loop-role-engines.js +4 -1
  751. package/server/dist/modules/loops/runtime/loop-run-manager.js +267 -10
  752. package/server/dist/modules/loops/runtime/loop-runs-store.js +21 -5
  753. package/server/dist/modules/loops/runtime/loop-templates.js +55 -12
  754. package/server/dist/modules/missions/runtime/agent-chat-manager.js +283 -20
  755. package/server/dist/modules/missions/runtime/agent-chat-router.js +96 -21
  756. package/server/dist/modules/missions/runtime/agent-failure-briefing.js +11 -3
  757. package/server/dist/modules/missions/runtime/agent-fence-promotion.js +9 -1
  758. package/server/dist/modules/missions/runtime/agent-flow-prompt.js +64 -0
  759. package/server/dist/modules/missions/runtime/agent-input-store.js +9 -4
  760. package/server/dist/modules/missions/runtime/agent-operator-prompt.js +100 -14
  761. package/server/dist/modules/missions/runtime/agent-session-store.js +88 -27
  762. package/server/dist/modules/missions/runtime/core-session-runner.js +89 -9
  763. package/server/dist/modules/missions/runtime/flow-turn-context.js +17 -0
  764. package/server/dist/modules/missions/runtime/mission-core-sessions.js +295 -55
  765. package/server/dist/modules/missions/runtime/mission-run-notify.js +2 -0
  766. package/server/dist/modules/missions/runtime/mission-session-projector.js +56 -19
  767. package/server/dist/modules/missions/runtime/mission-tool-policy.js +47 -0
  768. package/server/dist/modules/onboarding/adapters/http.js +78 -0
  769. package/server/dist/modules/onboarding/adapters/providers.js +41 -0
  770. package/server/dist/modules/onboarding/adapters/runtime.js +130 -0
  771. package/server/dist/modules/onboarding/application.js +133 -0
  772. package/server/dist/modules/onboarding/catalog.js +217 -0
  773. package/server/dist/modules/onboarding/domain.js +102 -0
  774. package/server/dist/modules/onboarding/index.js +20 -0
  775. package/server/dist/modules/onboarding/ports.js +2 -0
  776. package/server/dist/modules/project-rules/adapters/http.js +91 -0
  777. package/server/dist/modules/project-rules/domain.js +122 -0
  778. package/server/dist/modules/project-rules/runtime/rules-inventory-runs.js +97 -0
  779. package/server/dist/modules/project-rules/runtime/rules-store.js +109 -0
  780. package/server/dist/modules/project-settings/adapters/http.js +13 -0
  781. package/server/dist/modules/project-settings/adapters/sqlite.js +78 -8
  782. package/server/dist/modules/project-settings/domain.js +47 -1
  783. package/server/dist/modules/project-settings/index.js +7 -1
  784. package/server/dist/modules/recovery/adapters/sqlite.js +28 -0
  785. package/server/dist/modules/recovery/domain.js +162 -0
  786. package/server/dist/modules/recovery/index.js +16 -0
  787. package/server/dist/modules/specs/adapters/timeline-http.js +101 -0
  788. package/server/dist/modules/specs/domain/handoff-labels.js +371 -0
  789. package/server/dist/modules/specs/domain/handoff.js +260 -0
  790. package/server/dist/modules/specs/domain/non-goals.js +101 -0
  791. package/server/dist/modules/specs/domain/timeline.js +164 -0
  792. package/server/dist/modules/specs/domain/triage.js +320 -0
  793. package/server/dist/modules/specs/runtime/contract-refine-runner.js +3 -2
  794. package/server/dist/modules/specs/runtime/generated-spec-parser.js +75 -0
  795. package/server/dist/modules/specs/runtime/proposal-manager.js +4 -3
  796. package/server/dist/modules/specs/runtime/smash-runner.js +2 -1
  797. package/server/dist/modules/specs/runtime/spec-addenda.js +31 -0
  798. package/server/dist/modules/specs/runtime/spec-draft-parser.js +6 -1
  799. package/server/dist/modules/specs/runtime/spec-generation.js +431 -0
  800. package/server/dist/modules/specs/runtime/spec-handoff.js +103 -0
  801. package/server/dist/modules/specs/runtime/spec-history.js +376 -0
  802. package/server/dist/modules/specs/runtime/spec-launcher-manager.js +4 -3
  803. package/server/dist/modules/specs/runtime/spec-search.js +117 -0
  804. package/server/dist/modules/specs/runtime/ticket-store.js +47 -2
  805. package/server/dist/modules/specs/runtime/ticket-trash-service.js +62 -0
  806. package/server/dist/modules/specs/runtime/ticket-trash.js +193 -0
  807. package/server/dist/modules/specs/runtime/triage-runner.js +171 -0
  808. package/server/dist/modules/specs/runtime/triage.js +365 -0
  809. package/server/dist/modules/terminals/domain/app-urls.js +96 -0
  810. package/server/dist/modules/terminals/runtime/app-urls.js +77 -0
  811. package/server/dist/modules/terminals/runtime/background-process-service.js +25 -28
  812. package/server/dist/project-env.js +60 -0
  813. package/server/dist/project-git.js +65 -0
  814. package/server/dist/project-registry.js +264 -27
  815. package/server/dist/project-router-background-processes.js +27 -3
  816. package/server/dist/project-router-git.js +30 -0
  817. package/server/dist/project-router-helpers.js +5 -30
  818. package/server/dist/project-router-jobs.js +49 -1
  819. package/server/dist/project-router-loop-runs.js +72 -2
  820. package/server/dist/project-router-rules.js +54 -0
  821. package/server/dist/project-router-search.js +52 -0
  822. package/server/dist/project-router-settings.js +6 -0
  823. package/server/dist/project-router-setup.js +1 -1
  824. package/server/dist/project-router-spending.js +138 -0
  825. package/server/dist/project-router-tickets.js +246 -427
  826. package/server/dist/project-router.js +7 -0
  827. package/server/dist/providers/claude-adapter.js +25 -3
  828. package/server/dist/providers/codex-adapter.js +9 -1
  829. package/server/dist/providers/gemini-adapter.js +6 -1
  830. package/server/dist/providers/kimi-adapter.js +2 -0
  831. package/server/dist/providers/local-adapter.js +2 -0
  832. package/server/dist/providers/runtime.js +8 -0
  833. package/server/dist/schemas/agent-runtime.schema.json +3 -1
  834. package/server/dist/schemas/workflow-definition.schema.json +1 -0
  835. package/server/dist/setup-manager.js +19 -1
  836. package/server/dist/transient-children.js +25 -8
  837. package/server/dist/update-channel.js +21 -0
  838. package/server/dist/util/search-snippet.js +74 -0
  839. package/server/dist/worktree-manager.js +19 -8
  840. package/client/dist/assets/ActivityFeedPage-Dtp7EyHc.js +0 -1
  841. package/client/dist/assets/AgentBrowserCapture-CLqlEFw8.js +0 -1
  842. package/client/dist/assets/AgentModeAnalyticsPane-B8_hM3Tw.js +0 -2
  843. package/client/dist/assets/AgentModeCodePane-CNF8ZNjE.js +0 -2
  844. package/client/dist/assets/AgentModeJobsPane-CJpJbO9m.js +0 -1
  845. package/client/dist/assets/AgentsPage-BC8XSR79.js +0 -120
  846. package/client/dist/assets/AnalyticsPage-Cdv4jLtW.js +0 -1
  847. package/client/dist/assets/BarChart-BDMqVFJy.js +0 -55
  848. package/client/dist/assets/CodePage-DI1kegAr.js +0 -3
  849. package/client/dist/assets/DesktopAnalyticsPage-Bdp8E8U6.js +0 -1
  850. package/client/dist/assets/DocsDialog-Bm4RS7FX.js +0 -11
  851. package/client/dist/assets/DocsPage-DihYcU8r.js +0 -11
  852. package/client/dist/assets/ExportDropdown-Bb1lHx3r.js +0 -1
  853. package/client/dist/assets/IntegrationsPage-EAipiDWm.js +0 -1
  854. package/client/dist/assets/InteractiveJobComposer-BO6ASN-2.js +0 -19
  855. package/client/dist/assets/JobDetailModal-CuPYq7tP.js +0 -1
  856. package/client/dist/assets/JobDetailPage-BusMjJi9.js +0 -1
  857. package/client/dist/assets/JobsPage-C0QbsF2d.js +0 -1
  858. package/client/dist/assets/LoopBuilderPage-B7TlU4iS.js +0 -1
  859. package/client/dist/assets/LoopPreviewModal-BRWtXOD2.js +0 -1
  860. package/client/dist/assets/LoopsPage-C4q1DmCE.js +0 -2
  861. package/client/dist/assets/MinimizedChatsContext-DHfigjHS.js +0 -1
  862. package/client/dist/assets/PluginsPage-Z1JHSMdR.js +0 -2
  863. package/client/dist/assets/ProjectSettingsDialog-BUNj0tvN.js +0 -1
  864. package/client/dist/assets/RepositoryDeliveries-B4ybHOyB.js +0 -5
  865. package/client/dist/assets/ReviewPacketPage-hwfPNjyy.js +0 -4
  866. package/client/dist/assets/TemplatePreviewModal-V7FpMWuw.js +0 -1
  867. package/client/dist/assets/TicketDetailModalContext-Dkwo2cDs.js +0 -16
  868. package/client/dist/assets/Trans-BbFxRFtR.js +0 -1
  869. package/client/dist/assets/activity-B-rp4h_v.js +0 -1
  870. package/client/dist/assets/activity-C6kJpm9q.js +0 -1
  871. package/client/dist/assets/activity-CGx4kb_j.js +0 -1
  872. package/client/dist/assets/activity-CnoX2bH7.js +0 -1
  873. package/client/dist/assets/activity-DAyekdlt.js +0 -1
  874. package/client/dist/assets/activity-DCxtpT7j.js +0 -1
  875. package/client/dist/assets/activity-DiyjsgQV.js +0 -1
  876. package/client/dist/assets/activity-JzwRaWPD.js +0 -1
  877. package/client/dist/assets/addspec-BOvgmcgk.js +0 -1
  878. package/client/dist/assets/addspec-Clmyfn_R.js +0 -1
  879. package/client/dist/assets/addspec-CsNaBpHp.js +0 -1
  880. package/client/dist/assets/addspec-D2tvWmmV.js +0 -1
  881. package/client/dist/assets/addspec-D3nFwvD0.js +0 -1
  882. package/client/dist/assets/addspec-DVLEhK3w.js +0 -1
  883. package/client/dist/assets/addspec-DXbK-tb0.js +0 -1
  884. package/client/dist/assets/addspec-OHG8DFEn.js +0 -1
  885. package/client/dist/assets/agent-5bSixVzz.js +0 -1
  886. package/client/dist/assets/agent-BR4EHfhq.js +0 -1
  887. package/client/dist/assets/agent-C0IKkJP8.js +0 -1
  888. package/client/dist/assets/agent-C7li9ayC.js +0 -1
  889. package/client/dist/assets/agent-D0dRmEen.js +0 -1
  890. package/client/dist/assets/agent-DZVGHm7H.js +0 -1
  891. package/client/dist/assets/agent-Dip4h2YE.js +0 -1
  892. package/client/dist/assets/agent-Pp-P-n1p.js +0 -1
  893. package/client/dist/assets/agentRuntime-BxF81z52.js +0 -1
  894. package/client/dist/assets/agentRuntime-BxYS5V7u.js +0 -1
  895. package/client/dist/assets/agentRuntime-Dc9HG3BA.js +0 -1
  896. package/client/dist/assets/agents-B6ZsnARo.js +0 -1
  897. package/client/dist/assets/agents-BORdhe0K.js +0 -1
  898. package/client/dist/assets/agents-C6aq9Oqs.js +0 -1
  899. package/client/dist/assets/agents-Cbsc4bcX.js +0 -1
  900. package/client/dist/assets/agents-D0uYR6hq.js +0 -1
  901. package/client/dist/assets/agents-Doe1sHY5.js +0 -1
  902. package/client/dist/assets/agents-DyNi_I9m.js +0 -1
  903. package/client/dist/assets/agents-StKxiTg0.js +0 -1
  904. package/client/dist/assets/agentstudio-7cYCXn-L.js +0 -1
  905. package/client/dist/assets/agentstudio-BHWQh8G3.js +0 -1
  906. package/client/dist/assets/agentstudio-BjnWHyRs.js +0 -1
  907. package/client/dist/assets/agentstudio-BkV8vcK4.js +0 -1
  908. package/client/dist/assets/agentstudio-BzugqB_N.js +0 -1
  909. package/client/dist/assets/agentstudio-CWbp7KvH.js +0 -1
  910. package/client/dist/assets/agentstudio-DG6plf5o.js +0 -1
  911. package/client/dist/assets/agentstudio-DkZVF-Cc.js +0 -1
  912. package/client/dist/assets/analytics-B1DIQd4m.js +0 -1
  913. package/client/dist/assets/analytics-BAIZ9vE_.js +0 -1
  914. package/client/dist/assets/analytics-BTqgmgBd.js +0 -1
  915. package/client/dist/assets/analytics-BWynXPEm.js +0 -1
  916. package/client/dist/assets/analytics-DGcUsQ44.js +0 -1
  917. package/client/dist/assets/analytics-GnSnpJ4W.js +0 -1
  918. package/client/dist/assets/analytics-TWgYaoO0.js +0 -1
  919. package/client/dist/assets/analytics-kJy6Tuko.js +0 -1
  920. package/client/dist/assets/atom-one-dark-qiGhVQxg.js +0 -1
  921. package/client/dist/assets/builder-B9gorTnT.js +0 -1
  922. package/client/dist/assets/builder-Bvw5s3Mi.js +0 -1
  923. package/client/dist/assets/builder-CL5l4dU3.js +0 -1
  924. package/client/dist/assets/builder-CVDTVrQX.js +0 -1
  925. package/client/dist/assets/builder-CpS9liE9.js +0 -1
  926. package/client/dist/assets/builder-DNctIL9Q.js +0 -1
  927. package/client/dist/assets/builder-De2NxX6o.js +0 -1
  928. package/client/dist/assets/builder-DeYT7Y-m.js +0 -1
  929. package/client/dist/assets/button-4FS1ZDTp.js +0 -1
  930. package/client/dist/assets/chat-D_I7nU5K.js +0 -1
  931. package/client/dist/assets/chevron-up-6EFqEHBj.js +0 -1
  932. package/client/dist/assets/chunk-OB3PAWPO-B1EMk45A.js +0 -3
  933. package/client/dist/assets/clsx-CjueKrWZ.js +0 -1
  934. package/client/dist/assets/code-B37GRg9C.js +0 -1
  935. package/client/dist/assets/code-BBOEZbf9.js +0 -1
  936. package/client/dist/assets/code-BRm-jcyx.js +0 -1
  937. package/client/dist/assets/code-CF7w62CR.js +0 -1
  938. package/client/dist/assets/code-CLuvJt2r.js +0 -1
  939. package/client/dist/assets/code-D0RCm59f.js +0 -1
  940. package/client/dist/assets/code-DaZ-ZwCT.js +0 -1
  941. package/client/dist/assets/code-iIHkGaCL.js +0 -1
  942. package/client/dist/assets/commands-0XjAftla.js +0 -1
  943. package/client/dist/assets/commands-BAWSYHjQ.js +0 -1
  944. package/client/dist/assets/commands-BBwowgiE.js +0 -1
  945. package/client/dist/assets/commands-BacjIZLN.js +0 -1
  946. package/client/dist/assets/commands-Bs62IAZ3.js +0 -1
  947. package/client/dist/assets/commands-CLPdh-Hh.js +0 -1
  948. package/client/dist/assets/commands-DlbFzgrp.js +0 -1
  949. package/client/dist/assets/commands-LjPSsi5F.js +0 -1
  950. package/client/dist/assets/common-Bdi0qN4S.js +0 -1
  951. package/client/dist/assets/common-Bhb9zN1P.js +0 -1
  952. package/client/dist/assets/common-BykKlZg1.js +0 -1
  953. package/client/dist/assets/common-CvnNNSJA.js +0 -1
  954. package/client/dist/assets/common-D5zk_mqq.js +0 -1
  955. package/client/dist/assets/common-DQNO_al5.js +0 -1
  956. package/client/dist/assets/common-Dax30Vmp.js +0 -1
  957. package/client/dist/assets/common-DkllpVSb.js +0 -1
  958. package/client/dist/assets/core-B3mKBIh5.js +0 -1
  959. package/client/dist/assets/dashboard-B1ndRHuC.js +0 -1
  960. package/client/dist/assets/dashboard-BX7KXiqA.js +0 -1
  961. package/client/dist/assets/dashboard-B_BSNxcN.js +0 -1
  962. package/client/dist/assets/dashboard-CCeFN7-V.js +0 -1
  963. package/client/dist/assets/dashboard-CRl0WtFJ.js +0 -1
  964. package/client/dist/assets/dashboard-XGdQ5mjw.js +0 -1
  965. package/client/dist/assets/dashboard-_oltA6Jd.js +0 -1
  966. package/client/dist/assets/dashboard-bAuf5KVk.js +0 -1
  967. package/client/dist/assets/dialog-DtdR05v1.js +0 -45
  968. package/client/dist/assets/dist-js-CJ_2XX1Y.js +0 -1
  969. package/client/dist/assets/event-Bt7f3wXe.js +0 -1
  970. package/client/dist/assets/explore-BG99VGpL.js +0 -1
  971. package/client/dist/assets/explore-C0TjprJW.js +0 -1
  972. package/client/dist/assets/explore-C2dgEo7q.js +0 -1
  973. package/client/dist/assets/explore-C8NDHbob.js +0 -1
  974. package/client/dist/assets/explore-CWWgzQGR.js +0 -1
  975. package/client/dist/assets/explore-CcQXpdtS.js +0 -1
  976. package/client/dist/assets/explore-DgBACn39.js +0 -1
  977. package/client/dist/assets/explore-DsXAgnmJ.js +0 -1
  978. package/client/dist/assets/file-text-C0blZHLh.js +0 -1
  979. package/client/dist/assets/formatDistanceToNow-NjPHBLfB.js +0 -1
  980. package/client/dist/assets/getTimezoneOffsetInMilliseconds-vJ7qUoqN.js +0 -1
  981. package/client/dist/assets/git-branch-yf6LE1Bw.js +0 -1
  982. package/client/dist/assets/index-BgbCbIua.css +0 -2
  983. package/client/dist/assets/index-Ce4yZtKf.js +0 -83
  984. package/client/dist/assets/integrations-BkpRUbvp.js +0 -1
  985. package/client/dist/assets/integrations-Bo8qbJf4.js +0 -1
  986. package/client/dist/assets/integrations-CmSrKzZb.js +0 -1
  987. package/client/dist/assets/integrations-DGtq26Rr.js +0 -1
  988. package/client/dist/assets/integrations-De38GFnQ.js +0 -1
  989. package/client/dist/assets/integrations-Dw6zdtb-.js +0 -1
  990. package/client/dist/assets/integrations-Dwl9KQp0.js +0 -1
  991. package/client/dist/assets/integrations-Refg_d2I.js +0 -1
  992. package/client/dist/assets/jira-B6OYw4CJ.js +0 -1
  993. package/client/dist/assets/jira-BTF6RaOe.js +0 -1
  994. package/client/dist/assets/jira-CEetIB2q.js +0 -1
  995. package/client/dist/assets/jira-CIzsZLw5.js +0 -1
  996. package/client/dist/assets/jira-Daw9tmpI.js +0 -1
  997. package/client/dist/assets/jira-FXr7u2lh.js +0 -1
  998. package/client/dist/assets/jira-LaNQn7yl.js +0 -1
  999. package/client/dist/assets/jira-api-Cabj-H0J.js +0 -1
  1000. package/client/dist/assets/job-time-BCL7wee9.js +0 -1
  1001. package/client/dist/assets/jobs-ARwD85B9.js +0 -1
  1002. package/client/dist/assets/jobs-BMF1w4WT.js +0 -1
  1003. package/client/dist/assets/jobs-CBfzGLwm.js +0 -1
  1004. package/client/dist/assets/jobs-CPjiluBY.js +0 -1
  1005. package/client/dist/assets/jobs-CQQd58pY.js +0 -1
  1006. package/client/dist/assets/jobs-De3EqaO0.js +0 -1
  1007. package/client/dist/assets/jobs-Du9-Ei9a.js +0 -1
  1008. package/client/dist/assets/jobs-qMHbnxwC.js +0 -1
  1009. package/client/dist/assets/layers-BCLTgHXO.js +0 -1
  1010. package/client/dist/assets/loader-circle-BqV9xYGf.js +0 -1
  1011. package/client/dist/assets/loop-layout-CyXj9223.js +0 -7
  1012. package/client/dist/assets/loops-B2PhQLKR.js +0 -1
  1013. package/client/dist/assets/loops-BqbF46st.js +0 -1
  1014. package/client/dist/assets/loops-CINnHbfI.js +0 -1
  1015. package/client/dist/assets/loops-D-3XhH04.js +0 -1
  1016. package/client/dist/assets/loops-DKkEEjZ_.js +0 -1
  1017. package/client/dist/assets/loops-DzWR5-v6.js +0 -1
  1018. package/client/dist/assets/loops-WyWDkhok.js +0 -1
  1019. package/client/dist/assets/loops-scD5fIBf.js +0 -1
  1020. package/client/dist/assets/mcp-6rMoZfEO.js +0 -1
  1021. package/client/dist/assets/mcp-BD8sL5mP.js +0 -1
  1022. package/client/dist/assets/mcp-BkcA3I5s.js +0 -1
  1023. package/client/dist/assets/mcp-CCpSelOh.js +0 -1
  1024. package/client/dist/assets/mcp-CUAN6ORK.js +0 -1
  1025. package/client/dist/assets/mcp-CqbRxRTE.js +0 -1
  1026. package/client/dist/assets/mcp-DP2YfVhO.js +0 -1
  1027. package/client/dist/assets/mcp-DUVQamDz.js +0 -1
  1028. package/client/dist/assets/narration-BEKMVxGm.js +0 -1
  1029. package/client/dist/assets/narration-CjLwGKap.js +0 -1
  1030. package/client/dist/assets/narration-DANWuGsW.js +0 -1
  1031. package/client/dist/assets/narration-DGeEDWiT.js +0 -1
  1032. package/client/dist/assets/narration-DJgpGwIP.js +0 -1
  1033. package/client/dist/assets/narration-DbHnz0qV.js +0 -1
  1034. package/client/dist/assets/narration-bZSsTZG8.js +0 -1
  1035. package/client/dist/assets/narration-i6aKJKEc.js +0 -1
  1036. package/client/dist/assets/nav--u7iPYlS.js +0 -1
  1037. package/client/dist/assets/nav-C5Jgfaby.js +0 -1
  1038. package/client/dist/assets/nav-CAna_Wpt.js +0 -1
  1039. package/client/dist/assets/nav-CCLqeyHo.js +0 -1
  1040. package/client/dist/assets/nav-Cf3c90Jk.js +0 -1
  1041. package/client/dist/assets/nav-DMYQaQjR.js +0 -1
  1042. package/client/dist/assets/nav-Df_PkZ9F.js +0 -1
  1043. package/client/dist/assets/nav-VyNGBJwj.js +0 -1
  1044. package/client/dist/assets/packet-8nn9RsU7.js +0 -1
  1045. package/client/dist/assets/packet-B0H15elv.js +0 -1
  1046. package/client/dist/assets/packet-BQvBgrwh.js +0 -1
  1047. package/client/dist/assets/packet-BR7mO0-a.js +0 -1
  1048. package/client/dist/assets/packet-BgcQ6q_K.js +0 -1
  1049. package/client/dist/assets/packet-D2s92Jnn.js +0 -1
  1050. package/client/dist/assets/packet-YbtcD1HS.js +0 -1
  1051. package/client/dist/assets/packet-c0Qj_9eX.js +0 -1
  1052. package/client/dist/assets/project-repositories-Cnnuj9Ia.js +0 -1
  1053. package/client/dist/assets/rotate-ccw-DalJAQQX.js +0 -1
  1054. package/client/dist/assets/settings-B1NV8Ow9.js +0 -1
  1055. package/client/dist/assets/settings-BQ8XFZeE.js +0 -1
  1056. package/client/dist/assets/settings-BRkxfBbO.js +0 -1
  1057. package/client/dist/assets/settings-C_CcU1dP.js +0 -1
  1058. package/client/dist/assets/settings-Cto9n0eL.js +0 -1
  1059. package/client/dist/assets/settings-Pyw8uYtL.js +0 -1
  1060. package/client/dist/assets/settings-b3HVCNNd.js +0 -1
  1061. package/client/dist/assets/settings-hdive4u6.js +0 -1
  1062. package/client/dist/assets/setup-Be485n2u.js +0 -1
  1063. package/client/dist/assets/setup-CKGUxKr-.js +0 -1
  1064. package/client/dist/assets/setup-Ck1Uwd7_.js +0 -1
  1065. package/client/dist/assets/setup-Cm774a6v.js +0 -1
  1066. package/client/dist/assets/setup-DIqMQpxt.js +0 -1
  1067. package/client/dist/assets/setup-DfCsoNFL.js +0 -1
  1068. package/client/dist/assets/setup-DkeE8mP0.js +0 -1
  1069. package/client/dist/assets/setup-xVntVaz1.js +0 -1
  1070. package/client/dist/assets/specs-Bqvtz2kz.js +0 -1
  1071. package/client/dist/assets/specs-CKes-kz6.js +0 -1
  1072. package/client/dist/assets/specs-CfXxPDNB.js +0 -1
  1073. package/client/dist/assets/specs-CyF9HuTI.js +0 -1
  1074. package/client/dist/assets/specs-DMj035Mt.js +0 -1
  1075. package/client/dist/assets/specs-DfIdoU5L.js +0 -1
  1076. package/client/dist/assets/specs-j5pGLQeU.js +0 -1
  1077. package/client/dist/assets/specs-xW5pkkB7.js +0 -1
  1078. package/client/dist/assets/spending-CQnrWiR3.js +0 -1
  1079. package/client/dist/assets/square-D0JTbRSR.js +0 -1
  1080. package/client/dist/assets/tauri-shell-DE6LfGPw.js +0 -2
  1081. package/client/dist/assets/terminal-BAzpHtpY.js +0 -1
  1082. package/client/dist/assets/terminal-C7dHeR3x.js +0 -1
  1083. package/client/dist/assets/terminal-CMla5Qsz.js +0 -1
  1084. package/client/dist/assets/terminal-CdNXH-n9.js +0 -1
  1085. package/client/dist/assets/terminal-Cw5bZsmV.js +0 -1
  1086. package/client/dist/assets/terminal-DFUP4eNv.js +0 -1
  1087. package/client/dist/assets/terminal-DGqljeK_.js +0 -1
  1088. package/client/dist/assets/terminal-cU70NodO.js +0 -1
  1089. package/client/dist/assets/tickets--tiSOCcn.js +0 -1
  1090. package/client/dist/assets/tickets-BUJ3DMWU.js +0 -1
  1091. package/client/dist/assets/tickets-C1WNPODq.js +0 -1
  1092. package/client/dist/assets/tickets-CDjhWmiE.js +0 -1
  1093. package/client/dist/assets/tickets-CLgPC3uO.js +0 -1
  1094. package/client/dist/assets/tickets-D41ZMQpf.js +0 -1
  1095. package/client/dist/assets/tickets-DEaQC06P.js +0 -1
  1096. package/client/dist/assets/tickets-kcMzbLCp.js +0 -1
  1097. package/client/dist/assets/trash-D8zYUmTg.js +0 -1
  1098. package/client/dist/assets/useDesktop-BjLT0_EE.js +0 -1
  1099. package/client/dist/assets/useRuntimeRuns-C97qEqMg.js +0 -1
  1100. package/client/dist/assets/useSharedWebSocket-Bj4LMp7b.js +0 -2
  1101. package/client/dist/assets/utils-BC4DHlz2.js +0 -1
  1102. package/docs/guide/en/getting-started/4-the-dashboard-tour.md +0 -48
  1103. package/docs/guide/es/getting-started/4-the-dashboard-tour.md +0 -48
  1104. package/server/dist/mobile/mobile-preview-channel.js +0 -179
  1105. package/server/dist/mobile/mobile-preview.js +0 -366
  1106. package/server/dist/modules/browser/domain/preview-origins.js +0 -117
  1107. package/server/dist/modules/browser/runtime/preview-targets.js +0 -80
  1108. /package/client/dist/assets/{atom-one-dark-B-oHczHB.css → DocView-B-oHczHB.css} +0 -0
  1109. /package/docs/guide/de/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
  1110. /package/docs/guide/en/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
  1111. /package/docs/guide/es/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
  1112. /package/docs/guide/fr/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
  1113. /package/docs/guide/it/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
  1114. /package/docs/guide/ja/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
  1115. /package/docs/guide/pt/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
  1116. /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=`Missionszentrale`,t=`Specrails per Chat bedienen`,n=`Missionszentrale`,r=`Was ist die Mission?`,i=`Senden`,a=`Stopp`,o=`Kopieren`,s={openPreview:`{{name}} anzeigen`,openDownload:`{{name}} herunterladen`,previewTitle:`Vorschau von {{name}}`,downloadTitle:`Datei herunterladen?`,downloadPrompt:`Diese Datei kann hier nicht in der Vorschau angezeigt werden. Möchtest du sie herunterladen?`,download:`Herunterladen`,cancelDownload:`Jetzt nicht`,loading:`Datei wird vorbereitet…`,loadFailed:`Anhang konnte nicht geladen werden`,loadError:`Anhang konnte nicht geladen werden: {{error}}`,remove:`{{name}} entfernen`},c=`Maximieren`,l=`Wiederherstellen`,u=`Minimieren`,d=`Schließen`,f=`Neue Mission`,p=`Wie lautet die Mission?`,m=`Frag alles zu diesem Projekt – der Agent kann lesen, Specs planen und Rails starten.`,h=`Denkt nach…`,g=`Verbinden…`,_=`App wird abgefragt…`,v={compact:`Kompakt`,comfortable:`Komfortabel`,max:`Maximieren`},y={label:`Modell`,loading:`Modelle werden geladen…`,unavailable:`Modelle nicht verfügbar`},b={hint:`Verlauf durchsuchen — tippen zum Bearbeiten, ↑↓ zum Navigieren`},x={queued:`In Warteschlange`,send:`Nachricht einreihen`,sendHint:`Für den nächsten Durchlauf vormerken. Mit „Steuern“ an einer wartenden Nachricht sendest du sie, ohne das Modell zu unterbrechen.`,placeholder:`Nachricht zur Warteschlange hinzufügen…`,delivered:`An Agent übergeben`,interrupted:`Übergabe unbestätigt`,cancelled:`Vor Übergabe abgebrochen`,steer:`Steuern`,steerHint:`Senden, ohne das Modell zu unterbrechen`,steering:`Wird an Agent gesendet…`,remove:`Nachricht aus Warteschlange löschen`,more:`Nachrichtenoptionen`,edit:`Bearbeiten`,actionConflict:`Diese Nachricht wird bereits übergeben oder ist nicht mehr in der Warteschlange.`,actionFailed:`Die wartende Nachricht konnte nicht aktualisiert werden. Versuche es erneut.`,removed:`Eingereihte Nachricht gelöscht`},S={sent:`An Agent gesendet`,received:`An Agent übergeben`,read:`Vom Agenten gelesen`,interrupted:`Übergabe unbestätigt`,cancelled:`Vor Übergabe abgebrochen`},C={editing:`Ausstehende Nachricht {{n}} von {{m}} bearbeiten`,hint:`↑↓ zum Navigieren · Enter speichert · Esc bricht ab`,save:`Ausstehende Nachricht speichern`,cancel:`Bearbeitung abbrechen`,dispatched:`Diese Nachricht wurde bereits übergeben; dein Text bleibt als Entwurf erhalten`,saveFailed:`Die ausstehende Nachricht konnte nicht gespeichert werden`},w={branch:`Branch`,detached:`(losgelöst)`,dirty:`Nicht committete Änderungen`,switched:`Zu {{branch}} gewechselt`,switchFailed:`Branch-Wechsel fehlgeschlagen`,lockedWhileWorking:`Branch gesperrt, während der Agent arbeitet`,searchPlaceholder:`Branches durchsuchen…`,noMatches:`Keine passenden Branches`,worktrees:`Worktrees`,worktreePathCopied:`Worktree-Pfad kopiert`,copyWorktreePath:`Worktree-Pfad kopieren`,repository:`Repository`,repositoryUnavailable:`Repository nicht verfügbar`,loadFailed:`Git-Status nicht verfügbar`,notGit:`Kontextordner · ohne Git`,retry:`Erneut versuchen`,copyBranch:`Branch-Namen kopieren`,branchCopied:`Branch-Name kopiert`},T={label:`Anbieter`,claude:`Claude`,codex:`Codex`,gemini:`Gemini`,kimi:`Kimi`},E={cycleHint:`⇧⇥ zum Wechseln`,observe:{name:`Beobachten`,desc:`Nur lesen — nichts ändert sich`},edit:{name:`Bearbeiten`,desc:`Erstellen und bearbeiten (umkehrbar)`},operate:{name:`Ausführen`,desc:`KI starten — kostet Geld`},autonomous:{name:`Autonom`,desc:`Löschen und beenden — unumkehrbar`},lockedTitle:`Höhere Stufe erforderlich`,lockedBody:`Diese Aktion erfordert die Stufe „{{level}}“. Du bist auf „{{current}}“.`,raiseHint:`⇧⇥ um die Stufe zu erhöhen, oder frag anders.`,confirmAutonomous:`Zu Autonom wechseln`,autonomousWarning:`Autonom kann löschen und Prozesse beenden.`,skipAutonomousHint:`Drücke erneut ⇧⇥, um zu Beobachten zurückzukehren.`},D={title:`Aktion bestätigen`,costAction:`{{action}} · ~{{cost}} · {{tier}}`,approve:`Genehmigen`,cancel:`Abbrechen`,dontAskAgain:`In dieser Sitzung nicht mehr fragen`,approved:`Genehmigt`,cancelled:`Abgebrochen`},O={home:`Start`,searchPlaceholder:`Mit Specrails sprechen…`,searchProjectsPlaceholder:`Projekte suchen…`,recents:`Zuletzt verwendet`,allProjects:`Alle Projekte`,searchAll:`In allen Projekten suchen`,addProject:`Projekt hinzufügen…`,homeHint:`Kein Projekt ausgewählt — über alle Projekte hinweg.`,askCreateOrSearch:`Es ist kein Projekt ausgewählt. Möchtest du ein neues Projekt erstellen oder über alle Projekte hinweg suchen?`},k={remove:`{{label}} entfernen`,addContextAction:`Kontext oder Aktion hinzufügen`,filtering:`Filtere "{{query}}"`,keyboard:`↑↓ Enter Esc`,noMatches:`Keine Treffer`,noMatchesFor:`Keine Treffer für "{{query}}"`,mode:{reference:{title:`Referenz`,hint:`@ Projekte, Specs, Missionen`},trace:{title:`Trace`,hint:`# Jobs, Läufe, IDs`},action:{title:`Aktion`,hint:`/ Befehle für diesen Kontext`}},plus:{reference:`Referenz`,referenceHint:`Projekte, Specs, Missionen`,trace:`Trace`,traceHint:`Jobs, Läufe, IDs`,action:`Aktion`,actionHint:`Erstellen, starten, prüfen`,fileAttachment:`Dateianhang`,fileAttachmentHint:`Docs, Bilder, Logs hinzufügen`,browserCapture:`Browser-Aufnahme`,browserCaptureHint:`Einen Seitenbereich für diese Mission erfassen`},railGroup:`Rails`,railGroupInUse:`Rails in Verwendung`},A={label:`Mission wechseln`,untitled:`Neue Mission`,new:`Neue Mission`,searchPlaceholder:`Missionen durchsuchen…`,noMatches:`Keine Mission gefunden`,working:`Agent arbeitet`,queuedBadge:`{{n}} in Warteschlange`,delete:`Mission "{{title}}" löschen`,deleteConfirm:`Löschen?`,deleteLiveConfirm:`Der Agent arbeitet. Trotzdem löschen?`,confirmDelete:`Löschen bestätigen`,cancelDelete:`Mission behalten`,deleteFailed:`Mission konnte nicht gelöscht werden`},j={title:`Kein KI-Anbieter installiert`,body:`Der Agent braucht einen KI-Anbieter (Claude, Codex, Gemini oder eine lokale Engine). Installiere oder verbinde einen und öffne den Agenten erneut.`,placeholder:`Verbinde einen KI-Anbieter, um den Agenten zu nutzen…`},M={title:`Specrails MCP ist aus`,body:`Der Agent braucht den eingebetteten MCP-Server, um die App zu bedienen.`,enable:`Specrails MCP aktivieren`,enabling:`Wird aktiviert…`,enabled:`MCP aktiviert`},N={live:`live`,queued:`in Warteschlange`,running:`läuft`,done:`fertig`,failed:`fehlgeschlagen`},P={generic:`Etwas ist schiefgelaufen. Versuch es erneut.`,busy:`Der Agent ist beschäftigt. Versuch es gleich noch einmal.`},F={kindAgent:`Agenten-Mission`},I=`Neue Mission`,L=`Zur Missionszentrale wechseln`,R=`Zum Board wechseln`,z=`Suchen`,B=`Nicht zugeordnete Missionen`,V=`Lieblingsmissionen`,H=`Ohne Titel`,U={title:`Im Workspace`,terminal:`Terminal`,files:`Dateien`,browser:`Browser`,requiresProject:`Wähle ein Projekt, um dieses Tool zu nutzen`,resizeCode:`Code-Bereich anpassen`,closeFiles:`Code schließen`,browserConfirm:`Zum Agenten hinzufügen`,browserSelectStart:`Auswählen, um zur Mission hinzuzufügen`,browserCaptured:`Aufnahme hinzugefügt`,uploadFailed:`Upload fehlgeschlagen`,requiresConversation:`Starte eine Mission, um dieses Werkzeug zu nutzen`,jobs:`Jobs`,closeJobs:`Jobs schließen`,resizeJobs:`Jobs-Bereich anpassen`,noJobs:`Noch keine Jobs — bitte den Agenten, einen zu starten`,analytics:`Analytics`,closeAnalytics:`Analytics schließen`,resizeAnalytics:`Analytics-Bereich anpassen`},W=`Datei anhängen`,G=`„{{title}}“ löschen`,K=`Löschen von „{{title}}“ bestätigen`,q=`„{{title}}“ zu Favoriten hinzufügen`,J=`„{{title}}“ aus Favoriten entfernen`,Y=`Löschen?`,X=`Dieser Anbieter kann noch keine Bilder lesen. Hänge stattdessen Textdateien an`,Z={label:`Aufwand`,minimal:`Minimal`,low:`Niedrig`,medium:`Mittel`,high:`Hoch`,xhigh:`Sehr hoch`,max:`Maximal`,ultra:`Ultra`},Q=JSON.parse(`{"operation":{"inProgress":"Aktion läuft…","create-pr":"PR wird erstellt…","publish":"Wird veröffentlicht…","discard":"Wird verworfen…","dismiss":"Fortsetzung wird geschlossen…","poll-merge":"Merge wird geprüft…","reopen":"Wird erneut geöffnet…","merge-local":"Wird lokal integriert…","recover-and-retry":"Gesichertes Ergebnis wird committet und erneut gepusht…","acknowledge-no-changes":"Wird als erledigt markiert…"},"markDone":"Als erledigt markieren","refine":"Verfeinern","completedNote":"Bestätigt. Specs nach Erledigt verschoben","partialSummary":"{{succeeded}} von {{total}} abgeschlossen; {{failed}} fehlgeschlagen","unit":{"failed":"Implementierung fehlgeschlagen","blocked":"Bereitstellung blockiert","noChanges":"keine Änderungen","succeeded":"bereit"},"rail":"Rail {{index}}","specCount_one":"{{count}} Spec","specCount_other":"{{count}} Specs","base":"Basis-Branch","openPr":"PR öffnen","existingPr":"Bestehender PR","title":{"no_changes":"Keine Änderungen erforderlich","partial":"Teilweise implementiert","delivery_blocked":"Implementierung abgeschlossen: Die Auslieferung braucht Aufmerksamkeit","update_failed":"Implementierung abgeschlossen: Aktualisierung fehlgeschlagen","pr_closed":"PR ohne Merge geschlossen","superseded":"Durch einen neueren Lauf ersetzt","existing_pr_updated":"Bestehender PR aktualisiert","building":"Implementierung in einem isolierten Worktree…","buildingInPlace":"Implementierung im Projektordner…","buildingExistingPr":"Änderungen werden auf einen bestehenden PR angewendet…","paused":"Benötigt eine menschliche Entscheidung","on_review":"Implementierung bereit zur Prüfung","pr_draft":"Entwurfs-PR erstellt","pr_draft_degraded":"PR-Auslieferung unvollständig","pr_ready":"PR bereit zum Merge","implementation_failed":"Implementierung fehlgeschlagen","pr_failed":"PR-Erstellung fehlgeschlagen","merged":"PR gemergt","discarded":"Verworfen","review_changes_requested":"Der Reviewer hat Änderungen angefordert","returned_to_flow":"Zurück im Flow","flowSpecChanges":"Noch nicht fertig: Der Reviewer hat Änderungen angefordert","flowSpecDelivered":"Dein Flow ist jetzt ein geprüfter PR","flowSpecFailed":"Die Übergabe wurde angehalten","flowSpecBuilding":"Dein Flow wird zu einem geprüften PR"},"buildingHint":"Nach Abschluss wirst du gefragt, ob der PR erstellt werden soll.","buildingExistingPrHint":"Specrails arbeitet auf dem Branch des bestehenden PRs und pusht die Review-Änderungen zurück in denselben PR.","paused":"Implementierung pausiert","pausedForRun":"Pausiert bei {{ref}}","resume":"Fortsetzen","stopExecution":"Ausführung stoppen","stopExecutionSent":"Stoppsignal gesendet","stopExecutionFailed":"Ausführung konnte nicht gestoppt werden","createPr":"PR erstellen","publish":"Veröffentlichen","checkout":"Branch auschecken","openReview":"Prüfen","openReviewTooltip":"Die Prüfung in klarer Sprache öffnen","checkoutTooltip":"Den Hauptordner des Projekts auf {{branch}} auschecken","checkoutSuccess":"{{branch}} ausgecheckt","checkoutFailed":"Die Implementierungsbranch konnte nicht ausgecheckt werden","checkoutDirtyTitle":"Checkout zum Schutz deiner Änderungen blockiert","checkoutDirtyBody":"Der Hauptordner des Projekts enthält nicht committete Änderungen. Committe oder stashe sie und versuche es erneut. Es wurde nichts verändert.","checkoutSafetyUnknownTitle":"Checkout pausiert, da die Sicherheit nicht geprüft werden konnte","checkoutSafetyUnknownBody":"Specrails konnte den Git-Status des Projekt-Hauptordners nicht lesen. Es wurde nichts freigegeben oder verändert. Versuche es erneut, sobald Git verfügbar ist.","checkoutNotDeliverableTitle":"Diese Branch enthält nicht die gesicherte Implementierung","checkoutNotDeliverableBody":"Der exakte Liefer-Commit wurde noch nicht verifiziert. Prüfe oder stelle stattdessen das lokale Ergebnis wieder her.","inspectLocalResult":"Lokales Ergebnis prüfen","inspectLocalResultTooltip":"Den gesicherten isolierten Worktree anzeigen und seinen Pfad kopieren","localResultPathCopied":"Pfad des lokalen Ergebnisses kopiert","localResultPath":"Gesichertes lokales Ergebnis","localResultUnavailableHere":"Auf diesem Computer ist kein wiederherstellbarer Worktree verfügbar. Prüfe das Run-Protokoll auf dem Computer, auf dem der Lauf ausgeführt wurde.","recoverAndRetry":"Committen und Push wiederholen","recoverAndRetryVerified":"Der wiederhergestellte Commit {{sha}} wurde im PR verifiziert","recoveryStillBlocked":"Die lokale Wiederherstellung erfordert noch Aufmerksamkeit","recheckRecovery":"Erneut prüfen","recoveryUnavailable":"Die Wiederherstellung konnte auf diesem Computer nicht verifiziert werden","recoveryUnavailableBody":"Specrails konnte in diesem Klon nicht sicher genau ein zur Lieferung gehörendes Ergebnis nachweisen. Nichts wurde geändert oder entfernt. Prüfe das Stufendetail und die Run-Protokolle. Wenn der Run auf einem anderen Computer lief, öffne Specrails dort und prüfe erneut.","recoveryDetailSummary":"Technisches Wiederherstellungsdetail","retry":"Erneut versuchen","retryPr":"PR erneut versuchen","checkMerge":"Merge prüfen","verifyPr":"PR verifizieren","discard":"Verwerfen","confirmDiscard":"Verwerfen bestätigen?","mergedNote":"Gemergt. Specs nach Erledigt verschoben","discardedNote":"Verworfen. Specs zurück ins Backlog","implementationFailedNote":"Der Implementierungslauf ist fehlgeschlagen, bevor etwas Auslieferbares entstanden ist. Öffne das Run-Protokoll, um den Fehler zu prüfen, und verwirf diese Karte vor einem erneuten Start.","dismiss":"Fortsetzung schließen","discardLocalResult":"Lokales Ergebnis verwerfen","retryPush":"Push wiederholen","retryPushVerified":"Push verifiziert · Commit {{sha}} ist in der PR","commitAlreadyVerified":"Commit {{sha}} ist bereits in der PR verifiziert","deliveryCommit":"Commit {{sha}}","reopen":"Erneut öffnen","createPartialPr":"PR mit {{count}} erstellen","supersededNote":"Ein neuerer Implementierungslauf hat diese Karte ersetzt.","noChangesExisting":"Es waren keine neuen Änderungen nötig; der bestehende PR bleibt unverändert.","noChangesNote":"Es waren keine Codeänderungen nötig. Markiere die Specs als erledigt oder lege sie zur Verfeinerung zurück in den Backlog.","deliveryNeedsAttention":"Implementierung abgeschlossen; Bereitstellung erfordert Aufmerksamkeit","deliveryBlockedNote":"Die Implementierung war erfolgreich, aber die Bereitstellung ist blockiert. Prüfe Stufendetail und Protokolle, bevor du das lokale Ergebnis verwirfst.","partialDeliveryBlockedNote":"Ein Teil der Implementierung war erfolgreich, aber noch ist nichts sicher auslieferbar. Prüfe die Nachweise pro Einheit und die Protokolle, bevor du die nächste Aktion auswählst.","retryPushNote":"Die Implementierung war erfolgreich und die Änderungen sind lokal sicher. Wiederhole nur den Push.","cleanupIncomplete_one":"Bereinigung unvollständig ({{count}} Warnung)","cleanupIncomplete_other":"Bereinigung unvollständig ({{count}} Warnungen)","safetyArchiveTitle":"Sicherheitsarchiv ({{count}})","safetyArchiveHint":"Temporäre Workspace-Dateien wurden vorsichtshalber außerhalb des PR aufbewahrt. Du kannst sie prüfen oder manuell entfernen.","confirm":{"recoverAndRetryTitle":"Das gesicherte Ergebnis committen und pushen?","recoverAndRetryBody":"Specrails verwendet ausschließlich den isolierten Worktree oder den aufgezeichneten Fast-Forward-Branch für {{branch}}. Falls nötig, werden die lieferbaren Dateien committet. Anschließend wird nur dieser exakte Commit gepusht und auch nur dann, wenn der PR noch mit den erwarteten Quell- und Ziel-Branches geöffnet ist. Der Hauptordner deines Projekts und seine nicht committeten Änderungen bleiben unberührt.","recheckRecoveryTitle":"Diesen Computer erneut prüfen?","recheckRecoveryBody":"Wir prüfen, ob sich aus dieser Lieferung noch etwas wiederherstellen lässt. Es wird nichts gelöscht.","noChangesDoneTitle":"Diese Specs als erledigt markieren?","noChangesDoneBody":"Die Implementierung hat bestätigt, dass keine Codeänderungen nötig sind. Die Specs werden nach Erledigt verschoben und der unveränderte Worktree wird bereinigt.","refineTitle":"Diese Specs verfeinern?","refineBody":"Das Ergebnis ohne Änderungen wird geschlossen und die Specs kehren zur Verfeinerung in den Backlog zurück. Die Ausführungsprotokolle bleiben verfügbar.","mergeLocalTitle":"Lokal integrieren?","mergeLocalBody":"Die gelieferten Branches werden lokal in {{base}} zusammengeführt. Vorhandene Änderungen bleiben erhalten; überlappende Änderungen müssen gegebenenfalls vor der Integration aufgelöst werden.","freshDiscardTitle":"Diese Lieferung verwerfen?","freshDiscardBody":"Der PR wird geschlossen, ohne seinen Remote-Branch zu löschen. Nur lokale Branches und Worktrees, die SpecRails gehören und noch auf dem aufgezeichneten Commit stehen, werden entfernt; alles Veränderte bleibt mit einer Warnung erhalten. Die Specs kehren in den Backlog zurück. Entfernte lokale Ressourcen können nicht wiederhergestellt werden.","implementationFailedDiscardTitle":"Diese fehlgeschlagene Lieferung verwerfen?","implementationFailedDiscardBody":"Die Karte wird geschlossen und ihre Specs kehren in den Backlog zurück. Lokale Arbeit und Branches bleiben zur Prüfung erhalten. Nur nachweislich sicher bereinigbare Ressourcen dürfen entfernt werden.","dismissTitle":"Diese Fortsetzung schließen?","dismissBody":"Diese Fortsetzungskarte wird geschlossen. Ihr zugehöriger Worktree wird nur entfernt, wenn dies weiterhin sicher ist; andernfalls bleibt er mit einer Warnung erhalten. Der bestehende PR, sein Branch und der Review-Status bleiben unverändert.","discardLocalTitle":"Lokales Ergebnis verwerfen?","discardLocalBody":"Die wiederherstellbare lokale Iteration wird nur entfernt, wenn dies weiterhin sicher ist; wurde sie verändert, bleibt sie mit einer Warnung erhalten. Ein vorhandener PR und sein Branch bleiben unverändert. Ein entferntes Ergebnis kann nicht wiederhergestellt werden.","recheckRecoveryTechnical":"Specrails durchsucht in diesem Klon erneut den zur Lieferung gehörenden Worktree, Branch, Refs, Reflogs und verwaiste Git-Objekte für {{branch}}. Wird genau ein Ergebnis bewiesen, kann Specrails isolierte Änderungen committen und den exakten Push wiederholen. Der Hauptprojektordner bleibt unberührt."},"degraded":{"pushed":"Der Branch wurde gepusht, aber der PR konnte nicht erstellt werden. Versuche es erneut, um abzuschließen.","localOnly":"Die Änderungen wurden lokal zusammengestellt, aber nicht gepusht. Versuche es erneut, um den PR zu veröffentlichen."},"alreadyResolved":"Bereits anderweitig erledigt","actionFailed":"Aktion fehlgeschlagen","notMergedYet":"Noch nicht gemergt","commitMissingRetry":"Der Liefer-Commit ist nicht mehr in der PR enthalten. Der Push kann erneut versucht werden.","prVerifiedWaiting":"Commit {{sha}} verifiziert · wartet auf Merge","viewLog":"Ausführungsprotokoll für {{ref}} anzeigen","runElapsedAria":"{{elapsed}} vergangen","runCostAria":"{{cost}} ausgegeben","focusRegion":"Implementierungskarte · {{rail}} {{tickets}}","pinned":{"state":{"completed":"Erledigt","no_changes":"Keine Änderungen","pr_closed":"Geschlossen","superseded":"Ersetzt","building":"Läuft","on_review":"Review","pr_draft":"Entwurfs-PR","pr_ready":"Veröffentlicht","implementation_failed":"Fehlgeschlagen","pr_failed":"Fehlgeschlagen","merged":"Gemerged","discarded":"Verworfen"}},"mergeLocal":"Lokal integrieren","mergeLocalTooltip":"Führt die gelieferten Branches lokal in {{base}} zusammen (ohne GitHub)","mergeLocalBlockedDirty":"Integration nicht möglich: Lokale Änderungen auf {{base}} überschneiden sich mit der Lieferung. Committe oder stashe diese Änderungen und versuche es erneut.","mergeLocalBlockedBranch":"Integration nicht möglich: dein Checkout steht auf {{current}}, nicht auf {{base}}. Wechsle zu {{base}} und versuche es erneut.","mergedLocally":"Lokal in {{base}} integriert","discardStackedNote":"Spätere Rails dieses Meilensteins bauen auf dieser Lieferung auf. Sie zu verwerfen pausiert die Meilenstein-Kette; die späteren Rails behalten ihre Arbeit.","resumeFromStep":"Ab {{step}} fortsetzen","resumeFromStepHint":"Der unterbrochene Schritt {{step}} läuft erneut von vorn; die bereits gespeicherte Arbeit bleibt erhalten.","retryDelivery":"Auslieferung wiederholen","retryDeliveryHint":"Wiederholt nur den letzten Schritt (Commit, Push und PR) auf dem Branch dieses Laufs. Keine KI-Arbeit wird wiederholt.","retryDeliverySent":"Auslieferung wird wiederholt…","retryDeliveryFailed":"Die Auslieferung konnte nicht wiederholt werden","mergedLocallyRestored":"Deine lokalen Änderungen wurden gesichert, {{tickets}} integriert und anschließend wiederhergestellt.","mergedLocallyStashConflict":"{{tickets}} integriert. Deine lokalen Änderungen sind sicher in einem Stash; Specrails stellt sie auf einem separaten Branch wieder her.","mergedLocallyStashKept":"{{tickets}} integriert. Deine lokalen Änderungen sind sicher in einem Stash; stelle sie wieder her, wenn du so weit bist.","localStash":{"title":"Deine lokalen Änderungen sind als Stash gesichert","conflictBody":"Beim erneuten Anwenden auf das integrierte Ergebnis gab es Konflikte, daher blieb {{branch}} genau wie integriert. Stelle sie wieder her, um es auf einem separaten Branch erneut zu versuchen.","savedBody":"Sie wurden noch nicht wiederhergestellt. Stelle sie wieder her, während {{branch}} ausgecheckt ist.","files":"Dateien mit Konflikten","restore":"Meine Änderungen wiederherstellen","restoring":"Wird wiederhergestellt…","copy":"Stash-Namen kopieren","copied":"Stash-Name kopiert","restoredToast":"Deine lokalen Änderungen sind wieder auf {{branch}}.","stillConflicting":"Deine lokalen Änderungen stehen weiterhin im Konflikt mit {{branch}}; sie bleiben sicher im Stash.","released":"Dieser Stash existiert nicht mehr, es gibt nichts mehr wiederherzustellen.","blockedBranch":"Wechsle zuerst zu {{base}} (du bist auf {{current}}) und stelle dann wieder her.","blockedDirty":"Einige dieser Dateien wurden seit dem Sichern erneut geändert. Committe oder verschiebe diese Änderungen und stelle dann wieder her.","failed":"Deine lokalen Änderungen konnten nicht wiederhergestellt werden","restoringBody":"Beim erneuten Anwenden auf das integrierte Ergebnis gab es Konflikte, daher blieb {{branch}} genau wie integriert. Specrails stellt sie auf {{restoreBranch}} in einem separaten Worktree wieder her und löst dort die Konflikte.","readyBodyClean":"Deine Änderungen sind auf {{restoreBranch}} wiederhergestellt und committet; dort ließen sie sich konfliktfrei anwenden. Prüfe sie und hole sie dann nach {{branch}} zurück.","readyBodyResolved":"Deine Änderungen sind auf {{restoreBranch}} wiederhergestellt und committet, die Konflikte wurden automatisch gelöst. Prüfe sie und hole sie dann nach {{branch}} zurück.","failedBody":"Specrails konnte die Wiederherstellung auf {{restoreBranch}} nicht abschließen. Sie sind weiterhin sicher im Stash; verwirf diesen Branch oder stelle sie erneut wieder her.","restoredFiles":"Wiederhergestellt auf {{restoreBranch}}","binary":"binär","managedNote":"Von Specrails verwaltete generierte Dateien behielten die integrierte Version: {{files}}","bringBack":"Nach {{branch}} zurückholen","bringingBack":"Wird zurückgeholt…","discardBranch":"Wiederhergestellten Branch verwerfen","discarding":"Wird verworfen…","broughtBackToast":"Deine lokalen Änderungen sind zurück auf {{branch}}.","discardedToast":"Wiederhergestellter Branch verworfen. Deine Änderungen sind weiterhin sicher im Stash.","blockedBringBack":"Die Änderungen konnten nicht sicher nach {{branch}} zurückgeholt werden.","notReady":"Der wiederhergestellte Branch ist noch nicht bereit."},"failed":{"createPr":"Der PR konnte nicht erstellt werden","mergeLocal":"Lokale Integration fehlgeschlagen","discard":"Das Ergebnis konnte nicht verworfen werden","publish":"Der PR konnte nicht veröffentlicht werden","generic":"Die Lieferung wurde angehalten. Siehe technische Details."},"moreActions":"Weitere Aktionen"}`),$={heading:`Spec-Entwurf`,drafting:`Entwurf wird aktualisiert…`,acceptanceCriteria:`Akzeptanzkriterien`,untitled:`Spec ohne Titel`,expand:`Vollständige Beschreibung anzeigen`,collapse:`Beschreibung einklappen`},ee={heading:`Rahmen`,framing:`Anfrage wird eingeordnet…`,restated:`Was ich verstanden habe`,alternative:`Es könnte auch bedeuten`,pick:`Damit antworten`,touches:`Würde berühren`,discriminator:`Welches von beiden?`,assumptions:`Was ich annehme`,unknowns:`Noch offen`},te={openTicket:`Spec #{{id}} öffnen`,openPullRequest:`PR #{{id}} öffnen`,openJob:`Job {{id}} öffnen`,openLoop:`Loop {{id}} öffnen`,ticketNotFound:`Spec #{{id}} nicht gefunden. Sie wurde möglicherweise gelöscht`,pullRequestUrlMissing:`PR #{{id}} wurde ohne URL erwähnt`,pullRequestNotFound:`PR #{{id}} wurde in diesem Projekt nicht gefunden`,jobNotFound:`Job nicht gefunden. Er wurde möglicherweise gelöscht`,loopNotFound:`Loop nicht gefunden. Er wurde möglicherweise gelöscht`,lookupFailed:`Referenz konnte nicht geprüft werden. Bitte erneut versuchen`},ne={untitled:`Unbenannte Mission`,menu:`Missionsmenü`,rename:`Umbenennen`,renamePlaceholder:`Name der Mission`,renameHint:`Zum Umbenennen doppelklicken`,renameFailed:`Umbenennen fehlgeschlagen`,addFavorite:`Zu Favoriten hinzufügen`,removeFavorite:`Aus Favoriten entfernen`,copyName:`Missionsname kopieren`,copyId:`Missions-ID kopieren`,copyProject:`Projektname kopieren`,copyProjectPath:`Projektpfad kopieren`,copyFailed:`Kopieren fehlgeschlagen`,copyTranscript:`Transkript kopieren`,copyTranscriptSuccess:`Transkript kopiert`,copyTranscriptFailed:`Transkript konnte nicht kopiert werden`,exportTranscript:`Transkript exportieren (.txt)`,exportTranscriptSuccess:`Transkriptexport gestartet`,exportTranscriptFailed:`Transkript konnte nicht exportiert werden`,delete:`Mission löschen`,deleteConfirm:`Diese Mission löschen? Kann nicht rückgängig gemacht werden.`,deleteFailed:`Mission konnte nicht gelöscht werden`},re=`Was sollen wir als Nächstes bauen?`,ie={title:`Ausführungsprotokoll`,live:`Live`,empty:`Noch keine Tool-Aktivität in diesem Zug.`,output:`Ausgabe`,error:`Fehler`,copyAll:`Gesamtes Protokoll kopieren`,copyEntry:`Eintrag kopieren`,copySuccess:`Protokoll in die Zwischenablage kopiert`,copyFailed:`Protokoll konnte nicht kopiert werden`,openLog:`Ausführungsprotokoll anzeigen`,close:`Schließen`,tool:{terminal:`Terminal`,reading:`Liest`,searching:`Sucht`,editing:`Bearbeitet`,web:`Web`,agent:`Agent`,agentNamed:`Agent · {{description}}`,mcp:`MCP · {{name}}`,mcpTool:`MCP-Werkzeug`}},ae={open:`Logs für {{command}} anzeigen`,logsTitle:`Prozesslogs`,logsDescription:`Live-Ausgabe und gespeicherter Verlauf dieses Prozesses.`,close:`Logs schließen`,command:`Befehl`,directory:`Verzeichnis`,exitCode:`Exitcode: {{code}}`,signal:`Signal: {{signal}}`,search:`Logs durchsuchen…`,source:`Ausgabequelle`,allSources:`Alle Ausgaben`,pause:`Pausieren`,resume:`Fortsetzen`,follow:`Folgen`,copy:`Sichtbare Logs kopieren`,download:`Sichtbare Logs herunterladen`,stop:`Prozess stoppen`,stopCommand:`{{command}} stoppen`,stopFailed:`Der Prozess konnte nicht gestoppt werden. Erneut versuchen.`,truncated:`Es wird ein begrenzter Logausschnitt angezeigt. Ältere Ausgaben oder lange Zeilen können fehlen. Kopieren und Herunterladen umfassen nur diese Ansicht.`,paused:`Ansicht pausiert. Der Prozess läuft weiter.`,loadFailed:`Logs konnten nicht geladen werden. Die Aufbewahrungszeit ist möglicherweise abgelaufen; bereits geladene Ausgaben bleiben sichtbar.`,retry:`Erneut versuchen`,copied:`Sichtbare Logs kopiert.`,exportFailed:`Logs konnten nicht exportiert werden. Erneut versuchen.`,output:`Prozessausgabe`,loading:`Logs werden geladen…`,noMatches:`Keine passende Ausgabe.`,empty:`Noch keine Ausgabe.`,lineCount:`{{count}} von {{total}} Zeilen`,exportHint:`Der Export umfasst nur den aktuellen Filter und die aufbewahrte Ausgabe.`,status:{starting:`Startet`,running:`Läuft`,stopping:`Wird gestoppt`,exited:`Beendet`,killed:`Gestoppt`,failed:`Fehlgeschlagen`,interrupted:`Getrennt`},repository:`Repository`,history:{button:`Prozesse`,title:`Prozesse der Mission`,open:`Prozessverlauf anzeigen`,description:`Aktive Prozesse und gespeicherte Protokolle früherer Ausführungen anzeigen.`,search:`Befehl oder Repository suchen…`,refresh:`Verlauf aktualisieren`,close:`Prozessverlauf schließen`,back:`Zurück zu den Prozessen`,loading:`Prozessverlauf wird geladen…`,empty:`Für diese Mission wurden noch keine Prozesse erfasst.`,noMatches:`Keine passenden Prozesse.`,loadFailed:`Der Prozessverlauf konnte nicht geladen werden. Bereits geladene Einträge bleiben verfügbar.`,showMore:`Mehr anzeigen`,count:`Prozesse: {{count}}`},interruptedHint:`Specrails überwacht diesen Prozess nicht mehr. Sein Zustand im Betriebssystem ist unbekannt; gespeicherte Protokolle bleiben verfügbar.`,persistenceFailed:`Der Prozessverlauf konnte nicht gespeichert werden. Die verfügbare Ausgabe bleibt sichtbar.`,appUrls:{title:`App-Adressen`,local:`Dieser Computer`,network:`Dein Netzwerk`,open:`{{url}} im Browser öffnen`,copy:`{{url}} kopieren`,localOnly:`Nur von diesem Computer erreichbar. Um sie vom Handy im selben WLAN zu öffnen, bitte den Agenten, sie im lokalen Netzwerk freigegeben neu zu starten.`}},oe={detach:`In eigenem Fenster öffnen`,attach:`Zurück ins Hauptfenster`,detached:`Diese Mission ist in einem anderen Fenster geöffnet.`,focus:`Missionsfenster anzeigen`,loading:`Mission wird verschoben…`,failed:`Die Mission konnte nicht verschoben werden. Dein Entwurf bleibt erhalten.`,dismiss:`Schließen`,wrongMission:`Öffne diese Mission, bevor du sie verschiebst.`,finishPending:`Beende den laufenden Vorgang oder speichere oder verwirf die Nachricht oder Aufnahme, bevor du die Mission verschiebst.`},se={heading:`Rail-Start`,rail:`Rail {{index}}`,newRail:`Neuer Rail`,play:`Starten`,launching:`Wird gestartet…`,dismiss:`Verwerfen`,playHint:`Passe alles nach Bedarf an und drücke dann Starten, um den Start unter deiner eigenen Verantwortung auszulösen.`,pending:`Startvorschlag wird vorbereitet…`,unreadable_one:`Der Startvorschlag des Agenten konnte nicht gelesen werden.`,unreadable_other:`{{count}} Startvorschläge konnten nicht gelesen werden.`,effortDefault:`Standard-Aufwand`,profileNone:`Kein Profil`,status:{proposal:`Vorschlag`,ready:`Bereit`,blocked:`Aufmerksamkeit nötig`,loading:`Wird geprüft…`},availability:{free:`frei`,busy:`in Ausführung`,pending_decision:`wartet auf eine Entscheidung`,on_review:`in Review`},fields:{rail:`Rail`,newRailName:`Name des neuen Rails (optional)`,railName:`Rail-Name`,addSpec:`Spec hinzufügen`,removeSpec:`#{{id}} entfernen`,loop:`Loop`,engine:`KI-Engine`,model:`Modell`,effort:`Reasoning-Aufwand`,profile:`Agentenprofil`,targetPr:`Ziel-PR #`,baseBranch:`Basis-Branch`},notes:{railMissing:`Rail {{index}} existiert nicht mehr. Wähle einen anderen Rail oder erstelle einen.`,railBusy:`Rail {{index}} ist {{state}}, daher ist ein Start dort blockiert.`,useFree:`Rail {{index}} verwenden`,specsDropped:`Nicht mehr in diesem Projekt: {{ids}}`,engineStale:`{{engine}} wurde auf diesem Rechner nicht erkannt. {{fallback}} wird verwendet.`,modelStale:`{{model}} ist nicht verfügbar. {{fallback}} wird verwendet.`},block:{noProject:`Diese Mission ist an kein Projekt angeheftet.`,loadFailed:`Die Rails, Specs oder Repositories des Projekts konnten nicht geladen werden.`,noSpecs:`Füge mindestens eine Spec hinzu, um zu starten.`,railLimit:`Alle {{max}} Rails existieren bereits und keiner ist frei.`},errors:{tickets_in_flight:`Eine dieser Specs läuft bereits auf einem anderen Rail.`,pr_decision_pending:`Dieser Rail wartet auf eine PR-Entscheidung.`,rail_limit_reached:`Das Projekt hat bereits die maximale Anzahl an Rails.`,invalid_base_branch:`Dieser Basis-Branch existiert lokal nicht.`,base_branch_requires_isolation:`Ein Basis-Branch benötigt Worktree-Isolation (ein Git-Repository mit Commits).`,target_pr_requires_pr_mode:`Ein Ziel-PR benötigt Worktree-Isolation (ein Git-Repository mit Commits).`,invalid_response:`Unerwartete Antwort vom Server.`,scope_save_failed:`Die Repositories der Spec konnten nicht gespeichert werden.`,repository_scope_incomplete:`Für den Start fehlt ein von den Specs benötigtes Repository. Prüfen Sie die Zuweisungen oben.`,rail_not_empty:`Diese Rail hat bereits Specs`,flow_freeze_failed:`Die Änderungen deines Flows konnten für die Übergabe nicht gesichert werden`,flow_head_mismatch:`Dein Flow hat sich während der Übergabe geändert. Versuch es noch einmal`,flow_already_handed_off:`Dieser Flow wurde bereits übergeben`,flow_handoff_not_adopted:`Der Rail ist gestartet, ohne die Änderungen deines Flows zu übernehmen`,illegal_transition:`Der Flow hat zwischenzeitlich den Zustand gewechselt`,feature_unavailable:`Flow ist nicht verfügbar`,daily_budget_exceeded:`Tagesbudget erreicht. Es wurde nichts gestartet.`,review_wip_limit_reached:`Review-Limit erreicht. Es wurde nichts gestartet.`,repository_has_no_commits:`Dieses Repository hat noch keine Commits. Erstelle einen ersten Commit, damit Specrails eine isolierte Kopie des Projekts anlegen kann.`},stub:{launched:`Gestartet → Rail {{rail}}`,dismissed:`Vorschlag verworfen`,viewRun:`Run anzeigen`,goToCard:`Zur Karte`,goToCardTitle:`Zur Implementierungskarte dieses Starts springen`,viewRunTitle:`Das Live-Log des Runs öffnen`},followUp:{title:`{{count}} Review-Kommentar(e) der PR beheben`,excluded:`Nicht ändern`,verification:`Prüfen`,specUntouched:`Spec und Jira-Beschreibung werden nicht bearbeitet. Der Umfang reist mit dem Lauf.`,source:{pasted:`eingefügt`,github:`aus GitHub`}},addenda:{rides_one:`{{count}} offenes Addendum reist mit diesem Start mit:`,rides_other:`{{count}} offene Addenda reisen mit diesem Start mit:`},repositories:{launch:`Repositories für diesen Start`,launchHint:`Enthält die von den Specs benötigten Repositories. Sie können weitere Projekt-Repositories hinzufügen.`,assignments:`Jeder Spec zugewiesen`,edit:`Bearbeiten`,editSpec:`Repositories für #{{id}} bearbeiten`,spec:`Repositories der Spec #{{id}}`,saveHint:`Beim Speichern werden die Repository-Zuweisungen dieser Spec auch für zukünftige Starts aktualisiert.`,save:`Repositories speichern`,cancel:`Abbrechen`,finishEditing:`Speichern oder verwerfen Sie die Repository-Änderung vor dem Start.`,missing:`Benötigte Repositories fehlen: {{names}}. Wählen Sie sie oben aus oder bearbeiten Sie die Spec-Zuweisungen, falls sich ihre Ziele geändert haben.`,unavailable:`Ausgewählte Repositories sind für die Implementierung nicht verfügbar: {{names}}. Aktualisieren Sie die Auswahl oder die Spec-Zuweisungen.`,refresh:`Aktualisieren`,retry:`Laden erneut versuchen`,checkScope:`Prüfen Sie die Repository-Auswahl vor dem Start.`},triageLabel:`Triage`,handOff:{newRail:`Ein neuer Rail`,changeHow:`Vorgehen ändern`}},ce={status:{running:`Läuft`,paused:`Pausiert`,succeeded:`Erfolgreich`,failed:`Fehlgeschlagen`,stalled:`Festgefahren`,cancelled:`Abgebrochen`,unknown:`Unbekannt`,changes_requested:`Änderungen angefordert`,returned:`Zurück im Flow`},title:{running:`Implementierung im Projekt-Checkout…`,paused:`Menschliche Entscheidung erforderlich`,succeeded:`Implementierung abgeschlossen`,failed:`Implementierung fehlgeschlagen`,stalled:`Implementierung festgefahren`,cancelled:`Run abgebrochen`,unknown:`Run-Status unbekannt`,changes_requested:`Der Reviewer hat Änderungen angefordert`,returned:`Zurück im Flow`},noDeliveryNote:`Keine PR-Phase: Dieses Projekt hat kein Git-Repository und keine Commits, daher wurde die Arbeit direkt im Projektordner abgelegt.`,noDeliveryHint:`Läuft direkt im Projektordner (kein Git-Repository und keine Commits, daher wird kein PR vorgeschlagen).`,failure:{title:`Warum es gestoppt hat`,step:`Schritt {{step}}`,unit:`#{{ticket}} · {{code}}`},actions:{resume:`Fortsetzen`,approve:`Genehmigen`,recover:`Wiederherstellen und erneut versuchen`,relaunch:`Neu starten`},relaunchSent:`Rail {{index}} neu gestartet. Eine neue Karte folgt dem Lauf.`,relaunchFailed:`Der Rail konnte nicht neu gestartet werden`,relaunchBlockedActive:`Der Rail hat noch einen aktiven Run`,review:{title:{review:`Der Reviewer hat Änderungen angefordert`,check:`Die Prüfungen schlagen weiterhin fehl`},score:`Bewertung {{score}}`,issues_one:`{{count}} Punkt`,issues_other:`{{count}} Punkte`,showAll:`Alle {{count}} anzeigen`,showLess:`Weniger anzeigen`,omitted_one:`+{{count}} weiterer in der Review des Laufs`,omitted_other:`+{{count}} weitere in der Review des Laufs`,failingChecks:`Fehlgeschlagen`,check:`{{command}} · Exit {{code}}`,next:`Die automatischen Korrekturrunden haben das nicht gelöst. Geh zurück in den Flow, um es mit dem Agenten zu klären, oder starte neu vom selben Flow-Branch.`,returned:`Zurück im Flow: Deine Änderungen sind mit der Review in ihren Flow zurückgekehrt. Mach in der Flow-Leiste weiter.`}},le={briefing:{title:`Automatischer Fehlerbericht`}},ue={open:`Geteilte Ansicht`,menu:`Unterhaltungsaktionen`,add:`Unterhaltung in geteilter Ansicht hinzufügen`,close:`Geteilte Ansicht schließen`,loadFailed:`Diese Unterhaltung konnte nicht geladen werden.`,retry:`Erneut versuchen`},de={label:`Modell und Aufwand`,resetEffort:`Aufwand zurücksetzen`,back:`Zurück`},fe={0:`Was ist die Mission?`,1:`Mit welcher Mission beginnen wir?`,2:`Was ist unsere Mission heute?`,3:`Was ist unsere nächste Mission?`,4:`Was möchtest du mit dieser Mission erreichen?`,5:`Welche Mission starten wir?`,6:`Wo beginnen wir diese Mission?`,7:`Was ist das Ziel dieser Mission?`,8:`Was bauen wir in dieser Mission?`,9:`Was verbessern wir in dieser Mission?`,10:`Welche Herausforderung gehen wir in dieser Mission an?`,11:`Was ist der erste Schritt dieser Mission?`,12:`Erzähl mir von der Mission, die du im Sinn hast…`,13:`Beschreibe deine nächste Mission…`,14:`Gestalten wir deine nächste Mission…`,15:`Was soll diese Mission bewirken?`,16:`Welche Mission möchtest du abschließen?`,17:`Was lösen wir in dieser Mission?`,18:`Was macht diese Mission zu einem Erfolg?`,19:`Bereit für eine neue Mission. Fangen wir an?`},pe={title:`Agenten`,working_one:`{{count}} arbeitet`,working_other:`{{count}} arbeiten`,done_one:`{{count}} fertig`,done_other:`{{count}} fertig`,ended_one:`{{count}} beendet`,ended_other:`{{count}} beendet`,phase:{running:`Arbeitet`,idle:`Fertig`,failed:`Fehlgeschlagen`,stopped:`Gestoppt`,killed:`Abgebrochen`,interrupted:`Unterbrochen`},reason:{user_stop:`von dir gestoppt`,host_request:`von der App gestoppt`,restart:`beim Neustart verloren`,shutdown:`App geschlossen`,host_lost:`Agent-Host verloren`,crashed:`Prozess abgestürzt`,stalled:`reagiert nicht mehr`,limit:`Limit erreicht`,project_removed:`Projekt entfernt`,evicted:`zur Ressourcenfreigabe beendet`,policy:`Sub-Agenten sind deaktiviert`},expand:`Aktivität von {{name}} anzeigen`,collapse:`Aktivität ausblenden`,elapsedAria:`Läuft seit {{elapsed}}`,loadingActivity:`Aktivität wird geladen…`,noActivity:`Noch keine Aktivität`,activityFailed:`Aktivität konnte nicht geladen werden`,moreActivity:`Mehr laden`,tokens:`{{tokens}} Tokens`,toolUses_one:`{{count}} Tool-Aufruf`,toolUses_other:`{{count}} Tool-Aufrufe`,stop:`Stoppen`,stopOne:`{{name}} stoppen`,stopAll:`Alle Agenten stoppen`,stopFailed:`Agenten konnten nicht gestoppt werden`,relaunch:`Neu starten`,relaunchHint:`Nachricht entwerfen, die den Agenten bittet, diese Arbeit neu zu starten`,relaunchDraft:`Bitte starte den Hintergrund-Agenten neu für: {{description}}`,continuation:`Nach Hintergrund-Agenten fortgesetzt`,continuationSystem:`Nach Hintergrundarbeit fortgesetzt`,backgroundTurn:`Agent prüft die Hintergrundergebnisse…`,deferred:`Die Einstellungsänderung wird übernommen, sobald die Hintergrund-Agenten fertig sind.`,applyNow:`Agenten stoppen und jetzt übernehmen`,policyUnenforceable:`{{provider}} kann Sub-Agenten nicht deaktivieren. Aktiviere „Sub-Agenten erlauben“ in den Projekteinstellungen oder nutze für diese Mission einen anderen Anbieter.`,result:`Ergebnis`,count_one:`{{count}} Agent`,count_other:`{{count}} Agenten`,finishedIn:`fertig in {{elapsed}}`,delegatedHint:`Von Specrails auf {{provider}} ({{model}}) gestartet; seine Kosten werden separat gezählt.`},me={host_degraded:`Core-Sitzungen sind für dieses Projekt nach wiederholten Fehlern nicht verfügbar, daher lief dieser Zug über den klassischen Transport (keine Sub-Agenten im Hintergrund). Versuche es erneut, sobald die Ursache behoben ist.`,journal_locked:`Eine andere Specrails-Desktop-Instanz nutzt die Agentensitzungen dieses Projekts, daher lief dieser Zug über den klassischen Transport. Schließe die andere Instanz und versuche es erneut.`,policy:{subagent_blocked:`Der Anbieter hat einen Sub-Agenten gestartet, obwohl Sub-Agenten in diesem Projekt deaktiviert sind; er wurde gestoppt.`},retry:`Erneut versuchen`,retryFailed:`Weiterhin nicht verfügbar. Die Ursache steht im App-Log.`,dismiss:`Schließen`,subagents:{delegation_unsupported:`{{provider}}-Sub-Agenten benötigen einen neueren Specrails Core, daher startet der Agent dieser Mission seine eigenen Sub-Agenten.`,driver_unavailable:`{{provider}} ist für die Sitzungs-Runtime nicht verfügbar, daher startet der Agent dieser Mission seine eigenen Sub-Agenten.`}},he=`Karte wird vorbereitet…`,ge={placeholder:`Tippen zum Unterbrechen – der Agent ändert sofort den Kurs`,send:`Unterbrechen und senden`,sendHint:`Stoppt den aktuellen Schritt und gibt dem Agenten jetzt deine Nachricht`},_e=JSON.parse(`{"missing":{"sessions":"Core-Agentensitzungen sind deaktiviert oder nicht verfügbar","flowSessions":"Dein Specrails Core kann einen laufenden Agenten noch nicht unterbrechen","deriveChange":"Dein Specrails Core kann noch keine Spec aus Code ableiten"},"errors":{"generic":"Flow konnte diese Aktion nicht abschließen. Versuche es erneut.","network":"Specrails ist nicht erreichbar.","feature_unavailable":"Flow ist mit dem installierten Specrails Core nicht verfügbar.","flow_already_open":"Diese Mission hat bereits einen Flow. Setze ihn fort oder verwirf ihn zuerst.","illegal_transition":"Der Flow hat zwischenzeitlich den Zustand gewechselt. Aktualisiere und versuche es erneut.","flow_worktree_missing":"Die Projektkopie dieses Flows existiert nicht mehr. Prüfe den Flow-Branch, bevor du fortfährst.","flow_repository_required":"Wähle das Repository, in dem dieser Flow läuft.","flow_repository_not_git":"Flow braucht ein Git-Repository für seinen Branch; ein einfacher Ordner reicht nicht. Wähle ein Git-Repository.","flow_repository_unknown":"Dieses Repository gehört nicht mehr zu diesem Projekt. Wähle ein anderes.","flow_repository_missing":"Das Repository des Flows ist in diesem Projekt nicht mehr verfügbar.","rail_not_empty":"Diese Rail hat bereits Specs. Wähle eine freie, leere Rail.","flow_already_handed_off":"Dieser Flow wurde bereits an einen Rail übergeben.","flow_freeze_failed":"Die Änderungen deines Flows konnten für die Übergabe nicht gesichert werden.","flow_head_mismatch":"Dein Flow hat sich während der Übergabe geändert. Versuch es noch einmal.","flow_handoff_not_adopted":"Der Rail ist gestartet, ohne die Änderungen deines Flows zu übernehmen.","repository_has_no_commits":"Dieses Repository hat noch keine Commits. Erstelle einen ersten Commit, damit Specrails eine isolierte Kopie des Projekts anlegen kann.","flow_not_found":"Dieser Flow existiert nicht mehr.","flow_failed":"Flow ist auf einen unerwarteten Fehler gestoßen. Versuche es erneut.","conversation_not_found":"Diese Mission existiert nicht mehr.","conversation_not_pinned":"Hefte diese Mission an das Projekt, bevor du einen Flow startest.","flow_not_handed_off":"Dieser Flow wartet nicht mehr auf diesen Lauf.","flow_rail_unknown":"Der Rail dieses Laufs ist unbekannt. Übergib den Flow erneut über „Übergeben“ in der Flow-Leiste.","flow_return_busy":"Der Lauf ist mit einer anderen Aktion beschäftigt. Versuche es gleich noch einmal.","flow_return_not_allowed":"Nur eine Übergabe, die vor der Auslieferung angehalten hat, kann in ihren Flow zurück.","flow_return_not_found":"Dieser Lauf ist keine Flow-Übergabe.","flow_return_worktree_mismatch":"Dieser Lauf hat die Änderungen dieses Flows nicht übernommen.","spec_in_flow":"Diese Spec ist bereits in Flow. Öffne ihre Mission, um weiterzumachen.","spec_on_rail":"Diese Spec liegt auf einer Rail. Nimm sie von der Rail, um sie in Flow zu starten.","spec_running":"Diese Spec läuft auf einer Rail. Warte, bis der Lauf endet.","spec_closed":"Diese Spec ist erledigt oder abgebrochen. Öffne sie wieder, um in Flow daran zu arbeiten.","spec_not_found":"Diese Spec existiert nicht mehr.","invalid_ticket_id":"Diese Spec konnte nicht erkannt werden."},"entry":{"heading":"Flow starten","body":"Specrails legt eine separate Kopie des Projekts auf einem eigenen Flow-Branch an, in der der Agent Code schreiben kann. Dein Hauptbranch bleibt unberührt.","provider":"Der Agent arbeitet mit {{provider}} und schreibt nur in die Kopie des Flows.","providerUnknown":"Der Agent schreibt nur in die Kopie des Flows.","repository":{"label":"Repository","hint":"Der Flow arbeitet in einer separaten Kopie dieses Repositorys.","choose":"Wähle das Repository, in dem dieser Flow läuft","loading":"Repositorys werden geladen…","loadFailed":"Die Repositorys des Projekts konnten nicht geladen werden. Versuche es erneut.","suggested":"Vom Agenten vorgeschlagen","noGit":"Dieses Projekt hat kein Git-Repository. Flow braucht eins für seinen Branch."},"blocked":{"noProject":"Hefte diese Mission an ein Projekt, um Flow zu nutzen.","open":"Diese Mission hat bereits einen Flow.","missing":"Flow braucht einen neueren Specrails Core:","unavailable":"Flow ist gerade nicht verfügbar.","goToFlow":"Zu diesem Flow"},"cancel":"Abbrechen","start":"Flow starten","starting":"Startet…","existingSpec":{"label":"Spec #{{id}}","note":"Der Flow arbeitet an dieser Spec, und der Agent beginnt bei ihr. Bei der Lieferung wird die Spec aus dem Gebauten neu geschrieben; ihr aktueller Text bleibt als Kommentar erhalten."}},"offer":{"heading":"Wie möchtest du es bauen?","notNow":"Nicht jetzt","implementReply":"Lass uns zuerst die Spec schreiben und dann Implement starten.","mode":{"flow":{"title":"Flow","hint":"Gemeinsam auf einem eigenen Flow-Branch bauen; die Spec kommt am Ende.","hintExisting":"Baut diese Spec gemeinsam auf einem eigenen Flow-Branch; die Spec wird aus dem Gebauten neu geschrieben."},"implement":{"title":"Spec + umsetzen","hint":"Zuerst eine Spec vereinbaren, dann an einen Rail delegieren.","hintExisting":"Übergib diese Spec, wie sie geschrieben ist, an eine Rail."}},"stub":{"flow":"Du hast Flow gewählt","implement":"Du hast Spec + Implement gewählt","dismissed":"Angebot verworfen","handedOff":"Flow an Rail {{rail}} übergeben","state":{"active":"Flow läuft","paused":"Flow pausiert","handed_off":"Flow an einen Rail übergeben","delivered":"Flow ausgeliefert","discarded":"Flow verworfen","needs-review":"Flow muss geprüft werden","closed":"Flow geschlossen (Branch behalten)"},"viewRun":"Lauf ansehen"},"why":"Warum der Agent fragt","waitForReply":"Du kannst wählen, sobald der Agent diese Antwort beendet hat.","implementExistingReply":"Lass uns Spec #{{id}} auf einer Rail umsetzen."},"bar":{"controls":"Flow-Aktionen","viewChanges":"Änderungen ansehen","resume":"Flow fortsetzen","pause":"Flow pausieren","discard":"Verwerfen","discarded":"Flow verworfen","files_one":"{{count}} Datei","files_other":"{{count}} Dateien","filesTitle":"Geänderte Dateien im Flow-Branch","costTitle":"Echte Kosten der Turns dieses Flows, wie vom Anbieter abgerechnet","costPartial_one":"{{count}} Turn hat keine vom Anbieter gemeldeten Kosten und ist nicht enthalten","costPartial_other":"{{count}} Turns haben keine vom Anbieter gemeldeten Kosten und sind nicht enthalten","needsReview":"Die Projektkopie dieses Flows fehlt. Es wurde nichts gelöscht; prüfe den Flow-Branch, bevor du fortfährst.","pausedNote":"Pausiert. Deine Änderungen und die Spec bleiben erhalten; mach weiter, wann du willst.","state":{"active":"Flow","paused":"Flow pausiert","needs-review":"Flow muss geprüft werden","handed_off":"An einen Rail übergeben","delivered":"Ausgeliefert","discarded":"Verworfen","closed":"Geschlossen"},"disabled":{"settling":"Warte, bis der Flow seinen Zustand gespeichert hat","busy":"Warte, bis die laufende Aktion abgeschlossen ist","noSpec":"Die Spec des Flows ist noch nicht bereit"},"viewChangesStats":"Änderungen ansehen · {{files}}, +{{additions}} −{{deletions}}","handOff":"Übergeben","close":"Diesen Flow schließen","closed":"Flow geschlossen. Der Branch bleibt erhalten."},"preview":{"open":"Vorschau","openTitle":"App unter {{url}} im Browser öffnen","stopping":"Wird beendet…","more":"App-Aktionen","local":"Auf diesem Computer öffnen","network":"Im lokalen Netzwerk öffnen","localOnly":"Nur von diesem Computer erreichbar. Bitte den Agenten, sie mit Freigabe im lokalen Netzwerk neu zu starten, damit du sie auf einem Smartphone öffnen kannst.","stop":"App beenden","stopFailed":"Die App konnte nicht beendet werden"},"discard":{"title":"Diesen Flow verwerfen?","body":"Verwerfen löscht Folgendes unwiderruflich:","cancel":"Flow behalten","confirm":"Flow verwerfen","lossFiles_one":"{{count}} geänderte Datei","lossFiles_other":"{{count}} geänderte Dateien","lossNoChanges":"Noch keine geänderten Dateien","lossUnknown":"Alle Änderungen im Flow-Branch","lossSpec":"Die vorläufige Spec auf dem Board"},"changes":{"title":"Flow-Änderungen","subtitle":"Branch {{branch}} im Vergleich zu seinem Ausgangspunkt","subtitleNoBranch":"Änderungen im Vergleich zum Startpunkt des Flows","refresh":"Aktualisieren","loadFailed":"Änderungen konnten nicht geladen werden.","empty":"Noch keine Änderungen.","status":{"added":"Hinzugefügt","modified":"Geändert","deleted":"Gelöscht","renamed":"Umbenannt","untracked":"Neu, nicht verfolgt"}},"handOff":{"heading":"Mach aus diesem Flow einen geprüften PR","loop":"Flow-Übergabe","launch":"Starten","notYet":"Noch nicht","engineFallback":"{{provider}} kann die Flow-Übergabe auf diesem Rechner nicht ausführen, deshalb ist die Standard-Engine des Rails gewählt.","cost":"bisher {{cost}}","costUnknown":"noch keine abgerechneten Kosten","line_one":"{{rail}} macht aus deiner geänderten Datei einen geprüften PR. Wenn etwas schiefgeht, bleibt deine Arbeit erhalten.","line_other":"{{rail}} macht aus deinen {{count}} geänderten Dateien einen geprüften PR. Wenn etwas schiefgeht, bleibt deine Arbeit erhalten.","lineNoCount":"{{rail}} macht aus deinen Änderungen einen geprüften PR. Wenn etwas schiefgeht, bleibt deine Arbeit erhalten."},"review":{"backToFlow":"Zurück zum Flow","backToFlowHint":"Öffne diesen Flow mit denselben Änderungen wieder; der Agent erhält die Review in seinem nächsten Zug","relaunch":"Neu starten","relaunchHint":"Erneut versuchen mit demselben Flow-Branch, Rail und derselben Engine","returned":"Zurück im Flow. Der Agent hat die Review.","relaunched":"Auf Rail {{index}} neu gestartet","returnFailed":"Rückkehr zum Flow nicht möglich: {{detail}}","relaunchFailed":"Neustart nicht möglich: {{detail}}","backToFlowFailureHint":"Öffne diesen Flow mit denselben Änderungen wieder; der Agent erhält den Fehler in seinem nächsten Zug","returnedFailure":"Zurück im Flow. Der Agent hat den Fehler."},"failure":{"step":{"derive":"Die Spec konnte nicht aus deinen Änderungen geschrieben werden","verify":"Deine Änderungen konnten nicht geprüft werden","review":"Die Review konnte nicht abgeschlossen werden","fix":"Die automatischen Korrekturen konnten nicht abgeschlossen werden","archive":"Die fertige Spec konnte nicht abgelegt werden","settle":"Das Ergebnis konnte nicht zurückgegeben werden","unknown":"Die Übergabe hat vor dem Ende angehalten"},"cause":"Ursache:","next":"Deine Arbeit ist unversehrt. Zurück im Flow erhält der Agent den Fehler.","nextReturned":"Deine Arbeit ist unversehrt. Zurück im Flow hat der Agent den Fehler.","returned":"Zurück im Flow","technical":{"title":"Technische Details","repository":"Repository","step":"Schritt","status":"Status","failure":"Fehler","detail":"Detail"}},"announce":{"active":"Flow aktiv: Der Agent schreibt im Flow-Branch.","paused":"Flow pausiert.","needs-review":"Der Flow muss geprüft werden: Seine Projektkopie fehlt.","handed_off":"Flow an einen Rail übergeben.","delivered":"Flow ausgeliefert.","discarded":"Flow verworfen.","returned":"Zurück im Flow: Die Arbeit kam mit den Ergebnissen der Übergabe zurück.","closed":"Flow geschlossen. Sein Branch wurde behalten."},"strip":{"label":"Flow","ready":"Bereit, ein PR zu werden","launching":"Wird an einen Rail übergeben…","launchingOn":"Wird an {{rail}} übergeben…","stillHandingOff":"Wird noch an {{rail}} übergeben…","refresh":"Aktualisieren","step":{"derive":"Spec wird aus deinen Änderungen geschrieben","verify":"Deine Änderungen werden geprüft","review":"Die Änderung wird reviewt","fix":"Korrekturen aus der Review werden angewendet","archive":"Fertige Spec wird abgelegt","settle":"Das Ergebnis wird zurückgegeben"},"headline":"{{state}} · {{files}}"},"mode":{"chip":"Flow","description":"Flow-Modus: Der Agent schreibt im Flow-Branch, nicht in deinem Hauptbranch","placeholder":"Sag dem Agenten, was er in diesem Flow ändern soll…"},"panel":{"branch":"Branch","changes":"Änderungen","cost":"Kosten bisher","actions":"Weitere Flow-Aktionen"},"close":{"title":"Diesen Flow schließen?","body":"Die Unterhaltung verlässt Flow. Nichts wird gelöscht:","keptBranch":"Branch bleibt erhalten:","keptSpec":"Die Spec bleibt auf dem Board, ohne das Label „Im Flow“","cancel":"Nicht jetzt","confirm":"Flow schließen, Branch behalten"},"startFromSpec":{"action":"In Flow starten","hint":"Baue diese Spec mit dem Agenten auf einem eigenen Flow-Branch, in einer Mission","starting":"Flow wird gestartet…","failed":"Spec #{{id}} konnte nicht in Flow starten","repository":{"title":"Wo soll dieser Flow laufen?","body":"Dieses Projekt hat mehrere Git-Repositorys. Der Flow arbeitet auf einem eigenen Branch in einer separaten Kopie des gewählten Repositorys.","fromSpec":"In der Spec genannt"},"blocked":{"noProject":"Öffne ein Projekt, um Flow zu nutzen","unavailable":"Flow ist mit dem installierten Specrails Core nicht verfügbar","inFlow":"Bereits in Flow","closed":"Erledigte oder abgebrochene Specs können nicht in Flow starten","running":"Läuft auf einer Rail","onRail":"Auf einer Rail: nimm sie zuerst herunter","missionInFlow":"Diese Mission hat bereits einen Flow"}}}`),ve={title:`Was der Reviewer verlangt hat`,noFindings:`Die Übergabe hat vor der Auslieferung angehalten; deine Änderungen sind unversehrt zurück in diesem Flow.`,coverage:`Die Spec erklärt {{explained}} von {{files}} geänderten Dateien`,unexplained:`Von keiner Anforderung erklärt`,moreFiles_one:`+{{count}} weitere Datei`,moreFiles_other:`+{{count}} weitere Dateien`,next:`Der Flow-Agent beginnt jetzt damit; du kannst ihn jederzeit lenken oder stoppen.`,automaticTurn:`Automatischer Zug · Zurück zum Flow`,titleFailure:`Warum die Übergabe angehalten hat`},ye={providerInactivity:`Der Anbieter hat zu lange nicht reagiert, daher wurde der Zug beendet. Sende deine Nachricht erneut, um fortzufahren.`,toolInactivity:`Ein Tool lief zu lange ohne Aktivität des Anbieters, daher wurde der Zug beendet. Sende deine Nachricht erneut oder bitte den Agenten, den Schritt aufzuteilen.`,generic:`Der Zug des Agenten ist fehlgeschlagen.`},be={title:`Flow ausgeliefert`,pr:`Pull-Request öffnen`,prNumber:`Pull-Request #{{number}}`,specRewritten:`Spec aus dem Gebauten neu geschrieben`,specKept:`Die Spec konnte nicht neu geschrieben werden; ihr Entwurf bleibt erhalten`,change:`Spec-Änderung {{change}}`,changeArchived:`Spec-Änderung {{change}} archiviert`,jira:`Jira-Vorgang {{key}}`,jiraPending:`Jira-Vorgang wird erstellt`},xe={launching:`Wird auf {{rail}} gestartet…`,running:`Arbeitet`,paused:`Pausiert. Wartet auf dich`,pausedReason:`Pausiert: {{reason}}`,decision:{approval:`Wartet auf deine Freigabe`,changes:`Der Reviewer hat Änderungen angefordert`,on_review:`Bereit für dein Review`,pr_draft:`Entwurfs-PR bereit zum Veröffentlichen`,no_changes:`Ohne Änderungen abgeschlossen`,pr_closed:`PR ohne Merge geschlossen`,generic:`Wartet auf deine Entscheidung`},failed:{generic:`Mit einem Fehler gestoppt`,implementation_failed:`Die Implementierung ist fehlgeschlagen`,stalled:`Der Lauf ist ins Stocken geraten`,stuck:`Der Lauf hängt fest`,provider_limit:`Das Nutzungslimit des Anbieters hat ihn gestoppt`,launch_failed:`Der Lauf konnte nicht starten`,delivery_failed:`Das Ergebnis konnte nicht ausgeliefert werden`,push_failed:`Der Branch konnte nicht gepusht werden`,pr_failed:`Der PR konnte nicht erstellt werden`},progressAria:`{{done}} von {{total}} Läufen abgeschlossen`,costTitle:`Bisher vom Anbieter abgerechnete echte Kosten`,costPartial:`Einige Läufe haben noch keine abgerechneten Kosten und sind nicht enthalten`,costNone:`Noch keine abgerechneten Kosten`,state:{launching:`Startet:`,running:`Läuft:`,decision:`Wartet auf dich:`,failed:`Fehlgeschlagen:`,paused:`Pausiert:`,info:`Zur Info:`},proposal:`Start vorgeschlagen für {{tickets}}`,proposalNoTickets:`Start vorgeschlagen`,proposalLabel:`Vorschlag`,panelLabel:`Details zu {{run}}`,showDetails:`Details anzeigen`,withShortcut:`{{label}} ({{keys}})`,cycleHint:`Lauf wechseln: {{keys}}`,hideDetails:`Details ausblenden`,switcher:`Aktive Läufe`,more:`Weitere Läufe ({{count}})`,announce:{settled:`{{run}} ist abgeschlossen`,shown:`{{run}} wird angezeigt: {{state}}`,needsYou:`{{run}} braucht dich`},event:{launched:`Auf {{run}} gestartet`,failed:`{{run}} fehlgeschlagen: {{reason}}`,openRun:`Lauf anzeigen`,proposed:`Start vorgeschlagen. Wartet auf dich`,backToFlow:`Zurück zum Flow`,flowReturned:`{{run}} hat die Arbeit an den Flow zurückgegeben`,delivered:`Ausgeliefert: PR {{pr}}`,deliveredNoPr:`Auf {{run}} ausgeliefert`,superseded:`{{run}} wurde durch einen neueren Lauf ersetzt`,discarded:`{{run}} wurde verworfen`,changes:`{{run}}: Der Reviewer hat Änderungen angefordert`},needsYou:`braucht dich`,opensCard:`Öffnet die Karte des Laufs, damit du dort bestätigen kannst`,open:{decision:`Entscheidung öffnen`,failed:`Fehler ansehen`,paused:`Grund der Pause ansehen`},attention:{failed:`Braucht Aufmerksamkeit: ein Lauf ist fehlgeschlagen`}},Se={entered:`Flow betreten`,left:`Flow verlassen`,turnMark:`Flow`,reason:{started:`gestartet`,returned:`von einem Rail zurück`,handed_off:`an einen Rail übergeben`,discarded:`verworfen`,closed:`geschlossen, Branch behalten`}},Ce=`Ungelesen`,we=`{{count}} ungelesen`,Te=`Agent arbeitet`,Ee=`Die Mission konnte nicht gelöscht werden. Bitte erneut versuchen.`,De={label:`Oberflächenmodus`,mission:`Mission`,board:`Board`,current:`Aktueller Modus: {{mode}}. Klicken zum Wechseln.`},Oe={sendFailed:`Die Nachricht konnte nicht gesendet werden.`,stopFailed:`Der Agent konnte nicht gestoppt werden.`,mcpEnableFailed:`MCP konnte nicht aktiviert werden.`,removeAttachmentFailed:`Der Anhang konnte nicht entfernt werden.`,sendFailedHint:`Dein Text steht wieder im Feld – drücke Enter, um es erneut zu versuchen.`,providerSwitchFailed:`Anbieter konnte nicht gewechselt werden – der bisherige ist weiter aktiv.`,modelSwitchFailed:`Modell konnte nicht gewechselt werden – das bisherige ist weiter aktiv.`,effortSwitchFailed:`Aufwand konnte nicht geändert werden – der bisherige ist weiter aktiv.`},ke={ariaLabel:`Nachricht an den Agenten`,dropFiles:`Dateien zum Anhängen ablegen`,uploading:`Wird hochgeladen…`},Ae={ariaLabel:`Missionsunterhaltung`,agentWorking:`Der Agent arbeitet…`,agentReplied:`Der Agent hat geantwortet`,newMessages:`Neue Nachrichten`},je={you:`Du`,agent:`Agent`},Me={groupLabel:`Vorgeschlagene Antworten`,shortcut:`Alt+{{n}}`},Ne=`Kopiert`,Pe=`Code kopieren`,Fe=`Antworten oder mit @ verweisen…`,Ie=`Senden (Enter) · Neue Zeile (Umschalt+Enter)`,Le=`Rückgängig`,Re=`Dieser Anbieter kann noch keine Bilder lesen – {{count}} Bilder wurden nicht angehängt`,ze={reference:`Auf eine Spec verweisen`,action:`Eine Aktion ausführen`,plan:`Eine neue Spec planen`,planSpec:`Hilf mir, eine neue Spec zu planen: `},Be=`⇧⇥ ändert, was der Agent darf · ↑ holt deinen letzten Prompt zurück`,Ve={arrived:`Zur Prüfung angekommen — PR #{{number}}`,arrivedNoNumber:`Zur Prüfung angekommen`,openPr:`PR öffnen`},He={greeting:`Was soll als Nächstes in {{project}} ausgeliefert werden?`,greetingNoProject:`Was soll als Nächstes ausgeliefert werden?`,statusTodo_one:`{{count}} offen`,statusTodo_other:`{{count}} offen`,statusReview_one:`{{count}} wartet auf Review`,statusReview_other:`{{count}} warten auf Review`,statusRunning_one:`{{count}} läuft`,statusRunning_other:`{{count}} laufen`},Ue={title:e,subtitle:t,trigger:n,composerPlaceholder:r,send:i,stop:a,copy:o,attachment:s,maximize:c,restore:l,minimize:u,close:d,newConversation:f,emptyTitle:p,emptyHint:m,thinking:h,connecting:g,consultingCode:_,size:v,model:y,history:b,queue:x,receipt:S,queueEdit:C,git:w,provider:T,tier:E,approval:D,project:O,palette:k,mission:A,noProvider:j,degraded:M,toolCard:N,error:P,chip:F,newAgent:I,switchToAgent:L,switchToKanban:R,search:z,home:B,favoriteMissions:V,untitled:H,workspace:U,attachFile:W,deleteConversation:G,confirmDeleteConversation:K,addFavoriteConversation:q,removeFavoriteConversation:J,confirmShort:Y,imagesUnsupported:X,effort:Z,prCard:Q,specDraft:$,problemFrame:ee,refs:te,header:ne,emptyTitleCodeRain:re,activity:ie,backgroundProcess:ae,window:oe,railCard:se,runCard:ce,runFailure:le,split:ue,runtimeSelector:de,missionPlaceholders:fe,subagents:pe,sessionNotice:me,cardPending:he,interrupt:ge,flow:_e,flowReturn:ve,turnErrors:ye,flowDelivered:be,runStrip:xe,flowBoundary:Se,unread:Ce,unreadCount:we,live:Te,deleteFailed:Ee,modeSwitch:De,errors:Oe,composer:ke,conversation:Ae,message:je,options:Me,copied:Ne,copyCode:Pe,composerReplyPlaceholder:Fe,sendHint:Ie,undo:Le,imagesUnsupportedCount:Re,starter:ze,emptyLegend:Be,delivery:Ve,missionHome:He};export{ie as activity,q as addFavoriteConversation,D as approval,W as attachFile,s as attachment,ae as backgroundProcess,he as cardPending,F as chip,d as close,ke as composer,r as composerPlaceholder,Fe as composerReplyPlaceholder,K as confirmDeleteConversation,Y as confirmShort,g as connecting,_ as consultingCode,Ae as conversation,Ne as copied,o as copy,Pe as copyCode,Ue as default,M as degraded,G as deleteConversation,Ee as deleteFailed,Ve as delivery,Z as effort,m as emptyHint,Be as emptyLegend,p as emptyTitle,re as emptyTitleCodeRain,P as error,Oe as errors,V as favoriteMissions,_e as flow,Se as flowBoundary,be as flowDelivered,ve as flowReturn,w as git,ne as header,b as history,B as home,X as imagesUnsupported,Re as imagesUnsupportedCount,ge as interrupt,Te as live,c as maximize,je as message,u as minimize,A as mission,He as missionHome,fe as missionPlaceholders,De as modeSwitch,y as model,I as newAgent,f as newConversation,j as noProvider,Me as options,k as palette,Q as prCard,ee as problemFrame,O as project,T as provider,x as queue,C as queueEdit,se as railCard,S as receipt,te as refs,J as removeFavoriteConversation,l as restore,ce as runCard,le as runFailure,xe as runStrip,de as runtimeSelector,z as search,i as send,Ie as sendHint,me as sessionNotice,v as size,$ as specDraft,ue as split,ze as starter,a as stop,pe as subagents,t as subtitle,L as switchToAgent,R as switchToKanban,h as thinking,E as tier,e as title,N as toolCard,n as trigger,ye as turnErrors,Le as undo,Ce as unread,we as unreadCount,H as untitled,oe as window,U as workspace};
@@ -0,0 +1 @@
1
+ var e=`Control de misiones`,t=`Maneja Specrails conversando`,n=`Control de misiones`,r=`¿Cuál es la misión?`,i=`Enviar`,a=`Detener`,o=`Copiar`,s={openPreview:`Previsualizar {{name}}`,openDownload:`Descargar {{name}}`,previewTitle:`Vista previa de {{name}}`,downloadTitle:`¿Descargar archivo?`,downloadPrompt:`Este archivo no se puede previsualizar aquí. ¿Quieres descargarlo?`,download:`Descargar`,cancelDownload:`Ahora no`,loading:`Preparando archivo…`,loadFailed:`No se pudo cargar el adjunto`,loadError:`No se pudo cargar el adjunto: {{error}}`,remove:`Quitar {{name}}`},c=`Maximizar`,l=`Restaurar`,u=`Minimizar`,d=`Cerrar`,f=`Nueva misión`,p=`¿Cuál es la misión?`,m=`Pregunta lo que quieras sobre este proyecto: el agente puede leer, planificar specs y lanzar rails.`,h=`Pensando…`,g=`Conectando…`,_=`Consultando la app…`,v={compact:`Compacto`,comfortable:`Cómodo`,max:`Maximizar`},y={label:`Modelo`,loading:`Cargando modelos…`,unavailable:`Modelos no disponibles`},b={hint:`Explorando historial de prompts — escribe para editar, ↑↓ para navegar`},x={queued:`En cola`,send:`Poner mensaje en cola`,sendHint:`Se enviará en el siguiente turno. Pulsa «Guiar» en un mensaje de la cola para enviarlo sin interrumpir al modelo.`,placeholder:`Añade un mensaje a la cola…`,delivered:`Entregado al agente`,interrupted:`Entrega no confirmada`,cancelled:`Cancelado antes de entregarse`,steer:`Guiar`,steerHint:`Enviar sin interrumpir al modelo`,steering:`Enviando al agente…`,remove:`Borrar mensaje de la cola`,more:`Opciones del mensaje`,edit:`Editar`,actionConflict:`El mensaje ya se está entregando o ha salido de la cola.`,actionFailed:`No se ha podido actualizar el mensaje de la cola. Inténtalo de nuevo.`,removed:`Mensaje en cola eliminado`},S={sent:`Enviado al agente`,received:`Entregado al agente`,read:`Leído por el agente`,interrupted:`Entrega no confirmada`,cancelled:`Cancelado antes de entregarse`},C={editing:`Editando mensaje pendiente {{n}} de {{m}}`,hint:`↑↓ para navegar · Enter guarda · Esc cancela`,save:`Guardar mensaje pendiente`,cancel:`Cancelar edición`,dispatched:`El mensaje ya se ha entregado; tu texto se conserva como borrador`,saveFailed:`No se pudo guardar el mensaje pendiente`},w={branch:`Rama`,detached:`(desacoplado)`,dirty:`Cambios sin commitear`,switched:`Cambiado a {{branch}}`,switchFailed:`No se pudo cambiar de rama`,lockedWhileWorking:`Rama bloqueada mientras el agente trabaja`,searchPlaceholder:`Buscar ramas…`,noMatches:`Ninguna rama coincide`,worktrees:`Worktrees`,worktreePathCopied:`Ruta del worktree copiada`,copyWorktreePath:`Copiar ruta del worktree`,repository:`Repositorio`,repositoryUnavailable:`Repositorio no disponible`,loadFailed:`Estado Git no disponible`,notGit:`Carpeta de contexto · sin Git`,retry:`Reintentar`,copyBranch:`Copiar nombre de la rama`,branchCopied:`Nombre de la rama copiado`},T={label:`Proveedor`,claude:`Claude`,codex:`Codex`,gemini:`Gemini`,kimi:`Kimi`},E={cycleHint:`⇧⇥ para cambiar`,observe:{name:`Observa`,desc:`Solo lectura — nada cambia`},edit:{name:`Edita`,desc:`Crear y editar (reversible)`},operate:{name:`Opera`,desc:`Lanzar IA — tiene coste`},autonomous:{name:`Autónomo`,desc:`Borrar y detener — irreversible`},lockedTitle:`Necesita un nivel superior`,lockedBody:`Esa acción necesita el nivel «{{level}}». Estás en «{{current}}».`,raiseHint:`⇧⇥ para subir el nivel, o pídelo de otra forma.`,confirmAutonomous:`Cambiar a Autónomo`,autonomousWarning:`El modo Autónomo puede eliminar y terminar procesos.`,skipAutonomousHint:`Pulsa ⇧⇥ otra vez para volver a «Observa».`},D={title:`Confirmar acción`,costAction:`{{action}} · ~{{cost}} · {{tier}}`,approve:`Aprobar`,cancel:`Cancelar`,dontAskAgain:`No volver a preguntar en esta sesión`,approved:`Aprobado`,cancelled:`Cancelado`},O={home:`Inicio`,searchPlaceholder:`Habla con Specrails…`,searchProjectsPlaceholder:`Buscar proyectos…`,recents:`Recientes`,allProjects:`Todos los proyectos`,searchAll:`Buscar en todos los proyectos`,addProject:`Añadir proyecto…`,homeHint:`Ningún proyecto seleccionado — operando en todos los proyectos.`,askCreateOrSearch:`No hay ningún proyecto seleccionado. ¿Quieres crear un proyecto nuevo o buscar en todos los proyectos?`},k={remove:`Quitar {{label}}`,addContextAction:`Añadir contexto o acción`,filtering:`Filtrando "{{query}}"`,keyboard:`↑↓ Enter Esc`,noMatches:`Sin resultados`,noMatchesFor:`Sin resultados para "{{query}}"`,mode:{reference:{title:`Referencia`,hint:`@ proyectos, specs, misiones`},trace:{title:`Traza`,hint:`# trabajos, ejecuciones, IDs`},action:{title:`Acción`,hint:`/ comandos para este contexto`}},plus:{reference:`Referencia`,referenceHint:`Proyectos, specs, misiones`,trace:`Traza`,traceHint:`Trabajos, ejecuciones, IDs`,action:`Acción`,actionHint:`Crear, lanzar, inspeccionar`,fileAttachment:`Archivo adjunto`,fileAttachmentHint:`Añadir docs, imágenes, logs`,browserCapture:`Captura del navegador`,browserCaptureHint:`Captura una zona de una página para esta misión`},railGroup:`Rails`,railGroupInUse:`Rails en uso`},A={label:`Cambiar de misión`,untitled:`Nueva misión`,new:`Nueva misión`,searchPlaceholder:`Buscar misiones…`,noMatches:`Ninguna misión coincide`,working:`El agente está trabajando`,queuedBadge:`{{n}} en cola`,delete:`Eliminar misión "{{title}}"`,deleteConfirm:`¿Eliminar?`,deleteLiveConfirm:`El agente está trabajando. ¿Eliminar igualmente?`,confirmDelete:`Confirmar eliminación`,cancelDelete:`Conservar misión`,deleteFailed:`No se pudo eliminar la misión`},j={title:`No hay ningún proveedor de IA instalado`,body:`El agente necesita un proveedor de IA (Claude, Codex, Gemini o un motor local). Instala o conecta uno y vuelve a abrir el agente.`,placeholder:`Conecta un proveedor de IA para usar el agente…`},M={title:`El MCP de Specrails está apagado`,body:`El agente necesita el servidor MCP integrado para manejar la app.`,enable:`Activar el MCP de Specrails`,enabling:`Activando…`,enabled:`MCP activado`},N={live:`en vivo`,queued:`en cola`,running:`en curso`,done:`hecho`,failed:`fallido`},P={generic:`Algo salió mal. Inténtalo de nuevo.`,busy:`El agente está ocupado. Inténtalo de nuevo en un momento.`},F={kindAgent:`Misión del agente`},I=`Nueva misión`,L=`Cambiar a Control de misiones`,R=`Cambiar al tablero`,z=`Buscar`,B=`Misiones sin asignar`,V=`Misiones favoritas`,H=`Sin título`,U={title:`En el workspace`,terminal:`Terminal`,files:`Archivos`,browser:`Navegador`,requiresProject:`Selecciona un proyecto para usar esta herramienta`,resizeCode:`Redimensionar panel de código`,closeFiles:`Cerrar código`,browserConfirm:`Añadir al agente`,browserSelectStart:`Seleccionar para añadir a la misión`,browserCaptured:`Captura añadida`,uploadFailed:`Error al subir`,requiresConversation:`Inicia una misión para usar esta herramienta`,jobs:`Trabajos`,closeJobs:`Cerrar trabajos`,resizeJobs:`Redimensionar panel de trabajos`,noJobs:`Aún no hay trabajos — pide al agente que lance uno`,analytics:`Analítica`,closeAnalytics:`Cerrar analítica`,resizeAnalytics:`Redimensionar panel de analítica`},W=`Adjuntar archivo`,G=`Borrar «{{title}}»`,K=`Confirmar borrado de «{{title}}»`,q=`Añadir «{{title}}» a favoritas`,J=`Quitar «{{title}}» de favoritas`,Y=`¿Eliminar?`,X=`Este proveedor aún no lee imágenes. Adjunta archivos de texto`,Z={label:`Esfuerzo`,minimal:`Mínimo`,low:`Bajo`,medium:`Medio`,high:`Alto`,xhigh:`Extra alto`,max:`Máximo`,ultra:`Ultra`},Q=JSON.parse(`{"operation":{"inProgress":"Acción en curso…","create-pr":"Creando PR…","publish":"Publicando…","discard":"Descartando…","dismiss":"Cerrando seguimiento…","poll-merge":"Comprobando merge…","reopen":"Reabriendo…","merge-local":"Integrando en local…","recover-and-retry":"Creando el commit y reintentando el push del resultado conservado…","acknowledge-no-changes":"Marcando como hecho…"},"rail":"Rail {{index}}","specCount_one":"{{count}} spec","specCount_other":"{{count}} specs","base":"Rama base","openPr":"Abrir PR","existingPr":"PR existente","title":{"building":"Implementando en un worktree aislado…","buildingInPlace":"Implementando en la carpeta del proyecto…","buildingExistingPr":"Aplicando cambios sobre una PR existente…","paused":"Necesita decisión humana","on_review":"Implementación lista para revisar","pr_draft":"PR en borrador creada","pr_draft_degraded":"Entrega de la PR incompleta","pr_ready":"PR lista para el merge","no_changes":"No hacían falta cambios","partial":"Implementación parcial","delivery_blocked":"Implementación completa: la entrega requiere atención","update_failed":"Implementación completa: falló la actualización","pr_closed":"PR cerrada sin merge","superseded":"Sustituida por una ejecución más reciente","existing_pr_updated":"PR existente actualizada","implementation_failed":"La implementación ha fallado","pr_failed":"No se pudo crear la PR","merged":"Merge de la PR completado","discarded":"Descartada","review_changes_requested":"El revisor solicitó cambios","returned_to_flow":"De vuelta en Flow","flowSpecChanges":"Aún no está listo: el revisor pidió cambios","flowSpecDelivered":"Tu Flow ya es un PR revisado","flowSpecFailed":"El paso a un rail se detuvo","flowSpecBuilding":"Convirtiendo tu Flow en un PR revisado"},"buildingHint":"Cuando termine, se te preguntará si crear la PR.","buildingExistingPrHint":"Specrails está trabajando sobre la rama de la PR existente y subirá los cambios de revisión a esa misma PR.","paused":"Implementación pausada","pausedForRun":"Pausada en {{ref}}","resume":"Reanudar","stopExecution":"Detener ejecución","stopExecutionSent":"Señal de parada enviada","stopExecutionFailed":"No se pudo parar la ejecución","partialSummary":"{{succeeded}} de {{total}} completadas; {{failed}} fallidas","unit":{"failed":"implementación fallida","blocked":"entrega bloqueada","noChanges":"sin cambios","succeeded":"lista"},"createPr":"Crear PR","publish":"Publicar","checkout":"Cambiar a la rama","openReview":"Revisar","openReviewTooltip":"Abrir la revisión en lenguaje claro","checkoutTooltip":"Cambia la carpeta principal del proyecto a {{branch}}","checkoutSuccess":"Checkout en {{branch}}","checkoutFailed":"No se pudo hacer checkout de la rama de implementación","checkoutDirtyTitle":"Checkout bloqueado para proteger tus cambios","checkoutDirtyBody":"La carpeta principal del proyecto tiene cambios sin commitear. Haz commit o stash y vuelve a intentarlo. No se ha modificado nada.","checkoutSafetyUnknownTitle":"Checkout pausado porque no se pudo verificar la seguridad","checkoutSafetyUnknownBody":"Specrails no pudo leer el estado de Git de la carpeta principal del proyecto. No se ha liberado ni modificado nada. Vuelve a intentarlo cuando Git esté disponible.","checkoutNotDeliverableTitle":"Esta rama no contiene la implementación conservada","checkoutNotDeliverableBody":"Todavía no se ha verificado el commit exacto de la entrega. Inspecciona o recupera el resultado local.","inspectLocalResult":"Inspeccionar resultado local","inspectLocalResultTooltip":"Muestra el worktree aislado que se ha conservado y copia su ruta","localResultPathCopied":"Ruta del resultado local copiada","localResultPath":"Resultado local conservado","localResultUnavailableHere":"No hay ningún worktree recuperable en este equipo. Revisa el registro de ejecución desde el equipo donde se ejecutó.","recoverAndRetry":"Crear commit y reintentar push","recoverAndRetryVerified":"El commit recuperado {{sha}} está verificado en la PR","recoveryStillBlocked":"La recuperación local aún requiere atención","recheckRecovery":"Comprobar de nuevo","recoveryUnavailable":"No se pudo verificar la recuperación en este equipo","recoveryUnavailableBody":"Specrails no pudo demostrar de forma segura un único resultado perteneciente a la entrega en este clon. No se ha cambiado ni eliminado nada. Revisa el detalle de la fase y los registros de ejecución. Si se ejecutó en otro equipo, abre Specrails allí y vuelve a comprobar.","recoveryDetailSummary":"Detalle técnico de recuperación","retry":"Reintentar","retryPr":"Reintentar PR","checkMerge":"Comprobar merge","verifyPr":"Verificar PR","discard":"Descartar","dismiss":"Cerrar seguimiento","discardLocalResult":"Descartar resultado local","markDone":"Marcar como hecho","refine":"Refinar","retryPush":"Reintentar push","retryPushVerified":"Push verificado · el commit {{sha}} está en la PR","commitAlreadyVerified":"El commit {{sha}} ya está verificado en la PR","deliveryCommit":"commit {{sha}}","reopen":"Reabrir","createPartialPr":"Crear PR con {{count}}","confirmDiscard":"¿Confirmar descarte?","mergedNote":"Merge completado. Las specs han pasado a Hecho","discardedNote":"Descartada. Las specs han vuelto al backlog","supersededNote":"Una ejecución de implementación más reciente sustituyó esta tarjeta.","completedNote":"Confirmado. Las specs han pasado a Hecho","noChangesExisting":"No hacían falta cambios nuevos; la PR existente no se ha modificado.","noChangesNote":"No hacían falta cambios de código. Marca las specs como hechas o devuélvelas al backlog para refinarlas.","deliveryNeedsAttention":"Implementación completa; la entrega requiere atención","deliveryBlockedNote":"La implementación terminó correctamente, pero la entrega está bloqueada. Revisa la etapa y los registros antes de descartar el resultado local.","partialDeliveryBlockedNote":"Parte de la implementación terminó correctamente, pero todavía no hay nada que se pueda entregar de forma segura. Revisa la evidencia por unidad y los registros antes de elegir la siguiente acción.","retryPushNote":"La implementación terminó correctamente y los cambios están seguros en local. Reintenta solo el push.","cleanupIncomplete_one":"La limpieza está incompleta ({{count}} aviso)","cleanupIncomplete_other":"La limpieza está incompleta ({{count}} avisos)","safetyArchiveTitle":"Archivo de seguridad ({{count}})","safetyArchiveHint":"Se han conservado archivos temporales del espacio de trabajo fuera de la PR como medida de precaución. Puedes revisarlos o eliminarlos manualmente.","implementationFailedNote":"La ejecución de implementación falló antes de generar algo entregable. Abre el log de la ejecución para revisar el fallo y descarta esta card antes de relanzar.","degraded":{"pushed":"La rama se subió pero no se pudo crear la PR. Reintenta para terminar.","localOnly":"Los cambios se ensamblaron en local pero no se subieron. Reintenta para publicar la PR."},"alreadyResolved":"Ya resuelta en otro sitio","actionFailed":"La acción falló","notMergedYet":"Aún sin merge","commitMissingRetry":"El commit de la entrega ya no está en la PR. Puedes reintentar el push.","prVerifiedWaiting":"Commit {{sha}} verificado · pendiente de merge","viewLog":"Ver el registro de ejecución de {{ref}}","runElapsedAria":"{{elapsed}} transcurridos","runCostAria":"{{cost}} gastados","focusRegion":"Tarjeta de implementación · {{rail}} {{tickets}}","pinned":{"state":{"building":"En curso","on_review":"Revisión","pr_draft":"PR borrador","pr_ready":"Publicada","no_changes":"Sin cambios","completed":"Completada","pr_closed":"Cerrada","superseded":"Sustituida","implementation_failed":"Fallida","pr_failed":"Fallida","merged":"Fusionada","discarded":"Descartada"}},"mergeLocal":"Integrar en local","mergeLocalTooltip":"Fusiona las ramas entregadas en {{base}} en tu checkout local (sin necesidad de GitHub)","mergeLocalBlockedDirty":"No se puede integrar: los cambios locales en {{base}} se solapan con la entrega. Haz commit o stash de esos cambios y reintenta.","mergeLocalBlockedBranch":"No se puede integrar: tu checkout está en {{current}}, no en {{base}}. Cambia a {{base}} y reintenta.","mergedLocally":"Integrado en {{base}} en local","confirm":{"mergeLocalTitle":"¿Integrar en local?","mergeLocalBody":"Las ramas entregadas se fusionarán en {{base}} localmente. Se conservan los cambios existentes; si se solapan, puede ser necesario resolverlos antes de integrar.","recoverAndRetryTitle":"¿Crear el commit y subir el resultado conservado?","recoverAndRetryBody":"Specrails solo usará el worktree aislado o la rama registrada con avance rápido para {{branch}}. Si hace falta, creará un commit con los archivos entregables y subirá ese commit exacto únicamente si la PR sigue abierta sobre las ramas de origen y destino esperadas. La carpeta principal del proyecto y sus cambios sin commitear no se tocarán.","recheckRecoveryTitle":"¿Volver a comprobar este equipo?","recheckRecoveryBody":"Comprobaremos si aún se puede recuperar algo de esta entrega. No se borra nada.","freshDiscardTitle":"¿Descartar esta entrega?","freshDiscardBody":"La PR se cerrará sin eliminar su rama remota. Solo se eliminarán las ramas y los worktrees locales que pertenezcan a SpecRails y sigan en su commit registrado; cualquier recurso modificado se conservará y se mostrará un aviso. Las specs volverán al backlog. Los recursos locales eliminados no se pueden recuperar.","implementationFailedDiscardTitle":"¿Descartar esta entrega fallida?","implementationFailedDiscardBody":"Se cerrará la tarjeta y sus specs volverán al backlog. El trabajo local y las ramas se conservarán para su inspección. Solo se podrán eliminar los recursos cuya limpieza sea segura.","dismissTitle":"¿Cerrar este seguimiento?","dismissBody":"Se cerrará esta tarjeta de seguimiento. Su worktree solo se eliminará si sigue siendo seguro hacerlo; de lo contrario, se conservará y verás un aviso. La PR existente, su rama y su estado de revisión no cambiarán.","discardLocalTitle":"¿Descartar el resultado local?","discardLocalBody":"La iteración local recuperable solo se eliminará si sigue siendo seguro hacerlo; si ha cambiado, se conservará y verás un aviso. Cualquier PR existente y su rama no cambiarán. Un resultado eliminado no se puede recuperar.","noChangesDoneTitle":"¿Marcar estas specs como hechas?","noChangesDoneBody":"La implementación confirmó que no hacen falta cambios de código. Las specs pasarán a Hecho y se limpiará el worktree sin cambios.","refineTitle":"¿Refinar estas specs?","refineBody":"Se cerrará el resultado sin cambios y las specs volverán al backlog para que puedas refinarlas. Los registros de ejecución seguirán disponibles.","recheckRecoveryTechnical":"Specrails volverá a examinar en este clon el worktree, la rama, las refs, los reflogs y los objetos Git huérfanos pertenecientes a la entrega de {{branch}}. Si demuestra un único resultado, podrá confirmar los cambios aislados y reintentar el push exacto. No tocará la carpeta principal del proyecto."},"discardStackedNote":"Los rails posteriores de este hito se construyeron sobre esta entrega. Descartarla pausa la cadena del hito; los rails posteriores conservan su trabajo.","resumeFromStep":"Reanudar desde {{step}}","resumeFromStepHint":"El paso {{step}} interrumpido se vuelve a ejecutar desde el principio; se conserva el trabajo ya guardado en disco.","retryDelivery":"Reintentar la entrega","retryDeliveryHint":"Repite solo el paso final (commit, push y PR) sobre la rama de esta ejecución. No se rehace trabajo de IA.","retryDeliverySent":"Reintentando la entrega…","retryDeliveryFailed":"No se pudo reintentar la entrega","mergedLocallyRestored":"Guardé tus cambios locales, integré {{tickets}} y los restauré.","mergedLocallyStashConflict":"Integrado {{tickets}}. Tus cambios locales están a salvo en un stash; Specrails los está restaurando en una rama aparte.","mergedLocallyStashKept":"Integrado {{tickets}}. Tus cambios locales están a salvo en un stash; restáuralos cuando quieras.","localStash":{"title":"Tus cambios locales están guardados en un stash","conflictBody":"Al volver a aplicarlos sobre el resultado integrado hubo conflictos, así que {{branch}} quedó exactamente como se integró. Restáuralos para intentarlo de nuevo en una rama aparte.","savedBody":"Todavía no se han restaurado. Restáuralos con {{branch}} en tu checkout.","files":"Archivos en conflicto","restore":"Restaurar mis cambios","restoring":"Restaurando…","copy":"Copiar nombre del stash","copied":"Nombre del stash copiado","restoredToast":"Tus cambios locales vuelven a estar en {{branch}}.","stillConflicting":"Tus cambios locales siguen en conflicto con {{branch}}; continúan a salvo en el stash.","released":"Ese stash ya no existe, así que no queda nada por restaurar.","blockedBranch":"Cambia primero a {{base}} (estás en {{current}}) y después restaura.","blockedDirty":"Algunos de esos archivos han vuelto a cambiar desde que se guardaron. Haz commit o mueve esas ediciones y después restaura.","failed":"No se pudieron restaurar tus cambios locales","restoringBody":"Al volver a aplicarlos sobre el resultado integrado hubo conflictos, así que {{branch}} quedó exactamente como se integró. Specrails los está restaurando en {{restoreBranch}}, en un worktree aparte, y resolviendo allí los conflictos.","readyBodyClean":"Tus cambios están restaurados y confirmados en {{restoreBranch}}; allí se aplicaron sin conflictos. Revísalos y tráelos de vuelta a {{branch}}.","readyBodyResolved":"Tus cambios están restaurados y confirmados en {{restoreBranch}}, con los conflictos resueltos automáticamente. Revísalos y tráelos de vuelta a {{branch}}.","failedBody":"Specrails no pudo terminar de restaurarlos en {{restoreBranch}}. Siguen a salvo en el stash; descarta esa rama o restáuralos de nuevo.","restoredFiles":"Restaurado en {{restoreBranch}}","binary":"binario","managedNote":"Los archivos generados que gestiona Specrails conservaron la versión integrada: {{files}}","bringBack":"Traerlos de vuelta a {{branch}}","bringingBack":"Trayendo de vuelta…","discardBranch":"Descartar la rama restaurada","discarding":"Descartando…","broughtBackToast":"Tus cambios locales están de vuelta en {{branch}}.","discardedToast":"Rama restaurada descartada. Tus cambios siguen a salvo en el stash.","blockedBringBack":"No se pudieron traer los cambios de vuelta a {{branch}} de forma segura.","notReady":"La rama restaurada aún no está lista."},"failed":{"createPr":"No se pudo crear el PR","mergeLocal":"No se pudo integrar en local","discard":"No se pudo descartar el resultado","publish":"No se pudo publicar el PR","generic":"La entrega se detuvo. Mira los detalles técnicos."},"moreActions":"Más acciones"}`),$={heading:`Borrador de spec`,drafting:`Actualizando borrador…`,acceptanceCriteria:`Criterios de aceptación`,untitled:`Spec sin título`,expand:`Ver descripción completa`,collapse:`Contraer descripción`},ee={heading:`Marco`,framing:`Enmarcando la petición…`,restated:`Lo que he entendido`,alternative:`También podría significar`,pick:`Responder con esto`,touches:`Tocaría`,discriminator:`¿Cuál de las dos?`,assumptions:`Lo que doy por supuesto`,unknowns:`Sigue abierto`},te={openTicket:`Abrir spec #{{id}}`,openPullRequest:`Abrir PR #{{id}}`,openJob:`Abrir trabajo {{id}}`,openLoop:`Abrir loop {{id}}`,ticketNotFound:`Spec #{{id}} no encontrada. Puede haber sido eliminada`,pullRequestUrlMissing:`La PR #{{id}} se mencionó sin URL`,pullRequestNotFound:`No se pudo encontrar la PR #{{id}} en este proyecto`,jobNotFound:`Trabajo no encontrado. Puede haber sido eliminado`,loopNotFound:`Loop no encontrado. Puede haber sido eliminado`,lookupFailed:`No se pudo verificar la referencia. Inténtalo de nuevo`},ne={untitled:`Misión sin título`,menu:`Menú de la misión`,rename:`Renombrar`,renamePlaceholder:`Nombre de la misión`,renameHint:`Doble clic para renombrar`,renameFailed:`No se pudo renombrar`,addFavorite:`Añadir a favoritas`,removeFavorite:`Quitar de favoritas`,copyName:`Copiar nombre de la misión`,copyId:`Copiar ID de la misión`,copyProject:`Copiar nombre del proyecto`,copyProjectPath:`Copiar ruta del proyecto`,copyFailed:`No se pudo copiar`,copyTranscript:`Copiar transcripción`,copyTranscriptSuccess:`Transcripción copiada`,copyTranscriptFailed:`No se pudo copiar la transcripción`,exportTranscript:`Exportar transcripción (.txt)`,exportTranscriptSuccess:`Exportación de transcripción iniciada`,exportTranscriptFailed:`No se pudo exportar la transcripción`,delete:`Borrar misión`,deleteConfirm:`¿Borrar esta misión? No se puede deshacer.`,deleteFailed:`No se pudo borrar la misión`},re=`¿Qué construimos ahora?`,ie={title:`Log de ejecución`,live:`En vivo`,empty:`Aún no hay actividad de herramientas en este turno.`,output:`Salida`,error:`Error`,copyAll:`Copiar log completo`,copyEntry:`Copiar entrada`,copySuccess:`Log copiado al portapapeles`,copyFailed:`No se pudo copiar el log`,openLog:`Ver log de ejecución`,close:`Cerrar`,tool:{terminal:`Terminal`,reading:`Leyendo`,searching:`Buscando`,editing:`Editando`,web:`Web`,agent:`Agente`,agentNamed:`Agente · {{description}}`,mcp:`MCP · {{name}}`,mcpTool:`Herramienta MCP`}},ae={open:`Ver logs de {{command}}`,logsTitle:`Logs del proceso`,logsDescription:`Salida en directo e historial guardado del proceso.`,close:`Cerrar logs`,command:`Comando`,directory:`Directorio`,exitCode:`Código de salida: {{code}}`,signal:`Señal: {{signal}}`,search:`Buscar en logs…`,source:`Origen de la salida`,allSources:`Toda la salida`,pause:`Pausar`,resume:`Reanudar`,follow:`Seguir`,copy:`Copiar logs visibles`,download:`Descargar logs visibles`,stop:`Detener proceso`,stopCommand:`Detener {{command}}`,stopFailed:`No se pudo detener el proceso. Inténtalo de nuevo.`,truncated:`Se muestra una ventana limitada de logs. Puede faltar salida anterior o parte de líneas largas. Copiar y descargar incluyen sólo esta vista.`,paused:`Vista pausada. El proceso sigue funcionando.`,loadFailed:`No se pudieron cargar los logs. Puede haber vencido su retención; se conserva la salida ya cargada.`,retry:`Reintentar`,copied:`Logs visibles copiados.`,exportFailed:`No se pudieron exportar los logs. Inténtalo de nuevo.`,output:`Salida del proceso`,loading:`Cargando logs…`,noMatches:`No hay salida que coincida.`,empty:`Todavía no hay salida.`,lineCount:`{{count}} de {{total}} líneas`,exportHint:`La exportación incluye sólo el filtro actual y la salida conservada.`,status:{starting:`Iniciando`,running:`En ejecución`,stopping:`Deteniendo`,exited:`Finalizado`,killed:`Detenido`,failed:`Fallido`,interrupted:`Desconectado`},repository:`Repositorio`,history:{button:`Procesos`,title:`Procesos de la misión`,open:`Ver historial de procesos`,description:`Consulta procesos activos y logs guardados de ejecuciones anteriores.`,search:`Buscar por comando o repositorio…`,refresh:`Actualizar historial`,close:`Cerrar historial de procesos`,back:`Volver a procesos`,loading:`Cargando historial de procesos…`,empty:`Todavía no hay procesos registrados en esta misión.`,noMatches:`No hay procesos que coincidan.`,loadFailed:`No se pudo cargar el historial. Las entradas ya cargadas siguen disponibles.`,showMore:`Mostrar más`,count:`Procesos: {{count}}`},interruptedHint:`Specrails dejó de supervisar este proceso. Su estado en el sistema operativo es desconocido; los logs guardados siguen disponibles.`,persistenceFailed:`No se pudo guardar el historial del proceso. La salida disponible sigue visible.`,appUrls:{title:`Direcciones de la app`,local:`Este ordenador`,network:`Tu red`,open:`Abrir {{url}} en el navegador`,copy:`Copiar {{url}}`,localOnly:`Solo accesible desde este ordenador. Para abrirla desde el móvil en la misma wifi, pide al agente que la relance expuesta en tu red local.`}},oe={detach:`Abrir en otra ventana`,attach:`Volver a la ventana principal`,detached:`Esta misión está abierta en otra ventana.`,focus:`Mostrar ventana de la misión`,loading:`Moviendo misión…`,failed:`No se ha podido mover la misión. Tu borrador se conserva.`,dismiss:`Cerrar aviso`,wrongMission:`Abre esta misión antes de moverla.`,finishPending:`Termina la operación en curso o guarda o cancela el mensaje o la captura antes de mover la misión.`},se={heading:`Lanzamiento de rail`,rail:`Rail {{index}}`,newRail:`Nuevo rail`,play:`Lanzar`,launching:`Lanzando…`,dismiss:`Descartar`,playHint:`Ajusta lo que quieras y pulsa Lanzar para lanzar bajo tu propia autoridad.`,pending:`Preparando una propuesta de lanzamiento…`,unreadable_one:`No se pudo leer la propuesta de lanzamiento del agente.`,unreadable_other:`No se pudieron leer {{count}} propuestas de lanzamiento.`,effortDefault:`Esfuerzo por defecto`,profileNone:`Sin perfil`,status:{proposal:`Propuesta`,ready:`Listo`,blocked:`Requiere atención`,loading:`Comprobando…`},availability:{free:`libre`,busy:`en ejecución`,pending_decision:`esperando una decisión`,on_review:`en revisión`},fields:{rail:`Rail`,newRailName:`Nombre del nuevo rail (opcional)`,railName:`Nombre del rail`,addSpec:`Añadir spec`,removeSpec:`Quitar #{{id}}`,loop:`Loop`,engine:`Motor de IA`,model:`Modelo`,effort:`Esfuerzo de razonamiento`,profile:`Perfil de agentes`,targetPr:`PR de destino #`,baseBranch:`Rama base`},notes:{railMissing:`El Rail {{index}} ya no existe. Elige otro rail o crea uno.`,railBusy:`El Rail {{index}} está {{state}}, así que no se puede lanzar ahí.`,useFree:`Usar el Rail {{index}}`,specsDropped:`Ya no están en este proyecto: {{ids}}`,engineStale:`{{engine}} no se detecta en este equipo. Se usará {{fallback}}.`,modelStale:`{{model}} no está disponible. Se usará {{fallback}}.`},block:{noProject:`Esta misión no está fijada a ningún proyecto.`,loadFailed:`No se pudieron cargar los rails, specs o repositorios del proyecto.`,noSpecs:`Añade al menos una spec para lanzar.`,railLimit:`Ya existen los {{max}} rails y ninguno está libre.`},errors:{tickets_in_flight:`Una de estas specs ya se está ejecutando en otro rail.`,pr_decision_pending:`Este rail está esperando una decisión sobre la PR.`,rail_limit_reached:`El proyecto ya tiene el número máximo de rails.`,invalid_base_branch:`Esa rama base no existe en local.`,base_branch_requires_isolation:`Una rama base requiere aislamiento por worktree (un repositorio git con commits).`,target_pr_requires_pr_mode:`Una PR de destino requiere aislamiento por worktree (un repositorio git con commits).`,invalid_response:`Respuesta inesperada del servidor.`,scope_save_failed:`No se pudieron guardar los repositorios de la spec.`,repository_scope_incomplete:`Falta un repositorio necesario para las specs. Revisa las asignaciones de arriba.`,rail_not_empty:`Ese rail ya tiene specs`,flow_freeze_failed:`Los cambios de tu Flow no se pudieron guardar para pasarlo a un rail`,flow_head_mismatch:`Tu Flow cambió mientras se pasaba a un rail. Inténtalo de nuevo`,flow_already_handed_off:`Este Flow ya se pasó a un rail`,flow_handoff_not_adopted:`El rail arrancó sin hacerse cargo de los cambios de tu Flow`,illegal_transition:`El Flow cambió de estado mientras tanto`,feature_unavailable:`Flow no está disponible`,daily_budget_exceeded:`Límite diario alcanzado: no se lanzó nada.`,review_wip_limit_reached:`Límite de revisión alcanzado: no se ha lanzado nada.`,repository_has_no_commits:`Este repositorio aún no tiene commits. Haz un primer commit para que Specrails pueda crear una copia aislada del proyecto.`},stub:{launched:`Lanzado → Rail {{rail}}`,dismissed:`Propuesta descartada`,viewRun:`Ver ejecución`,goToCard:`Ir a la tarjeta`,goToCardTitle:`Ir a la tarjeta de implementación de este lanzamiento`,viewRunTitle:`Abrir el log en vivo de la ejecución`},followUp:{title:`Resolver {{count}} comentario(s) de revisión de la PR`,excluded:`No cambiar`,verification:`Verificar`,specUntouched:`La spec y su descripción en Jira no se editan: el alcance viaja con la ejecución.`,source:{pasted:`pegado`,github:`de GitHub`}},addenda:{rides_one:`{{count}} anexo abierto viaja con este lanzamiento:`,rides_other:`{{count}} anexos abiertos viajan con este lanzamiento:`},repositories:{launch:`Repositorios para este lanzamiento`,launchHint:`Incluye los repositorios necesarios para las specs. Puedes añadir otros repositorios del proyecto.`,assignments:`Asignados a cada spec`,edit:`Editar`,editSpec:`Editar repositorios de #{{id}}`,spec:`Repositorios de la spec #{{id}}`,saveHint:`Al guardar se actualizan los repositorios de esta spec también para futuros lanzamientos.`,save:`Guardar repositorios`,cancel:`Cancelar`,finishEditing:`Guarda o cancela la edición de repositorios antes de lanzar.`,missing:`Faltan repositorios necesarios: {{names}}. Inclúyelos arriba o edita la asignación de la spec si han cambiado sus destinos.`,unavailable:`Los repositorios seleccionados no están disponibles para implementar: {{names}}. Actualiza la selección o la asignación de las specs.`,refresh:`Actualizar`,retry:`Reintentar carga`,checkScope:`Revisa la selección de repositorios antes de lanzar.`},triageLabel:`Triaje`,handOff:{newRail:`Un rail nuevo`,changeHow:`Cambiar cómo`}},ce={status:{running:`En ejecución`,paused:`En pausa`,succeeded:`Completado`,failed:`Fallido`,stalled:`Estancado`,cancelled:`Cancelado`,unknown:`Desconocido`,changes_requested:`Cambios solicitados`,returned:`De vuelta en Flow`},title:{running:`Implementando en el checkout del proyecto…`,paused:`Requiere una decisión humana`,succeeded:`Implementación terminada`,failed:`La implementación ha fallado`,stalled:`La implementación se ha estancado`,cancelled:`Ejecución cancelada`,unknown:`Estado de la ejecución desconocido`,changes_requested:`El revisor solicitó cambios`,returned:`De vuelta en Flow`},noDeliveryNote:`Sin fase de PR: este proyecto no tiene repositorio git ni commits, así que el trabajo se ha aplicado directamente en la carpeta del proyecto.`,noDeliveryHint:`Ejecutando directamente en la carpeta del proyecto (sin repositorio git ni commits, así que no se propondrá ninguna PR).`,failure:{title:`Por qué se detuvo`,step:`paso {{step}}`,unit:`#{{ticket}} · {{code}}`},actions:{resume:`Reanudar`,approve:`Aprobar`,recover:`Recuperar y reintentar`,relaunch:`Relanzar`},relaunchSent:`Rail {{index}} relanzado. Una nueva tarjeta seguirá la ejecución.`,relaunchFailed:`No se pudo relanzar el rail`,relaunchBlockedActive:`El rail todavía tiene una ejecución activa`,review:{title:{review:`El revisor solicitó cambios`,check:`Las comprobaciones siguen fallando`},score:`puntuación {{score}}`,issues_one:`{{count}} punto`,issues_other:`{{count}} puntos`,showAll:`Ver los {{count}}`,showLess:`Ver menos`,omitted_one:`+{{count}} más en la revisión de la ejecución`,omitted_other:`+{{count}} más en la revisión de la ejecución`,failingChecks:`Fallan`,check:`{{command}} · salida {{code}}`,next:`Las rondas de corrección automática no lo resolvieron. Vuelve a Flow para resolverlo con el agente o relanza desde la misma rama de Flow.`,returned:`De vuelta en Flow: tus cambios volvieron a su Flow con la revisión. Sigue en la franja de Flow.`}},le={briefing:{title:`Informe automático del fallo`}},ue={open:`Vista dividida`,menu:`Acciones de conversación`,add:`Añadir conversación en vista dividida`,close:`Cerrar vista dividida`,loadFailed:`No se pudo cargar esta conversación.`,retry:`Reintentar`},de={label:`Modelo y esfuerzo`,resetEffort:`Restablecer esfuerzo`,back:`Volver`},fe={0:`¿Cuál es la misión?`,1:`¿Con qué misión comenzamos?`,2:`¿Qué misión tenemos hoy?`,3:`¿Cuál es nuestra próxima misión?`,4:`¿Qué quieres conseguir en esta misión?`,5:`¿Qué misión ponemos en marcha?`,6:`¿Por dónde empezamos esta misión?`,7:`¿Qué objetivo tendrá esta misión?`,8:`¿Qué construimos en esta misión?`,9:`¿Qué mejoramos con esta misión?`,10:`¿Qué reto abordamos en esta misión?`,11:`¿Cuál es el primer paso de la misión?`,12:`Cuéntame la misión que tienes en mente…`,13:`Describe tu próxima misión…`,14:`Demos forma a tu próxima misión…`,15:`¿Qué debería lograr esta misión?`,16:`¿Qué misión te gustaría completar?`,17:`¿Qué vamos a resolver en esta misión?`,18:`¿Qué hará que esta misión sea un éxito?`,19:`Todo listo para una nueva misión. ¿Empezamos?`},pe={title:`Agentes`,working_one:`{{count}} trabajando`,working_other:`{{count}} trabajando`,done_one:`{{count}} terminado`,done_other:`{{count}} terminados`,ended_one:`{{count}} detenido`,ended_other:`{{count}} detenidos`,phase:{running:`Trabajando`,idle:`Terminado`,failed:`Falló`,stopped:`Detenido`,killed:`Terminado a la fuerza`,interrupted:`Interrumpido`},reason:{user_stop:`detenido por ti`,host_request:`detenido por la app`,restart:`perdido al reiniciar`,shutdown:`app cerrada`,host_lost:`host de agentes perdido`,crashed:`el proceso falló`,stalled:`dejó de responder`,limit:`límite alcanzado`,project_removed:`proyecto eliminado`,evicted:`liberado para ahorrar recursos`,policy:`los sub-agentes están desactivados`},expand:`Ver actividad de {{name}}`,collapse:`Ocultar actividad`,elapsedAria:`En marcha desde hace {{elapsed}}`,loadingActivity:`Cargando actividad…`,noActivity:`Aún sin actividad`,activityFailed:`No se pudo cargar la actividad`,moreActivity:`Cargar más`,tokens:`{{tokens}} tokens`,toolUses_one:`{{count}} llamada a herramienta`,toolUses_other:`{{count}} llamadas a herramientas`,stop:`Detener`,stopOne:`Detener {{name}}`,stopAll:`Detener todos los agentes`,stopFailed:`No se pudieron detener los agentes`,relaunch:`Relanzar`,relaunchHint:`Redacta un mensaje pidiendo al agente que relance este trabajo`,relaunchDraft:`Por favor, relanza el agente en segundo plano para: {{description}}`,continuation:`Continuó tras los agentes en segundo plano`,continuationSystem:`Continuó tras el trabajo en segundo plano`,backgroundTurn:`El agente está revisando los resultados en segundo plano…`,deferred:`El cambio de ajustes se aplicará cuando terminen los agentes en segundo plano.`,applyNow:`Detener agentes y aplicar ya`,policyUnenforceable:`{{provider}} no puede desactivar los sub-agentes. Activa «Permitir sub-agentes» en los ajustes del proyecto o usa otro proveedor para esta misión.`,result:`Resultado`,count_one:`{{count}} agente`,count_other:`{{count}} agentes`,finishedIn:`terminados en {{elapsed}}`,delegatedHint:`Lanzado por Specrails en {{provider}} ({{model}}); su coste se cuenta aparte.`},me={host_degraded:`Las sesiones de Core no están disponibles para este proyecto tras varios fallos, así que este turno usó el transporte clásico (sin sub-agentes en segundo plano). Reintenta cuando se resuelva la causa.`,journal_locked:`Otra instancia de Specrails Desktop está usando las sesiones de agente de este proyecto, así que este turno usó el transporte clásico. Cierra la otra instancia y reintenta.`,policy:{subagent_blocked:`El proveedor lanzó un sub-agente aunque los sub-agentes están desactivados en este proyecto; se ha detenido.`},retry:`Reintentar`,retryFailed:`Sigue sin estar disponible. Revisa el log de la app para ver la causa.`,dismiss:`Descartar`,subagents:{delegation_unsupported:`Los sub-agentes en {{provider}} requieren un Specrails Core más reciente, así que el agente de esta misión lanza los suyos propios.`,driver_unavailable:`{{provider}} no está disponible en el runtime de sesiones, así que el agente de esta misión lanza sus propios sub-agentes.`}},he=`Preparando una tarjeta…`,ge={placeholder:`Escribe para interrumpir: el agente cambia de rumbo al momento`,send:`Interrumpir y enviar`,sendHint:`Detiene el paso actual y le da tu mensaje al agente ahora`},_e=JSON.parse(`{"missing":{"sessions":"Las sesiones de agente de Core están desactivadas o no disponibles","flowSessions":"Tu Specrails Core todavía no puede interrumpir a un agente en marcha","deriveChange":"Tu Specrails Core todavía no puede derivar una spec a partir del código"},"errors":{"generic":"Flow no pudo completar esa acción. Inténtalo de nuevo.","network":"No se pudo contactar con Specrails.","feature_unavailable":"Flow no está disponible con el Specrails Core instalado.","flow_already_open":"Esta misión ya tiene un Flow. Reanúdalo o descártalo primero.","illegal_transition":"El Flow cambió de estado mientras tanto. Actualiza e inténtalo de nuevo.","flow_worktree_missing":"La copia del proyecto de este Flow ya no existe. Revisa la rama de Flow antes de continuar.","flow_repository_required":"Elige el repositorio en el que se ejecuta este Flow.","flow_repository_not_git":"Flow necesita un repositorio Git para su rama; una carpeta normal no sirve. Elige un repositorio Git.","flow_repository_unknown":"Ese repositorio ya no forma parte de este proyecto. Elige otro.","flow_repository_missing":"El repositorio del Flow ya no está disponible en este proyecto.","rail_not_empty":"Ese rail ya tiene specs. Elige un rail libre y vacío.","flow_already_handed_off":"Este Flow ya se pasó a un rail.","flow_freeze_failed":"Los cambios de tu Flow no se pudieron guardar para pasarlo a un rail.","flow_head_mismatch":"Tu Flow cambió mientras se pasaba a un rail. Inténtalo de nuevo.","flow_handoff_not_adopted":"El rail arrancó sin hacerse cargo de los cambios de tu Flow.","repository_has_no_commits":"Este repositorio aún no tiene commits. Haz un primer commit para que Specrails pueda crear una copia aislada del proyecto.","flow_not_found":"Este Flow ya no existe.","flow_failed":"Flow encontró un error inesperado. Inténtalo de nuevo.","conversation_not_found":"Esta misión ya no existe.","conversation_not_pinned":"Fija esta misión al proyecto antes de iniciar un Flow.","flow_not_handed_off":"Este Flow ya no espera esa ejecución.","flow_rail_unknown":"Se desconoce el rail de esa ejecución. Vuelve a pasarlo a un rail desde la franja de Flow.","flow_return_busy":"La ejecución está ocupada con otra acción. Inténtalo en un momento.","flow_return_not_allowed":"Solo un paso a un rail que se detuvo antes de la entrega puede volver a su Flow.","flow_return_not_found":"Esa ejecución no es un paso de Flow a un rail.","flow_return_worktree_mismatch":"Esa ejecución no se hizo cargo de los cambios de este Flow.","spec_in_flow":"Esta spec ya está en Flow. Abre su misión para continuar.","spec_on_rail":"Esta spec está en un rail. Sácala del rail para empezarla en Flow.","spec_running":"Esta spec se está ejecutando en un rail. Espera a que termine.","spec_closed":"Esta spec está hecha o cancelada. Reábrela para trabajarla en Flow.","spec_not_found":"Esta spec ya no existe.","invalid_ticket_id":"No se pudo identificar esa spec."},"entry":{"heading":"Empezar un Flow","body":"Specrails crea una copia aparte del proyecto en su propia rama de Flow, donde el agente puede escribir código. Tu rama principal no se toca.","provider":"El agente trabaja con {{provider}} y solo escribe en la copia del Flow.","providerUnknown":"El agente solo escribe en la copia del Flow.","repository":{"label":"Repositorio","hint":"El Flow trabaja en una copia aparte de este repositorio.","choose":"Elige el repositorio en el que se ejecuta este Flow","loading":"Cargando repositorios…","loadFailed":"No se pudieron cargar los repositorios del proyecto. Inténtalo de nuevo.","suggested":"Sugerido por el agente","noGit":"Este proyecto no tiene repositorio Git. Flow necesita uno para su rama."},"blocked":{"noProject":"Fija esta misión a un proyecto para usar Flow.","open":"Esta misión ya tiene un Flow.","missing":"Flow necesita un Specrails Core más reciente:","unavailable":"Flow no está disponible ahora mismo.","goToFlow":"Ir a ese Flow"},"cancel":"Cancelar","start":"Empezar Flow","starting":"Empezando…","existingSpec":{"label":"Spec #{{id}}","note":"El Flow trabaja sobre esta spec y el agente parte de ella. Al entregarse, la spec se reescribe a partir de lo construido; su texto actual se guarda como comentario."}},"offer":{"heading":"¿Cómo quieres construirlo?","notNow":"Ahora no","implementReply":"Escribamos primero la spec y lancemos Implement.","mode":{"flow":{"title":"Flow","hint":"Constrúyelo con el agente en una rama de Flow aparte; la spec llega al final.","hintExisting":"Constrúyela juntos en una rama Flow aparte; la spec se reescribe a partir de lo construido."},"implement":{"title":"Spec + implementar","hint":"Acuerda primero una spec y luego delégala a un rail.","hintExisting":"Delega esta spec, tal como está escrita, a un rail."}},"stub":{"flow":"Elegiste Flow","implement":"Elegiste spec + Implement","dismissed":"Oferta descartada","handedOff":"Flow pasado al Rail {{rail}}","state":{"active":"Flow en curso","paused":"Flow en pausa","handed_off":"Flow pasado a un rail","delivered":"Flow entregado","discarded":"Flow descartado","needs-review":"El Flow necesita revisión","closed":"Flow cerrado (rama conservada)"},"viewRun":"Ver ejecución"},"why":"Por qué pregunta el agente","waitForReply":"Podrás elegir cuando el agente termine esta respuesta.","implementExistingReply":"Implementemos la spec #{{id}} en un rail."},"bar":{"controls":"Acciones de Flow","viewChanges":"Ver cambios","resume":"Reanudar Flow","pause":"Pausar Flow","discard":"Descartar","discarded":"Flow descartado","files_one":"{{count}} archivo","files_other":"{{count}} archivos","filesTitle":"Archivos cambiados en la rama de Flow","costTitle":"Coste real de los turnos de este Flow, según factura el proveedor","costPartial_one":"{{count}} turno no tiene coste informado por el proveedor y no se incluye","costPartial_other":"{{count}} turnos no tienen coste informado por el proveedor y no se incluyen","needsReview":"Falta la copia del proyecto de este Flow. No se ha borrado nada; revisa la rama de Flow antes de continuar.","pausedNote":"En pausa. Tus cambios y la spec se conservan; reanuda cuando quieras.","state":{"active":"Flow","paused":"Flow en pausa","needs-review":"El Flow necesita revisión","handed_off":"Pasado a un rail","delivered":"Entregado","discarded":"Descartado","closed":"Cerrado"},"disabled":{"settling":"Espera a que el Flow termine de guardar su estado","busy":"Espera a que termine la acción en curso","noSpec":"La spec del Flow aún no está lista"},"viewChangesStats":"Ver cambios · {{files}}, +{{additions}} −{{deletions}}","handOff":"Pasar a un rail","close":"Cerrar este Flow","closed":"Flow cerrado. La rama se conserva."},"preview":{"open":"Vista previa","openTitle":"Abrir la app en {{url}} en tu navegador","stopping":"Deteniendo…","more":"Acciones de la app","local":"Abrir en este ordenador","network":"Abrir en la red local","localOnly":"Solo accesible desde este ordenador. Pide al agente que la reinicie expuesta en la red local para abrirla desde un móvil.","stop":"Detener app","stopFailed":"No se pudo detener la app"},"discard":{"title":"¿Descartar este Flow?","body":"Descartar borra todo esto y no se puede deshacer:","cancel":"Conservar Flow","confirm":"Descartar Flow","lossFiles_one":"{{count}} archivo cambiado","lossFiles_other":"{{count}} archivos cambiados","lossNoChanges":"Aún no hay archivos cambiados","lossUnknown":"Todos los cambios de la rama de Flow","lossSpec":"La spec provisional del tablero"},"changes":{"title":"Cambios del Flow","subtitle":"Rama {{branch}} comparada con su punto de partida","subtitleNoBranch":"Cambios comparados con el punto de partida del Flow","refresh":"Actualizar","loadFailed":"No se pudieron cargar los cambios.","empty":"Todavía no hay cambios.","status":{"added":"Añadido","modified":"Modificado","deleted":"Eliminado","renamed":"Renombrado","untracked":"Nuevo, sin seguimiento"}},"handOff":{"heading":"Convierte este Flow en un PR revisado","loop":"Paso de Flow a un rail","launch":"Lanzar","notYet":"Todavía no","engineFallback":"{{provider}} no puede pasar este Flow a un rail en este equipo, así que se ha elegido el motor por defecto del rail.","cost":"{{cost}} hasta ahora","costUnknown":"aún sin coste facturado","line_one":"{{rail}} convertirá tu archivo cambiado en un PR revisado. Si falla, tu trabajo está a salvo.","line_other":"{{rail}} convertirá tus {{count}} archivos cambiados en un PR revisado. Si falla, tu trabajo está a salvo.","lineNoCount":"{{rail}} convertirá tus cambios en un PR revisado. Si falla, tu trabajo está a salvo."},"review":{"backToFlow":"Volver a Flow","backToFlowHint":"Reabre este Flow con los mismos cambios; el agente recibe la revisión en su próximo turno","relaunch":"Relanzar","relaunchHint":"Vuelve a intentarlo desde la misma rama de Flow, rail y motor","returned":"De vuelta en Flow. El agente tiene la revisión.","relaunched":"Relanzado en el Rail {{index}}","returnFailed":"No se pudo volver a Flow: {{detail}}","relaunchFailed":"No se pudo relanzar: {{detail}}","backToFlowFailureHint":"Reabre este Flow con los mismos cambios; el agente recibe el error en su próximo turno","returnedFailure":"De vuelta en Flow. El agente tiene el error."},"failure":{"step":{"derive":"No se pudo escribir la spec a partir de tus cambios","verify":"No se pudieron verificar tus cambios","review":"La revisión no pudo terminar","fix":"Las correcciones automáticas no pudieron terminar","archive":"No se pudo guardar la spec terminada","settle":"No se pudo devolver el resultado","unknown":"El paso a un rail se detuvo antes de terminar"},"cause":"Causa:","next":"Tu trabajo está intacto. De vuelta en Flow, el agente recibe el error.","nextReturned":"Tu trabajo está intacto. De vuelta en Flow, el agente tiene el error.","returned":"De vuelta en Flow","technical":{"title":"Detalles técnicos","repository":"Repositorio","step":"Paso","status":"Estado","failure":"Fallo","detail":"Detalle"}},"announce":{"active":"Flow activo: el agente escribe en la rama de Flow.","paused":"Flow en pausa.","needs-review":"El Flow necesita revisión: falta su copia del proyecto.","handed_off":"Flow pasado a un rail.","delivered":"Flow entregado.","discarded":"Flow descartado.","returned":"De vuelta en Flow: el trabajo volvió con lo que encontró el rail.","closed":"Flow cerrado. Su rama se ha conservado."},"strip":{"label":"Flow","ready":"Listo para convertirse en un PR","launching":"Pasando a un rail…","launchingOn":"Pasando a {{rail}}…","stillHandingOff":"Aún pasando a {{rail}}…","refresh":"Actualizar","step":{"derive":"Escribiendo la spec a partir de tus cambios","verify":"Verificando tus cambios","review":"Revisando el cambio","fix":"Aplicando las correcciones de la revisión","archive":"Guardando la spec terminada","settle":"Devolviendo el resultado"},"headline":"{{state}} · {{files}}"},"mode":{"chip":"Flow","description":"Modo Flow: el agente escribe en la rama de Flow, no en tu rama principal","placeholder":"Dile al agente qué cambiar en este Flow…"},"panel":{"branch":"Rama","changes":"Cambios","cost":"Coste hasta ahora","actions":"Más acciones del Flow"},"close":{"title":"¿Cerrar este Flow?","body":"La conversación sale de Flow. No se borra nada:","keptBranch":"Se conserva la rama:","keptSpec":"La spec sigue en el tablero, sin la etiqueta En Flow","cancel":"Ahora no","confirm":"Cerrar Flow y conservar la rama"},"startFromSpec":{"action":"Empezar en Flow","hint":"Construye esta spec con el agente en su propia rama Flow, en una misión","starting":"Iniciando Flow…","failed":"La spec #{{id}} no pudo empezar en Flow","repository":{"title":"¿Dónde se ejecuta este Flow?","body":"Este proyecto tiene varios repositorios Git. El Flow trabaja en su propia rama, en una copia aparte del que elijas.","fromSpec":"Indicado en la spec"},"blocked":{"noProject":"Abre un proyecto para usar Flow","unavailable":"Flow no está disponible con el Specrails Core instalado","inFlow":"Ya está en Flow","closed":"Las specs hechas o canceladas no pueden empezar en Flow","running":"Ejecutándose en un rail","onRail":"En un rail: sácala del rail primero","missionInFlow":"Esta misión ya tiene un Flow"}}}`),ve={title:`Lo que pidió el revisor`,noFindings:`El paso a un rail se detuvo antes de la entrega; tus cambios han vuelto a este Flow, intactos.`,coverage:`La spec explica {{explained}} de {{files}} archivos cambiados`,unexplained:`Sin explicar por ningún requisito`,moreFiles_one:`+{{count}} archivo más`,moreFiles_other:`+{{count}} archivos más`,next:`El agente del Flow empieza ahora con esto; puedes guiarlo o detenerlo en cualquier momento.`,automaticTurn:`Turno automático · Volver a Flow`,titleFailure:`Por qué se detuvo el paso a un rail`},ye={providerInactivity:`El proveedor dejó de responder demasiado tiempo y el turno terminó. Vuelve a enviar tu mensaje para continuar.`,toolInactivity:`Una herramienta estuvo demasiado tiempo sin actividad del proveedor y el turno terminó. Vuelve a enviar tu mensaje para continuar o pide al agente que divida el paso.`,generic:`El turno del agente falló.`},be={title:`Flow entregado`,pr:`Abrir el pull request`,prNumber:`Pull request #{{number}}`,specRewritten:`Spec reescrita a partir de lo que construiste`,specKept:`La reescritura de la spec no terminó; se conserva su borrador`,change:`Cambio de spec {{change}}`,changeArchived:`Cambio de spec {{change}} archivado`,jira:`Incidencia de Jira {{key}}`,jiraPending:`Creando la incidencia de Jira`},xe={launching:`Lanzando en {{rail}}…`,running:`Trabajando`,paused:`En pausa. Te está esperando`,pausedReason:`En pausa: {{reason}}`,decision:{approval:`Esperando tu aprobación`,changes:`El revisor pidió cambios`,on_review:`Listo para tu revisión`,pr_draft:`PR en borrador listo para publicar`,no_changes:`Terminó sin cambios`,pr_closed:`PR cerrado sin fusionar`,generic:`Esperando tu decisión`},failed:{generic:`Se detuvo con un error`,implementation_failed:`La implementación falló`,stalled:`La ejecución se estancó`,stuck:`La ejecución se atascó`,provider_limit:`El límite de uso del proveedor la detuvo`,launch_failed:`La ejecución no pudo arrancar`,delivery_failed:`No se pudo entregar el resultado`,push_failed:`No se pudo subir la rama`,pr_failed:`No se pudo crear el PR`},progressAria:`{{done}} de {{total}} ejecuciones terminadas`,costTitle:`Coste real facturado por el proveedor hasta ahora`,costPartial:`Algunas ejecuciones aún no tienen coste facturado y no se incluyen`,costNone:`Aún sin coste facturado`,state:{launching:`Lanzando:`,running:`En marcha:`,decision:`Te espera:`,failed:`Falló:`,paused:`En pausa:`,info:`Para tu información:`},proposal:`Lanzamiento propuesto para {{tickets}}`,proposalNoTickets:`Lanzamiento propuesto`,proposalLabel:`Propuesta`,panelLabel:`Detalles de {{run}}`,showDetails:`Ver detalles`,withShortcut:`{{label}} ({{keys}})`,cycleHint:`Cambiar de ejecución: {{keys}}`,hideDetails:`Ocultar detalles`,switcher:`Ejecuciones en curso`,more:`Más ejecuciones ({{count}})`,announce:{settled:`{{run}} terminó`,shown:`Mostrando {{run}}: {{state}}`,needsYou:`{{run}} te necesita`},event:{launched:`Lanzado en {{run}}`,failed:`{{run}} falló: {{reason}}`,openRun:`Ver la ejecución`,proposed:`Lanzamiento propuesto. Te espera`,backToFlow:`De vuelta a Flow`,flowReturned:`{{run}} devolvió el trabajo a Flow`,delivered:`Entregado: PR {{pr}}`,deliveredNoPr:`Entregado en {{run}}`,superseded:`{{run}} fue sustituido por una ejecución más reciente`,discarded:`{{run}} se descartó`,changes:`{{run}}: el revisor pidió cambios`},needsYou:`te necesita`,opensCard:`Abre la tarjeta de la ejecución para que confirmes allí`,open:{decision:`Abrir la decisión`,failed:`Ver qué falló`,paused:`Ver por qué se pausó`},attention:{failed:`Requiere atención: falló una ejecución`}},Se={entered:`Entraste en Flow`,left:`Saliste de Flow`,turnMark:`Flow`,reason:{started:`iniciado`,returned:`de vuelta de un rail`,handed_off:`pasado a un rail`,discarded:`descartado`,closed:`cerrado, rama conservada`}},Ce=`Sin leer`,we=`{{count}} sin leer`,Te=`Agente trabajando`,Ee=`No se pudo eliminar la misión. Inténtalo de nuevo.`,De={label:`Modo de interfaz`,mission:`Misión`,board:`Tablero`,current:`Modo actual: {{mode}}. Haz clic para cambiar.`},Oe={sendFailed:`No se ha podido enviar el mensaje.`,stopFailed:`No se ha podido detener el agente.`,mcpEnableFailed:`No se ha podido activar MCP.`,removeAttachmentFailed:`No se ha podido quitar el adjunto.`,sendFailedHint:`Tu texto vuelve a estar en el cuadro: pulsa Intro para reintentar.`,providerSwitchFailed:`No se pudo cambiar de proveedor: el anterior sigue activo.`,modelSwitchFailed:`No se pudo cambiar de modelo: el anterior sigue activo.`,effortSwitchFailed:`No se pudo cambiar el esfuerzo: el anterior sigue activo.`},ke={ariaLabel:`Mensaje para el agente`,dropFiles:`Suelta los archivos para adjuntarlos`,uploading:`Subiendo…`},Ae={ariaLabel:`Conversación de la misión`,agentWorking:`El agente está trabajando…`,agentReplied:`El agente ha respondido`,newMessages:`Mensajes nuevos`},je={you:`Tú`,agent:`Agente`},Me={groupLabel:`Respuestas sugeridas`,shortcut:`Alt+{{n}}`},Ne=`Copiado`,Pe=`Copiar código`,Fe=`Responde, o usa @ para referenciar…`,Ie=`Enviar (Intro) · Nueva línea (Mayús+Intro)`,Le=`Deshacer`,Re=`Este proveedor aún no puede leer imágenes: no se adjuntaron {{count}} imágenes`,ze={reference:`Referenciar una spec`,action:`Ejecutar una acción`,plan:`Planificar una spec nueva`,planSpec:`Ayúdame a planificar una spec nueva: `},Be=`⇧⇥ cambia lo que el agente puede hacer · ↑ recupera tu último mensaje`,Ve={arrived:`Llegó a revisión — PR #{{number}}`,arrivedNoNumber:`Llegó a revisión`,openPr:`Abrir PR`},He={greeting:`¿Qué debería salir a continuación en {{project}}?`,greetingNoProject:`¿Qué debería salir a continuación?`,statusTodo_one:`{{count}} por hacer`,statusTodo_other:`{{count}} por hacer`,statusReview_one:`{{count}} esperando revisión`,statusReview_other:`{{count}} esperando revisión`,statusRunning_one:`{{count}} en curso`,statusRunning_other:`{{count}} en curso`},Ue={title:e,subtitle:t,trigger:n,composerPlaceholder:r,send:i,stop:a,copy:o,attachment:s,maximize:c,restore:l,minimize:u,close:d,newConversation:f,emptyTitle:p,emptyHint:m,thinking:h,connecting:g,consultingCode:_,size:v,model:y,history:b,queue:x,receipt:S,queueEdit:C,git:w,provider:T,tier:E,approval:D,project:O,palette:k,mission:A,noProvider:j,degraded:M,toolCard:N,error:P,chip:F,newAgent:I,switchToAgent:L,switchToKanban:R,search:z,home:B,favoriteMissions:V,untitled:H,workspace:U,attachFile:W,deleteConversation:G,confirmDeleteConversation:K,addFavoriteConversation:q,removeFavoriteConversation:J,confirmShort:Y,imagesUnsupported:X,effort:Z,prCard:Q,specDraft:$,problemFrame:ee,refs:te,header:ne,emptyTitleCodeRain:re,activity:ie,backgroundProcess:ae,window:oe,railCard:se,runCard:ce,runFailure:le,split:ue,runtimeSelector:de,missionPlaceholders:fe,subagents:pe,sessionNotice:me,cardPending:he,interrupt:ge,flow:_e,flowReturn:ve,turnErrors:ye,flowDelivered:be,runStrip:xe,flowBoundary:Se,unread:Ce,unreadCount:we,live:Te,deleteFailed:Ee,modeSwitch:De,errors:Oe,composer:ke,conversation:Ae,message:je,options:Me,copied:Ne,copyCode:Pe,composerReplyPlaceholder:Fe,sendHint:Ie,undo:Le,imagesUnsupportedCount:Re,starter:ze,emptyLegend:Be,delivery:Ve,missionHome:He};export{ie as activity,q as addFavoriteConversation,D as approval,W as attachFile,s as attachment,ae as backgroundProcess,he as cardPending,F as chip,d as close,ke as composer,r as composerPlaceholder,Fe as composerReplyPlaceholder,K as confirmDeleteConversation,Y as confirmShort,g as connecting,_ as consultingCode,Ae as conversation,Ne as copied,o as copy,Pe as copyCode,Ue as default,M as degraded,G as deleteConversation,Ee as deleteFailed,Ve as delivery,Z as effort,m as emptyHint,Be as emptyLegend,p as emptyTitle,re as emptyTitleCodeRain,P as error,Oe as errors,V as favoriteMissions,_e as flow,Se as flowBoundary,be as flowDelivered,ve as flowReturn,w as git,ne as header,b as history,B as home,X as imagesUnsupported,Re as imagesUnsupportedCount,ge as interrupt,Te as live,c as maximize,je as message,u as minimize,A as mission,He as missionHome,fe as missionPlaceholders,De as modeSwitch,y as model,I as newAgent,f as newConversation,j as noProvider,Me as options,k as palette,Q as prCard,ee as problemFrame,O as project,T as provider,x as queue,C as queueEdit,se as railCard,S as receipt,te as refs,J as removeFavoriteConversation,l as restore,ce as runCard,le as runFailure,xe as runStrip,de as runtimeSelector,z as search,i as send,Ie as sendHint,me as sessionNotice,v as size,$ as specDraft,ue as split,ze as starter,a as stop,pe as subagents,t as subtitle,L as switchToAgent,R as switchToKanban,h as thinking,E as tier,e as title,N as toolCard,n as trigger,ye as turnErrors,Le as undo,Ce as unread,we as unreadCount,H as untitled,oe as window,U as workspace};
@@ -0,0 +1 @@
1
+ import{r as ee}from"./rolldown-runtime-CNC7AqOf.js";var te=ee({activity:()=>oe,addFavoriteConversation:()=>q,approval:()=>D,attachFile:()=>W,attachment:()=>s,backgroundProcess:()=>se,cardPending:()=>_e,chip:()=>F,close:()=>d,composer:()=>je,composerPlaceholder:()=>r,composerReplyPlaceholder:()=>Le,confirmDeleteConversation:()=>K,confirmShort:()=>Y,connecting:()=>g,consultingCode:()=>_,conversation:()=>Me,copied:()=>Fe,copy:()=>o,copyCode:()=>Ie,default:()=>Ge,degraded:()=>M,deleteConversation:()=>G,deleteFailed:()=>Oe,delivery:()=>Ue,effort:()=>ne,emptyHint:()=>m,emptyLegend:()=>He,emptyTitle:()=>p,emptyTitleCodeRain:()=>ae,error:()=>P,errors:()=>Ae,favoriteMissions:()=>V,flow:()=>ye,flowBoundary:()=>we,flowDelivered:()=>Se,flowReturn:()=>be,git:()=>w,header:()=>ie,history:()=>b,home:()=>B,imagesUnsupported:()=>X,imagesUnsupportedCount:()=>Be,interrupt:()=>ve,live:()=>De,maximize:()=>c,message:()=>Ne,minimize:()=>u,mission:()=>A,missionHome:()=>We,missionPlaceholders:()=>me,modeSwitch:()=>ke,model:()=>y,newAgent:()=>I,newConversation:()=>f,noProvider:()=>j,options:()=>Pe,palette:()=>k,prCard:()=>Z,problemFrame:()=>$,project:()=>O,provider:()=>T,queue:()=>x,queueEdit:()=>C,railCard:()=>le,receipt:()=>S,refs:()=>re,removeFavoriteConversation:()=>J,restore:()=>l,runCard:()=>ue,runFailure:()=>de,runStrip:()=>Ce,runtimeSelector:()=>pe,search:()=>z,send:()=>i,sendHint:()=>Re,sessionNotice:()=>ge,size:()=>v,specDraft:()=>Q,split:()=>fe,starter:()=>Ve,stop:()=>a,subagents:()=>he,subtitle:()=>t,switchToAgent:()=>L,switchToKanban:()=>R,thinking:()=>h,tier:()=>E,title:()=>e,toolCard:()=>N,trigger:()=>n,turnErrors:()=>xe,undo:()=>ze,unread:()=>Te,unreadCount:()=>Ee,untitled:()=>H,window:()=>ce,workspace:()=>U}),e=`Mission Control`,t=`Operate Specrails by chatting`,n=`Mission Control`,r=`What's the mission?`,i=`Send`,a=`Stop`,o=`Copy`,s={openPreview:`Preview {{name}}`,openDownload:`Download {{name}}`,previewTitle:`Preview {{name}}`,downloadTitle:`Download file?`,downloadPrompt:`This file cannot be previewed here. Do you want to download it?`,download:`Download`,cancelDownload:`Not now`,loading:`Preparing file…`,loadFailed:`Could not load attachment`,loadError:`Could not load attachment: {{error}}`,remove:`Remove {{name}}`},c=`Maximize`,l=`Restore`,u=`Minimize`,d=`Close`,f=`New mission`,p=`What's the mission?`,m=`Ask anything about this project — the agent can read, plan specs and launch rails.`,h=`Thinking…`,g=`Connecting…`,_=`Consulting the app…`,v={compact:`Compact`,comfortable:`Comfortable`,max:`Maximize`},y={label:`Model`,loading:`Loading models…`,unavailable:`Models unavailable`},b={hint:`Browsing prompt history — type to edit, ↑↓ to navigate`},x={queued:`Queued`,send:`Queue message`,sendHint:`Queue for the next turn. Choose Steer on a queued message to submit it without interrupting the model.`,placeholder:`Add a message to the queue…`,delivered:`Delivered to agent`,interrupted:`Delivery unconfirmed`,cancelled:`Cancelled before delivery`,steer:`Steer`,steerHint:`Submit without interrupting the model`,steering:`Sending to agent…`,remove:`Delete queued message`,more:`Message options`,edit:`Edit`,actionConflict:`This message is already being delivered or is no longer queued.`,actionFailed:`Could not update the queued message. Try again.`,removed:`Queued message deleted`},S={sent:`Sent to agent`,received:`Delivered to agent`,read:`Read by agent`,interrupted:`Delivery unconfirmed`,cancelled:`Cancelled before delivery`},C={editing:`Editing pending message {{n}} of {{m}}`,hint:`↑↓ to navigate · Enter saves · Esc cancels`,save:`Save pending message`,cancel:`Cancel editing`,dispatched:`That message was already delivered. Your text is kept as a draft`,saveFailed:`Couldn’t save the pending message`},w={branch:`Branch`,detached:`(detached)`,dirty:`Uncommitted changes`,switched:`Switched to {{branch}}`,switchFailed:`Couldn't switch branch`,lockedWhileWorking:`Branch locked while the agent works`,searchPlaceholder:`Search branches…`,noMatches:`No branches match`,worktrees:`Worktrees`,worktreePathCopied:`Worktree path copied`,copyWorktreePath:`Copy worktree path`,repository:`Repository`,repositoryUnavailable:`Repository unavailable`,loadFailed:`Git state unavailable`,notGit:`Context folder · no Git`,retry:`Retry`,copyBranch:`Copy branch name`,branchCopied:`Branch name copied`},T={label:`Provider`,claude:`Claude`,codex:`Codex`,gemini:`Gemini`,kimi:`Kimi`},E={cycleHint:`⇧⇥ to change`,observe:{name:`Observe`,desc:`Read only — nothing changes`},edit:{name:`Edit`,desc:`Create and edit (reversible)`},operate:{name:`Operate`,desc:`Launch AI — costs money`},autonomous:{name:`Autonomous`,desc:`Delete and kill — irreversible`},lockedTitle:`Needs a higher level`,lockedBody:`That action needs the "{{level}}" level. You're on "{{current}}".`,raiseHint:`⇧⇥ to raise the level, or ask another way.`,confirmAutonomous:`Switch to Autonomous`,autonomousWarning:`Autonomous can delete and kill processes.`,skipAutonomousHint:`Press ⇧⇥ again to go back to Observe.`},D={title:`Confirm action`,costAction:`{{action}} · ~{{cost}} · {{tier}}`,approve:`Approve`,cancel:`Cancel`,dontAskAgain:`Don't ask again this session`,approved:`Approved`,cancelled:`Cancelled`},O={home:`Home`,searchPlaceholder:`Talk to Specrails…`,searchProjectsPlaceholder:`Search projects…`,recents:`Recents`,allProjects:`All projects`,searchAll:`Search across all projects`,addProject:`Add project…`,homeHint:`No project selected — operating across all projects.`,askCreateOrSearch:`No project is selected. Do you want to create a new project, or search across all projects?`},k={remove:`Remove {{label}}`,addContextAction:`Add context or action`,filtering:`Filtering "{{query}}"`,keyboard:`↑↓ Enter Esc`,noMatches:`No matches`,noMatchesFor:`No matches for "{{query}}"`,mode:{reference:{title:`Reference`,hint:`@ projects, specs, missions`},trace:{title:`Trace`,hint:`# jobs, runs, IDs`},action:{title:`Action`,hint:`/ commands for this context`}},plus:{reference:`Reference`,referenceHint:`Projects, specs, missions`,trace:`Trace`,traceHint:`Jobs, runs, IDs`,action:`Action`,actionHint:`Create, launch, inspect`,fileAttachment:`File attachment`,fileAttachmentHint:`Add docs, images, logs`,browserCapture:`Browser capture`,browserCaptureHint:`Capture a page region into this mission`},railGroup:`Rails`,railGroupInUse:`Rails in use`},A={label:`Switch mission`,untitled:`New mission`,new:`New mission`,searchPlaceholder:`Search missions…`,noMatches:`No missions match`,working:`Agent working`,queuedBadge:`{{n}} queued`,delete:`Delete mission "{{title}}"`,deleteConfirm:`Delete?`,deleteLiveConfirm:`The agent is working. Delete anyway?`,confirmDelete:`Confirm delete`,cancelDelete:`Keep mission`,deleteFailed:`Couldn't delete the mission`},j={title:`No AI provider installed`,body:`The agent needs an AI provider (Claude, Codex, Gemini or a local engine). Install or connect one, then reopen the agent.`,placeholder:`Connect an AI provider to use the agent…`},M={title:`Specrails MCP is off`,body:`The agent needs the embedded MCP server to operate the app.`,enable:`Enable Specrails MCP`,enabling:`Enabling…`,enabled:`MCP enabled`},N={live:`live`,queued:`queued`,running:`running`,done:`done`,failed:`failed`},P={generic:`Something went wrong. Try again.`,busy:`The agent is busy. Try again in a moment.`},F={kindAgent:`Agent mission`},I=`New Mission`,L=`Switch to Mission Control`,R=`Switch to Board`,z=`Search`,B=`Unassigned missions`,V=`Favorite missions`,H=`Untitled`,U={title:`On workspace`,terminal:`Terminal`,files:`Files`,browser:`Browser`,requiresProject:`Select a project to use this tool`,resizeCode:`Resize code pane`,closeFiles:`Close code`,browserConfirm:`Add to agent`,browserSelectStart:`Select to add to mission`,browserCaptured:`Capture added`,uploadFailed:`Upload failed`,requiresConversation:`Start a mission to use this tool`,jobs:`Jobs`,closeJobs:`Close jobs`,resizeJobs:`Resize jobs pane`,noJobs:`No jobs yet — ask the agent to launch one`,analytics:`Analytics`,closeAnalytics:`Close analytics`,resizeAnalytics:`Resize analytics pane`},W=`Attach file`,G=`Delete "{{title}}"`,K=`Confirm delete "{{title}}"`,q=`Add "{{title}}" to favorites`,J=`Remove "{{title}}" from favorites`,Y=`Delete?`,X=`This provider can't read images yet. Attach text files instead`,ne={label:`Effort`,minimal:`Minimal`,low:`Low`,medium:`Medium`,high:`High`,xhigh:`Extra high`,max:`Max`,ultra:`Ultra`},Z=JSON.parse(`{"operation":{"inProgress":"Action in progress…","create-pr":"Creating PR…","publish":"Publishing…","discard":"Discarding…","dismiss":"Dismissing follow-up…","poll-merge":"Checking merge…","reopen":"Reopening…","merge-local":"Integrating locally…","recover-and-retry":"Committing and retrying the preserved result…","acknowledge-no-changes":"Marking done…"},"rail":"Rail {{index}}","specCount_one":"{{count}} spec","specCount_other":"{{count}} specs","base":"Base branch","openPr":"Open PR","existingPr":"Existing PR","title":{"building":"Implementing in an isolated worktree…","buildingInPlace":"Implementing in the project folder…","buildingExistingPr":"Applying changes to an existing PR…","paused":"Needs a human decision","on_review":"Implementation ready for review","pr_draft":"Draft PR created","pr_draft_degraded":"PR delivery incomplete","pr_ready":"PR ready for merge","no_changes":"No changes needed","partial":"Partially implemented","delivery_blocked":"Implementation complete: delivery needs attention","update_failed":"Implementation complete: update failed","pr_closed":"PR closed without merge","superseded":"Superseded by a newer run","existing_pr_updated":"Existing PR updated","implementation_failed":"Implementation failed","pr_failed":"PR creation failed","merged":"PR merged","discarded":"Discarded","review_changes_requested":"The reviewer requested changes","returned_to_flow":"Back in Flow","flowSpecChanges":"Not ready yet: the reviewer requested changes","flowSpecDelivered":"Your Flow is now a reviewed PR","flowSpecFailed":"The hand-off stopped","flowSpecBuilding":"Turning your Flow into a reviewed PR"},"buildingHint":"You'll be asked to create the PR when it settles.","buildingExistingPrHint":"Specrails is working on the existing PR branch and will push the review changes back to that PR.","paused":"Implementation paused","pausedForRun":"Paused on {{ref}}","resume":"Resume","stopExecution":"Stop run","stopExecutionSent":"Stop signal sent","stopExecutionFailed":"Couldn't stop the run","partialSummary":"{{succeeded}} of {{total}} completed; {{failed}} failed","unit":{"failed":"implementation failed","blocked":"delivery blocked","noChanges":"no changes","succeeded":"ready"},"createPr":"Create PR","publish":"Publish","checkout":"Checkout","openReview":"Review","openReviewTooltip":"Open the plain-language review","checkoutTooltip":"Check out {{branch}} in the main project folder","checkoutSuccess":"Checked out {{branch}}","checkoutFailed":"Could not check out the implementation branch","checkoutDirtyTitle":"Checkout blocked to protect your changes","checkoutDirtyBody":"The main project folder has uncommitted changes. Commit or stash them, then retry. Nothing was changed.","checkoutSafetyUnknownTitle":"Checkout paused because safety could not be verified","checkoutSafetyUnknownBody":"Specrails could not read the main project folder’s Git status. Nothing was released or changed. Retry after Git is available.","checkoutNotDeliverableTitle":"This branch is not the preserved implementation","checkoutNotDeliverableBody":"No exact delivery commit has been verified yet. Inspect or recover the local result instead.","inspectLocalResult":"Inspect local result","inspectLocalResultTooltip":"Reveal the preserved isolated worktree and copy its path","localResultPathCopied":"Local result path copied","localResultPath":"Preserved local result","localResultUnavailableHere":"No recoverable worktree is available on this computer. Review the run log from the machine where it executed.","recoverAndRetry":"Commit & retry push","recoverAndRetryVerified":"Recovered commit {{sha}} is verified in the PR","recoveryStillBlocked":"Local recovery still needs attention","recheckRecovery":"Check again","recoveryUnavailable":"Recovery could not be verified on this computer","recoveryUnavailableBody":"Specrails could not safely prove one delivery-owned result in this clone. Nothing was changed or removed. Inspect the stage detail and run logs. If the run executed on another computer, open Specrails there, then check again.","recoveryDetailSummary":"Technical recovery detail","retry":"Retry","retryPr":"Retry PR","checkMerge":"Check merge","verifyPr":"Verify PR","discard":"Discard","dismiss":"Dismiss follow-up","discardLocalResult":"Discard local result","markDone":"Mark done","refine":"Refine","retryPush":"Retry push","retryPushVerified":"Push verified · commit {{sha}} is in the PR","commitAlreadyVerified":"Commit {{sha}} is already verified in the PR","deliveryCommit":"commit {{sha}}","reopen":"Reopen","createPartialPr":"Create PR with {{count}}","confirmDiscard":"Confirm discard?","mergedNote":"Merged. Specs moved to Done","discardedNote":"Discarded. Specs returned to the backlog","supersededNote":"A newer implementation run replaced this card.","completedNote":"Confirmed. Specs moved to Done","noChangesExisting":"No new changes were needed; the existing PR is unchanged.","noChangesNote":"No code changes were needed. Mark the specs done or return them to the backlog to refine.","deliveryNeedsAttention":"Implementation complete; delivery needs attention","deliveryBlockedNote":"Implementation succeeded, but delivery is blocked. Review the stage detail and run logs before discarding the local result.","partialDeliveryBlockedNote":"Part of the implementation succeeded, but nothing is safely deliverable yet. Review the per-unit evidence and run logs before choosing the next action.","retryPushNote":"Implementation succeeded and the changes are safe locally. Retry only the push.","cleanupIncomplete_one":"Cleanup is incomplete ({{count}} warning)","cleanupIncomplete_other":"Cleanup is incomplete ({{count}} warnings)","safetyArchiveTitle":"Safety archive ({{count}})","safetyArchiveHint":"Temporary workspace files were preserved outside the PR as a precaution. You can inspect or remove them manually.","implementationFailedNote":"The implementation run failed before there was anything deliverable. Open the run log to inspect the failure, then discard this card before relaunching.","degraded":{"pushed":"The branch was pushed but the PR could not be created. Retry to finish.","localOnly":"The changes were assembled locally but not pushed. Retry to publish the PR."},"alreadyResolved":"Already resolved elsewhere","actionFailed":"Action failed","notMergedYet":"Not merged yet","commitMissingRetry":"The delivery commit is no longer in the PR. Retry push is available again.","prVerifiedWaiting":"Commit {{sha}} verified · waiting for merge","viewLog":"View run log for {{ref}}","runElapsedAria":"{{elapsed}} elapsed","runCostAria":"{{cost}} spent","focusRegion":"Implementation card · {{rail}} {{tickets}}","pinned":{"state":{"building":"Building","on_review":"Review","pr_draft":"Draft PR","pr_ready":"Published","no_changes":"No changes","completed":"Completed","pr_closed":"Closed","superseded":"Superseded","implementation_failed":"Failed","pr_failed":"Failed","merged":"Merged","discarded":"Discarded"}},"mergeLocal":"Integrate locally","mergeLocalTooltip":"Merge the delivered branches into {{base}} in your local checkout (no GitHub needed)","mergeLocalBlockedDirty":"Cannot integrate: local changes on {{base}} overlap the delivery. Commit or stash those changes, then retry.","mergeLocalBlockedBranch":"Cannot integrate: your checkout is on {{current}}, not {{base}}. Check out {{base}}, then retry.","mergedLocally":"Integrated into {{base}} locally","confirm":{"mergeLocalTitle":"Integrate locally?","mergeLocalBody":"The delivered branches will be merged into {{base}} locally. Existing changes are preserved; overlapping edits may require resolution before integration.","recoverAndRetryTitle":"Commit and push the preserved result?","recoverAndRetryBody":"Specrails will use only the isolated worktree or recorded fast-forward branch for {{branch}}. It will commit deliverable files if needed, then push the exact commit only if the PR is still open on the expected head and base. Your main project folder and its uncommitted changes will not be touched.","recheckRecoveryTitle":"Check this computer again?","recheckRecoveryBody":"We’ll check whether anything from this delivery can still be recovered. Nothing is deleted.","freshDiscardTitle":"Discard this delivery?","freshDiscardBody":"The PR will be closed without deleting its remote branch. Only SpecRails-owned local branches and worktrees that are still at their recorded commit will be removed; anything changed will be preserved with a warning. The specs will return to the backlog. Removed local resources cannot be recovered.","implementationFailedDiscardTitle":"Discard this failed delivery?","implementationFailedDiscardBody":"The card will be cleared and its specs will return to the backlog. Local work and branches will be kept for inspection. Only resources proven safe to clean up may be removed.","dismissTitle":"Dismiss this follow-up?","dismissBody":"This follow-up card will be cleared. Its owned worktree will be removed only if it is still safe; otherwise it will be preserved with a warning. The existing PR, its branch, and review state will remain unchanged.","discardLocalTitle":"Discard the local result?","discardLocalBody":"The recoverable local iteration will be removed only if it is still safe; if it changed, it will be preserved with a warning. Any existing PR and its branch will remain unchanged. A removed result cannot be recovered.","noChangesDoneTitle":"Mark these specs done?","noChangesDoneBody":"The implementation confirmed that no code changes are needed. The specs will move to Done and the no-change worktree will be cleaned up.","refineTitle":"Refine these specs?","refineBody":"The no-change result will be closed and the specs will return to the backlog so you can refine them. The run logs remain available.","recheckRecoveryTechnical":"Specrails will rescan this clone’s delivery-owned worktree, branch, refs, reflogs, and orphan Git objects for {{branch}}. If it proves one result, it may commit isolated changes and retry the exact push. Your main project folder will not be touched."},"discardStackedNote":"Later rails of this milestone were built on this delivery. Discarding it pauses the milestone chain; the later rails keep their work.","resumeFromStep":"Resume from {{step}}","resumeFromStepHint":"The interrupted {{step}} step runs again from its start; the work already on disk is kept.","retryDelivery":"Retry delivery","retryDeliveryHint":"Repeats only the final step (commit, push and PR) on this run's own branch. No AI work is redone.","retryDeliverySent":"Retrying the delivery…","retryDeliveryFailed":"Could not retry the delivery","mergedLocallyRestored":"Saved your local changes, integrated {{tickets}}, and restored them.","mergedLocallyStashConflict":"Integrated {{tickets}}. Your local changes are safe in a stash; Specrails is restoring them on a separate branch.","mergedLocallyStashKept":"Integrated {{tickets}}. Your local changes are safe in a stash; restore them when you're ready.","localStash":{"title":"Your local changes are saved as a stash","conflictBody":"Re-applying them on top of the integrated result conflicted, so {{branch}} was left exactly as integrated. Restore them to try again on a separate branch.","savedBody":"They have not been restored yet. Restore them while {{branch}} is checked out.","files":"Conflicting files","restore":"Restore my changes","restoring":"Restoring…","copy":"Copy stash name","copied":"Stash name copied","restoredToast":"Your local changes are back on {{branch}}.","stillConflicting":"Your local changes still conflict with {{branch}}; they stay safe in the stash.","released":"That stash is no longer there, so there is nothing left to restore.","blockedBranch":"Check out {{base}} first (you are on {{current}}), then restore.","blockedDirty":"Some of those files changed again since they were saved. Commit or move those edits, then restore.","failed":"Could not restore your local changes","restoringBody":"Re-applying them on top of the integrated result conflicted, so {{branch}} was left exactly as integrated. Specrails is restoring them on {{restoreBranch}} in a separate worktree and resolving the conflicts there.","readyBodyClean":"Your changes are restored and committed on {{restoreBranch}}; they applied cleanly there. Review them, then bring them back to {{branch}}.","readyBodyResolved":"Your changes are restored and committed on {{restoreBranch}}, with the conflicts resolved automatically. Review them, then bring them back to {{branch}}.","failedBody":"Specrails could not finish restoring them on {{restoreBranch}}. They are still safe in the stash; discard that branch or restore again.","restoredFiles":"Restored on {{restoreBranch}}","binary":"binary","managedNote":"Specrails-managed generated files kept the integrated version: {{files}}","bringBack":"Bring them back to {{branch}}","bringingBack":"Bringing back…","discardBranch":"Discard the restored branch","discarding":"Discarding…","broughtBackToast":"Your local changes are back on {{branch}}.","discardedToast":"Restored branch discarded. Your changes are still safe in the stash.","blockedBringBack":"Could not bring the changes back to {{branch}} safely.","notReady":"The restored branch is not ready yet."},"failed":{"createPr":"Couldn't create the PR","mergeLocal":"Couldn't integrate locally","discard":"Couldn't discard the result","publish":"Couldn't publish the PR","generic":"Delivery stopped. See technical details."},"moreActions":"More actions"}`),Q={heading:`Spec draft`,drafting:`Updating draft…`,acceptanceCriteria:`Acceptance criteria`,untitled:`Untitled spec`,expand:`Show full description`,collapse:`Collapse description`},$={heading:`Framing`,framing:`Framing the request…`,restated:`What I understood`,alternative:`It could also mean`,pick:`Reply with this`,touches:`Would touch`,discriminator:`Which is it?`,assumptions:`What I'm assuming`,unknowns:`Still open`},re={openTicket:`Open spec #{{id}}`,openPullRequest:`Open PR #{{id}}`,openJob:`Open job {{id}}`,openLoop:`Open loop {{id}}`,ticketNotFound:`Spec #{{id}} not found. It may have been deleted`,pullRequestUrlMissing:`PR #{{id}} was referenced without a URL`,pullRequestNotFound:`PR #{{id}} could not be found in this project`,jobNotFound:`Job not found. It may have been deleted`,loopNotFound:`Loop not found. It may have been deleted`,lookupFailed:`Couldn't verify the reference. Try again`},ie={untitled:`Untitled mission`,menu:`Mission menu`,rename:`Rename`,renamePlaceholder:`Mission name`,renameHint:`Double-click to rename`,renameFailed:`Could not rename`,addFavorite:`Add to favorites`,removeFavorite:`Remove from favorites`,copyName:`Copy mission name`,copyId:`Copy mission ID`,copyProject:`Copy project name`,copyProjectPath:`Copy project path`,copyFailed:`Couldn't copy`,copyTranscript:`Copy transcript`,copyTranscriptSuccess:`Transcript copied`,copyTranscriptFailed:`Could not copy transcript`,exportTranscript:`Export transcript (.txt)`,exportTranscriptSuccess:`Transcript export started`,exportTranscriptFailed:`Could not export transcript`,delete:`Delete mission`,deleteConfirm:`Delete this mission? This cannot be undone.`,deleteFailed:`Could not delete the mission`},ae=`What should we build next?`,oe={title:`Run log`,live:`Live`,empty:`No tool activity in this turn yet.`,output:`Output`,error:`Error`,copyAll:`Copy full log`,copyEntry:`Copy entry`,copySuccess:`Log copied to clipboard`,copyFailed:`Could not copy the log`,openLog:`View run log`,close:`Close`,tool:{terminal:`Terminal`,reading:`Reading`,searching:`Searching`,editing:`Editing`,web:`Web`,agent:`Agent`,agentNamed:`Agent · {{description}}`,mcp:`MCP · {{name}}`,mcpTool:`MCP tool`}},se={open:`View logs for {{command}}`,logsTitle:`Process logs`,logsDescription:`Live output and saved history for this process.`,close:`Close logs`,command:`Command`,directory:`Directory`,exitCode:`Exit code: {{code}}`,signal:`Signal: {{signal}}`,search:`Search logs…`,source:`Output source`,allSources:`All output`,pause:`Pause`,resume:`Resume`,follow:`Follow`,copy:`Copy visible logs`,download:`Download visible logs`,stop:`Stop process`,stopCommand:`Stop {{command}}`,stopFailed:`Could not stop the process. Try again.`,truncated:`Showing a limited log window. Older output or long lines may be omitted. Copy and download include this view only.`,paused:`View paused. The process continues running.`,loadFailed:`Logs could not be loaded. The process may have expired from retention; saved output is still shown.`,retry:`Retry`,copied:`Visible logs copied.`,exportFailed:`Could not export logs. Try again.`,output:`Process output`,loading:`Loading logs…`,noMatches:`No matching output.`,empty:`No output yet.`,lineCount:`{{count}} of {{total}} lines`,exportHint:`Exports include the current filter and retained output only.`,status:{starting:`Starting`,running:`Running`,stopping:`Stopping`,exited:`Exited`,killed:`Stopped`,failed:`Failed`,interrupted:`Disconnected`},repository:`Repository`,history:{button:`Processes`,title:`Mission processes`,open:`View process history`,description:`Browse active processes and saved logs from earlier runs.`,search:`Search command or repository…`,refresh:`Refresh history`,close:`Close process history`,back:`Back to processes`,loading:`Loading process history…`,empty:`No processes have been recorded for this mission.`,noMatches:`No matching processes.`,loadFailed:`Process history could not be loaded. Previously loaded entries remain available.`,showMore:`Show more`,count:`Processes: {{count}}`},interruptedHint:`Specrails stopped supervising this process. Its operating system state is unknown; saved logs remain available.`,persistenceFailed:`The process history could not be saved. Available output remains visible.`,appUrls:{title:`App addresses`,local:`This computer`,network:`Your network`,open:`Open {{url}} in the browser`,copy:`Copy {{url}}`,localOnly:`Only reachable from this computer. To open it from your phone on the same Wi-Fi, ask the agent to relaunch it exposed on your local network.`}},ce={detach:`Open in separate window`,attach:`Return to main window`,detached:`This mission is open in another window.`,focus:`Show mission window`,loading:`Moving mission…`,failed:`Could not move this mission. Your draft is preserved.`,dismiss:`Dismiss`,wrongMission:`Open this mission before moving it.`,finishPending:`Finish the operation in progress, or save or cancel the message or capture before moving the mission.`},le={heading:`Rail launch`,rail:`Rail {{index}}`,newRail:`New rail`,play:`Play`,launching:`Launching…`,dismiss:`Dismiss`,playHint:`Adjust anything, then press Play to launch under your own authority.`,pending:`Preparing a launch proposal…`,unreadable_one:`The agent's launch proposal could not be read.`,unreadable_other:`{{count}} launch proposals could not be read.`,effortDefault:`Default effort`,profileNone:`No profile`,status:{proposal:`Proposal`,ready:`Ready`,blocked:`Needs attention`,loading:`Checking…`},availability:{free:`free`,busy:`running`,pending_decision:`awaiting a decision`,on_review:`on review`},fields:{rail:`Rail`,newRailName:`New rail name (optional)`,railName:`Rail name`,addSpec:`Add spec`,removeSpec:`Remove #{{id}}`,loop:`Loop`,engine:`AI engine`,model:`Model`,effort:`Reasoning effort`,profile:`Agent profile`,targetPr:`Target PR #`,baseBranch:`Base branch`},notes:{railMissing:`Rail {{index}} no longer exists. Pick another rail or create one.`,railBusy:`Rail {{index}} is {{state}}, so launching there is blocked.`,useFree:`Use Rail {{index}}`,specsDropped:`Not in this project any more: {{ids}}`,engineStale:`{{engine}} is not detected on this machine. Using {{fallback}}.`,modelStale:`{{model}} is not available. Using {{fallback}}.`},block:{noProject:`This mission is not pinned to a project.`,loadFailed:`Could not load the project's rails, specs or repositories.`,noSpecs:`Add at least one spec to launch.`,railLimit:`All {{max}} rails exist and none is free.`},errors:{tickets_in_flight:`One of these specs is already running on another rail.`,pr_decision_pending:`This rail is waiting for a PR decision.`,rail_limit_reached:`The project already has the maximum number of rails.`,invalid_base_branch:`That base branch does not exist locally.`,base_branch_requires_isolation:`A base branch needs worktree isolation (a git repository with commits).`,target_pr_requires_pr_mode:`A target PR needs worktree isolation (a git repository with commits).`,invalid_response:`Unexpected server response.`,scope_save_failed:`Could not save the spec's repositories.`,repository_scope_incomplete:`The launch is missing a repository required by its specs. Check the assignments above.`,rail_not_empty:`That rail already has specs`,flow_freeze_failed:`Your Flow's changes could not be saved for the hand-off`,flow_head_mismatch:`Your Flow changed during the hand-off. Try again`,flow_already_handed_off:`This Flow was already handed off`,flow_handoff_not_adopted:`The rail started without taking over your Flow's changes`,illegal_transition:`The Flow changed state meanwhile`,feature_unavailable:`Flow is not available`,daily_budget_exceeded:`Daily limit reached. Nothing was launched.`,review_wip_limit_reached:`Review limit reached. Nothing was launched.`,repository_has_no_commits:`This repository has no commits yet. Make an initial commit so Specrails can create an isolated copy of the project.`},stub:{launched:`Launched → Rail {{rail}}`,dismissed:`Proposal dismissed`,viewRun:`View run`,goToCard:`Go to card`,goToCardTitle:`Scroll to this launch's implementation card`,viewRunTitle:`Open the run's live log`},followUp:{title:`Resolve {{count}} review comment(s) on the PR`,excluded:`Do not change`,verification:`Verify`,specUntouched:`The spec and its Jira description are not edited. The scope travels with the run.`,source:{pasted:`pasted`,github:`from GitHub`}},addenda:{rides_one:`{{count}} open addendum rides into this launch:`,rides_other:`{{count}} open addenda ride into this launch:`},repositories:{launch:`Repositories for this launch`,launchHint:`Includes the repositories required by the specs. You can add other project repositories.`,assignments:`Assigned to each spec`,edit:`Edit`,editSpec:`Edit repositories for #{{id}}`,spec:`Repositories for spec #{{id}}`,saveHint:`Saving updates this spec's repository assignments for future launches too.`,save:`Save repositories`,cancel:`Cancel`,finishEditing:`Save or cancel the repository edit before launching.`,missing:`Required repositories missing: {{names}}. Include them above or edit the spec assignments if its targets have changed.`,unavailable:`Selected repositories are unavailable for implementation: {{names}}. Update the selection or the spec assignments.`,refresh:`Refresh`,retry:`Retry loading`,checkScope:`Review the repository selection before launching.`},triageLabel:`Triage`,handOff:{newRail:`A new rail`,changeHow:`Change how`}},ue={status:{running:`Running`,paused:`Paused`,succeeded:`Succeeded`,failed:`Failed`,stalled:`Stalled`,cancelled:`Cancelled`,unknown:`Unknown`,changes_requested:`Changes requested`,returned:`Back in Flow`},title:{running:`Implementing in the project checkout…`,paused:`Needs a human decision`,succeeded:`Implementation finished`,failed:`Implementation failed`,stalled:`Implementation stalled`,cancelled:`Run cancelled`,unknown:`Run state unknown`,changes_requested:`The reviewer requested changes`,returned:`Back in Flow`},noDeliveryNote:`No PR phase: this project has no git repository or commits, so the work landed directly in the project folder.`,noDeliveryHint:`Running directly in the project folder (no git repository or commits, so no PR will be proposed).`,failure:{title:`Why it stopped`,step:`step {{step}}`,unit:`#{{ticket}} · {{code}}`},actions:{resume:`Resume`,approve:`Approve`,recover:`Recover & retry`,relaunch:`Relaunch`},relaunchSent:`Rail {{index}} relaunched. A new card will follow the run.`,relaunchFailed:`Could not relaunch the rail`,relaunchBlockedActive:`The rail still has an active run`,review:{title:{review:`The reviewer requested changes`,check:`The checks still fail`},score:`score {{score}}`,issues_one:`{{count}} issue`,issues_other:`{{count}} issues`,showAll:`Show all {{count}}`,showLess:`Show less`,omitted_one:`+{{count}} more in the run's review`,omitted_other:`+{{count}} more in the run's review`,failingChecks:`Failing`,check:`{{command}} · exit {{code}}`,next:`The automatic correction rounds did not resolve these. Go back to Flow to settle them with the agent, or relaunch from the same Flow branch.`,returned:`Back in Flow: your changes returned to their Flow with the review. Continue in the Flow strip.`}},de={briefing:{title:`Automatic failure briefing`}},fe={open:`Split view`,menu:`Conversation actions`,add:`Add conversation in split view`,close:`Close split view`,loadFailed:`Could not load this conversation.`,retry:`Retry`},pe={label:`Model and effort`,resetEffort:`Reset effort`,back:`Back`},me={0:`What's the mission?`,1:`Which mission shall we start with?`,2:`What's our mission today?`,3:`What's our next mission?`,4:`What do you want to achieve in this mission?`,5:`Which mission shall we launch?`,6:`Where shall we begin this mission?`,7:`What's the goal of this mission?`,8:`What shall we build in this mission?`,9:`What shall we improve in this mission?`,10:`Which challenge shall this mission tackle?`,11:`What's the first step of this mission?`,12:`Tell me about the mission you have in mind…`,13:`Describe your next mission…`,14:`Let's shape your next mission…`,15:`What should this mission accomplish?`,16:`Which mission would you like to complete?`,17:`What shall we solve in this mission?`,18:`What would make this mission a success?`,19:`Ready for a new mission. Shall we begin?`},he={title:`Agents`,working_one:`{{count}} working`,working_other:`{{count}} working`,done_one:`{{count}} done`,done_other:`{{count}} done`,ended_one:`{{count}} ended`,ended_other:`{{count}} ended`,phase:{running:`Working`,idle:`Done`,failed:`Failed`,stopped:`Stopped`,killed:`Killed`,interrupted:`Interrupted`},reason:{user_stop:`stopped by you`,host_request:`stopped by the app`,restart:`lost on restart`,shutdown:`app closed`,host_lost:`agent host lost`,crashed:`process crashed`,stalled:`stopped responding`,limit:`limit reached`,project_removed:`project removed`,evicted:`evicted to free resources`,policy:`sub-agents are disabled`},expand:`Show activity of {{name}}`,collapse:`Hide activity`,elapsedAria:`Running for {{elapsed}}`,loadingActivity:`Loading activity…`,noActivity:`No activity yet`,activityFailed:`Could not load activity`,moreActivity:`Load more`,tokens:`{{tokens}} tokens`,toolUses_one:`{{count}} tool call`,toolUses_other:`{{count}} tool calls`,stop:`Stop`,stopOne:`Stop {{name}}`,stopAll:`Stop all agents`,stopFailed:`Could not stop agents`,relaunch:`Relaunch`,relaunchHint:`Draft a message asking the agent to relaunch this work`,relaunchDraft:`Please relaunch the background agent for: {{description}}`,continuation:`Continued after background agents`,continuationSystem:`Continued after background work`,backgroundTurn:`Agent is reviewing background results…`,deferred:`Settings change will apply when background agents finish.`,applyNow:`Stop agents and apply now`,policyUnenforceable:`{{provider}} can't turn sub-agents off. Enable “Allow sub-agents” in this project's settings, or use another provider for this mission.`,result:`Result`,count_one:`{{count}} agent`,count_other:`{{count}} agents`,finishedIn:`done in {{elapsed}}`,delegatedHint:`Launched by Specrails on {{provider}} ({{model}}); its cost is counted separately.`},ge={host_degraded:`Core sessions are unavailable for this project after repeated failures, so this turn ran on the classic transport (no background sub-agents). Retry once the cause is fixed.`,journal_locked:`Another Specrails Desktop instance is using this project's agent sessions, so this turn ran on the classic transport. Close the other instance, then retry.`,policy:{subagent_blocked:`The provider started a sub-agent even though sub-agents are off for this project; it was stopped.`},retry:`Retry`,retryFailed:`Still unavailable. Check the app log for the cause.`,dismiss:`Dismiss`,subagents:{delegation_unsupported:`{{provider}} sub-agents need a newer Specrails Core, so this mission's agent launches its own sub-agents.`,driver_unavailable:`{{provider}} is not available to the agent session runtime, so this mission's agent launches its own sub-agents.`}},_e=`Preparing a card…`,ve={placeholder:`Type to interrupt — the agent changes course right away`,send:`Interrupt and send`,sendHint:`Stops the current step and gives the agent your message now`},ye=JSON.parse(`{"missing":{"sessions":"Core agent sessions are turned off or unavailable","flowSessions":"Your Specrails Core cannot interrupt a running agent yet","deriveChange":"Your Specrails Core cannot derive a spec from code yet"},"errors":{"generic":"Flow could not complete that action. Try again.","network":"Specrails could not be reached.","feature_unavailable":"Flow is not available with the installed Specrails Core.","flow_already_open":"This mission already has a Flow. Resume or discard it first.","illegal_transition":"The Flow changed state meanwhile. Refresh and try again.","flow_worktree_missing":"This Flow's copy of the project no longer exists. Check the Flow branch before continuing.","flow_repository_required":"Choose the repository this Flow runs in.","flow_repository_not_git":"Flow needs a Git repository for its branch; a plain folder can't hold one. Choose a Git repository.","flow_repository_unknown":"That repository is no longer part of this project. Choose another one.","flow_repository_missing":"The Flow’s repository is no longer available in this project.","rail_not_empty":"That rail already has specs. Pick a free, empty rail.","flow_already_handed_off":"This Flow was already handed to a rail.","flow_freeze_failed":"Your Flow's changes could not be saved for the hand-off.","flow_head_mismatch":"Your Flow changed during the hand-off. Try again.","flow_handoff_not_adopted":"The rail started without taking over your Flow's changes.","repository_has_no_commits":"This repository has no commits yet. Make an initial commit so Specrails can create an isolated copy of the project.","flow_not_found":"This Flow no longer exists.","flow_failed":"Flow hit an unexpected error. Try again.","conversation_not_found":"This mission no longer exists.","conversation_not_pinned":"Pin this mission to the project before starting a Flow.","flow_not_handed_off":"This Flow is no longer waiting on that run.","flow_rail_unknown":"The rail of that run is unknown. Hand it off again from the Flow strip.","flow_return_busy":"The run is busy with another action. Try again in a moment.","flow_return_not_allowed":"Only a hand-off that stopped before delivery can go back to its Flow.","flow_return_not_found":"That run is not a Flow hand-off.","flow_return_worktree_mismatch":"That run did not take over this Flow's changes.","spec_in_flow":"This spec is already in Flow. Open its mission to continue.","spec_on_rail":"This spec is on a rail. Take it off the rail to start it in Flow.","spec_running":"This spec is running on a rail. Wait for the run to finish.","spec_closed":"This spec is done or cancelled. Reopen it to work on it in Flow.","spec_not_found":"This spec no longer exists.","invalid_ticket_id":"That spec could not be identified."},"entry":{"heading":"Start a Flow","body":"Specrails makes a separate copy of the project on its own Flow branch, where the agent can write code. Your main branch is not touched.","provider":"The agent works with {{provider}} and writes only in the Flow's copy.","providerUnknown":"The agent writes only in the Flow's copy.","repository":{"label":"Repository","hint":"The Flow works in a separate copy of this repository.","choose":"Choose the repository this Flow runs in","loading":"Loading repositories…","loadFailed":"The project repositories could not be loaded. Try again.","suggested":"Suggested by the agent","noGit":"This project has no Git repository. Flow needs one for its branch."},"blocked":{"noProject":"Pin this mission to a project to use Flow.","open":"This mission already has a Flow.","missing":"Flow needs a newer Specrails Core:","unavailable":"Flow is not available right now.","goToFlow":"Go to that Flow"},"cancel":"Cancel","start":"Start Flow","starting":"Starting…","existingSpec":{"label":"Spec #{{id}}","note":"The Flow works on this spec and the agent starts from it. When it is delivered, the spec is rewritten from what was built; its current text is kept as a comment."}},"offer":{"heading":"How do you want to build it?","notNow":"Not now","implementReply":"Let's write the spec first and run Implement.","mode":{"flow":{"title":"Flow","hint":"Build it together on a separate Flow branch; the spec comes at the end.","hintExisting":"Build this spec together on a separate Flow branch; the spec is rewritten from what you build."},"implement":{"title":"Spec + Implement","hint":"Agree on a spec first, then delegate it to a rail.","hintExisting":"Delegate this spec, as written, to a rail."}},"stub":{"flow":"You chose Flow","implement":"You chose spec + Implement","dismissed":"Offer dismissed","handedOff":"Flow handed off to Rail {{rail}}","state":{"active":"Flow in progress","paused":"Flow paused","handed_off":"Flow handed off to a rail","delivered":"Flow delivered","discarded":"Flow discarded","needs-review":"Flow needs review","closed":"Flow closed (branch kept)"},"viewRun":"View run"},"why":"Why the agent asked","waitForReply":"You can choose once the agent finishes this reply.","implementExistingReply":"Let's implement spec #{{id}} on a rail."},"bar":{"controls":"Flow actions","viewChanges":"View changes","resume":"Resume Flow","pause":"Pause Flow","discard":"Discard","discarded":"Flow discarded","files_one":"{{count}} file","files_other":"{{count}} files","filesTitle":"Files changed on the Flow branch","costTitle":"Real cost of this Flow's turns, as billed by the provider","costPartial_one":"{{count}} turn has no provider-reported cost and is not included","costPartial_other":"{{count}} turns have no provider-reported cost and are not included","needsReview":"This Flow's copy of the project is missing. Nothing was deleted; check the Flow branch before continuing.","pausedNote":"Paused. Your changes and the spec are kept; resume whenever you like.","state":{"active":"Flow","paused":"Flow paused","needs-review":"Flow needs review","handed_off":"Handed off to a rail","delivered":"Delivered","discarded":"Discarded","closed":"Closed"},"disabled":{"settling":"Wait until the Flow finishes saving its state","busy":"Wait for the current action to finish","noSpec":"The Flow’s spec isn’t ready yet"},"viewChangesStats":"View changes · {{files}}, +{{additions}} −{{deletions}}","handOff":"Hand off","close":"Close this Flow","closed":"Flow closed. The branch is kept."},"preview":{"open":"Preview","openTitle":"Open the app at {{url}} in your browser","stopping":"Stopping…","more":"App actions","local":"Open on this computer","network":"Open on the local network","localOnly":"Only reachable from this computer. Ask the agent to restart it exposed on the local network to open it from a phone.","stop":"Stop app","stopFailed":"Could not stop the app"},"discard":{"title":"Discard this Flow?","body":"Discarding deletes all of this, and it cannot be undone:","cancel":"Keep Flow","confirm":"Discard Flow","lossFiles_one":"{{count}} changed file","lossFiles_other":"{{count}} changed files","lossNoChanges":"No changed files yet","lossUnknown":"Every change on the Flow branch","lossSpec":"The placeholder spec on the board"},"changes":{"title":"Flow changes","subtitle":"Branch {{branch}} compared with where it started","subtitleNoBranch":"Changes compared with where the Flow started","refresh":"Refresh","loadFailed":"Changes could not be loaded.","empty":"No changes yet.","status":{"added":"Added","modified":"Modified","deleted":"Deleted","renamed":"Renamed","untracked":"New, not tracked"}},"handOff":{"heading":"Turn this Flow into a reviewed PR","loop":"Flow hand-off","launch":"Launch","notYet":"Not yet","engineFallback":"{{provider}} can't run the Flow hand-off on this machine, so the rail's default engine is selected.","cost":"{{cost}} so far","costUnknown":"no billed cost yet","line_one":"{{rail}} will turn your changed file into a reviewed PR. If it fails, your work is safe.","line_other":"{{rail}} will turn your {{count}} changed files into a reviewed PR. If it fails, your work is safe.","lineNoCount":"{{rail}} will turn your changes into a reviewed PR. If it fails, your work is safe."},"review":{"backToFlow":"Back to Flow","backToFlowHint":"Reopen this Flow with the same changes; the agent receives the review on its next turn","relaunch":"Relaunch","relaunchHint":"Try again from the same Flow branch, rail and engine","returned":"Back in Flow. The agent has the review.","relaunched":"Relaunched on Rail {{index}}","returnFailed":"Could not go back to Flow: {{detail}}","relaunchFailed":"Could not relaunch: {{detail}}","backToFlowFailureHint":"Reopen this Flow with the same changes; the agent receives the error on its next turn","returnedFailure":"Back in Flow. The agent has the error."},"failure":{"step":{"derive":"Couldn’t write the spec from your changes","verify":"Couldn’t verify your changes","review":"The review couldn’t finish","fix":"The automatic fixes couldn’t finish","archive":"Couldn’t file the finished spec","settle":"Couldn’t hand the result back","unknown":"The hand-off stopped before it finished"},"cause":"Cause:","next":"Your work is intact. Back in Flow, the agent gets the error.","nextReturned":"Your work is intact. Back in Flow, the agent has the error.","returned":"Returned to Flow","technical":{"title":"Technical details","repository":"Repository","step":"Step","status":"Status","failure":"Failure","detail":"Detail"}},"announce":{"active":"Flow active: the agent writes on the Flow branch.","paused":"Flow paused.","needs-review":"The Flow needs review: its copy of the project is missing.","handed_off":"Flow handed off to a rail.","delivered":"Flow delivered.","discarded":"Flow discarded.","returned":"Back in Flow: the work returned with what the hand-off found.","closed":"Flow closed. Its branch was kept."},"strip":{"label":"Flow","ready":"Ready to turn into a PR","launching":"Handing off to a rail…","launchingOn":"Handing off to {{rail}}…","stillHandingOff":"Still handing off to {{rail}}…","refresh":"Refresh","step":{"derive":"Writing the spec from your changes","verify":"Verifying your changes","review":"Reviewing the change","fix":"Applying the review's fixes","archive":"Filing the finished spec","settle":"Handing the result back"},"headline":"{{state}} · {{files}}"},"mode":{"chip":"Flow","description":"Flow mode: the agent writes on the Flow branch, not on your main branch","placeholder":"Tell the agent what to change in this Flow…"},"panel":{"branch":"Branch","changes":"Changes","cost":"Cost so far","actions":"More Flow actions"},"close":{"title":"Close this Flow?","body":"The conversation leaves Flow. Nothing is deleted:","keptBranch":"Branch kept:","keptSpec":"The spec stays on the board, without the In Flow label","cancel":"Not now","confirm":"Close Flow, keep branch"},"startFromSpec":{"action":"Start in Flow","hint":"Build this spec with the agent on its own Flow branch, in a mission","starting":"Starting Flow…","failed":"Spec #{{id}} could not start in Flow","repository":{"title":"Where should this Flow run?","body":"This project has several Git repositories. The Flow works on its own branch in a separate copy of the one you choose.","fromSpec":"Named in the spec"},"blocked":{"noProject":"Open a project to use Flow","unavailable":"Flow is not available with the installed Specrails Core","inFlow":"Already in Flow","closed":"Done or cancelled specs can't start in Flow","running":"Running on a rail","onRail":"On a rail: take it off the rail first","missionInFlow":"This mission already has a Flow"}}}`),be={title:`What the reviewer asked for`,noFindings:`The hand-off stopped before delivery; your changes are back in this Flow, intact.`,coverage:`The spec explains {{explained}} of {{files}} changed files`,unexplained:`Not explained by any requirement`,moreFiles_one:`+{{count}} more file`,moreFiles_other:`+{{count}} more files`,next:`The Flow agent starts on this now; you can steer or stop it at any time.`,automaticTurn:`Automatic turn · Back to Flow`,titleFailure:`Why the hand-off stopped`},xe={providerInactivity:`The provider stopped responding for too long, so the turn ended. Send your message again to continue.`,toolInactivity:`A tool ran too long without any provider activity, so the turn ended. Send your message again to continue, or ask the agent to split the step.`,generic:`The agent turn failed.`},Se={title:`Flow delivered`,pr:`Open the pull request`,prNumber:`Pull request #{{number}}`,specRewritten:`Spec rewritten from what you built`,specKept:`The spec rewrite did not complete; its draft is kept`,change:`Spec change {{change}}`,changeArchived:`Spec change {{change}} archived`,jira:`Jira issue {{key}}`,jiraPending:`Jira issue being created`},Ce={launching:`Launching on {{rail}}…`,running:`Working`,paused:`Paused. Waiting for you`,pausedReason:`Paused: {{reason}}`,decision:{approval:`Waiting for your approval`,changes:`The reviewer requested changes`,on_review:`Ready for your review`,pr_draft:`Draft PR ready to publish`,no_changes:`Finished without changes`,pr_closed:`PR closed without merging`,generic:`Waiting for your decision`},failed:{generic:`Stopped with an error`,implementation_failed:`The implementation failed`,stalled:`The run stalled`,stuck:`The run got stuck`,provider_limit:`The provider's usage limit stopped it`,launch_failed:`The run could not start`,delivery_failed:`The result could not be delivered`,push_failed:`The branch could not be pushed`,pr_failed:`The PR could not be created`},progressAria:`{{done}} of {{total}} runs finished`,costTitle:`Real cost billed by the provider so far`,costPartial:`Some runs have no billed cost yet and are not included`,costNone:`No billed cost yet`,state:{launching:`Launching:`,running:`Running:`,decision:`Waiting for you:`,failed:`Failed:`,paused:`Paused:`,info:`For your information:`},proposal:`Launch proposed for {{tickets}}`,proposalNoTickets:`Launch proposed`,proposalLabel:`Proposal`,panelLabel:`{{run}} details`,showDetails:`Show details`,withShortcut:`{{label}} ({{keys}})`,cycleHint:`Switch runs: {{keys}}`,hideDetails:`Hide details`,switcher:`Live runs`,more:`More runs ({{count}})`,announce:{settled:`{{run}} finished`,shown:`Showing {{run}}: {{state}}`,needsYou:`{{run}} needs you`},event:{launched:`Launched on {{run}}`,failed:`{{run}} failed: {{reason}}`,openRun:`Show the run`,proposed:`Launch proposed. Waiting for you`,backToFlow:`Back to Flow`,flowReturned:`{{run}} sent the work back to Flow`,delivered:`Delivered: PR {{pr}}`,deliveredNoPr:`Delivered on {{run}}`,superseded:`{{run}} was superseded by a newer run`,discarded:`{{run}} was discarded`,changes:`{{run}}: the reviewer requested changes`},needsYou:`needs you`,opensCard:`Opens the run's card so you can confirm there`,open:{decision:`Open the decision`,failed:`See what failed`,paused:`See why it paused`},attention:{failed:`Needs attention: a run failed`}},we={entered:`Entered Flow`,left:`Left Flow`,turnMark:`Flow`,reason:{started:`started`,returned:`back from a rail`,handed_off:`handed off to a rail`,discarded:`discarded`,closed:`closed, branch kept`}},Te=`Unread`,Ee=`{{count}} unread`,De=`Agent working`,Oe=`Couldn't delete the mission. Try again.`,ke={label:`Interface mode`,mission:`Mission`,board:`Board`,current:`Current mode: {{mode}}. Click to switch.`},Ae={sendFailed:`The message could not be sent.`,stopFailed:`The agent could not be stopped.`,mcpEnableFailed:`MCP could not be enabled.`,removeAttachmentFailed:`The attachment could not be removed.`,sendFailedHint:`Your text is back in the box — press Enter to retry.`,providerSwitchFailed:`Couldn’t switch provider — the previous one is still active.`,modelSwitchFailed:`Couldn’t switch model — the previous one is still active.`,effortSwitchFailed:`Couldn’t switch effort — the previous one is still active.`},je={ariaLabel:`Message to the agent`,dropFiles:`Drop files to attach`,uploading:`Uploading…`},Me={ariaLabel:`Mission conversation`,agentWorking:`Agent is working…`,agentReplied:`Agent replied`,newMessages:`New messages`},Ne={you:`You`,agent:`Agent`},Pe={groupLabel:`Suggested replies`,shortcut:`Alt+{{n}}`},Fe=`Copied`,Ie=`Copy code`,Le=`Reply, or @ to reference…`,Re=`Send (Enter) · New line (Shift+Enter)`,ze=`Undo`,Be=`This provider can't read images yet — {{count}} images were not attached`,Ve={reference:`Reference a spec`,action:`Run an action`,plan:`Plan a new spec`,planSpec:`Help me plan a new spec: `},He=`⇧⇥ changes what the agent may do · ↑ recalls your last prompt`,Ue={arrived:`Arrived at review — PR #{{number}}`,arrivedNoNumber:`Arrived at review`,openPr:`Open PR`},We={greeting:`What should ship next in {{project}}?`,greetingNoProject:`What should ship next?`,statusTodo_one:`{{count}} to do`,statusTodo_other:`{{count}} to do`,statusReview_one:`{{count}} waiting for review`,statusReview_other:`{{count}} waiting for review`,statusRunning_one:`{{count}} running`,statusRunning_other:`{{count}} running`},Ge={title:e,subtitle:t,trigger:n,composerPlaceholder:r,send:i,stop:a,copy:o,attachment:s,maximize:c,restore:l,minimize:u,close:d,newConversation:f,emptyTitle:p,emptyHint:m,thinking:h,connecting:g,consultingCode:_,size:v,model:y,history:b,queue:x,receipt:S,queueEdit:C,git:w,provider:T,tier:E,approval:D,project:O,palette:k,mission:A,noProvider:j,degraded:M,toolCard:N,error:P,chip:F,newAgent:I,switchToAgent:L,switchToKanban:R,search:z,home:B,favoriteMissions:V,untitled:H,workspace:U,attachFile:W,deleteConversation:G,confirmDeleteConversation:K,addFavoriteConversation:q,removeFavoriteConversation:J,confirmShort:Y,imagesUnsupported:X,effort:ne,prCard:Z,specDraft:Q,problemFrame:$,refs:re,header:ie,emptyTitleCodeRain:ae,activity:oe,backgroundProcess:se,window:ce,railCard:le,runCard:ue,runFailure:de,split:fe,runtimeSelector:pe,missionPlaceholders:me,subagents:he,sessionNotice:ge,cardPending:_e,interrupt:ve,flow:ye,flowReturn:be,turnErrors:xe,flowDelivered:Se,runStrip:Ce,flowBoundary:we,unread:Te,unreadCount:Ee,live:De,deleteFailed:Oe,modeSwitch:ke,errors:Ae,composer:je,conversation:Me,message:Ne,options:Pe,copied:Fe,copyCode:Ie,composerReplyPlaceholder:Le,sendHint:Re,undo:ze,imagesUnsupportedCount:Be,starter:Ve,emptyLegend:He,delivery:Ue,missionHome:We};export{te as t};