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
|
@@ -94,7 +94,8 @@ Algumas coisas que vale a pena saber:
|
|
|
94
94
|
- **A linha de totais é real.** O compositor mostra um resumo ao vivo `N turnos · $X`, somado a partir do uso real de cada turno concluído — coerente com a promessa desta página de nunca adivinhar.
|
|
95
95
|
- **Duas formas de uma sessão terminar.** A maioria dos jobs **termina sozinha**: assim que um turno acaba sem mensagens em fila, a sessão assenta e o job conclui — as suas mensagens são orientação opcional, nunca uma obrigação. Uma ação discreta **Concluir agora** termina-a mais cedo com tudo o que foi produzido até então. Os jobs **Freestyle** são a exceção: ficam à espera entre turnos até que clique em **Finalize** — é esse o seu desenho, uma sessão de ida e volta que fecha quando terminar.
|
|
96
96
|
- **Nas execuções de loop, as mensagens vão para o passo ativo.** Num loop embutido ou personalizado, a sua mensagem chega ao **passo de IA que está a correr nesse momento**. Entre passos (enquanto o Loop Decider pensa, ou um comando de shell corre) o compositor mostra um breve estado *«À espera do próximo passo…»* — o texto rascunhado mantém-se, e o envio reativa-se quando o próximo passo de IA arranca. **Assentar este passo** termina o passo atual mais cedo e deixa o loop avançar com o que ele produziu.
|
|
97
|
-
- **
|
|
97
|
+
- **Interação persistente é só Claude.** Codex, Gemini e Kimi correm one-shot;
|
|
98
|
+
Kimi retoma o chat com novo `kimi --session=<id> -p` depois de um resume hint.
|
|
98
99
|
|
|
99
100
|
## Exportação de diagnóstico
|
|
100
101
|
|
|
@@ -81,4 +81,4 @@ Não há limite global de concorrência para ajustar. Abra os projetos ou rails
|
|
|
81
81
|
|
|
82
82
|
- [Rails e jobs](rails-and-jobs) — o modelo da fila em detalhe.
|
|
83
83
|
- [A vista de detalhe do job](the-job-detail-view) — ver um batch a correr ao vivo.
|
|
84
|
-
- [Escolher um motor por rail](picking-an-engine-per-rail) —
|
|
84
|
+
- [Escolher um motor por rail](picking-an-engine-per-rail) — o Batch corre em qualquer fornecedor; o Freestyle está disponível com Claude e Kimi.
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# Escolher um motor por rail
|
|
2
2
|
|
|
3
|
-
O Specrails desktop trata
|
|
3
|
+
O Specrails desktop trata **Claude Code**, **Codex CLI**, **Gemini CLI** e
|
|
4
|
+
**Kimi Code** como motores de primeira classe. Pode instalar qualquer
|
|
5
|
+
combinação compatível.
|
|
4
6
|
|
|
5
7
|
## Quando o seletor aparece
|
|
6
8
|
|
|
@@ -13,30 +15,27 @@ Quando aparece, a sua escolha é **por rail e por lançamento** — rails difere
|
|
|
13
15
|
## Como escolher um motor
|
|
14
16
|
|
|
15
17
|
1. Certifique-se de que o seletor de motor do rail está visível (projeto com 2+ fornecedores).
|
|
16
|
-
2.
|
|
18
|
+
2. Escolha **Claude**, **Codex**, **Gemini** ou **Kimi**.
|
|
17
19
|
3. Lance o rail com **▶ Play**.
|
|
18
20
|
|
|
19
21
|
O motor selecionado corre todas as fases do pipeline desse rail. Se a CLI do motor escolhido não estiver instalada, o lançamento falha de imediato — nada é criado. Instale a CLI em falta e tente de novo.
|
|
20
22
|
|
|
21
23
|
## Em que cada motor é bom
|
|
22
24
|
|
|
23
|
-
Os
|
|
25
|
+
Os quatro correm os pipelines standard **Implement** e **Batch**:
|
|
24
26
|
|
|
25
27
|
| Motor | Recorra a ele quando… | Notas |
|
|
26
28
|
|--------|--------------------|-------|
|
|
27
|
-
| **Claude** |
|
|
29
|
+
| **Claude** | Precisa de custo nativo, interação persistente ou tool policy rigorosa. | Perfis, Freestyle e transformações estruturadas. |
|
|
28
30
|
| **Codex** | Prefere o Codex CLI da OpenAI ou quer comparar implementações entre fornecedores. | `codex` ≥ 0.128.0. Sem reporte de custo nativo — a app preenche o custo a partir da sua tabela de preços. Os perfis não se aplicam. |
|
|
29
31
|
| **Gemini** | Quer o Gemini CLI da Google, telemetria nativa ou uma execução mais barata para specs de rotina. | `gemini` ≥ 0.11.0 (defina `GEMINI_API_KEY`). Telemetria OTLP nativa. Os perfis não se aplicam. |
|
|
32
|
+
| **Kimi** | Quer Kimi agentic para Implement, Batch, Freestyle ou loops sem Decider. | `kimi` ≥ 0.27.0 externo; perfis/roles, effort só K3; tokens/custo indisponíveis. |
|
|
30
33
|
|
|
31
|
-
###
|
|
34
|
+
### Diferenças de capability
|
|
32
35
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
- **Freestyle** — o modo autónomo que ignora o pipeline. O segmento `Freestyle` e o seu seletor de modelo Haiku/Sonnet/Opus só aparecem quando o motor do rail é o Claude.
|
|
37
|
-
- **Contract Layer e SMASH** — funcionalidades de refinamento de spec exclusivas do Claude (são opções de Add Spec, não opções de rail, mas aplica-se a mesma restrição).
|
|
38
|
-
|
|
39
|
-
Se um projeto mistura motores, a barra lateral direita só mostra as secções que **todos** os fornecedores instalados suportam — por isso a secção **Agentes** desaparece por completo num projeto que inclua qualquer fornecedor que não seja Claude, porque os perfis são específicos do Claude.
|
|
36
|
+
Claude/Kimi suportam perfis e Freestyle; Codex/Gemini usam legacy. Kimi
|
|
37
|
+
recusa Loop Decider e os transforms pure-output do
|
|
38
|
+
[guia Kimi](../../../kimi.md). Perfis Claude/Kimi ficam separados.
|
|
40
39
|
|
|
41
40
|
## Um fluxo de trabalho prático
|
|
42
41
|
|
|
@@ -49,12 +48,14 @@ Os projetos com vários fornecedores brilham quando quer **comparar** ou **afina
|
|
|
49
48
|
## Coisas a ter em conta
|
|
50
49
|
|
|
51
50
|
- **A escolha de fornecedor é imutável depois de criar o projeto** (v1). Escolhe os fornecedores instalados ao adicionar o projeto; não há um toggle nas Definições para acrescentar ou remover um mais tarde.
|
|
52
|
-
- **
|
|
51
|
+
- **As métricas disponíveis são registadas.** Kimi não fornece tokens/custo
|
|
52
|
+
USD autoritativos; os campos ficam vazios.
|
|
53
53
|
- **O botão "Abrir CLI de IA" do terminal** também oferece um seletor de fornecedor em projetos com vários fornecedores, caso prefira conduzir uma CLI à mão.
|
|
54
54
|
|
|
55
55
|
## Para onde ir a seguir
|
|
56
56
|
|
|
57
57
|
- [Usar o Codex](../integrations/using-codex) — instalar e iniciar sessão.
|
|
58
58
|
- [Usar o Gemini](../integrations/using-gemini) — instalar, `GEMINI_API_KEY`, telemetria.
|
|
59
|
+
- [Usar Kimi](../../../kimi.md) — instalação e matriz completa.
|
|
59
60
|
- [Rails e jobs](rails-and-jobs) — a fila e o fluxo de lançamento.
|
|
60
61
|
- [Acompanhar o custo](../analytics/tracking-cost) — repartição de custo por motor.
|
|
@@ -17,7 +17,7 @@ Um **loop** é a *receita* do trabalho; um **rail** é a *pista* que o roda cont
|
|
|
17
17
|
|
|
18
18
|
- Os loops vivem na seção **Loops** (barra lateral esquerda, ao lado dos seus projetos) — eles são **globais**, compartilhados por todos os projetos.
|
|
19
19
|
- Um rail **escolhe um loop** no cabeçalho (o seletor de Loop) e o roda quando você aperta Play.
|
|
20
|
-
- O **rail**
|
|
20
|
+
- O **rail** escolhe provider, modelo e effort compatível. Um loop compatível corre em Claude, Codex, Gemini ou Kimi.
|
|
21
21
|
|
|
22
22
|
Ou seja: construa um loop uma vez e depois escolha-o em qualquer rail, em qualquer projeto.
|
|
23
23
|
|
|
@@ -41,6 +41,10 @@ Um loop é um grafo de **nós** conectados por **arestas** (as setas). Cada nó
|
|
|
41
41
|
|
|
42
42
|
As arestas conectam os passos em ordem. O **Loop Decider** tem duas saídas rotuladas — **continue** e **stop** — então você liga o "ainda não terminei" de volta ao trabalho e o "terminei" para um End.
|
|
43
43
|
|
|
44
|
+
> **Kimi corre loops com passos AI/shell, mas não com Loop Decider.** O
|
|
45
|
+
> veredito é pure-output e `kimi -p` não consegue impor o limite no-tools; o
|
|
46
|
+
> run é recusado antes do primeiro passo.
|
|
47
|
+
|
|
44
48
|
### Escrevendo o texto dos passos
|
|
45
49
|
|
|
46
50
|
Dentro de qualquer AI Step ou Decider você pode referenciar:
|
|
@@ -57,7 +61,7 @@ Um loop que nunca para queimaria dinheiro para sempre, então toda execução te
|
|
|
57
61
|
|-------|--------------|
|
|
58
62
|
| **Max iterations** | Teto rígido de quantas vezes o Decider pode voltar atrás, independentemente do seu veredito. |
|
|
59
63
|
| **Timeout (min)** | Limite de tempo de relógio para toda a execução. |
|
|
60
|
-
| **Max cost ($)** | *Opcional.*
|
|
64
|
+
| **Max cost ($)** | *Opcional.* Claude reporta custo; Codex/Gemini usam estimativas. Kimi não reporta custo USD autoritativo. |
|
|
61
65
|
|
|
62
66
|
## Construindo com confiança
|
|
63
67
|
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
O modo Quick é para quando já sabe o que quer. Escreve a sua ideia, a IA redige a spec completa, e ela aterra no seu quadro como **Por fazer**. Sem idas e vindas — basta descrever e avançar.
|
|
4
4
|
|
|
5
|
+
> **Kimi não está disponível no Quick Spec.** `kimi -p` não consegue impor
|
|
6
|
+
> o limite pure-output deste formulário. O pedido é recusado antes do spawn;
|
|
7
|
+
> use Explore, Raw ou Quick Launcher (`/opsx:ff`).
|
|
8
|
+
|
|
5
9
|
## Criar uma spec no modo Quick
|
|
6
10
|
|
|
7
11
|
Para criar uma spec rapidamente:
|
|
@@ -19,7 +23,8 @@ Enquanto a spec está a ser escrita, uma pequena notificação no canto mostra o
|
|
|
19
23
|
|
|
20
24
|
**Modelo** — por predefinição, a IA escolhe um modelo sensato. Pode substituí-lo por spec a partir do seletor de modelo se quiser um mais rápido ou mais capaz.
|
|
21
25
|
|
|
22
|
-
**Motor** —
|
|
26
|
+
**Motor** — o seletor mostra apenas providers **compatíveis**; Kimi fica
|
|
27
|
+
excluído de Quick Spec.
|
|
23
28
|
|
|
24
29
|
**Contexto** — o modo Quick normalmente corre como um único turno, porque não precisa de ler a sua base de código para escrever uma spec a partir da sua descrição. Mas um seletor de contexto permite dar-lhe mais material para trabalhar:
|
|
25
30
|
|
|
@@ -37,7 +37,10 @@ Profile 的选择就发生在你启动的地方——**rail 头部**,通过 Pr
|
|
|
37
37
|
|
|
38
38
|
## 当 Agents 区悄无声息时
|
|
39
39
|
|
|
40
|
-
Profile
|
|
40
|
+
Profile 按 provider 隔离。Claude 和 Kimi 支持 profile/role;Codex 和
|
|
41
|
+
Gemini 使用 legacy mode。混合项目中相同名称也不会在 Claude/Kimi 之间
|
|
42
|
+
串用。Kimi 支持手动 role,但 Agent Studio 的 generation、smoke test
|
|
43
|
+
和 AI Refine 会在 spawn 前拒绝。Kimi 需要 `specrails-core` 4.12.0+。
|
|
41
44
|
|
|
42
45
|
## 接下来去哪儿
|
|
43
46
|
|
|
@@ -11,21 +11,24 @@ Profile 决定的是*哪些 Agent 运行、用什么模型*。但 Agent 本身
|
|
|
11
11
|
|
|
12
12
|
## 添加一个自定义 Agent
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
Role 是 provider-native asset:Claude 使用
|
|
15
|
+
`.claude/agents/custom-<name>.md`;Kimi 使用
|
|
16
|
+
`.kimi-code/skills/custom-<name>/SKILL.md`。
|
|
15
17
|
|
|
16
|
-
|
|
18
|
+
Asset 存在后会出现在对应 provider 的目录中,其 id 只能加入同 provider 的 Profile。`custom-docs` 在 Claude 中对应 `.claude/agents/custom-docs.md`,在 Kimi 中对应 `.kimi-code/skills/custom-docs/SKILL.md`;二者互不混用。
|
|
17
19
|
|
|
18
20
|
由于它们就住在你的仓库里,自定义 Agent 是**可提交的团队资产**:提交这个文件,你的整个团队就都拥有了这个 Agent。这呼应了贯穿整个 Agents 区的核心观念——
|
|
19
21
|
|
|
20
22
|
> **Agent 定义是共享的(它们住在仓库里,随 `git` 一起流转)。模型配置则因项目而异(它住在 Profile 里)。**
|
|
21
23
|
|
|
22
|
-
|
|
24
|
+
Core 保护两种格式。Kimi 支持手动 create/edit/run;Generate、Test 和
|
|
25
|
+
AI Refine 会在 spawn 前拒绝。
|
|
23
26
|
|
|
24
27
|
## 让自定义 Agent 上岗
|
|
25
28
|
|
|
26
29
|
典型流程如下:
|
|
27
30
|
|
|
28
|
-
1.
|
|
31
|
+
1. 创建 native Claude asset 或 Kimi Skill,并使用有效指令/model。
|
|
29
32
|
2. 确认它出现在 **Agents → 目录** 的「自定义」分组下。
|
|
30
33
|
3. 在 **Agents → Profile** 中,把这个 Agent 加入某条 Profile 链(也可在该 Profile 内覆盖它的模型)。
|
|
31
34
|
4. 添加一条路由规则,让带有合适标签的任务到达它——或者依赖链的顺序。
|
|
@@ -26,13 +26,13 @@
|
|
|
26
26
|
|
|
27
27
|
- **仪表盘**——spec 看板和 rails(你刚才待的地方)。
|
|
28
28
|
- **任务**——这个项目的每一次流水线运行,无论过去还是当下,都带有状态、耗时,并能深入查看任意一次运行的详情和日志。
|
|
29
|
-
-
|
|
30
|
-
- **Agent
|
|
31
|
-
-
|
|
29
|
+
- **分析**——按天、活动、模型和工单拆分的调用。Claude 报告账单成本,Codex/Gemini 使用估算值;Kimi 会把无法获得的 token/USD 字段留空。
|
|
30
|
+
- **Agent**——Claude 与 Kimi 各自独立的 Profile 和 Role 目录。Kimi Role 可手动创建/编辑;Generate、Test 和 AI Refine 不可用。
|
|
31
|
+
- **代码**——只读文件浏览器,以及显示 AI 动过哪些文件的标签。通俗 AI 摘要只对兼容 provider 显示,Kimi 不支持该转换。
|
|
32
32
|
- **集成**——可选的附加组件,比如把你的 spec 连接到 **Jira** 看板,或为 AI 启用额外的工具。
|
|
33
33
|
- **设置**——项目级选项(遥测、预算、提供商配置等等)。
|
|
34
34
|
|
|
35
|
-
>
|
|
35
|
+
> 区块和操作会遵循当前 provider 的 capability。例如 Profile 可用于 Claude/Kimi,但 Kimi 的 Agent Studio AI 操作会 fail closed。
|
|
36
36
|
|
|
37
37
|
## 状态栏
|
|
38
38
|
|
|
@@ -1,16 +1,19 @@
|
|
|
1
|
-
# AI 提供方(Claude、Codex、Gemini)
|
|
1
|
+
# AI 提供方(Claude、Codex、Gemini、Kimi)
|
|
2
2
|
|
|
3
|
-
Specrails
|
|
3
|
+
Specrails 并不绑定某一个 AI。Claude、Codex、Gemini 和 Kimi 都是一流
|
|
4
|
+
提供方;每个界面只显示满足该功能 capability 合约的引擎。
|
|
4
5
|
|
|
5
|
-
##
|
|
6
|
+
## 四家提供方
|
|
6
7
|
|
|
7
8
|
| 提供方 | CLI | 出品方 | 说明 |
|
|
8
9
|
|---|---|---|---|
|
|
9
|
-
| **Claude** | `claude` | Anthropic |
|
|
10
|
+
| **Claude** | `claude` | Anthropic | 原生成本和持久交互 transport。 |
|
|
10
11
|
| **Codex** | `codex` | OpenAI | 需要 codex `0.128.0+`。从你的全局 `~/.codex/config.toml` 读取 MCP 服务器。 |
|
|
11
12
|
| **Gemini** | `gemini` | Google | 需要 gemini `0.11.0+`。使用原生遥测,以及 `GEMINI.md` 指令文件。 |
|
|
13
|
+
| **Kimi Code** | `kimi` | Moonshot AI | 需要 Kimi `0.27.0+`。Desktop 用 `-p` 启动外部 CLI,不安装或启动 server。 |
|
|
12
14
|
|
|
13
|
-
|
|
15
|
+
四家都是**默认启用**的。CLI 在 `PATH` 上就会显示。Kimi 请先确认
|
|
16
|
+
`kimi --version`,再运行 `kimi login`。
|
|
14
17
|
|
|
15
18
|
## 为一个项目安装单个提供方
|
|
16
19
|
|
|
@@ -25,40 +28,45 @@ Specrails 并不绑定在某一个 AI 上。应用里所有会调用 AI 的环
|
|
|
25
28
|
关于多提供方项目,有几点值得了解:
|
|
26
29
|
|
|
27
30
|
- **只有一个提供方时,行为和以前完全一样。** 如果一个项目只有单个提供方,你在任何地方都不会看到提供方选择器——应用保持干净、简单。
|
|
28
|
-
-
|
|
31
|
+
- **UI 由 capability 驱动。** Claude 和 Kimi 支持按提供方隔离的
|
|
32
|
+
profile;Codex 和 Gemini 使用 legacy mode。
|
|
29
33
|
- **提供方在创建后就锁定了。** 在这个版本里,你在添加项目时选定提供方,之后无法再从 Settings 更改。如果你需要不同的组合,那就新建一个项目。
|
|
30
34
|
|
|
31
35
|
## 按调用逐个选择提供方
|
|
32
36
|
|
|
33
37
|
多提供方项目真正的价值,在于为每个任务挑到合适的 AI——而无需改动任何全局设置。凡是会运行 AI 的地方,都会出现一个小小的提供方选择器(仅当项目拥有不止一个提供方时):
|
|
34
38
|
|
|
35
|
-
- **Add Spec
|
|
39
|
+
- **Add Spec**——Explore 支持 Kimi;Quick Spec 只显示能够保证安全
|
|
40
|
+
pure-output 边界的提供方,因此不包含 Kimi。
|
|
36
41
|
- **rail 头部**——在启动某条具体的 rail 之前,为它挑选引擎。
|
|
37
42
|
- **终端**——「Open AI CLI」(Sparkles)按钮会打开一个提供方菜单,让你在该项目目录下进入任意已安装的 CLI。
|
|
38
43
|
|
|
39
44
|
你的选择会按项目被记住,默认是主提供方,所以你不用每次都重新选。
|
|
40
45
|
|
|
41
|
-
##
|
|
46
|
+
## Capability 差异
|
|
42
47
|
|
|
43
|
-
|
|
48
|
+
Kimi 支持 Project/Agent Chat、Explore/proposal、Quick Launcher
|
|
49
|
+
(`/opsx:ff`)、rail、Freestyle、没有 Decider 的 loop、profile/手动 role、
|
|
50
|
+
MCP、Serena、terminal 和附件。
|
|
44
51
|
|
|
45
|
-
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
其余的一切——Explore、Quick spec、完整的 rail 流水线、AI Edit、聊天、成本分析——三家全都能用。
|
|
52
|
+
`kimi -p` 会自动批准工具,无法强制 no-tools/read-only 边界。因此
|
|
53
|
+
Quick Spec、AI Edit、Contract Refine、SMASH/Re-SMASH、Project Builder
|
|
54
|
+
blueprint/milestone 生成、Loop Decider、文件摘要/construction story 和
|
|
55
|
+
Agent Studio automation 都会在 spawn 前拒绝。AI auto-title 使用确定性
|
|
56
|
+
fallback。详见 [Kimi 指南](../../../kimi.md)。
|
|
51
57
|
|
|
52
58
|
## 跨提供方的成本追踪
|
|
53
59
|
|
|
54
|
-
**Analytics**
|
|
60
|
+
**Analytics** 记录实际启动的调用。Claude 报告成本,Codex/Gemini
|
|
61
|
+
使用估算。Kimi 不报告 authoritative token 或 USD cost,因此这些字段
|
|
62
|
+
保持为空。
|
|
55
63
|
|
|
56
64
|
## 疑难排查
|
|
57
65
|
|
|
58
|
-
- **我装了某个提供方,却没出现在选项里。**
|
|
66
|
+
- **我装了某个提供方,却没出现在选项里。** 检查 `claude --version` / `codex --version` / `gemini --version` / `kimi --version`。
|
|
59
67
|
- **聊天里没加载 Codex 的 MCP 服务器。** Codex 从你的全局 `~/.codex/config.toml` 读取 MCP 服务器——用 `codex mcp add` 在那里注册它们。
|
|
60
68
|
- **紧急停用。** 可以通过环境变量在应用范围内关闭某个提供方(`SPECRAILS_CODEX_BETA=0` 或 `SPECRAILS_GEMINI_BETA=0`)。这只会把提供方从*选择列表*中隐藏;很少会用到。
|
|
61
69
|
|
|
62
70
|
## 另见
|
|
63
71
|
|
|
64
|
-
|
|
72
|
+
请参阅 [Kimi 指南](../../../kimi.md)、Codex 指南和 Gemini 指南。
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
3. 点进插件,**预览安装**——这会在任何改动发生之前,明确告诉你哪些文件会被改动。
|
|
22
22
|
4. 点击 **安装**。安装过程中你会看到实时进度。
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
底层安装是*精准且增量*的:它只向所选 provider 的原生 MCP 配置添加自己的条目(某些 Claude 安装还会写入 `.claude/agents/` 片段)。它不会整体重写配置;健康检查失败时会干净回滚。
|
|
25
25
|
|
|
26
26
|
## 管理已安装的插件
|
|
27
27
|
|
|
@@ -37,8 +37,8 @@
|
|
|
37
37
|
|
|
38
38
|
## 提供方相关说明
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
插件是 provider-aware 的。Serena 通过 `.mcp.json` 支持 Claude,通过项目隔离的 `CODEX_HOME` 和 `codex mcp add` 支持 Codex,并通过 `.kimi-code/mcp.json` 支持 Kimi。只有 manifest 声明支持时才显示,因此 Gemini 不提供 Serena。Jira 卡片与 provider 无关。
|
|
41
41
|
|
|
42
42
|
## 受保留的文件
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
插件只管理 provider 的原生 MCP 配置、`.specrails/plugins/` 状态,以及 Claude 确实需要时的 `.claude/agents/custom-<plugin>.md` 片段。Kimi 条目位于 `.kimi-code/mcp.json`;应用不会为 Kimi 写 Claude-only 片段,也不会盲目覆盖配置。
|
|
@@ -22,7 +22,12 @@ Agent Chat 通过内嵌的 **Specrails MCP 服务器**来驱动应用,因此
|
|
|
22
22
|
|
|
23
23
|
## 提供方与模型
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
在消息框上方可选择**提供方**(Claude、Codex、Gemini 或 Kimi)及其
|
|
26
|
+
**模型**。切换提供方会开始独立 session。
|
|
27
|
+
|
|
28
|
+
对于 Kimi,level 会限制 Specrails MCP 工具,但不会把 `kimi -p` 变成
|
|
29
|
+
sandbox:Kimi native 工具会自动批准。不安全的 pure-output action 会在
|
|
30
|
+
spawn 前拒绝;详见 [Kimi matrix](../../../kimi.md)。
|
|
26
31
|
|
|
27
32
|
## 权限级别——缰绳在你手里
|
|
28
33
|
|
|
@@ -35,8 +35,8 @@ rail 是一条**执行通道**。你从 SpecsBoard 上拖一张 spec 卡片放
|
|
|
35
35
|
| **状态标签** | `idle`、`running` 或 `failed`。这里没有单独的"completed"——任务干净地跑完后,rail 会回到 `idle`。 |
|
|
36
36
|
| **spec 列表** | 分配给这条 rail 的 ID。可以再拖进来,也可以拖出去解除关联。 |
|
|
37
37
|
| **Loop 选择器** | 这条 rail 运行的 Loop——内置的(`Implement` / `Batch` / `Freestyle`)或某个自定义 loop。见下表。按 rail 单独记忆。 |
|
|
38
|
-
| **Profile 选择器** |
|
|
39
|
-
| **引擎选择器** |
|
|
38
|
+
| **Profile 选择器** | 使用哪个 provider profile(Claude/Kimi rail)。 |
|
|
39
|
+
| **引擎选择器** | 哪个 provider 运行 rail——Claude、Codex、Gemini 或 Kimi。 |
|
|
40
40
|
| **▶ Play / ■ Stop** | 启动或取消。 |
|
|
41
41
|
|
|
42
42
|
### rail 运行的是什么:Loop
|
|
@@ -47,9 +47,11 @@ rail 是一条**执行通道**。你从 SpecsBoard 上拖一张 spec 卡片放
|
|
|
47
47
|
|------|---------|--------------|
|
|
48
48
|
| **Implement** | `/specrails:implement` | 一个任务覆盖这条 rail 上的所有 spec。跑完整的 Architect → Developer → Reviewer → Ship 流水线。日常默认选项。 |
|
|
49
49
|
| **Batch** | `/specrails:batch-implement` | 一个任务,按依赖感知的批次(wave)依次处理 rail 上的各个 spec。最适合一组相关的 spec。 |
|
|
50
|
-
| **Freestyle** | Freestyle | Claude 自主实现每个 spec
|
|
50
|
+
| **Freestyle** | Freestyle | Claude 或 Kimi 自主实现每个 spec,**绕过**流水线。 |
|
|
51
51
|
|
|
52
|
-
Freestyle
|
|
52
|
+
Freestyle 使用 provider 的 native tool/model。Claude 有 persistent
|
|
53
|
+
interactive transport;Kimi 使用没有 persistent stdin 的 agentic
|
|
54
|
+
`kimi -p` process。
|
|
53
55
|
|
|
54
56
|
除了这些内置 loop,你还可以**搭建自己的 loop**——重复一个 verify → fix → verify 的循环直到目标达成、在 AI 步骤之间串联 shell 命令,等等。这些自定义 loop 会出现在同一个 Loop 选择器里。这就是下一个大点子:[Loop Builder](the-loop-builder)。
|
|
55
57
|
|
|
@@ -81,7 +83,8 @@ Freestyle 是个特例:它跳过 Agent 链条,把原始 spec 直接交给 Cl
|
|
|
81
83
|
|
|
82
84
|
## 如果一条 rail 启动不起来
|
|
83
85
|
|
|
84
|
-
|
|
86
|
+
如果缺少所选 CLI,会在 spawn 前失败。Kimi 需要安装并登录 `kimi`
|
|
87
|
+
0.27+;Desktop 不会启动 server。
|
|
85
88
|
|
|
86
89
|
## 全部停下
|
|
87
90
|
|
|
@@ -96,4 +99,4 @@ Freestyle 是个特例:它跳过 Agent 链条,把原始 spec 直接交给 Cl
|
|
|
96
99
|
- [Loop Builder](the-loop-builder)——rail 运行的是什么,以及如何搭建你自己的 loop。
|
|
97
100
|
- [任务详情视图](the-job-detail-view)——阶段、实时指标、工单卡片。
|
|
98
101
|
- [批量实现与多功能](batch-implement-and-multi-feature)——一次跑多个 spec。
|
|
99
|
-
- [为每条 rail 选择引擎](picking-an-engine-per-rail)——Claude、Codex
|
|
102
|
+
- [为每条 rail 选择引擎](picking-an-engine-per-rail)——Claude、Codex、Gemini 或 Kimi。
|
|
@@ -94,7 +94,8 @@ Architect ──► Developer ──► Reviewer ──► Ship
|
|
|
94
94
|
- **总计行是真实的。** 输入框会显示一条实时的 `N 轮 · $X` 摘要,由每个已完成轮次的真实用量累加而来——和本页"绝不猜数字"的承诺一致。
|
|
95
95
|
- **会话有两种结束方式。** 大多数任务**自己收尾**:一旦某轮结束且没有排队的消息,会话就自行落定、任务完成——你的消息是可选的引导,从来不是义务。一个低调的**立即收尾**操作可以提前结束它,保留到目前为止产出的一切。**Freestyle** 任务是例外:它们在轮次之间待命,直到你点击 **Finalize**——这正是它的设计,一场由你来关闭的往返会话。
|
|
96
96
|
- **loop 运行中,消息会送到活跃的步骤。** 在内置或自定义 loop 上,你的消息会到达**此刻正在运行的 AI 步骤**。步骤之间(Loop Decider 思考时,或 shell 命令运行时)输入框会短暂显示*"等待下一步……"*状态——你草拟的文字会保留,下一个 AI 步骤启动时发送会重新可用。**结算此步骤**可以提前结束当前步骤,让 loop 带着它的产出继续前进。
|
|
97
|
-
-
|
|
97
|
+
- **persistent interaction 仅限 Claude。** Codex、Gemini、Kimi 都是
|
|
98
|
+
one-shot;Kimi chat 在收到 resume hint 后用新的 `kimi --session=<id> -p` 恢复。
|
|
98
99
|
|
|
99
100
|
## 诊断导出
|
|
100
101
|
|
|
@@ -81,4 +81,4 @@ Project B ▶ Rail running feature Y ┘
|
|
|
81
81
|
|
|
82
82
|
- [Rail 与任务](rails-and-jobs)——深入理解队列模型。
|
|
83
83
|
- [任务详情视图](the-job-detail-view)——实时观看一次批量运行。
|
|
84
|
-
- [为每条 rail 选择引擎](picking-an-engine-per-rail)
|
|
84
|
+
- [为每条 rail 选择引擎](picking-an-engine-per-rail)——Batch 可在任意提供方上运行;Freestyle 可用于 Claude 和 Kimi。
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# 为每条 rail 选择引擎
|
|
2
2
|
|
|
3
|
-
Specrails desktop 把 **Claude Code**、**Codex CLI
|
|
3
|
+
Specrails desktop 把 **Claude Code**、**Codex CLI**、**Gemini CLI** 和
|
|
4
|
+
**Kimi Code** 都当作一等引擎。可安装任何 compatible 组合。
|
|
4
5
|
|
|
5
6
|
## 选择器何时出现
|
|
6
7
|
|
|
@@ -13,7 +14,7 @@ Specrails desktop 把 **Claude Code**、**Codex CLI** 和 **Gemini CLI** 都当
|
|
|
13
14
|
## 如何选择一个引擎
|
|
14
15
|
|
|
15
16
|
1. 确认这条 rail 的引擎选择器正在显示(项目有 2 个及以上提供方)。
|
|
16
|
-
2.
|
|
17
|
+
2. 选择 **Claude**、**Codex**、**Gemini** 或 **Kimi**。
|
|
17
18
|
3. 用 **▶ Play** 启动这条 rail。
|
|
18
19
|
|
|
19
20
|
被选中的引擎会跑这条 rail 流水线的每一个阶段。如果所选引擎对应的 CLI 没装,启动会快速失败——什么都不会启动。装上缺失的 CLI 再试一次即可。
|
|
@@ -24,19 +25,16 @@ Specrails desktop 把 **Claude Code**、**Codex CLI** 和 **Gemini CLI** 都当
|
|
|
24
25
|
|
|
25
26
|
| 引擎 | 在什么情况下选它…… | 说明 |
|
|
26
27
|
|--------|--------------------|-------|
|
|
27
|
-
| **Claude** |
|
|
28
|
+
| **Claude** | 需要原生成本、持久交互或严格 tool policy。 | Profile、Freestyle 和 structured transform。 |
|
|
28
29
|
| **Codex** | 你更喜欢 OpenAI Codex CLI,或想跨提供方对比实现。 | `codex` ≥ 0.128.0。无原生成本上报——应用会用自己的价格表来补上成本。Profile 不适用。 |
|
|
29
30
|
| **Gemini** | 你想用 Google 的 Gemini CLI、原生遥测,或为常规 spec 跑得更省钱。 | `gemini` ≥ 0.11.0(需设置 `GEMINI_API_KEY`)。原生 OTLP 遥测。Profile 不适用。 |
|
|
31
|
+
| **Kimi** | 用 agentic Kimi 跑 Implement、Batch、Freestyle 或无 Decider 的 loop。 | 外部 `kimi` ≥ 0.27.0;profile/role,effort 仅 K3;token/cost unavailable。 |
|
|
30
32
|
|
|
31
|
-
###
|
|
33
|
+
### Capability 差异
|
|
32
34
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
- **Freestyle**——那个自主的、绕过流水线的模式。`Freestyle` 分段及其 Haiku/Sonnet/Opus 模型选择器,只有当 rail 的引擎是 Claude 时才会出现。
|
|
37
|
-
- **Contract Layer 与 SMASH**——Claude 专属的 spec 优化功能(这些是 Add Spec 的选项,不是 rail 的选项,但同样的限制适用)。
|
|
38
|
-
|
|
39
|
-
如果一个项目混用了引擎,右侧栏只会显示**每一个**已安装提供方都支持的区块——所以在一个含有任何非 Claude 提供方的项目上,**Agents** 区会彻底消失,因为 Profile 是 Claude 特有的。
|
|
35
|
+
Claude/Kimi 支持 Profile 和 Freestyle;Codex/Gemini 使用 legacy。Kimi
|
|
36
|
+
拒绝 Loop Decider 和 [Kimi 指南](../../../kimi.md) 中的 pure-output
|
|
37
|
+
transform。Claude/Kimi Profile 彼此隔离。
|
|
40
38
|
|
|
41
39
|
## 一套实用的工作流
|
|
42
40
|
|
|
@@ -49,12 +47,14 @@ Specrails desktop 把 **Claude Code**、**Codex CLI** 和 **Gemini CLI** 都当
|
|
|
49
47
|
## 几点需要记住
|
|
50
48
|
|
|
51
49
|
- **提供方选择在项目创建后不可更改**(v1)。你在添加项目时选定要安装的提供方;之后没有 Settings 开关可以再增删。
|
|
52
|
-
-
|
|
50
|
+
- **available metrics 会记录。** Kimi 不提供 authoritative token/USD
|
|
51
|
+
cost,字段保持为空。
|
|
53
52
|
- 在多提供方项目上,**终端的"Open AI CLI"按钮**也会提供一个提供方选择器,方便你想手动驱动某个 CLI 时使用。
|
|
54
53
|
|
|
55
54
|
## 接下来去哪儿
|
|
56
55
|
|
|
57
56
|
- [使用 Codex](../integrations/using-codex)——安装与登录。
|
|
58
57
|
- [使用 Gemini](../integrations/using-gemini)——安装、`GEMINI_API_KEY`、遥测。
|
|
58
|
+
- [使用 Kimi](../../../kimi.md)——安装与完整矩阵。
|
|
59
59
|
- [Rail 与任务](rails-and-jobs)——队列与启动流程。
|
|
60
60
|
- [追踪成本](../analytics/tracking-cost)——按引擎的成本明细。
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
|
|
18
18
|
- loop 住在 **Loops** 区里(左侧栏,和你的项目并列)——它们是**全局**的,跨所有项目共享。
|
|
19
19
|
- 一条 rail 在它的头部(Loop 选择器)**挑一个 loop**,按下 Play 时就运行它。
|
|
20
|
-
-
|
|
20
|
+
- **rail** 决定 provider、model 和 compatible effort。compatible loop 可在 Claude、Codex、Gemini 或 Kimi 上运行。
|
|
21
21
|
|
|
22
22
|
所以:一个 loop 只需搭一次,之后就能在任意项目的任意 rail 上挑来用。
|
|
23
23
|
|
|
@@ -41,6 +41,10 @@
|
|
|
41
41
|
|
|
42
42
|
边按顺序把各个步骤连起来。**Loop Decider** 有两个带标签的输出——**continue** 和 **stop**——所以你把"还没完"接回到活儿里去,把"完成了"接出去到一个 End。
|
|
43
43
|
|
|
44
|
+
> **Kimi 支持包含 AI/shell step 的 loop,但不支持 Loop Decider。**
|
|
45
|
+
> verdict 是 pure-output,`kimi -p` 无法强制 no-tools 边界;run 会在第一
|
|
46
|
+
> 个 step 前拒绝。
|
|
47
|
+
|
|
44
48
|
### 编写步骤文本
|
|
45
49
|
|
|
46
50
|
在任意 AI Step 或 Decider 里,你都可以引用:
|
|
@@ -57,7 +61,7 @@
|
|
|
57
61
|
|-------|--------------|
|
|
58
62
|
| **Max iterations** | 不管 Decider 怎么裁决,它最多能绕回多少次的硬上限。 |
|
|
59
63
|
| **Timeout (min)** | 整次运行的挂钟时间上限。 |
|
|
60
|
-
| **Max cost ($)** | *可选。*
|
|
64
|
+
| **Max cost ($)** | *可选。* Claude 报告 cost;Codex/Gemini 使用估算。Kimi 不报告 authoritative USD cost。 |
|
|
61
65
|
|
|
62
66
|
## 有把握地搭建
|
|
63
67
|
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
当你已经清楚自己想要什么时,Quick 模式正合适。你输入想法,AI 写出完整的 spec,它就以 **待办** 状态落在你的看板上。不需要来回讨论——只管描述,然后开干。
|
|
4
4
|
|
|
5
|
+
> **Kimi 不支持 Quick Spec。** `kimi -p` 无法强制此表单的 pure-output
|
|
6
|
+
> 边界,因此请求会在 spawn 前拒绝。请使用 Explore、Raw 或 Quick
|
|
7
|
+
> Launcher(`/opsx:ff`)。
|
|
8
|
+
|
|
5
9
|
## 用 Quick 模式创建 spec
|
|
6
10
|
|
|
7
11
|
要快速创建一份 spec:
|
|
@@ -19,7 +23,8 @@
|
|
|
19
23
|
|
|
20
24
|
**模型**——默认情况下,AI 会挑选一个合适的模型。如果你想要更快或更强的模型,可以在模型选择器里按 spec 单独覆写。
|
|
21
25
|
|
|
22
|
-
|
|
26
|
+
**引擎**——选择器只显示 **compatible** provider;Quick Spec 不包含
|
|
27
|
+
Kimi。
|
|
23
28
|
|
|
24
29
|
**上下文**——Quick 模式通常作为单轮运行,因为它不需要读取你的代码库就能根据你的描述写出 spec。但一个上下文滑块可以给它更多素材:
|
|
25
30
|
|
package/docs/internals/README.md
CHANGED
|
@@ -21,7 +21,10 @@ If you're a user looking for **how do I do X?** docs, head back to the [user gui
|
|
|
21
21
|
| [gemini-mcp-registration.md](gemini-mcp-registration.md) | How MCP servers actually reach gemini-cli (`.gemini/settings.json` + trust env, FQN tool prefix) and the deferred `.mcp.json` gap on non-agent-chat surfaces |
|
|
22
22
|
| [browser-capture-performance.md](browser-capture-performance.md) | Embedded-browser fluidity: the CDP screencast → WS → canvas pipeline, the latency levers (non-blocking navigation, input coalescing, latest-frame-wins drawing, frame conflation), tuning knobs, and the OAuth popup design |
|
|
23
23
|
|
|
24
|
-
**See also:** the app
|
|
24
|
+
**See also:** the app registers Claude Code, Codex CLI, Gemini CLI, and Kimi
|
|
25
|
+
Code as first-class engines. See [`../kimi.md`](../kimi.md),
|
|
26
|
+
[`../codex.md`](../codex.md), and [`../gemini.md`](../gemini.md). First-class
|
|
27
|
+
status is capability-aware: Kimi pure-output transforms fail closed.
|
|
25
28
|
|
|
26
29
|
## Contributing
|
|
27
30
|
|