specrails-desktop 2.64.2 → 2.65.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 +1 -1
- package/cli/dist/status.js +3 -0
- package/client/dist/assets/ActivityFeedPage-ByVKYII-.js +1 -0
- package/client/dist/assets/AgentBrowserCapture-BGUTjhUr.js +1 -0
- package/client/dist/assets/AgentModeAnalyticsPane-CtOLDDjB.js +2 -0
- package/client/dist/assets/AgentModeCodePane-CDhUKarT.js +2 -0
- package/client/dist/assets/AgentModeJobsPane-BAa_oEHJ.js +1 -0
- package/client/dist/assets/AgentsPage-D32hG4Ve.js +120 -0
- package/client/dist/assets/AnalyticsPage-BU50zeG6.js +5 -0
- package/client/dist/assets/BudgetCard-DP_jxwaD.js +55 -0
- package/client/dist/assets/CodePage-jiYnKGpp.js +3 -0
- package/client/dist/assets/CostValue-Bvn8674q.js +1 -0
- package/client/dist/assets/DesktopAnalyticsPage-CF__H4e3.js +1 -0
- package/client/dist/assets/DocView-RrAp70zp.js +11 -0
- package/client/dist/assets/DocsDialog-DkqHU-JF.js +1 -0
- package/client/dist/assets/DocsPage-C6X089zC.js +1 -0
- package/client/dist/assets/ExportDropdown-C5-o8y3K.js +1 -0
- package/client/dist/assets/HelpHint-Crf9_uoR.js +1 -0
- package/client/dist/assets/IntegrationsPage-aflU3KHK.js +1 -0
- package/client/dist/assets/InteractiveJobComposer-CEMMhyyJ.js +19 -0
- package/client/dist/assets/JobDetailModal-BVJ6hyRs.js +1 -0
- package/client/dist/assets/JobDetailPage-DHzBUmox.js +1 -0
- package/client/dist/assets/JobsPage-o-LAqkwC.js +1 -0
- package/client/dist/assets/LoopBuilderPage-DbSVmXBM.js +1 -0
- package/client/dist/assets/LoopPreviewModal-DbJcVyN1.js +1 -0
- package/client/dist/assets/{LoopWindowSurface-DE0v2K1p.js → LoopWindowSurface-Co1ZK26V.js} +1 -1
- package/client/dist/assets/LoopsPage-C4lgkPXB.js +2 -0
- package/client/dist/assets/MinimizedChatsContext-742ypO8n.js +1 -0
- package/client/dist/assets/PluginsPage-Acks9ges.js +2 -0
- package/client/dist/assets/RailTrack-BfLmBzBh.js +1 -0
- package/client/dist/assets/{RepositoryScopeSelector-2eSqR9WK.js → RepositoryScopeSelector-DcxbKI9w.js} +1 -1
- package/client/dist/assets/ReviewPacketPage-CAVSIOAJ.js +7 -0
- package/client/dist/assets/TemplatePreviewModal-C23SYCTm.js +1 -0
- package/client/dist/assets/TicketDetailModalContext-B-Gtm6Ob.js +23 -0
- package/client/dist/assets/Trans-C6J0cLyh.js +1 -0
- package/client/dist/assets/a11y-prefs-BqoP5goK.js +1 -0
- package/client/dist/assets/activity-BBWfoUOG.js +1 -0
- package/client/dist/assets/activity-BM_skann.js +1 -0
- package/client/dist/assets/activity-Cevl82ke.js +1 -0
- package/client/dist/assets/activity-CmACk5W5.js +1 -0
- package/client/dist/assets/activity-D9LBw3PQ.js +1 -0
- package/client/dist/assets/activity-Dspbb9lz.js +1 -0
- package/client/dist/assets/activity-FPjYIjv9.js +1 -0
- package/client/dist/assets/activity-nLCKMUKt.js +1 -0
- package/client/dist/assets/addspec-BI4jDMhA.js +1 -0
- package/client/dist/assets/addspec-BldTv7Tl.js +1 -0
- package/client/dist/assets/addspec-Cdq-2EcC.js +1 -0
- package/client/dist/assets/addspec-DH5M16BQ.js +1 -0
- package/client/dist/assets/addspec-DOFo9pD5.js +1 -0
- package/client/dist/assets/addspec-DPkwhdmL.js +1 -0
- package/client/dist/assets/addspec-Dzy12Pv3.js +1 -0
- package/client/dist/assets/addspec-skTs6EEW.js +1 -0
- package/client/dist/assets/agent-B_UEUy7Y.js +1 -0
- package/client/dist/assets/agent-BarjlhTA.js +1 -0
- package/client/dist/assets/agent-BfqIITo5.js +1 -0
- package/client/dist/assets/agent-Bt9a7Kyj.js +1 -0
- package/client/dist/assets/agent-C3689RwP.js +1 -0
- package/client/dist/assets/agent-CrmboTAi.js +1 -0
- package/client/dist/assets/agent-DcsoTnuE.js +1 -0
- package/client/dist/assets/agent-GDZoYwd4.js +1 -0
- package/client/dist/assets/{agentRuntime-es2ymSl-.js → agentRuntime-BYH70bKY.js} +1 -1
- package/client/dist/assets/agentRuntime-BijLh8I9.js +1 -0
- package/client/dist/assets/{agentRuntime-BzuwQQgn.js → agentRuntime-BvyuETPe.js} +1 -1
- package/client/dist/assets/{agentRuntime-BDvbJMmS.js → agentRuntime-C2WI6HQh.js} +1 -1
- package/client/dist/assets/{agentRuntime-BKJfv5YD.js → agentRuntime-CZPIlQsr.js} +1 -1
- package/client/dist/assets/{agentRuntime-DiCldqGG.js → agentRuntime-D2dDvCyJ.js} +1 -1
- package/client/dist/assets/agentRuntime-DWZedEbn.js +1 -0
- package/client/dist/assets/agentRuntime-DkIruUNw.js +1 -0
- package/client/dist/assets/agents-35_PDKx9.js +1 -0
- package/client/dist/assets/agents-8fZnHhEQ.js +1 -0
- package/client/dist/assets/agents-Bgimtw8z.js +1 -0
- package/client/dist/assets/agents-C4P160Us.js +1 -0
- package/client/dist/assets/agents-Clg67zbp.js +1 -0
- package/client/dist/assets/agents-DJfF4o6G.js +1 -0
- package/client/dist/assets/agents-Dc9-Y5cw.js +1 -0
- package/client/dist/assets/agents-EN1Zl4YZ.js +1 -0
- package/client/dist/assets/agentstudio-Bm4-NYaG.js +1 -0
- package/client/dist/assets/agentstudio-CD1fuj2o.js +1 -0
- package/client/dist/assets/agentstudio-CQGWFSst.js +1 -0
- package/client/dist/assets/agentstudio-CqVSb65S.js +1 -0
- package/client/dist/assets/agentstudio-DIE_HjsX.js +1 -0
- package/client/dist/assets/agentstudio-D_OmQK-k.js +1 -0
- package/client/dist/assets/agentstudio-Djz9aUfb.js +1 -0
- package/client/dist/assets/agentstudio-Qa3v9o5J.js +1 -0
- package/client/dist/assets/{aiedit-DNXxq_Dr.js → aiedit-1VzLs37W.js} +1 -1
- package/client/dist/assets/{aiedit-DCjA7jLJ.js → aiedit-BNp6GSik.js} +1 -1
- package/client/dist/assets/{aiedit-BoG24nlg.js → aiedit-BOY5xRPi.js} +1 -1
- package/client/dist/assets/{aiedit-iIjz2_Qk.js → aiedit-BrqMZvbc.js} +1 -1
- package/client/dist/assets/{aiedit-CjlSRQVP.js → aiedit-CVgtl7hm.js} +1 -1
- package/client/dist/assets/{aiedit-DQ-0_pvE.js → aiedit-CrFW9Jd2.js} +1 -1
- package/client/dist/assets/{aiedit-olnv3QSt.js → aiedit-YE2lILp7.js} +1 -1
- package/client/dist/assets/{aiedit-B0KUbpB6.js → aiedit-iA_R1AVQ.js} +1 -1
- package/client/dist/assets/analytics-3w0t-4ic.js +1 -0
- package/client/dist/assets/analytics-BRi4KQD6.js +1 -0
- package/client/dist/assets/analytics-BtjAqzke.js +1 -0
- package/client/dist/assets/analytics-COSQ1h47.js +1 -0
- package/client/dist/assets/analytics-CP2HjESk.js +1 -0
- package/client/dist/assets/analytics-DY65TC62.js +1 -0
- package/client/dist/assets/analytics-Den_vvxn.js +1 -0
- package/client/dist/assets/analytics-LmBS96O8.js +1 -0
- package/client/dist/assets/api-DOGbyfTO.js +2 -0
- package/client/dist/assets/builder-BMVvSr4v.js +1 -0
- package/client/dist/assets/builder-BN-MuLZt.js +1 -0
- package/client/dist/assets/builder-BQOZi4CF.js +1 -0
- package/client/dist/assets/builder-BjUPjsyu.js +1 -0
- package/client/dist/assets/builder-BoBtN18T.js +1 -0
- package/client/dist/assets/builder-C5g5NhxL.js +1 -0
- package/client/dist/assets/builder-RUHXw3yx.js +1 -0
- package/client/dist/assets/builder-fyS_AiyC.js +1 -0
- package/client/dist/assets/button-CHPkroew.js +1 -0
- package/client/dist/assets/chat-C9L5T7KI.js +1 -0
- package/client/dist/assets/chevron-right-CwMAj0w_.js +1 -0
- package/client/dist/assets/chevron-up-BAMuP0XD.js +1 -0
- package/client/dist/assets/chunk-OB3PAWPO-BBaq6pUk.js +3 -0
- package/client/dist/assets/code-4le5IIbf.js +1 -0
- package/client/dist/assets/code-B-jCVIbm.js +1 -0
- package/client/dist/assets/code-BRfrn5ix.js +1 -0
- package/client/dist/assets/code-CC9NCrDM.js +1 -0
- package/client/dist/assets/code-CK6pm8wY.js +1 -0
- package/client/dist/assets/code-DDiOzd6c.js +1 -0
- package/client/dist/assets/code-tGifiyf5.js +1 -0
- package/client/dist/assets/code-xkn8kQTg.js +1 -0
- package/client/dist/assets/commands-Bv1QshHR.js +1 -0
- package/client/dist/assets/commands-BvxTxboW.js +1 -0
- package/client/dist/assets/commands-C5ORR0fO.js +1 -0
- package/client/dist/assets/commands-CBKMFSTV.js +1 -0
- package/client/dist/assets/commands-CFJIRsJv.js +1 -0
- package/client/dist/assets/commands-D9o3ZcXl.js +1 -0
- package/client/dist/assets/commands-DNox0Edk.js +1 -0
- package/client/dist/assets/commands-DmIUMLdV.js +1 -0
- package/client/dist/assets/common-5H4TkaoI.js +1 -0
- package/client/dist/assets/common-9S3OdPjx.js +1 -0
- package/client/dist/assets/common-BqnwIcjs.js +1 -0
- package/client/dist/assets/common-CQP3VafS.js +1 -0
- package/client/dist/assets/common-CZnAfkB2.js +1 -0
- package/client/dist/assets/common-D5sNttV4.js +1 -0
- package/client/dist/assets/common-k_qX9nlv.js +1 -0
- package/client/dist/assets/common-s4HIi9XI.js +1 -0
- package/client/dist/assets/compass-B7guwBlY.js +1 -0
- package/client/dist/assets/confirm-dialog-ChZdHL3Q.js +1 -0
- package/client/dist/assets/copy-DOPlLymH.js +1 -0
- package/client/dist/assets/core-BozBzB6Y.js +1 -0
- package/client/dist/assets/dashboard-6zGLGcEz.js +1 -0
- package/client/dist/assets/dashboard-8Gi0FBDq.js +1 -0
- package/client/dist/assets/dashboard-B7E5YrSy.js +1 -0
- package/client/dist/assets/dashboard-BhdKV8xK.js +1 -0
- package/client/dist/assets/dashboard-Bu3zzH_s.js +1 -0
- package/client/dist/assets/dashboard-Ce_6rELA.js +1 -0
- package/client/dist/assets/dashboard-DWY-oz8P.js +1 -0
- package/client/dist/assets/dashboard-gUzlWk0o.js +1 -0
- package/client/dist/assets/date-input-Cdlr8kHz.js +1 -0
- package/client/dist/assets/dialog-C23lB2iP.js +5 -0
- package/client/dist/assets/dist-Di-oOFkX.js +1 -0
- package/client/dist/assets/dist-js-CBmS6MsJ.js +1 -0
- package/client/dist/assets/{dist-js-Rlh4FLH5.js → dist-js-DaJmKapi.js} +1 -1
- package/client/dist/assets/dropdown-menu-Bfp2CK6H.js +1 -0
- package/client/dist/assets/empty-state-D5w9OWj-.js +1 -0
- package/client/dist/assets/es2015-DfnECntk.js +41 -0
- package/client/dist/assets/esm-BKF6CE7v.js +1 -0
- package/client/dist/assets/event-BEnMLqAi.js +1 -0
- package/client/dist/assets/explore--NOz9LCN.js +1 -0
- package/client/dist/assets/explore-B2ulH6dO.js +1 -0
- package/client/dist/assets/explore-BD-QiLdg.js +1 -0
- package/client/dist/assets/explore-BOqd4_1j.js +1 -0
- package/client/dist/assets/explore-Be_Zh5zu.js +1 -0
- package/client/dist/assets/explore-CLjzPSKo.js +1 -0
- package/client/dist/assets/explore-D_-vHm29.js +1 -0
- package/client/dist/assets/explore-yEQTF6ro.js +1 -0
- package/client/dist/assets/file-text-CNXzL3wj.js +1 -0
- package/client/dist/assets/format-BODoFIw6.js +1 -0
- package/client/dist/assets/formatDistanceToNow-DLMIOS0N.js +1 -0
- package/client/dist/assets/getTimezoneOffsetInMilliseconds-O61feXch.js +1 -0
- package/client/dist/assets/git-compare-arrows-Cu6tICCq.js +1 -0
- package/client/dist/assets/humanise-command-CB4ybLwq.js +1 -0
- package/client/dist/assets/inbox-BLZ8cm6_.js +1 -0
- package/client/dist/assets/inbox-BQ3VmNYY.js +1 -0
- package/client/dist/assets/inbox-BdcXWCuT.js +1 -0
- package/client/dist/assets/inbox-CF1PHjns.js +1 -0
- package/client/dist/assets/inbox-CFNPDhso.js +1 -0
- package/client/dist/assets/inbox-DIttK_NW.js +1 -0
- package/client/dist/assets/inbox-Dfdv1Ykl.js +1 -0
- package/client/dist/assets/inbox-JS1inmeO.js +1 -0
- package/client/dist/assets/index-4UWY7Xyz.css +2 -0
- package/client/dist/assets/index-DHzB0T26.js +120 -0
- package/client/dist/assets/integrations-BcKgzgPD.js +1 -0
- package/client/dist/assets/integrations-BmX_XyJq.js +1 -0
- package/client/dist/assets/integrations-CHpwMjlY.js +1 -0
- package/client/dist/assets/integrations-CT3kr8e-.js +1 -0
- package/client/dist/assets/integrations-C_5XAkgz.js +1 -0
- package/client/dist/assets/integrations-Ct9zLX7N.js +1 -0
- package/client/dist/assets/integrations-DEYemxUv.js +1 -0
- package/client/dist/assets/integrations-DWvsB_WB.js +1 -0
- package/client/dist/assets/{jira-Cq6yvN4q.js → jira-B_ERkFRv.js} +1 -1
- package/client/dist/assets/jira-Bn-A5lwD.js +1 -0
- package/client/dist/assets/jira-C71Ybnhp.js +1 -0
- package/client/dist/assets/jira-CkwjeJz6.js +1 -0
- package/client/dist/assets/jira-D9pSLXjI.js +1 -0
- package/client/dist/assets/jira-DBRS_lcp.js +1 -0
- package/client/dist/assets/jira-DHS6CsKh.js +1 -0
- package/client/dist/assets/jira-MInHRUb1.js +1 -0
- package/client/dist/assets/jira-api-DHme7Upx.js +1 -0
- package/client/dist/assets/jobs-BMLTDo63.js +1 -0
- package/client/dist/assets/jobs-BO8q4Mi1.js +1 -0
- package/client/dist/assets/jobs-Ck8uOWMM.js +1 -0
- package/client/dist/assets/jobs-CyFfPCpg.js +1 -0
- package/client/dist/assets/jobs-DT5s4fZ6.js +1 -0
- package/client/dist/assets/jobs-DZAgVPcD.js +1 -0
- package/client/dist/assets/jobs-b5gPYaKr.js +1 -0
- package/client/dist/assets/jobs-xsZK1440.js +1 -0
- package/client/dist/assets/launch-forecast-BTa-p3RP.js +1 -0
- package/client/dist/assets/{loop-layout-DtxX27Jz.css → loop-layout-DLioOiRN.css} +1 -1
- package/client/dist/assets/loop-layout-Sl9cfTvs.js +7 -0
- package/client/dist/assets/loops-BEEOVJDR.js +1 -0
- package/client/dist/assets/loops-BcrQ2vk7.js +1 -0
- package/client/dist/assets/loops-BjWxzJIZ.js +1 -0
- package/client/dist/assets/loops-BogV595N.js +1 -0
- package/client/dist/assets/loops-CU0BLZiz.js +1 -0
- package/client/dist/assets/loops-CrNBgi1G.js +1 -0
- package/client/dist/assets/loops-CwalwS_i.js +1 -0
- package/client/dist/assets/loops-_TDVN-fX.js +1 -0
- package/client/dist/assets/mcp-BNs8gxoL.js +1 -0
- package/client/dist/assets/mcp-BvRh_xO5.js +1 -0
- package/client/dist/assets/mcp-C2F1pghi.js +1 -0
- package/client/dist/assets/mcp-D9RLKAs2.js +1 -0
- package/client/dist/assets/mcp-DAghcsR0.js +1 -0
- package/client/dist/assets/mcp-DWWAPi1G.js +1 -0
- package/client/dist/assets/mcp-DbGSFC3f.js +1 -0
- package/client/dist/assets/mcp-FelCicrv.js +1 -0
- package/client/dist/assets/narration-C3NBkAR4.js +1 -0
- package/client/dist/assets/narration-CkoJq-Lf.js +1 -0
- package/client/dist/assets/narration-Cr0NeW9K.js +1 -0
- package/client/dist/assets/narration-DJUXOs-W.js +1 -0
- package/client/dist/assets/narration-DgL8TMvN.js +1 -0
- package/client/dist/assets/narration-DjBafgv0.js +1 -0
- package/client/dist/assets/narration-Dle6Iv0c.js +1 -0
- package/client/dist/assets/narration-MYlfktga.js +1 -0
- package/client/dist/assets/nav-BSQ8KW1c.js +1 -0
- package/client/dist/assets/nav-BauVof8Z.js +1 -0
- package/client/dist/assets/nav-BfOAH1se.js +1 -0
- package/client/dist/assets/nav-D3bOsipX.js +1 -0
- package/client/dist/assets/nav-DOMMhlLx.js +1 -0
- package/client/dist/assets/nav-DPzVlgZU.js +1 -0
- package/client/dist/assets/nav-DZJbFbah.js +1 -0
- package/client/dist/assets/nav-D_5aojd2.js +1 -0
- package/client/dist/assets/notify-error-BsWANx1T.js +1 -0
- package/client/dist/assets/onboarding-BdZQnNm3.js +1 -0
- package/client/dist/assets/onboarding-CJQEv1vp.js +1 -0
- package/client/dist/assets/onboarding-CWJGYUW3.js +1 -0
- package/client/dist/assets/onboarding-ChfYN7dA.js +1 -0
- package/client/dist/assets/onboarding-CjvDUR3V.js +1 -0
- package/client/dist/assets/onboarding-I6vS-zTB.js +1 -0
- package/client/dist/assets/onboarding-dgC_9dTB.js +1 -0
- package/client/dist/assets/onboarding-mlXSyKzX.js +1 -0
- package/client/dist/assets/origin-03nTuaOb.js +1 -0
- package/client/dist/assets/packet-BjpyRnZr.js +1 -0
- package/client/dist/assets/packet-BwgG5mBt.js +1 -0
- package/client/dist/assets/packet-C3eAUFkV.js +1 -0
- package/client/dist/assets/packet-C8wZuSld.js +1 -0
- package/client/dist/assets/packet-CNXEy_85.js +1 -0
- package/client/dist/assets/packet-DsV5Aa_8.js +1 -0
- package/client/dist/assets/packet-aasskOE7.js +1 -0
- package/client/dist/assets/packet-phxCc2gJ.js +1 -0
- package/client/dist/assets/page-header-BStSHkP8.js +1 -0
- package/client/dist/assets/project-repositories-DJPeAVBK.js +1 -0
- package/client/dist/assets/{provider-capabilities-lePfeT_Y.js → provider-capabilities-DtwcTme4.js} +1 -1
- package/client/dist/assets/recovery-BPDOsC92.js +1 -0
- package/client/dist/assets/recovery-BluNHoXM.js +1 -0
- package/client/dist/assets/recovery-CRvEmB0C.js +1 -0
- package/client/dist/assets/recovery-CeIoRnkR.js +1 -0
- package/client/dist/assets/recovery-DHCo8KGi.js +1 -0
- package/client/dist/assets/recovery-OxAIpbBF.js +1 -0
- package/client/dist/assets/recovery-XXexYGOJ.js +1 -0
- package/client/dist/assets/recovery-pITlc--v.js +1 -0
- package/client/dist/assets/refresh-cw-DfyTkbsf.js +1 -0
- package/client/dist/assets/select-xA3pSmqE.js +1 -0
- package/client/dist/assets/settings--yzDbX9r.js +1 -0
- package/client/dist/assets/settings-5_heTv8s.js +1 -0
- package/client/dist/assets/settings-BSf27MDg.js +1 -0
- package/client/dist/assets/settings-BSj6FakR.js +1 -0
- package/client/dist/assets/settings-BZDo_8Nn.js +1 -0
- package/client/dist/assets/settings-BdWgmNc0.js +1 -0
- package/client/dist/assets/settings-DRouxKqb.js +1 -0
- package/client/dist/assets/settings-DnWFoY-F.js +1 -0
- package/client/dist/assets/setup-BJWy62ri.js +1 -0
- package/client/dist/assets/setup-BgKOIuzc.js +1 -0
- package/client/dist/assets/setup-BvVIyUlz.js +1 -0
- package/client/dist/assets/setup-BxCk2pe1.js +1 -0
- package/client/dist/assets/setup-C-xQTL7R.js +1 -0
- package/client/dist/assets/setup-CbaVoiwV.js +1 -0
- package/client/dist/assets/setup-DxTBkX3P.js +1 -0
- package/client/dist/assets/setup-oGoVAzOD.js +1 -0
- package/client/dist/assets/specs-7tAb4IKr.js +1 -0
- package/client/dist/assets/specs-BUcY4s5v.js +1 -0
- package/client/dist/assets/specs-Bk5LeBAA.js +1 -0
- package/client/dist/assets/specs-CAA4Lrlg.js +1 -0
- package/client/dist/assets/specs-CS091AnA.js +1 -0
- package/client/dist/assets/specs-DJ6gmFcK.js +1 -0
- package/client/dist/assets/specs-GfCcrBSC.js +1 -0
- package/client/dist/assets/specs-xQgyc7WL.js +1 -0
- package/client/dist/assets/spending-CVH8VREb.js +1 -0
- package/client/dist/assets/square-Co6h5vZg.js +1 -0
- package/client/dist/assets/tauri-shell-43ixPGfa.js +2 -0
- package/client/dist/assets/terminal-0v9sBylD.js +1 -0
- package/client/dist/assets/terminal-AbUAmCxE.js +1 -0
- package/client/dist/assets/terminal-BJayIbIP.js +1 -0
- package/client/dist/assets/terminal-C2RUlXyi.js +1 -0
- package/client/dist/assets/terminal-CMmSb_Nj.js +1 -0
- package/client/dist/assets/terminal-DKWjj7HJ.js +1 -0
- package/client/dist/assets/terminal-KlFu7_pV.js +1 -0
- package/client/dist/assets/terminal-i99yqFvm.js +1 -0
- package/client/dist/assets/tickets-846Oq3i3.js +1 -0
- package/client/dist/assets/tickets-B5LJTe_b.js +1 -0
- package/client/dist/assets/tickets-Bfo2GGmH.js +1 -0
- package/client/dist/assets/tickets-BhdZ1yY2.js +1 -0
- package/client/dist/assets/tickets-CgjWJHAW.js +1 -0
- package/client/dist/assets/tickets-Ct9DbDUR.js +1 -0
- package/client/dist/assets/tickets-rptLEJB1.js +1 -0
- package/client/dist/assets/tickets-xQ6DpYdu.js +1 -0
- package/client/dist/assets/trending-up-BGvb4zZt.js +1 -0
- package/client/dist/assets/undo-6zuS4-sL.js +1 -0
- package/client/dist/assets/undo-BeM4gDOP.js +1 -0
- package/client/dist/assets/undo-BeppX8xS.js +1 -0
- package/client/dist/assets/undo-BqvNZ5MG.js +1 -0
- package/client/dist/assets/undo-BzwEPf_k.js +1 -0
- package/client/dist/assets/undo-CJ9Cu1NN.js +1 -0
- package/client/dist/assets/undo-ds8nMFbX.js +1 -0
- package/client/dist/assets/undo-x_gA-knG.js +1 -0
- package/client/dist/assets/useDesktop-BuOp2-MR.js +1 -0
- package/client/dist/assets/useRuntimeRuns-BRS6ncnO.js +1 -0
- package/client/dist/assets/utils-ELimjS2Y.js +1 -0
- package/client/dist/assets/wrench-Br2n1Lxd.js +1 -0
- package/client/dist/index.html +75 -60
- package/docs/ci-cd.md +29 -1
- package/docs/cli.md +10 -31
- package/docs/codex.md +1 -1
- package/docs/creating-specs.md +15 -12
- package/docs/customizing.md +16 -13
- package/docs/getting-started.md +12 -11
- package/docs/guide/de/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/de/getting-started/2-installing-and-first-run.md +2 -0
- package/docs/guide/de/getting-started/3-try-the-sample-project.md +35 -0
- package/docs/guide/de/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
- package/docs/guide/de/getting-started/6-universal-search.md +34 -0
- package/docs/guide/de/insights/1-analytics-and-cost-tracking.md +20 -6
- package/docs/guide/de/insights/2-the-integrated-terminal.md +1 -1
- package/docs/guide/de/insights/3-code-explorer.md +1 -1
- package/docs/guide/de/integrations/1-ai-providers.md +1 -1
- package/docs/guide/de/integrations/2-plugins.md +1 -1
- package/docs/guide/de/integrations/3-jira-integration.md +3 -3
- package/docs/guide/de/integrations/4-mobile-companion.md +1 -1
- package/docs/guide/de/integrations/5-mcp-server.md +1 -1
- package/docs/guide/de/integrations/6-agent-chat.md +12 -5
- package/docs/guide/de/integrations/8-flow-mode.md +69 -0
- package/docs/guide/de/pipeline/1-rails-and-jobs.md +21 -1
- package/docs/guide/de/pipeline/2-the-job-detail-view.md +12 -0
- package/docs/guide/de/pipeline/3-reviewing-a-delivery.md +43 -0
- package/docs/guide/de/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/de/pipeline/5-the-loop-builder.md +1 -1
- package/docs/guide/de/settings/1-themes.md +1 -1
- package/docs/guide/de/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
- package/docs/guide/de/settings/5-project-environment.md +1 -1
- package/docs/guide/de/settings/6-updates.md +24 -0
- package/docs/guide/de/settings/7-existing-projects.md +33 -0
- package/docs/guide/de/settings/8-accessibility.md +23 -0
- package/docs/guide/de/specs/1-specs-and-the-backlog.md +41 -3
- package/docs/guide/de/specs/2-add-spec-quick-mode.md +1 -1
- package/docs/guide/de/specs/3-add-spec-explore-mode.md +1 -1
- package/docs/guide/en/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/en/getting-started/1-what-is-specrails.md +1 -1
- package/docs/guide/en/getting-started/2-installing-and-first-run.md +2 -0
- package/docs/guide/en/getting-started/3-try-the-sample-project.md +35 -0
- package/docs/guide/en/getting-started/5-the-dashboard-tour.md +52 -0
- package/docs/guide/en/getting-started/6-universal-search.md +34 -0
- package/docs/guide/en/insights/1-analytics-and-cost-tracking.md +24 -10
- package/docs/guide/en/insights/2-the-integrated-terminal.md +1 -1
- package/docs/guide/en/insights/3-code-explorer.md +5 -5
- package/docs/guide/en/integrations/1-ai-providers.md +1 -1
- package/docs/guide/en/integrations/2-plugins.md +1 -1
- package/docs/guide/en/integrations/3-jira-integration.md +4 -4
- package/docs/guide/en/integrations/4-mobile-companion.md +1 -1
- package/docs/guide/en/integrations/5-mcp-server.md +4 -4
- package/docs/guide/en/integrations/6-agent-chat.md +12 -5
- package/docs/guide/en/integrations/8-flow-mode.md +69 -0
- package/docs/guide/en/pipeline/1-rails-and-jobs.md +22 -3
- package/docs/guide/en/pipeline/2-the-job-detail-view.md +19 -7
- package/docs/guide/en/pipeline/3-reviewing-a-delivery.md +43 -0
- package/docs/guide/en/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/en/pipeline/5-the-loop-builder.md +2 -2
- package/docs/guide/en/settings/1-themes.md +1 -1
- package/docs/guide/en/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
- package/docs/guide/en/settings/5-project-environment.md +1 -1
- package/docs/guide/en/settings/6-updates.md +24 -0
- package/docs/guide/en/settings/7-existing-projects.md +33 -0
- package/docs/guide/en/settings/8-accessibility.md +23 -0
- package/docs/guide/en/specs/1-specs-and-the-backlog.md +42 -6
- package/docs/guide/en/specs/2-add-spec-quick-mode.md +1 -1
- package/docs/guide/en/specs/3-add-spec-explore-mode.md +2 -2
- package/docs/guide/es/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/es/agents/2-profiles-and-the-balanced-default.md +1 -1
- package/docs/guide/es/agents/3-customizing-models-per-agent.md +2 -2
- package/docs/guide/es/agents/4-custom-agents-catalog.md +1 -1
- package/docs/guide/es/getting-started/1-what-is-specrails.md +3 -3
- package/docs/guide/es/getting-started/2-installing-and-first-run.md +2 -0
- package/docs/guide/es/getting-started/3-try-the-sample-project.md +35 -0
- package/docs/guide/es/getting-started/5-the-dashboard-tour.md +52 -0
- package/docs/guide/es/getting-started/6-universal-search.md +34 -0
- package/docs/guide/es/insights/1-analytics-and-cost-tracking.md +26 -12
- package/docs/guide/es/insights/2-the-integrated-terminal.md +1 -1
- package/docs/guide/es/insights/3-code-explorer.md +5 -5
- package/docs/guide/es/integrations/1-ai-providers.md +1 -1
- package/docs/guide/es/integrations/2-plugins.md +1 -1
- package/docs/guide/es/integrations/3-jira-integration.md +4 -4
- package/docs/guide/es/integrations/4-mobile-companion.md +1 -1
- package/docs/guide/es/integrations/5-mcp-server.md +4 -4
- package/docs/guide/es/integrations/6-agent-chat.md +14 -7
- package/docs/guide/es/integrations/7-local-engines.md +1 -1
- package/docs/guide/es/integrations/8-flow-mode.md +69 -0
- package/docs/guide/es/pipeline/1-rails-and-jobs.md +33 -13
- package/docs/guide/es/pipeline/2-the-job-detail-view.md +38 -26
- package/docs/guide/es/pipeline/3-reviewing-a-delivery.md +43 -0
- package/docs/guide/es/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/es/pipeline/5-the-loop-builder.md +4 -4
- package/docs/guide/es/settings/1-themes.md +1 -1
- package/docs/guide/es/settings/3-pipeline-telemetry-and-diagnostics.md +10 -10
- package/docs/guide/es/settings/5-project-environment.md +1 -1
- package/docs/guide/es/settings/6-updates.md +24 -0
- package/docs/guide/es/settings/7-existing-projects.md +33 -0
- package/docs/guide/es/settings/8-accessibility.md +23 -0
- package/docs/guide/es/specs/1-specs-and-the-backlog.md +43 -7
- package/docs/guide/es/specs/2-add-spec-quick-mode.md +1 -1
- package/docs/guide/es/specs/3-add-spec-explore-mode.md +3 -3
- package/docs/guide/fr/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/fr/getting-started/2-installing-and-first-run.md +2 -0
- package/docs/guide/fr/getting-started/3-try-the-sample-project.md +35 -0
- package/docs/guide/fr/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
- package/docs/guide/fr/getting-started/6-universal-search.md +34 -0
- package/docs/guide/fr/insights/1-analytics-and-cost-tracking.md +18 -4
- package/docs/guide/fr/insights/2-the-integrated-terminal.md +1 -1
- package/docs/guide/fr/insights/3-code-explorer.md +1 -1
- package/docs/guide/fr/integrations/1-ai-providers.md +1 -1
- package/docs/guide/fr/integrations/2-plugins.md +1 -1
- package/docs/guide/fr/integrations/3-jira-integration.md +3 -3
- package/docs/guide/fr/integrations/4-mobile-companion.md +1 -1
- package/docs/guide/fr/integrations/5-mcp-server.md +1 -1
- package/docs/guide/fr/integrations/6-agent-chat.md +11 -4
- package/docs/guide/fr/integrations/8-flow-mode.md +69 -0
- package/docs/guide/fr/pipeline/1-rails-and-jobs.md +21 -1
- package/docs/guide/fr/pipeline/2-the-job-detail-view.md +12 -0
- package/docs/guide/fr/pipeline/3-reviewing-a-delivery.md +43 -0
- package/docs/guide/fr/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/fr/pipeline/5-the-loop-builder.md +1 -1
- package/docs/guide/fr/settings/1-themes.md +1 -1
- package/docs/guide/fr/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
- package/docs/guide/fr/settings/5-project-environment.md +1 -1
- package/docs/guide/fr/settings/6-updates.md +24 -0
- package/docs/guide/fr/settings/7-existing-projects.md +33 -0
- package/docs/guide/fr/settings/8-accessibility.md +23 -0
- package/docs/guide/fr/specs/1-specs-and-the-backlog.md +41 -3
- package/docs/guide/fr/specs/2-add-spec-quick-mode.md +1 -1
- package/docs/guide/fr/specs/3-add-spec-explore-mode.md +1 -1
- package/docs/guide/it/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/it/getting-started/2-installing-and-first-run.md +2 -0
- package/docs/guide/it/getting-started/3-try-the-sample-project.md +35 -0
- package/docs/guide/it/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
- package/docs/guide/it/getting-started/6-universal-search.md +34 -0
- package/docs/guide/it/insights/1-analytics-and-cost-tracking.md +18 -4
- package/docs/guide/it/insights/2-the-integrated-terminal.md +1 -1
- package/docs/guide/it/insights/3-code-explorer.md +1 -1
- package/docs/guide/it/integrations/1-ai-providers.md +1 -1
- package/docs/guide/it/integrations/2-plugins.md +1 -1
- package/docs/guide/it/integrations/3-jira-integration.md +3 -3
- package/docs/guide/it/integrations/4-mobile-companion.md +1 -1
- package/docs/guide/it/integrations/5-mcp-server.md +1 -1
- package/docs/guide/it/integrations/6-agent-chat.md +11 -4
- package/docs/guide/it/integrations/8-flow-mode.md +69 -0
- package/docs/guide/it/pipeline/1-rails-and-jobs.md +21 -1
- package/docs/guide/it/pipeline/2-the-job-detail-view.md +12 -0
- package/docs/guide/it/pipeline/3-reviewing-a-delivery.md +43 -0
- package/docs/guide/it/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/it/pipeline/5-the-loop-builder.md +1 -1
- package/docs/guide/it/settings/1-themes.md +1 -1
- package/docs/guide/it/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
- package/docs/guide/it/settings/5-project-environment.md +1 -1
- package/docs/guide/it/settings/6-updates.md +24 -0
- package/docs/guide/it/settings/7-existing-projects.md +33 -0
- package/docs/guide/it/settings/8-accessibility.md +23 -0
- package/docs/guide/it/specs/1-specs-and-the-backlog.md +41 -3
- package/docs/guide/it/specs/2-add-spec-quick-mode.md +1 -1
- package/docs/guide/it/specs/3-add-spec-explore-mode.md +1 -1
- package/docs/guide/ja/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/ja/getting-started/2-installing-and-first-run.md +2 -0
- package/docs/guide/ja/getting-started/3-try-the-sample-project.md +35 -0
- package/docs/guide/ja/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
- package/docs/guide/ja/getting-started/6-universal-search.md +34 -0
- package/docs/guide/ja/insights/1-analytics-and-cost-tracking.md +18 -4
- package/docs/guide/ja/insights/2-the-integrated-terminal.md +1 -1
- package/docs/guide/ja/insights/3-code-explorer.md +1 -1
- package/docs/guide/ja/integrations/1-ai-providers.md +1 -1
- package/docs/guide/ja/integrations/2-plugins.md +1 -1
- package/docs/guide/ja/integrations/3-jira-integration.md +3 -3
- package/docs/guide/ja/integrations/4-mobile-companion.md +1 -1
- package/docs/guide/ja/integrations/5-mcp-server.md +1 -1
- package/docs/guide/ja/integrations/6-agent-chat.md +11 -4
- package/docs/guide/ja/integrations/8-flow-mode.md +69 -0
- package/docs/guide/ja/pipeline/1-rails-and-jobs.md +21 -1
- package/docs/guide/ja/pipeline/2-the-job-detail-view.md +12 -0
- package/docs/guide/ja/pipeline/3-reviewing-a-delivery.md +43 -0
- package/docs/guide/ja/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/ja/pipeline/5-the-loop-builder.md +1 -1
- package/docs/guide/ja/settings/1-themes.md +1 -1
- package/docs/guide/ja/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
- package/docs/guide/ja/settings/5-project-environment.md +1 -1
- package/docs/guide/ja/settings/6-updates.md +24 -0
- package/docs/guide/ja/settings/7-existing-projects.md +33 -0
- package/docs/guide/ja/settings/8-accessibility.md +23 -0
- package/docs/guide/ja/specs/1-specs-and-the-backlog.md +41 -3
- package/docs/guide/ja/specs/2-add-spec-quick-mode.md +1 -1
- package/docs/guide/ja/specs/3-add-spec-explore-mode.md +1 -1
- package/docs/guide/pt/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/pt/getting-started/2-installing-and-first-run.md +2 -0
- package/docs/guide/pt/getting-started/3-try-the-sample-project.md +35 -0
- package/docs/guide/pt/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
- package/docs/guide/pt/getting-started/6-universal-search.md +34 -0
- package/docs/guide/pt/insights/1-analytics-and-cost-tracking.md +18 -4
- package/docs/guide/pt/insights/2-the-integrated-terminal.md +1 -1
- package/docs/guide/pt/insights/3-code-explorer.md +1 -1
- package/docs/guide/pt/integrations/1-ai-providers.md +1 -1
- package/docs/guide/pt/integrations/2-plugins.md +1 -1
- package/docs/guide/pt/integrations/3-jira-integration.md +3 -3
- package/docs/guide/pt/integrations/4-mobile-companion.md +1 -1
- package/docs/guide/pt/integrations/5-mcp-server.md +1 -1
- package/docs/guide/pt/integrations/6-agent-chat.md +12 -5
- package/docs/guide/pt/integrations/8-flow-mode.md +69 -0
- package/docs/guide/pt/pipeline/1-rails-and-jobs.md +21 -1
- package/docs/guide/pt/pipeline/2-the-job-detail-view.md +12 -0
- package/docs/guide/pt/pipeline/3-reviewing-a-delivery.md +43 -0
- package/docs/guide/pt/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/pt/pipeline/5-the-loop-builder.md +1 -1
- package/docs/guide/pt/settings/1-themes.md +1 -1
- package/docs/guide/pt/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
- package/docs/guide/pt/settings/5-project-environment.md +1 -1
- package/docs/guide/pt/settings/6-updates.md +24 -0
- package/docs/guide/pt/settings/7-existing-projects.md +33 -0
- package/docs/guide/pt/settings/8-accessibility.md +23 -0
- package/docs/guide/pt/specs/1-specs-and-the-backlog.md +41 -3
- package/docs/guide/pt/specs/2-add-spec-quick-mode.md +1 -1
- package/docs/guide/pt/specs/3-add-spec-explore-mode.md +1 -1
- package/docs/guide/zh/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/zh/getting-started/2-installing-and-first-run.md +2 -0
- package/docs/guide/zh/getting-started/3-try-the-sample-project.md +35 -0
- package/docs/guide/zh/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
- package/docs/guide/zh/getting-started/6-universal-search.md +34 -0
- package/docs/guide/zh/insights/1-analytics-and-cost-tracking.md +18 -4
- package/docs/guide/zh/insights/2-the-integrated-terminal.md +1 -1
- package/docs/guide/zh/insights/3-code-explorer.md +1 -1
- package/docs/guide/zh/integrations/1-ai-providers.md +1 -1
- package/docs/guide/zh/integrations/2-plugins.md +1 -1
- package/docs/guide/zh/integrations/3-jira-integration.md +3 -3
- package/docs/guide/zh/integrations/4-mobile-companion.md +1 -1
- package/docs/guide/zh/integrations/5-mcp-server.md +1 -1
- package/docs/guide/zh/integrations/6-agent-chat.md +11 -4
- package/docs/guide/zh/integrations/8-flow-mode.md +69 -0
- package/docs/guide/zh/pipeline/1-rails-and-jobs.md +21 -1
- package/docs/guide/zh/pipeline/2-the-job-detail-view.md +12 -0
- package/docs/guide/zh/pipeline/3-reviewing-a-delivery.md +43 -0
- package/docs/guide/zh/pipeline/4-picking-an-engine-per-rail.md +2 -2
- package/docs/guide/zh/pipeline/5-the-loop-builder.md +1 -1
- package/docs/guide/zh/settings/1-themes.md +1 -1
- package/docs/guide/zh/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
- package/docs/guide/zh/settings/5-project-environment.md +1 -1
- package/docs/guide/zh/settings/6-updates.md +24 -0
- package/docs/guide/zh/settings/7-existing-projects.md +33 -0
- package/docs/guide/zh/settings/8-accessibility.md +23 -0
- package/docs/guide/zh/specs/1-specs-and-the-backlog.md +41 -3
- package/docs/guide/zh/specs/2-add-spec-quick-mode.md +1 -1
- package/docs/guide/zh/specs/3-add-spec-explore-mode.md +1 -1
- package/docs/internals/README.md +8 -0
- package/docs/internals/adding-a-provider.md +19 -2
- package/docs/internals/agent-actions-audit.md +101 -0
- package/docs/internals/agent-sessions.md +36 -1
- package/docs/internals/api-reference.md +190 -45
- package/docs/internals/architecture.md +53 -47
- package/docs/internals/companion-inbox-decisions.md +42 -0
- package/docs/internals/companion-rails-as-loops-contract.md +17 -6
- package/docs/internals/configuration.md +140 -9
- package/docs/internals/core-runtime-updates.md +4 -4
- package/docs/internals/existing-project-anchoring.md +168 -0
- package/docs/internals/flow-mode.md +668 -0
- package/docs/internals/legacy-implementation-notes.md +13 -0
- package/docs/internals/local-testing-feedback-2026-10.md +210 -0
- package/docs/internals/mcp-mission-audit.md +4 -0
- package/docs/internals/mission-rail-cards.md +10 -5
- package/docs/internals/mission-read-only-policy.md +152 -0
- package/docs/internals/modal-standard.md +181 -0
- package/docs/internals/openspec-workflow.md +32 -0
- package/docs/internals/operations-runbook.md +30 -0
- package/docs/internals/profiles.md +6 -3
- package/docs/internals/programmatic-agent-runtime.md +8 -0
- package/docs/internals/project-builder.md +1 -1
- package/docs/internals/review-packet.md +161 -9
- package/docs/internals/safe-pr-review-flow.md +135 -6
- package/docs/internals/source-map.md +413 -18
- package/docs/internals/spec-addenda.md +10 -0
- package/docs/internals/spec-triage.md +140 -0
- package/docs/internals/visual-design-audit.md +15 -2
- package/docs/local-providers.md +3 -0
- package/docs/mcp.md +21 -3
- package/docs/platforms/macos.md +1 -1
- package/docs/platforms/windows.md +2 -2
- package/docs/running-pipelines.md +22 -6
- package/docs/tracking-cost.md +54 -10
- package/local-runner/dist/specrails-local-runner.js +3851 -1178
- package/mcp-bridge/dist/specrails-mcp.js +3864 -1143
- package/package.json +10 -9
- package/server/dist/agent-mcp-config.js +37 -1
- package/server/dist/api-version.js +19 -0
- package/server/dist/command-resolver.js +4 -2
- package/server/dist/core-compat.js +1 -1
- package/server/dist/core-execution.js +2 -1
- package/server/dist/core-update-manager.js +71 -13
- package/server/dist/db/job-search.js +248 -0
- package/server/dist/db/jobs.js +6 -0
- package/server/dist/db/migrations.js +239 -0
- package/server/dist/db.js +9 -2
- package/server/dist/desktop-db.js +99 -5
- package/server/dist/desktop-router.js +126 -13
- package/server/dist/docs-router.js +67 -1
- package/server/dist/feature-flags.js +22 -0
- package/server/dist/index.js +30 -15
- package/server/dist/jira/jira-adf.js +13 -1
- package/server/dist/jira/jira-clarifications.js +146 -0
- package/server/dist/jira/jira-client.js +8 -1
- package/server/dist/jira/jira-db.js +41 -0
- package/server/dist/jira/jira-sync-manager.js +328 -25
- package/server/dist/mcp/guide.js +17 -7
- package/server/dist/mcp/tools/agents.js +1 -1
- package/server/dist/mcp/tools/analytics.js +15 -3
- package/server/dist/mcp/tools/app-settings.js +14 -1
- package/server/dist/mcp/tools/chat.js +1 -1
- package/server/dist/mcp/tools/env.js +4 -2
- package/server/dist/mcp/tools/jobs.js +96 -7
- package/server/dist/mcp/tools/loops.js +1 -1
- package/server/dist/mcp/tools/meta.js +10 -13
- package/server/dist/mcp/tools/rails.js +15 -1
- package/server/dist/mcp/tools/setup.js +1 -1
- package/server/dist/mcp/tools/specs.js +8 -5
- package/server/dist/mcp/tools/support.js +6 -3
- package/server/dist/mcp/tools/types.js +38 -1
- package/server/dist/mobile/mobile-admin-router.js +0 -16
- package/server/dist/mobile/mobile-gateway.js +0 -18
- package/server/dist/mobile/mobile-inbox.js +240 -0
- package/server/dist/mobile/mobile-missions.js +6 -8
- package/server/dist/mobile/mobile-router.js +9 -9
- package/server/dist/mobile/mobile-webrtc-peer.js +4 -54
- package/server/dist/mobile/mobile-ws.js +27 -4
- package/server/dist/modules/accounting/runtime/ai-invocations.js +4 -0
- package/server/dist/modules/accounting/runtime/decision-times.js +102 -0
- package/server/dist/modules/accounting/runtime/loop-economics.js +284 -0
- package/server/dist/modules/accounting/runtime/spending.js +7 -2
- package/server/dist/modules/accounting/runtime/what-if.js +87 -0
- package/server/dist/modules/agent-runtime/runtime/agent-runtime-bridge.js +86 -5
- package/server/dist/modules/agent-runtime/runtime/agent-runtime-controls.js +28 -2
- package/server/dist/modules/agent-runtime/runtime/agent-runtime-metrics.js +15 -2
- package/server/dist/modules/agent-runtime/runtime/agent-runtime-settings-router.js +21 -2
- package/server/dist/modules/agent-runtime/runtime/core-capabilities.js +55 -0
- package/server/dist/modules/agent-sessions/adapters/host-process.js +1 -1
- package/server/dist/modules/agent-sessions/domain/availability.js +16 -0
- package/server/dist/modules/agent-sessions/domain/protocol.js +8 -1
- package/server/dist/modules/agent-sessions/index.js +3 -1
- package/server/dist/modules/agent-sessions/runtime/core-sessions-availability.js +16 -0
- package/server/dist/modules/agents/runtime/agent-refine-manager.js +3 -1
- package/server/dist/modules/agents/runtime/agent-store.js +60 -73
- package/server/dist/modules/audit/adapters/http.js +66 -0
- package/server/dist/modules/audit/adapters/runtime.js +60 -0
- package/server/dist/modules/audit/adapters/sqlite.js +73 -0
- package/server/dist/modules/audit/application.js +190 -0
- package/server/dist/modules/audit/domain.js +434 -0
- package/server/dist/modules/audit/index.js +27 -0
- package/server/dist/modules/audit/ports.js +2 -0
- package/server/dist/modules/browser/runtime/browser-capture-manager.js +18 -141
- package/server/dist/modules/browser/runtime/browser-capture-types.js +1 -10
- package/server/dist/modules/browser/runtime/browser-playwright.js +0 -19
- package/server/dist/modules/code/runtime/file-provenance.js +23 -0
- package/server/dist/modules/conversations/runtime/chat-manager.js +5 -2
- package/server/dist/modules/delivery/adapters/decisions/chains.js +1 -0
- package/server/dist/modules/delivery/adapters/decisions/create.js +19 -1
- package/server/dist/modules/delivery/adapters/decisions/discard.js +2 -0
- package/server/dist/modules/delivery/adapters/decisions/local-changes.js +427 -0
- package/server/dist/modules/delivery/adapters/decisions/merge-local.js +80 -6
- package/server/dist/modules/delivery/adapters/decisions/observations.js +5 -0
- package/server/dist/modules/delivery/adapters/decisions/ownership.js +2 -1
- package/server/dist/modules/delivery/adapters/decisions/transitions.js +9 -0
- package/server/dist/modules/delivery/adapters/review-wip-store.js +37 -0
- package/server/dist/modules/delivery/domain/review-wip.js +71 -0
- package/server/dist/modules/delivery/index.js +9 -1
- package/server/dist/modules/delivery/runtime/delivery-changes.js +355 -0
- package/server/dist/modules/delivery/runtime/delivery-evidence.js +249 -8
- package/server/dist/modules/delivery/runtime/flow-review-legacy.js +99 -0
- package/server/dist/modules/delivery/runtime/flow-review-outcome.js +107 -0
- package/server/dist/modules/delivery/runtime/flow-worktree-handoff.js +32 -0
- package/server/dist/modules/delivery/runtime/flow-worktree-return.js +87 -0
- package/server/dist/modules/delivery/runtime/isolated-worktree.js +380 -0
- package/server/dist/modules/delivery/runtime/local-restore-branch.js +325 -0
- package/server/dist/modules/delivery/runtime/local-restore-resolver.js +48 -0
- package/server/dist/modules/delivery/runtime/local-stash.js +423 -0
- package/server/dist/modules/delivery/runtime/multi-repo-execution.js +27 -1
- package/server/dist/modules/delivery/runtime/phase3-harvest.js +40 -0
- package/server/dist/modules/delivery/runtime/pr-body.js +50 -0
- package/server/dist/modules/delivery/runtime/rail-isolated-launch.js +169 -166
- package/server/dist/modules/delivery/runtime/rail-launch-parser.js +5 -2
- package/server/dist/modules/delivery/runtime/rail-pr-decision.js +7 -1
- package/server/dist/modules/delivery/runtime/rail-pr-store.js +193 -12
- package/server/dist/modules/delivery/runtime/rails-router.js +267 -5
- package/server/dist/modules/delivery/runtime/review-brief.js +208 -0
- package/server/dist/modules/delivery/runtime/review-packet.js +41 -2
- package/server/dist/modules/delivery/runtime/review-wip-gate.js +67 -0
- package/server/dist/modules/delivery/runtime/run-records.js +267 -0
- package/server/dist/modules/delivery/runtime/run-review-diagnosis.js +102 -0
- package/server/dist/modules/execution/adapters/budget-storage.js +76 -0
- package/server/dist/modules/execution/application/enforce-budget.js +17 -2
- package/server/dist/modules/execution/domain/agent-env.js +98 -0
- package/server/dist/modules/execution/domain/daily-budget.js +36 -0
- package/server/dist/modules/execution/domain/spend-caps.js +166 -0
- package/server/dist/modules/execution/index.js +34 -1
- package/server/dist/modules/execution/runtime/budget-overview.js +76 -0
- package/server/dist/modules/execution/runtime/daily-budget-gate.js +86 -0
- package/server/dist/modules/execution/runtime/interactive-job-session.js +8 -0
- package/server/dist/modules/execution/runtime/launch-forecast.js +33 -0
- package/server/dist/modules/execution/runtime/queue-manager.js +54 -15
- package/server/dist/modules/execution/runtime/run-duration-stats.js +31 -13
- package/server/dist/modules/flow/adapters/bindings.js +1089 -0
- package/server/dist/modules/flow/adapters/http.js +147 -0
- package/server/dist/modules/flow/adapters/sqlite.js +121 -0
- package/server/dist/modules/flow/application.js +805 -0
- package/server/dist/modules/flow/domain.js +790 -0
- package/server/dist/modules/flow/index.js +34 -0
- package/server/dist/modules/flow/ports.js +2 -0
- package/server/dist/modules/inbox/adapters/http.js +21 -0
- package/server/dist/modules/inbox/adapters/project-source.js +233 -0
- package/server/dist/modules/inbox/application.js +28 -0
- package/server/dist/modules/inbox/domain.js +43 -0
- package/server/dist/modules/inbox/index.js +10 -0
- package/server/dist/modules/inbox/ports.js +2 -0
- package/server/dist/modules/loops/runtime/loop-definition-run.js +9 -0
- package/server/dist/modules/loops/runtime/loop-definition.js +5 -2
- package/server/dist/modules/loops/runtime/loop-executors.js +90 -9
- package/server/dist/modules/loops/runtime/loop-factory.js +30 -2
- package/server/dist/modules/loops/runtime/loop-flow-spec-recipe.js +166 -0
- package/server/dist/modules/loops/runtime/loop-graph.js +1 -1
- package/server/dist/modules/loops/runtime/loop-role-engines.js +4 -1
- package/server/dist/modules/loops/runtime/loop-run-manager.js +267 -10
- package/server/dist/modules/loops/runtime/loop-runs-store.js +21 -5
- package/server/dist/modules/loops/runtime/loop-templates.js +55 -12
- package/server/dist/modules/missions/runtime/agent-chat-manager.js +283 -20
- package/server/dist/modules/missions/runtime/agent-chat-router.js +96 -21
- package/server/dist/modules/missions/runtime/agent-failure-briefing.js +11 -3
- package/server/dist/modules/missions/runtime/agent-fence-promotion.js +9 -1
- package/server/dist/modules/missions/runtime/agent-flow-prompt.js +64 -0
- package/server/dist/modules/missions/runtime/agent-input-store.js +9 -4
- package/server/dist/modules/missions/runtime/agent-operator-prompt.js +100 -14
- package/server/dist/modules/missions/runtime/agent-session-store.js +88 -27
- package/server/dist/modules/missions/runtime/core-session-runner.js +89 -9
- package/server/dist/modules/missions/runtime/flow-turn-context.js +17 -0
- package/server/dist/modules/missions/runtime/mission-core-sessions.js +295 -55
- package/server/dist/modules/missions/runtime/mission-run-notify.js +2 -0
- package/server/dist/modules/missions/runtime/mission-session-projector.js +56 -19
- package/server/dist/modules/missions/runtime/mission-tool-policy.js +47 -0
- package/server/dist/modules/onboarding/adapters/http.js +78 -0
- package/server/dist/modules/onboarding/adapters/providers.js +41 -0
- package/server/dist/modules/onboarding/adapters/runtime.js +130 -0
- package/server/dist/modules/onboarding/application.js +133 -0
- package/server/dist/modules/onboarding/catalog.js +217 -0
- package/server/dist/modules/onboarding/domain.js +102 -0
- package/server/dist/modules/onboarding/index.js +20 -0
- package/server/dist/modules/onboarding/ports.js +2 -0
- package/server/dist/modules/project-rules/adapters/http.js +91 -0
- package/server/dist/modules/project-rules/domain.js +122 -0
- package/server/dist/modules/project-rules/runtime/rules-inventory-runs.js +97 -0
- package/server/dist/modules/project-rules/runtime/rules-store.js +109 -0
- package/server/dist/modules/project-settings/adapters/http.js +13 -0
- package/server/dist/modules/project-settings/adapters/sqlite.js +78 -8
- package/server/dist/modules/project-settings/domain.js +47 -1
- package/server/dist/modules/project-settings/index.js +7 -1
- package/server/dist/modules/recovery/adapters/sqlite.js +28 -0
- package/server/dist/modules/recovery/domain.js +162 -0
- package/server/dist/modules/recovery/index.js +16 -0
- package/server/dist/modules/specs/adapters/timeline-http.js +101 -0
- package/server/dist/modules/specs/domain/handoff-labels.js +371 -0
- package/server/dist/modules/specs/domain/handoff.js +260 -0
- package/server/dist/modules/specs/domain/non-goals.js +101 -0
- package/server/dist/modules/specs/domain/timeline.js +164 -0
- package/server/dist/modules/specs/domain/triage.js +320 -0
- package/server/dist/modules/specs/runtime/contract-refine-runner.js +3 -2
- package/server/dist/modules/specs/runtime/generated-spec-parser.js +75 -0
- package/server/dist/modules/specs/runtime/proposal-manager.js +4 -3
- package/server/dist/modules/specs/runtime/smash-runner.js +2 -1
- package/server/dist/modules/specs/runtime/spec-addenda.js +31 -0
- package/server/dist/modules/specs/runtime/spec-draft-parser.js +6 -1
- package/server/dist/modules/specs/runtime/spec-generation.js +431 -0
- package/server/dist/modules/specs/runtime/spec-handoff.js +103 -0
- package/server/dist/modules/specs/runtime/spec-history.js +376 -0
- package/server/dist/modules/specs/runtime/spec-launcher-manager.js +4 -3
- package/server/dist/modules/specs/runtime/spec-search.js +117 -0
- package/server/dist/modules/specs/runtime/ticket-store.js +47 -2
- package/server/dist/modules/specs/runtime/ticket-trash-service.js +62 -0
- package/server/dist/modules/specs/runtime/ticket-trash.js +193 -0
- package/server/dist/modules/specs/runtime/triage-runner.js +171 -0
- package/server/dist/modules/specs/runtime/triage.js +365 -0
- package/server/dist/modules/terminals/domain/app-urls.js +96 -0
- package/server/dist/modules/terminals/runtime/app-urls.js +77 -0
- package/server/dist/modules/terminals/runtime/background-process-service.js +25 -28
- package/server/dist/project-env.js +60 -0
- package/server/dist/project-git.js +65 -0
- package/server/dist/project-registry.js +264 -27
- package/server/dist/project-router-background-processes.js +27 -3
- package/server/dist/project-router-git.js +30 -0
- package/server/dist/project-router-helpers.js +5 -30
- package/server/dist/project-router-jobs.js +49 -1
- package/server/dist/project-router-loop-runs.js +72 -2
- package/server/dist/project-router-rules.js +54 -0
- package/server/dist/project-router-search.js +52 -0
- package/server/dist/project-router-settings.js +6 -0
- package/server/dist/project-router-setup.js +1 -1
- package/server/dist/project-router-spending.js +138 -0
- package/server/dist/project-router-tickets.js +246 -427
- package/server/dist/project-router.js +7 -0
- package/server/dist/providers/claude-adapter.js +25 -3
- package/server/dist/providers/codex-adapter.js +9 -1
- package/server/dist/providers/gemini-adapter.js +6 -1
- package/server/dist/providers/kimi-adapter.js +2 -0
- package/server/dist/providers/local-adapter.js +2 -0
- package/server/dist/providers/runtime.js +8 -0
- package/server/dist/schemas/agent-runtime.schema.json +3 -1
- package/server/dist/schemas/workflow-definition.schema.json +1 -0
- package/server/dist/setup-manager.js +19 -1
- package/server/dist/transient-children.js +25 -8
- package/server/dist/update-channel.js +21 -0
- package/server/dist/util/search-snippet.js +74 -0
- package/server/dist/worktree-manager.js +19 -8
- package/client/dist/assets/ActivityFeedPage-Dtp7EyHc.js +0 -1
- package/client/dist/assets/AgentBrowserCapture-CLqlEFw8.js +0 -1
- package/client/dist/assets/AgentModeAnalyticsPane-B8_hM3Tw.js +0 -2
- package/client/dist/assets/AgentModeCodePane-CNF8ZNjE.js +0 -2
- package/client/dist/assets/AgentModeJobsPane-CJpJbO9m.js +0 -1
- package/client/dist/assets/AgentsPage-BC8XSR79.js +0 -120
- package/client/dist/assets/AnalyticsPage-Cdv4jLtW.js +0 -1
- package/client/dist/assets/BarChart-BDMqVFJy.js +0 -55
- package/client/dist/assets/CodePage-DI1kegAr.js +0 -3
- package/client/dist/assets/DesktopAnalyticsPage-Bdp8E8U6.js +0 -1
- package/client/dist/assets/DocsDialog-Bm4RS7FX.js +0 -11
- package/client/dist/assets/DocsPage-DihYcU8r.js +0 -11
- package/client/dist/assets/ExportDropdown-Bb1lHx3r.js +0 -1
- package/client/dist/assets/IntegrationsPage-EAipiDWm.js +0 -1
- package/client/dist/assets/InteractiveJobComposer-BO6ASN-2.js +0 -19
- package/client/dist/assets/JobDetailModal-CuPYq7tP.js +0 -1
- package/client/dist/assets/JobDetailPage-BusMjJi9.js +0 -1
- package/client/dist/assets/JobsPage-C0QbsF2d.js +0 -1
- package/client/dist/assets/LoopBuilderPage-B7TlU4iS.js +0 -1
- package/client/dist/assets/LoopPreviewModal-BRWtXOD2.js +0 -1
- package/client/dist/assets/LoopsPage-C4q1DmCE.js +0 -2
- package/client/dist/assets/MinimizedChatsContext-DHfigjHS.js +0 -1
- package/client/dist/assets/PluginsPage-Z1JHSMdR.js +0 -2
- package/client/dist/assets/ProjectSettingsDialog-BUNj0tvN.js +0 -1
- package/client/dist/assets/RepositoryDeliveries-B4ybHOyB.js +0 -5
- package/client/dist/assets/ReviewPacketPage-hwfPNjyy.js +0 -4
- package/client/dist/assets/TemplatePreviewModal-V7FpMWuw.js +0 -1
- package/client/dist/assets/TicketDetailModalContext-Dkwo2cDs.js +0 -16
- package/client/dist/assets/Trans-BbFxRFtR.js +0 -1
- package/client/dist/assets/activity-B-rp4h_v.js +0 -1
- package/client/dist/assets/activity-C6kJpm9q.js +0 -1
- package/client/dist/assets/activity-CGx4kb_j.js +0 -1
- package/client/dist/assets/activity-CnoX2bH7.js +0 -1
- package/client/dist/assets/activity-DAyekdlt.js +0 -1
- package/client/dist/assets/activity-DCxtpT7j.js +0 -1
- package/client/dist/assets/activity-DiyjsgQV.js +0 -1
- package/client/dist/assets/activity-JzwRaWPD.js +0 -1
- package/client/dist/assets/addspec-BOvgmcgk.js +0 -1
- package/client/dist/assets/addspec-Clmyfn_R.js +0 -1
- package/client/dist/assets/addspec-CsNaBpHp.js +0 -1
- package/client/dist/assets/addspec-D2tvWmmV.js +0 -1
- package/client/dist/assets/addspec-D3nFwvD0.js +0 -1
- package/client/dist/assets/addspec-DVLEhK3w.js +0 -1
- package/client/dist/assets/addspec-DXbK-tb0.js +0 -1
- package/client/dist/assets/addspec-OHG8DFEn.js +0 -1
- package/client/dist/assets/agent-5bSixVzz.js +0 -1
- package/client/dist/assets/agent-BR4EHfhq.js +0 -1
- package/client/dist/assets/agent-C0IKkJP8.js +0 -1
- package/client/dist/assets/agent-C7li9ayC.js +0 -1
- package/client/dist/assets/agent-D0dRmEen.js +0 -1
- package/client/dist/assets/agent-DZVGHm7H.js +0 -1
- package/client/dist/assets/agent-Dip4h2YE.js +0 -1
- package/client/dist/assets/agent-Pp-P-n1p.js +0 -1
- package/client/dist/assets/agentRuntime-BxF81z52.js +0 -1
- package/client/dist/assets/agentRuntime-BxYS5V7u.js +0 -1
- package/client/dist/assets/agentRuntime-Dc9HG3BA.js +0 -1
- package/client/dist/assets/agents-B6ZsnARo.js +0 -1
- package/client/dist/assets/agents-BORdhe0K.js +0 -1
- package/client/dist/assets/agents-C6aq9Oqs.js +0 -1
- package/client/dist/assets/agents-Cbsc4bcX.js +0 -1
- package/client/dist/assets/agents-D0uYR6hq.js +0 -1
- package/client/dist/assets/agents-Doe1sHY5.js +0 -1
- package/client/dist/assets/agents-DyNi_I9m.js +0 -1
- package/client/dist/assets/agents-StKxiTg0.js +0 -1
- package/client/dist/assets/agentstudio-7cYCXn-L.js +0 -1
- package/client/dist/assets/agentstudio-BHWQh8G3.js +0 -1
- package/client/dist/assets/agentstudio-BjnWHyRs.js +0 -1
- package/client/dist/assets/agentstudio-BkV8vcK4.js +0 -1
- package/client/dist/assets/agentstudio-BzugqB_N.js +0 -1
- package/client/dist/assets/agentstudio-CWbp7KvH.js +0 -1
- package/client/dist/assets/agentstudio-DG6plf5o.js +0 -1
- package/client/dist/assets/agentstudio-DkZVF-Cc.js +0 -1
- package/client/dist/assets/analytics-B1DIQd4m.js +0 -1
- package/client/dist/assets/analytics-BAIZ9vE_.js +0 -1
- package/client/dist/assets/analytics-BTqgmgBd.js +0 -1
- package/client/dist/assets/analytics-BWynXPEm.js +0 -1
- package/client/dist/assets/analytics-DGcUsQ44.js +0 -1
- package/client/dist/assets/analytics-GnSnpJ4W.js +0 -1
- package/client/dist/assets/analytics-TWgYaoO0.js +0 -1
- package/client/dist/assets/analytics-kJy6Tuko.js +0 -1
- package/client/dist/assets/atom-one-dark-qiGhVQxg.js +0 -1
- package/client/dist/assets/builder-B9gorTnT.js +0 -1
- package/client/dist/assets/builder-Bvw5s3Mi.js +0 -1
- package/client/dist/assets/builder-CL5l4dU3.js +0 -1
- package/client/dist/assets/builder-CVDTVrQX.js +0 -1
- package/client/dist/assets/builder-CpS9liE9.js +0 -1
- package/client/dist/assets/builder-DNctIL9Q.js +0 -1
- package/client/dist/assets/builder-De2NxX6o.js +0 -1
- package/client/dist/assets/builder-DeYT7Y-m.js +0 -1
- package/client/dist/assets/button-4FS1ZDTp.js +0 -1
- package/client/dist/assets/chat-D_I7nU5K.js +0 -1
- package/client/dist/assets/chevron-up-6EFqEHBj.js +0 -1
- package/client/dist/assets/chunk-OB3PAWPO-B1EMk45A.js +0 -3
- package/client/dist/assets/clsx-CjueKrWZ.js +0 -1
- package/client/dist/assets/code-B37GRg9C.js +0 -1
- package/client/dist/assets/code-BBOEZbf9.js +0 -1
- package/client/dist/assets/code-BRm-jcyx.js +0 -1
- package/client/dist/assets/code-CF7w62CR.js +0 -1
- package/client/dist/assets/code-CLuvJt2r.js +0 -1
- package/client/dist/assets/code-D0RCm59f.js +0 -1
- package/client/dist/assets/code-DaZ-ZwCT.js +0 -1
- package/client/dist/assets/code-iIHkGaCL.js +0 -1
- package/client/dist/assets/commands-0XjAftla.js +0 -1
- package/client/dist/assets/commands-BAWSYHjQ.js +0 -1
- package/client/dist/assets/commands-BBwowgiE.js +0 -1
- package/client/dist/assets/commands-BacjIZLN.js +0 -1
- package/client/dist/assets/commands-Bs62IAZ3.js +0 -1
- package/client/dist/assets/commands-CLPdh-Hh.js +0 -1
- package/client/dist/assets/commands-DlbFzgrp.js +0 -1
- package/client/dist/assets/commands-LjPSsi5F.js +0 -1
- package/client/dist/assets/common-Bdi0qN4S.js +0 -1
- package/client/dist/assets/common-Bhb9zN1P.js +0 -1
- package/client/dist/assets/common-BykKlZg1.js +0 -1
- package/client/dist/assets/common-CvnNNSJA.js +0 -1
- package/client/dist/assets/common-D5zk_mqq.js +0 -1
- package/client/dist/assets/common-DQNO_al5.js +0 -1
- package/client/dist/assets/common-Dax30Vmp.js +0 -1
- package/client/dist/assets/common-DkllpVSb.js +0 -1
- package/client/dist/assets/core-B3mKBIh5.js +0 -1
- package/client/dist/assets/dashboard-B1ndRHuC.js +0 -1
- package/client/dist/assets/dashboard-BX7KXiqA.js +0 -1
- package/client/dist/assets/dashboard-B_BSNxcN.js +0 -1
- package/client/dist/assets/dashboard-CCeFN7-V.js +0 -1
- package/client/dist/assets/dashboard-CRl0WtFJ.js +0 -1
- package/client/dist/assets/dashboard-XGdQ5mjw.js +0 -1
- package/client/dist/assets/dashboard-_oltA6Jd.js +0 -1
- package/client/dist/assets/dashboard-bAuf5KVk.js +0 -1
- package/client/dist/assets/dialog-DtdR05v1.js +0 -45
- package/client/dist/assets/dist-js-CJ_2XX1Y.js +0 -1
- package/client/dist/assets/event-Bt7f3wXe.js +0 -1
- package/client/dist/assets/explore-BG99VGpL.js +0 -1
- package/client/dist/assets/explore-C0TjprJW.js +0 -1
- package/client/dist/assets/explore-C2dgEo7q.js +0 -1
- package/client/dist/assets/explore-C8NDHbob.js +0 -1
- package/client/dist/assets/explore-CWWgzQGR.js +0 -1
- package/client/dist/assets/explore-CcQXpdtS.js +0 -1
- package/client/dist/assets/explore-DgBACn39.js +0 -1
- package/client/dist/assets/explore-DsXAgnmJ.js +0 -1
- package/client/dist/assets/file-text-C0blZHLh.js +0 -1
- package/client/dist/assets/formatDistanceToNow-NjPHBLfB.js +0 -1
- package/client/dist/assets/getTimezoneOffsetInMilliseconds-vJ7qUoqN.js +0 -1
- package/client/dist/assets/git-branch-yf6LE1Bw.js +0 -1
- package/client/dist/assets/index-BgbCbIua.css +0 -2
- package/client/dist/assets/index-Ce4yZtKf.js +0 -83
- package/client/dist/assets/integrations-BkpRUbvp.js +0 -1
- package/client/dist/assets/integrations-Bo8qbJf4.js +0 -1
- package/client/dist/assets/integrations-CmSrKzZb.js +0 -1
- package/client/dist/assets/integrations-DGtq26Rr.js +0 -1
- package/client/dist/assets/integrations-De38GFnQ.js +0 -1
- package/client/dist/assets/integrations-Dw6zdtb-.js +0 -1
- package/client/dist/assets/integrations-Dwl9KQp0.js +0 -1
- package/client/dist/assets/integrations-Refg_d2I.js +0 -1
- package/client/dist/assets/jira-B6OYw4CJ.js +0 -1
- package/client/dist/assets/jira-BTF6RaOe.js +0 -1
- package/client/dist/assets/jira-CEetIB2q.js +0 -1
- package/client/dist/assets/jira-CIzsZLw5.js +0 -1
- package/client/dist/assets/jira-Daw9tmpI.js +0 -1
- package/client/dist/assets/jira-FXr7u2lh.js +0 -1
- package/client/dist/assets/jira-LaNQn7yl.js +0 -1
- package/client/dist/assets/jira-api-Cabj-H0J.js +0 -1
- package/client/dist/assets/job-time-BCL7wee9.js +0 -1
- package/client/dist/assets/jobs-ARwD85B9.js +0 -1
- package/client/dist/assets/jobs-BMF1w4WT.js +0 -1
- package/client/dist/assets/jobs-CBfzGLwm.js +0 -1
- package/client/dist/assets/jobs-CPjiluBY.js +0 -1
- package/client/dist/assets/jobs-CQQd58pY.js +0 -1
- package/client/dist/assets/jobs-De3EqaO0.js +0 -1
- package/client/dist/assets/jobs-Du9-Ei9a.js +0 -1
- package/client/dist/assets/jobs-qMHbnxwC.js +0 -1
- package/client/dist/assets/layers-BCLTgHXO.js +0 -1
- package/client/dist/assets/loader-circle-BqV9xYGf.js +0 -1
- package/client/dist/assets/loop-layout-CyXj9223.js +0 -7
- package/client/dist/assets/loops-B2PhQLKR.js +0 -1
- package/client/dist/assets/loops-BqbF46st.js +0 -1
- package/client/dist/assets/loops-CINnHbfI.js +0 -1
- package/client/dist/assets/loops-D-3XhH04.js +0 -1
- package/client/dist/assets/loops-DKkEEjZ_.js +0 -1
- package/client/dist/assets/loops-DzWR5-v6.js +0 -1
- package/client/dist/assets/loops-WyWDkhok.js +0 -1
- package/client/dist/assets/loops-scD5fIBf.js +0 -1
- package/client/dist/assets/mcp-6rMoZfEO.js +0 -1
- package/client/dist/assets/mcp-BD8sL5mP.js +0 -1
- package/client/dist/assets/mcp-BkcA3I5s.js +0 -1
- package/client/dist/assets/mcp-CCpSelOh.js +0 -1
- package/client/dist/assets/mcp-CUAN6ORK.js +0 -1
- package/client/dist/assets/mcp-CqbRxRTE.js +0 -1
- package/client/dist/assets/mcp-DP2YfVhO.js +0 -1
- package/client/dist/assets/mcp-DUVQamDz.js +0 -1
- package/client/dist/assets/narration-BEKMVxGm.js +0 -1
- package/client/dist/assets/narration-CjLwGKap.js +0 -1
- package/client/dist/assets/narration-DANWuGsW.js +0 -1
- package/client/dist/assets/narration-DGeEDWiT.js +0 -1
- package/client/dist/assets/narration-DJgpGwIP.js +0 -1
- package/client/dist/assets/narration-DbHnz0qV.js +0 -1
- package/client/dist/assets/narration-bZSsTZG8.js +0 -1
- package/client/dist/assets/narration-i6aKJKEc.js +0 -1
- package/client/dist/assets/nav--u7iPYlS.js +0 -1
- package/client/dist/assets/nav-C5Jgfaby.js +0 -1
- package/client/dist/assets/nav-CAna_Wpt.js +0 -1
- package/client/dist/assets/nav-CCLqeyHo.js +0 -1
- package/client/dist/assets/nav-Cf3c90Jk.js +0 -1
- package/client/dist/assets/nav-DMYQaQjR.js +0 -1
- package/client/dist/assets/nav-Df_PkZ9F.js +0 -1
- package/client/dist/assets/nav-VyNGBJwj.js +0 -1
- package/client/dist/assets/packet-8nn9RsU7.js +0 -1
- package/client/dist/assets/packet-B0H15elv.js +0 -1
- package/client/dist/assets/packet-BQvBgrwh.js +0 -1
- package/client/dist/assets/packet-BR7mO0-a.js +0 -1
- package/client/dist/assets/packet-BgcQ6q_K.js +0 -1
- package/client/dist/assets/packet-D2s92Jnn.js +0 -1
- package/client/dist/assets/packet-YbtcD1HS.js +0 -1
- package/client/dist/assets/packet-c0Qj_9eX.js +0 -1
- package/client/dist/assets/project-repositories-Cnnuj9Ia.js +0 -1
- package/client/dist/assets/rotate-ccw-DalJAQQX.js +0 -1
- package/client/dist/assets/settings-B1NV8Ow9.js +0 -1
- package/client/dist/assets/settings-BQ8XFZeE.js +0 -1
- package/client/dist/assets/settings-BRkxfBbO.js +0 -1
- package/client/dist/assets/settings-C_CcU1dP.js +0 -1
- package/client/dist/assets/settings-Cto9n0eL.js +0 -1
- package/client/dist/assets/settings-Pyw8uYtL.js +0 -1
- package/client/dist/assets/settings-b3HVCNNd.js +0 -1
- package/client/dist/assets/settings-hdive4u6.js +0 -1
- package/client/dist/assets/setup-Be485n2u.js +0 -1
- package/client/dist/assets/setup-CKGUxKr-.js +0 -1
- package/client/dist/assets/setup-Ck1Uwd7_.js +0 -1
- package/client/dist/assets/setup-Cm774a6v.js +0 -1
- package/client/dist/assets/setup-DIqMQpxt.js +0 -1
- package/client/dist/assets/setup-DfCsoNFL.js +0 -1
- package/client/dist/assets/setup-DkeE8mP0.js +0 -1
- package/client/dist/assets/setup-xVntVaz1.js +0 -1
- package/client/dist/assets/specs-Bqvtz2kz.js +0 -1
- package/client/dist/assets/specs-CKes-kz6.js +0 -1
- package/client/dist/assets/specs-CfXxPDNB.js +0 -1
- package/client/dist/assets/specs-CyF9HuTI.js +0 -1
- package/client/dist/assets/specs-DMj035Mt.js +0 -1
- package/client/dist/assets/specs-DfIdoU5L.js +0 -1
- package/client/dist/assets/specs-j5pGLQeU.js +0 -1
- package/client/dist/assets/specs-xW5pkkB7.js +0 -1
- package/client/dist/assets/spending-CQnrWiR3.js +0 -1
- package/client/dist/assets/square-D0JTbRSR.js +0 -1
- package/client/dist/assets/tauri-shell-DE6LfGPw.js +0 -2
- package/client/dist/assets/terminal-BAzpHtpY.js +0 -1
- package/client/dist/assets/terminal-C7dHeR3x.js +0 -1
- package/client/dist/assets/terminal-CMla5Qsz.js +0 -1
- package/client/dist/assets/terminal-CdNXH-n9.js +0 -1
- package/client/dist/assets/terminal-Cw5bZsmV.js +0 -1
- package/client/dist/assets/terminal-DFUP4eNv.js +0 -1
- package/client/dist/assets/terminal-DGqljeK_.js +0 -1
- package/client/dist/assets/terminal-cU70NodO.js +0 -1
- package/client/dist/assets/tickets--tiSOCcn.js +0 -1
- package/client/dist/assets/tickets-BUJ3DMWU.js +0 -1
- package/client/dist/assets/tickets-C1WNPODq.js +0 -1
- package/client/dist/assets/tickets-CDjhWmiE.js +0 -1
- package/client/dist/assets/tickets-CLgPC3uO.js +0 -1
- package/client/dist/assets/tickets-D41ZMQpf.js +0 -1
- package/client/dist/assets/tickets-DEaQC06P.js +0 -1
- package/client/dist/assets/tickets-kcMzbLCp.js +0 -1
- package/client/dist/assets/trash-D8zYUmTg.js +0 -1
- package/client/dist/assets/useDesktop-BjLT0_EE.js +0 -1
- package/client/dist/assets/useRuntimeRuns-C97qEqMg.js +0 -1
- package/client/dist/assets/useSharedWebSocket-Bj4LMp7b.js +0 -2
- package/client/dist/assets/utils-BC4DHlz2.js +0 -1
- package/docs/guide/en/getting-started/4-the-dashboard-tour.md +0 -48
- package/docs/guide/es/getting-started/4-the-dashboard-tour.md +0 -48
- package/server/dist/mobile/mobile-preview-channel.js +0 -179
- package/server/dist/mobile/mobile-preview.js +0 -366
- package/server/dist/modules/browser/domain/preview-origins.js +0 -117
- package/server/dist/modules/browser/runtime/preview-targets.js +0 -80
- /package/client/dist/assets/{atom-one-dark-B-oHczHB.css → DocView-B-oHczHB.css} +0 -0
- /package/docs/guide/de/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
- /package/docs/guide/en/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
- /package/docs/guide/es/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
- /package/docs/guide/fr/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
- /package/docs/guide/it/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
- /package/docs/guide/ja/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
- /package/docs/guide/pt/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
- /package/docs/guide/zh/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Prueba el proyecto de ejemplo
|
|
2
|
+
|
|
3
|
+
¿Quieres ver cómo una spec se convierte en un cambio revisado antes de apuntar specrails a tu propio código? El **proyecto de ejemplo** es un pequeño juego web de tres en raya con tres specs ya escritas. Tarda unos minutos y termina en un **paquete de revisión** real.
|
|
4
|
+
|
|
5
|
+
## Empezar
|
|
6
|
+
|
|
7
|
+
En la pantalla de bienvenida, haz clic en **Pruébalo en un proyecto de ejemplo** (junto a **Añadir tu primer proyecto**). El diálogo te explica, antes de que pase nada:
|
|
8
|
+
|
|
9
|
+
- **Qué se crea**: un pequeño juego web en su propio repositorio git, con tres specs ya en tu tablero.
|
|
10
|
+
- **Dónde**: por defecto `~/Specrails Samples/tic-tac-toe`, dentro de tu carpeta personal. Puedes cambiar la carpeta; una carpeta existente nunca se sobrescribe.
|
|
11
|
+
- **Cuánto costaría una ejecución**: una estimación como «≈ $0,30–$1 · unos 3–5 min». Solo se muestra en dólares cuando tu proveedor factura por uso. Con un plan de suscripción indica que no hay cargo adicional, y con un motor local no hay coste de API.
|
|
12
|
+
|
|
13
|
+
Crear el ejemplo no cuesta nada y no ejecuta nada. Haz clic en **Crear proyecto de ejemplo** y llegarás al Tablero.
|
|
14
|
+
|
|
15
|
+
## Los tres pasos
|
|
16
|
+
|
|
17
|
+
Una pequeña tarjeta guía señala el Tablero real, paso a paso. Puedes cerrarla en cualquier momento; se reduce a una píldora **Proyecto de ejemplo** desde la que **Mostrar guía** la recupera.
|
|
18
|
+
|
|
19
|
+
1. **La spec.** Las tres specs están escritas para ti. Cada una dice qué construir y cómo saber que está terminada.
|
|
20
|
+
2. **El rail.** Haz clic en **Ejecutar la primera spec**. El ejemplo está preparado para ser barato y acotado: modo rápido, el modelo más barato disponible y un límite suave por ejecución (la ejecución se detiene y pregunta antes de pasar de $1). Si tienes un motor local configurado, puedes elegirlo, sin coste de API.
|
|
21
|
+
3. **La revisión.** Nada se fusiona solo. Al terminar la ejecución, un **paquete de revisión** muestra qué cambió y te deja aceptarlo o descartarlo.
|
|
22
|
+
|
|
23
|
+
## ¿Ningún proveedor de IA listo?
|
|
24
|
+
|
|
25
|
+
Antes de ofrecerte la ejecución, specrails comprueba que haya un proveedor instalado y con sesión iniciada. Si no hay ninguno, verás **Ver una ejecución grabada**: una reproducción de una ejecución terminada que acaba en un paquete de revisión. Está claramente marcada como grabación; no se ejecuta nada y no se cobra nada. Instala un proveedor o inicia sesión y elige **Comprobar de nuevo** para pasar a una ejecución real.
|
|
26
|
+
|
|
27
|
+
## Después, tu propio proyecto
|
|
28
|
+
|
|
29
|
+
La guía termina con **Ahora añade tu propio proyecto**. Cuando termines con el ejemplo, **Quitar ejemplo** lo da de baja con un clic. La carpeta permanece en el disco salvo que marques **Eliminar también la carpeta del ejemplo**, algo que no se puede deshacer.
|
|
30
|
+
|
|
31
|
+
## Repetir el tour de la plataforma
|
|
32
|
+
|
|
33
|
+
El tour ya no está en la pantalla de bienvenida. Abre **Docs** y elige **Repetir el tour**, o abre la paleta de comandos y escribe «Repetir el tour». También está en **Ajustes ▸ Apariencia**.
|
|
34
|
+
|
|
35
|
+
Siguiente: [Añadir tu primer proyecto](adding-your-first-project).
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# El recorrido por el tablero
|
|
2
|
+
|
|
3
|
+
Con un proyecto ya añadido, estás viendo el **tablero de tu proyecto**: tu base de operaciones para convertir specs en código publicado. Vamos a ver cómo orientarte.
|
|
4
|
+
|
|
5
|
+
## El panorama general
|
|
6
|
+
|
|
7
|
+
La ventana tiene tres zonas:
|
|
8
|
+
|
|
9
|
+
- **Barra lateral izquierda** — tu lista de proyectos. Haz clic en cualquier proyecto para cambiar a él al instante; todo lo demás en la ventana se actualiza para reflejarlo. El botón **Añadir proyecto** también vive aquí.
|
|
10
|
+
- **Área principal** — el tablero del proyecto activo: tus specs y el pipeline que las ejecuta.
|
|
11
|
+
- **Barra lateral derecha** — la navegación entre las secciones del proyecto actual.
|
|
12
|
+
|
|
13
|
+
## El tablero principal
|
|
14
|
+
|
|
15
|
+
Aquí es donde ocurre el trabajo. El tablero muestra:
|
|
16
|
+
|
|
17
|
+
- **Tus specs** — las specs que has creado, organizadas por estado (de Backlog/Por hacer hasta Hecho). Puedes verlas como lista, como cuadrícula o como tarjetas tipo nota adhesiva, lo que prefieras.
|
|
18
|
+
- **Una forma de añadir una spec** — empieza un nuevo trabajo. Puedes escribir una spec rápida directamente, o abrir un chat guiado de **Explore** que te ayuda a darle forma a través de la conversación y redacta la spec por ti.
|
|
19
|
+
- **Rails** — son los carriles donde se construyen las specs. Suelta una spec en un rail y lánzala para enviarla a través del pipeline Architect → Developer → Reviewer → Ship. Pueden ejecutarse varios rails a la vez, así que puedes trabajar en varias cosas en paralelo.
|
|
20
|
+
|
|
21
|
+
Cuando una spec está en ejecución, verás el progreso de su pipeline y sus logs en directo: la salida en tiempo real de la IA mientras diseña, programa y revisa tu cambio.
|
|
22
|
+
|
|
23
|
+
## La barra lateral derecha: las secciones del proyecto
|
|
24
|
+
|
|
25
|
+
La barra lateral derecha es tu cuadro de mandos para el proyecto actual. Pasa el ratón por encima para expandirla, o ánclala abierta. Las secciones que verás:
|
|
26
|
+
|
|
27
|
+
- **Tablero** — el tablero de specs y los rails (donde acabas de estar).
|
|
28
|
+
- **Trabajos** — 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
|
+
- **Integraciones** — complementos opcionales, como conectar tus specs a un tablero de **Jira** o habilitar herramientas adicionales para la IA.
|
|
30
|
+
- **Ajustes** — opciones por proyecto (telemetría, presupuestos, configuración de providers y más).
|
|
31
|
+
|
|
32
|
+
## La barra de estado
|
|
33
|
+
|
|
34
|
+
Una fina franja recorre la parte inferior de la ventana. Es pequeña, pero útil:
|
|
35
|
+
|
|
36
|
+
- **Indicador de conexión** (izquierda) — un punto de color y una etiqueta que muestran que la app está activa: verde para *conectado*, ámbar mientras *reconecta*, azul mientras *sincroniza* justo después de una reconexión. Rara vez lo necesitarás, pero tranquiliza tenerlo.
|
|
37
|
+
- **Gasto total** (derecha) — un total acumulado de lo que has gastado, para que el coste esté siempre a un solo vistazo.
|
|
38
|
+
- **Botón de terminal** (extremo derecho) — abre el panel de terminal integrado. Pulsa **Cmd+J** (macOS) o **Ctrl+J** (Windows/Linux) para alternarlo en cualquier momento. Es una shell completa, abierta directamente en la carpeta de tu proyecto.
|
|
39
|
+
|
|
40
|
+
## Algunos atajos prácticos {#shortcuts}
|
|
41
|
+
|
|
42
|
+
- **Cmd/Ctrl+B** — ancla o contrae la barra lateral izquierda; **Option+Cmd+B** (**Ctrl+Alt+B**) hace lo mismo con la derecha.
|
|
43
|
+
- **Cmd/Ctrl+J** — alterna el panel de terminal.
|
|
44
|
+
- **Cmd/Ctrl+K** — la paleta de comandos: busca misiones, proyectos y trabajos, y **ejecuta acciones**. Escribe un verbo («nueva», «lanzar», «mover», «cambiar») o empieza con **>** para listar acciones: Nueva spec (también en Explorar), Lanzar o Mover una spec, Abrir su revisión, Entregar o Pausar un Flow, Nueva misión, Cambiar tema, Cambiar entre modo Misión y Tablero, Abrir los ajustes de la app o del proyecto en una sección, Ejecutar un loop, alternar las barras laterales, Ir atrás o adelante, Deshacer el último cambio y Eliminados recientemente. Las acciones que necesitan una elección (un rail, un estado, un tema, una sección) abren una segunda página; **Retroceso** con la búsqueda vacía vuelve. Cada acción muestra su atajo de teclado, así que la paleta te enseña las teclas. Solo ofrece lo que funciona donde estás y respeta las mismas reglas que los botones (una spec que no se puede lanzar no se ofrece). Con la búsqueda vacía lista tus **Acciones recientes** y **Lugares recientes**.
|
|
45
|
+
- **Cmd+[ / Cmd+]** (**Alt+← / Alt+→** en Windows/Linux), los botones **← →** de la barra de título o los botones atrás/adelante del ratón — vuelven o avanzan por los lugares donde has estado: specs, misiones, trabajos, proyectos y paneles a pantalla completa. Clic derecho (o pulsación larga) en un botón muestra los últimos lugares.
|
|
46
|
+
- **Cmd+Shift+I** (**Ctrl+Alt+I** en Windows y Linux) o el botón **Pendientes** de la barra de título — la lista **Pendientes**: todo lo que espera por ti en todos tus proyectos, en una sola lista agrupada por proyecto. Reúne revisiones listas para decidir, preguntas que un agente está esperando, ejecuciones que fallaron o quedaron bloqueadas, ejecuciones pausadas por el presupuesto diario y actualizaciones de Jira que no pudieron sincronizarse. Cada fila tiene su acción principal a mano (**Abrir revisión**, **Responder**, **Reanudar**, **Reintentar**) más **Posponer** (1 hora o hasta mañana) y **Hecho**. Un elemento pospuesto o hecho vuelve solo si cambia su estado. El botón muestra cuántos elementos esperan y una notificación de límite del proveedor abre la lista. La lista también es un enlace (`?inbox=1`) y una acción de la paleta de comandos.
|
|
47
|
+
- **M** — con una tarjeta de spec enfocada en el tablero, abre un selector para moverla a un estado o a un rail; es el equivalente de arrastrar y soltar con el teclado. Funciona también con una selección múltiple, y la paleta lo ofrece como **Mover la spec enfocada…**.
|
|
48
|
+
- **?** — la hoja de atajos. Escribe en su cuadro de búsqueda para filtrar los atajos y encontrar páginas y secciones de esta guía, que se abren en la guía sin salir de tu pantalla. Los pequeños iconos **ⓘ** y los enlaces **Más información** junto a los ajustes, los rails, Flow, el control deslizante de contexto y los presupuestos abren la guía en la sección correspondiente del mismo modo.
|
|
49
|
+
|
|
50
|
+
## A dónde ir después
|
|
51
|
+
|
|
52
|
+
Ya conoces el terreno. Desde aquí, el primer paso natural es **añadir una spec** y lanzarla en un rail: observa cómo el pipeline se ejecuta de principio a fin y luego revisa las **Analíticas** para ver cuánto costó. Bienvenido a bordo.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Búsqueda universal (⌘K)
|
|
2
|
+
|
|
3
|
+
Pulsa **⌘K** (**Ctrl+K** en Windows y Linux) para buscar casi todo en Specrails desde un solo sitio: misiones, specs, registros de trabajos, archivos, ajustes y esta guía. Escribe una consulta normal para buscar misiones, proyectos, specs y trabajos recientes como siempre, o empieza con un **prefijo** para buscar solo en una fuente.
|
|
4
|
+
|
|
5
|
+
## Prefijos
|
|
6
|
+
|
|
7
|
+
| Escribe | Busca | Intro abre |
|
|
8
|
+
| --- | --- | --- |
|
|
9
|
+
| `#` | Specs: título, resumen, descripción, etiquetas, notas de fuera de alcance, adendas y comentarios. `#12` encuentra la spec 12. | La spec |
|
|
10
|
+
| `@` | Misiones: título y contenido de la conversación. | La misión |
|
|
11
|
+
| `/` | Ajustes (de Desktop y del proyecto) por nombre o por cómo los llamarías. | La ventana de ajustes en ese bloque, visible y con el foco |
|
|
12
|
+
| `f:` | Archivos del proyecto, por nombre o ruta. | El archivo en el explorador de código |
|
|
13
|
+
| `log:` | Registros de trabajos: comandos, nombres de loops, títulos de fases y diagnósticos de fallo. | El trabajo |
|
|
14
|
+
| `?` | Esta guía: títulos de páginas y encabezados. | La guía en ese encabezado |
|
|
15
|
+
|
|
16
|
+
Al escribir un prefijo se convierte en una **etiqueta** dentro de la caja de búsqueda y la caja conserva solo tu consulta. Pulsa **Retroceso** con la caja vacía (o haz clic en la × de la etiqueta) para quitar el ámbito. Con la caja vacía, la paleta lista los prefijos bajo la caja; haz clic en uno para empezar. `>` sigue listando acciones, como antes.
|
|
17
|
+
|
|
18
|
+
## Resaltado
|
|
19
|
+
|
|
20
|
+
Los resultados muestran un fragmento corto alrededor de la primera coincidencia, con el texto coincidente resaltado. La búsqueda ignora mayúsculas y acentos, así que `revision` encuentra «Revisión».
|
|
21
|
+
|
|
22
|
+
## Ajustes
|
|
23
|
+
|
|
24
|
+
`/` conoce los bloques principales de ajustes, en tu idioma: tema, idioma, editor, presupuestos, notificaciones, webhooks, actualizaciones, rama, entorno, telemetría, reglas y más. Los ajustes del proyecto se ofrecen cuando hay un proyecto abierto. Elige uno y se abre la ventana correcta en ese bloque. Sin prefijo, una coincidencia fuerte (tres o más caracteres) añade hasta tres ajustes a los resultados normales. `/budget` también encuentra el panel de Presupuesto (límites, proyección, y si…), donde viven los límites semanal y mensual. Un comando con barra como `/implement` aparece bajo los ajustes, en su propio grupo, así que el prefijo `/` nunca lo oculta.
|
|
25
|
+
|
|
26
|
+
## Registros de trabajos
|
|
27
|
+
|
|
28
|
+
`log:` busca en un índice compacto, no en la salida cruda de una ejecución: el comando, el nombre del loop, los títulos de las fases y el diagnóstico breve de una ejecución fallida, bloqueada o atascada. Nunca guarda flujos de tokens ni la salida de herramientas, así que se mantiene pequeño y rápido. Se guarda por proyecto y contiene las ejecuciones más recientes.
|
|
29
|
+
|
|
30
|
+
## Conviene saber
|
|
31
|
+
|
|
32
|
+
- `#`, `f:` y `log:` buscan en el proyecto activo; abre un proyecto primero.
|
|
33
|
+
- El ámbito de archivos respeta las reglas de exclusión del explorador de código.
|
|
34
|
+
- Cada grupo muestra solo sus mejores resultados; afina la consulta para acotar.
|
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
# Analíticas y seguimiento de costes
|
|
2
2
|
|
|
3
|
-
Cada vez que Specrails ejecuta una CLI de IA en tu nombre —un
|
|
3
|
+
Cada vez que Specrails ejecuta una CLI de IA en tu nombre —un trabajo del pipeline, una spec rápida, una sesión de Explore, un refinado con IA, un resumen de archivo— deja constancia de lo que ocurrió: qué modelo se ejecutó, cuántos tokens entraron y salieron, cuánto tardó y cuánto costó. La sección **Analíticas** convierte todo eso en un único panel para que siempre sepas adónde va tu gasto en IA.
|
|
4
4
|
|
|
5
5
|
Ábrela desde la barra lateral derecha (está etiquetada como **Analíticas**). Todo lo que ves está acotado al proyecto en el que estés ahora mismo: cambia de proyecto y los números te siguen.
|
|
6
6
|
|
|
7
7
|
## Qué cuenta como gasto
|
|
8
8
|
|
|
9
|
-
Specrails
|
|
9
|
+
Specrails etiqueta cada ejecución de IA con una *superficie*: la parte de la app que generó el gasto. Las superficies principales tienen un color fijo y su propio chip de filtro, para que las identifiques de un vistazo:
|
|
10
10
|
|
|
11
|
-
- **
|
|
11
|
+
- **Trabajo** — un trabajo del pipeline en cola (Architect → Developer → Reviewer → Ship), incluidas las ejecuciones Freestyle.
|
|
12
|
+
- **Loop** — cada paso de IA de una ejecución de loop. Los rails se ejecutan como loops por defecto, así que la mayor parte del gasto de los rails aparece aquí.
|
|
12
13
|
- **Quick spec** — una spec generada por la vía rápida de Add Spec.
|
|
13
14
|
- **Explore spec** — una conversación de Explore en la que das forma a una spec charlando.
|
|
14
15
|
- **AI edit** — un refinado asistido por IA sobre un agente o un archivo.
|
|
15
|
-
- **
|
|
16
|
+
- **SMASH** — dividir una spec épica en specs más pequeñas.
|
|
17
|
+
- **File summary** — los resúmenes en lenguaje sencillo y las historias de archivo que alimentan el Code explorer.
|
|
16
18
|
|
|
17
|
-
|
|
19
|
+
También se registran superficies menores, sin chip propio: el panel de chat lateral, el lanzador de specs de OpenSpec, las propuestas de specs, Agent Studio y el chat de configuración heredado. Las misiones fijadas al proyecto también cuentan en su gasto. No se deja fuera nada que ejecute una CLI de IA, así que los totales reflejan toda la actividad de IA del proyecto.
|
|
18
20
|
|
|
19
21
|
## Cómo leer el panel
|
|
20
22
|
|
|
@@ -40,9 +42,9 @@ Tus modelos con más gasto (hasta diez). Haz clic en cualquier modelo para filtr
|
|
|
40
42
|
|
|
41
43
|
Cada punto es una invocación, situando el coste frente al número de turnos. Los valores atípicos —las ejecuciones caras y con muchos turnos— saltan a la vista enseguida. (La dispersión muestra tus 500 puntos más recientes para seguir siendo ágil.)
|
|
42
44
|
|
|
43
|
-
###
|
|
45
|
+
### Specs principales
|
|
44
46
|
|
|
45
|
-
Tus diez
|
|
47
|
+
Tus diez specs más caras sumando *todas* las superficies a la vez, de modo que una spec que costó poco en Explore y mucho en un trabajo muestra su total real. Las specs eliminadas y las ejecuciones sin atribuir tienen su propio grupo, así que nada desaparece en silencio de los totales.
|
|
46
48
|
|
|
47
49
|
### Tabla de invocaciones en bruto
|
|
48
50
|
|
|
@@ -50,23 +52,23 @@ La verdad sobre el terreno: una fila por invocación. Este bloque tiene sus prop
|
|
|
50
52
|
|
|
51
53
|
## Filtrado
|
|
52
54
|
|
|
53
|
-
La cabecera fija de la parte superior lleva los dos filtros principales —**periodo** y **superficie**— y ambos se guardan en la URL de la página. Eso significa que puedes marcar como favorita o compartir una vista filtrada ("últimos 30 días, solo
|
|
55
|
+
La cabecera fija de la parte superior lleva los dos filtros principales —**periodo** y **superficie**— y ambos se guardan en la URL de la página. Eso significa que puedes marcar como favorita o compartir una vista filtrada ("últimos 30 días, solo trabajos") y se reabrirá exactamente como la dejaste. Los filtros de la tabla en bruto son aparte y se mantienen locales a ese bloque.
|
|
54
56
|
|
|
55
57
|
Una nota sobre la precisión: las ejecuciones fallidas y abortadas se dejan fuera de las *medias de coste* (distorsionarían los números por ejecución), pero siguen contando para tu número total de ejecuciones y tu tasa de fallos. Así las medias se mantienen limpias mientras la imagen de fiabilidad queda completa.
|
|
56
58
|
|
|
57
|
-
## Coste por
|
|
59
|
+
## Coste por spec
|
|
58
60
|
|
|
59
|
-
No hace falta ir a la página de Analíticas para ver cuánto costó una spec. Abre cualquier
|
|
61
|
+
No hace falta ir a la página de Analíticas para ver cuánto costó una spec. Abre cualquier spec y, si tiene gasto asociado, verás un resumen de una línea justo debajo del título:
|
|
60
62
|
|
|
61
63
|
> $0.42 · 6 turns · 1m 12s active · breakdown
|
|
62
64
|
|
|
63
|
-
Haz clic y aterrizas en la página de Analíticas ya filtrada por
|
|
65
|
+
Haz clic y aterrizas en la página de Analíticas ya filtrada por esa spec. Es el camino más rápido entre "¿cuánto me costó esta funcionalidad?" y el desglose completo.
|
|
64
66
|
|
|
65
67
|
## Exportar tus datos
|
|
66
68
|
|
|
67
69
|
Cuando necesites los números fuera de la aplicación —una hoja de cálculo, un informe de finanzas, tu propio análisis— usa el desplegable **Exportar**. Ofrece cuatro formatos:
|
|
68
70
|
|
|
69
|
-
- **CSV resumen** — un archivo con varias secciones que incluye totales, la cronología diaria, por superficie, por modelo y
|
|
71
|
+
- **CSV resumen** — un archivo con varias secciones que incluye totales, la cronología diaria, por superficie, por modelo y specs principales.
|
|
70
72
|
- **JSON resumen** — el mismo resumen, estructurado.
|
|
71
73
|
- **CSV en bruto** — cada fila de invocación (hasta 10 000; indica si tuvo que truncar).
|
|
72
74
|
- **JSON en bruto** — las mismas filas en bruto, estructuradas.
|
|
@@ -76,3 +78,15 @@ Las exportaciones respetan los filtros de periodo y superficie que tengas aplica
|
|
|
76
78
|
## Siempre al día
|
|
77
79
|
|
|
78
80
|
No necesitas refrescar. Cuando se registra una nueva invocación en cualquier parte del proyecto, el panel abierto se vuelve a cargar discretamente un instante después, de modo que el medidor de consumo va al ritmo del trabajo a medida que termina.
|
|
81
|
+
|
|
82
|
+
## Presupuestos diarios {#daily-budget}
|
|
83
|
+
|
|
84
|
+
Define un presupuesto diario para limitar lo que puede costar un día. Todos los límites (diario, semanal, mensual y por ejecución) se editan en un único sitio: **Analíticas → Presupuesto**. **Ajustes → Avanzado** y **Ajustes del proyecto → Presupuesto** solo muestran el límite diario actual, con un botón **Abrir Presupuesto** que te lleva allí.
|
|
85
|
+
|
|
86
|
+
Cuando el gasto registrado del día alcanza un límite, la cola se pausa sola, los rails y las ejecuciones de loops se niegan a lanzarse con *Límite diario alcanzado*, y una ejecución de loop en curso se detiene entre pasos, en pausa por el límite. Sube o quita el límite, o espera al reinicio diario, y luego reanuda.
|
|
87
|
+
|
|
88
|
+
El límite del proyecto cuenta tu día local; el de toda la app cuenta el día UTC. La alerta de coste por trabajo es un ajuste aparte.
|
|
89
|
+
|
|
90
|
+
**Límites semanales, mensuales y por ejecución.** Los límites más largos funcionan igual. Abre **Analíticas → Presupuesto** para fijar un límite **semanal** y uno **mensual**, por proyecto y para toda la app, y un **límite blando por ejecución** (*pausar y preguntar a $X*). Las semanas empiezan el lunes y los meses el día 1, en tu hora local. Un límite semanal o mensual pausa las colas, rechaza lanzamientos y deja en pausa los loops en curso igual que el límite diario; súbelo o bórralo ahí, o espera al reinicio. Cuando el coste reportado de una ejecución alcanza el límite por ejecución, se pausa, y **Reanudar** pregunta si continuar sin el límite o subirlo. Alcanzar cualquier límite añade además un elemento **Subir límite** a la bandeja.
|
|
91
|
+
|
|
92
|
+
El panel de Presupuesto muestra hoy, esta semana y este mes frente a cada límite. Su **proyección** a fin de mes es una estimación (la media de los últimos 14 días completos por los días que quedan, más lo que ya has gastado) y nunca se suma al gasto facturado. **Y si** vuelve a calcular los últimos 30 días de uso de tokens registrado con otro modelo usando la lista de precios de la app, y dice *Sin precio* si no tiene precio para un modelo. Con un plan de suscripción no hay coste en dólares por uso, así que el panel muestra turnos y límites del plan en lugar de dólares.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# El terminal integrado
|
|
1
|
+
# El terminal integrado {#integrated-terminal}
|
|
2
2
|
|
|
3
3
|
Specrails tiene un terminal de verdad integrado: el panel que sube desde la parte inferior de la ventana, igual que el de VS Code o Cursor. Ejecuta tu shell real, en el directorio real de tu proyecto, así que puedes usar `git`, `npm`, tests o cualquier otra cosa sin salir de la aplicación.
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Code explorer
|
|
1
|
+
# Code explorer {#code-explorer}
|
|
2
2
|
|
|
3
3
|
La sección **Code** te da una ventana amigable y de solo lectura a tu repositorio, pensada especialmente para quienes quieren entender lo que la IA ha estado construyendo sin vivir dentro de un editor. Tienes un árbol de archivos a la izquierda, un visor de código a la derecha y, encima del código, un resumen en lenguaje sencillo de lo que hace realmente cada archivo.
|
|
4
4
|
|
|
@@ -10,7 +10,7 @@ En esta versión es estrictamente de solo lectura: nada de lo que hagas aquí ca
|
|
|
10
10
|
|
|
11
11
|
El panel izquierdo es un árbol virtualizado de los archivos de tu proyecto: rápido incluso en repositorios grandes. Respeta tu `.gitignore` y una lista de exclusión integrada, así que ves los archivos que importan, no un mar de artefactos de compilación y `node_modules`.
|
|
12
12
|
|
|
13
|
-
Junto a los archivos verás **chips de procedencia**: pequeñas marcas que te indican que un archivo fue *tocado por IA*. Esto es el corazón del Code explorer: Specrails registra qué archivos creó o modificó cada
|
|
13
|
+
Junto a los archivos verás **chips de procedencia**: pequeñas marcas que te indican que un archivo fue *tocado por IA*. Esto es el corazón del Code explorer: Specrails registra qué archivos creó o modificó cada trabajo del pipeline y los vincula a la spec que originó el trabajo. Así puedes responder, de un vistazo, "¿esto lo escribió la IA o lo escribí yo?".
|
|
14
14
|
|
|
15
15
|
En la parte superior del árbol hay un filtro:
|
|
16
16
|
|
|
@@ -33,7 +33,7 @@ Encima del código verás un **resumen en lenguaje sencillo** del archivo —par
|
|
|
33
33
|
|
|
34
34
|
Los resúmenes son listos a la hora de mantenerse al día: están vinculados al contenido del archivo, de modo que cuando un archivo cambia de verdad el resumen se regenera, pero los archivos sin cambios no se vuelven a resumir sin necesidad. Si editas un archivo tú mismo, su resumen se marca como obsoleto en vez de regenerarse en silencio: tú mantienes el control de cuándo se refresca. Hay una acción de **regenerar** para cuando quieras una versión fresca al momento.
|
|
35
35
|
|
|
36
|
-
Un par de salvaguardas mantienen los costes a raya: la generación de resúmenes se ejecuta dentro de un **presupuesto mensual** (unos pocos dólares por defecto, configurable en Ajustes), y hay topes de cuántos resúmenes lanzará un mismo
|
|
36
|
+
Un par de salvaguardas mantienen los costes a raya: la generación de resúmenes se ejecuta dentro de un **presupuesto mensual** (unos pocos dólares por defecto, configurable en Ajustes), y hay topes de cuántos resúmenes lanzará un mismo trabajo. Si se omite un resumen, la aplicación te dice por qué: presupuesto alcanzado, un tope por trabajo, o que el archivo simplemente no se encuentra.
|
|
37
37
|
|
|
38
38
|
También puedes elegir el **idioma del resumen** (inglés o español) en los ajustes globales, dentro del área *Code section*.
|
|
39
39
|
|
|
@@ -45,11 +45,11 @@ Para cualquier capítulo puedes pedir una explicación en lenguaje llano: pulsa
|
|
|
45
45
|
|
|
46
46
|
## Conectar el código con las specs
|
|
47
47
|
|
|
48
|
-
El vínculo de procedencia funciona en ambos sentidos. Dentro del Code explorer, hacer clic en el chip de
|
|
48
|
+
El vínculo de procedencia funciona en ambos sentidos. Dentro del Code explorer, hacer clic en el chip de una spec sobre un archivo abre el detalle de esa spec. Y en sentido inverso, la vista de **detalle de la spec** tiene una sección *Archivos tocados por esta spec*: haz clic en un archivo ahí y saltas directo al Code explorer con él abierto. Cierra el círculo entre "esta es la spec que escribimos" y "este es el código que salió de ella".
|
|
49
49
|
|
|
50
50
|
## Lo que (todavía) no hace
|
|
51
51
|
|
|
52
|
-
Para dejar las expectativas claras, esta primera versión deja fuera a propósito algunas cosas: la edición dentro de la aplicación, los resúmenes por símbolo o por directorio, una vista de diff narrativa y el "pregúntale a la IA sobre este archivo" conversacional. La procedencia atribuye un archivo solo a su
|
|
52
|
+
Para dejar las expectativas claras, esta primera versión deja fuera a propósito algunas cosas: la edición dentro de la aplicación, los resúmenes por símbolo o por directorio, una vista de diff narrativa y el "pregúntale a la IA sobre este archivo" conversacional. La procedencia atribuye un archivo solo a su spec principal. Son el tipo de cosas que podrían crecer con el tiempo.
|
|
53
53
|
|
|
54
54
|
## Desactivarlo
|
|
55
55
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<!-- guide-revision: mission-first-v1 -->
|
|
2
2
|
|
|
3
|
-
# Conecta un proveedor de IA
|
|
3
|
+
# Conecta un proveedor de IA {#ai-providers}
|
|
4
4
|
|
|
5
5
|
Specrails coordina tus CLI autenticadas de Claude o Codex. Su instalación, la cuenta y la facturación del modelo son independientes de la aplicación.
|
|
6
6
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Plugins (Integraciones)
|
|
1
|
+
# Plugins (Integraciones) {#plugins}
|
|
2
2
|
|
|
3
3
|
La sección **Integraciones** es un marketplace por proyecto de complementos opcionales que amplían lo que la IA puede hacer. Cada proyecto decide de forma independiente qué plugins quiere: instalar un plugin en un proyecto nunca afecta a otro.
|
|
4
4
|
|
|
@@ -8,14 +8,14 @@ Specrails actúa como **capa de sincronización** entre Jira y tu proyecto. La i
|
|
|
8
8
|
|
|
9
9
|
- Cuando lanzas un rail, Specrails mueve el issue de Jira vinculado a **En progreso**.
|
|
10
10
|
- Cuando un trabajo termina, Specrails transiciona el issue: si tuvo éxito, lo mueve a tu estado de **revisión** mapeado y solo llega a **Hecho** cuando se mergea la PR de entrega o aceptas el resultado local; si falló, vuelve a **Por hacer** con un comentario de finalización que incluye resultado, id de ejecución, coste, duración y el cambio de estado en Jira.
|
|
11
|
-
- Si pides cambios de seguimiento cuando el issue de Jira ya está en revisión, Specrails intenta continuar la rama de la PR abierta existente para
|
|
11
|
+
- Si pides cambios de seguimiento cuando el issue de Jira ya está en revisión, Specrails intenta continuar la rama de la PR abierta existente para esa spec en lugar de crear una rama nueva. Si tu estado de revisión de Jira no está mapeado explícitamente y todavía aparece localmente como **En progreso**, Specrails puede continuar igualmente la PR cuando la clave de Jira coincide con la pull request abierta.
|
|
12
12
|
- Periódicamente, Specrails **sondea** Jira en busca de cambios que cualquiera haya hecho en el tablero y los refleja de vuelta en tus specs.
|
|
13
13
|
|
|
14
14
|
Todas las escrituras pasan por un outbox duradero y a prueba de fallos, así que un tropiezo puntual de Jira nunca rompe un trabajo: la actualización simplemente se reintenta.
|
|
15
15
|
|
|
16
16
|
## Conectar un tablero
|
|
17
17
|
|
|
18
|
-
Te conectas desde la página
|
|
18
|
+
Te conectas desde la página **Plugins** de la barra lateral izquierda: pulsa **Instalar** en la tarjeta de Jira y elige el proyecto. El asistente de conexión te guía paso a paso:
|
|
19
19
|
|
|
20
20
|
1. **Probar** — introduce la URL de tu Jira y tus credenciales, y Specrails verifica la conexión.
|
|
21
21
|
2. **Elegir un proyecto** — elige con qué proyecto de Jira sincronizar.
|
|
@@ -52,7 +52,7 @@ Así que puedes experimentar con libertad —actívalo, ejecuta unos cuantos rai
|
|
|
52
52
|
|
|
53
53
|
## El día a día
|
|
54
54
|
|
|
55
|
-
Una vez conectado, la
|
|
55
|
+
Una vez conectado, la tarjeta de Jira de la página **Plugins** pasa a **Gestionar**. Elige ahí el proyecto para abrir su **tarjeta de conexión**, donde puedes:
|
|
56
56
|
|
|
57
57
|
- **Sincronizar ahora** — fuerza un sondeo inmediato en lugar de esperar al temporizador.
|
|
58
58
|
- **Reintentar cartas muertas** — vuelve a ejecutar cualquier escritura que se haya quedado atascada.
|
|
@@ -69,4 +69,4 @@ Las specs respaldadas por Jira muestran una **insignia con la clave de Jira** (c
|
|
|
69
69
|
|
|
70
70
|
## Desactivarlo
|
|
71
71
|
|
|
72
|
-
Si en algún momento quieres dar marcha atrás del todo, simplemente **Desconecta** desde
|
|
72
|
+
Si en algún momento quieres dar marcha atrás del todo, simplemente **Desconecta** desde la tarjeta de conexión. Tus specs vuelven al comportamiento solo-local y los metadatos de Jira simplemente quedan sin uso: no se destruye nada.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# La app complementaria para el móvil
|
|
1
|
+
# La app complementaria para el móvil {#mobile-companion}
|
|
2
2
|
|
|
3
3
|
Specrails tiene una app complementaria para el teléfono para que puedas vigilar tus rails mientras estás lejos del escritorio: ver los trabajos en marcha, verlos terminar y mantenerte al tanto sin estar sentado frente al panel.
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Controla Specrails desde cualquier IA (servidor MCP)
|
|
1
|
+
# Controla Specrails desde cualquier IA (servidor MCP) {#mcp-server}
|
|
2
2
|
|
|
3
3
|
Specrails puede exponerse **a sí mismo** a cualquier asistente de IA que hable el [Model Context Protocol](https://modelcontextprotocol.io) — Claude Desktop, Claude Code, Cursor, Cline o tu propio agente. Actívalo, apunta tu asistente a Specrails y podrás manejar toda la app conversando: *"lista mis proyectos", "crea una spec para login social en el proyecto de la API", "lanza el rail 0 y avísame cuando termine", "¿cuánto he gastado esta semana?"*. Tu asistente llama por debajo a las herramientas de Specrails en lugar de que tú andes haciendo clics.
|
|
4
4
|
|
|
@@ -47,16 +47,16 @@ Desmarca **Destructivo** y podrá trabajar toda la noche sin borrar nada nunca.
|
|
|
47
47
|
> *"Revisa todos mis proyectos. Dime cuáles tienen specs en el backlog y ningún rail en marcha, y arranca el de mayor prioridad en cada uno."*
|
|
48
48
|
|
|
49
49
|
**Sin manos mientras programas.** Maneja Specrails desde tu editor o por voz, sin cambiar de ventana:
|
|
50
|
-
> *"Lanza el rail 0 en modo Freestyle con Opus para
|
|
50
|
+
> *"Lanza el rail 0 en modo Freestyle con Opus para la spec #42 y avísame cuando termine."*
|
|
51
51
|
|
|
52
52
|
**Pregunta por el coste y el historial.** Tus analíticas, en lenguaje natural:
|
|
53
|
-
> *"¿Dónde he gastado más en IA esta semana, por proyecto y por modelo? Enséñame los cinco
|
|
53
|
+
> *"¿Dónde he gastado más en IA esta semana, por proyecto y por modelo? Enséñame los cinco specs más caras."*
|
|
54
54
|
|
|
55
55
|
**Tu standup diario.**
|
|
56
56
|
> *"Escribe mi standup: qué rails se ejecutaron ayer, qué se completó, qué falló y el coste total — en viñetas listas para pegar en Slack."*
|
|
57
57
|
|
|
58
58
|
**Entiende el código.** Sin necesidad de editor:
|
|
59
|
-
> *"¿Qué archivos tocó
|
|
59
|
+
> *"¿Qué archivos tocó la spec #38? Resume en una línea qué cambió en cada uno."*
|
|
60
60
|
|
|
61
61
|
Como tu asistente lee primero la guía incorporada, rara vez necesitas nombrar herramientas ni specs — describe el resultado que quieres y él se encarga de las llamadas.
|
|
62
62
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Maneja Specrails conversando (Agent Chat)
|
|
2
2
|
|
|
3
|
-
El **Agent Chat** es un copiloto que vive *dentro* de Specrails y puede manejar toda la app por ti. En lugar de ir haciendo clic por proyectos, specs, raíles y analítica, basta con que preguntes: *«¿cuántos trabajos salieron bien esta semana?»*, *«crea una spec para el inicio de sesión social en el proyecto de la API»*, *«lanza
|
|
3
|
+
El **Agent Chat** es un copiloto que vive *dentro* de Specrails y puede manejar toda la app por ti. En lugar de ir haciendo clic por proyectos, specs, raíles y analítica, basta con que preguntes: *«¿cuántos trabajos salieron bien esta semana?»*, *«crea una spec para el inicio de sesión social en el proyecto de la API»*, *«lanza las tres specs de mayor prioridad y avísame cuando terminen»*. Lleva a cabo el trabajo llamando a las propias herramientas de Specrails —las mismas que expone el [servidor MCP](./5-mcp-server.md)— mientras ves el panel actualizarse en directo detrás de él.
|
|
4
4
|
|
|
5
5
|
> **No lo confundas con los agentes del pipeline.** La sección *Agentes* (Architect → Developer → Reviewer) trata de *cómo un raíl implementa una spec*. El **Agent Chat** es un único asistente que *maneja la propia app*. Cosas distintas, misma palabra.
|
|
6
6
|
|
|
@@ -33,6 +33,8 @@ El agente puede tocar toda la app, así que tú decides cuánta libertad tiene c
|
|
|
33
33
|
|
|
34
34
|
Empieza en **Observa** y sube el nivel solo cuando quieras que el agente actúe. Si intenta algo por encima del nivel actual, se detiene y te dice exactamente qué nivel activar; nunca sortea el límite. Esto es independiente de los niveles de Ajustes ▸ MCP, que rigen a los asistentes *externos*; el nivel de aquí es solo para este agente interno de la app.
|
|
35
35
|
|
|
36
|
+
Subir el nivel **a Autónomo** nunca ocurre solo con una tecla: Shift+Tab desde Opera muestra un aviso con **Cambiar a Autónomo**, y si vuelves a pulsar Shift+Tab, se salta y regresa a Observa. Bajar el nivel siempre es inmediato.
|
|
37
|
+
|
|
36
38
|
## Algunas cosas que puedes pedir
|
|
37
39
|
|
|
38
40
|
Cuando estés en **Opera**, prueba con:
|
|
@@ -45,18 +47,23 @@ Cuando estés en **Opera**, prueba con:
|
|
|
45
47
|
>
|
|
46
48
|
> *«Algo ha fallado en el último lote: encuentra los trabajos fallidos y resume por qué.»*
|
|
47
49
|
|
|
48
|
-
Las respuestas llegan fluidas y ya formateadas (encabezados, tablas, listas), cada una con un pequeño botón de **copiar**. Una etiqueta de estado abajo muestra lo que el agente está haciendo ahora mismo —*Pensando…*, *MCP ·
|
|
50
|
+
Las respuestas llegan fluidas y ya formateadas (encabezados, tablas, listas), cada una con un pequeño botón de **copiar**. Una etiqueta de estado abajo muestra lo que el agente está haciendo ahora mismo —*Pensando…*, *MCP · trabajos*, *Terminal*— para que siempre sepas en qué estado está.
|
|
51
|
+
|
|
52
|
+
Los bloques de código muestran su lenguaje y tienen su propio botón de **copiar**. Si te desplazas hacia arriba mientras el agente sigue escribiendo, aparece la píldora **Mensajes nuevos** sobre el cuadro: púlsala para volver a la última respuesta.
|
|
49
53
|
|
|
50
54
|
## Detalles prácticos
|
|
51
55
|
|
|
52
56
|
- **Súper specs desde una conversación.** Pide al agente *dar forma* a una spec contigo en vez de generarla de una sola vez: primero lee el código real, te entrevista brevemente y muestra el borrador en evolución como una tarjeta en vivo dentro de la conversación. Cuando dices que sí, crea la spec y — por defecto — la enriquece en segundo plano con una **Contract Layer** (rutas de archivo exactas, formas de datos, invariantes) para que los agentes que implementan no improvisen. Di «sin contract layer» para omitir el enriquecimiento.
|
|
53
|
-
- **Haz clic en lo que menciona.** En una misión fijada a un proyecto, los números de spec (`#12`) y los ids de
|
|
54
|
-
- **
|
|
57
|
+
- **Haz clic en lo que menciona.** En una misión fijada a un proyecto, los números de spec (`#12`) y los ids de trabajo/ejecución en las respuestas del agente son chips clicables: una spec abre el modal de detalle del tablero y un id de trabajo abre la vista del trabajo en directo. Si la referencia ya no existe, verás un aviso discreto de «no encontrado».
|
|
58
|
+
- **Una franja para tus ejecuciones.** Cuando el agente lanza trabajo, una única franja justo encima del cuadro de mensaje lo sigue: qué está haciendo la ejecución en palabras claras («Escribiendo la spec a partir de tus cambios»), cuántas ejecuciones han terminado, el tiempo y el gasto real hasta ahora (`—` hasta que el proveedor lo factura). Cuando una ejecución te necesita — crear la PR, reintentar, volver a Flow — la franja lo dice con un icono y palabras y te ofrece esa única acción; pulsa la franja para abrir la tarjeta completa de la ejecución justo encima (Esc la cierra). Con varias ejecuciones, la franja muestra primero la que te necesita y un pequeño selector («Rail 1 · Rail 2 · +1»). La conversación solo guarda lo que pasó — «Lanzado en Rail 1», «Rail 1 falló: …», «Entregado: PR #812» — y cada línea abre su ejecución. Las misiones que esperan tu decisión muestran un punto en la lista de misiones. Las acciones que inician una nueva ejecución de pago (**Relanzar**, **Recuperar y reintentar**) o que otras personas ven (Crear PR, Publicar) nunca se disparan desde la franja: abre la tarjeta con el foco en ese botón, así que confirmas allí.
|
|
59
|
+
- **La franja desde el teclado.** **⌥R** (**Alt+R** en Windows/Linux) salta del cuadro de mensaje a la franja de la misión en la que estás; vuelve a pulsarlo para ver u ocultar los detalles de la ejecución, y **Esc** te devuelve a donde estabas. Fuera de un campo de texto, **⌥[** y **⌥]** cambian de ejecución. Con la franja enfocada, **P** pausa o reanuda un Flow y **H** lo pasa a un rail; estas letras no hacen nada desde ningún otro sitio. Pulsa **?** para ver la lista completa.
|
|
55
60
|
- **Historial de prompts.** Con el cuadro vacío, pulsa **↑**/**↓** para recorrer lo que preguntaste antes (se muestra atenuado mientras te desplazas); empieza a escribir para editarlo, o pulsa Intro para enviarlo.
|
|
56
61
|
- **Edita la cola.** ¿Enviaste más mientras el agente estaba ocupado? Mientras haya mensajes en cola, **↑**/**↓** recorre *esos* mensajes: el cuadro muestra el seleccionado, lo editas en el sitio y **Intro lo guarda de vuelta en la cola** (Esc cancela; tu borrador sin enviar vuelve tal cual).
|
|
62
|
+
- **Responde con una tecla.** Cuando el agente ofrece opciones, cada chip lleva un número: pulsa **⌥1**…**⌥9** (**Alt+1**…**Alt+9** en Windows/Linux) con el cuadro vacío para elegir una.
|
|
63
|
+
- **Deshaz un mensaje en cola borrado.** Al borrar un mensaje en cola aparece **Deshacer** unos segundos; lo devuelve a la cola.
|
|
57
64
|
- **Minimiza sin perder nada.** Haz clic en la ✕ para devolver el panel a la burbuja: la conversación sigue en marcha. Vuelve a abrirlo y aterrizas en el último mensaje; no hay que reescribir nada.
|
|
58
65
|
- **Nueva conversación.** El botón **+** inicia un hilo limpio; el historial vive a nivel de app, por encima de cualquier proyecto concreto.
|
|
59
|
-
- **Cambia de misión.** El selector de misiones junto al selector de proyecto lista tus conversaciones de más reciente a más antigua — un punto pulsante marca aquellas donde el agente sigue trabajando, y una pequeña insignia cuenta los mensajes en cola. La búsqueda aparece cuando la lista supera las ocho, y el icono de papelera de cada fila elimina una misión
|
|
66
|
+
- **Cambia de misión.** El selector de misiones junto al selector de proyecto lista tus conversaciones de más reciente a más antigua — un punto pulsante marca aquellas donde el agente sigue trabajando, y una pequeña insignia cuenta los mensajes en cola. La búsqueda aparece cuando la lista supera las ocho, y el icono de papelera de cada fila elimina una misión al instante y muestra **Deshacer** (o pulsa **⌘Z**) durante unos segundos; después la misión espera 30 días en **Eliminado recientemente**, en los ajustes del proyecto. Una misión donde el agente sigue trabajando pregunta primero, porque detener al agente no se puede deshacer.
|
|
60
67
|
- **Encuentra una misión desde cualquier sitio.** Pulsa **⌘K** (o el botón **Buscar** del sidebar en modo Agente) y escribe cualquier fragmento que recuerdes: una palabra del título *o* de lo que se dijo dentro. Las misiones coinciden al instante por título desde memoria y, un latido después, llegan las coincidencias por contenido con el pasaje resaltado, más el proyecto anclado y cuándo tuvo actividad por última vez. En modo Agente las misiones son el primer grupo; en el tablero van justo después de Proyectos. Enter abre la misión.
|
|
61
68
|
|
|
62
69
|
## Cards de lanzamiento y cards de ejecución
|
|
@@ -69,9 +76,9 @@ Las respuestas llegan fluidas y ya formateadas (encabezados, tablas, listas), ca
|
|
|
69
76
|
|
|
70
77
|
## Sub-agentes
|
|
71
78
|
|
|
72
|
-
Algunos proveedores pueden repartir partes de una tarea entre **sub-agentes**: ayudantes que trabajan en paralelo y siguen después de que el agente responda. Los sub-agentes vienen **
|
|
79
|
+
Algunos proveedores pueden repartir partes de una tarea entre **sub-agentes**: ayudantes que trabajan en paralelo y siguen después de que el agente responda. Los sub-agentes vienen **activados por defecto**; desactívalos por proyecto si quieres contener el coste, porque multiplican lo que cuesta una petición.
|
|
73
80
|
|
|
74
|
-
- **
|
|
81
|
+
- **Desactívalos por proyecto.** Abre **Configuración → Sub-agentes** del proyecto y desactiva **Permitir sub-agentes en este proyecto**. Cubre las misiones, la exploración y los refinamientos de ese proyecto; los pipelines de Implement nunca se ven afectados. Las misiones sin proyecto siguen **Ajustes de la app → Proveedores de IA → Permitir sub-agentes en misiones sin proyecto**.
|
|
75
82
|
- **Elige quién los ejecuta.** En **Ejecutar sub-agentes con**, la opción por defecto **Igual que el agente de la misión** deja que el propio CLI de la misión los lance de forma nativa: es lo más rápido y comparten su caché de prompt. Elige en su lugar un proveedor, modelo y esfuerzo para combinar proveedores — por ejemplo, una misión en Codex con sub-agentes en Claude. Las misiones que ya usan ese proveedor siguen siendo nativas con ese modelo; con otro proveedor, Specrails lanza cada sub-agente por su cuenta, que arranca en frío y puede costar más, pero te da más control y muestra el coste real de cada uno. Specrails te pide confirmación antes del cambio, y esos sub-agentes llevan una etiqueta con su proveedor en la misión.
|
|
76
83
|
- **Míralos trabajar.** Los agentes que lanza una respuesta aparecen como una línea compacta bajo esa respuesta. Se mantiene abierta mientras trabajan y, cuando terminan todos, se pliega en un resumen con el tiempo y los tokens totales. Despliega una fila para leer su resultado y lo que costó, o para seguir su actividad en directo. Cada lanzamiento se queda en su punto de la conversación, así que los siguientes nunca se mezclan con los anteriores. Detén un agente en marcha desde su fila, o todos desde la línea.
|
|
77
84
|
- **El agente retoma solo.** Cuando terminan los agentes en segundo plano, el agente continúa y publica lo que encontraron, marcado como *Continuó tras los agentes en segundo plano*.
|
|
@@ -17,7 +17,7 @@ Cada conexión tiene además un ajuste **Bucle del agente**. **Compacto** (por d
|
|
|
17
17
|
|
|
18
18
|
- Rails (implement, freestyle, loops personalizados), Explore y specs Quick, chat y misiones se ejecutan con el modelo local.
|
|
19
19
|
- Las misiones conservan sus herramientas Specrails y tus servidores MCP externos.
|
|
20
|
-
- Las sesiones se reanudan entre turnos; los
|
|
20
|
+
- Las sesiones se reanudan entre turnos; los trabajos interactivos funcionan.
|
|
21
21
|
- El coste es honesto: se registran los tokens, el coste queda *desconocido* salvo que indiques tarifas (entonces se marca *estimado*).
|
|
22
22
|
|
|
23
23
|
No disponible en motores locales: perfiles de agente y roles personalizados, enriquecimiento SMASH / Contract Layer, adjuntos y telemetría del pipeline. El Project Builder funciona en modo solo-salida (sin herramientas); su contrato de blueprint es estricto, así que usa un modelo capaz.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Flow: construir primero, spec después {#flow-mode}
|
|
2
|
+
|
|
3
|
+
Flow es una forma de construir con un agente cuando todavía no sabes exactamente qué quieres. Hablas con el agente en tu misión, escribe y ejecuta código real en su propia rama de Flow (una copia aparte de tu proyecto) y, cuando el resultado es el bueno, pulsas **Pasar a un rail**: un rail toma tus cambios, deriva la spec y ejecuta la verificación, la revisión y la entrega de siempre.
|
|
4
|
+
|
|
5
|
+
Implement sirve para delegar trabajo que ya sabes describir. Flow, para descubrirlo.
|
|
6
|
+
|
|
7
|
+
## Cómo empieza un Flow
|
|
8
|
+
|
|
9
|
+
No tienes que pedir Flow por su nombre. Cuando describes algo exploratorio o visual («quiero probar…», «no sé cómo debería quedar»), la misión muestra una tarjeta con dos caminos:
|
|
10
|
+
|
|
11
|
+
- **Flow**: construirlo juntos ahora; la spec llega al final.
|
|
12
|
+
- **Spec + Implement**: acordar primero una spec y luego delegarla a un rail.
|
|
13
|
+
|
|
14
|
+
Los dos caminos tienen el mismo peso y aparecen siempre en el mismo orden: ninguno se recomienda, eliges tú. En **Por qué pregunta el agente**, el agente explica en una frase qué le hizo preguntar, y no insistirá elijas el camino que elijas o si pulsas **Ahora no**.
|
|
15
|
+
|
|
16
|
+
Al elegir Flow se abre una confirmación: Specrails crea una copia aparte del proyecto en su propia rama de Flow, donde el agente puede escribir código, y tu rama principal no se toca. Pulsa **Empezar Flow**. En el board aparece una spec provisional con la etiqueta **En Flow** (haz clic en ella para volver a la misión).
|
|
17
|
+
|
|
18
|
+
Si tu Specrails Core todavía no puede ejecutar Flow, el botón está desactivado y la tarjeta lista lo que falta. Normalmente se arregla actualizando Specrails Core.
|
|
19
|
+
|
|
20
|
+
## Empezar un Flow desde una spec que ya tienes
|
|
21
|
+
|
|
22
|
+
Cualquier spec se puede construir en Flow, no solo una idea nueva. Flow e Implement siguen siendo dos formas iguales de trabajarla:
|
|
23
|
+
|
|
24
|
+
- en el tablero, haz clic derecho en una spec y elige **Empezar en Flow** (junto a arrastrarla a un rail); en el detalle de la spec, **Empezar en Flow** está junto a **Mover a rail**;
|
|
25
|
+
- en una misión, cuando pides implementar una spec sin nombrar un rail, el agente muestra la misma tarjeta de dos caminos para esa spec: **Flow** la trabaja contigo y **Spec + Implement** la lanza en un rail;
|
|
26
|
+
- una tarjeta de lanzamiento en rail de una sola spec también ofrece **Empezar en Flow** junto a su lanzamiento.
|
|
27
|
+
|
|
28
|
+
La propia spec pasa a **En Flow**: no se crea ninguna spec provisional y el primer turno del agente recibe la spec (sus criterios de aceptación, la Contract Layer, lo que queda fuera de alcance y los addenda abiertos). Si la empiezas desde el tablero, el Flow se abre en la misión de la propia spec o en una misión nueva con el nombre de la spec. En un proyecto con varios repositorios Git, cuando la spec no indica exactamente uno de ellos, un pequeño diálogo pregunta antes dónde se ejecuta el Flow: solo aparecen los repositorios Git, viene preseleccionado el repositorio de la spec (o, si no, el principal) y las flechas cambian la elección. **Empezar en Flow** aparece desactivado, con el motivo al pasar el ratón, cuando la spec ya está en Flow, está hecha o cancelada, está en un rail o Flow no está disponible.
|
|
29
|
+
|
|
30
|
+
**Descartar** devuelve la spec tal como estaba, con su estado anterior: tu spec nunca se borra. Cuando el Flow se entrega, la spec se reescribe a partir de lo construido y antes se guarda su texto original como comentario, **Original spec before Flow**, para que no se pierda nada. Una spec ya enlazada con Jira actualiza esa misma incidencia y la mueve al estado asignado a revisión; no se crea una segunda.
|
|
31
|
+
|
|
32
|
+
## Mientras estás en Flow
|
|
33
|
+
|
|
34
|
+
El modo Flow se nombra allí donde miras, con su propio color de Flow: el compositor muestra un chip **Flow** junto al de autonomía y la pista *Dile al agente qué cambiar en este Flow…*; el título de la misión indica **En Flow**, igual que su fila en la lista de misiones. La conversación marca dónde entraste y saliste de Flow, y las respuestas del agente escritas en Flow llevan una pequeña marca **Flow** junto a su hora.
|
|
35
|
+
|
|
36
|
+
La franja justo encima del compositor muestra el Flow en una fila corta: su estado, **Flow · 7 archivos**, **Pausar Flow** y la acción principal, **Pasar a un rail**. Cuando una acción no está disponible (el Flow aún está guardando, hay otra acción en curso), al pasar el ratón dice por qué. Abre la fila con su flecha, como cualquier otra ejecución, para ver el resto:
|
|
37
|
+
|
|
38
|
+
- la **rama** (pulsa para copiar su nombre), los **cambios** con líneas añadidas y eliminadas (pulsa para ver cada archivo con su estado y +/−) y el **coste hasta ahora** según factura el proveedor. Muestra `—` hasta que un turno tiene coste informado, y nunca una estimación; un `*` marca un total que deja fuera turnos sin precio, con una nota que dice cuántos;
|
|
39
|
+
- **Vista previa** mientras la app del Flow está en marcha (ver más abajo);
|
|
40
|
+
- **Descartar**, aparte, borra los cambios del Flow, su rama y la spec provisional. La confirmación enumera lo que pierdes: los archivos cambiados con sus +/−, la rama y la spec.
|
|
41
|
+
|
|
42
|
+
**Pausar Flow** detiene al agente y conserva tus cambios y la spec. La fila muestra entonces **Reanudar Flow**.
|
|
43
|
+
|
|
44
|
+
Puedes escribir mientras el agente trabaja: en Flow tu mensaje **interrumpe** el paso actual (el botón de enviar se convierte en un rayo) y el agente sigue al momento con tu nueva información. Mientras el Flow está abierto, la franja de git bajo el compositor se aparta: el panel del Flow ya muestra su rama.
|
|
45
|
+
|
|
46
|
+
## Prueba la app
|
|
47
|
+
|
|
48
|
+
El agente de Flow ejecuta él mismo el typecheck y los tests para comprobar su trabajo. Cuando hay algo que probar, te pregunta con tres opciones: **Start the app**, **Start and expose on the local network** o **Not now**. Exponerla te permite abrir la app desde un móvil en la misma Wi-Fi o VPN, y cualquiera en esa red puede acceder a ella.
|
|
49
|
+
|
|
50
|
+
Cuando la app escucha, el agente te da sus direcciones como enlaces y el panel del Flow muestra **Vista previa** con un punto verde: abre la app en tu navegador. Su menú tiene la dirección de red y **Detener app**. La app se ejecuta desde la copia del Flow, nunca desde tu checkout principal, y Specrails la detiene cuando pausas, descartas o entregas el Flow.
|
|
51
|
+
|
|
52
|
+
## Pasar a un rail {#flow-hand-off}
|
|
53
|
+
|
|
54
|
+
Cuando el resultado te convenza, pulsa **Pasar a un rail**. La fila pasa a **Listo para convertirse en un PR** y abre una sola línea encima: *Rail 2 convertirá tus 7 archivos cambiados en un PR revisado. Si falla, tu trabajo está a salvo.* Pulsa **Lanzar**, o **Todavía no** para volver al Flow; **Esc** equivale a **Todavía no**; un clic fuera solo pliega la línea, y la fila sigue en **Listo para convertirse en un PR** con **Lanzar**. Si el motor de tu conversación no puede pasar el Flow a un rail en este equipo, una nota justo debajo de la línea lo dice y se usa el motor por defecto del rail.
|
|
55
|
+
|
|
56
|
+
El rail, el motor, el modelo y el esfuerzo ya están elegidos (un rail libre y el motor de tu conversación). Para cambiarlos, abre **Cambiar cómo**; ahí también ves qué cambió. El coste hasta ahora aparece en la línea principal. Tus elecciones se conservan si pulsas **Todavía no** y vuelves a pasarlo más tarde. Mientras arranca, la franja lo muestra lanzándose, sin huecos, y después sigue la ejecución paso a paso. Si se alcanza el límite de revisión o un presupuesto, la línea lo dice y no se lanza nada. Si la ejecución no aparece en 45 segundos, la franja deja de girar y dice **Aún pasando a Rail 2…** con **Actualizar**, que vuelve a comprobar y sigue esperando hasta que aparezca la ejecución.
|
|
57
|
+
|
|
58
|
+
El rail deriva la spec y su cambio de spec a partir de lo que construiste, lo verifica y lo revisa, y la tarjeta de entrega aparece en la misión como en cualquier ejecución.
|
|
59
|
+
|
|
60
|
+
Si la ejecución falla por un motivo técnico, el trabajo vuelve solo a este Flow, intacto: la tarjeta dice en palabras sencillas qué falló (los códigos quedan en **Detalles técnicos**) y el agente recibe el error y lo explica. Si la revisión pide cambios, la tarjeta ofrece **Volver a Flow** o **Relanzar**. Cuando la entrega se asienta, la misión cierra el Flow con un resumen: el pull request, la spec reescrita a partir de lo que construiste, el cambio de spec archivado y la incidencia de Jira si la hay.
|
|
61
|
+
|
|
62
|
+
## Conviene saber
|
|
63
|
+
|
|
64
|
+
- Flow solo escribe en su propia rama. Fuera de Flow las misiones siguen siendo de solo lectura.
|
|
65
|
+
- Un Flow por misión a la vez. La pausa sobrevive a un reinicio de la app.
|
|
66
|
+
- Si la copia del proyecto del Flow desaparece, el Flow queda marcado como **necesita revisión** (para tu información, no hay nada que decidir) y no se borra nada.
|
|
67
|
+
- La franja nunca cambia la ejecución que estás mirando. Si otra empieza a necesitarte mientras tanto, su nombre en el selector de la franja dice **te necesita**.
|
|
68
|
+
- Jira no recibe nada mientras estás en Flow ni si lo descartas.
|
|
69
|
+
- El gasto de Flow aparece en Analítica como superficie propia, **Flow**, y dentro del bloque de misiones del agente.
|