specrails-desktop 2.30.2 → 2.31.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 (462) hide show
  1. package/README.md +28 -24
  2. package/client/dist/assets/{ActivityFeedPage-9DZOvIcY.js → ActivityFeedPage-CAhFRUO4.js} +1 -1
  3. package/client/dist/assets/{AgentBrowserCapture-DqyHbzk7.js → AgentBrowserCapture-Ct4G5lsE.js} +1 -1
  4. package/client/dist/assets/AgentModeCodePane-DQt9WIvu.js +2 -0
  5. package/client/dist/assets/{AgentModeJobsPane-CTIHMUKN.js → AgentModeJobsPane-podaJVl9.js} +1 -1
  6. package/client/dist/assets/AgentsPage-DTZdbW80.js +87 -0
  7. package/client/dist/assets/AnalyticsPage-BskgGPm0.js +1 -0
  8. package/client/dist/assets/CodePage-CvtYo1DU.js +2 -0
  9. package/client/dist/assets/{DesktopAnalyticsPage-CkXUFj3F.js → DesktopAnalyticsPage-Dnf99E8e.js} +1 -1
  10. package/client/dist/assets/{DocsDialog-PhdCJNVj.js → DocsDialog-DHi36rZ4.js} +1 -1
  11. package/client/dist/assets/{DocsPage-BY-wDthx.js → DocsPage-DIdVrQz1.js} +1 -1
  12. package/client/dist/assets/{InteractiveJobComposer-C9I0A4KR.js → InteractiveJobComposer-BHeB2inv.js} +1 -1
  13. package/client/dist/assets/{JobDetailModal-I_RoQJV4.js → JobDetailModal-CF1SKUHH.js} +1 -1
  14. package/client/dist/assets/JobDetailPage-De3rY18h.js +1 -0
  15. package/client/dist/assets/{JobsPage-DcllM4Ip.js → JobsPage-CfAqqJTx.js} +1 -1
  16. package/client/dist/assets/{LoopBuilderPage-DGm_iuff.js → LoopBuilderPage-DSBMuTb3.js} +2 -2
  17. package/client/dist/assets/{LoopPreviewModal-BC-TeFdD.js → LoopPreviewModal-B-c37kA0.js} +1 -1
  18. package/client/dist/assets/LoopsPage-DjnNXdmm.js +1 -0
  19. package/client/dist/assets/{MinimizedChatsContext-Cs34FPTz.js → MinimizedChatsContext-DIsnQMVz.js} +1 -1
  20. package/client/dist/assets/PluginsPage-DA5pQ_6u.js +2 -0
  21. package/client/dist/assets/{ProjectSettingsDialog-nEs-ENrE.js → ProjectSettingsDialog-DA23PSi6.js} +1 -1
  22. package/client/dist/assets/{TemplatePreviewModal-D4qW-J9B.js → TemplatePreviewModal-Cp7IQ-g2.js} +1 -1
  23. package/client/dist/assets/TicketDetailModal-BPD2i_0R.js +14 -0
  24. package/client/dist/assets/{Trans-CPISVji8.js → Trans-cWtExGkC.js} +1 -1
  25. package/client/dist/assets/addspec-4WmLJmBG.js +1 -0
  26. package/client/dist/assets/addspec-BRlk8jON.js +1 -0
  27. package/client/dist/assets/addspec-C7XRejU4.js +1 -0
  28. package/client/dist/assets/addspec-CHW9xf_X.js +1 -0
  29. package/client/dist/assets/addspec-DTmRrWrF.js +1 -0
  30. package/client/dist/assets/addspec-DhmnXER8.js +1 -0
  31. package/client/dist/assets/addspec-Di41DpYV.js +1 -0
  32. package/client/dist/assets/addspec-x3mizDxc.js +1 -0
  33. package/client/dist/assets/agent-BKsuIgIT.js +1 -0
  34. package/client/dist/assets/agent-Bs9NilfI.js +1 -0
  35. package/client/dist/assets/agent-C23h684q.js +1 -0
  36. package/client/dist/assets/agent-CqEjy3Z2.js +1 -0
  37. package/client/dist/assets/agent-D5DZTks1.js +1 -0
  38. package/client/dist/assets/agent-DE8hUYPl.js +1 -0
  39. package/client/dist/assets/agent-DsTuJGSc.js +1 -0
  40. package/client/dist/assets/agent-DwZM05-x.js +1 -0
  41. package/client/dist/assets/agents-45GbINfh.js +1 -0
  42. package/client/dist/assets/agents-BHp0_FQt.js +1 -0
  43. package/client/dist/assets/agents-Bvyi3y6R.js +1 -0
  44. package/client/dist/assets/agents-DMKFStHL.js +1 -0
  45. package/client/dist/assets/agents-DaYcxAr1.js +1 -0
  46. package/client/dist/assets/agents-IUOgqT5t.js +1 -0
  47. package/client/dist/assets/agents-ms7TwG16.js +1 -0
  48. package/client/dist/assets/agents-rzPnqoBR.js +1 -0
  49. package/client/dist/assets/agentstudio-8TQqBenW.js +1 -0
  50. package/client/dist/assets/agentstudio-B8Z_mmEX.js +1 -0
  51. package/client/dist/assets/agentstudio-BZR9YmLs.js +1 -0
  52. package/client/dist/assets/agentstudio-Bge9pAWb.js +1 -0
  53. package/client/dist/assets/agentstudio-Bz169Vzt.js +1 -0
  54. package/client/dist/assets/agentstudio-D6L2jpNi.js +1 -0
  55. package/client/dist/assets/agentstudio-K2-Z7CL0.js +1 -0
  56. package/client/dist/assets/agentstudio-Zmgzthv8.js +1 -0
  57. package/client/dist/assets/analytics-B8Qtptbl.js +1 -0
  58. package/client/dist/assets/analytics-BHqUazhP.js +1 -0
  59. package/client/dist/assets/analytics-BPptRY4f.js +1 -0
  60. package/client/dist/assets/analytics-BxDGOIwf.js +1 -0
  61. package/client/dist/assets/analytics-C9RaQcE3.js +1 -0
  62. package/client/dist/assets/analytics-CJIwqrEl.js +1 -0
  63. package/client/dist/assets/analytics-D_OZdQ9O.js +1 -0
  64. package/client/dist/assets/analytics-We6lUMI8.js +1 -0
  65. package/client/dist/assets/builder-3bygQtZi.js +1 -0
  66. package/client/dist/assets/builder-BiUG9Z5K.js +1 -0
  67. package/client/dist/assets/builder-CGRz_-zP.js +1 -0
  68. package/client/dist/assets/builder-CWYPw7Cw.js +1 -0
  69. package/client/dist/assets/builder-CX1437hF.js +1 -0
  70. package/client/dist/assets/{builder-CwA4T7gP.js → builder-Cowk9jtL.js} +1 -1
  71. package/client/dist/assets/builder-DwDexYRE.js +1 -0
  72. package/client/dist/assets/builder-skfnZ1uC.js +1 -0
  73. package/client/dist/assets/code-B0O8-p8k.js +1 -0
  74. package/client/dist/assets/code-B1VLZDhS.js +1 -0
  75. package/client/dist/assets/code-B86IMAfz.js +1 -0
  76. package/client/dist/assets/code-Bpj4Ddml.js +1 -0
  77. package/client/dist/assets/code-BykBZ5-e.js +1 -0
  78. package/client/dist/assets/code-CHPkOkDS.js +1 -0
  79. package/client/dist/assets/code-CkUuW4m9.js +1 -0
  80. package/client/dist/assets/code-cAqaqMTx.js +1 -0
  81. package/client/dist/assets/{dashboard-Dy2Um-US.js → dashboard-BVq6kRJe.js} +1 -1
  82. package/client/dist/assets/{dashboard-CHCEkds4.js → dashboard-BaKPPmLH.js} +1 -1
  83. package/client/dist/assets/{dashboard-CrlTV1ms.js → dashboard-Bm8e4zYG.js} +1 -1
  84. package/client/dist/assets/{dashboard-WhzOQw1S.js → dashboard-Bt6IesnM.js} +1 -1
  85. package/client/dist/assets/{dashboard-Cslu_GCH.js → dashboard-C_NQZle_.js} +1 -1
  86. package/client/dist/assets/{dashboard-DweT3Y4R.js → dashboard-CyZKoGoI.js} +1 -1
  87. package/client/dist/assets/{dashboard-DUU8-_Rg.js → dashboard-HIUdUBQ0.js} +1 -1
  88. package/client/dist/assets/{dashboard-Cqmmbh3l.js → dashboard-pm4Mr229.js} +1 -1
  89. package/client/dist/assets/{dist-js-jwoXo0YD.js → dist-js-BaP-xLOy.js} +1 -1
  90. package/client/dist/assets/{dist-js-Dj72W6qo.js → dist-js-CLlgOa5a.js} +1 -1
  91. package/client/dist/assets/format-command-C0D9IPmV.js +1 -0
  92. package/client/dist/assets/{formatDistanceToNow-ByKli7Q_.js → formatDistanceToNow-DUyzS4rr.js} +1 -1
  93. package/client/dist/assets/{getTimezoneOffsetInMilliseconds-qrcBaLW1.js → getTimezoneOffsetInMilliseconds-BCIwmmTj.js} +1 -1
  94. package/client/dist/assets/{i18n-Bf9Ckd10.js → i18n-D21Pr8Sj.js} +2 -2
  95. package/client/dist/assets/index-BdSDUFnA.css +2 -0
  96. package/client/dist/assets/index-Ci4-JKDr.js +77 -0
  97. package/client/dist/assets/{jobs-CVFD8rar.js → jobs-BAls3bWq.js} +1 -1
  98. package/client/dist/assets/{jobs-DoSaFzAa.js → jobs-B_TeSQxb.js} +1 -1
  99. package/client/dist/assets/jobs-Bgq-PZkC.js +1 -0
  100. package/client/dist/assets/jobs-Bpks6doU.js +1 -0
  101. package/client/dist/assets/jobs-CN_zv4Gr.js +1 -0
  102. package/client/dist/assets/jobs-DUlWSYq2.js +1 -0
  103. package/client/dist/assets/{jobs-B-sDHEay.js → jobs-DhxKgWFq.js} +1 -1
  104. package/client/dist/assets/{jobs-lk1_Dq1U.js → jobs-SwYS2M-B.js} +1 -1
  105. package/client/dist/assets/nav-BHDiSIVu.js +1 -0
  106. package/client/dist/assets/nav-CMiYAq4i.js +1 -0
  107. package/client/dist/assets/nav-CqS7NrDW.js +1 -0
  108. package/client/dist/assets/nav-D-0M7xfv.js +1 -0
  109. package/client/dist/assets/nav-D65O6u9I.js +1 -0
  110. package/client/dist/assets/nav-D_LKYvBr.js +1 -0
  111. package/client/dist/assets/nav-FDTJmU79.js +1 -0
  112. package/client/dist/assets/nav-VaB-C4k5.js +1 -0
  113. package/client/dist/assets/provider-capabilities-BvoExILy.js +1 -0
  114. package/client/dist/assets/settings-BveOJoaI.js +1 -0
  115. package/client/dist/assets/settings-Cj1C6F5k.js +1 -0
  116. package/client/dist/assets/settings-CuVwOpe0.js +1 -0
  117. package/client/dist/assets/settings-D5X4DfRc.js +1 -0
  118. package/client/dist/assets/settings-DXwxe-BW.js +1 -0
  119. package/client/dist/assets/settings-Di81Ba_V.js +1 -0
  120. package/client/dist/assets/settings-jbLjCYC_.js +1 -0
  121. package/client/dist/assets/settings-wIZNPFnn.js +1 -0
  122. package/client/dist/assets/setup-BBiHEO7h.js +1 -0
  123. package/client/dist/assets/setup-BlTWhNIQ.js +1 -0
  124. package/client/dist/assets/setup-Bp2L_oiP.js +1 -0
  125. package/client/dist/assets/setup-CInYXp1-.js +1 -0
  126. package/client/dist/assets/{setup-CITtPjed.js → setup-CYH3bP6K.js} +1 -1
  127. package/client/dist/assets/setup-DwcQ921P.js +1 -0
  128. package/client/dist/assets/setup-PBLjuDSs.js +1 -0
  129. package/client/dist/assets/setup-bx6FtoBp.js +1 -0
  130. package/client/dist/assets/{spending-DMnCXy84.js → spending-BCyUxoOI.js} +1 -1
  131. package/client/dist/assets/{tickets-B8BuAaj5.js → tickets-BL9r1G0e.js} +1 -1
  132. package/client/dist/assets/{tickets-DpmdE8tv.js → tickets-B_NyHJ8f.js} +1 -1
  133. package/client/dist/assets/{tickets-B_yh4qQk.js → tickets-BarF1wuG.js} +1 -1
  134. package/client/dist/assets/{tickets-pAUJkDTu.js → tickets-CclVhpQA.js} +1 -1
  135. package/client/dist/assets/{tickets-D_yDquEw.js → tickets-CqqOHbli.js} +1 -1
  136. package/client/dist/assets/{tickets-CFk2n2Or.js → tickets-DCkFSiqt.js} +1 -1
  137. package/client/dist/assets/{tickets-DQp7JS2R.js → tickets-Djn3ccfT.js} +1 -1
  138. package/client/dist/assets/{tickets-Bs37scwY.js → tickets-MiHBPsy_.js} +1 -1
  139. package/client/dist/assets/{useBrowserCaptureSession-CkBJShUw.js → useBrowserCaptureSession-CkVCDzer.js} +1 -1
  140. package/client/dist/assets/{useDesktop-B4pSBIDd.js → useDesktop-DCP_MHp9.js} +1 -1
  141. package/client/dist/index.html +25 -24
  142. package/docs/README.md +7 -3
  143. package/docs/cli.md +3 -3
  144. package/docs/codex.md +51 -64
  145. package/docs/creating-specs.md +36 -4
  146. package/docs/customizing.md +5 -5
  147. package/docs/gemini.md +35 -47
  148. package/docs/getting-started.md +15 -9
  149. package/docs/guide/de/agents/2-profiles-and-the-balanced-default.md +5 -1
  150. package/docs/guide/de/agents/4-custom-agents-catalog.md +7 -4
  151. package/docs/guide/de/getting-started/1-what-is-specrails.md +1 -0
  152. package/docs/guide/de/getting-started/2-installing-and-first-run.md +1 -0
  153. package/docs/guide/de/getting-started/4-the-dashboard-tour.md +4 -4
  154. package/docs/guide/de/integrations/1-ai-providers.md +29 -18
  155. package/docs/guide/de/integrations/2-plugins.md +3 -3
  156. package/docs/guide/de/integrations/6-agent-chat.md +8 -1
  157. package/docs/guide/de/pipeline/1-rails-and-jobs.md +9 -6
  158. package/docs/guide/de/pipeline/2-the-job-detail-view.md +3 -1
  159. package/docs/guide/de/pipeline/3-batch-implement-and-multi-feature.md +1 -1
  160. package/docs/guide/de/pipeline/4-picking-an-engine-per-rail.md +13 -13
  161. package/docs/guide/de/pipeline/5-the-loop-builder.md +6 -2
  162. package/docs/guide/de/specs/2-add-spec-quick-mode.md +6 -1
  163. package/docs/guide/en/agents/2-profiles-and-the-balanced-default.md +7 -1
  164. package/docs/guide/en/agents/4-custom-agents-catalog.md +17 -4
  165. package/docs/guide/en/getting-started/1-what-is-specrails.md +2 -1
  166. package/docs/guide/en/getting-started/2-installing-and-first-run.md +2 -1
  167. package/docs/guide/en/getting-started/4-the-dashboard-tour.md +5 -5
  168. package/docs/guide/en/insights/3-code-explorer.md +5 -0
  169. package/docs/guide/en/integrations/1-ai-providers.md +63 -22
  170. package/docs/guide/en/integrations/2-plugins.md +3 -3
  171. package/docs/guide/en/integrations/6-agent-chat.md +14 -2
  172. package/docs/guide/en/pipeline/1-rails-and-jobs.md +19 -7
  173. package/docs/guide/en/pipeline/2-the-job-detail-view.md +3 -1
  174. package/docs/guide/en/pipeline/3-batch-implement-and-multi-feature.md +1 -1
  175. package/docs/guide/en/pipeline/4-picking-an-engine-per-rail.md +25 -11
  176. package/docs/guide/en/pipeline/5-the-loop-builder.md +7 -2
  177. package/docs/guide/en/specs/2-add-spec-quick-mode.md +10 -1
  178. package/docs/guide/es/agents/2-profiles-and-the-balanced-default.md +5 -1
  179. package/docs/guide/es/agents/4-custom-agents-catalog.md +7 -4
  180. package/docs/guide/es/getting-started/1-what-is-specrails.md +1 -0
  181. package/docs/guide/es/getting-started/2-installing-and-first-run.md +1 -0
  182. package/docs/guide/es/getting-started/4-the-dashboard-tour.md +4 -4
  183. package/docs/guide/es/integrations/1-ai-providers.md +30 -18
  184. package/docs/guide/es/integrations/2-plugins.md +3 -3
  185. package/docs/guide/es/integrations/6-agent-chat.md +8 -1
  186. package/docs/guide/es/pipeline/1-rails-and-jobs.md +9 -6
  187. package/docs/guide/es/pipeline/2-the-job-detail-view.md +3 -1
  188. package/docs/guide/es/pipeline/3-batch-implement-and-multi-feature.md +1 -1
  189. package/docs/guide/es/pipeline/4-picking-an-engine-per-rail.md +15 -13
  190. package/docs/guide/es/pipeline/5-the-loop-builder.md +6 -2
  191. package/docs/guide/es/specs/2-add-spec-quick-mode.md +6 -1
  192. package/docs/guide/fr/agents/2-profiles-and-the-balanced-default.md +5 -1
  193. package/docs/guide/fr/agents/4-custom-agents-catalog.md +7 -4
  194. package/docs/guide/fr/getting-started/1-what-is-specrails.md +1 -0
  195. package/docs/guide/fr/getting-started/2-installing-and-first-run.md +1 -0
  196. package/docs/guide/fr/getting-started/4-the-dashboard-tour.md +4 -4
  197. package/docs/guide/fr/integrations/1-ai-providers.md +29 -18
  198. package/docs/guide/fr/integrations/2-plugins.md +3 -3
  199. package/docs/guide/fr/integrations/6-agent-chat.md +8 -1
  200. package/docs/guide/fr/pipeline/1-rails-and-jobs.md +9 -6
  201. package/docs/guide/fr/pipeline/2-the-job-detail-view.md +3 -1
  202. package/docs/guide/fr/pipeline/3-batch-implement-and-multi-feature.md +1 -1
  203. package/docs/guide/fr/pipeline/4-picking-an-engine-per-rail.md +15 -13
  204. package/docs/guide/fr/pipeline/5-the-loop-builder.md +6 -2
  205. package/docs/guide/fr/specs/2-add-spec-quick-mode.md +6 -1
  206. package/docs/guide/it/agents/2-profiles-and-the-balanced-default.md +5 -1
  207. package/docs/guide/it/agents/4-custom-agents-catalog.md +7 -4
  208. package/docs/guide/it/getting-started/1-what-is-specrails.md +1 -0
  209. package/docs/guide/it/getting-started/2-installing-and-first-run.md +1 -0
  210. package/docs/guide/it/getting-started/4-the-dashboard-tour.md +4 -4
  211. package/docs/guide/it/integrations/1-ai-providers.md +28 -18
  212. package/docs/guide/it/integrations/2-plugins.md +3 -3
  213. package/docs/guide/it/integrations/6-agent-chat.md +8 -1
  214. package/docs/guide/it/pipeline/1-rails-and-jobs.md +9 -6
  215. package/docs/guide/it/pipeline/2-the-job-detail-view.md +3 -1
  216. package/docs/guide/it/pipeline/3-batch-implement-and-multi-feature.md +1 -1
  217. package/docs/guide/it/pipeline/4-picking-an-engine-per-rail.md +13 -13
  218. package/docs/guide/it/pipeline/5-the-loop-builder.md +6 -2
  219. package/docs/guide/it/specs/2-add-spec-quick-mode.md +6 -1
  220. package/docs/guide/ja/agents/2-profiles-and-the-balanced-default.md +6 -1
  221. package/docs/guide/ja/agents/4-custom-agents-catalog.md +7 -4
  222. package/docs/guide/ja/getting-started/1-what-is-specrails.md +1 -0
  223. package/docs/guide/ja/getting-started/2-installing-and-first-run.md +1 -0
  224. package/docs/guide/ja/getting-started/4-the-dashboard-tour.md +4 -4
  225. package/docs/guide/ja/integrations/1-ai-providers.md +28 -18
  226. package/docs/guide/ja/integrations/2-plugins.md +3 -3
  227. package/docs/guide/ja/integrations/6-agent-chat.md +7 -1
  228. package/docs/guide/ja/pipeline/1-rails-and-jobs.md +9 -6
  229. package/docs/guide/ja/pipeline/2-the-job-detail-view.md +3 -1
  230. package/docs/guide/ja/pipeline/3-batch-implement-and-multi-feature.md +1 -1
  231. package/docs/guide/ja/pipeline/4-picking-an-engine-per-rail.md +14 -13
  232. package/docs/guide/ja/pipeline/5-the-loop-builder.md +6 -2
  233. package/docs/guide/ja/specs/2-add-spec-quick-mode.md +6 -1
  234. package/docs/guide/pt/agents/2-profiles-and-the-balanced-default.md +5 -1
  235. package/docs/guide/pt/agents/4-custom-agents-catalog.md +7 -4
  236. package/docs/guide/pt/getting-started/1-what-is-specrails.md +1 -0
  237. package/docs/guide/pt/getting-started/2-installing-and-first-run.md +1 -0
  238. package/docs/guide/pt/getting-started/4-the-dashboard-tour.md +4 -4
  239. package/docs/guide/pt/integrations/1-ai-providers.md +28 -18
  240. package/docs/guide/pt/integrations/2-plugins.md +3 -3
  241. package/docs/guide/pt/integrations/6-agent-chat.md +7 -1
  242. package/docs/guide/pt/pipeline/1-rails-and-jobs.md +9 -6
  243. package/docs/guide/pt/pipeline/2-the-job-detail-view.md +2 -1
  244. package/docs/guide/pt/pipeline/3-batch-implement-and-multi-feature.md +1 -1
  245. package/docs/guide/pt/pipeline/4-picking-an-engine-per-rail.md +14 -13
  246. package/docs/guide/pt/pipeline/5-the-loop-builder.md +6 -2
  247. package/docs/guide/pt/specs/2-add-spec-quick-mode.md +6 -1
  248. package/docs/guide/zh/agents/2-profiles-and-the-balanced-default.md +4 -1
  249. package/docs/guide/zh/agents/4-custom-agents-catalog.md +7 -4
  250. package/docs/guide/zh/getting-started/1-what-is-specrails.md +1 -0
  251. package/docs/guide/zh/getting-started/2-installing-and-first-run.md +1 -0
  252. package/docs/guide/zh/getting-started/4-the-dashboard-tour.md +4 -4
  253. package/docs/guide/zh/integrations/1-ai-providers.md +26 -18
  254. package/docs/guide/zh/integrations/2-plugins.md +3 -3
  255. package/docs/guide/zh/integrations/6-agent-chat.md +6 -1
  256. package/docs/guide/zh/pipeline/1-rails-and-jobs.md +9 -6
  257. package/docs/guide/zh/pipeline/2-the-job-detail-view.md +2 -1
  258. package/docs/guide/zh/pipeline/3-batch-implement-and-multi-feature.md +1 -1
  259. package/docs/guide/zh/pipeline/4-picking-an-engine-per-rail.md +12 -12
  260. package/docs/guide/zh/pipeline/5-the-loop-builder.md +6 -2
  261. package/docs/guide/zh/specs/2-add-spec-quick-mode.md +6 -1
  262. package/docs/internals/README.md +4 -1
  263. package/docs/internals/adding-a-provider.md +32 -28
  264. package/docs/internals/api-reference.md +37 -13
  265. package/docs/internals/architecture.md +5 -5
  266. package/docs/internals/bundled-framework-build-plan.md +3 -3
  267. package/docs/internals/code-explorer-story.md +4 -0
  268. package/docs/internals/configuration.md +17 -5
  269. package/docs/internals/global-artifacts-alignment-contract.md +1 -1
  270. package/docs/internals/operations-runbook.md +1 -1
  271. package/docs/internals/profiles.md +37 -45
  272. package/docs/internals/project-builder.md +16 -0
  273. package/docs/kimi.md +291 -0
  274. package/docs/mcp.md +9 -2
  275. package/docs/platforms/macos.md +17 -7
  276. package/docs/platforms/windows.md +9 -4
  277. package/docs/running-pipelines.md +46 -12
  278. package/docs/terminal.md +1 -1
  279. package/docs/tracking-cost.md +25 -6
  280. package/package.json +4 -2
  281. package/server/dist/agent-chat-manager.js +74 -32
  282. package/server/dist/agent-chat-router.js +40 -17
  283. package/server/dist/agent-cwd-manager.js +14 -7
  284. package/server/dist/agent-generator.js +69 -85
  285. package/server/dist/agent-mcp-config.js +17 -11
  286. package/server/dist/agent-operator-prompt.js +29 -20
  287. package/server/dist/agent-refine-manager.js +58 -38
  288. package/server/dist/ai-invocations.js +65 -20
  289. package/server/dist/attachment-manager.js +49 -15
  290. package/server/dist/blueprint-chat-manager.js +41 -16
  291. package/server/dist/blueprint-router.js +40 -6
  292. package/server/dist/chat-manager.js +165 -89
  293. package/server/dist/code-explorer-router.js +26 -7
  294. package/server/dist/contract-refine-runner.js +146 -113
  295. package/server/dist/core-compat.js +57 -2
  296. package/server/dist/core-package.js +3 -3
  297. package/server/dist/core-update-manager.js +17 -1
  298. package/server/dist/db.js +60 -5
  299. package/server/dist/desktop-analytics.js +44 -6
  300. package/server/dist/desktop-router.js +127 -11
  301. package/server/dist/explore-cwd-manager.js +19 -3
  302. package/server/dist/feature-flags.js +1 -1
  303. package/server/dist/file-story-manager.js +3 -3
  304. package/server/dist/file-summary-generator.js +21 -15
  305. package/server/dist/file-summary-manager.js +6 -6
  306. package/server/dist/framework-manager.js +19 -2
  307. package/server/dist/framework-migration.js +27 -12
  308. package/server/dist/install-config-path.js +1 -1
  309. package/server/dist/interactive-job-session.js +8 -6
  310. package/server/dist/loop-command-catalog.js +27 -10
  311. package/server/dist/loop-executors.js +59 -27
  312. package/server/dist/loop-factory.js +2 -2
  313. package/server/dist/loop-run-manager.js +100 -39
  314. package/server/dist/loops-router.js +1 -1
  315. package/server/dist/mcp/guide.js +23 -16
  316. package/server/dist/mcp/tools/agents.js +47 -41
  317. package/server/dist/mcp/tools/analytics.js +2 -2
  318. package/server/dist/mcp/tools/loops.js +2 -2
  319. package/server/dist/mcp/tools/plugins.js +14 -9
  320. package/server/dist/mcp/tools/rails.js +12 -13
  321. package/server/dist/mcp/tools/support.js +1 -1
  322. package/server/dist/mobile/mobile-router.js +5 -1
  323. package/server/dist/offline-assemble.js +13 -1
  324. package/server/dist/path-resolver.js +2 -2
  325. package/server/dist/plugin-manager.js +391 -106
  326. package/server/dist/plugins/claude-md-mutation.js +5 -4
  327. package/server/dist/plugins/drift.js +32 -29
  328. package/server/dist/plugins/rail-integration.js +13 -2
  329. package/server/dist/plugins/serena/install.js +25 -17
  330. package/server/dist/plugins/serena/manifest.js +22 -5
  331. package/server/dist/plugins/serena/verify.js +46 -16
  332. package/server/dist/plugins-router.js +59 -8
  333. package/server/dist/profile-manager.js +148 -36
  334. package/server/dist/profiles-router.js +311 -82
  335. package/server/dist/project-registry.js +2 -2
  336. package/server/dist/project-router-chat.js +17 -8
  337. package/server/dist/project-router-helpers.js +93 -5
  338. package/server/dist/project-router-jobs.js +76 -12
  339. package/server/dist/project-router-loop-runs.js +42 -14
  340. package/server/dist/project-router-settings.js +31 -10
  341. package/server/dist/project-router-setup.js +4 -5
  342. package/server/dist/project-router-spending.js +15 -3
  343. package/server/dist/project-router-tickets.js +187 -181
  344. package/server/dist/project-router.js +1 -0
  345. package/server/dist/proposal-manager.js +125 -85
  346. package/server/dist/providers/claude-adapter.js +14 -0
  347. package/server/dist/providers/codex-adapter.js +20 -0
  348. package/server/dist/providers/gemini-adapter.js +14 -0
  349. package/server/dist/providers/index.js +18 -1
  350. package/server/dist/providers/kimi-adapter.js +361 -0
  351. package/server/dist/providers/kimi-skill-prompt.js +332 -0
  352. package/server/dist/providers/runtime.js +137 -0
  353. package/server/dist/queue-manager.js +103 -78
  354. package/server/dist/rail-isolated-launch.js +1 -1
  355. package/server/dist/rails-router.js +51 -38
  356. package/server/dist/result-event.js +5 -0
  357. package/server/dist/schemas/profile.v1.json +3 -4
  358. package/server/dist/setup-manager.js +222 -101
  359. package/server/dist/setup-prerequisites.js +7 -1
  360. package/server/dist/smash-runner.js +104 -57
  361. package/server/dist/spawn-lifecycle.js +18 -14
  362. package/server/dist/spec-launcher-manager.js +66 -54
  363. package/server/dist/spec-models.js +15 -6
  364. package/server/dist/spending.js +110 -17
  365. package/server/dist/util/cli-prompt.js +142 -5
  366. package/server/dist/util/stream-display.js +46 -0
  367. package/server/dist/workspace-manager.js +100 -37
  368. package/server/dist/worktree-manager.js +4 -0
  369. package/server/dist/worktree-overlay.js +12 -3
  370. package/client/dist/assets/AgentModeCodePane-BAYyFRmY.js +0 -2
  371. package/client/dist/assets/AgentsPage-DuyJuaFs.js +0 -86
  372. package/client/dist/assets/AnalyticsPage-BY7gtCx6.js +0 -1
  373. package/client/dist/assets/CodePage-vyQr40Vl.js +0 -2
  374. package/client/dist/assets/JobDetailPage-CU4FEnUC.js +0 -1
  375. package/client/dist/assets/LoopsPage-SqglnXlp.js +0 -1
  376. package/client/dist/assets/PluginsPage-B89S8o1a.js +0 -2
  377. package/client/dist/assets/TicketDetailModal-CI47Dq9E.js +0 -14
  378. package/client/dist/assets/addspec-BXjvkh5q.js +0 -1
  379. package/client/dist/assets/addspec-C4bwrmpi.js +0 -1
  380. package/client/dist/assets/addspec-CArHXUDM.js +0 -1
  381. package/client/dist/assets/addspec-DTKJcXiR.js +0 -1
  382. package/client/dist/assets/addspec-DbNBbrha.js +0 -1
  383. package/client/dist/assets/addspec-Rw8uVBC1.js +0 -1
  384. package/client/dist/assets/addspec-htHGZHOe.js +0 -1
  385. package/client/dist/assets/addspec-lr_LP6jk.js +0 -1
  386. package/client/dist/assets/agent-BABjRt0P.js +0 -1
  387. package/client/dist/assets/agent-BuUpgqVx.js +0 -1
  388. package/client/dist/assets/agent-CCDZesgU.js +0 -1
  389. package/client/dist/assets/agent-CVn64zWH.js +0 -1
  390. package/client/dist/assets/agent-CWeOny0E.js +0 -1
  391. package/client/dist/assets/agent-DOysmad_.js +0 -1
  392. package/client/dist/assets/agent-DSsjTBhn.js +0 -1
  393. package/client/dist/assets/agent-DlZMxfM9.js +0 -1
  394. package/client/dist/assets/agents-6ZOJXWVk.js +0 -1
  395. package/client/dist/assets/agents-BZ0XQKjg.js +0 -1
  396. package/client/dist/assets/agents-BqWklnHR.js +0 -1
  397. package/client/dist/assets/agents-Bz-thHkB.js +0 -1
  398. package/client/dist/assets/agents-CJclElx6.js +0 -1
  399. package/client/dist/assets/agents-D_l9L0VA.js +0 -1
  400. package/client/dist/assets/agents-DhG7mg6-.js +0 -1
  401. package/client/dist/assets/agents-u_C0jPB5.js +0 -1
  402. package/client/dist/assets/agentstudio-BF19hbXj.js +0 -1
  403. package/client/dist/assets/agentstudio-BIUe1Im2.js +0 -1
  404. package/client/dist/assets/agentstudio-BLGvxWBx.js +0 -1
  405. package/client/dist/assets/agentstudio-D9UKiWTj.js +0 -1
  406. package/client/dist/assets/agentstudio-Drs37nIM.js +0 -1
  407. package/client/dist/assets/agentstudio-nEnKkcXM.js +0 -1
  408. package/client/dist/assets/agentstudio-pyFcSBKy.js +0 -1
  409. package/client/dist/assets/agentstudio-zfTzQh3U.js +0 -1
  410. package/client/dist/assets/analytics-BC7mwR4s.js +0 -1
  411. package/client/dist/assets/analytics-BiNg8edP.js +0 -1
  412. package/client/dist/assets/analytics-C0s_T2GN.js +0 -1
  413. package/client/dist/assets/analytics-CdsAPAwZ.js +0 -1
  414. package/client/dist/assets/analytics-Cr1_q-lC.js +0 -1
  415. package/client/dist/assets/analytics-DZ8Aoq3I.js +0 -1
  416. package/client/dist/assets/analytics-IEsKZvpW.js +0 -1
  417. package/client/dist/assets/analytics-SRPf84OT.js +0 -1
  418. package/client/dist/assets/builder-BH8Fua-g.js +0 -1
  419. package/client/dist/assets/builder-BoV7DgKd.js +0 -1
  420. package/client/dist/assets/builder-Cc_Lf79C.js +0 -1
  421. package/client/dist/assets/builder-CwZ7Bme2.js +0 -1
  422. package/client/dist/assets/builder-CxW-JFsR.js +0 -1
  423. package/client/dist/assets/builder-D94lrV7x.js +0 -1
  424. package/client/dist/assets/builder-cqHpCyGa.js +0 -1
  425. package/client/dist/assets/code-76gS0IdL.js +0 -1
  426. package/client/dist/assets/code-BDXEM4ml.js +0 -1
  427. package/client/dist/assets/code-C1VwxlML.js +0 -1
  428. package/client/dist/assets/code-CnMZyJpr.js +0 -1
  429. package/client/dist/assets/code-D20ef9Cf.js +0 -1
  430. package/client/dist/assets/code-DdOXaWRY.js +0 -1
  431. package/client/dist/assets/code-Duohuf9l.js +0 -1
  432. package/client/dist/assets/code-geHmknB9.js +0 -1
  433. package/client/dist/assets/format-command-Dfa1o2d-.js +0 -1
  434. package/client/dist/assets/index-Dh9i4CnN.css +0 -2
  435. package/client/dist/assets/index-F9r8mWP_.js +0 -76
  436. package/client/dist/assets/jobs-BCtGfgUA.js +0 -1
  437. package/client/dist/assets/jobs-BHR_EnDI.js +0 -1
  438. package/client/dist/assets/jobs-BMbZJjJJ.js +0 -1
  439. package/client/dist/assets/jobs-DzSIR8V6.js +0 -1
  440. package/client/dist/assets/nav-BRJBxaGt.js +0 -1
  441. package/client/dist/assets/nav-CAGKv3_F.js +0 -1
  442. package/client/dist/assets/nav-CNskRJKQ.js +0 -1
  443. package/client/dist/assets/nav-DY93irBL.js +0 -1
  444. package/client/dist/assets/nav-DhjvYgqt.js +0 -1
  445. package/client/dist/assets/nav-Gb-r4wop.js +0 -1
  446. package/client/dist/assets/nav-TvumAFD2.js +0 -1
  447. package/client/dist/assets/nav-myFaXRHD.js +0 -1
  448. package/client/dist/assets/settings-B0ypw9uw.js +0 -1
  449. package/client/dist/assets/settings-B9ilOSYO.js +0 -1
  450. package/client/dist/assets/settings-BqlWHRHA.js +0 -1
  451. package/client/dist/assets/settings-D8dlqt4d.js +0 -1
  452. package/client/dist/assets/settings-DAZqjX2a.js +0 -1
  453. package/client/dist/assets/settings-DRh39v1S.js +0 -1
  454. package/client/dist/assets/settings-Mj1OJbfd.js +0 -1
  455. package/client/dist/assets/settings-lRReaSYm.js +0 -1
  456. package/client/dist/assets/setup-3832BJCo.js +0 -1
  457. package/client/dist/assets/setup-B8J-gECe.js +0 -1
  458. package/client/dist/assets/setup-BCIOxVsc.js +0 -1
  459. package/client/dist/assets/setup-BciLj_tU.js +0 -1
  460. package/client/dist/assets/setup-CTkE3cfh.js +0 -1
  461. package/client/dist/assets/setup-ajB4rYm-.js +0 -1
  462. package/client/dist/assets/setup-xFO1wNl0.js +0 -1
@@ -1,16 +1,20 @@
1
- # AI プロバイダー(Claude、Codex、Gemini)
1
+ # AI プロバイダー(Claude、Codex、Gemini、Kimi)
2
2
 
3
- Specrails は特定の AI に縛られません。アプリの中で AI とやり取りするすべての部分 — Explore Spec、クイックスペック、レール、チャット、AI 編集、ターミナルの「Open AI CLI」ボタン — は、3 つのファーストクラスなプロバイダーのいずれかを通して動かせます。プロジェクトごとにどのプロバイダーを使うかを選べますし、タスク単位で切り替えることもできます。
3
+ Specrails は特定の AI に縛られません。Claude、Codex、Gemini、Kimi
4
+ はファーストクラスのプロバイダーで、各画面には必要な capability
5
+ を満たすエンジンだけが表示されます。
4
6
 
5
- ## 3 つのプロバイダー
7
+ ## 4 つのプロバイダー
6
8
 
7
9
  | プロバイダー | CLI | 提供元 | 備考 |
8
10
  |---|---|---|---|
9
- | **Claude** | `claude` | Anthropic | 最も機能が充実しています。エージェント(プロファイル)と Freestyle レール、そして Contract Refine を使えるのは Claude だけです。 |
11
+ | **Claude** | `claude` | Anthropic | ネイティブコストと永続的な対話 transport。 |
10
12
  | **Codex** | `codex` | OpenAI | codex `0.128.0+` が必要です。MCP サーバーはグローバルな `~/.codex/config.toml` から読み込みます。 |
11
13
  | **Gemini** | `gemini` | Google | gemini `0.11.0+` が必要です。ネイティブのテレメトリと `GEMINI.md` 指示ファイルを使用します。 |
14
+ | **Kimi Code** | `kimi` | Moonshot AI | Kimi `0.27.0+` が必要です。Desktop は外部 CLI を `-p` で起動し、server をインストール・起動しません。 |
12
15
 
13
- 3 つとも**デフォルトで有効**です。プロバイダーは、その CLI がインストールされていて `PATH` 上にあれば **Add Project** に表示されます。ですので、最初のステップはいつも同じです。使いたい CLI をインストールし、そのツール自身のドキュメントの手順どおりにログインしてください。ターミナルで `claude --version`(または `codex`、`gemini`)が動くようになれば、Specrails はそれを使えるようになります。
16
+ 4 つとも**デフォルトで有効**です。CLI が `PATH` にあれば表示されます。
17
+ Kimi は `kimi --version` を確認し、`kimi login` を実行してください。
14
18
 
15
19
  ## プロジェクトに 1 つのプロバイダーをインストールする
16
20
 
@@ -25,40 +29,46 @@ Specrails は特定の AI に縛られません。アプリの中で AI とや
25
29
  マルチプロバイダーのプロジェクトについて、知っておくとよいことがいくつかあります。
26
30
 
27
31
  - **プロバイダーが 1 つなら、これまでとまったく同じ挙動です。** プロジェクトにプロバイダーが 1 つしかなければ、プロバイダーの選択 UI はどこにも表示されません — アプリはすっきりシンプルなままです。
28
- - **右サイドバーには、インストール済みのすべてのプロバイダーが対応しているセクションだけが表示されます。** エージェント(プロファイル)は Claude 専用の概念なので、プロジェクトに Claude 以外のプロバイダーが含まれた瞬間に **Agents** セクションは消えます。それ以外(Specs、Code、Analytics、Integrations、Terminal、Chat)はそのまま残ります。
32
+ - **UI は capability に従います。** Claude と Kimi はプロバイダー別の
33
+ profile に対応し、Codex と Gemini は legacy mode で実行します。
29
34
  - **プロバイダーの選択は作成後に固定されます。** このバージョンでは、プロジェクトを追加するときにプロバイダーを選び、あとから設定で変更することはできません。別の組み合わせが必要になったら、新しいプロジェクトを作成してください。
30
35
 
31
36
  ## 呼び出しごとにプロバイダーを選ぶ
32
37
 
33
38
  マルチプロバイダーのプロジェクトの真価は、グローバル設定を一切変えずに、タスクごとに最適な AI を選べることにあります。AI が動くところには、小さなプロバイダー選択 UI が現れます(プロジェクトに複数のプロバイダーがあるときだけです)。
34
39
 
35
- - **Add Spec** — エンジンセレクターで、好きなプロバイダーを使ってスペックを Explore したりクイック生成したりできます。
40
+ - **Add Spec** — Explore は Kimi に対応します。Quick Spec は安全な
41
+ pure-output 境界を持つプロバイダーだけを表示するため、Kimi は除外されます。
36
42
  - **レールのヘッダー** — その特定のレールを起動する前に、使うエンジンを選べます。
37
43
  - **ターミナル** — 「Open AI CLI」(Sparkles)ボタンを押すとプロバイダーメニューが開き、そのプロジェクトのディレクトリで任意のインストール済み CLI に入れます。
38
44
 
39
45
  選んだエンジンはプロジェクトごとに記憶され、デフォルトはプライマリプロバイダーです。毎回選び直す必要はありません。
40
46
 
41
- ## Claude だけができること
47
+ ## Capability の違い
42
48
 
43
- いくつかの機能はその性質上 Claude 専用なので、ほかのプロバイダーが使われているときは非表示になるかスキップされます。
49
+ Kimi は Project/Agent Chat、Explore/proposal、Quick Launcher
50
+ (`/opsx:ff`)、rail、Freestyle、Decider のない loop、profile/手動 role、
51
+ MCP、Serena、terminal、attachment に対応します。
44
52
 
45
- - **エージェント(プロファイル)** — プロジェクトごとのエージェントカタログとモデルルーティング。Claude 以外のプロバイダーを含むプロジェクトでは非表示になります。
46
- - **Freestyle レール** — 常に Claude で実行されます。
47
- - **Contract Refine** — コミット済みスペックに対する「Contract Layer」の追加パスは、会話のプロバイダーが Claude のときだけ実行されます。
48
- - **Add Spec の高度なモード**(SMASH / Contract Layer) — Claude 以外のエンジンでは非表示になります。
49
-
50
- それ以外 — Explore、クイックスペック、レールパイプライン全体、AI 編集、チャット、コストのアナリティクス — は 3 つすべてで動作します。
53
+ `kimi -p` は tool を自動承認し、no-tools/read-only 境界を強制できません。
54
+ そのため Quick Spec、AI Edit、Contract Refine、SMASH/Re-SMASH、
55
+ Project Builder の blueprint/milestone 生成、Loop Decider、file summary/
56
+ construction story、Agent Studio automation は spawn 前に拒否されます。
57
+ AI auto-title は deterministic fallback を使います。詳細は
58
+ [Kimi guide](../../../kimi.md) を参照してください。
51
59
 
52
60
  ## プロバイダー横断のコスト追跡
53
61
 
54
- **Analytics** ページは、プロバイダーに関係なく、課金対象となるすべての呼び出しを追跡します。マルチプロバイダーのプロジェクトでは、エンジンのフィルターチップが追加され、プロバイダーごとに支出を比較できます。Claude は自身の正確なコストを報告しますが、Codex と Gemini については、Specrails が組み込みの料金表からコストを推定します。そのため、これらの数値は請求額そのものではなく、おおよその近似値です。
62
+ **Analytics** は実際に起動した invocation を記録します。Claude は
63
+ cost を報告し、Codex/Gemini は推定値です。Kimi は authoritative な
64
+ token/USD cost を報告しないため、その項目は空欄です。
55
65
 
56
66
  ## トラブルシューティング
57
67
 
58
- - **インストールしたプロバイダーが表示されない。** その CLI が `PATH` 上にあるか確認してください(新しいターミナルで `claude --version` / `codex --version` / `gemini --version` を試してみてください)。アプリはシステムの `PATH` を通してプロバイダー CLI を検出します。
68
+ - **インストールしたプロバイダーが表示されない。** `claude --version` / `codex --version` / `gemini --version` / `kimi --version` を確認してください。
59
69
  - **チャットで Codex の MCP サーバーが読み込まれない。** Codex は MCP サーバーをグローバルな `~/.codex/config.toml` から読み込みます — `codex mcp add` でそこに登録してください。
60
70
  - **緊急時の無効化。** プロバイダーは環境変数(`SPECRAILS_CODEX_BETA=0` または `SPECRAILS_GEMINI_BETA=0`)でアプリ全体から無効にできます。これはプロバイダーを*選択肢*から隠すだけで、めったに必要にはなりません。
61
71
 
62
72
  ## 関連項目
63
73
 
64
- 各 CLI をさらに詳しく解説した専用のプロバイダーガイドがあります。Codex ガイドと Gemini ガイドでは、それぞれセットアップ方法、使える機能、プロバイダー固有のクセを取り上げています。
74
+ [Kimi guide](../../../kimi.md)、Codex guide、Gemini guide を参照してください。
@@ -21,7 +21,7 @@
21
21
  3. プラグインをクリックして**インストールのプレビュー**を確認します — 何かが起こる前に、どのファイルが変更されるのかを正確に確認できます。
22
22
  4. **Install** をクリックします。セットアップの進行状況がリアルタイムで表示されます。
23
23
 
24
- 内部的には、インストールは*外科的かつ追加的*です。プロジェクトの `.mcp.json`(および一部のプラグインでは、保護された `.claude/agents/` 名前空間内のフラグメントファイル)に、自分自身のエントリだけを追加します。設定全体を書き換えることは決してなく、2 つ目のプラグインを追加しても 1 つ目を乱すことはありません。インストールが自身の正常性を検証できなかった場合は、きれいにロールバックされます。
24
+ 内部のインストールは*外科的かつ追加的*です。選択 provider の native MCP 設定(Claude の一部では `.claude/agents/` の fragment も)に自分の entry だけを加えます。設定全体は書き換えず、検証に失敗すれば clean に rollback します。
25
25
 
26
26
  ## インストール済みプラグインを管理する
27
27
 
@@ -37,8 +37,8 @@
37
37
 
38
38
  ## プロバイダーに関する注意
39
39
 
40
- プラグインはプロバイダーを意識します。Serena のような MCP プラグインは、プロジェクトの `.mcp.json` を通して MCP を登録するプロバイダー(Claude と Gemini)で解決されます。Codex のプロジェクトでは、MCP サーバーは Codex 自身のグローバル設定で管理されるため、**Integrations** 内のプラグインエントリはそれに応じてフィルタリングされます。Integrations 内の Jira カードはプロバイダーに依存せず、誰にでも表示されます — Jira ガイドを参照してください。
40
+ Plugin は provider-aware です。Serena は Claude の `.mcp.json`、project ごとに分離した `CODEX_HOME` での `codex mcp add`、Kimi の `.kimi-code/mcp.json` をサポートします。Manifest が provider を宣言したときだけ表示されるため、Gemini には Serena は提供されません。Jira card は provider 非依存です。
41
41
 
42
42
  ## 予約ファイル
43
43
 
44
- プラグインは、プロジェクト内の小さく明確に定義されたファイル群を管理します。`.mcp.json`(外科的にマージされます)、`.specrails/plugins/` 配下の一部の状態、そして `.claude/agents/custom-<plugin>.md` にあるプラグインごとのエージェントフラグメントです。インテグレーションをチームと共有したい場合、これらはコミットできるチーム資産です — アプリがこれらを無造作に上書きすることは決してありません。
44
+ Plugin は provider の native MCP 設定、`.specrails/plugins/` の state、必要な Claude plugin の `.claude/agents/custom-<plugin>.md` だけを管理します。Kimi entry は `.kimi-code/mcp.json` に置かれ、Kimi に Claude-only fragment を書いたり設定を無造作に上書きしたりしません。
@@ -22,7 +22,13 @@ Agent Chat は組み込みの **Specrails MCP サーバー**を通じてアプ
22
22
 
23
23
  ## プロバイダーとモデル
24
24
 
25
- メッセージ欄のすぐ上で、**プロバイダー**(Claude、Codex、Gemini)とその**モデル**を選びます。各プロバイダーには独自のモデル一覧があり、プロバイダーを切り替えるとそのプロバイダーの既定モデルで新しいセッションが始まります——ですから、たとえば Claude でアプリを操作しつつ、別の会話では Codex に切り替える、といったことが何も混ざらずにできます。
25
+ メッセージ欄のすぐ上で、**プロバイダー**(Claude、Codex、Gemini、
26
+ Kimi)とその**モデル**を選びます。切り替えると別 session が開始します。
27
+
28
+ Kimi では level は Specrails MCP tool を制限しますが、`kimi -p` 自体を
29
+ sandbox にはしません。native tool は自動承認されます。安全でない
30
+ pure-output action は spawn 前に拒否されます。詳細は
31
+ [Kimi matrix](../../../kimi.md) を参照してください。
26
32
 
27
33
  ## 権限レベル——手綱はあなたが握る
28
34
 
@@ -35,8 +35,8 @@ SpecsBoard(左) レール(右)
35
35
  | **ステータスピル** | `idle`、`running`、`failed` のいずれか。「completed」という別ステータスはありません — ジョブがきれいに完了すると、レールは `idle` に戻ります。 |
36
36
  | **スペック一覧** | このレールに割り当てられた ID。さらにドラッグして追加したり、ドラッグして外したりできます。 |
37
37
  | **Loop ピッカー** | このレールが実行する Loop — 組み込み(`Implement` / `Batch` / `Freestyle`)かカスタム Loop。下の表を参照してください。レールごとに保持されます。 |
38
- | **プロファイルピッカー** | どのエージェントプロファイルを実行するか(Claude レール限定)。プロジェクトにプロファイルが 1 つ以上あるときだけ表示されます。 |
39
- | **エンジンセレクター** | このレールをどのインストール済みプロバイダーで実行するか — Claude、Codex、Gemini。プロジェクトに複数のプロバイダーがある場合だけ表示されます。[レールごとのエンジン選択](picking-an-engine-per-rail) を参照してください。 |
38
+ | **プロファイルピッカー** | 実行する provider profile(Claude/Kimi rail)。 |
39
+ | **エンジンセレクター** | rail を実行する provider — Claude、Codex、Gemini、Kimi。 |
40
40
  | **▶ Play / ■ Stop** | 開始またはキャンセル。 |
41
41
 
42
42
  ### レールが実行するもの: Loop
@@ -47,9 +47,11 @@ SpecsBoard(左) レール(右)
47
47
  |------|---------|--------------|
48
48
  | **Implement** | `/specrails:implement` | レール上のすべてのスペックをまとめた 1 つのジョブ。Architect → Developer → Reviewer → Ship のフルパイプラインを実行します。日常的に使うデフォルトです。 |
49
49
  | **Batch** | `/specrails:batch-implement` | レール上のスペックを、依存関係を考慮したウェーブで順番に処理する 1 つのジョブ。関連する複数のスペックに最適です。 |
50
- | **Freestyle** | Freestyle | Claude が各スペックをパイプラインを**バイパス**して自律的に実装します。スペックごとに独立したジョブが 1 つずつ作られます。Claude 専用。 |
50
+ | **Freestyle** | Freestyle | Claude または Kimi が pipeline を**バイパス**して自律的に実装します。 |
51
51
 
52
- Freestyle は少し毛色が違います。エージェントチェーンを飛ばし、生のスペックを Claude に渡してネイティブツールで作業させます。自由度が高いぶん、Play を押すとまず確認ダイアログが開き、レールごとのモデルピッカーで Haiku / Sonnet / Opus を選べます。Freestyle はレールのエンジンが Claude のときだけ表示されます。さらに Freestyle の実行は、**あなたを待って開き続ける**唯一のジョブでもあります。ジョブ詳細のコンポーザーから会話し、満足したら **Finalize** をクリックしてください(それ以外のジョブはすべて自分で締めくくります)。
52
+ Freestyle は provider の native tool/model を使います。Claude は
53
+ persistent interactive transport、Kimi は persistent stdin のない agentic
54
+ `kimi -p` process を使います。
53
55
 
54
56
  組み込みのほかにも、**自分だけの Loop を作る** ことができます — verify → fix → verify のサイクルを目標が達成されるまで繰り返したり、AI ステップの間にシェルコマンドを連ねたり、さらにいろいろなことができます。そうしたカスタム Loop は同じ Loop ピッカーに表示されます。それが次の大きなアイデア、[Loop Builder](the-loop-builder) です。
55
57
 
@@ -81,7 +83,8 @@ git のないプロジェクトでは worktree 隔離も PR 継続も使えま
81
83
 
82
84
  ## レールが起動しないとき
83
85
 
84
- CLI がマシンにインストールされていないエンジンを選ぶと、起動は壊れたジョブを始めるのではなく **即座に失敗** します — 何も生成されません。足りないプロバイダー CLI をインストールして([Codex を使う](../integrations/using-codex)、[Gemini を使う](../integrations/using-gemini))、もう一度起動してください。Claude や Codex が見つからない場合は「*&lt;provider&gt; CLI not found*」という正確なメッセージが出ます。Gemini が見つからない場合は現時点では一般的な起動エラーが表示されますが、結果は同じです。
86
+ 選択した CLI がなければ spawn 前に失敗します。Kimi は `kimi`
87
+ 0.27+ を install/login してください。Desktop は server を起動しません。
85
88
 
86
89
  ## すべてを止める
87
90
 
@@ -96,4 +99,4 @@ CLI がマシンにインストールされていないエンジンを選ぶと
96
99
  - [Loop Builder](the-loop-builder) — レールが実行するもの、そして自分だけの Loop を作る方法。
97
100
  - [ジョブ詳細ビュー](the-job-detail-view) — フェーズ、ライブメトリクス、チケットカード。
98
101
  - [バッチ実装とマルチフィーチャー](batch-implement-and-multi-feature) — 複数のスペックをまとめて実行する。
99
- - [レールごとのエンジン選択](picking-an-engine-per-rail) — Claude / Codex / Gemini の使い分け。
102
+ - [レールごとのエンジン選択](picking-an-engine-per-rail) — Claude / Codex / Gemini / Kimi。
@@ -94,7 +94,9 @@ Architect ──► Developer ──► Reviewer ──► Ship
94
94
  - **合計の行は本物です。** コンポーザーはライブの `N ターン · $X` サマリーを表示します。完了した各ターンの実際の使用量を合算したもので、このページの「推測しない」という約束と一貫しています。
95
95
  - **セッションの終わり方は 2 通り。** ほとんどのジョブは**自分で締めくくります**。キューにメッセージが残っていない状態でターンが終わった瞬間、セッションは自ら落ち着き、ジョブは完了します — あなたのメッセージは任意の舵取りであって、義務ではありません。控えめな**今すぐ締めくくる**アクションで、それまでの成果を保ったまま早めに終わらせることもできます。**Freestyle** ジョブだけは例外です。ターンの合間で待機し、あなたが **Finalize** をクリックするまで開き続けます — あなたが閉じる往復のセッション、それが Freestyle の設計です。
96
96
  - **Loop 実行では、メッセージはアクティブなステップに届きます。** 組み込みでもカスタムでも、Loop 上ではメッセージは**いままさに実行中の AI ステップ**に届きます。ステップの合間(Loop Decider が考えている間や、シェルコマンドの実行中)には、コンポーザーは*「次のステップを待っています…」*という短い待機状態を表示します — 下書きのテキストは保持され、次の AI ステップが始まると送信が再び有効になります。**このステップを確定**すると現在のステップを早めに終わらせ、その成果とともに Loop を先へ進められます。
97
- - **今のところ Claude のみ。** Codex と Gemini のジョブは従来どおりワンショットで実行されます — コンポーザーは表示されません。(サーバー運用者は `SPECRAILS_INTERACTIVE_JOBS=false` で機能全体を無効化できます。)
97
+ - **persistent interaction は Claude のみです。** Codex、Gemini、Kimi は
98
+ one-shot です。Kimi chat は resume hint 後に新しい `kimi --session=<id> -p` で
99
+ resume します。
98
100
 
99
101
  ## 診断のエクスポート
100
102
 
@@ -81,4 +81,4 @@ Batch モードは、関連するスペックを*順番に処理する*一番す
81
81
 
82
82
  - [レールとジョブ](rails-and-jobs) — キューモデルを掘り下げて。
83
83
  - [ジョブ詳細ビュー](the-job-detail-view) — バッチ実行をライブで見守る。
84
- - [レールごとのエンジン選択](picking-an-engine-per-rail) — Batch はどのプロバイダーでも動きますが、Freestyle は Claude 専用である点に注意。
84
+ - [レールごとのエンジン選択](picking-an-engine-per-rail) — Batch はすべてのプロバイダーで動き、Freestyle は Claude と Kimi で利用できます。
@@ -1,6 +1,8 @@
1
1
  # レールごとのエンジン選択
2
2
 
3
- Specrails desktop は **Claude Code**、**Codex CLI**、**Gemini CLI** をいずれも一級のエンジンとして扱います。プロジェクトには 1 つ、2 つ、あるいは 3 つすべてをインストールできます — そして複数がある場合は、各レールをどのエンジンで実行するかをあなたが選びます。このページでは、レールごとのエンジンセレクターと、それぞれをどんなときに選ぶべきかを扱います。
3
+ Specrails desktop は **Claude Code**、**Codex CLI**、**Gemini CLI**、
4
+ **Kimi Code** を一級の engine として扱います。compatible な組み合わせを
5
+ install できます。
4
6
 
5
7
  ## セレクターが現れるとき
6
8
 
@@ -13,30 +15,27 @@ Specrails desktop は **Claude Code**、**Codex CLI**、**Gemini CLI** をいず
13
15
  ## エンジンの選び方
14
16
 
15
17
  1. レールのエンジンセレクターが表示されていることを確認します(プロジェクトにプロバイダーが 2 つ以上)。
16
- 2. クリックして **Claude**、**Codex**、**Gemini** のいずれかを選びます。
18
+ 2. **Claude**、**Codex**、**Gemini**、**Kimi** を選びます。
17
19
  3. **▶ Play** でレールを起動します。
18
20
 
19
21
  選んだエンジンが、そのレールのパイプラインの全フェーズを実行します。選んだエンジンの CLI がインストールされていない場合、起動は即座に失敗します — 何も生成されません。足りない CLI をインストールして、もう一度試してください。
20
22
 
21
23
  ## それぞれのエンジンが得意なこと
22
24
 
23
- 3 つすべてが、標準の **Implement** と **Batch** のパイプラインを実行します。選び方の実用的なガイドはこちらです。
25
+ 4 つすべてが **Implement** と **Batch** を実行します。
24
26
 
25
27
  | エンジン | こんなときに | 補足 |
26
28
  |--------|--------------------|-------|
27
- | **Claude** | フルの機能セットがほしいとき: エージェントプロファイル、Freestyle、ネイティブのコスト報告、最も充実したツールサポート。たいていの作業のデフォルト。 | **エージェントプロファイル**、**Freestyle**、いくつかの Claude 専用スペック機能(Contract Layer、SMASH)をサポートする唯一のエンジン。 |
29
+ | **Claude** | native cost、persistent interaction、strict tool policy が必要。 | Profile、Freestyle、structured transform。 |
28
30
  | **Codex** | OpenAI Codex CLI を好むとき、あるいはプロバイダー間で実装を比べたいとき。 | `codex` ≥ 0.128.0。ネイティブのコスト報告なし — アプリが料金表からコストを補います。プロファイルは適用されません。 |
29
31
  | **Gemini** | Google の Gemini CLI を使いたいとき、ネイティブのテレメトリがほしいとき、あるいは日常的なスペックを安く実行したいとき。 | `gemini` ≥ 0.11.0(`GEMINI_API_KEY` を設定)。ネイティブの OTLP テレメトリ。プロファイルは適用されません。 |
32
+ | **Kimi** | Implement、Batch、Freestyle、Decider のない loop に agentic Kimi を使う。 | 外部 `kimi` ≥ 0.27.0。Profile/role、effort は K3 のみ。token/cost は unavailable。 |
30
33
 
31
- ### Claude 専用の機能
34
+ ### Capability の違い
32
35
 
33
- いくつかの機能は Claude レールでしか動きません — 必要なら Claude を選んでください。
34
-
35
- - **エージェントプロファイル** — エージェントごとのモデルルーティング。Codex や Gemini のレールでは、実行は常にレガシーモードになり、選んだプロファイルは **無視されます**。プロファイルピッカーは Claude 以外のエンジンでは非表示になります。
36
- - **Freestyle** — 自律的でパイプラインをバイパスするモード。`Freestyle` セグメントと、その Haiku/Sonnet/Opus のモデルピッカーは、レールのエンジンが Claude のときだけ表示されます。
37
- - **Contract Layer と SMASH** — Claude 専用のスペック改良機能(これらはレールのオプションではなく Add-Spec のオプションですが、同じ制約が当てはまります)。
38
-
39
- プロジェクトが複数のエンジンを混在させると、右サイドバーにはインストール済みの **すべての** プロバイダーがサポートするセクションだけが表示されます — つまり、Claude 以外のプロバイダーを含むプロジェクトでは **エージェント** セクションがまるごと消えます。プロファイルは Claude 固有のものだからです。
36
+ Claude/Kimi は Profile と Freestyle、Codex/Gemini は legacy。Kimi は
37
+ Loop Decider と [Kimi guide](../../../kimi.md) の pure-output transform
38
+ を拒否します。Claude/Kimi Profile は分離されます。
40
39
 
41
40
  ## 実用的なワークフロー
42
41
 
@@ -49,12 +48,14 @@ Specrails desktop は **Claude Code**、**Codex CLI**、**Gemini CLI** をいず
49
48
  ## 覚えておきたいこと
50
49
 
51
50
  - **プロバイダーの選択はプロジェクト作成後は変更できません**(v1)。インストールするプロバイダーはプロジェクトを追加するときに選びます。あとから追加・削除する設定トグルはありません。
52
- - **コストは常に追跡されます。** ネイティブのコスト報告を持たないエンジンでも、アプリが料金表にフォールバックするので、Codex や Gemini の実行も [分析](../analytics/tracking-cost) に表示されます。
51
+ - **available metrics は記録されます。** Kimi は authoritative token/
52
+ USD cost を報告しないため空欄です。
53
53
  - **ターミナルの「Open AI CLI」ボタン** も、複数プロバイダーのプロジェクトではプロバイダーピッカーを表示します。自分の手で CLI を動かしたいときにどうぞ。
54
54
 
55
55
  ## 次に読むもの
56
56
 
57
57
  - [Codex を使う](../integrations/using-codex) — インストールとサインイン。
58
58
  - [Gemini を使う](../integrations/using-gemini) — インストール、`GEMINI_API_KEY`、テレメトリ。
59
+ - [Kimi を使う](../../../kimi.md) — install と capability matrix。
59
60
  - [レールとジョブ](rails-and-jobs) — キューと起動の流れ。
60
61
  - [コストの追跡](../analytics/tracking-cost) — エンジンごとのコスト内訳。
@@ -17,7 +17,7 @@
17
17
 
18
18
  - Loop は **Loops** セクション(左サイドバー、プロジェクトの隣)にあります — これらは **グローバル** で、すべてのプロジェクトで共有されます。
19
19
  - レールはヘッダー(Loop ピッカー)で **Loop を選び**、Play を押すとそれを実行します。
20
- - プロバイダー、モデル、推論の労力(reasoning effort)を決めるのは **レール** であって、Loop のステップではありません。同じ Loop が、レール次第で Claude、Codex、Gemini のいずれでも実行されます。
20
+ - provider、model、compatible effort は **rail** が決めます。compatible な Loop は Claude、Codex、Gemini、Kimi で実行できます。
21
21
 
22
22
  つまり、Loop を一度作ってしまえば、どのプロジェクトのどのレールでもそれを選べます。
23
23
 
@@ -41,6 +41,10 @@ Loop は **ノード** を **エッジ**(矢印)でつないだグラフで
41
41
 
42
42
  エッジはステップを順番につなぎます。**Loop Decider** には **continue** と **stop** という 2 つのラベル付き出力があるので、「まだ終わっていない」を作業へ配線して戻し、「終わった」を End へ配線して出します。
43
43
 
44
+ > **Kimi は AI/shell step の loop に対応しますが、Loop Decider には
45
+ > 対応しません。** verdict は pure-output で、`kimi -p` は no-tools
46
+ > 境界を強制できません。run は最初の step より前に拒否されます。
47
+
44
48
  ### ステップのテキストを書く
45
49
 
46
50
  AI Step や Decider の中では、次のものを参照できます。
@@ -57,7 +61,7 @@ AI Step や Decider の中では、次のものを参照できます。
57
61
  |-------|--------------|
58
62
  | **Max iterations** | Decider が判断にかかわらずループバックできる回数のハードキャップ。 |
59
63
  | **Timeout (min)** | 実行全体に対する実時間(壁時計)の上限。 |
60
- | **Max cost ($)** | *任意。* 累積コストが予算を超えた時点で Loop を停止します。**ステップとステップの間** でチェックされるため(あるステップのコストはそれが終わってからしかわかりません)、1 ステップ分だけオーバーシュートすることがあります。Claude ではコストは正確で、Codex と Gemini では見積もりです。上限を設けないなら空のままにしておきます。 |
64
+ | **Max cost ($)** | *任意。* Claude は cost、Codex/Gemini は estimate。Kimi は authoritative USD cost を報告しません。 |
61
65
 
62
66
  ## 自信を持って組み立てる
63
67
 
@@ -2,6 +2,10 @@
2
2
 
3
3
  クイックモードは、やりたいことがすでにわかっているときのためのモードです。アイデアを入力すれば AI がスペック全文を書き上げ、**Todo** としてボードに着地します。やり取りは不要。記述したら、あとは進むだけです。
4
4
 
5
+ > **Kimi は Quick Spec では利用できません。** `kimi -p` はこの
6
+ > pure-output 境界を強制できないため、spawn 前に拒否されます。Explore、
7
+ > Raw、または Quick Launcher(`/opsx:ff`)を使ってください。
8
+
5
9
  ## クイックモードでスペックを作成する
6
10
 
7
11
  すばやくスペックを作成するには、次の手順で進めます。
@@ -19,7 +23,8 @@
19
23
 
20
24
  **モデル** — デフォルトでは AI が手頃なモデルを選びます。より速いモデルやより高性能なモデルを使いたい場合は、モデルピッカーからスペックごとに上書きできます。
21
25
 
22
- **エンジン** — プロジェクトに複数の AI プロバイダー(Claude・Codex・Gemini のいずれかの組み合わせ)がインストールされている場合、ダイアログ上部にエンジンセレクターが現れ、このスペックをどのエンジンで生成するか選べます。選んだ内容はプロジェクトごとに記憶されます。プロバイダーが 1 つだけのプロジェクトでは、選ぶ余地がないため表示されません。
26
+ **エンジン** — セレクターには **compatible** なプロバイダーだけが
27
+ 表示され、Quick Spec では Kimi は除外されます。
23
28
 
24
29
  **コンテキスト** — クイックモードは通常 1 ターンで動きます。あなたの説明からスペックを書くだけなら、コードベースを読む必要がないからです。ただし、コンテキストスライダーを使えば、AI が参照できる材料を増やせます。
25
30
 
@@ -37,7 +37,11 @@ A seleção do perfil acontece mesmo onde lança — no **cabeçalho do rail**,
37
37
 
38
38
  ## Quando a secção Agentes está silenciosa
39
39
 
40
- Os perfis são uma capacidade do Claude. Num projeto que inclua um provider que não seja o Claude (Codex ou Gemini), a secção Agentes fica oculta e os rails correm sem perfis — isso é esperado, não é um bug. Os perfis também exigem uma versão suficientemente recente do `specrails-core` no projeto; se for mais antiga, verá um banner amarelo. Os perfis que criar continuam a ser **guardados** — apenas não afetam o pipeline até o core ser atualizado. Atualize com o comando indicado no banner para os desbloquear.
40
+ Os perfis são separados por provider. Claude e Kimi suportam perfis/roles;
41
+ Codex e Gemini usam modo legacy. Em projetos mistos o mesmo nome não atravessa
42
+ Claude/Kimi. Kimi permite roles manuais, mas generation, smoke test e AI
43
+ Refine do Agent Studio são recusados antes do spawn. Kimi exige
44
+ `specrails-core` 4.12.0 ou mais recente.
41
45
 
42
46
  ## Para onde ir a seguir
43
47
 
@@ -11,21 +11,24 @@ Cada entrada do catálogo mostra para que serve o agente e o seu modelo predefin
11
11
 
12
12
  ## Adicionar um agente personalizado
13
13
 
14
- Os agentes personalizados são simples ficheiros Markdown no seu repositório, em `.claude/agents/`, com o nome `custom-<algo>.md`. O ficheiro contém as instruções do agente (o seu system prompt) e um pequeno cabeçalho de frontmatter que inclui um `model:` predefinido.
14
+ Roles são assets nativos do provider: Claude usa
15
+ `.claude/agents/custom-<nome>.md`; Kimi usa
16
+ `.kimi-code/skills/custom-<nome>/SKILL.md`.
15
17
 
16
- Assim que o ficheiro existe no projeto, aparece no catálogo como agente personalizado, e pode adicionar o seu id à cadeia de agentes de qualquer perfil (e encaminhar tarefas para ele). O id tem de coincidir com o nome do ficheiro — uma entrada para `custom-docs` corresponde a `.claude/agents/custom-docs.md`.
18
+ Quando o asset existe, aparece no catálogo desse provider e o seu id pode ser adicionado a um perfil do mesmo provider. `custom-docs` corresponde a `.claude/agents/custom-docs.md` em Claude ou `.kimi-code/skills/custom-docs/SKILL.md` em Kimi; ambos ficam separados.
17
19
 
18
20
  Como vivem no seu repositório, os agentes personalizados são **ativos de equipa que se podem committar**: faça commit do ficheiro e toda a equipa fica com o agente. Isto espelha a ideia central de toda a secção Agentes —
19
21
 
20
22
  > **As definições dos agentes são partilhadas (vivem no repositório e viajam com o `git`). A configuração dos modelos é por projeto (vive nos perfis).**
21
23
 
22
- O namespace `custom-*` é reservado e protegido: os comandos `init` e `update` do `specrails-core` nunca tocam em `.claude/agents/custom-*.md`, por isso os seus agentes personalizados sobrevivem intactos às atualizações do core. (A mesma proteção cobre fragmentos contribuídos por plugins, como o `custom-serena.md`.)
24
+ Core protege ambos os formatos. Kimi permite criação/edição manual e execução;
25
+ Generate, Test e AI Refine são recusados antes do spawn.
23
26
 
24
27
  ## Pôr um agente personalizado a trabalhar
25
28
 
26
29
  O fluxo típico:
27
30
 
28
- 1. Escreva `.claude/agents/custom-<nome>.md` com instruções e um modelo predefinido.
31
+ 1. Crie o asset Claude ou Skill Kimi nativo com instruções/modelo válidos.
29
32
  2. Confirme que aparece em **Agentes → Catálogo** em Personalizados.
30
33
  3. Em **Agentes → Perfis**, adicione o agente à cadeia de um perfil (substituindo opcionalmente o seu modelo para esse perfil).
31
34
  4. Adicione uma regra de encaminhamento para que as tarefas com as tags certas cheguem até ele — ou confie na ordem da cadeia.
@@ -36,6 +36,7 @@ O specrails funciona com as principais CLIs de programação com IA:
36
36
  - **Claude** (Claude Code)
37
37
  - **Codex** (Codex CLI)
38
38
  - **Gemini** (Gemini CLI)
39
+ - **Kimi** (Kimi Code)
39
40
 
40
41
  Escolha aquela que já usa — ou instale mais do que uma e escolha por tarefa. Um projeto pode correr num único fornecedor ou em vários ao mesmo tempo, por isso nunca fica preso a um só.
41
42
 
@@ -23,6 +23,7 @@ A única coisa que o specrails não consegue incluir é a própria **CLI do forn
23
23
  - **Claude Code**
24
24
  - **Codex CLI**
25
25
  - **Gemini CLI**
26
+ - **Kimi Code**
26
27
 
27
28
  Instale aquela que planeia usar, inicie sessão nela uma vez a partir do seu terminal, e está tudo a postos. O specrails deteta automaticamente quais os fornecedores presentes.
28
29
 
@@ -26,13 +26,13 @@ A barra lateral direita é o seu painel de comutação para o projeto atual. Pas
26
26
 
27
27
  - **Dashboard** — o quadro de specs e os rails (onde estava agora mesmo).
28
28
  - **Jobs** — todas as execuções do pipeline deste projeto, passadas e presentes, com estado, duração e a possibilidade de aprofundar o detalhe e os logs de qualquer execução.
29
- - **Analytics** — quanto lhe está a custar a utilização de IA. Gastos divididos por dia, por atividade, por modelo e por ticket — para que não haja surpresas.
30
- - **Agentes** — os perfis de agentes do seu projeto: que agentes correm no pipeline e que modelos de IA usam. *(Apenas projetos com Claude.)*
31
- - **Code** — um explorador de ficheiros só de leitura com resumos de IA em linguagem simples, e etiquetas a mostrar que ficheiros a IA tocou. Ótimo para quem não programa mas quer acompanhar.
29
+ - **Analytics** — invocações por dia, atividade, modelo e ticket. Claude comunica custo faturado, Codex/Gemini usam estimativas e Kimi deixa vazios os campos de tokens/custo USD indisponíveis.
30
+ - **Agentes** — perfis e catálogos de roles por provider para Claude e Kimi. Com Kimi, os roles são criados/editados manualmente; Generate, Test e AI Refine não estão disponíveis.
31
+ - **Code** — um explorador de ficheiros só de leitura com etiquetas dos ficheiros tocados pela IA. Os resumos em linguagem simples só aparecem com providers compatíveis e não estão disponíveis com Kimi.
32
32
  - **Integrações** — extras opcionais, como ligar as suas specs a um quadro do **Jira** ou ativar ferramentas adicionais para a IA.
33
33
  - **Definições** — opções por projeto (telemetria, orçamentos, configuração de fornecedores e muito mais).
34
34
 
35
- > Algumas secções só aparecem quando fazem sentido para os fornecedores que escolheu — por exemplo, **Agentes** é específico do Claude. Se não vir uma secção, é simplesmente porque não se aplica à configuração deste projeto.
35
+ > Secções e ações seguem as capacidades do provider efetivo. Por exemplo, os perfis funcionam com Claude e Kimi, mas as ações de IA do Agent Studio falham de forma fechada com Kimi.
36
36
 
37
37
  ## A barra de estado
38
38
 
@@ -1,16 +1,20 @@
1
- # Providers de IA (Claude, Codex, Gemini)
1
+ # Providers de IA (Claude, Codex, Gemini, Kimi)
2
2
 
3
- O Specrails não está preso a uma única IA. Todas as partes da app que falam com uma IA — Explore Spec, spec rápida (Quick), rails, chat, AI Edit, o botão "Open AI CLI" do terminal — podem correr através de qualquer um dos três providers de primeira linha. Você escolhe quais é que cada projeto usa e pode até alternar tarefa a tarefa.
3
+ O Specrails não está preso a uma única IA. Claude, Codex, Gemini e Kimi são
4
+ providers de primeira linha; cada superfície mostra apenas motores com as
5
+ capabilities exigidas pelo seu contrato.
4
6
 
5
- ## Os três providers
7
+ ## Os quatro providers
6
8
 
7
9
  | Provider | CLI | Feito por | Notas |
8
10
  |---|---|---|---|
9
- | **Claude** | `claude` | Anthropic | O mais completo. O único provider para Agentes (perfis) e rails Freestyle, e para o Contract Refine. |
11
+ | **Claude** | `claude` | Anthropic | Custo nativo e transporte interativo persistente. |
10
12
  | **Codex** | `codex` | OpenAI | Requer codex `0.128.0+`. Lê os seus servidores MCP a partir do `~/.codex/config.toml` global. |
11
13
  | **Gemini** | `gemini` | Google | Requer gemini `0.11.0+`. Usa telemetria nativa e um ficheiro de instruções `GEMINI.md`. |
14
+ | **Kimi Code** | `kimi` | Moonshot AI | Requer Kimi `0.27.0+`. O Desktop lança o CLI externo com `-p`; não instala nem inicia um servidor. |
12
15
 
13
- Os três estão **ativados por omissão**. Um provider aparece em **Adicionar Projeto** sempre que o seu CLI estiver instalado e no seu `PATH`. Por isso o primeiro passo é sempre o mesmo: instale o CLI que quer e autentique-se com ele, exatamente como a documentação dessa ferramenta descreve. Assim que `claude --version` (ou `codex`, ou `gemini`) funcionar no seu terminal, o Specrails consegue usá-lo.
16
+ Os quatro estão **ativados por omissão**. O provider aparece quando o CLI está
17
+ no `PATH`; para Kimi, confirme `kimi --version` e execute `kimi login`.
14
18
 
15
19
  ## Instalar um provider para um projeto
16
20
 
@@ -25,40 +29,46 @@ Pode instalar **mais do que um** provider no mesmo projeto — por exemplo Claud
25
29
  Algumas coisas que vale a pena saber sobre projetos multi-provider:
26
30
 
27
31
  - **Com um só provider, tudo se comporta exatamente como antes.** Se um projeto tiver apenas um provider, nunca verá um seletor de provider em lado nenhum — a app mantém-se limpa e simples.
28
- - **A barra lateral direita só mostra as secções que todos os providers instalados suportam.** Como os Agentes (perfis) são um conceito exclusivo do Claude, a secção **Agentes** desaparece assim que um projeto inclui qualquer provider que não seja Claude. Todo o resto (Specs, Código, Analytics, Integrações, Terminal, Chat) permanece.
32
+ - **As capabilities controlam a UI.** Claude e Kimi suportam perfis separados
33
+ por provider; Codex e Gemini usam modo legacy.
29
34
  - **A escolha de providers fica fixada após a criação.** Nesta versão escolhe os seus providers quando adiciona o projeto e não podem ser alterados mais tarde nas Definições. Se precisar de uma combinação diferente, isso é um projeto novo.
30
35
 
31
36
  ## Escolher um provider a cada invocação
32
37
 
33
38
  A grande vantagem de um projeto multi-provider é poder escolher a IA certa para cada tarefa — sem mexer em nenhuma definição global. Sempre que uma IA corre, aparece um pequeno seletor de provider (apenas quando o projeto tem mais do que um):
34
39
 
35
- - **Adicionar Spec** — um seletor de motor permite-lhe Explorar ou gerar rapidamente (Quick) uma spec com o provider que preferir.
40
+ - **Adicionar Spec** — Explore suporta Kimi; Quick Spec mostra apenas
41
+ providers com um limite pure-output seguro e exclui Kimi.
36
42
  - **Cabeçalho do rail** — escolha o motor para esse rail específico antes de o lançar.
37
43
  - **Terminal** — o botão "Open AI CLI" (Sparkles) abre um menu de providers para que possa entrar em qualquer CLI instalado na diretoria desse projeto.
38
44
 
39
45
  A sua escolha é guardada por projeto, predefinida para o provider primário, para que não tenha de a repetir de cada vez.
40
46
 
41
- ## O que só o Claude consegue fazer
47
+ ## Diferenças de capability
42
48
 
43
- Algumas funcionalidades são, por natureza, específicas do Claude, por isso ficam escondidas ou são ignoradas quando outro provider está em jogo:
49
+ Kimi suporta Project/Agent Chat, Explore/propostas, Quick Launcher
50
+ (`/opsx:ff`), rails, Freestyle, loops sem Decider, perfis/roles manuais, MCP,
51
+ Serena, terminal e anexos.
44
52
 
45
- - **Agentes (perfis)** — o catálogo de agentes por projeto e o roteamento de modelos. Escondido em qualquer projeto que inclua um provider que não seja Claude.
46
- - **Rails Freestyle** — correm sempre no Claude.
47
- - **Contract Refine** — a passagem extra de "Contract Layer" sobre uma spec confirmada só corre quando o provider da conversa é o Claude.
48
- - **Modos avançados de Adicionar Spec** (SMASH / Contract Layer) — escondidos para motores que não sejam Claude.
49
-
50
- Todo o resto — Explore, spec rápida (Quick), o pipeline completo de rails, AI Edit, chat, analytics de custos — funciona nos três.
53
+ `kimi -p` aprova ferramentas automaticamente e não consegue impor um limite
54
+ no-tools/read-only. São recusados antes do spawn: Quick Spec, AI Edit,
55
+ Contract Refine, SMASH/Re-SMASH, geração de blueprint/milestone no Project
56
+ Builder, Loop Decider, resumos/construction story e automação do Agent Studio.
57
+ Auto-title usa um fallback determinístico. Consulte o
58
+ [guia Kimi](../../../kimi.md).
51
59
 
52
60
  ## Acompanhamento de custos entre providers
53
61
 
54
- A página **Analytics** acompanha cada invocação faturável, independentemente do provider. Em projetos multi-provider acrescenta chips de filtro por motor para que possa comparar o gasto por provider. O Claude reporta o seu próprio custo exato; para o Codex e o Gemini, o Specrails estima o custo a partir de uma tabela de preços incorporada, por isso os valores são aproximações próximas e não montantes faturados.
62
+ **Analytics** regista invocações realmente iniciadas. Claude reporta custo;
63
+ Codex/Gemini usam estimativas. Kimi não reporta tokens ou custo USD
64
+ autoritativos, portanto os campos ficam vazios.
55
65
 
56
66
  ## Resolução de problemas
57
67
 
58
- - **Um provider que instalei não aparece.** Confirme que o CLI está no seu `PATH` (experimente `claude --version` / `codex --version` / `gemini --version` num terminal novo). A app sonda os CLIs dos providers através do `PATH` do seu sistema.
68
+ - **Um provider que instalei não aparece.** Confirme `claude --version` / `codex --version` / `gemini --version` / `kimi --version`.
59
69
  - **Os servidores MCP do Codex não carregam no chat.** O Codex lê os servidores MCP a partir do `~/.codex/config.toml` global — registe-os aí com `codex mcp add`.
60
70
  - **Desativar em emergência.** Um provider pode ser desligado em toda a app através de uma variável de ambiente (`SPECRAILS_CODEX_BETA=0` ou `SPECRAILS_GEMINI_BETA=0`). Isto só esconde o provider da *seleção*; raramente é necessário.
61
71
 
62
72
  ## Ver também
63
73
 
64
- Os guias dedicados a cada provider aprofundam cada CLI: o guia do Codex e o guia do Gemini cobrem cada um a configuração, o que funciona e as particularidades específicas de cada provider.
74
+ Consulte os guias dedicados a [Kimi](../../../kimi.md), Codex e Gemini.
@@ -21,7 +21,7 @@ O plugin de destaque é:
21
21
  3. Clique no plugin para **pré-visualizar a instalação** — isto mostra-lhe exatamente que ficheiros vão mudar antes de qualquer coisa acontecer.
22
22
  4. Clique em **Instalar**. Verá o progresso em tempo real à medida que tudo é configurado.
23
23
 
24
- Nos bastidores, a instalação é *cirúrgica e aditiva*: só acrescenta as suas próprias entradas ao `.mcp.json` do seu projeto (e, para alguns plugins, um ficheiro de fragmento no namespace protegido `.claude/agents/`). Nunca reescreve a sua configuração por inteiro, e adicionar um segundo plugin nunca pode perturbar o primeiro. Se a instalação não conseguir verificar-se como saudável, é revertida de forma limpa.
24
+ Nos bastidores, a instalação é *cirúrgica e aditiva*: só acrescenta entradas à configuração MCP nativa do provider escolhido (e, em algumas instalações Claude, um fragmento em `.claude/agents/`). Nunca reescreve toda a configuração e faz rollback limpo se a verificação falhar.
25
25
 
26
26
  ## Gerir plugins instalados
27
27
 
@@ -37,8 +37,8 @@ Nos bastidores, a instalação é *cirúrgica e aditiva*: só acrescenta as suas
37
37
 
38
38
  ## Notas sobre providers
39
39
 
40
- Os plugins têm consciência do provider. O Serena e plugins MCP semelhantes resolvem-se para providers que registam MCP através do `.mcp.json` do projeto (Claude e Gemini). Para projetos Codex, os servidores MCP são geridos através da própria configuração global do Codex, por isso as entradas de plugins em **Integrações** são filtradas em conformidade. O cartão do Jira em Integrações é agnóstico ao provider e aparece para toda a gente — consulte o guia do Jira.
40
+ Os plugins têm consciência do provider. O Serena suporta Claude via `.mcp.json`, Codex via `codex mcp add` com `CODEX_HOME` isolado por projeto e Kimi via `.kimi-code/mcp.json`. Um plugin só aparece se o manifesto declarar o provider; por isso Serena não é oferecido para Gemini. O cartão Jira é agnóstico ao provider.
41
41
 
42
42
  ## Ficheiros reservados
43
43
 
44
- Os plugins gerem um conjunto pequeno e bem definido de ficheiros no seu projeto: o seu `.mcp.json` (fundido cirurgicamente), algum estado em `.specrails/plugins/` e fragmentos de agente por plugin em `.claude/agents/custom-<plugin>.md`. Estes são ativos de equipa que pode versionar se quiser partilhar uma integração com os seus colegas — a app nunca os sobrescreve às cegas.
44
+ Os plugins gerem a configuração MCP nativa do provider, estado em `.specrails/plugins/` e, apenas quando Claude precisa, fragmentos em `.claude/agents/custom-<plugin>.md`. As entradas Kimi ficam em `.kimi-code/mcp.json`; a app não escreve fragmentos exclusivos de Claude para Kimi nem sobrescreve configurações às cegas.
@@ -22,7 +22,13 @@ Escolher um projeto aqui **não** move o seu painel — o alvo do agente e o que
22
22
 
23
23
  ## Provedor e modelo
24
24
 
25
- Logo acima da caixa de mensagem você escolhe o **provedor** (Claude, Codex ou Gemini) e o seu **modelo**. Cada provedor tem a sua própria lista de modelos, e trocar de provedor inicia uma sessão nova com o modelo padrão daquele provedor — assim você pode, por exemplo, conduzir a aplicação com o Claude e passar para o Codex em outra conversa sem que nada se misture.
25
+ Logo acima da caixa de mensagem escolhe o **provider** (Claude, Codex, Gemini
26
+ ou Kimi) e o seu **modelo**. Trocar de provider inicia uma sessão separada.
27
+
28
+ Com Kimi, os níveis limitam as ferramentas MCP Specrails, mas não transformam
29
+ `kimi -p` numa sandbox: ferramentas nativas são aprovadas automaticamente.
30
+ Ações pure-output inseguras são recusadas antes do spawn; consulte a
31
+ [matriz Kimi](../../../kimi.md).
26
32
 
27
33
  ## Níveis de permissão — a rédea está com você
28
34
 
@@ -35,8 +35,8 @@ Você pode ter vários rails para organizar o trabalho em pistas nomeadas (uma p
35
35
  | **Pílula de status** | `idle`, `running` ou `failed`. Não há um "completed" separado — um rail volta para `idle` quando seu job termina sem erros. |
36
36
  | **Lista de specs** | Os IDs atribuídos a este rail. Arraste mais para dentro, arraste para fora para desanexar. |
37
37
  | **Seletor de Loop** | O Loop que este rail roda — um embutido (`Implement` / `Batch` / `Freestyle`) ou um loop personalizado. Veja a tabela abaixo. Persistido por rail. |
38
- | **Seletor de perfil** | Qual perfil de agente roda (apenas rails Claude). Só aparece quando o projeto tem ao menos um perfil. |
39
- | **Seletor de motor** | Qual provedor instalado roda este rail — Claude, Codex ou Gemini. Só é renderizado quando o projeto tem mais de um provedor. Veja [Escolhendo um motor por rail](picking-an-engine-per-rail). |
38
+ | **Seletor de perfil** | Qual perfil do provider corre (rails Claude e Kimi). |
39
+ | **Seletor de motor** | Qual provider corre o rail — Claude, Codex, Gemini ou Kimi. |
40
40
  | **▶ Play / ■ Stop** | Iniciar ou cancelar. |
41
41
 
42
42
  ### O que um rail roda: Loops
@@ -47,9 +47,11 @@ Um rail roda um **Loop** — a receita do trabalho. Três loops são **embutidos
47
47
  |------|---------|--------------|
48
48
  | **Implement** | `/specrails:implement` | Um job cobrindo todas as specs do rail. Roda o pipeline completo Architect → Developer → Reviewer → Ship. O padrão do dia a dia. |
49
49
  | **Batch** | `/specrails:batch-implement` | Um job que percorre as specs do rail sequencialmente, em ondas que respeitam as dependências. Melhor para várias specs relacionadas. |
50
- | **Freestyle** | Freestyle | O Claude implementa cada spec de forma autônoma, **ignorando** o pipeline. Um job independente por spec. Apenas Claude. |
50
+ | **Freestyle** | Freestyle | Claude ou Kimi implementa cada spec de forma autónoma, **ignorando** o pipeline. |
51
51
 
52
- O Freestyle é o caso atípico: ele pula a cadeia de agentes e entrega a spec crua ao Claude para trabalhar com suas ferramentas nativas. É aberto, então apertar Play abre primeiro uma confirmação, e um seletor de modelo por rail deixa você escolher Haiku / Sonnet / Opus. Ele só aparece quando o motor do rail é o Claude. Uma execução Freestyle é também o único job que **fica aberto esperando por você**: converse com ele pelo compositor do detalhe do job e clique em **Finalize** quando estiver satisfeito (todos os outros jobs terminam sozinhos).
52
+ Freestyle usa ferramentas e modelos nativos do provider. Claude tem transport
53
+ interativo persistente; Kimi usa um processo agentic `kimi -p` sem stdin
54
+ persistente.
53
55
 
54
56
  Além dos embutidos, você pode **construir seus próprios loops** — repetir um ciclo verify → fix → verify até atingir uma meta, encadear comandos de shell entre AI Steps e muito mais. Esses loops personalizados aparecem no mesmo seletor de Loop. Essa é a próxima grande ideia: [O Loop Builder](the-loop-builder).
55
57
 
@@ -81,7 +83,8 @@ Clique em **■ Stop** no cabeçalho do rail. A app envia `SIGTERM` ao subproces
81
83
 
82
84
  ## Se um rail não lançar
83
85
 
84
- Se você escolher um motor cuja CLI não está instalada na sua máquina, o lançamento **falha rápido** em vez de iniciar um job quebrado — nada é spawnado. Instale a CLI do provedor que falta ([Usando Codex](../integrations/using-codex), [Usando Gemini](../integrations/using-gemini)) e lance de novo. Claude ou Codex ausentes dão uma mensagem precisa "*&lt;provider&gt; CLI not found*"; o Gemini ausente exibe um erro genérico de lançamento por enquanto, mas o resultado é o mesmo.
86
+ Se faltar o CLI escolhido, o lançamento falha antes do spawn. Para Kimi,
87
+ instale/autentique `kimi` 0.27+; Desktop não inicia um server.
85
88
 
86
89
  ## Parando tudo
87
90
 
@@ -96,4 +99,4 @@ Se algo parecer errado:
96
99
  - [O Loop Builder](the-loop-builder) — o que um rail roda, e como construir seus próprios loops.
97
100
  - [A vista de detalhe do job](the-job-detail-view) — fases, métricas ao vivo, cartões de ticket.
98
101
  - [Batch implement e multi-feature](batch-implement-and-multi-feature) — rode várias specs de uma vez.
99
- - [Escolhendo um motor por rail](picking-an-engine-per-rail) — Claude vs Codex vs Gemini.
102
+ - [Escolhendo um motor por rail](picking-an-engine-per-rail) — Claude, Codex, Gemini ou Kimi.