specrails-desktop 2.58.0 → 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
@@ -21,7 +21,7 @@ Los cuatro niveles vienen concedidos de serie, así que un asistente conectado p
21
21
 
22
22
  ## Exclusivamente para agentes: conecta tu cliente
23
23
 
24
- Cuando una persona pida al agente conectarse, consulta el [procedimiento de conexión MCP para agentes](../../../agents/mcp.md). Cubre Claude Code, Codex CLI y escritorio, Kimi Code y Gemini CLI: localizar el puente incluido, conservar la configuración, verificar la conexión real y diagnosticar fallos. La versión web es Markdown y no necesita JavaScript.
24
+ Cuando una persona pida al agente conectarse, consulta el [procedimiento de conexión MCP para agentes](../../../agents/mcp.md). Cubre Claude Code y Codex CLI y escritorio: localizar el puente incluido, conservar la configuración, verificar la conexión real y diagnosticar fallos. La versión web es Markdown y no necesita JavaScript.
25
25
 
26
26
  Mantén Specrails en ejecución y abre **Ajustes ▸ MCP ▸ Copiar configuración de cliente**. Algunas versiones devuelven solo `specrails-mcp`, que puede no estar en PATH; el procedimiento explica cómo localizar ejecutable y script. El puente lee el token localmente: no lo copies en la configuración. Registrar no demuestra conexión: completa `initialize`, `tools/list` y una llamada de lectura a `specrails_projects` con `{"action":"list"}`.
27
27
 
@@ -20,17 +20,6 @@ La cabecera tiene un **selector de proyecto** (como el de Cursor). Elige un proy
20
20
 
21
21
  Elegir un proyecto aquí **no** mueve tu panel: el objetivo del agente y lo que estás mirando son independientes.
22
22
 
23
- ## Proveedor y modelo
24
-
25
- Justo encima del cuadro de mensaje eliges el **proveedor** (Claude, Codex,
26
- Gemini o Kimi) y su **modelo**. Cada proveedor tiene su propia lista y cambiar
27
- de proveedor inicia una sesión separada.
28
-
29
- Con Kimi, los niveles limitan las herramientas MCP de Specrails, pero no
30
- convierten `kimi -p` en un sandbox: Kimi aprueba sus herramientas nativas
31
- automáticamente. Las acciones pure-output inseguras se rechazan antes de
32
- iniciar el proceso; consulta la [matriz Kimi](../../../kimi.md).
33
-
34
23
  ## Niveles de permiso: tú llevas las riendas
35
24
 
36
25
  El agente puede tocar toda la app, así que tú decides cuánta libertad tiene con un **nivel** que cambias en vivo pulsando **Shift+Tab** (el mismo ciclo que usa Claude Code). Cada nivel incluye todo lo que hay por debajo:
@@ -24,10 +24,6 @@ No disponible en motores locales: perfiles de agente y roles personalizados, enr
24
24
 
25
25
  > Las misiones necesitan una **ventana de contexto grande** en el servidor (64k tokens o más): el prompt del operador más los schemas de herramientas de Specrails ocupan mucho. Chat y Explore van bien con 32k. Si un turno falla con *exceeds the available context size*, amplía la ventana (Ollama `OLLAMA_CONTEXT_LENGTH`, llama.cpp `-c`, LM Studio *Context Length*).
26
26
 
27
- ## ¿Solo tienes un motor local?
28
-
29
- No hay nada que configurar. Specrails ofrece los motores que tu máquina puede ejecutar de verdad y elige el predeterminado con una única regla en todas partes: un CLI instalado (Claude → Codex → Gemini → Kimi) o, si no hay ninguno, el primer motor local cuyo endpoint responda. En una máquina con solo un endpoint local, los rails, Add Spec, el chat, **las misiones del agente y el Project Builder** arrancan en él sin tocar ningún selector. Un motor cuyo servidor está caído simplemente no se ofrece hasta que vuelva a responder. Las misiones existentes conservan el motor con el que se crearon; el selector sigue permitiendo cambiarlo.
30
-
31
27
  ## Elegir modelo
32
28
 
33
29
  La calidad depende del modelo, no de Specrails. Para rails usa un modelo de código afinado para tool calling de 30B parámetros o más; los modelos instruct pequeños valen para chat, Explore y specs Quick. Prueba **Freestyle** o una sesión Explore antes de confiar un rail implement completo a un modelo nuevo.
@@ -35,8 +35,8 @@ Eso es todo. El rail arranca un proceso de la CLI de IA en el contexto de ejecuc
35
35
  | **Pastilla de estado** | `idle`, `running` o `failed`. No hay un estado "completed" aparte — un rail vuelve a `idle` cuando su job termina limpiamente. |
36
36
  | **Lista de specs** | Los IDs asignados a este rail. Arrastra más para añadirlas, o sácalas para desvincularlas. |
37
37
  | **Selector de Loop** | El Loop que ejecuta este rail — uno integrado (`Implement` / `Freestyle` / `SDD Quick (OpenSpec)`) o un loop personalizado. Mira la tabla de más abajo. Se recuerda por rail. |
38
- | **Selector de perfil** | Qué perfil del proveedor se ejecuta (rails Claude y Kimi). |
39
- | **Selector de motor** | Qué proveedor ejecuta el rail — Claude, Codex, Gemini o Kimi. |
38
+ | **Selector de perfil** | Qué perfil del proveedor se ejecuta (rails Claude). |
39
+ | **Selector de motor** | Qué proveedor ejecuta el rail — Claude o Codex. |
40
40
  | **▶ Play / ■ Stop** | Iniciar o cancelar. |
41
41
 
42
42
  ### Qué ejecuta un rail: Loops
@@ -46,14 +46,9 @@ Un rail ejecuta un **Loop** — la receta del trabajo. Dos loops están **integr
46
46
  | Loop integrado | Comando | Qué hace |
47
47
  |------|---------|--------------|
48
48
  | **Implement** | `/specrails:implement` | Un job que cubre todas las specs del rail. Ejecuta el pipeline completo Architect → Developer → Reviewer → Ship. El predeterminado del día a día. |
49
- | **Freestyle** | Freestyle | Claude o Kimi implementan cada spec de forma autónoma, **saltándose** el pipeline. |
50
49
 
51
50
  Para ejecutar varias specs, pon las relacionadas (hasta 3) en un mismo rail — `Implement` las ejecuta como un único job conjunto — o reparte las independientes entre varios rails: cada rail con git se ejecuta en paralelo en su propio worktree aislado.
52
51
 
53
- Freestyle usa las herramientas nativas y el catálogo de modelos del proveedor.
54
- Claude tiene transporte interactivo persistente; Kimi usa un proceso agentic
55
- `kimi -p` sin stdin persistente.
56
-
57
52
  Los integrados también se pueden editar: edita uno en el Loop Builder y publícalo, y todos los rails que lo eligen ejecutan tu versión (usa **Restaurar original** para volver atrás).
58
53
 
59
54
  Más allá de los integrados, puedes **construir tus propios loops** — repetir un ciclo verify → fix → verify hasta cumplir un objetivo, encadenar comandos de shell entre pasos de IA y más. Esos loops personalizados aparecen en el mismo selector de Loop. Esa es la siguiente gran idea: [El Loop Builder](the-loop-builder).
@@ -84,11 +79,6 @@ Pulsa cualquier tarjeta para abrir la **vista de detalle del job**, donde están
84
79
 
85
80
  Pulsa **■ Stop** en la cabecera del rail. La app envía `SIGTERM` al subproceso, espera **5 segundos** a que salga limpiamente y luego le aplica `SIGKILL`. No queda nada a medio arrancar.
86
81
 
87
- ## Si un rail no se lanza
88
-
89
- Si falta la CLI elegida, el lanzamiento falla antes de iniciar. Para Kimi
90
- instala/autentica `kimi` 0.27+; Desktop no inicia un servidor.
91
-
92
82
  ## Detenerlo todo
93
83
 
94
84
  Si algo parece ir mal:
@@ -101,4 +91,4 @@ Si algo parece ir mal:
101
91
 
102
92
  - [El Loop Builder](the-loop-builder) — qué ejecuta un rail y cómo construir tus propios loops.
103
93
  - [La vista de detalle del job](the-job-detail-view) — fases, métricas en vivo, tarjetas de ticket.
104
- - [Elegir un motor por rail](picking-an-engine-per-rail) — Claude, Codex, Gemini o Kimi.
94
+ - [Elegir un motor por rail](picking-an-engine-per-rail) — Claude o Codex.
@@ -94,9 +94,6 @@ Algunas cosas que conviene saber:
94
94
  - **La línea de totales es real.** El compositor muestra un resumen en vivo `N turnos · $X`, sumado a partir del uso real de cada turno completado — coherente con la promesa de esta página de no adivinar nada.
95
95
  - **Dos formas de terminar una sesión.** La mayoría de los jobs **terminan solos**: en cuanto un turno acaba sin mensajes en cola, la sesión se asienta y el job se completa — tus mensajes son dirección opcional, nunca una obligación. Una acción discreta **Terminar ahora** la cierra antes con todo lo producido hasta el momento. Los jobs **Freestyle** son la excepción: quedan a la espera entre turnos hasta que tú pulsas **Finalize** — ese es su diseño, una sesión de ida y vuelta que cierras cuando terminas.
96
96
  - **En un loop, los mensajes van al paso activo.** En un loop propio o integrado, tu mensaje llega al **paso de IA que está corriendo en ese momento**. Entre pasos (mientras el Loop Decider piensa, o corre un comando de shell) el compositor muestra un breve estado *«Esperando el siguiente paso…»* — tu texto redactado se conserva, y el envío se reactiva cuando arranca el siguiente paso de IA. **Asentar este paso** cierra el paso actual antes de tiempo y deja que el loop avance con lo que produjo.
97
- - **La interacción persistente es solo Claude.** Codex, Gemini y Kimi se
98
- ejecutan one-shot; Kimi reanuda chats con un nuevo `kimi --session=<id> -p` después de
99
- recibir un resume hint.
100
97
 
101
98
  ## Exportar diagnóstico
102
99
 
@@ -1,62 +1,19 @@
1
- # Elegir un motor por rail
1
+ <!-- guide-revision: mission-first-v1 -->
2
2
 
3
- Specrails desktop trata **Claude Code**, **Codex CLI**, **Gemini CLI** y
4
- **Kimi Code** como motores de primera clase. Un proyecto puede instalar
5
- cualquier combinación compatible.
3
+ # Elige proveedor y capacidades
6
4
 
7
- ## Cuándo aparece el selector
5
+ La configuración depende del proveedor elegido. Un nombre de modelo conocido no implica las mismas opciones de razonamiento, salida estructurada o aprobación en todos ellos.
8
6
 
9
- El **selector de motor** vive en la cabecera del rail, justo al lado del control de modo. Solo se muestra cuando el proyecto tiene **más de un** proveedor instalado.
7
+ ## Comprueba la disponibilidad
10
8
 
11
- > **Los proyectos de un solo proveedor se comportan de forma byte-idéntica.** Si un proyecto tiene un único motor, no se muestra ningún selector y nada cambia respecto a la selección de proveedor — sencillamente se ejecuta en ese motor. El selector es exclusivo para proyectos multiproveedor.
9
+ Autentica la CLI y revisa su estado en Specrails. Elige entre los modelos y niveles que ofrecen sus controles. Tener instalada la CLI no evita fallos de sesión, cuota o servicio remoto.
12
10
 
13
- Cuando sí aparece, tu elección es **por rail y por lanzamiento** — distintos rails pueden ejecutar distintos motores, y tu elección se recuerda por proyecto (con el motor principal del proyecto como valor por defecto).
11
+ Claude y Codex usan adaptadores distintos. Las combinaciones incompatibles deben fallar antes de empezar; un paso que exija una respuesta estructurada sin herramientas no funciona necesariamente con todos.
14
12
 
15
- ## Cómo elegir un motor
13
+ ## Usa el nivel de control adecuado
16
14
 
17
- 1. Asegúrate de que el selector de motor del rail está visible (el proyecto tiene 2 o más proveedores).
18
- 2. Púlsalo y elige **Claude**, **Codex**, **Gemini** o **Kimi**.
19
- 3. Lanza el rail con **▶ Play**.
15
+ El proveedor y modelo del rail controlan su ejecución. Los perfiles y el enrutado por rol dependen del proveedor y del flujo de Core que Desktop instaló en el proyecto: revisa la configuración efectiva.
20
16
 
21
- El motor seleccionado ejecuta cada fase del pipeline de ese rail. Si la CLI del motor elegido no está instalada, el lanzamiento falla rápido — no se arranca nada. Instala la CLI que falta y vuelve a intentarlo.
17
+ Para comparar ejecuciones, conserva spec, revisión y criterios de verificación. Distingue costes reportados, estimados y no disponibles. Consulta [perfiles](/docs/agents-profiles-and-the-balanced-default) y [consumo](/docs/insights-analytics-and-cost-tracking).
22
18
 
23
- ## En qué destaca cada motor
24
-
25
- Los cuatro ejecutan **Implement**:
26
-
27
- | Motor | Recurre a él cuando… | Notas |
28
- |--------|--------------------|-------|
29
- | **Claude** | Necesitas coste nativo, interacción persistente o políticas de tools estrictas. | Perfiles, Freestyle y transforms estructurados. |
30
- | **Codex** | Prefieres la CLI de OpenAI Codex o quieres comparar implementaciones entre proveedores. | `codex` ≥ 0.128.0. Sin reporte de coste nativo — la app rellena el coste desde su tarifario. Los perfiles no aplican. |
31
- | **Gemini** | Quieres la CLI de Gemini de Google, telemetría nativa o una ejecución más barata para specs rutinarias. | `gemini` ≥ 0.11.0 (define `GEMINI_API_KEY`). Telemetría OTLP nativa. Los perfiles no aplican. |
32
- | **Kimi** | Quieres Kimi agentic para Implement, Freestyle o loops sin Decider. | `kimi` ≥ 0.27.0 externo; perfiles/roles y effort low/high/max solo para K3; tokens/coste no disponibles. |
33
-
34
- ### Diferencias de capacidad
35
-
36
- Claude y Kimi admiten perfiles y Freestyle; Codex/Gemini usan legacy. Kimi no
37
- admite Loop Decider ni los transforms pure-output enumerados en la
38
- [guía Kimi](../../../kimi.md). Los perfiles Claude/Kimi están separados por
39
- proveedor.
40
-
41
- ## Un flujo de trabajo práctico
42
-
43
- Los proyectos multiproveedor brillan cuando quieres **comparar** o **afinar costes**:
44
-
45
- - **Comparar implementaciones.** Pon la misma spec en dos rails, configura uno con Claude y otro con Codex, lánzalos los dos (entre proyectos, o uno tras otro en la cola del mismo proyecto) y luego usa el botón **Comparar** en la página Jobs para enfrentar los resultados.
46
- - **Afinar costes por spec.** Ejecuta las specs de alto riesgo en Claude con un perfil `max`; ejecuta las specs rutinarias de limpieza en Gemini para ahorrar gasto. Filtra `/analytics` por motor para ver el desglose.
47
- - **Pon un valor por defecto con cabeza.** Configura el motor que más usas como principal del proyecto para que los rails lo adopten por defecto, y cambia por rail solo cuando una spec concreta quiera uno distinto.
48
-
49
- ## Cosas a tener en cuenta
50
-
51
- - **La selección de proveedor es inmutable tras crear el proyecto** (v1). Eliges los proveedores instalados al añadir el proyecto; no hay un interruptor en Ajustes para añadir o quitar uno después.
52
- - **Las métricas disponibles se registran.** Kimi no emite tokens ni coste USD
53
- autoritativos; esos campos quedan vacíos.
54
- - **El botón "Abrir CLI de IA" del terminal** también ofrece un selector de proveedor en proyectos multiproveedor, por si prefieres manejar una CLI a mano.
55
-
56
- ## A dónde ir después
57
-
58
- - [Usar Codex](../integrations/using-codex) — instalar e iniciar sesión.
59
- - [Usar Gemini](../integrations/using-gemini) — instalar, `GEMINI_API_KEY`, telemetría.
60
- - [Usar Kimi](../../../kimi.md) — instalación y matriz completa.
61
- - [Rails y jobs](rails-and-jobs) — la cola y el flujo de lanzamiento.
62
- - [Seguimiento de costes](../analytics/tracking-cost) — desglose de coste por motor.
19
+ Al lanzar desde una misión, los pasos del loop heredan su proveedor, modelo y esfuerzo salvo que se indiquen otros explícitamente en el editor del loop. Los ajustes generales gestionan las conexiones; ya no se ofrecen el bloque Valores por defecto del proveedor ni la opción Roles.
@@ -28,7 +28,7 @@ Un **loop** es la *receta* del trabajo; un **rail** es el *carril* que la ejecut
28
28
 
29
29
  - Los loops viven en la sección **Loops** (barra lateral izquierda, junto a tus proyectos) — son **globales**, compartidos entre todos los proyectos.
30
30
  - Un rail **elige un loop** en su cabecera (el selector de Loop) y lo ejecuta cuando pulsas Play.
31
- - El **rail** decide el proveedor, modelo y esfuerzo compatible. Un loop compatible puede ejecutarse en Claude, Codex, Gemini o Kimi.
31
+ - El **rail** decide el proveedor, modelo y esfuerzo compatible. Un loop compatible puede ejecutarse en Claude o Codex.
32
32
 
33
33
  Así que: construye un loop una vez y luego elígelo en cualquier rail de cualquier proyecto.
34
34
 
@@ -52,10 +52,6 @@ Un loop es un grafo de **nodos** conectados por **aristas** (las flechas). Cada
52
52
 
53
53
  Las aristas conectan los pasos en orden. El **Loop Decider** tiene dos salidas etiquetadas — **continue** y **stop** — así que cableas "aún no terminado" de vuelta al trabajo y "terminado" hacia un End.
54
54
 
55
- > **Kimi ejecuta loops con pasos AI/shell, pero no con Loop Decider.** El
56
- > veredicto es pure-output y `kimi -p` no puede imponer su límite sin
57
- > herramientas; el run se rechaza antes del primer paso.
58
-
59
55
  ### Escribir el texto de un paso
60
56
 
61
57
  Dentro de cualquier AI Step o Decider puedes referenciar:
@@ -72,7 +68,6 @@ Un loop que nunca para gastaría dinero para siempre, así que cada ejecución t
72
68
  |-------|--------------|
73
69
  | **Max iterations** | Tope duro de cuántas veces puede el Decider volver atrás, sin importar su veredicto. |
74
70
  | **Timeout (min)** | Límite de tiempo real para toda la ejecución. |
75
- | **Max cost ($)** | *Opcional.* Claude aporta coste; Codex/Gemini usan estimación. Kimi no emite coste USD autoritativo. |
76
71
 
77
72
  ## Construir con confianza
78
73
 
@@ -2,10 +2,6 @@
2
2
 
3
3
  El modo Quick es para cuando ya sabes lo que quieres. Escribes tu idea, la IA redacta la spec completa y esta aterriza en tu tablero como **Por hacer**. Sin idas y venidas: solo descríbela y listo.
4
4
 
5
- > **Kimi no está disponible en Quick Spec.** `kimi -p` no puede imponer el
6
- > límite pure-output de este formulario. La petición se rechaza antes de
7
- > iniciar Kimi; usa Explore, Raw o Quick Launcher (`/opsx:ff`).
8
-
9
5
  ## Crear una spec en modo Quick
10
6
 
11
7
  Para crear una spec rápidamente:
@@ -23,9 +19,6 @@ Ese es todo el flujo. Todo lo que viene a continuación son ajustes opcionales.
23
19
 
24
20
  **Modelo**: por defecto, la IA elige un modelo razonable. Puedes sobrescribirlo por spec desde el selector de modelo si quieres uno más rápido o más capaz.
25
21
 
26
- **Motor**: si el proyecto tiene más de un proveedor **compatible**, aparece el
27
- selector. Kimi queda excluido de Quick Spec.
28
-
29
22
  **Contexto**: el modo Quick normalmente se ejecuta en un solo turno, porque no necesita leer tu código para escribir una spec a partir de tu descripción. Pero un control deslizante de contexto te permite darle más material con el que trabajar:
30
23
 
31
24
  - En el nivel más bajo solo lee tu descripción.
@@ -35,14 +35,6 @@ La sélection du profil se fait là où vous lancez — dans l'**en-tête du rai
35
35
 
36
36
  Voilà tout le flux : choisir un profil, lancer, terminé. Des rails simultanés dans un même lot peuvent chacun porter leur propre profil, si bien qu'un correctif rapide et une grosse fonctionnalité peuvent tourner côte à côte avec des configurations différentes.
37
37
 
38
- ## Quand la section Agents reste silencieuse
39
-
40
- Les profils sont séparés par fournisseur. Claude et Kimi prennent en charge
41
- profils/rôles ; Codex et Gemini utilisent le mode legacy. Dans un projet
42
- mixte, un même nom ne traverse jamais Claude/Kimi. Kimi permet les rôles
43
- manuels, mais génération, smoke test et AI Refine d'Agent Studio échouent
44
- avant démarrage. Kimi exige `specrails-core` 4.12.0 ou plus récent.
45
-
46
38
  ## Pour aller plus loin
47
39
 
48
40
  - [Personnaliser les modèles par agent](customizing-models-per-agent) — construisez des profils `fast` et `max`.
@@ -11,29 +11,14 @@ Chaque entrée du catalogue indique à quoi sert l'agent et son modèle par déf
11
11
 
12
12
  ## Ajouter un agent personnalisé
13
13
 
14
- Les rôles sont des assets natifs du fournisseur : Claude utilise
15
- `.claude/agents/custom-<nom>.md` ; Kimi utilise
16
- `.kimi-code/skills/custom-<nom>/SKILL.md`.
17
-
18
- Dès que l'asset existe, il apparaît dans le catalogue de ce fournisseur et son id peut rejoindre un profil du même fournisseur. `custom-docs` correspond à `.claude/agents/custom-docs.md` pour Claude ou à `.kimi-code/skills/custom-docs/SKILL.md` pour Kimi ; les deux restent indépendants.
19
-
20
14
  Parce qu'ils vivent dans votre dépôt, les agents personnalisés sont des **ressources d'équipe commitables** : commitez le fichier et toute votre équipe récupère l'agent. Cela reflète l'idée centrale qui traverse toute la section Agents —
21
15
 
22
16
  > **Les définitions d'agents sont partagées (elles vivent dans le dépôt et voyagent avec `git`). La configuration des modèles est propre au projet (elle vit dans les profils).**
23
17
 
24
- Core protège les deux formats. Kimi permet création/édition manuelle et
25
- exécution ; Generate, Test et AI Refine échouent avant démarrage.
26
-
27
18
  ## Mettre un agent personnalisé au travail
28
19
 
29
20
  Le flux typique :
30
21
 
31
- 1. Créez l'asset natif Claude ou le Skill Kimi avec instructions/modèle valides.
32
- 2. Vérifiez qu'il apparaît bien dans **Agents → Catalogue** sous Personnalisés.
33
- 3. Dans **Agents → Profils**, ajoutez l'agent à la chaîne d'un profil (en surchargeant éventuellement son modèle pour ce profil).
34
- 4. Ajoutez une règle de routage pour que les tâches portant les bons tags l'atteignent — ou reposez-vous sur l'ordre de la chaîne.
35
- 5. Lancez un rail avec ce profil depuis l'en-tête du rail.
36
-
37
22
  ## Suivre les performances des profils
38
23
 
39
24
  La section Agents dispose aussi d'un onglet **Utilisation** — une répartition par profil du nombre de jobs lancés sous chaque profil sur une période sélectionnée. C'est un moyen rapide de confirmer que votre répartition `fast`/`max` est réellement utilisée comme vous l'aviez prévu, et de repérer le profil vers lequel votre équipe gravite.
@@ -35,8 +35,6 @@ Specrails fonctionne avec les principales CLI de codage IA :
35
35
 
36
36
  - **Claude** (Claude Code)
37
37
  - **Codex** (Codex CLI)
38
- - **Gemini** (Gemini CLI)
39
- - **Kimi** (Kimi Code)
40
38
 
41
39
  Choisissez celui que vous utilisez déjà — ou installez-en plusieurs et choisissez selon la tâche. Un projet peut tourner sur un seul fournisseur ou sur plusieurs à la fois, vous n'êtes donc jamais enfermé.
42
40
 
@@ -22,8 +22,6 @@ La seule chose que specrails ne peut pas intégrer, c'est la **CLI du fournisseu
22
22
 
23
23
  - **Claude Code**
24
24
  - **Codex CLI**
25
- - **Gemini CLI**
26
- - **Kimi Code**
27
25
 
28
26
  Installez celle que vous comptez utiliser, connectez-vous une fois depuis votre terminal, et le tour est joué. Specrails détecte automatiquement les fournisseurs présents.
29
27
 
@@ -20,10 +20,6 @@ Une étiquette conviviale affichée dans la barre latérale. Si vous le laissez
20
20
 
21
21
  C'est tout le formulaire — cliquez sur **Ajouter** et c'est terminé.
22
22
 
23
- ## Les fournisseurs d'IA sont détectés automatiquement
24
-
25
- Vous ne choisissez plus de fournisseurs. Specrails détecte chaque CLI d'IA installé sur votre machine — **Claude**, **Codex**, **Gemini**, **Kimi** — et chaque projet peut tous les utiliser, toujours. Installez un nouveau fournisseur plus tard et il apparaît partout de lui-même la prochaine fois que vous revenez sur l'app ; pas de reconfiguration, pas de réglage par projet. Si un fournisseur est installé mais non connecté, son sélecteur affiche un badge discret *Non connecté*.
26
-
27
23
  ## La configuration se fait en silence
28
24
 
29
25
  Il n'y a pas d'assistant de configuration. Dès que vous cliquez sur **Ajouter**, le projet est enregistré et apparaît dans votre barre latérale — vous pouvez l'ouvrir immédiatement. En arrière-plan, specrails assemble le workspace du projet (quelques secondes, entièrement hors ligne) : un petit point clignotant sur la ligne du projet indique que le travail est en cours, et il disparaît quand tout est prêt. Si quelque chose échoue pour un fournisseur, le projet fonctionne toujours avec les autres — un point ambre apparaît, et un clic relance l'opération.
@@ -26,14 +26,9 @@ La barre latérale droite est votre tableau d'aiguillage pour le projet courant.
26
26
 
27
27
  - **Tableau de bord** — le tableau des specs et les rails (là d'où vous venez).
28
28
  - **Jobs** — chaque exécution de pipeline pour ce projet, passée et présente, avec son statut, sa durée et la possibilité de plonger dans le détail et les logs de n'importe quelle exécution.
29
- - **Analytics** — les invocations par jour, activité, modèle et ticket. Claude fournit le coût facturé, Codex/Gemini des estimations, et Kimi laisse vides les champs tokens/coût USD indisponibles.
30
- - **Agents** — profils et catalogues de rôles propres au fournisseur pour Claude et Kimi. Avec Kimi, les rôles se créent et se modifient manuellement ; Generate, Test et AI Refine sont indisponibles.
31
- - **Code** — un explorateur de fichiers en lecture seule et des badges indiquant quels fichiers l'IA a touchés. Les résumés IA en langage clair n'apparaissent qu'avec un fournisseur compatible ; ils sont indisponibles avec Kimi.
32
29
  - **Intégrations** — des extensions facultatives, comme connecter vos specs à un tableau **Jira** ou activer des outils supplémentaires pour l'IA.
33
30
  - **Paramètres** — les options par projet (télémétrie, budgets, configuration des fournisseurs, et plus encore).
34
31
 
35
- > Les sections et actions suivent les capacités du fournisseur effectif. Les profils fonctionnent par exemple avec Claude et Kimi, mais les actions IA d'Agent Studio échouent de façon fermée avec Kimi.
36
-
37
32
  ## La barre de statut
38
33
 
39
34
  Un fin bandeau court tout en bas de la fenêtre. Discret mais bien pratique :
@@ -1,30 +1,14 @@
1
- # Fournisseurs d'IA (Claude, Codex, Gemini, Kimi)
1
+ # Fournisseurs d'IA (Claude, Codex)
2
2
 
3
- Specrails n'est lié à aucune IA. Claude, Codex, Gemini et Kimi sont des
4
- fournisseurs de premier plan ; chaque surface ne propose que les moteurs dont
5
- les capacités respectent son contrat.
6
-
7
- ## Les quatre fournisseurs
3
+ ## Les deux fournisseurs
8
4
 
9
5
  | Fournisseur | CLI | Édité par | Notes |
10
6
  |---|---|---|---|
11
7
  | **Claude** | `claude` | Anthropic | Coût natif et transport interactif persistant. |
12
8
  | **Codex** | `codex` | OpenAI | Nécessite codex `0.128.0+`. Lit ses serveurs MCP depuis votre fichier global `~/.codex/config.toml`. |
13
- | **Gemini** | `gemini` | Google | Nécessite gemini `0.11.0+`. Utilise une télémétrie native et un fichier d'instructions `GEMINI.md`. |
14
- | **Kimi Code** | `kimi` | Moonshot AI | Nécessite Kimi `0.27.0+`. Desktop lance la CLI externe avec `-p` ; aucun serveur n'est installé ou démarré. |
15
-
16
- Les quatre sont **activés par défaut**. Un fournisseur apparaît dans **Ajouter
17
- un projet** lorsque sa CLI est installée et présente dans votre `PATH`. Pour
18
- Kimi, vérifiez `kimi --version` puis exécutez `kimi login`.
19
9
 
20
10
  ## Les fournisseurs sont détectés automatiquement
21
11
 
22
- Vous ne choisissez jamais de fournisseurs par projet. Specrails détecte chaque
23
- CLI de fournisseur installé sur votre machine et les rend **tous** disponibles
24
- pour **tous** les projets, toujours. Chaque surface vérifie ensuite les
25
- capacités annoncées par le fournisseur. Voir [Utiliser Kimi](../../../kimi.md)
26
- pour la matrice exacte de Kimi.
27
-
28
12
  Si un fournisseur que vous voulez n'apparaît nulle part, c'est presque toujours
29
13
  parce que le CLI n'est pas installé ou absent de votre `PATH`. Installez-le,
30
14
  connectez-vous et revenez sur l'app — la détection se relance au focus de la
@@ -35,11 +19,6 @@ quand même, avec un badge *Non connecté* sur les sélecteurs de moteur.
35
19
  Quelques points utiles sur les machines multi-fournisseurs :
36
20
 
37
21
  - **Un seul fournisseur se comporte exactement comme avant.** Si un seul est détecté, vous ne verrez jamais de sélecteur de fournisseur — l'app reste sobre et simple.
38
- - **Les capacités pilotent la barre latérale.** Une section est visible quand au
39
- moins un fournisseur détecté la prend en charge ; à l'intérieur, les actions
40
- liées au moteur ne proposent que les fournisseurs capables. Kimi annonce les
41
- profils, les rôles personnalisés et le Freestyle ; il n'annonce pas les actions
42
- structurées exigeant une frontière sans outils applicable.
43
22
  - **Rien n'est verrouillé.** Installer ou retirer un CLI met à jour tous les
44
23
  projets automatiquement — il n'y a aucun réglage de fournisseur par projet à gérer.
45
24
 
@@ -47,38 +26,11 @@ Quelques points utiles sur les machines multi-fournisseurs :
47
26
 
48
27
  Tout l'intérêt d'un projet multi-fournisseurs, c'est de choisir l'IA la plus adaptée à chaque tâche — sans toucher au moindre réglage global. Partout où une IA s'exécute, un petit sélecteur de fournisseur apparaît (uniquement lorsque le projet en compte plusieurs) :
49
28
 
50
- - **Ajouter une spec** — Explore accepte Kimi ; Quick Spec ne propose que les
51
- fournisseurs capables d'imposer sa frontière pure-output, donc pas Kimi.
52
29
  - **En-tête de rail** — choisissez le moteur de ce rail précis avant de le lancer.
53
30
  - **Terminal** — le bouton « Open AI CLI » (Sparkles) ouvre un menu de fournisseurs pour basculer dans n'importe quelle CLI installée, dans le répertoire de ce projet.
54
31
 
55
32
  Votre choix est mémorisé par projet, avec le fournisseur principal comme valeur par défaut, pour ne pas avoir à le refaire à chaque fois.
56
33
 
57
- ## Différences de capacités
58
-
59
- Kimi prend en charge Project/Agent Chat, Explore et les propositions, Quick
60
- Launcher (`/opsx:ff`), les rails, Freestyle, les loops sans Decider, les
61
- profils/rôles manuels, MCP, Serena, le terminal et les pièces jointes.
62
-
63
- `kimi -p` approuve automatiquement les outils et ne peut pas imposer une
64
- frontière sans outils/read-only. Sont donc refusés avant démarrage : Quick
65
- Spec, AI Edit, Contract Refine, SMASH/Re-SMASH, génération de
66
- blueprint/milestone Project Builder, Loop Decider, résumés/histoire de
67
- construction et automatisation Agent Studio. L'auto-title utilise un fallback
68
- déterministe. Voir le [guide Kimi](../../../kimi.md).
69
-
70
- ## Suivi des coûts entre fournisseurs
71
-
72
- **Analytics** enregistre les invocations réellement lancées. Claude rapporte
73
- son coût ; Codex et Gemini utilisent une estimation. Kimi ne fournit ni tokens
74
- ni coût USD autoritatifs, donc ces champs restent vides.
75
-
76
34
  ## Dépannage
77
35
 
78
- - **Un fournisseur que j'ai installé n'est pas proposé.** Vérifiez la CLI dans votre `PATH` (`claude --version` / `codex --version` / `gemini --version` / `kimi --version`).
79
36
  - **Les serveurs MCP de Codex ne se chargent pas dans le chat.** Codex lit ses serveurs MCP depuis votre fichier global `~/.codex/config.toml` — enregistrez-les là avec `codex mcp add`.
80
- - **Désactivation d'urgence.** Un fournisseur peut être coupé à l'échelle de l'app via une variable d'environnement (`SPECRAILS_CODEX_BETA=0` ou `SPECRAILS_GEMINI_BETA=0`). Cela masque uniquement le fournisseur de la *sélection* ; c'est rarement nécessaire.
81
-
82
- ## Voir aussi
83
-
84
- Consultez les guides dédiés à [Kimi](../../../kimi.md), Codex et Gemini.
@@ -34,11 +34,3 @@ En coulisses, l'installation est *chirurgicale et additive* : elle n'ajoute ses
34
34
  - **Rails.** Avant qu'un rail ne s'exécute, Specrails vérifie quels plugins sont installés et sains, et rend ces outils disponibles pour l'agent sur ce job. Un plugin dégradé est simplement ignoré pour cette exécution — le rail se lance quand même normalement. Chaque job enregistre un instantané des plugins actifs, visible dans l'export de diagnostic du job.
35
35
  - **Chat.** Le chat reprend automatiquement la configuration MCP de votre projet, de sorte que les plugins installés y sont également disponibles.
36
36
  - **Configuration.** Les plugins sont ignorés tant qu'un projet est encore en cours de configuration — ils entrent en jeu une fois le projet prêt.
37
-
38
- ## Notes sur les fournisseurs
39
-
40
- Les plugins tiennent compte du fournisseur. Serena prend en charge Claude via `.mcp.json`, Codex via `codex mcp add` avec un `CODEX_HOME` isolé par projet, et Kimi via `.kimi-code/mcp.json`. Un plugin n'apparaît que si son manifeste déclare le fournisseur ; Serena n'est donc pas proposé pour Gemini. La carte Jira reste indépendante du fournisseur.
41
-
42
- ## Fichiers réservés
43
-
44
- Les plugins gèrent la configuration MCP native du fournisseur, l'état sous `.specrails/plugins/` et, uniquement pour Claude si nécessaire, des fragments sous `.claude/agents/custom-<plugin>.md`. Les entrées Kimi vivent dans `.kimi-code/mcp.json` ; l'app n'écrit aucun fragment réservé à Claude pour Kimi et n'écrase jamais une configuration aveuglément.
@@ -1,6 +1,6 @@
1
1
  # Piloter Specrails depuis n'importe quelle IA (serveur MCP)
2
2
 
3
- > **For agents (English):** use the [current connection runbook](../../../agents/mcp.md) for Claude, Codex, Kimi and Gemini. It includes verified bridge discovery, registration and read-only checks.
3
+ > **For agents (English):** use the [current connection runbook](../../../agents/mcp.md) for Claude and Codex. It includes verified bridge discovery, registration and read-only checks.
4
4
 
5
5
  Specrails peut s'exposer **lui-même** à n'importe quel assistant IA qui parle le [Model Context Protocol](https://modelcontextprotocol.io) — Claude Desktop, Claude Code, Cursor, Cline, ou votre propre agent. Activez-le, pointez votre assistant vers Specrails, et vous pouvez piloter toute l'app en discutant : *« liste mes projets », « crée une spec pour la connexion sociale dans le projet API », « lance le rail 0 et préviens-moi quand c'est terminé », « combien ai-je dépensé cette semaine ? »*. Votre assistant appelle les outils de Specrails en coulisses, plutôt que de vous faire cliquer partout.
6
6
 
@@ -33,19 +33,6 @@ Dans un client comme Claude Desktop ou Cursor, la configuration ressemble à cec
33
33
 
34
34
  Les clients qui prennent en charge les serveurs MCP HTTP distants peuvent à la place pointer directement vers `http://127.0.0.1:4200/api/mcp` avec le jeton du panneau.
35
35
 
36
- ### Depuis le terminal : Claude Code, Gemini CLI, Codex CLI
37
-
38
- Copiez votre jeton depuis **Réglages ▸ MCP ▸ Copier le jeton**, puis :
39
-
40
- ```bash
41
- # Claude Code
42
- claude mcp add --transport http specrails http://localhost:4200/api/mcp \
43
- --header "X-Desktop-Token: <votre jeton>"
44
-
45
- # Gemini CLI
46
- gemini mcp add --transport http specrails http://localhost:4200/api/mcp \
47
- --header "X-Desktop-Token: <votre jeton>"
48
-
49
36
  # Codex CLI (stdio — enregistrez la commande du bridge affichée dans Réglages ▸ MCP)
50
37
  codex mcp add specrails -- <commande du bridge depuis Réglages ▸ MCP>
51
38
  ```
@@ -20,17 +20,6 @@ L'en-tête comporte un **sélecteur de projet** (comme celui de Cursor). Choisis
20
20
 
21
21
  Choisir un projet ici **ne déplace pas** votre tableau de bord : la cible de l'agent et ce que vous regardez sont indépendants.
22
22
 
23
- ## Fournisseur et modèle
24
-
25
- Juste au-dessus de la zone de message, vous choisissez le **fournisseur**
26
- (Claude, Codex, Gemini ou Kimi) et son **modèle**. Changer de fournisseur
27
- démarre une session séparée.
28
-
29
- Avec Kimi, les niveaux limitent les outils MCP Specrails mais ne transforment
30
- pas `kimi -p` en sandbox : ses outils natifs sont approuvés automatiquement.
31
- Les actions pure-output non sûres sont refusées avant démarrage ; voir la
32
- [matrice Kimi](../../../kimi.md).
33
-
34
23
  ## Niveaux d'autorisation — c'est vous qui tenez la laisse
35
24
 
36
25
  L'agent peut toucher à toute l'application, c'est donc à vous de décider quelle liberté vous lui accordez, via un **niveau** que vous changez en direct en appuyant sur **Shift+Tab** (le même cycle que celui de Claude Code). Chaque niveau inclut tout ce qui se trouve en dessous :
@@ -24,10 +24,6 @@ Indisponible sur les moteurs locaux : profils d'agent et rôles personnalisés,
24
24
 
25
25
  > Les missions exigent une **grande fenêtre de contexte** côté serveur (64k tokens ou plus) : le prompt de l'opérateur et les schémas d'outils Specrails sont volumineux. Chat et Explore fonctionnent à 32k. Si un tour échoue avec *exceeds the available context size*, augmentez la fenêtre (Ollama `OLLAMA_CONTEXT_LENGTH`, llama.cpp `-c`, LM Studio *Context Length*).
26
26
 
27
- ## Seulement un moteur local ?
28
-
29
- Rien à configurer. Specrails propose les moteurs que votre machine peut réellement exécuter et choisit la valeur par défaut avec une seule règle partout : un CLI installé (Claude → Codex → Gemini → Kimi), sinon le premier moteur local dont l'endpoint répond. Sur une machine n'ayant qu'un endpoint local, les rails, Add Spec, le chat, **les missions de l'agent et le Project Builder** démarrent dessus, sans toucher au sélecteur. Un moteur dont le serveur est arrêté n'est simplement pas proposé tant qu'il ne répond pas. Les missions existantes gardent le moteur avec lequel elles ont été créées ; le sélecteur permet toujours d'en changer.
30
-
31
27
  ## Choisir un modèle
32
28
 
33
29
  La qualité dépend du modèle, pas de Specrails. Pour les rails, utilisez un modèle de code entraîné au tool calling d'au moins 30B paramètres ; les petits modèles instruct suffisent pour le chat, Explore et les specs Quick. Essayez **Freestyle** ou une session Explore avant de confier un rail implement complet à un nouveau modèle.
@@ -35,8 +35,6 @@ Voilà. Le rail démarre un processus AI CLI dans le bon contexte d'exécution e
35
35
  | **Pastille de statut** | `idle`, `running`, ou `failed`. Il n'y a pas de « completed » séparé — un rail revient à `idle` quand son job se termine proprement. |
36
36
  | **Liste de specs** | Les IDs assignés à ce rail. Glissez-en d'autres, retirez-les pour les détacher. |
37
37
  | **Sélecteur de Loop** | Le Loop que ce rail exécute — un intégré (`Implement` / `Freestyle` / `SDD Quick (OpenSpec)`) ou un loop personnalisé. Voir le tableau ci-dessous. Persisté par rail. |
38
- | **Sélecteur de profil** | Quel profil fournisseur s'exécute (rails Claude et Kimi). |
39
- | **Sélecteur de moteur** | Quel provider exécute ce rail — Claude, Codex, Gemini ou Kimi. |
40
38
  | **▶ Play / ■ Stop** | Démarrer ou annuler. |
41
39
 
42
40
  ### Ce qu'un rail exécute : les Loops
@@ -46,14 +44,9 @@ Un rail exécute un **Loop** — la recette du travail. Deux loops sont **intég
46
44
  | Loop intégré | Commande | Ce qu'il fait |
47
45
  |------|---------|--------------|
48
46
  | **Implement** | `/specrails:implement` | Un seul job couvrant tous les specs du rail. Exécute tout le pipeline Architect → Developer → Reviewer → Ship. Le choix par défaut au quotidien. |
49
- | **Freestyle** | Freestyle | Claude ou Kimi implémente chaque spec de manière autonome, en **contournant** le pipeline. |
50
47
 
51
48
  Pour exécuter plusieurs specs, placez les specs liées (jusqu'à 3) sur un même rail — `Implement` les exécute en un seul job commun — ou répartissez les specs indépendantes sur plusieurs rails : chaque rail adossé à git s'exécute en parallèle dans son propre worktree isolé.
52
49
 
53
- Freestyle utilise les outils et modèles natifs du fournisseur. Claude possède
54
- un transport interactif persistant ; Kimi utilise un processus agentic
55
- `kimi -p` sans stdin persistant.
56
-
57
50
  Les loops intégrés sont aussi modifiables : éditez-en un dans le Loop Builder et publiez-le, et chaque rail qui le choisit exécute votre version (utilisez **Restaurer l'original** pour revenir en arrière).
58
51
 
59
52
  Au-delà des intégrés, vous pouvez **construire vos propres loops** — répéter un cycle verify → fix → verify jusqu'à ce qu'un objectif soit atteint, enchaîner des commandes shell entre les étapes IA, et plus encore. Ces loops personnalisés apparaissent dans le même sélecteur de Loop. C'est la prochaine grande idée : [Le Loop Builder](the-loop-builder).
@@ -84,11 +77,6 @@ Cliquez sur n'importe quelle carte pour ouvrir la **vue détaillée du job**, o
84
77
 
85
78
  Cliquez sur **■ Stop** dans l'en-tête du rail. L'app envoie `SIGTERM` au sous-processus, attend **5 secondes** une sortie propre, puis le `SIGKILL`. Rien ne reste à moitié démarré.
86
79
 
87
- ## Si un rail ne se lance pas
88
-
89
- Si la CLI choisie manque, le lancement échoue avant démarrage. Pour Kimi,
90
- installez/authentifiez `kimi` 0.27+ ; Desktop ne démarre aucun serveur.
91
-
92
80
  ## Tout arrêter
93
81
 
94
82
  Si quelque chose semble anormal :
@@ -101,4 +89,3 @@ Si quelque chose semble anormal :
101
89
 
102
90
  - [Le Loop Builder](the-loop-builder) — ce qu'un rail exécute, et comment construire vos propres loops.
103
91
  - [La vue détaillée du job](the-job-detail-view) — phases, métriques en direct, cartes de ticket.
104
- - [Choisir un moteur par rail](picking-an-engine-per-rail) — Claude, Codex, Gemini ou Kimi.
@@ -94,9 +94,6 @@ Quelques points à connaître :
94
94
  - **La ligne de totaux est réelle.** Le composeur affiche un résumé en direct `N tours · $X`, sommé à partir de l'usage réel de chaque tour terminé — cohérent avec la promesse de cette page de ne rien deviner.
95
95
  - **Deux façons de terminer une session.** La plupart des jobs **se terminent tout seuls** : dès qu'un tour se conclut sans message en attente, la session se règle et le job se termine — vos messages sont un pilotage optionnel, jamais une obligation. Une action discrète **Conclure maintenant** l'arrête plus tôt avec tout ce qui a été produit. Les jobs **Freestyle** sont l'exception : ils patientent entre les tours jusqu'à ce que vous cliquiez sur **Finalize** — c'est leur conception, une session d'aller-retour que vous fermez quand vous avez fini.
96
96
  - **Dans un loop, les messages vont à l'étape active.** Sur un loop intégré ou personnalisé, votre message atteint **l'étape IA en cours d'exécution**. Entre les étapes (pendant que le Loop Decider réfléchit ou qu'une commande shell tourne), le composeur affiche un bref état *« En attente de la prochaine étape… »* — votre brouillon est conservé, et l'envoi se réactive au démarrage de la prochaine étape IA. **Régler cette étape** termine l'étape en cours plus tôt et laisse le loop avancer avec ce qu'elle a produit.
97
- - **L'interaction persistante est réservée à Claude.** Codex, Gemini et Kimi
98
- sont one-shot ; Kimi reprend un chat avec un nouveau `kimi --session=<id> -p` après un
99
- resume hint réussi.
100
97
 
101
98
  ## Export de diagnostic
102
99
 
@@ -1,9 +1,5 @@
1
1
  # Choisir un moteur par rail
2
2
 
3
- Specrails desktop traite **Claude Code**, **Codex CLI**, **Gemini CLI** et
4
- **Kimi Code** comme des moteurs de premier plan. Toute combinaison compatible
5
- peut être installée.
6
-
7
3
  ## Quand le sélecteur apparaît
8
4
 
9
5
  Le **sélecteur de moteur** se trouve dans l'en-tête du rail, juste à côté du contrôle de mode. Il ne s'affiche que lorsque le projet possède **plus d'un** fournisseur installé.
@@ -14,10 +10,6 @@ Quand il apparaît, votre choix se fait **par rail et par lancement** — diffé
14
10
 
15
11
  ## Comment choisir un moteur
16
12
 
17
- 1. Assurez-vous que le sélecteur de moteur du rail est visible (le projet a 2 fournisseurs ou plus).
18
- 2. Cliquez dessus et choisissez **Claude**, **Codex**, **Gemini** ou **Kimi**.
19
- 3. Lancez le rail avec **▶ Play**.
20
-
21
13
  Le moteur sélectionné exécute chaque phase du pipeline de ce rail. Si la CLI du moteur choisi n'est pas installée, le lancement échoue immédiatement — rien ne démarre. Installez la CLI manquante et réessayez.
22
14
 
23
15
  ## Les points forts de chaque moteur
@@ -28,35 +20,21 @@ Les quatre exécutent **Implement** :
28
20
  |--------|--------------------|-------|
29
21
  | **Claude** | Vous avez besoin du coût natif, de l'interaction persistante ou de politiques d'outils strictes. | Profils, Freestyle et transforms structurés. |
30
22
  | **Codex** | Vous préférez la CLI Codex d'OpenAI ou vous voulez comparer les implémentations entre fournisseurs. | `codex` ≥ 0.128.0. Pas de rapport de coût natif — l'application complète le coût à partir de sa table de tarifs. Les profils ne s'appliquent pas. |
31
- | **Gemini** | Vous voulez la CLI Gemini de Google, la télémétrie native, ou une exécution moins chère pour les specs de routine. | `gemini` ≥ 0.11.0 (définissez `GEMINI_API_KEY`). Télémétrie OTLP native. Les profils ne s'appliquent pas. |
32
- | **Kimi** | Vous voulez Kimi agentic pour Implement, Freestyle ou loops sans Decider. | `kimi` ≥ 0.27.0 externe ; profils/rôles, effort K3 seulement ; tokens/coût indisponibles. |
33
-
34
- ### Différences de capacité
35
-
36
- Claude et Kimi prennent en charge profils et Freestyle ; Codex/Gemini
37
- utilisent le mode legacy. Kimi refuse Loop Decider et les transforms
38
- pure-output listés dans le [guide Kimi](../../../kimi.md). Les profils
39
- Claude/Kimi restent séparés.
40
23
 
41
24
  ## Un flux de travail pratique
42
25
 
43
26
  Les projets multi-fournisseurs brillent lorsque vous voulez **comparer** ou **optimiser les coûts** :
44
27
 
45
28
  - **Comparer les implémentations.** Mettez la même spec sur deux rails, réglez l'un sur Claude et l'autre sur Codex, lancez les deux (entre projets, ou l'un après l'autre dans la file du même projet), puis utilisez le bouton **Comparer** sur la page Jobs pour comparer les résultats.
46
- - **Optimiser le coût par spec.** Exécutez les specs à fort enjeu sur Claude avec un profil `max` ; exécutez les specs de nettoyage de routine sur Gemini pour économiser. Filtrez `/analytics` par moteur pour voir la répartition.
47
29
  - **Définir un défaut judicieux.** Désignez votre moteur le plus utilisé comme moteur principal du projet pour que les rails l'utilisent par défaut, et ne changez par rail que lorsqu'une spec particulière demande un moteur différent.
48
30
 
49
31
  ## Points à garder en tête
50
32
 
51
33
  - **La sélection des fournisseurs est immuable après la création du projet** (v1). Vous choisissez les fournisseurs installés au moment d'ajouter le projet ; il n'y a aucun réglage dans les Paramètres pour en ajouter ou en retirer un plus tard.
52
- - **Les métriques disponibles sont suivies.** Kimi ne fournit ni tokens ni
53
- coût USD autoritatifs ; ces champs restent vides.
54
34
  - **Le bouton « Open AI CLI » du terminal** propose également un sélecteur de fournisseur sur les projets multi-fournisseurs, si vous préférez piloter une CLI à la main.
55
35
 
56
36
  ## Où aller ensuite
57
37
 
58
38
  - [Utiliser Codex](../integrations/using-codex) — installation et connexion.
59
- - [Utiliser Gemini](../integrations/using-gemini) — installation, `GEMINI_API_KEY`, télémétrie.
60
- - [Utiliser Kimi](../../../kimi.md) — installation et matrice complète.
61
39
  - [Rails et jobs](rails-and-jobs) — la file d'attente et le flux de lancement.
62
40
  - [Suivre le coût](../analytics/tracking-cost) — répartition du coût par moteur.