specrails-desktop 2.58.1 → 2.59.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (438) hide show
  1. package/README.md +2 -5
  2. package/client/dist/assets/{ActivityFeedPage-BQGppIR0.js → ActivityFeedPage-vAY9C71W.js} +1 -1
  3. package/client/dist/assets/AgentBrowserCapture-CpwjGXQm.js +1 -0
  4. package/client/dist/assets/AgentModeAnalyticsPane-BHeoJVxQ.js +2 -0
  5. package/client/dist/assets/AgentModeCodePane-B0Nf3YkN.js +2 -0
  6. package/client/dist/assets/{AgentModeJobsPane-DR_06oqH.js → AgentModeJobsPane-CpbIItY_.js} +1 -1
  7. package/client/dist/assets/{AgentsPage-BKIKjm_1.js → AgentsPage-BVJAFXn3.js} +3 -3
  8. package/client/dist/assets/{AnalyticsPage-069npRVo.js → AnalyticsPage-DDWees-K.js} +1 -1
  9. package/client/dist/assets/CodePage-CzV5tkvS.js +3 -0
  10. package/client/dist/assets/{DesktopAnalyticsPage-qtWAPM47.js → DesktopAnalyticsPage-DfRHNK7i.js} +1 -1
  11. package/client/dist/assets/DocsDialog-BxduBYbh.js +11 -0
  12. package/client/dist/assets/DocsPage-DOVeRJn_.js +11 -0
  13. package/client/dist/assets/{ExportDropdown-BcMpvV89.js → ExportDropdown-BnKVV8UK.js} +1 -1
  14. package/client/dist/assets/InteractiveJobComposer-Da9dvM-0.js +19 -0
  15. package/client/dist/assets/JobDetailModal-DhwKbZGe.js +1 -0
  16. package/client/dist/assets/JobDetailPage-MtPE-E_1.js +1 -0
  17. package/client/dist/assets/JobsPage-0vdlbNik.js +1 -0
  18. package/client/dist/assets/LoopBuilderPage-DCUHozXh.js +1 -0
  19. package/client/dist/assets/{LoopPreviewModal-je5pSCf-.js → LoopPreviewModal-Df-S8NGf.js} +1 -1
  20. package/client/dist/assets/LoopWindowSurface-sdb7QbSo.js +1 -0
  21. package/client/dist/assets/LoopsPage-CDfCC9Px.js +2 -0
  22. package/client/dist/assets/MinimizedChatsContext-DKlPf54Y.js +1 -0
  23. package/client/dist/assets/PluginsPage-iL0G3rQQ.js +2 -0
  24. package/client/dist/assets/ProjectSettingsDialog-DOkjT7xv.js +1 -0
  25. package/client/dist/assets/{RepositoryDeliveries-BiwJuS8r.js → RepositoryDeliveries-CJVpOUpZ.js} +1 -1
  26. package/client/dist/assets/RepositoryScopeSelector-BeM-2gIZ.js +2 -0
  27. package/client/dist/assets/ReviewPacketPage-EBCim2w_.js +4 -0
  28. package/client/dist/assets/TemplatePreviewModal-1-92UGwN.js +1 -0
  29. package/client/dist/assets/TicketDetailModalContext-CkVXuHxU.js +16 -0
  30. package/client/dist/assets/{Trans-D3AfDylf.js → Trans-CzhPjnjB.js} +1 -1
  31. package/client/dist/assets/agent--8QAfoXL.js +1 -0
  32. package/client/dist/assets/agent-3HxXkIWX.js +1 -0
  33. package/client/dist/assets/agent-BjttZLIl.js +1 -0
  34. package/client/dist/assets/agent-CpFCz32T.js +1 -0
  35. package/client/dist/assets/agent-DVnw6ybO.js +1 -0
  36. package/client/dist/assets/agent-Z5s_GTP0.js +1 -0
  37. package/client/dist/assets/agent-hv57-zyG.js +1 -0
  38. package/client/dist/assets/agent-xGrZ_aN1.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-DlQaXc7c.js} +1 -1
  68. package/client/dist/assets/{getTimezoneOffsetInMilliseconds-DOGj1Mfz.js → getTimezoneOffsetInMilliseconds-DxUFGcVq.js} +1 -1
  69. package/client/dist/assets/index-Bfunvi6w.css +2 -0
  70. package/client/dist/assets/index-Czov72g7.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-CbJvbRYx.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-BkBD3rxx.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-CYotH-9N.js} +1 -1
  124. package/client/dist/assets/subscriptionUsage-BH73RO86.js +1 -0
  125. package/client/dist/assets/subscriptionUsage-BWTeWlHx.js +1 -0
  126. package/client/dist/assets/subscriptionUsage-CBh82zVa.js +1 -0
  127. package/client/dist/assets/subscriptionUsage-CHcQ7lLe.js +1 -0
  128. package/client/dist/assets/subscriptionUsage-CdlE5Mg1.js +1 -0
  129. package/client/dist/assets/subscriptionUsage-DUPBmSQi.js +1 -0
  130. package/client/dist/assets/subscriptionUsage-DrlwrJ17.js +1 -0
  131. package/client/dist/assets/subscriptionUsage-EFu0mIK3.js +1 -0
  132. package/client/dist/assets/tauri-shell-DE6LfGPw.js +2 -0
  133. package/client/dist/assets/{useDesktop-0unHDBJJ.js → useDesktop-DpxVGfUC.js} +1 -1
  134. package/client/dist/assets/{useRuntimeRuns-BN1rhyEm.js → useRuntimeRuns-CfGRbhr9.js} +1 -1
  135. package/client/dist/assets/useSharedWebSocket-C17TGqT8.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/api-reference.md +1 -0
  277. package/docs/internals/core-runtime-updates.md +9 -2
  278. package/docs/internals/desktop-owned-workflows.md +144 -0
  279. package/docs/internals/mission-rail-cards.md +15 -0
  280. package/docs/internals/operations-runbook.md +26 -0
  281. package/docs/internals/programmatic-agent-runtime.md +34 -28
  282. package/docs/internals/project-builder.md +34 -11
  283. package/docs/internals/safe-pr-review-flow.md +25 -7
  284. package/docs/internals/source-map.md +53 -3
  285. package/docs/internals/spec-addenda.md +11 -5
  286. package/docs/internals/visual-design-audit.md +5 -0
  287. package/docs/local-providers.md +8 -13
  288. package/docs/mcp.md +1 -17
  289. package/docs/platforms/macos.md +0 -40
  290. package/docs/platforms/windows-parity.md +1 -1
  291. package/docs/platforms/windows.md +0 -8
  292. package/docs/running-pipelines.md +1 -46
  293. package/docs/subscription-usage.md +19 -0
  294. package/docs/terminal.md +0 -2
  295. package/docs/tracking-cost.md +2 -33
  296. package/package.json +1 -1
  297. package/server/dist/core-execution.js +24 -15
  298. package/server/dist/core-update-manager.js +1 -1
  299. package/server/dist/db/migrations.js +9 -0
  300. package/server/dist/desktop-db.js +23 -10
  301. package/server/dist/desktop-router.js +8 -4
  302. package/server/dist/index.js +10 -5
  303. package/server/dist/mcp/guide.js +1 -0
  304. package/server/dist/mcp/tools/jobs.js +1 -1
  305. package/server/dist/mcp/tools/loops.js +2 -0
  306. package/server/dist/mcp/tools/meta.js +6 -7
  307. package/server/dist/mcp/tools/projects.js +31 -6
  308. package/server/dist/mcp/tools/rails.js +6 -3
  309. package/server/dist/mcp/tools/setup.js +10 -0
  310. package/server/dist/mcp/tools/specs.js +1 -1
  311. package/server/dist/modules/accounting/runtime/pricing.js +6 -1
  312. package/server/dist/modules/agent-runtime/runtime/agent-runtime-bridge.js +169 -17
  313. package/server/dist/modules/agent-runtime/runtime/agent-runtime-metrics.js +1 -1
  314. package/server/dist/modules/agent-runtime/runtime/agent-runtime-settings-router.js +1 -1
  315. package/server/dist/modules/agent-runtime/runtime/agent-runtime-settings.js +42 -0
  316. package/server/dist/modules/agent-runtime/runtime/agent-runtime-verification-suggestions.js +10 -4
  317. package/server/dist/modules/builder/runtime/milestone-chain.js +76 -10
  318. package/server/dist/modules/delivery/runtime/delivery-evidence.js +3 -2
  319. package/server/dist/modules/delivery/runtime/multi-repo-execution.js +10 -5
  320. package/server/dist/modules/delivery/runtime/rail-isolated-launch.js +66 -30
  321. package/server/dist/modules/delivery/runtime/rail-launch-parser.js +8 -0
  322. package/server/dist/modules/delivery/runtime/rail-pr-store.js +3 -3
  323. package/server/dist/modules/delivery/runtime/rail-relaunch.js +154 -0
  324. package/server/dist/modules/delivery/runtime/rails-router.js +157 -36
  325. package/server/dist/modules/delivery/runtime/review-packet.js +1 -1
  326. package/server/dist/modules/execution/runtime/revision-seed.js +6 -2
  327. package/server/dist/modules/loops/runtime/loop-agent-defaults.json +6 -0
  328. package/server/dist/modules/loops/runtime/loop-agents.js +21 -0
  329. package/server/dist/modules/loops/runtime/loop-command-catalog.js +1 -1
  330. package/server/dist/modules/loops/runtime/loop-core-factory.js +19 -3
  331. package/server/dist/modules/loops/runtime/loop-definition-events.js +1 -1
  332. package/server/dist/modules/loops/runtime/loop-definition.js +79 -12
  333. package/server/dist/modules/loops/runtime/loop-effect.js +1 -1
  334. package/server/dist/modules/loops/runtime/loop-executors.js +24 -9
  335. package/server/dist/modules/loops/runtime/loop-factory.js +1 -1
  336. package/server/dist/modules/loops/runtime/loop-graph.js +5 -14
  337. package/server/dist/modules/loops/runtime/loop-implement-recipe.js +53 -0
  338. package/server/dist/modules/loops/runtime/loop-run-manager.js +30 -20
  339. package/server/dist/modules/loops/runtime/loop-templates.js +29 -5
  340. package/server/dist/modules/loops/runtime/loops-router.js +17 -0
  341. package/server/dist/modules/missions/runtime/agent-context-resolver.js +1 -1
  342. package/server/dist/modules/missions/runtime/agent-operator-prompt.js +17 -8
  343. package/server/dist/modules/specs/runtime/spec-models.js +4 -7
  344. package/server/dist/modules/subscription-usage/adapters/claude.js +123 -0
  345. package/server/dist/modules/subscription-usage/adapters/codex.js +164 -0
  346. package/server/dist/modules/subscription-usage/adapters/errors.js +15 -0
  347. package/server/dist/modules/subscription-usage/adapters/http.js +20 -0
  348. package/server/dist/modules/subscription-usage/adapters/local-auth.js +61 -0
  349. package/server/dist/modules/subscription-usage/application.js +12 -0
  350. package/server/dist/modules/subscription-usage/domain.js +104 -0
  351. package/server/dist/modules/subscription-usage/index.js +2 -0
  352. package/server/dist/modules/subscription-usage/ports.js +2 -0
  353. package/server/dist/modules/subscription-usage/runtime/composition.js +20 -0
  354. package/server/dist/modules/subscription-usage/runtime/usage-service.js +111 -0
  355. package/server/dist/project-registry.js +16 -1
  356. package/server/dist/project-repositories.js +51 -2
  357. package/server/dist/project-router-helpers.js +1 -1
  358. package/server/dist/project-router-loop-runs.js +4 -1
  359. package/server/dist/providers/claude-adapter.js +6 -4
  360. package/server/dist/providers/codex-adapter.js +4 -5
  361. package/server/dist/schemas/workflow-definition.schema.json +2 -0
  362. package/server/dist/worktree-manager.js +114 -6
  363. package/server/dist/worktree-overlay.js +4 -4
  364. package/client/dist/assets/AgentBrowserCapture-PI-cxyxi.js +0 -1
  365. package/client/dist/assets/AgentModeAnalyticsPane-mQsOqdXx.js +0 -2
  366. package/client/dist/assets/AgentModeCodePane-BL-vpmlY.js +0 -2
  367. package/client/dist/assets/CodePage-Alitorrv.js +0 -3
  368. package/client/dist/assets/DocsDialog-DwL6rgcT.js +0 -11
  369. package/client/dist/assets/DocsPage-BA1hiJZ-.js +0 -11
  370. package/client/dist/assets/InteractiveJobComposer-B3H1YHr6.js +0 -19
  371. package/client/dist/assets/JobDetailModal-XZQ9eAAy.js +0 -1
  372. package/client/dist/assets/JobDetailPage-B-SIaq_q.js +0 -1
  373. package/client/dist/assets/JobsPage-iQXAv2mx.js +0 -1
  374. package/client/dist/assets/LoopBuilderPage-B_gbFAHn.js +0 -1
  375. package/client/dist/assets/LoopsPage-BZwcY5cu.js +0 -2
  376. package/client/dist/assets/MinimizedChatsContext-CNx_0bZu.js +0 -1
  377. package/client/dist/assets/PluginsPage-DFocnoHX.js +0 -2
  378. package/client/dist/assets/ProjectSettingsDialog-Bh3S6EBB.js +0 -1
  379. package/client/dist/assets/RepositoryScopeSelector-C2mvWBQ6.js +0 -1
  380. package/client/dist/assets/ReviewPacketPage-CrAf-WDy.js +0 -4
  381. package/client/dist/assets/TemplatePreviewModal-C7DordpN.js +0 -1
  382. package/client/dist/assets/TicketDetailModalContext-B-DySpKL.js +0 -16
  383. package/client/dist/assets/agent-BaG10AN6.js +0 -1
  384. package/client/dist/assets/agent-CH4aJ884.js +0 -1
  385. package/client/dist/assets/agent-CLc9fA7v.js +0 -1
  386. package/client/dist/assets/agent-DHh9-AdL.js +0 -1
  387. package/client/dist/assets/agent-DkKnd6Wv.js +0 -1
  388. package/client/dist/assets/agent-aiVhqFW1.js +0 -1
  389. package/client/dist/assets/agent-dbznD3eO.js +0 -1
  390. package/client/dist/assets/agent-sMVFcPwL.js +0 -1
  391. package/client/dist/assets/agentRuntime-BeUb3g9g.js +0 -1
  392. package/client/dist/assets/file-text-CFT-xXKN.js +0 -1
  393. package/client/dist/assets/index-BS7KCWkV.css +0 -2
  394. package/client/dist/assets/index-C4Mv6tV6.js +0 -80
  395. package/client/dist/assets/integrations-CH0zy1Mw.js +0 -1
  396. package/client/dist/assets/integrations-CIAjhd7L.js +0 -1
  397. package/client/dist/assets/integrations-CZdwOe8A.js +0 -1
  398. package/client/dist/assets/integrations-Ct7omMld.js +0 -1
  399. package/client/dist/assets/integrations-D6MSxy3-.js +0 -1
  400. package/client/dist/assets/integrations-DbZa-Zyc.js +0 -1
  401. package/client/dist/assets/integrations-b8pH-vfl.js +0 -1
  402. package/client/dist/assets/integrations-mB-7zoyT.js +0 -1
  403. package/client/dist/assets/jira-api-BYbEPlkr.js +0 -1
  404. package/client/dist/assets/layers-eDMjG41I.js +0 -1
  405. package/client/dist/assets/loops-B4_D-nbg.js +0 -1
  406. package/client/dist/assets/nav-B-tpjyc2.js +0 -1
  407. package/client/dist/assets/nav-BJNXGg29.js +0 -1
  408. package/client/dist/assets/nav-BdhtRLP7.js +0 -1
  409. package/client/dist/assets/nav-ByYgyN5T.js +0 -1
  410. package/client/dist/assets/nav-DA0Mva2c.js +0 -1
  411. package/client/dist/assets/nav-DcJm_Jg_.js +0 -1
  412. package/client/dist/assets/nav-DhMPtAXc.js +0 -1
  413. package/client/dist/assets/nav-DhPb-Isc.js +0 -1
  414. package/client/dist/assets/provider-capabilities-Vi1ZGvAK.js +0 -1
  415. package/client/dist/assets/save-B6wGWwBR.js +0 -1
  416. package/client/dist/assets/settings-3o4Ntzi5.js +0 -1
  417. package/client/dist/assets/settings-B97jlkwD.js +0 -1
  418. package/client/dist/assets/settings-BTaT_bsS.js +0 -1
  419. package/client/dist/assets/settings-CT8w7WiC.js +0 -1
  420. package/client/dist/assets/settings-Cvr8_tvh.js +0 -1
  421. package/client/dist/assets/settings-Dn1qgAC8.js +0 -1
  422. package/client/dist/assets/settings-EShDdg4J.js +0 -1
  423. package/client/dist/assets/settings-tfLhQZRN.js +0 -1
  424. package/client/dist/assets/setup-CBMu3tqH.js +0 -1
  425. package/client/dist/assets/setup-CPh-e6J2.js +0 -1
  426. package/client/dist/assets/setup-CRKLp_ke.js +0 -1
  427. package/client/dist/assets/setup-Cy302v4J.js +0 -1
  428. package/client/dist/assets/setup-D681vTPf.js +0 -1
  429. package/client/dist/assets/setup-DYK0VBkE.js +0 -1
  430. package/client/dist/assets/setup-KAuiIiVs.js +0 -1
  431. package/client/dist/assets/setup-OGX-oCfI.js +0 -1
  432. package/client/dist/assets/useSharedWebSocket-BZMrX4jr.js +0 -2
  433. package/client/dist/assets/wrench-BfmNO9Vw.js +0 -1
  434. package/docs/agy-cli-provider-study.md +0 -257
  435. package/docs/gemini-cli-provider-study.md +0 -301
  436. package/docs/gemini-core-support-evaluation.md +0 -160
  437. package/docs/gemini.md +0 -257
  438. package/docs/kimi.md +0 -291
@@ -1,108 +1,19 @@
1
- # AI providers (Claude, Codex, Gemini, Kimi)
1
+ <!-- guide-revision: mission-first-v1 -->
2
2
 
3
- Specrails isn't tied to a single AI. Explore, rails, chat, loops, and the
4
- terminal's "Open AI CLI" action run through a provider adapter; pure-output
5
- surfaces additionally require a safe tool policy. You choose the provider set
6
- for a project and can switch among compatible engines per invocation.
3
+ # Connect an AI provider
7
4
 
8
- ## The four providers
5
+ Specrails coordinates your authenticated Claude or Codex CLI. Provider installation, account access and model billing remain separate from the application.
9
6
 
10
- | Provider | CLI | Made by | Notes |
11
- |---|---|---|---|
12
- | **Claude** | `claude` | Anthropic | Native billed-cost events and persistent interactive stdin. |
13
- | **Codex** | `codex` | OpenAI | Needs codex `0.128.0+`. Reads its MCP servers from your global `~/.codex/config.toml`. |
14
- | **Gemini** | `gemini` | Google | Needs gemini `0.11.0+`. Uses native telemetry and a `GEMINI.md` instructions file. |
15
- | **Kimi Code** | `kimi` | Moonshot AI | Needs Kimi Code `0.27.0+`. Uses CLI-only `-p` execution and `.kimi-code` directory-form skills. |
7
+ ## Connect and verify
16
8
 
17
- All four are registered by default. A provider is selectable in **Add Project**
18
- when its CLI is installed, executable, and on `PATH`. Once its `--version`
19
- command works in a fresh terminal, Specrails can use it. Kimi users must also
20
- complete `kimi login`; the setup probe does not spend quota merely to test
21
- authentication.
9
+ Install the desired CLI using its official instructions and sign in with the account you intend to use. Check availability in Specrails, then select a supported model and settings for the mission or rail.
22
10
 
23
- ## Providers are detected automatically
11
+ A successful discovery check does not guarantee quota or network availability for the next call. Resolve authentication and compatibility errors before retrying an implementation.
24
12
 
25
- You never pick providers per project. Specrails detects every provider CLI
26
- installed on your machine and makes **all of them** available to **every**
27
- project, always. Each surface then checks the provider's advertised
28
- capabilities. See [Using Kimi](../../../kimi.md) for Kimi's exact matrix.
13
+ ## Understand the boundary
29
14
 
30
- If a provider you want doesn't show up anywhere, it's almost always because the
31
- CLI isn't installed or isn't on your `PATH`. Install it, sign in, and switch
32
- back to the app — detection re-runs on focus and the provider appears
33
- everywhere on its own, with its project workspace surface assembled in the
34
- background. A provider that's installed but not signed in still appears, with
35
- a *Not signed in* badge on the engine selectors.
15
+ The app keeps project records locally, while model requests and configured integrations may send context outside your machine. Choose which references and attachments to provide with that in mind.
36
16
 
37
- A few things worth knowing about multi-provider machines:
17
+ Capabilities differ: reasoning controls, structured responses, subagents and active-turn steering are not interchangeable across providers. See [provider execution settings](/docs/pipeline-picking-an-engine-per-rail) and [steering](/docs/missions-steering-and-receipts).
38
18
 
39
- - **One provider behaves exactly like before.** If only a single provider is detected, you'll never see a provider picker anywhere — the app stays clean and simple.
40
- - **Capability checks drive the sidebar.** A section is visible when at least
41
- one detected provider supports it; inside it, engine-scoped affordances offer
42
- only the capable providers. Kimi advertises profiles, custom roles, and
43
- Freestyle; it does not advertise structured actions that require an
44
- enforceable no-tools boundary.
45
- - **Nothing is locked.** Installing or removing a provider CLI updates every
46
- project automatically — there is no per-project provider setting to manage.
47
-
48
- ## Picking a provider per invocation
49
-
50
- The real payoff of a multi-provider project is choosing the right AI for each task — without changing any global setting. Wherever an AI runs, a small provider picker appears (only when the project has more than one):
51
-
52
- - **Add Spec** — an engine selector lets you Explore with a compatible
53
- provider. Quick Spec only lists providers that can enforce its pure-output
54
- boundary; Kimi uses Explore or the agentic Quick Launcher instead.
55
- - **Rail header** — pick the engine, model, profile, and supported reasoning
56
- effort for that rail.
57
- - **Terminal** — the "Open AI CLI" (Sparkles) button opens a provider menu so you can drop into any installed CLI in that project's directory.
58
-
59
- Your choice is remembered per project, defaulting to the primary provider, so you don't have to re-pick every time.
60
-
61
- ## Capability differences
62
-
63
- The application exposes the same provider-independent workflows where the CLI
64
- contract can support them. Native telemetry and transport still differ:
65
-
66
- - **Claude** reports billed USD cost and supports a long-lived stdin chat
67
- transport.
68
- - **Codex and Gemini** report enough usage to estimate cost from the local rate
69
- card.
70
- - **Kimi** emits text, tool activity, errors/retries, and a resumable session
71
- hint, but no authoritative token or USD-cost envelope. Those fields remain
72
- unavailable.
73
- - **Kimi user-global MCP** cannot be isolated per child process. Specrails uses
74
- additive project `.kimi-code/mcp.json` integration and does not expose the
75
- Claude-style "load my approved user MCPs" toggle for Kimi.
76
- - **Kimi `-p` permission mode** is autonomous and offers no per-invocation
77
- native equivalent of Claude's `--tools __none__` or Codex's read-only
78
- sandbox. Quick Spec, AI Edit, Contract Refine, SMASH/Re-SMASH, Project
79
- Builder blueprint/milestone generation, Loop Decider, file summary and
80
- construction-story AI, and Agent Studio generation/test/refine are
81
- therefore hidden or rejected before spawn. AI auto-title uses a
82
- deterministic fallback.
83
- - Kimi still supports Project/Agent Chat, Explore/proposals, agentic Quick
84
- Launcher commands (including `/opsx:ff`), rails, loops without a Decider,
85
- profiles/manual roles, terminal, project MCP, Serena, attachments, and
86
- truthful invocation metadata.
87
-
88
- ## Cost tracking across providers
89
-
90
- The **Analytics** page tracks every invocation regardless of provider. Claude
91
- cost is provider-reported; Codex/Gemini values may be estimated from the rate
92
- card. Kimi invocation duration, outcome, model, and session are recorded, while
93
- cost and token fields stay null when the CLI did not report them.
94
-
95
- ## Troubleshooting
96
-
97
- - **A provider I installed isn't offered.** Confirm the CLI is on your `PATH`
98
- (`claude --version`, `codex --version`, `gemini --version`, or
99
- `kimi --version`) in a fresh terminal.
100
- - **Kimi reports a login/model error.** Run `kimi login`, then retry. Specrails
101
- intentionally avoids a billable setup prompt.
102
- - **Codex MCP servers aren't loading in chat.** Codex reads MCP servers from your global `~/.codex/config.toml` — register them there with `codex mcp add`.
103
- - **Emergency disable.** A provider can be turned off app-wide via an environment variable (`SPECRAILS_CODEX_BETA=0` or `SPECRAILS_GEMINI_BETA=0`). This only hides the provider from *selection*; it's rarely needed.
104
-
105
- ## See also
106
-
107
- The dedicated [Kimi provider guide](../../../kimi.md), Codex guide, and Gemini
108
- guide cover setup and provider-specific behavior in depth.
19
+ The Sonnet selection runs Claude Sonnet 5.5 (`claude-sonnet-5-5`). [Anthropic](https://platform.claude.com/docs/en/models/sonnet-5-5/overview).
@@ -34,11 +34,3 @@ Under the hood the install is *surgical and additive*: it only adds its own entr
34
34
  - **Rails.** Before a rail runs, Specrails checks which plugins are installed and healthy, and makes those tools available to the agent for that job. A degraded plugin is simply skipped for that run — the rail still launches normally. Each job records a snapshot of which plugins were active, which you can see in the job's diagnostic export.
35
35
  - **Chat.** Chat automatically picks up your project's MCP config, so installed plugins are available there too.
36
36
  - **Setup.** Plugins are ignored while a project is still being set up — they come into play once the project is ready.
37
-
38
- ## Provider notes
39
-
40
- Plugins are provider-aware. Serena currently supports Claude through `.mcp.json`, Codex through `codex mcp add` with an isolated per-project `CODEX_HOME`, and Kimi through `.kimi-code/mcp.json`. A provider appears only when the plugin manifest declares support; Serena is therefore not offered for Gemini. The Jira card is provider-agnostic and shows for everyone — see the Jira guide.
41
-
42
- ## Reserved files
43
-
44
- Plugins manage a small, well-defined set of files: the provider's native MCP configuration, state under `.specrails/plugins/`, and (for Claude plugins that need one) an agent fragment at `.claude/agents/custom-<plugin>.md`. Kimi entries live in `.kimi-code/mcp.json`; the app never writes Claude-only fragments for Kimi or blindly overwrites any provider config.
@@ -21,7 +21,7 @@ All four tiers are granted out of the box, so a connected assistant can drive th
21
21
 
22
22
  ## For agents only: connect your client
23
23
 
24
- When a person asks an agent to connect, read the [dedicated MCP connection runbook](../../../agents/mcp.md). It covers Claude Code, Codex CLI and desktop, Kimi Code and Gemini CLI: locate the bundled bridge, preserve existing configuration, verify the real connection and diagnose failures. The web version is plain Markdown and needs no JavaScript.
24
+ When a person asks an agent to connect, read the [dedicated MCP connection runbook](../../../agents/mcp.md). It covers Claude Code and Codex CLI and desktop: locate the bundled bridge, preserve existing configuration, verify the real connection and diagnose failures. The web version is plain Markdown and needs no JavaScript.
25
25
 
26
26
  Keep Specrails running and open **Settings ▸ MCP ▸ Copy client config**. Some versions return only `specrails-mcp`, which may not be on PATH; the runbook explains how to locate the actual executable and script. The bridge reads the token locally, so no token belongs in client configuration. Registration alone is not proof of connection: complete `initialize`, `tools/list`, and a read-only `specrails_projects` call with `{"action":"list"}`.
27
27
 
@@ -20,14 +20,6 @@ The header has a **project selector** (like Cursor's). Pick a project and everyt
20
20
 
21
21
  Picking a project here **does not** move your dashboard — the agent's target and what you're looking at are independent.
22
22
 
23
- ## Provider and model
24
-
25
- Just above the message box you choose the **provider** (Claude, Codex, Gemini,
26
- or Kimi) and its **model**. Each provider has its own model list, and switching
27
- provider starts a fresh session with that provider's default model. Kimi turns
28
- use external `kimi -p` processes and resume only from a successful
29
- `session.resume_hint`.
30
-
31
23
  ## Permission levels — you hold the leash
32
24
 
33
25
  The agent can touch the whole app, so you decide how much freedom it has with a **level** you change live by pressing **Shift+Tab** (the same cycle Claude Code uses). Each level includes everything below it:
@@ -41,14 +33,6 @@ The agent can touch the whole app, so you decide how much freedom it has with a
41
33
 
42
34
  Start on **Observe** and raise the level only when you want the agent to act. If it tries something above the current level it stops and tells you exactly which level to switch on — it never works around the limit. This is separate from the Settings ▸ MCP tiers, which govern *external* assistants; the level here is just for this in-app agent.
43
35
 
44
- With Kimi, the levels still gate which **Specrails MCP tools** Desktop exposes,
45
- but they do not turn upstream `kimi -p` into a filesystem sandbox: prompt mode
46
- automatically approves Kimi-native tools. Use Kimi Agent Chat only where that
47
- autonomous posture is intended. Safety-sensitive pure-output operations
48
- (Quick Spec, AI Edit, Contract Refine, SMASH/Re-SMASH, Project Builder
49
- generation, Loop Decider, Code Explorer AI transforms, and Agent Studio
50
- automation) are rejected server-side before spawn.
51
-
52
36
  ## A few things you can ask
53
37
 
54
38
  Once you're on **Operate**, try:
@@ -65,7 +49,6 @@ Replies stream in smoothly and land formatted (headings, tables, lists), each wi
65
49
 
66
50
  ## Handy touches
67
51
 
68
- - **Super specs from a conversation.** Ask the agent to *shape* a spec with you instead of one-shotting it: it reads the real code first, interviews you briefly, and shows the evolving draft as a live card right in the conversation. On providers with a safe structured-action policy, your approval can enrich it with a **Contract Layer**. Kimi can shape and create the proposal, but Contract Refine stays unavailable.
69
52
  - **Click what it mentions.** In a project-pinned mission, spec numbers (`#12`) and job/run ids in the agent's replies are clickable chips — a spec opens the board's detail modal, a job id opens the live job view. If the reference no longer exists you get a quiet "not found" note.
70
53
  - **The implementation card stays in sight.** When the agent implements specs, a live card tracks the work — and while it needs something from you (create the PR, publish it, retry, discard) it stays **pinned just above the message box**, however far the conversation scrolls; its place in the history shows a slim "pinned above" marker instead. Several active cards stack as small chips (click one to bring it forward), and a chevron minimizes the card to a slim bar. Once the PR is published — or the work is merged or discarded — the card settles back into the conversation history.
71
54
  - **Prompt history.** With the box empty, press **↑**/**↓** to browse what you asked before (shown dimmed while you scroll); start typing to edit it, or hit Enter to send.
@@ -24,10 +24,6 @@ Not available on local engines: agent profiles and custom roles, SMASH / Contrac
24
24
 
25
25
  > Missions need a **large context window** on the server (64k tokens or more): the operator prompt plus the Specrails tool schemas are big. Chat and Explore are fine at 32k. If a turn fails with *exceeds the available context size*, raise the window (Ollama `OLLAMA_CONTEXT_LENGTH`, llama.cpp `-c`, LM Studio *Context Length*).
26
26
 
27
- ## Only a local engine installed?
28
-
29
- Nothing to configure. Specrails offers the engines your machine can actually run and picks the default with one rule everywhere: an installed CLI (Claude → Codex → Gemini → Kimi), otherwise the first local engine whose endpoint answers. On a machine with just a local endpoint, rails, Add Spec, chat, **agent missions and the Project Builder** all start on it — no selector to touch. An engine whose server is down is simply not offered until it answers again. Existing missions keep the engine they were created on; the selector still lets you switch.
30
-
31
27
  ## Choosing a model
32
28
 
33
29
  Quality depends on the model, not on Specrails. For rails use a tool-calling-tuned coder model of 30B parameters or more; smaller instruct models are fine for chat, Explore and Quick specs. Try **Freestyle** or an Explore session before trusting a full implement rail to a new model.
@@ -35,8 +35,7 @@ That's it. The rail spins up an AI CLI process in the right execution context an
35
35
  | **Status pill** | `idle`, `running`, or `failed`. There's no separate "completed" — a rail returns to `idle` when its job finishes cleanly. |
36
36
  | **Spec list** | The IDs assigned to this rail. Drag more in, drag them out to detach. |
37
37
  | **Loop picker** | The Loop this rail runs — a built-in (`Implement` / `Freestyle` / `SDD Quick (OpenSpec)`) or a custom loop. See the table below. Persisted per rail. |
38
- | **Profile picker** | Which provider-scoped agent profile runs (Claude and Kimi rails). Only appears once the effective provider has at least one profile. |
39
- | **Engine selector** | Which installed provider runs this rail — Claude, Codex, Gemini, or Kimi. Only renders when the project has more than one provider. See [Picking an engine per rail](picking-an-engine-per-rail). |
38
+ | **Profile picker** | Which provider-scoped agent profile runs (Claude rails). Only appears once the effective provider has at least one profile. |
40
39
  | **▶ Play / ■ Stop** | Start or cancel. |
41
40
 
42
41
  ### What a rail runs: Loops
@@ -46,24 +45,12 @@ A rail runs a **Loop** — the recipe for the work. Two loops are **built in** a
46
45
  | Built-in loop | Command | What it does |
47
46
  |------|---------|--------------|
48
47
  | **Implement** | `/specrails:implement` | One job covering all specs on the rail. Runs the full Architect → Developer → Reviewer → Ship pipeline. The everyday default. |
49
- | **Freestyle** | Freestyle | A capable provider implements each spec autonomously, **bypassing** the pipeline. One independent job per spec. Claude and Kimi support it. |
48
+ | **Freestyle** | Freestyle | A capable provider implements each spec autonomously, **bypassing** the pipeline. One independent job per spec. Claude support it. |
50
49
 
51
50
  To run several specs, put related ones (up to 3) on one rail — `Implement` runs them as one aggregate job — or spread independent specs across several rails: each git-backed rail runs in parallel in its own isolated worktree.
52
51
 
53
- Freestyle is the odd one out: it skips the agent chain and hands the capable
54
- provider the raw spec to work on with native tools. It's open-ended, so
55
- pressing Play opens a confirmation first, and its model picker follows that
56
- provider's catalog. Claude uses its persistent live-session flow; Kimi uses an
57
- owned agentic `kimi -p` process and has no persistent stdin.
58
-
59
52
  The built-ins are editable, too: edit one in the Loop Builder and publish it, and every rail that picks it runs your version (use **Restore original** to go back).
60
53
 
61
- Beyond the built-ins, you can **build your own loops** — repeat a verify → fix
62
- → verify cycle until a goal is met, chain shell commands between AI steps, and
63
- more. Kimi runs loops without a Loop Decider; its `-p` transport cannot enforce
64
- the Decider's pure-output verdict boundary. Those custom loops appear in the
65
- same Loop picker. That's the next big idea: [The Loop Builder](the-loop-builder).
66
-
67
54
  ## The job queue
68
55
 
69
56
  Every time you press Play, the rail run becomes a **job**. The most important rule to internalise:
@@ -90,14 +77,6 @@ Click any card to open the **Job Detail view**, where the live streaming log and
90
77
 
91
78
  Click **■ Stop** on the rail header. The app sends `SIGTERM` to the subprocess, waits **5 seconds** for a clean exit, then `SIGKILL`s it. Nothing is left half-spawned.
92
79
 
93
- ## If a rail won't launch
94
-
95
- If you pick an engine whose CLI isn't installed on your machine, the launch
96
- **fails fast** instead of starting a broken job — nothing spawns. Install the
97
- missing provider CLI ([Using Codex](../integrations/using-codex),
98
- [Using Gemini](../integrations/using-gemini), or
99
- [Using Kimi](../../../kimi.md)) and launch again.
100
-
101
80
  ## Stopping everything
102
81
 
103
82
  If something looks wrong:
@@ -110,4 +89,3 @@ If something looks wrong:
110
89
 
111
90
  - [The Loop Builder](the-loop-builder) — what a rail runs, and how to build your own loops.
112
91
  - [The Job Detail view](the-job-detail-view) — phases, live metrics, ticket cards.
113
- - [Picking an engine per rail](picking-an-engine-per-rail) — Claude vs Codex vs Gemini vs Kimi.
@@ -94,9 +94,6 @@ A few things worth knowing:
94
94
  - **The totals line is real.** The composer shows a live `N turns · $X` summary, summed from each completed turn's actual usage — consistent with this page's no-guesses promise.
95
95
  - **Two ways a session ends.** Most jobs **wrap up on their own**: the moment a turn finishes with no messages queued, the session settles and the job completes — your messages are optional steering, never an obligation. A subtle **Wrap up now** action ends it early with everything produced so far. **Freestyle** jobs are the exception: they idle between turns and wait for you to click **Finalize** — that's their design, a back-and-forth session you close when you're done.
96
96
  - **Loop runs route to the active step.** On a custom or built-in loop, your message reaches the **AI step that is running right now**. Between steps (while the Loop Decider thinks, or a shell command runs) the composer shows a short *"Waiting for the next step…"* state — your drafted text is kept, and sending re-enables when the next AI step starts. **Settle this step** ends the current step early and lets the loop advance with what it produced.
97
- - **Persistent interaction is Claude-only.** Codex, Gemini, and Kimi jobs run
98
- one-shot — no composer appears. Kimi chat surfaces resume by spawning a new
99
- `kimi --session=<id> -p` process after a successful resume hint.
100
97
 
101
98
  ## Diagnostic export
102
99
 
@@ -1,74 +1,19 @@
1
- # Picking an engine per rail
1
+ <!-- guide-revision: mission-first-v1 -->
2
2
 
3
- Specrails desktop treats **Claude Code**, **Codex CLI**, **Gemini CLI**, and
4
- **Kimi Code** as first-class engines. A project can install any compatible
5
- combination and, when more than one is present, choose which engine runs each
6
- rail.
3
+ # Choose a provider and its capabilities
7
4
 
8
- ## When the selector appears
5
+ Execution settings belong to the chosen provider. A familiar model name does not imply that every provider supports the same reasoning, structured output or approval controls.
9
6
 
10
- The **engine selector** lives in the rail header, right alongside the mode control. It only renders when the project has **more than one** provider installed.
7
+ ## Check availability first
11
8
 
12
- > **Single-provider projects behave byte-identically.** If a project has just one engine, no selector shows and nothing about provider selection changes — it just runs on that engine. The selector is purely for multi-provider projects.
9
+ Authenticate the provider CLI and confirm its status in Specrails. Choose among the models and effort values offered by that provider's controls. An installed CLI can still fail because its session, quota or remote service is unavailable.
13
10
 
14
- When it does appear, your choice is **per rail and per launch** — different rails can run different engines, and your pick is remembered per project (defaulting to the project's primary engine).
11
+ Claude and Codex have different adapters. Unsupported combinations should fail before a loop starts; for example, a step requiring a structured no-tools response cannot be assumed to work with every provider.
15
12
 
16
- ## How to pick an engine
13
+ ## Use the right level of control
17
14
 
18
- 1. Make sure the rail's engine selector is showing (project has 2+ providers).
19
- 2. Click it and choose **Claude**, **Codex**, **Gemini**, or **Kimi**.
20
- 3. Launch the rail with **▶ Play**.
15
+ A rail's provider/model choice controls its execution. Role profiles and per-agent routing depend on the provider and on the Core workflow Desktop installed in the project; inspect the effective configuration rather than assuming a profile changes every call.
21
16
 
22
- The selected engine runs every phase of that rail's pipeline. If the chosen engine's CLI isn't installed, the launch fails fast — nothing spawns. Install the missing CLI and try again.
17
+ When comparing runs, keep the same spec, repository revision and verification criteria. Treat reported, estimated and unavailable cost separately. See [profiles](/docs/agents-profiles-and-the-balanced-default) and [usage](/docs/insights-analytics-and-cost-tracking).
23
18
 
24
- ## What each engine is good at
25
-
26
- All four run the standard **Implement** pipeline. Here's a practical guide to choosing:
27
-
28
- | Engine | Reach for it when… | Notes |
29
- |--------|--------------------|-------|
30
- | **Claude** | You want native billed cost, persistent job interaction, and the richest hard tool-policy controls. | Supports profiles, Freestyle, and structured transforms such as Contract Layer/SMASH. |
31
- | **Codex** | You prefer the OpenAI Codex CLI or want to compare implementations across providers. | `codex` ≥ 0.128.0. No native cost reporting — the app fills in cost from its rate card. Profiles don't apply. |
32
- | **Gemini** | You want Google's Gemini CLI, native telemetry, or a cheaper run for routine specs. | `gemini` ≥ 0.11.0 (set `GEMINI_API_KEY`). Native OTLP telemetry. Profiles don't apply. |
33
- | **Kimi** | You want Kimi Code's autonomous agentic CLI for implementation, Freestyle, or loops without a Decider. | External `kimi` ≥ 0.27.0. Profiles/manual roles and K3 low/high/max effort are supported; tokens and USD cost are unavailable. |
34
-
35
- ### Capability differences
36
-
37
- A few things need a provider with the matching capability:
38
-
39
- - **Agent profiles** — Claude and Kimi support provider-scoped profiles. Codex
40
- and Gemini rails use legacy mode.
41
- - **Freestyle** — Claude and Kimi support this autonomous,
42
- pipeline-bypassing mode with provider-specific models.
43
- - **Loop Decider** — Kimi runs loops without a Decider. Its `continue`/`stop`
44
- verdict needs a pure-output boundary unavailable in `kimi -p`.
45
- - **Structured spec and read-only AI transforms** — Quick Spec, AI Edit,
46
- Contract Layer, SMASH/Re-SMASH, Project Builder generation, file summary/
47
- construction story, and Agent Studio automation are unavailable for Kimi.
48
-
49
- In mixed Claude/Kimi projects, profiles and integration state are scoped to the
50
- selected provider; an identically named profile does not leak across engines.
51
-
52
- ## A practical workflow
53
-
54
- Multi-provider projects shine when you want to **compare** or **cost-tune**:
55
-
56
- - **Compare implementations.** Put the same spec on two rails, set one to Claude and one to Codex, launch both (across projects, or one after the other in the same project's queue), then use the **Compare** button on the Jobs page to diff the results.
57
- - **Cost-tune by spec.** Run high-stakes specs on Claude with a `max` profile; run routine cleanup specs on Gemini to save on spend. Filter `/analytics` by engine to see the breakdown.
58
- - **Default sensibly.** Set your most-used engine as the project's primary so rails default to it, and only switch per-rail when a specific spec wants a different engine.
59
-
60
- ## Things to keep in mind
61
-
62
- - **Provider selection is immutable after project creation** (v1). You choose installed providers when you add the project; there's no Settings toggle to add or remove one later.
63
- - **Available metrics are always tracked.** Codex/Gemini cost uses a rate card;
64
- Kimi has no authoritative token or USD-cost stream, so those fields remain
65
- unavailable rather than becoming a fabricated estimate.
66
- - **The terminal's "Open AI CLI" button** also offers a provider picker on multi-provider projects, if you'd rather drive a CLI by hand.
67
-
68
- ## Where to go next
69
-
70
- - [Using Codex](../integrations/using-codex) — install and sign in.
71
- - [Using Gemini](../integrations/using-gemini) — install, `GEMINI_API_KEY`, telemetry.
72
- - [Using Kimi](../../../kimi.md) — external CLI setup and complete capability matrix.
73
- - [Rails & jobs](rails-and-jobs) — the queue and launch flow.
74
- - [Tracking cost](../analytics/tracking-cost) — per-engine cost breakdown.
19
+ For a mission launch, loop steps inherit the mission provider, model and effort unless an agent explicitly overrides them in the loop editor. General settings manage provider connections; the previous Provider defaults block and the Roles selector are no longer offered.
@@ -28,7 +28,6 @@ A **loop** is the *recipe* for the work; a **rail** is the *lane* that runs it a
28
28
 
29
29
  - Loops live in the **Loops** section (left sidebar, alongside your projects) — they are **global**, shared across every project.
30
30
  - A rail **picks a loop** in its header (the Loop picker) and runs it when you press Play.
31
- - The **rail** decides the provider, model and supported reasoning effort — *not* the loop's steps. The same capability-compatible loop runs on Claude, Codex, Gemini, or Kimi depending on the rail.
32
31
 
33
32
  So: build a loop once, then pick it on any rail in any project.
34
33
 
@@ -52,11 +51,6 @@ A loop is a graph of **nodes** connected by **edges** (the arrows). Each node is
52
51
 
53
52
  Edges connect the steps in order. The **Loop Decider** has two labelled outputs — **continue** and **stop** — so you wire "not done yet" back into the work and "done" out to an End.
54
53
 
55
- > **Kimi:** AI and shell steps are supported, but a graph containing a Loop
56
- > Decider is not. The verdict is a constrained pure-output action and Kimi
57
- > 0.27 `-p` cannot enforce its no-tools boundary; Desktop rejects the run before
58
- > it starts.
59
-
60
54
  ### Writing step text
61
55
 
62
56
  Inside any AI Step or Decider you can reference:
@@ -73,7 +67,6 @@ A loop that never stops would burn money forever, so every run has three guards
73
67
  |-------|--------------|
74
68
  | **Max iterations** | Hard cap on how many times the Decider may loop back, regardless of its verdict. |
75
69
  | **Timeout (min)** | Wall-clock limit for the whole run. |
76
- | **Max cost ($)** | *Optional.* Stops the loop once the accumulated cost crosses your budget. Checked **between steps** (a step's cost is only known once it finishes), so it may overshoot by one step. On Claude the cost is exact; on Codex and Gemini it's an estimate. Kimi reports no native token/USD envelope, so a cost cap cannot derive authoritative Kimi spend. Leave it empty for no cap. |
77
70
 
78
71
  ## Building with confidence
79
72
 
@@ -2,11 +2,6 @@
2
2
 
3
3
  Quick mode is for when you already know what you want. You type your idea, the AI writes the full spec, and it lands on your board as a **Todo**. No back-and-forth — just describe it and go.
4
4
 
5
- > **Kimi is not offered for Quick Spec.** Kimi 0.27 `-p` automatically
6
- > approves tools and cannot enforce this form's pure-output boundary. Desktop
7
- > rejects direct Kimi requests before spawn. Use agentic Explore, Raw, or a
8
- > Quick Launcher command such as `/opsx:ff` instead.
9
-
10
5
  ## Create a spec in Quick mode
11
6
 
12
7
  To create a spec quickly:
@@ -24,12 +19,6 @@ That's the whole flow. Everything below is optional fine-tuning.
24
19
 
25
20
  **Model** — by default the AI picks a sensible model. You can override it per spec from the model picker if you want a faster or more capable one.
26
21
 
27
- **Engine** — if your project has more than one **compatible** AI provider
28
- installed, an engine selector sits at the top of the dialog so you can choose
29
- which one generates this spec. Kimi is excluded from this surface. Your choice
30
- is remembered per project; single-compatible-provider projects don't show the
31
- selector.
32
-
33
22
  **Context** — Quick mode usually runs as a single turn, because it doesn't need to read your codebase to write a spec from your description. But a context slider lets you give it more to work with:
34
23
 
35
24
  - At the lowest setting it just reads your description.
@@ -35,14 +35,6 @@ La selección de perfil ocurre justo donde lanzas — en la **cabecera del rail*
35
35
 
36
36
  Ese es todo el flujo: elige un perfil, lanza, listo. Los rails concurrentes de un mismo lote pueden llevar cada uno su propio perfil, así que un arreglo rápido y una feature pesada pueden correr en paralelo con configuraciones distintas.
37
37
 
38
- ## Cuando la sección Agentes está en silencio
39
-
40
- Los perfiles están separados por proveedor. Claude y Kimi admiten
41
- perfiles/roles; Codex y Gemini ejecutan los rails en modo legacy. En proyectos
42
- mixtos, nombres iguales no se cruzan entre Claude y Kimi. Kimi permite roles
43
- manuales, pero generación, smoke test y AI Refine de Agent Studio fallan
44
- antes de iniciar. Kimi requiere `specrails-core` 4.12.0 o posterior.
45
-
46
38
  ## A dónde ir después
47
39
 
48
40
  - [Personalizar los modelos por agente](customizing-models-per-agent) — crea perfiles `fast` y `max`.
@@ -11,29 +11,14 @@ Cada entrada del catálogo muestra para qué sirve el agente y su modelo por def
11
11
 
12
12
  ## Añadir un agente personalizado
13
13
 
14
- Los roles son assets nativos del proveedor: Claude usa
15
- `.claude/agents/custom-<algo>.md`; Kimi usa
16
- `.kimi-code/skills/custom-<algo>/SKILL.md`.
17
-
18
- Una vez que el asset existe, aparece en el catálogo de ese provider y puedes añadir su id a un perfil del mismo provider. `custom-docs` corresponde a `.claude/agents/custom-docs.md` en Claude o a `.kimi-code/skills/custom-docs/SKILL.md` en Kimi; ambos quedan separados.
19
-
20
14
  Como viven en tu repo, los agentes personalizados son **activos de equipo commiteables**: commitea el archivo y todo tu equipo recibe el agente. Esto refleja la idea central de toda la sección Agentes —
21
15
 
22
16
  > **Las definiciones de los agentes son compartidas (viven en el repo y viajan con `git`). La configuración de modelos es por proyecto (vive en los perfiles).**
23
17
 
24
- Core protege ambos formatos. Kimi permite creación/edición manual y ejecución;
25
- Generate, Test y AI Refine fallan antes de iniciar Kimi.
26
-
27
18
  ## Poner a trabajar un agente personalizado
28
19
 
29
20
  El flujo típico:
30
21
 
31
- 1. Crea el archivo Claude o el Skill Kimi nativo con instrucciones/modelo válidos.
32
- 2. Confirma que aparece en **Agentes → Catálogo** bajo Personalizados.
33
- 3. En **Agentes → Perfiles**, añade el agente a la cadena de un perfil (sobrescribiendo opcionalmente su modelo para ese perfil).
34
- 4. Añade una regla de enrutado para que las tareas con las etiquetas adecuadas lleguen a él — o confía en el orden de la cadena.
35
- 5. Lanza un rail con ese perfil desde la cabecera del rail.
36
-
37
22
  ## Vigilar cómo rinden los perfiles
38
23
 
39
24
  La sección Agentes también tiene una pestaña **Uso** — un desglose por perfil de cuántos jobs corrieron bajo cada perfil en una ventana seleccionada. Es una forma rápida de confirmar que tu reparto `fast`/`max` se está usando realmente como pretendías, y de detectar hacia qué perfil gravita tu equipo.
@@ -35,8 +35,6 @@ specrails funciona con los principales CLI de programación con 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
  Elige el que ya uses, o instala más de uno y escoge según la tarea. Un proyecto puede funcionar con un único provider o con varios a la vez, así que nunca te quedas atado a uno.
42
40
 
@@ -22,8 +22,6 @@ Lo único que specrails no puede incluir es el **CLI del provider de IA** en sí
22
22
 
23
23
  - **Claude Code**
24
24
  - **Codex CLI**
25
- - **Gemini CLI**
26
- - **Kimi Code**
27
25
 
28
26
  Instala el que tengas pensado usar, inicia sesión una vez desde tu terminal y listo. specrails detecta automáticamente qué providers están presentes.
29
27
 
@@ -20,10 +20,6 @@ Una etiqueta amigable que se muestra en la barra lateral. Si lo dejas en blanco,
20
20
 
21
21
  Ese es todo el formulario — haz clic en **Añadir** y listo.
22
22
 
23
- ## Los proveedores de IA se detectan automáticamente
24
-
25
- Ya no eliges proveedores. Specrails detecta cada CLI de IA instalado en tu máquina — **Claude**, **Codex**, **Gemini**, **Kimi** — y todos los proyectos pueden usarlos todos, siempre. Si instalas un proveedor nuevo más adelante, aparece en todas partes por sí solo la próxima vez que vuelvas a la app; sin re-configuración, sin ajustes por proyecto. Si un proveedor está instalado pero sin sesión iniciada, su selector muestra una insignia sutil *Sin iniciar sesión*.
26
-
27
23
  ## La configuración ocurre en silencio
28
24
 
29
25
  No hay asistente de configuración. En el momento en que haces clic en **Añadir**, el proyecto queda registrado y aparece en tu barra lateral — puedes abrirlo de inmediato. En segundo plano, specrails ensambla el workspace del proyecto (unos segundos, totalmente offline): un pequeño punto parpadeante en la fila del proyecto indica que está trabajando, y desaparece cuando todo está listo. Si algo falla para un proveedor, el proyecto sigue funcionando con los demás — aparece un punto ámbar y, al hacer clic, se reintenta.
@@ -26,14 +26,9 @@ La barra lateral derecha es tu cuadro de mandos para el proyecto actual. Pasa el
26
26
 
27
27
  - **Dashboard** — el tablero de specs y los rails (donde acabas de estar).
28
28
  - **Jobs** — todas las ejecuciones de pipeline de este proyecto, pasadas y presentes, con su estado, su duración y la posibilidad de profundizar en el detalle y los logs de cualquier ejecución.
29
- - **Analíticas** — invocaciones por día, actividad, modelo y ticket. Claude informa coste facturado, Codex/Gemini usan estimaciones y Kimi deja vacíos los tokens/costes USD no disponibles.
30
- - **Agentes** — perfiles y catálogos de roles separados por proveedor para Claude y Kimi. Con Kimi puedes crear y editar roles manualmente; Generate, Test y AI Refine no están disponibles.
31
- - **Código** — un explorador de archivos de solo lectura y chips que muestran qué archivos ha tocado la IA. Los resúmenes en lenguaje sencillo solo aparecen con proveedores compatibles; no están disponibles con Kimi.
32
29
  - **Integraciones** — complementos opcionales, como conectar tus specs a un tablero de **Jira** o habilitar herramientas adicionales para la IA.
33
30
  - **Ajustes** — opciones por proyecto (telemetría, presupuestos, configuración de providers y más).
34
31
 
35
- > Las secciones y acciones aparecen según las capacidades del proveedor efectivo. Por ejemplo, los perfiles funcionan con Claude y Kimi, pero las acciones de IA de Agent Studio fallan de forma cerrada con Kimi.
36
-
37
32
  ## La barra de estado
38
33
 
39
34
  Una fina franja recorre la parte inferior de la ventana. Es pequeña, pero útil:
@@ -1,84 +1,19 @@
1
- # Proveedores de IA (Claude, Codex, Gemini, Kimi)
1
+ <!-- guide-revision: mission-first-v1 -->
2
2
 
3
- Specrails no está atado a una única IA. Claude, Codex, Gemini y Kimi son
4
- proveedores de primera clase; cada superficie muestra solo los motores cuyas
5
- capacidades cumplen su contrato.
3
+ # Conecta un proveedor de IA
6
4
 
7
- ## Los cuatro proveedores
5
+ Specrails coordina tus CLI autenticadas de Claude o Codex. Su instalación, la cuenta y la facturación del modelo son independientes de la aplicación.
8
6
 
9
- | Proveedor | CLI | Creado por | Notas |
10
- |---|---|---|---|
11
- | **Claude** | `claude` | Anthropic | Coste nativo y transporte interactivo persistente. |
12
- | **Codex** | `codex` | OpenAI | Necesita codex `0.128.0+`. Lee sus servidores MCP desde tu `~/.codex/config.toml` global. |
13
- | **Gemini** | `gemini` | Google | Necesita gemini `0.11.0+`. Usa telemetría nativa y un archivo de instrucciones `GEMINI.md`. |
14
- | **Kimi Code** | `kimi` | Moonshot AI | Necesita Kimi `0.27.0+`. Desktop usa la CLI externa con `-p`; no instala ni inicia un servidor. |
7
+ ## Conecta y comprueba
15
8
 
16
- Los cuatro están **activados por defecto**. Un proveedor aparece en **Añadir
17
- proyecto** cuando su CLI está instalada y en tu `PATH`. Para Kimi, comprueba
18
- `kimi --version` y ejecuta `kimi login`.
9
+ Instala la CLI siguiendo sus instrucciones oficiales y autentica la cuenta elegida. Revisa su disponibilidad en Specrails y selecciona un modelo compatible para la misión o el rail.
19
10
 
20
- ## Los proveedores se detectan automáticamente
11
+ Detectar la CLI no garantiza cuota ni conexión en la siguiente llamada. Resuelve los errores de autenticación y compatibilidad antes de reintentar una implementación.
21
12
 
22
- Nunca eliges proveedores por proyecto. Specrails detecta cada CLI de proveedor
23
- instalado en tu máquina y pone **todos** a disposición de **todos** los
24
- proyectos, siempre. Cada superficie comprueba después las capacidades que el
25
- proveedor anuncia. Consulta [Usar Kimi](../../../kimi.md) para la matriz exacta de Kimi.
13
+ ## Comprende los límites
26
14
 
27
- Si un proveedor que quieres no aparece por ningún sitio, casi siempre es porque
28
- el CLI no está instalado o no está en tu `PATH`. Instálalo, inicia sesión y
29
- vuelve a la app — la detección se re-ejecuta al enfocar la ventana y el
30
- proveedor aparece por sí solo en todas partes, con su superficie de workspace
31
- ensamblada en segundo plano. Un proveedor instalado pero sin sesión iniciada
32
- sigue apareciendo, con una insignia *Sin iniciar sesión* en los selectores de motor.
15
+ Los registros del proyecto se guardan localmente, pero las llamadas al modelo e integraciones pueden enviar contexto fuera del equipo. Elige referencias y adjuntos teniendo esto presente.
33
16
 
34
- Algunas cosas útiles sobre máquinas multi-proveedor:
17
+ Razonamiento, respuestas estructuradas, subagentes y guía durante un turno varían por proveedor. Consulta los [ajustes de ejecución](/docs/pipeline-picking-an-engine-per-rail) y [Guiar](/docs/missions-steering-and-receipts).
35
18
 
36
- - **Un solo proveedor se comporta exactamente como antes.** Si solo se detecta uno, nunca verás un selector de proveedor — la app se mantiene limpia y simple.
37
- - **Las capacidades gobiernan la barra lateral.** Una sección es visible cuando
38
- al menos un proveedor detectado la soporta; dentro, las acciones por motor solo
39
- ofrecen los proveedores capaces. Kimi anuncia perfiles, roles personalizados y
40
- Freestyle; no anuncia acciones estructuradas que requieran un límite sin
41
- herramientas exigible.
42
- - **Nada queda bloqueado.** Instalar o quitar un CLI de proveedor actualiza todos
43
- los proyectos automáticamente — no hay ajuste de proveedor por proyecto que gestionar.
44
-
45
- ## Elegir un proveedor por cada invocación
46
-
47
- La verdadera ventaja de un proyecto multiproveedor es poder elegir la IA adecuada para cada tarea, sin tocar ningún ajuste global. Allí donde se ejecuta una IA aparece un pequeño selector de proveedor (solo cuando el proyecto tiene más de uno):
48
-
49
- - **Añadir spec** — Explore permite Kimi; Quick Spec solo muestra proveedores
50
- que pueden imponer su límite pure-output, por lo que Kimi no aparece ahí.
51
- - **Cabecera del rail** — elige el motor para ese rail concreto antes de lanzarlo.
52
- - **Terminal** — el botón «Open AI CLI» (el icono de chispas) abre un menú de proveedores para que puedas entrar en cualquier CLI instalada en el directorio de ese proyecto.
53
-
54
- Tu elección se recuerda por proyecto y toma el proveedor principal por defecto, así que no tienes que volver a elegirla cada vez.
55
-
56
- ## Diferencias de capacidades
57
-
58
- Kimi admite Project/Agent Chat, Explore y propuestas, Quick Launcher
59
- (`/opsx:ff`), rails, Freestyle, loops sin Decider, perfiles/roles manuales,
60
- MCP, Serena, terminal y adjuntos.
61
-
62
- Kimi `-p` aprueba herramientas automáticamente y no puede imponer un límite
63
- sin herramientas/read-only. Por eso fallan antes de iniciar el proceso:
64
- Quick Spec, AI Edit, Contract Refine, SMASH/Re-SMASH, generación de
65
- blueprints/milestones de Project Builder, Loop Decider, resúmenes e historia
66
- de construcción, y automatización de Agent Studio. El auto-title usa un
67
- fallback determinista. Consulta la [guía completa de Kimi](../../../kimi.md).
68
-
69
- ## Seguimiento de costes entre proveedores
70
-
71
- La página de **Analytics** registra las invocaciones que llegan a ejecutarse.
72
- Claude informa de su coste; Codex y Gemini usan una estimación. Kimi no emite
73
- tokens ni coste USD autoritativos, por lo que esos campos quedan vacíos.
74
-
75
- ## Resolución de problemas
76
-
77
- - **No aparece un proveedor que instalé.** Confirma que la CLI está en tu `PATH` (prueba `claude --version` / `codex --version` / `gemini --version` / `kimi --version` en un terminal nuevo).
78
- - **Los servidores MCP de Codex no se cargan en el chat.** Codex lee los servidores MCP desde tu `~/.codex/config.toml` global; regístralos ahí con `codex mcp add`.
79
- - **Desactivación de emergencia.** Un proveedor se puede desactivar en toda la app mediante una variable de entorno (`SPECRAILS_CODEX_BETA=0` o `SPECRAILS_GEMINI_BETA=0`). Esto solo oculta el proveedor de la *selección*; rara vez es necesario.
80
-
81
- ## Véase también
82
-
83
- Las guías dedicadas a cada proveedor profundizan en cada CLI: consulta
84
- [Kimi](../../../kimi.md), Codex y Gemini.
19
+ La selección Sonnet ejecuta Claude Sonnet 5.5 (`claude-sonnet-5-5`). [Anthropic](https://platform.claude.com/docs/en/models/sonnet-5-5/overview).
@@ -34,11 +34,3 @@ Por debajo, la instalación es *quirúrgica y aditiva*: solo añade sus entradas
34
34
  - **Rails.** Antes de que un rail se ejecute, Specrails comprueba qué plugins están instalados y saludables, y pone esas herramientas a disposición del agente para ese trabajo. Un plugin degradado simplemente se omite para esa ejecución: el rail se lanza igualmente con normalidad. Cada trabajo registra una instantánea de qué plugins estaban activos, que puedes ver en la exportación de diagnóstico del trabajo.
35
35
  - **Chat.** El chat recoge automáticamente la configuración MCP de tu proyecto, así que los plugins instalados también están disponibles ahí.
36
36
  - **Configuración.** Los plugins se ignoran mientras un proyecto todavía se está configurando; entran en juego una vez que el proyecto está listo.
37
-
38
- ## Notas sobre proveedores
39
-
40
- Los plugins son conscientes del proveedor. Serena admite Claude mediante `.mcp.json`, Codex mediante `codex mcp add` con un `CODEX_HOME` aislado por proyecto y Kimi mediante `.kimi-code/mcp.json`. Solo aparece si su manifiesto declara el provider; por eso Serena no se ofrece para Gemini. La tarjeta de Jira es independiente del proveedor y se muestra para todos.
41
-
42
- ## Archivos reservados
43
-
44
- Los plugins gestionan la configuración MCP nativa del provider, estado bajo `.specrails/plugins/` y, solo cuando corresponde a Claude, fragmentos en `.claude/agents/custom-<plugin>.md`. Las entradas Kimi viven en `.kimi-code/mcp.json`; la app no escribe fragmentos exclusivos de Claude para Kimi ni sobrescribe configuraciones a ciegas.