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.
- package/README.md +28 -24
- package/client/dist/assets/{ActivityFeedPage-9DZOvIcY.js → ActivityFeedPage-CAhFRUO4.js} +1 -1
- package/client/dist/assets/{AgentBrowserCapture-DqyHbzk7.js → AgentBrowserCapture-Ct4G5lsE.js} +1 -1
- package/client/dist/assets/AgentModeCodePane-DQt9WIvu.js +2 -0
- package/client/dist/assets/{AgentModeJobsPane-CTIHMUKN.js → AgentModeJobsPane-podaJVl9.js} +1 -1
- package/client/dist/assets/AgentsPage-DTZdbW80.js +87 -0
- package/client/dist/assets/AnalyticsPage-BskgGPm0.js +1 -0
- package/client/dist/assets/CodePage-CvtYo1DU.js +2 -0
- package/client/dist/assets/{DesktopAnalyticsPage-CkXUFj3F.js → DesktopAnalyticsPage-Dnf99E8e.js} +1 -1
- package/client/dist/assets/{DocsDialog-PhdCJNVj.js → DocsDialog-DHi36rZ4.js} +1 -1
- package/client/dist/assets/{DocsPage-BY-wDthx.js → DocsPage-DIdVrQz1.js} +1 -1
- package/client/dist/assets/{InteractiveJobComposer-C9I0A4KR.js → InteractiveJobComposer-BHeB2inv.js} +1 -1
- package/client/dist/assets/{JobDetailModal-I_RoQJV4.js → JobDetailModal-CF1SKUHH.js} +1 -1
- package/client/dist/assets/JobDetailPage-De3rY18h.js +1 -0
- package/client/dist/assets/{JobsPage-DcllM4Ip.js → JobsPage-CfAqqJTx.js} +1 -1
- package/client/dist/assets/{LoopBuilderPage-DGm_iuff.js → LoopBuilderPage-DSBMuTb3.js} +2 -2
- package/client/dist/assets/{LoopPreviewModal-BC-TeFdD.js → LoopPreviewModal-B-c37kA0.js} +1 -1
- package/client/dist/assets/LoopsPage-DjnNXdmm.js +1 -0
- package/client/dist/assets/{MinimizedChatsContext-Cs34FPTz.js → MinimizedChatsContext-DIsnQMVz.js} +1 -1
- package/client/dist/assets/PluginsPage-DA5pQ_6u.js +2 -0
- package/client/dist/assets/{ProjectSettingsDialog-nEs-ENrE.js → ProjectSettingsDialog-DA23PSi6.js} +1 -1
- package/client/dist/assets/{TemplatePreviewModal-D4qW-J9B.js → TemplatePreviewModal-Cp7IQ-g2.js} +1 -1
- package/client/dist/assets/TicketDetailModal-BPD2i_0R.js +14 -0
- package/client/dist/assets/{Trans-CPISVji8.js → Trans-cWtExGkC.js} +1 -1
- package/client/dist/assets/addspec-4WmLJmBG.js +1 -0
- package/client/dist/assets/addspec-BRlk8jON.js +1 -0
- package/client/dist/assets/addspec-C7XRejU4.js +1 -0
- package/client/dist/assets/addspec-CHW9xf_X.js +1 -0
- package/client/dist/assets/addspec-DTmRrWrF.js +1 -0
- package/client/dist/assets/addspec-DhmnXER8.js +1 -0
- package/client/dist/assets/addspec-Di41DpYV.js +1 -0
- package/client/dist/assets/addspec-x3mizDxc.js +1 -0
- package/client/dist/assets/agent-BKsuIgIT.js +1 -0
- package/client/dist/assets/agent-Bs9NilfI.js +1 -0
- package/client/dist/assets/agent-C23h684q.js +1 -0
- package/client/dist/assets/agent-CqEjy3Z2.js +1 -0
- package/client/dist/assets/agent-D5DZTks1.js +1 -0
- package/client/dist/assets/agent-DE8hUYPl.js +1 -0
- package/client/dist/assets/agent-DsTuJGSc.js +1 -0
- package/client/dist/assets/agent-DwZM05-x.js +1 -0
- package/client/dist/assets/agents-45GbINfh.js +1 -0
- package/client/dist/assets/agents-BHp0_FQt.js +1 -0
- package/client/dist/assets/agents-Bvyi3y6R.js +1 -0
- package/client/dist/assets/agents-DMKFStHL.js +1 -0
- package/client/dist/assets/agents-DaYcxAr1.js +1 -0
- package/client/dist/assets/agents-IUOgqT5t.js +1 -0
- package/client/dist/assets/agents-ms7TwG16.js +1 -0
- package/client/dist/assets/agents-rzPnqoBR.js +1 -0
- package/client/dist/assets/agentstudio-8TQqBenW.js +1 -0
- package/client/dist/assets/agentstudio-B8Z_mmEX.js +1 -0
- package/client/dist/assets/agentstudio-BZR9YmLs.js +1 -0
- package/client/dist/assets/agentstudio-Bge9pAWb.js +1 -0
- package/client/dist/assets/agentstudio-Bz169Vzt.js +1 -0
- package/client/dist/assets/agentstudio-D6L2jpNi.js +1 -0
- package/client/dist/assets/agentstudio-K2-Z7CL0.js +1 -0
- package/client/dist/assets/agentstudio-Zmgzthv8.js +1 -0
- package/client/dist/assets/analytics-B8Qtptbl.js +1 -0
- package/client/dist/assets/analytics-BHqUazhP.js +1 -0
- package/client/dist/assets/analytics-BPptRY4f.js +1 -0
- package/client/dist/assets/analytics-BxDGOIwf.js +1 -0
- package/client/dist/assets/analytics-C9RaQcE3.js +1 -0
- package/client/dist/assets/analytics-CJIwqrEl.js +1 -0
- package/client/dist/assets/analytics-D_OZdQ9O.js +1 -0
- package/client/dist/assets/analytics-We6lUMI8.js +1 -0
- package/client/dist/assets/builder-3bygQtZi.js +1 -0
- package/client/dist/assets/builder-BiUG9Z5K.js +1 -0
- package/client/dist/assets/builder-CGRz_-zP.js +1 -0
- package/client/dist/assets/builder-CWYPw7Cw.js +1 -0
- package/client/dist/assets/builder-CX1437hF.js +1 -0
- package/client/dist/assets/{builder-CwA4T7gP.js → builder-Cowk9jtL.js} +1 -1
- package/client/dist/assets/builder-DwDexYRE.js +1 -0
- package/client/dist/assets/builder-skfnZ1uC.js +1 -0
- package/client/dist/assets/code-B0O8-p8k.js +1 -0
- package/client/dist/assets/code-B1VLZDhS.js +1 -0
- package/client/dist/assets/code-B86IMAfz.js +1 -0
- package/client/dist/assets/code-Bpj4Ddml.js +1 -0
- package/client/dist/assets/code-BykBZ5-e.js +1 -0
- package/client/dist/assets/code-CHPkOkDS.js +1 -0
- package/client/dist/assets/code-CkUuW4m9.js +1 -0
- package/client/dist/assets/code-cAqaqMTx.js +1 -0
- package/client/dist/assets/{dashboard-Dy2Um-US.js → dashboard-BVq6kRJe.js} +1 -1
- package/client/dist/assets/{dashboard-CHCEkds4.js → dashboard-BaKPPmLH.js} +1 -1
- package/client/dist/assets/{dashboard-CrlTV1ms.js → dashboard-Bm8e4zYG.js} +1 -1
- package/client/dist/assets/{dashboard-WhzOQw1S.js → dashboard-Bt6IesnM.js} +1 -1
- package/client/dist/assets/{dashboard-Cslu_GCH.js → dashboard-C_NQZle_.js} +1 -1
- package/client/dist/assets/{dashboard-DweT3Y4R.js → dashboard-CyZKoGoI.js} +1 -1
- package/client/dist/assets/{dashboard-DUU8-_Rg.js → dashboard-HIUdUBQ0.js} +1 -1
- package/client/dist/assets/{dashboard-Cqmmbh3l.js → dashboard-pm4Mr229.js} +1 -1
- package/client/dist/assets/{dist-js-jwoXo0YD.js → dist-js-BaP-xLOy.js} +1 -1
- package/client/dist/assets/{dist-js-Dj72W6qo.js → dist-js-CLlgOa5a.js} +1 -1
- package/client/dist/assets/format-command-C0D9IPmV.js +1 -0
- package/client/dist/assets/{formatDistanceToNow-ByKli7Q_.js → formatDistanceToNow-DUyzS4rr.js} +1 -1
- package/client/dist/assets/{getTimezoneOffsetInMilliseconds-qrcBaLW1.js → getTimezoneOffsetInMilliseconds-BCIwmmTj.js} +1 -1
- package/client/dist/assets/{i18n-Bf9Ckd10.js → i18n-D21Pr8Sj.js} +2 -2
- package/client/dist/assets/index-BdSDUFnA.css +2 -0
- package/client/dist/assets/index-Ci4-JKDr.js +77 -0
- package/client/dist/assets/{jobs-CVFD8rar.js → jobs-BAls3bWq.js} +1 -1
- package/client/dist/assets/{jobs-DoSaFzAa.js → jobs-B_TeSQxb.js} +1 -1
- package/client/dist/assets/jobs-Bgq-PZkC.js +1 -0
- package/client/dist/assets/jobs-Bpks6doU.js +1 -0
- package/client/dist/assets/jobs-CN_zv4Gr.js +1 -0
- package/client/dist/assets/jobs-DUlWSYq2.js +1 -0
- package/client/dist/assets/{jobs-B-sDHEay.js → jobs-DhxKgWFq.js} +1 -1
- package/client/dist/assets/{jobs-lk1_Dq1U.js → jobs-SwYS2M-B.js} +1 -1
- package/client/dist/assets/nav-BHDiSIVu.js +1 -0
- package/client/dist/assets/nav-CMiYAq4i.js +1 -0
- package/client/dist/assets/nav-CqS7NrDW.js +1 -0
- package/client/dist/assets/nav-D-0M7xfv.js +1 -0
- package/client/dist/assets/nav-D65O6u9I.js +1 -0
- package/client/dist/assets/nav-D_LKYvBr.js +1 -0
- package/client/dist/assets/nav-FDTJmU79.js +1 -0
- package/client/dist/assets/nav-VaB-C4k5.js +1 -0
- package/client/dist/assets/provider-capabilities-BvoExILy.js +1 -0
- package/client/dist/assets/settings-BveOJoaI.js +1 -0
- package/client/dist/assets/settings-Cj1C6F5k.js +1 -0
- package/client/dist/assets/settings-CuVwOpe0.js +1 -0
- package/client/dist/assets/settings-D5X4DfRc.js +1 -0
- package/client/dist/assets/settings-DXwxe-BW.js +1 -0
- package/client/dist/assets/settings-Di81Ba_V.js +1 -0
- package/client/dist/assets/settings-jbLjCYC_.js +1 -0
- package/client/dist/assets/settings-wIZNPFnn.js +1 -0
- package/client/dist/assets/setup-BBiHEO7h.js +1 -0
- package/client/dist/assets/setup-BlTWhNIQ.js +1 -0
- package/client/dist/assets/setup-Bp2L_oiP.js +1 -0
- package/client/dist/assets/setup-CInYXp1-.js +1 -0
- package/client/dist/assets/{setup-CITtPjed.js → setup-CYH3bP6K.js} +1 -1
- package/client/dist/assets/setup-DwcQ921P.js +1 -0
- package/client/dist/assets/setup-PBLjuDSs.js +1 -0
- package/client/dist/assets/setup-bx6FtoBp.js +1 -0
- package/client/dist/assets/{spending-DMnCXy84.js → spending-BCyUxoOI.js} +1 -1
- package/client/dist/assets/{tickets-B8BuAaj5.js → tickets-BL9r1G0e.js} +1 -1
- package/client/dist/assets/{tickets-DpmdE8tv.js → tickets-B_NyHJ8f.js} +1 -1
- package/client/dist/assets/{tickets-B_yh4qQk.js → tickets-BarF1wuG.js} +1 -1
- package/client/dist/assets/{tickets-pAUJkDTu.js → tickets-CclVhpQA.js} +1 -1
- package/client/dist/assets/{tickets-D_yDquEw.js → tickets-CqqOHbli.js} +1 -1
- package/client/dist/assets/{tickets-CFk2n2Or.js → tickets-DCkFSiqt.js} +1 -1
- package/client/dist/assets/{tickets-DQp7JS2R.js → tickets-Djn3ccfT.js} +1 -1
- package/client/dist/assets/{tickets-Bs37scwY.js → tickets-MiHBPsy_.js} +1 -1
- package/client/dist/assets/{useBrowserCaptureSession-CkBJShUw.js → useBrowserCaptureSession-CkVCDzer.js} +1 -1
- package/client/dist/assets/{useDesktop-B4pSBIDd.js → useDesktop-DCP_MHp9.js} +1 -1
- package/client/dist/index.html +25 -24
- package/docs/README.md +7 -3
- package/docs/cli.md +3 -3
- package/docs/codex.md +51 -64
- package/docs/creating-specs.md +36 -4
- package/docs/customizing.md +5 -5
- package/docs/gemini.md +35 -47
- package/docs/getting-started.md +15 -9
- package/docs/guide/de/agents/2-profiles-and-the-balanced-default.md +5 -1
- package/docs/guide/de/agents/4-custom-agents-catalog.md +7 -4
- package/docs/guide/de/getting-started/1-what-is-specrails.md +1 -0
- package/docs/guide/de/getting-started/2-installing-and-first-run.md +1 -0
- package/docs/guide/de/getting-started/4-the-dashboard-tour.md +4 -4
- package/docs/guide/de/integrations/1-ai-providers.md +29 -18
- package/docs/guide/de/integrations/2-plugins.md +3 -3
- package/docs/guide/de/integrations/6-agent-chat.md +8 -1
- package/docs/guide/de/pipeline/1-rails-and-jobs.md +9 -6
- package/docs/guide/de/pipeline/2-the-job-detail-view.md +3 -1
- package/docs/guide/de/pipeline/3-batch-implement-and-multi-feature.md +1 -1
- package/docs/guide/de/pipeline/4-picking-an-engine-per-rail.md +13 -13
- package/docs/guide/de/pipeline/5-the-loop-builder.md +6 -2
- package/docs/guide/de/specs/2-add-spec-quick-mode.md +6 -1
- package/docs/guide/en/agents/2-profiles-and-the-balanced-default.md +7 -1
- package/docs/guide/en/agents/4-custom-agents-catalog.md +17 -4
- package/docs/guide/en/getting-started/1-what-is-specrails.md +2 -1
- package/docs/guide/en/getting-started/2-installing-and-first-run.md +2 -1
- package/docs/guide/en/getting-started/4-the-dashboard-tour.md +5 -5
- package/docs/guide/en/insights/3-code-explorer.md +5 -0
- package/docs/guide/en/integrations/1-ai-providers.md +63 -22
- package/docs/guide/en/integrations/2-plugins.md +3 -3
- package/docs/guide/en/integrations/6-agent-chat.md +14 -2
- package/docs/guide/en/pipeline/1-rails-and-jobs.md +19 -7
- package/docs/guide/en/pipeline/2-the-job-detail-view.md +3 -1
- package/docs/guide/en/pipeline/3-batch-implement-and-multi-feature.md +1 -1
- package/docs/guide/en/pipeline/4-picking-an-engine-per-rail.md +25 -11
- package/docs/guide/en/pipeline/5-the-loop-builder.md +7 -2
- package/docs/guide/en/specs/2-add-spec-quick-mode.md +10 -1
- package/docs/guide/es/agents/2-profiles-and-the-balanced-default.md +5 -1
- package/docs/guide/es/agents/4-custom-agents-catalog.md +7 -4
- package/docs/guide/es/getting-started/1-what-is-specrails.md +1 -0
- package/docs/guide/es/getting-started/2-installing-and-first-run.md +1 -0
- package/docs/guide/es/getting-started/4-the-dashboard-tour.md +4 -4
- package/docs/guide/es/integrations/1-ai-providers.md +30 -18
- package/docs/guide/es/integrations/2-plugins.md +3 -3
- package/docs/guide/es/integrations/6-agent-chat.md +8 -1
- package/docs/guide/es/pipeline/1-rails-and-jobs.md +9 -6
- package/docs/guide/es/pipeline/2-the-job-detail-view.md +3 -1
- package/docs/guide/es/pipeline/3-batch-implement-and-multi-feature.md +1 -1
- package/docs/guide/es/pipeline/4-picking-an-engine-per-rail.md +15 -13
- package/docs/guide/es/pipeline/5-the-loop-builder.md +6 -2
- package/docs/guide/es/specs/2-add-spec-quick-mode.md +6 -1
- package/docs/guide/fr/agents/2-profiles-and-the-balanced-default.md +5 -1
- package/docs/guide/fr/agents/4-custom-agents-catalog.md +7 -4
- package/docs/guide/fr/getting-started/1-what-is-specrails.md +1 -0
- package/docs/guide/fr/getting-started/2-installing-and-first-run.md +1 -0
- package/docs/guide/fr/getting-started/4-the-dashboard-tour.md +4 -4
- package/docs/guide/fr/integrations/1-ai-providers.md +29 -18
- package/docs/guide/fr/integrations/2-plugins.md +3 -3
- package/docs/guide/fr/integrations/6-agent-chat.md +8 -1
- package/docs/guide/fr/pipeline/1-rails-and-jobs.md +9 -6
- package/docs/guide/fr/pipeline/2-the-job-detail-view.md +3 -1
- package/docs/guide/fr/pipeline/3-batch-implement-and-multi-feature.md +1 -1
- package/docs/guide/fr/pipeline/4-picking-an-engine-per-rail.md +15 -13
- package/docs/guide/fr/pipeline/5-the-loop-builder.md +6 -2
- package/docs/guide/fr/specs/2-add-spec-quick-mode.md +6 -1
- package/docs/guide/it/agents/2-profiles-and-the-balanced-default.md +5 -1
- package/docs/guide/it/agents/4-custom-agents-catalog.md +7 -4
- package/docs/guide/it/getting-started/1-what-is-specrails.md +1 -0
- package/docs/guide/it/getting-started/2-installing-and-first-run.md +1 -0
- package/docs/guide/it/getting-started/4-the-dashboard-tour.md +4 -4
- package/docs/guide/it/integrations/1-ai-providers.md +28 -18
- package/docs/guide/it/integrations/2-plugins.md +3 -3
- package/docs/guide/it/integrations/6-agent-chat.md +8 -1
- package/docs/guide/it/pipeline/1-rails-and-jobs.md +9 -6
- package/docs/guide/it/pipeline/2-the-job-detail-view.md +3 -1
- package/docs/guide/it/pipeline/3-batch-implement-and-multi-feature.md +1 -1
- package/docs/guide/it/pipeline/4-picking-an-engine-per-rail.md +13 -13
- package/docs/guide/it/pipeline/5-the-loop-builder.md +6 -2
- package/docs/guide/it/specs/2-add-spec-quick-mode.md +6 -1
- package/docs/guide/ja/agents/2-profiles-and-the-balanced-default.md +6 -1
- package/docs/guide/ja/agents/4-custom-agents-catalog.md +7 -4
- package/docs/guide/ja/getting-started/1-what-is-specrails.md +1 -0
- package/docs/guide/ja/getting-started/2-installing-and-first-run.md +1 -0
- package/docs/guide/ja/getting-started/4-the-dashboard-tour.md +4 -4
- package/docs/guide/ja/integrations/1-ai-providers.md +28 -18
- package/docs/guide/ja/integrations/2-plugins.md +3 -3
- package/docs/guide/ja/integrations/6-agent-chat.md +7 -1
- package/docs/guide/ja/pipeline/1-rails-and-jobs.md +9 -6
- package/docs/guide/ja/pipeline/2-the-job-detail-view.md +3 -1
- package/docs/guide/ja/pipeline/3-batch-implement-and-multi-feature.md +1 -1
- package/docs/guide/ja/pipeline/4-picking-an-engine-per-rail.md +14 -13
- package/docs/guide/ja/pipeline/5-the-loop-builder.md +6 -2
- package/docs/guide/ja/specs/2-add-spec-quick-mode.md +6 -1
- package/docs/guide/pt/agents/2-profiles-and-the-balanced-default.md +5 -1
- package/docs/guide/pt/agents/4-custom-agents-catalog.md +7 -4
- package/docs/guide/pt/getting-started/1-what-is-specrails.md +1 -0
- package/docs/guide/pt/getting-started/2-installing-and-first-run.md +1 -0
- package/docs/guide/pt/getting-started/4-the-dashboard-tour.md +4 -4
- package/docs/guide/pt/integrations/1-ai-providers.md +28 -18
- package/docs/guide/pt/integrations/2-plugins.md +3 -3
- package/docs/guide/pt/integrations/6-agent-chat.md +7 -1
- package/docs/guide/pt/pipeline/1-rails-and-jobs.md +9 -6
- package/docs/guide/pt/pipeline/2-the-job-detail-view.md +2 -1
- package/docs/guide/pt/pipeline/3-batch-implement-and-multi-feature.md +1 -1
- package/docs/guide/pt/pipeline/4-picking-an-engine-per-rail.md +14 -13
- package/docs/guide/pt/pipeline/5-the-loop-builder.md +6 -2
- package/docs/guide/pt/specs/2-add-spec-quick-mode.md +6 -1
- package/docs/guide/zh/agents/2-profiles-and-the-balanced-default.md +4 -1
- package/docs/guide/zh/agents/4-custom-agents-catalog.md +7 -4
- package/docs/guide/zh/getting-started/1-what-is-specrails.md +1 -0
- package/docs/guide/zh/getting-started/2-installing-and-first-run.md +1 -0
- package/docs/guide/zh/getting-started/4-the-dashboard-tour.md +4 -4
- package/docs/guide/zh/integrations/1-ai-providers.md +26 -18
- package/docs/guide/zh/integrations/2-plugins.md +3 -3
- package/docs/guide/zh/integrations/6-agent-chat.md +6 -1
- package/docs/guide/zh/pipeline/1-rails-and-jobs.md +9 -6
- package/docs/guide/zh/pipeline/2-the-job-detail-view.md +2 -1
- package/docs/guide/zh/pipeline/3-batch-implement-and-multi-feature.md +1 -1
- package/docs/guide/zh/pipeline/4-picking-an-engine-per-rail.md +12 -12
- package/docs/guide/zh/pipeline/5-the-loop-builder.md +6 -2
- package/docs/guide/zh/specs/2-add-spec-quick-mode.md +6 -1
- package/docs/internals/README.md +4 -1
- package/docs/internals/adding-a-provider.md +32 -28
- package/docs/internals/api-reference.md +37 -13
- package/docs/internals/architecture.md +5 -5
- package/docs/internals/bundled-framework-build-plan.md +3 -3
- package/docs/internals/code-explorer-story.md +4 -0
- package/docs/internals/configuration.md +17 -5
- package/docs/internals/global-artifacts-alignment-contract.md +1 -1
- package/docs/internals/operations-runbook.md +1 -1
- package/docs/internals/profiles.md +37 -45
- package/docs/internals/project-builder.md +16 -0
- package/docs/kimi.md +291 -0
- package/docs/mcp.md +9 -2
- package/docs/platforms/macos.md +17 -7
- package/docs/platforms/windows.md +9 -4
- package/docs/running-pipelines.md +46 -12
- package/docs/terminal.md +1 -1
- package/docs/tracking-cost.md +25 -6
- package/package.json +4 -2
- package/server/dist/agent-chat-manager.js +74 -32
- package/server/dist/agent-chat-router.js +40 -17
- package/server/dist/agent-cwd-manager.js +14 -7
- package/server/dist/agent-generator.js +69 -85
- package/server/dist/agent-mcp-config.js +17 -11
- package/server/dist/agent-operator-prompt.js +29 -20
- package/server/dist/agent-refine-manager.js +58 -38
- package/server/dist/ai-invocations.js +65 -20
- package/server/dist/attachment-manager.js +49 -15
- package/server/dist/blueprint-chat-manager.js +41 -16
- package/server/dist/blueprint-router.js +40 -6
- package/server/dist/chat-manager.js +165 -89
- package/server/dist/code-explorer-router.js +26 -7
- package/server/dist/contract-refine-runner.js +146 -113
- package/server/dist/core-compat.js +57 -2
- package/server/dist/core-package.js +3 -3
- package/server/dist/core-update-manager.js +17 -1
- package/server/dist/db.js +60 -5
- package/server/dist/desktop-analytics.js +44 -6
- package/server/dist/desktop-router.js +127 -11
- package/server/dist/explore-cwd-manager.js +19 -3
- package/server/dist/feature-flags.js +1 -1
- package/server/dist/file-story-manager.js +3 -3
- package/server/dist/file-summary-generator.js +21 -15
- package/server/dist/file-summary-manager.js +6 -6
- package/server/dist/framework-manager.js +19 -2
- package/server/dist/framework-migration.js +27 -12
- package/server/dist/install-config-path.js +1 -1
- package/server/dist/interactive-job-session.js +8 -6
- package/server/dist/loop-command-catalog.js +27 -10
- package/server/dist/loop-executors.js +59 -27
- package/server/dist/loop-factory.js +2 -2
- package/server/dist/loop-run-manager.js +100 -39
- package/server/dist/loops-router.js +1 -1
- package/server/dist/mcp/guide.js +23 -16
- package/server/dist/mcp/tools/agents.js +47 -41
- package/server/dist/mcp/tools/analytics.js +2 -2
- package/server/dist/mcp/tools/loops.js +2 -2
- package/server/dist/mcp/tools/plugins.js +14 -9
- package/server/dist/mcp/tools/rails.js +12 -13
- package/server/dist/mcp/tools/support.js +1 -1
- package/server/dist/mobile/mobile-router.js +5 -1
- package/server/dist/offline-assemble.js +13 -1
- package/server/dist/path-resolver.js +2 -2
- package/server/dist/plugin-manager.js +391 -106
- package/server/dist/plugins/claude-md-mutation.js +5 -4
- package/server/dist/plugins/drift.js +32 -29
- package/server/dist/plugins/rail-integration.js +13 -2
- package/server/dist/plugins/serena/install.js +25 -17
- package/server/dist/plugins/serena/manifest.js +22 -5
- package/server/dist/plugins/serena/verify.js +46 -16
- package/server/dist/plugins-router.js +59 -8
- package/server/dist/profile-manager.js +148 -36
- package/server/dist/profiles-router.js +311 -82
- package/server/dist/project-registry.js +2 -2
- package/server/dist/project-router-chat.js +17 -8
- package/server/dist/project-router-helpers.js +93 -5
- package/server/dist/project-router-jobs.js +76 -12
- package/server/dist/project-router-loop-runs.js +42 -14
- package/server/dist/project-router-settings.js +31 -10
- package/server/dist/project-router-setup.js +4 -5
- package/server/dist/project-router-spending.js +15 -3
- package/server/dist/project-router-tickets.js +187 -181
- package/server/dist/project-router.js +1 -0
- package/server/dist/proposal-manager.js +125 -85
- package/server/dist/providers/claude-adapter.js +14 -0
- package/server/dist/providers/codex-adapter.js +20 -0
- package/server/dist/providers/gemini-adapter.js +14 -0
- package/server/dist/providers/index.js +18 -1
- package/server/dist/providers/kimi-adapter.js +361 -0
- package/server/dist/providers/kimi-skill-prompt.js +332 -0
- package/server/dist/providers/runtime.js +137 -0
- package/server/dist/queue-manager.js +103 -78
- package/server/dist/rail-isolated-launch.js +1 -1
- package/server/dist/rails-router.js +51 -38
- package/server/dist/result-event.js +5 -0
- package/server/dist/schemas/profile.v1.json +3 -4
- package/server/dist/setup-manager.js +222 -101
- package/server/dist/setup-prerequisites.js +7 -1
- package/server/dist/smash-runner.js +104 -57
- package/server/dist/spawn-lifecycle.js +18 -14
- package/server/dist/spec-launcher-manager.js +66 -54
- package/server/dist/spec-models.js +15 -6
- package/server/dist/spending.js +110 -17
- package/server/dist/util/cli-prompt.js +142 -5
- package/server/dist/util/stream-display.js +46 -0
- package/server/dist/workspace-manager.js +100 -37
- package/server/dist/worktree-manager.js +4 -0
- package/server/dist/worktree-overlay.js +12 -3
- package/client/dist/assets/AgentModeCodePane-BAYyFRmY.js +0 -2
- package/client/dist/assets/AgentsPage-DuyJuaFs.js +0 -86
- package/client/dist/assets/AnalyticsPage-BY7gtCx6.js +0 -1
- package/client/dist/assets/CodePage-vyQr40Vl.js +0 -2
- package/client/dist/assets/JobDetailPage-CU4FEnUC.js +0 -1
- package/client/dist/assets/LoopsPage-SqglnXlp.js +0 -1
- package/client/dist/assets/PluginsPage-B89S8o1a.js +0 -2
- package/client/dist/assets/TicketDetailModal-CI47Dq9E.js +0 -14
- package/client/dist/assets/addspec-BXjvkh5q.js +0 -1
- package/client/dist/assets/addspec-C4bwrmpi.js +0 -1
- package/client/dist/assets/addspec-CArHXUDM.js +0 -1
- package/client/dist/assets/addspec-DTKJcXiR.js +0 -1
- package/client/dist/assets/addspec-DbNBbrha.js +0 -1
- package/client/dist/assets/addspec-Rw8uVBC1.js +0 -1
- package/client/dist/assets/addspec-htHGZHOe.js +0 -1
- package/client/dist/assets/addspec-lr_LP6jk.js +0 -1
- package/client/dist/assets/agent-BABjRt0P.js +0 -1
- package/client/dist/assets/agent-BuUpgqVx.js +0 -1
- package/client/dist/assets/agent-CCDZesgU.js +0 -1
- package/client/dist/assets/agent-CVn64zWH.js +0 -1
- package/client/dist/assets/agent-CWeOny0E.js +0 -1
- package/client/dist/assets/agent-DOysmad_.js +0 -1
- package/client/dist/assets/agent-DSsjTBhn.js +0 -1
- package/client/dist/assets/agent-DlZMxfM9.js +0 -1
- package/client/dist/assets/agents-6ZOJXWVk.js +0 -1
- package/client/dist/assets/agents-BZ0XQKjg.js +0 -1
- package/client/dist/assets/agents-BqWklnHR.js +0 -1
- package/client/dist/assets/agents-Bz-thHkB.js +0 -1
- package/client/dist/assets/agents-CJclElx6.js +0 -1
- package/client/dist/assets/agents-D_l9L0VA.js +0 -1
- package/client/dist/assets/agents-DhG7mg6-.js +0 -1
- package/client/dist/assets/agents-u_C0jPB5.js +0 -1
- package/client/dist/assets/agentstudio-BF19hbXj.js +0 -1
- package/client/dist/assets/agentstudio-BIUe1Im2.js +0 -1
- package/client/dist/assets/agentstudio-BLGvxWBx.js +0 -1
- package/client/dist/assets/agentstudio-D9UKiWTj.js +0 -1
- package/client/dist/assets/agentstudio-Drs37nIM.js +0 -1
- package/client/dist/assets/agentstudio-nEnKkcXM.js +0 -1
- package/client/dist/assets/agentstudio-pyFcSBKy.js +0 -1
- package/client/dist/assets/agentstudio-zfTzQh3U.js +0 -1
- package/client/dist/assets/analytics-BC7mwR4s.js +0 -1
- package/client/dist/assets/analytics-BiNg8edP.js +0 -1
- package/client/dist/assets/analytics-C0s_T2GN.js +0 -1
- package/client/dist/assets/analytics-CdsAPAwZ.js +0 -1
- package/client/dist/assets/analytics-Cr1_q-lC.js +0 -1
- package/client/dist/assets/analytics-DZ8Aoq3I.js +0 -1
- package/client/dist/assets/analytics-IEsKZvpW.js +0 -1
- package/client/dist/assets/analytics-SRPf84OT.js +0 -1
- package/client/dist/assets/builder-BH8Fua-g.js +0 -1
- package/client/dist/assets/builder-BoV7DgKd.js +0 -1
- package/client/dist/assets/builder-Cc_Lf79C.js +0 -1
- package/client/dist/assets/builder-CwZ7Bme2.js +0 -1
- package/client/dist/assets/builder-CxW-JFsR.js +0 -1
- package/client/dist/assets/builder-D94lrV7x.js +0 -1
- package/client/dist/assets/builder-cqHpCyGa.js +0 -1
- package/client/dist/assets/code-76gS0IdL.js +0 -1
- package/client/dist/assets/code-BDXEM4ml.js +0 -1
- package/client/dist/assets/code-C1VwxlML.js +0 -1
- package/client/dist/assets/code-CnMZyJpr.js +0 -1
- package/client/dist/assets/code-D20ef9Cf.js +0 -1
- package/client/dist/assets/code-DdOXaWRY.js +0 -1
- package/client/dist/assets/code-Duohuf9l.js +0 -1
- package/client/dist/assets/code-geHmknB9.js +0 -1
- package/client/dist/assets/format-command-Dfa1o2d-.js +0 -1
- package/client/dist/assets/index-Dh9i4CnN.css +0 -2
- package/client/dist/assets/index-F9r8mWP_.js +0 -76
- package/client/dist/assets/jobs-BCtGfgUA.js +0 -1
- package/client/dist/assets/jobs-BHR_EnDI.js +0 -1
- package/client/dist/assets/jobs-BMbZJjJJ.js +0 -1
- package/client/dist/assets/jobs-DzSIR8V6.js +0 -1
- package/client/dist/assets/nav-BRJBxaGt.js +0 -1
- package/client/dist/assets/nav-CAGKv3_F.js +0 -1
- package/client/dist/assets/nav-CNskRJKQ.js +0 -1
- package/client/dist/assets/nav-DY93irBL.js +0 -1
- package/client/dist/assets/nav-DhjvYgqt.js +0 -1
- package/client/dist/assets/nav-Gb-r4wop.js +0 -1
- package/client/dist/assets/nav-TvumAFD2.js +0 -1
- package/client/dist/assets/nav-myFaXRHD.js +0 -1
- package/client/dist/assets/settings-B0ypw9uw.js +0 -1
- package/client/dist/assets/settings-B9ilOSYO.js +0 -1
- package/client/dist/assets/settings-BqlWHRHA.js +0 -1
- package/client/dist/assets/settings-D8dlqt4d.js +0 -1
- package/client/dist/assets/settings-DAZqjX2a.js +0 -1
- package/client/dist/assets/settings-DRh39v1S.js +0 -1
- package/client/dist/assets/settings-Mj1OJbfd.js +0 -1
- package/client/dist/assets/settings-lRReaSYm.js +0 -1
- package/client/dist/assets/setup-3832BJCo.js +0 -1
- package/client/dist/assets/setup-B8J-gECe.js +0 -1
- package/client/dist/assets/setup-BCIOxVsc.js +0 -1
- package/client/dist/assets/setup-BciLj_tU.js +0 -1
- package/client/dist/assets/setup-CTkE3cfh.js +0 -1
- package/client/dist/assets/setup-ajB4rYm-.js +0 -1
- package/client/dist/assets/setup-xFO1wNl0.js +0 -1
|
@@ -21,7 +21,7 @@ El plugin estrella es:
|
|
|
21
21
|
3. Entra en el plugin para **previsualizar la instalación**: esto te muestra exactamente qué archivos cambiarán antes de que ocurra nada.
|
|
22
22
|
4. Haz clic en **Instalar**. Verás el progreso en directo mientras se configura.
|
|
23
23
|
|
|
24
|
-
Por debajo, la instalación es *quirúrgica y aditiva*: solo añade sus
|
|
24
|
+
Por debajo, la instalación es *quirúrgica y aditiva*: solo añade sus entradas a la configuración MCP nativa del provider elegido (y, en algunas instalaciones Claude, un fragmento en `.claude/agents/`). Nunca reescribe la configuración por completo; si no puede verificarse como saludable, se revierte de forma limpia.
|
|
25
25
|
|
|
26
26
|
## Gestionar los plugins instalados
|
|
27
27
|
|
|
@@ -37,8 +37,8 @@ Por debajo, la instalación es *quirúrgica y aditiva*: solo añade sus propias
|
|
|
37
37
|
|
|
38
38
|
## Notas sobre proveedores
|
|
39
39
|
|
|
40
|
-
Los plugins son conscientes del proveedor. Serena
|
|
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
41
|
|
|
42
42
|
## Archivos reservados
|
|
43
43
|
|
|
44
|
-
Los plugins gestionan
|
|
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.
|
|
@@ -22,7 +22,14 @@ Elegir un proyecto aquí **no** mueve tu panel: el objetivo del agente y lo que
|
|
|
22
22
|
|
|
23
23
|
## Proveedor y modelo
|
|
24
24
|
|
|
25
|
-
Justo encima del cuadro de mensaje eliges el **proveedor** (Claude, Codex
|
|
25
|
+
Justo encima del cuadro de mensaje eliges el **proveedor** (Claude, Codex,
|
|
26
|
+
Gemini o Kimi) y su **modelo**. Cada proveedor tiene su propia lista y cambiar
|
|
27
|
+
de proveedor inicia una sesión separada.
|
|
28
|
+
|
|
29
|
+
Con Kimi, los niveles limitan las herramientas MCP de Specrails, pero no
|
|
30
|
+
convierten `kimi -p` en un sandbox: Kimi aprueba sus herramientas nativas
|
|
31
|
+
automáticamente. Las acciones pure-output inseguras se rechazan antes de
|
|
32
|
+
iniciar el proceso; consulta la [matriz Kimi](../../../kimi.md).
|
|
26
33
|
|
|
27
34
|
## Niveles de permiso: tú llevas las riendas
|
|
28
35
|
|
|
@@ -35,8 +35,8 @@ Eso es todo. El rail arranca un proceso de la CLI de IA en el contexto de ejecuc
|
|
|
35
35
|
| **Pastilla de estado** | `idle`, `running` o `failed`. No hay un estado "completed" aparte — un rail vuelve a `idle` cuando su job termina limpiamente. |
|
|
36
36
|
| **Lista de specs** | Los IDs asignados a este rail. Arrastra más para añadirlas, o sácalas para desvincularlas. |
|
|
37
37
|
| **Selector de Loop** | El Loop que ejecuta este rail — uno integrado (`Implement` / `Batch` / `Freestyle`) o un loop personalizado. Mira la tabla de más abajo. Se recuerda por rail. |
|
|
38
|
-
| **Selector de perfil** | Qué perfil
|
|
39
|
-
| **Selector de motor** | Qué proveedor
|
|
38
|
+
| **Selector de perfil** | Qué perfil del proveedor se ejecuta (rails Claude y Kimi). |
|
|
39
|
+
| **Selector de motor** | Qué proveedor ejecuta el rail — Claude, Codex, Gemini o Kimi. |
|
|
40
40
|
| **▶ Play / ■ Stop** | Iniciar o cancelar. |
|
|
41
41
|
|
|
42
42
|
### Qué ejecuta un rail: Loops
|
|
@@ -47,9 +47,11 @@ Un rail ejecuta un **Loop** — la receta del trabajo. Tres loops están **integ
|
|
|
47
47
|
|------|---------|--------------|
|
|
48
48
|
| **Implement** | `/specrails:implement` | Un job que cubre todas las specs del rail. Ejecuta el pipeline completo Architect → Developer → Reviewer → Ship. El predeterminado del día a día. |
|
|
49
49
|
| **Batch** | `/specrails:batch-implement` | Un job que recorre las specs del rail de forma secuencial, en oleadas según sus dependencias. Lo mejor para varias specs relacionadas. |
|
|
50
|
-
| **Freestyle** | Freestyle | Claude
|
|
50
|
+
| **Freestyle** | Freestyle | Claude o Kimi implementan cada spec de forma autónoma, **saltándose** el pipeline. |
|
|
51
51
|
|
|
52
|
-
Freestyle
|
|
52
|
+
Freestyle usa las herramientas nativas y el catálogo de modelos del proveedor.
|
|
53
|
+
Claude tiene transporte interactivo persistente; Kimi usa un proceso agentic
|
|
54
|
+
`kimi -p` sin stdin persistente.
|
|
53
55
|
|
|
54
56
|
Más allá de los integrados, puedes **construir tus propios loops** — repetir un ciclo verify → fix → verify hasta cumplir un objetivo, encadenar comandos de shell entre pasos de IA y más. Esos loops personalizados aparecen en el mismo selector de Loop. Esa es la siguiente gran idea: [El Loop Builder](the-loop-builder).
|
|
55
57
|
|
|
@@ -81,7 +83,8 @@ Pulsa **■ Stop** en la cabecera del rail. La app envía `SIGTERM` al subproces
|
|
|
81
83
|
|
|
82
84
|
## Si un rail no se lanza
|
|
83
85
|
|
|
84
|
-
Si
|
|
86
|
+
Si falta la CLI elegida, el lanzamiento falla antes de iniciar. Para Kimi
|
|
87
|
+
instala/autentica `kimi` 0.27+; Desktop no inicia un servidor.
|
|
85
88
|
|
|
86
89
|
## Detenerlo todo
|
|
87
90
|
|
|
@@ -96,4 +99,4 @@ Si algo parece ir mal:
|
|
|
96
99
|
- [El Loop Builder](the-loop-builder) — qué ejecuta un rail y cómo construir tus propios loops.
|
|
97
100
|
- [La vista de detalle del job](the-job-detail-view) — fases, métricas en vivo, tarjetas de ticket.
|
|
98
101
|
- [Batch implement y multifuncionalidad](batch-implement-and-multi-feature) — ejecuta varias specs a la vez.
|
|
99
|
-
- [Elegir un motor por rail](picking-an-engine-per-rail) — Claude
|
|
102
|
+
- [Elegir un motor por rail](picking-an-engine-per-rail) — Claude, Codex, Gemini o Kimi.
|
|
@@ -94,7 +94,9 @@ Algunas cosas que conviene saber:
|
|
|
94
94
|
- **La línea de totales es real.** El compositor muestra un resumen en vivo `N turnos · $X`, sumado a partir del uso real de cada turno completado — coherente con la promesa de esta página de no adivinar nada.
|
|
95
95
|
- **Dos formas de terminar una sesión.** La mayoría de los jobs **terminan solos**: en cuanto un turno acaba sin mensajes en cola, la sesión se asienta y el job se completa — tus mensajes son dirección opcional, nunca una obligación. Una acción discreta **Terminar ahora** la cierra antes con todo lo producido hasta el momento. Los jobs **Freestyle** son la excepción: quedan a la espera entre turnos hasta que tú pulsas **Finalize** — ese es su diseño, una sesión de ida y vuelta que cierras cuando terminas.
|
|
96
96
|
- **En un loop, los mensajes van al paso activo.** En un loop propio o integrado, tu mensaje llega al **paso de IA que está corriendo en ese momento**. Entre pasos (mientras el Loop Decider piensa, o corre un comando de shell) el compositor muestra un breve estado *«Esperando el siguiente paso…»* — tu texto redactado se conserva, y el envío se reactiva cuando arranca el siguiente paso de IA. **Asentar este paso** cierra el paso actual antes de tiempo y deja que el loop avance con lo que produjo.
|
|
97
|
-
- **
|
|
97
|
+
- **La interacción persistente es solo Claude.** Codex, Gemini y Kimi se
|
|
98
|
+
ejecutan one-shot; Kimi reanuda chats con un nuevo `kimi --session=<id> -p` después de
|
|
99
|
+
recibir un resume hint.
|
|
98
100
|
|
|
99
101
|
## Exportar diagnóstico
|
|
100
102
|
|
|
@@ -81,4 +81,4 @@ No hay límite global de concurrencia que ajustar. Abre los proyectos o rails qu
|
|
|
81
81
|
|
|
82
82
|
- [Rails y jobs](rails-and-jobs) — el modelo de cola en profundidad.
|
|
83
83
|
- [La vista de detalle del job](the-job-detail-view) — mira un batch ejecutarse en vivo.
|
|
84
|
-
- [Elegir un motor por rail](picking-an-engine-per-rail) —
|
|
84
|
+
- [Elegir un motor por rail](picking-an-engine-per-rail) — Batch corre en cualquier proveedor; Freestyle está disponible con Claude y Kimi.
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# Elegir un motor por rail
|
|
2
2
|
|
|
3
|
-
Specrails desktop trata **Claude Code**, **Codex CLI
|
|
3
|
+
Specrails desktop trata **Claude Code**, **Codex CLI**, **Gemini CLI** y
|
|
4
|
+
**Kimi Code** como motores de primera clase. Un proyecto puede instalar
|
|
5
|
+
cualquier combinación compatible.
|
|
4
6
|
|
|
5
7
|
## Cuándo aparece el selector
|
|
6
8
|
|
|
@@ -13,30 +15,28 @@ Cuando sí aparece, tu elección es **por rail y por lanzamiento** — distintos
|
|
|
13
15
|
## Cómo elegir un motor
|
|
14
16
|
|
|
15
17
|
1. Asegúrate de que el selector de motor del rail está visible (el proyecto tiene 2 o más proveedores).
|
|
16
|
-
2. Púlsalo y elige **Claude**, **Codex** o **
|
|
18
|
+
2. Púlsalo y elige **Claude**, **Codex**, **Gemini** o **Kimi**.
|
|
17
19
|
3. Lanza el rail con **▶ Play**.
|
|
18
20
|
|
|
19
21
|
El motor seleccionado ejecuta cada fase del pipeline de ese rail. Si la CLI del motor elegido no está instalada, el lanzamiento falla rápido — no se arranca nada. Instala la CLI que falta y vuelve a intentarlo.
|
|
20
22
|
|
|
21
23
|
## En qué destaca cada motor
|
|
22
24
|
|
|
23
|
-
Los
|
|
25
|
+
Los cuatro ejecutan **Implement** y **Batch**:
|
|
24
26
|
|
|
25
27
|
| Motor | Recurre a él cuando… | Notas |
|
|
26
28
|
|--------|--------------------|-------|
|
|
27
|
-
| **Claude** |
|
|
29
|
+
| **Claude** | Necesitas coste nativo, interacción persistente o políticas de tools estrictas. | Perfiles, Freestyle y transforms estructurados. |
|
|
28
30
|
| **Codex** | Prefieres la CLI de OpenAI Codex o quieres comparar implementaciones entre proveedores. | `codex` ≥ 0.128.0. Sin reporte de coste nativo — la app rellena el coste desde su tarifario. Los perfiles no aplican. |
|
|
29
31
|
| **Gemini** | Quieres la CLI de Gemini de Google, telemetría nativa o una ejecución más barata para specs rutinarias. | `gemini` ≥ 0.11.0 (define `GEMINI_API_KEY`). Telemetría OTLP nativa. Los perfiles no aplican. |
|
|
32
|
+
| **Kimi** | Quieres Kimi agentic para Implement, Batch, Freestyle o loops sin Decider. | `kimi` ≥ 0.27.0 externo; perfiles/roles y effort low/high/max solo para K3; tokens/coste no disponibles. |
|
|
30
33
|
|
|
31
|
-
###
|
|
34
|
+
### Diferencias de capacidad
|
|
32
35
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
- **Contract Layer y SMASH** — funciones de refinamiento de spec exclusivas de Claude (son opciones de Add-Spec, no de rail, pero aplica la misma restricción).
|
|
38
|
-
|
|
39
|
-
Si un proyecto mezcla motores, la barra lateral derecha solo muestra las secciones que **todos** los proveedores instalados admiten — así, la sección **Agents** desaparece por completo en un proyecto que incluya cualquier proveedor que no sea Claude, porque los perfiles son específicos de Claude.
|
|
36
|
+
Claude y Kimi admiten perfiles y Freestyle; Codex/Gemini usan legacy. Kimi no
|
|
37
|
+
admite Loop Decider ni los transforms pure-output enumerados en la
|
|
38
|
+
[guía Kimi](../../../kimi.md). Los perfiles Claude/Kimi están separados por
|
|
39
|
+
proveedor.
|
|
40
40
|
|
|
41
41
|
## Un flujo de trabajo práctico
|
|
42
42
|
|
|
@@ -49,12 +49,14 @@ Los proyectos multiproveedor brillan cuando quieres **comparar** o **afinar cost
|
|
|
49
49
|
## Cosas a tener en cuenta
|
|
50
50
|
|
|
51
51
|
- **La selección de proveedor es inmutable tras crear el proyecto** (v1). Eliges los proveedores instalados al añadir el proyecto; no hay un interruptor en Ajustes para añadir o quitar uno después.
|
|
52
|
-
- **
|
|
52
|
+
- **Las métricas disponibles se registran.** Kimi no emite tokens ni coste USD
|
|
53
|
+
autoritativos; esos campos quedan vacíos.
|
|
53
54
|
- **El botón "Abrir CLI de IA" del terminal** también ofrece un selector de proveedor en proyectos multiproveedor, por si prefieres manejar una CLI a mano.
|
|
54
55
|
|
|
55
56
|
## A dónde ir después
|
|
56
57
|
|
|
57
58
|
- [Usar Codex](../integrations/using-codex) — instalar e iniciar sesión.
|
|
58
59
|
- [Usar Gemini](../integrations/using-gemini) — instalar, `GEMINI_API_KEY`, telemetría.
|
|
60
|
+
- [Usar Kimi](../../../kimi.md) — instalación y matriz completa.
|
|
59
61
|
- [Rails y jobs](rails-and-jobs) — la cola y el flujo de lanzamiento.
|
|
60
62
|
- [Seguimiento de costes](../analytics/tracking-cost) — desglose de coste por motor.
|
|
@@ -17,7 +17,7 @@ Un **loop** es la *receta* del trabajo; un **rail** es el *carril* que la ejecut
|
|
|
17
17
|
|
|
18
18
|
- Los loops viven en la sección **Loops** (barra lateral izquierda, junto a tus proyectos) — son **globales**, compartidos entre todos los proyectos.
|
|
19
19
|
- Un rail **elige un loop** en su cabecera (el selector de Loop) y lo ejecuta cuando pulsas Play.
|
|
20
|
-
- El **rail** decide el proveedor,
|
|
20
|
+
- El **rail** decide el proveedor, modelo y esfuerzo compatible. Un loop compatible puede ejecutarse en Claude, Codex, Gemini o Kimi.
|
|
21
21
|
|
|
22
22
|
Así que: construye un loop una vez y luego elígelo en cualquier rail de cualquier proyecto.
|
|
23
23
|
|
|
@@ -41,6 +41,10 @@ Un loop es un grafo de **nodos** conectados por **aristas** (las flechas). Cada
|
|
|
41
41
|
|
|
42
42
|
Las aristas conectan los pasos en orden. El **Loop Decider** tiene dos salidas etiquetadas — **continue** y **stop** — así que cableas "aún no terminado" de vuelta al trabajo y "terminado" hacia un End.
|
|
43
43
|
|
|
44
|
+
> **Kimi ejecuta loops con pasos AI/shell, pero no con Loop Decider.** El
|
|
45
|
+
> veredicto es pure-output y `kimi -p` no puede imponer su límite sin
|
|
46
|
+
> herramientas; el run se rechaza antes del primer paso.
|
|
47
|
+
|
|
44
48
|
### Escribir el texto de un paso
|
|
45
49
|
|
|
46
50
|
Dentro de cualquier AI Step o Decider puedes referenciar:
|
|
@@ -57,7 +61,7 @@ Un loop que nunca para gastaría dinero para siempre, así que cada ejecución t
|
|
|
57
61
|
|-------|--------------|
|
|
58
62
|
| **Max iterations** | Tope duro de cuántas veces puede el Decider volver atrás, sin importar su veredicto. |
|
|
59
63
|
| **Timeout (min)** | Límite de tiempo real para toda la ejecución. |
|
|
60
|
-
| **Max cost ($)** | *Opcional.*
|
|
64
|
+
| **Max cost ($)** | *Opcional.* Claude aporta coste; Codex/Gemini usan estimación. Kimi no emite coste USD autoritativo. |
|
|
61
65
|
|
|
62
66
|
## Construir con confianza
|
|
63
67
|
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
El modo Quick es para cuando ya sabes lo que quieres. Escribes tu idea, la IA redacta la spec completa y esta aterriza en tu tablero como **Por hacer**. Sin idas y venidas: solo descríbela y listo.
|
|
4
4
|
|
|
5
|
+
> **Kimi no está disponible en Quick Spec.** `kimi -p` no puede imponer el
|
|
6
|
+
> límite pure-output de este formulario. La petición se rechaza antes de
|
|
7
|
+
> iniciar Kimi; usa Explore, Raw o Quick Launcher (`/opsx:ff`).
|
|
8
|
+
|
|
5
9
|
## Crear una spec en modo Quick
|
|
6
10
|
|
|
7
11
|
Para crear una spec rápidamente:
|
|
@@ -19,7 +23,8 @@ Ese es todo el flujo. Todo lo que viene a continuación son ajustes opcionales.
|
|
|
19
23
|
|
|
20
24
|
**Modelo**: por defecto, la IA elige un modelo razonable. Puedes sobrescribirlo por spec desde el selector de modelo si quieres uno más rápido o más capaz.
|
|
21
25
|
|
|
22
|
-
**Motor**: si
|
|
26
|
+
**Motor**: si el proyecto tiene más de un proveedor **compatible**, aparece el
|
|
27
|
+
selector. Kimi queda excluido de Quick Spec.
|
|
23
28
|
|
|
24
29
|
**Contexto**: el modo Quick normalmente se ejecuta en un solo turno, porque no necesita leer tu código para escribir una spec a partir de tu descripción. Pero un control deslizante de contexto te permite darle más material con el que trabajar:
|
|
25
30
|
|
|
@@ -37,7 +37,11 @@ Voilà tout le flux : choisir un profil, lancer, terminé. Des rails simultanés
|
|
|
37
37
|
|
|
38
38
|
## Quand la section Agents reste silencieuse
|
|
39
39
|
|
|
40
|
-
Les profils sont
|
|
40
|
+
Les profils sont séparés par fournisseur. Claude et Kimi prennent en charge
|
|
41
|
+
profils/rôles ; Codex et Gemini utilisent le mode legacy. Dans un projet
|
|
42
|
+
mixte, un même nom ne traverse jamais Claude/Kimi. Kimi permet les rôles
|
|
43
|
+
manuels, mais génération, smoke test et AI Refine d'Agent Studio échouent
|
|
44
|
+
avant démarrage. Kimi exige `specrails-core` 4.12.0 ou plus récent.
|
|
41
45
|
|
|
42
46
|
## Pour aller plus loin
|
|
43
47
|
|
|
@@ -11,21 +11,24 @@ Chaque entrée du catalogue indique à quoi sert l'agent et son modèle par déf
|
|
|
11
11
|
|
|
12
12
|
## Ajouter un agent personnalisé
|
|
13
13
|
|
|
14
|
-
Les
|
|
14
|
+
Les rôles sont des assets natifs du fournisseur : Claude utilise
|
|
15
|
+
`.claude/agents/custom-<nom>.md` ; Kimi utilise
|
|
16
|
+
`.kimi-code/skills/custom-<nom>/SKILL.md`.
|
|
15
17
|
|
|
16
|
-
Dès que
|
|
18
|
+
Dès que l'asset existe, il apparaît dans le catalogue de ce fournisseur et son id peut rejoindre un profil du même fournisseur. `custom-docs` correspond à `.claude/agents/custom-docs.md` pour Claude ou à `.kimi-code/skills/custom-docs/SKILL.md` pour Kimi ; les deux restent indépendants.
|
|
17
19
|
|
|
18
20
|
Parce qu'ils vivent dans votre dépôt, les agents personnalisés sont des **ressources d'équipe commitables** : commitez le fichier et toute votre équipe récupère l'agent. Cela reflète l'idée centrale qui traverse toute la section Agents —
|
|
19
21
|
|
|
20
22
|
> **Les définitions d'agents sont partagées (elles vivent dans le dépôt et voyagent avec `git`). La configuration des modèles est propre au projet (elle vit dans les profils).**
|
|
21
23
|
|
|
22
|
-
|
|
24
|
+
Core protège les deux formats. Kimi permet création/édition manuelle et
|
|
25
|
+
exécution ; Generate, Test et AI Refine échouent avant démarrage.
|
|
23
26
|
|
|
24
27
|
## Mettre un agent personnalisé au travail
|
|
25
28
|
|
|
26
29
|
Le flux typique :
|
|
27
30
|
|
|
28
|
-
1.
|
|
31
|
+
1. Créez l'asset natif Claude ou le Skill Kimi avec instructions/modèle valides.
|
|
29
32
|
2. Vérifiez qu'il apparaît bien dans **Agents → Catalogue** sous Personnalisés.
|
|
30
33
|
3. Dans **Agents → Profils**, ajoutez l'agent à la chaîne d'un profil (en surchargeant éventuellement son modèle pour ce profil).
|
|
31
34
|
4. Ajoutez une règle de routage pour que les tâches portant les bons tags l'atteignent — ou reposez-vous sur l'ordre de la chaîne.
|
|
@@ -36,6 +36,7 @@ Specrails fonctionne avec les principales CLI de codage IA :
|
|
|
36
36
|
- **Claude** (Claude Code)
|
|
37
37
|
- **Codex** (Codex CLI)
|
|
38
38
|
- **Gemini** (Gemini CLI)
|
|
39
|
+
- **Kimi** (Kimi Code)
|
|
39
40
|
|
|
40
41
|
Choisissez celui que vous utilisez déjà — ou installez-en plusieurs et choisissez selon la tâche. Un projet peut tourner sur un seul fournisseur ou sur plusieurs à la fois, vous n'êtes donc jamais enfermé.
|
|
41
42
|
|
|
@@ -23,6 +23,7 @@ La seule chose que specrails ne peut pas intégrer, c'est la **CLI du fournisseu
|
|
|
23
23
|
- **Claude Code**
|
|
24
24
|
- **Codex CLI**
|
|
25
25
|
- **Gemini CLI**
|
|
26
|
+
- **Kimi Code**
|
|
26
27
|
|
|
27
28
|
Installez celle que vous comptez utiliser, connectez-vous une fois depuis votre terminal, et le tour est joué. Specrails détecte automatiquement les fournisseurs présents.
|
|
28
29
|
|
|
@@ -26,13 +26,13 @@ La barre latérale droite est votre tableau d'aiguillage pour le projet courant.
|
|
|
26
26
|
|
|
27
27
|
- **Tableau de bord** — le tableau des specs et les rails (là d'où vous venez).
|
|
28
28
|
- **Jobs** — chaque exécution de pipeline pour ce projet, passée et présente, avec son statut, sa durée et la possibilité de plonger dans le détail et les logs de n'importe quelle exécution.
|
|
29
|
-
- **Analytics** —
|
|
30
|
-
- **Agents** —
|
|
31
|
-
- **Code** — un explorateur de fichiers en lecture seule
|
|
29
|
+
- **Analytics** — les invocations par jour, activité, modèle et ticket. Claude fournit le coût facturé, Codex/Gemini des estimations, et Kimi laisse vides les champs tokens/coût USD indisponibles.
|
|
30
|
+
- **Agents** — profils et catalogues de rôles propres au fournisseur pour Claude et Kimi. Avec Kimi, les rôles se créent et se modifient manuellement ; Generate, Test et AI Refine sont indisponibles.
|
|
31
|
+
- **Code** — un explorateur de fichiers en lecture seule et des badges indiquant quels fichiers l'IA a touchés. Les résumés IA en langage clair n'apparaissent qu'avec un fournisseur compatible ; ils sont indisponibles avec Kimi.
|
|
32
32
|
- **Intégrations** — des extensions facultatives, comme connecter vos specs à un tableau **Jira** ou activer des outils supplémentaires pour l'IA.
|
|
33
33
|
- **Paramètres** — les options par projet (télémétrie, budgets, configuration des fournisseurs, et plus encore).
|
|
34
34
|
|
|
35
|
-
>
|
|
35
|
+
> Les sections et actions suivent les capacités du fournisseur effectif. Les profils fonctionnent par exemple avec Claude et Kimi, mais les actions IA d'Agent Studio échouent de façon fermée avec Kimi.
|
|
36
36
|
|
|
37
37
|
## La barre de statut
|
|
38
38
|
|
|
@@ -1,16 +1,21 @@
|
|
|
1
|
-
# Fournisseurs d'IA (Claude, Codex, Gemini)
|
|
1
|
+
# Fournisseurs d'IA (Claude, Codex, Gemini, Kimi)
|
|
2
2
|
|
|
3
|
-
Specrails n'est lié à aucune IA
|
|
3
|
+
Specrails n'est lié à aucune IA. Claude, Codex, Gemini et Kimi sont des
|
|
4
|
+
fournisseurs de premier plan ; chaque surface ne propose que les moteurs dont
|
|
5
|
+
les capacités respectent son contrat.
|
|
4
6
|
|
|
5
|
-
## Les
|
|
7
|
+
## Les quatre fournisseurs
|
|
6
8
|
|
|
7
9
|
| Fournisseur | CLI | Édité par | Notes |
|
|
8
10
|
|---|---|---|---|
|
|
9
|
-
| **Claude** | `claude` | Anthropic |
|
|
11
|
+
| **Claude** | `claude` | Anthropic | Coût natif et transport interactif persistant. |
|
|
10
12
|
| **Codex** | `codex` | OpenAI | Nécessite codex `0.128.0+`. Lit ses serveurs MCP depuis votre fichier global `~/.codex/config.toml`. |
|
|
11
13
|
| **Gemini** | `gemini` | Google | Nécessite gemini `0.11.0+`. Utilise une télémétrie native et un fichier d'instructions `GEMINI.md`. |
|
|
14
|
+
| **Kimi Code** | `kimi` | Moonshot AI | Nécessite Kimi `0.27.0+`. Desktop lance la CLI externe avec `-p` ; aucun serveur n'est installé ou démarré. |
|
|
12
15
|
|
|
13
|
-
Les
|
|
16
|
+
Les quatre sont **activés par défaut**. Un fournisseur apparaît dans **Ajouter
|
|
17
|
+
un projet** lorsque sa CLI est installée et présente dans votre `PATH`. Pour
|
|
18
|
+
Kimi, vérifiez `kimi --version` puis exécutez `kimi login`.
|
|
14
19
|
|
|
15
20
|
## Installer un fournisseur pour un projet
|
|
16
21
|
|
|
@@ -25,40 +30,46 @@ Vous pouvez installer **plus d'un** fournisseur dans le même projet — par exe
|
|
|
25
30
|
Quelques points utiles à connaître sur les projets multi-fournisseurs :
|
|
26
31
|
|
|
27
32
|
- **Avec un seul fournisseur, rien ne change.** Si un projet n'a qu'un seul fournisseur, vous ne verrez jamais de sélecteur de fournisseur où que ce soit — l'app reste épurée et simple.
|
|
28
|
-
- **
|
|
33
|
+
- **Les capacités pilotent l'interface.** Claude et Kimi prennent en charge des
|
|
34
|
+
profils séparés par fournisseur ; Codex et Gemini utilisent le mode legacy.
|
|
29
35
|
- **Le choix des fournisseurs est verrouillé après la création.** Dans cette version, vous choisissez vos fournisseurs au moment d'ajouter le projet et vous ne pouvez plus les modifier ensuite depuis les Réglages. S'il vous faut une combinaison différente, créez un nouveau projet.
|
|
30
36
|
|
|
31
37
|
## Choisir un fournisseur à chaque invocation
|
|
32
38
|
|
|
33
39
|
Tout l'intérêt d'un projet multi-fournisseurs, c'est de choisir l'IA la plus adaptée à chaque tâche — sans toucher au moindre réglage global. Partout où une IA s'exécute, un petit sélecteur de fournisseur apparaît (uniquement lorsque le projet en compte plusieurs) :
|
|
34
40
|
|
|
35
|
-
- **Ajouter une spec** —
|
|
41
|
+
- **Ajouter une spec** — Explore accepte Kimi ; Quick Spec ne propose que les
|
|
42
|
+
fournisseurs capables d'imposer sa frontière pure-output, donc pas Kimi.
|
|
36
43
|
- **En-tête de rail** — choisissez le moteur de ce rail précis avant de le lancer.
|
|
37
44
|
- **Terminal** — le bouton « Open AI CLI » (Sparkles) ouvre un menu de fournisseurs pour basculer dans n'importe quelle CLI installée, dans le répertoire de ce projet.
|
|
38
45
|
|
|
39
46
|
Votre choix est mémorisé par projet, avec le fournisseur principal comme valeur par défaut, pour ne pas avoir à le refaire à chaque fois.
|
|
40
47
|
|
|
41
|
-
##
|
|
48
|
+
## Différences de capacités
|
|
42
49
|
|
|
43
|
-
|
|
50
|
+
Kimi prend en charge Project/Agent Chat, Explore et les propositions, Quick
|
|
51
|
+
Launcher (`/opsx:ff`), les rails, Freestyle, les loops sans Decider, les
|
|
52
|
+
profils/rôles manuels, MCP, Serena, le terminal et les pièces jointes.
|
|
44
53
|
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
54
|
+
`kimi -p` approuve automatiquement les outils et ne peut pas imposer une
|
|
55
|
+
frontière sans outils/read-only. Sont donc refusés avant démarrage : Quick
|
|
56
|
+
Spec, AI Edit, Contract Refine, SMASH/Re-SMASH, génération de
|
|
57
|
+
blueprint/milestone Project Builder, Loop Decider, résumés/histoire de
|
|
58
|
+
construction et automatisation Agent Studio. L'auto-title utilise un fallback
|
|
59
|
+
déterministe. Voir le [guide Kimi](../../../kimi.md).
|
|
51
60
|
|
|
52
61
|
## Suivi des coûts entre fournisseurs
|
|
53
62
|
|
|
54
|
-
|
|
63
|
+
**Analytics** enregistre les invocations réellement lancées. Claude rapporte
|
|
64
|
+
son coût ; Codex et Gemini utilisent une estimation. Kimi ne fournit ni tokens
|
|
65
|
+
ni coût USD autoritatifs, donc ces champs restent vides.
|
|
55
66
|
|
|
56
67
|
## Dépannage
|
|
57
68
|
|
|
58
|
-
- **Un fournisseur que j'ai installé n'est pas proposé.** Vérifiez
|
|
69
|
+
- **Un fournisseur que j'ai installé n'est pas proposé.** Vérifiez la CLI dans votre `PATH` (`claude --version` / `codex --version` / `gemini --version` / `kimi --version`).
|
|
59
70
|
- **Les serveurs MCP de Codex ne se chargent pas dans le chat.** Codex lit ses serveurs MCP depuis votre fichier global `~/.codex/config.toml` — enregistrez-les là avec `codex mcp add`.
|
|
60
71
|
- **Désactivation d'urgence.** Un fournisseur peut être coupé à l'échelle de l'app via une variable d'environnement (`SPECRAILS_CODEX_BETA=0` ou `SPECRAILS_GEMINI_BETA=0`). Cela masque uniquement le fournisseur de la *sélection* ; c'est rarement nécessaire.
|
|
61
72
|
|
|
62
73
|
## Voir aussi
|
|
63
74
|
|
|
64
|
-
|
|
75
|
+
Consultez les guides dédiés à [Kimi](../../../kimi.md), Codex et Gemini.
|
|
@@ -21,7 +21,7 @@ Le plugin phare est :
|
|
|
21
21
|
3. Cliquez sur le plugin pour **prévisualiser l'installation** — cela vous montre exactement quels fichiers vont changer avant que quoi que ce soit ne se produise.
|
|
22
22
|
4. Cliquez sur **Installer**. Vous suivez la progression en direct pendant la mise en place.
|
|
23
23
|
|
|
24
|
-
En coulisses, l'installation est *chirurgicale et additive* : elle n'ajoute
|
|
24
|
+
En coulisses, l'installation est *chirurgicale et additive* : elle n'ajoute ses entrées qu'à la configuration MCP native du fournisseur choisi (et, pour certaines installations Claude, un fragment sous `.claude/agents/`). Elle ne réécrit jamais toute la configuration et revient proprement en arrière si la vérification échoue.
|
|
25
25
|
|
|
26
26
|
## Gérer les plugins installés
|
|
27
27
|
|
|
@@ -37,8 +37,8 @@ En coulisses, l'installation est *chirurgicale et additive* : elle n'ajoute que
|
|
|
37
37
|
|
|
38
38
|
## Notes sur les fournisseurs
|
|
39
39
|
|
|
40
|
-
Les plugins tiennent compte du fournisseur. Serena
|
|
40
|
+
Les plugins tiennent compte du fournisseur. Serena prend en charge Claude via `.mcp.json`, Codex via `codex mcp add` avec un `CODEX_HOME` isolé par projet, et Kimi via `.kimi-code/mcp.json`. Un plugin n'apparaît que si son manifeste déclare le fournisseur ; Serena n'est donc pas proposé pour Gemini. La carte Jira reste indépendante du fournisseur.
|
|
41
41
|
|
|
42
42
|
## Fichiers réservés
|
|
43
43
|
|
|
44
|
-
Les plugins gèrent
|
|
44
|
+
Les plugins gèrent la configuration MCP native du fournisseur, l'état sous `.specrails/plugins/` et, uniquement pour Claude si nécessaire, des fragments sous `.claude/agents/custom-<plugin>.md`. Les entrées Kimi vivent dans `.kimi-code/mcp.json` ; l'app n'écrit aucun fragment réservé à Claude pour Kimi et n'écrase jamais une configuration aveuglément.
|
|
@@ -22,7 +22,14 @@ Choisir un projet ici **ne déplace pas** votre tableau de bord : la cible de l'
|
|
|
22
22
|
|
|
23
23
|
## Fournisseur et modèle
|
|
24
24
|
|
|
25
|
-
Juste au-dessus de la zone de message, vous choisissez le **fournisseur**
|
|
25
|
+
Juste au-dessus de la zone de message, vous choisissez le **fournisseur**
|
|
26
|
+
(Claude, Codex, Gemini ou Kimi) et son **modèle**. Changer de fournisseur
|
|
27
|
+
démarre une session séparée.
|
|
28
|
+
|
|
29
|
+
Avec Kimi, les niveaux limitent les outils MCP Specrails mais ne transforment
|
|
30
|
+
pas `kimi -p` en sandbox : ses outils natifs sont approuvés automatiquement.
|
|
31
|
+
Les actions pure-output non sûres sont refusées avant démarrage ; voir la
|
|
32
|
+
[matrice Kimi](../../../kimi.md).
|
|
26
33
|
|
|
27
34
|
## Niveaux d'autorisation — c'est vous qui tenez la laisse
|
|
28
35
|
|
|
@@ -35,8 +35,8 @@ Voilà. Le rail démarre un processus AI CLI dans le bon contexte d'exécution e
|
|
|
35
35
|
| **Pastille de statut** | `idle`, `running`, ou `failed`. Il n'y a pas de « completed » séparé — un rail revient à `idle` quand son job se termine proprement. |
|
|
36
36
|
| **Liste de specs** | Les IDs assignés à ce rail. Glissez-en d'autres, retirez-les pour les détacher. |
|
|
37
37
|
| **Sélecteur de Loop** | Le Loop que ce rail exécute — un intégré (`Implement` / `Batch` / `Freestyle`) ou un loop personnalisé. Voir le tableau ci-dessous. Persisté par rail. |
|
|
38
|
-
| **Sélecteur de profil** | Quel profil
|
|
39
|
-
| **Sélecteur de moteur** | Quel provider
|
|
38
|
+
| **Sélecteur de profil** | Quel profil fournisseur s'exécute (rails Claude et Kimi). |
|
|
39
|
+
| **Sélecteur de moteur** | Quel provider exécute ce rail — Claude, Codex, Gemini ou Kimi. |
|
|
40
40
|
| **▶ Play / ■ Stop** | Démarrer ou annuler. |
|
|
41
41
|
|
|
42
42
|
### Ce qu'un rail exécute : les Loops
|
|
@@ -47,9 +47,11 @@ Un rail exécute un **Loop** — la recette du travail. Trois loops sont **inté
|
|
|
47
47
|
|------|---------|--------------|
|
|
48
48
|
| **Implement** | `/specrails:implement` | Un seul job couvrant tous les specs du rail. Exécute tout le pipeline Architect → Developer → Reviewer → Ship. Le choix par défaut au quotidien. |
|
|
49
49
|
| **Batch** | `/specrails:batch-implement` | Un seul job qui traite les specs du rail séquentiellement, en vagues tenant compte des dépendances. Idéal pour plusieurs specs liés. |
|
|
50
|
-
| **Freestyle** | Freestyle | Claude implémente chaque spec de manière autonome, en **contournant** le pipeline.
|
|
50
|
+
| **Freestyle** | Freestyle | Claude ou Kimi implémente chaque spec de manière autonome, en **contournant** le pipeline. |
|
|
51
51
|
|
|
52
|
-
Freestyle
|
|
52
|
+
Freestyle utilise les outils et modèles natifs du fournisseur. Claude possède
|
|
53
|
+
un transport interactif persistant ; Kimi utilise un processus agentic
|
|
54
|
+
`kimi -p` sans stdin persistant.
|
|
53
55
|
|
|
54
56
|
Au-delà des intégrés, vous pouvez **construire vos propres loops** — répéter un cycle verify → fix → verify jusqu'à ce qu'un objectif soit atteint, enchaîner des commandes shell entre les étapes IA, et plus encore. Ces loops personnalisés apparaissent dans le même sélecteur de Loop. C'est la prochaine grande idée : [Le Loop Builder](the-loop-builder).
|
|
55
57
|
|
|
@@ -81,7 +83,8 @@ Cliquez sur **■ Stop** dans l'en-tête du rail. L'app envoie `SIGTERM` au sous
|
|
|
81
83
|
|
|
82
84
|
## Si un rail ne se lance pas
|
|
83
85
|
|
|
84
|
-
Si
|
|
86
|
+
Si la CLI choisie manque, le lancement échoue avant démarrage. Pour Kimi,
|
|
87
|
+
installez/authentifiez `kimi` 0.27+ ; Desktop ne démarre aucun serveur.
|
|
85
88
|
|
|
86
89
|
## Tout arrêter
|
|
87
90
|
|
|
@@ -96,4 +99,4 @@ Si quelque chose semble anormal :
|
|
|
96
99
|
- [Le Loop Builder](the-loop-builder) — ce qu'un rail exécute, et comment construire vos propres loops.
|
|
97
100
|
- [La vue détaillée du job](the-job-detail-view) — phases, métriques en direct, cartes de ticket.
|
|
98
101
|
- [Batch implement et multi-fonctionnalité](batch-implement-and-multi-feature) — exécutez plusieurs specs à la fois.
|
|
99
|
-
- [Choisir un moteur par rail](picking-an-engine-per-rail) — Claude
|
|
102
|
+
- [Choisir un moteur par rail](picking-an-engine-per-rail) — Claude, Codex, Gemini ou Kimi.
|
|
@@ -94,7 +94,9 @@ Quelques points à connaître :
|
|
|
94
94
|
- **La ligne de totaux est réelle.** Le composeur affiche un résumé en direct `N tours · $X`, sommé à partir de l'usage réel de chaque tour terminé — cohérent avec la promesse de cette page de ne rien deviner.
|
|
95
95
|
- **Deux façons de terminer une session.** La plupart des jobs **se terminent tout seuls** : dès qu'un tour se conclut sans message en attente, la session se règle et le job se termine — vos messages sont un pilotage optionnel, jamais une obligation. Une action discrète **Conclure maintenant** l'arrête plus tôt avec tout ce qui a été produit. Les jobs **Freestyle** sont l'exception : ils patientent entre les tours jusqu'à ce que vous cliquiez sur **Finalize** — c'est leur conception, une session d'aller-retour que vous fermez quand vous avez fini.
|
|
96
96
|
- **Dans un loop, les messages vont à l'étape active.** Sur un loop intégré ou personnalisé, votre message atteint **l'étape IA en cours d'exécution**. Entre les étapes (pendant que le Loop Decider réfléchit ou qu'une commande shell tourne), le composeur affiche un bref état *« En attente de la prochaine étape… »* — votre brouillon est conservé, et l'envoi se réactive au démarrage de la prochaine étape IA. **Régler cette étape** termine l'étape en cours plus tôt et laisse le loop avancer avec ce qu'elle a produit.
|
|
97
|
-
- **
|
|
97
|
+
- **L'interaction persistante est réservée à Claude.** Codex, Gemini et Kimi
|
|
98
|
+
sont one-shot ; Kimi reprend un chat avec un nouveau `kimi --session=<id> -p` après un
|
|
99
|
+
resume hint réussi.
|
|
98
100
|
|
|
99
101
|
## Export de diagnostic
|
|
100
102
|
|
|
@@ -81,4 +81,4 @@ Il n'y a aucune limite globale de concurrence à régler. Ouvrez les projets ou
|
|
|
81
81
|
|
|
82
82
|
- [Rails et jobs](rails-and-jobs) — le modèle de file d'attente en détail.
|
|
83
83
|
- [La vue détaillée du job](the-job-detail-view) — regarder un batch s'exécuter en direct.
|
|
84
|
-
- [Choisir un moteur par rail](picking-an-engine-per-rail) —
|
|
84
|
+
- [Choisir un moteur par rail](picking-an-engine-per-rail) — Batch fonctionne avec tous les fournisseurs ; Freestyle est disponible avec Claude et Kimi.
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# Choisir un moteur par rail
|
|
2
2
|
|
|
3
|
-
Specrails desktop traite **Claude Code**, **Codex CLI
|
|
3
|
+
Specrails desktop traite **Claude Code**, **Codex CLI**, **Gemini CLI** et
|
|
4
|
+
**Kimi Code** comme des moteurs de premier plan. Toute combinaison compatible
|
|
5
|
+
peut être installée.
|
|
4
6
|
|
|
5
7
|
## Quand le sélecteur apparaît
|
|
6
8
|
|
|
@@ -13,30 +15,28 @@ Quand il apparaît, votre choix se fait **par rail et par lancement** — diffé
|
|
|
13
15
|
## Comment choisir un moteur
|
|
14
16
|
|
|
15
17
|
1. Assurez-vous que le sélecteur de moteur du rail est visible (le projet a 2 fournisseurs ou plus).
|
|
16
|
-
2. Cliquez dessus et choisissez **Claude**, **Codex** ou **
|
|
18
|
+
2. Cliquez dessus et choisissez **Claude**, **Codex**, **Gemini** ou **Kimi**.
|
|
17
19
|
3. Lancez le rail avec **▶ Play**.
|
|
18
20
|
|
|
19
21
|
Le moteur sélectionné exécute chaque phase du pipeline de ce rail. Si la CLI du moteur choisi n'est pas installée, le lancement échoue immédiatement — rien ne démarre. Installez la CLI manquante et réessayez.
|
|
20
22
|
|
|
21
23
|
## Les points forts de chaque moteur
|
|
22
24
|
|
|
23
|
-
Les
|
|
25
|
+
Les quatre exécutent **Implement** et **Batch** :
|
|
24
26
|
|
|
25
27
|
| Moteur | À privilégier quand… | Notes |
|
|
26
28
|
|--------|--------------------|-------|
|
|
27
|
-
| **Claude** | Vous
|
|
29
|
+
| **Claude** | Vous avez besoin du coût natif, de l'interaction persistante ou de politiques d'outils strictes. | Profils, Freestyle et transforms structurés. |
|
|
28
30
|
| **Codex** | Vous préférez la CLI Codex d'OpenAI ou vous voulez comparer les implémentations entre fournisseurs. | `codex` ≥ 0.128.0. Pas de rapport de coût natif — l'application complète le coût à partir de sa table de tarifs. Les profils ne s'appliquent pas. |
|
|
29
31
|
| **Gemini** | Vous voulez la CLI Gemini de Google, la télémétrie native, ou une exécution moins chère pour les specs de routine. | `gemini` ≥ 0.11.0 (définissez `GEMINI_API_KEY`). Télémétrie OTLP native. Les profils ne s'appliquent pas. |
|
|
32
|
+
| **Kimi** | Vous voulez Kimi agentic pour Implement, Batch, Freestyle ou loops sans Decider. | `kimi` ≥ 0.27.0 externe ; profils/rôles, effort K3 seulement ; tokens/coût indisponibles. |
|
|
30
33
|
|
|
31
|
-
###
|
|
34
|
+
### Différences de capacité
|
|
32
35
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
-
|
|
36
|
-
|
|
37
|
-
- **Contract Layer et SMASH** — fonctionnalités de raffinement de spec réservées à Claude (ce sont des options d'Add Spec, pas des options de rail, mais la même contrainte s'applique).
|
|
38
|
-
|
|
39
|
-
Si un projet mélange les moteurs, la barre latérale droite n'affiche que les sections prises en charge par **tous** les fournisseurs installés — la section **Agents** disparaît donc entièrement sur un projet qui inclut un fournisseur non-Claude, car les profils sont spécifiques à Claude.
|
|
36
|
+
Claude et Kimi prennent en charge profils et Freestyle ; Codex/Gemini
|
|
37
|
+
utilisent le mode legacy. Kimi refuse Loop Decider et les transforms
|
|
38
|
+
pure-output listés dans le [guide Kimi](../../../kimi.md). Les profils
|
|
39
|
+
Claude/Kimi restent séparés.
|
|
40
40
|
|
|
41
41
|
## Un flux de travail pratique
|
|
42
42
|
|
|
@@ -49,12 +49,14 @@ Les projets multi-fournisseurs brillent lorsque vous voulez **comparer** ou **op
|
|
|
49
49
|
## Points à garder en tête
|
|
50
50
|
|
|
51
51
|
- **La sélection des fournisseurs est immuable après la création du projet** (v1). Vous choisissez les fournisseurs installés au moment d'ajouter le projet ; il n'y a aucun réglage dans les Paramètres pour en ajouter ou en retirer un plus tard.
|
|
52
|
-
- **
|
|
52
|
+
- **Les métriques disponibles sont suivies.** Kimi ne fournit ni tokens ni
|
|
53
|
+
coût USD autoritatifs ; ces champs restent vides.
|
|
53
54
|
- **Le bouton « Open AI CLI » du terminal** propose également un sélecteur de fournisseur sur les projets multi-fournisseurs, si vous préférez piloter une CLI à la main.
|
|
54
55
|
|
|
55
56
|
## Où aller ensuite
|
|
56
57
|
|
|
57
58
|
- [Utiliser Codex](../integrations/using-codex) — installation et connexion.
|
|
58
59
|
- [Utiliser Gemini](../integrations/using-gemini) — installation, `GEMINI_API_KEY`, télémétrie.
|
|
60
|
+
- [Utiliser Kimi](../../../kimi.md) — installation et matrice complète.
|
|
59
61
|
- [Rails et jobs](rails-and-jobs) — la file d'attente et le flux de lancement.
|
|
60
62
|
- [Suivre le coût](../analytics/tracking-cost) — répartition du coût par moteur.
|