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
|
@@ -1,20 +1,31 @@
|
|
|
1
|
-
# AI providers (Claude, Codex, Gemini)
|
|
1
|
+
# AI providers (Claude, Codex, Gemini, Kimi)
|
|
2
2
|
|
|
3
|
-
Specrails isn't tied to a single AI.
|
|
3
|
+
Specrails isn't tied to a single AI. Explore, rails, chat, loops, and the
|
|
4
|
+
terminal's "Open AI CLI" action run through a provider adapter; pure-output
|
|
5
|
+
surfaces additionally require a safe tool policy. You choose the provider set
|
|
6
|
+
for a project and can switch among compatible engines per invocation.
|
|
4
7
|
|
|
5
|
-
## The
|
|
8
|
+
## The four providers
|
|
6
9
|
|
|
7
10
|
| Provider | CLI | Made by | Notes |
|
|
8
11
|
|---|---|---|---|
|
|
9
|
-
| **Claude** | `claude` | Anthropic |
|
|
12
|
+
| **Claude** | `claude` | Anthropic | Native billed-cost events and persistent interactive stdin. |
|
|
10
13
|
| **Codex** | `codex` | OpenAI | Needs codex `0.128.0+`. Reads its MCP servers from your global `~/.codex/config.toml`. |
|
|
11
14
|
| **Gemini** | `gemini` | Google | Needs gemini `0.11.0+`. Uses native telemetry and a `GEMINI.md` instructions file. |
|
|
15
|
+
| **Kimi Code** | `kimi` | Moonshot AI | Needs Kimi Code `0.27.0+`. Uses CLI-only `-p` execution and `.kimi-code` directory-form skills. |
|
|
12
16
|
|
|
13
|
-
All
|
|
17
|
+
All four are registered by default. A provider is selectable in **Add Project**
|
|
18
|
+
when its CLI is installed, executable, and on `PATH`. Once its `--version`
|
|
19
|
+
command works in a fresh terminal, Specrails can use it. Kimi users must also
|
|
20
|
+
complete `kimi login`; the setup probe does not spend quota merely to test
|
|
21
|
+
authentication.
|
|
14
22
|
|
|
15
23
|
## Installing one provider for a project
|
|
16
24
|
|
|
17
|
-
When you add a project, the setup wizard asks which provider(s) to install.
|
|
25
|
+
When you add a project, the setup wizard asks which provider(s) to install.
|
|
26
|
+
Pick one, click through the install step, and you're done. From there on the
|
|
27
|
+
project has that provider, while each surface checks its advertised
|
|
28
|
+
capabilities. See [Using Kimi](../../../kimi.md) for Kimi's exact matrix.
|
|
18
29
|
|
|
19
30
|
If a CLI you want isn't offered in Add Project, it's almost always because the CLI isn't installed or isn't on your `PATH`. Install it, then reopen Add Project.
|
|
20
31
|
|
|
@@ -25,40 +36,70 @@ You can install **more than one** provider into the same project — for example
|
|
|
25
36
|
A few things worth knowing about multi-provider projects:
|
|
26
37
|
|
|
27
38
|
- **One provider behaves exactly like before.** If a project has just a single provider, you'll never see a provider picker anywhere — the app stays clean and simple.
|
|
28
|
-
- **
|
|
39
|
+
- **Capability checks drive the sidebar.** Sections are visible only when their
|
|
40
|
+
backing behavior is supported by the relevant installed providers. Kimi
|
|
41
|
+
advertises profiles, custom roles, and Freestyle; it does not advertise
|
|
42
|
+
structured actions that require an enforceable no-tools boundary.
|
|
29
43
|
- **Provider choice is locked after creation.** In this version you choose your providers when you add the project and they can't be changed later from Settings. If you need a different mix, that's a fresh project.
|
|
30
44
|
|
|
31
45
|
## Picking a provider per invocation
|
|
32
46
|
|
|
33
47
|
The real payoff of a multi-provider project is choosing the right AI for each task — without changing any global setting. Wherever an AI runs, a small provider picker appears (only when the project has more than one):
|
|
34
48
|
|
|
35
|
-
- **Add Spec** — an engine selector lets you Explore
|
|
36
|
-
|
|
49
|
+
- **Add Spec** — an engine selector lets you Explore with a compatible
|
|
50
|
+
provider. Quick Spec only lists providers that can enforce its pure-output
|
|
51
|
+
boundary; Kimi uses Explore or the agentic Quick Launcher instead.
|
|
52
|
+
- **Rail header** — pick the engine, model, profile, and supported reasoning
|
|
53
|
+
effort for that rail.
|
|
37
54
|
- **Terminal** — the "Open AI CLI" (Sparkles) button opens a provider menu so you can drop into any installed CLI in that project's directory.
|
|
38
55
|
|
|
39
56
|
Your choice is remembered per project, defaulting to the primary provider, so you don't have to re-pick every time.
|
|
40
57
|
|
|
41
|
-
##
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
- **
|
|
47
|
-
|
|
48
|
-
- **
|
|
49
|
-
|
|
50
|
-
|
|
58
|
+
## Capability differences
|
|
59
|
+
|
|
60
|
+
The application exposes the same provider-independent workflows where the CLI
|
|
61
|
+
contract can support them. Native telemetry and transport still differ:
|
|
62
|
+
|
|
63
|
+
- **Claude** reports billed USD cost and supports a long-lived stdin chat
|
|
64
|
+
transport.
|
|
65
|
+
- **Codex and Gemini** report enough usage to estimate cost from the local rate
|
|
66
|
+
card.
|
|
67
|
+
- **Kimi** emits text, tool activity, errors/retries, and a resumable session
|
|
68
|
+
hint, but no authoritative token or USD-cost envelope. Those fields remain
|
|
69
|
+
unavailable.
|
|
70
|
+
- **Kimi user-global MCP** cannot be isolated per child process. Specrails uses
|
|
71
|
+
additive project `.kimi-code/mcp.json` integration and does not expose the
|
|
72
|
+
Claude-style "load my approved user MCPs" toggle for Kimi.
|
|
73
|
+
- **Kimi `-p` permission mode** is autonomous and offers no per-invocation
|
|
74
|
+
native equivalent of Claude's `--tools __none__` or Codex's read-only
|
|
75
|
+
sandbox. Quick Spec, AI Edit, Contract Refine, SMASH/Re-SMASH, Project
|
|
76
|
+
Builder blueprint/milestone generation, Loop Decider, file summary and
|
|
77
|
+
construction-story AI, and Agent Studio generation/test/refine are
|
|
78
|
+
therefore hidden or rejected before spawn. AI auto-title uses a
|
|
79
|
+
deterministic fallback.
|
|
80
|
+
- Kimi still supports Project/Agent Chat, Explore/proposals, agentic Quick
|
|
81
|
+
Launcher commands (including `/opsx:ff`), rails, loops without a Decider,
|
|
82
|
+
profiles/manual roles, terminal, project MCP, Serena, attachments, and
|
|
83
|
+
truthful invocation metadata.
|
|
51
84
|
|
|
52
85
|
## Cost tracking across providers
|
|
53
86
|
|
|
54
|
-
The **Analytics** page tracks every
|
|
87
|
+
The **Analytics** page tracks every invocation regardless of provider. Claude
|
|
88
|
+
cost is provider-reported; Codex/Gemini values may be estimated from the rate
|
|
89
|
+
card. Kimi invocation duration, outcome, model, and session are recorded, while
|
|
90
|
+
cost and token fields stay null when the CLI did not report them.
|
|
55
91
|
|
|
56
92
|
## Troubleshooting
|
|
57
93
|
|
|
58
|
-
- **A provider I installed isn't offered.** Confirm the CLI is on your `PATH`
|
|
94
|
+
- **A provider I installed isn't offered.** Confirm the CLI is on your `PATH`
|
|
95
|
+
(`claude --version`, `codex --version`, `gemini --version`, or
|
|
96
|
+
`kimi --version`) in a fresh terminal.
|
|
97
|
+
- **Kimi reports a login/model error.** Run `kimi login`, then retry. Specrails
|
|
98
|
+
intentionally avoids a billable setup prompt.
|
|
59
99
|
- **Codex MCP servers aren't loading in chat.** Codex reads MCP servers from your global `~/.codex/config.toml` — register them there with `codex mcp add`.
|
|
60
100
|
- **Emergency disable.** A provider can be turned off app-wide via an environment variable (`SPECRAILS_CODEX_BETA=0` or `SPECRAILS_GEMINI_BETA=0`). This only hides the provider from *selection*; it's rarely needed.
|
|
61
101
|
|
|
62
102
|
## See also
|
|
63
103
|
|
|
64
|
-
The dedicated provider
|
|
104
|
+
The dedicated [Kimi provider guide](../../../kimi.md), Codex guide, and Gemini
|
|
105
|
+
guide cover setup and provider-specific behavior in depth.
|
|
@@ -21,7 +21,7 @@ The headline plugin is:
|
|
|
21
21
|
3. Click into the plugin to **preview the install** — this shows you exactly what files will change before anything happens.
|
|
22
22
|
4. Click **Install**. You'll see live progress as it sets up.
|
|
23
23
|
|
|
24
|
-
Under the hood the install is *surgical and additive*: it only adds its own entries to
|
|
24
|
+
Under the hood the install is *surgical and additive*: it only adds its own entries to the selected provider's native MCP config (and, for some Claude installs, a fragment in the protected `.claude/agents/` namespace). It never rewrites your config wholesale, and adding a second plugin can never disturb the first. If the install can't verify itself as healthy, it rolls back cleanly.
|
|
25
25
|
|
|
26
26
|
## Managing installed plugins
|
|
27
27
|
|
|
@@ -37,8 +37,8 @@ Under the hood the install is *surgical and additive*: it only adds its own entr
|
|
|
37
37
|
|
|
38
38
|
## Provider notes
|
|
39
39
|
|
|
40
|
-
Plugins are provider-aware. Serena
|
|
40
|
+
Plugins are provider-aware. Serena currently supports Claude through `.mcp.json`, Codex through `codex mcp add` with an isolated per-project `CODEX_HOME`, and Kimi through `.kimi-code/mcp.json`. A provider appears only when the plugin manifest declares support; Serena is therefore not offered for Gemini. The Jira card is provider-agnostic and shows for everyone — see the Jira guide.
|
|
41
41
|
|
|
42
42
|
## Reserved files
|
|
43
43
|
|
|
44
|
-
Plugins manage a small, well-defined set of files
|
|
44
|
+
Plugins manage a small, well-defined set of files: the provider's native MCP configuration, state under `.specrails/plugins/`, and (for Claude plugins that need one) an agent fragment at `.claude/agents/custom-<plugin>.md`. Kimi entries live in `.kimi-code/mcp.json`; the app never writes Claude-only fragments for Kimi or blindly overwrites any provider config.
|
|
@@ -22,7 +22,11 @@ Picking a project here **does not** move your dashboard — the agent's target a
|
|
|
22
22
|
|
|
23
23
|
## Provider and model
|
|
24
24
|
|
|
25
|
-
Just above the message box you choose the **provider** (Claude, Codex
|
|
25
|
+
Just above the message box you choose the **provider** (Claude, Codex, Gemini,
|
|
26
|
+
or Kimi) and its **model**. Each provider has its own model list, and switching
|
|
27
|
+
provider starts a fresh session with that provider's default model. Kimi turns
|
|
28
|
+
use external `kimi -p` processes and resume only from a successful
|
|
29
|
+
`session.resume_hint`.
|
|
26
30
|
|
|
27
31
|
## Permission levels — you hold the leash
|
|
28
32
|
|
|
@@ -37,6 +41,14 @@ The agent can touch the whole app, so you decide how much freedom it has with a
|
|
|
37
41
|
|
|
38
42
|
Start on **Observe** and raise the level only when you want the agent to act. If it tries something above the current level it stops and tells you exactly which level to switch on — it never works around the limit. This is separate from the Settings ▸ MCP tiers, which govern *external* assistants; the level here is just for this in-app agent.
|
|
39
43
|
|
|
44
|
+
With Kimi, the levels still gate which **Specrails MCP tools** Desktop exposes,
|
|
45
|
+
but they do not turn upstream `kimi -p` into a filesystem sandbox: prompt mode
|
|
46
|
+
automatically approves Kimi-native tools. Use Kimi Agent Chat only where that
|
|
47
|
+
autonomous posture is intended. Safety-sensitive pure-output operations
|
|
48
|
+
(Quick Spec, AI Edit, Contract Refine, SMASH/Re-SMASH, Project Builder
|
|
49
|
+
generation, Loop Decider, Code Explorer AI transforms, and Agent Studio
|
|
50
|
+
automation) are rejected server-side before spawn.
|
|
51
|
+
|
|
40
52
|
## A few things you can ask
|
|
41
53
|
|
|
42
54
|
Once you're on **Operate**, try:
|
|
@@ -53,7 +65,7 @@ Replies stream in smoothly and land formatted (headings, tables, lists), each wi
|
|
|
53
65
|
|
|
54
66
|
## Handy touches
|
|
55
67
|
|
|
56
|
-
- **Super specs from a conversation.** Ask the agent to *shape* a spec with you instead of one-shotting it: it reads the real code first, interviews you briefly, and shows the evolving draft as a live card right in the conversation. On
|
|
68
|
+
- **Super specs from a conversation.** Ask the agent to *shape* a spec with you instead of one-shotting it: it reads the real code first, interviews you briefly, and shows the evolving draft as a live card right in the conversation. On providers with a safe structured-action policy, your approval can enrich it with a **Contract Layer**. Kimi can shape and create the proposal, but Contract Refine stays unavailable.
|
|
57
69
|
- **Click what it mentions.** In a project-pinned mission, spec numbers (`#12`) and job/run ids in the agent's replies are clickable chips — a spec opens the board's detail modal, a job id opens the live job view. If the reference no longer exists you get a quiet "not found" note.
|
|
58
70
|
- **The implementation card stays in sight.** When the agent implements specs, a live card tracks the work — and while it needs something from you (create the PR, publish it, retry, discard) it stays **pinned just above the message box**, however far the conversation scrolls; its place in the history shows a slim "pinned above" marker instead. Several active cards stack as small chips (click one to bring it forward), and a chevron minimizes the card to a slim bar. Once the PR is published — or the work is merged or discarded — the card settles back into the conversation history.
|
|
59
71
|
- **Prompt history.** With the box empty, press **↑**/**↓** to browse what you asked before (shown dimmed while you scroll); start typing to edit it, or hit Enter to send.
|
|
@@ -35,8 +35,8 @@ That's it. The rail spins up an AI CLI process in the right execution context an
|
|
|
35
35
|
| **Status pill** | `idle`, `running`, or `failed`. There's no separate "completed" — a rail returns to `idle` when its job finishes cleanly. |
|
|
36
36
|
| **Spec list** | The IDs assigned to this rail. Drag more in, drag them out to detach. |
|
|
37
37
|
| **Loop picker** | The Loop this rail runs — a built-in (`Implement` / `Batch` / `Freestyle`) or a custom loop. See the table below. Persisted per rail. |
|
|
38
|
-
| **Profile picker** | Which agent profile runs (Claude rails
|
|
39
|
-
| **Engine selector** | Which installed provider runs this rail — Claude, Codex, or
|
|
38
|
+
| **Profile picker** | Which provider-scoped agent profile runs (Claude and Kimi rails). Only appears once the effective provider has at least one profile. |
|
|
39
|
+
| **Engine selector** | Which installed provider runs this rail — Claude, Codex, Gemini, or Kimi. Only renders when the project has more than one provider. See [Picking an engine per rail](picking-an-engine-per-rail). |
|
|
40
40
|
| **▶ Play / ■ Stop** | Start or cancel. |
|
|
41
41
|
|
|
42
42
|
### What a rail runs: Loops
|
|
@@ -47,11 +47,19 @@ A rail runs a **Loop** — the recipe for the work. Three loops are **built in**
|
|
|
47
47
|
|------|---------|--------------|
|
|
48
48
|
| **Implement** | `/specrails:implement` | One job covering all specs on the rail. Runs the full Architect → Developer → Reviewer → Ship pipeline. The everyday default. |
|
|
49
49
|
| **Batch** | `/specrails:batch-implement` | One job that works through the rail's specs sequentially, in dependency-aware waves. Best for several related specs. |
|
|
50
|
-
| **Freestyle** | Freestyle |
|
|
50
|
+
| **Freestyle** | Freestyle | A capable provider implements each spec autonomously, **bypassing** the pipeline. One independent job per spec. Claude and Kimi support it. |
|
|
51
51
|
|
|
52
|
-
Freestyle is the odd one out: it skips the agent chain and hands
|
|
52
|
+
Freestyle is the odd one out: it skips the agent chain and hands the capable
|
|
53
|
+
provider the raw spec to work on with native tools. It's open-ended, so
|
|
54
|
+
pressing Play opens a confirmation first, and its model picker follows that
|
|
55
|
+
provider's catalog. Claude uses its persistent live-session flow; Kimi uses an
|
|
56
|
+
owned agentic `kimi -p` process and has no persistent stdin.
|
|
53
57
|
|
|
54
|
-
Beyond the built-ins, you can **build your own loops** — repeat a verify → fix
|
|
58
|
+
Beyond the built-ins, you can **build your own loops** — repeat a verify → fix
|
|
59
|
+
→ verify cycle until a goal is met, chain shell commands between AI steps, and
|
|
60
|
+
more. Kimi runs loops without a Loop Decider; its `-p` transport cannot enforce
|
|
61
|
+
the Decider's pure-output verdict boundary. Those custom loops appear in the
|
|
62
|
+
same Loop picker. That's the next big idea: [The Loop Builder](the-loop-builder).
|
|
55
63
|
|
|
56
64
|
## The job queue
|
|
57
65
|
|
|
@@ -81,7 +89,11 @@ Click **■ Stop** on the rail header. The app sends `SIGTERM` to the subprocess
|
|
|
81
89
|
|
|
82
90
|
## If a rail won't launch
|
|
83
91
|
|
|
84
|
-
If you pick an engine whose CLI isn't installed on your machine, the launch
|
|
92
|
+
If you pick an engine whose CLI isn't installed on your machine, the launch
|
|
93
|
+
**fails fast** instead of starting a broken job — nothing spawns. Install the
|
|
94
|
+
missing provider CLI ([Using Codex](../integrations/using-codex),
|
|
95
|
+
[Using Gemini](../integrations/using-gemini), or
|
|
96
|
+
[Using Kimi](../../../kimi.md)) and launch again.
|
|
85
97
|
|
|
86
98
|
## Stopping everything
|
|
87
99
|
|
|
@@ -96,4 +108,4 @@ If something looks wrong:
|
|
|
96
108
|
- [The Loop Builder](the-loop-builder) — what a rail runs, and how to build your own loops.
|
|
97
109
|
- [The Job Detail view](the-job-detail-view) — phases, live metrics, ticket cards.
|
|
98
110
|
- [Batch implement & multi-feature](batch-implement-and-multi-feature) — run several specs at once.
|
|
99
|
-
- [Picking an engine per rail](picking-an-engine-per-rail) — Claude vs Codex vs Gemini.
|
|
111
|
+
- [Picking an engine per rail](picking-an-engine-per-rail) — Claude vs Codex vs Gemini vs Kimi.
|
|
@@ -94,7 +94,9 @@ A few things worth knowing:
|
|
|
94
94
|
- **The totals line is real.** The composer shows a live `N turns · $X` summary, summed from each completed turn's actual usage — consistent with this page's no-guesses promise.
|
|
95
95
|
- **Two ways a session ends.** Most jobs **wrap up on their own**: the moment a turn finishes with no messages queued, the session settles and the job completes — your messages are optional steering, never an obligation. A subtle **Wrap up now** action ends it early with everything produced so far. **Freestyle** jobs are the exception: they idle between turns and wait for you to click **Finalize** — that's their design, a back-and-forth session you close when you're done.
|
|
96
96
|
- **Loop runs route to the active step.** On a custom or built-in loop, your message reaches the **AI step that is running right now**. Between steps (while the Loop Decider thinks, or a shell command runs) the composer shows a short *"Waiting for the next step…"* state — your drafted text is kept, and sending re-enables when the next AI step starts. **Settle this step** ends the current step early and lets the loop advance with what it produced.
|
|
97
|
-
- **
|
|
97
|
+
- **Persistent interaction is Claude-only.** Codex, Gemini, and Kimi jobs run
|
|
98
|
+
one-shot — no composer appears. Kimi chat surfaces resume by spawning a new
|
|
99
|
+
`kimi --session=<id> -p` process after a successful resume hint.
|
|
98
100
|
|
|
99
101
|
## Diagnostic export
|
|
100
102
|
|
|
@@ -83,4 +83,4 @@ There's no global concurrency limit to tune. Open the projects or rails you need
|
|
|
83
83
|
|
|
84
84
|
- [Rails & jobs](rails-and-jobs) — the queue model in depth.
|
|
85
85
|
- [The Job Detail view](the-job-detail-view) — watch a batch run live.
|
|
86
|
-
- [Picking an engine per rail](picking-an-engine-per-rail) —
|
|
86
|
+
- [Picking an engine per rail](picking-an-engine-per-rail) — Batch runs on any provider; Freestyle is available on Claude and Kimi.
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
# Picking an engine per rail
|
|
2
2
|
|
|
3
|
-
Specrails desktop treats **Claude Code**, **Codex CLI**,
|
|
3
|
+
Specrails desktop treats **Claude Code**, **Codex CLI**, **Gemini CLI**, and
|
|
4
|
+
**Kimi Code** as first-class engines. A project can install any compatible
|
|
5
|
+
combination and, when more than one is present, choose which engine runs each
|
|
6
|
+
rail.
|
|
4
7
|
|
|
5
8
|
## When the selector appears
|
|
6
9
|
|
|
@@ -13,30 +16,38 @@ When it does appear, your choice is **per rail and per launch** — different ra
|
|
|
13
16
|
## How to pick an engine
|
|
14
17
|
|
|
15
18
|
1. Make sure the rail's engine selector is showing (project has 2+ providers).
|
|
16
|
-
2. Click it and choose **Claude**, **Codex**, or **
|
|
19
|
+
2. Click it and choose **Claude**, **Codex**, **Gemini**, or **Kimi**.
|
|
17
20
|
3. Launch the rail with **▶ Play**.
|
|
18
21
|
|
|
19
22
|
The selected engine runs every phase of that rail's pipeline. If the chosen engine's CLI isn't installed, the launch fails fast — nothing spawns. Install the missing CLI and try again.
|
|
20
23
|
|
|
21
24
|
## What each engine is good at
|
|
22
25
|
|
|
23
|
-
All
|
|
26
|
+
All four run the standard **Implement** and **Batch** pipelines. Here's a practical guide to choosing:
|
|
24
27
|
|
|
25
28
|
| Engine | Reach for it when… | Notes |
|
|
26
29
|
|--------|--------------------|-------|
|
|
27
|
-
| **Claude** | You want
|
|
30
|
+
| **Claude** | You want native billed cost, persistent job interaction, and the richest hard tool-policy controls. | Supports profiles, Freestyle, and structured transforms such as Contract Layer/SMASH. |
|
|
28
31
|
| **Codex** | You prefer the OpenAI Codex CLI or want to compare implementations across providers. | `codex` ≥ 0.128.0. No native cost reporting — the app fills in cost from its rate card. Profiles don't apply. |
|
|
29
32
|
| **Gemini** | You want Google's Gemini CLI, native telemetry, or a cheaper run for routine specs. | `gemini` ≥ 0.11.0 (set `GEMINI_API_KEY`). Native OTLP telemetry. Profiles don't apply. |
|
|
33
|
+
| **Kimi** | You want Kimi Code's autonomous agentic CLI for implementation, Batch, Freestyle, or loops without a Decider. | External `kimi` ≥ 0.27.0. Profiles/manual roles and K3 low/high/max effort are supported; tokens and USD cost are unavailable. |
|
|
30
34
|
|
|
31
|
-
###
|
|
35
|
+
### Capability differences
|
|
32
36
|
|
|
33
|
-
A few things
|
|
37
|
+
A few things need a provider with the matching capability:
|
|
34
38
|
|
|
35
|
-
- **Agent profiles** —
|
|
36
|
-
|
|
37
|
-
- **
|
|
39
|
+
- **Agent profiles** — Claude and Kimi support provider-scoped profiles. Codex
|
|
40
|
+
and Gemini rails use legacy mode.
|
|
41
|
+
- **Freestyle** — Claude and Kimi support this autonomous,
|
|
42
|
+
pipeline-bypassing mode with provider-specific models.
|
|
43
|
+
- **Loop Decider** — Kimi runs loops without a Decider. Its `continue`/`stop`
|
|
44
|
+
verdict needs a pure-output boundary unavailable in `kimi -p`.
|
|
45
|
+
- **Structured spec and read-only AI transforms** — Quick Spec, AI Edit,
|
|
46
|
+
Contract Layer, SMASH/Re-SMASH, Project Builder generation, file summary/
|
|
47
|
+
construction story, and Agent Studio automation are unavailable for Kimi.
|
|
38
48
|
|
|
39
|
-
|
|
49
|
+
In mixed Claude/Kimi projects, profiles and integration state are scoped to the
|
|
50
|
+
selected provider; an identically named profile does not leak across engines.
|
|
40
51
|
|
|
41
52
|
## A practical workflow
|
|
42
53
|
|
|
@@ -49,12 +60,15 @@ Multi-provider projects shine when you want to **compare** or **cost-tune**:
|
|
|
49
60
|
## Things to keep in mind
|
|
50
61
|
|
|
51
62
|
- **Provider selection is immutable after project creation** (v1). You choose installed providers when you add the project; there's no Settings toggle to add or remove one later.
|
|
52
|
-
- **
|
|
63
|
+
- **Available metrics are always tracked.** Codex/Gemini cost uses a rate card;
|
|
64
|
+
Kimi has no authoritative token or USD-cost stream, so those fields remain
|
|
65
|
+
unavailable rather than becoming a fabricated estimate.
|
|
53
66
|
- **The terminal's "Open AI CLI" button** also offers a provider picker on multi-provider projects, if you'd rather drive a CLI by hand.
|
|
54
67
|
|
|
55
68
|
## Where to go next
|
|
56
69
|
|
|
57
70
|
- [Using Codex](../integrations/using-codex) — install and sign in.
|
|
58
71
|
- [Using Gemini](../integrations/using-gemini) — install, `GEMINI_API_KEY`, telemetry.
|
|
72
|
+
- [Using Kimi](../../../kimi.md) — external CLI setup and complete capability matrix.
|
|
59
73
|
- [Rails & jobs](rails-and-jobs) — the queue and launch flow.
|
|
60
74
|
- [Tracking cost](../analytics/tracking-cost) — per-engine cost breakdown.
|
|
@@ -17,7 +17,7 @@ A **loop** is the *recipe* for the work; a **rail** is the *lane* that runs it a
|
|
|
17
17
|
|
|
18
18
|
- Loops live in the **Loops** section (left sidebar, alongside your projects) — they are **global**, shared across every project.
|
|
19
19
|
- A rail **picks a loop** in its header (the Loop picker) and runs it when you press Play.
|
|
20
|
-
- The **rail** decides the provider, model and reasoning effort — *not* the loop's steps. The same loop runs on Claude, Codex or
|
|
20
|
+
- The **rail** decides the provider, model and supported reasoning effort — *not* the loop's steps. The same capability-compatible loop runs on Claude, Codex, Gemini, or Kimi depending on the rail.
|
|
21
21
|
|
|
22
22
|
So: build a loop once, then pick it on any rail in any project.
|
|
23
23
|
|
|
@@ -41,6 +41,11 @@ A loop is a graph of **nodes** connected by **edges** (the arrows). Each node is
|
|
|
41
41
|
|
|
42
42
|
Edges connect the steps in order. The **Loop Decider** has two labelled outputs — **continue** and **stop** — so you wire "not done yet" back into the work and "done" out to an End.
|
|
43
43
|
|
|
44
|
+
> **Kimi:** AI and shell steps are supported, but a graph containing a Loop
|
|
45
|
+
> Decider is not. The verdict is a constrained pure-output action and Kimi
|
|
46
|
+
> 0.27 `-p` cannot enforce its no-tools boundary; Desktop rejects the run before
|
|
47
|
+
> it starts.
|
|
48
|
+
|
|
44
49
|
### Writing step text
|
|
45
50
|
|
|
46
51
|
Inside any AI Step or Decider you can reference:
|
|
@@ -57,7 +62,7 @@ A loop that never stops would burn money forever, so every run has three guards
|
|
|
57
62
|
|-------|--------------|
|
|
58
63
|
| **Max iterations** | Hard cap on how many times the Decider may loop back, regardless of its verdict. |
|
|
59
64
|
| **Timeout (min)** | Wall-clock limit for the whole run. |
|
|
60
|
-
| **Max cost ($)** | *Optional.* Stops the loop once the accumulated cost crosses your budget. Checked **between steps** (a step's cost is only known once it finishes), so it may overshoot by one step. On Claude the cost is exact; on Codex and Gemini it's an estimate. Leave it empty for no cap. |
|
|
65
|
+
| **Max cost ($)** | *Optional.* Stops the loop once the accumulated cost crosses your budget. Checked **between steps** (a step's cost is only known once it finishes), so it may overshoot by one step. On Claude the cost is exact; on Codex and Gemini it's an estimate. Kimi reports no native token/USD envelope, so a cost cap cannot derive authoritative Kimi spend. Leave it empty for no cap. |
|
|
61
66
|
|
|
62
67
|
## Building with confidence
|
|
63
68
|
|
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
Quick mode is for when you already know what you want. You type your idea, the AI writes the full spec, and it lands on your board as a **Todo**. No back-and-forth — just describe it and go.
|
|
4
4
|
|
|
5
|
+
> **Kimi is not offered for Quick Spec.** Kimi 0.27 `-p` automatically
|
|
6
|
+
> approves tools and cannot enforce this form's pure-output boundary. Desktop
|
|
7
|
+
> rejects direct Kimi requests before spawn. Use agentic Explore, Raw, or a
|
|
8
|
+
> Quick Launcher command such as `/opsx:ff` instead.
|
|
9
|
+
|
|
5
10
|
## Create a spec in Quick mode
|
|
6
11
|
|
|
7
12
|
To create a spec quickly:
|
|
@@ -19,7 +24,11 @@ That's the whole flow. Everything below is optional fine-tuning.
|
|
|
19
24
|
|
|
20
25
|
**Model** — by default the AI picks a sensible model. You can override it per spec from the model picker if you want a faster or more capable one.
|
|
21
26
|
|
|
22
|
-
**Engine** — if your project has more than one AI provider
|
|
27
|
+
**Engine** — if your project has more than one **compatible** AI provider
|
|
28
|
+
installed, an engine selector sits at the top of the dialog so you can choose
|
|
29
|
+
which one generates this spec. Kimi is excluded from this surface. Your choice
|
|
30
|
+
is remembered per project; single-compatible-provider projects don't show the
|
|
31
|
+
selector.
|
|
23
32
|
|
|
24
33
|
**Context** — Quick mode usually runs as a single turn, because it doesn't need to read your codebase to write a spec from your description. But a context slider lets you give it more to work with:
|
|
25
34
|
|
|
@@ -37,7 +37,11 @@ Ese es todo el flujo: elige un perfil, lanza, listo. Los rails concurrentes de u
|
|
|
37
37
|
|
|
38
38
|
## Cuando la sección Agentes está en silencio
|
|
39
39
|
|
|
40
|
-
Los perfiles
|
|
40
|
+
Los perfiles están separados por proveedor. Claude y Kimi admiten
|
|
41
|
+
perfiles/roles; Codex y Gemini ejecutan los rails en modo legacy. En proyectos
|
|
42
|
+
mixtos, nombres iguales no se cruzan entre Claude y Kimi. Kimi permite roles
|
|
43
|
+
manuales, pero generación, smoke test y AI Refine de Agent Studio fallan
|
|
44
|
+
antes de iniciar. Kimi requiere `specrails-core` 4.12.0 o posterior.
|
|
41
45
|
|
|
42
46
|
## A dónde ir después
|
|
43
47
|
|
|
@@ -11,21 +11,24 @@ Cada entrada del catálogo muestra para qué sirve el agente y su modelo por def
|
|
|
11
11
|
|
|
12
12
|
## Añadir un agente personalizado
|
|
13
13
|
|
|
14
|
-
Los
|
|
14
|
+
Los roles son assets nativos del proveedor: Claude usa
|
|
15
|
+
`.claude/agents/custom-<algo>.md`; Kimi usa
|
|
16
|
+
`.kimi-code/skills/custom-<algo>/SKILL.md`.
|
|
15
17
|
|
|
16
|
-
Una vez que el
|
|
18
|
+
Una vez que el asset existe, aparece en el catálogo de ese provider y puedes añadir su id a un perfil del mismo provider. `custom-docs` corresponde a `.claude/agents/custom-docs.md` en Claude o a `.kimi-code/skills/custom-docs/SKILL.md` en Kimi; ambos quedan separados.
|
|
17
19
|
|
|
18
20
|
Como viven en tu repo, los agentes personalizados son **activos de equipo commiteables**: commitea el archivo y todo tu equipo recibe el agente. Esto refleja la idea central de toda la sección Agentes —
|
|
19
21
|
|
|
20
22
|
> **Las definiciones de los agentes son compartidas (viven en el repo y viajan con `git`). La configuración de modelos es por proyecto (vive en los perfiles).**
|
|
21
23
|
|
|
22
|
-
|
|
24
|
+
Core protege ambos formatos. Kimi permite creación/edición manual y ejecución;
|
|
25
|
+
Generate, Test y AI Refine fallan antes de iniciar Kimi.
|
|
23
26
|
|
|
24
27
|
## Poner a trabajar un agente personalizado
|
|
25
28
|
|
|
26
29
|
El flujo típico:
|
|
27
30
|
|
|
28
|
-
1.
|
|
31
|
+
1. Crea el archivo Claude o el Skill Kimi nativo con instrucciones/modelo válidos.
|
|
29
32
|
2. Confirma que aparece en **Agentes → Catálogo** bajo Personalizados.
|
|
30
33
|
3. En **Agentes → Perfiles**, añade el agente a la cadena de un perfil (sobrescribiendo opcionalmente su modelo para ese perfil).
|
|
31
34
|
4. Añade una regla de enrutado para que las tareas con las etiquetas adecuadas lleguen a él — o confía en el orden de la cadena.
|
|
@@ -36,6 +36,7 @@ specrails funciona con los principales CLI de programación con IA:
|
|
|
36
36
|
- **Claude** (Claude Code)
|
|
37
37
|
- **Codex** (Codex CLI)
|
|
38
38
|
- **Gemini** (Gemini CLI)
|
|
39
|
+
- **Kimi** (Kimi Code)
|
|
39
40
|
|
|
40
41
|
Elige el que ya uses, o instala más de uno y escoge según la tarea. Un proyecto puede funcionar con un único provider o con varios a la vez, así que nunca te quedas atado a uno.
|
|
41
42
|
|
|
@@ -23,6 +23,7 @@ Lo único que specrails no puede incluir es el **CLI del provider de IA** en sí
|
|
|
23
23
|
- **Claude Code**
|
|
24
24
|
- **Codex CLI**
|
|
25
25
|
- **Gemini CLI**
|
|
26
|
+
- **Kimi Code**
|
|
26
27
|
|
|
27
28
|
Instala el que tengas pensado usar, inicia sesión una vez desde tu terminal y listo. specrails detecta automáticamente qué providers están presentes.
|
|
28
29
|
|
|
@@ -26,13 +26,13 @@ La barra lateral derecha es tu cuadro de mandos para el proyecto actual. Pasa el
|
|
|
26
26
|
|
|
27
27
|
- **Dashboard** — el tablero de specs y los rails (donde acabas de estar).
|
|
28
28
|
- **Jobs** — todas las ejecuciones de pipeline de este proyecto, pasadas y presentes, con su estado, su duración y la posibilidad de profundizar en el detalle y los logs de cualquier ejecución.
|
|
29
|
-
- **Analíticas** —
|
|
30
|
-
- **Agentes** —
|
|
31
|
-
- **Código** — un explorador de archivos de solo lectura
|
|
29
|
+
- **Analíticas** — invocaciones por día, actividad, modelo y ticket. Claude informa coste facturado, Codex/Gemini usan estimaciones y Kimi deja vacíos los tokens/costes USD no disponibles.
|
|
30
|
+
- **Agentes** — perfiles y catálogos de roles separados por proveedor para Claude y Kimi. Con Kimi puedes crear y editar roles manualmente; Generate, Test y AI Refine no están disponibles.
|
|
31
|
+
- **Código** — un explorador de archivos de solo lectura y chips que muestran qué archivos ha tocado la IA. Los resúmenes en lenguaje sencillo solo aparecen con proveedores compatibles; no están disponibles con Kimi.
|
|
32
32
|
- **Integraciones** — complementos opcionales, como conectar tus specs a un tablero de **Jira** o habilitar herramientas adicionales para la IA.
|
|
33
33
|
- **Ajustes** — opciones por proyecto (telemetría, presupuestos, configuración de providers y más).
|
|
34
34
|
|
|
35
|
-
>
|
|
35
|
+
> Las secciones y acciones aparecen según las capacidades del proveedor efectivo. Por ejemplo, los perfiles funcionan con Claude y Kimi, pero las acciones de IA de Agent Studio fallan de forma cerrada con Kimi.
|
|
36
36
|
|
|
37
37
|
## La barra de estado
|
|
38
38
|
|
|
@@ -1,16 +1,21 @@
|
|
|
1
|
-
# Proveedores de IA (Claude, Codex, Gemini)
|
|
1
|
+
# Proveedores de IA (Claude, Codex, Gemini, Kimi)
|
|
2
2
|
|
|
3
|
-
Specrails no está atado a una única IA.
|
|
3
|
+
Specrails no está atado a una única IA. Claude, Codex, Gemini y Kimi son
|
|
4
|
+
proveedores de primera clase; cada superficie muestra solo los motores cuyas
|
|
5
|
+
capacidades cumplen su contrato.
|
|
4
6
|
|
|
5
|
-
## Los
|
|
7
|
+
## Los cuatro proveedores
|
|
6
8
|
|
|
7
9
|
| Proveedor | CLI | Creado por | Notas |
|
|
8
10
|
|---|---|---|---|
|
|
9
|
-
| **Claude** | `claude` | Anthropic |
|
|
11
|
+
| **Claude** | `claude` | Anthropic | Coste nativo y transporte interactivo persistente. |
|
|
10
12
|
| **Codex** | `codex` | OpenAI | Necesita codex `0.128.0+`. Lee sus servidores MCP desde tu `~/.codex/config.toml` global. |
|
|
11
13
|
| **Gemini** | `gemini` | Google | Necesita gemini `0.11.0+`. Usa telemetría nativa y un archivo de instrucciones `GEMINI.md`. |
|
|
14
|
+
| **Kimi Code** | `kimi` | Moonshot AI | Necesita Kimi `0.27.0+`. Desktop usa la CLI externa con `-p`; no instala ni inicia un servidor. |
|
|
12
15
|
|
|
13
|
-
Los
|
|
16
|
+
Los cuatro están **activados por defecto**. Un proveedor aparece en **Añadir
|
|
17
|
+
proyecto** cuando su CLI está instalada y en tu `PATH`. Para Kimi, comprueba
|
|
18
|
+
`kimi --version` y ejecuta `kimi login`.
|
|
14
19
|
|
|
15
20
|
## Instalar un proveedor para un proyecto
|
|
16
21
|
|
|
@@ -25,40 +30,47 @@ Puedes instalar **más de un** proveedor en el mismo proyecto; por ejemplo, Clau
|
|
|
25
30
|
Algunas cosas que conviene saber sobre los proyectos multiproveedor:
|
|
26
31
|
|
|
27
32
|
- **Con un solo proveedor todo se comporta exactamente igual que antes.** Si un proyecto tiene un único proveedor, no verás ningún selector de proveedor en ninguna parte: la app se mantiene limpia y sencilla.
|
|
28
|
-
- **
|
|
33
|
+
- **Las capacidades gobiernan la interfaz.** Claude y Kimi admiten perfiles
|
|
34
|
+
separados por proveedor; Codex y Gemini ejecutan los rails en modo legacy.
|
|
29
35
|
- **La elección de proveedor queda bloqueada tras la creación.** En esta versión eliges tus proveedores al añadir el proyecto y no se pueden cambiar después desde Ajustes. Si necesitas una combinación distinta, crea un proyecto nuevo.
|
|
30
36
|
|
|
31
37
|
## Elegir un proveedor por cada invocación
|
|
32
38
|
|
|
33
39
|
La verdadera ventaja de un proyecto multiproveedor es poder elegir la IA adecuada para cada tarea, sin tocar ningún ajuste global. Allí donde se ejecuta una IA aparece un pequeño selector de proveedor (solo cuando el proyecto tiene más de uno):
|
|
34
40
|
|
|
35
|
-
- **Añadir spec** —
|
|
41
|
+
- **Añadir spec** — Explore permite Kimi; Quick Spec solo muestra proveedores
|
|
42
|
+
que pueden imponer su límite pure-output, por lo que Kimi no aparece ahí.
|
|
36
43
|
- **Cabecera del rail** — elige el motor para ese rail concreto antes de lanzarlo.
|
|
37
44
|
- **Terminal** — el botón «Open AI CLI» (el icono de chispas) abre un menú de proveedores para que puedas entrar en cualquier CLI instalada en el directorio de ese proyecto.
|
|
38
45
|
|
|
39
46
|
Tu elección se recuerda por proyecto y toma el proveedor principal por defecto, así que no tienes que volver a elegirla cada vez.
|
|
40
47
|
|
|
41
|
-
##
|
|
48
|
+
## Diferencias de capacidades
|
|
42
49
|
|
|
43
|
-
|
|
50
|
+
Kimi admite Project/Agent Chat, Explore y propuestas, Quick Launcher
|
|
51
|
+
(`/opsx:ff`), rails, Freestyle, loops sin Decider, perfiles/roles manuales,
|
|
52
|
+
MCP, Serena, terminal y adjuntos.
|
|
44
53
|
|
|
45
|
-
|
|
46
|
-
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
54
|
+
Kimi `-p` aprueba herramientas automáticamente y no puede imponer un límite
|
|
55
|
+
sin herramientas/read-only. Por eso fallan antes de iniciar el proceso:
|
|
56
|
+
Quick Spec, AI Edit, Contract Refine, SMASH/Re-SMASH, generación de
|
|
57
|
+
blueprints/milestones de Project Builder, Loop Decider, resúmenes e historia
|
|
58
|
+
de construcción, y automatización de Agent Studio. El auto-title usa un
|
|
59
|
+
fallback determinista. Consulta la [guía completa de Kimi](../../../kimi.md).
|
|
51
60
|
|
|
52
61
|
## Seguimiento de costes entre proveedores
|
|
53
62
|
|
|
54
|
-
La página de **Analytics** registra
|
|
63
|
+
La página de **Analytics** registra las invocaciones que llegan a ejecutarse.
|
|
64
|
+
Claude informa de su coste; Codex y Gemini usan una estimación. Kimi no emite
|
|
65
|
+
tokens ni coste USD autoritativos, por lo que esos campos quedan vacíos.
|
|
55
66
|
|
|
56
67
|
## Resolución de problemas
|
|
57
68
|
|
|
58
|
-
- **No aparece un proveedor que instalé.** Confirma que la CLI está en tu `PATH` (prueba `claude --version` / `codex --version` / `gemini --version` en un terminal nuevo).
|
|
69
|
+
- **No aparece un proveedor que instalé.** Confirma que la CLI está en tu `PATH` (prueba `claude --version` / `codex --version` / `gemini --version` / `kimi --version` en un terminal nuevo).
|
|
59
70
|
- **Los servidores MCP de Codex no se cargan en el chat.** Codex lee los servidores MCP desde tu `~/.codex/config.toml` global; regístralos ahí con `codex mcp add`.
|
|
60
71
|
- **Desactivación de emergencia.** Un proveedor se puede desactivar en toda la app mediante una variable de entorno (`SPECRAILS_CODEX_BETA=0` o `SPECRAILS_GEMINI_BETA=0`). Esto solo oculta el proveedor de la *selección*; rara vez es necesario.
|
|
61
72
|
|
|
62
73
|
## Véase también
|
|
63
74
|
|
|
64
|
-
Las guías dedicadas a cada proveedor profundizan en cada CLI:
|
|
75
|
+
Las guías dedicadas a cada proveedor profundizan en cada CLI: consulta
|
|
76
|
+
[Kimi](../../../kimi.md), Codex y Gemini.
|