specrails-desktop 2.64.2 → 2.65.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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={title:`言語`,description:`Desktop 全体の UI 言語。即座に適用され、再起動は不要です。`,selectLabel:`インターフェース言語`,updateFailed:`言語設定を保存できませんでした`},t={title:`プロジェクト設定`,loadFailed:`プロジェクト設定を読み込めませんでした`},n={saveFailed:`保存に失敗しました`},r={title:`パイプラインテレメトリ`,description:`診断エクスポート用にトークン使用量、フェーズ時間、サブエージェントの活動を記録します。デフォルトはオンです。`,toggleLabel:`パイプラインテレメトリを有効化`,toggleDescription:`オンにすると、パイプラインジョブの OTEL データがローカルに記録されます。ジョブカードの <mono>診断をエクスポート</mono> ボタンからダウンロードできます。`,enabled:`パイプラインテレメトリを有効にしました`,disabled:`パイプラインテレメトリを無効にしました`,saveFailed:`テレメトリ設定の保存に失敗しました`},i={title:`レールのプレプロンプト`,description:`implement のレールジョブで、スペックコンテキストの後・実行前に追加されるプロジェクト固有の指示です。`,label:`プレプロンプト`,placeholder:`例: 段階的な変更を優先し、マイグレーションの後方互換性を保ち、レールの変更ごとにテストを追加すること。`,helper:`すべてのレール実装の実行に常に添えたい、安定したプロジェクト指針に使用してください。`,saveButton:`プレプロンプトを保存`,cleared:`プレプロンプトをクリアしました`,saved:`プレプロンプトを保存しました`,saveFailed:`プレプロンプトの保存に失敗しました`},a={title:`Freestyle プレプロンプト`,description:`Freestyle で選択したプロバイダーに送られる指示です。Freestyle は OpenSpec パイプラインをスキップし、このプレプロンプトとスペックテキストをプロバイダーに渡して自律的に実装させます。空欄の場合は組み込みのデフォルトを使用します。`,label:`Freestyle プレプロンプト`,placeholder:`空欄の場合はデフォルトの Freestyle 指示を使用します。`,helper:`スペックテキストはこのプレプロンプトの後に自動で追加されます。空欄 = デフォルト。`,saveButton:`Freestyle プレプロンプトを保存`,resetToDefault:`Freestyle プレプロンプトをデフォルトにリセットしました`,saved:`Freestyle プレプロンプトを保存しました`,saveFailed:`Freestyle プレプロンプトの保存に失敗しました`},o={title:`予算`,description:`このプロジェクトの1日あたりの支出上限を設定します。上限に達するとキューは自動で一時停止します。`,dailyLabel:`日次上限`,dailyHelper:`支出は過去24時間で集計されます。上限に達するとキューは一時停止します。`,perJobLabel:`ジョブ単位のコストアラート(USD)`,perJobHelper:`このプロジェクトの単一ジョブがこの金額を超えたときにアラートします。`,perJobPlaceholder:`例: 0.50`,invalidNumber:`正の数値を入力するか、無効にするには空欄のままにしてください`,perJobAlertDisabled:`ジョブ単位のコストアラートを無効にしました`,alertSet:`{{amount}} を超えるジョブにアラートを設定しました`,saveThresholdFailed:`しきい値の保存に失敗しました`,dailyCurrent:`現在 1 日 {{amount}}`,dailyNone:`1 日の上限は未設定`},s={nav:{appearance:`外観`,specrailsAgents:`AI プロバイダー`,code:`コード`,terminal:`ターミナル`,updates:`更新`,mobile:`モバイル`,mcp:`MCP`,projects:`プロジェクト`,advanced:`詳細`,webhooks:`Webhooks`,about:`概要`,effects:`エフェクト`,subscriptionUsage:`サブスクリプション使用量`},title:`Desktop 設定`,description:`外観、AI プロバイダー、アップデート、Desktop 全体の設定。`,registeredProjects:`登録済みプロジェクト`,noProjects:`登録されたプロジェクトはまだありません`,techUrlDescription:`specrails-tech API のベース URL(デフォルト: http://localhost:3000)`,techUrlSaved:`specrails-tech の URL を保存しました`,techUrlSaveFailed:`URL の保存に失敗しました`,budgetAlertsHeading:`予算とアラート`,dailyBudgetLabel:`Desktop 日次上限`,dailyBudgetHelper:`全プロジェクト共通のグローバルな日次支出上限。超過するとキューは自動で一時停止します。`,perJobHelper:`単一ジョブがこの金額を超えたときにアラートします。無効にするには空欄のままにします。`,costAlertsDisabled:`コストアラートを無効にしました`,projectRemoved:`プロジェクトを削除しました`,projectRemoveFailed:`プロジェクトの削除に失敗しました`,onboardingHeading:`オンボーディング`,platformTour:`プラットフォームツアー`,platformTourDescription:`ウェルカムウィザードを再生して主要機能を確認します。`,replayTour:`ツアーを再生`,infoHeading:`Desktop 情報`,infoPort:`ポート`,infoProjects:`プロジェクト`,infoDb:`Desktop DB`,removeProjectConfirmTitle:`{{name}} を削除しますか?`,removeProjectConfirmBody:`{{name}} の Specrails への登録が解除され、実行中の作業は停止します。ディスク上のリポジトリのファイルは削除されません。後でフォルダーを再度追加できます。`,navLabel:`設定セクション`,navGroups:{personal:`個人`,agents:`エージェント`,system:`システム`},unsavedChanges:`未保存の変更`,dailyBudgetCurrent:`現在 1 日 {{amount}}`,dailyBudgetNone:`1 日の上限は未設定`},c={heading:`OS 通知`,description:`ジョブの完了・失敗時にネイティブのデスクトップ通知を表示します。通知はタブがフォーカスされていないときのみ表示されます。`,enableLabel:`OS 通知を有効化`,notifyOn:`通知の対象:`,filterAll:`すべて(完了と失敗)`,filterCompleted:`完了のみ`,filterFailed:`失敗のみ`,enabledToast:`OS 通知を有効にしました`,disabledToast:`OS 通知を無効にしました`},l={heading:`アウトバウンド Webhook`,description:`Desktop のイベントを外部ツール(Slack、Zapier、CI/CD)に通知します。シークレットが設定されている場合、リクエストは <code>X-Specrails-Signature</code> で署名されます。`,eventJobCompleted:`ジョブ完了`,eventJobFailed:`ジョブ失敗`,eventDailyBudgetExceeded:`日次予算超過`,disable:`無効化`,enable:`有効化`,sendTestPing:`テスト ping を送信`,addHeading:`Webhook を追加`,secretPlaceholder:`署名シークレット(任意)`,addButton:`Webhook を追加`,urlRequired:`URL は必須です`,selectEvent:`イベントを1つ以上選択してください`,added:`Webhook を追加しました`,addFailed:`Webhook の追加に失敗しました`,updateFailed:`Webhook の更新に失敗しました`,removed:`Webhook を削除しました`,removeFailed:`Webhook の削除に失敗しました`,testPingSent:`テスト ping を送信しました`,testPingFailed:`テスト ping の送信に失敗しました`,removeConfirmTitle:`Webhook を削除しますか?`,removeConfirmBody:`{{url}} は Desktop のイベントを受信しなくなります。`,urlLabel:`Webhook URL`},u={title:`ターミナルパネル`,desktopDescription:`プロジェクト別のオーバーライドがない限り、すべてのプロジェクトに適用される Desktop 全体のデフォルトです。`,projectDescription:`ターミナルパネルのプロジェクト別オーバーライド。Desktop のデフォルトを継承するには、フィールドを変更しないでください。`,fontFamily:`フォントファミリー`,fontSize:`フォントサイズ({{min}}–{{max}})`,renderMode:`レンダリングモード`,copyOnSelect:`選択時にコピー`,shellIntegration:`シェル統合(OSC 133 マーク)`,notifyLongRunning:`長時間実行コマンドの通知`,longCommandThreshold:`長時間コマンドのしきい値(ms)`,imageRendering:`インライン画像レンダリング(Sixel + iTerm2)`,browserShortcutUrl:`ブラウザショートカット URL`,quickScript:`クイックスクリプト(アクティブなターミナルに貼り付け — Enter は手動)`,reset:`リセット`,unsavedChanges:`未保存の変更`,clearOverride:`オーバーライドをクリア`,clear:`クリア`,inheritingDefault:`Desktop のデフォルトを継承中`,nothingToSave:`保存する変更はありません`,saved:`ターミナル設定を保存しました`},d={heading:`Code セクション`,summaryLanguage:`要約の言語`,monthlyBudget:`月次予算(USD)`,budgetHelper:"暦月ごとの `surface=file-summary` 支出の上限。ユーザーが開始した再生成は上限を超えられます。"},f={taglines:{dracula:`オリジナル — 紫がかったダークにネオンのアクセント`,"aurora-light":`プレミアムライト — Linear風のインディゴと温かみのあるオフホワイト`,"obsidian-dark":`グラファイト・プロ — ニュートラルなほぼ黒に、落ち着いた紫のアクセントひとつ`,specrails:`ブランドテーマ — 深いネイビーインディゴに鮮やかなシアン`,"code-rain":`蛍光ターミナル — 緑がかった漆黒にソフトミント`,galaxy:`深宇宙のブルーと輝くブレードの軌跡`},heading:`外観`,themeGroupLabel:`テーマ`,currentlyActive:`現在アクティブ`,updateFailed:`テーマの更新に失敗しました`},p={heading:`モバイルコンパニオン`,description:`スマートフォンの SpecRails Companion アプリから Specrails を操作します。通信は 100% ローカルネットワーク経由です。デフォルトはオフです。ペアリング済みのスマートフォンは、MCP の権限レベルが許す範囲で、受信トレイから質問への回答、再開、再試行、ドラフト PR の作成ができます。マージ、破棄、設定はこのコンピューターでのみ行えます。`,accessOn:`モバイルアクセス オン`,accessOff:`モバイルアクセス オフ`,listeningOnPort:`ポート {{port}} で待機中`,notListening:`待機していません`,turnOn:`オンにする`,turnOff:`オフにする`,pairWebDevice:`Web コンパニオンをペアリング`,reset:`リセット`,resetConfirm:`モバイル ID をリセットしますか?ペアリング済みのすべてのデバイスが無効化され、再ペアリングが必要になります。`,identityReset:`モバイル ID をリセットしました`,enableFailed:`モバイルアクセスを有効にできませんでした`,disableFailed:`モバイルアクセスを無効にできませんでした`,windowsFirewall:`初回有効化時に Windows ファイアウォールが SpecRails サーバーの許可を求めます — 「プライベートネットワークで許可」を選択してください。`,pairedDevices:`ペアリング済みデバイス`,noDevices:`ペアリングされたデバイスはまだありません。`,revokeDevice:`{{name}} を無効化`,resetConfirmTitle:`モバイル ID をリセットしますか?`},m={title:`Web コンパニオンをペアリング`,description:`スマートフォンで specrails.dev/companion-app を開き、それでこのコードをスキャンしてください。`,startFailed:`ペアリングを開始できませんでした: {{error}}`,showThenScan:`スマートフォンでこれをスキャンしたら、「スマートフォンのコードをスキャン」をタップし、カメラをスマートフォンに向けてください。`,scanAnswer:`スマートフォンのコードをスキャン`,scanning:`カメラをスマートフォンのコードに向けてください…`,cameraFailed:`カメラを利用できません`,notAnswer:`その QR はペアリング応答ではありません。`,connecting:`接続中…`,paired:`✓ ペアリング済み`,pairedToast:`Web コンパニオンをペアリングしました`,answerRejected:`デスクトップがそのコードを拒否しました。新しいコードを生成して再試行してください。`,copyCode:`コードをコピー`,codeCopied:`コードをコピーしました`,cancel:`キャンセル`},h={heading:`Specrails Core`,installed:`インストール済み:`,updateAvailable:`アップデートあり: {{version}}`,upToDate:`最新です`,neverChecked:`未確認`,check:`アップデートを確認`,checking:`確認中…`,update:`{{version}} に更新`,downloading:`ダウンロード中…`,materializing:`インストール中…`,affectsAll:`すべてのプロジェクトに適用 — 再起動不要。`,unavailable:`このビルドではコアの更新は利用できません。`,toastDone:`Specrails Core を {{version}} に更新しました`,toastUpToDate:`Specrails Core は最新です`,runtime:`ランタイム: {{version}}`,bundled:`Desktop 同梱: {{version}}`,sources:{override:`明示的な指定`,managed:`Desktop が管理`,bundled:`Desktop 同梱`,local:`ローカルパッケージ`,global:`外部 CLI`},repair:`{{version}} への更新を完了`,stableFallback:`specrails-core にはまだ安定版がないため、Core は当面最新に従います。`,updateFailed:`Core の更新に失敗しました`,checkFailed:`アップデートの確認に失敗しました`,loadError:`Core の状態を更新できませんでした。`},g={heading:`アップデートチャネル`,loading:`チャネルを読み込み中…`,scope:`Specrails Desktop と specrails-core フレームワークの両方に適用されます。`,saved:`アップデートチャネル: {{channel}}`,saveFailed:`アップデートチャネルを変更できませんでした`,latest:{label:`最新`,description:`リリースされたらすぐに受け取ります。新機能と修正をいち早く。`},stable:{label:`安定版`,description:`最新チャネルで 1 週間以上 CI が成功したうえで昇格したリリースのみ。Core は stable タグに従います。`}},_={heading:`Specrails Desktop`,installed:`インストール済み:`,check:`アップデートを確認`,checking:`確認中…`,upToDate:`最新バージョンです`,updateAvailable:`アップデートあり: {{version}}`,autoHint:`起動時と6時間ごとに自動確認します。`,unavailable:`アップデートはデスクトップアプリでのみ利用できます。`,toastUpToDate:`Specrails Desktop は最新です`,toastCheckFailed:`アップデートの確認に失敗しました`,stableUnavailable:`安定版チャネルに昇格したリリースはまだありません。最新に切り替えるか、後でもう一度お試しください。`},v={title:`{{name}} — 設定`,description:`プロジェクト設定:プロンプト、ブランチ、環境、予算、テレメトリ、ルール、ターミナル。`,nav:{general:`一般`,branch:`ブランチ`,environment:`環境`,budget:`予算`,telemetry:`テレメトリ`,terminal:`ターミナル`,agentRuntime:`検証コマンド`,subagents:`サブエージェント`,rules:`ルール`,recentlyDeleted:`最近削除した項目`},navLabel:`プロジェクト設定セクション`},y={title:`統合ブランチ`,description:`並列レールが分岐し、ドラフト PR の対象となるブランチです。空欄にするとリポジトリのデフォルトブランチに自動解決されます。`,placeholder:`自動(リポジトリのデフォルト)`,resolved:`レールは <mono>{{branch}}</mono> から分岐します`,save:`ブランチを保存`,saved:`統合ブランチを保存しました`,saveFailed:`統合ブランチを保存できませんでした`},b={title:`Worktree 環境`,description:`このプロジェクトが rail ジョブと分離された loop worktree に渡す環境変数名を選びます。保存されるのは名前だけで、値は実行開始時に読み取られ、Desktop プロセスにない場合は login shell から復元を試みます。`,label:`環境変数`,placeholder:`NODE_AUTH_TOKEN`,helper:`Enter または追加を押します。カンマやスペース区切りで複数の名前を貼り付けられます。`,add:`追加`,empty:`このプロジェクト固有の変数はまだ設定されていません。`,remove:`{{name}} を削除`,save:`環境を保存`,saved:`Worktree 環境を保存しました`,saveFailed:`Worktree 環境を保存できませんでした`,invalidName:`{{name}} は有効な環境変数名ではありません`,noValues:`ここには変数名だけを追加してください。KEY=value のシークレットは入力しないでください。`,status:{inherited:`継承`,recovered:`ログインシェルから取得`,notDefined:`未定義`,probeTimeout:`シェルがタイムアウト`,probeFailed:`シェルの読み取りに失敗`,pending:`確認中…`},hint:{defaultShell:`ログインシェル`,inherited:`Specrails の起動時の環境で利用できます。`,recovered:`{{shell}} から取得しました。実行には自動的に渡され、値が表示されることはありません。`,notDefined:`{{shell}} は {{name}} を export していません。シェルのプロファイルに export を追加してから、再確認してください。`,notDefinedInherited:`{{name}} は Specrails の起動時の環境に設定されていません。そこで設定してから Specrails を再起動してください。`,probeTimeout:`{{shell}} の起動に {{seconds}} 秒以上かかりました。プロファイルを軽くするか SPECRAILS_LOGIN_SHELL_TIMEOUT_MS を増やしてから、再確認してください。`,probeFailed:`Specrails は {{shell}} を読み取れませんでした。プロファイルを修正するか、ターミナルから Specrails を起動してから、再確認してください。`,pending:`Specrails がログインシェルを読み取っています。`},recheck:`再確認`,checking:`確認中…`,lastChecked:`最終確認: {{time}}`,statusUnavailable:`環境のステータスを読み取れませんでした。`,unresolvedTitle:`次の変数なしで実行が開始されます:`},x={title:`エージェント環境`,description:`このプロジェクトのエージェント(レールジョブ、ループ、ミッション、チャット、スペック補助)が受け取る環境変数を選択します。`,modes:{inherit:{label:`継承(既定)`,description:`エージェントは Specrails の起動時の環境をすべて受け取り、上記の名前も追加されます。従来どおりの動作です。`},minimal:{label:`最小`,description:`エージェントは許可リスト(PATH、HOME、ロケール、一時ディレクトリ、端末、プロキシ、証明書)、Specrails 自身の変数、選択したプロバイダーのサインイン用変数、上記の名前だけを受け取ります。クラウドやデータベースの認証情報など、それ以外は渡されません。`}},saved:{inherit:`エージェントは環境をすべて継承します`,minimal:`エージェントは最小環境を受け取るようになりました`},saveFailed:`エージェント環境を保存できませんでした`,namesTitle:`最小モードで渡される変数`,shared:`すべてのエージェント`,passthrough:`プロジェクトの名前(上記)`,noPassthrough:`プロジェクトの名前は設定されていません。`,provider:`{{provider}} の場合はさらに`,noProviderNames:`現在は未設定です({{patterns}} を受け付けます)。`,namesHelp:`表示されるのは名前だけで、値は表示されません。変更はこの後に起動するエージェントに適用されます。開いているミッションのセッションは再起動するまで環境を保持します。ツールに別の変数が必要な場合は、上でその名前を追加してください。`,statusUnavailable:`変数の一覧を読み込めませんでした。`},S={heading:`エフェクト`,description:`アプリ内の視覚的な演出。それぞれここでオフにできます。`,thinkingHalo:{label:`エージェントコンポーザーの思考ハロー`,description:`エージェントが考えたり書いたりしている間、ビルダーの回転リングがコンポーザーの周りで光ります。ターン開始時にフェードイン、返答完了時にフェードアウトします。`},reducedMotion:`システムの「視差効果を減らす」設定に従い、リングは静的な光のままになります。`,preview:`プレビュー`,previewThinking:`考え中…`},C={title:`サブエージェント`,stateOn:`エージェントはサブエージェントを起動できます。`,stateOff:`エージェントはサブエージェントなしで単独で作業します。`,explainParallel:`サブエージェントを使うと、エージェントは並行して動くヘルパーに作業を任せられます。ヘルパーは返信後も作業を続け、終わると報告します。`,explainCost:`サブエージェントはそれぞれ独自にトークンを消費するため、1 回の依頼でもコストが大きく増えることがあります。`,enabled:`サブエージェントを許可しました`,disabled:`サブエージェントを無効にしました`,saveFailed:`サブエージェントの設定を保存できませんでした`,project:{description:`このプロジェクトのミッション、探索、リファインのエージェントにサブエージェントの使用を許可します。既定ではオフです。`,toggleLabel:`このプロジェクトでサブエージェントを許可`,explainScope:`Implement パイプラインには影響しません。サブエージェントが動作中のミッションは、それらの完了後に変更を適用します。`},global:{description:`プロジェクトに属さないミッションにサブエージェントの使用を許可します。既定ではオフです。`,toggleLabel:`プロジェクトのないミッションでサブエージェントを許可`,explainScope:`各プロジェクトにはプロジェクト設定に独自の設定があります。サブエージェントが動作中のミッションは、それらの完了後に変更を適用します。`},runtime:{label:`サブエージェントの実行環境`,same:`ミッションのエージェントと同じ`,sameHint:`サブエージェントはミッションのエージェントと同じプロバイダー・モデル・エフォートを使い、その CLI がネイティブに起動します。`,chosenHint:`{{provider}} のミッションは、このモデルで自身のサブエージェントを起動します。ほかのプロバイダーでは、Specrails が {{provider}} で起動します。`,providerLabel:`サブエージェントのプロバイダー`,modelLabel:`サブエージェントのモデル`,effortLabel:`サブエージェントのエフォート`,claudeEffortHint:`Claude 自身のサブエージェントはエフォートを無視します。Specrails が起動する場合に適用されます。`,saved:`サブエージェントは {{provider}} で実行されます`,reset:`サブエージェントは再びミッションのエージェントに従います`,confirm:{title:`サブエージェントを {{provider}} で実行しますか?`,body:`別のプロバイダーのミッションでは、サブエージェントはネイティブではなくなります。Specrails がミッションの CLI の代わりに、それぞれを独立した {{provider}} セッションとして起動します。`,cost:`遅くなり、コストが増える場合があります。各サブエージェントはミッションのエージェントと共有できるプロンプトキャッシュなしでコールドスタートします。`,control:`より高い制御と柔軟性:プロバイダーの組み合わせ、モデルとエフォートの選択、サブエージェントごとの実コストの確認、ミッションの返信後も作業を継続できます。`,native:`すでに {{provider}} を使うミッションは、このモデルとエフォートでネイティブなサブエージェントを維持します。`,cancel:`ミッションと同じままにする`,accept:`{{provider}} を使う`}}},w={title:`エージェント操作の監査ログ`,description:`エージェントが読み取り・書き込み・実行・MCP 呼び出し・取得した内容をプロジェクトごとに記録します。各ジョブとレビューパケットから JSONL または CSV でエクスポートできます。`,retentionLabel:`保持期間`,daysUnit:`日`,caveat:`古いエントリは起動時と毎日削除されます。読み取りの網羅性は各プロバイダーのストリームに依存します。内容や環境変数の値は保存されません。`,save:`保持期間を保存`,saved_one:`エージェントの操作を {{count}} 日間保持します`,saved_other:`エージェントの操作を {{count}} 日間保持します`,saveFailed:`監査ログの保持期間を保存できませんでした`,invalidDays:`1 から {{max}} までの整数の日数を入力してください`},T={title:`レビュー上限`,description:`同時にレビュー待ちにできる納品の数を制限し、決定できる速さ以上に新しい作業が溜まらないようにします。`,label:`レビュー待ちの納品数`,help:`推奨は {{suggested}} です。レビュー中もレールを動かし続けるのに十分な数です。実行中の納品、未決定の納品、アプリが作成したオープンな PR がカウントされます。既存の納品への変更は常に可能です。空欄にすると上限なしになります。`,placeholder:`上限なし`,useSuggested:`{{suggested}} を使う`,invalid:`1〜{{max}} の整数を入力するか、上限なしの場合は空欄にしてください。`,saved_one:`レビュー上限を {{count}} に設定しました`,saved_other:`レビュー上限を {{count}} に設定しました`,removed:`レビュー上限を解除しました`,saveFailed:`レビュー上限を保存できませんでした`},E={title:`既存プロジェクトへの定着`,description:`プロジェクトの既存の振る舞いを実行が尊重するためのオプション機能です。各機能には対応する Core が必要です。`,coreRequired:`インストール済みの Core はまだ対応していません。有効にするには Core を更新してください。`,saveFailed:`設定を保存できませんでした`,jiraPostClarifications:{label:`アーキテクトの確認事項を Jira に投稿`,description:`アーキテクトの質問で実行が一時停止したとき、または前提を置いて続行したときに、リンクされた Jira 課題にコメントとして投稿します。そこへの返信は確認事項としてスペックに記録されます。`,enabled:`確認事項を Jira に投稿します`,disabled:`確認事項は Specrails 内にとどめます`},baselineOnTouch:{label:`変更時のベースライン`,description:`どのスペックにも記述されていないコードに変更が及ぶ場合、まず特性テスト(変更前のコードで実証)と最小限の現状スペックを作成します。コストが追加され、別途表示されます。`,enabled:`変更時のベースラインを有効にしました`,disabled:`変更時のベースラインを無効にしました`}},D={title:`プロジェクトルール`,description:`プロジェクトが既に実行しているチェックと文書化された各ルールを、「適用済み」「自動化可能」「人による確認のみ」に分類します。「人による確認のみ」のルールは各レビューパケットに表示されます。`,rerun:`インベントリを再実行`,running:`インベントリ実行中…`,coreRequired:`インストール済みの Core はルールインベントリに対応していません。実行するには Core を更新してください。`,missing:`インベントリはまだありません。実行すると、プロジェクトのゲートとルールが一覧表示されます。`,invalid:`ルールファイルを読み込めませんでした:{{message}}`,inventoryDone:`ルールインベントリを更新しました`,inventoryFailed:`ルールインベントリに失敗しました`,specCreated:`スペック #{{id}} を作成しました`,specFailed:`スペックを作成できませんでした`,status:{automatable:`自動化可能`,humanOnly:`人による確認のみ`,enforcedBy:`適用済み`,unclassified:`未分類`},generatedAt:`{{date}} に生成`,gates_other:`ゲート {{count}} 件`,gatesHint:`検証チェックが未設定の場合、単純なゲートコマンドがエージェントランタイム設定で最初に提案されます。`,enforcedBy:`{{check}} により適用`,proposedCheck:`提案されたチェック:{{check}}`,createSpec:`スペックを作成`,dropped_other:`形式に合わない {{count}} 件の項目をスキップしました`,classification:{offline:`ルールはオフラインで収集され、まだ分類されていません。プロバイダーを設定してインベントリを再実行してください。`,unavailable:`ルールを分類するプロバイダーが設定されていません。`,failed:`ルールの分類に失敗しました。`,empty:`文書化されたルールが見つかりませんでした。`,unknown:`ルールは分類されていません。`},gates_one:`ゲート {{count}} 件`,dropped_one:`形式に合わない {{count}} 件の項目をスキップしました`,autoRunning:`セットアップ後のインベントリを実行中です。完了するとこの一覧が更新されます。`,lastRun:{setupFailed:`セットアップ後の自動インベントリが失敗しました ({{date}})。`,manualFailed:`前回のインベントリ実行が失敗しました ({{date}})。`,retryHint:`上記の原因を解決してから、インベントリを再実行してください。`,setupDone:`セットアップ後に自動でインベントリを作成しました。`}},O={heading:`エディター`,description:`レビューパケットの「エディターで開く」で使うエディターです。このコンピューターに保存されます。`,label:`ファイルを開くエディター`,names:{vscode:`VS Code`,cursor:`Cursor`,jetbrains:`JetBrains IDE`}},k=`上限は 分析 ▸ 予算 で編集します。`,A=`予算を開く`,j=`設定を開く`,M={density:{title:`表示密度`,description:`カードや行が占める余白の大きさです。ボード、ジョブ一覧、ジョブのストーリーに適用されます。保存したボードビューは独自のレイアウトを保ちます。`,comfortable:`ゆったり`,comfortableHint:`余裕のあるカードと行`,compact:`コンパクト`,compactHint:`画面に多くのスペックと行を表示`,resetBoard:`ボードにも適用する`,resetBoardDone:`このプロジェクトのボードもこの設定に従います。`},motion:{title:`視覚効果を減らす`,description:`OSの設定とは別に、Specrails内のアニメーションとトランジションをオフにします。`,system:`システムに従う`,systemHint:`OSの設定を使用`,reduce:`減らす`,reduceHint:`常に落ち着いた表示:アニメーションなし`,full:`フルモーション`,fullHint:`OSが控えめを求めてもアニメーションを表示`}},N={language:e,page:t,errors:n,telemetry:r,prePrompt:i,freestylePrePrompt:a,budget:o,desktop:s,notifications:c,webhooks:l,terminal:u,codeSection:d,appearance:f,mobile:p,pairWeb:m,coreUpdate:h,updateChannel:g,appUpdate:_,projectDialog:v,integrationBranch:y,worktreeEnv:b,agentEnv:x,effects:S,subagents:C,agentAudit:w,reviewWip:T,anchoring:E,rules:D,editorSection:O,budgetMoved:k,openBudget:A,openSettings:j,accessibility:M};export{M as accessibility,w as agentAudit,x as agentEnv,E as anchoring,_ as appUpdate,f as appearance,o as budget,k as budgetMoved,d as codeSection,h as coreUpdate,N as default,s as desktop,O as editorSection,S as effects,n as errors,a as freestylePrePrompt,y as integrationBranch,e as language,p as mobile,c as notifications,A as openBudget,j as openSettings,t as page,m as pairWeb,i as prePrompt,v as projectDialog,T as reviewWip,D as rules,C as subagents,r as telemetry,u as terminal,g as updateChannel,l as webhooks,b as worktreeEnv};
@@ -0,0 +1 @@
1
+ var e={title:`Lingua`,description:`Lingua della UI per tutto Desktop. Si applica all'istante — nessun riavvio necessario.`,selectLabel:`Lingua dell'interfaccia`,updateFailed:`Impossibile salvare la preferenza di lingua`},t={title:`Impostazioni progetto`,loadFailed:`Impossibile caricare la configurazione del progetto`},n={saveFailed:`Salvataggio non riuscito`},r={title:`Telemetria della pipeline`,description:`Cattura l'uso dei token, le durate delle fasi e l'attività dei subagent per l'export diagnostico. Attivata per impostazione predefinita.`,toggleLabel:`Abilita la telemetria della pipeline`,toggleDescription:`Quando attiva, i dati OTEL dei job della pipeline vengono catturati localmente. Usa il pulsante <mono>Esporta diagnostica</mono> su qualsiasi card di job per scaricarli.`,enabled:`Telemetria della pipeline abilitata`,disabled:`Telemetria della pipeline disabilitata`,saveFailed:`Salvataggio dell'impostazione di telemetria non riuscito`},i={title:`Pre-prompt dei rail`,description:`Istruzioni extra specifiche del progetto aggiunte ai job rail di implement dopo il contesto della spec e prima dell'esecuzione.`,label:`Pre-prompt`,placeholder:`Esempio: preferisci modifiche incrementali, mantieni le migrazioni retrocompatibili e aggiungi test per ogni modifica del rail.`,helper:`Usalo per indicazioni stabili di progetto che devono accompagnare ogni run di implementazione su rail.`,saveButton:`Salva pre-prompt`,cleared:`Pre-prompt rimosso`,saved:`Pre-prompt salvato`,saveFailed:`Salvataggio del pre-prompt non riuscito`},a={title:`Pre-prompt Freestyle`,description:`Istruzione inviata al provider selezionato in Freestyle. Freestyle salta la pipeline OpenSpec — consegna al provider questo pre-prompt più il testo della spec e lo lascia implementare in autonomia. Lascia vuoto per usare il default integrato.`,label:`Pre-prompt Freestyle`,placeholder:`Lascia vuoto per usare l'istruzione Freestyle predefinita.`,helper:`Il testo della spec viene aggiunto automaticamente dopo questo pre-prompt. Vuoto = default.`,saveButton:`Salva pre-prompt Freestyle`,resetToDefault:`Pre-prompt Freestyle ripristinato al default`,saved:`Pre-prompt Freestyle salvato`,saveFailed:`Salvataggio del pre-prompt Freestyle non riuscito`},o={title:`Budget`,description:`Imposta un tetto di spesa giornaliero per questo progetto. La coda si mette in pausa automaticamente al raggiungimento del limite.`,dailyLabel:`Limite giornaliero`,dailyHelper:`La spesa è calcolata sulle ultime 24 ore. La coda si mette in pausa quando il limite è raggiunto.`,perJobLabel:`Avviso di costo per job (USD)`,perJobHelper:`Avvisa quando un singolo job di questo progetto supera questo importo.`,perJobPlaceholder:`es. 0.50`,invalidNumber:`Inserisci un numero positivo o lascia vuoto per disabilitare`,perJobAlertDisabled:`Avviso di costo per job disabilitato`,alertSet:`Avviso impostato per i job oltre {{amount}}`,saveThresholdFailed:`Salvataggio della soglia non riuscito`,dailyCurrent:`Attualmente {{amount}} al giorno`,dailyNone:`Nessun limite giornaliero`},s={nav:{appearance:`Aspetto`,specrailsAgents:`Provider di IA`,code:`Codice`,terminal:`Terminale`,updates:`Aggiornamenti`,mobile:`Mobile`,mcp:`MCP`,projects:`Progetti`,advanced:`Avanzate`,webhooks:`Webhooks`,about:`Info`,effects:`Effetti`,subscriptionUsage:`Utilizzo abbonamenti`},title:`Impostazioni Desktop`,description:`Aspetto, provider di IA, aggiornamenti e preferenze generali di Desktop.`,registeredProjects:`Progetti registrati`,noProjects:`Nessun progetto ancora registrato`,techUrlDescription:`URL base per l'API specrails-tech (default: http://localhost:3000)`,techUrlSaved:`URL di specrails-tech salvato`,techUrlSaveFailed:`Salvataggio dell'URL non riuscito`,budgetAlertsHeading:`Budget e avvisi`,dailyBudgetLabel:`Limite giornaliero di Desktop`,dailyBudgetHelper:`Limite di spesa giornaliero globale su tutti i progetti. Le code si mettono in pausa automaticamente al superamento.`,perJobHelper:`Avvisa quando un singolo job supera questo importo. Lascia vuoto per disabilitare.`,costAlertsDisabled:`Avvisi di costo disabilitati`,projectRemoved:`Progetto rimosso`,projectRemoveFailed:`Rimozione del progetto non riuscita`,onboardingHeading:`Onboarding`,platformTour:`Tour della piattaforma`,platformTourDescription:`Rivedi il wizard di benvenuto per ripassare le funzionalità principali.`,replayTour:`Rivedi il tour`,infoHeading:`Informazioni Desktop`,infoPort:`Porta`,infoProjects:`Progetti`,infoDb:`DB di Desktop`,removeProjectConfirmTitle:`Rimuovere {{name}}?`,removeProjectConfirmBody:`{{name}} viene rimosso da Specrails e il lavoro in corso si interrompe. I file del repository sul disco non vengono eliminati; potrai aggiungere di nuovo la cartella in seguito.`,navLabel:`Sezioni delle impostazioni`,navGroups:{personal:`Personale`,agents:`Agenti`,system:`Sistema`},unsavedChanges:`Modifiche non salvate`,dailyBudgetCurrent:`Attualmente {{amount}} al giorno`,dailyBudgetNone:`Nessun limite giornaliero`},c={heading:`Notifiche di sistema`,description:`Mostra notifiche desktop native quando i job vengono completati o falliscono. Le notifiche appaiono solo quando la scheda non è in primo piano.`,enableLabel:`Abilita le notifiche di sistema`,notifyOn:`Notifica per:`,filterAll:`Tutti (completati e falliti)`,filterCompleted:`Solo completati`,filterFailed:`Solo falliti`,enabledToast:`Notifiche di sistema abilitate`,disabledToast:`Notifiche di sistema disabilitate`},l={heading:`Webhook in uscita`,description:`Notifica strumenti esterni (Slack, Zapier, CI/CD) sugli eventi di Desktop. Le richieste sono firmate via <code>X-Specrails-Signature</code> quando è impostato un secret.`,eventJobCompleted:`Job completato`,eventJobFailed:`Job fallito`,eventDailyBudgetExceeded:`Budget giornaliero superato`,disable:`Disabilita`,enable:`Abilita`,sendTestPing:`Invia ping di test`,addHeading:`Aggiungi webhook`,secretPlaceholder:`Secret di firma (facoltativo)`,addButton:`Aggiungi webhook`,urlRequired:`L'URL è obbligatorio`,selectEvent:`Seleziona almeno un evento`,added:`Webhook aggiunto`,addFailed:`Aggiunta del webhook non riuscita`,updateFailed:`Aggiornamento del webhook non riuscito`,removed:`Webhook rimosso`,removeFailed:`Rimozione del webhook non riuscita`,testPingSent:`Ping di test inviato`,testPingFailed:`Invio del ping di test non riuscito`,removeConfirmTitle:`Rimuovere il webhook?`,removeConfirmBody:`{{url}} smetterà di ricevere gli eventi di Desktop.`,urlLabel:`URL del webhook`},u={title:`Pannello terminale`,desktopDescription:`Default a livello di Desktop applicati a ogni progetto, salvo override per progetto.`,projectDescription:`Override per progetto del pannello terminale. Lascia un campo invariato per ereditare il default di Desktop.`,fontFamily:`Famiglia di font`,fontSize:`Dimensione font ({{min}}–{{max}})`,renderMode:`Modalità di rendering`,copyOnSelect:`Copia alla selezione`,shellIntegration:`Integrazione shell (marcatori OSC 133)`,notifyLongRunning:`Notifica per comandi a lunga esecuzione`,longCommandThreshold:`Soglia comandi lunghi (ms)`,imageRendering:`Rendering immagini inline (Sixel + iTerm2)`,browserShortcutUrl:`URL scorciatoia browser`,quickScript:`Script rapido (incollato nel terminale attivo — premi Invio manualmente)`,reset:`Reimposta`,unsavedChanges:`Modifiche non salvate`,clearOverride:`Rimuovi override`,clear:`Rimuovi`,inheritingDefault:`Eredita il default di Desktop`,nothingToSave:`Niente da salvare`,saved:`Impostazioni del terminale salvate`},d={heading:`Sezione Code`,summaryLanguage:`Lingua dei riassunti`,monthlyBudget:`Budget mensile (USD)`,budgetHelper:"Tetto alla spesa `surface=file-summary` per mese di calendario. Le rigenerazioni avviate dall'utente possono superarlo."},f={taglines:{dracula:`L'originale — scuro con sfumature viola e vividi accenti neon`,"aurora-light":`Chiaro premium — indaco ispirato a Linear su bianco caldo`,"obsidian-dark":`Grafite pro — quasi nero neutro con un solo accento viola tenue`,specrails:`Tema del brand — blu navy-indaco profondo con accenti ciano saturi`,"code-rain":`Terminale al fosforo — menta tenue su quasi nero verdastro`,galaxy:`Blu spazio profondo con una scia luminosa a lama`},heading:`Aspetto`,themeGroupLabel:`Tema`,currentlyActive:`Attualmente attivo`,updateFailed:`Aggiornamento del tema non riuscito`},p={heading:`Companion mobile`,description:`Controlla Specrails dall'app SpecRails Companion sul tuo telefono, 100% sulla tua rete locale. Disattivato per impostazione predefinita. Un telefono associato può rispondere alle domande, riprendere, riprovare e creare PR in bozza dalla posta in arrivo, entro i livelli di permesso MCP; unire, scartare e le impostazioni restano su questo computer.`,accessOn:`Accesso mobile attivo`,accessOff:`Accesso mobile disattivato`,listeningOnPort:`In ascolto sulla porta {{port}}`,notListening:`Non in ascolto`,turnOn:`Attiva`,turnOff:`Disattiva`,pairWebDevice:`Associa companion web`,reset:`Reimposta`,resetConfirm:`Reimpostare l'identità mobile? Ogni dispositivo associato verrà revocato e dovrà associarsi di nuovo.`,identityReset:`Identità mobile reimpostata`,enableFailed:`Impossibile abilitare l'accesso mobile`,disableFailed:`Impossibile disabilitare l'accesso mobile`,windowsFirewall:`Alla prima attivazione Windows Firewall chiederà di consentire il server SpecRails — scegli “Consenti su reti private”.`,pairedDevices:`Dispositivi associati`,noDevices:`Nessun dispositivo ancora associato.`,revokeDevice:`Revoca {{name}}`,resetConfirmTitle:`Reimpostare l’identità mobile?`},m={title:`Associa companion web`,description:`Apri specrails.dev/companion-app sul telefono, poi scansiona questo codice con esso.`,startFailed:`Impossibile avviare l'associazione: {{error}}`,showThenScan:`Dopo che il telefono ha scansionato questo, tocca “Scansiona il codice del telefono” e punta la fotocamera verso il telefono.`,scanAnswer:`Scansiona il codice del telefono`,scanning:`Punta la fotocamera sul codice del telefono…`,cameraFailed:`Fotocamera non disponibile`,notAnswer:`Quel QR non è una risposta di associazione.`,connecting:`Connessione…`,paired:`✓ Associato`,pairedToast:`Companion web associato`,answerRejected:`Il desktop ha rifiutato quel codice. Generane uno nuovo e riprova.`,copyCode:`Copia codice`,codeCopied:`Codice copiato`,cancel:`Annulla`},h={heading:`Specrails Core`,installed:`Installato:`,updateAvailable:`Aggiornamento disponibile: {{version}}`,upToDate:`Aggiornato`,neverChecked:`Non verificato`,check:`Cerca aggiornamenti`,checking:`Verifica…`,update:`Aggiorna a {{version}}`,downloading:`Download…`,materializing:`Installazione…`,affectsAll:`Si applica a tutti i progetti — nessun riavvio necessario.`,unavailable:`Gli aggiornamenti del core non sono disponibili in questa build.`,toastDone:`Specrails Core aggiornato a {{version}}`,toastUpToDate:`Specrails Core è aggiornato`,runtime:`Motore: {{version}}`,bundled:`Incluso in Desktop: {{version}}`,sources:{override:`Selezione esplicita`,managed:`Gestito da Desktop`,bundled:`Incluso in Desktop`,local:`Pacchetto locale`,global:`CLI esterna`},repair:`Completa aggiornamento {{version}}`,stableFallback:`specrails-core non ha ancora una versione stabile, quindi per ora Core segue Ultima.`,updateFailed:`Aggiornamento di Core non riuscito`,checkFailed:`Controllo aggiornamenti non riuscito`,loadError:`Impossibile aggiornare lo stato di Core.`},g={heading:`Canale di aggiornamento`,loading:`Caricamento canale…`,scope:`Si applica a Specrails Desktop e al framework specrails-core.`,saved:`Canale di aggiornamento: {{channel}}`,saveFailed:`Impossibile cambiare il canale di aggiornamento`,latest:{label:`Ultima`,description:`Ogni versione appena pubblicata. Prima le novità e le correzioni.`},stable:{label:`Stabile`,description:`Solo versioni promosse dopo almeno una settimana su Ultima con CI verde. Core segue il suo tag stable.`}},_={heading:`Specrails Desktop`,installed:`Installata:`,check:`Cerca aggiornamenti`,checking:`Verifica…`,upToDate:`Hai l'ultima versione`,updateAvailable:`Aggiornamento disponibile: {{version}}`,autoHint:`Controllo automatico all'avvio e ogni 6 ore.`,unavailable:`Gli aggiornamenti sono disponibili solo nell'app desktop.`,toastUpToDate:`Specrails Desktop è aggiornato`,toastCheckFailed:`Ricerca aggiornamenti non riuscita`,stableUnavailable:`Nessuna versione è stata ancora promossa sul canale Stabile. Passa a Ultima o riprova più tardi.`},v={title:`{{name}} — Impostazioni`,description:`Configurazione del progetto: prompt, branch, ambiente, budget, telemetria, regole e terminale.`,nav:{general:`Generale`,branch:`Branch`,environment:`Ambiente`,budget:`Budget`,telemetry:`Telemetria`,terminal:`Terminale`,agentRuntime:`Comandi di verifica`,subagents:`Sotto-agenti`,rules:`Regole`,recentlyDeleted:`Eliminati di recente`},navLabel:`Sezioni delle impostazioni del progetto`},y={title:`Ramo di integrazione`,description:`Il ramo da cui i rail paralleli si diramano e a cui puntano le loro PR in bozza. Lascia vuoto per risolvere automaticamente al ramo predefinito del repository.`,placeholder:`automatico (ramo predefinito)`,resolved:`I rail si diramano da <mono>{{branch}}</mono>`,save:`Salva ramo`,saved:`Ramo di integrazione salvato`,saveFailed:`Impossibile salvare il ramo di integrazione`},b={title:`Ambiente dei worktree`,description:`Scegli i nomi delle variabili d'ambiente che questo progetto passa ai job dei rail e ai worktree isolati dei loop. Vengono salvati solo i nomi; i valori vengono letti all'avvio dell'esecuzione, recuperandoli dalla login shell se mancano nel processo Desktop.`,label:`Variabile d'ambiente`,placeholder:`NODE_AUTH_TOKEN`,helper:`Premi Invio o Aggiungi. Puoi incollare più nomi separati da virgole o spazi.`,add:`Aggiungi`,empty:`Non ci sono ancora variabili specifiche per questo progetto.`,remove:`Rimuovi {{name}}`,save:`Salva ambiente`,saved:`Ambiente dei worktree salvato`,saveFailed:`Impossibile salvare l'ambiente dei worktree`,invalidName:`{{name}} non è un nome valido per una variabile d'ambiente`,noValues:`Aggiungi solo nomi di variabili, non segreti KEY=value.`,status:{inherited:`Ereditata`,recovered:`Dalla login shell`,notDefined:`Non definita`,probeTimeout:`Timeout della shell`,probeFailed:`Lettura della shell non riuscita`,pending:`Verifica…`},hint:{defaultShell:`la tua login shell`,inherited:`Disponibile nell'ambiente con cui è stato avviato Specrails.`,recovered:`Recuperata da {{shell}}. Le esecuzioni la ricevono automaticamente; il valore non viene mai mostrato.`,notDefined:`{{shell}} non esporta {{name}}. Aggiungi un export nel profilo della shell, poi verifica di nuovo.`,notDefinedInherited:`{{name}} non è impostata nell'ambiente con cui è stato avviato Specrails. Impostala lì e riavvia Specrails.`,probeTimeout:`{{shell}} ha impiegato più di {{seconds}} s per avviarsi. Velocizza il profilo o aumenta SPECRAILS_LOGIN_SHELL_TIMEOUT_MS, poi verifica di nuovo.`,probeFailed:`Specrails non è riuscito a leggere {{shell}}. Correggi il profilo o avvia Specrails da un terminale, poi verifica di nuovo.`,pending:`Specrails sta leggendo la tua login shell.`},recheck:`Verifica di nuovo`,checking:`Verifica…`,lastChecked:`Ultima verifica alle {{time}}`,statusUnavailable:`Impossibile leggere lo stato dell'ambiente.`,unresolvedTitle:`Le esecuzioni partono senza queste variabili:`},x={title:`Ambiente degli agenti`,description:`Scegli quali variabili d'ambiente ricevono gli agenti di questo progetto: job dei rail, loop, missioni, chat e assistenti per le spec.`,modes:{inherit:{label:`Eredita (predefinito)`,description:`Gli agenti ricevono l'intero ambiente con cui è partito Specrails, più i nomi qui sopra. Comportamento invariato.`},minimal:{label:`Minimo`,description:`Gli agenti ricevono solo una lista consentita (PATH, HOME, lingua, file temporanei, terminale, proxy e certificati), le variabili di Specrails, quelle di accesso del provider scelto e i nomi qui sopra. Tutto il resto, come credenziali cloud o di database, viene trattenuto.`}},saved:{inherit:`Gli agenti ereditano l'intero ambiente`,minimal:`Gli agenti ora ricevono l'ambiente minimo`},saveFailed:`Impossibile salvare l'ambiente degli agenti`,namesTitle:`Variabili passate in modalità minima`,shared:`Tutti gli agenti`,passthrough:`Nomi del progetto (sopra)`,noPassthrough:`Nessun nome di progetto configurato.`,provider:`In più per {{provider}}`,noProviderNames:`Nessuna impostata ora (accetta {{patterns}}).`,namesHelp:`Vengono mostrati solo i nomi, mai i valori. Le modifiche valgono per gli agenti avviati in seguito; le sessioni di missione aperte mantengono il loro ambiente fino al riavvio. Se uno strumento richiede un'altra variabile, aggiungi il suo nome qui sopra.`,statusUnavailable:`Impossibile leggere l'elenco delle variabili.`},S={heading:`Effetti`,description:`Tocchi visivi dell'app. Ognuno si può disattivare qui.`,thinkingHalo:{label:`Alone di riflessione sul composer dell'agente`,description:`Mentre l'agente pensa o scrive, l'anello orbitante del Builder brilla attorno al composer: appare in dissolvenza all'inizio del turno e svanisce quando la risposta si conclude.`},reducedMotion:`Rispetta l'impostazione di sistema per la riduzione del movimento: l'anello resta un bagliore statico.`,preview:`Anteprima`,previewThinking:`Sto pensando…`},C={title:`Sotto-agenti`,stateOn:`Gli agenti possono avviare sotto-agenti.`,stateOff:`Gli agenti lavorano da soli, senza sotto-agenti.`,explainParallel:`I sotto-agenti permettono a un agente di affidare lavoro ad aiutanti che girano in parallelo, proseguono dopo la sua risposta e riferiscono quando finiscono.`,explainCost:`Ogni sotto-agente consuma i propri token: una singola richiesta può costare molto di più.`,enabled:`Sotto-agenti consentiti`,disabled:`Sotto-agenti disattivati`,saveFailed:`Impossibile salvare l'impostazione dei sotto-agenti`,project:{description:`Consente a missioni, esplorazione e rifiniture di questo progetto di usare sotto-agenti. Disattivato per impostazione predefinita.`,toggleLabel:`Consenti sotto-agenti in questo progetto`,explainScope:`Le pipeline Implement non sono interessate. Le missioni con sotto-agenti attivi applicano la modifica quando questi finiscono.`},global:{description:`Consente alle missioni senza progetto di usare sotto-agenti. Disattivato per impostazione predefinita.`,toggleLabel:`Consenti sotto-agenti nelle missioni senza progetto`,explainScope:`Ogni progetto ha la propria impostazione nelle impostazioni del progetto. Le missioni con sotto-agenti attivi applicano la modifica quando questi finiscono.`},runtime:{label:`Esegui i sub-agenti con`,same:`Come l'agente della missione`,sameHint:`I sub-agenti usano provider, modello ed effort dell'agente della missione, avviati nativamente dal suo CLI.`,chosenHint:`Le missioni su {{provider}} avviano i propri sub-agenti con questo modello. Con qualsiasi altro provider, Specrails li avvia su {{provider}}.`,providerLabel:`Provider dei sub-agenti`,modelLabel:`Modello dei sub-agenti`,effortLabel:`Effort dei sub-agenti`,claudeEffortHint:`I sub-agenti nativi di Claude ignorano l'effort; si applica quando li avvia Specrails.`,saved:`I sub-agenti ora vengono eseguiti con {{provider}}`,reset:`I sub-agenti seguono di nuovo l'agente della missione`,confirm:{title:`Eseguire i sub-agenti con {{provider}}?`,body:`Nelle missioni con un altro provider, i sub-agenti non sono più nativi: Specrails avvia ciascuno come sessione {{provider}} propria invece del CLI della missione.`,cost:`Più lento e forse più costoso: ogni sub-agente parte a freddo, senza la cache del prompt che condividerebbe con l'agente della missione.`,control:`Più controllo e flessibilità: combina provider, scegli modello ed effort, vedi il costo reale di ogni sub-agente e lasciali lavorare dopo la risposta della missione.`,native:`Le missioni che usano già {{provider}} mantengono sub-agenti nativi, ora con questo modello ed effort.`,cancel:`Lascia come la missione`,accept:`Usa {{provider}}`}}},w={title:`Registro delle azioni degli agenti`,description:`Un registro per progetto di ciò che gli agenti hanno letto, scritto, eseguito, chiamato via MCP o scaricato — esportabile in JSONL o CSV da ogni job e dal pacchetto di revisione.`,retentionLabel:`Conserva le voci per`,daysUnit:`giorni`,caveat:`Le voci più vecchie vengono rimosse all'avvio e ogni giorno. Le letture sono complete solo quanto lo stream di ciascun provider; contenuti e valori d'ambiente non vengono mai salvati.`,save:`Salva conservazione`,saved_one:`Azioni degli agenti conservate per {{count}} giorno`,saved_other:`Azioni degli agenti conservate per {{count}} giorni`,saveFailed:`Impossibile salvare la conservazione del registro`,invalidDays:`Inserisci un numero intero di giorni tra 1 e {{max}}`},T={title:`Limite di revisione`,description:`Limita quante consegne possono attendere la tua revisione contemporaneamente, così il nuovo lavoro non si accumula più in fretta di quanto tu possa decidere.`,label:`Consegne in attesa di revisione`,help:`Suggeriamo {{suggested}}: abbastanza per tenere occupati i rail mentre revisioni. Contano le consegne in corso, quelle non decise e le PR aperte create dall’app. Le modifiche a una consegna esistente sono sempre consentite. Lascia vuoto per nessun limite.`,placeholder:`Nessun limite`,useSuggested:`Usa {{suggested}}`,invalid:`Inserisci un numero intero da 1 a {{max}}, oppure lascia vuoto per nessun limite.`,saved_one:`Limite di revisione impostato a {{count}}`,saved_other:`Limite di revisione impostato a {{count}}`,removed:`Limite di revisione rimosso`,saveFailed:`Impossibile salvare il limite di revisione`},E={title:`Ancoraggio nei progetti esistenti`,description:`Comportamenti opzionali che aiutano i run a rispettare ciò che il progetto già fa. Ognuno richiede un Core che lo supporti.`,coreRequired:`Il Core installato non lo supporta ancora. Aggiorna Core per attivarlo.`,saveFailed:`Impossibile salvare l'impostazione`,jiraPostClarifications:{label:`Pubblica i chiarimenti dell'architetto su Jira`,description:`Quando un run si mette in pausa con le domande dell'architetto, o prosegue sulla base di ipotesi, queste vengono pubblicate come commento sull'issue Jira collegata. Una risposta lì viene registrata sulla spec come chiarimento.`,enabled:`I chiarimenti verranno pubblicati su Jira`,disabled:`I chiarimenti resteranno in Specrails`},baselineOnTouch:{label:`Baseline al contatto`,description:`Quando una modifica raggiunge codice che nessuna spec descrive, prima vengono scritti test di caratterizzazione (dimostrati sul codice invariato) e una spec as-built minima. Aggiunge costo, mostrato a parte.`,enabled:`Baseline al contatto attivata`,disabled:`Baseline al contatto disattivata`}},D={title:`Regole del progetto`,description:`I controlli che il progetto già esegue e ogni regola scritta, classificata come applicata, automatizzabile o solo umana. Le regole solo umane compaiono in ogni pacchetto di revisione.`,rerun:`Riesegui l'inventario`,running:`Inventario in corso…`,coreRequired:`Il Core installato non supporta l'inventario delle regole. Aggiorna Core per eseguirlo.`,missing:`Ancora nessun inventario. Eseguilo per elencare i gate e le regole del progetto.`,invalid:`Impossibile leggere il file delle regole: {{message}}`,inventoryDone:`Inventario delle regole aggiornato`,inventoryFailed:`L'inventario delle regole non è riuscito`,specCreated:`Spec #{{id}} creata`,specFailed:`Impossibile creare la spec`,status:{automatable:`Automatizzabile`,humanOnly:`Solo umana`,enforcedBy:`Applicata`,unclassified:`Non classificata`},generatedAt:`Generato {{date}}`,gates_one:`{{count}} gate`,gates_other:`{{count}} gate`,gatesHint:`I comandi gate semplici vengono proposti per primi come controlli di verifica nelle impostazioni dell'agent runtime quando non ne è configurato nessuno.`,enforcedBy:`Applicata da {{check}}`,proposedCheck:`Controllo proposto: {{check}}`,createSpec:`Crea spec`,dropped_one:`{{count}} voce non rispettava il formato ed è stata saltata`,dropped_other:`{{count}} voci non rispettavano il formato e sono state saltate`,classification:{offline:`Le regole sono state inventariate offline e non sono ancora classificate. Riesegui l'inventario con un provider configurato.`,unavailable:`Nessun provider è configurato per classificare le regole.`,failed:`La classificazione delle regole non è riuscita.`,empty:`Non sono state trovate regole scritte.`,unknown:`Le regole non sono classificate.`},autoRunning:`L’inventario è in esecuzione dopo la configurazione. Questo elenco si aggiorna al termine.`,lastRun:{setupFailed:`L’inventario automatico dopo la configurazione non è riuscito ({{date}}).`,manualFailed:`L’ultima esecuzione dell’inventario non è riuscita ({{date}}).`,retryHint:`Correggi la causa indicata sopra, poi riesegui l’inventario.`,setupDone:`Inventariato automaticamente dopo la configurazione.`}},O={heading:`Editor`,description:`L'editor usato da «Apri nell'editor» nel pacchetto di revisione. Salvato su questo computer.`,label:`Apri i file in`,names:{vscode:`VS Code`,cursor:`Cursor`,jetbrains:`IDE JetBrains`}},k=`I limiti si modificano in Analisi ▸ Budget.`,A=`Apri Budget`,j=`Apri impostazioni`,M={density:{title:`Densità`,description:`Quanto spazio occupano schede e righe. Vale per la bacheca, l'elenco dei job e la storia del job. Una vista salvata della bacheca mantiene il proprio layout.`,comfortable:`Comoda`,comfortableHint:`Schede e righe ariose`,compact:`Compatta`,compactHint:`Più spec e righe sullo schermo`,resetBoard:`Usala anche per la bacheca`,resetBoardDone:`La bacheca di questo progetto ora la segue.`},motion:{title:`Riduci movimento`,description:`Disattiva animazioni e transizioni dentro Specrails, indipendentemente dal sistema operativo.`,system:`Segui il sistema`,systemHint:`Usa l'impostazione del tuo SO`,reduce:`Riduci`,reduceHint:`Sempre calmo: nessuna animazione`,full:`Movimento completo`,fullHint:`Anima anche se il SO ne chiede meno`}},N={language:e,page:t,errors:n,telemetry:r,prePrompt:i,freestylePrePrompt:a,budget:o,desktop:s,notifications:c,webhooks:l,terminal:u,codeSection:d,appearance:f,mobile:p,pairWeb:m,coreUpdate:h,updateChannel:g,appUpdate:_,projectDialog:v,integrationBranch:y,worktreeEnv:b,agentEnv:x,effects:S,subagents:C,agentAudit:w,reviewWip:T,anchoring:E,rules:D,editorSection:O,budgetMoved:k,openBudget:A,openSettings:j,accessibility:M};export{M as accessibility,w as agentAudit,x as agentEnv,E as anchoring,_ as appUpdate,f as appearance,o as budget,k as budgetMoved,d as codeSection,h as coreUpdate,N as default,s as desktop,O as editorSection,S as effects,n as errors,a as freestylePrePrompt,y as integrationBranch,e as language,p as mobile,c as notifications,A as openBudget,j as openSettings,t as page,m as pairWeb,i as prePrompt,v as projectDialog,T as reviewWip,D as rules,C as subagents,r as telemetry,u as terminal,g as updateChannel,l as webhooks,b as worktreeEnv};
@@ -0,0 +1 @@
1
+ var e={title:`语言`,description:`Desktop 全局界面语言。即时生效,无需重启。`,selectLabel:`界面语言`,updateFailed:`无法保存语言偏好`},t={title:`项目设置`,loadFailed:`无法加载项目配置`},n={saveFailed:`保存失败`},r={title:`流水线遥测`,description:`采集 token 用量、阶段耗时和子 Agent 活动以供诊断导出。默认开启。`,toggleLabel:`启用流水线遥测`,toggleDescription:`开启后,流水线任务的 OTEL 数据将在本地采集。在任意任务卡片上使用<mono>导出诊断</mono>按钮即可下载。`,enabled:`已启用流水线遥测`,disabled:`已禁用流水线遥测`,saveFailed:`保存遥测设置失败`},i={title:`Rail 前置提示词`,description:`追加到 implement rail 任务中的项目专属附加指令,位于规格上下文之后、开始执行之前。`,label:`前置提示词`,placeholder:`示例:优先采用增量修改,保持迁移向后兼容,并为每次 rail 变更添加测试。`,helper:`用于应随每次 rail 实现运行附带的稳定项目指引。`,saveButton:`保存前置提示词`,cleared:`前置提示词已清除`,saved:`前置提示词已保存`,saveFailed:`保存前置提示词失败`},a={title:`Freestyle 前置提示词`,description:`在 Freestyle 模式下发送给所选提供方的指令。Freestyle 跳过 OpenSpec 流水线——直接把该前置提示词加上 spec 文本交给提供方,让其自主实现。留空则使用内置默认值。`,label:`Freestyle 前置提示词`,placeholder:`留空以使用默认的 Freestyle 指令。`,helper:`spec 文本会自动追加在该前置提示词之后。留空 = 使用默认值。`,saveButton:`保存 Freestyle 前置提示词`,resetToDefault:`Freestyle 前置提示词已重置为默认值`,saved:`Freestyle 前置提示词已保存`,saveFailed:`保存 Freestyle 前置提示词失败`},o={title:`预算`,description:`为此项目设置每日支出上限。达到上限时队列自动暂停。`,dailyLabel:`每日上限`,dailyHelper:`支出按最近 24 小时计算。达到上限后队列会暂停。`,perJobLabel:`单任务成本告警(USD)`,perJobHelper:`当此项目中的单个任务超过此金额时告警。`,perJobPlaceholder:`如 0.50`,invalidNumber:`请输入正数,或留空以禁用`,perJobAlertDisabled:`已禁用单任务成本告警`,alertSet:`已设置任务超过 {{amount}} 时告警`,saveThresholdFailed:`保存阈值失败`,dailyCurrent:`当前每日 {{amount}}`,dailyNone:`未设置每日上限`},s={nav:{appearance:`外观`,specrailsAgents:`AI 提供商`,code:`代码`,terminal:`终端`,updates:`更新`,mobile:`移动端`,mcp:`MCP`,projects:`项目`,advanced:`高级`,webhooks:`Webhooks`,about:`关于`,effects:`效果`,subscriptionUsage:`订阅用量`},title:`Desktop 设置`,description:`外观、AI 提供商、更新以及 Desktop 全局偏好设置。`,registeredProjects:`已注册项目`,noProjects:`尚未注册任何项目`,techUrlDescription:`specrails-tech API 的基础 URL(默认:http://localhost:3000)`,techUrlSaved:`specrails-tech URL 已保存`,techUrlSaveFailed:`保存 URL 失败`,budgetAlertsHeading:`预算与告警`,dailyBudgetLabel:`Desktop 每日上限`,dailyBudgetHelper:`所有项目的全局每日支出上限。超出后队列自动暂停。`,perJobHelper:`当单个任务超过此金额时告警。留空表示禁用。`,costAlertsDisabled:`已禁用成本告警`,projectRemoved:`项目已移除`,projectRemoveFailed:`移除项目失败`,onboardingHeading:`新手引导`,platformTour:`平台导览`,platformTourDescription:`重播欢迎向导,回顾核心功能。`,replayTour:`重播导览`,infoHeading:`Desktop 信息`,infoPort:`端口`,infoProjects:`项目`,infoDb:`Desktop 数据库`,removeProjectConfirmTitle:`移除 {{name}}?`,removeProjectConfirmBody:`{{name}} 将从 Specrails 中取消注册,正在运行的工作会停止。磁盘上的仓库文件不会被删除,之后可以重新添加该文件夹。`,navLabel:`设置分区`,navGroups:{personal:`个人`,agents:`智能体`,system:`系统`},unsavedChanges:`未保存的更改`,dailyBudgetCurrent:`当前每日 {{amount}}`,dailyBudgetNone:`未设置每日上限`},c={heading:`系统通知`,description:`任务完成或失败时显示原生桌面通知。仅在标签页未聚焦时显示通知。`,enableLabel:`启用系统通知`,notifyOn:`通知时机:`,filterAll:`全部(完成与失败)`,filterCompleted:`仅完成`,filterFailed:`仅失败`,enabledToast:`已启用系统通知`,disabledToast:`已禁用系统通知`},l={heading:`出站 Webhook`,description:`在 Desktop 事件发生时通知外部工具(Slack、Zapier、CI/CD)。设置密钥后,请求会通过 <code>X-Specrails-Signature</code> 进行签名。`,eventJobCompleted:`任务完成`,eventJobFailed:`任务失败`,eventDailyBudgetExceeded:`超出每日预算`,disable:`禁用`,enable:`启用`,sendTestPing:`发送测试 ping`,addHeading:`添加 Webhook`,secretPlaceholder:`签名密钥(可选)`,addButton:`添加 Webhook`,urlRequired:`URL 为必填项`,selectEvent:`请至少选择一个事件`,added:`Webhook 已添加`,addFailed:`添加 Webhook 失败`,updateFailed:`更新 Webhook 失败`,removed:`Webhook 已移除`,removeFailed:`移除 Webhook 失败`,testPingSent:`测试 ping 已发送`,testPingFailed:`发送测试 ping 失败`,removeConfirmTitle:`移除 Webhook?`,removeConfirmBody:`{{url}} 将不再接收 Desktop 事件。`,urlLabel:`Webhook URL`},u={title:`终端面板`,desktopDescription:`Desktop 全局默认值,应用于所有项目,除非设置了项目级覆盖。`,projectDescription:`终端面板的项目级覆盖。保持字段不变即继承 Desktop 默认值。`,fontFamily:`字体`,fontSize:`字号({{min}}–{{max}})`,renderMode:`渲染模式`,copyOnSelect:`选中即复制`,shellIntegration:`Shell 集成(OSC 133 标记)`,notifyLongRunning:`长耗时命令通知`,longCommandThreshold:`长命令阈值(ms)`,imageRendering:`内联图片渲染(Sixel + iTerm2)`,browserShortcutUrl:`浏览器快捷方式 URL`,quickScript:`快捷脚本(粘贴到活动终端——需手动按 Enter)`,reset:`重置`,unsavedChanges:`有未保存的更改`,clearOverride:`清除覆盖`,clear:`清除`,inheritingDefault:`正在继承 Desktop 默认值`,nothingToSave:`没有可保存的内容`,saved:`终端设置已保存`},d={heading:`代码板块`,summaryLanguage:`摘要语言`,monthlyBudget:`每月预算(USD)`,budgetHelper:"每个自然月 `surface=file-summary` 支出的上限。用户手动发起的重新生成可超出此限制。"},f={taglines:{dracula:`经典原版 — 紫色调暗色主题,霓虹色点缀鲜明`,"aurora-light":`高级浅色 — 受 Linear 启发的靛蓝配暖白底色`,"obsidian-dark":`石墨专业版 — 中性近黑底色,仅一抹柔和紫色点缀`,specrails:`品牌主题 — 深海军靛蓝配饱和青色点缀`,"code-rain":`磷光终端 — 绿黑底色上的柔和薄荷绿`,galaxy:`深空蓝配上发光的光刃轨迹`},heading:`外观`,themeGroupLabel:`主题`,currentlyActive:`当前使用中`,updateFailed:`更新主题失败`},p={heading:`移动伴侣`,description:`通过手机上的 SpecRails Companion 应用控制 Specrails,完全经由本地网络。默认关闭。已配对的手机可以在收件箱中回答问题、恢复、重试并创建草稿 PR,具体取决于 MCP 权限级别;合并、丢弃和设置仍只能在这台电脑上操作。`,accessOn:`移动访问已开启`,accessOff:`移动访问已关闭`,listeningOnPort:`正在监听端口 {{port}}`,notListening:`未在监听`,turnOn:`开启`,turnOff:`关闭`,pairWebDevice:`配对网页伴侣`,reset:`重置`,resetConfirm:`确定要重置移动身份吗?所有已配对设备都将被吊销,必须重新配对。`,identityReset:`移动身份已重置`,enableFailed:`无法启用移动访问`,disableFailed:`无法禁用移动访问`,windowsFirewall:`首次启用时,Windows 防火墙会询问是否允许 SpecRails 服务器——请选择“允许在专用网络上”。`,pairedDevices:`已配对设备`,noDevices:`尚无已配对设备。`,revokeDevice:`吊销 {{name}}`,resetConfirmTitle:`重置移动端身份?`},m={title:`配对网页伴侣`,description:`在手机上打开 specrails.dev/companion-app,然后用它扫描此二维码。`,startFailed:`无法开始配对:{{error}}`,showThenScan:`手机扫描此码后,点按“扫描手机的二维码”,并将摄像头对准手机。`,scanAnswer:`扫描手机的二维码`,scanning:`请将摄像头对准手机上的二维码…`,cameraFailed:`摄像头不可用`,notAnswer:`该二维码不是配对应答。`,connecting:`正在连接…`,paired:`✓ 已配对`,pairedToast:`网页伴侣已配对`,answerRejected:`桌面端拒绝了该码。请重新生成一个并重试。`,copyCode:`复制配对码`,codeCopied:`配对码已复制`,cancel:`取消`},h={heading:`Specrails Core`,installed:`已安装:`,updateAvailable:`有可用更新:{{version}}`,upToDate:`已是最新`,neverChecked:`尚未检查`,check:`检查更新`,checking:`检查中…`,update:`更新到 {{version}}`,downloading:`下载中…`,materializing:`安装中…`,affectsAll:`适用于所有项目 — 无需重启。`,unavailable:`此版本不支持核心更新。`,toastDone:`Specrails Core 已更新到 {{version}}`,toastUpToDate:`Specrails Core 已是最新`,runtime:`运行时:{{version}}`,bundled:`Desktop 内置:{{version}}`,sources:{override:`显式指定`,managed:`由 Desktop 管理`,bundled:`Desktop 内置`,local:`本地软件包`,global:`外部 CLI`},repair:`完成 {{version}} 更新`,stableFallback:`specrails-core 尚无稳定版本,因此 Core 暂时跟随最新。`,updateFailed:`Core 更新失败`,checkFailed:`检查更新失败`,loadError:`无法刷新 Core 状态。`},g={heading:`更新通道`,loading:`正在加载通道…`,scope:`同时适用于 Specrails Desktop 和 specrails-core 框架。`,saved:`更新通道:{{channel}}`,saveFailed:`无法更改更新通道`,latest:{label:`最新`,description:`每个版本发布后立即获取。最先获得新功能和修复。`},stable:{label:`稳定`,description:`仅接收在最新通道上至少一周且 CI 通过后被提升的版本。Core 跟随其 stable 标签。`}},_={heading:`Specrails Desktop`,installed:`已安装:`,check:`检查更新`,checking:`检查中…`,upToDate:`已是最新版本`,updateAvailable:`有可用更新: {{version}}`,autoHint:`启动时及每 6 小时自动检查。`,unavailable:`更新仅在桌面应用中可用。`,toastUpToDate:`Specrails Desktop 已是最新`,toastCheckFailed:`检查更新失败`,stableUnavailable:`尚未有版本被提升到稳定通道。请切换到最新,或稍后再试。`},v={title:`{{name}} — 设置`,description:`项目级配置:提示词、分支、环境、预算、遥测、规则和终端。`,nav:{general:`常规`,branch:`分支`,environment:`环境`,budget:`预算`,telemetry:`遥测`,terminal:`终端`,agentRuntime:`验证命令`,subagents:`子代理`,rules:`规则`,recentlyDeleted:`最近删除`},navLabel:`项目设置分区`},y={title:`集成分支`,description:`并行 rail 从此分支创建,其草稿 PR 也以此为目标。留空则自动解析为仓库的默认分支。`,placeholder:`自动(仓库默认分支)`,resolved:`Rail 从 <mono>{{branch}}</mono> 创建分支`,save:`保存分支`,saved:`集成分支已保存`,saveFailed:`无法保存集成分支`},b={title:`Worktree 环境`,description:`选择此项目传递给 rail job 和隔离 loop worktree 的环境变量名称。只保存名称;值会在运行开始时读取,如果 Desktop 进程中缺失,会尝试从 login shell 恢复。`,label:`环境变量`,placeholder:`NODE_AUTH_TOKEN`,helper:`按 Enter 或添加。可以粘贴多个用逗号或空格分隔的名称。`,add:`添加`,empty:`尚未为此项目配置专用变量。`,remove:`移除 {{name}}`,save:`保存环境`,saved:`Worktree 环境已保存`,saveFailed:`无法保存 Worktree 环境`,invalidName:`{{name}} 不是有效的环境变量名`,noValues:`这里只添加变量名,不要添加 KEY=value 形式的密钥。`,status:{inherited:`已继承`,recovered:`来自登录 shell`,notDefined:`未定义`,probeTimeout:`Shell 超时`,probeFailed:`Shell 读取失败`,pending:`检查中…`},hint:{defaultShell:`你的登录 shell`,inherited:`在 Specrails 启动时的环境中可用。`,recovered:`已从 {{shell}} 恢复。运行会自动获得它;值从不显示。`,notDefined:`{{shell}} 没有导出 {{name}}。请在 shell 配置文件中添加 export,然后重新检查。`,notDefinedInherited:`{{name}} 未在 Specrails 启动时的环境中设置。请在那里设置并重启 Specrails。`,probeTimeout:`{{shell}} 启动耗时超过 {{seconds}} 秒。请精简配置文件或调高 SPECRAILS_LOGIN_SHELL_TIMEOUT_MS,然后重新检查。`,probeFailed:`Specrails 无法读取 {{shell}}。请修复配置文件或从终端启动 Specrails,然后重新检查。`,pending:`Specrails 正在读取你的登录 shell。`},recheck:`重新检查`,checking:`检查中…`,lastChecked:`上次检查于 {{time}}`,statusUnavailable:`无法读取环境状态。`,unresolvedTitle:`以下变量缺失时运行仍会开始:`},x={title:`智能体环境`,description:`选择此项目的智能体(Rail 作业、循环、任务、聊天和规格助手)接收哪些环境变量。`,modes:{inherit:{label:`继承(默认)`,description:`智能体接收 Specrails 启动时的完整环境,以及上方的名称。与之前的行为相同。`},minimal:{label:`最小`,description:`智能体只接收允许列表(PATH、HOME、区域设置、临时目录、终端、代理和证书)、Specrails 自身的变量、所选提供商的登录变量以及上方的名称。其他内容(例如云或数据库凭据)不会传递。`}},saved:{inherit:`智能体继承完整环境`,minimal:`智能体现在接收最小环境`},saveFailed:`无法保存智能体环境`,namesTitle:`最小模式下传递的变量`,shared:`所有智能体`,passthrough:`项目名称(上方)`,noPassthrough:`未配置项目名称。`,provider:`{{provider}} 额外接收`,noProviderNames:`当前未设置(接受 {{patterns}})。`,namesHelp:`只显示名称,从不显示值。更改适用于之后启动的智能体;已打开的任务会话在重启前保留原环境。如果某个工具需要其他变量,请在上方添加其名称。`,statusUnavailable:`无法读取变量列表。`},S={heading:`效果`,description:`应用中的视觉点缀,每一项都可以在这里关闭。`,thinkingHalo:{label:`代理输入框的思考光环`,description:`代理思考或书写时,构建器的环绕光环会围绕输入框发光:回合开始时淡入,回复结束时淡出。`},reducedMotion:`遵循系统的减少动态效果设置:光环将保持为静态光晕。`,preview:`预览`,previewThinking:`思考中…`},C={title:`子代理`,stateOn:`代理可以启动子代理。`,stateOff:`代理独自工作,不使用子代理。`,explainParallel:`子代理让代理把工作交给并行运行的助手,它们在代理回复后继续工作,完成后汇报结果。`,explainCost:`每个子代理都会消耗自己的 token,因此一次请求的成本可能明显增加。`,enabled:`已允许子代理`,disabled:`已关闭子代理`,saveFailed:`无法保存子代理设置`,project:{description:`允许此项目的任务、探索和细化代理使用子代理。默认关闭。`,toggleLabel:`在此项目中允许子代理`,explainScope:`不影响 Implement 流水线。正在运行子代理的任务会在子代理完成后应用更改。`},global:{description:`允许不属于任何项目的任务使用子代理。默认关闭。`,toggleLabel:`在无项目的任务中允许子代理`,explainScope:`每个项目在其项目设置中有独立的设置。正在运行子代理的任务会在子代理完成后应用更改。`},runtime:{label:`子代理运行方式`,same:`与任务代理相同`,sameHint:`子代理使用任务代理的提供方、模型和推理强度,由其自身 CLI 原生启动。`,chosenHint:`使用 {{provider}} 的任务会以此模型启动自己的子代理。使用其他提供方时,由 Specrails 在 {{provider}} 上启动它们。`,providerLabel:`子代理提供方`,modelLabel:`子代理模型`,effortLabel:`子代理推理强度`,claudeEffortHint:`Claude 自身的子代理会忽略推理强度;由 Specrails 启动时才会生效。`,saved:`子代理现在使用 {{provider}} 运行`,reset:`子代理重新跟随任务代理`,confirm:{title:`使用 {{provider}} 运行子代理?`,body:`在使用其他提供方的任务中,子代理不再是原生的:Specrails 会将每个子代理作为独立的 {{provider}} 会话启动,而不是由任务的 CLI 启动。`,cost:`更慢,可能更贵:每个子代理都冷启动,无法共享与任务代理的提示缓存。`,control:`更多控制和灵活性:混用提供方、选择模型和推理强度、查看每个子代理的真实成本,并在任务回复后继续工作。`,native:`已经使用 {{provider}} 的任务会保留原生子代理,并使用此模型和推理强度。`,cancel:`保持与任务相同`,accept:`使用 {{provider}}`}}},w={title:`智能体操作审计日志`,description:`按项目记录智能体读取、写入、执行、通过 MCP 调用或获取的内容——可从每个任务和评审包导出为 JSONL 或 CSV。`,retentionLabel:`保留条目`,daysUnit:`天`,caveat:`旧条目会在启动时及每天清理。读取的完整程度取决于各提供方的输出流;从不保存文件内容或环境变量值。`,save:`保存保留期`,saved_one:`智能体操作保留 {{count}} 天`,saved_other:`智能体操作保留 {{count}} 天`,saveFailed:`无法保存审计日志的保留期`,invalidDays:`请输入 1 到 {{max}} 之间的整数天数`},T={title:`评审上限`,description:`限制同时等待你评审的交付数量,避免新工作堆积得比你决定的速度更快。`,label:`等待评审的交付数`,help:`建议设为 {{suggested}}:足以在你评审时让 Rail 保持忙碌。运行中的交付、未决定的交付以及应用创建的打开 PR 都会计入。对已有交付的修改始终允许。留空表示不设上限。`,placeholder:`不设上限`,useSuggested:`使用 {{suggested}}`,invalid:`请输入 1 到 {{max}} 之间的整数,或留空表示不设上限。`,saved_one:`评审上限已设为 {{count}}`,saved_other:`评审上限已设为 {{count}}`,removed:`已移除评审上限`,saveFailed:`无法保存评审上限`},E={title:`在现有项目中落地`,description:`帮助运行尊重项目既有做法的可选行为。每一项都需要支持它的 Core。`,coreRequired:`已安装的 Core 尚不支持此功能。请更新 Core 以启用。`,saveFailed:`无法保存设置`,jiraPostClarifications:{label:`将架构师的澄清问题发布到 Jira`,description:`当运行因架构师的问题而暂停,或基于假设继续时,将其作为评论发布到关联的 Jira 工单。在那里的回复会作为澄清记录到规格上。`,enabled:`澄清问题将发布到 Jira`,disabled:`澄清问题将保留在 Specrails 中`},baselineOnTouch:{label:`触及时建立基线`,description:`当变更触及没有任何规格描述的代码时,先编写特征测试(在未修改的代码上证明)和一份最小的现状规格。会增加成本,并单独显示。`,enabled:`已启用触及时建立基线`,disabled:`已停用触及时建立基线`}},D={title:`项目规则`,description:`项目已运行的检查,以及每条书面规则,分为已强制执行、可自动化或仅限人工。仅限人工的规则会出现在每个评审包中。`,rerun:`重新盘点`,running:`正在盘点…`,coreRequired:`已安装的 Core 不支持规则盘点。请更新 Core 后再运行。`,missing:`尚无盘点结果。运行它以列出项目的关卡和规则。`,invalid:`无法读取规则文件:{{message}}`,inventoryDone:`规则盘点已更新`,inventoryFailed:`规则盘点失败`,specCreated:`已创建规格 #{{id}}`,specFailed:`无法创建规格`,status:{automatable:`可自动化`,humanOnly:`仅限人工`,enforcedBy:`已强制执行`,unclassified:`未分类`},generatedAt:`生成于 {{date}}`,gates_other:`{{count}} 个关卡`,gatesHint:`未配置验证检查时,简单的关卡命令会在 Agent Runtime 设置中优先作为验证检查提供。`,enforcedBy:`由 {{check}} 强制执行`,proposedCheck:`建议的检查:{{check}}`,createSpec:`创建规格`,dropped_other:`{{count}} 个条目不符合格式,已跳过`,classification:{offline:`规则是离线盘点的,尚未分类。请在配置提供方后重新盘点。`,unavailable:`未配置用于分类规则的提供方。`,failed:`规则分类失败。`,empty:`未找到书面规则。`,unknown:`规则尚未分类。`},gates_one:`{{count}} 个关卡`,dropped_one:`{{count}} 个条目不符合格式,已跳过`,autoRunning:`正在设置后运行清单。完成后此列表会更新。`,lastRun:{setupFailed:`设置后的自动清单失败({{date}})。`,manualFailed:`上次清单运行失败({{date}})。`,retryHint:`修复上面显示的原因,然后重新运行清单。`,setupDone:`已在设置后自动生成清单。`}},O={heading:`编辑器`,description:`评审包中“在编辑器中打开”所使用的编辑器。保存在这台电脑上。`,label:`打开文件的编辑器`,names:{vscode:`VS Code`,cursor:`Cursor`,jetbrains:`JetBrains IDE`}},k=`上限在 分析 ▸ 预算 中编辑。`,A=`打开预算`,j=`打开设置`,M={density:{title:`密度`,description:`卡片和行占用的空间。适用于看板、作业列表和作业过程。已保存的看板视图保留自己的布局。`,comfortable:`舒适`,comfortableHint:`宽松的卡片和行`,compact:`紧凑`,compactHint:`屏幕上显示更多规格和行`,resetBoard:`同时用于看板`,resetBoardDone:`此项目的看板现在遵循该设置。`},motion:{title:`减少动态效果`,description:`在 Specrails 内关闭动画和过渡,与操作系统设置无关。`,system:`跟随系统`,systemHint:`使用操作系统的设置`,reduce:`减少`,reduceHint:`始终平静:无动画`,full:`完整动效`,fullHint:`即使系统要求减少也播放动画`}},N={language:e,page:t,errors:n,telemetry:r,prePrompt:i,freestylePrePrompt:a,budget:o,desktop:s,notifications:c,webhooks:l,terminal:u,codeSection:d,appearance:f,mobile:p,pairWeb:m,coreUpdate:h,updateChannel:g,appUpdate:_,projectDialog:v,integrationBranch:y,worktreeEnv:b,agentEnv:x,effects:S,subagents:C,agentAudit:w,reviewWip:T,anchoring:E,rules:D,editorSection:O,budgetMoved:k,openBudget:A,openSettings:j,accessibility:M};export{M as accessibility,w as agentAudit,x as agentEnv,E as anchoring,_ as appUpdate,f as appearance,o as budget,k as budgetMoved,d as codeSection,h as coreUpdate,N as default,s as desktop,O as editorSection,S as effects,n as errors,a as freestylePrePrompt,y as integrationBranch,e as language,p as mobile,c as notifications,A as openBudget,j as openSettings,t as page,m as pairWeb,i as prePrompt,v as projectDialog,T as reviewWip,D as rules,C as subagents,r as telemetry,u as terminal,g as updateChannel,l as webhooks,b as worktreeEnv};
@@ -0,0 +1 @@
1
+ var e={title:`Idioma`,description:`Idioma de la UI para todo Desktop. Se aplica al instante — no hace falta reiniciar.`,selectLabel:`Idioma de la interfaz`,updateFailed:`No se pudo guardar la preferencia de idioma`},t={title:`Ajustes del proyecto`,loadFailed:`No se pudo cargar la configuración del proyecto`},n={saveFailed:`Error al guardar`},r={title:`Telemetría del pipeline`,description:`Captura el uso de tokens, la duración de las fases y la actividad de los subagentes para exportar diagnósticos. Activada por defecto.`,toggleLabel:`Activar telemetría del pipeline`,toggleDescription:`Cuando está activa, los datos OTEL de los trabajos del pipeline se capturan en local. Usa el botón <mono>Exportar diagnóstico</mono> en cualquier tarjeta de trabajo para descargarlos.`,enabled:`Telemetría del pipeline activada`,disabled:`Telemetría del pipeline desactivada`,saveFailed:`No se pudo guardar el ajuste de telemetría`},i={title:`Pre-prompt de rail`,description:`Instrucciones extra específicas del proyecto que se añaden a los trabajos de rail implement, después del contexto de la spec y antes de la ejecución.`,label:`Instrucción previa`,placeholder:`Ejemplo: Prefiere cambios incrementales, mantén las migraciones retrocompatibles y añade tests para cada cambio de rail.`,helper:`Úsalo para directrices estables del proyecto que deban acompañar cada ejecución de implementación en rail.`,saveButton:`Guardar pre-prompt`,cleared:`Pre-prompt borrado`,saved:`Pre-prompt guardado`,saveFailed:`No se pudo guardar el pre-prompt`},a={title:`Pre-prompt de Freestyle`,description:`Instrucción enviada al proveedor seleccionado en Freestyle. Freestyle se salta el pipeline de OpenSpec — le entrega al proveedor este pre-prompt más el texto de la spec y le deja implementar de forma autónoma. Déjalo en blanco para usar el valor por defecto integrado.`,label:`Pre-prompt Freestyle`,placeholder:`Déjalo en blanco para usar la instrucción por defecto de Freestyle.`,helper:`El texto de la spec se añade automáticamente después de este pre-prompt. Vacío = por defecto.`,saveButton:`Guardar pre-prompt Freestyle`,resetToDefault:`Pre-prompt Freestyle restablecido al valor por defecto`,saved:`Pre-prompt Freestyle guardado`,saveFailed:`No se pudo guardar el pre-prompt Freestyle`},o={title:`Presupuesto`,description:`Define un límite de gasto diario para este proyecto. La cola se pausa automáticamente al alcanzar el límite.`,dailyLabel:`Límite diario`,dailyHelper:`El gasto se cuenta sobre las últimas 24 horas. La cola se pausa al alcanzar el límite.`,perJobLabel:`Alerta de coste por trabajo (USD)`,perJobHelper:`Avisa cuando un único trabajo de este proyecto supere este importe.`,perJobPlaceholder:`p. ej. 0.50`,invalidNumber:`Introduce un número positivo o déjalo en blanco para desactivar`,perJobAlertDisabled:`Alerta de coste por trabajo desactivada`,alertSet:`Alerta configurada para trabajos de más de {{amount}}`,saveThresholdFailed:`No se pudo guardar el umbral`,dailyCurrent:`Ahora mismo: {{amount}} al día`,dailyNone:`Sin límite diario`},s={nav:{appearance:`Apariencia`,specrailsAgents:`Proveedores de IA`,code:`Código`,terminal:`Terminal`,updates:`Actualizaciones`,mobile:`Móvil`,mcp:`MCP`,projects:`Proyectos`,advanced:`Avanzado`,webhooks:`Webhooks`,about:`Acerca de`,effects:`Efectos`,subscriptionUsage:`Uso de suscripciones`},title:`Ajustes de Desktop`,description:`Apariencia, proveedores de IA, actualizaciones y preferencias generales de Desktop.`,registeredProjects:`Proyectos registrados`,noProjects:`Aún no hay proyectos registrados`,techUrlDescription:`URL base de la API de specrails-tech (por defecto: http://localhost:3000)`,techUrlSaved:`URL de specrails-tech guardada`,techUrlSaveFailed:`No se pudo guardar la URL`,budgetAlertsHeading:`Presupuesto y alertas`,dailyBudgetLabel:`Límite diario de Desktop`,dailyBudgetHelper:`Límite global de gasto diario en todos los proyectos. Las colas se pausan automáticamente al superarlo.`,perJobHelper:`Avisa cuando un único trabajo supere este importe. Déjalo en blanco para desactivarlo.`,costAlertsDisabled:`Alertas de coste desactivadas`,projectRemoved:`Proyecto eliminado`,projectRemoveFailed:`No se pudo eliminar el proyecto`,onboardingHeading:`Primeros pasos`,platformTour:`Tour de la plataforma`,platformTourDescription:`Vuelve a ver el asistente de bienvenida para repasar las funciones clave.`,replayTour:`Repetir tour`,infoHeading:`Información de Desktop`,infoPort:`Puerto`,infoProjects:`Proyectos`,infoDb:`BD de Desktop`,removeProjectConfirmTitle:`¿Quitar {{name}}?`,removeProjectConfirmBody:`{{name}} se elimina del registro de Specrails y su trabajo en curso se detiene. Los archivos del repositorio en disco no se borran; puedes volver a añadir la carpeta más tarde.`,navLabel:`Secciones de ajustes`,navGroups:{personal:`Personal`,agents:`Agentes`,system:`Sistema`},unsavedChanges:`Cambios sin guardar`,dailyBudgetCurrent:`Ahora mismo: {{amount}} al día`,dailyBudgetNone:`Sin límite diario`},c={heading:`Notificaciones del sistema`,description:`Muestra notificaciones nativas de escritorio cuando los trabajos se completan o fallan. Las notificaciones solo aparecen cuando la pestaña no tiene el foco.`,enableLabel:`Activar notificaciones del sistema`,notifyOn:`Notificar en:`,filterAll:`Todos (completados y fallidos)`,filterCompleted:`Solo completados`,filterFailed:`Solo fallidos`,enabledToast:`Notificaciones del sistema activadas`,disabledToast:`Notificaciones del sistema desactivadas`},l={heading:`Webhooks salientes`,description:`Notifica a herramientas externas (Slack, Zapier, CI/CD) los eventos de Desktop. Las peticiones se firman con <code>X-Specrails-Signature</code> cuando hay un secreto configurado.`,eventJobCompleted:`Trabajo completado`,eventJobFailed:`Trabajo fallido`,eventDailyBudgetExceeded:`Límite diario superado`,disable:`Desactivar`,enable:`Activar`,sendTestPing:`Enviar ping de prueba`,addHeading:`Añadir webhook`,secretPlaceholder:`Secreto de firma (opcional)`,addButton:`Añadir webhook`,urlRequired:`La URL es obligatoria`,selectEvent:`Selecciona al menos un evento`,added:`Webhook añadido`,addFailed:`No se pudo añadir el webhook`,updateFailed:`No se pudo actualizar el webhook`,removed:`Webhook eliminado`,removeFailed:`No se pudo eliminar el webhook`,testPingSent:`Ping de prueba enviado`,testPingFailed:`No se pudo enviar el ping de prueba`,removeConfirmTitle:`¿Eliminar el webhook?`,removeConfirmBody:`{{url}} dejará de recibir eventos de Desktop.`,urlLabel:`URL del webhook`},u={title:`Panel de terminal`,desktopDescription:`Valores por defecto de Desktop aplicados a todos los proyectos salvo que exista un override por proyecto.`,projectDescription:`Overrides por proyecto para el panel de terminal. Deja un campo sin cambios para heredar el valor por defecto de Desktop.`,fontFamily:`Familia tipográfica`,fontSize:`Tamaño de fuente ({{min}}–{{max}})`,renderMode:`Modo de renderizado`,copyOnSelect:`Copiar al seleccionar`,shellIntegration:`Integración con el shell (marcas OSC 133)`,notifyLongRunning:`Notificar comandos de larga duración`,longCommandThreshold:`Umbral de comando largo (ms)`,imageRendering:`Renderizado de imágenes inline (Sixel + iTerm2)`,browserShortcutUrl:`URL del atajo de navegador`,quickScript:`Script rápido (se pega en el terminal activo — pulsa Enter manualmente)`,reset:`Restablecer`,unsavedChanges:`Cambios sin guardar`,clearOverride:`Quitar override`,clear:`Quitar`,inheritingDefault:`Heredando el valor por defecto de Desktop`,nothingToSave:`Nada que guardar`,saved:`Ajustes del terminal guardados`},d={heading:`Sección de código`,summaryLanguage:`Idioma de los resúmenes`,monthlyBudget:`Presupuesto mensual (USD)`,budgetHelper:"Tope de gasto de `surface=file-summary` por mes natural. Las regeneraciones iniciadas por el usuario pueden sobrepasarlo."},f={taglines:{dracula:`El original — oscuro con tinte púrpura y acentos neón vivos`,"aurora-light":`Claro premium — índigo inspirado en Linear sobre blanco cálido`,"obsidian-dark":`Grafito pro — casi negro neutro con un solo acento violeta apagado`,specrails:`Tema de marca — azul marino-índigo profundo con acentos cian saturados`,"code-rain":`Terminal de fósforo — menta suave sobre casi negro verdoso`,galaxy:`Azul de espacio profundo con una estela de hoja brillante`},heading:`Apariencia`,themeGroupLabel:`Tema`,currentlyActive:`Activo actualmente`,updateFailed:`No se pudo actualizar el tema`},p={heading:`App móvil`,description:`Controla Specrails desde la app SpecRails Companion de tu teléfono, 100 % a través de tu red local. Desactivado por defecto. Un teléfono emparejado puede responder preguntas, reanudar, reintentar y crear PR en borrador desde la bandeja, según lo que permitan los niveles de permisos MCP; fusionar, descartar y los ajustes se quedan en este ordenador.`,accessOn:`Acceso móvil activado`,accessOff:`Acceso móvil desactivado`,listeningOnPort:`A la escucha en el puerto {{port}}`,notListening:`No está a la escucha`,turnOn:`Activar`,turnOff:`Desactivar`,pairWebDevice:`Emparejar companion web`,reset:`Restablecer`,resetConfirm:`¿Restablecer la identidad móvil? Todos los dispositivos emparejados se revocarán y tendrán que emparejarse de nuevo.`,identityReset:`Identidad móvil restablecida`,enableFailed:`No se pudo activar el acceso móvil`,disableFailed:`No se pudo desactivar el acceso móvil`,windowsFirewall:`El Firewall de Windows pedirá permiso para el servidor de SpecRails la primera vez que lo actives — elige «Permitir en redes privadas».`,pairedDevices:`Dispositivos emparejados`,noDevices:`Aún no hay dispositivos emparejados.`,revokeDevice:`Revocar {{name}}`,resetConfirmTitle:`¿Restablecer la identidad móvil?`},m={title:`Emparejar companion web`,description:`Abre specrails.dev/companion-app en tu teléfono y escanea este código con él.`,startFailed:`No se pudo iniciar el emparejamiento: {{error}}`,showThenScan:`Cuando tu teléfono haya escaneado esto, toca «Escanear código del teléfono» y apunta la cámara hacia tu teléfono.`,scanAnswer:`Escanear código del teléfono`,scanning:`Apunta la cámara al código de tu teléfono…`,cameraFailed:`Cámara no disponible`,notAnswer:`Ese QR no es una respuesta de emparejamiento.`,connecting:`Conectando…`,paired:`✓ Emparejado`,pairedToast:`Companion web emparejado`,answerRejected:`El equipo de escritorio rechazó ese código. Genera uno nuevo e inténtalo de nuevo.`,copyCode:`Copiar código`,codeCopied:`Código copiado`,cancel:`Cancelar`},h={heading:`Specrails Core`,installed:`Instalado:`,updateAvailable:`Actualización disponible: {{version}}`,upToDate:`Actualizado`,neverChecked:`Sin comprobar`,check:`Buscar actualizaciones`,checking:`Comprobando…`,update:`Actualizar a {{version}}`,downloading:`Descargando…`,materializing:`Instalando…`,affectsAll:`Afecta a todos los proyectos — sin reiniciar.`,unavailable:`Las actualizaciones del core no están disponibles en esta versión.`,toastDone:`Specrails Core actualizado a {{version}}`,toastUpToDate:`Specrails Core está actualizado`,runtime:`Motor: {{version}}`,bundled:`Incluido en Desktop: {{version}}`,sources:{override:`Selección explícita`,managed:`Gestionado por Desktop`,bundled:`Incluido en Desktop`,local:`Paquete local`,global:`CLI externo`},repair:`Completar actualización {{version}}`,stableFallback:`specrails-core aún no tiene versión estable, así que Core sigue Última por ahora.`,updateFailed:`No se pudo actualizar Core`,checkFailed:`No se pudo buscar actualizaciones`,loadError:`No se pudo actualizar el estado de Core.`},g={heading:`Canal de actualización`,loading:`Cargando canal…`,scope:`Se aplica a Specrails Desktop y al framework specrails-core.`,saved:`Canal de actualización: {{channel}}`,saveFailed:`No se pudo cambiar el canal de actualización`,latest:{label:`Última`,description:`Cada versión en cuanto se publica. Primero las novedades y correcciones.`},stable:{label:`Estable`,description:`Solo versiones promovidas tras al menos una semana en Última con CI en verde. Core sigue su etiqueta stable.`}},_={heading:`Specrails Desktop`,installed:`Instalada:`,check:`Buscar actualizaciones`,checking:`Comprobando…`,upToDate:`Tienes la última versión`,updateAvailable:`Actualización disponible: {{version}}`,autoHint:`Se comprueba automáticamente al arrancar y cada 6 horas.`,unavailable:`Las actualizaciones solo están disponibles en la app de escritorio.`,toastUpToDate:`Specrails Desktop está actualizado`,toastCheckFailed:`Error al buscar actualizaciones`,stableUnavailable:`Todavía no se ha promovido ninguna versión al canal Estable. Cambia a Última o inténtalo más tarde.`},v={title:`{{name}} — Ajustes`,description:`Configuración del proyecto: prompts, rama base, entorno, presupuesto, telemetría, reglas y terminal.`,nav:{general:`General`,branch:`Rama base`,environment:`Entorno`,budget:`Presupuesto`,telemetry:`Telemetría`,terminal:`Terminal`,agentRuntime:`Comandos de verificación`,subagents:`Sub-agentes`,rules:`Reglas`,recentlyDeleted:`Eliminado recientemente`},navLabel:`Secciones de ajustes del proyecto`},y={title:`Rama de integración`,description:`La rama desde la que parten los rails paralelos y a la que apuntan sus PRs en borrador. Déjalo vacío para resolver automáticamente a la rama por defecto del repositorio.`,placeholder:`automático (rama por defecto)`,resolved:`Los rails parten de <mono>{{branch}}</mono>`,save:`Guardar rama`,saved:`Rama de integración guardada`,saveFailed:`No se pudo guardar la rama de integración`},b={title:`Entorno de worktrees`,description:`Elige los nombres de variables de entorno que este proyecto pasa a trabajos de rail y worktrees aislados de loops. Solo se guardan nombres; los valores se leen al iniciar la ejecución, recuperándolos del login shell si faltan en el proceso de escritorio.`,label:`Variable de entorno`,placeholder:`NODE_AUTH_TOKEN`,helper:`Pulsa Enter o Añadir. Puedes pegar varios nombres separados por comas o espacios.`,add:`Añadir`,empty:`Aún no hay variables específicas para este proyecto.`,remove:`Quitar {{name}}`,save:`Guardar entorno`,saved:`Entorno de worktrees guardado`,saveFailed:`No se pudo guardar el entorno de worktrees`,invalidName:`{{name}} no es un nombre válido de variable de entorno`,noValues:`Añade solo nombres de variables, no secretos KEY=value.`,status:{inherited:`Heredada`,recovered:`Del login shell`,notDefined:`No definida`,probeTimeout:`Shell agotó el tiempo`,probeFailed:`Fallo al leer el shell`,pending:`Comprobando…`},hint:{defaultShell:`tu login shell`,inherited:`Disponible en el entorno con el que se inició Specrails.`,recovered:`Recuperada de {{shell}}. Las ejecuciones la reciben automáticamente; el valor nunca se muestra.`,notDefined:`{{shell}} no exporta {{name}}. Añade su export al perfil del shell y vuelve a comprobar.`,notDefinedInherited:`{{name}} no está definida en el entorno con el que se inició Specrails. Defínela allí y reinicia Specrails.`,probeTimeout:`{{shell}} tardó más de {{seconds}} s en arrancar. Acelera el perfil o sube SPECRAILS_LOGIN_SHELL_TIMEOUT_MS y vuelve a comprobar.`,probeFailed:`Specrails no pudo leer {{shell}}. Corrige el perfil o abre Specrails desde una terminal y vuelve a comprobar.`,pending:`Specrails está leyendo tu login shell.`},recheck:`Comprobar de nuevo`,checking:`Comprobando…`,lastChecked:`Última comprobación a las {{time}}`,statusUnavailable:`No se pudo leer el estado del entorno.`,unresolvedTitle:`Las ejecuciones arrancan sin estas variables:`},x={title:`Entorno de los agentes`,description:`Elige qué variables de entorno reciben los agentes de este proyecto: trabajos de rail, loops, misiones, chats y asistentes de specs.`,modes:{inherit:{label:`Heredar (predeterminado)`,description:`Los agentes reciben todo el entorno con el que arrancó Specrails, más los nombres de arriba. Igual que hasta ahora.`},minimal:{label:`Mínimo`,description:`Los agentes reciben solo una lista permitida (PATH, HOME, idioma, temporales, terminal, proxy y certificados), las variables propias de Specrails, las de inicio de sesión del proveedor elegido y los nombres de arriba. El resto, como credenciales de la nube o de bases de datos, se retiene.`}},saved:{inherit:`Los agentes heredan todo el entorno`,minimal:`Los agentes reciben ahora el entorno mínimo`},saveFailed:`No se pudo guardar el entorno de los agentes`,namesTitle:`Variables que se pasan en modo mínimo`,shared:`Todos los agentes`,passthrough:`Nombres del proyecto (arriba)`,noPassthrough:`No hay nombres del proyecto configurados.`,provider:`Además, para {{provider}}`,noProviderNames:`Ninguna definida ahora (acepta {{patterns}}).`,namesHelp:`Solo se muestran nombres; los valores nunca se muestran. Los cambios se aplican a los agentes que arranquen después; las sesiones de misión abiertas conservan su entorno hasta que se reinician. Si una herramienta necesita otra variable, añade su nombre arriba.`,statusUnavailable:`No se pudo leer la lista de variables.`},S={heading:`Efectos`,description:`Detalles visuales de la app. Cada uno se puede desactivar aquí.`,thinkingHalo:{label:`Halo de pensamiento en el composer del agente`,description:`Mientras el agente piensa o escribe, el anillo orbitante del Constructor brilla alrededor del composer: aparece con un fundido al empezar el turno y se desvanece al terminar la respuesta.`},reducedMotion:`Respeta el ajuste de movimiento reducido del sistema: el anillo queda como un brillo estático.`,preview:`Vista previa`,previewThinking:`Pensando…`},C={title:`Sub-agentes`,stateOn:`Los agentes pueden lanzar sub-agentes.`,stateOff:`Los agentes trabajan solos, sin sub-agentes.`,explainParallel:`Los sub-agentes permiten que un agente reparta trabajo entre ayudantes que corren en paralelo y siguen después de su respuesta, informando al terminar.`,explainCost:`Cada sub-agente consume sus propios tokens, así que una sola petición puede costar bastante más.`,enabled:`Sub-agentes permitidos`,disabled:`Sub-agentes desactivados`,saveFailed:`No se pudo guardar el ajuste de sub-agentes`,project:{description:`Permite que las misiones, la exploración y los refinamientos de este proyecto usen sub-agentes. Desactivado por defecto.`,toggleLabel:`Permitir sub-agentes en este proyecto`,explainScope:`No afecta a los pipelines de Implement. Las misiones con sub-agentes en marcha aplican el cambio cuando estos terminan.`},global:{description:`Permite que las misiones sin proyecto usen sub-agentes. Desactivado por defecto.`,toggleLabel:`Permitir sub-agentes en misiones sin proyecto`,explainScope:`Cada proyecto tiene su propio ajuste en la configuración del proyecto. Las misiones con sub-agentes en marcha aplican el cambio cuando estos terminan.`},runtime:{label:`Ejecutar sub-agentes con`,same:`Igual que el agente de la misión`,sameHint:`Los sub-agentes usan el proveedor, modelo y esfuerzo del agente de la misión, lanzados de forma nativa por su propio CLI.`,chosenHint:`Las misiones en {{provider}} lanzan sus propios sub-agentes con este modelo. Con cualquier otro proveedor, Specrails los lanza en {{provider}}.`,providerLabel:`Proveedor de los sub-agentes`,modelLabel:`Modelo de los sub-agentes`,effortLabel:`Esfuerzo de los sub-agentes`,claudeEffortHint:`Los sub-agentes propios de Claude ignoran el esfuerzo; se aplica cuando los lanza Specrails.`,saved:`Los sub-agentes ahora se ejecutan con {{provider}}`,reset:`Los sub-agentes vuelven a seguir al agente de la misión`,confirm:{title:`¿Ejecutar los sub-agentes con {{provider}}?`,body:`En misiones con otro proveedor, los sub-agentes dejan de ser nativos: Specrails lanza cada uno como su propia sesión de {{provider}} en lugar del CLI de la misión.`,cost:`Más lento y posiblemente más caro: cada sub-agente arranca en frío, sin la caché de prompt que compartiría con el agente de la misión.`,control:`Más control y flexibilidad: combina proveedores, elige modelo y esfuerzo, ve el coste real de cada sub-agente y deja que sigan trabajando tras la respuesta de la misión.`,native:`Las misiones que ya usan {{provider}} mantienen los sub-agentes nativos, ahora con este modelo y esfuerzo.`,cancel:`Mantener igual que la misión`,accept:`Usar {{provider}}`}}},w={title:`Registro de acciones de agentes`,description:`Un registro por proyecto de lo que los agentes leyeron, escribieron, ejecutaron, llamaron por MCP o descargaron — exportable en JSONL o CSV desde cada trabajo y el paquete de revisión.`,retentionLabel:`Conservar entradas durante`,daysUnit:`días`,caveat:`Las entradas antiguas se eliminan al arrancar y a diario. Las lecturas son tan completas como el stream de cada proveedor; nunca se guardan contenidos ni valores de entorno.`,save:`Guardar retención`,saved_one:`Acciones de agentes conservadas {{count}} día`,saved_other:`Acciones de agentes conservadas {{count}} días`,saveFailed:`No se pudo guardar la retención del registro`,invalidDays:`Introduce un número entero de días entre 1 y {{max}}`},T={title:`Límite de revisión`,description:`Limita cuántas entregas pueden esperar tu revisión a la vez, para que el trabajo nuevo no se acumule más rápido de lo que puedes decidirlo.`,label:`Entregas en espera de revisión`,help:`Te sugerimos {{suggested}}: suficiente para mantener los rails ocupados mientras revisas. Cuentan las entregas en curso, las que no has decidido y los PR abiertos creados por la app. Los cambios sobre una entrega existente siempre se permiten. Déjalo vacío para no poner límite.`,placeholder:`Sin límite`,useSuggested:`Usar {{suggested}}`,invalid:`Escribe un número entero de 1 a {{max}}, o déjalo vacío para no poner límite.`,saved_one:`Límite de revisión fijado en {{count}}`,saved_other:`Límite de revisión fijado en {{count}}`,removed:`Límite de revisión eliminado`,saveFailed:`No se pudo guardar el límite de revisión`},E={title:`Anclaje en proyectos existentes`,description:`Comportamientos opcionales que ayudan a que las ejecuciones respeten lo que el proyecto ya hace. Cada uno necesita un Core que lo soporte.`,coreRequired:`El Core instalado aún no lo soporta. Actualiza Core para activarlo.`,saveFailed:`No se pudo guardar el ajuste`,jiraPostClarifications:{label:`Publicar las aclaraciones del arquitecto en Jira`,description:`Cuando una ejecución se pausa con preguntas del arquitecto, o continúa con supuestos, se publican como comentario en la issue de Jira enlazada. Una respuesta allí se registra en la spec como aclaración.`,enabled:`Las aclaraciones se publicarán en Jira`,disabled:`Las aclaraciones se quedarán en Specrails`},baselineOnTouch:{label:`Baseline al tocar`,description:`Cuando un cambio llega a código que ninguna spec describe, primero escribe tests de caracterización (demostrados sobre el código sin cambios) y una spec as-built mínima. Añade coste, que se muestra aparte.`,enabled:`Baseline al tocar activado`,disabled:`Baseline al tocar desactivado`}},D={title:`Reglas del proyecto`,description:`Los checks que el proyecto ya ejecuta y cada regla escrita, clasificada como aplicada, automatizable o solo humana. Las reglas solo humanas aparecen en cada packet de revisión.`,rerun:`Volver a inventariar`,running:`Inventariando…`,coreRequired:`El Core instalado no soporta el inventario de reglas. Actualiza Core para ejecutarlo.`,missing:`Aún no hay inventario. Ejecútalo para listar los gates y las reglas del proyecto.`,invalid:`No se pudo leer el fichero de reglas: {{message}}`,inventoryDone:`Inventario de reglas actualizado`,inventoryFailed:`El inventario de reglas falló`,specCreated:`Spec #{{id}} creada`,specFailed:`No se pudo crear la spec`,status:{automatable:`Automatizable`,humanOnly:`Solo humana`,enforcedBy:`Aplicada`,unclassified:`Sin clasificar`},generatedAt:`Generado {{date}}`,gates_one:`{{count}} gate`,gates_other:`{{count}} gates`,gatesHint:`Los comandos de gate simples se ofrecen primero como checks de verificación en los ajustes del agent runtime cuando no hay ninguno configurado.`,enforcedBy:`Aplicada por {{check}}`,proposedCheck:`Check propuesto: {{check}}`,createSpec:`Crear spec`,dropped_one:`{{count}} entrada no seguía el formato y se omitió`,dropped_other:`{{count}} entradas no seguían el formato y se omitieron`,classification:{offline:`Las reglas se inventariaron sin conexión y aún no están clasificadas. Vuelve a inventariar con un proveedor configurado.`,unavailable:`No hay un proveedor configurado para clasificar las reglas.`,failed:`Falló la clasificación de las reglas.`,empty:`No se encontraron reglas escritas.`,unknown:`Las reglas no están clasificadas.`},autoRunning:`El inventario se está ejecutando tras la configuración. Esta lista se actualiza al terminar.`,lastRun:{setupFailed:`El inventario automático tras la configuración falló ({{date}}).`,manualFailed:`La última ejecución del inventario falló ({{date}}).`,retryHint:`Corrige la causa indicada arriba y vuelve a ejecutar el inventario.`,setupDone:`Inventariado automáticamente tras la configuración.`}},O={heading:`Editor`,description:`El editor que usa «Abrir en el editor» en el paquete de revisión. Se guarda en este equipo.`,label:`Abrir archivos en`,names:{vscode:`VS Code`,cursor:`Cursor`,jetbrains:`IDE de JetBrains`}},k=`Los límites se editan en Analíticas ▸ Presupuesto.`,A=`Abrir Presupuesto`,j=`Abrir Ajustes`,M={density:{title:`Densidad`,description:`Cuánto espacio ocupan las tarjetas y las filas. Se aplica al tablero, a la lista de trabajos y a la historia del trabajo. Una vista guardada del tablero mantiene su propio diseño.`,comfortable:`Cómoda`,comfortableHint:`Tarjetas y filas con aire`,compact:`Compacta`,compactHint:`Más specs y filas en pantalla`,resetBoard:`Usarla también en el tablero`,resetBoardDone:`El tablero de este proyecto ya la sigue.`},motion:{title:`Reducir movimiento`,description:`Desactiva animaciones y transiciones dentro de Specrails, con independencia de tu sistema operativo.`,system:`Seguir el sistema`,systemHint:`Usa el ajuste de tu SO`,reduce:`Reducir`,reduceHint:`Siempre en calma: sin animación`,full:`Movimiento completo`,fullHint:`Anima aunque el SO pida menos`}},N={language:e,page:t,errors:n,telemetry:r,prePrompt:i,freestylePrePrompt:a,budget:o,desktop:s,notifications:c,webhooks:l,terminal:u,codeSection:d,appearance:f,mobile:p,pairWeb:m,coreUpdate:h,updateChannel:g,appUpdate:_,projectDialog:v,integrationBranch:y,worktreeEnv:b,agentEnv:x,effects:S,subagents:C,agentAudit:w,reviewWip:T,anchoring:E,rules:D,editorSection:O,budgetMoved:k,openBudget:A,openSettings:j,accessibility:M};export{M as accessibility,w as agentAudit,x as agentEnv,E as anchoring,_ as appUpdate,f as appearance,o as budget,k as budgetMoved,d as codeSection,h as coreUpdate,N as default,s as desktop,O as editorSection,S as effects,n as errors,a as freestylePrePrompt,y as integrationBranch,e as language,p as mobile,c as notifications,A as openBudget,j as openSettings,t as page,m as pairWeb,i as prePrompt,v as projectDialog,T as reviewWip,D as rules,C as subagents,r as telemetry,u as terminal,g as updateChannel,l as webhooks,b as worktreeEnv};
@@ -0,0 +1 @@
1
+ var e={title:`Langue`,description:`Langue de l'interface pour tout Desktop. S'applique instantanément — aucun redémarrage requis.`,selectLabel:`Langue de l'interface`,updateFailed:`Impossible d'enregistrer la préférence de langue`},t={title:`Paramètres du projet`,loadFailed:`Impossible de charger la configuration du projet`},n={saveFailed:`Échec de l'enregistrement`},r={title:`Télémétrie du pipeline`,description:`Capture l'usage des tokens, la durée des phases et l'activité des sous-agents pour l'export de diagnostic. Activé par défaut.`,toggleLabel:`Activer la télémétrie du pipeline`,toggleDescription:`Quand elle est activée, les données OTEL des jobs du pipeline sont capturées localement. Utilisez le bouton <mono>Exporter le diagnostic</mono> sur n'importe quelle carte de job pour les télécharger.`,enabled:`Télémétrie du pipeline activée`,disabled:`Télémétrie du pipeline désactivée`,saveFailed:`Échec de l'enregistrement du réglage de télémétrie`},i={title:`Pré-prompt de rail`,description:`Instructions supplémentaires propres au projet, ajoutées aux jobs de rail implement après le contexte de la spec et avant l'exécution.`,label:`Pré-prompt`,placeholder:`Exemple : privilégier les changements incrémentaux, garder les migrations rétrocompatibles et ajouter des tests pour chaque changement de rail.`,helper:`À utiliser pour des consignes projet stables qui doivent accompagner chaque exécution d'implémentation sur rail.`,saveButton:`Enregistrer le pré-prompt`,cleared:`Pré-prompt effacé`,saved:`Pré-prompt enregistré`,saveFailed:`Échec de l'enregistrement du pré-prompt`},a={title:`Pré-prompt Freestyle`,description:`Instruction envoyée au fournisseur sélectionné en mode Freestyle. Freestyle saute le pipeline OpenSpec — il transmet au fournisseur ce pré-prompt plus le texte de la spec et le laisse implémenter en autonomie. Laissez vide pour utiliser la valeur par défaut intégrée.`,label:`Pré-prompt Freestyle`,placeholder:`Laissez vide pour utiliser l'instruction Freestyle par défaut.`,helper:`Le texte de la spec est ajouté automatiquement après ce pré-prompt. Vide = défaut.`,saveButton:`Enregistrer le pré-prompt Freestyle`,resetToDefault:`Pré-prompt Freestyle réinitialisé à la valeur par défaut`,saved:`Pré-prompt Freestyle enregistré`,saveFailed:`Échec de l'enregistrement du pré-prompt Freestyle`},o={title:`Budget`,description:`Définissez un plafond de dépense quotidien pour ce projet. La file se met automatiquement en pause quand la limite est atteinte.`,dailyLabel:`Plafond quotidien`,dailyHelper:`La dépense est comptée sur les dernières 24 heures. La file se met en pause lorsque le plafond est atteint.`,perJobLabel:`Alerte de coût par job (USD)`,perJobHelper:`Alerte quand un seul job de ce projet dépasse ce montant.`,perJobPlaceholder:`ex. 0.50`,invalidNumber:`Saisissez un nombre positif ou laissez vide pour désactiver`,perJobAlertDisabled:`Alerte de coût par job désactivée`,alertSet:`Alerte définie pour les jobs dépassant {{amount}}`,saveThresholdFailed:`Échec de l'enregistrement du seuil`,dailyCurrent:`Actuellement {{amount}} par jour`,dailyNone:`Aucun plafond quotidien`},s={nav:{appearance:`Apparence`,specrailsAgents:`Fournisseurs d'IA`,code:`Code`,terminal:`Terminal`,updates:`Mises à jour`,mobile:`Mobile`,mcp:`MCP`,projects:`Projets`,advanced:`Avancé`,webhooks:`Webhooks`,about:`À propos`,effects:`Effets`,subscriptionUsage:`Utilisation des abonnements`},title:`Paramètres de Desktop`,description:`Apparence, fournisseurs d’IA, mises à jour et préférences globales de Desktop.`,registeredProjects:`Projets enregistrés`,noProjects:`Aucun projet enregistré pour l'instant`,techUrlDescription:`URL de base de l'API specrails-tech (par défaut : http://localhost:3000)`,techUrlSaved:`URL specrails-tech enregistrée`,techUrlSaveFailed:`Échec de l'enregistrement de l'URL`,budgetAlertsHeading:`Budget & alertes`,dailyBudgetLabel:`Plafond quotidien de Desktop`,dailyBudgetHelper:`Limite de dépense quotidienne globale pour tous les projets. Les files se mettent automatiquement en pause en cas de dépassement.`,perJobHelper:`Alerte quand un seul job dépasse ce montant. Laissez vide pour désactiver.`,costAlertsDisabled:`Alertes de coût désactivées`,projectRemoved:`Projet supprimé`,projectRemoveFailed:`Échec de la suppression du projet`,onboardingHeading:`Onboarding`,platformTour:`Visite de la plateforme`,platformTourDescription:`Rejouez l'assistant de bienvenue pour revoir les fonctionnalités clés.`,replayTour:`Rejouer la visite`,infoHeading:`Informations de Desktop`,infoPort:`Port`,infoProjects:`Projets`,infoDb:`BD de Desktop`,removeProjectConfirmTitle:`Retirer {{name}} ?`,removeProjectConfirmBody:`{{name}} est retiré de Specrails et son travail en cours s’arrête. Les fichiers du dépôt sur le disque ne sont pas supprimés ; vous pourrez rajouter le dossier plus tard.`,navLabel:`Sections des réglages`,navGroups:{personal:`Personnel`,agents:`Agents`,system:`Système`},unsavedChanges:`Modifications non enregistrées`,dailyBudgetCurrent:`Actuellement {{amount}} par jour`,dailyBudgetNone:`Aucun plafond quotidien`},c={heading:`Notifications système`,description:`Affiche des notifications de bureau natives quand des jobs se terminent ou échouent. Les notifications n'apparaissent que lorsque l'onglet n'a pas le focus.`,enableLabel:`Activer les notifications système`,notifyOn:`Notifier pour :`,filterAll:`Tout (terminés & échoués)`,filterCompleted:`Terminés uniquement`,filterFailed:`Échoués uniquement`,enabledToast:`Notifications système activées`,disabledToast:`Notifications système désactivées`},l={heading:`Webhooks sortants`,description:`Notifiez des outils externes (Slack, Zapier, CI/CD) lors des événements de Desktop. Les requêtes sont signées via <code>X-Specrails-Signature</code> quand un secret est défini.`,eventJobCompleted:`Job terminé`,eventJobFailed:`Job en échec`,eventDailyBudgetExceeded:`Budget quotidien dépassé`,disable:`Désactiver`,enable:`Activer`,sendTestPing:`Envoyer un ping de test`,addHeading:`Ajouter un webhook`,secretPlaceholder:`Secret de signature (facultatif)`,addButton:`Ajouter le webhook`,urlRequired:`L'URL est requise`,selectEvent:`Sélectionnez au moins un événement`,added:`Webhook ajouté`,addFailed:`Échec de l'ajout du webhook`,updateFailed:`Échec de la mise à jour du webhook`,removed:`Webhook supprimé`,removeFailed:`Échec de la suppression du webhook`,testPingSent:`Ping de test envoyé`,testPingFailed:`Échec de l'envoi du ping de test`,removeConfirmTitle:`Supprimer le webhook ?`,removeConfirmBody:`{{url}} ne recevra plus les événements de Desktop.`,urlLabel:`URL du webhook`},u={title:`Panneau de terminal`,desktopDescription:`Valeurs par défaut de Desktop, appliquées à chaque projet sauf surcharge par projet.`,projectDescription:`Surcharges par projet pour le panneau de terminal. Laissez un champ inchangé pour hériter de la valeur par défaut de Desktop.`,fontFamily:`Police`,fontSize:`Taille de police ({{min}}–{{max}})`,renderMode:`Mode de rendu`,copyOnSelect:`Copier à la sélection`,shellIntegration:`Intégration shell (marques OSC 133)`,notifyLongRunning:`Notifier les commandes de longue durée`,longCommandThreshold:`Seuil de commande longue (ms)`,imageRendering:`Rendu d'images inline (Sixel + iTerm2)`,browserShortcutUrl:`URL du raccourci navigateur`,quickScript:`Script rapide (collé dans le terminal actif — Entrée manuelle)`,reset:`Réinitialiser`,unsavedChanges:`Modifications non enregistrées`,clearOverride:`Effacer la surcharge`,clear:`Effacer`,inheritingDefault:`Hérite de la valeur par défaut de Desktop`,nothingToSave:`Rien à enregistrer`,saved:`Paramètres du terminal enregistrés`},d={heading:`Section Code`,summaryLanguage:`Langue des résumés`,monthlyBudget:`Budget mensuel (USD)`,budgetHelper:"Plafond de dépense `surface=file-summary` par mois calendaire. Les régénérations lancées par l'utilisateur peuvent le dépasser."},f={taglines:{dracula:`L'original — sombre teinté de violet aux accents néon éclatants`,"aurora-light":`Clair premium — indigo inspiré de Linear sur blanc cassé chaleureux`,"obsidian-dark":`Graphite pro — presque noir neutre avec un seul accent violet atténué`,specrails:`Thème de la marque — bleu marine-indigo profond aux accents cyan saturés`,"code-rain":`Terminal phosphore — menthe douce sur fond presque noir verdâtre`,galaxy:`Bleu spatial profond avec une traînée de lame lumineuse`},heading:`Apparence`,themeGroupLabel:`Thème`,currentlyActive:`Actuellement actif`,updateFailed:`Échec de la mise à jour du thème`},p={heading:`Compagnon mobile`,description:`Contrôlez Specrails depuis l'application SpecRails Companion sur votre téléphone, 100 % via votre réseau local. Désactivé par défaut. Un téléphone associé peut répondre aux questions, reprendre, réessayer et créer des PR en brouillon depuis la boîte de réception, dans la limite des niveaux d'autorisation MCP ; fusionner, abandonner et les réglages restent sur cet ordinateur.`,accessOn:`Accès mobile activé`,accessOff:`Accès mobile désactivé`,listeningOnPort:`À l'écoute sur le port {{port}}`,notListening:`Pas à l'écoute`,turnOn:`Activer`,turnOff:`Désactiver`,pairWebDevice:`Appairer le compagnon web`,reset:`Réinitialiser`,resetConfirm:`Réinitialiser l'identité mobile ? Tous les appareils appairés seront révoqués et devront s'appairer à nouveau.`,identityReset:`Identité mobile réinitialisée`,enableFailed:`Impossible d'activer l'accès mobile`,disableFailed:`Impossible de désactiver l'accès mobile`,windowsFirewall:`Le Pare-feu Windows demandera d'autoriser le serveur SpecRails à la première activation — choisissez « Autoriser sur les réseaux privés ».`,pairedDevices:`Appareils appairés`,noDevices:`Aucun appareil appairé pour l'instant.`,revokeDevice:`Révoquer {{name}}`,resetConfirmTitle:`Réinitialiser l’identité mobile ?`},m={title:`Appairer le compagnon web`,description:`Ouvrez specrails.dev/companion-app sur votre téléphone, puis scannez ce code avec.`,startFailed:`Impossible de démarrer l'appairage : {{error}}`,showThenScan:`Une fois que votre téléphone l'a scanné, appuyez sur « Scanner le code du téléphone » et pointez la caméra vers votre téléphone.`,scanAnswer:`Scanner le code du téléphone`,scanning:`Pointez la caméra vers le code sur votre téléphone…`,cameraFailed:`Caméra indisponible`,notAnswer:`Ce QR code n'est pas une réponse d'appairage.`,connecting:`Connexion…`,paired:`✓ Appairé`,pairedToast:`Compagnon web appairé`,answerRejected:`Le bureau a rejeté ce code. Générez-en un nouveau et réessayez.`,copyCode:`Copier le code`,codeCopied:`Code copié`,cancel:`Annuler`},h={heading:`Specrails Core`,installed:`Installé :`,updateAvailable:`Mise à jour disponible : {{version}}`,upToDate:`À jour`,neverChecked:`Non vérifié`,check:`Rechercher des mises à jour`,checking:`Vérification…`,update:`Mettre à jour vers {{version}}`,downloading:`Téléchargement…`,materializing:`Installation…`,affectsAll:`S'applique à tous les projets — aucun redémarrage requis.`,unavailable:`Les mises à jour du core ne sont pas disponibles dans cette version.`,toastDone:`Specrails Core mis à jour vers {{version}}`,toastUpToDate:`Specrails Core est à jour`,runtime:`Moteur : {{version}}`,bundled:`Inclus dans Desktop : {{version}}`,sources:{override:`Sélection explicite`,managed:`Géré par Desktop`,bundled:`Inclus dans Desktop`,local:`Paquet local`,global:`CLI externe`},repair:`Terminer la mise à jour {{version}}`,stableFallback:`specrails-core n'a pas encore de version stable : Core suit Dernière pour l'instant.`,updateFailed:`Échec de la mise à jour de Core`,checkFailed:`Échec de la recherche de mises à jour`,loadError:`Impossible d’actualiser l’état de Core.`},g={heading:`Canal de mise à jour`,loading:`Chargement du canal…`,scope:`S'applique à Specrails Desktop et au framework specrails-core.`,saved:`Canal de mise à jour : {{channel}}`,saveFailed:`Impossible de changer le canal de mise à jour`,latest:{label:`Dernière`,description:`Chaque version dès sa sortie. Nouveautés et correctifs en premier.`},stable:{label:`Stable`,description:`Uniquement les versions promues après au moins une semaine sur Dernière avec une CI verte. Core suit son tag stable.`}},_={heading:`Specrails Desktop`,installed:`Installée :`,check:`Rechercher des mises à jour`,checking:`Vérification…`,upToDate:`Vous avez la dernière version`,updateAvailable:`Mise à jour disponible : {{version}}`,autoHint:`Vérification automatique au lancement et toutes les 6 heures.`,unavailable:`Les mises à jour ne sont disponibles que dans l'app de bureau.`,toastUpToDate:`Specrails Desktop est à jour`,toastCheckFailed:`Échec de la recherche de mises à jour`,stableUnavailable:`Aucune version n'a encore été promue sur le canal Stable. Passez à Dernière ou réessayez plus tard.`},v={title:`{{name}} — Paramètres`,description:`Configuration du projet : prompts, branche, environnement, budget, télémétrie, règles et terminal.`,nav:{general:`Général`,branch:`Branche`,environment:`Environnement`,budget:`Budget`,telemetry:`Télémétrie`,terminal:`Terminal`,agentRuntime:`Commandes de vérification`,subagents:`Sous-agents`,rules:`Règles`,recentlyDeleted:`Supprimés récemment`},navLabel:`Sections des réglages du projet`},y={title:`Branche d'intégration`,description:`La branche depuis laquelle les rails parallèles se ramifient et que ciblent leurs PR en brouillon. Laissez vide pour résoudre automatiquement vers la branche par défaut du dépôt.`,placeholder:`automatique (branche par défaut)`,resolved:`Les rails partent de <mono>{{branch}}</mono>`,save:`Enregistrer la branche`,saved:`Branche d'intégration enregistrée`,saveFailed:`Impossible d'enregistrer la branche d'intégration`},b={title:`Environnement des worktrees`,description:`Choisissez les noms de variables d'environnement que ce projet transmet aux jobs de rail et aux worktrees isolés des loops. Seuls les noms sont enregistrés ; les valeurs sont lues au démarrage, avec récupération depuis le login shell si le processus Desktop ne les a pas.`,label:`Variable d'environnement`,placeholder:`NODE_AUTH_TOKEN`,helper:`Appuyez sur Entrée ou Ajouter. Vous pouvez coller plusieurs noms séparés par des virgules ou des espaces.`,add:`Ajouter`,empty:`Aucune variable propre à ce projet n'est encore configurée.`,remove:`Supprimer {{name}}`,save:`Enregistrer l'environnement`,saved:`Environnement des worktrees enregistré`,saveFailed:`Impossible d'enregistrer l'environnement des worktrees`,invalidName:`{{name}} n'est pas un nom de variable d'environnement valide`,noValues:`Ajoutez uniquement des noms de variables, pas de secrets KEY=value.`,status:{inherited:`Héritée`,recovered:`Du shell de connexion`,notDefined:`Non définie`,probeTimeout:`Délai du shell dépassé`,probeFailed:`Échec de lecture du shell`,pending:`Vérification…`},hint:{defaultShell:`votre shell de connexion`,inherited:`Disponible dans l'environnement avec lequel Specrails a démarré.`,recovered:`Récupérée depuis {{shell}}. Les exécutions la reçoivent automatiquement ; la valeur n'est jamais affichée.`,notDefined:`{{shell}} n'exporte pas {{name}}. Ajoutez un export dans le profil du shell, puis vérifiez de nouveau.`,notDefinedInherited:`{{name}} n'est pas définie dans l'environnement avec lequel Specrails a démarré. Définissez-la puis redémarrez Specrails.`,probeTimeout:`{{shell}} a mis plus de {{seconds}} s à démarrer. Allégez le profil ou augmentez SPECRAILS_LOGIN_SHELL_TIMEOUT_MS, puis vérifiez de nouveau.`,probeFailed:`Specrails n'a pas pu lire {{shell}}. Corrigez le profil ou lancez Specrails depuis un terminal, puis vérifiez de nouveau.`,pending:`Specrails lit votre shell de connexion.`},recheck:`Vérifier à nouveau`,checking:`Vérification…`,lastChecked:`Dernière vérification à {{time}}`,statusUnavailable:`Impossible de lire l'état de l'environnement.`,unresolvedTitle:`Les exécutions démarrent sans ces variables :`},x={title:`Environnement des agents`,description:`Choisissez les variables d'environnement reçues par les agents de ce projet : jobs de rail, loops, missions, chats et assistants de specs.`,modes:{inherit:{label:`Hériter (par défaut)`,description:`Les agents reçoivent tout l'environnement avec lequel Specrails a démarré, plus les noms ci-dessus. Comportement inchangé.`},minimal:{label:`Minimal`,description:`Les agents ne reçoivent qu'une liste autorisée (PATH, HOME, langue, temporaires, terminal, proxy et certificats), les variables propres à Specrails, les variables de connexion du fournisseur choisi et les noms ci-dessus. Le reste, comme les identifiants cloud ou de base de données, est retenu.`}},saved:{inherit:`Les agents héritent de tout l'environnement`,minimal:`Les agents reçoivent désormais l'environnement minimal`},saveFailed:`Impossible d'enregistrer l'environnement des agents`,namesTitle:`Variables transmises en mode minimal`,shared:`Tous les agents`,passthrough:`Noms du projet (ci-dessus)`,noPassthrough:`Aucun nom de projet configuré.`,provider:`En plus pour {{provider}}`,noProviderNames:`Aucune définie pour l'instant (accepte {{patterns}}).`,namesHelp:`Seuls les noms sont affichés, jamais les valeurs. Les changements s'appliquent aux agents lancés ensuite ; les sessions de mission ouvertes conservent leur environnement jusqu'à leur redémarrage. Si un outil a besoin d'une autre variable, ajoutez son nom ci-dessus.`,statusUnavailable:`Impossible de lire la liste des variables.`},S={heading:`Effets`,description:`Touches visuelles de l'app. Chacune peut être désactivée ici.`,thinkingHalo:{label:`Halo de réflexion sur le composeur de l'agent`,description:`Pendant que l'agent réfléchit ou écrit, l'anneau orbital du Constructeur brille autour du composeur : il apparaît en fondu au début du tour et s'estompe quand la réponse se termine.`},reducedMotion:`Respecte le réglage système de réduction des animations : l'anneau reste une lueur statique.`,preview:`Aperçu`,previewThinking:`Réflexion…`},C={title:`Sous-agents`,stateOn:`Les agents peuvent lancer des sous-agents.`,stateOff:`Les agents travaillent seuls, sans sous-agents.`,explainParallel:`Les sous-agents permettent à un agent de confier du travail à des assistants qui tournent en parallèle, continuent après sa réponse et rendent compte une fois terminés.`,explainCost:`Chaque sous-agent consomme ses propres jetons : une seule demande peut coûter nettement plus.`,enabled:`Sous-agents autorisés`,disabled:`Sous-agents désactivés`,saveFailed:`Impossible d'enregistrer le réglage des sous-agents`,project:{description:`Autorise les missions, l'exploration et les affinages de ce projet à utiliser des sous-agents. Désactivé par défaut.`,toggleLabel:`Autoriser les sous-agents dans ce projet`,explainScope:`Les pipelines Implement ne sont pas concernés. Les missions dont des sous-agents tournent appliquent le changement quand ils ont fini.`},global:{description:`Autorise les missions sans projet à utiliser des sous-agents. Désactivé par défaut.`,toggleLabel:`Autoriser les sous-agents dans les missions sans projet`,explainScope:`Chaque projet a son propre réglage dans ses paramètres. Les missions dont des sous-agents tournent appliquent le changement quand ils ont fini.`},runtime:{label:`Exécuter les sous-agents avec`,same:`Comme l'agent de la mission`,sameHint:`Les sous-agents utilisent le fournisseur, le modèle et l'effort de l'agent de la mission, lancés nativement par son propre CLI.`,chosenHint:`Les missions sur {{provider}} lancent leurs propres sous-agents avec ce modèle. Avec tout autre fournisseur, Specrails les lance sur {{provider}}.`,providerLabel:`Fournisseur des sous-agents`,modelLabel:`Modèle des sous-agents`,effortLabel:`Effort des sous-agents`,claudeEffortHint:`Les sous-agents propres à Claude ignorent l'effort ; il s'applique quand Specrails les lance.`,saved:`Les sous-agents s'exécutent désormais avec {{provider}}`,reset:`Les sous-agents suivent à nouveau l'agent de la mission`,confirm:{title:`Exécuter les sous-agents avec {{provider}} ?`,body:`Dans les missions sur un autre fournisseur, les sous-agents ne sont plus natifs : Specrails lance chacun comme sa propre session {{provider}} au lieu du CLI de la mission.`,cost:`Plus lent et parfois plus cher : chaque sous-agent démarre à froid, sans le cache de prompt qu'il partagerait avec l'agent de la mission.`,control:`Plus de contrôle et de flexibilité : mélangez les fournisseurs, choisissez modèle et effort, voyez le coût réel de chaque sous-agent et laissez-les travailler après la réponse de la mission.`,native:`Les missions déjà sur {{provider}} gardent des sous-agents natifs, désormais avec ce modèle et cet effort.`,cancel:`Garder comme la mission`,accept:`Utiliser {{provider}}`}}},w={title:`Journal des actions des agents`,description:`Un journal par projet de ce que les agents ont lu, écrit, exécuté, appelé via MCP ou récupéré — exportable en JSONL ou CSV depuis chaque job et le dossier de revue.`,retentionLabel:`Conserver les entrées pendant`,daysUnit:`jours`,caveat:`Les entrées anciennes sont supprimées au démarrage puis chaque jour. Les lectures ne sont complètes que selon le flux de chaque fournisseur ; contenus et valeurs d'environnement ne sont jamais stockés.`,save:`Enregistrer la rétention`,saved_one:`Actions des agents conservées {{count}} jour`,saved_other:`Actions des agents conservées {{count}} jours`,saveFailed:`Impossible d'enregistrer la rétention du journal`,invalidDays:`Saisissez un nombre entier de jours entre 1 et {{max}}`},T={title:`Limite de revue`,description:`Limitez le nombre de livraisons qui peuvent attendre votre revue en même temps, pour que le nouveau travail ne s’accumule pas plus vite que vous ne pouvez décider.`,label:`Livraisons en attente de revue`,help:`Nous suggérons {{suggested}} : assez pour occuper les rails pendant que vous relisez. Comptent les livraisons en cours, celles non décidées et les PR ouvertes créées par l’app. Les modifications d’une livraison existante sont toujours autorisées. Laissez vide pour aucune limite.`,placeholder:`Aucune limite`,useSuggested:`Utiliser {{suggested}}`,invalid:`Saisissez un nombre entier de 1 à {{max}}, ou laissez vide pour aucune limite.`,saved_one:`Limite de revue fixée à {{count}}`,saved_other:`Limite de revue fixée à {{count}}`,removed:`Limite de revue supprimée`,saveFailed:`Impossible d’enregistrer la limite de revue`},E={title:`Ancrage dans les projets existants`,description:`Comportements optionnels qui aident les runs à respecter ce que le projet fait déjà. Chacun nécessite un Core qui le prend en charge.`,coreRequired:`Le Core installé ne le prend pas encore en charge. Mettez Core à jour pour l'activer.`,saveFailed:`Impossible d'enregistrer le réglage`,jiraPostClarifications:{label:`Publier les clarifications de l'architecte dans Jira`,description:`Quand un run se met en pause avec les questions de l'architecte, ou continue sur des hypothèses, elles sont publiées en commentaire sur le ticket Jira lié. Une réponse y est enregistrée sur la spec comme clarification.`,enabled:`Les clarifications seront publiées dans Jira`,disabled:`Les clarifications resteront dans Specrails`},baselineOnTouch:{label:`Baseline au contact`,description:`Quand un changement atteint du code qu'aucune spec ne décrit, écrire d'abord des tests de caractérisation (prouvés sur le code inchangé) et une spec tel-que-construit minimale. Ajoute un coût, affiché à part.`,enabled:`Baseline au contact activée`,disabled:`Baseline au contact désactivée`}},D={title:`Règles du projet`,description:`Les contrôles que le projet exécute déjà et chaque règle écrite, classée comme appliquée, automatisable ou humaine uniquement. Les règles humaines apparaissent dans chaque dossier de revue.`,rerun:`Relancer l'inventaire`,running:`Inventaire en cours…`,coreRequired:`Le Core installé ne prend pas en charge l'inventaire des règles. Mettez Core à jour pour le lancer.`,missing:`Pas encore d'inventaire. Lancez-le pour lister les contrôles et les règles du projet.`,invalid:`Le fichier de règles n'a pas pu être lu : {{message}}`,inventoryDone:`Inventaire des règles mis à jour`,inventoryFailed:`L'inventaire des règles a échoué`,specCreated:`Spec #{{id}} créée`,specFailed:`Impossible de créer la spec`,status:{automatable:`Automatisable`,humanOnly:`Humaine uniquement`,enforcedBy:`Appliquée`,unclassified:`Non classée`},generatedAt:`Généré {{date}}`,gates_one:`{{count}} contrôle`,gates_other:`{{count}} contrôles`,gatesHint:`Les commandes de contrôle simples sont proposées en premier comme vérifications dans les réglages de l'agent runtime quand aucune n'est configurée.`,enforcedBy:`Appliquée par {{check}}`,proposedCheck:`Contrôle proposé : {{check}}`,createSpec:`Créer la spec`,dropped_one:`{{count}} entrée ne respectait pas le format et a été ignorée`,dropped_other:`{{count}} entrées ne respectaient pas le format et ont été ignorées`,classification:{offline:`Les règles ont été inventoriées hors ligne et ne sont pas encore classées. Relancez l'inventaire avec un fournisseur configuré.`,unavailable:`Aucun fournisseur n'est configuré pour classer les règles.`,failed:`Le classement des règles a échoué.`,empty:`Aucune règle écrite n'a été trouvée.`,unknown:`Les règles ne sont pas classées.`},autoRunning:`L’inventaire s’exécute après la configuration. Cette liste se met à jour quand il se termine.`,lastRun:{setupFailed:`L’inventaire automatique après la configuration a échoué ({{date}}).`,manualFailed:`La dernière exécution de l’inventaire a échoué ({{date}}).`,retryHint:`Corrigez la cause indiquée ci-dessus, puis relancez l’inventaire.`,setupDone:`Inventorié automatiquement après la configuration.`}},O={heading:`Éditeur`,description:`L'éditeur utilisé par « Ouvrir dans l'éditeur » dans le dossier de revue. Enregistré sur cet ordinateur.`,label:`Ouvrir les fichiers dans`,names:{vscode:`VS Code`,cursor:`Cursor`,jetbrains:`IDE JetBrains`}},k=`Les plafonds se modifient dans Analyses ▸ Budget.`,A=`Ouvrir Budget`,j=`Ouvrir les réglages`,M={density:{title:`Densité`,description:`L'espace occupé par les cartes et les lignes. S'applique au tableau, à la liste des jobs et au récit du job. Une vue enregistrée du tableau garde sa propre disposition.`,comfortable:`Confortable`,comfortableHint:`Cartes et lignes aérées`,compact:`Compacte`,compactHint:`Plus de specs et de lignes à l'écran`,resetBoard:`L’appliquer aussi au tableau`,resetBoardDone:`Le tableau de ce projet la suit désormais.`},motion:{title:`Réduire les animations`,description:`Désactive les animations et les transitions dans Specrails, indépendamment de votre système d'exploitation.`,system:`Suivre le système`,systemHint:`Utilise le réglage de votre OS`,reduce:`Réduire`,reduceHint:`Toujours calme : aucune animation`,full:`Animations complètes`,fullHint:`Anime même si l'OS demande moins`}},N={language:e,page:t,errors:n,telemetry:r,prePrompt:i,freestylePrePrompt:a,budget:o,desktop:s,notifications:c,webhooks:l,terminal:u,codeSection:d,appearance:f,mobile:p,pairWeb:m,coreUpdate:h,updateChannel:g,appUpdate:_,projectDialog:v,integrationBranch:y,worktreeEnv:b,agentEnv:x,effects:S,subagents:C,agentAudit:w,reviewWip:T,anchoring:E,rules:D,editorSection:O,budgetMoved:k,openBudget:A,openSettings:j,accessibility:M};export{M as accessibility,w as agentAudit,x as agentEnv,E as anchoring,_ as appUpdate,f as appearance,o as budget,k as budgetMoved,d as codeSection,h as coreUpdate,N as default,s as desktop,O as editorSection,S as effects,n as errors,a as freestylePrePrompt,y as integrationBranch,e as language,p as mobile,c as notifications,A as openBudget,j as openSettings,t as page,m as pairWeb,i as prePrompt,v as projectDialog,T as reviewWip,D as rules,C as subagents,r as telemetry,u as terminal,g as updateChannel,l as webhooks,b as worktreeEnv};
@@ -0,0 +1 @@
1
+ var e={title:`Idioma`,description:`Idioma da UI em todo o Desktop. Aplica-se de imediato — sem reiniciar.`,selectLabel:`Idioma da interface`,updateFailed:`Não foi possível guardar a preferência de idioma`},t={title:`Definições do projeto`,loadFailed:`Não foi possível carregar a configuração do projeto`},n={saveFailed:`Falha ao guardar`},r={title:`Telemetria do pipeline`,description:`Capture uso de tokens, durações de fases e atividade de subagentes para exportação de diagnóstico. Ativada por omissão.`,toggleLabel:`Ativar telemetria do pipeline`,toggleDescription:`Quando ativa, os dados OTEL dos jobs do pipeline são capturados localmente. Use o botão <mono>Exportar diagnóstico</mono> em qualquer cartão de job para descarregar.`,enabled:`Telemetria do pipeline ativada`,disabled:`Telemetria do pipeline desativada`,saveFailed:`Falha ao guardar a definição de telemetria`},i={title:`Pre-prompt de rail`,description:`Instruções extra específicas do projeto, acrescentadas aos jobs de rail implement depois do contexto da spec e antes da execução.`,label:`Pre-prompt`,placeholder:`Exemplo: Prefira alterações incrementais, mantenha as migrações retrocompatíveis e adicione testes a cada alteração de rail.`,helper:`Use isto para orientações estáveis do projeto que devem acompanhar cada execução de implementação em rail.`,saveButton:`Guardar pre-prompt`,cleared:`Pre-prompt limpo`,saved:`Pre-prompt guardado`,saveFailed:`Falha ao guardar o pre-prompt`},a={title:`Pre-prompt de Freestyle`,description:`Instrução enviada ao fornecedor selecionado em Freestyle. O Freestyle salta o pipeline OpenSpec — entrega ao fornecedor este pre-prompt mais o texto da spec e deixa-o implementar de forma autónoma. Deixe em branco para usar o valor predefinido.`,label:`Pre-prompt Freestyle`,placeholder:`Deixe em branco para usar a instrução Freestyle predefinida.`,helper:`O texto da spec é acrescentado automaticamente depois deste pre-prompt. Vazio = predefinição.`,saveButton:`Guardar pre-prompt Freestyle`,resetToDefault:`Pre-prompt Freestyle reposto na predefinição`,saved:`Pre-prompt Freestyle guardado`,saveFailed:`Falha ao guardar o pre-prompt Freestyle`},o={title:`Orçamento`,description:`Defina um limite de gasto diário para este projeto. A fila pausa automaticamente quando o limite é atingido.`,dailyLabel:`Limite diário`,dailyHelper:`O gasto é contado sobre as últimas 24 horas. A fila pausa quando o limite é atingido.`,perJobLabel:`Alerta de custo por job (USD)`,perJobHelper:`Alertar quando um único job deste projeto excede este valor.`,perJobPlaceholder:`ex.: 0.50`,invalidNumber:`Introduza um número positivo ou deixe em branco para desativar`,perJobAlertDisabled:`Alerta de custo por job desativado`,alertSet:`Alerta definido para jobs acima de {{amount}}`,saveThresholdFailed:`Falha ao guardar o limiar`,dailyCurrent:`Atualmente {{amount}} por dia`,dailyNone:`Sem limite diário`},s={nav:{appearance:`Aparência`,specrailsAgents:`Provedores de IA`,code:`Código`,terminal:`Terminal`,updates:`Atualizações`,mobile:`Móvel`,mcp:`MCP`,projects:`Projetos`,advanced:`Avançado`,webhooks:`Webhooks`,about:`Sobre`,effects:`Efeitos`,subscriptionUsage:`Uso de assinaturas`},title:`Definições do Desktop`,description:`Aparência, fornecedores de IA, atualizações e preferências gerais do Desktop.`,registeredProjects:`Projetos registados`,noProjects:`Ainda não há projetos registados`,techUrlDescription:`URL base para a API specrails-tech (predefinição: http://localhost:3000)`,techUrlSaved:`URL do specrails-tech guardado`,techUrlSaveFailed:`Falha ao guardar o URL`,budgetAlertsHeading:`Orçamento e alertas`,dailyBudgetLabel:`Limite diário do Desktop`,dailyBudgetHelper:`Limite global de gasto diário em todos os projetos. As filas pausam automaticamente quando é excedido.`,perJobHelper:`Alertar quando um único job excede este valor. Deixe em branco para desativar.`,costAlertsDisabled:`Alertas de custo desativados`,projectRemoved:`Projeto removido`,projectRemoveFailed:`Falha ao remover o projeto`,onboardingHeading:`Onboarding`,platformTour:`Tour da plataforma`,platformTourDescription:`Repita o assistente de boas-vindas para rever as funcionalidades principais.`,replayTour:`Repetir tour`,infoHeading:`Informações do Desktop`,infoPort:`Porta`,infoProjects:`Projetos`,infoDb:`BD do Desktop`,removeProjectConfirmTitle:`Remover {{name}}?`,removeProjectConfirmBody:`{{name}} deixa de estar registado no Specrails e o trabalho em curso para. Os ficheiros do repositório no disco não são apagados; pode voltar a adicionar a pasta mais tarde.`,navLabel:`Secções das definições`,navGroups:{personal:`Pessoal`,agents:`Agentes`,system:`Sistema`},unsavedChanges:`Alterações não guardadas`,dailyBudgetCurrent:`Atualmente {{amount}} por dia`,dailyBudgetNone:`Sem limite diário`},c={heading:`Notificações do SO`,description:`Mostrar notificações nativas do desktop quando os jobs terminam ou falham. As notificações só aparecem quando o separador não está focado.`,enableLabel:`Ativar notificações do SO`,notifyOn:`Notificar em:`,filterAll:`Tudo (concluídos e falhados)`,filterCompleted:`Apenas concluídos`,filterFailed:`Apenas falhados`,enabledToast:`Notificações do SO ativadas`,disabledToast:`Notificações do SO desativadas`},l={heading:`Webhooks de saída`,description:`Notifique ferramentas externas (Slack, Zapier, CI/CD) sobre eventos do Desktop. Os pedidos são assinados via <code>X-Specrails-Signature</code> quando há um segredo definido.`,eventJobCompleted:`Job concluído`,eventJobFailed:`Job falhado`,eventDailyBudgetExceeded:`Orçamento diário excedido`,disable:`Desativar`,enable:`Ativar`,sendTestPing:`Enviar ping de teste`,addHeading:`Adicionar webhook`,secretPlaceholder:`Segredo de assinatura (opcional)`,addButton:`Adicionar webhook`,urlRequired:`O URL é obrigatório`,selectEvent:`Selecione pelo menos um evento`,added:`Webhook adicionado`,addFailed:`Falha ao adicionar o webhook`,updateFailed:`Falha ao atualizar o webhook`,removed:`Webhook removido`,removeFailed:`Falha ao remover o webhook`,testPingSent:`Ping de teste enviado`,testPingFailed:`Falha ao enviar o ping de teste`,removeConfirmTitle:`Remover o webhook?`,removeConfirmBody:`{{url}} deixará de receber eventos do Desktop.`,urlLabel:`URL do webhook`},u={title:`Painel de terminal`,desktopDescription:`Predefinições do Desktop aplicadas a todos os projetos, salvo override por projeto.`,projectDescription:`Overrides por projeto para o painel de terminal. Deixe um campo inalterado para herdar a predefinição do Desktop.`,fontFamily:`Tipo de letra`,fontSize:`Tamanho da letra ({{min}}–{{max}})`,renderMode:`Modo de renderização`,copyOnSelect:`Copiar ao selecionar`,shellIntegration:`Integração com a shell (marcas OSC 133)`,notifyLongRunning:`Notificar comandos de longa duração`,longCommandThreshold:`Limiar de comando longo (ms)`,imageRendering:`Renderização de imagens inline (Sixel + iTerm2)`,browserShortcutUrl:`URL do atalho do browser`,quickScript:`Script rápido (colado no terminal ativo — Enter manualmente)`,reset:`Repor`,unsavedChanges:`Alterações não guardadas`,clearOverride:`Limpar override`,clear:`Limpar`,inheritingDefault:`A herdar a predefinição do Desktop`,nothingToSave:`Nada para guardar`,saved:`Definições do terminal guardadas`},d={heading:`Secção de código`,summaryLanguage:`Idioma dos resumos`,monthlyBudget:`Orçamento mensal (USD)`,budgetHelper:"Limite de gasto em `surface=file-summary` por mês de calendário. Regenerações iniciadas pelo utilizador podem ignorá-lo."},f={taglines:{dracula:`O original — escuro com tom púrpura e acentos néon vivos`,"aurora-light":`Claro premium — índigo inspirado no Linear sobre branco quente`,"obsidian-dark":`Grafite pro — quase preto neutro com um único acento violeta suave`,specrails:`Tema da marca — azul-marinho-índigo profundo com acentos ciano saturados`,"code-rain":`Terminal de fósforo — menta suave sobre quase preto esverdeado`,galaxy:`Azul de espaço profundo com um rastro brilhante de lâmina`},heading:`Aspeto`,themeGroupLabel:`Tema`,currentlyActive:`Atualmente ativo`,updateFailed:`Falha ao atualizar o tema`},p={heading:`Companion móvel`,description:`Controle o Specrails a partir da app SpecRails Companion no seu telemóvel, 100% através da sua rede local. Desativado por omissão. Um telemóvel emparelhado pode responder a perguntas, retomar, repetir e criar PR em rascunho a partir da caixa de entrada, dentro do que os níveis de permissão MCP permitirem; integrar, descartar e as definições ficam neste computador.`,accessOn:`Acesso móvel ligado`,accessOff:`Acesso móvel desligado`,listeningOnPort:`À escuta na porta {{port}}`,notListening:`Não está à escuta`,turnOn:`Ligar`,turnOff:`Desligar`,pairWebDevice:`Emparelhar companion web`,reset:`Repor`,resetConfirm:`Repor a identidade móvel? Todos os dispositivos emparelhados serão revogados e terão de emparelhar novamente.`,identityReset:`Identidade móvel reposta`,enableFailed:`Não foi possível ativar o acesso móvel`,disableFailed:`Não foi possível desativar o acesso móvel`,windowsFirewall:`A Firewall do Windows pedirá para permitir o servidor SpecRails na primeira ativação — escolha “Permitir em redes privadas”.`,pairedDevices:`Dispositivos emparelhados`,noDevices:`Ainda não há dispositivos emparelhados.`,revokeDevice:`Revogar {{name}}`,resetConfirmTitle:`Repor a identidade móvel?`},m={title:`Emparelhar companion web`,description:`Abra specrails.dev/companion-app no seu telemóvel e leia este código com ele.`,startFailed:`Não foi possível iniciar o emparelhamento: {{error}}`,showThenScan:`Depois de o seu telemóvel ler isto, toque em “Ler código do telemóvel” e aponte a câmara para o telemóvel.`,scanAnswer:`Ler código do telemóvel`,scanning:`Aponte a câmara para o código no seu telemóvel…`,cameraFailed:`Câmara indisponível`,notAnswer:`Esse QR não é uma resposta de emparelhamento.`,connecting:`A ligar…`,paired:`✓ Emparelhado`,pairedToast:`Companion web emparelhado`,answerRejected:`O desktop rejeitou esse código. Gere um novo e tente novamente.`,copyCode:`Copiar código`,codeCopied:`Código copiado`,cancel:`Cancelar`},h={heading:`Specrails Core`,installed:`Instalado:`,updateAvailable:`Atualização disponível: {{version}}`,upToDate:`Atualizado`,neverChecked:`Não verificado`,check:`Procurar atualizações`,checking:`A verificar…`,update:`Atualizar para {{version}}`,downloading:`A descarregar…`,materializing:`A instalar…`,affectsAll:`Aplica-se a todos os projetos — sem reiniciar.`,unavailable:`As atualizações do core não estão disponíveis nesta versão.`,toastDone:`Specrails Core atualizado para {{version}}`,toastUpToDate:`O Specrails Core está atualizado`,runtime:`Motor: {{version}}`,bundled:`Incluído no Desktop: {{version}}`,sources:{override:`Seleção explícita`,managed:`Gerido pelo Desktop`,bundled:`Incluído no Desktop`,local:`Pacote local`,global:`CLI externa`},repair:`Concluir atualização {{version}}`,stableFallback:`O specrails-core ainda não tem versão estável, então o Core segue Mais recente por enquanto.`,updateFailed:`Falha ao atualizar o Core`,checkFailed:`Falha ao procurar atualizações`,loadError:`Não foi possível atualizar o estado do Core.`},g={heading:`Canal de atualização`,loading:`Carregando canal…`,scope:`Aplica-se ao Specrails Desktop e ao framework specrails-core.`,saved:`Canal de atualização: {{channel}}`,saveFailed:`Não foi possível alterar o canal de atualização`,latest:{label:`Mais recente`,description:`Cada versão assim que é publicada. Novidades e correções primeiro.`},stable:{label:`Estável`,description:`Apenas versões promovidas após pelo menos uma semana em Mais recente com CI verde. O Core segue sua tag stable.`}},_={heading:`Specrails Desktop`,installed:`Instalada:`,check:`Verificar atualizações`,checking:`Verificando…`,upToDate:`Você está na versão mais recente`,updateAvailable:`Atualização disponível: {{version}}`,autoHint:`Verificação automática ao iniciar e a cada 6 horas.`,unavailable:`Atualizações estão disponíveis apenas no app desktop.`,toastUpToDate:`O Specrails Desktop está atualizado`,toastCheckFailed:`Falha ao verificar atualizações`,stableUnavailable:`Nenhuma versão foi promovida ao canal Estável ainda. Mude para Mais recente ou tente novamente mais tarde.`},v={title:`{{name}} — Configurações`,description:`Configuração do projeto: prompts, branch, ambiente, orçamento, telemetria, regras e terminal.`,nav:{general:`Geral`,branch:`Branch`,environment:`Ambiente`,budget:`Orçamento`,telemetry:`Telemetria`,terminal:`Terminal`,agentRuntime:`Comandos de verificação`,subagents:`Subagentes`,rules:`Regras`,recentlyDeleted:`Excluídos recentemente`},navLabel:`Secções das definições do projeto`},y={title:`Ramo de integração`,description:`O ramo a partir do qual os rails paralelos derivam e para o qual apontam os seus PRs em rascunho. Deixe vazio para resolver automaticamente para o ramo padrão do repositório.`,placeholder:`automático (ramo padrão)`,resolved:`Os rails derivam de <mono>{{branch}}</mono>`,save:`Guardar ramo`,saved:`Ramo de integração guardado`,saveFailed:`Não foi possível guardar o ramo de integração`},b={title:`Ambiente dos worktrees`,description:`Escolha os nomes das variáveis de ambiente que este projeto passa para jobs de rail e worktrees isolados de loops. Só os nomes são guardados; os valores são lidos quando a execução começa, com recuperação a partir do login shell se faltarem no processo Desktop.`,label:`Variável de ambiente`,placeholder:`NODE_AUTH_TOKEN`,helper:`Prima Enter ou Adicionar. Pode colar vários nomes separados por vírgulas ou espaços.`,add:`Adicionar`,empty:`Ainda não há variáveis específicas para este projeto.`,remove:`Remover {{name}}`,save:`Guardar ambiente`,saved:`Ambiente dos worktrees guardado`,saveFailed:`Não foi possível guardar o ambiente dos worktrees`,invalidName:`{{name}} não é um nome válido de variável de ambiente`,noValues:`Adicione apenas nomes de variáveis, não segredos KEY=value.`,status:{inherited:`Herdada`,recovered:`Do login shell`,notDefined:`Não definida`,probeTimeout:`Tempo do shell esgotado`,probeFailed:`Falha ao ler o shell`,pending:`Verificando…`},hint:{defaultShell:`seu login shell`,inherited:`Disponível no ambiente com que o Specrails foi iniciado.`,recovered:`Recuperada de {{shell}}. As execuções a recebem automaticamente; o valor nunca é exibido.`,notDefined:`{{shell}} não exporta {{name}}. Adicione um export no perfil do shell e verifique novamente.`,notDefinedInherited:`{{name}} não está definida no ambiente com que o Specrails foi iniciado. Defina-a lá e reinicie o Specrails.`,probeTimeout:`{{shell}} levou mais de {{seconds}} s para iniciar. Acelere o perfil ou aumente SPECRAILS_LOGIN_SHELL_TIMEOUT_MS e verifique novamente.`,probeFailed:`O Specrails não conseguiu ler {{shell}}. Corrija o perfil ou abra o Specrails a partir de um terminal e verifique novamente.`,pending:`O Specrails está lendo seu login shell.`},recheck:`Verificar novamente`,checking:`Verificando…`,lastChecked:`Última verificação às {{time}}`,statusUnavailable:`Não foi possível ler o estado do ambiente.`,unresolvedTitle:`As execuções começam sem estas variáveis:`},x={title:`Ambiente dos agentes`,description:`Escolha quais variáveis de ambiente os agentes deste projeto recebem: jobs de rail, loops, missões, chats e assistentes de specs.`,modes:{inherit:{label:`Herdar (padrão)`,description:`Os agentes recebem todo o ambiente com que o Specrails iniciou, mais os nomes acima. Mesmo comportamento de antes.`},minimal:{label:`Mínimo`,description:`Os agentes recebem só uma lista permitida (PATH, HOME, idioma, temporários, terminal, proxy e certificados), as variáveis do próprio Specrails, as de login do provedor escolhido e os nomes acima. O resto, como credenciais de nuvem ou de banco de dados, é retido.`}},saved:{inherit:`Os agentes herdam todo o ambiente`,minimal:`Os agentes agora recebem o ambiente mínimo`},saveFailed:`Não foi possível salvar o ambiente dos agentes`,namesTitle:`Variáveis passadas no modo mínimo`,shared:`Todos os agentes`,passthrough:`Nomes do projeto (acima)`,noPassthrough:`Nenhum nome de projeto configurado.`,provider:`Além disso, para {{provider}}`,noProviderNames:`Nenhuma definida agora (aceita {{patterns}}).`,namesHelp:`Só os nomes são mostrados; os valores nunca aparecem. As mudanças valem para agentes iniciados depois; sessões de missão abertas mantêm o ambiente até reiniciar. Se uma ferramenta precisar de outra variável, adicione o nome dela acima.`,statusUnavailable:`Não foi possível ler a lista de variáveis.`},S={heading:`Efeitos`,description:`Detalhes visuais da app. Cada um pode ser desativado aqui.`,thinkingHalo:{label:`Halo de raciocínio no compositor do agente`,description:`Enquanto o agente pensa ou escreve, o anel orbital do Construtor brilha à volta do compositor: surge com fade ao começar o turno e desvanece quando a resposta termina.`},reducedMotion:`Respeita a definição de movimento reduzido do sistema: o anel fica como um brilho estático.`,preview:`Pré-visualização`,previewThinking:`A pensar…`},C={title:`Subagentes`,stateOn:`Os agentes podem lançar subagentes.`,stateOff:`Os agentes trabalham sozinhos, sem subagentes.`,explainParallel:`Os subagentes permitem que um agente distribua trabalho para ajudantes que rodam em paralelo, continuam após a resposta dele e avisam quando terminam.`,explainCost:`Cada subagente consome os próprios tokens, então um único pedido pode custar bem mais.`,enabled:`Subagentes permitidos`,disabled:`Subagentes desativados`,saveFailed:`Não foi possível salvar a configuração de subagentes`,project:{description:`Permite que missões, exploração e refinamentos deste projeto usem subagentes. Desativado por padrão.`,toggleLabel:`Permitir subagentes neste projeto`,explainScope:`Os pipelines de Implement não são afetados. Missões com subagentes em execução aplicam a mudança quando eles terminam.`},global:{description:`Permite que missões sem projeto usem subagentes. Desativado por padrão.`,toggleLabel:`Permitir subagentes em missões sem projeto`,explainScope:`Cada projeto tem sua própria configuração nas configurações do projeto. Missões com subagentes em execução aplicam a mudança quando eles terminam.`},runtime:{label:`Executar subagentes com`,same:`Igual ao agente da missão`,sameHint:`Os subagentes usam o provedor, o modelo e o esforço do agente da missão, iniciados nativamente pelo próprio CLI.`,chosenHint:`Missões em {{provider}} iniciam os próprios subagentes com este modelo. Com qualquer outro provedor, o Specrails os inicia em {{provider}}.`,providerLabel:`Provedor dos subagentes`,modelLabel:`Modelo dos subagentes`,effortLabel:`Esforço dos subagentes`,claudeEffortHint:`Os subagentes próprios do Claude ignoram o esforço; ele se aplica quando o Specrails os inicia.`,saved:`Os subagentes agora rodam com {{provider}}`,reset:`Os subagentes voltam a seguir o agente da missão`,confirm:{title:`Executar os subagentes com {{provider}}?`,body:`Em missões com outro provedor, os subagentes deixam de ser nativos: o Specrails inicia cada um como uma sessão própria do {{provider}} em vez do CLI da missão.`,cost:`Mais lento e possivelmente mais caro: cada subagente começa a frio, sem o cache de prompt que compartilharia com o agente da missão.`,control:`Mais controle e flexibilidade: combine provedores, escolha modelo e esforço, veja o custo real de cada subagente e deixe-os trabalhando após a resposta da missão.`,native:`Missões que já usam {{provider}} mantêm subagentes nativos, agora com este modelo e esforço.`,cancel:`Manter igual à missão`,accept:`Usar {{provider}}`}}},w={title:`Registro de ações dos agentes`,description:`Um registro por projeto do que os agentes leram, escreveram, executaram, chamaram via MCP ou buscaram — exportável em JSONL ou CSV a partir de cada job e do pacote de revisão.`,retentionLabel:`Manter entradas por`,daysUnit:`dias`,caveat:`Entradas antigas são removidas na inicialização e diariamente. As leituras são tão completas quanto o stream de cada provedor; conteúdos e valores de ambiente nunca são armazenados.`,save:`Salvar retenção`,saved_one:`Ações dos agentes mantidas por {{count}} dia`,saved_other:`Ações dos agentes mantidas por {{count}} dias`,saveFailed:`Não foi possível salvar a retenção do registro`,invalidDays:`Informe um número inteiro de dias entre 1 e {{max}}`},T={title:`Limite de revisão`,description:`Limite quantas entregas podem aguardar sua revisão ao mesmo tempo, para que o trabalho novo não se acumule mais rápido do que você consegue decidir.`,label:`Entregas aguardando revisão`,help:`Sugerimos {{suggested}}: o suficiente para manter os rails ocupados enquanto você revisa. Contam as entregas em execução, as não decididas e os PRs abertos criados pelo app. Alterações em uma entrega existente são sempre permitidas. Deixe vazio para não ter limite.`,placeholder:`Sem limite`,useSuggested:`Usar {{suggested}}`,invalid:`Digite um número inteiro de 1 a {{max}}, ou deixe vazio para não ter limite.`,saved_one:`Limite de revisão definido em {{count}}`,saved_other:`Limite de revisão definido em {{count}}`,removed:`Limite de revisão removido`,saveFailed:`Não foi possível salvar o limite de revisão`},E={title:`Ancoragem em projetos existentes`,description:`Comportamentos opcionais que ajudam as execuções a respeitar o que o projeto já faz. Cada um precisa de um Core que o suporte.`,coreRequired:`O Core instalado ainda não suporta isto. Atualize o Core para ativar.`,saveFailed:`Não foi possível salvar a configuração`,jiraPostClarifications:{label:`Publicar esclarecimentos do arquiteto no Jira`,description:`Quando uma execução pausa com perguntas do arquiteto, ou segue com suposições, elas são publicadas como comentário na issue do Jira vinculada. Uma resposta lá é registrada na spec como esclarecimento.`,enabled:`Os esclarecimentos serão publicados no Jira`,disabled:`Os esclarecimentos ficarão no Specrails`},baselineOnTouch:{label:`Baseline ao tocar`,description:`Quando uma mudança alcança código que nenhuma spec descreve, primeiro são escritos testes de caracterização (comprovados no código inalterado) e uma spec as-built mínima. Adiciona custo, mostrado à parte.`,enabled:`Baseline ao tocar ativado`,disabled:`Baseline ao tocar desativado`}},D={title:`Regras do projeto`,description:`As verificações que o projeto já executa e cada regra escrita, classificada como aplicada, automatizável ou somente humana. As regras somente humanas aparecem em cada pacote de revisão.`,rerun:`Refazer inventário`,running:`Inventariando…`,coreRequired:`O Core instalado não suporta o inventário de regras. Atualize o Core para executá-lo.`,missing:`Ainda não há inventário. Execute-o para listar os gates e as regras do projeto.`,invalid:`Não foi possível ler o arquivo de regras: {{message}}`,inventoryDone:`Inventário de regras atualizado`,inventoryFailed:`O inventário de regras falhou`,specCreated:`Spec #{{id}} criada`,specFailed:`Não foi possível criar a spec`,status:{automatable:`Automatizável`,humanOnly:`Somente humana`,enforcedBy:`Aplicada`,unclassified:`Não classificada`},generatedAt:`Gerado {{date}}`,gates_one:`{{count}} gate`,gates_other:`{{count}} gates`,gatesHint:`Comandos de gate simples são oferecidos primeiro como verificações nas configurações do agent runtime quando nenhuma está configurada.`,enforcedBy:`Aplicada por {{check}}`,proposedCheck:`Verificação proposta: {{check}}`,createSpec:`Criar spec`,dropped_one:`{{count}} entrada não seguia o formato e foi ignorada`,dropped_other:`{{count}} entradas não seguiam o formato e foram ignoradas`,classification:{offline:`As regras foram inventariadas offline e ainda não estão classificadas. Refaça o inventário com um provedor configurado.`,unavailable:`Nenhum provedor está configurado para classificar as regras.`,failed:`A classificação das regras falhou.`,empty:`Nenhuma regra escrita foi encontrada.`,unknown:`As regras não estão classificadas.`},autoRunning:`O inventário está em execução após a configuração. Esta lista é atualizada quando terminar.`,lastRun:{setupFailed:`O inventário automático após a configuração falhou ({{date}}).`,manualFailed:`A última execução do inventário falhou ({{date}}).`,retryHint:`Corrija a causa mostrada acima e execute o inventário novamente.`,setupDone:`Inventariado automaticamente após a configuração.`}},O={heading:`Editor`,description:`O editor que «Abrir no editor» usa no pacote de revisão. Fica salvo neste computador.`,label:`Abrir arquivos em`,names:{vscode:`VS Code`,cursor:`Cursor`,jetbrains:`IDE da JetBrains`}},k=`Os limites são editados em Análises ▸ Orçamento.`,A=`Abrir Orçamento`,j=`Abrir configurações`,M={density:{title:`Densidade`,description:`Quanto espaço ocupam os cartões e as linhas. Aplica-se ao quadro, à lista de jobs e à história do job. Uma vista guardada do quadro mantém o seu próprio layout.`,comfortable:`Confortável`,comfortableHint:`Cartões e linhas arejados`,compact:`Compacta`,compactHint:`Mais specs e linhas no ecrã`,resetBoard:`Usar também no quadro`,resetBoardDone:`O quadro deste projeto passa a segui-la.`},motion:{title:`Reduzir movimento`,description:`Desativa animações e transições dentro do Specrails, independentemente do seu sistema operativo.`,system:`Seguir o sistema`,systemHint:`Usa a definição do seu SO`,reduce:`Reduzir`,reduceHint:`Sempre calmo: sem animação`,full:`Movimento total`,fullHint:`Anima mesmo que o SO peça menos`}},N={language:e,page:t,errors:n,telemetry:r,prePrompt:i,freestylePrePrompt:a,budget:o,desktop:s,notifications:c,webhooks:l,terminal:u,codeSection:d,appearance:f,mobile:p,pairWeb:m,coreUpdate:h,updateChannel:g,appUpdate:_,projectDialog:v,integrationBranch:y,worktreeEnv:b,agentEnv:x,effects:S,subagents:C,agentAudit:w,reviewWip:T,anchoring:E,rules:D,editorSection:O,budgetMoved:k,openBudget:A,openSettings:j,accessibility:M};export{M as accessibility,w as agentAudit,x as agentEnv,E as anchoring,_ as appUpdate,f as appearance,o as budget,k as budgetMoved,d as codeSection,h as coreUpdate,N as default,s as desktop,O as editorSection,S as effects,n as errors,a as freestylePrePrompt,y as integrationBranch,e as language,p as mobile,c as notifications,A as openBudget,j as openSettings,t as page,m as pairWeb,i as prePrompt,v as projectDialog,T as reviewWip,D as rules,C as subagents,r as telemetry,u as terminal,g as updateChannel,l as webhooks,b as worktreeEnv};
@@ -0,0 +1 @@
1
+ import{r as e}from"./rolldown-runtime-CNC7AqOf.js";var t=e({accessibility:()=>P,agentAudit:()=>E,agentEnv:()=>C,anchoring:()=>O,appUpdate:()=>y,appearance:()=>m,budget:()=>c,budgetMoved:()=>j,codeSection:()=>p,coreUpdate:()=>_,default:()=>F,desktop:()=>l,editorSection:()=>A,effects:()=>w,errors:()=>i,freestylePrePrompt:()=>s,integrationBranch:()=>x,language:()=>n,mobile:()=>h,notifications:()=>u,openBudget:()=>M,openSettings:()=>N,page:()=>r,pairWeb:()=>g,prePrompt:()=>o,projectDialog:()=>b,reviewWip:()=>D,rules:()=>k,subagents:()=>T,telemetry:()=>a,terminal:()=>f,updateChannel:()=>v,webhooks:()=>d,worktreeEnv:()=>S}),n={title:`Language`,description:`Desktop-wide UI language. Applies instantly — no restart needed.`,selectLabel:`Interface language`,updateFailed:`Could not save the language preference`},r={title:`Project Settings`,loadFailed:`Couldn't load the project configuration`},i={saveFailed:`Failed to save`},a={title:`Pipeline Telemetry`,description:`Capture token usage, phase durations, and subagent activity for diagnostic export. On by default.`,toggleLabel:`Enable pipeline telemetry`,toggleDescription:`When on, OTEL data from pipeline jobs is captured locally. Use the <mono>Export diagnostic</mono> button on any job card to download.`,enabled:`Pipeline telemetry enabled`,disabled:`Pipeline telemetry disabled`,saveFailed:`Failed to save telemetry setting`},o={title:`Rail Pre-prompt`,description:`Extra project-specific instructions appended to implement rail jobs after the spec context and before the run.`,label:`Pre-prompt`,placeholder:`Example: Prefer incremental changes, keep migrations backward compatible, and add tests for every rail change.`,helper:`Use this for stable project guidance that should accompany every rail implementation run.`,saveButton:`Save pre-prompt`,cleared:`Pre-prompt cleared`,saved:`Pre-prompt saved`,saveFailed:`Failed to save pre-prompt`},s={title:`Freestyle pre-prompt`,description:`Instruction sent to the selected provider in Freestyle. Freestyle skips the OpenSpec pipeline — it hands the provider this pre-prompt plus the spec text and lets it implement autonomously. Leave blank to use the built-in default.`,label:`Freestyle pre-prompt`,placeholder:`Leave blank to use the default Freestyle instruction.`,helper:`The spec text is appended automatically after this pre-prompt. Empty = default.`,saveButton:`Save Freestyle pre-prompt`,resetToDefault:`Freestyle pre-prompt reset to default`,saved:`Freestyle pre-prompt saved`,saveFailed:`Failed to save Freestyle pre-prompt`},c={title:`Spend limits`,description:`Set a daily spend limit for this project. The queue auto-pauses when the limit is hit.`,dailyLabel:`Daily limit`,dailyHelper:`Spend is counted over the last 24 hours. The queue pauses when the limit is reached.`,perJobLabel:`Per-job cost alert (USD)`,perJobHelper:`Alert when a single job in this project exceeds this amount.`,perJobPlaceholder:`e.g. 0.50`,invalidNumber:`Enter a positive number or leave blank to disable`,perJobAlertDisabled:`Per-job cost alert disabled`,alertSet:`Alert set for jobs over {{amount}}`,saveThresholdFailed:`Failed to save threshold`,dailyCurrent:`Currently {{amount}} a day`,dailyNone:`No daily limit set`},l={nav:{appearance:`Appearance`,specrailsAgents:`AI providers`,code:`Code`,terminal:`Terminal`,updates:`Updates`,mobile:`Mobile`,mcp:`MCP`,projects:`Projects`,advanced:`Advanced`,webhooks:`Webhooks`,about:`About`,effects:`Effects`,subscriptionUsage:`Subscription usage`},title:`Desktop Settings`,description:`Appearance, AI providers, updates and Desktop-wide preferences.`,registeredProjects:`Registered Projects`,noProjects:`No projects registered yet`,techUrlDescription:`Base URL for the specrails-tech API (default: http://localhost:3000)`,techUrlSaved:`specrails-tech URL saved`,techUrlSaveFailed:`Failed to save URL`,budgetAlertsHeading:`Spend limits & alerts`,dailyBudgetLabel:`Desktop daily limit`,dailyBudgetHelper:`Global daily spend limit across all projects. Queues auto-pause when exceeded.`,perJobHelper:`Alert when a single job exceeds this amount. Leave blank to disable.`,costAlertsDisabled:`Cost alerts disabled`,projectRemoved:`Project removed`,projectRemoveFailed:`Failed to remove project`,onboardingHeading:`Onboarding`,platformTour:`Platform Tour`,platformTourDescription:`Replay the welcome wizard to review key features.`,replayTour:`Replay Tour`,infoHeading:`Desktop Information`,infoPort:`Port`,infoProjects:`Projects`,infoDb:`Desktop DB`,removeProjectConfirmTitle:`Remove {{name}}?`,removeProjectConfirmBody:`{{name}} is unregistered from Specrails and its running work stops. The repository files on disk are not deleted; you can add the folder again later.`,navLabel:`Settings sections`,navGroups:{personal:`Personal`,agents:`Agents`,system:`System`},unsavedChanges:`Unsaved changes`,dailyBudgetCurrent:`Currently {{amount}} a day`,dailyBudgetNone:`No daily limit set`},u={heading:`OS Notifications`,description:`Show native desktop notifications when jobs complete or fail. Notifications only appear when the tab is not focused.`,enableLabel:`Enable OS Notifications`,notifyOn:`Notify on:`,filterAll:`All (completed & failed)`,filterCompleted:`Completed only`,filterFailed:`Failed only`,enabledToast:`OS notifications enabled`,disabledToast:`OS notifications disabled`},d={heading:`Outbound Webhooks`,description:`Notify external tools (Slack, Zapier, CI/CD) on Desktop events. Requests are signed via <code>X-Specrails-Signature</code> when a secret is set.`,eventJobCompleted:`Job completed`,eventJobFailed:`Job failed`,eventDailyBudgetExceeded:`Daily limit exceeded`,disable:`Disable`,enable:`Enable`,sendTestPing:`Send test ping`,addHeading:`Add webhook`,secretPlaceholder:`Signing secret (optional)`,addButton:`Add Webhook`,urlRequired:`URL is required`,selectEvent:`Select at least one event`,added:`Webhook added`,addFailed:`Failed to add webhook`,updateFailed:`Failed to update webhook`,removed:`Webhook removed`,removeFailed:`Failed to remove webhook`,testPingSent:`Test ping sent`,testPingFailed:`Failed to send test ping`,removeConfirmTitle:`Remove webhook?`,removeConfirmBody:`{{url}} will stop receiving Desktop events.`,urlLabel:`Webhook URL`},f={title:`Terminal panel`,desktopDescription:`Desktop-wide defaults applied to every project unless a per-project override is set.`,projectDescription:`Per-project overrides for the terminal panel. Leave a field unchanged to inherit the Desktop default.`,fontFamily:`Font family`,fontSize:`Font size ({{min}}–{{max}})`,renderMode:`Render mode`,copyOnSelect:`Copy on select`,shellIntegration:`Shell integration (OSC 133 marks)`,notifyLongRunning:`Notify on long-running commands`,longCommandThreshold:`Long-command threshold (ms)`,imageRendering:`Inline image rendering (Sixel + iTerm2)`,browserShortcutUrl:`Browser shortcut URL`,quickScript:`Quick script (pasted into active terminal — Enter manually)`,reset:`Reset`,unsavedChanges:`Unsaved changes`,clearOverride:`Clear override`,clear:`Clear`,inheritingDefault:`Inheriting Desktop default`,nothingToSave:`Nothing to save`,saved:`Terminal settings saved`},p={heading:`Code section`,summaryLanguage:`Summary language`,monthlyBudget:`Monthly limit (USD)`,budgetHelper:"Limit on `surface=file-summary` spend per calendar month. User-initiated regenerations can override."},m={taglines:{dracula:`The original — dark purple-tinted with vivid neon accents`,"aurora-light":`Premium light — Linear-inspired indigo on warm off-white`,"obsidian-dark":`Graphite pro — neutral near-black with one muted violet accent`,specrails:`Brand theme — deep navy-indigo with saturated cyan accents`,"code-rain":`Phosphor terminal — soft mint on green-tinted near-black`,galaxy:`Deep-space blue with a glowing blade trail`},heading:`Appearance`,themeGroupLabel:`Theme`,currentlyActive:`Currently active`,updateFailed:`Failed to update theme`},h={heading:`Mobile companion`,description:`Control Specrails from the SpecRails Companion app on your phone, 100% over your local network. Off by default. A paired phone can answer questions, resume, retry and create draft PRs from the inbox, as far as the MCP permission tiers allow; merging, discarding and settings stay on this computer.`,accessOn:`Mobile access on`,accessOff:`Mobile access off`,listeningOnPort:`Listening on port {{port}}`,notListening:`Not listening`,turnOn:`Turn on`,turnOff:`Turn off`,pairWebDevice:`Pair web companion`,reset:`Reset`,resetConfirm:`Reset the mobile identity? Every paired device will be revoked and must pair again.`,identityReset:`Mobile identity reset`,enableFailed:`Could not enable mobile access`,disableFailed:`Could not disable mobile access`,windowsFirewall:`Windows Firewall will ask to allow the SpecRails server on first enable — choose “Allow on private networks”.`,pairedDevices:`Paired devices`,noDevices:`No devices paired yet.`,revokeDevice:`Revoke {{name}}`,resetConfirmTitle:`Reset mobile identity?`},g={title:`Pair web companion`,description:`Open specrails.dev/companion-app on your phone, then scan this code with it.`,startFailed:`Could not start pairing: {{error}}`,showThenScan:`After your phone scans this, tap “Scan phone's code” and point the camera at your phone.`,scanAnswer:`Scan phone's code`,scanning:`Point the camera at the code on your phone…`,cameraFailed:`Camera unavailable`,notAnswer:`That QR isn't a pairing answer.`,connecting:`Connecting…`,paired:`✓ Paired`,pairedToast:`Web companion paired`,answerRejected:`The desktop rejected that code. Generate a fresh one and retry.`,copyCode:`Copy code`,codeCopied:`Code copied`,cancel:`Cancel`},_={heading:`Specrails Core`,installed:`Installed:`,updateAvailable:`Update available: {{version}}`,upToDate:`Up to date`,neverChecked:`Not checked yet`,check:`Check for updates`,checking:`Checking…`,update:`Update to {{version}}`,downloading:`Downloading…`,materializing:`Installing…`,affectsAll:`Applies to all projects — no restart needed.`,unavailable:`Core updates aren't available in this build.`,toastDone:`Specrails Core updated to {{version}}`,toastUpToDate:`Specrails Core is up to date`,runtime:`Runtime: {{version}}`,bundled:`Included in Desktop: {{version}}`,sources:{override:`Explicit override`,managed:`Managed by Desktop`,bundled:`Included in Desktop`,local:`Local package`,global:`External CLI`},repair:`Finish updating {{version}}`,stableFallback:`specrails-core has no stable release yet, so Core follows Latest for now.`,updateFailed:`Core update failed`,checkFailed:`Update check failed`,loadError:`Could not refresh Core status.`},v={heading:`Update channel`,loading:`Loading channel…`,scope:`Applies to Specrails Desktop and the specrails-core framework.`,saved:`Update channel set to {{channel}}`,saveFailed:`Could not change the update channel`,latest:{label:`Latest`,description:`Every release as soon as it ships. Newest features and fixes first.`},stable:{label:`Stable`,description:`Only releases promoted after at least a week on Latest with green CI. Core follows its stable tag.`}},y={heading:`Specrails Desktop`,installed:`Installed:`,check:`Check for updates`,checking:`Checking…`,upToDate:`You're on the latest version`,updateAvailable:`Update available: {{version}}`,autoHint:`Checks automatically at launch and every 6 hours.`,unavailable:`App updates are only available in the desktop app.`,toastUpToDate:`Specrails Desktop is up to date`,toastCheckFailed:`Update check failed`,stableUnavailable:`No release has been promoted to the Stable channel yet. Switch to Latest or try again later.`},b={title:`{{name}} — Settings`,description:`Project-level configuration: prompts, branch, environment, limit, telemetry, rules and terminal.`,nav:{general:`General`,branch:`Branch`,environment:`Environment`,budget:`Spend limits`,telemetry:`Telemetry`,terminal:`Terminal`,agentRuntime:`Verification commands`,subagents:`Sub-agents`,rules:`Rules`,recentlyDeleted:`Recently deleted`},navLabel:`Project settings sections`},x={title:`Integration branch`,description:`The branch parallel rails branch from and target their draft PRs at. Leave empty to auto-resolve to the repository's default branch.`,placeholder:`auto (repository default)`,resolved:`Rails branch off <mono>{{branch}}</mono>`,save:`Save branch`,saved:`Integration branch saved`,saveFailed:`Could not save the integration branch`},S={title:`Worktree environment`,description:`Choose environment variable names this project passes to rail jobs and isolated loop worktrees. Only names are saved; values are read when a run starts, with login-shell recovery when the desktop process is missing them.`,label:`Environment variable`,placeholder:`NODE_AUTH_TOKEN`,helper:`Press Enter or Add. You can paste several names separated by commas or spaces.`,add:`Add`,empty:`No project-specific variables configured yet.`,remove:`Remove {{name}}`,save:`Save environment`,saved:`Worktree environment saved`,saveFailed:`Could not save the worktree environment`,invalidName:`{{name}} is not a valid environment variable name`,noValues:`Add only variable names here, not KEY=value secrets.`,status:{inherited:`Inherited`,recovered:`From login shell`,notDefined:`Not defined`,probeTimeout:`Shell timed out`,probeFailed:`Shell check failed`,pending:`Checking…`},hint:{defaultShell:`your login shell`,inherited:`Available in the environment Specrails started with.`,recovered:`Recovered from {{shell}}. Runs receive it automatically; the value is never shown.`,notDefined:`{{shell}} does not export {{name}}. Add an export for it to your shell profile, then check again.`,notDefinedInherited:`{{name}} is not set in the environment Specrails started with. Set it there and restart Specrails.`,probeTimeout:`{{shell}} took longer than {{seconds}} s to start. Speed up the profile or raise SPECRAILS_LOGIN_SHELL_TIMEOUT_MS, then check again.`,probeFailed:`Specrails could not read {{shell}}. Fix the profile or launch Specrails from a terminal, then check again.`,pending:`Specrails is reading your login shell.`},recheck:`Check again`,checking:`Checking…`,lastChecked:`Last checked at {{time}}`,statusUnavailable:`Could not read the environment status.`,unresolvedTitle:`Runs start without these variables:`},C={title:`Agent environment`,description:`Choose which environment variables this project's agents receive: rail jobs, loops, missions, chats and spec helpers.`,modes:{inherit:{label:`Inherit (default)`,description:`Agents receive the full environment Specrails started with, plus the names above. Same behavior as before.`},minimal:{label:`Minimal`,description:`Agents receive only an allowlist (PATH, HOME, locale, temp, terminal, proxy and certificates), Specrails' own variables, the selected provider's sign-in variables and the names above. Everything else, such as cloud or database credentials, is withheld.`}},saved:{inherit:`Agents inherit the full environment`,minimal:`Agents now receive the minimal environment`},saveFailed:`Could not save the agent environment`,namesTitle:`Variables passed in minimal mode`,shared:`Every agent`,passthrough:`Project names (above)`,noPassthrough:`No project names configured.`,provider:`Plus for {{provider}}`,noProviderNames:`None set now (accepts {{patterns}}).`,namesHelp:`Only names are shown; values are never displayed. Changes apply to agents started afterwards; open mission sessions keep their environment until they restart. If a tool needs another variable, add its name above.`,statusUnavailable:`Could not read the list of variables.`},w={heading:`Effects`,description:`Visual flourishes across the app. Each one can be switched off here.`,thinkingHalo:{label:`Thinking halo on the agent composer`,description:`While the agent is thinking or writing, the Builder's orbiting ring glows around the composer — it fades in when a turn starts and fades out when the reply settles.`},reducedMotion:`Follows your system's reduced-motion setting: the ring stays as a static glow.`,preview:`Preview`,previewThinking:`Thinking…`},T={title:`Sub-agents`,stateOn:`Agents may launch sub-agents.`,stateOff:`Agents work alone, without sub-agents.`,explainParallel:`Sub-agents let an agent hand work to helpers that run in parallel and keep going after its reply, reporting back when they finish.`,explainCost:`Each sub-agent uses its own tokens, so a single request can cost noticeably more.`,enabled:`Sub-agents allowed`,disabled:`Sub-agents turned off`,saveFailed:`Could not save the sub-agent setting`,project:{description:`Let this project's missions, explore and refinement agents use sub-agents. Off by default.`,toggleLabel:`Allow sub-agents in this project`,explainScope:`Implement pipelines are not affected. Missions with sub-agents running apply a change once those finish.`},global:{description:`Let missions that are not attached to a project use sub-agents. Off by default.`,toggleLabel:`Allow sub-agents in missions without a project`,explainScope:`Each project has its own setting in its project settings. Missions with sub-agents running apply a change once those finish.`},runtime:{label:`Run sub-agents with`,same:`Same as the mission agent`,sameHint:`Sub-agents use the mission agent's provider, model and effort, launched natively by its own CLI.`,chosenHint:`Missions on {{provider}} launch their own sub-agents with this model. On any other provider, Specrails launches them on {{provider}}.`,providerLabel:`Sub-agent provider`,modelLabel:`Sub-agent model`,effortLabel:`Sub-agent effort`,claudeEffortHint:`Claude's own sub-agents ignore effort; it applies when Specrails launches them.`,saved:`Sub-agents now run with {{provider}}`,reset:`Sub-agents follow the mission agent again`,confirm:{title:`Run sub-agents with {{provider}}?`,body:`In missions on another provider, sub-agents stop being native: Specrails launches each one as its own {{provider}} session instead of the mission's CLI.`,cost:`Slower and possibly more expensive: each sub-agent starts cold, without the prompt cache it would share with the mission agent.`,control:`More control and flexibility: mix providers, choose model and effort, see each sub-agent's real cost, and keep them working after the mission's reply.`,native:`Missions that already run on {{provider}} keep native sub-agents, now with this model and effort.`,cancel:`Keep same as mission`,accept:`Use {{provider}}`}}},E={title:`Agent actions audit`,description:`A per-project log of what agents read, wrote, executed, called over MCP or fetched — exportable as JSONL or CSV from each job and the review packet.`,retentionLabel:`Keep entries for`,daysUnit:`days`,caveat:`Older entries are removed at startup and daily. Reads are only as complete as each provider's stream; contents and environment values are never stored.`,save:`Save retention`,saved_one:`Agent actions kept for {{count}} day`,saved_other:`Agent actions kept for {{count}} days`,saveFailed:`Could not save the audit retention`,invalidDays:`Enter a whole number of days between 1 and {{max}}`},D={title:`Review limit`,description:`Limit how many deliveries can wait for your review at once, so new work does not pile up faster than you can decide it.`,label:`Deliveries waiting for review`,help:`We suggest {{suggested}}: enough to keep rails busy while you review. Running deliveries, undecided ones and open PRs created by the app count. Changes to an existing delivery are always allowed. Leave it empty for no limit.`,placeholder:`No limit`,useSuggested:`Use {{suggested}}`,invalid:`Enter a whole number from 1 to {{max}}, or leave it empty for no limit.`,saved_one:`Review limit set to {{count}}`,saved_other:`Review limit set to {{count}}`,removed:`Review limit removed`,saveFailed:`Could not save the review limit`},O={title:`Existing-project anchoring`,description:`Optional behaviours that help runs respect what the project already does. Each one needs a Core that supports it.`,coreRequired:`The installed Core does not support this yet. Update Core to enable it.`,saveFailed:`Could not save the setting`,jiraPostClarifications:{label:`Post architect clarifications to Jira`,description:`When a run pauses with the architect's questions, or proceeds on assumptions, post them as a comment on the linked Jira issue. A reply there is recorded on the spec as a clarification.`,enabled:`Clarifications will be posted to Jira`,disabled:`Clarifications will stay in Specrails`},baselineOnTouch:{label:`Baseline on touch`,description:`When a change reaches code no spec describes, first write characterization tests (proven on the unchanged code) and a minimal as-built spec. Adds cost, reported apart.`,enabled:`Baseline on touch enabled`,disabled:`Baseline on touch disabled`}},k={title:`Project rules`,description:`The checks this project already runs and every written rule, classified as enforced, automatable or human-only. Human-only rules appear in each review packet.`,rerun:`Re-run inventory`,running:`Running inventory…`,coreRequired:`The installed Core does not support the rules inventory. Update Core to run it.`,missing:`No inventory yet. Run it to list the project's gates and rules.`,invalid:`The rules file could not be read: {{message}}`,inventoryDone:`Rules inventory updated`,inventoryFailed:`The rules inventory failed`,specCreated:`Spec #{{id}} created`,specFailed:`Could not create the spec`,status:{automatable:`Automatable`,humanOnly:`Human only`,enforcedBy:`Enforced`,unclassified:`Unclassified`},generatedAt:`Generated {{date}}`,gates_one:`{{count}} gate`,gates_other:`{{count}} gates`,gatesHint:`Plain gate commands are offered first as verification checks in the agent runtime settings when none are configured.`,enforcedBy:`Enforced by {{check}}`,proposedCheck:`Proposed check: {{check}}`,createSpec:`Create spec`,dropped_one:`{{count}} entry did not match the format and was skipped`,dropped_other:`{{count}} entries did not match the format and were skipped`,classification:{offline:`Rules were inventoried offline and are not classified yet. Re-run the inventory with a configured provider.`,unavailable:`No provider is configured to classify the rules.`,failed:`Classifying the rules failed.`,empty:`No written rules were found.`,unknown:`The rules are not classified.`},autoRunning:`The inventory is running after setup. This list updates when it finishes.`,lastRun:{setupFailed:`The automatic inventory after setup failed ({{date}}).`,manualFailed:`The last inventory run failed ({{date}}).`,retryHint:`Fix the cause shown above, then re-run the inventory.`,setupDone:`Inventoried automatically after setup.`}},A={heading:`Editor`,description:`The editor that “Open in editor” uses in the review packet. Stored on this computer.`,label:`Open files in`,names:{vscode:`VS Code`,cursor:`Cursor`,jetbrains:`JetBrains IDE`}},j=`Limits are edited in Analytics ▸ Spend limits.`,M=`Open Spend limits`,N=`Open Settings`,P={density:{title:`Density`,description:`How much room cards and rows take. Applies to the board, the jobs list and the job story. A saved board view still keeps its own layout.`,comfortable:`Comfortable`,comfortableHint:`Roomy cards and rows`,compact:`Compact`,compactHint:`More specs and rows on screen`,resetBoard:`Use this for the board too`,resetBoardDone:`The board of this project now follows it.`},motion:{title:`Reduce motion`,description:`Turn animations and transitions off inside Specrails, independently of your operating system.`,system:`Follow system`,systemHint:`Use your OS setting`,reduce:`Reduce`,reduceHint:`Always calm: no animation`,full:`Full motion`,fullHint:`Animate even if the OS asks for less`}},F={language:n,page:r,errors:i,telemetry:a,prePrompt:o,freestylePrePrompt:s,budget:c,desktop:l,notifications:u,webhooks:d,terminal:f,codeSection:p,appearance:m,mobile:h,pairWeb:g,coreUpdate:_,updateChannel:v,appUpdate:y,projectDialog:b,integrationBranch:x,worktreeEnv:S,agentEnv:C,effects:w,subagents:T,agentAudit:E,reviewWip:D,anchoring:O,rules:k,editorSection:A,budgetMoved:j,openBudget:M,openSettings:N,accessibility:P};export{t};
@@ -0,0 +1 @@
1
+ var e={title:`Ajouter un projet`,description:`Enregistrez un répertoire de projet pour le gérer depuis Specrails.`,noProviderDetected:`Aucune CLI d'IA détectée. Installez d'abord Claude ou Codex.`,pathLabel:`Chemin du projet`,pathPlaceholder:`/Users/moi/mon-projet`,pathHint:`Chemin absolu vers la racine du projet`,browseForFolder:`Parcourir les dossiers`,selectProjectFolder:`Sélectionner le dossier du projet`,nameLabel:`Nom d'affichage`,optional:`(facultatif)`,namePlaceholder:`Mon projet`,nameHint:`Par défaut, le nom du répertoire`,adding:`Ajout...`,submit:`Ajouter le projet`,toolsRequired_one:`{{tools}} est requis pour ajouter un projet`,toolsRequired_other:`{{tools}} sont requis pour ajouter un projet`,errors:{pathRequired:`Le chemin du projet est requis`,addFailed:`Échec de l'ajout du projet`},toasts:{registered:`Projet « {{name}} » enregistré`},chooser:{description:`Apportez un dépôt existant, ou construisez un tout nouveau projet à partir d'une idée.`,existingTitle:`Projet existant`,existingDescription:`Enregistrez un dépôt qui existe déjà sur le disque.`,newTitle:`Nouveau projet`,newDescription:`Décrivez une idée et obtenez un dépôt initialisé avec un backlog du Jalon 1.`}},t={corruptedBundle:`bundle corrompu — réinstallez l'application`,notInstalled:`non installé`,failedToExecute:`trouvé mais impossible à exécuter`,failedToExecuteAt:`trouvé à {{path}} mais impossible à exécuter`,failedToExecuteWithError:`trouvé mais impossible à exécuter ({{error}})`,failedToExecuteAtWithError:`trouvé à {{path}} mais impossible à exécuter ({{error}})`,needsMinimum:`{{version}} trouvé — nécessite {{minVersion}}+`,unknownVersion:`inconnue`,installedLabel:`installé`,verifyError:`Impossible de vérifier les outils de développement en local — l'installation s'en chargera.`,allDetected:`Tous les outils requis sont détectés`,bundleCorruptedTitle:`Bundle de l'application corrompu`,toolsRequired_one:`{{count}} outil de développement requis`,toolsRequired_other:`{{count}} outils de développement requis`,reinstallHint:`Réinstallez l'application Specrails pour restaurer les outils embarqués.`,installMissingHint:`Installez les outils manquants pour continuer.`,moreInfo:`Plus d'infos`,bundledBadge:`embarqué`,optional:`optionnel`,ghNoAuth:"Non connecté — exécutez `gh auth login`"},n={title:`Installer les outils de développement`,description:`SpecRails a besoin de Node.js, npm, npx et Git sur le PATH. Choisissez le snippet pour votre OS, exécutez-le, puis cliquez sur « Je l'ai installé, revérifier ».`,darwin:{intro:`Homebrew installe les deux outils en une seule ligne. Si vous n'avez pas brew, utilisez les téléchargements officiels.`,installNodeGit:`Installer Node.js et Git via Homebrew`},win32:{intro:`Winget est fourni avec Windows 11 et les versions récentes de Windows 10. Ouvrez PowerShell ou le Terminal et exécutez :`,installNode:`Installer Node.js LTS`,installGit:`Installer Git`,note:`Après l'installation, redémarrez Specrails pour que Windows actualise le PATH.`},linux:{intro:`Utilisez le gestionnaire de paquets de votre distribution :`,debian:`Debian / Ubuntu`,fedora:`Fedora / RHEL`},links:{nodeOfficial:`Node.js (officiel)`,gitOfficial:`Git (officiel)`,gitWindows:`Git pour Windows (officiel)`},showOtherPlatforms:`Afficher les autres plateformes`,hideOtherPlatforms:`Masquer les autres plateformes`,recheck:`Je l'ai installé, revérifier`,diagnostics:{copy:`Copier les diagnostics`,copied:`Diagnostics copiés`,failed:`Échec de la copie`},corrupted:{title:`Bundle de l'application corrompu`,description:`Un ou plusieurs outils embarqués (Node.js, Git) n'ont pas pu être vérifiés.`,body:`Cet outil est embarqué avec l'application Specrails et ne peut pas être installé séparément. Si vous voyez ce message, le bundle de l'application est peut-être corrompu. Veuillez réinstaller Specrails.`,download:`Télécharger la dernière version`}},r={title:`Bienvenue dans <spec>spec</spec><rails>rails</rails>`,tagline:`Des specs en entrée, des pull requests relues en sortie.`,description:`Specrails gère plusieurs projets depuis une seule interface. Ajoutez votre premier projet pour commencer.`,addFirstProject:`Ajouter votre premier projet`,jiraHint:`Connectez chaque projet à son propre tableau Jira — les specs restent synchronisées dans les deux sens.`,mcpHint:`Connectez des outils IA externes à Specrails via un serveur MCP local sécurisé : activé par défaut, gérez-le dans Réglages → MCP.`,agentChatHint:`Pilotez Specrails en discutant — un agent intégré gère les specs, les rails et les analyses pour vous via le MCP local. Ouvrez-le depuis la bulle ou avec ⌘⇧A.`,localEnginesHint:`Seulement un modèle local ? Ajoutez un endpoint compatible OpenAI dans Réglages → Specrails Agents et toutes les surfaces — rails, chat, missions — l'utiliseront par défaut.`,replayTour:`Rejouer la visite`},i=JSON.parse(`{"productTour":"Visite guidée","stepCount":"Étape {{current}} sur {{total}}","goToStep":"Aller à l'étape {{step}} : {{label}}","stepLabel":"Étape {{step}}","skipTour":"Passer la visite","getStarted":"Commencer","flow":{"architect":"Architecte","developer":"Développeur","reviewer":"Relecteur","describe":"Décrire","specs":"Specs","rails":"Rails","review":"Revue et fusion","yourReview":"Votre revue","blueprint":"Blueprint","approve":"Approuver","m1Specs":"Specs du Jalon 1","milestones":"Jalons"},"language":{"nav":"Langue","title":"Choisissez votre langue","subtitle":"Specrails parle votre langue","intro":"Choisissez la langue de l'interface. Elle s'applique instantanément — cette visite comprise.","note":"Vous pouvez en changer à tout moment dans Paramètres → Langue."},"theme":{"nav":"Thème","title":"Trouvez votre style","subtitle":"Des thèmes intégrés, appliqués instantanément","intro":"Choisissez l'apparence de Specrails — le thème s'applique dès que vous cliquez.","note":"Vous pouvez en changer à tout moment dans Paramètres → Apparence."},"welcome":{"nav":"Bienvenue","title":"Bienvenue dans Specrails","subtitle":"Votre cockpit local pour livrer du logiciel avec des agents IA","intro":"Specrails transforme une idée en code livré, et vous laisse <b>voir, piloter et vérifier</b> chaque étape. Décrivez ce que vous voulez, obtenez des specs précises, exécutez-les sur des rails avec Claude Code ou Codex, et décidez quoi fusionner. Rien ne fusionne sans vous.","coreLoopLabel":"La boucle centrale","flowCaption":"<b>Décrire → Specs → Rails → Revue et fusion</b>. Chaque étape est diffusée en direct et chaque résultat attend votre décision.","missionLabel":"Mode Mission : par défaut","missionBody":"Une conversation pilote toute l'app : l'agent rédige des specs, lance des rails, consulte les dépenses et vous tend des cartes de décision. <b>Vous parlez, il opère.</b>","boardLabel":"Mode Tableau : à un clic","boardBody":"Le tableau de bord classique : specs, rails, jobs, analytique. Basculez entre les deux depuis l'interrupteur de la barre latérale gauche : <b>mêmes projets, mêmes données</b>.","localNote":"<b>100 % local · mono-utilisateur · sans compte.</b> Tout tourne sur votre machine. Votre code ne quitte jamais l'ordinateur sauf si <i>vous</i> lancez un agent dessus.","tourNote":"Cette visite rapide passe en revue tout ce que l'app sait faire : environ deux minutes."},"mission":{"nav":"Mode Mission","title":"Parlez, l'agent opère","subtitle":"Le mode Mission est la surface par défaut","intro":"En <b>mode Mission</b>, toute la fenêtre est une conversation avec un agent qui pilote Specrails via ses propres <b>outils MCP</b> : « lance les trois specs prioritaires », « combien ai-je dépensé cette semaine ? », « écris-moi une spec pour le mode sombre ». Tout est en direct : rails, specs et cartes se mettent à jour pendant qu'il travaille.","missionsLabel":"Missions et projets","missionsBody":"Chaque conversation est une mission épinglée à un projet (ou à Accueil pour tout). Changez de mission depuis l'en-tête, envoyez des suites en cours de tour : elles sont mises en file et exécutées dans l'ordre.","levelsLabel":"Vous tenez la laisse","levelsBody":"Un niveau en direct, <b>Observer → Éditer → Opérer → Autonome</b>, parcouru avec <shift>Shift</shift> <tab>Tab</tab>, borne ce qu'il peut faire. Il n'agit jamais au-dessus du niveau fixé.","cardsLabel":"Cartes de décision","cardsBody":"Les lancements apparaissent comme des cartes en direct épinglées au-dessus du composeur : progression du rail, puis Créer la PR / Intégrer en local / Abandonner, avec une Revue en langage clair. Numéros de spec, jobs et loops dans les réponses sont cliquables.","workspaceLabel":"Un espace de travail à côté","workspaceBody":"La barre latérale droite ouvre Blueprint, Jobs, Analytique, un navigateur intégré, le terminal et l'explorateur de code à côté de la conversation, sans changer de contexte.","mcpLabel":"Tourne sur le MCP local","mcpBody":"L'agent travaille via le serveur MCP embarqué de Specrails, <b>activé par défaut</b>, en loopback uniquement. Ce même serveur permet à vos propres outils (Claude Desktop, Cursor…) de piloter Specrails ; gérez-le dans Réglages → MCP."},"builder":{"nav":"Nouveau projet","title":"Démarrer un projet à partir d'une idée","subtitle":"Le Constructeur : blueprint, specs et jalons avant la première ligne de code","intro":"Ajouter un projet → <b>Nouveau</b> transforme l'agent en <b>Constructeur de projet</b>. Décrivez l'idée ; il vous interroge brièvement (ou décide tout en un clic), propose produit, flux principal, plateforme, stack et jalons, et vous approuvez ou ajustez.","flowLabel":"De l'idée au backlog","flowCaption":"Le commit crée le dépôt, l'espace de travail et le backlog du Jalon 1 ; en option un dépôt GitHub privé aussi.","cardsLabel":"Décisions en un clic","cardsBody":"« Surprenez-moi » et « Approuver et générer les specs » apparaissent comme des cartes dans le fil ; chaque décision prise y reste épinglée comme trace.","specsLabel":"Specs premium, auditées honnêtement","specsBody":"Les specs du Jalon 1 sont rédigées en entier deux par deux, puis tout le lot est audité (problème, solution, périmètre, considérations techniques, six critères d'acceptation ou plus) et une barrière déterministe bloque tout ce qui est trop mince.","milestonesLabel":"Des jalons sur rails","milestonesBody":"Lancez le Jalon 1 et il s'exécute en rails de trois specs au plus, chacun empilé sur la branche du précédent. Les <b>points de contrôle par vague</b> demandent avant chaque rail suivant, ou activez la continuation automatique.","progressLabel":"Progression en direct","progressBody":"Le panneau Blueprint affiche des décomptes réels (livrées, en revue, terminées), jamais « terminé » tant que quelque chose n'est pas fusionné. Les jalons suivants sont générés contre le vrai dépôt."},"authorSpecs":{"nav":"Rédiger des specs","title":"Transformez les idées en specs","subtitle":"Six façons de capturer exactement ce que vous voulez construire","intro":"Une <b>spec</b> décrit un travail que vous voulez voir fait. Rédigez-la comme le moment l'exige : d'une ligne jusqu'à l'agent qui fait la recherche pour vous.","agentLabel":"Demandez à l'agent","agentBody":"En mode Mission, décrivez simplement le changement. L'agent lit d'abord le vrai code, rédige une super spec sous forme de carte en direct et l'enregistre quand vous le dites.","exploreLabel":"Explorer : converser","exploreBody":"Décrivez ce que vous voulez dans un chat ; un brouillon en direct se reconstruit à chaque tour. Un curseur de presets règle la quantité de contexte projet vue par l'IA : de votre seul message jusqu'au code complet plus vos serveurs MCP.","quickLabel":"Rapide : en un coup","quickBody":"Vous savez déjà ce que vous voulez ? Générez une spec complète en un seul tour. En option, enrichissez-la d'une Couche de contrat : noms exacts, formes de données, invariants et liste de fichiers pour que les agents ne réinventent rien.","websiteLabel":"Depuis un site web","websiteBody":"Ouvre un navigateur intégré. Sélectionnez un élément ou tracez un rectangle : la capture, le DOM et le CSS appliqué deviennent des pièces jointes.","smashLabel":"SMASH une grosse épopée","smashBody":"Éclatez une grande spec en une famille de sous-specs plus petites en un clic ; chaque enfant porte un court résumé sur sa carte.","draftsLabel":"Brouillons et reprise","draftsBody":"Garez une exploration en cours comme spec brouillon et reprenez-la plus tard ; rouvrez n'importe quelle spec dans Explorer pour continuer à l'affiner."},"rails":{"nav":"Rails et revue","title":"Exécutez le pipeline sur des rails","subtitle":"Des voies isolées, puis une revue vraiment lisible","intro":"Les <b>rails</b> sont des voies d'exécution : jusqu'à douze, créées à la demande. Déposez des specs sur un rail et appuyez sur <play>▶ Play</play>, ou <b>Tout lancer</b> les rails libres en parallèle. Chaque exécution travaille dans son propre worktree git, jamais dans votre checkout.","jobLabel":"Ce que fait chaque exécution","flowCaption":"Chaque phase est diffusée en direct. À la fin, le travail reste sur sa branche et l'app vous demande quoi faire : Specrails produit des PR, il ne fusionne jamais seul.","reviewLabel":"Revue de PR qui demande d'abord","reviewBody":"Les specs terminées passent <b>En revue</b>. Vous choisissez : créer une PR brouillon, intégrer en local (sans distant), ou abandonner. La fusion les passe en Terminé.","packetLabel":"Dossier de revue","packetBody":"Une page en langage clair par livraison : ce qui a été demandé, ce qui a changé, ce que l'IA rapporte face à ce que l'app a vérifié, le coût, avec Accepter / Demander des changements / Abandonner.","steerLabel":"Pilotez en cours d'exécution","steerBody":"Les exécutions Claude sont interactives : posez des questions ou réorientez pendant le travail, et suivez une progression narrée plutôt que des logs bruts.","loopsLabel":"Construisez vos propres loops","loopsBody":"<b>Loops</b> est un constructeur visuel : enchaînez étapes IA, commandes shell et un <b>Loop Decider</b> qui répète jusqu'à atteindre l'objectif. Implement et Freestyle sont fournis prêts à l'emploi.","profilesLabel":"Profils d'agents et valeurs par défaut","profilesBody":"Décidez quels agents tournent et quel modèle chacun utilise : par profil de projet, par rail, ou une fois pour toute la machine dans Réglages → Agents Specrails.","isolationLabel":"Plusieurs projets, isolés","isolationBody":"Chaque projet a sa base de données et sa file ; votre dépôt reste intact car Specrails garde ses fichiers sous votre dossier personnel."},"providers":{"nav":"Votre agent","title":"Apportez votre propre agent","subtitle":"Claude Code ou Codex comme moteurs de premier rang","intro":"<b>Claude Code</b> ou <b>Codex CLI</b> sont des moteurs interchangeables derrière un même contrat. Tout ce qui est installé et connecté sur cette machine est détecté automatiquement et proposé partout ; rien à configurer par projet.","calloutLabel":"Quand plusieurs sont installés","calloutBody":"Choisissez le moteur <b>par spec, par rail, par mission ou par lancement de terminal</b> ; l'app mémorise votre dernier choix par projet. Les coûts estimés sont marqués <mono>~</mono> .","table":{"capability":"Capacité","streamingResume":"Streaming & reprise de session","native":"Natif","costReporting":"Suivi des coûts","providerBilled":"Facturé par le fournisseur","estimated":"Estimé (~)","unavailable":"Indisponible","telemetry":"Télémétrie (OTEL)","synthesized":"Synthétisée","agentProfiles":"Profils d'agents"}},"cost":{"nav":"Suivre les coûts","title":"Suivez chaque centime","subtitle":"Chaque invocation facturable, enregistrée et visualisée","intro":"Chaque invocation d’IA enregistre son cycle de vie et son fournisseur. Les données d’usage et de coût non rapportées restent indisponibles.","analyticsLabel":"Page Analytics","analyticsBody":"Un hero de burn-rate, une timeline quotidienne, le top des specs, la répartition par modèle et un nuage coût vs tours. Filtrez par période (7 j / 30 j / 90 j / Tout) et par surface.","perTicketLabel":"Dépenses par spec","perTicketBody":"Le détail de chaque spec montre ce qu'elle a coûté et combien de tours il a fallu, avec un lien direct vers Analytics filtré sur cette spec.","honestLabel":"Des chiffres honnêtes","honestBody":"Le coût Claude est fourni par le fournisseur ; Codex peuvent être estimés et marqués d'un <mono>~</mono>.","budgetsLabel":"Budgets & alertes","budgetsBody":"Définissez un budget quotidien et une alerte de coût par job ; l'application met automatiquement la file en pause quand vous franchissez la limite. Exportez tout en CSV ou JSON."},"workspace":{"nav":"Espace de travail","title":"Faites-en votre espace de travail","subtitle":"Tout ce qu'il vous faut sans quitter la fenêtre","terminalLabel":"Panneau terminal","terminalBody":"Un vrai terminal façon VS Code en bas (<mod>{{mod}}</mod> <j>J</j>) : rendu WebGL, recherche, images en ligne, chemins par glisser-déposer et intégration shell. Jusqu'à 10 sessions par projet.","codeLabel":"Explorateur de code","codeBody":"Arborescence en lecture seule et visionneuse Monaco avec des résumés IA en langage clair et une histoire de construction par fichier : quelle spec l'a touché, quand et pourquoi.","browserLabel":"Navigateur intégré","browserBody":"Ouvrez liens, PR et votre serveur de dev dans l'app : un volet de navigateur natif dans la version bureau, avec des popups qui préservent les connexions OAuth.","integrationsLabel":"Intégrations et MCP","integrationsBody":"Une place de marché d'intégrations MCP par projet (la navigation sémantique Serena est fournie), plus le serveur MCP de Specrails qui expose l'app à vos propres outils IA.","themesLabel":"Thèmes et effets","themesBody":"Six thèmes intégrés (specrails, dracula, aurora-light, obsidian-dark, code-rain et galaxy) appliqués avant le rendu de l'interface. Réglages → Effets active des touches visuelles comme le halo de réflexion de l'agent.","chatsLabel":"Chats réductibles","chatsBody":"Garez une session Explorer ou Édition IA dans une puce du dock et reprenez-la plus tard ; jamais perdue entre rechargements ou changements de projet.","compareLabel":"Comparer côte à côte","compareBody":"Glissez une spec vers le bord de l'écran et un sélecteur de vos autres specs apparaît : relisez-en deux ensemble, façon tablette.","desktopLabel":"Bureau ou navigateur","desktopBody":"Utilisez Specrails dans votre navigateur, ou prenez l'app de bureau signée (macOS et Windows) qui embarque son serveur, Node, git et la CLI GitHub."},"companion":{"nav":"Compagnon mobile","title":"Emportez Specrails avec vous","subtitle":"Specrails Companion — vos pipelines, dans votre poche","intro":"<b>Specrails Companion</b> est une application web disponible sur specrails.dev/companion-app — ouvrez-la sur votre téléphone (ou ajoutez-la à votre écran d'accueil) pour parcourir le tableau des specs, lancer et arrêter des rails, suivre les logs des jobs en direct et jeter un œil aux analytics. Aucune installation, aucun app store.","localLabel":"100 % local, comme tout le reste","localBody":"Votre téléphone se connecte directement à cet ordinateur — en pair-à-pair et chiffré (WebRTC). Pas de relais cloud, pas de compte, et votre code ne quitte jamais vos appareils.","downloadLabel":"Ouvrez-la sur votre téléphone","downloadHint":"Scannez le code avec l'appareil photo de votre téléphone, ou ouvrez specrails.dev/companion-app dans son navigateur.","open":"Ouvrir Specrails Companion","pairLabel":"L'appairage prend dix secondes","pairBody":"Sur votre téléphone, ouvrez specrails.dev/companion-app, puis ici allez dans Paramètres → Compagnon mobile → Appairer le compagnon web et suivez les étapes à l'écran."},"moveFast":{"paletteLabel":"Palette de commandes","paletteShortcut":"<f>Appuyez sur</f> <mod>{{mod}}</mod> <m>+</m> <k>K</k> <m>n'importe où</m>","paletteBody":"Changez de projet, lancez des commandes de spec, allez à n'importe quelle page et retrouvez les jobs récents, tout en recherche floue.","agentLabel":"Agent","agentBody":"Affichez ou masquez l'agent avec <mod>{{mod}}</mod> <shift>Shift</shift> <a>A</a> ; parcourez son niveau avec <shift>Shift</shift> <tab>Tab</tab>.","terminalLabel":"Panneau terminal","terminalBody":"Basculez avec <mod>{{mod}}</mod> <j>J</j>.","shortcutsLabel":"Tous les raccourcis","shortcutsBody":"Appuyez sur <q>?</q> pour voir l'aide-mémoire complet.","chatLabel":"Barre latérale droite","chatBody":"Basculez la barre latérale droite avec <mod>{{mod}}</mod> <bkey>B</bkey>.","projectsLabel":"Barre des projets","projectsBody":"Basculez la barre Arc gauche avec <alt>{{alt}}</alt> <mod>{{mod}}</mod> <bkey>B</bkey>.","pagesLabel":"Pages et projets par numéro","pagesBody":"<mod>{{mod}}</mod> <n>1–9</n> ouvre une page ; <alt>{{alt}}</alt> <mod>{{mod}}</mod> <n>1–9</n> change de projet.","outro":"<b>La visite est terminée.</b> Tapez ce que vous voulez construire dans le composeur de mission, ou ajoutez un projet depuis la barre de gauche. Vous pouvez rouvrir cette visite à tout moment depuis les Réglages."},"jira":{"label":"Intégration Jira","body":"Adossez n'importe quel projet à un <b>tableau Jira</b> — chaque spec devient un ticket Jira, synchronisé dans les deux sens : le statut suit le rail et un commentaire est publié à la fin d'un job. Configurez-le par projet lors de l'ajout, ou à tout moment dans les Paramètres."}}`),a={addProject:e,prerequisites:t,instructions:n,welcome:r,onboarding:i};export{e as addProject,a as default,n as instructions,i as onboarding,t as prerequisites,r as welcome};
@@ -0,0 +1 @@
1
+ var e={title:`Aggiungi progetto`,description:`Registra una directory di progetto per gestirla da Specrails.`,noProviderDetected:`Nessuna CLI IA rilevata. Installa prima Claude o Codex.`,pathLabel:`Percorso del progetto`,pathPlaceholder:`/Users/me/my-project`,pathHint:`Percorso assoluto alla root del progetto`,browseForFolder:`Sfoglia cartelle`,selectProjectFolder:`Seleziona la cartella del progetto`,nameLabel:`Nome visualizzato`,optional:`(facoltativo)`,namePlaceholder:`Il mio progetto`,nameHint:`Per impostazione predefinita usa il nome della directory`,adding:`Aggiunta in corso...`,submit:`Aggiungi progetto`,toolsRequired_one:`{{tools}} è richiesto per aggiungere un progetto`,toolsRequired_other:`{{tools}} sono richiesti per aggiungere un progetto`,errors:{pathRequired:`Il percorso del progetto è obbligatorio`,addFailed:`Aggiunta del progetto non riuscita`},toasts:{registered:`Progetto "{{name}}" registrato`},chooser:{description:`Porta un repository esistente, oppure costruisci un progetto nuovo da un'idea.`,existingTitle:`Progetto esistente`,existingDescription:`Registra un repository già presente su disco.`,newTitle:`Nuovo progetto`,newDescription:`Descrivi un'idea e ottieni un repo inizializzato con un backlog della Milestone 1.`}},t={corruptedBundle:`bundle corrotto — reinstalla l'app`,notInstalled:`non installato`,failedToExecute:`trovato ma esecuzione non riuscita`,failedToExecuteAt:`trovato in {{path}} ma esecuzione non riuscita`,failedToExecuteWithError:`trovato ma esecuzione non riuscita ({{error}})`,failedToExecuteAtWithError:`trovato in {{path}} ma esecuzione non riuscita ({{error}})`,needsMinimum:`{{version}} trovata — serve {{minVersion}}+`,unknownVersion:`sconosciuta`,installedLabel:`installato`,verifyError:`Impossibile verificare localmente gli strumenti di sviluppo — l'installazione li convaliderà.`,allDetected:`Tutti gli strumenti richiesti rilevati`,bundleCorruptedTitle:`Bundle dell'app corrotto`,toolsRequired_one:`{{count}} strumento di sviluppo richiesto`,toolsRequired_other:`{{count}} strumenti di sviluppo richiesti`,reinstallHint:`Reinstalla l'app Specrails per ripristinare gli strumenti inclusi.`,installMissingHint:`Installa gli strumenti mancanti per continuare.`,moreInfo:`Maggiori informazioni`,bundledBadge:`incluso`,optional:`opzionale`,ghNoAuth:"Non connesso — esegui `gh auth login`"},n={title:`Installa gli strumenti di sviluppo`,description:`SpecRails richiede Node.js, npm, npx e Git sul PATH. Scegli lo snippet per il tuo sistema operativo, eseguilo e poi clicca "L'ho installato, ricontrolla".`,darwin:{intro:`Con Homebrew ottieni entrambi gli strumenti in una riga. Se non hai brew, usa i download ufficiali.`,installNodeGit:`Installa Node.js e Git con Homebrew`},win32:{intro:`Winget è incluso in Windows 11 e nelle versioni recenti di Windows 10. Apri PowerShell o il Terminale ed esegui:`,installNode:`Installa Node.js LTS`,installGit:`Installa Git`,note:`Dopo l'installazione, riavvia Specrails così Windows aggiorna il PATH.`},linux:{intro:`Usa il package manager della tua distro:`,debian:`Debian / Ubuntu`,fedora:`Fedora / RHEL`},links:{nodeOfficial:`Node.js (ufficiale)`,gitOfficial:`Git (ufficiale)`,gitWindows:`Git per Windows (ufficiale)`},showOtherPlatforms:`Mostra altre piattaforme`,hideOtherPlatforms:`Nascondi altre piattaforme`,recheck:`L'ho installato, ricontrolla`,diagnostics:{copy:`Copia diagnostica`,copied:`Diagnostica copiata`,failed:`Copia non riuscita`},corrupted:{title:`Bundle dell'app corrotto`,description:`Non è stato possibile verificare uno o più strumenti inclusi (Node.js, Git).`,body:`Questo strumento è incluso nell'app Specrails e non può essere installato separatamente. Se vedi questo messaggio, il bundle dell'app potrebbe essere corrotto. Reinstalla Specrails.`,download:`Scarica l’ultima versione`}},r={title:`Benvenuto in <spec>spec</spec><rails>rails</rails>`,tagline:`Specs in ingresso, pull request riviste in uscita.`,description:`Specrails gestisce più progetti da un'unica interfaccia. Aggiungi il tuo primo progetto per iniziare.`,addFirstProject:`Aggiungi il tuo primo progetto`,jiraHint:`Collega ogni progetto alla sua board Jira — le spec restano sincronizzate in entrambe le direzioni.`,mcpHint:`Collega strumenti IA esterni a Specrails tramite un server MCP locale sicuro: attivo di default, gestiscilo in Impostazioni → MCP.`,agentChatHint:`Gestisci Specrails chattando — un agente integrato gestisce spec, rail e analisi per te tramite l'MCP locale. Aprilo dalla bolla o con ⌘⇧A.`,localEnginesHint:`Solo un modello locale? Aggiungi un endpoint compatibile OpenAI in Impostazioni → Specrails Agents e ogni superficie — rail, chat, missioni — lo userà per impostazione predefinita.`,replayTour:`Rivedi il tour`},i=JSON.parse(`{"productTour":"Tour del prodotto","stepCount":"Passo {{current}} di {{total}}","goToStep":"Vai al passo {{step}}: {{label}}","stepLabel":"Passo {{step}}","skipTour":"Salta il tour","getStarted":"Inizia","flow":{"architect":"Architetto","developer":"Sviluppatore","reviewer":"Revisore","describe":"Descrivi","specs":"Spec","rails":"Rail","review":"Rivedi e unisci","yourReview":"La tua revisione","blueprint":"Blueprint","approve":"Approva","m1Specs":"Spec della Milestone 1","milestones":"Milestone"},"language":{"nav":"Lingua","title":"Scegli la tua lingua","subtitle":"Specrails parla la tua lingua","intro":"Seleziona la lingua in cui vuoi usare l'interfaccia. Si applica all'istante — questo tour incluso.","note":"Puoi cambiarla in qualsiasi momento da Impostazioni → Lingua."},"theme":{"nav":"Tema","title":"Scegli il tuo stile","subtitle":"Temi integrati, applicati all'istante","intro":"Scegli l'aspetto di Specrails — il tema si applica appena fai clic.","note":"Puoi cambiarlo in qualsiasi momento da Impostazioni → Aspetto."},"welcome":{"nav":"Benvenuto","title":"Benvenuto in Specrails","subtitle":"Il tuo cockpit locale per consegnare software con agenti IA","intro":"Specrails trasforma un'idea in codice consegnato e ti permette di <b>vedere, guidare e verificare</b> ogni passo. Descrivi cosa vuoi, ottieni spec precise, eseguile sui rail con Claude Code o Codex e decidi cosa unire. Nulla viene unito senza di te.","coreLoopLabel":"Il ciclo centrale","flowCaption":"<b>Descrivi → Spec → Rail → Rivedi e unisci</b>. Ogni passo è in streaming dal vivo e ogni risultato attende la tua decisione.","missionLabel":"Modalità Missione: la predefinita","missionBody":"Una conversazione guida tutta l'app: l'agente scrive spec, avvia rail, controlla la spesa e ti porge schede di decisione. <b>Tu parli, lui opera.</b>","boardLabel":"Modalità Board: a un clic","boardBody":"La dashboard classica: board delle spec, rail, job, analisi. Passa dall'una all'altra con l'interruttore nella barra laterale sinistra: <b>stessi progetti, stessi dati</b>.","localNote":"<b>100 % locale · utente singolo · nessun account.</b> Tutto gira sulla tua macchina. Il tuo codice non lascia mai il laptop a meno che <i>tu</i> non avvii un agente su di esso.","tourNote":"Questo tour rapido mostra tutto ciò che l'app sa fare: circa due minuti."},"mission":{"nav":"Modalità Missione","title":"Parla, l'agente opera","subtitle":"La modalità Missione è la superficie predefinita","intro":"In <b>modalità Missione</b> l'intera finestra è una conversazione con un agente che guida Specrails tramite i propri <b>strumenti MCP</b>: «avvia le tre spec a priorità più alta», «quanto ho speso questa settimana?», «scrivimi una spec per la modalità scura». Tutto è dal vivo: rail, spec e schede si aggiornano mentre lavora.","missionsLabel":"Missioni e progetti","missionsBody":"Ogni conversazione è una missione fissata a un progetto (o a Home per tutto). Cambia missione dall'intestazione e invia messaggi a metà turno: si mettono in coda e girano in ordine.","levelsLabel":"Il guinzaglio è tuo","levelsBody":"Un livello dal vivo, <b>Osserva → Modifica → Opera → Autonomo</b>, scorso con <shift>Shift</shift> <tab>Tab</tab>, limita fin dove può arrivare. Non agisce mai sopra il livello impostato.","cardsLabel":"Schede di decisione","cardsBody":"Gli avvii compaiono come schede dal vivo fissate sopra il composer: avanzamento del rail, poi Crea PR / Integra in locale / Scarta, con una Revisione in linguaggio chiaro. Numeri di spec, job e loop nelle risposte sono cliccabili.","workspaceLabel":"Uno spazio di lavoro accanto","workspaceBody":"La barra laterale destra apre Blueprint, Job, Analisi, un browser integrato, il terminale e l'esploratore del codice accanto alla conversazione, senza cambiare contesto.","mcpLabel":"Gira sull'MCP locale","mcpBody":"L'agente lavora tramite il server MCP integrato di Specrails, <b>attivo di default</b>, solo in loopback. Lo stesso server permette ai tuoi strumenti (Claude Desktop, Cursor…) di guidare Specrails; gestiscilo in Impostazioni → MCP."},"builder":{"nav":"Nuovo progetto","title":"Avvia un progetto da un'idea","subtitle":"Il Builder: blueprint, spec e milestone prima che esista una riga di codice","intro":"Aggiungi progetto → <b>Nuovo</b> trasforma l'agente nel <b>Project Builder</b>. Descrivi l'idea; ti intervista brevemente (o decide tutto con un clic), propone prodotto, flusso principale, piattaforma, stack e milestone, e tu approvi o ritocchi.","flowLabel":"Dall'idea al backlog","flowCaption":"Il commit crea il repository, lo spazio di lavoro e il backlog della Milestone 1; opzionalmente anche un repo privato su GitHub.","cardsLabel":"Decisioni con un clic","cardsBody":"«Sorprendimi» e «Approva e genera le spec» compaiono come schede nel thread; ogni decisione presa resta lì fissata come traccia.","specsLabel":"Spec premium, verificate con onestà","specsBody":"Le spec della Milestone 1 vengono scritte per intero due alla volta, poi l'intero lotto è verificato (problema, soluzione, ambito, considerazioni tecniche, sei o più criteri di accettazione) e un gate deterministico blocca tutto ciò che è troppo scarno.","milestonesLabel":"Milestone sui rail","milestonesBody":"Avvia la Milestone 1 e gira come rail di massimo tre spec, ognuno impilato sul ramo del precedente. I <b>checkpoint per ondata</b> chiedono prima di ogni rail successivo, oppure attiva la continuazione automatica.","progressLabel":"Avanzamento dal vivo","progressBody":"Il pannello Blueprint mostra conteggi reali (consegnate, in revisione, fatte), mai «completo» finché qualcosa non è unito. Le milestone successive sono generate sul repository reale."},"authorSpecs":{"nav":"Scrivi spec","title":"Trasforma le idee in spec","subtitle":"Sei modi per catturare esattamente cosa vuoi costruire","intro":"Una <b>spec</b> descrive un lavoro che vuoi fatto. Scrivila come conviene al momento: da una riga fino all'agente che fa la ricerca per te.","agentLabel":"Chiedi all'agente","agentBody":"In modalità Missione, descrivi la modifica. L'agente legge prima il codice reale, redige una super spec come scheda dal vivo e la salva quando lo dici.","exploreLabel":"Explore: conversa","exploreBody":"Descrivi cosa vuoi in una chat; una bozza dal vivo si ricostruisce a ogni turno. Un selettore di preset regola quanto contesto del progetto vede l'IA: dal solo tuo messaggio fino all'intero codice più i tuoi server MCP.","quickLabel":"Quick: in un colpo","quickBody":"Sai già cosa vuoi? Genera una spec completa in un solo turno. Opzionalmente arricchiscila con un Contract Layer: nomi esatti, forme dei dati, invarianti e lista di file perché gli agenti non reinventino nulla.","websiteLabel":"Da un sito web","websiteBody":"Apre un browser integrato. Seleziona un elemento o traccia un rettangolo: screenshot, DOM e CSS applicato diventano allegati.","smashLabel":"SMASH un grosso epic","smashBody":"Esplodi una spec grande in una famiglia di sotto-spec più piccole con un clic; ogni figlia porta un breve riepilogo sulla sua scheda.","draftsLabel":"Bozze e continua a modificare","draftsBody":"Parcheggia un'esplorazione in corso come spec bozza e riprendila dopo; riapri qualsiasi spec in Explore per continuare a rifinirla."},"rails":{"nav":"Rail e revisione","title":"Esegui la pipeline sui rail","subtitle":"Corsie isolate e una revisione davvero leggibile","intro":"I <b>rail</b> sono corsie di esecuzione: fino a dodici, create su richiesta. Trascina spec su un rail e premi <play>▶ Play</play>, oppure <b>Avvia tutto</b> i rail liberi in parallelo. Ogni run lavora nel proprio worktree git, mai nel tuo checkout.","jobLabel":"Cosa fa ogni run","flowCaption":"Ogni fase è in streaming dal vivo. Alla fine il lavoro resta sul suo ramo e l'app ti chiede cosa fare: Specrails produce PR, non unisce mai da solo.","reviewLabel":"Revisione PR che chiede prima","reviewBody":"Le spec finite si fermano <b>In revisione</b>. Scegli tu: crea una PR bozza, integra in locale (senza remote) o scarta. L'unione le porta a Fatto.","packetLabel":"Pacchetto di revisione","packetBody":"Una pagina in linguaggio chiaro per consegna: cosa era richiesto, cosa è cambiato, cosa riferisce l'IA rispetto a cosa l'app ha verificato, il costo, con Accetta / Chiedi modifiche / Scarta.","steerLabel":"Guida a metà run","steerBody":"I run Claude sono interattivi: fai domande o reindirizza mentre lavorano, e segui un avanzamento narrato invece dei log grezzi.","loopsLabel":"Costruisci i tuoi loop","loopsBody":"<b>Loops</b> è un builder visuale: concatena passi IA, comandi shell e un <b>Loop Decider</b> che ripete finché l'obiettivo è raggiunto. Implement e Freestyle sono pronti all'uso.","profilesLabel":"Profili agente e default","profilesBody":"Decidi quali agenti girano e quale modello usa ciascuno: per profilo di progetto, per rail, o una volta per tutta la macchina in Impostazioni → Agenti Specrails.","isolationLabel":"Tanti progetti, isolati","isolationBody":"Ogni progetto ha il proprio database e la propria coda; il tuo repository resta intatto perché Specrails tiene i suoi file nella tua cartella home."},"providers":{"nav":"Il tuo agente","title":"Porta il tuo agente","subtitle":"Claude Code o Codex come motori di prima classe","intro":"<b>Claude Code</b> o <b>Codex CLI</b> sono motori intercambiabili dietro un unico contratto. Ciò che è installato e autenticato su questa macchina viene rilevato automaticamente e offerto ovunque; niente da configurare per progetto.","calloutLabel":"Quando ne sono installati diversi","calloutBody":"Scegli il motore <b>per spec, per rail, per missione o per avvio del terminale</b>; l'app ricorda l'ultima scelta per progetto. I costi stimati sono marcati con <mono>~</mono>.","table":{"capability":"Capacità","streamingResume":"Streaming e ripresa della sessione","native":"Nativo","costReporting":"Report dei costi","providerBilled":"Fatturato dal provider","estimated":"Stimato (~)","unavailable":"Non disponibile","telemetry":"Telemetria (OTEL)","synthesized":"Sintetizzata","agentProfiles":"Profili agente"}},"cost":{"nav":"Monitora i costi","title":"Traccia ogni centesimo","subtitle":"Ogni invocazione fatturabile, registrata e visualizzata","intro":"Ogni invocazione IA registra ciclo di vita e provider. Utilizzo e costo non riportati restano non disponibili.","analyticsLabel":"Pagina Analytics","analyticsBody":"Un hero con il burn-rate, timeline giornaliera, spec principali, ripartizione per modello e uno scatter costo-vs-turni. Filtra per periodo (7d / 30d / 90d / Tutto) e per superficie.","perTicketLabel":"Spesa per spec","perTicketBody":"Il dettaglio di ogni spec mostra quanto è costata e quanti turni ha richiesto, con un link diretto ad Analytics filtrato su quella spec.","honestLabel":"Numeri onesti","honestBody":"Il costo Claude è fornito dal provider; il costo Codex può essere stimato e marcato con <mono>~</mono>.","budgetsLabel":"Budget e avvisi","budgetsBody":"Imposta un budget giornaliero e un avviso di costo per job; l'app mette in pausa automaticamente la coda quando superi la soglia. Esporta tutto in CSV o JSON."},"workspace":{"nav":"Spazio di lavoro","title":"Rendilo il tuo spazio di lavoro","subtitle":"Tutto ciò che serve senza uscire dalla finestra","terminalLabel":"Pannello terminale","terminalBody":"Un vero terminale stile VS Code in basso (<mod>{{mod}}</mod> <j>J</j>): rendering WebGL, ricerca, immagini inline, percorsi per trascinamento e integrazione con la shell. Fino a 10 sessioni per progetto.","codeLabel":"Esploratore del codice","codeBody":"Albero dei file in sola lettura e visualizzatore Monaco con riepiloghi IA in linguaggio chiaro e una storia di costruzione per file: quale spec l'ha toccato, quando e perché.","browserLabel":"Browser integrato","browserBody":"Apri link, PR e il tuo dev server dentro l'app: un pannello browser nativo nella versione desktop, con popup che mantengono i login OAuth.","integrationsLabel":"Integrazioni e MCP","integrationsBody":"Un marketplace per progetto di integrazioni MCP (la navigazione semantica Serena è inclusa), più il server MCP di Specrails che espone l'app ai tuoi strumenti IA.","themesLabel":"Temi ed effetti","themesBody":"Sei temi integrati (specrails, dracula, aurora-light, obsidian-dark, code-rain e galaxy) applicati prima che l'interfaccia disegni. Impostazioni → Effetti attiva tocchi visivi come l'alone di riflessione dell'agente.","chatsLabel":"Chat riducibili","chatsBody":"Parcheggia una sessione Explore o AI-Edit in un chip del dock e riprendila dopo; mai persa tra ricariche o cambi di progetto.","compareLabel":"Confronta fianco a fianco","compareBody":"Trascina una spec al bordo dello schermo e appare un selettore delle tue altre spec: rivedine due insieme, stile tablet.","desktopLabel":"Desktop o browser","desktopBody":"Usa Specrails nel browser o scarica l'app desktop firmata (macOS e Windows) che include server, Node, git e la CLI di GitHub."},"companion":{"nav":"Companion mobile","title":"Porta Specrails con te","subtitle":"Specrails Companion — le tue pipeline, sul tuo telefono","intro":"<b>Specrails Companion</b> è una web app su specrails.dev/companion-app — aprila sul tuo telefono (o aggiungila alla schermata Home) per sfogliare la board delle spec, lanciare e fermare i rail, seguire i log dei job in diretta e dare un'occhiata alle Analytics. Nessuna installazione, nessuno app store.","localLabel":"100% locale, come tutto il resto","localBody":"Il tuo telefono si connette direttamente a questo computer — peer-to-peer e cifrato (WebRTC). Nessun relay cloud, nessun account, e il tuo codice non lascia mai i tuoi dispositivi.","downloadLabel":"Aprila sul tuo telefono","downloadHint":"Scansiona il codice con la fotocamera del telefono, oppure apri specrails.dev/companion-app nel suo browser.","open":"Apri Specrails Companion","pairLabel":"L'associazione richiede dieci secondi","pairBody":"Sul tuo telefono apri specrails.dev/companion-app, poi qui vai su Impostazioni → Companion mobile → Associa companion web e segui i passaggi a schermo."},"moveFast":{"paletteLabel":"Palette dei comandi","paletteShortcut":"<f>Premi</f> <mod>{{mod}}</mod> <m>+</m> <k>K</k> <m>ovunque</m>","paletteBody":"Cambia progetto, esegui comandi di spec, salta a qualsiasi pagina e trova i job recenti, tutto con ricerca fuzzy.","agentLabel":"Agente","agentBody":"Mostra o nascondi l'agente con <mod>{{mod}}</mod> <shift>Shift</shift> <a>A</a>; scorri il livello con <shift>Shift</shift> <tab>Tab</tab>.","terminalLabel":"Pannello terminale","terminalBody":"Attiva o disattiva con <mod>{{mod}}</mod> <j>J</j>.","shortcutsLabel":"Tutte le scorciatoie","shortcutsBody":"Premi <q>?</q> per vedere il promemoria completo.","chatLabel":"Barra laterale destra","chatBody":"Attiva o disattiva la barra laterale destra con <mod>{{mod}}</mod> <bkey>B</bkey>.","projectsLabel":"Barra dei progetti","projectsBody":"Attiva o disattiva la barra Arc sinistra con <alt>{{alt}}</alt> <mod>{{mod}}</mod> <bkey>B</bkey>.","pagesLabel":"Pagine e progetti per numero","pagesBody":"<mod>{{mod}}</mod> <n>1–9</n> salta a una pagina; <alt>{{alt}}</alt> <mod>{{mod}}</mod> <n>1–9</n> cambia progetto.","outro":"<b>Il tour è finito.</b> Scrivi cosa vuoi costruire nel composer della missione, oppure aggiungi un progetto dalla barra sinistra. Puoi riaprire questo tour in qualsiasi momento dalle Impostazioni."},"jira":{"label":"Integrazione Jira","body":"Appoggia qualsiasi progetto a una <b>board Jira</b> — ogni spec diventa un ticket Jira, sincronizzato in entrambe le direzioni: lo stato segue il rail e viene pubblicato un commento al termine di un job. Configuralo per progetto quando lo aggiungi, o in qualsiasi momento nelle Impostazioni."}}`),a={addProject:e,prerequisites:t,instructions:n,welcome:r,onboarding:i};export{e as addProject,a as default,n as instructions,i as onboarding,t as prerequisites,r as welcome};