specrails-desktop 2.58.1 → 2.59.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 (425) hide show
  1. package/README.md +2 -5
  2. package/client/dist/assets/{ActivityFeedPage-BQGppIR0.js → ActivityFeedPage-DBFt8ZHP.js} +1 -1
  3. package/client/dist/assets/AgentBrowserCapture-DiQx0W67.js +1 -0
  4. package/client/dist/assets/AgentModeAnalyticsPane-BmDSXp_J.js +2 -0
  5. package/client/dist/assets/AgentModeCodePane-BLQLPSwr.js +2 -0
  6. package/client/dist/assets/{AgentModeJobsPane-DR_06oqH.js → AgentModeJobsPane-BbTXdKUa.js} +1 -1
  7. package/client/dist/assets/{AgentsPage-BKIKjm_1.js → AgentsPage-Dei1jGR8.js} +3 -3
  8. package/client/dist/assets/{AnalyticsPage-069npRVo.js → AnalyticsPage-BhkeGIGn.js} +1 -1
  9. package/client/dist/assets/CodePage-B_9yYWUx.js +3 -0
  10. package/client/dist/assets/{DesktopAnalyticsPage-qtWAPM47.js → DesktopAnalyticsPage-DAcfEJac.js} +1 -1
  11. package/client/dist/assets/DocsDialog-WCuiYgsc.js +11 -0
  12. package/client/dist/assets/DocsPage-bGVYTMTU.js +11 -0
  13. package/client/dist/assets/{ExportDropdown-BcMpvV89.js → ExportDropdown-CsodZ-yb.js} +1 -1
  14. package/client/dist/assets/InteractiveJobComposer-D5fh_eVL.js +19 -0
  15. package/client/dist/assets/JobDetailModal-DlpXF61O.js +1 -0
  16. package/client/dist/assets/JobDetailPage-2yR19_Lb.js +1 -0
  17. package/client/dist/assets/JobsPage-CS9IR6Dq.js +1 -0
  18. package/client/dist/assets/LoopBuilderPage-BwiAtmOr.js +1 -0
  19. package/client/dist/assets/{LoopPreviewModal-je5pSCf-.js → LoopPreviewModal--upwvgTv.js} +1 -1
  20. package/client/dist/assets/LoopWindowSurface-DRnUixtl.js +1 -0
  21. package/client/dist/assets/LoopsPage-Xm3nRToQ.js +2 -0
  22. package/client/dist/assets/MinimizedChatsContext-D_8L4EWZ.js +1 -0
  23. package/client/dist/assets/PluginsPage-CAFQ1B4Q.js +2 -0
  24. package/client/dist/assets/ProjectSettingsDialog-DYSO4v90.js +1 -0
  25. package/client/dist/assets/{RepositoryDeliveries-BiwJuS8r.js → RepositoryDeliveries-CbQmW7Qx.js} +1 -1
  26. package/client/dist/assets/RepositoryScopeSelector-DKzvIGSZ.js +2 -0
  27. package/client/dist/assets/ReviewPacketPage-SDBhYdQB.js +4 -0
  28. package/client/dist/assets/TemplatePreviewModal-DHBUds51.js +1 -0
  29. package/client/dist/assets/TicketDetailModalContext-UAeNm7BB.js +16 -0
  30. package/client/dist/assets/{Trans-D3AfDylf.js → Trans-DExd3Z00.js} +1 -1
  31. package/client/dist/assets/agent-BElLtdKP.js +1 -0
  32. package/client/dist/assets/agent-C-m9VugX.js +1 -0
  33. package/client/dist/assets/agent-CGSKxfZk.js +1 -0
  34. package/client/dist/assets/agent-CW74ODDP.js +1 -0
  35. package/client/dist/assets/agent-DeCAZDhL.js +1 -0
  36. package/client/dist/assets/agent-DrM4qned.js +1 -0
  37. package/client/dist/assets/agent-KdIXq3w5.js +1 -0
  38. package/client/dist/assets/agent-jK8mCisM.js +1 -0
  39. package/client/dist/assets/{agentRuntime-DGz_IqKW.js → agentRuntime-15Pkk6we.js} +1 -1
  40. package/client/dist/assets/agentRuntime-Bpx3yWHK.js +1 -0
  41. package/client/dist/assets/{agentRuntime-Bg9tbmqm.js → agentRuntime-C78n13To.js} +1 -1
  42. package/client/dist/assets/{agentRuntime-D-GJVGkj.js → agentRuntime-CCI7XF4c.js} +1 -1
  43. package/client/dist/assets/{agentRuntime-D2__CVI_.js → agentRuntime-CKDHe2-a.js} +1 -1
  44. package/client/dist/assets/{agentRuntime-D35dGVOP.js → agentRuntime-Ddqvp2bP.js} +1 -1
  45. package/client/dist/assets/{agentRuntime-hInH9Fzj.js → agentRuntime-TXPQowKJ.js} +1 -1
  46. package/client/dist/assets/{agentRuntime-O1liDt6G.js → agentRuntime-hqZRy08E.js} +1 -1
  47. package/client/dist/assets/{builder-DGETbtZj.js → builder-B9gorTnT.js} +1 -1
  48. package/client/dist/assets/{builder-DyQperXU.js → builder-Bvw5s3Mi.js} +1 -1
  49. package/client/dist/assets/{builder-C1neIYGR.js → builder-CL5l4dU3.js} +1 -1
  50. package/client/dist/assets/{builder-DXEJUlC0.js → builder-CVDTVrQX.js} +1 -1
  51. package/client/dist/assets/{builder-CzW5ovyI.js → builder-CpS9liE9.js} +1 -1
  52. package/client/dist/assets/{builder-CvnFm0im.js → builder-DNctIL9Q.js} +1 -1
  53. package/client/dist/assets/{builder-D06L7iPy.js → builder-De2NxX6o.js} +1 -1
  54. package/client/dist/assets/{builder-C0FyvM83.js → builder-DeYT7Y-m.js} +1 -1
  55. package/client/dist/assets/{button-Ccc9Dc-D.js → button-D1xExSTF.js} +1 -1
  56. package/client/dist/assets/{common-DmsclwjP.js → common-Bdi0qN4S.js} +1 -1
  57. package/client/dist/assets/{common-C4Yvvhp6.js → common-Bhb9zN1P.js} +1 -1
  58. package/client/dist/assets/{common-od8WThlf.js → common-BykKlZg1.js} +1 -1
  59. package/client/dist/assets/{common-C0BOdeNi.js → common-CvnNNSJA.js} +1 -1
  60. package/client/dist/assets/{common-BCK7c9Pv.js → common-D5zk_mqq.js} +1 -1
  61. package/client/dist/assets/{common-DpLWwgI1.js → common-DQNO_al5.js} +1 -1
  62. package/client/dist/assets/{common-OCvl3c8t.js → common-Dax30Vmp.js} +1 -1
  63. package/client/dist/assets/{common-c0aujEZC.js → common-DkllpVSb.js} +1 -1
  64. package/client/dist/assets/{dialog-xXB2q5HJ.js → dialog-CMgps2MY.js} +1 -1
  65. package/client/dist/assets/external-link-D6XxC_Cu.js +1 -0
  66. package/client/dist/assets/file-text-BcLCfcWZ.js +1 -0
  67. package/client/dist/assets/{formatDistanceToNow-aBss1Nai.js → formatDistanceToNow-aw7H5ORC.js} +1 -1
  68. package/client/dist/assets/{getTimezoneOffsetInMilliseconds-DOGj1Mfz.js → getTimezoneOffsetInMilliseconds-NyC7gZJX.js} +1 -1
  69. package/client/dist/assets/index-CahchzS5.css +2 -0
  70. package/client/dist/assets/index-JSTZVJfe.js +83 -0
  71. package/client/dist/assets/integrations-BkpRUbvp.js +1 -0
  72. package/client/dist/assets/integrations-Bo8qbJf4.js +1 -0
  73. package/client/dist/assets/integrations-CmSrKzZb.js +1 -0
  74. package/client/dist/assets/integrations-DGtq26Rr.js +1 -0
  75. package/client/dist/assets/integrations-De38GFnQ.js +1 -0
  76. package/client/dist/assets/integrations-Dw6zdtb-.js +1 -0
  77. package/client/dist/assets/integrations-Dwl9KQp0.js +1 -0
  78. package/client/dist/assets/integrations-Refg_d2I.js +1 -0
  79. package/client/dist/assets/jira-api-DlXaRwA3.js +1 -0
  80. package/client/dist/assets/{jobs-KG4Sn12X.js → jobs-1G3wodhl.js} +1 -1
  81. package/client/dist/assets/{jobs-6_-r75yC.js → jobs-B4pu8TdF.js} +1 -1
  82. package/client/dist/assets/{jobs-pPv4KWjb.js → jobs-BD47Ov11.js} +1 -1
  83. package/client/dist/assets/{jobs-B1yqyId5.js → jobs-BLOoVRRl.js} +1 -1
  84. package/client/dist/assets/{jobs-BKiK-ZWh.js → jobs-CSrRx5lD.js} +1 -1
  85. package/client/dist/assets/{jobs-BFuV7ttH.js → jobs-DZAbh1m2.js} +1 -1
  86. package/client/dist/assets/{jobs-DmKV7b7d.js → jobs-epP7gt8W.js} +1 -1
  87. package/client/dist/assets/{jobs-BKa8LuwA.js → jobs-tWjcDF_6.js} +1 -1
  88. package/client/dist/assets/loops--KWr0X-w.js +1 -0
  89. package/client/dist/assets/{loops-BO3V8244.js → loops-3IutojWt.js} +1 -1
  90. package/client/dist/assets/{loops-C-hZK8pf.js → loops-BAosWtXE.js} +1 -1
  91. package/client/dist/assets/{loops-eUnCfLjC.js → loops-BISDssL5.js} +1 -1
  92. package/client/dist/assets/{loops-Dv849ckF.js → loops-Cm55CXJ4.js} +1 -1
  93. package/client/dist/assets/{loops-CDOWZ0ci.js → loops-D7tL_Saw.js} +1 -1
  94. package/client/dist/assets/{loops-BJDY9FTh.js → loops-DHQtnfze.js} +1 -1
  95. package/client/dist/assets/{loops-Q9LIgGkq.js → loops-kIJJkaxf.js} +1 -1
  96. package/client/dist/assets/nav--u7iPYlS.js +1 -0
  97. package/client/dist/assets/nav-C5Jgfaby.js +1 -0
  98. package/client/dist/assets/nav-CAna_Wpt.js +1 -0
  99. package/client/dist/assets/nav-CCLqeyHo.js +1 -0
  100. package/client/dist/assets/nav-Cf3c90Jk.js +1 -0
  101. package/client/dist/assets/nav-DMYQaQjR.js +1 -0
  102. package/client/dist/assets/nav-Df_PkZ9F.js +1 -0
  103. package/client/dist/assets/nav-VyNGBJwj.js +1 -0
  104. package/client/dist/assets/{project-repositories-CSnfzUpg.js → project-repositories-DXhb9FP4.js} +1 -1
  105. package/client/dist/assets/provider-capabilities-lePfeT_Y.js +1 -0
  106. package/client/dist/assets/save-OsUqVn99.js +1 -0
  107. package/client/dist/assets/settings-B5Hy_Kol.js +1 -0
  108. package/client/dist/assets/settings-BBj_kZaD.js +1 -0
  109. package/client/dist/assets/settings-ByVE7jdZ.js +1 -0
  110. package/client/dist/assets/settings-COlH_P33.js +1 -0
  111. package/client/dist/assets/settings-D77mC_Lb.js +1 -0
  112. package/client/dist/assets/settings-DZKy7MqN.js +1 -0
  113. package/client/dist/assets/settings-Dbyd6gmj.js +1 -0
  114. package/client/dist/assets/settings-Dn-pXukr.js +1 -0
  115. package/client/dist/assets/setup-Be485n2u.js +1 -0
  116. package/client/dist/assets/setup-CKGUxKr-.js +1 -0
  117. package/client/dist/assets/setup-Ck1Uwd7_.js +1 -0
  118. package/client/dist/assets/setup-Cm774a6v.js +1 -0
  119. package/client/dist/assets/setup-DIqMQpxt.js +1 -0
  120. package/client/dist/assets/setup-DfCsoNFL.js +1 -0
  121. package/client/dist/assets/setup-DkeE8mP0.js +1 -0
  122. package/client/dist/assets/setup-xVntVaz1.js +1 -0
  123. package/client/dist/assets/{spending-HBSk-6jv.js → spending-BdcyVkcd.js} +1 -1
  124. package/client/dist/assets/subscriptionUsage-Cf87DeS_.js +1 -0
  125. package/client/dist/assets/subscriptionUsage-D6u7VBdz.js +1 -0
  126. package/client/dist/assets/subscriptionUsage-DQ02J25O.js +1 -0
  127. package/client/dist/assets/subscriptionUsage-DWF3zKp4.js +1 -0
  128. package/client/dist/assets/subscriptionUsage-DkIf6Zuh.js +1 -0
  129. package/client/dist/assets/subscriptionUsage-DoWQv7l1.js +1 -0
  130. package/client/dist/assets/subscriptionUsage-N9hB-ARf.js +1 -0
  131. package/client/dist/assets/subscriptionUsage-zRcRPHkP.js +1 -0
  132. package/client/dist/assets/tauri-shell-DE6LfGPw.js +2 -0
  133. package/client/dist/assets/{useDesktop-0unHDBJJ.js → useDesktop-D07TvesS.js} +1 -1
  134. package/client/dist/assets/{useRuntimeRuns-BN1rhyEm.js → useRuntimeRuns-pGLmtAC6.js} +1 -1
  135. package/client/dist/assets/useSharedWebSocket-TzKtPRp9.js +2 -0
  136. package/client/dist/index.html +33 -32
  137. package/docs/README.md +1 -9
  138. package/docs/agent-live-steering.md +0 -6
  139. package/docs/agents/README.md +0 -2
  140. package/docs/agents/mcp.md +1 -14
  141. package/docs/cli.md +0 -13
  142. package/docs/codex.md +2 -75
  143. package/docs/creating-specs.md +0 -39
  144. package/docs/customizing.md +1 -15
  145. package/docs/getting-started.md +0 -23
  146. package/docs/guide/de/agents/2-profiles-and-the-balanced-default.md +0 -8
  147. package/docs/guide/de/agents/4-custom-agents-catalog.md +0 -15
  148. package/docs/guide/de/getting-started/1-what-is-specrails.md +0 -2
  149. package/docs/guide/de/getting-started/2-installing-and-first-run.md +0 -2
  150. package/docs/guide/de/getting-started/3-adding-your-first-project.md +0 -4
  151. package/docs/guide/de/getting-started/4-the-dashboard-tour.md +0 -5
  152. package/docs/guide/de/integrations/1-ai-providers.md +2 -50
  153. package/docs/guide/de/integrations/2-plugins.md +0 -8
  154. package/docs/guide/de/integrations/5-mcp-server.md +1 -14
  155. package/docs/guide/de/integrations/6-agent-chat.md +0 -11
  156. package/docs/guide/de/integrations/7-local-engines.md +0 -4
  157. package/docs/guide/de/pipeline/1-rails-and-jobs.md +0 -13
  158. package/docs/guide/de/pipeline/2-the-job-detail-view.md +0 -3
  159. package/docs/guide/de/pipeline/4-picking-an-engine-per-rail.md +0 -20
  160. package/docs/guide/de/pipeline/5-the-loop-builder.md +0 -6
  161. package/docs/guide/de/specs/2-add-spec-quick-mode.md +0 -7
  162. package/docs/guide/en/agents/2-profiles-and-the-balanced-default.md +0 -10
  163. package/docs/guide/en/agents/4-custom-agents-catalog.md +0 -25
  164. package/docs/guide/en/getting-started/1-what-is-specrails.md +0 -2
  165. package/docs/guide/en/getting-started/2-installing-and-first-run.md +0 -2
  166. package/docs/guide/en/getting-started/3-adding-your-first-project.md +0 -4
  167. package/docs/guide/en/getting-started/4-the-dashboard-tour.md +0 -5
  168. package/docs/guide/en/insights/3-code-explorer.md +0 -5
  169. package/docs/guide/en/integrations/1-ai-providers.md +10 -99
  170. package/docs/guide/en/integrations/2-plugins.md +0 -8
  171. package/docs/guide/en/integrations/5-mcp-server.md +1 -1
  172. package/docs/guide/en/integrations/6-agent-chat.md +0 -17
  173. package/docs/guide/en/integrations/7-local-engines.md +0 -4
  174. package/docs/guide/en/pipeline/1-rails-and-jobs.md +2 -24
  175. package/docs/guide/en/pipeline/2-the-job-detail-view.md +0 -3
  176. package/docs/guide/en/pipeline/4-picking-an-engine-per-rail.md +10 -65
  177. package/docs/guide/en/pipeline/5-the-loop-builder.md +0 -7
  178. package/docs/guide/en/specs/2-add-spec-quick-mode.md +0 -11
  179. package/docs/guide/es/agents/2-profiles-and-the-balanced-default.md +0 -8
  180. package/docs/guide/es/agents/4-custom-agents-catalog.md +0 -15
  181. package/docs/guide/es/getting-started/1-what-is-specrails.md +0 -2
  182. package/docs/guide/es/getting-started/2-installing-and-first-run.md +0 -2
  183. package/docs/guide/es/getting-started/3-adding-your-first-project.md +0 -4
  184. package/docs/guide/es/getting-started/4-the-dashboard-tour.md +0 -5
  185. package/docs/guide/es/integrations/1-ai-providers.md +10 -75
  186. package/docs/guide/es/integrations/2-plugins.md +0 -8
  187. package/docs/guide/es/integrations/5-mcp-server.md +1 -1
  188. package/docs/guide/es/integrations/6-agent-chat.md +0 -11
  189. package/docs/guide/es/integrations/7-local-engines.md +0 -4
  190. package/docs/guide/es/pipeline/1-rails-and-jobs.md +3 -13
  191. package/docs/guide/es/pipeline/2-the-job-detail-view.md +0 -3
  192. package/docs/guide/es/pipeline/4-picking-an-engine-per-rail.md +10 -53
  193. package/docs/guide/es/pipeline/5-the-loop-builder.md +1 -6
  194. package/docs/guide/es/specs/2-add-spec-quick-mode.md +0 -7
  195. package/docs/guide/fr/agents/2-profiles-and-the-balanced-default.md +0 -8
  196. package/docs/guide/fr/agents/4-custom-agents-catalog.md +0 -15
  197. package/docs/guide/fr/getting-started/1-what-is-specrails.md +0 -2
  198. package/docs/guide/fr/getting-started/2-installing-and-first-run.md +0 -2
  199. package/docs/guide/fr/getting-started/3-adding-your-first-project.md +0 -4
  200. package/docs/guide/fr/getting-started/4-the-dashboard-tour.md +0 -5
  201. package/docs/guide/fr/integrations/1-ai-providers.md +2 -50
  202. package/docs/guide/fr/integrations/2-plugins.md +0 -8
  203. package/docs/guide/fr/integrations/5-mcp-server.md +1 -14
  204. package/docs/guide/fr/integrations/6-agent-chat.md +0 -11
  205. package/docs/guide/fr/integrations/7-local-engines.md +0 -4
  206. package/docs/guide/fr/pipeline/1-rails-and-jobs.md +0 -13
  207. package/docs/guide/fr/pipeline/2-the-job-detail-view.md +0 -3
  208. package/docs/guide/fr/pipeline/4-picking-an-engine-per-rail.md +0 -22
  209. package/docs/guide/fr/pipeline/5-the-loop-builder.md +0 -6
  210. package/docs/guide/fr/specs/2-add-spec-quick-mode.md +0 -7
  211. package/docs/guide/it/agents/2-profiles-and-the-balanced-default.md +0 -8
  212. package/docs/guide/it/agents/4-custom-agents-catalog.md +0 -15
  213. package/docs/guide/it/getting-started/1-what-is-specrails.md +0 -2
  214. package/docs/guide/it/getting-started/2-installing-and-first-run.md +0 -2
  215. package/docs/guide/it/getting-started/3-adding-your-first-project.md +0 -4
  216. package/docs/guide/it/getting-started/4-the-dashboard-tour.md +0 -5
  217. package/docs/guide/it/integrations/1-ai-providers.md +2 -48
  218. package/docs/guide/it/integrations/2-plugins.md +0 -8
  219. package/docs/guide/it/integrations/5-mcp-server.md +1 -14
  220. package/docs/guide/it/integrations/6-agent-chat.md +0 -11
  221. package/docs/guide/it/integrations/7-local-engines.md +0 -4
  222. package/docs/guide/it/pipeline/1-rails-and-jobs.md +2 -13
  223. package/docs/guide/it/pipeline/2-the-job-detail-view.md +0 -3
  224. package/docs/guide/it/pipeline/4-picking-an-engine-per-rail.md +0 -20
  225. package/docs/guide/it/pipeline/5-the-loop-builder.md +1 -6
  226. package/docs/guide/it/specs/2-add-spec-quick-mode.md +0 -7
  227. package/docs/guide/ja/agents/2-profiles-and-the-balanced-default.md +0 -9
  228. package/docs/guide/ja/agents/4-custom-agents-catalog.md +0 -15
  229. package/docs/guide/ja/getting-started/1-what-is-specrails.md +0 -2
  230. package/docs/guide/ja/getting-started/2-installing-and-first-run.md +0 -2
  231. package/docs/guide/ja/getting-started/3-adding-your-first-project.md +0 -4
  232. package/docs/guide/ja/getting-started/4-the-dashboard-tour.md +0 -5
  233. package/docs/guide/ja/integrations/1-ai-providers.md +1 -69
  234. package/docs/guide/ja/integrations/2-plugins.md +0 -8
  235. package/docs/guide/ja/integrations/5-mcp-server.md +1 -14
  236. package/docs/guide/ja/integrations/6-agent-chat.md +0 -10
  237. package/docs/guide/ja/integrations/7-local-engines.md +0 -4
  238. package/docs/guide/ja/pipeline/1-rails-and-jobs.md +0 -13
  239. package/docs/guide/ja/pipeline/2-the-job-detail-view.md +0 -3
  240. package/docs/guide/ja/pipeline/4-picking-an-engine-per-rail.md +0 -21
  241. package/docs/guide/ja/pipeline/5-the-loop-builder.md +0 -6
  242. package/docs/guide/ja/specs/2-add-spec-quick-mode.md +0 -7
  243. package/docs/guide/pt/agents/2-profiles-and-the-balanced-default.md +0 -8
  244. package/docs/guide/pt/agents/4-custom-agents-catalog.md +0 -15
  245. package/docs/guide/pt/getting-started/1-what-is-specrails.md +0 -2
  246. package/docs/guide/pt/getting-started/2-installing-and-first-run.md +0 -2
  247. package/docs/guide/pt/getting-started/3-adding-your-first-project.md +0 -4
  248. package/docs/guide/pt/getting-started/4-the-dashboard-tour.md +0 -5
  249. package/docs/guide/pt/integrations/1-ai-providers.md +2 -48
  250. package/docs/guide/pt/integrations/2-plugins.md +0 -8
  251. package/docs/guide/pt/integrations/5-mcp-server.md +1 -14
  252. package/docs/guide/pt/integrations/6-agent-chat.md +0 -10
  253. package/docs/guide/pt/integrations/7-local-engines.md +0 -4
  254. package/docs/guide/pt/pipeline/1-rails-and-jobs.md +0 -13
  255. package/docs/guide/pt/pipeline/2-the-job-detail-view.md +0 -2
  256. package/docs/guide/pt/pipeline/4-picking-an-engine-per-rail.md +0 -21
  257. package/docs/guide/pt/pipeline/5-the-loop-builder.md +0 -6
  258. package/docs/guide/pt/specs/2-add-spec-quick-mode.md +0 -7
  259. package/docs/guide/zh/agents/2-profiles-and-the-balanced-default.md +0 -7
  260. package/docs/guide/zh/agents/4-custom-agents-catalog.md +0 -15
  261. package/docs/guide/zh/getting-started/1-what-is-specrails.md +0 -2
  262. package/docs/guide/zh/getting-started/2-installing-and-first-run.md +0 -2
  263. package/docs/guide/zh/getting-started/3-adding-your-first-project.md +0 -4
  264. package/docs/guide/zh/getting-started/4-the-dashboard-tour.md +0 -5
  265. package/docs/guide/zh/integrations/1-ai-providers.md +1 -67
  266. package/docs/guide/zh/integrations/2-plugins.md +0 -8
  267. package/docs/guide/zh/integrations/5-mcp-server.md +1 -14
  268. package/docs/guide/zh/integrations/6-agent-chat.md +0 -9
  269. package/docs/guide/zh/integrations/7-local-engines.md +0 -4
  270. package/docs/guide/zh/pipeline/1-rails-and-jobs.md +0 -13
  271. package/docs/guide/zh/pipeline/2-the-job-detail-view.md +0 -2
  272. package/docs/guide/zh/pipeline/4-picking-an-engine-per-rail.md +0 -20
  273. package/docs/guide/zh/pipeline/5-the-loop-builder.md +0 -6
  274. package/docs/guide/zh/specs/2-add-spec-quick-mode.md +0 -7
  275. package/docs/internals/adding-a-provider.md +7 -0
  276. package/docs/internals/desktop-owned-workflows.md +121 -0
  277. package/docs/internals/operations-runbook.md +20 -0
  278. package/docs/internals/programmatic-agent-runtime.md +34 -28
  279. package/docs/internals/project-builder.md +34 -11
  280. package/docs/internals/source-map.md +51 -3
  281. package/docs/internals/spec-addenda.md +11 -5
  282. package/docs/local-providers.md +8 -13
  283. package/docs/mcp.md +1 -17
  284. package/docs/platforms/macos.md +0 -40
  285. package/docs/platforms/windows-parity.md +1 -1
  286. package/docs/platforms/windows.md +0 -8
  287. package/docs/running-pipelines.md +1 -46
  288. package/docs/subscription-usage.md +19 -0
  289. package/docs/terminal.md +0 -2
  290. package/docs/tracking-cost.md +2 -33
  291. package/package.json +1 -1
  292. package/server/dist/core-execution.js +24 -15
  293. package/server/dist/desktop-db.js +23 -10
  294. package/server/dist/desktop-router.js +8 -4
  295. package/server/dist/index.js +10 -5
  296. package/server/dist/mcp/guide.js +1 -0
  297. package/server/dist/mcp/tools/jobs.js +1 -1
  298. package/server/dist/mcp/tools/loops.js +2 -0
  299. package/server/dist/mcp/tools/meta.js +6 -7
  300. package/server/dist/mcp/tools/projects.js +31 -6
  301. package/server/dist/mcp/tools/rails.js +6 -3
  302. package/server/dist/mcp/tools/setup.js +10 -0
  303. package/server/dist/mcp/tools/specs.js +1 -1
  304. package/server/dist/modules/accounting/runtime/pricing.js +6 -1
  305. package/server/dist/modules/agent-runtime/runtime/agent-runtime-bridge.js +55 -12
  306. package/server/dist/modules/agent-runtime/runtime/agent-runtime-metrics.js +1 -1
  307. package/server/dist/modules/agent-runtime/runtime/agent-runtime-settings-router.js +1 -1
  308. package/server/dist/modules/agent-runtime/runtime/agent-runtime-settings.js +42 -0
  309. package/server/dist/modules/agent-runtime/runtime/agent-runtime-verification-suggestions.js +10 -4
  310. package/server/dist/modules/builder/runtime/milestone-chain.js +76 -10
  311. package/server/dist/modules/delivery/runtime/delivery-evidence.js +3 -2
  312. package/server/dist/modules/delivery/runtime/multi-repo-execution.js +3 -0
  313. package/server/dist/modules/delivery/runtime/rail-isolated-launch.js +1 -0
  314. package/server/dist/modules/delivery/runtime/rail-launch-parser.js +8 -0
  315. package/server/dist/modules/delivery/runtime/rails-router.js +48 -26
  316. package/server/dist/modules/delivery/runtime/review-packet.js +1 -1
  317. package/server/dist/modules/loops/runtime/loop-agent-defaults.json +6 -0
  318. package/server/dist/modules/loops/runtime/loop-agents.js +21 -0
  319. package/server/dist/modules/loops/runtime/loop-command-catalog.js +1 -1
  320. package/server/dist/modules/loops/runtime/loop-core-factory.js +19 -3
  321. package/server/dist/modules/loops/runtime/loop-definition.js +79 -12
  322. package/server/dist/modules/loops/runtime/loop-effect.js +1 -1
  323. package/server/dist/modules/loops/runtime/loop-executors.js +24 -9
  324. package/server/dist/modules/loops/runtime/loop-factory.js +1 -1
  325. package/server/dist/modules/loops/runtime/loop-graph.js +5 -14
  326. package/server/dist/modules/loops/runtime/loop-implement-recipe.js +49 -0
  327. package/server/dist/modules/loops/runtime/loop-run-manager.js +3 -3
  328. package/server/dist/modules/loops/runtime/loop-templates.js +29 -5
  329. package/server/dist/modules/loops/runtime/loops-router.js +17 -0
  330. package/server/dist/modules/missions/runtime/agent-context-resolver.js +1 -1
  331. package/server/dist/modules/missions/runtime/agent-operator-prompt.js +17 -8
  332. package/server/dist/modules/specs/runtime/spec-models.js +4 -7
  333. package/server/dist/modules/subscription-usage/adapters/claude.js +113 -0
  334. package/server/dist/modules/subscription-usage/adapters/codex.js +164 -0
  335. package/server/dist/modules/subscription-usage/adapters/errors.js +15 -0
  336. package/server/dist/modules/subscription-usage/adapters/http.js +20 -0
  337. package/server/dist/modules/subscription-usage/adapters/local-auth.js +61 -0
  338. package/server/dist/modules/subscription-usage/application.js +11 -0
  339. package/server/dist/modules/subscription-usage/domain.js +70 -0
  340. package/server/dist/modules/subscription-usage/index.js +2 -0
  341. package/server/dist/modules/subscription-usage/ports.js +2 -0
  342. package/server/dist/modules/subscription-usage/runtime/composition.js +20 -0
  343. package/server/dist/modules/subscription-usage/runtime/usage-service.js +111 -0
  344. package/server/dist/project-registry.js +16 -1
  345. package/server/dist/project-repositories.js +51 -2
  346. package/server/dist/project-router-helpers.js +1 -1
  347. package/server/dist/project-router-loop-runs.js +4 -1
  348. package/server/dist/providers/claude-adapter.js +6 -4
  349. package/server/dist/providers/codex-adapter.js +4 -5
  350. package/server/dist/schemas/workflow-definition.schema.json +2 -0
  351. package/client/dist/assets/AgentBrowserCapture-PI-cxyxi.js +0 -1
  352. package/client/dist/assets/AgentModeAnalyticsPane-mQsOqdXx.js +0 -2
  353. package/client/dist/assets/AgentModeCodePane-BL-vpmlY.js +0 -2
  354. package/client/dist/assets/CodePage-Alitorrv.js +0 -3
  355. package/client/dist/assets/DocsDialog-DwL6rgcT.js +0 -11
  356. package/client/dist/assets/DocsPage-BA1hiJZ-.js +0 -11
  357. package/client/dist/assets/InteractiveJobComposer-B3H1YHr6.js +0 -19
  358. package/client/dist/assets/JobDetailModal-XZQ9eAAy.js +0 -1
  359. package/client/dist/assets/JobDetailPage-B-SIaq_q.js +0 -1
  360. package/client/dist/assets/JobsPage-iQXAv2mx.js +0 -1
  361. package/client/dist/assets/LoopBuilderPage-B_gbFAHn.js +0 -1
  362. package/client/dist/assets/LoopsPage-BZwcY5cu.js +0 -2
  363. package/client/dist/assets/MinimizedChatsContext-CNx_0bZu.js +0 -1
  364. package/client/dist/assets/PluginsPage-DFocnoHX.js +0 -2
  365. package/client/dist/assets/ProjectSettingsDialog-Bh3S6EBB.js +0 -1
  366. package/client/dist/assets/RepositoryScopeSelector-C2mvWBQ6.js +0 -1
  367. package/client/dist/assets/ReviewPacketPage-CrAf-WDy.js +0 -4
  368. package/client/dist/assets/TemplatePreviewModal-C7DordpN.js +0 -1
  369. package/client/dist/assets/TicketDetailModalContext-B-DySpKL.js +0 -16
  370. package/client/dist/assets/agent-BaG10AN6.js +0 -1
  371. package/client/dist/assets/agent-CH4aJ884.js +0 -1
  372. package/client/dist/assets/agent-CLc9fA7v.js +0 -1
  373. package/client/dist/assets/agent-DHh9-AdL.js +0 -1
  374. package/client/dist/assets/agent-DkKnd6Wv.js +0 -1
  375. package/client/dist/assets/agent-aiVhqFW1.js +0 -1
  376. package/client/dist/assets/agent-dbznD3eO.js +0 -1
  377. package/client/dist/assets/agent-sMVFcPwL.js +0 -1
  378. package/client/dist/assets/agentRuntime-BeUb3g9g.js +0 -1
  379. package/client/dist/assets/file-text-CFT-xXKN.js +0 -1
  380. package/client/dist/assets/index-BS7KCWkV.css +0 -2
  381. package/client/dist/assets/index-C4Mv6tV6.js +0 -80
  382. package/client/dist/assets/integrations-CH0zy1Mw.js +0 -1
  383. package/client/dist/assets/integrations-CIAjhd7L.js +0 -1
  384. package/client/dist/assets/integrations-CZdwOe8A.js +0 -1
  385. package/client/dist/assets/integrations-Ct7omMld.js +0 -1
  386. package/client/dist/assets/integrations-D6MSxy3-.js +0 -1
  387. package/client/dist/assets/integrations-DbZa-Zyc.js +0 -1
  388. package/client/dist/assets/integrations-b8pH-vfl.js +0 -1
  389. package/client/dist/assets/integrations-mB-7zoyT.js +0 -1
  390. package/client/dist/assets/jira-api-BYbEPlkr.js +0 -1
  391. package/client/dist/assets/layers-eDMjG41I.js +0 -1
  392. package/client/dist/assets/loops-B4_D-nbg.js +0 -1
  393. package/client/dist/assets/nav-B-tpjyc2.js +0 -1
  394. package/client/dist/assets/nav-BJNXGg29.js +0 -1
  395. package/client/dist/assets/nav-BdhtRLP7.js +0 -1
  396. package/client/dist/assets/nav-ByYgyN5T.js +0 -1
  397. package/client/dist/assets/nav-DA0Mva2c.js +0 -1
  398. package/client/dist/assets/nav-DcJm_Jg_.js +0 -1
  399. package/client/dist/assets/nav-DhMPtAXc.js +0 -1
  400. package/client/dist/assets/nav-DhPb-Isc.js +0 -1
  401. package/client/dist/assets/provider-capabilities-Vi1ZGvAK.js +0 -1
  402. package/client/dist/assets/save-B6wGWwBR.js +0 -1
  403. package/client/dist/assets/settings-3o4Ntzi5.js +0 -1
  404. package/client/dist/assets/settings-B97jlkwD.js +0 -1
  405. package/client/dist/assets/settings-BTaT_bsS.js +0 -1
  406. package/client/dist/assets/settings-CT8w7WiC.js +0 -1
  407. package/client/dist/assets/settings-Cvr8_tvh.js +0 -1
  408. package/client/dist/assets/settings-Dn1qgAC8.js +0 -1
  409. package/client/dist/assets/settings-EShDdg4J.js +0 -1
  410. package/client/dist/assets/settings-tfLhQZRN.js +0 -1
  411. package/client/dist/assets/setup-CBMu3tqH.js +0 -1
  412. package/client/dist/assets/setup-CPh-e6J2.js +0 -1
  413. package/client/dist/assets/setup-CRKLp_ke.js +0 -1
  414. package/client/dist/assets/setup-Cy302v4J.js +0 -1
  415. package/client/dist/assets/setup-D681vTPf.js +0 -1
  416. package/client/dist/assets/setup-DYK0VBkE.js +0 -1
  417. package/client/dist/assets/setup-KAuiIiVs.js +0 -1
  418. package/client/dist/assets/setup-OGX-oCfI.js +0 -1
  419. package/client/dist/assets/useSharedWebSocket-BZMrX4jr.js +0 -2
  420. package/client/dist/assets/wrench-BfmNO9Vw.js +0 -1
  421. package/docs/agy-cli-provider-study.md +0 -257
  422. package/docs/gemini-cli-provider-study.md +0 -301
  423. package/docs/gemini-core-support-evaluation.md +0 -160
  424. package/docs/gemini.md +0 -257
  425. package/docs/kimi.md +0 -291
@@ -0,0 +1 @@
1
+ var e={title:`Intégrations`,subtitle:`Plugins par projet. Chaque projet choisit indépendamment les intégrations à activer.`,selectProject:`Sélectionnez un projet pour gérer les intégrations.`,deprecated:`Obsolète`,loadError:`Échec du chargement des plugins.`,empty:`Aucun plugin n'est inclus dans cette version.`},t={statusActive:`Actif`,statusDeactivated:`Désactivé`,statusDegraded:`Dégradé`,updateAvailable:`Mise à jour disponible`,requires:`Requiert : {{list}}`,deactivatedHint:`Installé mais désactivé — Claude ne le chargera pas à la prochaine session. Basculez sur <strong>Actif</strong> pour le réactiver.`,install:`Installer`,uninstall:`Désinstaller`},n={titleActive:`Actif — cliquez pour désactiver`,titleDeactivated:`Désactivé — cliquez pour activer`},r={body:`Claude a le plugin du marketplace <strong>installé mais désactivé</strong> dans son cache. Il peut encore résoudre le serveur depuis <code>~/.claude/plugins/cache/...</code> même si l'interrupteur est désactivé. Pour forcer la portée projet uniquement, désinstallez le plugin du marketplace depuis Claude :`,runInstruction:`Exécutez dans une session Claude active, puis redémarrez Claude dans ce projet.`},i={body:`Le manifeste inclus a changé depuis votre installation (probablement un renommage en amont). Réécrivez <code>.mcp.json</code> avec l'entrée canonique — opération chirurgicale, seules les clés possédées par le plugin sont touchées.`,button:`Mettre à jour l'entrée <code>.mcp.json</code>`},a={body:`<strong>{{name}}</strong> est aussi activé globalement via le marketplace de plugins de Claude, ce qui masque cette installation au niveau du projet. Pour que cette carte passe en Actif, désactivez la version globale ci-dessous — elle peut être réactivée depuis Claude à tout moment.`,disableButton:`Désactiver <code>{{key}}</code>`},o={badge:`Orphelin`,removeButton:`Supprimer l'orphelin`},s={title:`Installer {{name}}`,computingChanges:`Calcul des modifications…`,filesHeading:`Fichiers qui seront modifiés`,prerequisites:`Prérequis`,autoInstall:`Installation automatique`,progress:`Progression`,installingPrereq:`Installation de {{name}}…`,prereqStartFailed:`Échec du démarrage : {{message}}`},c={title:`Désinstaller {{name}} ?`,body:`Cela annulera les entrées gérées par le plugin dans <code>.mcp.json</code> et supprimera les fichiers créés par le plugin. Votre code, votre historique et les autres plugins ne sont pas affectés.`},l={title:`Documentation`,dialogDescription:`Parcourez la documentation incluse de Specrails. Utilisez la barre latérale pour passer d'un guide à l'autre.`,sidebarEmpty:`Pas encore de docs`,indexEmpty:`La documentation apparaîtra ici. Le guide utilisateur est fourni avec l’app sous docs/guide/ ; déposez des fichiers Markdown sous ~/.specrails/docs/guide/ pour la personnaliser.`,categoryEmpty:`Aucun document dans cette catégorie pour l'instant.`,documentCount_one:`{{count}} document`,documentCount_other:`{{count}} documents`,categoryCount_one:`{{count}} catégorie`,categoryCount_other:`{{count}} catégories`,summary:`{{documents}} répartis dans {{categories}}.`,loadError:`Échec du chargement du document`},u={title:`Jira`,category:`Suivi des tickets`,description:`Adossez les specs de ce projet à un tableau Jira — synchronisation bidirectionnelle du statut, plus un commentaire à la fin d'un rail.`,connectedDescription:`Synchronisé avec {{key}}. Les specs reflètent votre tableau Jira dans les deux sens.`,connect:`Connecter`,connected:`Connecté`,manage:`Gérer`,modalTitle:`Se connecter à Jira`,manageTitle:`Connexion Jira`,bullet1:`Synchronisation bidirectionnelle du statut avec votre tableau Jira.`,bullet2:`Publie un commentaire à la fin d'un rail.`,bullet3:`Votre backlog Jira apparaît comme des specs sur le tableau.`,requires:`Nécessite un compte Jira Cloud ou Data Center.`},d={page:{title:`Plugins`,subtitle:`Outils globaux et intégrations de projet, gérés au même endroit.`,readyCount_one:`{{count}} prêt`,readyCount_other:`{{count}} prêts`,openWindow:`Open in window`},search:{placeholder:`Rechercher des plugins`},filters:{all:`tous`,global:`globaux`,project:`projet`},sections:{installed:`Installés`,available:`Disponibles`},scope:{global:`global`,project:`projet`},groups:{global:{title:`Globaux`,detail:`S’applique à tout Specrails`},project:{title:`Locaux au projet`,detail:`Configurés par dépôt`}},empty:{installedSearch:`Aucun plugin installé ne correspond à cette recherche.`,installed:`Aucun plugin installé pour le moment.`,availableSearch:`Aucun plugin disponible ne correspond à cette recherche.`,allInstalled:`Tous les plugins sont installés.`},actions:{install:`Installer`,installing:`Installation`,manage:`Gérer`,review:`Examiner`,cancel:`Annuler`},status:{attention:`attention requise`,active:`actif`,externalActive:`externe actif`,external:`externe`,installed:`installé`,available:`disponible`,configuredCount_one:`{{count}} configuré`,configuredCount_other:`{{count}} configurés`,installedCount_one:`{{count}} installé`,installedCount_other:`{{count}} installés`},catalog:{headroom:{description:`Optimise les lancements Codex et Claude via Headroom AI.`},jira:{description:`Synchronise les specs du projet avec un tableau Jira, le mapping des statuts et les commentaires de fin.`},serena:{description:`Navigation sémantique locale au projet via Serena MCP.`}},headroom:{title:`Headroom AI`,dialogDescription:`Gérez l’installation globale de Headroom et le routage par fournisseur.`,panelDescription:`Installé globalement, activé séparément pour Codex et Claude.`,issueCode:`Code : {{code}}`,confirmDetach:`Cela désactive le routage Specrails et arrête le proxy. L’installation Headroom système existante reste intacte.`,confirmUninstall:`Cela désactive les routes Codex et Claude, arrête le proxy et supprime l’outil Headroom géré par Specrails.`,metrics:{install:`Installation`,checking:`Vérification`,ready:`Prêt`,missing:`Manquant`,source:`Source`,system:`Système`,specrails:`Specrails`,none:`Aucun`,proxy:`Proxy`,starting:`Démarrage`,off:`Désactivé`},actions:{installWithUv:`Installer avec uv inclus`,disableAllRoutes:`Désactiver toutes les routes`,viewDiagnostics:`Voir les diagnostics`,detachHeadroom:`Détacher Headroom`,uninstallHeadroom:`Désinstaller Headroom`,detach:`Détacher`,uninstall:`Désinstaller`},port:{label:`Port du proxy`,apply:`Appliquer`},provider:{noProjectUsesProvider:`Aucun projet Specrails n’utilise ce fournisseur`,routedThroughHeadroom:`Routé via Headroom`,detectedExternalRoute:`Route externe détectée`,notRouted:`Non routé`},savings:{title:`Économies de tokens Headroom`,learningOn:`sortie mesurée`,waitingForOutputSamples:`sortie non mesurée`,baseline:`référence {{method}}`,updatedLive:`mis à jour en direct`,baselineSamples_one:`{{count}} échantillon de référence`,baselineSamples_other:`{{count}} échantillons de référence`,tokens:`tokens`,learning:`Aucune donnée`,off:`Désactivé`,requestDetail:`{{method}} · {{count}} requêtes`,requestCount:`{{count}} requêtes`,detected:`détecté`,totals:`Totaux`,input:`Entrée`,output:`Sortie`,processed:`Traités`,saved:`Économisés`,noData:`Aucune donnée`,inputSaved:`Entrée économisée`,outputSaved:`Sortie économisée`,inputSavingsActive:`Routage via Headroom`,statusInputOutput:`Entrée + sortie`,statusInputOnly:`Entrée active`,statusRouting:`Routage actif`,statusInactive:`Inactif`,methods:{estimated:`estimée`,measured:`mesurée`,none:`aucune`},waitingForShapedResponses:`Aucune réponse de sortie mesurée`,outputObserved:`{{value}} de sortie observés`,routeDisabled:`Route désactivée`},issues:{uv_missing_or_corrupt:{title:`Le uv inclus n’est pas disponible`,guidance:`Specrails n’a pas pu démarrer son runtime uv inclus. Réinstallez Specrails ou utilisez Réparer quand le runtime sera disponible.`},network_unavailable:{title:`Headroom n’a pas pu être téléchargé`,guidance:`Vérifiez votre connexion réseau puis réessayez. Specrails gardera l’installation isolée dans son propre dossier d’outils.`},package_resolution_failed:{title:`Les dépendances de Headroom n’ont pas pu être résolues`,guidance:`Réessayez l’installation. Si l’échec persiste, ouvrez les diagnostics et partagez la sortie uv.`},install_permission_failed:{title:`Specrails ne peut pas écrire dans son dossier d’outils`,guidance:`Vérifiez les permissions sous ~/.specrails/tools, puis réessayez l’installation.`},headroom_not_found_after_install:{title:`L’installation est terminée mais Headroom est introuvable`,guidance:`Lancez Réparer l’installation. Specrails réinstallera Headroom et vérifiera l’exécutable.`},learning_setup_failed:{title:`L’apprentissage Headroom n’a pas pu être activé`,guidance:`Headroom est installé, mais la calibration des économies de sortie n’est pas terminée. Continuez à utiliser le routage proxy pendant la collecte d’échantillons.`},metrics_unavailable:{title:`Les métriques Headroom ne sont pas encore disponibles`,guidance:`Commencez à router du trafic via Headroom. Specrails actualisera les économies de tokens dès que le proxy rapportera des échantillons.`},proxy_port_busy:{title:`Le port du proxy Headroom est déjà utilisé`,guidance:`Choisissez un autre port ou arrêtez le processus utilisant le port actuel, puis réessayez l’activation.`},proxy_unhealthy:{title:`Le proxy Headroom n’est pas devenu sain`,guidance:`Réessayez l’activation. Si cela se reproduit, ouvrez les diagnostics pour inspecter la sortie du proxy.`},provider_route_failed:{title:`La vérification de la route du fournisseur a échoué`,guidance:`Specrails n’a pas pu vérifier la route du fournisseur. Le fournisseur reste inactif ; réessayez après avoir consulté les diagnostics.`},provider_config_conflict:{title:`La configuration fournisseur existante entre en conflit avec Headroom`,guidance:`Consultez les diagnostics avant d’activer le routage système. Le routage géré par Specrails reste réversible.`},activation_partially_applied:{title:`L’activation n’a été appliquée que partiellement`,guidance:`Specrails a tenté un rollback. Consultez les diagnostics et réessayez le fournisseur concerné.`},not_installed:{title:`Headroom n’est pas installé`,guidance:`Installez Headroom d’abord, puis activez Codex ou Claude.`},uninstall_failed:{title:`Headroom n’a pas pu être désinstallé`,guidance:`Specrails a désactivé le routage Headroom mais n’a pas pu supprimer l’outil géré. Ouvrez les diagnostics puis réessayez.`},unknown:{title:`L’opération Headroom a échoué`,guidance:`Réessayez l’opération. Si cela se reproduit, ouvrez les diagnostics et partagez les détails.`}}},projectWizard:{configureJira:`Configurer Jira`,installSerena:`Installer Serena`,description:`Sélectionnez le projet où ce plugin local au projet doit être configuré.`,chooseProject:`Choisir un projet`,requiresClaudeProvider:`Nécessite le fournisseur Claude`,selectProjectToContinue:`Sélectionnez un projet pour continuer.`},serena:{loading:`Chargement de Serena…`,titleForProject:`Serena pour {{name}}`,description:`Installe la configuration MCP et l’état du plugin localement au projet. Les autres projets ne sont pas touchés.`,status:`Statut : {{status}}`,files:`Fichiers`,prerequisites:`Prérequis`},projectStatus:{installed:`installé`,deactivated:`désactivé`,"not-installed":`non installé`,orphan:`orphelin`,degraded:`dégradé`},diagnostics:{title:`Diagnostics Headroom`,description:`État technique de l’installation Headroom gérée par Specrails et du proxy.`}},f={page:e,card:t,toggle:n,cachedNotice:r,update:i,conflict:a,orphan:o,installDialog:s,uninstallDialog:c,docs:l,jiraCard:u,plugins:d};export{r as cachedNotice,t as card,a as conflict,f as default,l as docs,s as installDialog,u as jiraCard,o as orphan,e as page,d as plugins,n as toggle,c as uninstallDialog,i as update};
@@ -0,0 +1 @@
1
+ var e={title:`Integraciones`,subtitle:`Plugins por proyecto. Cada proyecto decide de forma independiente qué integraciones activar.`,selectProject:`Selecciona un proyecto para gestionar sus integraciones.`,deprecated:`Obsoleto`,loadError:`No se pudieron cargar los plugins.`,empty:`Esta build no incluye ningún plugin.`},t={statusActive:`Activo`,statusDeactivated:`Desactivado`,statusDegraded:`Degradado`,updateAvailable:`Actualización disponible`,requires:`Requiere: {{list}}`,deactivatedHint:`Instalado pero desactivado — Claude no lo cargará en la próxima sesión. Activa <strong>Activo</strong> para volver a habilitarlo.`,install:`Instalar`,uninstall:`Desinstalar`},n={titleActive:`Activo — haz clic para desactivar`,titleDeactivated:`Desactivado — haz clic para activar`},r={body:`Claude tiene el plugin del marketplace <strong>instalado pero deshabilitado</strong> en su caché. Puede que siga resolviendo el servidor desde <code>~/.claude/plugins/cache/...</code> aunque el interruptor esté apagado. Para forzar solo el ámbito de proyecto, desinstala el plugin del marketplace desde Claude:`,runInstruction:`Ejecútalo dentro de una sesión activa de Claude y luego reinicia Claude en este proyecto.`},i={body:`El manifiesto incluido ha cambiado desde que lo instalaste (probablemente un renombrado upstream). Reescribe <code>.mcp.json</code> con la entrada canónica — de forma quirúrgica: solo se tocan las claves propiedad del plugin.`,button:`Actualizar la entrada de <code>.mcp.json</code>`},a={body:`<strong>{{name}}</strong> también está habilitado globalmente a través del marketplace de plugins de Claude, lo que eclipsa esta instalación de ámbito de proyecto. Para que esta tarjeta pase a Activo, deshabilita la versión global más abajo — puede volver a habilitarse desde Claude en cualquier momento.`,disableButton:`Deshabilitar <code>{{key}}</code>`},o={badge:`Huérfano`,removeButton:`Eliminar huérfano`},s={title:`Instalar {{name}}`,computingChanges:`Calculando cambios…`,filesHeading:`Archivos que cambiarán`,prerequisites:`Requisitos previos`,autoInstall:`Instalación automática`,progress:`Progreso`,installingPrereq:`Instalando {{name}}…`,prereqStartFailed:`No se pudo iniciar: {{message}}`},c={title:`¿Desinstalar {{name}}?`,body:`Esto revertirá las entradas gestionadas por el plugin en <code>.mcp.json</code> y eliminará los archivos creados por el plugin. Tu código, tu historial y el resto de plugins no se ven afectados.`},l={title:`Documentación`,dialogDescription:`Consulta la documentación incluida de Specrails. Usa la barra lateral para cambiar entre guías.`,sidebarEmpty:`Aún no hay docs`,indexEmpty:`La documentación aparecerá aquí. La guía de usuario se incluye con la app en docs/guide/; añade archivos Markdown en ~/.specrails/docs/guide/ para personalizarla.`,categoryEmpty:`Aún no hay documentos en esta categoría.`,documentCount_one:`{{count}} documento`,documentCount_other:`{{count}} documentos`,categoryCount_one:`{{count}} categoría`,categoryCount_other:`{{count}} categorías`,summary:`{{documents}} en {{categories}}.`,loadError:`No se pudo cargar el documento`},u={title:`Jira`,category:`Seguimiento de incidencias`,description:`Respalda las specs de este proyecto con un tablero de Jira — sincronización bidireccional del estado y un comentario al terminar un rail.`,connectedDescription:`Sincronizado con {{key}}. Las specs reflejan tu tablero de Jira en ambos sentidos.`,connect:`Conectar`,connected:`Conectado`,manage:`Gestionar`,modalTitle:`Conectar con Jira`,manageTitle:`Conexión de Jira`,bullet1:`Sincronización bidireccional del estado con tu tablero de Jira.`,bullet2:`Publica un comentario al terminar un rail.`,bullet3:`Tu backlog de Jira aparece como specs en el tablero.`,requires:`Requiere una cuenta de Jira Cloud o Data Center.`},d={page:{title:`Plugins`,subtitle:`Herramientas globales e integraciones de proyecto, gestionadas desde un solo lugar.`,readyCount_one:`{{count}} listo`,readyCount_other:`{{count}} listos`,openWindow:`Abrir en ventana`},search:{placeholder:`Buscar plugins`},filters:{all:`todos`,global:`globales`,project:`proyecto`},sections:{installed:`Instalados`,available:`Disponibles`},scope:{global:`global`,project:`proyecto`},groups:{global:{title:`Globales`,detail:`Aplican a todo Specrails`},project:{title:`Locales de proyecto`,detail:`Configurados por repositorio`}},empty:{installedSearch:`No hay plugins instalados que coincidan con esta búsqueda.`,installed:`Todavía no hay plugins instalados.`,availableSearch:`No hay plugins disponibles que coincidan con esta búsqueda.`,allInstalled:`Todos los plugins están instalados.`},actions:{install:`Instalar`,installing:`Instalando`,manage:`Gestionar`,review:`Revisar`,cancel:`Cancelar`},status:{attention:`requiere atención`,active:`activo`,externalActive:`externo activo`,external:`externo`,installed:`instalado`,available:`disponible`,configuredCount_one:`{{count}} configurado`,configuredCount_other:`{{count}} configurados`,installedCount_one:`{{count}} instalado`,installedCount_other:`{{count}} instalados`},catalog:{headroom:{description:`Optimiza los lanzamientos de Codex y Claude con Headroom AI.`},jira:{description:`Sincroniza specs del proyecto con un tablero de Jira, mapeo de estados y comentarios de finalización.`},serena:{description:`Navegación semántica de código local al proyecto mediante Serena MCP.`}},headroom:{title:`Headroom AI`,dialogDescription:`Gestiona la instalación global de Headroom y el enrutado por proveedor.`,panelDescription:`Instalado globalmente, activado de forma independiente para Codex y Claude.`,issueCode:`Código: {{code}}`,confirmDetach:`Esto desactiva el enrutado de Specrails y detiene el proxy. La instalación existente de Headroom en el sistema queda intacta.`,confirmUninstall:`Esto desactiva las rutas de Codex y Claude, detiene el proxy y elimina la herramienta Headroom gestionada por Specrails.`,metrics:{install:`Instalación`,checking:`Comprobando`,ready:`Lista`,missing:`Falta`,source:`Origen`,system:`Sistema`,specrails:`Specrails`,none:`Ninguno`,proxy:`Proxy`,starting:`Iniciando`,off:`Apagado`},actions:{installWithUv:`Instalar con uv incluido`,disableAllRoutes:`Desactivar todas las rutas`,viewDiagnostics:`Ver diagnóstico`,detachHeadroom:`Desvincular Headroom`,uninstallHeadroom:`Desinstalar Headroom`,detach:`Desvincular`,uninstall:`Desinstalar`},port:{label:`Puerto del proxy`,apply:`Aplicar`},provider:{noProjectUsesProvider:`Ningún proyecto de Specrails usa este proveedor`,routedThroughHeadroom:`Enrutado mediante Headroom`,detectedExternalRoute:`Ruta externa detectada`,notRouted:`Sin enrutar`},savings:{title:`Ahorro de tokens Headroom`,learningOn:`salida medida`,waitingForOutputSamples:`salida sin medir`,baseline:`base {{method}}`,updatedLive:`actualizado en vivo`,baselineSamples_one:`{{count}} muestra base`,baselineSamples_other:`{{count}} muestras base`,tokens:`tokens`,learning:`Sin datos`,off:`Apagado`,requestDetail:`{{method}} · {{count}} solicitudes`,requestCount:`{{count}} solicitudes`,detected:`detectado`,totals:`Totales`,input:`Entrada`,output:`Salida`,processed:`Procesados`,saved:`Ahorrados`,noData:`Sin datos`,inputSaved:`Entrada ahorrada`,outputSaved:`Salida ahorrada`,inputSavingsActive:`Enrutando mediante Headroom`,statusInputOutput:`Entrada + salida`,statusInputOnly:`Entrada activa`,statusRouting:`Enrutando`,statusInactive:`Inactivo`,methods:{estimated:`estimada`,measured:`medida`,none:`sin medir`},waitingForShapedResponses:`Sin respuestas de salida medidas`,outputObserved:`{{value}} de salida observados`,routeDisabled:`Ruta desactivada`},issues:{uv_missing_or_corrupt:{title:`El uv incluido no está disponible`,guidance:`Specrails no pudo iniciar su runtime uv incluido. Reinstala Specrails o usa Reparar cuando el runtime esté disponible.`},network_unavailable:{title:`No se pudo descargar Headroom`,guidance:`Comprueba tu conexión de red y reintenta. Specrails mantendrá la instalación aislada en su propio directorio de herramientas.`},package_resolution_failed:{title:`No se pudieron resolver las dependencias de Headroom`,guidance:`Reintenta la instalación. Si sigue fallando, abre el diagnóstico y comparte la salida de uv.`},install_permission_failed:{title:`Specrails no puede escribir en su directorio de herramientas`,guidance:`Comprueba los permisos en ~/.specrails/tools y reintenta la instalación.`},headroom_not_found_after_install:{title:`La instalación terminó pero no se encontró Headroom`,guidance:`Ejecuta Reparar instalación. Specrails reinstalará Headroom y verificará el ejecutable.`},learning_setup_failed:{title:`No se pudo activar el aprendizaje de Headroom`,guidance:`Headroom está instalado, pero la calibración de ahorro de salida no terminó. Sigue usando el enrutado por proxy mientras las métricas recopilan muestras.`},metrics_unavailable:{title:`Las métricas de Headroom aún no están disponibles`,guidance:`Empieza a enrutar tráfico por Headroom. Specrails actualizará las métricas de ahorro cuando el proxy reporte muestras.`},proxy_port_busy:{title:`El puerto del proxy de Headroom ya está en uso`,guidance:`Elige otro puerto o detén el proceso que usa el puerto actual y reintenta la activación.`},proxy_unhealthy:{title:`El proxy de Headroom no llegó a estar sano`,guidance:`Reintenta la activación. Si se repite, abre el diagnóstico para inspeccionar la salida del proxy.`},provider_route_failed:{title:`Falló la verificación de ruta del proveedor`,guidance:`Specrails no pudo verificar la ruta del proveedor. El proveedor queda inactivo; reintenta tras revisar el diagnóstico.`},provider_config_conflict:{title:`La configuración existente del proveedor entra en conflicto con Headroom`,guidance:`Revisa el diagnóstico antes de activar el enrutado global. El enrutado gestionado por Specrails es reversible.`},activation_partially_applied:{title:`La activación solo se aplicó parcialmente`,guidance:`Specrails intentó revertir el cambio. Revisa el diagnóstico y reintenta el proveedor afectado.`},not_installed:{title:`Headroom no está instalado`,guidance:`Instala Headroom primero y después activa Codex o Claude.`},uninstall_failed:{title:`No se pudo desinstalar Headroom`,guidance:`Specrails desactivó el enrutado de Headroom pero no pudo eliminar la herramienta gestionada. Abre el diagnóstico y reintenta.`},unknown:{title:`Falló la operación de Headroom`,guidance:`Reintenta la operación. Si se repite, abre el diagnóstico y comparte los detalles.`}}},projectWizard:{configureJira:`Configurar Jira`,installSerena:`Instalar Serena`,description:`Selecciona el proyecto donde debe configurarse este plugin local de proyecto.`,chooseProject:`Elegir proyecto`,requiresClaudeProvider:`Requiere proveedor Claude`,selectProjectToContinue:`Selecciona un proyecto para continuar.`},serena:{loading:`Cargando Serena…`,titleForProject:`Serena para {{name}}`,description:`Instala la configuración MCP y el estado del plugin solo en este proyecto. Los demás proyectos no se tocan.`,status:`Estado: {{status}}`,files:`Archivos`,prerequisites:`Prerrequisitos`},projectStatus:{installed:`instalado`,deactivated:`desactivado`,"not-installed":`no instalado`,orphan:`huérfano`,degraded:`degradado`},diagnostics:{title:`Diagnóstico de Headroom`,description:`Estado técnico de la instalación de Headroom gestionada por Specrails y del proxy.`}},f={page:e,card:t,toggle:n,cachedNotice:r,update:i,conflict:a,orphan:o,installDialog:s,uninstallDialog:c,docs:l,jiraCard:u,plugins:d};export{r as cachedNotice,t as card,a as conflict,f as default,l as docs,s as installDialog,u as jiraCard,o as orphan,e as page,d as plugins,n as toggle,c as uninstallDialog,i as update};
@@ -0,0 +1 @@
1
+ var e={title:`集成`,subtitle:`按项目管理的插件。每个项目独立决定启用哪些集成。`,selectProject:`选择一个项目以管理集成。`,deprecated:`已弃用`,loadError:`加载插件失败。`,empty:`此构建未捆绑任何插件。`},t={statusActive:`已启用`,statusDeactivated:`已停用`,statusDegraded:`已降级`,updateAvailable:`有可用更新`,requires:`需要:{{list}}`,deactivatedHint:`已安装但已停用 — Claude 下次会话不会加载它。切换<strong>启用</strong>以重新启用。`,install:`安装`,uninstall:`卸载`},n={titleActive:`已启用 — 点击停用`,titleDeactivated:`已停用 — 点击启用`},r={body:`Claude 的缓存中<strong>已安装但已禁用</strong>该 marketplace 插件。即使开关已关闭,它仍可能从 <code>~/.claude/plugins/cache/...</code> 解析该服务器。如需强制仅项目范围,请从 Claude 卸载该 marketplace 插件:`,runInstruction:`在活动的 Claude 会话中运行,然后在此项目中重启 Claude。`},i={body:`自你安装以来,捆绑的 manifest 已发生变化(可能是上游重命名)。用规范条目重写 <code>.mcp.json</code> — 精准操作,仅改动插件所拥有的键。`,button:`更新 <code>.mcp.json</code> 条目`},a={body:`<strong>{{name}}</strong> 也已通过 Claude 的插件 marketplace 全局启用,这会遮蔽此项目范围的安装。要使此卡片变为“已启用”,请在下方禁用全局版本 — 随时可从 Claude 重新启用。`,disableButton:`禁用 <code>{{key}}</code>`},o={badge:`孤立`,removeButton:`移除孤立项`},s={title:`安装 {{name}}`,computingChanges:`正在计算变更…`,filesHeading:`将更改的文件`,prerequisites:`前置条件`,autoInstall:`自动安装`,progress:`进度`,installingPrereq:`正在安装 {{name}}…`,prereqStartFailed:`启动失败:{{message}}`},c={title:`卸载 {{name}}?`,body:`这将还原 <code>.mcp.json</code> 中由插件管理的条目,并删除插件创建的文件。你的代码、历史记录和其他插件不受影响。`},l={title:`文档`,dialogDescription:`浏览捆绑的 Specrails 文档。使用侧边栏在指南间切换。`,sidebarEmpty:`暂无文档`,indexEmpty:`文档将在此处显示。用户指南随应用提供,位于 docs/guide/;将 Markdown 文件放在 ~/.specrails/docs/guide/ 下即可自定义。`,categoryEmpty:`此分类下暂无文档。`,documentCount_one:`{{count}} 篇文档`,documentCount_other:`{{count}} 篇文档`,categoryCount_one:`{{count}} 个分类`,categoryCount_other:`{{count}} 个分类`,summary:`共 {{documents}},分布在 {{categories}}中。`,loadError:`加载文档失败`},u={title:`Jira`,category:`事务跟踪`,description:`用 Jira 看板支撑此项目的规格——状态双向同步,并在 rail 结束时发布完成评论。`,connectedDescription:`已与 {{key}} 同步。规格与你的 Jira 看板双向镜像。`,connect:`连接`,connected:`已连接`,manage:`管理`,modalTitle:`连接到 Jira`,manageTitle:`Jira 连接`,bullet1:`与你的 Jira 看板进行状态双向同步。`,bullet2:`rail 结束时发布完成评论。`,bullet3:`你的 Jira 待办会作为规格出现在看板上。`,requires:`需要 Jira Cloud 或 Data Center 账户。`},d={page:{title:`插件`,subtitle:`在一个位置管理全局工具和项目集成。`,readyCount_one:`{{count}} 个就绪`,readyCount_other:`{{count}} 个就绪`,openWindow:`Open in window`},search:{placeholder:`搜索插件`},filters:{all:`全部`,global:`全局`,project:`项目`},sections:{installed:`已安装`,available:`可用`},scope:{global:`全局`,project:`项目`},groups:{global:{title:`全局`,detail:`适用于整个 Specrails`},project:{title:`项目本地`,detail:`按仓库配置`}},empty:{installedSearch:`没有匹配此搜索的已安装插件。`,installed:`尚未安装插件。`,availableSearch:`没有匹配此搜索的可用插件。`,allInstalled:`所有插件都已安装。`},actions:{install:`安装`,installing:`安装中`,manage:`管理`,review:`检查`,cancel:`取消`},status:{attention:`需要注意`,active:`已启用`,externalActive:`外部已启用`,external:`外部`,installed:`已安装`,available:`可用`,configuredCount_one:`已配置 {{count}} 个`,configuredCount_other:`已配置 {{count}} 个`,installedCount_one:`已安装 {{count}} 个`,installedCount_other:`已安装 {{count}} 个`},catalog:{headroom:{description:`通过 Headroom AI 优化 Codex 和 Claude 启动。`},jira:{description:`将项目 specs 与 Jira 看板、状态映射和完成评论同步。`},serena:{description:`通过 Serena MCP 提供项目本地语义代码导航。`}},headroom:{title:`Headroom AI`,dialogDescription:`管理全局 Headroom 安装和按提供商路由。`,panelDescription:`全局安装,并可分别为 Codex 和 Claude 启用。`,issueCode:`代码:{{code}}`,confirmDetach:`这会禁用 Specrails 路由并停止代理。现有系统 Headroom 安装不会被修改。`,confirmUninstall:`这会禁用 Codex 和 Claude 路由,停止代理,并移除由 Specrails 管理的 Headroom 工具。`,metrics:{install:`安装`,checking:`检查中`,ready:`就绪`,missing:`缺失`,source:`来源`,system:`系统`,specrails:`Specrails`,none:`无`,proxy:`代理`,starting:`启动中`,off:`关闭`},actions:{installWithUv:`使用内置 uv 安装`,disableAllRoutes:`禁用所有路由`,viewDiagnostics:`查看诊断`,detachHeadroom:`解除 Headroom 绑定`,uninstallHeadroom:`卸载 Headroom`,detach:`解除绑定`,uninstall:`卸载`},port:{label:`代理端口`,apply:`应用`},provider:{noProjectUsesProvider:`没有 Specrails 项目使用此提供商`,routedThroughHeadroom:`通过 Headroom 路由`,detectedExternalRoute:`检测到外部路由`,notRouted:`未路由`},savings:{title:`Headroom Token 节省`,learningOn:`输出已测量`,waitingForOutputSamples:`输出未测量`,baseline:`{{method}}基线`,updatedLive:`实时更新`,baselineSamples_one:`{{count}} 个基线样本`,baselineSamples_other:`{{count}} 个基线样本`,tokens:`tokens`,learning:`无数据`,off:`关闭`,requestDetail:`{{method}} · {{count}} 次请求`,requestCount:`{{count}} 次请求`,detected:`已检测`,totals:`总计`,input:`输入`,output:`输出`,processed:`已处理`,saved:`已节省`,noData:`无数据`,inputSaved:`输入节省`,outputSaved:`输出节省`,inputSavingsActive:`正在通过 Headroom 路由`,statusInputOutput:`输入 + 输出`,statusInputOnly:`输入已启用`,statusRouting:`路由中`,statusInactive:`未启用`,methods:{estimated:`估算`,measured:`实测`,none:`无`},waitingForShapedResponses:`尚未测量输出响应`,outputObserved:`已观察到 {{value}} 输出`,routeDisabled:`路由已禁用`},issues:{uv_missing_or_corrupt:{title:`内置 uv 不可用`,guidance:`Specrails 无法启动内置 uv 运行时。请重新安装 Specrails,或在运行时可用后使用修复。`},network_unavailable:{title:`无法下载 Headroom`,guidance:`请检查网络连接并重试。Specrails 会将安装隔离在自己的工具目录中。`},package_resolution_failed:{title:`无法解析 Headroom 依赖`,guidance:`请重试安装。如果仍然失败,请打开诊断并分享 uv 输出。`},install_permission_failed:{title:`Specrails 无法写入工具目录`,guidance:`请检查 ~/.specrails/tools 下的权限,然后重试安装。`},headroom_not_found_after_install:{title:`安装完成但未找到 Headroom`,guidance:`运行修复安装。Specrails 将重新安装 Headroom 并验证可执行文件。`},learning_setup_failed:{title:`无法启用 Headroom 学习`,guidance:`Headroom 已安装,但输出节省校准尚未完成。请继续使用代理路由,等待指标收集样本。`},metrics_unavailable:{title:`Headroom 指标尚不可用`,guidance:`开始通过 Headroom 路由流量。代理报告样本后,Specrails 会刷新 token 节省指标。`},proxy_port_busy:{title:`Headroom 代理端口已被占用`,guidance:`请选择其他端口,或停止占用当前端口的进程,然后重试激活。`},proxy_unhealthy:{title:`Headroom 代理未变为健康状态`,guidance:`请重试激活。如果再次发生,请打开诊断检查代理输出。`},provider_route_failed:{title:`提供商路由验证失败`,guidance:`Specrails 无法验证提供商路由。提供商保持未激活;请查看诊断后重试。`},provider_config_conflict:{title:`现有提供商配置与 Headroom 冲突`,guidance:`启用系统级激活前请查看诊断。Specrails 管理的路由仍可回滚。`},activation_partially_applied:{title:`激活仅部分应用`,guidance:`Specrails 已尝试回滚。请查看诊断并重试受影响的提供商。`},not_installed:{title:`Headroom 未安装`,guidance:`请先安装 Headroom,然后再激活 Codex 或 Claude。`},uninstall_failed:{title:`无法卸载 Headroom`,guidance:`Specrails 已禁用 Headroom 路由,但无法移除托管工具。请打开诊断后重试卸载。`},unknown:{title:`Headroom 操作失败`,guidance:`请重试该操作。如果再次发生,请打开诊断并分享详情。`}}},projectWizard:{configureJira:`配置 Jira`,installSerena:`安装 Serena`,description:`选择要配置此项目级插件的项目。`,chooseProject:`选择项目`,requiresClaudeProvider:`需要 Claude 提供商`,selectProjectToContinue:`选择一个项目以继续。`},serena:{loading:`正在加载 Serena…`,titleForProject:`{{name}} 的 Serena`,description:`安装项目本地 MCP 配置和插件状态。其他项目不会被修改。`,status:`状态:{{status}}`,files:`文件`,prerequisites:`先决条件`},projectStatus:{installed:`已安装`,deactivated:`已停用`,"not-installed":`未安装`,orphan:`孤立`,degraded:`降级`},diagnostics:{title:`Headroom 诊断`,description:`Specrails 管理的 Headroom 安装和代理的技术状态。`}},f={page:e,card:t,toggle:n,cachedNotice:r,update:i,conflict:a,orphan:o,installDialog:s,uninstallDialog:c,docs:l,jiraCard:u,plugins:d};export{r as cachedNotice,t as card,a as conflict,f as default,l as docs,s as installDialog,u as jiraCard,o as orphan,e as page,d as plugins,n as toggle,c as uninstallDialog,i as update};
@@ -0,0 +1 @@
1
+ var e={title:`Integrações`,subtitle:`Plugins por projeto. Cada projeto decide de forma independente que integrações ativar.`,selectProject:`Selecione um projeto para gerir integrações.`,deprecated:`Descontinuado`,loadError:`Falha ao carregar os plugins.`,empty:`Esta build não inclui nenhum plugin.`},t={statusActive:`Ativo`,statusDeactivated:`Desativado`,statusDegraded:`Degradado`,updateAvailable:`Atualização disponível`,requires:`Requer: {{list}}`,deactivatedHint:`Instalado mas desativado — o Claude não o vai carregar na próxima sessão. Alterne <strong>Ativo</strong> para reativar.`,install:`Instalar`,uninstall:`Desinstalar`},n={titleActive:`Ativo — clique para desativar`,titleDeactivated:`Desativado — clique para ativar`},r={body:`O Claude tem o plugin do marketplace <strong>instalado mas desativado</strong> na cache. Pode ainda resolver o servidor a partir de <code>~/.claude/plugins/cache/...</code> mesmo com o toggle desligado. Para forçar apenas o âmbito do projeto, desinstale o plugin do marketplace no Claude:`,runInstruction:`Execute numa sessão ativa do Claude e depois reinicie o Claude neste projeto.`},i={body:`O manifesto incluído mudou desde a instalação (provavelmente um rename a montante). Reescreva o <code>.mcp.json</code> com a entrada canónica — de forma cirúrgica, só as chaves do plugin são tocadas.`,button:`Atualizar entrada no <code>.mcp.json</code>`},a={body:`<strong>{{name}}</strong> também está ativado globalmente via marketplace de plugins do Claude, o que sobrepõe esta instalação no âmbito do projeto. Para este cartão ficar Ativo, desative a versão global abaixo — pode ser reativada no Claude a qualquer momento.`,disableButton:`Desativar <code>{{key}}</code>`},o={badge:`Órfão`,removeButton:`Remover órfão`},s={title:`Instalar {{name}}`,computingChanges:`A calcular alterações…`,filesHeading:`Ficheiros que vão mudar`,prerequisites:`Pré-requisitos`,autoInstall:`Instalação automática`,progress:`Progresso`,installingPrereq:`A instalar {{name}}…`,prereqStartFailed:`Falha ao iniciar: {{message}}`},c={title:`Desinstalar {{name}}?`,body:`Isto vai reverter as entradas geridas pelo plugin no <code>.mcp.json</code> e remover quaisquer ficheiros criados pelo plugin. O seu código, histórico e outros plugins não são afetados.`},l={title:`Documentação`,dialogDescription:`Consulte a documentação incluída do Specrails. Use a barra lateral para alternar entre guias.`,sidebarEmpty:`Ainda não há docs`,indexEmpty:`A documentação aparecerá aqui. O guia do utilizador é incluído na app em docs/guide/; adicione ficheiros Markdown em ~/.specrails/docs/guide/ para o personalizar.`,categoryEmpty:`Ainda não há documentos nesta categoria.`,documentCount_one:`{{count}} documento`,documentCount_other:`{{count}} documentos`,categoryCount_one:`{{count}} categoria`,categoryCount_other:`{{count}} categorias`,summary:`{{documents}} em {{categories}}.`,loadError:`Falha ao carregar o documento`},u={title:`Jira`,category:`Acompanhamento de tickets`,description:`Apoie as specs deste projeto num quadro Jira — sincronização bidirecional do estado e um comentário quando um rail termina.`,connectedDescription:`Sincronizado com {{key}}. As specs refletem o seu quadro Jira nos dois sentidos.`,connect:`Conectar`,connected:`Conectado`,manage:`Gerir`,modalTitle:`Conectar ao Jira`,manageTitle:`Ligação Jira`,bullet1:`Sincronização bidirecional do estado com o seu quadro Jira.`,bullet2:`Publica um comentário quando um rail termina.`,bullet3:`O seu backlog do Jira aparece como specs no quadro.`,requires:`Requer uma conta Jira Cloud ou Data Center.`},d={page:{title:`Plugins`,subtitle:`Ferramentas globais e integrações de projeto, geridas num só lugar.`,readyCount_one:`{{count}} pronto`,readyCount_other:`{{count}} prontos`,openWindow:`Open in window`},search:{placeholder:`Procurar plugins`},filters:{all:`todos`,global:`globais`,project:`projeto`},sections:{installed:`Instalados`,available:`Disponíveis`},scope:{global:`global`,project:`projeto`},groups:{global:{title:`Globais`,detail:`Aplica-se a todo o Specrails`},project:{title:`Locais do projeto`,detail:`Configurados por repositório`}},empty:{installedSearch:`Nenhum plugin instalado corresponde a esta pesquisa.`,installed:`Ainda não há plugins instalados.`,availableSearch:`Nenhum plugin disponível corresponde a esta pesquisa.`,allInstalled:`Todos os plugins estão instalados.`},actions:{install:`Instalar`,installing:`A instalar`,manage:`Gerir`,review:`Rever`,cancel:`Cancelar`},status:{attention:`atenção`,active:`ativo`,externalActive:`externo ativo`,external:`externo`,installed:`instalado`,available:`disponível`,configuredCount_one:`{{count}} configurado`,configuredCount_other:`{{count}} configurados`,installedCount_one:`{{count}} instalado`,installedCount_other:`{{count}} instalados`},catalog:{headroom:{description:`Otimiza lançamentos do Codex e do Claude através do Headroom AI.`},jira:{description:`Sincroniza specs do projeto com um quadro Jira, mapeamento de estados e comentários de conclusão.`},serena:{description:`Navegação semântica de código local ao projeto através do Serena MCP.`}},headroom:{title:`Headroom AI`,dialogDescription:`Gere a instalação global do Headroom e o encaminhamento por fornecedor.`,panelDescription:`Instalado globalmente, ativado de forma independente para Codex e Claude.`,issueCode:`Código: {{code}}`,confirmDetach:`Isto desativa o encaminhamento do Specrails e para o proxy. A instalação existente do Headroom no sistema fica intacta.`,confirmUninstall:`Isto desativa as rotas Codex e Claude, para o proxy e remove a ferramenta Headroom gerida pelo Specrails.`,metrics:{install:`Instalação`,checking:`A verificar`,ready:`Pronto`,missing:`Em falta`,source:`Origem`,system:`Sistema`,specrails:`Specrails`,none:`Nenhum`,proxy:`Proxy`,starting:`A iniciar`,off:`Desligado`},actions:{installWithUv:`Instalar com uv incluído`,disableAllRoutes:`Desativar todas as rotas`,viewDiagnostics:`Ver diagnóstico`,detachHeadroom:`Desassociar Headroom`,uninstallHeadroom:`Desinstalar Headroom`,detach:`Desassociar`,uninstall:`Desinstalar`},port:{label:`Porta do proxy`,apply:`Aplicar`},provider:{noProjectUsesProvider:`Nenhum projeto Specrails usa este fornecedor`,routedThroughHeadroom:`Encaminhado pelo Headroom`,detectedExternalRoute:`Rota externa detetada`,notRouted:`Sem rota`},savings:{title:`Poupança de tokens Headroom`,learningOn:`saída medida`,waitingForOutputSamples:`saída sem medição`,baseline:`base {{method}}`,updatedLive:`atualizado em direto`,baselineSamples_one:`{{count}} amostra base`,baselineSamples_other:`{{count}} amostras base`,tokens:`tokens`,learning:`Sem dados`,off:`Desligado`,requestDetail:`{{method}} · {{count}} pedidos`,requestCount:`{{count}} pedidos`,detected:`detetado`,totals:`Totais`,input:`Entrada`,output:`Saída`,processed:`Processados`,saved:`Poupados`,noData:`Sem dados`,inputSaved:`Entrada poupada`,outputSaved:`Saída poupada`,inputSavingsActive:`A encaminhar pelo Headroom`,statusInputOutput:`Entrada + saída`,statusInputOnly:`Entrada ativa`,statusRouting:`Encaminhamento ativo`,statusInactive:`Inativo`,methods:{estimated:`estimada`,measured:`medida`,none:`nenhuma`},waitingForShapedResponses:`Sem respostas de saída medidas`,outputObserved:`{{value}} de saída observados`,routeDisabled:`Rota desativada`},issues:{uv_missing_or_corrupt:{title:`O uv incluído não está disponível`,guidance:`O Specrails não conseguiu iniciar o runtime uv incluído. Reinstale o Specrails ou use Reparar quando o runtime estiver disponível.`},network_unavailable:{title:`Não foi possível descarregar o Headroom`,guidance:`Verifique a ligação de rede e tente novamente. O Specrails manterá a instalação isolada no seu próprio diretório de ferramentas.`},package_resolution_failed:{title:`Não foi possível resolver as dependências do Headroom`,guidance:`Tente instalar novamente. Se continuar a falhar, abra o diagnóstico e partilhe a saída do uv.`},install_permission_failed:{title:`O Specrails não consegue escrever no diretório de ferramentas`,guidance:`Verifique as permissões em ~/.specrails/tools e tente instalar novamente.`},headroom_not_found_after_install:{title:`A instalação terminou mas o Headroom não foi encontrado`,guidance:`Execute Reparar instalação. O Specrails reinstalará o Headroom e verificará o executável.`},learning_setup_failed:{title:`Não foi possível ativar a aprendizagem do Headroom`,guidance:`O Headroom está instalado, mas a calibração das poupanças de saída não terminou. Continue a usar o proxy enquanto as métricas recolhem amostras.`},metrics_unavailable:{title:`As métricas do Headroom ainda não estão disponíveis`,guidance:`Comece a encaminhar tráfego pelo Headroom. O Specrails atualizará as métricas de poupança assim que o proxy reportar amostras.`},proxy_port_busy:{title:`A porta do proxy Headroom já está em uso`,guidance:`Escolha outra porta ou pare o processo que usa a porta atual e tente ativar novamente.`},proxy_unhealthy:{title:`O proxy Headroom não ficou saudável`,guidance:`Tente ativar novamente. Se se repetir, abra o diagnóstico para inspecionar a saída do proxy.`},provider_route_failed:{title:`Falhou a verificação da rota do fornecedor`,guidance:`O Specrails não conseguiu verificar a rota do fornecedor. O fornecedor permanece inativo; tente novamente após ver o diagnóstico.`},provider_config_conflict:{title:`A configuração existente do fornecedor conflita com o Headroom`,guidance:`Reveja o diagnóstico antes de ativar o encaminhamento global. O encaminhamento gerido pelo Specrails continua reversível.`},activation_partially_applied:{title:`A ativação foi aplicada apenas parcialmente`,guidance:`O Specrails tentou reverter. Reveja o diagnóstico e tente novamente o fornecedor afetado.`},not_installed:{title:`O Headroom não está instalado`,guidance:`Instale primeiro o Headroom e depois ative Codex ou Claude.`},uninstall_failed:{title:`Não foi possível desinstalar o Headroom`,guidance:`O Specrails desativou o encaminhamento do Headroom mas não conseguiu remover a ferramenta gerida. Abra o diagnóstico e tente novamente.`},unknown:{title:`A operação do Headroom falhou`,guidance:`Tente a operação novamente. Se se repetir, abra o diagnóstico e partilhe os detalhes.`}}},projectWizard:{configureJira:`Configurar Jira`,installSerena:`Instalar Serena`,description:`Selecione o projeto onde este plugin local do projeto deve ser configurado.`,chooseProject:`Escolher projeto`,requiresClaudeProvider:`Requer fornecedor Claude`,selectProjectToContinue:`Selecione um projeto para continuar.`},serena:{loading:`A carregar Serena…`,titleForProject:`Serena para {{name}}`,description:`Instala a configuração MCP e o estado do plugin localmente no projeto. Outros projetos não são alterados.`,status:`Estado: {{status}}`,files:`Ficheiros`,prerequisites:`Pré-requisitos`},projectStatus:{installed:`instalado`,deactivated:`desativado`,"not-installed":`não instalado`,orphan:`órfão`,degraded:`degradado`},diagnostics:{title:`Diagnóstico do Headroom`,description:`Estado técnico da instalação Headroom gerida pelo Specrails e do proxy.`}},f={page:e,card:t,toggle:n,cachedNotice:r,update:i,conflict:a,orphan:o,installDialog:s,uninstallDialog:c,docs:l,jiraCard:u,plugins:d};export{r as cachedNotice,t as card,a as conflict,f as default,l as docs,s as installDialog,u as jiraCard,o as orphan,e as page,d as plugins,n as toggle,c as uninstallDialog,i as update};
@@ -0,0 +1 @@
1
+ var e={title:`Integrationen`,subtitle:`Plugins pro Projekt. Jedes Projekt entscheidet unabhängig, welche Integrationen aktiviert werden.`,selectProject:`Wähle ein Projekt, um Integrationen zu verwalten.`,deprecated:`Veraltet`,loadError:`Plugins konnten nicht geladen werden.`,empty:`In diesem Build sind keine Plugins gebündelt.`},t={statusActive:`Aktiv`,statusDeactivated:`Deaktiviert`,statusDegraded:`Beeinträchtigt`,updateAvailable:`Update verfügbar`,requires:`Erfordert: {{list}}`,deactivatedHint:`Installiert, aber deaktiviert – Claude lädt es in der nächsten Session nicht. Schalte auf <strong>Aktiv</strong>, um es wieder zu aktivieren.`,install:`Installieren`,uninstall:`Deinstallieren`},n={titleActive:`Aktiv – zum Deaktivieren klicken`,titleDeactivated:`Deaktiviert – zum Aktivieren klicken`},r={body:`Claude hat das Marketplace-Plugin im Cache <strong>installiert, aber deaktiviert</strong>. Es kann den Server weiterhin über <code>~/.claude/plugins/cache/...</code> auflösen, obwohl der Schalter aus ist. Um ausschließlich die projektbezogene Variante zu erzwingen, deinstalliere das Marketplace-Plugin aus Claude:`,runInstruction:`In einer aktiven Claude-Session ausführen, dann Claude in diesem Projekt neu starten.`},i={body:`Das gebündelte Manifest hat sich seit der Installation geändert (vermutlich eine Upstream-Umbenennung). Schreibe <code>.mcp.json</code> mit dem kanonischen Eintrag neu – chirurgisch, nur die vom Plugin verwalteten Schlüssel werden angefasst.`,button:`<code>.mcp.json</code>-Eintrag aktualisieren`},a={body:`<strong>{{name}}</strong> ist zusätzlich global über Claudes Plugin-Marketplace aktiviert, was diese projektbezogene Installation überlagert. Damit diese Karte „Aktiv“ wird, deaktiviere unten die globale Version – sie kann jederzeit wieder über Claude aktiviert werden.`,disableButton:`<code>{{key}}</code> deaktivieren`},o={badge:`Verwaist`,removeButton:`Verwaisten Eintrag entfernen`},s={title:`{{name}} installieren`,computingChanges:`Änderungen werden berechnet…`,filesHeading:`Dateien, die geändert werden`,prerequisites:`Voraussetzungen`,autoInstall:`Automatisch installieren`,progress:`Fortschritt`,installingPrereq:`{{name}} wird installiert…`,prereqStartFailed:`Start fehlgeschlagen: {{message}}`},c={title:`{{name}} deinstallieren?`,body:`Dies setzt die vom Plugin verwalteten Einträge in <code>.mcp.json</code> zurück und entfernt alle vom Plugin erstellten Dateien. Dein Code, deine Historie und andere Plugins sind nicht betroffen.`},l={title:`Dokumentation`,dialogDescription:`Durchstöbere die mitgelieferte Specrails-Dokumentation. Wechsle über die Seitenleiste zwischen den Guides.`,sidebarEmpty:`Noch keine Doku`,indexEmpty:`Die Dokumentation erscheint hier. Das Benutzerhandbuch wird mit der App unter docs/guide/ ausgeliefert; lege Markdown-Dateien unter ~/.specrails/docs/guide/ ab, um es anzupassen.`,categoryEmpty:`Noch keine Dokumente in dieser Kategorie.`,documentCount_one:`{{count}} Dokument`,documentCount_other:`{{count}} Dokumente`,categoryCount_one:`{{count}} Kategorie`,categoryCount_other:`{{count}} Kategorien`,summary:`{{documents}} in {{categories}}.`,loadError:`Dokument konnte nicht geladen werden`},u={title:`Jira`,category:`Vorgangsverfolgung`,description:`Hinterlege die Specs dieses Projekts mit einem Jira-Board — bidirektionale Statussynchronisierung plus ein Kommentar am Ende eines Rails.`,connectedDescription:`Synchronisiert mit {{key}}. Specs spiegeln dein Jira-Board in beide Richtungen.`,connect:`Verbinden`,connected:`Verbunden`,manage:`Verwalten`,modalTitle:`Mit Jira verbinden`,manageTitle:`Jira-Verbindung`,bullet1:`Bidirektionale Statussynchronisierung mit deinem Jira-Board.`,bullet2:`Postet einen Kommentar, wenn ein Rail abschließt.`,bullet3:`Dein Jira-Backlog erscheint als Specs auf dem Board.`,requires:`Erfordert ein Jira-Cloud- oder Data-Center-Konto.`},d={page:{title:`Plugins`,subtitle:`Globale Tools und Projektintegrationen, zentral verwaltet.`,readyCount_one:`{{count}} bereit`,readyCount_other:`{{count}} bereit`,openWindow:`Open in window`},search:{placeholder:`Plugins suchen`},filters:{all:`alle`,global:`global`,project:`projekt`},sections:{installed:`Installiert`,available:`Verfügbar`},scope:{global:`global`,project:`projekt`},groups:{global:{title:`Global`,detail:`Gilt für ganz Specrails`},project:{title:`Projektlokal`,detail:`Pro Repository konfiguriert`}},empty:{installedSearch:`Keine installierten Plugins passen zu dieser Suche.`,installed:`Noch keine Plugins installiert.`,availableSearch:`Keine verfügbaren Plugins passen zu dieser Suche.`,allInstalled:`Alle Plugins sind installiert.`},actions:{install:`Installieren`,installing:`Installieren`,manage:`Verwalten`,review:`Prüfen`,cancel:`Abbrechen`},status:{attention:`Achtung`,active:`aktiv`,externalActive:`extern aktiv`,external:`extern`,installed:`installiert`,available:`verfügbar`,configuredCount_one:`{{count}} konfiguriert`,configuredCount_other:`{{count}} konfiguriert`,installedCount_one:`{{count}} installiert`,installedCount_other:`{{count}} installiert`},catalog:{headroom:{description:`Optimiert Codex- und Claude-Starts mit Headroom AI.`},jira:{description:`Synchronisiert Projektspecs mit einem Jira-Board, Statusmapping und Abschlusskommentaren.`},serena:{description:`Projektlokale semantische Code-Navigation über Serena MCP.`}},headroom:{title:`Headroom AI`,dialogDescription:`Globale Headroom-Installation und Provider-Routing verwalten.`,panelDescription:`Global installiert, separat für Codex und Claude aktivierbar.`,issueCode:`Code: {{code}}`,confirmDetach:`Dies deaktiviert Specrails-Routing und stoppt den Proxy. Die bestehende Systeminstallation von Headroom bleibt unverändert.`,confirmUninstall:`Dies deaktiviert Codex- und Claude-Routen, stoppt den Proxy und entfernt das von Specrails verwaltete Headroom-Tool.`,metrics:{install:`Installation`,checking:`Prüfen`,ready:`Bereit`,missing:`Fehlt`,source:`Quelle`,system:`System`,specrails:`Specrails`,none:`Keine`,proxy:`Proxy`,starting:`Startet`,off:`Aus`},actions:{installWithUv:`Mit gebündeltem uv installieren`,disableAllRoutes:`Alle Routen deaktivieren`,viewDiagnostics:`Diagnose anzeigen`,detachHeadroom:`Headroom trennen`,uninstallHeadroom:`Headroom deinstallieren`,detach:`Trennen`,uninstall:`Deinstallieren`},port:{label:`Proxy-Port`,apply:`Anwenden`},provider:{noProjectUsesProvider:`Kein Specrails-Projekt nutzt diesen Provider`,routedThroughHeadroom:`Über Headroom geroutet`,detectedExternalRoute:`Externe Route erkannt`,notRouted:`Nicht geroutet`},savings:{title:`Headroom-Tokenersparnis`,learningOn:`Ausgabe gemessen`,waitingForOutputSamples:`Ausgabe nicht gemessen`,baseline:`{{method}}e Basislinie`,updatedLive:`live aktualisiert`,baselineSamples_one:`{{count}} Basisbeispiel`,baselineSamples_other:`{{count}} Basisbeispiele`,tokens:`Tokens`,learning:`Keine Daten`,off:`Aus`,requestDetail:`{{method}} · {{count}} Anfragen`,requestCount:`{{count}} Anfragen`,detected:`erkannt`,totals:`Gesamt`,input:`Eingabe`,output:`Ausgabe`,processed:`Verarbeitet`,saved:`Gespart`,noData:`Keine Daten`,inputSaved:`Eingabe gespart`,outputSaved:`Ausgabe gespart`,inputSavingsActive:`Routing über Headroom`,statusInputOutput:`Eingabe + Ausgabe`,statusInputOnly:`Eingabe aktiv`,statusRouting:`Routing aktiv`,statusInactive:`Inaktiv`,methods:{estimated:`geschätzt`,measured:`gemessen`,none:`keine`},waitingForShapedResponses:`Noch keine Ausgabeantworten gemessen`,outputObserved:`{{value}} Ausgabe beobachtet`,routeDisabled:`Route deaktiviert`},issues:{uv_missing_or_corrupt:{title:`Gebündeltes uv ist nicht verfügbar`,guidance:`Specrails konnte die gebündelte uv-Laufzeit nicht starten. Installiere Specrails neu oder nutze Reparieren, sobald die Laufzeit verfügbar ist.`},network_unavailable:{title:`Headroom konnte nicht heruntergeladen werden`,guidance:`Prüfe die Netzwerkverbindung und versuche es erneut. Specrails hält die Installation isoliert in seinem eigenen Tool-Verzeichnis.`},package_resolution_failed:{title:`Headroom-Abhängigkeiten konnten nicht aufgelöst werden`,guidance:`Versuche die Installation erneut. Wenn sie weiter fehlschlägt, öffne die Diagnose und teile die uv-Ausgabe.`},install_permission_failed:{title:`Specrails kann nicht in sein Tool-Verzeichnis schreiben`,guidance:`Prüfe die Berechtigungen unter ~/.specrails/tools und versuche die Installation erneut.`},headroom_not_found_after_install:{title:`Installation abgeschlossen, aber Headroom wurde nicht gefunden`,guidance:`Führe Installation reparieren aus. Specrails installiert Headroom neu und prüft die ausführbare Datei.`},learning_setup_failed:{title:`Headroom-Lernen konnte nicht aktiviert werden`,guidance:`Headroom ist installiert, aber die Kalibrierung der Ausgabeersparnis wurde nicht abgeschlossen. Nutze weiter das Proxy-Routing, während Metriken Beispiele sammeln.`},metrics_unavailable:{title:`Headroom-Metriken sind noch nicht verfügbar`,guidance:`Route Traffic über Headroom. Specrails aktualisiert Token-Ersparnisse, sobald der Proxy Beispiele meldet.`},proxy_port_busy:{title:`Der Headroom-Proxy-Port ist bereits belegt`,guidance:`Wähle einen anderen Port oder stoppe den Prozess auf dem aktuellen Port und versuche die Aktivierung erneut.`},proxy_unhealthy:{title:`Der Headroom-Proxy wurde nicht fehlerfrei`,guidance:`Versuche die Aktivierung erneut. Wenn es wieder passiert, öffne die Diagnose und prüfe die Proxy-Ausgabe.`},provider_route_failed:{title:`Provider-Routenprüfung fehlgeschlagen`,guidance:`Specrails konnte die Provider-Route nicht prüfen. Der Provider bleibt inaktiv; versuche es nach der Diagnose erneut.`},provider_config_conflict:{title:`Bestehende Provider-Konfiguration kollidiert mit Headroom`,guidance:`Prüfe die Diagnose, bevor du systemweites Routing aktivierst. Von Specrails verwaltetes Routing bleibt rückgängig machbar.`},activation_partially_applied:{title:`Aktivierung wurde nur teilweise angewendet`,guidance:`Specrails hat ein Rollback versucht. Prüfe die Diagnose und versuche den betroffenen Provider erneut.`},not_installed:{title:`Headroom ist nicht installiert`,guidance:`Installiere zuerst Headroom und aktiviere dann Codex oder Claude.`},uninstall_failed:{title:`Headroom konnte nicht deinstalliert werden`,guidance:`Specrails hat Headroom-Routing deaktiviert, konnte das verwaltete Tool aber nicht entfernen. Öffne die Diagnose und versuche es erneut.`},unknown:{title:`Headroom-Vorgang fehlgeschlagen`,guidance:`Versuche den Vorgang erneut. Wenn es wieder passiert, öffne die Diagnose und teile die Details.`}}},projectWizard:{configureJira:`Jira konfigurieren`,installSerena:`Serena installieren`,description:`Wähle das Projekt aus, in dem dieses projektbezogene Plugin konfiguriert werden soll.`,chooseProject:`Projekt wählen`,requiresClaudeProvider:`Erfordert Claude-Provider`,selectProjectToContinue:`Wähle ein Projekt aus, um fortzufahren.`},serena:{loading:`Serena wird geladen…`,titleForProject:`Serena für {{name}}`,description:`Installiert projektlokale MCP-Konfiguration und Plugin-Status. Andere Projekte bleiben unverändert.`,status:`Status: {{status}}`,files:`Dateien`,prerequisites:`Voraussetzungen`},projectStatus:{installed:`installiert`,deactivated:`deaktiviert`,"not-installed":`nicht installiert`,orphan:`verwaist`,degraded:`beeinträchtigt`},diagnostics:{title:`Headroom-Diagnose`,description:`Technischer Status der von Specrails verwalteten Headroom-Installation und des Proxys.`}},f={page:e,card:t,toggle:n,cachedNotice:r,update:i,conflict:a,orphan:o,installDialog:s,uninstallDialog:c,docs:l,jiraCard:u,plugins:d};export{r as cachedNotice,t as card,a as conflict,f as default,l as docs,s as installDialog,u as jiraCard,o as orphan,e as page,d as plugins,n as toggle,c as uninstallDialog,i as update};
@@ -0,0 +1 @@
1
+ var e={title:`インテグレーション`,subtitle:`プロジェクトごとのプラグイン。どのインテグレーションを有効にするかは各プロジェクトが独立して決定します。`,selectProject:`インテグレーションを管理するプロジェクトを選択してください。`,deprecated:`非推奨`,loadError:`プラグインの読み込みに失敗しました。`,empty:`このビルドにはプラグインが同梱されていません。`},t={statusActive:`有効`,statusDeactivated:`無効`,statusDegraded:`劣化`,updateAvailable:`アップデートあり`,requires:`必要条件: {{list}}`,deactivatedHint:`インストール済みですが無効です — 次のセッションで Claude は読み込みません。再有効化するには<strong>有効</strong>に切り替えてください。`,install:`インストール`,uninstall:`アンインストール`},n={titleActive:`有効 — クリックで無効化`,titleDeactivated:`無効 — クリックで有効化`},r={body:`Claude のキャッシュにはマーケットプレイス版プラグインが<strong>インストール済みかつ無効</strong>の状態で残っています。トグルがオフでも <code>~/.claude/plugins/cache/...</code> からサーバーを解決する可能性があります。プロジェクトスコープのみに限定するには、Claude からマーケットプレイス版プラグインをアンインストールしてください:`,runInstruction:`アクティブな Claude セッション内で実行し、その後このプロジェクトで Claude を再起動してください。`},i={body:`インストール後に同梱マニフェストが変更されました (おそらく上流での名前変更)。<code>.mcp.json</code> を正規のエントリで書き直します — 外科的な変更で、プラグインが所有するキーのみが対象です。`,button:`<code>.mcp.json</code> エントリを更新`},a={body:`<strong>{{name}}</strong> は Claude のプラグインマーケットプレイス経由でグローバルにも有効になっており、このプロジェクトスコープのインストールを覆い隠しています。このカードを有効にするには、下のグローバル版を無効にしてください — Claude からいつでも再有効化できます。`,disableButton:`<code>{{key}}</code> を無効化`},o={badge:`孤立`,removeButton:`孤立エントリを削除`},s={title:`{{name}} をインストール`,computingChanges:`変更内容を計算中…`,filesHeading:`変更されるファイル`,prerequisites:`前提条件`,autoInstall:`自動インストール`,progress:`進行状況`,installingPrereq:`{{name}} をインストール中…`,prereqStartFailed:`開始に失敗しました: {{message}}`},c={title:`{{name}} をアンインストールしますか?`,body:`<code>.mcp.json</code> 内のプラグイン管理エントリを元に戻し、プラグインが作成したファイルを削除します。コード、履歴、他のプラグインには影響しません。`},l={title:`ドキュメント`,dialogDescription:`同梱の Specrails ドキュメントを閲覧できます。サイドバーでガイドを切り替えてください。`,sidebarEmpty:`ドキュメントはまだありません`,indexEmpty:`ドキュメントはここに表示されます。ユーザーガイドはアプリに同梱され docs/guide/ にあります。~/.specrails/docs/guide/ 以下に Markdown ファイルを置くとカスタマイズできます。`,categoryEmpty:`このカテゴリにはまだドキュメントがありません。`,documentCount_one:`{{count}} 件のドキュメント`,documentCount_other:`{{count}} 件のドキュメント`,categoryCount_one:`{{count}} カテゴリ`,categoryCount_other:`{{count}} カテゴリ`,summary:`{{categories}}にわたって{{documents}}。`,loadError:`ドキュメントの読み込みに失敗しました`},u={title:`Jira`,category:`課題トラッキング`,description:`このプロジェクトのスペックを Jira ボードで裏付け — ステータスを双方向同期し、rail 完了時にコメントを投稿します。`,connectedDescription:`{{key}} と同期済み。スペックは Jira ボードと双方向でミラーされます。`,connect:`接続`,connected:`接続済み`,manage:`管理`,modalTitle:`Jira に接続`,manageTitle:`Jira 接続`,bullet1:`Jira ボードとステータスを双方向同期。`,bullet2:`rail 完了時にコメントを投稿。`,bullet3:`Jira のバックログがボードにスペックとして表示されます。`,requires:`Jira Cloud または Data Center のアカウントが必要です。`},d={page:{title:`プラグイン`,subtitle:`グローバルツールとプロジェクト連携を 1 か所で管理します。`,readyCount_one:`{{count}} 件準備完了`,readyCount_other:`{{count}} 件準備完了`,openWindow:`Open in window`},search:{placeholder:`プラグインを検索`},filters:{all:`すべて`,global:`グローバル`,project:`プロジェクト`},sections:{installed:`インストール済み`,available:`利用可能`},scope:{global:`グローバル`,project:`プロジェクト`},groups:{global:{title:`グローバル`,detail:`Specrails 全体に適用`},project:{title:`プロジェクトローカル`,detail:`リポジトリごとに設定`}},empty:{installedSearch:`この検索に一致するインストール済みプラグインはありません。`,installed:`インストール済みプラグインはまだありません。`,availableSearch:`この検索に一致する利用可能なプラグインはありません。`,allInstalled:`すべてのプラグインがインストール済みです。`},actions:{install:`インストール`,installing:`インストール中`,manage:`管理`,review:`確認`,cancel:`キャンセル`},status:{attention:`要確認`,active:`有効`,externalActive:`外部で有効`,external:`外部`,installed:`インストール済み`,available:`利用可能`,configuredCount_one:`{{count}} 件設定済み`,configuredCount_other:`{{count}} 件設定済み`,installedCount_one:`{{count}} 件インストール済み`,installedCount_other:`{{count}} 件インストール済み`},catalog:{headroom:{description:`Headroom AI で Codex と Claude の起動を最適化します。`},jira:{description:`プロジェクト specs を Jira ボード、ステータスマッピング、完了コメントと同期します。`},serena:{description:`Serena MCP によるプロジェクトローカルのセマンティックコードナビゲーション。`}},headroom:{title:`Headroom AI`,dialogDescription:`Headroom のグローバルインストールとプロバイダー別ルーティングを管理します。`,panelDescription:`グローバルにインストールされ、Codex と Claude で個別に有効化できます。`,issueCode:`コード: {{code}}`,confirmDetach:`Specrails ルーティングを無効化し、プロキシを停止します。既存のシステム Headroom インストールは変更されません。`,confirmUninstall:`Codex と Claude のルートを無効化し、プロキシを停止して、Specrails 管理の Headroom ツールを削除します。`,metrics:{install:`インストール`,checking:`確認中`,ready:`準備完了`,missing:`未検出`,source:`ソース`,system:`システム`,specrails:`Specrails`,none:`なし`,proxy:`プロキシ`,starting:`起動中`,off:`オフ`},actions:{installWithUv:`同梱 uv でインストール`,disableAllRoutes:`すべてのルートを無効化`,viewDiagnostics:`診断を表示`,detachHeadroom:`Headroom を切り離す`,uninstallHeadroom:`Headroom をアンインストール`,detach:`切り離す`,uninstall:`アンインストール`},port:{label:`プロキシポート`,apply:`適用`},provider:{noProjectUsesProvider:`このプロバイダーを使う Specrails プロジェクトはありません`,routedThroughHeadroom:`Headroom 経由でルーティング中`,detectedExternalRoute:`外部ルートを検出`,notRouted:`未ルーティング`},savings:{title:`Headroom トークン節約`,learningOn:`出力を測定済み`,waitingForOutputSamples:`出力は未測定`,baseline:`{{method}}ベースライン`,updatedLive:`ライブ更新`,baselineSamples_one:`{{count}} 件のベースラインサンプル`,baselineSamples_other:`{{count}} 件のベースラインサンプル`,tokens:`tokens`,learning:`データなし`,off:`オフ`,requestDetail:`{{method}} · {{count}} 件のリクエスト`,requestCount:`{{count}} 件のリクエスト`,detected:`検出済み`,totals:`合計`,input:`入力`,output:`出力`,processed:`処理済み`,saved:`節約`,noData:`データなし`,inputSaved:`入力の節約`,outputSaved:`出力の節約`,inputSavingsActive:`Headroom 経由でルーティング中`,statusInputOutput:`入力 + 出力`,statusInputOnly:`入力有効`,statusRouting:`ルーティング中`,statusInactive:`非アクティブ`,methods:{estimated:`推定`,measured:`測定`,none:`なし`},waitingForShapedResponses:`出力レスポンスは未測定`,outputObserved:`{{value}} の出力を確認済み`,routeDisabled:`ルート無効`},issues:{uv_missing_or_corrupt:{title:`同梱 uv が利用できません`,guidance:`Specrails は同梱 uv ランタイムを起動できませんでした。Specrails を再インストールするか、ランタイムが利用可能になったら修復を使ってください。`},network_unavailable:{title:`Headroom をダウンロードできませんでした`,guidance:`ネットワーク接続を確認して再試行してください。Specrails はインストールを専用ツールディレクトリに隔離します。`},package_resolution_failed:{title:`Headroom の依存関係を解決できませんでした`,guidance:`インストールを再試行してください。失敗が続く場合は診断を開き、uv の出力を共有してください。`},install_permission_failed:{title:`Specrails がツールディレクトリに書き込めません`,guidance:`~/.specrails/tools の権限を確認し、インストールを再試行してください。`},headroom_not_found_after_install:{title:`インストール完了後に Headroom が見つかりませんでした`,guidance:`インストール修復を実行してください。Specrails が Headroom を再インストールし、実行ファイルを検証します。`},learning_setup_failed:{title:`Headroom 学習を有効化できませんでした`,guidance:`Headroom はインストール済みですが、出力節約のキャリブレーションが完了していません。メトリクスがサンプルを収集するまでプロキシルーティングを使い続けてください。`},metrics_unavailable:{title:`Headroom メトリクスはまだ利用できません`,guidance:`Headroom 経由でトラフィックをルーティングしてください。プロキシがサンプルを報告すると、Specrails が token 節約メトリクスを更新します。`},proxy_port_busy:{title:`Headroom プロキシポートは既に使用中です`,guidance:`別のポートを選ぶか、現在のポートを使用しているプロセスを停止してから有効化を再試行してください。`},proxy_unhealthy:{title:`Headroom プロキシが正常状態になりませんでした`,guidance:`有効化を再試行してください。繰り返す場合は診断を開いてプロキシ出力を確認してください。`},provider_route_failed:{title:`プロバイダールートの検証に失敗しました`,guidance:`Specrails はプロバイダールートを検証できませんでした。プロバイダーは非アクティブのままです。診断確認後に再試行してください。`},provider_config_conflict:{title:`既存のプロバイダー設定が Headroom と競合しています`,guidance:`システム全体の有効化前に診断を確認してください。Specrails 管理のルーティングは元に戻せます。`},activation_partially_applied:{title:`有効化は一部のみ適用されました`,guidance:`Specrails はロールバックを試みました。診断を確認し、対象プロバイダーを再試行してください。`},not_installed:{title:`Headroom はインストールされていません`,guidance:`まず Headroom をインストールし、その後 Codex または Claude を有効化してください。`},uninstall_failed:{title:`Headroom をアンインストールできませんでした`,guidance:`Specrails は Headroom ルーティングを無効化しましたが、管理ツールを削除できませんでした。診断を開いて再試行してください。`},unknown:{title:`Headroom 操作に失敗しました`,guidance:`操作を再試行してください。繰り返す場合は診断を開き、詳細を共有してください。`}}},projectWizard:{configureJira:`Jira を設定`,installSerena:`Serena をインストール`,description:`このプロジェクトスコープのプラグインを設定するプロジェクトを選択してください。`,chooseProject:`プロジェクトを選択`,requiresClaudeProvider:`Claude プロバイダーが必要`,selectProjectToContinue:`続行するプロジェクトを選択してください。`},serena:{loading:`Serena を読み込み中…`,titleForProject:`{{name}} の Serena`,description:`プロジェクトローカルの MCP 設定とプラグイン状態をインストールします。他のプロジェクトは変更されません。`,status:`ステータス: {{status}}`,files:`ファイル`,prerequisites:`前提条件`},projectStatus:{installed:`インストール済み`,deactivated:`無効`,"not-installed":`未インストール`,orphan:`孤立`,degraded:`劣化`},diagnostics:{title:`Headroom 診断`,description:`Specrails 管理の Headroom インストールとプロキシの技術ステータス。`}},f={page:e,card:t,toggle:n,cachedNotice:r,update:i,conflict:a,orphan:o,installDialog:s,uninstallDialog:c,docs:l,jiraCard:u,plugins:d};export{r as cachedNotice,t as card,a as conflict,f as default,l as docs,s as installDialog,u as jiraCard,o as orphan,e as page,d as plugins,n as toggle,c as uninstallDialog,i as update};
@@ -0,0 +1 @@
1
+ import{r as e}from"./rolldown-runtime-CNC7AqOf.js";var t=e({cachedNotice:()=>a,card:()=>r,conflict:()=>s,default:()=>m,docs:()=>d,installDialog:()=>l,jiraCard:()=>f,orphan:()=>c,page:()=>n,plugins:()=>p,toggle:()=>i,uninstallDialog:()=>u,update:()=>o}),n={title:`Integrations`,subtitle:`Per-project plugins. Each project decides which integrations to enable independently.`,selectProject:`Select a project to manage integrations.`,deprecated:`Deprecated`,loadError:`Failed to load plugins.`,empty:`No plugins are bundled with this build.`},r={statusActive:`Active`,statusDeactivated:`Deactivated`,statusDegraded:`Degraded`,updateAvailable:`Update available`,requires:`Requires: {{list}}`,deactivatedHint:`Installed but deactivated — Claude won't load it next session. Toggle <strong>Active</strong> to re-enable.`,install:`Install`,uninstall:`Uninstall`},i={titleActive:`Active — click to deactivate`,titleDeactivated:`Deactivated — click to activate`},a={body:`Claude has the marketplace plugin <strong>installed but disabled</strong> in its cache. It may still resolve the server from <code>~/.claude/plugins/cache/...</code> even though the toggle is off. To force project-scoped only, uninstall the marketplace plugin from Claude:`,runInstruction:`Run inside an active Claude session, then restart Claude in this project.`},o={body:`The bundled manifest changed since you installed (likely an upstream rename). Re-write <code>.mcp.json</code> with the canonical entry — surgical, only the plugin's owned keys are touched.`,button:`Update <code>.mcp.json</code> entry`},s={body:`<strong>{{name}}</strong> is also enabled globally via Claude's plugin marketplace, which shadows this project-scoped install. To make this card go Active, disable the global version below — it can be re-enabled from Claude any time.`,disableButton:`Disable <code>{{key}}</code>`},c={badge:`Orphan`,removeButton:`Remove orphan`},l={title:`Install {{name}}`,computingChanges:`Computing changes…`,filesHeading:`Files that will change`,prerequisites:`Prerequisites`,autoInstall:`Auto-install`,progress:`Progress`,installingPrereq:`Installing {{name}}…`,prereqStartFailed:`Failed to start: {{message}}`},u={title:`Uninstall {{name}}?`,body:`This will revert plugin-managed entries in <code>.mcp.json</code> and remove any plugin-created files. Your code, history, and other plugins are not affected.`},d={title:`Documentation`,dialogDescription:`Browse the bundled Specrails documentation. Use the sidebar to switch between guides.`,sidebarEmpty:`No docs yet`,indexEmpty:`Documentation will appear here. The user guide ships with the app under docs/guide/; drop Markdown files under ~/.specrails/docs/guide/ to customize it.`,categoryEmpty:`No documents in this category yet.`,documentCount_one:`{{count}} document`,documentCount_other:`{{count}} documents`,categoryCount_one:`{{count}} category`,categoryCount_other:`{{count}} categories`,summary:`{{documents}} across {{categories}}.`,loadError:`Failed to load document`},f={title:`Jira`,category:`Issue tracking`,description:`Back this project's specs with a Jira board — two-way sync of status, plus a completion comment when a rail finishes.`,connectedDescription:`Synced with {{key}}. Specs mirror your Jira board both ways.`,connect:`Connect`,connected:`Connected`,manage:`Manage`,modalTitle:`Connect to Jira`,manageTitle:`Jira connection`,bullet1:`Two-way status sync with your Jira board.`,bullet2:`Posts a completion comment when a rail finishes.`,bullet3:`Your Jira backlog appears as specs on the board.`,requires:`Requires a Jira Cloud or Data Center account.`},p={page:{title:`Plugins`,subtitle:`Global tools and project integrations, managed from one place.`,readyCount_one:`{{count}} ready`,readyCount_other:`{{count}} ready`,openWindow:`Open in window`},search:{placeholder:`Search plugins`},filters:{all:`all`,global:`global`,project:`project`},sections:{installed:`Installed`,available:`Available`},scope:{global:`global`,project:`project`},groups:{global:{title:`Global`,detail:`Applies across Specrails`},project:{title:`Project-local`,detail:`Configured per repository`}},empty:{installedSearch:`No installed plugins match this search.`,installed:`No installed plugins yet.`,availableSearch:`No available plugins match this search.`,allInstalled:`All plugins are installed.`},actions:{install:`Install`,installing:`Installing`,manage:`Manage`,review:`Review`,cancel:`Cancel`},status:{attention:`attention`,active:`active`,externalActive:`external active`,external:`external`,installed:`installed`,available:`available`,configuredCount_one:`{{count}} configured`,configuredCount_other:`{{count}} configured`,installedCount_one:`{{count}} installed`,installedCount_other:`{{count}} installed`},catalog:{headroom:{description:`Optimize Codex and Claude launches through Headroom AI.`},jira:{description:`Sync project specs with a Jira board, status mapping, and completion comments.`},serena:{description:`Project-local semantic code navigation through Serena MCP.`}},headroom:{title:`Headroom AI`,dialogDescription:`Manage the global Headroom installation and provider routing.`,panelDescription:`Installed globally, activated independently for Codex and Claude.`,issueCode:`Code: {{code}}`,confirmDetach:`This disables Specrails routing and stops the proxy. The existing system Headroom install is left untouched.`,confirmUninstall:`This disables Codex and Claude routes, stops the proxy, and removes the Specrails-managed Headroom tool.`,metrics:{install:`Install`,checking:`Checking`,ready:`Ready`,missing:`Missing`,source:`Source`,system:`System`,specrails:`Specrails`,none:`None`,proxy:`Proxy`,starting:`Starting`,off:`Off`},actions:{installWithUv:`Install with bundled uv`,disableAllRoutes:`Disable all routes`,viewDiagnostics:`View diagnostics`,detachHeadroom:`Detach Headroom`,uninstallHeadroom:`Uninstall Headroom`,detach:`Detach`,uninstall:`Uninstall`},port:{label:`Proxy port`,apply:`Apply`},provider:{noProjectUsesProvider:`No Specrails project uses this provider`,routedThroughHeadroom:`Routed through Headroom`,detectedExternalRoute:`Detected external route`,notRouted:`Not routed`},savings:{title:`Headroom Token Savings`,learningOn:`output measured`,waitingForOutputSamples:`output not measured`,baseline:`{{method}} baseline`,updatedLive:`updated live`,baselineSamples_one:`{{count}} baseline sample`,baselineSamples_other:`{{count}} baseline samples`,tokens:`tokens`,learning:`No data`,off:`Off`,requestDetail:`{{method}} · {{count}} requests`,requestCount:`{{count}} requests`,detected:`detected`,totals:`Totals`,input:`Input`,output:`Output`,processed:`Processed`,saved:`Saved`,noData:`No data`,inputSaved:`Input saved`,outputSaved:`Output saved`,inputSavingsActive:`Routing through Headroom`,statusInputOutput:`Input + output`,statusInputOnly:`Input active`,statusRouting:`Routing active`,statusInactive:`Inactive`,methods:{estimated:`estimated`,measured:`measured`,none:`none`},waitingForShapedResponses:`No output responses measured yet`,outputObserved:`{{value}} output observed`,routeDisabled:`Route disabled`},issues:{uv_missing_or_corrupt:{title:`Bundled uv is not available`,guidance:`Specrails could not start its bundled uv runtime. Reinstall Specrails or use Repair once the runtime is available.`},network_unavailable:{title:`Headroom could not be downloaded`,guidance:`Check your network connection and retry. Specrails will keep the install isolated in its own tool directory.`},package_resolution_failed:{title:`Headroom dependencies could not be resolved`,guidance:`Retry the install. If it keeps failing, open diagnostics and share the uv output.`},install_permission_failed:{title:`Specrails cannot write its tool directory`,guidance:`Check permissions under ~/.specrails/tools, then retry the install.`},headroom_not_found_after_install:{title:`Install finished but Headroom was not found`,guidance:`Run Repair install. Specrails will reinstall Headroom and verify the executable.`},learning_setup_failed:{title:`Headroom learning could not be enabled`,guidance:`Headroom is installed, but output-savings calibration did not finish. Keep using proxy routing while metrics collect output samples.`},metrics_unavailable:{title:`Headroom metrics are not available yet`,guidance:`Start routing traffic through Headroom. Specrails will refresh token-savings metrics as soon as the proxy reports samples.`},proxy_port_busy:{title:`Headroom proxy port is already in use`,guidance:`Choose another port or stop the process using the current port, then retry activation.`},proxy_unhealthy:{title:`Headroom proxy did not become healthy`,guidance:`Retry activation. If it repeats, open diagnostics to inspect the proxy output.`},provider_route_failed:{title:`Provider route verification failed`,guidance:`Specrails could not verify the provider route. The provider remains inactive; retry after checking diagnostics.`},provider_config_conflict:{title:`Existing provider configuration conflicts with Headroom`,guidance:`Review diagnostics before enabling system-wide activation. Specrails-managed routing remains reversible.`},activation_partially_applied:{title:`Activation was only partially applied`,guidance:`Specrails attempted rollback. Review diagnostics and retry the affected provider.`},not_installed:{title:`Headroom is not installed`,guidance:`Install Headroom first, then activate Codex or Claude.`},uninstall_failed:{title:`Headroom could not be uninstalled`,guidance:`Specrails disabled Headroom routing but could not remove the managed tool. Open diagnostics, then retry uninstall.`},unknown:{title:`Headroom operation failed`,guidance:`Retry the operation. If it repeats, open diagnostics and share the details.`}}},projectWizard:{configureJira:`Configure Jira`,installSerena:`Install Serena`,description:`Select the project where this project-scoped plugin should be configured.`,chooseProject:`Choose project`,requiresClaudeProvider:`Requires Claude provider`,selectProjectToContinue:`Select a project to continue.`},serena:{loading:`Loading Serena…`,titleForProject:`Serena for {{name}}`,description:`Installs project-local MCP configuration and plugin state. Other projects are untouched.`,status:`Status: {{status}}`,files:`Files`,prerequisites:`Prerequisites`},projectStatus:{installed:`installed`,deactivated:`deactivated`,"not-installed":`not installed`,orphan:`orphan`,degraded:`degraded`},diagnostics:{title:`Headroom diagnostics`,description:`Technical status for the Specrails-managed Headroom installation and proxy.`}},m={page:n,card:r,toggle:i,cachedNotice:a,update:o,conflict:s,orphan:c,installDialog:l,uninstallDialog:u,docs:d,jiraCard:f,plugins:p};export{t};
@@ -0,0 +1 @@
1
+ var e={title:`Integrazioni`,subtitle:`Plugin per progetto. Ogni progetto decide in autonomia quali integrazioni abilitare.`,selectProject:`Seleziona un progetto per gestire le integrazioni.`,deprecated:`Deprecato`,loadError:`Impossibile caricare i plugin.`,empty:`Nessun plugin incluso in questa build.`},t={statusActive:`Attivo`,statusDeactivated:`Disattivato`,statusDegraded:`Degradato`,updateAvailable:`Aggiornamento disponibile`,requires:`Richiede: {{list}}`,deactivatedHint:`Installato ma disattivato — Claude non lo caricherà nella prossima sessione. Imposta su <strong>Attivo</strong> per riabilitarlo.`,install:`Installa`,uninstall:`Disinstalla`},n={titleActive:`Attivo — clicca per disattivare`,titleDeactivated:`Disattivato — clicca per attivare`},r={body:`Claude ha il plugin del marketplace <strong>installato ma disabilitato</strong> nella sua cache. Potrebbe comunque risolvere il server da <code>~/.claude/plugins/cache/...</code> anche con l'interruttore disattivato. Per forzare il solo ambito di progetto, disinstalla il plugin del marketplace da Claude:`,runInstruction:`Esegui all'interno di una sessione Claude attiva, poi riavvia Claude in questo progetto.`},i={body:`Il manifest incluso è cambiato dopo l'installazione (probabilmente una rinomina upstream). Riscrivi <code>.mcp.json</code> con la voce canonica — intervento chirurgico, vengono toccate solo le chiavi di proprietà del plugin.`,button:`Aggiorna la voce in <code>.mcp.json</code>`},a={body:`<strong>{{name}}</strong> è abilitato anche globalmente tramite il marketplace dei plugin di Claude, che mette in ombra questa installazione a livello di progetto. Per rendere Attiva questa scheda, disabilita qui sotto la versione globale — potrà essere riabilitata da Claude in qualsiasi momento.`,disableButton:`Disabilita <code>{{key}}</code>`},o={badge:`Orfano`,removeButton:`Rimuovi orfano`},s={title:`Installa {{name}}`,computingChanges:`Calcolo delle modifiche…`,filesHeading:`File che verranno modificati`,prerequisites:`Prerequisiti`,autoInstall:`Installazione automatica`,progress:`Avanzamento`,installingPrereq:`Installazione di {{name}}…`,prereqStartFailed:`Avvio non riuscito: {{message}}`},c={title:`Disinstallare {{name}}?`,body:`Verranno ripristinate le voci gestite dal plugin in <code>.mcp.json</code> e rimossi i file creati dal plugin. Il tuo codice, la cronologia e gli altri plugin non vengono toccati.`},l={title:`Documentazione`,dialogDescription:`Sfoglia la documentazione di Specrails inclusa. Usa la barra laterale per passare da una guida all'altra.`,sidebarEmpty:`Ancora nessun documento`,indexEmpty:`La documentazione apparirà qui. La guida utente è inclusa nell’app in docs/guide/; aggiungi file Markdown in ~/.specrails/docs/guide/ per personalizzarla.`,categoryEmpty:`Ancora nessun documento in questa categoria.`,documentCount_one:`{{count}} documento`,documentCount_other:`{{count}} documenti`,categoryCount_one:`{{count}} categoria`,categoryCount_other:`{{count}} categorie`,summary:`{{documents}} in {{categories}}.`,loadError:`Impossibile caricare il documento`},u={title:`Jira`,category:`Tracciamento ticket`,description:`Appoggia le spec di questo progetto a una board Jira — sincronizzazione bidirezionale dello stato e un commento al termine di un rail.`,connectedDescription:`Sincronizzato con {{key}}. Le spec rispecchiano la tua board Jira in entrambe le direzioni.`,connect:`Connetti`,connected:`Connesso`,manage:`Gestisci`,modalTitle:`Connetti a Jira`,manageTitle:`Connessione Jira`,bullet1:`Sincronizzazione bidirezionale dello stato con la tua board Jira.`,bullet2:`Pubblica un commento al termine di un rail.`,bullet3:`Il tuo backlog Jira appare come spec sulla board.`,requires:`Richiede un account Jira Cloud o Data Center.`},d={page:{title:`Plugin`,subtitle:`Strumenti globali e integrazioni di progetto, gestiti da un unico posto.`,readyCount_one:`{{count}} pronto`,readyCount_other:`{{count}} pronti`,openWindow:`Open in window`},search:{placeholder:`Cerca plugin`},filters:{all:`tutti`,global:`globali`,project:`progetto`},sections:{installed:`Installati`,available:`Disponibili`},scope:{global:`globale`,project:`progetto`},groups:{global:{title:`Globali`,detail:`Si applicano a tutto Specrails`},project:{title:`Locali al progetto`,detail:`Configurati per repository`}},empty:{installedSearch:`Nessun plugin installato corrisponde a questa ricerca.`,installed:`Nessun plugin installato.`,availableSearch:`Nessun plugin disponibile corrisponde a questa ricerca.`,allInstalled:`Tutti i plugin sono installati.`},actions:{install:`Installa`,installing:`Installazione`,manage:`Gestisci`,review:`Controlla`,cancel:`Annulla`},status:{attention:`attenzione`,active:`attivo`,externalActive:`esterno attivo`,external:`esterno`,installed:`installato`,available:`disponibile`,configuredCount_one:`{{count}} configurato`,configuredCount_other:`{{count}} configurati`,installedCount_one:`{{count}} installato`,installedCount_other:`{{count}} installati`},catalog:{headroom:{description:`Ottimizza gli avvii di Codex e Claude tramite Headroom AI.`},jira:{description:`Sincronizza le spec di progetto con una board Jira, mapping degli stati e commenti di completamento.`},serena:{description:`Navigazione semantica del codice locale al progetto tramite Serena MCP.`}},headroom:{title:`Headroom AI`,dialogDescription:`Gestisci l’installazione globale di Headroom e il routing per provider.`,panelDescription:`Installato globalmente, attivato separatamente per Codex e Claude.`,issueCode:`Codice: {{code}}`,confirmDetach:`Questo disattiva il routing Specrails e ferma il proxy. L’installazione Headroom di sistema esistente resta intatta.`,confirmUninstall:`Questo disattiva le rotte Codex e Claude, ferma il proxy e rimuove lo strumento Headroom gestito da Specrails.`,metrics:{install:`Installazione`,checking:`Verifica`,ready:`Pronto`,missing:`Mancante`,source:`Origine`,system:`Sistema`,specrails:`Specrails`,none:`Nessuno`,proxy:`Proxy`,starting:`Avvio`,off:`Spento`},actions:{installWithUv:`Installa con uv incluso`,disableAllRoutes:`Disattiva tutte le rotte`,viewDiagnostics:`Vedi diagnostica`,detachHeadroom:`Scollega Headroom`,uninstallHeadroom:`Disinstalla Headroom`,detach:`Scollega`,uninstall:`Disinstalla`},port:{label:`Porta proxy`,apply:`Applica`},provider:{noProjectUsesProvider:`Nessun progetto Specrails usa questo provider`,routedThroughHeadroom:`Instradato tramite Headroom`,detectedExternalRoute:`Rotta esterna rilevata`,notRouted:`Non instradato`},savings:{title:`Risparmio token Headroom`,learningOn:`output misurato`,waitingForOutputSamples:`output non misurato`,baseline:`base {{method}}`,updatedLive:`aggiornato live`,baselineSamples_one:`{{count}} campione base`,baselineSamples_other:`{{count}} campioni base`,tokens:`token`,learning:`Nessun dato`,off:`Spento`,requestDetail:`{{method}} · {{count}} richieste`,requestCount:`{{count}} richieste`,detected:`rilevato`,totals:`Totali`,input:`Input`,output:`Output`,processed:`Processati`,saved:`Risparmiati`,noData:`Nessun dato`,inputSaved:`Input risparmiato`,outputSaved:`Output risparmiato`,inputSavingsActive:`Routing tramite Headroom`,statusInputOutput:`Input + output`,statusInputOnly:`Input attivo`,statusRouting:`Routing attivo`,statusInactive:`Inattivo`,methods:{estimated:`stimata`,measured:`misurata`,none:`nessuna`},waitingForShapedResponses:`Nessuna risposta di output misurata`,outputObserved:`{{value}} di output osservati`,routeDisabled:`Rotta disattivata`},issues:{uv_missing_or_corrupt:{title:`Il uv incluso non è disponibile`,guidance:`Specrails non è riuscito ad avviare il runtime uv incluso. Reinstalla Specrails o usa Ripara quando il runtime sarà disponibile.`},network_unavailable:{title:`Non è stato possibile scaricare Headroom`,guidance:`Controlla la connessione di rete e riprova. Specrails manterrà l’installazione isolata nella propria directory degli strumenti.`},package_resolution_failed:{title:`Non è stato possibile risolvere le dipendenze di Headroom`,guidance:`Riprova l’installazione. Se continua a fallire, apri la diagnostica e condividi l’output di uv.`},install_permission_failed:{title:`Specrails non può scrivere nella directory degli strumenti`,guidance:`Controlla i permessi in ~/.specrails/tools, poi riprova l’installazione.`},headroom_not_found_after_install:{title:`Installazione completata ma Headroom non trovato`,guidance:`Esegui Ripara installazione. Specrails reinstallerà Headroom e verificherà l’eseguibile.`},learning_setup_failed:{title:`Non è stato possibile abilitare l’apprendimento di Headroom`,guidance:`Headroom è installato, ma la calibrazione dei risparmi di output non è terminata. Continua a usare il routing proxy mentre le metriche raccolgono campioni.`},metrics_unavailable:{title:`Le metriche di Headroom non sono ancora disponibili`,guidance:`Inizia a instradare traffico tramite Headroom. Specrails aggiornerà le metriche di risparmio token appena il proxy riporterà campioni.`},proxy_port_busy:{title:`La porta del proxy Headroom è già in uso`,guidance:`Scegli un’altra porta o ferma il processo che usa la porta attuale, poi riprova l’attivazione.`},proxy_unhealthy:{title:`Il proxy Headroom non è diventato sano`,guidance:`Riprova l’attivazione. Se si ripete, apri la diagnostica per controllare l’output del proxy.`},provider_route_failed:{title:`Verifica della rotta del provider non riuscita`,guidance:`Specrails non ha potuto verificare la rotta del provider. Il provider resta inattivo; riprova dopo aver controllato la diagnostica.`},provider_config_conflict:{title:`La configurazione provider esistente è in conflitto con Headroom`,guidance:`Controlla la diagnostica prima di abilitare il routing a livello di sistema. Il routing gestito da Specrails resta reversibile.`},activation_partially_applied:{title:`L’attivazione è stata applicata solo in parte`,guidance:`Specrails ha tentato il rollback. Controlla la diagnostica e riprova il provider interessato.`},not_installed:{title:`Headroom non è installato`,guidance:`Installa prima Headroom, poi attiva Codex o Claude.`},uninstall_failed:{title:`Non è stato possibile disinstallare Headroom`,guidance:`Specrails ha disattivato il routing Headroom ma non ha potuto rimuovere lo strumento gestito. Apri la diagnostica e riprova.`},unknown:{title:`Operazione Headroom non riuscita`,guidance:`Riprova l’operazione. Se si ripete, apri la diagnostica e condividi i dettagli.`}}},projectWizard:{configureJira:`Configura Jira`,installSerena:`Installa Serena`,description:`Seleziona il progetto in cui configurare questo plugin locale al progetto.`,chooseProject:`Scegli progetto`,requiresClaudeProvider:`Richiede provider Claude`,selectProjectToContinue:`Seleziona un progetto per continuare.`},serena:{loading:`Caricamento Serena…`,titleForProject:`Serena per {{name}}`,description:`Installa la configurazione MCP e lo stato del plugin localmente al progetto. Gli altri progetti non vengono modificati.`,status:`Stato: {{status}}`,files:`File`,prerequisites:`Prerequisiti`},projectStatus:{installed:`installato`,deactivated:`disattivato`,"not-installed":`non installato`,orphan:`orfano`,degraded:`degradato`},diagnostics:{title:`Diagnostica Headroom`,description:`Stato tecnico dell’installazione Headroom gestita da Specrails e del proxy.`}},f={page:e,card:t,toggle:n,cachedNotice:r,update:i,conflict:a,orphan:o,installDialog:s,uninstallDialog:c,docs:l,jiraCard:u,plugins:d};export{r as cachedNotice,t as card,a as conflict,f as default,l as docs,s as installDialog,u as jiraCard,o as orphan,e as page,d as plugins,n as toggle,c as uninstallDialog,i as update};
@@ -0,0 +1 @@
1
+ import{t as e}from"./createLucideIcon-Bjbbp_KS.js";import{a as t}from"./useDesktop-D07TvesS.js";var n=e(`wrench`,[[`path`,{d:`M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z`,key:`1ngwbx`}]]);async function r(e){let t=await e.text(),n=t?JSON.parse(t):{};if(!e.ok)throw Error(n.error||`Request failed (${e.status})`);return n}function i(e){return e??t()}var a=e=>({method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)}),o={getConnection(e){return fetch(`${i(e)}/jira/connection`).then(e=>r(e))},test(e,t){return fetch(`${i(t)}/jira/test`,a(e)).then(e=>r(e))},discoverProjects(e,t){return fetch(`${i(t)}/jira/discover-projects`,a(e)).then(e=>r(e))},discoverStatuses(e,t){return fetch(`${i(t)}/jira/discover-statuses`,a(e)).then(e=>r(e))},connect(e,t){return fetch(`${i(t)}/jira/connect`,a(e)).then(e=>r(e))},setEnabled(e,t){return fetch(`${i(t)}/jira/connection`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({enabled:e})}).then(e=>r(e))},patchConnection(e,t){return fetch(`${i(t)}/jira/connection`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)}).then(e=>r(e))},listStatuses(e){return fetch(`${i(e)}/jira/statuses`).then(e=>r(e))},moveSpecToStatus(e,t,n){return fetch(`${i(n)}/jira/specs/${e}/move-to-status`,a({status:t})).then(e=>r(e))},discardSpec(e,t,n){return fetch(`${i(n)}/jira/specs/${e}/discard`,a({comment:t})).then(e=>r(e))},getSpecDetails(e,t){return fetch(`${i(t)}/jira/specs/${e}/details`).then(e=>r(e))},disconnect(e){return fetch(`${i(e)}/jira/connection`,{method:`DELETE`}).then(e=>r(e))},syncNow(e){return fetch(`${i(e)}/jira/sync`,{method:`POST`}).then(e=>r(e))},resume(e){return fetch(`${i(e)}/jira/resume`,{method:`POST`}).then(e=>r(e))},listOutbox(e,t){let n=e?`?state=${e}`:``;return fetch(`${i(t)}/jira/outbox${n}`).then(e=>r(e))},retryOutbox(e,t){return fetch(`${i(t)}/jira/outbox/${e}/retry`,{method:`POST`}).then(e=>r(e))}};export{n,o as t};
@@ -1 +1 @@
1
- import{r as e}from"./rolldown-runtime-CNC7AqOf.js";var t=e({activeJob:()=>f,comparison:()=>u,completion:()=>h,default:()=>_,detail:()=>o,logViewer:()=>m,loopExplorer:()=>p,modal:()=>l,page:()=>a,recent:()=>d,runHeader:()=>g,statusLabel:()=>n,statusName:()=>i,statusPanel:()=>s,statusTooltip:()=>r,ticketHeader:()=>c}),n={running:`running`,completed:`completed`,done:`done`,failed:`failed`,canceled:`canceled`,queued:`queued`,zombie:`zombie`,skipped:`skipped`},r={running:`Job is actively executing`,completed:`Job completed successfully`,failed:`Job exited with a non-zero exit code`,canceled:`Job was manually canceled`,queued:`Job is waiting in the queue`,queuedToRun:`Job is waiting to run`,zombie:`Job was auto-terminated after prolonged inactivity`,skipped:`Job was skipped because a parent job in the pipeline failed`},i={running:`running`,completed:`completed`,failed:`failed`,canceled:`canceled`,zombie_terminated:`zombie`,queued:`queued`,skipped:`skipped`},a={title:`Jobs`,exportJobs:`Export Jobs`,proposalDeleted:`Proposal deleted`,proposal:{title:`Proposal`,noContent:`No proposal content yet.`,githubIssue:`GitHub Issue:`,status:{input:`Awaiting input`,exploring:`Exploring`,review:`Ready for review`,refining:`Refining`,creatingIssue:`Creating issue`,created:`Created`,cancelled:`Cancelled`,unknown:`Unknown status: {{status}}`}}},o={breadcrumbDashboard:`Dashboard`,breadcrumbJob:`Job #{{id}}`,notFound:`Job not found`,notFoundDescription:`The job ID "{{id}}" doesn't exist`,backToDashboard:`Back to Dashboard`,startedAgo:`Started {{timeAgo}}`,queuedWaiting:`Queued — waiting to start`,exportDiagnostic:`Export diagnostic`,exportDiagnosticAria:`Export diagnostic bundle`,exportDiagnosticTooltip:`Download ZIP with telemetry, logs, and summary for this job`,reExecute:`Re-execute`,reExecuteTooltip:`Spawn a new job with the same command`,cancelJob:`Cancel Job`,cancelJobTooltip:`Send SIGTERM to the running process. The job will be marked as canceled.`,cancelInteractive:`Discard`,finalizeJob:`Finalize Job`,finalizing:`Finalizing…`,finalizeJobTooltip:`End this interactive session and roll every turn's tokens and cost into the job total.`,interactive:{ready:`Ready — send a prompt`,working:`Agent working…`,placeholder:`Send a message to the running job…`,send:`Send`,liveTotals:"{{turns}} turns · ${{cost}}",autoHint:`This job follows its plan and finishes on its own — messages are optional steering.`,wrapUp:`Wrap up now`,wrapUpTooltip:`End the session now — the job completes with the work produced so far, every turn's tokens and cost rolled into the total.`,wrapUpStep:`Settle this step`,wrapUpStepTooltip:`End the current step now — the loop advances with what the step has produced so far.`,wrappingUp:`Wrapping up…`,queued_one:`{{count}} queued message`,queued_other:`{{count}} queued messages`,waitingForStep:`Between steps — the loop is deciding what runs next. You can send a message when the next AI step starts.`,waitingForStepShort:`Waiting for the next step…`,sendDisabledEmpty:`Type a message first`,sendDisabledWaiting:`No active step session right now`},toast:{jobDeleted:`Job deleted`,cancelSignalSent:`Cancel signal sent`,cancelSignalSentDescription:`Job will stop at the next safe point`,failed:`Failed`,networkError:`Network error`,exportFailed:`Export failed`,exportFailedHttp:`Export failed (HTTP {{status}})`,jobRequeued:`Job re-queued`,spawnFailed:`Failed to spawn job`,finalizeScheduled:`Finalizing interactive job…`,finalizeFailed:`Failed to finalize job`,sendFailed:`Failed to send message`,wrapUpScheduled:`Wrapping up the job…`,wrapUpStepScheduled:`Settling the step — the loop advances with what it produced`}},s={inProgress:`Job in progress`,completed:`Job completed`,failed:`Job failed`,duration:`Duration`,cost:`Cost`,turns:`Turns`,tokens:`Tokens`,filesCount_one:`{{count}} file`,filesCount_other:`{{count}} files`,pipelineTotal:`Pipeline total ({{count}} phases)`,totalCost:`Total cost`,totalTokens:`Total tokens`,filesModified:`Files modified`,zoneInProgress:`In progress`,zoneFinal:`Final summary`,zoneFinalPending:`Final summary — calculated when finished`,pendingCaption:`Calculated when finished`,pendingTooltip:`This is the provider's real figure; it appears when the job finishes.`,costTooltip:`The real cost is billed by the provider when the job closes.`,liveTooltip:`Live`,explainer:`Cost, turns and tokens are the provider's real figures and appear when the job finishes.`,notAvailable:`Not available`,steps_one:`{{count}} step`,steps_other:`{{count}} steps`,activity:{editing:`Editing {{arg}}`,writing:`Writing {{arg}}`,reading:`Reading {{arg}}`,searching:`Searching “{{arg}}”`,running:`Running: {{arg}}`,thinking:`Thinking…`,reasoning:`Reasoning…`,working:`Working…`,connecting:`Connecting to the agent…`,starting:`Starting…`,delegating:`Delegating to {{arg}}`},pipelinePartial:`≥ shown — {{count}} phase(s) have no recorded cost yet`,pipelinePartialTooltip:`Some phases did not report cost, so this total is a lower bound.`,pipelineCostUnavailable:`Cost telemetry is unavailable for every phase.`,pipelineUsageUnavailable:`Token telemetry is unavailable for every phase.`,pipelineUsagePartial:`≥ shown — {{count}} phase(s) have no token telemetry`,pipelineUsageTooltip:`Providers may complete phases without exposing token telemetry; only known usage is included.`,costUnknownLocal:`Cost unknown (local engine)`,costUnknownLocalTooltip:`Cost unknown (local engine). Add rates to the connection to see an estimate.`},c={showMore:`+ {{count}} more`,showLess:`Show less`,deletedTicket:`#{{id}} (deleted)`,deletedTooltip:`Ticket no longer exists`},l={notFound:`Job not found`,cancelConfirmTitle:`Cancel job?`,cancelConfirmDescription:`The job will stop at the next safe point. This action cannot be undone.`,keepRunning:`Keep running`,cancelJob:`Cancel job`,stopRun:`Stop run`,stopRunConfirmTitle:`Stop this run?`,stopRunConfirmDescription:`The loop run will stop at the next step boundary. This action cannot be undone.`,toast:{cancelSignalSent:`Cancel signal sent`,cancelSignalSentDescription:`Job will stop at the next safe point`,stopSignalSent:`Stop signal sent`,stopSignalSentDescription:`The run will stop at the next step boundary`,cancelFailed:`Failed to cancel`,networkError:`Network error`}},u={title:`Job Comparison`,jobN:`Job {{n}}`,loadFailed:`Failed to load comparison: {{error}}`,duration:`Duration`,cost:`Cost`,tokensOut:`Tokens out`,tokensIn:`Tokens in`,cacheRead:`Cache read`,model:`Model`,phasesDone:`Phases done`,betterValueHint:`Green highlights indicate better value`},d={emptyTitle:`No jobs yet`,emptyDescription:`Run a command above to see your job history here`,loadFailed:`Failed to load jobs`,filterAll:`All ({{count}})`,filterStatus:`{{status}} ({{count}})`,fromDate:`From date`,toDate:`To date`,clear:`Clear`,exitCompareMode:`Exit compare mode`,compareTwoJobs:`Compare 2 jobs`,clearJobs:`Clear jobs`,selectTwoToCompare:`Select 2 jobs to compare`,selectOneMore:`Select 1 more job`,readyToCompare:`Ready — click compare`,compareAction:`Compare →`,colStatus:`Status`,colCommand:`Command`,colDuration:`Duration`,colTokens:`Tokens`,colCost:`Cost`,colStarted:`Started`,profileTooltip:`Profile: {{name}}`,pipelinePart:`Part of a pipeline`,pipelineDependsOn:`(depends on previous step)`,deleteProposal:`Delete proposal`,loadMore:`Load more ({{count}} remaining)`,priority:{critical:`critical`,high:`high`,normal:`normal`,low:`low`},clearModal:{title:`Clear Jobs`,jobsInHistory_one:`{{count}} job in history`,jobsInHistory_other:`{{count}} jobs in history`,clearAll_one:`Clear all {{count}} job`,clearAll_other:`Clear all {{count}} jobs`,orByRange:`Or clear by date range:`,fromPlaceholder:`From`,toPlaceholder:`To`,clearInRange_one:`Clear {{count}} job in range`,clearInRange_other:`Clear {{count}} jobs in range`,clearRange:`Clear range`},deleteProposalConfirm:{title:`Delete proposal?`,description:`This will permanently delete 1 proposal. This action cannot be undone.`},toast:{cleared_one:`Cleared {{count}} job`,cleared_other:`Cleared {{count}} jobs`,clearFailed:`Failed to clear jobs`,networkError:`Network error`}},f={none:`No active job`,noneHint:`Select a command below to start a job`,exitCode:`exit {{code}}`,cancelTooltip:`Send SIGTERM to the running claude process`,viewLogs:`View Logs`,toast:{cancelRequested:`Job cancellation requested`,cancelRequestedDescription:`Sending SIGTERM to the process`,cancelFailed:`Failed to cancel job`,networkError:`Network error canceling job`}},p={setup:`Setup`,iteration:`Iteration {{current}}/{{limit}}`,iterationBadge:`iter {{count}}`,follow:`Following live`,resumeFollow:`Resume follow`,expandAll:`Expand all`,collapseAll:`Collapse all`,copyStep:`Copy step`,copied:`Step copied to clipboard`,stepDetail:`Step details`,stepDetailTemplate:`Template`,stepDetailCommand:`Command`,copyCommand:`Copy`,interrupted:`Interrupted`,waiting:`Waiting for the next step…`,stepMapAria:`Loop step map`,stalled:`Stalled`,stalledIdle_one:`No provider output for {{count}} minute — the app stopped this attempt`,stalledIdle_other:`No provider output for {{count}} minutes — the app stopped this attempt`,providerLimit:`Provider limit`,providerLimitHint:`The provider answered with a usage or rate-limit notice, so the app stopped the run instead of cycling.`,paused:`Paused`,runtimeGraph:`Run graph`,graphBack:`Back`,graphOpenComponent:`Open component`,graphNoAttempts:`No recorded attempts`,graphState:{running:`Running`,paused:`Paused`,failed:`Failed`,stalled:`Stalled`,interrupted:`Interrupted`,ok:`Succeeded`,pending:`Pending`,unknown:`Unknown`},repeatFromHere:`Repeat from here`,forkFailed:`Could not create the linked run`,forkPending:`Retry the originally selected step to finish the pending fork.`,forkCreated:`Linked run created. Open it and resume from the selected checkpoint.`,openFork:`Open linked run`},m={loading:`Loading logs...`,empty:`No log output yet`,filterPlaceholder:`Filter logs...`,copySuccess:`Log copied to clipboard`,copyFailed:`Failed to copy log`,lineCount:`{{filtered}} / {{total}} lines`,jumpToBottom:`Jump to bottom`,phaseLines_one:`{{count}} line`,phaseLines_other:`{{count}} lines`,noMatchingLines:`No matching lines`,noOutput:`No output`,completed:`Completed`,turns_one:`{{count}} turn`,turns_other:`{{count}} turns`},h={title:`Run result`,execution:`Execution`,implementation:`Implementation`,validation:`Validation`,archive:`Archive`,delivery:`Delivery`,counters:`Steps: {{steps}} · Decider evaluations: {{evaluations}} · Agent turns: {{turns}}`,unavailable:`Unavailable`,evidence:`Evidence, exceptions and phase timings`,snapshot:`Recorded at completion: {{change}} · {{at}}`,acceptedBy:`Accepted by {{by}}`,required:`Required`,supplementary:`Supplementary`,attempts:`Attempts: {{count}}`,phaseCostUnavailable:`Cost per Core phase is unavailable; provider usage is attributed to loop steps.`,noCoreEvidence:`Acceptance evidence unavailable. Execution success alone does not confirm ticket completion.`,status:{success:`Succeeded`,failed:`Failed`,blocked:`Blocked`,stopped:`Stopped`,stalled:`Stalled`,complete:`Complete`,incomplete:`Incomplete`,verified:`Verified`,"with-exceptions":`Verified with exceptions`,pending:`Pending`,"pending-host":`Pending host delivery`,done:`Done`,running:`Running`,skipped:`Skipped`,passed:`Passed`,unavailable:`Unavailable`}},g={details:`Details`,phaseActivity:`{{phase}} · {{activity}}`,liveReported:`Reported by the provider so far; the final figures arrive when the job finishes.`,questionPending:`Answer the question`},_={statusLabel:n,statusTooltip:r,statusName:i,page:a,detail:o,statusPanel:s,ticketHeader:c,modal:l,comparison:u,recent:d,activeJob:f,loopExplorer:p,logViewer:m,completion:h,runHeader:g};export{t};
1
+ import{r as e}from"./rolldown-runtime-CNC7AqOf.js";var t=e({activeJob:()=>f,comparison:()=>u,completion:()=>h,default:()=>_,detail:()=>o,logViewer:()=>m,loopExplorer:()=>p,modal:()=>l,page:()=>a,recent:()=>d,runHeader:()=>g,statusLabel:()=>n,statusName:()=>i,statusPanel:()=>s,statusTooltip:()=>r,ticketHeader:()=>c}),n={running:`running`,completed:`completed`,done:`done`,failed:`failed`,canceled:`canceled`,queued:`queued`,zombie:`zombie`,skipped:`skipped`},r={running:`Job is actively executing`,completed:`Job completed successfully`,failed:`Job exited with a non-zero exit code`,canceled:`Job was manually canceled`,queued:`Job is waiting in the queue`,queuedToRun:`Job is waiting to run`,zombie:`Job was auto-terminated after prolonged inactivity`,skipped:`Job was skipped because a parent job in the pipeline failed`},i={running:`running`,completed:`completed`,failed:`failed`,canceled:`canceled`,zombie_terminated:`zombie`,queued:`queued`,skipped:`skipped`},a={title:`Jobs`,exportJobs:`Export Jobs`,proposalDeleted:`Proposal deleted`,proposal:{title:`Proposal`,noContent:`No proposal content yet.`,githubIssue:`GitHub Issue:`,status:{input:`Awaiting input`,exploring:`Exploring`,review:`Ready for review`,refining:`Refining`,creatingIssue:`Creating issue`,created:`Created`,cancelled:`Cancelled`,unknown:`Unknown status: {{status}}`}}},o={breadcrumbDashboard:`Dashboard`,breadcrumbJob:`Job #{{id}}`,notFound:`Job not found`,notFoundDescription:`The job ID "{{id}}" doesn't exist`,backToDashboard:`Back to Dashboard`,startedAgo:`Started {{timeAgo}}`,queuedWaiting:`Queued — waiting to start`,exportDiagnostic:`Export diagnostic`,exportDiagnosticAria:`Export diagnostic bundle`,exportDiagnosticTooltip:`Download ZIP with telemetry, logs, and summary for this job`,reExecute:`Re-execute`,reExecuteTooltip:`Spawn a new job with the same command`,cancelJob:`Cancel Job`,cancelJobTooltip:`Send SIGTERM to the running process. The job will be marked as canceled.`,cancelInteractive:`Discard`,finalizeJob:`Finalize Job`,finalizing:`Finalizing…`,finalizeJobTooltip:`End this interactive session and roll every turn's tokens and cost into the job total.`,interactive:{ready:`Ready — send a prompt`,working:`Agent working…`,placeholder:`Send a message to the running job…`,send:`Send`,liveTotals:"{{turns}} turns · ${{cost}}",autoHint:`This job follows its plan and finishes on its own — messages are optional steering.`,wrapUp:`Wrap up now`,wrapUpTooltip:`End the session now — the job completes with the work produced so far, every turn's tokens and cost rolled into the total.`,wrapUpStep:`Settle this step`,wrapUpStepTooltip:`End the current step now — the loop advances with what the step has produced so far.`,wrappingUp:`Wrapping up…`,queued_one:`{{count}} queued message`,queued_other:`{{count}} queued messages`,waitingForStep:`Between steps — the loop is deciding what runs next. You can send a message when the next AI step starts.`,waitingForStepShort:`Waiting for the next step…`,sendDisabledEmpty:`Type a message first`,sendDisabledWaiting:`No active step session right now`},toast:{jobDeleted:`Job deleted`,cancelSignalSent:`Cancel signal sent`,cancelSignalSentDescription:`Job will stop at the next safe point`,failed:`Failed`,networkError:`Network error`,exportFailed:`Export failed`,exportFailedHttp:`Export failed (HTTP {{status}})`,jobRequeued:`Job re-queued`,spawnFailed:`Failed to spawn job`,finalizeScheduled:`Finalizing interactive job…`,finalizeFailed:`Failed to finalize job`,sendFailed:`Failed to send message`,wrapUpScheduled:`Wrapping up the job…`,wrapUpStepScheduled:`Settling the step — the loop advances with what it produced`}},s={inProgress:`Job in progress`,completed:`Job completed`,failed:`Job failed`,duration:`Duration`,cost:`Cost`,turns:`Turns`,tokens:`Tokens`,filesCount_one:`{{count}} file`,filesCount_other:`{{count}} files`,pipelineTotal:`Pipeline total ({{count}} phases)`,totalCost:`Total cost`,totalTokens:`Total tokens`,filesModified:`Files modified`,zoneInProgress:`In progress`,zoneFinal:`Final summary`,zoneFinalPending:`Final summary — calculated when finished`,pendingCaption:`Calculated when finished`,pendingTooltip:`This is the provider's real figure; it appears when the job finishes.`,costTooltip:`The real cost is billed by the provider when the job closes.`,liveTooltip:`Live`,explainer:`Cost, turns and tokens are the provider's real figures and appear when the job finishes.`,notAvailable:`Not available`,steps_one:`{{count}} step`,steps_other:`{{count}} steps`,activity:{editing:`Editing {{arg}}`,writing:`Writing {{arg}}`,reading:`Reading {{arg}}`,searching:`Searching “{{arg}}”`,running:`Running: {{arg}}`,thinking:`Thinking…`,reasoning:`Reasoning…`,working:`Working…`,connecting:`Connecting to the agent…`,starting:`Starting…`,delegating:`Delegating to {{arg}}`},pipelinePartial:`≥ shown — {{count}} phase(s) have no recorded cost yet`,pipelinePartialTooltip:`Some phases did not report cost, so this total is a lower bound.`,pipelineCostUnavailable:`Cost telemetry is unavailable for every phase.`,pipelineUsageUnavailable:`Token telemetry is unavailable for every phase.`,pipelineUsagePartial:`≥ shown — {{count}} phase(s) have no token telemetry`,pipelineUsageTooltip:`Providers may complete phases without exposing token telemetry; only known usage is included.`,costUnknownLocal:`Cost unknown (local engine)`,costUnknownLocalTooltip:`Cost unknown (local engine). Add rates to the connection to see an estimate.`},c={showMore:`+ {{count}} more`,showLess:`Show less`,deletedTicket:`#{{id}} (deleted)`,deletedTooltip:`Ticket no longer exists`},l={notFound:`Job not found`,cancelConfirmTitle:`Cancel job?`,cancelConfirmDescription:`The job will stop at the next safe point. This action cannot be undone.`,keepRunning:`Keep running`,cancelJob:`Cancel job`,stopRun:`Stop run`,stopRunConfirmTitle:`Stop this run?`,stopRunConfirmDescription:`The loop run will stop at the next step boundary. This action cannot be undone.`,toast:{cancelSignalSent:`Cancel signal sent`,cancelSignalSentDescription:`Job will stop at the next safe point`,stopSignalSent:`Stop signal sent`,stopSignalSentDescription:`The run will stop at the next step boundary`,cancelFailed:`Failed to cancel`,networkError:`Network error`}},u={title:`Job Comparison`,jobN:`Job {{n}}`,loadFailed:`Failed to load comparison: {{error}}`,duration:`Duration`,cost:`Cost`,tokensOut:`Tokens out`,tokensIn:`Tokens in`,cacheRead:`Cache read`,model:`Model`,phasesDone:`Phases done`,betterValueHint:`Green highlights indicate better value`},d={emptyTitle:`No jobs yet`,emptyDescription:`Run a command above to see your job history here`,loadFailed:`Failed to load jobs`,filterAll:`All ({{count}})`,filterStatus:`{{status}} ({{count}})`,fromDate:`From date`,toDate:`To date`,clear:`Clear`,exitCompareMode:`Exit compare mode`,compareTwoJobs:`Compare 2 jobs`,clearJobs:`Clear jobs`,selectTwoToCompare:`Select 2 jobs to compare`,selectOneMore:`Select 1 more job`,readyToCompare:`Ready — click compare`,compareAction:`Compare →`,colStatus:`Status`,colCommand:`Command`,colDuration:`Duration`,colTokens:`Tokens`,colCost:`Cost`,colStarted:`Started`,profileTooltip:`Profile: {{name}}`,pipelinePart:`Part of a pipeline`,pipelineDependsOn:`(depends on previous step)`,deleteProposal:`Delete proposal`,loadMore:`Load more ({{count}} remaining)`,priority:{critical:`critical`,high:`high`,normal:`normal`,low:`low`},clearModal:{title:`Clear Jobs`,jobsInHistory_one:`{{count}} job in history`,jobsInHistory_other:`{{count}} jobs in history`,clearAll_one:`Clear all {{count}} job`,clearAll_other:`Clear all {{count}} jobs`,orByRange:`Or clear by date range:`,fromPlaceholder:`From`,toPlaceholder:`To`,clearInRange_one:`Clear {{count}} job in range`,clearInRange_other:`Clear {{count}} jobs in range`,clearRange:`Clear range`},deleteProposalConfirm:{title:`Delete proposal?`,description:`This will permanently delete 1 proposal. This action cannot be undone.`},toast:{cleared_one:`Cleared {{count}} job`,cleared_other:`Cleared {{count}} jobs`,clearFailed:`Failed to clear jobs`,networkError:`Network error`}},f={none:`No active job`,noneHint:`Select a command below to start a job`,exitCode:`exit {{code}}`,cancelTooltip:`Send SIGTERM to the running claude process`,viewLogs:`View Logs`,toast:{cancelRequested:`Job cancellation requested`,cancelRequestedDescription:`Sending SIGTERM to the process`,cancelFailed:`Failed to cancel job`,networkError:`Network error canceling job`}},p={setup:`Setup`,iteration:`Iteration {{current}}/{{limit}}`,iterationBadge:`iter {{count}}`,follow:`Following live`,resumeFollow:`Resume follow`,expandAll:`Expand all`,collapseAll:`Collapse all`,copyStep:`Copy step`,copied:`Step copied to clipboard`,stepDetail:`Step details`,stepDetailTemplate:`Template`,stepDetailCommand:`Command`,copyCommand:`Copy`,interrupted:`Interrupted`,waiting:`Waiting for the next step…`,stepMapAria:`Loop step map`,stalled:`Stalled`,stalledIdle_one:`No provider output for {{count}} minute — the app stopped this attempt`,stalledIdle_other:`No provider output for {{count}} minutes — the app stopped this attempt`,providerLimit:`Provider limit`,providerLimitHint:`The provider answered with a usage or rate-limit notice, so the app stopped the run instead of cycling.`,paused:`Paused`,runtimeGraph:`Run graph`,graphFullscreen:`Full screen`,graphExitFullscreen:`Exit full screen`,graphBack:`Back`,graphOpenComponent:`Open component`,graphNoAttempts:`No recorded attempts`,graphState:{running:`Running`,paused:`Paused`,failed:`Failed`,stalled:`Stalled`,interrupted:`Interrupted`,ok:`Succeeded`,pending:`Pending`,unknown:`Unknown`},repeatFromHere:`Repeat from here`,forkFailed:`Could not create the linked run`,forkPending:`Retry the originally selected step to finish the pending fork.`,forkCreated:`Linked run created. Open it and resume from the selected checkpoint.`,openFork:`Open linked run`},m={loading:`Loading logs...`,empty:`No log output yet`,filterPlaceholder:`Filter logs...`,copySuccess:`Log copied to clipboard`,copyFailed:`Failed to copy log`,lineCount:`{{filtered}} / {{total}} lines`,jumpToBottom:`Jump to bottom`,phaseLines_one:`{{count}} line`,phaseLines_other:`{{count}} lines`,noMatchingLines:`No matching lines`,noOutput:`No output`,completed:`Completed`,turns_one:`{{count}} turn`,turns_other:`{{count}} turns`},h={title:`Run result`,execution:`Execution`,implementation:`Implementation`,validation:`Validation`,archive:`Archive`,delivery:`Delivery`,counters:`Steps: {{steps}} · Decider evaluations: {{evaluations}} · Agent turns: {{turns}}`,unavailable:`Unavailable`,evidence:`Evidence, exceptions and phase timings`,snapshot:`Recorded at completion: {{change}} · {{at}}`,acceptedBy:`Accepted by {{by}}`,required:`Required`,supplementary:`Supplementary`,attempts:`Attempts: {{count}}`,phaseCostUnavailable:`Cost per Core phase is unavailable; provider usage is attributed to loop steps.`,noCoreEvidence:`Acceptance evidence unavailable. Execution success alone does not confirm ticket completion.`,status:{success:`Succeeded`,failed:`Failed`,blocked:`Blocked`,stopped:`Stopped`,stalled:`Stalled`,complete:`Complete`,incomplete:`Incomplete`,verified:`Verified`,"with-exceptions":`Verified with exceptions`,pending:`Pending`,"pending-host":`Pending host delivery`,done:`Done`,running:`Running`,skipped:`Skipped`,passed:`Passed`,unavailable:`Unavailable`}},g={details:`Details`,phaseActivity:`{{phase}} · {{activity}}`,liveReported:`Reported by the provider so far; the final figures arrive when the job finishes.`,questionPending:`Answer the question`},_={statusLabel:n,statusTooltip:r,statusName:i,page:a,detail:o,statusPanel:s,ticketHeader:c,modal:l,comparison:u,recent:d,activeJob:f,loopExplorer:p,logViewer:m,completion:h,runHeader:g};export{t};
@@ -1 +1 @@
1
- var e={running:`läuft`,completed:`abgeschlossen`,done:`fertig`,failed:`fehlgeschlagen`,canceled:`abgebrochen`,queued:`in Warteschlange`,zombie:`Zombie`,skipped:`übersprungen`},t={running:`Job wird gerade ausgeführt`,completed:`Job erfolgreich abgeschlossen`,failed:`Job wurde mit einem Exit-Code ungleich null beendet`,canceled:`Job wurde manuell abgebrochen`,queued:`Job wartet in der Warteschlange`,queuedToRun:`Job wartet auf Ausführung`,zombie:`Job wurde nach längerer Inaktivität automatisch beendet`,skipped:`Job wurde übersprungen, weil ein übergeordneter Job in der Pipeline fehlgeschlagen ist`},n={running:`läuft`,completed:`abgeschlossen`,failed:`fehlgeschlagen`,canceled:`abgebrochen`,zombie_terminated:`Zombie`,queued:`in Warteschlange`,skipped:`übersprungen`},r={title:`Jobs`,exportJobs:`Jobs exportieren`,proposalDeleted:`Vorschlag gelöscht`,proposal:{title:`Vorschlag`,noContent:`Noch kein Inhalt für den Vorschlag.`,githubIssue:`GitHub-Issue:`,status:{input:`Wartet auf Eingabe`,exploring:`Wird untersucht`,review:`Bereit zur Prüfung`,refining:`Wird verfeinert`,creatingIssue:`Issue wird erstellt`,created:`Erstellt`,cancelled:`Abgebrochen`,unknown:`Unbekannter Status: {{status}}`}}},i={breadcrumbDashboard:`Dashboard`,breadcrumbJob:`Job #{{id}}`,notFound:`Job nicht gefunden`,notFoundDescription:`Die Job-ID „{{id}}“ existiert nicht`,backToDashboard:`Zurück zum Dashboard`,startedAgo:`Gestartet {{timeAgo}}`,queuedWaiting:`In Warteschlange – wartet auf Start`,exportDiagnostic:`Diagnose exportieren`,exportDiagnosticAria:`Diagnose-Bundle exportieren`,exportDiagnosticTooltip:`ZIP mit Telemetrie, Logs und Zusammenfassung für diesen Job herunterladen`,reExecute:`Erneut ausführen`,reExecuteTooltip:`Neuen Job mit demselben Befehl starten`,cancelJob:`Job abbrechen`,cancelJobTooltip:`SIGTERM an den laufenden Prozess senden. Der Job wird als abgebrochen markiert.`,cancelInteractive:`Verwerfen`,finalizeJob:`Job abschließen`,finalizing:`Wird abgeschlossen…`,finalizeJobTooltip:`Diese interaktive Sitzung beenden und Tokens sowie Kosten aller Turns in die Job-Gesamtsumme einrechnen.`,interactive:{ready:`Bereit – sende einen Prompt`,working:`Agent arbeitet…`,placeholder:`Sende eine Nachricht an den laufenden Job…`,send:`Senden`,liveTotals:"{{turns}} Turns · ${{cost}}",autoHint:`Dieser Job folgt seinem Plan und endet von selbst — Nachrichten sind optionale Steuerung.`,wrapUp:`Jetzt abschließen`,wrapUpTooltip:`Beendet die Session jetzt — der Job wird mit der bisher erzeugten Arbeit abgeschlossen, Tokens und Kosten jedes Turns fließen in die Summe ein.`,wrapUpStep:`Diesen Schritt abschließen`,wrapUpStepTooltip:`Beendet den aktuellen Schritt jetzt — der Loop geht mit dem weiter, was der Schritt bisher erzeugt hat.`,wrappingUp:`Wird abgeschlossen…`,queued_one:`{{count}} Nachricht in der Warteschlange`,queued_other:`{{count}} Nachrichten in der Warteschlange`,waitingForStep:`Zwischen den Schritten — der Loop entscheidet gerade, was als Nächstes läuft. Du kannst eine Nachricht senden, sobald der nächste KI-Schritt startet.`,waitingForStepShort:`Warten auf den nächsten Schritt…`,sendDisabledEmpty:`Schreibe zuerst eine Nachricht`,sendDisabledWaiting:`Gerade ist keine Schritt-Session aktiv`},toast:{jobDeleted:`Job gelöscht`,cancelSignalSent:`Abbruchsignal gesendet`,cancelSignalSentDescription:`Der Job stoppt am nächsten sicheren Punkt`,failed:`Fehlgeschlagen`,networkError:`Netzwerkfehler`,exportFailed:`Export fehlgeschlagen`,exportFailedHttp:`Export fehlgeschlagen (HTTP {{status}})`,jobRequeued:`Job erneut eingereiht`,spawnFailed:`Job konnte nicht gestartet werden`,finalizeScheduled:`Interaktiver Job wird abgeschlossen…`,finalizeFailed:`Job konnte nicht abgeschlossen werden`,sendFailed:`Nachricht konnte nicht gesendet werden`,wrapUpScheduled:`Job wird abgeschlossen…`,wrapUpStepScheduled:`Schritt wird abgeschlossen — der Loop geht mit dem Erzeugten weiter`}},a={inProgress:`Job läuft`,completed:`Job abgeschlossen`,failed:`Job fehlgeschlagen`,duration:`Dauer`,cost:`Kosten`,turns:`Turns`,tokens:`Tokens`,filesCount_one:`{{count}} Datei`,filesCount_other:`{{count}} Dateien`,pipelineTotal:`Pipeline gesamt ({{count}} Phasen)`,totalCost:`Gesamtkosten`,totalTokens:`Tokens gesamt`,filesModified:`Geänderte Dateien`,zoneInProgress:`Läuft`,zoneFinal:`Endabrechnung`,zoneFinalPending:`Endabrechnung — wird am Ende berechnet`,pendingCaption:`Wird am Ende berechnet`,pendingTooltip:`Dies ist der reale Wert des Anbieters; er erscheint, wenn der Job endet.`,costTooltip:`Die realen Kosten werden vom Anbieter beim Abschluss des Jobs berechnet.`,liveTooltip:`Live`,explainer:`Kosten, Runden und Tokens sind die realen Werte des Anbieters und erscheinen am Ende.`,notAvailable:`Nicht verfügbar`,steps_one:`{{count}} Schritt`,steps_other:`{{count}} Schritte`,activity:{editing:`Bearbeite {{arg}}`,writing:`Schreibe {{arg}}`,reading:`Lese {{arg}}`,searching:`Suche „{{arg}}“`,running:`Führe aus: {{arg}}`,thinking:`Denkt nach…`,reasoning:`Überlegt…`,working:`Arbeitet…`,connecting:`Verbinde mit dem Agenten…`,starting:`Startet…`,delegating:`Delegiere an {{arg}}`},pipelinePartial:`≥ angezeigt — {{count}} Phase(n) ohne erfasste Kosten`,pipelinePartialTooltip:`Einige Phasen wurden beendet, bevor ihre Kosten gemeldet wurden – dieser Gesamtwert ist eine Untergrenze.`,pipelineCostUnavailable:`Die Kostentelemetrie ist für alle Phasen nicht verfügbar.`,pipelineUsageUnavailable:`Die Token-Telemetrie ist für alle Phasen nicht verfügbar.`,pipelineUsagePartial:`≥ angezeigt — Phasen ohne Token-Telemetrie: {{count}}`,pipelineUsageTooltip:`Anbieter können Phasen abschließen, ohne Token-Telemetrie bereitzustellen; enthalten ist nur die bekannte Nutzung.`,costUnknownLocal:`Kosten unbekannt (lokale Engine)`,costUnknownLocalTooltip:`Kosten unbekannt (lokale Engine). Tarife in der Verbindung hinterlegen, um eine Schätzung zu sehen.`},o={showMore:`+ {{count}} weitere`,showLess:`Weniger anzeigen`,deletedTicket:`#{{id}} (gelöscht)`,deletedTooltip:`Ticket existiert nicht mehr`},s={notFound:`Job nicht gefunden`,cancelConfirmTitle:`Job abbrechen?`,cancelConfirmDescription:`Der Job stoppt am nächsten sicheren Punkt. Diese Aktion kann nicht rückgängig gemacht werden.`,keepRunning:`Weiterlaufen lassen`,cancelJob:`Job abbrechen`,stopRun:`Lauf stoppen`,stopRunConfirmTitle:`Diesen Lauf stoppen?`,stopRunConfirmDescription:`Der Loop-Lauf stoppt an der nächsten Schrittgrenze. Diese Aktion kann nicht rückgängig gemacht werden.`,toast:{cancelSignalSent:`Abbruchsignal gesendet`,cancelSignalSentDescription:`Der Job stoppt am nächsten sicheren Punkt`,stopSignalSent:`Stoppsignal gesendet`,stopSignalSentDescription:`Der Lauf stoppt an der nächsten Schrittgrenze`,cancelFailed:`Abbrechen fehlgeschlagen`,networkError:`Netzwerkfehler`}},c={title:`Job-Vergleich`,jobN:`Job {{n}}`,loadFailed:`Vergleich konnte nicht geladen werden: {{error}}`,duration:`Dauer`,cost:`Kosten`,tokensOut:`Ausgabe-Tokens`,tokensIn:`Eingabe-Tokens`,cacheRead:`Cache-Read`,model:`Modell`,phasesDone:`Abgeschlossene Phasen`,betterValueHint:`Grün hervorgehoben = besserer Wert`},l={emptyTitle:`Noch keine Jobs`,emptyDescription:`Führe oben einen Befehl aus, um hier deinen Job-Verlauf zu sehen`,loadFailed:`Jobs konnten nicht geladen werden`,filterAll:`Alle ({{count}})`,filterStatus:`{{status}} ({{count}})`,fromDate:`Von`,toDate:`Bis`,clear:`Zurücksetzen`,exitCompareMode:`Vergleichsmodus verlassen`,compareTwoJobs:`2 Jobs vergleichen`,clearJobs:`Jobs löschen`,selectTwoToCompare:`Wähle 2 Jobs zum Vergleichen`,selectOneMore:`Wähle 1 weiteren Job`,readyToCompare:`Bereit – auf Vergleichen klicken`,compareAction:`Vergleichen →`,colStatus:`Status`,colCommand:`Befehl`,colDuration:`Dauer`,colTokens:`Tokens`,colCost:`Kosten`,colStarted:`Gestartet`,profileTooltip:`Profil: {{name}}`,pipelinePart:`Teil einer Pipeline`,pipelineDependsOn:`(hängt vom vorherigen Schritt ab)`,deleteProposal:`Vorschlag löschen`,loadMore:`Mehr laden ({{count}} verbleibend)`,priority:{critical:`kritisch`,high:`hoch`,normal:`normal`,low:`niedrig`},clearModal:{title:`Jobs löschen`,jobsInHistory_one:`{{count}} Job im Verlauf`,jobsInHistory_other:`{{count}} Jobs im Verlauf`,clearAll_one:`{{count}} Job löschen`,clearAll_other:`Alle {{count}} Jobs löschen`,orByRange:`Oder nach Datumsbereich löschen:`,fromPlaceholder:`Von`,toPlaceholder:`Bis`,clearInRange_one:`{{count}} Job im Zeitraum löschen`,clearInRange_other:`{{count}} Jobs im Zeitraum löschen`,clearRange:`Zeitraum löschen`},deleteProposalConfirm:{title:`Vorschlag löschen?`,description:`Dadurch wird 1 Vorschlag dauerhaft gelöscht. Diese Aktion kann nicht rückgängig gemacht werden.`},toast:{cleared_one:`{{count}} Job gelöscht`,cleared_other:`{{count}} Jobs gelöscht`,clearFailed:`Jobs konnten nicht gelöscht werden`,networkError:`Netzwerkfehler`}},u={none:`Kein aktiver Job`,noneHint:`Wähle unten einen Befehl, um einen Job zu starten`,exitCode:`exit {{code}}`,cancelTooltip:`SIGTERM an den laufenden claude-Prozess senden`,viewLogs:`Logs anzeigen`,toast:{cancelRequested:`Job-Abbruch angefordert`,cancelRequestedDescription:`SIGTERM wird an den Prozess gesendet`,cancelFailed:`Job konnte nicht abgebrochen werden`,networkError:`Netzwerkfehler beim Abbrechen des Jobs`}},d={setup:`Vorbereitung`,iteration:`Iteration {{current}}/{{limit}}`,iterationBadge:`Iter. {{count}}`,follow:`Folgt live`,resumeFollow:`Verfolgung fortsetzen`,expandAll:`Alle ausklappen`,collapseAll:`Alle einklappen`,copyStep:`Schritt kopieren`,copied:`Schritt in die Zwischenablage kopiert`,stepDetail:`Schrittdetails`,stepDetailTemplate:`Vorlage`,stepDetailCommand:`Befehl`,copyCommand:`Kopieren`,interrupted:`Unterbrochen`,waiting:`Warte auf den nächsten Schritt…`,stepMapAria:`Loop-Schrittübersicht`,stalled:`Hängt`,stalledIdle_one:`{{count}} Minute ohne Provider-Ausgabe – die App hat diesen Versuch beendet`,stalledIdle_other:`{{count}} Minuten ohne Provider-Ausgabe – die App hat diesen Versuch beendet`,providerLimit:`Anbieter-Limit`,providerLimitHint:`Der Anbieter antwortete mit einem Nutzungslimit-Hinweis; die App hat den Lauf gestoppt statt weiterzudrehen.`,paused:`Pausiert`,runtimeGraph:`Ausführungsgraph`,graphBack:`Zurück`,graphOpenComponent:`Komponente öffnen`,graphNoAttempts:`Keine aufgezeichneten Versuche`,graphState:{running:`Läuft`,paused:`Pausiert`,failed:`Fehlgeschlagen`,stalled:`Ohne Fortschritt`,interrupted:`Unterbrochen`,ok:`Erfolgreich`,pending:`Ausstehend`,unknown:`Unbekannt`},repeatFromHere:`Ab hier wiederholen`,forkFailed:`Verknüpfter Lauf konnte nicht erstellt werden`,forkPending:`Wiederholen Sie den ursprünglich ausgewählten Schritt, um die ausstehende Abzweigung abzuschließen.`,forkCreated:`Verknüpfter Lauf erstellt. Öffnen Sie ihn und setzen Sie am ausgewählten Prüfpunkt fort.`,openFork:`Verknüpften Lauf öffnen`},f={loading:`Logs werden geladen…`,empty:`Noch keine Log-Ausgabe`,filterPlaceholder:`Logs filtern…`,copySuccess:`Log in die Zwischenablage kopiert`,copyFailed:`Log konnte nicht kopiert werden`,lineCount:`{{filtered}} / {{total}} Zeilen`,jumpToBottom:`Zum Ende springen`,phaseLines_one:`{{count}} Zeile`,phaseLines_other:`{{count}} Zeilen`,noMatchingLines:`Keine passenden Zeilen`,noOutput:`Keine Ausgabe`,completed:`Abgeschlossen`,turns_one:`{{count}} Turn`,turns_other:`{{count}} Turns`},p={title:`Ausführungsergebnis`,execution:`Ausführung`,implementation:`Implementierung`,validation:`Validierung`,archive:`Archivierung`,delivery:`Auslieferung`,counters:`Schritte: {{steps}} · Auswertungen: {{evaluations}} · Agentenrunden: {{turns}}`,unavailable:`Nicht verfügbar`,evidence:`Nachweise, Ausnahmen und Phasenzeiten`,snapshot:`Bei Abschluss erfasst: {{change}} · {{at}}`,acceptedBy:`Akzeptiert von {{by}}`,required:`Erforderlich`,supplementary:`Ergänzend`,attempts:`Versuche: {{count}}`,phaseCostUnavailable:`Kosten pro Core-Phase sind nicht verfügbar; der Anbieterverbrauch wird Schleifenschritten zugeordnet.`,noCoreEvidence:`Abnahmenachweise sind nicht verfügbar. Eine erfolgreiche Ausführung allein bestätigt keinen abgeschlossenen Vorgang.`,status:{success:`Erfolgreich`,failed:`Fehlgeschlagen`,blocked:`Blockiert`,stopped:`Gestoppt`,stalled:`Ohne Fortschritt`,complete:`Abgeschlossen`,incomplete:`Unvollständig`,verified:`Verifiziert`,"with-exceptions":`Mit Ausnahmen verifiziert`,pending:`Ausstehend`,"pending-host":`Auslieferung durch Host ausstehend`,done:`Abgeschlossen`,running:`Läuft`,skipped:`Übersprungen`,passed:`Bestanden`,unavailable:`Nicht verfügbar`}},m={details:`Details`,phaseActivity:`{{phase}} · {{activity}}`,liveReported:`Bisher vom Anbieter gemeldet; die endgültigen Zahlen kommen, wenn der Job endet.`,questionPending:`Frage beantworten`},h={statusLabel:e,statusTooltip:t,statusName:n,page:r,detail:i,statusPanel:a,ticketHeader:o,modal:s,comparison:c,recent:l,activeJob:u,loopExplorer:d,logViewer:f,completion:p,runHeader:m};export{u as activeJob,c as comparison,p as completion,h as default,i as detail,f as logViewer,d as loopExplorer,s as modal,r as page,l as recent,m as runHeader,e as statusLabel,n as statusName,a as statusPanel,t as statusTooltip,o as ticketHeader};
1
+ var e={running:`läuft`,completed:`abgeschlossen`,done:`fertig`,failed:`fehlgeschlagen`,canceled:`abgebrochen`,queued:`in Warteschlange`,zombie:`Zombie`,skipped:`übersprungen`},t={running:`Job wird gerade ausgeführt`,completed:`Job erfolgreich abgeschlossen`,failed:`Job wurde mit einem Exit-Code ungleich null beendet`,canceled:`Job wurde manuell abgebrochen`,queued:`Job wartet in der Warteschlange`,queuedToRun:`Job wartet auf Ausführung`,zombie:`Job wurde nach längerer Inaktivität automatisch beendet`,skipped:`Job wurde übersprungen, weil ein übergeordneter Job in der Pipeline fehlgeschlagen ist`},n={running:`läuft`,completed:`abgeschlossen`,failed:`fehlgeschlagen`,canceled:`abgebrochen`,zombie_terminated:`Zombie`,queued:`in Warteschlange`,skipped:`übersprungen`},r={title:`Jobs`,exportJobs:`Jobs exportieren`,proposalDeleted:`Vorschlag gelöscht`,proposal:{title:`Vorschlag`,noContent:`Noch kein Inhalt für den Vorschlag.`,githubIssue:`GitHub-Issue:`,status:{input:`Wartet auf Eingabe`,exploring:`Wird untersucht`,review:`Bereit zur Prüfung`,refining:`Wird verfeinert`,creatingIssue:`Issue wird erstellt`,created:`Erstellt`,cancelled:`Abgebrochen`,unknown:`Unbekannter Status: {{status}}`}}},i={breadcrumbDashboard:`Dashboard`,breadcrumbJob:`Job #{{id}}`,notFound:`Job nicht gefunden`,notFoundDescription:`Die Job-ID „{{id}}“ existiert nicht`,backToDashboard:`Zurück zum Dashboard`,startedAgo:`Gestartet {{timeAgo}}`,queuedWaiting:`In Warteschlange – wartet auf Start`,exportDiagnostic:`Diagnose exportieren`,exportDiagnosticAria:`Diagnose-Bundle exportieren`,exportDiagnosticTooltip:`ZIP mit Telemetrie, Logs und Zusammenfassung für diesen Job herunterladen`,reExecute:`Erneut ausführen`,reExecuteTooltip:`Neuen Job mit demselben Befehl starten`,cancelJob:`Job abbrechen`,cancelJobTooltip:`SIGTERM an den laufenden Prozess senden. Der Job wird als abgebrochen markiert.`,cancelInteractive:`Verwerfen`,finalizeJob:`Job abschließen`,finalizing:`Wird abgeschlossen…`,finalizeJobTooltip:`Diese interaktive Sitzung beenden und Tokens sowie Kosten aller Turns in die Job-Gesamtsumme einrechnen.`,interactive:{ready:`Bereit – sende einen Prompt`,working:`Agent arbeitet…`,placeholder:`Sende eine Nachricht an den laufenden Job…`,send:`Senden`,liveTotals:"{{turns}} Turns · ${{cost}}",autoHint:`Dieser Job folgt seinem Plan und endet von selbst — Nachrichten sind optionale Steuerung.`,wrapUp:`Jetzt abschließen`,wrapUpTooltip:`Beendet die Session jetzt — der Job wird mit der bisher erzeugten Arbeit abgeschlossen, Tokens und Kosten jedes Turns fließen in die Summe ein.`,wrapUpStep:`Diesen Schritt abschließen`,wrapUpStepTooltip:`Beendet den aktuellen Schritt jetzt — der Loop geht mit dem weiter, was der Schritt bisher erzeugt hat.`,wrappingUp:`Wird abgeschlossen…`,queued_one:`{{count}} Nachricht in der Warteschlange`,queued_other:`{{count}} Nachrichten in der Warteschlange`,waitingForStep:`Zwischen den Schritten — der Loop entscheidet gerade, was als Nächstes läuft. Du kannst eine Nachricht senden, sobald der nächste KI-Schritt startet.`,waitingForStepShort:`Warten auf den nächsten Schritt…`,sendDisabledEmpty:`Schreibe zuerst eine Nachricht`,sendDisabledWaiting:`Gerade ist keine Schritt-Session aktiv`},toast:{jobDeleted:`Job gelöscht`,cancelSignalSent:`Abbruchsignal gesendet`,cancelSignalSentDescription:`Der Job stoppt am nächsten sicheren Punkt`,failed:`Fehlgeschlagen`,networkError:`Netzwerkfehler`,exportFailed:`Export fehlgeschlagen`,exportFailedHttp:`Export fehlgeschlagen (HTTP {{status}})`,jobRequeued:`Job erneut eingereiht`,spawnFailed:`Job konnte nicht gestartet werden`,finalizeScheduled:`Interaktiver Job wird abgeschlossen…`,finalizeFailed:`Job konnte nicht abgeschlossen werden`,sendFailed:`Nachricht konnte nicht gesendet werden`,wrapUpScheduled:`Job wird abgeschlossen…`,wrapUpStepScheduled:`Schritt wird abgeschlossen — der Loop geht mit dem Erzeugten weiter`}},a={inProgress:`Job läuft`,completed:`Job abgeschlossen`,failed:`Job fehlgeschlagen`,duration:`Dauer`,cost:`Kosten`,turns:`Turns`,tokens:`Tokens`,filesCount_one:`{{count}} Datei`,filesCount_other:`{{count}} Dateien`,pipelineTotal:`Pipeline gesamt ({{count}} Phasen)`,totalCost:`Gesamtkosten`,totalTokens:`Tokens gesamt`,filesModified:`Geänderte Dateien`,zoneInProgress:`Läuft`,zoneFinal:`Endabrechnung`,zoneFinalPending:`Endabrechnung — wird am Ende berechnet`,pendingCaption:`Wird am Ende berechnet`,pendingTooltip:`Dies ist der reale Wert des Anbieters; er erscheint, wenn der Job endet.`,costTooltip:`Die realen Kosten werden vom Anbieter beim Abschluss des Jobs berechnet.`,liveTooltip:`Live`,explainer:`Kosten, Runden und Tokens sind die realen Werte des Anbieters und erscheinen am Ende.`,notAvailable:`Nicht verfügbar`,steps_one:`{{count}} Schritt`,steps_other:`{{count}} Schritte`,activity:{editing:`Bearbeite {{arg}}`,writing:`Schreibe {{arg}}`,reading:`Lese {{arg}}`,searching:`Suche „{{arg}}“`,running:`Führe aus: {{arg}}`,thinking:`Denkt nach…`,reasoning:`Überlegt…`,working:`Arbeitet…`,connecting:`Verbinde mit dem Agenten…`,starting:`Startet…`,delegating:`Delegiere an {{arg}}`},pipelinePartial:`≥ angezeigt — {{count}} Phase(n) ohne erfasste Kosten`,pipelinePartialTooltip:`Einige Phasen wurden beendet, bevor ihre Kosten gemeldet wurden – dieser Gesamtwert ist eine Untergrenze.`,pipelineCostUnavailable:`Die Kostentelemetrie ist für alle Phasen nicht verfügbar.`,pipelineUsageUnavailable:`Die Token-Telemetrie ist für alle Phasen nicht verfügbar.`,pipelineUsagePartial:`≥ angezeigt — Phasen ohne Token-Telemetrie: {{count}}`,pipelineUsageTooltip:`Anbieter können Phasen abschließen, ohne Token-Telemetrie bereitzustellen; enthalten ist nur die bekannte Nutzung.`,costUnknownLocal:`Kosten unbekannt (lokale Engine)`,costUnknownLocalTooltip:`Kosten unbekannt (lokale Engine). Tarife in der Verbindung hinterlegen, um eine Schätzung zu sehen.`},o={showMore:`+ {{count}} weitere`,showLess:`Weniger anzeigen`,deletedTicket:`#{{id}} (gelöscht)`,deletedTooltip:`Ticket existiert nicht mehr`},s={notFound:`Job nicht gefunden`,cancelConfirmTitle:`Job abbrechen?`,cancelConfirmDescription:`Der Job stoppt am nächsten sicheren Punkt. Diese Aktion kann nicht rückgängig gemacht werden.`,keepRunning:`Weiterlaufen lassen`,cancelJob:`Job abbrechen`,stopRun:`Lauf stoppen`,stopRunConfirmTitle:`Diesen Lauf stoppen?`,stopRunConfirmDescription:`Der Loop-Lauf stoppt an der nächsten Schrittgrenze. Diese Aktion kann nicht rückgängig gemacht werden.`,toast:{cancelSignalSent:`Abbruchsignal gesendet`,cancelSignalSentDescription:`Der Job stoppt am nächsten sicheren Punkt`,stopSignalSent:`Stoppsignal gesendet`,stopSignalSentDescription:`Der Lauf stoppt an der nächsten Schrittgrenze`,cancelFailed:`Abbrechen fehlgeschlagen`,networkError:`Netzwerkfehler`}},c={title:`Job-Vergleich`,jobN:`Job {{n}}`,loadFailed:`Vergleich konnte nicht geladen werden: {{error}}`,duration:`Dauer`,cost:`Kosten`,tokensOut:`Ausgabe-Tokens`,tokensIn:`Eingabe-Tokens`,cacheRead:`Cache-Read`,model:`Modell`,phasesDone:`Abgeschlossene Phasen`,betterValueHint:`Grün hervorgehoben = besserer Wert`},l={emptyTitle:`Noch keine Jobs`,emptyDescription:`Führe oben einen Befehl aus, um hier deinen Job-Verlauf zu sehen`,loadFailed:`Jobs konnten nicht geladen werden`,filterAll:`Alle ({{count}})`,filterStatus:`{{status}} ({{count}})`,fromDate:`Von`,toDate:`Bis`,clear:`Zurücksetzen`,exitCompareMode:`Vergleichsmodus verlassen`,compareTwoJobs:`2 Jobs vergleichen`,clearJobs:`Jobs löschen`,selectTwoToCompare:`Wähle 2 Jobs zum Vergleichen`,selectOneMore:`Wähle 1 weiteren Job`,readyToCompare:`Bereit – auf Vergleichen klicken`,compareAction:`Vergleichen →`,colStatus:`Status`,colCommand:`Befehl`,colDuration:`Dauer`,colTokens:`Tokens`,colCost:`Kosten`,colStarted:`Gestartet`,profileTooltip:`Profil: {{name}}`,pipelinePart:`Teil einer Pipeline`,pipelineDependsOn:`(hängt vom vorherigen Schritt ab)`,deleteProposal:`Vorschlag löschen`,loadMore:`Mehr laden ({{count}} verbleibend)`,priority:{critical:`kritisch`,high:`hoch`,normal:`normal`,low:`niedrig`},clearModal:{title:`Jobs löschen`,jobsInHistory_one:`{{count}} Job im Verlauf`,jobsInHistory_other:`{{count}} Jobs im Verlauf`,clearAll_one:`{{count}} Job löschen`,clearAll_other:`Alle {{count}} Jobs löschen`,orByRange:`Oder nach Datumsbereich löschen:`,fromPlaceholder:`Von`,toPlaceholder:`Bis`,clearInRange_one:`{{count}} Job im Zeitraum löschen`,clearInRange_other:`{{count}} Jobs im Zeitraum löschen`,clearRange:`Zeitraum löschen`},deleteProposalConfirm:{title:`Vorschlag löschen?`,description:`Dadurch wird 1 Vorschlag dauerhaft gelöscht. Diese Aktion kann nicht rückgängig gemacht werden.`},toast:{cleared_one:`{{count}} Job gelöscht`,cleared_other:`{{count}} Jobs gelöscht`,clearFailed:`Jobs konnten nicht gelöscht werden`,networkError:`Netzwerkfehler`}},u={none:`Kein aktiver Job`,noneHint:`Wähle unten einen Befehl, um einen Job zu starten`,exitCode:`exit {{code}}`,cancelTooltip:`SIGTERM an den laufenden claude-Prozess senden`,viewLogs:`Logs anzeigen`,toast:{cancelRequested:`Job-Abbruch angefordert`,cancelRequestedDescription:`SIGTERM wird an den Prozess gesendet`,cancelFailed:`Job konnte nicht abgebrochen werden`,networkError:`Netzwerkfehler beim Abbrechen des Jobs`}},d={setup:`Vorbereitung`,iteration:`Iteration {{current}}/{{limit}}`,iterationBadge:`Iter. {{count}}`,follow:`Folgt live`,resumeFollow:`Verfolgung fortsetzen`,expandAll:`Alle ausklappen`,collapseAll:`Alle einklappen`,copyStep:`Schritt kopieren`,copied:`Schritt in die Zwischenablage kopiert`,stepDetail:`Schrittdetails`,stepDetailTemplate:`Vorlage`,stepDetailCommand:`Befehl`,copyCommand:`Kopieren`,interrupted:`Unterbrochen`,waiting:`Warte auf den nächsten Schritt…`,stepMapAria:`Loop-Schrittübersicht`,stalled:`Hängt`,stalledIdle_one:`{{count}} Minute ohne Provider-Ausgabe – die App hat diesen Versuch beendet`,stalledIdle_other:`{{count}} Minuten ohne Provider-Ausgabe – die App hat diesen Versuch beendet`,providerLimit:`Anbieter-Limit`,providerLimitHint:`Der Anbieter antwortete mit einem Nutzungslimit-Hinweis; die App hat den Lauf gestoppt statt weiterzudrehen.`,paused:`Pausiert`,runtimeGraph:`Ausführungsgraph`,graphFullscreen:`Vollbild`,graphExitFullscreen:`Vollbild verlassen`,graphBack:`Zurück`,graphOpenComponent:`Komponente öffnen`,graphNoAttempts:`Keine aufgezeichneten Versuche`,graphState:{running:`Läuft`,paused:`Pausiert`,failed:`Fehlgeschlagen`,stalled:`Ohne Fortschritt`,interrupted:`Unterbrochen`,ok:`Erfolgreich`,pending:`Ausstehend`,unknown:`Unbekannt`},repeatFromHere:`Ab hier wiederholen`,forkFailed:`Verknüpfter Lauf konnte nicht erstellt werden`,forkPending:`Wiederholen Sie den ursprünglich ausgewählten Schritt, um die ausstehende Abzweigung abzuschließen.`,forkCreated:`Verknüpfter Lauf erstellt. Öffnen Sie ihn und setzen Sie am ausgewählten Prüfpunkt fort.`,openFork:`Verknüpften Lauf öffnen`},f={loading:`Logs werden geladen…`,empty:`Noch keine Log-Ausgabe`,filterPlaceholder:`Logs filtern…`,copySuccess:`Log in die Zwischenablage kopiert`,copyFailed:`Log konnte nicht kopiert werden`,lineCount:`{{filtered}} / {{total}} Zeilen`,jumpToBottom:`Zum Ende springen`,phaseLines_one:`{{count}} Zeile`,phaseLines_other:`{{count}} Zeilen`,noMatchingLines:`Keine passenden Zeilen`,noOutput:`Keine Ausgabe`,completed:`Abgeschlossen`,turns_one:`{{count}} Turn`,turns_other:`{{count}} Turns`},p={title:`Ausführungsergebnis`,execution:`Ausführung`,implementation:`Implementierung`,validation:`Validierung`,archive:`Archivierung`,delivery:`Auslieferung`,counters:`Schritte: {{steps}} · Auswertungen: {{evaluations}} · Agentenrunden: {{turns}}`,unavailable:`Nicht verfügbar`,evidence:`Nachweise, Ausnahmen und Phasenzeiten`,snapshot:`Bei Abschluss erfasst: {{change}} · {{at}}`,acceptedBy:`Akzeptiert von {{by}}`,required:`Erforderlich`,supplementary:`Ergänzend`,attempts:`Versuche: {{count}}`,phaseCostUnavailable:`Kosten pro Core-Phase sind nicht verfügbar; der Anbieterverbrauch wird Schleifenschritten zugeordnet.`,noCoreEvidence:`Abnahmenachweise sind nicht verfügbar. Eine erfolgreiche Ausführung allein bestätigt keinen abgeschlossenen Vorgang.`,status:{success:`Erfolgreich`,failed:`Fehlgeschlagen`,blocked:`Blockiert`,stopped:`Gestoppt`,stalled:`Ohne Fortschritt`,complete:`Abgeschlossen`,incomplete:`Unvollständig`,verified:`Verifiziert`,"with-exceptions":`Mit Ausnahmen verifiziert`,pending:`Ausstehend`,"pending-host":`Auslieferung durch Host ausstehend`,done:`Abgeschlossen`,running:`Läuft`,skipped:`Übersprungen`,passed:`Bestanden`,unavailable:`Nicht verfügbar`}},m={details:`Details`,phaseActivity:`{{phase}} · {{activity}}`,liveReported:`Bisher vom Anbieter gemeldet; die endgültigen Zahlen kommen, wenn der Job endet.`,questionPending:`Frage beantworten`},h={statusLabel:e,statusTooltip:t,statusName:n,page:r,detail:i,statusPanel:a,ticketHeader:o,modal:s,comparison:c,recent:l,activeJob:u,loopExplorer:d,logViewer:f,completion:p,runHeader:m};export{u as activeJob,c as comparison,p as completion,h as default,i as detail,f as logViewer,d as loopExplorer,s as modal,r as page,l as recent,m as runHeader,e as statusLabel,n as statusName,a as statusPanel,t as statusTooltip,o as ticketHeader};
@@ -1 +1 @@
1
- var e={running:`运行中`,completed:`已完成`,done:`完成`,failed:`失败`,canceled:`已取消`,queued:`排队中`,zombie:`僵尸`,skipped:`已跳过`},t={running:`任务正在执行`,completed:`任务已成功完成`,failed:`任务以非零退出码结束`,canceled:`任务已被手动取消`,queued:`任务正在队列中等待`,queuedToRun:`任务正在等待运行`,zombie:`任务因长时间无活动而被自动终止`,skipped:`因流水线中的上游任务失败,此任务被跳过`},n={running:`运行中`,completed:`已完成`,failed:`失败`,canceled:`已取消`,zombie_terminated:`僵尸`,queued:`排队中`,skipped:`已跳过`},r={title:`任务`,exportJobs:`导出任务`,proposalDeleted:`提案已删除`,proposal:{title:`提案`,noContent:`暂无提案内容。`,githubIssue:`GitHub Issue:`,status:{input:`等待输入`,exploring:`探索中`,review:`等待审核`,refining:`优化中`,creatingIssue:`正在创建议题`,created:`已创建`,cancelled:`已取消`,unknown:`未知状态:{{status}}`}}},i={breadcrumbDashboard:`Dashboard`,breadcrumbJob:`任务 #{{id}}`,notFound:`未找到任务`,notFoundDescription:`任务 ID“{{id}}”不存在`,backToDashboard:`返回 Dashboard`,startedAgo:`开始于 {{timeAgo}}`,queuedWaiting:`已排队——等待开始`,exportDiagnostic:`导出诊断`,exportDiagnosticAria:`导出诊断包`,exportDiagnosticTooltip:`下载包含此任务遥测、日志和摘要的 ZIP`,reExecute:`重新执行`,reExecuteTooltip:`用相同命令启动一个新任务`,cancelJob:`取消任务`,cancelJobTooltip:`向运行中的进程发送 SIGTERM。任务将被标记为已取消。`,cancelInteractive:`丢弃`,finalizeJob:`定稿任务`,finalizing:`正在定稿…`,finalizeJobTooltip:`结束此交互会话,并将每一轮的 token 和成本汇总到任务总计中。`,interactive:{ready:`就绪 — 发送提示`,working:`代理处理中…`,placeholder:`向运行中的任务发送消息…`,send:`发送`,liveTotals:"{{turns}} 轮 · ${{cost}}",autoHint:`该任务会按计划自行完成 — 消息只是可选的引导。`,wrapUp:`立即收尾`,wrapUpTooltip:`立即结束会话 — 任务以目前已产出的工作完成,每一轮的 token 与费用都会计入总额。`,wrapUpStep:`结算此步骤`,wrapUpStepTooltip:`立即结束当前步骤 — 循环将带着该步骤目前的产出继续推进。`,wrappingUp:`正在收尾…`,queued_one:`{{count}} 条排队消息`,queued_other:`{{count}} 条排队消息`,waitingForStep:`步骤间隙 — 循环正在决定接下来运行什么。下一个 AI 步骤开始后即可发送消息。`,waitingForStepShort:`等待下一个步骤…`,sendDisabledEmpty:`请先输入消息`,sendDisabledWaiting:`当前没有活跃的步骤会话`},toast:{jobDeleted:`任务已删除`,cancelSignalSent:`已发送取消信号`,cancelSignalSentDescription:`任务将在下一个安全点停止`,failed:`失败`,networkError:`网络错误`,exportFailed:`导出失败`,exportFailedHttp:`导出失败(HTTP {{status}})`,jobRequeued:`任务已重新排队`,spawnFailed:`启动任务失败`,finalizeScheduled:`正在定稿交互任务…`,finalizeFailed:`任务定稿失败`,sendFailed:`发送消息失败`,wrapUpScheduled:`正在收尾任务…`,wrapUpStepScheduled:`正在结算步骤 — 循环将带着已有产出继续`}},a={inProgress:`任务进行中`,completed:`任务已完成`,failed:`任务失败`,duration:`时长`,cost:`成本`,turns:`轮次`,tokens:`Token`,filesCount_one:`{{count}} 个文件`,filesCount_other:`{{count}} 个文件`,pipelineTotal:`流水线合计({{count}} 个阶段)`,totalCost:`总成本`,totalTokens:`总 token 数`,filesModified:`修改的文件`,zoneInProgress:`进行中`,zoneFinal:`最终汇总`,zoneFinalPending:`最终汇总 — 完成后计算`,pendingCaption:`完成后计算`,pendingTooltip:`这是提供方的真实数字;任务完成后显示。`,costTooltip:`真实费用由提供方在任务结束时计费。`,liveTooltip:`实时`,explainer:`费用、轮次和令牌是提供方的真实数字,将在任务完成后显示。`,notAvailable:`不可用`,steps_one:`{{count}} 步`,steps_other:`{{count}} 步`,activity:{editing:`正在编辑 {{arg}}`,writing:`正在写入 {{arg}}`,reading:`正在读取 {{arg}}`,searching:`正在搜索“{{arg}}”`,running:`正在执行:{{arg}}`,thinking:`正在思考…`,reasoning:`正在推理…`,working:`正在处理…`,connecting:`正在连接代理…`,starting:`正在启动…`,delegating:`委派给 {{arg}}`},pipelinePartial:`≥ 表示部分 — {{count}} 个阶段尚无成本记录`,pipelinePartialTooltip:`部分阶段在报告成本前已结束,因此该总额为下限。`,pipelineCostUnavailable:`所有阶段的成本遥测数据均不可用。`,pipelineUsageUnavailable:`所有阶段的 token 遥测数据均不可用。`,pipelineUsagePartial:`≥ 显示值 — {{count}} 个阶段无 token 遥测数据`,pipelineUsageTooltip:`提供方可能在不提供 token 遥测数据的情况下完成阶段;仅计入已知用量。`,costUnknownLocal:`费用未知(本地引擎)`,costUnknownLocalTooltip:`费用未知(本地引擎)。为连接添加费率以查看估算。`},o={showMore:`+ 还有 {{count}} 个`,showLess:`收起`,deletedTicket:`#{{id}}(已删除)`,deletedTooltip:`工单已不存在`},s={notFound:`未找到任务`,cancelConfirmTitle:`取消任务?`,cancelConfirmDescription:`任务将在下一个安全点停止。此操作无法撤销。`,keepRunning:`继续运行`,cancelJob:`取消任务`,stopRun:`停止运行`,stopRunConfirmTitle:`停止此运行?`,stopRunConfirmDescription:`循环运行将在下一个步骤边界停止。此操作无法撤销。`,toast:{cancelSignalSent:`已发送取消信号`,cancelSignalSentDescription:`任务将在下一个安全点停止`,stopSignalSent:`已发送停止信号`,stopSignalSentDescription:`运行将在下一个步骤边界停止`,cancelFailed:`取消失败`,networkError:`网络错误`}},c={title:`任务对比`,jobN:`任务 {{n}}`,loadFailed:`加载对比失败:{{error}}`,duration:`时长`,cost:`成本`,tokensOut:`输出 token`,tokensIn:`输入 token`,cacheRead:`缓存读取`,model:`模型`,phasesDone:`完成阶段数`,betterValueHint:`绿色高亮表示更优值`},l={emptyTitle:`暂无任务`,emptyDescription:`在上方运行命令后,任务历史会显示在这里`,loadFailed:`加载任务失败`,filterAll:`全部({{count}})`,filterStatus:`{{status}}({{count}})`,fromDate:`开始日期`,toDate:`结束日期`,clear:`清除`,exitCompareMode:`退出对比模式`,compareTwoJobs:`对比 2 个任务`,clearJobs:`清空任务`,selectTwoToCompare:`选择 2 个任务进行对比`,selectOneMore:`再选择 1 个任务`,readyToCompare:`就绪——点击对比`,compareAction:`对比 →`,colStatus:`状态`,colCommand:`命令`,colDuration:`时长`,colTokens:`Token`,colCost:`成本`,colStarted:`开始时间`,profileTooltip:`Profile:{{name}}`,pipelinePart:`属于某个流水线`,pipelineDependsOn:`(依赖上一步)`,deleteProposal:`删除提案`,loadMore:`加载更多(剩余 {{count}} 个)`,priority:{critical:`紧急`,high:`高`,normal:`普通`,low:`低`},clearModal:{title:`清空任务`,jobsInHistory_one:`历史中有 {{count}} 个任务`,jobsInHistory_other:`历史中有 {{count}} 个任务`,clearAll_one:`清空全部 {{count}} 个任务`,clearAll_other:`清空全部 {{count}} 个任务`,orByRange:`或按日期范围清除:`,fromPlaceholder:`开始`,toPlaceholder:`结束`,clearInRange_one:`清除范围内 {{count}} 个任务`,clearInRange_other:`清除范围内 {{count}} 个任务`,clearRange:`清除范围`},deleteProposalConfirm:{title:`删除提案?`,description:`将永久删除 1 个提案。此操作无法撤销。`},toast:{cleared_one:`已清除 {{count}} 个任务`,cleared_other:`已清除 {{count}} 个任务`,clearFailed:`清除任务失败`,networkError:`网络错误`}},u={none:`没有进行中的任务`,noneHint:`在下方选择一个命令以启动任务`,exitCode:`退出码 {{code}}`,cancelTooltip:`向运行中的 claude 进程发送 SIGTERM`,viewLogs:`查看日志`,toast:{cancelRequested:`已请求取消任务`,cancelRequestedDescription:`正在向进程发送 SIGTERM`,cancelFailed:`取消任务失败`,networkError:`取消任务时发生网络错误`}},d={setup:`准备`,iteration:`迭代 {{current}}/{{limit}}`,iterationBadge:`迭代 {{count}}`,follow:`实时跟随中`,resumeFollow:`恢复跟随`,expandAll:`全部展开`,collapseAll:`全部折叠`,copyStep:`复制步骤`,copied:`步骤已复制到剪贴板`,stepDetail:`步骤详情`,stepDetailTemplate:`模板`,stepDetailCommand:`命令`,copyCommand:`复制`,interrupted:`已中断`,waiting:`等待下一个步骤…`,stepMapAria:`循环步骤图`,stalled:`已停滞`,stalledIdle_one:`{{count}} 分钟内无提供方输出,应用已停止此次尝试`,stalledIdle_other:`{{count}} 分钟内无提供方输出,应用已停止此次尝试`,providerLimit:`提供商限额`,providerLimitHint:`提供商返回了用量限额提示,应用已停止运行而不是继续循环。`,paused:`已暂停`,runtimeGraph:`执行图`,graphBack:`返回`,graphOpenComponent:`打开组件`,graphNoAttempts:`没有已记录的尝试`,graphState:{running:`运行中`,paused:`已暂停`,failed:`失败`,stalled:`无进展`,interrupted:`已中断`,ok:`成功`,pending:`待处理`,unknown:`未知`},repeatFromHere:`从此处重复`,forkFailed:`无法创建关联运行`,forkPending:`请重试最初选择的步骤,以完成待处理的分支。`,forkCreated:`已创建关联运行。请打开并从所选检查点恢复。`,openFork:`打开关联运行`},f={loading:`正在加载日志…`,empty:`暂无日志输出`,filterPlaceholder:`筛选日志…`,copySuccess:`日志已复制到剪贴板`,copyFailed:`复制日志失败`,lineCount:`{{filtered}} / {{total}} 行`,jumpToBottom:`跳到底部`,phaseLines_one:`{{count}} 行`,phaseLines_other:`{{count}} 行`,noMatchingLines:`没有匹配的行`,noOutput:`无输出`,completed:`已完成`,turns_one:`{{count}} 轮`,turns_other:`{{count}} 轮`},p={title:`运行结果`,execution:`执行`,implementation:`实现`,validation:`验证`,archive:`归档`,delivery:`交付`,counters:`{{steps}} 个步骤 · {{evaluations}} 次决策评估 · {{turns}} 轮代理对话`,unavailable:`不可用`,evidence:`证据、例外和阶段耗时`,snapshot:`完成时记录:{{change}} · {{at}}`,acceptedBy:`由 {{by}} 接受`,required:`必需`,supplementary:`补充`,attempts:`{{count}} 次尝试`,phaseCostUnavailable:`Core 各阶段成本不可用;供应商用量归属于循环步骤。`,noCoreEvidence:`验收证据不可用。执行成功本身并不代表工单已完成。`,status:{success:`成功`,failed:`失败`,blocked:`已阻塞`,stopped:`已停止`,stalled:`无进展`,complete:`已完成`,incomplete:`未完成`,verified:`已验证`,"with-exceptions":`已验证(含例外)`,pending:`待处理`,"pending-host":`等待宿主交付`,done:`已完成`,running:`进行中`,skipped:`已跳过`,passed:`通过`,unavailable:`不可用`}},m={details:`详情`,phaseActivity:`{{phase}} · {{activity}}`,liveReported:`截至目前由提供方上报;最终数据在任务结束时给出。`,questionPending:`回答问题`},h={statusLabel:e,statusTooltip:t,statusName:n,page:r,detail:i,statusPanel:a,ticketHeader:o,modal:s,comparison:c,recent:l,activeJob:u,loopExplorer:d,logViewer:f,completion:p,runHeader:m};export{u as activeJob,c as comparison,p as completion,h as default,i as detail,f as logViewer,d as loopExplorer,s as modal,r as page,l as recent,m as runHeader,e as statusLabel,n as statusName,a as statusPanel,t as statusTooltip,o as ticketHeader};
1
+ var e={running:`运行中`,completed:`已完成`,done:`完成`,failed:`失败`,canceled:`已取消`,queued:`排队中`,zombie:`僵尸`,skipped:`已跳过`},t={running:`任务正在执行`,completed:`任务已成功完成`,failed:`任务以非零退出码结束`,canceled:`任务已被手动取消`,queued:`任务正在队列中等待`,queuedToRun:`任务正在等待运行`,zombie:`任务因长时间无活动而被自动终止`,skipped:`因流水线中的上游任务失败,此任务被跳过`},n={running:`运行中`,completed:`已完成`,failed:`失败`,canceled:`已取消`,zombie_terminated:`僵尸`,queued:`排队中`,skipped:`已跳过`},r={title:`任务`,exportJobs:`导出任务`,proposalDeleted:`提案已删除`,proposal:{title:`提案`,noContent:`暂无提案内容。`,githubIssue:`GitHub Issue:`,status:{input:`等待输入`,exploring:`探索中`,review:`等待审核`,refining:`优化中`,creatingIssue:`正在创建议题`,created:`已创建`,cancelled:`已取消`,unknown:`未知状态:{{status}}`}}},i={breadcrumbDashboard:`Dashboard`,breadcrumbJob:`任务 #{{id}}`,notFound:`未找到任务`,notFoundDescription:`任务 ID“{{id}}”不存在`,backToDashboard:`返回 Dashboard`,startedAgo:`开始于 {{timeAgo}}`,queuedWaiting:`已排队——等待开始`,exportDiagnostic:`导出诊断`,exportDiagnosticAria:`导出诊断包`,exportDiagnosticTooltip:`下载包含此任务遥测、日志和摘要的 ZIP`,reExecute:`重新执行`,reExecuteTooltip:`用相同命令启动一个新任务`,cancelJob:`取消任务`,cancelJobTooltip:`向运行中的进程发送 SIGTERM。任务将被标记为已取消。`,cancelInteractive:`丢弃`,finalizeJob:`定稿任务`,finalizing:`正在定稿…`,finalizeJobTooltip:`结束此交互会话,并将每一轮的 token 和成本汇总到任务总计中。`,interactive:{ready:`就绪 — 发送提示`,working:`代理处理中…`,placeholder:`向运行中的任务发送消息…`,send:`发送`,liveTotals:"{{turns}} 轮 · ${{cost}}",autoHint:`该任务会按计划自行完成 — 消息只是可选的引导。`,wrapUp:`立即收尾`,wrapUpTooltip:`立即结束会话 — 任务以目前已产出的工作完成,每一轮的 token 与费用都会计入总额。`,wrapUpStep:`结算此步骤`,wrapUpStepTooltip:`立即结束当前步骤 — 循环将带着该步骤目前的产出继续推进。`,wrappingUp:`正在收尾…`,queued_one:`{{count}} 条排队消息`,queued_other:`{{count}} 条排队消息`,waitingForStep:`步骤间隙 — 循环正在决定接下来运行什么。下一个 AI 步骤开始后即可发送消息。`,waitingForStepShort:`等待下一个步骤…`,sendDisabledEmpty:`请先输入消息`,sendDisabledWaiting:`当前没有活跃的步骤会话`},toast:{jobDeleted:`任务已删除`,cancelSignalSent:`已发送取消信号`,cancelSignalSentDescription:`任务将在下一个安全点停止`,failed:`失败`,networkError:`网络错误`,exportFailed:`导出失败`,exportFailedHttp:`导出失败(HTTP {{status}})`,jobRequeued:`任务已重新排队`,spawnFailed:`启动任务失败`,finalizeScheduled:`正在定稿交互任务…`,finalizeFailed:`任务定稿失败`,sendFailed:`发送消息失败`,wrapUpScheduled:`正在收尾任务…`,wrapUpStepScheduled:`正在结算步骤 — 循环将带着已有产出继续`}},a={inProgress:`任务进行中`,completed:`任务已完成`,failed:`任务失败`,duration:`时长`,cost:`成本`,turns:`轮次`,tokens:`Token`,filesCount_one:`{{count}} 个文件`,filesCount_other:`{{count}} 个文件`,pipelineTotal:`流水线合计({{count}} 个阶段)`,totalCost:`总成本`,totalTokens:`总 token 数`,filesModified:`修改的文件`,zoneInProgress:`进行中`,zoneFinal:`最终汇总`,zoneFinalPending:`最终汇总 — 完成后计算`,pendingCaption:`完成后计算`,pendingTooltip:`这是提供方的真实数字;任务完成后显示。`,costTooltip:`真实费用由提供方在任务结束时计费。`,liveTooltip:`实时`,explainer:`费用、轮次和令牌是提供方的真实数字,将在任务完成后显示。`,notAvailable:`不可用`,steps_one:`{{count}} 步`,steps_other:`{{count}} 步`,activity:{editing:`正在编辑 {{arg}}`,writing:`正在写入 {{arg}}`,reading:`正在读取 {{arg}}`,searching:`正在搜索“{{arg}}”`,running:`正在执行:{{arg}}`,thinking:`正在思考…`,reasoning:`正在推理…`,working:`正在处理…`,connecting:`正在连接代理…`,starting:`正在启动…`,delegating:`委派给 {{arg}}`},pipelinePartial:`≥ 表示部分 — {{count}} 个阶段尚无成本记录`,pipelinePartialTooltip:`部分阶段在报告成本前已结束,因此该总额为下限。`,pipelineCostUnavailable:`所有阶段的成本遥测数据均不可用。`,pipelineUsageUnavailable:`所有阶段的 token 遥测数据均不可用。`,pipelineUsagePartial:`≥ 显示值 — {{count}} 个阶段无 token 遥测数据`,pipelineUsageTooltip:`提供方可能在不提供 token 遥测数据的情况下完成阶段;仅计入已知用量。`,costUnknownLocal:`费用未知(本地引擎)`,costUnknownLocalTooltip:`费用未知(本地引擎)。为连接添加费率以查看估算。`},o={showMore:`+ 还有 {{count}} 个`,showLess:`收起`,deletedTicket:`#{{id}}(已删除)`,deletedTooltip:`工单已不存在`},s={notFound:`未找到任务`,cancelConfirmTitle:`取消任务?`,cancelConfirmDescription:`任务将在下一个安全点停止。此操作无法撤销。`,keepRunning:`继续运行`,cancelJob:`取消任务`,stopRun:`停止运行`,stopRunConfirmTitle:`停止此运行?`,stopRunConfirmDescription:`循环运行将在下一个步骤边界停止。此操作无法撤销。`,toast:{cancelSignalSent:`已发送取消信号`,cancelSignalSentDescription:`任务将在下一个安全点停止`,stopSignalSent:`已发送停止信号`,stopSignalSentDescription:`运行将在下一个步骤边界停止`,cancelFailed:`取消失败`,networkError:`网络错误`}},c={title:`任务对比`,jobN:`任务 {{n}}`,loadFailed:`加载对比失败:{{error}}`,duration:`时长`,cost:`成本`,tokensOut:`输出 token`,tokensIn:`输入 token`,cacheRead:`缓存读取`,model:`模型`,phasesDone:`完成阶段数`,betterValueHint:`绿色高亮表示更优值`},l={emptyTitle:`暂无任务`,emptyDescription:`在上方运行命令后,任务历史会显示在这里`,loadFailed:`加载任务失败`,filterAll:`全部({{count}})`,filterStatus:`{{status}}({{count}})`,fromDate:`开始日期`,toDate:`结束日期`,clear:`清除`,exitCompareMode:`退出对比模式`,compareTwoJobs:`对比 2 个任务`,clearJobs:`清空任务`,selectTwoToCompare:`选择 2 个任务进行对比`,selectOneMore:`再选择 1 个任务`,readyToCompare:`就绪——点击对比`,compareAction:`对比 →`,colStatus:`状态`,colCommand:`命令`,colDuration:`时长`,colTokens:`Token`,colCost:`成本`,colStarted:`开始时间`,profileTooltip:`Profile:{{name}}`,pipelinePart:`属于某个流水线`,pipelineDependsOn:`(依赖上一步)`,deleteProposal:`删除提案`,loadMore:`加载更多(剩余 {{count}} 个)`,priority:{critical:`紧急`,high:`高`,normal:`普通`,low:`低`},clearModal:{title:`清空任务`,jobsInHistory_one:`历史中有 {{count}} 个任务`,jobsInHistory_other:`历史中有 {{count}} 个任务`,clearAll_one:`清空全部 {{count}} 个任务`,clearAll_other:`清空全部 {{count}} 个任务`,orByRange:`或按日期范围清除:`,fromPlaceholder:`开始`,toPlaceholder:`结束`,clearInRange_one:`清除范围内 {{count}} 个任务`,clearInRange_other:`清除范围内 {{count}} 个任务`,clearRange:`清除范围`},deleteProposalConfirm:{title:`删除提案?`,description:`将永久删除 1 个提案。此操作无法撤销。`},toast:{cleared_one:`已清除 {{count}} 个任务`,cleared_other:`已清除 {{count}} 个任务`,clearFailed:`清除任务失败`,networkError:`网络错误`}},u={none:`没有进行中的任务`,noneHint:`在下方选择一个命令以启动任务`,exitCode:`退出码 {{code}}`,cancelTooltip:`向运行中的 claude 进程发送 SIGTERM`,viewLogs:`查看日志`,toast:{cancelRequested:`已请求取消任务`,cancelRequestedDescription:`正在向进程发送 SIGTERM`,cancelFailed:`取消任务失败`,networkError:`取消任务时发生网络错误`}},d={setup:`准备`,iteration:`迭代 {{current}}/{{limit}}`,iterationBadge:`迭代 {{count}}`,follow:`实时跟随中`,resumeFollow:`恢复跟随`,expandAll:`全部展开`,collapseAll:`全部折叠`,copyStep:`复制步骤`,copied:`步骤已复制到剪贴板`,stepDetail:`步骤详情`,stepDetailTemplate:`模板`,stepDetailCommand:`命令`,copyCommand:`复制`,interrupted:`已中断`,waiting:`等待下一个步骤…`,stepMapAria:`循环步骤图`,stalled:`已停滞`,stalledIdle_one:`{{count}} 分钟内无提供方输出,应用已停止此次尝试`,stalledIdle_other:`{{count}} 分钟内无提供方输出,应用已停止此次尝试`,providerLimit:`提供商限额`,providerLimitHint:`提供商返回了用量限额提示,应用已停止运行而不是继续循环。`,paused:`已暂停`,runtimeGraph:`执行图`,graphFullscreen:`全屏`,graphExitFullscreen:`退出全屏`,graphBack:`返回`,graphOpenComponent:`打开组件`,graphNoAttempts:`没有已记录的尝试`,graphState:{running:`运行中`,paused:`已暂停`,failed:`失败`,stalled:`无进展`,interrupted:`已中断`,ok:`成功`,pending:`待处理`,unknown:`未知`},repeatFromHere:`从此处重复`,forkFailed:`无法创建关联运行`,forkPending:`请重试最初选择的步骤,以完成待处理的分支。`,forkCreated:`已创建关联运行。请打开并从所选检查点恢复。`,openFork:`打开关联运行`},f={loading:`正在加载日志…`,empty:`暂无日志输出`,filterPlaceholder:`筛选日志…`,copySuccess:`日志已复制到剪贴板`,copyFailed:`复制日志失败`,lineCount:`{{filtered}} / {{total}} 行`,jumpToBottom:`跳到底部`,phaseLines_one:`{{count}} 行`,phaseLines_other:`{{count}} 行`,noMatchingLines:`没有匹配的行`,noOutput:`无输出`,completed:`已完成`,turns_one:`{{count}} 轮`,turns_other:`{{count}} 轮`},p={title:`运行结果`,execution:`执行`,implementation:`实现`,validation:`验证`,archive:`归档`,delivery:`交付`,counters:`{{steps}} 个步骤 · {{evaluations}} 次决策评估 · {{turns}} 轮代理对话`,unavailable:`不可用`,evidence:`证据、例外和阶段耗时`,snapshot:`完成时记录:{{change}} · {{at}}`,acceptedBy:`由 {{by}} 接受`,required:`必需`,supplementary:`补充`,attempts:`{{count}} 次尝试`,phaseCostUnavailable:`Core 各阶段成本不可用;供应商用量归属于循环步骤。`,noCoreEvidence:`验收证据不可用。执行成功本身并不代表工单已完成。`,status:{success:`成功`,failed:`失败`,blocked:`已阻塞`,stopped:`已停止`,stalled:`无进展`,complete:`已完成`,incomplete:`未完成`,verified:`已验证`,"with-exceptions":`已验证(含例外)`,pending:`待处理`,"pending-host":`等待宿主交付`,done:`已完成`,running:`进行中`,skipped:`已跳过`,passed:`通过`,unavailable:`不可用`}},m={details:`详情`,phaseActivity:`{{phase}} · {{activity}}`,liveReported:`截至目前由提供方上报;最终数据在任务结束时给出。`,questionPending:`回答问题`},h={statusLabel:e,statusTooltip:t,statusName:n,page:r,detail:i,statusPanel:a,ticketHeader:o,modal:s,comparison:c,recent:l,activeJob:u,loopExplorer:d,logViewer:f,completion:p,runHeader:m};export{u as activeJob,c as comparison,p as completion,h as default,i as detail,f as logViewer,d as loopExplorer,s as modal,r as page,l as recent,m as runHeader,e as statusLabel,n as statusName,a as statusPanel,t as statusTooltip,o as ticketHeader};
@@ -1 +1 @@
1
- var e={running:`in esecuzione`,completed:`completato`,done:`concluso`,failed:`fallito`,canceled:`annullato`,queued:`in coda`,zombie:`zombie`,skipped:`saltato`},t={running:`Il job è in esecuzione`,completed:`Job completato con successo`,failed:`Il job è uscito con un codice di uscita diverso da zero`,canceled:`Il job è stato annullato manualmente`,queued:`Il job è in attesa nella coda`,queuedToRun:`Il job è in attesa di essere eseguito`,zombie:`Il job è stato terminato automaticamente dopo un'inattività prolungata`,skipped:`Il job è stato saltato perché un job padre della pipeline è fallito`},n={running:`in esecuzione`,completed:`completato`,failed:`fallito`,canceled:`annullato`,zombie_terminated:`zombie`,queued:`in coda`,skipped:`saltato`},r={title:`Job`,exportJobs:`Esporta job`,proposalDeleted:`Proposta eliminata`,proposal:{title:`Proposta`,noContent:`Ancora nessun contenuto nella proposta.`,githubIssue:`Issue GitHub:`,status:{input:`In attesa di input`,exploring:`Esplorazione`,review:`Pronta per la revisione`,refining:`Perfezionamento`,creatingIssue:`Creazione issue`,created:`Creata`,cancelled:`Annullata`,unknown:`Stato sconosciuto: {{status}}`}}},i={breadcrumbDashboard:`Dashboard`,breadcrumbJob:`Job #{{id}}`,notFound:`Job non trovato`,notFoundDescription:`L'ID job "{{id}}" non esiste`,backToDashboard:`Torna alla dashboard`,startedAgo:`Avviato {{timeAgo}}`,queuedWaiting:`In coda — in attesa di avvio`,exportDiagnostic:`Esporta diagnostica`,exportDiagnosticAria:`Esporta bundle diagnostico`,exportDiagnosticTooltip:`Scarica uno ZIP con telemetria, log e riepilogo di questo job`,reExecute:`Riesegui`,reExecuteTooltip:`Avvia un nuovo job con lo stesso comando`,cancelJob:`Annulla job`,cancelJobTooltip:`Invia SIGTERM al processo in esecuzione. Il job verrà contrassegnato come annullato.`,cancelInteractive:`Scarta`,finalizeJob:`Finalizza job`,finalizing:`Finalizzazione…`,finalizeJobTooltip:`Termina questa sessione interattiva e somma al totale del job i token e il costo di ogni turno.`,interactive:{ready:`Pronto — invia un prompt`,working:`L'agente sta lavorando…`,placeholder:`Invia un messaggio al job in esecuzione…`,send:`Invia`,liveTotals:"{{turns}} turni · ${{cost}}",autoHint:`Questo job segue il suo piano e termina da solo — i messaggi sono indicazioni opzionali.`,wrapUp:`Concludi ora`,wrapUpTooltip:`Termina la sessione ora — il job si completa con il lavoro prodotto finora, con i token e il costo di ogni turno sommati al totale.`,wrapUpStep:`Chiudi questo passo`,wrapUpStepTooltip:`Termina il passo corrente ora — il loop avanza con quanto il passo ha prodotto finora.`,wrappingUp:`Conclusione in corso…`,queued_one:`{{count}} messaggio in coda`,queued_other:`{{count}} messaggi in coda`,waitingForStep:`Tra un passo e l'altro — il loop sta decidendo cosa eseguire dopo. Potrai inviare un messaggio quando partirà il prossimo passo IA.`,waitingForStepShort:`In attesa del prossimo passo…`,sendDisabledEmpty:`Scrivi prima un messaggio`,sendDisabledWaiting:`Al momento non c'è nessuna sessione di passo attiva`},toast:{jobDeleted:`Job eliminato`,cancelSignalSent:`Segnale di annullamento inviato`,cancelSignalSentDescription:`Il job si fermerà al prossimo punto sicuro`,failed:`Operazione non riuscita`,networkError:`Errore di rete`,exportFailed:`Esportazione non riuscita`,exportFailedHttp:`Esportazione non riuscita (HTTP {{status}})`,jobRequeued:`Job rimesso in coda`,spawnFailed:`Impossibile avviare il job`,finalizeScheduled:`Finalizzazione del job interattivo…`,finalizeFailed:`Impossibile finalizzare il job`,sendFailed:`Impossibile inviare il messaggio`,wrapUpScheduled:`Conclusione del job…`,wrapUpStepScheduled:`Chiusura del passo — il loop avanza con quanto prodotto`}},a={inProgress:`Job in corso`,completed:`Job completato`,failed:`Job fallito`,duration:`Durata`,cost:`Costo`,turns:`Turni`,tokens:`Token`,filesCount_one:`{{count}} file`,filesCount_other:`{{count}} file`,pipelineTotal:`Totale pipeline ({{count}} fasi)`,totalCost:`Costo totale`,totalTokens:`Token totali`,filesModified:`File modificati`,zoneInProgress:`In corso`,zoneFinal:`Riepilogo finale`,zoneFinalPending:`Riepilogo finale — calcolato al termine`,pendingCaption:`Calcolato al termine`,pendingTooltip:`Questa è la cifra reale del provider; appare al termine del job.`,costTooltip:`Il costo reale viene fatturato dal provider alla chiusura del job.`,liveTooltip:`In diretta`,explainer:`Costo, turni e token sono le cifre reali del provider e appaiono al termine.`,notAvailable:`Non disponibile`,steps_one:`{{count}} passo`,steps_other:`{{count}} passi`,activity:{editing:`Modifica di {{arg}}`,writing:`Scrittura di {{arg}}`,reading:`Lettura di {{arg}}`,searching:`Ricerca di «{{arg}}»`,running:`Esecuzione: {{arg}}`,thinking:`Sta pensando…`,reasoning:`Sta ragionando…`,working:`Al lavoro…`,connecting:`Connessione all'agente…`,starting:`Avvio…`,delegating:`Delego a {{arg}}`},pipelinePartial:`≥ mostrato — {{count}} fase/i senza costo registrato`,pipelinePartialTooltip:`Alcune fasi si sono interrotte prima di riportare il costo, quindi questo totale è un limite inferiore.`,pipelineCostUnavailable:`La telemetria dei costi non è disponibile per nessuna fase.`,pipelineUsageUnavailable:`La telemetria dei token non è disponibile per nessuna fase.`,pipelineUsagePartial:`≥ mostrato — fasi senza telemetria dei token: {{count}}`,pipelineUsageTooltip:`I provider possono completare le fasi senza esporre la telemetria dei token; è incluso solo l'utilizzo noto.`,costUnknownLocal:`Costo sconosciuto (motore locale)`,costUnknownLocalTooltip:`Costo sconosciuto (motore locale). Aggiungi tariffe alla connessione per vedere una stima.`},o={showMore:`+ altri {{count}}`,showLess:`Mostra meno`,deletedTicket:`#{{id}} (eliminato)`,deletedTooltip:`Il ticket non esiste più`},s={notFound:`Job non trovato`,cancelConfirmTitle:`Annullare il job?`,cancelConfirmDescription:`Il job si fermerà al prossimo punto sicuro. Questa azione è irreversibile.`,keepRunning:`Continua l'esecuzione`,cancelJob:`Annulla job`,stopRun:`Ferma esecuzione`,stopRunConfirmTitle:`Fermare questa esecuzione?`,stopRunConfirmDescription:`L'esecuzione del loop si fermerà al prossimo confine di step. Questa azione non può essere annullata.`,toast:{cancelSignalSent:`Segnale di annullamento inviato`,cancelSignalSentDescription:`Il job si fermerà al prossimo punto sicuro`,stopSignalSent:`Segnale di arresto inviato`,stopSignalSentDescription:`L'esecuzione si fermerà al prossimo confine di step`,cancelFailed:`Annullamento non riuscito`,networkError:`Errore di rete`}},c={title:`Confronto job`,jobN:`Job {{n}}`,loadFailed:`Impossibile caricare il confronto: {{error}}`,duration:`Durata`,cost:`Costo`,tokensOut:`Token in uscita`,tokensIn:`Token in ingresso`,cacheRead:`Lettura cache`,model:`Modello`,phasesDone:`Fasi completate`,betterValueHint:`Le evidenziazioni verdi indicano il valore migliore`},l={emptyTitle:`Ancora nessun job`,emptyDescription:`Esegui un comando qui sopra per vedere qui la cronologia dei job`,loadFailed:`Impossibile caricare i job`,filterAll:`Tutti ({{count}})`,filterStatus:`{{status}} ({{count}})`,fromDate:`Dalla data`,toDate:`Alla data`,clear:`Cancella`,exitCompareMode:`Esci dalla modalità confronto`,compareTwoJobs:`Confronta 2 job`,clearJobs:`Cancella job`,selectTwoToCompare:`Seleziona 2 job da confrontare`,selectOneMore:`Seleziona 1 altro job`,readyToCompare:`Pronto — clicca Confronta`,compareAction:`Confronta →`,colStatus:`Stato`,colCommand:`Comando`,colDuration:`Durata`,colTokens:`Token`,colCost:`Costo`,colStarted:`Avvio`,profileTooltip:`Profilo: {{name}}`,pipelinePart:`Parte di una pipeline`,pipelineDependsOn:`(dipende dal passaggio precedente)`,deleteProposal:`Elimina proposta`,loadMore:`Carica altri ({{count}} rimanenti)`,priority:{critical:`critica`,high:`alta`,normal:`normale`,low:`bassa`},clearModal:{title:`Cancella job`,jobsInHistory_one:`{{count}} job nella cronologia`,jobsInHistory_other:`{{count}} job nella cronologia`,clearAll_one:`Cancella {{count}} job`,clearAll_other:`Cancella tutti i {{count}} job`,orByRange:`Oppure cancella per intervallo di date:`,fromPlaceholder:`Da`,toPlaceholder:`A`,clearInRange_one:`Cancella {{count}} job nell'intervallo`,clearInRange_other:`Cancella {{count}} job nell'intervallo`,clearRange:`Cancella intervallo`},deleteProposalConfirm:{title:`Eliminare la proposta?`,description:`Verrà eliminata definitivamente 1 proposta. Questa azione è irreversibile.`},toast:{cleared_one:`{{count}} job cancellato`,cleared_other:`{{count}} job cancellati`,clearFailed:`Impossibile cancellare i job`,networkError:`Errore di rete`}},u={none:`Nessun job attivo`,noneHint:`Seleziona un comando qui sotto per avviare un job`,exitCode:`exit {{code}}`,cancelTooltip:`Invia SIGTERM al processo claude in esecuzione`,viewLogs:`Vedi log`,toast:{cancelRequested:`Annullamento del job richiesto`,cancelRequestedDescription:`Invio di SIGTERM al processo`,cancelFailed:`Impossibile annullare il job`,networkError:`Errore di rete durante l'annullamento del job`}},d={setup:`Preparazione`,iteration:`Iterazione {{current}}/{{limit}}`,iterationBadge:`iter {{count}}`,follow:`Seguendo in diretta`,resumeFollow:`Riprendi a seguire`,expandAll:`Espandi tutto`,collapseAll:`Comprimi tutto`,copyStep:`Copia passo`,copied:`Passo copiato negli appunti`,stepDetail:`Dettagli del passo`,stepDetailTemplate:`Modello`,stepDetailCommand:`Comando`,copyCommand:`Copia`,interrupted:`Interrotto`,waiting:`In attesa del prossimo passo...`,stepMapAria:`Mappa dei passi del loop`,stalled:`Bloccato`,stalledIdle_one:`Nessun output dal provider per {{count}} minuto — l'app ha fermato questo tentativo`,stalledIdle_other:`Nessun output dal provider per {{count}} minuti — l'app ha fermato questo tentativo`,providerLimit:`Limite del provider`,providerLimitHint:`Il provider ha risposto con un avviso di limite d'uso, quindi l'app ha fermato la run invece di continuare a ciclare.`,paused:`In pausa`,runtimeGraph:`Grafo di esecuzione`,graphBack:`Indietro`,graphOpenComponent:`Apri componente`,graphNoAttempts:`Nessun tentativo registrato`,graphState:{running:`In esecuzione`,paused:`In pausa`,failed:`Fallito`,stalled:`Senza progressi`,interrupted:`Interrotto`,ok:`Riuscito`,pending:`In attesa`,unknown:`Sconosciuto`},repeatFromHere:`Ripeti da qui`,forkFailed:`Impossibile creare l’esecuzione collegata`,forkPending:`Riprova il passaggio selezionato inizialmente per completare la biforcazione in attesa.`,forkCreated:`Esecuzione collegata creata. Aprila e riprendi dal punto selezionato.`,openFork:`Apri esecuzione collegata`},f={loading:`Caricamento dei log...`,empty:`Ancora nessun output di log`,filterPlaceholder:`Filtra i log...`,copySuccess:`Log copiato negli appunti`,copyFailed:`Impossibile copiare il log`,lineCount:`{{filtered}} / {{total}} righe`,jumpToBottom:`Vai in fondo`,phaseLines_one:`{{count}} riga`,phaseLines_other:`{{count}} righe`,noMatchingLines:`Nessuna riga corrispondente`,noOutput:`Nessun output`,completed:`Completato`,turns_one:`{{count}} turno`,turns_other:`{{count}} turni`},p={title:`Risultato dell’esecuzione`,execution:`Esecuzione`,implementation:`Implementazione`,validation:`Validazione`,archive:`Archiviazione`,delivery:`Consegna`,counters:`Passaggi: {{steps}} · Valutazioni: {{evaluations}} · Turni dell’agente: {{turns}}`,unavailable:`Non disponibile`,evidence:`Prove, eccezioni e tempi per fase`,snapshot:`Registrato al completamento: {{change}} · {{at}}`,acceptedBy:`Accettato da {{by}}`,required:`Obbligatorio`,supplementary:`Supplementare`,attempts:`Tentativi: {{count}}`,phaseCostUnavailable:`Il costo per fase di Core non è disponibile; il consumo del fornitore è attribuito ai passaggi del ciclo.`,noCoreEvidence:`Prove di accettazione non disponibili. Il successo dell’esecuzione da solo non conferma il completamento del ticket.`,status:{success:`Riuscita`,failed:`Fallita`,blocked:`Bloccata`,stopped:`Interrotta`,stalled:`Senza progressi`,complete:`Completa`,incomplete:`Incompleta`,verified:`Verificata`,"with-exceptions":`Verificata con eccezioni`,pending:`In attesa`,"pending-host":`Consegna dell’host in attesa`,done:`Completato`,running:`In corso`,skipped:`Saltato`,passed:`Superato`,unavailable:`Non disponibile`}},m={details:`Dettagli`,phaseActivity:`{{phase}} · {{activity}}`,liveReported:`Riportato dal provider finora; le cifre definitive arrivano al termine del job.`,questionPending:`Rispondi alla domanda`},h={statusLabel:e,statusTooltip:t,statusName:n,page:r,detail:i,statusPanel:a,ticketHeader:o,modal:s,comparison:c,recent:l,activeJob:u,loopExplorer:d,logViewer:f,completion:p,runHeader:m};export{u as activeJob,c as comparison,p as completion,h as default,i as detail,f as logViewer,d as loopExplorer,s as modal,r as page,l as recent,m as runHeader,e as statusLabel,n as statusName,a as statusPanel,t as statusTooltip,o as ticketHeader};
1
+ var e={running:`in esecuzione`,completed:`completato`,done:`concluso`,failed:`fallito`,canceled:`annullato`,queued:`in coda`,zombie:`zombie`,skipped:`saltato`},t={running:`Il job è in esecuzione`,completed:`Job completato con successo`,failed:`Il job è uscito con un codice di uscita diverso da zero`,canceled:`Il job è stato annullato manualmente`,queued:`Il job è in attesa nella coda`,queuedToRun:`Il job è in attesa di essere eseguito`,zombie:`Il job è stato terminato automaticamente dopo un'inattività prolungata`,skipped:`Il job è stato saltato perché un job padre della pipeline è fallito`},n={running:`in esecuzione`,completed:`completato`,failed:`fallito`,canceled:`annullato`,zombie_terminated:`zombie`,queued:`in coda`,skipped:`saltato`},r={title:`Job`,exportJobs:`Esporta job`,proposalDeleted:`Proposta eliminata`,proposal:{title:`Proposta`,noContent:`Ancora nessun contenuto nella proposta.`,githubIssue:`Issue GitHub:`,status:{input:`In attesa di input`,exploring:`Esplorazione`,review:`Pronta per la revisione`,refining:`Perfezionamento`,creatingIssue:`Creazione issue`,created:`Creata`,cancelled:`Annullata`,unknown:`Stato sconosciuto: {{status}}`}}},i={breadcrumbDashboard:`Dashboard`,breadcrumbJob:`Job #{{id}}`,notFound:`Job non trovato`,notFoundDescription:`L'ID job "{{id}}" non esiste`,backToDashboard:`Torna alla dashboard`,startedAgo:`Avviato {{timeAgo}}`,queuedWaiting:`In coda — in attesa di avvio`,exportDiagnostic:`Esporta diagnostica`,exportDiagnosticAria:`Esporta bundle diagnostico`,exportDiagnosticTooltip:`Scarica uno ZIP con telemetria, log e riepilogo di questo job`,reExecute:`Riesegui`,reExecuteTooltip:`Avvia un nuovo job con lo stesso comando`,cancelJob:`Annulla job`,cancelJobTooltip:`Invia SIGTERM al processo in esecuzione. Il job verrà contrassegnato come annullato.`,cancelInteractive:`Scarta`,finalizeJob:`Finalizza job`,finalizing:`Finalizzazione…`,finalizeJobTooltip:`Termina questa sessione interattiva e somma al totale del job i token e il costo di ogni turno.`,interactive:{ready:`Pronto — invia un prompt`,working:`L'agente sta lavorando…`,placeholder:`Invia un messaggio al job in esecuzione…`,send:`Invia`,liveTotals:"{{turns}} turni · ${{cost}}",autoHint:`Questo job segue il suo piano e termina da solo — i messaggi sono indicazioni opzionali.`,wrapUp:`Concludi ora`,wrapUpTooltip:`Termina la sessione ora — il job si completa con il lavoro prodotto finora, con i token e il costo di ogni turno sommati al totale.`,wrapUpStep:`Chiudi questo passo`,wrapUpStepTooltip:`Termina il passo corrente ora — il loop avanza con quanto il passo ha prodotto finora.`,wrappingUp:`Conclusione in corso…`,queued_one:`{{count}} messaggio in coda`,queued_other:`{{count}} messaggi in coda`,waitingForStep:`Tra un passo e l'altro — il loop sta decidendo cosa eseguire dopo. Potrai inviare un messaggio quando partirà il prossimo passo IA.`,waitingForStepShort:`In attesa del prossimo passo…`,sendDisabledEmpty:`Scrivi prima un messaggio`,sendDisabledWaiting:`Al momento non c'è nessuna sessione di passo attiva`},toast:{jobDeleted:`Job eliminato`,cancelSignalSent:`Segnale di annullamento inviato`,cancelSignalSentDescription:`Il job si fermerà al prossimo punto sicuro`,failed:`Operazione non riuscita`,networkError:`Errore di rete`,exportFailed:`Esportazione non riuscita`,exportFailedHttp:`Esportazione non riuscita (HTTP {{status}})`,jobRequeued:`Job rimesso in coda`,spawnFailed:`Impossibile avviare il job`,finalizeScheduled:`Finalizzazione del job interattivo…`,finalizeFailed:`Impossibile finalizzare il job`,sendFailed:`Impossibile inviare il messaggio`,wrapUpScheduled:`Conclusione del job…`,wrapUpStepScheduled:`Chiusura del passo — il loop avanza con quanto prodotto`}},a={inProgress:`Job in corso`,completed:`Job completato`,failed:`Job fallito`,duration:`Durata`,cost:`Costo`,turns:`Turni`,tokens:`Token`,filesCount_one:`{{count}} file`,filesCount_other:`{{count}} file`,pipelineTotal:`Totale pipeline ({{count}} fasi)`,totalCost:`Costo totale`,totalTokens:`Token totali`,filesModified:`File modificati`,zoneInProgress:`In corso`,zoneFinal:`Riepilogo finale`,zoneFinalPending:`Riepilogo finale — calcolato al termine`,pendingCaption:`Calcolato al termine`,pendingTooltip:`Questa è la cifra reale del provider; appare al termine del job.`,costTooltip:`Il costo reale viene fatturato dal provider alla chiusura del job.`,liveTooltip:`In diretta`,explainer:`Costo, turni e token sono le cifre reali del provider e appaiono al termine.`,notAvailable:`Non disponibile`,steps_one:`{{count}} passo`,steps_other:`{{count}} passi`,activity:{editing:`Modifica di {{arg}}`,writing:`Scrittura di {{arg}}`,reading:`Lettura di {{arg}}`,searching:`Ricerca di «{{arg}}»`,running:`Esecuzione: {{arg}}`,thinking:`Sta pensando…`,reasoning:`Sta ragionando…`,working:`Al lavoro…`,connecting:`Connessione all'agente…`,starting:`Avvio…`,delegating:`Delego a {{arg}}`},pipelinePartial:`≥ mostrato — {{count}} fase/i senza costo registrato`,pipelinePartialTooltip:`Alcune fasi si sono interrotte prima di riportare il costo, quindi questo totale è un limite inferiore.`,pipelineCostUnavailable:`La telemetria dei costi non è disponibile per nessuna fase.`,pipelineUsageUnavailable:`La telemetria dei token non è disponibile per nessuna fase.`,pipelineUsagePartial:`≥ mostrato — fasi senza telemetria dei token: {{count}}`,pipelineUsageTooltip:`I provider possono completare le fasi senza esporre la telemetria dei token; è incluso solo l'utilizzo noto.`,costUnknownLocal:`Costo sconosciuto (motore locale)`,costUnknownLocalTooltip:`Costo sconosciuto (motore locale). Aggiungi tariffe alla connessione per vedere una stima.`},o={showMore:`+ altri {{count}}`,showLess:`Mostra meno`,deletedTicket:`#{{id}} (eliminato)`,deletedTooltip:`Il ticket non esiste più`},s={notFound:`Job non trovato`,cancelConfirmTitle:`Annullare il job?`,cancelConfirmDescription:`Il job si fermerà al prossimo punto sicuro. Questa azione è irreversibile.`,keepRunning:`Continua l'esecuzione`,cancelJob:`Annulla job`,stopRun:`Ferma esecuzione`,stopRunConfirmTitle:`Fermare questa esecuzione?`,stopRunConfirmDescription:`L'esecuzione del loop si fermerà al prossimo confine di step. Questa azione non può essere annullata.`,toast:{cancelSignalSent:`Segnale di annullamento inviato`,cancelSignalSentDescription:`Il job si fermerà al prossimo punto sicuro`,stopSignalSent:`Segnale di arresto inviato`,stopSignalSentDescription:`L'esecuzione si fermerà al prossimo confine di step`,cancelFailed:`Annullamento non riuscito`,networkError:`Errore di rete`}},c={title:`Confronto job`,jobN:`Job {{n}}`,loadFailed:`Impossibile caricare il confronto: {{error}}`,duration:`Durata`,cost:`Costo`,tokensOut:`Token in uscita`,tokensIn:`Token in ingresso`,cacheRead:`Lettura cache`,model:`Modello`,phasesDone:`Fasi completate`,betterValueHint:`Le evidenziazioni verdi indicano il valore migliore`},l={emptyTitle:`Ancora nessun job`,emptyDescription:`Esegui un comando qui sopra per vedere qui la cronologia dei job`,loadFailed:`Impossibile caricare i job`,filterAll:`Tutti ({{count}})`,filterStatus:`{{status}} ({{count}})`,fromDate:`Dalla data`,toDate:`Alla data`,clear:`Cancella`,exitCompareMode:`Esci dalla modalità confronto`,compareTwoJobs:`Confronta 2 job`,clearJobs:`Cancella job`,selectTwoToCompare:`Seleziona 2 job da confrontare`,selectOneMore:`Seleziona 1 altro job`,readyToCompare:`Pronto — clicca Confronta`,compareAction:`Confronta →`,colStatus:`Stato`,colCommand:`Comando`,colDuration:`Durata`,colTokens:`Token`,colCost:`Costo`,colStarted:`Avvio`,profileTooltip:`Profilo: {{name}}`,pipelinePart:`Parte di una pipeline`,pipelineDependsOn:`(dipende dal passaggio precedente)`,deleteProposal:`Elimina proposta`,loadMore:`Carica altri ({{count}} rimanenti)`,priority:{critical:`critica`,high:`alta`,normal:`normale`,low:`bassa`},clearModal:{title:`Cancella job`,jobsInHistory_one:`{{count}} job nella cronologia`,jobsInHistory_other:`{{count}} job nella cronologia`,clearAll_one:`Cancella {{count}} job`,clearAll_other:`Cancella tutti i {{count}} job`,orByRange:`Oppure cancella per intervallo di date:`,fromPlaceholder:`Da`,toPlaceholder:`A`,clearInRange_one:`Cancella {{count}} job nell'intervallo`,clearInRange_other:`Cancella {{count}} job nell'intervallo`,clearRange:`Cancella intervallo`},deleteProposalConfirm:{title:`Eliminare la proposta?`,description:`Verrà eliminata definitivamente 1 proposta. Questa azione è irreversibile.`},toast:{cleared_one:`{{count}} job cancellato`,cleared_other:`{{count}} job cancellati`,clearFailed:`Impossibile cancellare i job`,networkError:`Errore di rete`}},u={none:`Nessun job attivo`,noneHint:`Seleziona un comando qui sotto per avviare un job`,exitCode:`exit {{code}}`,cancelTooltip:`Invia SIGTERM al processo claude in esecuzione`,viewLogs:`Vedi log`,toast:{cancelRequested:`Annullamento del job richiesto`,cancelRequestedDescription:`Invio di SIGTERM al processo`,cancelFailed:`Impossibile annullare il job`,networkError:`Errore di rete durante l'annullamento del job`}},d={setup:`Preparazione`,iteration:`Iterazione {{current}}/{{limit}}`,iterationBadge:`iter {{count}}`,follow:`Seguendo in diretta`,resumeFollow:`Riprendi a seguire`,expandAll:`Espandi tutto`,collapseAll:`Comprimi tutto`,copyStep:`Copia passo`,copied:`Passo copiato negli appunti`,stepDetail:`Dettagli del passo`,stepDetailTemplate:`Modello`,stepDetailCommand:`Comando`,copyCommand:`Copia`,interrupted:`Interrotto`,waiting:`In attesa del prossimo passo...`,stepMapAria:`Mappa dei passi del loop`,stalled:`Bloccato`,stalledIdle_one:`Nessun output dal provider per {{count}} minuto — l'app ha fermato questo tentativo`,stalledIdle_other:`Nessun output dal provider per {{count}} minuti — l'app ha fermato questo tentativo`,providerLimit:`Limite del provider`,providerLimitHint:`Il provider ha risposto con un avviso di limite d'uso, quindi l'app ha fermato la run invece di continuare a ciclare.`,paused:`In pausa`,runtimeGraph:`Grafo di esecuzione`,graphFullscreen:`Schermo intero`,graphExitFullscreen:`Esci da schermo intero`,graphBack:`Indietro`,graphOpenComponent:`Apri componente`,graphNoAttempts:`Nessun tentativo registrato`,graphState:{running:`In esecuzione`,paused:`In pausa`,failed:`Fallito`,stalled:`Senza progressi`,interrupted:`Interrotto`,ok:`Riuscito`,pending:`In attesa`,unknown:`Sconosciuto`},repeatFromHere:`Ripeti da qui`,forkFailed:`Impossibile creare l’esecuzione collegata`,forkPending:`Riprova il passaggio selezionato inizialmente per completare la biforcazione in attesa.`,forkCreated:`Esecuzione collegata creata. Aprila e riprendi dal punto selezionato.`,openFork:`Apri esecuzione collegata`},f={loading:`Caricamento dei log...`,empty:`Ancora nessun output di log`,filterPlaceholder:`Filtra i log...`,copySuccess:`Log copiato negli appunti`,copyFailed:`Impossibile copiare il log`,lineCount:`{{filtered}} / {{total}} righe`,jumpToBottom:`Vai in fondo`,phaseLines_one:`{{count}} riga`,phaseLines_other:`{{count}} righe`,noMatchingLines:`Nessuna riga corrispondente`,noOutput:`Nessun output`,completed:`Completato`,turns_one:`{{count}} turno`,turns_other:`{{count}} turni`},p={title:`Risultato dell’esecuzione`,execution:`Esecuzione`,implementation:`Implementazione`,validation:`Validazione`,archive:`Archiviazione`,delivery:`Consegna`,counters:`Passaggi: {{steps}} · Valutazioni: {{evaluations}} · Turni dell’agente: {{turns}}`,unavailable:`Non disponibile`,evidence:`Prove, eccezioni e tempi per fase`,snapshot:`Registrato al completamento: {{change}} · {{at}}`,acceptedBy:`Accettato da {{by}}`,required:`Obbligatorio`,supplementary:`Supplementare`,attempts:`Tentativi: {{count}}`,phaseCostUnavailable:`Il costo per fase di Core non è disponibile; il consumo del fornitore è attribuito ai passaggi del ciclo.`,noCoreEvidence:`Prove di accettazione non disponibili. Il successo dell’esecuzione da solo non conferma il completamento del ticket.`,status:{success:`Riuscita`,failed:`Fallita`,blocked:`Bloccata`,stopped:`Interrotta`,stalled:`Senza progressi`,complete:`Completa`,incomplete:`Incompleta`,verified:`Verificata`,"with-exceptions":`Verificata con eccezioni`,pending:`In attesa`,"pending-host":`Consegna dell’host in attesa`,done:`Completato`,running:`In corso`,skipped:`Saltato`,passed:`Superato`,unavailable:`Non disponibile`}},m={details:`Dettagli`,phaseActivity:`{{phase}} · {{activity}}`,liveReported:`Riportato dal provider finora; le cifre definitive arrivano al termine del job.`,questionPending:`Rispondi alla domanda`},h={statusLabel:e,statusTooltip:t,statusName:n,page:r,detail:i,statusPanel:a,ticketHeader:o,modal:s,comparison:c,recent:l,activeJob:u,loopExplorer:d,logViewer:f,completion:p,runHeader:m};export{u as activeJob,c as comparison,p as completion,h as default,i as detail,f as logViewer,d as loopExplorer,s as modal,r as page,l as recent,m as runHeader,e as statusLabel,n as statusName,a as statusPanel,t as statusTooltip,o as ticketHeader};
@@ -1 +1 @@
1
- var e={running:`en cours`,completed:`terminé`,done:`fini`,failed:`échoué`,canceled:`annulé`,queued:`en attente`,zombie:`zombie`,skipped:`ignoré`},t={running:`Le job est en cours d'exécution`,completed:`Le job s'est terminé avec succès`,failed:`Le job s'est terminé avec un code de sortie non nul`,canceled:`Le job a été annulé manuellement`,queued:`Le job attend dans la file`,queuedToRun:`Le job attend de s'exécuter`,zombie:`Le job a été arrêté automatiquement après une inactivité prolongée`,skipped:`Le job a été ignoré car un job parent du pipeline a échoué`},n={running:`en cours`,completed:`terminé`,failed:`échoué`,canceled:`annulé`,zombie_terminated:`zombie`,queued:`en attente`,skipped:`ignoré`},r={title:`Jobs`,exportJobs:`Exporter les jobs`,proposalDeleted:`Proposition supprimée`,proposal:{title:`Proposition`,noContent:`Aucun contenu de proposition pour l'instant.`,githubIssue:`Issue GitHub :`,status:{input:`En attente de saisie`,exploring:`Exploration`,review:`Prête pour révision`,refining:`Affinage`,creatingIssue:`Création du ticket`,created:`Créée`,cancelled:`Annulée`,unknown:`Statut inconnu : {{status}}`}}},i={breadcrumbDashboard:`Tableau de bord`,breadcrumbJob:`Job #{{id}}`,notFound:`Job introuvable`,notFoundDescription:`L'ID de job « {{id}} » n'existe pas`,backToDashboard:`Retour au tableau de bord`,startedAgo:`Démarré {{timeAgo}}`,queuedWaiting:`En file d'attente — en attente de démarrage`,exportDiagnostic:`Exporter le diagnostic`,exportDiagnosticAria:`Exporter le bundle de diagnostic`,exportDiagnosticTooltip:`Télécharger un ZIP avec la télémétrie, les logs et le résumé de ce job`,reExecute:`Réexécuter`,reExecuteTooltip:`Lancer un nouveau job avec la même commande`,cancelJob:`Annuler le job`,cancelJobTooltip:`Envoyer SIGTERM au processus en cours. Le job sera marqué comme annulé.`,cancelInteractive:`Abandonner`,finalizeJob:`Finaliser le job`,finalizing:`Finalisation…`,finalizeJobTooltip:`Terminer cette session interactive et agréger les tokens et le coût de chaque tour dans le total du job.`,interactive:{ready:`Prêt — envoyez un prompt`,working:`L'agent travaille…`,placeholder:`Envoyez un message au job en cours…`,send:`Envoyer`,liveTotals:"{{turns}} tours · ${{cost}}",autoHint:`Ce job suit son plan et se termine tout seul — les messages ne sont qu'un pilotage optionnel.`,wrapUp:`Terminer maintenant`,wrapUpTooltip:`Met fin à la session maintenant — le job se termine avec le travail produit jusqu'ici, les tokens et le coût de chaque tour étant intégrés au total.`,wrapUpStep:`Clore cette étape`,wrapUpStepTooltip:`Met fin à l'étape en cours maintenant — la boucle avance avec ce que l'étape a produit jusqu'ici.`,wrappingUp:`Finalisation…`,queued_one:`{{count}} message en attente`,queued_other:`{{count}} messages en attente`,waitingForStep:`Entre deux étapes — la boucle décide de la suite. Vous pourrez envoyer un message au démarrage de la prochaine étape IA.`,waitingForStepShort:`En attente de la prochaine étape…`,sendDisabledEmpty:`Écrivez d'abord un message`,sendDisabledWaiting:`Aucune session d'étape active pour le moment`},toast:{jobDeleted:`Job supprimé`,cancelSignalSent:`Signal d'annulation envoyé`,cancelSignalSentDescription:`Le job s'arrêtera au prochain point sûr`,failed:`Échec`,networkError:`Erreur réseau`,exportFailed:`Échec de l'export`,exportFailedHttp:`Échec de l'export (HTTP {{status}})`,jobRequeued:`Job remis en file`,spawnFailed:`Échec du lancement du job`,finalizeScheduled:`Finalisation du job interactif…`,finalizeFailed:`Échec de la finalisation du job`,sendFailed:`Échec de l'envoi du message`,wrapUpScheduled:`Finalisation du job…`,wrapUpStepScheduled:`Clôture de l'étape — la boucle avance avec ce qu'elle a produit`}},a={inProgress:`Job en cours`,completed:`Job terminé`,failed:`Job échoué`,duration:`Durée`,cost:`Coût`,turns:`Tours`,tokens:`Tokens`,filesCount_one:`{{count}} fichier`,filesCount_other:`{{count}} fichiers`,pipelineTotal:`Total du pipeline ({{count}} phases)`,totalCost:`Coût total`,totalTokens:`Total des tokens`,filesModified:`Fichiers modifiés`,zoneInProgress:`En cours`,zoneFinal:`Résumé final`,zoneFinalPending:`Résumé final — calculé à la fin`,pendingCaption:`Calculé à la fin`,pendingTooltip:`C'est le chiffre réel du fournisseur ; il apparaît à la fin du job.`,costTooltip:`Le coût réel est facturé par le fournisseur à la clôture du job.`,liveTooltip:`En direct`,explainer:`Le coût, les tours et les tokens sont les chiffres réels du fournisseur et apparaissent à la fin.`,notAvailable:`Non disponible`,steps_one:`{{count}} étape`,steps_other:`{{count}} étapes`,activity:{editing:`Édition de {{arg}}`,writing:`Écriture de {{arg}}`,reading:`Lecture de {{arg}}`,searching:`Recherche de « {{arg}} »`,running:`Exécution : {{arg}}`,thinking:`Réflexion…`,reasoning:`Raisonnement…`,working:`Travail en cours…`,connecting:`Connexion à l'agent…`,starting:`Démarrage…`,delegating:`Délégation à {{arg}}`},pipelinePartial:`≥ affiché — {{count}} phase(s) sans coût enregistré`,pipelinePartialTooltip:`Certaines phases se sont arrêtées avant de rapporter leur coût ; ce total est donc une borne inférieure.`,pipelineCostUnavailable:`La télémétrie de coût est indisponible pour toutes les phases.`,pipelineUsageUnavailable:`La télémétrie des tokens est indisponible pour toutes les phases.`,pipelineUsagePartial:`≥ affiché — phases sans télémétrie des tokens : {{count}}`,pipelineUsageTooltip:`Les fournisseurs peuvent terminer des phases sans exposer la télémétrie des tokens ; seule l'utilisation connue est incluse.`,costUnknownLocal:`Coût inconnu (moteur local)`,costUnknownLocalTooltip:`Coût inconnu (moteur local). Ajoutez des tarifs à la connexion pour voir une estimation.`},o={showMore:`+ {{count}} de plus`,showLess:`Voir moins`,deletedTicket:`#{{id}} (supprimé)`,deletedTooltip:`Le ticket n'existe plus`},s={notFound:`Job introuvable`,cancelConfirmTitle:`Annuler le job ?`,cancelConfirmDescription:`Le job s'arrêtera au prochain point sûr. Cette action est irréversible.`,keepRunning:`Laisser tourner`,cancelJob:`Annuler le job`,stopRun:`Arrêter l'exécution`,stopRunConfirmTitle:`Arrêter cette exécution ?`,stopRunConfirmDescription:`L'exécution de la boucle s'arrêtera à la prochaine limite d'étape. Cette action est irréversible.`,toast:{cancelSignalSent:`Signal d'annulation envoyé`,cancelSignalSentDescription:`Le job s'arrêtera au prochain point sûr`,stopSignalSent:`Signal d'arrêt envoyé`,stopSignalSentDescription:`L'exécution s'arrêtera à la prochaine limite d'étape`,cancelFailed:`Échec de l'annulation`,networkError:`Erreur réseau`}},c={title:`Comparaison de jobs`,jobN:`Job {{n}}`,loadFailed:`Échec du chargement de la comparaison : {{error}}`,duration:`Durée`,cost:`Coût`,tokensOut:`Tokens en sortie`,tokensIn:`Tokens en entrée`,cacheRead:`Lecture cache`,model:`Modèle`,phasesDone:`Phases terminées`,betterValueHint:`Les surlignages verts indiquent la meilleure valeur`},l={emptyTitle:`Aucun job pour l'instant`,emptyDescription:`Exécutez une commande ci-dessus pour voir l'historique de vos jobs ici`,loadFailed:`Échec du chargement des jobs`,filterAll:`Tous ({{count}})`,filterStatus:`{{status}} ({{count}})`,fromDate:`Date de début`,toDate:`Date de fin`,clear:`Effacer`,exitCompareMode:`Quitter le mode comparaison`,compareTwoJobs:`Comparer 2 jobs`,clearJobs:`Effacer les jobs`,selectTwoToCompare:`Sélectionnez 2 jobs à comparer`,selectOneMore:`Sélectionnez 1 job de plus`,readyToCompare:`Prêt — cliquez sur comparer`,compareAction:`Comparer →`,colStatus:`Statut`,colCommand:`Commande`,colDuration:`Durée`,colTokens:`Tokens`,colCost:`Coût`,colStarted:`Démarré`,profileTooltip:`Profil : {{name}}`,pipelinePart:`Fait partie d'un pipeline`,pipelineDependsOn:`(dépend de l'étape précédente)`,deleteProposal:`Supprimer la proposition`,loadMore:`Charger plus ({{count}} restants)`,priority:{critical:`critique`,high:`haute`,normal:`normale`,low:`basse`},clearModal:{title:`Effacer les jobs`,jobsInHistory_one:`{{count}} job dans l'historique`,jobsInHistory_other:`{{count}} jobs dans l'historique`,clearAll_one:`Effacer {{count}} job`,clearAll_other:`Effacer les {{count}} jobs`,orByRange:`Ou effacer par plage de dates :`,fromPlaceholder:`Du`,toPlaceholder:`Au`,clearInRange_one:`Effacer {{count}} job dans la plage`,clearInRange_other:`Effacer {{count}} jobs dans la plage`,clearRange:`Effacer la plage`},deleteProposalConfirm:{title:`Supprimer la proposition ?`,description:`Cela supprimera définitivement 1 proposition. Cette action est irréversible.`},toast:{cleared_one:`{{count}} job effacé`,cleared_other:`{{count}} jobs effacés`,clearFailed:`Échec de l'effacement des jobs`,networkError:`Erreur réseau`}},u={none:`Aucun job actif`,noneHint:`Sélectionnez une commande ci-dessous pour démarrer un job`,exitCode:`exit {{code}}`,cancelTooltip:`Envoyer SIGTERM au processus claude en cours`,viewLogs:`Voir les logs`,toast:{cancelRequested:`Annulation du job demandée`,cancelRequestedDescription:`Envoi de SIGTERM au processus`,cancelFailed:`Échec de l'annulation du job`,networkError:`Erreur réseau lors de l'annulation du job`}},d={setup:`Préparation`,iteration:`Itération {{current}}/{{limit}}`,iterationBadge:`itér. {{count}}`,follow:`Suivi en direct`,resumeFollow:`Reprendre le suivi`,expandAll:`Tout développer`,collapseAll:`Tout réduire`,copyStep:`Copier l'étape`,copied:`Étape copiée dans le presse-papiers`,stepDetail:`Détails de l'étape`,stepDetailTemplate:`Modèle`,stepDetailCommand:`Commande`,copyCommand:`Copier`,interrupted:`Interrompue`,waiting:`En attente de la prochaine étape…`,stepMapAria:`Carte des étapes de la boucle`,stalled:`Bloquée`,stalledIdle_one:`Aucune sortie du fournisseur pendant {{count}} minute — l'app a arrêté cette tentative`,stalledIdle_other:`Aucune sortie du fournisseur pendant {{count}} minutes — l'app a arrêté cette tentative`,providerLimit:`Limite du fournisseur`,providerLimitHint:`Le fournisseur a répondu par un avis de limite d'utilisation ; l'app a arrêté l'exécution au lieu de boucler.`,paused:`En pause`,runtimeGraph:`Graphe d’exécution`,graphBack:`Retour`,graphOpenComponent:`Ouvrir le composant`,graphNoAttempts:`Aucune tentative enregistrée`,graphState:{running:`En cours`,paused:`En pause`,failed:`Échec`,stalled:`Bloqué`,interrupted:`Interrompu`,ok:`Réussi`,pending:`En attente`,unknown:`Inconnu`},repeatFromHere:`Reprendre à partir d’ici`,forkFailed:`Impossible de créer l’exécution liée`,forkPending:`Réessayez l’étape sélectionnée initialement pour terminer la bifurcation en attente.`,forkCreated:`Exécution liée créée. Ouvrez-la et reprenez au point sélectionné.`,openFork:`Ouvrir l’exécution liée`},f={loading:`Chargement des logs…`,empty:`Aucune sortie de log pour l'instant`,filterPlaceholder:`Filtrer les logs…`,copySuccess:`Log copié dans le presse-papiers`,copyFailed:`Échec de la copie du log`,lineCount:`{{filtered}} / {{total}} lignes`,jumpToBottom:`Aller en bas`,phaseLines_one:`{{count}} ligne`,phaseLines_other:`{{count}} lignes`,noMatchingLines:`Aucune ligne correspondante`,noOutput:`Aucune sortie`,completed:`Terminé`,turns_one:`{{count}} tour`,turns_other:`{{count}} tours`},p={title:`Résultat de l’exécution`,execution:`Exécution`,implementation:`Implémentation`,validation:`Validation`,archive:`Archivage`,delivery:`Livraison`,counters:`Étapes : {{steps}} · Évaluations : {{evaluations}} · Tours de l’agent : {{turns}}`,unavailable:`Indisponible`,evidence:`Preuves, exceptions et durées des phases`,snapshot:`Enregistré à la fin : {{change}} · {{at}}`,acceptedBy:`Accepté par {{by}}`,required:`Obligatoire`,supplementary:`Complémentaire`,attempts:`Tentatives : {{count}}`,phaseCostUnavailable:`Le coût par phase Core est indisponible ; la consommation du fournisseur est attribuée aux étapes de la boucle.`,noCoreEvidence:`Preuves d’acceptation indisponibles. Une exécution réussie ne confirme pas à elle seule que le ticket est terminé.`,status:{success:`Réussie`,failed:`Échouée`,blocked:`Bloquée`,stopped:`Arrêtée`,stalled:`Sans progression`,complete:`Terminée`,incomplete:`Incomplète`,verified:`Vérifiée`,"with-exceptions":`Vérifiée avec exceptions`,pending:`En attente`,"pending-host":`Livraison par l’hôte en attente`,done:`Terminé`,running:`En cours`,skipped:`Ignoré`,passed:`Réussi`,unavailable:`Indisponible`}},m={details:`Détails`,phaseActivity:`{{phase}} · {{activity}}`,liveReported:`Rapporté par le fournisseur jusqu'ici ; les chiffres définitifs arrivent à la fin du job.`,questionPending:`Répondre à la question`},h={statusLabel:e,statusTooltip:t,statusName:n,page:r,detail:i,statusPanel:a,ticketHeader:o,modal:s,comparison:c,recent:l,activeJob:u,loopExplorer:d,logViewer:f,completion:p,runHeader:m};export{u as activeJob,c as comparison,p as completion,h as default,i as detail,f as logViewer,d as loopExplorer,s as modal,r as page,l as recent,m as runHeader,e as statusLabel,n as statusName,a as statusPanel,t as statusTooltip,o as ticketHeader};
1
+ var e={running:`en cours`,completed:`terminé`,done:`fini`,failed:`échoué`,canceled:`annulé`,queued:`en attente`,zombie:`zombie`,skipped:`ignoré`},t={running:`Le job est en cours d'exécution`,completed:`Le job s'est terminé avec succès`,failed:`Le job s'est terminé avec un code de sortie non nul`,canceled:`Le job a été annulé manuellement`,queued:`Le job attend dans la file`,queuedToRun:`Le job attend de s'exécuter`,zombie:`Le job a été arrêté automatiquement après une inactivité prolongée`,skipped:`Le job a été ignoré car un job parent du pipeline a échoué`},n={running:`en cours`,completed:`terminé`,failed:`échoué`,canceled:`annulé`,zombie_terminated:`zombie`,queued:`en attente`,skipped:`ignoré`},r={title:`Jobs`,exportJobs:`Exporter les jobs`,proposalDeleted:`Proposition supprimée`,proposal:{title:`Proposition`,noContent:`Aucun contenu de proposition pour l'instant.`,githubIssue:`Issue GitHub :`,status:{input:`En attente de saisie`,exploring:`Exploration`,review:`Prête pour révision`,refining:`Affinage`,creatingIssue:`Création du ticket`,created:`Créée`,cancelled:`Annulée`,unknown:`Statut inconnu : {{status}}`}}},i={breadcrumbDashboard:`Tableau de bord`,breadcrumbJob:`Job #{{id}}`,notFound:`Job introuvable`,notFoundDescription:`L'ID de job « {{id}} » n'existe pas`,backToDashboard:`Retour au tableau de bord`,startedAgo:`Démarré {{timeAgo}}`,queuedWaiting:`En file d'attente — en attente de démarrage`,exportDiagnostic:`Exporter le diagnostic`,exportDiagnosticAria:`Exporter le bundle de diagnostic`,exportDiagnosticTooltip:`Télécharger un ZIP avec la télémétrie, les logs et le résumé de ce job`,reExecute:`Réexécuter`,reExecuteTooltip:`Lancer un nouveau job avec la même commande`,cancelJob:`Annuler le job`,cancelJobTooltip:`Envoyer SIGTERM au processus en cours. Le job sera marqué comme annulé.`,cancelInteractive:`Abandonner`,finalizeJob:`Finaliser le job`,finalizing:`Finalisation…`,finalizeJobTooltip:`Terminer cette session interactive et agréger les tokens et le coût de chaque tour dans le total du job.`,interactive:{ready:`Prêt — envoyez un prompt`,working:`L'agent travaille…`,placeholder:`Envoyez un message au job en cours…`,send:`Envoyer`,liveTotals:"{{turns}} tours · ${{cost}}",autoHint:`Ce job suit son plan et se termine tout seul — les messages ne sont qu'un pilotage optionnel.`,wrapUp:`Terminer maintenant`,wrapUpTooltip:`Met fin à la session maintenant — le job se termine avec le travail produit jusqu'ici, les tokens et le coût de chaque tour étant intégrés au total.`,wrapUpStep:`Clore cette étape`,wrapUpStepTooltip:`Met fin à l'étape en cours maintenant — la boucle avance avec ce que l'étape a produit jusqu'ici.`,wrappingUp:`Finalisation…`,queued_one:`{{count}} message en attente`,queued_other:`{{count}} messages en attente`,waitingForStep:`Entre deux étapes — la boucle décide de la suite. Vous pourrez envoyer un message au démarrage de la prochaine étape IA.`,waitingForStepShort:`En attente de la prochaine étape…`,sendDisabledEmpty:`Écrivez d'abord un message`,sendDisabledWaiting:`Aucune session d'étape active pour le moment`},toast:{jobDeleted:`Job supprimé`,cancelSignalSent:`Signal d'annulation envoyé`,cancelSignalSentDescription:`Le job s'arrêtera au prochain point sûr`,failed:`Échec`,networkError:`Erreur réseau`,exportFailed:`Échec de l'export`,exportFailedHttp:`Échec de l'export (HTTP {{status}})`,jobRequeued:`Job remis en file`,spawnFailed:`Échec du lancement du job`,finalizeScheduled:`Finalisation du job interactif…`,finalizeFailed:`Échec de la finalisation du job`,sendFailed:`Échec de l'envoi du message`,wrapUpScheduled:`Finalisation du job…`,wrapUpStepScheduled:`Clôture de l'étape — la boucle avance avec ce qu'elle a produit`}},a={inProgress:`Job en cours`,completed:`Job terminé`,failed:`Job échoué`,duration:`Durée`,cost:`Coût`,turns:`Tours`,tokens:`Tokens`,filesCount_one:`{{count}} fichier`,filesCount_other:`{{count}} fichiers`,pipelineTotal:`Total du pipeline ({{count}} phases)`,totalCost:`Coût total`,totalTokens:`Total des tokens`,filesModified:`Fichiers modifiés`,zoneInProgress:`En cours`,zoneFinal:`Résumé final`,zoneFinalPending:`Résumé final — calculé à la fin`,pendingCaption:`Calculé à la fin`,pendingTooltip:`C'est le chiffre réel du fournisseur ; il apparaît à la fin du job.`,costTooltip:`Le coût réel est facturé par le fournisseur à la clôture du job.`,liveTooltip:`En direct`,explainer:`Le coût, les tours et les tokens sont les chiffres réels du fournisseur et apparaissent à la fin.`,notAvailable:`Non disponible`,steps_one:`{{count}} étape`,steps_other:`{{count}} étapes`,activity:{editing:`Édition de {{arg}}`,writing:`Écriture de {{arg}}`,reading:`Lecture de {{arg}}`,searching:`Recherche de « {{arg}} »`,running:`Exécution : {{arg}}`,thinking:`Réflexion…`,reasoning:`Raisonnement…`,working:`Travail en cours…`,connecting:`Connexion à l'agent…`,starting:`Démarrage…`,delegating:`Délégation à {{arg}}`},pipelinePartial:`≥ affiché — {{count}} phase(s) sans coût enregistré`,pipelinePartialTooltip:`Certaines phases se sont arrêtées avant de rapporter leur coût ; ce total est donc une borne inférieure.`,pipelineCostUnavailable:`La télémétrie de coût est indisponible pour toutes les phases.`,pipelineUsageUnavailable:`La télémétrie des tokens est indisponible pour toutes les phases.`,pipelineUsagePartial:`≥ affiché — phases sans télémétrie des tokens : {{count}}`,pipelineUsageTooltip:`Les fournisseurs peuvent terminer des phases sans exposer la télémétrie des tokens ; seule l'utilisation connue est incluse.`,costUnknownLocal:`Coût inconnu (moteur local)`,costUnknownLocalTooltip:`Coût inconnu (moteur local). Ajoutez des tarifs à la connexion pour voir une estimation.`},o={showMore:`+ {{count}} de plus`,showLess:`Voir moins`,deletedTicket:`#{{id}} (supprimé)`,deletedTooltip:`Le ticket n'existe plus`},s={notFound:`Job introuvable`,cancelConfirmTitle:`Annuler le job ?`,cancelConfirmDescription:`Le job s'arrêtera au prochain point sûr. Cette action est irréversible.`,keepRunning:`Laisser tourner`,cancelJob:`Annuler le job`,stopRun:`Arrêter l'exécution`,stopRunConfirmTitle:`Arrêter cette exécution ?`,stopRunConfirmDescription:`L'exécution de la boucle s'arrêtera à la prochaine limite d'étape. Cette action est irréversible.`,toast:{cancelSignalSent:`Signal d'annulation envoyé`,cancelSignalSentDescription:`Le job s'arrêtera au prochain point sûr`,stopSignalSent:`Signal d'arrêt envoyé`,stopSignalSentDescription:`L'exécution s'arrêtera à la prochaine limite d'étape`,cancelFailed:`Échec de l'annulation`,networkError:`Erreur réseau`}},c={title:`Comparaison de jobs`,jobN:`Job {{n}}`,loadFailed:`Échec du chargement de la comparaison : {{error}}`,duration:`Durée`,cost:`Coût`,tokensOut:`Tokens en sortie`,tokensIn:`Tokens en entrée`,cacheRead:`Lecture cache`,model:`Modèle`,phasesDone:`Phases terminées`,betterValueHint:`Les surlignages verts indiquent la meilleure valeur`},l={emptyTitle:`Aucun job pour l'instant`,emptyDescription:`Exécutez une commande ci-dessus pour voir l'historique de vos jobs ici`,loadFailed:`Échec du chargement des jobs`,filterAll:`Tous ({{count}})`,filterStatus:`{{status}} ({{count}})`,fromDate:`Date de début`,toDate:`Date de fin`,clear:`Effacer`,exitCompareMode:`Quitter le mode comparaison`,compareTwoJobs:`Comparer 2 jobs`,clearJobs:`Effacer les jobs`,selectTwoToCompare:`Sélectionnez 2 jobs à comparer`,selectOneMore:`Sélectionnez 1 job de plus`,readyToCompare:`Prêt — cliquez sur comparer`,compareAction:`Comparer →`,colStatus:`Statut`,colCommand:`Commande`,colDuration:`Durée`,colTokens:`Tokens`,colCost:`Coût`,colStarted:`Démarré`,profileTooltip:`Profil : {{name}}`,pipelinePart:`Fait partie d'un pipeline`,pipelineDependsOn:`(dépend de l'étape précédente)`,deleteProposal:`Supprimer la proposition`,loadMore:`Charger plus ({{count}} restants)`,priority:{critical:`critique`,high:`haute`,normal:`normale`,low:`basse`},clearModal:{title:`Effacer les jobs`,jobsInHistory_one:`{{count}} job dans l'historique`,jobsInHistory_other:`{{count}} jobs dans l'historique`,clearAll_one:`Effacer {{count}} job`,clearAll_other:`Effacer les {{count}} jobs`,orByRange:`Ou effacer par plage de dates :`,fromPlaceholder:`Du`,toPlaceholder:`Au`,clearInRange_one:`Effacer {{count}} job dans la plage`,clearInRange_other:`Effacer {{count}} jobs dans la plage`,clearRange:`Effacer la plage`},deleteProposalConfirm:{title:`Supprimer la proposition ?`,description:`Cela supprimera définitivement 1 proposition. Cette action est irréversible.`},toast:{cleared_one:`{{count}} job effacé`,cleared_other:`{{count}} jobs effacés`,clearFailed:`Échec de l'effacement des jobs`,networkError:`Erreur réseau`}},u={none:`Aucun job actif`,noneHint:`Sélectionnez une commande ci-dessous pour démarrer un job`,exitCode:`exit {{code}}`,cancelTooltip:`Envoyer SIGTERM au processus claude en cours`,viewLogs:`Voir les logs`,toast:{cancelRequested:`Annulation du job demandée`,cancelRequestedDescription:`Envoi de SIGTERM au processus`,cancelFailed:`Échec de l'annulation du job`,networkError:`Erreur réseau lors de l'annulation du job`}},d={setup:`Préparation`,iteration:`Itération {{current}}/{{limit}}`,iterationBadge:`itér. {{count}}`,follow:`Suivi en direct`,resumeFollow:`Reprendre le suivi`,expandAll:`Tout développer`,collapseAll:`Tout réduire`,copyStep:`Copier l'étape`,copied:`Étape copiée dans le presse-papiers`,stepDetail:`Détails de l'étape`,stepDetailTemplate:`Modèle`,stepDetailCommand:`Commande`,copyCommand:`Copier`,interrupted:`Interrompue`,waiting:`En attente de la prochaine étape…`,stepMapAria:`Carte des étapes de la boucle`,stalled:`Bloquée`,stalledIdle_one:`Aucune sortie du fournisseur pendant {{count}} minute — l'app a arrêté cette tentative`,stalledIdle_other:`Aucune sortie du fournisseur pendant {{count}} minutes — l'app a arrêté cette tentative`,providerLimit:`Limite du fournisseur`,providerLimitHint:`Le fournisseur a répondu par un avis de limite d'utilisation ; l'app a arrêté l'exécution au lieu de boucler.`,paused:`En pause`,runtimeGraph:`Graphe d’exécution`,graphFullscreen:`Plein écran`,graphExitFullscreen:`Quitter le plein écran`,graphBack:`Retour`,graphOpenComponent:`Ouvrir le composant`,graphNoAttempts:`Aucune tentative enregistrée`,graphState:{running:`En cours`,paused:`En pause`,failed:`Échec`,stalled:`Bloqué`,interrupted:`Interrompu`,ok:`Réussi`,pending:`En attente`,unknown:`Inconnu`},repeatFromHere:`Reprendre à partir d’ici`,forkFailed:`Impossible de créer l’exécution liée`,forkPending:`Réessayez l’étape sélectionnée initialement pour terminer la bifurcation en attente.`,forkCreated:`Exécution liée créée. Ouvrez-la et reprenez au point sélectionné.`,openFork:`Ouvrir l’exécution liée`},f={loading:`Chargement des logs…`,empty:`Aucune sortie de log pour l'instant`,filterPlaceholder:`Filtrer les logs…`,copySuccess:`Log copié dans le presse-papiers`,copyFailed:`Échec de la copie du log`,lineCount:`{{filtered}} / {{total}} lignes`,jumpToBottom:`Aller en bas`,phaseLines_one:`{{count}} ligne`,phaseLines_other:`{{count}} lignes`,noMatchingLines:`Aucune ligne correspondante`,noOutput:`Aucune sortie`,completed:`Terminé`,turns_one:`{{count}} tour`,turns_other:`{{count}} tours`},p={title:`Résultat de l’exécution`,execution:`Exécution`,implementation:`Implémentation`,validation:`Validation`,archive:`Archivage`,delivery:`Livraison`,counters:`Étapes : {{steps}} · Évaluations : {{evaluations}} · Tours de l’agent : {{turns}}`,unavailable:`Indisponible`,evidence:`Preuves, exceptions et durées des phases`,snapshot:`Enregistré à la fin : {{change}} · {{at}}`,acceptedBy:`Accepté par {{by}}`,required:`Obligatoire`,supplementary:`Complémentaire`,attempts:`Tentatives : {{count}}`,phaseCostUnavailable:`Le coût par phase Core est indisponible ; la consommation du fournisseur est attribuée aux étapes de la boucle.`,noCoreEvidence:`Preuves d’acceptation indisponibles. Une exécution réussie ne confirme pas à elle seule que le ticket est terminé.`,status:{success:`Réussie`,failed:`Échouée`,blocked:`Bloquée`,stopped:`Arrêtée`,stalled:`Sans progression`,complete:`Terminée`,incomplete:`Incomplète`,verified:`Vérifiée`,"with-exceptions":`Vérifiée avec exceptions`,pending:`En attente`,"pending-host":`Livraison par l’hôte en attente`,done:`Terminé`,running:`En cours`,skipped:`Ignoré`,passed:`Réussi`,unavailable:`Indisponible`}},m={details:`Détails`,phaseActivity:`{{phase}} · {{activity}}`,liveReported:`Rapporté par le fournisseur jusqu'ici ; les chiffres définitifs arrivent à la fin du job.`,questionPending:`Répondre à la question`},h={statusLabel:e,statusTooltip:t,statusName:n,page:r,detail:i,statusPanel:a,ticketHeader:o,modal:s,comparison:c,recent:l,activeJob:u,loopExplorer:d,logViewer:f,completion:p,runHeader:m};export{u as activeJob,c as comparison,p as completion,h as default,i as detail,f as logViewer,d as loopExplorer,s as modal,r as page,l as recent,m as runHeader,e as statusLabel,n as statusName,a as statusPanel,t as statusTooltip,o as ticketHeader};